From 239b0b1d4343f987936019c76abb2bc7ff815fee Mon Sep 17 00:00:00 2001 From: Mor Date: Sat, 18 Apr 2020 17:32:11 +0300 Subject: rudimentary matching decompilation of NitroMain --- Makefile | 5 +- asm/FUN_020C9C0C.s | 3098 ++++++++++++++++++++++++++++++++++++++++++++++++++++ asm/arm9_thumb.s | 2366 +++++++++++++++++++-------------------- asm/entry.s | 2 +- asm/main.s | 172 --- asm/rom1.5.s | 3 + asm/rom2.s | 2 +- pokediamond.lcf | 2 + src/main.c | 151 +++ undefined_syms.txt | 11 +- 10 files changed, 4452 insertions(+), 1360 deletions(-) create mode 100644 asm/FUN_020C9C0C.s delete mode 100644 asm/main.s create mode 100644 asm/rom1.5.s create mode 100644 src/main.c diff --git a/Makefile b/Makefile index fac3e52f..cd4882a9 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,8 @@ OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c -Cpp_exceptions off -interworking +CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c -Cpp_exceptions off +LDFLAGS = -nodead -w off -proc v5te -interworking ####################### Other Tools ######################### @@ -78,7 +79,7 @@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< $(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) - $(LD) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) -nodead -w off + $(LD) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(LDFLAGS) $(ROM): $(ELF) $(OBJCOPY) -O binary $< $@ diff --git a/asm/FUN_020C9C0C.s b/asm/FUN_020C9C0C.s new file mode 100644 index 00000000..fc770950 --- /dev/null +++ b/asm/FUN_020C9C0C.s @@ -0,0 +1,3098 @@ +/* FUN020C9C0C.s TODO: Disassemble */ + + .include "asm/macros.inc" + .include "global.inc" + + .text + + arm_func_start FUN_020C9C0C +FUN_020C9C0C: ; 0x020C9C0C + stmdb sp!, {r4-r6,lr} + mov r5, r0 + mov r4, r1 + bl FUN_020CD310 +_020C9C1C: + .byte 0x00, 0x00, 0x55, 0xE3 + .byte 0x05, 0x00, 0x00, 0x0A, 0x54, 0x10, 0x9F, 0xE5, 0x04, 0x20, 0xE0, 0xE1, 0x03, 0x1A, 0x81, 0xE2 + .byte 0xF8, 0x3F, 0x91, 0xE5, 0x02, 0x20, 0x03, 0xE0, 0xF8, 0x2F, 0x81, 0xE5, 0xB8, 0x0D, 0x00, 0xEB + .byte 0x38, 0x10, 0x9F, 0xE5, 0x03, 0x0A, 0x81, 0xE2, 0xF8, 0x0F, 0x90, 0xE5, 0x00, 0x00, 0x14, 0xE0 + .byte 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x60, 0x81, 0xE0 + .byte 0x20, 0x50, 0x9F, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x9D, 0x05, 0x00, 0xEB, 0x00, 0x00, 0x96, 0xE5 + .byte 0x00, 0x00, 0x14, 0xE0, 0xFA, 0xFF, 0xFF, 0x0A, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0x7E, 0x02, 0xF8, 0x3F, 0x00, 0x00, 0x60, 0x00, 0x7E, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x07, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x06, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x05, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x04, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x03, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x02, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x0C, 0x10, 0xA0, 0xE3, 0x90, 0x01, 0x04, 0xE0, 0x70, 0x20, 0x9F, 0xE5 + .byte 0x70, 0x30, 0x9F, 0xE5, 0x80, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0x92, 0xE7, 0xB0, 0x30, 0x93, 0xE1 + .byte 0x01, 0x50, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x82, 0xE7, 0x00, 0x00, 0x51, 0xE3 + .byte 0x15, 0x53, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0x0A, 0x4C, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE7 + .byte 0x31, 0xFF, 0x2F, 0xE1, 0x44, 0x00, 0x9F, 0xE5, 0x44, 0x10, 0x9F, 0xE5, 0x03, 0x0A, 0x80, 0xE2 + .byte 0xF8, 0x2F, 0x90, 0xE5, 0x05, 0x20, 0x82, 0xE1, 0xF8, 0x2F, 0x80, 0xE5, 0x04, 0x00, 0x91, 0xE7 + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0x05, 0x00, 0xA0, 0xE1, 0x22, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0x34, 0x1D, 0x02, 0x18, 0x68, 0x10, 0x02, 0x24, 0x34, 0x1D, 0x02 + .byte 0x00, 0x00, 0x7E, 0x02, 0x20, 0x34, 0x1D, 0x02, 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0xC0, 0x9F, 0xE5 + .byte 0x1C, 0x30, 0x9F, 0xE5, 0x03, 0x0A, 0x8C, 0xE2, 0x18, 0x20, 0x9F, 0xE5, 0x18, 0x10, 0x9F, 0xE5 + .byte 0x7C, 0x3F, 0x80, 0xE5, 0xFE, 0x0D, 0x8C, 0xE2, 0x01, 0x20, 0x00, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0x7E, 0x02, 0x7D, 0x59, 0xDB, 0xFD, 0x5B, 0xDD, 0xF9, 0x7B, 0x00, 0x04, 0x00, 0x00 + .byte 0x24, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x30, 0xDC, 0xE1, 0x1C, 0x20, 0x9F, 0xE5 + .byte 0xB0, 0x10, 0xCC, 0xE1, 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x82, 0xE5, 0xB0, 0x00, 0xDC, 0xE1 + .byte 0x01, 0x00, 0xA0, 0xE1, 0xB0, 0x30, 0xCC, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x02, 0x00, 0x04 + .byte 0x14, 0x02, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x30, 0xE0, 0x9F, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0xB0, 0xC0, 0xDE, 0xE1, 0x28, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xE0, 0xE1 + .byte 0xB0, 0x30, 0xCE, 0xE1, 0x00, 0x00, 0x92, 0xE5, 0x01, 0x10, 0x00, 0xE0, 0x00, 0x10, 0x82, 0xE5 + .byte 0xB0, 0x10, 0xDE, 0xE1, 0xB0, 0xC0, 0xCE, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x02, 0x00, 0x04, 0x10, 0x02, 0x00, 0x04, 0x28, 0xC0, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x30, 0xDC, 0xE1, 0x20, 0x20, 0x9F, 0xE5, 0xB0, 0x10, 0xCC, 0xE1 + .byte 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x81, 0xE1, 0x00, 0x00, 0x82, 0xE5, 0xB0, 0x00, 0xDC, 0xE1 + .byte 0x01, 0x00, 0xA0, 0xE1, 0xB0, 0x30, 0xCC, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x02, 0x00, 0x04 + .byte 0x10, 0x02, 0x00, 0x04, 0x24, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x30, 0xDC, 0xE1 + .byte 0x1C, 0x20, 0x9F, 0xE5, 0xB0, 0x10, 0xCC, 0xE1, 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x82, 0xE5 + .byte 0xB0, 0x00, 0xDC, 0xE1, 0x01, 0x00, 0xA0, 0xE1, 0xB0, 0x30, 0xCC, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x08, 0x02, 0x00, 0x04, 0x10, 0x02, 0x00, 0x04, 0x10, 0x40, 0x2D, 0xE9, 0x0C, 0x30, 0xA0, 0xE3 + .byte 0x90, 0x03, 0x04, 0xE0, 0x2C, 0xC0, 0x9F, 0xE5, 0x03, 0x00, 0x80, 0xE2, 0x01, 0x30, 0xA0, 0xE3 + .byte 0x13, 0x00, 0xA0, 0xE1, 0x20, 0x30, 0x9F, 0xE5, 0x04, 0x10, 0x8C, 0xE7, 0x04, 0x20, 0x83, 0xE7 + .byte 0xD9, 0xFF, 0xFF, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE7 + .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x4C, 0x34, 0x1D, 0x02, 0x54, 0x34, 0x1D, 0x02 + .byte 0x50, 0x34, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x0C, 0x30, 0xA0, 0xE3, 0x90, 0x03, 0x06, 0xE0 + .byte 0x2C, 0xC0, 0x9F, 0xE5, 0x08, 0x40, 0x80, 0xE2, 0x01, 0x50, 0xA0, 0xE3, 0x15, 0x04, 0xA0, 0xE1 + .byte 0x20, 0x30, 0x9F, 0xE5, 0x06, 0x10, 0x8C, 0xE7, 0x06, 0x20, 0x83, 0xE7, 0xC6, 0xFF, 0xFF, 0xEB + .byte 0x15, 0x14, 0x00, 0xE0, 0x10, 0x00, 0x9F, 0xE5, 0x06, 0x10, 0x80, 0xE7, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0x34, 0x1D, 0x02, 0x24, 0x34, 0x1D, 0x02, 0x20, 0x34, 0x1D, 0x02 + .byte 0x7C, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x01, 0x10, 0x10, 0xE2, 0x15, 0x00, 0x00, 0x0A + .byte 0x08, 0x00, 0x53, 0xE3, 0x07, 0x00, 0x00, 0xBA, 0x0B, 0x00, 0x53, 0xE3, 0x05, 0x00, 0x00, 0xCA + .byte 0x08, 0x10, 0x43, 0xE2, 0x0C, 0x00, 0xA0, 0xE3, 0x91, 0x00, 0x02, 0xE0, 0x54, 0x00, 0x9F, 0xE5 + .byte 0x02, 0x00, 0x90, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1, 0x03, 0x00, 0x53, 0xE3, 0x07, 0x00, 0x00, 0xBA + .byte 0x06, 0x00, 0x53, 0xE3, 0x05, 0x00, 0x00, 0xCA, 0x01, 0x10, 0x83, 0xE2, 0x0C, 0x00, 0xA0, 0xE3 + .byte 0x91, 0x00, 0x02, 0xE0, 0x2C, 0x00, 0x9F, 0xE5, 0x02, 0x00, 0x90, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0x92, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x30, 0x83, 0xE2, 0x16, 0x00, 0x53, 0xE3 + .byte 0xA0, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0x82, 0xE2, 0xE2, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x7E, 0x02, 0x1C, 0x34, 0x1D, 0x02, 0xF0, 0x41, 0x2D, 0xE9 + .byte 0x00, 0x80, 0xA0, 0xE3, 0x78, 0xE0, 0x9F, 0xE5, 0x78, 0x50, 0x9F, 0xE5, 0x08, 0x60, 0xA0, 0xE1 + .byte 0x08, 0xC0, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE3, 0x0C, 0x20, 0xA0, 0xE3, 0x01, 0x40, 0x10, 0xE2 + .byte 0x11, 0x00, 0x00, 0x0A, 0x06, 0x70, 0xA0, 0xE1, 0x08, 0x00, 0x58, 0xE3, 0x03, 0x00, 0x00, 0xBA + .byte 0x0B, 0x00, 0x58, 0xE3, 0x08, 0x40, 0x48, 0xD2, 0x94, 0x52, 0x27, 0xD0, 0x06, 0x00, 0x00, 0xDA + .byte 0x03, 0x00, 0x58, 0xE3, 0x03, 0x00, 0x00, 0xBA, 0x06, 0x00, 0x58, 0xE3, 0x01, 0x40, 0x88, 0xD2 + .byte 0x94, 0x52, 0x27, 0xD0, 0x00, 0x00, 0x00, 0xDA, 0x08, 0x11, 0x8E, 0xE7, 0x00, 0x00, 0x57, 0xE3 + .byte 0x00, 0x10, 0x87, 0x15, 0x08, 0xC0, 0x87, 0x15, 0x04, 0x30, 0x87, 0x15, 0x01, 0x80, 0x88, 0xE2 + .byte 0x16, 0x00, 0x58, 0xE3, 0xA0, 0x00, 0xA0, 0xE1, 0xE7, 0xFF, 0xFF, 0xBA, 0xF0, 0x41, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x7E, 0x02, 0x1C, 0x34, 0x1D, 0x02, 0x0C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x60, 0x00, 0x7E, 0x02, 0x00, 0x10, 0x9F, 0xE5, 0x11, 0xFF, 0x2F, 0xE1, 0xE8, 0xA1, 0x0C, 0x02 + .byte 0x48, 0x30, 0x9F, 0xE5, 0x00, 0x10, 0x93, 0xE5, 0x11, 0x2F, 0x6F, 0xE1, 0x20, 0x00, 0x52, 0xE3 + .byte 0x40, 0x00, 0xA0, 0x13, 0x06, 0x00, 0x00, 0x1A, 0x04, 0x30, 0x83, 0xE2, 0x00, 0x10, 0x93, 0xE5 + .byte 0x11, 0x2F, 0x6F, 0xE1, 0x20, 0x00, 0x52, 0xE3, 0x24, 0x00, 0x9F, 0xE5, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x60, 0x00, 0xA0, 0xE3, 0x02, 0x00, 0x80, 0xE0, 0x02, 0x11, 0xA0, 0xE3, 0x31, 0x12, 0xA0, 0xE1 + .byte 0x00, 0x20, 0x93, 0xE5, 0x01, 0x20, 0xC2, 0xE1, 0x00, 0x20, 0x83, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xB0, 0xFF, 0x7F, 0x02, 0xFD, 0xFF, 0xFF, 0xFF, 0x24, 0x30, 0x9F, 0xE5, 0x60, 0x00, 0x50, 0xE3 + .byte 0x04, 0x30, 0x83, 0x52, 0x60, 0x00, 0x40, 0x52, 0x40, 0x00, 0x40, 0x42, 0x02, 0x11, 0xA0, 0xE3 + .byte 0x31, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0x93, 0xE5, 0x01, 0x20, 0x82, 0xE1, 0x00, 0x20, 0x83, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0xFF, 0x7F, 0x02, 0xB4, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x0C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0x02, 0x0B, 0x80, 0xE3, 0xB0, 0x00, 0xC1, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x02, 0x00, 0x04, 0x0C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1 + .byte 0x02, 0x0B, 0xC0, 0xE3, 0xB0, 0x00, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x02, 0x00, 0x04 + .byte 0x08, 0xC0, 0x9F, 0xE5, 0x08, 0x10, 0x9F, 0xE5, 0x08, 0x20, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0xA8, 0xA2, 0x0C, 0x02, 0xE0, 0xFF, 0x7F, 0x02, 0x30, 0xA1, 0x0C, 0x02, 0x08, 0xC0, 0x9F, 0xE5 + .byte 0x08, 0x10, 0x9F, 0xE5, 0x08, 0x20, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0xA3, 0x0C, 0x02 + .byte 0xE0, 0xFF, 0x7F, 0x02, 0x48, 0xA1, 0x0C, 0x02, 0x0C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1 + .byte 0x80, 0x00, 0x80, 0xE3, 0xB0, 0x00, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x02, 0x00, 0x04 + .byte 0x0C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0x80, 0x00, 0xC0, 0xE3, 0xB0, 0x00, 0xC1, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x02, 0x00, 0x04, 0x0C, 0xC0, 0x9F, 0xE5, 0x0C, 0x10, 0x9F, 0xE5 + .byte 0x0C, 0x20, 0x9F, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xA2, 0x0C, 0x02 + .byte 0xE8, 0xFF, 0x7F, 0x02, 0xB0, 0xA1, 0x0C, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x0C, 0x10, 0x9F, 0xE5 + .byte 0x0C, 0x20, 0x9F, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xB8, 0xA2, 0x0C, 0x02 + .byte 0xE8, 0xFF, 0x7F, 0x02, 0x98, 0xA1, 0x0C, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x0C, 0x10, 0x9F, 0xE5 + .byte 0x0C, 0x20, 0x9F, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x58, 0xA3, 0x0C, 0x02 + .byte 0xE8, 0xFF, 0x7F, 0x02, 0xB0, 0xA1, 0x0C, 0x02, 0xF0, 0x43, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x03, 0x60, 0xB0, 0xE1, 0x00, 0x90, 0xA0, 0xE1, 0x01, 0x80, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1 + .byte 0x02, 0x00, 0x00, 0x0A, 0x3C, 0x0C, 0x00, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x00, 0x00, 0xEA + .byte 0x2E, 0x0C, 0x00, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x09, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE1 + .byte 0xAE, 0x10, 0x00, 0xEB, 0x00, 0x40, 0xB0, 0xE1, 0x03, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x57, 0xE3 + .byte 0x00, 0x00, 0x00, 0x0A, 0x37, 0xFF, 0x2F, 0xE1, 0xB4, 0x90, 0xC8, 0xE1, 0x00, 0x00, 0x56, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1, 0x30, 0x0C, 0x00, 0xEB, 0x01, 0x00, 0x00, 0xEA + .byte 0x05, 0x00, 0xA0, 0xE1, 0x22, 0x0C, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xB8, 0xA2, 0x0C, 0x02, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x01, 0x70, 0xA0, 0xE1, 0xB4, 0x10, 0xD7, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1 + .byte 0x01, 0x00, 0x50, 0xE1, 0x04, 0xD0, 0x8D, 0x12, 0x01, 0x00, 0xE0, 0x13, 0xF0, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0x55, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x12, 0x0C, 0x00, 0xEB + .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x00, 0x00, 0xEA, 0x04, 0x0C, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x00, 0x00, 0xA0, 0xE3, 0xB4, 0x00, 0xC7, 0xE1, 0x00, 0x00, 0x56, 0xE3, 0x00, 0x00, 0x00, 0x0A + .byte 0x36, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x87, 0xE5, 0x00, 0x00, 0x55, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x0C, 0x00, 0xEB, 0x01, 0x00, 0x00, 0xEA + .byte 0x04, 0x00, 0xA0, 0xE1, 0xFA, 0x0B, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x58, 0xA3, 0x0C, 0x02, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x80, 0xA0, 0xE1 + .byte 0x01, 0x70, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1, 0xAD, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xF0, 0x41, 0xBD, 0xD8, 0x1E, 0xFF, 0x2F, 0xD1, 0x01, 0x4B, 0xA0, 0xE3 + .byte 0x04, 0x00, 0xA0, 0xE1, 0x99, 0xD8, 0xFC, 0xFB, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 + .byte 0x06, 0x20, 0xA0, 0xE1, 0x05, 0x30, 0xA0, 0xE1, 0xA2, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xF6, 0xFF, 0xFF, 0xCA, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0xC8, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x20, 0xA0, 0xE3 + .byte 0xB0, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x80, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x7E, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x81, 0xE5, 0xD7, 0xFF, 0xFF, 0xEB, 0x98, 0x50, 0x9F, 0xE5, 0xB6, 0x00, 0xD5, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x01, 0x4B, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x7A, 0xD8, 0xFC, 0xFB, 0xB6, 0x00, 0xD5, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x1A + .byte 0x74, 0x20, 0x9F, 0xE5, 0x00, 0xC0, 0xE0, 0xE3, 0x01, 0x08, 0xA0, 0xE3, 0x6C, 0x30, 0x9F, 0xE5 + .byte 0x6C, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0x82, 0xE5, 0x00, 0xC0, 0x60, 0xE2, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x28, 0x20, 0xA0, 0xE3, 0x00, 0xC0, 0x83, 0xE5, 0x6F, 0x0F, 0x00, 0xEB, 0x54, 0xC0, 0x9F, 0xE5 + .byte 0x40, 0x10, 0x9F, 0xE5, 0xB0, 0x30, 0xDC, 0xE1, 0x7E, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x02, 0x3B, 0x83, 0xE3, 0xB0, 0x30, 0xCC, 0xE1, 0xB0, 0x30, 0xDC, 0xE1, 0x80, 0x30, 0x83, 0xE3 + .byte 0xB0, 0x30, 0xCC, 0xE1, 0x8F, 0xFF, 0xFF, 0xEB, 0x18, 0x10, 0x9F, 0xE5, 0x7F, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x20, 0xA0, 0xE3, 0xB3, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x34, 0x1D, 0x02, 0xF0, 0xFF, 0x7F, 0x02, 0xB0, 0xFF, 0x7F, 0x02 + .byte 0xB4, 0xFF, 0x7F, 0x02, 0xC0, 0xFF, 0x7F, 0x02, 0x04, 0x02, 0x00, 0x04, 0xF0, 0x4F, 0x2D, 0xE9 + .byte 0x64, 0xD0, 0x4D, 0xE2, 0x02, 0x90, 0xA0, 0xE1, 0x54, 0x10, 0x8D, 0xE5, 0x5C, 0x00, 0x8D, 0xE5 + .byte 0x58, 0x00, 0x8D, 0xE5, 0xD0, 0x00, 0xD9, 0xE1, 0x00, 0x10, 0x8D, 0xE5, 0x03, 0xB0, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x13, 0x02, 0x00, 0x0A, 0x0A, 0x00, 0xA0, 0xE3, 0x0C, 0x00, 0x8D, 0xE5 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x8D, 0xE5, 0x20, 0x00, 0xA0, 0xE3, 0x1C, 0x00, 0x8D, 0xE5 + .byte 0x30, 0x00, 0xA0, 0xE3, 0x20, 0x00, 0x8D, 0xE5, 0x00, 0x00, 0xE0, 0xE3, 0x08, 0x00, 0x8D, 0xE5 + .byte 0x57, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x8D, 0xE5, 0x08, 0x00, 0xA0, 0xE3, 0x14, 0x00, 0x8D, 0xE5 + .byte 0x37, 0x00, 0xA0, 0xE3, 0x18, 0x00, 0x8D, 0xE5, 0x10, 0x00, 0xA0, 0xE3, 0x24, 0x00, 0x8D, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x28, 0x00, 0x8D, 0xE5, 0x2B, 0x00, 0xA0, 0xE3, 0x34, 0x00, 0x8D, 0xE5 + .byte 0x2D, 0x00, 0xA0, 0xE3, 0x30, 0x00, 0x8D, 0xE5, 0x02, 0x00, 0xA0, 0xE3, 0x2C, 0x00, 0x8D, 0xE5 + .byte 0xD0, 0x10, 0xD9, 0xE1, 0xFF, 0x00, 0x01, 0xE2, 0x20, 0x00, 0x20, 0xE2, 0xA1, 0x00, 0x40, 0xE2 + .byte 0x3C, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x2A, 0x54, 0x00, 0x8D, 0xE2, 0x54, 0x02, 0x00, 0xEB + .byte 0xD1, 0x10, 0xF9, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0xEB, 0x01, 0x00, 0x0A, 0x54, 0x00, 0x8D, 0xE2 + .byte 0x01, 0x90, 0x89, 0xE2, 0x4E, 0x02, 0x00, 0xEB, 0xE7, 0x01, 0x00, 0xEA, 0x25, 0x00, 0x51, 0xE3 + .byte 0x03, 0x00, 0x00, 0x0A, 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x90, 0x89, 0xE2, 0x48, 0x02, 0x00, 0xEB + .byte 0xE1, 0x01, 0x00, 0xEA, 0x04, 0x60, 0x9D, 0xE5, 0x08, 0x50, 0x9D, 0xE5, 0x0C, 0x20, 0x9D, 0xE5 + .byte 0x10, 0x00, 0x9D, 0xE5, 0x06, 0xA0, 0xA0, 0xE1, 0x09, 0x30, 0xA0, 0xE1, 0xD1, 0x40, 0xF9, 0xE1 + .byte 0x20, 0x00, 0x54, 0xE3, 0x02, 0x00, 0x00, 0xCA, 0x20, 0x00, 0x54, 0xE3, 0x10, 0x00, 0x00, 0x0A + .byte 0x15, 0x00, 0x00, 0xEA, 0x30, 0x00, 0x54, 0xE3, 0x13, 0x00, 0x00, 0xCA, 0x2B, 0x00, 0x54, 0xE3 + .byte 0x11, 0x00, 0x00, 0xBA, 0x2B, 0x00, 0x54, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x2D, 0x00, 0x54, 0xE3 + .byte 0x09, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x54, 0xE3, 0x09, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x00, 0xEA + .byte 0xD1, 0x10, 0x59, 0xE1, 0x20, 0x00, 0x51, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x02, 0x60, 0x86, 0xE3 + .byte 0xE9, 0xFF, 0xFF, 0xEA, 0x01, 0x60, 0x86, 0xE3, 0xE7, 0xFF, 0xFF, 0xEA, 0x08, 0x60, 0x86, 0xE3 + .byte 0xE5, 0xFF, 0xFF, 0xEA, 0x10, 0x60, 0x86, 0xE3, 0xE3, 0xFF, 0xFF, 0xEA, 0x2A, 0x00, 0x54, 0xE3 + .byte 0x0A, 0x00, 0x00, 0x1A, 0x04, 0xB0, 0x8B, 0xE2, 0x04, 0xA0, 0x1B, 0xE5, 0x01, 0x90, 0x89, 0xE2 + .byte 0x00, 0x00, 0x5A, 0xE3, 0x00, 0xA0, 0x6A, 0xB2, 0x08, 0x60, 0x86, 0xB3, 0x08, 0x00, 0x00, 0xEA + .byte 0xD1, 0x40, 0xD9, 0xE0, 0x0A, 0x10, 0xA0, 0xE3, 0x9A, 0x41, 0x21, 0xE0, 0x30, 0xA0, 0x41, 0xE2 + .byte 0xD0, 0x10, 0xD9, 0xE1, 0x30, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0xBA, 0x39, 0x00, 0x51, 0xE3 + .byte 0xF6, 0xFF, 0xFF, 0xDA, 0xD0, 0x10, 0xD9, 0xE1, 0x2E, 0x00, 0x51, 0xE3, 0x12, 0x00, 0x00, 0x1A + .byte 0xD1, 0x10, 0xF9, 0xE1, 0x04, 0x50, 0x9D, 0xE5, 0x2A, 0x00, 0x51, 0xE3, 0x09, 0x00, 0x00, 0x1A + .byte 0x04, 0xB0, 0x8B, 0xE2, 0x04, 0x50, 0x1B, 0xE5, 0x01, 0x90, 0x89, 0xE2, 0x00, 0x00, 0x55, 0xE3 + .byte 0x08, 0x50, 0x9D, 0xB5, 0x08, 0x00, 0x00, 0xEA, 0xD1, 0x40, 0xD9, 0xE0, 0x0A, 0x10, 0xA0, 0xE3 + .byte 0x95, 0x41, 0x21, 0xE0, 0x30, 0x50, 0x41, 0xE2, 0xD0, 0x10, 0xD9, 0xE1, 0x30, 0x00, 0x51, 0xE3 + .byte 0x01, 0x00, 0x00, 0xBA, 0x39, 0x00, 0x51, 0xE3, 0xF6, 0xFF, 0xFF, 0xDA, 0xD0, 0x10, 0xD9, 0xE1 + .byte 0x68, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x6C, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x0A + .byte 0x0A, 0x00, 0x00, 0xEA, 0xD1, 0x10, 0xF9, 0xE1, 0x68, 0x00, 0x51, 0xE3, 0x40, 0x60, 0x86, 0x13 + .byte 0x01, 0x90, 0x89, 0x02, 0x01, 0x6C, 0x86, 0x03, 0x04, 0x00, 0x00, 0xEA, 0xD1, 0x10, 0xF9, 0xE1 + .byte 0x6C, 0x00, 0x51, 0xE3, 0x20, 0x60, 0x86, 0x13, 0x01, 0x90, 0x89, 0x02, 0x80, 0x60, 0x86, 0x03 + .byte 0xD0, 0x10, 0xD9, 0xE1, 0x69, 0x00, 0x51, 0xE3, 0x10, 0x00, 0x00, 0xCA, 0x63, 0x00, 0x51, 0xE3 + .byte 0x06, 0x00, 0x00, 0xBA, 0x63, 0x00, 0x51, 0xE3, 0x29, 0x00, 0x00, 0x0A, 0x64, 0x00, 0x51, 0xE3 + .byte 0x95, 0x00, 0x00, 0x0A, 0x69, 0x00, 0x51, 0xE3, 0x93, 0x00, 0x00, 0x0A, 0x8B, 0x00, 0x00, 0xEA + .byte 0x25, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0xCA, 0x25, 0x00, 0x51, 0xE3, 0x80, 0x00, 0x00, 0x0A + .byte 0x86, 0x00, 0x00, 0xEA, 0x58, 0x00, 0x51, 0xE3, 0x18, 0x00, 0x00, 0x0A, 0x83, 0x00, 0x00, 0xEA + .byte 0x6E, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0xCA, 0x6E, 0x00, 0x51, 0xE3, 0x62, 0x00, 0x00, 0x0A + .byte 0x7E, 0x00, 0x00, 0xEA, 0x6F, 0x10, 0x41, 0xE2, 0x09, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90 + .byte 0x7A, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x77, 0x00, 0x00, 0xEA + .byte 0x76, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA, 0x74, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA + .byte 0x72, 0x00, 0x00, 0xEA, 0x71, 0x00, 0x00, 0xEA, 0x75, 0x00, 0x00, 0xEA, 0x14, 0x20, 0x9D, 0xE5 + .byte 0x01, 0x6A, 0x86, 0xE3, 0x74, 0x00, 0x00, 0xEA, 0x01, 0x6A, 0x86, 0xE3, 0x72, 0x00, 0x00, 0xEA + .byte 0x18, 0x00, 0x9D, 0xE5, 0x6E, 0x00, 0x00, 0xEA, 0x04, 0x60, 0x86, 0xE3, 0x14, 0x50, 0x9D, 0xE5 + .byte 0x6B, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x55, 0xE3, 0x64, 0x00, 0x00, 0xAA, 0x08, 0x00, 0x16, 0xE2 + .byte 0x04, 0xB0, 0x8B, 0xE2, 0x04, 0x40, 0x1B, 0xE5, 0x08, 0x00, 0x00, 0x0A, 0x04, 0x0C, 0xA0, 0xE1 + .byte 0x40, 0x1C, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0xB1, 0x01, 0x00, 0xEB, 0x1C, 0x10, 0x9D, 0xE5 + .byte 0x01, 0x20, 0x4A, 0xE2, 0x54, 0x00, 0x8D, 0xE2, 0x93, 0x01, 0x00, 0xEB, 0x0B, 0x00, 0x00, 0xEA + .byte 0x10, 0x00, 0x16, 0xE2, 0x20, 0x00, 0x9D, 0x15, 0x01, 0x20, 0x4A, 0xE2, 0x1C, 0x00, 0x9D, 0x05 + .byte 0x00, 0x0C, 0xA0, 0xE1, 0x40, 0x1C, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0x8A, 0x01, 0x00, 0xEB + .byte 0x04, 0x0C, 0xA0, 0xE1, 0x40, 0x1C, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0xA0, 0x01, 0x00, 0xEB + .byte 0x01, 0x90, 0x89, 0xE2, 0x38, 0x01, 0x00, 0xEA, 0x04, 0xB0, 0x8B, 0xE2, 0x00, 0x00, 0x55, 0xE3 + .byte 0x04, 0x70, 0x9D, 0xE5, 0x04, 0x40, 0x1B, 0xE5, 0x08, 0x00, 0x00, 0xAA, 0xD0, 0x00, 0xD4, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x01, 0x70, 0x87, 0xE2, 0xD7, 0x00, 0x94, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x05, 0x00, 0x00, 0xEA, 0x01, 0x70, 0x87, 0xE2 + .byte 0x05, 0x00, 0x57, 0xE1, 0x02, 0x00, 0x00, 0xAA, 0xD7, 0x00, 0x94, 0xE1, 0x00, 0x00, 0x50, 0xE3 + .byte 0xF9, 0xFF, 0xFF, 0x1A, 0x08, 0x00, 0x16, 0xE2, 0x07, 0xA0, 0x4A, 0xE0, 0x08, 0x00, 0x00, 0x0A + .byte 0x04, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0x52, 0x01, 0x00, 0xEB + .byte 0x1C, 0x10, 0x9D, 0xE5, 0x0A, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0x66, 0x01, 0x00, 0xEB + .byte 0x0B, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x16, 0xE2, 0x20, 0x00, 0x9D, 0x15, 0x0A, 0x20, 0xA0, 0xE1 + .byte 0x1C, 0x00, 0x9D, 0x05, 0x00, 0x0C, 0xA0, 0xE1, 0x40, 0x1C, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2 + .byte 0x5D, 0x01, 0x00, 0xEB, 0x04, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2 + .byte 0x41, 0x01, 0x00, 0xEB, 0x01, 0x90, 0x89, 0xE2, 0x0B, 0x01, 0x00, 0xEA, 0x01, 0x0C, 0x16, 0xE2 + .byte 0x58, 0x10, 0x9D, 0xE5, 0x5C, 0x00, 0x9D, 0xE5, 0x00, 0x20, 0x41, 0xE0, 0x0E, 0x00, 0x00, 0x1A + .byte 0x40, 0x00, 0x16, 0xE2, 0x04, 0xB0, 0x8B, 0x12, 0x04, 0x00, 0x1B, 0x15, 0xB0, 0x20, 0xC0, 0x11 + .byte 0x09, 0x00, 0x00, 0x1A, 0x80, 0x00, 0x16, 0xE2, 0x04, 0xB0, 0x8B, 0x02, 0x04, 0x00, 0x1B, 0x05 + .byte 0x00, 0x20, 0x80, 0x05, 0x04, 0x00, 0x00, 0x0A, 0x04, 0xB0, 0x8B, 0xE2, 0x04, 0x00, 0x1B, 0xE5 + .byte 0xC2, 0x1F, 0xA0, 0xE1, 0x00, 0x20, 0x80, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x01, 0x90, 0x89, 0xE2 + .byte 0xF5, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x83, 0xE2, 0x09, 0x00, 0x50, 0xE1, 0x03, 0x00, 0x00, 0x1A + .byte 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x90, 0x89, 0xE2, 0x55, 0x01, 0x00, 0xEB, 0xEE, 0x00, 0x00, 0xEA + .byte 0x54, 0x00, 0x8D, 0xE2, 0x03, 0x10, 0xA0, 0xE1, 0x03, 0x20, 0x49, 0xE0, 0x1E, 0x01, 0x00, 0xEB + .byte 0xE9, 0x00, 0x00, 0xEA, 0x24, 0x20, 0x9D, 0xE5, 0x01, 0x6A, 0x86, 0xE3, 0x08, 0x10, 0x16, 0xE2 + .byte 0x10, 0x60, 0xC6, 0x13, 0x00, 0x00, 0x55, 0xE3, 0x10, 0x60, 0xC6, 0xA3, 0x28, 0x50, 0x9D, 0xB5 + .byte 0x04, 0x70, 0x9D, 0xE5, 0x01, 0x1A, 0x16, 0xE2, 0x24, 0x00, 0x00, 0x0A, 0x01, 0x1C, 0x16, 0xE2 + .byte 0x04, 0xB0, 0x8B, 0x12, 0x04, 0x40, 0x5B, 0x15, 0x00, 0x10, 0xA0, 0x13, 0x0B, 0x00, 0x00, 0x1A + .byte 0x40, 0x10, 0x16, 0xE2, 0x04, 0xB0, 0x8B, 0x12, 0xB4, 0x40, 0x5B, 0x11, 0x00, 0x10, 0xA0, 0x13 + .byte 0x06, 0x00, 0x00, 0x1A, 0x80, 0x10, 0x16, 0xE2, 0x08, 0xB0, 0x8B, 0x12, 0x04, 0x10, 0x1B, 0x15 + .byte 0x08, 0x40, 0x1B, 0x15, 0x04, 0xB0, 0x8B, 0x02, 0x04, 0x40, 0x1B, 0x05, 0x00, 0x10, 0xA0, 0x03 + .byte 0x03, 0x60, 0xC6, 0xE3, 0x04, 0x30, 0x16, 0xE2, 0x3E, 0x00, 0x00, 0x0A, 0x10, 0x00, 0x52, 0xE3 + .byte 0x09, 0x00, 0x00, 0x1A, 0x00, 0x30, 0xA0, 0xE3, 0x03, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x54, 0x01 + .byte 0x38, 0x00, 0x00, 0x0A, 0x20, 0x30, 0x9D, 0xE5, 0x2C, 0x70, 0x9D, 0xE5, 0x39, 0x30, 0xCD, 0xE5 + .byte 0x21, 0x30, 0x80, 0xE2, 0x38, 0x30, 0xCD, 0xE5, 0x32, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x52, 0xE3 + .byte 0x20, 0x30, 0x9D, 0x05, 0x28, 0x70, 0x9D, 0x05, 0x38, 0x30, 0xCD, 0x05, 0x2D, 0x00, 0x00, 0xEA + .byte 0x01, 0x1C, 0x16, 0xE2, 0x04, 0xB0, 0x8B, 0x12, 0xD4, 0x40, 0x5B, 0x11, 0xC4, 0x1F, 0xA0, 0x11 + .byte 0x0B, 0x00, 0x00, 0x1A, 0x40, 0x10, 0x16, 0xE2, 0x04, 0xB0, 0x8B, 0x12, 0xF4, 0x40, 0x5B, 0x11 + .byte 0xC4, 0x1F, 0xA0, 0x11, 0x06, 0x00, 0x00, 0x1A, 0x80, 0x10, 0x16, 0xE2, 0x08, 0xB0, 0x8B, 0x12 + .byte 0x08, 0x40, 0x1B, 0x15, 0x04, 0x10, 0x1B, 0x15, 0x04, 0xB0, 0x8B, 0x02, 0x04, 0x40, 0x1B, 0x05 + .byte 0xC4, 0x1F, 0xA0, 0x01, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x80, 0x03, 0xE2, 0x03, 0x00, 0x58, 0xE1 + .byte 0x02, 0x81, 0x01, 0xE2, 0x03, 0x00, 0x58, 0x01, 0x08, 0x00, 0x00, 0x0A, 0x30, 0x70, 0x9D, 0xE5 + .byte 0x04, 0x40, 0xE0, 0xE1, 0x38, 0x70, 0xCD, 0xE5, 0x01, 0x70, 0xE0, 0xE1, 0x01, 0x10, 0xA0, 0xE3 + .byte 0x01, 0x40, 0x94, 0xE0, 0x03, 0x10, 0xA7, 0xE0, 0x28, 0x70, 0x9D, 0xE5, 0x0D, 0x00, 0x00, 0xEA + .byte 0x03, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x54, 0x01, 0x01, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x55, 0xE3 + .byte 0x08, 0x00, 0x00, 0x0A, 0x02, 0x30, 0x16, 0xE2, 0x34, 0x30, 0x9D, 0x15, 0x28, 0x70, 0x9D, 0x15 + .byte 0x38, 0x30, 0xCD, 0x15, 0x03, 0x00, 0x00, 0x1A, 0x01, 0x30, 0x16, 0xE2, 0x1C, 0x30, 0x9D, 0x15 + .byte 0x28, 0x70, 0x9D, 0x15, 0x38, 0x30, 0xCD, 0x15, 0x08, 0x00, 0x52, 0xE3, 0x04, 0x80, 0x9D, 0xE5 + .byte 0x04, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x52, 0xE3, 0x14, 0x00, 0x00, 0x0A, 0x10, 0x00, 0x52, 0xE3 + .byte 0x39, 0x00, 0x00, 0x0A, 0x4B, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + .byte 0x00, 0x00, 0x54, 0x01, 0x47, 0x00, 0x00, 0x0A, 0x07, 0x00, 0x04, 0xE2, 0x30, 0x30, 0x80, 0xE2 + .byte 0x3A, 0x00, 0x8D, 0xE2, 0x08, 0x30, 0xC0, 0xE7, 0xA4, 0x41, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE3 + .byte 0xA1, 0x01, 0xA0, 0xE1, 0x81, 0x4E, 0x84, 0xE1, 0x02, 0x00, 0x50, 0xE1, 0x02, 0x00, 0x54, 0x01 + .byte 0x00, 0x10, 0xA0, 0xE1, 0x01, 0x80, 0x88, 0xE2, 0xF2, 0xFF, 0xFF, 0x1A, 0x39, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x51, 0x01, 0x0E, 0x00, 0x00, 0x1A + .byte 0x00, 0x00, 0x54, 0xE3, 0x33, 0x00, 0x00, 0x0A, 0x00, 0x02, 0x9F, 0xE5, 0x94, 0x10, 0x80, 0xE0 + .byte 0xA0, 0x01, 0xB0, 0xE1, 0x0A, 0x10, 0xA0, 0xE3, 0x90, 0x01, 0x01, 0xE0, 0x01, 0x10, 0x44, 0xE0 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x30, 0x10, 0x81, 0xE2, 0x3A, 0x00, 0x8D, 0xE2, 0x08, 0x10, 0xC0, 0xE7 + .byte 0x01, 0x80, 0x88, 0xE2, 0xF3, 0xFF, 0xFF, 0x1A, 0x26, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x51, 0xE1 + .byte 0x00, 0x00, 0x54, 0x01, 0x23, 0x00, 0x00, 0x0A, 0x0C, 0x20, 0x9D, 0xE5, 0x04, 0x30, 0x9D, 0xE5 + .byte 0x04, 0x00, 0xA0, 0xE1, 0x0F, 0x84, 0x00, 0xEB, 0x0A, 0x30, 0xA0, 0xE3, 0x90, 0x33, 0x8C, 0xE0 + .byte 0x03, 0x30, 0x54, 0xE0, 0x00, 0x20, 0xA0, 0xE3, 0x30, 0x40, 0x83, 0xE2, 0x3A, 0x30, 0x8D, 0xE2 + .byte 0x08, 0x40, 0xC3, 0xE7, 0x02, 0x00, 0x51, 0xE1, 0x02, 0x00, 0x50, 0x01, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x01, 0x80, 0x88, 0xE2, 0xEF, 0xFF, 0xFF, 0x1A, 0x12, 0x00, 0x00, 0xEA, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x02, 0x00, 0x51, 0xE1, 0x02, 0x00, 0x54, 0x01, 0x0E, 0x00, 0x00, 0x0A, 0x0F, 0x30, 0x04, 0xE2 + .byte 0x0A, 0x00, 0x53, 0xE3, 0x24, 0x42, 0xA0, 0xE1, 0x30, 0x30, 0x83, 0xB2, 0x21, 0x22, 0xA0, 0xE1 + .byte 0x01, 0x4E, 0x84, 0xE1, 0x02, 0x10, 0xA0, 0xE1, 0x00, 0x30, 0x83, 0xA0, 0x3A, 0x20, 0x8D, 0xE2 + .byte 0x08, 0x30, 0xC2, 0xE7, 0x00, 0x20, 0xA0, 0xE3, 0x02, 0x00, 0x51, 0xE1, 0x01, 0x80, 0x88, 0xE2 + .byte 0x02, 0x00, 0x54, 0x01, 0xF0, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x57, 0xE3, 0x06, 0x00, 0x00, 0xDA + .byte 0xD8, 0x03, 0xDD, 0xE1, 0x30, 0x00, 0x50, 0xE3, 0x20, 0x10, 0x9D, 0x05, 0x3A, 0x00, 0x8D, 0x02 + .byte 0x08, 0x10, 0xC0, 0x07, 0x04, 0x70, 0x9D, 0x05, 0x01, 0x80, 0x88, 0x02, 0x08, 0x50, 0x45, 0xE0 + .byte 0x10, 0x00, 0x16, 0xE2, 0x03, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x4A, 0xE0, 0x07, 0x00, 0x40, 0xE0 + .byte 0x00, 0x00, 0x55, 0xE1, 0x00, 0x50, 0xA0, 0xB1, 0x00, 0x00, 0x55, 0xE3, 0x05, 0xA0, 0x4A, 0xC0 + .byte 0x08, 0x00, 0x87, 0xE0, 0x08, 0x60, 0x16, 0xE2, 0x00, 0xA0, 0x4A, 0xE0, 0x03, 0x00, 0x00, 0x1A + .byte 0x1C, 0x10, 0x9D, 0xE5, 0x54, 0x00, 0x8D, 0xE2, 0x0A, 0x20, 0xA0, 0xE1, 0x6A, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x57, 0xE3, 0x07, 0x00, 0x00, 0xDA, 0x38, 0x00, 0x8D, 0xE2, 0x07, 0x40, 0x80, 0xE0 + .byte 0xD1, 0x10, 0x74, 0xE1, 0x01, 0x70, 0x47, 0xE2, 0x54, 0x00, 0x8D, 0xE2, 0x7C, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x57, 0xE3, 0xF9, 0xFF, 0xFF, 0xCA, 0x20, 0x10, 0x9D, 0xE5, 0x05, 0x20, 0xA0, 0xE1 + .byte 0x54, 0x00, 0x8D, 0xE2, 0x5C, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x58, 0xE3, 0x07, 0x00, 0x00, 0xDA + .byte 0x3A, 0x00, 0x8D, 0xE2, 0x08, 0x40, 0x80, 0xE0, 0xD1, 0x10, 0x74, 0xE1, 0x01, 0x80, 0x48, 0xE2 + .byte 0x54, 0x00, 0x8D, 0xE2, 0x6E, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x58, 0xE3, 0xF9, 0xFF, 0xFF, 0xCA + .byte 0x00, 0x00, 0x56, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x1C, 0x10, 0x9D, 0xE5, 0x0A, 0x20, 0xA0, 0xE1 + .byte 0x54, 0x00, 0x8D, 0xE2, 0x4C, 0x00, 0x00, 0xEB, 0x01, 0x90, 0x89, 0xE2, 0xD0, 0x00, 0xD9, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x05, 0xFE, 0xFF, 0x1A, 0x54, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x58, 0x00, 0x9D, 0x15, 0x00, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xC0, 0x15, 0x05, 0x00, 0x00, 0x1A + .byte 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x5C, 0x10, 0x9D, 0x15, 0x00, 0x20, 0xA0, 0x13 + .byte 0x00, 0x00, 0x81, 0x10, 0x01, 0x20, 0x40, 0x15, 0x58, 0x10, 0x9D, 0xE5, 0x5C, 0x00, 0x9D, 0xE5 + .byte 0x00, 0x00, 0x41, 0xE0, 0x64, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xCD, 0xCC, 0xCC, 0xCC, 0x0F, 0x00, 0x2D, 0xE9, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x10, 0x30, 0x8D, 0xE2, 0x03, 0x30, 0xC3, 0xE3, 0x10, 0x20, 0x9D, 0xE5, 0x04, 0x30, 0x83, 0xE2 + .byte 0xC5, 0xFD, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0xC0, 0x9F, 0xE5, 0x02, 0x30, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1 + .byte 0x02, 0x11, 0xE0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x9C, 0xA4, 0x0C, 0x02, 0x0F, 0x00, 0x2D, 0xE9 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x0C, 0x20, 0x8D, 0xE2, 0x03, 0x20, 0xC2, 0xE3 + .byte 0x0C, 0x10, 0x9D, 0xE5, 0x04, 0x20, 0x82, 0xE2, 0xF1, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x00, 0x52, 0xE3, 0x10, 0x40, 0xBD, 0xD8, 0x1E, 0xFF, 0x2F, 0xD1, 0x00, 0xE0, 0x90, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE3, 0x02, 0x00, 0x5E, 0xE1, 0x02, 0xE0, 0xA0, 0x81, 0x00, 0x00, 0x5E, 0xE3 + .byte 0x05, 0x00, 0x00, 0x9A, 0xD4, 0xC0, 0x91, 0xE1, 0x04, 0x30, 0x90, 0xE5, 0x04, 0xC0, 0xC3, 0xE7 + .byte 0x01, 0x40, 0x84, 0xE2, 0x0E, 0x00, 0x54, 0xE1, 0xF9, 0xFF, 0xFF, 0x3A, 0x00, 0x10, 0x90, 0xE5 + .byte 0x0E, 0x10, 0x41, 0xE0, 0x00, 0x10, 0x80, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE0 + .byte 0x04, 0x10, 0x80, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x00, 0x52, 0xE3, 0x04, 0xD0, 0x8D, 0xD2, 0x00, 0x40, 0xBD, 0xD8 + .byte 0x1E, 0xFF, 0x2F, 0xD1, 0x00, 0xC0, 0x90, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0x02, 0x00, 0x5C, 0xE1 + .byte 0x02, 0xC0, 0xA0, 0x81, 0x00, 0x00, 0x5C, 0xE3, 0x04, 0x00, 0x00, 0x9A, 0x04, 0x30, 0x90, 0xE5 + .byte 0x0E, 0x10, 0xC3, 0xE7, 0x01, 0xE0, 0x8E, 0xE2, 0x0C, 0x00, 0x5E, 0xE1, 0xFA, 0xFF, 0xFF, 0x3A + .byte 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x10, 0x41, 0xE0, 0x00, 0x10, 0x80, 0xE5, 0x04, 0x10, 0x90, 0xE5 + .byte 0x02, 0x10, 0x81, 0xE0, 0x04, 0x10, 0x80, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x04, 0x20, 0x90, 0x15 + .byte 0x00, 0x10, 0xC2, 0x15, 0x00, 0x10, 0x90, 0x15, 0x01, 0x10, 0x41, 0x12, 0x00, 0x10, 0x80, 0x15 + .byte 0x04, 0x10, 0x90, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x04, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x04, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x94, 0x34, 0x1D, 0x02 + .byte 0xB4, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9, 0x07, 0x09, 0x00, 0xEB + .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5, 0x00, 0x00, 0x53, 0xE3 + .byte 0x01, 0x20, 0x43, 0x12, 0x03, 0x40, 0xA0, 0x11, 0x00, 0x20, 0x81, 0x15, 0x04, 0x09, 0x00, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x34, 0x1D, 0x02 + .byte 0x10, 0x40, 0x2D, 0xE9, 0xF9, 0x08, 0x00, 0xEB, 0x24, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x30, 0x92, 0xE5, 0x01, 0x00, 0x53, 0xE1, 0x01, 0x10, 0x83, 0x32, 0x03, 0x40, 0xA0, 0x31 + .byte 0x00, 0x10, 0x82, 0x35, 0xF6, 0x08, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x34, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0xE5, 0x08, 0x00, 0xEB, 0x36, 0x0A, 0x00, 0xEB, 0xFD, 0xFF, 0xFF, 0xEA, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xE4, 0x08, 0x00, 0xEB, 0x18, 0x10, 0x9F, 0xE5 + .byte 0x0C, 0x40, 0x91, 0xE5, 0x0C, 0x50, 0x81, 0xE5, 0xE5, 0x08, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02 + .byte 0x00, 0x20, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x08, 0xC0, 0x9F, 0xE5 + .byte 0x02, 0x00, 0xA0, 0xE1, 0xB0, 0x10, 0x82, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x30, 0xB2, 0x0C, 0x02 + .byte 0x30, 0x40, 0x2D, 0xE9, 0x34, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x00, 0x8D, 0xE2 + .byte 0x68, 0x08, 0x00, 0xEB, 0x84, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x00, 0x8D, 0xE5, 0xC9, 0x08, 0x00, 0xEB, 0x74, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x94, 0x51, 0x83, 0xE0, 0x94, 0x32, 0x23, 0xE0, 0x92, 0x31, 0x23, 0xE0, 0x25, 0x13, 0xA0, 0xE1 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x50, 0x9D, 0xE5, 0x08, 0x00, 0x8D, 0xE2, 0x04, 0x20, 0x8D, 0xE2 + .byte 0xB0, 0x00, 0x85, 0xE5, 0x00, 0x20, 0x8D, 0xE5, 0x23, 0x23, 0xA0, 0xE1, 0x03, 0x1D, 0x81, 0xE1 + .byte 0x40, 0x30, 0x9F, 0xE5, 0xE5, 0x07, 0x00, 0xEB, 0x04, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x05, 0x00, 0x00, 0x0A, 0x00, 0x50, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0xA8, 0x00, 0x00, 0xEB + .byte 0x04, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x1A, 0x04, 0x00, 0xA0, 0xE1 + .byte 0xB3, 0x08, 0x00, 0xEB, 0x34, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x90, 0x34, 0x1D, 0x02, 0xEA, 0x82, 0x00, 0x00, 0xA0, 0xAF, 0x0C, 0x02, 0x70, 0x00, 0x90, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0xA0, 0x20, 0x9F, 0xE5, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x01, 0x50, 0xA0, 0xE1, 0x08, 0x80, 0x92, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0x9F, 0x08, 0x00, 0xEB + .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x00, 0x00, 0xEA, 0x08, 0x70, 0xA0, 0xE1, 0x68, 0x80, 0x98, 0xE5 + .byte 0x00, 0x00, 0x58, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x58, 0xE1, 0xF9, 0xFF, 0xFF, 0x1A + .byte 0x00, 0x00, 0x58, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x64, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x58, 0xE1 + .byte 0x04, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x95, 0x08, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x00, 0x98, 0xE5, 0x05, 0x00, 0x50, 0xE1 + .byte 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x57, 0xE3, 0x68, 0x10, 0x96, 0x05, 0x2C, 0x00, 0x9F, 0x05 + .byte 0x08, 0x10, 0x80, 0x05, 0x68, 0x00, 0x96, 0x15, 0x68, 0x00, 0x87, 0x15, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x70, 0x50, 0x86, 0xE5, 0x02, 0x02, 0x00, 0xEB, 0xB4, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x83, 0x08, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x98, 0x34, 0x1D, 0x02, 0xA8, 0x34, 0x1D, 0x02, 0xF0, 0x41, 0x2D, 0xE9, 0xAC, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x70, 0xA0, 0xE3, 0x07, 0x60, 0xA0, 0xE1, 0x07, 0x50, 0xA0, 0xE1, 0x04, 0x80, 0x90, 0xE5 + .byte 0x72, 0x08, 0x00, 0xEB, 0x94, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x20, 0x91, 0xE5 + .byte 0x07, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x70, 0x10, 0x98, 0xE5 + .byte 0x08, 0x00, 0x52, 0xE1, 0x00, 0x70, 0xA0, 0x01, 0x70, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x51, 0xE1 + .byte 0x02, 0x60, 0xA0, 0x01, 0x02, 0x00, 0xA0, 0xE1, 0x68, 0x20, 0x92, 0xE5, 0x01, 0x50, 0x85, 0x02 + .byte 0x00, 0x00, 0x52, 0xE3, 0xF5, 0xFF, 0xFF, 0x1A, 0x01, 0x00, 0x55, 0xE3, 0x01, 0x00, 0x00, 0xDA + .byte 0x08, 0x00, 0x56, 0xE1, 0x03, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x60, 0x08, 0x00, 0xEB + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x57, 0xE3, 0x68, 0x10, 0x98, 0x05 + .byte 0x28, 0x00, 0x9F, 0x05, 0x08, 0x10, 0x80, 0x05, 0x68, 0x00, 0x98, 0x15, 0x68, 0x00, 0x87, 0x15 + .byte 0x68, 0x00, 0x96, 0xE5, 0x68, 0x00, 0x88, 0xE5, 0x68, 0x80, 0x86, 0xE5, 0x83, 0x01, 0x00, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x52, 0x08, 0x00, 0xEB, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x98, 0x34, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x48, 0x08, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x7A, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x49, 0x08, 0x00, 0xEB, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0x00, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x00, 0xEA + .byte 0x68, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0x64, 0x10, 0x90, 0xE5 + .byte 0x01, 0x00, 0x51, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02 + .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x33, 0x08, 0x00, 0xEB + .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1, 0x64, 0x10, 0x85, 0xE5, 0x63, 0x01, 0x00, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x32, 0x08, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1 + .byte 0x26, 0x08, 0x00, 0xEB, 0x00, 0x10, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3 + .byte 0x12, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x01, 0x70, 0xA0, 0xE3 + .byte 0x00, 0x60, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0xD8, 0x01, 0x00, 0xEB, 0x64, 0x70, 0x80, 0xE5 + .byte 0x78, 0x60, 0x80, 0xE5, 0x80, 0x60, 0x80, 0xE5, 0x80, 0x10, 0x90, 0xE5, 0x7C, 0x10, 0x80, 0xE5 + .byte 0x00, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xF5, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x85, 0xE5, 0x04, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x85, 0xE5, 0x43, 0x01, 0x00, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x12, 0x08, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x07, 0x08, 0x00, 0xEB + .byte 0x3C, 0x10, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x56, 0xE3 + .byte 0x00, 0x40, 0x90, 0xE5, 0x03, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1 + .byte 0x78, 0x60, 0x84, 0xE5, 0xC6, 0x01, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x64, 0x00, 0x84, 0xE5 + .byte 0x2E, 0x01, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0xFD, 0x07, 0x00, 0xEB, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x90, 0x34, 0x1D, 0x02, 0x64, 0x00, 0x90, 0xE5, 0x02, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xEC, 0x07, 0x00, 0xEB, 0x64, 0x10, 0x95, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x9C, 0x00, 0x85, 0xE2 + .byte 0xDB, 0xFF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xE9, 0x07, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0xB0, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x00, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0xDF, 0x06, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1 + .byte 0xD2, 0x07, 0x00, 0xEB, 0x6C, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x00, 0x91, 0xE5 + .byte 0x05, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x00, 0x1A, 0x17, 0x00, 0x00, 0xEB, 0xCF, 0xFE, 0xFF, 0xEB + .byte 0x05, 0x00, 0xA0, 0xE1, 0xDB, 0x02, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0xE5, 0xFF, 0xFF, 0xEB + .byte 0x78, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x69, 0x01, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x2F, 0x01, 0x00, 0xEB, 0x02, 0x10, 0xA0, 0xE3 + .byte 0x9C, 0x00, 0x85, 0xE2, 0x64, 0x10, 0x85, 0xE5, 0x91, 0xFF, 0xFF, 0xEB, 0xB1, 0xFE, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0xBE, 0x07, 0x00, 0xEB, 0x6D, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0xB3, 0xFE, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0xBF, 0x02, 0x00, 0xEB, 0x78, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0x00, 0x0A, 0x04, 0x10, 0xA0, 0xE1, 0x4F, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x15, 0x01, 0x00, 0xEB, 0x02, 0x10, 0xA0, 0xE3, 0x9C, 0x00, 0x84, 0xE2, 0x64, 0x10, 0x84, 0xE5 + .byte 0x77, 0xFF, 0xFF, 0xEB, 0x97, 0xFE, 0xFF, 0xEB, 0x55, 0xFF, 0xFF, 0xEB, 0xEF, 0x08, 0x00, 0xEB + .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x90, 0x34, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x30, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x30, 0x91, 0xE5 + .byte 0xB4, 0x20, 0x93, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x10, 0xA0, 0xE3 + .byte 0xB4, 0x10, 0x83, 0xE5, 0x32, 0xFF, 0x2F, 0xE1, 0x90, 0x07, 0x00, 0xEB, 0xDA, 0xFF, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x90, 0x34, 0x1D, 0x02 + .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x58, 0x20, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE1 + .byte 0x00, 0x20, 0x92, 0xE5, 0x01, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x0C, 0x00, 0x00, 0x0A + .byte 0x44, 0x10, 0x9F, 0xE5, 0x6E, 0x01, 0x00, 0xEB, 0x04, 0x40, 0x85, 0xE5, 0x00, 0x10, 0x95, 0xE5 + .byte 0x05, 0x00, 0xA0, 0xE1, 0x80, 0x10, 0x81, 0xE3, 0x00, 0x10, 0x85, 0xE5, 0x01, 0x10, 0xA0, 0xE3 + .byte 0x64, 0x10, 0x85, 0xE5, 0x94, 0x01, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0xA0, 0xE1, 0xD7, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0x34, 0x1D, 0x02, 0x9C, 0xB4, 0x0C, 0x02 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x6C, 0x07, 0x00, 0xEB, 0x14, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0xDC, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02, 0xF0, 0x41, 0x2D, 0xE9 + .byte 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1, 0x03, 0x60, 0xA0, 0xE1 + .byte 0x5E, 0x07, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x43, 0x01, 0x00, 0xEB, 0x1C, 0x20, 0x9D, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x70, 0x20, 0x88, 0xE5, 0x6C, 0x00, 0x88, 0xE5, 0x64, 0x10, 0x88, 0xE5 + .byte 0x74, 0x10, 0x88, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0xD5, 0x00, 0x00, 0xEB, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x94, 0x60, 0x88, 0xE5, 0x18, 0x00, 0x9D, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x50, 0x46, 0xE0 + .byte 0x04, 0x20, 0x46, 0xE2, 0x90, 0x50, 0x88, 0xE5, 0x98, 0xC0, 0x88, 0xE5, 0x94, 0x30, 0x9F, 0xE5 + .byte 0x94, 0x00, 0x98, 0xE5, 0x90, 0x60, 0x9F, 0xE5, 0x04, 0x30, 0x00, 0xE5, 0x90, 0x30, 0x98, 0xE5 + .byte 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x60, 0x83, 0xE5, 0xA0, 0xC0, 0x88, 0xE5, 0xA0, 0x30, 0x98, 0xE5 + .byte 0x9C, 0x30, 0x88, 0xE5, 0x2E, 0x01, 0x00, 0xEB, 0x04, 0x70, 0x88, 0xE5, 0x04, 0x10, 0x85, 0xE2 + .byte 0x68, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x3C, 0x20, 0x88, 0xE5, 0x18, 0x20, 0x9D, 0xE5 + .byte 0x08, 0x20, 0x42, 0xE2, 0xF4, 0x0A, 0x00, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x84, 0x10, 0x88, 0xE5 + .byte 0x88, 0x10, 0x88, 0xE5, 0x8C, 0x10, 0x88, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x27, 0xFE, 0xFF, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x78, 0x00, 0x88, 0xE5, 0x80, 0x00, 0x88, 0xE5, 0x80, 0x20, 0x98, 0xE5 + .byte 0xA4, 0x10, 0x88, 0xE2, 0x7C, 0x20, 0x88, 0xE5, 0x0C, 0x20, 0xA0, 0xE3, 0xE6, 0x0A, 0x00, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0x88, 0xE5, 0x2C, 0x07, 0x00, 0xEB + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7D, 0x59, 0xDB, 0xFD, 0x5B, 0xDD, 0xF9, 0x7B + .byte 0x50, 0xB5, 0x0C, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x10, 0x31, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x93, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x08, 0xD0, 0x8D, 0x12, 0x70, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0xFC, 0xC0, 0x9F, 0xE5, 0xFC, 0x10, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3 + .byte 0xF8, 0x00, 0x9F, 0xE5, 0x01, 0x60, 0xA0, 0xE3, 0x10, 0x40, 0xA0, 0xE3, 0x08, 0x10, 0x80, 0xE5 + .byte 0x04, 0x10, 0x80, 0xE5, 0x00, 0x00, 0x5C, 0xE3, 0xE4, 0x00, 0x9F, 0xD5, 0x70, 0x40, 0x81, 0xE5 + .byte 0x0C, 0x40, 0x40, 0xD0, 0x6C, 0xE0, 0x81, 0xE5, 0x64, 0x60, 0x81, 0xE5, 0x68, 0xE0, 0x81, 0xE5 + .byte 0x74, 0xE0, 0x81, 0xE5, 0xCC, 0x10, 0x9F, 0xC5, 0xCC, 0x00, 0x9F, 0xC5, 0xFE, 0x1D, 0x81, 0xC2 + .byte 0x00, 0x00, 0x41, 0xC0, 0x0C, 0x40, 0x40, 0xC0, 0xB8, 0x10, 0x9F, 0xE5, 0xBC, 0x50, 0x9F, 0xE5 + .byte 0xBC, 0x20, 0x9F, 0xE5, 0xB0, 0x00, 0x9F, 0xE5, 0x00, 0x50, 0x82, 0xE5, 0x98, 0x20, 0x9F, 0xE5 + .byte 0xFE, 0x1D, 0x81, 0xE2, 0x00, 0x60, 0x83, 0xE5, 0x00, 0x30, 0x41, 0xE0, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xA0, 0x10, 0x9F, 0xE5, 0x94, 0x30, 0x82, 0xE5, 0x90, 0x40, 0x82, 0xE5, 0x98, 0x00, 0x82, 0xE5 + .byte 0x04, 0x10, 0x03, 0xE5, 0x90, 0x30, 0x92, 0xE5, 0x8C, 0xC0, 0x9F, 0xE5, 0x6C, 0x10, 0x9F, 0xE5 + .byte 0x00, 0xC0, 0x83, 0xE5, 0x84, 0x30, 0x9F, 0xE5, 0xA0, 0x00, 0x82, 0xE5, 0x9C, 0x00, 0x82, 0xE5 + .byte 0xB0, 0x00, 0xC1, 0xE1, 0xB2, 0x00, 0xC1, 0xE1, 0x00, 0x10, 0x83, 0xE5, 0x02, 0xFE, 0xFF, 0xEB + .byte 0xC8, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0x1F, 0xC0, 0xA0, 0xE3, 0x60, 0x00, 0x9F, 0xE5 + .byte 0x60, 0x10, 0x9F, 0xE5, 0x60, 0x30, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x04, 0xC0, 0x8D, 0xE5 + .byte 0x7D, 0xFF, 0xFF, 0xEB, 0x48, 0x00, 0x9F, 0xE5, 0x20, 0x20, 0xA0, 0xE3, 0x01, 0x10, 0xA0, 0xE3 + .byte 0x70, 0x20, 0x80, 0xE5, 0x64, 0x10, 0x80, 0xE5, 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x94, 0x34, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x68, 0x35, 0x1D, 0x02 + .byte 0x98, 0x34, 0x1D, 0x02, 0x80, 0x00, 0x7E, 0x02, 0x00, 0x00, 0x7E, 0x02, 0x00, 0x04, 0x00, 0x00 + .byte 0x9C, 0x34, 0x1D, 0x02, 0x90, 0x34, 0x1D, 0x02, 0x7D, 0x59, 0xDB, 0xFD, 0x5B, 0xDD, 0xF9, 0x7B + .byte 0xA0, 0xFF, 0x7F, 0x02, 0xA8, 0x34, 0x1D, 0x02, 0x58, 0xAF, 0x0C, 0x02, 0xF0, 0x36, 0x1D, 0x02 + .byte 0x70, 0x40, 0x2D, 0xE9, 0xD0, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0xC0, 0x40, 0x9F, 0xE5, 0xB2, 0x00, 0xD4, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0xD9, 0x06, 0x00, 0xEB, 0x12, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC4, 0xE1, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x60, 0x90, 0xE5 + .byte 0x73, 0xFE, 0xFF, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x05, 0x00, 0x56, 0xE1, 0x70, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x55, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x64, 0x00, 0x96, 0xE5, 0x02, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1 + .byte 0xB2, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x32, 0xFF, 0x2F, 0xE1, 0x0C, 0x20, 0x94, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x32, 0xFF, 0x2F, 0xE1, 0x14, 0x10, 0x9F, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x50, 0x81, 0xE5 + .byte 0xB1, 0x00, 0x00, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x34, 0x1D, 0x02 + .byte 0x98, 0x34, 0x1D, 0x02, 0x90, 0x34, 0x1D, 0x02, 0x8C, 0x34, 0x1D, 0x02, 0x3C, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x08, 0x10, 0x91, 0xE5, 0x01, 0x00, 0x00, 0xEA, 0x01, 0x20, 0xA0, 0xE1 + .byte 0x68, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE1 + .byte 0xF9, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x52, 0xE3, 0x68, 0x10, 0x90, 0x05, 0x0C, 0x00, 0x9F, 0x05 + .byte 0x08, 0x10, 0x80, 0x05, 0x68, 0x00, 0x90, 0x15, 0x68, 0x00, 0x82, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x98, 0x34, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x54, 0x10, 0x9F, 0xE5 + .byte 0x00, 0xC0, 0xA0, 0xE3, 0x08, 0x30, 0x91, 0xE5, 0x03, 0xE0, 0xA0, 0xE1, 0x01, 0x00, 0x00, 0xEA + .byte 0x0E, 0xC0, 0xA0, 0xE1, 0x68, 0xE0, 0x9E, 0xE5, 0x00, 0x00, 0x5E, 0xE3, 0x03, 0x00, 0x00, 0x0A + .byte 0x70, 0x20, 0x9E, 0xE5, 0x70, 0x10, 0x90, 0xE5, 0x01, 0x00, 0x52, 0xE1, 0xF7, 0xFF, 0xFF, 0x3A + .byte 0x00, 0x00, 0x5C, 0xE3, 0x1C, 0x10, 0x9F, 0x05, 0x68, 0x30, 0x80, 0x05, 0x08, 0x00, 0x81, 0x05 + .byte 0x68, 0x10, 0x9C, 0x15, 0x68, 0x10, 0x80, 0x15, 0x68, 0x00, 0x8C, 0x15, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02, 0x00, 0x20, 0x90, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x10, 0x10, 0x92, 0xE5, 0x00, 0x10, 0x80, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x14, 0x00, 0x81, 0x15, 0x00, 0x10, 0xA0, 0x03 + .byte 0x04, 0x10, 0x80, 0x05, 0x02, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x20, 0x90, 0xE5 + .byte 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x0E, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x5C, 0xE1 + .byte 0x80, 0x30, 0x9C, 0xE5, 0x08, 0x00, 0x00, 0x1A, 0x0C, 0x00, 0x52, 0xE1, 0x7C, 0x20, 0x9C, 0xE5 + .byte 0x00, 0x30, 0x80, 0x05, 0x80, 0x30, 0x82, 0x15, 0x04, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0x51, 0xE1 + .byte 0x04, 0x20, 0x80, 0x05, 0x7C, 0x20, 0x83, 0x15, 0x02, 0x00, 0x00, 0xEA, 0x03, 0xC0, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x53, 0xE3, 0xF0, 0xFF, 0xFF, 0x1A, 0x0C, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x07, 0x00, 0x00, 0x0A, 0x80, 0x10, 0x92, 0xE5 + .byte 0x00, 0x10, 0x80, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x7C, 0x00, 0x81, 0x15 + .byte 0x00, 0x10, 0xA0, 0x03, 0x04, 0x10, 0x80, 0x05, 0x78, 0x10, 0x82, 0x05, 0x02, 0x00, 0xA0, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xC0, 0x90, 0xE5, 0x02, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x5C, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x80, 0xC0, 0x9C, 0xE5, 0x00, 0x00, 0x5C, 0xE3, 0x03, 0x00, 0x00, 0x0A + .byte 0x70, 0x30, 0x9C, 0xE5, 0x70, 0x20, 0x91, 0xE5, 0x02, 0x00, 0x53, 0xE1, 0xF6, 0xFF, 0xFF, 0x9A + .byte 0x00, 0x00, 0x5C, 0xE3, 0x08, 0x00, 0x00, 0x1A, 0x04, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3 + .byte 0x00, 0x10, 0x80, 0x05, 0x80, 0x10, 0x82, 0x15, 0x7C, 0x20, 0x81, 0xE5, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x80, 0x20, 0x81, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x20, 0x9C, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0x00, 0x10, 0x80, 0x05, 0x80, 0x10, 0x82, 0x15, 0x7C, 0x20, 0x81, 0xE5 + .byte 0x80, 0xC0, 0x81, 0xE5, 0x7C, 0x10, 0x8C, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x00, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x88, 0x34, 0x1D, 0x02, 0x04, 0x10, 0x81, 0xE2, 0x40, 0x10, 0x80, 0xE5, 0x44, 0x20, 0x80, 0xE5 + .byte 0x40, 0x20, 0x42, 0xE2, 0x04, 0x00, 0x12, 0xE3, 0x04, 0x20, 0x42, 0x12, 0x38, 0x20, 0x80, 0xE5 + .byte 0x01, 0x10, 0x11, 0xE2, 0x3F, 0x10, 0xA0, 0x13, 0x1F, 0x10, 0xA0, 0x03, 0x00, 0x10, 0x80, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x08, 0x10, 0x80, 0xE5, 0x0C, 0x10, 0x80, 0xE5 + .byte 0x10, 0x10, 0x80, 0xE5, 0x14, 0x10, 0x80, 0xE5, 0x18, 0x10, 0x80, 0xE5, 0x1C, 0x10, 0x80, 0xE5 + .byte 0x20, 0x10, 0x80, 0xE5, 0x24, 0x10, 0x80, 0xE5, 0x28, 0x10, 0x80, 0xE5, 0x2C, 0x10, 0x80, 0xE5 + .byte 0x30, 0x10, 0x80, 0xE5, 0x34, 0x10, 0x80, 0xE5, 0x3C, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x01, 0x40, 0x2D, 0xE9, 0x48, 0x00, 0x80, 0xE2, 0x38, 0x10, 0x9F, 0xE5, 0x31, 0xFF, 0x2F, 0xE1 + .byte 0x01, 0x40, 0xBD, 0xE8, 0x00, 0x10, 0x80, 0xE2, 0x00, 0x20, 0x0F, 0xE1, 0x04, 0x20, 0x81, 0xE4 + .byte 0xD3, 0x00, 0xA0, 0xE3, 0x00, 0xF0, 0x21, 0xE1, 0x40, 0xD0, 0x81, 0xE5, 0x02, 0xF0, 0x21, 0xE1 + .byte 0x01, 0x00, 0xA0, 0xE3, 0xFF, 0x7F, 0x81, 0xE8, 0x08, 0x00, 0x8F, 0xE2, 0x3C, 0x00, 0x81, 0xE5 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x48, 0x36, 0x0D, 0x02, 0x01, 0x40, 0x2D, 0xE9 + .byte 0x48, 0x00, 0x80, 0xE2, 0x30, 0x10, 0x9F, 0xE5, 0x31, 0xFF, 0x2F, 0xE1, 0x01, 0x40, 0xBD, 0xE8 + .byte 0x00, 0x10, 0x0F, 0xE1, 0x1F, 0x10, 0xC1, 0xE3, 0xD3, 0x10, 0x81, 0xE3, 0x01, 0xF0, 0x21, 0xE1 + .byte 0x04, 0x10, 0x90, 0xE4, 0x01, 0xF0, 0x6F, 0xE1, 0x40, 0xD0, 0x90, 0xE5, 0x3C, 0xE0, 0x90, 0xE5 + .byte 0xFF, 0x7F, 0xD0, 0xE8, 0x00, 0x00, 0xA0, 0xE1, 0x04, 0xF0, 0x5E, 0xE2, 0x88, 0x36, 0x0D, 0x02 + .byte 0x08, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x01, 0x00, 0x00, 0x82, 0x28, 0x68, 0x10, 0x02, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1 + .byte 0xC6, 0x05, 0x00, 0xEB, 0x1C, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3 + .byte 0x0D, 0x00, 0x00, 0x1A, 0x01, 0x80, 0x07, 0xE2, 0x08, 0x70, 0x86, 0xE2, 0x00, 0x00, 0x58, 0xE3 + .byte 0x04, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0xC1, 0x05, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x07, 0x00, 0xA0, 0xE1, 0xAC, 0xFD, 0xFF, 0xEB + .byte 0x1C, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xF3, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x55, 0xE3 + .byte 0x10, 0x10, 0x96, 0x15, 0x18, 0x00, 0x96, 0x15, 0x00, 0x01, 0x91, 0x17, 0x00, 0x00, 0x85, 0x15 + .byte 0x04, 0x00, 0xA0, 0xE1, 0xB2, 0x05, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x41, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1, 0xA4, 0x05, 0x00, 0xEB, 0x14, 0x10, 0x96, 0xE5 + .byte 0x1C, 0x20, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x00, 0x51, 0xE1, 0x0E, 0x00, 0x00, 0xCA + .byte 0x01, 0x70, 0x07, 0xE2, 0x00, 0x00, 0x57, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x9F, 0x05, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x00, 0xA0, 0xE1, 0x89, 0xFD, 0xFF, 0xEB, 0x14, 0x10, 0x96, 0xE5 + .byte 0x1C, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0xF1, 0xFF, 0xFF, 0xDA, 0x18, 0x00, 0x96, 0xE5 + .byte 0x01, 0x00, 0x80, 0xE0, 0x01, 0x00, 0x40, 0xE2, 0xE8, 0x7F, 0x00, 0xEB, 0x18, 0x10, 0x86, 0xE5 + .byte 0x10, 0x20, 0x96, 0xE5, 0x18, 0x10, 0x96, 0xE5, 0x08, 0x00, 0x86, 0xE2, 0x01, 0x51, 0x82, 0xE7 + .byte 0x1C, 0x10, 0x96, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x1C, 0x10, 0x86, 0xE5, 0x58, 0xFD, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x86, 0x05, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1, 0x78, 0x05, 0x00, 0xEB, 0x1C, 0x10, 0x96, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x01, 0x80, 0x07, 0xE2 + .byte 0x08, 0x70, 0x86, 0xE2, 0x00, 0x00, 0x58, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x73, 0x05, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x07, 0x00, 0xA0, 0xE1, 0x5E, 0xFD, 0xFF, 0xEB, 0x1C, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0xF3, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x55, 0xE3, 0x10, 0x10, 0x96, 0x15, 0x18, 0x00, 0x96, 0x15 + .byte 0x00, 0x01, 0x91, 0x17, 0x00, 0x00, 0x85, 0x15, 0x18, 0x00, 0x96, 0xE5, 0x14, 0x10, 0x96, 0xE5 + .byte 0x01, 0x00, 0x80, 0xE2, 0xB9, 0x7F, 0x00, 0xEB, 0x18, 0x10, 0x86, 0xE5, 0x1C, 0x10, 0x96, 0xE5 + .byte 0x06, 0x00, 0xA0, 0xE1, 0x01, 0x10, 0x41, 0xE2, 0x1C, 0x10, 0x86, 0xE5, 0x2C, 0xFD, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x5A, 0x05, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x41, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1, 0x4C, 0x05, 0x00, 0xEB, 0x1C, 0x20, 0x96, 0xE5 + .byte 0x14, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x00, 0x51, 0xE1, 0x0E, 0x00, 0x00, 0xCA + .byte 0x01, 0x70, 0x07, 0xE2, 0x00, 0x00, 0x57, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x47, 0x05, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x00, 0xA0, 0xE1, 0x31, 0xFD, 0xFF, 0xEB, 0x1C, 0x20, 0x96, 0xE5 + .byte 0x14, 0x10, 0x96, 0xE5, 0x02, 0x00, 0x51, 0xE1, 0xF1, 0xFF, 0xFF, 0xDA, 0x18, 0x00, 0x96, 0xE5 + .byte 0x02, 0x00, 0x80, 0xE0, 0x91, 0x7F, 0x00, 0xEB, 0x10, 0x20, 0x96, 0xE5, 0x08, 0x00, 0x86, 0xE2 + .byte 0x01, 0x51, 0x82, 0xE7, 0x1C, 0x10, 0x96, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x1C, 0x10, 0x86, 0xE5 + .byte 0x03, 0xFD, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x31, 0x05, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xC0, 0xA0, 0xE3 + .byte 0x04, 0xC0, 0x80, 0xE5, 0x04, 0x30, 0x90, 0xE5, 0x00, 0x30, 0x80, 0xE5, 0x0C, 0xC0, 0x80, 0xE5 + .byte 0x0C, 0x30, 0x90, 0xE5, 0x08, 0x30, 0x80, 0xE5, 0x10, 0x10, 0x80, 0xE5, 0x14, 0x20, 0x80, 0xE5 + .byte 0x18, 0xC0, 0x80, 0xE5, 0x1C, 0xC0, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x20, 0x91, 0xE5 + .byte 0x14, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x8C, 0x10, 0x80, 0x05, 0x14, 0x10, 0x82, 0x15 + .byte 0x00, 0x00, 0x51, 0xE3, 0x88, 0x20, 0x80, 0x05, 0x10, 0x20, 0x81, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x8C, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x88, 0x10, 0x80, 0x05, 0x10, 0x10, 0x82, 0x15 + .byte 0x14, 0x20, 0x81, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x20, 0x81, 0xE5, 0x8C, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x07, 0x05, 0x00, 0xEB + .byte 0x08, 0x20, 0x95, 0xE5, 0x58, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3 + .byte 0x04, 0x00, 0x91, 0xE5, 0x07, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x85, 0xE5, 0x0C, 0x20, 0x95, 0xE5 + .byte 0x05, 0x10, 0xA0, 0xE1, 0x01, 0x20, 0x82, 0xE2, 0x0C, 0x20, 0x85, 0xE5, 0xE7, 0xFF, 0xFF, 0xEB + .byte 0x01, 0x60, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x52, 0xE1, 0x0C, 0x00, 0x95, 0x05 + .byte 0x01, 0x60, 0xA0, 0x03, 0x01, 0x00, 0x80, 0x02, 0x0C, 0x00, 0x85, 0x05, 0x00, 0x60, 0xA0, 0x13 + .byte 0x04, 0x00, 0xA0, 0xE1, 0xF6, 0x04, 0x00, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x88, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x88, 0x50, 0x86, 0xE2, 0x00, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x7E, 0xFE, 0xFF, 0xEB + .byte 0x0C, 0x40, 0x80, 0xE5, 0x08, 0x40, 0x80, 0xE5, 0xB5, 0xFC, 0xFF, 0xEB, 0x88, 0x00, 0x96, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0xF7, 0xFF, 0xFF, 0x1A, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xD7, 0x04, 0x00, 0xEB + .byte 0x54, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x00, 0x91, 0xE5, 0x08, 0x10, 0x95, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE1, 0x0B, 0x00, 0x00, 0x1A, 0x0C, 0x10, 0x95, 0xE5, 0x01, 0x10, 0x41, 0xE2 + .byte 0x0C, 0x10, 0x85, 0xE5, 0x0C, 0x10, 0x95, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x1A + .byte 0x05, 0x10, 0xA0, 0xE1, 0xAC, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x08, 0x10, 0x85, 0xE5, 0x9A, 0xFC, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xC8, 0x04, 0x00, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02 + .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xBB, 0x04, 0x00, 0xEB + .byte 0x70, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x70, 0x91, 0xE5, 0x00, 0x60, 0xA0, 0xE3 + .byte 0x08, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x08, 0x70, 0x85, 0xE5 + .byte 0x0C, 0x10, 0x95, 0xE5, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0x81, 0xE2, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x0C, 0x20, 0x85, 0xE5, 0x99, 0xFF, 0xFF, 0xEB, 0x09, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x50, 0xE1 + .byte 0x0C, 0x00, 0x95, 0x05, 0x01, 0x00, 0x80, 0x02, 0x0C, 0x00, 0x85, 0x05, 0x04, 0x00, 0x00, 0x0A + .byte 0x05, 0x00, 0xA0, 0xE1, 0x84, 0x50, 0x87, 0xE5, 0x99, 0xFC, 0xFF, 0xEB, 0x84, 0x60, 0x87, 0xE5 + .byte 0xEA, 0xFF, 0xFF, 0xEA, 0x04, 0x00, 0xA0, 0xE1, 0xA5, 0x04, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x04, 0x20, 0x80, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x20, 0x80, 0xE5 + .byte 0x0C, 0x20, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x16, 0x0F, 0x07, 0xEE + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE1 + .byte 0x5A, 0x2F, 0x07, 0xEE, 0x20, 0x00, 0x80, 0xE2, 0x01, 0x0B, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA + .byte 0x01, 0x11, 0x81, 0xE2, 0x00, 0x00, 0x51, 0xE3, 0xF6, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE1 + .byte 0x9A, 0xCF, 0x07, 0xEE, 0x5E, 0x2F, 0x07, 0xEE, 0x20, 0x00, 0x80, 0xE2, 0x01, 0x0B, 0x50, 0xE3 + .byte 0xF9, 0xFF, 0xFF, 0xBA, 0x01, 0x11, 0x81, 0xE2, 0x00, 0x00, 0x51, 0xE3, 0xF5, 0xFF, 0xFF, 0x1A + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0x81, 0xE0, 0x1F, 0x00, 0xC0, 0xE3, 0x36, 0x0F, 0x07, 0xEE + .byte 0x20, 0x00, 0x80, 0xE2, 0x01, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x10, 0x81, 0xE0, 0x1F, 0x00, 0xC0, 0xE3, 0x3A, 0x0F, 0x07, 0xEE, 0x20, 0x00, 0x80, 0xE2 + .byte 0x01, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xC0, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x81, 0xE0, 0x1F, 0x00, 0xC0, 0xE3, 0x9A, 0xCF, 0x07, 0xEE, 0x3E, 0x0F, 0x07, 0xEE + .byte 0x20, 0x00, 0x80, 0xE2, 0x01, 0x00, 0x50, 0xE1, 0xFA, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x9A, 0x0F, 0x07, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x15, 0x0F, 0x07, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0x81, 0xE0, 0x1F, 0x00, 0xC0, 0xE3 + .byte 0x35, 0x0F, 0x07, 0xEE, 0x20, 0x00, 0x80, 0xE2, 0x01, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0xBA + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x07, 0x01, 0x00, 0xEB + .byte 0x7A, 0x0E, 0x00, 0xEB, 0x78, 0xF8, 0xFF, 0xEB, 0xE4, 0x00, 0x00, 0xEB, 0xAA, 0xF7, 0xFF, 0xEB + .byte 0xF5, 0xF6, 0xFF, 0xEB, 0x69, 0x02, 0x00, 0xEB, 0x1A, 0x09, 0x00, 0xEB, 0x2A, 0x04, 0x00, 0xEB + .byte 0x4E, 0x05, 0x00, 0xEB, 0x26, 0xFD, 0xFF, 0xEB, 0xAE, 0x04, 0x00, 0xEB, 0xA3, 0x3E, 0x00, 0xEB + .byte 0x0C, 0x2C, 0x00, 0xEB, 0x5A, 0x25, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1 + .byte 0x02, 0x50, 0xA0, 0xE1, 0xCC, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03 + .byte 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x10, 0x45, 0xE2, 0x01, 0x20, 0xE0, 0xE1 + .byte 0x02, 0x00, 0x00, 0xE0, 0x06, 0x10, 0x40, 0xE0, 0x04, 0x00, 0xA0, 0xE1, 0x02, 0x50, 0x01, 0xE0 + .byte 0xBC, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x55, 0xE1, 0x00, 0x00, 0xA0, 0x33, 0x70, 0x40, 0xBD, 0x38 + .byte 0x1E, 0xFF, 0x2F, 0x31, 0x04, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x29, 0x00, 0x00, 0xEB + .byte 0x05, 0x00, 0xA0, 0xE1, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1 + .byte 0xAC, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 + .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x00, 0x80, 0xE0, 0x01, 0x10, 0x45, 0xE2 + .byte 0x01, 0x20, 0xE0, 0xE1, 0x01, 0x00, 0x40, 0xE2, 0x00, 0x40, 0x02, 0xE0, 0x06, 0x00, 0x84, 0xE0 + .byte 0x05, 0x00, 0x80, 0xE0, 0x01, 0x10, 0x40, 0xE2, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x50, 0x02, 0xE0 + .byte 0xA1, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x55, 0xE1, 0x04, 0xD0, 0x8D, 0x82, 0x00, 0x00, 0xA0, 0x83 + .byte 0xF0, 0x40, 0xBD, 0x88, 0x1E, 0xFF, 0x2F, 0x81, 0x07, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x03, 0x00, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0xA0, 0xE1, 0x27, 0x06, 0x80, 0xE2, 0xFF, 0x0A, 0x80, 0xE2 + .byte 0xA0, 0x1D, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0xA0, 0xE1, 0x27, 0x06, 0x80, 0xE2 + .byte 0xFF, 0x0A, 0x80, 0xE2, 0xC4, 0x1D, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x06, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x2A, 0x00, 0x00, 0xEA + .byte 0x05, 0x00, 0x00, 0xEA, 0x28, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA + .byte 0x19, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x1F, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x94, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x8C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x13, 0xFE, 0xFF, 0xEB + .byte 0x03, 0x00, 0x00, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x5C, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x44, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x38, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xFF, 0x25, 0x02 + .byte 0xF4, 0x36, 0x1D, 0x02, 0x00, 0x00, 0x3E, 0x02, 0x20, 0x87, 0xFF, 0x01, 0x80, 0x00, 0x7E, 0x02 + .byte 0x00, 0xF0, 0x7F, 0x02, 0x00, 0x80, 0x7F, 0x03, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x06, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x3A, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA + .byte 0x38, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA, 0x19, 0x00, 0x00, 0xEA + .byte 0x2C, 0x00, 0x00, 0xEA, 0x2F, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2, 0xD4, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xCC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0xD8, 0xFD, 0xFF, 0xEB, 0x03, 0x00, 0x00, 0xE2 + .byte 0x01, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x27, 0x06, 0xA0, 0xE3 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x02, 0x04, 0xA0, 0xE3 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0x00, 0x9F, 0xE5, 0x80, 0x10, 0x9F, 0xE5 + .byte 0x80, 0x20, 0x9F, 0xE5, 0xFE, 0x3D, 0x80, 0xE2, 0x00, 0x00, 0x51, 0xE3, 0x02, 0x20, 0x43, 0xE0 + .byte 0x05, 0x00, 0x00, 0x1A, 0x70, 0x10, 0x9F, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0x50, 0xE1 + .byte 0x01, 0x00, 0xA0, 0x31, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x51, 0xE3 + .byte 0x54, 0x00, 0x9F, 0xB5, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0x40, 0xB0, 0x01, 0x00, 0x42, 0xA0 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x3C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x3E, 0x02, 0xF4, 0x36, 0x1D, 0x02 + .byte 0x00, 0x00, 0x7E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80, 0x00, 0x7E, 0x02 + .byte 0x80, 0xF6, 0x7F, 0x02, 0x00, 0x80, 0x7F, 0x03, 0x00, 0x01, 0xA0, 0xE1, 0x27, 0x06, 0x80, 0xE2 + .byte 0xFF, 0x0A, 0x80, 0xE2, 0xA0, 0x0D, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0xA0, 0xE1 + .byte 0x27, 0x06, 0x80, 0xE2, 0xFF, 0x0A, 0x80, 0xE2, 0xC4, 0x0D, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x02, 0x00, 0xA0, 0xE3, 0xA5, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x02, 0x00, 0xA0, 0xE3, 0x62, 0xFF, 0xFF, 0xEB, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x65, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x02, 0x00, 0xA0, 0xE3, 0x58, 0xFF, 0xFF, 0xEB + .byte 0x3C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A + .byte 0x86, 0xFD, 0xFF, 0xEB, 0x03, 0x00, 0x00, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12 + .byte 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x18, 0x00, 0x9F, 0xE5, 0x0A, 0x01, 0x00, 0xEB + .byte 0x14, 0x00, 0x9F, 0xE5, 0x0A, 0x01, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF4, 0x36, 0x1D, 0x02, 0x2B, 0x00, 0x00, 0x02, 0x21, 0x00, 0x3E, 0x02 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x04, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5, 0x7D, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x3A, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x3D, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x30, 0xFF, 0xFF, 0xEB + .byte 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x2D, 0xFF, 0xFF, 0xEB, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x2F, 0xFF, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x6D, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE3, 0x2A, 0xFF, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3 + .byte 0x2D, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE3, 0x20, 0xFF, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE3, 0x63, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x20, 0xFF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x23, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x00, 0xA0, 0xE3, 0x16, 0xFF, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE3, 0x59, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE3, 0x16, 0xFF, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE3 + .byte 0x19, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE3, 0x0C, 0xFF, 0xFF, 0xEB + .byte 0x06, 0x00, 0xA0, 0xE3, 0x4F, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE3 + .byte 0x0C, 0xFF, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE3, 0x0F, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x06, 0x00, 0xA0, 0xE3, 0x02, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x36, 0x1D, 0x02, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0xFF, 0x02, 0x00, 0xEB + .byte 0x50, 0x10, 0x9F, 0xE5, 0x00, 0x60, 0xA0, 0xE1, 0x07, 0x01, 0x91, 0xE7, 0x00, 0x00, 0x55, 0xE3 + .byte 0x00, 0x50, 0x90, 0xB5, 0x10, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0xA0, 0xE3, 0x95, 0x10, 0x27, 0xE0 + .byte 0x20, 0x40, 0x44, 0xE2, 0x08, 0x00, 0x97, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x87, 0x00, 0x00, 0xEB + .byte 0x08, 0x00, 0x87, 0xE5, 0x04, 0x00, 0x97, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x51, 0x00, 0x00, 0xEB + .byte 0x04, 0x00, 0x87, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0xF1, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF8, 0x36, 0x1D, 0x02, 0xF0, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1 + .byte 0xE2, 0x02, 0x00, 0xEB, 0x08, 0x11, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x06, 0x11, 0x91, 0xE7 + .byte 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0xE1, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x55, 0xE3 + .byte 0x00, 0x50, 0x91, 0xB5, 0x10, 0x10, 0x91, 0xE5, 0x0C, 0x00, 0xA0, 0xE3, 0x95, 0x10, 0x26, 0xE0 + .byte 0x04, 0x00, 0x96, 0xE5, 0x20, 0x10, 0x87, 0xE2, 0x1F, 0x10, 0x81, 0xE2, 0x00, 0x50, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x1F, 0x70, 0xC1, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x08, 0x10, 0x95, 0xE5 + .byte 0x01, 0x00, 0x57, 0xE1, 0x02, 0x00, 0x00, 0xDA, 0x04, 0x50, 0x95, 0xE5, 0x00, 0x00, 0x55, 0xE3 + .byte 0xF9, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x55, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 + .byte 0xC7, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x10, 0x95, 0xE5, 0x07, 0x10, 0x41, 0xE0, 0x40, 0x00, 0x51, 0xE3 + .byte 0x03, 0x00, 0x00, 0x2A, 0x05, 0x10, 0xA0, 0xE1, 0x4C, 0x00, 0x00, 0xEB, 0x04, 0x00, 0x86, 0xE5 + .byte 0x0D, 0x00, 0x00, 0xEA, 0x08, 0x70, 0x85, 0xE5, 0x07, 0x20, 0x85, 0xE0, 0x08, 0x10, 0x82, 0xE5 + .byte 0x00, 0x00, 0x95, 0xE5, 0x07, 0x00, 0x85, 0xE7, 0x04, 0x00, 0x95, 0xE5, 0x04, 0x00, 0x82, 0xE5 + .byte 0x04, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x20, 0x80, 0x15, 0x00, 0x00, 0x92, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x20, 0x80, 0x15, 0x04, 0x20, 0x86, 0x05, 0x08, 0x00, 0x96, 0xE5 + .byte 0x05, 0x10, 0xA0, 0xE1, 0x43, 0x00, 0x00, 0xEB, 0x08, 0x00, 0x86, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0xA7, 0x02, 0x00, 0xEB, 0x20, 0x00, 0x85, 0xE2, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF8, 0x36, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x00, 0xE0, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0x0A + .byte 0x0C, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x00, 0x9A, 0x0C, 0xE0, 0xA0, 0xE1, 0x04, 0xC0, 0x9C, 0xE5 + .byte 0x00, 0x00, 0x5C, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x04, 0xC0, 0x81, 0xE5, 0x00, 0xE0, 0x81, 0xE5 + .byte 0x00, 0x00, 0x5C, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x8C, 0xE5, 0x08, 0x30, 0x91, 0xE5 + .byte 0x03, 0x20, 0x81, 0xE0, 0x0C, 0x00, 0x52, 0xE1, 0x06, 0x00, 0x00, 0x1A, 0x08, 0x20, 0x9C, 0xE5 + .byte 0x02, 0x20, 0x83, 0xE0, 0x08, 0x20, 0x81, 0xE5, 0x04, 0xC0, 0x9C, 0xE5, 0x04, 0xC0, 0x81, 0xE5 + .byte 0x00, 0x00, 0x5C, 0xE3, 0x00, 0x10, 0x8C, 0x15, 0x00, 0x00, 0x5E, 0xE3, 0x0F, 0x00, 0x00, 0x0A + .byte 0x04, 0x10, 0x8E, 0xE5, 0x08, 0x20, 0x9E, 0xE5, 0x02, 0x30, 0x8E, 0xE0, 0x01, 0x00, 0x53, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x08, 0x10, 0x91, 0xE5 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x10, 0x82, 0xE0, 0x08, 0x10, 0x8E, 0xE5, 0x04, 0xC0, 0x8E, 0xE5 + .byte 0x00, 0x00, 0x5C, 0xE3, 0x00, 0xE0, 0x8C, 0x15, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x01, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x04, 0x30, 0x91, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x00, 0x20, 0x91, 0x15, 0x00, 0x20, 0x83, 0x15 + .byte 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x91, 0x05, 0x04, 0x10, 0x91, 0x15 + .byte 0x04, 0x10, 0x82, 0x15, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0x81, 0xE5, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x10, 0x80, 0x15, 0x01, 0x00, 0xA0, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x11, 0x0F, 0x19, 0xEE, 0x04, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x00, 0xE0 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xF0, 0xFF, 0xFF, 0x10, 0x0F, 0x11, 0xEE, 0x01, 0x00, 0x80, 0xE3 + .byte 0x10, 0x0F, 0x01, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x0F, 0x11, 0xEE, 0x01, 0x00, 0xC0, 0xE3 + .byte 0x10, 0x0F, 0x01, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x50, 0x2F, 0x15, 0xEE, 0x00, 0x20, 0xC2, 0xE1 + .byte 0x01, 0x20, 0x82, 0xE1, 0x50, 0x2F, 0x05, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x11, 0x0F, 0x06, 0xEE + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x12, 0x0F, 0x06, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x64, 0xC0, 0x9F, 0xE5 + .byte 0x00, 0xC0, 0x9C, 0xE5, 0x00, 0x00, 0x5C, 0xE3, 0x0F, 0xE0, 0xA0, 0x11, 0x1C, 0xFF, 0x2F, 0x11 + .byte 0x54, 0xC0, 0x9F, 0xE5, 0x0F, 0x60, 0x2C, 0xE9, 0x01, 0x00, 0x0D, 0xE2, 0x0C, 0xD0, 0xA0, 0xE1 + .byte 0x00, 0x10, 0x0F, 0xE1, 0x1F, 0x10, 0x01, 0xE2, 0x17, 0x00, 0x31, 0xE3, 0x01, 0x00, 0x00, 0x1A + .byte 0x0E, 0x00, 0x00, 0xEB, 0x02, 0x00, 0x00, 0xEA, 0x1B, 0x00, 0x31, 0xE3, 0x00, 0x00, 0x00, 0x1A + .byte 0x0A, 0x00, 0x00, 0xEB, 0x1C, 0xC0, 0x9F, 0xE5, 0x00, 0xC0, 0x9C, 0xE5, 0x00, 0x00, 0x5C, 0xE3 + .byte 0xFE, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0xA0, 0xE1, 0xFD, 0xFF, 0xFF, 0xEA, 0x0F, 0x50, 0xBD, 0xE8 + .byte 0x0C, 0xD0, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x37, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x02 + .byte 0x01, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB, 0x25, 0x00, 0x00, 0xEB, 0x01, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x0F, 0xE1, 0x74, 0x20, 0x81, 0xE5 + .byte 0x6C, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x9C, 0xE5, 0x04, 0x00, 0x81, 0xE5, 0x04, 0x00, 0x9C, 0xE5 + .byte 0x08, 0x00, 0x81, 0xE5, 0x08, 0x00, 0x9C, 0xE5, 0x0C, 0x00, 0x81, 0xE5, 0x0C, 0x00, 0x9C, 0xE5 + .byte 0x10, 0x00, 0x81, 0xE5, 0x10, 0x20, 0x9C, 0xE5, 0x01, 0x20, 0xC2, 0xE3, 0x14, 0x00, 0x81, 0xE2 + .byte 0xF0, 0x0F, 0x80, 0xE8, 0x70, 0xC0, 0x81, 0xE5, 0x00, 0x00, 0x92, 0xE5, 0x64, 0x00, 0x81, 0xE5 + .byte 0x04, 0x30, 0x92, 0xE5, 0x00, 0x30, 0x81, 0xE5, 0x08, 0x00, 0x92, 0xE5, 0x34, 0x00, 0x81, 0xE5 + .byte 0x0C, 0x00, 0x92, 0xE5, 0x40, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x0F, 0xE1, 0x80, 0x30, 0x83, 0xE3 + .byte 0x20, 0x30, 0xC3, 0xE3, 0x03, 0xF0, 0x2F, 0xE1, 0x38, 0xD0, 0x81, 0xE5, 0x3C, 0xE0, 0x81, 0xE5 + .byte 0x00, 0x20, 0x4F, 0xE1, 0x7C, 0x20, 0x81, 0xE5, 0x00, 0xF0, 0x2F, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x28, 0x37, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x4C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x00, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x0D, 0x00, 0xA0, 0xE1, 0x34, 0x10, 0x9F, 0xE5, 0x01, 0xF0, 0x2F, 0xE1 + .byte 0x00, 0xD0, 0xA0, 0xE1, 0x9B, 0xFF, 0xFF, 0xEB, 0x28, 0x10, 0x9F, 0xE5, 0x1C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x1C, 0x00, 0x9F, 0xE5, 0x32, 0xFF, 0x2F, 0xE1 + .byte 0x98, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x1C, 0x37, 0x1D, 0x02, 0x9F, 0x00, 0x00, 0x00, 0x20, 0x37, 0x1D, 0x02, 0x28, 0x37, 0x1D, 0x02 + .byte 0x54, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x26, 0x06, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x3A + .byte 0x0A, 0x05, 0x51, 0xE3, 0x44, 0x00, 0x9F, 0x35, 0x00, 0x10, 0x80, 0x35, 0x02, 0x00, 0x00, 0x3A + .byte 0x38, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x2C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x24, 0x20, 0x9F, 0x05, 0x18, 0x10, 0x9F, 0x05 + .byte 0x20, 0x00, 0x9F, 0x05, 0x00, 0x20, 0x81, 0x05, 0xDC, 0x2F, 0x80, 0x05, 0x18, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x9C, 0xFD, 0x7F, 0x02 + .byte 0x24, 0x37, 0x1D, 0x02, 0xFC, 0xC9, 0x0C, 0x02, 0x00, 0x30, 0x7E, 0x02, 0x1C, 0x37, 0x1D, 0x02 + .byte 0x10, 0x10, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0xB0, 0x30, 0xD1, 0xE1, 0x12, 0x00, 0x83, 0xE1 + .byte 0xB0, 0x00, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xA8, 0x37, 0x1D, 0x02, 0x04, 0x00, 0x9F, 0xE5 + .byte 0xB0, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x0C, 0xD0, 0x4D, 0xE2, 0xB9, 0x01, 0x00, 0xEB, 0x8C, 0x10, 0x9F, 0xE5, 0x8C, 0x30, 0x9F, 0xE5 + .byte 0xB0, 0xC0, 0xD1, 0xE1, 0x88, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xE0, 0xE3, 0xB0, 0xC0, 0xCD, 0xE1 + .byte 0x00, 0xC0, 0x93, 0xE5, 0x04, 0x30, 0x93, 0xE5, 0x01, 0x10, 0x0C, 0xE0, 0x02, 0x20, 0x03, 0xE0 + .byte 0x04, 0x10, 0x8D, 0xE5, 0x6C, 0x10, 0x9F, 0xE5, 0x08, 0x20, 0x8D, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x08, 0x10, 0x11, 0xE2, 0x09, 0x00, 0x00, 0x0A, 0xB0, 0x10, 0xDD, 0xE1, 0x02, 0x19, 0x11, 0xE2 + .byte 0x06, 0x00, 0x00, 0x1A, 0x04, 0x30, 0x9D, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x08, 0x20, 0x9D, 0xE5 + .byte 0x01, 0x30, 0x93, 0xE0, 0x00, 0x10, 0xA2, 0xE2, 0x04, 0x30, 0x8D, 0xE5, 0x08, 0x10, 0x8D, 0xE5 + .byte 0xA3, 0x01, 0x00, 0xEB, 0x04, 0x20, 0x9D, 0xE5, 0x08, 0x10, 0x9D, 0xE5, 0xB0, 0x00, 0xDD, 0xE1 + .byte 0x01, 0x18, 0xA0, 0xE1, 0x22, 0x18, 0x81, 0xE1, 0xC0, 0x1F, 0x81, 0xE1, 0x02, 0x08, 0x80, 0xE1 + .byte 0x0C, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0x00, 0x04 + .byte 0xB4, 0x37, 0x1D, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x14, 0x02, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x64, 0x20, 0x9F, 0xE5, 0x64, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0x92, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x30, 0x92, 0xE5, 0x00, 0xC0, 0x9C, 0xE0, 0x00, 0x00, 0x91, 0xE5 + .byte 0x00, 0x30, 0xA3, 0xE2, 0x00, 0xC0, 0x82, 0xE5, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x38, 0x20, 0x9F, 0xE5, 0x38, 0x00, 0x9F, 0xE5 + .byte 0xB0, 0x30, 0xC2, 0xE1, 0xB0, 0x30, 0xC0, 0xE1, 0xC1, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC2, 0xE1 + .byte 0x00, 0x30, 0x81, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x20, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE1 + .byte 0x64, 0xF4, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xB4, 0x37, 0x1D, 0x02, 0xB0, 0x37, 0x1D, 0x02, 0x02, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04 + .byte 0xCC, 0xCC, 0x0C, 0x02, 0x04, 0x00, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xAC, 0x37, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x74, 0x10, 0x9F, 0xE5 + .byte 0xB0, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0xB0, 0x20, 0xC1, 0xE1 + .byte 0x96, 0xFF, 0xFF, 0xEB, 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x80, 0xE5 + .byte 0x48, 0x30, 0x9F, 0xE5, 0x04, 0x20, 0x80, 0xE5, 0x44, 0x00, 0x9F, 0xE5, 0xB0, 0x20, 0xC3, 0xE1 + .byte 0x40, 0x10, 0x9F, 0xE5, 0xB0, 0x20, 0xC0, 0xE1, 0xC1, 0x20, 0xA0, 0xE3, 0x08, 0x00, 0xA0, 0xE3 + .byte 0xB0, 0x20, 0xC3, 0xE1, 0x88, 0xF4, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3, 0x22, 0xF4, 0xFF, 0xEB + .byte 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xAC, 0x37, 0x1D, 0x02, 0xB4, 0x37, 0x1D, 0x02 + .byte 0x02, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0xCC, 0xCC, 0x0C, 0x02, 0xB0, 0x37, 0x1D, 0x02 + .byte 0x01, 0x40, 0x2D, 0xE9, 0x01, 0x00, 0x00, 0xEB, 0x01, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0xFC, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x10, 0x00, 0xA0, 0xE3, 0xB0, 0x20, 0xC1, 0xE1, 0xF9, 0xF3, 0xFF, 0xEB, 0xEC, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x0A, 0x80, 0xE2, 0xF8, 0x1F, 0x90, 0xE5, 0x10, 0x10, 0x81, 0xE3, 0xF8, 0x1F, 0x80, 0xE5 + .byte 0x75, 0xFF, 0xFF, 0xEB, 0xD8, 0x20, 0x9F, 0xE5, 0x00, 0x40, 0x92, 0xE5, 0x00, 0x00, 0x54, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x10, 0x30, 0x94, 0xE5 + .byte 0x0C, 0xC0, 0x94, 0xE5, 0x03, 0x00, 0x51, 0xE1, 0x0C, 0x00, 0x50, 0x01, 0x04, 0x00, 0x00, 0x2A + .byte 0x04, 0x00, 0xA0, 0xE1, 0xDD, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x18, 0x10, 0x94, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x03 + .byte 0x04, 0x00, 0x82, 0x05, 0x00, 0x10, 0x82, 0xE5, 0x00, 0x00, 0xA0, 0x13, 0x14, 0x00, 0x81, 0x15 + .byte 0x1C, 0x20, 0x94, 0xE5, 0x20, 0x10, 0x94, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + .byte 0x00, 0x50, 0x94, 0xE5, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x84, 0x05, 0x00, 0x00, 0x55, 0xE3 + .byte 0x01, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x94, 0xE5, 0x35, 0xFF, 0x2F, 0xE1, 0x1C, 0x20, 0x94, 0xE5 + .byte 0x20, 0x00, 0x94, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0x52, 0x01 + .byte 0x03, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x50, 0x84, 0xE5 + .byte 0x50, 0x00, 0x00, 0xEB, 0x28, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xB7, 0x00, 0x00, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x01, 0x00, 0x04 + .byte 0x00, 0x00, 0x7E, 0x02, 0xC0, 0x37, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x50, 0xA0, 0xE1, 0xF5, 0x00, 0x00, 0xEB, 0x00, 0x10, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0xF5, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x18, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x14, 0x20, 0x95, 0x05, 0x50, 0x10, 0x9F, 0x05, 0x04, 0x20, 0x81, 0x05, 0x14, 0x10, 0x95, 0x15 + .byte 0x14, 0x10, 0x80, 0x15, 0x14, 0x10, 0x95, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x18, 0x00, 0x81, 0x15 + .byte 0x04, 0x00, 0x00, 0x1A, 0x30, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x81, 0xE5 + .byte 0x00, 0x00, 0x00, 0x0A, 0x95, 0x00, 0x00, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x85, 0xE5 + .byte 0x1C, 0x10, 0x85, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x20, 0x10, 0x85, 0xE5, 0xDC, 0x00, 0x00, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xC0, 0x37, 0x1D, 0x02 + .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xB0, 0xE1, 0x01, 0x50, 0xA0, 0xE1 + .byte 0x02, 0x40, 0xA0, 0xE1, 0x03, 0x70, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x96, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x0A, 0x18, 0x02, 0x00, 0xEB, 0xC7, 0x00, 0x00, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE3, 0x1C, 0x10, 0x86, 0xE5, 0x20, 0x10, 0x86, 0xE5, 0x00, 0x70, 0x86, 0xE5 + .byte 0x18, 0x10, 0x9D, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x04, 0x10, 0x86, 0xE5, 0x02, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x30, 0x95, 0xE0, 0x01, 0x20, 0xA4, 0xE0, 0x06, 0x00, 0xA0, 0xE1, 0x03, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x00, 0x00, 0xEB, 0x07, 0x00, 0xA0, 0xE1, 0xBD, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x80, 0xA0, 0xE1 + .byte 0x1C, 0x40, 0x98, 0xE5, 0x20, 0x30, 0x98, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x53, 0xE1 + .byte 0x01, 0x70, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x00, 0x00, 0x54, 0x01, 0x14, 0x00, 0x00, 0x0A + .byte 0xED, 0xFE, 0xFF, 0xEB, 0x28, 0x60, 0x98, 0xE5, 0x24, 0x70, 0x98, 0xE5, 0x01, 0x00, 0x56, 0xE1 + .byte 0x00, 0x00, 0x57, 0x01, 0x0E, 0x00, 0x00, 0x2A, 0x1C, 0x50, 0x98, 0xE5, 0x20, 0x40, 0x98, 0xE5 + .byte 0x07, 0x00, 0x50, 0xE0, 0x05, 0x20, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x06, 0x10, 0xC1, 0xE0 + .byte 0xD4, 0x7A, 0x00, 0xEB, 0x01, 0x20, 0xA0, 0xE3, 0x02, 0x20, 0x90, 0xE0, 0x00, 0x00, 0xA1, 0xE2 + .byte 0x95, 0x32, 0x81, 0xE0, 0x95, 0x10, 0x21, 0xE0, 0x94, 0x12, 0x21, 0xE0, 0x03, 0x70, 0x97, 0xE0 + .byte 0x01, 0x60, 0xA6, 0xE0, 0x0C, 0x70, 0x88, 0xE5, 0xB4, 0x00, 0x9F, 0xE5, 0x10, 0x60, 0x88, 0xE5 + .byte 0x00, 0x40, 0x90, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0x19, 0x00, 0x00, 0x0A, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x0C, 0x20, 0x94, 0xE5, 0x10, 0x00, 0x94, 0xE5, 0x02, 0x30, 0x57, 0xE0, 0x00, 0x20, 0xC6, 0xE0 + .byte 0x01, 0x00, 0x53, 0xE0, 0x01, 0x00, 0xD2, 0xE0, 0x0E, 0x00, 0x00, 0xAA, 0x14, 0x00, 0x94, 0xE5 + .byte 0x14, 0x00, 0x88, 0xE5, 0x14, 0x80, 0x84, 0xE5, 0x18, 0x40, 0x88, 0xE5, 0x14, 0x00, 0x98, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x18, 0x80, 0x80, 0x15, 0xF0, 0x41, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0x5C, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x80, 0x81, 0xE5, 0x33, 0x00, 0x00, 0xEB + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x18, 0x40, 0x94, 0xE5, 0x00, 0x00, 0x54, 0xE3 + .byte 0xE6, 0xFF, 0xFF, 0x1A, 0x38, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x18, 0x00, 0x88, 0xE5 + .byte 0x04, 0x00, 0x91, 0xE5, 0x04, 0x80, 0x81, 0xE5, 0x14, 0x00, 0x88, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x18, 0x80, 0x80, 0x15, 0xF0, 0x41, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x08, 0x00, 0xA0, 0xE1 + .byte 0x04, 0x80, 0x81, 0xE5, 0x00, 0x80, 0x81, 0xE5, 0x20, 0x00, 0x00, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xC0, 0x37, 0x1D, 0x02, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5 + .byte 0x08, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xBC, 0x37, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x40, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12 + .byte 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC1, 0xE1 + .byte 0x8A, 0xFE, 0xFF, 0xEB, 0x20, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x81, 0xE5, 0x04, 0x20, 0x81, 0xE5, 0x0D, 0xF3, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xBC, 0x37, 0x1D, 0x02, 0xC0, 0x37, 0x1D, 0x02 + .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x86, 0xFE, 0xFF, 0xEB + .byte 0x74, 0x30, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0xB0, 0x20, 0xC3, 0xE1, 0x0C, 0xC0, 0x94, 0xE5 + .byte 0x10, 0x30, 0x94, 0xE5, 0x00, 0x50, 0x5C, 0xE0, 0x01, 0x40, 0xC3, 0xE0, 0x5C, 0x10, 0x9F, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x27, 0xF3, 0xFF, 0xEB, 0x00, 0x20, 0xA0, 0xE3, 0x02, 0x00, 0x55, 0xE0 + .byte 0x02, 0x00, 0xD4, 0xE0, 0x48, 0x20, 0x9F, 0xB5, 0x05, 0x00, 0x00, 0xBA, 0x01, 0x08, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x55, 0xE0, 0x02, 0x00, 0xD4, 0xE0, 0x05, 0x00, 0xE0, 0xB1, 0x00, 0x08, 0xA0, 0xB1 + .byte 0x20, 0x28, 0xA0, 0xB1, 0x2C, 0x00, 0x9F, 0xE5, 0x1C, 0x10, 0x9F, 0xE5, 0xB0, 0x20, 0xC0, 0xE1 + .byte 0xC1, 0x20, 0xA0, 0xE3, 0x10, 0x00, 0xA0, 0xE3, 0xB0, 0x20, 0xC1, 0xE1, 0xFA, 0xF2, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x01, 0x00, 0x04 + .byte 0x00, 0xCE, 0x0C, 0x02, 0xFE, 0xFF, 0x00, 0x00, 0x04, 0x01, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x50, 0x20, 0x9F, 0xE5, 0xB0, 0x00, 0xD2, 0xE1, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x3C, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x01, 0xC0, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE3, 0xB0, 0xC0, 0xC2, 0xE1 + .byte 0x00, 0x30, 0x81, 0xE5, 0x04, 0x30, 0x81, 0xE5, 0xD1, 0xF2, 0xFF, 0xEB, 0x20, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x1C, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x80, 0xE5 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xC8, 0x37, 0x1D, 0x02 + .byte 0xD4, 0x37, 0x1D, 0x02, 0xD0, 0x37, 0x1D, 0x02, 0xCC, 0x37, 0x1D, 0x02, 0x00, 0x00, 0x0F, 0xE1 + .byte 0x80, 0x10, 0xC0, 0xE3, 0x01, 0xF0, 0x21, 0xE1, 0x80, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FUN_020CD310 +FUN_020CD310: ; 0x020CD310 + mrs r0, cpsr + orr r1, r0, #0x80 + msr cpsr_c, r1 + and r0, r0, #0x80 + bx lr + + arm_func_start FUN_020CD324 +FUN_020CD324: ; 0x020CD324 + mrs r1, cpsr + bic r2, r1, #0x80 + orr r2, r2, r0 + msr cpsr_c, r2 + and r0, r1, #0x80 + bx lr +_020CD33C: + .byte 0x00, 0x00, 0x0F, 0xE1 + .byte 0xC0, 0x10, 0x80, 0xE3, 0x01, 0xF0, 0x21, 0xE1, 0xC0, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x10, 0x0F, 0xE1, 0xC0, 0x20, 0xC1, 0xE3, 0x00, 0x20, 0x82, 0xE1, 0x02, 0xF0, 0x21, 0xE1 + .byte 0xC0, 0x00, 0x01, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x0F, 0xE1, 0x80, 0x00, 0x00, 0xE2 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x0F, 0xE1, 0x1F, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x04, 0x00, 0x50, 0xE2, 0xFD, 0xFF, 0xFF, 0x2A, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0x94, 0xCC, 0xFC, 0xFB, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xE1, 0x18, 0xF2, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9, 0x6C, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 + .byte 0xB0, 0x00, 0xD1, 0xE1, 0x02, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0x1F, 0x01, 0x00, 0xEB + .byte 0x32, 0xF3, 0xFF, 0xEB, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0xBF, 0x24, 0x00, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x6B, 0x01, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x69, 0x01, 0x00, 0xEB + .byte 0x02, 0x00, 0xA0, 0xE3, 0x67, 0x01, 0x00, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x65, 0x01, 0x00, 0xEB + .byte 0x01, 0x07, 0xA0, 0xE3, 0xA2, 0xF2, 0xFF, 0xEB, 0x00, 0x00, 0xE0, 0xE3, 0x73, 0xF2, 0xFF, 0xEB + .byte 0x18, 0x10, 0x9F, 0xE5, 0x10, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0x81, 0xE5, 0x04, 0x00, 0x00, 0xEB + .byte 0x1F, 0xAC, 0xFC, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0xFC, 0x7F, 0x02 + .byte 0x20, 0xFC, 0x7F, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x64, 0xA0, 0xE1, 0x0C, 0x50, 0xA0, 0xE3 + .byte 0x00, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 + .byte 0x22, 0x0A, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x7F, 0x0C, 0x01, 0xE2 + .byte 0x00, 0x04, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0x10, 0x00, 0x50, 0xE3, 0x20, 0x00, 0x9F, 0x05 + .byte 0x01, 0x10, 0xA0, 0x03, 0xB0, 0x10, 0xC0, 0x01, 0x04, 0xD0, 0x8D, 0x02, 0x00, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0xED, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE0, 0x37, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x50, 0x00, 0x9F, 0xE5, 0xB0, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x12 + .byte 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xC0, 0xE1 + .byte 0xB6, 0x09, 0x00, 0xEB, 0x0C, 0x50, 0xA0, 0xE3, 0x01, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x2A, 0x0A, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A + .byte 0x14, 0x10, 0x9F, 0xE5, 0x0C, 0x00, 0xA0, 0xE3, 0x2F, 0x0A, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xDC, 0x37, 0x1D, 0x02, 0x64, 0xD4, 0x0C, 0x02 + .byte 0x08, 0x10, 0x9F, 0xE5, 0x68, 0x00, 0x91, 0xE5, 0x6C, 0x10, 0x91, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x80, 0xFC, 0x7F, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x6C, 0xC0, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 + .byte 0xB4, 0x26, 0xDC, 0xE1, 0x06, 0x00, 0x8C, 0xE2, 0x04, 0x10, 0x84, 0xE2, 0x82, 0x2E, 0xA0, 0xE1 + .byte 0xA2, 0x2E, 0xA0, 0xE1, 0x00, 0x20, 0xC4, 0xE5, 0x02, 0x30, 0xDC, 0xE5, 0x14, 0x20, 0xA0, 0xE3 + .byte 0x03, 0x3E, 0xA0, 0xE1, 0x23, 0x3E, 0xA0, 0xE1, 0x01, 0x30, 0xC4, 0xE5, 0x03, 0x30, 0xDC, 0xE5 + .byte 0x02, 0x30, 0xC4, 0xE5, 0x04, 0x30, 0xDC, 0xE5, 0x03, 0x30, 0xC4, 0xE5, 0x1A, 0x30, 0xDC, 0xE5 + .byte 0xB8, 0x31, 0xC4, 0xE1, 0x50, 0x30, 0xDC, 0xE5, 0xBE, 0x34, 0xC4, 0xE1, 0x17, 0x03, 0x00, 0xEB + .byte 0x14, 0x00, 0x9F, 0xE5, 0x1A, 0x10, 0x84, 0xE2, 0x1C, 0x00, 0x80, 0xE2, 0x34, 0x20, 0xA0, 0xE3 + .byte 0x12, 0x03, 0x00, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0xFC, 0x7F, 0x02 + .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x08, 0x00, 0x9F, 0xE5, 0x06, 0x20, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xE0, 0xE3, 0x0C, 0x02, 0xF4, 0xFC, 0x7F, 0x02, 0x10, 0x0F, 0x6F, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x47, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0xA0, 0xA0, 0xE1 + .byte 0x4E, 0xFF, 0xFF, 0xEB, 0x64, 0x40, 0x9F, 0xE5, 0x64, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x94, 0xE5 + .byte 0x00, 0x80, 0xA0, 0xE1, 0x02, 0x00, 0x05, 0xE0, 0x01, 0x90, 0x00, 0xE0, 0x54, 0x60, 0x9F, 0xE5 + .byte 0x01, 0x70, 0xA0, 0xE3, 0x00, 0x50, 0xA0, 0xE3, 0x09, 0x00, 0xA0, 0xE1, 0xEE, 0xFF, 0xFF, 0xEB + .byte 0x1F, 0x20, 0x70, 0xE2, 0x09, 0x00, 0x00, 0x4A, 0x82, 0x10, 0xA0, 0xE1, 0xB1, 0x00, 0x96, 0xE1 + .byte 0x17, 0x22, 0xE0, 0xE1, 0x00, 0x00, 0x5A, 0xE1, 0x00, 0x00, 0x94, 0x05, 0x02, 0x90, 0x09, 0xE0 + .byte 0x02, 0x00, 0x00, 0x00, 0xB1, 0x50, 0x86, 0x01, 0x00, 0x00, 0x84, 0x05, 0xF1, 0xFF, 0xFF, 0xEA + .byte 0x08, 0x00, 0xA0, 0xE1, 0x3A, 0xFF, 0xFF, 0xEB, 0xF0, 0x47, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xE4, 0x37, 0x1D, 0x02, 0xFF, 0x01, 0x00, 0x00, 0xE8, 0x37, 0x1D, 0x02, 0xF0, 0x43, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x80, 0xA0, 0xE1, 0x2B, 0xFF, 0xFF, 0xEB + .byte 0xAC, 0x10, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x00, 0x50, 0x06, 0xE0 + .byte 0xA0, 0x90, 0x9F, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0xCE, 0xFF, 0xFF, 0xEB + .byte 0x1F, 0x10, 0x70, 0xE2, 0x0B, 0x00, 0x00, 0x4A, 0x81, 0x00, 0xA0, 0xE1, 0xB0, 0x00, 0x99, 0xE1 + .byte 0x14, 0x11, 0xE0, 0xE1, 0x00, 0x00, 0x58, 0xE1, 0x01, 0x50, 0x05, 0xE0, 0xF5, 0xFF, 0xFF, 0x0A + .byte 0x07, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x5C, 0x00, 0x9F, 0xE5, 0x00, 0x60, 0x06, 0xE0 + .byte 0x50, 0x40, 0x9F, 0xE5, 0x48, 0x90, 0x9F, 0xE5, 0x01, 0x50, 0xA0, 0xE3, 0x06, 0x00, 0xA0, 0xE1 + .byte 0xB9, 0xFF, 0xFF, 0xEB, 0x1F, 0x10, 0x70, 0xE2, 0x07, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x99, 0xE5 + .byte 0x15, 0x21, 0xE0, 0xE1, 0x15, 0x01, 0x80, 0xE1, 0x81, 0x10, 0xA0, 0xE1, 0xB1, 0x80, 0x84, 0xE1 + .byte 0x00, 0x00, 0x89, 0xE5, 0x02, 0x60, 0x06, 0xE0, 0xF3, 0xFF, 0xFF, 0xEA, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x07, 0xFF, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE4, 0x37, 0x1D, 0x02, 0xE8, 0x37, 0x1D, 0x02, 0xFF, 0x01, 0x00, 0x00 + .byte 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0x80, 0xE5, 0x1C, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x20, 0xA0, 0xE1, 0x83, 0x10, 0xA0, 0xE1, 0x01, 0x30, 0x83, 0xE2, 0xB1, 0x20, 0x80, 0xE1 + .byte 0x09, 0x00, 0x53, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0xE4, 0x37, 0x1D, 0x02 + .byte 0xE8, 0x37, 0x1D, 0x02, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0xC8, 0x10, 0x9F, 0xE5 + .byte 0xC8, 0x20, 0x9F, 0xE5, 0xB0, 0x70, 0xD1, 0xE1, 0x80, 0x40, 0x82, 0xE2, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x74, 0x50, 0x84, 0xE2, 0x24, 0xFD, 0xFF, 0xEB, 0x07, 0x08, 0x80, 0xE1, 0x00, 0x00, 0x86, 0xE5 + .byte 0xAC, 0x10, 0x9F, 0xE5, 0xA4, 0x00, 0x9F, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0xB4, 0x50, 0xD5, 0xE1 + .byte 0x04, 0x20, 0x91, 0xE5, 0x9C, 0x20, 0x9F, 0xE5, 0x05, 0x38, 0x23, 0xE0, 0x04, 0x30, 0x86, 0xE5 + .byte 0x00, 0x30, 0x91, 0xE5, 0x04, 0x30, 0x91, 0xE5, 0x74, 0x10, 0x94, 0xE5, 0x3C, 0x40, 0x90, 0xE5 + .byte 0x01, 0x10, 0x23, 0xE0, 0x01, 0x10, 0x24, 0xE0, 0x08, 0x10, 0x86, 0xE5, 0x08, 0x30, 0x96, 0xE5 + .byte 0x00, 0x20, 0x92, 0xE5, 0x03, 0x1C, 0x80, 0xE2, 0x02, 0x20, 0x23, 0xE0, 0x08, 0x20, 0x86, 0xE5 + .byte 0xE8, 0x21, 0x90, 0xE5, 0x60, 0x30, 0x9F, 0xE5, 0x0C, 0x20, 0x86, 0xE5, 0xEC, 0x41, 0x90, 0xE5 + .byte 0x58, 0x20, 0x9F, 0xE5, 0x10, 0x40, 0x86, 0xE5, 0xB4, 0x49, 0xD1, 0xE1, 0x90, 0x03, 0x90, 0xE5 + .byte 0x04, 0x08, 0x20, 0xE0, 0x14, 0x00, 0x86, 0xE5, 0xBA, 0x4A, 0xD1, 0xE1, 0xBC, 0x0A, 0xD1, 0xE1 + .byte 0x04, 0x08, 0x80, 0xE1, 0x18, 0x00, 0x86, 0xE5, 0xB0, 0x30, 0xD3, 0xE1, 0xB0, 0x00, 0xD2, 0xE1 + .byte 0xB8, 0x19, 0xD1, 0xE1, 0x00, 0x00, 0x83, 0xE1, 0x01, 0x08, 0x80, 0xE1, 0x1C, 0x00, 0x86, 0xE5 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x00, 0x00, 0x04 + .byte 0x00, 0xFC, 0x7F, 0x02, 0xB4, 0x37, 0x1D, 0x02, 0x00, 0x06, 0x00, 0x04, 0x30, 0x01, 0x00, 0x04 + .byte 0xA8, 0xFF, 0x7F, 0x02, 0x00, 0x00, 0xA0, 0xE3, 0x90, 0x0F, 0x07, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0xAC, 0xFE, 0xFF, 0xEB, 0xF8, 0xFF, 0xFF, 0xEB + .byte 0xFC, 0xFF, 0xFF, 0xEA, 0x04, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xC1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x47, 0x02, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0x53, 0xE3 + .byte 0xFF, 0x04, 0x01, 0xE2, 0x02, 0x00, 0x00, 0x0A, 0x02, 0x05, 0x53, 0xE3, 0x02, 0x10, 0x41, 0x00 + .byte 0x00, 0x00, 0x00, 0xEA, 0x02, 0x10, 0x81, 0xE0, 0x01, 0x03, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A + .byte 0x02, 0x03, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x2A, 0xFF, 0x04, 0x01, 0xE2, 0x01, 0x03, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x0A, 0x02, 0x03, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x32, 0x00, 0x40, 0xBD, 0x38 + .byte 0x1E, 0xFF, 0x2F, 0x31, 0xDD, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0xA0, 0x40, 0x9F, 0xE5 + .byte 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, 0x07, 0x00, 0x55, 0xE1 + .byte 0x1C, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x94, 0xE5, 0x02, 0x01, 0x11, 0xE2, 0x19, 0x00, 0x00, 0x0A + .byte 0x0E, 0x03, 0x01, 0xE2, 0x06, 0x00, 0x50, 0xE1, 0x16, 0x00, 0x00, 0x0A, 0x02, 0x03, 0x50, 0xE3 + .byte 0x01, 0x00, 0x00, 0x1A, 0x01, 0x02, 0x56, 0xE3, 0x12, 0x00, 0x00, 0x0A, 0x01, 0x02, 0x50, 0xE3 + .byte 0x01, 0x00, 0x00, 0x1A, 0x02, 0x03, 0x56, 0xE3, 0x0E, 0x00, 0x00, 0x0A, 0x06, 0x03, 0x50, 0xE3 + .byte 0x0B, 0x00, 0x00, 0x0A, 0x02, 0x02, 0x50, 0xE3, 0x09, 0x00, 0x00, 0x0A, 0x0A, 0x03, 0x50, 0xE3 + .byte 0x07, 0x00, 0x00, 0x0A, 0x03, 0x02, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x0E, 0x03, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x0A, 0x02, 0x03, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x01, 0x02, 0x50, 0xE3 + .byte 0x00, 0x00, 0x00, 0x1A, 0xB5, 0xFF, 0xFF, 0xEB, 0x01, 0x50, 0x85, 0xE2, 0x03, 0x00, 0x55, 0xE3 + .byte 0x0C, 0x40, 0x84, 0xE2, 0xDC, 0xFF, 0xFF, 0xBA, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0x00, 0x00, 0x04, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x5A, 0xFE, 0xFF, 0xEB, 0x06, 0x10, 0xA0, 0xE3, 0x94, 0x01, 0x01, 0xE0, 0x05, 0x10, 0x81, 0xE2 + .byte 0x81, 0x10, 0xA0, 0xE1, 0x01, 0x13, 0x81, 0xE2, 0xB0, 0x2B, 0xD1, 0xE1, 0x00, 0x00, 0x54, 0xE3 + .byte 0x3A, 0x2C, 0xC2, 0xE3, 0xB0, 0x2B, 0xC1, 0xE1, 0xB0, 0x2B, 0xD1, 0xE1, 0x02, 0x29, 0xC2, 0xE3 + .byte 0xB0, 0x2B, 0xC1, 0xE1, 0xB0, 0x2B, 0xD1, 0xE1, 0xB0, 0x1B, 0xD1, 0xE1, 0x09, 0x00, 0x00, 0x1A + .byte 0x0C, 0x10, 0xA0, 0xE3, 0x94, 0x01, 0x0C, 0xE0, 0x24, 0x10, 0x9F, 0xE5, 0x01, 0x23, 0x8C, 0xE2 + .byte 0x00, 0x30, 0xA0, 0xE3, 0xB0, 0x30, 0x82, 0xE5, 0x01, 0x20, 0x8C, 0xE0, 0x14, 0x10, 0x9F, 0xE5 + .byte 0x04, 0x30, 0x82, 0xE5, 0x08, 0x10, 0x82, 0xE5, 0x45, 0xFE, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x00, 0x00, 0x04, 0x01, 0x00, 0x40, 0x81, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x39, 0xFE, 0xFF, 0xEB, 0x03, 0x10, 0xA0, 0xE3, 0x94, 0x01, 0x02, 0xE0 + .byte 0x4C, 0x10, 0x9F, 0xE5, 0x02, 0x20, 0x82, 0xE2, 0x02, 0x21, 0x81, 0xE0, 0x00, 0x10, 0x92, 0xE5 + .byte 0x02, 0x11, 0x11, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x54, 0xE3, 0x09, 0x00, 0x00, 0x1A + .byte 0x0C, 0x10, 0xA0, 0xE3, 0x94, 0x01, 0x0C, 0xE0, 0x24, 0x10, 0x9F, 0xE5, 0x01, 0x23, 0x8C, 0xE2 + .byte 0x00, 0x30, 0xA0, 0xE3, 0xB0, 0x30, 0x82, 0xE5, 0x01, 0x20, 0x8C, 0xE0, 0x14, 0x10, 0x9F, 0xE5 + .byte 0x04, 0x30, 0x82, 0xE5, 0x08, 0x10, 0x82, 0xE5, 0x29, 0xFE, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x00, 0x00, 0x04, 0x01, 0x00, 0x40, 0x81, 0xF0, 0x41, 0x2D, 0xE9 + .byte 0x03, 0x50, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1, 0x18, 0x40, 0x9D, 0xE5, 0x70, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x00, 0x55, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x54, 0xE3, 0xF0, 0x41, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x1C, 0x00, 0x9D, 0xE5, 0x34, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0xCF, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3 + .byte 0x0B, 0x00, 0x00, 0x0A, 0x1C, 0x20, 0x9D, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1 + .byte 0x07, 0xF1, 0xFF, 0xEB, 0x25, 0x31, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 + .byte 0x06, 0x20, 0xA0, 0xE1, 0x31, 0x33, 0x83, 0xE3, 0xB8, 0xAA, 0xFC, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x25, 0x31, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 + .byte 0x06, 0x20, 0xA0, 0xE1, 0x21, 0x33, 0x83, 0xE3, 0xB0, 0xAA, 0xFC, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x03, 0x40, 0xB0, 0xE1, 0x00, 0x70, 0xA0, 0xE1 + .byte 0x01, 0x60, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1, 0x18, 0x80, 0x9D, 0xE5, 0x06, 0x00, 0x00, 0x1A + .byte 0x00, 0x00, 0x58, 0xE3, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x1C, 0x00, 0x9D, 0xE5 + .byte 0x38, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xAA, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x00, 0x58, 0xE3, 0x13, 0x00, 0x00, 0x0A, 0x1C, 0x20, 0x9D, 0xE5, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x08, 0x10, 0xA0, 0xE1, 0xE2, 0xF0, 0xFF, 0xEB, 0xE0, 0xFD, 0xFF, 0xEB, 0x24, 0x31, 0xA0, 0xE1 + .byte 0x70, 0x10, 0x9F, 0xE5, 0x07, 0x21, 0xA0, 0xE1, 0x01, 0x23, 0x82, 0xE2, 0xE0, 0x50, 0x82, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x07, 0x11, 0x81, 0xE0, 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1 + .byte 0xC5, 0x34, 0x83, 0xE3, 0x62, 0xAA, 0xFC, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xD8, 0xFD, 0xFF, 0xEB + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xD0, 0xFD, 0xFF, 0xEB, 0x34, 0x10, 0x9F, 0xE5 + .byte 0x07, 0x21, 0xA0, 0xE1, 0x24, 0x31, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0xC3, 0x82, 0xE2 + .byte 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0x07, 0x11, 0x81, 0xE0, 0x85, 0x34, 0x83, 0xE3 + .byte 0xE0, 0x50, 0x8C, 0xE5, 0x52, 0xAA, 0xFC, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xC8, 0xFD, 0xFF, 0xEB + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xE0, 0x00, 0x00, 0x04, 0xF0, 0x41, 0x2D, 0xE9 + .byte 0x03, 0x50, 0xB0, 0xE1, 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1 + .byte 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x0F, 0xFF, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x98, 0x00, 0x01, 0xE0, 0x3C, 0x00, 0x9F, 0xE5 + .byte 0x02, 0x10, 0x81, 0xE2, 0x01, 0x41, 0x80, 0xE0, 0x00, 0x00, 0x94, 0xE5, 0x02, 0x01, 0x10, 0xE2 + .byte 0xFC, 0xFF, 0xFF, 0x1A, 0xA5, 0x30, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 + .byte 0x06, 0x20, 0xA0, 0xE1, 0x02, 0x31, 0x83, 0xE3, 0x43, 0xAA, 0xFC, 0xEB, 0x00, 0x00, 0x94, 0xE5 + .byte 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xB0, 0x00, 0x00, 0x04, 0xF0, 0x41, 0x2D, 0xE9, 0x03, 0x50, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1 + .byte 0x05, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1 + .byte 0xF3, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x03, 0x00, 0xA0, 0xE3, 0x98, 0x00, 0x01, 0xE0, 0x3C, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0x81, 0xE2 + .byte 0x01, 0x41, 0x80, 0xE0, 0x00, 0x00, 0x94, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A + .byte 0x25, 0x31, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1 + .byte 0x21, 0x33, 0x83, 0xE3, 0x24, 0xAA, 0xFC, 0xEB, 0x00, 0x00, 0x94, 0xE5, 0x02, 0x01, 0x10, 0xE2 + .byte 0xFC, 0xFF, 0xFF, 0x1A, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x00, 0x00, 0x04 + .byte 0xF0, 0x41, 0x2D, 0xE9, 0x03, 0x40, 0xB0, 0xE1, 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1 + .byte 0x02, 0x60, 0xA0, 0xE1, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x03, 0x00, 0xA0, 0xE3 + .byte 0x98, 0x00, 0x01, 0xE0, 0x5C, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0x81, 0xE2, 0x01, 0x51, 0x80, 0xE0 + .byte 0x00, 0x00, 0x95, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0x73, 0xFD, 0xFF, 0xEB + .byte 0x44, 0x10, 0x9F, 0xE5, 0x08, 0x21, 0xA0, 0xE1, 0x24, 0x31, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x01, 0xC3, 0x82, 0xE2, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x08, 0x11, 0x81, 0xE0 + .byte 0x85, 0x34, 0x83, 0xE3, 0xE0, 0x60, 0x8C, 0xE5, 0xDD, 0xA9, 0xFC, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x6B, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x95, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x00, 0x00, 0x04, 0xE0, 0x00, 0x00, 0x04 + .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x60, 0xA0, 0xE1, 0x00, 0x70, 0xA0, 0xE1 + .byte 0x03, 0x40, 0xA0, 0xE1, 0x01, 0x12, 0xA0, 0xE3, 0x02, 0x50, 0xA0, 0xE1, 0xCC, 0xFE, 0xFF, 0xEB + .byte 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 + .byte 0xAB, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x07, 0x00, 0xA0, 0xE1, 0x0F, 0xFF, 0xFF, 0xEB, 0x1C, 0x30, 0x9F, 0xE5 + .byte 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0xA4, 0x30, 0x83, 0xE1 + .byte 0xFE, 0xA9, 0xFC, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0x60, 0x92, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x60, 0xA0, 0xE1 + .byte 0x00, 0x70, 0xA0, 0xE1, 0x03, 0x40, 0xA0, 0xE1, 0x01, 0x12, 0xA0, 0xE3, 0x02, 0x50, 0xA0, 0xE1 + .byte 0xAF, 0xFE, 0xFF, 0xEB, 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x8E, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02 + .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x07, 0x00, 0xA0, 0xE1, 0xF2, 0xFE, 0xFF, 0xEB + .byte 0x1C, 0x30, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1 + .byte 0x24, 0x31, 0x83, 0xE1, 0xE1, 0xA9, 0xFC, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x60, 0x96, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x10, 0x90, 0xE5, 0x00, 0x20, 0x80, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x14, 0x00, 0x90, 0xE5, 0x00, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x31, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFC, 0x37, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x02, 0x40, 0xB0, 0xE1 + .byte 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x06, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x53, 0xE3 + .byte 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x10, 0x00, 0x9D, 0xE5, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0x92, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x10, 0xC0, 0x9D, 0xE5, 0x01, 0xE0, 0xA0, 0xE3 + .byte 0x06, 0x00, 0xA0, 0xE1, 0x0E, 0x13, 0xA0, 0xE3, 0x00, 0xE0, 0x82, 0xE5, 0x04, 0x60, 0x82, 0xE5 + .byte 0x10, 0x30, 0x82, 0xE5, 0x14, 0xC0, 0x82, 0xE5, 0x71, 0xFE, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x05, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x50, 0xFE, 0xFF, 0xEB + .byte 0x06, 0x00, 0xA0, 0xE1, 0xB8, 0xFE, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x2C, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0xF2, 0xEF, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x1C, 0x20, 0x9F, 0xE5, 0x0F, 0x35, 0xA0, 0xE3, 0x00, 0x30, 0x63, 0xE2, 0x24, 0x31, 0x83, 0xE1 + .byte 0xA2, 0xA9, 0xFC, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFC, 0x37, 0x1D, 0x02 + .byte 0x78, 0xDE, 0x0C, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x02, 0x06, 0xA0, 0xE3, 0xA2, 0xEF, 0xFF, 0xEB, 0x54, 0x20, 0x9F, 0xE5, 0x54, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x92, 0xE5, 0x18, 0x30, 0x90, 0xE5, 0x03, 0x11, 0xC1, 0xE3, 0x03, 0x1F, 0x81, 0xE1 + .byte 0x00, 0x10, 0x82, 0xE5, 0x1C, 0x10, 0x90, 0xE5, 0x02, 0x06, 0xA0, 0xE3, 0x0E, 0xF0, 0xFF, 0xEB + .byte 0x30, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x10, 0x90, 0xE5, 0x00, 0x20, 0x80, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x14, 0x00, 0x90, 0xE5, 0x00, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x31, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x06, 0x00, 0x04, 0xFC, 0x37, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0xA8, 0x00, 0x9F, 0xE5, 0x0C, 0x40, 0x90, 0xE5, 0x00, 0x00, 0x54, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x90, 0x00, 0x9F, 0xE5 + .byte 0x76, 0x0F, 0x54, 0xE3, 0x08, 0x50, 0x90, 0xE5, 0x76, 0x4F, 0xA0, 0x23, 0x0C, 0x20, 0x90, 0xE5 + .byte 0x04, 0x10, 0x85, 0xE0, 0x04, 0x20, 0x52, 0xE0, 0x0C, 0x20, 0x80, 0xE5, 0x08, 0x10, 0x80, 0xE5 + .byte 0x10, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x90, 0xE5, 0x68, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 + .byte 0xB3, 0xEF, 0xFF, 0xEB, 0xEF, 0x05, 0xA0, 0xE3, 0x00, 0x30, 0x60, 0xE2, 0x50, 0x10, 0x9F, 0xE5 + .byte 0x54, 0x20, 0x9F, 0xE5, 0x04, 0x00, 0x91, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x24, 0x31, 0x83, 0xE1 + .byte 0x62, 0xA9, 0xFC, 0xEB, 0x02, 0x06, 0xA0, 0xE3, 0x5C, 0xEF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x30, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0x24, 0x20, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x24, 0x31, 0x83, 0xE1, 0x57, 0xA9, 0xFC, 0xEB + .byte 0x02, 0x06, 0xA0, 0xE3, 0x51, 0xEF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFC, 0x37, 0x1D, 0x02, 0x78, 0xDF, 0x0C, 0x02, 0x00, 0x04, 0x00, 0x04 + .byte 0x00, 0x00, 0x40, 0x84, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x52, 0xE3, 0x08, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x53, 0xE3, 0x04, 0xD0, 0x8D, 0x02 + .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x10, 0x00, 0x9D, 0xE5, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xC8, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0xBC, 0x50, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x95, 0xE5, 0x07, 0x04, 0x00, 0xE2, 0x20, 0x0C, 0xA0, 0xE1, 0x02, 0x00, 0x10, 0xE2 + .byte 0xFA, 0xFF, 0xFF, 0x0A, 0xA0, 0xC0, 0x9F, 0xE5, 0x10, 0xE0, 0x9D, 0xE5, 0x10, 0x30, 0x8C, 0xE5 + .byte 0x01, 0x50, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x50, 0x8C, 0xE5 + .byte 0x04, 0x40, 0x8C, 0xE5, 0x08, 0x10, 0x8C, 0xE5, 0x0C, 0x20, 0x8C, 0xE5, 0x14, 0xE0, 0x8C, 0xE5 + .byte 0xCB, 0xFD, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x33, 0xFE, 0xFF, 0xEB, 0x6F, 0xFC, 0xFF, 0xEB + .byte 0x68, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x58, 0x10, 0x9F, 0xE5 + .byte 0x03, 0x01, 0x00, 0xE2, 0x20, 0x2F, 0xA0, 0xE1, 0x02, 0x06, 0xA0, 0xE3, 0x18, 0x20, 0x81, 0xE5 + .byte 0x7A, 0xEF, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x40, 0x20, 0x9F, 0xE5, 0x1C, 0x00, 0x81, 0xE5 + .byte 0x00, 0x00, 0x92, 0xE5, 0x38, 0x10, 0x9F, 0xE5, 0x03, 0x01, 0xC0, 0xE3, 0x01, 0x31, 0x80, 0xE3 + .byte 0x02, 0x06, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x93, 0xEF, 0xFF, 0xEB, 0x02, 0x06, 0xA0, 0xE3 + .byte 0x2D, 0xEF, 0xFF, 0xEB, 0x90, 0xFF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x5C, 0xFC, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFC, 0x37, 0x1D, 0x02 + .byte 0x00, 0x06, 0x00, 0x04, 0xEC, 0xDF, 0x0C, 0x02, 0x00, 0x30, 0xA0, 0xE3, 0x02, 0x00, 0x53, 0xE1 + .byte 0xB3, 0x00, 0x81, 0xB1, 0x02, 0x30, 0x83, 0xB2, 0xFB, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0xC0, 0xA0, 0xE3, 0x02, 0x00, 0x5C, 0xE1, 0xBC, 0x30, 0x90, 0xB1, 0xBC, 0x30, 0x81, 0xB1 + .byte 0x02, 0xC0, 0x8C, 0xB2, 0xFA, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0x02, 0xC0, 0x81, 0xE0 + .byte 0x0C, 0x00, 0x51, 0xE1, 0x01, 0x00, 0xA1, 0xB8, 0xFC, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x02, 0xC0, 0x81, 0xE0, 0x0C, 0x00, 0x51, 0xE1, 0x04, 0x00, 0xB0, 0xB8, 0x04, 0x00, 0xA1, 0xB8 + .byte 0xFB, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0x02, 0xC0, 0x80, 0xE0, 0x0C, 0x00, 0x50, 0xE1 + .byte 0x04, 0x00, 0xB0, 0xB8, 0x00, 0x20, 0x81, 0xB5, 0xFB, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xF0, 0x03, 0x2D, 0xE9, 0x02, 0x90, 0x81, 0xE0, 0xA2, 0xC2, 0xA0, 0xE1, 0x8C, 0xC2, 0x81, 0xE0 + .byte 0x00, 0x20, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1 + .byte 0x02, 0x60, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1, 0x02, 0x80, 0xA0, 0xE1, 0x0C, 0x00, 0x51, 0xE1 + .byte 0xFD, 0x01, 0xA1, 0xB8, 0xFC, 0xFF, 0xFF, 0xBA, 0x09, 0x00, 0x51, 0xE1, 0x01, 0x00, 0xA1, 0xB8 + .byte 0xFC, 0xFF, 0xFF, 0xBA, 0xF0, 0x03, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x07, 0x2D, 0xE9 + .byte 0x02, 0xA0, 0x81, 0xE0, 0xA2, 0xC2, 0xA0, 0xE1, 0x8C, 0xC2, 0x81, 0xE0, 0x0C, 0x00, 0x51, 0xE1 + .byte 0xFC, 0x03, 0xB0, 0xB8, 0xFC, 0x03, 0xA1, 0xB8, 0xFB, 0xFF, 0xFF, 0xBA, 0x0A, 0x00, 0x51, 0xE1 + .byte 0x04, 0x00, 0xB0, 0xB8, 0x04, 0x00, 0xA1, 0xB8, 0xFB, 0xFF, 0xFF, 0xBA, 0xF0, 0x07, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8 + .byte 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x00, 0xB0, 0xE8, 0x0C, 0x00, 0xA1, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8 + .byte 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x10, 0xB0, 0xE8 + .byte 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8 + .byte 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8 + .byte 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8 + .byte 0x0D, 0x10, 0x90, 0xE8, 0x0D, 0x10, 0xA1, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x52, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x00, 0x10, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0xB1, 0xC0, 0x50, 0xE1 + .byte 0xFF, 0xC0, 0x0C, 0xE2, 0x01, 0x34, 0x8C, 0xE1, 0xB1, 0x30, 0x40, 0xE1, 0x01, 0x00, 0x80, 0xE2 + .byte 0x01, 0x20, 0x52, 0xE2, 0x1E, 0xFF, 0x2F, 0x01, 0x02, 0x00, 0x52, 0xE3, 0x0F, 0x00, 0x00, 0x3A + .byte 0x01, 0x14, 0x81, 0xE1, 0x02, 0x00, 0x10, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0xB2, 0x10, 0xC0, 0xE0 + .byte 0x02, 0x20, 0x52, 0xE2, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x18, 0x81, 0xE1, 0x03, 0x30, 0xD2, 0xE3 + .byte 0x04, 0x00, 0x00, 0x0A, 0x03, 0x20, 0x42, 0xE0, 0x00, 0xC0, 0x83, 0xE0, 0x04, 0x10, 0x80, 0xE4 + .byte 0x0C, 0x00, 0x50, 0xE1, 0xFC, 0xFF, 0xFF, 0x3A, 0x02, 0x00, 0x12, 0xE3, 0xB2, 0x10, 0xC0, 0x10 + .byte 0x01, 0x00, 0x12, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0xB0, 0x30, 0xD0, 0xE1, 0xFF, 0x3C, 0x03, 0xE2 + .byte 0xFF, 0x10, 0x01, 0xE2, 0x03, 0x10, 0x81, 0xE1, 0xB0, 0x10, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0x52, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x00, 0x11, 0xE3, 0x0B, 0x00, 0x00, 0x0A + .byte 0xB1, 0xC0, 0x51, 0xE1, 0xFF, 0xC0, 0x0C, 0xE2, 0x01, 0x00, 0x10, 0xE3, 0xB1, 0x30, 0x50, 0x11 + .byte 0x23, 0x34, 0xA0, 0x11, 0xB0, 0x30, 0xD0, 0x01, 0x03, 0x34, 0x8C, 0xE1, 0xB1, 0x30, 0x41, 0xE1 + .byte 0x01, 0x00, 0x80, 0xE2, 0x01, 0x10, 0x81, 0xE2, 0x01, 0x20, 0x52, 0xE2, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x00, 0xC0, 0x21, 0xE0, 0x01, 0x00, 0x1C, 0xE3, 0x11, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xC0, 0xE3 + .byte 0xB2, 0xC0, 0xD0, 0xE0, 0x2C, 0x34, 0xA0, 0xE1, 0x02, 0x20, 0x52, 0xE2, 0x05, 0x00, 0x00, 0x3A + .byte 0xB2, 0xC0, 0xD0, 0xE0, 0x0C, 0xC4, 0x83, 0xE1, 0xB2, 0xC0, 0xC1, 0xE0, 0x2C, 0x38, 0xA0, 0xE1 + .byte 0x02, 0x20, 0x52, 0xE2, 0xF9, 0xFF, 0xFF, 0x2A, 0x01, 0x00, 0x12, 0xE3, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0xB0, 0xC0, 0xD1, 0xE1, 0xFF, 0xCC, 0x0C, 0xE2, 0x03, 0xC0, 0x8C, 0xE1, 0xB0, 0xC0, 0xC1, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x02, 0x00, 0x1C, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x01, 0x30, 0xD2, 0xE3 + .byte 0x19, 0x00, 0x00, 0x0A, 0x03, 0x20, 0x42, 0xE0, 0x01, 0xC0, 0x83, 0xE0, 0xB2, 0x30, 0xD0, 0xE0 + .byte 0xB2, 0x30, 0xC1, 0xE0, 0x0C, 0x00, 0x51, 0xE1, 0xFB, 0xFF, 0xFF, 0x3A, 0x12, 0x00, 0x00, 0xEA + .byte 0x02, 0x00, 0x52, 0xE3, 0x10, 0x00, 0x00, 0x3A, 0x02, 0x00, 0x11, 0xE3, 0x03, 0x00, 0x00, 0x0A + .byte 0xB2, 0x30, 0xD0, 0xE0, 0xB2, 0x30, 0xC1, 0xE0, 0x02, 0x20, 0x52, 0xE2, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x03, 0x30, 0xD2, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x03, 0x20, 0x42, 0xE0, 0x01, 0xC0, 0x83, 0xE0 + .byte 0x04, 0x30, 0x90, 0xE4, 0x04, 0x30, 0x81, 0xE4, 0x0C, 0x00, 0x51, 0xE1, 0xFB, 0xFF, 0xFF, 0x3A + .byte 0x02, 0x00, 0x12, 0xE3, 0xB2, 0x30, 0xD0, 0x10, 0xB2, 0x30, 0xC1, 0x10, 0x01, 0x00, 0x12, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0xB0, 0x20, 0xD1, 0xE1, 0xB0, 0x00, 0xD0, 0xE1, 0xFF, 0x2C, 0x02, 0xE2 + .byte 0xFF, 0x00, 0x00, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0xB0, 0x00, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x0E, 0xC0, 0x0E, 0xC0, 0x0E, 0xC0, 0x70, 0x47, 0x00, 0x00 + .byte 0x90, 0x00, 0x01, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x04, 0x50, 0x90, 0xE4 + .byte 0x25, 0x24, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x1D, 0x00, 0x00, 0xDA, 0x01, 0xE0, 0xD0, 0xE4 + .byte 0x08, 0x40, 0xA0, 0xE3, 0x01, 0x40, 0x54, 0xE2, 0xF9, 0xFF, 0xFF, 0xBA, 0x80, 0x00, 0x1E, 0xE3 + .byte 0x04, 0x00, 0x00, 0x1A, 0x01, 0x60, 0xD0, 0xE4, 0x96, 0x60, 0x41, 0xE1, 0x01, 0x10, 0x81, 0xE2 + .byte 0x01, 0x20, 0x42, 0xE2, 0x0E, 0x00, 0x00, 0xEA, 0x00, 0x50, 0xD0, 0xE5, 0x03, 0x60, 0xA0, 0xE3 + .byte 0x45, 0x32, 0x86, 0xE0, 0x01, 0x60, 0xD0, 0xE4, 0x0F, 0x50, 0x06, 0xE2, 0x05, 0xC4, 0xA0, 0xE1 + .byte 0x01, 0x60, 0xD0, 0xE4, 0x0C, 0x50, 0x86, 0xE1, 0x01, 0xC0, 0x85, 0xE2, 0x03, 0x20, 0x42, 0xE0 + .byte 0x0C, 0x50, 0x51, 0xE7, 0x95, 0x50, 0x41, 0xE1, 0x01, 0x10, 0x81, 0xE2, 0x01, 0x30, 0x53, 0xE2 + .byte 0xFA, 0xFF, 0xFF, 0xCA, 0x00, 0x00, 0x52, 0xE3, 0x8E, 0xE0, 0xA0, 0xC1, 0xE4, 0xFF, 0xFF, 0xCA + .byte 0xDF, 0xFF, 0xFF, 0xEA, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x50, 0xA0, 0xE1, 0x00, 0x60, 0xA0, 0xE1, 0x03, 0x70, 0xA0, 0xE1 + .byte 0x00, 0x10, 0xE0, 0xE3, 0x02, 0x40, 0xA0, 0xE1, 0xC1, 0xFC, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x05, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x01, 0x34, 0xA0, 0xE3, 0xA0, 0xFC, 0xFF, 0xEB + .byte 0x00, 0x00, 0x57, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x03, 0x00, 0xA0, 0xE3, 0x96, 0x00, 0x01, 0xE0, 0x30, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0x81, 0xE2 + .byte 0x01, 0x11, 0x80, 0xE0, 0x00, 0x00, 0x91, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A + .byte 0x1C, 0x30, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 + .byte 0xEE, 0xA7, 0xFC, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xB0, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0xAF, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x03, 0x00, 0xA0, 0xE3, 0x82, 0xFC, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0xCD, 0xFC, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x01, 0x60, 0xA0, 0xE1 + .byte 0x02, 0x50, 0xA0, 0xE1, 0x03, 0x40, 0xA0, 0xE1, 0xCE, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x70, 0x80, 0xE5 + .byte 0x08, 0x60, 0x80, 0xE5, 0x0C, 0x50, 0x80, 0xE5, 0x18, 0x10, 0x9D, 0xE5, 0x10, 0x40, 0x80, 0xE5 + .byte 0x14, 0x10, 0x80, 0xE5, 0xB1, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x08, 0xC0, 0x9D, 0xE5 + .byte 0x02, 0xE0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x0C, 0x1C, 0x80, 0xE1 + .byte 0x0E, 0x30, 0xA0, 0xE1, 0x07, 0x00, 0xA0, 0xE3, 0xDF, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE3, 0xD2, 0xFF, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x02, 0x30, 0xA0, 0xE1, 0x18, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xE0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0xC7, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x18, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x8D, 0xE5, 0xBC, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0xE0, 0xA0, 0xE1 + .byte 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1 + .byte 0x0C, 0x30, 0xA0, 0xE1, 0x19, 0x00, 0xA0, 0xE3, 0xAF, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x20, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x30, 0x8D, 0xE5, 0xA4, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x1F, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5 + .byte 0x99, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xE1, 0x1E, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5, 0x8E, 0xFF, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x18, 0xC0, 0x9D, 0xE5, 0x03, 0x3D, 0xA0, 0xE1, 0x01, 0x4C, 0x83, 0xE1 + .byte 0x24, 0x50, 0x9D, 0xE5, 0x0C, 0x3C, 0xA0, 0xE1, 0x1C, 0x10, 0x9D, 0xE5, 0x10, 0xC0, 0x9D, 0xE5 + .byte 0x05, 0x48, 0x84, 0xE1, 0x04, 0x40, 0x8C, 0xE1, 0x20, 0xE0, 0x9D, 0xE5, 0x01, 0x3B, 0x83, 0xE1 + .byte 0x14, 0xC0, 0x9D, 0xE5, 0x0E, 0x18, 0x80, 0xE1, 0x03, 0x30, 0x8C, 0xE1, 0x0E, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x40, 0x8D, 0xE5, 0x78, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x15, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5 + .byte 0x6D, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 + .byte 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x14, 0x00, 0xA0, 0xE3 + .byte 0x00, 0xC0, 0x8D, 0xE5, 0x60, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x13, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5 + .byte 0x55, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xE1, 0x1B, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5, 0x4A, 0xFF, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x1A, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5, 0x3F, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2 + .byte 0x02, 0x40, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x18, 0x20, 0x9D, 0xE5, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x03, 0x10, 0xA0, 0xE1, 0xDD, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x8D, 0xE5, 0x06, 0x10, 0xA0, 0xE1 + .byte 0x05, 0x20, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x12, 0x00, 0xA0, 0xE3, 0x2E, 0xFF, 0xFF, 0xEB + .byte 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x80, 0x0F, 0xA0, 0xE1, 0x01, 0x0F, 0x80, 0xE1, 0x08, 0xC0, 0x9D, 0xE5 + .byte 0x02, 0x10, 0xA0, 0xE1, 0x8C, 0x0E, 0x80, 0xE1, 0x0C, 0x20, 0x9D, 0xE5, 0x00, 0xE0, 0xA0, 0xE3 + .byte 0x02, 0x0E, 0x80, 0xE1, 0x10, 0xC0, 0x9D, 0xE5, 0x03, 0x20, 0xA0, 0xE1, 0x8C, 0x3D, 0x80, 0xE1 + .byte 0x11, 0x00, 0xA0, 0xE3, 0x00, 0xE0, 0x8D, 0xE5, 0x1B, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x43, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x02, 0x70, 0xA0, 0xE1, 0x00, 0x90, 0xA0, 0xE1, 0x01, 0x80, 0xA0, 0xE1, 0x03, 0x60, 0xA0, 0xE1 + .byte 0x07, 0x40, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x14, 0xE2 + .byte 0x01, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1, 0xC0, 0x02, 0x00, 0xEB, 0x01, 0x50, 0x85, 0xE2 + .byte 0xA4, 0x40, 0xA0, 0xE1, 0x08, 0x00, 0x55, 0xE3, 0x01, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x54, 0xE3 + .byte 0xF5, 0xFF, 0xFF, 0x1A, 0x09, 0x10, 0xA0, 0xE1, 0x08, 0x20, 0xA0, 0xE1, 0x07, 0x30, 0xA0, 0xE1 + .byte 0x0D, 0x00, 0xA0, 0xE3, 0x00, 0x60, 0x8D, 0xE5, 0xFF, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0x0C, 0x00, 0xA0, 0xE3, 0xF2, 0xFE, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x00, 0xC0, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x09, 0x00, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5 + .byte 0xE5, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x02, 0x30, 0xA0, 0xE1, 0x01, 0xC0, 0xA0, 0xE3 + .byte 0x09, 0x20, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0xF1, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x02, 0x30, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE3, 0x0C, 0x20, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5 + .byte 0xE7, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x01, 0x30, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xF8, 0xE6, 0x0C, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1 + .byte 0x06, 0x10, 0xA0, 0xE3, 0x02, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xF8, 0xE6, 0x0C, 0x02 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5, 0xBA, 0xFE, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 + .byte 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0xAF, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0x02, 0x00, 0xA0, 0xE3, 0xA2, 0xFE, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0x97, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x9F, 0xE5 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xA0, 0xBF, 0x0C, 0x02, 0x20, 0x38, 0x1D, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x10, 0xC0, 0x0C, 0x02, 0x20, 0x38, 0x1D, 0x02 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x34, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0x20, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5, 0x0A, 0xF5, 0xFF, 0xEB + .byte 0xC8, 0x01, 0x00, 0xEB, 0x39, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0x38, 0x1D, 0x02, 0x20, 0x38, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9 + .byte 0xD0, 0xF3, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x99, 0xF9, 0xFF, 0xEB, 0x20, 0x10, 0x9F, 0xE5, 0x10, 0x20, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x81, 0xE5, 0x00, 0x40, 0x91, 0xE5, 0x99, 0xF9, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3 + .byte 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0xF2, 0xFF, 0x04, 0x10, 0x40, 0x2D, 0xE9, 0x8C, 0xF9, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x40, 0x91, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x8C, 0xF9, 0xFF, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x20, 0x94, 0xE5 + .byte 0x00, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x18, 0x10, 0x9F, 0x05, 0x00, 0x20, 0xA0, 0x03 + .byte 0x00, 0x20, 0x81, 0x05, 0x82, 0xF9, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x38, 0x38, 0x1D, 0x02, 0x48, 0x38, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x07, 0x50, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0xE4, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xF9, 0xFF, 0xFF, 0xBA, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x70, 0x40, 0x2D, 0xE9, 0x5C, 0x10, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE3, 0x12, 0x04, 0x00, 0xEB + .byte 0xC5, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x07, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0xA0, 0xE3, 0x01, 0x04, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x64, 0x60, 0xA0, 0xE3, 0x07, 0x50, 0xA0, 0xE3 + .byte 0x01, 0x40, 0xA0, 0xE3, 0x06, 0x00, 0xA0, 0xE1, 0x74, 0xF9, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x04, 0x10, 0xA0, 0xE1, 0xF6, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF8, 0xFF, 0xFF, 0x0A + .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xCC, 0xED, 0x0C, 0x02, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x50, 0xA0, 0xE1, 0x4C, 0xF9, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x05, 0x00, 0xA0, 0xE1, 0xB1, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x4C, 0xF9, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x15, 0x00, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x03, 0x00, 0x00, 0xEB, 0x01, 0x1C, 0x64, 0xE2 + .byte 0x00, 0x00, 0x41, 0xE0, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x3A, 0xF9, 0xFF, 0xEB, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x91, 0xE5, 0x01, 0x40, 0x84, 0xE2 + .byte 0x00, 0x00, 0x51, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x35, 0xF9, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0x38, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x2A, 0xF9, 0xFF, 0xEB, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x91, 0xE5, 0x01, 0x40, 0x84, 0xE2 + .byte 0x00, 0x00, 0x51, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x25, 0xF9, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x38, 0x38, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x19, 0xF9, 0xFF, 0xEB, 0x3C, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x01, 0x00, 0x54, 0xE1, 0x04, 0x00, 0x00, 0x9A, 0x01, 0x10, 0x44, 0xE0, 0x02, 0x01, 0x51, 0xE3 + .byte 0x00, 0x40, 0xA0, 0x33, 0x01, 0x40, 0xA0, 0x23, 0x03, 0x00, 0x00, 0xEA, 0x04, 0x10, 0x41, 0xE0 + .byte 0x02, 0x01, 0x51, 0xE3, 0x01, 0x40, 0xA0, 0x33, 0x00, 0x40, 0xA0, 0x23, 0x10, 0xF9, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x3C, 0x38, 0x1D, 0x02 + .byte 0x10, 0x40, 0x2D, 0xE9, 0x05, 0xF9, 0xFF, 0xEB, 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x1C, 0x10, 0x9F, 0x05, 0x00, 0x40, 0x91, 0x05, 0x18, 0x10, 0x9F, 0x15 + .byte 0x00, 0x40, 0x91, 0x15, 0x02, 0xF9, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0x38, 0x1D, 0x02, 0x3C, 0x38, 0x1D, 0x02, 0x58, 0x38, 0x1D, 0x02 + .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xD6, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0xC1, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x05, 0x00, 0xA0, 0xE1, 0xCB, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x6A, 0xFF, 0xFF, 0xEB + .byte 0x05, 0x00, 0xA0, 0xE1, 0xC4, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12 + .byte 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1 + .byte 0xAF, 0x00, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0xBB, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xF9, 0xFF, 0xFF, 0x0A, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xF0, 0x43, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xCF, 0xF8, 0xFF, 0xEB + .byte 0x8C, 0x11, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3 + .byte 0x04, 0x00, 0x00, 0x1A, 0xCE, 0xF8, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x68, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x08, 0x00, 0x51, 0xE3, 0x0C, 0x00, 0x00, 0xBA, 0x01, 0x10, 0x15, 0xE2, 0x04, 0x00, 0x00, 0x1A + .byte 0xC3, 0xF8, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x43, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x8D, 0x00, 0x00, 0xEB, 0x34, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0xAA, 0x28, 0x01, 0x9F, 0xE5 + .byte 0x06, 0x1B, 0xA0, 0xE3, 0x44, 0xF4, 0xFF, 0xEB, 0x14, 0x11, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x91, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x20, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x1E, 0x00, 0x00, 0xAA, 0x01, 0x00, 0x15, 0xE2, 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 + .byte 0xAB, 0xF8, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x43, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xD8, 0x10, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x11, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0xAA + .byte 0xBC, 0x60, 0x9F, 0xE5, 0x64, 0x90, 0xA0, 0xE3, 0x07, 0x80, 0xA0, 0xE3, 0x00, 0x70, 0xA0, 0xE3 + .byte 0x04, 0x00, 0xA0, 0xE1, 0x9A, 0xF8, 0xFF, 0xEB, 0x09, 0x00, 0xA0, 0xE1, 0xAF, 0xF8, 0xFF, 0xEB + .byte 0x92, 0xF8, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0x96, 0xE5 + .byte 0x07, 0x20, 0xA0, 0xE1, 0x01, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF3, 0xFF, 0xFF, 0xBA + .byte 0x02, 0x00, 0x15, 0xE2, 0x00, 0x00, 0x00, 0x0A, 0x0F, 0xFF, 0xFF, 0xEB, 0x7C, 0x00, 0x9F, 0xE5 + .byte 0x6C, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x00, 0x50, 0x91, 0xE5, 0x01, 0x10, 0x83, 0xE2 + .byte 0x6C, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x03, 0x51, 0x82, 0xE7, 0x08, 0x00, 0x51, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xC3, 0x4C, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0x80, 0xC5, 0x54, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x92, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x01, 0xC0, 0x83, 0xE2, 0x01, 0x60, 0x80, 0xE2 + .byte 0x2C, 0x50, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0x3C, 0x30, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x00, 0xE0, 0x85, 0xE5, 0x00, 0xE0, 0x83, 0xE5, 0x00, 0xC0, 0x82, 0xE5, 0x00, 0x60, 0x81, 0xE5 + .byte 0x73, 0xF8, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0x38, 0x1D, 0x02, 0x54, 0x38, 0x1D, 0x02, 0x00, 0x3B, 0x1D, 0x02 + .byte 0x50, 0x38, 0x1D, 0x02, 0x5C, 0x38, 0x1D, 0x02, 0x58, 0x38, 0x1D, 0x02, 0x44, 0x38, 0x1D, 0x02 + .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x60, 0xF8, 0xFF, 0xEB, 0x2C, 0x20, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x24, 0x10, 0x9F, 0x05, 0x00, 0x40, 0x82, 0x05 + .byte 0x00, 0x40, 0x81, 0x05, 0x00, 0x40, 0x81, 0x15, 0x00, 0x40, 0x82, 0x15, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x84, 0xE5, 0x5A, 0xF8, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x44, 0x38, 0x1D, 0x02, 0x40, 0x38, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 + .byte 0xAD, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0xBA, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x10, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x00, 0x14, 0xE2, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0xFC, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x09, 0x00, 0x00, 0xDA + .byte 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0x11, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xFB, 0xFF, 0xFF, 0x1A, 0xAA, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A + .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x5F, 0xFF, 0xFF, 0xEB + .byte 0xB9, 0xFE, 0xFF, 0xEB, 0x01, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0x00, 0x00, 0xEB + .byte 0x9F, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x27, 0xF8, 0xFF, 0xEB + .byte 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x00, 0x14, 0xE2, 0x10, 0x00, 0x00, 0x0A, 0xE3, 0x00, 0x00, 0xEB + .byte 0xF8, 0x40, 0x9F, 0xE5, 0x00, 0x10, 0x94, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0x15, 0x00, 0x00, 0x1A + .byte 0x64, 0x60, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x21, 0xF8, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x36, 0xF8, 0xFF, 0xEB, 0x19, 0xF8, 0xFF, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0xD7, 0x00, 0x00, 0xEB + .byte 0x00, 0x10, 0x94, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0xF5, 0xFF, 0xFF, 0x0A, 0x09, 0x00, 0x00, 0xEA + .byte 0xD2, 0x00, 0x00, 0xEB, 0xB4, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE1 + .byte 0x04, 0x00, 0x00, 0x1A, 0x05, 0x00, 0xA0, 0xE1, 0x11, 0xF8, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x94, 0x00, 0x9F, 0xE5, 0x94, 0x20, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x90, 0xE5, 0x01, 0x10, 0x83, 0xE2, 0x03, 0x41, 0x92, 0xE7, 0x00, 0x10, 0x80, 0xE5 + .byte 0x08, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0xC3, 0x00, 0x10, 0x80, 0xC5, 0x00, 0x00, 0x94, 0xE5 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x91, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x58, 0x00, 0x9F, 0xE5 + .byte 0x58, 0x30, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x40, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x40, 0x80, 0x15, 0x48, 0x00, 0x9F, 0x05, 0x00, 0xE0, 0x93, 0xE5, 0x00, 0x40, 0x80, 0x05 + .byte 0x34, 0xC0, 0x9F, 0xE5, 0x01, 0x60, 0x4E, 0xE2, 0x00, 0x00, 0x92, 0xE5, 0x00, 0x10, 0x8C, 0xE5 + .byte 0x01, 0xE0, 0x80, 0xE2, 0x05, 0x00, 0xA0, 0xE1, 0x00, 0x60, 0x83, 0xE5, 0x00, 0xE0, 0x82, 0xE5 + .byte 0xEB, 0xF7, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x3C, 0x38, 0x1D, 0x02, 0x4C, 0x38, 0x1D, 0x02, 0x5C, 0x38, 0x1D, 0x02, 0x48, 0x38, 0x1D, 0x02 + .byte 0x54, 0x38, 0x1D, 0x02, 0x38, 0x38, 0x1D, 0x02, 0xF0, 0x4F, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x6E, 0xFE, 0xFF, 0xEB, 0xCC, 0x30, 0x9F, 0xE5, 0xCC, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3 + .byte 0x00, 0x30, 0x80, 0xE5, 0x03, 0x10, 0xA0, 0xE1, 0x18, 0x00, 0xA0, 0xE3, 0x01, 0x40, 0x84, 0xE2 + .byte 0x94, 0x10, 0x22, 0xE0, 0xFF, 0x00, 0x54, 0xE3, 0x18, 0x20, 0x83, 0xE4, 0xFA, 0xFF, 0xFF, 0xBA + .byte 0xA8, 0x70, 0x9F, 0xE5, 0x00, 0xA0, 0xA0, 0xE3, 0xA4, 0x50, 0x9F, 0xE5, 0xA4, 0x40, 0x9F, 0xE5 + .byte 0xA4, 0xE0, 0x9F, 0xE5, 0xA4, 0xC0, 0x9F, 0xE5, 0xA4, 0x30, 0x9F, 0xE5, 0xA4, 0x10, 0x9F, 0xE5 + .byte 0xA4, 0x90, 0x9F, 0xE5, 0xA4, 0x60, 0x9F, 0xE5, 0xA4, 0x20, 0x9F, 0xE5, 0x01, 0x80, 0xA0, 0xE3 + .byte 0xA0, 0x00, 0x9F, 0xE5, 0xA0, 0xB0, 0x9F, 0xE5, 0x00, 0x90, 0x86, 0xE5, 0xE8, 0xA7, 0x87, 0xE5 + .byte 0x00, 0xA0, 0x85, 0xE5, 0x00, 0xA0, 0x84, 0xE5, 0x00, 0xA0, 0x8E, 0xE5, 0x00, 0xA0, 0x8C, 0xE5 + .byte 0x00, 0xA0, 0x83, 0xE5, 0x00, 0x80, 0x82, 0xE5, 0x00, 0xA0, 0x81, 0xE5, 0x00, 0x00, 0x8B, 0xE5 + .byte 0x56, 0x00, 0x00, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0x62, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x4F, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x1D, 0x20, 0xA0, 0xE3 + .byte 0x0B, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0x80, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x08, 0x10, 0x80, 0xE5 + .byte 0x46, 0xFF, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0xD4, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x3B, 0x1D, 0x02, 0x38, 0x38, 0x1D, 0x02 + .byte 0x00, 0x4B, 0x1D, 0x02, 0x40, 0x38, 0x1D, 0x02, 0x44, 0x38, 0x1D, 0x02, 0x54, 0x38, 0x1D, 0x02 + .byte 0x4C, 0x38, 0x1D, 0x02, 0x50, 0x38, 0x1D, 0x02, 0x3C, 0x38, 0x1D, 0x02, 0xE8, 0x52, 0x1D, 0x02 + .byte 0x48, 0x38, 0x1D, 0x02, 0x58, 0x38, 0x1D, 0x02, 0x80, 0x38, 0x1D, 0x02, 0x60, 0x53, 0x1D, 0x02 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x4C, 0x30, 0x9F, 0xE5, 0xFF, 0x20, 0x00, 0xE2 + .byte 0x0C, 0x10, 0xA0, 0xE3, 0x92, 0x31, 0x23, 0xE0, 0x40, 0x14, 0xA0, 0xE1, 0x08, 0x00, 0xD3, 0xE5 + .byte 0xFF, 0x10, 0x01, 0xE2, 0x00, 0x00, 0x51, 0xE1, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x10, 0x93, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x02 + .byte 0x00, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x00, 0x93, 0xE5, 0x31, 0xFF, 0x2F, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x53, 0x1D, 0x02 + .byte 0x0C, 0x30, 0xA0, 0xE3, 0x90, 0x03, 0x03, 0xE0, 0x1C, 0x00, 0x9F, 0xE5, 0x03, 0x10, 0x80, 0xE7 + .byte 0x03, 0x10, 0x80, 0xE0, 0x04, 0x20, 0x81, 0xE5, 0x08, 0x00, 0xD1, 0xE5, 0x01, 0x00, 0x80, 0xE2 + .byte 0x08, 0x00, 0xC1, 0xE5, 0x08, 0x00, 0xD1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x53, 0x1D, 0x02 + .byte 0x14, 0x20, 0x9F, 0xE5, 0x0C, 0x10, 0xA0, 0xE3, 0x90, 0x21, 0x21, 0xE0, 0x08, 0x00, 0xD1, 0xE5 + .byte 0x01, 0x00, 0x80, 0xE2, 0x08, 0x00, 0xC1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x53, 0x1D, 0x02 + .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x02, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x81, 0xE5 + .byte 0x04, 0x00, 0x81, 0xE5, 0x01, 0x20, 0x82, 0xE2, 0x08, 0x00, 0xC1, 0xE5, 0x08, 0x00, 0x52, 0xE3 + .byte 0x0C, 0x10, 0x81, 0xE2, 0xF8, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x53, 0x1D, 0x02 + .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x40, 0x80, 0xE5, 0xB8, 0x40, 0xC0, 0xE1 + .byte 0xBA, 0x40, 0xC0, 0xE1, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x40, 0x80, 0xE5, 0x04, 0x30, 0xA0, 0xE1 + .byte 0x00, 0x20, 0xE0, 0xE3, 0x03, 0xE0, 0xA0, 0xE1, 0x40, 0x30, 0x8C, 0xE5, 0x8E, 0x10, 0x8C, 0xE0 + .byte 0x01, 0xE0, 0x8E, 0xE2, 0xB0, 0x22, 0xC1, 0xE1, 0x10, 0x00, 0x5E, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA + .byte 0x01, 0x40, 0x84, 0xE2, 0x10, 0x00, 0x54, 0xE3, 0x24, 0xC0, 0x8C, 0xE2, 0xF4, 0xFF, 0xFF, 0xBA + .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0xE0, 0xE3, 0x83, 0x10, 0x80, 0xE0, 0x02, 0x1C, 0x81, 0xE2 + .byte 0x01, 0x30, 0x83, 0xE2, 0xB0, 0x26, 0xC1, 0xE1, 0x10, 0x00, 0x53, 0xE3, 0xF9, 0xFF, 0xFF, 0xBA + .byte 0x0A, 0x1D, 0xA0, 0xE3, 0xD4, 0xF2, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x20, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0xBE, 0xF2, 0xFF, 0xEB, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x60, 0x53, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x24, 0x10, 0xA0, 0xE3, 0x90, 0x01, 0x04, 0xE0 + .byte 0x28, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x40, 0x00, 0x80, 0xE2 + .byte 0x04, 0x00, 0x80, 0xE0, 0xAE, 0xF2, 0xFF, 0xEB, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x00, 0x80, 0xE0, 0x40, 0x00, 0x90, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x60, 0x53, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x24, 0x00, 0x9F, 0xE5 + .byte 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0xA0, 0xF2, 0xFF, 0xEB + .byte 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xB8, 0x00, 0xD0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x60, 0x53, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x24, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x00, 0x80, 0xE2, 0x92, 0xF2, 0xFF, 0xEB, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x00, 0x90, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x60, 0x53, 0x1D, 0x02, 0x60, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0xA0, 0xB1 + .byte 0x01, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xC3, 0x4C, 0x10, 0x9F, 0xE5 + .byte 0x4C, 0x20, 0x9F, 0xE5, 0x01, 0x30, 0x80, 0xE0, 0xEF, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x03, 0x20, 0xD2, 0xE7, 0x03, 0x00, 0xA0, 0xB3, 0x07, 0x00, 0x00, 0xBA, 0x77, 0x10, 0xE0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE1, 0x02, 0x00, 0xA0, 0xB3, 0x03, 0x00, 0x00, 0xBA, 0x3B, 0x10, 0xE0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0xA0, 0xA3, 0x00, 0x04, 0x82, 0xE1 + .byte 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x2D, 0xFD, 0xFF, 0xFF + .byte 0xD3, 0x02, 0x00, 0x00, 0xAC, 0x3C, 0x10, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1, 0x2B, 0xFD, 0xFF, 0xEB, 0x04, 0x01, 0x85, 0xE0 + .byte 0x3C, 0x40, 0x90, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x02, 0x04, 0x54, 0xE3 + .byte 0x04, 0x40, 0x85, 0x30, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x40, 0xA0, 0xE3, 0x1D, 0xFD, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 + .byte 0x19, 0xFD, 0xFF, 0xEB, 0x3C, 0x00, 0x86, 0xE2, 0x05, 0x21, 0x86, 0xE0, 0x05, 0x01, 0x80, 0xE0 + .byte 0x04, 0x10, 0xA0, 0xE3, 0x3C, 0x40, 0x82, 0xE5, 0x58, 0xF2, 0xFF, 0xEB, 0x0D, 0xFD, 0xFF, 0xEB + .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x38, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0x92, 0xE5, 0x38, 0x30, 0x90, 0xE5 + .byte 0x03, 0x00, 0x54, 0xE1, 0x6B, 0x00, 0x00, 0x2A, 0x00, 0xC0, 0xA0, 0xE3, 0x04, 0x31, 0x80, 0xE0 + .byte 0x3C, 0x40, 0x93, 0xE5, 0x00, 0x40, 0xC1, 0xE5, 0x00, 0x30, 0xD1, 0xE5, 0x10, 0x00, 0x53, 0xE3 + .byte 0x0A, 0x00, 0x00, 0xCA, 0x10, 0x00, 0x53, 0xE3, 0x1E, 0x00, 0x00, 0xAA, 0x05, 0x00, 0x53, 0xE3 + .byte 0x03, 0xF1, 0x8F, 0x90, 0x57, 0x00, 0x00, 0xEA, 0x56, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA + .byte 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA + .byte 0x11, 0x00, 0x53, 0xE3, 0x32, 0x00, 0x00, 0x0A, 0x4E, 0x00, 0x00, 0xEA, 0x24, 0x34, 0xA0, 0xE1 + .byte 0x24, 0x54, 0x80, 0xE0, 0xB3, 0x40, 0x90, 0xE1, 0xB2, 0x30, 0xD5, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x01, 0x00, 0xA0, 0xE3, 0xB2, 0x40, 0xC1, 0xE1, 0xB4, 0x30, 0xC1, 0xE1, 0xB4, 0x40, 0xD5, 0xE1 + .byte 0xB6, 0x30, 0xD5, 0xE1, 0xB6, 0x40, 0xC1, 0xE1, 0xB8, 0x30, 0xC1, 0xE1, 0xB8, 0x30, 0xD5, 0xE1 + .byte 0xBA, 0x30, 0xC1, 0xE1, 0x00, 0x10, 0x92, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x00, 0x10, 0x82, 0xE5 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x54, 0x80, 0xE0, 0x14, 0x00, 0x00, 0xEA + .byte 0x0C, 0x00, 0xA0, 0xE3, 0x9E, 0x50, 0x2C, 0xE0, 0xB2, 0x40, 0xDC, 0xE1, 0xB4, 0x30, 0xDC, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0xB0, 0x40, 0xC1, 0xE1, 0xB2, 0x30, 0xC1, 0xE1 + .byte 0xB6, 0x40, 0xDC, 0xE1, 0xB8, 0x30, 0xDC, 0xE1, 0xB4, 0x40, 0xC1, 0xE1, 0xB6, 0x30, 0xC1, 0xE1 + .byte 0xBA, 0x40, 0xDC, 0xE1, 0xBC, 0x30, 0xDC, 0xE1, 0xB8, 0x40, 0xC1, 0xE1, 0xBA, 0x30, 0xC1, 0xE1 + .byte 0x04, 0x10, 0x92, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x04, 0x10, 0x82, 0xE5, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x40, 0xD5, 0xE5, 0x00, 0x30, 0xD5, 0xE5, 0x04, 0xE0, 0x92, 0xE5 + .byte 0x03, 0x30, 0x44, 0xE0, 0x01, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x5E, 0xE1, 0xE3, 0xFF, 0xFF, 0x3A + .byte 0x1C, 0x00, 0x00, 0xEA, 0x24, 0x44, 0x80, 0xE0, 0x17, 0x00, 0x00, 0xEA, 0x03, 0xE0, 0xD4, 0xE7 + .byte 0x00, 0x00, 0x5E, 0xE3, 0x17, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0xA0, 0xE3, 0x93, 0x40, 0x2E, 0xE0 + .byte 0xB8, 0xC0, 0xDE, 0xE1, 0xBA, 0x30, 0xDE, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xB0, 0xC0, 0xC1, 0xE1, 0xB2, 0x30, 0xC1, 0xE1, 0xBC, 0xC0, 0xDE, 0xE1, 0xBE, 0x30, 0xDE, 0xE1 + .byte 0xB4, 0xC0, 0xC1, 0xE1, 0xB6, 0x30, 0xC1, 0xE1, 0xB0, 0xC1, 0xDE, 0xE1, 0xB2, 0x31, 0xDE, 0xE1 + .byte 0xB8, 0xC0, 0xC1, 0xE1, 0xBA, 0x30, 0xC1, 0xE1, 0x04, 0x10, 0x92, 0xE5, 0x01, 0x10, 0x81, 0xE2 + .byte 0x04, 0x10, 0x82, 0xE5, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x30, 0x92, 0xE5 + .byte 0x08, 0x00, 0x53, 0xE3, 0xE4, 0xFF, 0xFF, 0x3A, 0x00, 0x30, 0x92, 0xE5, 0x01, 0x30, 0x83, 0xE2 + .byte 0x00, 0x30, 0x82, 0xE5, 0x04, 0xC0, 0x82, 0xE5, 0x00, 0x40, 0x92, 0xE5, 0x38, 0x30, 0x90, 0xE5 + .byte 0x03, 0x00, 0x54, 0xE1, 0x94, 0xFF, 0xFF, 0x3A, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0xD0, 0x4D, 0xE2, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x8D, 0xE5, 0x04, 0x10, 0x8D, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x04, 0x10, 0x80, 0xE5 + .byte 0x08, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x8D, 0xFC, 0xFF, 0xEB, 0x18, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x09, 0x00, 0x00, 0x0A + .byte 0x00, 0x50, 0xA0, 0xE3, 0x08, 0x40, 0xA0, 0xE3, 0x04, 0x60, 0x90, 0xE5, 0x04, 0x10, 0xA0, 0xE1 + .byte 0x00, 0x50, 0x80, 0xE5, 0x04, 0x50, 0x80, 0xE5, 0xC8, 0xF1, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x56, 0xE3, 0xF7, 0xFF, 0xFF, 0x1A, 0x7A, 0xFC, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x70, 0xA0, 0xE1, 0x7A, 0xFC, 0xFF, 0xEB + .byte 0x18, 0x50, 0x87, 0xE2, 0x00, 0x60, 0xA0, 0xE3, 0x08, 0x80, 0xA0, 0xE3, 0x3C, 0x40, 0xA0, 0xE3 + .byte 0x86, 0x11, 0x87, 0xE0, 0x18, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x15, 0x00, 0x00, 0x0A + .byte 0x18, 0x30, 0x90, 0xE5, 0x03, 0x00, 0x55, 0xE1, 0x04, 0x00, 0x00, 0x1A, 0x1C, 0x20, 0x91, 0xE5 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x18, 0x20, 0x80, 0xE5, 0xB0, 0xF1, 0xFF, 0xEB, 0x0D, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0x53, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x93, 0xE5, 0x00, 0x00, 0x55, 0xE1 + .byte 0x02, 0x00, 0x00, 0x0A, 0x00, 0x30, 0xA0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A + .byte 0x86, 0x01, 0x87, 0xE0, 0x1C, 0x20, 0x90, 0xE5, 0x03, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x20, 0x83, 0xE5, 0xA1, 0xF1, 0xFF, 0xEB, 0x01, 0x60, 0x86, 0xE2, 0x04, 0x00, 0x56, 0xE3 + .byte 0x08, 0x50, 0x85, 0xE2, 0xE1, 0xFF, 0xFF, 0xBA, 0x52, 0xFC, 0xFF, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1 + .byte 0x02, 0x40, 0xA0, 0xE1, 0x50, 0xFC, 0xFF, 0xEB, 0x85, 0x31, 0x86, 0xE0, 0x18, 0x20, 0x93, 0xE5 + .byte 0x85, 0xC1, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x1C, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x54, 0xE1 + .byte 0x02, 0x00, 0x00, 0x1A, 0x43, 0xFC, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x18, 0x10, 0x86, 0xE2, 0x18, 0x00, 0x92, 0xE5, 0x0C, 0xC0, 0x81, 0xE0, 0x00, 0x00, 0x5C, 0xE1 + .byte 0x05, 0x00, 0x00, 0x1A, 0x1C, 0x00, 0x93, 0xE5, 0x3C, 0x10, 0xA0, 0xE3, 0x18, 0x00, 0x82, 0xE5 + .byte 0x18, 0x00, 0x93, 0xE5, 0x81, 0xF1, 0xFF, 0xEB, 0x0C, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x50, 0xE3 + .byte 0x05, 0x00, 0x00, 0x0A, 0x04, 0x10, 0x90, 0xE5, 0x01, 0x00, 0x5C, 0xE1, 0x02, 0x00, 0x00, 0x0A + .byte 0x01, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x85, 0x11, 0x86, 0xE0 + .byte 0x1C, 0x20, 0x91, 0xE5, 0x08, 0x10, 0xA0, 0xE3, 0x04, 0x20, 0x80, 0xE5, 0x73, 0xF1, 0xFF, 0xEB + .byte 0x18, 0x00, 0x86, 0xE2, 0x18, 0x10, 0x94, 0xE5, 0x85, 0x01, 0x80, 0xE0, 0x18, 0x00, 0x84, 0xE5 + .byte 0x85, 0x01, 0x86, 0xE0, 0x1C, 0x10, 0x80, 0xE5, 0x18, 0x40, 0x80, 0xE5, 0x21, 0xFC, 0xFF, 0xEB + .byte 0x06, 0x00, 0xA0, 0xE1, 0x3C, 0x10, 0xA0, 0xE3, 0x68, 0xF1, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x3C, 0x10, 0xA0, 0xE3, 0x65, 0xF1, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xFE, 0x0C, 0x02, 0xF0, 0x47, 0x2D, 0xE9 + .byte 0x08, 0xD0, 0x4D, 0xE2, 0x08, 0xA1, 0x9F, 0xE5, 0x08, 0x51, 0x9F, 0xE5, 0x08, 0x41, 0x9F, 0xE5 + .byte 0x41, 0x76, 0xA0, 0xE3, 0x00, 0x60, 0xA0, 0xE3, 0x03, 0x80, 0xE0, 0xE3, 0x02, 0x90, 0xE0, 0xE3 + .byte 0xB0, 0x00, 0xDA, 0xE1, 0x01, 0x09, 0x10, 0xE2, 0xB0, 0x00, 0xDA, 0x11, 0x09, 0x10, 0xA0, 0x11 + .byte 0x03, 0x09, 0x80, 0x13, 0xB0, 0x00, 0xCA, 0x11, 0x0A, 0x00, 0x00, 0x1A, 0xC3, 0xF5, 0xFF, 0xEB + .byte 0xB0, 0x10, 0xDA, 0xE1, 0x01, 0x1C, 0x11, 0xE2, 0x02, 0x00, 0x00, 0x0A, 0xC4, 0xF5, 0xFF, 0xEB + .byte 0x08, 0x10, 0xA0, 0xE1, 0x03, 0x00, 0x00, 0xEA, 0x00, 0x10, 0x97, 0xE5, 0x00, 0x10, 0x8D, 0xE5 + .byte 0xBF, 0xF5, 0xFF, 0xEB, 0x06, 0x10, 0xA0, 0xE1, 0x08, 0x00, 0x51, 0xE1, 0x08, 0xD0, 0x8D, 0x02 + .byte 0xF0, 0x47, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x02, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + .byte 0xE6, 0xFF, 0xFF, 0x0A, 0x00, 0x10, 0x9D, 0xE5, 0x81, 0x0D, 0xA0, 0xE1, 0xA0, 0x0D, 0xB0, 0xE1 + .byte 0xE2, 0xFF, 0xFF, 0x0A, 0x00, 0x31, 0x95, 0xE7, 0x00, 0x00, 0x53, 0xE3, 0x04, 0x00, 0x00, 0x0A + .byte 0x01, 0x2D, 0xA0, 0xE1, 0x21, 0x13, 0xA0, 0xE1, 0xA2, 0x2F, 0xA0, 0xE1, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0xDA, 0xFF, 0xFF, 0xEA, 0x01, 0x0D, 0xA0, 0xE1, 0xA0, 0x0F, 0xB0, 0xE1, 0xD7, 0xFF, 0xFF, 0x1A + .byte 0x20, 0x00, 0x81, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0xB0, 0x00, 0xDA, 0xE1, 0x01, 0x09, 0x10, 0xE2 + .byte 0xB0, 0x00, 0xDA, 0x11, 0x03, 0x09, 0x80, 0x13, 0xB0, 0x00, 0xCA, 0x11, 0xCF, 0xFF, 0xFF, 0x1A + .byte 0x9A, 0xF5, 0xFF, 0xEB, 0xB0, 0x10, 0xDA, 0xE1, 0x02, 0x10, 0x11, 0xE2, 0x01, 0x00, 0x00, 0x0A + .byte 0x9B, 0xF5, 0xFF, 0xEB, 0xC9, 0xFF, 0xFF, 0xEA, 0x00, 0x10, 0x9D, 0xE5, 0x00, 0x10, 0x84, 0xE5 + .byte 0x97, 0xF5, 0xFF, 0xEB, 0xC5, 0xFF, 0xFF, 0xEA, 0x08, 0xD0, 0x8D, 0xE2, 0xF0, 0x47, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x01, 0x00, 0x04, 0x68, 0x53, 0x1D, 0x02, 0x88, 0x01, 0x00, 0x04 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x30, 0x9D, 0xE5, 0x1F, 0x00, 0x00, 0xE2 + .byte 0x1F, 0x30, 0xC3, 0xE3, 0x00, 0xC0, 0x83, 0xE1, 0x20, 0x30, 0xCC, 0xE3, 0x01, 0x00, 0x02, 0xE2 + .byte 0x80, 0x32, 0x83, 0xE1, 0x00, 0xC0, 0x8D, 0xE5, 0x3F, 0x20, 0x03, 0xE2, 0x3F, 0x03, 0xC1, 0xE3 + .byte 0x00, 0x03, 0x82, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x6C, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0x8D, 0xE5 + .byte 0xB0, 0x00, 0xD2, 0xE1, 0x01, 0x09, 0x10, 0xE2, 0xB0, 0x10, 0xD2, 0x11, 0x04, 0xD0, 0x8D, 0x12 + .byte 0x00, 0x00, 0xE0, 0x13, 0x03, 0x19, 0x81, 0x13, 0xB0, 0x10, 0xC2, 0x11, 0x00, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x71, 0xF5, 0xFF, 0xEB, 0x3C, 0x10, 0x9F, 0xE5, 0xB0, 0x10, 0xD1, 0xE1 + .byte 0x02, 0x10, 0x11, 0xE2, 0x04, 0x00, 0x00, 0x0A, 0x71, 0xF5, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x20, 0x9D, 0xE5 + .byte 0x18, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x81, 0xE5, 0x69, 0xF5, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x01, 0x00, 0x04 + .byte 0x88, 0x01, 0x00, 0x04, 0x1C, 0x20, 0x9F, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x01, 0x11, 0x82, 0xE0 + .byte 0x13, 0x20, 0xA0, 0xE1, 0x88, 0x03, 0x91, 0xE5, 0x00, 0x00, 0x12, 0xE0, 0x00, 0x30, 0xA0, 0x03 + .byte 0x03, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xFC, 0x7F, 0x02, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x4F, 0xF5, 0xFF, 0xEB + .byte 0x48, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE3, 0x04, 0x51, 0x81, 0xE7, 0x05, 0x00, 0x00, 0x0A + .byte 0x3C, 0x30, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x88, 0x23, 0x93, 0xE5, 0x11, 0x14, 0x82, 0xE1 + .byte 0x88, 0x13, 0x83, 0xE5, 0x05, 0x00, 0x00, 0xEA, 0x24, 0x30, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3 + .byte 0x11, 0x14, 0xE0, 0xE1, 0x88, 0x23, 0x93, 0xE5, 0x01, 0x10, 0x02, 0xE0, 0x88, 0x13, 0x83, 0xE5 + .byte 0x43, 0xF5, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x68, 0x53, 0x1D, 0x02, 0x00, 0xFC, 0x7F, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x36, 0xF5, 0xFF, 0xEB, 0xDC, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0xB0, 0x00, 0xD1, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x2E, 0x00, 0x00, 0x1A, 0x01, 0x20, 0xA0, 0xE3, 0xC8, 0x00, 0x9F, 0xE5 + .byte 0xB0, 0x20, 0xC1, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0x88, 0x23, 0x80, 0xE5, 0xBC, 0x00, 0x9F, 0xE5 + .byte 0x02, 0x10, 0xA0, 0xE1, 0x02, 0x11, 0x80, 0xE7, 0x01, 0x20, 0x82, 0xE2, 0x20, 0x00, 0x52, 0xE3 + .byte 0xFB, 0xFF, 0xFF, 0xBA, 0xA8, 0x20, 0x9F, 0xE5, 0xA8, 0x10, 0x9F, 0xE5, 0x01, 0x07, 0xA0, 0xE3 + .byte 0xB0, 0x20, 0xC1, 0xE1, 0xD5, 0xE7, 0xFF, 0xEB, 0x9C, 0x10, 0x9F, 0xE5, 0x01, 0x07, 0xA0, 0xE3 + .byte 0x55, 0xE8, 0xFF, 0xEB, 0x01, 0x07, 0xA0, 0xE3, 0xEF, 0xE7, 0xFF, 0xEB, 0x00, 0xC0, 0xA0, 0xE3 + .byte 0x88, 0x30, 0x9F, 0xE5, 0x0C, 0x10, 0xA0, 0xE1, 0xFA, 0x2F, 0xA0, 0xE3, 0xB0, 0x00, 0xD3, 0xE1 + .byte 0x0F, 0xE0, 0x10, 0xE2, 0x0E, 0x04, 0xA0, 0xE1, 0xB0, 0x00, 0xC3, 0xE1, 0x01, 0x00, 0x00, 0x1A + .byte 0x04, 0x00, 0x5C, 0xE3, 0x0E, 0x00, 0x00, 0xCA, 0xB0, 0x00, 0xD3, 0xE1, 0x02, 0x50, 0xA0, 0xE1 + .byte 0x0F, 0x00, 0x00, 0xE2, 0x0E, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x55, 0xE3 + .byte 0x01, 0xC0, 0xA0, 0xD1, 0x04, 0x00, 0x00, 0xDA, 0xB0, 0x00, 0xD3, 0xE1, 0x01, 0x50, 0x45, 0xE2 + .byte 0x0F, 0x00, 0x00, 0xE2, 0x0E, 0x00, 0x50, 0xE1, 0xF7, 0xFF, 0xFF, 0x0A, 0x01, 0xC0, 0x8C, 0xE2 + .byte 0xE9, 0xFF, 0xFF, 0xEA, 0x04, 0x00, 0xA0, 0xE1, 0x05, 0xF5, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x64, 0x53, 0x1D, 0x02, 0x00, 0xFC, 0x7F, 0x02 + .byte 0x68, 0x53, 0x1D, 0x02, 0x08, 0xC4, 0x00, 0x00, 0x84, 0x01, 0x00, 0x04, 0xBC, 0xFB, 0x0C, 0x02 + .byte 0x80, 0x01, 0x00, 0x04, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x80, 0xA0, 0xE1, 0x0C, 0x00, 0x98, 0xE5 + .byte 0x01, 0x70, 0xA0, 0xE1, 0x01, 0x10, 0xA0, 0xE3, 0x08, 0x50, 0x98, 0xE5, 0x11, 0x47, 0xA0, 0xE1 + .byte 0x04, 0x00, 0x10, 0xE2, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3, 0x1C, 0x00, 0x95, 0x15 + .byte 0x02, 0x0C, 0x80, 0x13, 0x1C, 0x00, 0x85, 0x15, 0x1C, 0x00, 0x95, 0x05, 0x01, 0x0C, 0x80, 0x03 + .byte 0x1C, 0x00, 0x85, 0x05, 0x58, 0x00, 0x95, 0xE5, 0x04, 0x00, 0x10, 0xE0, 0x18, 0x00, 0x00, 0x0A + .byte 0x54, 0x20, 0x95, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1, 0x32, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x60, 0xA0, 0xE1, 0x08, 0x00, 0x56, 0xE3, 0x06, 0xF1, 0x8F, 0x90, 0x11, 0x00, 0x00, 0xEA + .byte 0x07, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x0D, 0x00, 0x00, 0xEA + .byte 0x03, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA + .byte 0x01, 0x00, 0x00, 0xEA, 0x14, 0x60, 0x88, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0x58, 0x10, 0x95, 0xE5 + .byte 0x04, 0x00, 0xE0, 0xE1, 0x00, 0x00, 0x01, 0xE0, 0x58, 0x00, 0x85, 0xE5, 0x07, 0x60, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x00, 0xEA, 0x07, 0x60, 0xA0, 0xE3, 0x07, 0x00, 0x56, 0xE3, 0x04, 0x00, 0x00, 0x1A + .byte 0xB4, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x11, 0x91, 0xE7, 0x31, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x60, 0xA0, 0xE1, 0x06, 0x00, 0x56, 0xE3, 0x14, 0x00, 0x00, 0x1A, 0x0C, 0x00, 0x98, 0xE5 + .byte 0x04, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3 + .byte 0x1E, 0x00, 0x00, 0x0A, 0xB9, 0xF4, 0xFF, 0xEB, 0x1C, 0x10, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x02, 0x0C, 0x11, 0xE2, 0x05, 0x00, 0x00, 0x0A, 0x0C, 0x60, 0x85, 0xE2, 0x06, 0x00, 0xA0, 0xE1 + .byte 0xA7, 0xEC, 0xFF, 0xEB, 0x1C, 0x00, 0x95, 0xE5, 0x02, 0x0C, 0x10, 0xE2, 0xFA, 0xFF, 0xFF, 0x1A + .byte 0x04, 0x00, 0xA0, 0xE1, 0x14, 0x60, 0x98, 0xE5, 0xB1, 0xF4, 0xFF, 0xEB, 0x0F, 0x00, 0x00, 0xEA + .byte 0x0C, 0x00, 0x98, 0xE5, 0x04, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 + .byte 0x00, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x95, 0x15, 0x02, 0x0C, 0xC0, 0x13, 0x1C, 0x00, 0x85, 0x15 + .byte 0x14, 0x60, 0x88, 0x15, 0x05, 0x00, 0x00, 0x1A, 0x1C, 0x10, 0x95, 0xE5, 0x08, 0x00, 0xA0, 0xE1 + .byte 0x01, 0x2C, 0xC1, 0xE3, 0x06, 0x10, 0xA0, 0xE1, 0x1C, 0x20, 0x85, 0xE5, 0x03, 0x00, 0x00, 0xEB + .byte 0x06, 0x00, 0xA0, 0xE1, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0x3F, 0x10, 0x02 + .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x93, 0xF4, 0xFF, 0xEB + .byte 0x00, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x51, 0xE3 + .byte 0x04, 0x00, 0x81, 0x15, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x10, 0x80, 0x15, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x86, 0xE5, 0x00, 0x10, 0x96, 0xE5, 0x18, 0x00, 0x86, 0xE2, 0x04, 0x10, 0x86, 0xE5 + .byte 0x0C, 0x10, 0x96, 0xE5, 0x4F, 0x10, 0xC1, 0xE3, 0x0C, 0x10, 0x86, 0xE5, 0x14, 0x50, 0x86, 0xE5 + .byte 0x57, 0xEC, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x85, 0xF4, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x10, 0x90, 0xE5 + .byte 0x24, 0x10, 0x80, 0xE5, 0x30, 0x10, 0x90, 0xE5, 0x2C, 0x10, 0x80, 0xE5, 0x34, 0x10, 0x90, 0xE5 + .byte 0x28, 0x10, 0x80, 0xE5, 0x38, 0x10, 0x90, 0xE5, 0x20, 0x10, 0x80, 0xE5, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9, 0x14, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1 + .byte 0x08, 0x10, 0x95, 0xE5, 0x34, 0x40, 0x95, 0xE5, 0x30, 0x00, 0x91, 0xE5, 0x84, 0x21, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x52, 0xE1, 0x14, 0xD0, 0x8D, 0x22, 0x01, 0x00, 0xA0, 0x23, 0x30, 0x40, 0xBD, 0x28 + .byte 0x1E, 0xFF, 0x2F, 0x21, 0x08, 0x10, 0x8D, 0xE5, 0x2C, 0x10, 0x91, 0xE5, 0x08, 0x00, 0x8D, 0xE2 + .byte 0x02, 0x30, 0x81, 0xE0, 0x00, 0x10, 0x8D, 0xE2, 0x08, 0x20, 0xA0, 0xE3, 0x0C, 0x30, 0x8D, 0xE5 + .byte 0x26, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x14, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x10, 0x9D, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x30, 0x10, 0x85, 0xE5 + .byte 0x04, 0x20, 0x9D, 0xE5, 0x07, 0x10, 0xA0, 0xE3, 0x34, 0x20, 0x85, 0xE5, 0x38, 0x40, 0x85, 0xE5 + .byte 0x5B, 0xFF, 0xFF, 0xEB, 0x14, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xF0, 0x4F, 0x2D, 0xE9, 0xE4, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x10, 0x94, 0xE5 + .byte 0x98, 0x00, 0x8D, 0xE2, 0x30, 0xB0, 0x84, 0xE2, 0x00, 0x10, 0x8D, 0xE5, 0xA8, 0x06, 0x00, 0xEB + .byte 0x08, 0x00, 0x94, 0xE5, 0xA0, 0x00, 0x8D, 0xE5, 0x0C, 0x00, 0x94, 0xE5, 0x20, 0x00, 0x10, 0xE2 + .byte 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3, 0xB4, 0x52, 0xD4, 0x11 + .byte 0x01, 0x48, 0xA0, 0x13, 0x28, 0x00, 0x00, 0x1A, 0xB8, 0x00, 0xDB, 0xE1, 0x20, 0x40, 0x94, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0xBA, 0x50, 0xDB, 0x11, 0x23, 0x00, 0x00, 0x1A, 0x00, 0xA0, 0xA0, 0xE3 + .byte 0x0A, 0x90, 0xA0, 0xE1, 0x01, 0x58, 0xA0, 0xE3, 0x98, 0x80, 0x8D, 0xE2, 0x03, 0x60, 0xA0, 0xE3 + .byte 0x01, 0x70, 0xA0, 0xE3, 0x08, 0x00, 0xA0, 0xE1, 0x0A, 0x10, 0xA0, 0xE1, 0xEA, 0x01, 0x00, 0xEB + .byte 0x04, 0x20, 0x8D, 0xE2, 0x00, 0x00, 0x5A, 0xE3, 0x08, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1 + .byte 0xC4, 0x90, 0x9D, 0x05, 0xC8, 0x20, 0x8D, 0xE5, 0xCC, 0x70, 0x8D, 0xE5, 0x30, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x9D, 0xE5, 0x04, 0x00, 0x50, 0xE1, 0xBC, 0x5B, 0xDD, 0x01 + .byte 0x04, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x24, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xF3, 0xFF, 0xFF, 0x0A, 0x01, 0x08, 0x55, 0xE3, 0x02, 0x00, 0x00, 0x1A + .byte 0x01, 0xA0, 0x8A, 0xE2, 0x09, 0x00, 0x5A, 0xE1, 0xE1, 0xFF, 0xFF, 0x3A, 0x01, 0x08, 0x55, 0xE3 + .byte 0x00, 0x00, 0xA0, 0x03, 0xB8, 0x00, 0xCB, 0x01, 0xE4, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03 + .byte 0xF0, 0x4F, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xB8, 0x00, 0xDB, 0xE1, 0x00, 0x00, 0x50, 0xE3 + .byte 0x34, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0xFF, 0x00, 0x50, 0xE3, 0x01, 0x90, 0x81, 0x92, 0x02, 0x00, 0x00, 0x9A, 0xFF, 0x0C, 0x50, 0xE3 + .byte 0x02, 0x90, 0x81, 0x92, 0x03, 0x90, 0x81, 0x82, 0x01, 0x08, 0x54, 0xE3, 0x14, 0x00, 0x9D, 0x15 + .byte 0x02, 0x90, 0x89, 0xE2, 0x00, 0x90, 0x89, 0x10, 0x05, 0xA0, 0xA0, 0xE1, 0x00, 0x00, 0x55, 0xE3 + .byte 0x21, 0x00, 0x00, 0x0A, 0x98, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1, 0xB2, 0x01, 0x00, 0xEB + .byte 0x98, 0x80, 0x8D, 0xE2, 0x03, 0x60, 0xA0, 0xE3, 0x01, 0x70, 0xA0, 0xE3, 0xC4, 0x10, 0x9D, 0xE5 + .byte 0x08, 0x00, 0xA0, 0xE1, 0xAC, 0x01, 0x00, 0xEB, 0x04, 0x20, 0x8D, 0xE2, 0x08, 0x00, 0xA0, 0xE1 + .byte 0x06, 0x10, 0xA0, 0xE1, 0xC8, 0x20, 0x8D, 0xE5, 0xCC, 0x70, 0x8D, 0xE5, 0xF4, 0xFE, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x05, 0x00, 0x00, 0x0A, 0xB8, 0x00, 0xDD, 0xE1, 0x0A, 0x00, 0x50, 0xE1, 0x14, 0x00, 0x9D, 0x05 + .byte 0x01, 0x00, 0x80, 0x02, 0x00, 0x90, 0x89, 0x00, 0x04, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xA0, 0xE1 + .byte 0x06, 0x10, 0xA0, 0xE1, 0xE6, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF1, 0xFF, 0xFF, 0x0A + .byte 0xBC, 0xAB, 0xDD, 0xE1, 0x00, 0x00, 0x5A, 0xE3, 0xE3, 0xFF, 0xFF, 0x1A, 0x01, 0x00, 0x89, 0xE2 + .byte 0xB8, 0x00, 0xCB, 0xE1, 0xBA, 0x50, 0xCB, 0xE1, 0x00, 0x70, 0x9B, 0xE5, 0x00, 0x00, 0x57, 0xE3 + .byte 0xE4, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x4F, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0xB8, 0x60, 0xDB, 0xE1, 0x04, 0x00, 0x9B, 0xE5, 0x06, 0x00, 0x50, 0xE1, 0xE4, 0xD0, 0x8D, 0x32 + .byte 0x01, 0x00, 0xA0, 0x33, 0xF0, 0x4F, 0xBD, 0x38, 0x1E, 0xFF, 0x2F, 0x31, 0x00, 0x00, 0x9D, 0xE5 + .byte 0x00, 0x90, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xFF, 0x00, 0x50, 0xE3, 0x01, 0x80, 0xA0, 0x93 + .byte 0x02, 0x00, 0x00, 0x9A, 0xFF, 0x0C, 0x50, 0xE3, 0x02, 0x80, 0xA0, 0x93, 0x03, 0x80, 0xA0, 0x83 + .byte 0x00, 0x00, 0x9D, 0xE5, 0x07, 0x10, 0xA0, 0xE1, 0x08, 0x20, 0xA0, 0xE1, 0xEF, 0xF7, 0xFF, 0xEB + .byte 0x08, 0x10, 0x89, 0xE0, 0x60, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0x87, 0xE0, 0x02, 0x20, 0xA0, 0xE3 + .byte 0xEA, 0xF7, 0xFF, 0xEB, 0x98, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1, 0x6E, 0x01, 0x00, 0xEB + .byte 0x01, 0x08, 0x54, 0xE3, 0x1E, 0x00, 0x00, 0x0A, 0x04, 0x30, 0x8D, 0xE2, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x98, 0x00, 0x8D, 0xE2, 0x03, 0x10, 0xA0, 0xE3, 0xC8, 0x30, 0x8D, 0xE5, 0xCC, 0x20, 0x8D, 0xE5 + .byte 0xB3, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x1A, 0x98, 0x90, 0x8D, 0xE2 + .byte 0x03, 0x80, 0xA0, 0xE3, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A + .byte 0x08, 0x00, 0x9D, 0xE5, 0x04, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A, 0x09, 0x00, 0xA0, 0xE1 + .byte 0x08, 0x10, 0xA0, 0xE1, 0xA6, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF4, 0xFF, 0xFF, 0x0A + .byte 0x14, 0x00, 0x9D, 0xE5, 0x06, 0x10, 0x87, 0xE0, 0x01, 0x40, 0x80, 0xE2, 0x18, 0x00, 0x8D, 0xE2 + .byte 0x04, 0x20, 0xA0, 0xE1, 0x04, 0x10, 0x41, 0xE0, 0xC8, 0xF7, 0xFF, 0xEB, 0x04, 0x60, 0x46, 0xE0 + .byte 0x03, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x87, 0xE0, 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x10, 0x40, 0xE5 + .byte 0x01, 0x60, 0x46, 0xE2, 0x00, 0x00, 0x55, 0xE3, 0x27, 0x00, 0x00, 0x0A, 0x98, 0xA0, 0x8D, 0xE2 + .byte 0x04, 0xB0, 0x8D, 0xE2, 0x03, 0x40, 0xA0, 0xE3, 0x00, 0x90, 0xA0, 0xE3, 0x2F, 0x80, 0xA0, 0xE3 + .byte 0xC4, 0x10, 0x9D, 0xE5, 0x0A, 0x00, 0xA0, 0xE1, 0x3F, 0x01, 0x00, 0xEB, 0x06, 0x20, 0x87, 0xE0 + .byte 0x0A, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0xC8, 0xB0, 0x8D, 0xE5, 0xCC, 0x90, 0x8D, 0xE5 + .byte 0x01, 0x80, 0x42, 0xE5, 0x01, 0x60, 0x46, 0xE2, 0x85, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x12, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A + .byte 0xB8, 0x00, 0xDD, 0xE1, 0x05, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0x1A, 0x14, 0x50, 0x9D, 0xE5 + .byte 0x06, 0x10, 0x87, 0xE0, 0x18, 0x00, 0x8D, 0xE2, 0x05, 0x20, 0xA0, 0xE1, 0x05, 0x10, 0x41, 0xE0 + .byte 0xA2, 0xF7, 0xFF, 0xEB, 0x05, 0x60, 0x46, 0xE0, 0x04, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0xA0, 0xE1 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x72, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xEC, 0xFF, 0xFF, 0x0A + .byte 0xBC, 0x5B, 0xDD, 0xE1, 0x00, 0x00, 0x55, 0xE3, 0xDC, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xE4, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x2C, 0x68, 0x10, 0x02 + .byte 0xF0, 0x4F, 0x2D, 0xE9, 0x9C, 0xD0, 0x4D, 0xE2, 0x00, 0xA0, 0xA0, 0xE1, 0x40, 0x20, 0x9A, 0xE5 + .byte 0x3C, 0x90, 0x9A, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0x60, 0xFE, 0xFF, 0xEB + .byte 0x00, 0x10, 0xD9, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x70, 0x00, 0x00, 0x0A, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x1C, 0xB0, 0x8D, 0xE2, 0x03, 0x40, 0xA0, 0xE3, 0x01, 0x50, 0xA0, 0xE3, 0x00, 0x60, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x8D, 0xE5, 0x06, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x70, 0x87, 0xE2 + .byte 0x07, 0x80, 0xD9, 0xE7, 0x06, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x58, 0xE3, 0x03, 0x00, 0x00, 0x0A + .byte 0x2F, 0x00, 0x58, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x5C, 0x00, 0x58, 0xE3, 0x05, 0x00, 0xA0, 0x11 + .byte 0x00, 0x00, 0x50, 0xE3, 0xF4, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x58, 0xE3, 0x02, 0x00, 0x00, 0x1A + .byte 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x0A, 0x05, 0x80, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x57, 0xE3, 0x9C, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03, 0xF0, 0x4F, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x2E, 0x00, 0x51, 0xE3, 0x13, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x57, 0xE3 + .byte 0x01, 0x90, 0x89, 0x02, 0x46, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xD9, 0xE5, 0x02, 0x00, 0x57, 0xE3 + .byte 0x05, 0x10, 0xA0, 0x01, 0x06, 0x10, 0xA0, 0x11, 0x2E, 0x00, 0x50, 0xE3, 0x05, 0x00, 0xA0, 0x01 + .byte 0x06, 0x00, 0xA0, 0x11, 0x00, 0x00, 0x11, 0xE0, 0x07, 0x00, 0x00, 0x0A, 0xB4, 0x02, 0xDA, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x2C, 0x10, 0x9A, 0xE5, 0x0A, 0x00, 0xA0, 0xE1 + .byte 0xDD, 0x00, 0x00, 0xEB, 0x02, 0x90, 0x89, 0xE2, 0x35, 0x00, 0x00, 0xEA, 0x7F, 0x00, 0x57, 0xE3 + .byte 0x9C, 0xD0, 0x8D, 0xC2, 0x01, 0x00, 0xA0, 0xC3, 0xF0, 0x4F, 0xBD, 0xC8, 0x1E, 0xFF, 0x2F, 0xC1 + .byte 0x08, 0x00, 0x8D, 0xE2, 0x30, 0x00, 0x8A, 0xE5, 0x34, 0x60, 0x8A, 0xE5, 0x0A, 0x00, 0xA0, 0xE1 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x1E, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x9C, 0xD0, 0x8D, 0x12 + .byte 0x01, 0x00, 0xA0, 0x13, 0xF0, 0x4F, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x14, 0x00, 0x9D, 0xE5 + .byte 0x00, 0x00, 0x58, 0xE1, 0xF4, 0xFF, 0xFF, 0x1A, 0x18, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x57, 0xE1 + .byte 0xF1, 0xFF, 0xFF, 0x1A, 0x09, 0x00, 0xA0, 0xE1, 0x0B, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1 + .byte 0xF9, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xEB, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x58, 0xE3 + .byte 0x08, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x8D, 0xE2, 0x30, 0x30, 0x8A, 0xE2, 0x07, 0x00, 0x90, 0xE8 + .byte 0x07, 0x00, 0x83, 0xE8, 0x04, 0x10, 0x9D, 0xE5, 0x0A, 0x00, 0xA0, 0xE1, 0x07, 0x90, 0x89, 0xE0 + .byte 0x03, 0xFE, 0xFF, 0xEB, 0x0E, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x9C, 0xD0, 0x8D, 0x12, 0x01, 0x00, 0xA0, 0x13, 0xF0, 0x4F, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0x44, 0x30, 0x9A, 0xE5, 0x08, 0x20, 0x9D, 0xE5, 0x0C, 0x10, 0x9D, 0xE5, 0x9C, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x20, 0x83, 0xE5, 0x04, 0x10, 0x83, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xD9, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0xA0, 0x11 + .byte 0x06, 0x00, 0xA0, 0x01, 0x00, 0x10, 0xF9, 0xE7, 0x00, 0x00, 0x51, 0xE3, 0x94, 0xFF, 0xFF, 0x1A + .byte 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x20, 0x00, 0x8A, 0x12 + .byte 0x44, 0x30, 0x9A, 0x15, 0x07, 0x00, 0x90, 0x18, 0x07, 0x00, 0x83, 0x18, 0x00, 0x00, 0xA0, 0x13 + .byte 0x9C, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x0C, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x30, 0x40, 0x95, 0xE5, 0x08, 0x10, 0x95, 0xE5 + .byte 0x04, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0x8D, 0xE5, 0x28, 0x30, 0x95, 0xE5, 0x00, 0x10, 0x8D, 0xE2 + .byte 0x01, 0x20, 0xA0, 0xE3, 0x08, 0x30, 0x8D, 0xE5, 0x94, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0C, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x10, 0xDD, 0xE5 + .byte 0x7F, 0x20, 0x01, 0xE2, 0xC1, 0x13, 0xA0, 0xE1, 0x10, 0x20, 0x84, 0xE5, 0x01, 0x10, 0x01, 0xE2 + .byte 0x0C, 0x10, 0x84, 0xE5, 0x10, 0x20, 0x94, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x0C, 0xD0, 0x8D, 0x02 + .byte 0x01, 0x00, 0xA0, 0x03, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x34, 0x10, 0x95, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x0B, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x8D, 0xE2, 0x14, 0x10, 0x84, 0xE2 + .byte 0x7E, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x10, 0x10, 0x94, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x10, 0x84, 0xE0 + .byte 0x14, 0x20, 0xC1, 0xE5, 0x02, 0x00, 0x00, 0xEA, 0x08, 0x10, 0x9D, 0xE5, 0x02, 0x10, 0x81, 0xE0 + .byte 0x08, 0x10, 0x8D, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x11, 0x00, 0x00, 0x0A + .byte 0x04, 0x00, 0x8D, 0xE2, 0x02, 0x10, 0x8D, 0xE2, 0x02, 0x20, 0xA0, 0xE3, 0x6B, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x0C, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0x08, 0x20, 0x95, 0xE5, 0x4C, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x84, 0xE5, 0xB2, 0x30, 0xDD, 0xE1 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x10, 0x03, 0xE0, 0xB4, 0x10, 0xC4, 0xE1, 0xB6, 0x20, 0xC4, 0xE1 + .byte 0x08, 0x20, 0x84, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0x08, 0x10, 0x95, 0xE5, 0x00, 0x10, 0x84, 0xE5 + .byte 0xB6, 0x12, 0xD5, 0xE1, 0x04, 0x10, 0x84, 0xE5, 0xB6, 0x12, 0xD5, 0xE1, 0x01, 0x10, 0x81, 0xE2 + .byte 0xB6, 0x12, 0xC5, 0xE1, 0x08, 0x10, 0x9D, 0xE5, 0x28, 0x10, 0x85, 0xE5, 0x0C, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0x0F, 0x00, 0x00, 0x70, 0x40, 0x2D, 0xE9 + .byte 0x10, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1, 0x08, 0x50, 0x96, 0xE5, 0x30, 0x40, 0x86, 0xE2 + .byte 0x08, 0x50, 0x8D, 0xE5, 0xB4, 0x10, 0xD4, 0xE1, 0x34, 0x20, 0x95, 0xE5, 0x08, 0x00, 0x8D, 0xE2 + .byte 0x81, 0x31, 0x82, 0xE0, 0x00, 0x10, 0x8D, 0xE2, 0x08, 0x20, 0xA0, 0xE3, 0x0C, 0x30, 0x8D, 0xE5 + .byte 0x42, 0x00, 0x00, 0xEB, 0x00, 0x30, 0xB0, 0xE1, 0x12, 0x00, 0x00, 0x1A, 0x20, 0xC0, 0x86, 0xE2 + .byte 0x07, 0x00, 0x94, 0xE8, 0x07, 0x00, 0x8C, 0xE8, 0xB6, 0x00, 0xD4, 0xE1, 0x00, 0x00, 0x50, 0xE3 + .byte 0x08, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A + .byte 0xB4, 0x00, 0xDD, 0xE1, 0xB6, 0x02, 0xC6, 0xE1, 0x34, 0x10, 0x95, 0xE5, 0x00, 0x00, 0x9D, 0xE5 + .byte 0x00, 0x00, 0x81, 0xE0, 0x28, 0x00, 0x86, 0xE5, 0xB6, 0x10, 0xDD, 0xE1, 0x14, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x01, 0xE0, 0x2C, 0x00, 0x86, 0xE5, 0x03, 0x00, 0xA0, 0xE1, 0x10, 0xD0, 0x8D, 0xE2 + .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x2C, 0x20, 0x90, 0xE5, 0x38, 0x30, 0x90, 0xE5, 0x08, 0xE0, 0x90, 0xE5 + .byte 0x30, 0x10, 0x90, 0xE5, 0x03, 0xC0, 0x82, 0xE0, 0x2C, 0xC0, 0x80, 0xE5, 0x4C, 0xC0, 0x9E, 0xE5 + .byte 0x0E, 0x00, 0xA0, 0xE1, 0x3C, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x2C, 0x20, 0x90, 0xE5 + .byte 0x38, 0x30, 0x90, 0xE5, 0x08, 0xE0, 0x90, 0xE5, 0x30, 0x10, 0x90, 0xE5, 0x03, 0xC0, 0x82, 0xE0 + .byte 0x2C, 0xC0, 0x80, 0xE5, 0x48, 0xC0, 0x9E, 0xE5, 0x0E, 0x00, 0xA0, 0xE1, 0x3C, 0xFF, 0x2F, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x30, 0x90, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x04, 0x30, 0x83, 0xE3, 0x0C, 0x30, 0x80, 0xE5, 0x08, 0x30, 0x90, 0xE5 + .byte 0x14, 0xC0, 0x9F, 0xE5, 0x30, 0x30, 0x80, 0xE5, 0x38, 0x20, 0x80, 0xE5, 0xB6, 0x23, 0xC0, 0xE1 + .byte 0xB4, 0x13, 0xC0, 0xE1, 0x02, 0x10, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x34, 0xFF, 0x0C, 0x02 + .byte 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x70, 0xA0, 0xE1, 0x00, 0x50, 0x97, 0xE5, 0x02, 0x60, 0xA0, 0xE1 + .byte 0x1C, 0x20, 0x95, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x02, 0x2C, 0x82, 0xE3, 0x1C, 0x20, 0x85, 0xE5 + .byte 0x04, 0x20, 0x97, 0xE5, 0x50, 0x40, 0x95, 0xE5, 0x06, 0x30, 0xA0, 0xE1, 0x34, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x06, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x12, 0x00, 0x00, 0xEA, 0x1C, 0x10, 0x95, 0xE5 + .byte 0x02, 0x1C, 0xC1, 0xE3, 0x1C, 0x10, 0x85, 0xE5, 0x0E, 0x00, 0x00, 0xEA, 0x1F, 0xF2, 0xFF, 0xEB + .byte 0x1C, 0x10, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x0C, 0x11, 0xE2, 0x05, 0x00, 0x00, 0x0A + .byte 0x0C, 0x80, 0x85, 0xE2, 0x08, 0x00, 0xA0, 0xE1, 0x0D, 0xEA, 0xFF, 0xEB, 0x1C, 0x00, 0x95, 0xE5 + .byte 0x02, 0x0C, 0x10, 0xE2, 0xFA, 0xFF, 0xFF, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x18, 0xF2, 0xFF, 0xEB + .byte 0x24, 0x00, 0x95, 0xE5, 0x14, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x97, 0xE5, 0x06, 0x10, 0x81, 0xE0 + .byte 0x04, 0x10, 0x87, 0xE5, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x00, 0x52, 0xE3, 0x00, 0xE0, 0xA0, 0xE3, 0x0F, 0x00, 0x00, 0x9A + .byte 0x0E, 0xC0, 0xD0, 0xE7, 0x0E, 0x30, 0xD1, 0xE7, 0x41, 0xC0, 0x4C, 0xE2, 0x19, 0x00, 0x5C, 0xE3 + .byte 0x41, 0x30, 0x43, 0xE2, 0x20, 0xC0, 0x8C, 0x92, 0x19, 0x00, 0x53, 0xE3, 0x20, 0x30, 0x83, 0x92 + .byte 0x03, 0x00, 0x5C, 0xE1, 0x04, 0xD0, 0x8D, 0x12, 0x03, 0x00, 0x4C, 0x10, 0x00, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0xE0, 0x8E, 0xE2, 0x02, 0x00, 0x5E, 0xE1, 0xEF, 0xFF, 0xFF, 0x3A + .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x1C, 0x00, 0x94, 0xE5, 0x01, 0x60, 0xA0, 0xE1 + .byte 0x01, 0x0C, 0x10, 0xE2, 0x0C, 0x00, 0x00, 0x0A, 0x1C, 0x20, 0x94, 0xE5, 0x24, 0x00, 0x94, 0xE5 + .byte 0x01, 0x2C, 0xC2, 0xE3, 0x1C, 0x20, 0x84, 0xE5, 0x50, 0xFD, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x40, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x13, 0x02, 0x00, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x50, 0x94, 0xE5 + .byte 0xDE, 0xF1, 0xFF, 0xEB, 0x14, 0x60, 0x85, 0xE5, 0x1C, 0x10, 0x94, 0xE5, 0x00, 0x50, 0xA0, 0xE1 + .byte 0x02, 0x1C, 0xC1, 0xE3, 0x0C, 0x00, 0x84, 0xE2, 0x1C, 0x10, 0x84, 0xE5, 0xAC, 0xE9, 0xFF, 0xEB + .byte 0x05, 0x00, 0xA0, 0xE1, 0xDA, 0xF1, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0x52, 0xE3, 0x00, 0x10, 0xA0, 0x03, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE3 + .byte 0x00, 0x20, 0xA0, 0x03, 0x54, 0x10, 0x80, 0xE5, 0x58, 0x20, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x60, 0xA0, 0xE3 + .byte 0xC6, 0xF1, 0xFF, 0xEB, 0x1C, 0x10, 0x94, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x08, 0x00, 0x11, 0xE2 + .byte 0x01, 0x00, 0xA0, 0x13, 0x06, 0x00, 0xA0, 0x01, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x70, 0xA0, 0x03 + .byte 0x00, 0x70, 0xA0, 0x13, 0x00, 0x00, 0x57, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x1C, 0x10, 0x94, 0xE5 + .byte 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xC1, 0xE3, 0x1C, 0x10, 0x84, 0xE5, 0x11, 0x02, 0x00, 0xEB + .byte 0x00, 0x60, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0xB9, 0xF1, 0xFF, 0xEB, 0x00, 0x00, 0x56, 0xE3 + .byte 0x01, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0xE1, 0x01, 0x00, 0xEB, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1, 0xA8, 0xF1, 0xFF, 0xEB, 0x1C, 0x10, 0x96, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x00, 0x11, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x50, 0xA0, 0x03, 0x00, 0x50, 0xA0, 0x13, 0x00, 0x00, 0x55, 0xE3 + .byte 0x0F, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x96, 0xE5, 0x10, 0x00, 0x10, 0xE2, 0x09, 0x00, 0x00, 0x0A + .byte 0x1C, 0x00, 0x96, 0xE5, 0x40, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0x86, 0xE5, 0x14, 0x70, 0x86, 0xE2 + .byte 0x07, 0x00, 0xA0, 0xE1, 0x8A, 0xE9, 0xFF, 0xEB, 0x1C, 0x00, 0x96, 0xE5, 0x40, 0x00, 0x10, 0xE2 + .byte 0xFA, 0xFF, 0xFF, 0x1A, 0x02, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x96, 0xE5, 0x08, 0x00, 0x80, 0xE3 + .byte 0x1C, 0x00, 0x86, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x91, 0xF1, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x1C, 0x00, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE3 + .byte 0x02, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x04, 0x00, 0xA0, 0x01, 0x00, 0x00, 0x50, 0xE3 + .byte 0x17, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1, 0xCF, 0xFF, 0xFF, 0xEB, 0x1C, 0x10, 0x95, 0xE5 + .byte 0x04, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3 + .byte 0x0B, 0x00, 0x00, 0x0A, 0x1C, 0x20, 0x95, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x20, 0xC2, 0xE3 + .byte 0x1C, 0x20, 0x85, 0xE5, 0x44, 0x40, 0x95, 0xE5, 0x44, 0x10, 0x85, 0xE5, 0x3C, 0x10, 0x95, 0xE5 + .byte 0x2C, 0x10, 0x85, 0xE5, 0x40, 0x10, 0x95, 0xE5, 0x34, 0x10, 0x85, 0xE5, 0x48, 0x10, 0x95, 0xE5 + .byte 0x50, 0x10, 0x85, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x9A, 0xFF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x4C, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1 + .byte 0x30, 0x30, 0x97, 0xE5, 0x38, 0x00, 0x97, 0xE5, 0x01, 0x60, 0xA0, 0xE1, 0x00, 0x00, 0x83, 0xE0 + .byte 0x20, 0x00, 0x80, 0xE2, 0x1F, 0x00, 0x80, 0xE2, 0x1F, 0x50, 0xC0, 0xE3, 0x02, 0x00, 0x55, 0xE1 + .byte 0x39, 0x00, 0x00, 0x8A, 0x1F, 0x10, 0x86, 0xE2, 0x04, 0x00, 0x8D, 0xE2, 0x1F, 0x40, 0xC1, 0xE3 + .byte 0xB3, 0x03, 0x00, 0xEB, 0x2C, 0x20, 0x97, 0xE5, 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x8D, 0xE5 + .byte 0x30, 0x30, 0x97, 0xE5, 0x04, 0x00, 0x8D, 0xE2, 0x07, 0x10, 0xA0, 0xE1, 0x03, 0x30, 0x82, 0xE0 + .byte 0x0A, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x30, 0x20, 0x97, 0xE5 + .byte 0x04, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x83, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0xAA, 0x30, 0x20, 0x97, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x4D, 0xF5, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE2, 0xB7, 0x02, 0x00, 0xEB, 0x2C, 0x40, 0x87, 0xE5 + .byte 0x30, 0xC0, 0x97, 0xE5, 0x34, 0x20, 0x97, 0xE5, 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x8D, 0xE5 + .byte 0x38, 0x30, 0x97, 0xE5, 0x04, 0x00, 0x8D, 0xE2, 0x07, 0x10, 0xA0, 0xE1, 0x03, 0x30, 0x82, 0xE0 + .byte 0x0C, 0x40, 0x84, 0xE0, 0xF1, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A + .byte 0x38, 0x20, 0x97, 0xE5, 0x04, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x6A, 0x02, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0xAA, 0x38, 0x20, 0x97, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x34, 0xF5, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE2, 0x9E, 0x02, 0x00, 0xEB + .byte 0x34, 0x40, 0x87, 0xE5, 0x20, 0x00, 0x9F, 0xE5, 0x44, 0x60, 0x87, 0xE5, 0x50, 0x00, 0x87, 0xE5 + .byte 0x1C, 0x00, 0x97, 0xE5, 0x04, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0x87, 0xE5, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x4C, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x16, 0x0D, 0x02 + .byte 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x14, 0xF1, 0xFF, 0xEB, 0x1C, 0x10, 0x95, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x00, 0x11, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 + .byte 0x00, 0x00, 0x50, 0xE3, 0x22, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1, 0x1C, 0x10, 0x95, 0xE5 + .byte 0x5D, 0xFF, 0xFF, 0xEB, 0x1C, 0x10, 0x95, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x80, 0x00, 0x81, 0xE3 + .byte 0x1C, 0x00, 0x85, 0xE5, 0x24, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A + .byte 0x03, 0x60, 0xA0, 0xE3, 0x04, 0x80, 0x90, 0xE5, 0x06, 0x10, 0xA0, 0xE1, 0x67, 0xFC, 0xFF, 0xEB + .byte 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x58, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x24, 0x00, 0x85, 0xE5, 0x00, 0x00, 0x57, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x2A, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x28, 0x00, 0x85, 0xE5, 0x2C, 0x00, 0x85, 0xE5 + .byte 0x30, 0x00, 0x85, 0xE5, 0x34, 0x00, 0x85, 0xE5, 0x38, 0x00, 0x85, 0xE5, 0x40, 0x00, 0x85, 0xE5 + .byte 0x40, 0x00, 0x95, 0xE5, 0x3C, 0x00, 0x85, 0xE5, 0x1C, 0x00, 0x95, 0xE5, 0xA2, 0x00, 0xC0, 0xE3 + .byte 0x1C, 0x00, 0x85, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xED, 0xF0, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x28, 0x10, 0x80, 0xE5, 0x30, 0x30, 0x80, 0xE5 + .byte 0x3C, 0x20, 0x80, 0xE5, 0x3C, 0x10, 0x90, 0xE5, 0x04, 0x20, 0x9D, 0xE5, 0x2C, 0x10, 0x80, 0xE5 + .byte 0x38, 0x20, 0x80, 0xE5, 0x00, 0x10, 0x9D, 0xE5, 0x08, 0x20, 0x9D, 0xE5, 0x40, 0x10, 0x80, 0xE5 + .byte 0x40, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x34, 0x10, 0x80, 0xE5, 0x34, 0x20, 0x9F, 0x05 + .byte 0x0C, 0x10, 0x9D, 0xE5, 0x48, 0x20, 0x80, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x28, 0x10, 0x9F, 0x05 + .byte 0x4C, 0x10, 0x80, 0xE5, 0x48, 0x20, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x50, 0x20, 0x80, 0xE5 + .byte 0x44, 0x10, 0x80, 0xE5, 0x1C, 0x10, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE3, 0x1C, 0x10, 0x80, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0xC0, 0x16, 0x0D, 0x02, 0x94, 0x16, 0x0D, 0x02 + .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xC0, 0xF0, 0xFF, 0xEB, 0x04, 0x20, 0x94, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x00, 0x52, 0xE3, 0x08, 0x10, 0x94, 0x15, 0x08, 0x10, 0x82, 0x15 + .byte 0x08, 0x20, 0x94, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x04, 0x10, 0x94, 0x15, 0x04, 0x10, 0x82, 0x15 + .byte 0x00, 0x30, 0x84, 0xE5, 0x08, 0x30, 0x84, 0xE5, 0x08, 0x10, 0x94, 0xE5, 0x3C, 0x20, 0x9F, 0xE5 + .byte 0x04, 0x10, 0x84, 0xE5, 0x1C, 0x10, 0x94, 0xE5, 0x01, 0x10, 0xC1, 0xE3, 0x1C, 0x10, 0x84, 0xE5 + .byte 0x00, 0x10, 0x92, 0xE5, 0x04, 0x00, 0x51, 0xE1, 0x05, 0x00, 0x00, 0x1A, 0x20, 0x10, 0x9F, 0xE5 + .byte 0x08, 0x30, 0x82, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0xB6, 0x30, 0xC2, 0xE1, 0x00, 0x10, 0x82, 0xE5 + .byte 0xB4, 0x30, 0xC2, 0xE1, 0xAA, 0xF0, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xEC, 0x53, 0x1D, 0x02, 0xE8, 0x53, 0x1D, 0x02, 0xF0, 0x41, 0x2D, 0xE9, 0x01, 0x60, 0xA0, 0xE1 + .byte 0x02, 0x50, 0xA0, 0xE1, 0x00, 0x70, 0xA0, 0xE1, 0x00, 0x80, 0xA0, 0xE3, 0x9B, 0xF0, 0xFF, 0xEB + .byte 0x00, 0x40, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x25, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x00, 0x1A, 0x80, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x74, 0x00, 0x9F, 0xE5, 0x08, 0x20, 0xA0, 0xE1 + .byte 0x00, 0x70, 0x81, 0xE5, 0x00, 0x70, 0x80, 0xE5, 0x08, 0x20, 0x80, 0xE5, 0xB6, 0x20, 0xC0, 0xE1 + .byte 0xB4, 0x20, 0xC0, 0xE1, 0x08, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x0A, 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x04, 0x70, 0x82, 0xE5, 0x08, 0x20, 0x87, 0xE5, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x05, 0x10, 0xA0, 0xE1, 0x73, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x87, 0xE5, 0x1C, 0x00, 0x97, 0xE5 + .byte 0x01, 0x80, 0xA0, 0xE3, 0x01, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0x87, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x7B, 0xF0, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xE8, 0x53, 0x1D, 0x02, 0xEC, 0x53, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x64, 0x01, 0x00, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x6C, 0xF0, 0xFF, 0xEB, 0x30, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x40, 0x91, 0xE5, 0x00, 0x00, 0x00, 0xEA, 0x04, 0x40, 0x94, 0xE5, 0x00, 0x00, 0x54, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x94, 0xE5, 0x05, 0x00, 0x51, 0xE1, 0xF9, 0xFF, 0xFF, 0x1A + .byte 0x67, 0xF0, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE8, 0x53, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x5C, 0x20, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1, 0x67, 0xF4, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x10, 0x10, 0x84, 0xE5, 0x10, 0x00, 0x94, 0xE5, 0x0C, 0x00, 0x84, 0xE5, 0x18, 0x10, 0x84, 0xE5 + .byte 0x18, 0x00, 0x94, 0xE5, 0x14, 0x00, 0x84, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x08, 0x60, 0x97, 0xE5 + .byte 0x01, 0x20, 0xA0, 0xE3, 0x10, 0x10, 0x87, 0xE5, 0x02, 0x00, 0xA0, 0xE3, 0x14, 0x00, 0x87, 0xE5 + .byte 0x0C, 0x00, 0x97, 0xE5, 0x12, 0x51, 0xA0, 0xE1, 0x01, 0x00, 0x80, 0xE3, 0x0C, 0x00, 0x87, 0xE5 + .byte 0x42, 0xF0, 0xFF, 0xEB, 0x1C, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x80, 0x00, 0x11, 0xE2 + .byte 0x08, 0x00, 0x00, 0x0A, 0x07, 0x00, 0xA0, 0xE1, 0x03, 0x10, 0xA0, 0xE3, 0xA3, 0xFB, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x3E, 0xF0, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7F, 0x0F, 0x15, 0xE2, 0x0C, 0x00, 0x97, 0x15 + .byte 0x20, 0x20, 0x86, 0xE2, 0x04, 0x00, 0x80, 0x13, 0x0C, 0x00, 0x87, 0x15, 0x00, 0x10, 0x97, 0xE5 + .byte 0x04, 0x00, 0x97, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0x81, 0x15, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x10, 0x80, 0x15, 0x04, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A + .byte 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A + .byte 0x04, 0x70, 0x82, 0xE5, 0x00, 0x20, 0x87, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x87, 0xE5 + .byte 0x1C, 0x00, 0x96, 0xE5, 0x08, 0x00, 0x10, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x51, 0xE3 + .byte 0x21, 0x00, 0x00, 0x1A, 0x1C, 0x00, 0x96, 0xE5, 0x10, 0x00, 0x10, 0xE2, 0x1E, 0x00, 0x00, 0x1A + .byte 0x1C, 0x10, 0x96, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x10, 0x81, 0xE3, 0x1C, 0x10, 0x86, 0xE5 + .byte 0x17, 0xF0, 0xFF, 0xEB, 0x58, 0x00, 0x96, 0xE5, 0x02, 0x0C, 0x10, 0xE2, 0x03, 0x00, 0x00, 0x0A + .byte 0x54, 0x20, 0x96, 0xE5, 0x07, 0x00, 0xA0, 0xE1, 0x09, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1 + .byte 0x0A, 0xF0, 0xFF, 0xEB, 0x0C, 0x10, 0x97, 0xE5, 0x40, 0x10, 0x81, 0xE3, 0x0C, 0x10, 0x87, 0xE5 + .byte 0x0C, 0x10, 0x97, 0xE5, 0x04, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03 + .byte 0x00, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x05, 0xF0, 0xFF, 0xEB, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x2F, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFE, 0xEF, 0xFF, 0xEB, 0x12, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x97, 0xE5 + .byte 0x04, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3 + .byte 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0xF5, 0xEF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x18, 0x00, 0x87, 0xE2 + .byte 0xDF, 0xE7, 0xFF, 0xEB, 0x0C, 0x00, 0x97, 0xE5, 0x40, 0x00, 0x10, 0xE2, 0xFA, 0xFF, 0xFF, 0x0A + .byte 0x04, 0x00, 0xA0, 0xE1, 0xEA, 0xEF, 0xFF, 0xEB, 0x07, 0x00, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x10, 0x10, 0x94, 0xE5, 0xE5, 0xFA, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x00, 0xA0, 0xE1, 0x41, 0xFB, 0xFF, 0xEB, 0x08, 0x00, 0x94, 0xE5, 0x31, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x00, 0xEB, 0x14, 0x00, 0x94, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x60, 0xB0, 0xE1, 0x08, 0x50, 0x96, 0xE5 + .byte 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x70, 0xA0, 0xE3, 0x01, 0x80, 0xA0, 0xE3 + .byte 0xC6, 0xEF, 0xFF, 0xEB, 0x0C, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x40, 0x00, 0x81, 0xE3 + .byte 0x0C, 0x00, 0x86, 0xE5, 0x0C, 0x00, 0x96, 0xE5, 0x04, 0x00, 0x10, 0xE2, 0x08, 0x00, 0xA0, 0x11 + .byte 0x07, 0x00, 0xA0, 0x01, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x18, 0x00, 0x86, 0xE2 + .byte 0x8F, 0xE7, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xBD, 0xEF, 0xFF, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x10, 0x96, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0x81, 0xE3 + .byte 0x0C, 0x10, 0x86, 0xE5, 0xB6, 0xEF, 0xFF, 0xEB, 0x10, 0x10, 0x96, 0xE5, 0x06, 0x00, 0xA0, 0xE1 + .byte 0xB7, 0xFA, 0xFF, 0xEB, 0x06, 0x00, 0x50, 0xE3, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x05, 0x00, 0xA0, 0xE1, 0x03, 0x00, 0x00, 0xEB, 0x00, 0x60, 0xB0, 0xE1, 0xDF, 0xFF, 0xFF, 0x1A + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x43, 0x2D, 0xE9, 0x4C, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x60, 0xA0, 0xE1, 0xA1, 0xEF, 0xFF, 0xEB, 0x1C, 0x10, 0x96, 0xE5, 0x00, 0x50, 0xA0, 0xE1 + .byte 0x20, 0x00, 0x11, 0xE2, 0x19, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x96, 0xE5, 0x20, 0x00, 0xC0, 0xE3 + .byte 0x1C, 0x00, 0x86, 0xE5, 0x24, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x13, 0x00, 0x00, 0x0A + .byte 0x00, 0x80, 0xA0, 0xE3, 0x01, 0x90, 0xA0, 0xE3, 0x03, 0x70, 0xA0, 0xE3, 0x0C, 0x10, 0x90, 0xE5 + .byte 0x04, 0x40, 0x90, 0xE5, 0x02, 0x10, 0x11, 0xE2, 0x09, 0x10, 0xA0, 0x11, 0x08, 0x10, 0xA0, 0x01 + .byte 0x00, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x24, 0x10, 0x96, 0xE5, 0x00, 0x00, 0x51, 0xE1 + .byte 0x07, 0x10, 0xA0, 0xE1, 0x24, 0x40, 0x86, 0x05, 0xF0, 0xFA, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3 + .byte 0x24, 0x40, 0x96, 0x05, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x54, 0xE3, 0xEE, 0xFF, 0xFF, 0x1A + .byte 0x1C, 0x00, 0x96, 0xE5, 0x40, 0x00, 0x10, 0xE2, 0x37, 0x00, 0x00, 0x1A, 0x1C, 0x00, 0x96, 0xE5 + .byte 0x08, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3 + .byte 0x31, 0x00, 0x00, 0x1A, 0x24, 0x40, 0x96, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0x2E, 0x00, 0x00, 0x0A + .byte 0x1C, 0x00, 0x96, 0xE5, 0x10, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x70, 0xA0, 0x03, 0x00, 0x70, 0xA0, 0x13, 0x00, 0x00, 0x57, 0xE3 + .byte 0x1C, 0x00, 0x96, 0x15, 0x10, 0x00, 0x80, 0x13, 0x1C, 0x00, 0x86, 0x15, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x6F, 0xEF, 0xFF, 0xEB, 0x00, 0x00, 0x57, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x58, 0x00, 0x96, 0xE5 + .byte 0x02, 0x0C, 0x10, 0xE2, 0x03, 0x00, 0x00, 0x0A, 0x54, 0x20, 0x96, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x09, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1, 0x60, 0xEF, 0xFF, 0xEB, 0x0C, 0x10, 0x94, 0xE5 + .byte 0x00, 0x50, 0xA0, 0xE1, 0x40, 0x00, 0x81, 0xE3, 0x0C, 0x00, 0x84, 0xE5, 0x0C, 0x00, 0x94, 0xE5 + .byte 0x04, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3 + .byte 0x07, 0x00, 0x00, 0x0A, 0x18, 0x00, 0x84, 0xE2, 0x29, 0xE7, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x57, 0xEF, 0xFF, 0xEB, 0x4C, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x43, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x51, 0xEF, 0xFF, 0xEB, 0x4C, 0xD0, 0x8D, 0xE2 + .byte 0x04, 0x00, 0xA0, 0xE1, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0x00, 0x96, 0xE5 + .byte 0x10, 0x00, 0x10, 0xE2, 0x0C, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x96, 0xE5, 0x10, 0x00, 0xC0, 0xE3 + .byte 0x1C, 0x00, 0x86, 0xE5, 0x58, 0x00, 0x96, 0xE5, 0x01, 0x0B, 0x10, 0xE2, 0x06, 0x00, 0x00, 0x0A + .byte 0x00, 0x00, 0x8D, 0xE2, 0x9E, 0x01, 0x00, 0xEB, 0x08, 0x60, 0x8D, 0xE5, 0x54, 0x20, 0x96, 0xE5 + .byte 0x00, 0x00, 0x8D, 0xE2, 0x0A, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1, 0x1C, 0x00, 0x96, 0xE5 + .byte 0x40, 0x00, 0x10, 0xE2, 0x07, 0x00, 0x00, 0x0A, 0x1C, 0x10, 0x96, 0xE5, 0x14, 0x00, 0x86, 0xE2 + .byte 0x40, 0x10, 0xC1, 0xE3, 0x1C, 0x10, 0x86, 0xE5, 0x1C, 0x10, 0x96, 0xE5, 0x08, 0x10, 0x81, 0xE3 + .byte 0x1C, 0x10, 0x86, 0xE5, 0x02, 0xE7, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x30, 0xEF, 0xFF, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x4C, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x02, 0x00, 0xA0, 0xE1, 0x03, 0x20, 0xA0, 0xE1 + .byte 0x56, 0xF3, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0xC0, 0x90, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE1, 0x02, 0x10, 0x8C, 0xE0, 0x03, 0x20, 0xA0, 0xE1, 0x4B, 0xF3, 0xFF, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x00, 0x90, 0xE5, 0x02, 0x00, 0x80, 0xE0 + .byte 0x03, 0x20, 0xA0, 0xE1, 0x41, 0xF3, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x03, 0x00, 0x51, 0xE3, 0x00, 0xE0, 0xA0, 0xE3, 0x0F, 0x00, 0x00, 0xCA, 0x0E, 0xC0, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x51, 0xE3, 0x0C, 0x00, 0x00, 0xDA, 0x0E, 0x30, 0xA0, 0xE1, 0x0C, 0x20, 0xD0, 0xE7 + .byte 0x00, 0x00, 0x52, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x41, 0x20, 0x42, 0xE2, 0x19, 0x00, 0x52, 0xE3 + .byte 0x61, 0x20, 0x82, 0x92, 0x41, 0x20, 0x82, 0x82, 0x01, 0xC0, 0x8C, 0xE2, 0x12, 0xE3, 0x8E, 0xE1 + .byte 0x01, 0x00, 0x5C, 0xE1, 0x08, 0x30, 0x83, 0xE2, 0xF3, 0xFF, 0xFF, 0xBA, 0x0E, 0x00, 0xA0, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x58, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x0C, 0x00, 0x8D, 0xE2, 0x4C, 0x01, 0x00, 0xEB + .byte 0x0C, 0x00, 0x8D, 0xE2, 0x00, 0x30, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE3 + .byte 0xEF, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x8D, 0x12 + .byte 0x14, 0x30, 0x9F, 0x15, 0x07, 0x00, 0x90, 0x18, 0x07, 0x00, 0x83, 0x18, 0x01, 0x00, 0xA0, 0x13 + .byte 0x58, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xEC, 0x53, 0x1D, 0x02 + .byte 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x52, 0xE3, 0x05, 0x00, 0x00, 0x0A + .byte 0x02, 0x00, 0x52, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x00, 0xEA, 0x24, 0x20, 0x90, 0xE5 + .byte 0x02, 0x10, 0x81, 0xE0, 0x07, 0x00, 0x00, 0xEA, 0x2C, 0x20, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE0 + .byte 0x04, 0x00, 0x00, 0xEA, 0x28, 0x20, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE0, 0x01, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x20, 0x90, 0xE5, 0x02, 0x00, 0x51, 0xE1 + .byte 0x02, 0x10, 0xA0, 0xB1, 0x28, 0x20, 0x90, 0xE5, 0x02, 0x00, 0x51, 0xE1, 0x02, 0x10, 0xA0, 0xC1 + .byte 0x2C, 0x10, 0x80, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xAC, 0x1A, 0x0D, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x01, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xAC, 0x1A, 0x0D, 0x02, 0xF0, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, 0xB3, 0xEE, 0xFF, 0xEB + .byte 0x0C, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x00, 0x11, 0xE2, 0x01, 0x00, 0xA0, 0x13 + .byte 0x05, 0x00, 0xA0, 0x01, 0x00, 0x00, 0x50, 0xE3, 0x17, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0x96, 0xE5 + .byte 0x44, 0x00, 0x10, 0xE2, 0x01, 0x50, 0xA0, 0x03, 0x00, 0x50, 0xA0, 0x13, 0x00, 0x00, 0x55, 0xE3 + .byte 0x09, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0x96, 0xE5, 0x04, 0x00, 0x80, 0xE3, 0x0C, 0x00, 0x86, 0xE5 + .byte 0x18, 0x70, 0x86, 0xE2, 0x07, 0x00, 0xA0, 0xE1, 0x95, 0xE6, 0xFF, 0xEB, 0x0C, 0x00, 0x96, 0xE5 + .byte 0x40, 0x00, 0x10, 0xE2, 0xFA, 0xFF, 0xFF, 0x0A, 0x07, 0x00, 0x00, 0xEA, 0x18, 0x00, 0x86, 0xE2 + .byte 0x8F, 0xE6, 0xFF, 0xEB, 0x0C, 0x00, 0x96, 0xE5, 0x01, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13 + .byte 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3, 0xF7, 0xFF, 0xFF, 0x1A, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x97, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1 + .byte 0xAD, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x14, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x08, 0x10, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1, 0x30, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x08, 0x00, 0x84, 0xE5, 0x0E, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x84, 0xE5, 0x0C, 0x10, 0x94, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x30, 0x10, 0xC1, 0xE3, 0x0C, 0x10, 0x84, 0xE5, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x8D, 0xE2, 0x43, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A + .byte 0x00, 0x10, 0x8D, 0xE2, 0x04, 0x00, 0xA0, 0xE1, 0x06, 0x00, 0x91, 0xE8, 0x08, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0xD0, 0x8D, 0x12, 0x01, 0x00, 0xA0, 0x13, 0x10, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0F, 0x00, 0x2D, 0xE9, 0x10, 0x40, 0x2D, 0xE9, 0x0C, 0x10, 0x9D, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 + .byte 0x10, 0xD0, 0x8D, 0x02, 0x1E, 0xFF, 0x2F, 0x01, 0x08, 0x10, 0x84, 0xE5, 0x0C, 0x30, 0x9D, 0xE5 + .byte 0x10, 0x20, 0x9D, 0xE5, 0x06, 0x10, 0xA0, 0xE3, 0x30, 0x30, 0x84, 0xE5, 0x34, 0x20, 0x84, 0xE5 + .byte 0xFE, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 + .byte 0x10, 0xD0, 0x8D, 0x02, 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x10, 0x94, 0xE5, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x10, 0x10, 0x81, 0xE3, 0x0C, 0x10, 0x84, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x20, 0x10, 0xC1, 0xE3 + .byte 0x0C, 0x10, 0x84, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x10, 0x84, 0xE5, 0x08, 0xC0, 0x9D, 0xE5 + .byte 0x07, 0x10, 0xA0, 0xE3, 0x38, 0xC0, 0x84, 0xE5, 0x30, 0x20, 0x84, 0xE5, 0x34, 0x30, 0x84, 0xE5 + .byte 0xE6, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x10, 0x94, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x10, 0x10, 0x81, 0xE3 + .byte 0x0C, 0x10, 0x84, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x20, 0x10, 0xC1, 0xE3, 0x0C, 0x10, 0x84, 0xE5 + .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9, 0x4C, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x50, 0xA0, 0xE1, 0x00, 0x00, 0x8D, 0xE2, 0x01, 0x40, 0xA0, 0xE1, 0x84, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x27, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 + .byte 0x4C, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x2C, 0x40, 0x97, 0xE5, 0x28, 0x00, 0x97, 0xE5 + .byte 0x02, 0x60, 0xA0, 0xE1, 0x30, 0x10, 0x87, 0xE5, 0x04, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x56, 0xE1 + .byte 0x00, 0x60, 0xA0, 0xC1, 0x00, 0x00, 0x56, 0xE3, 0x00, 0x60, 0xA0, 0xB3, 0x34, 0x20, 0x87, 0xE5 + .byte 0x03, 0x50, 0xA0, 0xE1, 0x38, 0x60, 0x87, 0xE5, 0x00, 0x00, 0x55, 0xE3, 0x0C, 0x00, 0x97, 0x05 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x80, 0x03, 0x0C, 0x00, 0x87, 0x05, 0x07, 0x00, 0xA0, 0xE1 + .byte 0xB2, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x45, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2C, 0x00, 0x97, 0x15, 0x04, 0x60, 0x40, 0x10 + .byte 0x00, 0x60, 0xE0, 0x03, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x10, 0xD0, 0x4D, 0xE2, 0x01, 0x70, 0xA0, 0xE1 + .byte 0x00, 0x10, 0xD7, 0xE5, 0x00, 0x80, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1 + .byte 0x2F, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x5C, 0x00, 0x51, 0xE3, 0x08, 0x00, 0x00, 0x1A + .byte 0x28, 0x01, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xB4, 0x10, 0xCD, 0xE1 + .byte 0x00, 0x00, 0x8D, 0xE5, 0x08, 0x10, 0x8D, 0xE5, 0xB6, 0x10, 0xCD, 0xE1, 0x01, 0x70, 0x87, 0xE2 + .byte 0x2E, 0x00, 0x00, 0xEA, 0x04, 0x01, 0x9F, 0xE5, 0x00, 0x30, 0x8D, 0xE2, 0x07, 0x00, 0x90, 0xE8 + .byte 0x07, 0x00, 0x83, 0xE8, 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xD7, 0xE7, 0x00, 0x00, 0x50, 0xE3 + .byte 0x26, 0x00, 0x00, 0x0A, 0x2F, 0x00, 0x50, 0xE3, 0x24, 0x00, 0x00, 0x0A, 0x5C, 0x00, 0x50, 0xE3 + .byte 0x22, 0x00, 0x00, 0x0A, 0x3A, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x1A, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x5F, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x10, 0xD0, 0x8D, 0x02 + .byte 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x1C, 0x10, 0x90, 0xE5 + .byte 0x02, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3 + .byte 0x10, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x08, 0x10, 0x8D, 0xE5, 0xB6, 0x10, 0xCD, 0xE1 + .byte 0xB4, 0x10, 0xCD, 0xE1, 0x01, 0x00, 0x84, 0xE2, 0x00, 0x00, 0xF7, 0xE7, 0x2F, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0x00, 0x0A, 0x5C, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x01, 0x70, 0x87, 0xE2 + .byte 0x02, 0x00, 0x00, 0xEA, 0x01, 0x40, 0x84, 0xE2, 0x03, 0x00, 0x54, 0xE3, 0xD5, 0xFF, 0xFF, 0xDA + .byte 0x00, 0x10, 0x9D, 0xE5, 0x00, 0x00, 0x8D, 0xE2, 0x08, 0x10, 0x88, 0xE5, 0x3C, 0x70, 0x88, 0xE5 + .byte 0x30, 0x30, 0x88, 0xE2, 0x07, 0x00, 0x90, 0xE8, 0x07, 0x00, 0x83, 0xE8, 0x00, 0x00, 0x55, 0xE3 + .byte 0x01, 0x00, 0xA0, 0x13, 0x40, 0x00, 0x88, 0x15, 0x44, 0x50, 0x88, 0x15, 0x00, 0x00, 0xA0, 0x03 + .byte 0x40, 0x00, 0x88, 0x05, 0x08, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x44, 0x60, 0x88, 0x05 + .byte 0x52, 0xFD, 0xFF, 0xEB, 0x10, 0xD0, 0x8D, 0xE2, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xEC, 0x53, 0x1D, 0x02, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0x80, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0x0E, 0x10, 0xA0, 0xE3, 0x04, 0x20, 0x80, 0xE5, 0x1C, 0x30, 0x80, 0xE5, 0x1C, 0x20, 0x90, 0xE5 + .byte 0x18, 0x20, 0x80, 0xE5, 0x08, 0x30, 0x80, 0xE5, 0x10, 0x10, 0x80, 0xE5, 0x0C, 0x30, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xF8, 0x53, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5, 0x20, 0x00, 0x00, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF8, 0x53, 0x1D, 0x02 + .byte 0x10, 0xC0, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1, 0x08, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x10, 0xA0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0x84, 0x0D, 0x0D, 0x02, 0x14, 0x54, 0x1D, 0x02 + .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x74, 0xED, 0xFF, 0xEB, 0x00, 0x50, 0xA0, 0xE1 + .byte 0x34, 0x10, 0x9F, 0xE5, 0x34, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0x91, 0xE5, 0xC2, 0xFB, 0xFF, 0xEB + .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x60, 0x81, 0xE5, 0x01, 0x00, 0x00, 0x0A + .byte 0x18, 0x00, 0x9F, 0xE5, 0x9D, 0xFB, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x6C, 0xED, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x54, 0x1D, 0x02 + .byte 0x14, 0x54, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x14, 0xD0, 0x4D, 0xE2, 0x54, 0x11, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x81, 0xE5, 0xC1, 0xE0, 0xFF, 0xEB, 0x4C, 0x31, 0x9F, 0xE5, 0x4C, 0x21, 0x9F, 0xE5 + .byte 0x00, 0xC0, 0xA0, 0xE3, 0x48, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0x83, 0xE5, 0x00, 0xC0, 0x82, 0xE5 + .byte 0x04, 0xC0, 0x82, 0xE5, 0x00, 0xC0, 0x81, 0xE5, 0x04, 0xC0, 0x81, 0xE5, 0x19, 0x15, 0x00, 0xEB + .byte 0x30, 0x01, 0x9F, 0xE5, 0xF3, 0xFC, 0xFF, 0xEB, 0x28, 0x01, 0x9F, 0xE5, 0x28, 0x11, 0x9F, 0xE5 + .byte 0x03, 0x20, 0xA0, 0xE3, 0xAB, 0xFC, 0xFF, 0xEB, 0x20, 0x01, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1 + .byte 0x02, 0x00, 0x50, 0xE3, 0x18, 0x00, 0x00, 0x1A, 0x00, 0xC1, 0x9F, 0xE5, 0x00, 0x20, 0xE0, 0xE3 + .byte 0xFC, 0x30, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0xF8, 0x00, 0x9F, 0xE5, 0x00, 0x11, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x8C, 0xE5, 0x04, 0xE0, 0x8C, 0xE5, 0x00, 0x20, 0x83, 0xE5, 0x04, 0xE0, 0x83, 0xE5 + .byte 0x6A, 0xFB, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x8D, 0xE5, 0xE4, 0x00, 0x9F, 0xE5 + .byte 0x04, 0x10, 0x8D, 0xE5, 0x08, 0x00, 0x8D, 0xE5, 0xDC, 0xC0, 0x9F, 0xE5, 0xC4, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE1, 0x0C, 0xC0, 0x8D, 0xE5, 0x4D, 0xFC, 0xFF, 0xEB + .byte 0x14, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xBC, 0x50, 0x9F, 0xE5 + .byte 0xA0, 0x00, 0x9F, 0xE5, 0xB8, 0x10, 0x9F, 0xE5, 0xB8, 0x20, 0x9F, 0xE5, 0xB8, 0x40, 0x9F, 0xE5 + .byte 0x56, 0xFB, 0xFF, 0xEB, 0x00, 0x10, 0x95, 0xE5, 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + .byte 0x14, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x51, 0xE3 + .byte 0x14, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x20, 0x94, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE1, 0x14, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x00, 0x00, 0x52, 0xE3, 0x14, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x00, 0x10, 0x8D, 0xE5, 0x04, 0x00, 0x95, 0xE5, 0x60, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0x8D, 0xE5 + .byte 0x44, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0x8D, 0xE5, 0x0C, 0x00, 0x8D, 0xE5, 0x04, 0x30, 0x94, 0xE5 + .byte 0x20, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x26, 0xFC, 0xFF, 0xEB, 0x14, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x54, 0x1D, 0x02, 0xFC, 0x53, 0x1D, 0x02 + .byte 0x04, 0x54, 0x1D, 0x02, 0x0C, 0x54, 0x1D, 0x02, 0x14, 0x54, 0x1D, 0x02, 0x30, 0x68, 0x10, 0x02 + .byte 0x40, 0xFC, 0x7F, 0x02, 0x24, 0x1F, 0x0D, 0x02, 0x2C, 0x1F, 0x0D, 0x02, 0xC4, 0x1F, 0x0D, 0x02 + .byte 0x40, 0xFE, 0x7F, 0x02, 0x34, 0x1F, 0x0D, 0x02, 0x02, 0x06, 0x00, 0x00, 0x48, 0xFE, 0x7F, 0x02 + .byte 0xCC, 0x1F, 0x0D, 0x02, 0x04, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x00, 0x51, 0xE3 + .byte 0x16, 0x00, 0x00, 0x0A, 0x09, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x51, 0xE3 + .byte 0x09, 0x00, 0x00, 0x0A, 0x15, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0xDC, 0x11, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x3C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0xCB, 0x11, 0x00, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x08, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xFC, 0x53, 0x1D, 0x02, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x0C, 0xD0, 0x4D, 0xE2, 0x34, 0xC0, 0x9F, 0xE5, 0x01, 0xE0, 0xA0, 0xE1, 0x00, 0xC0, 0x8D, 0xE5 + .byte 0x04, 0x00, 0x8D, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x24, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0x8D, 0xE5 + .byte 0x02, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x0E, 0x20, 0xA0, 0xE1, 0xAA, 0x14, 0x00, 0xEB + .byte 0x06, 0x00, 0xA0, 0xE3, 0x0C, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x18, 0x20, 0x0D, 0x02, 0x00, 0x54, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x3C, 0x17, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03 + .byte 0x04, 0x00, 0xA0, 0xE1, 0xC1, 0xFA, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x2C, 0xD0, 0x4D, 0xE2, 0x00, 0x30, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x8D, 0xE2, 0x03, 0x10, 0xA0, 0xE1, 0x23, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2, 0x20, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x1A, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x2C, 0xD0, 0x4D, 0xE2, 0x00, 0x30, 0xA0, 0xE1 + .byte 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x00, 0x8D, 0xE2, 0x03, 0x10, 0xA0, 0xE1, 0x0E, 0x01, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2, 0xBC, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x8D, 0xE2, 0x4B, 0x00, 0x00, 0xEB + .byte 0x01, 0x00, 0xA0, 0xE3, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x03, 0x00, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x4F, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0xF0, 0x80, 0x9F, 0xE5, 0x00, 0xB0, 0xA0, 0xE1, 0x00, 0x90, 0xA0, 0xE3 + .byte 0x08, 0x10, 0x9B, 0xE5, 0x0C, 0x00, 0x9B, 0xE5, 0x04, 0x50, 0x9B, 0xE5, 0x00, 0x00, 0x81, 0xE0 + .byte 0x09, 0x70, 0xA0, 0xE1, 0x09, 0x60, 0xA0, 0xE1, 0x00, 0x40, 0x85, 0xE0, 0x73, 0xEC, 0xFF, 0xEB + .byte 0x00, 0xE0, 0x98, 0xE5, 0x09, 0xA0, 0xA0, 0xE1, 0x0E, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x5E, 0xE3 + .byte 0x1B, 0x00, 0x00, 0x0A, 0x08, 0x20, 0x9C, 0xE5, 0x00, 0x30, 0x9C, 0xE5, 0x00, 0x00, 0x52, 0xE3 + .byte 0x04, 0x10, 0x9C, 0xE5, 0x03, 0x00, 0x00, 0x1A, 0x05, 0x00, 0x51, 0xE1, 0x01, 0x00, 0x00, 0x3A + .byte 0x04, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x00, 0x3A, 0x05, 0x00, 0x52, 0xE1, 0x0C, 0x00, 0x00, 0x3A + .byte 0x04, 0x00, 0x52, 0xE1, 0x0A, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x56, 0xE3, 0x00, 0xC0, 0x86, 0x15 + .byte 0x0C, 0x70, 0xA0, 0x01, 0x0C, 0x00, 0x5E, 0xE1, 0x00, 0x30, 0x88, 0x05, 0x03, 0xE0, 0xA0, 0x01 + .byte 0x00, 0x90, 0x8C, 0xE5, 0x00, 0x00, 0x5A, 0xE3, 0x0C, 0x60, 0xA0, 0xE1, 0x00, 0x30, 0x8A, 0x15 + .byte 0x00, 0x00, 0x00, 0xEA, 0x0C, 0xA0, 0xA0, 0xE1, 0x03, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x53, 0xE3 + .byte 0xE3, 0xFF, 0xFF, 0x1A, 0x56, 0xEC, 0xFF, 0xEB, 0x00, 0x00, 0x57, 0xE3, 0x04, 0xD0, 0x8D, 0x02 + .byte 0xF0, 0x4F, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x10, 0x97, 0xE5, 0x00, 0x40, 0x97, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x97, 0xE5, 0x31, 0xFF, 0x2F, 0xE1 + .byte 0x04, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0x54, 0xE3, 0xF6, 0xFF, 0xFF, 0x1A, 0xC7, 0xFF, 0xFF, 0xEA + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xC8, 0x74, 0x1D, 0x02 + .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x57, 0x01, 0x00, 0xEB, 0xDC, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0xB0, 0x00, 0xD1, 0xE1, 0x02, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x00, 0x1A + .byte 0x1F, 0x10, 0xD5, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x02, 0x10, 0x11, 0xE2, 0x0F, 0x00, 0x00, 0x0A + .byte 0xBC, 0x10, 0x9F, 0xE5, 0xBC, 0x30, 0x9F, 0xE5, 0xBC, 0x20, 0x9F, 0xE5, 0x03, 0xC0, 0x41, 0xE0 + .byte 0x92, 0x1C, 0xCE, 0xE0, 0xCE, 0xE1, 0xA0, 0xE1, 0xAC, 0x1F, 0xA0, 0xE1, 0x00, 0x20, 0x95, 0xE5 + .byte 0x0E, 0xE0, 0x81, 0xE0, 0x0E, 0x00, 0x52, 0xE1, 0x04, 0x00, 0x00, 0x2A, 0x14, 0x00, 0xA0, 0xE3 + .byte 0x92, 0x30, 0x20, 0xE0, 0x04, 0x10, 0x95, 0xE5, 0x04, 0x20, 0xA0, 0xE1, 0x23, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x95, 0xE5, 0x04, 0x20, 0xA0, 0xE1 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x2C, 0xF0, 0xFF, 0xEB, 0x6C, 0xED, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1F, 0x00, 0xD5, 0xE5, 0x01, 0x00, 0x10, 0xE2, 0x02, 0x00, 0x00, 0x0A + .byte 0x04, 0x00, 0x95, 0xE5, 0x04, 0x00, 0x80, 0xE0, 0xA4, 0xB9, 0xFC, 0xEB, 0x04, 0x00, 0x95, 0xE5 + .byte 0x08, 0x10, 0x95, 0xE5, 0xA4, 0xE7, 0xFF, 0xEB, 0x10, 0x60, 0x95, 0xE5, 0x14, 0x40, 0x95, 0xE5 + .byte 0x04, 0x00, 0x56, 0xE1, 0x70, 0x40, 0xBD, 0x28, 0x1E, 0xFF, 0x2F, 0x21, 0x00, 0x00, 0x96, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x0A, 0x30, 0xFF, 0x2F, 0xE1, 0x04, 0x60, 0x86, 0xE2 + .byte 0x04, 0x00, 0x56, 0xE1, 0xF8, 0xFF, 0xFF, 0x3A, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x40, 0xFC, 0x7F, 0x02, 0x84, 0x6F, 0x10, 0x02, 0x84, 0x6F, 0x10, 0x02, 0x67, 0x66, 0x66, 0x66 + .byte 0x70, 0x40, 0x2D, 0xE9, 0x58, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1 + .byte 0x02, 0x50, 0xA0, 0xE1, 0x04, 0x00, 0x8D, 0xE2, 0x00, 0x10, 0xA0, 0xE3, 0x14, 0x20, 0xA0, 0xE3 + .byte 0x05, 0xF0, 0xFF, 0xEB, 0x70, 0x00, 0x9F, 0xE5, 0x70, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x20, 0x91, 0xE5, 0x18, 0x10, 0x8D, 0xE2, 0x24, 0xF0, 0xFF, 0xEB, 0x5C, 0x30, 0x9F, 0xE5 + .byte 0x06, 0x10, 0xA0, 0xE1, 0x00, 0xC0, 0x93, 0xE5, 0x05, 0x20, 0xA0, 0xE1, 0x04, 0x00, 0x8D, 0xE2 + .byte 0x18, 0x30, 0x8D, 0xE2, 0x00, 0xC0, 0x8D, 0xE5, 0x82, 0x02, 0x00, 0xEB, 0x04, 0x20, 0x8D, 0xE2 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x92, 0xE5, 0x03, 0x00, 0x94, 0xE7, 0x00, 0x00, 0x51, 0xE1 + .byte 0x03, 0x00, 0x00, 0x1A, 0x04, 0x30, 0x83, 0xE2, 0x14, 0x00, 0x53, 0xE3, 0x04, 0x20, 0x82, 0xE2 + .byte 0xF7, 0xFF, 0xFF, 0x3A, 0x14, 0x00, 0x53, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 + .byte 0x58, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x34, 0x68, 0x10, 0x02 + .byte 0x38, 0x68, 0x10, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x54, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1 + .byte 0x08, 0x00, 0x8D, 0xE2, 0x32, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1 + .byte 0xCE, 0x00, 0x00, 0xEB, 0x00, 0x10, 0x8D, 0xE2, 0x08, 0x00, 0x8D, 0xE2, 0x06, 0x00, 0x91, 0xE8 + .byte 0x6B, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x54, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 + .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x00, 0xA0, 0xE1, 0xDE, 0x00, 0x00, 0xEB + .byte 0x00, 0x40, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0xCA, 0x00, 0x00, 0xEB, 0x04, 0x10, 0x95, 0xE5 + .byte 0x08, 0x00, 0x8D, 0xE2, 0x04, 0x20, 0xA0, 0xE1, 0xFB, 0xFC, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE1 + .byte 0x05, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x8D, 0xE2, 0x33, 0xFD, 0xFF, 0xEB, 0x54, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x8D, 0xE2 + .byte 0x2D, 0xFD, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x54, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x01, 0x50, 0xA0, 0xE1 + .byte 0x00, 0x60, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x09, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x8D, 0xE2 + .byte 0x06, 0x10, 0xA0, 0xE1, 0xA5, 0x00, 0x00, 0xEB, 0x00, 0x10, 0x8D, 0xE2, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x06, 0x00, 0x91, 0xE8, 0x42, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0xD0, 0x8D, 0x02 + .byte 0x00, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x06, 0x00, 0xA0, 0xE1 + .byte 0xB5, 0x00, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE1, 0xA1, 0x00, 0x00, 0xEB + .byte 0x04, 0x10, 0x96, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0xD6, 0xFC, 0xFF, 0xEB + .byte 0x00, 0x00, 0x54, 0xE1, 0x08, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x00, 0xA0, 0xE1, 0x07, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x64, 0xD0, 0x4D, 0xE2, 0x01, 0x40, 0xB0, 0xE1, 0x00, 0x50, 0xA0, 0xE1, 0xE8, 0x00, 0x9F, 0x05 + .byte 0xE8, 0x00, 0x9F, 0x15, 0x00, 0x30, 0x90, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x25, 0x00, 0x00, 0x0A + .byte 0x04, 0x00, 0x90, 0xE5, 0x82, 0x22, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE1, 0x64, 0xD0, 0x8D, 0x22 + .byte 0x00, 0x00, 0xA0, 0x23, 0x30, 0x40, 0xBD, 0x28, 0x1E, 0xFF, 0x2F, 0x21, 0x02, 0x00, 0x83, 0xE0 + .byte 0x05, 0x10, 0xA0, 0xE1, 0x20, 0x20, 0xA0, 0xE3, 0xA8, 0xEF, 0xFF, 0xEB, 0x18, 0x00, 0x8D, 0xE2 + .byte 0x20, 0x40, 0x85, 0xE5, 0xD2, 0xFD, 0xFF, 0xEB, 0x10, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x6E, 0x00, 0x00, 0xEB, 0x10, 0x10, 0x8D, 0xE2, 0x18, 0x00, 0x8D, 0xE2, 0x06, 0x00, 0x91, 0xE8 + .byte 0x0B, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x64, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 + .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x3C, 0x10, 0x9D, 0xE5, 0x18, 0x00, 0x8D, 0xE2 + .byte 0x24, 0x10, 0x85, 0xE5, 0x40, 0x20, 0x9D, 0xE5, 0x3C, 0x10, 0x9D, 0xE5, 0x01, 0x10, 0x42, 0xE0 + .byte 0x28, 0x10, 0x85, 0xE5, 0xD8, 0xFC, 0xFF, 0xEB, 0x64, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x44, 0x10, 0x9F, 0xE5, 0x44, 0xC0, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0x40, 0x30, 0x9F, 0xE5, 0x00, 0x00, 0x8D, 0xE5, 0x04, 0x10, 0x91, 0xE5 + .byte 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0x8D, 0xE5, 0x00, 0x50, 0x9C, 0xE5, 0x04, 0x10, 0xA0, 0xE1 + .byte 0x08, 0x50, 0x8D, 0xE5, 0x04, 0x40, 0x9C, 0xE5, 0x0C, 0x40, 0x8D, 0xE5, 0x07, 0x00, 0x00, 0xEB + .byte 0x64, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x54, 0x1D, 0x02 + .byte 0x0C, 0x54, 0x1D, 0x02, 0x50, 0xFE, 0x7F, 0x02, 0x58, 0xFE, 0x7F, 0x02, 0x14, 0x54, 0x1D, 0x02 + .byte 0xF0, 0x43, 0x2D, 0xE9, 0x54, 0xD0, 0x4D, 0xE2, 0x01, 0x90, 0xB0, 0xE1, 0x74, 0x50, 0x9D, 0x05 + .byte 0x70, 0x60, 0x9D, 0x05, 0x7C, 0x50, 0x9D, 0x15, 0x78, 0x60, 0x9D, 0x15, 0x82, 0x72, 0xA0, 0xE1 + .byte 0x05, 0x00, 0x57, 0xE1, 0x00, 0x40, 0xA0, 0xE1, 0x03, 0x80, 0xA0, 0xE1, 0x54, 0xD0, 0x8D, 0x22 + .byte 0x00, 0x00, 0xA0, 0x23, 0xF0, 0x43, 0xBD, 0x28, 0x1E, 0xFF, 0x2F, 0x21, 0x0C, 0x00, 0x8D, 0xE2 + .byte 0x93, 0xFD, 0xFF, 0xEB, 0x00, 0xC0, 0xE0, 0xE3, 0x0C, 0x00, 0x8D, 0xE2, 0x08, 0x10, 0xA0, 0xE1 + .byte 0x07, 0x20, 0x86, 0xE0, 0x05, 0x30, 0x86, 0xE0, 0x00, 0xC0, 0x8D, 0xE5, 0xEB, 0xFC, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x54, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x43, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x20, 0x20, 0xA0, 0xE3 + .byte 0x61, 0xFC, 0xFF, 0xEB, 0x20, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0x8D, 0xE2 + .byte 0x99, 0xFC, 0xFF, 0xEB, 0x54, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x43, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x00, 0x8D, 0xE2, 0x93, 0xFC, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE2 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x20, 0x90, 0x84, 0xE5, 0x14, 0x00, 0x00, 0xEB, 0x04, 0x10, 0x8D, 0xE2 + .byte 0x0C, 0x00, 0x8D, 0xE2, 0x06, 0x00, 0x91, 0xE8, 0xB1, 0xFC, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x54, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x43, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x30, 0x10, 0x9D, 0xE5, 0x0C, 0x00, 0x8D, 0xE2, 0x24, 0x10, 0x84, 0xE5, 0x34, 0x20, 0x9D, 0xE5 + .byte 0x30, 0x10, 0x9D, 0xE5, 0x01, 0x10, 0x42, 0xE0, 0x28, 0x10, 0x84, 0xE5, 0x7E, 0xFC, 0xFF, 0xEB + .byte 0x01, 0x00, 0xA0, 0xE3, 0x54, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x08, 0xD0, 0x4D, 0xE2, 0x18, 0x20, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE5, 0x18, 0x10, 0x91, 0xE5 + .byte 0x04, 0x10, 0x8D, 0xE5, 0x00, 0x20, 0x80, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x08, 0xD0, 0x8D, 0xE2 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x14, 0x54, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x08, 0x50, 0x90, 0xE5 + .byte 0x0C, 0x10, 0x90, 0xE5, 0x04, 0x60, 0x90, 0xE5, 0x01, 0x40, 0x85, 0xE0, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x8F, 0xE6, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1 + .byte 0x6F, 0xE6, 0xFF, 0xEB, 0x05, 0x00, 0x86, 0xE0, 0x05, 0x20, 0x44, 0xE0, 0x00, 0x10, 0xA0, 0xE3 + .byte 0xF5, 0xEE, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x1F, 0x10, 0xD0, 0xE5 + .byte 0x01, 0x10, 0x11, 0xE2, 0x1C, 0x00, 0x90, 0x15, 0x00, 0x04, 0xA0, 0x11, 0x20, 0x04, 0xA0, 0x11 + .byte 0x08, 0x00, 0x90, 0x05, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x4F, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x18, 0x30, 0x80, 0xE2, 0x00, 0x50, 0x90, 0xE5, 0x04, 0x40, 0x90, 0xE5, 0x08, 0xE0, 0x90, 0xE5 + .byte 0x0C, 0xC0, 0x90, 0xE5, 0xBC, 0x23, 0x9F, 0xE5, 0x03, 0x80, 0xA0, 0xE1, 0x00, 0x70, 0xA0, 0xE3 + .byte 0x04, 0x10, 0xE0, 0xE1, 0x0E, 0x60, 0x04, 0xE0, 0x0C, 0x10, 0x01, 0xE0, 0x01, 0x10, 0x86, 0xE1 + .byte 0x00, 0x60, 0x98, 0xE5, 0x01, 0x10, 0x85, 0xE0, 0x00, 0x50, 0x92, 0xE5, 0x01, 0x10, 0x86, 0xE0 + .byte 0x01, 0x50, 0x85, 0xE0, 0x85, 0x13, 0xA0, 0xE1, 0xA5, 0x1C, 0x81, 0xE1, 0x01, 0x50, 0x84, 0xE0 + .byte 0x05, 0x10, 0xE0, 0xE1, 0x04, 0x60, 0x05, 0xE0, 0x0E, 0x10, 0x01, 0xE0, 0x01, 0x10, 0x86, 0xE1 + .byte 0x04, 0x60, 0x98, 0xE5, 0x01, 0x10, 0x8C, 0xE0, 0x04, 0x90, 0x92, 0xE5, 0x01, 0x10, 0x86, 0xE0 + .byte 0x01, 0x60, 0x89, 0xE0, 0x06, 0x16, 0xA0, 0xE1, 0x26, 0x1A, 0x81, 0xE1, 0x01, 0xC0, 0x85, 0xE0 + .byte 0x0C, 0x10, 0xE0, 0xE1, 0x05, 0x60, 0x0C, 0xE0, 0x04, 0x10, 0x01, 0xE0, 0x01, 0x60, 0x86, 0xE1 + .byte 0x0C, 0x10, 0x88, 0xE2, 0x08, 0x90, 0x98, 0xE5, 0x06, 0x60, 0x8E, 0xE0, 0x06, 0x60, 0x89, 0xE0 + .byte 0x08, 0x90, 0x92, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x06, 0xA0, 0x89, 0xE0, 0x0C, 0x60, 0x82, 0xE2 + .byte 0x00, 0x60, 0x96, 0xE5, 0x8A, 0x98, 0xA0, 0xE1, 0xAA, 0x97, 0x89, 0xE1, 0x09, 0xE0, 0x8C, 0xE0 + .byte 0x10, 0x20, 0x82, 0xE2, 0x10, 0x80, 0x88, 0xE2, 0x0C, 0xA0, 0x0E, 0xE0, 0x0E, 0x90, 0xE0, 0xE1 + .byte 0x05, 0x90, 0x09, 0xE0, 0x09, 0x90, 0x8A, 0xE1, 0x09, 0x40, 0x84, 0xE0, 0x04, 0x10, 0x81, 0xE0 + .byte 0x01, 0x40, 0x86, 0xE0, 0x04, 0x1B, 0xA0, 0xE1, 0x24, 0x15, 0x81, 0xE1, 0x01, 0x40, 0x8E, 0xE0 + .byte 0x01, 0x70, 0x87, 0xE2, 0x04, 0x00, 0x57, 0xE3, 0xC8, 0xFF, 0xFF, 0xBA, 0xD8, 0x62, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x0C, 0x70, 0xE0, 0xE1, 0x00, 0x90, 0x96, 0xE5, 0x0C, 0x80, 0x04, 0xE0 + .byte 0x07, 0x70, 0x0E, 0xE0, 0x07, 0x70, 0x88, 0xE1, 0x09, 0x81, 0x93, 0xE7, 0x07, 0x50, 0x85, 0xE0 + .byte 0x00, 0x70, 0x92, 0xE5, 0x05, 0x50, 0x88, 0xE0, 0x05, 0x70, 0x87, 0xE0, 0x87, 0x52, 0xA0, 0xE1 + .byte 0xA7, 0x5D, 0x85, 0xE1, 0x05, 0x50, 0x84, 0xE0, 0x0E, 0x80, 0xE0, 0xE1, 0x04, 0x70, 0x96, 0xE5 + .byte 0x0E, 0x90, 0x05, 0xE0, 0x08, 0x80, 0x04, 0xE0, 0x08, 0xA0, 0x89, 0xE1, 0x04, 0x80, 0xE0, 0xE1 + .byte 0x08, 0x90, 0x96, 0xE5, 0x07, 0xB1, 0x93, 0xE7, 0x0A, 0x70, 0x8C, 0xE0, 0x07, 0xA0, 0x8B, 0xE0 + .byte 0x0C, 0x70, 0x86, 0xE2, 0x09, 0x91, 0x93, 0xE7, 0x08, 0x80, 0x05, 0xE0, 0x00, 0x70, 0x97, 0xE5 + .byte 0x04, 0xB0, 0x92, 0xE5, 0x07, 0x71, 0x93, 0xE7, 0x0A, 0xB0, 0x8B, 0xE0, 0x8B, 0xA4, 0xA0, 0xE1 + .byte 0xAB, 0xAB, 0x8A, 0xE1, 0x0A, 0xC0, 0x85, 0xE0, 0x08, 0xA0, 0x92, 0xE5, 0x04, 0xB0, 0x0C, 0xE0 + .byte 0x08, 0x80, 0x8B, 0xE1, 0x08, 0x80, 0x8E, 0xE0, 0x08, 0x80, 0x89, 0xE0, 0x08, 0xA0, 0x8A, 0xE0 + .byte 0x0C, 0x80, 0x82, 0xE2, 0x00, 0x80, 0x98, 0xE5, 0x0A, 0x97, 0xA0, 0xE1, 0x2A, 0x99, 0x89, 0xE1 + .byte 0x09, 0xE0, 0x8C, 0xE0, 0x10, 0x20, 0x82, 0xE2, 0x10, 0x60, 0x86, 0xE2, 0x05, 0xA0, 0x0E, 0xE0 + .byte 0x05, 0x90, 0xE0, 0xE1, 0x09, 0x90, 0x0C, 0xE0, 0x09, 0x90, 0x8A, 0xE1, 0x09, 0x40, 0x84, 0xE0 + .byte 0x04, 0x40, 0x87, 0xE0, 0x04, 0x70, 0x88, 0xE0, 0x07, 0x4A, 0xA0, 0xE1, 0x27, 0x46, 0x84, 0xE1 + .byte 0x04, 0x40, 0x8E, 0xE0, 0x01, 0x10, 0x81, 0xE2, 0x04, 0x00, 0x51, 0xE3, 0xC4, 0xFF, 0xFF, 0xBA + .byte 0x00, 0x70, 0xA0, 0xE3, 0x00, 0x80, 0x96, 0xE5, 0x0E, 0x10, 0x24, 0xE0, 0x01, 0x10, 0x2C, 0xE0 + .byte 0x01, 0x10, 0x85, 0xE0, 0x08, 0x81, 0x93, 0xE7, 0x00, 0x50, 0x92, 0xE5, 0x01, 0x10, 0x88, 0xE0 + .byte 0x01, 0x50, 0x85, 0xE0, 0x05, 0x12, 0xA0, 0xE1, 0x25, 0x1E, 0x81, 0xE1, 0x01, 0x50, 0x84, 0xE0 + .byte 0x04, 0x80, 0x96, 0xE5, 0x04, 0x10, 0x25, 0xE0, 0x01, 0x10, 0x2E, 0xE0, 0x08, 0x81, 0x93, 0xE7 + .byte 0x01, 0x10, 0x8C, 0xE0, 0x08, 0x90, 0x96, 0xE5, 0x04, 0xA0, 0x92, 0xE5, 0x01, 0x10, 0x88, 0xE0 + .byte 0x01, 0x80, 0x8A, 0xE0, 0x88, 0x15, 0xA0, 0xE1, 0xA8, 0x1A, 0x81, 0xE1, 0x01, 0xC0, 0x85, 0xE0 + .byte 0x05, 0x80, 0x2C, 0xE0, 0x08, 0x80, 0x24, 0xE0, 0x09, 0x91, 0x93, 0xE7, 0x08, 0x80, 0x8E, 0xE0 + .byte 0x08, 0x90, 0x89, 0xE0, 0x08, 0xA0, 0x92, 0xE5, 0x0C, 0x10, 0x82, 0xE2, 0x0C, 0x80, 0x96, 0xE5 + .byte 0x09, 0xA0, 0x8A, 0xE0, 0x08, 0x91, 0x93, 0xE7, 0x0A, 0x88, 0xA0, 0xE1, 0x2A, 0x88, 0x88, 0xE1 + .byte 0x08, 0xE0, 0x8C, 0xE0, 0x0C, 0x80, 0x2E, 0xE0, 0x08, 0x80, 0x25, 0xE0, 0x08, 0x40, 0x84, 0xE0 + .byte 0x01, 0x70, 0x87, 0xE2, 0x00, 0x10, 0x91, 0xE5, 0x04, 0x40, 0x89, 0xE0, 0x04, 0x40, 0x81, 0xE0 + .byte 0x84, 0x1B, 0xA0, 0xE1, 0xA4, 0x14, 0x81, 0xE1, 0x10, 0x20, 0x82, 0xE2, 0x10, 0x60, 0x86, 0xE2 + .byte 0x01, 0x40, 0x8E, 0xE0, 0x04, 0x00, 0x57, 0xE3, 0xCD, 0xFF, 0xFF, 0xBA, 0x00, 0xA0, 0xA0, 0xE3 + .byte 0x0C, 0x10, 0xE0, 0xE1, 0x00, 0x70, 0x96, 0xE5, 0x01, 0x10, 0x84, 0xE1, 0x01, 0x10, 0x2E, 0xE0 + .byte 0x07, 0x71, 0x93, 0xE7, 0x01, 0x10, 0x85, 0xE0, 0x00, 0x50, 0x92, 0xE5, 0x01, 0x10, 0x87, 0xE0 + .byte 0x01, 0x50, 0x85, 0xE0, 0x05, 0x13, 0xA0, 0xE1, 0x25, 0x1D, 0x81, 0xE1, 0x01, 0x50, 0x84, 0xE0 + .byte 0x0E, 0x10, 0xE0, 0xE1, 0x04, 0x70, 0x96, 0xE5, 0x01, 0x10, 0x85, 0xE1, 0x01, 0x10, 0x24, 0xE0 + .byte 0x08, 0x80, 0x96, 0xE5, 0x07, 0x71, 0x93, 0xE7, 0x01, 0x10, 0x8C, 0xE0, 0x04, 0x90, 0x92, 0xE5 + .byte 0x01, 0x10, 0x87, 0xE0, 0x01, 0x90, 0x89, 0xE0, 0x09, 0x75, 0xA0, 0xE1, 0x0C, 0x10, 0x86, 0xE2 + .byte 0x29, 0x9B, 0x87, 0xE1, 0x00, 0x10, 0x91, 0xE5, 0x0C, 0x70, 0x82, 0xE2, 0x09, 0xC0, 0x85, 0xE0 + .byte 0x08, 0x81, 0x93, 0xE7, 0x00, 0x70, 0x97, 0xE5, 0x01, 0x11, 0x93, 0xE7, 0x08, 0x90, 0x92, 0xE5 + .byte 0x04, 0xB0, 0xE0, 0xE1, 0x0B, 0xB0, 0x8C, 0xE1, 0x0B, 0xB0, 0x25, 0xE0, 0x0B, 0xB0, 0x8E, 0xE0 + .byte 0x0B, 0x80, 0x88, 0xE0, 0x08, 0x90, 0x89, 0xE0, 0x89, 0x87, 0xA0, 0xE1, 0xA9, 0x88, 0x88, 0xE1 + .byte 0x08, 0xE0, 0x8C, 0xE0, 0x10, 0x20, 0x82, 0xE2, 0x10, 0x60, 0x86, 0xE2, 0x05, 0x80, 0xE0, 0xE1 + .byte 0x08, 0x80, 0x8E, 0xE1, 0x08, 0x80, 0x2C, 0xE0, 0x08, 0x40, 0x84, 0xE0, 0x04, 0x10, 0x81, 0xE0 + .byte 0x01, 0x40, 0x87, 0xE0, 0x84, 0x1A, 0xA0, 0xE1, 0xA4, 0x15, 0x81, 0xE1, 0x01, 0x40, 0x8E, 0xE0 + .byte 0x01, 0xA0, 0x8A, 0xE2, 0x04, 0x00, 0x5A, 0xE3, 0xC8, 0xFF, 0xFF, 0xBA, 0x00, 0x10, 0x90, 0xE5 + .byte 0x05, 0x10, 0x81, 0xE0, 0x00, 0x10, 0x80, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x04, 0x10, 0x81, 0xE0 + .byte 0x04, 0x10, 0x80, 0xE5, 0x08, 0x10, 0x90, 0xE5, 0x0E, 0x10, 0x81, 0xE0, 0x08, 0x10, 0x80, 0xE5 + .byte 0x0C, 0x10, 0x90, 0xE5, 0x0C, 0x10, 0x81, 0xE0, 0x0C, 0x10, 0x80, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x69, 0x10, 0x02, 0x40, 0x68, 0x10, 0x02 + .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x60, 0xA0, 0xE1, 0x14, 0x10, 0x96, 0xE5 + .byte 0x10, 0x30, 0x96, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x81, 0x41, 0xA0, 0xE1, 0x9C, 0x10, 0x9F, 0xE5 + .byte 0x06, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE3, 0xA3, 0x4E, 0x84, 0xE1, 0x83, 0x51, 0xA0, 0xE1 + .byte 0x23, 0x00, 0x00, 0xEB, 0x10, 0x00, 0x96, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x3F, 0x30, 0x00, 0xE2 + .byte 0x40, 0x20, 0x63, 0xE2, 0x08, 0x00, 0x52, 0xE3, 0x06, 0x00, 0x00, 0x2A, 0x18, 0x00, 0x86, 0xE2 + .byte 0x03, 0x00, 0x80, 0xE0, 0xDC, 0xED, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0xED, 0xFE, 0xFF, 0xEB + .byte 0x00, 0x30, 0xA0, 0xE3, 0x40, 0x20, 0xA0, 0xE3, 0x08, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x9A + .byte 0x18, 0x00, 0x86, 0xE2, 0x03, 0x00, 0x80, 0xE0, 0x08, 0x20, 0x42, 0xE2, 0x00, 0x10, 0xA0, 0xE3 + .byte 0xD1, 0xED, 0xFF, 0xEB, 0x50, 0x50, 0x86, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0x54, 0x40, 0x86, 0xE5 + .byte 0xE0, 0xFE, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1, 0x10, 0x20, 0xA0, 0xE3 + .byte 0xEE, 0xED, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0x58, 0x20, 0xA0, 0xE3 + .byte 0xC5, 0xED, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x3C, 0x68, 0x10, 0x02, 0xF0, 0x43, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x80, 0xA0, 0xE1 + .byte 0x10, 0xC0, 0x88, 0xE2, 0x10, 0x40, 0x98, 0xE5, 0x02, 0x60, 0xA0, 0xE1, 0x3F, 0x30, 0x04, 0xE2 + .byte 0x04, 0x00, 0x9C, 0xE5, 0x06, 0x40, 0x94, 0xE0, 0x10, 0x40, 0x88, 0xE5, 0x00, 0x00, 0xA0, 0xE2 + .byte 0x40, 0x50, 0x63, 0xE2, 0x01, 0x70, 0xA0, 0xE1, 0x04, 0x00, 0x8C, 0xE5, 0x06, 0x00, 0x55, 0xE1 + .byte 0x0A, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x56, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x18, 0x10, 0x88, 0xE2, 0x07, 0x00, 0xA0, 0xE1, 0x03, 0x10, 0x81, 0xE0 + .byte 0xCE, 0xED, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x18, 0x10, 0x88, 0xE2, 0x07, 0x00, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x03, 0x10, 0x81, 0xE0 + .byte 0xC6, 0xED, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0xB2, 0xFE, 0xFF, 0xEB, 0x05, 0x60, 0x46, 0xE0 + .byte 0x26, 0x43, 0xA0, 0xE1, 0x00, 0x00, 0x54, 0xE3, 0x05, 0x90, 0x87, 0xE0, 0x0B, 0x00, 0x00, 0xDA + .byte 0x18, 0x70, 0x88, 0xE2, 0x40, 0x50, 0xA0, 0xE3, 0x09, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 + .byte 0x05, 0x20, 0xA0, 0xE1, 0xB9, 0xED, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0x40, 0x90, 0x89, 0xE2 + .byte 0xA4, 0xFE, 0xFF, 0xEB, 0x01, 0x40, 0x44, 0xE2, 0x00, 0x00, 0x54, 0xE3, 0xF5, 0xFF, 0xFF, 0xCA + .byte 0x3F, 0x20, 0x16, 0xE2, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x09, 0x00, 0xA0, 0xE1, 0x18, 0x10, 0x88, 0xE2, 0xAC, 0xED, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x28, 0x20, 0x9F, 0xE5, 0x28, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x80, 0xE5, 0x24, 0x20, 0x9F, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x20, 0x10, 0x9F, 0xE5 + .byte 0x08, 0x20, 0x80, 0xE5, 0x0C, 0x10, 0x80, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x10, 0x10, 0x80, 0xE5 + .byte 0x14, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF + .byte 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10, 0xF0, 0x41, 0x2D, 0xE9, 0xA0, 0xD0, 0x4D, 0xE2 + .byte 0x78, 0xE0, 0x9F, 0xE5, 0x1C, 0xC0, 0x8D, 0xE2, 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1 + .byte 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1, 0x0C, 0x40, 0xA0, 0xE1, 0x0F, 0x00, 0xBE, 0xE8 + .byte 0x0F, 0x00, 0xAC, 0xE8, 0x07, 0x00, 0x9E, 0xE8, 0x07, 0x00, 0x8C, 0xE8, 0x38, 0xE0, 0x8D, 0xE2 + .byte 0x08, 0xC0, 0x8D, 0xE2, 0x24, 0xE0, 0x8D, 0xE5, 0x44, 0xE0, 0x9F, 0xE5, 0x28, 0xC0, 0x8D, 0xE5 + .byte 0x40, 0xC0, 0x9F, 0xE5, 0x2C, 0xE0, 0x8D, 0xE5, 0x3C, 0xE0, 0x9F, 0xE5, 0x30, 0xC0, 0x8D, 0xE5 + .byte 0xB8, 0xC0, 0x9D, 0xE5, 0x34, 0xE0, 0x8D, 0xE5, 0x00, 0xC0, 0x8D, 0xE5, 0x05, 0x30, 0xA0, 0xE1 + .byte 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0x04, 0x40, 0x8D, 0xE5 + .byte 0xF0, 0x00, 0x00, 0xEB, 0xA0, 0xD0, 0x8D, 0xE2, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x04, 0x6A, 0x10, 0x02, 0x68, 0x31, 0x0D, 0x02, 0x0C, 0x30, 0x0D, 0x02, 0x10, 0x2E, 0x0D, 0x02 + .byte 0x0F, 0x00, 0x2D, 0xE9, 0x70, 0x40, 0x2D, 0xE9, 0x10, 0x00, 0x9D, 0xE5, 0x01, 0x60, 0xA0, 0xE1 + .byte 0x1C, 0x30, 0x90, 0xE5, 0x20, 0x50, 0x80, 0xE2, 0x03, 0x10, 0x13, 0xE2, 0x43, 0x01, 0xA0, 0xE1 + .byte 0x00, 0x10, 0xA0, 0x03, 0x00, 0x11, 0x85, 0x07, 0x10, 0x20, 0x9D, 0xE5, 0x80, 0x10, 0xA0, 0xE3 + .byte 0x20, 0x40, 0x82, 0xE2, 0x03, 0x10, 0xC4, 0xE7, 0x01, 0x30, 0x83, 0xE2, 0x03, 0x10, 0x13, 0xE2 + .byte 0x04, 0x00, 0x00, 0x0A, 0x00, 0x20, 0xA0, 0xE3, 0x03, 0x20, 0xC4, 0xE7, 0x01, 0x30, 0x83, 0xE2 + .byte 0x03, 0x10, 0x13, 0xE2, 0xFB, 0xFF, 0xFF, 0x1A, 0x10, 0x10, 0x9D, 0xE5, 0x01, 0x00, 0x80, 0xE2 + .byte 0x1C, 0x10, 0x91, 0xE5, 0x38, 0x00, 0x51, 0xE3, 0x0D, 0x00, 0x00, 0xBA, 0x10, 0x00, 0x50, 0xE3 + .byte 0x04, 0x00, 0x00, 0xAA, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x11, 0x85, 0xE7, 0x01, 0x00, 0x80, 0xE2 + .byte 0x10, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0xBA, 0x68, 0x11, 0x9F, 0xE5, 0x10, 0x00, 0x9D, 0xE5 + .byte 0x00, 0x30, 0x91, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x40, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x0E, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0xAA, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x11, 0x85, 0xE7, 0x01, 0x00, 0x80, 0xE2, 0x0E, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0xBA + .byte 0x10, 0x00, 0x9D, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x14, 0x20, 0x90, 0xE5, 0x24, 0x31, 0x9F, 0xE5 + .byte 0x3F, 0x20, 0xC4, 0xE5, 0x22, 0x04, 0xA0, 0xE1, 0x3E, 0x00, 0xC4, 0xE5, 0x22, 0x08, 0xA0, 0xE1 + .byte 0x3D, 0x00, 0xC4, 0xE5, 0x22, 0x0C, 0xA0, 0xE1, 0x3C, 0x00, 0xC4, 0xE5, 0x10, 0x00, 0x9D, 0xE5 + .byte 0x40, 0x20, 0xA0, 0xE3, 0x18, 0x50, 0x90, 0xE5, 0x3B, 0x50, 0xC4, 0xE5, 0x25, 0x04, 0xA0, 0xE1 + .byte 0x3A, 0x00, 0xC4, 0xE5, 0x25, 0x08, 0xA0, 0xE1, 0x39, 0x00, 0xC4, 0xE5, 0x25, 0x0C, 0xA0, 0xE1 + .byte 0x38, 0x00, 0xC4, 0xE5, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x30, 0x93, 0xE5, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0x10, 0x00, 0x9D, 0xE5, 0x10, 0x10, 0x8D, 0xE2, 0x00, 0x30, 0x90, 0xE5, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x23, 0x2C, 0xA0, 0xE1, 0x00, 0x20, 0xC6, 0xE5, 0x23, 0x28, 0xA0, 0xE1, 0x01, 0x20, 0xC6, 0xE5 + .byte 0x23, 0x24, 0xA0, 0xE1, 0x02, 0x20, 0xC6, 0xE5, 0x03, 0x30, 0xC6, 0xE5, 0x10, 0x30, 0x9D, 0xE5 + .byte 0x04, 0x20, 0xA0, 0xE3, 0x04, 0x40, 0x93, 0xE5, 0x24, 0x3C, 0xA0, 0xE1, 0x04, 0x30, 0xC6, 0xE5 + .byte 0x24, 0x38, 0xA0, 0xE1, 0x05, 0x30, 0xC6, 0xE5, 0x24, 0x34, 0xA0, 0xE1, 0x06, 0x30, 0xC6, 0xE5 + .byte 0x07, 0x40, 0xC6, 0xE5, 0x10, 0x30, 0x9D, 0xE5, 0x08, 0x40, 0x93, 0xE5, 0x24, 0x3C, 0xA0, 0xE1 + .byte 0x08, 0x30, 0xC6, 0xE5, 0x24, 0x38, 0xA0, 0xE1, 0x09, 0x30, 0xC6, 0xE5, 0x24, 0x34, 0xA0, 0xE1 + .byte 0x0A, 0x30, 0xC6, 0xE5, 0x0B, 0x40, 0xC6, 0xE5, 0x10, 0x30, 0x9D, 0xE5, 0x0C, 0x40, 0x93, 0xE5 + .byte 0x24, 0x3C, 0xA0, 0xE1, 0x0C, 0x30, 0xC6, 0xE5, 0x24, 0x38, 0xA0, 0xE1, 0x0D, 0x30, 0xC6, 0xE5 + .byte 0x24, 0x34, 0xA0, 0xE1, 0x0E, 0x30, 0xC6, 0xE5, 0x0F, 0x40, 0xC6, 0xE5, 0x10, 0x30, 0x9D, 0xE5 + .byte 0x10, 0x40, 0x93, 0xE5, 0x24, 0x3C, 0xA0, 0xE1, 0x10, 0x30, 0xC6, 0xE5, 0x24, 0x38, 0xA0, 0xE1 + .byte 0x11, 0x30, 0xC6, 0xE5, 0x24, 0x34, 0xA0, 0xE1, 0x12, 0x30, 0xC6, 0xE5, 0x13, 0x40, 0xC6, 0xE5 + .byte 0x10, 0x30, 0x9D, 0xE5, 0x1C, 0x00, 0x83, 0xE5, 0x7F, 0xEC, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x6A, 0x10, 0x02, 0xF0, 0x41, 0x2D, 0xE9 + .byte 0x00, 0x80, 0xA0, 0xE1, 0x02, 0x60, 0xB0, 0xE1, 0x01, 0x70, 0xA0, 0xE1, 0x20, 0x50, 0x88, 0xE2 + .byte 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x14, 0x00, 0x98, 0xE5, 0x86, 0x11, 0x80, 0xE0 + .byte 0x00, 0x00, 0x51, 0xE1, 0x18, 0x00, 0x98, 0x35, 0x01, 0x00, 0x80, 0x32, 0x18, 0x00, 0x88, 0x35 + .byte 0x18, 0x00, 0x98, 0xE5, 0xA6, 0x0E, 0x80, 0xE0, 0x18, 0x00, 0x88, 0xE5, 0x14, 0x10, 0x88, 0xE5 + .byte 0x1C, 0x10, 0x98, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x1B, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x81, 0xE0 + .byte 0x40, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0x3A, 0x40, 0x40, 0x61, 0xE2, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x04, 0x20, 0xA0, 0xE1, 0x01, 0x10, 0x85, 0xE0, 0xD8, 0xEC, 0xFF, 0xEB, 0xE0, 0x10, 0x9F, 0xE5 + .byte 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x40, 0x20, 0xA0, 0xE3 + .byte 0x04, 0x60, 0x46, 0xE0, 0x04, 0x70, 0x87, 0xE0, 0x33, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x1C, 0x00, 0x88, 0xE5, 0x08, 0x00, 0x00, 0xEA, 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1 + .byte 0x01, 0x10, 0x85, 0xE0, 0xC9, 0xEC, 0xFF, 0xEB, 0x1C, 0x00, 0x98, 0xE5, 0x06, 0x00, 0x80, 0xE0 + .byte 0x1C, 0x00, 0x88, 0xE5, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0x00, 0x56, 0xE3 + .byte 0x19, 0x00, 0x00, 0x3A, 0x3F, 0x40, 0xC6, 0xE3, 0x04, 0x60, 0x46, 0xE0, 0x03, 0x00, 0x17, 0xE2 + .byte 0x07, 0x00, 0x00, 0x1A, 0x78, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x30, 0x91, 0xE5 + .byte 0x07, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0x33, 0xFF, 0x2F, 0xE1, 0x04, 0x70, 0x87, 0xE0 + .byte 0x0D, 0x00, 0x00, 0xEA, 0x07, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x40, 0x20, 0xA0, 0xE3 + .byte 0xB2, 0xEC, 0xFF, 0xEB, 0x48, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x30, 0x91, 0xE5 + .byte 0x05, 0x10, 0xA0, 0xE1, 0x40, 0x20, 0xA0, 0xE3, 0x40, 0x70, 0x87, 0xE2, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0x40, 0x40, 0x44, 0xE2, 0x00, 0x00, 0x54, 0xE3, 0xF1, 0xFF, 0xFF, 0xCA, 0x1C, 0x60, 0x88, 0xE5 + .byte 0x00, 0x00, 0x56, 0xE3, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x05, 0x10, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0xA0, 0xEC, 0xFF, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x6A, 0x10, 0x02, 0x34, 0x10, 0x9F, 0xE5, 0x34, 0x20, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x80, 0xE5, 0x30, 0x10, 0x9F, 0xE5, 0x04, 0x20, 0x80, 0xE5, 0x2C, 0x20, 0x9F, 0xE5 + .byte 0x08, 0x10, 0x80, 0xE5, 0x28, 0x10, 0x9F, 0xE5, 0x0C, 0x20, 0x80, 0xE5, 0x10, 0x10, 0x80, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x14, 0x10, 0x80, 0xE5, 0x18, 0x10, 0x80, 0xE5, 0x1C, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98 + .byte 0x76, 0x54, 0x32, 0x10, 0xF0, 0xE1, 0xD2, 0xC3, 0xF0, 0x43, 0x2D, 0xE9, 0xC4, 0xD0, 0x4D, 0xE2 + .byte 0xE0, 0x50, 0x9D, 0xE5, 0xE4, 0x40, 0x9D, 0xE5, 0x00, 0x90, 0xB0, 0xE1, 0x01, 0x80, 0xA0, 0xE1 + .byte 0x02, 0x70, 0xA0, 0xE1, 0x03, 0x60, 0xA0, 0xE1, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x58, 0xE3, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x57, 0xE3, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x56, 0xE3, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x55, 0xE3, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x54, 0xE3, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x0D, 0x00, 0x00, 0xDA + .byte 0x08, 0x00, 0x94, 0xE5, 0x10, 0x10, 0x94, 0xE5, 0x31, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x94, 0xE5 + .byte 0x14, 0x30, 0x94, 0xE5, 0x06, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0x08, 0x00, 0x94, 0xE5, 0x18, 0x20, 0x94, 0xE5, 0x00, 0x10, 0x8D, 0xE2, 0x32, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x50, 0x94, 0xE5, 0x00, 0x60, 0x8D, 0xE2, 0x00, 0x00, 0x55, 0xE3, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x06, 0x00, 0x00, 0xDA, 0x40, 0x20, 0x8D, 0xE2, 0x00, 0x10, 0xD6, 0xE7, 0x01, 0x00, 0x80, 0xE2 + .byte 0x05, 0x00, 0x50, 0xE1, 0x36, 0x10, 0x21, 0xE2, 0x01, 0x10, 0xC2, 0xE4, 0xF9, 0xFF, 0xFF, 0xBA + .byte 0x04, 0x10, 0x94, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0xAA, 0x40, 0x10, 0x8D, 0xE2 + .byte 0x00, 0x30, 0x81, 0xE0, 0x36, 0x20, 0xA0, 0xE3, 0x01, 0x20, 0xC3, 0xE4, 0x04, 0x10, 0x94, 0xE5 + .byte 0x01, 0x00, 0x80, 0xE2, 0x01, 0x00, 0x50, 0xE1, 0xFA, 0xFF, 0xFF, 0xBA, 0x08, 0x00, 0x94, 0xE5 + .byte 0x10, 0x10, 0x94, 0xE5, 0x31, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x94, 0xE5, 0x04, 0x20, 0x94, 0xE5 + .byte 0x14, 0x30, 0x94, 0xE5, 0x40, 0x10, 0x8D, 0xE2, 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x94, 0xE5 + .byte 0x14, 0x30, 0x94, 0xE5, 0x08, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0x08, 0x00, 0x94, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x18, 0x20, 0x94, 0xE5, 0x32, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0x55, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xDA, 0x80, 0x10, 0x8D, 0xE2 + .byte 0x02, 0x00, 0xD6, 0xE7, 0x01, 0x20, 0x82, 0xE2, 0x05, 0x00, 0x52, 0xE1, 0x5C, 0x00, 0x20, 0xE2 + .byte 0x01, 0x00, 0xC1, 0xE4, 0xF9, 0xFF, 0xFF, 0xBA, 0x04, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x52, 0xE1 + .byte 0x07, 0x00, 0x00, 0xAA, 0x80, 0x00, 0x8D, 0xE2, 0x02, 0x30, 0x80, 0xE0, 0x5C, 0x10, 0xA0, 0xE3 + .byte 0x01, 0x10, 0xC3, 0xE4, 0x04, 0x00, 0x94, 0xE5, 0x01, 0x20, 0x82, 0xE2, 0x00, 0x00, 0x52, 0xE1 + .byte 0xFA, 0xFF, 0xFF, 0xBA, 0x08, 0x00, 0x94, 0xE5, 0x10, 0x10, 0x94, 0xE5, 0x31, 0xFF, 0x2F, 0xE1 + .byte 0x08, 0x00, 0x94, 0xE5, 0x04, 0x20, 0x94, 0xE5, 0x14, 0x30, 0x94, 0xE5, 0x80, 0x10, 0x8D, 0xE2 + .byte 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x94, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x00, 0x20, 0x94, 0xE5 + .byte 0x14, 0x30, 0x94, 0xE5, 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x94, 0xE5, 0x18, 0x20, 0x94, 0xE5 + .byte 0x09, 0x10, 0xA0, 0xE1, 0x32, 0xFF, 0x2F, 0xE1, 0xC4, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0x00, 0xFF, 0x00, 0x99, 0x79, 0x82, 0x5A, 0xA1, 0xEB, 0xD9, 0x6E + .byte 0xDC, 0xBC, 0x1B, 0x8F, 0xD6, 0xC1, 0x62, 0xCA, 0xF0, 0x5F, 0x2D, 0xE9, 0x08, 0x1E, 0x90, 0xE8 + .byte 0x84, 0xD0, 0x4D, 0xE2, 0x80, 0x20, 0x8D, 0xE5, 0x28, 0x80, 0x1F, 0xE5, 0x30, 0x70, 0x1F, 0xE5 + .byte 0x0D, 0x60, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, 0x04, 0x40, 0x91, 0xE4, 0x0C, 0x20, 0x88, 0xE0 + .byte 0xE3, 0x2D, 0x82, 0xE0, 0x07, 0xE0, 0x04, 0xE0, 0x64, 0x4C, 0x07, 0xE0, 0x6E, 0x44, 0x84, 0xE1 + .byte 0x40, 0x40, 0x86, 0xE5, 0x04, 0x40, 0x86, 0xE4, 0x04, 0x20, 0x82, 0xE0, 0x0B, 0x40, 0x2A, 0xE0 + .byte 0x09, 0x40, 0x04, 0xE0, 0x0B, 0x40, 0x24, 0xE0, 0x04, 0x20, 0x82, 0xE0, 0x69, 0x91, 0xA0, 0xE1 + .byte 0x0B, 0xC0, 0xA0, 0xE1, 0x0A, 0xB0, 0xA0, 0xE1, 0x09, 0xA0, 0xA0, 0xE1, 0x03, 0x90, 0xA0, 0xE1 + .byte 0x02, 0x30, 0xA0, 0xE1, 0x04, 0x50, 0x85, 0xE2, 0x40, 0x00, 0x55, 0xE3, 0xE9, 0xFF, 0xFF, 0xBA + .byte 0x00, 0x70, 0xA0, 0xE3, 0x0D, 0x60, 0xA0, 0xE1, 0x00, 0x20, 0x96, 0xE5, 0x08, 0x50, 0x96, 0xE5 + .byte 0x20, 0x40, 0x96, 0xE5, 0x34, 0xE0, 0x96, 0xE5, 0x05, 0x20, 0x22, 0xE0, 0x0E, 0x40, 0x24, 0xE0 + .byte 0x04, 0x20, 0x22, 0xE0, 0xE2, 0x2F, 0xA0, 0xE1, 0x40, 0x20, 0x86, 0xE5, 0x04, 0x20, 0x86, 0xE4 + .byte 0x0C, 0x20, 0x82, 0xE0, 0x08, 0x20, 0x82, 0xE0, 0xE3, 0x2D, 0x82, 0xE0, 0x0B, 0x40, 0x2A, 0xE0 + .byte 0x09, 0x40, 0x04, 0xE0, 0x0B, 0x40, 0x24, 0xE0, 0x04, 0x20, 0x82, 0xE0, 0x69, 0x91, 0xA0, 0xE1 + .byte 0x0B, 0xC0, 0xA0, 0xE1, 0x0A, 0xB0, 0xA0, 0xE1, 0x09, 0xA0, 0xA0, 0xE1, 0x03, 0x90, 0xA0, 0xE1 + .byte 0x02, 0x30, 0xA0, 0xE1, 0x04, 0x70, 0x87, 0xE2, 0x10, 0x00, 0x57, 0xE3, 0xE5, 0xFF, 0xFF, 0xBA + .byte 0xFC, 0x80, 0x1F, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0x00, 0x20, 0x96, 0xE5, 0x08, 0x40, 0x96, 0xE5 + .byte 0x20, 0xE0, 0x96, 0xE5, 0x34, 0x50, 0x96, 0xE5, 0x04, 0x20, 0x22, 0xE0, 0x05, 0xE0, 0x2E, 0xE0 + .byte 0x0E, 0x20, 0x22, 0xE0, 0xE2, 0x2F, 0xA0, 0xE1, 0x40, 0x20, 0x86, 0xE5, 0x04, 0x20, 0x86, 0xE4 + .byte 0x0C, 0x20, 0x82, 0xE0, 0x08, 0x20, 0x82, 0xE0, 0xE3, 0x2D, 0x82, 0xE0, 0x0A, 0xE0, 0x29, 0xE0 + .byte 0x0B, 0xE0, 0x2E, 0xE0, 0x0E, 0x20, 0x82, 0xE0, 0x69, 0x91, 0xA0, 0xE1, 0x0B, 0xC0, 0xA0, 0xE1 + .byte 0x0A, 0xB0, 0xA0, 0xE1, 0x09, 0xA0, 0xA0, 0xE1, 0x03, 0x90, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 + .byte 0x01, 0x70, 0x87, 0xE2, 0x0C, 0x00, 0x57, 0xE3, 0x0D, 0x60, 0xA0, 0x01, 0x14, 0x00, 0x57, 0xE3 + .byte 0xE4, 0xFF, 0xFF, 0xBA, 0x6C, 0x81, 0x1F, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0x00, 0x20, 0x96, 0xE5 + .byte 0x08, 0xE0, 0x96, 0xE5, 0x20, 0x50, 0x96, 0xE5, 0x34, 0x40, 0x96, 0xE5, 0x0E, 0x20, 0x22, 0xE0 + .byte 0x04, 0x50, 0x25, 0xE0, 0x05, 0x20, 0x22, 0xE0, 0xE2, 0x2F, 0xA0, 0xE1, 0x40, 0x20, 0x86, 0xE5 + .byte 0x04, 0x20, 0x86, 0xE4, 0x0C, 0x20, 0x82, 0xE0, 0x08, 0x20, 0x82, 0xE0, 0xE3, 0x2D, 0x82, 0xE0 + .byte 0x0A, 0x50, 0x89, 0xE1, 0x0B, 0x50, 0x05, 0xE0, 0x0A, 0x40, 0x09, 0xE0, 0x04, 0x50, 0x85, 0xE1 + .byte 0x05, 0x20, 0x82, 0xE0, 0x69, 0x91, 0xA0, 0xE1, 0x0B, 0xC0, 0xA0, 0xE1, 0x0A, 0xB0, 0xA0, 0xE1 + .byte 0x09, 0xA0, 0xA0, 0xE1, 0x03, 0x90, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x01, 0x70, 0x87, 0xE2 + .byte 0x08, 0x00, 0x57, 0xE3, 0x0D, 0x60, 0xA0, 0x01, 0x14, 0x00, 0x57, 0xE3, 0xE2, 0xFF, 0xFF, 0xBA + .byte 0xE4, 0x81, 0x1F, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0x00, 0x20, 0x96, 0xE5, 0x08, 0x50, 0x96, 0xE5 + .byte 0x20, 0x40, 0x96, 0xE5, 0x34, 0xE0, 0x96, 0xE5, 0x05, 0x20, 0x22, 0xE0, 0x0E, 0x40, 0x24, 0xE0 + .byte 0x04, 0x20, 0x22, 0xE0, 0xE2, 0x2F, 0xA0, 0xE1, 0x40, 0x20, 0x86, 0xE5, 0x04, 0x20, 0x86, 0xE4 + .byte 0x0C, 0x20, 0x82, 0xE0, 0x08, 0x20, 0x82, 0xE0, 0xE3, 0x2D, 0x82, 0xE0, 0x0A, 0x40, 0x29, 0xE0 + .byte 0x0B, 0x40, 0x24, 0xE0, 0x04, 0x20, 0x82, 0xE0, 0x69, 0x91, 0xA0, 0xE1, 0x0B, 0xC0, 0xA0, 0xE1 + .byte 0x0A, 0xB0, 0xA0, 0xE1, 0x09, 0xA0, 0xA0, 0xE1, 0x03, 0x90, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 + .byte 0x01, 0x70, 0x87, 0xE2, 0x04, 0x00, 0x57, 0xE3, 0x0D, 0x60, 0xA0, 0x01, 0x14, 0x00, 0x57, 0xE3 + .byte 0xE4, 0xFF, 0xFF, 0xBA, 0xD4, 0x40, 0x90, 0xE8, 0x02, 0x30, 0x83, 0xE0, 0x04, 0x90, 0x89, 0xE0 + .byte 0x06, 0xA0, 0x8A, 0xE0, 0x07, 0xB0, 0x8B, 0xE0, 0x0E, 0xC0, 0x8C, 0xE0, 0x08, 0x1E, 0x80, 0xE8 + .byte 0x80, 0xE0, 0x9D, 0xE5, 0x40, 0xE0, 0x5E, 0xE2, 0x80, 0xE0, 0x8D, 0xE5, 0x65, 0xFF, 0xFF, 0xCA + .byte 0x84, 0xD0, 0x8D, 0xE2, 0xF0, 0x9F, 0xBD, 0xE8, 0x34, 0x10, 0x9F, 0xE5, 0x10, 0x00, 0x2D, 0xE9 + .byte 0x1C, 0x10, 0x91, 0xE8, 0x1C, 0x10, 0xA0, 0xE8, 0xB0, 0xC1, 0x51, 0xE1, 0x28, 0x10, 0x81, 0xE2 + .byte 0x0C, 0x00, 0x91, 0xE8, 0x0C, 0x00, 0xA0, 0xE8, 0x03, 0xC0, 0x0C, 0xE2, 0xB8, 0x20, 0x51, 0xE1 + .byte 0xB0, 0xC0, 0xC0, 0xE1, 0x01, 0x20, 0x02, 0xE2, 0xB2, 0x20, 0xC0, 0xE1, 0x10, 0x00, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x90, 0x02, 0x00, 0x04, 0x10, 0x00, 0x2D, 0xE9, 0x2C, 0x10, 0x9F, 0xE5 + .byte 0x1C, 0x10, 0x90, 0xE8, 0x1C, 0x10, 0x81, 0xE8, 0xB8, 0x21, 0xD0, 0xE1, 0xBA, 0x31, 0xD0, 0xE1 + .byte 0xB0, 0x21, 0x41, 0xE1, 0xB0, 0x32, 0xC1, 0xE1, 0x10, 0x00, 0x80, 0xE2, 0x28, 0x10, 0x81, 0xE2 + .byte 0x0C, 0x00, 0x90, 0xE8, 0x0C, 0x00, 0x81, 0xE8, 0x10, 0x00, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x90, 0x02, 0x00, 0x04, 0x08, 0x10, 0x9F, 0xE5, 0xB4, 0x13, 0xD1, 0xE1, 0x00, 0x00, 0x01, 0xE0 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02, 0x0C, 0x10, 0x9F, 0xE5, 0xB6, 0x23, 0xD1, 0xE1 + .byte 0x00, 0x20, 0x12, 0xE0, 0xFC, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02 + .byte 0x70, 0x40, 0x2D, 0xE9, 0x1C, 0x21, 0x9F, 0xE5, 0xB0, 0x23, 0xD2, 0xE1, 0x00, 0x00, 0x52, 0xE3 + .byte 0x09, 0x00, 0x00, 0x1A, 0xB0, 0x30, 0xD1, 0xE1, 0xB2, 0x20, 0xD1, 0xE1, 0xB0, 0x30, 0xC0, 0xE1 + .byte 0xB2, 0x20, 0xC0, 0xE1, 0xB4, 0x20, 0xD1, 0xE1, 0xB6, 0x10, 0xD1, 0xE1, 0xB4, 0x20, 0xC0, 0xE1 + .byte 0xB6, 0x10, 0xC0, 0xE1, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB4, 0x30, 0xD1, 0xE1 + .byte 0xE4, 0x20, 0x9F, 0xE5, 0xB4, 0x30, 0xC0, 0xE1, 0xB6, 0x30, 0xD1, 0xE1, 0xB6, 0x30, 0xC0, 0xE1 + .byte 0xB4, 0x30, 0xD1, 0xE1, 0x00, 0x00, 0x53, 0xE3, 0x00, 0x10, 0xA0, 0x03, 0xB0, 0x10, 0xC0, 0x01 + .byte 0xB2, 0x10, 0xC0, 0x01, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xB0, 0x40, 0xD1, 0xE1 + .byte 0x00, 0x30, 0x92, 0xE5, 0x08, 0xE0, 0x92, 0xE5, 0x04, 0xC1, 0xA0, 0xE1, 0xCC, 0x4F, 0xA0, 0xE1 + .byte 0x03, 0xC0, 0x5C, 0xE0, 0xC3, 0x3F, 0xC4, 0xE0, 0x9E, 0x6C, 0x85, 0xE0, 0x9E, 0x53, 0x25, 0xE0 + .byte 0xCE, 0x3F, 0xA0, 0xE1, 0x93, 0x5C, 0x25, 0xE0, 0x26, 0x3B, 0xA0, 0xE1, 0x05, 0x35, 0x83, 0xE1 + .byte 0xB0, 0x30, 0xC0, 0xE1, 0xF0, 0x30, 0xD0, 0xE1, 0x00, 0x00, 0x53, 0xE3, 0x00, 0x30, 0xA0, 0xB3 + .byte 0xB0, 0x30, 0xC0, 0xB1, 0x02, 0x00, 0x00, 0xBA, 0xFF, 0x00, 0x53, 0xE3, 0xFF, 0x30, 0xA0, 0xC3 + .byte 0xB0, 0x30, 0xC0, 0xC1, 0xB2, 0x30, 0xD1, 0xE1, 0x0C, 0x10, 0x92, 0xE5, 0x14, 0xC0, 0x92, 0xE5 + .byte 0x03, 0x31, 0xA0, 0xE1, 0xC3, 0x2F, 0xA0, 0xE1, 0x01, 0x30, 0x53, 0xE0, 0xC1, 0x1F, 0xC2, 0xE0 + .byte 0x9C, 0x43, 0x8E, 0xE0, 0x9C, 0xE1, 0x2E, 0xE0, 0xCC, 0x1F, 0xA0, 0xE1, 0x91, 0xE3, 0x2E, 0xE0 + .byte 0x24, 0x1B, 0xA0, 0xE1, 0x0E, 0x15, 0x81, 0xE1, 0xB2, 0x10, 0xC0, 0xE1, 0xF2, 0x10, 0xD0, 0xE1 + .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0xB3, 0xB2, 0x10, 0xC0, 0xB1, 0x70, 0x40, 0xBD, 0xB8 + .byte 0x1E, 0xFF, 0x2F, 0xB1, 0xBF, 0x00, 0x51, 0xE3, 0xBF, 0x10, 0xA0, 0xC3, 0xB2, 0x10, 0xC0, 0xC1 + .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02, 0x8C, 0x54, 0x1D, 0x02 + .byte 0xF0, 0x4F, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x60, 0xA0, 0xE1, 0x00, 0x70, 0xA0, 0xE1 + .byte 0x02, 0x50, 0xA0, 0xE1, 0x03, 0x40, 0xA0, 0xE1, 0x01, 0x0A, 0x56, 0xE3, 0x07, 0x00, 0x00, 0x2A + .byte 0x01, 0x0A, 0x55, 0xE3, 0x05, 0x00, 0x00, 0x2A, 0xBC, 0x82, 0xDD, 0xE1, 0x01, 0x0A, 0x58, 0xE3 + .byte 0x02, 0x00, 0x00, 0x2A, 0xB0, 0x33, 0xDD, 0xE1, 0x01, 0x0A, 0x53, 0xE3, 0x03, 0x00, 0x00, 0x3A + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x01, 0x0C, 0x54, 0xE3, 0x08, 0x00, 0x00, 0x2A, 0xB4, 0x23, 0xDD, 0xE1, 0x01, 0x0C, 0x52, 0xE3 + .byte 0x05, 0x00, 0x00, 0x2A, 0xB8, 0x12, 0xDD, 0xE1, 0xC0, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x2A + .byte 0xB8, 0x03, 0xDD, 0xE1, 0xC0, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x3A, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x02, 0x00, 0x54, 0xE1 + .byte 0x05, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x56, 0xE1 + .byte 0x01, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x55, 0xE1, 0x03, 0x00, 0x00, 0x1A, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x8B, 0xE6, 0xFF, 0xEB + .byte 0xBC, 0x12, 0xDD, 0xE1, 0x94, 0x31, 0x9F, 0xE5, 0x94, 0xB1, 0x9F, 0xE5, 0x00, 0x10, 0x8D, 0xE5 + .byte 0x00, 0x20, 0x9D, 0xE5, 0xB4, 0x13, 0xDD, 0xE1, 0x02, 0x90, 0x46, 0xE0, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x09, 0xC4, 0xA0, 0xE1, 0xB0, 0x20, 0xC3, 0xE1, 0x00, 0xC0, 0x8B, 0xE5, 0xB0, 0x83, 0xDD, 0xE1 + .byte 0xB8, 0xA3, 0xDD, 0xE1, 0xB8, 0x92, 0xDD, 0xE1, 0x68, 0xB1, 0x9F, 0xE5, 0x01, 0xC0, 0x44, 0xE0 + .byte 0x00, 0xC0, 0x8B, 0xE5, 0x04, 0x20, 0x8B, 0xE5, 0x08, 0xB0, 0x45, 0xE0, 0x0A, 0x20, 0x49, 0xE0 + .byte 0xB0, 0xC0, 0xD3, 0xE1, 0x02, 0xC9, 0x1C, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0x48, 0xC1, 0x9F, 0xE5 + .byte 0x0B, 0xB4, 0xA0, 0xE1, 0x00, 0xE0, 0x9C, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0xB0, 0xC0, 0xC3, 0xE1 + .byte 0x2C, 0x31, 0x9F, 0xE5, 0x02, 0x09, 0x5E, 0xE3, 0x00, 0xB0, 0x83, 0xE5, 0x24, 0x31, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x83, 0xE5, 0x03, 0x20, 0xA0, 0xE1, 0x04, 0xC0, 0x82, 0xE5, 0x03, 0x00, 0x00, 0xAA + .byte 0x02, 0x29, 0xA0, 0xE3, 0x00, 0x20, 0x62, 0xE2, 0x02, 0x00, 0x5E, 0xE1, 0x04, 0x00, 0x00, 0xAA + .byte 0x67, 0xE6, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB4, 0xE0, 0xC7, 0xE1, 0xF4, 0xB0, 0xD7, 0xE1, 0x01, 0x30, 0x84, 0xE0 + .byte 0x00, 0x10, 0x9D, 0xE5, 0x01, 0x40, 0x86, 0xE0, 0x9B, 0x03, 0x01, 0xE0, 0x04, 0x34, 0xA0, 0xE1 + .byte 0x01, 0x10, 0x43, 0xE0, 0x81, 0x14, 0xA0, 0xE1, 0x41, 0x18, 0xA0, 0xE1, 0x02, 0x09, 0x51, 0xE3 + .byte 0x01, 0x00, 0x00, 0xAA, 0x02, 0x00, 0x51, 0xE1, 0x04, 0x00, 0x00, 0xAA, 0x54, 0xE6, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x98, 0x20, 0x9F, 0xE5, 0xB0, 0x10, 0xC7, 0xE1, 0xB0, 0x10, 0xD2, 0xE1, 0x02, 0x19, 0x11, 0xE2 + .byte 0xFC, 0xFF, 0xFF, 0x1A, 0x90, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0x91, 0xE5, 0x48, 0xE6, 0xFF, 0xEB + .byte 0x02, 0x09, 0x54, 0xE3, 0x03, 0x00, 0x00, 0xAA, 0x02, 0x09, 0xA0, 0xE3, 0x00, 0x10, 0x60, 0xE2 + .byte 0x01, 0x00, 0x54, 0xE1, 0x03, 0x00, 0x00, 0xAA, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB6, 0x40, 0xC7, 0xE1, 0xF6, 0x20, 0xD7, 0xE1 + .byte 0x0A, 0x00, 0x89, 0xE0, 0x08, 0x30, 0x85, 0xE0, 0x92, 0x00, 0x00, 0xE0, 0x03, 0x24, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x42, 0xE0, 0x80, 0x04, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0x02, 0x09, 0x50, 0xE3 + .byte 0x01, 0x00, 0x00, 0xAA, 0x01, 0x00, 0x50, 0xE1, 0x03, 0x00, 0x00, 0xAA, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB2, 0x00, 0xC7, 0xE1 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x80, 0x02, 0x00, 0x04, 0x90, 0x02, 0x00, 0x04, 0x98, 0x02, 0x00, 0x04, 0xA0, 0x02, 0x00, 0x04 + .byte 0x04, 0x00, 0x9F, 0xE5, 0xBC, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02 + .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x03, 0x10, 0xA0, 0xE3, 0x5C, 0xE1, 0x9F, 0xE5 + .byte 0xB6, 0x10, 0xC0, 0xE1, 0xBE, 0x10, 0xDE, 0xE1, 0xBC, 0x30, 0xDE, 0xE1, 0x01, 0x00, 0x51, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0xB4, 0x11, 0xDE, 0xE1, 0x01, 0x00, 0x51, 0xE3, 0x0E, 0x00, 0x00, 0x1A + .byte 0x38, 0x11, 0x9F, 0xE5, 0x83, 0x21, 0xA0, 0xE1, 0x10, 0x10, 0x91, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x83, 0x31, 0x81, 0xE0, 0xB2, 0x20, 0x91, 0xE1, 0xB2, 0x10, 0xD3, 0xE1, 0xB0, 0x20, 0xC0, 0xE1 + .byte 0xB2, 0x10, 0xC0, 0xE1, 0xB4, 0x20, 0xD3, 0xE1, 0xB6, 0x10, 0xD3, 0xE1, 0xB4, 0x20, 0xC0, 0xE1 + .byte 0xB6, 0x10, 0xC0, 0xE1, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x10, 0x80, 0xE2 + .byte 0x00, 0xC0, 0xA0, 0xE3, 0x31, 0x00, 0x00, 0xEA, 0x0C, 0x50, 0x53, 0xE0, 0x10, 0x20, 0x9E, 0xE5 + .byte 0x04, 0x50, 0x85, 0x40, 0x85, 0x21, 0x82, 0xE0, 0xB4, 0x40, 0xD2, 0xE1, 0x00, 0x00, 0x54, 0xE3 + .byte 0x0A, 0x00, 0x00, 0x1A, 0xB0, 0x30, 0xD2, 0xE1, 0xB2, 0x10, 0xD2, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xB0, 0x30, 0xC0, 0xE1, 0xB2, 0x10, 0xC0, 0xE1, 0xB4, 0x30, 0xD2, 0xE1, 0xB6, 0x10, 0xD2, 0xE1 + .byte 0xB4, 0x30, 0xC0, 0xE1, 0xB6, 0x10, 0xC0, 0xE1, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xB6, 0x40, 0xD0, 0xE1, 0x01, 0x40, 0x14, 0xE2, 0x08, 0x00, 0x00, 0x0A, 0xB6, 0x40, 0xD2, 0xE1 + .byte 0x01, 0x40, 0x14, 0xE2, 0x05, 0x00, 0x00, 0x1A, 0xB0, 0x40, 0xD2, 0xE1, 0x00, 0x00, 0x5C, 0xE3 + .byte 0xB0, 0x40, 0xC0, 0xE1, 0xB0, 0x40, 0xD1, 0x11, 0x01, 0x40, 0xC4, 0x13, 0xB0, 0x40, 0xC1, 0x11 + .byte 0xB6, 0x40, 0xD0, 0xE1, 0x02, 0x40, 0x14, 0xE2, 0x08, 0x00, 0x00, 0x0A, 0xB6, 0x40, 0xD2, 0xE1 + .byte 0x02, 0x40, 0x14, 0xE2, 0x05, 0x00, 0x00, 0x1A, 0xB2, 0x20, 0xD2, 0xE1, 0x00, 0x00, 0x5C, 0xE3 + .byte 0xB2, 0x20, 0xC0, 0xE1, 0xB0, 0x20, 0xD1, 0x11, 0x02, 0x20, 0xC2, 0x13, 0xB0, 0x20, 0xC1, 0x11 + .byte 0xB6, 0x20, 0xD0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x01, 0x10, 0xA0, 0x03, 0xB4, 0x10, 0xC0, 0x01 + .byte 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0xC0, 0x8C, 0xE2 + .byte 0xBE, 0x20, 0xDE, 0xE1, 0x02, 0x00, 0x5C, 0xE1, 0x03, 0x00, 0x00, 0xAA, 0xB4, 0x41, 0xDE, 0xE1 + .byte 0x01, 0x20, 0x44, 0xE2, 0x02, 0x00, 0x5C, 0xE1, 0xC6, 0xFF, 0xFF, 0xBA, 0x01, 0x10, 0xA0, 0xE3 + .byte 0xB4, 0x10, 0xC0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x74, 0x54, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0xBC, 0xE5, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x88, 0x10, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x2B, 0xF0, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0F, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0xB5, 0xE5, 0xFF, 0xEB, 0x60, 0x00, 0x9F, 0xE5 + .byte 0xB4, 0x13, 0xD0, 0xE1, 0x00, 0x30, 0x90, 0xE5, 0x04, 0x10, 0x81, 0xE3, 0xB4, 0x13, 0xC0, 0xE1 + .byte 0x00, 0x00, 0x53, 0xE3, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x28, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xB6, 0x23, 0xD1, 0xE1 + .byte 0x04, 0x20, 0x82, 0xE3, 0xB6, 0x23, 0xC1, 0xE1, 0xB4, 0x23, 0xD1, 0xE1, 0x04, 0x20, 0xC2, 0xE3 + .byte 0xB4, 0x23, 0xC1, 0xE1, 0x9E, 0xE5, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x02, 0x00, 0x03, 0x74, 0x54, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0xFC, 0x40, 0x9F, 0xE5 + .byte 0x01, 0x50, 0xA0, 0xE1, 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x60, 0xA0, 0xE1, 0x10, 0x20, 0x84, 0xE5 + .byte 0xBC, 0xC0, 0xC4, 0xE1, 0xBE, 0x50, 0xC4, 0xE1, 0xB4, 0x31, 0xC4, 0xE1, 0x00, 0x00, 0x53, 0xE3 + .byte 0x06, 0x00, 0x00, 0x9A, 0x0C, 0x10, 0xA0, 0xE1, 0x10, 0x00, 0x94, 0xE5, 0x8C, 0x01, 0x80, 0xE0 + .byte 0x01, 0xC0, 0x8C, 0xE2, 0xB4, 0x10, 0xC0, 0xE1, 0x03, 0x00, 0x5C, 0xE1, 0xF9, 0xFF, 0xFF, 0x3A + .byte 0x82, 0xE5, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0xB4, 0x00, 0x9F, 0xE5, 0xFF, 0x10, 0x05, 0xE2 + .byte 0x00, 0x10, 0x81, 0xE1, 0x06, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xEF, 0xEF, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x07, 0x00, 0x00, 0xBA, 0x94, 0x10, 0x9F, 0xE5 + .byte 0x06, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0x86, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0xE7, 0xEF, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x01, 0x00, 0xA0, 0xA3, 0xFF, 0x00, 0x10, 0xE2 + .byte 0x0F, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x71, 0xE5, 0xFF, 0xEB, 0x5C, 0x00, 0x9F, 0xE5 + .byte 0xB4, 0x13, 0xD0, 0xE1, 0x00, 0x30, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE3, 0xB4, 0x13, 0xC0, 0xE1 + .byte 0x00, 0x00, 0x53, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xB6, 0x23, 0xD1, 0xE1 + .byte 0x02, 0x20, 0x82, 0xE3, 0xB6, 0x23, 0xC1, 0xE1, 0xB4, 0x23, 0xD1, 0xE1, 0x02, 0x20, 0xC2, 0xE3 + .byte 0xB4, 0x23, 0xC1, 0xE1, 0x5A, 0xE5, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x74, 0x54, 0x1D, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x3E, 0xFE, 0xFF, 0xEB, 0x3C, 0x10, 0x9F, 0xE5 + .byte 0xB4, 0x03, 0xD1, 0xE1, 0x01, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x10, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0xB4, 0x30, 0xD1, 0xE1, 0xB6, 0x20, 0xD1, 0xE1, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xB0, 0x30, 0xC4, 0xE1, 0xB2, 0x20, 0xC4, 0xE1, 0xB8, 0x20, 0xD1, 0xE1, 0xBA, 0x10, 0xD1, 0xE1 + .byte 0xB4, 0x20, 0xC4, 0xE1, 0xB6, 0x10, 0xC4, 0xE1, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x74, 0x54, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x38, 0xE5, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x06, 0x00, 0xA0, 0xE3, 0x03, 0x14, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xA7, 0xEF, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0F, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x31, 0xE5, 0xFF, 0xEB, 0x5C, 0x00, 0x9F, 0xE5 + .byte 0xB4, 0x13, 0xD0, 0xE1, 0x00, 0x30, 0x90, 0xE5, 0x01, 0x10, 0x81, 0xE3, 0xB4, 0x13, 0xC0, 0xE1 + .byte 0x00, 0x00, 0x53, 0xE3, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xB6, 0x23, 0xD1, 0xE1 + .byte 0x01, 0x20, 0x82, 0xE3, 0xB6, 0x23, 0xC1, 0xE1, 0xB4, 0x23, 0xD1, 0xE1, 0x01, 0x20, 0xC2, 0xE3 + .byte 0xB4, 0x23, 0xC1, 0xE1, 0x1A, 0xE5, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x74, 0x54, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xB0, 0xE1 + .byte 0x20, 0x01, 0x9F, 0x05, 0x00, 0x10, 0xA0, 0x03, 0xB0, 0x13, 0xC0, 0x01, 0x04, 0xD0, 0x8D, 0x02 + .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x08, 0xE5, 0xFF, 0xEB, 0xF4, 0xE0, 0xD4, 0xE1 + .byte 0x00, 0x00, 0x5E, 0xE3, 0x15, 0x00, 0x00, 0x0A, 0xFC, 0x50, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE3 + .byte 0xF8, 0x20, 0x9F, 0xE5, 0xB0, 0xC0, 0xC5, 0xE1, 0x01, 0x32, 0xA0, 0xE3, 0xF0, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x82, 0xE5, 0x00, 0xE0, 0x81, 0xE5, 0x04, 0xC0, 0x81, 0xE5, 0xF0, 0x20, 0xD4, 0xE1 + .byte 0xD0, 0x10, 0x9F, 0xE5, 0x18, 0x20, 0x81, 0xE5, 0xF4, 0x20, 0xD4, 0xE1, 0x1C, 0x20, 0x81, 0xE5 + .byte 0xB0, 0x10, 0xD5, 0xE1, 0x02, 0x19, 0x11, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0xC4, 0x20, 0x9F, 0xE5 + .byte 0xB0, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x92, 0xE5, 0x20, 0x20, 0x81, 0xE5, 0x04, 0x00, 0x00, 0xEA + .byte 0xA0, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x18, 0x20, 0x81, 0xE5, 0x1C, 0x20, 0x81, 0xE5 + .byte 0x20, 0x20, 0x81, 0xE5, 0xF6, 0x50, 0xD4, 0xE1, 0x00, 0x00, 0x55, 0xE3, 0x15, 0x00, 0x00, 0x0A + .byte 0x84, 0xC0, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0x80, 0x20, 0x9F, 0xE5, 0xB0, 0xE0, 0xCC, 0xE1 + .byte 0x01, 0x32, 0xA0, 0xE3, 0x78, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x50, 0x81, 0xE5 + .byte 0x04, 0xE0, 0x81, 0xE5, 0xF2, 0x20, 0xD4, 0xE1, 0x58, 0x10, 0x9F, 0xE5, 0x24, 0x20, 0x81, 0xE5 + .byte 0xF6, 0x20, 0xD4, 0xE1, 0x28, 0x20, 0x81, 0xE5, 0xB0, 0x10, 0xDC, 0xE1, 0x02, 0x19, 0x11, 0xE2 + .byte 0xFC, 0xFF, 0xFF, 0x1A, 0x4C, 0x20, 0x9F, 0xE5, 0x38, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x92, 0xE5 + .byte 0x2C, 0x20, 0x81, 0xE5, 0x04, 0x00, 0x00, 0xEA, 0x28, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x24, 0x20, 0x81, 0xE5, 0x28, 0x20, 0x81, 0xE5, 0x2C, 0x20, 0x81, 0xE5, 0xD0, 0xE4, 0xFF, 0xEB + .byte 0x10, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x13, 0xC0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02, 0x80, 0x02, 0x00, 0x04 + .byte 0x90, 0x02, 0x00, 0x04, 0x98, 0x02, 0x00, 0x04, 0xA0, 0x02, 0x00, 0x04, 0x70, 0x40, 0x2D, 0xE9 + .byte 0x18, 0xD0, 0x4D, 0xE2, 0x98, 0xC0, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0xB8, 0x15, 0xDC, 0xE1 + .byte 0xBA, 0x25, 0xDC, 0xE1, 0x5C, 0x30, 0xDC, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x5D, 0xE0, 0xDC, 0xE5 + .byte 0xBE, 0x65, 0xDC, 0xE1, 0xB0, 0x56, 0xDC, 0xE1, 0x62, 0x00, 0xDC, 0xE5, 0x63, 0xC0, 0xDC, 0xE5 + .byte 0x05, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x56, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x52, 0xE3 + .byte 0x01, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x55, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x00, 0xE0, 0x8D, 0xE5 + .byte 0x04, 0x60, 0x8D, 0xE5, 0x08, 0x50, 0x8D, 0xE5, 0x0C, 0x00, 0x8D, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x10, 0xC0, 0x8D, 0xE5, 0xE9, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A + .byte 0x00, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC4, 0xE1, 0xB2, 0x00, 0xC4, 0xE1, 0xB4, 0x00, 0xC4, 0xE1 + .byte 0xB6, 0x00, 0xC4, 0xE1, 0x18, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x18, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0xFC, 0x7F, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x74, 0x00, 0x9F, 0xE5, 0xB0, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x12 + .byte 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xC0, 0xE1 + .byte 0xB2, 0xEE, 0xFF, 0xEB, 0x54, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xB2, 0x13, 0xC0, 0xE1 + .byte 0xB6, 0x13, 0xC0, 0xE1, 0xBC, 0x10, 0xC0, 0xE1, 0x00, 0x10, 0x80, 0xE5, 0x10, 0x10, 0x80, 0xE5 + .byte 0xB0, 0x13, 0xC0, 0xE1, 0xB4, 0x13, 0xC0, 0xE1, 0x06, 0x50, 0xA0, 0xE3, 0x01, 0x40, 0xA0, 0xE3 + .byte 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0x1D, 0xEF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xFA, 0xFF, 0xFF, 0x0A, 0x18, 0x10, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE3, 0x22, 0xEF, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x54, 0x1D, 0x02 + .byte 0x74, 0x54, 0x1D, 0x02, 0x48, 0x41, 0x0D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2 + .byte 0x01, 0x08, 0xA0, 0xE1, 0x20, 0x38, 0xA0, 0xE1, 0x7F, 0x0C, 0x03, 0xE2, 0x00, 0x04, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x52, 0xE3, 0x20, 0x08, 0xA0, 0xE1, 0x0F, 0x00, 0x00, 0x0A, 0x88, 0x12, 0x9F, 0xE5 + .byte 0x01, 0x20, 0xA0, 0xE3, 0xB4, 0x43, 0xD1, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0x12, 0x20, 0x84, 0xE1 + .byte 0x00, 0x00, 0x53, 0xE3, 0xB4, 0x23, 0xC1, 0xE1, 0x08, 0xD0, 0x8D, 0x02, 0x10, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x00, 0x50, 0xE3 + .byte 0x31, 0x00, 0x00, 0x1A, 0x40, 0x12, 0x9F, 0xE5, 0xBC, 0x30, 0xD1, 0xE1, 0xB4, 0x21, 0xD1, 0xE1 + .byte 0x01, 0x30, 0x83, 0xE2, 0xBC, 0x30, 0xC1, 0xE1, 0xBC, 0x30, 0xD1, 0xE1, 0x02, 0x00, 0x53, 0xE1 + .byte 0x00, 0x20, 0xA0, 0x23, 0xBC, 0x20, 0xC1, 0x21, 0x20, 0x12, 0x9F, 0xE5, 0x18, 0x22, 0x9F, 0xE5 + .byte 0xB0, 0x30, 0xD1, 0xE1, 0x18, 0x12, 0x9F, 0xE5, 0xBC, 0xC0, 0xD2, 0xE1, 0xB0, 0x30, 0xCD, 0xE1 + .byte 0xB0, 0x10, 0xD1, 0xE1, 0x10, 0x40, 0x92, 0xE5, 0x8C, 0xE1, 0xA0, 0xE1, 0xB2, 0x10, 0xCD, 0xE1 + .byte 0x00, 0x30, 0x9D, 0xE5, 0x8C, 0x11, 0x84, 0xE0, 0x03, 0x3A, 0xA0, 0xE1, 0x23, 0x3A, 0xA0, 0xE1 + .byte 0xBE, 0x30, 0x84, 0xE1, 0x00, 0x30, 0x9D, 0xE5, 0x03, 0x34, 0xA0, 0xE1, 0x23, 0x3A, 0xA0, 0xE1 + .byte 0xB2, 0x30, 0xC1, 0xE1, 0x00, 0x30, 0x9D, 0xE5, 0x83, 0x33, 0xA0, 0xE1, 0xA3, 0x3F, 0xA0, 0xE1 + .byte 0xFF, 0x30, 0x03, 0xE2, 0xB4, 0x30, 0xC1, 0xE1, 0x00, 0x30, 0x9D, 0xE5, 0x83, 0x32, 0xA0, 0xE1 + .byte 0x23, 0x3F, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0xB6, 0x30, 0xC1, 0xE1, 0x00, 0x30, 0x92, 0xE5 + .byte 0x00, 0x00, 0x53, 0xE3, 0x08, 0xD0, 0x8D, 0x02, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0xBC, 0x20, 0xD2, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0xFF, 0x20, 0x02, 0xE2, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x14, 0x11, 0xE2 + .byte 0x08, 0xD0, 0x8D, 0x02, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xFF, 0x10, 0x03, 0xE2 + .byte 0x04, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0x53, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA + .byte 0x51, 0x00, 0x00, 0xEA, 0x39, 0x00, 0x00, 0xEA, 0x3A, 0x00, 0x00, 0xEA, 0x35, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A + .byte 0x02, 0x00, 0x50, 0xE3, 0x30, 0x11, 0x9F, 0x05, 0x00, 0x20, 0xA0, 0x03, 0xB2, 0x23, 0xC1, 0x01 + .byte 0x1B, 0x00, 0x00, 0xEA, 0x24, 0x11, 0x9F, 0xE5, 0x24, 0x31, 0x9F, 0xE5, 0xB0, 0xC0, 0xD1, 0xE1 + .byte 0x14, 0x11, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0xB4, 0xC0, 0xCD, 0xE1, 0xB0, 0x30, 0xD3, 0xE1 + .byte 0xB6, 0x30, 0xCD, 0xE1, 0x04, 0xC0, 0x9D, 0xE5, 0xB2, 0x23, 0xC1, 0xE1, 0x8C, 0x33, 0xA0, 0xE1 + .byte 0x8C, 0x22, 0xA0, 0xE1, 0x0C, 0xEA, 0xA0, 0xE1, 0x0C, 0xC4, 0xA0, 0xE1, 0xA3, 0x3F, 0xA0, 0xE1 + .byte 0x22, 0x2F, 0xA0, 0xE1, 0x2E, 0xEA, 0xA0, 0xE1, 0x2C, 0xCA, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2 + .byte 0xFF, 0x20, 0x02, 0xE2, 0xB4, 0xE0, 0xC1, 0xE1, 0xB6, 0xC0, 0xC1, 0xE1, 0xB8, 0x30, 0xC1, 0xE1 + .byte 0xBA, 0x20, 0xC1, 0xE1, 0x02, 0x00, 0x00, 0xEA, 0xBC, 0x10, 0x9F, 0xE5, 0x02, 0x20, 0xA0, 0xE3 + .byte 0xB2, 0x23, 0xC1, 0xE1, 0xB0, 0x10, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0xB6, 0xC3, 0xD1, 0xE1 + .byte 0x12, 0x20, 0xE0, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0x02, 0x20, 0x0C, 0xE0, 0x00, 0x00, 0x53, 0xE3 + .byte 0xB6, 0x23, 0xC1, 0xE1, 0x08, 0xD0, 0x8D, 0x02, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE1, 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0xD0, 0x8D, 0xE2 + .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x03, 0x40, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA + .byte 0x01, 0x40, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x02, 0x40, 0xA0, 0xE3, 0x58, 0x10, 0x9F, 0xE5 + .byte 0x01, 0xE0, 0xA0, 0xE3, 0xB4, 0xC3, 0xD1, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0x1E, 0x20, 0xE0, 0xE1 + .byte 0x1E, 0xC0, 0x8C, 0xE1, 0xB4, 0xC3, 0xC1, 0xE1, 0xB6, 0xC3, 0xD1, 0xE1, 0x00, 0x00, 0x53, 0xE3 + .byte 0x08, 0xD0, 0x8D, 0x02, 0x02, 0x20, 0x0C, 0xE0, 0xB6, 0x23, 0xC1, 0xE1, 0x10, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0xFF, 0x10, 0x04, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1 + .byte 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x17, 0xE5, 0xFF, 0xEB + .byte 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02 + .byte 0xAA, 0xFF, 0x7F, 0x02, 0xAC, 0xFF, 0x7F, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x9C, 0xE5 + .byte 0x01, 0x00, 0x50, 0xE3, 0xFC, 0xFF, 0xFF, 0x0A, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02 + .byte 0x04, 0x10, 0x9F, 0xE5, 0x0C, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x20, 0x10, 0x9F, 0xE5, 0x09, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x25, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3 + .byte 0x00, 0x00, 0xA0, 0xB3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x42, 0x00, 0x03, 0x70, 0x40, 0x2D, 0xE9, 0x14, 0xC1, 0x9F, 0xE5, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x0C, 0x10, 0x83, 0xE1, 0x09, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x15, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3 + .byte 0x70, 0x40, 0xBD, 0xB8, 0x1E, 0xFF, 0x2F, 0xB1, 0x26, 0x08, 0xA0, 0xE1, 0x01, 0x18, 0x80, 0xE3 + .byte 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x0C, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xB8, 0x1E, 0xFF, 0x2F, 0xB1, 0xC4, 0x10, 0x9F, 0xE5 + .byte 0x09, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0x06, 0xE0, 0x02, 0x18, 0x81, 0xE3, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x02, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xB8 + .byte 0x1E, 0xFF, 0x2F, 0xB1, 0x25, 0x08, 0xA0, 0xE1, 0x03, 0x18, 0x80, 0xE3, 0x09, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x20, 0xA0, 0xE3, 0xF9, 0xED, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3 + .byte 0x70, 0x40, 0xBD, 0xB8, 0x1E, 0xFF, 0x2F, 0xB1, 0x78, 0x10, 0x9F, 0xE5, 0x09, 0x00, 0xA0, 0xE3 + .byte 0x01, 0x10, 0x05, 0xE0, 0x01, 0x17, 0x81, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xEF, 0xED, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xB8, 0x1E, 0xFF, 0x2F, 0xB1 + .byte 0x24, 0x08, 0xA0, 0xE1, 0x05, 0x18, 0x80, 0xE3, 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 + .byte 0xE6, 0xED, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xB8 + .byte 0x1E, 0xFF, 0x2F, 0xB1, 0x2C, 0x00, 0x9F, 0xE5, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x04, 0xE0 + .byte 0x01, 0x10, 0x80, 0xE1, 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xDB, 0xED, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x41, 0x00, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x01, 0x10, 0x80, 0xE1, 0x09, 0x00, 0xA0, 0xE3, 0xCC, 0xED, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x00, 0x03, 0x10, 0x40, 0x2D, 0xE9, 0x01, 0x40, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x52, 0xE3, 0x0D, 0x00, 0x00, 0x0A, 0x20, 0x01, 0x9F, 0xE5, 0x1C, 0x21, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x04, 0xC0, 0x92, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0x13 + .byte 0x00, 0x10, 0x80, 0x15, 0x00, 0x00, 0x5C, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x08, 0x10, 0x92, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x06, 0x00, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x3C, 0xFF, 0x2F, 0xE1 + .byte 0xFF, 0x00, 0x04, 0xE2, 0x00, 0x18, 0xA0, 0xE1, 0x7F, 0x2C, 0x04, 0xE2, 0x02, 0x04, 0xA0, 0xE1 + .byte 0x21, 0x18, 0xA0, 0xE1, 0x04, 0x00, 0x51, 0xE3, 0x20, 0x28, 0xA0, 0xE1, 0x01, 0xF1, 0x8F, 0x90 + .byte 0x0E, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA + .byte 0x06, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x00, 0x00, 0xEA + .byte 0x04, 0x00, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA + .byte 0x05, 0x00, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA + .byte 0x06, 0x00, 0xA0, 0xE3, 0x51, 0x00, 0x52, 0xE3, 0x08, 0x00, 0x00, 0x1A, 0x7C, 0x10, 0x9F, 0xE5 + .byte 0x10, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x14, 0x10, 0x91, 0xE5, 0x32, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x40, 0x00, 0x52, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x50, 0x10, 0x9F, 0xE5, 0x18, 0x20, 0x91, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0x48, 0x10, 0x9F, 0x15, 0xB0, 0x10, 0xD1, 0x11, 0xB0, 0x10, 0xC2, 0x11 + .byte 0x38, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x00, 0x20, 0xA0, 0x13 + .byte 0x00, 0x20, 0x81, 0x15, 0x24, 0x20, 0x9F, 0xE5, 0x04, 0x40, 0x92, 0xE5, 0x00, 0x00, 0x54, 0xE3 + .byte 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x08, 0x10, 0x92, 0xE5, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x04, 0x30, 0x82, 0xE5, 0x34, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xB0, 0x54, 0x1D, 0x02, 0x94, 0xFF, 0x7F, 0x02, 0x04, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x90, 0xFF, 0x7F, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x0B, 0x00, 0x00, 0xEB, 0x24, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x00, 0x1A, 0x31, 0xFF, 0xFF, 0xEB + .byte 0x10, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0x44, 0x0D, 0x02, 0xB0, 0x54, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1, 0xE7, 0xE2, 0xFF, 0xEB + .byte 0x50, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x0A + .byte 0xE7, 0xE2, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0x30, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5, 0xE0, 0xE2, 0xFF, 0xEB + .byte 0x20, 0x00, 0x9F, 0xE5, 0x04, 0x50, 0x80, 0xE5, 0x08, 0x40, 0x80, 0xE5, 0x1F, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x03, 0x00, 0xA0, 0x03, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x0B, 0x00, 0x00, 0xEB + .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x00, 0x1A + .byte 0x04, 0xFF, 0xFF, 0xEB, 0x10, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0x44, 0x0D, 0x02, 0xB0, 0x54, 0x1D, 0x02 + .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x04, 0x00, 0x97, 0xE5 + .byte 0x01, 0x60, 0xA0, 0xE1, 0x1F, 0x00, 0x10, 0xE2, 0x02, 0x50, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0x12 + .byte 0x02, 0x00, 0xA0, 0x13, 0xF0, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x08, 0x10, 0x97, 0xE5 + .byte 0x1F, 0x00, 0x11, 0xE2, 0x04, 0xD0, 0x8D, 0x12, 0x02, 0x00, 0xA0, 0x13, 0xF0, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x02, 0x00, 0xA0, 0x03 + .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x00, 0x97, 0xE5, 0x01, 0x0B, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x32, 0x02, 0x00, 0xA0, 0x33, 0xF0, 0x40, 0xBD, 0x38, 0x1E, 0xFF, 0x2F, 0x31 + .byte 0x00, 0x00, 0x97, 0xE5, 0x05, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x11, 0x00, 0x00, 0xEA + .byte 0x04, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA + .byte 0x08, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x00, 0x10, 0xA0, 0xE3, 0x0D, 0x00, 0x00, 0xEA + .byte 0x01, 0x10, 0xA0, 0xE3, 0x0B, 0x00, 0x00, 0xEA, 0x02, 0x10, 0xA0, 0xE3, 0x09, 0x00, 0x00, 0xEA + .byte 0x03, 0x10, 0xA0, 0xE3, 0x07, 0x00, 0x00, 0xEA, 0x05, 0x10, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA + .byte 0x07, 0x10, 0xA0, 0xE3, 0x03, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2, 0x02, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x00, 0x97, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x10, 0x00, 0x81, 0x13, 0xFF, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x01, 0x02, 0xFF, 0x40, 0x00, 0xE2 + .byte 0x82, 0xE2, 0xFF, 0xEB, 0x70, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3 + .byte 0x04, 0x00, 0x00, 0x0A, 0x82, 0xE2, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5 + .byte 0x7B, 0xE2, 0xFF, 0xEB, 0x40, 0x00, 0x9F, 0xE5, 0x04, 0x30, 0xA0, 0xE1, 0x04, 0x60, 0x80, 0xE5 + .byte 0x08, 0x50, 0x80, 0xE5, 0x14, 0x10, 0x97, 0xE5, 0x10, 0x10, 0x80, 0xE5, 0x18, 0x10, 0x97, 0xE5 + .byte 0x14, 0x10, 0x80, 0xE5, 0x04, 0x00, 0x97, 0xE5, 0x08, 0x10, 0x97, 0xE5, 0x0C, 0x20, 0x97, 0xE5 + .byte 0xBF, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x03, 0x00, 0xA0, 0x03 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02 + .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x06, 0x00, 0x50, 0xE3, 0x01, 0x70, 0xA0, 0xE1 + .byte 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xA2, 0x02, 0x00, 0xA0, 0xA3 + .byte 0xF0, 0x40, 0xBD, 0xA8, 0x1E, 0xFF, 0x2F, 0xA1, 0x03, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 + .byte 0x0B, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA + .byte 0x05, 0x00, 0x00, 0xEA, 0x00, 0x40, 0xA0, 0xE3, 0x09, 0x00, 0x00, 0xEA, 0x01, 0x40, 0xA0, 0xE3 + .byte 0x07, 0x00, 0x00, 0xEA, 0x02, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA, 0x03, 0x40, 0xA0, 0xE3 + .byte 0x03, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2, 0x02, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x45, 0xE2, 0xFF, 0xEB, 0x58, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x45, 0xE2, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x20, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x81, 0xE5, 0x3E, 0xE2, 0xFF, 0xEB, 0x28, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x04, 0x60, 0x81, 0xE5, 0x08, 0x50, 0x81, 0xE5, 0x18, 0x70, 0x81, 0xE5, 0xD3, 0xFE, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x03, 0x00, 0xA0, 0x03, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x6C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x58, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x30, 0xA0, 0xE3, 0xB0, 0x30, 0xC1, 0xE1, 0x00, 0x20, 0x80, 0xE5 + .byte 0x04, 0x20, 0x80, 0xE5, 0x45, 0xEC, 0xFF, 0xEB, 0x09, 0x50, 0xA0, 0xE3, 0x01, 0x40, 0xA0, 0xE3 + .byte 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0xB9, 0xEC, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xFA, 0xFF, 0xFF, 0x0A, 0x24, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x20, 0x10, 0x9F, 0xE5 + .byte 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0xBB, 0xEC, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xAC, 0x54, 0x1D, 0x02, 0xB0, 0x54, 0x1D, 0x02 + .byte 0x90, 0xFF, 0x7F, 0x02, 0xC8, 0x45, 0x0D, 0x02, 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x4B, 0x0D, 0x02, 0xE0, 0x54, 0x1D, 0x02 + .byte 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x78, 0x4B, 0x0D, 0x02, 0xD8, 0x54, 0x1D, 0x02, 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0xC4, 0x4B, 0x0D, 0x02, 0xE0, 0x54, 0x1D, 0x02 + .byte 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x0C, 0x4C, 0x0D, 0x02, 0xD8, 0x54, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xB0, 0xE1 + .byte 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x00, 0x94, 0xE5, 0x00, 0x10, 0x94, 0xE5 + .byte 0x31, 0xFF, 0x2F, 0xE1, 0x08, 0x40, 0x94, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A + .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x00, 0x30, 0x90, 0xE5, 0x03, 0x20, 0xA0, 0xE1, 0x00, 0x00, 0x53, 0xE3, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x01, 0x00, 0x53, 0xE1, 0x05, 0x00, 0x00, 0x1A, 0x02, 0x00, 0x53, 0xE1, 0x08, 0x10, 0x93, 0x05 + .byte 0x00, 0x10, 0x80, 0x05, 0x08, 0x00, 0x93, 0x15, 0x08, 0x00, 0x82, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x03, 0x20, 0xA0, 0xE1, 0x08, 0x30, 0x93, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0xF3, 0xFF, 0xFF, 0x1A + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x20, 0x90, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0x00, 0x20, 0xA0, 0x03, 0x08, 0x20, 0x81, 0x05, 0x00, 0x10, 0x80, 0x05 + .byte 0x1E, 0xFF, 0x2F, 0x01, 0x08, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A + .byte 0x00, 0x20, 0xA0, 0xE1, 0x08, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A + .byte 0x08, 0x00, 0x81, 0xE5, 0x08, 0x10, 0x82, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x20, 0x90, 0x15, 0x08, 0x20, 0x81, 0x15, 0x00, 0x10, 0x80, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE2 + .byte 0x09, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x0E, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x58, 0x0D, 0x02, 0x70, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x14, 0x03, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x1C, 0x10, 0x9F, 0xE5, 0x1C, 0x00, 0x9F, 0xE5, 0x04, 0x50, 0x81, 0xE5, 0x08, 0x40, 0x81, 0xE5 + .byte 0x0C, 0x60, 0x81, 0xE5, 0x03, 0x01, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE4, 0x54, 0x1D, 0x02, 0x00, 0x67, 0x00, 0x03, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE2, 0x09, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0xEB, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x58, 0x0D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0xF1, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x20, 0x00, 0x9F, 0xE5 + .byte 0x20, 0x10, 0x9F, 0xE5, 0xFF, 0x20, 0x06, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x04, 0x50, 0x81, 0xE5 + .byte 0x08, 0x40, 0x81, 0xE5, 0xDF, 0x00, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x66, 0x00, 0x03, 0xE4, 0x54, 0x1D, 0x02, 0x10, 0x00, 0x9F, 0xE5 + .byte 0xB0, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x03, 0x00, 0x04, 0x14, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x4D, 0x0D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x2E, 0x00, 0x00, 0x1A + .byte 0x00, 0x00, 0x52, 0xE3, 0x09, 0x00, 0x00, 0x1A, 0xBC, 0x20, 0x9F, 0xE5, 0xBC, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x92, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x42, 0xE0, 0x07, 0x00, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x92, 0x00, 0x00, 0xA0, 0x93, 0x00, 0x40, 0xBD, 0x98, 0x1E, 0xFF, 0x2F, 0x91 + .byte 0x00, 0x00, 0x51, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x53, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x01, 0x00, 0xA0, 0xE1, 0x57, 0x01, 0x00, 0xEB, 0x03, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE1 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE1, 0x61, 0x01, 0x00, 0xEB, 0x70, 0x10, 0x9F, 0xE5 + .byte 0xB0, 0x00, 0xD1, 0xE1, 0x01, 0x00, 0x80, 0xE3, 0xB0, 0x00, 0xC1, 0xE1, 0x12, 0x00, 0x00, 0xEA + .byte 0x5C, 0xE0, 0x9F, 0xE5, 0x50, 0x20, 0x9F, 0xE5, 0xB0, 0xC0, 0xDE, 0xE1, 0x4C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x01, 0xC0, 0xCC, 0xE3, 0xB0, 0xC0, 0xCE, 0xE1, 0x00, 0x20, 0x92, 0xE5 + .byte 0x00, 0x20, 0x80, 0xE5, 0x08, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x53, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x01, 0x00, 0xA0, 0xE1, 0x3F, 0x01, 0x00, 0xEB, 0x03, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE1 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE1, 0x49, 0x01, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x3C, 0xFC, 0x7F, 0x02 + .byte 0xDC, 0x54, 0x1D, 0x02, 0x04, 0x03, 0x00, 0x04, 0xF0, 0x4F, 0x2D, 0xE9, 0x1C, 0xD0, 0x4D, 0xE2 + .byte 0x0C, 0x32, 0x9F, 0xE5, 0x00, 0xA0, 0xA0, 0xE1, 0x00, 0x00, 0x93, 0xE5, 0x01, 0x90, 0xA0, 0xE1 + .byte 0x02, 0xB0, 0xA0, 0xE1, 0x00, 0x80, 0xA0, 0xE3, 0x2E, 0xFF, 0xFF, 0xEB, 0xF4, 0x11, 0x9F, 0xE5 + .byte 0x08, 0x00, 0xA0, 0xE1, 0xB0, 0x40, 0xD1, 0xE1, 0xB0, 0x00, 0xC1, 0xE1, 0x1B, 0xE1, 0xFF, 0xEB + .byte 0x00, 0x00, 0x8D, 0xE5, 0xE0, 0x01, 0x9F, 0xE5, 0xD9, 0xD3, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE5 + .byte 0x01, 0x07, 0xA0, 0xE3, 0xF6, 0xD3, 0xFF, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x18, 0xE1, 0xFF, 0xEB + .byte 0xC0, 0x21, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x00, 0xD2, 0xE1, 0x08, 0x00, 0x1A, 0xE2 + .byte 0xB0, 0x10, 0xC2, 0xE1, 0x03, 0x00, 0x00, 0x0A, 0xB0, 0x01, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1 + .byte 0x02, 0x00, 0x50, 0xE3, 0x08, 0xA0, 0xCA, 0x03, 0x10, 0x00, 0x1A, 0xE2, 0x02, 0x00, 0x00, 0x0A + .byte 0xE5, 0x19, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x10, 0xA0, 0xCA, 0x03, 0x90, 0x01, 0x9F, 0xE5 + .byte 0x01, 0x13, 0xA0, 0xE3, 0x00, 0x70, 0x91, 0xE5, 0x00, 0x60, 0x90, 0xE5, 0x8A, 0xFF, 0xFF, 0xEB + .byte 0x08, 0x00, 0x8D, 0xE5, 0x0C, 0x00, 0x8D, 0xE2, 0x10, 0x10, 0x8D, 0xE2, 0x6D, 0x00, 0x00, 0xEB + .byte 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0xCF, 0x00, 0x00, 0xEB, 0x64, 0x21, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x92, 0xE5, 0x14, 0x00, 0x8D, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x14, 0x00, 0x9D, 0xE5 + .byte 0x01, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x92, 0xE5, 0x01, 0x23, 0xA0, 0xE3 + .byte 0x14, 0x00, 0x8D, 0xE5, 0x00, 0x00, 0x92, 0xE5, 0x34, 0x11, 0x9F, 0xE5, 0x03, 0x08, 0xC0, 0xE3 + .byte 0x00, 0x00, 0x82, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x01, 0x08, 0xC0, 0xE3, 0x00, 0x00, 0x81, 0xE5 + .byte 0x20, 0x21, 0x9F, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x14, 0x00, 0x9D, 0xE5, 0x01, 0x00, 0x50, 0xE1 + .byte 0xFB, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x92, 0xE5, 0x14, 0x00, 0x8D, 0xE5, 0x04, 0x21, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x92, 0xE5, 0x14, 0x00, 0x9D, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0x0A + .byte 0x0C, 0x00, 0x9D, 0xE5, 0x10, 0x10, 0x9D, 0xE5, 0x80, 0x02, 0x8A, 0xE1, 0x01, 0x03, 0x80, 0xE1 + .byte 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x58, 0xA0, 0xE1, 0x0B, 0x00, 0x89, 0xE1, 0x00, 0x08, 0xA0, 0xE1 + .byte 0x20, 0x98, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x09, 0x10, 0xA0, 0xE1, 0x7B, 0x01, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x1A, 0x19, 0xE2, 0xFF, 0xEB, 0xB8, 0x00, 0x9F, 0xE5 + .byte 0xE6, 0xE0, 0xFF, 0xEB, 0x08, 0x00, 0x1A, 0xE2, 0x03, 0x00, 0x00, 0x0A, 0xAC, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x06, 0x10, 0xE2, 0x01, 0x80, 0xA0, 0x13, 0x00, 0x00, 0x58, 0xE3 + .byte 0x0E, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x9D, 0xE5, 0x01, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A + .byte 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x54, 0xFF, 0xFF, 0xEB, 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0xC1, 0x00, 0x00, 0xEB + .byte 0x01, 0x13, 0xA0, 0xE3, 0x58, 0x00, 0x9F, 0xE5, 0x00, 0x70, 0x81, 0xE5, 0x00, 0x60, 0x80, 0xE5 + .byte 0xB2, 0xE0, 0xFF, 0xEB, 0x04, 0x00, 0x9D, 0xE5, 0x91, 0xD3, 0xFF, 0xEB, 0x00, 0x00, 0x9D, 0xE5 + .byte 0xB3, 0xE0, 0xFF, 0xEB, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x58, 0xE3, 0xB0, 0x00, 0xD1, 0xE1 + .byte 0xB0, 0x40, 0xC1, 0xE1, 0x00, 0x00, 0x00, 0x0A, 0x44, 0x00, 0x00, 0xEB, 0x30, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xB3, 0xFE, 0xFF, 0xEB, 0x1C, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xD8, 0x54, 0x1D, 0x02, 0x08, 0x02, 0x00, 0x04, 0xFF, 0xFF, 0x3F, 0x00 + .byte 0x40, 0xFC, 0x7F, 0x02, 0x00, 0x10, 0x00, 0x04, 0x3C, 0xFC, 0x7F, 0x02, 0x00, 0x6A, 0x99, 0x00 + .byte 0x14, 0x02, 0x00, 0x04, 0xE0, 0x54, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x08, 0x50, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x20, 0xA0, 0xE1, 0x05, 0xEB, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A + .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FUN_020D50D8 +FUN_020D50D8: ; 0x020D50D8 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r5, r0 + add r1, sp, #0x0 + mov r0, #0x0 + bl _020D5498 +_020D50F4: + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0x55, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0xB0, 0x10, 0xDD, 0xE1 + .byte 0x08, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x10, 0x85, 0xE5 + .byte 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0xB0, 0x10, 0xDD, 0xE1, 0x04, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03 + .byte 0x00, 0x10, 0x84, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x18, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xDC, 0x53, 0x0D, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x08, 0xA0, 0xE1 + .byte 0x20, 0x18, 0xA0, 0xE1, 0x02, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xDC, 0x53, 0x0D, 0x02 + .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x8D, 0xE2 + .byte 0x09, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0xB6, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x58, 0x0D, 0x02, 0xF0, 0x40, 0x2D, 0xE9 + .byte 0x0C, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x98, 0x00, 0x9F, 0xE5, 0x01, 0x60, 0xA0, 0xE1 + .byte 0x6A, 0xE0, 0xFF, 0xEB, 0xD8, 0xFE, 0xFF, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x1A, 0x00, 0x00, 0x0A + .byte 0x00, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0x8D, 0xE2, 0xBA, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x9D, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x19, 0x00, 0x00, 0xEB, 0x04, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x13, 0x00, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xCC, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x34, 0x50, 0x9F, 0xE5 + .byte 0x01, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x50, 0xE0, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0xC4, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x0A, 0x07, 0x10, 0xA0, 0xE1 + .byte 0x06, 0x20, 0xA0, 0xE1, 0x0E, 0x00, 0xA0, 0xE3, 0xBB, 0x00, 0x00, 0xEB, 0x0C, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x6A, 0x99, 0x00, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0x8D, 0xE2, 0x09, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0x7B, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x58, 0x0D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0xC0, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x51, 0xE3 + .byte 0x06, 0xC0, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3, 0x07, 0xC0, 0xA0, 0x03, 0x0C, 0x00, 0x00, 0xEA + .byte 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x51, 0xE3, 0x04, 0xC0, 0xA0, 0x03 + .byte 0x00, 0x00, 0x51, 0xE3, 0x05, 0xC0, 0xA0, 0x03, 0x05, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x51, 0xE3, 0x08, 0xC0, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3 + .byte 0x09, 0xC0, 0xA0, 0x03, 0x00, 0x00, 0x5C, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x20, 0x00, 0x9F, 0x05 + .byte 0x00, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x02, 0x10, 0xA0, 0xE1, 0x0C, 0x00, 0xA0, 0xE1 + .byte 0x03, 0x20, 0xA0, 0xE1, 0x88, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x28, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE2, 0x09, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x48, 0x01, 0x00, 0xEB + .byte 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x7C, 0x58, 0x0D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x00, 0x50, 0xE3 + .byte 0x04, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA + .byte 0x02, 0x00, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x14, 0x00, 0x9F, 0x05 + .byte 0x00, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x5F, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x40, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0x8D, 0xE2, 0x09, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0x1F, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x58, 0x0D, 0x02, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1 + .byte 0x23, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03 + .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x38, 0x00, 0x9F, 0xE5, 0x38, 0x10, 0x9F, 0xE5 + .byte 0xFF, 0x20, 0x07, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x04, 0x60, 0x81, 0xE5, 0x08, 0x50, 0x81, 0xE5 + .byte 0x10, 0xFF, 0xFF, 0xEB, 0x24, 0x00, 0x9F, 0xE5, 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x04, 0xE0 + .byte 0x01, 0x00, 0x80, 0xE1, 0x0B, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x64, 0x00, 0x02, 0xE4, 0x54, 0x1D, 0x02 + .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01 +_020D5498: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _020D54D0 ; =0x020D587C + add r3, sp, #0x0 + bl _020D54D4 +_020D54AC: + .byte 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0xF0, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020D54D0: .word 0x020D587C +_020D54D4: + stmdb sp!, {r4-r8,lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl _020D58C4 +_020D54EC: + .byte 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0xA0, 0x03, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x38, 0xC0, 0x9F, 0xE5 + .byte 0x38, 0x10, 0x9F, 0xE5, 0x38, 0x00, 0x9F, 0xE5, 0xFF, 0x20, 0x07, 0xE2, 0x87, 0xE1, 0xA0, 0xE1 + .byte 0x00, 0x80, 0xA0, 0xE3, 0x2C, 0x30, 0x9F, 0xE5, 0xBE, 0x80, 0x8C, 0xE1, 0x00, 0x00, 0x82, 0xE1 + .byte 0x04, 0x50, 0x81, 0xE5, 0x08, 0x40, 0x81, 0xE5, 0x87, 0x61, 0x83, 0xE7, 0xDD, 0xFE, 0xFF, 0xEB + .byte 0x08, 0x00, 0xA0, 0xE1, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x55, 0x1D, 0x02 + .byte 0xE4, 0x54, 0x1D, 0x02, 0x00, 0x65, 0x00, 0x03, 0x10, 0x55, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1, 0xD8, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x24, 0x28, 0xA0, 0xE1, 0x34, 0x10, 0x9F, 0xE5, 0x34, 0x00, 0x9F, 0xE5, 0xFF, 0x20, 0x02, 0xE2 + .byte 0x00, 0x00, 0x82, 0xE1, 0x04, 0x60, 0x81, 0xE5, 0x08, 0x50, 0x81, 0xE5, 0xC5, 0xFE, 0xFF, 0xEB + .byte 0x20, 0x00, 0x9F, 0xE5, 0x20, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x04, 0xE0, 0x01, 0x00, 0x80, 0xE1 + .byte 0xC0, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xE4, 0x54, 0x1D, 0x02, 0x00, 0x63, 0x00, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01 + .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1 + .byte 0xBB, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03 + .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x70, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x6C, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x81, 0xE5, 0xAA, 0xFE, 0xFF, 0xEB, 0x5C, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFC, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x50, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x00, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE1 + .byte 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x8C, 0xE5, 0xD2, 0xFD, 0xFF, 0xEB, 0x38, 0x00, 0x9F, 0xE5 + .byte 0xFF, 0x10, 0x05, 0xE2, 0x00, 0x00, 0x81, 0xE1, 0x9A, 0xFE, 0xFF, 0xEB, 0x2C, 0x00, 0x9F, 0xE5 + .byte 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x04, 0xE0, 0x01, 0x00, 0x80, 0xE1, 0x95, 0xFE, 0xFF, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xD0, 0x54, 0x1D, 0x02, 0x00, 0x60, 0x00, 0x03, 0xD4, 0x54, 0x1D, 0x02, 0x00, 0x61, 0x00, 0x02 + .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x02, 0x00, 0xA0, 0xE3, 0x65, 0x00, 0x00, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7F, 0x0C, 0x01, 0xE2 + .byte 0x00, 0x04, 0xA0, 0xE1, 0xFF, 0x10, 0x01, 0xE2, 0x20, 0x28, 0xA0, 0xE1, 0x01, 0x08, 0xA0, 0xE1 + .byte 0x70, 0x00, 0x52, 0xE3, 0x20, 0x08, 0xA0, 0xE1, 0x0F, 0x00, 0x00, 0x3A, 0x74, 0x00, 0x52, 0xE3 + .byte 0x0D, 0x00, 0x00, 0x8A, 0x84, 0x10, 0x9F, 0xE5, 0x70, 0x20, 0x42, 0xE2, 0xFF, 0x00, 0x00, 0xE2 + .byte 0x82, 0x11, 0x91, 0xE7, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3 + .byte 0xB0, 0x00, 0xC1, 0x11, 0x82, 0x11, 0xA0, 0xE1, 0x64, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3 + .byte 0xB1, 0x20, 0x80, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x52, 0xE3 + .byte 0x50, 0x10, 0x9F, 0x05, 0x01, 0x20, 0xA0, 0x03, 0x00, 0x20, 0x81, 0x05, 0x0B, 0x00, 0x00, 0x0A + .byte 0x62, 0x00, 0x52, 0xE3, 0x40, 0x10, 0x9F, 0x05, 0x01, 0x20, 0xA0, 0x03, 0x00, 0x20, 0x81, 0x05 + .byte 0x06, 0x00, 0x00, 0x0A, 0x67, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x2C, 0x10, 0x9F, 0xE5 + .byte 0x0C, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0x81, 0x15, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x38, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x10, 0x55, 0x1D, 0x02, 0x0C, 0x55, 0x1D, 0x02, 0xD0, 0x54, 0x1D, 0x02, 0xD4, 0x54, 0x1D, 0x02 + .byte 0xE4, 0x54, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x98, 0x10, 0x9F, 0xE5 + .byte 0xB0, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0x84, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x30, 0xA0, 0xE3 + .byte 0xB0, 0x30, 0xC1, 0xE1, 0x00, 0x20, 0x80, 0xE5, 0x04, 0x20, 0x80, 0xE5, 0x03, 0xE9, 0xFF, 0xEB + .byte 0x08, 0x50, 0xA0, 0xE3, 0x01, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1 + .byte 0x77, 0xE9, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A, 0x50, 0x10, 0x9F, 0xE5 + .byte 0x08, 0x00, 0xA0, 0xE3, 0x7C, 0xE9, 0xFF, 0xEB, 0x00, 0x30, 0xA0, 0xE3, 0x44, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x20, 0xA0, 0xE1, 0x83, 0x11, 0xA0, 0xE1, 0x01, 0x30, 0x83, 0xE2, 0xB1, 0x20, 0x80, 0xE1 + .byte 0x05, 0x00, 0x53, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA, 0x2C, 0x00, 0x9F, 0xE5, 0x2A, 0xDA, 0xFF, 0xEB + .byte 0x28, 0x10, 0x9F, 0xE5, 0x28, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x10, 0x80, 0xE5 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xCC, 0x54, 0x1D, 0x02 + .byte 0xE4, 0x54, 0x1D, 0x02, 0x78, 0x56, 0x0D, 0x02, 0x0C, 0x55, 0x1D, 0x02, 0xF4, 0x54, 0x1D, 0x02 + .byte 0x3C, 0xFC, 0x7F, 0x02, 0xDC, 0x54, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x40, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x04, 0xC0, 0x92, 0xE5, 0x00, 0x00, 0x51, 0xE3 + .byte 0x00, 0x30, 0xA0, 0x13, 0x00, 0x30, 0x82, 0x15, 0x00, 0x00, 0x5C, 0xE3, 0x04, 0xD0, 0x8D, 0x02 + .byte 0x08, 0x10, 0x92, 0xE5, 0x00, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x14, 0x20, 0x9F, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x3C, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xE4, 0x54, 0x1D, 0x02, 0x00, 0x00, 0x81, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9, 0x30, 0x40, 0x9F, 0xE5, 0x00, 0x00, 0x94, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xB1, 0xDE, 0xFF, 0xEB + .byte 0x80, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0xC3, 0xE8, 0xFF, 0xEB, 0x00, 0x00, 0x94, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0xF8, 0xFF, 0xFF, 0x1A, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xE4, 0x54, 0x1D, 0x02 +_020D58C4: + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020CD310 + ldr r1, _020D5910 ; =0x021D54E4 + ldr r2, [r1, #0x0] + cmp r2, #0x0 + beq _020D58F4 + bl FUN_020CD324 + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {lr} + bx lr +_020D58F4: + mov r2, #0x1 + str r2, [r1, #0x0] + bl FUN_020CD324 + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D5910: .word 0x021D54E4 diff --git a/asm/arm9_thumb.s b/asm/arm9_thumb.s index 82e25175..3c463c3d 100644 --- a/asm/arm9_thumb.s +++ b/asm/arm9_thumb.s @@ -1848,7 +1848,7 @@ FUN_02001B80: ; 0x02001B80 ldr r0, [r0, #0xc] bx r3 nop -_02001B88: .word FUN_020191D0 + 1 +_02001B88: .word FUN_020191D0 thumb_func_start FUN_02001B8C FUN_02001B8C: ; 0x02001B8C @@ -2909,7 +2909,7 @@ FUN_0200232C: ; 0x0200232C ldr r1, _02002338 ; =0x0000FFFF bx r3 .balign 4 -_02002334: .word FUN_02002310 + 1 +_02002334: .word FUN_02002310 _02002338: .word 0x0000FFFF thumb_func_start FUN_0200233C @@ -4625,7 +4625,7 @@ FUN_02002FEC: ; 0x02002FEC ldr r3, _02002FF0 ; =FUN_02016A18 bx r3 .balign 4 -_02002FF0: .word FUN_02016A18 + 1 +_02002FF0: .word FUN_02016A18 thumb_func_start FUN_02002FF4 FUN_02002FF4: ; 0x02002FF4 @@ -5044,7 +5044,7 @@ _02003300: bx r3 .balign 4 _0200330C: .word 0xFFFF0003 -_02003310: .word FUN_02003464 + 1 +_02003310: .word FUN_02003464 thumb_func_start FUN_02003314 FUN_02003314: ; 0x02003314 @@ -8459,7 +8459,7 @@ FUN_02004CB4: ; 0x02004CB4 add sp, #0xc pop {r3-r4, pc} nop -_02004CF4: .word FUN_02005068 + 1 +_02004CF4: .word FUN_02005068 _02004CF8: .word 0x000055F0 thumb_func_start FUN_02004CFC @@ -10252,7 +10252,7 @@ _02005B04: str r0, [r6, #0x0] pop {r4-r6, pc} nop -_02005B28: .word FUN_02005B2C + 1 +_02005B28: .word FUN_02005B2C thumb_func_start FUN_02005B2C FUN_02005B2C: ; 0x02005B2C @@ -10658,7 +10658,7 @@ FUN_02005E64: ; 0x02005E64 ldr r3, _02005E68 ; =FUN_0200491C bx r3 .balign 4 -_02005E68: .word FUN_0200491C + 1 +_02005E68: .word FUN_0200491C thumb_func_start FUN_02005E6C FUN_02005E6C: ; 0x02005E6C @@ -11216,7 +11216,7 @@ FUN_02006260: ; 0x02006260 ldr r3, _02006264 ; =FUN_02016A18 bx r3 .balign 4 -_02006264: .word FUN_02016A18 + 1 +_02006264: .word FUN_02016A18 thumb_func_start FUN_02006268 FUN_02006268: ; 0x02006268 @@ -19540,11 +19540,11 @@ _0200A00C: pop {r4-r7, pc} .balign 4 _0200A024: .word 0x021C4670 -_0200A028: .word FUN_020213A0 + 1 -_0200A02C: .word FUN_0200A074 + 1 -_0200A030: .word FUN_0200A0B8 + 1 -_0200A034: .word FUN_0200A094 + 1 -_0200A038: .word FUN_0200A0DC + 1 +_0200A028: .word FUN_020213A0 +_0200A02C: .word FUN_0200A074 +_0200A030: .word FUN_0200A0B8 +_0200A034: .word FUN_0200A094 +_0200A038: .word FUN_0200A0DC thumb_func_start FUN_0200A03C FUN_0200A03C: ; 0x0200A03C @@ -19574,14 +19574,14 @@ FUN_0200A064: ; 0x0200A064 ldr r3, _0200A068 ; =FUN_020203CC bx r3 .balign 4 -_0200A068: .word FUN_020203CC + 1 +_0200A068: .word FUN_020203CC thumb_func_start FUN_0200A06C FUN_0200A06C: ; 0x0200A06C ldr r3, _0200A070 ; =FUN_02020404 bx r3 .balign 4 -_0200A070: .word FUN_02020404 + 1 +_0200A070: .word FUN_02020404 thumb_func_start FUN_0200A074 FUN_0200A074: ; 0x0200A074 @@ -19995,14 +19995,14 @@ FUN_0200A384: ; 0x0200A384 ldr r3, _0200A388 ; =FUN_0200650C bx r3 .balign 4 -_0200A388: .word FUN_0200650C + 1 +_0200A388: .word FUN_0200650C thumb_func_start FUN_0200A38C FUN_0200A38C: ; 0x0200A38C ldr r3, _0200A390 ; =FUN_02016A18 bx r3 .balign 4 -_0200A390: .word FUN_02016A18 + 1 +_0200A390: .word FUN_02016A18 thumb_func_start FUN_0200A394 FUN_0200A394: ; 0x0200A394 @@ -20917,7 +20917,7 @@ FUN_0200AA80: ; 0x0200AA80 mov r1, #0x20 bx r3 nop -_0200AA8C: .word FUN_0200AA90 + 1 +_0200AA8C: .word FUN_0200AA90 thumb_func_start FUN_0200AA90 FUN_0200AA90: ; 0x0200AA90 @@ -22604,7 +22604,7 @@ FUN_0200B7A8: ; 0x0200B7A8 ldr r0, [r0, #0x4] bx r3 .balign 4 -_0200B7B4: .word FUN_02021FF8 + 1 +_0200B7B4: .word FUN_02021FF8 thumb_func_start FUN_0200B7B8 FUN_0200B7B8: ; 0x0200B7B8 @@ -23211,7 +23211,7 @@ FUN_0200BC14: ; 0x0200BC14 ldr r3, _0200BC18 ; =FUN_0201FFC8 bx r3 .balign 4 -_0200BC18: .word FUN_0201FFC8 + 1 +_0200BC18: .word FUN_0201FFC8 thumb_func_start FUN_0200BC1C FUN_0200BC1C: ; 0x0200BC1C @@ -23230,14 +23230,14 @@ FUN_0200BC30: ; 0x0200BC30 ldr r3, _0200BC34 ; =FUN_02009F80 bx r3 .balign 4 -_0200BC34: .word FUN_02009F80 + 1 +_0200BC34: .word FUN_02009F80 thumb_func_start FUN_0200BC38 FUN_0200BC38: ; 0x0200BC38 ldr r3, _0200BC3C ; =FUN_0201C348 bx r3 .balign 4 -_0200BC3C: .word FUN_0201C348 + 1 +_0200BC3C: .word FUN_0201C348 thumb_func_start FUN_0200BC40 FUN_0200BC40: ; 0x0200BC40 @@ -23245,7 +23245,7 @@ FUN_0200BC40: ; 0x0200BC40 ldr r0, [r0, #0x0] bx r3 nop -_0200BC48: .word FUN_0201FD58 + 1 +_0200BC48: .word FUN_0201FD58 thumb_func_start FUN_0200BC4C FUN_0200BC4C: ; 0x0200BC4C @@ -23325,7 +23325,7 @@ FUN_0200BCD0: ; 0x0200BCD0 add r0, r1, #0x0 bx r3 .balign 4 -_0200BCDC: .word FUN_02016A18 + 1 +_0200BCDC: .word FUN_02016A18 thumb_func_start FUN_0200BCE0 FUN_0200BCE0: ; 0x0200BCE0 @@ -24166,7 +24166,7 @@ FUN_0200C358: ; 0x0200C358 ldr r3, _0200C364 ; =FUN_0200C4F4 bx r3 .balign 4 -_0200C364: .word FUN_0200C4F4 + 1 +_0200C364: .word FUN_0200C4F4 thumb_func_start FUN_0200C368 FUN_0200C368: ; 0x0200C368 @@ -24177,7 +24177,7 @@ FUN_0200C368: ; 0x0200C368 ldr r3, _0200C374 ; =FUN_0200C548 bx r3 .balign 4 -_0200C374: .word FUN_0200C548 + 1 +_0200C374: .word FUN_0200C548 thumb_func_start FUN_0200C378 FUN_0200C378: ; 0x0200C378 @@ -24188,7 +24188,7 @@ FUN_0200C378: ; 0x0200C378 ldr r3, _0200C384 ; =FUN_0200C4A8 bx r3 .balign 4 -_0200C384: .word FUN_0200C4A8 + 1 +_0200C384: .word FUN_0200C4A8 thumb_func_start FUN_0200C388 FUN_0200C388: ; 0x0200C388 @@ -24199,7 +24199,7 @@ FUN_0200C388: ; 0x0200C388 ldr r3, _0200C394 ; =FUN_0200C4A8 bx r3 .balign 4 -_0200C394: .word FUN_0200C4A8 + 1 +_0200C394: .word FUN_0200C4A8 thumb_func_start FUN_0200C398 FUN_0200C398: ; 0x0200C398 @@ -24483,7 +24483,7 @@ FUN_0200C59C: ; 0x0200C59C lsl r1, r1, #0xc bx r3 .balign 4 -_0200C5A4: .word FUN_020201E4 + 1 +_0200C5A4: .word FUN_020201E4 thumb_func_start FUN_0200C5A8 FUN_0200C5A8: ; 0x0200C5A8 @@ -24499,7 +24499,7 @@ FUN_0200C5B4: ; 0x0200C5B4 ldr r0, [r0, #0x0] bx r3 nop -_0200C5BC: .word FUN_020201E4 + 1 +_0200C5BC: .word FUN_020201E4 thumb_func_start FUN_0200C5C0 FUN_0200C5C0: ; 0x0200C5C0 @@ -24507,7 +24507,7 @@ FUN_0200C5C0: ; 0x0200C5C0 ldr r0, [r0, #0x0] bx r3 nop -_0200C5C8: .word FUN_02020130 + 1 +_0200C5C8: .word FUN_02020130 thumb_func_start FUN_0200C5CC FUN_0200C5CC: ; 0x0200C5CC @@ -24515,14 +24515,14 @@ FUN_0200C5CC: ; 0x0200C5CC ldr r0, [r0, #0x0] bx r3 nop -_0200C5D4: .word FUN_020201DC + 1 +_0200C5D4: .word FUN_020201DC thumb_func_start FUN_0200C5D8 FUN_0200C5D8: ; 0x0200C5D8 ldr r3, _0200C5DC ; =FUN_020200BC bx r3 .balign 4 -_0200C5DC: .word FUN_020200BC + 1 +_0200C5DC: .word FUN_020200BC thumb_func_start FUN_0200C5E0 FUN_0200C5E0: ; 0x0200C5E0 @@ -24530,14 +24530,14 @@ FUN_0200C5E0: ; 0x0200C5E0 ldr r0, [r0, #0x0] bx r3 nop -_0200C5E8: .word FUN_0200C5D8 + 1 +_0200C5E8: .word FUN_0200C5D8 thumb_func_start FUN_0200C5EC FUN_0200C5EC: ; 0x0200C5EC ldr r3, _0200C5F0 ; =FUN_020200D8 bx r3 .balign 4 -_0200C5F0: .word FUN_020200D8 + 1 +_0200C5F0: .word FUN_020200D8 thumb_func_start FUN_0200C5F4 FUN_0200C5F4: ; 0x0200C5F4 @@ -24545,14 +24545,14 @@ FUN_0200C5F4: ; 0x0200C5F4 ldr r0, [r0, #0x0] bx r3 nop -_0200C5FC: .word FUN_0200C5EC + 1 +_0200C5FC: .word FUN_0200C5EC thumb_func_start FUN_0200C600 FUN_0200C600: ; 0x0200C600 ldr r3, _0200C604 ; =FUN_02020388 bx r3 .balign 4 -_0200C604: .word FUN_02020388 + 1 +_0200C604: .word FUN_02020388 thumb_func_start FUN_0200C608 FUN_0200C608: ; 0x0200C608 @@ -24560,14 +24560,14 @@ FUN_0200C608: ; 0x0200C608 ldr r0, [r0, #0x0] bx r3 nop -_0200C610: .word FUN_0200C600 + 1 +_0200C610: .word FUN_0200C600 thumb_func_start FUN_0200C614 FUN_0200C614: ; 0x0200C614 ldr r3, _0200C618 ; =FUN_02020208 bx r3 .balign 4 -_0200C618: .word FUN_02020208 + 1 +_0200C618: .word FUN_02020208 thumb_func_start FUN_0200C61C FUN_0200C61C: ; 0x0200C61C @@ -24582,7 +24582,7 @@ FUN_0200C628: ; 0x0200C628 ldr r3, _0200C62C ; =FUN_0202022C bx r3 .balign 4 -_0200C62C: .word FUN_0202022C + 1 +_0200C62C: .word FUN_0202022C thumb_func_start FUN_0200C630 FUN_0200C630: ; 0x0200C630 @@ -24590,14 +24590,14 @@ FUN_0200C630: ; 0x0200C630 ldr r0, [r0, #0x0] bx r3 nop -_0200C638: .word FUN_0200C628 + 1 +_0200C638: .word FUN_0200C628 thumb_func_start FUN_0200C63C FUN_0200C63C: ; 0x0200C63C ldr r3, _0200C640 ; =FUN_020200A0 bx r3 .balign 4 -_0200C640: .word FUN_020200A0 + 1 +_0200C640: .word FUN_020200A0 thumb_func_start FUN_0200C644 FUN_0200C644: ; 0x0200C644 @@ -24605,14 +24605,14 @@ FUN_0200C644: ; 0x0200C644 ldr r0, [r0, #0x0] bx r3 nop -_0200C64C: .word FUN_0200C63C + 1 +_0200C64C: .word FUN_0200C63C thumb_func_start FUN_0200C650 FUN_0200C650: ; 0x0200C650 ldr r3, _0200C654 ; =FUN_02020128 bx r3 .balign 4 -_0200C654: .word FUN_02020128 + 1 +_0200C654: .word FUN_02020128 thumb_func_start FUN_0200C658 FUN_0200C658: ; 0x0200C658 @@ -24620,14 +24620,14 @@ FUN_0200C658: ; 0x0200C658 ldr r0, [r0, #0x0] bx r3 nop -_0200C660: .word FUN_0200C650 + 1 +_0200C660: .word FUN_0200C650 thumb_func_start FUN_0200C664 FUN_0200C664: ; 0x0200C664 ldr r3, _0200C668 ; =FUN_02020248 bx r3 .balign 4 -_0200C668: .word FUN_02020248 + 1 +_0200C668: .word FUN_02020248 thumb_func_start FUN_0200C66C FUN_0200C66C: ; 0x0200C66C @@ -24635,14 +24635,14 @@ FUN_0200C66C: ; 0x0200C66C ldr r0, [r0, #0x0] bx r3 nop -_0200C674: .word FUN_0200C664 + 1 +_0200C674: .word FUN_0200C664 thumb_func_start FUN_0200C678 FUN_0200C678: ; 0x0200C678 ldr r3, _0200C67C ; =FUN_020202A8 bx r3 .balign 4 -_0200C67C: .word FUN_020202A8 + 1 +_0200C67C: .word FUN_020202A8 thumb_func_start FUN_0200C680 FUN_0200C680: ; 0x0200C680 @@ -24650,7 +24650,7 @@ FUN_0200C680: ; 0x0200C680 ldr r0, [r0, #0x0] bx r3 nop -_0200C688: .word FUN_0200C678 + 1 +_0200C688: .word FUN_0200C678 thumb_func_start FUN_0200C68C FUN_0200C68C: ; 0x0200C68C @@ -24658,7 +24658,7 @@ FUN_0200C68C: ; 0x0200C68C ldr r0, [r0, #0x0] bx r3 nop -_0200C694: .word FUN_02020300 + 1 +_0200C694: .word FUN_02020300 thumb_func_start FUN_0200C698 FUN_0200C698: ; 0x0200C698 @@ -24667,7 +24667,7 @@ FUN_0200C698: ; 0x0200C698 lsr r1, r1, #0x18 bx r3 .balign 4 -_0200C6A0: .word FUN_02020238 + 1 +_0200C6A0: .word FUN_02020238 thumb_func_start FUN_0200C6A4 FUN_0200C6A4: ; 0x0200C6A4 @@ -24683,14 +24683,14 @@ FUN_0200C6B0: ; 0x0200C6B0 ldr r0, [r0, #0x0] bx r3 nop -_0200C6B8: .word FUN_0200C698 + 1 +_0200C6B8: .word FUN_0200C698 thumb_func_start FUN_0200C6BC FUN_0200C6BC: ; 0x0200C6BC ldr r3, _0200C6C0 ; =FUN_02020310 bx r3 .balign 4 -_0200C6C0: .word FUN_02020310 + 1 +_0200C6C0: .word FUN_02020310 thumb_func_start FUN_0200C6C4 FUN_0200C6C4: ; 0x0200C6C4 @@ -24698,14 +24698,14 @@ FUN_0200C6C4: ; 0x0200C6C4 ldr r0, [r0, #0x0] bx r3 nop -_0200C6CC: .word FUN_0200C6BC + 1 +_0200C6CC: .word FUN_0200C6BC thumb_func_start FUN_0200C6D0 FUN_0200C6D0: ; 0x0200C6D0 ldr r3, _0200C6D4 ; =FUN_0202032C bx r3 .balign 4 -_0200C6D4: .word FUN_0202032C + 1 +_0200C6D4: .word FUN_0202032C thumb_func_start FUN_0200C6D8 FUN_0200C6D8: ; 0x0200C6D8 @@ -24713,7 +24713,7 @@ FUN_0200C6D8: ; 0x0200C6D8 ldr r0, [r0, #0x0] bx r3 nop -_0200C6E0: .word FUN_0200C6D0 + 1 +_0200C6E0: .word FUN_0200C6D0 thumb_func_start FUN_0200C6E4 FUN_0200C6E4: ; 0x0200C6E4 @@ -24747,7 +24747,7 @@ FUN_0200C714: ; 0x0200C714 ldr r0, [r0, #0x0] bx r3 nop -_0200C71C: .word FUN_0200C6E4 + 1 +_0200C71C: .word FUN_0200C6E4 thumb_func_start FUN_0200C720 FUN_0200C720: ; 0x0200C720 @@ -24825,7 +24825,7 @@ FUN_0200C7A0: ; 0x0200C7A0 ldr r0, [r0, #0x0] bx r3 nop -_0200C7A8: .word FUN_0200C75C + 1 +_0200C7A8: .word FUN_0200C75C thumb_func_start FUN_0200C7AC FUN_0200C7AC: ; 0x0200C7AC @@ -24902,14 +24902,14 @@ FUN_0200C82C: ; 0x0200C82C ldr r0, [r0, #0x0] bx r3 nop -_0200C834: .word FUN_0200C7FC + 1 +_0200C834: .word FUN_0200C7FC thumb_func_start FUN_0200C838 FUN_0200C838: ; 0x0200C838 ldr r3, _0200C83C ; =FUN_020200EC bx r3 .balign 4 -_0200C83C: .word FUN_020200EC + 1 +_0200C83C: .word FUN_020200EC thumb_func_start FUN_0200C840 FUN_0200C840: ; 0x0200C840 @@ -24950,14 +24950,14 @@ FUN_0200C884: ; 0x0200C884 ldr r0, [r0, #0x0] bx r3 nop -_0200C88C: .word FUN_0200C84C + 1 +_0200C88C: .word FUN_0200C84C thumb_func_start FUN_0200C890 FUN_0200C890: ; 0x0200C890 ldr r3, _0200C894 ; =FUN_02020088 bx r3 .balign 4 -_0200C894: .word FUN_02020088 + 1 +_0200C894: .word FUN_02020088 thumb_func_start FUN_0200C898 FUN_0200C898: ; 0x0200C898 @@ -24965,7 +24965,7 @@ FUN_0200C898: ; 0x0200C898 ldr r0, [r0, #0x0] bx r3 nop -_0200C8A0: .word FUN_0200C890 + 1 +_0200C8A0: .word FUN_0200C890 thumb_func_start FUN_0200C8A4 FUN_0200C8A4: ; 0x0200C8A4 @@ -24986,14 +24986,14 @@ FUN_0200C8BC: ; 0x0200C8BC ldr r0, [r0, #0x0] bx r3 nop -_0200C8C4: .word FUN_0200C8A4 + 1 +_0200C8C4: .word FUN_0200C8A4 thumb_func_start FUN_0200C8C8 FUN_0200C8C8: ; 0x0200C8C8 ldr r3, _0200C8CC ; =FUN_02020100 bx r3 .balign 4 -_0200C8CC: .word FUN_02020100 + 1 +_0200C8CC: .word FUN_02020100 thumb_func_start FUN_0200C8D0 FUN_0200C8D0: ; 0x0200C8D0 @@ -25001,7 +25001,7 @@ FUN_0200C8D0: ; 0x0200C8D0 ldr r0, [r0, #0x0] bx r3 nop -_0200C8D8: .word FUN_0200C8C8 + 1 +_0200C8D8: .word FUN_0200C8C8 thumb_func_start FUN_0200C8DC FUN_0200C8DC: ; 0x0200C8DC @@ -25032,7 +25032,7 @@ FUN_0200C904: ; 0x0200C904 ldr r3, _0200C908 ; =FUN_02020398 bx r3 .balign 4 -_0200C908: .word FUN_02020398 + 1 +_0200C908: .word FUN_02020398 thumb_func_start FUN_0200C90C FUN_0200C90C: ; 0x0200C90C @@ -25040,7 +25040,7 @@ FUN_0200C90C: ; 0x0200C90C ldr r0, [r0, #0x0] bx r3 nop -_0200C914: .word FUN_0200C904 + 1 +_0200C914: .word FUN_0200C904 thumb_func_start FUN_0200C918 FUN_0200C918: ; 0x0200C918 @@ -25262,7 +25262,7 @@ FUN_0200CAB4: ; 0x0200CAB4 ldr r3, _0200CAB8 ; =FUN_0201B6A0 bx r3 .balign 4 -_0200CAB8: .word FUN_0201B6A0 + 1 +_0200CAB8: .word FUN_0201B6A0 thumb_func_start FUN_0200CABC FUN_0200CABC: ; 0x0200CABC @@ -27084,7 +27084,7 @@ _0200D8DA: _0200D970: .word 0x0000048C _0200D974: .word 0x00000404 _0200D978: .word 0x00000484 -_0200D97C: .word FUN_0200DB7C + 1 +_0200D97C: .word FUN_0200DB7C thumb_func_start FUN_0200D980 FUN_0200D980: ; 0x0200D980 @@ -27412,7 +27412,7 @@ FUN_0200DBFC: ; 0x0200DBFC strb r0, [r4, r1] pop {r4, pc} nop -_0200DC1C: .word FUN_0200DBE8 + 1 +_0200DC1C: .word FUN_0200DBE8 _0200DC20: .word 0x00000488 thumb_func_start FUN_0200DC24 @@ -27432,7 +27432,7 @@ FUN_0200DC24: ; 0x0200DC24 strb r0, [r4, r1] pop {r4, pc} nop -_0200DC44: .word FUN_0200DBE8 + 1 +_0200DC44: .word FUN_0200DBE8 _0200DC48: .word 0x00000488 thumb_func_start FUN_0200DC4C @@ -27599,7 +27599,7 @@ FUN_0200DD70: ; 0x0200DD70 strb r7, [r0, r1] pop {r3-r7, pc} .balign 4 -_0200DDA4: .word FUN_0200DCF8 + 1 +_0200DDA4: .word FUN_0200DCF8 _0200DDA8: .word 0x0000016F thumb_func_start FUN_0200DDAC @@ -28312,7 +28312,7 @@ FUN_0200E388: ; 0x0200E388 mov r0, #0x0 bx r3 .balign 4 -_0200E390: .word FUN_02011480 + 1 +_0200E390: .word FUN_02011480 thumb_func_start FUN_0200E394 FUN_0200E394: ; 0x0200E394 @@ -28320,7 +28320,7 @@ FUN_0200E394: ; 0x0200E394 mov r1, #0x0 bx r3 nop -_0200E39C: .word FUN_0200E440 + 1 +_0200E39C: .word FUN_0200E440 thumb_func_start FUN_0200E3A0 FUN_0200E3A0: ; 0x0200E3A0 @@ -28337,7 +28337,7 @@ _0200E3AE: bx r3 nop _0200E3B4: .word 0x00007FFF -_0200E3B8: .word FUN_0200E440 + 1 +_0200E3B8: .word FUN_0200E440 thumb_func_start FUN_0200E3BC FUN_0200E3BC: ; 0x0200E3BC @@ -28657,7 +28657,7 @@ _0200E5FA: blt _0200E5FA bx lr nop -_0200E60C: .word FUN_0200E758 + 1 +_0200E60C: .word FUN_0200E758 thumb_func_start FUN_0200E610 FUN_0200E610: ; 0x0200E610 @@ -28735,8 +28735,8 @@ _0200E68C: add sp, #0xc pop {r4-r7, pc} nop -_0200E698: .word FUN_0200E610 + 1 -_0200E69C: .word FUN_0200E758 + 1 +_0200E698: .word FUN_0200E610 +_0200E69C: .word FUN_0200E758 thumb_func_start FUN_0200E6A0 FUN_0200E6A0: ; 0x0200E6A0 @@ -28761,7 +28761,7 @@ _0200E6BC: str r0, [r5, r4] pop {r3-r5, pc} .balign 4 -_0200E6C8: .word FUN_0200E758 + 1 +_0200E6C8: .word FUN_0200E758 thumb_func_start FUN_0200E6CC FUN_0200E6CC: ; 0x0200E6CC @@ -28784,7 +28784,7 @@ FUN_0200E6CC: ; 0x0200E6CC bl FUN_0200CA98 pop {r3-r7, pc} .balign 4 -_0200E6F4: .word FUN_0200E71C + 1 +_0200E6F4: .word FUN_0200E71C thumb_func_start FUN_0200E6F8 FUN_0200E6F8: ; 0x0200E6F8 @@ -28803,7 +28803,7 @@ FUN_0200E6F8: ; 0x0200E6F8 bl FUN_0200CA98 pop {r3-r5, pc} .balign 4 -_0200E718: .word FUN_0200E73C + 1 +_0200E718: .word FUN_0200E73C thumb_func_start FUN_0200E71C FUN_0200E71C: ; 0x0200E71C @@ -28914,7 +28914,7 @@ _0200E7CE: pop {r3, pc} .balign 4 _0200E7D0: .word 0x00007FFF -_0200E7D4: .word FUN_0200E794 + 1 +_0200E7D4: .word FUN_0200E794 thumb_func_start FUN_0200E7D8 FUN_0200E7D8: ; 0x0200E7D8 @@ -30745,7 +30745,7 @@ FUN_0200F5C0: ; 0x0200F5C0 ldr r3, _0200F5C4 ; =FUN_0200F5C8 bx r3 .balign 4 -_0200F5C4: .word FUN_0200F5C8 + 1 +_0200F5C4: .word FUN_0200F5C8 thumb_func_start FUN_0200F5C8 FUN_0200F5C8: ; 0x0200F5C8 @@ -30951,8 +30951,8 @@ FUN_0200F740: ; 0x0200F740 ldr r2, _0200F754 ; =0x000003FF bx r3 nop -_0200F74C: .word FUN_0200CA98 + 1 -_0200F750: .word FUN_0200F780 + 1 +_0200F74C: .word FUN_0200CA98 +_0200F750: .word FUN_0200F780 _0200F754: .word 0x000003FF thumb_func_start FUN_0200F758 @@ -30966,7 +30966,7 @@ FUN_0200F758: ; 0x0200F758 pop {r3, pc} .balign 4 _0200F768: .word 0x00000309 -_0200F76C: .word FUN_0200F7AC + 1 +_0200F76C: .word FUN_0200F7AC thumb_func_start FUN_0200F770 FUN_0200F770: ; 0x0200F770 @@ -30976,7 +30976,7 @@ FUN_0200F770: ; 0x0200F770 bx r3 .balign 4 _0200F778: .word 0x00000309 -_0200F77C: .word FUN_0200E6F8 + 1 +_0200F77C: .word FUN_0200E6F8 thumb_func_start FUN_0200F780 FUN_0200F780: ; 0x0200F780 @@ -32178,9 +32178,9 @@ _02010064: add sp, #0x24 pop {r4-r7, pc} .balign 4 -_02010078: .word FUN_0200F5F8 + 1 +_02010078: .word FUN_0200F5F8 _0201007C: .word 0x000003FF -_02010080: .word FUN_0200F330 + 1 +_02010080: .word FUN_0200F330 thumb_func_start FUN_02010084 FUN_02010084: ; 0x02010084 @@ -32220,7 +32220,7 @@ _020100C8: mov r0, #0x0 pop {r4, pc} .balign 4 -_020100CC: .word FUN_0200F5F8 + 1 +_020100CC: .word FUN_0200F5F8 _020100D0: .word 0x000003FF thumb_func_start FUN_020100D4 @@ -32539,9 +32539,9 @@ _02010328: add sp, #0x20 pop {r3-r7, pc} .balign 4 -_0201033C: .word FUN_0200F5F8 + 1 +_0201033C: .word FUN_0200F5F8 _02010340: .word 0x000003FF -_02010344: .word FUN_0200F330 + 1 +_02010344: .word FUN_0200F330 thumb_func_start FUN_02010348 FUN_02010348: ; 0x02010348 @@ -32581,7 +32581,7 @@ _0201038C: mov r0, #0x0 pop {r4, pc} .balign 4 -_02010390: .word FUN_0200F5F8 + 1 +_02010390: .word FUN_0200F5F8 _02010394: .word 0x000003FF thumb_func_start FUN_02010398 @@ -32798,9 +32798,9 @@ _02010530: add sp, #0x24 pop {r4-r7, pc} .balign 4 -_02010544: .word FUN_0200F5F8 + 1 +_02010544: .word FUN_0200F5F8 _02010548: .word 0x000003FF -_0201054C: .word FUN_0200F330 + 1 +_0201054C: .word FUN_0200F330 thumb_func_start FUN_02010550 FUN_02010550: ; 0x02010550 @@ -32840,7 +32840,7 @@ _02010594: mov r0, #0x0 pop {r4, pc} .balign 4 -_02010598: .word FUN_0200F5F8 + 1 +_02010598: .word FUN_0200F5F8 _0201059C: .word 0x000003FF thumb_func_start FUN_020105A0 @@ -33162,9 +33162,9 @@ _02010812: add sp, #0x24 pop {r4-r7, pc} nop -_02010828: .word FUN_0200F5F8 + 1 +_02010828: .word FUN_0200F5F8 _0201082C: .word 0x000003FF -_02010830: .word FUN_0200F330 + 1 +_02010830: .word FUN_0200F330 thumb_func_start FUN_02010834 FUN_02010834: ; 0x02010834 @@ -33202,7 +33202,7 @@ _02010876: mov r0, #0x0 pop {r4, pc} nop -_0201087C: .word FUN_0200F5F8 + 1 +_0201087C: .word FUN_0200F5F8 _02010880: .word 0x000003FF thumb_func_start FUN_02010884 @@ -33510,9 +33510,9 @@ FUN_020109E8: ; 0x020109E8 add sp, #0x28 pop {r3-r7, pc} .balign 4 -_02010AD8: .word FUN_0200F5F8 + 1 +_02010AD8: .word FUN_0200F5F8 _02010ADC: .word 0x000003FF -_02010AE0: .word FUN_0200F330 + 1 +_02010AE0: .word FUN_0200F330 thumb_func_start FUN_02010AE4 FUN_02010AE4: ; 0x02010AE4 @@ -33554,7 +33554,7 @@ _02010B2E: mov r0, #0x0 pop {r4, pc} nop -_02010B34: .word FUN_0200F5F8 + 1 +_02010B34: .word FUN_0200F5F8 _02010B38: .word 0x000003FF thumb_func_start FUN_02010B3C @@ -33902,9 +33902,9 @@ FUN_02010D1C: ; 0x02010D1C add sp, #0x20 pop {r3-r7, pc} .balign 4 -_02010DE0: .word FUN_0200F5F8 + 1 +_02010DE0: .word FUN_0200F5F8 _02010DE4: .word 0x000003FF -_02010DE8: .word FUN_0200F330 + 1 +_02010DE8: .word FUN_0200F330 thumb_func_start FUN_02010DEC FUN_02010DEC: ; 0x02010DEC @@ -33946,7 +33946,7 @@ _02010E36: mov r0, #0x0 pop {r4, pc} nop -_02010E3C: .word FUN_0200F5F8 + 1 +_02010E3C: .word FUN_0200F5F8 _02010E40: .word 0x000003FF thumb_func_start FUN_02010E44 @@ -35035,7 +35035,7 @@ FUN_02011634: ; 0x02011634 bl FUN_0200CA98 pop {r4, pc} nop -_0201164C: .word FUN_020116CC + 1 +_0201164C: .word FUN_020116CC thumb_func_start FUN_02011650 FUN_02011650: ; 0x02011650 @@ -35056,7 +35056,7 @@ FUN_02011650: ; 0x02011650 bl FUN_0200CA98 pop {r4-r6, pc} nop -_02011674: .word FUN_020116E0 + 1 +_02011674: .word FUN_020116E0 thumb_func_start FUN_02011678 FUN_02011678: ; 0x02011678 @@ -35074,7 +35074,7 @@ FUN_02011678: ; 0x02011678 bl FUN_0200CA98 pop {r3-r5, pc} .balign 4 -_02011694: .word FUN_020116FC + 1 +_02011694: .word FUN_020116FC thumb_func_start FUN_02011698 FUN_02011698: ; 0x02011698 @@ -35101,7 +35101,7 @@ FUN_02011698: ; 0x02011698 bl FUN_0200CA98 pop {r3-r7, pc} nop -_020116C8: .word FUN_02011714 + 1 +_020116C8: .word FUN_02011714 thumb_func_start FUN_020116CC FUN_020116CC: ; 0x020116CC @@ -37218,7 +37218,7 @@ FUN_02012634: ; 0x02012634 _02012656: pop {r4, pc} .balign 4 -_02012658: .word FUN_020125FC + 1 +_02012658: .word FUN_020125FC thumb_func_start FUN_0201265C FUN_0201265C: ; 0x0201265C @@ -37836,7 +37836,7 @@ _02012A4E: _02012AB0: .word 0x00000604 _02012AB4: .word 0x0000078C _02012AB8: .word 0x0000060C -_02012ABC: .word FUN_02012BE4 + 1 +_02012ABC: .word FUN_02012BE4 _02012AC0: .word 0x00000794 thumb_func_start FUN_02012AC4 @@ -37891,7 +37891,7 @@ FUN_02012B20: ; 0x02012B20 ldr r0, [r0, r1] bx r3 nop -_02012B2C: .word FUN_02012988 + 1 +_02012B2C: .word FUN_02012988 thumb_func_start FUN_02012B30 FUN_02012B30: ; 0x02012B30 @@ -38076,7 +38076,7 @@ FUN_02012C90: ; 0x02012C90 ldr r3, _02012C94 ; =FUN_020129C8 bx r3 .balign 4 -_02012C94: .word FUN_020129C8 + 1 +_02012C94: .word FUN_020129C8 thumb_func_start FUN_02012C98 FUN_02012C98: ; 0x02012C98 @@ -38789,7 +38789,7 @@ FUN_0201318C: ; 0x0201318C ldr r3, _02013190 ; =FUN_0200650C bx r3 .balign 4 -_02013190: .word FUN_0200650C + 1 +_02013190: .word FUN_0200650C thumb_func_start FUN_02013194 FUN_02013194: ; 0x02013194 @@ -38868,7 +38868,7 @@ _02013216: bl FUN_0200CA98 pop {r3-r7, pc} nop -_02013224: .word FUN_02013268 + 1 +_02013224: .word FUN_02013268 thumb_func_start FUN_02013228 FUN_02013228: ; 0x02013228 @@ -40225,7 +40225,7 @@ FUN_02013B5C: ; 0x02013B5C mov r1, #0x22 bx r3 nop -_02013B64: .word FUN_02022610 + 1 +_02013B64: .word FUN_02022610 thumb_func_start FUN_02013B68 FUN_02013B68: ; 0x02013B68 @@ -40699,7 +40699,7 @@ FUN_02013EA8: ; 0x02013EA8 ldr r3, _02013EAC ; =FUN_02013F30 bx r3 .balign 4 -_02013EAC: .word FUN_02013F30 + 1 +_02013EAC: .word FUN_02013F30 thumb_func_start FUN_02013EB0 FUN_02013EB0: ; 0x02013EB0 @@ -41414,11 +41414,11 @@ _0201434A: add sp, #0xc pop {r4-r7, pc} .balign 4 -_02014394: .word FUN_020143DC + 1 -_02014398: .word FUN_020144E0 + 1 -_0201439C: .word FUN_020144FC + 1 -_020143A0: .word FUN_020144B0 + 1 -_020143A4: .word FUN_020144C8 + 1 +_02014394: .word FUN_020143DC +_02014398: .word FUN_020144E0 +_0201439C: .word FUN_020144FC +_020143A0: .word FUN_020144B0 +_020143A4: .word FUN_020144C8 thumb_func_start FUN_020143A8 FUN_020143A8: ; 0x020143A8 @@ -41452,7 +41452,7 @@ FUN_020143D0: ; 0x020143D0 ldr r0, [r0, #0x0] bx r3 nop -_020143D8: .word FUN_0200621C + 1 +_020143D8: .word FUN_0200621C thumb_func_start FUN_020143DC FUN_020143DC: ; 0x020143DC @@ -42096,7 +42096,7 @@ _02014820: add sp, #0x4 pop {r3-r4, pc} .balign 4 -_02014874: .word FUN_02014878 + 1 +_02014874: .word FUN_02014878 thumb_func_start FUN_02014878 FUN_02014878: ; 0x02014878 @@ -42380,7 +42380,7 @@ _02014A58: add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02014A88: .word FUN_02014AD4 + 1 +_02014A88: .word FUN_02014AD4 thumb_func_start FUN_02014A8C FUN_02014A8C: ; 0x02014A8C @@ -42417,7 +42417,7 @@ _02014AA6: bl FUN_0200CA98 pop {r3-r7, pc} .balign 4 -_02014AD0: .word FUN_02014B10 + 1 +_02014AD0: .word FUN_02014B10 thumb_func_start FUN_02014AD4 FUN_02014AD4: ; 0x02014AD4 @@ -42767,7 +42767,7 @@ _02014CC2: pop {r4-r7, pc} .balign 4 _02014D74: .word 0x000001CD -_02014D78: .word FUN_02014DD8 + 1 +_02014D78: .word FUN_02014DD8 thumb_func_start FUN_02014D7C FUN_02014D7C: ; 0x02014D7C @@ -42999,7 +42999,7 @@ FUN_02014F1C: ; 0x02014F1C mov r1, #0x0 bx r3 .balign 4 -_02014F24: .word FUN_02014F08 + 1 +_02014F24: .word FUN_02014F08 thumb_func_start FUN_02014F28 FUN_02014F28: ; 0x02014F28 @@ -43343,7 +43343,7 @@ FUN_0201519C: ; 0x0201519C asr r2, r2, #0x3 bx r3 nop -_020151B4: .word FUN_020079E0 + 1 +_020151B4: .word FUN_020079E0 thumb_func_start FUN_020151B8 FUN_020151B8: ; 0x020151B8 @@ -44280,7 +44280,7 @@ FUN_020158A0: ; 0x020158A0 mov r1, #0x0 bx r3 nop -_020158A8: .word FUN_0201598C + 1 +_020158A8: .word FUN_0201598C thumb_func_start FUN_020158AC FUN_020158AC: ; 0x020158AC @@ -44288,7 +44288,7 @@ FUN_020158AC: ; 0x020158AC mov r1, #0x1 bx r3 nop -_020158B4: .word FUN_0201598C + 1 +_020158B4: .word FUN_0201598C thumb_func_start FUN_020158B8 FUN_020158B8: ; 0x020158B8 @@ -44296,7 +44296,7 @@ FUN_020158B8: ; 0x020158B8 mov r1, #0x2 bx r3 nop -_020158C0: .word FUN_0201598C + 1 +_020158C0: .word FUN_0201598C thumb_func_start FUN_020158C4 FUN_020158C4: ; 0x020158C4 @@ -44304,7 +44304,7 @@ FUN_020158C4: ; 0x020158C4 mov r1, #0x3 bx r3 nop -_020158CC: .word FUN_0201598C + 1 +_020158CC: .word FUN_0201598C thumb_func_start FUN_020158D0 FUN_020158D0: ; 0x020158D0 @@ -44312,7 +44312,7 @@ FUN_020158D0: ; 0x020158D0 mov r1, #0x4 bx r3 nop -_020158D8: .word FUN_0201598C + 1 +_020158D8: .word FUN_0201598C thumb_func_start FUN_020158DC FUN_020158DC: ; 0x020158DC @@ -45184,7 +45184,7 @@ FUN_02015EF4: ; 0x02015EF4 blx FUN_020C9E5C pop {r3, pc} .balign 4 -_02015F0C: .word FUN_02015ED4 + 1 +_02015F0C: .word FUN_02015ED4 thumb_func_start FUN_02015F10 FUN_02015F10: ; 0x02015F10 @@ -45284,7 +45284,7 @@ _02015FB4: pop {r3, pc} nop _02015FC0: .word 0x04000208 -_02015FC4: .word FUN_02015F6C + 1 +_02015FC4: .word FUN_02015F6C thumb_func_start FUN_02015FC8 FUN_02015FC8: ; 0x02015FC8 @@ -45445,7 +45445,7 @@ _0201612C: .word 0x0000020E _02016130: .word 0x021C48B8 _02016134: .word 0x04001000 _02016138: .word 0xFFFEFFFF -_0201613C: .word FUN_02015EA0 + 1 +_0201613C: .word FUN_02015EA0 _02016140: .word 0x04000208 _02016144: .word 0x021C4918 @@ -56631,7 +56631,7 @@ FUN_0201B2EC: ; 0x0201B2EC add sp, #0x8 pop {r3, pc} nop -_0201B30C: .word FUN_0201B314 + 1 +_0201B30C: .word FUN_0201B314 _0201B310: .word 0x021C4D44 thumb_func_start FUN_0201B314 @@ -56703,7 +56703,7 @@ FUN_0201B398: ; 0x0201B398 bx r3 .balign 4 _0201B3A0: .word 0x021C4D44 -_0201B3A4: .word FUN_020223BC + 1 +_0201B3A4: .word FUN_020223BC thumb_func_start FUN_0201B3A8 FUN_0201B3A8: ; 0x0201B3A8 @@ -58066,7 +58066,7 @@ FUN_0201BD7C: ; 0x0201BD7C ldr r3, _0201BD80 ; =FUN_0201BCFC bx r3 .balign 4 -_0201BD80: .word FUN_0201BCFC + 1 +_0201BD80: .word FUN_0201BCFC thumb_func_start FUN_0201BD84 FUN_0201BD84: ; 0x0201BD84 @@ -58366,7 +58366,7 @@ _0201BFBE: nop _0201BFD0: .word 0x02105BB4 _0201BFD4: .word 0x021C570C -_0201BFD8: .word FUN_0201BFDC + 1 +_0201BFD8: .word FUN_0201BFDC thumb_func_start FUN_0201BFDC FUN_0201BFDC: ; 0x0201BFDC @@ -58832,7 +58832,7 @@ FUN_0201C328: ; 0x0201C328 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 -_0201C344: .word FUN_0201C358 + 1 +_0201C344: .word FUN_0201C358 thumb_func_start FUN_0201C348 FUN_0201C348: ; 0x0201C348 @@ -58846,7 +58846,7 @@ FUN_0201C350: ; 0x0201C350 ldr r3, _0201C354 ; =FUN_02016A18 bx r3 .balign 4 -_0201C354: .word FUN_02016A18 + 1 +_0201C354: .word FUN_02016A18 thumb_func_start FUN_0201C358 FUN_0201C358: ; 0x0201C358 @@ -58953,7 +58953,7 @@ FUN_0201C40C: ; 0x0201C40C ldr r3, _0201C410 ; =FUN_0201C444 bx r3 .balign 4 -_0201C410: .word FUN_0201C444 + 1 +_0201C410: .word FUN_0201C444 thumb_func_start FUN_0201C414 FUN_0201C414: ; 0x0201C414 @@ -58984,7 +58984,7 @@ FUN_0201C438: ; 0x0201C438 lsr r1, r1, #0x10 bx r3 .balign 4 -_0201C440: .word FUN_0201C454 + 1 +_0201C440: .word FUN_0201C454 thumb_func_start FUN_0201C444 FUN_0201C444: ; 0x0201C444 @@ -60664,7 +60664,7 @@ FUN_0201D040: ; 0x0201D040 nop _0201D054: .word 0x04001000 _0201D058: .word 0x00300010 -_0201D05C: .word FUN_0201D060 + 1 +_0201D05C: .word FUN_0201D060 thumb_func_start FUN_0201D060 FUN_0201D060: ; 0x0201D060 @@ -63197,7 +63197,7 @@ FUN_0201E2BC: ; 0x0201E2BC ldr r3, _0201E2C0 ; =FUN_0201E2F8 bx r3 .balign 4 -_0201E2C0: .word FUN_0201E2F8 + 1 +_0201E2C0: .word FUN_0201E2F8 thumb_func_start FUN_0201E2C4 FUN_0201E2C4: ; 0x0201E2C4 @@ -63473,7 +63473,7 @@ FUN_0201E4AC: ; 0x0201E4AC str r2, [r1, #0x8] bx r3 .balign 4 -_0201E4B8: .word FUN_0201E4BC + 1 +_0201E4B8: .word FUN_0201E4BC thumb_func_start FUN_0201E4BC FUN_0201E4BC: ; 0x0201E4BC @@ -64388,14 +64388,14 @@ FUN_0201EB64: ; 0x0201EB64 mov r1, #0x68 bx r3 nop -_0201EB6C: .word FUN_02016998 + 1 +_0201EB6C: .word FUN_02016998 thumb_func_start FUN_0201EB70 FUN_0201EB70: ; 0x0201EB70 ldr r3, _0201EB74 ; =FUN_02016A18 bx r3 .balign 4 -_0201EB74: .word FUN_02016A18 + 1 +_0201EB74: .word FUN_02016A18 thumb_func_start FUN_0201EB78 FUN_0201EB78: ; 0x0201EB78 @@ -64562,7 +64562,7 @@ FUN_0201EC94: ; 0x0201EC94 add r1, r2, #0x0 bx r3 .balign 4 -_0201ECA4: .word FUN_0201EE2C + 1 +_0201ECA4: .word FUN_0201EE2C thumb_func_start FUN_0201ECA8 FUN_0201ECA8: ; 0x0201ECA8 @@ -64879,7 +64879,7 @@ FUN_0201EEF0: ; 0x0201EEF0 ldrb r0, [r0, #0x0] bx r3 nop -_0201EF24: .word FUN_0201EE2C + 1 +_0201EF24: .word FUN_0201EE2C _0201EF28: .word 0x020FFA38 thumb_func_start FUN_0201EF2C @@ -64914,7 +64914,7 @@ FUN_0201EF2C: ; 0x0201EF2C ldrb r0, [r0, #0x0] bx r3 nop -_0201EF68: .word FUN_0201EE2C + 1 +_0201EF68: .word FUN_0201EE2C _0201EF6C: .word 0x020FFA38 thumb_func_start FUN_0201EF70 @@ -64952,7 +64952,7 @@ FUN_0201EF90: ; 0x0201EF90 add r0, r1, #0x0 bx r3 nop -_0201EFB0: .word FUN_0201E7D8 + 1 +_0201EFB0: .word FUN_0201E7D8 thumb_func_start FUN_0201EFB4 FUN_0201EFB4: ; 0x0201EFB4 @@ -64976,7 +64976,7 @@ FUN_0201EFB4: ; 0x0201EFB4 add r0, r1, #0x0 bx r3 nop -_0201EFDC: .word FUN_0201E8B8 + 1 +_0201EFDC: .word FUN_0201E8B8 thumb_func_start FUN_0201EFE0 FUN_0201EFE0: ; 0x0201EFE0 @@ -64985,7 +64985,7 @@ FUN_0201EFE0: ; 0x0201EFE0 add r0, r1, #0x0 bx r3 .balign 4 -_0201EFE8: .word FUN_0201E7D8 + 1 +_0201EFE8: .word FUN_0201E7D8 thumb_func_start FUN_0201EFEC FUN_0201EFEC: ; 0x0201EFEC @@ -66668,7 +66668,7 @@ FUN_0201FBCC: ; 0x0201FBCC mov r1, #0x1 bx r3 nop -_0201FBD4: .word FUN_0201FC90 + 1 +_0201FBD4: .word FUN_0201FC90 thumb_func_start FUN_0201FBD8 FUN_0201FBD8: ; 0x0201FBD8 @@ -68318,7 +68318,7 @@ FUN_02020778: ; 0x02020778 ldr r1, [r0, #0x38] bx r3 nop -_02020780: .word FUN_020201E4 + 1 +_02020780: .word FUN_020201E4 thumb_func_start FUN_02020784 FUN_02020784: ; 0x02020784 @@ -68866,7 +68866,7 @@ FUN_02020AFC: ; 0x02020AFC .balign 4 _02020B24: .word 0x021C59B0 _02020B28: .word 0x0400010E -_02020B2C: .word FUN_02020B30 + 1 +_02020B2C: .word FUN_02020B30 thumb_func_start FUN_02020B30 FUN_02020B30: ; 0x02020B30 @@ -68904,7 +68904,7 @@ _02020B6C: .word 0x0400010E _02020B70: .word 0x027E0000 _02020B74: .word 0x00003FF8 _02020B78: .word FUN_020C9FEC -_02020B7C: .word FUN_02020B30 + 1 +_02020B7C: .word FUN_02020B30 thumb_func_start FUN_02020B80 FUN_02020B80: ; 0x02020B80 @@ -68968,7 +68968,7 @@ FUN_02020BF4: ; 0x02020BF4 ldr r3, _02020BF8 ; =FUN_02020B80 bx r3 .balign 4 -_02020BF8: .word FUN_02020B80 + 1 +_02020BF8: .word FUN_02020B80 thumb_func_start FUN_02020BFC FUN_02020BFC: ; 0x02020BFC @@ -70443,8 +70443,8 @@ _020216A6: add sp, #0x4 pop {r3-r6, pc} nop -_020216AC: .word FUN_0202192C + 1 -_020216B0: .word FUN_02021924 + 1 +_020216AC: .word FUN_0202192C +_020216B0: .word FUN_02021924 _020216B4: .word 0x020EE668 thumb_func_start FUN_020216B8 @@ -70501,7 +70501,7 @@ FUN_020216EC: ; 0x020216EC bl FUN_02006814 pop {r3-r5, pc} .balign 4 -_02021718: .word FUN_02021774 + 1 +_02021718: .word FUN_02021774 thumb_func_start FUN_0202171C FUN_0202171C: ; 0x0202171C @@ -70509,7 +70509,7 @@ FUN_0202171C: ; 0x0202171C str r1, [r0, #0x4] bx lr nop -_02021724: .word FUN_0202181C + 1 +_02021724: .word FUN_0202181C thumb_func_start FUN_02021728 FUN_02021728: ; 0x02021728 @@ -72432,7 +72432,7 @@ FUN_02022504: ; 0x02022504 mov r1, #0x1b bx r3 nop -_0202250C: .word FUN_02022610 + 1 +_0202250C: .word FUN_02022610 thumb_func_start FUN_02022510 FUN_02022510: ; 0x02022510 @@ -72440,7 +72440,7 @@ FUN_02022510: ; 0x02022510 mov r1, #0x23 bx r3 nop -_02022518: .word FUN_02022610 + 1 +_02022518: .word FUN_02022610 thumb_func_start FUN_0202251C FUN_0202251C: ; 0x0202251C @@ -72448,7 +72448,7 @@ FUN_0202251C: ; 0x0202251C mov r1, #0x1f bx r3 nop -_02022524: .word FUN_02022610 + 1 +_02022524: .word FUN_02022610 thumb_func_start FUN_02022528 FUN_02022528: ; 0x02022528 @@ -72456,7 +72456,7 @@ FUN_02022528: ; 0x02022528 mov r1, #0x20 bx r3 nop -_02022530: .word FUN_02022610 + 1 +_02022530: .word FUN_02022610 thumb_func_start FUN_02022534 FUN_02022534: ; 0x02022534 @@ -72473,7 +72473,7 @@ FUN_02022540: ; 0x02022540 mov r1, #0x0 bx r3 .balign 4 -_02022548: .word FUN_020232BC + 1 +_02022548: .word FUN_020232BC thumb_func_start FUN_0202254C FUN_0202254C: ; 0x0202254C @@ -72594,7 +72594,7 @@ FUN_02022634: ; 0x02022634 ldr r3, _02022638 ; =FUN_02022610 bx r3 .balign 4 -_02022638: .word FUN_02022610 + 1 +_02022638: .word FUN_02022610 thumb_func_start FUN_0202263C FUN_0202263C: ; 0x0202263C @@ -72822,7 +72822,7 @@ FUN_020227DC: ; 0x020227DC bx r3 nop _020227F4: .word 0x00020224 -_020227F8: .word FUN_020231F4 + 1 +_020227F8: .word FUN_020231F4 thumb_func_start FUN_020227FC FUN_020227FC: ; 0x020227FC @@ -72886,7 +72886,7 @@ FUN_02022840: ; 0x02022840 bx r3 nop _0202284C: .word 0x0002047C -_02022850: .word FUN_02022DFC + 1 +_02022850: .word FUN_02022DFC thumb_func_start FUN_02022854 FUN_02022854: ; 0x02022854 @@ -72918,7 +72918,7 @@ FUN_0202287C: ; 0x0202287C bx r3 .balign 4 _02022884: .word 0x0002047C -_02022888: .word FUN_02022FF0 + 1 +_02022888: .word FUN_02022FF0 thumb_func_start FUN_0202288C FUN_0202288C: ; 0x0202288C @@ -74813,7 +74813,7 @@ _020236B2: pop {r3-r7, pc} .balign 4 _020236DC: .word 0x021C59C8 -_020236E0: .word FUN_0202365C + 1 +_020236E0: .word FUN_0202365C thumb_func_start FUN_020236E4 FUN_020236E4: ; 0x020236E4 @@ -74909,7 +74909,7 @@ FUN_02023788: ; 0x02023788 mov r1, #0x0 bx r3 nop -_02023790: .word FUN_02022610 + 1 +_02023790: .word FUN_02022610 thumb_func_start FUN_02023794 FUN_02023794: ; 0x02023794 @@ -75140,7 +75140,7 @@ FUN_02023900: ; 0x02023900 mov r1, #0x1 bx r3 nop -_02023908: .word FUN_02022610 + 1 +_02023908: .word FUN_02022610 thumb_func_start FUN_0202390C FUN_0202390C: ; 0x0202390C @@ -75220,7 +75220,7 @@ FUN_0202397C: ; 0x0202397C mov r2, #0x8 bx r3 .balign 4 -_02023988: .word FUN_02021EF0 + 1 +_02023988: .word FUN_02021EF0 thumb_func_start FUN_0202398C FUN_0202398C: ; 0x0202398C @@ -75235,7 +75235,7 @@ FUN_02023990: ; 0x02023990 add r1, r2, #0x0 bx r3 nop -_0202399C: .word FUN_02021E28 + 1 +_0202399C: .word FUN_02021E28 thumb_func_start FUN_020239A0 FUN_020239A0: ; 0x020239A0 @@ -75497,7 +75497,7 @@ FUN_02023AE4: ; 0x02023AE4 mov r2, #0xc bx r3 .balign 4 -_02023AF0: .word FUN_02021E8C + 1 +_02023AF0: .word FUN_02021E8C thumb_func_start FUN_02023AF4 FUN_02023AF4: ; 0x02023AF4 @@ -75882,7 +75882,7 @@ FUN_02023D58: ; 0x02023D58 mov r1, #0x8 bx r3 nop -_02023D60: .word FUN_02022610 + 1 +_02023D60: .word FUN_02022610 thumb_func_start FUN_02023D64 FUN_02023D64: ; 0x02023D64 @@ -78140,7 +78140,7 @@ FUN_02024DA0: ; 0x02024DA0 mov r1, #0x7 bx r3 nop -_02024DA8: .word FUN_02022610 + 1 +_02024DA8: .word FUN_02022610 thumb_func_start FUN_02024DAC FUN_02024DAC: ; 0x02024DAC @@ -78279,7 +78279,7 @@ FUN_02024EB4: ; 0x02024EB4 mov r1, #0xa bx r3 nop -_02024EBC: .word FUN_02022610 + 1 +_02024EBC: .word FUN_02022610 thumb_func_start FUN_02024EC0 FUN_02024EC0: ; 0x02024EC0 @@ -78295,7 +78295,7 @@ FUN_02024ECC: ; 0x02024ECC mov r1, #0xa bx r3 nop -_02024ED4: .word FUN_02022610 + 1 +_02024ED4: .word FUN_02022610 thumb_func_start FUN_02024ED8 FUN_02024ED8: ; 0x02024ED8 @@ -78326,7 +78326,7 @@ FUN_02024EF4: ; 0x02024EF4 bx r3 nop _02024F04: .word 0x00000724 -_02024F08: .word FUN_02021EF0 + 1 +_02024F08: .word FUN_02021EF0 thumb_func_start FUN_02024F0C FUN_02024F0C: ; 0x02024F0C @@ -78347,7 +78347,7 @@ FUN_02024F18: ; 0x02024F18 bx r3 nop _02024F28: .word 0x00000734 -_02024F2C: .word FUN_02021EF0 + 1 +_02024F2C: .word FUN_02021EF0 thumb_func_start FUN_02024F30 FUN_02024F30: ; 0x02024F30 @@ -79199,7 +79199,7 @@ FUN_020254C0: ; 0x020254C0 mov r1, #0x9 bx r3 nop -_020254C8: .word FUN_02022610 + 1 +_020254C8: .word FUN_02022610 thumb_func_start FUN_020254CC FUN_020254CC: ; 0x020254CC @@ -79705,7 +79705,7 @@ FUN_02025838: ; 0x02025838 mov r1, #0xf bx r3 nop -_02025840: .word FUN_02022610 + 1 +_02025840: .word FUN_02022610 thumb_func_start FUN_02025844 FUN_02025844: ; 0x02025844 @@ -82743,7 +82743,7 @@ FUN_02026CA8: ; 0x02026CA8 mov r1, #0xc bx r3 nop -_02026CB0: .word FUN_02022610 + 1 +_02026CB0: .word FUN_02022610 thumb_func_start FUN_02026CB4 FUN_02026CB4: ; 0x02026CB4 @@ -82764,7 +82764,7 @@ FUN_02026CC4: ; 0x02026CC4 mov r1, #0xc bx r3 nop -_02026CCC: .word FUN_02022610 + 1 +_02026CCC: .word FUN_02022610 thumb_func_start FUN_02026CD0 FUN_02026CD0: ; 0x02026CD0 @@ -84164,7 +84164,7 @@ FUN_0202769C: ; 0x0202769C mov r1, #0x0 bx r3 .balign 4 -_020276A4: .word FUN_02013918 + 1 +_020276A4: .word FUN_02013918 thumb_func_start FUN_020276A8 FUN_020276A8: ; 0x020276A8 @@ -85009,7 +85009,7 @@ FUN_02027C88: ; 0x02027C88 add r1, r2, #0x0 bx r3 .balign 4 -_02027C94: .word FUN_02021E28 + 1 +_02027C94: .word FUN_02021E28 thumb_func_start FUN_02027C98 FUN_02027C98: ; 0x02027C98 @@ -85244,7 +85244,7 @@ FUN_02027E24: ; 0x02027E24 mov r1, #0xe bx r3 nop -_02027E2C: .word FUN_02022610 + 1 +_02027E2C: .word FUN_02022610 thumb_func_start FUN_02027E30 FUN_02027E30: ; 0x02027E30 @@ -85580,7 +85580,7 @@ FUN_02028048: ; 0x02028048 mov r1, #0x10 bx r3 nop -_02028050: .word FUN_02022610 + 1 +_02028050: .word FUN_02022610 thumb_func_start FUN_02028054 FUN_02028054: ; 0x02028054 @@ -86517,7 +86517,7 @@ FUN_020286EC: ; 0x020286EC mov r1, #0x1d bx r3 nop -_020286F4: .word FUN_02022610 + 1 +_020286F4: .word FUN_02022610 thumb_func_start FUN_020286F8 FUN_020286F8: ; 0x020286F8 @@ -86711,7 +86711,7 @@ FUN_0202881C: ; 0x0202881C mov r1, #0x11 bx r3 nop -_02028824: .word FUN_02022610 + 1 +_02028824: .word FUN_02022610 thumb_func_start FUN_02028828 FUN_02028828: ; 0x02028828 @@ -86738,7 +86738,7 @@ FUN_02028840: ; 0x02028840 add r0, #0x2c bx r3 nop -_02028850: .word FUN_020288AC + 1 +_02028850: .word FUN_020288AC thumb_func_start FUN_02028854 FUN_02028854: ; 0x02028854 @@ -86958,7 +86958,7 @@ FUN_020289A4: ; 0x020289A4 mov r1, #0x12 bx r3 nop -_020289AC: .word FUN_02022610 + 1 +_020289AC: .word FUN_02022610 thumb_func_start FUN_020289B0 FUN_020289B0: ; 0x020289B0 @@ -87749,7 +87749,7 @@ FUN_02028F10: ; 0x02028F10 mov r2, #0x8 bx r3 .balign 4 -_02028F28: .word FUN_020292D4 + 1 +_02028F28: .word FUN_020292D4 thumb_func_start FUN_02028F2C FUN_02028F2C: ; 0x02028F2C @@ -89015,7 +89015,7 @@ FUN_020297E4: ; 0x020297E4 mov r2, #0x8 bx r3 nop -_02029804: .word FUN_020292D4 + 1 +_02029804: .word FUN_020292D4 thumb_func_start FUN_02029808 FUN_02029808: ; 0x02029808 @@ -89384,7 +89384,7 @@ FUN_02029ABC: ; 0x02029ABC mov r1, #0x13 bx r3 nop -_02029AC4: .word FUN_02022610 + 1 +_02029AC4: .word FUN_02022610 thumb_func_start FUN_02029AC8 FUN_02029AC8: ; 0x02029AC8 @@ -89434,7 +89434,7 @@ FUN_02029AFC: ; 0x02029AFC mov r1, #0x1e bx r3 nop -_02029B04: .word FUN_02022610 + 1 +_02029B04: .word FUN_02022610 thumb_func_start FUN_02029B08 FUN_02029B08: ; 0x02029B08 @@ -89663,7 +89663,7 @@ FUN_02029C80: ; 0x02029C80 mov r1, #0x15 bx r3 nop -_02029C88: .word FUN_02022610 + 1 +_02029C88: .word FUN_02022610 thumb_func_start FUN_02029C8C FUN_02029C8C: ; 0x02029C8C @@ -90056,7 +90056,7 @@ FUN_02029EF8: ; 0x02029EF8 mov r1, #0x16 bx r3 nop -_02029F00: .word FUN_02022610 + 1 +_02029F00: .word FUN_02022610 thumb_func_start FUN_02029F04 FUN_02029F04: ; 0x02029F04 @@ -90187,7 +90187,7 @@ FUN_02029FC8: ; 0x02029FC8 mov r1, #0x14 bx r3 nop -_02029FD0: .word FUN_02022610 + 1 +_02029FD0: .word FUN_02022610 thumb_func_start FUN_02029FD4 FUN_02029FD4: ; 0x02029FD4 @@ -90452,7 +90452,7 @@ FUN_0202A1B8: ; 0x0202A1B8 mov r1, #0x0 bx r3 nop -_0202A1C0: .word FUN_0202A150 + 1 +_0202A1C0: .word FUN_0202A150 thumb_func_start FUN_0202A1C4 FUN_0202A1C4: ; 0x0202A1C4 @@ -91499,7 +91499,7 @@ FUN_0202A8CC: ; 0x0202A8CC mov r1, #0x17 bx r3 nop -_0202A8D4: .word FUN_02022610 + 1 +_0202A8D4: .word FUN_02022610 thumb_func_start FUN_0202A8D8 FUN_0202A8D8: ; 0x0202A8D8 @@ -91549,7 +91549,7 @@ FUN_0202A918: ; 0x0202A918 mov r1, #0x18 bx r3 nop -_0202A920: .word FUN_02022610 + 1 +_0202A920: .word FUN_02022610 thumb_func_start FUN_0202A924 FUN_0202A924: ; 0x0202A924 @@ -91640,7 +91640,7 @@ FUN_0202A9B0: ; 0x0202A9B0 mov r1, #0x19 bx r3 nop -_0202A9B8: .word FUN_02022610 + 1 +_0202A9B8: .word FUN_02022610 thumb_func_start FUN_0202A9BC FUN_0202A9BC: ; 0x0202A9BC @@ -91989,7 +91989,7 @@ FUN_0202ABBC: ; 0x0202ABBC mov r1, #0x1a bx r3 nop -_0202ABC4: .word FUN_02022610 + 1 +_0202ABC4: .word FUN_02022610 thumb_func_start FUN_0202ABC8 FUN_0202ABC8: ; 0x0202ABC8 @@ -92535,7 +92535,7 @@ FUN_0202AF50: ; 0x0202AF50 ldr r1, _0202AF5C ; =0x000007FF bx r3 nop -_0202AF58: .word FUN_0202AEF4 + 1 +_0202AF58: .word FUN_0202AEF4 _0202AF5C: .word 0x000007FF thumb_func_start FUN_0202AF60 @@ -92544,7 +92544,7 @@ FUN_0202AF60: ; 0x0202AF60 ldr r1, _0202AF6C ; =0x000007FF bx r3 nop -_0202AF68: .word FUN_0202AF24 + 1 +_0202AF68: .word FUN_0202AF24 _0202AF6C: .word 0x000007FF thumb_func_start FUN_0202AF70 @@ -92660,7 +92660,7 @@ FUN_0202B020: ; 0x0202B020 bx r3 nop _0202B02C: .word 0x021C59D4 -_0202B030: .word FUN_0202AD94 + 1 +_0202B030: .word FUN_0202AD94 thumb_func_start FUN_0202B034 FUN_0202B034: ; 0x0202B034 @@ -93874,7 +93874,7 @@ FUN_0202B888: ; 0x0202B888 mov r1, #0x8 bx r3 nop -_0202B898: .word FUN_0200232C + 1 +_0202B898: .word FUN_0200232C thumb_func_start FUN_0202B89C FUN_0202B89C: ; 0x0202B89C @@ -93927,7 +93927,7 @@ FUN_0202B8E4: ; 0x0202B8E4 mov r1, #0x1c bx r3 nop -_0202B8EC: .word FUN_02022610 + 1 +_0202B8EC: .word FUN_02022610 thumb_func_start FUN_0202B8F0 FUN_0202B8F0: ; 0x0202B8F0 @@ -94817,7 +94817,7 @@ FUN_0202BF7C: ; 0x0202BF7C ldr r3, _0202BF8C ; =FUN_02069A64 bx r3 nop -_0202BF8C: .word FUN_02069A64 + 1 +_0202BF8C: .word FUN_02069A64 thumb_func_start FUN_0202BF90 FUN_0202BF90: ; 0x0202BF90 @@ -95155,7 +95155,7 @@ _0202C1EC: pop {r3, pc} .balign 4 _0202C1F0: .word 0x021C59D8 -_0202C1F4: .word FUN_0202C1F8 + 1 +_0202C1F4: .word FUN_0202C1F8 thumb_func_start FUN_0202C1F8 FUN_0202C1F8: ; 0x0202C1F8 @@ -95224,7 +95224,7 @@ _0202C264: .balign 4 _0202C278: .word 0x021C59D8 _0202C27C: .word 0x00001310 -_0202C280: .word FUN_0202C288 + 1 +_0202C280: .word FUN_0202C288 _0202C284: .word 0x0000132C thumb_func_start FUN_0202C288 @@ -95409,7 +95409,7 @@ _0202C3F0: .word 0x021C59D8 _0202C3F4: .word 0x00001310 _0202C3F8: .word 0x00001304 _0202C3FC: .word 0x00001020 -_0202C400: .word FUN_0202C404 + 1 +_0202C400: .word FUN_0202C404 thumb_func_start FUN_0202C404 FUN_0202C404: ; 0x0202C404 @@ -95476,7 +95476,7 @@ _0202C47A: mov r0, #0x1 pop {r3, pc} nop -_0202C480: .word FUN_0202C484 + 1 +_0202C480: .word FUN_0202C484 thumb_func_start FUN_0202C484 FUN_0202C484: ; 0x0202C484 @@ -95509,7 +95509,7 @@ _0202C4B8: mov r0, #0x1 pop {r3, pc} .balign 4 -_0202C4BC: .word FUN_0202C4C0 + 1 +_0202C4BC: .word FUN_0202C4C0 thumb_func_start FUN_0202C4C0 FUN_0202C4C0: ; 0x0202C4C0 @@ -95744,7 +95744,7 @@ _0202C684: .word 0x021C59D8 _0202C688: .word 0x0000130C _0202C68C: .word 0x000012E4 _0202C690: .word 0x000012E6 -_0202C694: .word FUN_0202C698 + 1 +_0202C694: .word FUN_0202C698 thumb_func_start FUN_0202C698 FUN_0202C698: ; 0x0202C698 @@ -95884,7 +95884,7 @@ _0202C7A8: mov r0, #0x1 pop {r3, pc} .balign 4 -_0202C7AC: .word FUN_0202C7B0 + 1 +_0202C7AC: .word FUN_0202C7B0 thumb_func_start FUN_0202C7B0 FUN_0202C7B0: ; 0x0202C7B0 @@ -95963,7 +95963,7 @@ _0202C83E: _0202C844: .word 0x021C59D8 _0202C848: .word 0x00001310 _0202C84C: .word 0x02105D54 -_0202C850: .word FUN_0202C858 + 1 +_0202C850: .word FUN_0202C858 _0202C854: .word 0x00001220 thumb_func_start FUN_0202C858 @@ -96088,7 +96088,7 @@ _0202C942: _0202C948: .word 0x021C59D8 _0202C94C: .word 0x00001304 _0202C950: .word 0x00001020 -_0202C954: .word FUN_0202C958 + 1 +_0202C954: .word FUN_0202C958 thumb_func_start FUN_0202C958 FUN_0202C958: ; 0x0202C958 @@ -96159,7 +96159,7 @@ _0202C9D6: mov r0, #0x1 pop {r3, pc} nop -_0202C9DC: .word FUN_0202C9E0 + 1 +_0202C9DC: .word FUN_0202C9E0 thumb_func_start FUN_0202C9E0 FUN_0202C9E0: ; 0x0202C9E0 @@ -96198,7 +96198,7 @@ _0202CA24: mov r0, #0x1 pop {r3, pc} .balign 4 -_0202CA28: .word FUN_0202CA2C + 1 +_0202CA28: .word FUN_0202CA2C thumb_func_start FUN_0202CA2C FUN_0202CA2C: ; 0x0202CA2C @@ -96230,7 +96230,7 @@ _0202CA5E: mov r0, #0x1 pop {r3, pc} nop -_0202CA64: .word FUN_0202CA68 + 1 +_0202CA64: .word FUN_0202CA68 thumb_func_start FUN_0202CA68 FUN_0202CA68: ; 0x0202CA68 @@ -96290,7 +96290,7 @@ _0202CACA: _0202CAD0: .word 0x021C59D8 _0202CAD4: .word 0x00001304 _0202CAD8: .word 0x0000FFFF -_0202CADC: .word FUN_0202CAE0 + 1 +_0202CADC: .word FUN_0202CAE0 thumb_func_start FUN_0202CAE0 FUN_0202CAE0: ; 0x0202CAE0 @@ -96585,7 +96585,7 @@ _0202CD00: lsr r0, r0, #0x10 pop {r4, pc} nop -_0202CD10: .word FUN_0202CD14 + 1 +_0202CD10: .word FUN_0202CD14 thumb_func_start FUN_0202CD14 FUN_0202CD14: ; 0x0202CD14 @@ -96877,7 +96877,7 @@ _0202CF34: pop {r3, pc} .balign 4 _0202CF38: .word 0x021C59D8 -_0202CF3C: .word FUN_0202CF40 + 1 +_0202CF3C: .word FUN_0202CF40 thumb_func_start FUN_0202CF40 FUN_0202CF40: ; 0x0202CF40 @@ -96907,7 +96907,7 @@ _0202CF76: bl FUN_0202C198 pop {r3, pc} nop -_0202CF80: .word FUN_0202CEF4 + 1 +_0202CF80: .word FUN_0202CEF4 thumb_func_start FUN_0202CF84 FUN_0202CF84: ; 0x0202CF84 @@ -97078,7 +97078,7 @@ _0202D0C2: .balign 4 _0202D0C4: .word 0x021C59D8 _0202D0C8: .word 0x00001318 -_0202D0CC: .word FUN_0202CB08 + 1 +_0202D0CC: .word FUN_0202CB08 thumb_func_start FUN_0202D0D0 FUN_0202D0D0: ; 0x0202D0D0 @@ -97185,7 +97185,7 @@ _0202D194: mov r0, #0x1 pop {r3, pc} .balign 4 -_0202D198: .word FUN_0202CB50 + 1 +_0202D198: .word FUN_0202CB50 thumb_func_start FUN_0202D19C FUN_0202D19C: ; 0x0202D19C @@ -97358,7 +97358,7 @@ _0202D2BE: nop _0202D2C4: .word 0x021C59D8 _0202D2C8: .word 0x00001344 -_0202D2CC: .word FUN_0202D27C + 1 +_0202D2CC: .word FUN_0202D27C thumb_func_start FUN_0202D2D0 FUN_0202D2D0: ; 0x0202D2D0 @@ -98132,7 +98132,7 @@ FUN_0202D824: ; 0x0202D824 ldr r0, [r0, #0x18] bx r3 nop -_0202D82C: .word FUN_02016A18 + 1 +_0202D82C: .word FUN_02016A18 thumb_func_start FUN_0202D830 FUN_0202D830: ; 0x0202D830 @@ -98547,7 +98547,7 @@ FUN_0202DAD0: ; 0x0202DAD0 bx r3 nop _0202DAF0: .word 0x021C59E0 -_0202DAF4: .word FUN_020311D0 + 1 +_0202DAF4: .word FUN_020311D0 thumb_func_start FUN_0202DAF8 FUN_0202DAF8: ; 0x0202DAF8 @@ -99845,7 +99845,7 @@ FUN_0202E488: ; 0x0202E488 bx r3 .balign 4 _0202E494: .word 0x021C59E8 -_0202E498: .word FUN_02016454 + 1 +_0202E498: .word FUN_02016454 thumb_func_start FUN_0202E49C FUN_0202E49C: ; 0x0202E49C @@ -99866,7 +99866,7 @@ _0202E4BC: pop {r3, pc} nop _0202E4C0: .word 0x021C59E8 -_0202E4C4: .word FUN_0202E470 + 1 +_0202E4C4: .word FUN_0202E470 thumb_func_start FUN_0202E4C8 FUN_0202E4C8: ; 0x0202E4C8 @@ -99904,7 +99904,7 @@ FUN_0202E4F0: ; 0x0202E4F0 bx r3 .balign 4 _0202E4F8: .word FUN_02090CC8 -_0202E4FC: .word FUN_0202E488 + 1 +_0202E4FC: .word FUN_0202E488 thumb_func_start FUN_0202E500 FUN_0202E500: ; 0x0202E500 @@ -100085,7 +100085,7 @@ _0202E656: nop _0202E65C: .word 0x021C59E8 _0202E660: .word 0x00000DAB -_0202E664: .word FUN_020303BC + 1 +_0202E664: .word FUN_020303BC _0202E668: .word 0x00000DAD thumb_func_start FUN_0202E66C @@ -100146,9 +100146,9 @@ _0202E6D4: nop _0202E6DC: .word 0x021C59E8 _0202E6E0: .word 0x00000DAB -_0202E6E4: .word FUN_02030238 + 1 +_0202E6E4: .word FUN_02030238 _0202E6E8: .word 0x020EEC40 -_0202E6EC: .word FUN_0202E380 + 1 +_0202E6EC: .word FUN_0202E380 thumb_func_start FUN_0202E6F0 FUN_0202E6F0: ; 0x0202E6F0 @@ -101501,7 +101501,7 @@ FUN_0202F104: ; 0x0202F104 ldr r3, _0202F108 ; =FUN_0202D2D0 bx r3 .balign 4 -_0202F108: .word FUN_0202D2D0 + 1 +_0202F108: .word FUN_0202D2D0 thumb_func_start FUN_0202F10C FUN_0202F10C: ; 0x0202F10C @@ -101723,7 +101723,7 @@ _0202F2D4: .word 0x0000054C _0202F2D8: .word 0x0000056C _0202F2DC: .word 0x0000065C _0202F2E0: .word 0x000005F8 -_0202F2E4: .word FUN_0202FB20 + 1 +_0202F2E4: .word FUN_0202FB20 _0202F2E8: .word 0x00000548 _0202F2EC: .word 0x00000687 @@ -102465,7 +102465,7 @@ FUN_0202F910: ; 0x0202F910 ldr r3, _0202F914 ; =FUN_0202F820 bx r3 .balign 4 -_0202F914: .word FUN_0202F820 + 1 +_0202F914: .word FUN_0202F820 thumb_func_start FUN_0202F918 FUN_0202F918: ; 0x0202F918 @@ -102492,7 +102492,7 @@ _0202F93E: add r0, r4, #0x0 pop {r3-r7, pc} nop -_0202F94C: .word FUN_0202F910 + 1 +_0202F94C: .word FUN_0202F910 thumb_func_start FUN_0202F950 FUN_0202F950: ; 0x0202F950 @@ -102602,7 +102602,7 @@ FUN_0202FA10: ; 0x0202FA10 mov r0, #0x1 bx r3 nop -_0202FA18: .word FUN_0202F9E0 + 1 +_0202FA18: .word FUN_0202F9E0 thumb_func_start FUN_0202FA1C FUN_0202FA1C: ; 0x0202FA1C @@ -102610,7 +102610,7 @@ FUN_0202FA1C: ; 0x0202FA1C mov r0, #0x0 bx r3 nop -_0202FA24: .word FUN_0202F9E0 + 1 +_0202FA24: .word FUN_0202F9E0 thumb_func_start FUN_0202FA28 FUN_0202FA28: ; 0x0202FA28 @@ -102732,7 +102732,7 @@ FUN_0202FB18: ; 0x0202FB18 ldr r3, _0202FB1C ; =FUN_0202E9E8 bx r3 .balign 4 -_0202FB1C: .word FUN_0202E9E8 + 1 +_0202FB1C: .word FUN_0202E9E8 thumb_func_start FUN_0202FB20 FUN_0202FB20: ; 0x0202FB20 @@ -103397,7 +103397,7 @@ _02030062: .balign 4 _02030064: .word 0x021C59F4 _02030068: .word 0x02105D58 -_0203006C: .word FUN_020304F0 + 1 +_0203006C: .word FUN_020304F0 _02030070: .word 0x00000638 thumb_func_start FUN_02030074 @@ -104150,7 +104150,7 @@ _0203065E: _02030660: .word 0x021C59F4 _02030664: .word 0x02105D58 _02030668: .word 0x0000067F -_0203066C: .word FUN_020304D4 + 1 +_0203066C: .word FUN_020304D4 _02030670: .word 0x0000FFFE thumb_func_start FUN_02030674 @@ -104929,7 +104929,7 @@ FUN_02030C4C: ; 0x02030C4C mov r2, #0x0 bx r3 nop -_02030C54: .word FUN_02030BC4 + 1 +_02030C54: .word FUN_02030BC4 thumb_func_start FUN_02030C58 FUN_02030C58: ; 0x02030C58 @@ -104941,7 +104941,7 @@ FUN_02030C58: ; 0x02030C58 bx r3 .balign 4 _02030C64: .word 0x021C59F4 -_02030C68: .word FUN_0202D498 + 1 +_02030C68: .word FUN_0202D498 _02030C6C: .word 0x00000464 thumb_func_start FUN_02030C70 @@ -105662,7 +105662,7 @@ FUN_020311D0: ; 0x020311D0 mov r2, #0x0 bx r3 nop -_020311D8: .word FUN_02030ADC + 1 +_020311D8: .word FUN_02030ADC thumb_func_start FUN_020311DC FUN_020311DC: ; 0x020311DC @@ -105671,14 +105671,14 @@ FUN_020311DC: ; 0x020311DC add r2, r1, #0x0 bx r3 .balign 4 -_020311E4: .word FUN_02030ADC + 1 +_020311E4: .word FUN_02030ADC thumb_func_start FUN_020311E8 FUN_020311E8: ; 0x020311E8 ldr r3, _020311EC ; =FUN_0202EE24 bx r3 .balign 4 -_020311EC: .word FUN_0202EE24 + 1 +_020311EC: .word FUN_0202EE24 thumb_func_start FUN_020311F0 FUN_020311F0: ; 0x020311F0 @@ -105879,7 +105879,7 @@ FUN_02031354: ; 0x02031354 bx r3 nop _02031364: .word 0x021C59F4 -_02031368: .word FUN_0202D830 + 1 +_02031368: .word FUN_0202D830 _0203136C: .word 0x0000056C thumb_func_start FUN_02031370 @@ -105892,7 +105892,7 @@ FUN_02031370: ; 0x02031370 bx r3 .balign 4 _0203137C: .word 0x021C59F4 -_02031380: .word FUN_0202D4E4 + 1 +_02031380: .word FUN_0202D4E4 _02031384: .word 0x0000056C thumb_func_start FUN_02031388 @@ -105905,7 +105905,7 @@ FUN_02031388: ; 0x02031388 bx r3 .balign 4 _02031394: .word 0x021C59F4 -_02031398: .word FUN_0202D4E4 + 1 +_02031398: .word FUN_0202D4E4 _0203139C: .word 0x0000054C thumb_func_start FUN_020313A0 @@ -106580,7 +106580,7 @@ _02031856: pop {r4, pc} .balign 4 _02031858: .word 0x021C5A00 -_0203185C: .word FUN_02031D30 + 1 +_0203185C: .word FUN_02031D30 thumb_func_start FUN_02031860 FUN_02031860: ; 0x02031860 @@ -106597,7 +106597,7 @@ _02031876: pop {r3, pc} .balign 4 _02031878: .word 0x021C5A00 -_0203187C: .word FUN_020323CC + 1 +_0203187C: .word FUN_020323CC thumb_func_start FUN_02031880 FUN_02031880: ; 0x02031880 @@ -106613,7 +106613,7 @@ FUN_02031880: ; 0x02031880 pop {r3, pc} nop _0203189C: .word 0x021C5A00 -_020318A0: .word FUN_020321B8 + 1 +_020318A0: .word FUN_020321B8 thumb_func_start FUN_020318A4 FUN_020318A4: ; 0x020318A4 @@ -106632,8 +106632,8 @@ FUN_020318B4: ; 0x020318B4 mov r1, #0x0 bx r3 .balign 4 -_020318BC: .word FUN_02031D20 + 1 -_020318C0: .word FUN_02032028 + 1 +_020318BC: .word FUN_02031D20 +_020318C0: .word FUN_02032028 thumb_func_start FUN_020318C4 FUN_020318C4: ; 0x020318C4 @@ -106688,8 +106688,8 @@ FUN_02031914: ; 0x02031914 mov r1, #0x0 bx r3 .balign 4 -_0203191C: .word FUN_02031D20 + 1 -_02031920: .word FUN_02032178 + 1 +_0203191C: .word FUN_02031D20 +_02031920: .word FUN_02032178 thumb_func_start FUN_02031924 FUN_02031924: ; 0x02031924 @@ -106711,7 +106711,7 @@ FUN_02031934: ; 0x02031934 bl FUN_02031D20 pop {r3, pc} .balign 4 -_02031944: .word FUN_02032194 + 1 +_02031944: .word FUN_02032194 thumb_func_start FUN_02031948 FUN_02031948: ; 0x02031948 @@ -106744,7 +106744,7 @@ _02031980: nop _02031984: .word 0x00007080 _02031988: .word 0x021C5A00 -_0203198C: .word FUN_020321D0 + 1 +_0203198C: .word FUN_020321D0 thumb_func_start FUN_02031990 FUN_02031990: ; 0x02031990 @@ -106777,7 +106777,7 @@ _020319C8: nop _020319CC: .word 0x00007080 _020319D0: .word 0x021C5A00 -_020319D4: .word FUN_0203224C + 1 +_020319D4: .word FUN_0203224C thumb_func_start FUN_020319D8 FUN_020319D8: ; 0x020319D8 @@ -106791,8 +106791,8 @@ FUN_020319D8: ; 0x020319D8 bx r3 .balign 4 _020319E8: .word 0x021C5A00 -_020319EC: .word FUN_02031D20 + 1 -_020319F0: .word FUN_02032298 + 1 +_020319EC: .word FUN_02031D20 +_020319F0: .word FUN_02032298 thumb_func_start FUN_020319F4 FUN_020319F4: ; 0x020319F4 @@ -106803,7 +106803,7 @@ FUN_020319F4: ; 0x020319F4 bl FUN_02031D20 pop {r3, pc} .balign 4 -_02031A04: .word FUN_02032364 + 1 +_02031A04: .word FUN_02032364 thumb_func_start FUN_02031A08 FUN_02031A08: ; 0x02031A08 @@ -106819,14 +106819,14 @@ _02031A1A: pop {r3, pc} .balign 4 _02031A1C: .word 0x021C5A00 -_02031A20: .word FUN_02032440 + 1 +_02031A20: .word FUN_02032440 thumb_func_start FUN_02031A24 FUN_02031A24: ; 0x02031A24 ldr r3, _02031A28 ; =FUN_0202D298 bx r3 .balign 4 -_02031A28: .word FUN_0202D298 + 1 +_02031A28: .word FUN_0202D298 thumb_func_start FUN_02031A2C FUN_02031A2C: ; 0x02031A2C @@ -106909,7 +106909,7 @@ _02031ABA: .balign 4 _02031ABC: .word 0x021C5A00 _02031AC0: .word 0x00007080 -_02031AC4: .word FUN_02032478 + 1 +_02031AC4: .word FUN_02032478 thumb_func_start FUN_02031AC8 FUN_02031AC8: ; 0x02031AC8 @@ -106930,7 +106930,7 @@ FUN_02031AC8: ; 0x02031AC8 pop {r3, pc} .balign 4 _02031AEC: .word 0x021C5A00 -_02031AF0: .word FUN_02032628 + 1 +_02031AF0: .word FUN_02032628 thumb_func_start FUN_02031AF4 FUN_02031AF4: ; 0x02031AF4 @@ -106961,8 +106961,8 @@ _02031B1A: bx lr nop _02031B20: .word 0x021C5A00 -_02031B24: .word FUN_0203279C + 1 -_02031B28: .word FUN_020327B4 + 1 +_02031B24: .word FUN_0203279C +_02031B28: .word FUN_020327B4 thumb_func_start FUN_02031B2C FUN_02031B2C: ; 0x02031B2C @@ -106984,7 +106984,7 @@ _02031B44: bx lr .balign 4 _02031B48: .word 0x021C5A00 -_02031B4C: .word FUN_020327FC + 1 +_02031B4C: .word FUN_020327FC thumb_func_start FUN_02031B50 FUN_02031B50: ; 0x02031B50 @@ -107042,8 +107042,8 @@ _02031BB8: pop {r3, pc} nop _02031BC4: .word 0x021C5A00 -_02031BC8: .word FUN_020323DC + 1 -_02031BCC: .word FUN_02032424 + 1 +_02031BC8: .word FUN_020323DC +_02031BCC: .word FUN_02032424 thumb_func_start FUN_02031BD0 FUN_02031BD0: ; 0x02031BD0 @@ -107065,7 +107065,7 @@ _02031BE8: bx lr .balign 4 _02031BEC: .word 0x021C5A00 -_02031BF0: .word FUN_020324F8 + 1 +_02031BF0: .word FUN_020324F8 thumb_func_start FUN_02031BF4 FUN_02031BF4: ; 0x02031BF4 @@ -107081,7 +107081,7 @@ _02031C06: pop {r3, pc} .balign 4 _02031C08: .word 0x021C5A00 -_02031C0C: .word FUN_02032440 + 1 +_02031C0C: .word FUN_02032440 thumb_func_start FUN_02031C10 FUN_02031C10: ; 0x02031C10 @@ -107117,7 +107117,7 @@ _02031C48: pop {r3, pc} nop _02031C4C: .word 0x021C5A00 -_02031C50: .word FUN_02032850 + 1 +_02031C50: .word FUN_02032850 thumb_func_start FUN_02031C54 FUN_02031C54: ; 0x02031C54 @@ -107163,7 +107163,7 @@ _02031C9C: pop {r3-r5, pc} nop _02031CA0: .word 0x00007080 -_02031CA4: .word FUN_02032E00 + 1 +_02031CA4: .word FUN_02032E00 thumb_func_start FUN_02031CA8 FUN_02031CA8: ; 0x02031CA8 @@ -107187,7 +107187,7 @@ _02031CD0: pop {r3-r5, pc} nop _02031CD4: .word 0x00007080 -_02031CD8: .word FUN_02032E48 + 1 +_02031CD8: .word FUN_02032E48 thumb_func_start FUN_02031CDC FUN_02031CDC: ; 0x02031CDC @@ -107329,9 +107329,9 @@ _02031DF6: pop {r3-r5, pc} .balign 4 _02031DF8: .word 0x021C5A00 -_02031DFC: .word FUN_020320C4 + 1 -_02031E00: .word FUN_020323B8 + 1 -_02031E04: .word FUN_02031EE0 + 1 +_02031DFC: .word FUN_020320C4 +_02031E00: .word FUN_020323B8 +_02031E04: .word FUN_02031EE0 thumb_func_start FUN_02031E08 FUN_02031E08: ; 0x02031E08 @@ -107392,8 +107392,8 @@ _02031E7C: pop {r3-r5, pc} nop _02031E80: .word 0x021C5A00 -_02031E84: .word FUN_02032058 + 1 -_02031E88: .word FUN_02031EE0 + 1 +_02031E84: .word FUN_02032058 +_02031E88: .word FUN_02031EE0 thumb_func_start FUN_02031E8C FUN_02031E8C: ; 0x02031E8C @@ -107434,7 +107434,7 @@ _02031ED6: pop {r3-r5, pc} .balign 4 _02031ED8: .word 0x021C5A00 -_02031EDC: .word FUN_02031EE0 + 1 +_02031EDC: .word FUN_02031EE0 thumb_func_start FUN_02031EE0 FUN_02031EE0: ; 0x02031EE0 @@ -107495,8 +107495,8 @@ _02031F50: pop {r3, pc} nop _02031F54: .word 0x021C5A00 -_02031F58: .word FUN_02031F60 + 1 -_02031F5C: .word FUN_02032028 + 1 +_02031F58: .word FUN_02031F60 +_02031F5C: .word FUN_02032028 thumb_func_start FUN_02031F60 FUN_02031F60: ; 0x02031F60 @@ -107544,8 +107544,8 @@ _02031FB2: pop {r3, pc} .balign 4 _02031FBC: .word 0x021C5A00 -_02031FC0: .word FUN_02031FC8 + 1 -_02031FC4: .word FUN_02032028 + 1 +_02031FC0: .word FUN_02031FC8 +_02031FC4: .word FUN_02032028 thumb_func_start FUN_02031FC8 FUN_02031FC8: ; 0x02031FC8 @@ -107585,8 +107585,8 @@ _02032010: bl FUN_02031D20 pop {r3, pc} nop -_0203201C: .word FUN_0203213C + 1 -_02032020: .word FUN_02032028 + 1 +_0203201C: .word FUN_0203213C +_02032020: .word FUN_02032028 _02032024: .word 0x021C5A00 thumb_func_start FUN_02032028 @@ -107601,7 +107601,7 @@ FUN_02032028: ; 0x02032028 _0203203A: pop {r3, pc} .balign 4 -_0203203C: .word FUN_02032058 + 1 +_0203203C: .word FUN_02032058 thumb_func_start FUN_02032040 FUN_02032040: ; 0x02032040 @@ -107615,7 +107615,7 @@ FUN_02032040: ; 0x02032040 _02032052: pop {r3, pc} .balign 4 -_02032054: .word FUN_02031E8C + 1 +_02032054: .word FUN_02031E8C thumb_func_start FUN_02032058 FUN_02032058: ; 0x02032058 @@ -107666,7 +107666,7 @@ _020320BA: pop {r3-r5, pc} .balign 4 _020320BC: .word 0x021C5A00 -_020320C0: .word FUN_020320C4 + 1 +_020320C0: .word FUN_020320C4 thumb_func_start FUN_020320C4 FUN_020320C4: ; 0x020320C4 @@ -107707,8 +107707,8 @@ _0203210A: pop {r3, pc} .balign 4 _0203210C: .word 0x021C5A00 -_02032110: .word FUN_02032118 + 1 -_02032114: .word FUN_02032040 + 1 +_02032110: .word FUN_02032118 +_02032114: .word FUN_02032040 thumb_func_start FUN_02032118 FUN_02032118: ; 0x02032118 @@ -107723,7 +107723,7 @@ FUN_02032118: ; 0x02032118 bl FUN_02031D20 pop {r3, pc} .balign 4 -_02032134: .word FUN_02032138 + 1 +_02032134: .word FUN_02032138 thumb_func_start FUN_02032138 FUN_02032138: ; 0x02032138 @@ -107760,7 +107760,7 @@ _0203216E: pop {r3, pc} .balign 4 _02032170: .word 0x021C5A00 -_02032174: .word FUN_020323B8 + 1 +_02032174: .word FUN_020323B8 thumb_func_start FUN_02032178 FUN_02032178: ; 0x02032178 @@ -107775,7 +107775,7 @@ FUN_02032178: ; 0x02032178 _0203218E: pop {r3, pc} .balign 4 -_02032190: .word FUN_02032140 + 1 +_02032190: .word FUN_02032140 thumb_func_start FUN_02032194 FUN_02032194: ; 0x02032194 @@ -107792,7 +107792,7 @@ FUN_02032194: ; 0x02032194 _020321B0: pop {r3, pc} nop -_020321B4: .word FUN_02031E08 + 1 +_020321B4: .word FUN_02031E08 thumb_func_start FUN_020321B8 FUN_020321B8: ; 0x020321B8 @@ -107806,7 +107806,7 @@ FUN_020321B8: ; 0x020321B8 _020321CA: pop {r3, pc} .balign 4 -_020321CC: .word FUN_02031E08 + 1 +_020321CC: .word FUN_02031E08 thumb_func_start FUN_020321D0 FUN_020321D0: ; 0x020321D0 @@ -107838,7 +107838,7 @@ _0203220C: pop {r3, pc} nop _02032210: .word 0x021C5A00 -_02032214: .word FUN_02032218 + 1 +_02032214: .word FUN_02032218 thumb_func_start FUN_02032218 FUN_02032218: ; 0x02032218 @@ -107853,7 +107853,7 @@ FUN_02032218: ; 0x02032218 _0203222E: pop {r3, pc} .balign 4 -_02032230: .word FUN_02032234 + 1 +_02032230: .word FUN_02032234 thumb_func_start FUN_02032234 FUN_02032234: ; 0x02032234 @@ -107867,7 +107867,7 @@ FUN_02032234: ; 0x02032234 _02032246: pop {r3, pc} .balign 4 -_02032248: .word FUN_020323BC + 1 +_02032248: .word FUN_020323BC thumb_func_start FUN_0203224C FUN_0203224C: ; 0x0203224C @@ -107898,14 +107898,14 @@ _02032286: pop {r3, pc} .balign 4 _02032288: .word 0x021C5A00 -_0203228C: .word FUN_02032290 + 1 +_0203228C: .word FUN_02032290 thumb_func_start FUN_02032290 FUN_02032290: ; 0x02032290 ldr r3, _02032294 ; =FUN_0202EA54 bx r3 .balign 4 -_02032294: .word FUN_0202EA54 + 1 +_02032294: .word FUN_0202EA54 thumb_func_start FUN_02032298 FUN_02032298: ; 0x02032298 @@ -107925,7 +107925,7 @@ _020322B6: pop {r3, pc} .balign 4 _020322B8: .word 0x021C5A00 -_020322BC: .word FUN_020322C0 + 1 +_020322BC: .word FUN_020322C0 thumb_func_start FUN_020322C0 FUN_020322C0: ; 0x020322C0 @@ -107950,8 +107950,8 @@ _020322D2: _020322EE: pop {r3, pc} .balign 4 -_020322F0: .word FUN_020322F8 + 1 -_020322F4: .word FUN_0203234C + 1 +_020322F0: .word FUN_020322F8 +_020322F4: .word FUN_0203234C thumb_func_start FUN_020322F8 FUN_020322F8: ; 0x020322F8 @@ -107962,7 +107962,7 @@ FUN_020322F8: ; 0x020322F8 bl FUN_02031D20 pop {r3, pc} .balign 4 -_02032308: .word FUN_0203230C + 1 +_02032308: .word FUN_0203230C thumb_func_start FUN_0203230C FUN_0203230C: ; 0x0203230C @@ -107993,7 +107993,7 @@ _02032340: pop {r3, pc} nop _02032344: .word 0x021C5A00 -_02032348: .word FUN_02032298 + 1 +_02032348: .word FUN_02032298 thumb_func_start FUN_0203234C FUN_0203234C: ; 0x0203234C @@ -108007,7 +108007,7 @@ FUN_0203234C: ; 0x0203234C _0203235E: pop {r3, pc} .balign 4 -_02032360: .word FUN_020323BC + 1 +_02032360: .word FUN_020323BC thumb_func_start FUN_02032364 FUN_02032364: ; 0x02032364 @@ -108018,7 +108018,7 @@ FUN_02032364: ; 0x02032364 bl FUN_02031D20 pop {r3, pc} .balign 4 -_02032374: .word FUN_02032378 + 1 +_02032374: .word FUN_02032378 thumb_func_start FUN_02032378 FUN_02032378: ; 0x02032378 @@ -108049,7 +108049,7 @@ _020323AC: pop {r3, pc} nop _020323B0: .word 0x021C5A00 -_020323B4: .word FUN_02032290 + 1 +_020323B4: .word FUN_02032290 thumb_func_start FUN_020323B8 FUN_020323B8: ; 0x020323B8 @@ -108073,8 +108073,8 @@ FUN_020323CC: ; 0x020323CC mov r1, #0x5 bx r3 .balign 4 -_020323D4: .word FUN_02031D20 + 1 -_020323D8: .word FUN_02032440 + 1 +_020323D4: .word FUN_02031D20 +_020323D8: .word FUN_02032440 thumb_func_start FUN_020323DC FUN_020323DC: ; 0x020323DC @@ -108106,7 +108106,7 @@ _02032408: bl FUN_02031D20 pop {r3, pc} .balign 4 -_0203241C: .word FUN_020324F8 + 1 +_0203241C: .word FUN_020324F8 _02032420: .word 0x021C5A00 thumb_func_start FUN_02032424 @@ -108122,7 +108122,7 @@ FUN_02032424: ; 0x02032424 _0203243A: pop {r3, pc} .balign 4 -_0203243C: .word FUN_020324F8 + 1 +_0203243C: .word FUN_020324F8 thumb_func_start FUN_02032440 FUN_02032440: ; 0x02032440 @@ -108151,7 +108151,7 @@ _0203246E: pop {r3, pc} .balign 4 _02032470: .word 0x021C5A00 -_02032474: .word FUN_020323BC + 1 +_02032474: .word FUN_020323BC thumb_func_start FUN_02032478 FUN_02032478: ; 0x02032478 @@ -108187,7 +108187,7 @@ _020324BE: pop {r3, pc} .balign 4 _020324C0: .word 0x021C5A00 -_020324C4: .word FUN_020324C8 + 1 +_020324C4: .word FUN_020324C8 thumb_func_start FUN_020324C8 FUN_020324C8: ; 0x020324C8 @@ -108212,7 +108212,7 @@ _020324EE: pop {r3, pc} .balign 4 _020324F0: .word 0x021C5A00 -_020324F4: .word FUN_02032510 + 1 +_020324F4: .word FUN_02032510 thumb_func_start FUN_020324F8 FUN_020324F8: ; 0x020324F8 @@ -108226,7 +108226,7 @@ FUN_020324F8: ; 0x020324F8 _0203250A: pop {r3, pc} .balign 4 -_0203250C: .word FUN_02032510 + 1 +_0203250C: .word FUN_02032510 thumb_func_start FUN_02032510 FUN_02032510: ; 0x02032510 @@ -108273,7 +108273,7 @@ _02032568: pop {r3-r5, pc} nop _0203256C: .word 0x021C5A00 -_02032570: .word FUN_02032578 + 1 +_02032570: .word FUN_02032578 _02032574: .word 0x00002710 thumb_func_start FUN_02032578 @@ -108315,8 +108315,8 @@ _020325C2: pop {r3, pc} .balign 4 _020325C4: .word 0x021C5A00 -_020325C8: .word FUN_020327FC + 1 -_020325CC: .word FUN_020325D0 + 1 +_020325C8: .word FUN_020327FC +_020325CC: .word FUN_020325D0 thumb_func_start FUN_020325D0 FUN_020325D0: ; 0x020325D0 @@ -108357,7 +108357,7 @@ _0203261C: pop {r3-r5, pc} nop _02032620: .word 0x021C5A00 -_02032624: .word FUN_020324C8 + 1 +_02032624: .word FUN_020324C8 thumb_func_start FUN_02032628 FUN_02032628: ; 0x02032628 @@ -108371,7 +108371,7 @@ FUN_02032628: ; 0x02032628 _0203263A: pop {r3, pc} .balign 4 -_0203263C: .word FUN_02032640 + 1 +_0203263C: .word FUN_02032640 thumb_func_start FUN_02032640 FUN_02032640: ; 0x02032640 @@ -108393,7 +108393,7 @@ FUN_02032640: ; 0x02032640 _02032666: pop {r3, pc} .balign 4 -_02032668: .word FUN_0203266C + 1 +_02032668: .word FUN_0203266C thumb_func_start FUN_0203266C FUN_0203266C: ; 0x0203266C @@ -108440,8 +108440,8 @@ _020326BA: pop {r3, pc} .balign 4 _020326C4: .word 0x021C5A00 -_020326C8: .word FUN_020326D0 + 1 -_020326CC: .word FUN_020327B8 + 1 +_020326C8: .word FUN_020326D0 +_020326CC: .word FUN_020327B8 thumb_func_start FUN_020326D0 FUN_020326D0: ; 0x020326D0 @@ -108485,10 +108485,10 @@ _0203271C: bl FUN_02031D20 pop {r3, pc} nop -_02032728: .word FUN_020327B8 + 1 +_02032728: .word FUN_020327B8 _0203272C: .word 0x021C5A00 _02032730: .word 0x02105D5C -_02032734: .word FUN_02032738 + 1 +_02032734: .word FUN_02032738 thumb_func_start FUN_02032738 FUN_02032738: ; 0x02032738 @@ -108533,10 +108533,10 @@ _02032782: bl FUN_02031D20 pop {r3, pc} .balign 4 -_0203278C: .word FUN_020327B8 + 1 +_0203278C: .word FUN_020327B8 _02032790: .word 0x021C5A00 -_02032794: .word FUN_020327B4 + 1 -_02032798: .word FUN_0203279C + 1 +_02032794: .word FUN_020327B4 +_02032798: .word FUN_0203279C thumb_func_start FUN_0203279C FUN_0203279C: ; 0x0203279C @@ -108550,7 +108550,7 @@ FUN_0203279C: ; 0x0203279C _020327AE: pop {r3, pc} .balign 4 -_020327B0: .word FUN_020327B8 + 1 +_020327B0: .word FUN_020327B8 thumb_func_start FUN_020327B4 FUN_020327B4: ; 0x020327B4 @@ -108587,8 +108587,8 @@ _020327EC: pop {r3, pc} nop _020327F0: .word 0x021C5A00 -_020327F4: .word FUN_02032640 + 1 -_020327F8: .word FUN_020327B4 + 1 +_020327F4: .word FUN_02032640 +_020327F8: .word FUN_020327B4 thumb_func_start FUN_020327FC FUN_020327FC: ; 0x020327FC @@ -108624,8 +108624,8 @@ _0203282C: _02032844: pop {r3, pc} nop -_02032848: .word FUN_020325D0 + 1 -_0203284C: .word FUN_020327B8 + 1 +_02032848: .word FUN_020325D0 +_0203284C: .word FUN_020327B8 thumb_func_start FUN_02032850 FUN_02032850: ; 0x02032850 @@ -108652,7 +108652,7 @@ _0203287E: pop {r3, pc} .balign 4 _02032880: .word 0x021C5A00 -_02032884: .word FUN_020323B8 + 1 +_02032884: .word FUN_020323B8 thumb_func_start FUN_02032888 FUN_02032888: ; 0x02032888 @@ -108698,8 +108698,8 @@ FUN_020328C0: ; 0x020328C0 bx r3 nop _020328D8: .word 0x021C5A00 -_020328DC: .word FUN_02031D20 + 1 -_020328E0: .word FUN_02032924 + 1 +_020328DC: .word FUN_02031D20 +_020328E0: .word FUN_02032924 thumb_func_start FUN_020328E4 FUN_020328E4: ; 0x020328E4 @@ -108733,7 +108733,7 @@ FUN_020328F4: ; 0x020328F4 pop {r3, pc} nop _0203291C: .word 0x021C5A00 -_02032920: .word FUN_02032628 + 1 +_02032920: .word FUN_02032628 thumb_func_start FUN_02032924 FUN_02032924: ; 0x02032924 @@ -108747,7 +108747,7 @@ FUN_02032924: ; 0x02032924 _02032936: pop {r3, pc} .balign 4 -_02032938: .word FUN_0203293C + 1 +_02032938: .word FUN_0203293C thumb_func_start FUN_0203293C FUN_0203293C: ; 0x0203293C @@ -108775,7 +108775,7 @@ _0203296C: pop {r3, pc} nop _02032970: .word 0x021C5A00 -_02032974: .word FUN_02032978 + 1 +_02032974: .word FUN_02032978 thumb_func_start FUN_02032978 FUN_02032978: ; 0x02032978 @@ -108834,9 +108834,9 @@ _020329E2: pop {r3, pc} .balign 4 _020329E4: .word 0x021C5A00 -_020329E8: .word FUN_020329F4 + 1 -_020329EC: .word FUN_020327B4 + 1 -_020329F0: .word FUN_02032924 + 1 +_020329E8: .word FUN_020329F4 +_020329EC: .word FUN_020327B4 +_020329F0: .word FUN_02032924 thumb_func_start FUN_020329F4 FUN_020329F4: ; 0x020329F4 @@ -108908,9 +108908,9 @@ _02032A72: pop {r3, pc} .balign 4 _02032A7C: .word 0x021C5A00 -_02032A80: .word FUN_020327B4 + 1 -_02032A84: .word FUN_02032924 + 1 -_02032A88: .word FUN_0203279C + 1 +_02032A80: .word FUN_020327B4 +_02032A84: .word FUN_02032924 +_02032A88: .word FUN_0203279C thumb_func_start FUN_02032A8C FUN_02032A8C: ; 0x02032A8C @@ -109055,7 +109055,7 @@ FUN_02032B84: ; 0x02032B84 ldr r3, _02032B88 ; =FUN_0202EA54 bx r3 .balign 4 -_02032B88: .word FUN_0202EA54 + 1 +_02032B88: .word FUN_0202EA54 thumb_func_start FUN_02032B8C FUN_02032B8C: ; 0x02032B8C @@ -109086,7 +109086,7 @@ _02032BC6: pop {r3, pc} .balign 4 _02032BC8: .word 0x021C5A00 -_02032BCC: .word FUN_02032B84 + 1 +_02032BCC: .word FUN_02032B84 thumb_func_start FUN_02032BD0 FUN_02032BD0: ; 0x02032BD0 @@ -109114,7 +109114,7 @@ _02032C00: pop {r4, pc} nop _02032C04: .word 0x021C5A00 -_02032C08: .word FUN_02032B8C + 1 +_02032C08: .word FUN_02032B8C thumb_func_start FUN_02032C0C FUN_02032C0C: ; 0x02032C0C @@ -109130,7 +109130,7 @@ _02032C1E: pop {r3, pc} .balign 4 _02032C20: .word 0x021C5A00 -_02032C24: .word FUN_02032440 + 1 +_02032C24: .word FUN_02032440 thumb_func_start FUN_02032C28 FUN_02032C28: ; 0x02032C28 @@ -109277,8 +109277,8 @@ _02032D34: pop {r3, pc} nop _02032D38: .word 0x021C5A00 -_02032D3C: .word FUN_02032C6C + 1 -_02032D40: .word FUN_02032B84 + 1 +_02032D3C: .word FUN_02032C6C +_02032D40: .word FUN_02032B84 thumb_func_start FUN_02032D44 FUN_02032D44: ; 0x02032D44 @@ -109306,7 +109306,7 @@ _02032D74: pop {r4, pc} nop _02032D78: .word 0x021C5A00 -_02032D7C: .word FUN_02032CF4 + 1 +_02032D7C: .word FUN_02032CF4 thumb_func_start FUN_02032D80 FUN_02032D80: ; 0x02032D80 @@ -109322,7 +109322,7 @@ _02032D92: pop {r3, pc} .balign 4 _02032D94: .word 0x021C5A00 -_02032D98: .word FUN_02032440 + 1 +_02032D98: .word FUN_02032440 thumb_func_start FUN_02032D9C FUN_02032D9C: ; 0x02032D9C @@ -109372,8 +109372,8 @@ _02032DEE: pop {r3, pc} nop _02032DF4: .word 0x021C5A00 -_02032DF8: .word FUN_0203318C + 1 -_02032DFC: .word FUN_02032178 + 1 +_02032DF8: .word FUN_0203318C +_02032DFC: .word FUN_02032178 thumb_func_start FUN_02032E00 FUN_02032E00: ; 0x02032E00 @@ -109405,7 +109405,7 @@ _02032E3C: pop {r3, pc} nop _02032E40: .word 0x021C5A00 -_02032E44: .word FUN_02032218 + 1 +_02032E44: .word FUN_02032218 thumb_func_start FUN_02032E48 FUN_02032E48: ; 0x02032E48 @@ -109436,7 +109436,7 @@ _02032E82: pop {r3, pc} .balign 4 _02032E84: .word 0x021C5A00 -_02032E88: .word FUN_02032290 + 1 +_02032E88: .word FUN_02032290 thumb_func_start FUN_02032E8C FUN_02032E8C: ; 0x02032E8C @@ -109455,7 +109455,7 @@ FUN_02032E90: ; 0x02032E90 _02032EA2: pop {r3, pc} .balign 4 -_02032EA4: .word FUN_02032E8C + 1 +_02032EA4: .word FUN_02032E8C thumb_func_start FUN_02032EA8 FUN_02032EA8: ; 0x02032EA8 @@ -109513,11 +109513,11 @@ _02032F00: _02032F08: pop {r3, pc} nop -_02032F0C: .word FUN_02032EAC + 1 -_02032F10: .word FUN_02032E8C + 1 -_02032F14: .word FUN_02032E90 + 1 +_02032F0C: .word FUN_02032EAC +_02032F10: .word FUN_02032E8C +_02032F14: .word FUN_02032E90 _02032F18: .word 0x021C5A00 -_02032F1C: .word FUN_02032EA8 + 1 +_02032F1C: .word FUN_02032EA8 thumb_func_start FUN_02032F20 FUN_02032F20: ; 0x02032F20 @@ -109575,10 +109575,10 @@ _02032F78: _02032F84: pop {r3, pc} nop -_02032F88: .word FUN_02032EAC + 1 -_02032F8C: .word FUN_02032E8C + 1 -_02032F90: .word FUN_02032EB0 + 1 -_02032F94: .word FUN_02032EA8 + 1 +_02032F88: .word FUN_02032EAC +_02032F8C: .word FUN_02032E8C +_02032F90: .word FUN_02032EB0 +_02032F94: .word FUN_02032EA8 thumb_func_start FUN_02032F98 FUN_02032F98: ; 0x02032F98 @@ -109607,9 +109607,9 @@ _02032FB2: _02032FCE: pop {r3, pc} .balign 4 -_02032FD0: .word FUN_02032E8C + 1 +_02032FD0: .word FUN_02032E8C _02032FD4: .word 0x021C5A00 -_02032FD8: .word FUN_02032F34 + 1 +_02032FD8: .word FUN_02032F34 thumb_func_start FUN_02032FDC FUN_02032FDC: ; 0x02032FDC @@ -109628,10 +109628,10 @@ FUN_02032FDC: ; 0x02032FDC mov r0, #0x1 pop {r4, pc} .balign 4 -_02032FFC: .word FUN_020303BC + 1 -_02033000: .word FUN_02030238 + 1 +_02032FFC: .word FUN_020303BC +_02033000: .word FUN_02030238 _02033004: .word 0x021C5A00 -_02033008: .word FUN_02032F98 + 1 +_02033008: .word FUN_02032F98 thumb_func_start FUN_0203300C FUN_0203300C: ; 0x0203300C @@ -109672,11 +109672,11 @@ _02033044: bx lr .balign 4 _02033048: .word 0x021C5A00 -_0203304C: .word FUN_02032F34 + 1 -_02033050: .word FUN_02032EB0 + 1 -_02033054: .word FUN_02032E90 + 1 -_02033058: .word FUN_02032EA8 + 1 -_0203305C: .word FUN_02032EAC + 1 +_0203304C: .word FUN_02032F34 +_02033050: .word FUN_02032EB0 +_02033054: .word FUN_02032E90 +_02033058: .word FUN_02032EA8 +_0203305C: .word FUN_02032EAC thumb_func_start FUN_02033060 FUN_02033060: ; 0x02033060 @@ -109701,10 +109701,10 @@ FUN_02033060: ; 0x02033060 _0203308C: pop {r3, pc} nop -_02033090: .word FUN_020303BC + 1 -_02033094: .word FUN_02030238 + 1 +_02033090: .word FUN_020303BC +_02033094: .word FUN_02030238 _02033098: .word 0x021C5A00 -_0203309C: .word FUN_02032F34 + 1 +_0203309C: .word FUN_02032F34 thumb_func_start FUN_020330A0 FUN_020330A0: ; 0x020330A0 @@ -109734,8 +109734,8 @@ _020330D6: pop {r3, pc} .balign 4 _020330D8: .word 0x021C5A00 -_020330DC: .word FUN_02033060 + 1 -_020330E0: .word FUN_02032E8C + 1 +_020330DC: .word FUN_02033060 +_020330E0: .word FUN_02032E8C thumb_func_start FUN_020330E4 FUN_020330E4: ; 0x020330E4 @@ -109769,7 +109769,7 @@ _02033112: pop {r3, pc} nop _02033120: .word 0x021C5A00 -_02033124: .word FUN_020330A0 + 1 +_02033124: .word FUN_020330A0 thumb_func_start FUN_02033128 FUN_02033128: ; 0x02033128 @@ -109796,7 +109796,7 @@ _02033148: bx lr .balign 4 _0203314C: .word 0x021C5A00 -_02033150: .word FUN_02033060 + 1 +_02033150: .word FUN_02033060 thumb_func_start FUN_02033154 FUN_02033154: ; 0x02033154 @@ -109819,8 +109819,8 @@ _0203316E: bx lr nop _02033174: .word 0x021C5A00 -_02033178: .word FUN_02032F34 + 1 -_0203317C: .word FUN_02033060 + 1 +_02033178: .word FUN_02032F34 +_0203317C: .word FUN_02033060 thumb_func_start FUN_02033180 FUN_02033180: ; 0x02033180 @@ -109854,8 +109854,8 @@ _020331AA: _020331BA: pop {r3, pc} .balign 4 -_020331BC: .word FUN_02032440 + 1 -_020331C0: .word FUN_02032E8C + 1 +_020331BC: .word FUN_02032440 +_020331C0: .word FUN_02032E8C thumb_func_start FUN_020331C4 FUN_020331C4: ; 0x020331C4 @@ -109873,7 +109873,7 @@ _020331DC: pop {r3, pc} nop _020331E0: .word 0x021C5A00 -_020331E4: .word FUN_02032440 + 1 +_020331E4: .word FUN_02032440 thumb_func_start FUN_020331E8 FUN_020331E8: ; 0x020331E8 @@ -109891,7 +109891,7 @@ _020331FE: pop {r3, pc} .balign 4 _02033200: .word 0x021C5A00 -_02033204: .word FUN_020330A0 + 1 +_02033204: .word FUN_020330A0 thumb_func_start FUN_02033208 FUN_02033208: ; 0x02033208 @@ -109920,7 +109920,7 @@ _02033232: pop {r3, pc} .balign 4 _02033234: .word 0x021C5A00 -_02033238: .word FUN_020330A0 + 1 +_02033238: .word FUN_020330A0 thumb_func_start FUN_0203323C FUN_0203323C: ; 0x0203323C @@ -109960,8 +109960,8 @@ _02033276: bx lr nop _0203327C: .word 0x021C5A00 -_02033280: .word FUN_02032E8C + 1 -_02033284: .word FUN_02032E90 + 1 +_02033280: .word FUN_02032E8C +_02033284: .word FUN_02032E90 thumb_func_start FUN_02033288 FUN_02033288: ; 0x02033288 @@ -110160,8 +110160,8 @@ _02033408: _02033412: pop {r3, pc} .balign 4 -_02033414: .word FUN_02032E8C + 1 -_02033418: .word FUN_02033060 + 1 +_02033414: .word FUN_02032E8C +_02033418: .word FUN_02033060 thumb_func_start FUN_0203341C FUN_0203341C: ; 0x0203341C @@ -110195,8 +110195,8 @@ _0203345E: pop {r3, pc} .balign 4 _02033460: .word 0x021C5A00 -_02033464: .word FUN_020335D0 + 1 -_02033468: .word FUN_020333F0 + 1 +_02033464: .word FUN_020335D0 +_02033468: .word FUN_020333F0 thumb_func_start FUN_0203346C FUN_0203346C: ; 0x0203346C @@ -110246,7 +110246,7 @@ _02033482: .balign 4 _020334D0: .word 0x00007080 _020334D4: .word 0x021C5A00 -_020334D8: .word FUN_0203341C + 1 +_020334D8: .word FUN_0203341C thumb_func_start FUN_020334DC FUN_020334DC: ; 0x020334DC @@ -111148,7 +111148,7 @@ FUN_02033B68: ; 0x02033B68 add r0, r4, #0x0 pop {r4-r6, pc} nop -_02033BC4: .word FUN_02033BC8 + 1 +_02033BC4: .word FUN_02033BC8 thumb_func_start FUN_02033BC8 FUN_02033BC8: ; 0x02033BC8 @@ -111859,7 +111859,7 @@ _02033FA4: add sp, #0x28 pop {r3-r7, pc} nop -_02034154: .word FUN_02033F50 + 1 +_02034154: .word FUN_02033F50 _02034158: .word 0xFFFFE0FF _0203415C: .word 0x04001000 _02034160: .word 0x021C4918 @@ -112243,7 +112243,7 @@ FUN_020344D0: ; 0x020344D0 ldr r3, _020344D4 ; =FUN_02016A18 bx r3 .balign 4 -_020344D4: .word FUN_02016A18 + 1 +_020344D4: .word FUN_02016A18 thumb_func_start FUN_020344D8 FUN_020344D8: ; 0x020344D8 @@ -113707,7 +113707,7 @@ FUN_02034E30: ; 0x02034E30 mov r1, #0x6 bx r3 nop -_02034E38: .word FUN_02022610 + 1 +_02034E38: .word FUN_02022610 thumb_func_start FUN_02034E3C FUN_02034E3C: ; 0x02034E3C @@ -113715,7 +113715,7 @@ FUN_02034E3C: ; 0x02034E3C mov r1, #0xb bx r3 nop -_02034E44: .word FUN_02022610 + 1 +_02034E44: .word FUN_02022610 thumb_func_start FUN_02034E48 FUN_02034E48: ; 0x02034E48 @@ -114100,7 +114100,7 @@ _02035106: bl FUN_020463CC pop {r3-r5, pc} nop -_02035114: .word FUN_020352E4 + 1 +_02035114: .word FUN_020352E4 thumb_func_start FUN_02035118 FUN_02035118: ; 0x02035118 @@ -114132,7 +114132,7 @@ _0203514C: bl FUN_020463CC pop {r3-r5, pc} .balign 4 -_02035158: .word FUN_020352E4 + 1 +_02035158: .word FUN_020352E4 thumb_func_start FUN_0203515C FUN_0203515C: ; 0x0203515C @@ -114164,7 +114164,7 @@ _02035190: bl FUN_020463CC pop {r3-r5, pc} .balign 4 -_0203519C: .word FUN_020352E4 + 1 +_0203519C: .word FUN_020352E4 thumb_func_start FUN_020351A0 FUN_020351A0: ; 0x020351A0 @@ -114248,7 +114248,7 @@ _02035240: pop {r3-r5, pc} .balign 4 _0203524C: .word 0x000005FD -_02035250: .word FUN_020352E4 + 1 +_02035250: .word FUN_020352E4 thumb_func_start FUN_02035254 FUN_02035254: ; 0x02035254 @@ -115603,7 +115603,7 @@ FUN_02035D10: ; 0x02035D10 mov r0, #0x1 pop {r4, pc} nop -_02035D30: .word FUN_02035D34 + 1 +_02035D30: .word FUN_02035D34 thumb_func_start FUN_02035D34 FUN_02035D34: ; 0x02035D34 @@ -115668,7 +115668,7 @@ FUN_02035D34: ; 0x02035D34 add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02035DC4: .word FUN_02035DC8 + 1 +_02035DC4: .word FUN_02035DC8 thumb_func_start FUN_02035DC8 FUN_02035DC8: ; 0x02035DC8 @@ -115710,7 +115710,7 @@ FUN_02035DF8: ; 0x02035DF8 mov r0, #0x1 pop {r4, pc} nop -_02035E18: .word FUN_02035E1C + 1 +_02035E18: .word FUN_02035E1C thumb_func_start FUN_02035E1C FUN_02035E1C: ; 0x02035E1C @@ -115736,7 +115736,7 @@ FUN_02035E1C: ; 0x02035E1C mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_02035E4C: .word FUN_02035E50 + 1 +_02035E4C: .word FUN_02035E50 thumb_func_start FUN_02035E50 FUN_02035E50: ; 0x02035E50 @@ -116218,11 +116218,11 @@ _0203625E: pop {r4-r7, pc} nop _0203626C: .word 0x020F2A9C -_02036270: .word FUN_0203684C + 1 +_02036270: .word FUN_0203684C _02036274: .word 0x020F2A8C -_02036278: .word FUN_02036BDC + 1 +_02036278: .word FUN_02036BDC _0203627C: .word 0x020F2A90 -_02036280: .word FUN_020362E4 + 1 +_02036280: .word FUN_020362E4 thumb_func_start FUN_02036284 FUN_02036284: ; 0x02036284 @@ -116240,7 +116240,7 @@ FUN_02036284: ; 0x02036284 mov r0, #0x1 pop {r4, pc} nop -_020362A4: .word FUN_020362A8 + 1 +_020362A4: .word FUN_020362A8 thumb_func_start FUN_020362A8 FUN_020362A8: ; 0x020362A8 @@ -116269,7 +116269,7 @@ FUN_020362A8: ; 0x020362A8 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_020362E0: .word FUN_020362E4 + 1 +_020362E0: .word FUN_020362E4 thumb_func_start FUN_020362E4 FUN_020362E4: ; 0x020362E4 @@ -116516,8 +116516,8 @@ _020364F8: pop {r3-r7, pc} .balign 4 _02036504: .word 0x020F96DC -_02036508: .word FUN_02035E50 + 1 -_0203650C: .word FUN_02036BDC + 1 +_02036508: .word FUN_02035E50 +_0203650C: .word FUN_02036BDC thumb_func_start FUN_02036510 FUN_02036510: ; 0x02036510 @@ -116535,7 +116535,7 @@ FUN_02036510: ; 0x02036510 mov r0, #0x1 pop {r4, pc} nop -_02036530: .word FUN_02036534 + 1 +_02036530: .word FUN_02036534 thumb_func_start FUN_02036534 FUN_02036534: ; 0x02036534 @@ -116573,7 +116573,7 @@ FUN_02036534: ; 0x02036534 add sp, #0x8 pop {r3-r5, pc} .balign 4 -_02036580: .word FUN_02036584 + 1 +_02036580: .word FUN_02036584 thumb_func_start FUN_02036584 FUN_02036584: ; 0x02036584 @@ -116714,7 +116714,7 @@ FUN_02036684: ; 0x02036684 mov r0, #0x1 pop {r4, pc} nop -_020366A4: .word FUN_020366A8 + 1 +_020366A4: .word FUN_020366A8 thumb_func_start FUN_020366A8 FUN_020366A8: ; 0x020366A8 @@ -116736,7 +116736,7 @@ FUN_020366A8: ; 0x020366A8 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_020366D0: .word FUN_020366D4 + 1 +_020366D0: .word FUN_020366D4 thumb_func_start FUN_020366D4 FUN_020366D4: ; 0x020366D4 @@ -116775,7 +116775,7 @@ FUN_02036700: ; 0x02036700 mov r0, #0x1 pop {r4, pc} nop -_02036720: .word FUN_02036724 + 1 +_02036720: .word FUN_02036724 thumb_func_start FUN_02036724 FUN_02036724: ; 0x02036724 @@ -116816,7 +116816,7 @@ FUN_02036724: ; 0x02036724 add sp, #0x8 pop {r3-r5, pc} .balign 4 -_02036778: .word FUN_0203677C + 1 +_02036778: .word FUN_0203677C thumb_func_start FUN_0203677C FUN_0203677C: ; 0x0203677C @@ -117034,7 +117034,7 @@ _0203694A: pop {r3-r7, pc} .balign 4 _02036954: .word 0x020F96DC -_02036958: .word FUN_02035E50 + 1 +_02036958: .word FUN_02035E50 thumb_func_start FUN_0203695C FUN_0203695C: ; 0x0203695C @@ -117119,7 +117119,7 @@ _020369C6: add sp, #0xc pop {r4-r7, pc} .balign 4 -_02036A10: .word FUN_02036A14 + 1 +_02036A10: .word FUN_02036A14 thumb_func_start FUN_02036A14 FUN_02036A14: ; 0x02036A14 @@ -117164,7 +117164,7 @@ FUN_02036A14: ; 0x02036A14 mov r0, #0x0 pop {r3-r5, pc} nop -_02036A74: .word FUN_020362E4 + 1 +_02036A74: .word FUN_020362E4 thumb_func_start FUN_02036A78 FUN_02036A78: ; 0x02036A78 @@ -117194,7 +117194,7 @@ FUN_02036A78: ; 0x02036A78 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_02036AB4: .word FUN_020362E4 + 1 +_02036AB4: .word FUN_020362E4 thumb_func_start FUN_02036AB8 FUN_02036AB8: ; 0x02036AB8 @@ -117292,8 +117292,8 @@ _02036B82: add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02036B88: .word FUN_02035E50 + 1 -_02036B8C: .word FUN_020638BC + 1 +_02036B88: .word FUN_02035E50 +_02036B8C: .word FUN_020638BC thumb_func_start FUN_02036B90 FUN_02036B90: ; 0x02036B90 @@ -117318,7 +117318,7 @@ FUN_02036B90: ; 0x02036B90 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_02036BC0: .word FUN_020362E4 + 1 +_02036BC0: .word FUN_020362E4 thumb_func_start FUN_02036BC4 FUN_02036BC4: ; 0x02036BC4 @@ -117457,8 +117457,8 @@ _02036CD4: mov r0, #0x0 pop {r4-r6, pc} nop -_02036CE4: .word FUN_020362E4 + 1 -_02036CE8: .word FUN_02035E50 + 1 +_02036CE4: .word FUN_020362E4 +_02036CE8: .word FUN_02035E50 thumb_func_start FUN_02036CEC FUN_02036CEC: ; 0x02036CEC @@ -117532,7 +117532,7 @@ FUN_02036CEC: ; 0x02036CEC pop {r3-r7, pc} nop _02036D8C: .word 0x020F96DC -_02036D90: .word FUN_02035E50 + 1 +_02036D90: .word FUN_02035E50 thumb_func_start FUN_02036D94 FUN_02036D94: ; 0x02036D94 @@ -117561,7 +117561,7 @@ FUN_02036D94: ; 0x02036D94 mov r0, #0x0 pop {r3-r5, pc} nop -_02036DD0: .word FUN_020362E4 + 1 +_02036DD0: .word FUN_020362E4 thumb_func_start FUN_02036DD4 FUN_02036DD4: ; 0x02036DD4 @@ -117586,7 +117586,7 @@ FUN_02036DD4: ; 0x02036DD4 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_02036E04: .word FUN_020362E4 + 1 +_02036E04: .word FUN_020362E4 thumb_func_start FUN_02036E08 FUN_02036E08: ; 0x02036E08 @@ -117765,7 +117765,7 @@ _02036F98: pop {r3-r5, pc} nop _02036F9C: .word 0x00000475 -_02036FA0: .word FUN_020362E4 + 1 +_02036FA0: .word FUN_020362E4 thumb_func_start FUN_02036FA4 FUN_02036FA4: ; 0x02036FA4 @@ -118803,7 +118803,7 @@ FUN_02037760: ; 0x02037760 bx r3 nop _02037770: .word 0x021C5A08 -_02037774: .word FUN_02030FC8 + 1 +_02037774: .word FUN_02030FC8 thumb_func_start FUN_02037778 FUN_02037778: ; 0x02037778 @@ -118816,7 +118816,7 @@ FUN_02037778: ; 0x02037778 bx r3 nop _02037788: .word 0x021C5A08 -_0203778C: .word FUN_02030FA8 + 1 +_0203778C: .word FUN_02030FA8 thumb_func_start FUN_02037790 FUN_02037790: ; 0x02037790 @@ -118909,7 +118909,7 @@ FUN_0203780C: ; 0x0203780C ldr r1, _02037818 ; =0x020F2D94 bx r3 .balign 4 -_02037814: .word FUN_020373D4 + 1 +_02037814: .word FUN_020373D4 _02037818: .word 0x020F2D94 thumb_func_start FUN_0203781C @@ -119087,7 +119087,7 @@ FUN_0203796C: ; 0x0203796C ldr r1, _02037978 ; =0x020FA6E8 bx r3 .balign 4 -_02037974: .word FUN_020373D4 + 1 +_02037974: .word FUN_020373D4 _02037978: .word 0x020FA6E8 thumb_func_start FUN_0203797C @@ -119375,7 +119375,7 @@ FUN_02037B44: ; 0x02037B44 add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 -_02037BAC: .word FUN_02037A7C + 1 +_02037BAC: .word FUN_02037A7C thumb_func_start FUN_02037BB0 FUN_02037BB0: ; 0x02037BB0 @@ -119582,7 +119582,7 @@ FUN_02037D60: ; 0x02037D60 ldr r1, _02037D6C ; =0x020F2CF4 bx r3 .balign 4 -_02037D68: .word FUN_020373D4 + 1 +_02037D68: .word FUN_020373D4 _02037D6C: .word 0x020F2CF4 thumb_func_start FUN_02037D70 @@ -119716,7 +119716,7 @@ _02037E6C: add sp, #0x8 pop {r3-r7, pc} nop -_02037E7C: .word FUN_02037D70 + 1 +_02037E7C: .word FUN_02037D70 thumb_func_start FUN_02037E80 FUN_02037E80: ; 0x02037E80 @@ -119725,7 +119725,7 @@ FUN_02037E80: ; 0x02037E80 ldr r1, _02037E8C ; =0x020F2CE4 bx r3 .balign 4 -_02037E88: .word FUN_020373D4 + 1 +_02037E88: .word FUN_020373D4 _02037E8C: .word 0x020F2CE4 thumb_func_start FUN_02037E90 @@ -119778,7 +119778,7 @@ FUN_02037EE8: ; 0x02037EE8 ldr r1, _02037EF4 ; =0x020F2CC4 bx r3 .balign 4 -_02037EF0: .word FUN_020373D4 + 1 +_02037EF0: .word FUN_020373D4 _02037EF4: .word 0x020F2CC4 thumb_func_start FUN_02037EF8 @@ -119805,7 +119805,7 @@ FUN_02037F1C: ; 0x02037F1C ldr r1, _02037F28 ; =0x020FCAC8 bx r3 .balign 4 -_02037F24: .word FUN_020373D4 + 1 +_02037F24: .word FUN_020373D4 _02037F28: .word 0x020FCAC8 thumb_func_start FUN_02037F2C @@ -119883,7 +119883,7 @@ FUN_02037FB4: ; 0x02037FB4 ldr r1, _02037FC0 ; =0x020FD1B0 bx r3 .balign 4 -_02037FBC: .word FUN_020373D4 + 1 +_02037FBC: .word FUN_020373D4 _02037FC0: .word 0x020FD1B0 thumb_func_start FUN_02037FC4 @@ -120052,7 +120052,7 @@ _020380E8: add sp, #0x8 pop {r3-r7, pc} nop -_02038118: .word FUN_02038070 + 1 +_02038118: .word FUN_02038070 thumb_func_start FUN_0203811C FUN_0203811C: ; 0x0203811C @@ -120403,7 +120403,7 @@ FUN_020383D8: ; 0x020383D8 bl FUN_0204640C pop {r4, pc} .balign 4 -_020383F4: .word FUN_020381FC + 1 +_020383F4: .word FUN_020381FC thumb_func_start FUN_020383F8 FUN_020383F8: ; 0x020383F8 @@ -120468,7 +120468,7 @@ FUN_0203846C: ; 0x0203846C ldr r1, _02038478 ; =0x020F2D54 bx r3 .balign 4 -_02038474: .word FUN_020373D4 + 1 +_02038474: .word FUN_020373D4 _02038478: .word 0x020F2D54 thumb_func_start FUN_0203847C @@ -120719,7 +120719,7 @@ _0203866E: add sp, #0x10 pop {r3-r7, pc} .balign 4 -_0203867C: .word FUN_0203847C + 1 +_0203867C: .word FUN_0203847C thumb_func_start FUN_02038680 FUN_02038680: ; 0x02038680 @@ -120728,7 +120728,7 @@ FUN_02038680: ; 0x02038680 ldr r1, _0203868C ; =0x020F2C54 bx r3 .balign 4 -_02038688: .word FUN_020373D4 + 1 +_02038688: .word FUN_020373D4 _0203868C: .word 0x020F2C54 thumb_func_start FUN_02038690 @@ -120749,7 +120749,7 @@ FUN_020386A4: ; 0x020386A4 ldr r1, _020386B0 ; =0x020F2C34 bx r3 .balign 4 -_020386AC: .word FUN_020373D4 + 1 +_020386AC: .word FUN_020373D4 _020386B0: .word 0x020F2C34 thumb_func_start FUN_020386B4 @@ -120908,7 +120908,7 @@ FUN_02038804: ; 0x02038804 ldr r2, [r0, #0xc] bx r3 .balign 4 -_0203880C: .word FUN_020373D4 + 1 +_0203880C: .word FUN_020373D4 _02038810: .word 0x020F2D14 thumb_func_start FUN_02038814 @@ -120918,7 +120918,7 @@ FUN_02038814: ; 0x02038814 ldr r1, _02038820 ; =0x020F2D64 bx r3 .balign 4 -_0203881C: .word FUN_020373D4 + 1 +_0203881C: .word FUN_020373D4 _02038820: .word 0x020F2D64 thumb_func_start FUN_02038824 @@ -120953,7 +120953,7 @@ FUN_02038854: ; 0x02038854 ldr r1, _02038860 ; =0x020F2C04 bx r3 .balign 4 -_0203885C: .word FUN_020373D4 + 1 +_0203885C: .word FUN_020373D4 _02038860: .word 0x020F2C04 thumb_func_start FUN_02038864 @@ -121170,7 +121170,7 @@ FUN_020389CC: ; 0x020389CC bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_02038A38: .word FUN_02038914 + 1 +_02038A38: .word FUN_02038914 thumb_func_start FUN_02038A3C FUN_02038A3C: ; 0x02038A3C @@ -121261,7 +121261,7 @@ FUN_02038AD0: ; 0x02038AD0 bl FUN_0204640C pop {r4, pc} .balign 4 -_02038AF0: .word FUN_02038AB0 + 1 +_02038AF0: .word FUN_02038AB0 thumb_func_start FUN_02038AF4 FUN_02038AF4: ; 0x02038AF4 @@ -121527,7 +121527,7 @@ FUN_02038C78: ; 0x02038C78 bl FUN_020463CC pop {r3-r7, pc} nop -_02038CA4: .word FUN_02038D48 + 1 +_02038CA4: .word FUN_02038D48 thumb_func_start FUN_02038CA8 FUN_02038CA8: ; 0x02038CA8 @@ -121580,7 +121580,7 @@ FUN_02038CD8: ; 0x02038CD8 add sp, #0xc pop {r4-r7, pc} .balign 4 -_02038D0C: .word FUN_02038D48 + 1 +_02038D0C: .word FUN_02038D48 thumb_func_start FUN_02038D10 FUN_02038D10: ; 0x02038D10 @@ -121607,7 +121607,7 @@ FUN_02038D10: ; 0x02038D10 add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02038D44: .word FUN_02038D48 + 1 +_02038D44: .word FUN_02038D48 thumb_func_start FUN_02038D48 FUN_02038D48: ; 0x02038D48 @@ -122539,7 +122539,7 @@ FUN_02039460: ; 0x02039460 _0203947C: pop {r3-r5, pc} nop -_02039480: .word FUN_020351A0 + 1 +_02039480: .word FUN_020351A0 thumb_func_start FUN_02039484 FUN_02039484: ; 0x02039484 @@ -122571,7 +122571,7 @@ FUN_020394B0: ; 0x020394B0 ldr r3, _020394B4 ; =FUN_02034774 bx r3 .balign 4 -_020394B4: .word FUN_02034774 + 1 +_020394B4: .word FUN_02034774 thumb_func_start FUN_020394B8 FUN_020394B8: ; 0x020394B8 @@ -123083,7 +123083,7 @@ FUN_02039874: ; 0x02039874 lsl r1, r1, #0x6 bx r3 .balign 4 -_0203987C: .word FUN_02039880 + 1 +_0203987C: .word FUN_02039880 thumb_func_start FUN_02039880 FUN_02039880: ; 0x02039880 @@ -123292,7 +123292,7 @@ FUN_020399B4: ; 0x020399B4 mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_020399E4: .word FUN_020399E8 + 1 +_020399E4: .word FUN_020399E8 thumb_func_start FUN_020399E8 FUN_020399E8: ; 0x020399E8 @@ -123684,7 +123684,7 @@ FUN_02039C78: ; 0x02039C78 mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_02039CC4: .word FUN_02039CC8 + 1 +_02039CC4: .word FUN_02039CC8 thumb_func_start FUN_02039CC8 FUN_02039CC8: ; 0x02039CC8 @@ -124226,7 +124226,7 @@ FUN_0203A098: ; 0x0203A098 add sp, #0x4 pop {r3-r6, pc} nop -_0203A0F8: .word FUN_0203A2F0 + 1 +_0203A0F8: .word FUN_0203A2F0 thumb_func_start FUN_0203A0FC FUN_0203A0FC: ; 0x0203A0FC @@ -124290,7 +124290,7 @@ FUN_0203A13C: ; 0x0203A13C add sp, #0x8 pop {r3-r7, pc} nop -_0203A184: .word FUN_0203A2F0 + 1 +_0203A184: .word FUN_0203A2F0 thumb_func_start FUN_0203A188 FUN_0203A188: ; 0x0203A188 @@ -124356,7 +124356,7 @@ _0203A1F4: nop _0203A204: .word 0x0000FFFF _0203A208: .word 0x0000022B -_0203A20C: .word FUN_0203A2F0 + 1 +_0203A20C: .word FUN_0203A2F0 thumb_func_start FUN_0203A210 FUN_0203A210: ; 0x0203A210 @@ -124411,7 +124411,7 @@ FUN_0203A210: ; 0x0203A210 add sp, #0x8 pop {r3-r7, pc} nop -_0203A284: .word FUN_0203A2F0 + 1 +_0203A284: .word FUN_0203A2F0 thumb_func_start FUN_0203A288 FUN_0203A288: ; 0x0203A288 @@ -124440,7 +124440,7 @@ FUN_0203A288: ; 0x0203A288 add sp, #0x8 pop {r3-r5, pc} .balign 4 -_0203A2C0: .word FUN_0203A2F0 + 1 +_0203A2C0: .word FUN_0203A2F0 thumb_func_start FUN_0203A2C4 FUN_0203A2C4: ; 0x0203A2C4 @@ -124463,7 +124463,7 @@ FUN_0203A2C4: ; 0x0203A2C4 add sp, #0x4 pop {r3-r4, pc} .balign 4 -_0203A2EC: .word FUN_0203A2F0 + 1 +_0203A2EC: .word FUN_0203A2F0 thumb_func_start FUN_0203A2F0 FUN_0203A2F0: ; 0x0203A2F0 @@ -124503,7 +124503,7 @@ FUN_0203A304: ; 0x0203A304 add sp, #0x4 pop {r3-r4, pc} .balign 4 -_0203A33C: .word FUN_0203A2F0 + 1 +_0203A33C: .word FUN_0203A2F0 thumb_func_start FUN_0203A340 FUN_0203A340: ; 0x0203A340 @@ -124537,7 +124537,7 @@ FUN_0203A340: ; 0x0203A340 add sp, #0x8 pop {r3-r5, pc} .balign 4 -_0203A384: .word FUN_0203A2F0 + 1 +_0203A384: .word FUN_0203A2F0 thumb_func_start FUN_0203A388 FUN_0203A388: ; 0x0203A388 @@ -124565,7 +124565,7 @@ FUN_0203A388: ; 0x0203A388 add sp, #0x4 pop {r3-r4, pc} nop -_0203A3C0: .word FUN_0203A2F0 + 1 +_0203A3C0: .word FUN_0203A2F0 thumb_func_start FUN_0203A3C4 FUN_0203A3C4: ; 0x0203A3C4 @@ -124593,7 +124593,7 @@ FUN_0203A3C4: ; 0x0203A3C4 add sp, #0x4 pop {r3-r4, pc} nop -_0203A3FC: .word FUN_0203A2F0 + 1 +_0203A3FC: .word FUN_0203A2F0 thumb_func_start FUN_0203A400 FUN_0203A400: ; 0x0203A400 @@ -124638,7 +124638,7 @@ _0203A448: add sp, #0x8 pop {r3-r5, pc} nop -_0203A458: .word FUN_0203A2F0 + 1 +_0203A458: .word FUN_0203A2F0 thumb_func_start FUN_0203A45C FUN_0203A45C: ; 0x0203A45C @@ -124648,7 +124648,7 @@ FUN_0203A45C: ; 0x0203A45C mov r0, #0x1 pop {r3, pc} .balign 4 -_0203A468: .word FUN_0203A46C + 1 +_0203A468: .word FUN_0203A46C thumb_func_start FUN_0203A46C FUN_0203A46C: ; 0x0203A46C @@ -124682,7 +124682,7 @@ FUN_0203A484: ; 0x0203A484 mov r0, #0x1 pop {r4, pc} nop -_0203A4A8: .word FUN_0203A4AC + 1 +_0203A4A8: .word FUN_0203A4AC thumb_func_start FUN_0203A4AC FUN_0203A4AC: ; 0x0203A4AC @@ -124714,7 +124714,7 @@ FUN_0203A4D0: ; 0x0203A4D0 mov r0, #0x1 pop {r3, pc} .balign 4 -_0203A4DC: .word FUN_0203A4E0 + 1 +_0203A4DC: .word FUN_0203A4E0 thumb_func_start FUN_0203A4E0 FUN_0203A4E0: ; 0x0203A4E0 @@ -124792,7 +124792,7 @@ FUN_0203A560: ; 0x0203A560 mov r0, #0x1 pop {r3, pc} .balign 4 -_0203A56C: .word FUN_0203A570 + 1 +_0203A56C: .word FUN_0203A570 thumb_func_start FUN_0203A570 FUN_0203A570: ; 0x0203A570 @@ -124961,7 +124961,7 @@ FUN_0203A630: ; 0x0203A630 add sp, #0xc pop {r4-r7, pc} .balign 4 -_0203A6C4: .word FUN_0203A6C8 + 1 +_0203A6C4: .word FUN_0203A6C8 thumb_func_start FUN_0203A6C8 FUN_0203A6C8: ; 0x0203A6C8 @@ -125190,7 +125190,7 @@ _0203A88E: mov r0, #0x1 pop {r4, pc} nop -_0203A89C: .word FUN_0203A8A0 + 1 +_0203A89C: .word FUN_0203A8A0 thumb_func_start FUN_0203A8A0 FUN_0203A8A0: ; 0x0203A8A0 @@ -125271,7 +125271,7 @@ FUN_0203A8B8: ; 0x0203A8B8 add sp, #0x10 pop {r3-r7, pc} .balign 4 -_0203A948: .word FUN_0203A94C + 1 +_0203A948: .word FUN_0203A94C thumb_func_start FUN_0203A94C FUN_0203A94C: ; 0x0203A94C @@ -125369,7 +125369,7 @@ FUN_0203A9F0: ; 0x0203A9F0 mov r0, #0x1 pop {r4, pc} nop -_0203AA08: .word FUN_0203AA0C + 1 +_0203AA08: .word FUN_0203AA0C thumb_func_start FUN_0203AA0C FUN_0203AA0C: ; 0x0203AA0C @@ -125494,7 +125494,7 @@ FUN_0203AAA0: ; 0x0203AAA0 nop _0203AAF4: .word 0x000003D9 _0203AAF8: .word 0x020F34E0 -_0203AAFC: .word FUN_0203AB00 + 1 +_0203AAFC: .word FUN_0203AB00 thumb_func_start FUN_0203AB00 FUN_0203AB00: ; 0x0203AB00 @@ -125767,7 +125767,7 @@ FUN_0203AD08: ; 0x0203AD08 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203AD28: .word FUN_0203AD2C + 1 +_0203AD28: .word FUN_0203AD2C thumb_func_start FUN_0203AD2C FUN_0203AD2C: ; 0x0203AD2C @@ -125807,7 +125807,7 @@ FUN_0203AD54: ; 0x0203AD54 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203AD74: .word FUN_0203AD78 + 1 +_0203AD74: .word FUN_0203AD78 thumb_func_start FUN_0203AD78 FUN_0203AD78: ; 0x0203AD78 @@ -126037,7 +126037,7 @@ FUN_0203AF34: ; 0x0203AF34 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203AF54: .word FUN_0203AD2C + 1 +_0203AF54: .word FUN_0203AD2C thumb_func_start FUN_0203AF58 FUN_0203AF58: ; 0x0203AF58 @@ -126059,7 +126059,7 @@ FUN_0203AF58: ; 0x0203AF58 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203AF80: .word FUN_0203AD2C + 1 +_0203AF80: .word FUN_0203AD2C thumb_func_start FUN_0203AF84 FUN_0203AF84: ; 0x0203AF84 @@ -126289,7 +126289,7 @@ FUN_0203B148: ; 0x0203B148 mov r0, #0x1 pop {r3, pc} .balign 4 -_0203B154: .word FUN_0203B158 + 1 +_0203B154: .word FUN_0203B158 thumb_func_start FUN_0203B158 FUN_0203B158: ; 0x0203B158 @@ -126332,7 +126332,7 @@ _0203B18E: str r0, [r4, #0x0] pop {r3-r7, pc} nop -_0203B1A4: .word FUN_0203B1A8 + 1 +_0203B1A4: .word FUN_0203B1A8 thumb_func_start FUN_0203B1A8 FUN_0203B1A8: ; 0x0203B1A8 @@ -126578,7 +126578,7 @@ _0203B398: pop {r3-r7, pc} nop _0203B3A8: .word 0x021C5A0C -_0203B3AC: .word FUN_0203B218 + 1 +_0203B3AC: .word FUN_0203B218 thumb_func_start FUN_0203B3B0 FUN_0203B3B0: ; 0x0203B3B0 @@ -127215,7 +127215,7 @@ FUN_0203B8E4: ; 0x0203B8E4 mov r0, #0x1 pop {r3-r5, pc} nop -_0203B910: .word FUN_0203BC04 + 1 +_0203B910: .word FUN_0203BC04 thumb_func_start FUN_0203B914 FUN_0203B914: ; 0x0203B914 @@ -127238,7 +127238,7 @@ FUN_0203B914: ; 0x0203B914 mov r0, #0x1 pop {r3-r5, pc} nop -_0203B940: .word FUN_0203BC04 + 1 +_0203B940: .word FUN_0203BC04 thumb_func_start FUN_0203B944 FUN_0203B944: ; 0x0203B944 @@ -127354,7 +127354,7 @@ FUN_0203B9B4: ; 0x0203B9B4 add sp, #0xc pop {r4-r7, pc} .balign 4 -_0203BA38: .word FUN_0203BC04 + 1 +_0203BA38: .word FUN_0203BC04 thumb_func_start FUN_0203BA3C FUN_0203BA3C: ; 0x0203BA3C @@ -127441,7 +127441,7 @@ FUN_0203BAB0: ; 0x0203BAB0 mov r0, #0x1 pop {r3-r5, pc} nop -_0203BAF0: .word FUN_0203BC04 + 1 +_0203BAF0: .word FUN_0203BC04 thumb_func_start FUN_0203BAF4 FUN_0203BAF4: ; 0x0203BAF4 @@ -127923,7 +127923,7 @@ FUN_0203BE80: ; 0x0203BE80 mov r0, #0x1 pop {r4, pc} nop -_0203BE98: .word FUN_0203BE9C + 1 +_0203BE98: .word FUN_0203BE9C thumb_func_start FUN_0203BE9C FUN_0203BE9C: ; 0x0203BE9C @@ -128089,7 +128089,7 @@ _0203BFCC: mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_0203BFE8: .word FUN_0203BB90 + 1 +_0203BFE8: .word FUN_0203BB90 thumb_func_start FUN_0203BFEC FUN_0203BFEC: ; 0x0203BFEC @@ -128138,7 +128138,7 @@ _0203C034: mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_0203C050: .word FUN_0203BB90 + 1 +_0203C050: .word FUN_0203BB90 thumb_func_start FUN_0203C054 FUN_0203C054: ; 0x0203C054 @@ -128235,7 +128235,7 @@ FUN_0203C0FC: ; 0x0203C0FC mov r0, #0x1 pop {r4, pc} .balign 4 -_0203C114: .word FUN_0203BC04 + 1 +_0203C114: .word FUN_0203BC04 thumb_func_start FUN_0203C118 FUN_0203C118: ; 0x0203C118 @@ -128280,7 +128280,7 @@ FUN_0203C12C: ; 0x0203C12C mov r0, #0x1 pop {r3-r5, pc} nop -_0203C170: .word FUN_0203BB90 + 1 +_0203C170: .word FUN_0203BB90 thumb_func_start FUN_0203C174 FUN_0203C174: ; 0x0203C174 @@ -128307,7 +128307,7 @@ FUN_0203C174: ; 0x0203C174 mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203C1A8: .word FUN_0203BB90 + 1 +_0203C1A8: .word FUN_0203BB90 thumb_func_start FUN_0203C1AC FUN_0203C1AC: ; 0x0203C1AC @@ -128402,7 +128402,7 @@ FUN_0203C200: ; 0x0203C200 mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_0203C274: .word FUN_0203BB90 + 1 +_0203C274: .word FUN_0203BB90 thumb_func_start FUN_0203C278 FUN_0203C278: ; 0x0203C278 @@ -128438,7 +128438,7 @@ FUN_0203C278: ; 0x0203C278 mov r0, #0x1 pop {r3-r5, pc} nop -_0203C2C0: .word FUN_0203BBBC + 1 +_0203C2C0: .word FUN_0203BBBC thumb_func_start FUN_0203C2C4 FUN_0203C2C4: ; 0x0203C2C4 @@ -128453,7 +128453,7 @@ FUN_0203C2C4: ; 0x0203C2C4 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203C2DC: .word FUN_0203BC04 + 1 +_0203C2DC: .word FUN_0203BC04 thumb_func_start FUN_0203C2E0 FUN_0203C2E0: ; 0x0203C2E0 @@ -128495,7 +128495,7 @@ FUN_0203C300: ; 0x0203C300 mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203C328: .word FUN_0203BB90 + 1 +_0203C328: .word FUN_0203BB90 thumb_func_start FUN_0203C32C FUN_0203C32C: ; 0x0203C32C @@ -128527,7 +128527,7 @@ FUN_0203C33C: ; 0x0203C33C mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203C364: .word FUN_0203BB90 + 1 +_0203C364: .word FUN_0203BB90 thumb_func_start FUN_0203C368 FUN_0203C368: ; 0x0203C368 @@ -128573,7 +128573,7 @@ _0203C3C0: mov r0, #0x1 pop {r4-r6, pc} .balign 4 -_0203C3C4: .word FUN_0203BC04 + 1 +_0203C3C4: .word FUN_0203BC04 thumb_func_start FUN_0203C3C8 FUN_0203C3C8: ; 0x0203C3C8 @@ -128622,7 +128622,7 @@ FUN_0203C3E8: ; 0x0203C3E8 mov r0, #0x1 pop {r4-r6, pc} nop -_0203C42C: .word FUN_0203BC04 + 1 +_0203C42C: .word FUN_0203BC04 thumb_func_start FUN_0203C430 FUN_0203C430: ; 0x0203C430 @@ -128687,7 +128687,7 @@ _0203C492: mov r0, #0x1 pop {r4-r6, pc} .balign 4 -_0203C4AC: .word FUN_0203BC04 + 1 +_0203C4AC: .word FUN_0203BC04 thumb_func_start FUN_0203C4B0 FUN_0203C4B0: ; 0x0203C4B0 @@ -128973,7 +128973,7 @@ FUN_0203C70C: ; 0x0203C70C mov r0, #0x1 pop {r3, pc} .balign 4 -_0203C718: .word FUN_0203C71C + 1 +_0203C718: .word FUN_0203C71C thumb_func_start FUN_0203C71C FUN_0203C71C: ; 0x0203C71C @@ -129319,7 +129319,7 @@ FUN_0203C990: ; 0x0203C990 mov r0, #0x1 pop {r4-r6, pc} nop -_0203C9F4: .word FUN_0203C9F8 + 1 +_0203C9F4: .word FUN_0203C9F8 thumb_func_start FUN_0203C9F8 FUN_0203C9F8: ; 0x0203C9F8 @@ -129637,7 +129637,7 @@ FUN_0203CBE8: ; 0x0203CBE8 mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_0203CC84: .word FUN_0203A2F0 + 1 +_0203CC84: .word FUN_0203A2F0 thumb_func_start FUN_0203CC88 FUN_0203CC88: ; 0x0203CC88 @@ -129686,7 +129686,7 @@ FUN_0203CC88: ; 0x0203CC88 add sp, #0x8 pop {r3-r7, pc} nop -_0203CCF4: .word FUN_0203CCF8 + 1 +_0203CCF4: .word FUN_0203CCF8 thumb_func_start FUN_0203CCF8 FUN_0203CCF8: ; 0x0203CCF8 @@ -129757,7 +129757,7 @@ FUN_0203CD20: ; 0x0203CD20 add sp, #0x8 pop {r3-r7, pc} nop -_0203CD8C: .word FUN_0203CD90 + 1 +_0203CD8C: .word FUN_0203CD90 thumb_func_start FUN_0203CD90 FUN_0203CD90: ; 0x0203CD90 @@ -130282,7 +130282,7 @@ FUN_0203D1A4: ; 0x0203D1A4 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203D1BC: .word FUN_0203BC04 + 1 +_0203D1BC: .word FUN_0203BC04 thumb_func_start FUN_0203D1C0 FUN_0203D1C0: ; 0x0203D1C0 @@ -130449,7 +130449,7 @@ FUN_0203D2E4: ; 0x0203D2E4 mov r0, #0x1 pop {r4, pc} nop -_0203D310: .word FUN_0203D314 + 1 +_0203D310: .word FUN_0203D314 thumb_func_start FUN_0203D314 FUN_0203D314: ; 0x0203D314 @@ -130630,7 +130630,7 @@ FUN_0203D458: ; 0x0203D458 mov r0, #0x1 pop {r4, pc} nop -_0203D478: .word FUN_0203D47C + 1 +_0203D478: .word FUN_0203D47C thumb_func_start FUN_0203D47C FUN_0203D47C: ; 0x0203D47C @@ -130790,7 +130790,7 @@ FUN_0203D5B0: ; 0x0203D5B0 mov r0, #0x1 pop {r4, pc} nop -_0203D5C8: .word FUN_0203D5CC + 1 +_0203D5C8: .word FUN_0203D5CC thumb_func_start FUN_0203D5CC FUN_0203D5CC: ; 0x0203D5CC @@ -130887,7 +130887,7 @@ FUN_0203D66C: ; 0x0203D66C mov r0, #0x1 pop {r4, pc} nop -_0203D684: .word FUN_0203D688 + 1 +_0203D684: .word FUN_0203D688 thumb_func_start FUN_0203D688 FUN_0203D688: ; 0x0203D688 @@ -130932,7 +130932,7 @@ FUN_0203D6C4: ; 0x0203D6C4 mov r0, #0x1 pop {r4, pc} nop -_0203D6DC: .word FUN_0203D6E0 + 1 +_0203D6DC: .word FUN_0203D6E0 thumb_func_start FUN_0203D6E0 FUN_0203D6E0: ; 0x0203D6E0 @@ -131194,7 +131194,7 @@ FUN_0203D8EC: ; 0x0203D8EC mov r0, #0x1 pop {r4, pc} .balign 4 -_0203D900: .word FUN_0203D904 + 1 +_0203D900: .word FUN_0203D904 thumb_func_start FUN_0203D904 FUN_0203D904: ; 0x0203D904 @@ -131223,7 +131223,7 @@ FUN_0203D920: ; 0x0203D920 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203D934: .word FUN_0203D904 + 1 +_0203D934: .word FUN_0203D904 thumb_func_start FUN_0203D938 FUN_0203D938: ; 0x0203D938 @@ -131792,7 +131792,7 @@ FUN_0203DD60: ; 0x0203DD60 mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_0203DDBC: .word FUN_0203DDC0 + 1 +_0203DDBC: .word FUN_0203DDC0 thumb_func_start FUN_0203DDC0 FUN_0203DDC0: ; 0x0203DDC0 @@ -131850,7 +131850,7 @@ FUN_0203DE00: ; 0x0203DE00 mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203DE34: .word FUN_0203DE38 + 1 +_0203DE34: .word FUN_0203DE38 thumb_func_start FUN_0203DE38 FUN_0203DE38: ; 0x0203DE38 @@ -132610,7 +132610,7 @@ FUN_0203E440: ; 0x0203E440 mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203E46C: .word FUN_0203BB90 + 1 +_0203E46C: .word FUN_0203BB90 thumb_func_start FUN_0203E470 FUN_0203E470: ; 0x0203E470 @@ -132634,7 +132634,7 @@ FUN_0203E470: ; 0x0203E470 mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203E49C: .word FUN_0203BB90 + 1 +_0203E49C: .word FUN_0203BB90 thumb_func_start FUN_0203E4A0 FUN_0203E4A0: ; 0x0203E4A0 @@ -135070,7 +135070,7 @@ FUN_0203F7C8: ; 0x0203F7C8 mov r0, #0x1 pop {r4-r6, pc} .balign 4 -_0203F808: .word FUN_0203BC04 + 1 +_0203F808: .word FUN_0203BC04 thumb_func_start FUN_0203F80C FUN_0203F80C: ; 0x0203F80C @@ -135947,7 +135947,7 @@ FUN_0203FEC0: ; 0x0203FEC0 mov r0, #0x1 pop {r4, pc} nop -_0203FEF0: .word FUN_0203FEF4 + 1 +_0203FEF0: .word FUN_0203FEF4 thumb_func_start FUN_0203FEF4 FUN_0203FEF4: ; 0x0203FEF4 @@ -136291,7 +136291,7 @@ FUN_020401CC: ; 0x020401CC mov r0, #0x1 pop {r4, pc} .balign 4 -_020401EC: .word FUN_020401F0 + 1 +_020401EC: .word FUN_020401F0 thumb_func_start FUN_020401F0 FUN_020401F0: ; 0x020401F0 @@ -136796,7 +136796,7 @@ FUN_020405F8: ; 0x020405F8 mov r0, #0x1 pop {r4, pc} nop -_02040614: .word FUN_02040618 + 1 +_02040614: .word FUN_02040618 thumb_func_start FUN_02040618 FUN_02040618: ; 0x02040618 @@ -138556,7 +138556,7 @@ FUN_0204143C: ; 0x0204143C mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_02041460: .word FUN_02041464 + 1 +_02041460: .word FUN_02041464 thumb_func_start FUN_02041464 FUN_02041464: ; 0x02041464 @@ -138586,7 +138586,7 @@ FUN_02041478: ; 0x02041478 mov r0, #0x1 pop {r4, pc} nop -_02041498: .word FUN_02041464 + 1 +_02041498: .word FUN_02041464 thumb_func_start FUN_0204149C FUN_0204149C: ; 0x0204149C @@ -138672,7 +138672,7 @@ FUN_02041518: ; 0x02041518 mov r0, #0x1 pop {r4, pc} nop -_0204153C: .word FUN_02041540 + 1 +_0204153C: .word FUN_02041540 thumb_func_start FUN_02041540 FUN_02041540: ; 0x02041540 @@ -138719,7 +138719,7 @@ FUN_02041588: ; 0x02041588 mov r0, #0x1 pop {r3, pc} .balign 4 -_02041594: .word FUN_02041598 + 1 +_02041594: .word FUN_02041598 thumb_func_start FUN_02041598 FUN_02041598: ; 0x02041598 @@ -138751,7 +138751,7 @@ FUN_020415BC: ; 0x020415BC mov r0, #0x1 pop {r3, pc} .balign 4 -_020415C8: .word FUN_020415CC + 1 +_020415C8: .word FUN_020415CC thumb_func_start FUN_020415CC FUN_020415CC: ; 0x020415CC @@ -142303,7 +142303,7 @@ FUN_020432C0: ; 0x020432C0 ldr r3, _020432C4 ; =FUN_02042F6C bx r3 .balign 4 -_020432C4: .word FUN_02042F6C + 1 +_020432C4: .word FUN_02042F6C thumb_func_start FUN_020432C8 FUN_020432C8: ; 0x020432C8 @@ -147545,7 +147545,7 @@ FUN_02045D88: ; 0x02045D88 mov r0, #0x1 pop {r4-r6, pc} nop -_02045DCC: .word FUN_0203BC04 + 1 +_02045DCC: .word FUN_0203BC04 thumb_func_start FUN_02045DD0 FUN_02045DD0: ; 0x02045DD0 @@ -147672,7 +147672,7 @@ FUN_02045E74: ; 0x02045E74 add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02045EDC: .word FUN_0203BC04 + 1 +_02045EDC: .word FUN_0203BC04 thumb_func_start FUN_02045EE0 FUN_02045EE0: ; 0x02045EE0 @@ -147878,7 +147878,7 @@ FUN_02046030: ; 0x02046030 bl FUN_0204640C pop {r4, pc} nop -_02046064: .word FUN_02046068 + 1 +_02046064: .word FUN_02046068 thumb_func_start FUN_02046068 FUN_02046068: ; 0x02046068 @@ -148161,7 +148161,7 @@ FUN_020462AC: ; 0x020462AC mov r1, #0x4 bx r3 nop -_020462B4: .word FUN_02022610 + 1 +_020462B4: .word FUN_02022610 thumb_func_start FUN_020462B8 FUN_020462B8: ; 0x020462B8 @@ -148449,7 +148449,7 @@ FUN_0204649C: ; 0x0204649C ldr r3, _020464A0 ; =FUN_02037350 bx r3 .balign 4 -_020464A0: .word FUN_02037350 + 1 +_020464A0: .word FUN_02037350 thumb_func_start FUN_020464A4 FUN_020464A4: ; 0x020464A4 @@ -148520,7 +148520,7 @@ FUN_02046500: ; 0x02046500 bl FUN_0204640C pop {r4-r6, pc} .balign 4 -_02046524: .word FUN_020464B8 + 1 +_02046524: .word FUN_020464B8 thumb_func_start FUN_02046528 FUN_02046528: ; 0x02046528 @@ -148588,8 +148588,8 @@ FUN_02046584: ; 0x02046584 ldr r1, _02046590 ; =FUN_0204653C bx r3 .balign 4 -_0204658C: .word FUN_0204640C + 1 -_02046590: .word FUN_0204653C + 1 +_0204658C: .word FUN_0204640C +_02046590: .word FUN_0204653C thumb_func_start FUN_02046594 FUN_02046594: ; 0x02046594 @@ -148637,7 +148637,7 @@ _020465D8: ldr r0, [r0, #0x14] bx r3 .balign 4 -_020465E0: .word FUN_020480B8 + 1 +_020465E0: .word FUN_020480B8 thumb_func_start FUN_020465E4 FUN_020465E4: ; 0x020465E4 @@ -148791,7 +148791,7 @@ FUN_020466FC: ; 0x020466FC bl FUN_0204640C pop {r4, pc} .balign 4 -_02046718: .word FUN_020465F8 + 1 +_02046718: .word FUN_020465F8 thumb_func_start FUN_0204671C FUN_0204671C: ; 0x0204671C @@ -149069,7 +149069,7 @@ FUN_02046928: ; 0x02046928 bl FUN_0204640C pop {r4, pc} .balign 4 -_02046944: .word FUN_02046878 + 1 +_02046944: .word FUN_02046878 thumb_func_start FUN_02046948 FUN_02046948: ; 0x02046948 @@ -149171,8 +149171,8 @@ _020469F2: bl FUN_020463CC pop {r4-r6, pc} .balign 4 -_02046A18: .word FUN_02046C1C + 1 -_02046A1C: .word FUN_02046A88 + 1 +_02046A18: .word FUN_02046C1C +_02046A1C: .word FUN_02046A88 thumb_func_start FUN_02046A20 FUN_02046A20: ; 0x02046A20 @@ -149216,8 +149216,8 @@ _02046A5A: bl FUN_020463EC pop {r4-r6, pc} .balign 4 -_02046A80: .word FUN_02046C1C + 1 -_02046A84: .word FUN_02046A88 + 1 +_02046A80: .word FUN_02046C1C +_02046A84: .word FUN_02046A88 thumb_func_start FUN_02046A88 FUN_02046A88: ; 0x02046A88 @@ -149403,7 +149403,7 @@ _02046C12: mov r0, #0x0 pop {r4-r6, pc} nop -_02046C18: .word FUN_0204837C + 1 +_02046C18: .word FUN_0204837C thumb_func_start FUN_02046C1C FUN_02046C1C: ; 0x02046C1C @@ -149819,7 +149819,7 @@ FUN_02046F70: ; 0x02046F70 bl FUN_020463CC pop {r4-r6, pc} .balign 4 -_02046F9C: .word FUN_02046E8C + 1 +_02046F9C: .word FUN_02046E8C thumb_func_start FUN_02046FA0 FUN_02046FA0: ; 0x02046FA0 @@ -149974,7 +149974,7 @@ FUN_020470AC: ; 0x020470AC bl FUN_0204640C pop {r4-r6, pc} nop -_020470E4: .word FUN_02047004 + 1 +_020470E4: .word FUN_02047004 thumb_func_start FUN_020470E8 FUN_020470E8: ; 0x020470E8 @@ -150074,7 +150074,7 @@ FUN_02047174: ; 0x02047174 bl FUN_0204640C pop {r3-r7, pc} nop -_020471BC: .word FUN_02046758 + 1 +_020471BC: .word FUN_02046758 thumb_func_start FUN_020471C0 FUN_020471C0: ; 0x020471C0 @@ -150118,7 +150118,7 @@ _020471E6: bl FUN_0204640C pop {r3-r7, pc} nop -_0204721C: .word FUN_020467FC + 1 +_0204721C: .word FUN_020467FC thumb_func_start FUN_02047220 FUN_02047220: ; 0x02047220 @@ -150156,7 +150156,7 @@ _02047262: mov r0, #0x0 pop {r3-r7, pc} nop -_02047268: .word FUN_02046758 + 1 +_02047268: .word FUN_02046758 thumb_func_start FUN_0204726C FUN_0204726C: ; 0x0204726C @@ -150186,7 +150186,7 @@ FUN_0204726C: ; 0x0204726C bl FUN_020463CC pop {r4-r6, pc} nop -_020472AC: .word FUN_02047220 + 1 +_020472AC: .word FUN_02047220 thumb_func_start FUN_020472B0 FUN_020472B0: ; 0x020472B0 @@ -150217,7 +150217,7 @@ FUN_020472B0: ; 0x020472B0 bl FUN_020463CC pop {r4-r6, pc} .balign 4 -_020472F0: .word FUN_02047220 + 1 +_020472F0: .word FUN_02047220 thumb_func_start FUN_020472F4 FUN_020472F4: ; 0x020472F4 @@ -151195,7 +151195,7 @@ FUN_02047A64: ; 0x02047A64 ldr r0, [r2, r0] bx r3 nop -_02047A74: .word FUN_02029F9C + 1 +_02047A74: .word FUN_02029F9C thumb_func_start FUN_02047A78 FUN_02047A78: ; 0x02047A78 @@ -152099,7 +152099,7 @@ _020481F2: nop _02048208: .word 0x020F4628 _0204820C: .word 0x0000019E -_02048210: .word FUN_02048214 + 1 +_02048210: .word FUN_02048214 thumb_func_start FUN_02048214 FUN_02048214: ; 0x02048214 @@ -152412,8 +152412,8 @@ FUN_02048498: ; 0x02048498 mov r2, #0x0 bx r3 .balign 4 -_020484A0: .word FUN_0204640C + 1 -_020484A4: .word FUN_0204837C + 1 +_020484A0: .word FUN_0204640C +_020484A4: .word FUN_0204837C thumb_func_start FUN_020484A8 FUN_020484A8: ; 0x020484A8 @@ -152726,7 +152726,7 @@ _0204871E: add sp, #0xc pop {r4-r7, pc} .balign 4 -_02048760: .word FUN_020484F8 + 1 +_02048760: .word FUN_020484F8 thumb_func_start FUN_02048764 FUN_02048764: ; 0x02048764 @@ -152830,7 +152830,7 @@ FUN_02048838: ; 0x02048838 lsr r0, r0, #0x18 bx r3 nop -_02048844: .word FUN_020546C8 + 1 +_02048844: .word FUN_020546C8 thumb_func_start FUN_02048848 FUN_02048848: ; 0x02048848 @@ -153511,7 +153511,7 @@ FUN_02048D90: ; 0x02048D90 bl FUN_020463CC pop {r4, pc} .balign 4 -_02048DA8: .word FUN_02048D34 + 1 +_02048DA8: .word FUN_02048D34 thumb_func_start FUN_02048DAC FUN_02048DAC: ; 0x02048DAC @@ -153647,8 +153647,8 @@ FUN_02048EC8: ; 0x02048EC8 ldr r1, _02048ED8 ; =FUN_02048DAC bx r3 nop -_02048ED4: .word FUN_020463CC + 1 -_02048ED8: .word FUN_02048DAC + 1 +_02048ED4: .word FUN_020463CC +_02048ED8: .word FUN_02048DAC thumb_func_start FUN_02048EDC FUN_02048EDC: ; 0x02048EDC @@ -153808,7 +153808,7 @@ _02049000: pop {r3-r5, pc} nop _02049030: .word 0x000001D2 -_02049034: .word FUN_02048EDC + 1 +_02049034: .word FUN_02048EDC thumb_func_start FUN_02049038 FUN_02049038: ; 0x02049038 @@ -153899,7 +153899,7 @@ FUN_020490C0: ; 0x020490C0 bl FUN_0204640C pop {r3-r5, pc} .balign 4 -_020490EC: .word FUN_02049038 + 1 +_020490EC: .word FUN_02049038 thumb_func_start FUN_020490F0 FUN_020490F0: ; 0x020490F0 @@ -153987,7 +153987,7 @@ _02049186: bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_020491A4: .word FUN_020490F0 + 1 +_020491A4: .word FUN_020490F0 thumb_func_start FUN_020491A8 FUN_020491A8: ; 0x020491A8 @@ -154092,7 +154092,7 @@ FUN_02049240: ; 0x02049240 bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_02049270: .word FUN_020491C4 + 1 +_02049270: .word FUN_020491C4 thumb_func_start FUN_02049274 FUN_02049274: ; 0x02049274 @@ -154128,7 +154128,7 @@ FUN_02049274: ; 0x02049274 add sp, #0x14 pop {r4-r5, pc} nop -_020492B8: .word FUN_02049304 + 1 +_020492B8: .word FUN_02049304 thumb_func_start FUN_020492BC FUN_020492BC: ; 0x020492BC @@ -154164,7 +154164,7 @@ FUN_020492BC: ; 0x020492BC add sp, #0x14 pop {r4-r5, pc} nop -_02049300: .word FUN_02049304 + 1 +_02049300: .word FUN_02049304 thumb_func_start FUN_02049304 FUN_02049304: ; 0x02049304 @@ -154243,8 +154243,8 @@ FUN_02049394: ; 0x02049394 mov r2, #0x0 bx r3 .balign 4 -_0204939C: .word FUN_0204640C + 1 -_020493A0: .word FUN_020493A4 + 1 +_0204939C: .word FUN_0204640C +_020493A0: .word FUN_020493A4 thumb_func_start FUN_020493A4 FUN_020493A4: ; 0x020493A4 @@ -154283,7 +154283,7 @@ FUN_020493D0: ; 0x020493D0 bl FUN_0204640C pop {r4, pc} .balign 4 -_020493E4: .word FUN_020493E8 + 1 +_020493E4: .word FUN_020493E8 thumb_func_start FUN_020493E8 FUN_020493E8: ; 0x020493E8 @@ -154351,7 +154351,7 @@ _02049452: bl FUN_0204640C pop {r4-r6, pc} nop -_02049470: .word FUN_02049474 + 1 +_02049470: .word FUN_02049474 thumb_func_start FUN_02049474 FUN_02049474: ; 0x02049474 @@ -154397,7 +154397,7 @@ FUN_02049494: ; 0x02049494 bl FUN_020463EC pop {r4-r6, pc} .balign 4 -_020494C8: .word FUN_020494CC + 1 +_020494C8: .word FUN_020494CC thumb_func_start FUN_020494CC FUN_020494CC: ; 0x020494CC @@ -154489,8 +154489,8 @@ FUN_02049574: ; 0x02049574 mov r2, #0x0 bx r3 .balign 4 -_0204957C: .word FUN_0204640C + 1 -_02049580: .word FUN_02049584 + 1 +_0204957C: .word FUN_0204640C +_02049580: .word FUN_02049584 thumb_func_start FUN_02049584 FUN_02049584: ; 0x02049584 @@ -154529,7 +154529,7 @@ FUN_020495B0: ; 0x020495B0 bl FUN_0204640C pop {r4, pc} .balign 4 -_020495C4: .word FUN_020495C8 + 1 +_020495C4: .word FUN_020495C8 thumb_func_start FUN_020495C8 FUN_020495C8: ; 0x020495C8 @@ -154737,7 +154737,7 @@ FUN_02049718: ; 0x02049718 add sp, #0x14 pop {r4-r7, pc} nop -_02049768: .word FUN_02049658 + 1 +_02049768: .word FUN_02049658 thumb_func_start FUN_0204976C FUN_0204976C: ; 0x0204976C @@ -155304,8 +155304,8 @@ _02049BFC: mov r0, #0x0 pop {r3, pc} .balign 4 -_02049C04: .word FUN_02049844 + 1 -_02049C08: .word FUN_02049ACC + 1 +_02049C04: .word FUN_02049844 +_02049C08: .word FUN_02049ACC thumb_func_start FUN_02049C0C FUN_02049C0C: ; 0x02049C0C @@ -155425,7 +155425,7 @@ _02049CD6: bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_02049CF4: .word FUN_02049C54 + 1 +_02049CF4: .word FUN_02049C54 thumb_func_start FUN_02049CF8 FUN_02049CF8: ; 0x02049CF8 @@ -155547,7 +155547,7 @@ FUN_02049D9C: ; 0x02049D9C str r0, [r5, #0x78] pop {r4-r6, pc} nop -_02049DF0: .word FUN_02049CF8 + 1 +_02049DF0: .word FUN_02049CF8 thumb_func_start FUN_02049DF4 FUN_02049DF4: ; 0x02049DF4 @@ -155684,7 +155684,7 @@ FUN_02049EA4: ; 0x02049EA4 pop {r3-r7, pc} .balign 4 _02049F08: .word 0x000001D2 -_02049F0C: .word FUN_02049DF4 + 1 +_02049F0C: .word FUN_02049DF4 thumb_func_start FUN_02049F10 FUN_02049F10: ; 0x02049F10 @@ -155796,7 +155796,7 @@ FUN_02049F98: ; 0x02049F98 add sp, #0x18 pop {r3-r7, pc} nop -_02049FF8: .word FUN_02049F10 + 1 +_02049FF8: .word FUN_02049F10 thumb_func_start FUN_02049FFC FUN_02049FFC: ; 0x02049FFC @@ -157848,7 +157848,7 @@ FUN_0204AEF8: ; 0x0204AEF8 bl FUN_0204640C pop {r4-r6, pc} nop -_0204AF20: .word FUN_0204AEA8 + 1 +_0204AF20: .word FUN_0204AEA8 thumb_func_start FUN_0204AF24 FUN_0204AF24: ; 0x0204AF24 @@ -157884,7 +157884,7 @@ _0204AF54: bl FUN_0204640C pop {r3-r5, pc} nop -_0204AF68: .word FUN_0204AF24 + 1 +_0204AF68: .word FUN_0204AF24 thumb_func_start FUN_0204AF6C FUN_0204AF6C: ; 0x0204AF6C @@ -157920,7 +157920,7 @@ _0204AF9C: bl FUN_0204640C pop {r3-r5, pc} nop -_0204AFB0: .word FUN_0204AF6C + 1 +_0204AFB0: .word FUN_0204AF6C thumb_func_start FUN_0204AFB4 FUN_0204AFB4: ; 0x0204AFB4 @@ -157966,7 +157966,7 @@ _0204AFE2: add sp, #0xc pop {r3-r4, pc} .balign 4 -_0204B008: .word FUN_0204AFB4 + 1 +_0204B008: .word FUN_0204AFB4 thumb_func_start FUN_0204B00C FUN_0204B00C: ; 0x0204B00C @@ -157998,7 +157998,7 @@ _0204B026: add sp, #0xc pop {r3-r4, pc} nop -_0204B04C: .word FUN_0204AFB4 + 1 +_0204B04C: .word FUN_0204AFB4 thumb_func_start FUN_0204B050 FUN_0204B050: ; 0x0204B050 @@ -158043,8 +158043,8 @@ FUN_0204B090: ; 0x0204B090 mov r2, #0x0 bx r3 .balign 4 -_0204B098: .word FUN_0204640C + 1 -_0204B09C: .word FUN_0204B050 + 1 +_0204B098: .word FUN_0204640C +_0204B09C: .word FUN_0204B050 thumb_func_start FUN_0204B0A0 FUN_0204B0A0: ; 0x0204B0A0 @@ -158091,8 +158091,8 @@ FUN_0204B0E8: ; 0x0204B0E8 mov r2, #0x0 bx r3 .balign 4 -_0204B0F0: .word FUN_0204640C + 1 -_0204B0F4: .word FUN_0204B0A0 + 1 +_0204B0F0: .word FUN_0204640C +_0204B0F4: .word FUN_0204B0A0 thumb_func_start FUN_0204B0F8 FUN_0204B0F8: ; 0x0204B0F8 @@ -159230,7 +159230,7 @@ FUN_0204B9A0: ; 0x0204B9A0 bl FUN_0204640C pop {r3-r5, pc} .balign 4 -_0204B9C8: .word FUN_0204B818 + 1 +_0204B9C8: .word FUN_0204B818 thumb_func_start FUN_0204B9CC FUN_0204B9CC: ; 0x0204B9CC @@ -159334,7 +159334,7 @@ FUN_0204BA90: ; 0x0204BA90 ldr r1, _0204BA9C ; =0x021C5A1C bx r3 nop -_0204BA98: .word FUN_0204BD40 + 1 +_0204BA98: .word FUN_0204BD40 _0204BA9C: .word 0x021C5A1C thumb_func_start FUN_0204BAA0 @@ -159343,7 +159343,7 @@ FUN_0204BAA0: ; 0x0204BAA0 ldr r2, _0204BAAC ; =0x021C5A1C bx r3 nop -_0204BAA8: .word FUN_0204BD18 + 1 +_0204BAA8: .word FUN_0204BD18 _0204BAAC: .word 0x021C5A1C thumb_func_start FUN_0204BAB0 @@ -159363,7 +159363,7 @@ FUN_0204BAC4: ; 0x0204BAC4 ldr r0, _0204BAD0 ; =0x021C5A1C bx r3 nop -_0204BACC: .word FUN_0204BD8C + 1 +_0204BACC: .word FUN_0204BD8C _0204BAD0: .word 0x021C5A1C thumb_func_start FUN_0204BAD4 @@ -159381,7 +159381,7 @@ FUN_0204BAE4: ; 0x0204BAE4 ldr r0, _0204BAF0 ; =0x021C5A1C bx r3 nop -_0204BAEC: .word FUN_0204BDA0 + 1 +_0204BAEC: .word FUN_0204BDA0 _0204BAF0: .word 0x021C5A1C thumb_func_start FUN_0204BAF4 @@ -160377,7 +160377,7 @@ FUN_0204C1A8: ; 0x0204C1A8 mov r1, #0x5 bx r3 nop -_0204C1B0: .word FUN_02022610 + 1 +_0204C1B0: .word FUN_02022610 thumb_func_start FUN_0204C1B4 FUN_0204C1B4: ; 0x0204C1B4 @@ -160409,7 +160409,7 @@ FUN_0204C1B4: ; 0x0204C1B4 bl FUN_0204640C pop {r3-r7, pc} nop -_0204C1F0: .word FUN_0204C1F4 + 1 +_0204C1F0: .word FUN_0204C1F4 thumb_func_start FUN_0204C1F4 FUN_0204C1F4: ; 0x0204C1F4 @@ -160492,7 +160492,7 @@ FUN_0204C260: ; 0x0204C260 bl FUN_020463CC pop {r3-r7, pc} nop -_0204C298: .word FUN_0204C380 + 1 +_0204C298: .word FUN_0204C380 thumb_func_start FUN_0204C29C FUN_0204C29C: ; 0x0204C29C @@ -160601,7 +160601,7 @@ _0204C36A: add sp, #0xc pop {r4-r7, pc} nop -_0204C37C: .word FUN_0204C380 + 1 +_0204C37C: .word FUN_0204C380 thumb_func_start FUN_0204C380 FUN_0204C380: ; 0x0204C380 @@ -161179,7 +161179,7 @@ _0204C818: mov r0, #0x0 pop {r3-r7, pc} .balign 4 -_0204C81C: .word FUN_0204C6D4 + 1 +_0204C81C: .word FUN_0204C6D4 _0204C820: .word 0x021DB381 thumb_func_start FUN_0204C824 @@ -161714,7 +161714,7 @@ _0204CC34: .word 0x021C5A68 _0204CC38: .word 0x000002BE _0204CC3C: .word 0x0000FFFF _0204CC40: .word 0x00000102 -_0204CC44: .word FUN_0204D4F0 + 1 +_0204CC44: .word FUN_0204D4F0 thumb_func_start FUN_0204CC48 FUN_0204CC48: ; 0x0204CC48 @@ -162057,7 +162057,7 @@ _0204CEE4: .word 0x0000010A _0204CEE8: .word 0x0000013A _0204CEEC: .word 0x00000142 _0204CEF0: .word 0x000002BF -_0204CEF4: .word FUN_0204D4F0 + 1 +_0204CEF4: .word FUN_0204D4F0 thumb_func_start FUN_0204CEF8 FUN_0204CEF8: ; 0x0204CEF8 @@ -162822,7 +162822,7 @@ _0204D4E4: bx r3 .balign 4 _0204D4E8: .word 0x021C48B8 -_0204D4EC: .word FUN_02030F60 + 1 +_0204D4EC: .word FUN_02030F60 thumb_func_start FUN_0204D4F0 FUN_0204D4F0: ; 0x0204D4F0 @@ -164617,14 +164617,14 @@ FUN_0204E2AC: ; 0x0204E2AC ldr r3, _0204E2B0 ; =FUN_0204F7FC bx r3 .balign 4 -_0204E2B0: .word FUN_0204F7FC + 1 +_0204E2B0: .word FUN_0204F7FC thumb_func_start FUN_0204E2B4 FUN_0204E2B4: ; 0x0204E2B4 ldr r3, _0204E2B8 ; =FUN_0204F7FC bx r3 .balign 4 -_0204E2B8: .word FUN_0204F7FC + 1 +_0204E2B8: .word FUN_0204F7FC thumb_func_start FUN_0204E2BC FUN_0204E2BC: ; 0x0204E2BC @@ -164632,7 +164632,7 @@ FUN_0204E2BC: ; 0x0204E2BC mov r0, #0x2 bx r3 nop -_0204E2C4: .word FUN_0204F774 + 1 +_0204E2C4: .word FUN_0204F774 thumb_func_start FUN_0204E2C8 FUN_0204E2C8: ; 0x0204E2C8 @@ -164640,7 +164640,7 @@ FUN_0204E2C8: ; 0x0204E2C8 mov r0, #0x20 bx r3 nop -_0204E2D0: .word FUN_0204F774 + 1 +_0204E2D0: .word FUN_0204F774 thumb_func_start FUN_0204E2D4 FUN_0204E2D4: ; 0x0204E2D4 @@ -164648,7 +164648,7 @@ FUN_0204E2D4: ; 0x0204E2D4 mov r0, #0x1 bx r3 nop -_0204E2DC: .word FUN_0204F774 + 1 +_0204E2DC: .word FUN_0204F774 thumb_func_start FUN_0204E2E0 FUN_0204E2E0: ; 0x0204E2E0 @@ -165540,7 +165540,7 @@ _0204E962: pop {r4, pc} .balign 4 _0204E964: .word 0x021C5A68 -_0204E968: .word FUN_0204D308 + 1 +_0204E968: .word FUN_0204D308 thumb_func_start FUN_0204E96C FUN_0204E96C: ; 0x0204E96C @@ -165706,8 +165706,8 @@ _0204EACA: pop {r4-r6, pc} .balign 4 _0204EACC: .word 0x021C5A68 -_0204EAD0: .word FUN_0204E2AC + 1 -_0204EAD4: .word FUN_0204D308 + 1 +_0204EAD0: .word FUN_0204E2AC +_0204EAD4: .word FUN_0204D308 thumb_func_start FUN_0204EAD8 FUN_0204EAD8: ; 0x0204EAD8 @@ -166475,7 +166475,7 @@ _0204F09C: bx r3 .balign 4 _0204F0A0: .word 0x021C5A68 -_0204F0A4: .word FUN_0204CD78 + 1 +_0204F0A4: .word FUN_0204CD78 thumb_func_start FUN_0204F0A8 FUN_0204F0A8: ; 0x0204F0A8 @@ -166492,7 +166492,7 @@ _0204F0B8: bx r3 .balign 4 _0204F0BC: .word 0x021C5A68 -_0204F0C0: .word FUN_0204CD78 + 1 +_0204F0C0: .word FUN_0204CD78 thumb_func_start FUN_0204F0C4 FUN_0204F0C4: ; 0x0204F0C4 @@ -166613,7 +166613,7 @@ FUN_0204F178: ; 0x0204F178 pop {r4, pc} .balign 4 _0204F1A8: .word 0x021C5A68 -_0204F1AC: .word FUN_0204F124 + 1 +_0204F1AC: .word FUN_0204F124 thumb_func_start FUN_0204F1B0 FUN_0204F1B0: ; 0x0204F1B0 @@ -166749,7 +166749,7 @@ _0204F2AA: pop {r4-r6, pc} nop _0204F2C8: .word 0x021C5A68 -_0204F2CC: .word FUN_0204F108 + 1 +_0204F2CC: .word FUN_0204F108 _0204F2D0: .word 0x00000424 _0204F2D4: .word 0x000005F6 @@ -167102,14 +167102,14 @@ _0204F5DA: pop {r4-r5, pc} nop _0204F5E0: .word 0x021C5A68 -_0204F5E4: .word FUN_0204E2B4 + 1 +_0204F5E4: .word FUN_0204E2B4 _0204F5E8: .word 0x00000424 -_0204F5EC: .word FUN_0204E2AC + 1 +_0204F5EC: .word FUN_0204E2AC _0204F5F0: .word 0x00000625 -_0204F5F4: .word FUN_0204E2D4 + 1 +_0204F5F4: .word FUN_0204E2D4 _0204F5F8: .word 0x00000425 -_0204F5FC: .word FUN_0204E2BC + 1 -_0204F600: .word FUN_0204E2C8 + 1 +_0204F5FC: .word FUN_0204E2BC +_0204F600: .word FUN_0204E2C8 _0204F604: .word 0x0000FFFF _0204F608: .word 0x000002B2 _0204F60C: .word 0x0000062B @@ -167915,7 +167915,7 @@ _0204FC04: pop {r4, pc} nop _0204FC08: .word 0x021C5A6C -_0204FC0C: .word FUN_0205006C + 1 +_0204FC0C: .word FUN_0205006C thumb_func_start FUN_0204FC10 FUN_0204FC10: ; 0x0204FC10 @@ -168013,7 +168013,7 @@ FUN_0204FCA0: ; 0x0204FCA0 pop {r3, pc} .balign 4 _0204FCD0: .word 0x021C5A6C -_0204FCD4: .word FUN_020500A4 + 1 +_0204FCD4: .word FUN_020500A4 thumb_func_start FUN_0204FCD8 FUN_0204FCD8: ; 0x0204FCD8 @@ -168029,7 +168029,7 @@ _0204FCEA: pop {r3, pc} .balign 4 _0204FCEC: .word 0x021C5A6C -_0204FCF0: .word FUN_02050D54 + 1 +_0204FCF0: .word FUN_02050D54 thumb_func_start FUN_0204FCF4 FUN_0204FCF4: ; 0x0204FCF4 @@ -168040,7 +168040,7 @@ FUN_0204FCF4: ; 0x0204FCF4 bl FUN_02050094 pop {r3, pc} .balign 4 -_0204FD04: .word FUN_020504D8 + 1 +_0204FD04: .word FUN_020504D8 thumb_func_start FUN_0204FD08 FUN_0204FD08: ; 0x0204FD08 @@ -168055,7 +168055,7 @@ FUN_0204FD08: ; 0x0204FD08 _0204FD1E: pop {r3, pc} .balign 4 -_0204FD20: .word FUN_020500A4 + 1 +_0204FD20: .word FUN_020500A4 thumb_func_start FUN_0204FD24 FUN_0204FD24: ; 0x0204FD24 @@ -168066,7 +168066,7 @@ FUN_0204FD24: ; 0x0204FD24 bl FUN_02050094 pop {r3, pc} .balign 4 -_0204FD34: .word FUN_0204FD08 + 1 +_0204FD34: .word FUN_0204FD08 thumb_func_start FUN_0204FD38 FUN_0204FD38: ; 0x0204FD38 @@ -168141,14 +168141,14 @@ _0204FDAE: .balign 4 _0204FDBC: .word 0x021C5A6C _0204FDC0: .word 0x020F5838 -_0204FDC4: .word FUN_020502AC + 1 -_0204FDC8: .word FUN_02050548 + 1 -_0204FDCC: .word FUN_02050168 + 1 -_0204FDD0: .word FUN_0205031C + 1 -_0204FDD4: .word FUN_02050578 + 1 -_0204FDD8: .word FUN_020505E0 + 1 -_0204FDDC: .word FUN_020504D0 + 1 -_0204FDE0: .word FUN_02050610 + 1 +_0204FDC4: .word FUN_020502AC +_0204FDC8: .word FUN_02050548 +_0204FDCC: .word FUN_02050168 +_0204FDD0: .word FUN_0205031C +_0204FDD4: .word FUN_02050578 +_0204FDD8: .word FUN_020505E0 +_0204FDDC: .word FUN_020504D0 +_0204FDE0: .word FUN_02050610 thumb_func_start FUN_0204FDE4 FUN_0204FDE4: ; 0x0204FDE4 @@ -168196,14 +168196,14 @@ _0204FE34: pop {r4, pc} .balign 4 _0204FE38: .word 0x021C5A6C -_0204FE3C: .word FUN_0205058C + 1 -_0204FE40: .word FUN_020505F4 + 1 -_0204FE44: .word FUN_02050330 + 1 -_0204FE48: .word FUN_02050624 + 1 -_0204FE4C: .word FUN_02050338 + 1 -_0204FE50: .word FUN_02050594 + 1 -_0204FE54: .word FUN_020505F8 + 1 -_0204FE58: .word FUN_02050628 + 1 +_0204FE3C: .word FUN_0205058C +_0204FE40: .word FUN_020505F4 +_0204FE44: .word FUN_02050330 +_0204FE48: .word FUN_02050624 +_0204FE4C: .word FUN_02050338 +_0204FE50: .word FUN_02050594 +_0204FE54: .word FUN_020505F8 +_0204FE58: .word FUN_02050628 thumb_func_start FUN_0204FE5C FUN_0204FE5C: ; 0x0204FE5C @@ -168282,7 +168282,7 @@ _0204FEE8: add sp, #0x4 pop {r3-r6, pc} .balign 4 -_0204FEEC: .word FUN_02050640 + 1 +_0204FEEC: .word FUN_02050640 thumb_func_start FUN_0204FEF0 FUN_0204FEF0: ; 0x0204FEF0 @@ -168313,7 +168313,7 @@ _0204FF28: add sp, #0x4 pop {r3-r6, pc} .balign 4 -_0204FF2C: .word FUN_02050668 + 1 +_0204FF2C: .word FUN_02050668 thumb_func_start FUN_0204FF30 FUN_0204FF30: ; 0x0204FF30 @@ -168327,8 +168327,8 @@ FUN_0204FF30: ; 0x0204FF30 bx r3 .balign 4 _0204FF40: .word 0x021C5A6C -_0204FF44: .word FUN_02050094 + 1 -_0204FF48: .word FUN_02050688 + 1 +_0204FF44: .word FUN_02050094 +_0204FF48: .word FUN_02050688 thumb_func_start FUN_0204FF4C FUN_0204FF4C: ; 0x0204FF4C @@ -168337,8 +168337,8 @@ FUN_0204FF4C: ; 0x0204FF4C mov r1, #0x0 bx r3 .balign 4 -_0204FF54: .word FUN_02050094 + 1 -_0204FF58: .word FUN_02050BBC + 1 +_0204FF54: .word FUN_02050094 +_0204FF58: .word FUN_02050BBC thumb_func_start FUN_0204FF5C FUN_0204FF5C: ; 0x0204FF5C @@ -168431,7 +168431,7 @@ _02050014: .balign 4 _02050018: .word 0x021C5A6C _0205001C: .word 0x0000066C -_02050020: .word FUN_02050C14 + 1 +_02050020: .word FUN_02050C14 thumb_func_start FUN_02050024 FUN_02050024: ; 0x02050024 @@ -168450,7 +168450,7 @@ _0205003E: pop {r3, pc} .balign 4 _02050040: .word 0x021C5A6C -_02050044: .word FUN_02050DB0 + 1 +_02050044: .word FUN_02050DB0 thumb_func_start FUN_02050048 FUN_02050048: ; 0x02050048 @@ -168468,7 +168468,7 @@ _02050060: pop {r3, pc} nop _02050064: .word 0x021C5A6C -_02050068: .word FUN_02050D88 + 1 +_02050068: .word FUN_02050D88 thumb_func_start FUN_0205006C FUN_0205006C: ; 0x0205006C @@ -168549,8 +168549,8 @@ _02050104: pop {r3, pc} nop _02050108: .word 0x021C5A6C -_0205010C: .word FUN_02050114 + 1 -_02050110: .word FUN_02050144 + 1 +_0205010C: .word FUN_02050114 +_02050110: .word FUN_02050144 thumb_func_start FUN_02050114 FUN_02050114: ; 0x02050114 @@ -168572,7 +168572,7 @@ _0205013A: pop {r3, pc} .balign 4 _0205013C: .word 0x021C5A6C -_02050140: .word FUN_02050168 + 1 +_02050140: .word FUN_02050168 thumb_func_start FUN_02050144 FUN_02050144: ; 0x02050144 @@ -168592,7 +168592,7 @@ _02050156: pop {r3, pc} .balign 4 _02050160: .word 0x021C5A6C -_02050164: .word FUN_02050168 + 1 +_02050164: .word FUN_02050168 thumb_func_start FUN_02050168 FUN_02050168: ; 0x02050168 @@ -168617,8 +168617,8 @@ _02050190: _02050198: pop {r3, pc} nop -_0205019C: .word FUN_0205024C + 1 -_020501A0: .word FUN_020501A4 + 1 +_0205019C: .word FUN_0205024C +_020501A0: .word FUN_020501A4 thumb_func_start FUN_020501A4 FUN_020501A4: ; 0x020501A4 @@ -168691,8 +168691,8 @@ _0205023C: pop {r3, pc} nop _02050240: .word 0x021C5A6C -_02050244: .word FUN_020504A4 + 1 -_02050248: .word FUN_02050350 + 1 +_02050244: .word FUN_020504A4 +_02050248: .word FUN_02050350 thumb_func_start FUN_0205024C FUN_0205024C: ; 0x0205024C @@ -168735,7 +168735,7 @@ _0205029E: .balign 4 _020502A0: .word 0x021C5A6C _020502A4: .word 0x02105E74 -_020502A8: .word FUN_020502AC + 1 +_020502A8: .word FUN_020502AC thumb_func_start FUN_020502AC FUN_020502AC: ; 0x020502AC @@ -168779,7 +168779,7 @@ _02050310: pop {r3, pc} nop _02050314: .word 0x021C5A6C -_02050318: .word FUN_02050458 + 1 +_02050318: .word FUN_02050458 thumb_func_start FUN_0205031C FUN_0205031C: ; 0x0205031C @@ -168790,7 +168790,7 @@ FUN_0205031C: ; 0x0205031C bl FUN_02050094 pop {r3, pc} .balign 4 -_0205032C: .word FUN_02050330 + 1 +_0205032C: .word FUN_02050330 thumb_func_start FUN_02050330 FUN_02050330: ; 0x02050330 @@ -168809,7 +168809,7 @@ FUN_02050338: ; 0x02050338 bl FUN_02050094 pop {r3, pc} .balign 4 -_0205034C: .word FUN_020502AC + 1 +_0205034C: .word FUN_020502AC thumb_func_start FUN_02050350 FUN_02050350: ; 0x02050350 @@ -168855,7 +168855,7 @@ _020503A0: nop _020503A8: .word 0x021C5A6C _020503AC: .word 0x02105E80 -_020503B0: .word FUN_020503B4 + 1 +_020503B0: .word FUN_020503B4 thumb_func_start FUN_020503B4 FUN_020503B4: ; 0x020503B4 @@ -168882,7 +168882,7 @@ _020503E0: bl FUN_02050510 pop {r3, pc} nop -_020503E8: .word FUN_020503F0 + 1 +_020503E8: .word FUN_020503F0 _020503EC: .word 0x021C5A6C thumb_func_start FUN_020503F0 @@ -168904,7 +168904,7 @@ _02050412: pop {r3, pc} .balign 4 _02050418: .word 0x02105E94 -_0205041C: .word FUN_02050420 + 1 +_0205041C: .word FUN_02050420 thumb_func_start FUN_02050420 FUN_02050420: ; 0x02050420 @@ -168928,7 +168928,7 @@ _0205044A: pop {r3, pc} .balign 4 _02050450: .word 0x02105EB0 -_02050454: .word FUN_02050548 + 1 +_02050454: .word FUN_02050548 thumb_func_start FUN_02050458 FUN_02050458: ; 0x02050458 @@ -168945,7 +168945,7 @@ FUN_02050458: ; 0x02050458 _02050472: pop {r3, pc} .balign 4 -_02050474: .word FUN_02050478 + 1 +_02050474: .word FUN_02050478 thumb_func_start FUN_02050478 FUN_02050478: ; 0x02050478 @@ -168969,7 +168969,7 @@ _0205049A: pop {r3, pc} .balign 4 _0205049C: .word 0x021C5A6C -_020504A0: .word FUN_020500A4 + 1 +_020504A0: .word FUN_020500A4 thumb_func_start FUN_020504A4 FUN_020504A4: ; 0x020504A4 @@ -168993,7 +168993,7 @@ _020504C6: pop {r3, pc} .balign 4 _020504C8: .word 0x021C5A6C -_020504CC: .word FUN_020500A4 + 1 +_020504CC: .word FUN_020500A4 thumb_func_start FUN_020504D0 FUN_020504D0: ; 0x020504D0 @@ -169024,7 +169024,7 @@ _02050506: pop {r3, pc} .balign 4 _02050508: .word 0x021C5A6C -_0205050C: .word FUN_020504D0 + 1 +_0205050C: .word FUN_020504D0 thumb_func_start FUN_02050510 FUN_02050510: ; 0x02050510 @@ -169045,7 +169045,7 @@ FUN_02050510: ; 0x02050510 bl FUN_02050094 pop {r3, pc} .balign 4 -_02050544: .word FUN_020504A4 + 1 +_02050544: .word FUN_020504A4 thumb_func_start FUN_02050548 FUN_02050548: ; 0x02050548 @@ -169080,7 +169080,7 @@ FUN_02050578: ; 0x02050578 bl FUN_02050094 pop {r3, pc} .balign 4 -_02050588: .word FUN_0205058C + 1 +_02050588: .word FUN_0205058C thumb_func_start FUN_0205058C FUN_0205058C: ; 0x0205058C @@ -169116,8 +169116,8 @@ _020505CC: bl FUN_02050094 pop {r3, pc} nop -_020505D8: .word FUN_020504A4 + 1 -_020505DC: .word FUN_02050548 + 1 +_020505D8: .word FUN_020504A4 +_020505DC: .word FUN_02050548 thumb_func_start FUN_020505E0 FUN_020505E0: ; 0x020505E0 @@ -169128,7 +169128,7 @@ FUN_020505E0: ; 0x020505E0 bl FUN_02050094 pop {r3, pc} .balign 4 -_020505F0: .word FUN_020505F4 + 1 +_020505F0: .word FUN_020505F4 thumb_func_start FUN_020505F4 FUN_020505F4: ; 0x020505F4 @@ -169145,7 +169145,7 @@ FUN_020505F8: ; 0x020505F8 bl FUN_02050094 pop {r3, pc} .balign 4 -_0205060C: .word FUN_02050168 + 1 +_0205060C: .word FUN_02050168 thumb_func_start FUN_02050610 FUN_02050610: ; 0x02050610 @@ -169156,7 +169156,7 @@ FUN_02050610: ; 0x02050610 bl FUN_02050094 pop {r3, pc} .balign 4 -_02050620: .word FUN_02050624 + 1 +_02050620: .word FUN_02050624 thumb_func_start FUN_02050624 FUN_02050624: ; 0x02050624 @@ -169173,7 +169173,7 @@ FUN_02050628: ; 0x02050628 bl FUN_02050094 pop {r3, pc} .balign 4 -_0205063C: .word FUN_020504D0 + 1 +_0205063C: .word FUN_020504D0 thumb_func_start FUN_02050640 FUN_02050640: ; 0x02050640 @@ -169190,7 +169190,7 @@ FUN_02050640: ; 0x02050640 _0205065E: pop {r3, pc} .balign 4 -_02050660: .word FUN_02050664 + 1 +_02050660: .word FUN_02050664 thumb_func_start FUN_02050664 FUN_02050664: ; 0x02050664 @@ -169210,7 +169210,7 @@ FUN_02050668: ; 0x02050668 _0205067E: pop {r3, pc} .balign 4 -_02050680: .word FUN_02050684 + 1 +_02050680: .word FUN_02050684 thumb_func_start FUN_02050684 FUN_02050684: ; 0x02050684 @@ -169231,7 +169231,7 @@ FUN_02050688: ; 0x02050688 pop {r3, pc} .balign 4 _020506A0: .word 0x021C5A6C -_020506A4: .word FUN_020506A8 + 1 +_020506A4: .word FUN_020506A8 thumb_func_start FUN_020506A8 FUN_020506A8: ; 0x020506A8 @@ -169246,7 +169246,7 @@ FUN_020506A8: ; 0x020506A8 _020506BE: pop {r3, pc} .balign 4 -_020506C0: .word FUN_020506C4 + 1 +_020506C0: .word FUN_020506C4 thumb_func_start FUN_020506C4 FUN_020506C4: ; 0x020506C4 @@ -169294,7 +169294,7 @@ _02050714: pop {r3, pc} .balign 4 _02050720: .word 0x021C5A6C -_02050724: .word FUN_02050728 + 1 +_02050724: .word FUN_02050728 thumb_func_start FUN_02050728 FUN_02050728: ; 0x02050728 @@ -169333,7 +169333,7 @@ _02050776: add sp, #0xc pop {pc} nop -_0205077C: .word FUN_020507B4 + 1 +_0205077C: .word FUN_020507B4 thumb_func_start FUN_02050780 FUN_02050780: ; 0x02050780 @@ -169359,7 +169359,7 @@ _020507A8: pop {r3, pc} nop _020507AC: .word 0x021C5A6C -_020507B0: .word FUN_02050930 + 1 +_020507B0: .word FUN_02050930 thumb_func_start FUN_020507B4 FUN_020507B4: ; 0x020507B4 @@ -169393,7 +169393,7 @@ _020507EC: pop {r3, pc} nop _020507F0: .word 0x021C5A6C -_020507F4: .word FUN_02050780 + 1 +_020507F4: .word FUN_02050780 thumb_func_start FUN_020507F8 FUN_020507F8: ; 0x020507F8 @@ -169435,7 +169435,7 @@ _02050840: pop {r3, pc} .balign 4 _0205084C: .word 0x021C5A6C -_02050850: .word FUN_02050854 + 1 +_02050850: .word FUN_02050854 thumb_func_start FUN_02050854 FUN_02050854: ; 0x02050854 @@ -169480,7 +169480,7 @@ _020508B0: add sp, #0x10 pop {r3, pc} .balign 4 -_020508B4: .word FUN_02050A14 + 1 +_020508B4: .word FUN_02050A14 thumb_func_start FUN_020508B8 FUN_020508B8: ; 0x020508B8 @@ -169566,7 +169566,7 @@ _0205095A: pop {r3, pc} .balign 4 _02050960: .word 0x021C5A6C -_02050964: .word FUN_02050A14 + 1 +_02050964: .word FUN_02050A14 thumb_func_start FUN_02050968 FUN_02050968: ; 0x02050968 @@ -169603,8 +169603,8 @@ _02050994: pop {r3-r5, pc} .balign 4 _020509AC: .word 0x021C5A6C -_020509B0: .word FUN_02050B8C + 1 -_020509B4: .word FUN_02050930 + 1 +_020509B0: .word FUN_02050B8C +_020509B4: .word FUN_02050930 thumb_func_start FUN_020509B8 FUN_020509B8: ; 0x020509B8 @@ -169613,8 +169613,8 @@ FUN_020509B8: ; 0x020509B8 mov r1, #0x0 bx r3 .balign 4 -_020509C0: .word FUN_02050094 + 1 -_020509C4: .word FUN_02050930 + 1 +_020509C0: .word FUN_02050094 +_020509C4: .word FUN_02050930 thumb_func_start FUN_020509C8 FUN_020509C8: ; 0x020509C8 @@ -169648,8 +169648,8 @@ _02050A06: pop {r3, pc} .balign 4 _02050A08: .word 0x021C5A6C -_02050A0C: .word FUN_02050968 + 1 -_02050A10: .word FUN_020509B8 + 1 +_02050A0C: .word FUN_02050968 +_02050A10: .word FUN_020509B8 thumb_func_start FUN_02050A14 FUN_02050A14: ; 0x02050A14 @@ -169674,7 +169674,7 @@ _02050A38: pop {r3, pc} nop _02050A40: .word 0x021C5A6C -_02050A44: .word FUN_020509C8 + 1 +_02050A44: .word FUN_020509C8 thumb_func_start FUN_02050A48 FUN_02050A48: ; 0x02050A48 @@ -169715,8 +169715,8 @@ _02050A82: bx lr nop _02050A88: .word 0x021C5A6C -_02050A8C: .word FUN_02050A14 + 1 -_02050A90: .word FUN_02050930 + 1 +_02050A8C: .word FUN_02050A14 +_02050A90: .word FUN_02050930 thumb_func_start FUN_02050A94 FUN_02050A94: ; 0x02050A94 @@ -169809,7 +169809,7 @@ _02050B3E: pop {r3, pc} .balign 4 _02050B40: .word 0x021C5A6C -_02050B44: .word FUN_02050A94 + 1 +_02050B44: .word FUN_02050A94 thumb_func_start FUN_02050B48 FUN_02050B48: ; 0x02050B48 @@ -169830,7 +169830,7 @@ _02050B5A: pop {r3, pc} .balign 4 _02050B68: .word 0x021C5A6C -_02050B6C: .word FUN_02050B04 + 1 +_02050B6C: .word FUN_02050B04 thumb_func_start FUN_02050B70 FUN_02050B70: ; 0x02050B70 @@ -169845,7 +169845,7 @@ FUN_02050B70: ; 0x02050B70 _02050B84: pop {r3, pc} nop -_02050B88: .word FUN_02050B48 + 1 +_02050B88: .word FUN_02050B48 thumb_func_start FUN_02050B8C FUN_02050B8C: ; 0x02050B8C @@ -169869,7 +169869,7 @@ _02050B9E: pop {r3, pc} .balign 4 _02050BB4: .word 0x021C5A6C -_02050BB8: .word FUN_02050B70 + 1 +_02050BB8: .word FUN_02050B70 thumb_func_start FUN_02050BBC FUN_02050BBC: ; 0x02050BBC @@ -169880,7 +169880,7 @@ FUN_02050BBC: ; 0x02050BBC bl FUN_02050094 pop {r3, pc} .balign 4 -_02050BCC: .word FUN_02050BD0 + 1 +_02050BCC: .word FUN_02050BD0 thumb_func_start FUN_02050BD0 FUN_02050BD0: ; 0x02050BD0 @@ -169894,7 +169894,7 @@ FUN_02050BD0: ; 0x02050BD0 _02050BE2: pop {r3, pc} .balign 4 -_02050BE4: .word FUN_020506A8 + 1 +_02050BE4: .word FUN_020506A8 thumb_func_start FUN_02050BE8 FUN_02050BE8: ; 0x02050BE8 @@ -169947,7 +169947,7 @@ _02050C3E: .balign 4 _02050C40: .word 0x021C5A6C _02050C44: .word 0x0000066C -_02050C48: .word FUN_02050C4C + 1 +_02050C48: .word FUN_02050C4C thumb_func_start FUN_02050C4C FUN_02050C4C: ; 0x02050C4C @@ -169977,7 +169977,7 @@ _02050C7C: pop {r3-r5, pc} nop _02050C80: .word 0x021C5A6C -_02050C84: .word FUN_02050CF4 + 1 +_02050C84: .word FUN_02050CF4 thumb_func_start FUN_02050C88 FUN_02050C88: ; 0x02050C88 @@ -170012,7 +170012,7 @@ _02050CC2: pop {r3, pc} .balign 4 _02050CC4: .word 0x021C5A6C -_02050CC8: .word FUN_02050D10 + 1 +_02050CC8: .word FUN_02050D10 thumb_func_start FUN_02050CCC FUN_02050CCC: ; 0x02050CCC @@ -170033,7 +170033,7 @@ _02050CDE: pop {r3, pc} .balign 4 _02050CEC: .word 0x021C5A6C -_02050CF0: .word FUN_02050C88 + 1 +_02050CF0: .word FUN_02050C88 thumb_func_start FUN_02050CF4 FUN_02050CF4: ; 0x02050CF4 @@ -170048,7 +170048,7 @@ FUN_02050CF4: ; 0x02050CF4 _02050D08: pop {r3, pc} nop -_02050D0C: .word FUN_02050CCC + 1 +_02050D0C: .word FUN_02050CCC thumb_func_start FUN_02050D10 FUN_02050D10: ; 0x02050D10 @@ -170081,8 +170081,8 @@ _02050D3E: pop {r3, pc} .balign 4 _02050D48: .word 0x021C5A6C -_02050D4C: .word FUN_020506C8 + 1 -_02050D50: .word FUN_020507F8 + 1 +_02050D4C: .word FUN_020506C8 +_02050D50: .word FUN_020507F8 thumb_func_start FUN_02050D54 FUN_02050D54: ; 0x02050D54 @@ -170128,7 +170128,7 @@ FUN_02050D88: ; 0x02050D88 _02050DAA: pop {r3, pc} .balign 4 -_02050DAC: .word FUN_02050DC8 + 1 +_02050DAC: .word FUN_02050DC8 thumb_func_start FUN_02050DB0 FUN_02050DB0: ; 0x02050DB0 @@ -170140,7 +170140,7 @@ FUN_02050DB0: ; 0x02050DB0 bl FUN_02050094 pop {r3, pc} nop -_02050DC4: .word FUN_02050DC8 + 1 +_02050DC4: .word FUN_02050DC8 thumb_func_start FUN_02050DC8 FUN_02050DC8: ; 0x02050DC8 @@ -170161,7 +170161,7 @@ _02050DDA: pop {r3, pc} .balign 4 _02050DE8: .word 0x021C5A6C -_02050DEC: .word FUN_0204FC10 + 1 +_02050DEC: .word FUN_0204FC10 thumb_func_start FUN_02050DF0 FUN_02050DF0: ; 0x02050DF0 @@ -171616,7 +171616,7 @@ _02051988: _02051992: pop {r4-r6, pc} .balign 4 -_02051994: .word FUN_02051094 + 1 +_02051994: .word FUN_02051094 thumb_func_start FUN_02051998 FUN_02051998: ; 0x02051998 @@ -171659,7 +171659,7 @@ FUN_020519E4: ; 0x020519E4 ldr r0, [r0, #0x10] bx r3 nop -_020519EC: .word FUN_0204652C + 1 +_020519EC: .word FUN_0204652C thumb_func_start FUN_020519F0 FUN_020519F0: ; 0x020519F0 @@ -172215,7 +172215,7 @@ FUN_02051E24: ; 0x02051E24 mov r1, #0x1 bx r3 .balign 4 -_02051E2C: .word FUN_0200CCF8 + 1 +_02051E2C: .word FUN_0200CCF8 thumb_func_start FUN_02051E30 FUN_02051E30: ; 0x02051E30 @@ -172521,7 +172521,7 @@ _0205209C: _020520A6: pop {r3-r7, pc} .balign 4 -_020520A8: .word FUN_02051EB0 + 1 +_020520A8: .word FUN_02051EB0 thumb_func_start FUN_020520AC FUN_020520AC: ; 0x020520AC @@ -172558,7 +172558,7 @@ _020520D8: add r0, r5, #0x0 pop {r3-r5, pc} nop -_020520F4: .word FUN_02052178 + 1 +_020520F4: .word FUN_02052178 thumb_func_start FUN_020520F8 FUN_020520F8: ; 0x020520F8 @@ -172572,7 +172572,7 @@ FUN_020520F8: ; 0x020520F8 _02052108: pop {r3, pc} nop -_0205210C: .word FUN_02052348 + 1 +_0205210C: .word FUN_02052348 thumb_func_start FUN_02052110 FUN_02052110: ; 0x02052110 @@ -172619,7 +172619,7 @@ _0205211E: add r0, r4, #0x0 pop {r4-r6, pc} nop -_02052174: .word FUN_02052308 + 1 +_02052174: .word FUN_02052308 thumb_func_start FUN_02052178 FUN_02052178: ; 0x02052178 @@ -172644,7 +172644,7 @@ _020521A4: add sp, #0x8 pop {r4, pc} .balign 4 -_020521A8: .word FUN_020521AC + 1 +_020521A8: .word FUN_020521AC thumb_func_start FUN_020521AC FUN_020521AC: ; 0x020521AC @@ -172694,8 +172694,8 @@ _02052206: pop {r4, pc} .balign 4 _02052208: .word 0x021C5A70 -_0205220C: .word FUN_0205225C + 1 -_02052210: .word FUN_02052380 + 1 +_0205220C: .word FUN_0205225C +_02052210: .word FUN_02052380 thumb_func_start FUN_02052214 FUN_02052214: ; 0x02052214 @@ -172713,7 +172713,7 @@ FUN_02052214: ; 0x02052214 _02052230: pop {r4, pc} nop -_02052234: .word FUN_020521AC + 1 +_02052234: .word FUN_020521AC thumb_func_start FUN_02052238 FUN_02052238: ; 0x02052238 @@ -172786,8 +172786,8 @@ _020522C2: pop {r4, pc} .balign 4 _020522C4: .word 0x021C5A70 -_020522C8: .word FUN_020522D0 + 1 -_020522CC: .word FUN_02052214 + 1 +_020522C8: .word FUN_020522D0 +_020522CC: .word FUN_02052214 thumb_func_start FUN_020522D0 FUN_020522D0: ; 0x020522D0 @@ -172809,7 +172809,7 @@ FUN_020522D0: ; 0x020522D0 _020522FA: pop {r4, pc} .balign 4 -_020522FC: .word FUN_02052214 + 1 +_020522FC: .word FUN_02052214 thumb_func_start FUN_02052300 FUN_02052300: ; 0x02052300 @@ -172872,7 +172872,7 @@ _02052358: bl FUN_02052300 pop {r4, pc} .balign 4 -_02052368: .word FUN_0205236C + 1 +_02052368: .word FUN_0205236C thumb_func_start FUN_0205236C FUN_0205236C: ; 0x0205236C @@ -172927,9 +172927,9 @@ _020523B4: _020523D2: pop {r4, pc} .balign 4 -_020523D4: .word FUN_02052410 + 1 -_020523D8: .word FUN_0205225C + 1 -_020523DC: .word FUN_020523E0 + 1 +_020523D4: .word FUN_02052410 +_020523D8: .word FUN_0205225C +_020523DC: .word FUN_020523E0 thumb_func_start FUN_020523E0 FUN_020523E0: ; 0x020523E0 @@ -172951,7 +172951,7 @@ FUN_020523E0: ; 0x020523E0 _02052408: pop {r4, pc} nop -_0205240C: .word FUN_02052214 + 1 +_0205240C: .word FUN_02052214 thumb_func_start FUN_02052410 FUN_02052410: ; 0x02052410 @@ -172996,8 +172996,8 @@ _02052444: _0205246C: pop {r4, pc} nop -_02052470: .word FUN_02052478 + 1 -_02052474: .word FUN_02052214 + 1 +_02052470: .word FUN_02052478 +_02052474: .word FUN_02052214 thumb_func_start FUN_02052478 FUN_02052478: ; 0x02052478 @@ -173016,7 +173016,7 @@ FUN_02052478: ; 0x02052478 _02052498: pop {r4, pc} nop -_0205249C: .word FUN_02052214 + 1 +_0205249C: .word FUN_02052214 thumb_func_start FUN_020524A0 FUN_020524A0: ; 0x020524A0 @@ -173346,7 +173346,7 @@ FUN_020526BC: ; 0x020526BC bl FUN_02052E1C pop {r4, pc} nop -_020526D4: .word FUN_020521AC + 1 +_020526D4: .word FUN_020521AC thumb_func_start FUN_020526D8 FUN_020526D8: ; 0x020526D8 @@ -174428,7 +174428,7 @@ FUN_02052ED0: ; 0x02052ED0 ldr r2, _02052EE4 ; =0x0000066C bx r3 .balign 4 -_02052EE0: .word FUN_02030A78 + 1 +_02052EE0: .word FUN_02030A78 _02052EE4: .word 0x0000066C thumb_func_start FUN_02052EE8 @@ -174483,7 +174483,7 @@ FUN_02052EE8: ; 0x02052EE8 pop {r3-r5, pc} .balign 4 _02052F58: .word 0x000004E8 -_02052F5C: .word FUN_02052FC8 + 1 +_02052F5C: .word FUN_02052FC8 _02052F60: .word 0x000004D4 _02052F64: .word 0x000004D8 _02052F68: .word 0x00002710 @@ -175465,7 +175465,7 @@ FUN_020536C8: ; 0x020536C8 ldr r3, _020536CC ; =FUN_0205369C bx r3 .balign 4 -_020536CC: .word FUN_0205369C + 1 +_020536CC: .word FUN_0205369C thumb_func_start FUN_020536D0 FUN_020536D0: ; 0x020536D0 @@ -176282,10 +176282,10 @@ _02053CEE: pop {r3-r5, pc} .balign 4 _02053CF8: .word 0x020F5C04 -_02053CFC: .word FUN_02053750 + 1 -_02053D00: .word FUN_020538B8 + 1 -_02053D04: .word FUN_020539F8 + 1 -_02053D08: .word FUN_02053B38 + 1 +_02053CFC: .word FUN_02053750 +_02053D00: .word FUN_020538B8 +_02053D04: .word FUN_020539F8 +_02053D08: .word FUN_02053B38 thumb_func_start FUN_02053D0C FUN_02053D0C: ; 0x02053D0C @@ -176338,7 +176338,7 @@ FUN_02053D68: ; 0x02053D68 ldr r3, _02053D6C ; =FUN_02053EF0 bx r3 .balign 4 -_02053D6C: .word FUN_02053EF0 + 1 +_02053D6C: .word FUN_02053EF0 thumb_func_start FUN_02053D70 FUN_02053D70: ; 0x02053D70 @@ -176632,24 +176632,24 @@ _02053FB6: blx r2 pop {r3-r5, pc} nop -_02053FC0: .word FUN_02054088 + 1 -_02053FC4: .word FUN_020540C8 + 1 -_02053FC8: .word FUN_020540E8 + 1 -_02053FCC: .word FUN_02054168 + 1 -_02053FD0: .word FUN_020541A4 + 1 -_02053FD4: .word FUN_020541C4 + 1 -_02053FD8: .word FUN_020541E8 + 1 -_02053FDC: .word FUN_02054228 + 1 -_02053FE0: .word FUN_02054248 + 1 -_02053FE4: .word FUN_020542A4 + 1 -_02053FE8: .word FUN_020542E8 + 1 -_02053FEC: .word FUN_02054308 + 1 -_02053FF0: .word FUN_020543D8 + 1 -_02053FF4: .word FUN_0205442C + 1 -_02053FF8: .word FUN_0205444C + 1 -_02053FFC: .word FUN_02054508 + 1 -_02054000: .word FUN_0205454C + 1 -_02054004: .word FUN_0205456C + 1 +_02053FC0: .word FUN_02054088 +_02053FC4: .word FUN_020540C8 +_02053FC8: .word FUN_020540E8 +_02053FCC: .word FUN_02054168 +_02053FD0: .word FUN_020541A4 +_02053FD4: .word FUN_020541C4 +_02053FD8: .word FUN_020541E8 +_02053FDC: .word FUN_02054228 +_02053FE0: .word FUN_02054248 +_02053FE4: .word FUN_020542A4 +_02053FE8: .word FUN_020542E8 +_02053FEC: .word FUN_02054308 +_02053FF0: .word FUN_020543D8 +_02053FF4: .word FUN_0205442C +_02053FF8: .word FUN_0205444C +_02053FFC: .word FUN_02054508 +_02054000: .word FUN_0205454C +_02054004: .word FUN_0205456C thumb_func_start FUN_02054008 FUN_02054008: ; 0x02054008 @@ -177502,7 +177502,7 @@ FUN_0205464C: ; 0x0205464C mov r1, #0xf bx r3 nop -_02054654: .word FUN_02019620 + 1 +_02054654: .word FUN_02019620 thumb_func_start FUN_02054658 FUN_02054658: ; 0x02054658 @@ -179071,7 +179071,7 @@ _02054FC6: bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_02054FE0: .word FUN_02054EA0 + 1 +_02054FE0: .word FUN_02054EA0 thumb_func_start FUN_02054FE4 FUN_02054FE4: ; 0x02054FE4 @@ -179136,7 +179136,7 @@ FUN_0205502C: ; 0x0205502C bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_02055064: .word FUN_02054FE4 + 1 +_02055064: .word FUN_02054FE4 thumb_func_start FUN_02055068 FUN_02055068: ; 0x02055068 @@ -179254,7 +179254,7 @@ FUN_02055160: ; 0x02055160 ldr r3, _02055164 ; =FUN_02016A18 bx r3 .balign 4 -_02055164: .word FUN_02016A18 + 1 +_02055164: .word FUN_02016A18 thumb_func_start FUN_02055168 FUN_02055168: ; 0x02055168 @@ -179654,7 +179654,7 @@ FUN_02055410: ; 0x02055410 str r1, [r0, #0x20] bx r3 .balign 4 -_02055418: .word FUN_020556F4 + 1 +_02055418: .word FUN_020556F4 thumb_func_start FUN_0205541C FUN_0205541C: ; 0x0205541C @@ -180249,7 +180249,7 @@ FUN_020557A4: ; 0x020557A4 mov r1, #0x40 bx r3 nop -_020557AC: .word FUN_020553EC + 1 +_020557AC: .word FUN_020553EC thumb_func_start FUN_020557B0 FUN_020557B0: ; 0x020557B0 @@ -180257,7 +180257,7 @@ FUN_020557B0: ; 0x020557B0 mov r1, #0x40 bx r3 nop -_020557B8: .word FUN_020553F4 + 1 +_020557B8: .word FUN_020553F4 thumb_func_start FUN_020557BC FUN_020557BC: ; 0x020557BC @@ -180292,7 +180292,7 @@ FUN_020557E8: ; 0x020557E8 mov r1, #0x80 bx r3 nop -_020557F0: .word FUN_02055400 + 1 +_020557F0: .word FUN_02055400 thumb_func_start FUN_020557F4 FUN_020557F4: ; 0x020557F4 @@ -180375,7 +180375,7 @@ FUN_02055898: ; 0x02055898 ldr r3, _0205589C ; =FUN_020558A0 bx r3 .balign 4 -_0205589C: .word FUN_020558A0 + 1 +_0205589C: .word FUN_020558A0 thumb_func_start FUN_020558A0 FUN_020558A0: ; 0x020558A0 @@ -183292,7 +183292,7 @@ FUN_02057020: ; 0x02057020 ldr r3, _02057024 ; =FUN_02057060 bx r3 .balign 4 -_02057024: .word FUN_02057060 + 1 +_02057024: .word FUN_02057060 thumb_func_start FUN_02057028 FUN_02057028: ; 0x02057028 @@ -184179,10 +184179,10 @@ _020576D6: pop {r4, pc} .balign 4 _02057708: .word 0x0000FFFF -_0205770C: .word FUN_02058ED8 + 1 -_02057710: .word FUN_02058EDC + 1 -_02057714: .word FUN_02058EE0 + 1 -_02057718: .word FUN_02058EE4 + 1 +_0205770C: .word FUN_02058ED8 +_02057710: .word FUN_02058EDC +_02057714: .word FUN_02058EE0 +_02057718: .word FUN_02058EE4 thumb_func_start FUN_0205771C FUN_0205771C: ; 0x0205771C @@ -184905,7 +184905,7 @@ _02057D1C: bl FUN_02058554 pop {r3-r5, pc} nop -_02057D28: .word FUN_0205832C + 1 +_02057D28: .word FUN_0205832C thumb_func_start FUN_02057D2C FUN_02057D2C: ; 0x02057D2C @@ -185405,7 +185405,7 @@ FUN_0205815C: ; 0x0205815C ldr r1, _02058168 ; =0x05108000 bx r3 nop -_02058164: .word FUN_02058418 + 1 +_02058164: .word FUN_02058418 _02058168: .word 0x05108000 thumb_func_start FUN_0205816C @@ -186146,7 +186146,7 @@ FUN_02058580: ; 0x02058580 ldr r0, [r0, #0x0] bx r3 .balign 4 -_02058588: .word FUN_02058360 + 1 +_02058588: .word FUN_02058360 thumb_func_start FUN_0205858C FUN_0205858C: ; 0x0205858C @@ -186487,7 +186487,7 @@ FUN_02058768: ; 0x02058768 mov r1, #0x6 bx r3 nop -_02058770: .word FUN_0205837C + 1 +_02058770: .word FUN_0205837C thumb_func_start FUN_02058774 FUN_02058774: ; 0x02058774 @@ -186495,7 +186495,7 @@ FUN_02058774: ; 0x02058774 mov r1, #0x6 bx r3 nop -_0205877C: .word FUN_02058384 + 1 +_0205877C: .word FUN_02058384 thumb_func_start FUN_02058780 FUN_02058780: ; 0x02058780 @@ -186602,7 +186602,7 @@ FUN_02058830: ; 0x02058830 mov r1, #0x1 bx r3 nop -_02058838: .word FUN_0205842C + 1 +_02058838: .word FUN_0205842C thumb_func_start FUN_0205883C FUN_0205883C: ; 0x0205883C @@ -186610,7 +186610,7 @@ FUN_0205883C: ; 0x0205883C mov r1, #0x2 bx r3 nop -_02058844: .word FUN_02058410 + 1 +_02058844: .word FUN_02058410 thumb_func_start FUN_02058848 FUN_02058848: ; 0x02058848 @@ -186618,7 +186618,7 @@ FUN_02058848: ; 0x02058848 mov r1, #0x2 bx r3 nop -_02058850: .word FUN_02058418 + 1 +_02058850: .word FUN_02058418 thumb_func_start FUN_02058854 FUN_02058854: ; 0x02058854 @@ -186626,7 +186626,7 @@ FUN_02058854: ; 0x02058854 mov r1, #0x2 bx r3 nop -_0205885C: .word FUN_0205842C + 1 +_0205885C: .word FUN_0205842C thumb_func_start FUN_02058860 FUN_02058860: ; 0x02058860 @@ -186634,7 +186634,7 @@ FUN_02058860: ; 0x02058860 mov r1, #0x4 bx r3 nop -_02058868: .word FUN_02058410 + 1 +_02058868: .word FUN_02058410 thumb_func_start FUN_0205886C FUN_0205886C: ; 0x0205886C @@ -186642,7 +186642,7 @@ FUN_0205886C: ; 0x0205886C mov r1, #0x8 bx r3 nop -_02058874: .word FUN_02058418 + 1 +_02058874: .word FUN_02058418 thumb_func_start FUN_02058878 FUN_02058878: ; 0x02058878 @@ -186651,7 +186651,7 @@ FUN_02058878: ; 0x02058878 lsl r1, r1, #0xe bx r3 .balign 4 -_02058880: .word FUN_02058410 + 1 +_02058880: .word FUN_02058410 thumb_func_start FUN_02058884 FUN_02058884: ; 0x02058884 @@ -186660,7 +186660,7 @@ FUN_02058884: ; 0x02058884 lsl r1, r1, #0xe bx r3 .balign 4 -_0205888C: .word FUN_0205842C + 1 +_0205888C: .word FUN_0205842C thumb_func_start FUN_02058890 FUN_02058890: ; 0x02058890 @@ -186669,7 +186669,7 @@ FUN_02058890: ; 0x02058890 lsl r1, r1, #0x8 bx r3 .balign 4 -_02058898: .word FUN_0205842C + 1 +_02058898: .word FUN_0205842C thumb_func_start FUN_0205889C FUN_0205889C: ; 0x0205889C @@ -186740,7 +186740,7 @@ FUN_02058908: ; 0x02058908 mov r1, #0x40 bx r3 nop -_02058910: .word FUN_02058410 + 1 +_02058910: .word FUN_02058410 thumb_func_start FUN_02058914 FUN_02058914: ; 0x02058914 @@ -186748,7 +186748,7 @@ FUN_02058914: ; 0x02058914 mov r1, #0x40 bx r3 nop -_0205891C: .word FUN_02058418 + 1 +_0205891C: .word FUN_02058418 thumb_func_start FUN_02058920 FUN_02058920: ; 0x02058920 @@ -188495,7 +188495,7 @@ FUN_020594F4: ; 0x020594F4 mov r1, #0x0 bx r3 nop -_020594FC: .word FUN_020589E4 + 1 +_020594FC: .word FUN_020589E4 thumb_func_start FUN_02059500 FUN_02059500: ; 0x02059500 @@ -189825,7 +189825,7 @@ FUN_02059F34: ; 0x02059F34 mov r1, #0x0 bx r3 nop -_02059F3C: .word FUN_02059F04 + 1 +_02059F3C: .word FUN_02059F04 thumb_func_start FUN_02059F40 FUN_02059F40: ; 0x02059F40 @@ -189833,7 +189833,7 @@ FUN_02059F40: ; 0x02059F40 mov r1, #0x1 bx r3 nop -_02059F48: .word FUN_02059F04 + 1 +_02059F48: .word FUN_02059F04 thumb_func_start FUN_02059F4C FUN_02059F4C: ; 0x02059F4C @@ -189841,7 +189841,7 @@ FUN_02059F4C: ; 0x02059F4C mov r1, #0x2 bx r3 nop -_02059F54: .word FUN_02059F04 + 1 +_02059F54: .word FUN_02059F04 thumb_func_start FUN_02059F58 FUN_02059F58: ; 0x02059F58 @@ -189849,7 +189849,7 @@ FUN_02059F58: ; 0x02059F58 mov r1, #0x3 bx r3 nop -_02059F60: .word FUN_02059F04 + 1 +_02059F60: .word FUN_02059F04 thumb_func_start FUN_02059F64 FUN_02059F64: ; 0x02059F64 @@ -189857,7 +189857,7 @@ FUN_02059F64: ; 0x02059F64 mov r1, #0x4 bx r3 nop -_02059F6C: .word FUN_02059F04 + 1 +_02059F6C: .word FUN_02059F04 thumb_func_start FUN_02059F70 FUN_02059F70: ; 0x02059F70 @@ -189865,7 +189865,7 @@ FUN_02059F70: ; 0x02059F70 mov r1, #0x5 bx r3 nop -_02059F78: .word FUN_02059F04 + 1 +_02059F78: .word FUN_02059F04 thumb_func_start FUN_02059F7C FUN_02059F7C: ; 0x02059F7C @@ -189873,7 +189873,7 @@ FUN_02059F7C: ; 0x02059F7C mov r1, #0x6 bx r3 nop -_02059F84: .word FUN_02059F04 + 1 +_02059F84: .word FUN_02059F04 thumb_func_start FUN_02059F88 FUN_02059F88: ; 0x02059F88 @@ -189881,7 +189881,7 @@ FUN_02059F88: ; 0x02059F88 mov r1, #0x7 bx r3 nop -_02059F90: .word FUN_02059F04 + 1 +_02059F90: .word FUN_02059F04 thumb_func_start FUN_02059F94 FUN_02059F94: ; 0x02059F94 @@ -189889,7 +189889,7 @@ FUN_02059F94: ; 0x02059F94 mov r1, #0x8 bx r3 nop -_02059F9C: .word FUN_02059F04 + 1 +_02059F9C: .word FUN_02059F04 thumb_func_start FUN_02059FA0 FUN_02059FA0: ; 0x02059FA0 @@ -189897,7 +189897,7 @@ FUN_02059FA0: ; 0x02059FA0 mov r1, #0x9 bx r3 nop -_02059FA8: .word FUN_02059F04 + 1 +_02059FA8: .word FUN_02059F04 thumb_func_start FUN_02059FAC FUN_02059FAC: ; 0x02059FAC @@ -189905,7 +189905,7 @@ FUN_02059FAC: ; 0x02059FAC mov r1, #0xa bx r3 nop -_02059FB4: .word FUN_02059F04 + 1 +_02059FB4: .word FUN_02059F04 thumb_func_start FUN_02059FB8 FUN_02059FB8: ; 0x02059FB8 @@ -190353,7 +190353,7 @@ FUN_0205A310: ; 0x0205A310 mov r1, #0x0 bx r3 nop -_0205A318: .word FUN_0205A2C8 + 1 +_0205A318: .word FUN_0205A2C8 thumb_func_start FUN_0205A31C FUN_0205A31C: ; 0x0205A31C @@ -190361,7 +190361,7 @@ FUN_0205A31C: ; 0x0205A31C mov r1, #0x1 bx r3 nop -_0205A324: .word FUN_0205A2C8 + 1 +_0205A324: .word FUN_0205A2C8 thumb_func_start FUN_0205A328 FUN_0205A328: ; 0x0205A328 @@ -190369,7 +190369,7 @@ FUN_0205A328: ; 0x0205A328 mov r1, #0x2 bx r3 nop -_0205A330: .word FUN_0205A2C8 + 1 +_0205A330: .word FUN_0205A2C8 thumb_func_start FUN_0205A334 FUN_0205A334: ; 0x0205A334 @@ -190377,7 +190377,7 @@ FUN_0205A334: ; 0x0205A334 mov r1, #0x3 bx r3 nop -_0205A33C: .word FUN_0205A2C8 + 1 +_0205A33C: .word FUN_0205A2C8 thumb_func_start FUN_0205A340 FUN_0205A340: ; 0x0205A340 @@ -190402,7 +190402,7 @@ FUN_0205A364: ; 0x0205A364 mov r1, #0x2 bx r3 nop -_0205A36C: .word FUN_0205A340 + 1 +_0205A36C: .word FUN_0205A340 thumb_func_start FUN_0205A370 FUN_0205A370: ; 0x0205A370 @@ -190410,7 +190410,7 @@ FUN_0205A370: ; 0x0205A370 mov r1, #0x3 bx r3 nop -_0205A378: .word FUN_0205A340 + 1 +_0205A378: .word FUN_0205A340 thumb_func_start FUN_0205A37C FUN_0205A37C: ; 0x0205A37C @@ -190595,7 +190595,7 @@ FUN_0205A4C4: ; 0x0205A4C4 mov r1, #0x3 bx r3 nop -_0205A4CC: .word FUN_0205A340 + 1 +_0205A4CC: .word FUN_0205A340 thumb_func_start FUN_0205A4D0 FUN_0205A4D0: ; 0x0205A4D0 @@ -191969,7 +191969,7 @@ _0205AEE4: add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 -_0205AEEC: .word FUN_0205AF2C + 1 +_0205AEEC: .word FUN_0205AF2C thumb_func_start FUN_0205AEF0 FUN_0205AEF0: ; 0x0205AEF0 @@ -194237,7 +194237,7 @@ FUN_0205BEF8: ; 0x0205BEF8 ldr r3, _0205BEFC ; =FUN_0205BF24 bx r3 .balign 4 -_0205BEFC: .word FUN_0205BF24 + 1 +_0205BEFC: .word FUN_0205BF24 thumb_func_start FUN_0205BF00 FUN_0205BF00: ; 0x0205BF00 @@ -195710,7 +195710,7 @@ FUN_0205C9E8: ; 0x0205C9E8 ldr r3, _0205C9EC ; =FUN_0205C9D8 bx r3 .balign 4 -_0205C9EC: .word FUN_0205C9D8 + 1 +_0205C9EC: .word FUN_0205C9D8 thumb_func_start FUN_0205C9F0 FUN_0205C9F0: ; 0x0205C9F0 @@ -195790,7 +195790,7 @@ FUN_0205CA78: ; 0x0205CA78 ldr r3, _0205CA7C ; =FUN_0205CAE0 bx r3 .balign 4 -_0205CA7C: .word FUN_0205CAE0 + 1 +_0205CA7C: .word FUN_0205CAE0 thumb_func_start FUN_0205CA80 FUN_0205CA80: ; 0x0205CA80 @@ -195832,7 +195832,7 @@ _0205CACC: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 -_0205CAD0: .word FUN_0205CAF8 + 1 +_0205CAD0: .word FUN_0205CAF8 thumb_func_start FUN_0205CAD4 FUN_0205CAD4: ; 0x0205CAD4 @@ -196473,7 +196473,7 @@ FUN_0205CF34: ; 0x0205CF34 strh r0, [r4, #0x2a] pop {r3-r7, pc} nop -_0205CF74: .word FUN_0205CFA0 + 1 +_0205CF74: .word FUN_0205CFA0 thumb_func_start FUN_0205CF78 FUN_0205CF78: ; 0x0205CF78 @@ -196493,7 +196493,7 @@ FUN_0205CF78: ; 0x0205CF78 add sp, #0x4 pop {r3-r4, pc} nop -_0205CF9C: .word FUN_0205CFA0 + 1 +_0205CF9C: .word FUN_0205CFA0 thumb_func_start FUN_0205CFA0 FUN_0205CFA0: ; 0x0205CFA0 @@ -196621,7 +196621,7 @@ FUN_0205D024: ; 0x0205D024 pop {r3-r7, pc} nop _0205D0B4: .word 0x020F96DC -_0205D0B8: .word FUN_02035E50 + 1 +_0205D0B8: .word FUN_02035E50 thumb_func_start FUN_0205D0BC FUN_0205D0BC: ; 0x0205D0BC @@ -196643,7 +196643,7 @@ FUN_0205D0BC: ; 0x0205D0BC bl FUN_02035D04 pop {r3-r5, pc} nop -_0205D0E8: .word FUN_02036A78 + 1 +_0205D0E8: .word FUN_02036A78 thumb_func_start FUN_0205D0EC FUN_0205D0EC: ; 0x0205D0EC @@ -196653,14 +196653,14 @@ FUN_0205D0EC: ; 0x0205D0EC mov r0, #0x1 pop {r3, pc} .balign 4 -_0205D0F8: .word FUN_0205D0FC + 1 +_0205D0F8: .word FUN_0205D0FC thumb_func_start FUN_0205D0FC FUN_0205D0FC: ; 0x0205D0FC ldr r3, _0205D100 ; =FUN_02037EB8 bx r3 .balign 4 -_0205D100: .word FUN_02037EB8 + 1 +_0205D100: .word FUN_02037EB8 thumb_func_start FUN_0205D104 FUN_0205D104: ; 0x0205D104 @@ -196690,7 +196690,7 @@ FUN_0205D104: ; 0x0205D104 str r0, [r5, #0x0] pop {r3-r5, pc} nop -_0205D140: .word FUN_02049844 + 1 +_0205D140: .word FUN_02049844 thumb_func_start FUN_0205D144 FUN_0205D144: ; 0x0205D144 @@ -196712,7 +196712,7 @@ FUN_0205D144: ; 0x0205D144 str r0, [r1, #0x0] pop {r3-r5, pc} .balign 4 -_0205D16C: .word FUN_02049844 + 1 +_0205D16C: .word FUN_02049844 thumb_func_start FUN_0205D170 FUN_0205D170: ; 0x0205D170 @@ -196822,7 +196822,7 @@ FUN_0205D21C: ; 0x0205D21C strh r0, [r4, #0x2a] pop {r3-r5, pc} nop -_0205D24C: .word FUN_0205D264 + 1 +_0205D24C: .word FUN_0205D264 thumb_func_start FUN_0205D250 FUN_0205D250: ; 0x0205D250 @@ -196834,7 +196834,7 @@ FUN_0205D250: ; 0x0205D250 mov r0, #0x0 pop {r3, pc} .balign 4 -_0205D260: .word FUN_0205D264 + 1 +_0205D260: .word FUN_0205D264 thumb_func_start FUN_0205D264 FUN_0205D264: ; 0x0205D264 @@ -197020,7 +197020,7 @@ FUN_0205D3B8: ; 0x0205D3B8 bl FUN_02035D04 pop {r3-r5, pc} nop -_0205D3E0: .word FUN_02036B90 + 1 +_0205D3E0: .word FUN_02036B90 thumb_func_start FUN_0205D3E4 FUN_0205D3E4: ; 0x0205D3E4 @@ -197030,7 +197030,7 @@ FUN_0205D3E4: ; 0x0205D3E4 mov r0, #0x1 pop {r3, pc} .balign 4 -_0205D3F0: .word FUN_0205D3F4 + 1 +_0205D3F0: .word FUN_0205D3F4 thumb_func_start FUN_0205D3F4 FUN_0205D3F4: ; 0x0205D3F4 @@ -197104,7 +197104,7 @@ FUN_0205D400: ; 0x0205D400 pop {r3-r7, pc} nop _0205D490: .word 0x020F96DC -_0205D494: .word FUN_02035E50 + 1 +_0205D494: .word FUN_02035E50 thumb_func_start FUN_0205D498 FUN_0205D498: ; 0x0205D498 @@ -197138,7 +197138,7 @@ FUN_0205D498: ; 0x0205D498 bl FUN_02035D04 pop {r4-r6, pc} nop -_0205D4E0: .word FUN_02036BDC + 1 +_0205D4E0: .word FUN_02036BDC thumb_func_start FUN_0205D4E4 FUN_0205D4E4: ; 0x0205D4E4 @@ -197202,7 +197202,7 @@ FUN_0205D528: ; 0x0205D528 bl FUN_02035D04 pop {r3-r5, pc} .balign 4 -_0205D554: .word FUN_02036D94 + 1 +_0205D554: .word FUN_02036D94 thumb_func_start FUN_0205D558 FUN_0205D558: ; 0x0205D558 @@ -197212,7 +197212,7 @@ FUN_0205D558: ; 0x0205D558 mov r0, #0x1 pop {r3, pc} .balign 4 -_0205D564: .word FUN_0205D568 + 1 +_0205D564: .word FUN_0205D568 thumb_func_start FUN_0205D568 FUN_0205D568: ; 0x0205D568 @@ -197220,7 +197220,7 @@ FUN_0205D568: ; 0x0205D568 mov r1, #0xb bx r3 nop -_0205D570: .word FUN_02037FC4 + 1 +_0205D570: .word FUN_02037FC4 thumb_func_start FUN_0205D574 FUN_0205D574: ; 0x0205D574 @@ -197244,7 +197244,7 @@ FUN_0205D574: ; 0x0205D574 bl FUN_02035D04 pop {r3-r5, pc} nop -_0205D5A4: .word FUN_02036DD4 + 1 +_0205D5A4: .word FUN_02036DD4 thumb_func_start FUN_0205D5A8 FUN_0205D5A8: ; 0x0205D5A8 @@ -197254,7 +197254,7 @@ FUN_0205D5A8: ; 0x0205D5A8 mov r0, #0x1 pop {r3, pc} .balign 4 -_0205D5B4: .word FUN_0205D5B8 + 1 +_0205D5B4: .word FUN_0205D5B8 thumb_func_start FUN_0205D5B8 FUN_0205D5B8: ; 0x0205D5B8 @@ -197292,7 +197292,7 @@ FUN_0205D5C4: ; 0x0205D5C4 strh r0, [r5, #0x2a] pop {r4-r6, pc} nop -_0205D600: .word FUN_0205E30C + 1 +_0205D600: .word FUN_0205E30C thumb_func_start FUN_0205D604 FUN_0205D604: ; 0x0205D604 @@ -197310,7 +197310,7 @@ FUN_0205D604: ; 0x0205D604 mov r0, #0x0 pop {r4, pc} nop -_0205D624: .word FUN_0205E30C + 1 +_0205D624: .word FUN_0205E30C thumb_func_start FUN_0205D628 FUN_0205D628: ; 0x0205D628 @@ -197350,7 +197350,7 @@ FUN_0205D660: ; 0x0205D660 ldr r2, _0205D66C ; =0x00000AF2 bx r3 nop -_0205D668: .word FUN_0205CF34 + 1 +_0205D668: .word FUN_0205CF34 _0205D66C: .word 0x00000AF2 thumb_func_start FUN_0205D670 @@ -197388,7 +197388,7 @@ FUN_0205D69C: ; 0x0205D69C ldr r2, _0205D6A8 ; =0x00000AF3 bx r3 nop -_0205D6A4: .word FUN_0205CF34 + 1 +_0205D6A4: .word FUN_0205CF34 _0205D6A8: .word 0x00000AF3 thumb_func_start FUN_0205D6AC @@ -197448,7 +197448,7 @@ FUN_0205D714: ; 0x0205D714 ldr r2, _0205D720 ; =0x000022F6 bx r3 nop -_0205D71C: .word FUN_0205CF34 + 1 +_0205D71C: .word FUN_0205CF34 _0205D720: .word 0x000022F6 thumb_func_start FUN_0205D724 @@ -197693,7 +197693,7 @@ FUN_0205D8B8: ; 0x0205D8B8 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_0205D900: .word FUN_0205D904 + 1 +_0205D900: .word FUN_0205D904 thumb_func_start FUN_0205D904 FUN_0205D904: ; 0x0205D904 @@ -197834,7 +197834,7 @@ FUN_0205D9A8: ; 0x0205D9A8 pop {r3-r7, pc} .balign 4 _0205DA34: .word 0x020F96DC -_0205DA38: .word FUN_02035E50 + 1 +_0205DA38: .word FUN_02035E50 thumb_func_start FUN_0205DA3C FUN_0205DA3C: ; 0x0205DA3C @@ -197865,7 +197865,7 @@ FUN_0205DA3C: ; 0x0205DA3C bl FUN_0206EDD4 pop {r4-r6, pc} nop -_0205DA7C: .word FUN_0205DAAC + 1 +_0205DA7C: .word FUN_0205DAAC thumb_func_start FUN_0205DA80 FUN_0205DA80: ; 0x0205DA80 @@ -197914,7 +197914,7 @@ FUN_0205DACC: ; 0x0205DACC ldr r2, _0205DAD8 ; =0x000007F7 bx r3 nop -_0205DAD4: .word FUN_0205CF34 + 1 +_0205DAD4: .word FUN_0205CF34 _0205DAD8: .word 0x000007F7 thumb_func_start FUN_0205DADC @@ -198087,7 +198087,7 @@ FUN_0205DBF0: ; 0x0205DBF0 add sp, #0x4 pop {r3-r6, pc} .balign 4 -_0205DC34: .word FUN_0205D904 + 1 +_0205DC34: .word FUN_0205D904 thumb_func_start FUN_0205DC38 FUN_0205DC38: ; 0x0205DC38 @@ -198185,7 +198185,7 @@ _0205DCFA: mov r0, #0x0 pop {r3-r5, pc} nop -_0205DD00: .word FUN_0205D568 + 1 +_0205DD00: .word FUN_0205D568 thumb_func_start FUN_0205DD04 FUN_0205DD04: ; 0x0205DD04 @@ -198196,8 +198196,8 @@ FUN_0205DD04: ; 0x0205DD04 ldr r1, _0205DD14 ; =FUN_0205DC38 bx r3 .balign 4 -_0205DD10: .word FUN_020463CC + 1 -_0205DD14: .word FUN_0205DC38 + 1 +_0205DD10: .word FUN_020463CC +_0205DD14: .word FUN_0205DC38 thumb_func_start FUN_0205DD18 FUN_0205DD18: ; 0x0205DD18 @@ -198221,7 +198221,7 @@ FUN_0205DD38: ; 0x0205DD38 ldr r3, _0205DD3C ; =FUN_02016A18 bx r3 .balign 4 -_0205DD3C: .word FUN_02016A18 + 1 +_0205DD3C: .word FUN_02016A18 thumb_func_start FUN_0205DD40 FUN_0205DD40: ; 0x0205DD40 @@ -199928,7 +199928,7 @@ FUN_0205EA10: ; 0x0205EA10 mov r1, #0x0 bx r3 nop -_0205EA18: .word FUN_0205E9C8 + 1 +_0205EA18: .word FUN_0205E9C8 thumb_func_start FUN_0205EA1C FUN_0205EA1C: ; 0x0205EA1C @@ -199936,7 +199936,7 @@ FUN_0205EA1C: ; 0x0205EA1C mov r1, #0x1 bx r3 nop -_0205EA24: .word FUN_0205E9C8 + 1 +_0205EA24: .word FUN_0205E9C8 thumb_func_start FUN_0205EA28 FUN_0205EA28: ; 0x0205EA28 @@ -199944,7 +199944,7 @@ FUN_0205EA28: ; 0x0205EA28 mov r1, #0x2 bx r3 nop -_0205EA30: .word FUN_0205E9C8 + 1 +_0205EA30: .word FUN_0205E9C8 thumb_func_start FUN_0205EA34 FUN_0205EA34: ; 0x0205EA34 @@ -199952,7 +199952,7 @@ FUN_0205EA34: ; 0x0205EA34 mov r1, #0x3 bx r3 nop -_0205EA3C: .word FUN_0205E9C8 + 1 +_0205EA3C: .word FUN_0205E9C8 thumb_func_start FUN_0205EA40 FUN_0205EA40: ; 0x0205EA40 @@ -200261,21 +200261,21 @@ FUN_0205EC84: ; 0x0205EC84 ldr r3, _0205EC88 ; =FUN_020462E4 bx r3 .balign 4 -_0205EC88: .word FUN_020462E4 + 1 +_0205EC88: .word FUN_020462E4 thumb_func_start FUN_0205EC8C FUN_0205EC8C: ; 0x0205EC8C ldr r3, _0205EC90 ; =FUN_0204630C bx r3 .balign 4 -_0205EC90: .word FUN_0204630C + 1 +_0205EC90: .word FUN_0204630C thumb_func_start FUN_0205EC94 FUN_0205EC94: ; 0x0205EC94 ldr r3, _0205EC98 ; =FUN_020462B8 bx r3 .balign 4 -_0205EC98: .word FUN_020462B8 + 1 +_0205EC98: .word FUN_020462B8 thumb_func_start FUN_0205EC9C FUN_0205EC9C: ; 0x0205EC9C @@ -200316,7 +200316,7 @@ FUN_0205ECD4: ; 0x0205ECD4 lsl r1, r1, #0x4 bx r3 .balign 4 -_0205ECDC: .word FUN_0205EC84 + 1 +_0205ECDC: .word FUN_0205EC84 thumb_func_start FUN_0205ECE0 FUN_0205ECE0: ; 0x0205ECE0 @@ -200325,7 +200325,7 @@ FUN_0205ECE0: ; 0x0205ECE0 lsl r1, r1, #0x4 bx r3 .balign 4 -_0205ECE8: .word FUN_0205EC94 + 1 +_0205ECE8: .word FUN_0205EC94 thumb_func_start FUN_0205ECEC FUN_0205ECEC: ; 0x0205ECEC @@ -200333,7 +200333,7 @@ FUN_0205ECEC: ; 0x0205ECEC ldr r1, _0205ECF8 ; =0x0000098D bx r3 nop -_0205ECF4: .word FUN_0205EC94 + 1 +_0205ECF4: .word FUN_0205EC94 _0205ECF8: .word 0x0000098D thumb_func_start FUN_0205ECFC @@ -200342,7 +200342,7 @@ FUN_0205ECFC: ; 0x0205ECFC ldr r1, _0205ED08 ; =0x00000964 bx r3 nop -_0205ED04: .word FUN_0205EC84 + 1 +_0205ED04: .word FUN_0205EC84 _0205ED08: .word 0x00000964 thumb_func_start FUN_0205ED0C @@ -200351,7 +200351,7 @@ FUN_0205ED0C: ; 0x0205ED0C ldr r1, _0205ED18 ; =0x00000964 bx r3 nop -_0205ED14: .word FUN_0205EC94 + 1 +_0205ED14: .word FUN_0205EC94 _0205ED18: .word 0x00000964 thumb_func_start FUN_0205ED1C @@ -200360,7 +200360,7 @@ FUN_0205ED1C: ; 0x0205ED1C ldr r1, _0205ED28 ; =0x00000961 bx r3 nop -_0205ED24: .word FUN_0205EC84 + 1 +_0205ED24: .word FUN_0205EC84 _0205ED28: .word 0x00000961 thumb_func_start FUN_0205ED2C @@ -200369,7 +200369,7 @@ FUN_0205ED2C: ; 0x0205ED2C ldr r1, _0205ED38 ; =0x00000961 bx r3 nop -_0205ED34: .word FUN_0205EC8C + 1 +_0205ED34: .word FUN_0205EC8C _0205ED38: .word 0x00000961 thumb_func_start FUN_0205ED3C @@ -200378,7 +200378,7 @@ FUN_0205ED3C: ; 0x0205ED3C ldr r1, _0205ED48 ; =0x00000961 bx r3 nop -_0205ED44: .word FUN_0205EC94 + 1 +_0205ED44: .word FUN_0205EC94 _0205ED48: .word 0x00000961 thumb_func_start FUN_0205ED4C @@ -200387,7 +200387,7 @@ FUN_0205ED4C: ; 0x0205ED4C ldr r1, _0205ED58 ; =0x00000965 bx r3 nop -_0205ED54: .word FUN_0205EC84 + 1 +_0205ED54: .word FUN_0205EC84 _0205ED58: .word 0x00000965 thumb_func_start FUN_0205ED5C @@ -200396,7 +200396,7 @@ FUN_0205ED5C: ; 0x0205ED5C ldr r1, _0205ED68 ; =0x00000965 bx r3 nop -_0205ED64: .word FUN_0205EC8C + 1 +_0205ED64: .word FUN_0205EC8C _0205ED68: .word 0x00000965 thumb_func_start FUN_0205ED6C @@ -200405,7 +200405,7 @@ FUN_0205ED6C: ; 0x0205ED6C ldr r1, _0205ED78 ; =0x00000965 bx r3 nop -_0205ED74: .word FUN_0205EC94 + 1 +_0205ED74: .word FUN_0205EC94 _0205ED78: .word 0x00000965 thumb_func_start FUN_0205ED7C @@ -200414,7 +200414,7 @@ FUN_0205ED7C: ; 0x0205ED7C ldr r1, _0205ED88 ; =0x0000096D bx r3 nop -_0205ED84: .word FUN_0205EC84 + 1 +_0205ED84: .word FUN_0205EC84 _0205ED88: .word 0x0000096D thumb_func_start FUN_0205ED8C @@ -200423,7 +200423,7 @@ FUN_0205ED8C: ; 0x0205ED8C ldr r1, _0205ED98 ; =0x0000096D bx r3 nop -_0205ED94: .word FUN_0205EC8C + 1 +_0205ED94: .word FUN_0205EC8C _0205ED98: .word 0x0000096D thumb_func_start FUN_0205ED9C @@ -200432,7 +200432,7 @@ FUN_0205ED9C: ; 0x0205ED9C ldr r1, _0205EDA8 ; =0x0000096D bx r3 nop -_0205EDA4: .word FUN_0205EC94 + 1 +_0205EDA4: .word FUN_0205EC94 _0205EDA8: .word 0x0000096D thumb_func_start FUN_0205EDAC @@ -200441,7 +200441,7 @@ FUN_0205EDAC: ; 0x0205EDAC ldr r1, _0205EDB8 ; =0x0000096E bx r3 nop -_0205EDB4: .word FUN_0205EC84 + 1 +_0205EDB4: .word FUN_0205EC84 _0205EDB8: .word 0x0000096E thumb_func_start FUN_0205EDBC @@ -200450,7 +200450,7 @@ FUN_0205EDBC: ; 0x0205EDBC ldr r1, _0205EDC8 ; =0x0000096F bx r3 nop -_0205EDC4: .word FUN_0205EC84 + 1 +_0205EDC4: .word FUN_0205EC84 _0205EDC8: .word 0x0000096F thumb_func_start FUN_0205EDCC @@ -200460,7 +200460,7 @@ FUN_0205EDCC: ; 0x0205EDCC lsl r1, r1, #0x4 bx r3 .balign 4 -_0205EDD4: .word FUN_0205EC84 + 1 +_0205EDD4: .word FUN_0205EC84 thumb_func_start FUN_0205EDD8 FUN_0205EDD8: ; 0x0205EDD8 @@ -200468,7 +200468,7 @@ FUN_0205EDD8: ; 0x0205EDD8 ldr r1, _0205EDE4 ; =0x00000971 bx r3 nop -_0205EDE0: .word FUN_0205EC84 + 1 +_0205EDE0: .word FUN_0205EC84 _0205EDE4: .word 0x00000971 thumb_func_start FUN_0205EDE8 @@ -200477,7 +200477,7 @@ FUN_0205EDE8: ; 0x0205EDE8 ldr r1, _0205EDF4 ; =0x00000972 bx r3 nop -_0205EDF0: .word FUN_0205EC84 + 1 +_0205EDF0: .word FUN_0205EC84 _0205EDF4: .word 0x00000972 thumb_func_start FUN_0205EDF8 @@ -200486,7 +200486,7 @@ FUN_0205EDF8: ; 0x0205EDF8 ldr r1, _0205EE04 ; =0x00000973 bx r3 nop -_0205EE00: .word FUN_0205EC84 + 1 +_0205EE00: .word FUN_0205EC84 _0205EE04: .word 0x00000973 thumb_func_start FUN_0205EE08 @@ -200912,7 +200912,7 @@ FUN_0205F154: ; 0x0205F154 ldr r1, _0205F160 ; =0x00000966 bx r3 nop -_0205F15C: .word FUN_0205EC84 + 1 +_0205F15C: .word FUN_0205EC84 _0205F160: .word 0x00000966 thumb_func_start FUN_0205F164 @@ -200921,7 +200921,7 @@ FUN_0205F164: ; 0x0205F164 ldr r1, _0205F170 ; =0x00000966 bx r3 nop -_0205F16C: .word FUN_0205EC8C + 1 +_0205F16C: .word FUN_0205EC8C _0205F170: .word 0x00000966 thumb_func_start FUN_0205F174 @@ -200930,7 +200930,7 @@ FUN_0205F174: ; 0x0205F174 ldr r1, _0205F180 ; =0x00000966 bx r3 nop -_0205F17C: .word FUN_0205EC94 + 1 +_0205F17C: .word FUN_0205EC94 _0205F180: .word 0x00000966 thumb_func_start FUN_0205F184 @@ -200939,7 +200939,7 @@ FUN_0205F184: ; 0x0205F184 ldr r1, _0205F190 ; =0x00000978 bx r3 nop -_0205F18C: .word FUN_0205EC94 + 1 +_0205F18C: .word FUN_0205EC94 _0205F190: .word 0x00000978 thumb_func_start FUN_0205F194 @@ -200948,7 +200948,7 @@ FUN_0205F194: ; 0x0205F194 ldr r1, _0205F1A0 ; =0x00000992 bx r3 nop -_0205F19C: .word FUN_0205EC94 + 1 +_0205F19C: .word FUN_0205EC94 _0205F1A0: .word 0x00000992 thumb_func_start FUN_0205F1A4 @@ -200957,7 +200957,7 @@ FUN_0205F1A4: ; 0x0205F1A4 ldr r1, _0205F1B0 ; =0x0000097D bx r3 nop -_0205F1AC: .word FUN_0205EC94 + 1 +_0205F1AC: .word FUN_0205EC94 _0205F1B0: .word 0x0000097D thumb_func_start FUN_0205F1B4 @@ -200966,7 +200966,7 @@ FUN_0205F1B4: ; 0x0205F1B4 ldr r1, _0205F1C0 ; =0x0000097E bx r3 nop -_0205F1BC: .word FUN_0205EC94 + 1 +_0205F1BC: .word FUN_0205EC94 _0205F1C0: .word 0x0000097E thumb_func_start FUN_0205F1C4 @@ -200975,7 +200975,7 @@ FUN_0205F1C4: ; 0x0205F1C4 ldr r1, _0205F1D0 ; =0x0000097C bx r3 nop -_0205F1CC: .word FUN_0205EC84 + 1 +_0205F1CC: .word FUN_0205EC84 _0205F1D0: .word 0x0000097C thumb_func_start FUN_0205F1D4 @@ -200984,7 +200984,7 @@ FUN_0205F1D4: ; 0x0205F1D4 ldr r1, _0205F1E0 ; =0x0000097C bx r3 nop -_0205F1DC: .word FUN_0205EC8C + 1 +_0205F1DC: .word FUN_0205EC8C _0205F1E0: .word 0x0000097C thumb_func_start FUN_0205F1E4 @@ -200993,7 +200993,7 @@ FUN_0205F1E4: ; 0x0205F1E4 ldr r1, _0205F1F0 ; =0x0000097C bx r3 nop -_0205F1EC: .word FUN_0205EC94 + 1 +_0205F1EC: .word FUN_0205EC94 _0205F1F0: .word 0x0000097C thumb_func_start FUN_0205F1F4 @@ -201002,7 +201002,7 @@ FUN_0205F1F4: ; 0x0205F1F4 ldr r1, _0205F200 ; =0x00000967 bx r3 nop -_0205F1FC: .word FUN_0205EC84 + 1 +_0205F1FC: .word FUN_0205EC84 _0205F200: .word 0x00000967 thumb_func_start FUN_0205F204 @@ -201011,7 +201011,7 @@ FUN_0205F204: ; 0x0205F204 ldr r1, _0205F210 ; =0x00000967 bx r3 nop -_0205F20C: .word FUN_0205EC8C + 1 +_0205F20C: .word FUN_0205EC8C _0205F210: .word 0x00000967 thumb_func_start FUN_0205F214 @@ -201020,7 +201020,7 @@ FUN_0205F214: ; 0x0205F214 ldr r1, _0205F220 ; =0x00000967 bx r3 nop -_0205F21C: .word FUN_0205EC94 + 1 +_0205F21C: .word FUN_0205EC94 _0205F220: .word 0x00000967 thumb_func_start FUN_0205F224 @@ -201029,7 +201029,7 @@ FUN_0205F224: ; 0x0205F224 ldr r1, _0205F230 ; =0x00000979 bx r3 nop -_0205F22C: .word FUN_0205EC84 + 1 +_0205F22C: .word FUN_0205EC84 _0205F230: .word 0x00000979 thumb_func_start FUN_0205F234 @@ -201038,7 +201038,7 @@ FUN_0205F234: ; 0x0205F234 ldr r1, _0205F240 ; =0x00000979 bx r3 nop -_0205F23C: .word FUN_0205EC8C + 1 +_0205F23C: .word FUN_0205EC8C _0205F240: .word 0x00000979 thumb_func_start FUN_0205F244 @@ -201047,7 +201047,7 @@ FUN_0205F244: ; 0x0205F244 ldr r1, _0205F250 ; =0x00000979 bx r3 nop -_0205F24C: .word FUN_0205EC94 + 1 +_0205F24C: .word FUN_0205EC94 _0205F250: .word 0x00000979 thumb_func_start FUN_0205F254 @@ -201056,7 +201056,7 @@ FUN_0205F254: ; 0x0205F254 ldr r1, _0205F260 ; =0x00000994 bx r3 nop -_0205F25C: .word FUN_0205EC8C + 1 +_0205F25C: .word FUN_0205EC8C _0205F260: .word 0x00000994 thumb_func_start FUN_0205F264 @@ -201065,7 +201065,7 @@ FUN_0205F264: ; 0x0205F264 ldr r2, _0205F270 ; =0x00000962 bx r3 nop -_0205F26C: .word FUN_0205EC9C + 1 +_0205F26C: .word FUN_0205EC9C _0205F270: .word 0x00000962 thumb_func_start FUN_0205F274 @@ -201074,7 +201074,7 @@ FUN_0205F274: ; 0x0205F274 ldr r1, _0205F280 ; =0x0000097A bx r3 nop -_0205F27C: .word FUN_0205EC84 + 1 +_0205F27C: .word FUN_0205EC84 _0205F280: .word 0x0000097A thumb_func_start FUN_0205F284 @@ -201083,7 +201083,7 @@ FUN_0205F284: ; 0x0205F284 ldr r1, _0205F290 ; =0x0000097A bx r3 nop -_0205F28C: .word FUN_0205EC8C + 1 +_0205F28C: .word FUN_0205EC8C _0205F290: .word 0x0000097A thumb_func_start FUN_0205F294 @@ -201092,7 +201092,7 @@ FUN_0205F294: ; 0x0205F294 ldr r1, _0205F2A0 ; =0x0000097A bx r3 nop -_0205F29C: .word FUN_0205EC94 + 1 +_0205F29C: .word FUN_0205EC94 _0205F2A0: .word 0x0000097A thumb_func_start FUN_0205F2A4 @@ -201101,7 +201101,7 @@ FUN_0205F2A4: ; 0x0205F2A4 ldr r1, _0205F2B0 ; =0x0000097B bx r3 nop -_0205F2AC: .word FUN_0205EC84 + 1 +_0205F2AC: .word FUN_0205EC84 _0205F2B0: .word 0x0000097B thumb_func_start FUN_0205F2B4 @@ -201110,7 +201110,7 @@ FUN_0205F2B4: ; 0x0205F2B4 ldr r1, _0205F2C0 ; =0x0000097B bx r3 nop -_0205F2BC: .word FUN_0205EC8C + 1 +_0205F2BC: .word FUN_0205EC8C _0205F2C0: .word 0x0000097B thumb_func_start FUN_0205F2C4 @@ -201119,7 +201119,7 @@ FUN_0205F2C4: ; 0x0205F2C4 ldr r1, _0205F2D0 ; =0x0000097B bx r3 nop -_0205F2CC: .word FUN_0205EC94 + 1 +_0205F2CC: .word FUN_0205EC94 _0205F2D0: .word 0x0000097B thumb_func_start FUN_0205F2D4 @@ -201128,7 +201128,7 @@ FUN_0205F2D4: ; 0x0205F2D4 ldr r2, _0205F2E0 ; =0x00000963 bx r3 nop -_0205F2DC: .word FUN_0205EC9C + 1 +_0205F2DC: .word FUN_0205EC9C _0205F2E0: .word 0x00000963 thumb_func_start FUN_0205F2E4 @@ -201155,7 +201155,7 @@ FUN_0205F304: ; 0x0205F304 ldr r1, _0205F310 ; =0x0000098C bx r3 nop -_0205F30C: .word FUN_0205EC84 + 1 +_0205F30C: .word FUN_0205EC84 _0205F310: .word 0x0000098C thumb_func_start FUN_0205F314 @@ -201206,7 +201206,7 @@ FUN_0205F358: ; 0x0205F358 ldr r1, _0205F364 ; =0x0000403F bx r3 .balign 4 -_0205F360: .word FUN_0205F314 + 1 +_0205F360: .word FUN_0205F314 _0205F364: .word 0x0000403F thumb_func_start FUN_0205F368 @@ -201215,7 +201215,7 @@ FUN_0205F368: ; 0x0205F368 ldr r1, _0205F374 ; =0x0000403F bx r3 nop -_0205F370: .word FUN_0205F344 + 1 +_0205F370: .word FUN_0205F344 _0205F374: .word 0x0000403F thumb_func_start FUN_0205F378 @@ -201225,7 +201225,7 @@ FUN_0205F378: ; 0x0205F378 ldr r1, _0205F384 ; =0x00004030 bx r3 .balign 4 -_0205F380: .word FUN_0205F314 + 1 +_0205F380: .word FUN_0205F314 _0205F384: .word 0x00004030 thumb_func_start FUN_0205F388 @@ -201234,7 +201234,7 @@ FUN_0205F388: ; 0x0205F388 ldr r1, _0205F394 ; =0x00004030 bx r3 nop -_0205F390: .word FUN_0205F344 + 1 +_0205F390: .word FUN_0205F344 _0205F394: .word 0x00004030 thumb_func_start FUN_0205F398 @@ -201287,7 +201287,7 @@ FUN_0205F3E8: ; 0x0205F3E8 ldr r1, _0205F3F4 ; =0x00004035 bx r3 nop -_0205F3F0: .word FUN_0205F344 + 1 +_0205F3F0: .word FUN_0205F344 _0205F3F4: .word 0x00004035 thumb_func_start FUN_0205F3F8 @@ -201297,7 +201297,7 @@ FUN_0205F3F8: ; 0x0205F3F8 ldr r1, _0205F404 ; =0x00004035 bx r3 .balign 4 -_0205F400: .word FUN_0205F314 + 1 +_0205F400: .word FUN_0205F314 _0205F404: .word 0x00004035 thumb_func_start FUN_0205F408 @@ -201317,7 +201317,7 @@ FUN_0205F41C: ; 0x0205F41C ldr r1, _0205F428 ; =0x00004033 bx r3 nop -_0205F424: .word FUN_0205F344 + 1 +_0205F424: .word FUN_0205F344 _0205F428: .word 0x00004033 thumb_func_start FUN_0205F42C @@ -201327,7 +201327,7 @@ FUN_0205F42C: ; 0x0205F42C ldr r1, _0205F438 ; =0x00004033 bx r3 .balign 4 -_0205F434: .word FUN_0205F314 + 1 +_0205F434: .word FUN_0205F314 _0205F438: .word 0x00004033 thumb_func_start FUN_0205F43C @@ -201336,7 +201336,7 @@ FUN_0205F43C: ; 0x0205F43C ldr r1, _0205F448 ; =0x00004034 bx r3 nop -_0205F444: .word FUN_0205F344 + 1 +_0205F444: .word FUN_0205F344 _0205F448: .word 0x00004034 thumb_func_start FUN_0205F44C @@ -201346,7 +201346,7 @@ FUN_0205F44C: ; 0x0205F44C ldr r1, _0205F458 ; =0x00004034 bx r3 .balign 4 -_0205F454: .word FUN_0205F314 + 1 +_0205F454: .word FUN_0205F314 _0205F458: .word 0x00004034 thumb_func_start FUN_0205F45C @@ -201456,7 +201456,7 @@ FUN_0205F50C: ; 0x0205F50C bx r3 nop _0205F51C: .word 0x00004036 -_0205F520: .word FUN_0205F314 + 1 +_0205F520: .word FUN_0205F314 thumb_func_start FUN_0205F524 FUN_0205F524: ; 0x0205F524 @@ -201487,7 +201487,7 @@ FUN_0205F54C: ; 0x0205F54C mov r2, #0x0 bx r3 .balign 4 -_0205F554: .word FUN_0205F314 + 1 +_0205F554: .word FUN_0205F314 _0205F558: .word 0x0000403A thumb_func_start FUN_0205F55C @@ -201496,7 +201496,7 @@ FUN_0205F55C: ; 0x0205F55C ldr r1, _0205F568 ; =0x0000403A bx r3 nop -_0205F564: .word FUN_0205F344 + 1 +_0205F564: .word FUN_0205F344 _0205F568: .word 0x0000403A thumb_func_start FUN_0205F56C @@ -201526,7 +201526,7 @@ FUN_0205F594: ; 0x0205F594 ldr r1, _0205F5A0 ; =0x0000403B bx r3 nop -_0205F59C: .word FUN_0205F344 + 1 +_0205F59C: .word FUN_0205F344 _0205F5A0: .word 0x0000403B thumb_func_start FUN_0205F5A4 @@ -201536,7 +201536,7 @@ FUN_0205F5A4: ; 0x0205F5A4 ldr r1, _0205F5B0 ; =0x0000403B bx r3 .balign 4 -_0205F5AC: .word FUN_0205F314 + 1 +_0205F5AC: .word FUN_0205F314 _0205F5B0: .word 0x0000403B thumb_func_start FUN_0205F5B4 @@ -201616,7 +201616,7 @@ FUN_0205F648: ; 0x0205F648 ldr r1, _0205F654 ; =0x00004041 bx r3 nop -_0205F650: .word FUN_0205F344 + 1 +_0205F650: .word FUN_0205F344 _0205F654: .word 0x00004041 thumb_func_start FUN_0205F658 @@ -201626,7 +201626,7 @@ FUN_0205F658: ; 0x0205F658 ldr r1, _0205F664 ; =0x00004041 bx r3 .balign 4 -_0205F660: .word FUN_0205F314 + 1 +_0205F660: .word FUN_0205F314 _0205F664: .word 0x00004041 thumb_func_start FUN_0205F668 @@ -201650,7 +201650,7 @@ FUN_0205F688: ; 0x0205F688 ldr r1, _0205F694 ; =0x0000403E bx r3 nop -_0205F690: .word FUN_0205F344 + 1 +_0205F690: .word FUN_0205F344 _0205F694: .word 0x0000403E thumb_func_start FUN_0205F698 @@ -201660,7 +201660,7 @@ FUN_0205F698: ; 0x0205F698 ldr r1, _0205F6A4 ; =0x0000403E bx r3 .balign 4 -_0205F6A0: .word FUN_0205F314 + 1 +_0205F6A0: .word FUN_0205F314 _0205F6A4: .word 0x0000403E thumb_func_start FUN_0205F6A8 @@ -201669,7 +201669,7 @@ FUN_0205F6A8: ; 0x0205F6A8 ldr r1, _0205F6B4 ; =0x00004049 bx r3 nop -_0205F6B0: .word FUN_0205F344 + 1 +_0205F6B0: .word FUN_0205F344 _0205F6B4: .word 0x00004049 thumb_func_start FUN_0205F6B8 @@ -201679,7 +201679,7 @@ FUN_0205F6B8: ; 0x0205F6B8 ldr r1, _0205F6C4 ; =0x00004049 bx r3 .balign 4 -_0205F6C0: .word FUN_0205F314 + 1 +_0205F6C0: .word FUN_0205F314 _0205F6C4: .word 0x00004049 thumb_func_start FUN_0205F6C8 @@ -201688,7 +201688,7 @@ FUN_0205F6C8: ; 0x0205F6C8 ldr r1, _0205F6D4 ; =0x00004040 bx r3 nop -_0205F6D0: .word FUN_0205F344 + 1 +_0205F6D0: .word FUN_0205F344 _0205F6D4: .word 0x00004040 thumb_func_start FUN_0205F6D8 @@ -201698,7 +201698,7 @@ FUN_0205F6D8: ; 0x0205F6D8 ldr r1, _0205F6E4 ; =0x00004040 bx r3 .balign 4 -_0205F6E0: .word FUN_0205F314 + 1 +_0205F6E0: .word FUN_0205F314 _0205F6E4: .word 0x00004040 thumb_func_start FUN_0205F6E8 @@ -201728,7 +201728,7 @@ FUN_0205F710: ; 0x0205F710 ldr r1, _0205F71C ; =0x00004042 bx r3 nop -_0205F718: .word FUN_0205F344 + 1 +_0205F718: .word FUN_0205F344 _0205F71C: .word 0x00004042 thumb_func_start FUN_0205F720 @@ -201737,7 +201737,7 @@ FUN_0205F720: ; 0x0205F720 ldr r1, _0205F72C ; =0x00004046 bx r3 nop -_0205F728: .word FUN_0205F344 + 1 +_0205F728: .word FUN_0205F344 _0205F72C: .word 0x00004046 thumb_func_start FUN_0205F730 @@ -201747,7 +201747,7 @@ FUN_0205F730: ; 0x0205F730 ldr r1, _0205F73C ; =0x00004046 bx r3 .balign 4 -_0205F738: .word FUN_0205F314 + 1 +_0205F738: .word FUN_0205F314 _0205F73C: .word 0x00004046 thumb_func_start FUN_0205F740 @@ -201756,7 +201756,7 @@ FUN_0205F740: ; 0x0205F740 ldr r1, _0205F74C ; =0x00004047 bx r3 nop -_0205F748: .word FUN_0205F344 + 1 +_0205F748: .word FUN_0205F344 _0205F74C: .word 0x00004047 thumb_func_start FUN_0205F750 @@ -201766,7 +201766,7 @@ FUN_0205F750: ; 0x0205F750 ldr r1, _0205F75C ; =0x00004047 bx r3 .balign 4 -_0205F758: .word FUN_0205F314 + 1 +_0205F758: .word FUN_0205F314 _0205F75C: .word 0x00004047 thumb_func_start FUN_0205F760 @@ -201775,7 +201775,7 @@ FUN_0205F760: ; 0x0205F760 ldr r1, _0205F76C ; =0x00004048 bx r3 nop -_0205F768: .word FUN_0205F344 + 1 +_0205F768: .word FUN_0205F344 _0205F76C: .word 0x00004048 thumb_func_start FUN_0205F770 @@ -201785,7 +201785,7 @@ FUN_0205F770: ; 0x0205F770 ldr r1, _0205F77C ; =0x00004048 bx r3 .balign 4 -_0205F778: .word FUN_0205F314 + 1 +_0205F778: .word FUN_0205F314 _0205F77C: .word 0x00004048 thumb_func_start FUN_0205F780 @@ -201794,7 +201794,7 @@ FUN_0205F780: ; 0x0205F780 ldr r1, _0205F78C ; =0x0000404A bx r3 nop -_0205F788: .word FUN_0205F344 + 1 +_0205F788: .word FUN_0205F344 _0205F78C: .word 0x0000404A thumb_func_start FUN_0205F790 @@ -201804,7 +201804,7 @@ FUN_0205F790: ; 0x0205F790 ldr r1, _0205F79C ; =0x0000404A bx r3 .balign 4 -_0205F798: .word FUN_0205F314 + 1 +_0205F798: .word FUN_0205F314 _0205F79C: .word 0x0000404A thumb_func_start FUN_0205F7A0 @@ -202423,7 +202423,7 @@ FUN_0205FC50: ; 0x0205FC50 bl FUN_0204640C pop {r3-r7, pc} nop -_0205FC98: .word FUN_0205FBE8 + 1 +_0205FC98: .word FUN_0205FBE8 thumb_func_start FUN_0205FC9C FUN_0205FC9C: ; 0x0205FC9C @@ -202533,7 +202533,7 @@ FUN_0205FD38: ; 0x0205FD38 bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_0205FD6C: .word FUN_0205FCE8 + 1 +_0205FD6C: .word FUN_0205FCE8 thumb_func_start FUN_0205FD70 FUN_0205FD70: ; 0x0205FD70 @@ -202610,7 +202610,7 @@ FUN_0205FDDC: ; 0x0205FDDC bl FUN_0204640C pop {r3-r7, pc} nop -_0205FE0C: .word FUN_0205FD70 + 1 +_0205FE0C: .word FUN_0205FD70 thumb_func_start FUN_0205FE10 FUN_0205FE10: ; 0x0205FE10 @@ -203061,7 +203061,7 @@ FUN_0206015C: ; 0x0206015C bl FUN_0204640C pop {r3-r5, pc} nop -_02060190: .word FUN_02060194 + 1 +_02060190: .word FUN_02060194 thumb_func_start FUN_02060194 FUN_02060194: ; 0x02060194 @@ -203841,7 +203841,7 @@ FUN_02060790: ; 0x02060790 bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_020607D0: .word FUN_020606D0 + 1 +_020607D0: .word FUN_020606D0 thumb_func_start FUN_020607D4 FUN_020607D4: ; 0x020607D4 @@ -204001,7 +204001,7 @@ _0206090A: .balign 4 _02060918: .word 0x000001C1 _0206091C: .word 0x000006DD -_02060920: .word FUN_020609A0 + 1 +_02060920: .word FUN_020609A0 thumb_func_start FUN_02060924 FUN_02060924: ; 0x02060924 @@ -204020,7 +204020,7 @@ FUN_02060924: ; 0x02060924 bl FUN_0204640C pop {r4-r6, pc} .balign 4 -_02060944: .word FUN_02060948 + 1 +_02060944: .word FUN_02060948 thumb_func_start FUN_02060948 FUN_02060948: ; 0x02060948 @@ -204935,7 +204935,7 @@ FUN_02061020: ; 0x02061020 ldr r3, _02061024 ; =FUN_02016A18 bx r3 .balign 4 -_02061024: .word FUN_02016A18 + 1 +_02061024: .word FUN_02016A18 thumb_func_start FUN_02061028 FUN_02061028: ; 0x02061028 @@ -205299,7 +205299,7 @@ FUN_020612EC: ; 0x020612EC mov r1, #0x14 bx r3 nop -_020612F4: .word FUN_020612AC + 1 +_020612F4: .word FUN_020612AC thumb_func_start FUN_020612F8 FUN_020612F8: ; 0x020612F8 @@ -205307,7 +205307,7 @@ FUN_020612F8: ; 0x020612F8 mov r1, #0x4 bx r3 nop -_02061300: .word FUN_020612AC + 1 +_02061300: .word FUN_020612AC thumb_func_start FUN_02061304 FUN_02061304: ; 0x02061304 @@ -209204,7 +209204,7 @@ _02063094: .balign 4 _02063160: .word 0x0000FFFF _02063164: .word 0x020F7C2C -_02063168: .word FUN_020631C8 + 1 +_02063168: .word FUN_020631C8 _0206316C: .word 0x000003D9 _02063170: .word 0x000003E2 _02063174: .word 0x0001020F @@ -209827,7 +209827,7 @@ FUN_02063650: ; 0x02063650 bl FUN_0204640C pop {r3-r5, pc} nop -_02063678: .word FUN_02063524 + 1 +_02063678: .word FUN_02063524 thumb_func_start FUN_0206367C FUN_0206367C: ; 0x0206367C @@ -210399,7 +210399,7 @@ FUN_02063AD0: ; 0x02063AD0 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063B00: .word FUN_02063B04 + 1 +_02063B00: .word FUN_02063B04 thumb_func_start FUN_02063B04 FUN_02063B04: ; 0x02063B04 @@ -210531,7 +210531,7 @@ FUN_02063BBC: ; 0x02063BBC bl FUN_02035D04 pop {r4-r6, pc} .balign 4 -_02063C10: .word FUN_02036AB8 + 1 +_02063C10: .word FUN_02036AB8 thumb_func_start FUN_02063C14 FUN_02063C14: ; 0x02063C14 @@ -210606,7 +210606,7 @@ FUN_02063C70: ; 0x02063C70 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063CA0: .word FUN_02063CA4 + 1 +_02063CA0: .word FUN_02063CA4 thumb_func_start FUN_02063CA4 FUN_02063CA4: ; 0x02063CA4 @@ -210692,7 +210692,7 @@ FUN_02063D18: ; 0x02063D18 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063D48: .word FUN_02063D4C + 1 +_02063D48: .word FUN_02063D4C thumb_func_start FUN_02063D4C FUN_02063D4C: ; 0x02063D4C @@ -210778,7 +210778,7 @@ FUN_02063DC0: ; 0x02063DC0 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063DF0: .word FUN_02063DF4 + 1 +_02063DF0: .word FUN_02063DF4 thumb_func_start FUN_02063DF4 FUN_02063DF4: ; 0x02063DF4 @@ -210864,7 +210864,7 @@ FUN_02063E68: ; 0x02063E68 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063E98: .word FUN_02063E9C + 1 +_02063E98: .word FUN_02063E9C thumb_func_start FUN_02063E9C FUN_02063E9C: ; 0x02063E9C @@ -210950,7 +210950,7 @@ FUN_02063F10: ; 0x02063F10 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063F40: .word FUN_02063F44 + 1 +_02063F40: .word FUN_02063F44 thumb_func_start FUN_02063F44 FUN_02063F44: ; 0x02063F44 @@ -211045,7 +211045,7 @@ FUN_02063FCC: ; 0x02063FCC strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063FFC: .word FUN_02064000 + 1 +_02063FFC: .word FUN_02064000 thumb_func_start FUN_02064000 FUN_02064000: ; 0x02064000 @@ -211120,7 +211120,7 @@ FUN_0206405C: ; 0x0206405C strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_0206408C: .word FUN_02064090 + 1 +_0206408C: .word FUN_02064090 thumb_func_start FUN_02064090 FUN_02064090: ; 0x02064090 @@ -211233,7 +211233,7 @@ FUN_02064134: ; 0x02064134 strh r0, [r4, #0x2a] pop {r4-r6, pc} nop -_02064170: .word FUN_02064174 + 1 +_02064170: .word FUN_02064174 thumb_func_start FUN_02064174 FUN_02064174: ; 0x02064174 @@ -211325,7 +211325,7 @@ FUN_020641F0: ; 0x020641F0 strh r0, [r4, #0x2a] pop {r4-r6, pc} nop -_0206422C: .word FUN_02064230 + 1 +_0206422C: .word FUN_02064230 thumb_func_start FUN_02064230 FUN_02064230: ; 0x02064230 @@ -211477,7 +211477,7 @@ FUN_02064324: ; 0x02064324 strh r0, [r4, #0x2a] pop {r3-r7, pc} .balign 4 -_0206435C: .word FUN_02064360 + 1 +_0206435C: .word FUN_02064360 thumb_func_start FUN_02064360 FUN_02064360: ; 0x02064360 @@ -211689,8 +211689,8 @@ FUN_020644E4: ; 0x020644E4 add sp, #0x24 pop {r4-r7, pc} .balign 4 -_02064518: .word FUN_0206479C + 1 -_0206451C: .word FUN_020647A0 + 1 +_02064518: .word FUN_0206479C +_0206451C: .word FUN_020647A0 thumb_func_start FUN_02064520 FUN_02064520: ; 0x02064520 @@ -211781,7 +211781,7 @@ _020645C6: add r0, r4, #0x0 pop {r4, pc} nop -_020645CC: .word FUN_020645D0 + 1 +_020645CC: .word FUN_020645D0 thumb_func_start FUN_020645D0 FUN_020645D0: ; 0x020645D0 @@ -211789,7 +211789,7 @@ FUN_020645D0: ; 0x020645D0 add r0, r1, #0x0 bx r3 nop -_020645D8: .word FUN_020646DC + 1 +_020645D8: .word FUN_020646DC thumb_func_start FUN_020645DC FUN_020645DC: ; 0x020645DC @@ -211819,7 +211819,7 @@ FUN_02064600: ; 0x02064600 ldr r0, [r1, #0x8] bx r3 .balign 4 -_02064608: .word FUN_02016A8C + 1 +_02064608: .word FUN_02016A8C thumb_func_start FUN_0206460C FUN_0206460C: ; 0x0206460C @@ -211848,7 +211848,7 @@ FUN_02064630: ; 0x02064630 ldr r1, [r1, #0xc] bx r3 nop -_0206463C: .word FUN_02016A8C + 1 +_0206463C: .word FUN_02016A8C thumb_func_start FUN_02064640 FUN_02064640: ; 0x02064640 @@ -211877,12 +211877,12 @@ FUN_02064640: ; 0x02064640 bl FUN_02064730 pop {r4, pc} nop -_02064680: .word FUN_0206478C + 1 -_02064684: .word FUN_02064798 + 1 -_02064688: .word FUN_02064790 + 1 -_0206468C: .word FUN_02064794 + 1 -_02064690: .word FUN_0206479C + 1 -_02064694: .word FUN_020647A0 + 1 +_02064680: .word FUN_0206478C +_02064684: .word FUN_02064798 +_02064688: .word FUN_02064790 +_0206468C: .word FUN_02064794 +_02064690: .word FUN_0206479C +_02064694: .word FUN_020647A0 thumb_func_start FUN_02064698 FUN_02064698: ; 0x02064698 @@ -212474,9 +212474,9 @@ _02064A54: _02064A58: .word 0x020F7D80 _02064A5C: .word 0x020F7D84 _02064A60: .word 0x020F7D74 -_02064A64: .word FUN_02064A70 + 1 +_02064A64: .word FUN_02064A70 _02064A68: .word 0x020F7D70 -_02064A6C: .word FUN_02064B70 + 1 +_02064A6C: .word FUN_02064B70 thumb_func_start FUN_02064A70 FUN_02064A70: ; 0x02064A70 @@ -213207,7 +213207,7 @@ FUN_02065070: ; 0x02065070 ldr r3, _02065074 ; =FUN_02016A18 bx r3 .balign 4 -_02065074: .word FUN_02016A18 + 1 +_02065074: .word FUN_02016A18 thumb_func_start FUN_02065078 FUN_02065078: ; 0x02065078 @@ -213594,7 +213594,7 @@ FUN_02065344: ; 0x02065344 bl FUN_0204640C pop {r3-r5, pc} nop -_0206536C: .word FUN_02065370 + 1 +_0206536C: .word FUN_02065370 thumb_func_start FUN_02065370 FUN_02065370: ; 0x02065370 @@ -213716,7 +213716,7 @@ FUN_020653EC: ; 0x020653EC str r0, [r4, #0x8] pop {r4-r6, pc} .balign 4 -_02065470: .word FUN_020654B0 + 1 +_02065470: .word FUN_020654B0 thumb_func_start FUN_02065474 FUN_02065474: ; 0x02065474 @@ -213746,7 +213746,7 @@ FUN_020654A4: ; 0x020654A4 add r0, r1, #0x0 bx r3 nop -_020654AC: .word FUN_02065474 + 1 +_020654AC: .word FUN_02065474 thumb_func_start FUN_020654B0 FUN_020654B0: ; 0x020654B0 @@ -213762,7 +213762,7 @@ FUN_020654B0: ; 0x020654B0 bl FUN_0201B6C4 pop {r3-r5, pc} .balign 4 -_020654CC: .word FUN_020654D0 + 1 +_020654CC: .word FUN_020654D0 thumb_func_start FUN_020654D0 FUN_020654D0: ; 0x020654D0 @@ -213824,10 +213824,10 @@ _02065542: pop {r3-r5, pc} .balign 4 _02065544: .word 0x021C48B8 -_02065548: .word FUN_02065658 + 1 -_0206554C: .word FUN_020654A4 + 1 +_02065548: .word FUN_02065658 +_0206554C: .word FUN_020654A4 _02065550: .word 0x000005DC -_02065554: .word FUN_02065558 + 1 +_02065554: .word FUN_02065558 thumb_func_start FUN_02065558 FUN_02065558: ; 0x02065558 @@ -213871,7 +213871,7 @@ _02065592: _020655A8: pop {r3-r5, pc} nop -_020655AC: .word FUN_020655B0 + 1 +_020655AC: .word FUN_020655B0 thumb_func_start FUN_020655B0 FUN_020655B0: ; 0x020655B0 @@ -213943,13 +213943,13 @@ _02065634: pop {r4-r6, pc} nop _02065638: .word 0x021C48B8 -_0206563C: .word FUN_02065674 + 1 -_02065640: .word FUN_020654B0 + 1 +_0206563C: .word FUN_02065674 +_02065640: .word FUN_020654B0 _02065644: .word 0x000005DC -_02065648: .word FUN_02065710 + 1 -_0206564C: .word FUN_02065894 + 1 -_02065650: .word FUN_02065938 + 1 -_02065654: .word FUN_02065690 + 1 +_02065648: .word FUN_02065710 +_0206564C: .word FUN_02065894 +_02065650: .word FUN_02065938 +_02065654: .word FUN_02065690 thumb_func_start FUN_02065658 FUN_02065658: ; 0x02065658 @@ -214043,7 +214043,7 @@ _02065704: _0206570A: pop {r3-r5, pc} .balign 4 -_0206570C: .word FUN_020654D0 + 1 +_0206570C: .word FUN_020654D0 thumb_func_start FUN_02065710 FUN_02065710: ; 0x02065710 @@ -214153,10 +214153,10 @@ _020657E0: add sp, #0x4 pop {r3-r4, pc} .balign 4 -_020657E4: .word FUN_02065674 + 1 -_020657E8: .word FUN_020654B0 + 1 -_020657EC: .word FUN_020659B8 + 1 -_020657F0: .word FUN_020657F4 + 1 +_020657E4: .word FUN_02065674 +_020657E8: .word FUN_020654B0 +_020657EC: .word FUN_020659B8 +_020657F0: .word FUN_020657F4 thumb_func_start FUN_020657F4 FUN_020657F4: ; 0x020657F4 @@ -214235,8 +214235,8 @@ _02065884: pop {r3-r4, pc} .balign 4 _02065888: .word 0x021C48B8 -_0206588C: .word FUN_02065674 + 1 -_02065890: .word FUN_020654B0 + 1 +_0206588C: .word FUN_02065674 +_02065890: .word FUN_020654B0 thumb_func_start FUN_02065894 FUN_02065894: ; 0x02065894 @@ -214320,7 +214320,7 @@ _0206592C: _02065932: pop {r3-r5, pc} .balign 4 -_02065934: .word FUN_020654B0 + 1 +_02065934: .word FUN_020654B0 thumb_func_start FUN_02065938 FUN_02065938: ; 0x02065938 @@ -214382,8 +214382,8 @@ _020659A6: pop {r3-r4, pc} nop _020659AC: .word 0x021C48B8 -_020659B0: .word FUN_02065674 + 1 -_020659B4: .word FUN_020654B0 + 1 +_020659B0: .word FUN_02065674 +_020659B4: .word FUN_020654B0 thumb_func_start FUN_020659B8 FUN_020659B8: ; 0x020659B8 @@ -214543,8 +214543,8 @@ _02065AE6: pop {r4-r6, pc} .balign 4 _02065AE8: .word 0x0000013B -_02065AEC: .word FUN_020657F4 + 1 -_02065AF0: .word FUN_020654B0 + 1 +_02065AEC: .word FUN_020657F4 +_02065AF0: .word FUN_020654B0 thumb_func_start FUN_02065AF4 FUN_02065AF4: ; 0x02065AF4 @@ -214782,8 +214782,8 @@ _02065CD8: .word 0x020F7E7C _02065CDC: .word 0x020F7E84 _02065CE0: .word 0x0000FFFF _02065CE4: .word 0x020F7E8C -_02065CE8: .word FUN_02065D4C + 1 -_02065CEC: .word FUN_02065CFC + 1 +_02065CE8: .word FUN_02065D4C +_02065CEC: .word FUN_02065CFC _02065CF0: .word 0x0000013B _02065CF4: .word 0x000003D9 _02065CF8: .word 0x0001020F @@ -215016,7 +215016,7 @@ _02065EC8: .word 0x020F7E74 _02065ECC: .word 0x020F7EAC _02065ED0: .word 0x020F7E8C _02065ED4: .word 0xFFFFFE7F -_02065ED8: .word FUN_02065EE4 + 1 +_02065ED8: .word FUN_02065EE4 _02065EDC: .word 0x000003D9 _02065EE0: .word 0x0000013B @@ -216216,7 +216216,7 @@ FUN_02066818: ; 0x02066818 bl FUN_0204640C pop {r4, pc} nop -_0206683C: .word FUN_020667D4 + 1 +_0206683C: .word FUN_020667D4 thumb_func_start FUN_02066840 FUN_02066840: ; 0x02066840 @@ -220295,7 +220295,7 @@ FUN_020686F8: ; 0x020686F8 ldr r3, _020686FC ; =FUN_02068700 bx r3 .balign 4 -_020686FC: .word FUN_02068700 + 1 +_020686FC: .word FUN_02068700 thumb_func_start FUN_02068700 FUN_02068700: ; 0x02068700 @@ -220400,7 +220400,7 @@ FUN_020687C0: ; 0x020687C0 ldr r3, _020687C4 ; =FUN_020687C8 bx r3 .balign 4 -_020687C4: .word FUN_020687C8 + 1 +_020687C4: .word FUN_020687C8 thumb_func_start FUN_020687C8 FUN_020687C8: ; 0x020687C8 @@ -220476,7 +220476,7 @@ FUN_02068854: ; 0x02068854 ldr r3, _02068858 ; =FUN_0206885C bx r3 .balign 4 -_02068858: .word FUN_0206885C + 1 +_02068858: .word FUN_0206885C thumb_func_start FUN_0206885C FUN_0206885C: ; 0x0206885C @@ -220685,7 +220685,7 @@ FUN_020689E0: ; 0x020689E0 ldr r3, _020689E4 ; =FUN_020689E8 bx r3 .balign 4 -_020689E4: .word FUN_020689E8 + 1 +_020689E4: .word FUN_020689E8 thumb_func_start FUN_020689E8 FUN_020689E8: ; 0x020689E8 @@ -220774,7 +220774,7 @@ FUN_02068A80: ; 0x02068A80 ldr r3, _02068A84 ; =FUN_02068A88 bx r3 .balign 4 -_02068A84: .word FUN_02068A88 + 1 +_02068A84: .word FUN_02068A88 thumb_func_start FUN_02068A88 FUN_02068A88: ; 0x02068A88 @@ -220895,7 +220895,7 @@ FUN_02068B68: ; 0x02068B68 ldr r3, _02068B6C ; =FUN_02068B70 bx r3 .balign 4 -_02068B6C: .word FUN_02068B70 + 1 +_02068B6C: .word FUN_02068B70 thumb_func_start FUN_02068B70 FUN_02068B70: ; 0x02068B70 @@ -221273,7 +221273,7 @@ FUN_02068E14: ; 0x02068E14 ldr r3, _02068E18 ; =FUN_02068E1C bx r3 .balign 4 -_02068E18: .word FUN_02068E1C + 1 +_02068E18: .word FUN_02068E1C thumb_func_start FUN_02068E1C FUN_02068E1C: ; 0x02068E1C @@ -221670,7 +221670,7 @@ FUN_020690CC: ; 0x020690CC ldr r3, _020690D0 ; =FUN_020690D4 bx r3 .balign 4 -_020690D0: .word FUN_020690D4 + 1 +_020690D0: .word FUN_020690D4 thumb_func_start FUN_020690D4 FUN_020690D4: ; 0x020690D4 @@ -222589,7 +222589,7 @@ FUN_020697CC: ; 0x020697CC ldr r3, _020697D0 ; =FUN_020697D4 bx r3 .balign 4 -_020697D0: .word FUN_020697D4 + 1 +_020697D0: .word FUN_020697D4 thumb_func_start FUN_020697D4 FUN_020697D4: ; 0x020697D4 @@ -222727,7 +222727,7 @@ FUN_020698E0: ; 0x020698E0 ldr r3, _020698E4 ; =FUN_020698E8 bx r3 .balign 4 -_020698E4: .word FUN_020698E8 + 1 +_020698E4: .word FUN_020698E8 thumb_func_start FUN_020698E8 FUN_020698E8: ; 0x020698E8 @@ -223107,7 +223107,7 @@ FUN_02069BC8: ; 0x02069BC8 ldr r3, _02069BCC ; =FUN_02069BD0 bx r3 .balign 4 -_02069BCC: .word FUN_02069BD0 + 1 +_02069BCC: .word FUN_02069BD0 thumb_func_start FUN_02069BD0 FUN_02069BD0: ; 0x02069BD0 @@ -223455,7 +223455,7 @@ FUN_02069E74: ; 0x02069E74 ldr r3, _02069E78 ; =FUN_02069E7C bx r3 .balign 4 -_02069E78: .word FUN_02069E7C + 1 +_02069E78: .word FUN_02069E7C thumb_func_start FUN_02069E7C FUN_02069E7C: ; 0x02069E7C @@ -223477,7 +223477,7 @@ FUN_02069E94: ; 0x02069E94 ldr r3, _02069E98 ; =FUN_02069E9C bx r3 .balign 4 -_02069E98: .word FUN_02069E9C + 1 +_02069E98: .word FUN_02069E9C thumb_func_start FUN_02069E9C FUN_02069E9C: ; 0x02069E9C @@ -223508,7 +223508,7 @@ FUN_02069EC4: ; 0x02069EC4 ldr r3, _02069EC8 ; =FUN_02069ECC bx r3 .balign 4 -_02069EC8: .word FUN_02069ECC + 1 +_02069EC8: .word FUN_02069ECC thumb_func_start FUN_02069ECC FUN_02069ECC: ; 0x02069ECC @@ -223839,7 +223839,7 @@ FUN_0206A13C: ; 0x0206A13C ldr r3, _0206A140 ; =FUN_0206A144 bx r3 .balign 4 -_0206A140: .word FUN_0206A144 + 1 +_0206A140: .word FUN_0206A144 thumb_func_start FUN_0206A144 FUN_0206A144: ; 0x0206A144 @@ -223918,7 +223918,7 @@ FUN_0206A1C4: ; 0x0206A1C4 ldr r3, _0206A1C8 ; =FUN_0206A1CC bx r3 .balign 4 -_0206A1C8: .word FUN_0206A1CC + 1 +_0206A1C8: .word FUN_0206A1CC thumb_func_start FUN_0206A1CC FUN_0206A1CC: ; 0x0206A1CC @@ -224122,7 +224122,7 @@ FUN_0206A370: ; 0x0206A370 mov r1, #0x2 bx r3 nop -_0206A37C: .word FUN_020064F0 + 1 +_0206A37C: .word FUN_020064F0 thumb_func_start FUN_0206A380 FUN_0206A380: ; 0x0206A380 @@ -224143,7 +224143,7 @@ FUN_0206A394: ; 0x0206A394 mov r1, #0x22 bx r3 nop -_0206A3A0: .word FUN_020064F0 + 1 +_0206A3A0: .word FUN_020064F0 thumb_func_start FUN_0206A3A4 FUN_0206A3A4: ; 0x0206A3A4 @@ -224176,7 +224176,7 @@ FUN_0206A3D0: ; 0x0206A3D0 ldr r3, _0206A3D4 ; =FUN_0206A3A4 bx r3 .balign 4 -_0206A3D4: .word FUN_0206A3A4 + 1 +_0206A3D4: .word FUN_0206A3A4 thumb_func_start FUN_0206A3D8 FUN_0206A3D8: ; 0x0206A3D8 @@ -225405,7 +225405,7 @@ FUN_0206ABB4: ; 0x0206ABB4 mov r1, #0x9 bx r3 nop -_0206ABC0: .word FUN_020064F0 + 1 +_0206ABC0: .word FUN_020064F0 thumb_func_start FUN_0206ABC4 FUN_0206ABC4: ; 0x0206ABC4 @@ -225693,7 +225693,7 @@ FUN_0206ADE0: ; 0x0206ADE0 mov r1, #0x39 bx r3 nop -_0206ADEC: .word FUN_020064F0 + 1 +_0206ADEC: .word FUN_020064F0 thumb_func_start FUN_0206ADF0 FUN_0206ADF0: ; 0x0206ADF0 @@ -225703,7 +225703,7 @@ FUN_0206ADF0: ; 0x0206ADF0 mov r1, #0x3a bx r3 nop -_0206ADFC: .word FUN_020064F0 + 1 +_0206ADFC: .word FUN_020064F0 thumb_func_start FUN_0206AE00 FUN_0206AE00: ; 0x0206AE00 @@ -227211,7 +227211,7 @@ FUN_0206B8C0: ; 0x0206B8C0 mov r1, #0x6 bx r3 nop -_0206B8C8: .word FUN_0206B8CC + 1 +_0206B8C8: .word FUN_0206B8CC thumb_func_start FUN_0206B8CC FUN_0206B8CC: ; 0x0206B8CC @@ -227548,7 +227548,7 @@ FUN_0206BB1C: ; 0x0206BB1C mov r1, #0x2 bx r3 nop -_0206BB24: .word FUN_02022610 + 1 +_0206BB24: .word FUN_02022610 thumb_func_start FUN_0206BB28 FUN_0206BB28: ; 0x0206BB28 @@ -228189,8 +228189,8 @@ FUN_0206BF90: ; 0x0206BF90 pop {r4-r6, pc} nop _0206BFE4: .word 0x020F828C -_0206BFE8: .word FUN_0206C550 + 1 -_0206BFEC: .word FUN_0206C5DC + 1 +_0206BFE8: .word FUN_0206C550 +_0206BFEC: .word FUN_0206C5DC thumb_func_start FUN_0206BFF0 FUN_0206BFF0: ; 0x0206BFF0 @@ -228200,7 +228200,7 @@ FUN_0206BFF0: ; 0x0206BFF0 mov r1, #0xc bx r3 nop -_0206BFFC: .word FUN_0202D8D0 + 1 +_0206BFFC: .word FUN_0202D8D0 _0206C000: .word 0x020F828C thumb_func_start FUN_0206C004 @@ -228213,14 +228213,14 @@ FUN_0206C008: ; 0x0206C008 ldr r3, _0206C00C ; =FUN_02023924 bx r3 .balign 4 -_0206C00C: .word FUN_02023924 + 1 +_0206C00C: .word FUN_02023924 thumb_func_start FUN_0206C010 FUN_0206C010: ; 0x0206C010 ldr r3, _0206C014 ; =FUN_0206B8A4 bx r3 .balign 4 -_0206C014: .word FUN_0206B8A4 + 1 +_0206C014: .word FUN_0206B8A4 thumb_func_start FUN_0206C018 FUN_0206C018: ; 0x0206C018 @@ -229400,7 +229400,7 @@ FUN_0206C700: ; 0x0206C700 pop {r4-r7, pc} nop _0206C8E4: .word 0x0000FFFF -_0206C8E8: .word FUN_0206C8EC + 1 +_0206C8E8: .word FUN_0206C8EC thumb_func_start FUN_0206C8EC FUN_0206C8EC: ; 0x0206C8EC @@ -231679,7 +231679,7 @@ _0206DC34: .word 0x04000008 _0206DC38: .word 0x020F8338 _0206DC3C: .word 0xFFFF1FFF _0206DC40: .word 0x04001000 -_0206DC44: .word FUN_0206DD08 + 1 +_0206DC44: .word FUN_0206DD08 thumb_func_start FUN_0206DC48 FUN_0206DC48: ; 0x0206DC48 @@ -231843,7 +231843,7 @@ FUN_0206DD6C: ; 0x0206DD6C add sp, #0xc pop {r4-r5, pc} .balign 4 -_0206DDB0: .word FUN_0206DDB4 + 1 +_0206DDB0: .word FUN_0206DDB4 thumb_func_start FUN_0206DDB4 FUN_0206DDB4: ; 0x0206DDB4 @@ -231960,7 +231960,7 @@ FUN_0206DE78: ; 0x0206DE78 add sp, #0x8 pop {r3, pc} .balign 4 -_0206DE90: .word FUN_0206DE94 + 1 +_0206DE90: .word FUN_0206DE94 thumb_func_start FUN_0206DE94 FUN_0206DE94: ; 0x0206DE94 @@ -232132,8 +232132,8 @@ _0206DFEC: add sp, #0x8 pop {r4, pc} nop -_0206DFF4: .word FUN_0206DF7C + 1 -_0206DFF8: .word FUN_0206DF98 + 1 +_0206DFF4: .word FUN_0206DF7C +_0206DFF8: .word FUN_0206DF98 thumb_func_start FUN_0206DFFC FUN_0206DFFC: ; 0x0206DFFC @@ -232239,7 +232239,7 @@ FUN_0206E0AC: ; 0x0206E0AC bl FUN_02013440 pop {r4, pc} .balign 4 -_0206E0C4: .word FUN_0206E03C + 1 +_0206E0C4: .word FUN_0206E03C thumb_func_start FUN_0206E0C8 FUN_0206E0C8: ; 0x0206E0C8 @@ -232434,14 +232434,14 @@ FUN_0206E21C: ; 0x0206E21C ldr r3, _0206E220 ; =FUN_0200C358 bx r3 .balign 4 -_0206E220: .word FUN_0200C358 + 1 +_0206E220: .word FUN_0200C358 thumb_func_start FUN_0206E224 FUN_0206E224: ; 0x0206E224 ldr r3, _0206E228 ; =FUN_0200C368 bx r3 .balign 4 -_0206E228: .word FUN_0200C368 + 1 +_0206E228: .word FUN_0200C368 thumb_func_start FUN_0206E22C FUN_0206E22C: ; 0x0206E22C @@ -232485,7 +232485,7 @@ FUN_0206E270: ; 0x0206E270 ldr r3, _0206E274 ; =FUN_0200C3DC bx r3 .balign 4 -_0206E274: .word FUN_0200C3DC + 1 +_0206E274: .word FUN_0200C3DC thumb_func_start FUN_0206E278 FUN_0206E278: ; 0x0206E278 @@ -232552,14 +232552,14 @@ FUN_0206E2E0: ; 0x0206E2E0 ldr r3, _0206E2E4 ; =FUN_0200C358 bx r3 .balign 4 -_0206E2E4: .word FUN_0200C358 + 1 +_0206E2E4: .word FUN_0200C358 thumb_func_start FUN_0206E2E8 FUN_0206E2E8: ; 0x0206E2E8 ldr r3, _0206E2EC ; =FUN_0200C3DC bx r3 .balign 4 -_0206E2EC: .word FUN_0200C3DC + 1 +_0206E2EC: .word FUN_0200C3DC thumb_func_start FUN_0206E2F0 FUN_0206E2F0: ; 0x0206E2F0 @@ -234668,7 +234668,7 @@ FUN_0206F158: ; 0x0206F158 mov r1, #0x3 bx r3 nop -_0206F160: .word FUN_02022610 + 1 +_0206F160: .word FUN_02022610 thumb_func_start FUN_0206F164 FUN_0206F164: ; 0x0206F164 @@ -235032,7 +235032,7 @@ FUN_0206F3B8: ; 0x0206F3B8 bl FUN_0204640C pop {r4, pc} nop -_0206F3D4: .word FUN_0206F1F0 + 1 +_0206F3D4: .word FUN_0206F1F0 thumb_func_start FUN_0206F3D8 FUN_0206F3D8: ; 0x0206F3D8 @@ -235050,7 +235050,7 @@ FUN_0206F3D8: ; 0x0206F3D8 bl FUN_0204640C pop {r3-r5, pc} nop -_0206F3F8: .word FUN_0206F1F0 + 1 +_0206F3F8: .word FUN_0206F1F0 thumb_func_start FUN_0206F3FC FUN_0206F3FC: ; 0x0206F3FC @@ -235241,7 +235241,7 @@ _0206F598: .word 0x04001000 _0206F59C: .word 0x00000B25 _0206F5A0: .word 0x000005A4 _0206F5A4: .word 0x000005C8 -_0206F5A8: .word FUN_0206FB58 + 1 +_0206F5A8: .word FUN_0206FB58 thumb_func_start FUN_0206F5AC FUN_0206F5AC: ; 0x0206F5AC @@ -240428,7 +240428,7 @@ _02071F18: .balign 4 _02071F1C: .word 0x000005A4 _02071F20: .word 0x00000B25 -_02071F24: .word FUN_02075CE4 + 1 +_02071F24: .word FUN_02075CE4 thumb_func_start FUN_02071F28 FUN_02071F28: ; 0x02071F28 @@ -241070,9 +241070,9 @@ _02072470: .word 0x00000B25 _02072474: .word 0x00000712 _02072478: .word 0x000005A4 _0207247C: .word 0x000005C8 -_02072480: .word FUN_02074428 + 1 +_02072480: .word FUN_02074428 _02072484: .word 0x00000B18 -_02072488: .word FUN_02074454 + 1 +_02072488: .word FUN_02074454 thumb_func_start FUN_0207248C FUN_0207248C: ; 0x0207248C @@ -242791,7 +242791,7 @@ FUN_0207322C: ; 0x0207322C pop {r3-r4, pc} nop _0207326C: .word 0x000005A4 -_02073270: .word FUN_0207327C + 1 +_02073270: .word FUN_0207327C _02073274: .word 0x000006A4 _02073278: .word 0x00000B24 @@ -243850,7 +243850,7 @@ FUN_02073B0C: ; 0x02073B0C bx r3 .balign 4 _02073B34: .word 0x0000071E -_02073B38: .word FUN_0200C6E4 + 1 +_02073B38: .word FUN_0200C6E4 thumb_func_start FUN_02073B3C FUN_02073B3C: ; 0x02073B3C @@ -244666,9 +244666,9 @@ FUN_020741A4: ; 0x020741A4 nop _020741EC: .word 0x000006FC _020741F0: .word 0x000006F8 -_020741F4: .word FUN_02074200 + 1 +_020741F4: .word FUN_02074200 _020741F8: .word 0x00000B18 -_020741FC: .word FUN_02074278 + 1 +_020741FC: .word FUN_02074278 thumb_func_start FUN_02074200 FUN_02074200: ; 0x02074200 @@ -244746,9 +244746,9 @@ FUN_02074278: ; 0x02074278 mov r0, #0x14 pop {r4, pc} nop -_0207429C: .word FUN_020742A8 + 1 +_0207429C: .word FUN_020742A8 _020742A0: .word 0x00000B18 -_020742A4: .word FUN_02074340 + 1 +_020742A4: .word FUN_02074340 thumb_func_start FUN_020742A8 FUN_020742A8: ; 0x020742A8 @@ -244925,9 +244925,9 @@ _0207440C: .word 0x00000B25 _02074410: .word 0x00000712 _02074414: .word 0x000006F8 _02074418: .word 0x000005A4 -_0207441C: .word FUN_02074428 + 1 +_0207441C: .word FUN_02074428 _02074420: .word 0x00000B18 -_02074424: .word FUN_02074454 + 1 +_02074424: .word FUN_02074454 thumb_func_start FUN_02074428 FUN_02074428: ; 0x02074428 @@ -246681,7 +246681,7 @@ FUN_02075244: ; 0x02075244 bx r3 nop _02075254: .word 0x000005A4 -_02075258: .word FUN_020751A0 + 1 +_02075258: .word FUN_020751A0 thumb_func_start FUN_0207525C FUN_0207525C: ; 0x0207525C @@ -246694,7 +246694,7 @@ FUN_0207525C: ; 0x0207525C bx r3 nop _0207526C: .word 0x000005A4 -_02075270: .word FUN_020751A0 + 1 +_02075270: .word FUN_020751A0 thumb_func_start FUN_02075274 FUN_02075274: ; 0x02075274 @@ -246707,7 +246707,7 @@ FUN_02075274: ; 0x02075274 bx r3 nop _02075284: .word 0x000005A4 -_02075288: .word FUN_020751A0 + 1 +_02075288: .word FUN_020751A0 thumb_func_start FUN_0207528C FUN_0207528C: ; 0x0207528C @@ -246720,7 +246720,7 @@ FUN_0207528C: ; 0x0207528C bx r3 nop _0207529C: .word 0x000005A4 -_020752A0: .word FUN_020751A0 + 1 +_020752A0: .word FUN_020751A0 thumb_func_start FUN_020752A4 FUN_020752A4: ; 0x020752A4 @@ -246733,7 +246733,7 @@ FUN_020752A4: ; 0x020752A4 bx r3 nop _020752B4: .word 0x000005A4 -_020752B8: .word FUN_020751A0 + 1 +_020752B8: .word FUN_020751A0 thumb_func_start FUN_020752BC FUN_020752BC: ; 0x020752BC @@ -246746,7 +246746,7 @@ FUN_020752BC: ; 0x020752BC bx r3 nop _020752CC: .word 0x000005A4 -_020752D0: .word FUN_020751A0 + 1 +_020752D0: .word FUN_020751A0 thumb_func_start FUN_020752D4 FUN_020752D4: ; 0x020752D4 @@ -246759,7 +246759,7 @@ FUN_020752D4: ; 0x020752D4 bx r3 nop _020752E4: .word 0x000005A4 -_020752E8: .word FUN_020751A0 + 1 +_020752E8: .word FUN_020751A0 thumb_func_start FUN_020752EC FUN_020752EC: ; 0x020752EC @@ -246772,7 +246772,7 @@ FUN_020752EC: ; 0x020752EC bx r3 nop _020752FC: .word 0x000005A4 -_02075300: .word FUN_020751A0 + 1 +_02075300: .word FUN_020751A0 thumb_func_start FUN_02075304 FUN_02075304: ; 0x02075304 @@ -246785,7 +246785,7 @@ FUN_02075304: ; 0x02075304 bx r3 nop _02075314: .word 0x000005A4 -_02075318: .word FUN_020751A0 + 1 +_02075318: .word FUN_020751A0 thumb_func_start FUN_0207531C FUN_0207531C: ; 0x0207531C @@ -246798,7 +246798,7 @@ FUN_0207531C: ; 0x0207531C bx r3 nop _0207532C: .word 0x000005A4 -_02075330: .word FUN_020751A0 + 1 +_02075330: .word FUN_020751A0 thumb_func_start FUN_02075334 FUN_02075334: ; 0x02075334 @@ -246811,7 +246811,7 @@ FUN_02075334: ; 0x02075334 bx r3 nop _02075344: .word 0x000005A4 -_02075348: .word FUN_020751A0 + 1 +_02075348: .word FUN_020751A0 thumb_func_start FUN_0207534C FUN_0207534C: ; 0x0207534C @@ -246824,7 +246824,7 @@ FUN_0207534C: ; 0x0207534C bx r3 nop _0207535C: .word 0x000005A4 -_02075360: .word FUN_020751A0 + 1 +_02075360: .word FUN_020751A0 thumb_func_start FUN_02075364 FUN_02075364: ; 0x02075364 @@ -246837,7 +246837,7 @@ FUN_02075364: ; 0x02075364 bx r3 nop _02075374: .word 0x000005A4 -_02075378: .word FUN_020751A0 + 1 +_02075378: .word FUN_020751A0 thumb_func_start FUN_0207537C FUN_0207537C: ; 0x0207537C @@ -247949,11 +247949,11 @@ _02075CCA: pop {r4, pc} .balign 4 _02075CCC: .word 0x000005A4 -_02075CD0: .word FUN_0207640C + 1 +_02075CD0: .word FUN_0207640C _02075CD4: .word 0x00000B14 -_02075CD8: .word FUN_02075D20 + 1 -_02075CDC: .word FUN_02075DC0 + 1 -_02075CE0: .word FUN_02075F60 + 1 +_02075CD8: .word FUN_02075D20 +_02075CDC: .word FUN_02075DC0 +_02075CE0: .word FUN_02075F60 thumb_func_start FUN_02075CE4 FUN_02075CE4: ; 0x02075CE4 @@ -248053,7 +248053,7 @@ _02075DA8: .word 0x000005A4 _02075DAC: .word 0x00000B25 _02075DB0: .word 0x0000070E _02075DB4: .word 0x000005EC -_02075DB8: .word FUN_02075CE4 + 1 +_02075DB8: .word FUN_02075CE4 _02075DBC: .word 0x00000B14 thumb_func_start FUN_02075DC0 @@ -248239,7 +248239,7 @@ _02075F34: _02075F4C: .word 0x000005A4 _02075F50: .word 0x00000B25 _02075F54: .word 0x0000070E -_02075F58: .word FUN_02075CE4 + 1 +_02075F58: .word FUN_02075CE4 _02075F5C: .word 0x00000B14 thumb_func_start FUN_02075F60 @@ -248380,7 +248380,7 @@ _02076084: .word 0x00000B25 _02076088: .word 0x00000706 _0207608C: .word 0x0000070E _02076090: .word 0xFFFFF000 -_02076094: .word FUN_020760A0 + 1 +_02076094: .word FUN_020760A0 _02076098: .word 0x00000B14 _0207609C: .word 0x000005EC @@ -248457,7 +248457,7 @@ _0207612C: _02076130: .word 0x000005A4 _02076134: .word 0x00000B25 _02076138: .word 0x00000706 -_0207613C: .word FUN_02075CE4 + 1 +_0207613C: .word FUN_02075CE4 _02076140: .word 0x00000B14 thumb_func_start FUN_02076144 @@ -248783,7 +248783,7 @@ _020763D6: _020763DC: .word 0x00000B22 _020763E0: .word 0x00000B25 _020763E4: .word 0x0000069C -_020763E8: .word FUN_02075CE4 + 1 +_020763E8: .word FUN_02075CE4 _020763EC: .word 0x00000B14 _020763F0: .word 0x000005A4 _020763F4: .word 0x0000070E @@ -248994,9 +248994,9 @@ _020765D0: .word 0x00000706 _020765D4: .word 0x00000708 _020765D8: .word 0x0000070E _020765DC: .word 0xFFFFF000 -_020765E0: .word FUN_020760A0 + 1 +_020765E0: .word FUN_020760A0 _020765E4: .word 0x00000B14 -_020765E8: .word FUN_020765EC + 1 +_020765E8: .word FUN_020765EC thumb_func_start FUN_020765EC FUN_020765EC: ; 0x020765EC @@ -249308,9 +249308,9 @@ _02076874: .word 0x000005DC _02076878: .word 0x000005A4 _0207687C: .word 0x0000FFFE _02076880: .word 0x0000069C -_02076884: .word FUN_02076950 + 1 +_02076884: .word FUN_02076950 _02076888: .word 0x00000B18 -_0207688C: .word FUN_020769A4 + 1 +_0207688C: .word FUN_020769A4 thumb_func_start FUN_02076890 FUN_02076890: ; 0x02076890 @@ -249390,7 +249390,7 @@ _020768E6: mov r0, #0x14 pop {r3-r5, pc} nop -_0207693C: .word FUN_020765EC + 1 +_0207693C: .word FUN_020765EC _02076940: .word 0x00000B14 _02076944: .word 0x000005A4 _02076948: .word 0x0000069C @@ -249470,9 +249470,9 @@ FUN_020769A4: ; 0x020769A4 pop {r3-r5, pc} .balign 4 _020769EC: .word 0x0000069C -_020769F0: .word FUN_020769FC + 1 +_020769F0: .word FUN_020769FC _020769F4: .word 0x00000B18 -_020769F8: .word FUN_02076A48 + 1 +_020769F8: .word FUN_02076A48 thumb_func_start FUN_020769FC FUN_020769FC: ; 0x020769FC @@ -249545,9 +249545,9 @@ FUN_02076A48: ; 0x02076A48 pop {r3-r5, pc} .balign 4 _02076A90: .word 0x0000069C -_02076A94: .word FUN_02076950 + 1 +_02076A94: .word FUN_02076950 _02076A98: .word 0x00000B18 -_02076A9C: .word FUN_020769A4 + 1 +_02076A9C: .word FUN_020769A4 thumb_func_start FUN_02076AA0 FUN_02076AA0: ; 0x02076AA0 @@ -249783,9 +249783,9 @@ _02076C78: .word 0x000005A4 _02076C7C: .word 0x00000B25 _02076C80: .word 0x0000069C _02076C84: .word 0x00000B22 -_02076C88: .word FUN_02076DD4 + 1 +_02076C88: .word FUN_02076DD4 _02076C8C: .word 0x00000B18 -_02076C90: .word FUN_02076E28 + 1 +_02076C90: .word FUN_02076E28 thumb_func_start FUN_02076C94 FUN_02076C94: ; 0x02076C94 @@ -250004,9 +250004,9 @@ FUN_02076E28: ; 0x02076E28 pop {r3-r5, pc} .balign 4 _02076E70: .word 0x0000069C -_02076E74: .word FUN_02076E80 + 1 +_02076E74: .word FUN_02076E80 _02076E78: .word 0x00000B18 -_02076E7C: .word FUN_02076ED4 + 1 +_02076E7C: .word FUN_02076ED4 thumb_func_start FUN_02076E80 FUN_02076E80: ; 0x02076E80 @@ -250082,9 +250082,9 @@ FUN_02076ED4: ; 0x02076ED4 pop {r3-r5, pc} .balign 4 _02076F1C: .word 0x0000069C -_02076F20: .word FUN_02076DD4 + 1 +_02076F20: .word FUN_02076DD4 _02076F24: .word 0x00000B18 -_02076F28: .word FUN_02076E28 + 1 +_02076F28: .word FUN_02076E28 thumb_func_start FUN_02076F2C FUN_02076F2C: ; 0x02076F2C @@ -250722,7 +250722,7 @@ _02077490: nop _02077498: .word 0xFFFFE0FF _0207749C: .word 0x04001000 -_020774A0: .word FUN_02077AE8 + 1 +_020774A0: .word FUN_02077AE8 _020774A4: .word 0x000004C4 _020774A8: .word 0x021C4918 _020774AC: .word 0x000004B8 @@ -252708,7 +252708,7 @@ _020784FA: pop {r4-r7, pc} nop _02078528: .word 0x020FA1D4 -_0207852C: .word FUN_02078328 + 1 +_0207852C: .word FUN_02078328 thumb_func_start FUN_02078530 FUN_02078530: ; 0x02078530 @@ -253140,7 +253140,7 @@ _0207887E: nop _02078884: .word 0x020F9D2C _02078888: .word 0x000E0F00 -_0207888C: .word FUN_02078628 + 1 +_0207888C: .word FUN_02078628 _02078890: .word 0x0000069B thumb_func_start FUN_02078894 @@ -255843,7 +255843,7 @@ _02079DA0: .word 0xFFFFE0FF _02079DA4: .word 0x04001000 _02079DA8: .word 0xFFFF1FFF _02079DAC: .word 0x0000069C -_02079DB0: .word FUN_02079F24 + 1 +_02079DB0: .word FUN_02079F24 thumb_func_start FUN_02079DB4 FUN_02079DB4: ; 0x02079DB4 @@ -261582,7 +261582,7 @@ FUN_0207CBC0: ; 0x0207CBC0 .balign 4 _0207CBDC: .word 0x0000068D _0207CBE0: .word 0x0000042C -_0207CBE4: .word FUN_0200C6E4 + 1 +_0207CBE4: .word FUN_0200C6E4 thumb_func_start FUN_0207CBE8 FUN_0207CBE8: ; 0x0207CBE8 @@ -262584,7 +262584,7 @@ FUN_0207D3C4: ; 0x0207D3C4 nop _0207D3E8: .word 0x00000697 _0207D3EC: .word 0x00000514 -_0207D3F0: .word FUN_0200C6E4 + 1 +_0207D3F0: .word FUN_0200C6E4 thumb_func_start FUN_0207D3F4 FUN_0207D3F4: ; 0x0207D3F4 @@ -269406,7 +269406,7 @@ FUN_02080C38: ; 0x02080C38 bl FUN_0204640C pop {r3-r5, pc} nop -_02080C5C: .word FUN_02080C60 + 1 +_02080C5C: .word FUN_02080C60 thumb_func_start FUN_02080C60 FUN_02080C60: ; 0x02080C60 @@ -269647,8 +269647,8 @@ _02080E42: pop {r4-r6, pc} nop _02080E50: .word 0x00000121 -_02080E54: .word FUN_02080E5C + 1 -_02080E58: .word FUN_02081000 + 1 +_02080E54: .word FUN_02080E5C +_02080E58: .word FUN_02081000 thumb_func_start FUN_02080E5C FUN_02080E5C: ; 0x02080E5C @@ -270145,7 +270145,7 @@ FUN_0208120C: ; 0x0208120C ldr r3, _02081210 ; =FUN_02016A18 bx r3 .balign 4 -_02081210: .word FUN_02016A18 + 1 +_02081210: .word FUN_02016A18 thumb_func_start FUN_02081214 FUN_02081214: ; 0x02081214 @@ -271787,14 +271787,14 @@ _02081EA4: .word 0x00000171 _02081EA8: .word 0x00001999 _02081EAC: .word 0x0000199A _02081EB0: .word 0x00000122 -_02081EB4: .word FUN_02081680 + 1 +_02081EB4: .word FUN_02081680 thumb_func_start FUN_02081EB8 FUN_02081EB8: ; 0x02081EB8 ldr r3, _02081EBC ; =FUN_02081EC0 bx r3 .balign 4 -_02081EBC: .word FUN_02081EC0 + 1 +_02081EBC: .word FUN_02081EC0 thumb_func_start FUN_02081EC0 FUN_02081EC0: ; 0x02081EC0 @@ -271834,7 +271834,7 @@ _02081EE6: pop {r4, pc} nop _02081F00: .word 0x00000176 -_02081F04: .word FUN_02081F08 + 1 +_02081F04: .word FUN_02081F08 thumb_func_start FUN_02081F08 FUN_02081F08: ; 0x02081F08 @@ -272219,7 +272219,7 @@ FUN_020821B4: ; 0x020821B4 bx r3 .balign 4 _020821BC: .word 0x00000123 -_020821C0: .word FUN_020832DC + 1 +_020821C0: .word FUN_020832DC thumb_func_start FUN_020821C4 FUN_020821C4: ; 0x020821C4 @@ -272298,14 +272298,14 @@ FUN_0208223C: ; 0x0208223C bx r3 .balign 4 _02082244: .word 0x00000171 -_02082248: .word FUN_020833D4 + 1 +_02082248: .word FUN_020833D4 thumb_func_start FUN_0208224C FUN_0208224C: ; 0x0208224C ldr r3, _02082250 ; =FUN_02083404 bx r3 .balign 4 -_02082250: .word FUN_02083404 + 1 +_02082250: .word FUN_02083404 thumb_func_start FUN_02082254 FUN_02082254: ; 0x02082254 @@ -272693,7 +272693,7 @@ _020824F4: .word 0x020FBBAC _020824F8: .word 0x020FBB90 _020824FC: .word 0x020FBB98 _02082500: .word 0x020FBBA0 -_02082504: .word FUN_0208251C + 1 +_02082504: .word FUN_0208251C thumb_func_start FUN_02082508 FUN_02082508: ; 0x02082508 @@ -273128,7 +273128,7 @@ FUN_02082878: ; 0x02082878 ldr r3, _0208287C ; =FUN_0201B9EC bx r3 .balign 4 -_0208287C: .word FUN_0201B9EC + 1 +_0208287C: .word FUN_0201B9EC thumb_func_start FUN_02082880 FUN_02082880: ; 0x02082880 @@ -274505,7 +274505,7 @@ FUN_02083298: ; 0x02083298 mov r1, #0x2 bx r3 nop -_020832A0: .word FUN_020832A4 + 1 +_020832A0: .word FUN_020832A4 thumb_func_start FUN_020832A4 FUN_020832A4: ; 0x020832A4 @@ -274837,7 +274837,7 @@ FUN_020834D0: ; 0x020834D0 mov r1, #0x10 bx r3 nop -_020834DC: .word FUN_0202D8D0 + 1 +_020834DC: .word FUN_0202D8D0 _020834E0: .word 0x020FBED8 thumb_func_start FUN_020834E4 @@ -275755,7 +275755,7 @@ FUN_02083B84: ; 0x02083B84 mov r1, #0xb bx r3 nop -_02083B90: .word FUN_0202D8D0 + 1 +_02083B90: .word FUN_0202D8D0 _02083B94: .word 0x020FBF98 thumb_func_start FUN_02083B98 @@ -276027,7 +276027,7 @@ FUN_02083D48: ; 0x02083D48 mov r1, #0x6c bx r3 nop -_02083D54: .word FUN_0202D8D0 + 1 +_02083D54: .word FUN_0202D8D0 _02083D58: .word 0x020FC01C thumb_func_start FUN_02083D5C @@ -276482,7 +276482,7 @@ FUN_02084098: ; 0x02084098 mov r1, #0x6c bx r3 nop -_020840A4: .word FUN_0202D8D0 + 1 +_020840A4: .word FUN_0202D8D0 _020840A8: .word 0x020FC52C thumb_func_start FUN_020840AC @@ -278743,21 +278743,21 @@ FUN_02085258: ; 0x02085258 mov r0, #0x44 bx r3 .balign 4 -_02085260: .word FUN_02006670 + 1 +_02085260: .word FUN_02006670 thumb_func_start FUN_02085264 FUN_02085264: ; 0x02085264 ldr r3, _02085268 ; =FUN_02006704 bx r3 .balign 4 -_02085268: .word FUN_02006704 + 1 +_02085268: .word FUN_02006704 thumb_func_start FUN_0208526C FUN_0208526C: ; 0x0208526C ldr r3, _02085270 ; =FUN_020066F4 bx r3 .balign 4 -_02085270: .word FUN_020066F4 + 1 +_02085270: .word FUN_020066F4 thumb_func_start FUN_02085274 FUN_02085274: ; 0x02085274 @@ -278768,7 +278768,7 @@ FUN_02085274: ; 0x02085274 mov r0, #0x44 bx r3 .balign 4 -_02085280: .word FUN_0200650C + 1 +_02085280: .word FUN_0200650C thumb_func_start FUN_02085284 FUN_02085284: ; 0x02085284 @@ -278776,7 +278776,7 @@ FUN_02085284: ; 0x02085284 sub r0, #0x95 bx r3 nop -_0208528C: .word FUN_02085274 + 1 +_0208528C: .word FUN_02085274 thumb_func_start FUN_02085290 FUN_02085290: ; 0x02085290 @@ -278937,7 +278937,7 @@ FUN_020853A8: ; 0x020853A8 ldr r3, _020853AC ; =FUN_02016A18 bx r3 .balign 4 -_020853AC: .word FUN_02016A18 + 1 +_020853AC: .word FUN_02016A18 thumb_func_start FUN_020853B0 FUN_020853B0: ; 0x020853B0 @@ -279013,7 +279013,7 @@ FUN_020853FC: ; 0x020853FC add r1, r2, #0x0 bx r3 .balign 4 -_02085408: .word FUN_02013960 + 1 +_02085408: .word FUN_02013960 thumb_func_start FUN_0208540C FUN_0208540C: ; 0x0208540C @@ -280465,7 +280465,7 @@ _02085F5E: bl FUN_0204640C pop {r4-r6, pc} nop -_02085FA8: .word FUN_02085DA4 + 1 +_02085FA8: .word FUN_02085DA4 thumb_func_start FUN_02085FAC FUN_02085FAC: ; 0x02085FAC @@ -280669,7 +280669,7 @@ FUN_02086084: ; 0x02086084 mov r0, #0x1 pop {r3-r5, pc} nop -_02086164: .word FUN_02086664 + 1 +_02086164: .word FUN_02086664 thumb_func_start FUN_02086168 FUN_02086168: ; 0x02086168 @@ -280985,7 +280985,7 @@ _020863F2: bl FUN_0204640C pop {r3-r5, pc} .balign 4 -_02086410: .word FUN_02086280 + 1 +_02086410: .word FUN_02086280 thumb_func_start FUN_02086414 FUN_02086414: ; 0x02086414 @@ -281044,7 +281044,7 @@ FUN_02086468: ; 0x02086468 add sp, #0x8 pop {r3, pc} nop -_02086484: .word FUN_02086488 + 1 +_02086484: .word FUN_02086488 thumb_func_start FUN_02086488 FUN_02086488: ; 0x02086488 @@ -281796,8 +281796,8 @@ _02086AB8: add sp, #0x8 pop {r4, pc} nop -_02086AC0: .word FUN_02086A48 + 1 -_02086AC4: .word FUN_02086A64 + 1 +_02086AC0: .word FUN_02086A48 +_02086AC4: .word FUN_02086A64 thumb_func_start FUN_02086AC8 FUN_02086AC8: ; 0x02086AC8 @@ -281899,7 +281899,7 @@ FUN_02086B70: ; 0x02086B70 bl FUN_02013440 pop {r4, pc} .balign 4 -_02086B88: .word FUN_02086B08 + 1 +_02086B88: .word FUN_02086B08 thumb_func_start FUN_02086B8C FUN_02086B8C: ; 0x02086B8C @@ -281919,7 +281919,7 @@ FUN_02086BA0: ; 0x02086BA0 ldr r3, _02086BA4 ; =FUN_02016A18 bx r3 .balign 4 -_02086BA4: .word FUN_02016A18 + 1 +_02086BA4: .word FUN_02016A18 thumb_func_start FUN_02086BA8 FUN_02086BA8: ; 0x02086BA8 @@ -282408,7 +282408,7 @@ FUN_02086F8C: ; 0x02086F8C ldr r0, [r0, #0x68] bx r3 nop -_02086F94: .word FUN_02007534 + 1 +_02086F94: .word FUN_02007534 thumb_func_start FUN_02086F98 FUN_02086F98: ; 0x02086F98 @@ -282418,7 +282418,7 @@ FUN_02086F98: ; 0x02086F98 mov r1, #0x6 bx r3 nop -_02086FA4: .word FUN_02007558 + 1 +_02086FA4: .word FUN_02007558 thumb_func_start FUN_02086FA8 FUN_02086FA8: ; 0x02086FA8 @@ -284263,7 +284263,7 @@ FUN_02087E14: ; 0x02087E14 ldr r3, _02087E18 ; =FUN_02016A18 bx r3 .balign 4 -_02087E18: .word FUN_02016A18 + 1 +_02087E18: .word FUN_02016A18 thumb_func_start FUN_02087E1C FUN_02087E1C: ; 0x02087E1C @@ -285094,7 +285094,7 @@ FUN_02088484: ; 0x02088484 ldr r0, [r0, #0x10] bx r3 nop -_0208848C: .word FUN_0201FDEC + 1 +_0208848C: .word FUN_0201FDEC thumb_func_start FUN_02088490 FUN_02088490: ; 0x02088490 @@ -285560,7 +285560,7 @@ FUN_0208881C: ; 0x0208881C mov r1, #0x6c bx r3 nop -_02088828: .word FUN_0202D8D0 + 1 +_02088828: .word FUN_0202D8D0 _0208882C: .word 0x020FD1C4 thumb_func_start FUN_02088830 @@ -285611,7 +285611,7 @@ FUN_02088858: ; 0x02088858 mov r1, #0x2 bx r3 .balign 4 -_02088860: .word FUN_02005FDC + 1 +_02088860: .word FUN_02005FDC _02088864: .word 0x00000004 thumb_func_start FUN_02088868 @@ -285620,7 +285620,7 @@ FUN_02088868: ; 0x02088868 ldr r0, _02088874 ; =0x00000004 bx r3 nop -_02088870: .word FUN_02005F60 + 1 +_02088870: .word FUN_02005F60 _02088874: .word 0x00000004 thumb_func_start FUN_02088878 @@ -285630,7 +285630,7 @@ FUN_02088878: ; 0x02088878 mov r1, #0x2 bx r3 .balign 4 -_02088880: .word FUN_02005FDC + 1 +_02088880: .word FUN_02005FDC _02088884: .word 0x0000000D thumb_func_start FUN_02088888 @@ -285639,7 +285639,7 @@ FUN_02088888: ; 0x02088888 ldr r0, _02088894 ; =0x0000000D bx r3 nop -_02088890: .word FUN_02005F60 + 1 +_02088890: .word FUN_02005F60 _02088894: .word 0x0000000D thumb_func_start FUN_02088898 @@ -285664,7 +285664,7 @@ FUN_020888BC: ; 0x020888BC mov r1, #0x2 bx r3 .balign 4 -_020888C4: .word FUN_02005FDC + 1 +_020888C4: .word FUN_02005FDC _020888C8: .word 0x0000004F thumb_func_start FUN_020888CC @@ -285673,7 +285673,7 @@ FUN_020888CC: ; 0x020888CC ldr r0, _020888D8 ; =0x0000004F bx r3 nop -_020888D4: .word FUN_02005F60 + 1 +_020888D4: .word FUN_02005F60 _020888D8: .word 0x0000004F thumb_func_start FUN_020888DC @@ -285736,7 +285736,7 @@ FUN_02088950: ; 0x02088950 ldr r1, _0208895C ; =0x020FD6E4 bx r3 .balign 4 -_02088958: .word FUN_020373D4 + 1 +_02088958: .word FUN_020373D4 _0208895C: .word 0x020FD6E4 thumb_func_start FUN_02088960 @@ -286368,7 +286368,7 @@ FUN_02088DF0: ; 0x02088DF0 ldr r3, _02088DF4 ; =FUN_02016A18 bx r3 .balign 4 -_02088DF4: .word FUN_02016A18 + 1 +_02088DF4: .word FUN_02016A18 thumb_func_start FUN_02088DF8 FUN_02088DF8: ; 0x02088DF8 @@ -287440,7 +287440,7 @@ _020895DA: _020895E0: .word 0x00000495 _020895E4: .word 0xFFFFE0FF _020895E8: .word 0x04001000 -_020895EC: .word FUN_02089610 + 1 +_020895EC: .word FUN_02089610 thumb_func_start FUN_020895F0 FUN_020895F0: ; 0x020895F0 @@ -287463,7 +287463,7 @@ FUN_02089610: ; 0x02089610 ldr r0, [r0, #0x14] bx r3 nop -_02089618: .word FUN_0201AB60 + 1 +_02089618: .word FUN_0201AB60 thumb_func_start FUN_0208961C FUN_0208961C: ; 0x0208961C @@ -288969,7 +288969,7 @@ FUN_0208A320: ; 0x0208A320 ldr r3, _0208A324 ; =FUN_02016A18 bx r3 .balign 4 -_0208A324: .word FUN_02016A18 + 1 +_0208A324: .word FUN_02016A18 thumb_func_start FUN_0208A328 FUN_0208A328: ; 0x0208A328 @@ -289050,7 +289050,7 @@ FUN_0208A338: ; 0x0208A338 pop {r4-r6, pc} .balign 4 _0208A3C0: .word 0x00000171 -_0208A3C4: .word FUN_0208A458 + 1 +_0208A3C4: .word FUN_0208A458 thumb_func_start FUN_0208A3C8 FUN_0208A3C8: ; 0x0208A3C8 @@ -289486,7 +289486,7 @@ FUN_0208A750: ; 0x0208A750 lsr r0, r0, #0x18 bx r3 nop -_0208A75C: .word FUN_020546C8 + 1 +_0208A75C: .word FUN_020546C8 thumb_func_start FUN_0208A760 FUN_0208A760: ; 0x0208A760 @@ -289590,7 +289590,7 @@ FUN_0208A820: ; 0x0208A820 mov r1, #0x1 bx r3 .balign 4 -_0208A828: .word FUN_0200CCF8 + 1 +_0208A828: .word FUN_0200CCF8 thumb_func_start FUN_0208A82C FUN_0208A82C: ; 0x0208A82C @@ -289678,7 +289678,7 @@ FUN_0208A8D0: ; 0x0208A8D0 mov r1, #0x1 bx r3 .balign 4 -_0208A8D8: .word FUN_0200CCF8 + 1 +_0208A8D8: .word FUN_0200CCF8 thumb_func_start FUN_0208A8DC FUN_0208A8DC: ; 0x0208A8DC @@ -290015,7 +290015,7 @@ _0208ABC4: .balign 4 _0208ABC8: .word 0x021C8C58 _0208ABCC: .word 0x020FF4A4 -_0208ABD0: .word FUN_0208A998 + 1 +_0208ABD0: .word FUN_0208A998 _0208ABD4: .word 0xFFFFE0FF _0208ABD8: .word 0x04001000 _0208ABDC: .word 0x021C4918 diff --git a/asm/entry.s b/asm/entry.s index 45030707..daa3b774 100644 --- a/asm/entry.s +++ b/asm/entry.s @@ -85,7 +85,7 @@ _02000924: .word 0x07000000 _02000928: .word _02000B68 _0200092C: .word 0x027FFF9C _02000930: .word 0x01FF8000 -_02000934: .word NitroMain+1 +_02000934: .word NitroMain _02000938: .word 0xFFFF0000 arm_func_end Entry diff --git a/asm/main.s b/asm/main.s deleted file mode 100644 index afd4969d..00000000 --- a/asm/main.s +++ /dev/null @@ -1,172 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .text - - thumb_func_start NitroMain -NitroMain: ; 0x02000C54 - push {r3-r7, lr} - bl FUN_02016014 - bl FUN_02016148 - bl FUN_020163BC - mov r0, #0x0 - bl FUN_02016438 - ldr r0, _02000DD0 ; =0x02106FA0 - mov r1, #0x0 - blx FUN_020D50D8 - bl FUN_02022294 - bl FUN_0201259C - bl FUN_02000DF4 - bl FUN_02002C14 - mov r0, #0x0 - mov r1, #0x3 - bl FUN_02002C50 - mov r0, #0x1 - mov r1, #0x3 - bl FUN_02002C50 - mov r0, #0x3 - add r1, r0, #0x0 - bl FUN_02002C50 - mov r1, #0x0 - ldr r0, _02000DD4 ; =0x02106FA0 - mvn r1, r1 - str r1, [r0, #0x18] - bl FUN_0202254C - ldr r1, _02000DD4 ; =0x02106FA0 - str r0, [r1, #0x20] - bl FUN_02029EF8 - add r4, r0, #0x0 - ldr r0, _02000DD4 ; =0x02106FA0 - ldr r0, [r0, #0x20] - bl FUN_02023900 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02003B98 - bl FUN_02020AFC - mov r0, #0x3 - bl FUN_020337E8 - cmp r0, #0x3 - bne _02000CD4 - mov r0, #0x3 - mov r1, #0x0 - bl FUN_02034188 -_02000CD4: - ldr r0, _02000DD4 ; =0x02106FA0 - ldr r0, [r0, #0x20] - bl FUN_020227FC - cmp r0, #0x0 - bne _02000CE8 - mov r0, #0x0 - bl FUN_02089D90 - b _02000D1A -_02000CE8: - ldr r0, _02000DD8 ; =0x027FFC20 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02000CF6 - cmp r0, #0x1 - beq _02000D06 - b _02000D16 -_02000CF6: - ldr r0, _02000DD4 ; =0x02106FA0 - mov r1, #0x0 - str r1, [r0, #0x1c] - ldr r0, _02000DDC ; =0x0000003F - ldr r1, _02000DE0 ; =0x021DBE18 - bl FUN_02000E7C - b _02000D1A -_02000D06: - ldr r0, _02000DD4 ; =0x02106FA0 - mov r1, #0x1 - str r1, [r0, #0x1c] - ldr r0, _02000DE4 ; =0x00000034 - ldr r1, _02000DE8 ; =0x021D76C8 - bl FUN_02000E7C - b _02000D1A -_02000D16: - bl FUN_02020C2C -_02000D1A: - ldr r0, _02000DEC ; =0x021C48B8 - mov r1, #0x1 - str r1, [r0, #0x6c] - mov r1, #0x0 - str r1, [r0, #0x30] - bl FUN_02000FA4 - bl FUN_0200A2AC - bl FUN_02015E30 - mov r1, #0x0 - ldr r0, _02000DD4 ; =0x02106FA0 - mov r7, #0xc3 - ldr r6, _02000DF0 ; =0x021C4918 - ldr r4, _02000DEC ; =0x021C48B8 - str r1, [r0, #0x4] - add r5, r1, #0x0 - lsl r7, r7, #0x2 -_02000D40: - bl FUN_02000EE8 - bl FUN_02000FE8 - bl FUN_02016464 - mov r0, #0xc3 - ldr r1, [r4, #0x38] - lsl r0, r0, #0x2 - and r0, r1 - cmp r0, r7 - bne _02000D64 - ldrb r0, [r6, #0x8] - cmp r0, #0x0 - bne _02000D64 - mov r0, #0x0 - bl FUN_02000F18 -_02000D64: - bl FUN_0202FB80 - cmp r0, #0x0 - beq _02000D90 - bl FUN_02000E0C - ldr r0, [r4, #0x18] - bl FUN_0201B5CC - ldr r0, [r4, #0x24] - bl FUN_0201B5CC - ldr r0, [r4, #0x30] - cmp r0, #0x0 - bne _02000D90 - mov r0, #0x1 - add r1, r0, #0x0 - blx FUN_020C9C0C - ldr r0, [r4, #0x2c] - add r0, r0, #0x1 - str r0, [r4, #0x2c] -_02000D90: - bl FUN_020125D4 - bl FUN_02015E60 - bl FUN_020222C4 - ldr r0, [r4, #0x24] - bl FUN_0201B5CC - mov r0, #0x1 - add r1, r0, #0x0 - blx FUN_020C9C0C - ldr r0, [r4, #0x2c] - add r0, r0, #0x1 - str r0, [r4, #0x2c] - str r5, [r4, #0x30] - bl FUN_0200A318 - bl FUN_0200E2D8 - ldr r1, [r4, #0x0] - cmp r1, #0x0 - beq _02000DC4 - ldr r0, [r4, #0x4] - blx r1 -_02000DC4: - bl FUN_02003C10 - ldr r0, [r4, #0x20] - bl FUN_0201B5CC - b _02000D40 - .balign 4 -_02000DD0: .word 0x02106FA0 -_02000DD4: .word 0x02106FA0 -_02000DD8: .word 0x027FFC20 -_02000DDC: .word 0x0000003F -_02000DE0: .word 0x021DBE18 -_02000DE4: .word 0x00000034 -_02000DE8: .word 0x021D76C8 -_02000DEC: .word 0x021C48B8 -_02000DF0: .word 0x021C4918 diff --git a/asm/rom1.5.s b/asm/rom1.5.s new file mode 100644 index 00000000..c437a54f --- /dev/null +++ b/asm/rom1.5.s @@ -0,0 +1,3 @@ +.section .text + +.incbin "baserom.nds", 0x8EC14, 0x3EFF8 diff --git a/asm/rom2.s b/asm/rom2.s index f6dea1e9..95a5107f 100644 --- a/asm/rom2.s +++ b/asm/rom2.s @@ -2,7 +2,7 @@ .section .text -.incbin "baserom.nds", 0x8EC14, 0x619B8 +.incbin "baserom.nds", 0xD9914, 0x16CB8 .global FUN_020EC5CC FUN_020EC5CC: diff --git a/pokediamond.lcf b/pokediamond.lcf index 0184ebc8..f96c3cf9 100644 --- a/pokediamond.lcf +++ b/pokediamond.lcf @@ -22,6 +22,8 @@ SECTIONS { main.o (.text) FUN_02000DF4.o (.text) arm9_thumb.o (.text) + rom1.5.o (.text) + FUN_020C9C0C.o (.text) rom2.o (.text) } > arm9 .rom3 : AT (0x10B724) { diff --git a/src/main.c b/src/main.c new file mode 100644 index 00000000..844d069d --- /dev/null +++ b/src/main.c @@ -0,0 +1,151 @@ + +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned long u32; +typedef signed char s8; +typedef signed short s16; +typedef signed long s32; + +struct Unk2106FA0 +{ + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; +}; + +struct Unk21C48B8 +{ + void (*unk0)(s32); + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + s32 unk28; + s32 unk2C; + s32 unk30; + s32 unk34; + s32 unk38; + u8 filler3C[0xC]; + s32 unk48; + u8 filler4C[0x20]; + s32 unk6C; +}; + +extern struct Unk2106FA0 gUnknown2106FA0; +extern struct Unk2106FA0 gUnknown2106FA0_2; // same as the first one, it's referenced twice in the constant pool... +extern struct Unk2106FA0 gUnknown2106FB8; +extern struct Unk21C48B8 gUnknown21C48B8; + +extern s32 gUnk027FFC20; +extern struct { + s32 unk0; + s32 unk4; + u8 unk8; +} gUnk021C4918; + +extern void FUN_020D50D8(); +extern void FUN_020C9C0C(); +extern void FUN_02016438(s32); + +extern const s32 CONST_3F; // 0x0000003F +extern const s32 CONST_34; // 0x00000034 + +extern struct Unk21DBE18 gUnk021DBE18; +extern struct Unk21DBE18 gUnk021D76C8; + + +void NitroMain(void) +{ + FUN_02016014(); + FUN_02016148(); + FUN_020163BC(); + FUN_02016438(0); + + FUN_020D50D8(&gUnknown2106FA0_2, 0); // should be blx please + + FUN_02022294(); + FUN_0201259C(); + FUN_02000DF4(); + FUN_02002C14(); + FUN_02002C50(0, 3); + FUN_02002C50(1, 3); + FUN_02002C50(3, 3); + gUnknown2106FA0.unk18 = -1; + gUnknown2106FA0.unk20 = FUN_0202254C(); + FUN_02003B98(FUN_02029EF8(gUnknown2106FA0.unk20), FUN_02023900(gUnknown2106FA0.unk20)); + FUN_02020AFC(); + if (FUN_020337E8(3) == 3) + FUN_02034188(3, 0); + if (FUN_020227FC(gUnknown2106FA0.unk20) == 0) + { + FUN_02089D90(0); + } + else + { + switch (gUnk027FFC20) + { + case 0: + gUnknown2106FA0.unk1C = 0; + FUN_02000E7C(&CONST_3F, &gUnk021DBE18); + break; + case 1: + gUnknown2106FA0.unk1C = 1; + FUN_02000E7C(&CONST_34, &gUnk021D76C8); + break; + default: + FUN_02020C2C(); + break; + } + } + gUnknown21C48B8.unk6C = 1; + gUnknown21C48B8.unk30 = 0; + FUN_02000FA4(); + FUN_0200A2AC(); + FUN_02015E30(); + gUnknown2106FA0.unk4 = 0; + for (;;) + { + FUN_02000EE8(); + FUN_02000FE8(); + FUN_02016464(); + if ((gUnknown21C48B8.unk38 & 0x30C) == 0x30C && !gUnk021C4918.unk8) // soft reset? + { + FUN_02000F18(0); // soft reset? + } + if (FUN_0202FB80()) + { + FUN_02000E0C(); + FUN_0201B5CC(gUnknown21C48B8.unk18); + FUN_0201B5CC(gUnknown21C48B8.unk24); + if (!gUnknown21C48B8.unk30) + { + FUN_020C9C0C(1, 1); + gUnknown21C48B8.unk2C++; + } + } + FUN_020125D4(); + FUN_02015E60(); + FUN_020222C4(); + FUN_0201B5CC(gUnknown21C48B8.unk24); + FUN_020C9C0C(1, 1); + gUnknown21C48B8.unk2C++; + gUnknown21C48B8.unk30 = 0; + FUN_0200A318(); + FUN_0200E2D8(); + if (gUnknown21C48B8.unk0) + gUnknown21C48B8.unk0(gUnknown21C48B8.unk4); + FUN_02003C10(); + FUN_0201B5CC(gUnknown21C48B8.unk20); + } +} \ No newline at end of file diff --git a/undefined_syms.txt b/undefined_syms.txt index 43538862..6cbeafd3 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -902,4 +902,13 @@ FUN_0224F12C = 0x0224F12C; FUN_02252534 = 0x02252534; FUN_02252538 = 0x02252538; FUN_022567E0 = 0x022567E0; -gUnknown2106FA0 = 0x2106FA0; \ No newline at end of file +CONST_3F = 0x0000003F; +CONST_34 = 0x00000034; +gUnknown2106FA0 = 0x2106FA0; +gUnknown2106FA0_2 = 0x2106FA0; +gUnknown2106FB8 = 0x2106FB8; +gUnknown21C48B8 = 0x21C48B8; +gUnk021C4918 = 0x21C4918; +gUnk021D76C8 = 0x21D76C8; +gUnk021DBE18 = 0x21DBE18; +gUnk027FFC20 = 0x27FFC20; \ No newline at end of file -- cgit v1.2.3 From 1359eb179bf7a94a37c51c2e735b17a49e0719a0 Mon Sep 17 00:00:00 2001 From: Mor Date: Sat, 18 Apr 2020 18:27:34 +0300 Subject: fixed c tabs and names --- asm/FUN_020C9C0C.s | 8 +- asm/arm9_thumb.s | 2818 ++++++++++++++++++++++++++-------------------------- asm/rom1.5.s | 2 + global.inc | 12 +- src/FUN_02000DF4.c | 10 +- src/main.c | 166 ++-- undefined_syms.txt | 14 +- 7 files changed, 1516 insertions(+), 1514 deletions(-) diff --git a/asm/FUN_020C9C0C.s b/asm/FUN_020C9C0C.s index fc770950..ec92f002 100644 --- a/asm/FUN_020C9C0C.s +++ b/asm/FUN_020C9C0C.s @@ -5,8 +5,8 @@ .text - arm_func_start FUN_020C9C0C -FUN_020C9C0C: ; 0x020C9C0C + arm_func_start OS_WaitIrq +OS_WaitIrq: ; 0x020C9C0C stmdb sp!, {r4-r6,lr} mov r5, r0 mov r4, r1 @@ -2922,8 +2922,8 @@ _020CD33C: .byte 0x04, 0x20, 0xA0, 0xE1, 0x05, 0xEB, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - arm_func_start FUN_020D50D8 -FUN_020D50D8: ; 0x020D50D8 + arm_func_start PM_GetBackLight +PM_GetBackLight: ; 0x020D50D8 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r1 diff --git a/asm/arm9_thumb.s b/asm/arm9_thumb.s index 3c463c3d..2084721f 100644 --- a/asm/arm9_thumb.s +++ b/asm/arm9_thumb.s @@ -67,7 +67,7 @@ FUN_02000E7C: ; 0x02000E7C ldr r0, [r0, #0x14] cmp r0, #0x0 beq _02000E8E - bl FUN_02020C2C + bl ErrorHandling _02000E8E: ldr r0, _02000E98 ; =0x02106FA0 str r5, [r0, #0x10] @@ -82,7 +82,7 @@ FUN_02000E9C: ; 0x02000E9C bl FUN_0202FB80 mov r0, #0x1 add r1, r0, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq ldr r0, _02000EC4 ; =0x021C48B8 ldr r1, [r0, #0x2c] add r1, r1, #0x1 @@ -306,7 +306,7 @@ _0200105C: _02001064: add r0, sp, #0x4 add r1, sp, #0x0 - blx FUN_020D50D8 + blx PM_GetBackLight ldr r0, [sp, #0x4] cmp r0, #0x1 bne _02001096 @@ -318,7 +318,7 @@ _02001064: _0200107E: add r0, sp, #0x4 add r1, sp, #0x0 - blx FUN_020D50D8 + blx PM_GetBackLight ldr r0, [sp, #0x4] cmp r0, #0x0 bne _02001096 @@ -3116,7 +3116,7 @@ _0200248C: lsl r0, r0, #0x8 cmp r5, r0 bne _020024B0 - bl FUN_02020C2C + bl ErrorHandling _020024B0: ldr r0, _02002664 ; =0x0000F0FD cmp r5, r0 @@ -4153,7 +4153,7 @@ FUN_02002C84: ; 0x02002C84 add r5, r1, #0x0 cmp r4, #0x4 blt _02002C92 - bl FUN_02020C2C + bl ErrorHandling _02002C92: ldr r0, _02002CBC ; =0x02106FC8 lsl r4, r4, #0x2 @@ -4163,7 +4163,7 @@ _02002C92: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002CA6 - bl FUN_02020C2C + bl ErrorHandling _02002CA6: ldr r0, _02002CBC ; =0x02106FC8 mov r1, #0x0 @@ -4183,7 +4183,7 @@ FUN_02002CC0: ; 0x02002CC0 add r4, r0, #0x0 cmp r4, #0x4 blt _02002CCC - bl FUN_02020C2C + bl ErrorHandling _02002CCC: ldr r0, _02002CF4 ; =0x02106FC8 lsl r4, r4, #0x2 @@ -4193,7 +4193,7 @@ _02002CCC: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002CE0 - bl FUN_02020C2C + bl ErrorHandling _02002CE0: ldr r0, _02002CF4 ; =0x02106FC8 mov r1, #0x1 @@ -4213,7 +4213,7 @@ FUN_02002CF8: ; 0x02002CF8 add r4, r0, #0x0 cmp r4, #0x4 blt _02002D04 - bl FUN_02020C2C + bl ErrorHandling _02002D04: ldr r0, _02002D8C ; =0x02106FC8 lsl r6, r4, #0x2 @@ -4345,7 +4345,7 @@ FUN_02002DE0: ; 0x02002DE0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002DFA - bl FUN_02020C2C + bl ErrorHandling _02002DFA: ldr r0, _02002E10 ; =0x02106FC8 add r1, r5, #0x0 @@ -4372,7 +4372,7 @@ FUN_02002E14: ; 0x02002E14 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002E2E - bl FUN_02020C2C + bl ErrorHandling _02002E2E: add r0, r5, #0x0 bl FUN_02021F2C @@ -4505,7 +4505,7 @@ FUN_02002F08: ; 0x02002F08 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002F22 - bl FUN_02020C2C + bl ErrorHandling _02002F22: add r0, r5, #0x0 bl FUN_02021F2C @@ -4590,7 +4590,7 @@ FUN_02002F9C: ; 0x02002F9C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002FB4 - bl FUN_02020C2C + bl ErrorHandling _02002FB4: add r0, r5, #0x0 bl FUN_02021F2C @@ -4716,7 +4716,7 @@ FUN_02003084: ; 0x02003084 bl FUN_02006C08 add r6, r0, #0x0 bne _0200309E - bl FUN_02020C2C + bl ErrorHandling _0200309E: cmp r4, #0x0 bne _020030A6 @@ -4734,7 +4734,7 @@ _020030A6: add r0, r4, r0 cmp r0, r1 bls _020030C0 - bl FUN_02020C2C + bl ErrorHandling _020030C0: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -4788,7 +4788,7 @@ FUN_02003108: ; 0x02003108 add r0, r7, r0 cmp r0, r1 bls _02003126 - bl FUN_02020C2C + bl ErrorHandling _02003126: cmp r4, #0x3 bhi _0200315E @@ -4820,7 +4820,7 @@ _02003156: add r1, r0, #0x0 b _02003164 _0200315E: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _02003164: lsl r0, r7, #0x10 @@ -4845,7 +4845,7 @@ FUN_0200317C: ; 0x0200317C bl FUN_02006C08 add r4, r0, #0x0 bne _02003192 - bl FUN_02020C2C + bl ErrorHandling _02003192: cmp r5, #0x0 bne _0200319A @@ -5859,7 +5859,7 @@ FUN_02003914: ; 0x02003914 ldr r0, [r0, #0x8] cmp r1, r0 bls _0200393A - bl FUN_02020C2C + bl ErrorHandling _0200393A: sub r0, r7, #0x1 cmp r0, #0x1 @@ -5977,7 +5977,7 @@ FUN_020039E8: ; 0x020039E8 _02003A0A: cmp r0, #0x0 bne _02003A12 - bl FUN_02020C2C + bl ErrorHandling _02003A12: add r3, sp, #0x10 ldrh r0, [r3, #0x14] @@ -6051,7 +6051,7 @@ FUN_02003A64: ; 0x02003A64 _02003A8E: cmp r0, #0x0 bne _02003A96 - bl FUN_02020C2C + bl ErrorHandling _02003A96: cmp r5, #0x0 beq _02003AC0 @@ -6160,7 +6160,7 @@ FUN_02003B40: ; 0x02003B40 bl FUN_02006C08 add r4, r0, #0x0 bne _02003B58 - bl FUN_02020C2C + bl ErrorHandling _02003B58: ldr r0, [sp, #0x1c] cmp r0, #0x0 @@ -6604,7 +6604,7 @@ _02003E8C: add r0, r0, r1 pop {r4, pc} _02003E92: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4, pc} nop @@ -6662,7 +6662,7 @@ FUN_02003F3C: ; 0x02003F3C mvn r0, r0 cmp r4, r0 bne _02003F5A - bl FUN_02020C2C + bl ErrorHandling _02003F5A: cmp r5, #0x0 beq _02003F60 @@ -6757,7 +6757,7 @@ FUN_02003FF4: ; 0x02003FF4 add r4, r0, #0x0 cmp r5, #0x9 blt _02004008 - bl FUN_02020C2C + bl ErrorHandling mov r5, #0x0 _02004008: ldr r0, _02004014 ; =0x000BBC94 @@ -6813,7 +6813,7 @@ _02004056: mov r0, #0x7 pop {r3, pc} _0200405A: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x3 pop {r3, pc} .balign 4 @@ -7505,7 +7505,7 @@ FUN_02004568: ; 0x02004568 add r0, r5, #0x0 mov r1, #0x4 bl FUN_02003FA8 - bl FUN_02020C2C + bl ErrorHandling b _0200459C _02004594: ldrh r0, [r4, #0x0] @@ -7570,7 +7570,7 @@ _020045E4: add r0, r7, #0x0 mov r1, #0x4 bl FUN_02003FA8 - bl FUN_02020C2C + bl ErrorHandling b _02004638 _02004630: ldrh r0, [r4, #0x0] @@ -7707,7 +7707,7 @@ FUN_02004748: ; 0x02004748 bl FUN_02003D30 cmp r4, #0x7 blt _02004762 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1a bl FUN_02003D38 ldr r0, [r0, #0x0] @@ -7903,7 +7903,7 @@ FUN_020048BC: ; 0x020048BC push {r4, lr} add r4, r0, #0x0 bpl _020048C6 - bl FUN_02020C2C + bl ErrorHandling _020048C6: add r0, r4, #0x0 blx FUN_020C0F50 @@ -7990,21 +7990,21 @@ FUN_02004930: ; 0x02004930 beq _02004954 cmp r5, #0xf beq _02004954 - bl FUN_02020C2C + bl ErrorHandling _02004954: cmp r5, #0xe bne _02004962 ldrb r0, [r6, #0x0] cmp r0, #0x0 bne _02004962 - bl FUN_02020C2C + bl ErrorHandling _02004962: cmp r5, #0xf bne _02004970 ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _02004970 - bl FUN_02020C2C + bl ErrorHandling _02004970: cmp r5, #0xe bne _0200497C @@ -8031,7 +8031,7 @@ FUN_02004984: ; 0x02004984 beq _020049A8 cmp r5, #0xf beq _020049A8 - bl FUN_02020C2C + bl ErrorHandling _020049A8: cmp r5, #0xe bne _020049D6 @@ -8053,7 +8053,7 @@ _020049CA: strb r0, [r6, #0x0] b _020049FE _020049D0: - bl FUN_02020C2C + bl ErrorHandling b _020049FE _020049D6: ldrb r0, [r4, #0x0] @@ -8074,7 +8074,7 @@ _020049F4: strb r0, [r4, #0x0] b _020049FE _020049FA: - bl FUN_02020C2C + bl ErrorHandling _020049FE: mov r0, #0x1 pop {r4-r6, pc} @@ -8095,7 +8095,7 @@ FUN_02004A04: ; 0x02004A04 beq _02004A2A cmp r5, #0xf beq _02004A2A - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _02004A2A: cmp r5, #0xe @@ -8111,7 +8111,7 @@ _02004A2A: strb r0, [r6, #0x0] pop {r4-r6, pc} _02004A46: - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _02004A4C: ldrb r0, [r4, #0x0] @@ -8125,7 +8125,7 @@ _02004A4C: strb r0, [r4, #0x0] pop {r4-r6, pc} _02004A64: - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} .balign 4 @@ -8248,13 +8248,13 @@ FUN_02004B30: ; 0x02004B30 beq _02004B54 cmp r5, #0xf beq _02004B54 - bl FUN_02020C2C + bl ErrorHandling _02004B54: add r0, r6, #0x0 blx FUN_020C226C add r7, r0, #0x0 bne _02004B68 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -8265,7 +8265,7 @@ _02004B68: blx FUN_020C217C add r6, r0, #0x0 bne _02004B80 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -8278,7 +8278,7 @@ _02004B80: str r0, [r4, #0x0] cmp r0, #0x0 bne _02004B9C - bl FUN_02020C2C + bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -8297,7 +8297,7 @@ _02004B9C: mvn r1, r1 cmp r0, r1 bne _02004BC6 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -8378,7 +8378,7 @@ FUN_02004C3C: ; 0x02004C3C beq _02004C60 cmp r5, #0xf beq _02004C60 - bl FUN_02020C2C + bl ErrorHandling _02004C60: add r0, r5, #0x0 bl FUN_02004AAC @@ -8745,7 +8745,7 @@ _02004EF2: blx FUN_020C226C cmp r0, #0x0 bne _02004F02 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _02004F02: @@ -8755,7 +8755,7 @@ _02004F02: blx FUN_020C20DC cmp r0, #0x0 bne _02004F18 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _02004F18: @@ -9207,7 +9207,7 @@ _0200523E: add r4, r0, #0x0 b _02005258 _02005250: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} _02005258: @@ -9294,7 +9294,7 @@ FUN_02005308: ; 0x02005308 add r5, r1, #0x0 cmp r0, #0x4 beq _02005318 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _02005318: @@ -9302,7 +9302,7 @@ _02005318: bl FUN_020048D0 cmp r0, #0x7 beq _0200532A - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0200532A: @@ -10232,7 +10232,7 @@ FUN_02005AE0: ; 0x02005AE0 bl FUN_02016998 add r4, r0, #0x0 bne _02005B04 - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _02005B04: mov r2, #0x0 @@ -10784,14 +10784,14 @@ FUN_02005F3C: ; 0x02005F3C ldr r0, [r4, #0x4] cmp r0, #0x1 beq _02005F4A - bl FUN_02020C2C + bl ErrorHandling _02005F4A: ldr r1, [r4, #0x0] mov r0, #0x0 blx FUN_020D2040 cmp r0, #0x1 beq _02005F5A - bl FUN_02020C2C + bl ErrorHandling _02005F5A: mov r0, #0x0 str r0, [r4, #0x4] @@ -10833,7 +10833,7 @@ FUN_02005F90: ; 0x02005F90 blx FUN_020D24EC cmp r0, #0x1 beq _02005FA6 - bl FUN_02020C2C + bl ErrorHandling _02005FA6: mov r0, #0x2 ldr r2, [sp, #0x4] @@ -10904,7 +10904,7 @@ _02006018: _02006020: cmp r6, #0x8 blt _0200602C - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0200602C: @@ -10942,7 +10942,7 @@ _02006062: add r4, r0, #0x0 b _02006076 _0200606E: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _02006076: @@ -10953,7 +10953,7 @@ _02006076: _02006080: cmp r4, #0x0 bne _0200608C - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0200608C: @@ -11012,7 +11012,7 @@ _020060E8: cmp r3, r0 blo _020060FC _020060F2: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} @@ -11061,7 +11061,7 @@ FUN_02006130: ; 0x02006130 blx FUN_020D24EC cmp r0, #0x0 bne _02006152 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x2c mov r0, #0x0 pop {r4-r5, pc} @@ -11367,7 +11367,7 @@ FUN_02006314: ; 0x02006314 ldrh r0, [r0, #0x0] cmp r0, r5 bgt _0200637A - bl FUN_02020C2C + bl ErrorHandling _0200637A: ldr r0, [sp, #0x14] mov r2, #0x0 @@ -11413,7 +11413,7 @@ _020063D6: str r0, [sp, #0x14] cmp r0, #0x0 bne _020063E0 - bl FUN_02020C2C + bl ErrorHandling _020063E0: ldr r1, [sp, #0x0] ldr r2, [sp, #0x14] @@ -11468,7 +11468,7 @@ FUN_020063F4: ; 0x020063F4 ldrh r0, [r0, #0x0] cmp r0, r5 bgt _0200645A - bl FUN_02020C2C + bl ErrorHandling _0200645A: ldr r0, [sp, #0x14] mov r2, #0x0 @@ -11514,7 +11514,7 @@ _020064B6: str r0, [sp, #0x14] cmp r0, #0x0 bne _020064C0 - bl FUN_02020C2C + bl ErrorHandling _020064C0: ldr r0, [sp, #0x7c] cmp r0, #0x0 @@ -11680,7 +11680,7 @@ FUN_020065A4: ; 0x020065A4 ldrh r0, [r0, #0x0] cmp r0, r5 bgt _0200660A - bl FUN_02020C2C + bl ErrorHandling _0200660A: ldr r0, [sp, #0xc] mov r2, #0x0 @@ -11719,7 +11719,7 @@ _0200660A: sub r0, r1, r0 str r0, [sp, #0xc] bne _02006664 - bl FUN_02020C2C + bl ErrorHandling _02006664: ldr r0, [sp, #0xc] add sp, #0x58 @@ -11807,7 +11807,7 @@ FUN_02006704: ; 0x02006704 add r6, r2, #0x0 cmp r0, r4 bhi _0200671A - bl FUN_02020C2C + bl ErrorHandling _0200671A: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 @@ -11861,7 +11861,7 @@ FUN_02006774: ; 0x02006774 add r6, r2, #0x0 cmp r0, r4 bhi _0200678A - bl FUN_02020C2C + bl ErrorHandling _0200678A: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 @@ -11904,7 +11904,7 @@ FUN_020067D0: ; 0x020067D0 add r4, r1, #0x0 cmp r0, r4 bhi _020067E4 - bl FUN_02020C2C + bl ErrorHandling _020067E4: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 @@ -11939,7 +11939,7 @@ FUN_02006814: ; 0x02006814 add r7, r3, #0x0 cmp r0, r4 bhi _0200682A - bl FUN_02020C2C + bl ErrorHandling _0200682A: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 @@ -13452,7 +13452,7 @@ _020073AE: _020073BE: cmp r4, #0x4 bne _020073C6 - bl FUN_02020C2C + bl ErrorHandling _020073C6: ldr r0, [sp, #0x30] ldr r3, [sp, #0x14] @@ -13487,7 +13487,7 @@ FUN_020073E8: ; 0x020073E8 str r3, [sp, #0x4] lsr r0, r0, #0x1f beq _02007408 - bl FUN_02020C2C + bl ErrorHandling _02007408: add r5, r4, r6 mov r0, #0x0 @@ -14326,7 +14326,7 @@ _020079CC: lsr r0, r0, #0x1e pop {r3, pc} _020079D6: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -15540,7 +15540,7 @@ FUN_02008268: ; 0x02008268 push {r4, lr} add r4, r0, #0x0 bne _02008272 - bl FUN_02020C2C + bl ErrorHandling _02008272: ldr r0, [r4, #0x0] lsl r0, r0, #0x1f @@ -16659,33 +16659,33 @@ FUN_02008AA4: ; 0x02008AA4 str r4, [sp, #0xc] cmp r0, #0x0 bne _02008AC2 - bl FUN_02020C2C + bl ErrorHandling _02008AC2: ldr r0, [sp, #0x48] cmp r0, #0x0 bne _02008ACC - bl FUN_02020C2C + bl ErrorHandling _02008ACC: ldr r0, [sp, #0x50] cmp r0, #0x0 bne _02008AD6 - bl FUN_02020C2C + bl ErrorHandling _02008AD6: ldr r0, [sp, #0x4c] cmp r0, #0x0 bne _02008AE0 - bl FUN_02020C2C + bl ErrorHandling _02008AE0: cmp r5, #0x0 bne _02008AE8 - bl FUN_02020C2C + bl ErrorHandling _02008AE8: ldr r0, [sp, #0x44] add r1, r6, #0x0 bl FUN_020094F0 add r7, r0, #0x0 bne _02008AF8 - bl FUN_02020C2C + bl ErrorHandling _02008AF8: ldr r0, [sp, #0x48] ldr r1, [sp, #0x0] @@ -16693,7 +16693,7 @@ _02008AF8: str r0, [sp, #0x14] cmp r0, #0x0 bne _02008B0A - bl FUN_02020C2C + bl ErrorHandling _02008B0A: ldr r0, [sp, #0x4c] ldr r1, [sp, #0x4] @@ -16701,7 +16701,7 @@ _02008B0A: str r0, [sp, #0x10] cmp r0, #0x0 bne _02008B1C - bl FUN_02020C2C + bl ErrorHandling _02008B1C: ldr r0, [sp, #0x50] cmp r0, #0x0 @@ -16715,7 +16715,7 @@ _02008B1C: str r0, [sp, #0xc] cmp r0, #0x0 bne _02008B3A - bl FUN_02020C2C + bl ErrorHandling _02008B3A: ldr r0, [sp, #0x54] cmp r0, #0x0 @@ -16745,7 +16745,7 @@ _02008B62: bl FUN_02009C80 add r6, r0, #0x0 bne _02008B78 - bl FUN_02020C2C + bl ErrorHandling _02008B78: add r0, r7, #0x0 bl FUN_02009544 @@ -16756,7 +16756,7 @@ _02008B82: bl FUN_02009C5C add r6, r0, #0x0 bne _02008B90 - bl FUN_02020C2C + bl ErrorHandling _02008B90: mov r0, #0x0 str r0, [r5, #0x4] @@ -16888,7 +16888,7 @@ FUN_02008C80: ; 0x02008C80 push {r4, lr} add r4, r0, #0x0 bne _02008C8A - bl FUN_02020C2C + bl ErrorHandling _02008C8A: ldr r0, [r4, #0x0] cmp r0, #0x0 @@ -17050,7 +17050,7 @@ _02008DB6: bl FUN_0201D194 pop {r4, pc} _02008DC4: - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} nop _02008DCC: .word 0x00100010 @@ -17104,17 +17104,17 @@ FUN_02008E2C: ; 0x02008E2C push {r4, lr} add r4, r0, #0x0 bne _02008E36 - bl FUN_02020C2C + bl ErrorHandling _02008E36: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02008E40 - bl FUN_02020C2C + bl ErrorHandling _02008E40: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _02008E4A - bl FUN_02020C2C + bl ErrorHandling _02008E4A: add r0, r4, #0x0 bl FUN_020094C4 @@ -17140,29 +17140,29 @@ FUN_02008E6C: ; 0x02008E6C add r7, r3, #0x0 cmp r5, #0x0 bne _02008E80 - bl FUN_02020C2C + bl ErrorHandling _02008E80: cmp r4, #0x0 bne _02008E88 - bl FUN_02020C2C + bl ErrorHandling _02008E88: ldr r0, [r4, #0x4] cmp r0, r6 bgt _02008E92 - bl FUN_02020C2C + bl ErrorHandling _02008E92: ldr r1, [r5, #0x10] ldr r0, [r4, #0x8] cmp r1, r0 beq _02008E9E - bl FUN_02020C2C + bl ErrorHandling _02008E9E: add r0, r5, #0x0 bl FUN_020097D0 str r0, [sp, #0x1c] cmp r0, #0x0 bne _02008EAE - bl FUN_02020C2C + bl ErrorHandling _02008EAE: ldrb r0, [r4, #0xc] cmp r0, #0x0 @@ -17177,7 +17177,7 @@ _02008EAE: bl FUN_0200945C cmp r0, #0x1 beq _02008ECE - bl FUN_02020C2C + bl ErrorHandling _02008ECE: ldr r0, [r6, #0x44] ldr r1, [sp, #0x1c] @@ -17202,7 +17202,7 @@ _02008EEA: bl FUN_0200945C cmp r0, #0x1 beq _02008F02 - bl FUN_02020C2C + bl ErrorHandling _02008F02: ldr r0, [r6, #0x8] ldr r1, [sp, #0x1c] @@ -17240,18 +17240,18 @@ FUN_02008F34: ; 0x02008F34 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02008F48 - bl FUN_02020C2C + bl ErrorHandling _02008F48: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02008F52 - bl FUN_02020C2C + bl ErrorHandling _02008F52: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02008F60 - bl FUN_02020C2C + bl ErrorHandling _02008F60: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17287,18 +17287,18 @@ FUN_02008F90: ; 0x02008F90 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02008FA4 - bl FUN_02020C2C + bl ErrorHandling _02008FA4: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02008FAE - bl FUN_02020C2C + bl ErrorHandling _02008FAE: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02008FBC - bl FUN_02020C2C + bl ErrorHandling _02008FBC: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17334,18 +17334,18 @@ FUN_02008FEC: ; 0x02008FEC str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009000 - bl FUN_02020C2C + bl ErrorHandling _02009000: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _0200900A - bl FUN_02020C2C + bl ErrorHandling _0200900A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009018 - bl FUN_02020C2C + bl ErrorHandling _02009018: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17383,18 +17383,18 @@ FUN_0200904C: ; 0x0200904C str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009060 - bl FUN_02020C2C + bl ErrorHandling _02009060: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _0200906A - bl FUN_02020C2C + bl ErrorHandling _0200906A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009078 - bl FUN_02020C2C + bl ErrorHandling _02009078: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17432,13 +17432,13 @@ FUN_020090AC: ; 0x020090AC str r2, [sp, #0x1c] cmp r5, #0x0 bne _020090C0 - bl FUN_02020C2C + bl ErrorHandling _020090C0: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _020090CE - bl FUN_02020C2C + bl ErrorHandling _020090CE: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17473,21 +17473,21 @@ FUN_020090FC: ; 0x020090FC str r3, [sp, #0x20] cmp r5, #0x0 bne _02009110 - bl FUN_02020C2C + bl ErrorHandling _02009110: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _0200911A - bl FUN_02020C2C + bl ErrorHandling _0200911A: cmp r4, #0x0 bne _02009122 - bl FUN_02020C2C + bl ErrorHandling _02009122: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200912C - bl FUN_02020C2C + bl ErrorHandling _0200912C: add r0, r4, #0x0 bl FUN_02009530 @@ -17526,21 +17526,21 @@ FUN_02009168: ; 0x02009168 str r3, [sp, #0x20] cmp r5, #0x0 bne _0200917C - bl FUN_02020C2C + bl ErrorHandling _0200917C: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _02009186 - bl FUN_02020C2C + bl ErrorHandling _02009186: cmp r4, #0x0 bne _0200918E - bl FUN_02020C2C + bl ErrorHandling _0200918E: ldr r0, [r4, #0x4] cmp r0, #0x1 beq _02009198 - bl FUN_02020C2C + bl ErrorHandling _02009198: add r0, r4, #0x0 bl FUN_02009530 @@ -17584,18 +17584,18 @@ FUN_020091E0: ; 0x020091E0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020091F4 - bl FUN_02020C2C + bl ErrorHandling _020091F4: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _020091FE - bl FUN_02020C2C + bl ErrorHandling _020091FE: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _0200920C - bl FUN_02020C2C + bl ErrorHandling _0200920C: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17631,18 +17631,18 @@ FUN_0200923C: ; 0x0200923C str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009250 - bl FUN_02020C2C + bl ErrorHandling _02009250: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _0200925A - bl FUN_02020C2C + bl ErrorHandling _0200925A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009268 - bl FUN_02020C2C + bl ErrorHandling _02009268: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17678,18 +17678,18 @@ FUN_02009298: ; 0x02009298 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020092AC - bl FUN_02020C2C + bl ErrorHandling _020092AC: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _020092B6 - bl FUN_02020C2C + bl ErrorHandling _020092B6: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _020092C4 - bl FUN_02020C2C + bl ErrorHandling _020092C4: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17727,18 +17727,18 @@ FUN_020092F8: ; 0x020092F8 str r2, [sp, #0x1c] cmp r5, #0x0 bne _0200930C - bl FUN_02020C2C + bl ErrorHandling _0200930C: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _02009316 - bl FUN_02020C2C + bl ErrorHandling _02009316: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009324 - bl FUN_02020C2C + bl ErrorHandling _02009324: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17776,13 +17776,13 @@ FUN_02009358: ; 0x02009358 str r2, [sp, #0x1c] cmp r5, #0x0 bne _0200936C - bl FUN_02020C2C + bl ErrorHandling _0200936C: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _0200937A - bl FUN_02020C2C + bl ErrorHandling _0200937A: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17817,11 +17817,11 @@ FUN_020093A8: ; 0x020093A8 add r7, r3, #0x0 cmp r5, #0x0 bne _020093BC - bl FUN_02020C2C + bl ErrorHandling _020093BC: cmp r4, #0x0 bne _020093C4 - bl FUN_02020C2C + bl ErrorHandling _020093C4: str r6, [sp, #0x0] str r7, [sp, #0x4] @@ -17913,7 +17913,7 @@ FUN_0200945C: ; 0x0200945C add r4, r1, #0x0 cmp r5, #0x0 bne _0200946A - bl FUN_02020C2C + bl ErrorHandling _0200946A: ldr r0, [r5, #0x0] add r1, r4, #0x0 @@ -17925,7 +17925,7 @@ FUN_02009474: ; 0x02009474 push {r4, lr} add r4, r0, #0x0 bne _0200947E - bl FUN_02020C2C + bl ErrorHandling _0200947E: add r0, r4, #0x0 bl FUN_02009920 @@ -17942,12 +17942,12 @@ FUN_02009490: ; 0x02009490 add r4, r1, #0x0 cmp r5, #0x0 bne _0200949E - bl FUN_02020C2C + bl ErrorHandling _0200949E: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _020094A8 - bl FUN_02020C2C + bl ErrorHandling _020094A8: add r0, r4, #0x0 bl FUN_02009920 @@ -17996,7 +17996,7 @@ FUN_020094F0: ; 0x020094F0 add r7, r1, #0x0 cmp r5, #0x0 bne _020094FE - bl FUN_02020C2C + bl ErrorHandling _020094FE: ldr r0, [r5, #0x8] mov r6, #0x0 @@ -18031,7 +18031,7 @@ FUN_02009530: ; 0x02009530 push {r4, lr} add r4, r0, #0x0 bne _0200953A - bl FUN_02020C2C + bl ErrorHandling _0200953A: ldr r0, [r4, #0x0] bl FUN_02020E38 @@ -18045,7 +18045,7 @@ FUN_02009544: ; 0x02009544 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02009552 - bl FUN_02020C2C + bl ErrorHandling _02009552: add r0, r4, #0x0 bl FUN_02009934 @@ -18059,7 +18059,7 @@ FUN_0200955C: ; 0x0200955C ldr r0, [r4, #0x4] cmp r0, #0x1 beq _0200956A - bl FUN_02020C2C + bl ErrorHandling _0200956A: add r0, r4, #0x0 bl FUN_02009934 @@ -18073,7 +18073,7 @@ FUN_02009574: ; 0x02009574 ldr r0, [r4, #0x4] cmp r0, #0x2 beq _02009582 - bl FUN_02020C2C + bl ErrorHandling _02009582: add r0, r4, #0x0 bl FUN_02009934 @@ -18087,7 +18087,7 @@ FUN_0200958C: ; 0x0200958C ldr r0, [r4, #0x4] cmp r0, #0x3 beq _0200959A - bl FUN_02020C2C + bl ErrorHandling _0200959A: add r0, r4, #0x0 bl FUN_02009934 @@ -18101,7 +18101,7 @@ FUN_020095A4: ; 0x020095A4 ldr r0, [r4, #0x4] cmp r0, #0x4 beq _020095B2 - bl FUN_02020C2C + bl ErrorHandling _020095B2: add r0, r4, #0x0 bl FUN_02009934 @@ -18115,7 +18115,7 @@ FUN_020095BC: ; 0x020095BC ldr r0, [r4, #0x4] cmp r0, #0x5 beq _020095CA - bl FUN_02020C2C + bl ErrorHandling _020095CA: add r0, r4, #0x0 bl FUN_02009934 @@ -18127,7 +18127,7 @@ FUN_020095D4: ; 0x020095D4 push {r4, lr} add r4, r0, #0x0 bne _020095DE - bl FUN_02020C2C + bl ErrorHandling _020095DE: ldr r0, [r4, #0x4] pop {r4, pc} @@ -18138,7 +18138,7 @@ FUN_020095E4: ; 0x020095E4 push {r4, lr} add r4, r0, #0x0 bne _020095EE - bl FUN_02020C2C + bl ErrorHandling _020095EE: ldr r0, [r4, #0x4] cmp r0, #0x0 @@ -18163,7 +18163,7 @@ FUN_02009610: ; 0x02009610 push {r4, lr} add r4, r0, #0x0 bne _0200961A - bl FUN_02020C2C + bl ErrorHandling _0200961A: ldr r0, [r4, #0x4] cmp r0, #0x1 @@ -18184,7 +18184,7 @@ FUN_02009630: ; 0x02009630 add r4, r1, #0x0 cmp r5, #0x0 bne _0200963E - bl FUN_02020C2C + bl ErrorHandling _0200963E: ldr r0, [r5, #0x4] cmp r0, #0x0 @@ -18222,7 +18222,7 @@ FUN_02009668: ; 0x02009668 add r6, r2, #0x0 cmp r4, #0x0 bne _02009678 - bl FUN_02020C2C + bl ErrorHandling _02009678: ldr r0, [r5, #0x0] str r0, [r4, #0x8] @@ -18275,7 +18275,7 @@ FUN_020096CC: ; 0x020096CC push {r4, lr} add r4, r0, #0x0 bne _020096D6 - bl FUN_02020C2C + bl ErrorHandling _020096D6: ldr r0, [r4, #0x4] pop {r4, pc} @@ -18288,12 +18288,12 @@ FUN_020096DC: ; 0x020096DC add r4, r1, #0x0 cmp r5, #0x0 bne _020096EA - bl FUN_02020C2C + bl ErrorHandling _020096EA: ldr r0, [r5, #0x4] cmp r0, r4 bgt _020096F4 - bl FUN_02020C2C + bl ErrorHandling _020096F4: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] @@ -18318,12 +18318,12 @@ FUN_02009710: ; 0x02009710 add r4, r1, #0x0 cmp r5, #0x0 bne _0200971E - bl FUN_02020C2C + bl ErrorHandling _0200971E: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009728 - bl FUN_02020C2C + bl ErrorHandling _02009728: ldrb r0, [r5, #0xc] cmp r0, #0x1 @@ -18344,12 +18344,12 @@ FUN_0200973C: ; 0x0200973C add r4, r1, #0x0 cmp r5, #0x0 bne _0200974A - bl FUN_02020C2C + bl ErrorHandling _0200974A: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009754 - bl FUN_02020C2C + bl ErrorHandling _02009754: ldrb r0, [r5, #0xc] cmp r0, #0x1 @@ -18370,12 +18370,12 @@ FUN_02009768: ; 0x02009768 add r4, r1, #0x0 cmp r5, #0x0 bne _02009776 - bl FUN_02020C2C + bl ErrorHandling _02009776: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009780 - bl FUN_02020C2C + bl ErrorHandling _02009780: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] @@ -18400,12 +18400,12 @@ FUN_0200979C: ; 0x0200979C add r4, r1, #0x0 cmp r5, #0x0 bne _020097AA - bl FUN_02020C2C + bl ErrorHandling _020097AA: ldr r0, [r5, #0x4] cmp r0, r4 bgt _020097B4 - bl FUN_02020C2C + bl ErrorHandling _020097B4: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] @@ -18625,12 +18625,12 @@ FUN_02009934: ; 0x02009934 push {r4, lr} add r4, r0, #0x0 bne _0200993E - bl FUN_02020C2C + bl ErrorHandling _0200993E: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02009948 - bl FUN_02020C2C + bl ErrorHandling _02009948: ldr r0, [r4, #0x8] pop {r4, pc} @@ -18779,13 +18779,13 @@ FUN_02009A50: ; 0x02009A50 sub sp, #0x10 add r4, r0, #0x0 bne _02009A5C - bl FUN_02020C2C + bl ErrorHandling _02009A5C: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009A6A - bl FUN_02020C2C + bl ErrorHandling _02009A6A: add r0, r4, #0x0 bl FUN_02009544 @@ -18808,7 +18808,7 @@ FUN_02009A90: ; 0x02009A90 push {r4-r6, lr} add r5, r0, #0x0 bne _02009A9A - bl FUN_02020C2C + bl ErrorHandling _02009A9A: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -18823,7 +18823,7 @@ _02009AA4: bl FUN_02009A50 cmp r0, #0x0 bne _02009AB8 - bl FUN_02020C2C + bl ErrorHandling _02009AB8: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -18839,13 +18839,13 @@ FUN_02009AC4: ; 0x02009AC4 sub sp, #0x10 add r4, r0, #0x0 bne _02009AD0 - bl FUN_02020C2C + bl ErrorHandling _02009AD0: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009ADE - bl FUN_02020C2C + bl ErrorHandling _02009ADE: add r0, r4, #0x0 bl FUN_02009544 @@ -18869,13 +18869,13 @@ FUN_02009B04: ; 0x02009B04 sub sp, #0x10 add r4, r0, #0x0 bne _02009B10 - bl FUN_02020C2C + bl ErrorHandling _02009B10: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009B1E - bl FUN_02020C2C + bl ErrorHandling _02009B1E: add r0, r4, #0x0 bl FUN_02009544 @@ -18898,7 +18898,7 @@ FUN_02009B44: ; 0x02009B44 push {r4-r6, lr} add r5, r0, #0x0 bne _02009B4E - bl FUN_02020C2C + bl ErrorHandling _02009B4E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -18913,7 +18913,7 @@ _02009B58: bl FUN_02009B04 cmp r0, #0x0 bne _02009B6C - bl FUN_02020C2C + bl ErrorHandling _02009B6C: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -18929,13 +18929,13 @@ FUN_02009B78: ; 0x02009B78 sub sp, #0x10 add r4, r0, #0x0 bne _02009B84 - bl FUN_02020C2C + bl ErrorHandling _02009B84: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009B92 - bl FUN_02020C2C + bl ErrorHandling _02009B92: add r0, r4, #0x0 bl FUN_02009544 @@ -18960,11 +18960,11 @@ FUN_02009BB8: ; 0x02009BB8 add r5, r1, #0x0 cmp r4, #0x0 bne _02009BC6 - bl FUN_02020C2C + bl ErrorHandling _02009BC6: cmp r5, #0x0 bne _02009BCE - bl FUN_02020C2C + bl ErrorHandling _02009BCE: add r0, r4, #0x0 bl FUN_02009530 @@ -18982,7 +18982,7 @@ FUN_02009BE8: ; 0x02009BE8 push {r3-r5, lr} add r5, r0, #0x0 bne _02009BF2 - bl FUN_02020C2C + bl ErrorHandling _02009BF2: add r0, r5, #0x0 bl FUN_02009530 @@ -19000,13 +19000,13 @@ FUN_02009C0C: ; 0x02009C0C push {r4, lr} add r4, r0, #0x0 bne _02009C16 - bl FUN_02020C2C + bl ErrorHandling _02009C16: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C24 - bl FUN_02020C2C + bl ErrorHandling _02009C24: add r0, r4, #0x0 bl FUN_02009530 @@ -19018,7 +19018,7 @@ FUN_02009C30: ; 0x02009C30 push {r4-r6, lr} add r5, r0, #0x0 bne _02009C3A - bl FUN_02020C2C + bl ErrorHandling _02009C3A: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -19045,13 +19045,13 @@ FUN_02009C5C: ; 0x02009C5C push {r4, lr} add r4, r0, #0x0 bne _02009C66 - bl FUN_02020C2C + bl ErrorHandling _02009C66: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C74 - bl FUN_02020C2C + bl ErrorHandling _02009C74: add r0, r4, #0x0 bl FUN_02009530 @@ -19065,23 +19065,23 @@ FUN_02009C80: ; 0x02009C80 add r5, r1, #0x0 cmp r4, #0x0 bne _02009C8E - bl FUN_02020C2C + bl ErrorHandling _02009C8E: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C9C - bl FUN_02020C2C + bl ErrorHandling _02009C9C: cmp r5, #0x0 bne _02009CA4 - bl FUN_02020C2C + bl ErrorHandling _02009CA4: add r0, r5, #0x0 bl FUN_020095D4 cmp r0, #0x2 beq _02009CB2 - bl FUN_02020C2C + bl ErrorHandling _02009CB2: add r0, r4, #0x0 bl FUN_02009530 @@ -19106,7 +19106,7 @@ FUN_02009CDC: ; 0x02009CDC push {r4, lr} add r4, r0, #0x0 bne _02009CE6 - bl FUN_02020C2C + bl ErrorHandling _02009CE6: add r0, r4, #0x0 bl FUN_0201D4F0 @@ -19119,13 +19119,13 @@ FUN_02009CF0: ; 0x02009CF0 sub sp, #0x10 add r4, r0, #0x0 bne _02009CFC - bl FUN_02020C2C + bl ErrorHandling _02009CFC: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009D0A - bl FUN_02020C2C + bl ErrorHandling _02009D0A: add r0, r4, #0x0 bl FUN_0200955C @@ -19149,7 +19149,7 @@ FUN_02009D34: ; 0x02009D34 push {r4-r6, lr} add r5, r0, #0x0 bne _02009D3E - bl FUN_02020C2C + bl ErrorHandling _02009D3E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -19164,7 +19164,7 @@ _02009D48: bl FUN_02009CF0 cmp r0, #0x0 bne _02009D5C - bl FUN_02020C2C + bl ErrorHandling _02009D5C: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -19180,13 +19180,13 @@ FUN_02009D68: ; 0x02009D68 sub sp, #0x10 add r4, r0, #0x0 bne _02009D74 - bl FUN_02020C2C + bl ErrorHandling _02009D74: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009D82 - bl FUN_02020C2C + bl ErrorHandling _02009D82: add r0, r4, #0x0 bl FUN_0200955C @@ -19210,7 +19210,7 @@ FUN_02009DAC: ; 0x02009DAC push {r4-r6, lr} add r5, r0, #0x0 bne _02009DB6 - bl FUN_02020C2C + bl ErrorHandling _02009DB6: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -19225,7 +19225,7 @@ _02009DC0: bl FUN_02009D68 cmp r0, #0x0 bne _02009DD4 - bl FUN_02020C2C + bl ErrorHandling _02009DD4: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -19240,7 +19240,7 @@ FUN_02009DE0: ; 0x02009DE0 push {r3-r5, lr} add r5, r0, #0x0 bne _02009DEA - bl FUN_02020C2C + bl ErrorHandling _02009DEA: add r0, r5, #0x0 bl FUN_02009530 @@ -19258,13 +19258,13 @@ FUN_02009E04: ; 0x02009E04 push {r4, lr} add r4, r0, #0x0 bne _02009E0E - bl FUN_02020C2C + bl ErrorHandling _02009E0E: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009E1C - bl FUN_02020C2C + bl ErrorHandling _02009E1C: add r0, r4, #0x0 bl FUN_02009530 @@ -19276,7 +19276,7 @@ FUN_02009E28: ; 0x02009E28 push {r4-r6, lr} add r5, r0, #0x0 bne _02009E32 - bl FUN_02020C2C + bl ErrorHandling _02009E32: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -19305,13 +19305,13 @@ FUN_02009E54: ; 0x02009E54 add r4, r1, #0x0 cmp r5, #0x0 bne _02009E62 - bl FUN_02020C2C + bl ErrorHandling _02009E62: add r0, r5, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009E70 - bl FUN_02020C2C + bl ErrorHandling _02009E70: add r0, r5, #0x0 bl FUN_02009530 @@ -19395,7 +19395,7 @@ FUN_02009EF0: ; 0x02009EF0 add r7, r3, #0x0 cmp r0, #0x0 beq _02009F08 - bl FUN_02020C2C + bl ErrorHandling _02009F08: ldr r0, [sp, #0x30] mov r1, #0x3c @@ -19404,7 +19404,7 @@ _02009F08: cmp r0, #0x0 str r0, [r1, #0x0] bne _02009F1C - bl FUN_02020C2C + bl ErrorHandling _02009F1C: ldr r1, _02009F7C ; =0x021C4670 lsl r3, r6, #0x10 @@ -19425,7 +19425,7 @@ _02009F1C: blx FUN_020B0E34 cmp r0, #0x0 bne _02009F48 - bl FUN_02020C2C + bl ErrorHandling _02009F48: ldr r0, [sp, #0x2c] ldr r1, [sp, #0x20] @@ -19448,7 +19448,7 @@ _02009F48: blx FUN_020B0E34 cmp r0, #0x0 bne _02009F78 - bl FUN_02020C2C + bl ErrorHandling _02009F78: add sp, #0x8 pop {r3-r7, pc} @@ -19479,7 +19479,7 @@ FUN_02009FA0: ; 0x02009FA0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02009FAE - bl FUN_02020C2C + bl ErrorHandling _02009FAE: ldr r0, _02009FD4 ; =0x021C4670 ldr r0, [r0, #0x0] @@ -19511,7 +19511,7 @@ FUN_02009FD8: ; 0x02009FD8 add r4, r3, #0x0 cmp r0, #0x0 bne _02009FF0 - bl FUN_02020C2C + bl ErrorHandling _02009FF0: cmp r5, #0x1 bne _0200A00C @@ -19554,7 +19554,7 @@ FUN_0200A03C: ; 0x0200A03C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0200A04C - bl FUN_02020C2C + bl ErrorHandling _0200A04C: cmp r4, #0x0 bne _0200A056 @@ -19594,7 +19594,7 @@ FUN_0200A074: ; 0x0200A074 blx FUN_020B0C7C add r4, r0, #0x0 bne _0200A08C - bl FUN_02020C2C + bl ErrorHandling _0200A08C: add r0, r4, #0x0 pop {r4, pc} @@ -19613,7 +19613,7 @@ FUN_0200A094: ; 0x0200A094 blx FUN_020B0C7C add r4, r0, #0x0 bne _0200A0AE - bl FUN_02020C2C + bl ErrorHandling _0200A0AE: add r0, r4, #0x0 pop {r4, pc} @@ -19631,7 +19631,7 @@ FUN_0200A0B8: ; 0x0200A0B8 ldr r0, _0200A0D8 ; =0x0000FFFE cmp r4, r0 bne _0200A0D0 - bl FUN_02020C2C + bl ErrorHandling _0200A0D0: add r0, r4, #0x0 pop {r4, pc} @@ -19651,7 +19651,7 @@ FUN_0200A0DC: ; 0x0200A0DC ldr r0, _0200A100 ; =0x0000FFFE cmp r4, r0 bne _0200A0F6 - bl FUN_02020C2C + bl ErrorHandling _0200A0F6: add r0, r4, #0x0 pop {r4, pc} @@ -19753,7 +19753,7 @@ FUN_0200A1A0: ; 0x0200A1A0 add r7, r3, #0x0 cmp r0, #0x0 beq _0200A1B4 - bl FUN_02020C2C + bl ErrorHandling _0200A1B4: ldr r1, [sp, #0x18] mov r0, #0x1 @@ -20063,7 +20063,7 @@ _0200A3EA: add sp, #0x8 pop {r3-r7, pc} _0200A404: - bl FUN_02020C2C + bl ErrorHandling _0200A408: add sp, #0x8 pop {r3-r7, pc} @@ -20242,7 +20242,7 @@ _0200A556: add sp, #0x10 pop {r3-r7, pc} _0200A56A: - bl FUN_02020C2C + bl ErrorHandling ldr r0, [sp, #0x0] bl FUN_02021A4C _0200A574: @@ -20339,7 +20339,7 @@ _0200A626: mov r0, #0x0 pop {r3-r7, pc} _0200A62C: - bl FUN_02020C2C + bl ErrorHandling ldr r1, [sp, #0x0] mov r0, #0x4 bl FUN_020219F4 @@ -20457,7 +20457,7 @@ _0200A70A: add sp, #0x14 pop {r4-r7, pc} _0200A71E: - bl FUN_02020C2C + bl ErrorHandling ldr r0, [sp, #0x28] bl FUN_02021A4C _0200A728: @@ -20589,7 +20589,7 @@ _0200A824: add sp, #0x18 pop {r3-r7, pc} _0200A82A: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x4 add r1, r5, #0x0 bl FUN_020219F4 @@ -20927,12 +20927,12 @@ FUN_0200AA90: ; 0x0200AA90 str r1, [sp, #0x0] str r2, [sp, #0x4] bne _0200AAA0 - bl FUN_02020C2C + bl ErrorHandling _0200AAA0: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _0200AAAA - bl FUN_02020C2C + bl ErrorHandling _0200AAAA: ldr r0, [sp, #0x4] mov r1, #0x10 @@ -20995,7 +20995,7 @@ FUN_0200AB18: ; 0x0200AB18 ldr r0, [r5, #0x0] cmp r0, #0x0 bne _0200AB26 - bl FUN_02020C2C + bl ErrorHandling _0200AB26: ldr r0, [r5, #0x8] cmp r0, #0x0 @@ -21048,7 +21048,7 @@ FUN_0200AB70: ; 0x0200AB70 add r4, r3, #0x0 cmp r6, r0 blo _0200AB84 - bl FUN_02020C2C + bl ErrorHandling _0200AB84: ldr r0, [r5, #0x0] cmp r6, r0 @@ -22635,7 +22635,7 @@ _0200B7D4: ldr r0, [r7, #0x0] cmp r4, r0 blo _0200B7F8 - bl FUN_02020C2C + bl ErrorHandling _0200B7F8: ldr r2, [r7, #0x8] lsl r1, r4, #0x3 @@ -23090,7 +23090,7 @@ FUN_0200BB34: ; 0x0200BB34 push {r4, lr} add r4, r0, #0x0 bne _0200BB3E - bl FUN_02020C2C + bl ErrorHandling _0200BB3E: ldr r0, [r4, #0x0] mov r1, #0x58 @@ -23130,7 +23130,7 @@ FUN_0200BB6C: ; 0x0200BB6C add r7, r3, #0x0 cmp r5, #0x0 bne _0200BB80 - bl FUN_02020C2C + bl ErrorHandling _0200BB80: cmp r5, #0x0 bne _0200BB8A @@ -23218,7 +23218,7 @@ FUN_0200BC1C: ; 0x0200BC1C push {r4, lr} add r4, r0, #0x0 bne _0200BC26 - bl FUN_02020C2C + bl ErrorHandling _0200BC26: ldr r0, [r4, #0x0] bl FUN_0201FDEC @@ -23351,7 +23351,7 @@ FUN_0200BD04: ; 0x0200BD04 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200BD12 - bl FUN_02020C2C + bl ErrorHandling _0200BD12: add r0, r4, #0x0 bl FUN_0200BCB0 @@ -23771,7 +23771,7 @@ _0200C02A: mov r0, #0x1 pop {r4-r7, pc} _0200C058: - bl FUN_02020C2C + bl ErrorHandling cmp r5, #0x0 beq _0200C066 add sp, #0xc @@ -23818,7 +23818,7 @@ _0200C08C: bl FUN_02009D68 cmp r0, #0x1 beq _0200C0B8 - bl FUN_02020C2C + bl ErrorHandling _0200C0B8: ldr r0, [r4, #0x28] add r1, r5, #0x0 @@ -23831,7 +23831,7 @@ _0200C0B8: asr r0, r0, #0x18 pop {r3-r7, pc} _0200C0D0: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 mvn r0, r0 add sp, #0x10 @@ -24130,7 +24130,7 @@ _0200C2E0: bl FUN_02020248 b _0200C32C _0200C328: - bl FUN_02020C2C + bl ErrorHandling _0200C32C: add r0, r4, #0x0 add sp, #0x74 @@ -24295,13 +24295,13 @@ _0200C42A: add r4, r0, #0x0 cmp r4, #0x1 beq _0200C45A - bl FUN_02020C2C + bl ErrorHandling _0200C45A: add sp, #0x14 add r0, r4, #0x0 pop {r4-r7, pc} _0200C460: - bl FUN_02020C2C + bl ErrorHandling cmp r5, #0x0 beq _0200C46E add sp, #0x14 @@ -25080,7 +25080,7 @@ _0200C936: mov r0, #0x1 pop {r4-r7, pc} _0200C964: - bl FUN_02020C2C + bl ErrorHandling cmp r5, #0x0 beq _0200C972 add sp, #0xc @@ -25129,7 +25129,7 @@ _0200C996: mov r0, #0x1 pop {r4-r7, pc} _0200C9C4: - bl FUN_02020C2C + bl ErrorHandling cmp r5, #0x0 beq _0200C9D2 add sp, #0xc @@ -28115,18 +28115,18 @@ FUN_0200E1D0: ; 0x0200E1D0 add r6, r3, #0x0 cmp r0, #0x0 bne _0200E1E6 - bl FUN_02020C2C + bl ErrorHandling _0200E1E6: ldr r0, [sp, #0x34] cmp r0, #0x0 bne _0200E1F0 - bl FUN_02020C2C + bl ErrorHandling _0200E1F0: ldr r0, _0200E2AC ; =0x021C47F4 ldrh r0, [r0, #0xc] cmp r0, #0x0 beq _0200E1FC - bl FUN_02020C2C + bl ErrorHandling _0200E1FC: ldr r0, _0200E2B0 ; =0x021C46B4 bl FUN_0200E808 @@ -28692,14 +28692,14 @@ FUN_0200E628: ; 0x0200E628 str r1, [sp, #0x0] cmp r0, #0x0 beq _0200E64A - bl FUN_02020C2C + bl ErrorHandling _0200E64A: add r6, r5, #0x0 add r6, #0x8 ldr r0, [r6, r4] cmp r0, #0x0 bne _0200E658 - bl FUN_02020C2C + bl ErrorHandling _0200E658: ldr r0, [r5, #0x10] cmp r0, #0x0 @@ -28717,7 +28717,7 @@ _0200E672: ldr r0, [sp, #0x4] cmp r0, #0x1 beq _0200E67C - bl FUN_02020C2C + bl ErrorHandling _0200E67C: ldr r0, [sp, #0x0] cmp r7, #0x0 @@ -30275,7 +30275,7 @@ _0200F248: mov r7, #0xf mvn r7, r7 mov r6, #0x0 - bl FUN_02020C2C + bl ErrorHandling b _0200F274 _0200F254: cmp r1, r0 @@ -30294,7 +30294,7 @@ _0200F26A: mov r7, #0x0 add r6, r7, #0x0 sub r6, #0x10 - bl FUN_02020C2C + bl ErrorHandling _0200F274: ldr r0, [r5, #0x10] add r1, r7, #0x0 @@ -30404,7 +30404,7 @@ FUN_0200F330: ; 0x0200F330 push {r4-r6, lr} add r4, r0, #0x0 bne _0200F33A - bl FUN_02020C2C + bl ErrorHandling _0200F33A: ldr r0, _0200F54C ; =0x04000006 ldrh r0, [r0, #0x0] @@ -30765,7 +30765,7 @@ FUN_0200F5D8: ; 0x0200F5D8 add r4, r1, #0x0 cmp r0, r4 bgt _0200F5E8 - bl FUN_02020C2C + bl ErrorHandling _0200F5E8: ldr r0, _0200F5F4 ; =0x00000604 ldr r1, [r5, #0x0] @@ -31007,7 +31007,7 @@ FUN_0200F7AC: ; 0x0200F7AC push {r3-r5, lr} add r4, r0, #0x0 bne _0200F7B6 - bl FUN_02020C2C + bl ErrorHandling _0200F7B6: ldr r0, _0200FAC0 ; =0x04000006 ldrh r0, [r0, #0x0] @@ -32074,7 +32074,7 @@ _0200FF9E: mov r6, #0x1 b _0200FFA6 _0200FFA2: - bl FUN_02020C2C + bl ErrorHandling _0200FFA6: add r0, r6, #0x0 pop {r4-r6, pc} @@ -32443,7 +32443,7 @@ _02010272: mov r6, #0x1 b _0201027A _02010276: - bl FUN_02020C2C + bl ErrorHandling _0201027A: add r0, r6, #0x0 pop {r4-r6, pc} @@ -32892,7 +32892,7 @@ FUN_020105A0: ; 0x020105A0 str r0, [sp, #0x4] cmp r0, #0xc0 blt _0201060C - bl FUN_02020C2C + bl ErrorHandling _0201060C: ldr r2, [sp, #0x4] add r0, r4, #0x0 @@ -33029,7 +33029,7 @@ _02010714: mov r6, #0x1 b _0201071C _02010718: - bl FUN_02020C2C + bl ErrorHandling _0201071C: add r0, r6, #0x0 pop {r4-r6, pc} @@ -33053,7 +33053,7 @@ FUN_02010720: ; 0x02010720 str r0, [r7, #0xc] cmp r0, #0x0 bne _02010748 - bl FUN_02020C2C + bl ErrorHandling _02010748: ldrb r0, [r5, #0x8] str r0, [r7, #0x10] @@ -33392,7 +33392,7 @@ _020109DC: mov r6, #0x1 b _020109E4 _020109E0: - bl FUN_02020C2C + bl ErrorHandling _020109E4: add r0, r6, #0x0 pop {r4-r6, pc} @@ -33805,7 +33805,7 @@ _02010D10: mov r6, #0x1 b _02010D18 _02010D14: - bl FUN_02020C2C + bl ErrorHandling _02010D18: add r0, r6, #0x0 pop {r4-r6, pc} @@ -34151,7 +34151,7 @@ _02010FC4: mov r6, #0x1 b _02010FCC _02010FC8: - bl FUN_02020C2C + bl ErrorHandling _02010FCC: add r0, r6, #0x0 pop {r4-r6, pc} @@ -34512,7 +34512,7 @@ _0201126A: mov r4, #0x1 b _02011272 _0201126E: - bl FUN_02020C2C + bl ErrorHandling _02011272: add r0, r4, #0x0 pop {r3-r5, pc} @@ -35179,7 +35179,7 @@ FUN_02011744: ; 0x02011744 str r0, [sp, #0x8] cmp r0, #0x0 bne _0201175E - bl FUN_02020C2C + bl ErrorHandling _0201175E: ldr r4, [sp, #0x8] ldr r5, [sp, #0x8] @@ -35195,7 +35195,7 @@ _02011766: str r0, [r5, #0x0] cmp r0, #0x0 bne _0201177E - bl FUN_02020C2C + bl ErrorHandling _0201177E: add r6, r6, #0x1 add r4, r4, #0x4 @@ -35213,7 +35213,7 @@ _0201177E: cmp r0, #0x0 str r0, [r1, #0x60] bne _020117A4 - bl FUN_02020C2C + bl ErrorHandling _020117A4: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] @@ -35232,7 +35232,7 @@ FUN_020117BC: ; 0x020117BC push {r4-r6, lr} add r6, r0, #0x0 bne _020117C6 - bl FUN_02020C2C + bl ErrorHandling _020117C6: mov r4, #0x0 add r5, r6, #0x0 @@ -35256,13 +35256,13 @@ FUN_020117E8: ; 0x020117E8 sub sp, #0x1c add r5, r0, #0x0 bne _020117F4 - bl FUN_02020C2C + bl ErrorHandling _020117F4: ldr r0, [r5, #0x0] bl FUN_02011BA0 add r4, r0, #0x0 bne _02011802 - bl FUN_02020C2C + bl ErrorHandling _02011802: ldr r0, [r5, #0x10] add r3, sp, #0x8 @@ -35318,12 +35318,12 @@ FUN_02011870: ; 0x02011870 push {r4, lr} add r4, r0, #0x0 bne _0201187A - bl FUN_02020C2C + bl ErrorHandling _0201187A: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02011884 - bl FUN_02020C2C + bl ErrorHandling _02011884: add r0, r4, #0x0 bl FUN_02011F00 @@ -35364,7 +35364,7 @@ FUN_020118C4: ; 0x020118C4 str r1, [sp, #0x0] cmp r5, #0x0 bne _020118D6 - bl FUN_02020C2C + bl ErrorHandling _020118D6: ldr r0, [sp, #0x0] str r0, [r5, #0xc] @@ -35423,7 +35423,7 @@ FUN_02011938: ; 0x02011938 sub sp, #0x10 add r5, r0, #0x0 bne _02011944 - bl FUN_02020C2C + bl ErrorHandling _02011944: ldr r0, [r5, #0x8] cmp r0, #0x0 @@ -35482,15 +35482,15 @@ FUN_020119A4: ; 0x020119A4 add r6, r2, #0x0 cmp r5, #0x0 bne _020119B4 - bl FUN_02020C2C + bl ErrorHandling _020119B4: cmp r4, #0x0 bne _020119BC - bl FUN_02020C2C + bl ErrorHandling _020119BC: cmp r6, #0x0 bne _020119C4 - bl FUN_02020C2C + bl ErrorHandling _020119C4: ldr r0, [r5, #0xc] str r0, [r4, #0x0] @@ -35506,7 +35506,7 @@ FUN_020119D0: ; 0x020119D0 add r7, r1, #0x0 cmp r5, #0x0 bne _020119DE - bl FUN_02020C2C + bl ErrorHandling _020119DE: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35534,7 +35534,7 @@ FUN_02011A00: ; 0x02011A00 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A0E - bl FUN_02020C2C + bl ErrorHandling _02011A0E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35562,7 +35562,7 @@ FUN_02011A30: ; 0x02011A30 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A3E - bl FUN_02020C2C + bl ErrorHandling _02011A3E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35590,7 +35590,7 @@ FUN_02011A60: ; 0x02011A60 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A6E - bl FUN_02020C2C + bl ErrorHandling _02011A6E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35618,7 +35618,7 @@ FUN_02011A90: ; 0x02011A90 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A9E - bl FUN_02020C2C + bl ErrorHandling _02011A9E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35646,7 +35646,7 @@ FUN_02011AC0: ; 0x02011AC0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011ACE - bl FUN_02020C2C + bl ErrorHandling _02011ACE: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35674,7 +35674,7 @@ FUN_02011AF0: ; 0x02011AF0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011AFE - bl FUN_02020C2C + bl ErrorHandling _02011AFE: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35712,7 +35712,7 @@ FUN_02011B20: ; 0x02011B20 str r3, [sp, #0x4] cmp r1, r0 bge _02011B42 - bl FUN_02020C2C + bl ErrorHandling _02011B42: ldrb r2, [r6, #0x8] ldr r1, [sp, #0x0] @@ -35720,7 +35720,7 @@ _02011B42: add r0, r1, r0 cmp r2, r0 bge _02011B52 - bl FUN_02020C2C + bl ErrorHandling _02011B52: ldr r0, [sp, #0x0] mov r4, #0x0 @@ -35864,7 +35864,7 @@ FUN_02011BF4: ; 0x02011BF4 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02011C54 - bl FUN_02020C2C + bl ErrorHandling _02011C54: add r0, r5, #0x0 mov r1, #0x1 @@ -35919,12 +35919,12 @@ FUN_02011CA4: ; 0x02011CA4 add r6, r3, #0x0 cmp r7, #0x0 bne _02011CB8 - bl FUN_02020C2C + bl ErrorHandling _02011CB8: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02011CC2 - bl FUN_02020C2C + bl ErrorHandling _02011CC2: ldr r0, [sp, #0x0] mov r4, #0x0 @@ -36198,7 +36198,7 @@ _02011EC2: ldr r0, [r0, r5] cmp r0, #0x0 bne _02011EDC - bl FUN_02020C2C + bl ErrorHandling _02011EDC: ldr r0, [r4, #0x0] add r7, #0x24 @@ -36319,7 +36319,7 @@ FUN_02011FAC: ; 0x02011FAC bl FUN_020169D8 add r4, r0, #0x0 bne _02011FBC - bl FUN_02020C2C + bl ErrorHandling _02011FBC: mov r0, #0x0 str r0, [r4, #0xc] @@ -36333,7 +36333,7 @@ FUN_02011FC8: ; 0x02011FC8 push {r4, lr} add r4, r0, #0x0 bne _02011FD2 - bl FUN_02020C2C + bl ErrorHandling _02011FD2: add r0, r4, #0x0 bl FUN_02016A18 @@ -36409,7 +36409,7 @@ FUN_02012044: ; 0x02012044 bl FUN_0200650C add r4, r0, #0x0 bne _02012054 - bl FUN_02020C2C + bl ErrorHandling _02012054: add r0, r4, #0x0 add r1, r5, #0x0 @@ -36417,11 +36417,11 @@ _02012054: add r6, r0, #0x0 cmp r5, #0x0 bne _02012066 - bl FUN_02020C2C + bl ErrorHandling _02012066: cmp r6, #0x0 bne _0201206E - bl FUN_02020C2C + bl ErrorHandling _0201206E: add r0, r4, #0x0 bl FUN_02016A18 @@ -36440,7 +36440,7 @@ FUN_02012078: ; 0x02012078 add r5, r3, #0x0 cmp r0, r6 bge _02012090 - bl FUN_02020C2C + bl ErrorHandling _02012090: ldr r0, [sp, #0xc] ldrh r1, [r4, #0x0] @@ -36448,7 +36448,7 @@ _02012090: str r0, [sp, #0x14] cmp r1, r0 bge _020120A0 - bl FUN_02020C2C + bl ErrorHandling _020120A0: ldr r0, [r4, #0x14] str r0, [sp, #0x20] @@ -36636,14 +36636,14 @@ FUN_020121E8: ; 0x020121E8 str r0, [sp, #0x20] cmp r0, #0x0 bne _02012204 - bl FUN_02020C2C + bl ErrorHandling _02012204: ldr r0, [sp, #0x20] add r1, sp, #0x2c blx FUN_020B0088 cmp r0, #0x0 bne _02012214 - bl FUN_02020C2C + bl ErrorHandling _02012214: ldr r1, [sp, #0x4c] ldr r0, [sp, #0x8] @@ -36652,7 +36652,7 @@ _02012214: ldrh r0, [r0, #0x2] cmp r0, r6 bge _02012226 - bl FUN_02020C2C + bl ErrorHandling _02012226: ldr r1, [sp, #0x50] ldr r0, [sp, #0x48] @@ -36663,7 +36663,7 @@ _02012226: ldr r0, [sp, #0x10] cmp r1, r0 bge _0201223C - bl FUN_02020C2C + bl ErrorHandling _0201223C: ldr r0, [sp, #0x2c] ldr r0, [r0, #0x14] @@ -36983,7 +36983,7 @@ FUN_02012470: ; 0x02012470 blx FUN_020B0138 cmp r0, #0x1 beq _0201249C - bl FUN_02020C2C + bl ErrorHandling _0201249C: ldr r0, [sp, #0x0] add r1, r4, #0x0 @@ -37174,7 +37174,7 @@ FUN_020125FC: ; 0x020125FC str r0, [r4, #0xc] cmp r0, #0x0 beq _0201260A - bl FUN_02020C2C + bl ErrorHandling _0201260A: add r3, r4, #0x0 mov r0, #0x1 @@ -37214,7 +37214,7 @@ FUN_02012634: ; 0x02012634 str r0, [r4, #0xc] cmp r0, #0x0 beq _02012656 - bl FUN_02020C2C + bl ErrorHandling _02012656: pop {r4, pc} .balign 4 @@ -37229,7 +37229,7 @@ FUN_0201265C: ; 0x0201265C ldr r0, [r0, #0x0] cmp r0, #0x1 beq _0201266E - bl FUN_02020C2C + bl ErrorHandling _0201266E: ldr r2, _02012688 ; =0x021C4818 ldmia r2!, {r0-r1} @@ -37255,7 +37255,7 @@ FUN_02012690: ; 0x02012690 ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020126A0 - bl FUN_02020C2C + bl ErrorHandling _020126A0: ldr r2, _020126B0 ; =0x021C4828 ldmia r2!, {r0-r1} @@ -37275,7 +37275,7 @@ FUN_020126B4: ; 0x020126B4 ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020126C4 - bl FUN_02020C2C + bl ErrorHandling _020126C4: ldr r2, _020126D4 ; =0x021C4818 ldmia r2!, {r0-r1} @@ -37409,7 +37409,7 @@ FUN_020127A8: ; 0x020127A8 cmp r4, #0x18 blt _020127B6 _020127B2: - bl FUN_02020C2C + bl ErrorHandling _020127B6: ldr r0, _020127BC ; =0x020ED4CC ldrb r0, [r0, r4] @@ -37450,7 +37450,7 @@ FUN_020127C0: ; 0x020127C0 eor r0, r3 orr r0, r1 beq _02012804 - bl FUN_02020C2C + bl ErrorHandling _02012804: sub r0, r4, r5 mov r12, r7 @@ -37585,7 +37585,7 @@ FUN_020128E0: ; 0x020128E0 _020128EC: cmp r3, r2 bne _020128F8 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4, pc} _020128F8: @@ -37666,7 +37666,7 @@ FUN_02012974: ; 0x02012974 push {r4, lr} add r4, r0, #0x0 bne _0201297E - bl FUN_02020C2C + bl ErrorHandling _0201297E: add r0, r4, #0x0 bl FUN_02016A18 @@ -37678,7 +37678,7 @@ FUN_02012988: ; 0x02012988 push {r4, lr} add r4, r0, #0x0 bne _02012992 - bl FUN_02020C2C + bl ErrorHandling _02012992: ldrb r0, [r4, #0x8] lsl r0, r0, #0x2 @@ -37691,7 +37691,7 @@ FUN_0201299C: ; 0x0201299C push {r4, lr} add r4, r0, #0x0 bne _020129A6 - bl FUN_02020C2C + bl ErrorHandling _020129A6: ldrb r1, [r4, #0x8] mov r0, #0x1 @@ -37779,13 +37779,13 @@ FUN_02012A30: ; 0x02012A30 add r7, r3, #0x0 cmp r5, #0x0 bne _02012A42 - bl FUN_02020C2C + bl ErrorHandling _02012A42: ldr r0, _02012AB0 ; =0x00000604 ldr r0, [r5, r0] cmp r0, #0x0 beq _02012A4E - bl FUN_02020C2C + bl ErrorHandling _02012A4E: ldr r0, _02012AB4 ; =0x0000078C mov r2, #0x0 @@ -37844,7 +37844,7 @@ FUN_02012AC4: ; 0x02012AC4 push {r4, lr} add r4, r0, #0x0 bne _02012ACE - bl FUN_02020C2C + bl ErrorHandling _02012ACE: ldr r0, _02012AF8 ; =0x00000604 ldr r0, [r4, r0] @@ -38083,7 +38083,7 @@ FUN_02012C98: ; 0x02012C98 push {r3-r5, lr} add r4, r0, #0x0 bne _02012CA2 - bl FUN_02020C2C + bl ErrorHandling _02012CA2: mov r0, #0x6 lsl r0, r0, #0x8 @@ -38146,7 +38146,7 @@ _02012D04: bl FUN_02016998 add r4, r0, #0x0 bne _02012D14 - bl FUN_02020C2C + bl ErrorHandling _02012D14: add r0, r4, #0x0 mov r1, #0x0 @@ -38387,7 +38387,7 @@ _02012EE4: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012EF0 - bl FUN_02020C2C + bl ErrorHandling _02012EF0: add r0, r4, #0x0 pop {r4, pc} @@ -38413,7 +38413,7 @@ _02012F10: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F1C - bl FUN_02020C2C + bl ErrorHandling _02012F1C: add r0, r4, #0x0 pop {r4, pc} @@ -38439,7 +38439,7 @@ _02012F3C: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F48 - bl FUN_02020C2C + bl ErrorHandling _02012F48: add r0, r4, #0x0 pop {r4, pc} @@ -38465,7 +38465,7 @@ _02012F68: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F74 - bl FUN_02020C2C + bl ErrorHandling _02012F74: add r0, r4, #0x0 pop {r4, pc} @@ -38491,7 +38491,7 @@ _02012F94: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FA0 - bl FUN_02020C2C + bl ErrorHandling _02012FA0: add r0, r4, #0x0 pop {r4, pc} @@ -38517,7 +38517,7 @@ _02012FC0: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FCC - bl FUN_02020C2C + bl ErrorHandling _02012FCC: add r0, r4, #0x0 pop {r4, pc} @@ -38543,7 +38543,7 @@ _02012FEC: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FF8 - bl FUN_02020C2C + bl ErrorHandling _02012FF8: add r0, r4, #0x0 pop {r4, pc} @@ -38569,7 +38569,7 @@ _02013018: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013024 - bl FUN_02020C2C + bl ErrorHandling _02013024: add r0, r4, #0x0 pop {r4, pc} @@ -38595,7 +38595,7 @@ _02013044: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013050 - bl FUN_02020C2C + bl ErrorHandling _02013050: add r0, r4, #0x0 pop {r4, pc} @@ -38621,7 +38621,7 @@ _02013070: ldr r1, [r1, #0x14] cmp r0, r1 blo _0201307C - bl FUN_02020C2C + bl ErrorHandling _0201307C: add r0, r4, #0x0 pop {r4, pc} @@ -38647,7 +38647,7 @@ _0201309C: ldr r1, [r1, #0x14] cmp r0, r1 blo _020130A8 - bl FUN_02020C2C + bl ErrorHandling _020130A8: add r0, r4, #0x0 pop {r4, pc} @@ -38673,7 +38673,7 @@ _020130C8: ldr r1, [r1, #0x14] cmp r0, r1 blo _020130D4 - bl FUN_02020C2C + bl ErrorHandling _020130D4: add r0, r4, #0x0 pop {r4, pc} @@ -38699,7 +38699,7 @@ _020130F4: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013100 - bl FUN_02020C2C + bl ErrorHandling _02013100: add r0, r4, #0x0 pop {r4, pc} @@ -38725,7 +38725,7 @@ _02013120: ldr r1, [r1, #0x14] cmp r0, r1 blo _0201312C - bl FUN_02020C2C + bl ErrorHandling _0201312C: add r0, r4, #0x0 pop {r4, pc} @@ -38751,7 +38751,7 @@ _0201314C: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013158 - bl FUN_02020C2C + bl ErrorHandling _02013158: add r0, r4, #0x0 pop {r4, pc} @@ -38777,7 +38777,7 @@ _02013178: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013184 - bl FUN_02020C2C + bl ErrorHandling _02013184: add r0, r4, #0x0 pop {r4, pc} @@ -38801,12 +38801,12 @@ FUN_02013194: ; 0x02013194 add r7, r3, #0x0 cmp r0, #0x0 bne _020131A8 - bl FUN_02020C2C + bl ErrorHandling _020131A8: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _020131B2 - bl FUN_02020C2C + bl ErrorHandling _020131B2: add r0, r5, #0x0 add r0, #0xd8 @@ -38920,13 +38920,13 @@ FUN_0201327C: ; 0x0201327C push {r4, lr} add r4, r0, #0x0 bne _02013286 - bl FUN_02020C2C + bl ErrorHandling _02013286: ldr r0, _020132B8 ; =0x021C4850 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02013292 - bl FUN_02020C2C + bl ErrorHandling _02013292: ldr r0, _020132B8 ; =0x021C4850 mov r1, #0x0 @@ -38945,7 +38945,7 @@ _020132A8: add r2, r2, #0x4 cmp r1, #0x10 blt _0201329A - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} nop _020132B8: .word 0x021C4850 @@ -38955,13 +38955,13 @@ FUN_020132BC: ; 0x020132BC push {r4, lr} add r4, r0, #0x0 bne _020132C6 - bl FUN_02020C2C + bl ErrorHandling _020132C6: ldr r0, _020132FC ; =0x021C4850 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020132D2 - bl FUN_02020C2C + bl ErrorHandling _020132D2: ldr r0, _020132FC ; =0x021C4850 mov r1, #0x0 @@ -38983,7 +38983,7 @@ _020132EE: add r2, r2, #0x4 cmp r1, #0x10 blt _020132DA - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} .balign 4 _020132FC: .word 0x021C4850 @@ -39566,7 +39566,7 @@ FUN_020136C0: ; 0x020136C0 push {r4, lr} add r4, r0, #0x0 bne _020136CA - bl FUN_02020C2C + bl ErrorHandling _020136CA: cmp r4, #0x0 beq _020136DE @@ -39587,7 +39587,7 @@ FUN_020136E0: ; 0x020136E0 add r4, r1, #0x0 cmp r5, #0x0 bne _020136EE - bl FUN_02020C2C + bl ErrorHandling _020136EE: cmp r5, #0x0 beq _020136F4 @@ -39667,7 +39667,7 @@ FUN_02013764: ; 0x02013764 add r5, r0, #0x0 cmp r6, #0x4 blo _02013772 - bl FUN_02020C2C + bl ErrorHandling _02013772: cmp r6, #0x4 bhs _020137B8 @@ -39829,13 +39829,13 @@ FUN_020138A0: ; 0x020138A0 add r4, r1, #0x0 cmp r5, #0x5 blo _020138AE - bl FUN_02020C2C + bl ErrorHandling _020138AE: add r0, r5, #0x0 bl FUN_02013974 cmp r4, r0 blo _020138BC - bl FUN_02020C2C + bl ErrorHandling _020138BC: ldr r1, _02013910 ; =0x020ED54C lsl r2, r5, #0x1 @@ -39965,7 +39965,7 @@ FUN_02013980: ; 0x02013980 add r6, r2, #0x0 cmp r4, #0x5 blo _02013990 - bl FUN_02020C2C + bl ErrorHandling _02013990: strh r4, [r5, #0x0] strh r6, [r5, #0x2] @@ -39980,7 +39980,7 @@ FUN_02013998: ; 0x02013998 add r6, r2, #0x0 cmp r4, #0x2 blo _020139A8 - bl FUN_02020C2C + bl ErrorHandling _020139A8: lsl r0, r4, #0x1 add r0, r5, r0 @@ -40425,7 +40425,7 @@ _02013CA4: cmp r2, #0x0 bne _02013C96 _02013CAC: - bl FUN_02020C2C + bl ErrorHandling ldr r0, _02013CD0 ; =0x0000FFFF pop {r3-r7, pc} _02013CB4: @@ -40453,7 +40453,7 @@ FUN_02013CD4: ; 0x02013CD4 bl FUN_02016998 add r4, r0, #0x0 bne _02013CE8 - bl FUN_02020C2C + bl ErrorHandling _02013CE8: ldr r0, [r5, #0x0] ldr r1, [r5, #0xc] @@ -40482,22 +40482,22 @@ FUN_02013D18: ; 0x02013D18 push {r4, lr} add r4, r0, #0x0 bne _02013D22 - bl FUN_02020C2C + bl ErrorHandling _02013D22: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02013D2C - bl FUN_02020C2C + bl ErrorHandling _02013D2C: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02013D36 - bl FUN_02020C2C + bl ErrorHandling _02013D36: ldr r0, [r4, #0x10] cmp r0, #0x0 bne _02013D40 - bl FUN_02020C2C + bl ErrorHandling _02013D40: ldr r0, [r4, #0x0] bl FUN_02016A18 @@ -40551,20 +40551,20 @@ FUN_02013D98: ; 0x02013D98 bl FUN_02014024 add r4, r0, #0x0 bne _02013DAA - bl FUN_02020C2C + bl ErrorHandling _02013DAA: ldr r0, [r5, #0x4] ldr r0, [r0, #0x8] cmp r0, #0x0 beq _02013DB6 - bl FUN_02020C2C + bl ErrorHandling _02013DB6: ldr r0, [r5, #0x4] bl FUN_0201407C str r0, [r4, #0x0] cmp r0, #0x0 bne _02013DC6 - bl FUN_02020C2C + bl ErrorHandling _02013DC6: ldr r0, [r5, #0x4] ldr r1, [r4, #0x0] @@ -40620,14 +40620,14 @@ FUN_02013E14: ; 0x02013E14 bl FUN_02014050 add r4, r0, #0x0 bne _02013E26 - bl FUN_02020C2C + bl ErrorHandling _02013E26: ldr r0, [r5, #0x8] bl FUN_02014090 str r0, [r4, #0x0] cmp r0, #0x0 bne _02013E36 - bl FUN_02020C2C + bl ErrorHandling _02013E36: ldr r0, [r5, #0x4] ldr r1, [r4, #0x0] @@ -40683,7 +40683,7 @@ FUN_02013E84: ; 0x02013E84 bl FUN_02013FF8 add r4, r0, #0x0 bne _02013E96 - bl FUN_02020C2C + bl ErrorHandling _02013E96: add r0, r4, #0x0 add r1, r5, #0x0 @@ -40708,7 +40708,7 @@ FUN_02013EB0: ; 0x02013EB0 add r4, r1, #0x0 cmp r5, #0x0 bne _02013EBE - bl FUN_02020C2C + bl ErrorHandling _02013EBE: str r4, [r5, #0x20] pop {r3-r5, pc} @@ -40861,7 +40861,7 @@ FUN_02013F68: ; 0x02013F68 bl FUN_02016998 add r7, r0, #0x0 bne _02013F7C - bl FUN_02020C2C + bl ErrorHandling _02013F7C: mov r4, #0x0 cmp r6, #0x0 @@ -40889,7 +40889,7 @@ FUN_02013F98: ; 0x02013F98 bl FUN_02016998 add r7, r0, #0x0 bne _02013FAE - bl FUN_02020C2C + bl ErrorHandling _02013FAE: mov r4, #0x0 cmp r6, #0x0 @@ -40916,7 +40916,7 @@ FUN_02013FC8: ; 0x02013FC8 bl FUN_02016998 add r7, r0, #0x0 bne _02013FDE - bl FUN_02020C2C + bl ErrorHandling _02013FDE: mov r4, #0x0 cmp r6, #0x0 @@ -41824,7 +41824,7 @@ FUN_0201466C: ; 0x0201466C lsr r0, r0, #0x1c cmp r0, #0x1 beq _02014680 - bl FUN_02020C2C + bl ErrorHandling _02014680: add r0, r4, #0x0 add r0, #0x9a @@ -42613,7 +42613,7 @@ FUN_02014C3C: ; 0x02014C3C add r4, r0, #0x0 cmp r4, #0x19 blo _02014C48 - bl FUN_02020C2C + bl ErrorHandling _02014C48: ldr r0, _02014C50 ; =0x020ED64C ldrb r0, [r0, r4] @@ -42637,7 +42637,7 @@ FUN_02014C54: ; 0x02014C54 str r2, [sp, #0x0] cmp r0, r1 blo _02014C74 - bl FUN_02020C2C + bl ErrorHandling _02014C74: ldr r0, [sp, #0x4] mov r1, #0x1d @@ -42649,7 +42649,7 @@ _02014C74: ldr r0, [r0, #0x10] cmp r0, #0x0 beq _02014C8C - bl FUN_02020C2C + bl ErrorHandling _02014C8C: ldr r0, [r5, #0x0] mov r2, #0x1d @@ -42777,7 +42777,7 @@ FUN_02014D7C: ; 0x02014D7C add r4, r1, #0x0 cmp r4, r0 blo _02014D8C - bl FUN_02020C2C + bl ErrorHandling _02014D8C: mov r0, #0x1d lsl r0, r0, #0x4 @@ -42937,7 +42937,7 @@ _02014EA0: ldr r0, [r0, #0x0] cmp r0, #0x22 blo _02014EB2 - bl FUN_02020C2C + bl ErrorHandling _02014EB2: ldr r1, [r5, #0xc] add r0, r5, #0x0 @@ -42969,7 +42969,7 @@ _02014EE6: lsl r0, r0, #0x8 cmp r1, r0 blt _02014EA0 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 str r0, [r5, #0x1c] _02014EF8: @@ -42986,7 +42986,7 @@ FUN_02014F08: ; 0x02014F08 ldr r4, [r0, r1] cmp r2, #0x1 beq _02014F16 - bl FUN_02020C2C + bl ErrorHandling _02014F16: add r0, r4, #0x0 pop {r4, pc} @@ -43043,7 +43043,7 @@ _02014F68: lsr r3, r1, #0x18 cmp r3, #0x4 blo _02014F3E - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} nop @@ -43086,7 +43086,7 @@ FUN_02014FA8: ; 0x02014FA8 ldrb r0, [r4, #0x0] cmp r0, #0x8 blo _02014FC4 - bl FUN_02020C2C + bl ErrorHandling _02014FC4: pop {r4, pc} .balign 4 @@ -43155,7 +43155,7 @@ _0201501C: str r0, [r6, #0x0] pop {r3-r6, pc} _02015048: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x4 pop {r3-r6, pc} @@ -43197,7 +43197,7 @@ _02015082: str r0, [r4, #0x0] b _020150A2 _0201509E: - bl FUN_02020C2C + bl ErrorHandling _020150A2: add r0, sp, #0x0 ldrb r0, [r0, #0x0] @@ -43224,7 +43224,7 @@ _020150B6: str r0, [r6, #0x0] pop {r3-r6, pc} _020150D4: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x4 pop {r3-r6, pc} @@ -43269,7 +43269,7 @@ _02015112: str r0, [r6, #0x0] b _02015132 _0201512E: - bl FUN_02020C2C + bl ErrorHandling _02015132: add r0, r5, #0x0 add r1, sp, #0x0 @@ -43297,7 +43297,7 @@ _0201514C: str r0, [sp, #0x4] b _0201516C _02015168: - bl FUN_02020C2C + bl ErrorHandling _0201516C: ldr r0, [sp, #0x4] add r0, r7, r0 @@ -43568,7 +43568,7 @@ _02015334: str r0, [sp, #0x8] b _02015362 _0201535E: - bl FUN_02020C2C + bl ErrorHandling _02015362: add r1, sp, #0x0 add r0, r5, #0x0 @@ -43578,7 +43578,7 @@ _02015362: ldrb r0, [r0, #0x1] cmp r0, #0x11 bls _02015378 - bl FUN_02020C2C + bl ErrorHandling _02015378: add r0, sp, #0xc add r1, sp, #0x8 @@ -43616,7 +43616,7 @@ _020153A6: str r0, [sp, #0x4] b _020153CA _020153C6: - bl FUN_02020C2C + bl ErrorHandling _020153CA: add r0, sp, #0x0 ldrb r1, [r0, #0x1] @@ -43657,7 +43657,7 @@ FUN_02015404: ; 0x02015404 ldr r0, [r4, #0x50] cmp r0, #0x0 beq _02015412 - bl FUN_02020C2C + bl ErrorHandling _02015412: ldr r0, [r4, #0xc] add r0, r0, #0x4 @@ -43766,7 +43766,7 @@ _020154C4: str r0, [sp, #0x4] b _020154E4 _020154E0: - bl FUN_02020C2C + bl ErrorHandling _020154E4: add r0, r4, #0x0 add r1, sp, #0x0 @@ -43791,7 +43791,7 @@ _02015502: add sp, #0xc pop {r3-r4, pc} _02015514: - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc pop {r3-r4, pc} @@ -43884,7 +43884,7 @@ _020155B4: str r0, [r4, #0x64] pop {r3-r4, pc} _020155C6: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -43926,7 +43926,7 @@ _02015600: str r0, [r4, #0x64] pop {r3-r4, pc} _02015616: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -43983,7 +43983,7 @@ _0201566E: add r4, #0x78 b _0201567C _02015678: - bl FUN_02020C2C + bl ErrorHandling _0201567C: add r1, sp, #0x0 add r0, r5, #0x0 @@ -44012,7 +44012,7 @@ _02015698: str r0, [sp, #0x4] b _020156B8 _020156B4: - bl FUN_02020C2C + bl ErrorHandling _020156B8: add r0, r5, #0x0 add r1, sp, #0x0 @@ -44035,7 +44035,7 @@ _020156D0: str r0, [r4, #0x0] pop {r3-r5, pc} _020156E0: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x8 pop {r3-r5, pc} @@ -44123,7 +44123,7 @@ _02015778: _0201578A: cmp r0, #0x1c beq _02015792 - bl FUN_02020C2C + bl ErrorHandling _02015792: pop {r4, pc} .balign 4 @@ -44170,7 +44170,7 @@ _020157D2: str r0, [r4, #0x6c] pop {r3-r4, pc} _020157E2: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -44268,7 +44268,7 @@ _02015886: _02015890: cmp r1, #0x0 bne _02015898 - bl FUN_02020C2C + bl ErrorHandling _02015898: pop {r4, pc} nop @@ -44339,7 +44339,7 @@ _020158F6: str r0, [r3, #0x0] pop {r3, pc} _02015904: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 @@ -44412,7 +44412,7 @@ _02015972: str r0, [r1, #0x30] pop {r3, pc} _02015984: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 @@ -44577,7 +44577,7 @@ _02015AA6: str r1, [r0, #0x0] b _02015AC4 _02015AC0: - bl FUN_02020C2C + bl ErrorHandling _02015AC4: add r0, r4, #0x0 add r0, #0x2c @@ -44680,7 +44680,7 @@ _02015B64: str r1, [r0, #0x0] b _02015B82 _02015B7E: - bl FUN_02020C2C + bl ErrorHandling _02015B82: add r0, r4, #0x0 add r0, #0x2c @@ -44837,7 +44837,7 @@ _02015C90: str r0, [r4, #0x0] b _02015CA4 _02015CA0: - bl FUN_02020C2C + bl ErrorHandling _02015CA4: add r0, r4, #0x0 add r0, #0x2c @@ -44893,7 +44893,7 @@ FUN_02015CF8: ; 0x02015CF8 add r4, r1, #0x0 cmp r5, #0x3 blt _02015D06 - bl FUN_02020C2C + bl ErrorHandling _02015D06: ldr r0, _02015D10 ; =0x020ED72C lsl r1, r5, #0x1 @@ -45327,8 +45327,8 @@ _02016002: .balign 4 _02016010: .word 0x020EDB10 - thumb_func_start FUN_02016014 -FUN_02016014: ; 0x02016014 + thumb_func_start InitSystemForTheGame +InitSystemForTheGame: ; 0x02016014 push {r3-r5, lr} blx FUN_020CC1B4 blx FUN_020C5974 @@ -45423,7 +45423,7 @@ FUN_02016014: ; 0x02016014 blx FUN_020CC26C add r5, r0, #0x0 bne _02016108 - bl FUN_02020C2C + bl ErrorHandling _02016108: add r0, r5, #0x0 add r1, r4, #0x0 @@ -45449,8 +45449,8 @@ _0201613C: .word FUN_02015EA0 _02016140: .word 0x04000208 _02016144: .word 0x021C4918 - thumb_func_start FUN_02016148 -FUN_02016148: ; 0x02016148 + thumb_func_start InitGraphicMemory +InitGraphicMemory: ; 0x02016148 push {r3, lr} ldr r0, _02016198 ; =0x000001FF blx FUN_020C63A8 @@ -46299,7 +46299,7 @@ _02016772: strb r7, [r0, r7] b _02016792 _0201678E: - bl FUN_02020C2C + bl ErrorHandling _02016792: ldr r0, [sp, #0x0] add r7, r7, #0x1 @@ -46410,7 +46410,7 @@ FUN_02016834: ; 0x02016834 blx FUN_020CD374 cmp r0, #0x12 bne _0201684C - bl FUN_02020C2C + bl ErrorHandling _0201684C: ldr r1, _020168CC ; =0x021C4D28 ldr r0, [r1, #0x10] @@ -46457,19 +46457,19 @@ _0201684C: mov r0, #0x1 pop {r3-r7, pc} _020168AA: - bl FUN_02020C2C + bl ErrorHandling b _020168C6 _020168B0: - bl FUN_02020C2C + bl ErrorHandling b _020168C6 _020168B6: - bl FUN_02020C2C + bl ErrorHandling b _020168C6 _020168BC: - bl FUN_02020C2C + bl ErrorHandling b _020168C6 _020168C2: - bl FUN_02020C2C + bl ErrorHandling _020168C6: mov r0, #0x0 add sp, #0x8 @@ -46484,7 +46484,7 @@ FUN_020168D0: ; 0x020168D0 blx FUN_020CD374 cmp r0, #0x12 bne _020168E0 - bl FUN_02020C2C + bl ErrorHandling _020168E0: ldr r0, _02016940 ; =0x021C4D28 ldr r1, [r0, #0x0] @@ -46510,7 +46510,7 @@ _020168E0: blx FUN_020ADDF0 b _02016916 _02016912: - bl FUN_02020C2C + bl ErrorHandling _02016916: ldr r1, _02016940 ; =0x021C4D28 mov r0, #0x0 @@ -46546,7 +46546,7 @@ FUN_02016944: ; 0x02016944 add r6, r3, #0x0 cmp r5, #0x0 bne _02016956 - bl FUN_02020C2C + bl ErrorHandling _02016956: blx FUN_020CD310 add r4, #0x10 @@ -46673,7 +46673,7 @@ FUN_02016A18: ; 0x02016A18 ldr r7, [r1, r0] cmp r7, #0x0 bne _02016A3E - bl FUN_02020C2C + bl ErrorHandling _02016A3E: ldr r0, _02016A88 ; =0x021C4D28 lsl r5, r4, #0x1 @@ -46689,7 +46689,7 @@ _02016A50: ldrh r0, [r0, r5] cmp r0, #0x0 bne _02016A5E - bl FUN_02020C2C + bl ErrorHandling _02016A5E: ldr r0, _02016A88 ; =0x021C4D28 ldr r1, [r0, #0xc] @@ -46706,7 +46706,7 @@ _02016A5E: blx FUN_020CD324 pop {r3-r7, pc} _02016A80: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} nop _02016A88: .word 0x021C4D28 @@ -46719,7 +46719,7 @@ FUN_02016A8C: ; 0x02016A8C blx FUN_020CD374 cmp r0, #0x12 bne _02016A9E - bl FUN_02020C2C + bl ErrorHandling _02016A9E: ldr r0, _02016AF4 ; =0x021C4D28 ldrh r1, [r0, #0x14] @@ -46732,7 +46732,7 @@ _02016A9E: ldr r6, [r1, r0] cmp r6, #0x0 bne _02016AB8 - bl FUN_02020C2C + bl ErrorHandling _02016AB8: sub r0, r4, #0x4 ldr r0, [r0, #0x0] @@ -46740,7 +46740,7 @@ _02016AB8: lsr r0, r0, #0x18 cmp r0, r5 beq _02016AC8 - bl FUN_02020C2C + bl ErrorHandling _02016AC8: sub r4, #0x10 add r0, r6, #0x0 @@ -46752,7 +46752,7 @@ _02016AC8: ldrh r0, [r0, r4] cmp r0, #0x0 bne _02016AE2 - bl FUN_02020C2C + bl ErrorHandling _02016AE2: ldr r0, _02016AF4 ; =0x021C4D28 ldr r1, [r0, #0xc] @@ -46761,7 +46761,7 @@ _02016AE2: strh r0, [r1, r4] pop {r4-r6, pc} _02016AEE: - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} .balign 4 _02016AF4: .word 0x021C4D28 @@ -46781,7 +46781,7 @@ FUN_02016AF8: ; 0x02016AF8 blx FUN_020ADDC8 pop {r3, pc} _02016B12: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop @@ -46802,7 +46802,7 @@ FUN_02016B20: ; 0x02016B20 blx FUN_020AE82C pop {r4, pc} _02016B3A: - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} .balign 4 _02016B40: .word 0x021C4D28 @@ -46815,7 +46815,7 @@ FUN_02016B44: ; 0x02016B44 blx FUN_020CD374 cmp r0, #0x12 bne _02016B56 - bl FUN_02020C2C + bl ErrorHandling _02016B56: add r0, r5, #0x0 sub r0, #0x10 @@ -46839,7 +46839,7 @@ _02016B56: blx FUN_020ADE2C pop {r3-r5, pc} _02016B84: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} nop _02016B8C: .word 0x021C4D28 @@ -52092,17 +52092,17 @@ FUN_020191D0: ; 0x020191D0 push {r4, lr} add r4, r0, #0x0 bne _020191DA - bl FUN_02020C2C + bl ErrorHandling _020191DA: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _020191E4 - bl FUN_02020C2C + bl ErrorHandling _020191E4: ldrb r0, [r4, #0x4] cmp r0, #0x8 blo _020191EE - bl FUN_02020C2C + bl ErrorHandling _020191EE: ldrb r1, [r4, #0x4] mov r0, #0x2c @@ -52112,7 +52112,7 @@ _020191EE: ldrb r0, [r0, #0x1c] cmp r0, #0x3 blo _02019202 - bl FUN_02020C2C + bl ErrorHandling _02019202: ldrb r2, [r4, #0x4] mov r1, #0x2c @@ -52134,17 +52134,17 @@ FUN_02019220: ; 0x02019220 push {r4, lr} add r4, r0, #0x0 bne _0201922A - bl FUN_02020C2C + bl ErrorHandling _0201922A: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02019234 - bl FUN_02020C2C + bl ErrorHandling _02019234: ldrb r0, [r4, #0x4] cmp r0, #0x8 blo _0201923E - bl FUN_02020C2C + bl ErrorHandling _0201923E: ldrb r1, [r4, #0x4] mov r0, #0x2c @@ -52154,7 +52154,7 @@ _0201923E: ldrb r0, [r0, #0x1c] cmp r0, #0x3 blo _02019252 - bl FUN_02020C2C + bl ErrorHandling _02019252: ldrb r2, [r4, #0x4] mov r1, #0x2c @@ -56534,7 +56534,7 @@ FUN_0201B234: ; 0x0201B234 bl FUN_0201B1E4 cmp r4, #0x0 bne _0201B24A - bl FUN_02020C2C + bl ErrorHandling _0201B24A: ldr r1, [r4, #0x0] add r0, r5, #0x0 @@ -56807,7 +56807,7 @@ _0201B452: blx r1 cmp r0, #0x0 beq _0201B468 - bl FUN_02020C2C + bl ErrorHandling _0201B468: add sp, #0x10 mov r0, #0x0 @@ -56822,7 +56822,7 @@ _0201B46E: blx r1 cmp r0, #0x0 beq _0201B484 - bl FUN_02020C2C + bl ErrorHandling _0201B484: add sp, #0x10 mov r0, #0x0 @@ -56837,7 +56837,7 @@ _0201B48A: blx r1 cmp r0, #0x0 beq _0201B4A0 - bl FUN_02020C2C + bl ErrorHandling _0201B4A0: add sp, #0x10 mov r0, #0x0 @@ -56969,7 +56969,7 @@ FUN_0201B580: ; 0x0201B580 add r5, r0, #0x0 add r4, r1, #0x0 bne _0201B58C - bl FUN_02020C2C + bl ErrorHandling _0201B58C: add r1, r4, #0x0 add r1, #0x34 @@ -57416,7 +57416,7 @@ FUN_0201B8B8: ; 0x0201B8B8 ldr r0, _0201B8DC ; =0x0000FFFE cmp r1, r0 beq _0201B8C8 - bl FUN_02020C2C + bl ErrorHandling _0201B8C8: ldrh r1, [r4, #0x0] ldr r0, _0201B8DC ; =0x0000FFFE @@ -57440,7 +57440,7 @@ FUN_0201B8E0: ; 0x0201B8E0 ldr r0, _0201B8F4 ; =0x0000FFFE cmp r1, r0 beq _0201B8F0 - bl FUN_02020C2C + bl ErrorHandling _0201B8F0: ldrh r0, [r4, #0x2] pop {r4, pc} @@ -57473,12 +57473,12 @@ FUN_0201B914: ; 0x0201B914 ldr r0, _0201B938 ; =0x0000FFFE cmp r1, r0 beq _0201B926 - bl FUN_02020C2C + bl ErrorHandling _0201B926: ldrh r0, [r5, #0x4] cmp r4, r0 blo _0201B930 - bl FUN_02020C2C + bl ErrorHandling _0201B930: lsl r0, r4, #0x1 add r0, r5, r0 @@ -57994,14 +57994,14 @@ FUN_0201BCFC: ; 0x0201BCFC add r5, r0, #0x0 cmp r5, #0x8 blo _0201BD08 - bl FUN_02020C2C + bl ErrorHandling _0201BD08: ldr r6, _0201BD40 ; =0x021C5714 lsl r4, r5, #0x2 ldr r0, [r6, r4] cmp r0, #0x0 bne _0201BD16 - bl FUN_02020C2C + bl ErrorHandling _0201BD16: cmp r5, #0x8 bhs _0201BD3C @@ -58711,7 +58711,7 @@ FUN_0201C24C: ; 0x0201C24C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201C25E - bl FUN_02020C2C + bl ErrorHandling _0201C25E: add r0, r4, #0x0 mov r1, #0xc @@ -58720,7 +58720,7 @@ _0201C25E: cmp r0, #0x0 str r0, [r1, #0x0] bne _0201C272 - bl FUN_02020C2C + bl ErrorHandling _0201C272: add r0, r4, #0x0 lsl r1, r5, #0x4 @@ -58748,7 +58748,7 @@ FUN_0201C29C: ; 0x0201C29C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201C2AA - bl FUN_02020C2C + bl ErrorHandling _0201C2AA: ldr r0, _0201C2C4 ; =0x021C5934 ldr r0, [r0, #0x0] @@ -58775,7 +58775,7 @@ FUN_0201C2C8: ; 0x0201C2C8 add r7, r3, #0x0 cmp r0, #0x0 bne _0201C2DE - bl FUN_02020C2C + bl ErrorHandling _0201C2DE: ldr r1, _0201C308 ; =0x021C5934 ldr r0, [r1, #0x0] @@ -58787,7 +58787,7 @@ _0201C2DE: ldr r0, [r0, #0x0] cmp r1, r0 blo _0201C2FA - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201C2FA: @@ -60061,7 +60061,7 @@ FUN_0201CC08: ; 0x0201CC08 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CC16 - bl FUN_02020C2C + bl ErrorHandling _0201CC16: ldr r0, _0201CC20 ; =0x021C5978 mov r1, #0x0 @@ -60080,7 +60080,7 @@ FUN_0201CC24: ; 0x0201CC24 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CC36 - bl FUN_02020C2C + bl ErrorHandling _0201CC36: cmp r4, #0x5 bhs _0201CC3E @@ -60203,7 +60203,7 @@ FUN_0201CD04: ; 0x0201CD04 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CD14 - bl FUN_02020C2C + bl ErrorHandling _0201CD14: bl FUN_0201CCC0 add r4, r0, #0x0 @@ -60234,7 +60234,7 @@ FUN_0201CD38: ; 0x0201CD38 mov r5, #0x3 cmp r0, #0x0 beq _0201CD4E - bl FUN_02020C2C + bl ErrorHandling _0201CD4E: ldr r0, _0201CD8C ; =0x021C5978 ldrh r0, [r0, #0x18] @@ -60320,7 +60320,7 @@ FUN_0201CDD0: ; 0x0201CDD0 bl FUN_0201CE2C cmp r0, #0x1 beq _0201CDF2 - bl FUN_02020C2C + bl ErrorHandling _0201CDF2: ldr r0, _0201CDFC ; =0x021C5978 mov r1, #0x0 @@ -60344,7 +60344,7 @@ FUN_0201CE04: ; 0x0201CE04 bl FUN_0201CCC0 cmp r0, #0x1 beq _0201CE20 - bl FUN_02020C2C + bl ErrorHandling _0201CE20: ldr r0, _0201CE28 ; =0x021C5978 mov r1, #0x1 @@ -60871,12 +60871,12 @@ FUN_0201D1F8: ; 0x0201D1F8 bl FUN_0201D2AC cmp r0, #0x1 bne _0201D20A - bl FUN_02020C2C + bl ErrorHandling _0201D20A: bl FUN_0201DAAC add r4, r0, #0x0 bne _0201D21A - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201D21A: @@ -60915,12 +60915,12 @@ FUN_0201D250: ; 0x0201D250 bl FUN_0201D2AC cmp r0, #0x1 bne _0201D262 - bl FUN_02020C2C + bl ErrorHandling _0201D262: bl FUN_0201DAAC add r4, r0, #0x0 bne _0201D272 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201D272: @@ -60989,13 +60989,13 @@ FUN_0201D2DC: ; 0x0201D2DC add r4, r0, #0x0 add r5, r1, #0x0 bne _0201D2E8 - bl FUN_02020C2C + bl ErrorHandling _0201D2E8: add r0, r4, #0x0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D2F6 - bl FUN_02020C2C + bl ErrorHandling _0201D2F6: str r5, [r4, #0x0] ldr r1, [r4, #0x4] @@ -61032,7 +61032,7 @@ _0201D32C: bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D33A - bl FUN_02020C2C + bl ErrorHandling _0201D33A: add r0, r4, #0x0 add r0, #0x3c @@ -61106,7 +61106,7 @@ FUN_0201D3B0: ; 0x0201D3B0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D3BE - bl FUN_02020C2C + bl ErrorHandling _0201D3BE: add r0, r4, #0x0 add r0, #0x3c @@ -61129,7 +61129,7 @@ FUN_0201D3D4: ; 0x0201D3D4 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D3E6 - bl FUN_02020C2C + bl ErrorHandling _0201D3E6: add r0, r4, #0x0 add r0, #0x3c @@ -61194,12 +61194,12 @@ FUN_0201D458: ; 0x0201D458 bl FUN_0201D6D8 add r4, r0, #0x0 bne _0201D468 - bl FUN_02020C2C + bl ErrorHandling _0201D468: bl FUN_0201DAAC add r5, r0, #0x0 bne _0201D474 - bl FUN_02020C2C + bl ErrorHandling _0201D474: add r0, r4, #0x0 add r0, #0x3c @@ -61459,7 +61459,7 @@ FUN_0201D658: ; 0x0201D658 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201D666 - bl FUN_02020C2C + bl ErrorHandling _0201D666: ldr r1, _0201D670 ; =0x021C5994 mov r2, #0x0 @@ -61477,7 +61477,7 @@ FUN_0201D674: ; 0x0201D674 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201D684 - bl FUN_02020C2C + bl ErrorHandling _0201D684: ldr r0, _0201D68C ; =0x021C5994 str r4, [r0, #0x0] @@ -61786,7 +61786,7 @@ FUN_0201D86C: ; 0x0201D86C str r0, [r4, #0x0] cmp r0, r1 bne _0201D8B8 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201D8B8: @@ -61820,7 +61820,7 @@ _0201D8C4: str r0, [r6, #0x0] cmp r0, r1 bne _0201D902 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201D902: @@ -62254,7 +62254,7 @@ _0201DBD6: _0201DC12: cmp r2, #0x0 bne _0201DC1A - bl FUN_02020C2C + bl ErrorHandling _0201DC1A: ldr r0, _0201DC38 ; =0x021C5994 mov r2, #0x0 @@ -62269,7 +62269,7 @@ _0201DC1A: _0201DC2E: cmp r2, #0x0 bne _0201DC36 - bl FUN_02020C2C + bl ErrorHandling _0201DC36: pop {r3, pc} .balign 4 @@ -62424,7 +62424,7 @@ _0201DD32: ldrb r1, [r4, r1] tst r0, r1 beq _0201DD54 - bl FUN_02020C2C + bl ErrorHandling _0201DD54: add r2, sp, #0x0 ldrb r3, [r2, #0x0] @@ -62542,7 +62542,7 @@ _0201DE0E: ldrb r1, [r4, r1] tst r0, r1 bne _0201DE2A - bl FUN_02020C2C + bl ErrorHandling _0201DE2A: ldrb r0, [r7, #0x0] mov r1, #0x1 @@ -62718,7 +62718,7 @@ FUN_0201DF44: ; 0x0201DF44 add r3, r6, r5 cmp r3, r2 bls _0201DF6C - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 b _0201DF6E _0201DF6C: @@ -62734,7 +62734,7 @@ _0201DF6E: add r2, r3, r5 cmp r2, r1 bls _0201DF8A - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201DF8A: @@ -62939,7 +62939,7 @@ FUN_0201E0E4: ; 0x0201E0E4 bl FUN_0201E428 add r4, r0, #0x0 bne _0201E0F8 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E0F8: @@ -62973,7 +62973,7 @@ FUN_0201E128: ; 0x0201E128 bl FUN_0201E428 add r4, r0, #0x0 bne _0201E13C - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E13C: @@ -63005,13 +63005,13 @@ FUN_0201E168: ; 0x0201E168 add r4, r0, #0x0 add r5, r1, #0x0 bne _0201E174 - bl FUN_02020C2C + bl ErrorHandling _0201E174: add r0, r4, #0x0 bl FUN_0201E3F0 add r4, r0, #0x0 bne _0201E182 - bl FUN_02020C2C + bl ErrorHandling _0201E182: str r5, [r4, #0x0] ldr r1, [r4, #0x4] @@ -63058,7 +63058,7 @@ FUN_0201E1C8: ; 0x0201E1C8 bl FUN_0201E3F0 add r4, r0, #0x0 bne _0201E1D6 - bl FUN_02020C2C + bl ErrorHandling _0201E1D6: add r0, r4, #0x0 add r0, #0x2c @@ -63115,7 +63115,7 @@ FUN_0201E230: ; 0x0201E230 cmp r0, #0x0 bne _0201E244 bne _0201E240 - bl FUN_02020C2C + bl ErrorHandling _0201E240: mov r0, #0x0 pop {r3, pc} @@ -63140,7 +63140,7 @@ FUN_0201E258: ; 0x0201E258 cmp r0, #0x0 bne _0201E26E bne _0201E26A - bl FUN_02020C2C + bl ErrorHandling _0201E26A: mov r0, #0x0 pop {r4, pc} @@ -63210,7 +63210,7 @@ FUN_0201E2C4: ; 0x0201E2C4 bl FUN_0201E1B4 cmp r0, #0x1 bne _0201E2E0 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E2E0: @@ -63295,7 +63295,7 @@ FUN_0201E36C: ; 0x0201E36C ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0201E37C - bl FUN_02020C2C + bl ErrorHandling _0201E37C: ldr r1, [r5, #0x4] mov r0, #0x1 @@ -63673,7 +63673,7 @@ FUN_0201E5F4: ; 0x0201E5F4 add r2, r1, r2 cmp r2, r3 bls _0201E618 - bl FUN_02020C2C + bl ErrorHandling bl FUN_0201E0B8 mov r0, #0x0 b _0201E61A @@ -63690,7 +63690,7 @@ _0201E61A: ldr r1, [sp, #0x10] cmp r2, r1 bls _0201E63A - bl FUN_02020C2C + bl ErrorHandling bl FUN_0201E0B8 mov r0, #0x0 pop {r3-r5, pc} @@ -64304,7 +64304,7 @@ FUN_0201EABC: ; 0x0201EABC add r0, r7, #0x1 cmp r0, r5 ble _0201EADA - bl FUN_02020C2C + bl ErrorHandling _0201EADA: ldr r0, [sp, #0x0] mov r1, #0x24 @@ -65164,7 +65164,7 @@ FUN_0201F100: ; 0x0201F100 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201F112 - bl FUN_02020C2C + bl ErrorHandling _0201F112: mov r1, #0xd4 add r0, r4, #0x0 @@ -65262,7 +65262,7 @@ FUN_0201F1B4: ; 0x0201F1B4 bl FUN_0201F2E4 add r4, r0, #0x0 bne _0201F1C8 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201F1C8: @@ -65323,7 +65323,7 @@ FUN_0201F23C: ; 0x0201F23C push {r4, lr} add r4, r0, #0x0 bne _0201F24A - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4, pc} _0201F24A: @@ -65358,7 +65358,7 @@ FUN_0201F284: ; 0x0201F284 cmp r0, #0x0 bne _0201F294 bne _0201F290 - bl FUN_02020C2C + bl ErrorHandling _0201F290: mov r0, #0x0 pop {r3-r5, pc} @@ -65392,7 +65392,7 @@ FUN_0201F2C0: ; 0x0201F2C0 push {r4, lr} add r4, r0, #0x0 bne _0201F2CA - bl FUN_02020C2C + bl ErrorHandling _0201F2CA: ldrb r0, [r4, #0x3] cmp r0, #0x0 @@ -65450,7 +65450,7 @@ FUN_0201F318: ; 0x0201F318 sub sp, #0x24 add r5, r0, #0x0 bne _0201F324 - bl FUN_02020C2C + bl ErrorHandling _0201F324: add r0, sp, #0x0 blx FUN_020C3F14 @@ -65631,7 +65631,7 @@ FUN_0201F454: ; 0x0201F454 str r0, [r4, #0x0] cmp r0, #0x0 bne _0201F496 - bl FUN_02020C2C + bl ErrorHandling b _0201F496 _0201F492: mov r0, #0x0 @@ -65648,7 +65648,7 @@ _0201F496: str r0, [r6, #0x0] cmp r0, #0x0 bne _0201F4B6 - bl FUN_02020C2C + bl ErrorHandling b _0201F4B6 _0201F4B2: mov r0, #0x0 @@ -65668,7 +65668,7 @@ _0201F4B6: str r0, [r7, #0x0] cmp r0, #0x0 bne _0201F4DE - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc pop {r4-r7, pc} _0201F4DA: @@ -66005,14 +66005,14 @@ FUN_0201F744: ; 0x0201F744 push {r3-r5, lr} add r5, r0, #0x0 bne _0201F74E - bl FUN_02020C2C + bl ErrorHandling _0201F74E: add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201F75C - bl FUN_02020C2C + bl ErrorHandling _0201F75C: add r0, r5, #0x0 add r0, #0xa8 @@ -66077,7 +66077,7 @@ FUN_0201F7C8: ; 0x0201F7C8 add r5, r1, #0x0 cmp r4, #0x0 bne _0201F7D6 - bl FUN_02020C2C + bl ErrorHandling _0201F7D6: ldmia r5!, {r0-r1} stmia r4!, {r0-r1} @@ -66090,7 +66090,7 @@ FUN_0201F7E0: ; 0x0201F7E0 push {r4, lr} add r4, r0, #0x0 bne _0201F7EA - bl FUN_02020C2C + bl ErrorHandling _0201F7EA: add r0, r4, #0x0 pop {r4, pc} @@ -66103,7 +66103,7 @@ FUN_0201F7F0: ; 0x0201F7F0 add r5, r1, #0x0 cmp r4, #0x0 bne _0201F7FE - bl FUN_02020C2C + bl ErrorHandling _0201F7FE: ldmia r5!, {r0-r1} add r4, #0xc @@ -66120,7 +66120,7 @@ FUN_0201F80C: ; 0x0201F80C add r4, r1, #0x0 cmp r5, #0x0 bne _0201F81A - bl FUN_02020C2C + bl ErrorHandling _0201F81A: strb r4, [r5, #0x18] pop {r3-r5, pc} @@ -66131,7 +66131,7 @@ FUN_0201F820: ; 0x0201F820 push {r4, lr} add r4, r0, #0x0 bne _0201F82A - bl FUN_02020C2C + bl ErrorHandling _0201F82A: ldrb r0, [r4, #0x18] pop {r4, pc} @@ -66144,7 +66144,7 @@ FUN_0201F830: ; 0x0201F830 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F83E - bl FUN_02020C2C + bl ErrorHandling _0201F83E: add r5, #0xaa strh r4, [r5, #0x0] @@ -66155,7 +66155,7 @@ FUN_0201F844: ; 0x0201F844 push {r4, lr} add r4, r0, #0x0 bne _0201F84E - bl FUN_02020C2C + bl ErrorHandling _0201F84E: add r4, #0xaa ldrh r0, [r4, #0x0] @@ -66168,7 +66168,7 @@ FUN_0201F854: ; 0x0201F854 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F862 - bl FUN_02020C2C + bl ErrorHandling _0201F862: add r0, r5, #0x0 add r1, r4, #0x0 @@ -66182,7 +66182,7 @@ FUN_0201F86C: ; 0x0201F86C add r4, r1, #0x0 cmp r5, #0x0 bne _0201F87A - bl FUN_02020C2C + bl ErrorHandling _0201F87A: add r5, #0xac str r4, [r5, #0x0] @@ -66193,7 +66193,7 @@ FUN_0201F880: ; 0x0201F880 push {r4, lr} add r4, r0, #0x0 bne _0201F88A - bl FUN_02020C2C + bl ErrorHandling _0201F88A: add r4, #0xac ldr r0, [r4, #0x0] @@ -66206,7 +66206,7 @@ FUN_0201F890: ; 0x0201F890 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F89E - bl FUN_02020C2C + bl ErrorHandling _0201F89E: add r1, r5, #0x0 add r1, #0xaa @@ -66230,7 +66230,7 @@ FUN_0201F8C0: ; 0x0201F8C0 push {r4, lr} add r4, r0, #0x0 bne _0201F8CA - bl FUN_02020C2C + bl ErrorHandling _0201F8CA: add r1, r4, #0x0 add r1, #0xaa @@ -66248,7 +66248,7 @@ FUN_0201F8E0: ; 0x0201F8E0 push {r4, lr} add r4, r0, #0x0 bne _0201F8EA - bl FUN_02020C2C + bl ErrorHandling _0201F8EA: ldr r0, [r4, #0x7c] pop {r4, pc} @@ -66389,7 +66389,7 @@ _0201F9C4: ldr r0, _0201FA00 ; =0x0000FFFF cmp r1, r0 bls _0201F9EC - bl FUN_02020C2C + bl ErrorHandling _0201F9EC: ldr r0, [r5, #0x14] add r4, r4, #0x1 @@ -66492,7 +66492,7 @@ _0201FA7C: ldr r0, _0201FAB8 ; =0x00001FFF cmp r1, r0 bls _0201FAA4 - bl FUN_02020C2C + bl ErrorHandling _0201FAA4: ldrh r0, [r5, #0x1c] add r4, r4, #0x1 @@ -66808,12 +66808,12 @@ FUN_0201FCB0: ; 0x0201FCB0 push {r3-r5, lr} add r5, r0, #0x0 bne _0201FCBA - bl FUN_02020C2C + bl ErrorHandling _0201FCBA: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0201FCC4 - bl FUN_02020C2C + bl ErrorHandling _0201FCC4: mov r1, #0x49 ldr r0, [r5, #0x8] @@ -66821,7 +66821,7 @@ _0201FCC4: bl FUN_02016998 add r4, r0, #0x0 bne _0201FCD6 - bl FUN_02020C2C + bl ErrorHandling _0201FCD6: add r0, r4, #0x0 bl FUN_0201FE44 @@ -66834,7 +66834,7 @@ _0201FCD6: str r0, [r4, #0x0] cmp r0, #0x0 bne _0201FCF4 - bl FUN_02020C2C + bl ErrorHandling _0201FCF4: ldr r0, [r5, #0x0] str r0, [r4, #0x4] @@ -66845,7 +66845,7 @@ _0201FCF4: str r0, [r4, #0x8] cmp r0, #0x0 bne _0201FD0C - bl FUN_02020C2C + bl ErrorHandling _0201FD0C: add r0, r4, #0x0 bl FUN_0202083C @@ -66970,7 +66970,7 @@ FUN_0201FDEC: ; 0x0201FDEC push {r3-r7, lr} add r5, r0, #0x0 bne _0201FDF6 - bl FUN_02020C2C + bl ErrorHandling _0201FDF6: mov r0, #0x12 lsl r0, r0, #0x4 @@ -67339,11 +67339,11 @@ FUN_020200A0: ; 0x020200A0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200AE - bl FUN_02020C2C + bl ErrorHandling _020200AE: cmp r4, #0x2 blt _020200B6 - bl FUN_02020C2C + bl ErrorHandling _020200B6: add r5, #0x34 strb r4, [r5, #0x0] @@ -67356,11 +67356,11 @@ FUN_020200BC: ; 0x020200BC add r4, r1, #0x0 cmp r5, #0x0 bne _020200CA - bl FUN_02020C2C + bl ErrorHandling _020200CA: cmp r4, #0x2 blt _020200D2 - bl FUN_02020C2C + bl ErrorHandling _020200D2: add r5, #0x35 strb r4, [r5, #0x0] @@ -67373,7 +67373,7 @@ FUN_020200D8: ; 0x020200D8 add r4, r1, #0x0 cmp r5, #0x0 bne _020200E6 - bl FUN_02020C2C + bl ErrorHandling _020200E6: str r4, [r5, #0x38] pop {r3-r5, pc} @@ -67386,7 +67386,7 @@ FUN_020200EC: ; 0x020200EC add r4, r1, #0x0 cmp r5, #0x0 bne _020200FA - bl FUN_02020C2C + bl ErrorHandling _020200FA: add r5, #0x26 strb r4, [r5, #0x0] @@ -67399,7 +67399,7 @@ FUN_02020100: ; 0x02020100 add r4, r1, #0x0 cmp r5, #0x0 bne _0202010E - bl FUN_02020C2C + bl ErrorHandling _0202010E: add r0, r5, #0x0 add r0, #0x27 @@ -67601,7 +67601,7 @@ FUN_02020248: ; 0x02020248 add r4, r1, #0x0 cmp r5, #0x0 bne _02020256 - bl FUN_02020C2C + bl ErrorHandling _02020256: add r0, r5, #0x0 add r0, #0x29 @@ -67656,7 +67656,7 @@ FUN_020202A8: ; 0x020202A8 add r4, r1, #0x0 cmp r5, #0x0 bne _020202B6 - bl FUN_02020C2C + bl ErrorHandling _020202B6: add r0, r5, #0x0 add r0, #0x2a @@ -67702,7 +67702,7 @@ FUN_02020300: ; 0x02020300 push {r4, lr} add r4, r0, #0x0 bne _0202030A - bl FUN_02020C2C + bl ErrorHandling _0202030A: add r4, #0x2a ldrb r0, [r4, #0x0] @@ -67794,7 +67794,7 @@ FUN_02020388: ; 0x02020388 push {r4, lr} add r4, r0, #0x0 bne _02020392 - bl FUN_02020C2C + bl ErrorHandling _02020392: ldr r0, [r4, #0x50] pop {r4, pc} @@ -67807,7 +67807,7 @@ FUN_02020398: ; 0x02020398 add r5, r1, #0x0 cmp r4, #0x0 bne _020203A6 - bl FUN_02020C2C + bl ErrorHandling _020203A6: str r5, [r4, #0x30] cmp r5, #0x0 @@ -68998,8 +68998,8 @@ FUN_02020C14: ; 0x02020C14 .balign 4 _02020C28: .word 0x01FF6210 - thumb_func_start FUN_02020C2C -FUN_02020C2C: ; 0x02020C2C + thumb_func_start ErrorHandling +ErrorHandling: ; 0x02020C2C push {r3, lr} bl FUN_02031810 cmp r0, #0x0 @@ -69021,7 +69021,7 @@ FUN_02020C44: ; 0x02020C44 bl FUN_02016998 add r6, r0, #0x0 bne _02020C5A - bl FUN_02020C2C + bl ErrorHandling _02020C5A: add r0, r4, #0x0 lsl r1, r7, #0x3 @@ -69029,7 +69029,7 @@ _02020C5A: str r0, [r6, #0x0] cmp r0, #0x0 bne _02020C6C - bl FUN_02020C2C + bl ErrorHandling _02020C6C: mov r4, #0x0 cmp r7, #0x0 @@ -69056,7 +69056,7 @@ FUN_02020C90: ; 0x02020C90 push {r4, lr} add r4, r0, #0x0 bne _02020C9A - bl FUN_02020C2C + bl ErrorHandling _02020C9A: add r0, r4, #0x0 bl FUN_02020D9C @@ -69074,7 +69074,7 @@ FUN_02020CB0: ; 0x02020CB0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020CBE - bl FUN_02020C2C + bl ErrorHandling _02020CBE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -69096,20 +69096,20 @@ FUN_02020CD4: ; 0x02020CD4 add r6, r2, #0x0 cmp r5, #0x0 bne _02020CE4 - bl FUN_02020C2C + bl ErrorHandling _02020CE4: add r0, r5, #0x0 bl FUN_02020E48 add r4, r0, #0x0 bne _02020CF2 - bl FUN_02020C2C + bl ErrorHandling _02020CF2: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02020CB0 cmp r0, #0x1 beq _02020D02 - bl FUN_02020C2C + bl ErrorHandling _02020D02: str r7, [r4, #0x4] str r6, [r4, #0x0] @@ -69128,24 +69128,24 @@ FUN_02020D10: ; 0x02020D10 str r3, [sp, #0x0] cmp r5, #0x0 bne _02020D22 - bl FUN_02020C2C + bl ErrorHandling _02020D22: cmp r6, #0x0 bne _02020D2A - bl FUN_02020C2C + bl ErrorHandling _02020D2A: add r0, r5, #0x0 bl FUN_02020E48 add r4, r0, #0x0 bne _02020D38 - bl FUN_02020C2C + bl ErrorHandling _02020D38: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02020CB0 cmp r0, #0x1 beq _02020D48 - bl FUN_02020C2C + bl ErrorHandling _02020D48: ldr r0, [sp, #0x0] add r1, r6, #0x0 @@ -69153,7 +69153,7 @@ _02020D48: str r0, [r4, #0x4] cmp r0, #0x0 bne _02020D5A - bl FUN_02020C2C + bl ErrorHandling _02020D5A: str r7, [r4, #0x0] ldr r0, [r5, #0x8] @@ -69170,11 +69170,11 @@ FUN_02020D68: ; 0x02020D68 add r4, r1, #0x0 cmp r5, #0x0 bne _02020D76 - bl FUN_02020C2C + bl ErrorHandling _02020D76: cmp r4, #0x0 bne _02020D7E - bl FUN_02020C2C + bl ErrorHandling _02020D7E: ldr r0, [r4, #0x4] cmp r0, #0x0 @@ -69197,12 +69197,12 @@ FUN_02020D9C: ; 0x02020D9C push {r3-r7, lr} add r5, r0, #0x0 bne _02020DA6 - bl FUN_02020C2C + bl ErrorHandling _02020DA6: ldr r0, [r5, #0x0] cmp r0, #0x0 bne _02020DB0 - bl FUN_02020C2C + bl ErrorHandling _02020DB0: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -69234,7 +69234,7 @@ FUN_02020DD8: ; 0x02020DD8 add r4, r1, #0x0 cmp r5, #0x0 bne _02020DE6 - bl FUN_02020C2C + bl ErrorHandling _02020DE6: ldr r6, [r5, #0x4] mov r1, #0x0 @@ -69264,7 +69264,7 @@ FUN_02020E0C: ; 0x02020E0C push {r4, lr} add r4, r0, #0x0 bne _02020E16 - bl FUN_02020C2C + bl ErrorHandling _02020E16: ldr r0, [r4, #0x4] pop {r4, pc} @@ -69277,7 +69277,7 @@ FUN_02020E1C: ; 0x02020E1C add r4, r1, #0x0 cmp r5, #0x0 bne _02020E2A - bl FUN_02020C2C + bl ErrorHandling _02020E2A: ldr r0, [r5, #0x4] cmp r0, #0x0 @@ -69292,7 +69292,7 @@ FUN_02020E38: ; 0x02020E38 push {r4, lr} add r4, r0, #0x0 bne _02020E42 - bl FUN_02020C2C + bl ErrorHandling _02020E42: ldr r0, [r4, #0x0] pop {r4, pc} @@ -69303,7 +69303,7 @@ FUN_02020E48: ; 0x02020E48 push {r3-r5, lr} add r4, r0, #0x0 bne _02020E52 - bl FUN_02020C2C + bl ErrorHandling _02020E52: ldr r5, [r4, #0x4] mov r2, #0x0 @@ -69333,7 +69333,7 @@ FUN_02020E78: ; 0x02020E78 push {r4, lr} add r4, r0, #0x0 bne _02020E82 - bl FUN_02020C2C + bl ErrorHandling _02020E82: mov r0, #0x0 mvn r0, r0 @@ -69383,7 +69383,7 @@ FUN_02020ED4: ; 0x02020ED4 push {r4, lr} add r4, r0, #0x0 bne _02020EDE - bl FUN_02020C2C + bl ErrorHandling _02020EDE: add r0, r4, #0x0 bl FUN_02021010 @@ -69402,7 +69402,7 @@ FUN_02020EF8: ; 0x02020EF8 add r4, r1, #0x0 cmp r5, #0x0 bne _02020F06 - bl FUN_02020C2C + bl ErrorHandling _02020F06: ldr r0, [r5, #0x0] add r1, r4, #0x0 @@ -69418,7 +69418,7 @@ FUN_02020F10: ; 0x02020F10 str r2, [sp, #0x0] cmp r5, #0x0 bne _02020F22 - bl FUN_02020C2C + bl ErrorHandling _02020F22: add r0, r5, #0x0 bl FUN_020211DC @@ -69465,11 +69465,11 @@ FUN_02020F6C: ; 0x02020F6C add r4, r1, #0x0 cmp r5, #0x0 bne _02020F7A - bl FUN_02020C2C + bl ErrorHandling _02020F7A: cmp r4, #0x0 bne _02020F82 - bl FUN_02020C2C + bl ErrorHandling _02020F82: ldrh r0, [r4, #0x16] cmp r0, #0x1 @@ -69496,7 +69496,7 @@ _02020FA4: blx r1 cmp r0, #0x0 beq _02020FB8 - bl FUN_02020C2C + bl ErrorHandling _02020FB8: ldr r0, [r4, #0x8] cmp r0, #0x0 @@ -69506,7 +69506,7 @@ _02020FB8: blx r1 cmp r0, #0x0 beq _02020FCC - bl FUN_02020C2C + bl ErrorHandling _02020FCC: ldr r0, [r4, #0xc] cmp r0, #0x0 @@ -69516,7 +69516,7 @@ _02020FCC: blx r1 cmp r0, #0x0 beq _02020FE0 - bl FUN_02020C2C + bl ErrorHandling _02020FE0: add r0, r4, #0x0 bl FUN_0202120C @@ -69532,7 +69532,7 @@ FUN_02020FF0: ; 0x02020FF0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020FFE - bl FUN_02020C2C + bl ErrorHandling _02020FFE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -69547,12 +69547,12 @@ FUN_02021010: ; 0x02021010 push {r4-r6, lr} add r5, r0, #0x0 bne _0202101A - bl FUN_02020C2C + bl ErrorHandling _0202101A: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02021024 - bl FUN_02020C2C + bl ErrorHandling _02021024: ldr r0, [r5, #0x0] mov r6, #0x0 @@ -69586,7 +69586,7 @@ FUN_02021050: ; 0x02021050 add r7, r1, #0x0 cmp r6, #0x0 bne _0202105E - bl FUN_02020C2C + bl ErrorHandling _0202105E: ldr r0, [r6, #0x0] mov r4, #0x0 @@ -69625,7 +69625,7 @@ FUN_02021098: ; 0x02021098 push {r4, lr} add r4, r0, #0x0 bne _020210A2 - bl FUN_02020C2C + bl ErrorHandling _020210A2: ldr r0, [r4, #0x0] bl FUN_02020E38 @@ -69637,7 +69637,7 @@ FUN_020210AC: ; 0x020210AC push {r4, lr} add r4, r0, #0x0 bne _020210B6 - bl FUN_02020C2C + bl ErrorHandling _020210B6: add r0, r4, #0x0 bl FUN_02021220 @@ -69649,17 +69649,17 @@ FUN_020210C0: ; 0x020210C0 push {r4, lr} add r4, r0, #0x0 bne _020210CA - bl FUN_02020C2C + bl ErrorHandling _020210CA: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _020210D4 - bl FUN_02020C2C + bl ErrorHandling _020210D4: ldr r0, [r4, #0xc] cmp r0, #0x0 bne _020210E0 - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} _020210E0: add r0, r4, #0x0 @@ -69676,7 +69676,7 @@ FUN_020210F0: ; 0x020210F0 add r4, r1, #0x0 cmp r5, #0x0 bne _020210FE - bl FUN_02020C2C + bl ErrorHandling _020210FE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -69689,18 +69689,18 @@ FUN_0202110C: ; 0x0202110C push {r4, lr} add r4, r0, #0x0 bne _02021116 - bl FUN_02020C2C + bl ErrorHandling _02021116: ldrh r0, [r4, #0x16] cmp r0, #0x0 bne _02021122 - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} _02021122: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _0202112E - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} _0202112E: add r0, r4, #0x0 @@ -69727,7 +69727,7 @@ FUN_02021158: ; 0x02021158 add r4, r1, #0x0 cmp r5, #0x0 bne _02021166 - bl FUN_02020C2C + bl ErrorHandling _02021166: add r0, r5, #0x0 add r1, r4, #0x0 @@ -69740,17 +69740,17 @@ FUN_02021174: ; 0x02021174 push {r4, lr} add r4, r0, #0x0 bne _0202117E - bl FUN_02020C2C + bl ErrorHandling _0202117E: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _02021188 - bl FUN_02020C2C + bl ErrorHandling _02021188: ldr r0, [r4, #0xc] cmp r0, #0x0 beq _02021194 - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} _02021194: add r0, r4, #0x0 @@ -69769,7 +69769,7 @@ FUN_020211AC: ; 0x020211AC push {r4, lr} add r4, r0, #0x0 bne _020211B6 - bl FUN_02020C2C + bl ErrorHandling _020211B6: ldr r0, [r4, #0x4] pop {r4, pc} @@ -69780,7 +69780,7 @@ FUN_020211BC: ; 0x020211BC push {r4, lr} add r4, r0, #0x0 bne _020211C6 - bl FUN_02020C2C + bl ErrorHandling _020211C6: ldr r0, [r4, #0x8] pop {r4, pc} @@ -69791,7 +69791,7 @@ FUN_020211CC: ; 0x020211CC push {r4, lr} add r4, r0, #0x0 bne _020211D6 - bl FUN_02020C2C + bl ErrorHandling _020211D6: ldr r0, [r4, #0xc] pop {r4, pc} @@ -69992,7 +69992,7 @@ FUN_02021334: ; 0x02021334 blx FUN_020BC0FC add r4, r0, #0x0 bne _02021344 - bl FUN_02020C2C + bl ErrorHandling _02021344: ldr r0, [r4, #0x14] add r0, r4, r0 @@ -70387,7 +70387,7 @@ _02021638: ldr r0, [r5, #0x60] cmp r0, #0x0 bne _02021642 - bl FUN_02020C2C + bl ErrorHandling _02021642: ldr r0, [sp, #0x18] ldr r1, [r5, #0x64] @@ -70414,7 +70414,7 @@ _02021660: cmp r0, #0x2 bls _02021678 _02021674: - bl FUN_02020C2C + bl ErrorHandling _02021678: add r0, r5, #0x0 add r0, #0x6a @@ -70928,13 +70928,13 @@ FUN_02021A20: ; 0x02021A20 push {r4, lr} add r4, r0, #0x0 bne _02021A2A - bl FUN_02020C2C + bl ErrorHandling _02021A2A: ldr r1, [r4, #0x4] ldr r0, _02021A44 ; =0xB6F8D2EC cmp r1, r0 beq _02021A36 - bl FUN_02020C2C + bl ErrorHandling _02021A36: ldr r0, _02021A48 ; =0xB6F8D2ED str r0, [r4, #0x4] @@ -70950,13 +70950,13 @@ FUN_02021A4C: ; 0x02021A4C push {r4, lr} add r4, r0, #0x0 bne _02021A56 - bl FUN_02020C2C + bl ErrorHandling _02021A56: ldr r1, [r4, #0x4] ldr r0, _02021A6C ; =0xB6F8D2EC cmp r1, r0 beq _02021A62 - bl FUN_02020C2C + bl ErrorHandling _02021A62: mov r0, #0x0 strh r0, [r4, #0x2] @@ -70974,23 +70974,23 @@ FUN_02021A74: ; 0x02021A74 add r4, r1, #0x0 cmp r5, #0x0 bne _02021A82 - bl FUN_02020C2C + bl ErrorHandling _02021A82: ldr r1, [r5, #0x4] ldr r0, _02021AC8 ; =0xB6F8D2EC cmp r1, r0 beq _02021A8E - bl FUN_02020C2C + bl ErrorHandling _02021A8E: cmp r4, #0x0 bne _02021A96 - bl FUN_02020C2C + bl ErrorHandling _02021A96: ldr r1, [r4, #0x4] ldr r0, _02021AC8 ; =0xB6F8D2EC cmp r1, r0 beq _02021AA2 - bl FUN_02020C2C + bl ErrorHandling _02021AA2: ldrh r2, [r4, #0x2] ldrh r0, [r5, #0x0] @@ -71007,7 +71007,7 @@ _02021AA2: strh r0, [r5, #0x2] pop {r3-r5, pc} _02021AC0: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} nop _02021AC8: .word 0xB6F8D2EC @@ -71019,13 +71019,13 @@ FUN_02021ACC: ; 0x02021ACC add r4, r1, #0x0 cmp r5, #0x0 bne _02021ADA - bl FUN_02020C2C + bl ErrorHandling _02021ADA: ldr r1, [r5, #0x4] ldr r0, _02021B00 ; =0xB6F8D2EC cmp r1, r0 beq _02021AE6 - bl FUN_02020C2C + bl ErrorHandling _02021AE6: ldrh r0, [r5, #0x2] add r1, r4, #0x0 @@ -71053,13 +71053,13 @@ FUN_02021B04: ; 0x02021B04 str r0, [sp, #0x20] cmp r5, #0x0 bne _02021B1C - bl FUN_02020C2C + bl ErrorHandling _02021B1C: ldr r1, [r5, #0x4] ldr r0, _02021C1C ; =0xB6F8D2EC cmp r1, r0 beq _02021B28 - bl FUN_02020C2C + bl ErrorHandling _02021B28: cmp r6, #0x0 bge _02021B30 @@ -71196,7 +71196,7 @@ _02021C06: strh r1, [r0, #0x8] pop {r3-r7, pc} _02021C14: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x8 pop {r3-r7, pc} .balign 4 @@ -71303,23 +71303,23 @@ FUN_02021CE0: ; 0x02021CE0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021CEE - bl FUN_02020C2C + bl ErrorHandling _02021CEE: ldr r1, [r5, #0x4] ldr r0, _02021D34 ; =0xB6F8D2EC cmp r1, r0 beq _02021CFA - bl FUN_02020C2C + bl ErrorHandling _02021CFA: cmp r4, #0x0 bne _02021D02 - bl FUN_02020C2C + bl ErrorHandling _02021D02: ldr r1, [r4, #0x4] ldr r0, _02021D34 ; =0xB6F8D2EC cmp r1, r0 beq _02021D0E - bl FUN_02020C2C + bl ErrorHandling _02021D0E: ldrh r1, [r5, #0x8] ldrh r0, [r4, #0x8] @@ -71351,13 +71351,13 @@ FUN_02021D3C: ; 0x02021D3C push {r4, lr} add r4, r0, #0x0 bne _02021D46 - bl FUN_02020C2C + bl ErrorHandling _02021D46: ldr r1, [r4, #0x4] ldr r0, _02021D58 ; =0xB6F8D2EC cmp r1, r0 beq _02021D52 - bl FUN_02020C2C + bl ErrorHandling _02021D52: ldrh r0, [r4, #0x2] pop {r4, pc} @@ -71369,13 +71369,13 @@ FUN_02021D5C: ; 0x02021D5C push {r3-r5, lr} add r4, r0, #0x0 bne _02021D66 - bl FUN_02020C2C + bl ErrorHandling _02021D66: ldr r1, [r4, #0x4] ldr r0, _02021D98 ; =0xB6F8D2EC cmp r1, r0 beq _02021D72 - bl FUN_02020C2C + bl ErrorHandling _02021D72: ldrh r1, [r4, #0x2] mov r3, #0x0 @@ -71409,23 +71409,23 @@ FUN_02021D9C: ; 0x02021D9C add r6, r2, #0x0 cmp r5, #0x0 bne _02021DAC - bl FUN_02020C2C + bl ErrorHandling _02021DAC: ldr r1, [r5, #0x4] ldr r0, _02021E24 ; =0xB6F8D2EC cmp r1, r0 beq _02021DB8 - bl FUN_02020C2C + bl ErrorHandling _02021DB8: cmp r7, #0x0 bne _02021DC0 - bl FUN_02020C2C + bl ErrorHandling _02021DC0: ldr r1, [r7, #0x4] ldr r0, _02021E24 ; =0xB6F8D2EC cmp r1, r0 beq _02021DCC - bl FUN_02020C2C + bl ErrorHandling _02021DCC: mov r4, #0x0 cmp r6, #0x0 @@ -71483,13 +71483,13 @@ FUN_02021E28: ; 0x02021E28 add r4, r1, #0x0 cmp r5, #0x0 bne _02021E36 - bl FUN_02020C2C + bl ErrorHandling _02021E36: ldr r1, [r5, #0x4] ldr r0, _02021E84 ; =0xB6F8D2EC cmp r1, r0 beq _02021E42 - bl FUN_02020C2C + bl ErrorHandling _02021E42: mov r0, #0x0 strh r0, [r5, #0x2] @@ -71504,7 +71504,7 @@ _02021E50: sub r2, r2, #0x1 cmp r0, r2 blt _02021E60 - bl FUN_02020C2C + bl ErrorHandling b _02021E76 _02021E60: add r2, r0, #0x0 @@ -71537,13 +71537,13 @@ FUN_02021E8C: ; 0x02021E8C add r4, r2, #0x0 cmp r5, #0x0 bne _02021E9C - bl FUN_02020C2C + bl ErrorHandling _02021E9C: ldr r1, [r5, #0x4] ldr r0, _02021EE8 ; =0xB6F8D2EC cmp r1, r0 beq _02021EA8 - bl FUN_02020C2C + bl ErrorHandling _02021EA8: ldrh r0, [r5, #0x0] cmp r4, r0 @@ -71576,7 +71576,7 @@ _02021ED4: strh r1, [r0, #0x6] pop {r3-r7, pc} _02021EE2: - bl FUN_02020C2C + bl ErrorHandling _02021EE6: pop {r3-r7, pc} .balign 4 @@ -71591,13 +71591,13 @@ FUN_02021EF0: ; 0x02021EF0 add r4, r2, #0x0 cmp r5, #0x0 bne _02021F00 - bl FUN_02020C2C + bl ErrorHandling _02021F00: ldr r1, [r5, #0x4] ldr r0, _02021F28 ; =0xB6F8D2EC cmp r1, r0 beq _02021F0C - bl FUN_02020C2C + bl ErrorHandling _02021F0C: ldrh r0, [r5, #0x2] add r2, r0, #0x1 @@ -71610,7 +71610,7 @@ _02021F0C: blx FUN_020DF438 pop {r4-r6, pc} _02021F22: - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} .balign 4 _02021F28: .word 0xB6F8D2EC @@ -71620,13 +71620,13 @@ FUN_02021F2C: ; 0x02021F2C push {r4, lr} add r4, r0, #0x0 bne _02021F36 - bl FUN_02020C2C + bl ErrorHandling _02021F36: ldr r1, [r4, #0x4] ldr r0, _02021F48 ; =0xB6F8D2EC cmp r1, r0 beq _02021F42 - bl FUN_02020C2C + bl ErrorHandling _02021F42: add r4, #0x8 add r0, r4, #0x0 @@ -71641,23 +71641,23 @@ FUN_02021F4C: ; 0x02021F4C add r4, r1, #0x0 cmp r5, #0x0 bne _02021F5A - bl FUN_02020C2C + bl ErrorHandling _02021F5A: ldr r1, [r5, #0x4] ldr r0, _02021FAC ; =0xB6F8D2EC cmp r1, r0 beq _02021F66 - bl FUN_02020C2C + bl ErrorHandling _02021F66: cmp r4, #0x0 bne _02021F6E - bl FUN_02020C2C + bl ErrorHandling _02021F6E: ldr r1, [r4, #0x4] ldr r0, _02021FAC ; =0xB6F8D2EC cmp r1, r0 beq _02021F7A - bl FUN_02020C2C + bl ErrorHandling _02021F7A: ldrh r2, [r4, #0x2] ldrh r0, [r5, #0x2] @@ -71681,7 +71681,7 @@ _02021F7A: strh r0, [r5, #0x2] pop {r3-r5, pc} _02021FA6: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} .balign 4 _02021FAC: .word 0xB6F8D2EC @@ -71693,13 +71693,13 @@ FUN_02021FB0: ; 0x02021FB0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021FBE - bl FUN_02020C2C + bl ErrorHandling _02021FBE: ldr r1, [r5, #0x4] ldr r0, _02021FF0 ; =0xB6F8D2EC cmp r1, r0 beq _02021FCA - bl FUN_02020C2C + bl ErrorHandling _02021FCA: ldrh r2, [r5, #0x2] ldrh r0, [r5, #0x0] @@ -71717,7 +71717,7 @@ _02021FCA: strh r1, [r0, #0x8] pop {r3-r5, pc} _02021FE8: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} nop _02021FF0: .word 0xB6F8D2EC @@ -71728,13 +71728,13 @@ FUN_02021FF8: ; 0x02021FF8 push {r4, lr} add r4, r0, #0x0 bne _02022002 - bl FUN_02020C2C + bl ErrorHandling _02022002: ldr r1, [r4, #0x4] ldr r0, _02022028 ; =0xB6F8D2EC cmp r1, r0 beq _0202200E - bl FUN_02020C2C + bl ErrorHandling _0202200E: ldrh r0, [r4, #0x2] cmp r0, #0x0 @@ -71845,7 +71845,7 @@ FUN_020220C4: ; 0x020220C4 str r3, [sp, #0x0] cmp r7, #0x0 bne _020220D6 - bl FUN_02020C2C + bl ErrorHandling _020220D6: ldr r0, [sp, #0x18] mov r1, #0x14 @@ -71898,7 +71898,7 @@ FUN_0202212C: ; 0x0202212C push {r4, lr} add r4, r0, #0x0 bne _02022136 - bl FUN_02020C2C + bl ErrorHandling _02022136: ldr r0, [r4, #0x10] bl FUN_02016A18 @@ -72560,7 +72560,7 @@ FUN_020225F8: ; 0x020225F8 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02022606 - bl FUN_02020C2C + bl ErrorHandling _02022606: ldr r0, _0202260C ; =0x021C59C8 ldr r0, [r0, #0x0] @@ -72575,7 +72575,7 @@ FUN_02022610: ; 0x02022610 add r5, r0, #0x0 cmp r4, #0x24 blt _0202261E - bl FUN_02020C2C + bl ErrorHandling _0202261E: mov r0, #0x85 lsl r0, r0, #0x2 @@ -72782,17 +72782,17 @@ FUN_020227A0: ; 0x020227A0 add r5, r0, #0x0 cmp r4, #0x2 blt _020227AE - bl FUN_02020C2C + bl ErrorHandling _020227AE: ldr r0, [r5, #0x8] cmp r0, #0x0 beq _020227B8 - bl FUN_02020C2C + bl ErrorHandling _020227B8: ldr r0, [r5, #0x4] cmp r0, #0x1 beq _020227C2 - bl FUN_02020C2C + bl ErrorHandling _020227C2: add r0, r5, #0x0 add r1, r4, #0x0 @@ -72966,7 +72966,7 @@ FUN_020228B8: ; 0x020228B8 ldr r0, [r5, #0x8] cmp r0, #0x0 bne _020228D2 - bl FUN_02020C2C + bl ErrorHandling _020228D2: ldr r0, [r5, #0x8] add r0, r4, r0 @@ -73148,7 +73148,7 @@ FUN_020229F0: ; 0x020229F0 ble _02022A30 cmp r0, #0x0 bgt _02022A26 - bl FUN_02020C2C + bl ErrorHandling _02022A26: mov r0, #0x0 str r0, [r5, #0x0] @@ -73159,7 +73159,7 @@ _02022A30: bge _02022A44 cmp r0, #0x0 blt _02022A3A - bl FUN_02020C2C + bl ErrorHandling _02022A3A: mov r0, #0x1 str r0, [r5, #0x0] @@ -73473,7 +73473,7 @@ _02022C7E: ldr r0, [r0, r1] cmp r2, r0 beq _02022CA6 - bl FUN_02020C2C + bl ErrorHandling _02022CA6: ldr r0, [sp, #0xc] add r1, sp, #0x2c @@ -73499,7 +73499,7 @@ _02022CBC: ldr r0, [r0, r2] cmp r3, r0 beq _02022CDA - bl FUN_02020C2C + bl ErrorHandling _02022CDA: ldr r0, [sp, #0xc] add r1, sp, #0x2c @@ -74030,7 +74030,7 @@ FUN_020230AC: ; 0x020230AC ldr r0, [r0, #0x0] cmp r5, r0 blt _020230BE - bl FUN_02020C2C + bl ErrorHandling _020230BE: lsl r0, r5, #0x4 add r0, r4, r0 @@ -74062,7 +74062,7 @@ FUN_020230E4: ; 0x020230E4 str r0, [sp, #0x0] cmp r0, #0x24 beq _020230FC - bl FUN_02020C2C + bl ErrorHandling _020230FC: ldr r0, [sp, #0x0] mov r6, #0x0 @@ -74074,7 +74074,7 @@ _02023108: ldr r0, [r4, #0x0] cmp r6, r0 beq _02023112 - bl FUN_02020C2C + bl ErrorHandling _02023112: ldr r0, [r4, #0x0] str r0, [r5, #0x0] @@ -74109,7 +74109,7 @@ _02023148: lsl r0, r0, #0x10 cmp r7, r0 ble _02023154 - bl FUN_02020C2C + bl ErrorHandling _02023154: add sp, #0x8 pop {r3-r7, pc} @@ -74183,12 +74183,12 @@ _0202319A: ldr r0, [sp, #0x4] cmp r0, r1 beq _020231DC - bl FUN_02020C2C + bl ErrorHandling _020231DC: ldr r0, [sp, #0x4] cmp r0, #0x20 ble _020231E6 - bl FUN_02020C2C + bl ErrorHandling _020231E6: add sp, #0x8 pop {r3-r7, pc} @@ -74319,7 +74319,7 @@ FUN_020232BC: ; 0x020232BC ldr r0, [r0, #0x0] cmp r5, r0 blt _020232D8 - bl FUN_02020C2C + bl ErrorHandling _020232D8: ldr r1, _02023400 ; =0x020EE6E0 lsl r0, r5, #0x4 @@ -74327,7 +74327,7 @@ _020232D8: ldr r0, [r1, r0] cmp r0, r5 beq _020232E8 - bl FUN_02020C2C + bl ErrorHandling _020232E8: ldr r0, [r4, #0x8] blx r0 @@ -74360,7 +74360,7 @@ _020232E8: bl FUN_02023274 cmp r0, #0x1 beq _02023330 - bl FUN_02020C2C + bl ErrorHandling _02023330: ldr r0, [r4, #0x8] blx r0 @@ -74387,7 +74387,7 @@ _02023330: bl FUN_02023274 cmp r0, #0x1 beq _020233DE - bl FUN_02020C2C + bl ErrorHandling b _020233DE _0202336E: blx r0 @@ -74412,7 +74412,7 @@ _0202336E: bl FUN_02023274 cmp r0, #0x1 beq _020233A4 - bl FUN_02020C2C + bl ErrorHandling _020233A4: ldr r0, [r4, #0x8] blx r0 @@ -74438,7 +74438,7 @@ _020233A4: bl FUN_02023274 cmp r0, #0x1 beq _020233DE - bl FUN_02020C2C + bl ErrorHandling _020233DE: ldr r0, [sp, #0x0] cmp r0, #0x1 @@ -74471,7 +74471,7 @@ FUN_02023408: ; 0x02023408 str r3, [sp, #0x0] cmp r7, r0 blt _02023420 - bl FUN_02020C2C + bl ErrorHandling _02023420: ldr r1, _02023568 ; =0x020EE6E0 lsl r0, r7, #0x4 @@ -74479,7 +74479,7 @@ _02023420: ldr r0, [r1, r0] cmp r0, r7 beq _02023430 - bl FUN_02020C2C + bl ErrorHandling _02023430: ldr r0, [r4, #0x8] blx r0 @@ -74640,7 +74640,7 @@ FUN_02023570: ; 0x02023570 mvn r0, r0 cmp r4, r0 bne _02023584 - bl FUN_02020C2C + bl ErrorHandling _02023584: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -74707,7 +74707,7 @@ FUN_020235EC: ; 0x020235EC mvn r0, r0 cmp r4, r0 bne _02023608 - bl FUN_02020C2C + bl ErrorHandling _02023608: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -74768,7 +74768,7 @@ FUN_02023668: ; 0x02023668 mvn r0, r0 cmp r4, r0 bne _02023684 - bl FUN_02020C2C + bl ErrorHandling _02023684: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -74843,7 +74843,7 @@ _02023714: str r0, [r4, #0x0] b _02023734 _0202371A: - bl FUN_02020C2C + bl ErrorHandling _0202371E: mov r1, #0x0 add r0, r5, #0x0 @@ -75134,8 +75134,8 @@ FUN_020238F4: ; 0x020238F4 add r0, r0, #0x4 pop {r3, pc} - thumb_func_start FUN_02023900 -FUN_02023900: ; 0x02023900 + thumb_func_start LoadPlayerDataAddress +LoadPlayerDataAddress: ; 0x02023900 ldr r3, _02023908 ; =FUN_02022610 mov r1, #0x1 bx r3 @@ -75203,7 +75203,7 @@ FUN_0202395C: ; 0x0202395C bl FUN_02002288 cmp r0, #0x8 blt _02023970 - bl FUN_02020C2C + bl ErrorHandling _02023970: add r0, r5, #0x0 add r1, r4, #0x0 @@ -75614,7 +75614,7 @@ FUN_02023BA4: ; 0x02023BA4 add r4, r0, #0x0 cmp r5, #0x1 blt _02023BB2 - bl FUN_02020C2C + bl ErrorHandling _02023BB2: add r0, r4, #0x0 mov r1, #0xd @@ -75922,7 +75922,7 @@ FUN_02023D8C: ; 0x02023D8C add r0, r0, #0x1 cmp r4, r0 beq _02023DA2 - bl FUN_02020C2C + bl ErrorHandling _02023DA2: lsl r1, r4, #0x10 add r0, r5, #0x0 @@ -75979,7 +75979,7 @@ FUN_02023DEC: ; 0x02023DEC add r0, r0, #0x1 cmp r6, r0 beq _02023E04 - bl FUN_02020C2C + bl ErrorHandling _02023E04: lsl r1, r6, #0x10 add r0, r7, #0x0 @@ -76053,7 +76053,7 @@ FUN_02023E70: ; 0x02023E70 add r0, r0, #0x1 cmp r5, r0 beq _02023E88 - bl FUN_02020C2C + bl ErrorHandling _02023E88: lsl r2, r7, #0x18 add r0, r6, #0x0 @@ -76084,7 +76084,7 @@ _02023EA4: lsr r0, r0, #0x18 cmp r0, #0x2 blo _02023EC6 - bl FUN_02020C2C + bl ErrorHandling _02023EC6: sub r0, r6, #0x1 lsl r0, r0, #0x10 @@ -76113,7 +76113,7 @@ _02023EC6: lsr r5, r0, #0x10 cmp r6, #0x2 blo _02023F00 - bl FUN_02020C2C + bl ErrorHandling _02023F00: sub r0, r5, #0x1 lsl r0, r0, #0x10 @@ -76151,7 +76151,7 @@ FUN_02023F2C: ; 0x02023F2C add r0, r0, #0x1 cmp r4, r0 beq _02023F44 - bl FUN_02020C2C + bl ErrorHandling _02023F44: lsl r1, r4, #0x10 add r0, r5, #0x0 @@ -76205,7 +76205,7 @@ FUN_02023F88: ; 0x02023F88 add r0, r0, #0x1 cmp r5, r0 beq _02023FA2 - bl FUN_02020C2C + bl ErrorHandling _02023FA2: lsl r1, r5, #0x10 add r0, r6, #0x0 @@ -76262,7 +76262,7 @@ FUN_02023FEC: ; 0x02023FEC add r0, r0, #0x1 cmp r5, r0 beq _02024006 - bl FUN_02020C2C + bl ErrorHandling _02024006: lsl r2, r7, #0x18 add r0, r6, #0x0 @@ -76291,7 +76291,7 @@ _02024024: lsr r0, r0, #0x18 cmp r0, #0x4 blo _02024040 - bl FUN_02020C2C + bl ErrorHandling _02024040: lsl r0, r5, #0x10 lsr r2, r0, #0x10 @@ -76323,11 +76323,11 @@ FUN_02024068: ; 0x02024068 add r4, r1, #0x0 cmp r6, #0x4 blo _02024078 - bl FUN_02020C2C + bl ErrorHandling _02024078: cmp r4, #0xf bls _02024080 - bl FUN_02020C2C + bl ErrorHandling _02024080: cmp r6, #0x2 bhs _0202409E @@ -76795,7 +76795,7 @@ FUN_020243C8: ; 0x020243C8 ldr r0, _020243FC ; =0xBEEFCAFE cmp r1, r0 beq _020243D8 - bl FUN_02020C2C + bl ErrorHandling _020243D8: ldr r7, _02024400 ; =0x000001ED mov r5, #0x0 @@ -76827,7 +76827,7 @@ FUN_02024404: ; 0x02024404 ldr r0, _02024438 ; =0xBEEFCAFE cmp r1, r0 beq _02024414 - bl FUN_02020C2C + bl ErrorHandling _02024414: ldr r7, _0202443C ; =0x000001ED mov r5, #0x0 @@ -76874,7 +76874,7 @@ FUN_0202445C: ; 0x0202445C ldr r0, _0202449C ; =0xBEEFCAFE cmp r1, r0 beq _0202446C - bl FUN_02020C2C + bl ErrorHandling _0202446C: ldr r7, _020244A0 ; =0x000001ED mov r5, #0x0 @@ -76911,7 +76911,7 @@ FUN_020244A4: ; 0x020244A4 ldr r0, _020244E4 ; =0xBEEFCAFE cmp r1, r0 beq _020244B4 - bl FUN_02020C2C + bl ErrorHandling _020244B4: ldr r7, _020244E8 ; =0x000001ED mov r5, #0x0 @@ -77044,7 +77044,7 @@ FUN_02024594: ; 0x02024594 ldr r0, _020245E8 ; =0xBEEFCAFE cmp r1, r0 beq _020245A6 - bl FUN_02020C2C + bl ErrorHandling _020245A6: cmp r4, #0x0 beq _020245B0 @@ -77052,7 +77052,7 @@ _020245A6: cmp r4, r0 bls _020245B8 _020245B0: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 b _020245BA _020245B8: @@ -77097,7 +77097,7 @@ FUN_020245F0: ; 0x020245F0 ldr r0, _02024640 ; =0xBEEFCAFE cmp r1, r0 beq _02024602 - bl FUN_02020C2C + bl ErrorHandling _02024602: cmp r4, #0x0 beq _0202460C @@ -77105,7 +77105,7 @@ _02024602: cmp r4, r0 bls _02024614 _0202460C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 b _02024616 _02024614: @@ -77146,7 +77146,7 @@ FUN_02024648: ; 0x02024648 ldr r0, _02024670 ; =0xBEEFCAFE cmp r1, r0 beq _0202465A - bl FUN_02020C2C + bl ErrorHandling _0202465A: cmp r4, #0x0 bne _02024666 @@ -77155,7 +77155,7 @@ _0202465A: ldr r6, [r5, r0] b _0202466A _02024666: - bl FUN_02020C2C + bl ErrorHandling _0202466A: add r0, r6, #0x0 pop {r4-r6, pc} @@ -77172,7 +77172,7 @@ FUN_02024674: ; 0x02024674 add r6, r2, #0x0 cmp r1, r0 beq _02024688 - bl FUN_02020C2C + bl ErrorHandling _02024688: cmp r4, #0x0 beq _02024692 @@ -77180,7 +77180,7 @@ _02024688: cmp r4, r0 bls _0202469A _02024692: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 b _0202469C _0202469A: @@ -77227,7 +77227,7 @@ FUN_020246DC: ; 0x020246DC ldr r0, _02024718 ; =0xBEEFCAFE cmp r1, r0 beq _020246EE - bl FUN_02020C2C + bl ErrorHandling _020246EE: mov r0, #0x43 mov r2, #0x0 @@ -77263,7 +77263,7 @@ FUN_0202471C: ; 0x0202471C ldr r0, _02024744 ; =0xBEEFCAFE cmp r1, r0 beq _0202472C - bl FUN_02020C2C + bl ErrorHandling _0202472C: mov r1, #0x43 mov r0, #0x0 @@ -77290,7 +77290,7 @@ FUN_02024748: ; 0x02024748 ldr r0, _0202479C ; =0xBEEFCAFE cmp r1, r0 beq _0202475A - bl FUN_02020C2C + bl ErrorHandling _0202475A: ldr r1, _020247A0 ; =0x000001A6 add r0, r5, #0x0 @@ -77303,7 +77303,7 @@ _0202475A: _0202476C: cmp r4, #0x2 blt _02024774 - bl FUN_02020C2C + bl ErrorHandling _02024774: add r0, r4, #0x1 lsl r0, r0, #0x10 @@ -77338,7 +77338,7 @@ FUN_020247A4: ; 0x020247A4 ldr r0, _020247C0 ; =0xBEEFCAFE cmp r1, r0 beq _020247B4 - bl FUN_02020C2C + bl ErrorHandling _020247B4: ldr r1, _020247C4 ; =0x000001A6 add r0, r4, #0x0 @@ -77357,7 +77357,7 @@ FUN_020247C8: ; 0x020247C8 ldr r0, _0202481C ; =0xBEEFCAFE cmp r1, r0 beq _020247DA - bl FUN_02020C2C + bl ErrorHandling _020247DA: ldr r1, _02024820 ; =0x000001A7 add r0, r5, #0x0 @@ -77370,7 +77370,7 @@ _020247DA: _020247EC: cmp r4, #0x2 blt _020247F4 - bl FUN_02020C2C + bl ErrorHandling _020247F4: add r0, r4, #0x1 lsl r0, r0, #0x10 @@ -77405,7 +77405,7 @@ FUN_02024828: ; 0x02024828 ldr r0, _02024844 ; =0xBEEFCAFE cmp r1, r0 beq _02024838 - bl FUN_02020C2C + bl ErrorHandling _02024838: ldr r1, _02024848 ; =0x000001A7 add r0, r4, #0x0 @@ -77424,7 +77424,7 @@ FUN_0202484C: ; 0x0202484C ldr r0, _02024894 ; =0xBEEFCAFE cmp r1, r0 beq _0202485E - bl FUN_02020C2C + bl ErrorHandling _0202485E: mov r1, #0x67 add r0, r5, #0x0 @@ -77438,7 +77438,7 @@ _0202485E: _02024872: cmp r4, #0x3 blt _0202487A - bl FUN_02020C2C + bl ErrorHandling _0202487A: lsl r0, r4, #0x10 lsr r2, r0, #0x10 @@ -77464,7 +77464,7 @@ FUN_0202489C: ; 0x0202489C ldr r0, _020248B8 ; =0xBEEFCAFE cmp r1, r0 beq _020248AC - bl FUN_02020C2C + bl ErrorHandling _020248AC: mov r1, #0x67 add r0, r4, #0x0 @@ -77483,7 +77483,7 @@ FUN_020248BC: ; 0x020248BC ldr r0, _02024900 ; =0xBEEFCAFE cmp r1, r0 beq _020248CE - bl FUN_02020C2C + bl ErrorHandling _020248CE: ldr r1, _02024904 ; =0x0000019D add r0, r5, #0x0 @@ -77496,7 +77496,7 @@ _020248CE: _020248E0: cmp r4, #0x3 blt _020248E8 - bl FUN_02020C2C + bl ErrorHandling _020248E8: lsl r0, r4, #0x10 lsr r2, r0, #0x10 @@ -77523,7 +77523,7 @@ FUN_0202490C: ; 0x0202490C ldr r0, _02024928 ; =0xBEEFCAFE cmp r1, r0 beq _0202491C - bl FUN_02020C2C + bl ErrorHandling _0202491C: ldr r1, _0202492C ; =0x0000019D add r0, r4, #0x0 @@ -77542,7 +77542,7 @@ FUN_02024930: ; 0x02024930 ldr r0, _0202496C ; =0xBEEFCAFE cmp r1, r0 beq _02024942 - bl FUN_02020C2C + bl ErrorHandling _02024942: lsl r0, r4, #0x18 lsr r0, r0, #0x18 @@ -77577,7 +77577,7 @@ FUN_02024970: ; 0x02024970 ldr r0, _02024988 ; =0xBEEFCAFE cmp r1, r0 beq _02024980 - bl FUN_02020C2C + bl ErrorHandling _02024980: add r0, r4, #0x0 bl FUN_020240D0 @@ -77610,7 +77610,7 @@ FUN_0202498C: ; 0x0202498C ldr r0, _02024AE4 ; =0xBEEFCAFE cmp r1, r0 beq _020249C4 - bl FUN_02020C2C + bl ErrorHandling _020249C4: ldr r0, [sp, #0x4] cmp r0, #0x0 @@ -77619,7 +77619,7 @@ _020249C4: cmp r0, r1 bls _020249D8 _020249D0: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 b _020249DA _020249D8: @@ -77653,7 +77653,7 @@ _02024A08: lsr r6, r0, #0x18 cmp r6, #0x2 bls _02024A14 - bl FUN_02020C2C + bl ErrorHandling _02024A14: cmp r6, #0x2 bne _02024A1A @@ -77661,7 +77661,7 @@ _02024A14: _02024A1A: cmp r6, #0x2 blo _02024A22 - bl FUN_02020C2C + bl ErrorHandling _02024A22: add r2, r5, #0x0 mov r0, #0x7 @@ -77682,7 +77682,7 @@ _02024A22: strb r0, [r2, r1] cmp r6, #0x2 blo _02024A4C - bl FUN_02020C2C + bl ErrorHandling _02024A4C: add r1, r5, #0x0 mov r0, #0x7 @@ -77718,7 +77718,7 @@ _02024A7C: lsr r6, r0, #0x18 cmp r6, #0x2 bls _02024A90 - bl FUN_02020C2C + bl ErrorHandling _02024A90: cmp r6, #0x2 bne _02024A96 @@ -77726,7 +77726,7 @@ _02024A90: _02024A96: cmp r6, #0x2 blo _02024A9E - bl FUN_02020C2C + bl ErrorHandling _02024A9E: add r1, r5, #0x0 mov r0, #0x7 @@ -77797,7 +77797,7 @@ FUN_02024AF0: ; 0x02024AF0 ldr r0, _02024C78 ; =0xBEEFCAFE cmp r1, r0 beq _02024B32 - bl FUN_02020C2C + bl ErrorHandling _02024B32: cmp r6, #0x0 beq _02024B3C @@ -77805,7 +77805,7 @@ _02024B32: cmp r6, r0 bls _02024B44 _02024B3C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 b _02024B46 _02024B44: @@ -77840,7 +77840,7 @@ _02024B74: lsr r7, r0, #0x18 cmp r7, #0x2 bls _02024B80 - bl FUN_02020C2C + bl ErrorHandling _02024B80: cmp r7, #0x2 bne _02024B86 @@ -77848,7 +77848,7 @@ _02024B80: _02024B86: cmp r7, #0x2 blo _02024B8E - bl FUN_02020C2C + bl ErrorHandling _02024B8E: mov r0, #0x7 and r0, r5 @@ -77875,7 +77875,7 @@ _02024B8E: strb r1, [r0, r3] cmp r7, #0x2 blo _02024BC4 - bl FUN_02020C2C + bl ErrorHandling _02024BC4: add r1, r4, #0x0 mov r0, #0x7 @@ -77912,7 +77912,7 @@ _02024BF6: lsr r7, r0, #0x18 cmp r7, #0x2 bls _02024C0A - bl FUN_02020C2C + bl ErrorHandling _02024C0A: cmp r7, #0x2 bne _02024C10 @@ -77920,7 +77920,7 @@ _02024C0A: _02024C10: cmp r7, #0x2 blo _02024C18 - bl FUN_02020C2C + bl ErrorHandling _02024C18: add r1, r4, #0x0 mov r0, #0x7 @@ -77982,7 +77982,7 @@ FUN_02024C84: ; 0x02024C84 ldr r0, _02024C9C ; =0xBEEFCAFE cmp r1, r0 beq _02024C94 - bl FUN_02020C2C + bl ErrorHandling _02024C94: ldr r0, _02024CA0 ; =0x00000139 mov r1, #0x1 @@ -78000,7 +78000,7 @@ FUN_02024CA4: ; 0x02024CA4 ldr r0, _02024CBC ; =0xBEEFCAFE cmp r1, r0 beq _02024CB4 - bl FUN_02020C2C + bl ErrorHandling _02024CB4: ldr r0, _02024CC0 ; =0x00000139 ldrb r0, [r4, r0] @@ -78017,7 +78017,7 @@ FUN_02024CC4: ; 0x02024CC4 ldr r0, _02024CDC ; =0xBEEFCAFE cmp r1, r0 beq _02024CD4 - bl FUN_02020C2C + bl ErrorHandling _02024CD4: mov r0, #0x4a lsl r0, r0, #0x2 @@ -78034,7 +78034,7 @@ FUN_02024CE0: ; 0x02024CE0 ldr r0, _02024CFC ; =0xBEEFCAFE cmp r1, r0 beq _02024CF0 - bl FUN_02020C2C + bl ErrorHandling _02024CF0: mov r0, #0x4a mov r1, #0x1 @@ -78052,13 +78052,13 @@ FUN_02024D00: ; 0x02024D00 add r5, r1, #0x0 cmp r6, #0x8 blo _02024D10 - bl FUN_02020C2C + bl ErrorHandling _02024D10: ldr r1, [r4, #0x0] ldr r0, _02024D44 ; =0xBEEFCAFE cmp r1, r0 beq _02024D1C - bl FUN_02020C2C + bl ErrorHandling _02024D1C: add r0, r5, #0x0 bl FUN_02087A50 @@ -78107,7 +78107,7 @@ FUN_02024D64: ; 0x02024D64 ldr r0, _02024D7C ; =0xBEEFCAFE cmp r1, r0 beq _02024D74 - bl FUN_02020C2C + bl ErrorHandling _02024D74: mov r0, #0x4e lsl r0, r0, #0x2 @@ -78124,7 +78124,7 @@ FUN_02024D80: ; 0x02024D80 ldr r0, _02024D9C ; =0xBEEFCAFE cmp r1, r0 beq _02024D90 - bl FUN_02020C2C + bl ErrorHandling _02024D90: mov r0, #0x4e mov r1, #0x1 @@ -78411,7 +78411,7 @@ FUN_02024F9C: ; 0x02024F9C push {r3, lr} cmp r0, #0x0 beq _02024FAC - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02025064 add r1, r0, #0x0 _02024FAC: @@ -78970,7 +78970,7 @@ _0202531E: ; jump table (using 16-bit offset) .short _02025336 - _0202531E - 2; case 4 .short _0202534E - _0202531E - 2; case 5 _0202532A: - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} _02025330: add r0, r2, #0x1 @@ -79175,7 +79175,7 @@ FUN_020254A0: ; 0x020254A0 ldr r0, [r4, #0x0] cmp r0, r1 beq _020254AE - bl FUN_02020C2C + bl ErrorHandling _020254AE: add r0, r4, #0x4 pop {r4, pc} @@ -80334,7 +80334,7 @@ _02025C50: ldr r0, [sp, #0x0] cmp r0, #0x5 blt _02025C72 - bl FUN_02020C2C + bl ErrorHandling _02025C72: add r0, r6, #0x0 bl FUN_0202398C @@ -80445,11 +80445,11 @@ FUN_02025D48: ; 0x02025D48 add r4, r0, #0x0 cmp r4, #0xb bge _02025D54 - bl FUN_02020C2C + bl ErrorHandling _02025D54: cmp r4, #0x3c blt _02025D5C - bl FUN_02020C2C + bl ErrorHandling _02025D5C: sub r4, #0xb ldr r0, _02025D68 ; =0x02105C74 @@ -80537,7 +80537,7 @@ FUN_02025DD4: ; 0x02025DD4 bl FUN_02025F0C cmp r0, #0x0 beq _02025DE6 - bl FUN_02020C2C + bl ErrorHandling _02025DE6: mov r0, #0x81 add r1, r5, r4 @@ -80679,11 +80679,11 @@ FUN_02025EDC: ; 0x02025EDC add r4, r1, #0x0 cmp r6, #0x1 bge _02025EEC - bl FUN_02020C2C + bl ErrorHandling _02025EEC: cmp r6, #0xf ble _02025EF4 - bl FUN_02020C2C + bl ErrorHandling _02025EF4: sub r0, r6, #0x1 add r1, r5, r0 @@ -81310,7 +81310,7 @@ FUN_0202630C: ; 0x0202630C add r6, r3, #0x0 cmp r4, #0x40 blt _0202631E - bl FUN_02020C2C + bl ErrorHandling _0202631E: ldr r0, _02026350 ; =0x0000010F add r1, r5, r4 @@ -81346,7 +81346,7 @@ FUN_02026354: ; 0x02026354 add r5, r0, #0x0 cmp r4, #0x40 blt _02026362 - bl FUN_02020C2C + bl ErrorHandling _02026362: ldr r0, _0202636C ; =0x0000010F add r1, r5, r4 @@ -81362,7 +81362,7 @@ FUN_02026370: ; 0x02026370 add r5, r0, #0x0 cmp r4, #0x40 blt _0202637E - bl FUN_02020C2C + bl ErrorHandling _0202637E: lsl r0, r4, #0x1 add r0, r4, r0 @@ -81387,7 +81387,7 @@ FUN_0202639C: ; 0x0202639C add r5, r0, #0x0 cmp r4, #0x40 blt _020263AA - bl FUN_02020C2C + bl ErrorHandling _020263AA: lsl r0, r4, #0x1 add r0, r4, r0 @@ -81412,7 +81412,7 @@ FUN_020263C8: ; 0x020263C8 add r5, r0, #0x0 cmp r4, #0x40 blt _020263D6 - bl FUN_02020C2C + bl ErrorHandling _020263D6: ldr r0, _020263F0 ; =0x0000010F mov r1, #0x0 @@ -81438,7 +81438,7 @@ FUN_020263F4: ; 0x020263F4 add r6, r3, #0x0 cmp r4, #0x10 blt _02026406 - bl FUN_02020C2C + bl ErrorHandling _02026406: lsl r2, r4, #0x1 ldr r1, _02026440 ; =0x0000050C @@ -81534,7 +81534,7 @@ FUN_0202649C: ; 0x0202649C add r7, r3, #0x0 cmp r4, #0x64 blt _020264AE - bl FUN_02020C2C + bl ErrorHandling _020264AE: ldr r1, _020264E8 ; =0x0000055C add r0, r5, r4 @@ -81692,7 +81692,7 @@ FUN_020265B8: ; 0x020265B8 add r5, r0, #0x0 cmp r4, #0xff blt _020265C6 - bl FUN_02020C2C + bl ErrorHandling _020265C6: ldr r0, _020265DC ; =0x0000020F mov r2, #0x3 @@ -81911,20 +81911,20 @@ FUN_0202671C: ; 0x0202671C add r6, r3, #0x0 cmp r4, #0x20 blt _0202672E - bl FUN_02020C2C + bl ErrorHandling _0202672E: cmp r6, #0x20 blt _02026736 - bl FUN_02020C2C + bl ErrorHandling _02026736: ldr r0, [sp, #0x18] cmp r0, #0x20 blt _02026740 - bl FUN_02020C2C + bl ErrorHandling _02026740: cmp r5, #0x0 bne _02026748 - bl FUN_02020C2C + bl ErrorHandling _02026748: cmp r4, #0x0 beq _02026774 @@ -82006,7 +82006,7 @@ FUN_020267C4: ; 0x020267C4 add r4, r0, #0x0 cmp r5, #0x20 blt _020267D2 - bl FUN_02020C2C + bl ErrorHandling _020267D2: cmp r5, #0x0 bne _020267DE @@ -82049,7 +82049,7 @@ FUN_02026810: ; 0x02026810 add r4, r0, #0x0 cmp r5, #0x20 blt _0202681E - bl FUN_02020C2C + bl ErrorHandling _0202681E: cmp r5, #0x0 bne _02026826 @@ -82078,7 +82078,7 @@ FUN_02026840: ; 0x02026840 add r4, r0, #0x0 cmp r5, #0x20 blt _0202684E - bl FUN_02020C2C + bl ErrorHandling _0202684E: cmp r5, #0x0 bne _02026856 @@ -82833,20 +82833,20 @@ FUN_02026D34: ; 0x02026D34 lsl r0, r0, #0x8 cmp r1, r0 blt _02026D5E - bl FUN_02020C2C + bl ErrorHandling _02026D5E: mov r0, #0x1 ldr r1, [sp, #0x8] lsl r0, r0, #0x8 cmp r1, r0 blt _02026D6C - bl FUN_02020C2C + bl ErrorHandling _02026D6C: mov r0, #0x7f mvn r0, r0 cmp r4, r0 bgt _02026D78 - bl FUN_02020C2C + bl ErrorHandling _02026D78: lsl r0, r4, #0x18 asr r0, r0, #0x18 @@ -82899,7 +82899,7 @@ FUN_02026DC4: ; 0x02026DC4 add r6, r1, #0x0 cmp r4, #0x3d blo _02026DD4 - bl FUN_02020C2C + bl ErrorHandling _02026DD4: lsr r2, r4, #0x1f lsl r1, r4, #0x1d @@ -82935,7 +82935,7 @@ FUN_02026E08: ; 0x02026E08 add r5, r0, #0x0 cmp r4, #0x3d blo _02026E16 - bl FUN_02020C2C + bl ErrorHandling _02026E16: lsr r3, r4, #0x1f lsl r2, r4, #0x1d @@ -82972,7 +82972,7 @@ FUN_02026E48: ; 0x02026E48 add r6, r2, #0x0 cmp r4, #0x2 blo _02026E58 - bl FUN_02020C2C + bl ErrorHandling _02026E58: lsr r2, r6, #0x1f lsl r1, r6, #0x1b @@ -83030,7 +83030,7 @@ FUN_02026EB0: ; 0x02026EB0 add r6, r2, #0x0 cmp r4, #0x12 bls _02026EC0 - bl FUN_02020C2C + bl ErrorHandling _02026EC0: lsr r2, r6, #0x1f lsl r1, r6, #0x1e @@ -83220,7 +83220,7 @@ FUN_02027008: ; 0x02027008 add r5, r0, #0x0 cmp r6, #0xb blt _02027016 - bl FUN_02020C2C + bl ErrorHandling _02027016: mov r0, #0x74 add r4, r6, #0x0 @@ -83240,7 +83240,7 @@ _0202702E: _02027030: cmp r0, #0x0 bne _02027038 - bl FUN_02020C2C + bl ErrorHandling _02027038: add r0, r5, r4 pop {r4-r6, pc} @@ -83255,7 +83255,7 @@ FUN_02027044: ; 0x02027044 add r5, r0, #0x0 cmp r6, #0x5 blt _02027052 - bl FUN_02020C2C + bl ErrorHandling _02027052: mov r0, #0x98 add r4, r6, #0x0 @@ -83277,7 +83277,7 @@ _0202706E: _02027070: cmp r0, #0x0 bne _02027078 - bl FUN_02020C2C + bl ErrorHandling _02027078: ldr r0, _02027080 ; =0x000004FC add r0, r5, r0 @@ -83303,7 +83303,7 @@ FUN_02027098: ; 0x02027098 add r5, r0, #0x0 cmp r4, #0xb blt _020270A6 - bl FUN_02020C2C + bl ErrorHandling _020270A6: mov r0, #0x74 mul r0, r4 @@ -83319,7 +83319,7 @@ FUN_020270B4: ; 0x020270B4 add r5, r0, #0x0 cmp r4, #0x5 blt _020270C2 - bl FUN_02020C2C + bl ErrorHandling _020270C2: ldr r0, _020270D4 ; =0x000004FC add r1, r5, r0 @@ -83375,7 +83375,7 @@ FUN_02027114: ; 0x02027114 add r4, r0, #0x0 cmp r5, #0x64 blo _02027122 - bl FUN_02020C2C + bl ErrorHandling _02027122: cmp r5, #0x3d bhs _02027132 @@ -83386,7 +83386,7 @@ _02027122: pop {r3-r5, pc} _02027132: bhs _02027138 - bl FUN_02020C2C + bl ErrorHandling _02027138: sub r5, #0x3d lsl r0, r5, #0x18 @@ -83405,7 +83405,7 @@ FUN_0202714C: ; 0x0202714C add r5, r0, #0x0 cmp r4, #0x12 blo _0202715A - bl FUN_02020C2C + bl ErrorHandling _0202715A: add r5, #0x28 lsl r1, r4, #0x18 @@ -83459,7 +83459,7 @@ FUN_020271A4: ; 0x020271A4 add r6, r2, #0x0 cmp r4, #0x64 blo _020271B4 - bl FUN_02020C2C + bl ErrorHandling _020271B4: cmp r4, #0x3d bhs _020271DA @@ -83494,7 +83494,7 @@ _020271DA: _020271F2: cmp r4, #0x3d bhs _020271FA - bl FUN_02020C2C + bl ErrorHandling _020271FA: sub r4, #0x3d lsl r0, r4, #0x18 @@ -83515,7 +83515,7 @@ FUN_02027210: ; 0x02027210 add r6, r2, #0x0 cmp r4, #0x64 blo _02027220 - bl FUN_02020C2C + bl ErrorHandling _02027220: cmp r4, #0x3d bhs _02027248 @@ -83539,7 +83539,7 @@ _0202723C: pop {r4-r6, pc} _02027248: bhs _0202724E - bl FUN_02020C2C + bl ErrorHandling _0202724E: sub r4, #0x3d lsl r0, r4, #0x18 @@ -83559,7 +83559,7 @@ FUN_02027264: ; 0x02027264 add r5, r0, #0x0 cmp r4, #0x12 blo _02027272 - bl FUN_02020C2C + bl ErrorHandling _02027272: add r0, r5, #0x0 lsl r1, r4, #0x18 @@ -83600,7 +83600,7 @@ _020272B2: _020272B4: cmp r0, #0x0 bne _020272BC - bl FUN_02020C2C + bl ErrorHandling _020272BC: ldr r1, [r4, #0x0] ldr r0, _020272D0 ; =0x00002345 @@ -83634,7 +83634,7 @@ _020272EA: _020272EC: cmp r0, #0x0 bne _020272F4 - bl FUN_02020C2C + bl ErrorHandling _020272F4: ldr r0, _02027308 ; =0x00002345 str r0, [r4, #0x0] @@ -83667,7 +83667,7 @@ _02027326: _02027328: cmp r0, #0x0 bne _02027330 - bl FUN_02020C2C + bl ErrorHandling _02027330: add r0, r4, #0x0 mov r1, #0x0 @@ -83701,7 +83701,7 @@ _02027362: _02027364: cmp r0, #0x0 bne _0202736C - bl FUN_02020C2C + bl ErrorHandling _0202736C: add r0, r5, #0x4 add r1, r4, #0x0 @@ -83734,7 +83734,7 @@ FUN_02027380: ; 0x02027380 str r0, [sp, #0x8] cmp r6, #0xa blt _020273B0 - bl FUN_02020C2C + bl ErrorHandling _020273B0: add r1, sp, #0xc mov r0, #0x4 @@ -83742,7 +83742,7 @@ _020273B0: add r0, #0xfc cmp r1, r0 blt _020273C0 - bl FUN_02020C2C + bl ErrorHandling _020273C0: add r1, sp, #0xc mov r0, #0x6 @@ -83750,14 +83750,14 @@ _020273C0: add r0, #0xfa cmp r7, r0 blt _020273D0 - bl FUN_02020C2C + bl ErrorHandling _020273D0: mov r1, #0x7f ldr r0, [sp, #0x8] mvn r1, r1 cmp r0, r1 bgt _020273DE - bl FUN_02020C2C + bl ErrorHandling _020273DE: mov r0, #0x1 lsl r0, r6 @@ -83765,7 +83765,7 @@ _020273DE: str r0, [sp, #0x4] tst r0, r1 beq _020273EE - bl FUN_02020C2C + bl ErrorHandling _020273EE: ldr r1, [r5, #0x0] ldr r0, _02027440 ; =0x00001234 @@ -83782,7 +83782,7 @@ _02027400: _02027402: cmp r0, #0x0 bne _0202740A - bl FUN_02020C2C + bl ErrorHandling _0202740A: ldr r0, [sp, #0x8] add r1, r5, #0x0 @@ -83833,7 +83833,7 @@ _02027460: _02027462: cmp r0, #0x0 bne _0202746A - bl FUN_02020C2C + bl ErrorHandling _0202746A: add r5, #0x70 strb r4, [r5, #0x0] @@ -83862,7 +83862,7 @@ _02027490: _02027492: cmp r0, #0x0 bne _0202749A - bl FUN_02020C2C + bl ErrorHandling _0202749A: add r0, r5, #0x0 add r0, #0x40 @@ -83897,7 +83897,7 @@ _020274D0: _020274D2: cmp r0, #0x0 bne _020274DA - bl FUN_02020C2C + bl ErrorHandling _020274DA: add r0, r5, #0x0 add r1, r4, #0x0 @@ -83929,7 +83929,7 @@ _0202750A: _0202750C: cmp r0, #0x0 bne _02027514 - bl FUN_02020C2C + bl ErrorHandling _02027514: add r0, r5, #0x4 add r1, r4, #0x0 @@ -83947,7 +83947,7 @@ FUN_02027528: ; 0x02027528 add r5, r0, #0x0 cmp r4, #0xa blt _02027536 - bl FUN_02020C2C + bl ErrorHandling _02027536: ldr r1, [r5, #0x0] ldr r0, _0202755C ; =0x00001234 @@ -83964,7 +83964,7 @@ _02027548: _0202754A: cmp r0, #0x0 bne _02027552 - bl FUN_02020C2C + bl ErrorHandling _02027552: mov r0, #0x1 ldr r1, [r5, #0x3c] @@ -83994,7 +83994,7 @@ _0202757A: _0202757C: cmp r0, #0x0 bne _02027584 - bl FUN_02020C2C + bl ErrorHandling _02027584: add r0, r4, #0x4 pop {r4, pc} @@ -84009,14 +84009,14 @@ FUN_02027590: ; 0x02027590 add r5, r0, #0x0 cmp r4, #0xa blt _0202759E - bl FUN_02020C2C + bl ErrorHandling _0202759E: mov r0, #0x1 ldr r1, [r5, #0x3c] lsl r0, r4 tst r0, r1 bne _020275AC - bl FUN_02020C2C + bl ErrorHandling _020275AC: ldr r1, [r5, #0x0] ldr r0, _020275D0 ; =0x00001234 @@ -84033,7 +84033,7 @@ _020275BE: _020275C0: cmp r0, #0x0 bne _020275C8 - bl FUN_02020C2C + bl ErrorHandling _020275C8: add r5, #0x48 lsl r0, r4, #0x2 @@ -84062,7 +84062,7 @@ _020275EE: _020275F0: cmp r0, #0x0 bne _020275F8 - bl FUN_02020C2C + bl ErrorHandling _020275F8: add r0, r4, #0x4 bl FUN_02027C84 @@ -84091,7 +84091,7 @@ _02027620: _02027622: cmp r0, #0x0 bne _0202762A - bl FUN_02020C2C + bl ErrorHandling _0202762A: add r0, r5, #0x4 add r1, r4, #0x0 @@ -84120,7 +84120,7 @@ _02027652: _02027654: cmp r0, #0x0 bne _0202765C - bl FUN_02020C2C + bl ErrorHandling _0202765C: add r0, r4, #0x4 bl FUN_02027C98 @@ -84148,7 +84148,7 @@ _02027682: _02027684: cmp r0, #0x0 bne _0202768C - bl FUN_02020C2C + bl ErrorHandling _0202768C: add r4, #0x70 ldrb r0, [r4, #0x0] @@ -84185,7 +84185,7 @@ _020276BE: _020276C0: cmp r0, #0x0 bne _020276C8 - bl FUN_02020C2C + bl ErrorHandling _020276C8: add r4, #0x71 ldrb r0, [r4, #0x0] @@ -84213,7 +84213,7 @@ _020276EE: _020276F0: cmp r0, #0x0 bne _020276F8 - bl FUN_02020C2C + bl ErrorHandling _020276F8: ldr r1, [r4, #0x0] ldr r0, _0202770C ; =0x00002345 @@ -84247,7 +84247,7 @@ _02027726: _02027728: cmp r0, #0x0 bne _02027730 - bl FUN_02020C2C + bl ErrorHandling _02027730: ldr r0, _0202773C ; =0x00002345 str r0, [r4, #0x0] @@ -84275,7 +84275,7 @@ _02027756: _02027758: cmp r0, #0x0 bne _02027760 - bl FUN_02020C2C + bl ErrorHandling _02027760: add r0, r4, #0x0 mov r1, #0x0 @@ -84309,7 +84309,7 @@ _02027792: _02027794: cmp r0, #0x0 bne _0202779C - bl FUN_02020C2C + bl ErrorHandling _0202779C: add r5, #0x8 add r0, r5, #0x0 @@ -84343,7 +84343,7 @@ FUN_020277B4: ; 0x020277B4 str r0, [sp, #0x8] cmp r6, #0x14 blt _020277E4 - bl FUN_02020C2C + bl ErrorHandling _020277E4: add r1, sp, #0xc mov r0, #0x4 @@ -84351,7 +84351,7 @@ _020277E4: add r0, #0xfc cmp r1, r0 blt _020277F4 - bl FUN_02020C2C + bl ErrorHandling _020277F4: add r1, sp, #0xc mov r0, #0x6 @@ -84359,14 +84359,14 @@ _020277F4: add r0, #0xfa cmp r7, r0 blt _02027804 - bl FUN_02020C2C + bl ErrorHandling _02027804: mov r1, #0x7f ldr r0, [sp, #0x8] mvn r1, r1 cmp r0, r1 bgt _02027812 - bl FUN_02020C2C + bl ErrorHandling _02027812: mov r0, #0x1 lsl r0, r6 @@ -84374,7 +84374,7 @@ _02027812: str r0, [sp, #0x4] tst r0, r1 beq _02027822 - bl FUN_02020C2C + bl ErrorHandling _02027822: ldr r1, [r5, #0x0] ldr r0, _02027874 ; =0x00001234 @@ -84391,7 +84391,7 @@ _02027834: _02027836: cmp r0, #0x0 bne _0202783E - bl FUN_02020C2C + bl ErrorHandling _0202783E: ldr r0, [sp, #0x8] add r1, r5, #0x0 @@ -84442,7 +84442,7 @@ _02027894: _02027896: cmp r0, #0x0 bne _0202789E - bl FUN_02020C2C + bl ErrorHandling _0202789E: add r5, #0x94 strb r4, [r5, #0x0] @@ -84471,7 +84471,7 @@ _020278C4: _020278C6: cmp r0, #0x0 bne _020278CE - bl FUN_02020C2C + bl ErrorHandling _020278CE: str r4, [r5, #0x4] pop {r3-r5, pc} @@ -84499,7 +84499,7 @@ _020278F4: _020278F6: cmp r0, #0x0 bne _020278FE - bl FUN_02020C2C + bl ErrorHandling _020278FE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -84532,7 +84532,7 @@ _02027930: _02027932: cmp r0, #0x0 bne _0202793A - bl FUN_02020C2C + bl ErrorHandling _0202793A: add r1, sp, #0x4 add r0, r4, #0x0 @@ -84564,18 +84564,18 @@ FUN_02027964: ; 0x02027964 ldr r4, [sp, #0x24] cmp r6, #0x14 blo _0202797A - bl FUN_02020C2C + bl ErrorHandling _0202797A: cmp r7, #0x64 blo _02027982 - bl FUN_02020C2C + bl ErrorHandling _02027982: mov r1, #0x1 ldr r0, [sp, #0x4] lsl r1, r1, #0x8 cmp r0, r1 blt _02027990 - bl FUN_02020C2C + bl ErrorHandling _02027990: add r0, sp, #0x10 ldrb r1, [r0, #0x10] @@ -84583,13 +84583,13 @@ _02027990: lsl r0, r0, #0x8 cmp r1, r0 blt _020279A0 - bl FUN_02020C2C + bl ErrorHandling _020279A0: mov r0, #0x7f mvn r0, r0 cmp r4, r0 bgt _020279AC - bl FUN_02020C2C + bl ErrorHandling _020279AC: mov r0, #0x1 lsl r0, r6 @@ -84597,7 +84597,7 @@ _020279AC: str r0, [sp, #0x8] tst r0, r1 beq _020279BC - bl FUN_02020C2C + bl ErrorHandling _020279BC: ldr r1, [r5, #0x0] ldr r0, _02027A0C ; =0x00001234 @@ -84614,7 +84614,7 @@ _020279CE: _020279D0: cmp r0, #0x0 bne _020279D8 - bl FUN_02020C2C + bl ErrorHandling _020279D8: mov r0, #0x38 ldrsb r0, [r5, r0] @@ -84653,7 +84653,7 @@ FUN_02027A14: ; 0x02027A14 add r5, r0, #0x0 cmp r4, #0x14 blt _02027A22 - bl FUN_02020C2C + bl ErrorHandling _02027A22: ldr r1, [r5, #0x0] ldr r0, _02027A50 ; =0x00001234 @@ -84670,7 +84670,7 @@ _02027A34: _02027A36: cmp r0, #0x0 bne _02027A3E - bl FUN_02020C2C + bl ErrorHandling _02027A3E: mov r0, #0x1 add r1, r0, #0x0 @@ -84706,7 +84706,7 @@ _02027A72: _02027A74: cmp r0, #0x0 bne _02027A7C - bl FUN_02020C2C + bl ErrorHandling _02027A7C: add r5, #0x8 add r0, r5, #0x0 @@ -84737,7 +84737,7 @@ _02027AAA: _02027AAC: cmp r0, #0x0 bne _02027AB4 - bl FUN_02020C2C + bl ErrorHandling _02027AB4: add r4, #0x8 add r0, r4, #0x0 @@ -84753,14 +84753,14 @@ FUN_02027AC4: ; 0x02027AC4 add r5, r0, #0x0 cmp r4, #0x14 blt _02027AD2 - bl FUN_02020C2C + bl ErrorHandling _02027AD2: mov r0, #0x1 ldr r1, [r5, #0x40] lsl r0, r4 tst r0, r1 bne _02027AE0 - bl FUN_02020C2C + bl ErrorHandling _02027AE0: ldr r1, [r5, #0x0] ldr r0, _02027B04 ; =0x00001234 @@ -84777,7 +84777,7 @@ _02027AF2: _02027AF4: cmp r0, #0x0 bne _02027AFC - bl FUN_02020C2C + bl ErrorHandling _02027AFC: add r5, #0x44 lsl r0, r4, #0x2 @@ -84807,7 +84807,7 @@ _02027B24: _02027B26: cmp r0, #0x0 bne _02027B2E - bl FUN_02020C2C + bl ErrorHandling _02027B2E: add r5, #0x8 add r0, r5, #0x0 @@ -84837,7 +84837,7 @@ _02027B5A: _02027B5C: cmp r0, #0x0 bne _02027B64 - bl FUN_02020C2C + bl ErrorHandling _02027B64: add r4, #0x8 add r0, r4, #0x0 @@ -84868,7 +84868,7 @@ _02027B92: _02027B94: cmp r0, #0x0 bne _02027B9C - bl FUN_02020C2C + bl ErrorHandling _02027B9C: mov r1, #0x1 str r1, [sp, #0x0] @@ -84905,14 +84905,14 @@ FUN_02027BDC: ; 0x02027BDC add r5, r0, #0x0 cmp r4, #0x14 blt _02027BEA - bl FUN_02020C2C + bl ErrorHandling _02027BEA: mov r0, #0x1 ldr r1, [r5, #0x40] lsl r0, r4 tst r0, r1 bne _02027BF8 - bl FUN_02020C2C + bl ErrorHandling _02027BF8: ldr r1, [r5, #0x0] ldr r0, _02027C20 ; =0x00001234 @@ -84929,7 +84929,7 @@ _02027C0A: _02027C0C: cmp r0, #0x0 bne _02027C14 - bl FUN_02020C2C + bl ErrorHandling _02027C14: add r5, #0x44 lsl r0, r4, #0x2 @@ -84959,7 +84959,7 @@ _02027C3E: _02027C40: cmp r0, #0x0 bne _02027C48 - bl FUN_02020C2C + bl ErrorHandling _02027C48: add r4, #0x94 ldrb r0, [r4, #0x0] @@ -84987,7 +84987,7 @@ _02027C6E: _02027C70: cmp r0, #0x0 bne _02027C78 - bl FUN_02020C2C + bl ErrorHandling _02027C78: ldr r0, [r4, #0x4] pop {r4, pc} @@ -85865,7 +85865,7 @@ FUN_0202822C: ; 0x0202822C add r7, r2, #0x0 cmp r4, #0x20 blt _0202823C - bl FUN_02020C2C + bl ErrorHandling _0202823C: cmp r7, #0x8 bhi _020282D0 @@ -85970,7 +85970,7 @@ FUN_020282E8: ; 0x020282E8 add r6, r3, #0x0 cmp r4, #0x20 blt _020282FA - bl FUN_02020C2C + bl ErrorHandling _020282FA: cmp r7, #0x8 bhi _02028378 @@ -85999,13 +85999,13 @@ _0202831C: str r6, [r1, r0] pop {r3-r7, pc} _0202832A: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _02028330: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _02028336: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _0202833C: mov r0, #0x30 @@ -86057,7 +86057,7 @@ FUN_0202838C: ; 0x0202838C add r5, r0, #0x0 cmp r4, #0x20 blt _0202839A - bl FUN_02020C2C + bl ErrorHandling _0202839A: mov r0, #0xc add r5, #0x40 @@ -86072,7 +86072,7 @@ FUN_020283A4: ; 0x020283A4 add r5, r0, #0x0 cmp r4, #0x20 blt _020283B2 - bl FUN_02020C2C + bl ErrorHandling _020283B2: mov r0, #0x1d lsl r0, r0, #0x4 @@ -86090,7 +86090,7 @@ FUN_020283C0: ; 0x020283C0 add r6, r2, #0x0 cmp r4, #0x20 blt _020283D0 - bl FUN_02020C2C + bl ErrorHandling _020283D0: mov r1, #0x1d lsl r1, r1, #0x4 @@ -86111,7 +86111,7 @@ FUN_020283E8: ; 0x020283E8 add r5, r0, #0x0 cmp r4, #0x20 blt _020283F6 - bl FUN_02020C2C + bl ErrorHandling _020283F6: mov r0, #0x7 lsl r0, r0, #0x6 @@ -86129,7 +86129,7 @@ FUN_02028404: ; 0x02028404 add r6, r2, #0x0 cmp r4, #0x20 blt _02028414 - bl FUN_02020C2C + bl ErrorHandling _02028414: mov r1, #0x7 lsl r1, r1, #0x6 @@ -86150,7 +86150,7 @@ FUN_0202842C: ; 0x0202842C add r5, r0, #0x0 cmp r4, #0x20 blt _0202843A - bl FUN_02020C2C + bl ErrorHandling _0202843A: mov r0, #0xc add r5, #0x40 @@ -86187,7 +86187,7 @@ FUN_02028468: ; 0x02028468 str r0, [sp, #0x0] cmp r5, #0x20 blt _02028478 - bl FUN_02020C2C + bl ErrorHandling _02028478: cmp r5, #0x1f bge _020284D2 @@ -86864,7 +86864,7 @@ FUN_02028918: ; 0x02028918 add r4, r1, #0x0 cmp r4, r0 bls _02028928 - bl FUN_02020C2C + bl ErrorHandling _02028928: strh r4, [r5, #0x0] pop {r3-r5, pc} @@ -89446,11 +89446,11 @@ FUN_02029B08: ; 0x02029B08 add r4, r2, #0x0 cmp r5, r0 blt _02029B1C - bl FUN_02020C2C + bl ErrorHandling _02029B1C: cmp r4, #0x40 blt _02029B24 - bl FUN_02020C2C + bl ErrorHandling _02029B24: strb r5, [r6, #0x5] add r0, r6, #0x0 @@ -89482,11 +89482,11 @@ FUN_02029B40: ; 0x02029B40 add r4, r2, #0x0 cmp r5, r0 blt _02029B54 - bl FUN_02020C2C + bl ErrorHandling _02029B54: cmp r4, #0x40 blt _02029B5C - bl FUN_02020C2C + bl ErrorHandling _02029B5C: cmp r5, #0x0 bne _02029B64 @@ -89525,17 +89525,17 @@ FUN_02029B90: ; 0x02029B90 str r3, [sp, #0x0] cmp r3, #0x4 blt _02029BA2 - bl FUN_02020C2C + bl ErrorHandling _02029BA2: mov r0, #0x1 lsl r0, r0, #0x8 cmp r5, r0 blt _02029BAE - bl FUN_02020C2C + bl ErrorHandling _02029BAE: cmp r4, #0x40 blt _02029BB6 - bl FUN_02020C2C + bl ErrorHandling _02029BB6: cmp r5, #0x0 beq _02029BFE @@ -89672,7 +89672,7 @@ FUN_02029C8C: ; 0x02029C8C add r5, r0, #0x0 cmp r4, #0xc blt _02029C9A - bl FUN_02020C2C + bl ErrorHandling _02029C9A: mov r0, #0x18 mul r0, r4 @@ -89688,7 +89688,7 @@ FUN_02029CA4: ; 0x02029CA4 add r4, r1, #0x0 cmp r6, #0xc blt _02029CB4 - bl FUN_02020C2C + bl ErrorHandling _02029CB4: add r0, r5, #0x0 add r1, r6, #0x0 @@ -89706,7 +89706,7 @@ FUN_02029CC8: ; 0x02029CC8 add r5, r0, #0x0 cmp r4, #0x8 blt _02029CD6 - bl FUN_02020C2C + bl ErrorHandling _02029CD6: lsl r0, r4, #0x1 add r0, r4, r0 @@ -90207,7 +90207,7 @@ _02029FE0: ldrh r0, [r0, #0x0] pop {r3, pc} _02029FF0: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -90232,7 +90232,7 @@ _0202A008: strh r2, [r0, #0x0] b _0202A01E _0202A01A: - bl FUN_02020C2C + bl ErrorHandling _0202A01E: add r0, r5, #0x0 add r1, r4, #0x0 @@ -90266,7 +90266,7 @@ _0202A04E: ldr r0, _0202A06C ; =0x0000270F pop {r3, pc} _0202A052: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop @@ -90419,7 +90419,7 @@ FUN_0202A170: ; 0x0202A170 add r5, r0, #0x0 cmp r4, #0x26 blt _0202A17E - bl FUN_02020C2C + bl ErrorHandling _0202A17E: add r0, r5, #0x0 mov r1, #0x0 @@ -91625,7 +91625,7 @@ _0202A9A0: ldr r0, [r0, #0x4] pop {r3, pc} _0202A9A4: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -91740,7 +91740,7 @@ FUN_0202AA40: ; 0x0202AA40 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AA4E - bl FUN_02020C2C + bl ErrorHandling _0202AA4E: mov r0, #0x43 add r1, r5, r4 @@ -91756,7 +91756,7 @@ FUN_0202AA58: ; 0x0202AA58 add r6, r2, #0x0 cmp r4, #0x3 blo _0202AA68 - bl FUN_02020C2C + bl ErrorHandling _0202AA68: mov r0, #0x43 add r1, r5, r4 @@ -91772,7 +91772,7 @@ FUN_0202AA74: ; 0x0202AA74 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AA82 - bl FUN_02020C2C + bl ErrorHandling _0202AA82: mov r0, #0x14 mul r0, r4 @@ -91801,7 +91801,7 @@ FUN_0202AAA0: ; 0x0202AAA0 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AAAE - bl FUN_02020C2C + bl ErrorHandling _0202AAAE: mov r0, #0x14 add r5, #0xd0 @@ -91939,7 +91939,7 @@ FUN_0202AB68: ; 0x0202AB68 add r5, r0, #0x0 cmp r4, #0x2 bls _0202AB76 - bl FUN_02020C2C + bl ErrorHandling _0202AB76: ldr r0, _0202AB7C ; =0x00000112 strb r4, [r5, r0] @@ -91975,7 +91975,7 @@ FUN_0202ABA0: ; 0x0202ABA0 add r4, r0, #0x0 cmp r5, #0x10 blo _0202ABB2 - bl FUN_02020C2C + bl ErrorHandling _0202ABB2: ldrh r0, [r4, #0xc] strh r0, [r4, #0xe] @@ -92079,7 +92079,7 @@ FUN_0202AC2C: ; 0x0202AC2C add r5, r0, #0x0 cmp r4, #0x8 blt _0202AC3A - bl FUN_02020C2C + bl ErrorHandling _0202AC3A: mov r0, #0x1 lsl r0, r0, #0x8 @@ -92110,7 +92110,7 @@ FUN_0202AC64: ; 0x0202AC64 add r5, r0, #0x0 cmp r4, #0x3 blt _0202AC72 - bl FUN_02020C2C + bl ErrorHandling _0202AC72: lsl r0, r4, #0x2 add r1, r5, r0 @@ -92271,7 +92271,7 @@ FUN_0202AD94: ; 0x0202AD94 sub r0, r4, #0x1 cmp r0, #0x8 blt _0202ADA4 - bl FUN_02020C2C + bl ErrorHandling _0202ADA4: sub r4, r4, #0x1 lsl r0, r4, #0x2 @@ -92299,7 +92299,7 @@ FUN_0202ADC8: ; 0x0202ADC8 add r5, r0, #0x0 cmp r4, #0x3 blt _0202ADD6 - bl FUN_02020C2C + bl ErrorHandling _0202ADD6: lsl r0, r4, #0x2 add r1, r5, r0 @@ -92359,7 +92359,7 @@ FUN_0202AE28: ; 0x0202AE28 add r4, r0, #0x0 cmp r5, #0x8 blt _0202AE36 - bl FUN_02020C2C + bl ErrorHandling _0202AE36: lsl r0, r5, #0x2 add r1, r4, r0 @@ -92381,7 +92381,7 @@ FUN_0202AE4C: ; 0x0202AE4C add r4, r0, #0x0 cmp r5, #0x3 blt _0202AE5A - bl FUN_02020C2C + bl ErrorHandling _0202AE5A: lsl r0, r5, #0x2 add r1, r4, r0 @@ -92485,7 +92485,7 @@ FUN_0202AEF4: ; 0x0202AEF4 lsl r0, r0, #0xa cmp r4, r0 blt _0202AF06 - bl FUN_02020C2C + bl ErrorHandling _0202AF06: mov r0, #0x1 mov r1, #0x7 @@ -92513,7 +92513,7 @@ FUN_0202AF24: ; 0x0202AF24 lsl r0, r0, #0xa cmp r4, r0 blt _0202AF36 - bl FUN_02020C2C + bl ErrorHandling _0202AF36: asr r0, r4, #0x2 lsr r0, r0, #0x1d @@ -92608,7 +92608,7 @@ _0202AFCA: sub r0, r4, #0x1 cmp r0, #0x8 blt _0202AFD4 - bl FUN_02020C2C + bl ErrorHandling _0202AFD4: ldr r0, _0202AFF8 ; =0x021C59D4 sub r1, r4, #0x1 @@ -92689,14 +92689,14 @@ FUN_0202B050: ; 0x0202B050 str r2, [sp, #0x8] cmp r0, #0x0 bne _0202B062 - bl FUN_02020C2C + bl ErrorHandling _0202B062: ldr r1, _0202B1E0 ; =0x00002AA8 ldr r0, [sp, #0x0] ldr r0, [r0, r1] cmp r0, #0x1e blo _0202B070 - bl FUN_02020C2C + bl ErrorHandling _0202B070: ldr r1, _0202B1E4 ; =0x00002AAC ldr r0, [sp, #0x0] @@ -92880,13 +92880,13 @@ FUN_0202B1F0: ; 0x0202B1F0 push {r4, lr} add r4, r0, #0x0 bne _0202B1FA - bl FUN_02020C2C + bl ErrorHandling _0202B1FA: ldr r0, _0202B214 ; =0x00002AA8 ldr r0, [r4, r0] cmp r0, #0x1e blo _0202B206 - bl FUN_02020C2C + bl ErrorHandling _0202B206: ldr r0, _0202B218 ; =0x00002AAC ldr r0, [r4, r0] @@ -92906,17 +92906,17 @@ FUN_0202B21C: ; 0x0202B21C add r4, r1, #0x0 cmp r5, #0x0 bne _0202B22A - bl FUN_02020C2C + bl ErrorHandling _0202B22A: ldr r0, _0202B248 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B236 - bl FUN_02020C2C + bl ErrorHandling _0202B236: cmp r4, #0x1e blt _0202B23E - bl FUN_02020C2C + bl ErrorHandling _0202B23E: ldr r0, _0202B24C ; =0x00002AAC ldr r0, [r5, r0] @@ -92933,17 +92933,17 @@ FUN_0202B250: ; 0x0202B250 add r4, r1, #0x0 cmp r5, #0x0 bne _0202B25E - bl FUN_02020C2C + bl ErrorHandling _0202B25E: ldr r0, _0202B298 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B26A - bl FUN_02020C2C + bl ErrorHandling _0202B26A: cmp r4, #0x1e blt _0202B272 - bl FUN_02020C2C + bl ErrorHandling _0202B272: ldr r0, _0202B298 ; =0x00002AA8 ldr r0, [r5, r0] @@ -92979,17 +92979,17 @@ FUN_0202B29C: ; 0x0202B29C add r4, r3, #0x0 cmp r5, #0x0 bne _0202B2AE - bl FUN_02020C2C + bl ErrorHandling _0202B2AE: ldr r0, _0202B318 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B2BA - bl FUN_02020C2C + bl ErrorHandling _0202B2BA: cmp r6, #0x1e blt _0202B2C2 - bl FUN_02020C2C + bl ErrorHandling _0202B2C2: ldr r0, _0202B318 ; =0x00002AA8 ldr r0, [r5, r0] @@ -93044,17 +93044,17 @@ FUN_0202B31C: ; 0x0202B31C add r4, r2, #0x0 cmp r5, #0x0 bne _0202B32C - bl FUN_02020C2C + bl ErrorHandling _0202B32C: ldr r0, _0202B370 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B338 - bl FUN_02020C2C + bl ErrorHandling _0202B338: cmp r6, #0x1e blt _0202B340 - bl FUN_02020C2C + bl ErrorHandling _0202B340: ldr r0, _0202B370 ; =0x00002AA8 ldr r0, [r5, r0] @@ -93192,7 +93192,7 @@ _0202B422: add r3, r3, #0x1 cmp r3, #0x4 blt _0202B418 - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 @@ -93404,7 +93404,7 @@ _0202B574: add r4, #0xcc b _0202B57E _0202B57A: - bl FUN_02020C2C + bl ErrorHandling _0202B57E: add r0, r4, #0x0 pop {r4, pc} @@ -93442,7 +93442,7 @@ _0202B5B0: add r4, r0, r1 b _0202B5BA _0202B5B6: - bl FUN_02020C2C + bl ErrorHandling _0202B5BA: add r0, r4, #0x0 pop {r4, pc} @@ -93752,7 +93752,7 @@ FUN_0202B7C8: ; 0x0202B7C8 bl FUN_0202B820 cmp r0, #0x1 beq _0202B7DE - bl FUN_02020C2C + bl ErrorHandling _0202B7DE: add r0, r5, #0x0 add r1, r6, #0x0 @@ -93775,7 +93775,7 @@ FUN_0202B7F4: ; 0x0202B7F4 bl FUN_0202B820 cmp r0, #0x0 beq _0202B80A - bl FUN_02020C2C + bl ErrorHandling _0202B80A: add r0, r5, #0x0 add r1, r6, #0x0 @@ -93935,7 +93935,7 @@ FUN_0202B8F0: ; 0x0202B8F0 cmp r2, #0x6 blo _0202B8FE blo _0202B930 - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _0202B8FE: mov r3, #0x90 @@ -94711,7 +94711,7 @@ _0202BEB4: bl FUN_020671BC cmp r0, #0x0 beq _0202BECC - bl FUN_02020C2C + bl ErrorHandling _0202BECC: add r4, r4, #0x1 add r5, #0xec @@ -94741,7 +94741,7 @@ _0202BEF0: bl FUN_020671BC cmp r0, #0x0 beq _0202BF08 - bl FUN_02020C2C + bl ErrorHandling _0202BF08: add r4, r4, #0x1 add r5, #0xec @@ -94859,7 +94859,7 @@ FUN_0202BFD8: ; 0x0202BFD8 add r4, r2, #0x0 cmp r5, #0x6 blt _0202BFE8 - bl FUN_02020C2C + bl ErrorHandling _0202BFE8: mov r0, #0xec mul r0, r5 @@ -97506,7 +97506,7 @@ _0202D3BC: _0202D3CC: cmp r7, #0x0 bne _0202D3D4 - bl FUN_02020C2C + bl ErrorHandling _0202D3D4: add r0, r5, #0x0 add r1, r4, #0x0 @@ -97919,7 +97919,7 @@ _0202D69E: ldr r0, _0202D710 ; =0x0000FFFE cmp r7, r0 blt _0202D6A8 - bl FUN_02020C2C + bl ErrorHandling _0202D6A8: ldr r0, [sp, #0x0] bl FUN_0202D9A0 @@ -98177,7 +98177,7 @@ _0202D864: bne _0202D864 cmp r4, #0x1a blo _0202D878 - bl FUN_02020C2C + bl ErrorHandling _0202D878: add r0, sp, #0x0 ldrb r0, [r0, r4] @@ -98203,7 +98203,7 @@ _0202D890: bne _0202D890 cmp r4, #0x1a blo _0202D8A4 - bl FUN_02020C2C + bl ErrorHandling _0202D8A4: add r0, sp, #0x0 ldrb r0, [r0, r4] @@ -98308,7 +98308,7 @@ _0202D94C: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202D958 - bl FUN_02020C2C + bl ErrorHandling _0202D958: ldr r0, _0202D99C ; =0x021C59E0 ldr r1, [r0, #0x0] @@ -98367,7 +98367,7 @@ _0202D9B6: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202D9C2 - bl FUN_02020C2C + bl ErrorHandling _0202D9C2: ldr r0, _0202DA00 ; =0x021C59E0 ldr r1, [r0, #0x0] @@ -99499,7 +99499,7 @@ _0202E1EE: ldr r0, [sp, #0x8] cmp r0, #0x0 bge _0202E1F8 - bl FUN_02020C2C + bl ErrorHandling _0202E1F8: ldr r0, _0202E254 ; =0x021C59E4 mov r2, #0xda @@ -100347,7 +100347,7 @@ _0202E860: add r5, r5, #0x2 cmp r3, #0x10 blt _0202E850 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} .balign 4 @@ -100661,12 +100661,12 @@ FUN_0202EA9C: ; 0x0202EA9C bl FUN_02023AC4 cmp r0, #0x20 ble _0202EAC2 - bl FUN_02020C2C + bl ErrorHandling _0202EAC2: bl FUN_02023924 cmp r0, #0x20 beq _0202EACE - bl FUN_02020C2C + bl ErrorHandling _0202EACE: bl FUN_02023924 add r1, r5, #0x0 @@ -101208,7 +101208,7 @@ FUN_0202EEE8: ; 0x0202EEE8 add r4, r0, #0x0 cmp r5, #0x1a blo _0202EEFA - bl FUN_02020C2C + bl ErrorHandling _0202EEFA: cmp r5, #0xa bne _0202EF04 @@ -101322,7 +101322,7 @@ FUN_0202EFAC: ; 0x0202EFAC beq _0202EFD8 cmp r4, #0x8 blt _0202EFC2 - bl FUN_02020C2C + bl ErrorHandling _0202EFC2: ldr r1, _0202EFDC ; =0x021C59E8 add r0, r5, #0x0 @@ -101669,7 +101669,7 @@ _0202F25C: mov r4, #0x1 cmp r0, #0x0 bne _0202F268 - bl FUN_02020C2C + bl ErrorHandling _0202F268: ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2DC ; =0x0000065C @@ -103961,7 +103961,7 @@ FUN_020304D4: ; 0x020304D4 strb r1, [r0, #0x0] pop {r3, pc} _020304E4: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} nop _020304EC: .word 0x02105D58 @@ -103977,7 +103977,7 @@ FUN_020304F0: ; 0x020304F0 strb r1, [r0, #0x1] pop {r3, pc} _02030500: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} nop _02030508: .word 0x02105D58 @@ -104802,7 +104802,7 @@ FUN_02030B3C: ; 0x02030B3C bl FUN_02031190 cmp r0, #0x0 beq _02030B58 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} @@ -110580,11 +110580,11 @@ _02033714: add r5, r0, #0x0 cmp r5, #0x2 bne _02033722 - bl FUN_02020C2C + bl ErrorHandling _02033722: cmp r5, #0x3 bne _0203372A - bl FUN_02020C2C + bl ErrorHandling _0203372A: cmp r5, #0x1 bne _02033774 @@ -110606,11 +110606,11 @@ _0203374A: add r5, r0, #0x0 cmp r5, #0x3 bne _02033758 - bl FUN_02020C2C + bl ErrorHandling _02033758: cmp r5, #0x1 bne _02033760 - bl FUN_02020C2C + bl ErrorHandling _02033760: cmp r5, #0x2 bne _02033774 @@ -110942,7 +110942,7 @@ _020339D8: str r0, [r6, #0x0] cmp r0, #0x3 bne _020339FE - bl FUN_02020C2C + bl ErrorHandling _020339FE: ldr r0, [r6, #0x0] cmp r0, #0x0 @@ -112032,7 +112032,7 @@ _020342E4: bne _02034308 mov r0, #0x1 add r1, r0, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _020342E4 _02034308: add r0, sp, #0x14 @@ -112138,7 +112138,7 @@ _020343D8: ldrb r7, [r6, #0x4] cmp r7, #0x10 bls _0203440A - bl FUN_02020C2C + bl ErrorHandling _0203440A: ldr r1, _02034490 ; =0x00001196 add r0, r5, #0x0 @@ -112255,7 +112255,7 @@ FUN_020344D8: ; 0x020344D8 mul r0, r1 cmp r5, r0 blt _020344EC - bl FUN_02020C2C + bl ErrorHandling _020344EC: lsl r0, r5, #0x1 add r1, r4, r0 @@ -112270,7 +112270,7 @@ FUN_020344FC: ; 0x020344FC push {r4, lr} add r4, r0, #0x0 bne _02034506 - bl FUN_02020C2C + bl ErrorHandling _02034506: ldrb r0, [r4, #0x0] pop {r4, pc} @@ -112281,7 +112281,7 @@ FUN_0203450C: ; 0x0203450C push {r4, lr} add r4, r0, #0x0 bne _02034516 - bl FUN_02020C2C + bl ErrorHandling _02034516: ldrb r0, [r4, #0x1] pop {r4, pc} @@ -112301,7 +112301,7 @@ FUN_0203451C: ; 0x0203451C cmp r5, r6 blt _02034536 _02034532: - bl FUN_02020C2C + bl ErrorHandling _02034536: cmp r4, #0x0 blt _02034540 @@ -112309,7 +112309,7 @@ _02034536: cmp r4, r0 blt _02034544 _02034540: - bl FUN_02020C2C + bl ErrorHandling _02034544: add r0, r4, #0x0 mul r0, r6 @@ -112333,7 +112333,7 @@ FUN_02034554: ; 0x02034554 cmp r4, r0 blt _0203456C _02034568: - bl FUN_02020C2C + bl ErrorHandling _0203456C: lsl r0, r4, #0x1 add r0, r5, r0 @@ -112354,7 +112354,7 @@ FUN_02034578: ; 0x02034578 add r6, r3, #0x0 cmp r4, r0 blt _0203458A - bl FUN_02020C2C + bl ErrorHandling _0203458A: ldr r0, [sp, #0x10] mul r0, r6 @@ -112363,7 +112363,7 @@ _0203458A: lsl r0, r0, #0x2 cmp r4, r0 blt _0203459C - bl FUN_02020C2C + bl ErrorHandling _0203459C: ldr r0, _020345A4 ; =0x0000070E add r1, r5, r4 @@ -112402,7 +112402,7 @@ FUN_020345DC: ; 0x020345DC push {r4, lr} add r4, r0, #0x0 bne _020345E6 - bl FUN_02020C2C + bl ErrorHandling _020345E6: add r0, r4, #0x0 bl FUN_02016A18 @@ -112442,13 +112442,13 @@ FUN_020345FC: ; 0x020345FC ldrb r0, [r0, #0x1] cmp r5, r0 blt _0203462E - bl FUN_02020C2C + bl ErrorHandling _0203462E: add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r4, r0 blt _0203463A - bl FUN_02020C2C + bl ErrorHandling _0203463A: add r0, sp, #0x0 ldrb r0, [r0, #0x1] @@ -112476,7 +112476,7 @@ FUN_02034660: ; 0x02034660 add r5, r0, #0x0 add r4, r1, #0x0 bne _0203466C - bl FUN_02020C2C + bl ErrorHandling _0203466C: add r0, r5, #0x0 add r1, r4, #0x0 @@ -112571,7 +112571,7 @@ FUN_02034710: ; 0x02034710 ldr r1, _02034720 ; =0x0000022F cmp r0, r1 blo _0203471E - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x3 _0203471E: pop {r3, pc} @@ -113053,7 +113053,7 @@ FUN_02034A28: ; 0x02034A28 add r4, r1, #0x0 cmp r0, #0x0 beq _02034A38 - bl FUN_02020C2C + bl ErrorHandling _02034A38: ldr r1, _02034A44 ; =0x00000AC8 add r0, r4, #0x0 @@ -113070,7 +113070,7 @@ FUN_02034A48: ; 0x02034A48 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02034A56 - bl FUN_02020C2C + bl ErrorHandling _02034A56: ldr r0, [r4, #0x14] bl FUN_02016A18 @@ -113085,7 +113085,7 @@ FUN_02034A60: ; 0x02034A60 add r4, r1, #0x0 cmp r0, #0x0 bne _02034A70 - bl FUN_02020C2C + bl ErrorHandling _02034A70: ldr r0, [r5, #0x14] add r1, r4, #0x0 @@ -113118,7 +113118,7 @@ FUN_02034A98: ; 0x02034A98 lsl r1, r1, #0xa cmp r0, r1 blo _02034AB8 - bl FUN_02020C2C + bl ErrorHandling _02034AB8: add r5, #0x20 add r0, r5, #0x0 @@ -113136,7 +113136,7 @@ FUN_02034AC8: ; 0x02034AC8 ldr r4, [r0, #0x4] cmp r0, #0x0 bne _02034AD8 - bl FUN_02020C2C + bl ErrorHandling _02034AD8: cmp r4, #0x0 beq _02034AEC @@ -113274,7 +113274,7 @@ _02034B9C: cmp r2, r5 blo _02034B8A _02034BA4: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} @@ -113303,7 +113303,7 @@ _02034BCC: cmp r3, r5 blo _02034BBC _02034BD4: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} @@ -113332,7 +113332,7 @@ _02034BFC: cmp r3, r5 blo _02034BEC _02034C04: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} @@ -113490,7 +113490,7 @@ FUN_02034CEC: ; 0x02034CEC lsl r1, r1, #0x8 cmp r0, r1 blo _02034D1C - bl FUN_02020C2C + bl ErrorHandling _02034D1C: mov r0, #0x82 lsl r0, r0, #0x4 @@ -113507,7 +113507,7 @@ FUN_02034D2C: ; 0x02034D2C ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02034D3A - bl FUN_02020C2C + bl ErrorHandling _02034D3A: mov r0, #0x82 ldr r1, [r4, #0x14] @@ -113751,7 +113751,7 @@ FUN_02034E78: ; 0x02034E78 cmp r0, #0x14 bls _02034E88 _02034E82: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 _02034E88: sub r0, r0, #0x1 @@ -113969,7 +113969,7 @@ FUN_02034FE4: ; 0x02034FE4 cmp r5, r0 blt _02035010 _0203500C: - bl FUN_02020C2C + bl ErrorHandling _02035010: ldr r0, [r6, #0x8] cmp r0, #0x2 @@ -115808,7 +115808,7 @@ _02035ECC: bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r0, #0x1 strb r0, [r7, #0x11] @@ -115860,7 +115860,7 @@ _02035F4A: bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r1, #0x1 add r0, r6, #0x0 @@ -115917,7 +115917,7 @@ _02035FD0: bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r1, #0x1 add r0, r6, #0x0 @@ -116365,7 +116365,7 @@ _0203638A: bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 @@ -116464,7 +116464,7 @@ _02036474: bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 @@ -116957,7 +116957,7 @@ FUN_0203684C: ; 0x0203684C bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 @@ -117486,7 +117486,7 @@ FUN_02036CEC: ; 0x02036CEC bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 @@ -117616,7 +117616,7 @@ FUN_02036E08: ; 0x02036E08 cmp r0, #0x0 ldr r0, [r4, #0xc] bne _02036E9E - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x28] ldr r0, [r4, #0xc] bl FUN_02079C70 @@ -117653,7 +117653,7 @@ FUN_02036E08: ; 0x02036E08 bl FUN_0206C700 b _02036EF2 _02036E9E: - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x38] ldr r0, [r4, #0xc] bl FUN_02079C70 @@ -118289,13 +118289,13 @@ FUN_02037350: ; 0x02037350 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _02037360 - bl FUN_02020C2C + bl ErrorHandling _02037360: ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203736C - bl FUN_02020C2C + bl ErrorHandling _0203736C: ldr r0, _0203738C ; =0x00000005 mov r1, #0x2 @@ -118372,7 +118372,7 @@ FUN_020373D4: ; 0x020373D4 add r6, r2, #0x0 cmp r0, #0x0 beq _020373E8 - bl FUN_02020C2C + bl ErrorHandling _020373E8: add r0, r5, #0x0 bl FUN_02037394 @@ -118997,7 +118997,7 @@ _020378BC: str r1, [r0, #0x0] b _020378C8 _020378C4: - bl FUN_02020C2C + bl ErrorHandling _020378C8: ldr r1, _020378F4 ; =0x02105DB8 add r0, r6, #0x0 @@ -119032,7 +119032,7 @@ FUN_020378FC: ; 0x020378FC bl FUN_0206E384 cmp r0, #0x5 bne _02037916 - bl FUN_02020C2C + bl ErrorHandling _02037916: add r0, r4, #0x0 pop {r3-r5, pc} @@ -119113,7 +119113,7 @@ FUN_0203797C: ; 0x0203797C bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r4, #0x0 add r0, #0x21 @@ -119433,7 +119433,7 @@ FUN_02037C00: ; 0x02037C00 bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r4, #0x11] @@ -119486,7 +119486,7 @@ FUN_02037C7C: ; 0x02037C7C add r4, r0, #0x0 blx FUN_020CE34C add r0, r5, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0206BB1C @@ -119538,7 +119538,7 @@ FUN_02037CF0: ; 0x02037CF0 bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r4, #0x11] @@ -119791,7 +119791,7 @@ FUN_02037EF8: ; 0x02037EF8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020377AC - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02037EE8 @@ -119951,7 +119951,7 @@ FUN_0203800C: ; 0x0203800C str r7, [r4, #0x4] str r0, [r4, #0x8] add r0, r5, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r5, #0x0 bl FUN_02029FC8 @@ -120095,7 +120095,7 @@ FUN_02038144: ; 0x02038144 bl FUN_02029AFC str r0, [r5, #0x14] ldr r0, [r4, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r5, #0x18] ldr r0, [r4, #0xc] bl FUN_02024DA0 @@ -120242,7 +120242,7 @@ _02038288: bl FUN_020690E4 str r0, [r4, #0x4c] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x5c] mov r0, #0x1 str r0, [r4, #0x58] @@ -120310,7 +120310,7 @@ _020382F6: lsl r2, r0, #0x10 bl FUN_0201681C ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x24] ldr r0, [r5, #0xc] bl FUN_02079C70 @@ -120420,7 +120420,7 @@ FUN_020383F8: ; 0x020383F8 ldr r0, [r0, #0x0] str r0, [r4, #0x4] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x8] ldr r1, _02038428 ; =0x020F2C94 add r0, r5, #0x0 @@ -120443,7 +120443,7 @@ FUN_0203842C: ; 0x0203842C ldr r0, [r5, #0x7c] str r0, [r4, #0x4] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl FUN_02029FC8 @@ -120659,7 +120659,7 @@ FUN_020385CC: ; 0x020385CC ldr r0, [sp, #0x30] str r0, [r4, #0x8] ldr r0, [r7, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x0] ldr r2, [sp, #0x8] ldr r3, [sp, #0xc] @@ -120817,7 +120817,7 @@ FUN_020386E0: ; 0x020386E0 bl FUN_020238F4 str r0, [r4, #0x1c] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x24] ldr r0, [r5, #0xc] bl FUN_02029FC8 @@ -120877,7 +120877,7 @@ FUN_02038790: ; 0x02038790 bl FUN_02023788 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x10] ldr r0, [r5, #0xc] bl FUN_020286EC @@ -121008,14 +121008,14 @@ FUN_020388B4: ; 0x020388B4 bl FUN_021ED49C add r5, r0, #0x0 bne _020388CC - bl FUN_02020C2C + bl ErrorHandling _020388CC: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020613CC str r5, [sp, #0x0] ldr r0, [r4, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x4] ldr r0, [r4, #0xc] bl FUN_020238F4 @@ -121133,7 +121133,7 @@ FUN_020389CC: ; 0x020389CC bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x0] mov r0, #0x20 add r1, r0, #0x0 @@ -121391,7 +121391,7 @@ _02038BB2: ldr r0, [r4, #0x60] cmp r1, r0 blo _02038BCA - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 strb r0, [r4, #0x1] pop {r4, pc} @@ -121668,7 +121668,7 @@ _02038DA8: ldrb r0, [r4, #0x9] cmp r0, #0x0 bne _02038DC8 - bl FUN_02020C2C + bl ErrorHandling _02038DC8: mov r0, #0x0 str r0, [r5, #0x38] @@ -121722,7 +121722,7 @@ FUN_02038E20: ; 0x02038E20 bl FUN_02016998 add r4, r0, #0x0 bne _02038E32 - bl FUN_02020C2C + bl ErrorHandling _02038E32: add r0, r4, #0x0 mov r1, #0x0 @@ -121797,7 +121797,7 @@ FUN_02038EB0: ; 0x02038EB0 bl FUN_02016998 add r4, r0, #0x0 bne _02038EC6 - bl FUN_02020C2C + bl ErrorHandling _02038EC6: ldr r2, _02038EE4 ; =0x020F34DC ldr r1, _02038EE8 ; =0x020F355C @@ -122498,7 +122498,7 @@ _02039426: add r0, r0, r1 pop {r3, pc} _02039430: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -122513,7 +122513,7 @@ FUN_02039438: ; 0x02039438 ldr r0, _0203945C ; =0x0003643F cmp r1, r0 beq _02039450 - bl FUN_02020C2C + bl ErrorHandling _02039450: add r0, r4, #0x0 add r1, r5, #0x0 @@ -122622,7 +122622,7 @@ FUN_02039504: ; 0x02039504 add r5, r0, #0x0 cmp r4, #0x10 blo _02039512 - bl FUN_02020C2C + bl ErrorHandling _02039512: ldr r1, _02039524 ; =0x00004020 add r0, r5, #0x0 @@ -122869,7 +122869,7 @@ _020396C0: _020396CE: cmp r1, #0xe5 blo _020396DA - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4, pc} _020396DA: @@ -122913,7 +122913,7 @@ _02039718: _02039726: cmp r1, #0xe5 blo _02039732 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _02039732: @@ -124839,7 +124839,7 @@ FUN_0203A590: ; 0x0203A590 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02054608 @@ -125254,7 +125254,7 @@ FUN_0203A8B8: ; 0x0203A8B8 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 ldr r1, [r7, #0x0] add r0, r4, #0x0 @@ -126116,7 +126116,7 @@ FUN_0203AFC4: ; 0x0203AFC4 bl FUN_0203B120 add r6, r0, #0x0 bne _0203AFF6 - bl FUN_02020C2C + bl ErrorHandling _0203AFF6: ldr r1, [r5, #0x8] add r0, r6, #0x0 @@ -126175,7 +126175,7 @@ FUN_0203B024: ; 0x0203B024 str r0, [sp, #0x4] cmp r0, #0x0 bne _0203B07A - bl FUN_02020C2C + bl ErrorHandling _0203B07A: mov r0, #0x4 add r1, r0, #0x0 @@ -126319,7 +126319,7 @@ FUN_0203B174: ; 0x0203B174 bl FUN_02016998 add r4, r0, #0x0 bne _0203B18E - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _0203B18E: str r5, [r4, #0xc] @@ -126360,7 +126360,7 @@ _0203B1D6: ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _0203B1E8 - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} _0203B1E8: sub r0, r0, #0x1 @@ -126646,7 +126646,7 @@ FUN_0203B3F8: ; 0x0203B3F8 bl FUN_020575D4 cmp r0, #0x0 bne _0203B43A - bl FUN_02020C2C + bl ErrorHandling _0203B43A: mov r0, #0x0 add sp, #0x4 @@ -127278,7 +127278,7 @@ FUN_0203B968: ; 0x0203B968 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203B994 - bl FUN_02020C2C + bl ErrorHandling _0203B994: ldr r0, [r4, #0x0] bl FUN_02037A40 @@ -127383,7 +127383,7 @@ FUN_0203BA3C: ; 0x0203BA3C ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203BA7C - bl FUN_02020C2C + bl ErrorHandling _0203BA7C: ldr r0, [r4, #0x0] bl FUN_02037A40 @@ -127462,7 +127462,7 @@ FUN_0203BAF4: ; 0x0203BAF4 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203BB20 - bl FUN_02020C2C + bl ErrorHandling _0203BB20: ldr r0, [r4, #0x0] bl FUN_02037A78 @@ -128609,7 +128609,7 @@ FUN_0203C3E8: ; 0x0203C3E8 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r6, #0x4] add r0, r5, #0x0 add r0, #0x80 @@ -128673,7 +128673,7 @@ _0203C476: ldr r0, [r6, #0x0] cmp r0, #0x0 beq _0203C492 - bl FUN_02020C2C + bl ErrorHandling _0203C492: add r0, r5, #0x0 add r0, #0x80 @@ -128708,7 +128708,7 @@ FUN_0203C4B0: ; 0x0203C4B0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203C4DC - bl FUN_02020C2C + bl ErrorHandling _0203C4DC: ldr r0, [r4, #0x0] bl FUN_020378FC @@ -129624,7 +129624,7 @@ FUN_0203CBE8: ; 0x0203CBE8 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 ldr r1, [r6, #0x0] add r0, r4, #0x0 @@ -131521,7 +131521,7 @@ FUN_0203DB88: ; 0x0203DB88 bl FUN_02058060 add r5, r0, #0x0 bne _0203DBC6 - bl FUN_02020C2C + bl ErrorHandling _0203DBC6: add r0, r5, #0x0 add r1, r4, #0x0 @@ -131944,7 +131944,7 @@ FUN_0203DEC4: ; 0x0203DEC4 bl FUN_02058060 add r4, r0, #0x0 bne _0203DEEC - bl FUN_02020C2C + bl ErrorHandling _0203DEEC: add r0, r4, #0x0 mov r1, #0x0 @@ -131969,7 +131969,7 @@ FUN_0203DEF8: ; 0x0203DEF8 bl FUN_02058060 add r4, r0, #0x0 bne _0203DF20 - bl FUN_02020C2C + bl ErrorHandling _0203DF20: add r0, r4, #0x0 mov r1, #0x1 @@ -133286,7 +133286,7 @@ _0203E9AE: strh r0, [r6, #0x0] b _0203E9C8 _0203E9C4: - bl FUN_02020C2C + bl ErrorHandling _0203E9C8: mov r0, #0x0 pop {r4-r6, pc} @@ -134181,7 +134181,7 @@ FUN_0203F07C: ; 0x0203F07C bl FUN_02058060 add r7, r0, #0x0 bne _0203F0FA - bl FUN_02020C2C + bl ErrorHandling _0203F0FA: str r6, [sp, #0x0] str r4, [sp, #0x4] @@ -134229,7 +134229,7 @@ FUN_0203F110: ; 0x0203F110 bl FUN_02058060 add r5, r0, #0x0 bne _0203F164 - bl FUN_02020C2C + bl ErrorHandling _0203F164: ldr r0, [r4, #0x74] add r1, r5, #0x0 @@ -134325,7 +134325,7 @@ _0203F212: _0203F21A: cmp r4, #0x10 blt _0203F222 - bl FUN_02020C2C + bl ErrorHandling _0203F222: ldr r0, [sp, #0x0] add r4, #0x22 @@ -134980,7 +134980,7 @@ FUN_0203F720: ; 0x0203F720 add r5, r0, #0x0 cmp r4, #0x3 bls _0203F752 - bl FUN_02020C2C + bl ErrorHandling _0203F752: add r0, r5, #0x0 add r1, r4, #0x0 @@ -135099,7 +135099,7 @@ FUN_0203F80C: ; 0x0203F80C ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203F84C - bl FUN_02020C2C + bl ErrorHandling _0203F84C: ldr r0, [r4, #0x0] bl FUN_02037A40 @@ -135206,7 +135206,7 @@ _0203F910: bl FUN_0224F12C b _0203F91E _0203F91A: - bl FUN_02020C2C + bl ErrorHandling _0203F91E: mov r0, #0x1 pop {r3-r5, pc} @@ -135593,7 +135593,7 @@ FUN_0203FC1C: ; 0x0203FC1C bl FUN_02058060 add r5, r0, #0x0 bne _0203FC4C - bl FUN_02020C2C + bl ErrorHandling _0203FC4C: add r0, r5, #0x0 add r1, r4, #0x0 @@ -136062,7 +136062,7 @@ FUN_0203FF10: ; 0x0203FF10 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x2c] add r0, r5, #0x0 add r0, #0x80 @@ -141573,7 +141573,7 @@ _02042CA8: bl FUN_0204B9CC b _02042CB6 _02042CB2: - bl FUN_02020C2C + bl ErrorHandling _02042CB6: mov r0, #0x1 pop {r4, pc} @@ -143067,7 +143067,7 @@ _020438B2: bl FUN_0204BA1C b _020438CA _020438C6: - bl FUN_02020C2C + bl ErrorHandling _020438CA: mov r0, #0x0 pop {r3-r5, pc} @@ -143158,7 +143158,7 @@ _0204395C: bl FUN_0206B20C cmp r0, #0x0 bne _0204398C - bl FUN_02020C2C + bl ErrorHandling _0204398C: add r0, r6, #0x0 add r0, #0x80 @@ -146455,7 +146455,7 @@ FUN_02045484: ; 0x02045484 add r6, r0, #0x0 cmp r4, #0x8 blo _020454B6 - bl FUN_02020C2C + bl ErrorHandling _020454B6: add r5, #0x80 ldr r0, [r5, #0x0] @@ -146480,7 +146480,7 @@ FUN_020454CC: ; 0x020454CC add r4, r0, #0x0 cmp r4, #0x8 blo _020454EA - bl FUN_02020C2C + bl ErrorHandling _020454EA: add r5, #0x80 ldr r0, [r5, #0x0] @@ -146724,7 +146724,7 @@ _020456AE: strh r0, [r5, #0x0] b _020456D0 _020456CC: - bl FUN_02020C2C + bl ErrorHandling _020456D0: mov r0, #0x0 pop {r3-r5, pc} @@ -146768,7 +146768,7 @@ _02045706: strh r0, [r5, #0x0] b _02045726 _02045722: - bl FUN_02020C2C + bl ErrorHandling _02045726: mov r0, #0x0 pop {r3-r5, pc} @@ -146813,7 +146813,7 @@ _0204575E: strh r0, [r5, #0x0] b _0204577E _0204577A: - bl FUN_02020C2C + bl ErrorHandling _0204577E: mov r0, #0x0 pop {r3-r5, pc} @@ -147566,7 +147566,7 @@ FUN_02045DD0: ; 0x02045DD0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02045DFC - bl FUN_02020C2C + bl ErrorHandling _02045DFC: ldr r0, [r4, #0x0] bl FUN_02037D5C @@ -147655,7 +147655,7 @@ FUN_02045E74: ; 0x02045E74 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x8] str r6, [r4, #0xc] add r0, r5, #0x0 @@ -147774,7 +147774,7 @@ FUN_02045F88: ; 0x02045F88 ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02045FB2 - bl FUN_02020C2C + bl ErrorHandling _02045FB2: ldrb r0, [r4, #0x16] cmp r0, #0x0 @@ -147809,7 +147809,7 @@ FUN_02045FCC: ; 0x02045FCC ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02045FF6 - bl FUN_02020C2C + bl ErrorHandling _02045FF6: ldrb r0, [r4, #0x16] cmp r0, #0x0 @@ -147829,7 +147829,7 @@ _02046002: thumb_func_start FUN_02046010 FUN_02046010: ; 0x02046010 push {r3, lr} - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -147837,7 +147837,7 @@ FUN_02046010: ; 0x02046010 thumb_func_start FUN_0204601C FUN_0204601C: ; 0x0204601C push {r3, lr} - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -148255,7 +148255,7 @@ _02046344: lsl r0, r0, #0x2 cmp r4, r0 blt _0204635A - bl FUN_02020C2C + bl ErrorHandling _0204635A: mov r0, #0x9 lsl r0, r0, #0x6 @@ -148270,7 +148270,7 @@ _02046364: asr r4, r0, #0x3 cmp r4, #0x8 blt _02046376 - bl FUN_02020C2C + bl ErrorHandling _02046376: ldr r0, _0204637C ; =0x021C5A14 add r0, r0, r4 @@ -148289,7 +148289,7 @@ FUN_02046380: ; 0x02046380 lsl r0, r0, #0x4 cmp r4, r0 blt _02046396 - bl FUN_02020C2C + bl ErrorHandling _02046396: lsl r0, r4, #0x1 add r0, r5, r0 @@ -148329,7 +148329,7 @@ FUN_020463CC: ; 0x020463CC add r6, r2, #0x0 cmp r0, #0x0 beq _020463DE - bl FUN_02020C2C + bl ErrorHandling _020463DE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -150531,7 +150531,7 @@ FUN_0204755C: ; 0x0204755C add r4, r1, #0x0 cmp r5, #0x1f blo _0204756A - bl FUN_02020C2C + bl ErrorHandling _0204756A: ldr r0, _02047580 ; =0x020F457C lsl r1, r5, #0x2 @@ -150553,7 +150553,7 @@ FUN_02047588: ; 0x02047588 add r4, r0, #0x0 cmp r4, #0x1f blo _02047594 - bl FUN_02020C2C + bl ErrorHandling _02047594: ldr r0, _0204759C ; =0x020F457E lsl r1, r4, #0x2 @@ -150921,7 +150921,7 @@ FUN_02047814: ; 0x02047814 bl FUN_020238F4 str r0, [sp, #0x10] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress mov r1, #0x1 str r0, [sp, #0x14] add r0, r6, #0x0 @@ -151063,7 +151063,7 @@ _0204796C: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02047976 - bl FUN_02020C2C + bl ErrorHandling _02047976: ldr r0, [r5, #0x4] bl FUN_02016A18 @@ -151079,7 +151079,7 @@ _02047988: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02047996 - bl FUN_02020C2C + bl ErrorHandling _02047996: add r0, r4, #0x0 add r0, #0xf8 @@ -151097,7 +151097,7 @@ _020479B0: ldr r0, [r4, r6] cmp r0, #0x0 bne _020479BA - bl FUN_02020C2C + bl ErrorHandling _020479BA: mov r0, #0x46 lsl r0, r0, #0x2 @@ -151135,7 +151135,7 @@ FUN_020479FC: ; 0x020479FC add r6, r1, #0x0 cmp r4, #0x4 blt _02047A0C - bl FUN_02020C2C + bl ErrorHandling _02047A0C: lsl r0, r4, #0x2 add r0, r5, r0 @@ -151144,7 +151144,7 @@ _02047A0C: bl FUN_0206B900 cmp r0, #0x0 bne _02047A20 - bl FUN_02020C2C + bl ErrorHandling _02047A20: pop {r4-r6, pc} .balign 4 @@ -151157,7 +151157,7 @@ FUN_02047A24: ; 0x02047A24 add r6, r1, #0x0 cmp r4, #0x4 blt _02047A34 - bl FUN_02020C2C + bl ErrorHandling _02047A34: lsl r1, r4, #0x2 add r1, r5, r1 @@ -151175,7 +151175,7 @@ FUN_02047A44: ; 0x02047A44 add r6, r1, #0x0 cmp r4, #0x4 blt _02047A54 - bl FUN_02020C2C + bl ErrorHandling _02047A54: lsl r1, r4, #0x2 add r1, r5, r1 @@ -151219,7 +151219,7 @@ FUN_02047A78: ; 0x02047A78 bl FUN_02029EF8 str r0, [sp, #0x8] ldr r0, [r4, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0xc] ldr r0, [r4, #0xc] bl FUN_02034E30 @@ -151368,7 +151368,7 @@ FUN_02047BC0: ; 0x02047BC0 str r0, [sp, #0x8] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x4] mov r0, #0x15 mov r1, #0x6 @@ -151535,7 +151535,7 @@ FUN_02047D48: ; 0x02047D48 str r0, [sp, #0x14] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x10] ldr r0, [sp, #0x0] mov r1, #0x6 @@ -151880,7 +151880,7 @@ _02048054: ldr r0, [r0, r1] pop {r3-r5, pc} _02048060: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0xc pop {r3-r5, pc} .balign 4 @@ -152035,7 +152035,7 @@ FUN_02048164: ; 0x02048164 bl FUN_02016998 add r4, r0, #0x0 bne _0204817A - bl FUN_02020C2C + bl ErrorHandling _0204817A: add r0, r4, #0x0 mov r1, #0x0 @@ -152789,7 +152789,7 @@ FUN_020487E4: ; 0x020487E4 add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress add r6, r0, #0x0 mov r0, #0x1a mov r1, #0xc7 @@ -152886,7 +152886,7 @@ _020488B4: add r0, r7, #0x0 bl FUN_0200A8B8 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 ldr r1, [r4, #0x2c] @@ -153045,7 +153045,7 @@ FUN_020489DC: ; 0x020489DC ldr r0, [r4, #0x6c] cmp r0, #0x5 blt _020489EA - bl FUN_02020C2C + bl ErrorHandling _020489EA: ldr r0, [r4, #0x70] ldr r0, [r0, #0x0] @@ -153131,7 +153131,7 @@ _02048A82: bl FUN_0203484C cmp r6, r0 beq _02048AB4 - bl FUN_02020C2C + bl ErrorHandling b _02048AB4 _02048AA6: add r0, r7, #0x0 @@ -153246,7 +153246,7 @@ FUN_02048B90: ; 0x02048B90 ldr r0, [r4, #0x58] cmp r0, #0x0 beq _02048BA2 - bl FUN_02020C2C + bl ErrorHandling _02048BA2: ldr r0, [r4, #0x1c] ldr r1, [r4, #0x28] @@ -153273,7 +153273,7 @@ _02048BD8: ldr r0, [r4, #0x6c] cmp r0, #0x5 blt _02048BE2 - bl FUN_02020C2C + bl ErrorHandling _02048BE2: ldr r0, [r4, #0x6c] ldr r1, _02048C28 ; =0x020F46E0 @@ -153318,7 +153318,7 @@ FUN_02048C2C: ; 0x02048C2C ldr r0, [r4, #0x58] cmp r0, #0x0 bne _02048C3A - bl FUN_02020C2C + bl ErrorHandling _02048C3A: mov r0, #0x0 str r0, [r4, #0x58] @@ -153969,7 +153969,7 @@ FUN_02049160: ; 0x02049160 bl FUN_0203739C cmp r0, #0x0 beq _02049186 - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _02049186: mov r0, #0x0 @@ -154336,7 +154336,7 @@ FUN_02049430: ; 0x02049430 bl FUN_0203739C cmp r0, #0x0 bne _02049452 - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _02049452: ldr r0, [r5, #0x38] @@ -154466,7 +154466,7 @@ _0204954A: bl FUN_020637E0 b _0204955A _02049556: - bl FUN_02020C2C + bl ErrorHandling _0204955A: add r0, r7, #0x0 bl FUN_020495B0 @@ -154587,7 +154587,7 @@ FUN_0204961C: ; 0x0204961C bl FUN_0203739C cmp r0, #0x0 bne _0204963E - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _0204963E: ldr r2, [r6, #0x4] @@ -154788,11 +154788,11 @@ _020497A4: sub r4, r0, #0x6 cmp r6, #0x0 bge _020497D4 - bl FUN_02020C2C + bl ErrorHandling _020497D4: cmp r4, #0x0 bge _020497DC - bl FUN_02020C2C + bl ErrorHandling _020497DC: lsr r2, r6, #0x1f lsl r1, r6, #0x1f @@ -154904,13 +154904,13 @@ _02049884: mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x24 bl FUN_02054608 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 ldr r1, [r4, #0x34] @@ -155300,7 +155300,7 @@ _02049BF4: ldr r0, _02049C08 ; =FUN_02049ACC pop {r3, pc} _02049BFC: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -155407,7 +155407,7 @@ FUN_02049CB0: ; 0x02049CB0 bl FUN_0203739C cmp r0, #0x0 beq _02049CD6 - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _02049CD6: mov r0, #0x0 @@ -156055,7 +156055,7 @@ _0204A1FE: cmp r4, r5 blt _0204A1E8 _0204A204: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} @@ -156402,7 +156402,7 @@ _0204A478: _0204A482: cmp r4, #0x10 blo _0204A48A - bl FUN_02020C2C + bl ErrorHandling _0204A48A: lsl r0, r4, #0x1 strh r5, [r6, r0] @@ -156694,7 +156694,7 @@ _0204A69C: str r1, [r0, #0x0] pop {r3, pc} _0204A6A6: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 _0204A6AC: .word 0x020F4708 @@ -156803,7 +156803,7 @@ _0204A754: blt _0204A768 cmp r4, #0x0 bne _0204A76A - bl FUN_02020C2C + bl ErrorHandling b _0204A76A _0204A768: mov r4, #0x0 @@ -156941,7 +156941,7 @@ FUN_0204A840: ; 0x0204A840 cmp r7, #0x0 bge _0204A868 _0204A864: - bl FUN_02020C2C + bl ErrorHandling _0204A868: lsl r0, r6, #0x10 str r0, [r5, #0x0] @@ -157873,7 +157873,7 @@ FUN_0204AF3C: ; 0x0204AF3C bl FUN_0203739C cmp r0, #0x0 bne _0204AF54 - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} _0204AF54: add r0, r4, #0x0 @@ -157909,7 +157909,7 @@ FUN_0204AF84: ; 0x0204AF84 bl FUN_0203739C cmp r0, #0x0 beq _0204AF9C - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} _0204AF9C: add r0, r4, #0x0 @@ -157944,7 +157944,7 @@ FUN_0204AFC8: ; 0x0204AFC8 bl FUN_0203739C cmp r0, #0x0 bne _0204AFE2 - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc pop {r3-r4, pc} _0204AFE2: @@ -157977,7 +157977,7 @@ FUN_0204B00C: ; 0x0204B00C bl FUN_0203739C cmp r0, #0x0 bne _0204B026 - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc pop {r3-r4, pc} _0204B026: @@ -158905,7 +158905,7 @@ _0204B73A: add r4, r4, #0x1 b _0204B746 _0204B742: - bl FUN_02020C2C + bl ErrorHandling _0204B746: add r0, r7, #0x0 add r1, r6, #0x0 @@ -158977,7 +158977,7 @@ _0204B7C0: add r4, r4, #0x1 b _0204B7CC _0204B7C8: - bl FUN_02020C2C + bl ErrorHandling _0204B7CC: ldr r0, [r5, #0x34] add r1, r7, #0x0 @@ -159395,7 +159395,7 @@ FUN_0204BAF4: ; 0x0204BAF4 cmp r5, r0 bls _0204BB08 _0204BB04: - bl FUN_02020C2C + bl ErrorHandling _0204BB08: mov r3, #0x6 add r0, r4, #0x0 @@ -159505,7 +159505,7 @@ FUN_0204BBC4: ; 0x0204BBC4 lsr r5, r0, #0x10 cmp r5, #0xa blo _0204BBDE - bl FUN_02020C2C + bl ErrorHandling _0204BBDE: add r0, r5, #0x5 str r0, [r4, #0x38] @@ -159611,7 +159611,7 @@ _0204BC86: lsl r0, r0, #0x10 lsr r0, r0, #0x10 bne _0204BC94 - bl FUN_02020C2C + bl ErrorHandling _0204BC94: add r0, r6, #0x0 add r0, #0x14 @@ -159643,7 +159643,7 @@ _0204BCA4: lsr r0, r0, #0x10 cmp r4, r0 blo _0204BCD8 - bl FUN_02020C2C + bl ErrorHandling _0204BCD8: cmp r4, #0x14 bge _0204BCE0 @@ -159675,7 +159675,7 @@ _0204BD04: add r0, #0x8 cmp r1, #0x6 blt _0204BCE6 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} .balign 4 @@ -159701,7 +159701,7 @@ _0204BD28: strb r1, [r0, #0x0] pop {r4, pc} _0204BD3A: - bl FUN_02020C2C + bl ErrorHandling _0204BD3E: pop {r4, pc} @@ -159947,7 +159947,7 @@ FUN_0204BED8: ; 0x0204BED8 cmp r4, #0x19 blt _0204BEE8 _0204BEE4: - bl FUN_02020C2C + bl ErrorHandling _0204BEE8: mov r0, #0x1 ldrsb r1, [r5, r0] @@ -160012,7 +160012,7 @@ FUN_0204BF44: ; 0x0204BF44 push {r4, lr} add r4, r0, #0x0 bne _0204BF4E - bl FUN_02020C2C + bl ErrorHandling _0204BF4E: ldrb r0, [r4, #0x0] lsl r0, r0, #0x1a @@ -160027,11 +160027,11 @@ FUN_0204BF58: ; 0x0204BF58 add r4, r1, #0x0 cmp r5, #0x0 bne _0204BF66 - bl FUN_02020C2C + bl ErrorHandling _0204BF66: cmp r4, #0x8 blo _0204BF6E - bl FUN_02020C2C + bl ErrorHandling _0204BF6E: ldrb r1, [r5, #0x0] mov r0, #0x38 @@ -160208,7 +160208,7 @@ FUN_0204C080: ; 0x0204C080 add r7, r3, #0x0 cmp r4, #0x6 blt _0204C092 - bl FUN_02020C2C + bl ErrorHandling _0204C092: lsl r1, r4, #0x1 add r0, r5, r1 @@ -160229,7 +160229,7 @@ FUN_0204C0A4: ; 0x0204C0A4 add r7, r3, #0x0 cmp r4, #0x6 blt _0204C0B6 - bl FUN_02020C2C + bl ErrorHandling _0204C0B6: lsl r1, r4, #0x1 add r0, r5, r1 @@ -160351,7 +160351,7 @@ FUN_0204C174: ; 0x0204C174 str r3, [sp, #0x0] cmp r4, #0xc blt _0204C186 - bl FUN_02020C2C + bl ErrorHandling _0204C186: add r6, r5, #0x0 lsl r4, r4, #0x2 @@ -160359,7 +160359,7 @@ _0204C186: ldrh r0, [r6, r4] cmp r0, #0x0 bne _0204C196 - bl FUN_02020C2C + bl ErrorHandling _0204C196: ldrh r0, [r6, r4] str r0, [r7, #0x0] @@ -160545,7 +160545,7 @@ _0204C2F4: mov r4, #0x6 b _0204C36A _0204C302: - bl FUN_02020C2C + bl ErrorHandling b _0204C36A _0204C308: ldr r0, [sp, #0x8] @@ -160566,7 +160566,7 @@ _0204C320: mov r4, #0x6 b _0204C36A _0204C32E: - bl FUN_02020C2C + bl ErrorHandling b _0204C36A _0204C334: ldr r0, [sp, #0x8] @@ -160588,10 +160588,10 @@ _0204C356: bl FUN_02034930 cmp r0, #0x0 bne _0204C36A - bl FUN_02020C2C + bl ErrorHandling b _0204C36A _0204C366: - bl FUN_02020C2C + bl ErrorHandling _0204C36A: ldr r1, _0204C37C ; =FUN_0204C380 add r0, r7, #0x0 @@ -160915,7 +160915,7 @@ _0204C5E6: bl FUN_0205ADDC b _0204C5F6 _0204C5F2: - bl FUN_02020C2C + bl ErrorHandling _0204C5F6: ldr r0, [r4, #0x4] add r0, r0, #0x1 @@ -161285,7 +161285,7 @@ _0204C8EA: bl FUN_0205ADDC b _0204C8FC _0204C8F8: - bl FUN_02020C2C + bl ErrorHandling _0204C8FC: ldr r0, [r4, #0x4] add r0, r0, #0x1 @@ -161892,7 +161892,7 @@ FUN_0204CD78: ; 0x0204CD78 bl FUN_02064520 b _0204CDA2 _0204CD9E: - bl FUN_02020C2C + bl ErrorHandling _0204CDA2: ldr r0, _0204CDB0 ; =0x021C5A68 mov r1, #0x0 @@ -162661,7 +162661,7 @@ _0204D37C: bl FUN_02055068 add r7, r0, #0x0 bne _0204D3B2 - bl FUN_02020C2C + bl ErrorHandling _0204D3B2: ldr r0, _0204D430 ; =0x021C5A68 ldr r0, [r0, #0x0] @@ -163035,11 +163035,11 @@ FUN_0204D67C: ; 0x0204D67C beq _0204D6B8 cmp r1, #0x1 beq _0204D692 - bl FUN_02020C2C + bl ErrorHandling _0204D692: cmp r5, #0x8 blt _0204D69A - bl FUN_02020C2C + bl ErrorHandling _0204D69A: ldrb r0, [r4, #0x0] mov r1, #0x1 @@ -163051,7 +163051,7 @@ _0204D69A: _0204D6A8: cmp r1, #0x0 bne _0204D6B0 - bl FUN_02020C2C + bl ErrorHandling _0204D6B0: ldrb r1, [r4, #0x0] add r0, r5, #0x0 @@ -163305,7 +163305,7 @@ FUN_0204D870: ; 0x0204D870 cmp r4, #0x5 str r0, [r2, #0x0] blt _0204D88E - bl FUN_02020C2C + bl ErrorHandling _0204D88E: lsl r1, r4, #0x2 add r0, sp, #0x0 @@ -163712,7 +163712,7 @@ _0204DB5A: bl FUN_0204A6B4 cmp r0, #0x0 beq _0204DBBC - bl FUN_02020C2C + bl ErrorHandling _0204DBBC: pop {r3-r7, pc} nop @@ -165555,7 +165555,7 @@ FUN_0204E96C: ; 0x0204E96C ldrb r0, [r5, #0x1] cmp r0, #0x8 blo _0204E988 - bl FUN_02020C2C + bl ErrorHandling _0204E988: ldrb r0, [r5, #0x0] cmp r0, #0x4 @@ -167137,7 +167137,7 @@ _0204F62A: mov r0, #0x2 pop {r3, pc} _0204F632: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x2 pop {r3, pc} .balign 4 @@ -167584,11 +167584,11 @@ _0204F96E: add r5, r0, #0x0 cmp r4, #0x0 bne _0204F988 - bl FUN_02020C2C + bl ErrorHandling _0204F988: cmp r5, #0x0 bne _0204F990 - bl FUN_02020C2C + bl ErrorHandling _0204F990: add r0, r4, #0x0 add r1, r5, #0x0 @@ -167682,7 +167682,7 @@ _0204FA26: strb r2, [r1, r0] pop {r3-r7, pc} _0204FA4C: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x8 pop {r3-r7, pc} .balign 4 @@ -169913,7 +169913,7 @@ FUN_02050BF8: ; 0x02050BF8 add r4, r0, #0x0 cmp r4, #0x4 blt _02050C04 - bl FUN_02020C2C + bl ErrorHandling _02050C04: ldr r0, _02050C10 ; =0x021C5A6C ldr r1, [r0, #0x0] @@ -170245,7 +170245,7 @@ FUN_02050E48: ; 0x02050E48 bl FUN_02079C70 str r0, [r4, #0x2c] add r0, r6, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x4] ldr r0, [sp, #0x0] str r0, [r4, #0x0] @@ -170290,7 +170290,7 @@ FUN_02050ED4: ; 0x02050ED4 blx FUN_020CE34C ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] ldr r0, [r5, #0x24] add r0, #0xac @@ -171415,7 +171415,7 @@ FUN_020517C0: ; 0x020517C0 bl FUN_020545B8 ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02054608 @@ -171426,7 +171426,7 @@ _020517F2: _020517F8: ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 @@ -172365,13 +172365,13 @@ _02051EF2: mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x8 bl FUN_02054608 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 ldr r1, [r4, #0x4] @@ -172528,7 +172528,7 @@ FUN_020520AC: ; 0x020520AC push {r3-r5, lr} add r4, r0, #0x0 bne _020520B6 - bl FUN_02020C2C + bl ErrorHandling _020520B6: ldr r0, [r4, #0x78] cmp r0, #0x0 @@ -173217,7 +173217,7 @@ _020525F4: mov r0, #0x5 pop {r4-r6, pc} _020525F8: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} .balign 4 @@ -173547,7 +173547,7 @@ FUN_02052814: ; 0x02052814 mvn r0, r0 cmp r4, r0 bne _02052836 - bl FUN_02020C2C + bl ErrorHandling b _02052836 _02052834: add r5, r4, #0x0 @@ -173919,7 +173919,7 @@ _02052AF2: ldr r0, [r0, r1] pop {r4-r6, pc} _02052AFA: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x28 pop {r4-r6, pc} nop @@ -174720,7 +174720,7 @@ FUN_02053104: ; 0x02053104 ldr r0, [r0, r5] cmp r3, r0 beq _02053120 - bl FUN_02020C2C + bl ErrorHandling _02053120: pop {r4-r6, pc} nop @@ -174846,7 +174846,7 @@ _02053206: bl FUN_02058060 add r5, r0, #0x0 bne _02053216 - bl FUN_02020C2C + bl ErrorHandling _02053216: ldrb r0, [r4, #0xd] cmp r0, #0x4 @@ -175181,7 +175181,7 @@ _020534AC: bl FUN_02058060 add r4, r0, #0x0 bne _020534BC - bl FUN_02020C2C + bl ErrorHandling _020534BC: add r0, r4, #0x0 mov r1, #0x1 @@ -175207,7 +175207,7 @@ FUN_020534DC: ; 0x020534DC bl FUN_02058060 add r4, r0, #0x0 bne _020534F0 - bl FUN_02020C2C + bl ErrorHandling _020534F0: add r0, r4, #0x0 bl FUN_0205AD98 @@ -175231,7 +175231,7 @@ _0205350E: bl FUN_02058060 add r4, r0, #0x0 bne _02053524 - bl FUN_02020C2C + bl ErrorHandling _02053524: ldrb r1, [r5, #0x8] add r0, r4, #0x0 @@ -175490,7 +175490,7 @@ _020536EE: ldr r0, [r0, r1] pop {r4, pc} _020536F8: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 _020536FE: pop {r4, pc} @@ -176696,7 +176696,7 @@ FUN_02054008: ; 0x02054008 bl FUN_0201FE94 add r4, r0, #0x0 bne _02054064 - bl FUN_02020C2C + bl ErrorHandling _02054064: add r0, r4, #0x0 add sp, #0x30 @@ -179217,7 +179217,7 @@ FUN_02055108: ; 0x02055108 bl FUN_020553A0 add r4, r0, #0x0 bne _02055118 - bl FUN_02020C2C + bl ErrorHandling _02055118: add r0, r4, #0x0 bl FUN_02058578 @@ -179274,7 +179274,7 @@ FUN_0205517C: ; 0x0205517C bl FUN_02016998 add r4, r0, #0x0 bne _0205518E - bl FUN_02020C2C + bl ErrorHandling _0205518E: add r0, r4, #0x0 mov r1, #0x0 @@ -179343,7 +179343,7 @@ FUN_02055208: ; 0x02055208 bl FUN_0205753C add r5, r0, #0x0 bne _02055228 - bl FUN_02020C2C + bl ErrorHandling _02055228: add r0, r5, #0x0 mov r1, #0xff @@ -179435,7 +179435,7 @@ FUN_020552E4: ; 0x020552E4 bl FUN_020552A4 add r4, r0, #0x0 bne _020552F2 - bl FUN_02020C2C + bl ErrorHandling _020552F2: add r0, r4, #0x0 pop {r4, pc} @@ -179567,7 +179567,7 @@ FUN_020553A8: ; 0x020553A8 add r5, r0, #0x0 cmp r4, #0x3 blt _020553B6 - bl FUN_02020C2C + bl ErrorHandling _020553B6: add r0, r5, #0x0 add r1, r4, #0x0 @@ -179581,7 +179581,7 @@ FUN_020553C4: ; 0x020553C4 push {r4, lr} add r4, r0, #0x0 bne _020553CE - bl FUN_02020C2C + bl ErrorHandling _020553CE: ldr r0, [r4, #0x18] pop {r4, pc} @@ -180019,7 +180019,7 @@ _0205563A: mov r0, #0xc9 pop {r3, pc} _0205563E: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -180072,7 +180072,7 @@ _0205568A: lsl r0, r0, #0x8 pop {r3, pc} _02055690: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 pop {r3, pc} @@ -181431,7 +181431,7 @@ _0205614C: add sp, #0xc pop {r4-r7, pc} _02056162: - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc pop {r4-r7, pc} .balign 4 @@ -181522,7 +181522,7 @@ _02056204: mov r0, #0x2 pop {r3, pc} _02056208: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -181983,7 +181983,7 @@ _0205657E: mov r0, #0x1 pop {r3, pc} _02056582: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -182370,7 +182370,7 @@ _0205689A: mov r0, #0x1 pop {r3, pc} _0205689E: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -183501,7 +183501,7 @@ _02057172: b _0205718E _02057188: mov r4, #0x0 - bl FUN_02020C2C + bl ErrorHandling _0205718E: add r0, r4, #0x0 pop {r3-r5, pc} @@ -183873,7 +183873,7 @@ FUN_02057444: ; 0x02057444 bl FUN_02016998 add r5, r0, #0x0 bne _0205745A - bl FUN_02020C2C + bl ErrorHandling _0205745A: mov r2, #0x4b add r0, r5, #0x0 @@ -183889,7 +183889,7 @@ _0205745A: bl FUN_02016998 add r4, r0, #0x0 bne _0205747E - bl FUN_02020C2C + bl ErrorHandling _0205747E: add r0, r4, #0x0 mov r1, #0x0 @@ -184218,7 +184218,7 @@ FUN_02057750: ; 0x02057750 bl FUN_020587E0 cmp r0, #0x1 beq _02057760 - bl FUN_02020C2C + bl ErrorHandling _02057760: add r0, r5, #0x0 mov r4, #0x0 @@ -184260,7 +184260,7 @@ FUN_020577A8: ; 0x020577A8 bl FUN_020587E0 cmp r0, #0x1 beq _020577B8 - bl FUN_02020C2C + bl ErrorHandling _020577B8: add r0, r5, #0x0 mov r4, #0x0 @@ -184322,7 +184322,7 @@ _02057820: add r5, #0x50 cmp r4, #0x0 bgt _02057836 - bl FUN_02020C2C + bl ErrorHandling _02057836: add r0, r6, #0x0 add r1, sp, #0x0 @@ -184360,7 +184360,7 @@ _02057866: bl FUN_02057C64 add r4, r0, #0x0 bne _0205787C - bl FUN_02020C2C + bl ErrorHandling _0205787C: add r0, r4, #0x0 add r1, r5, #0x0 @@ -184724,7 +184724,7 @@ FUN_02057BAC: ; 0x02057BAC str r1, [sp, #0x0] cmp r5, #0x0 bne _02057BC0 - bl FUN_02020C2C + bl ErrorHandling _02057BC0: lsl r0, r5, #0x5 str r0, [sp, #0x4] @@ -184733,7 +184733,7 @@ _02057BC0: bl FUN_020169D8 add r6, r0, #0x0 bne _02057BD4 - bl FUN_02020C2C + bl ErrorHandling _02057BD4: ldr r2, [sp, #0x4] add r0, r6, #0x0 @@ -184744,7 +184744,7 @@ _02057BD4: bl FUN_020169D8 add r4, r0, #0x0 bne _02057BEE - bl FUN_02020C2C + bl ErrorHandling _02057BEE: ldr r0, [sp, #0x0] str r0, [r4, #0x0] @@ -184786,7 +184786,7 @@ _02057C30: bl FUN_02057494 cmp r0, #0x0 bne _02057C42 - bl FUN_02020C2C + bl ErrorHandling _02057C42: ldr r0, [r6, #0x0] add r4, #0x20 @@ -184898,7 +184898,7 @@ _02057D0A: bl FUN_0200CA44 add r5, r0, #0x0 bne _02057D1C - bl FUN_02020C2C + bl ErrorHandling _02057D1C: add r0, r4, #0x0 add r1, r5, #0x0 @@ -185275,7 +185275,7 @@ FUN_02058060: ; 0x02058060 add r6, r1, #0x0 cmp r5, #0x0 bne _0205806E - bl FUN_02020C2C + bl ErrorHandling _0205806E: add r0, r5, #0x0 bl FUN_02058368 @@ -185508,7 +185508,7 @@ FUN_02058214: ; 0x02058214 bl FUN_020589CC cmp r0, #0x1 beq _02058228 - bl FUN_02020C2C + bl ErrorHandling _02058228: add r0, r5, #0x0 mov r1, #0x0 @@ -185539,7 +185539,7 @@ FUN_02058258: ; 0x02058258 bl FUN_02058CE0 cmp r0, #0x1 beq _0205826E - bl FUN_02020C2C + bl ErrorHandling _0205826E: add r0, r5, #0x0 mov r1, #0x1 @@ -185809,7 +185809,7 @@ FUN_020583F4: ; 0x020583F4 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02058402 - bl FUN_02020C2C + bl ErrorHandling _02058402: ldr r0, [r4, #0x14] pop {r4, pc} @@ -186042,7 +186042,7 @@ _02058504: str r1, [r0, #0x40] pop {r3, pc} _02058508: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 @@ -186066,7 +186066,7 @@ _02058528: ldr r0, [r0, #0x40] pop {r3, pc} _0205852C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -186155,7 +186155,7 @@ FUN_0205858C: ; 0x0205858C add r4, r0, #0x0 cmp r5, #0x10 ble _0205859A - bl FUN_02020C2C + bl ErrorHandling _0205859A: add r0, r4, #0x0 bl FUN_020585B0 @@ -186179,7 +186179,7 @@ FUN_020585B4: ; 0x020585B4 add r4, r0, #0x0 cmp r5, #0x10 ble _020585C2 - bl FUN_02020C2C + bl ErrorHandling _020585C2: add r0, r4, #0x0 bl FUN_020585D8 @@ -186203,7 +186203,7 @@ FUN_020585DC: ; 0x020585DC add r4, r0, #0x0 cmp r5, #0x10 ble _020585EA - bl FUN_02020C2C + bl ErrorHandling _020585EA: add r0, r4, #0x0 bl FUN_02058600 @@ -186227,7 +186227,7 @@ FUN_02058604: ; 0x02058604 add r4, r0, #0x0 cmp r5, #0x20 ble _02058612 - bl FUN_02020C2C + bl ErrorHandling _02058612: add r0, r4, #0x0 bl FUN_02058628 @@ -186475,7 +186475,7 @@ FUN_02058750: ; 0x02058750 bl FUN_020589CC cmp r0, #0x1 beq _02058760 - bl FUN_02020C2C + bl ErrorHandling _02058760: add r0, r4, #0x0 bl FUN_02058490 @@ -187346,7 +187346,7 @@ _02058C4C: strh r1, [r0, #0x12] pop {r3, pc} _02058C50: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 @@ -187370,7 +187370,7 @@ _02058C70: ldrh r0, [r0, #0x12] pop {r3, pc} _02058C74: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -187481,7 +187481,7 @@ FUN_02058CFC: ; 0x02058CFC bl FUN_02058CE0 cmp r0, #0x1 beq _02058D0C - bl FUN_02020C2C + bl ErrorHandling _02058D0C: add r0, r4, #0x0 bl FUN_02058C1C @@ -187493,7 +187493,7 @@ FUN_02058D14: ; 0x02058D14 add r4, r0, #0x0 cmp r4, #0x37 blo _02058D20 - bl FUN_02020C2C + bl ErrorHandling _02058D20: ldr r0, _02058D28 ; =0x020F6364 lsl r1, r4, #0x2 @@ -187558,7 +187558,7 @@ _02058D5C: ldr r2, [r3, #0x0] cmp r2, r1 bne _02058D52 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -189196,11 +189196,11 @@ FUN_02059A60: ; 0x02059A60 mvn r0, r0 cmp r5, r0 bne _02059A92 - bl FUN_02020C2C + bl ErrorHandling _02059A92: cmp r5, #0x4 blt _02059A9A - bl FUN_02020C2C + bl ErrorHandling _02059A9A: ldr r1, _02059ABC ; =0x020F6630 lsl r5, r5, #0x2 @@ -190260,7 +190260,7 @@ _0205A254: str r0, [r4, #0xc] pop {r3-r7, pc} _0205A268: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x8 pop {r3-r7, pc} @@ -190565,7 +190565,7 @@ _0205A486: mvn r0, r0 cmp r1, r0 bne _0205A496 - bl FUN_02020C2C + bl ErrorHandling _0205A496: add r4, r4, #0x1 lsl r0, r4, #0x2 @@ -190722,7 +190722,7 @@ _0205A5A2: mvn r0, r0 cmp r1, r0 bne _0205A5B2 - bl FUN_02020C2C + bl ErrorHandling _0205A5B2: add r4, r4, #0x1 lsl r0, r4, #0x2 @@ -191397,7 +191397,7 @@ _0205AA9A: _0205AAA4: cmp r4, #0x0 bne _0205AAAC - bl FUN_02020C2C + bl ErrorHandling _0205AAAC: add r0, r4, #0x0 pop {r4, pc} @@ -191454,7 +191454,7 @@ _0205AB0A: ldr r2, [r1, #0x0] cmp r2, #0x27 bne _0205AB02 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop @@ -191745,7 +191745,7 @@ _0205AD26: _0205AD36: cmp r4, #0x4 blt _0205AD3E - bl FUN_02020C2C + bl ErrorHandling _0205AD3E: add r0, r4, #0x1 lsr r2, r0, #0x1f @@ -191837,7 +191837,7 @@ FUN_0205ADDC: ; 0x0205ADDC add r5, r0, #0x0 cmp r4, #0x69 blt _0205ADEA - bl FUN_02020C2C + bl ErrorHandling _0205ADEA: add r0, r5, #0x0 add r1, r4, #0x0 @@ -191943,7 +191943,7 @@ FUN_0205AEA4: ; 0x0205AEA4 bl FUN_020169D8 add r4, r0, #0x0 bne _0205AEBA - bl FUN_02020C2C + bl ErrorHandling _0205AEBA: add r2, r4, #0x0 mov r1, #0x14 @@ -191962,7 +191962,7 @@ _0205AEC0: bl FUN_0200CA44 add r7, r0, #0x0 bne _0205AEE4 - bl FUN_02020C2C + bl ErrorHandling _0205AEE4: str r5, [r4, #0xc] str r6, [r4, #0x10] @@ -191989,7 +191989,7 @@ FUN_0205AEFC: ; 0x0205AEFC bl FUN_0205AE28 cmp r0, #0x1 beq _0205AF14 - bl FUN_02020C2C + bl ErrorHandling _0205AF14: ldr r0, [r4, #0xc] bl FUN_0205AE50 @@ -192118,7 +192118,7 @@ FUN_0205AFDC: ; 0x0205AFDC add r4, r1, #0x0 cmp r7, #0x4 blt _0205AFEA - bl FUN_02020C2C + bl ErrorHandling _0205AFEA: ldr r3, _0205B01C ; =0x020F6308 ldr r6, [r3, #0x0] @@ -192145,7 +192145,7 @@ _0205B004: cmp r6, #0x0 bne _0205AFF4 _0205B014: - bl FUN_02020C2C + bl ErrorHandling add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 @@ -194726,7 +194726,7 @@ _0205C266: _0205C276: cmp r5, #0x4 blt _0205C27E - bl FUN_02020C2C + bl ErrorHandling _0205C27E: add r0, r5, #0x1 lsr r2, r0, #0x1f @@ -195136,7 +195136,7 @@ _0205C584: ldr r0, [r2, #0x8] pop {r3, pc} _0205C588: - bl FUN_02020C2C + bl ErrorHandling ldr r0, _0205C590 ; =0x0000FFFF pop {r3, pc} .balign 4 @@ -195279,7 +195279,7 @@ _0205C650: mov r0, #0x1 pop {r3-r7, pc} _0205C6AE: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 add sp, #0x58 pop {r3-r7, pc} @@ -195753,7 +195753,7 @@ _0205CA30: cmp r0, #0x0 bne _0205CA10 _0205CA40: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} @@ -195778,7 +195778,7 @@ FUN_0205CA64: ; 0x0205CA64 push {r4, lr} add r4, r0, #0x0 bne _0205CA6E - bl FUN_02020C2C + bl ErrorHandling _0205CA6E: add r0, r4, #0x0 bl FUN_0205CAD4 @@ -195804,7 +195804,7 @@ FUN_0205CA80: ; 0x0205CA80 bl FUN_020169D8 add r4, r0, #0x0 bne _0205CA9A - bl FUN_02020C2C + bl ErrorHandling _0205CA9A: add r0, r4, #0x0 mov r1, #0x0 @@ -195827,7 +195827,7 @@ _0205CA9A: bl FUN_0200CA44 add r4, r0, #0x0 bne _0205CACC - bl FUN_02020C2C + bl ErrorHandling _0205CACC: add r0, r4, #0x0 pop {r3-r7, pc} @@ -195966,7 +195966,7 @@ _0205CBB6: mvn r0, r0 cmp r1, r0 bne _0205CBC4 - bl FUN_02020C2C + bl ErrorHandling _0205CBC4: ldr r0, [r4, #0x8] mov r1, #0x0 @@ -196584,7 +196584,7 @@ FUN_0205D024: ; 0x0205D024 bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_02022504 @@ -197067,7 +197067,7 @@ FUN_0205D400: ; 0x0205D400 bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 @@ -197720,7 +197720,7 @@ _0205D926: mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r5, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 @@ -197798,7 +197798,7 @@ FUN_0205D9A8: ; 0x0205D9A8 bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_02022504 @@ -198291,7 +198291,7 @@ _0205DDB6: ldrb r4, [r0, r5] cmp r4, #0x0 bne _0205DDC2 - bl FUN_02020C2C + bl ErrorHandling _0205DDC2: cmp r4, #0x1 bhi _0205DDCA @@ -198313,7 +198313,7 @@ _0205DDCA: lsr r6, r0, #0x10 cmp r6, r4 blo _0205DDF2 - bl FUN_02020C2C + bl ErrorHandling _0205DDF2: lsl r1, r5, #0x1 mov r0, #0x9 @@ -198348,7 +198348,7 @@ _0205DE30: lsl r7, r4, #0x1 cmp r6, r7 bge _0205DE3A - bl FUN_02020C2C + bl ErrorHandling _0205DE3A: sub r0, r6, r7 lsl r0, r0, #0x18 @@ -198457,7 +198457,7 @@ _0205DEE0: lsr r7, r0, #0x10 cmp r7, #0x64 blo _0205DF12 - bl FUN_02020C2C + bl ErrorHandling _0205DF12: cmp r7, #0x32 bhs _0205DF1A @@ -198667,7 +198667,7 @@ FUN_0205E080: ; 0x0205E080 add r6, r2, #0x0 cmp r4, #0x0 bne _0205E090 - bl FUN_02020C2C + bl ErrorHandling _0205E090: str r4, [r5, #0x8] str r6, [r5, #0xc] @@ -198916,7 +198916,7 @@ _0205E24C: add r1, r1, #0x1 cmp r1, #0x3 blt _0205E23A - bl FUN_02020C2C + bl ErrorHandling _0205E256: pop {r4-r6, pc} @@ -199004,7 +199004,7 @@ _0205E2DC: lsr r4, r0, #0x10 cmp r4, #0x64 blo _0205E2F4 - bl FUN_02020C2C + bl ErrorHandling _0205E2F4: ldrb r0, [r6, r5] cmp r4, r0 @@ -199160,7 +199160,7 @@ _0205E426: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bne _0205E430 - bl FUN_02020C2C + bl ErrorHandling _0205E430: lsl r0, r5, #0x10 lsr r0, r0, #0x10 @@ -199187,7 +199187,7 @@ _0205E43C: lsr r0, r0, #0x10 cmp r4, r0 blo _0205E46A - bl FUN_02020C2C + bl ErrorHandling _0205E46A: cmp r4, #0x0 bne _0205E472 @@ -200303,7 +200303,7 @@ _0205ECC0: bl FUN_0205EC94 pop {r3, pc} _0205ECCA: - bl FUN_02020C2C + bl ErrorHandling _0205ECCE: mov r0, #0x0 pop {r3, pc} @@ -201139,7 +201139,7 @@ FUN_0205F2E4: ; 0x0205F2E4 add r6, r1, #0x0 cmp r4, #0x45 blo _0205F2F4 - bl FUN_02020C2C + bl ErrorHandling _0205F2F4: mov r2, #0x9b lsl r2, r2, #0x4 @@ -201172,7 +201172,7 @@ FUN_0205F314: ; 0x0205F314 cmp r5, r1 bls _0205F334 _0205F32C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0205F334: @@ -201357,7 +201357,7 @@ FUN_0205F45C: ; 0x0205F45C cmp r4, #0x3 blo _0205F46A _0205F466: - bl FUN_02020C2C + bl ErrorHandling _0205F46A: ldr r0, _0205F474 ; =0x020F7430 lsl r1, r4, #0x1 @@ -201416,7 +201416,7 @@ FUN_0205F4C8: ; 0x0205F4C8 cmp r4, #0x4 blt _0205F4D6 _0205F4D2: - bl FUN_02020C2C + bl ErrorHandling _0205F4D6: ldr r0, _0205F4E0 ; =0x020F7436 lsl r1, r4, #0x1 @@ -201964,7 +201964,7 @@ FUN_0205F8CC: ; 0x0205F8CC blx FUN_020D1944 cmp r0, #0x0 bne _0205F8F8 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x70 pop {r3-r7, pc} _0205F8F8: @@ -201974,7 +201974,7 @@ _0205F8F8: blx FUN_020D180C cmp r0, #0x0 bge _0205F90A - bl FUN_02020C2C + bl ErrorHandling _0205F90A: mov r0, #0xb mov r1, #0x4 @@ -202134,7 +202134,7 @@ FUN_0205FA2C: ; 0x0205FA2C add r4, r0, #0x0 blx FUN_020CE34C add r0, r6, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r6, #0x0 bl FUN_0206BB1C @@ -202267,7 +202267,7 @@ FUN_0205FB34: ; 0x0205FB34 add r4, r0, #0x0 blx FUN_020CE34C add r0, r5, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0206BB1C @@ -203301,7 +203301,7 @@ _0206036A: _0206038C: cmp r1, #0xc8 blt _02060394 - bl FUN_02020C2C + bl ErrorHandling _02060394: mov r1, #0x0 _02060396: @@ -203373,7 +203373,7 @@ _020603F6: lsr r6, r0, #0x10 cmp r6, #0x10 blo _02060412 - bl FUN_02020C2C + bl ErrorHandling _02060412: cmp r6, #0x0 bne _02060420 @@ -203402,7 +203402,7 @@ FUN_0206043C: ; 0x0206043C add r4, r0, #0x0 cmp r4, #0x1d blo _02060448 - bl FUN_02020C2C + bl ErrorHandling _02060448: ldr r0, _02060450 ; =0x020F7460 lsl r1, r4, #0x2 @@ -203479,7 +203479,7 @@ _020604C2: mov r6, #0x28 b _020604D0 _020604C8: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x20 pop {r3-r7, pc} _020604D0: @@ -203576,7 +203576,7 @@ _0206059C: lsr r5, r0, #0x10 cmp r5, #0x1d blo _020605B2 - bl FUN_02020C2C + bl ErrorHandling _020605B2: lsl r0, r5, #0x18 lsr r2, r0, #0x18 @@ -203634,7 +203634,7 @@ _0206061E: ldrh r5, [r4, #0x0] cmp r5, #0x0 bne _02060628 - bl FUN_02020C2C + bl ErrorHandling _02060628: cmp r5, #0x1 bhi _02060630 @@ -203656,7 +203656,7 @@ _02060630: lsr r6, r0, #0x10 cmp r6, r5 blo _02060658 - bl FUN_02020C2C + bl ErrorHandling _02060658: lsl r0, r6, #0x18 lsr r0, r0, #0x17 @@ -203983,7 +203983,7 @@ _020608F0: bl FUN_020054C8 b _0206090A _020608F8: - bl FUN_02020C2C + bl ErrorHandling add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x28 @@ -204306,7 +204306,7 @@ _02060B6A: str r0, [r4, #0x24] b _02060B86 _02060B7C: - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc mov r0, #0x1 pop {r3-r4, pc} @@ -204403,7 +204403,7 @@ _02060BF6: bl FUN_0204A9F0 cmp r0, #0x0 bne _02060C38 - bl FUN_02020C2C + bl ErrorHandling _02060C38: ldr r0, [sp, #0x20] bl FUN_021E7EC8 @@ -204428,7 +204428,7 @@ _02060C38: bl FUN_021DA464 b _02060C6E _02060C6A: - bl FUN_02020C2C + bl ErrorHandling _02060C6E: add r0, r6, #0x1 lsl r0, r0, #0x18 @@ -204478,7 +204478,7 @@ _02060CA8: str r1, [r0, #0x8] pop {r3, pc} _02060CC4: - bl FUN_02020C2C + bl ErrorHandling _02060CC8: pop {r3, pc} .balign 4 @@ -204492,7 +204492,7 @@ FUN_02060CCC: ; 0x02060CCC cmp r5, #0x5 blt _02060CDC _02060CD8: - bl FUN_02020C2C + bl ErrorHandling _02060CDC: sub r1, r5, #0x1 ldr r6, _02060CF4 ; =0x020F767C @@ -204502,7 +204502,7 @@ _02060CDC: ldr r0, [r6, r4] cmp r0, r5 beq _02060CF0 - bl FUN_02020C2C + bl ErrorHandling _02060CF0: add r0, r6, r4 pop {r4-r6, pc} @@ -204522,7 +204522,7 @@ FUN_02060CF8: ; 0x02060CF8 cmp r4, r0 blt _02060D12 _02060D0E: - bl FUN_02020C2C + bl ErrorHandling _02060D12: sub r0, r4, #0x1 ldr r1, [r5, #0x8] @@ -204545,7 +204545,7 @@ FUN_02060D1C: ; 0x02060D1C ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02060D3E - bl FUN_02020C2C + bl ErrorHandling _02060D3E: add r0, r6, #0x0 add r1, r7, #0x0 @@ -204968,7 +204968,7 @@ FUN_02061028: ; 0x02061028 ldrh r0, [r5, #0x22] cmp r0, #0x0 bne _0206106C - bl FUN_02020C2C + bl ErrorHandling _0206106C: add r2, r5, #0x0 add r5, #0xc @@ -205546,7 +205546,7 @@ FUN_02061498: ; 0x02061498 lsr r4, r0, #0x10 cmp r4, #0x5 blo _020614F0 - bl FUN_02020C2C + bl ErrorHandling _020614F0: add r4, #0x11 add r0, r4, #0x0 @@ -205954,7 +205954,7 @@ FUN_020617D8: ; 0x020617D8 lsr r4, r0, #0x10 cmp r4, #0x3 blo _02061826 - bl FUN_02020C2C + bl ErrorHandling _02061826: add r4, #0x21 add r0, r4, #0x0 @@ -206002,7 +206002,7 @@ FUN_02061868: ; 0x02061868 ldr r1, [r4, #0x0] cmp r1, r0 beq _02061884 - bl FUN_02020C2C + bl ErrorHandling _02061884: add r0, r5, #0x0 mov r1, #0x0 @@ -207063,7 +207063,7 @@ FUN_020620A0: ; 0x020620A0 add r4, r0, #0x0 cmp r4, #0x0 bgt _020620BE - bl FUN_02020C2C + bl ErrorHandling _020620BE: cmp r4, #0x1 ble _020620D0 @@ -207099,7 +207099,7 @@ _020620F0: _020620F8: cmp r5, #0x0 beq _02062100 - bl FUN_02020C2C + bl ErrorHandling _02062100: bl FUN_0201B9EC mov r1, #0xf1 @@ -207109,7 +207109,7 @@ _02062100: lsr r4, r0, #0x10 cmp r4, #0x11 blo _02062118 - bl FUN_02020C2C + bl ErrorHandling _02062118: cmp r4, #0x9 blt _0206211E @@ -207167,7 +207167,7 @@ FUN_02062170: ; 0x02062170 lsr r4, r0, #0x10 cmp r4, #0x5 blo _0206218C - bl FUN_02020C2C + bl ErrorHandling _0206218C: ldr r0, _02062238 ; =0x02105FBC lsl r1, r4, #0x1 @@ -207209,7 +207209,7 @@ _020621D4: lsr r4, r0, #0x10 cmp r4, #0x4 blo _020621E4 - bl FUN_02020C2C + bl ErrorHandling _020621E4: cmp r4, #0x3 bhi _0206220C @@ -207261,7 +207261,7 @@ _02062228: mov r0, #0xc pop {r3-r7, pc} _0206222C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 pop {r3-r7, pc} .balign 4 @@ -207353,7 +207353,7 @@ FUN_020622C4: ; 0x020622C4 lsr r5, r0, #0x10 cmp r5, #0x11 blo _020622E0 - bl FUN_02020C2C + bl ErrorHandling _020622E0: cmp r5, #0x9 blt _020622E6 @@ -207367,7 +207367,7 @@ _020622E6: lsr r4, r0, #0x10 cmp r4, #0x11 blo _020622FE - bl FUN_02020C2C + bl ErrorHandling _020622FE: cmp r4, #0x9 blt _02062304 @@ -207460,7 +207460,7 @@ _02062392: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bne _020623A4 - bl FUN_02020C2C + bl ErrorHandling _020623A4: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -207487,7 +207487,7 @@ _020623B0: lsr r0, r0, #0x10 cmp r5, r0 blo _020623DE - bl FUN_02020C2C + bl ErrorHandling _020623DE: add r0, sp, #0x10 add r0, #0x2 @@ -207583,7 +207583,7 @@ FUN_02062474: ; 0x02062474 lsl r0, r0, #0x10 lsr r4, r0, #0x10 bne _02062496 - bl FUN_02020C2C + bl ErrorHandling _02062496: cmp r4, #0x1 bhi _0206249E @@ -207605,7 +207605,7 @@ _0206249E: lsr r5, r0, #0x10 cmp r5, r4 blo _020624C6 - bl FUN_02020C2C + bl ErrorHandling _020624C6: lsl r4, r5, #0x2 add r0, sp, #0x4 @@ -207702,7 +207702,7 @@ _0206256C: _02062572: cmp r4, #0xb blt _0206257A - bl FUN_02020C2C + bl ErrorHandling _0206257A: ldr r1, [sp, #0x8] add r0, r6, #0x0 @@ -207804,11 +207804,11 @@ FUN_020625EC: ; 0x020625EC lsl r1, r1, #0x4 str r0, [r4, r1] add r0, r6, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02024FF4 strh r0, [r4, #0x1a] add r0, r6, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02025084 strh r0, [r4, #0x1c] str r4, [r7, #0x8] @@ -210148,7 +210148,7 @@ _020638F8: lsl r0, r0, #0x10 lsr r6, r0, #0x10 bne _02063920 - bl FUN_02020C2C + bl ErrorHandling _02063920: add r0, r6, #0x0 add r1, sp, #0x8 @@ -210337,7 +210337,7 @@ FUN_02063A80: ; 0x02063A80 ldr r0, _02063A98 ; =0x19740205 cmp r1, r0 beq _02063A90 - bl FUN_02020C2C + bl ErrorHandling _02063A90: add r0, r4, #0x0 bl FUN_02016A18 @@ -211697,7 +211697,7 @@ FUN_02064520: ; 0x02064520 push {r4, lr} add r4, r0, #0x0 bne _0206452A - bl FUN_02020C2C + bl ErrorHandling _0206452A: add r0, r4, #0x0 bl FUN_020646A0 @@ -211776,7 +211776,7 @@ FUN_020645B0: ; 0x020645B0 bl FUN_0200CA44 add r4, r0, #0x0 bne _020645C6 - bl FUN_02020C2C + bl ErrorHandling _020645C6: add r0, r4, #0x0 pop {r4, pc} @@ -211798,7 +211798,7 @@ FUN_020645DC: ; 0x020645DC bl FUN_02016998 add r4, r0, #0x0 bne _020645EC - bl FUN_02020C2C + bl ErrorHandling _020645EC: add r2, r4, #0x0 mov r1, #0x10 @@ -211831,7 +211831,7 @@ FUN_0206460C: ; 0x0206460C bl FUN_02016998 add r4, r0, #0x0 bne _02064622 - bl FUN_02020C2C + bl ErrorHandling _02064622: add r0, r4, #0x0 mov r1, #0x0 @@ -212169,7 +212169,7 @@ _0206480A: bl FUN_0204AA5C cmp r0, #0x0 bne _0206482C - bl FUN_02020C2C + bl ErrorHandling _0206482C: ldr r1, [sp, #0x14] add r0, sp, #0x18 @@ -212380,7 +212380,7 @@ _02064996: str r1, [r0, #0x8] pop {r3-r5, pc} _020649A0: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} nop _020649A8: .word 0x00000123 @@ -212538,7 +212538,7 @@ _02064ACA: bl FUN_0204AA5C cmp r0, #0x0 bne _02064AEC - bl FUN_02020C2C + bl ErrorHandling _02064AEC: ldr r1, [sp, #0xc] add r0, sp, #0x10 @@ -212662,7 +212662,7 @@ _02064BCA: bl FUN_0204AA5C cmp r0, #0x0 bne _02064BEC - bl FUN_02020C2C + bl ErrorHandling _02064BEC: ldr r1, [sp, #0xc] add r0, sp, #0x10 @@ -212866,7 +212866,7 @@ FUN_02064D88: ; 0x02064D88 add r7, r0, #0x0 cmp r5, #0x3 blo _02064D96 - bl FUN_02020C2C + bl ErrorHandling _02064D96: add r0, r7, #0x0 bl FUN_020377AC @@ -212902,7 +212902,7 @@ _02064DD2: mov r6, #0x19 b _02064DDE _02064DDA: - bl FUN_02020C2C + bl ErrorHandling _02064DDE: ldr r0, [r7, #0x1c] ldr r0, [r0, #0xc] @@ -212921,7 +212921,7 @@ FUN_02064DEC: ; 0x02064DEC add r6, r2, #0x0 cmp r4, #0x1 bls _02064DFC - bl FUN_02020C2C + bl ErrorHandling _02064DFC: mov r0, #0x0 mvn r0, r0 @@ -213691,11 +213691,11 @@ FUN_020653EC: ; 0x020653EC mov r1, #0xff add r6, r0, #0x0 strb r1, [r4, #0x1a] - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02024FF4 strb r0, [r4, #0x16] add r0, r6, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02025084 strh r0, [r4, #0x14] add r0, r4, #0x0 @@ -216014,7 +216014,7 @@ _02066676: lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020377AC - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] mov r0, #0x5b lsl r0, r0, #0x2 @@ -216423,7 +216423,7 @@ FUN_020669D4: ; 0x020669D4 mov r4, #0x1 lsr r0, r0, #0x1f beq _020669EE - bl FUN_02020C2C + bl ErrorHandling _020669EE: ldrh r1, [r5, #0x4] mov r0, #0x1 @@ -217383,7 +217383,7 @@ FUN_020671BC: ; 0x020671BC beq _02067204 cmp r0, r1 beq _020671FC - bl FUN_02020C2C + bl ErrorHandling _020671FC: ldrh r1, [r5, #0x4] mov r0, #0x4 @@ -217519,7 +217519,7 @@ FUN_020672BC: ; 0x020672BC beq _020672F8 cmp r0, r1 beq _020672F0 - bl FUN_02020C2C + bl ErrorHandling _020672F0: ldrh r1, [r5, #0x4] mov r0, #0x4 @@ -218294,7 +218294,7 @@ FUN_02067830: ; 0x02067830 beq _02067886 cmp r0, r1 beq _02067870 - bl FUN_02020C2C + bl ErrorHandling _02067870: ldrh r1, [r5, #0x4] mov r0, #0x4 @@ -218452,7 +218452,7 @@ FUN_02067960: ; 0x02067960 beq _020679AA cmp r0, r1 beq _02067994 - bl FUN_02020C2C + bl ErrorHandling _02067994: ldrh r1, [r5, #0x4] mov r0, #0x4 @@ -218715,7 +218715,7 @@ _02067B92: str r1, [r0, #0x0] pop {r4-r7, pc} _02067B9C: - bl FUN_02020C2C + bl ErrorHandling ldr r0, [sp, #0x0] ldrb r1, [r4, #0x0] ldrh r2, [r0, #0x4] @@ -218730,7 +218730,7 @@ _02067B9C: strh r1, [r0, #0x4] pop {r4-r7, pc} _02067BBA: - bl FUN_02020C2C + bl ErrorHandling ldr r0, [sp, #0x0] ldrh r1, [r0, #0x4] mov r0, #0x2 @@ -219369,7 +219369,7 @@ FUN_02068018: ; 0x02068018 beq _02068066 cmp r0, r1 beq _02068058 - bl FUN_02020C2C + bl ErrorHandling _02068058: ldrh r2, [r5, #0x6] add r0, r5, #0x0 @@ -219452,7 +219452,7 @@ _020680E4: strh r1, [r0, #0x0] pop {r3, pc} _020680F2: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} _020680F8: bl FUN_02068100 @@ -220006,7 +220006,7 @@ _020684F2: str r0, [r5, #0x10] pop {r4-r7, pc} _02068500: - bl FUN_02020C2C + bl ErrorHandling _02068504: add sp, #0xc pop {r4-r7, pc} @@ -220039,7 +220039,7 @@ FUN_02068538: ; 0x02068538 add r6, r1, #0x0 cmp r4, #0x0 bne _02068546 - bl FUN_02020C2C + bl ErrorHandling _02068546: cmp r6, #0x20 bhi _0206863A @@ -220207,7 +220207,7 @@ FUN_02068640: ; 0x02068640 push {r4, lr} add r4, r0, #0x0 bne _0206864A - bl FUN_02020C2C + bl ErrorHandling _0206864A: add r0, r4, #0x0 bl FUN_02016A18 @@ -220358,7 +220358,7 @@ FUN_0206876C: ; 0x0206876C add r4, r1, #0x0 cmp r5, #0x8 blt _0206877A - bl FUN_02020C2C + bl ErrorHandling _0206877A: add r0, r4, #0x0 mov r1, #0x3 @@ -220374,11 +220374,11 @@ FUN_02068788: ; 0x02068788 add r5, r1, #0x0 cmp r6, #0x8 blt _02068796 - bl FUN_02020C2C + bl ErrorHandling _02068796: cmp r5, #0x65 ble _0206879E - bl FUN_02020C2C + bl ErrorHandling _0206879E: mov r1, #0x65 mov r0, #0x0 @@ -221615,7 +221615,7 @@ _0206906C: add r5, r0, #0x0 cmp r5, #0x3 blt _02069080 - bl FUN_02020C2C + bl ErrorHandling _02069080: lsl r2, r5, #0x1 add r0, sp, #0xc @@ -222284,7 +222284,7 @@ FUN_02069558: ; 0x02069558 ldr r0, _020695A0 ; =0x000001EE cmp r4, r0 blo _0206956E - bl FUN_02020C2C + bl ErrorHandling _0206956E: add r0, sp, #0x4 blx FUN_020D1C94 @@ -225036,7 +225036,7 @@ FUN_0206A92C: ; 0x0206A92C mov r4, #0x1 cmp r5, #0x20 blt _0206A93A - bl FUN_02020C2C + bl ErrorHandling _0206A93A: mov r0, #0x0 cmp r5, #0x0 @@ -226353,7 +226353,7 @@ _0206B2E4: mov r0, #0x1 pop {r3-r7, pc} _0206B2F4: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} @@ -226382,7 +226382,7 @@ _0206B308: bl FUN_02022830 pop {r3, pc} _0206B32A: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} thumb_func_start FUN_0206B330 @@ -226540,7 +226540,7 @@ FUN_0206B428: ; 0x0206B428 bl FUN_02022830 pop {r3, pc} _0206B436: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} thumb_func_start FUN_0206B43C @@ -226553,7 +226553,7 @@ FUN_0206B43C: ; 0x0206B43C ldrb r0, [r1, r0] pop {r3, pc} _0206B44A: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop @@ -226578,7 +226578,7 @@ _0206B464: bl FUN_02022830 pop {r3, pc} _0206B478: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} nop _0206B480: .word 0x000121B4 @@ -226604,7 +226604,7 @@ _0206B492: bl FUN_02021E28 pop {r3, pc} _0206B4A8: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} nop _0206B4B0: .word 0x00011EE4 @@ -226670,7 +226670,7 @@ _0206B514: add r0, r4, #0x0 pop {r3-r7, pc} _0206B520: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} @@ -226715,7 +226715,7 @@ _0206B566: add r0, r4, #0x0 pop {r3-r7, pc} _0206B572: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} .balign 4 @@ -226750,11 +226750,11 @@ FUN_0206B598: ; 0x0206B598 mvn r0, r0 cmp r4, r0 beq _0206B5B2 - bl FUN_02020C2C + bl ErrorHandling _0206B5B2: cmp r6, #0x1e blo _0206B5BA - bl FUN_02020C2C + bl ErrorHandling _0206B5BA: mov r0, #0x0 mvn r0, r0 @@ -226789,11 +226789,11 @@ FUN_0206B5E4: ; 0x0206B5E4 mvn r0, r0 cmp r4, r0 beq _0206B5FC - bl FUN_02020C2C + bl ErrorHandling _0206B5FC: cmp r6, #0x1e blo _0206B604 - bl FUN_02020C2C + bl ErrorHandling _0206B604: mov r0, #0x0 mvn r0, r0 @@ -226818,7 +226818,7 @@ FUN_0206B620: ; 0x0206B620 add r5, r0, #0x0 cmp r4, #0x8 blo _0206B62E - bl FUN_02020C2C + bl ErrorHandling _0206B62E: ldr r0, _0206B640 ; =0x000121C6 mov r1, #0x1 @@ -226838,7 +226838,7 @@ FUN_0206B644: ; 0x0206B644 add r5, r0, #0x0 cmp r4, #0x8 blo _0206B652 - bl FUN_02020C2C + bl ErrorHandling _0206B652: ldr r0, _0206B664 ; =0x000121C6 ldrb r2, [r5, r0] @@ -227220,7 +227220,7 @@ FUN_0206B8CC: ; 0x0206B8CC add r5, r0, #0x0 cmp r6, #0x6 ble _0206B8DA - bl FUN_02020C2C + bl ErrorHandling _0206B8DA: mov r2, #0x59 add r0, r5, #0x0 @@ -227280,22 +227280,22 @@ FUN_0206B938: ; 0x0206B938 add r7, r0, #0x0 add r4, r1, #0x0 bpl _0206B944 - bl FUN_02020C2C + bl ErrorHandling _0206B944: ldr r0, [r7, #0x4] cmp r4, r0 blt _0206B94E - bl FUN_02020C2C + bl ErrorHandling _0206B94E: ldr r0, [r7, #0x0] cmp r4, r0 blt _0206B958 - bl FUN_02020C2C + bl ErrorHandling _0206B958: ldr r0, [r7, #0x4] cmp r0, #0x0 bgt _0206B962 - bl FUN_02020C2C + bl ErrorHandling _0206B962: ldr r0, [r7, #0x4] sub r0, r0, #0x1 @@ -227348,17 +227348,17 @@ FUN_0206B9B0: ; 0x0206B9B0 add r5, r0, #0x0 add r4, r1, #0x0 bpl _0206B9BC - bl FUN_02020C2C + bl ErrorHandling _0206B9BC: ldr r0, [r5, #0x4] cmp r4, r0 blt _0206B9C6 - bl FUN_02020C2C + bl ErrorHandling _0206B9C6: ldr r0, [r5, #0x0] cmp r4, r0 blt _0206B9D0 - bl FUN_02020C2C + bl ErrorHandling _0206B9D0: mov r0, #0xec add r5, #0x8 @@ -227375,17 +227375,17 @@ FUN_0206B9DC: ; 0x0206B9DC add r6, r2, #0x0 cmp r4, #0x0 bge _0206B9EC - bl FUN_02020C2C + bl ErrorHandling _0206B9EC: ldr r0, [r5, #0x4] cmp r4, r0 blt _0206B9F6 - bl FUN_02020C2C + bl ErrorHandling _0206B9F6: ldr r0, [r5, #0x0] cmp r4, r0 blt _0206BA00 - bl FUN_02020C2C + bl ErrorHandling _0206BA00: add r1, r5, #0x0 mov r0, #0xec @@ -227423,31 +227423,31 @@ FUN_0206BA38: ; 0x0206BA38 add r6, r2, #0x0 cmp r5, #0x0 bge _0206BA48 - bl FUN_02020C2C + bl ErrorHandling _0206BA48: ldr r0, [r4, #0x4] cmp r5, r0 blt _0206BA52 - bl FUN_02020C2C + bl ErrorHandling _0206BA52: ldr r0, [r4, #0x0] cmp r5, r0 blt _0206BA5C - bl FUN_02020C2C + bl ErrorHandling _0206BA5C: cmp r6, #0x0 bge _0206BA64 - bl FUN_02020C2C + bl ErrorHandling _0206BA64: ldr r0, [r4, #0x4] cmp r6, r0 blt _0206BA6E - bl FUN_02020C2C + bl ErrorHandling _0206BA6E: ldr r0, [r4, #0x0] cmp r6, r0 blt _0206BA78 - bl FUN_02020C2C + bl ErrorHandling _0206BA78: mov r0, #0x0 mov r1, #0xec @@ -229898,7 +229898,7 @@ _0206CCCE: lsl r1, r1, #0xe cmp r0, r1 bhi _0206CD16 - bl FUN_02020C2C + bl ErrorHandling _0206CD16: ldr r0, _0206CE24 ; =0x000005F9 bl FUN_020054C8 @@ -232043,11 +232043,11 @@ FUN_0206DF18: ; 0x0206DF18 add r5, r0, #0x0 cmp r4, #0x0 bne _0206DF40 - bl FUN_02020C2C + bl ErrorHandling _0206DF40: cmp r5, #0x0 bne _0206DF48 - bl FUN_02020C2C + bl ErrorHandling _0206DF48: bl FUN_02012CC8 pop {r3-r5, pc} @@ -232211,7 +232211,7 @@ FUN_0206E07C: ; 0x0206E07C bl FUN_02016998 add r4, r0, #0x0 bne _0206E090 - bl FUN_02020C2C + bl ErrorHandling _0206E090: ldr r0, [r5, #0x0] ldr r2, [r5, #0x4] @@ -232271,7 +232271,7 @@ FUN_0206E0F0: ; 0x0206E0F0 add r4, r0, #0x0 cmp r4, #0x17 blo _0206E0FC - bl FUN_02020C2C + bl ErrorHandling _0206E0FC: ldr r0, _0206E104 ; =0x020F83E0 lsl r1, r4, #0x2 @@ -232301,7 +232301,7 @@ FUN_0206E114: ; 0x0206E114 add r4, r0, #0x0 cmp r4, #0x17 blo _0206E120 - bl FUN_02020C2C + bl ErrorHandling _0206E120: ldr r0, _0206E128 ; =0x020F843C ldrb r0, [r0, r4] @@ -232493,7 +232493,7 @@ FUN_0206E278: ; 0x0206E278 add r4, r0, #0x0 cmp r4, #0x3 blo _0206E284 - bl FUN_02020C2C + bl ErrorHandling _0206E284: ldr r0, _0206E28C ; =0x020F83D4 lsl r1, r4, #0x2 @@ -232508,7 +232508,7 @@ FUN_0206E290: ; 0x0206E290 add r4, r0, #0x0 cmp r4, #0x3 blo _0206E29C - bl FUN_02020C2C + bl ErrorHandling _0206E29C: ldr r0, _0206E2A4 ; =0x020F83D0 ldrb r0, [r0, r4] @@ -251464,11 +251464,11 @@ FUN_02077AC4: ; 0x02077AC4 ldr r0, [r4, #0x18] cmp r0, #0x0 bne _02077AD2 - bl FUN_02020C2C + bl ErrorHandling _02077AD2: cmp r4, #0x0 bne _02077ADA - bl FUN_02020C2C + bl ErrorHandling _02077ADA: ldr r0, [r4, #0x18] bl FUN_02021A20 @@ -269479,7 +269479,7 @@ _02080CB4: bl FUN_02027E24 str r0, [sp, #0x18] ldr r0, [r6, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x1c] add r0, sp, #0x4 bl FUN_02081214 @@ -269594,7 +269594,7 @@ _02080DD4: str r0, [r4, #0x4] b _02080DF2 _02080DE2: - bl FUN_02020C2C + bl ErrorHandling _02080DE6: add r0, r4, #0x0 bl FUN_02016A18 @@ -269845,7 +269845,7 @@ _02080FC0: str r0, [r4, #0x4] b _02080FDC _02080FCE: - bl FUN_02020C2C + bl ErrorHandling _02080FD2: add r0, r4, #0x0 bl FUN_02016A18 @@ -270095,7 +270095,7 @@ _02081196: str r0, [r4, #0x4] b _020811B4 _020811A4: - bl FUN_02020C2C + bl ErrorHandling _020811A8: add r0, r4, #0x0 bl FUN_02016A18 @@ -270607,7 +270607,7 @@ _020815A6: add r6, r0, #0x0 b _020815BA _020815B6: - bl FUN_02020C2C + bl ErrorHandling _020815BA: cmp r6, #0x0 beq _020815CA @@ -271695,7 +271695,7 @@ _02081DEC: bl FUN_0202DFA4 add r7, r0, #0x0 bne _02081DFA - bl FUN_02020C2C + bl ErrorHandling _02081DFA: add r0, r7, #0x0 bl FUN_02023A88 @@ -271722,7 +271722,7 @@ _02081E1E: bl FUN_0202DFA4 add r7, r0, #0x0 bne _02081E2C - bl FUN_02020C2C + bl ErrorHandling _02081E2C: add r0, r7, #0x0 bl FUN_02023A9C @@ -271819,7 +271819,7 @@ FUN_02081ED4: ; 0x02081ED4 ldr r0, [r4, r0] cmp r0, #0x0 beq _02081EE6 - bl FUN_02020C2C + bl ErrorHandling _02081EE6: ldr r0, _02081F00 ; =0x00000176 mov r1, #0x0 @@ -272379,7 +272379,7 @@ _020822C8: add r0, #0x31 b _020822D6 _020822D0: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} _020822D6: lsl r0, r0, #0x18 @@ -272577,7 +272577,7 @@ _02082412: _02082414: cmp r4, #0x64 bne _0208241C - bl FUN_02020C2C + bl ErrorHandling _0208241C: ldr r0, _02082440 ; =0x0000198C ldr r0, [r5, r0] @@ -272606,7 +272606,7 @@ FUN_02082444: ; 0x02082444 ldr r0, [r5, r0] cmp r0, #0x0 beq _02082456 - bl FUN_02020C2C + bl ErrorHandling _02082456: mov r0, #0x4 mov r1, #0x10 @@ -273370,7 +273370,7 @@ _02082A26: ldr r0, [sp, #0x8] cmp r6, r0 bge _02082A30 - bl FUN_02020C2C + bl ErrorHandling _02082A30: mov r0, #0x0 str r0, [sp, #0x10] @@ -273528,7 +273528,7 @@ _02082B44: _02082B4E: cmp r6, #0x4 bhs _02082B56 - bl FUN_02020C2C + bl ErrorHandling _02082B56: mov r6, #0x0 mov r7, #0x30 @@ -273692,7 +273692,7 @@ _02082C66: ldrb r2, [r0, #0x0] b _02082C74 _02082C6E: - bl FUN_02020C2C + bl ErrorHandling mov r2, #0x0 _02082C74: mov r0, #0x54 @@ -273950,7 +273950,7 @@ FUN_02082E64: ; 0x02082E64 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02082E98 - bl FUN_02020C2C + bl ErrorHandling _02082E98: add r1, sp, #0x14 ldrh r0, [r1, #0x0] @@ -274153,7 +274153,7 @@ _0208300A: strb r1, [r0, r4] cmp r5, #0x2 bhs _0208301A - bl FUN_02020C2C + bl ErrorHandling _0208301A: ldr r2, [sp, #0x4] mov r3, #0x0 @@ -274185,7 +274185,7 @@ _0208301E: blt _0208301E cmp r4, #0x1 bhs _02083058 - bl FUN_02020C2C + bl ErrorHandling _02083058: ldr r0, [sp, #0x4] bl FUN_02082878 @@ -274283,7 +274283,7 @@ FUN_02083114: ; 0x02083114 add r4, r0, #0x0 cmp r4, #0x18 blo _02083120 - bl FUN_02020C2C + bl ErrorHandling _02083120: mov r0, #0x1a add r1, r4, #0x0 @@ -274302,7 +274302,7 @@ FUN_02083130: ; 0x02083130 add r6, r2, #0x0 cmp r5, #0x18 blo _02083140 - bl FUN_02020C2C + bl ErrorHandling _02083140: mov r0, #0x1a add r1, r5, #0x0 @@ -274324,7 +274324,7 @@ FUN_0208315C: ; 0x0208315C add r4, r0, #0x0 cmp r4, #0x18 blo _02083168 - bl FUN_02020C2C + bl ErrorHandling _02083168: add r4, #0x2d add r0, r4, #0x0 @@ -274340,7 +274340,7 @@ FUN_02083170: ; 0x02083170 add r6, r3, #0x0 cmp r4, #0x18 blo _02083182 - bl FUN_02020C2C + bl ErrorHandling _02083182: cmp r7, #0x4 bhi _0208319C @@ -274761,7 +274761,7 @@ _02083448: add r0, #0x8a pop {r3, pc} _0208344C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x7a pop {r3, pc} @@ -274849,7 +274849,7 @@ FUN_020834E4: ; 0x020834E4 add r4, r1, #0x0 cmp r2, r0 blt _020834F6 - bl FUN_02020C2C + bl ErrorHandling _020834F6: ldr r0, _02083500 ; =0x00000985 add r1, r4, r0 @@ -274916,21 +274916,21 @@ _0208354A: add r4, r1, r0 b _0208355E _02083558: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _0208355E: mov r0, #0x2 lsl r0, r0, #0x8 cmp r6, r0 ble _0208356A - bl FUN_02020C2C + bl ErrorHandling _0208356A: ldr r0, _0208359C ; =0x00000A11 add r7, r4, r0 ldrb r0, [r7, r5] cmp r0, #0x0 beq _02083578 - bl FUN_02020C2C + bl ErrorHandling _02083578: mov r1, #0x21 lsl r1, r1, #0x4 @@ -275472,7 +275472,7 @@ FUN_02083970: ; 0x02083970 lsl r0, r0, #0xa cmp r1, r0 blt _0208398C - bl FUN_02020C2C + bl ErrorHandling _0208398C: mov r7, #0x0 ldr r4, [sp, #0x4] @@ -275515,7 +275515,7 @@ FUN_020839C0: ; 0x020839C0 str r0, [sp, #0x0] cmp r0, r1 blt _020839DE - bl FUN_02020C2C + bl ErrorHandling _020839DE: ldr r0, _02083A18 ; =0x00000585 mov r7, #0x0 @@ -276375,7 +276375,7 @@ FUN_02083FDC: ; 0x02083FDC bl FUN_02031190 cmp r0, #0x0 beq _02083FEE - bl FUN_02020C2C + bl ErrorHandling _02083FEE: bl FUN_02031190 cmp r0, #0x0 @@ -278906,7 +278906,7 @@ FUN_02085338: ; 0x02085338 strb r0, [r4, #0x2] add r0, r6, #0x0 strb r1, [r4, #0x3] - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02025084 str r0, [r4, #0x8] cmp r5, #0x2 @@ -279576,7 +279576,7 @@ FUN_020857F8: ; 0x020857F8 bl FUN_020856F0 str r0, [r4, #0x10] ldr r0, [r5, #0x10] - bl FUN_02023900 + bl LoadPlayerDataAddress ldr r1, [r4, #0x10] str r0, [r1, #0x4] ldrh r0, [r5, #0x0] @@ -280186,7 +280186,7 @@ FUN_02085D6C: ; 0x02085D6C ldr r0, [r4, #0x0] cmp r0, r1 bge _02085D7C - bl FUN_02020C2C + bl ErrorHandling mov r1, #0x0 _02085D7C: lsl r0, r1, #0x2 @@ -280312,7 +280312,7 @@ _02085E48: beq _02085E5A cmp r0, #0x1 beq _02085E60 - bl FUN_02020C2C + bl ErrorHandling _02085E5A: mov r0, #0x5 str r0, [r6, #0x14] @@ -280447,7 +280447,7 @@ _02085F5E: str r0, [r4, #0x8] blx FUN_020DF4A4 add r0, r5, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress ldr r1, [r4, #0x8] str r0, [r1, #0x24] ldr r0, [r4, #0x8] @@ -280474,7 +280474,7 @@ FUN_02085FAC: ; 0x02085FAC ldr r0, _02085FC8 ; =0x0000032A cmp r4, r0 blo _02085FBA - bl FUN_02020C2C + bl ErrorHandling _02085FBA: mov r0, #0xa add r1, r4, #0x0 @@ -280493,7 +280493,7 @@ FUN_02085FD0: ; 0x02085FD0 ldr r0, _02085FEC ; =0x0000032A cmp r4, r0 blo _02085FDE - bl FUN_02020C2C + bl ErrorHandling _02085FDE: mov r0, #0xa add r1, r4, #0x0 @@ -280512,7 +280512,7 @@ FUN_02085FF4: ; 0x02085FF4 ldr r0, _02086010 ; =0x0000032A cmp r4, r0 blo _02086002 - bl FUN_02020C2C + bl ErrorHandling _02086002: mov r0, #0xa add r1, r4, #0x0 @@ -280531,7 +280531,7 @@ FUN_02086018: ; 0x02086018 ldr r0, _02086034 ; =0x0000032A cmp r4, r0 blo _02086026 - bl FUN_02020C2C + bl ErrorHandling _02086026: mov r0, #0xa add r1, r4, #0x0 @@ -280550,7 +280550,7 @@ FUN_0208603C: ; 0x0208603C ldr r0, _02086058 ; =0x0000032A cmp r4, r0 blo _0208604A - bl FUN_02020C2C + bl ErrorHandling _0208604A: mov r0, #0xa add r1, r4, #0x0 @@ -280569,7 +280569,7 @@ FUN_02086060: ; 0x02086060 ldr r0, _0208607C ; =0x0000032A cmp r4, r0 blo _0208606E - bl FUN_02020C2C + bl ErrorHandling _0208606E: mov r0, #0xa add r1, r4, #0x0 @@ -280893,7 +280893,7 @@ _0208633A: add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_020377AC - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x0] mov r0, #0xb mov r1, #0x1 @@ -281127,11 +281127,11 @@ FUN_0208650C: ; 0x0208650C add r5, r0, #0x0 cmp r4, #0x0 bne _02086534 - bl FUN_02020C2C + bl ErrorHandling _02086534: cmp r5, #0x0 bne _0208653C - bl FUN_02020C2C + bl ErrorHandling _0208653C: bl FUN_02012CC8 pop {r3-r5, pc} @@ -281871,7 +281871,7 @@ FUN_02086B40: ; 0x02086B40 bl FUN_02016998 add r4, r0, #0x0 bne _02086B54 - bl FUN_02020C2C + bl ErrorHandling _02086B54: ldr r0, [r5, #0x0] ldr r2, [r5, #0x4] @@ -282296,7 +282296,7 @@ FUN_02086E48: ; 0x02086E48 bl FUN_0200BBF0 cmp r0, #0x0 bne _02086EB2 - bl FUN_02020C2C + bl ErrorHandling _02086EB2: ldr r0, [r4, #0x4c] ldr r1, [r4, #0x48] @@ -282304,7 +282304,7 @@ _02086EB2: bl FUN_0200BF60 cmp r0, #0x0 bne _02086EC4 - bl FUN_02020C2C + bl ErrorHandling _02086EC4: add sp, #0x4c pop {r3-r6, pc} @@ -282874,7 +282874,7 @@ _02087322: str r0, [r4, #0x5c] b _02087486 _0208735C: - bl FUN_02020C2C + bl ErrorHandling b _02087486 _02087362: bl FUN_02005670 @@ -283746,7 +283746,7 @@ FUN_02087A38: ; 0x02087A38 add r4, r0, #0x0 cmp r4, #0x6 blt _02087A44 - bl FUN_02020C2C + bl ErrorHandling _02087A44: ldr r0, _02087A4C ; =0x020FD13C ldrb r0, [r0, r4] @@ -283792,7 +283792,7 @@ FUN_02087A84: ; 0x02087A84 push {r4, lr} add r4, r0, #0x0 bne _02087A8E - bl FUN_02020C2C + bl ErrorHandling _02087A8E: add r0, r4, #0x0 bl FUN_02016A18 @@ -283807,17 +283807,17 @@ FUN_02087A98: ; 0x02087A98 add r4, r2, #0x0 cmp r5, #0x0 bne _02087AA8 - bl FUN_02020C2C + bl ErrorHandling _02087AA8: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02087AB2 - bl FUN_02020C2C + bl ErrorHandling _02087AB2: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _02087ABC - bl FUN_02020C2C + bl ErrorHandling _02087ABC: add r0, r4, #0x0 bl FUN_02087C18 @@ -283862,12 +283862,12 @@ FUN_02087B0C: ; 0x02087B0C ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02087B1A - bl FUN_02020C2C + bl ErrorHandling _02087B1A: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _02087B24 - bl FUN_02020C2C + bl ErrorHandling _02087B24: ldr r0, [r4, #0x0] bl FUN_02016A18 @@ -283897,12 +283897,12 @@ FUN_02087B58: ; 0x02087B58 add r4, r1, #0x0 cmp r5, #0x0 bne _02087B66 - bl FUN_02020C2C + bl ErrorHandling _02087B66: ldr r0, [r5, #0x0] cmp r0, #0x0 bne _02087B70 - bl FUN_02020C2C + bl ErrorHandling _02087B70: ldr r1, [r5, #0x0] lsl r0, r4, #0x2 @@ -283916,12 +283916,12 @@ FUN_02087B78: ; 0x02087B78 add r4, r1, #0x0 cmp r5, #0x0 bne _02087B86 - bl FUN_02020C2C + bl ErrorHandling _02087B86: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02087B90 - bl FUN_02020C2C + bl ErrorHandling _02087B90: ldr r1, [r5, #0x4] lsl r0, r4, #0x2 @@ -283935,12 +283935,12 @@ FUN_02087B98: ; 0x02087B98 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BA6 - bl FUN_02020C2C + bl ErrorHandling _02087BA6: ldr r0, [r5, #0x8] cmp r0, #0x0 bne _02087BB0 - bl FUN_02020C2C + bl ErrorHandling _02087BB0: ldr r1, [r5, #0x8] lsl r0, r4, #0x1 @@ -283954,12 +283954,12 @@ FUN_02087BB8: ; 0x02087BB8 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BC6 - bl FUN_02020C2C + bl ErrorHandling _02087BC6: ldr r0, [r5, #0xc] cmp r0, #0x0 bne _02087BD0 - bl FUN_02020C2C + bl ErrorHandling _02087BD0: ldr r1, [r5, #0xc] lsl r0, r4, #0x1 @@ -283973,12 +283973,12 @@ FUN_02087BD8: ; 0x02087BD8 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BE6 - bl FUN_02020C2C + bl ErrorHandling _02087BE6: ldr r0, [r5, #0x10] cmp r0, #0x0 bne _02087BF0 - bl FUN_02020C2C + bl ErrorHandling _02087BF0: ldr r1, [r5, #0x10] lsl r0, r4, #0x1 @@ -283992,12 +283992,12 @@ FUN_02087BF8: ; 0x02087BF8 add r4, r1, #0x0 cmp r5, #0x0 bne _02087C06 - bl FUN_02020C2C + bl ErrorHandling _02087C06: ldr r0, [r5, #0x14] cmp r0, #0x0 bne _02087C10 - bl FUN_02020C2C + bl ErrorHandling _02087C10: ldr r1, [r5, #0x14] lsl r0, r4, #0x1 @@ -284158,7 +284158,7 @@ FUN_02087D00: ; 0x02087D00 bl FUN_0206F158 str r0, [r7, #0x14] add r0, r4, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r7, #0x18] add r0, r5, #0x0 bl FUN_02027E5C @@ -285110,7 +285110,7 @@ FUN_02088490: ; 0x02088490 str r0, [sp, #0x3c] cmp r0, #0x0 bge _020884B4 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x70 mov r0, #0x0 pop {r3-r7, pc} @@ -285305,7 +285305,7 @@ _02088612: bl FUN_02020248 b _02088656 _02088652: - bl FUN_02020C2C + bl ErrorHandling _02088656: ldr r0, [sp, #0x38] str r4, [r0, #0x4] @@ -285396,7 +285396,7 @@ FUN_020886CC: ; 0x020886CC ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02088704 - bl FUN_02020C2C + bl ErrorHandling _02088704: ldr r0, [r5, #0x4] cmp r0, #0x0 @@ -285447,7 +285447,7 @@ _02088734: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02088768 - bl FUN_02020C2C + bl ErrorHandling _02088768: add r4, r4, #0x1 add r6, r6, #0x4 @@ -285485,7 +285485,7 @@ _02088780: ldr r0, [r0, r4] cmp r0, #0x0 bne _020887B4 - bl FUN_02020C2C + bl ErrorHandling _020887B4: ldr r0, [r6, #0x0] ldr r0, [r0, r4] @@ -285722,7 +285722,7 @@ FUN_0208890C: ; 0x0208890C bl FUN_0206F158 str r0, [r4, #0x14] add r0, r5, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x18] str r7, [r4, #0x1c] str r6, [r4, #0x4] @@ -286104,7 +286104,7 @@ _02088C12: mov r0, #0x5 pop {r3-r5, pc} _02088C16: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x95 str r0, [r4, #0x8] _02088C1E: @@ -286118,7 +286118,7 @@ _02088C1E: bl FUN_0206EDD4 cmp r0, #0x0 bne _02088C38 - bl FUN_02020C2C + bl ErrorHandling _02088C38: mov r0, #0x4 pop {r3-r5, pc} @@ -286269,7 +286269,7 @@ FUN_02088D4C: ; 0x02088D4C add r4, r0, #0x0 cmp r4, #0x13 blo _02088D58 - bl FUN_02020C2C + bl ErrorHandling _02088D58: mov r0, #0xc add r1, r4, #0x0 @@ -286286,7 +286286,7 @@ FUN_02088D68: ; 0x02088D68 add r4, r0, #0x0 cmp r4, #0x13 blo _02088D74 - bl FUN_02020C2C + bl ErrorHandling _02088D74: mov r0, #0xc add r1, r4, #0x0 @@ -286303,7 +286303,7 @@ FUN_02088D84: ; 0x02088D84 add r4, r0, #0x0 cmp r4, #0x13 blo _02088D90 - bl FUN_02020C2C + bl ErrorHandling _02088D90: mov r0, #0xc add r1, r4, #0x0 @@ -286320,7 +286320,7 @@ FUN_02088DA0: ; 0x02088DA0 add r4, r0, #0x0 cmp r4, #0x13 blo _02088DAC - bl FUN_02020C2C + bl ErrorHandling _02088DAC: mov r0, #0xc add r1, r4, #0x0 @@ -286337,7 +286337,7 @@ FUN_02088DBC: ; 0x02088DBC add r4, r0, #0x0 cmp r4, #0x13 blo _02088DC8 - bl FUN_02020C2C + bl ErrorHandling _02088DC8: mov r0, #0xc add r1, r4, #0x0 @@ -287213,7 +287213,7 @@ FUN_020893F0: ; 0x020893F0 str r4, [r0, #0x0] pop {r4, pc} _0208940A: - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} .balign 4 _02089410: .word 0x021C5C58 @@ -287235,7 +287235,7 @@ FUN_02089418: ; 0x02089418 mov r0, #0x1 pop {r3, pc} _02089434: - bl FUN_02020C2C + bl ErrorHandling _02089438: mov r0, #0x0 pop {r3, pc} @@ -287258,7 +287258,7 @@ FUN_02089444: ; 0x02089444 str r4, [r0, #0x0] pop {r4, pc} _0208945E: - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} .balign 4 _02089464: .word 0x021C5C58 @@ -287280,7 +287280,7 @@ FUN_0208946C: ; 0x0208946C mov r0, #0x1 pop {r3, pc} _02089488: - bl FUN_02020C2C + bl ErrorHandling _0208948C: mov r0, #0x0 pop {r3, pc} @@ -288516,7 +288516,7 @@ _02089EE4: bl FUN_02000FE8 add r0, r4, #0x0 add r1, r4, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _02089EE4 nop _02089EF4: .word 0xFFFFE0FF @@ -288677,7 +288677,7 @@ _0208A078: bl FUN_02000FE8 add r0, r4, #0x0 add r1, r4, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _0208A078 nop _0208A088: .word 0xFFFFE0FF @@ -288846,7 +288846,7 @@ _0208A21A: bl FUN_02000FE8 add r0, r4, #0x0 add r1, r4, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _0208A21A .balign 4 _0208A228: .word 0xFFFFE0FF @@ -289451,7 +289451,7 @@ _0208A6FA: bl FUN_020545B8 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02054608 @@ -289467,7 +289467,7 @@ _0208A722: _0208A734: ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 ldr r1, [r5, #0x8] add r0, r4, #0x0 @@ -289971,7 +289971,7 @@ _0208AB58: bne _0208AB72 add r0, r4, #0x0 add r1, r4, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _0208AB58 _0208AB72: ldr r5, _0208AC04 ; =0x04000130 @@ -289992,7 +289992,7 @@ _0208AB7A: bne _0208AB9C mov r0, #0x1 add r1, r0, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _0208AB7A _0208AB9C: ldr r1, _0208AC10 ; =0x00007FFF diff --git a/asm/rom1.5.s b/asm/rom1.5.s index c437a54f..50021ed7 100644 --- a/asm/rom1.5.s +++ b/asm/rom1.5.s @@ -1,3 +1,5 @@ +/* rom1.5.s TODO: Disassemble */ + .section .text .incbin "baserom.nds", 0x8EC14, 0x3EFF8 diff --git a/global.inc b/global.inc index 5a116af1..36dc1899 100644 --- a/global.inc +++ b/global.inc @@ -17,19 +17,19 @@ .extern FUN_020125D4 .extern FUN_02015E30 .extern FUN_02015E60 -.extern FUN_02016014 -.extern FUN_02016148 +.extern InitSystemForTheGame +.extern InitGraphicMemory .extern FUN_020163BC .extern FUN_02016438 .extern FUN_02016464 .extern FUN_0201B5CC .extern FUN_02020AFC -.extern FUN_02020C2C +.extern ErrorHandling .extern FUN_02022294 .extern FUN_020222C4 .extern FUN_0202254C .extern FUN_020227FC -.extern FUN_02023900 +.extern LoadPlayerDataAddress .extern FUN_02029EF8 .extern FUN_0202FB80 .extern FUN_020337E8 @@ -319,7 +319,7 @@ .extern FUN_020C9480 .extern FUN_020C94E8 .extern FUN_020C9550 -.extern FUN_020C9C0C +.extern OS_WaitIrq .extern FUN_020C9E14 .extern FUN_020C9E5C .extern FUN_020C9FEC @@ -395,7 +395,7 @@ .extern FUN_020D4980 .extern FUN_020D4A5C .extern FUN_020D4E68 -.extern FUN_020D50D8 +.extern PM_GetBackLight .extern FUN_020D5150 .extern FUN_020D5168 .extern FUN_020D5180 diff --git a/src/FUN_02000DF4.c b/src/FUN_02000DF4.c index c4532fdd..f62d1bf8 100644 --- a/src/FUN_02000DF4.c +++ b/src/FUN_02000DF4.c @@ -13,12 +13,12 @@ struct Unk2106FA0 { s32 unk14; }; -extern struct Unk2106FA0 gUnknown2106FA0; +extern struct Unk2106FA0 gBacklightTop; void FUN_02000DF4(void) { - gUnknown2106FA0.unk8 = -1; - gUnknown2106FA0.unkC = 0; - gUnknown2106FA0.unk10 = -1; - gUnknown2106FA0.unk14 = 0; + gBacklightTop.unk8 = -1; + gBacklightTop.unkC = 0; + gBacklightTop.unk10 = -1; + gBacklightTop.unk14 = 0; } diff --git a/src/main.c b/src/main.c index 844d069d..fa31dde5 100644 --- a/src/main.c +++ b/src/main.c @@ -42,8 +42,8 @@ struct Unk21C48B8 s32 unk6C; }; -extern struct Unk2106FA0 gUnknown2106FA0; -extern struct Unk2106FA0 gUnknown2106FA0_2; // same as the first one, it's referenced twice in the constant pool... +extern struct Unk2106FA0 gBacklightTop; +extern struct Unk2106FA0 gBacklightTop_2; // same as the first one, it's referenced twice in the constant pool... extern struct Unk2106FA0 gUnknown2106FB8; extern struct Unk21C48B8 gUnknown21C48B8; @@ -54,8 +54,8 @@ extern struct { u8 unk8; } gUnk021C4918; -extern void FUN_020D50D8(); -extern void FUN_020C9C0C(); +extern void PM_GetBackLight(); +extern void OS_WaitIrq(); extern void FUN_02016438(s32); extern const s32 CONST_3F; // 0x0000003F @@ -67,85 +67,85 @@ extern struct Unk21DBE18 gUnk021D76C8; void NitroMain(void) { - FUN_02016014(); - FUN_02016148(); - FUN_020163BC(); - FUN_02016438(0); + InitSystemForTheGame(); + InitGraphicMemory(); + FUN_020163BC(); + FUN_02016438(0); - FUN_020D50D8(&gUnknown2106FA0_2, 0); // should be blx please + PM_GetBackLight(&gBacklightTop_2, 0); - FUN_02022294(); - FUN_0201259C(); - FUN_02000DF4(); - FUN_02002C14(); - FUN_02002C50(0, 3); - FUN_02002C50(1, 3); - FUN_02002C50(3, 3); - gUnknown2106FA0.unk18 = -1; - gUnknown2106FA0.unk20 = FUN_0202254C(); - FUN_02003B98(FUN_02029EF8(gUnknown2106FA0.unk20), FUN_02023900(gUnknown2106FA0.unk20)); - FUN_02020AFC(); - if (FUN_020337E8(3) == 3) - FUN_02034188(3, 0); - if (FUN_020227FC(gUnknown2106FA0.unk20) == 0) - { - FUN_02089D90(0); - } - else - { - switch (gUnk027FFC20) - { - case 0: - gUnknown2106FA0.unk1C = 0; - FUN_02000E7C(&CONST_3F, &gUnk021DBE18); - break; - case 1: - gUnknown2106FA0.unk1C = 1; - FUN_02000E7C(&CONST_34, &gUnk021D76C8); - break; - default: - FUN_02020C2C(); - break; - } - } - gUnknown21C48B8.unk6C = 1; - gUnknown21C48B8.unk30 = 0; - FUN_02000FA4(); - FUN_0200A2AC(); - FUN_02015E30(); - gUnknown2106FA0.unk4 = 0; - for (;;) - { - FUN_02000EE8(); - FUN_02000FE8(); - FUN_02016464(); - if ((gUnknown21C48B8.unk38 & 0x30C) == 0x30C && !gUnk021C4918.unk8) // soft reset? - { - FUN_02000F18(0); // soft reset? - } - if (FUN_0202FB80()) - { - FUN_02000E0C(); - FUN_0201B5CC(gUnknown21C48B8.unk18); - FUN_0201B5CC(gUnknown21C48B8.unk24); - if (!gUnknown21C48B8.unk30) - { - FUN_020C9C0C(1, 1); - gUnknown21C48B8.unk2C++; - } - } - FUN_020125D4(); - FUN_02015E60(); - FUN_020222C4(); - FUN_0201B5CC(gUnknown21C48B8.unk24); - FUN_020C9C0C(1, 1); - gUnknown21C48B8.unk2C++; - gUnknown21C48B8.unk30 = 0; - FUN_0200A318(); - FUN_0200E2D8(); - if (gUnknown21C48B8.unk0) - gUnknown21C48B8.unk0(gUnknown21C48B8.unk4); - FUN_02003C10(); - FUN_0201B5CC(gUnknown21C48B8.unk20); - } + FUN_02022294(); + FUN_0201259C(); + FUN_02000DF4(); + FUN_02002C14(); + FUN_02002C50(0, 3); + FUN_02002C50(1, 3); + FUN_02002C50(3, 3); + gBacklightTop.unk18 = -1; + gBacklightTop.unk20 = FUN_0202254C(); + FUN_02003B98(FUN_02029EF8(gBacklightTop.unk20), LoadPlayerDataAddress(gBacklightTop.unk20)); + FUN_02020AFC(); + if (FUN_020337E8(3) == 3) + FUN_02034188(3, 0); + if (FUN_020227FC(gBacklightTop.unk20) == 0) + { + FUN_02089D90(0); + } + else + { + switch (gUnk027FFC20) + { + case 0: + gBacklightTop.unk1C = 0; + FUN_02000E7C(&CONST_3F, &gUnk021DBE18); + break; + case 1: + gBacklightTop.unk1C = 1; + FUN_02000E7C(&CONST_34, &gUnk021D76C8); + break; + default: + ErrorHandling(); + break; + } + } + gUnknown21C48B8.unk6C = 1; + gUnknown21C48B8.unk30 = 0; + FUN_02000FA4(); + FUN_0200A2AC(); + FUN_02015E30(); + gBacklightTop.unk4 = 0; + for (;;) + { + FUN_02000EE8(); + FUN_02000FE8(); + FUN_02016464(); + if ((gUnknown21C48B8.unk38 & 0x30C) == 0x30C && !gUnk021C4918.unk8) // soft reset? + { + FUN_02000F18(0); // soft reset? + } + if (FUN_0202FB80()) + { + FUN_02000E0C(); + FUN_0201B5CC(gUnknown21C48B8.unk18); + FUN_0201B5CC(gUnknown21C48B8.unk24); + if (!gUnknown21C48B8.unk30) + { + OS_WaitIrq(1, 1); + gUnknown21C48B8.unk2C++; + } + } + FUN_020125D4(); + FUN_02015E60(); + FUN_020222C4(); + FUN_0201B5CC(gUnknown21C48B8.unk24); + OS_WaitIrq(1, 1); + gUnknown21C48B8.unk2C++; + gUnknown21C48B8.unk30 = 0; + FUN_0200A318(); + FUN_0200E2D8(); + if (gUnknown21C48B8.unk0) + gUnknown21C48B8.unk0(gUnknown21C48B8.unk4); + FUN_02003C10(); + FUN_0201B5CC(gUnknown21C48B8.unk20); + } } \ No newline at end of file diff --git a/undefined_syms.txt b/undefined_syms.txt index 6cbeafd3..d2a0c6e8 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -17,18 +17,18 @@ FUN_0201259C = 0x0201259C; FUN_020125D4 = 0x020125D4; FUN_02015E30 = 0x02015E30; FUN_02015E60 = 0x02015E60; -FUN_02016148 = 0x02016148; +InitGraphicMemory = 0x02016148; FUN_020163BC = 0x020163BC; FUN_02016438 = 0x02016438; FUN_02016464 = 0x02016464; FUN_0201B5CC = 0x0201B5CC; FUN_02020AFC = 0x02020AFC; -FUN_02020C2C = 0x02020C2C; +ErrorHandling = 0x02020C2C; FUN_02022294 = 0x02022294; FUN_020222C4 = 0x020222C4; FUN_0202254C = 0x0202254C; FUN_020227FC = 0x020227FC; -FUN_02023900 = 0x02023900; +LoadPlayerDataAddress = 0x02023900; FUN_02029EF8 = 0x02029EF8; FUN_0202FB80 = 0x0202FB80; FUN_020337E8 = 0x020337E8; @@ -318,7 +318,7 @@ FUN_020C9418 = 0x020C9418; FUN_020C9480 = 0x020C9480; FUN_020C94E8 = 0x020C94E8; FUN_020C9550 = 0x020C9550; -FUN_020C9C0C = 0x020C9C0C; +OS_WaitIrq = 0x020C9C0C; FUN_020C9E14 = 0x020C9E14; FUN_020C9E5C = 0x020C9E5C; FUN_020C9FEC = 0x020C9FEC; @@ -394,7 +394,7 @@ FUN_020D47CC = 0x020D47CC; FUN_020D4980 = 0x020D4980; FUN_020D4A5C = 0x020D4A5C; FUN_020D4E68 = 0x020D4E68; -FUN_020D50D8 = 0x020D50D8; +PM_GetBackLight = 0x020D50D8; FUN_020D5150 = 0x020D5150; FUN_020D5168 = 0x020D5168; FUN_020D5180 = 0x020D5180; @@ -904,8 +904,8 @@ FUN_02252538 = 0x02252538; FUN_022567E0 = 0x022567E0; CONST_3F = 0x0000003F; CONST_34 = 0x00000034; -gUnknown2106FA0 = 0x2106FA0; -gUnknown2106FA0_2 = 0x2106FA0; +gBacklightTop = 0x2106FA0; +gBacklightTop_2 = 0x2106FA0; gUnknown2106FB8 = 0x2106FB8; gUnknown21C48B8 = 0x21C48B8; gUnk021C4918 = 0x21C4918; -- cgit v1.2.3 From 95090b7c1f27818f5f01d7b1da2296a6887d03a9 Mon Sep 17 00:00:00 2001 From: Mor Date: Sat, 18 Apr 2020 18:29:07 +0300 Subject: fixed struct definition indentation --- src/main.c | 62 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/src/main.c b/src/main.c index fa31dde5..d703331d 100644 --- a/src/main.c +++ b/src/main.c @@ -8,38 +8,38 @@ typedef signed long s32; struct Unk2106FA0 { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - s32 unk20; + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; }; struct Unk21C48B8 { - void (*unk0)(s32); - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - s32 unk20; - s32 unk24; - s32 unk28; - s32 unk2C; - s32 unk30; - s32 unk34; - s32 unk38; - u8 filler3C[0xC]; - s32 unk48; - u8 filler4C[0x20]; - s32 unk6C; + void (*unk0)(s32); + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + s32 unk28; + s32 unk2C; + s32 unk30; + s32 unk34; + s32 unk38; + u8 filler3C[0xC]; + s32 unk48; + u8 filler4C[0x20]; + s32 unk6C; }; extern struct Unk2106FA0 gBacklightTop; @@ -49,9 +49,9 @@ extern struct Unk21C48B8 gUnknown21C48B8; extern s32 gUnk027FFC20; extern struct { - s32 unk0; - s32 unk4; - u8 unk8; + s32 unk0; + s32 unk4; + u8 unk8; } gUnk021C4918; extern void PM_GetBackLight(); -- cgit v1.2.3 From 5b9de5ddbda1e61fd405c8837e684048e81a1ffb Mon Sep 17 00:00:00 2001 From: Mor Date: Sat, 18 Apr 2020 23:17:10 +0300 Subject: initial disasm of FUN_020C9C0C --- asm/FUN_020C9C0C.s | 14437 +++++++++++++++++++++++++++++++++++++++++---------- asm/rom2.s | 3 +- asm/secure.s | 10 +- undefined_syms.txt | 15 + 4 files changed, 11777 insertions(+), 2688 deletions(-) diff --git a/asm/FUN_020C9C0C.s b/asm/FUN_020C9C0C.s index ec92f002..50fcd3d5 100644 --- a/asm/FUN_020C9C0C.s +++ b/asm/FUN_020C9C0C.s @@ -5,1031 +5,4659 @@ .text +.extern FUN_020005F2 +.extern FUN_020EBBE8 +.extern FUN_020EBC80 +.extern FUN_020EBC80 +.extern FUN_020EBC80 +.extern FUN_020DBC80 +.extern FUN_020D7228 +.extern FUN_020D5764 +.extern FUN_020EBBE8 +.extern FUN_020D7228 +.extern FUN_020D66C0 +.extern FUN_020D72AC +.extern FUN_02000950 +.extern FUN_020D5338 +.extern FUN_020D5338 +.extern FUN_020D66E0 +.extern FUN_020CD380 +.extern FUN_020D58C4 +.extern FUN_020D5374 +.extern FUN_020D5498 +.extern FUN_01FF857C +.extern FUN_01FF84E4 +.extern FUN_01FF85F0 + + arm_func_start OS_WaitIrq -OS_WaitIrq: ; 0x020C9C0C +OS_WaitIrq: + stmdb sp!, {r4-r6,lr} + mov r5, r0 + mov r4, r1 + bl OS_DisableInterrupts + + arm_func_start FUN_020C9C1C +FUN_020C9C1C: ; 0x020C9C1C + cmp r5, #0x0 + beq _020C9C3C + ldr r1, _020C9C80 ; =0x027E0000 + mvn r2, r4 + add r1, r1, #0x3000 + ldr r3, [r1, #0xff8] + and r2, r3, r2 + str r2, [r1, #0xff8] +_020C9C3C: + bl OS_RestoreInterrupts + ldr r1, _020C9C80 ; =0x027E0000 + add r0, r1, #0x3000 + ldr r0, [r0, #0xff8] + ands r0, r4, r0 + ldmneia sp!, {r4-r6,lr} + bxne lr + ldr r0, _020C9C84 ; =0x00003FF8 + add r6, r1, r0 + ldr r5, _020C9C88 ; =0x027E0060 +_020C9C64: + mov r0, r5 + bl OS_SleepThread + + arm_func_start FUN_020C9C6C +FUN_020C9C6C: ; 0x020C9C6C + ldr r0, [r6, #0x0] + ands r0, r4, r0 + beq _020C9C64 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020C9C80: .word 0x027E0000 +_020C9C84: .word 0x00003FF8 +_020C9C88: .word 0x027E0060 + + arm_func_start OSi_IrqTimer3 +OSi_IrqTimer3: ; 0x020C9C8C + ldr ip, _020C9C98 ; =OSi_IrqCallback + mov r0, #0x7 + bx r12 + .balign 4 +_020C9C98: .word OSi_IrqCallback + + arm_func_start OSi_IrqTimer2 +OSi_IrqTimer2: ; 0x020C9C9C + ldr ip, _020C9CA8 ; =OSi_IrqCallback + mov r0, #0x6 + bx r12 + .balign 4 +_020C9CA8: .word OSi_IrqCallback + + arm_func_start OSi_IrqTimer1 +OSi_IrqTimer1: ; 0x020C9CAC + ldr ip, _020C9CB8 ; =OSi_IrqCallback + mov r0, #0x5 + bx r12 + .balign 4 +_020C9CB8: .word OSi_IrqCallback + + arm_func_start OSi_IrqTimer0 +OSi_IrqTimer0: ; 0x020C9CBC + ldr ip, _020C9CC8 ; =OSi_IrqCallback + mov r0, #0x4 + bx r12 + .balign 4 +_020C9CC8: .word OSi_IrqCallback + + arm_func_start OSi_IrqDma3 +OSi_IrqDma3: ; 0x020C9CCC + ldr ip, _020C9CD8 ; =OSi_IrqCallback + mov r0, #0x3 + bx r12 + .balign 4 +_020C9CD8: .word OSi_IrqCallback + + arm_func_start OSi_IrqDma2 +OSi_IrqDma2: ; 0x020C9CDC + ldr ip, _020C9CE8 ; =OSi_IrqCallback + mov r0, #0x2 + bx r12 + .balign 4 +_020C9CE8: .word OSi_IrqCallback + + arm_func_start OSi_IrqDma1 +OSi_IrqDma1: ; 0x020C9CEC + ldr ip, _020C9CF8 ; =OSi_IrqCallback + mov r0, #0x1 + bx r12 + .balign 4 +_020C9CF8: .word OSi_IrqCallback + + arm_func_start OSi_IrqDma0 +OSi_IrqDma0: ; 0x020C9CFC + ldr ip, _020C9D08 ; =OSi_IrqCallback + mov r0, #0x0 + bx r12 + .balign 4 +_020C9D08: .word OSi_IrqCallback + + arm_func_start OSi_IrqCallback +OSi_IrqCallback: ; 0x020C9D0C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r1, #0xc + mul r4, r0, r1 + ldr r2, _020C9D94 ; =0x021D341C + ldr r3, _020C9D98 ; =0x02106818 + mov r0, r0, lsl #0x1 + ldr r1, [r2, r4] + ldrh r3, [r3, r0] + mov r5, #0x1 + mov r0, #0x0 + str r0, [r2, r4] + cmp r1, #0x0 + mov r5, r5, lsl r3 + beq _020C9D54 + ldr r0, _020C9D9C ; =0x021D3424 + ldr r0, [r0, r4] + blx r1 +_020C9D54: + ldr r0, _020C9DA0 ; =0x027E0000 + ldr r1, _020C9DA4 ; =0x021D3420 + add r0, r0, #0x3000 + ldr r2, [r0, #0xff8] + orr r2, r2, r5 + str r2, [r0, #0xff8] + ldr r0, [r1, r4] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r0, r5 + bl OS_DisableIrqMask + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020C9D94: .word 0x021D341C +_020C9D98: .word 0x02106818 +_020C9D9C: .word 0x021D3424 +_020C9DA0: .word 0x027E0000 +_020C9DA4: .word 0x021D3420 + + arm_func_start OS_IrqDummy +OS_IrqDummy: ; 0x020C9DA8 + bx lr + + arm_func_start OS_SetIrqStackChecker +OS_SetIrqStackChecker: ; 0x020C9DAC + ldr ip, _020C9DD0 ; =0x027E0000 + ldr r3, _020C9DD4 ; =0xFDDB597D + add r0, r12, #0x3000 + ldr r2, _020C9DD8 ; =0x7BF9DD5B + ldr r1, _020C9DDC ; =0x00000400 + str r3, [r0, #0xf7c] + add r0, r12, #0x3f80 + str r2, [r0, -r1] + bx lr + .balign 4 +_020C9DD0: .word 0x027E0000 +_020C9DD4: .word 0xFDDB597D +_020C9DD8: .word 0x7BF9DD5B +_020C9DDC: .word 0x00000400 + + arm_func_start OS_ResetRequestIrqMask +OS_ResetRequestIrqMask: ; 0x020C9DE0 + ldr ip, _020C9E0C ; =0x04000208 + mov r1, #0x0 + ldrh r3, [r12, #0x0] + ldr r2, _020C9E10 ; =0x04000214 + strh r1, [r12, #0x0] + ldr r1, [r2, #0x0] + str r0, [r2, #0x0] + ldrh r0, [r12, #0x0] + mov r0, r1 + strh r3, [r12, #0x0] + bx lr + .balign 4 +_020C9E0C: .word 0x04000208 +_020C9E10: .word 0x04000214 + + arm_func_start OS_DisableIrqMask +OS_DisableIrqMask: ; 0x020C9E14 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr lr, _020C9E54 ; =0x04000208 + mov r3, #0x0 + ldrh r12, [lr, #0x0] + ldr r2, _020C9E58 ; =0x04000210 + mvn r1, r0 + strh r3, [lr, #0x0] + ldr r0, [r2, #0x0] + and r1, r0, r1 + str r1, [r2, #0x0] + ldrh r1, [lr, #0x0] + strh r12, [lr, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020C9E54: .word 0x04000208 +_020C9E58: .word 0x04000210 + + arm_func_start OS_EnableIrqMask +OS_EnableIrqMask: ; 0x020C9E5C + ldr ip, _020C9E8C ; =0x04000208 + mov r1, #0x0 + ldrh r3, [r12, #0x0] + ldr r2, _020C9E90 ; =0x04000210 + strh r1, [r12, #0x0] + ldr r1, [r2, #0x0] + orr r0, r1, r0 + str r0, [r2, #0x0] + ldrh r0, [r12, #0x0] + mov r0, r1 + strh r3, [r12, #0x0] + bx lr + .balign 4 +_020C9E8C: .word 0x04000208 +_020C9E90: .word 0x04000210 + + arm_func_start OS_SetIrqMask +OS_SetIrqMask: ; 0x020C9E94 + ldr ip, _020C9EC0 ; =0x04000208 + mov r1, #0x0 + ldrh r3, [r12, #0x0] + ldr r2, _020C9EC4 ; =0x04000210 + strh r1, [r12, #0x0] + ldr r1, [r2, #0x0] + str r0, [r2, #0x0] + ldrh r0, [r12, #0x0] + mov r0, r1 + strh r3, [r12, #0x0] + bx lr + .balign 4 +_020C9EC0: .word 0x04000208 +_020C9EC4: .word 0x04000210 + + arm_func_start OSi_EnterTimerCallback +OSi_EnterTimerCallback: ; 0x020C9EC8 + stmdb sp!, {r4,lr} + mov r3, #0xc + mul r4, r0, r3 + ldr ip, _020C9F08 ; =0x021D344C + add r0, r0, #0x3 + mov r3, #0x1 + mov r0, r3, lsl r0 + ldr r3, _020C9F0C ; =0x021D3454 + str r1, [r12, r4] + str r2, [r3, r4] + bl OS_EnableIrqMask + ldr r0, _020C9F10 ; =0x021D3450 + mov r1, #0x1 + str r1, [r0, r4] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020C9F08: .word 0x021D344C +_020C9F0C: .word 0x021D3454 +_020C9F10: .word 0x021D3450 + + arm_func_start OSi_EnterDmaCallback +OSi_EnterDmaCallback: ; 0x020C9F14 + stmdb sp!, {r4-r6,lr} + mov r3, #0xc + mul r6, r0, r3 + ldr ip, _020C9F54 ; =0x021D341C + add r4, r0, #0x8 + mov r5, #0x1 + mov r0, r5, lsl r4 + ldr r3, _020C9F58 ; =0x021D3424 + str r1, [r12, r6] + str r2, [r3, r6] + bl OS_EnableIrqMask + and r1, r0, r5, lsl r4 + ldr r0, _020C9F5C ; =0x021D3420 + str r1, [r0, r6] + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020C9F54: .word 0x021D341C +_020C9F58: .word 0x021D3424 +_020C9F5C: .word 0x021D3420 + + arm_func_start OS_GetIrqFunction +OS_GetIrqFunction: ; 0x020C9F60 + ldr r2, _020C9FE4 ; =0x027E0000 + mov r3, #0x0 +_020C9F68: + ands r1, r0, #0x1 + beq _020C9FC8 + cmp r3, #0x8 + blt _020C9F98 + cmp r3, #0xb + bgt _020C9F98 + sub r1, r3, #0x8 + mov r0, #0xc + mul r2, r1, r0 + ldr r0, _020C9FE8 ; =0x021D341C + ldr r0, [r0, r2] + bx lr +_020C9F98: + cmp r3, #0x3 + blt _020C9FC0 + cmp r3, #0x6 + bgt _020C9FC0 + add r1, r3, #0x1 + mov r0, #0xc + mul r2, r1, r0 + ldr r0, _020C9FE8 ; =0x021D341C + ldr r0, [r0, r2] + bx lr +_020C9FC0: + ldr r0, [r2, #0x0] + bx lr +_020C9FC8: + add r3, r3, #0x1 + cmp r3, #0x16 + mov r0, r0, lsr #0x1 + add r2, r2, #0x4 + blt _020C9F68 + mov r0, #0x0 + bx lr + .balign 4 +_020C9FE4: .word 0x027E0000 +_020C9FE8: .word 0x021D341C + + arm_func_start OS_SetIrqFunction +OS_SetIrqFunction: ; 0x020C9FEC + stmdb sp!, {r4-r8,lr} + mov r8, #0x0 + ldr lr, _020CA074 ; =0x027E0000 + ldr r5, _020CA078 ; =0x021D341C + mov r6, r8 + mov r12, r8 + mov r3, #0x1 + mov r2, #0xc +_020CA00C: + ands r4, r0, #0x1 + beq _020CA05C + mov r7, r6 + cmp r8, #0x8 + blt _020CA030 + cmp r8, #0xb + suble r4, r8, #0x8 + mlale r7, r4, r2, r5 + ble _020CA04C +_020CA030: + cmp r8, #0x3 + blt _020CA048 + cmp r8, #0x6 + addle r4, r8, #0x1 + mlale r7, r4, r2, r5 + ble _020CA04C +_020CA048: + str r1, [lr, r8, lsl #0x2] +_020CA04C: + cmp r7, #0x0 + strne r1, [r7, #0x0] + strne r12, [r7, #0x8] + strne r3, [r7, #0x4] +_020CA05C: + add r8, r8, #0x1 + cmp r8, #0x16 + mov r0, r0, lsr #0x1 + blt _020CA00C + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020CA074: .word 0x027E0000 +_020CA078: .word 0x021D341C + + arm_func_start OS_InitIrqTable +OS_InitIrqTable: ; 0x020CA07C + ldr r0, _020CA090 ; =0x027E0060 + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [r0, #0x0] + bx lr + .balign 4 +_020CA090: .word 0x027E0060 + + arm_func_start OS_UnlockCartridge +OS_UnlockCartridge: ; 0x020CA094 + ldr r1, _020CA09C ; =OS_UnlockCartridge2 + bx r1 + .balign 4 +_020CA09C: .word OS_UnlockCartridge2 + + arm_func_start OS_GetLockID +OS_GetLockID: ; 0x020CA0A0 + ldr r3, _020CA0F0 ; =0x027FFFB0 + ldr r1, [r3, #0x0] + clz r2, r1 + cmp r2, #0x20 + movne r0, #0x40 + bne _020CA0D4 + add r3, r3, #0x4 + ldr r1, [r3, #0x0] + clz r2, r1 + cmp r2, #0x20 + ldr r0, _020CA0F4 ; =0xFFFFFFFD + bxeq lr + mov r0, #0x60 +_020CA0D4: + add r0, r0, r2 + mov r1, #0x80000000 + mov r1, r1, lsr r2 + ldr r2, [r3, #0x0] + bic r2, r2, r1 + str r2, [r3, #0x0] + bx lr + .balign 4 +_020CA0F0: .word 0x027FFFB0 +_020CA0F4: .word 0xFFFFFFFD + + arm_func_start OS_ReleaseLockID +OS_ReleaseLockID: ; 0x020CA0F8 + ldr r3, _020CA124 ; =0x027FFFB0 + cmp r0, #0x60 + addpl r3, r3, #0x4 + subpl r0, r0, #0x60 + submi r0, r0, #0x40 + mov r1, #0x80000000 + mov r1, r1, lsr r0 + ldr r2, [r3, #0x0] + orr r2, r2, r1 + str r2, [r3, #0x0] + bx lr + .balign 4 +_020CA124: .word 0x027FFFB0 + + arm_func_start OS_ReadOwnerOfLockWord +OS_ReadOwnerOfLockWord: ; 0x020CA128 + ldrh r0, [r0, #0x4] + bx lr + + arm_func_start OSi_FreeCardBus +OSi_FreeCardBus: ; 0x020CA130 + ldr r1, _020CA144 ; =0x04000204 + ldrh r0, [r1, #0x0] + orr r0, r0, #0x800 + strh r0, [r1, #0x0] + bx lr + .balign 4 +_020CA144: .word 0x04000204 + + arm_func_start OSi_AllocateCardBus +OSi_AllocateCardBus: ; 0x020CA148 + ldr r1, _020CA15C ; =0x04000204 + ldrh r0, [r1, #0x0] + bic r0, r0, #0x800 + strh r0, [r1, #0x0] + bx lr + .balign 4 +_020CA15C: .word 0x04000204 + + arm_func_start OS_UnlockCard +OS_UnlockCard: ; 0x020CA160 + ldr ip, _020CA170 ; =OS_UnlockByWord + ldr r1, _020CA174 ; =0x027FFFE0 + ldr r2, _020CA178 ; =OSi_FreeCardBus + bx r12 + .balign 4 +_020CA170: .word OS_UnlockByWord +_020CA174: .word 0x027FFFE0 +_020CA178: .word OSi_FreeCardBus + + arm_func_start OS_TryLockCard +OS_TryLockCard: ; 0x020CA17C + ldr ip, _020CA18C ; =OS_TryLockByWord + ldr r1, _020CA190 ; =0x027FFFE0 + ldr r2, _020CA194 ; =OSi_AllocateCardBus + bx r12 + .balign 4 +_020CA18C: .word OS_TryLockByWord +_020CA190: .word 0x027FFFE0 +_020CA194: .word OSi_AllocateCardBus + + arm_func_start OSi_FreeCartridgeBus +OSi_FreeCartridgeBus: ; 0x020CA198 + ldr r1, _020CA1AC ; =0x04000204 + ldrh r0, [r1, #0x0] + orr r0, r0, #0x80 + strh r0, [r1, #0x0] + bx lr + .balign 4 +_020CA1AC: .word 0x04000204 + + arm_func_start OSi_AllocateCartridgeBus +OSi_AllocateCartridgeBus: ; 0x020CA1B0 + ldr r1, _020CA1C4 ; =0x04000204 + ldrh r0, [r1, #0x0] + bic r0, r0, #0x80 + strh r0, [r1, #0x0] + bx lr + .balign 4 +_020CA1C4: .word 0x04000204 + + arm_func_start OS_TryLockCartridge +OS_TryLockCartridge: ; 0x020CA1C8 + ldr ip, _020CA1DC ; =OSi_DoTryLockByWord + ldr r1, _020CA1E0 ; =0x027FFFE8 + ldr r2, _020CA1E4 ; =OSi_AllocateCartridgeBus + mov r3, #0x1 + bx r12 + .balign 4 +_020CA1DC: .word OSi_DoTryLockByWord +_020CA1E0: .word 0x027FFFE8 +_020CA1E4: .word OSi_AllocateCartridgeBus + + arm_func_start OS_UnlockCartridge2 +OS_UnlockCartridge2: ; 0x020CA1E8 + ldr ip, _020CA1FC ; =FUN_020CA2B8 + ldr r1, _020CA200 ; =0x027FFFE8 + ldr r2, _020CA204 ; =OSi_FreeCartridgeBus + mov r3, #0x1 + bx r12 + .balign 4 +_020CA1FC: .word FUN_020CA2B8 +_020CA200: .word 0x027FFFE8 +_020CA204: .word OSi_FreeCartridgeBus + + arm_func_start OS_LockCartridge +OS_LockCartridge: ; 0x020CA208 + ldr ip, _020CA21C ; =FUN_020CA358 + ldr r1, _020CA220 ; =0x027FFFE8 + ldr r2, _020CA224 ; =OSi_AllocateCartridgeBus + mov r3, #0x1 + bx r12 + .balign 4 +_020CA21C: .word FUN_020CA358 +_020CA220: .word 0x027FFFE8 +_020CA224: .word OSi_AllocateCartridgeBus + + arm_func_start OSi_DoTryLockByWord +OSi_DoTryLockByWord: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + movs r6, r3 + mov r9, r0 + mov r8, r1 + mov r7, r2 + beq _020CA250 + bl OS_DisableInterrupts_IrqAndFiq + mov r5, r0 + b _020CA258 +_020CA250: + bl OS_DisableInterrupts + mov r5, r0 +_020CA258: + mov r0, r9 + mov r1, r8 + bl MI_SwapWord + movs r4, r0 + bne _020CA27C + cmp r7, #0x0 + beq _020CA278 + blx r7 +_020CA278: + strh r9, [r8, #0x4] +_020CA27C: + cmp r6, #0x0 + beq _020CA290 + mov r0, r5 + bl OS_RestoreInterrupts_IrqAndFiq + b _020CA298 +_020CA290: + mov r0, r5 + bl OS_RestoreInterrupts +_020CA298: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start OS_UnlockByWord +OS_UnlockByWord: ; 0x020CA2A8 + ldr ip, _020CA2B4 ; =FUN_020CA2B8 + mov r3, #0x0 + bx r12 + .balign 4 +_020CA2B4: .word FUN_020CA2B8 + + arm_func_start FUN_020CA2B8 +FUN_020CA2B8: ; 0x020CA2B8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r1 + ldrh r1, [r7, #0x4] + mov r6, r2 + mov r5, r3 + cmp r0, r1 + addne sp, sp, #0x4 + mvnne r0, #0x1 + ldmneia sp!, {r4-r7,lr} + bxne lr + cmp r5, #0x0 + beq _020CA2F8 + bl OS_DisableInterrupts_IrqAndFiq + mov r4, r0 + b _020CA300 +_020CA2F8: + bl OS_DisableInterrupts + mov r4, r0 +_020CA300: + mov r0, #0x0 + strh r0, [r7, #0x4] + cmp r6, #0x0 + beq _020CA314 + blx r6 +_020CA314: + mov r0, #0x0 + str r0, [r7, #0x0] + cmp r5, #0x0 + beq _020CA330 + mov r0, r4 + bl OS_RestoreInterrupts_IrqAndFiq + b _020CA338 +_020CA330: + mov r0, r4 + bl OS_RestoreInterrupts +_020CA338: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start OS_TryLockByWord +OS_TryLockByWord: ; 0x020CA348 + ldr ip, _020CA354 ; =FUN_020CA358 + mov r3, #0x0 + bx r12 + .balign 4 +_020CA354: .word FUN_020CA358 + + arm_func_start FUN_020CA358 +FUN_020CA358: ; 0x020CA358 + stmdb sp!, {r4-r8,lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl OSi_DoTryLockByWord + + arm_func_start FUN_020CA370 +FUN_020CA370: ; 0x020CA370 + cmp r0, #0x0 + ldmleia sp!, {r4-r8,lr} + bxle lr + mov r4, #0x400 +_020CA380: + mov r0, r4 + blx FUN_020005F2 + mov r0, r8 + mov r1, r7 + mov r2, r6 + mov r3, r5 + bl OSi_DoTryLockByWord + + arm_func_start FUN_020CA39C +FUN_020CA39C: ; 0x020CA39C + cmp r0, #0x0 + bgt _020CA380 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start OS_InitLock +OS_InitLock: ; 0x020CA3AC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020CA484 ; =0x021D347C + ldr r1, [r0, #0x0] + cmp r1, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r2, #0x1 + ldr r1, _020CA488 ; =0x027FFFF0 + str r2, [r0, #0x0] + mov r2, #0x0 + mov r0, #0x7e + str r2, [r1, #0x0] + bl OS_TryLockByWord + ldr r5, _020CA488 ; =0x027FFFF0 + ldrh r0, [r5, #0x6] + cmp r0, #0x0 + beq _020CA410 + mov r4, #0x400 +_020CA3FC: + mov r0, r4 + blx FUN_020005F2 + ldrh r0, [r5, #0x6] + cmp r0, #0x0 + bne _020CA3FC +_020CA410: + ldr r2, _020CA48C ; =0x027FFFB0 + mvn r12, #0x0 + mov r0, #0x10000 + ldr r3, _020CA490 ; =0x027FFFB4 + ldr r1, _020CA494 ; =0x027FFFC0 + str r12, [r2, #0x0] + rsb r12, r0, #0x0 + mov r0, #0x0 + mov r2, #0x28 + str r12, [r3, #0x0] + bl MIi_CpuClear32 + ldr ip, _020CA498 ; =0x04000204 + ldr r1, _020CA488 ; =0x027FFFF0 + ldrh r3, [r12, #0x0] + mov r0, #0x7e + mov r2, #0x0 + orr r3, r3, #0x800 + strh r3, [r12, #0x0] + ldrh r3, [r12, #0x0] + orr r3, r3, #0x80 + strh r3, [r12, #0x0] + bl OS_UnlockByWord + ldr r1, _020CA488 ; =0x027FFFF0 + mov r0, #0x7f + mov r2, #0x0 + bl OS_TryLockByWord + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CA484: .word 0x021D347C +_020CA488: .word 0x027FFFF0 +_020CA48C: .word 0x027FFFB0 +_020CA490: .word 0x027FFFB4 +_020CA494: .word 0x027FFFC0 +_020CA498: .word 0x04000204 + + arm_func_start OS_VSNPrintf +OS_VSNPrintf: ; 0x020CA49C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x64 + mov r9, r2 + str r1, [sp, #0x54] + str r0, [sp, #0x5c] + str r0, [sp, #0x58] + ldrsb r0, [r9, #0x0] + str r1, [sp, #0x0] + mov r11, r3 + cmp r0, #0x0 + beq _020CAD18 + mov r0, #0xa + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x4] + mov r0, #0x20 + str r0, [sp, #0x1c] + mov r0, #0x30 + str r0, [sp, #0x20] + mvn r0, #0x0 + str r0, [sp, #0x8] + mov r0, #0x57 + str r0, [sp, #0x10] + mov r0, #0x8 + str r0, [sp, #0x14] + mov r0, #0x37 + str r0, [sp, #0x18] + mov r0, #0x10 + str r0, [sp, #0x24] + mov r0, #0x1 + str r0, [sp, #0x28] + mov r0, #0x2b + str r0, [sp, #0x34] + mov r0, #0x2d + str r0, [sp, #0x30] + mov r0, #0x2 + str r0, [sp, #0x2c] +_020CA530: + ldrsb r1, [r9, #0x0] + and r0, r1, #0xff + eor r0, r0, #0x20 + sub r0, r0, #0xa1 + cmp r0, #0x3c + bhs _020CA56C + add r0, sp, #0x54 + bl string_put_char + ldrsb r1, [r9, #0x1]! + cmp r1, #0x0 + beq _020CAD0C + add r0, sp, #0x54 + add r9, r9, #0x1 + bl string_put_char + b _020CAD0C +_020CA56C: + cmp r1, #0x25 + beq _020CA584 + add r0, sp, #0x54 + add r9, r9, #0x1 + bl string_put_char + b _020CAD0C +_020CA584: + ldr r6, [sp, #0x4] + ldr r5, [sp, #0x8] + ldr r2, [sp, #0xc] + ldr r0, [sp, #0x10] + mov r10, r6 + mov r3, r9 +_020CA59C: + ldrsb r4, [r9, #0x1]! + cmp r4, #0x20 + bgt _020CA5B4 + cmp r4, #0x20 + beq _020CA5F4 + b _020CA60C +_020CA5B4: + cmp r4, #0x30 + bgt _020CA60C + cmp r4, #0x2b + blt _020CA60C + cmp r4, #0x2b + beq _020CA5E0 + cmp r4, #0x2d + beq _020CA5FC + cmp r4, #0x30 + beq _020CA604 + b _020CA60C +_020CA5E0: + ldrsb r1, [r9, #-0x1] + cmp r1, #0x20 + bne _020CA60C + orr r6, r6, #0x2 + b _020CA59C +_020CA5F4: + orr r6, r6, #0x1 + b _020CA59C +_020CA5FC: + orr r6, r6, #0x8 + b _020CA59C +_020CA604: + orr r6, r6, #0x10 + b _020CA59C +_020CA60C: + cmp r4, #0x2a + bne _020CA640 + add r11, r11, #0x4 + ldr r10, [r11, #-0x4] + add r9, r9, #0x1 + cmp r10, #0x0 + rsblt r10, r10, #0x0 + orrlt r6, r6, #0x8 + b _020CA654 +_020CA630: + ldrsb r4, [r9], #0x1 + mov r1, #0xa + mla r1, r10, r1, r4 + sub r10, r1, #0x30 +_020CA640: + ldrsb r1, [r9, #0x0] + cmp r1, #0x30 + blt _020CA654 + cmp r1, #0x39 + ble _020CA630 +_020CA654: + ldrsb r1, [r9, #0x0] + cmp r1, #0x2e + bne _020CA6AC + ldrsb r1, [r9, #0x1]! + ldr r5, [sp, #0x4] + cmp r1, #0x2a + bne _020CA698 + add r11, r11, #0x4 + ldr r5, [r11, #-0x4] + add r9, r9, #0x1 + cmp r5, #0x0 + ldrlt r5, [sp, #0x8] + b _020CA6AC +_020CA688: + ldrsb r4, [r9], #0x1 + mov r1, #0xa + mla r1, r5, r1, r4 + sub r5, r1, #0x30 +_020CA698: + ldrsb r1, [r9, #0x0] + cmp r1, #0x30 + blt _020CA6AC + cmp r1, #0x39 + ble _020CA688 +_020CA6AC: + ldrsb r1, [r9, #0x0] + cmp r1, #0x68 + beq _020CA6C4 + cmp r1, #0x6c + beq _020CA6DC + b _020CA6F0 +_020CA6C4: + ldrsb r1, [r9, #0x1]! + cmp r1, #0x68 + orrne r6, r6, #0x40 + addeq r9, r9, #0x1 + orreq r6, r6, #0x100 + b _020CA6F0 +_020CA6DC: + ldrsb r1, [r9, #0x1]! + cmp r1, #0x6c + orrne r6, r6, #0x20 + addeq r9, r9, #0x1 + orreq r6, r6, #0x80 +_020CA6F0: + ldrsb r1, [r9, #0x0] + cmp r1, #0x69 + bgt _020CA740 + cmp r1, #0x63 + blt _020CA720 + cmp r1, #0x63 + beq _020CA7B4 + cmp r1, #0x64 + beq _020CA96C + cmp r1, #0x69 + beq _020CA96C + b _020CA950 +_020CA720: + cmp r1, #0x25 + bgt _020CA734 + cmp r1, #0x25 + beq _020CA934 + b _020CA950 +_020CA734: + cmp r1, #0x58 + beq _020CA7A0 + b _020CA950 +_020CA740: + cmp r1, #0x6e + bgt _020CA754 + cmp r1, #0x6e + beq _020CA8DC + b _020CA950 +_020CA754: + sub r1, r1, #0x6f + cmp r1, #0x9 + addls pc, pc, r1, lsl #0x2 + b _020CA950 +_020CA764: + .byte 0x08, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x77, 0x00, 0x00, 0xEA + .byte 0x76, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA, 0x74, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA + .byte 0x72, 0x00, 0x00, 0xEA, 0x71, 0x00, 0x00, 0xEA, 0x75, 0x00, 0x00, 0xEA, 0x14, 0x20, 0x9D, 0xE5 + .byte 0x01, 0x6A, 0x86, 0xE3, 0x74, 0x00, 0x00, 0xEA, 0x01, 0x6A, 0x86, 0xE3, 0x72, 0x00, 0x00, 0xEA +_020CA7A0: + ldr r0, [sp, #0x18] + b _020CA964 +_020CA7A8: + .byte 0x04, 0x60, 0x86, 0xE3, 0x14, 0x50, 0x9D, 0xE5 + .byte 0x6B, 0x00, 0x00, 0xEA +_020CA7B4: + cmp r5, #0x0 + bge _020CA950 + ands r0, r6, #0x8 + add r11, r11, #0x4 + ldr r4, [r11, #-0x4] + beq _020CA7F0 + mov r0, r4, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_put_char + ldr r1, [sp, #0x1c] + sub r2, r10, #0x1 + add r0, sp, #0x54 + bl string_fill_char + b _020CA820 +_020CA7F0: + ands r0, r6, #0x10 + ldrne r0, [sp, #0x20] + sub r2, r10, #0x1 + ldreq r0, [sp, #0x1c] + mov r0, r0, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_fill_char + mov r0, r4, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_put_char +_020CA820: + add r9, r9, #0x1 + b _020CAD0C +_020CA828: + .byte 0x04, 0xB0, 0x8B, 0xE2, 0x00, 0x00, 0x55, 0xE3 + .byte 0x04, 0x70, 0x9D, 0xE5, 0x04, 0x40, 0x1B, 0xE5, 0x08, 0x00, 0x00, 0xAA, 0xD0, 0x00, 0xD4, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x01, 0x70, 0x87, 0xE2, 0xD7, 0x00, 0x94, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x05, 0x00, 0x00, 0xEA, 0x01, 0x70, 0x87, 0xE2 + .byte 0x05, 0x00, 0x57, 0xE1, 0x02, 0x00, 0x00, 0xAA, 0xD7, 0x00, 0x94, 0xE1, 0x00, 0x00, 0x50, 0xE3 + .byte 0xF9, 0xFF, 0xFF, 0x1A, 0x08, 0x00, 0x16, 0xE2, 0x07, 0xA0, 0x4A, 0xE0, 0x08, 0x00, 0x00, 0x0A + .byte 0x04, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0x52, 0x01, 0x00, 0xEB + .byte 0x1C, 0x10, 0x9D, 0xE5, 0x0A, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0x66, 0x01, 0x00, 0xEB + .byte 0x0B, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x16, 0xE2, 0x20, 0x00, 0x9D, 0x15, 0x0A, 0x20, 0xA0, 0xE1 + .byte 0x1C, 0x00, 0x9D, 0x05, 0x00, 0x0C, 0xA0, 0xE1, 0x40, 0x1C, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2 + .byte 0x5D, 0x01, 0x00, 0xEB, 0x04, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2 + .byte 0x41, 0x01, 0x00, 0xEB, 0x01, 0x90, 0x89, 0xE2, 0x0B, 0x01, 0x00, 0xEA +_020CA8DC: + ands r0, r6, #0x100 + ldr r1, [sp, #0x58] + ldr r0, [sp, #0x5c] + sub r2, r1, r0 + bne _020CA92C + ands r0, r6, #0x40 + addne r11, r11, #0x4 + ldrne r0, [r11, #-0x4] + strneh r2, [r0, #0x0] + bne _020CA92C + ands r0, r6, #0x80 + addeq r11, r11, #0x4 + ldreq r0, [r11, #-0x4] + streq r2, [r0, #0x0] + beq _020CA92C + add r11, r11, #0x4 + ldr r0, [r11, #-0x4] + mov r1, r2, asr #0x1f + str r2, [r0, #0x0] + str r1, [r0, #0x4] +_020CA92C: + add r9, r9, #0x1 + b _020CAD0C +_020CA934: + add r0, r3, #0x1 + cmp r0, r9 + bne _020CA950 + add r0, sp, #0x54 + add r9, r9, #0x1 + bl string_put_char + b _020CAD0C +_020CA950: + add r0, sp, #0x54 + mov r1, r3 + sub r2, r9, r3 + bl string_put_string + b _020CAD0C +_020CA964: + ldr r2, [sp, #0x24] + orr r6, r6, #0x1000 +_020CA96C: + ands r1, r6, #0x8 + bicne r6, r6, #0x10 + cmp r5, #0x0 + bicge r6, r6, #0x10 + ldrlt r5, [sp, #0x28] + ldr r7, [sp, #0x4] + ands r1, r6, #0x1000 + beq _020CAA20 + ands r1, r6, #0x100 + addne r11, r11, #0x4 + ldrneb r4, [r11, #-0x4] + movne r1, #0x0 + bne _020CA9D0 + ands r1, r6, #0x40 + addne r11, r11, #0x4 + ldrneh r4, [r11, #-0x4] + movne r1, #0x0 + bne _020CA9D0 + ands r1, r6, #0x80 + addne r11, r11, #0x8 + ldrne r1, [r11, #-0x4] + ldrne r4, [r11, #-0x8] + addeq r11, r11, #0x4 + ldreq r4, [r11, #-0x4] + moveq r1, #0x0 +_020CA9D0: + bic r6, r6, #0x3 + ands r3, r6, #0x4 + beq _020CAAD8 + cmp r2, #0x10 + bne _020CAA0C + mov r3, #0x0 + cmp r1, r3 + cmpeq r4, r3 + beq _020CAAD8 + ldr r3, [sp, #0x20] + ldr r7, [sp, #0x2c] + strb r3, [sp, #0x39] + add r3, r0, #0x21 + strb r3, [sp, #0x38] + b _020CAAD8 +_020CAA0C: + cmp r2, #0x8 + ldreq r3, [sp, #0x20] + ldreq r7, [sp, #0x28] + streqb r3, [sp, #0x38] + b _020CAAD8 +_020CAA20: + ands r1, r6, #0x100 + addne r11, r11, #0x4 + ldrnesb r4, [r11, #-0x4] + movne r1, r4, asr #0x1f + bne _020CAA64 + ands r1, r6, #0x40 + addne r11, r11, #0x4 + ldrnesh r4, [r11, #-0x4] + movne r1, r4, asr #0x1f + bne _020CAA64 + ands r1, r6, #0x80 + addne r11, r11, #0x8 + ldrne r4, [r11, #-0x8] + ldrne r1, [r11, #-0x4] + addeq r11, r11, #0x4 + ldreq r4, [r11, #-0x4] + moveq r1, r4, asr #0x1f +_020CAA64: + mov r3, #0x0 + and r8, r3, #0x0 + cmp r8, r3 + and r8, r1, #0x80000000 + cmpeq r8, r3 + beq _020CAAA0 + ldr r7, [sp, #0x30] + mvn r4, r4 + strb r7, [sp, #0x38] + mvn r7, r1 + mov r1, #0x1 + adds r4, r4, r1 + adc r1, r7, r3 + ldr r7, [sp, #0x28] + b _020CAAD8 +_020CAAA0: + cmp r1, r3 + cmpeq r4, r3 + bne _020CAAB4 + cmp r5, #0x0 + beq _020CAAD8 +_020CAAB4: + ands r3, r6, #0x2 + ldrne r3, [sp, #0x34] + ldrne r7, [sp, #0x28] + strneb r3, [sp, #0x38] + bne _020CAAD8 + ands r3, r6, #0x1 + ldrne r3, [sp, #0x1c] + ldrne r7, [sp, #0x28] + strneb r3, [sp, #0x38] +_020CAAD8: + cmp r2, #0x8 + ldr r8, [sp, #0x4] + beq _020CAAF8 + cmp r2, #0xa + beq _020CAB40 + cmp r2, #0x10 + beq _020CABDC + b _020CAC28 +_020CAAF8: + mov r0, #0x0 + cmp r1, r0 + cmpeq r4, r0 + beq _020CAC28 +_020CAB08: + and r0, r4, #0x7 + add r3, r0, #0x30 + add r0, sp, #0x3a + strb r3, [r0, r8] + mov r4, r4, lsr #0x3 + mov r2, #0x0 + mov r0, r1, lsr #0x3 + orr r4, r4, r1, lsl #0x1d + cmp r0, r2 + cmpeq r4, r2 + mov r1, r0 + add r8, r8, #0x1 + bne _020CAB08 + b _020CAC28 +_020CAB40: + mov r0, #0x0 + cmp r0, r0 + cmpeq r1, r0 + bne _020CAB8C + cmp r4, #0x0 + beq _020CAC28 +_020CAB58: + ldr r0, _020CAD60 ; =0xCCCCCCCD + umull r1, r0, r4, r0 + movs r0, r0, lsr #0x3 + mov r1, #0xa + mul r1, r0, r1 + sub r1, r4, r1 + mov r4, r0 + add r1, r1, #0x30 + add r0, sp, #0x3a + strb r1, [r0, r8] + add r8, r8, #0x1 + bne _020CAB58 + b _020CAC28 +_020CAB8C: + cmp r1, r0 + cmpeq r4, r0 + beq _020CAC28 +_020CAB98: + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x4] + mov r0, r4 + bl FUN_020EBBE8 + mov r3, #0xa + umull r3, r12, r0, r3 + subs r3, r4, r3 + mov r2, #0x0 + add r4, r3, #0x30 + add r3, sp, #0x3a + strb r4, [r3, r8] + cmp r1, r2 + cmpeq r0, r2 + mov r4, r0 + add r8, r8, #0x1 + bne _020CAB98 + b _020CAC28 +_020CABDC: + mov r2, #0x0 + cmp r1, r2 + cmpeq r4, r2 + beq _020CAC28 +_020CABEC: + and r3, r4, #0xf + cmp r3, #0xa + mov r4, r4, lsr #0x4 + addlt r3, r3, #0x30 + mov r2, r1, lsr #0x4 + orr r4, r4, r1, lsl #0x1c + mov r1, r2 + addge r3, r3, r0 + add r2, sp, #0x3a + strb r3, [r2, r8] + mov r2, #0x0 + cmp r1, r2 + add r8, r8, #0x1 + cmpeq r4, r2 + bne _020CABEC +_020CAC28: + cmp r7, #0x0 + ble _020CAC4C + ldrsb r0, [sp, #0x38] + cmp r0, #0x30 + ldreq r1, [sp, #0x20] + addeq r0, sp, #0x3a + streqb r1, [r0, r8] + ldreq r7, [sp, #0x4] + addeq r8, r8, #0x1 +_020CAC4C: + sub r5, r5, r8 + ands r0, r6, #0x10 + beq _020CAC68 + sub r0, r10, r8 + sub r0, r0, r7 + cmp r5, r0 + movlt r5, r0 +_020CAC68: + cmp r5, #0x0 + subgt r10, r10, r5 + add r0, r7, r8 + ands r6, r6, #0x8 + sub r10, r10, r0 + bne _020CAC90 + ldr r1, [sp, #0x1c] + add r0, sp, #0x54 + mov r2, r10 + bl string_fill_char +_020CAC90: + cmp r7, #0x0 + ble _020CACB8 + add r0, sp, #0x38 + add r4, r0, r7 + ldrsb r1, [r4, #-0x1]! + sub r7, r7, #0x1 + add r0, sp, #0x54 + bl string_put_char +_020CACB0: + .byte 0x00, 0x00, 0x57, 0xE3, 0xF9, 0xFF, 0xFF, 0xCA +_020CACB8: + ldr r1, [sp, #0x20] + mov r2, r5 + add r0, sp, #0x54 + bl string_fill_char +_020CACC8: + .byte 0x00, 0x00, 0x58, 0xE3, 0x07, 0x00, 0x00, 0xDA + .byte 0x3A, 0x00, 0x8D, 0xE2, 0x08, 0x40, 0x80, 0xE0, 0xD1, 0x10, 0x74, 0xE1, 0x01, 0x80, 0x48, 0xE2 + .byte 0x54, 0x00, 0x8D, 0xE2, 0x6E, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x58, 0xE3, 0xF9, 0xFF, 0xFF, 0xCA + .byte 0x00, 0x00, 0x56, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x1C, 0x10, 0x9D, 0xE5, 0x0A, 0x20, 0xA0, 0xE1 + .byte 0x54, 0x00, 0x8D, 0xE2, 0x4C, 0x00, 0x00, 0xEB, 0x01, 0x90, 0x89, 0xE2 +_020CAD0C: + ldrsb r0, [r9, #0x0] + cmp r0, #0x0 + bne _020CA530 +_020CAD18: + ldr r0, [sp, #0x54] + cmp r0, #0x0 + ldrne r0, [sp, #0x58] + movne r1, #0x0 + strneb r1, [r0, #0x0] + bne _020CAD48 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + ldrne r1, [sp, #0x5c] + movne r2, #0x0 + addne r0, r1, r0 + strneb r2, [r0, #-0x1] +_020CAD48: + ldr r1, [sp, #0x58] + ldr r0, [sp, #0x5c] + sub r0, r1, r0 + add sp, sp, #0x64 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020CAD60: .word 0xCCCCCCCD + + arm_func_start OS_SNPrintf +OS_SNPrintf: ; 0x020CAD64 + stmdb sp!, {r0-r3} + stmdb sp!, {lr} + sub sp, sp, #0x4 + add r3, sp, #0x10 + bic r3, r3, #0x3 + ldr r2, [sp, #0x10] + add r3, r3, #0x4 + bl OS_VSNPrintf + add sp, sp, #0x4 + ldmia sp!, {lr} + add sp, sp, #0x10 + bx lr + + arm_func_start OS_VSPrintf +OS_VSPrintf: ; 0x020CAD94 + ldr ip, _020CADA8 ; =OS_VSNPrintf + mov r3, r2 + mov r2, r1 + mvn r1, #0x80000000 + bx r12 + .balign 4 +_020CADA8: .word OS_VSNPrintf + + arm_func_start OS_SPrintf +OS_SPrintf: ; 0x020CADAC + stmdb sp!, {r0-r3} + stmdb sp!, {lr} + sub sp, sp, #0x4 + add r2, sp, #0xc + bic r2, r2, #0x3 + ldr r1, [sp, #0xc] + add r2, r2, #0x4 + bl OS_VSPrintf + add sp, sp, #0x4 + ldmia sp!, {lr} + add sp, sp, #0x10 + bx lr + + arm_func_start string_put_string +string_put_string: ; 0x020CADDC + stmdb sp!, {r4,lr} + cmp r2, #0x0 + ldmleia sp!, {r4,lr} + bxle lr + ldr lr, [r0, #0x0] + mov r4, #0x0 + cmp lr, r2 + movhi lr, r2 + cmp lr, #0x0 + bls _020CAE1C +_020CAE04: + ldrsb r12, [r1, r4] + ldr r3, [r0, #0x4] + strb r12, [r3, r4] + add r4, r4, #0x1 + cmp r4, lr + blo _020CAE04 +_020CAE1C: + ldr r1, [r0, #0x0] + sub r1, r1, lr + str r1, [r0, #0x0] + ldr r1, [r0, #0x4] + add r1, r1, r2 + str r1, [r0, #0x4] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start string_fill_char +string_fill_char: + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r2, #0x0 + addle sp, sp, #0x4 + ldmleia sp!, {lr} + bxle lr + ldr r12, [r0, #0x0] + mov lr, #0x0 + cmp r12, r2 + movhi r12, r2 + cmp r12, #0x0 + bls _020CAE80 +_020CAE6C: + ldr r3, [r0, #0x4] + strb r1, [r3, lr] + add lr, lr, #0x1 + cmp lr, r12 + blo _020CAE6C +_020CAE80: + ldr r1, [r0, #0x0] + sub r1, r1, r12 + str r1, [r0, #0x0] + ldr r1, [r0, #0x4] + add r1, r1, r2 + str r1, [r0, #0x4] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start string_fill_char +string_put_char: + ldr r2, [r0, #0x0] + cmp r2, #0x0 + ldrne r2, [r0, #0x4] + strneb r1, [r2, #0x0] + ldrne r1, [r0, #0x0] + subne r1, r1, #0x1 + strne r1, [r0, #0x0] + ldr r1, [r0, #0x4] + add r1, r1, #0x1 + str r1, [r0, #0x4] + bx lr + + arm_func_start FUN_020CAED0 +FUN_020CAED0: ; 0x020CAED0 + ldr r0, _020CAEDC ; =0x021D3494 + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020CAEDC: .word 0x021D3494 +OS_SetThreadDestructor: + str r1, [r0, #0xb4] + bx lr + + arm_func_start OS_EnableScheduler +OS_EnableScheduler: ; 0x020CAEE8 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020CAF1C ; =0x021D3484 + mov r4, #0x0 + ldr r3, [r1, #0x0] + cmp r3, #0x0 + subne r2, r3, #0x1 + movne r4, r3 + strne r2, [r1, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CAF1C: .word 0x021D3484 + + arm_func_start OS_DisableScheduler +OS_DisableScheduler: ; 0x020CAF20 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r2, _020CAF54 ; =0x021D3484 + mvn r1, #0x0 + ldr r3, [r2, #0x0] + cmp r3, r1 + addcc r1, r3, #0x1 + movcc r4, r3 + strcc r1, [r2, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CAF54: .word 0x021D3484 + + arm_func_start OSi_IdleThreadProc +OSi_IdleThreadProc: ; 0x020CAF58 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl OS_EnableInterrupts +_020CAF64: + bl OS_Halt + b _020CAF64 + + arm_func_start OS_SetSwitchThreadCallback +OS_SetSwitchThreadCallback: ; 0x020CAF6C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020CAF9C ; =0x021D3498 + ldr r4, [r1, #0xc] + str r5, [r1, #0xc] + bl OS_RestoreInterrupts + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CAF9C: .word 0x021D3498 + + arm_func_start OSi_SleepAlarmCallback +OSi_SleepAlarmCallback: ; 0x020CAFA0 + ldr r2, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x0] + ldr ip, _020CAFBC ; =OS_WakeupThreadDirect + mov r0, r2 + str r1, [r2, #0xb0] + bx r12 + .balign 4 +_020CAFBC: .word OS_WakeupThreadDirect + + arm_func_start OS_Sleep +OS_Sleep: ; 0x020CAFC0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x34 + mov r4, r0 + add r0, sp, #0x8 + bl OS_CreateAlarm + ldr r0, _020CB060 ; =0x021D3490 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + str r0, [sp, #0x4] + bl OS_DisableInterrupts + ldr r1, _020CB064 ; =0x000082EA + mov r2, #0x0 + umull r5, r3, r4, r1 + mla r3, r4, r2, r3 + mla r3, r2, r1, r3 + mov r1, r5, lsr #0x6 + mov r4, r0 + ldr r5, [sp, #0x4] + add r0, sp, #0x8 + add r2, sp, #0x4 + str r0, [r5, #0xb0] + str r2, [sp, #0x0] + mov r2, r3, lsr #0x6 + orr r1, r1, r3, lsl #0x1a + ldr r3, _020CB068 ; =OSi_SleepAlarmCallback + bl OS_SetAlarm + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _020CB04C + mov r5, #0x0 +_020CB038: + mov r0, r5 + bl OS_SleepThread + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _020CB038 +_020CB04C: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x34 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CB060: .word 0x021D3490 +_020CB064: .word 0x000082EA +_020CB068: .word OSi_SleepAlarmCallback + + arm_func_start OS_GetThreadPriority +OS_GetThreadPriority: ; 0x020CB06C + ldr r0, [r0, #0x70] + bx lr + + arm_func_start OS_SetThreadPriority +OS_SetThreadPriority: ; 0x020CB074 + stmdb sp!, {r4-r8,lr} + ldr r2, _020CB120 ; =0x021D3498 + mov r6, r0 + mov r5, r1 + ldr r8, [r2, #0x8] + mov r7, #0x0 + bl OS_DisableInterrupts + mov r4, r0 + b _020CB0A0 +_020CB098: + mov r7, r8 + ldr r8, [r8, #0x68] +_020CB0A0: + cmp r8, #0x0 + beq _020CB0B0 + cmp r8, r6 + bne _020CB098 +_020CB0B0: + cmp r8, #0x0 + beq _020CB0C4 + ldr r0, _020CB124 ; =0x021D34A8 + cmp r8, r0 + bne _020CB0D8 +_020CB0C4: + mov r0, r4 + bl OS_RestoreInterrupts +_020CB0CC: + .byte 0x00, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CB0D8: + ldr r0, [r8, #0x70] + cmp r0, r5 + beq _020CB10C + cmp r7, #0x0 + ldreq r1, [r6, #0x68] + ldreq r0, _020CB120 ; =0x021D3498 + streq r1, [r0, #0x8] + ldrne r0, [r6, #0x68] + strne r0, [r7, #0x68] + mov r0, r6 + str r5, [r6, #0x70] + bl OSi_InsertThreadToList + bl OSi_RescheduleThread +_020CB10C: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020CB120: .word 0x021D3498 +_020CB124: .word 0x021D34A8 + + arm_func_start OS_YieldThread +OS_YieldThread: ; 0x020CB128 + stmdb sp!, {r4-r8,lr} + ldr r0, _020CB1E0 ; =0x021D3498 + mov r7, #0x0 + mov r6, r7 + mov r5, r7 + ldr r8, [r0, #0x4] + bl OS_DisableInterrupts + ldr r1, _020CB1E0 ; =0x021D3498 + mov r4, r0 + ldr r2, [r1, #0x8] + mov r0, r7 + cmp r2, #0x0 + beq _020CB188 + ldr r1, [r8, #0x70] +_020CB160: + cmp r2, r8 + moveq r7, r0 + ldr r0, [r2, #0x70] + cmp r1, r0 + moveq r6, r2 + mov r0, r2 + ldr r2, [r2, #0x68] + addeq r5, r5, #0x1 + cmp r2, #0x0 + bne _020CB160 +_020CB188: + cmp r5, #0x1 + ble _020CB198 + cmp r6, r8 + bne _020CB1A8 +_020CB198: + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr +_020CB1A8: + cmp r7, #0x0 + ldreq r1, [r8, #0x68] + ldreq r0, _020CB1E0 ; =0x021D3498 + streq r1, [r0, #0x8] + ldrne r0, [r8, #0x68] + strne r0, [r7, #0x68] + ldr r0, [r6, #0x68] + str r0, [r8, #0x68] + str r8, [r6, #0x68] + bl OSi_RescheduleThread + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020CB1E0: .word 0x021D3498 + + arm_func_start OS_RescheduleThread +OS_RescheduleThread: ; 0x020CB1E4 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + mov r4, r0 + bl OSi_RescheduleThread + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + + arm_func_start OS_SelectThread +OS_SelectThread: ; 0x020CB204 + ldr r0, _020CB22C ; =0x021D3498 + ldr r0, [r0, #0x8] + b _020CB214 +_020CB210: + ldr r0, [r0, #0x68] +_020CB214: + cmp r0, #0x0 + bxeq lr + ldr r1, [r0, #0x64] + cmp r1, #0x1 + bne _020CB210 + bx lr + .balign 4 +_020CB22C: .word 0x021D3498 + + arm_func_start OS_WakeupThreadDirect +OS_WakeupThreadDirect: ; 0x020CB230 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + mov r1, #0x1 + mov r4, r0 + str r1, [r5, #0x64] + bl OSi_RescheduleThread + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start OS_WakeupThread +OS_WakeupThread: ; 0x020CB264 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, [r5, #0x0] + mov r4, r0 + cmp r1, #0x0 + beq _020CB2D0 + cmp r1, #0x0 + beq _020CB2BC + mov r7, #0x1 + mov r6, #0x0 +_020CB294: + mov r0, r5 + bl OSi_RemoveLinkFromQueue + str r7, [r0, #0x64] + str r6, [r0, #0x78] + str r6, [r0, #0x80] + ldr r1, [r0, #0x80] + str r1, [r0, #0x7c] + ldr r0, [r5, #0x0] + cmp r0, #0x0 + bne _020CB294 +_020CB2BC: + mov r0, #0x0 + str r0, [r5, #0x4] + ldr r0, [r5, #0x4] + str r0, [r5, #0x0] + bl OSi_RescheduleThread +_020CB2D0: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start OS_SleepThread +OS_SleepThread: stmdb sp!, {r4-r6,lr} + mov r6, r0 + bl OS_DisableInterrupts + ldr r1, _020CB334 ; =0x021D3490 + mov r5, r0 + ldr r0, [r1, #0x0] + cmp r6, #0x0 + ldr r4, [r0, #0x0] + beq _020CB318 + mov r0, r6 + mov r1, r4 + str r6, [r4, #0x78] + bl OSi_InsertLinkToQueue +_020CB318: + mov r0, #0x0 + str r0, [r4, #0x64] + bl OSi_RescheduleThread + mov r0, r5 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CB334: .word 0x021D3490 + + arm_func_start OS_IsThreadTerminated +OS_IsThreadTerminated: ; 0x020CB338 + ldr r0, [r0, #0x64] + cmp r0, #0x2 + moveq r0, #0x1 + movne r0, #0x0 + bx lr + + arm_func_start OS_JoinThread +OS_JoinThread: ; 0x020CB34C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, [r5, #0x64] + mov r4, r0 + cmp r1, #0x2 + beq _020CB374 + add r0, r5, #0x9c + bl OS_SleepThread +_020CB374: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start OSi_CancelThreadAlarmForSleep +OSi_CancelThreadAlarmForSleep: ; 0x020CB388 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, [r0, #0xb0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + bl OS_CancelAlarm + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start OS_DestroyThread +OS_DestroyThread: ; 0x020CB3B4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020CB438 ; =0x021D3498 + mov r4, r0 + ldr r0, [r1, #0x4] + cmp r0, r5 + bne _020CB3DC + bl OSi_ExitThread_Destroy +_020CB3DC: + bl OS_DisableScheduler + mov r0, r5 + bl OSi_UnlockAllMutex + mov r0, r5 + bl OSi_CancelThreadAlarmForSleep + ldr r0, [r5, #0x78] + cmp r0, #0x0 + beq _020CB404 + mov r1, r5 + bl OSi_RemoveSpecifiedLinkFromQueue +_020CB404: + mov r0, r5 + bl OSi_RemoveThreadFromList + mov r1, #0x2 + add r0, r5, #0x9c + str r1, [r5, #0x64] + bl OS_WakeupThread + bl OS_EnableScheduler + mov r0, r4 + bl OS_RestoreInterrupts + bl OS_RescheduleThread + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CB438: .word 0x021D3498 + + arm_func_start OSi_ExitThread_Destroy +OSi_ExitThread_Destroy: ; 0x020CB43C + stmdb sp!, {r4,lr} + ldr r0, _020CB498 ; =0x021D3490 + ldr r0, [r0, #0x0] + ldr r4, [r0, #0x0] + bl OS_DisableScheduler + mov r0, r4 + bl OSi_UnlockAllMutex + ldr r0, [r4, #0x78] + cmp r0, #0x0 + beq _020CB46C + mov r1, r4 + bl OSi_RemoveSpecifiedLinkFromQueue +_020CB46C: + mov r0, r4 + bl OSi_RemoveThreadFromList + mov r1, #0x2 + add r0, r4, #0x9c + str r1, [r4, #0x64] + bl OS_WakeupThread + bl OS_EnableScheduler + bl OS_RescheduleThread + bl OS_Terminate + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CB498: .word 0x021D3490 + + arm_func_start OSi_ExitThread_Destroy2 +OSi_ExitThread_Destroy2: ; 0x020CB49C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CB4DC ; =0x021D3490 + ldr r1, [r1, #0x0] + ldr r3, [r1, #0x0] + ldr r2, [r3, #0xb4] + cmp r2, #0x0 + beq _020CB4CC + mov r1, #0x0 + str r1, [r3, #0xb4] + blx r2 + bl OS_DisableInterrupts +_020CB4CC: + bl OSi_ExitThread_Destroy + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CB4DC: .word 0x021D3490 + + arm_func_start OSi_ExitThread_ArgSpecified +OSi_ExitThread_ArgSpecified: ; 0x020CB4E0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r2, _020CB548 ; =0x021D3480 + mov r5, r0 + ldr r2, [r2, #0x0] + mov r4, r1 + cmp r2, #0x0 + beq _020CB534 + ldr r1, _020CB54C ; =OSi_ExitThread_Destroy2 + bl OS_InitContext + str r4, [r5, #0x4] + ldr r1, [r5, #0x0] + mov r0, r5 + orr r1, r1, #0x80 + str r1, [r5, #0x0] + mov r1, #0x1 + str r1, [r5, #0x64] + bl OS_LoadContext + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020CB534: + mov r0, r4 + bl OSi_ExitThread_Destroy2 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CB548: .word 0x021D3480 +_020CB54C: .word OSi_ExitThread_Destroy2 + + arm_func_start OS_ExitThread +OS_ExitThread: ; 0x020CB550 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + ldr r0, _020CB578 ; =0x021D3498 + mov r1, #0x0 + ldr r0, [r0, #0x4] + bl OSi_ExitThread_ArgSpecified + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CB578: .word 0x021D3498 + + arm_func_start OS_CreateThread +OS_CreateThread: ; 0x020CB57C + stmdb sp!, {r4-r8,lr} + mov r8, r0 + mov r5, r1 + mov r7, r2 + mov r6, r3 + bl OS_DisableInterrupts + mov r4, r0 + bl OSi_GetUnusedThreadId + ldr r2, [sp, #0x1c] + mov r1, #0x0 + str r2, [r8, #0x70] + str r0, [r8, #0x6c] + str r1, [r8, #0x64] + str r1, [r8, #0x74] + mov r0, r8 + bl OSi_InsertThreadToList + mov r1, r5 + str r6, [r8, #0x94] + ldr r0, [sp, #0x18] + mov r12, #0x0 + sub r5, r6, r0 + sub r2, r6, #0x4 + str r5, [r8, #0x90] + str r12, [r8, #0x98] + ldr r3, _020CB678 ; =0xFDDB597D + ldr r0, [r8, #0x94] + ldr r6, _020CB67C ; =0x7BF9DD5B + str r3, [r0, #-0x4] + ldr r3, [r8, #0x90] + mov r0, r8 + str r6, [r3, #0x0] + str r12, [r8, #0xa0] + ldr r3, [r8, #0xa0] + str r3, [r8, #0x9c] + bl OS_InitContext + str r7, [r8, #0x4] + add r1, r5, #0x4 + ldr r2, _020CB680 ; =OS_ExitThread + mov r0, #0x0 + str r2, [r8, #0x3c] + ldr r2, [sp, #0x18] + sub r2, r2, #0x8 + bl MIi_CpuClear32 + mov r1, #0x0 + str r1, [r8, #0x84] + str r1, [r8, #0x88] + str r1, [r8, #0x8c] + mov r0, r8 + bl OS_SetThreadDestructor +_020CB640: + .byte 0x00, 0x00, 0xA0, 0xE3, 0x78, 0x00, 0x88, 0xE5, 0x80, 0x00, 0x88, 0xE5, 0x80, 0x20, 0x98, 0xE5 + .byte 0xA4, 0x10, 0x88, 0xE2, 0x7C, 0x20, 0x88, 0xE5, 0x0C, 0x20, 0xA0, 0xE3, 0xE6, 0x0A, 0x00, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0x88, 0xE5, 0x2C, 0x07, 0x00, 0xEB + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CB678: .word 0xFDDB597D +_020CB67C: .word 0x7BF9DD5B +_020CB680: .word OS_ExitThread + + arm_func_start OS_InitThread +OS_InitThread: ; 0x020CB684 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + ldr r3, _020CB7A4 ; =0x021D3494 + ldr r0, [r3, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x8 + ldmneia sp!, {r4-r6,lr} + bxne lr + ldr ip, _020CB7A8 ; =0x00000000 + ldr r1, _020CB7AC ; =0x021D3568 + mov lr, #0x0 + ldr r0, _020CB7B0 ; =0x021D3498 + mov r6, #0x1 + mov r4, #0x10 + str r1, [r0, #0x8] + str r1, [r0, #0x4] + cmp r12, #0x0 + ldrle r0, _020CB7B4 ; =0x027E0080 + str r4, [r1, #0x70] + suble r4, r0, r12 + str lr, [r1, #0x6c] + str r6, [r1, #0x64] + str lr, [r1, #0x68] + str lr, [r1, #0x74] + ldrgt r1, _020CB7B8 ; =0x027E0000 + ldrgt r0, _020CB7BC ; =0x00000400 + addgt r1, r1, #0x3f80 + subgt r0, r1, r0 + subgt r4, r0, r12 + ldr r1, _020CB7B8 ; =0x027E0000 + ldr r5, _020CB7C0 ; =0x021D349C + ldr r2, _020CB7C4 ; =0x021D3490 + ldr r0, _020CB7BC ; =0x00000400 + str r5, [r2, #0x0] + ldr r2, _020CB7AC ; =0x021D3568 + add r1, r1, #0x3f80 + str r6, [r3, #0x0] + sub r3, r1, r0 + mov r0, #0x0 + ldr r1, _020CB7C8 ; =0xFDDB597D + str r3, [r2, #0x94] + str r4, [r2, #0x90] + str r0, [r2, #0x98] + str r1, [r3, #-0x4] + ldr r3, [r2, #0x90] + ldr ip, _020CB7CC ; =0x7BF9DD5B + ldr r1, _020CB7B0 ; =0x021D3498 + str r12, [r3, #0x0] + ldr r3, _020CB7D0 ; =0x027FFFA0 + str r0, [r2, #0xa0] + str r0, [r2, #0x9c] + strh r0, [r1, #0x0] + strh r0, [r1, #0x2] + str r1, [r3, #0x0] + bl OS_SetSwitchThreadCallback + mov r2, #0xc8 + str r2, [sp, #0x0] + mov r12, #0x1f + ldr r0, _020CB7D4 ; =0x021D34A8 + ldr r1, _020CB7D8 ; =OSi_IdleThreadProc + ldr r3, _020CB7DC ; =0x021D36F0 + mov r2, #0x0 + str r12, [sp, #0x4] + bl OS_CreateThread + ldr r0, _020CB7D4 ; =0x021D34A8 + mov r2, #0x20 + mov r1, #0x1 + str r2, [r0, #0x70] + str r1, [r0, #0x64] + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CB7A4: .word 0x021D3494 +_020CB7A8: .word 0x00000000 +_020CB7AC: .word 0x021D3568 +_020CB7B0: .word 0x021D3498 +_020CB7B4: .word 0x027E0080 +_020CB7B8: .word 0x027E0000 +_020CB7BC: .word 0x00000400 +_020CB7C0: .word 0x021D349C +_020CB7C4: .word 0x021D3490 +_020CB7C8: .word 0xFDDB597D +_020CB7CC: .word 0x7BF9DD5B +_020CB7D0: .word 0x027FFFA0 +_020CB7D4: .word 0x021D34A8 +_020CB7D8: .word OSi_IdleThreadProc +_020CB7DC: .word 0x021D36F0 + + arm_func_start OSi_RescheduleThread +OSi_RescheduleThread: ; 0x020CB7E0 + stmdb sp!, {r4-r6,lr} + ldr r0, _020CB8BC ; =0x021D3484 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldmneia sp!, {r4-r6,lr} + bxne lr + ldr r4, _020CB8C0 ; =0x021D3498 + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + bne _020CB814 + bl OS_GetProcMode + cmp r0, #0x12 + bne _020CB824 +_020CB814: + mov r0, #0x1 + strh r0, [r4, #0x0] + ldmia sp!, {r4-r6,lr} + bx lr +_020CB824: + ldr r0, _020CB8C4 ; =0x021D3490 + ldr r0, [r0, #0x0] + ldr r6, [r0, #0x0] + bl OS_SelectThread + mov r5, r0 + cmp r6, r5 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + cmp r5, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, [r6, #0x64] + cmp r0, #0x2 + beq _020CB870 + mov r0, r6 + bl OS_SaveContext +_020CB864: + .byte 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 +_020CB870: + ldr r0, _020CB8C8 ; =0x021D348C + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020CB88C + mov r0, r6 + mov r1, r5 + blx r2 +_020CB88C: + ldr r2, [r4, #0xc] + cmp r2, #0x0 + beq _020CB8A4 + mov r0, r6 + mov r1, r5 + blx r2 +_020CB8A4: + ldr r1, _020CB8C0 ; =0x021D3498 + mov r0, r5 + str r5, [r1, #0x4] + bl OS_LoadContext + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CB8BC: .word 0x021D3484 +_020CB8C0: .word 0x021D3498 +_020CB8C4: .word 0x021D3490 +_020CB8C8: .word 0x021D348C + + arm_func_start OSi_RemoveThreadFromList +OSi_RemoveThreadFromList: ; 0x020CB8CC + ldr r1, _020CB910 ; =0x021D3498 + mov r2, #0x0 + ldr r1, [r1, #0x8] + b _020CB8E4 +_020CB8DC: + mov r2, r1 + ldr r1, [r1, #0x68] +_020CB8E4: + cmp r1, #0x0 + beq _020CB8F4 + cmp r1, r0 + bne _020CB8DC +_020CB8F4: + cmp r2, #0x0 + ldreq r1, [r0, #0x68] + ldreq r0, _020CB910 ; =0x021D3498 + streq r1, [r0, #0x8] + ldrne r0, [r0, #0x68] + strne r0, [r2, #0x68] + bx lr + .balign 4 +_020CB910: .word 0x021D3498 + + arm_func_start OSi_InsertThreadToList +OSi_InsertThreadToList: ; 0x020CB914 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CB978 ; =0x021D3498 + mov r12, #0x0 + ldr r3, [r1, #0x8] + mov lr, r3 + b _020CB938 +_020CB930: + mov r12, lr + ldr lr, [lr, #0x68] +_020CB938: + cmp lr, #0x0 + beq _020CB950 + ldr r2, [lr, #0x70] + ldr r1, [r0, #0x70] + cmp r2, r1 + blo _020CB930 +_020CB950: + cmp r12, #0x0 + ldreq r1, _020CB978 ; =0x021D3498 + streq r3, [r0, #0x68] + streq r0, [r1, #0x8] + ldrne r1, [r12, #0x68] + strne r1, [r0, #0x68] + strne r0, [r12, #0x68] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CB978: .word 0x021D3498 + + arm_func_start OSi_RemoveMutexLinkFromQueue +OSi_RemoveMutexLinkFromQueue: ; 0x020CB97C + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020CB9A4 + ldr r1, [r2, #0x10] + str r1, [r0, #0x0] + cmp r1, #0x0 + movne r0, #0x0 + strne r0, [r1, #0x14] + moveq r1, #0x0 + streq r1, [r0, #0x4] +_020CB9A4: + mov r0, r2 + bx lr + + arm_func_start OSi_RemoveSpecifiedLinkFromQueue +OSi_RemoveSpecifiedLinkFromQueue: ; 0x020CB9AC + ldr r2, [r0, #0x0] + mov r12, r2 + cmp r2, #0x0 + beq _020CB9F8 +_020CB9BC: + cmp r12, r1 + ldr r3, [r12, #0x80] + bne _020CB9EC + cmp r2, r12 + ldr r2, [r12, #0x7c] + streq r3, [r0, #0x0] + strne r3, [r2, #0x80] + ldr r1, [r0, #0x4] + cmp r1, r12 + streq r2, [r0, #0x4] + strne r2, [r3, #0x7c] + b _020CB9F8 +_020CB9EC: + mov r12, r3 + cmp r3, #0x0 + bne _020CB9BC +_020CB9F8: + mov r0, r12 + bx lr + + arm_func_start OSi_RemoveLinkFromQueue +OSi_RemoveLinkFromQueue: ; 0x020CBA00 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020CBA2C + ldr r1, [r2, #0x80] + str r1, [r0, #0x0] + cmp r1, #0x0 + movne r0, #0x0 + strne r0, [r1, #0x7c] + moveq r1, #0x0 + streq r1, [r0, #0x4] + streq r1, [r2, #0x78] +_020CBA2C: + mov r0, r2 + bx lr + + arm_func_start OSi_InsertLinkToQueue +OSi_InsertLinkToQueue: + ldr r12, [r0, #0x0] + b _020CBA48 +_020CBA3C: + cmp r12, r1 + bxeq lr + ldr r12, [r12, #0x80] +_020CBA48: + cmp r12, #0x0 + beq _020CBA60 + ldr r3, [r12, #0x70] + ldr r2, [r1, #0x70] + cmp r3, r2 + bls _020CBA3C +_020CBA60: + cmp r12, #0x0 + bne _020CBA8C + ldr r2, [r0, #0x4] + cmp r2, #0x0 + streq r1, [r0, #0x0] + strne r1, [r2, #0x80] + str r2, [r1, #0x7c] + mov r2, #0x0 + str r2, [r1, #0x80] + str r1, [r0, #0x4] + bx lr +_020CBA8C: + ldr r2, [r12, #0x7c] + cmp r2, #0x0 + streq r1, [r0, #0x0] + strne r1, [r2, #0x80] + str r2, [r1, #0x7c] + str r12, [r1, #0x80] + str r1, [r12, #0x7c] + bx lr + + arm_func_start OSi_GetUnusedThreadId +OSi_GetUnusedThreadId: ; 0x020CBAAC + ldr r1, _020CBAC0 ; =0x021D3488 + ldr r0, [r1, #0x0] + add r0, r0, #0x1 + str r0, [r1, #0x0] + bx lr + .balign 4 +_020CBAC0: .word 0x021D3488 + + arm_func_start OS_InitContext +OS_InitContext: ; 0x020CBAC4 + add r1, r1, #0x4 + str r1, [r0, #0x40] + str r2, [r0, #0x44] + sub r2, r2, #0x40 + tst r2, #0x4 + subne r2, r2, #0x4 + str r2, [r0, #0x38] + ands r1, r1, #0x1 + movne r1, #0x3f + moveq r1, #0x1f + str r1, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [r0, #0x8] + str r1, [r0, #0xc] + str r1, [r0, #0x10] + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + str r1, [r0, #0x20] + str r1, [r0, #0x24] + str r1, [r0, #0x28] + str r1, [r0, #0x2c] + str r1, [r0, #0x30] + str r1, [r0, #0x34] + str r1, [r0, #0x3c] + bx lr + + arm_func_start OS_SaveContext +OS_SaveContext: + stmdb sp!, {r0,lr} + add r0, r0, #0x48 + ldr r1, _020CBB78 ; =CP_SaveContext + blx r1 + ldmia sp!, {r0,lr} + add r1, r0, #0x0 + mrs r2, cpsr + str r2, [r1], #0x4 + mov r0, #0xd3 + msr cpsr_c, r0 + str sp, [r1, #0x40] + msr cpsr_c, r2 + mov r0, #0x1 + stmia r1, {r0-lr} + add r0, pc, #0x8 ; =_020CBB78 + str r0, [r1, #0x3c] + mov r0, #0x0 + bx lr + .balign 4 +_020CBB78: .word CP_SaveContext + + arm_func_start OS_LoadContext +OS_LoadContext: ; 0x020CBB7C + stmdb sp!, {r0,lr} + add r0, r0, #0x48 + ldr r1, _020CBBBC ; =CP_RestoreContext + blx r1 + ldmia sp!, {r0,lr} + mrs r1, cpsr + bic r1, r1, #0x1f + orr r1, r1, #0xd3 + msr cpsr_c, r1 + ldr r1, [r0], #0x4 + msr spsr_fsxc, r1 + ldr sp, [r0, #0x40] + ldr lr, [r0, #0x3c] + ldmia r0, {r0-lr}^ + mov r0, r0 + subs pc, lr, #0x4 + .balign 4 +_020CBBBC: .word CP_RestoreContext + + arm_func_start OS_GetConsoleType +OS_GetConsoleType: ; 0x020CBBC0 + ldr r0, _020CBBD0 ; =0x82000001 + ldr r1, _020CBBD4 ; =0x02106828 + str r0, [r1, #0x0] + bx lr + .balign 4 +_020CBBD0: .word 0x82000001 +_020CBBD4: .word 0x02106828 + + arm_func_start OS_IsRunOnEmulator +OS_IsRunOnEmulator: + mov r0, #0x0 + bx lr + + arm_func_start OS_ReadMessage +OS_ReadMessage: ; 0x020CBBE0 + stmdb sp!, {r4-r8,lr} + mov r6, r0 + mov r5, r1 + mov r7, r2 + bl OS_DisableInterrupts + ldr r1, [r6, #0x1c] + mov r4, r0 + cmp r1, #0x0 + bne _020CBC3C + and r8, r7, #0x1 + add r7, r6, #0x8 +_020CBC0C: + cmp r8, #0x0 + bne _020CBC28 + mov r0, r4 + bl OS_RestoreInterrupts +_020CBC1C: + .byte 0x00, 0x00, 0xA0, 0xE3 + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CBC28: + mov r0, r7 + bl OS_SleepThread + ldr r0, [r6, #0x1c] + cmp r0, #0x0 + beq _020CBC0C +_020CBC3C: + cmp r5, #0x0 + ldrne r1, [r6, #0x10] + ldrne r0, [r6, #0x18] + ldrne r0, [r1, r0, lsl #0x2] + strne r0, [r5, #0x0] + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start OS_JamMessage +OS_JamMessage: ; 0x020CBC64 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, r1 + mov r7, r2 + bl OS_DisableInterrupts + ldr r1, [r6, #0x14] + ldr r2, [r6, #0x1c] + mov r4, r0 + cmp r1, r2 + bgt _020CBCCC + and r7, r7, #0x1 +_020CBC94: + cmp r7, #0x0 + bne _020CBCB4 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020CBCB4: + mov r0, r6 + bl OS_SleepThread + ldr r1, [r6, #0x14] + ldr r0, [r6, #0x1c] + cmp r1, r0 + ble _020CBC94 +_020CBCCC: + ldr r0, [r6, #0x18] + add r0, r0, r1 + sub r0, r0, #0x1 + bl FUN_020EBC80 + str r1, [r6, #0x18] + ldr r2, [r6, #0x10] + ldr r1, [r6, #0x18] + add r0, r6, #0x8 + str r5, [r2, r1, lsl #0x2] + ldr r1, [r6, #0x1c] + add r1, r1, #0x1 + str r1, [r6, #0x1c] + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start OS_ReceiveMessage +OS_ReceiveMessage: ; 0x020CBD18 + stmdb sp!, {r4-r8,lr} + mov r6, r0 + mov r5, r1 + mov r7, r2 + bl OS_DisableInterrupts + ldr r1, [r6, #0x1c] + mov r4, r0 + cmp r1, #0x0 + bne _020CBD74 + and r8, r7, #0x1 + add r7, r6, #0x8 +_020CBD44: + cmp r8, #0x0 + bne _020CBD60 + mov r0, r4 + bl OS_RestoreInterrupts +_020CBD54: + .byte 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CBD60: + mov r0, r7 + bl OS_SleepThread + ldr r0, [r6, #0x1c] + cmp r0, #0x0 + beq _020CBD44 +_020CBD74: + cmp r5, #0x0 + ldrne r1, [r6, #0x10] + ldrne r0, [r6, #0x18] + ldrne r0, [r1, r0, lsl #0x2] + strne r0, [r5, #0x0] + ldr r0, [r6, #0x18] + ldr r1, [r6, #0x14] + add r0, r0, #0x1 + bl FUN_020EBC80 + str r1, [r6, #0x18] + ldr r1, [r6, #0x1c] + mov r0, r6 + sub r1, r1, #0x1 + str r1, [r6, #0x1c] + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start OS_SendMessage +OS_SendMessage: ; 0x020CBDC4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, r1 + mov r7, r2 + bl OS_DisableInterrupts + ldr r2, [r6, #0x1c] + ldr r1, [r6, #0x14] + mov r4, r0 + cmp r1, r2 + bgt _020CBE2C + and r7, r7, #0x1 +_020CBDF4: + cmp r7, #0x0 + bne _020CBE14 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020CBE14: + mov r0, r6 + bl OS_SleepThread + ldr r2, [r6, #0x1c] + ldr r1, [r6, #0x14] + cmp r1, r2 + ble _020CBDF4 +_020CBE2C: + ldr r0, [r6, #0x18] + add r0, r0, r2 + bl FUN_020EBC80 + ldr r2, [r6, #0x10] + add r0, r6, #0x8 + str r5, [r2, r1, lsl #0x2] + ldr r1, [r6, #0x1c] + add r1, r1, #0x1 + str r1, [r6, #0x1c] + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start OS_InitMessageQueue +OS_InitMessageQueue: ; 0x020CBE6C + mov r12, #0x0 + str r12, [r0, #0x4] + ldr r3, [r0, #0x4] + str r3, [r0, #0x0] + str r12, [r0, #0xc] + ldr r3, [r0, #0xc] + str r3, [r0, #0x8] + str r1, [r0, #0x10] + str r2, [r0, #0x14] + str r12, [r0, #0x18] + str r12, [r0, #0x1c] + bx lr + + arm_func_start OSi_DequeueItem +OSi_DequeueItem: ; 0x020CBE9C + ldr r2, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r2, #0x0 + streq r1, [r0, #0x8c] + strne r1, [r2, #0x14] + cmp r1, #0x0 + streq r2, [r0, #0x88] + strne r2, [r1, #0x10] + bx lr + + arm_func_start OSi_EnqueueTail +OSi_EnqueueTail: ; 0x020CBEC0 + ldr r2, [r0, #0x8c] + cmp r2, #0x0 + streq r1, [r0, #0x88] + strne r1, [r2, #0x10] + str r2, [r1, #0x14] + mov r2, #0x0 + str r2, [r1, #0x10] + str r1, [r0, #0x8c] + bx lr + + arm_func_start OS_TryLockMutex +OS_TryLockMutex: ; 0x020CBEE4 + stmdb sp!, {r4-r6,lr} + mov r5, r0 + bl OS_DisableInterrupts + ldr r2, [r5, #0x8] + ldr r1, _020CBF54 ; =0x021D3498 + mov r4, r0 + cmp r2, #0x0 + ldr r0, [r1, #0x4] + bne _020CBF28 + str r0, [r5, #0x8] + ldr r2, [r5, #0xc] + mov r1, r5 + add r2, r2, #0x1 + str r2, [r5, #0xc] + bl OSi_EnqueueTail + mov r6, #0x1 + b _020CBF40 +_020CBF28: + cmp r2, r0 + ldreq r0, [r5, #0xc] + moveq r6, #0x1 + addeq r0, r0, #0x1 + streq r0, [r5, #0xc] + movne r6, #0x0 +_020CBF40: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, r6 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CBF54: .word 0x021D3498 + + arm_func_start OSi_UnlockAllMutex +OSi_UnlockAllMutex: ; 0x020CBF58 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldr r0, [r6, #0x88] + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + add r5, r6, #0x88 + mov r4, #0x0 +_020CBF78: + mov r0, r5 + bl OSi_RemoveMutexLinkFromQueue + str r4, [r0, #0xc] + str r4, [r0, #0x8] + bl OS_WakeupThread + ldr r0, [r6, #0x88] + cmp r0, #0x0 + bne _020CBF78 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start OS_UnlockMutex +OS_UnlockMutex: ; 0x020CBFA0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020CC00C ; =0x021D3498 + mov r4, r0 + ldr r0, [r1, #0x4] + ldr r1, [r5, #0x8] + cmp r1, r0 + bne _020CBFF8 + ldr r1, [r5, #0xc] + sub r1, r1, #0x1 + str r1, [r5, #0xc] + ldr r1, [r5, #0xc] + cmp r1, #0x0 + bne _020CBFF8 + mov r1, r5 + bl OSi_DequeueItem + mov r1, #0x0 + mov r0, r5 + str r1, [r5, #0x8] + bl OS_WakeupThread +_020CBFF8: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CC00C: .word 0x021D3498 + + arm_func_start OS_LockMutex +OS_LockMutex: ; 0x020CC010 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020CC098 ; =0x021D3498 + mov r4, r0 + ldr r7, [r1, #0x4] + mov r6, #0x0 +_020CC030: + ldr r0, [r5, #0x8] + cmp r0, #0x0 + bne _020CC05C + str r7, [r5, #0x8] + ldr r1, [r5, #0xc] + mov r0, r7 + add r2, r1, #0x1 + mov r1, r5 + str r2, [r5, #0xc] + bl OSi_EnqueueTail + b _020CC084 +_020CC05C: + cmp r0, r7 + ldreq r0, [r5, #0xc] + addeq r0, r0, #0x1 + streq r0, [r5, #0xc] + beq _020CC084 + mov r0, r5 + str r5, [r7, #0x84] + bl OS_SleepThread + str r6, [r7, #0x84] + b _020CC030 +_020CC084: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020CC098: .word 0x021D3498 + + arm_func_start OS_InitMutex +OS_InitMutex: ; 0x020CC09C + mov r2, #0x0 + str r2, [r0, #0x4] + ldr r1, [r0, #0x4] + str r1, [r0, #0x0] + str r2, [r0, #0x8] + str r2, [r0, #0xc] + bx lr + + arm_func_start DC_InvalidateAll +DC_InvalidateAll: ; 0x020CC0B8 + mov r0, #0x0 + mcr p15, 0x0, r0, c7, c6, 0x0 + bx lr + + arm_func_start DC_StoreAll +DC_StoreAll: ; 0x020CC0C4 + mov r1, #0x0 +_020CC0C8: + mov r0, #0x0 +_020CC0CC: + orr r2, r1, r0 + mcr p15, 0x0, r2, c7, c10, 0x2 + add r0, r0, #0x20 + cmp r0, #0x400 + blt _020CC0CC + add r1, r1, #0x40000000 + cmp r1, #0x0 + bne _020CC0C8 + bx lr + + arm_func_start DC_FlushAll +DC_FlushAll: ; 0x020CC0F0 + mov r12, #0x0 + mov r1, #0x0 +_020CC0F8: + mov r0, #0x0 +_020CC0FC: + orr r2, r1, r0 + mcr p15, 0x0, r12, c7, c10, 0x4 + mcr p15, 0x0, r2, c7, c14, 0x2 + add r0, r0, #0x20 + cmp r0, #0x400 + blt _020CC0FC + add r1, r1, #0x40000000 + cmp r1, #0x0 + bne _020CC0F8 + bx lr + + arm_func_start DC_InvalidateRange +DC_InvalidateRange: ; 0x020CC124 + add r1, r1, r0 + bic r0, r0, #0x1f +_020CC12C: + mcr p15, 0x0, r0, c7, c6, 0x1 + add r0, r0, #0x20 + cmp r0, r1 + blt _020CC12C + bx lr + + arm_func_start DC_StoreRange +DC_StoreRange: ; 0x020CC140 + add r1, r1, r0 + bic r0, r0, #0x1f +_020CC148: + mcr p15, 0x0, r0, c7, c10, 0x1 + add r0, r0, #0x20 + cmp r0, r1 + blt _020CC148 + bx lr + + arm_func_start DC_FlushRange +DC_FlushRange: ; 0x020CC15C + mov r12, #0x0 + add r1, r1, r0 + bic r0, r0, #0x1f +_020CC168: + mcr p15, 0x0, r12, c7, c10, 0x4 + mcr p15, 0x0, r0, c7, c14, 0x1 + add r0, r0, #0x20 + cmp r0, r1 + blt _020CC168 + bx lr + + arm_func_start DC_WaitWriteBufferEmpty +DC_WaitWriteBufferEmpty: ; 0x020CC180 + mov r0, #0x0 + mcr p15, 0x0, r0, c7, c10, 0x4 + bx lr + + arm_func_start IC_InvalidateAll +IC_InvalidateAll: ; 0x020CC18C + mov r0, #0x0 + mcr p15, 0x0, r0, c7, c5, 0x0 + bx lr + + arm_func_start IC_InvalidateRange +IC_InvalidateRange: + add r1, r1, r0 + bic r0, r0, #0x1f +_020CC1A0: + mcr p15, 0x0, r0, c7, c5, 0x1 + add r0, r0, #0x20 + cmp r0, r1 + blt _020CC1A0 + bx lr + + arm_func_start OS_Init +OS_Init: ; 0x020CC1B4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl OS_InitArena + bl PXI_Init + bl OS_InitLock + bl OS_InitArenaEx + bl OS_InitIrqTable + bl OS_SetIrqStackChecker + bl OS_InitException + bl MI_Init + bl OS_InitVAlarm + bl OSi_InitVramExclusive + bl OS_InitThread + bl OS_InitReset + bl FUN_020DBC80 + bl FUN_020D7228 + bl FUN_020D5764 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start OS_AllocFromArenaHi +OS_AllocFromArenaHi: ; 0x020CC204 + stmdb sp!, {r4-r6,lr} + mov r4, r0 + mov r6, r1 + mov r5, r2 + bl OS_GetArenaHi +_020CC218: + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03 + .byte 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x10, 0x45, 0xE2, 0x01, 0x20, 0xE0, 0xE1 + .byte 0x02, 0x00, 0x00, 0xE0, 0x06, 0x10, 0x40, 0xE0, 0x04, 0x00, 0xA0, 0xE1, 0x02, 0x50, 0x01, 0xE0 + .byte 0xBC, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x55, 0xE1, 0x00, 0x00, 0xA0, 0x33, 0x70, 0x40, 0xBD, 0x38 + .byte 0x1E, 0xFF, 0x2F, 0x31, 0x04, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x29, 0x00, 0x00, 0xEB + .byte 0x05, 0x00, 0xA0, 0xE1, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start OS_AllocFromArenaLo +OS_AllocFromArenaLo: ; 0x020CC26C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl OS_GetArenaLo +_020CC284: + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 + .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x00, 0x80, 0xE0, 0x01, 0x10, 0x45, 0xE2 + .byte 0x01, 0x20, 0xE0, 0xE1, 0x01, 0x00, 0x40, 0xE2, 0x00, 0x40, 0x02, 0xE0, 0x06, 0x00, 0x84, 0xE0 + .byte 0x05, 0x00, 0x80, 0xE0, 0x01, 0x10, 0x40, 0xE2, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x50, 0x02, 0xE0 + .byte 0xA1, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x55, 0xE1, 0x04, 0xD0, 0x8D, 0x82, 0x00, 0x00, 0xA0, 0x83 + .byte 0xF0, 0x40, 0xBD, 0x88, 0x1E, 0xFF, 0x2F, 0x81, 0x07, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x03, 0x00, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start OS_SetArenaLo +OS_SetArenaLo: ; 0x020CC2F4 + mov r0, r0, lsl #0x2 + add r0, r0, #0x2700000 + add r0, r0, #0xff000 + str r1, [r0, #0xda0] + bx lr + + arm_func_start OS_SetArenaHi +OS_SetArenaHi: + mov r0, r0, lsl #0x2 + add r0, r0, #0x2700000 + add r0, r0, #0xff000 + str r1, [r0, #0xdc4] + bx lr + + arm_func_start OS_GetInitArenaLo +OS_GetInitArenaLo: ; 0x020CC31C + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x6 + addls pc, pc, r0, lsl #0x2 + b _020CC3DC +_020CC330: + .byte 0x05, 0x00, 0x00, 0xEA, 0x28, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA + .byte 0x19, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x1F, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x94, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x8C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x13, 0xFE, 0xFF, 0xEB + .byte 0x03, 0x00, 0x00, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x5C, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x44, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x38, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CC3DC: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020CC3EC: + .byte 0xA0, 0xFF, 0x25, 0x02 + .byte 0xF4, 0x36, 0x1D, 0x02, 0x00, 0x00, 0x3E, 0x02, 0x20, 0x87, 0xFF, 0x01, 0x80, 0x00, 0x7E, 0x02 + .byte 0x00, 0xF0, 0x7F, 0x02, 0x00, 0x80, 0x7F, 0x03 + + arm_func_start OS_GetInitArenaHi +OS_GetInitArenaHi: ; 0x020CC408 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x6 + addls pc, pc, r0, lsl #0x2 + b _020CC508 +_020CC41C: + .byte 0x05, 0x00, 0x00, 0xEA + .byte 0x38, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA, 0x19, 0x00, 0x00, 0xEA + .byte 0x2C, 0x00, 0x00, 0xEA, 0x2F, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2, 0xD4, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xCC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0xD8, 0xFD, 0xFF, 0xEB, 0x03, 0x00, 0x00, 0xE2 + .byte 0x01, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x27, 0x06, 0xA0, 0xE3 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x02, 0x04, 0xA0, 0xE3 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0x00, 0x9F, 0xE5, 0x80, 0x10, 0x9F, 0xE5 + .byte 0x80, 0x20, 0x9F, 0xE5, 0xFE, 0x3D, 0x80, 0xE2, 0x00, 0x00, 0x51, 0xE3, 0x02, 0x20, 0x43, 0xE0 + .byte 0x05, 0x00, 0x00, 0x1A, 0x70, 0x10, 0x9F, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0x50, 0xE1 + .byte 0x01, 0x00, 0xA0, 0x31, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x51, 0xE3 + .byte 0x54, 0x00, 0x9F, 0xB5, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0x40, 0xB0, 0x01, 0x00, 0x42, 0xA0 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x3C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CC508: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020CC518: + .byte 0x00, 0x00, 0x3E, 0x02, 0xF4, 0x36, 0x1D, 0x02 + .byte 0x00, 0x00, 0x7E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80, 0x00, 0x7E, 0x02 + .byte 0x80, 0xF6, 0x7F, 0x02, 0x00, 0x80, 0x7F, 0x03 + + arm_func_start OS_GetArenaLo +OS_GetArenaLo: + mov r0, r0, lsl #0x2 + add r0, r0, #0x2700000 + add r0, r0, #0xff000 + ldr r0, [r0, #0xda0] + bx lr + + arm_func_start OS_GetArenaHi +OS_GetArenaHi: + mov r0, r0, lsl #0x2 + add r0, r0, #0x2700000 + add r0, r0, #0xff000 + ldr r0, [r0, #0xdc4] + bx lr + + arm_func_start OS_InitArenaEx +OS_InitArenaEx: ; 0x020CC560 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, #0x2 + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x2 + bl OS_SetArenaHi + mov r0, #0x2 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x2 + bl OS_SetArenaLo + ldr r0, _020CC5D4 ; =0x021D36F4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020CC5B8 + bl OS_GetConsoleType + and r0, r0, #0x3 + cmp r0, #0x1 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr +_020CC5B8: + ldr r0, _020CC5D8 ; =0x0200002B + bl OS_SetProtectionRegion1 + ldr r0, _020CC5DC ; =0x023E0021 + bl OS_SetProtectionRegion2 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CC5D4: .word 0x021D36F4 +_020CC5D8: .word 0x0200002B +_020CC5DC: .word 0x023E0021 + + arm_func_start OS_InitArena +OS_InitArena: ; 0x020CC5E0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CC6F4 ; =0x021D36F0 + ldr r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + mov r2, #0x1 + mov r0, #0x0 + str r2, [r1, #0x0] + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x0 + bl OS_SetArenaHi +_020CC61C: + .byte 0x00, 0x00, 0xA0, 0xE3 + .byte 0x3D, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x30, 0xFF, 0xFF, 0xEB + .byte 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x2D, 0xFF, 0xFF, 0xEB, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x2F, 0xFF, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x6D, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE3, 0x2A, 0xFF, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3 + .byte 0x2D, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE3, 0x20, 0xFF, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE3, 0x63, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x20, 0xFF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x23, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x00, 0xA0, 0xE3, 0x16, 0xFF, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE3, 0x59, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE3, 0x16, 0xFF, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE3 + .byte 0x19, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE3, 0x0C, 0xFF, 0xFF, 0xEB + .byte 0x06, 0x00, 0xA0, 0xE3, 0x4F, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE3 + .byte 0x0C, 0xFF, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE3, 0x0F, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x06, 0x00, 0xA0, 0xE3, 0x02, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1 +_020CC6F4: .word 0x021D36F0 + + arm_func_start OS_FreeToHeap +OS_FreeToHeap: ; 0x020CC6F8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r5, r1 + mov r4, r2 + bl OS_DisableInterrupts + ldr r1, _020CC768 ; =0x021D36F8 + mov r6, r0 + ldr r0, [r1, r7, lsl #0x2] + cmp r5, #0x0 + ldrlt r5, [r0, #0x0] + ldr r1, [r0, #0x10] + mov r0, #0xc + mla r7, r5, r0, r1 + sub r4, r4, #0x20 + ldr r0, [r7, #0x8] + mov r1, r4 + bl DLExtract + str r0, [r7, #0x8] + ldr r0, [r7, #0x4] + mov r1, r4 + bl DLInsert + str r0, [r7, #0x4] + mov r0, r6 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020CC768: .word 0x021D36F8 + + arm_func_start OS_AllocFromHeap +OS_AllocFromHeap: ; 0x020CC76C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, r1 + mov r7, r2 + bl OS_DisableInterrupts + ldr r1, _020CC894 ; =0x021D36F8 + mov r4, r0 + ldr r1, [r1, r6, lsl #0x2] + cmp r1, #0x0 + bne _020CC7AC + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020CC7AC: + cmp r5, #0x0 + ldrlt r5, [r1, #0x0] + ldr r1, [r1, #0x10] + mov r0, #0xc + mla r6, r5, r0, r1 + ldr r0, [r6, #0x4] + add r1, r7, #0x20 + add r1, r1, #0x1f + mov r5, r0 + cmp r0, #0x0 + bic r7, r1, #0x1f + beq _020CC7F4 +_020CC7DC: + ldr r1, [r5, #0x8] + cmp r7, r1 + ble _020CC7F4 + ldr r5, [r5, #0x4] + cmp r5, #0x0 + bne _020CC7DC +_020CC7F4: + cmp r5, #0x0 + bne _020CC814 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020CC814: + ldr r1, [r5, #0x8] + sub r1, r1, r7 + cmp r1, #0x40 + bhs _020CC834 + mov r1, r5 + bl DLExtract + str r0, [r6, #0x4] + b _020CC86C +_020CC834: + str r7, [r5, #0x8] + add r2, r5, r7 + str r1, [r2, #0x8] + ldr r0, [r5, #0x0] + str r0, [r5, r7] + ldr r0, [r5, #0x4] + str r0, [r2, #0x4] + ldr r0, [r2, #0x4] + cmp r0, #0x0 + strne r2, [r0, #0x0] + ldr r0, [r2, #0x0] + cmp r0, #0x0 + strne r2, [r0, #0x4] + streq r2, [r6, #0x4] +_020CC86C: + ldr r0, [r6, #0x8] + mov r1, r5 + bl DLAddFront + str r0, [r6, #0x8] + mov r0, r4 + bl OS_RestoreInterrupts + add r0, r5, #0x20 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020CC894: .word 0x021D36F8 + + arm_func_start DLInsert +DLInsert: ; 0x020CC898 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r12, r0 + cmp r0, #0x0 + mov lr, #0x0 + beq _020CC8C8 +_020CC8B0: + cmp r1, r12 + bls _020CC8C8 + mov lr, r12 + ldr r12, [r12, #0x4] + cmp r12, #0x0 + bne _020CC8B0 +_020CC8C8: + str r12, [r1, #0x4] + str lr, [r1, #0x0] + cmp r12, #0x0 + beq _020CC908 + str r1, [r12, #0x0] + ldr r3, [r1, #0x8] + add r2, r1, r3 + cmp r2, r12 + bne _020CC908 + ldr r2, [r12, #0x8] + add r2, r3, r2 + str r2, [r1, #0x8] + ldr r12, [r12, #0x4] + str r12, [r1, #0x4] + cmp r12, #0x0 + strne r1, [r12, #0x0] +_020CC908: + cmp lr, #0x0 + beq _020CC950 + str r1, [lr, #0x4] + ldr r2, [lr, #0x8] + add r3, lr, r2 + cmp r3, r1 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r1, [r1, #0x8] + add sp, sp, #0x4 + add r1, r2, r1 + str r1, [lr, #0x8] + str r12, [lr, #0x4] + cmp r12, #0x0 + strne lr, [r12, #0x0] + ldmia sp!, {lr} + bx lr +_020CC950: + mov r0, r1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start DLExtract +DLExtract: ; 0x020CC960 + ldr r3, [r1, #0x4] + cmp r3, #0x0 + ldrne r2, [r1, #0x0] + strne r2, [r3, #0x0] + ldr r2, [r1, #0x0] + cmp r2, #0x0 + ldreq r0, [r1, #0x4] + ldrne r1, [r1, #0x4] + strne r1, [r2, #0x4] + bx lr + + arm_func_start DLAddFront +DLAddFront: ; 0x020CC988 + str r0, [r1, #0x4] + mov r2, #0x0 + str r2, [r1, #0x0] + cmp r0, #0x0 + strne r1, [r0, #0x0] + mov r0, r1 + bx lr + + arm_func_start OS_GetDTCMAddress +OS_GetDTCMAddress: ; 0x020CC9A4 + mrc p15, 0x0, r0, c9, c1, 0x0 + ldr r1, _020CC9B4 ; =0xFFFFF000 + and r0, r0, r1 + bx lr + .balign 4 +_020CC9B4: .word 0xFFFFF000 + + arm_func_start OS_EnableProtectionUnit +OS_EnableProtectionUnit: ; 0x020CC9B8 + mrc p15, 0x0, r0, c1, c0, 0x0 + orr r0, r0, #0x1 + mcr p15, 0x0, r0, c1, c0, 0x0 + bx lr + + arm_func_start OS_DisableProtectionUnit +OS_DisableProtectionUnit: ; 0x020CC9C8 + mrc p15, 0x0, r0, c1, c0, 0x0 + bic r0, r0, #0x1 + mcr p15, 0x0, r0, c1, c0, 0x0 + bx lr + + arm_func_start OS_SetDPermissionsForProtectionRegion +OS_SetDPermissionsForProtectionRegion: ; 0x020CC9D8 + mrc p15, 0x0, r2, c5, c0, 0x2 + bic r2, r2, r0 + orr r2, r2, r1 + mcr p15, 0x0, r2, c5, c0, 0x2 + bx lr + + arm_func_start OS_SetProtectionRegion1 +OS_SetProtectionRegion1: ; 0x020CC9EC + mcr p15, 0x0, r0, c6, c1, 0x0 + bx lr + + arm_func_start OS_SetProtectionRegion2 +OS_SetProtectionRegion2: ; 0x020CC9F4 + mcr p15, 0x0, r0, c6, c2, 0x0 + bx lr + + arm_func_start OSi_ExceptionHandler +OSi_ExceptionHandler: ; 0x020CC9FC + ldr ip, _020CCA68 ; =0x021D3724 + ldr r12, [r12, #0x0] + cmp r12, #0x0 + movne lr, pc + bxne r12 + ldr ip, _020CCA6C ; =0x02000000 + stmdb r12!, {r0-r3,sp-lr} + and r0, sp, #0x1 + mov sp, r12 + mrs r1, cpsr + and r1, r1, #0x1f + teq r1, #0x17 + bne _020CCA38 + bl OSi_GetAndDisplayContext + b _020CCA44 +_020CCA38: + teq r1, #0x1b + bne _020CCA44 + bl OSi_GetAndDisplayContext +_020CCA44: + ldr ip, _020CCA68 ; =0x021D3724 + ldr r12, [r12, #0x0] + cmp r12, #0x0 +_020CCA50: + beq _020CCA50 +_020CCA54: + mov r0, r0 + b _020CCA54 +_020CCA5C: + .byte 0x0F, 0x50, 0xBD, 0xE8 + .byte 0x0C, 0xD0, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 +_020CCA68: .word 0x021D3724 +_020CCA6C: .word 0x02000000 + + arm_func_start OSi_GetAndDisplayContext +OSi_GetAndDisplayContext: ; 0x020CCA70 + stmdb sp!, {r0,lr} + bl OSi_SetExContext + bl OSi_DisplayExContext + ldmia sp!, {r0,lr} + bx lr + + arm_func_start OSi_SetExContext +OSi_SetExContext: ; 0x020CCA84 + ldr r1, _020CCB10 ; =0x021D3728 + mrs r2, cpsr + str r2, [r1, #0x74] + str r0, [r1, #0x6c] + ldr r0, [r12, #0x0] + str r0, [r1, #0x4] + ldr r0, [r12, #0x4] + str r0, [r1, #0x8] + ldr r0, [r12, #0x8] + str r0, [r1, #0xc] + ldr r0, [r12, #0xc] + str r0, [r1, #0x10] + ldr r2, [r12, #0x10] + bic r2, r2, #0x1 + add r0, r1, #0x14 + stmia r0, {r4-r11} + str r12, [r1, #0x70] + ldr r0, [r2, #0x0] + str r0, [r1, #0x64] + ldr r3, [r2, #0x4] + str r3, [r1, #0x0] + ldr r0, [r2, #0x8] + str r0, [r1, #0x34] + ldr r0, [r2, #0xc] + str r0, [r1, #0x40] + mrs r0, cpsr + orr r3, r3, #0x80 + bic r3, r3, #0x20 + msr cpsr_fsxc, r3 + str sp, [r1, #0x38] + str lr, [r1, #0x3c] + mrs r2, spsr + str r2, [r1, #0x7c] + msr cpsr_fsxc, r0 + bx lr + .balign 4 +_020CCB10: .word 0x021D3728 + + arm_func_start OSi_DisplayExContext +OSi_DisplayExContext: ; 0x020CCB14 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020CCB70 ; =0x021D371C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + mov r0, sp + ldr r1, _020CCB74 ; =0x0000009F + msr cpsr_fsxc, r1 + mov sp, r0 + bl OS_EnableProtectionUnit + ldr r1, _020CCB78 ; =0x021D3720 + ldr r0, _020CCB70 ; =0x021D371C + ldr r1, [r1, #0x0] + ldr r2, [r0, #0x0] + ldr r0, _020CCB7C ; =0x021D3728 + blx r2 + bl OS_DisableProtectionUnit + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CCB70: .word 0x021D371C +_020CCB74: .word 0x0000009F +_020CCB78: .word 0x021D3720 +_020CCB7C: .word 0x021D3728 + + arm_func_start OS_InitException +OS_InitException: ; 0x020CCB80 + ldr r0, _020CCBDC ; =0x027FFD9C + ldr r1, [r0, #0x0] + cmp r1, #0x2600000 + blo _020CCBA0 + cmp r1, #0x2800000 + ldrlo r0, _020CCBE0 ; =0x021D3724 + strcc r1, [r0, #0x0] + blo _020CCBAC +_020CCBA0: + ldr r0, _020CCBE0 ; =0x021D3724 + mov r1, #0x0 + str r1, [r0, #0x0] +_020CCBAC: + ldr r0, _020CCBE0 ; =0x021D3724 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldreq r2, _020CCBE4 ; =OSi_ExceptionHandler + ldreq r1, _020CCBDC ; =0x027FFD9C + ldreq r0, _020CCBE8 ; =0x027E3000 + streq r2, [r1, #0x0] + streq r2, [r0, #0xfdc] + ldr r0, _020CCBEC ; =0x021D371C + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_020CCBDC: .word 0x027FFD9C +_020CCBE0: .word 0x021D3724 +_020CCBE4: .word OSi_ExceptionHandler +_020CCBE8: .word 0x027E3000 +_020CCBEC: .word 0x021D371C + + arm_func_start OSi_SetTimerReserved +OSi_SetTimerReserved: ; 0x020CCBF0 + ldr r1, _020CCC08 ; =0x021D37A8 + mov r2, #0x1 + ldrh r3, [r1, #0x0] + orr r0, r3, r2, lsl r0 + strh r0, [r1, #0x0] + bx lr + .balign 4 +_020CCC08: .word 0x021D37A8 + + arm_func_start OS_GetTickLo +OS_GetTickLo: ; 0x020CCC0C + ldr r0, _020CCC18 ; =0x04000100 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 +_020CCC18: .word 0x04000100 + + arm_func_start OS_GetTick +OS_GetTick: ; 0x020CCC1C + stmdb sp!, {lr} + sub sp, sp, #0xc + bl OS_DisableInterrupts + ldr r1, _020CCCBC ; =0x04000100 + ldr r3, _020CCCC0 ; =0x021D37B4 + ldrh r12, [r1, #0x0] + ldr r2, _020CCCC4 ; =0x0000FFFF + mvn r1, #0x0 + strh r12, [sp, #0x0] + ldr r12, [r3, #0x0] + ldr r3, [r3, #0x4] + and r1, r12, r1 + and r2, r3, r2 + str r1, [sp, #0x4] + ldr r1, _020CCCC8 ; =0x04000214 + str r2, [sp, #0x8] + ldr r1, [r1, #0x0] + ands r1, r1, #0x8 + beq _020CCC90 + ldrh r1, [sp, #0x0] + ands r1, r1, #0x8000 + bne _020CCC90 + ldr r3, [sp, #0x4] + mov r1, #0x1 + ldr r2, [sp, #0x8] + adds r3, r3, r1 + adc r1, r2, #0x0 + str r3, [sp, #0x4] + str r1, [sp, #0x8] +_020CCC90: + bl OS_RestoreInterrupts + ldr r2, [sp, #0x4] + ldr r1, [sp, #0x8] + ldrh r0, [sp, #0x0] + mov r1, r1, lsl #0x10 + orr r1, r1, r2, lsr #0x10 + orr r1, r1, r0, asr #0x1f + orr r0, r0, r2, lsl #0x10 + add sp, sp, #0xc + ldmia sp!, {lr} + bx lr + .balign 4 +_020CCCBC: .word 0x04000100 +_020CCCC0: .word 0x021D37B4 +_020CCCC4: .word 0x0000FFFF +_020CCCC8: .word 0x04000214 + + arm_func_start OSi_CountUpTick +OSi_CountUpTick: ; 0x020CCCCC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _020CCD40 ; =0x021D37B4 + ldr r1, _020CCD44 ; =0x021D37B0 + ldr r12, [r2, #0x0] + mov r0, #0x1 + ldr r3, [r2, #0x4] + adds r12, r12, r0 + ldr r0, [r1, #0x0] + adc r3, r3, #0x0 + str r12, [r2, #0x0] + str r3, [r2, #0x4] + cmp r0, #0x0 + mov r3, #0x0 + beq _020CCD24 + ldr r2, _020CCD48 ; =0x04000102 + ldr r0, _020CCD4C ; =0x04000100 + strh r3, [r2, #0x0] + strh r3, [r0, #0x0] + mov r0, #0xc1 + strh r0, [r2, #0x0] + str r3, [r1, #0x0] +_020CCD24: + mov r0, #0x0 + ldr r1, _020CCD50 ; =OSi_CountUpTick + mov r2, r0 + bl OSi_EnterTimerCallback + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CCD40: .word 0x021D37B4 +_020CCD44: .word 0x021D37B0 +_020CCD48: .word 0x04000102 +_020CCD4C: .word 0x04000100 +_020CCD50: .word OSi_CountUpTick + + arm_func_start OS_IsTickAvailable +OS_IsTickAvailable: ; 0x020CCD54 + ldr r0, _020CCD60 ; =0x021D37AC + ldrh r0, [r0, #0x0] + bx lr + .balign 4 +_020CCD60: .word 0x021D37AC + + arm_func_start OS_InitTick +OS_InitTick: ; 0x020CCD64 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CCDE8 ; =0x021D37AC + ldrh r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + mov r2, #0x1 + mov r0, #0x0 + strh r2, [r1, #0x0] + bl OSi_SetTimerReserved + ldr r0, _020CCDEC ; =0x021D37B4 + mov r2, #0x0 + str r2, [r0, #0x0] + ldr r3, _020CCDF0 ; =0x04000102 + str r2, [r0, #0x4] + ldr r0, _020CCDF4 ; =0x04000100 + strh r2, [r3, #0x0] + ldr r1, _020CCDF8 ; =OSi_CountUpTick + strh r2, [r0, #0x0] + mov r2, #0xc1 + mov r0, #0x8 + strh r2, [r3, #0x0] + bl OS_SetIrqFunction + mov r0, #0x8 + bl OS_EnableIrqMask + ldr r0, _020CCDFC ; =0x021D37B0 + mov r1, #0x0 + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CCDE8: .word 0x021D37AC +_020CCDEC: .word 0x021D37B4 +_020CCDF0: .word 0x04000102 +_020CCDF4: .word 0x04000100 +_020CCDF8: .word OSi_CountUpTick +_020CCDFC: .word 0x021D37B0 + + arm_func_start OSi_AlarmHandler +OSi_AlarmHandler: ; 0x020CCE00 + stmdb sp!, {r0,lr} + bl OSi_ArrangeTimer + ldmia sp!, {r0,lr} + bx lr + + arm_func_start OSi_ArrangeTimer +OSi_ArrangeTimer: ; 0x020CCE10 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r1, _020CCF1C ; =0x04000106 + mov r2, #0x0 + mov r0, #0x10 + strh r2, [r1, #0x0] + bl OS_DisableIrqMask + ldr r0, _020CCF20 ; =0x027E0000 + add r0, r0, #0x3000 + ldr r1, [r0, #0xff8] + orr r1, r1, #0x10 + str r1, [r0, #0xff8] + bl OS_GetTick + ldr r2, _020CCF24 ; =0x021D37C0 + ldr r4, [r2, #0x0] + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r3, [r4, #0x10] + ldr r12, [r4, #0xc] + cmp r1, r3 + cmpeq r0, r12 + bhs _020CCE84 + mov r0, r4 + bl OSi_SetTimer + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020CCE84: + ldr r1, [r4, #0x18] + cmp r1, #0x0 + moveq r0, #0x0 + streq r0, [r2, #0x4] + str r1, [r2, #0x0] + movne r0, #0x0 + strne r0, [r1, #0x14] + ldr r2, [r4, #0x1c] + ldr r1, [r4, #0x20] + mov r0, #0x0 + cmp r1, r0 + ldr r5, [r4, #0x0] + cmpeq r2, r0 + streq r0, [r4, #0x0] + cmp r5, #0x0 + beq _020CCECC + ldr r0, [r4, #0x4] + blx r5 +_020CCECC: + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0x20] + mov r1, #0x0 + cmp r0, r1 + cmpeq r2, r1 + beq _020CCEF4 + mov r0, r4 + mov r2, r1 + str r5, [r4, #0x0] + bl OSi_InsertAlarm +_020CCEF4: + ldr r0, _020CCF24 ; =0x021D37C0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + bl OSi_SetTimer + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CCF1C: .word 0x04000106 +_020CCF20: .word 0x027E0000 +_020CCF24: .word 0x021D37C0 + + arm_func_start OS_CancelAlarm +OS_CancelAlarm: ; 0x020CCF28 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 mov r5, r0 - mov r4, r1 - bl FUN_020CD310 -_020C9C1C: - .byte 0x00, 0x00, 0x55, 0xE3 - .byte 0x05, 0x00, 0x00, 0x0A, 0x54, 0x10, 0x9F, 0xE5, 0x04, 0x20, 0xE0, 0xE1, 0x03, 0x1A, 0x81, 0xE2 - .byte 0xF8, 0x3F, 0x91, 0xE5, 0x02, 0x20, 0x03, 0xE0, 0xF8, 0x2F, 0x81, 0xE5, 0xB8, 0x0D, 0x00, 0xEB - .byte 0x38, 0x10, 0x9F, 0xE5, 0x03, 0x0A, 0x81, 0xE2, 0xF8, 0x0F, 0x90, 0xE5, 0x00, 0x00, 0x14, 0xE0 - .byte 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x60, 0x81, 0xE0 - .byte 0x20, 0x50, 0x9F, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x9D, 0x05, 0x00, 0xEB, 0x00, 0x00, 0x96, 0xE5 - .byte 0x00, 0x00, 0x14, 0xE0, 0xFA, 0xFF, 0xFF, 0x0A, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x7E, 0x02, 0xF8, 0x3F, 0x00, 0x00, 0x60, 0x00, 0x7E, 0x02, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x07, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x06, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x05, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x04, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x03, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x02, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x9D, 0x0C, 0x02, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x0C, 0x10, 0xA0, 0xE3, 0x90, 0x01, 0x04, 0xE0, 0x70, 0x20, 0x9F, 0xE5 - .byte 0x70, 0x30, 0x9F, 0xE5, 0x80, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0x92, 0xE7, 0xB0, 0x30, 0x93, 0xE1 - .byte 0x01, 0x50, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x82, 0xE7, 0x00, 0x00, 0x51, 0xE3 - .byte 0x15, 0x53, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0x0A, 0x4C, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE7 - .byte 0x31, 0xFF, 0x2F, 0xE1, 0x44, 0x00, 0x9F, 0xE5, 0x44, 0x10, 0x9F, 0xE5, 0x03, 0x0A, 0x80, 0xE2 - .byte 0xF8, 0x2F, 0x90, 0xE5, 0x05, 0x20, 0x82, 0xE1, 0xF8, 0x2F, 0x80, 0xE5, 0x04, 0x00, 0x91, 0xE7 - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0x05, 0x00, 0xA0, 0xE1, 0x22, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0x34, 0x1D, 0x02, 0x18, 0x68, 0x10, 0x02, 0x24, 0x34, 0x1D, 0x02 - .byte 0x00, 0x00, 0x7E, 0x02, 0x20, 0x34, 0x1D, 0x02, 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0xC0, 0x9F, 0xE5 - .byte 0x1C, 0x30, 0x9F, 0xE5, 0x03, 0x0A, 0x8C, 0xE2, 0x18, 0x20, 0x9F, 0xE5, 0x18, 0x10, 0x9F, 0xE5 - .byte 0x7C, 0x3F, 0x80, 0xE5, 0xFE, 0x0D, 0x8C, 0xE2, 0x01, 0x20, 0x00, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x7E, 0x02, 0x7D, 0x59, 0xDB, 0xFD, 0x5B, 0xDD, 0xF9, 0x7B, 0x00, 0x04, 0x00, 0x00 - .byte 0x24, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x30, 0xDC, 0xE1, 0x1C, 0x20, 0x9F, 0xE5 - .byte 0xB0, 0x10, 0xCC, 0xE1, 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x82, 0xE5, 0xB0, 0x00, 0xDC, 0xE1 - .byte 0x01, 0x00, 0xA0, 0xE1, 0xB0, 0x30, 0xCC, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x02, 0x00, 0x04 - .byte 0x14, 0x02, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x30, 0xE0, 0x9F, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0xB0, 0xC0, 0xDE, 0xE1, 0x28, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xE0, 0xE1 - .byte 0xB0, 0x30, 0xCE, 0xE1, 0x00, 0x00, 0x92, 0xE5, 0x01, 0x10, 0x00, 0xE0, 0x00, 0x10, 0x82, 0xE5 - .byte 0xB0, 0x10, 0xDE, 0xE1, 0xB0, 0xC0, 0xCE, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x02, 0x00, 0x04, 0x10, 0x02, 0x00, 0x04, 0x28, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x30, 0xDC, 0xE1, 0x20, 0x20, 0x9F, 0xE5, 0xB0, 0x10, 0xCC, 0xE1 - .byte 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x81, 0xE1, 0x00, 0x00, 0x82, 0xE5, 0xB0, 0x00, 0xDC, 0xE1 - .byte 0x01, 0x00, 0xA0, 0xE1, 0xB0, 0x30, 0xCC, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x02, 0x00, 0x04 - .byte 0x10, 0x02, 0x00, 0x04, 0x24, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x30, 0xDC, 0xE1 - .byte 0x1C, 0x20, 0x9F, 0xE5, 0xB0, 0x10, 0xCC, 0xE1, 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x82, 0xE5 - .byte 0xB0, 0x00, 0xDC, 0xE1, 0x01, 0x00, 0xA0, 0xE1, 0xB0, 0x30, 0xCC, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0x02, 0x00, 0x04, 0x10, 0x02, 0x00, 0x04, 0x10, 0x40, 0x2D, 0xE9, 0x0C, 0x30, 0xA0, 0xE3 - .byte 0x90, 0x03, 0x04, 0xE0, 0x2C, 0xC0, 0x9F, 0xE5, 0x03, 0x00, 0x80, 0xE2, 0x01, 0x30, 0xA0, 0xE3 - .byte 0x13, 0x00, 0xA0, 0xE1, 0x20, 0x30, 0x9F, 0xE5, 0x04, 0x10, 0x8C, 0xE7, 0x04, 0x20, 0x83, 0xE7 - .byte 0xD9, 0xFF, 0xFF, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE7 - .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x4C, 0x34, 0x1D, 0x02, 0x54, 0x34, 0x1D, 0x02 - .byte 0x50, 0x34, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x0C, 0x30, 0xA0, 0xE3, 0x90, 0x03, 0x06, 0xE0 - .byte 0x2C, 0xC0, 0x9F, 0xE5, 0x08, 0x40, 0x80, 0xE2, 0x01, 0x50, 0xA0, 0xE3, 0x15, 0x04, 0xA0, 0xE1 - .byte 0x20, 0x30, 0x9F, 0xE5, 0x06, 0x10, 0x8C, 0xE7, 0x06, 0x20, 0x83, 0xE7, 0xC6, 0xFF, 0xFF, 0xEB - .byte 0x15, 0x14, 0x00, 0xE0, 0x10, 0x00, 0x9F, 0xE5, 0x06, 0x10, 0x80, 0xE7, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0x34, 0x1D, 0x02, 0x24, 0x34, 0x1D, 0x02, 0x20, 0x34, 0x1D, 0x02 - .byte 0x7C, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x01, 0x10, 0x10, 0xE2, 0x15, 0x00, 0x00, 0x0A - .byte 0x08, 0x00, 0x53, 0xE3, 0x07, 0x00, 0x00, 0xBA, 0x0B, 0x00, 0x53, 0xE3, 0x05, 0x00, 0x00, 0xCA - .byte 0x08, 0x10, 0x43, 0xE2, 0x0C, 0x00, 0xA0, 0xE3, 0x91, 0x00, 0x02, 0xE0, 0x54, 0x00, 0x9F, 0xE5 - .byte 0x02, 0x00, 0x90, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1, 0x03, 0x00, 0x53, 0xE3, 0x07, 0x00, 0x00, 0xBA - .byte 0x06, 0x00, 0x53, 0xE3, 0x05, 0x00, 0x00, 0xCA, 0x01, 0x10, 0x83, 0xE2, 0x0C, 0x00, 0xA0, 0xE3 - .byte 0x91, 0x00, 0x02, 0xE0, 0x2C, 0x00, 0x9F, 0xE5, 0x02, 0x00, 0x90, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x92, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x30, 0x83, 0xE2, 0x16, 0x00, 0x53, 0xE3 - .byte 0xA0, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0x82, 0xE2, 0xE2, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x7E, 0x02, 0x1C, 0x34, 0x1D, 0x02, 0xF0, 0x41, 0x2D, 0xE9 - .byte 0x00, 0x80, 0xA0, 0xE3, 0x78, 0xE0, 0x9F, 0xE5, 0x78, 0x50, 0x9F, 0xE5, 0x08, 0x60, 0xA0, 0xE1 - .byte 0x08, 0xC0, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE3, 0x0C, 0x20, 0xA0, 0xE3, 0x01, 0x40, 0x10, 0xE2 - .byte 0x11, 0x00, 0x00, 0x0A, 0x06, 0x70, 0xA0, 0xE1, 0x08, 0x00, 0x58, 0xE3, 0x03, 0x00, 0x00, 0xBA - .byte 0x0B, 0x00, 0x58, 0xE3, 0x08, 0x40, 0x48, 0xD2, 0x94, 0x52, 0x27, 0xD0, 0x06, 0x00, 0x00, 0xDA - .byte 0x03, 0x00, 0x58, 0xE3, 0x03, 0x00, 0x00, 0xBA, 0x06, 0x00, 0x58, 0xE3, 0x01, 0x40, 0x88, 0xD2 - .byte 0x94, 0x52, 0x27, 0xD0, 0x00, 0x00, 0x00, 0xDA, 0x08, 0x11, 0x8E, 0xE7, 0x00, 0x00, 0x57, 0xE3 - .byte 0x00, 0x10, 0x87, 0x15, 0x08, 0xC0, 0x87, 0x15, 0x04, 0x30, 0x87, 0x15, 0x01, 0x80, 0x88, 0xE2 - .byte 0x16, 0x00, 0x58, 0xE3, 0xA0, 0x00, 0xA0, 0xE1, 0xE7, 0xFF, 0xFF, 0xBA, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x7E, 0x02, 0x1C, 0x34, 0x1D, 0x02, 0x0C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x60, 0x00, 0x7E, 0x02, 0x00, 0x10, 0x9F, 0xE5, 0x11, 0xFF, 0x2F, 0xE1, 0xE8, 0xA1, 0x0C, 0x02 - .byte 0x48, 0x30, 0x9F, 0xE5, 0x00, 0x10, 0x93, 0xE5, 0x11, 0x2F, 0x6F, 0xE1, 0x20, 0x00, 0x52, 0xE3 - .byte 0x40, 0x00, 0xA0, 0x13, 0x06, 0x00, 0x00, 0x1A, 0x04, 0x30, 0x83, 0xE2, 0x00, 0x10, 0x93, 0xE5 - .byte 0x11, 0x2F, 0x6F, 0xE1, 0x20, 0x00, 0x52, 0xE3, 0x24, 0x00, 0x9F, 0xE5, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x60, 0x00, 0xA0, 0xE3, 0x02, 0x00, 0x80, 0xE0, 0x02, 0x11, 0xA0, 0xE3, 0x31, 0x12, 0xA0, 0xE1 - .byte 0x00, 0x20, 0x93, 0xE5, 0x01, 0x20, 0xC2, 0xE1, 0x00, 0x20, 0x83, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB0, 0xFF, 0x7F, 0x02, 0xFD, 0xFF, 0xFF, 0xFF, 0x24, 0x30, 0x9F, 0xE5, 0x60, 0x00, 0x50, 0xE3 - .byte 0x04, 0x30, 0x83, 0x52, 0x60, 0x00, 0x40, 0x52, 0x40, 0x00, 0x40, 0x42, 0x02, 0x11, 0xA0, 0xE3 - .byte 0x31, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0x93, 0xE5, 0x01, 0x20, 0x82, 0xE1, 0x00, 0x20, 0x83, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0xFF, 0x7F, 0x02, 0xB4, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x0C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0x02, 0x0B, 0x80, 0xE3, 0xB0, 0x00, 0xC1, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x02, 0x00, 0x04, 0x0C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1 - .byte 0x02, 0x0B, 0xC0, 0xE3, 0xB0, 0x00, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x02, 0x00, 0x04 - .byte 0x08, 0xC0, 0x9F, 0xE5, 0x08, 0x10, 0x9F, 0xE5, 0x08, 0x20, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0xA8, 0xA2, 0x0C, 0x02, 0xE0, 0xFF, 0x7F, 0x02, 0x30, 0xA1, 0x0C, 0x02, 0x08, 0xC0, 0x9F, 0xE5 - .byte 0x08, 0x10, 0x9F, 0xE5, 0x08, 0x20, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0xA3, 0x0C, 0x02 - .byte 0xE0, 0xFF, 0x7F, 0x02, 0x48, 0xA1, 0x0C, 0x02, 0x0C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1 - .byte 0x80, 0x00, 0x80, 0xE3, 0xB0, 0x00, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x02, 0x00, 0x04 - .byte 0x0C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0x80, 0x00, 0xC0, 0xE3, 0xB0, 0x00, 0xC1, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x02, 0x00, 0x04, 0x0C, 0xC0, 0x9F, 0xE5, 0x0C, 0x10, 0x9F, 0xE5 - .byte 0x0C, 0x20, 0x9F, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xA2, 0x0C, 0x02 - .byte 0xE8, 0xFF, 0x7F, 0x02, 0xB0, 0xA1, 0x0C, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x0C, 0x10, 0x9F, 0xE5 - .byte 0x0C, 0x20, 0x9F, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xB8, 0xA2, 0x0C, 0x02 - .byte 0xE8, 0xFF, 0x7F, 0x02, 0x98, 0xA1, 0x0C, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x0C, 0x10, 0x9F, 0xE5 - .byte 0x0C, 0x20, 0x9F, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x58, 0xA3, 0x0C, 0x02 - .byte 0xE8, 0xFF, 0x7F, 0x02, 0xB0, 0xA1, 0x0C, 0x02, 0xF0, 0x43, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x03, 0x60, 0xB0, 0xE1, 0x00, 0x90, 0xA0, 0xE1, 0x01, 0x80, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1 - .byte 0x02, 0x00, 0x00, 0x0A, 0x3C, 0x0C, 0x00, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x00, 0x00, 0xEA - .byte 0x2E, 0x0C, 0x00, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x09, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE1 - .byte 0xAE, 0x10, 0x00, 0xEB, 0x00, 0x40, 0xB0, 0xE1, 0x03, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x57, 0xE3 - .byte 0x00, 0x00, 0x00, 0x0A, 0x37, 0xFF, 0x2F, 0xE1, 0xB4, 0x90, 0xC8, 0xE1, 0x00, 0x00, 0x56, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1, 0x30, 0x0C, 0x00, 0xEB, 0x01, 0x00, 0x00, 0xEA - .byte 0x05, 0x00, 0xA0, 0xE1, 0x22, 0x0C, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xB8, 0xA2, 0x0C, 0x02, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x01, 0x70, 0xA0, 0xE1, 0xB4, 0x10, 0xD7, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE1, 0x04, 0xD0, 0x8D, 0x12, 0x01, 0x00, 0xE0, 0x13, 0xF0, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0x55, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x12, 0x0C, 0x00, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x00, 0x00, 0xEA, 0x04, 0x0C, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0xB4, 0x00, 0xC7, 0xE1, 0x00, 0x00, 0x56, 0xE3, 0x00, 0x00, 0x00, 0x0A - .byte 0x36, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x87, 0xE5, 0x00, 0x00, 0x55, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x0C, 0x00, 0xEB, 0x01, 0x00, 0x00, 0xEA - .byte 0x04, 0x00, 0xA0, 0xE1, 0xFA, 0x0B, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x58, 0xA3, 0x0C, 0x02, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x80, 0xA0, 0xE1 - .byte 0x01, 0x70, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1, 0xAD, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0xF0, 0x41, 0xBD, 0xD8, 0x1E, 0xFF, 0x2F, 0xD1, 0x01, 0x4B, 0xA0, 0xE3 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x99, 0xD8, 0xFC, 0xFB, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 - .byte 0x06, 0x20, 0xA0, 0xE1, 0x05, 0x30, 0xA0, 0xE1, 0xA2, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0xF6, 0xFF, 0xFF, 0xCA, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0xC8, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x20, 0xA0, 0xE3 - .byte 0xB0, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x80, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x7E, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x81, 0xE5, 0xD7, 0xFF, 0xFF, 0xEB, 0x98, 0x50, 0x9F, 0xE5, 0xB6, 0x00, 0xD5, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x01, 0x4B, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x7A, 0xD8, 0xFC, 0xFB, 0xB6, 0x00, 0xD5, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x1A - .byte 0x74, 0x20, 0x9F, 0xE5, 0x00, 0xC0, 0xE0, 0xE3, 0x01, 0x08, 0xA0, 0xE3, 0x6C, 0x30, 0x9F, 0xE5 - .byte 0x6C, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0x82, 0xE5, 0x00, 0xC0, 0x60, 0xE2, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x28, 0x20, 0xA0, 0xE3, 0x00, 0xC0, 0x83, 0xE5, 0x6F, 0x0F, 0x00, 0xEB, 0x54, 0xC0, 0x9F, 0xE5 - .byte 0x40, 0x10, 0x9F, 0xE5, 0xB0, 0x30, 0xDC, 0xE1, 0x7E, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x02, 0x3B, 0x83, 0xE3, 0xB0, 0x30, 0xCC, 0xE1, 0xB0, 0x30, 0xDC, 0xE1, 0x80, 0x30, 0x83, 0xE3 - .byte 0xB0, 0x30, 0xCC, 0xE1, 0x8F, 0xFF, 0xFF, 0xEB, 0x18, 0x10, 0x9F, 0xE5, 0x7F, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x20, 0xA0, 0xE3, 0xB3, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x34, 0x1D, 0x02, 0xF0, 0xFF, 0x7F, 0x02, 0xB0, 0xFF, 0x7F, 0x02 - .byte 0xB4, 0xFF, 0x7F, 0x02, 0xC0, 0xFF, 0x7F, 0x02, 0x04, 0x02, 0x00, 0x04, 0xF0, 0x4F, 0x2D, 0xE9 - .byte 0x64, 0xD0, 0x4D, 0xE2, 0x02, 0x90, 0xA0, 0xE1, 0x54, 0x10, 0x8D, 0xE5, 0x5C, 0x00, 0x8D, 0xE5 - .byte 0x58, 0x00, 0x8D, 0xE5, 0xD0, 0x00, 0xD9, 0xE1, 0x00, 0x10, 0x8D, 0xE5, 0x03, 0xB0, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x13, 0x02, 0x00, 0x0A, 0x0A, 0x00, 0xA0, 0xE3, 0x0C, 0x00, 0x8D, 0xE5 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x8D, 0xE5, 0x20, 0x00, 0xA0, 0xE3, 0x1C, 0x00, 0x8D, 0xE5 - .byte 0x30, 0x00, 0xA0, 0xE3, 0x20, 0x00, 0x8D, 0xE5, 0x00, 0x00, 0xE0, 0xE3, 0x08, 0x00, 0x8D, 0xE5 - .byte 0x57, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x8D, 0xE5, 0x08, 0x00, 0xA0, 0xE3, 0x14, 0x00, 0x8D, 0xE5 - .byte 0x37, 0x00, 0xA0, 0xE3, 0x18, 0x00, 0x8D, 0xE5, 0x10, 0x00, 0xA0, 0xE3, 0x24, 0x00, 0x8D, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x28, 0x00, 0x8D, 0xE5, 0x2B, 0x00, 0xA0, 0xE3, 0x34, 0x00, 0x8D, 0xE5 - .byte 0x2D, 0x00, 0xA0, 0xE3, 0x30, 0x00, 0x8D, 0xE5, 0x02, 0x00, 0xA0, 0xE3, 0x2C, 0x00, 0x8D, 0xE5 - .byte 0xD0, 0x10, 0xD9, 0xE1, 0xFF, 0x00, 0x01, 0xE2, 0x20, 0x00, 0x20, 0xE2, 0xA1, 0x00, 0x40, 0xE2 - .byte 0x3C, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x2A, 0x54, 0x00, 0x8D, 0xE2, 0x54, 0x02, 0x00, 0xEB - .byte 0xD1, 0x10, 0xF9, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0xEB, 0x01, 0x00, 0x0A, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x01, 0x90, 0x89, 0xE2, 0x4E, 0x02, 0x00, 0xEB, 0xE7, 0x01, 0x00, 0xEA, 0x25, 0x00, 0x51, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x90, 0x89, 0xE2, 0x48, 0x02, 0x00, 0xEB - .byte 0xE1, 0x01, 0x00, 0xEA, 0x04, 0x60, 0x9D, 0xE5, 0x08, 0x50, 0x9D, 0xE5, 0x0C, 0x20, 0x9D, 0xE5 - .byte 0x10, 0x00, 0x9D, 0xE5, 0x06, 0xA0, 0xA0, 0xE1, 0x09, 0x30, 0xA0, 0xE1, 0xD1, 0x40, 0xF9, 0xE1 - .byte 0x20, 0x00, 0x54, 0xE3, 0x02, 0x00, 0x00, 0xCA, 0x20, 0x00, 0x54, 0xE3, 0x10, 0x00, 0x00, 0x0A - .byte 0x15, 0x00, 0x00, 0xEA, 0x30, 0x00, 0x54, 0xE3, 0x13, 0x00, 0x00, 0xCA, 0x2B, 0x00, 0x54, 0xE3 - .byte 0x11, 0x00, 0x00, 0xBA, 0x2B, 0x00, 0x54, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x2D, 0x00, 0x54, 0xE3 - .byte 0x09, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x54, 0xE3, 0x09, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x00, 0xEA - .byte 0xD1, 0x10, 0x59, 0xE1, 0x20, 0x00, 0x51, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x02, 0x60, 0x86, 0xE3 - .byte 0xE9, 0xFF, 0xFF, 0xEA, 0x01, 0x60, 0x86, 0xE3, 0xE7, 0xFF, 0xFF, 0xEA, 0x08, 0x60, 0x86, 0xE3 - .byte 0xE5, 0xFF, 0xFF, 0xEA, 0x10, 0x60, 0x86, 0xE3, 0xE3, 0xFF, 0xFF, 0xEA, 0x2A, 0x00, 0x54, 0xE3 - .byte 0x0A, 0x00, 0x00, 0x1A, 0x04, 0xB0, 0x8B, 0xE2, 0x04, 0xA0, 0x1B, 0xE5, 0x01, 0x90, 0x89, 0xE2 - .byte 0x00, 0x00, 0x5A, 0xE3, 0x00, 0xA0, 0x6A, 0xB2, 0x08, 0x60, 0x86, 0xB3, 0x08, 0x00, 0x00, 0xEA - .byte 0xD1, 0x40, 0xD9, 0xE0, 0x0A, 0x10, 0xA0, 0xE3, 0x9A, 0x41, 0x21, 0xE0, 0x30, 0xA0, 0x41, 0xE2 - .byte 0xD0, 0x10, 0xD9, 0xE1, 0x30, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0xBA, 0x39, 0x00, 0x51, 0xE3 - .byte 0xF6, 0xFF, 0xFF, 0xDA, 0xD0, 0x10, 0xD9, 0xE1, 0x2E, 0x00, 0x51, 0xE3, 0x12, 0x00, 0x00, 0x1A - .byte 0xD1, 0x10, 0xF9, 0xE1, 0x04, 0x50, 0x9D, 0xE5, 0x2A, 0x00, 0x51, 0xE3, 0x09, 0x00, 0x00, 0x1A - .byte 0x04, 0xB0, 0x8B, 0xE2, 0x04, 0x50, 0x1B, 0xE5, 0x01, 0x90, 0x89, 0xE2, 0x00, 0x00, 0x55, 0xE3 - .byte 0x08, 0x50, 0x9D, 0xB5, 0x08, 0x00, 0x00, 0xEA, 0xD1, 0x40, 0xD9, 0xE0, 0x0A, 0x10, 0xA0, 0xE3 - .byte 0x95, 0x41, 0x21, 0xE0, 0x30, 0x50, 0x41, 0xE2, 0xD0, 0x10, 0xD9, 0xE1, 0x30, 0x00, 0x51, 0xE3 - .byte 0x01, 0x00, 0x00, 0xBA, 0x39, 0x00, 0x51, 0xE3, 0xF6, 0xFF, 0xFF, 0xDA, 0xD0, 0x10, 0xD9, 0xE1 - .byte 0x68, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x6C, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x0A - .byte 0x0A, 0x00, 0x00, 0xEA, 0xD1, 0x10, 0xF9, 0xE1, 0x68, 0x00, 0x51, 0xE3, 0x40, 0x60, 0x86, 0x13 - .byte 0x01, 0x90, 0x89, 0x02, 0x01, 0x6C, 0x86, 0x03, 0x04, 0x00, 0x00, 0xEA, 0xD1, 0x10, 0xF9, 0xE1 - .byte 0x6C, 0x00, 0x51, 0xE3, 0x20, 0x60, 0x86, 0x13, 0x01, 0x90, 0x89, 0x02, 0x80, 0x60, 0x86, 0x03 - .byte 0xD0, 0x10, 0xD9, 0xE1, 0x69, 0x00, 0x51, 0xE3, 0x10, 0x00, 0x00, 0xCA, 0x63, 0x00, 0x51, 0xE3 - .byte 0x06, 0x00, 0x00, 0xBA, 0x63, 0x00, 0x51, 0xE3, 0x29, 0x00, 0x00, 0x0A, 0x64, 0x00, 0x51, 0xE3 - .byte 0x95, 0x00, 0x00, 0x0A, 0x69, 0x00, 0x51, 0xE3, 0x93, 0x00, 0x00, 0x0A, 0x8B, 0x00, 0x00, 0xEA - .byte 0x25, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0xCA, 0x25, 0x00, 0x51, 0xE3, 0x80, 0x00, 0x00, 0x0A - .byte 0x86, 0x00, 0x00, 0xEA, 0x58, 0x00, 0x51, 0xE3, 0x18, 0x00, 0x00, 0x0A, 0x83, 0x00, 0x00, 0xEA - .byte 0x6E, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0xCA, 0x6E, 0x00, 0x51, 0xE3, 0x62, 0x00, 0x00, 0x0A - .byte 0x7E, 0x00, 0x00, 0xEA, 0x6F, 0x10, 0x41, 0xE2, 0x09, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90 - .byte 0x7A, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x77, 0x00, 0x00, 0xEA - .byte 0x76, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA, 0x74, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA - .byte 0x72, 0x00, 0x00, 0xEA, 0x71, 0x00, 0x00, 0xEA, 0x75, 0x00, 0x00, 0xEA, 0x14, 0x20, 0x9D, 0xE5 - .byte 0x01, 0x6A, 0x86, 0xE3, 0x74, 0x00, 0x00, 0xEA, 0x01, 0x6A, 0x86, 0xE3, 0x72, 0x00, 0x00, 0xEA - .byte 0x18, 0x00, 0x9D, 0xE5, 0x6E, 0x00, 0x00, 0xEA, 0x04, 0x60, 0x86, 0xE3, 0x14, 0x50, 0x9D, 0xE5 - .byte 0x6B, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x55, 0xE3, 0x64, 0x00, 0x00, 0xAA, 0x08, 0x00, 0x16, 0xE2 - .byte 0x04, 0xB0, 0x8B, 0xE2, 0x04, 0x40, 0x1B, 0xE5, 0x08, 0x00, 0x00, 0x0A, 0x04, 0x0C, 0xA0, 0xE1 - .byte 0x40, 0x1C, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0xB1, 0x01, 0x00, 0xEB, 0x1C, 0x10, 0x9D, 0xE5 - .byte 0x01, 0x20, 0x4A, 0xE2, 0x54, 0x00, 0x8D, 0xE2, 0x93, 0x01, 0x00, 0xEB, 0x0B, 0x00, 0x00, 0xEA - .byte 0x10, 0x00, 0x16, 0xE2, 0x20, 0x00, 0x9D, 0x15, 0x01, 0x20, 0x4A, 0xE2, 0x1C, 0x00, 0x9D, 0x05 - .byte 0x00, 0x0C, 0xA0, 0xE1, 0x40, 0x1C, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0x8A, 0x01, 0x00, 0xEB - .byte 0x04, 0x0C, 0xA0, 0xE1, 0x40, 0x1C, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0xA0, 0x01, 0x00, 0xEB - .byte 0x01, 0x90, 0x89, 0xE2, 0x38, 0x01, 0x00, 0xEA, 0x04, 0xB0, 0x8B, 0xE2, 0x00, 0x00, 0x55, 0xE3 - .byte 0x04, 0x70, 0x9D, 0xE5, 0x04, 0x40, 0x1B, 0xE5, 0x08, 0x00, 0x00, 0xAA, 0xD0, 0x00, 0xD4, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x01, 0x70, 0x87, 0xE2, 0xD7, 0x00, 0x94, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x05, 0x00, 0x00, 0xEA, 0x01, 0x70, 0x87, 0xE2 - .byte 0x05, 0x00, 0x57, 0xE1, 0x02, 0x00, 0x00, 0xAA, 0xD7, 0x00, 0x94, 0xE1, 0x00, 0x00, 0x50, 0xE3 - .byte 0xF9, 0xFF, 0xFF, 0x1A, 0x08, 0x00, 0x16, 0xE2, 0x07, 0xA0, 0x4A, 0xE0, 0x08, 0x00, 0x00, 0x0A - .byte 0x04, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0x52, 0x01, 0x00, 0xEB - .byte 0x1C, 0x10, 0x9D, 0xE5, 0x0A, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0x66, 0x01, 0x00, 0xEB - .byte 0x0B, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x16, 0xE2, 0x20, 0x00, 0x9D, 0x15, 0x0A, 0x20, 0xA0, 0xE1 - .byte 0x1C, 0x00, 0x9D, 0x05, 0x00, 0x0C, 0xA0, 0xE1, 0x40, 0x1C, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x5D, 0x01, 0x00, 0xEB, 0x04, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x41, 0x01, 0x00, 0xEB, 0x01, 0x90, 0x89, 0xE2, 0x0B, 0x01, 0x00, 0xEA, 0x01, 0x0C, 0x16, 0xE2 - .byte 0x58, 0x10, 0x9D, 0xE5, 0x5C, 0x00, 0x9D, 0xE5, 0x00, 0x20, 0x41, 0xE0, 0x0E, 0x00, 0x00, 0x1A - .byte 0x40, 0x00, 0x16, 0xE2, 0x04, 0xB0, 0x8B, 0x12, 0x04, 0x00, 0x1B, 0x15, 0xB0, 0x20, 0xC0, 0x11 - .byte 0x09, 0x00, 0x00, 0x1A, 0x80, 0x00, 0x16, 0xE2, 0x04, 0xB0, 0x8B, 0x02, 0x04, 0x00, 0x1B, 0x05 - .byte 0x00, 0x20, 0x80, 0x05, 0x04, 0x00, 0x00, 0x0A, 0x04, 0xB0, 0x8B, 0xE2, 0x04, 0x00, 0x1B, 0xE5 - .byte 0xC2, 0x1F, 0xA0, 0xE1, 0x00, 0x20, 0x80, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x01, 0x90, 0x89, 0xE2 - .byte 0xF5, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x83, 0xE2, 0x09, 0x00, 0x50, 0xE1, 0x03, 0x00, 0x00, 0x1A - .byte 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x90, 0x89, 0xE2, 0x55, 0x01, 0x00, 0xEB, 0xEE, 0x00, 0x00, 0xEA - .byte 0x54, 0x00, 0x8D, 0xE2, 0x03, 0x10, 0xA0, 0xE1, 0x03, 0x20, 0x49, 0xE0, 0x1E, 0x01, 0x00, 0xEB - .byte 0xE9, 0x00, 0x00, 0xEA, 0x24, 0x20, 0x9D, 0xE5, 0x01, 0x6A, 0x86, 0xE3, 0x08, 0x10, 0x16, 0xE2 - .byte 0x10, 0x60, 0xC6, 0x13, 0x00, 0x00, 0x55, 0xE3, 0x10, 0x60, 0xC6, 0xA3, 0x28, 0x50, 0x9D, 0xB5 - .byte 0x04, 0x70, 0x9D, 0xE5, 0x01, 0x1A, 0x16, 0xE2, 0x24, 0x00, 0x00, 0x0A, 0x01, 0x1C, 0x16, 0xE2 - .byte 0x04, 0xB0, 0x8B, 0x12, 0x04, 0x40, 0x5B, 0x15, 0x00, 0x10, 0xA0, 0x13, 0x0B, 0x00, 0x00, 0x1A - .byte 0x40, 0x10, 0x16, 0xE2, 0x04, 0xB0, 0x8B, 0x12, 0xB4, 0x40, 0x5B, 0x11, 0x00, 0x10, 0xA0, 0x13 - .byte 0x06, 0x00, 0x00, 0x1A, 0x80, 0x10, 0x16, 0xE2, 0x08, 0xB0, 0x8B, 0x12, 0x04, 0x10, 0x1B, 0x15 - .byte 0x08, 0x40, 0x1B, 0x15, 0x04, 0xB0, 0x8B, 0x02, 0x04, 0x40, 0x1B, 0x05, 0x00, 0x10, 0xA0, 0x03 - .byte 0x03, 0x60, 0xC6, 0xE3, 0x04, 0x30, 0x16, 0xE2, 0x3E, 0x00, 0x00, 0x0A, 0x10, 0x00, 0x52, 0xE3 - .byte 0x09, 0x00, 0x00, 0x1A, 0x00, 0x30, 0xA0, 0xE3, 0x03, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x54, 0x01 - .byte 0x38, 0x00, 0x00, 0x0A, 0x20, 0x30, 0x9D, 0xE5, 0x2C, 0x70, 0x9D, 0xE5, 0x39, 0x30, 0xCD, 0xE5 - .byte 0x21, 0x30, 0x80, 0xE2, 0x38, 0x30, 0xCD, 0xE5, 0x32, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x52, 0xE3 - .byte 0x20, 0x30, 0x9D, 0x05, 0x28, 0x70, 0x9D, 0x05, 0x38, 0x30, 0xCD, 0x05, 0x2D, 0x00, 0x00, 0xEA - .byte 0x01, 0x1C, 0x16, 0xE2, 0x04, 0xB0, 0x8B, 0x12, 0xD4, 0x40, 0x5B, 0x11, 0xC4, 0x1F, 0xA0, 0x11 - .byte 0x0B, 0x00, 0x00, 0x1A, 0x40, 0x10, 0x16, 0xE2, 0x04, 0xB0, 0x8B, 0x12, 0xF4, 0x40, 0x5B, 0x11 - .byte 0xC4, 0x1F, 0xA0, 0x11, 0x06, 0x00, 0x00, 0x1A, 0x80, 0x10, 0x16, 0xE2, 0x08, 0xB0, 0x8B, 0x12 - .byte 0x08, 0x40, 0x1B, 0x15, 0x04, 0x10, 0x1B, 0x15, 0x04, 0xB0, 0x8B, 0x02, 0x04, 0x40, 0x1B, 0x05 - .byte 0xC4, 0x1F, 0xA0, 0x01, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x80, 0x03, 0xE2, 0x03, 0x00, 0x58, 0xE1 - .byte 0x02, 0x81, 0x01, 0xE2, 0x03, 0x00, 0x58, 0x01, 0x08, 0x00, 0x00, 0x0A, 0x30, 0x70, 0x9D, 0xE5 - .byte 0x04, 0x40, 0xE0, 0xE1, 0x38, 0x70, 0xCD, 0xE5, 0x01, 0x70, 0xE0, 0xE1, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x01, 0x40, 0x94, 0xE0, 0x03, 0x10, 0xA7, 0xE0, 0x28, 0x70, 0x9D, 0xE5, 0x0D, 0x00, 0x00, 0xEA - .byte 0x03, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x54, 0x01, 0x01, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x55, 0xE3 - .byte 0x08, 0x00, 0x00, 0x0A, 0x02, 0x30, 0x16, 0xE2, 0x34, 0x30, 0x9D, 0x15, 0x28, 0x70, 0x9D, 0x15 - .byte 0x38, 0x30, 0xCD, 0x15, 0x03, 0x00, 0x00, 0x1A, 0x01, 0x30, 0x16, 0xE2, 0x1C, 0x30, 0x9D, 0x15 - .byte 0x28, 0x70, 0x9D, 0x15, 0x38, 0x30, 0xCD, 0x15, 0x08, 0x00, 0x52, 0xE3, 0x04, 0x80, 0x9D, 0xE5 - .byte 0x04, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x52, 0xE3, 0x14, 0x00, 0x00, 0x0A, 0x10, 0x00, 0x52, 0xE3 - .byte 0x39, 0x00, 0x00, 0x0A, 0x4B, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x51, 0xE1 - .byte 0x00, 0x00, 0x54, 0x01, 0x47, 0x00, 0x00, 0x0A, 0x07, 0x00, 0x04, 0xE2, 0x30, 0x30, 0x80, 0xE2 - .byte 0x3A, 0x00, 0x8D, 0xE2, 0x08, 0x30, 0xC0, 0xE7, 0xA4, 0x41, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE3 - .byte 0xA1, 0x01, 0xA0, 0xE1, 0x81, 0x4E, 0x84, 0xE1, 0x02, 0x00, 0x50, 0xE1, 0x02, 0x00, 0x54, 0x01 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x01, 0x80, 0x88, 0xE2, 0xF2, 0xFF, 0xFF, 0x1A, 0x39, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x51, 0x01, 0x0E, 0x00, 0x00, 0x1A - .byte 0x00, 0x00, 0x54, 0xE3, 0x33, 0x00, 0x00, 0x0A, 0x00, 0x02, 0x9F, 0xE5, 0x94, 0x10, 0x80, 0xE0 - .byte 0xA0, 0x01, 0xB0, 0xE1, 0x0A, 0x10, 0xA0, 0xE3, 0x90, 0x01, 0x01, 0xE0, 0x01, 0x10, 0x44, 0xE0 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x30, 0x10, 0x81, 0xE2, 0x3A, 0x00, 0x8D, 0xE2, 0x08, 0x10, 0xC0, 0xE7 - .byte 0x01, 0x80, 0x88, 0xE2, 0xF3, 0xFF, 0xFF, 0x1A, 0x26, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x51, 0xE1 - .byte 0x00, 0x00, 0x54, 0x01, 0x23, 0x00, 0x00, 0x0A, 0x0C, 0x20, 0x9D, 0xE5, 0x04, 0x30, 0x9D, 0xE5 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x0F, 0x84, 0x00, 0xEB, 0x0A, 0x30, 0xA0, 0xE3, 0x90, 0x33, 0x8C, 0xE0 - .byte 0x03, 0x30, 0x54, 0xE0, 0x00, 0x20, 0xA0, 0xE3, 0x30, 0x40, 0x83, 0xE2, 0x3A, 0x30, 0x8D, 0xE2 - .byte 0x08, 0x40, 0xC3, 0xE7, 0x02, 0x00, 0x51, 0xE1, 0x02, 0x00, 0x50, 0x01, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x01, 0x80, 0x88, 0xE2, 0xEF, 0xFF, 0xFF, 0x1A, 0x12, 0x00, 0x00, 0xEA, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x02, 0x00, 0x51, 0xE1, 0x02, 0x00, 0x54, 0x01, 0x0E, 0x00, 0x00, 0x0A, 0x0F, 0x30, 0x04, 0xE2 - .byte 0x0A, 0x00, 0x53, 0xE3, 0x24, 0x42, 0xA0, 0xE1, 0x30, 0x30, 0x83, 0xB2, 0x21, 0x22, 0xA0, 0xE1 - .byte 0x01, 0x4E, 0x84, 0xE1, 0x02, 0x10, 0xA0, 0xE1, 0x00, 0x30, 0x83, 0xA0, 0x3A, 0x20, 0x8D, 0xE2 - .byte 0x08, 0x30, 0xC2, 0xE7, 0x00, 0x20, 0xA0, 0xE3, 0x02, 0x00, 0x51, 0xE1, 0x01, 0x80, 0x88, 0xE2 - .byte 0x02, 0x00, 0x54, 0x01, 0xF0, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x57, 0xE3, 0x06, 0x00, 0x00, 0xDA - .byte 0xD8, 0x03, 0xDD, 0xE1, 0x30, 0x00, 0x50, 0xE3, 0x20, 0x10, 0x9D, 0x05, 0x3A, 0x00, 0x8D, 0x02 - .byte 0x08, 0x10, 0xC0, 0x07, 0x04, 0x70, 0x9D, 0x05, 0x01, 0x80, 0x88, 0x02, 0x08, 0x50, 0x45, 0xE0 - .byte 0x10, 0x00, 0x16, 0xE2, 0x03, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x4A, 0xE0, 0x07, 0x00, 0x40, 0xE0 - .byte 0x00, 0x00, 0x55, 0xE1, 0x00, 0x50, 0xA0, 0xB1, 0x00, 0x00, 0x55, 0xE3, 0x05, 0xA0, 0x4A, 0xC0 - .byte 0x08, 0x00, 0x87, 0xE0, 0x08, 0x60, 0x16, 0xE2, 0x00, 0xA0, 0x4A, 0xE0, 0x03, 0x00, 0x00, 0x1A - .byte 0x1C, 0x10, 0x9D, 0xE5, 0x54, 0x00, 0x8D, 0xE2, 0x0A, 0x20, 0xA0, 0xE1, 0x6A, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x57, 0xE3, 0x07, 0x00, 0x00, 0xDA, 0x38, 0x00, 0x8D, 0xE2, 0x07, 0x40, 0x80, 0xE0 - .byte 0xD1, 0x10, 0x74, 0xE1, 0x01, 0x70, 0x47, 0xE2, 0x54, 0x00, 0x8D, 0xE2, 0x7C, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x57, 0xE3, 0xF9, 0xFF, 0xFF, 0xCA, 0x20, 0x10, 0x9D, 0xE5, 0x05, 0x20, 0xA0, 0xE1 - .byte 0x54, 0x00, 0x8D, 0xE2, 0x5C, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x58, 0xE3, 0x07, 0x00, 0x00, 0xDA - .byte 0x3A, 0x00, 0x8D, 0xE2, 0x08, 0x40, 0x80, 0xE0, 0xD1, 0x10, 0x74, 0xE1, 0x01, 0x80, 0x48, 0xE2 - .byte 0x54, 0x00, 0x8D, 0xE2, 0x6E, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x58, 0xE3, 0xF9, 0xFF, 0xFF, 0xCA - .byte 0x00, 0x00, 0x56, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x1C, 0x10, 0x9D, 0xE5, 0x0A, 0x20, 0xA0, 0xE1 - .byte 0x54, 0x00, 0x8D, 0xE2, 0x4C, 0x00, 0x00, 0xEB, 0x01, 0x90, 0x89, 0xE2, 0xD0, 0x00, 0xD9, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x05, 0xFE, 0xFF, 0x1A, 0x54, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x58, 0x00, 0x9D, 0x15, 0x00, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xC0, 0x15, 0x05, 0x00, 0x00, 0x1A - .byte 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x5C, 0x10, 0x9D, 0x15, 0x00, 0x20, 0xA0, 0x13 - .byte 0x00, 0x00, 0x81, 0x10, 0x01, 0x20, 0x40, 0x15, 0x58, 0x10, 0x9D, 0xE5, 0x5C, 0x00, 0x9D, 0xE5 - .byte 0x00, 0x00, 0x41, 0xE0, 0x64, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xCD, 0xCC, 0xCC, 0xCC, 0x0F, 0x00, 0x2D, 0xE9, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x10, 0x30, 0x8D, 0xE2, 0x03, 0x30, 0xC3, 0xE3, 0x10, 0x20, 0x9D, 0xE5, 0x04, 0x30, 0x83, 0xE2 - .byte 0xC5, 0xFD, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0xC0, 0x9F, 0xE5, 0x02, 0x30, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x02, 0x11, 0xE0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x9C, 0xA4, 0x0C, 0x02, 0x0F, 0x00, 0x2D, 0xE9 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x0C, 0x20, 0x8D, 0xE2, 0x03, 0x20, 0xC2, 0xE3 - .byte 0x0C, 0x10, 0x9D, 0xE5, 0x04, 0x20, 0x82, 0xE2, 0xF1, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x00, 0x52, 0xE3, 0x10, 0x40, 0xBD, 0xD8, 0x1E, 0xFF, 0x2F, 0xD1, 0x00, 0xE0, 0x90, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE3, 0x02, 0x00, 0x5E, 0xE1, 0x02, 0xE0, 0xA0, 0x81, 0x00, 0x00, 0x5E, 0xE3 - .byte 0x05, 0x00, 0x00, 0x9A, 0xD4, 0xC0, 0x91, 0xE1, 0x04, 0x30, 0x90, 0xE5, 0x04, 0xC0, 0xC3, 0xE7 - .byte 0x01, 0x40, 0x84, 0xE2, 0x0E, 0x00, 0x54, 0xE1, 0xF9, 0xFF, 0xFF, 0x3A, 0x00, 0x10, 0x90, 0xE5 - .byte 0x0E, 0x10, 0x41, 0xE0, 0x00, 0x10, 0x80, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE0 - .byte 0x04, 0x10, 0x80, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x00, 0x52, 0xE3, 0x04, 0xD0, 0x8D, 0xD2, 0x00, 0x40, 0xBD, 0xD8 - .byte 0x1E, 0xFF, 0x2F, 0xD1, 0x00, 0xC0, 0x90, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0x02, 0x00, 0x5C, 0xE1 - .byte 0x02, 0xC0, 0xA0, 0x81, 0x00, 0x00, 0x5C, 0xE3, 0x04, 0x00, 0x00, 0x9A, 0x04, 0x30, 0x90, 0xE5 - .byte 0x0E, 0x10, 0xC3, 0xE7, 0x01, 0xE0, 0x8E, 0xE2, 0x0C, 0x00, 0x5E, 0xE1, 0xFA, 0xFF, 0xFF, 0x3A - .byte 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x10, 0x41, 0xE0, 0x00, 0x10, 0x80, 0xE5, 0x04, 0x10, 0x90, 0xE5 - .byte 0x02, 0x10, 0x81, 0xE0, 0x04, 0x10, 0x80, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x04, 0x20, 0x90, 0x15 - .byte 0x00, 0x10, 0xC2, 0x15, 0x00, 0x10, 0x90, 0x15, 0x01, 0x10, 0x41, 0x12, 0x00, 0x10, 0x80, 0x15 - .byte 0x04, 0x10, 0x90, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x04, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x94, 0x34, 0x1D, 0x02 - .byte 0xB4, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9, 0x07, 0x09, 0x00, 0xEB - .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5, 0x00, 0x00, 0x53, 0xE3 - .byte 0x01, 0x20, 0x43, 0x12, 0x03, 0x40, 0xA0, 0x11, 0x00, 0x20, 0x81, 0x15, 0x04, 0x09, 0x00, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x34, 0x1D, 0x02 - .byte 0x10, 0x40, 0x2D, 0xE9, 0xF9, 0x08, 0x00, 0xEB, 0x24, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xE0, 0xE3 - .byte 0x00, 0x30, 0x92, 0xE5, 0x01, 0x00, 0x53, 0xE1, 0x01, 0x10, 0x83, 0x32, 0x03, 0x40, 0xA0, 0x31 - .byte 0x00, 0x10, 0x82, 0x35, 0xF6, 0x08, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x34, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0xE5, 0x08, 0x00, 0xEB, 0x36, 0x0A, 0x00, 0xEB, 0xFD, 0xFF, 0xFF, 0xEA, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xE4, 0x08, 0x00, 0xEB, 0x18, 0x10, 0x9F, 0xE5 - .byte 0x0C, 0x40, 0x91, 0xE5, 0x0C, 0x50, 0x81, 0xE5, 0xE5, 0x08, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02 - .byte 0x00, 0x20, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x08, 0xC0, 0x9F, 0xE5 - .byte 0x02, 0x00, 0xA0, 0xE1, 0xB0, 0x10, 0x82, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x30, 0xB2, 0x0C, 0x02 - .byte 0x30, 0x40, 0x2D, 0xE9, 0x34, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x00, 0x8D, 0xE2 - .byte 0x68, 0x08, 0x00, 0xEB, 0x84, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x00, 0x8D, 0xE5, 0xC9, 0x08, 0x00, 0xEB, 0x74, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x94, 0x51, 0x83, 0xE0, 0x94, 0x32, 0x23, 0xE0, 0x92, 0x31, 0x23, 0xE0, 0x25, 0x13, 0xA0, 0xE1 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x50, 0x9D, 0xE5, 0x08, 0x00, 0x8D, 0xE2, 0x04, 0x20, 0x8D, 0xE2 - .byte 0xB0, 0x00, 0x85, 0xE5, 0x00, 0x20, 0x8D, 0xE5, 0x23, 0x23, 0xA0, 0xE1, 0x03, 0x1D, 0x81, 0xE1 - .byte 0x40, 0x30, 0x9F, 0xE5, 0xE5, 0x07, 0x00, 0xEB, 0x04, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x05, 0x00, 0x00, 0x0A, 0x00, 0x50, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0xA8, 0x00, 0x00, 0xEB - .byte 0x04, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x1A, 0x04, 0x00, 0xA0, 0xE1 - .byte 0xB3, 0x08, 0x00, 0xEB, 0x34, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x90, 0x34, 0x1D, 0x02, 0xEA, 0x82, 0x00, 0x00, 0xA0, 0xAF, 0x0C, 0x02, 0x70, 0x00, 0x90, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0xA0, 0x20, 0x9F, 0xE5, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x01, 0x50, 0xA0, 0xE1, 0x08, 0x80, 0x92, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0x9F, 0x08, 0x00, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x00, 0x00, 0xEA, 0x08, 0x70, 0xA0, 0xE1, 0x68, 0x80, 0x98, 0xE5 - .byte 0x00, 0x00, 0x58, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x58, 0xE1, 0xF9, 0xFF, 0xFF, 0x1A - .byte 0x00, 0x00, 0x58, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x64, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x58, 0xE1 - .byte 0x04, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x95, 0x08, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x00, 0x98, 0xE5, 0x05, 0x00, 0x50, 0xE1 - .byte 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x57, 0xE3, 0x68, 0x10, 0x96, 0x05, 0x2C, 0x00, 0x9F, 0x05 - .byte 0x08, 0x10, 0x80, 0x05, 0x68, 0x00, 0x96, 0x15, 0x68, 0x00, 0x87, 0x15, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x70, 0x50, 0x86, 0xE5, 0x02, 0x02, 0x00, 0xEB, 0xB4, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x83, 0x08, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x98, 0x34, 0x1D, 0x02, 0xA8, 0x34, 0x1D, 0x02, 0xF0, 0x41, 0x2D, 0xE9, 0xAC, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x70, 0xA0, 0xE3, 0x07, 0x60, 0xA0, 0xE1, 0x07, 0x50, 0xA0, 0xE1, 0x04, 0x80, 0x90, 0xE5 - .byte 0x72, 0x08, 0x00, 0xEB, 0x94, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x20, 0x91, 0xE5 - .byte 0x07, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x70, 0x10, 0x98, 0xE5 - .byte 0x08, 0x00, 0x52, 0xE1, 0x00, 0x70, 0xA0, 0x01, 0x70, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x51, 0xE1 - .byte 0x02, 0x60, 0xA0, 0x01, 0x02, 0x00, 0xA0, 0xE1, 0x68, 0x20, 0x92, 0xE5, 0x01, 0x50, 0x85, 0x02 - .byte 0x00, 0x00, 0x52, 0xE3, 0xF5, 0xFF, 0xFF, 0x1A, 0x01, 0x00, 0x55, 0xE3, 0x01, 0x00, 0x00, 0xDA - .byte 0x08, 0x00, 0x56, 0xE1, 0x03, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x60, 0x08, 0x00, 0xEB - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x57, 0xE3, 0x68, 0x10, 0x98, 0x05 - .byte 0x28, 0x00, 0x9F, 0x05, 0x08, 0x10, 0x80, 0x05, 0x68, 0x00, 0x98, 0x15, 0x68, 0x00, 0x87, 0x15 - .byte 0x68, 0x00, 0x96, 0xE5, 0x68, 0x00, 0x88, 0xE5, 0x68, 0x80, 0x86, 0xE5, 0x83, 0x01, 0x00, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x52, 0x08, 0x00, 0xEB, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x98, 0x34, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x48, 0x08, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x7A, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x49, 0x08, 0x00, 0xEB, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0x00, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x00, 0xEA - .byte 0x68, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0x64, 0x10, 0x90, 0xE5 - .byte 0x01, 0x00, 0x51, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02 - .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x33, 0x08, 0x00, 0xEB - .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1, 0x64, 0x10, 0x85, 0xE5, 0x63, 0x01, 0x00, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x32, 0x08, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1 - .byte 0x26, 0x08, 0x00, 0xEB, 0x00, 0x10, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3 - .byte 0x12, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x01, 0x70, 0xA0, 0xE3 - .byte 0x00, 0x60, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0xD8, 0x01, 0x00, 0xEB, 0x64, 0x70, 0x80, 0xE5 - .byte 0x78, 0x60, 0x80, 0xE5, 0x80, 0x60, 0x80, 0xE5, 0x80, 0x10, 0x90, 0xE5, 0x7C, 0x10, 0x80, 0xE5 - .byte 0x00, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xF5, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x00, 0x85, 0xE5, 0x04, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x85, 0xE5, 0x43, 0x01, 0x00, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x12, 0x08, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x07, 0x08, 0x00, 0xEB - .byte 0x3C, 0x10, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x56, 0xE3 - .byte 0x00, 0x40, 0x90, 0xE5, 0x03, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1 - .byte 0x78, 0x60, 0x84, 0xE5, 0xC6, 0x01, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x64, 0x00, 0x84, 0xE5 - .byte 0x2E, 0x01, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0xFD, 0x07, 0x00, 0xEB, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x90, 0x34, 0x1D, 0x02, 0x64, 0x00, 0x90, 0xE5, 0x02, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xEC, 0x07, 0x00, 0xEB, 0x64, 0x10, 0x95, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x9C, 0x00, 0x85, 0xE2 - .byte 0xDB, 0xFF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xE9, 0x07, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0xB0, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x00, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0xDF, 0x06, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1 - .byte 0xD2, 0x07, 0x00, 0xEB, 0x6C, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x00, 0x91, 0xE5 - .byte 0x05, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x00, 0x1A, 0x17, 0x00, 0x00, 0xEB, 0xCF, 0xFE, 0xFF, 0xEB - .byte 0x05, 0x00, 0xA0, 0xE1, 0xDB, 0x02, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0xE5, 0xFF, 0xFF, 0xEB - .byte 0x78, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x69, 0x01, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x2F, 0x01, 0x00, 0xEB, 0x02, 0x10, 0xA0, 0xE3 - .byte 0x9C, 0x00, 0x85, 0xE2, 0x64, 0x10, 0x85, 0xE5, 0x91, 0xFF, 0xFF, 0xEB, 0xB1, 0xFE, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0xBE, 0x07, 0x00, 0xEB, 0x6D, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0xB3, 0xFE, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0xBF, 0x02, 0x00, 0xEB, 0x78, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0x00, 0x0A, 0x04, 0x10, 0xA0, 0xE1, 0x4F, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x15, 0x01, 0x00, 0xEB, 0x02, 0x10, 0xA0, 0xE3, 0x9C, 0x00, 0x84, 0xE2, 0x64, 0x10, 0x84, 0xE5 - .byte 0x77, 0xFF, 0xFF, 0xEB, 0x97, 0xFE, 0xFF, 0xEB, 0x55, 0xFF, 0xFF, 0xEB, 0xEF, 0x08, 0x00, 0xEB - .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x90, 0x34, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x30, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x30, 0x91, 0xE5 - .byte 0xB4, 0x20, 0x93, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x10, 0xA0, 0xE3 - .byte 0xB4, 0x10, 0x83, 0xE5, 0x32, 0xFF, 0x2F, 0xE1, 0x90, 0x07, 0x00, 0xEB, 0xDA, 0xFF, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x90, 0x34, 0x1D, 0x02 - .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x58, 0x20, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE1 - .byte 0x00, 0x20, 0x92, 0xE5, 0x01, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x0C, 0x00, 0x00, 0x0A - .byte 0x44, 0x10, 0x9F, 0xE5, 0x6E, 0x01, 0x00, 0xEB, 0x04, 0x40, 0x85, 0xE5, 0x00, 0x10, 0x95, 0xE5 - .byte 0x05, 0x00, 0xA0, 0xE1, 0x80, 0x10, 0x81, 0xE3, 0x00, 0x10, 0x85, 0xE5, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x64, 0x10, 0x85, 0xE5, 0x94, 0x01, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0xA0, 0xE1, 0xD7, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0x34, 0x1D, 0x02, 0x9C, 0xB4, 0x0C, 0x02 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x6C, 0x07, 0x00, 0xEB, 0x14, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0xDC, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02, 0xF0, 0x41, 0x2D, 0xE9 - .byte 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1, 0x03, 0x60, 0xA0, 0xE1 - .byte 0x5E, 0x07, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x43, 0x01, 0x00, 0xEB, 0x1C, 0x20, 0x9D, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x70, 0x20, 0x88, 0xE5, 0x6C, 0x00, 0x88, 0xE5, 0x64, 0x10, 0x88, 0xE5 - .byte 0x74, 0x10, 0x88, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0xD5, 0x00, 0x00, 0xEB, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x94, 0x60, 0x88, 0xE5, 0x18, 0x00, 0x9D, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x50, 0x46, 0xE0 - .byte 0x04, 0x20, 0x46, 0xE2, 0x90, 0x50, 0x88, 0xE5, 0x98, 0xC0, 0x88, 0xE5, 0x94, 0x30, 0x9F, 0xE5 - .byte 0x94, 0x00, 0x98, 0xE5, 0x90, 0x60, 0x9F, 0xE5, 0x04, 0x30, 0x00, 0xE5, 0x90, 0x30, 0x98, 0xE5 - .byte 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x60, 0x83, 0xE5, 0xA0, 0xC0, 0x88, 0xE5, 0xA0, 0x30, 0x98, 0xE5 - .byte 0x9C, 0x30, 0x88, 0xE5, 0x2E, 0x01, 0x00, 0xEB, 0x04, 0x70, 0x88, 0xE5, 0x04, 0x10, 0x85, 0xE2 - .byte 0x68, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x3C, 0x20, 0x88, 0xE5, 0x18, 0x20, 0x9D, 0xE5 - .byte 0x08, 0x20, 0x42, 0xE2, 0xF4, 0x0A, 0x00, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x84, 0x10, 0x88, 0xE5 - .byte 0x88, 0x10, 0x88, 0xE5, 0x8C, 0x10, 0x88, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x27, 0xFE, 0xFF, 0xEB - .byte 0x00, 0x00, 0xA0, 0xE3, 0x78, 0x00, 0x88, 0xE5, 0x80, 0x00, 0x88, 0xE5, 0x80, 0x20, 0x98, 0xE5 - .byte 0xA4, 0x10, 0x88, 0xE2, 0x7C, 0x20, 0x88, 0xE5, 0x0C, 0x20, 0xA0, 0xE3, 0xE6, 0x0A, 0x00, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0x88, 0xE5, 0x2C, 0x07, 0x00, 0xEB - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7D, 0x59, 0xDB, 0xFD, 0x5B, 0xDD, 0xF9, 0x7B - .byte 0x50, 0xB5, 0x0C, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x10, 0x31, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x93, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x08, 0xD0, 0x8D, 0x12, 0x70, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0xFC, 0xC0, 0x9F, 0xE5, 0xFC, 0x10, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3 - .byte 0xF8, 0x00, 0x9F, 0xE5, 0x01, 0x60, 0xA0, 0xE3, 0x10, 0x40, 0xA0, 0xE3, 0x08, 0x10, 0x80, 0xE5 - .byte 0x04, 0x10, 0x80, 0xE5, 0x00, 0x00, 0x5C, 0xE3, 0xE4, 0x00, 0x9F, 0xD5, 0x70, 0x40, 0x81, 0xE5 - .byte 0x0C, 0x40, 0x40, 0xD0, 0x6C, 0xE0, 0x81, 0xE5, 0x64, 0x60, 0x81, 0xE5, 0x68, 0xE0, 0x81, 0xE5 - .byte 0x74, 0xE0, 0x81, 0xE5, 0xCC, 0x10, 0x9F, 0xC5, 0xCC, 0x00, 0x9F, 0xC5, 0xFE, 0x1D, 0x81, 0xC2 - .byte 0x00, 0x00, 0x41, 0xC0, 0x0C, 0x40, 0x40, 0xC0, 0xB8, 0x10, 0x9F, 0xE5, 0xBC, 0x50, 0x9F, 0xE5 - .byte 0xBC, 0x20, 0x9F, 0xE5, 0xB0, 0x00, 0x9F, 0xE5, 0x00, 0x50, 0x82, 0xE5, 0x98, 0x20, 0x9F, 0xE5 - .byte 0xFE, 0x1D, 0x81, 0xE2, 0x00, 0x60, 0x83, 0xE5, 0x00, 0x30, 0x41, 0xE0, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xA0, 0x10, 0x9F, 0xE5, 0x94, 0x30, 0x82, 0xE5, 0x90, 0x40, 0x82, 0xE5, 0x98, 0x00, 0x82, 0xE5 - .byte 0x04, 0x10, 0x03, 0xE5, 0x90, 0x30, 0x92, 0xE5, 0x8C, 0xC0, 0x9F, 0xE5, 0x6C, 0x10, 0x9F, 0xE5 - .byte 0x00, 0xC0, 0x83, 0xE5, 0x84, 0x30, 0x9F, 0xE5, 0xA0, 0x00, 0x82, 0xE5, 0x9C, 0x00, 0x82, 0xE5 - .byte 0xB0, 0x00, 0xC1, 0xE1, 0xB2, 0x00, 0xC1, 0xE1, 0x00, 0x10, 0x83, 0xE5, 0x02, 0xFE, 0xFF, 0xEB - .byte 0xC8, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0x1F, 0xC0, 0xA0, 0xE3, 0x60, 0x00, 0x9F, 0xE5 - .byte 0x60, 0x10, 0x9F, 0xE5, 0x60, 0x30, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x04, 0xC0, 0x8D, 0xE5 - .byte 0x7D, 0xFF, 0xFF, 0xEB, 0x48, 0x00, 0x9F, 0xE5, 0x20, 0x20, 0xA0, 0xE3, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x70, 0x20, 0x80, 0xE5, 0x64, 0x10, 0x80, 0xE5, 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x94, 0x34, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x68, 0x35, 0x1D, 0x02 - .byte 0x98, 0x34, 0x1D, 0x02, 0x80, 0x00, 0x7E, 0x02, 0x00, 0x00, 0x7E, 0x02, 0x00, 0x04, 0x00, 0x00 - .byte 0x9C, 0x34, 0x1D, 0x02, 0x90, 0x34, 0x1D, 0x02, 0x7D, 0x59, 0xDB, 0xFD, 0x5B, 0xDD, 0xF9, 0x7B - .byte 0xA0, 0xFF, 0x7F, 0x02, 0xA8, 0x34, 0x1D, 0x02, 0x58, 0xAF, 0x0C, 0x02, 0xF0, 0x36, 0x1D, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0xD0, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0xC0, 0x40, 0x9F, 0xE5, 0xB2, 0x00, 0xD4, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0xD9, 0x06, 0x00, 0xEB, 0x12, 0x00, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC4, 0xE1, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x60, 0x90, 0xE5 - .byte 0x73, 0xFE, 0xFF, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x05, 0x00, 0x56, 0xE1, 0x70, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x55, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x64, 0x00, 0x96, 0xE5, 0x02, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1 - .byte 0xB2, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x02, 0x00, 0x00, 0x0A - .byte 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x32, 0xFF, 0x2F, 0xE1, 0x0C, 0x20, 0x94, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x32, 0xFF, 0x2F, 0xE1, 0x14, 0x10, 0x9F, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x50, 0x81, 0xE5 - .byte 0xB1, 0x00, 0x00, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x34, 0x1D, 0x02 - .byte 0x98, 0x34, 0x1D, 0x02, 0x90, 0x34, 0x1D, 0x02, 0x8C, 0x34, 0x1D, 0x02, 0x3C, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x08, 0x10, 0x91, 0xE5, 0x01, 0x00, 0x00, 0xEA, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x68, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE1 - .byte 0xF9, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x52, 0xE3, 0x68, 0x10, 0x90, 0x05, 0x0C, 0x00, 0x9F, 0x05 - .byte 0x08, 0x10, 0x80, 0x05, 0x68, 0x00, 0x90, 0x15, 0x68, 0x00, 0x82, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x98, 0x34, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x54, 0x10, 0x9F, 0xE5 - .byte 0x00, 0xC0, 0xA0, 0xE3, 0x08, 0x30, 0x91, 0xE5, 0x03, 0xE0, 0xA0, 0xE1, 0x01, 0x00, 0x00, 0xEA - .byte 0x0E, 0xC0, 0xA0, 0xE1, 0x68, 0xE0, 0x9E, 0xE5, 0x00, 0x00, 0x5E, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0x70, 0x20, 0x9E, 0xE5, 0x70, 0x10, 0x90, 0xE5, 0x01, 0x00, 0x52, 0xE1, 0xF7, 0xFF, 0xFF, 0x3A - .byte 0x00, 0x00, 0x5C, 0xE3, 0x1C, 0x10, 0x9F, 0x05, 0x68, 0x30, 0x80, 0x05, 0x08, 0x00, 0x81, 0x05 - .byte 0x68, 0x10, 0x9C, 0x15, 0x68, 0x10, 0x80, 0x15, 0x68, 0x00, 0x8C, 0x15, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02, 0x00, 0x20, 0x90, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x10, 0x10, 0x92, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x14, 0x00, 0x81, 0x15, 0x00, 0x10, 0xA0, 0x03 - .byte 0x04, 0x10, 0x80, 0x05, 0x02, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x20, 0x90, 0xE5 - .byte 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x0E, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x5C, 0xE1 - .byte 0x80, 0x30, 0x9C, 0xE5, 0x08, 0x00, 0x00, 0x1A, 0x0C, 0x00, 0x52, 0xE1, 0x7C, 0x20, 0x9C, 0xE5 - .byte 0x00, 0x30, 0x80, 0x05, 0x80, 0x30, 0x82, 0x15, 0x04, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0x51, 0xE1 - .byte 0x04, 0x20, 0x80, 0x05, 0x7C, 0x20, 0x83, 0x15, 0x02, 0x00, 0x00, 0xEA, 0x03, 0xC0, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x53, 0xE3, 0xF0, 0xFF, 0xFF, 0x1A, 0x0C, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x07, 0x00, 0x00, 0x0A, 0x80, 0x10, 0x92, 0xE5 - .byte 0x00, 0x10, 0x80, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x7C, 0x00, 0x81, 0x15 - .byte 0x00, 0x10, 0xA0, 0x03, 0x04, 0x10, 0x80, 0x05, 0x78, 0x10, 0x82, 0x05, 0x02, 0x00, 0xA0, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xC0, 0x90, 0xE5, 0x02, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x5C, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x80, 0xC0, 0x9C, 0xE5, 0x00, 0x00, 0x5C, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0x70, 0x30, 0x9C, 0xE5, 0x70, 0x20, 0x91, 0xE5, 0x02, 0x00, 0x53, 0xE1, 0xF6, 0xFF, 0xFF, 0x9A - .byte 0x00, 0x00, 0x5C, 0xE3, 0x08, 0x00, 0x00, 0x1A, 0x04, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3 - .byte 0x00, 0x10, 0x80, 0x05, 0x80, 0x10, 0x82, 0x15, 0x7C, 0x20, 0x81, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x80, 0x20, 0x81, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x20, 0x9C, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x00, 0x10, 0x80, 0x05, 0x80, 0x10, 0x82, 0x15, 0x7C, 0x20, 0x81, 0xE5 - .byte 0x80, 0xC0, 0x81, 0xE5, 0x7C, 0x10, 0x8C, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x91, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x00, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x88, 0x34, 0x1D, 0x02, 0x04, 0x10, 0x81, 0xE2, 0x40, 0x10, 0x80, 0xE5, 0x44, 0x20, 0x80, 0xE5 - .byte 0x40, 0x20, 0x42, 0xE2, 0x04, 0x00, 0x12, 0xE3, 0x04, 0x20, 0x42, 0x12, 0x38, 0x20, 0x80, 0xE5 - .byte 0x01, 0x10, 0x11, 0xE2, 0x3F, 0x10, 0xA0, 0x13, 0x1F, 0x10, 0xA0, 0x03, 0x00, 0x10, 0x80, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x08, 0x10, 0x80, 0xE5, 0x0C, 0x10, 0x80, 0xE5 - .byte 0x10, 0x10, 0x80, 0xE5, 0x14, 0x10, 0x80, 0xE5, 0x18, 0x10, 0x80, 0xE5, 0x1C, 0x10, 0x80, 0xE5 - .byte 0x20, 0x10, 0x80, 0xE5, 0x24, 0x10, 0x80, 0xE5, 0x28, 0x10, 0x80, 0xE5, 0x2C, 0x10, 0x80, 0xE5 - .byte 0x30, 0x10, 0x80, 0xE5, 0x34, 0x10, 0x80, 0xE5, 0x3C, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x01, 0x40, 0x2D, 0xE9, 0x48, 0x00, 0x80, 0xE2, 0x38, 0x10, 0x9F, 0xE5, 0x31, 0xFF, 0x2F, 0xE1 - .byte 0x01, 0x40, 0xBD, 0xE8, 0x00, 0x10, 0x80, 0xE2, 0x00, 0x20, 0x0F, 0xE1, 0x04, 0x20, 0x81, 0xE4 - .byte 0xD3, 0x00, 0xA0, 0xE3, 0x00, 0xF0, 0x21, 0xE1, 0x40, 0xD0, 0x81, 0xE5, 0x02, 0xF0, 0x21, 0xE1 - .byte 0x01, 0x00, 0xA0, 0xE3, 0xFF, 0x7F, 0x81, 0xE8, 0x08, 0x00, 0x8F, 0xE2, 0x3C, 0x00, 0x81, 0xE5 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x48, 0x36, 0x0D, 0x02, 0x01, 0x40, 0x2D, 0xE9 - .byte 0x48, 0x00, 0x80, 0xE2, 0x30, 0x10, 0x9F, 0xE5, 0x31, 0xFF, 0x2F, 0xE1, 0x01, 0x40, 0xBD, 0xE8 - .byte 0x00, 0x10, 0x0F, 0xE1, 0x1F, 0x10, 0xC1, 0xE3, 0xD3, 0x10, 0x81, 0xE3, 0x01, 0xF0, 0x21, 0xE1 - .byte 0x04, 0x10, 0x90, 0xE4, 0x01, 0xF0, 0x6F, 0xE1, 0x40, 0xD0, 0x90, 0xE5, 0x3C, 0xE0, 0x90, 0xE5 - .byte 0xFF, 0x7F, 0xD0, 0xE8, 0x00, 0x00, 0xA0, 0xE1, 0x04, 0xF0, 0x5E, 0xE2, 0x88, 0x36, 0x0D, 0x02 - .byte 0x08, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x01, 0x00, 0x00, 0x82, 0x28, 0x68, 0x10, 0x02, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1 - .byte 0xC6, 0x05, 0x00, 0xEB, 0x1C, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3 - .byte 0x0D, 0x00, 0x00, 0x1A, 0x01, 0x80, 0x07, 0xE2, 0x08, 0x70, 0x86, 0xE2, 0x00, 0x00, 0x58, 0xE3 - .byte 0x04, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0xC1, 0x05, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x07, 0x00, 0xA0, 0xE1, 0xAC, 0xFD, 0xFF, 0xEB - .byte 0x1C, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xF3, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x55, 0xE3 - .byte 0x10, 0x10, 0x96, 0x15, 0x18, 0x00, 0x96, 0x15, 0x00, 0x01, 0x91, 0x17, 0x00, 0x00, 0x85, 0x15 - .byte 0x04, 0x00, 0xA0, 0xE1, 0xB2, 0x05, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1, 0xA4, 0x05, 0x00, 0xEB, 0x14, 0x10, 0x96, 0xE5 - .byte 0x1C, 0x20, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x00, 0x51, 0xE1, 0x0E, 0x00, 0x00, 0xCA - .byte 0x01, 0x70, 0x07, 0xE2, 0x00, 0x00, 0x57, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x9F, 0x05, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x00, 0xA0, 0xE1, 0x89, 0xFD, 0xFF, 0xEB, 0x14, 0x10, 0x96, 0xE5 - .byte 0x1C, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0xF1, 0xFF, 0xFF, 0xDA, 0x18, 0x00, 0x96, 0xE5 - .byte 0x01, 0x00, 0x80, 0xE0, 0x01, 0x00, 0x40, 0xE2, 0xE8, 0x7F, 0x00, 0xEB, 0x18, 0x10, 0x86, 0xE5 - .byte 0x10, 0x20, 0x96, 0xE5, 0x18, 0x10, 0x96, 0xE5, 0x08, 0x00, 0x86, 0xE2, 0x01, 0x51, 0x82, 0xE7 - .byte 0x1C, 0x10, 0x96, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x1C, 0x10, 0x86, 0xE5, 0x58, 0xFD, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x86, 0x05, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1, 0x78, 0x05, 0x00, 0xEB, 0x1C, 0x10, 0x96, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x01, 0x80, 0x07, 0xE2 - .byte 0x08, 0x70, 0x86, 0xE2, 0x00, 0x00, 0x58, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x73, 0x05, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x07, 0x00, 0xA0, 0xE1, 0x5E, 0xFD, 0xFF, 0xEB, 0x1C, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0xF3, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x55, 0xE3, 0x10, 0x10, 0x96, 0x15, 0x18, 0x00, 0x96, 0x15 - .byte 0x00, 0x01, 0x91, 0x17, 0x00, 0x00, 0x85, 0x15, 0x18, 0x00, 0x96, 0xE5, 0x14, 0x10, 0x96, 0xE5 - .byte 0x01, 0x00, 0x80, 0xE2, 0xB9, 0x7F, 0x00, 0xEB, 0x18, 0x10, 0x86, 0xE5, 0x1C, 0x10, 0x96, 0xE5 - .byte 0x06, 0x00, 0xA0, 0xE1, 0x01, 0x10, 0x41, 0xE2, 0x1C, 0x10, 0x86, 0xE5, 0x2C, 0xFD, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x5A, 0x05, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1, 0x4C, 0x05, 0x00, 0xEB, 0x1C, 0x20, 0x96, 0xE5 - .byte 0x14, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x00, 0x51, 0xE1, 0x0E, 0x00, 0x00, 0xCA - .byte 0x01, 0x70, 0x07, 0xE2, 0x00, 0x00, 0x57, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x47, 0x05, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x00, 0xA0, 0xE1, 0x31, 0xFD, 0xFF, 0xEB, 0x1C, 0x20, 0x96, 0xE5 - .byte 0x14, 0x10, 0x96, 0xE5, 0x02, 0x00, 0x51, 0xE1, 0xF1, 0xFF, 0xFF, 0xDA, 0x18, 0x00, 0x96, 0xE5 - .byte 0x02, 0x00, 0x80, 0xE0, 0x91, 0x7F, 0x00, 0xEB, 0x10, 0x20, 0x96, 0xE5, 0x08, 0x00, 0x86, 0xE2 - .byte 0x01, 0x51, 0x82, 0xE7, 0x1C, 0x10, 0x96, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x1C, 0x10, 0x86, 0xE5 - .byte 0x03, 0xFD, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x31, 0x05, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xC0, 0xA0, 0xE3 - .byte 0x04, 0xC0, 0x80, 0xE5, 0x04, 0x30, 0x90, 0xE5, 0x00, 0x30, 0x80, 0xE5, 0x0C, 0xC0, 0x80, 0xE5 - .byte 0x0C, 0x30, 0x90, 0xE5, 0x08, 0x30, 0x80, 0xE5, 0x10, 0x10, 0x80, 0xE5, 0x14, 0x20, 0x80, 0xE5 - .byte 0x18, 0xC0, 0x80, 0xE5, 0x1C, 0xC0, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x20, 0x91, 0xE5 - .byte 0x14, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x8C, 0x10, 0x80, 0x05, 0x14, 0x10, 0x82, 0x15 - .byte 0x00, 0x00, 0x51, 0xE3, 0x88, 0x20, 0x80, 0x05, 0x10, 0x20, 0x81, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x8C, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x88, 0x10, 0x80, 0x05, 0x10, 0x10, 0x82, 0x15 - .byte 0x14, 0x20, 0x81, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x20, 0x81, 0xE5, 0x8C, 0x10, 0x80, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x07, 0x05, 0x00, 0xEB - .byte 0x08, 0x20, 0x95, 0xE5, 0x58, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3 - .byte 0x04, 0x00, 0x91, 0xE5, 0x07, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x85, 0xE5, 0x0C, 0x20, 0x95, 0xE5 - .byte 0x05, 0x10, 0xA0, 0xE1, 0x01, 0x20, 0x82, 0xE2, 0x0C, 0x20, 0x85, 0xE5, 0xE7, 0xFF, 0xFF, 0xEB - .byte 0x01, 0x60, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x52, 0xE1, 0x0C, 0x00, 0x95, 0x05 - .byte 0x01, 0x60, 0xA0, 0x03, 0x01, 0x00, 0x80, 0x02, 0x0C, 0x00, 0x85, 0x05, 0x00, 0x60, 0xA0, 0x13 - .byte 0x04, 0x00, 0xA0, 0xE1, 0xF6, 0x04, 0x00, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x88, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x88, 0x50, 0x86, 0xE2, 0x00, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x7E, 0xFE, 0xFF, 0xEB - .byte 0x0C, 0x40, 0x80, 0xE5, 0x08, 0x40, 0x80, 0xE5, 0xB5, 0xFC, 0xFF, 0xEB, 0x88, 0x00, 0x96, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0xF7, 0xFF, 0xFF, 0x1A, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xD7, 0x04, 0x00, 0xEB - .byte 0x54, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x00, 0x91, 0xE5, 0x08, 0x10, 0x95, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE1, 0x0B, 0x00, 0x00, 0x1A, 0x0C, 0x10, 0x95, 0xE5, 0x01, 0x10, 0x41, 0xE2 - .byte 0x0C, 0x10, 0x85, 0xE5, 0x0C, 0x10, 0x95, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x1A - .byte 0x05, 0x10, 0xA0, 0xE1, 0xAC, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x08, 0x10, 0x85, 0xE5, 0x9A, 0xFC, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xC8, 0x04, 0x00, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02 - .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xBB, 0x04, 0x00, 0xEB - .byte 0x70, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x70, 0x91, 0xE5, 0x00, 0x60, 0xA0, 0xE3 - .byte 0x08, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x08, 0x70, 0x85, 0xE5 - .byte 0x0C, 0x10, 0x95, 0xE5, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0x81, 0xE2, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x0C, 0x20, 0x85, 0xE5, 0x99, 0xFF, 0xFF, 0xEB, 0x09, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x50, 0xE1 - .byte 0x0C, 0x00, 0x95, 0x05, 0x01, 0x00, 0x80, 0x02, 0x0C, 0x00, 0x85, 0x05, 0x04, 0x00, 0x00, 0x0A - .byte 0x05, 0x00, 0xA0, 0xE1, 0x84, 0x50, 0x87, 0xE5, 0x99, 0xFC, 0xFF, 0xEB, 0x84, 0x60, 0x87, 0xE5 - .byte 0xEA, 0xFF, 0xFF, 0xEA, 0x04, 0x00, 0xA0, 0xE1, 0xA5, 0x04, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x98, 0x34, 0x1D, 0x02, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x04, 0x20, 0x80, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x20, 0x80, 0xE5 - .byte 0x0C, 0x20, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x16, 0x0F, 0x07, 0xEE - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE1 - .byte 0x5A, 0x2F, 0x07, 0xEE, 0x20, 0x00, 0x80, 0xE2, 0x01, 0x0B, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA - .byte 0x01, 0x11, 0x81, 0xE2, 0x00, 0x00, 0x51, 0xE3, 0xF6, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE1 - .byte 0x9A, 0xCF, 0x07, 0xEE, 0x5E, 0x2F, 0x07, 0xEE, 0x20, 0x00, 0x80, 0xE2, 0x01, 0x0B, 0x50, 0xE3 - .byte 0xF9, 0xFF, 0xFF, 0xBA, 0x01, 0x11, 0x81, 0xE2, 0x00, 0x00, 0x51, 0xE3, 0xF5, 0xFF, 0xFF, 0x1A - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0x81, 0xE0, 0x1F, 0x00, 0xC0, 0xE3, 0x36, 0x0F, 0x07, 0xEE - .byte 0x20, 0x00, 0x80, 0xE2, 0x01, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x10, 0x81, 0xE0, 0x1F, 0x00, 0xC0, 0xE3, 0x3A, 0x0F, 0x07, 0xEE, 0x20, 0x00, 0x80, 0xE2 - .byte 0x01, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xC0, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x81, 0xE0, 0x1F, 0x00, 0xC0, 0xE3, 0x9A, 0xCF, 0x07, 0xEE, 0x3E, 0x0F, 0x07, 0xEE - .byte 0x20, 0x00, 0x80, 0xE2, 0x01, 0x00, 0x50, 0xE1, 0xFA, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x9A, 0x0F, 0x07, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x15, 0x0F, 0x07, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0x81, 0xE0, 0x1F, 0x00, 0xC0, 0xE3 - .byte 0x35, 0x0F, 0x07, 0xEE, 0x20, 0x00, 0x80, 0xE2, 0x01, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0xBA - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x07, 0x01, 0x00, 0xEB - .byte 0x7A, 0x0E, 0x00, 0xEB, 0x78, 0xF8, 0xFF, 0xEB, 0xE4, 0x00, 0x00, 0xEB, 0xAA, 0xF7, 0xFF, 0xEB - .byte 0xF5, 0xF6, 0xFF, 0xEB, 0x69, 0x02, 0x00, 0xEB, 0x1A, 0x09, 0x00, 0xEB, 0x2A, 0x04, 0x00, 0xEB - .byte 0x4E, 0x05, 0x00, 0xEB, 0x26, 0xFD, 0xFF, 0xEB, 0xAE, 0x04, 0x00, 0xEB, 0xA3, 0x3E, 0x00, 0xEB - .byte 0x0C, 0x2C, 0x00, 0xEB, 0x5A, 0x25, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x02, 0x50, 0xA0, 0xE1, 0xCC, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03 - .byte 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x10, 0x45, 0xE2, 0x01, 0x20, 0xE0, 0xE1 - .byte 0x02, 0x00, 0x00, 0xE0, 0x06, 0x10, 0x40, 0xE0, 0x04, 0x00, 0xA0, 0xE1, 0x02, 0x50, 0x01, 0xE0 - .byte 0xBC, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x55, 0xE1, 0x00, 0x00, 0xA0, 0x33, 0x70, 0x40, 0xBD, 0x38 - .byte 0x1E, 0xFF, 0x2F, 0x31, 0x04, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x29, 0x00, 0x00, 0xEB - .byte 0x05, 0x00, 0xA0, 0xE1, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1 - .byte 0xAC, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 - .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x00, 0x80, 0xE0, 0x01, 0x10, 0x45, 0xE2 - .byte 0x01, 0x20, 0xE0, 0xE1, 0x01, 0x00, 0x40, 0xE2, 0x00, 0x40, 0x02, 0xE0, 0x06, 0x00, 0x84, 0xE0 - .byte 0x05, 0x00, 0x80, 0xE0, 0x01, 0x10, 0x40, 0xE2, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x50, 0x02, 0xE0 - .byte 0xA1, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x55, 0xE1, 0x04, 0xD0, 0x8D, 0x82, 0x00, 0x00, 0xA0, 0x83 - .byte 0xF0, 0x40, 0xBD, 0x88, 0x1E, 0xFF, 0x2F, 0x81, 0x07, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x03, 0x00, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0xA0, 0xE1, 0x27, 0x06, 0x80, 0xE2, 0xFF, 0x0A, 0x80, 0xE2 - .byte 0xA0, 0x1D, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0xA0, 0xE1, 0x27, 0x06, 0x80, 0xE2 - .byte 0xFF, 0x0A, 0x80, 0xE2, 0xC4, 0x1D, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x06, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x2A, 0x00, 0x00, 0xEA - .byte 0x05, 0x00, 0x00, 0xEA, 0x28, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA - .byte 0x19, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x1F, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x94, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x8C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x13, 0xFE, 0xFF, 0xEB - .byte 0x03, 0x00, 0x00, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x5C, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x44, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x38, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xFF, 0x25, 0x02 - .byte 0xF4, 0x36, 0x1D, 0x02, 0x00, 0x00, 0x3E, 0x02, 0x20, 0x87, 0xFF, 0x01, 0x80, 0x00, 0x7E, 0x02 - .byte 0x00, 0xF0, 0x7F, 0x02, 0x00, 0x80, 0x7F, 0x03, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x06, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x3A, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA - .byte 0x38, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA, 0x19, 0x00, 0x00, 0xEA - .byte 0x2C, 0x00, 0x00, 0xEA, 0x2F, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2, 0xD4, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xCC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0xD8, 0xFD, 0xFF, 0xEB, 0x03, 0x00, 0x00, 0xE2 - .byte 0x01, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x27, 0x06, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x02, 0x04, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0x00, 0x9F, 0xE5, 0x80, 0x10, 0x9F, 0xE5 - .byte 0x80, 0x20, 0x9F, 0xE5, 0xFE, 0x3D, 0x80, 0xE2, 0x00, 0x00, 0x51, 0xE3, 0x02, 0x20, 0x43, 0xE0 - .byte 0x05, 0x00, 0x00, 0x1A, 0x70, 0x10, 0x9F, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0x50, 0xE1 - .byte 0x01, 0x00, 0xA0, 0x31, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x51, 0xE3 - .byte 0x54, 0x00, 0x9F, 0xB5, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0x40, 0xB0, 0x01, 0x00, 0x42, 0xA0 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x3C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x3E, 0x02, 0xF4, 0x36, 0x1D, 0x02 - .byte 0x00, 0x00, 0x7E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80, 0x00, 0x7E, 0x02 - .byte 0x80, 0xF6, 0x7F, 0x02, 0x00, 0x80, 0x7F, 0x03, 0x00, 0x01, 0xA0, 0xE1, 0x27, 0x06, 0x80, 0xE2 - .byte 0xFF, 0x0A, 0x80, 0xE2, 0xA0, 0x0D, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0xA0, 0xE1 - .byte 0x27, 0x06, 0x80, 0xE2, 0xFF, 0x0A, 0x80, 0xE2, 0xC4, 0x0D, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x02, 0x00, 0xA0, 0xE3, 0xA5, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x10, 0xA0, 0xE1, 0x02, 0x00, 0xA0, 0xE3, 0x62, 0xFF, 0xFF, 0xEB, 0x02, 0x00, 0xA0, 0xE3 - .byte 0x65, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x02, 0x00, 0xA0, 0xE3, 0x58, 0xFF, 0xFF, 0xEB - .byte 0x3C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A - .byte 0x86, 0xFD, 0xFF, 0xEB, 0x03, 0x00, 0x00, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12 - .byte 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x18, 0x00, 0x9F, 0xE5, 0x0A, 0x01, 0x00, 0xEB - .byte 0x14, 0x00, 0x9F, 0xE5, 0x0A, 0x01, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF4, 0x36, 0x1D, 0x02, 0x2B, 0x00, 0x00, 0x02, 0x21, 0x00, 0x3E, 0x02 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x04, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5, 0x7D, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x3A, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x3D, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x30, 0xFF, 0xFF, 0xEB - .byte 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x2D, 0xFF, 0xFF, 0xEB, 0x02, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x2F, 0xFF, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x6D, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x10, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE3, 0x2A, 0xFF, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3 - .byte 0x2D, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE3, 0x20, 0xFF, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE3, 0x63, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0xA0, 0xE3 - .byte 0x20, 0xFF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x23, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x00, 0xA0, 0xE3, 0x16, 0xFF, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE3, 0x59, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x10, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE3, 0x16, 0xFF, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE3 - .byte 0x19, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE3, 0x0C, 0xFF, 0xFF, 0xEB - .byte 0x06, 0x00, 0xA0, 0xE3, 0x4F, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE3 - .byte 0x0C, 0xFF, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE3, 0x0F, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x06, 0x00, 0xA0, 0xE3, 0x02, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x36, 0x1D, 0x02, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0xFF, 0x02, 0x00, 0xEB - .byte 0x50, 0x10, 0x9F, 0xE5, 0x00, 0x60, 0xA0, 0xE1, 0x07, 0x01, 0x91, 0xE7, 0x00, 0x00, 0x55, 0xE3 - .byte 0x00, 0x50, 0x90, 0xB5, 0x10, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0xA0, 0xE3, 0x95, 0x10, 0x27, 0xE0 - .byte 0x20, 0x40, 0x44, 0xE2, 0x08, 0x00, 0x97, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x87, 0x00, 0x00, 0xEB - .byte 0x08, 0x00, 0x87, 0xE5, 0x04, 0x00, 0x97, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x51, 0x00, 0x00, 0xEB - .byte 0x04, 0x00, 0x87, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0xF1, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF8, 0x36, 0x1D, 0x02, 0xF0, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1 - .byte 0xE2, 0x02, 0x00, 0xEB, 0x08, 0x11, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x06, 0x11, 0x91, 0xE7 - .byte 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0xE1, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x55, 0xE3 - .byte 0x00, 0x50, 0x91, 0xB5, 0x10, 0x10, 0x91, 0xE5, 0x0C, 0x00, 0xA0, 0xE3, 0x95, 0x10, 0x26, 0xE0 - .byte 0x04, 0x00, 0x96, 0xE5, 0x20, 0x10, 0x87, 0xE2, 0x1F, 0x10, 0x81, 0xE2, 0x00, 0x50, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x1F, 0x70, 0xC1, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x08, 0x10, 0x95, 0xE5 - .byte 0x01, 0x00, 0x57, 0xE1, 0x02, 0x00, 0x00, 0xDA, 0x04, 0x50, 0x95, 0xE5, 0x00, 0x00, 0x55, 0xE3 - .byte 0xF9, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x55, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 - .byte 0xC7, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x10, 0x95, 0xE5, 0x07, 0x10, 0x41, 0xE0, 0x40, 0x00, 0x51, 0xE3 - .byte 0x03, 0x00, 0x00, 0x2A, 0x05, 0x10, 0xA0, 0xE1, 0x4C, 0x00, 0x00, 0xEB, 0x04, 0x00, 0x86, 0xE5 - .byte 0x0D, 0x00, 0x00, 0xEA, 0x08, 0x70, 0x85, 0xE5, 0x07, 0x20, 0x85, 0xE0, 0x08, 0x10, 0x82, 0xE5 - .byte 0x00, 0x00, 0x95, 0xE5, 0x07, 0x00, 0x85, 0xE7, 0x04, 0x00, 0x95, 0xE5, 0x04, 0x00, 0x82, 0xE5 - .byte 0x04, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x20, 0x80, 0x15, 0x00, 0x00, 0x92, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x20, 0x80, 0x15, 0x04, 0x20, 0x86, 0x05, 0x08, 0x00, 0x96, 0xE5 - .byte 0x05, 0x10, 0xA0, 0xE1, 0x43, 0x00, 0x00, 0xEB, 0x08, 0x00, 0x86, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0xA7, 0x02, 0x00, 0xEB, 0x20, 0x00, 0x85, 0xE2, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF8, 0x36, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x00, 0xE0, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0x0A - .byte 0x0C, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x00, 0x9A, 0x0C, 0xE0, 0xA0, 0xE1, 0x04, 0xC0, 0x9C, 0xE5 - .byte 0x00, 0x00, 0x5C, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x04, 0xC0, 0x81, 0xE5, 0x00, 0xE0, 0x81, 0xE5 - .byte 0x00, 0x00, 0x5C, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x8C, 0xE5, 0x08, 0x30, 0x91, 0xE5 - .byte 0x03, 0x20, 0x81, 0xE0, 0x0C, 0x00, 0x52, 0xE1, 0x06, 0x00, 0x00, 0x1A, 0x08, 0x20, 0x9C, 0xE5 - .byte 0x02, 0x20, 0x83, 0xE0, 0x08, 0x20, 0x81, 0xE5, 0x04, 0xC0, 0x9C, 0xE5, 0x04, 0xC0, 0x81, 0xE5 - .byte 0x00, 0x00, 0x5C, 0xE3, 0x00, 0x10, 0x8C, 0x15, 0x00, 0x00, 0x5E, 0xE3, 0x0F, 0x00, 0x00, 0x0A - .byte 0x04, 0x10, 0x8E, 0xE5, 0x08, 0x20, 0x9E, 0xE5, 0x02, 0x30, 0x8E, 0xE0, 0x01, 0x00, 0x53, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x08, 0x10, 0x91, 0xE5 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x10, 0x82, 0xE0, 0x08, 0x10, 0x8E, 0xE5, 0x04, 0xC0, 0x8E, 0xE5 - .byte 0x00, 0x00, 0x5C, 0xE3, 0x00, 0xE0, 0x8C, 0x15, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x01, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0x30, 0x91, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x00, 0x20, 0x91, 0x15, 0x00, 0x20, 0x83, 0x15 - .byte 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x91, 0x05, 0x04, 0x10, 0x91, 0x15 - .byte 0x04, 0x10, 0x82, 0x15, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0x81, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x10, 0x80, 0x15, 0x01, 0x00, 0xA0, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x11, 0x0F, 0x19, 0xEE, 0x04, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x00, 0xE0 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xF0, 0xFF, 0xFF, 0x10, 0x0F, 0x11, 0xEE, 0x01, 0x00, 0x80, 0xE3 - .byte 0x10, 0x0F, 0x01, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x0F, 0x11, 0xEE, 0x01, 0x00, 0xC0, 0xE3 - .byte 0x10, 0x0F, 0x01, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x50, 0x2F, 0x15, 0xEE, 0x00, 0x20, 0xC2, 0xE1 - .byte 0x01, 0x20, 0x82, 0xE1, 0x50, 0x2F, 0x05, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x11, 0x0F, 0x06, 0xEE - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x12, 0x0F, 0x06, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x64, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0xC0, 0x9C, 0xE5, 0x00, 0x00, 0x5C, 0xE3, 0x0F, 0xE0, 0xA0, 0x11, 0x1C, 0xFF, 0x2F, 0x11 - .byte 0x54, 0xC0, 0x9F, 0xE5, 0x0F, 0x60, 0x2C, 0xE9, 0x01, 0x00, 0x0D, 0xE2, 0x0C, 0xD0, 0xA0, 0xE1 - .byte 0x00, 0x10, 0x0F, 0xE1, 0x1F, 0x10, 0x01, 0xE2, 0x17, 0x00, 0x31, 0xE3, 0x01, 0x00, 0x00, 0x1A - .byte 0x0E, 0x00, 0x00, 0xEB, 0x02, 0x00, 0x00, 0xEA, 0x1B, 0x00, 0x31, 0xE3, 0x00, 0x00, 0x00, 0x1A - .byte 0x0A, 0x00, 0x00, 0xEB, 0x1C, 0xC0, 0x9F, 0xE5, 0x00, 0xC0, 0x9C, 0xE5, 0x00, 0x00, 0x5C, 0xE3 - .byte 0xFE, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0xA0, 0xE1, 0xFD, 0xFF, 0xFF, 0xEA, 0x0F, 0x50, 0xBD, 0xE8 - .byte 0x0C, 0xD0, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x37, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x02 - .byte 0x01, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB, 0x25, 0x00, 0x00, 0xEB, 0x01, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x0F, 0xE1, 0x74, 0x20, 0x81, 0xE5 - .byte 0x6C, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x9C, 0xE5, 0x04, 0x00, 0x81, 0xE5, 0x04, 0x00, 0x9C, 0xE5 - .byte 0x08, 0x00, 0x81, 0xE5, 0x08, 0x00, 0x9C, 0xE5, 0x0C, 0x00, 0x81, 0xE5, 0x0C, 0x00, 0x9C, 0xE5 - .byte 0x10, 0x00, 0x81, 0xE5, 0x10, 0x20, 0x9C, 0xE5, 0x01, 0x20, 0xC2, 0xE3, 0x14, 0x00, 0x81, 0xE2 - .byte 0xF0, 0x0F, 0x80, 0xE8, 0x70, 0xC0, 0x81, 0xE5, 0x00, 0x00, 0x92, 0xE5, 0x64, 0x00, 0x81, 0xE5 - .byte 0x04, 0x30, 0x92, 0xE5, 0x00, 0x30, 0x81, 0xE5, 0x08, 0x00, 0x92, 0xE5, 0x34, 0x00, 0x81, 0xE5 - .byte 0x0C, 0x00, 0x92, 0xE5, 0x40, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x0F, 0xE1, 0x80, 0x30, 0x83, 0xE3 - .byte 0x20, 0x30, 0xC3, 0xE3, 0x03, 0xF0, 0x2F, 0xE1, 0x38, 0xD0, 0x81, 0xE5, 0x3C, 0xE0, 0x81, 0xE5 - .byte 0x00, 0x20, 0x4F, 0xE1, 0x7C, 0x20, 0x81, 0xE5, 0x00, 0xF0, 0x2F, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x28, 0x37, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x4C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x00, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x0D, 0x00, 0xA0, 0xE1, 0x34, 0x10, 0x9F, 0xE5, 0x01, 0xF0, 0x2F, 0xE1 - .byte 0x00, 0xD0, 0xA0, 0xE1, 0x9B, 0xFF, 0xFF, 0xEB, 0x28, 0x10, 0x9F, 0xE5, 0x1C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x91, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x1C, 0x00, 0x9F, 0xE5, 0x32, 0xFF, 0x2F, 0xE1 - .byte 0x98, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x1C, 0x37, 0x1D, 0x02, 0x9F, 0x00, 0x00, 0x00, 0x20, 0x37, 0x1D, 0x02, 0x28, 0x37, 0x1D, 0x02 - .byte 0x54, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x26, 0x06, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x3A - .byte 0x0A, 0x05, 0x51, 0xE3, 0x44, 0x00, 0x9F, 0x35, 0x00, 0x10, 0x80, 0x35, 0x02, 0x00, 0x00, 0x3A - .byte 0x38, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x2C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x24, 0x20, 0x9F, 0x05, 0x18, 0x10, 0x9F, 0x05 - .byte 0x20, 0x00, 0x9F, 0x05, 0x00, 0x20, 0x81, 0x05, 0xDC, 0x2F, 0x80, 0x05, 0x18, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x9C, 0xFD, 0x7F, 0x02 - .byte 0x24, 0x37, 0x1D, 0x02, 0xFC, 0xC9, 0x0C, 0x02, 0x00, 0x30, 0x7E, 0x02, 0x1C, 0x37, 0x1D, 0x02 - .byte 0x10, 0x10, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0xB0, 0x30, 0xD1, 0xE1, 0x12, 0x00, 0x83, 0xE1 - .byte 0xB0, 0x00, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xA8, 0x37, 0x1D, 0x02, 0x04, 0x00, 0x9F, 0xE5 - .byte 0xB0, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x0C, 0xD0, 0x4D, 0xE2, 0xB9, 0x01, 0x00, 0xEB, 0x8C, 0x10, 0x9F, 0xE5, 0x8C, 0x30, 0x9F, 0xE5 - .byte 0xB0, 0xC0, 0xD1, 0xE1, 0x88, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xE0, 0xE3, 0xB0, 0xC0, 0xCD, 0xE1 - .byte 0x00, 0xC0, 0x93, 0xE5, 0x04, 0x30, 0x93, 0xE5, 0x01, 0x10, 0x0C, 0xE0, 0x02, 0x20, 0x03, 0xE0 - .byte 0x04, 0x10, 0x8D, 0xE5, 0x6C, 0x10, 0x9F, 0xE5, 0x08, 0x20, 0x8D, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x08, 0x10, 0x11, 0xE2, 0x09, 0x00, 0x00, 0x0A, 0xB0, 0x10, 0xDD, 0xE1, 0x02, 0x19, 0x11, 0xE2 - .byte 0x06, 0x00, 0x00, 0x1A, 0x04, 0x30, 0x9D, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x08, 0x20, 0x9D, 0xE5 - .byte 0x01, 0x30, 0x93, 0xE0, 0x00, 0x10, 0xA2, 0xE2, 0x04, 0x30, 0x8D, 0xE5, 0x08, 0x10, 0x8D, 0xE5 - .byte 0xA3, 0x01, 0x00, 0xEB, 0x04, 0x20, 0x9D, 0xE5, 0x08, 0x10, 0x9D, 0xE5, 0xB0, 0x00, 0xDD, 0xE1 - .byte 0x01, 0x18, 0xA0, 0xE1, 0x22, 0x18, 0x81, 0xE1, 0xC0, 0x1F, 0x81, 0xE1, 0x02, 0x08, 0x80, 0xE1 - .byte 0x0C, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0x00, 0x04 - .byte 0xB4, 0x37, 0x1D, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x14, 0x02, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x64, 0x20, 0x9F, 0xE5, 0x64, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0x92, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x30, 0x92, 0xE5, 0x00, 0xC0, 0x9C, 0xE0, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x30, 0xA3, 0xE2, 0x00, 0xC0, 0x82, 0xE5, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x38, 0x20, 0x9F, 0xE5, 0x38, 0x00, 0x9F, 0xE5 - .byte 0xB0, 0x30, 0xC2, 0xE1, 0xB0, 0x30, 0xC0, 0xE1, 0xC1, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC2, 0xE1 - .byte 0x00, 0x30, 0x81, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x20, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE1 - .byte 0x64, 0xF4, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB4, 0x37, 0x1D, 0x02, 0xB0, 0x37, 0x1D, 0x02, 0x02, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04 - .byte 0xCC, 0xCC, 0x0C, 0x02, 0x04, 0x00, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xAC, 0x37, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x74, 0x10, 0x9F, 0xE5 - .byte 0xB0, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0xB0, 0x20, 0xC1, 0xE1 - .byte 0x96, 0xFF, 0xFF, 0xEB, 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x80, 0xE5 - .byte 0x48, 0x30, 0x9F, 0xE5, 0x04, 0x20, 0x80, 0xE5, 0x44, 0x00, 0x9F, 0xE5, 0xB0, 0x20, 0xC3, 0xE1 - .byte 0x40, 0x10, 0x9F, 0xE5, 0xB0, 0x20, 0xC0, 0xE1, 0xC1, 0x20, 0xA0, 0xE3, 0x08, 0x00, 0xA0, 0xE3 - .byte 0xB0, 0x20, 0xC3, 0xE1, 0x88, 0xF4, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3, 0x22, 0xF4, 0xFF, 0xEB - .byte 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xAC, 0x37, 0x1D, 0x02, 0xB4, 0x37, 0x1D, 0x02 - .byte 0x02, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0xCC, 0xCC, 0x0C, 0x02, 0xB0, 0x37, 0x1D, 0x02 - .byte 0x01, 0x40, 0x2D, 0xE9, 0x01, 0x00, 0x00, 0xEB, 0x01, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0xFC, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x10, 0x00, 0xA0, 0xE3, 0xB0, 0x20, 0xC1, 0xE1, 0xF9, 0xF3, 0xFF, 0xEB, 0xEC, 0x00, 0x9F, 0xE5 - .byte 0x03, 0x0A, 0x80, 0xE2, 0xF8, 0x1F, 0x90, 0xE5, 0x10, 0x10, 0x81, 0xE3, 0xF8, 0x1F, 0x80, 0xE5 - .byte 0x75, 0xFF, 0xFF, 0xEB, 0xD8, 0x20, 0x9F, 0xE5, 0x00, 0x40, 0x92, 0xE5, 0x00, 0x00, 0x54, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x10, 0x30, 0x94, 0xE5 - .byte 0x0C, 0xC0, 0x94, 0xE5, 0x03, 0x00, 0x51, 0xE1, 0x0C, 0x00, 0x50, 0x01, 0x04, 0x00, 0x00, 0x2A - .byte 0x04, 0x00, 0xA0, 0xE1, 0xDD, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x18, 0x10, 0x94, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x03 - .byte 0x04, 0x00, 0x82, 0x05, 0x00, 0x10, 0x82, 0xE5, 0x00, 0x00, 0xA0, 0x13, 0x14, 0x00, 0x81, 0x15 - .byte 0x1C, 0x20, 0x94, 0xE5, 0x20, 0x10, 0x94, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x51, 0xE1 - .byte 0x00, 0x50, 0x94, 0xE5, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x84, 0x05, 0x00, 0x00, 0x55, 0xE3 - .byte 0x01, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x94, 0xE5, 0x35, 0xFF, 0x2F, 0xE1, 0x1C, 0x20, 0x94, 0xE5 - .byte 0x20, 0x00, 0x94, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0x52, 0x01 - .byte 0x03, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x50, 0x84, 0xE5 - .byte 0x50, 0x00, 0x00, 0xEB, 0x28, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xB7, 0x00, 0x00, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x01, 0x00, 0x04 - .byte 0x00, 0x00, 0x7E, 0x02, 0xC0, 0x37, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x50, 0xA0, 0xE1, 0xF5, 0x00, 0x00, 0xEB, 0x00, 0x10, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0xF5, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x18, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x14, 0x20, 0x95, 0x05, 0x50, 0x10, 0x9F, 0x05, 0x04, 0x20, 0x81, 0x05, 0x14, 0x10, 0x95, 0x15 - .byte 0x14, 0x10, 0x80, 0x15, 0x14, 0x10, 0x95, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x18, 0x00, 0x81, 0x15 - .byte 0x04, 0x00, 0x00, 0x1A, 0x30, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x81, 0xE5 - .byte 0x00, 0x00, 0x00, 0x0A, 0x95, 0x00, 0x00, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x85, 0xE5 - .byte 0x1C, 0x10, 0x85, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x20, 0x10, 0x85, 0xE5, 0xDC, 0x00, 0x00, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xC0, 0x37, 0x1D, 0x02 - .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xB0, 0xE1, 0x01, 0x50, 0xA0, 0xE1 - .byte 0x02, 0x40, 0xA0, 0xE1, 0x03, 0x70, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x96, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x0A, 0x18, 0x02, 0x00, 0xEB, 0xC7, 0x00, 0x00, 0xEB - .byte 0x00, 0x10, 0xA0, 0xE3, 0x1C, 0x10, 0x86, 0xE5, 0x20, 0x10, 0x86, 0xE5, 0x00, 0x70, 0x86, 0xE5 - .byte 0x18, 0x10, 0x9D, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x04, 0x10, 0x86, 0xE5, 0x02, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x30, 0x95, 0xE0, 0x01, 0x20, 0xA4, 0xE0, 0x06, 0x00, 0xA0, 0xE1, 0x03, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x00, 0xEB, 0x07, 0x00, 0xA0, 0xE1, 0xBD, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x80, 0xA0, 0xE1 - .byte 0x1C, 0x40, 0x98, 0xE5, 0x20, 0x30, 0x98, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x53, 0xE1 - .byte 0x01, 0x70, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x00, 0x00, 0x54, 0x01, 0x14, 0x00, 0x00, 0x0A - .byte 0xED, 0xFE, 0xFF, 0xEB, 0x28, 0x60, 0x98, 0xE5, 0x24, 0x70, 0x98, 0xE5, 0x01, 0x00, 0x56, 0xE1 - .byte 0x00, 0x00, 0x57, 0x01, 0x0E, 0x00, 0x00, 0x2A, 0x1C, 0x50, 0x98, 0xE5, 0x20, 0x40, 0x98, 0xE5 - .byte 0x07, 0x00, 0x50, 0xE0, 0x05, 0x20, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x06, 0x10, 0xC1, 0xE0 - .byte 0xD4, 0x7A, 0x00, 0xEB, 0x01, 0x20, 0xA0, 0xE3, 0x02, 0x20, 0x90, 0xE0, 0x00, 0x00, 0xA1, 0xE2 - .byte 0x95, 0x32, 0x81, 0xE0, 0x95, 0x10, 0x21, 0xE0, 0x94, 0x12, 0x21, 0xE0, 0x03, 0x70, 0x97, 0xE0 - .byte 0x01, 0x60, 0xA6, 0xE0, 0x0C, 0x70, 0x88, 0xE5, 0xB4, 0x00, 0x9F, 0xE5, 0x10, 0x60, 0x88, 0xE5 - .byte 0x00, 0x40, 0x90, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0x19, 0x00, 0x00, 0x0A, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x0C, 0x20, 0x94, 0xE5, 0x10, 0x00, 0x94, 0xE5, 0x02, 0x30, 0x57, 0xE0, 0x00, 0x20, 0xC6, 0xE0 - .byte 0x01, 0x00, 0x53, 0xE0, 0x01, 0x00, 0xD2, 0xE0, 0x0E, 0x00, 0x00, 0xAA, 0x14, 0x00, 0x94, 0xE5 - .byte 0x14, 0x00, 0x88, 0xE5, 0x14, 0x80, 0x84, 0xE5, 0x18, 0x40, 0x88, 0xE5, 0x14, 0x00, 0x98, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x18, 0x80, 0x80, 0x15, 0xF0, 0x41, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0x5C, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x80, 0x81, 0xE5, 0x33, 0x00, 0x00, 0xEB - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x18, 0x40, 0x94, 0xE5, 0x00, 0x00, 0x54, 0xE3 - .byte 0xE6, 0xFF, 0xFF, 0x1A, 0x38, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x18, 0x00, 0x88, 0xE5 - .byte 0x04, 0x00, 0x91, 0xE5, 0x04, 0x80, 0x81, 0xE5, 0x14, 0x00, 0x88, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x18, 0x80, 0x80, 0x15, 0xF0, 0x41, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x08, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x80, 0x81, 0xE5, 0x00, 0x80, 0x81, 0xE5, 0x20, 0x00, 0x00, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xC0, 0x37, 0x1D, 0x02, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5 - .byte 0x08, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xBC, 0x37, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x40, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12 - .byte 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC1, 0xE1 - .byte 0x8A, 0xFE, 0xFF, 0xEB, 0x20, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x81, 0xE5, 0x04, 0x20, 0x81, 0xE5, 0x0D, 0xF3, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xBC, 0x37, 0x1D, 0x02, 0xC0, 0x37, 0x1D, 0x02 - .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x86, 0xFE, 0xFF, 0xEB - .byte 0x74, 0x30, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0xB0, 0x20, 0xC3, 0xE1, 0x0C, 0xC0, 0x94, 0xE5 - .byte 0x10, 0x30, 0x94, 0xE5, 0x00, 0x50, 0x5C, 0xE0, 0x01, 0x40, 0xC3, 0xE0, 0x5C, 0x10, 0x9F, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x27, 0xF3, 0xFF, 0xEB, 0x00, 0x20, 0xA0, 0xE3, 0x02, 0x00, 0x55, 0xE0 - .byte 0x02, 0x00, 0xD4, 0xE0, 0x48, 0x20, 0x9F, 0xB5, 0x05, 0x00, 0x00, 0xBA, 0x01, 0x08, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x55, 0xE0, 0x02, 0x00, 0xD4, 0xE0, 0x05, 0x00, 0xE0, 0xB1, 0x00, 0x08, 0xA0, 0xB1 - .byte 0x20, 0x28, 0xA0, 0xB1, 0x2C, 0x00, 0x9F, 0xE5, 0x1C, 0x10, 0x9F, 0xE5, 0xB0, 0x20, 0xC0, 0xE1 - .byte 0xC1, 0x20, 0xA0, 0xE3, 0x10, 0x00, 0xA0, 0xE3, 0xB0, 0x20, 0xC1, 0xE1, 0xFA, 0xF2, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x01, 0x00, 0x04 - .byte 0x00, 0xCE, 0x0C, 0x02, 0xFE, 0xFF, 0x00, 0x00, 0x04, 0x01, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x50, 0x20, 0x9F, 0xE5, 0xB0, 0x00, 0xD2, 0xE1, 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x3C, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x01, 0xC0, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE3, 0xB0, 0xC0, 0xC2, 0xE1 - .byte 0x00, 0x30, 0x81, 0xE5, 0x04, 0x30, 0x81, 0xE5, 0xD1, 0xF2, 0xFF, 0xEB, 0x20, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x1C, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x80, 0xE5 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xC8, 0x37, 0x1D, 0x02 - .byte 0xD4, 0x37, 0x1D, 0x02, 0xD0, 0x37, 0x1D, 0x02, 0xCC, 0x37, 0x1D, 0x02, 0x00, 0x00, 0x0F, 0xE1 - .byte 0x80, 0x10, 0xC0, 0xE3, 0x01, 0xF0, 0x21, 0xE1, 0x80, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020CD310 -FUN_020CD310: ; 0x020CD310 + bl OS_DisableInterrupts + ldr r1, [r5, #0x0] + mov r4, r0 + cmp r1, #0x0 + bne _020CCF58 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020CCF58: + ldr r0, [r5, #0x18] + cmp r0, #0x0 + ldreq r2, [r5, #0x14] + ldreq r1, _020CCFBC ; =0x021D37C0 + streq r2, [r1, #0x4] + ldrne r1, [r5, #0x14] + strne r1, [r0, #0x14] + ldr r1, [r5, #0x14] + cmp r1, #0x0 + strne r0, [r1, #0x18] + bne _020CCF98 + ldr r1, _020CCFBC ; =0x021D37C0 + cmp r0, #0x0 + str r0, [r1, #0x0] + beq _020CCF98 + bl OSi_SetTimer +_020CCF98: + mov r1, #0x0 + str r1, [r5, #0x0] + str r1, [r5, #0x1c] + mov r0, r4 + str r1, [r5, #0x20] + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CCFBC: .word 0x021D37C0 + + arm_func_start OS_SetAlarm +OS_SetAlarm: ; 0x020CCFC0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + movs r6, r0 + mov r5, r1 + mov r4, r2 + mov r7, r3 + beq _020CCFE8 + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _020CCFEC +_020CCFE8: + bl OS_Terminate +_020CCFEC: + bl OS_DisableInterrupts + mov r1, #0x0 + str r1, [r6, #0x1c] + str r1, [r6, #0x20] + str r7, [r6, #0x0] + ldr r1, [sp, #0x18] + mov r7, r0 + str r1, [r6, #0x4] + bl OS_GetTick + adds r3, r5, r0 + adc r2, r4, r1 + mov r0, r6 + mov r1, r3 + bl OSi_InsertAlarm + mov r0, r7 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start OSi_InsertAlarm +OSi_InsertAlarm: ; 0x020CD038 + stmdb sp!, {r4-r8,lr} + mov r8, r0 + ldr r4, [r8, #0x1c] + ldr r3, [r8, #0x20] + mov r0, #0x0 + cmp r3, r0 + mov r7, r1 + mov r6, r2 + cmpeq r4, r0 + beq _020CD0B4 + bl OS_GetTick + ldr r6, [r8, #0x28] + ldr r7, [r8, #0x24] + cmp r6, r1 + cmpeq r7, r0 + bhs _020CD0B4 + ldr r5, [r8, #0x1c] + ldr r4, [r8, #0x20] + subs r0, r0, r7 + mov r2, r5 + mov r3, r4 + sbc r1, r1, r6 + bl FUN_020EBBE8 + mov r2, #0x1 + adds r2, r0, r2 + adc r0, r1, #0x0 + umull r3, r1, r5, r2 + mla r1, r5, r0, r1 + mla r1, r4, r2, r1 + adds r7, r7, r3 + adc r6, r6, r1 +_020CD0B4: + str r7, [r8, #0xc] + ldr r0, _020CD174 ; =0x021D37C0 + str r6, [r8, #0x10] + ldr r4, [r0, #0x0] + cmp r4, #0x0 + beq _020CD134 + mov r1, #0x0 +_020CD0D0: + ldr r2, [r4, #0xc] + ldr r0, [r4, #0x10] + subs r3, r7, r2 + sbc r2, r6, r0 + subs r0, r3, r1 + sbcs r0, r2, r1 + bge _020CD128 + ldr r0, [r4, #0x14] + str r0, [r8, #0x14] + str r8, [r4, #0x14] + str r4, [r8, #0x18] + ldr r0, [r8, #0x14] + cmp r0, #0x0 + strne r8, [r0, #0x18] + ldmneia sp!, {r4-r8,lr} + bxne lr + ldr r1, _020CD174 ; =0x021D37C0 + mov r0, r8 + str r8, [r1, #0x0] + bl OSi_SetTimer + ldmia sp!, {r4-r8,lr} + bx lr +_020CD128: + ldr r4, [r4, #0x18] + cmp r4, #0x0 + bne _020CD0D0 +_020CD134: + ldr r1, _020CD174 ; =0x021D37C0 + mov r0, #0x0 + str r0, [r8, #0x18] + ldr r0, [r1, #0x4] + str r8, [r1, #0x4] + str r0, [r8, #0x14] + cmp r0, #0x0 + strne r8, [r0, #0x18] + ldmneia sp!, {r4-r8,lr} + bxne lr + mov r0, r8 + str r8, [r1, #0x4] + str r8, [r1, #0x0] + bl OSi_SetTimer + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020CD174: .word 0x021D37C0 + + arm_func_start OS_CreateAlarm +OS_CreateAlarm: ; 0x020CD178 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x8] + bx lr + + arm_func_start OS_IsAlarmAvailable +OS_IsAlarmAvailable: ; 0x020CD188 + ldr r0, _020CD194 ; =0x021D37BC + ldrh r0, [r0, #0x0] + bx lr + .balign 4 +_020CD194: .word 0x021D37BC + + arm_func_start OS_InitAlarm +OS_InitAlarm: ; 0x020CD198 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CD1E8 ; =0x021D37BC + ldrh r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + mov r0, #0x1 + strh r0, [r1, #0x0] + bl OSi_SetTimerReserved + ldr r1, _020CD1EC ; =0x021D37C0 + mov r2, #0x0 + mov r0, #0x10 + str r2, [r1, #0x0] + str r2, [r1, #0x4] + bl OS_DisableIrqMask + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CD1E8: .word 0x021D37BC +_020CD1EC: .word 0x021D37C0 + + arm_func_start OSi_SetTimer +OSi_SetTimer: ; 0x020CD1F0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + bl OS_GetTick + ldr r3, _020CD27C ; =0x04000106 + mov r2, #0x0 + strh r2, [r3, #0x0] + ldr r12, [r4, #0xc] + ldr r3, [r4, #0x10] + subs r5, r12, r0 + sbc r4, r3, r1 + ldr r1, _020CD280 ; =OSi_AlarmHandler + mov r0, #0x1 + bl OSi_EnterTimerCallback + mov r2, #0x0 + subs r0, r5, r2 + sbcs r0, r4, r2 + ldrlt r2, _020CD284 ; =0x0000FFFE + blt _020CD254 + mov r0, #0x10000 + subs r0, r5, r0 + sbcs r0, r4, r2 + mvnlt r0, r5 + movlt r0, r0, lsl #0x10 + movlt r2, r0, lsr #0x10 +_020CD254: + ldr r0, _020CD288 ; =0x04000104 + ldr r1, _020CD27C ; =0x04000106 + strh r2, [r0, #0x0] + mov r2, #0xc1 + mov r0, #0x10 + strh r2, [r1, #0x0] + bl OS_EnableIrqMask + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CD27C: .word 0x04000106 +_020CD280: .word OSi_AlarmHandler +_020CD284: .word 0x0000FFFE +_020CD288: .word 0x04000104 + + arm_func_start OS_InitVAlarm +OS_InitVAlarm: ; 0x020CD28C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _020CD2EC ; =0x021D37C8 + ldrh r0, [r2, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r1, _020CD2F0 ; =0x021D37D4 + mov r3, #0x0 + mov r12, #0x1 + mov r0, #0x4 + strh r12, [r2, #0x0] + str r3, [r1, #0x0] + str r3, [r1, #0x4] + bl OS_DisableIrqMask + ldr r1, _020CD2F4 ; =0x021D37D0 + mov r2, #0x0 + ldr r0, _020CD2F8 ; =0x021D37CC + str r2, [r1, #0x0] + str r2, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CD2EC: .word 0x021D37C8 +_020CD2F0: .word 0x021D37D4 +_020CD2F4: .word 0x021D37D0 +_020CD2F8: .word 0x021D37CC + + arm_func_start OS_EnableInterrupts +OS_EnableInterrupts: ; 0x020CD2FC + mrs r0, cpsr + bic r1, r0, #0x80 + msr cpsr_c, r1 + and r0, r0, #0x80 + bx lr + + arm_func_start OS_DisableInterrupts +OS_DisableInterrupts: mrs r0, cpsr orr r1, r0, #0x80 msr cpsr_c, r1 and r0, r0, #0x80 bx lr - arm_func_start FUN_020CD324 -FUN_020CD324: ; 0x020CD324 + arm_func_start OS_RestoreInterrupts +OS_RestoreInterrupts: mrs r1, cpsr bic r2, r1, #0x80 orr r2, r2, r0 msr cpsr_c, r2 and r0, r1, #0x80 bx lr -_020CD33C: - .byte 0x00, 0x00, 0x0F, 0xE1 - .byte 0xC0, 0x10, 0x80, 0xE3, 0x01, 0xF0, 0x21, 0xE1, 0xC0, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x10, 0x0F, 0xE1, 0xC0, 0x20, 0xC1, 0xE3, 0x00, 0x20, 0x82, 0xE1, 0x02, 0xF0, 0x21, 0xE1 - .byte 0xC0, 0x00, 0x01, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x0F, 0xE1, 0x80, 0x00, 0x00, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x0F, 0xE1, 0x1F, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0x00, 0x50, 0xE2, 0xFD, 0xFF, 0xFF, 0x2A, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0x94, 0xCC, 0xFC, 0xFB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x18, 0xF2, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9, 0x6C, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0xB0, 0x00, 0xD1, 0xE1, 0x02, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0x1F, 0x01, 0x00, 0xEB - .byte 0x32, 0xF3, 0xFF, 0xEB, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0xBF, 0x24, 0x00, 0xEB + + arm_func_start OS_DisableInterrupts_IrqAndFiq +OS_DisableInterrupts_IrqAndFiq: ; 0x020CD33C + mrs r0, cpsr + orr r1, r0, #0xc0 + msr cpsr_c, r1 + and r0, r0, #0xc0 + bx lr + + arm_func_start OS_RestoreInterrupts_IrqAndFiq +OS_RestoreInterrupts_IrqAndFiq: ; 0x020CD350 + mrs r1, cpsr + bic r2, r1, #0xc0 + orr r2, r2, r0 + msr cpsr_c, r2 + and r0, r1, #0xc0 + bx lr + + arm_func_start OS_GetCpsrIrq +OS_GetCpsrIrq: ; 0x020CD368 + mrs r0, cpsr + and r0, r0, #0x80 + bx lr + + arm_func_start OS_GetProcMode +OS_GetProcMode: ; 0x020CD374 + mrs r0, cpsr + and r0, r0, #0x1f + bx lr +_020CD380: + subs r0, r0, #0x4 + bhs _020CD380 + bx lr + + arm_func_start OS_WaitVBlankIntr +OS_WaitVBlankIntr: ; 0x020CD38C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, #0x1 + blx FUN_020005F2 + mov r0, #0x1 + mov r1, r0 + bl OS_WaitIrq + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start OS_ResetSystem +OS_ResetSystem: ; 0x020CD3B4 + stmdb sp!, {r4,lr} + ldr r1, _020CD42C ; =0x027FFC40 + mov r4, r0 + ldrh r0, [r1, #0x0] + cmp r0, #0x2 + bne _020CD3D0 + bl OS_Terminate +_020CD3D0: + bl OS_GetLockID + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl FUN_020D66E0 +_020CD3E0: .byte 0x00, 0x00, 0xA0, 0xE3, 0x6B, 0x01, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x69, 0x01, 0x00, 0xEB .byte 0x02, 0x00, 0xA0, 0xE3, 0x67, 0x01, 0x00, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x65, 0x01, 0x00, 0xEB .byte 0x01, 0x07, 0xA0, 0xE3, 0xA2, 0xF2, 0xFF, 0xEB, 0x00, 0x00, 0xE0, 0xE3, 0x73, 0xF2, 0xFF, 0xEB .byte 0x18, 0x10, 0x9F, 0xE5, 0x10, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0x81, 0xE5, 0x04, 0x00, 0x00, 0xEB - .byte 0x1F, 0xAC, 0xFC, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0xFC, 0x7F, 0x02 - .byte 0x20, 0xFC, 0x7F, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x64, 0xA0, 0xE1, 0x0C, 0x50, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x22, 0x0A, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x7F, 0x0C, 0x01, 0xE2 - .byte 0x00, 0x04, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0x10, 0x00, 0x50, 0xE3, 0x20, 0x00, 0x9F, 0x05 - .byte 0x01, 0x10, 0xA0, 0x03, 0xB0, 0x10, 0xC0, 0x01, 0x04, 0xD0, 0x8D, 0x02, 0x00, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0xED, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE0, 0x37, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x50, 0x00, 0x9F, 0xE5, 0xB0, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x12 - .byte 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xC0, 0xE1 - .byte 0xB6, 0x09, 0x00, 0xEB, 0x0C, 0x50, 0xA0, 0xE3, 0x01, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x2A, 0x0A, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A + .byte 0x1F, 0xAC, 0xFC, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CD42C: .word 0x027FFC40 +_020CD430: + .byte 0x20, 0xFC, 0x7F, 0x02 + + arm_func_start OSi_SendToPxi +OSi_SendToPxi: ; 0x020CD434 + stmdb sp!, {r4-r6,lr} + mov r6, r0, lsl #0x8 + mov r5, #0xc + mov r4, #0x0 + mov r0, r5 + mov r1, r6 + mov r2, r4 + bl PXI_SendWordByFifo +_020CD454: + .byte 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start OSi_CommonCallback +OSi_CommonCallback: ; 0x020CD464 + stmdb sp!, {lr} + sub sp, sp, #0x4 + and r0, r1, #0x7f00 + mov r0, r0, lsl #0x8 + mov r0, r0, lsr #0x10 + cmp r0, #0x10 + ldreq r0, _020CD4A4 ; =0x021D37E0 + moveq r1, #0x1 + streqh r1, [r0, #0x0] + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + bl OS_Terminate + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CD4A4: .word 0x021D37E0 + + arm_func_start OS_InitReset +OS_InitReset: ; 0x020CD4A8 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020CD508 ; =0x021D37DC + ldrh r1, [r0, #0x0] + cmp r1, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r1, #0x1 + strh r1, [r0, #0x0] + bl PXI_Init + mov r5, #0xc + mov r4, #0x1 + mov r0, r5 + mov r1, r4 + bl PXI_IsCallbackReady +_020CD4E8: + .byte 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A .byte 0x14, 0x10, 0x9F, 0xE5, 0x0C, 0x00, 0xA0, 0xE3, 0x2F, 0x0A, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xDC, 0x37, 0x1D, 0x02, 0x64, 0xD4, 0x0C, 0x02 - .byte 0x08, 0x10, 0x9F, 0xE5, 0x68, 0x00, 0x91, 0xE5, 0x6C, 0x10, 0x91, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x80, 0xFC, 0x7F, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x6C, 0xC0, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0xB4, 0x26, 0xDC, 0xE1, 0x06, 0x00, 0x8C, 0xE2, 0x04, 0x10, 0x84, 0xE2, 0x82, 0x2E, 0xA0, 0xE1 - .byte 0xA2, 0x2E, 0xA0, 0xE1, 0x00, 0x20, 0xC4, 0xE5, 0x02, 0x30, 0xDC, 0xE5, 0x14, 0x20, 0xA0, 0xE3 - .byte 0x03, 0x3E, 0xA0, 0xE1, 0x23, 0x3E, 0xA0, 0xE1, 0x01, 0x30, 0xC4, 0xE5, 0x03, 0x30, 0xDC, 0xE5 - .byte 0x02, 0x30, 0xC4, 0xE5, 0x04, 0x30, 0xDC, 0xE5, 0x03, 0x30, 0xC4, 0xE5, 0x1A, 0x30, 0xDC, 0xE5 - .byte 0xB8, 0x31, 0xC4, 0xE1, 0x50, 0x30, 0xDC, 0xE5, 0xBE, 0x34, 0xC4, 0xE1, 0x17, 0x03, 0x00, 0xEB - .byte 0x14, 0x00, 0x9F, 0xE5, 0x1A, 0x10, 0x84, 0xE2, 0x1C, 0x00, 0x80, 0xE2, 0x34, 0x20, 0xA0, 0xE3 - .byte 0x12, 0x03, 0x00, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0xFC, 0x7F, 0x02 - .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x08, 0x00, 0x9F, 0xE5, 0x06, 0x20, 0xA0, 0xE3 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xE0, 0xE3, 0x0C, 0x02, 0xF4, 0xFC, 0x7F, 0x02, 0x10, 0x0F, 0x6F, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x47, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0xA0, 0xA0, 0xE1 - .byte 0x4E, 0xFF, 0xFF, 0xEB, 0x64, 0x40, 0x9F, 0xE5, 0x64, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x94, 0xE5 - .byte 0x00, 0x80, 0xA0, 0xE1, 0x02, 0x00, 0x05, 0xE0, 0x01, 0x90, 0x00, 0xE0, 0x54, 0x60, 0x9F, 0xE5 - .byte 0x01, 0x70, 0xA0, 0xE3, 0x00, 0x50, 0xA0, 0xE3, 0x09, 0x00, 0xA0, 0xE1, 0xEE, 0xFF, 0xFF, 0xEB - .byte 0x1F, 0x20, 0x70, 0xE2, 0x09, 0x00, 0x00, 0x4A, 0x82, 0x10, 0xA0, 0xE1, 0xB1, 0x00, 0x96, 0xE1 - .byte 0x17, 0x22, 0xE0, 0xE1, 0x00, 0x00, 0x5A, 0xE1, 0x00, 0x00, 0x94, 0x05, 0x02, 0x90, 0x09, 0xE0 - .byte 0x02, 0x00, 0x00, 0x00, 0xB1, 0x50, 0x86, 0x01, 0x00, 0x00, 0x84, 0x05, 0xF1, 0xFF, 0xFF, 0xEA - .byte 0x08, 0x00, 0xA0, 0xE1, 0x3A, 0xFF, 0xFF, 0xEB, 0xF0, 0x47, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xE4, 0x37, 0x1D, 0x02, 0xFF, 0x01, 0x00, 0x00, 0xE8, 0x37, 0x1D, 0x02, 0xF0, 0x43, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x80, 0xA0, 0xE1, 0x2B, 0xFF, 0xFF, 0xEB - .byte 0xAC, 0x10, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x00, 0x50, 0x06, 0xE0 - .byte 0xA0, 0x90, 0x9F, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0xCE, 0xFF, 0xFF, 0xEB - .byte 0x1F, 0x10, 0x70, 0xE2, 0x0B, 0x00, 0x00, 0x4A, 0x81, 0x00, 0xA0, 0xE1, 0xB0, 0x00, 0x99, 0xE1 - .byte 0x14, 0x11, 0xE0, 0xE1, 0x00, 0x00, 0x58, 0xE1, 0x01, 0x50, 0x05, 0xE0, 0xF5, 0xFF, 0xFF, 0x0A - .byte 0x07, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x5C, 0x00, 0x9F, 0xE5, 0x00, 0x60, 0x06, 0xE0 - .byte 0x50, 0x40, 0x9F, 0xE5, 0x48, 0x90, 0x9F, 0xE5, 0x01, 0x50, 0xA0, 0xE3, 0x06, 0x00, 0xA0, 0xE1 - .byte 0xB9, 0xFF, 0xFF, 0xEB, 0x1F, 0x10, 0x70, 0xE2, 0x07, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x99, 0xE5 - .byte 0x15, 0x21, 0xE0, 0xE1, 0x15, 0x01, 0x80, 0xE1, 0x81, 0x10, 0xA0, 0xE1, 0xB1, 0x80, 0x84, 0xE1 - .byte 0x00, 0x00, 0x89, 0xE5, 0x02, 0x60, 0x06, 0xE0, 0xF3, 0xFF, 0xFF, 0xEA, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x07, 0xFF, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE4, 0x37, 0x1D, 0x02, 0xE8, 0x37, 0x1D, 0x02, 0xFF, 0x01, 0x00, 0x00 - .byte 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0x80, 0xE5, 0x1C, 0x00, 0x9F, 0xE5 - .byte 0x03, 0x20, 0xA0, 0xE1, 0x83, 0x10, 0xA0, 0xE1, 0x01, 0x30, 0x83, 0xE2, 0xB1, 0x20, 0x80, 0xE1 - .byte 0x09, 0x00, 0x53, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0xE4, 0x37, 0x1D, 0x02 - .byte 0xE8, 0x37, 0x1D, 0x02, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0xC8, 0x10, 0x9F, 0xE5 - .byte 0xC8, 0x20, 0x9F, 0xE5, 0xB0, 0x70, 0xD1, 0xE1, 0x80, 0x40, 0x82, 0xE2, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x74, 0x50, 0x84, 0xE2, 0x24, 0xFD, 0xFF, 0xEB, 0x07, 0x08, 0x80, 0xE1, 0x00, 0x00, 0x86, 0xE5 - .byte 0xAC, 0x10, 0x9F, 0xE5, 0xA4, 0x00, 0x9F, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0xB4, 0x50, 0xD5, 0xE1 - .byte 0x04, 0x20, 0x91, 0xE5, 0x9C, 0x20, 0x9F, 0xE5, 0x05, 0x38, 0x23, 0xE0, 0x04, 0x30, 0x86, 0xE5 - .byte 0x00, 0x30, 0x91, 0xE5, 0x04, 0x30, 0x91, 0xE5, 0x74, 0x10, 0x94, 0xE5, 0x3C, 0x40, 0x90, 0xE5 - .byte 0x01, 0x10, 0x23, 0xE0, 0x01, 0x10, 0x24, 0xE0, 0x08, 0x10, 0x86, 0xE5, 0x08, 0x30, 0x96, 0xE5 - .byte 0x00, 0x20, 0x92, 0xE5, 0x03, 0x1C, 0x80, 0xE2, 0x02, 0x20, 0x23, 0xE0, 0x08, 0x20, 0x86, 0xE5 - .byte 0xE8, 0x21, 0x90, 0xE5, 0x60, 0x30, 0x9F, 0xE5, 0x0C, 0x20, 0x86, 0xE5, 0xEC, 0x41, 0x90, 0xE5 - .byte 0x58, 0x20, 0x9F, 0xE5, 0x10, 0x40, 0x86, 0xE5, 0xB4, 0x49, 0xD1, 0xE1, 0x90, 0x03, 0x90, 0xE5 - .byte 0x04, 0x08, 0x20, 0xE0, 0x14, 0x00, 0x86, 0xE5, 0xBA, 0x4A, 0xD1, 0xE1, 0xBC, 0x0A, 0xD1, 0xE1 - .byte 0x04, 0x08, 0x80, 0xE1, 0x18, 0x00, 0x86, 0xE5, 0xB0, 0x30, 0xD3, 0xE1, 0xB0, 0x00, 0xD2, 0xE1 - .byte 0xB8, 0x19, 0xD1, 0xE1, 0x00, 0x00, 0x83, 0xE1, 0x01, 0x08, 0x80, 0xE1, 0x1C, 0x00, 0x86, 0xE5 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x00, 0x00, 0x04 - .byte 0x00, 0xFC, 0x7F, 0x02, 0xB4, 0x37, 0x1D, 0x02, 0x00, 0x06, 0x00, 0x04, 0x30, 0x01, 0x00, 0x04 - .byte 0xA8, 0xFF, 0x7F, 0x02, 0x00, 0x00, 0xA0, 0xE3, 0x90, 0x0F, 0x07, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0xAC, 0xFE, 0xFF, 0xEB, 0xF8, 0xFF, 0xFF, 0xEB - .byte 0xFC, 0xFF, 0xFF, 0xEA, 0x04, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xC1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x47, 0x02, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0x53, 0xE3 - .byte 0xFF, 0x04, 0x01, 0xE2, 0x02, 0x00, 0x00, 0x0A, 0x02, 0x05, 0x53, 0xE3, 0x02, 0x10, 0x41, 0x00 - .byte 0x00, 0x00, 0x00, 0xEA, 0x02, 0x10, 0x81, 0xE0, 0x01, 0x03, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A - .byte 0x02, 0x03, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x2A, 0xFF, 0x04, 0x01, 0xE2, 0x01, 0x03, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x02, 0x03, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x32, 0x00, 0x40, 0xBD, 0x38 - .byte 0x1E, 0xFF, 0x2F, 0x31, 0xDD, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0xA0, 0x40, 0x9F, 0xE5 - .byte 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, 0x07, 0x00, 0x55, 0xE1 - .byte 0x1C, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x94, 0xE5, 0x02, 0x01, 0x11, 0xE2, 0x19, 0x00, 0x00, 0x0A - .byte 0x0E, 0x03, 0x01, 0xE2, 0x06, 0x00, 0x50, 0xE1, 0x16, 0x00, 0x00, 0x0A, 0x02, 0x03, 0x50, 0xE3 - .byte 0x01, 0x00, 0x00, 0x1A, 0x01, 0x02, 0x56, 0xE3, 0x12, 0x00, 0x00, 0x0A, 0x01, 0x02, 0x50, 0xE3 - .byte 0x01, 0x00, 0x00, 0x1A, 0x02, 0x03, 0x56, 0xE3, 0x0E, 0x00, 0x00, 0x0A, 0x06, 0x03, 0x50, 0xE3 - .byte 0x0B, 0x00, 0x00, 0x0A, 0x02, 0x02, 0x50, 0xE3, 0x09, 0x00, 0x00, 0x0A, 0x0A, 0x03, 0x50, 0xE3 - .byte 0x07, 0x00, 0x00, 0x0A, 0x03, 0x02, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x0E, 0x03, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x02, 0x03, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x01, 0x02, 0x50, 0xE3 - .byte 0x00, 0x00, 0x00, 0x1A, 0xB5, 0xFF, 0xFF, 0xEB, 0x01, 0x50, 0x85, 0xE2, 0x03, 0x00, 0x55, 0xE3 - .byte 0x0C, 0x40, 0x84, 0xE2, 0xDC, 0xFF, 0xFF, 0xBA, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0x00, 0x00, 0x04, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x5A, 0xFE, 0xFF, 0xEB, 0x06, 0x10, 0xA0, 0xE3, 0x94, 0x01, 0x01, 0xE0, 0x05, 0x10, 0x81, 0xE2 - .byte 0x81, 0x10, 0xA0, 0xE1, 0x01, 0x13, 0x81, 0xE2, 0xB0, 0x2B, 0xD1, 0xE1, 0x00, 0x00, 0x54, 0xE3 - .byte 0x3A, 0x2C, 0xC2, 0xE3, 0xB0, 0x2B, 0xC1, 0xE1, 0xB0, 0x2B, 0xD1, 0xE1, 0x02, 0x29, 0xC2, 0xE3 - .byte 0xB0, 0x2B, 0xC1, 0xE1, 0xB0, 0x2B, 0xD1, 0xE1, 0xB0, 0x1B, 0xD1, 0xE1, 0x09, 0x00, 0x00, 0x1A - .byte 0x0C, 0x10, 0xA0, 0xE3, 0x94, 0x01, 0x0C, 0xE0, 0x24, 0x10, 0x9F, 0xE5, 0x01, 0x23, 0x8C, 0xE2 - .byte 0x00, 0x30, 0xA0, 0xE3, 0xB0, 0x30, 0x82, 0xE5, 0x01, 0x20, 0x8C, 0xE0, 0x14, 0x10, 0x9F, 0xE5 - .byte 0x04, 0x30, 0x82, 0xE5, 0x08, 0x10, 0x82, 0xE5, 0x45, 0xFE, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x00, 0x00, 0x04, 0x01, 0x00, 0x40, 0x81, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x39, 0xFE, 0xFF, 0xEB, 0x03, 0x10, 0xA0, 0xE3, 0x94, 0x01, 0x02, 0xE0 - .byte 0x4C, 0x10, 0x9F, 0xE5, 0x02, 0x20, 0x82, 0xE2, 0x02, 0x21, 0x81, 0xE0, 0x00, 0x10, 0x92, 0xE5 - .byte 0x02, 0x11, 0x11, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x54, 0xE3, 0x09, 0x00, 0x00, 0x1A - .byte 0x0C, 0x10, 0xA0, 0xE3, 0x94, 0x01, 0x0C, 0xE0, 0x24, 0x10, 0x9F, 0xE5, 0x01, 0x23, 0x8C, 0xE2 - .byte 0x00, 0x30, 0xA0, 0xE3, 0xB0, 0x30, 0x82, 0xE5, 0x01, 0x20, 0x8C, 0xE0, 0x14, 0x10, 0x9F, 0xE5 - .byte 0x04, 0x30, 0x82, 0xE5, 0x08, 0x10, 0x82, 0xE5, 0x29, 0xFE, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x00, 0x00, 0x04, 0x01, 0x00, 0x40, 0x81, 0xF0, 0x41, 0x2D, 0xE9 - .byte 0x03, 0x50, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1, 0x18, 0x40, 0x9D, 0xE5, 0x70, 0xFF, 0xFF, 0xEB + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CD508: .word 0x021D37DC +_020CD50C: + .byte 0x64, 0xD4, 0x0C, 0x02 + + arm_func_start OS_GetOwnerRtcOffset +OS_GetOwnerRtcOffset: ; 0x020CD510 + ldr r1, _020CD520 ; =0x027FFC80 + ldr r0, [r1, #0x68] + ldr r1, [r1, #0x6c] + bx lr + .balign 4 +_020CD520: .word 0x027FFC80 + + arm_func_start OS_GetOwnerInfo +OS_GetOwnerInfo: ; 0x020CD524 + stmdb sp!, {r4,lr} + ldr ip, _020CD59C ; =0x027FFC80 + mov r4, r0 + ldrh r2, [r12, #0x64] + add r0, r12, #0x6 + add r1, r4, #0x4 + mov r2, r2, lsl #0x1d + mov r2, r2, lsr #0x1d + strb r2, [r4, #0x0] + ldrb r3, [r12, #0x2] + mov r2, #0x14 + mov r3, r3, lsl #0x1c + mov r3, r3, lsr #0x1c + strb r3, [r4, #0x1] + ldrb r3, [r12, #0x3] + strb r3, [r4, #0x2] + ldrb r3, [r12, #0x4] + strb r3, [r4, #0x3] + ldrb r3, [r12, #0x1a] + strh r3, [r4, #0x18] + ldrb r3, [r12, #0x50] + strh r3, [r4, #0x4e] + bl MIi_CpuCopy16 + ldr r0, _020CD59C ; =0x027FFC80 + add r1, r4, #0x1a + add r0, r0, #0x1c + mov r2, #0x34 + bl MIi_CpuCopy16 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CD59C: .word 0x027FFC80 + + arm_func_start OS_GetMacAddress +OS_GetMacAddress: ; 0x020CD5A0 + ldr ip, _020CD5B4 ; =MI_CpuCopy8 + mov r1, r0 + ldr r0, _020CD5B8 ; =0x027FFCF4 + mov r2, #0x6 + bx r12 + .balign 4 +_020CD5B4: .word MI_CpuCopy8 +_020CD5B8: .word 0x027FFCF4 + + arm_func_start OsCountZeroBits +OsCountZeroBits: ; 0x020CD5BC + clz r0, r0 + bx lr + + arm_func_start OSi_UnlockVram +OSi_UnlockVram: ; 0x020CD5C4 + stmdb sp!, {r4-r10,lr} + mov r5, r0 + mov r10, r1 + bl OS_DisableInterrupts + ldr r4, _020CD640 ; =0x021D37E4 + ldr r1, _020CD644 ; =0x000001FF + ldr r2, [r4, #0x0] + mov r8, r0 + and r0, r5, r2 + and r9, r0, r1 + ldr r6, _020CD648 ; =0x021D37E8 + mov r7, #0x1 + mov r5, #0x0 +_020CD5F8: + mov r0, r9 + bl OsCountZeroBits + rsbs r2, r0, #0x1f + bmi _020CD630 + mov r1, r2, lsl #0x1 + ldrh r0, [r6, r1] + mvn r2, r7, lsl r2 + cmp r10, r0 + ldreq r0, [r4, #0x0] + and r9, r9, r2 + andeq r0, r0, r2 + streqh r5, [r6, r1] + streq r0, [r4, #0x0] + b _020CD5F8 +_020CD630: + mov r0, r8 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r10,lr} + bx lr + .balign 4 +_020CD640: .word 0x021D37E4 +_020CD644: .word 0x000001FF +_020CD648: .word 0x021D37E8 + + arm_func_start OSi_TryLockVram +OSi_TryLockVram: ; 0x020CD64C + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r8, r1 + bl OS_DisableInterrupts + ldr r1, _020CD714 ; =0x021D37E4 + mov r7, r0 + ldr r0, [r1, #0x0] + and r5, r6, r0 + ldr sb, _020CD718 ; =0x021D37E8 + mov r4, #0x1 +_020CD678: + mov r0, r5 + bl OsCountZeroBits + rsbs r1, r0, #0x1f + bmi _020CD6B8 + mov r0, r1, lsl #0x1 + ldrh r0, [r9, r0] + mvn r1, r4, lsl r1 + cmp r8, r0 + and r5, r5, r1 + beq _020CD678 + mov r0, r7 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r9,lr} + bx lr +_020CD6B8: + ldr r0, _020CD71C ; =0x000001FF + and r6, r6, r0 + ldr r4, _020CD718 ; =0x021D37E8 + ldr sb, _020CD714 ; =0x021D37E4 + mov r5, #0x1 +_020CD6CC: + mov r0, r6 + bl OsCountZeroBits + rsbs r1, r0, #0x1f + bmi _020CD6FC + ldr r0, [r9, #0x0] + mvn r2, r5, lsl r1 + orr r0, r0, r5, lsl r1 + mov r1, r1, lsl #0x1 + strh r8, [r4, r1] + str r0, [r9, #0x0] + and r6, r6, r2 + b _020CD6CC +_020CD6FC: + mov r0, r7 + bl OS_RestoreInterrupts + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_020CD714: .word 0x021D37E4 +_020CD718: .word 0x021D37E8 +_020CD71C: .word 0x000001FF + + arm_func_start OSi_InitVramExclusive +OSi_InitVramExclusive: ; 0x020CD720 + ldr r0, _020CD74C ; =0x021D37E4 + mov r3, #0x0 + str r3, [r0, #0x0] + ldr r0, _020CD750 ; =0x021D37E8 + mov r2, r3 +_020CD734: + mov r1, r3, lsl #0x1 + add r3, r3, #0x1 + strh r2, [r0, r1] + cmp r3, #0x9 + blt _020CD734 + bx lr + .balign 4 +_020CD74C: .word 0x021D37E4 +_020CD750: .word 0x021D37E8 + + arm_func_start OS_GetLowEntropyData +OS_GetLowEntropyData: ; 0x020CD754 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r1, _020CD82C ; =0x04000006 + ldr r2, _020CD830 ; =0x027FFC00 + ldrh r7, [r1, #0x0] + add r4, r2, #0x80 + mov r6, r0 + add r5, r4, #0x74 + bl OS_GetTickLo + orr r0, r0, r7, lsl #0x10 + str r0, [r6, #0x0] + ldr r1, _020CD834 ; =0x021D37B4 + ldr r0, _020CD830 ; =0x027FFC00 + ldr r3, [r1, #0x0] + ldrh r5, [r5, #0x4] + ldr r2, [r1, #0x4] + ldr r2, _020CD838 ; =0x04000600 + eor r3, r3, r5, lsl #0x10 + str r3, [r6, #0x4] + ldr r3, [r1, #0x0] + ldr r3, [r1, #0x4] + ldr r1, [r4, #0x74] + ldr r4, [r0, #0x3c] + eor r1, r3, r1 + eor r1, r4, r1 + str r1, [r6, #0x8] + ldr r3, [r6, #0x8] + ldr r2, [r2, #0x0] + add r1, r0, #0x300 + eor r2, r3, r2 + str r2, [r6, #0x8] + ldr r2, [r0, #0x1e8] + ldr r3, _020CD83C ; =0x04000130 + str r2, [r6, #0xc] + ldr r4, [r0, #0x1ec] + ldr r2, _020CD840 ; =0x027FFFA8 + str r4, [r6, #0x10] + ldrh r4, [r1, #0x94] + ldr r0, [r0, #0x390] + eor r0, r0, r4, lsl #0x10 + str r0, [r6, #0x14] + ldrh r4, [r1, #0xaa] + ldrh r0, [r1, #0xac] + orr r0, r0, r4, lsl #0x10 + str r0, [r6, #0x18] + ldrh r3, [r3, #0x0] + ldrh r0, [r2, #0x0] + ldrh r1, [r1, #0x98] + orr r0, r3, r0 + orr r0, r0, r1, lsl #0x10 + str r0, [r6, #0x1c] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020CD82C: .word 0x04000006 +_020CD830: .word 0x027FFC00 +_020CD834: .word 0x021D37B4 +_020CD838: .word 0x04000600 +_020CD83C: .word 0x04000130 +_020CD840: .word 0x027FFFA8 + + arm_func_start OS_Halt +OS_Halt: ; 0x020CD844 + mov r0, #0x0 + mcr p15, 0x0, r0, c7, c0, 0x4 + bx lr + + arm_func_start OS_Terminate +OS_Terminate: ; 0x020CD850 + stmdb sp!, {lr} + sub sp, sp, #0x4 +_020CD858: + bl OS_DisableInterrupts + bl OS_Halt + b _020CD858 + + arm_func_start MI_SetWramBank +MI_SetWramBank: + ldr r1, _020CD870 ; =0x04000247 + strb r0, [r1, #0x0] + bx lr + .balign 4 +_020CD870: .word 0x04000247 + + arm_func_start MIi_CheckDma0SourceAddress +MIi_CheckDma0SourceAddress: + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + cmp r3, #0x0 + and r0, r1, #0xff000000 + beq _020CD8A4 + cmp r3, #0x800000 + subeq r1, r1, r2 + b _020CD8A8 +_020CD8A4: + add r1, r1, r2 +_020CD8A8: + cmp r0, #0x4000000 + beq _020CD8D4 + cmp r0, #0x8000000 + bhs _020CD8D4 + and r0, r1, #0xff000000 + cmp r0, #0x4000000 + beq _020CD8D4 + cmp r0, #0x8000000 + addcc sp, sp, #0x4 + ldmccia sp!, {lr} + bxcc lr +_020CD8D4: + bl OS_Terminate + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start MIi_CheckAnotherAutoDMA +MIi_CheckAnotherAutoDMA: ; 0x020CD8E4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r4, _020CD994 ; =0x040000B8 + mov r7, r0 + mov r6, r1 + mov r5, #0x0 +_020CD8FC: + cmp r5, r7 + beq _020CD978 + ldr r1, [r4, #0x0] + ands r0, r1, #0x80000000 + beq _020CD978 + and r0, r1, #0x38000000 + cmp r0, r6 + beq _020CD978 + cmp r0, #0x8000000 + bne _020CD92C + cmp r6, #0x10000000 + beq _020CD978 +_020CD92C: + cmp r0, #0x10000000 + bne _020CD93C + cmp r6, #0x8000000 + beq _020CD978 +_020CD93C: + cmp r0, #0x18000000 + beq _020CD974 + cmp r0, #0x20000000 + beq _020CD974 + cmp r0, #0x28000000 + beq _020CD974 + cmp r0, #0x30000000 + beq _020CD974 + cmp r0, #0x38000000 + beq _020CD974 + cmp r0, #0x8000000 + beq _020CD974 + cmp r0, #0x10000000 + bne _020CD978 +_020CD974: + bl OS_Terminate +_020CD978: + add r5, r5, #0x1 + cmp r5, #0x3 + add r4, r4, #0xc + blt _020CD8FC + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020CD994: .word 0x040000B8 + + arm_func_start MI_StopDma +MI_StopDma: ; 0x020CD998 + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + mov r1, #0x6 + mul r1, r4, r1 + add r1, r1, #0x5 + mov r1, r1, lsl #0x1 + add r1, r1, #0x4000000 + ldrh r2, [r1, #0xb0] + cmp r4, #0x0 + bic r2, r2, #0x3a00 + strh r2, [r1, #0xb0] + ldrh r2, [r1, #0xb0] + bic r2, r2, #0x8000 + strh r2, [r1, #0xb0] + ldrh r2, [r1, #0xb0] + ldrh r1, [r1, #0xb0] + bne _020CDA08 + mov r1, #0xc + mul r12, r4, r1 + ldr r1, _020CDA14 ; =0x040000B0 + add r2, r12, #0x4000000 + mov r3, #0x0 + str r3, [r2, #0xb0] + add r2, r12, r1 + ldr r1, _020CDA18 ; =0x81400001 + str r3, [r2, #0x4] + str r1, [r2, #0x8] +_020CDA08: + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CDA14: .word 0x040000B0 +_020CDA18: .word 0x81400001 +MI_WaitDma: + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + mov r1, #0x3 + mul r2, r4, r1 + ldr r1, _020CDA84 ; =0x040000B0 + add r2, r2, #0x2 + add r2, r1, r2, lsl #0x2 +_020CDA3C: + ldr r1, [r2, #0x0] + ands r1, r1, #0x80000000 + bne _020CDA3C + cmp r4, #0x0 + bne _020CDA78 + mov r1, #0xc + mul r12, r4, r1 + ldr r1, _020CDA84 ; =0x040000B0 + add r2, r12, #0x4000000 + mov r3, #0x0 + str r3, [r2, #0xb0] + add r2, r12, r1 + ldr r1, _020CDA88 ; =0x81400001 + str r3, [r2, #0x4] + str r1, [r2, #0x8] +_020CDA78: + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CDA84: .word 0x040000B0 +_020CDA88: .word 0x81400001 + + arm_func_start MI_DmaCopy32Async +MI_DmaCopy32Async: ; 0x020CDA8C + stmdb sp!, {r4-r8,lr} + mov r5, r3 + mov r6, r2 + mov r2, r5 + mov r3, #0x0 + mov r8, r0 + mov r7, r1 + ldr r4, [sp, #0x18] + bl MIi_CheckDma0SourceAddress +_020CDAB0: .byte 0x00, 0x00, 0x55, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x54, 0xE3, 0xF0, 0x41, 0xBD, 0x08 .byte 0x1E, 0xFF, 0x2F, 0x01, 0x1C, 0x00, 0x9D, 0xE5, 0x34, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0xBD, 0xE8 .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0xCF, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3 @@ -1038,10 +4666,27 @@ _020CD33C: .byte 0x06, 0x20, 0xA0, 0xE1, 0x31, 0x33, 0x83, 0xE3, 0xB8, 0xAA, 0xFC, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x25, 0x31, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 .byte 0x06, 0x20, 0xA0, 0xE1, 0x21, 0x33, 0x83, 0xE3, 0xB0, 0xAA, 0xFC, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x03, 0x40, 0xB0, 0xE1, 0x00, 0x70, 0xA0, 0xE1 - .byte 0x01, 0x60, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1, 0x18, 0x80, 0x9D, 0xE5, 0x06, 0x00, 0x00, 0x1A - .byte 0x00, 0x00, 0x58, 0xE3, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x1C, 0x00, 0x9D, 0xE5 - .byte 0x38, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xAA, 0xFF, 0xFF, 0xEB + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start MI_DmaFill32Async +MI_DmaFill32Async: ; 0x020CDB34 + stmdb sp!, {r4-r8,lr} + movs r4, r3 + mov r7, r0 + mov r6, r1 + mov r5, r2 + ldr r8, [sp, #0x18] + bne _020CDB6C + cmp r8, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r0, [sp, #0x1c] + blx r8 + ldmia sp!, {r4-r8,lr} + bx lr +_020CDB6C: + bl MI_WaitDma +_020CDB70: .byte 0x00, 0x00, 0x58, 0xE3, 0x13, 0x00, 0x00, 0x0A, 0x1C, 0x20, 0x9D, 0xE5, 0x07, 0x00, 0xA0, 0xE1 .byte 0x08, 0x10, 0xA0, 0xE1, 0xE2, 0xF0, 0xFF, 0xEB, 0xE0, 0xFD, 0xFF, 0xEB, 0x24, 0x31, 0xA0, 0xE1 .byte 0x70, 0x10, 0x9F, 0xE5, 0x07, 0x21, 0xA0, 0xE1, 0x01, 0x23, 0x82, 0xE2, 0xE0, 0x50, 0x82, 0xE5 @@ -1051,314 +4696,1408 @@ _020CD33C: .byte 0x07, 0x21, 0xA0, 0xE1, 0x24, 0x31, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0xC3, 0x82, 0xE2 .byte 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0x07, 0x11, 0x81, 0xE0, 0x85, 0x34, 0x83, 0xE3 .byte 0xE0, 0x50, 0x8C, 0xE5, 0x52, 0xAA, 0xFC, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xC8, 0xFD, 0xFF, 0xEB - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xE0, 0x00, 0x00, 0x04, 0xF0, 0x41, 0x2D, 0xE9 - .byte 0x03, 0x50, 0xB0, 0xE1, 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1 - .byte 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x0F, 0xFF, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x98, 0x00, 0x01, 0xE0, 0x3C, 0x00, 0x9F, 0xE5 - .byte 0x02, 0x10, 0x81, 0xE2, 0x01, 0x41, 0x80, 0xE0, 0x00, 0x00, 0x94, 0xE5, 0x02, 0x01, 0x10, 0xE2 - .byte 0xFC, 0xFF, 0xFF, 0x1A, 0xA5, 0x30, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 - .byte 0x06, 0x20, 0xA0, 0xE1, 0x02, 0x31, 0x83, 0xE3, 0x43, 0xAA, 0xFC, 0xEB, 0x00, 0x00, 0x94, 0xE5 + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xE0, 0x00, 0x00, 0x04 + + arm_func_start MI_DmaCopy16 +MI_DmaCopy16: ; 0x020CDC0C + stmdb sp!, {r4-r8,lr} + movs r5, r3 + mov r8, r0 + mov r7, r1 + mov r6, r2 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r2, r5 + mov r3, #0x0 + bl MIi_CheckDma0SourceAddress + mov r0, #0x3 + mul r1, r8, r0 + ldr r0, _020CDC80 ; =0x040000B0 + add r1, r1, #0x2 + add r4, r0, r1, lsl #0x2 +_020CDC48: + ldr r0, [r4, #0x0] + ands r0, r0, #0x80000000 + bne _020CDC48 + mov r3, r5, lsr #0x1 + mov r0, r8 + mov r1, r7 + mov r2, r6 + orr r3, r3, #0x80000000 + bl FUN_01FF857C +_020CDC6C: + .byte 0x00, 0x00, 0x94, 0xE5 .byte 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB0, 0x00, 0x00, 0x04, 0xF0, 0x41, 0x2D, 0xE9, 0x03, 0x50, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1 - .byte 0x05, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1 - .byte 0xF3, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 +_020CDC80: .word 0x040000B0 + + arm_func_start MI_DmaCopy32 +MI_DmaCopy32: ; 0x020CDC84 + stmdb sp!, {r4-r8,lr} + mov r5, r3 + mov r6, r2 + mov r2, r5 + mov r3, #0x0 + mov r8, r0 + mov r7, r1 + bl MIi_CheckDma0SourceAddress +_020CDCA4: + .byte 0x00, 0x00, 0x55, 0xE3, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 .byte 0x03, 0x00, 0xA0, 0xE3, 0x98, 0x00, 0x01, 0xE0, 0x3C, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0x81, 0xE2 .byte 0x01, 0x41, 0x80, 0xE0, 0x00, 0x00, 0x94, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A .byte 0x25, 0x31, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1 .byte 0x21, 0x33, 0x83, 0xE3, 0x24, 0xAA, 0xFC, 0xEB, 0x00, 0x00, 0x94, 0xE5, 0x02, 0x01, 0x10, 0xE2 .byte 0xFC, 0xFF, 0xFF, 0x1A, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x00, 0x00, 0x04 - .byte 0xF0, 0x41, 0x2D, 0xE9, 0x03, 0x40, 0xB0, 0xE1, 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1 - .byte 0x02, 0x60, 0xA0, 0xE1, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x03, 0x00, 0xA0, 0xE3 - .byte 0x98, 0x00, 0x01, 0xE0, 0x5C, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0x81, 0xE2, 0x01, 0x51, 0x80, 0xE0 - .byte 0x00, 0x00, 0x95, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0x73, 0xFD, 0xFF, 0xEB - .byte 0x44, 0x10, 0x9F, 0xE5, 0x08, 0x21, 0xA0, 0xE1, 0x24, 0x31, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x01, 0xC3, 0x82, 0xE2, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x08, 0x11, 0x81, 0xE0 - .byte 0x85, 0x34, 0x83, 0xE3, 0xE0, 0x60, 0x8C, 0xE5, 0xDD, 0xA9, 0xFC, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x6B, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x95, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x00, 0x00, 0x04, 0xE0, 0x00, 0x00, 0x04 - .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x60, 0xA0, 0xE1, 0x00, 0x70, 0xA0, 0xE1 - .byte 0x03, 0x40, 0xA0, 0xE1, 0x01, 0x12, 0xA0, 0xE3, 0x02, 0x50, 0xA0, 0xE1, 0xCC, 0xFE, 0xFF, 0xEB - .byte 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 - .byte 0xAB, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x40, 0xBD, 0x08 + + arm_func_start MI_DmaFill32 +MI_DmaFill32: ; 0x020CDD00 + stmdb sp!, {r4-r8,lr} + movs r4, r3 + mov r8, r0 + mov r7, r1 + mov r6, r2 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r0, #0x3 + mul r1, r8, r0 + ldr r0, _020CDD88 ; =0x040000B0 + add r1, r1, #0x2 + add r5, r0, r1, lsl #0x2 +_020CDD30: + ldr r0, [r5, #0x0] + ands r0, r0, #0x80000000 + bne _020CDD30 + bl OS_DisableInterrupts + ldr r1, _020CDD8C ; =0x040000E0 + mov r2, r8, lsl #0x2 + mov r3, r4, lsr #0x2 + mov r4, r0 + add r12, r2, #0x4000000 + mov r0, r8 + mov r2, r7 + add r1, r1, r8, lsl #0x2 + orr r3, r3, #0x85000000 + str r6, [r12, #0xe0] + bl FUN_01FF84E4 + mov r0, r4 + bl OS_RestoreInterrupts +_020CDD74: + .byte 0x00, 0x00, 0x95, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A + .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CDD88: .word 0x040000B0 +_020CDD8C: .word 0x040000E0 + + arm_func_start MI_HBlankDmaCopy16 +MI_HBlankDmaCopy16: ; 0x020CDD90 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + mov r7, r0 + mov r4, r3 + mov r1, #0x10000000 + mov r5, r2 + bl MIi_CheckAnotherAutoDMA + mov r0, r7 + mov r1, r6 + mov r2, r4 + mov r3, #0x0 + bl MIi_CheckDma0SourceAddress +_020CDDC4: + .byte 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x40, 0xBD, 0x08 .byte 0x1E, 0xFF, 0x2F, 0x01, 0x07, 0x00, 0xA0, 0xE1, 0x0F, 0xFF, 0xFF, 0xEB, 0x1C, 0x30, 0x9F, 0xE5 .byte 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0xA4, 0x30, 0x83, 0xE1 .byte 0xFE, 0xA9, 0xFC, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x60, 0x92, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x00, 0x70, 0xA0, 0xE1, 0x03, 0x40, 0xA0, 0xE1, 0x01, 0x12, 0xA0, 0xE3, 0x02, 0x50, 0xA0, 0xE1 - .byte 0xAF, 0xFE, 0xFF, 0xEB, 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x8E, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02 + .byte 0x00, 0x00, 0x60, 0x92 + + arm_func_start MI_HBlankDmaCopy32 +MI_HBlankDmaCopy32: ; 0x020CDE04 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + mov r7, r0 + mov r4, r3 + mov r1, #0x10000000 + mov r5, r2 + bl MIi_CheckAnotherAutoDMA + mov r0, r7 + mov r1, r6 + mov r2, r4 + mov r3, #0x0 + bl MIi_CheckDma0SourceAddress +_020CDE38: + .byte 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02 .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x07, 0x00, 0xA0, 0xE1, 0xF2, 0xFE, 0xFF, 0xEB .byte 0x1C, 0x30, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1 .byte 0x24, 0x31, 0x83, 0xE1, 0xE1, 0xA9, 0xFC, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x60, 0x96, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x10, 0x90, 0xE5, 0x00, 0x20, 0x80, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x14, 0x00, 0x90, 0xE5, 0x00, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x31, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFC, 0x37, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x02, 0x40, 0xB0, 0xE1 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x06, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x53, 0xE3 - .byte 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x10, 0x00, 0x9D, 0xE5, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0x92, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x10, 0xC0, 0x9D, 0xE5, 0x01, 0xE0, 0xA0, 0xE3 - .byte 0x06, 0x00, 0xA0, 0xE1, 0x0E, 0x13, 0xA0, 0xE3, 0x00, 0xE0, 0x82, 0xE5, 0x04, 0x60, 0x82, 0xE5 - .byte 0x10, 0x30, 0x82, 0xE5, 0x14, 0xC0, 0x82, 0xE5, 0x71, 0xFE, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x05, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x50, 0xFE, 0xFF, 0xEB - .byte 0x06, 0x00, 0xA0, 0xE1, 0xB8, 0xFE, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x2C, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0xF2, 0xEF, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x1C, 0x20, 0x9F, 0xE5, 0x0F, 0x35, 0xA0, 0xE3, 0x00, 0x30, 0x63, 0xE2, 0x24, 0x31, 0x83, 0xE1 - .byte 0xA2, 0xA9, 0xFC, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFC, 0x37, 0x1D, 0x02 - .byte 0x78, 0xDE, 0x0C, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x02, 0x06, 0xA0, 0xE3, 0xA2, 0xEF, 0xFF, 0xEB, 0x54, 0x20, 0x9F, 0xE5, 0x54, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x92, 0xE5, 0x18, 0x30, 0x90, 0xE5, 0x03, 0x11, 0xC1, 0xE3, 0x03, 0x1F, 0x81, 0xE1 - .byte 0x00, 0x10, 0x82, 0xE5, 0x1C, 0x10, 0x90, 0xE5, 0x02, 0x06, 0xA0, 0xE3, 0x0E, 0xF0, 0xFF, 0xEB - .byte 0x30, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x10, 0x90, 0xE5, 0x00, 0x20, 0x80, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x14, 0x00, 0x90, 0xE5, 0x00, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x31, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x06, 0x00, 0x04, 0xFC, 0x37, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0xA8, 0x00, 0x9F, 0xE5, 0x0C, 0x40, 0x90, 0xE5, 0x00, 0x00, 0x54, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x90, 0x00, 0x9F, 0xE5 - .byte 0x76, 0x0F, 0x54, 0xE3, 0x08, 0x50, 0x90, 0xE5, 0x76, 0x4F, 0xA0, 0x23, 0x0C, 0x20, 0x90, 0xE5 - .byte 0x04, 0x10, 0x85, 0xE0, 0x04, 0x20, 0x52, 0xE0, 0x0C, 0x20, 0x80, 0xE5, 0x08, 0x10, 0x80, 0xE5 - .byte 0x10, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x90, 0xE5, 0x68, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0xB3, 0xEF, 0xFF, 0xEB, 0xEF, 0x05, 0xA0, 0xE3, 0x00, 0x30, 0x60, 0xE2, 0x50, 0x10, 0x9F, 0xE5 - .byte 0x54, 0x20, 0x9F, 0xE5, 0x04, 0x00, 0x91, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x24, 0x31, 0x83, 0xE1 - .byte 0x62, 0xA9, 0xFC, 0xEB, 0x02, 0x06, 0xA0, 0xE3, 0x5C, 0xEF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x30, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x24, 0x20, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x24, 0x31, 0x83, 0xE1, 0x57, 0xA9, 0xFC, 0xEB - .byte 0x02, 0x06, 0xA0, 0xE3, 0x51, 0xEF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFC, 0x37, 0x1D, 0x02, 0x78, 0xDF, 0x0C, 0x02, 0x00, 0x04, 0x00, 0x04 - .byte 0x00, 0x00, 0x40, 0x84, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x52, 0xE3, 0x08, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x53, 0xE3, 0x04, 0xD0, 0x8D, 0x02 - .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x10, 0x00, 0x9D, 0xE5, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xC8, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0xBC, 0x50, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x95, 0xE5, 0x07, 0x04, 0x00, 0xE2, 0x20, 0x0C, 0xA0, 0xE1, 0x02, 0x00, 0x10, 0xE2 - .byte 0xFA, 0xFF, 0xFF, 0x0A, 0xA0, 0xC0, 0x9F, 0xE5, 0x10, 0xE0, 0x9D, 0xE5, 0x10, 0x30, 0x8C, 0xE5 - .byte 0x01, 0x50, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x50, 0x8C, 0xE5 - .byte 0x04, 0x40, 0x8C, 0xE5, 0x08, 0x10, 0x8C, 0xE5, 0x0C, 0x20, 0x8C, 0xE5, 0x14, 0xE0, 0x8C, 0xE5 - .byte 0xCB, 0xFD, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x33, 0xFE, 0xFF, 0xEB, 0x6F, 0xFC, 0xFF, 0xEB - .byte 0x68, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x58, 0x10, 0x9F, 0xE5 - .byte 0x03, 0x01, 0x00, 0xE2, 0x20, 0x2F, 0xA0, 0xE1, 0x02, 0x06, 0xA0, 0xE3, 0x18, 0x20, 0x81, 0xE5 - .byte 0x7A, 0xEF, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x40, 0x20, 0x9F, 0xE5, 0x1C, 0x00, 0x81, 0xE5 - .byte 0x00, 0x00, 0x92, 0xE5, 0x38, 0x10, 0x9F, 0xE5, 0x03, 0x01, 0xC0, 0xE3, 0x01, 0x31, 0x80, 0xE3 - .byte 0x02, 0x06, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x93, 0xEF, 0xFF, 0xEB, 0x02, 0x06, 0xA0, 0xE3 - .byte 0x2D, 0xEF, 0xFF, 0xEB, 0x90, 0xFF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x5C, 0xFC, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFC, 0x37, 0x1D, 0x02 - .byte 0x00, 0x06, 0x00, 0x04, 0xEC, 0xDF, 0x0C, 0x02, 0x00, 0x30, 0xA0, 0xE3, 0x02, 0x00, 0x53, 0xE1 - .byte 0xB3, 0x00, 0x81, 0xB1, 0x02, 0x30, 0x83, 0xB2, 0xFB, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0xC0, 0xA0, 0xE3, 0x02, 0x00, 0x5C, 0xE1, 0xBC, 0x30, 0x90, 0xB1, 0xBC, 0x30, 0x81, 0xB1 - .byte 0x02, 0xC0, 0x8C, 0xB2, 0xFA, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0x02, 0xC0, 0x81, 0xE0 - .byte 0x0C, 0x00, 0x51, 0xE1, 0x01, 0x00, 0xA1, 0xB8, 0xFC, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x02, 0xC0, 0x81, 0xE0, 0x0C, 0x00, 0x51, 0xE1, 0x04, 0x00, 0xB0, 0xB8, 0x04, 0x00, 0xA1, 0xB8 - .byte 0xFB, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0x02, 0xC0, 0x80, 0xE0, 0x0C, 0x00, 0x50, 0xE1 - .byte 0x04, 0x00, 0xB0, 0xB8, 0x00, 0x20, 0x81, 0xB5, 0xFB, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xF0, 0x03, 0x2D, 0xE9, 0x02, 0x90, 0x81, 0xE0, 0xA2, 0xC2, 0xA0, 0xE1, 0x8C, 0xC2, 0x81, 0xE0 - .byte 0x00, 0x20, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1 - .byte 0x02, 0x60, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1, 0x02, 0x80, 0xA0, 0xE1, 0x0C, 0x00, 0x51, 0xE1 - .byte 0xFD, 0x01, 0xA1, 0xB8, 0xFC, 0xFF, 0xFF, 0xBA, 0x09, 0x00, 0x51, 0xE1, 0x01, 0x00, 0xA1, 0xB8 - .byte 0xFC, 0xFF, 0xFF, 0xBA, 0xF0, 0x03, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x07, 0x2D, 0xE9 - .byte 0x02, 0xA0, 0x81, 0xE0, 0xA2, 0xC2, 0xA0, 0xE1, 0x8C, 0xC2, 0x81, 0xE0, 0x0C, 0x00, 0x51, 0xE1 - .byte 0xFC, 0x03, 0xB0, 0xB8, 0xFC, 0x03, 0xA1, 0xB8, 0xFB, 0xFF, 0xFF, 0xBA, 0x0A, 0x00, 0x51, 0xE1 - .byte 0x04, 0x00, 0xB0, 0xB8, 0x04, 0x00, 0xA1, 0xB8, 0xFB, 0xFF, 0xFF, 0xBA, 0xF0, 0x07, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x60, 0x96 + + arm_func_start MIi_DMAFastCallback +MIi_DMAFastCallback: ; 0x020CDE78 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020CDEB4 ; =0x021D37FC + mov r2, #0x0 + ldr r1, [r0, #0x10] + str r2, [r0, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldr r0, [r0, #0x14] + ldmeqia sp!, {lr} + bxeq lr + blx r1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CDEB4: .word 0x021D37FC + + arm_func_start MI_SendGXCommandAsyncFast +MI_SendGXCommandAsyncFast: ; 0x020CDEB8 + stmdb sp!, {r4-r6,lr} + movs r4, r2 + mov r6, r0 + mov r5, r1 + bne _020CDEE8 + cmp r3, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, [sp, #0x10] + blx r3 + ldmia sp!, {r4-r6,lr} + bx lr +_020CDEE8: + ldr r2, _020CDF6C ; =0x021D37FC + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _020CDEE8 + ldr r12, [sp, #0x10] + mov lr, #0x1 + mov r0, r6 + mov r1, #0x38000000 + str lr, [r2, #0x0] + str r6, [r2, #0x4] + str r3, [r2, #0x10] + str r12, [r2, #0x14] + bl MIi_CheckAnotherAutoDMA + mov r0, r6 + mov r1, r5 + mov r2, r4 + mov r3, #0x0 + bl MIi_CheckDma0SourceAddress + mov r0, r6 + bl MI_WaitDma + mov r0, r6 + ldr r1, _020CDF70 ; =MIi_DMAFastCallback + mov r2, #0x0 + bl OSi_EnterDmaCallback + mov r0, r6 + mov r1, r5 + ldr r2, _020CDF74 ; =0x04000400 + mov r3, #0x3c00000 + rsb r3, r3, #0x0 + orr r3, r3, r4, lsr #0x2 + bl FUN_01FF85F0 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CDF6C: .word 0x021D37FC +_020CDF70: .word MIi_DMAFastCallback +_020CDF74: .word 0x04000400 + + arm_func_start MIi_DMACallback +MIi_DMACallback: ; 0x020CDF78 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, #0x200000 + bl OS_DisableIrqMask + ldr r2, _020CDFE4 ; =0x04000600 + ldr r0, _020CDFE8 ; =0x021D37FC + ldr r1, [r2, #0x0] + ldr r3, [r0, #0x18] + bic r1, r1, #0xc0000000 + orr r1, r1, r3, lsl #0x1e + str r1, [r2, #0x0] + ldr r1, [r0, #0x1c] + mov r0, #0x200000 + bl OS_SetIrqFunction + ldr r0, _020CDFE8 ; =0x021D37FC + mov r2, #0x0 + ldr r1, [r0, #0x10] + str r2, [r0, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldr r0, [r0, #0x14] + ldmeqia sp!, {lr} + bxeq lr + blx r1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CDFE4: .word 0x04000600 +_020CDFE8: .word 0x021D37FC + + arm_func_start MIi_FIFOCallback +MIi_FIFOCallback: ; 0x020CDFEC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020CE0A4 ; =0x021D37FC + ldr r4, [r0, #0xc] + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r0, _020CE0A4 ; =0x021D37FC + cmp r4, #0x1d8 + ldr r5, [r0, #0x8] + movcs r4, #0x1d8 + ldr r2, [r0, #0xc] + add r1, r5, r4 + subs r2, r2, r4 + str r2, [r0, #0xc] + str r1, [r0, #0x8] + bne _020CE078 + ldr r0, [r0, #0x4] + ldr r1, _020CE0A8 ; =MIi_DMACallback + mov r2, #0x0 + bl OSi_EnterDmaCallback + mov r0, #0x3bc00000 + rsb r3, r0, #0x0 + ldr r1, _020CE0A4 ; =0x021D37FC + ldr r2, _020CE0AC ; =0x04000400 + ldr r0, [r1, #0x4] + mov r1, r5 + orr r3, r3, r4, lsr #0x2 + bl FUN_01FF85F0 + mov r0, #0x200000 + bl OS_ResetRequestIrqMask + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020CE078: + ldr r3, _020CE0B0 ; =0x84400000 + ldr r0, [r0, #0x4] + ldr r2, _020CE0AC ; =0x04000400 + mov r1, r5 + orr r3, r3, r4, lsr #0x2 + bl FUN_01FF85F0 + mov r0, #0x200000 + bl OS_ResetRequestIrqMask + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CE0A4: .word 0x021D37FC +_020CE0A8: .word MIi_DMACallback +_020CE0AC: .word 0x04000400 +_020CE0B0: .word 0x84400000 + + arm_func_start MI_SendGXCommandAsync +MI_SendGXCommandAsync: ; 0x020CE0B4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + cmp r2, #0x0 + bne _020CE0EC + cmp r3, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r0, [sp, #0x10] + blx r3 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020CE0EC: + ldr r0, _020CE1BC ; =0x021D37FC + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020CE0EC + ldr r5, _020CE1C0 ; =0x04000600 +_020CE100: + ldr r0, [r5, #0x0] + and r0, r0, #0x7000000 + mov r0, r0, lsr #0x18 + ands r0, r0, #0x2 + beq _020CE100 + ldr ip, _020CE1BC ; =0x021D37FC + ldr lr, [sp, #0x10] + str r3, [r12, #0x10] + mov r5, #0x1 + mov r0, r4 + mov r3, #0x0 + str r5, [r12, #0x0] + str r4, [r12, #0x4] + str r1, [r12, #0x8] + str r2, [r12, #0xc] + str lr, [r12, #0x14] + bl MIi_CheckDma0SourceAddress + mov r0, r4 + bl MI_WaitDma + bl OS_DisableInterrupts + ldr r1, _020CE1C0 ; =0x04000600 + mov r4, r0 + ldr r0, [r1, #0x0] + ldr r1, _020CE1BC ; =0x021D37FC + and r0, r0, #0xc0000000 + mov r2, r0, lsr #0x1e + mov r0, #0x200000 + str r2, [r1, #0x18] + bl OS_GetIrqFunction + ldr r1, _020CE1BC ; =0x021D37FC + ldr r2, _020CE1C0 ; =0x04000600 + str r0, [r1, #0x1c] + ldr r0, [r2, #0x0] + ldr r1, _020CE1C4 ; =MIi_FIFOCallback + bic r0, r0, #0xc0000000 + orr r3, r0, #0x40000000 + mov r0, #0x200000 + str r3, [r2, #0x0] + bl OS_SetIrqFunction + mov r0, #0x200000 + bl OS_EnableIrqMask + bl MIi_FIFOCallback + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CE1BC: .word 0x021D37FC +_020CE1C0: .word 0x04000600 +_020CE1C4: .word MIi_FIFOCallback + + arm_func_start MIi_CpuClear16 +MIi_CpuClear16: ; 0x020CE1C8 + mov r3, #0x0 +_020CE1CC: + cmp r3, r2 + strlth r0, [r1, r3] + addlt r3, r3, #0x2 + blt _020CE1CC + bx lr + + arm_func_start MIi_CpuCopy16 +MIi_CpuCopy16: ; 0x020CE1E0 + mov r12, #0x0 +_020CE1E4: + cmp r12, r2 + ldrlth r3, [r0, r12] + strlth r3, [r1, r12] + addlt r12, r12, #0x2 + blt _020CE1E4 + bx lr + + arm_func_start MIi_CpuClear32 +MIi_CpuClear32: ; 0x020CE1FC + add r12, r1, r2 +_020CE200: + cmp r1, r12 + stmltia r1!, {r0} + blt _020CE200 + bx lr + + arm_func_start MIi_CpuCopy32 +MIi_CpuCopy32: ; 0x020CE210 + add r12, r1, r2 +_020CE214: + cmp r1, r12 + ldmltia r0!, {r2} + stmltia r1!, {r2} + blt _020CE214 + bx lr + + arm_func_start MIi_CpuSend32 +MIi_CpuSend32: ; 0x020CE228 + add r12, r0, r2 +_020CE22C: + cmp r0, r12 + ldmltia r0!, {r2} + strlt r2, [r1, #0x0] + blt _020CE22C + bx lr + + arm_func_start MIi_CpuClearFast +MIi_CpuClearFast: ; 0x020CE240 + stmdb sp!, {r4-r9} + add r9, r1, r2 + mov r12, r2, lsr #0x5 + add r12, r1, r12, lsl #0x5 + mov r2, r0 + mov r3, r2 + mov r4, r2 + mov r5, r2 + mov r6, r2 + mov r7, r2 + mov r8, r2 +_020CE26C: + cmp r1, r12 + stmltia r1!, {r0,r2-r8} + blt _020CE26C +_020CE278: + cmp r1, r9 + stmltia r1!, {r0} + blt _020CE278 + ldmia sp!, {r4-r9} + bx lr + + arm_func_start MIi_CpuCopyFast +MIi_CpuCopyFast: ; 0x020CE28C + stmdb sp!, {r4-r10} + add r10, r1, r2 + mov r12, r2, lsr #0x5 + add r12, r1, r12, lsl #0x5 +_020CE29C: + cmp r1, r12 + ldmltia r0!, {r2-r9} + stmltia r1!, {r2-r9} + blt _020CE29C +_020CE2AC: + cmp r1, r10 + ldmltia r0!, {r2} + stmltia r1!, {r2} + blt _020CE2AC + ldmia sp!, {r4-r10} + bx lr +_020CE2C4: + .byte 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8 .byte 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x00, 0xB0, 0xE8, 0x0C, 0x00, 0xA1, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8 - .byte 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x10, 0xB0, 0xE8 - .byte 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8 - .byte 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8 - .byte 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8 - .byte 0x0D, 0x10, 0x90, 0xE8, 0x0D, 0x10, 0xA1, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x52, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x00, 0x10, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0xB1, 0xC0, 0x50, 0xE1 - .byte 0xFF, 0xC0, 0x0C, 0xE2, 0x01, 0x34, 0x8C, 0xE1, 0xB1, 0x30, 0x40, 0xE1, 0x01, 0x00, 0x80, 0xE2 - .byte 0x01, 0x20, 0x52, 0xE2, 0x1E, 0xFF, 0x2F, 0x01, 0x02, 0x00, 0x52, 0xE3, 0x0F, 0x00, 0x00, 0x3A - .byte 0x01, 0x14, 0x81, 0xE1, 0x02, 0x00, 0x10, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0xB2, 0x10, 0xC0, 0xE0 - .byte 0x02, 0x20, 0x52, 0xE2, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x18, 0x81, 0xE1, 0x03, 0x30, 0xD2, 0xE3 - .byte 0x04, 0x00, 0x00, 0x0A, 0x03, 0x20, 0x42, 0xE0, 0x00, 0xC0, 0x83, 0xE0, 0x04, 0x10, 0x80, 0xE4 - .byte 0x0C, 0x00, 0x50, 0xE1, 0xFC, 0xFF, 0xFF, 0x3A, 0x02, 0x00, 0x12, 0xE3, 0xB2, 0x10, 0xC0, 0x10 - .byte 0x01, 0x00, 0x12, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0xB0, 0x30, 0xD0, 0xE1, 0xFF, 0x3C, 0x03, 0xE2 - .byte 0xFF, 0x10, 0x01, 0xE2, 0x03, 0x10, 0x81, 0xE1, 0xB0, 0x10, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x52, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x00, 0x11, 0xE3, 0x0B, 0x00, 0x00, 0x0A - .byte 0xB1, 0xC0, 0x51, 0xE1, 0xFF, 0xC0, 0x0C, 0xE2, 0x01, 0x00, 0x10, 0xE3, 0xB1, 0x30, 0x50, 0x11 - .byte 0x23, 0x34, 0xA0, 0x11, 0xB0, 0x30, 0xD0, 0x01, 0x03, 0x34, 0x8C, 0xE1, 0xB1, 0x30, 0x41, 0xE1 - .byte 0x01, 0x00, 0x80, 0xE2, 0x01, 0x10, 0x81, 0xE2, 0x01, 0x20, 0x52, 0xE2, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x00, 0xC0, 0x21, 0xE0, 0x01, 0x00, 0x1C, 0xE3, 0x11, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xC0, 0xE3 - .byte 0xB2, 0xC0, 0xD0, 0xE0, 0x2C, 0x34, 0xA0, 0xE1, 0x02, 0x20, 0x52, 0xE2, 0x05, 0x00, 0x00, 0x3A - .byte 0xB2, 0xC0, 0xD0, 0xE0, 0x0C, 0xC4, 0x83, 0xE1, 0xB2, 0xC0, 0xC1, 0xE0, 0x2C, 0x38, 0xA0, 0xE1 - .byte 0x02, 0x20, 0x52, 0xE2, 0xF9, 0xFF, 0xFF, 0x2A, 0x01, 0x00, 0x12, 0xE3, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0xB0, 0xC0, 0xD1, 0xE1, 0xFF, 0xCC, 0x0C, 0xE2, 0x03, 0xC0, 0x8C, 0xE1, 0xB0, 0xC0, 0xC1, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x02, 0x00, 0x1C, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x01, 0x30, 0xD2, 0xE3 - .byte 0x19, 0x00, 0x00, 0x0A, 0x03, 0x20, 0x42, 0xE0, 0x01, 0xC0, 0x83, 0xE0, 0xB2, 0x30, 0xD0, 0xE0 - .byte 0xB2, 0x30, 0xC1, 0xE0, 0x0C, 0x00, 0x51, 0xE1, 0xFB, 0xFF, 0xFF, 0x3A, 0x12, 0x00, 0x00, 0xEA - .byte 0x02, 0x00, 0x52, 0xE3, 0x10, 0x00, 0x00, 0x3A, 0x02, 0x00, 0x11, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0xB2, 0x30, 0xD0, 0xE0, 0xB2, 0x30, 0xC1, 0xE0, 0x02, 0x20, 0x52, 0xE2, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x03, 0x30, 0xD2, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x03, 0x20, 0x42, 0xE0, 0x01, 0xC0, 0x83, 0xE0 - .byte 0x04, 0x30, 0x90, 0xE4, 0x04, 0x30, 0x81, 0xE4, 0x0C, 0x00, 0x51, 0xE1, 0xFB, 0xFF, 0xFF, 0x3A - .byte 0x02, 0x00, 0x12, 0xE3, 0xB2, 0x30, 0xD0, 0x10, 0xB2, 0x30, 0xC1, 0x10, 0x01, 0x00, 0x12, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0xB0, 0x20, 0xD1, 0xE1, 0xB0, 0x00, 0xD0, 0xE1, 0xFF, 0x2C, 0x02, 0xE2 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0xB0, 0x00, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x0E, 0xC0, 0x0E, 0xC0, 0x0E, 0xC0, 0x70, 0x47, 0x00, 0x00 - .byte 0x90, 0x00, 0x01, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x04, 0x50, 0x90, 0xE4 - .byte 0x25, 0x24, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x1D, 0x00, 0x00, 0xDA, 0x01, 0xE0, 0xD0, 0xE4 - .byte 0x08, 0x40, 0xA0, 0xE3, 0x01, 0x40, 0x54, 0xE2, 0xF9, 0xFF, 0xFF, 0xBA, 0x80, 0x00, 0x1E, 0xE3 - .byte 0x04, 0x00, 0x00, 0x1A, 0x01, 0x60, 0xD0, 0xE4, 0x96, 0x60, 0x41, 0xE1, 0x01, 0x10, 0x81, 0xE2 - .byte 0x01, 0x20, 0x42, 0xE2, 0x0E, 0x00, 0x00, 0xEA, 0x00, 0x50, 0xD0, 0xE5, 0x03, 0x60, 0xA0, 0xE3 - .byte 0x45, 0x32, 0x86, 0xE0, 0x01, 0x60, 0xD0, 0xE4, 0x0F, 0x50, 0x06, 0xE2, 0x05, 0xC4, 0xA0, 0xE1 - .byte 0x01, 0x60, 0xD0, 0xE4, 0x0C, 0x50, 0x86, 0xE1, 0x01, 0xC0, 0x85, 0xE2, 0x03, 0x20, 0x42, 0xE0 - .byte 0x0C, 0x50, 0x51, 0xE7, 0x95, 0x50, 0x41, 0xE1, 0x01, 0x10, 0x81, 0xE2, 0x01, 0x30, 0x53, 0xE2 - .byte 0xFA, 0xFF, 0xFF, 0xCA, 0x00, 0x00, 0x52, 0xE3, 0x8E, 0xE0, 0xA0, 0xC1, 0xE4, 0xFF, 0xFF, 0xCA - .byte 0xDF, 0xFF, 0xFF, 0xEA, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x50, 0xA0, 0xE1, 0x00, 0x60, 0xA0, 0xE1, 0x03, 0x70, 0xA0, 0xE1 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x02, 0x40, 0xA0, 0xE1, 0xC1, 0xFC, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x05, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x01, 0x34, 0xA0, 0xE3, 0xA0, 0xFC, 0xFF, 0xEB + + arm_func_start MI_Copy36B +MI_Copy36B: ; 0x020CE2E0 + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + bx lr + + arm_func_start MI_Copy48B +MI_Copy48B: ; 0x020CE2FC + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + bx lr + + arm_func_start MI_Copy64B +MI_Copy64B: ; 0x020CE320 + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0, {r0,r2-r3,r12} + stmia r1!, {r0,r2-r3,r12} + bx lr + + arm_func_start MI_CpuFill8 +MI_CpuFill8: ; 0x020CE34C + cmp r2, #0x0 + bxeq lr + tst r0, #0x1 + beq _020CE378 + ldrh r12, [r0, #-0x1] + and r12, r12, #0xff + orr r3, r12, r1, lsl #0x8 + strh r3, [r0, #-0x1] + add r0, r0, #0x1 + subs r2, r2, #0x1 + bxeq lr +_020CE378: + cmp r2, #0x2 + blo _020CE3C0 + orr r1, r1, r1, lsl #0x8 + tst r0, #0x2 + beq _020CE398 + strh r1, [r0], #0x2 + subs r2, r2, #0x2 + bxeq lr +_020CE398: + orr r1, r1, r1, lsl #0x10 + bics r3, r2, #0x3 + beq _020CE3B8 + sub r2, r2, r3 + add r12, r3, r0 +_020CE3AC: + str r1, [r0], #0x4 + cmp r0, r12 + blo _020CE3AC +_020CE3B8: + tst r2, #0x2 + strneh r1, [r0], #0x2 +_020CE3C0: + tst r2, #0x1 + bxeq lr + ldrh r3, [r0, #0x0] + and r3, r3, #0xff00 + and r1, r1, #0xff + orr r1, r1, r3 + strh r1, [r0, #0x0] + bx lr + + arm_func_start MI_CpuCopy8 +MI_CpuCopy8: + cmp r2, #0x0 + bxeq lr + tst r1, #0x1 + beq _020CE420 + ldrh r12, [r1, #-0x1] + and r12, r12, #0xff + tst r0, #0x1 + ldrneh r3, [r0, #-0x1] + movne r3, r3, lsr #0x8 + ldreqh r3, [r0, #0x0] + orr r3, r12, r3, lsl #0x8 + strh r3, [r1, #-0x1] + add r0, r0, #0x1 + add r1, r1, #0x1 + subs r2, r2, #0x1 + bxeq lr +_020CE420: + eor r12, r1, r0 + tst r12, #0x1 + beq _020CE474 + bic r0, r0, #0x1 + ldrh r12, [r0], #0x2 + mov r3, r12, lsr #0x8 + subs r2, r2, #0x2 + blo _020CE458 +_020CE440: + ldrh r12, [r0], #0x2 + orr r12, r3, r12, lsl #0x8 + strh r12, [r1], #0x2 + mov r3, r12, lsr #0x10 + subs r2, r2, #0x2 + bhs _020CE440 +_020CE458: + tst r2, #0x1 + bxeq lr + ldrh r12, [r1, #0x0] + and r12, r12, #0xff00 + orr r12, r12, r3 + strh r12, [r1, #0x0] + bx lr +_020CE474: + tst r12, #0x2 + beq _020CE4A0 + bics r3, r2, #0x1 + beq _020CE4EC + sub r2, r2, r3 + add r12, r3, r1 +_020CE48C: + ldrh r3, [r0], #0x2 + strh r3, [r1], #0x2 + cmp r1, r12 + blo _020CE48C + b _020CE4EC +_020CE4A0: + cmp r2, #0x2 + blo _020CE4EC + tst r1, #0x2 + beq _020CE4C0 + ldrh r3, [r0], #0x2 + strh r3, [r1], #0x2 + subs r2, r2, #0x2 + bxeq lr +_020CE4C0: + bics r3, r2, #0x3 + beq _020CE4E0 + sub r2, r2, r3 + add r12, r3, r1 +_020CE4D0: + ldr r3, [r0], #0x4 + str r3, [r1], #0x4 + cmp r1, r12 + blo _020CE4D0 +_020CE4E0: + tst r2, #0x2 + ldrneh r3, [r0], #0x2 + strneh r3, [r1], #0x2 +_020CE4EC: + tst r2, #0x1 + bxeq lr + ldrh r2, [r1, #0x0] + ldrh r0, [r0, #0x0] + and r2, r2, #0xff00 + and r0, r0, #0xff + orr r0, r2, r0 + strh r0, [r1, #0x0] + bx lr + + thumb_func_start MI_Zero36B +MI_Zero36B: ; 0x020CE510 + mov r1, #0x0 + mov r2, #0x0 + mov r3, #0x0 + stmia r0!, {r1-r3} + stmia r0!, {r1-r3} + stmia r0!, {r1-r3} + bx lr + + arm_func_start MI_SwapWord +MI_SwapWord: ; 0x020CE520 + swp r0, r0, [r1] + bx lr + + arm_func_start MI_UncompressLZ8 +MI_UncompressLZ8: ; 0x020CE528 + stmdb sp!, {r4-r6,lr} + ldr r5, [r0], #0x4 + mov r2, r5, lsr #0x8 +_020CE534: + cmp r2, #0x0 + ble _020CE5B4 + ldrb lr, [r0], #0x1 + mov r4, #0x8 +_020CE544: + subs r4, r4, #0x1 + blt _020CE534 + tst lr, #0x80 + bne _020CE568 + ldrb r6, [r0], #0x1 + .word 0xE1416096 + add r1, r1, #0x1 + sub r2, r2, #0x1 + b _020CE5A4 +_020CE568: + ldrb r5, [r0, #0x0] + mov r6, #0x3 + add r3, r6, r5, asr #0x4 + ldrb r6, [r0], #0x1 + and r5, r6, #0xf + mov r12, r5, lsl #0x8 + ldrb r6, [r0], #0x1 + orr r5, r6, r12 + add r12, r5, #0x1 + sub r2, r2, r3 +_020CE590: + ldrb r5, [r1, -r12] + .word 0xE1415095 + add r1, r1, #0x1 + subs r3, r3, #0x1 + bgt _020CE590 +_020CE5A4: + cmp r2, #0x0 + movgt lr, lr, lsl #0x1 + bgt _020CE544 + b _020CE534 +_020CE5B4: + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start MIi_CardDmaCopy32 +MIi_CardDmaCopy32: ; 0x020CE5BC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r1 + mov r6, r0 + mov r7, r3 + mvn r1, #0x0 + mov r4, r2 + bl MIi_CheckAnotherAutoDMA + mov r0, r6 + mov r1, r5 + mov r2, r7 + mov r3, #0x1000000 + bl MIi_CheckDma0SourceAddress +_020CE5F0: .byte 0x00, 0x00, 0x57, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 .byte 0x03, 0x00, 0xA0, 0xE3, 0x96, 0x00, 0x01, 0xE0, 0x30, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0x81, 0xE2 .byte 0x01, 0x11, 0x80, 0xE0, 0x00, 0x00, 0x91, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A .byte 0x1C, 0x30, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 .byte 0xEE, 0xA7, 0xFC, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB0, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0xAF, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x03, 0x00, 0xA0, 0xE3, 0x82, 0xFC, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0xCD, 0xFC, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x02, 0x50, 0xA0, 0xE1, 0x03, 0x40, 0xA0, 0xE1, 0xCE, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xB0, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0xAF + + arm_func_start MI_Init +MI_Init: ; 0x020CE648 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, #0x3 + bl MI_SetWramBank +_020CE658: + .byte 0x00, 0x00, 0xA0, 0xE3, 0xCD, 0xFC, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start PushCommand_impl +PushCommand_impl: ; 0x020CE66C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r0, #0x1 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl SND_AllocCommand +_020CE68C: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x70, 0x80, 0xE5 .byte 0x08, 0x60, 0x80, 0xE5, 0x0C, 0x50, 0x80, 0xE5, 0x18, 0x10, 0x9D, 0xE5, 0x10, 0x40, 0x80, 0xE5 .byte 0x14, 0x10, 0x80, 0xE5, 0xB1, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x08, 0xC0, 0x9D, 0xE5 - .byte 0x02, 0xE0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x0C, 0x1C, 0x80, 0xE1 - .byte 0x0E, 0x30, 0xA0, 0xE1, 0x07, 0x00, 0xA0, 0xE3, 0xDF, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE3, 0xD2, 0xFF, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x02, 0x30, 0xA0, 0xE1, 0x18, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0xC7, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x18, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x8D, 0xE5, 0xBC, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0xE0, 0xA0, 0xE1 - .byte 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1 - .byte 0x0C, 0x30, 0xA0, 0xE1, 0x19, 0x00, 0xA0, 0xE3, 0xAF, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x20, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x30, 0x8D, 0xE5, 0xA4, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x1F, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5 - .byte 0x99, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x1E, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5, 0x8E, 0xFF, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x18, 0xC0, 0x9D, 0xE5, 0x03, 0x3D, 0xA0, 0xE1, 0x01, 0x4C, 0x83, 0xE1 - .byte 0x24, 0x50, 0x9D, 0xE5, 0x0C, 0x3C, 0xA0, 0xE1, 0x1C, 0x10, 0x9D, 0xE5, 0x10, 0xC0, 0x9D, 0xE5 - .byte 0x05, 0x48, 0x84, 0xE1, 0x04, 0x40, 0x8C, 0xE1, 0x20, 0xE0, 0x9D, 0xE5, 0x01, 0x3B, 0x83, 0xE1 - .byte 0x14, 0xC0, 0x9D, 0xE5, 0x0E, 0x18, 0x80, 0xE1, 0x03, 0x30, 0x8C, 0xE1, 0x0E, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x40, 0x8D, 0xE5, 0x78, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x15, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5 - .byte 0x6D, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 - .byte 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x14, 0x00, 0xA0, 0xE3 - .byte 0x00, 0xC0, 0x8D, 0xE5, 0x60, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x13, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5 - .byte 0x55, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x1B, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5, 0x4A, 0xFF, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x1A, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5, 0x3F, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2 - .byte 0x02, 0x40, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x18, 0x20, 0x9D, 0xE5, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x03, 0x10, 0xA0, 0xE1, 0xDD, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x8D, 0xE5, 0x06, 0x10, 0xA0, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start SNDi_SetTrackParam +SNDi_SetTrackParam: ; 0x020CE6C4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r12, [sp, #0x8] + mov lr, r2 + str r3, [sp, #0x0] + mov r2, r1 + orr r1, r0, r12, lsl #0x18 + mov r3, lr + mov r0, #0x7 + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020CE6F8 +FUN_020CE6F8: ; 0x020CE6F8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r12, r2 + str r3, [sp, #0x0] + mov r1, r0 + mov r2, lr + mov r3, r12 + mov r0, #0x6 + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_ResetMasterPan +SND_ResetMasterPan: ; 0x020CE72C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, #0x0 + mov r3, r2 + mov r0, #0x18 + mvn r1, #0x0 + str r2, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetMasterPan +SND_SetMasterPan: ; 0x020CE758 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, #0x0 + mov r1, r0 + mov r3, r2 + mov r0, #0x18 + str r2, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetOutputSelector +SND_SetOutputSelector: ; 0x020CE784 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r12, r2 + str r3, [sp, #0x0] + mov r1, r0 + mov r2, lr + mov r3, r12 + mov r0, #0x19 + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_InvalidateWaveData +SND_InvalidateWaveData: ; 0x020CE7B8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x20 + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_InvalidateBankData +SND_InvalidateBankData: ; 0x020CE7E4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x1f + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_InvalidateSeqData +SND_InvalidateSeqData: ; 0x020CE810 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x1e + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetupChannelPcm +SND_SetupChannelPcm: ; 0x020CE83C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r12, [sp, #0x18] + mov r3, r3, lsl #0x1a + orr r4, r3, r1, lsl #0x18 + ldr r5, [sp, #0x24] + mov r3, r12, lsl #0x18 + ldr r1, [sp, #0x1c] + ldr r12, [sp, #0x10] + orr r4, r4, r5, lsl #0x10 + orr r4, r12, r4 + ldr lr, [sp, #0x20] + orr r3, r3, r1, lsl #0x16 + ldr r12, [sp, #0x14] + orr r1, r0, lr, lsl #0x10 + orr r3, r12, r3 + mov r0, #0xe + str r4, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start SND_SetChannelPan +SND_SetChannelPan: ; 0x020CE894 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x15 + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetChannelVolume +SND_SetChannelVolume: ; 0x020CE8C0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r3, r2 + mov r12, #0x0 + mov r1, r0 + mov r2, lr + mov r0, #0x14 + str r12, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetChannelTimer +SND_SetChannelTimer: ; 0x020CE8F4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x13 + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_UnlockChannel +SND_UnlockChannel: ; 0x020CE920 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x1b + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_LockChannel +SND_LockChannel: ; 0x020CE94C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x1a + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetupAlarm +SND_SetupAlarm: ; 0x020CE978 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r4, r2 + mov r5, r1 + ldr r2, [sp, #0x18] + mov r6, r0 + mov r1, r3 + bl SNDi_SetAlarmHandler +_020CE998: + .byte 0x00, 0x00, 0x8D, 0xE5, 0x06, 0x10, 0xA0, 0xE1 .byte 0x05, 0x20, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x12, 0x00, 0xA0, 0xE3, 0x2E, 0xFF, 0xFF, 0xEB - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x80, 0x0F, 0xA0, 0xE1, 0x01, 0x0F, 0x80, 0xE1, 0x08, 0xC0, 0x9D, 0xE5 - .byte 0x02, 0x10, 0xA0, 0xE1, 0x8C, 0x0E, 0x80, 0xE1, 0x0C, 0x20, 0x9D, 0xE5, 0x00, 0xE0, 0xA0, 0xE3 - .byte 0x02, 0x0E, 0x80, 0xE1, 0x10, 0xC0, 0x9D, 0xE5, 0x03, 0x20, 0xA0, 0xE1, 0x8C, 0x3D, 0x80, 0xE1 - .byte 0x11, 0x00, 0xA0, 0xE3, 0x00, 0xE0, 0x8D, 0xE5, 0x1B, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x43, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x02, 0x70, 0xA0, 0xE1, 0x00, 0x90, 0xA0, 0xE1, 0x01, 0x80, 0xA0, 0xE1, 0x03, 0x60, 0xA0, 0xE1 - .byte 0x07, 0x40, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x14, 0xE2 - .byte 0x01, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1, 0xC0, 0x02, 0x00, 0xEB, 0x01, 0x50, 0x85, 0xE2 - .byte 0xA4, 0x40, 0xA0, 0xE1, 0x08, 0x00, 0x55, 0xE3, 0x01, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x54, 0xE3 - .byte 0xF5, 0xFF, 0xFF, 0x1A, 0x09, 0x10, 0xA0, 0xE1, 0x08, 0x20, 0xA0, 0xE1, 0x07, 0x30, 0xA0, 0xE1 - .byte 0x0D, 0x00, 0xA0, 0xE3, 0x00, 0x60, 0x8D, 0xE5, 0xFF, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0x0C, 0x00, 0xA0, 0xE3, 0xF2, 0xFE, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x00, 0xC0, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x09, 0x00, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5 - .byte 0xE5, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x02, 0x30, 0xA0, 0xE1, 0x01, 0xC0, 0xA0, 0xE3 - .byte 0x09, 0x20, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0xF1, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x02, 0x30, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE3, 0x0C, 0x20, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5 - .byte 0xE7, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x01, 0x30, 0xA0, 0xE3 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xF8, 0xE6, 0x0C, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x06, 0x10, 0xA0, 0xE3, 0x02, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xF8, 0xE6, 0x0C, 0x02 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5, 0xBA, 0xFE, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 - .byte 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0xAF, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0x02, 0x00, 0xA0, 0xE3, 0xA2, 0xFE, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0x97, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xA0, 0xBF, 0x0C, 0x02, 0x20, 0x38, 0x1D, 0x02, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x10, 0xC0, 0x0C, 0x02, 0x20, 0x38, 0x1D, 0x02 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x34, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0x20, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5, 0x0A, 0xF5, 0xFF, 0xEB - .byte 0xC8, 0x01, 0x00, 0xEB, 0x39, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0x38, 0x1D, 0x02, 0x20, 0x38, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9 - .byte 0xD0, 0xF3, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 + .byte 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start SND_SetupCapture +SND_SetupCapture: ; 0x020CE9BC + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, r0, lsl #0x1f + orr r0, r0, r1, lsl #0x1e + ldr r12, [sp, #0x8] + mov r1, r2 + orr r0, r0, r12, lsl #0x1d + ldr r2, [sp, #0xc] + mov lr, #0x0 + orr r0, r0, r2, lsl #0x1c + ldr r12, [sp, #0x10] + mov r2, r3 + orr r3, r0, r12, lsl #0x1b + mov r0, #0x11 + str lr, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_StopTimer +SND_StopTimer: ; 0x020CEA08 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r7, r2 + mov r9, r0 + mov r8, r1 + mov r6, r3 + mov r4, r7 + mov r5, #0x0 + b _020CEA44 +_020CEA2C: + ands r0, r4, #0x1 + beq _020CEA3C + mov r0, r5 + bl SNDi_IncAlarmId +_020CEA3C: + add r5, r5, #0x1 + mov r4, r4, lsr #0x1 +_020CEA44: + cmp r5, #0x8 + bge _020CEA54 + cmp r4, #0x0 + bne _020CEA2C +_020CEA54: + mov r1, r9 + mov r2, r8 + mov r3, r7 + mov r0, #0xd + str r6, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start SND_StartTimer +SND_StartTimer: ; 0x020CEA78 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r12, r2 + str r3, [sp, #0x0] + mov r1, r0 + mov r2, lr + mov r3, r12 + mov r0, #0xc + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetTrackAllocatableChannel +SND_SetTrackAllocatableChannel: ; 0x020CEAAC + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r3, r2 + mov r12, #0x0 + mov r1, r0 + mov r2, lr + mov r0, #0x9 + str r12, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetTrackPan +SND_SetTrackPan: ; 0x020CEAE0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r3, r2 + mov r12, #0x1 + mov r2, #0x9 + str r12, [sp, #0x0] + bl SNDi_SetTrackParam + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetTrackPitch +SND_SetTrackPitch: ; 0x020CEB08 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r3, r2 + mov r12, #0x2 + mov r2, #0xc + str r12, [sp, #0x0] + bl SNDi_SetTrackParam + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetPlayerChannelPriority +SND_SetPlayerChannelPriority: ; 0x020CEB30 + ldr ip, _020CEB44 ; =FUN_020CE6F8 + mov r2, r1 + mov r1, #0x4 + mov r3, #0x1 + bx r12 + .balign 4 +_020CEB44: .word FUN_020CE6F8 + + arm_func_start SND_SetPlayerVolume +SND_SetPlayerVolume: ; 0x020CEB48 + ldr ip, _020CEB5C ; =FUN_020CE6F8 + mov r2, r1 + mov r1, #0x6 + mov r3, #0x2 + bx r12 + .balign 4 +_020CEB5C: .word FUN_020CE6F8 + + arm_func_start SND_PauseSeq +SND_PauseSeq: ; 0x020CEB60 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x4 + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_StartPreparedSeq +SND_StartPreparedSeq: ; 0x020CEB8C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, #0x0 + mov r1, r0 + mov r3, r2 + mov r0, #0x3 + str r2, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_PrepareSeq +SND_PrepareSeq: ; 0x020CEBB8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r12, r2 + str r3, [sp, #0x0] + mov r1, r0 + mov r2, lr + mov r3, r12 + mov r0, #0x2 + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_StopSeq +SND_StopSeq: ; 0x020CEBEC + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, #0x0 + mov r1, r0 + mov r3, r2 + mov r0, #0x1 + str r2, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SNDi_UnlockMutex +SNDi_UnlockMutex: ; 0x020CEC18 + ldr ip, _020CEC24 ; =OS_UnlockMutex + ldr r0, _020CEC28 ; =0x021D3820 + bx r12 + .balign 4 +_020CEC24: .word OS_UnlockMutex +_020CEC28: .word 0x021D3820 + + arm_func_start SNDi_LockMutex +SNDi_LockMutex: ; 0x020CEC2C + ldr ip, _020CEC38 ; =OS_LockMutex + ldr r0, _020CEC3C ; =0x021D3820 + bx r12 + .balign 4 +_020CEC38: .word OS_LockMutex +_020CEC3C: .word 0x021D3820 + + arm_func_start SND_Init +SND_Init: ; 0x020CEC40 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CEC84 ; =0x021D381C + ldr r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r0, _020CEC88 ; =0x021D3820 + mov r2, #0x1 + str r2, [r1, #0x0] + bl OS_InitMutex + bl SND_CommandInit + bl SND_AlarmInit + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CEC84: .word 0x021D381C +_020CEC88: .word 0x021D3820 + + arm_func_start IsCommandAvailable +IsCommandAvailable: + stmdb sp!, {r4,lr} + bl OS_IsRunOnEmulator +_020CEC94: + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 .byte 0x1E, 0xFF, 0x2F, 0x01, 0x99, 0xF9, 0xFF, 0xEB, 0x20, 0x10, 0x9F, 0xE5, 0x10, 0x20, 0xA0, 0xE3 .byte 0x00, 0x20, 0x81, 0xE5, 0x00, 0x40, 0x91, 0xE5, 0x99, 0xF9, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3 .byte 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0xF2, 0xFF, 0x04, 0x10, 0x40, 0x2D, 0xE9, 0x8C, 0xF9, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x40, 0x91, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x8C, 0xF9, 0xFF, 0xEB - .byte 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x20, 0x94, 0xE5 - .byte 0x00, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x18, 0x10, 0x9F, 0x05, 0x00, 0x20, 0xA0, 0x03 - .byte 0x00, 0x20, 0x81, 0x05, 0x82, 0xF9, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x38, 0x38, 0x1D, 0x02, 0x48, 0x38, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x07, 0x50, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0xE4, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0xF2, 0xFF, 0x04 + + arm_func_start AllocCommand +AllocCommand: ; 0x020CECD4 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020CED24 ; =0x021D3838 + ldr r4, [r1, #0x0] + cmp r4, #0x0 + bne _020CECFC + bl OS_RestoreInterrupts +_020CECF0: + .byte 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CECFC: + ldr r2, [r4, #0x0] + str r2, [r1, #0x0] + cmp r2, #0x0 + ldreq r1, _020CED28 ; =0x021D3848 + moveq r2, #0x0 + streq r2, [r1, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CED24: .word 0x021D3838 +_020CED28: .word 0x021D3848 + + arm_func_start RequestCommandProc +RequestCommandProc: ; 0x020CED2C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, #0x7 + mov r4, #0x0 + mov r0, r5 + mov r1, r4 + mov r2, r4 + bl PXI_SendWordByFifo +_020CED4C: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0xF9, 0xFF, 0xFF, 0xBA, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x5C, 0x10, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE3, 0x12, 0x04, 0x00, 0xEB - .byte 0xC5, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + + arm_func_start InitPXI +InitPXI: ; 0x020CED60 + stmdb sp!, {r4-r6,lr} + ldr r1, _020CEDC8 ; =PxiFifoCallback + mov r0, #0x7 + bl PXI_SetFifoRecvCallback + bl IsCommandAvailable +_020CED74: + .byte 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 .byte 0x07, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0xA0, 0xE3, 0x01, 0x04, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 .byte 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x64, 0x60, 0xA0, 0xE3, 0x07, 0x50, 0xA0, 0xE3 .byte 0x01, 0x40, 0xA0, 0xE3, 0x06, 0x00, 0xA0, 0xE1, 0x74, 0xF9, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 .byte 0x04, 0x10, 0xA0, 0xE1, 0xF6, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF8, 0xFF, 0xFF, 0x0A - .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xCC, 0xED, 0x0C, 0x02, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x50, 0xA0, 0xE1, 0x4C, 0xF9, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x05, 0x00, 0xA0, 0xE1, 0xB1, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x4C, 0xF9, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x15, 0x00, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x03, 0x00, 0x00, 0xEB, 0x01, 0x1C, 0x64, 0xE2 - .byte 0x00, 0x00, 0x41, 0xE0, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x3A, 0xF9, 0xFF, 0xEB, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x91, 0xE5, 0x01, 0x40, 0x84, 0xE2 - .byte 0x00, 0x00, 0x51, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x35, 0xF9, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0x38, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x2A, 0xF9, 0xFF, 0xEB, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x91, 0xE5, 0x01, 0x40, 0x84, 0xE2 - .byte 0x00, 0x00, 0x51, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x25, 0xF9, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x38, 0x38, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x19, 0xF9, 0xFF, 0xEB, 0x3C, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x01, 0x00, 0x54, 0xE1, 0x04, 0x00, 0x00, 0x9A, 0x01, 0x10, 0x44, 0xE0, 0x02, 0x01, 0x51, 0xE3 - .byte 0x00, 0x40, 0xA0, 0x33, 0x01, 0x40, 0xA0, 0x23, 0x03, 0x00, 0x00, 0xEA, 0x04, 0x10, 0x41, 0xE0 - .byte 0x02, 0x01, 0x51, 0xE3, 0x01, 0x40, 0xA0, 0x33, 0x00, 0x40, 0xA0, 0x23, 0x10, 0xF9, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x3C, 0x38, 0x1D, 0x02 - .byte 0x10, 0x40, 0x2D, 0xE9, 0x05, 0xF9, 0xFF, 0xEB, 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x1C, 0x10, 0x9F, 0x05, 0x00, 0x40, 0x91, 0x05, 0x18, 0x10, 0x9F, 0x15 - .byte 0x00, 0x40, 0x91, 0x15, 0x02, 0xF9, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0x38, 0x1D, 0x02, 0x3C, 0x38, 0x1D, 0x02, 0x58, 0x38, 0x1D, 0x02 - .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xD6, 0xFF, 0xFF, 0xEB + .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CEDC8: .word PxiFifoCallback + + arm_func_start PxiFifoCallback +PxiFifoCallback: ; 0x020CEDCC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r1 + bl OS_DisableInterrupts + mov r4, r0 + mov r0, r5 + bl SNDi_CallAlarmHandler + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start SND_CountWaitingCommand +SND_CountWaitingCommand: ; 0x020CEDFC + stmdb sp!, {r4,lr} + bl SND_CountFreeCommand + mov r4, r0 + bl SND_CountReservedCommand + rsb r1, r4, #0x100 + sub r0, r1, r0 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start SND_CountReservedCommand +SND_CountReservedCommand: ; 0x020CEE1C + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020CEE58 ; =0x021D3840 + mov r4, #0x0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _020CEE48 +_020CEE38: + ldr r1, [r1, #0x0] + add r4, r4, #0x1 + cmp r1, #0x0 + bne _020CEE38 +_020CEE48: + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CEE58: .word 0x021D3840 + + arm_func_start SND_CountFreeCommand +SND_CountFreeCommand: ; 0x020CEE5C + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020CEE98 ; =0x021D3838 + mov r4, #0x0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _020CEE88 +_020CEE78: + ldr r1, [r1, #0x0] + add r4, r4, #0x1 + cmp r1, #0x0 + bne _020CEE78 +_020CEE88: + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CEE98: .word 0x021D3838 + + arm_func_start SND_IsFinishedCommandTag +SND_IsFinishedCommandTag: + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + ldr r1, _020CEEEC ; =0x021D383C + ldr r1, [r1, #0x0] + cmp r4, r1 + bls _020CEECC + sub r1, r4, r1 + cmp r1, #0x80000000 + movcc r4, #0x0 + movcs r4, #0x1 + b _020CEEDC +_020CEECC: + sub r1, r1, r4 + cmp r1, #0x80000000 + movcc r4, #0x1 + movcs r4, #0x0 +_020CEEDC: + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CEEEC: .word 0x021D383C + + arm_func_start SND_GetCurrentCommandTag +SND_GetCurrentCommandTag: ; 0x020CEEF0 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020CEF24 ; =0x021D3840 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + ldreq r1, _020CEF28 ; =0x021D383C + ldreq r4, [r1, #0x0] + ldrne r1, _020CEF2C ; =0x021D3858 + ldrne r4, [r1, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CEF24: .word 0x021D3840 +_020CEF28: .word 0x021D383C +_020CEF2C: .word 0x021D3858 + + arm_func_start SND_WaitForCommandProc +SND_WaitForCommandProc: ; 0x020CEF30 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl SND_IsFinishedCommandTag +_020CEF40: .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 .byte 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0xC1, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x05, 0x00, 0xA0, 0xE1, 0xCB, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 @@ -1367,16 +6106,53 @@ _020CD33C: .byte 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1 .byte 0xAF, 0x00, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0xBB, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 .byte 0xF9, 0xFF, 0xFF, 0x0A, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xF0, 0x43, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xCF, 0xF8, 0xFF, 0xEB - .byte 0x8C, 0x11, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x04, 0x00, 0x00, 0x1A, 0xCE, 0xF8, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x68, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x08, 0x00, 0x51, 0xE3, 0x0C, 0x00, 0x00, 0xBA, 0x01, 0x10, 0x15, 0xE2, 0x04, 0x00, 0x00, 0x1A - .byte 0xC3, 0xF8, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x43, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x8D, 0x00, 0x00, 0xEB, 0x34, 0x01, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0xAA, 0x28, 0x01, 0x9F, 0xE5 - .byte 0x06, 0x1B, 0xA0, 0xE3, 0x44, 0xF4, 0xFF, 0xEB, 0x14, 0x11, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x91, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x20, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + + arm_func_start SND_FlushCommand +SND_FlushCommand: ; 0x020CEFC0 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020CF164 ; =0x021D3840 + mov r4, r0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _020CEFF8 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r9,lr} + bx lr +_020CEFF8: + ldr r1, _020CF168 ; =0x021D3854 + ldr r1, [r1, #0x0] + cmp r1, #0x8 + blt _020CF03C + ands r1, r5, #0x1 + bne _020CF024 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r9,lr} + bx lr +_020CF024: + mov r0, #0x1 + bl SND_RecvCommandReply + ldr r0, _020CF168 ; =0x021D3854 + ldr r0, [r0, #0x0] + cmp r0, #0x8 + bge _020CF024 +_020CF03C: + ldr r0, _020CF16C ; =0x021D3B00 + mov r1, #0x1800 + bl DC_FlushRange + ldr r1, _020CF164 ; =0x021D3840 + mov r0, #0x7 + ldr r1, [r1, #0x0] + mov r2, #0x0 + bl PXI_SendWordByFifo +_020CF05C: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0x1E, 0x00, 0x00, 0xAA, 0x01, 0x00, 0x15, 0xE2, 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 .byte 0xAB, 0xF8, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x43, 0xBD, 0xE8 .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xD8, 0x10, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5 @@ -1393,14 +6169,42 @@ _020CD33C: .byte 0x2C, 0x50, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0x3C, 0x30, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 .byte 0x00, 0xE0, 0x85, 0xE5, 0x00, 0xE0, 0x83, 0xE5, 0x00, 0xC0, 0x82, 0xE5, 0x00, 0x60, 0x81, 0xE5 .byte 0x73, 0xF8, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0x38, 0x1D, 0x02, 0x54, 0x38, 0x1D, 0x02, 0x00, 0x3B, 0x1D, 0x02 + .byte 0x1E, 0xFF, 0x2F, 0xE1 +_020CF164: .word 0x021D3840 +_020CF168: .word 0x021D3854 +_020CF16C: .word 0x021D3B00 +_020CF170: .byte 0x50, 0x38, 0x1D, 0x02, 0x5C, 0x38, 0x1D, 0x02, 0x58, 0x38, 0x1D, 0x02, 0x44, 0x38, 0x1D, 0x02 - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x60, 0xF8, 0xFF, 0xEB, 0x2C, 0x20, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x24, 0x10, 0x9F, 0x05, 0x00, 0x40, 0x82, 0x05 - .byte 0x00, 0x40, 0x81, 0x05, 0x00, 0x40, 0x81, 0x15, 0x00, 0x40, 0x82, 0x15, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x84, 0xE5, 0x5A, 0xF8, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x44, 0x38, 0x1D, 0x02, 0x40, 0x38, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 - .byte 0xAD, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 + + arm_func_start SND_PushCommand +SND_PushCommand: ; 0x020CF180 + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + ldr r2, _020CF1C0 ; =0x021D3844 + ldr r1, [r2, #0x0] + cmp r1, #0x0 + ldreq r1, _020CF1C4 ; =0x021D3840 + streq r4, [r2, #0x0] + streq r4, [r1, #0x0] + strne r4, [r1, #0x0] + strne r4, [r2, #0x0] + mov r1, #0x0 + str r1, [r4, #0x0] + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CF1C0: .word 0x021D3844 +_020CF1C4: .word 0x021D3840 + + arm_func_start SND_AllocCommand +SND_AllocCommand: + stmdb sp!, {r4,lr} + mov r4, r0 + bl IsCommandAvailable +_020CF1D4: + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 .byte 0x1E, 0xFF, 0x2F, 0x01, 0xBA, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x10, 0x40, 0xBD, 0x18 .byte 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x00, 0x14, 0xE2, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 .byte 0x1E, 0xFF, 0x2F, 0x01, 0xFC, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x09, 0x00, 0x00, 0xDA @@ -1409,332 +6213,1393 @@ _020CD33C: .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x5F, 0xFF, 0xFF, 0xEB .byte 0xB9, 0xFE, 0xFF, 0xEB, 0x01, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0x00, 0x00, 0xEB .byte 0x9F, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x27, 0xF8, 0xFF, 0xEB - .byte 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x00, 0x14, 0xE2, 0x10, 0x00, 0x00, 0x0A, 0xE3, 0x00, 0x00, 0xEB - .byte 0xF8, 0x40, 0x9F, 0xE5, 0x00, 0x10, 0x94, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0x15, 0x00, 0x00, 0x1A - .byte 0x64, 0x60, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x21, 0xF8, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x36, 0xF8, 0xFF, 0xEB, 0x19, 0xF8, 0xFF, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0xD7, 0x00, 0x00, 0xEB - .byte 0x00, 0x10, 0x94, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0xF5, 0xFF, 0xFF, 0x0A, 0x09, 0x00, 0x00, 0xEA - .byte 0xD2, 0x00, 0x00, 0xEB, 0xB4, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE1 - .byte 0x04, 0x00, 0x00, 0x1A, 0x05, 0x00, 0xA0, 0xE1, 0x11, 0xF8, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x94, 0x00, 0x9F, 0xE5, 0x94, 0x20, 0x9F, 0xE5 - .byte 0x00, 0x30, 0x90, 0xE5, 0x01, 0x10, 0x83, 0xE2, 0x03, 0x41, 0x92, 0xE7, 0x00, 0x10, 0x80, 0xE5 - .byte 0x08, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0xC3, 0x00, 0x10, 0x80, 0xC5, 0x00, 0x00, 0x94, 0xE5 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x91, 0xE5 - .byte 0x00, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x58, 0x00, 0x9F, 0xE5 - .byte 0x58, 0x30, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x40, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x00, 0x40, 0x80, 0x15, 0x48, 0x00, 0x9F, 0x05, 0x00, 0xE0, 0x93, 0xE5, 0x00, 0x40, 0x80, 0x05 - .byte 0x34, 0xC0, 0x9F, 0xE5, 0x01, 0x60, 0x4E, 0xE2, 0x00, 0x00, 0x92, 0xE5, 0x00, 0x10, 0x8C, 0xE5 - .byte 0x01, 0xE0, 0x80, 0xE2, 0x05, 0x00, 0xA0, 0xE1, 0x00, 0x60, 0x83, 0xE5, 0x00, 0xE0, 0x82, 0xE5 - .byte 0xEB, 0xF7, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x3C, 0x38, 0x1D, 0x02, 0x4C, 0x38, 0x1D, 0x02, 0x5C, 0x38, 0x1D, 0x02, 0x48, 0x38, 0x1D, 0x02 - .byte 0x54, 0x38, 0x1D, 0x02, 0x38, 0x38, 0x1D, 0x02, 0xF0, 0x4F, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x6E, 0xFE, 0xFF, 0xEB, 0xCC, 0x30, 0x9F, 0xE5, 0xCC, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3 - .byte 0x00, 0x30, 0x80, 0xE5, 0x03, 0x10, 0xA0, 0xE1, 0x18, 0x00, 0xA0, 0xE3, 0x01, 0x40, 0x84, 0xE2 - .byte 0x94, 0x10, 0x22, 0xE0, 0xFF, 0x00, 0x54, 0xE3, 0x18, 0x20, 0x83, 0xE4, 0xFA, 0xFF, 0xFF, 0xBA - .byte 0xA8, 0x70, 0x9F, 0xE5, 0x00, 0xA0, 0xA0, 0xE3, 0xA4, 0x50, 0x9F, 0xE5, 0xA4, 0x40, 0x9F, 0xE5 - .byte 0xA4, 0xE0, 0x9F, 0xE5, 0xA4, 0xC0, 0x9F, 0xE5, 0xA4, 0x30, 0x9F, 0xE5, 0xA4, 0x10, 0x9F, 0xE5 - .byte 0xA4, 0x90, 0x9F, 0xE5, 0xA4, 0x60, 0x9F, 0xE5, 0xA4, 0x20, 0x9F, 0xE5, 0x01, 0x80, 0xA0, 0xE3 - .byte 0xA0, 0x00, 0x9F, 0xE5, 0xA0, 0xB0, 0x9F, 0xE5, 0x00, 0x90, 0x86, 0xE5, 0xE8, 0xA7, 0x87, 0xE5 - .byte 0x00, 0xA0, 0x85, 0xE5, 0x00, 0xA0, 0x84, 0xE5, 0x00, 0xA0, 0x8E, 0xE5, 0x00, 0xA0, 0x8C, 0xE5 - .byte 0x00, 0xA0, 0x83, 0xE5, 0x00, 0x80, 0x82, 0xE5, 0x00, 0xA0, 0x81, 0xE5, 0x00, 0x00, 0x8B, 0xE5 - .byte 0x56, 0x00, 0x00, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0x62, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start SND_RecvCommandReply +SND_RecvCommandReply: ; 0x020CF264 + stmdb sp!, {r4-r6,lr} + mov r4, r0 + bl OS_DisableInterrupts + mov r5, r0 + ands r0, r4, #0x1 + beq _020CF2C0 + bl SNDi_GetFinishedCommandTag + ldr r4, _020CF380 ; =0x021D383C + ldr r1, [r4, #0x0] + cmp r1, r0 + bne _020CF2E8 + mov r6, #0x64 +_020CF294: + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r6 + bl FUN_020CD380 + bl OS_DisableInterrupts + mov r5, r0 + bl SNDi_GetFinishedCommandTag + ldr r1, [r4, #0x0] + cmp r1, r0 + beq _020CF294 + b _020CF2E8 +_020CF2C0: + bl SNDi_GetFinishedCommandTag + ldr r1, _020CF380 ; =0x021D383C + ldr r1, [r1, #0x0] + cmp r1, r0 + bne _020CF2E8 + mov r0, r5 + bl OS_RestoreInterrupts +_020CF2DC: + .byte 0x00, 0x00, 0xA0, 0xE3 + .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CF2E8: + ldr r0, _020CF384 ; =0x021D384C + ldr r2, _020CF388 ; =0x021D385C + ldr r3, [r0, #0x0] + add r1, r3, #0x1 + ldr r4, [r2, r3, lsl #0x2] + str r1, [r0, #0x0] + cmp r1, #0x8 + movgt r1, #0x0 + strgt r1, [r0, #0x0] + ldr r0, [r4, #0x0] + mov r1, r4 + cmp r0, #0x0 + beq _020CF32C +_020CF31C: + ldr r1, [r1, #0x0] + ldr r0, [r1, #0x0] + cmp r0, #0x0 + bne _020CF31C +_020CF32C: + ldr r0, _020CF38C ; =0x021D3848 + ldr r3, _020CF390 ; =0x021D3854 + ldr r0, [r0, #0x0] + ldr r2, _020CF380 ; =0x021D383C + cmp r0, #0x0 + strne r4, [r0, #0x0] + ldreq r0, _020CF394 ; =0x021D3838 + ldr lr, [r3, #0x0] + streq r4, [r0, #0x0] + ldr ip, _020CF38C ; =0x021D3848 + sub r6, lr, #0x1 + ldr r0, [r2, #0x0] + str r1, [r12, #0x0] + add lr, r0, #0x1 + mov r0, r5 + str r6, [r3, #0x0] + str lr, [r2, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CF380: .word 0x021D383C +_020CF384: .word 0x021D384C +_020CF388: .word 0x021D385C +_020CF38C: .word 0x021D3848 +_020CF390: .word 0x021D3854 +_020CF394: .word 0x021D3838 + + arm_func_start SND_CommandInit +SND_CommandInit: ; 0x020CF398 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + bl InitPXI + ldr r3, _020CF478 ; =0x021D3B00 + ldr r0, _020CF47C ; =0x021D3838 + mov r4, #0x0 + str r3, [r0, #0x0] + mov r1, r3 + mov r0, #0x18 +_020CF3BC: + add r4, r4, #0x1 + mla r2, r4, r0, r1 + cmp r4, #0xff + str r2, [r3], #0x18 + blt _020CF3BC + ldr r7, _020CF480 ; =0x021D4B00 + mov r10, #0x0 + ldr r5, _020CF484 ; =0x021D3840 + ldr r4, _020CF488 ; =0x021D3844 + ldr lr, _020CF48C ; =0x021D3854 + ldr ip, _020CF490 ; =0x021D384C + ldr r3, _020CF494 ; =0x021D3850 + ldr r1, _020CF498 ; =0x021D383C + ldr sb, _020CF49C ; =0x021D52E8 + ldr r6, _020CF4A0 ; =0x021D3848 + ldr r2, _020CF4A4 ; =0x021D3858 + mov r8, #0x1 + ldr r0, _020CF4A8 ; =0x021D3880 + ldr fp, _020CF4AC ; =0x021D5360 + str r9, [r6, #0x0] + str r10, [r7, #0x7e8] + str r10, [r5, #0x0] + str r10, [r4, #0x0] + str r10, [lr, #0x0] + str r10, [r12, #0x0] + str r10, [r3, #0x0] + str r8, [r2, #0x0] + str r10, [r1, #0x0] + str r0, [r11, #0x0] + bl SNDi_InitSharedWork + mov r0, r8 + bl SND_AllocCommand +_020CF43C: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x4F, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x1D, 0x20, 0xA0, 0xE3 .byte 0x0B, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0x80, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x08, 0x10, 0x80, 0xE5 .byte 0x46, 0xFF, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0xD4, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x3B, 0x1D, 0x02, 0x38, 0x38, 0x1D, 0x02 - .byte 0x00, 0x4B, 0x1D, 0x02, 0x40, 0x38, 0x1D, 0x02, 0x44, 0x38, 0x1D, 0x02, 0x54, 0x38, 0x1D, 0x02 - .byte 0x4C, 0x38, 0x1D, 0x02, 0x50, 0x38, 0x1D, 0x02, 0x3C, 0x38, 0x1D, 0x02, 0xE8, 0x52, 0x1D, 0x02 - .byte 0x48, 0x38, 0x1D, 0x02, 0x58, 0x38, 0x1D, 0x02, 0x80, 0x38, 0x1D, 0x02, 0x60, 0x53, 0x1D, 0x02 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x4C, 0x30, 0x9F, 0xE5, 0xFF, 0x20, 0x00, 0xE2 - .byte 0x0C, 0x10, 0xA0, 0xE3, 0x92, 0x31, 0x23, 0xE0, 0x40, 0x14, 0xA0, 0xE1, 0x08, 0x00, 0xD3, 0xE5 - .byte 0xFF, 0x10, 0x01, 0xE2, 0x00, 0x00, 0x51, 0xE1, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x10, 0x93, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x02 - .byte 0x00, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x00, 0x93, 0xE5, 0x31, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x53, 0x1D, 0x02 - .byte 0x0C, 0x30, 0xA0, 0xE3, 0x90, 0x03, 0x03, 0xE0, 0x1C, 0x00, 0x9F, 0xE5, 0x03, 0x10, 0x80, 0xE7 - .byte 0x03, 0x10, 0x80, 0xE0, 0x04, 0x20, 0x81, 0xE5, 0x08, 0x00, 0xD1, 0xE5, 0x01, 0x00, 0x80, 0xE2 - .byte 0x08, 0x00, 0xC1, 0xE5, 0x08, 0x00, 0xD1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x53, 0x1D, 0x02 - .byte 0x14, 0x20, 0x9F, 0xE5, 0x0C, 0x10, 0xA0, 0xE3, 0x90, 0x21, 0x21, 0xE0, 0x08, 0x00, 0xD1, 0xE5 - .byte 0x01, 0x00, 0x80, 0xE2, 0x08, 0x00, 0xC1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x53, 0x1D, 0x02 - .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x02, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x81, 0xE5 - .byte 0x04, 0x00, 0x81, 0xE5, 0x01, 0x20, 0x82, 0xE2, 0x08, 0x00, 0xC1, 0xE5, 0x08, 0x00, 0x52, 0xE3 - .byte 0x0C, 0x10, 0x81, 0xE2, 0xF8, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x53, 0x1D, 0x02 - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x40, 0x80, 0xE5, 0xB8, 0x40, 0xC0, 0xE1 - .byte 0xBA, 0x40, 0xC0, 0xE1, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x40, 0x80, 0xE5, 0x04, 0x30, 0xA0, 0xE1 - .byte 0x00, 0x20, 0xE0, 0xE3, 0x03, 0xE0, 0xA0, 0xE1, 0x40, 0x30, 0x8C, 0xE5, 0x8E, 0x10, 0x8C, 0xE0 - .byte 0x01, 0xE0, 0x8E, 0xE2, 0xB0, 0x22, 0xC1, 0xE1, 0x10, 0x00, 0x5E, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA - .byte 0x01, 0x40, 0x84, 0xE2, 0x10, 0x00, 0x54, 0xE3, 0x24, 0xC0, 0x8C, 0xE2, 0xF4, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0xE0, 0xE3, 0x83, 0x10, 0x80, 0xE0, 0x02, 0x1C, 0x81, 0xE2 - .byte 0x01, 0x30, 0x83, 0xE2, 0xB0, 0x26, 0xC1, 0xE1, 0x10, 0x00, 0x53, 0xE3, 0xF9, 0xFF, 0xFF, 0xBA - .byte 0x0A, 0x1D, 0xA0, 0xE3, 0xD4, 0xF2, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x20, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0xBE, 0xF2, 0xFF, 0xEB, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x60, 0x53, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x24, 0x10, 0xA0, 0xE3, 0x90, 0x01, 0x04, 0xE0 - .byte 0x28, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x40, 0x00, 0x80, 0xE2 - .byte 0x04, 0x00, 0x80, 0xE0, 0xAE, 0xF2, 0xFF, 0xEB, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x00, 0x80, 0xE0, 0x40, 0x00, 0x90, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x60, 0x53, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x24, 0x00, 0x9F, 0xE5 - .byte 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0xA0, 0xF2, 0xFF, 0xEB - .byte 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xB8, 0x00, 0xD0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x60, 0x53, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x24, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x00, 0x80, 0xE2, 0x92, 0xF2, 0xFF, 0xEB, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x00, 0x90, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x60, 0x53, 0x1D, 0x02, 0x60, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0xA0, 0xB1 - .byte 0x01, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xC3, 0x4C, 0x10, 0x9F, 0xE5 - .byte 0x4C, 0x20, 0x9F, 0xE5, 0x01, 0x30, 0x80, 0xE0, 0xEF, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 - .byte 0x03, 0x20, 0xD2, 0xE7, 0x03, 0x00, 0xA0, 0xB3, 0x07, 0x00, 0x00, 0xBA, 0x77, 0x10, 0xE0, 0xE3 - .byte 0x01, 0x00, 0x50, 0xE1, 0x02, 0x00, 0xA0, 0xB3, 0x03, 0x00, 0x00, 0xBA, 0x3B, 0x10, 0xE0, 0xE3 - .byte 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0xA0, 0xA3, 0x00, 0x04, 0x82, 0xE1 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x2D, 0xFD, 0xFF, 0xFF - .byte 0xD3, 0x02, 0x00, 0x00, 0xAC, 0x3C, 0x10, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1, 0x2B, 0xFD, 0xFF, 0xEB, 0x04, 0x01, 0x85, 0xE0 - .byte 0x3C, 0x40, 0x90, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x02, 0x04, 0x54, 0xE3 - .byte 0x04, 0x40, 0x85, 0x30, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x40, 0xA0, 0xE3, 0x1D, 0xFD, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0x19, 0xFD, 0xFF, 0xEB, 0x3C, 0x00, 0x86, 0xE2, 0x05, 0x21, 0x86, 0xE0, 0x05, 0x01, 0x80, 0xE0 - .byte 0x04, 0x10, 0xA0, 0xE3, 0x3C, 0x40, 0x82, 0xE5, 0x58, 0xF2, 0xFF, 0xEB, 0x0D, 0xFD, 0xFF, 0xEB - .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x38, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0x92, 0xE5, 0x38, 0x30, 0x90, 0xE5 - .byte 0x03, 0x00, 0x54, 0xE1, 0x6B, 0x00, 0x00, 0x2A, 0x00, 0xC0, 0xA0, 0xE3, 0x04, 0x31, 0x80, 0xE0 - .byte 0x3C, 0x40, 0x93, 0xE5, 0x00, 0x40, 0xC1, 0xE5, 0x00, 0x30, 0xD1, 0xE5, 0x10, 0x00, 0x53, 0xE3 - .byte 0x0A, 0x00, 0x00, 0xCA, 0x10, 0x00, 0x53, 0xE3, 0x1E, 0x00, 0x00, 0xAA, 0x05, 0x00, 0x53, 0xE3 - .byte 0x03, 0xF1, 0x8F, 0x90, 0x57, 0x00, 0x00, 0xEA, 0x56, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA + .byte 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CF478: .word 0x021D3B00 +_020CF47C: .word 0x021D3838 +_020CF480: .word 0x021D4B00 +_020CF484: .word 0x021D3840 +_020CF488: .word 0x021D3844 +_020CF48C: .word 0x021D3854 +_020CF490: .word 0x021D384C +_020CF494: .word 0x021D3850 +_020CF498: .word 0x021D383C +_020CF49C: .word 0x021D52E8 +_020CF4A0: .word 0x021D3848 +_020CF4A4: .word 0x021D3858 +_020CF4A8: .word 0x021D3880 +_020CF4AC: .word 0x021D5360 + + arm_func_start SNDi_CallAlarmHandler +SNDi_CallAlarmHandler: ; 0x020CF4B0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, _020CF50C ; =0x021D5300 + and r2, r0, #0xff + mov r1, #0xc + mla r3, r2, r1, r3 + mov r1, r0, asr #0x8 + ldrb r0, [r3, #0x8] + and r1, r1, #0xff + cmp r1, r0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r1, [r3, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + ldr r0, [r3, #0x4] + blx r1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CF50C: .word 0x021D5300 + + arm_func_start SNDi_SetAlarmHandler +SNDi_SetAlarmHandler: + mov r3, #0xc + mul r3, r0, r3 + ldr r0, _020CF53C ; =0x021D5300 + str r1, [r0, r3] + add r1, r0, r3 + str r2, [r1, #0x4] + ldrb r0, [r1, #0x8] + add r0, r0, #0x1 + strb r0, [r1, #0x8] + ldrb r0, [r1, #0x8] + bx lr + .balign 4 +_020CF53C: .word 0x021D5300 + + arm_func_start SNDi_IncAlarmId +SNDi_IncAlarmId: ; 0x020CF540 + ldr r2, _020CF55C ; =0x021D5300 + mov r1, #0xc + mla r1, r0, r1, r2 + ldrb r0, [r1, #0x8] + add r0, r0, #0x1 + strb r0, [r1, #0x8] + bx lr + .balign 4 +_020CF55C: .word 0x021D5300 + + arm_func_start SND_AlarmInit +SND_AlarmInit: ; 0x020CF560 + ldr r1, _020CF58C ; =0x021D5300 + mov r2, #0x0 + mov r0, r2 +_020CF56C: + str r0, [r1, #0x0] + str r0, [r1, #0x4] + add r2, r2, #0x1 + strb r0, [r1, #0x8] + cmp r2, #0x8 + add r1, r1, #0xc + blt _020CF56C + bx lr + .balign 4 +_020CF58C: .word 0x021D5300 + + arm_func_start SNDi_InitSharedWork +SNDi_InitSharedWork: ; 0x020CF590 + stmdb sp!, {r4,lr} + mov r4, #0x0 + str r4, [r0, #0x4] + strh r4, [r0, #0x8] + strh r4, [r0, #0xa] + mov r12, r0 + str r4, [r0, #0x0] + mov r3, r4 + mvn r2, #0x0 +_020CF5B4: + mov lr, r3 + str r3, [r12, #0x40] +_020CF5BC: + add r1, r12, lr, lsl #0x1 + add lr, lr, #0x1 + strh r2, [r1, #0x20] + cmp lr, #0x10 + blt _020CF5BC + add r4, r4, #0x1 + cmp r4, #0x10 + add r12, r12, #0x24 + blt _020CF5B4 + mov r3, #0x0 + mvn r2, #0x0 +_020CF5E8: + add r1, r0, r3, lsl #0x1 + add r1, r1, #0x200 + add r3, r3, #0x1 + strh r2, [r1, #0x60] + cmp r3, #0x10 + blt _020CF5E8 + mov r1, #0x280 + bl DC_FlushRange + ldmia sp!, {r4,lr} + bx lr + + arm_func_start SNDi_GetFinishedCommandTag +SNDi_GetFinishedCommandTag: ; 0x020CF610 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020CF640 ; =0x021D5360 + mov r1, #0x4 + ldr r0, [r0, #0x0] + bl DC_InvalidateRange + ldr r0, _020CF640 ; =0x021D5360 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CF640: .word 0x021D5360 + + arm_func_start SND_GetPlayerTickCounter +SND_GetPlayerTickCounter: ; 0x020CF644 + stmdb sp!, {r4,lr} + mov r1, #0x24 + mul r4, r0, r1 + ldr r0, _020CF680 ; =0x021D5360 + mov r1, #0x4 + ldr r0, [r0, #0x0] + add r0, r0, #0x40 + add r0, r0, r4 + bl DC_InvalidateRange + ldr r0, _020CF680 ; =0x021D5360 + ldr r0, [r0, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x40] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CF680: .word 0x021D5360 + + arm_func_start SND_GetChannelStatus +SND_GetChannelStatus: ; 0x020CF684 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020CF6B8 ; =0x021D5360 + mov r1, #0x2 + ldr r0, [r0, #0x0] + add r0, r0, #0x8 + bl DC_InvalidateRange + ldr r0, _020CF6B8 ; =0x021D5360 + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x8] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CF6B8: .word 0x021D5360 + + arm_func_start SND_GetPlayerStatus +SND_GetPlayerStatus: ; 0x020CF6BC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020CF6F0 ; =0x021D5360 + mov r1, #0x4 + ldr r0, [r0, #0x0] + add r0, r0, #0x4 + bl DC_InvalidateRange + ldr r0, _020CF6F0 ; =0x021D5360 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CF6F0: .word 0x021D5360 + + arm_func_start SND_CalcChannelVolume +SND_CalcChannelVolume: ; 0x020CF6F4 + ldr r1, _020CF75C ; =0xFFFFFD2D + cmp r0, r1 + movlt r0, r1 + blt _020CF70C + cmp r0, #0x0 + movgt r0, #0x0 +_020CF70C: + ldr r1, _020CF760 ; =0x000002D3 + ldr r2, _020CF764 ; =0x02103CAC + add r3, r0, r1 + mvn r1, #0xef + cmp r0, r1 + ldrb r2, [r2, r3] + movlt r0, #0x3 + blt _020CF74C + mvn r1, #0x77 + cmp r0, r1 + movlt r0, #0x2 + blt _020CF74C + mvn r1, #0x3b + cmp r0, r1 + movlt r0, #0x1 + movge r0, #0x0 +_020CF74C: + orr r0, r2, r0, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bx lr + .balign 4 +_020CF75C: .word 0xFFFFFD2D +_020CF760: .word 0x000002D3 +_020CF764: .word 0x02103CAC + + arm_func_start SND_GetWaveDataAddress +SND_GetWaveDataAddress: ; 0x020CF768 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + bl SNDi_LockMutex + add r0, r5, r4, lsl #0x2 + ldr r4, [r0, #0x3c] + cmp r4, #0x0 + beq _020CF798 + cmp r4, #0x2000000 + addcc r4, r5, r4 + b _020CF79C +_020CF798: + mov r4, #0x0 +_020CF79C: + bl SNDi_UnlockMutex + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start SND_SetWaveDataAddress +SND_SetWaveDataAddress: ; 0x020CF7B0 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl SNDi_LockMutex + add r0, r6, #0x3c + add r2, r6, r5, lsl #0x2 + add r0, r0, r5, lsl #0x2 + mov r1, #0x4 + str r4, [r2, #0x3c] + bl DC_StoreRange + bl SNDi_UnlockMutex + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start SND_GetWaveDataCount +SND_GetWaveDataCount: ; 0x020CF7E8 + ldr r0, [r0, #0x38] + bx lr + + arm_func_start SND_GetNextInstData +SND_GetNextInstData: ; 0x020CF7F0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r4, [r2, #0x0] + ldr r3, [r0, #0x38] + cmp r4, r3 + bhs _020CF9B8 + mov r12, #0x0 +_020CF80C: + add r3, r0, r4, lsl #0x2 + ldr r4, [r3, #0x3c] + strb r4, [r1, #0x0] + ldrb r3, [r1, #0x0] + cmp r3, #0x10 + bgt _020CF850 + cmp r3, #0x10 + bge _020CF8A8 + cmp r3, #0x5 + addls pc, pc, r3, lsl #0x2 + b _020CF998 +_020CF838: + .byte 0x56, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA .byte 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA - .byte 0x11, 0x00, 0x53, 0xE3, 0x32, 0x00, 0x00, 0x0A, 0x4E, 0x00, 0x00, 0xEA, 0x24, 0x34, 0xA0, 0xE1 +_020CF850: + cmp r3, #0x11 + beq _020CF924 + b _020CF998 +_020CF85C: + .byte 0x24, 0x34, 0xA0, 0xE1 .byte 0x24, 0x54, 0x80, 0xE0, 0xB3, 0x40, 0x90, 0xE1, 0xB2, 0x30, 0xD5, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 .byte 0x01, 0x00, 0xA0, 0xE3, 0xB2, 0x40, 0xC1, 0xE1, 0xB4, 0x30, 0xC1, 0xE1, 0xB4, 0x40, 0xD5, 0xE1 .byte 0xB6, 0x30, 0xD5, 0xE1, 0xB6, 0x40, 0xC1, 0xE1, 0xB8, 0x30, 0xC1, 0xE1, 0xB8, 0x30, 0xD5, 0xE1 .byte 0xBA, 0x30, 0xC1, 0xE1, 0x00, 0x10, 0x92, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x00, 0x10, 0x82, 0xE5 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x54, 0x80, 0xE0, 0x14, 0x00, 0x00, 0xEA - .byte 0x0C, 0x00, 0xA0, 0xE3, 0x9E, 0x50, 0x2C, 0xE0, 0xB2, 0x40, 0xDC, 0xE1, 0xB4, 0x30, 0xDC, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0xB0, 0x40, 0xC1, 0xE1, 0xB2, 0x30, 0xC1, 0xE1 - .byte 0xB6, 0x40, 0xDC, 0xE1, 0xB8, 0x30, 0xDC, 0xE1, 0xB4, 0x40, 0xC1, 0xE1, 0xB6, 0x30, 0xC1, 0xE1 - .byte 0xBA, 0x40, 0xDC, 0xE1, 0xBC, 0x30, 0xDC, 0xE1, 0xB8, 0x40, 0xC1, 0xE1, 0xBA, 0x30, 0xC1, 0xE1 - .byte 0x04, 0x10, 0x92, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x04, 0x10, 0x82, 0xE5, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x40, 0xD5, 0xE5, 0x00, 0x30, 0xD5, 0xE5, 0x04, 0xE0, 0x92, 0xE5 - .byte 0x03, 0x30, 0x44, 0xE0, 0x01, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x5E, 0xE1, 0xE3, 0xFF, 0xFF, 0x3A - .byte 0x1C, 0x00, 0x00, 0xEA, 0x24, 0x44, 0x80, 0xE0, 0x17, 0x00, 0x00, 0xEA, 0x03, 0xE0, 0xD4, 0xE7 - .byte 0x00, 0x00, 0x5E, 0xE3, 0x17, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0xA0, 0xE3, 0x93, 0x40, 0x2E, 0xE0 - .byte 0xB8, 0xC0, 0xDE, 0xE1, 0xBA, 0x30, 0xDE, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 - .byte 0xB0, 0xC0, 0xC1, 0xE1, 0xB2, 0x30, 0xC1, 0xE1, 0xBC, 0xC0, 0xDE, 0xE1, 0xBE, 0x30, 0xDE, 0xE1 - .byte 0xB4, 0xC0, 0xC1, 0xE1, 0xB6, 0x30, 0xC1, 0xE1, 0xB0, 0xC1, 0xDE, 0xE1, 0xB2, 0x31, 0xDE, 0xE1 - .byte 0xB8, 0xC0, 0xC1, 0xE1, 0xBA, 0x30, 0xC1, 0xE1, 0x04, 0x10, 0x92, 0xE5, 0x01, 0x10, 0x81, 0xE2 - .byte 0x04, 0x10, 0x82, 0xE5, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x30, 0x92, 0xE5 - .byte 0x08, 0x00, 0x53, 0xE3, 0xE4, 0xFF, 0xFF, 0x3A, 0x00, 0x30, 0x92, 0xE5, 0x01, 0x30, 0x83, 0xE2 - .byte 0x00, 0x30, 0x82, 0xE5, 0x04, 0xC0, 0x82, 0xE5, 0x00, 0x40, 0x92, 0xE5, 0x38, 0x30, 0x90, 0xE5 - .byte 0x03, 0x00, 0x54, 0xE1, 0x94, 0xFF, 0xFF, 0x3A, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0xD0, 0x4D, 0xE2, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x8D, 0xE5, 0x04, 0x10, 0x8D, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x04, 0x10, 0x80, 0xE5 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x8D, 0xFC, 0xFF, 0xEB, 0x18, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x09, 0x00, 0x00, 0x0A - .byte 0x00, 0x50, 0xA0, 0xE3, 0x08, 0x40, 0xA0, 0xE3, 0x04, 0x60, 0x90, 0xE5, 0x04, 0x10, 0xA0, 0xE1 - .byte 0x00, 0x50, 0x80, 0xE5, 0x04, 0x50, 0x80, 0xE5, 0xC8, 0xF1, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x56, 0xE3, 0xF7, 0xFF, 0xFF, 0x1A, 0x7A, 0xFC, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x70, 0xA0, 0xE1, 0x7A, 0xFC, 0xFF, 0xEB - .byte 0x18, 0x50, 0x87, 0xE2, 0x00, 0x60, 0xA0, 0xE3, 0x08, 0x80, 0xA0, 0xE3, 0x3C, 0x40, 0xA0, 0xE3 - .byte 0x86, 0x11, 0x87, 0xE0, 0x18, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x15, 0x00, 0x00, 0x0A - .byte 0x18, 0x30, 0x90, 0xE5, 0x03, 0x00, 0x55, 0xE1, 0x04, 0x00, 0x00, 0x1A, 0x1C, 0x20, 0x91, 0xE5 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x18, 0x20, 0x80, 0xE5, 0xB0, 0xF1, 0xFF, 0xEB, 0x0D, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0x53, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x93, 0xE5, 0x00, 0x00, 0x55, 0xE1 - .byte 0x02, 0x00, 0x00, 0x0A, 0x00, 0x30, 0xA0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A - .byte 0x86, 0x01, 0x87, 0xE0, 0x1C, 0x20, 0x90, 0xE5, 0x03, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x20, 0x83, 0xE5, 0xA1, 0xF1, 0xFF, 0xEB, 0x01, 0x60, 0x86, 0xE2, 0x04, 0x00, 0x56, 0xE3 - .byte 0x08, 0x50, 0x85, 0xE2, 0xE1, 0xFF, 0xFF, 0xBA, 0x52, 0xFC, 0xFF, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1 - .byte 0x02, 0x40, 0xA0, 0xE1, 0x50, 0xFC, 0xFF, 0xEB, 0x85, 0x31, 0x86, 0xE0, 0x18, 0x20, 0x93, 0xE5 - .byte 0x85, 0xC1, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x1C, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x54, 0xE1 - .byte 0x02, 0x00, 0x00, 0x1A, 0x43, 0xFC, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x18, 0x10, 0x86, 0xE2, 0x18, 0x00, 0x92, 0xE5, 0x0C, 0xC0, 0x81, 0xE0, 0x00, 0x00, 0x5C, 0xE1 - .byte 0x05, 0x00, 0x00, 0x1A, 0x1C, 0x00, 0x93, 0xE5, 0x3C, 0x10, 0xA0, 0xE3, 0x18, 0x00, 0x82, 0xE5 - .byte 0x18, 0x00, 0x93, 0xE5, 0x81, 0xF1, 0xFF, 0xEB, 0x0C, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x50, 0xE3 - .byte 0x05, 0x00, 0x00, 0x0A, 0x04, 0x10, 0x90, 0xE5, 0x01, 0x00, 0x5C, 0xE1, 0x02, 0x00, 0x00, 0x0A - .byte 0x01, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x85, 0x11, 0x86, 0xE0 - .byte 0x1C, 0x20, 0x91, 0xE5, 0x08, 0x10, 0xA0, 0xE3, 0x04, 0x20, 0x80, 0xE5, 0x73, 0xF1, 0xFF, 0xEB - .byte 0x18, 0x00, 0x86, 0xE2, 0x18, 0x10, 0x94, 0xE5, 0x85, 0x01, 0x80, 0xE0, 0x18, 0x00, 0x84, 0xE5 - .byte 0x85, 0x01, 0x86, 0xE0, 0x1C, 0x10, 0x80, 0xE5, 0x18, 0x40, 0x80, 0xE5, 0x21, 0xFC, 0xFF, 0xEB - .byte 0x06, 0x00, 0xA0, 0xE1, 0x3C, 0x10, 0xA0, 0xE3, 0x68, 0xF1, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x3C, 0x10, 0xA0, 0xE3, 0x65, 0xF1, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xFE, 0x0C, 0x02, 0xF0, 0x47, 0x2D, 0xE9 - .byte 0x08, 0xD0, 0x4D, 0xE2, 0x08, 0xA1, 0x9F, 0xE5, 0x08, 0x51, 0x9F, 0xE5, 0x08, 0x41, 0x9F, 0xE5 - .byte 0x41, 0x76, 0xA0, 0xE3, 0x00, 0x60, 0xA0, 0xE3, 0x03, 0x80, 0xE0, 0xE3, 0x02, 0x90, 0xE0, 0xE3 - .byte 0xB0, 0x00, 0xDA, 0xE1, 0x01, 0x09, 0x10, 0xE2, 0xB0, 0x00, 0xDA, 0x11, 0x09, 0x10, 0xA0, 0x11 - .byte 0x03, 0x09, 0x80, 0x13, 0xB0, 0x00, 0xCA, 0x11, 0x0A, 0x00, 0x00, 0x1A, 0xC3, 0xF5, 0xFF, 0xEB - .byte 0xB0, 0x10, 0xDA, 0xE1, 0x01, 0x1C, 0x11, 0xE2, 0x02, 0x00, 0x00, 0x0A, 0xC4, 0xF5, 0xFF, 0xEB - .byte 0x08, 0x10, 0xA0, 0xE1, 0x03, 0x00, 0x00, 0xEA, 0x00, 0x10, 0x97, 0xE5, 0x00, 0x10, 0x8D, 0xE5 - .byte 0xBF, 0xF5, 0xFF, 0xEB, 0x06, 0x10, 0xA0, 0xE1, 0x08, 0x00, 0x51, 0xE1, 0x08, 0xD0, 0x8D, 0x02 - .byte 0xF0, 0x47, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x02, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 - .byte 0xE6, 0xFF, 0xFF, 0x0A, 0x00, 0x10, 0x9D, 0xE5, 0x81, 0x0D, 0xA0, 0xE1, 0xA0, 0x0D, 0xB0, 0xE1 - .byte 0xE2, 0xFF, 0xFF, 0x0A, 0x00, 0x31, 0x95, 0xE7, 0x00, 0x00, 0x53, 0xE3, 0x04, 0x00, 0x00, 0x0A - .byte 0x01, 0x2D, 0xA0, 0xE1, 0x21, 0x13, 0xA0, 0xE1, 0xA2, 0x2F, 0xA0, 0xE1, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0xDA, 0xFF, 0xFF, 0xEA, 0x01, 0x0D, 0xA0, 0xE1, 0xA0, 0x0F, 0xB0, 0xE1, 0xD7, 0xFF, 0xFF, 0x1A - .byte 0x20, 0x00, 0x81, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0xB0, 0x00, 0xDA, 0xE1, 0x01, 0x09, 0x10, 0xE2 - .byte 0xB0, 0x00, 0xDA, 0x11, 0x03, 0x09, 0x80, 0x13, 0xB0, 0x00, 0xCA, 0x11, 0xCF, 0xFF, 0xFF, 0x1A - .byte 0x9A, 0xF5, 0xFF, 0xEB, 0xB0, 0x10, 0xDA, 0xE1, 0x02, 0x10, 0x11, 0xE2, 0x01, 0x00, 0x00, 0x0A - .byte 0x9B, 0xF5, 0xFF, 0xEB, 0xC9, 0xFF, 0xFF, 0xEA, 0x00, 0x10, 0x9D, 0xE5, 0x00, 0x10, 0x84, 0xE5 - .byte 0x97, 0xF5, 0xFF, 0xEB, 0xC5, 0xFF, 0xFF, 0xEA, 0x08, 0xD0, 0x8D, 0xE2, 0xF0, 0x47, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x01, 0x00, 0x04, 0x68, 0x53, 0x1D, 0x02, 0x88, 0x01, 0x00, 0x04 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x30, 0x9D, 0xE5, 0x1F, 0x00, 0x00, 0xE2 - .byte 0x1F, 0x30, 0xC3, 0xE3, 0x00, 0xC0, 0x83, 0xE1, 0x20, 0x30, 0xCC, 0xE3, 0x01, 0x00, 0x02, 0xE2 - .byte 0x80, 0x32, 0x83, 0xE1, 0x00, 0xC0, 0x8D, 0xE5, 0x3F, 0x20, 0x03, 0xE2, 0x3F, 0x03, 0xC1, 0xE3 - .byte 0x00, 0x03, 0x82, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x6C, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0x8D, 0xE5 - .byte 0xB0, 0x00, 0xD2, 0xE1, 0x01, 0x09, 0x10, 0xE2, 0xB0, 0x10, 0xD2, 0x11, 0x04, 0xD0, 0x8D, 0x12 - .byte 0x00, 0x00, 0xE0, 0x13, 0x03, 0x19, 0x81, 0x13, 0xB0, 0x10, 0xC2, 0x11, 0x00, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x71, 0xF5, 0xFF, 0xEB, 0x3C, 0x10, 0x9F, 0xE5, 0xB0, 0x10, 0xD1, 0xE1 - .byte 0x02, 0x10, 0x11, 0xE2, 0x04, 0x00, 0x00, 0x0A, 0x71, 0xF5, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x20, 0x9D, 0xE5 - .byte 0x18, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x81, 0xE5, 0x69, 0xF5, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x84, 0x01, 0x00, 0x04 - .byte 0x88, 0x01, 0x00, 0x04, 0x1C, 0x20, 0x9F, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x01, 0x11, 0x82, 0xE0 - .byte 0x13, 0x20, 0xA0, 0xE1, 0x88, 0x03, 0x91, 0xE5, 0x00, 0x00, 0x12, 0xE0, 0x00, 0x30, 0xA0, 0x03 - .byte 0x03, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xFC, 0x7F, 0x02, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x4F, 0xF5, 0xFF, 0xEB - .byte 0x48, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE3, 0x04, 0x51, 0x81, 0xE7, 0x05, 0x00, 0x00, 0x0A - .byte 0x3C, 0x30, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x88, 0x23, 0x93, 0xE5, 0x11, 0x14, 0x82, 0xE1 - .byte 0x88, 0x13, 0x83, 0xE5, 0x05, 0x00, 0x00, 0xEA, 0x24, 0x30, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x11, 0x14, 0xE0, 0xE1, 0x88, 0x23, 0x93, 0xE5, 0x01, 0x10, 0x02, 0xE0, 0x88, 0x13, 0x83, 0xE5 - .byte 0x43, 0xF5, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x68, 0x53, 0x1D, 0x02, 0x00, 0xFC, 0x7F, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x36, 0xF5, 0xFF, 0xEB, 0xDC, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0xB0, 0x00, 0xD1, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x2E, 0x00, 0x00, 0x1A, 0x01, 0x20, 0xA0, 0xE3, 0xC8, 0x00, 0x9F, 0xE5 - .byte 0xB0, 0x20, 0xC1, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0x88, 0x23, 0x80, 0xE5, 0xBC, 0x00, 0x9F, 0xE5 - .byte 0x02, 0x10, 0xA0, 0xE1, 0x02, 0x11, 0x80, 0xE7, 0x01, 0x20, 0x82, 0xE2, 0x20, 0x00, 0x52, 0xE3 - .byte 0xFB, 0xFF, 0xFF, 0xBA, 0xA8, 0x20, 0x9F, 0xE5, 0xA8, 0x10, 0x9F, 0xE5, 0x01, 0x07, 0xA0, 0xE3 - .byte 0xB0, 0x20, 0xC1, 0xE1, 0xD5, 0xE7, 0xFF, 0xEB, 0x9C, 0x10, 0x9F, 0xE5, 0x01, 0x07, 0xA0, 0xE3 - .byte 0x55, 0xE8, 0xFF, 0xEB, 0x01, 0x07, 0xA0, 0xE3, 0xEF, 0xE7, 0xFF, 0xEB, 0x00, 0xC0, 0xA0, 0xE3 - .byte 0x88, 0x30, 0x9F, 0xE5, 0x0C, 0x10, 0xA0, 0xE1, 0xFA, 0x2F, 0xA0, 0xE3, 0xB0, 0x00, 0xD3, 0xE1 - .byte 0x0F, 0xE0, 0x10, 0xE2, 0x0E, 0x04, 0xA0, 0xE1, 0xB0, 0x00, 0xC3, 0xE1, 0x01, 0x00, 0x00, 0x1A - .byte 0x04, 0x00, 0x5C, 0xE3, 0x0E, 0x00, 0x00, 0xCA, 0xB0, 0x00, 0xD3, 0xE1, 0x02, 0x50, 0xA0, 0xE1 - .byte 0x0F, 0x00, 0x00, 0xE2, 0x0E, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x55, 0xE3 - .byte 0x01, 0xC0, 0xA0, 0xD1, 0x04, 0x00, 0x00, 0xDA, 0xB0, 0x00, 0xD3, 0xE1, 0x01, 0x50, 0x45, 0xE2 - .byte 0x0F, 0x00, 0x00, 0xE2, 0x0E, 0x00, 0x50, 0xE1, 0xF7, 0xFF, 0xFF, 0x0A, 0x01, 0xC0, 0x8C, 0xE2 - .byte 0xE9, 0xFF, 0xFF, 0xEA, 0x04, 0x00, 0xA0, 0xE1, 0x05, 0xF5, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x64, 0x53, 0x1D, 0x02, 0x00, 0xFC, 0x7F, 0x02 - .byte 0x68, 0x53, 0x1D, 0x02, 0x08, 0xC4, 0x00, 0x00, 0x84, 0x01, 0x00, 0x04, 0xBC, 0xFB, 0x0C, 0x02 - .byte 0x80, 0x01, 0x00, 0x04, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x80, 0xA0, 0xE1, 0x0C, 0x00, 0x98, 0xE5 - .byte 0x01, 0x70, 0xA0, 0xE1, 0x01, 0x10, 0xA0, 0xE3, 0x08, 0x50, 0x98, 0xE5, 0x11, 0x47, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x10, 0xE2, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3, 0x1C, 0x00, 0x95, 0x15 - .byte 0x02, 0x0C, 0x80, 0x13, 0x1C, 0x00, 0x85, 0x15, 0x1C, 0x00, 0x95, 0x05, 0x01, 0x0C, 0x80, 0x03 - .byte 0x1C, 0x00, 0x85, 0x05, 0x58, 0x00, 0x95, 0xE5, 0x04, 0x00, 0x10, 0xE0, 0x18, 0x00, 0x00, 0x0A - .byte 0x54, 0x20, 0x95, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1, 0x32, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x08, 0x00, 0x56, 0xE3, 0x06, 0xF1, 0x8F, 0x90, 0x11, 0x00, 0x00, 0xEA + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CF8A8: + add r5, r0, r4, lsr #0x8 + b _020CF904 +_020CF8B0: + mov r0, #0xc + mla r12, lr, r0, r5 + ldrh r4, [r12, #0x2] + ldrh r3, [r12, #0x4] + add sp, sp, #0x4 + mov r0, #0x1 + strh r4, [r1, #0x0] + strh r3, [r1, #0x2] + ldrh r4, [r12, #0x6] + ldrh r3, [r12, #0x8] + strh r4, [r1, #0x4] + strh r3, [r1, #0x6] + ldrh r4, [r12, #0xa] + ldrh r3, [r12, #0xc] + strh r4, [r1, #0x8] + strh r3, [r1, #0xa] + ldr r1, [r2, #0x4] + add r1, r1, #0x1 + str r1, [r2, #0x4] + ldmia sp!, {r4-r5,lr} + bx lr +_020CF904: + ldrb r4, [r5, #0x1] + ldrb r3, [r5, #0x0] + ldr lr, [r2, #0x4] + sub r3, r4, r3 + add r3, r3, #0x1 + cmp lr, r3 + blo _020CF8B0 + b _020CF998 +_020CF924: + add r4, r0, r4, lsr #0x8 + b _020CF98C +_020CF92C: + ldrb lr, [r4, r3] + cmp lr, #0x0 + beq _020CF998 + mov r0, #0xc + mla lr, r3, r0, r4 + ldrh r12, [lr, #0x8] + ldrh r3, [lr, #0xa] + add sp, sp, #0x4 + mov r0, #0x1 + strh r12, [r1, #0x0] + strh r3, [r1, #0x2] + ldrh r12, [lr, #0xc] + ldrh r3, [lr, #0xe] + strh r12, [r1, #0x4] + strh r3, [r1, #0x6] + ldrh r12, [lr, #0x10] + ldrh r3, [lr, #0x12] + strh r12, [r1, #0x8] + strh r3, [r1, #0xa] + ldr r1, [r2, #0x4] + add r1, r1, #0x1 + str r1, [r2, #0x4] + ldmia sp!, {r4-r5,lr} + bx lr +_020CF98C: + ldr r3, [r2, #0x4] + cmp r3, #0x8 + blo _020CF92C +_020CF998: + ldr r3, [r2, #0x0] + add r3, r3, #0x1 + str r3, [r2, #0x0] + str r12, [r2, #0x4] + ldr r4, [r2, #0x0] + ldr r3, [r0, #0x38] + cmp r4, r3 + blo _020CF80C +_020CF9B8: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start SND_GetFirstInstDataPos +SND_GetFirstInstDataPos: ; 0x020CF9C8 + sub sp, sp, #0x8 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + str r1, [r0, #0x0] + str r1, [r0, #0x4] + add sp, sp, #0x8 + bx lr + + arm_func_start SND_DestroyWaveArc +SND_DestroyWaveArc: ; 0x020CF9E8 + stmdb sp!, {r4-r6,lr} + mov r4, r0 + bl SNDi_LockMutex + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _020CFA28 + mov r5, #0x0 + mov r4, #0x8 +_020CFA08: + ldr r6, [r0, #0x4] + mov r1, r4 + str r5, [r0, #0x0] + str r5, [r0, #0x4] + bl DC_StoreRange + mov r0, r6 + cmp r6, #0x0 + bne _020CFA08 +_020CFA28: + bl SNDi_UnlockMutex + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start SND_DestroyBank +SND_DestroyBank: ; 0x020CFA34 + stmdb sp!, {r4-r8,lr} + mov r7, r0 + bl SNDi_LockMutex + add r5, r7, #0x18 + mov r6, #0x0 + mov r8, #0x8 + mov r4, #0x3c +_020CFA50: + add r1, r7, r6, lsl #0x3 + ldr r0, [r1, #0x18] + cmp r0, #0x0 + beq _020CFAB8 + ldr r3, [r0, #0x18] + cmp r5, r3 + bne _020CFA80 + ldr r2, [r1, #0x1c] + mov r1, r4 + str r2, [r0, #0x18] + bl DC_StoreRange + b _020CFAB8 +_020CFA80: + cmp r3, #0x0 + beq _020CFAA0 +_020CFA88: + ldr r0, [r3, #0x4] + cmp r5, r0 + beq _020CFAA0 + mov r3, r0 + cmp r0, #0x0 + bne _020CFA88 +_020CFAA0: + add r0, r7, r6, lsl #0x3 + ldr r2, [r0, #0x1c] + mov r0, r3 + mov r1, r8 + str r2, [r3, #0x4] + bl DC_StoreRange +_020CFAB8: + add r6, r6, #0x1 + cmp r6, #0x4 + add r5, r5, #0x8 + blt _020CFA50 + bl SNDi_UnlockMutex + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start SND_AssignWaveArc +SND_AssignWaveArc: ; 0x020CFAD4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl SNDi_LockMutex + add r3, r6, r5, lsl #0x3 + ldr r2, [r3, #0x18] + mov r12, r5, lsl #0x3 + cmp r2, #0x0 + beq _020CFB70 + cmp r4, r2 + bne _020CFB10 + bl SNDi_UnlockMutex + ldmia sp!, {r4-r6,lr} + bx lr +_020CFB10: + add r1, r6, #0x18 + ldr r0, [r2, #0x18] + add r12, r1, r12 + cmp r12, r0 + bne _020CFB3C + ldr r0, [r3, #0x1c] + mov r1, #0x3c + str r0, [r2, #0x18] + ldr r0, [r3, #0x18] + bl DC_StoreRange + b _020CFB70 +_020CFB3C: + cmp r0, #0x0 + beq _020CFB5C +_020CFB44: + ldr r1, [r0, #0x4] + cmp r12, r1 + beq _020CFB5C + mov r0, r1 + cmp r1, #0x0 + bne _020CFB44 +_020CFB5C: + add r1, r6, r5, lsl #0x3 + ldr r2, [r1, #0x1c] + mov r1, #0x8 + str r2, [r0, #0x4] + bl DC_StoreRange +_020CFB70: + add r0, r6, #0x18 + ldr r1, [r4, #0x18] + add r0, r0, r5, lsl #0x3 + str r0, [r4, #0x18] + add r0, r6, r5, lsl #0x3 + str r1, [r0, #0x1c] + str r4, [r0, #0x18] + bl SNDi_UnlockMutex + mov r0, r6 + mov r1, #0x3c + bl DC_StoreRange + mov r0, r4 + mov r1, #0x3c + bl DC_StoreRange + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start PXI_Init +PXI_Init: ; 0x020CFBB0 + ldr ip, _020CFBB8 ; =PXI_InitFifo + bx r12 + .balign 4 +_020CFBB8: .word PXI_InitFifo + + arm_func_start PXIi_HandlerRecvFifoNotEmpty +PXIi_HandlerRecvFifoNotEmpty: ; 0x020CFBBC + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0x8 + ldr sl, _020CFCD4 ; =0x04000184 + ldr r5, _020CFCD8 ; =0x021D5368 + ldr r4, _020CFCDC ; =0x04000188 + mov r7, #0x4100000 + mov r6, #0x0 + mvn r8, #0x3 + mvn r9, #0x2 +_020CFBE0: + ldrh r0, [r10, #0x0] + ands r0, r0, #0x4000 + ldrneh r0, [r10, #0x0] + movne r1, r9 + orrne r0, r0, #0xc000 + strneh r0, [r10, #0x0] + bne _020CFC28 + bl OS_DisableInterrupts + ldrh r1, [r10, #0x0] + ands r1, r1, #0x100 + beq _020CFC18 + bl OS_RestoreInterrupts + mov r1, r8 + b _020CFC28 +_020CFC18: + ldr r1, [r7, #0x0] + str r1, [sp, #0x0] + bl OS_RestoreInterrupts + mov r1, r6 +_020CFC28: + cmp r1, r8 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r10,lr} + bxeq lr + mvn r0, #0x2 + cmp r1, r0 + beq _020CFBE0 + ldr r1, [sp, #0x0] + mov r0, r1, lsl #0x1b + movs r0, r0, lsr #0x1b + beq _020CFBE0 + ldr r3, [r5, r0, lsl #0x2] + cmp r3, #0x0 + beq _020CFC74 + mov r2, r1, lsl #0x1a + mov r1, r1, lsr #0x6 + mov r2, r2, lsr #0x1f + blx r3 + b _020CFBE0 +_020CFC74: + mov r0, r1, lsl #0x1a + movs r0, r0, lsr #0x1f + bne _020CFBE0 + orr r0, r1, #0x20 + str r0, [sp, #0x0] + ldrh r0, [r10, #0x0] + ands r0, r0, #0x4000 + ldrneh r0, [r10, #0x0] + orrne r0, r0, #0xc000 + strneh r0, [r10, #0x0] + bne _020CFBE0 + bl OS_DisableInterrupts + ldrh r1, [r10, #0x0] + ands r1, r1, #0x2 + beq _020CFCB8 + bl OS_RestoreInterrupts + b _020CFBE0 +_020CFCB8: + ldr r1, [sp, #0x0] + str r1, [r4, #0x0] + bl OS_RestoreInterrupts + b _020CFBE0 +_020CFCC8: + .byte 0x08, 0xD0, 0x8D, 0xE2, 0xF0, 0x47, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1 +_020CFCD4: .word 0x04000184 +_020CFCD8: .word 0x021D5368 +_020CFCDC: .word 0x04000188 + + arm_func_start PXI_SendWordByFifo +PXI_SendWordByFifo: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, [sp, #0x0] + and r0, r0, #0x1f + bic r3, r3, #0x1f + orr r12, r3, r0 + bic r3, r12, #0x20 + and r0, r2, #0x1 + orr r3, r3, r0, lsl #0x5 + str r12, [sp, #0x0] + and r2, r3, #0x3f + bic r0, r1, #0xfc000000 + orr r0, r2, r0, lsl #0x6 + str r3, [sp, #0x0] + ldr r2, _020CFD8C ; =0x04000184 + str r0, [sp, #0x0] + ldrh r0, [r2, #0x0] + ands r0, r0, #0x4000 + ldrneh r1, [r2, #0x0] + addne sp, sp, #0x4 + mvnne r0, #0x0 + orrne r1, r1, #0xc000 + strneh r1, [r2, #0x0] + ldmneia sp!, {lr} + bxne lr + bl OS_DisableInterrupts + ldr r1, _020CFD8C ; =0x04000184 + ldrh r1, [r1, #0x0] + ands r1, r1, #0x2 + beq _020CFD6C + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mvn r0, #0x1 + ldmia sp!, {lr} + bx lr +_020CFD6C: + ldr r2, [sp, #0x0] + ldr r1, _020CFD90 ; =0x04000188 + str r2, [r1, #0x0] + bl OS_RestoreInterrupts +_020CFD7C: + .byte 0x00, 0x00, 0xA0, 0xE3 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020CFD8C: .word 0x04000184 +_020CFD90: .word 0x04000188 + + arm_func_start PXI_IsCallbackReady +PXI_IsCallbackReady: + ldr r2, _020CFDB8 ; =0x027FFC00 + mov r3, #0x1 + add r1, r2, r1, lsl #0x2 + mov r2, r3, lsl r0 + ldr r0, [r1, #0x388] + ands r0, r2, r0 + moveq r3, #0x0 + mov r0, r3 + bx lr + .balign 4 +_020CFDB8: .word 0x027FFC00 + + arm_func_start PXI_SetFifoRecvCallback +PXI_SetFifoRecvCallback: ; 0x020CFDBC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + mov r5, r1 + bl OS_DisableInterrupts + ldr r1, _020CFE20 ; =0x021D5368 + cmp r5, #0x0 + str r5, [r1, r4, lsl #0x2] + beq _020CFDF8 + ldr r3, _020CFE24 ; =0x027FFC00 + mov r1, #0x1 + ldr r2, [r3, #0x388] + orr r1, r2, r1, lsl r4 + str r1, [r3, #0x388] + b _020CFE10 +_020CFDF8: + ldr r3, _020CFE24 ; =0x027FFC00 + mov r1, #0x1 + mvn r1, r1, lsl r4 + ldr r2, [r3, #0x388] + and r1, r2, r1 + str r1, [r3, #0x388] +_020CFE10: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CFE20: .word 0x021D5368 +_020CFE24: .word 0x027FFC00 + + arm_func_start PXI_InitFifo +PXI_InitFifo: ; 0x020CFE28 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + ldr r1, _020CFF18 ; =0x021D5364 + mov r4, r0 + ldrh r0, [r1, #0x0] + cmp r0, #0x0 + bne _020CFF04 + mov r2, #0x1 + ldr r0, _020CFF1C ; =0x027FFC00 + strh r2, [r1, #0x0] + mov r2, #0x0 + str r2, [r0, #0x388] + ldr r0, _020CFF20 ; =0x021D5368 + mov r1, r2 +_020CFE64: + str r1, [r0, r2, lsl #0x2] + add r2, r2, #0x1 + cmp r2, #0x20 + blt _020CFE64 + ldr r2, _020CFF24 ; =0x0000C408 + ldr r1, _020CFF28 ; =0x04000184 + mov r0, #0x40000 + strh r2, [r1, #0x0] + bl OS_ResetRequestIrqMask + ldr r1, _020CFF2C ; =PXIi_HandlerRecvFifoNotEmpty + mov r0, #0x40000 + bl OS_SetIrqFunction + mov r0, #0x40000 + bl OS_EnableIrqMask + mov r12, #0x0 + ldr r3, _020CFF30 ; =0x04000180 + mov r1, r12 + mov r2, #0x3e8 +_020CFEAC: + ldrh r0, [r3, #0x0] + ands lr, r0, #0xf + mov r0, lr, lsl #0x8 + strh r0, [r3, #0x0] + bne _020CFEC8 + cmp r12, #0x4 + bgt _020CFF04 +_020CFEC8: + ldrh r0, [r3, #0x0] + mov r5, r2 + and r0, r0, #0xf + cmp r0, lr + bne _020CFEFC +_020CFEDC: + cmp r5, #0x0 + movle r12, r1 + ble _020CFEFC + ldrh r0, [r3, #0x0] + sub r5, r5, #0x1 + and r0, r0, #0xf + cmp r0, lr + beq _020CFEDC +_020CFEFC: + add r12, r12, #0x1 + b _020CFEAC +_020CFF04: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CFF18: .word 0x021D5364 +_020CFF1C: .word 0x027FFC00 +_020CFF20: .word 0x021D5368 +_020CFF24: .word 0x0000C408 +_020CFF28: .word 0x04000184 +_020CFF2C: .word PXIi_HandlerRecvFifoNotEmpty +_020CFF30: .word 0x04000180 + + arm_func_start FSi_TranslateCommand +FSi_TranslateCommand: + stmdb sp!, {r4-r8,lr} + mov r8, r0 + ldr r0, [r8, #0xc] + mov r7, r1 + mov r1, #0x1 + ldr r5, [r8, #0x8] + mov r4, r1, lsl r7 + ands r0, r0, #0x4 + moveq r1, #0x0 + cmp r1, #0x0 + ldrne r0, [r5, #0x1c] + orrne r0, r0, #0x200 + strne r0, [r5, #0x1c] + ldreq r0, [r5, #0x1c] + orreq r0, r0, #0x100 + streq r0, [r5, #0x1c] + ldr r0, [r5, #0x58] + ands r0, r0, r4 + beq _020CFFE4 + ldr r2, [r5, #0x54] + mov r0, r8 + mov r1, r7 + blx r2 + mov r6, r0 + cmp r6, #0x8 + addls pc, pc, r6, lsl #0x2 + b _020CFFE8 +_020CFFA0: .byte 0x07, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x0D, 0x00, 0x00, 0xEA .byte 0x03, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA .byte 0x01, 0x00, 0x00, 0xEA, 0x14, 0x60, 0x88, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0x58, 0x10, 0x95, 0xE5 .byte 0x04, 0x00, 0xE0, 0xE1, 0x00, 0x00, 0x01, 0xE0, 0x58, 0x00, 0x85, 0xE5, 0x07, 0x60, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x00, 0xEA, 0x07, 0x60, 0xA0, 0xE3, 0x07, 0x00, 0x56, 0xE3, 0x04, 0x00, 0x00, 0x1A - .byte 0xB4, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x11, 0x91, 0xE7, 0x31, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x06, 0x00, 0x56, 0xE3, 0x14, 0x00, 0x00, 0x1A, 0x0C, 0x00, 0x98, 0xE5 - .byte 0x04, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3 - .byte 0x1E, 0x00, 0x00, 0x0A, 0xB9, 0xF4, 0xFF, 0xEB, 0x1C, 0x10, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x02, 0x0C, 0x11, 0xE2, 0x05, 0x00, 0x00, 0x0A, 0x0C, 0x60, 0x85, 0xE2, 0x06, 0x00, 0xA0, 0xE1 - .byte 0xA7, 0xEC, 0xFF, 0xEB, 0x1C, 0x00, 0x95, 0xE5, 0x02, 0x0C, 0x10, 0xE2, 0xFA, 0xFF, 0xFF, 0x1A - .byte 0x04, 0x00, 0xA0, 0xE1, 0x14, 0x60, 0x98, 0xE5, 0xB1, 0xF4, 0xFF, 0xEB, 0x0F, 0x00, 0x00, 0xEA - .byte 0x0C, 0x00, 0x98, 0xE5, 0x04, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0x00, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x95, 0x15, 0x02, 0x0C, 0xC0, 0x13, 0x1C, 0x00, 0x85, 0x15 - .byte 0x14, 0x60, 0x88, 0x15, 0x05, 0x00, 0x00, 0x1A, 0x1C, 0x10, 0x95, 0xE5, 0x08, 0x00, 0xA0, 0xE1 - .byte 0x01, 0x2C, 0xC1, 0xE3, 0x06, 0x10, 0xA0, 0xE1, 0x1C, 0x20, 0x85, 0xE5, 0x03, 0x00, 0x00, 0xEB - .byte 0x06, 0x00, 0xA0, 0xE1, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0x3F, 0x10, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x93, 0xF4, 0xFF, 0xEB - .byte 0x00, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x04, 0x00, 0x81, 0x15, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x10, 0x80, 0x15, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x86, 0xE5, 0x00, 0x10, 0x96, 0xE5, 0x18, 0x00, 0x86, 0xE2, 0x04, 0x10, 0x86, 0xE5 - .byte 0x0C, 0x10, 0x96, 0xE5, 0x4F, 0x10, 0xC1, 0xE3, 0x0C, 0x10, 0x86, 0xE5, 0x14, 0x50, 0x86, 0xE5 - .byte 0x57, 0xEC, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x85, 0xF4, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x10, 0x90, 0xE5 - .byte 0x24, 0x10, 0x80, 0xE5, 0x30, 0x10, 0x90, 0xE5, 0x2C, 0x10, 0x80, 0xE5, 0x34, 0x10, 0x90, 0xE5 - .byte 0x28, 0x10, 0x80, 0xE5, 0x38, 0x10, 0x90, 0xE5, 0x20, 0x10, 0x80, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9, 0x14, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1 - .byte 0x08, 0x10, 0x95, 0xE5, 0x34, 0x40, 0x95, 0xE5, 0x30, 0x00, 0x91, 0xE5, 0x84, 0x21, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x52, 0xE1, 0x14, 0xD0, 0x8D, 0x22, 0x01, 0x00, 0xA0, 0x23, 0x30, 0x40, 0xBD, 0x28 - .byte 0x1E, 0xFF, 0x2F, 0x21, 0x08, 0x10, 0x8D, 0xE5, 0x2C, 0x10, 0x91, 0xE5, 0x08, 0x00, 0x8D, 0xE2 - .byte 0x02, 0x30, 0x81, 0xE0, 0x00, 0x10, 0x8D, 0xE2, 0x08, 0x20, 0xA0, 0xE3, 0x0C, 0x30, 0x8D, 0xE5 - .byte 0x26, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x14, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 + .byte 0x00, 0x00, 0x00, 0xEA +_020CFFE4: + mov r6, #0x7 +_020CFFE8: + cmp r6, #0x7 + bne _020D0004 + ldr r1, _020D00AC ; =0x02103F80 + mov r0, r8 + ldr r1, [r1, r7, lsl #0x2] + blx r1 + mov r6, r0 +_020D0004: + cmp r6, #0x6 + bne _020D0060 + ldr r0, [r8, #0xc] + ands r0, r0, #0x4 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020D00A0 + bl OS_DisableInterrupts + ldr r1, [r5, #0x1c] + mov r4, r0 + ands r0, r1, #0x200 + beq _020D0050 + add r6, r5, #0xc +_020D003C: + mov r0, r6 + bl OS_SleepThread + ldr r0, [r5, #0x1c] + ands r0, r0, #0x200 + bne _020D003C +_020D0050: + mov r0, r4 + ldr r6, [r8, #0x14] + bl OS_RestoreInterrupts + b _020D00A0 +_020D0060: + ldr r0, [r8, #0xc] + ands r0, r0, #0x4 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + ldrne r0, [r5, #0x1c] + bicne r0, r0, #0x200 + strne r0, [r5, #0x1c] + strne r6, [r8, #0x14] + bne _020D00A0 + ldr r1, [r5, #0x1c] + mov r0, r8 + bic r2, r1, #0x100 + mov r1, r6 + str r2, [r5, #0x1c] + bl FSi_ReleaseCommand +_020D00A0: + mov r0, r6 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020D00AC: .word 0x02103F80 + + arm_func_start FSi_ReleaseCommand +FSi_ReleaseCommand: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + bl OS_DisableInterrupts + ldr r1, [r6, #0x0] + mov r4, r0 + ldr r0, [r6, #0x4] + cmp r1, #0x0 + strne r0, [r1, #0x4] + cmp r0, #0x0 + strne r1, [r0, #0x0] + mov r0, #0x0 + str r0, [r6, #0x0] + ldr r1, [r6, #0x0] + add r0, r6, #0x18 + str r1, [r6, #0x4] + ldr r1, [r6, #0xc] + bic r1, r1, #0x4f + str r1, [r6, #0xc] + str r5, [r6, #0x14] + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FSi_CloseFileCommand +FSi_CloseFileCommand: ; 0x020D0114 + mov r0, #0x0 + bx lr + + arm_func_start FSi_OpenFileDirectCommand +FSi_OpenFileDirectCommand: ; 0x020D011C + ldr r1, [r0, #0x30] + str r1, [r0, #0x24] + ldr r1, [r0, #0x30] + str r1, [r0, #0x2c] + ldr r1, [r0, #0x34] + str r1, [r0, #0x28] + ldr r1, [r0, #0x38] + str r1, [r0, #0x20] + mov r0, #0x0 + bx lr + + arm_func_start FSi_OpenFileFastCommand +FSi_OpenFileFastCommand: ; 0x020D0144 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x14 + mov r5, r0 + ldr r1, [r5, #0x8] + ldr r4, [r5, #0x34] + ldr r0, [r1, #0x30] + mov r2, r4, lsl #0x3 + cmp r2, r0 + addcs sp, sp, #0x14 + movcs r0, #0x1 + ldmcsia sp!, {r4-r5,lr} + bxcs lr + str r1, [sp, #0x8] + ldr r1, [r1, #0x2c] + add r0, sp, #0x8 + add r3, r1, r2 + add r1, sp, #0x0 + mov r2, #0x8 + str r3, [sp, #0xc] + bl FSi_ReadTable +_020D0194: + .byte 0x00, 0x00, 0x50, 0xE3, 0x14, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x10, 0x9D, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x30, 0x10, 0x85, 0xE5 .byte 0x04, 0x20, 0x9D, 0xE5, 0x07, 0x10, 0xA0, 0xE3, 0x34, 0x20, 0x85, 0xE5, 0x38, 0x40, 0x85, 0xE5 .byte 0x5B, 0xFF, 0xFF, 0xEB, 0x14, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xF0, 0x4F, 0x2D, 0xE9, 0xE4, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x10, 0x94, 0xE5 - .byte 0x98, 0x00, 0x8D, 0xE2, 0x30, 0xB0, 0x84, 0xE2, 0x00, 0x10, 0x8D, 0xE5, 0xA8, 0x06, 0x00, 0xEB - .byte 0x08, 0x00, 0x94, 0xE5, 0xA0, 0x00, 0x8D, 0xE5, 0x0C, 0x00, 0x94, 0xE5, 0x20, 0x00, 0x10, 0xE2 - .byte 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3, 0xB4, 0x52, 0xD4, 0x11 - .byte 0x01, 0x48, 0xA0, 0x13, 0x28, 0x00, 0x00, 0x1A, 0xB8, 0x00, 0xDB, 0xE1, 0x20, 0x40, 0x94, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0xBA, 0x50, 0xDB, 0x11, 0x23, 0x00, 0x00, 0x1A, 0x00, 0xA0, 0xA0, 0xE3 - .byte 0x0A, 0x90, 0xA0, 0xE1, 0x01, 0x58, 0xA0, 0xE3, 0x98, 0x80, 0x8D, 0xE2, 0x03, 0x60, 0xA0, 0xE3 - .byte 0x01, 0x70, 0xA0, 0xE3, 0x08, 0x00, 0xA0, 0xE1, 0x0A, 0x10, 0xA0, 0xE1, 0xEA, 0x01, 0x00, 0xEB - .byte 0x04, 0x20, 0x8D, 0xE2, 0x00, 0x00, 0x5A, 0xE3, 0x08, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1 - .byte 0xC4, 0x90, 0x9D, 0x05, 0xC8, 0x20, 0x8D, 0xE5, 0xCC, 0x70, 0x8D, 0xE5, 0x30, 0xFF, 0xFF, 0xEB + + arm_func_start FSi_GetPathCommand +FSi_GetPathCommand: ; 0x020D01D0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xe4 + mov r4, r0 + ldr r1, [r4, #0x8] + add r0, sp, #0x98 + add r11, r4, #0x30 + str r1, [sp, #0x0] + bl FS_InitFile + ldr r0, [r4, #0x8] + str r0, [sp, #0xa0] + ldr r0, [r4, #0xc] + ands r0, r0, #0x20 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + ldrneh r5, [r4, #0x24] + movne r4, #0x10000 + bne _020D02BC + ldrh r0, [r11, #0x8] + ldr r4, [r4, #0x20] + cmp r0, #0x0 + ldrneh r5, [r11, #0xa] + bne _020D02BC + mov r10, #0x0 + mov r9, r10 + mov r5, #0x10000 + add r8, sp, #0x98 + mov r6, #0x3 + mov r7, #0x1 + mov r0, r8 + mov r1, r10 + bl FSi_SeekDirDirect + add r2, sp, #0x4 + cmp r10, #0x0 + mov r0, r8 + mov r1, r6 + ldreq r9, [sp, #0xc4] + str r2, [sp, #0xc8] + str r7, [sp, #0xcc] + bl FSi_TranslateCommand +_020D0270: .byte 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 .byte 0x03, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x9D, 0xE5, 0x04, 0x00, 0x50, 0xE1, 0xBC, 0x5B, 0xDD, 0x01 .byte 0x04, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x24, 0xFF, 0xFF, 0xEB .byte 0x00, 0x00, 0x50, 0xE3, 0xF3, 0xFF, 0xFF, 0x0A, 0x01, 0x08, 0x55, 0xE3, 0x02, 0x00, 0x00, 0x1A - .byte 0x01, 0xA0, 0x8A, 0xE2, 0x09, 0x00, 0x5A, 0xE1, 0xE1, 0xFF, 0xFF, 0x3A, 0x01, 0x08, 0x55, 0xE3 - .byte 0x00, 0x00, 0xA0, 0x03, 0xB8, 0x00, 0xCB, 0x01, 0xE4, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03 - .byte 0xF0, 0x4F, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xB8, 0x00, 0xDB, 0xE1, 0x00, 0x00, 0x50, 0xE3 - .byte 0x34, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0xFF, 0x00, 0x50, 0xE3, 0x01, 0x90, 0x81, 0x92, 0x02, 0x00, 0x00, 0x9A, 0xFF, 0x0C, 0x50, 0xE3 - .byte 0x02, 0x90, 0x81, 0x92, 0x03, 0x90, 0x81, 0x82, 0x01, 0x08, 0x54, 0xE3, 0x14, 0x00, 0x9D, 0x15 - .byte 0x02, 0x90, 0x89, 0xE2, 0x00, 0x90, 0x89, 0x10, 0x05, 0xA0, 0xA0, 0xE1, 0x00, 0x00, 0x55, 0xE3 - .byte 0x21, 0x00, 0x00, 0x0A, 0x98, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1, 0xB2, 0x01, 0x00, 0xEB - .byte 0x98, 0x80, 0x8D, 0xE2, 0x03, 0x60, 0xA0, 0xE3, 0x01, 0x70, 0xA0, 0xE3, 0xC4, 0x10, 0x9D, 0xE5 - .byte 0x08, 0x00, 0xA0, 0xE1, 0xAC, 0x01, 0x00, 0xEB, 0x04, 0x20, 0x8D, 0xE2, 0x08, 0x00, 0xA0, 0xE1 - .byte 0x06, 0x10, 0xA0, 0xE1, 0xC8, 0x20, 0x8D, 0xE5, 0xCC, 0x70, 0x8D, 0xE5, 0xF4, 0xFE, 0xFF, 0xEB + .byte 0x01, 0xA0, 0x8A, 0xE2, 0x09, 0x00, 0x5A, 0xE1, 0xE1, 0xFF, 0xFF, 0x3A +_020D02BC: + cmp r5, #0x10000 + moveq r0, #0x0 + streqh r0, [r11, #0x8] + addeq sp, sp, #0xe4 + moveq r0, #0x1 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldrh r0, [r11, #0x8] + cmp r0, #0x0 + bne _020D03B8 + ldr r0, [sp, #0x0] + mov r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0xff + addls r9, r1, #0x1 + bls _020D0308 + cmp r0, #0xff00 + addls r9, r1, #0x2 + addhi r9, r1, #0x3 +_020D0308: + cmp r4, #0x10000 + ldrne r0, [sp, #0x14] + add r9, r9, #0x2 + addne r9, r9, r0 + mov r10, r5 + cmp r5, #0x0 + beq _020D03AC + add r0, sp, #0x98 + mov r1, r5 + bl FSi_SeekDirDirect + add r8, sp, #0x98 + mov r6, #0x3 + mov r7, #0x1 + ldr r1, [sp, #0xc4] + mov r0, r8 + bl FSi_SeekDirDirect + add r2, sp, #0x4 + mov r0, r8 + mov r1, r6 + str r2, [sp, #0xc8] + str r7, [sp, #0xcc] + bl FSi_TranslateCommand +_020D0360: .byte 0x00, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 .byte 0x05, 0x00, 0x00, 0x0A, 0xB8, 0x00, 0xDD, 0xE1, 0x0A, 0x00, 0x50, 0xE1, 0x14, 0x00, 0x9D, 0x05 .byte 0x01, 0x00, 0x80, 0x02, 0x00, 0x90, 0x89, 0x00, 0x04, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xA0, 0xE1 .byte 0x06, 0x10, 0xA0, 0xE1, 0xE6, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF1, 0xFF, 0xFF, 0x0A - .byte 0xBC, 0xAB, 0xDD, 0xE1, 0x00, 0x00, 0x5A, 0xE3, 0xE3, 0xFF, 0xFF, 0x1A, 0x01, 0x00, 0x89, 0xE2 - .byte 0xB8, 0x00, 0xCB, 0xE1, 0xBA, 0x50, 0xCB, 0xE1, 0x00, 0x70, 0x9B, 0xE5, 0x00, 0x00, 0x57, 0xE3 - .byte 0xE4, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x4F, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0xB8, 0x60, 0xDB, 0xE1, 0x04, 0x00, 0x9B, 0xE5, 0x06, 0x00, 0x50, 0xE1, 0xE4, 0xD0, 0x8D, 0x32 - .byte 0x01, 0x00, 0xA0, 0x33, 0xF0, 0x4F, 0xBD, 0x38, 0x1E, 0xFF, 0x2F, 0x31, 0x00, 0x00, 0x9D, 0xE5 - .byte 0x00, 0x90, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xFF, 0x00, 0x50, 0xE3, 0x01, 0x80, 0xA0, 0x93 - .byte 0x02, 0x00, 0x00, 0x9A, 0xFF, 0x0C, 0x50, 0xE3, 0x02, 0x80, 0xA0, 0x93, 0x03, 0x80, 0xA0, 0x83 - .byte 0x00, 0x00, 0x9D, 0xE5, 0x07, 0x10, 0xA0, 0xE1, 0x08, 0x20, 0xA0, 0xE1, 0xEF, 0xF7, 0xFF, 0xEB - .byte 0x08, 0x10, 0x89, 0xE0, 0x60, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0x87, 0xE0, 0x02, 0x20, 0xA0, 0xE3 - .byte 0xEA, 0xF7, 0xFF, 0xEB, 0x98, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1, 0x6E, 0x01, 0x00, 0xEB - .byte 0x01, 0x08, 0x54, 0xE3, 0x1E, 0x00, 0x00, 0x0A, 0x04, 0x30, 0x8D, 0xE2, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x98, 0x00, 0x8D, 0xE2, 0x03, 0x10, 0xA0, 0xE3, 0xC8, 0x30, 0x8D, 0xE5, 0xCC, 0x20, 0x8D, 0xE5 - .byte 0xB3, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x1A, 0x98, 0x90, 0x8D, 0xE2 + .byte 0xBC, 0xAB, 0xDD, 0xE1, 0x00, 0x00, 0x5A, 0xE3, 0xE3, 0xFF, 0xFF, 0x1A +_020D03AC: + add r0, r9, #0x1 + strh r0, [r11, #0x8] + strh r5, [r11, #0xa] +_020D03B8: + ldr r7, [r11, #0x0] + cmp r7, #0x0 + addeq sp, sp, #0xe4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldrh r6, [r11, #0x8] + ldr r0, [r11, #0x4] + cmp r0, r6 + addcc sp, sp, #0xe4 + movcc r0, #0x1 + ldmccia sp!, {r4-r11,lr} + bxcc lr + ldr r0, [sp, #0x0] + mov r9, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0xff + movls r8, #0x1 + bls _020D0410 + cmp r0, #0xff00 + movls r8, #0x2 + movhi r8, #0x3 +_020D0410: + ldr r0, [sp, #0x0] + mov r1, r7 + mov r2, r8 + bl MI_CpuCopy8 + add r1, r9, r8 + ldr r0, _020D058C ; =0x0210682C + add r1, r7, r1 + mov r2, #0x2 + bl MI_CpuCopy8 + add r0, sp, #0x98 + mov r1, r5 + bl FSi_SeekDirDirect + cmp r4, #0x10000 + beq _020D04C4 + add r3, sp, #0x4 + mov r2, #0x0 + add r0, sp, #0x98 + mov r1, #0x3 + str r3, [sp, #0xc8] + str r2, [sp, #0xcc] + bl FSi_TranslateCommand +_020D0464: + .byte 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x1A, 0x98, 0x90, 0x8D, 0xE2 .byte 0x03, 0x80, 0xA0, 0xE3, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A .byte 0x08, 0x00, 0x9D, 0xE5, 0x04, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A, 0x09, 0x00, 0xA0, 0xE1 .byte 0x08, 0x10, 0xA0, 0xE1, 0xA6, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF4, 0xFF, 0xFF, 0x0A .byte 0x14, 0x00, 0x9D, 0xE5, 0x06, 0x10, 0x87, 0xE0, 0x01, 0x40, 0x80, 0xE2, 0x18, 0x00, 0x8D, 0xE2 .byte 0x04, 0x20, 0xA0, 0xE1, 0x04, 0x10, 0x41, 0xE0, 0xC8, 0xF7, 0xFF, 0xEB, 0x04, 0x60, 0x46, 0xE0 - .byte 0x03, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x87, 0xE0, 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x10, 0x40, 0xE5 - .byte 0x01, 0x60, 0x46, 0xE2, 0x00, 0x00, 0x55, 0xE3, 0x27, 0x00, 0x00, 0x0A, 0x98, 0xA0, 0x8D, 0xE2 - .byte 0x04, 0xB0, 0x8D, 0xE2, 0x03, 0x40, 0xA0, 0xE3, 0x00, 0x90, 0xA0, 0xE3, 0x2F, 0x80, 0xA0, 0xE3 - .byte 0xC4, 0x10, 0x9D, 0xE5, 0x0A, 0x00, 0xA0, 0xE1, 0x3F, 0x01, 0x00, 0xEB, 0x06, 0x20, 0x87, 0xE0 - .byte 0x0A, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0xC8, 0xB0, 0x8D, 0xE5, 0xCC, 0x90, 0x8D, 0xE5 - .byte 0x01, 0x80, 0x42, 0xE5, 0x01, 0x60, 0x46, 0xE2, 0x85, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0xEA +_020D04C4: + add r0, r7, r6 + mov r1, #0x0 + strb r1, [r0, #-0x1] + sub r6, r6, #0x1 + cmp r5, #0x0 + beq _020D057C + add r10, sp, #0x98 + add r11, sp, #0x4 + mov r4, #0x3 + mov r9, #0x0 + mov r8, #0x2f + ldr r1, [sp, #0xc4] + mov r0, r10 + bl FSi_SeekDirDirect + add r2, r7, r6 + mov r0, r10 + mov r1, r4 + str r11, [sp, #0xc8] + str r9, [sp, #0xcc] + strb r8, [r2, #-0x1] + sub r6, r6, #0x1 + bl FSi_TranslateCommand +_020D051C: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0x12, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A .byte 0xB8, 0x00, 0xDD, 0xE1, 0x05, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0x1A, 0x14, 0x50, 0x9D, 0xE5 .byte 0x06, 0x10, 0x87, 0xE0, 0x18, 0x00, 0x8D, 0xE2, 0x05, 0x20, 0xA0, 0xE1, 0x05, 0x10, 0x41, 0xE0 .byte 0xA2, 0xF7, 0xFF, 0xEB, 0x05, 0x60, 0x46, 0xE0, 0x04, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0xA0, 0xE1 .byte 0x04, 0x10, 0xA0, 0xE1, 0x72, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xEC, 0xFF, 0xFF, 0x0A - .byte 0xBC, 0x5B, 0xDD, 0xE1, 0x00, 0x00, 0x55, 0xE3, 0xDC, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xE4, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x2C, 0x68, 0x10, 0x02 - .byte 0xF0, 0x4F, 0x2D, 0xE9, 0x9C, 0xD0, 0x4D, 0xE2, 0x00, 0xA0, 0xA0, 0xE1, 0x40, 0x20, 0x9A, 0xE5 - .byte 0x3C, 0x90, 0x9A, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0x60, 0xFE, 0xFF, 0xEB - .byte 0x00, 0x10, 0xD9, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x70, 0x00, 0x00, 0x0A, 0x02, 0x00, 0xA0, 0xE3 - .byte 0x1C, 0xB0, 0x8D, 0xE2, 0x03, 0x40, 0xA0, 0xE3, 0x01, 0x50, 0xA0, 0xE3, 0x00, 0x60, 0xA0, 0xE3 - .byte 0x04, 0x00, 0x8D, 0xE5, 0x06, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x70, 0x87, 0xE2 - .byte 0x07, 0x80, 0xD9, 0xE7, 0x06, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x58, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0x2F, 0x00, 0x58, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x5C, 0x00, 0x58, 0xE3, 0x05, 0x00, 0xA0, 0x11 - .byte 0x00, 0x00, 0x50, 0xE3, 0xF4, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x58, 0xE3, 0x02, 0x00, 0x00, 0x1A - .byte 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x0A, 0x05, 0x80, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x57, 0xE3, 0x9C, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03, 0xF0, 0x4F, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x2E, 0x00, 0x51, 0xE3, 0x13, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x57, 0xE3 - .byte 0x01, 0x90, 0x89, 0x02, 0x46, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xD9, 0xE5, 0x02, 0x00, 0x57, 0xE3 - .byte 0x05, 0x10, 0xA0, 0x01, 0x06, 0x10, 0xA0, 0x11, 0x2E, 0x00, 0x50, 0xE3, 0x05, 0x00, 0xA0, 0x01 - .byte 0x06, 0x00, 0xA0, 0x11, 0x00, 0x00, 0x11, 0xE0, 0x07, 0x00, 0x00, 0x0A, 0xB4, 0x02, 0xDA, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x2C, 0x10, 0x9A, 0xE5, 0x0A, 0x00, 0xA0, 0xE1 - .byte 0xDD, 0x00, 0x00, 0xEB, 0x02, 0x90, 0x89, 0xE2, 0x35, 0x00, 0x00, 0xEA, 0x7F, 0x00, 0x57, 0xE3 - .byte 0x9C, 0xD0, 0x8D, 0xC2, 0x01, 0x00, 0xA0, 0xC3, 0xF0, 0x4F, 0xBD, 0xC8, 0x1E, 0xFF, 0x2F, 0xC1 - .byte 0x08, 0x00, 0x8D, 0xE2, 0x30, 0x00, 0x8A, 0xE5, 0x34, 0x60, 0x8A, 0xE5, 0x0A, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x1E, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x9C, 0xD0, 0x8D, 0x12 + .byte 0xBC, 0x5B, 0xDD, 0xE1, 0x00, 0x00, 0x55, 0xE3, 0xDC, 0xFF, 0xFF, 0x1A +_020D057C: + mov r0, #0x0 + add sp, sp, #0xe4 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020D058C: .word 0x0210682C + + arm_func_start FSi_FindPathCommand +FSi_FindPathCommand: ; 0x020D0590 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x9c + mov r10, r0 + ldr r2, [r10, #0x40] + ldr r9, [r10, #0x3c] + mov r1, #0x2 + str r2, [sp, #0x0] + bl FSi_TranslateCommand + ldrb r1, [r9, #0x0] + cmp r1, #0x0 + beq _020D0780 + mov r0, #0x2 + add r11, sp, #0x1c + mov r4, #0x3 + mov r5, #0x1 + mov r6, #0x0 + str r0, [sp, #0x4] +_020D05D4: + mov r7, r6 + b _020D05E0 +_020D05DC: + add r7, r7, #0x1 +_020D05E0: + ldrb r8, [r9, r7] + mov r0, r6 + cmp r8, #0x0 + beq _020D0600 + cmp r8, #0x2f + beq _020D0600 + cmp r8, #0x5c + movne r0, r5 +_020D0600: + cmp r0, #0x0 + bne _020D05DC + cmp r8, #0x0 + bne _020D061C + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _020D0620 +_020D061C: + mov r8, r5 +_020D0620: + cmp r7, #0x0 + addeq sp, sp, #0x9c + moveq r0, #0x1 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + cmp r1, #0x2e + bne _020D068C + cmp r7, #0x1 + addeq r9, r9, #0x1 + beq _020D0764 + ldrb r0, [r9, #0x1] + cmp r7, #0x2 + moveq r1, r5 + movne r1, r6 + cmp r0, #0x2e + moveq r0, r5 + movne r0, r6 + ands r0, r1, r0 + beq _020D068C + ldrh r0, [r10, #0x24] + cmp r0, #0x0 + beq _020D0684 + ldr r1, [r10, #0x2c] + mov r0, r10 + bl FSi_SeekDirDirect +_020D0684: + add r9, r9, #0x2 + b _020D0764 +_020D068C: + cmp r7, #0x7f + addgt sp, sp, #0x9c + movgt r0, #0x1 + ldmgtia sp!, {r4-r11,lr} + bxgt lr + add r0, sp, #0x8 + str r0, [r10, #0x30] + str r6, [r10, #0x34] + mov r0, r10 + mov r1, r4 + bl FSi_TranslateCommand +_020D06B8: + .byte 0x00, 0x00, 0x50, 0xE3, 0x9C, 0xD0, 0x8D, 0x12 .byte 0x01, 0x00, 0xA0, 0x13, 0xF0, 0x4F, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x14, 0x00, 0x9D, 0xE5 .byte 0x00, 0x00, 0x58, 0xE1, 0xF4, 0xFF, 0xFF, 0x1A, 0x18, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x57, 0xE1 .byte 0xF1, 0xFF, 0xFF, 0x1A, 0x09, 0x00, 0xA0, 0xE1, 0x0B, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1 @@ -1745,14 +7610,44 @@ _020CD33C: .byte 0x9C, 0xD0, 0x8D, 0x12, 0x01, 0x00, 0xA0, 0x13, 0xF0, 0x4F, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 .byte 0x44, 0x30, 0x9A, 0xE5, 0x08, 0x20, 0x9D, 0xE5, 0x0C, 0x10, 0x9D, 0xE5, 0x9C, 0xD0, 0x8D, 0xE2 .byte 0x00, 0x20, 0x83, 0xE5, 0x04, 0x10, 0x83, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xD9, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0xA0, 0x11 - .byte 0x06, 0x00, 0xA0, 0x01, 0x00, 0x10, 0xF9, 0xE7, 0x00, 0x00, 0x51, 0xE3, 0x94, 0xFF, 0xFF, 0x1A - .byte 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x20, 0x00, 0x8A, 0x12 - .byte 0x44, 0x30, 0x9A, 0x15, 0x07, 0x00, 0x90, 0x18, 0x07, 0x00, 0x83, 0x18, 0x00, 0x00, 0xA0, 0x13 - .byte 0x9C, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x0C, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x30, 0x40, 0x95, 0xE5, 0x08, 0x10, 0x95, 0xE5 - .byte 0x04, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0x8D, 0xE5, 0x28, 0x30, 0x95, 0xE5, 0x00, 0x10, 0x8D, 0xE2 - .byte 0x01, 0x20, 0xA0, 0xE3, 0x08, 0x30, 0x8D, 0xE5, 0x94, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0xE1 +_020D0764: + ldrb r0, [r9, #0x0] + cmp r0, #0x0 + movne r0, r5 + moveq r0, r6 + ldrb r1, [r9, r0]! + cmp r1, #0x0 + bne _020D05D4 +_020D0780: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + moveq r0, #0x1 + addne r0, r10, #0x20 + ldrne r3, [r10, #0x44] + ldmneia r0, {r0-r2} + stmneia r3, {r0-r2} + movne r0, #0x0 + add sp, sp, #0x9c + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FSi_ReadDirCommand +FSi_ReadDirCommand: ; 0x020D07AC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0xc + mov r5, r0 + ldr r4, [r5, #0x30] + ldr r1, [r5, #0x8] + add r0, sp, #0x4 + str r1, [sp, #0x4] + ldr r3, [r5, #0x28] + add r1, sp, #0x0 + mov r2, #0x1 + str r3, [sp, #0x8] + bl FSi_ReadTable +_020D07DC: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0x0C, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x10, 0xDD, 0xE5 .byte 0x7F, 0x20, 0x01, 0xE2, 0xC1, 0x13, 0xA0, 0xE1, 0x10, 0x20, 0x84, 0xE5, 0x01, 0x10, 0x01, 0xE2 .byte 0x0C, 0x10, 0x84, 0xE5, 0x10, 0x20, 0x94, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x0C, 0xD0, 0x8D, 0x02 @@ -1769,87 +7664,375 @@ _020CD33C: .byte 0x08, 0x20, 0x84, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0x08, 0x10, 0x95, 0xE5, 0x00, 0x10, 0x84, 0xE5 .byte 0xB6, 0x12, 0xD5, 0xE1, 0x04, 0x10, 0x84, 0xE5, 0xB6, 0x12, 0xD5, 0xE1, 0x01, 0x10, 0x81, 0xE2 .byte 0xB6, 0x12, 0xC5, 0xE1, 0x08, 0x10, 0x9D, 0xE5, 0x28, 0x10, 0x85, 0xE5, 0x0C, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0x0F, 0x00, 0x00, 0x70, 0x40, 0x2D, 0xE9 - .byte 0x10, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1, 0x08, 0x50, 0x96, 0xE5, 0x30, 0x40, 0x86, 0xE2 - .byte 0x08, 0x50, 0x8D, 0xE5, 0xB4, 0x10, 0xD4, 0xE1, 0x34, 0x20, 0x95, 0xE5, 0x08, 0x00, 0x8D, 0xE2 - .byte 0x81, 0x31, 0x82, 0xE0, 0x00, 0x10, 0x8D, 0xE2, 0x08, 0x20, 0xA0, 0xE3, 0x0C, 0x30, 0x8D, 0xE5 - .byte 0x42, 0x00, 0x00, 0xEB, 0x00, 0x30, 0xB0, 0xE1, 0x12, 0x00, 0x00, 0x1A, 0x20, 0xC0, 0x86, 0xE2 - .byte 0x07, 0x00, 0x94, 0xE8, 0x07, 0x00, 0x8C, 0xE8, 0xB6, 0x00, 0xD4, 0xE1, 0x00, 0x00, 0x50, 0xE3 - .byte 0x08, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A - .byte 0xB4, 0x00, 0xDD, 0xE1, 0xB6, 0x02, 0xC6, 0xE1, 0x34, 0x10, 0x95, 0xE5, 0x00, 0x00, 0x9D, 0xE5 - .byte 0x00, 0x00, 0x81, 0xE0, 0x28, 0x00, 0x86, 0xE5, 0xB6, 0x10, 0xDD, 0xE1, 0x14, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x01, 0xE0, 0x2C, 0x00, 0x86, 0xE5, 0x03, 0x00, 0xA0, 0xE1, 0x10, 0xD0, 0x8D, 0xE2 - .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x2C, 0x20, 0x90, 0xE5, 0x38, 0x30, 0x90, 0xE5, 0x08, 0xE0, 0x90, 0xE5 - .byte 0x30, 0x10, 0x90, 0xE5, 0x03, 0xC0, 0x82, 0xE0, 0x2C, 0xC0, 0x80, 0xE5, 0x4C, 0xC0, 0x9E, 0xE5 - .byte 0x0E, 0x00, 0xA0, 0xE1, 0x3C, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x2C, 0x20, 0x90, 0xE5 - .byte 0x38, 0x30, 0x90, 0xE5, 0x08, 0xE0, 0x90, 0xE5, 0x30, 0x10, 0x90, 0xE5, 0x03, 0xC0, 0x82, 0xE0 - .byte 0x2C, 0xC0, 0x80, 0xE5, 0x48, 0xC0, 0x9E, 0xE5, 0x0E, 0x00, 0xA0, 0xE1, 0x3C, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x30, 0x90, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x04, 0x30, 0x83, 0xE3, 0x0C, 0x30, 0x80, 0xE5, 0x08, 0x30, 0x90, 0xE5 - .byte 0x14, 0xC0, 0x9F, 0xE5, 0x30, 0x30, 0x80, 0xE5, 0x38, 0x20, 0x80, 0xE5, 0xB6, 0x23, 0xC0, 0xE1 - .byte 0xB4, 0x13, 0xC0, 0xE1, 0x02, 0x10, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x34, 0xFF, 0x0C, 0x02 - .byte 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x70, 0xA0, 0xE1, 0x00, 0x50, 0x97, 0xE5, 0x02, 0x60, 0xA0, 0xE1 - .byte 0x1C, 0x20, 0x95, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x02, 0x2C, 0x82, 0xE3, 0x1C, 0x20, 0x85, 0xE5 - .byte 0x04, 0x20, 0x97, 0xE5, 0x50, 0x40, 0x95, 0xE5, 0x06, 0x30, 0xA0, 0xE1, 0x34, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A - .byte 0x06, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x12, 0x00, 0x00, 0xEA, 0x1C, 0x10, 0x95, 0xE5 - .byte 0x02, 0x1C, 0xC1, 0xE3, 0x1C, 0x10, 0x85, 0xE5, 0x0E, 0x00, 0x00, 0xEA, 0x1F, 0xF2, 0xFF, 0xEB - .byte 0x1C, 0x10, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x0C, 0x11, 0xE2, 0x05, 0x00, 0x00, 0x0A - .byte 0x0C, 0x80, 0x85, 0xE2, 0x08, 0x00, 0xA0, 0xE1, 0x0D, 0xEA, 0xFF, 0xEB, 0x1C, 0x00, 0x95, 0xE5 - .byte 0x02, 0x0C, 0x10, 0xE2, 0xFA, 0xFF, 0xFF, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x18, 0xF2, 0xFF, 0xEB - .byte 0x24, 0x00, 0x95, 0xE5, 0x14, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x97, 0xE5, 0x06, 0x10, 0x81, 0xE0 - .byte 0x04, 0x10, 0x87, 0xE5, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x00, 0x52, 0xE3, 0x00, 0xE0, 0xA0, 0xE3, 0x0F, 0x00, 0x00, 0x9A - .byte 0x0E, 0xC0, 0xD0, 0xE7, 0x0E, 0x30, 0xD1, 0xE7, 0x41, 0xC0, 0x4C, 0xE2, 0x19, 0x00, 0x5C, 0xE3 - .byte 0x41, 0x30, 0x43, 0xE2, 0x20, 0xC0, 0x8C, 0x92, 0x19, 0x00, 0x53, 0xE3, 0x20, 0x30, 0x83, 0x92 - .byte 0x03, 0x00, 0x5C, 0xE1, 0x04, 0xD0, 0x8D, 0x12, 0x03, 0x00, 0x4C, 0x10, 0x00, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0xE0, 0x8E, 0xE2, 0x02, 0x00, 0x5E, 0xE1, 0xEF, 0xFF, 0xFF, 0x3A - .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x1C, 0x00, 0x94, 0xE5, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x01, 0x0C, 0x10, 0xE2, 0x0C, 0x00, 0x00, 0x0A, 0x1C, 0x20, 0x94, 0xE5, 0x24, 0x00, 0x94, 0xE5 - .byte 0x01, 0x2C, 0xC2, 0xE3, 0x1C, 0x20, 0x84, 0xE5, 0x50, 0xFD, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x40, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x13, 0x02, 0x00, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x50, 0x94, 0xE5 - .byte 0xDE, 0xF1, 0xFF, 0xEB, 0x14, 0x60, 0x85, 0xE5, 0x1C, 0x10, 0x94, 0xE5, 0x00, 0x50, 0xA0, 0xE1 - .byte 0x02, 0x1C, 0xC1, 0xE3, 0x0C, 0x00, 0x84, 0xE2, 0x1C, 0x10, 0x84, 0xE5, 0xAC, 0xE9, 0xFF, 0xEB - .byte 0x05, 0x00, 0xA0, 0xE1, 0xDA, 0xF1, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x52, 0xE3, 0x00, 0x10, 0xA0, 0x03, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE3 - .byte 0x00, 0x20, 0xA0, 0x03, 0x54, 0x10, 0x80, 0xE5, 0x58, 0x20, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x60, 0xA0, 0xE3 - .byte 0xC6, 0xF1, 0xFF, 0xEB, 0x1C, 0x10, 0x94, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x08, 0x00, 0x11, 0xE2 - .byte 0x01, 0x00, 0xA0, 0x13, 0x06, 0x00, 0xA0, 0x01, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x70, 0xA0, 0x03 - .byte 0x00, 0x70, 0xA0, 0x13, 0x00, 0x00, 0x57, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x1C, 0x10, 0x94, 0xE5 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xC1, 0xE3, 0x1C, 0x10, 0x84, 0xE5, 0x11, 0x02, 0x00, 0xEB - .byte 0x00, 0x60, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0xB9, 0xF1, 0xFF, 0xEB, 0x00, 0x00, 0x56, 0xE3 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0x0F, 0x00, 0x00 + + arm_func_start FSi_SeekDirCommand +FSi_SeekDirCommand: ; 0x020D08EC + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x10 + mov r6, r0 + ldr r5, [r6, #0x8] + add r4, r6, #0x30 + str r5, [sp, #0x8] + ldrh r1, [r4, #0x4] + ldr r2, [r5, #0x34] + add r0, sp, #0x8 + add r3, r2, r1, lsl #0x3 + add r1, sp, #0x0 + mov r2, #0x8 + str r3, [sp, #0xc] + bl FSi_ReadTable + movs r3, r0 + bne _020D0978 + add r12, r6, #0x20 + ldmia r4, {r0-r2} + stmia r12, {r0-r2} + ldrh r0, [r4, #0x6] + cmp r0, #0x0 + bne _020D0968 + ldr r0, [r4, #0x8] + cmp r0, #0x0 + bne _020D0968 + ldrh r0, [sp, #0x4] + strh r0, [r6, #0x26] + ldr r1, [r5, #0x34] + ldr r0, [sp, #0x0] + add r0, r1, r0 + str r0, [r6, #0x28] +_020D0968: + ldrh r1, [sp, #0x6] + ldr r0, _020D0988 ; =0x00000FFF + and r0, r1, r0 + str r0, [r6, #0x2c] +_020D0978: + mov r0, r3 + add sp, sp, #0x10 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020D0988: .word 0x00000FFF + + arm_func_start FSi_WriteFileCommand +FSi_WriteFileCommand: ; 0x020D098C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x2c] + ldr r3, [r0, #0x38] + ldr lr, [r0, #0x8] + ldr r1, [r0, #0x30] + add r12, r2, r3 + str r12, [r0, #0x2c] + ldr r12, [lr, #0x4c] + mov r0, lr + blx r12 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FSi_ReadFileCommand +FSi_ReadFileCommand: ; 0x020D09C4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x2c] + ldr r3, [r0, #0x38] + ldr lr, [r0, #0x8] + ldr r1, [r0, #0x30] + add r12, r2, r3 + str r12, [r0, #0x2c] + ldr r12, [lr, #0x48] + mov r0, lr + blx r12 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FSi_SeekDirDirect +FSi_SeekDirDirect: ; 0x020D09FC + ldr r3, [r0, #0xc] + mov r2, #0x0 + orr r3, r3, #0x4 + str r3, [r0, #0xc] + ldr r3, [r0, #0x8] + ldr ip, _020D0A2C ; =FSi_TranslateCommand + str r3, [r0, #0x30] + str r2, [r0, #0x38] + strh r2, [r0, #0x36] + strh r1, [r0, #0x34] + mov r1, #0x2 + bx r12 + .balign 4 +_020D0A2C: .word FSi_TranslateCommand + + arm_func_start FSi_ReadTable +FSi_ReadTable: + stmdb sp!, {r4-r8,lr} + mov r7, r0 + ldr r5, [r7, #0x0] + mov r6, r2 + ldr r2, [r5, #0x1c] + mov r0, r5 + orr r2, r2, #0x200 + str r2, [r5, #0x1c] + ldr r2, [r7, #0x4] + ldr r4, [r5, #0x50] + mov r3, r6 + blx r4 + cmp r0, #0x0 + beq _020D0A7C + cmp r0, #0x1 + beq _020D0A7C + cmp r0, #0x6 + beq _020D0A8C + b _020D0AC8 +_020D0A7C: + ldr r1, [r5, #0x1c] + bic r1, r1, #0x200 + str r1, [r5, #0x1c] + b _020D0AC8 +_020D0A8C: + bl OS_DisableInterrupts + ldr r1, [r5, #0x1c] + mov r4, r0 + ands r0, r1, #0x200 + beq _020D0AB8 + add r8, r5, #0xc +_020D0AA4: + mov r0, r8 + bl OS_SleepThread + ldr r0, [r5, #0x1c] + ands r0, r0, #0x200 + bne _020D0AA4 +_020D0AB8: + mov r0, r4 + bl OS_RestoreInterrupts + ldr r0, [r5, #0x24] + ldr r0, [r0, #0x14] +_020D0AC8: + ldr r1, [r7, #0x4] + add r1, r1, r6 + str r1, [r7, #0x4] + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FSi_StrNICmp +FSi_StrNICmp: ; 0x020D0ADC + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r2, #0x0 + mov lr, #0x0 + bls _020D0B30 +_020D0AF0: + ldrb r12, [r0, lr] + ldrb r3, [r1, lr] + sub r12, r12, #0x41 + cmp r12, #0x19 + sub r3, r3, #0x41 + addls r12, r12, #0x20 + cmp r3, #0x19 + addls r3, r3, #0x20 + cmp r12, r3 + addne sp, sp, #0x4 + subne r0, r12, r3 + ldmneia sp!, {lr} + bxne lr + add lr, lr, #0x1 + cmp lr, r2 + blo _020D0AF0 +_020D0B30: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FS_NotifyArchiveAsyncEnd +FS_NotifyArchiveAsyncEnd: ; 0x020D0B40 + stmdb sp!, {r4-r6,lr} + mov r4, r0 + ldr r0, [r4, #0x1c] + mov r6, r1 + ands r0, r0, #0x100 + beq _020D0B8C + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0x24] + bic r2, r2, #0x100 + str r2, [r4, #0x1c] + bl FSi_ReleaseCommand + mov r0, r4 + bl FSi_NextCommand +_020D0B74: + .byte 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x13, 0x02, 0x00, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020D0B8C: + ldr r5, [r4, #0x24] + bl OS_DisableInterrupts + str r6, [r5, #0x14] + ldr r1, [r4, #0x1c] + mov r5, r0 + bic r1, r1, #0x200 + add r0, r4, #0xc + str r1, [r4, #0x1c] + bl OS_WakeupThread + mov r0, r5 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FS_SetArchiveProc +FS_SetArchiveProc: ; 0x020D0BC0 + cmp r2, #0x0 + moveq r1, #0x0 + beq _020D0BD4 + cmp r1, #0x0 + moveq r2, #0x0 +_020D0BD4: + str r1, [r0, #0x54] + str r2, [r0, #0x58] + bx lr + + arm_func_start FS_ResumeArchive +FS_ResumeArchive: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r4, r0 + mov r6, #0x0 + bl OS_DisableInterrupts + ldr r1, [r4, #0x1c] + mov r5, r0 + ands r0, r1, #0x8 + movne r0, #0x1 + moveq r0, r6 + cmp r0, #0x0 + moveq r7, #0x1 + movne r7, #0x0 + cmp r7, #0x0 + bne _020D0C34 + ldr r1, [r4, #0x1c] + mov r0, r4 + bic r1, r1, #0x8 + str r1, [r4, #0x1c] + bl FSi_NextCommand + mov r6, r0 +_020D0C34: + mov r0, r5 + bl OS_RestoreInterrupts +_020D0C3C: + .byte 0x00, 0x00, 0x56, 0xE3 .byte 0x01, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0xE1, 0x01, 0x00, 0xEB, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1, 0xA8, 0xF1, 0xFF, 0xEB, 0x1C, 0x10, 0x96, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x00, 0x11, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x50, 0xA0, 0x03, 0x00, 0x50, 0xA0, 0x13, 0x00, 0x00, 0x55, 0xE3 - .byte 0x0F, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x96, 0xE5, 0x10, 0x00, 0x10, 0xE2, 0x09, 0x00, 0x00, 0x0A - .byte 0x1C, 0x00, 0x96, 0xE5, 0x40, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0x86, 0xE5, 0x14, 0x70, 0x86, 0xE2 - .byte 0x07, 0x00, 0xA0, 0xE1, 0x8A, 0xE9, 0xFF, 0xEB, 0x1C, 0x00, 0x96, 0xE5, 0x40, 0x00, 0x10, 0xE2 - .byte 0xFA, 0xFF, 0xFF, 0x1A, 0x02, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x96, 0xE5, 0x08, 0x00, 0x80, 0xE3 - .byte 0x1C, 0x00, 0x86, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x91, 0xF1, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x1C, 0x00, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE3 - .byte 0x02, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x04, 0x00, 0xA0, 0x01, 0x00, 0x00, 0x50, 0xE3 - .byte 0x17, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1, 0xCF, 0xFF, 0xFF, 0xEB, 0x1C, 0x10, 0x95, 0xE5 - .byte 0x04, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3 - .byte 0x0B, 0x00, 0x00, 0x0A, 0x1C, 0x20, 0x95, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x20, 0xC2, 0xE3 - .byte 0x1C, 0x20, 0x85, 0xE5, 0x44, 0x40, 0x95, 0xE5, 0x44, 0x10, 0x85, 0xE5, 0x3C, 0x10, 0x95, 0xE5 - .byte 0x2C, 0x10, 0x85, 0xE5, 0x40, 0x10, 0x95, 0xE5, 0x34, 0x10, 0x85, 0xE5, 0x48, 0x10, 0x95, 0xE5 - .byte 0x50, 0x10, 0x85, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x9A, 0xFF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9, 0x4C, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1 - .byte 0x30, 0x30, 0x97, 0xE5, 0x38, 0x00, 0x97, 0xE5, 0x01, 0x60, 0xA0, 0xE1, 0x00, 0x00, 0x83, 0xE0 - .byte 0x20, 0x00, 0x80, 0xE2, 0x1F, 0x00, 0x80, 0xE2, 0x1F, 0x50, 0xC0, 0xE3, 0x02, 0x00, 0x55, 0xE1 - .byte 0x39, 0x00, 0x00, 0x8A, 0x1F, 0x10, 0x86, 0xE2, 0x04, 0x00, 0x8D, 0xE2, 0x1F, 0x40, 0xC1, 0xE3 - .byte 0xB3, 0x03, 0x00, 0xEB, 0x2C, 0x20, 0x97, 0xE5, 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x8D, 0xE5 - .byte 0x30, 0x30, 0x97, 0xE5, 0x04, 0x00, 0x8D, 0xE2, 0x07, 0x10, 0xA0, 0xE1, 0x03, 0x30, 0x82, 0xE0 - .byte 0x0A, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x30, 0x20, 0x97, 0xE5 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FS_SuspendArchive +FS_SuspendArchive: ; 0x020D0C5C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + bl OS_DisableInterrupts + ldr r1, [r6, #0x1c] + mov r4, r0 + ands r0, r1, #0x8 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + moveq r5, #0x1 + movne r5, #0x0 + cmp r5, #0x0 + beq _020D0CD4 + ldr r0, [r6, #0x1c] + ands r0, r0, #0x10 + beq _020D0CC8 + ldr r0, [r6, #0x1c] + orr r0, r0, #0x40 + str r0, [r6, #0x1c] + add r7, r6, #0x14 +_020D0CB0: + mov r0, r7 + bl OS_SleepThread + ldr r0, [r6, #0x1c] + ands r0, r0, #0x40 + bne _020D0CB0 + b _020D0CD4 +_020D0CC8: + ldr r0, [r6, #0x1c] + orr r0, r0, #0x8 + str r0, [r6, #0x1c] +_020D0CD4: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, r5 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FS_UnloadArchiveTables +FS_UnloadArchiveTables: ; 0x020D0CEC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r0, [r5, #0x1c] + mov r4, #0x0 + ands r0, r0, #0x2 + movne r0, #0x1 + moveq r0, r4 + cmp r0, #0x0 + beq _020D0D74 + mov r0, r5 + bl FS_SuspendArchive + ldr r1, [r5, #0x1c] + ands r1, r1, #0x4 + movne r1, #0x1 + moveq r1, #0x0 + cmp r1, #0x0 + beq _020D0D64 + ldr r2, [r5, #0x1c] + mov r1, #0x0 + bic r2, r2, #0x4 + str r2, [r5, #0x1c] + ldr r4, [r5, #0x44] + str r1, [r5, #0x44] + ldr r1, [r5, #0x3c] + str r1, [r5, #0x2c] + ldr r1, [r5, #0x40] + str r1, [r5, #0x34] + ldr r1, [r5, #0x48] + str r1, [r5, #0x50] +_020D0D64: + cmp r0, #0x0 + beq _020D0D74 + mov r0, r5 + bl FS_ResumeArchive +_020D0D74: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020D0D84 +FUN_020D0D84: ; 0x020D0D84 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4c + mov r7, r0 + ldr r3, [r7, #0x30] + ldr r0, [r7, #0x38] + mov r6, r1 + add r0, r3, r0 + add r0, r0, #0x20 + add r0, r0, #0x1f + bic r5, r0, #0x1f + cmp r5, r2 + bhi _020D0E9C + add r1, r6, #0x1f + add r0, sp, #0x4 + bic r4, r1, #0x1f + bl FS_InitFile + ldr r2, [r7, #0x2c] + mvn r0, #0x0 + str r0, [sp, #0x0] + ldr r3, [r7, #0x30] + add r0, sp, #0x4 + mov r1, r7 + add r3, r2, r3 + bl FS_OpenFileDirect +_020D0DE4: + .byte 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x30, 0x20, 0x97, 0xE5 .byte 0x04, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x83, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 .byte 0x03, 0x00, 0x00, 0xAA, 0x30, 0x20, 0x97, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3 .byte 0x4D, 0xF5, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE2, 0xB7, 0x02, 0x00, 0xEB, 0x2C, 0x40, 0x87, 0xE5 @@ -1860,40 +8043,162 @@ _020CD33C: .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0xAA, 0x38, 0x20, 0x97, 0xE5, 0x04, 0x00, 0xA0, 0xE1 .byte 0x00, 0x10, 0xA0, 0xE3, 0x34, 0xF5, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE2, 0x9E, 0x02, 0x00, 0xEB .byte 0x34, 0x40, 0x87, 0xE5, 0x20, 0x00, 0x9F, 0xE5, 0x44, 0x60, 0x87, 0xE5, 0x50, 0x00, 0x87, 0xE5 - .byte 0x1C, 0x00, 0x97, 0xE5, 0x04, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0x87, 0xE5, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x4C, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x16, 0x0D, 0x02 - .byte 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x14, 0xF1, 0xFF, 0xEB, 0x1C, 0x10, 0x95, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x00, 0x11, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0x00, 0x00, 0x50, 0xE3, 0x22, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1, 0x1C, 0x10, 0x95, 0xE5 - .byte 0x5D, 0xFF, 0xFF, 0xEB, 0x1C, 0x10, 0x95, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x80, 0x00, 0x81, 0xE3 - .byte 0x1C, 0x00, 0x85, 0xE5, 0x24, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A - .byte 0x03, 0x60, 0xA0, 0xE3, 0x04, 0x80, 0x90, 0xE5, 0x06, 0x10, 0xA0, 0xE1, 0x67, 0xFC, 0xFF, 0xEB - .byte 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x58, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x24, 0x00, 0x85, 0xE5, 0x00, 0x00, 0x57, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x2A, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x28, 0x00, 0x85, 0xE5, 0x2C, 0x00, 0x85, 0xE5 - .byte 0x30, 0x00, 0x85, 0xE5, 0x34, 0x00, 0x85, 0xE5, 0x38, 0x00, 0x85, 0xE5, 0x40, 0x00, 0x85, 0xE5 - .byte 0x40, 0x00, 0x95, 0xE5, 0x3C, 0x00, 0x85, 0xE5, 0x1C, 0x00, 0x95, 0xE5, 0xA2, 0x00, 0xC0, 0xE3 - .byte 0x1C, 0x00, 0x85, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xED, 0xF0, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x28, 0x10, 0x80, 0xE5, 0x30, 0x30, 0x80, 0xE5 - .byte 0x3C, 0x20, 0x80, 0xE5, 0x3C, 0x10, 0x90, 0xE5, 0x04, 0x20, 0x9D, 0xE5, 0x2C, 0x10, 0x80, 0xE5 - .byte 0x38, 0x20, 0x80, 0xE5, 0x00, 0x10, 0x9D, 0xE5, 0x08, 0x20, 0x9D, 0xE5, 0x40, 0x10, 0x80, 0xE5 - .byte 0x40, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x34, 0x10, 0x80, 0xE5, 0x34, 0x20, 0x9F, 0x05 - .byte 0x0C, 0x10, 0x9D, 0xE5, 0x48, 0x20, 0x80, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x28, 0x10, 0x9F, 0x05 - .byte 0x4C, 0x10, 0x80, 0xE5, 0x48, 0x20, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x50, 0x20, 0x80, 0xE5 - .byte 0x44, 0x10, 0x80, 0xE5, 0x1C, 0x10, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE3, 0x1C, 0x10, 0x80, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0xC0, 0x16, 0x0D, 0x02, 0x94, 0x16, 0x0D, 0x02 - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xC0, 0xF0, 0xFF, 0xEB, 0x04, 0x20, 0x94, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x00, 0x52, 0xE3, 0x08, 0x10, 0x94, 0x15, 0x08, 0x10, 0x82, 0x15 - .byte 0x08, 0x20, 0x94, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x04, 0x10, 0x94, 0x15, 0x04, 0x10, 0x82, 0x15 - .byte 0x00, 0x30, 0x84, 0xE5, 0x08, 0x30, 0x84, 0xE5, 0x08, 0x10, 0x94, 0xE5, 0x3C, 0x20, 0x9F, 0xE5 - .byte 0x04, 0x10, 0x84, 0xE5, 0x1C, 0x10, 0x94, 0xE5, 0x01, 0x10, 0xC1, 0xE3, 0x1C, 0x10, 0x84, 0xE5 - .byte 0x00, 0x10, 0x92, 0xE5, 0x04, 0x00, 0x51, 0xE1, 0x05, 0x00, 0x00, 0x1A, 0x20, 0x10, 0x9F, 0xE5 - .byte 0x08, 0x30, 0x82, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0xB6, 0x30, 0xC2, 0xE1, 0x00, 0x10, 0x82, 0xE5 - .byte 0xB4, 0x30, 0xC2, 0xE1, 0xAA, 0xF0, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xEC, 0x53, 0x1D, 0x02, 0xE8, 0x53, 0x1D, 0x02, 0xF0, 0x41, 0x2D, 0xE9, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x02, 0x50, 0xA0, 0xE1, 0x00, 0x70, 0xA0, 0xE1, 0x00, 0x80, 0xA0, 0xE3, 0x9B, 0xF0, 0xFF, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x25, 0x00, 0x00, 0xEB + .byte 0x1C, 0x00, 0x97, 0xE5, 0x04, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0x87, 0xE5 +_020D0E9C: + mov r0, r5 + add sp, sp, #0x4c + ldmia sp!, {r4-r7,lr} + bx lr +_020D0EAC: + .word FSi_ReadMemoryCore + + arm_func_start FUN_020D0EB0 +FUN_020D0EB0: ; 0x020D0EB0 + stmdb sp!, {r4-r8,lr} + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, [r5, #0x1c] + mov r4, r0 + ands r0, r1, #0x2 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020D0F64 + mov r0, r5 + ldr r1, [r5, #0x1c] + bl FS_SuspendArchive + ldr r1, [r5, #0x1c] + mov r7, r0 + orr r0, r1, #0x80 + str r0, [r5, #0x1c] + ldr r0, [r5, #0x24] + cmp r0, #0x0 + beq _020D0F1C + mov r6, #0x3 +_020D0F04: + ldr r8, [r0, #0x4] + mov r1, r6 + bl FSi_ReleaseCommand + mov r0, r8 + cmp r8, #0x0 + bne _020D0F04 +_020D0F1C: + mov r0, #0x0 + str r0, [r5, #0x24] + cmp r7, #0x0 + beq _020D0F34 + mov r0, r5 + bl FS_ResumeArchive +_020D0F34: + mov r0, #0x0 + str r0, [r5, #0x28] + str r0, [r5, #0x2c] + str r0, [r5, #0x30] + str r0, [r5, #0x34] + str r0, [r5, #0x38] + str r0, [r5, #0x40] + ldr r0, [r5, #0x40] + str r0, [r5, #0x3c] + ldr r0, [r5, #0x1c] + bic r0, r0, #0xa2 + str r0, [r5, #0x1c] +_020D0F64: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FS_LoadArchive +FS_LoadArchive: ; 0x020D0F78 + str r1, [r0, #0x28] + str r3, [r0, #0x30] + str r2, [r0, #0x3c] + ldr r1, [r0, #0x3c] + ldr r2, [sp, #0x4] + str r1, [r0, #0x2c] + str r2, [r0, #0x38] + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x8] + str r1, [r0, #0x40] + ldr r1, [r0, #0x40] + cmp r2, #0x0 + str r1, [r0, #0x34] + ldreq r2, _020D0FE8 ; =FSi_ReadMemCallback + ldr r1, [sp, #0xc] + str r2, [r0, #0x48] + cmp r1, #0x0 + ldreq r1, _020D0FEC ; =FSi_WriteMemCallback + str r1, [r0, #0x4c] + ldr r2, [r0, #0x48] + mov r1, #0x0 + str r2, [r0, #0x50] + str r1, [r0, #0x44] + ldr r1, [r0, #0x1c] + orr r1, r1, #0x2 + str r1, [r0, #0x1c] + mov r0, #0x1 + bx lr + .balign 4 +_020D0FE8: .word FSi_ReadMemCallback +_020D0FEC: .word FSi_WriteMemCallback + + arm_func_start FUN_020D0FF0 +FUN_020D0FF0: ; 0x020D0FF0 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + bl OS_DisableInterrupts + ldr r2, [r4, #0x4] + mov r3, #0x0 + cmp r2, #0x0 + ldrne r1, [r4, #0x8] + strne r1, [r2, #0x8] + ldr r2, [r4, #0x8] + cmp r2, #0x0 + ldrne r1, [r4, #0x4] + strne r1, [r2, #0x4] + str r3, [r4, #0x0] + str r3, [r4, #0x8] + ldr r1, [r4, #0x8] + ldr r2, _020D1080 ; =0x021D53EC + str r1, [r4, #0x4] + ldr r1, [r4, #0x1c] + bic r1, r1, #0x1 + str r1, [r4, #0x1c] + ldr r1, [r2, #0x0] + cmp r1, r4 + bne _020D1074 + ldr r1, _020D1084 ; =0x021D53E8 + str r3, [r2, #0x8] + ldr r1, [r1, #0x0] + strh r3, [r2, #0x6] + str r1, [r2, #0x0] + strh r3, [r2, #0x4] +_020D1074: + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020D1080: .word 0x021D53EC +_020D1084: .word 0x021D53E8 + + arm_func_start FS_RegisterArchiveName +FS_RegisterArchiveName: ; 0x020D1088 + stmdb sp!, {r4-r8,lr} + mov r6, r1 + mov r5, r2 + mov r7, r0 + mov r8, #0x0 + bl OS_DisableInterrupts + mov r4, r0 + mov r0, r6 + mov r1, r5 + bl FS_FindArchive +_020D10B0: .byte 0x00, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x00, 0x1A, 0x80, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5 .byte 0x00, 0x00, 0x52, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x74, 0x00, 0x9F, 0xE5, 0x08, 0x20, 0xA0, 0xE1 .byte 0x00, 0x70, 0x81, 0xE5, 0x00, 0x70, 0x80, 0xE5, 0x08, 0x20, 0x80, 0xE5, 0xB6, 0x20, 0xC0, 0xE1 @@ -1903,73 +8208,303 @@ _020CD33C: .byte 0x05, 0x10, 0xA0, 0xE1, 0x73, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x87, 0xE5, 0x1C, 0x00, 0x97, 0xE5 .byte 0x01, 0x80, 0xA0, 0xE3, 0x01, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0x87, 0xE5, 0x04, 0x00, 0xA0, 0xE1 .byte 0x7B, 0xF0, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xE8, 0x53, 0x1D, 0x02, 0xEC, 0x53, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x64, 0x01, 0x00, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x6C, 0xF0, 0xFF, 0xEB, 0x30, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x40, 0x91, 0xE5, 0x00, 0x00, 0x00, 0xEA, 0x04, 0x40, 0x94, 0xE5, 0x00, 0x00, 0x54, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x94, 0xE5, 0x05, 0x00, 0x51, 0xE1, 0xF9, 0xFF, 0xFF, 0x1A - .byte 0x67, 0xF0, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE8, 0x53, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x5C, 0x20, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1, 0x67, 0xF4, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x10, 0x10, 0x84, 0xE5, 0x10, 0x00, 0x94, 0xE5, 0x0C, 0x00, 0x84, 0xE5, 0x18, 0x10, 0x84, 0xE5 - .byte 0x18, 0x00, 0x94, 0xE5, 0x14, 0x00, 0x84, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x08, 0x60, 0x97, 0xE5 - .byte 0x01, 0x20, 0xA0, 0xE3, 0x10, 0x10, 0x87, 0xE5, 0x02, 0x00, 0xA0, 0xE3, 0x14, 0x00, 0x87, 0xE5 - .byte 0x0C, 0x00, 0x97, 0xE5, 0x12, 0x51, 0xA0, 0xE1, 0x01, 0x00, 0x80, 0xE3, 0x0C, 0x00, 0x87, 0xE5 - .byte 0x42, 0xF0, 0xFF, 0xEB, 0x1C, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x80, 0x00, 0x11, 0xE2 - .byte 0x08, 0x00, 0x00, 0x0A, 0x07, 0x00, 0xA0, 0xE1, 0x03, 0x10, 0xA0, 0xE3, 0xA3, 0xFB, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x3E, 0xF0, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7F, 0x0F, 0x15, 0xE2, 0x0C, 0x00, 0x97, 0x15 - .byte 0x20, 0x20, 0x86, 0xE2, 0x04, 0x00, 0x80, 0x13, 0x0C, 0x00, 0x87, 0x15, 0x00, 0x10, 0x97, 0xE5 - .byte 0x04, 0x00, 0x97, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0x81, 0x15, 0x00, 0x00, 0x50, 0xE3 - .byte 0x00, 0x10, 0x80, 0x15, 0x04, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A - .byte 0x04, 0x70, 0x82, 0xE5, 0x00, 0x20, 0x87, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x87, 0xE5 - .byte 0x1C, 0x00, 0x96, 0xE5, 0x08, 0x00, 0x10, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x51, 0xE3 - .byte 0x21, 0x00, 0x00, 0x1A, 0x1C, 0x00, 0x96, 0xE5, 0x10, 0x00, 0x10, 0xE2, 0x1E, 0x00, 0x00, 0x1A - .byte 0x1C, 0x10, 0x96, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x10, 0x81, 0xE3, 0x1C, 0x10, 0x86, 0xE5 - .byte 0x17, 0xF0, 0xFF, 0xEB, 0x58, 0x00, 0x96, 0xE5, 0x02, 0x0C, 0x10, 0xE2, 0x03, 0x00, 0x00, 0x0A - .byte 0x54, 0x20, 0x96, 0xE5, 0x07, 0x00, 0xA0, 0xE1, 0x09, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1 - .byte 0x0A, 0xF0, 0xFF, 0xEB, 0x0C, 0x10, 0x97, 0xE5, 0x40, 0x10, 0x81, 0xE3, 0x0C, 0x10, 0x87, 0xE5 - .byte 0x0C, 0x10, 0x97, 0xE5, 0x04, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03 - .byte 0x00, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x05, 0xF0, 0xFF, 0xEB, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x2F, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFE, 0xEF, 0xFF, 0xEB, 0x12, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x97, 0xE5 - .byte 0x04, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3 - .byte 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0xF5, 0xEF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x18, 0x00, 0x87, 0xE2 - .byte 0xDF, 0xE7, 0xFF, 0xEB, 0x0C, 0x00, 0x97, 0xE5, 0x40, 0x00, 0x10, 0xE2, 0xFA, 0xFF, 0xFF, 0x0A - .byte 0x04, 0x00, 0xA0, 0xE1, 0xEA, 0xEF, 0xFF, 0xEB, 0x07, 0x00, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x10, 0x10, 0x94, 0xE5, 0xE5, 0xFA, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x41, 0xFB, 0xFF, 0xEB, 0x08, 0x00, 0x94, 0xE5, 0x31, 0x00, 0x00, 0xEB + .byte 0xE8, 0x53, 0x1D, 0x02, 0xEC, 0x53, 0x1D, 0x02 + + arm_func_start FS_FindArchive +FS_FindArchive: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl FSi_GetPackedName + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020D1194 ; =0x021D53E8 + ldr r4, [r1, #0x0] + b _020D116C +_020D1168: + ldr r4, [r4, #0x4] +_020D116C: + cmp r4, #0x0 + beq _020D1180 + ldr r1, [r4, #0x0] + cmp r1, r5 + bne _020D1168 +_020D1180: + bl OS_RestoreInterrupts + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020D1194: .word 0x021D53E8 + + arm_func_start FS_InitArchive +FS_InitArchive: ; 0x020D1198 + stmdb sp!, {r4,lr} + mov r1, #0x0 + mov r2, #0x5c + mov r4, r0 + bl MI_CpuFill8 + mov r1, #0x0 + str r1, [r4, #0x10] + ldr r0, [r4, #0x10] + str r0, [r4, #0xc] + str r1, [r4, #0x18] + ldr r0, [r4, #0x18] + str r0, [r4, #0x14] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FSi_SendCommand +FSi_SendCommand: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + ldr r6, [r7, #0x8] + mov r2, #0x1 + str r1, [r7, #0x10] + mov r0, #0x2 + str r0, [r7, #0x14] + ldr r0, [r7, #0xc] + mov r5, r2, lsl r1 + orr r0, r0, #0x1 + str r0, [r7, #0xc] + bl OS_DisableInterrupts + ldr r1, [r6, #0x1c] + mov r4, r0 + ands r0, r1, #0x80 + beq _020D1238 + mov r0, r7 + mov r1, #0x3 + bl FSi_ReleaseCommand + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020D1238: + ands r0, r5, #0x1fc + ldrne r0, [r7, #0xc] + add r2, r6, #0x20 + orrne r0, r0, #0x4 + strne r0, [r7, #0xc] + ldr r1, [r7, #0x0] + ldr r0, [r7, #0x4] + cmp r1, #0x0 + strne r0, [r1, #0x4] + cmp r0, #0x0 + strne r1, [r0, #0x0] + ldr r0, [r2, #0x4] + cmp r0, #0x0 + beq _020D1280 +_020D1270: + mov r2, r0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + bne _020D1270 +_020D1280: + str r7, [r2, #0x4] + str r2, [r7, #0x0] + mov r1, #0x0 + str r1, [r7, #0x4] + ldr r0, [r6, #0x1c] + ands r0, r0, #0x8 + movne r1, #0x1 + cmp r1, #0x0 + bne _020D132C + ldr r0, [r6, #0x1c] + ands r0, r0, #0x10 + bne _020D132C + ldr r1, [r6, #0x1c] + mov r0, r4 + orr r1, r1, #0x10 + str r1, [r6, #0x1c] + bl OS_RestoreInterrupts + ldr r0, [r6, #0x58] + ands r0, r0, #0x200 + beq _020D12E0 + ldr r2, [r6, #0x54] + mov r0, r7 + mov r1, #0x9 + blx r2 +_020D12E0: + bl OS_DisableInterrupts + ldr r1, [r7, #0xc] + orr r1, r1, #0x40 + str r1, [r7, #0xc] + ldr r1, [r7, #0xc] + ands r1, r1, #0x4 + movne r1, #0x1 + moveq r1, #0x0 + cmp r1, #0x0 + bne _020D1324 + bl OS_RestoreInterrupts + mov r0, r7 + bl FSi_ExecuteAsyncCommand + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020D1324: + bl OS_RestoreInterrupts + b _020D1378 +_020D132C: + ldr r0, [r7, #0xc] + ands r0, r0, #0x4 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + bne _020D135C + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020D135C: + add r0, r7, #0x18 + bl OS_SleepThread + ldr r0, [r7, #0xc] + ands r0, r0, #0x40 + beq _020D135C + mov r0, r4 + bl OS_RestoreInterrupts +_020D1378: + mov r0, r7 + bl FSi_ExecuteSyncCommand + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FSi_ExecuteSyncCommand +FSi_ExecuteSyncCommand: ; 0x020D138C + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r1, [r4, #0x10] + bl FSi_TranslateCommand + mov r1, r0 + mov r0, r4 + bl FSi_ReleaseCommand + ldr r0, [r4, #0x8] + bl FSi_NextCommand +_020D13B0: .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x00, 0xEB, 0x14, 0x00, 0x94, 0xE5 .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x60, 0xB0, 0xE1, 0x08, 0x50, 0x96, 0xE5 - .byte 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x70, 0xA0, 0xE3, 0x01, 0x80, 0xA0, 0xE3 - .byte 0xC6, 0xEF, 0xFF, 0xEB, 0x0C, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x40, 0x00, 0x81, 0xE3 - .byte 0x0C, 0x00, 0x86, 0xE5, 0x0C, 0x00, 0x96, 0xE5, 0x04, 0x00, 0x10, 0xE2, 0x08, 0x00, 0xA0, 0x11 - .byte 0x07, 0x00, 0xA0, 0x01, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x18, 0x00, 0x86, 0xE2 - .byte 0x8F, 0xE7, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xBD, 0xEF, 0xFF, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x10, 0x96, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0x81, 0xE3 - .byte 0x0C, 0x10, 0x86, 0xE5, 0xB6, 0xEF, 0xFF, 0xEB, 0x10, 0x10, 0x96, 0xE5, 0x06, 0x00, 0xA0, 0xE1 - .byte 0xB7, 0xFA, 0xFF, 0xEB, 0x06, 0x00, 0x50, 0xE3, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x05, 0x00, 0xA0, 0xE1, 0x03, 0x00, 0x00, 0xEB, 0x00, 0x60, 0xB0, 0xE1, 0xDF, 0xFF, 0xFF, 0x1A - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x43, 0x2D, 0xE9, 0x4C, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x60, 0xA0, 0xE1, 0xA1, 0xEF, 0xFF, 0xEB, 0x1C, 0x10, 0x96, 0xE5, 0x00, 0x50, 0xA0, 0xE1 - .byte 0x20, 0x00, 0x11, 0xE2, 0x19, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x96, 0xE5, 0x20, 0x00, 0xC0, 0xE3 - .byte 0x1C, 0x00, 0x86, 0xE5, 0x24, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x13, 0x00, 0x00, 0x0A - .byte 0x00, 0x80, 0xA0, 0xE3, 0x01, 0x90, 0xA0, 0xE3, 0x03, 0x70, 0xA0, 0xE3, 0x0C, 0x10, 0x90, 0xE5 - .byte 0x04, 0x40, 0x90, 0xE5, 0x02, 0x10, 0x11, 0xE2, 0x09, 0x10, 0xA0, 0x11, 0x08, 0x10, 0xA0, 0x01 - .byte 0x00, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x24, 0x10, 0x96, 0xE5, 0x00, 0x00, 0x51, 0xE1 - .byte 0x07, 0x10, 0xA0, 0xE1, 0x24, 0x40, 0x86, 0x05, 0xF0, 0xFA, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3 - .byte 0x24, 0x40, 0x96, 0x05, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x54, 0xE3, 0xEE, 0xFF, 0xFF, 0x1A - .byte 0x1C, 0x00, 0x96, 0xE5, 0x40, 0x00, 0x10, 0xE2, 0x37, 0x00, 0x00, 0x1A, 0x1C, 0x00, 0x96, 0xE5 - .byte 0x08, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3 - .byte 0x31, 0x00, 0x00, 0x1A, 0x24, 0x40, 0x96, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0x2E, 0x00, 0x00, 0x0A - .byte 0x1C, 0x00, 0x96, 0xE5, 0x10, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x70, 0xA0, 0x03, 0x00, 0x70, 0xA0, 0x13, 0x00, 0x00, 0x57, 0xE3 - .byte 0x1C, 0x00, 0x96, 0x15, 0x10, 0x00, 0x80, 0x13, 0x1C, 0x00, 0x86, 0x15, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x6F, 0xEF, 0xFF, 0xEB, 0x00, 0x00, 0x57, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x58, 0x00, 0x96, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FSi_ExecuteAsyncCommand +FSi_ExecuteAsyncCommand: ; 0x020D13D4 + stmdb sp!, {r4-r8,lr} + movs r6, r0 + ldr r5, [r6, #0x8] + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r7, #0x0 + mov r8, #0x1 +_020D13F0: + bl OS_DisableInterrupts + ldr r1, [r6, #0xc] + mov r4, r0 + orr r0, r1, #0x40 + str r0, [r6, #0xc] + ldr r0, [r6, #0xc] + ands r0, r0, #0x4 + movne r0, r8 + moveq r0, r7 + cmp r0, #0x0 + beq _020D1434 + add r0, r6, #0x18 + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr +_020D1434: + ldr r1, [r6, #0xc] + mov r0, r4 + orr r1, r1, #0x8 + str r1, [r6, #0xc] + bl OS_RestoreInterrupts + ldr r1, [r6, #0x10] + mov r0, r6 + bl FSi_TranslateCommand + cmp r0, #0x6 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r0, r5 + bl FSi_NextCommand + movs r6, r0 + bne _020D13F0 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FSi_NextCommand +FSi_NextCommand: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4c + mov r6, r0 + bl OS_DisableInterrupts + ldr r1, [r6, #0x1c] + mov r5, r0 + ands r0, r1, #0x20 + beq _020D1500 + ldr r0, [r6, #0x1c] + bic r0, r0, #0x20 + str r0, [r6, #0x1c] + ldr r0, [r6, #0x24] + cmp r0, #0x0 + beq _020D1500 + mov r8, #0x0 + mov r9, #0x1 + mov r7, #0x3 +_020D14BC: + ldr r1, [r0, #0xc] + ldr r4, [r0, #0x4] + ands r1, r1, #0x2 + movne r1, r9 + moveq r1, r8 + cmp r1, #0x0 + beq _020D14F4 + ldr r1, [r6, #0x24] + cmp r1, r0 + mov r1, r7 + streq r4, [r6, #0x24] + bl FSi_ReleaseCommand +_020D14EC: + .byte 0x00, 0x00, 0x54, 0xE3 + .byte 0x24, 0x40, 0x96, 0x05 +_020D14F4: + mov r0, r4 + cmp r4, #0x0 + bne _020D14BC +_020D1500: + ldr r0, [r6, #0x1c] + ands r0, r0, #0x40 + bne _020D15EC + ldr r0, [r6, #0x1c] + ands r0, r0, #0x8 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + bne _020D15EC + ldr r4, [r6, #0x24] + cmp r4, #0x0 + beq _020D15EC + ldr r0, [r6, #0x1c] + ands r0, r0, #0x10 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + moveq r7, #0x1 + movne r7, #0x0 + cmp r7, #0x0 + ldrne r0, [r6, #0x1c] + orrne r0, r0, #0x10 + strne r0, [r6, #0x1c] + mov r0, r5 + bl OS_RestoreInterrupts +_020D1564: + .byte 0x00, 0x00, 0x57, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x58, 0x00, 0x96, 0xE5 .byte 0x02, 0x0C, 0x10, 0xE2, 0x03, 0x00, 0x00, 0x0A, 0x54, 0x20, 0x96, 0xE5, 0x04, 0x00, 0xA0, 0xE1 .byte 0x09, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1, 0x60, 0xEF, 0xFF, 0xEB, 0x0C, 0x10, 0x94, 0xE5 .byte 0x00, 0x50, 0xA0, 0xE1, 0x40, 0x00, 0x81, 0xE3, 0x0C, 0x00, 0x84, 0xE5, 0x0C, 0x00, 0x94, 0xE5 @@ -1977,229 +8512,935 @@ _020CD33C: .byte 0x07, 0x00, 0x00, 0x0A, 0x18, 0x00, 0x84, 0xE2, 0x29, 0xE7, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 .byte 0x57, 0xEF, 0xFF, 0xEB, 0x4C, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x43, 0xBD, 0xE8 .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x51, 0xEF, 0xFF, 0xEB, 0x4C, 0xD0, 0x8D, 0xE2 - .byte 0x04, 0x00, 0xA0, 0xE1, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0x00, 0x96, 0xE5 - .byte 0x10, 0x00, 0x10, 0xE2, 0x0C, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x96, 0xE5, 0x10, 0x00, 0xC0, 0xE3 - .byte 0x1C, 0x00, 0x86, 0xE5, 0x58, 0x00, 0x96, 0xE5, 0x01, 0x0B, 0x10, 0xE2, 0x06, 0x00, 0x00, 0x0A - .byte 0x00, 0x00, 0x8D, 0xE2, 0x9E, 0x01, 0x00, 0xEB, 0x08, 0x60, 0x8D, 0xE5, 0x54, 0x20, 0x96, 0xE5 - .byte 0x00, 0x00, 0x8D, 0xE2, 0x0A, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1, 0x1C, 0x00, 0x96, 0xE5 - .byte 0x40, 0x00, 0x10, 0xE2, 0x07, 0x00, 0x00, 0x0A, 0x1C, 0x10, 0x96, 0xE5, 0x14, 0x00, 0x86, 0xE2 - .byte 0x40, 0x10, 0xC1, 0xE3, 0x1C, 0x10, 0x86, 0xE5, 0x1C, 0x10, 0x96, 0xE5, 0x08, 0x10, 0x81, 0xE3 - .byte 0x1C, 0x10, 0x86, 0xE5, 0x02, 0xE7, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x30, 0xEF, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020D15EC: + ldr r0, [r6, #0x1c] + ands r0, r0, #0x10 + beq _020D162C + ldr r0, [r6, #0x1c] + bic r0, r0, #0x10 + str r0, [r6, #0x1c] + ldr r0, [r6, #0x58] + ands r0, r0, #0x400 + beq _020D162C + add r0, sp, #0x0 + bl FS_InitFile + str r6, [sp, #0x8] + ldr r2, [r6, #0x54] + add r0, sp, #0x0 + mov r1, #0xa + blx r2 +_020D162C: + ldr r0, [r6, #0x1c] + ands r0, r0, #0x40 + beq _020D1658 + ldr r1, [r6, #0x1c] + add r0, r6, #0x14 + bic r1, r1, #0x40 + str r1, [r6, #0x1c] + ldr r1, [r6, #0x1c] + orr r1, r1, #0x8 + str r1, [r6, #0x1c] + bl OS_WakeupThread +_020D1658: + mov r0, r5 + bl OS_RestoreInterrupts +_020D1660: .byte 0x00, 0x00, 0xA0, 0xE3, 0x4C, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x02, 0x00, 0xA0, 0xE1, 0x03, 0x20, 0xA0, 0xE1 - .byte 0x56, 0xF3, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0xC0, 0x90, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE1, 0x02, 0x10, 0x8C, 0xE0, 0x03, 0x20, 0xA0, 0xE1, 0x4B, 0xF3, 0xFF, 0xEB + + arm_func_start FSi_ReadMemoryCore +FSi_ReadMemoryCore: ; 0x020D1670 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, r2 + mov r2, r3 + bl MI_CpuCopy8 +_020D1684: + .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FSi_WriteMemCallback +FSi_WriteMemCallback: ; 0x020D1694 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r12, [r0, #0x28] + mov r0, r1 + add r1, r12, r2 + mov r2, r3 + bl MI_CpuCopy8 +_020D16B0: .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x00, 0x90, 0xE5, 0x02, 0x00, 0x80, 0xE0 - .byte 0x03, 0x20, 0xA0, 0xE1, 0x41, 0xF3, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x03, 0x00, 0x51, 0xE3, 0x00, 0xE0, 0xA0, 0xE3, 0x0F, 0x00, 0x00, 0xCA, 0x0E, 0xC0, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x51, 0xE3, 0x0C, 0x00, 0x00, 0xDA, 0x0E, 0x30, 0xA0, 0xE1, 0x0C, 0x20, 0xD0, 0xE7 - .byte 0x00, 0x00, 0x52, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x41, 0x20, 0x42, 0xE2, 0x19, 0x00, 0x52, 0xE3 - .byte 0x61, 0x20, 0x82, 0x92, 0x41, 0x20, 0x82, 0x82, 0x01, 0xC0, 0x8C, 0xE2, 0x12, 0xE3, 0x8E, 0xE1 - .byte 0x01, 0x00, 0x5C, 0xE1, 0x08, 0x30, 0x83, 0xE2, 0xF3, 0xFF, 0xFF, 0xBA, 0x0E, 0x00, 0xA0, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x58, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x0C, 0x00, 0x8D, 0xE2, 0x4C, 0x01, 0x00, 0xEB - .byte 0x0C, 0x00, 0x8D, 0xE2, 0x00, 0x30, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE3 - .byte 0xEF, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x8D, 0x12 + + arm_func_start FSi_ReadMemCallback +FSi_ReadMemCallback: ; 0x020D16C0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, [r0, #0x28] + add r0, r0, r2 + mov r2, r3 + bl MI_CpuCopy8 +_020D16D8: + .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FSi_GetPackedName +FSi_GetPackedName: ; 0x020D16E8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x3 + mov lr, #0x0 + bgt _020D173C + mov r12, lr + cmp r1, #0x0 + ble _020D173C + mov r3, lr +_020D170C: + ldrb r2, [r0, r12] + cmp r2, #0x0 + beq _020D173C + sub r2, r2, #0x41 + cmp r2, #0x19 + addls r2, r2, #0x61 + addhi r2, r2, #0x41 + add r12, r12, #0x1 + orr lr, lr, r2, lsl r3 + cmp r12, r1 + add r3, r3, #0x8 + blt _020D170C +_020D173C: + mov r0, lr + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FS_ChangeDir +FS_ChangeDir: ; 0x020D174C + stmdb sp!, {r4,lr} + sub sp, sp, #0x58 + mov r4, r0 + add r0, sp, #0xc + bl FS_InitFile + add r0, sp, #0xc + add r3, sp, #0x0 + mov r1, r4 + mov r2, #0x0 + bl FSi_FindPath +_020D1774: + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x8D, 0x12 .byte 0x14, 0x30, 0x9F, 0x15, 0x07, 0x00, 0x90, 0x18, 0x07, 0x00, 0x83, 0x18, 0x01, 0x00, 0xA0, 0x13 .byte 0x58, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xEC, 0x53, 0x1D, 0x02 - .byte 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x52, 0xE3, 0x05, 0x00, 0x00, 0x0A - .byte 0x02, 0x00, 0x52, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x00, 0xEA, 0x24, 0x20, 0x90, 0xE5 - .byte 0x02, 0x10, 0x81, 0xE0, 0x07, 0x00, 0x00, 0xEA, 0x2C, 0x20, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE0 - .byte 0x04, 0x00, 0x00, 0xEA, 0x28, 0x20, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE0, 0x01, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x20, 0x90, 0xE5, 0x02, 0x00, 0x51, 0xE1 - .byte 0x02, 0x10, 0xA0, 0xB1, 0x28, 0x20, 0x90, 0xE5, 0x02, 0x00, 0x51, 0xE1, 0x02, 0x10, 0xA0, 0xC1 - .byte 0x2C, 0x10, 0x80, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xAC, 0x1A, 0x0D, 0x02, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x01, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xAC, 0x1A, 0x0D, 0x02, 0xF0, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, 0xB3, 0xEE, 0xFF, 0xEB - .byte 0x0C, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x00, 0x11, 0xE2, 0x01, 0x00, 0xA0, 0x13 - .byte 0x05, 0x00, 0xA0, 0x01, 0x00, 0x00, 0x50, 0xE3, 0x17, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0x96, 0xE5 - .byte 0x44, 0x00, 0x10, 0xE2, 0x01, 0x50, 0xA0, 0x03, 0x00, 0x50, 0xA0, 0x13, 0x00, 0x00, 0x55, 0xE3 - .byte 0x09, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0x96, 0xE5, 0x04, 0x00, 0x80, 0xE3, 0x0C, 0x00, 0x86, 0xE5 - .byte 0x18, 0x70, 0x86, 0xE2, 0x07, 0x00, 0xA0, 0xE1, 0x95, 0xE6, 0xFF, 0xEB, 0x0C, 0x00, 0x96, 0xE5 - .byte 0x40, 0x00, 0x10, 0xE2, 0xFA, 0xFF, 0xFF, 0x0A, 0x07, 0x00, 0x00, 0xEA, 0x18, 0x00, 0x86, 0xE2 - .byte 0x8F, 0xE6, 0xFF, 0xEB, 0x0C, 0x00, 0x96, 0xE5, 0x01, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13 - .byte 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3, 0xF7, 0xFF, 0xFF, 0x1A, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x97, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1 + + arm_func_start FS_SeekFile +FS_SeekFile: ; 0x020D17A0 + cmp r2, #0x0 + beq _020D17BC + cmp r2, #0x1 + beq _020D17C8 + cmp r2, #0x2 + beq _020D17D4 + b _020D17E0 +_020D17BC: + ldr r2, [r0, #0x24] + add r1, r1, r2 + b _020D17E8 +_020D17C8: + ldr r2, [r0, #0x2c] + add r1, r1, r2 + b _020D17E8 +_020D17D4: + ldr r2, [r0, #0x28] + add r1, r1, r2 + b _020D17E8 +_020D17E0: + mov r0, #0x0 + bx lr +_020D17E8: + ldr r2, [r0, #0x24] + cmp r1, r2 + movlt r1, r2 + ldr r2, [r0, #0x28] + cmp r1, r2 + movgt r1, r2 + str r1, [r0, #0x2c] + mov r0, #0x1 + bx lr + + arm_func_start FS_ReadFile +FS_ReadFile: ; 0x020D180C + ldr ip, _020D1818 ; =FUN_020D1AAC + mov r3, #0x0 + bx r12 + .balign 4 +_020D1818: .word FUN_020D1AAC + + arm_func_start FS_ReadFileAsync +FS_ReadFileAsync: ; 0x020D181C + ldr ip, _020D1828 ; =FUN_020D1AAC + mov r3, #0x1 + bx r12 + .balign 4 +_020D1828: .word FUN_020D1AAC + + arm_func_start FS_WaitAsync +FS_WaitAsync: ; 0x020D182C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, #0x0 + bl OS_DisableInterrupts + ldr r1, [r6, #0xc] + mov r4, r0 + ands r0, r1, #0x1 + movne r0, #0x1 + moveq r0, r5 + cmp r0, #0x0 + beq _020D18BC + ldr r0, [r6, #0xc] + ands r0, r0, #0x44 + moveq r5, #0x1 + movne r5, #0x0 + cmp r5, #0x0 + beq _020D189C + ldr r0, [r6, #0xc] + orr r0, r0, #0x4 + str r0, [r6, #0xc] + add r7, r6, #0x18 +_020D1884: + mov r0, r7 + bl OS_SleepThread + ldr r0, [r6, #0xc] + ands r0, r0, #0x40 + beq _020D1884 + b _020D18BC +_020D189C: + add r0, r6, #0x18 + bl OS_SleepThread + ldr r0, [r6, #0xc] + ands r0, r0, #0x1 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + bne _020D189C +_020D18BC: + mov r0, r4 + bl OS_RestoreInterrupts +_020D18C4: + .byte 0x00, 0x00, 0x55, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1 .byte 0xAD, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x14, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x08, 0x10, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1, 0x30, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + + arm_func_start FUN_020D18E0 +FUN_020D18E0: ; 0x020D18E0 + ldr r0, [r6, #0x14] + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FS_CloseFile +FS_CloseFile: ; 0x020D18FC + stmdb sp!, {r4,lr} + mov r1, #0x8 + mov r4, r0 + bl FSi_SendCommand +_020D190C: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0xA0, 0xE3 .byte 0x08, 0x00, 0x84, 0xE5, 0x0E, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x84, 0xE5, 0x0C, 0x10, 0x94, 0xE5 .byte 0x01, 0x00, 0xA0, 0xE3, 0x30, 0x10, 0xC1, 0xE3, 0x0C, 0x10, 0x84, 0xE5, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x8D, 0xE2, 0x43, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FS_OpenFile +FS_OpenFile: ; 0x020D1944 + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + mov r4, r0 + add r0, sp, #0x0 + bl FS_ConvertPathToFileID +_020D1958: + .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A .byte 0x00, 0x10, 0x8D, 0xE2, 0x04, 0x00, 0xA0, 0xE1, 0x06, 0x00, 0x91, 0xE8, 0x08, 0x00, 0x00, 0xEB .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0xD0, 0x8D, 0x12, 0x01, 0x00, 0xA0, 0x13, 0x10, 0x40, 0xBD, 0x18 .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0F, 0x00, 0x2D, 0xE9, 0x10, 0x40, 0x2D, 0xE9, 0x0C, 0x10, 0x9D, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 - .byte 0x10, 0xD0, 0x8D, 0x02, 0x1E, 0xFF, 0x2F, 0x01, 0x08, 0x10, 0x84, 0xE5, 0x0C, 0x30, 0x9D, 0xE5 - .byte 0x10, 0x20, 0x9D, 0xE5, 0x06, 0x10, 0xA0, 0xE3, 0x30, 0x30, 0x84, 0xE5, 0x34, 0x20, 0x84, 0xE5 - .byte 0xFE, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FS_OpenFileFast +FS_OpenFileFast: + stmdb sp!, {r0-r3} + stmdb sp!, {r4,lr} + ldr r1, [sp, #0xc] + mov r4, r0 + cmp r1, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + addeq sp, sp, #0x10 + bxeq lr + str r1, [r4, #0x8] + ldr r3, [sp, #0xc] + ldr r2, [sp, #0x10] + mov r1, #0x6 + str r3, [r4, #0x30] + str r2, [r4, #0x34] + bl FSi_SendCommand +_020D19D4: + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 .byte 0x10, 0xD0, 0x8D, 0x02, 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x10, 0x94, 0xE5, 0x01, 0x00, 0xA0, 0xE3 .byte 0x10, 0x10, 0x81, 0xE3, 0x0C, 0x10, 0x84, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x20, 0x10, 0xC1, 0xE3 .byte 0x0C, 0x10, 0x84, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x10, 0x84, 0xE5, 0x08, 0xC0, 0x9D, 0xE5 - .byte 0x07, 0x10, 0xA0, 0xE3, 0x38, 0xC0, 0x84, 0xE5, 0x30, 0x20, 0x84, 0xE5, 0x34, 0x30, 0x84, 0xE5 - .byte 0xE6, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 + + arm_func_start FS_OpenFileDirect +FS_OpenFileDirect: + stmdb sp!, {r4,lr} + mov r4, r0 + str r1, [r4, #0x8] + ldr r12, [sp, #0x8] + mov r1, #0x7 + str r12, [r4, #0x38] + str r2, [r4, #0x30] + str r3, [r4, #0x34] + bl FSi_SendCommand +_020D1A34: + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 .byte 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x10, 0x94, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x10, 0x10, 0x81, 0xE3 .byte 0x0C, 0x10, 0x84, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x20, 0x10, 0xC1, 0xE3, 0x0C, 0x10, 0x84, 0xE5 - .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9, 0x4C, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x50, 0xA0, 0xE1, 0x00, 0x00, 0x8D, 0xE2, 0x01, 0x40, 0xA0, 0xE1, 0x84, 0x00, 0x00, 0xEB + .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FS_ConvertPathToFileID +FS_ConvertPathToFileID: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4c + mov r5, r0 + add r0, sp, #0x0 + mov r4, r1 + bl FS_InitFile +_020D1A80: .byte 0x00, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 .byte 0x27, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0x4C, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x2C, 0x40, 0x97, 0xE5, 0x28, 0x00, 0x97, 0xE5 - .byte 0x02, 0x60, 0xA0, 0xE1, 0x30, 0x10, 0x87, 0xE5, 0x04, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x56, 0xE1 - .byte 0x00, 0x60, 0xA0, 0xC1, 0x00, 0x00, 0x56, 0xE3, 0x00, 0x60, 0xA0, 0xB3, 0x34, 0x20, 0x87, 0xE5 - .byte 0x03, 0x50, 0xA0, 0xE1, 0x38, 0x60, 0x87, 0xE5, 0x00, 0x00, 0x55, 0xE3, 0x0C, 0x00, 0x97, 0x05 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x80, 0x03, 0x0C, 0x00, 0x87, 0x05, 0x07, 0x00, 0xA0, 0xE1 - .byte 0xB2, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x4C, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FUN_020D1AAC +FUN_020D1AAC: ; 0x020D1AAC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + ldr r4, [r7, #0x2c] + ldr r0, [r7, #0x28] + mov r6, r2 + str r1, [r7, #0x30] + sub r0, r0, r4 + cmp r6, r0 + movgt r6, r0 + cmp r6, #0x0 + movlt r6, #0x0 + str r2, [r7, #0x34] + mov r5, r3 + str r6, [r7, #0x38] + cmp r5, #0x0 + ldreq r0, [r7, #0xc] + mov r1, #0x0 + orreq r0, r0, #0x4 + streq r0, [r7, #0xc] + mov r0, r7 + bl FSi_SendCommand +_020D1B04: + .byte 0x00, 0x00, 0x55, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x07, 0x00, 0xA0, 0xE1 .byte 0x45, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2C, 0x00, 0x97, 0x15, 0x04, 0x60, 0x40, 0x10 .byte 0x00, 0x60, 0xE0, 0x03, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0x2D, 0xE9, 0x10, 0xD0, 0x4D, 0xE2, 0x01, 0x70, 0xA0, 0xE1 - .byte 0x00, 0x10, 0xD7, 0xE5, 0x00, 0x80, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1 - .byte 0x2F, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x5C, 0x00, 0x51, 0xE3, 0x08, 0x00, 0x00, 0x1A - .byte 0x28, 0x01, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xB4, 0x10, 0xCD, 0xE1 - .byte 0x00, 0x00, 0x8D, 0xE5, 0x08, 0x10, 0x8D, 0xE5, 0xB6, 0x10, 0xCD, 0xE1, 0x01, 0x70, 0x87, 0xE2 - .byte 0x2E, 0x00, 0x00, 0xEA, 0x04, 0x01, 0x9F, 0xE5, 0x00, 0x30, 0x8D, 0xE2, 0x07, 0x00, 0x90, 0xE8 - .byte 0x07, 0x00, 0x83, 0xE8, 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xD7, 0xE7, 0x00, 0x00, 0x50, 0xE3 - .byte 0x26, 0x00, 0x00, 0x0A, 0x2F, 0x00, 0x50, 0xE3, 0x24, 0x00, 0x00, 0x0A, 0x5C, 0x00, 0x50, 0xE3 - .byte 0x22, 0x00, 0x00, 0x0A, 0x3A, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x1A, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x5F, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x10, 0xD0, 0x8D, 0x02 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FSi_FindPath +FSi_FindPath: + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x10 + mov r7, r1 + ldrb r1, [r7, #0x0] + mov r8, r0 + mov r6, r2 + mov r5, r3 + cmp r1, #0x2f + beq _020D1B60 + cmp r1, #0x5c + bne _020D1B84 +_020D1B60: + ldr r0, _020D1C90 ; =0x021D53EC + mov r1, #0x0 + ldr r0, [r0, #0x0] + strh r1, [sp, #0x4] + str r0, [sp, #0x0] + str r1, [sp, #0x8] + strh r1, [sp, #0x6] + add r7, r7, #0x1 + b _020D1C40 +_020D1B84: + ldr r0, _020D1C90 ; =0x021D53EC + add r3, sp, #0x0 + ldmia r0, {r0-r2} + stmia r3, {r0-r2} + mov r4, #0x0 +_020D1B98: + ldrb r0, [r7, r4] + cmp r0, #0x0 + beq _020D1C40 + cmp r0, #0x2f + beq _020D1C40 + cmp r0, #0x5c + beq _020D1C40 + cmp r0, #0x3a + bne _020D1C34 + mov r0, r7 + mov r1, r4 + bl FS_FindArchive +_020D1BC8: + .byte 0x00, 0x00, 0x50, 0xE3, 0x10, 0xD0, 0x8D, 0x02 .byte 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x1C, 0x10, 0x90, 0xE5 .byte 0x02, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3 .byte 0x10, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x08, 0x10, 0x8D, 0xE5, 0xB6, 0x10, 0xCD, 0xE1 .byte 0xB4, 0x10, 0xCD, 0xE1, 0x01, 0x00, 0x84, 0xE2, 0x00, 0x00, 0xF7, 0xE7, 0x2F, 0x00, 0x50, 0xE3 .byte 0x01, 0x00, 0x00, 0x0A, 0x5C, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x01, 0x70, 0x87, 0xE2 - .byte 0x02, 0x00, 0x00, 0xEA, 0x01, 0x40, 0x84, 0xE2, 0x03, 0x00, 0x54, 0xE3, 0xD5, 0xFF, 0xFF, 0xDA - .byte 0x00, 0x10, 0x9D, 0xE5, 0x00, 0x00, 0x8D, 0xE2, 0x08, 0x10, 0x88, 0xE5, 0x3C, 0x70, 0x88, 0xE5 - .byte 0x30, 0x30, 0x88, 0xE2, 0x07, 0x00, 0x90, 0xE8, 0x07, 0x00, 0x83, 0xE8, 0x00, 0x00, 0x55, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x13, 0x40, 0x00, 0x88, 0x15, 0x44, 0x50, 0x88, 0x15, 0x00, 0x00, 0xA0, 0x03 - .byte 0x40, 0x00, 0x88, 0x05, 0x08, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x44, 0x60, 0x88, 0x05 - .byte 0x52, 0xFD, 0xFF, 0xEB, 0x10, 0xD0, 0x8D, 0xE2, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xEC, 0x53, 0x1D, 0x02, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0x80, 0xE5, 0x00, 0x20, 0x90, 0xE5 - .byte 0x0E, 0x10, 0xA0, 0xE3, 0x04, 0x20, 0x80, 0xE5, 0x1C, 0x30, 0x80, 0xE5, 0x1C, 0x20, 0x90, 0xE5 - .byte 0x18, 0x20, 0x80, 0xE5, 0x08, 0x30, 0x80, 0xE5, 0x10, 0x10, 0x80, 0xE5, 0x0C, 0x30, 0x80, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xF8, 0x53, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5, 0x20, 0x00, 0x00, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF8, 0x53, 0x1D, 0x02 - .byte 0x10, 0xC0, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1, 0x08, 0x00, 0x9F, 0xE5 - .byte 0x03, 0x10, 0xA0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0x84, 0x0D, 0x0D, 0x02, 0x14, 0x54, 0x1D, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x74, 0xED, 0xFF, 0xEB, 0x00, 0x50, 0xA0, 0xE1 - .byte 0x34, 0x10, 0x9F, 0xE5, 0x34, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0x91, 0xE5, 0xC2, 0xFB, 0xFF, 0xEB - .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x60, 0x81, 0xE5, 0x01, 0x00, 0x00, 0x0A - .byte 0x18, 0x00, 0x9F, 0xE5, 0x9D, 0xFB, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x6C, 0xED, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x54, 0x1D, 0x02 - .byte 0x14, 0x54, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x14, 0xD0, 0x4D, 0xE2, 0x54, 0x11, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x81, 0xE5, 0xC1, 0xE0, 0xFF, 0xEB, 0x4C, 0x31, 0x9F, 0xE5, 0x4C, 0x21, 0x9F, 0xE5 - .byte 0x00, 0xC0, 0xA0, 0xE3, 0x48, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0x83, 0xE5, 0x00, 0xC0, 0x82, 0xE5 - .byte 0x04, 0xC0, 0x82, 0xE5, 0x00, 0xC0, 0x81, 0xE5, 0x04, 0xC0, 0x81, 0xE5, 0x19, 0x15, 0x00, 0xEB - .byte 0x30, 0x01, 0x9F, 0xE5, 0xF3, 0xFC, 0xFF, 0xEB, 0x28, 0x01, 0x9F, 0xE5, 0x28, 0x11, 0x9F, 0xE5 - .byte 0x03, 0x20, 0xA0, 0xE3, 0xAB, 0xFC, 0xFF, 0xEB, 0x20, 0x01, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1 - .byte 0x02, 0x00, 0x50, 0xE3, 0x18, 0x00, 0x00, 0x1A, 0x00, 0xC1, 0x9F, 0xE5, 0x00, 0x20, 0xE0, 0xE3 - .byte 0xFC, 0x30, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0xF8, 0x00, 0x9F, 0xE5, 0x00, 0x11, 0x9F, 0xE5 - .byte 0x00, 0x20, 0x8C, 0xE5, 0x04, 0xE0, 0x8C, 0xE5, 0x00, 0x20, 0x83, 0xE5, 0x04, 0xE0, 0x83, 0xE5 - .byte 0x6A, 0xFB, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x8D, 0xE5, 0xE4, 0x00, 0x9F, 0xE5 - .byte 0x04, 0x10, 0x8D, 0xE5, 0x08, 0x00, 0x8D, 0xE5, 0xDC, 0xC0, 0x9F, 0xE5, 0xC4, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE1, 0x0C, 0xC0, 0x8D, 0xE5, 0x4D, 0xFC, 0xFF, 0xEB - .byte 0x14, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xBC, 0x50, 0x9F, 0xE5 - .byte 0xA0, 0x00, 0x9F, 0xE5, 0xB8, 0x10, 0x9F, 0xE5, 0xB8, 0x20, 0x9F, 0xE5, 0xB8, 0x40, 0x9F, 0xE5 - .byte 0x56, 0xFB, 0xFF, 0xEB, 0x00, 0x10, 0x95, 0xE5, 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 - .byte 0x14, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x51, 0xE3 - .byte 0x14, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x20, 0x94, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE1, 0x14, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x00, 0x00, 0x52, 0xE3, 0x14, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x00, 0x10, 0x8D, 0xE5, 0x04, 0x00, 0x95, 0xE5, 0x60, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0x8D, 0xE5 - .byte 0x44, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0x8D, 0xE5, 0x0C, 0x00, 0x8D, 0xE5, 0x04, 0x30, 0x94, 0xE5 - .byte 0x20, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x26, 0xFC, 0xFF, 0xEB, 0x14, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x54, 0x1D, 0x02, 0xFC, 0x53, 0x1D, 0x02 - .byte 0x04, 0x54, 0x1D, 0x02, 0x0C, 0x54, 0x1D, 0x02, 0x14, 0x54, 0x1D, 0x02, 0x30, 0x68, 0x10, 0x02 - .byte 0x40, 0xFC, 0x7F, 0x02, 0x24, 0x1F, 0x0D, 0x02, 0x2C, 0x1F, 0x0D, 0x02, 0xC4, 0x1F, 0x0D, 0x02 - .byte 0x40, 0xFE, 0x7F, 0x02, 0x34, 0x1F, 0x0D, 0x02, 0x02, 0x06, 0x00, 0x00, 0x48, 0xFE, 0x7F, 0x02 - .byte 0xCC, 0x1F, 0x0D, 0x02, 0x04, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x00, 0x51, 0xE3 - .byte 0x16, 0x00, 0x00, 0x0A, 0x09, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x51, 0xE3 - .byte 0x09, 0x00, 0x00, 0x0A, 0x15, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0xDC, 0x11, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x3C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0xCB, 0x11, 0x00, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xFC, 0x53, 0x1D, 0x02, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x0C, 0xD0, 0x4D, 0xE2, 0x34, 0xC0, 0x9F, 0xE5, 0x01, 0xE0, 0xA0, 0xE1, 0x00, 0xC0, 0x8D, 0xE5 - .byte 0x04, 0x00, 0x8D, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x24, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0x8D, 0xE5 - .byte 0x02, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x0E, 0x20, 0xA0, 0xE1, 0xAA, 0x14, 0x00, 0xEB - .byte 0x06, 0x00, 0xA0, 0xE3, 0x0C, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x18, 0x20, 0x0D, 0x02, 0x00, 0x54, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x3C, 0x17, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03 + .byte 0x02, 0x00, 0x00, 0xEA +_020D1C34: + add r4, r4, #0x1 + cmp r4, #0x3 + ble _020D1B98 +_020D1C40: + ldr r1, [sp, #0x0] + add r0, sp, #0x0 + str r1, [r8, #0x8] + str r7, [r8, #0x3c] + add r3, r8, #0x30 + ldmia r0, {r0-r2} + stmia r3, {r0-r2} + cmp r5, #0x0 + movne r0, #0x1 + strne r0, [r8, #0x40] + strne r5, [r8, #0x44] + moveq r0, #0x0 + streq r0, [r8, #0x40] + mov r0, r8 + mov r1, #0x4 + streq r6, [r8, #0x44] + bl FSi_SendCommand + add sp, sp, #0x10 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020D1C90: .word 0x021D53EC + + arm_func_start FS_InitFile +FS_InitFile: + mov r3, #0x0 + str r3, [r0, #0x0] + ldr r2, [r0, #0x0] + mov r1, #0xe + str r2, [r0, #0x4] + str r3, [r0, #0x1c] + ldr r2, [r0, #0x1c] + str r2, [r0, #0x18] + str r3, [r0, #0x8] + str r1, [r0, #0x10] + str r3, [r0, #0xc] + bx lr + + arm_func_start FS_IsAvailable +FS_IsAvailable: ; 0x020D1CC4 + ldr r0, _020D1CD0 ; =0x021D53F8 + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020D1CD0: .word 0x021D53F8 + + arm_func_start FS_Init +FS_Init: ; 0x020D1CD4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D1D0C ; =0x021D53F8 + ldr r2, [r1, #0x0] + cmp r2, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + mov r2, #0x1 + str r2, [r1, #0x0] + bl FSi_InitRom + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D1D0C: .word 0x021D53F8 + + arm_func_start FS_TryLoadTable +FS_TryLoadTable: ; 0x020D1D10 + ldr ip, _020D1D28 ; =FUN_020D0D84 + mov r3, r0 + mov r2, r1 + ldr r0, _020D1D2C ; =0x021D5414 + mov r1, r3 + bx r12 + .balign 4 +_020D1D28: .word FUN_020D0D84 +_020D1D2C: .word 0x021D5414 + + arm_func_start FS_SetDefaultDMA +FS_SetDefaultDMA: ; 0x020D1D30 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + bl OS_DisableInterrupts + mov r5, r0 + ldr r1, _020D1D7C ; =0x021D5400 + ldr r0, _020D1D80 ; =0x021D5414 + ldr r4, [r1, #0x0] + bl FS_SuspendArchive + ldr r1, _020D1D7C ; =0x021D5400 + cmp r0, #0x0 + str r6, [r1, #0x0] + beq _020D1D68 + ldr r0, _020D1D80 ; =0x021D5414 + bl FS_ResumeArchive +_020D1D68: + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020D1D7C: .word 0x021D5400 +_020D1D80: .word 0x021D5414 + + arm_func_start FSi_InitRom +FSi_InitRom: ; 0x020D1D84 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x14 + ldr r1, _020D1EE8 ; =0x021D5400 + str r0, [r1, #0x0] + bl OS_GetLockID + ldr r3, _020D1EEC ; =0x021D53FC + ldr r2, _020D1EF0 ; =0x021D5404 + mov r12, #0x0 + ldr r1, _020D1EF4 ; =0x021D540C + str r0, [r3, #0x0] + str r12, [r2, #0x0] + str r12, [r2, #0x4] + str r12, [r1, #0x0] + str r12, [r1, #0x4] + bl FUN_020D7228 + ldr r0, _020D1EF8 ; =0x021D5414 + bl FS_InitArchive + ldr r0, _020D1EF8 ; =0x021D5414 + ldr r1, _020D1EFC ; =0x02106830 + mov r2, #0x3 + bl FS_RegisterArchiveName + ldr r0, _020D1F00 ; =0x027FFC40 + ldrh r0, [r0, #0x0] + cmp r0, #0x2 + bne _020D1E4C + ldr ip, _020D1EF0 ; =0x021D5404 + mvn r2, #0x0 + ldr r3, _020D1EF4 ; =0x021D540C + mov lr, #0x0 + ldr r0, _020D1EF8 ; =0x021D5414 + ldr r1, _020D1F04 ; =FSi_EmptyArchiveProc + str r2, [r12, #0x0] + str lr, [r12, #0x4] + str r2, [r3, #0x0] + str lr, [r3, #0x4] + bl FS_SetArchiveProc + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, _020D1F08 ; =FSi_ReadDummyCallback + str r1, [sp, #0x4] + str r0, [sp, #0x8] + ldr ip, _020D1F0C ; =FSi_WriteDummyCallback + ldr r0, _020D1EF8 ; =0x021D5414 + mov r2, r1 + mov r3, r1 + str r12, [sp, #0xc] + bl FS_LoadArchive + add sp, sp, #0x14 + ldmia sp!, {r4-r5,lr} + bx lr +_020D1E4C: + ldr r5, _020D1F10 ; =0x027FFE40 + ldr r0, _020D1EF8 ; =0x021D5414 + ldr r1, _020D1F14 ; =FSi_RomArchiveProc + ldr r2, _020D1F18 ; =0x00000602 + ldr r4, _020D1F1C ; =0x027FFE48 + bl FS_SetArchiveProc + ldr r1, [r5, #0x0] + mvn r0, #0x0 + cmp r1, r0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + cmp r1, #0x0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r2, [r4, #0x0] + cmp r2, r0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + cmp r2, #0x0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + str r1, [sp, #0x0] + ldr r0, [r5, #0x4] + ldr r1, _020D1F20 ; =FSi_ReadRomCallback + str r0, [sp, #0x4] + ldr r0, _020D1F0C ; =FSi_WriteDummyCallback + str r1, [sp, #0x8] + str r0, [sp, #0xc] + ldr r3, [r4, #0x4] + ldr r0, _020D1EF8 ; =0x021D5414 + mov r1, #0x0 + bl FS_LoadArchive + add sp, sp, #0x14 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020D1EE8: .word 0x021D5400 +_020D1EEC: .word 0x021D53FC +_020D1EF0: .word 0x021D5404 +_020D1EF4: .word 0x021D540C +_020D1EF8: .word 0x021D5414 +_020D1EFC: .word 0x02106830 +_020D1F00: .word 0x027FFC40 +_020D1F04: .word FSi_EmptyArchiveProc +_020D1F08: .word FSi_ReadDummyCallback +_020D1F0C: .word FSi_WriteDummyCallback +_020D1F10: .word 0x027FFE40 +_020D1F14: .word FSi_RomArchiveProc +_020D1F18: .word 0x00000602 +_020D1F1C: .word 0x027FFE48 +_020D1F20: .word FSi_ReadRomCallback + + arm_func_start FSi_EmptyArchiveProc +FSi_EmptyArchiveProc: ; 0x020D1F24 + mov r0, #0x4 + bx lr + + arm_func_start FSi_ReadDummyCallback +FSi_ReadDummyCallback: ; 0x020D1F2C + mov r0, #0x1 + bx lr + + arm_func_start FSi_RomArchiveProc +FSi_RomArchiveProc: ; 0x020D1F34 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x1 + beq _020D1FA0 + cmp r1, #0x9 + beq _020D1F58 + cmp r1, #0xa + beq _020D1F7C + b _020D1FB0 +_020D1F58: + ldr r0, _020D1FC0 ; =0x021D53FC + ldr r0, [r0, #0x0] + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl FUN_020D66E0 + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {lr} + bx lr +_020D1F7C: + ldr r0, _020D1FC0 ; =0x021D53FC + ldr r0, [r0, #0x0] + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl FUN_020D66C0 + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {lr} + bx lr +_020D1FA0: + add sp, sp, #0x4 + mov r0, #0x4 + ldmia sp!, {lr} + bx lr +_020D1FB0: + mov r0, #0x8 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D1FC0: .word 0x021D53FC + + arm_func_start FSi_WriteDummyCallback +FSi_WriteDummyCallback: ; 0x020D1FC4 + mov r0, #0x1 + bx lr + + arm_func_start FSi_ReadRomCallback +FSi_ReadRomCallback: ; 0x020D1FCC + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr ip, _020D2010 ; =FSi_OnRomReadDone + mov lr, r1 + str r12, [sp, #0x0] + str r0, [sp, #0x4] + mov r1, #0x1 + ldr r0, _020D2014 ; =0x021D5400 + str r1, [sp, #0x8] + mov r1, r2 + ldr r0, [r0, #0x0] + mov r2, lr + bl FUN_020D72AC + mov r0, #0x6 + add sp, sp, #0xc + ldmia sp!, {lr} + bx lr + .balign 4 +_020D2010: .word FSi_OnRomReadDone +_020D2014: .word 0x021D5400 + + arm_func_start FSi_OnRomReadDone +FSi_OnRomReadDone: ; 0x020D2018 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020D7D18 +_020D2024: + .byte 0x00, 0x00, 0x50, 0xE3, 0x05, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03 .byte 0x04, 0x00, 0xA0, 0xE1, 0xC1, 0xFA, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x2C, 0xD0, 0x4D, 0xE2, 0x00, 0x30, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x8D, 0xE2, 0x03, 0x10, 0xA0, 0xE1, 0x23, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + + arm_func_start FS_UnloadOverlay +FS_UnloadOverlay: ; 0x020D2040 + stmdb sp!, {lr} + sub sp, sp, #0x2c + mov r3, r0 + mov r2, r1 + add r0, sp, #0x0 + mov r1, r3 + bl FS_LoadOverlayInfo +_020D205C: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2, 0x20, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 .byte 0x03, 0x00, 0x00, 0x1A, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8 .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x2D, 0xE9, 0x2C, 0xD0, 0x4D, 0xE2, 0x00, 0x30, 0xA0, 0xE1 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x00, 0x8D, 0xE2, 0x03, 0x10, 0xA0, 0xE1, 0x0E, 0x01, 0x00, 0xEB + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FS_LoadOverlay +FS_LoadOverlay: ; 0x020D2094 + stmdb sp!, {lr} + sub sp, sp, #0x2c + mov r3, r0 + mov r2, r1 + add r0, sp, #0x0 + mov r1, r3 + bl FS_LoadOverlayInfo +_020D20B0: .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2, 0xBC, 0x00, 0x00, 0xEB .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x8D, 0xE2, 0x4B, 0x00, 0x00, 0xEB .byte 0x01, 0x00, 0xA0, 0xE3, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x03, 0x00, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x4F, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0xF0, 0x80, 0x9F, 0xE5, 0x00, 0xB0, 0xA0, 0xE1, 0x00, 0x90, 0xA0, 0xE3 - .byte 0x08, 0x10, 0x9B, 0xE5, 0x0C, 0x00, 0x9B, 0xE5, 0x04, 0x50, 0x9B, 0xE5, 0x00, 0x00, 0x81, 0xE0 - .byte 0x09, 0x70, 0xA0, 0xE1, 0x09, 0x60, 0xA0, 0xE1, 0x00, 0x40, 0x85, 0xE0, 0x73, 0xEC, 0xFF, 0xEB - .byte 0x00, 0xE0, 0x98, 0xE5, 0x09, 0xA0, 0xA0, 0xE1, 0x0E, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x5E, 0xE3 - .byte 0x1B, 0x00, 0x00, 0x0A, 0x08, 0x20, 0x9C, 0xE5, 0x00, 0x30, 0x9C, 0xE5, 0x00, 0x00, 0x52, 0xE3 - .byte 0x04, 0x10, 0x9C, 0xE5, 0x03, 0x00, 0x00, 0x1A, 0x05, 0x00, 0x51, 0xE1, 0x01, 0x00, 0x00, 0x3A - .byte 0x04, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x00, 0x3A, 0x05, 0x00, 0x52, 0xE1, 0x0C, 0x00, 0x00, 0x3A - .byte 0x04, 0x00, 0x52, 0xE1, 0x0A, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x56, 0xE3, 0x00, 0xC0, 0x86, 0x15 - .byte 0x0C, 0x70, 0xA0, 0x01, 0x0C, 0x00, 0x5E, 0xE1, 0x00, 0x30, 0x88, 0x05, 0x03, 0xE0, 0xA0, 0x01 - .byte 0x00, 0x90, 0x8C, 0xE5, 0x00, 0x00, 0x5A, 0xE3, 0x0C, 0x60, 0xA0, 0xE1, 0x00, 0x30, 0x8A, 0x15 - .byte 0x00, 0x00, 0x00, 0xEA, 0x0C, 0xA0, 0xA0, 0xE1, 0x03, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x53, 0xE3 - .byte 0xE3, 0xFF, 0xFF, 0x1A, 0x56, 0xEC, 0xFF, 0xEB, 0x00, 0x00, 0x57, 0xE3, 0x04, 0xD0, 0x8D, 0x02 + + arm_func_start FS_UnloadOverlayImage +FS_UnloadOverlayImage: ; 0x020D20F0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FS_EndOverlay + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FS_EndOverlay +FS_EndOverlay: ; 0x020D210C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + ldr r8, _020D220C ; =0x021D74C8 + mov r11, r0 + mov r9, #0x0 + ldr r1, [r11, #0x8] + ldr r0, [r11, #0xc] + ldr r5, [r11, #0x4] + add r0, r1, r0 + mov r7, r9 + mov r6, r9 + add r4, r5, r0 + bl OS_DisableInterrupts + ldr lr, [r8, #0x0] + mov r10, r9 + mov r12, lr + cmp lr, #0x0 + beq _020D21C4 +_020D2154: + ldr r2, [r12, #0x8] + ldr r3, [r12, #0x0] + cmp r2, #0x0 + ldr r1, [r12, #0x4] + bne _020D2178 + cmp r1, r5 + blo _020D2178 + cmp r1, r4 + blo _020D2188 +_020D2178: + cmp r2, r5 + blo _020D21B4 + cmp r2, r4 + bhs _020D21B4 +_020D2188: + cmp r6, #0x0 + strne r12, [r6, #0x0] + moveq r7, r12 + cmp lr, r12 + streq r3, [r8, #0x0] + moveq lr, r3 + str r9, [r12, #0x0] + cmp r10, #0x0 + mov r6, r12 + strne r3, [r10, #0x0] + b _020D21B8 +_020D21B4: + mov r10, r12 +_020D21B8: + mov r12, r3 + cmp r3, #0x0 + bne _020D2154 +_020D21C4: + bl OS_RestoreInterrupts +_020D21C8: + .byte 0x00, 0x00, 0x57, 0xE3, 0x04, 0xD0, 0x8D, 0x02 .byte 0xF0, 0x4F, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x10, 0x97, 0xE5, 0x00, 0x40, 0x97, 0xE5 .byte 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x97, 0xE5, 0x31, 0xFF, 0x2F, 0xE1 .byte 0x04, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0x54, 0xE3, 0xF6, 0xFF, 0xFF, 0x1A, 0xC7, 0xFF, 0xFF, 0xEA - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xC8, 0x74, 0x1D, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x57, 0x01, 0x00, 0xEB, 0xDC, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE1, 0xB0, 0x00, 0xD1, 0xE1, 0x02, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x00, 0x1A - .byte 0x1F, 0x10, 0xD5, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x02, 0x10, 0x11, 0xE2, 0x0F, 0x00, 0x00, 0x0A - .byte 0xBC, 0x10, 0x9F, 0xE5, 0xBC, 0x30, 0x9F, 0xE5, 0xBC, 0x20, 0x9F, 0xE5, 0x03, 0xC0, 0x41, 0xE0 - .byte 0x92, 0x1C, 0xCE, 0xE0, 0xCE, 0xE1, 0xA0, 0xE1, 0xAC, 0x1F, 0xA0, 0xE1, 0x00, 0x20, 0x95, 0xE5 - .byte 0x0E, 0xE0, 0x81, 0xE0, 0x0E, 0x00, 0x52, 0xE1, 0x04, 0x00, 0x00, 0x2A, 0x14, 0x00, 0xA0, 0xE3 - .byte 0x92, 0x30, 0x20, 0xE0, 0x04, 0x10, 0x95, 0xE5, 0x04, 0x20, 0xA0, 0xE1, 0x23, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x95, 0xE5, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x2C, 0xF0, 0xFF, 0xEB, 0x6C, 0xED, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1F, 0x00, 0xD5, 0xE5, 0x01, 0x00, 0x10, 0xE2, 0x02, 0x00, 0x00, 0x0A - .byte 0x04, 0x00, 0x95, 0xE5, 0x04, 0x00, 0x80, 0xE0, 0xA4, 0xB9, 0xFC, 0xEB, 0x04, 0x00, 0x95, 0xE5 - .byte 0x08, 0x10, 0x95, 0xE5, 0xA4, 0xE7, 0xFF, 0xEB, 0x10, 0x60, 0x95, 0xE5, 0x14, 0x40, 0x95, 0xE5 - .byte 0x04, 0x00, 0x56, 0xE1, 0x70, 0x40, 0xBD, 0x28, 0x1E, 0xFF, 0x2F, 0x21, 0x00, 0x00, 0x96, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x0A, 0x30, 0xFF, 0x2F, 0xE1, 0x04, 0x60, 0x86, 0xE2 - .byte 0x04, 0x00, 0x56, 0xE1, 0xF8, 0xFF, 0xFF, 0x3A, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x40, 0xFC, 0x7F, 0x02, 0x84, 0x6F, 0x10, 0x02, 0x84, 0x6F, 0x10, 0x02, 0x67, 0x66, 0x66, 0x66 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x58, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x02, 0x50, 0xA0, 0xE1, 0x04, 0x00, 0x8D, 0xE2, 0x00, 0x10, 0xA0, 0xE3, 0x14, 0x20, 0xA0, 0xE3 - .byte 0x05, 0xF0, 0xFF, 0xEB, 0x70, 0x00, 0x9F, 0xE5, 0x70, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x20, 0x91, 0xE5, 0x18, 0x10, 0x8D, 0xE2, 0x24, 0xF0, 0xFF, 0xEB, 0x5C, 0x30, 0x9F, 0xE5 - .byte 0x06, 0x10, 0xA0, 0xE1, 0x00, 0xC0, 0x93, 0xE5, 0x05, 0x20, 0xA0, 0xE1, 0x04, 0x00, 0x8D, 0xE2 - .byte 0x18, 0x30, 0x8D, 0xE2, 0x00, 0xC0, 0x8D, 0xE5, 0x82, 0x02, 0x00, 0xEB, 0x04, 0x20, 0x8D, 0xE2 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x92, 0xE5, 0x03, 0x00, 0x94, 0xE7, 0x00, 0x00, 0x51, 0xE1 - .byte 0x03, 0x00, 0x00, 0x1A, 0x04, 0x30, 0x83, 0xE2, 0x14, 0x00, 0x53, 0xE3, 0x04, 0x20, 0x82, 0xE2 - .byte 0xF7, 0xFF, 0xFF, 0x3A, 0x14, 0x00, 0x53, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0x58, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x34, 0x68, 0x10, 0x02 - .byte 0x38, 0x68, 0x10, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x54, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1 - .byte 0x08, 0x00, 0x8D, 0xE2, 0x32, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020D220C: .word 0x021D74C8 + + arm_func_start FS_StartOverlay +FS_StartOverlay: ; 0x020D2210 + stmdb sp!, {r4-r6,lr} + mov r5, r0 + bl FSi_GetOverlayBinarySize + ldr r1, _020D2300 ; =0x027FFC40 + mov r4, r0 + ldrh r0, [r1, #0x0] + cmp r0, #0x2 + bne _020D22A4 + ldrb r1, [r5, #0x1f] + mov r0, #0x0 + ands r1, r1, #0x2 + beq _020D2280 + ldr r1, _020D2304 ; =0x02106F84 + ldr r3, _020D2308 ; =0x02106F84 + ldr r2, _020D230C ; =0x66666667 + sub r12, r1, r3 + smull r1, lr, r2, r12 + mov lr, lr, asr #0x3 + mov r1, r12, lsr #0x1f + ldr r2, [r5, #0x0] + add lr, r1, lr + cmp r2, lr + bhs _020D2280 + mov r0, #0x14 + mla r0, r2, r0, r3 + ldr r1, [r5, #0x4] + mov r2, r4 + bl FSi_CompareDigest +_020D2280: + cmp r0, #0x0 + bne _020D22A4 + ldr r0, [r5, #0x4] + mov r2, r4 + mov r1, #0x0 + bl MI_CpuFill8 + bl OS_Terminate + ldmia sp!, {r4-r6,lr} + bx lr +_020D22A4: + ldrb r0, [r5, #0x1f] + ands r0, r0, #0x1 + beq _020D22BC + ldr r0, [r5, #0x4] + add r0, r0, r4 + bl FUN_02000950 +_020D22BC: + ldr r0, [r5, #0x4] + ldr r1, [r5, #0x8] + bl DC_FlushRange + ldr r6, [r5, #0x10] + ldr r4, [r5, #0x14] + cmp r6, r4 + ldmcsia sp!, {r4-r6,lr} + bxcs lr +_020D22DC: + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _020D22EC + blx r0 +_020D22EC: + add r6, r6, #0x4 + cmp r6, r4 + blo _020D22DC + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020D2300: .word 0x027FFC40 +_020D2304: .word 0x02106F84 +_020D2308: .word 0x02106F84 +_020D230C: .word 0x66666667 + + arm_func_start FSi_CompareDigest +FSi_CompareDigest: + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x58 + mov r4, r0 + mov r6, r1 + mov r5, r2 + add r0, sp, #0x4 + mov r1, #0x0 + mov r2, #0x14 + bl MI_CpuFill8 + ldr r0, _020D23AC ; =0x02106834 + ldr r1, _020D23B0 ; =0x02106838 + ldr r0, [r0, #0x0] + ldr r2, [r1, #0x0] + add r1, sp, #0x18 + bl MI_CpuCopy8 + ldr r3, _020D23B0 ; =0x02106838 + mov r1, r6 + ldr r12, [r3, #0x0] + mov r2, r5 + add r0, sp, #0x4 + add r3, sp, #0x18 + str r12, [sp, #0x0] + bl MATH_CalcHMACSHA1 + add r2, sp, #0x4 + mov r3, #0x0 +_020D2374: + ldr r1, [r2, #0x0] + ldr r0, [r4, r3] + cmp r1, r0 + bne _020D2394 + add r3, r3, #0x4 + cmp r3, #0x14 + add r2, r2, #0x4 + blo _020D2374 +_020D2394: + cmp r3, #0x14 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x58 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020D23AC: .word 0x02106834 +_020D23B0: .word 0x02106838 + + arm_func_start FS_LoadOverlayImage +FS_LoadOverlayImage: ; 0x020D23B4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x54 + mov r5, r0 + add r0, sp, #0x8 + bl FS_InitFile +_020D23C8: + .byte 0x00, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1 .byte 0xCE, 0x00, 0x00, 0xEB, 0x00, 0x10, 0x8D, 0xE2, 0x08, 0x00, 0x8D, 0xE2, 0x06, 0x00, 0x91, 0xE8 .byte 0x6B, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x54, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x00, 0xA0, 0xE1, 0xDE, 0x00, 0x00, 0xEB @@ -2208,8 +9449,18 @@ _020CD33C: .byte 0x05, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x8D, 0xE2, 0x33, 0xFD, 0xFF, 0xEB, 0x54, 0xD0, 0x8D, 0xE2 .byte 0x00, 0x00, 0xA0, 0xE3, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x8D, 0xE2 .byte 0x2D, 0xFD, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x54, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x01, 0x50, 0xA0, 0xE1 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x09, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x8D, 0xE2 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FS_LoadOverlayImageAsync +FS_LoadOverlayImageAsync: ; 0x020D2454 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r5, r1 + mov r6, r0 + mov r0, r5 + bl FS_InitFile +_020D246C: + .byte 0x00, 0x00, 0x8D, 0xE2 .byte 0x06, 0x10, 0xA0, 0xE1, 0xA5, 0x00, 0x00, 0xEB, 0x00, 0x10, 0x8D, 0xE2, 0x05, 0x00, 0xA0, 0xE1 .byte 0x06, 0x00, 0x91, 0xE8, 0x42, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0xD0, 0x8D, 0x02 .byte 0x00, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x06, 0x00, 0xA0, 0xE1 @@ -2217,30 +9468,98 @@ _020CD33C: .byte 0x04, 0x10, 0x96, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0xD6, 0xFC, 0xFF, 0xEB .byte 0x00, 0x00, 0x54, 0xE1, 0x08, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08 .byte 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x00, 0xA0, 0xE1, 0x07, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x64, 0xD0, 0x4D, 0xE2, 0x01, 0x40, 0xB0, 0xE1, 0x00, 0x50, 0xA0, 0xE1, 0xE8, 0x00, 0x9F, 0x05 - .byte 0xE8, 0x00, 0x9F, 0x15, 0x00, 0x30, 0x90, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x25, 0x00, 0x00, 0x0A - .byte 0x04, 0x00, 0x90, 0xE5, 0x82, 0x22, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE1, 0x64, 0xD0, 0x8D, 0x22 - .byte 0x00, 0x00, 0xA0, 0x23, 0x30, 0x40, 0xBD, 0x28, 0x1E, 0xFF, 0x2F, 0x21, 0x02, 0x00, 0x83, 0xE0 - .byte 0x05, 0x10, 0xA0, 0xE1, 0x20, 0x20, 0xA0, 0xE3, 0xA8, 0xEF, 0xFF, 0xEB, 0x18, 0x00, 0x8D, 0xE2 - .byte 0x20, 0x40, 0x85, 0xE5, 0xD2, 0xFD, 0xFF, 0xEB, 0x10, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x6E, 0x00, 0x00, 0xEB, 0x10, 0x10, 0x8D, 0xE2, 0x18, 0x00, 0x8D, 0xE2, 0x06, 0x00, 0x91, 0xE8 - .byte 0x0B, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x64, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 + .byte 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FS_LoadOverlayInfo +FS_LoadOverlayInfo: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x64 + movs r4, r1 + mov r5, r0 + ldreq r0, _020D25EC ; =0x021D5404 + ldrne r0, _020D25F0 ; =0x021D540C + ldr r3, [r0, #0x0] + cmp r3, #0x0 + beq _020D25A8 + ldr r0, [r0, #0x4] + mov r2, r2, lsl #0x5 + cmp r2, r0 + addcs sp, sp, #0x64 + movcs r0, #0x0 + ldmcsia sp!, {r4-r5,lr} + bxcs lr + add r0, r3, r2 + mov r1, r5 + mov r2, #0x20 + bl MI_CpuCopy8 + add r0, sp, #0x18 + str r4, [r5, #0x20] + bl FS_InitFile + add r0, sp, #0x10 + mov r1, r5 + bl FS_GetOverlayFileID + add r1, sp, #0x10 + add r0, sp, #0x18 + ldmia r1, {r1-r2} + bl FS_OpenFileFast +_020D2564: + .byte 0x00, 0x00, 0x50, 0xE3, 0x64, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x3C, 0x10, 0x9D, 0xE5, 0x18, 0x00, 0x8D, 0xE2 .byte 0x24, 0x10, 0x85, 0xE5, 0x40, 0x20, 0x9D, 0xE5, 0x3C, 0x10, 0x9D, 0xE5, 0x01, 0x10, 0x42, 0xE0 .byte 0x28, 0x10, 0x85, 0xE5, 0xD8, 0xFC, 0xFF, 0xEB, 0x64, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x44, 0x10, 0x9F, 0xE5, 0x44, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x91, 0xE5, 0x40, 0x30, 0x9F, 0xE5, 0x00, 0x00, 0x8D, 0xE5, 0x04, 0x10, 0x91, 0xE5 - .byte 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0x8D, 0xE5, 0x00, 0x50, 0x9C, 0xE5, 0x04, 0x10, 0xA0, 0xE1 - .byte 0x08, 0x50, 0x8D, 0xE5, 0x04, 0x40, 0x9C, 0xE5, 0x0C, 0x40, 0x8D, 0xE5, 0x07, 0x00, 0x00, 0xEB - .byte 0x64, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x54, 0x1D, 0x02 - .byte 0x0C, 0x54, 0x1D, 0x02, 0x50, 0xFE, 0x7F, 0x02, 0x58, 0xFE, 0x7F, 0x02, 0x14, 0x54, 0x1D, 0x02 - .byte 0xF0, 0x43, 0x2D, 0xE9, 0x54, 0xD0, 0x4D, 0xE2, 0x01, 0x90, 0xB0, 0xE1, 0x74, 0x50, 0x9D, 0x05 - .byte 0x70, 0x60, 0x9D, 0x05, 0x7C, 0x50, 0x9D, 0x15, 0x78, 0x60, 0x9D, 0x15, 0x82, 0x72, 0xA0, 0xE1 - .byte 0x05, 0x00, 0x57, 0xE1, 0x00, 0x40, 0xA0, 0xE1, 0x03, 0x80, 0xA0, 0xE1, 0x54, 0xD0, 0x8D, 0x22 - .byte 0x00, 0x00, 0xA0, 0x23, 0xF0, 0x43, 0xBD, 0x28, 0x1E, 0xFF, 0x2F, 0x21, 0x0C, 0x00, 0x8D, 0xE2 - .byte 0x93, 0xFD, 0xFF, 0xEB, 0x00, 0xC0, 0xE0, 0xE3, 0x0C, 0x00, 0x8D, 0xE2, 0x08, 0x10, 0xA0, 0xE1 - .byte 0x07, 0x20, 0x86, 0xE0, 0x05, 0x30, 0x86, 0xE0, 0x00, 0xC0, 0x8D, 0xE5, 0xEB, 0xFC, 0xFF, 0xEB + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020D25A8: + ldr r1, _020D25F4 ; =0x027FFE50 + ldr ip, _020D25F8 ; =0x027FFE58 + ldr r0, [r1, #0x0] + ldr r3, _020D25FC ; =0x021D5414 + str r0, [sp, #0x0] + ldr r1, [r1, #0x4] + mov r0, r5 + str r1, [sp, #0x4] + ldr r5, [r12, #0x0] + mov r1, r4 + str r5, [sp, #0x8] + ldr r4, [r12, #0x4] + str r4, [sp, #0xc] + bl FSi_LoadOverlayInfoCore + add sp, sp, #0x64 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020D25EC: .word 0x021D5404 +_020D25F0: .word 0x021D540C +_020D25F4: .word 0x027FFE50 +_020D25F8: .word 0x027FFE58 +_020D25FC: .word 0x021D5414 + + arm_func_start FSi_LoadOverlayInfoCore +FSi_LoadOverlayInfoCore: ; 0x020D2600 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x54 + movs r9, r1 + ldreq r5, [sp, #0x74] + ldreq r6, [sp, #0x70] + ldrne r5, [sp, #0x7c] + ldrne r6, [sp, #0x78] + mov r7, r2, lsl #0x5 + cmp r7, r5 + mov r4, r0 + mov r8, r3 + addcs sp, sp, #0x54 + movcs r0, #0x0 + ldmcsia sp!, {r4-r9,lr} + bxcs lr + add r0, sp, #0xc + bl FS_InitFile + mvn r12, #0x0 + add r0, sp, #0xc + mov r1, r8 + add r2, r6, r7 + add r3, r6, r5 + str r12, [sp, #0x0] + bl FS_OpenFileDirect +_020D2660: .byte 0x00, 0x00, 0x50, 0xE3, 0x54, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x43, 0xBD, 0x08 .byte 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x20, 0x20, 0xA0, 0xE3 .byte 0x61, 0xFC, 0xFF, 0xEB, 0x20, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0x8D, 0xE2 @@ -2252,344 +9571,1504 @@ _020CD33C: .byte 0x30, 0x10, 0x9D, 0xE5, 0x0C, 0x00, 0x8D, 0xE2, 0x24, 0x10, 0x84, 0xE5, 0x34, 0x20, 0x9D, 0xE5 .byte 0x30, 0x10, 0x9D, 0xE5, 0x01, 0x10, 0x42, 0xE0, 0x28, 0x10, 0x84, 0xE5, 0x7E, 0xFC, 0xFF, 0xEB .byte 0x01, 0x00, 0xA0, 0xE3, 0x54, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0xD0, 0x4D, 0xE2, 0x18, 0x20, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE5, 0x18, 0x10, 0x91, 0xE5 - .byte 0x04, 0x10, 0x8D, 0xE5, 0x00, 0x20, 0x80, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x08, 0xD0, 0x8D, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x14, 0x54, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x08, 0x50, 0x90, 0xE5 - .byte 0x0C, 0x10, 0x90, 0xE5, 0x04, 0x60, 0x90, 0xE5, 0x01, 0x40, 0x85, 0xE0, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x8F, 0xE6, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1 - .byte 0x6F, 0xE6, 0xFF, 0xEB, 0x05, 0x00, 0x86, 0xE0, 0x05, 0x20, 0x44, 0xE0, 0x00, 0x10, 0xA0, 0xE3 - .byte 0xF5, 0xEE, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x1F, 0x10, 0xD0, 0xE5 - .byte 0x01, 0x10, 0x11, 0xE2, 0x1C, 0x00, 0x90, 0x15, 0x00, 0x04, 0xA0, 0x11, 0x20, 0x04, 0xA0, 0x11 - .byte 0x08, 0x00, 0x90, 0x05, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x4F, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x18, 0x30, 0x80, 0xE2, 0x00, 0x50, 0x90, 0xE5, 0x04, 0x40, 0x90, 0xE5, 0x08, 0xE0, 0x90, 0xE5 - .byte 0x0C, 0xC0, 0x90, 0xE5, 0xBC, 0x23, 0x9F, 0xE5, 0x03, 0x80, 0xA0, 0xE1, 0x00, 0x70, 0xA0, 0xE3 - .byte 0x04, 0x10, 0xE0, 0xE1, 0x0E, 0x60, 0x04, 0xE0, 0x0C, 0x10, 0x01, 0xE0, 0x01, 0x10, 0x86, 0xE1 - .byte 0x00, 0x60, 0x98, 0xE5, 0x01, 0x10, 0x85, 0xE0, 0x00, 0x50, 0x92, 0xE5, 0x01, 0x10, 0x86, 0xE0 - .byte 0x01, 0x50, 0x85, 0xE0, 0x85, 0x13, 0xA0, 0xE1, 0xA5, 0x1C, 0x81, 0xE1, 0x01, 0x50, 0x84, 0xE0 - .byte 0x05, 0x10, 0xE0, 0xE1, 0x04, 0x60, 0x05, 0xE0, 0x0E, 0x10, 0x01, 0xE0, 0x01, 0x10, 0x86, 0xE1 - .byte 0x04, 0x60, 0x98, 0xE5, 0x01, 0x10, 0x8C, 0xE0, 0x04, 0x90, 0x92, 0xE5, 0x01, 0x10, 0x86, 0xE0 - .byte 0x01, 0x60, 0x89, 0xE0, 0x06, 0x16, 0xA0, 0xE1, 0x26, 0x1A, 0x81, 0xE1, 0x01, 0xC0, 0x85, 0xE0 - .byte 0x0C, 0x10, 0xE0, 0xE1, 0x05, 0x60, 0x0C, 0xE0, 0x04, 0x10, 0x01, 0xE0, 0x01, 0x60, 0x86, 0xE1 - .byte 0x0C, 0x10, 0x88, 0xE2, 0x08, 0x90, 0x98, 0xE5, 0x06, 0x60, 0x8E, 0xE0, 0x06, 0x60, 0x89, 0xE0 - .byte 0x08, 0x90, 0x92, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x06, 0xA0, 0x89, 0xE0, 0x0C, 0x60, 0x82, 0xE2 - .byte 0x00, 0x60, 0x96, 0xE5, 0x8A, 0x98, 0xA0, 0xE1, 0xAA, 0x97, 0x89, 0xE1, 0x09, 0xE0, 0x8C, 0xE0 - .byte 0x10, 0x20, 0x82, 0xE2, 0x10, 0x80, 0x88, 0xE2, 0x0C, 0xA0, 0x0E, 0xE0, 0x0E, 0x90, 0xE0, 0xE1 - .byte 0x05, 0x90, 0x09, 0xE0, 0x09, 0x90, 0x8A, 0xE1, 0x09, 0x40, 0x84, 0xE0, 0x04, 0x10, 0x81, 0xE0 - .byte 0x01, 0x40, 0x86, 0xE0, 0x04, 0x1B, 0xA0, 0xE1, 0x24, 0x15, 0x81, 0xE1, 0x01, 0x40, 0x8E, 0xE0 - .byte 0x01, 0x70, 0x87, 0xE2, 0x04, 0x00, 0x57, 0xE3, 0xC8, 0xFF, 0xFF, 0xBA, 0xD8, 0x62, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x0C, 0x70, 0xE0, 0xE1, 0x00, 0x90, 0x96, 0xE5, 0x0C, 0x80, 0x04, 0xE0 - .byte 0x07, 0x70, 0x0E, 0xE0, 0x07, 0x70, 0x88, 0xE1, 0x09, 0x81, 0x93, 0xE7, 0x07, 0x50, 0x85, 0xE0 - .byte 0x00, 0x70, 0x92, 0xE5, 0x05, 0x50, 0x88, 0xE0, 0x05, 0x70, 0x87, 0xE0, 0x87, 0x52, 0xA0, 0xE1 - .byte 0xA7, 0x5D, 0x85, 0xE1, 0x05, 0x50, 0x84, 0xE0, 0x0E, 0x80, 0xE0, 0xE1, 0x04, 0x70, 0x96, 0xE5 - .byte 0x0E, 0x90, 0x05, 0xE0, 0x08, 0x80, 0x04, 0xE0, 0x08, 0xA0, 0x89, 0xE1, 0x04, 0x80, 0xE0, 0xE1 - .byte 0x08, 0x90, 0x96, 0xE5, 0x07, 0xB1, 0x93, 0xE7, 0x0A, 0x70, 0x8C, 0xE0, 0x07, 0xA0, 0x8B, 0xE0 - .byte 0x0C, 0x70, 0x86, 0xE2, 0x09, 0x91, 0x93, 0xE7, 0x08, 0x80, 0x05, 0xE0, 0x00, 0x70, 0x97, 0xE5 - .byte 0x04, 0xB0, 0x92, 0xE5, 0x07, 0x71, 0x93, 0xE7, 0x0A, 0xB0, 0x8B, 0xE0, 0x8B, 0xA4, 0xA0, 0xE1 - .byte 0xAB, 0xAB, 0x8A, 0xE1, 0x0A, 0xC0, 0x85, 0xE0, 0x08, 0xA0, 0x92, 0xE5, 0x04, 0xB0, 0x0C, 0xE0 - .byte 0x08, 0x80, 0x8B, 0xE1, 0x08, 0x80, 0x8E, 0xE0, 0x08, 0x80, 0x89, 0xE0, 0x08, 0xA0, 0x8A, 0xE0 - .byte 0x0C, 0x80, 0x82, 0xE2, 0x00, 0x80, 0x98, 0xE5, 0x0A, 0x97, 0xA0, 0xE1, 0x2A, 0x99, 0x89, 0xE1 - .byte 0x09, 0xE0, 0x8C, 0xE0, 0x10, 0x20, 0x82, 0xE2, 0x10, 0x60, 0x86, 0xE2, 0x05, 0xA0, 0x0E, 0xE0 - .byte 0x05, 0x90, 0xE0, 0xE1, 0x09, 0x90, 0x0C, 0xE0, 0x09, 0x90, 0x8A, 0xE1, 0x09, 0x40, 0x84, 0xE0 - .byte 0x04, 0x40, 0x87, 0xE0, 0x04, 0x70, 0x88, 0xE0, 0x07, 0x4A, 0xA0, 0xE1, 0x27, 0x46, 0x84, 0xE1 - .byte 0x04, 0x40, 0x8E, 0xE0, 0x01, 0x10, 0x81, 0xE2, 0x04, 0x00, 0x51, 0xE3, 0xC4, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x70, 0xA0, 0xE3, 0x00, 0x80, 0x96, 0xE5, 0x0E, 0x10, 0x24, 0xE0, 0x01, 0x10, 0x2C, 0xE0 - .byte 0x01, 0x10, 0x85, 0xE0, 0x08, 0x81, 0x93, 0xE7, 0x00, 0x50, 0x92, 0xE5, 0x01, 0x10, 0x88, 0xE0 - .byte 0x01, 0x50, 0x85, 0xE0, 0x05, 0x12, 0xA0, 0xE1, 0x25, 0x1E, 0x81, 0xE1, 0x01, 0x50, 0x84, 0xE0 - .byte 0x04, 0x80, 0x96, 0xE5, 0x04, 0x10, 0x25, 0xE0, 0x01, 0x10, 0x2E, 0xE0, 0x08, 0x81, 0x93, 0xE7 - .byte 0x01, 0x10, 0x8C, 0xE0, 0x08, 0x90, 0x96, 0xE5, 0x04, 0xA0, 0x92, 0xE5, 0x01, 0x10, 0x88, 0xE0 - .byte 0x01, 0x80, 0x8A, 0xE0, 0x88, 0x15, 0xA0, 0xE1, 0xA8, 0x1A, 0x81, 0xE1, 0x01, 0xC0, 0x85, 0xE0 - .byte 0x05, 0x80, 0x2C, 0xE0, 0x08, 0x80, 0x24, 0xE0, 0x09, 0x91, 0x93, 0xE7, 0x08, 0x80, 0x8E, 0xE0 - .byte 0x08, 0x90, 0x89, 0xE0, 0x08, 0xA0, 0x92, 0xE5, 0x0C, 0x10, 0x82, 0xE2, 0x0C, 0x80, 0x96, 0xE5 - .byte 0x09, 0xA0, 0x8A, 0xE0, 0x08, 0x91, 0x93, 0xE7, 0x0A, 0x88, 0xA0, 0xE1, 0x2A, 0x88, 0x88, 0xE1 - .byte 0x08, 0xE0, 0x8C, 0xE0, 0x0C, 0x80, 0x2E, 0xE0, 0x08, 0x80, 0x25, 0xE0, 0x08, 0x40, 0x84, 0xE0 - .byte 0x01, 0x70, 0x87, 0xE2, 0x00, 0x10, 0x91, 0xE5, 0x04, 0x40, 0x89, 0xE0, 0x04, 0x40, 0x81, 0xE0 - .byte 0x84, 0x1B, 0xA0, 0xE1, 0xA4, 0x14, 0x81, 0xE1, 0x10, 0x20, 0x82, 0xE2, 0x10, 0x60, 0x86, 0xE2 - .byte 0x01, 0x40, 0x8E, 0xE0, 0x04, 0x00, 0x57, 0xE3, 0xCD, 0xFF, 0xFF, 0xBA, 0x00, 0xA0, 0xA0, 0xE3 - .byte 0x0C, 0x10, 0xE0, 0xE1, 0x00, 0x70, 0x96, 0xE5, 0x01, 0x10, 0x84, 0xE1, 0x01, 0x10, 0x2E, 0xE0 - .byte 0x07, 0x71, 0x93, 0xE7, 0x01, 0x10, 0x85, 0xE0, 0x00, 0x50, 0x92, 0xE5, 0x01, 0x10, 0x87, 0xE0 - .byte 0x01, 0x50, 0x85, 0xE0, 0x05, 0x13, 0xA0, 0xE1, 0x25, 0x1D, 0x81, 0xE1, 0x01, 0x50, 0x84, 0xE0 - .byte 0x0E, 0x10, 0xE0, 0xE1, 0x04, 0x70, 0x96, 0xE5, 0x01, 0x10, 0x85, 0xE1, 0x01, 0x10, 0x24, 0xE0 - .byte 0x08, 0x80, 0x96, 0xE5, 0x07, 0x71, 0x93, 0xE7, 0x01, 0x10, 0x8C, 0xE0, 0x04, 0x90, 0x92, 0xE5 - .byte 0x01, 0x10, 0x87, 0xE0, 0x01, 0x90, 0x89, 0xE0, 0x09, 0x75, 0xA0, 0xE1, 0x0C, 0x10, 0x86, 0xE2 - .byte 0x29, 0x9B, 0x87, 0xE1, 0x00, 0x10, 0x91, 0xE5, 0x0C, 0x70, 0x82, 0xE2, 0x09, 0xC0, 0x85, 0xE0 - .byte 0x08, 0x81, 0x93, 0xE7, 0x00, 0x70, 0x97, 0xE5, 0x01, 0x11, 0x93, 0xE7, 0x08, 0x90, 0x92, 0xE5 - .byte 0x04, 0xB0, 0xE0, 0xE1, 0x0B, 0xB0, 0x8C, 0xE1, 0x0B, 0xB0, 0x25, 0xE0, 0x0B, 0xB0, 0x8E, 0xE0 - .byte 0x0B, 0x80, 0x88, 0xE0, 0x08, 0x90, 0x89, 0xE0, 0x89, 0x87, 0xA0, 0xE1, 0xA9, 0x88, 0x88, 0xE1 - .byte 0x08, 0xE0, 0x8C, 0xE0, 0x10, 0x20, 0x82, 0xE2, 0x10, 0x60, 0x86, 0xE2, 0x05, 0x80, 0xE0, 0xE1 - .byte 0x08, 0x80, 0x8E, 0xE1, 0x08, 0x80, 0x2C, 0xE0, 0x08, 0x40, 0x84, 0xE0, 0x04, 0x10, 0x81, 0xE0 - .byte 0x01, 0x40, 0x87, 0xE0, 0x84, 0x1A, 0xA0, 0xE1, 0xA4, 0x15, 0x81, 0xE1, 0x01, 0x40, 0x8E, 0xE0 - .byte 0x01, 0xA0, 0x8A, 0xE2, 0x04, 0x00, 0x5A, 0xE3, 0xC8, 0xFF, 0xFF, 0xBA, 0x00, 0x10, 0x90, 0xE5 - .byte 0x05, 0x10, 0x81, 0xE0, 0x00, 0x10, 0x80, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x04, 0x10, 0x81, 0xE0 - .byte 0x04, 0x10, 0x80, 0xE5, 0x08, 0x10, 0x90, 0xE5, 0x0E, 0x10, 0x81, 0xE0, 0x08, 0x10, 0x80, 0xE5 - .byte 0x0C, 0x10, 0x90, 0xE5, 0x0C, 0x10, 0x81, 0xE0, 0x0C, 0x10, 0x80, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x69, 0x10, 0x02, 0x40, 0x68, 0x10, 0x02 - .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x60, 0xA0, 0xE1, 0x14, 0x10, 0x96, 0xE5 - .byte 0x10, 0x30, 0x96, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x81, 0x41, 0xA0, 0xE1, 0x9C, 0x10, 0x9F, 0xE5 - .byte 0x06, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE3, 0xA3, 0x4E, 0x84, 0xE1, 0x83, 0x51, 0xA0, 0xE1 - .byte 0x23, 0x00, 0x00, 0xEB, 0x10, 0x00, 0x96, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x3F, 0x30, 0x00, 0xE2 - .byte 0x40, 0x20, 0x63, 0xE2, 0x08, 0x00, 0x52, 0xE3, 0x06, 0x00, 0x00, 0x2A, 0x18, 0x00, 0x86, 0xE2 - .byte 0x03, 0x00, 0x80, 0xE0, 0xDC, 0xED, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0xED, 0xFE, 0xFF, 0xEB - .byte 0x00, 0x30, 0xA0, 0xE3, 0x40, 0x20, 0xA0, 0xE3, 0x08, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x9A - .byte 0x18, 0x00, 0x86, 0xE2, 0x03, 0x00, 0x80, 0xE0, 0x08, 0x20, 0x42, 0xE2, 0x00, 0x10, 0xA0, 0xE3 - .byte 0xD1, 0xED, 0xFF, 0xEB, 0x50, 0x50, 0x86, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0x54, 0x40, 0x86, 0xE5 - .byte 0xE0, 0xFE, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1, 0x10, 0x20, 0xA0, 0xE3 - .byte 0xEE, 0xED, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0x58, 0x20, 0xA0, 0xE3 - .byte 0xC5, 0xED, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x3C, 0x68, 0x10, 0x02, 0xF0, 0x43, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x80, 0xA0, 0xE1 - .byte 0x10, 0xC0, 0x88, 0xE2, 0x10, 0x40, 0x98, 0xE5, 0x02, 0x60, 0xA0, 0xE1, 0x3F, 0x30, 0x04, 0xE2 - .byte 0x04, 0x00, 0x9C, 0xE5, 0x06, 0x40, 0x94, 0xE0, 0x10, 0x40, 0x88, 0xE5, 0x00, 0x00, 0xA0, 0xE2 - .byte 0x40, 0x50, 0x63, 0xE2, 0x01, 0x70, 0xA0, 0xE1, 0x04, 0x00, 0x8C, 0xE5, 0x06, 0x00, 0x55, 0xE1 - .byte 0x0A, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x56, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x18, 0x10, 0x88, 0xE2, 0x07, 0x00, 0xA0, 0xE1, 0x03, 0x10, 0x81, 0xE0 - .byte 0xCE, 0xED, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x18, 0x10, 0x88, 0xE2, 0x07, 0x00, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x03, 0x10, 0x81, 0xE0 - .byte 0xC6, 0xED, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0xB2, 0xFE, 0xFF, 0xEB, 0x05, 0x60, 0x46, 0xE0 - .byte 0x26, 0x43, 0xA0, 0xE1, 0x00, 0x00, 0x54, 0xE3, 0x05, 0x90, 0x87, 0xE0, 0x0B, 0x00, 0x00, 0xDA - .byte 0x18, 0x70, 0x88, 0xE2, 0x40, 0x50, 0xA0, 0xE3, 0x09, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 - .byte 0x05, 0x20, 0xA0, 0xE1, 0xB9, 0xED, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0x40, 0x90, 0x89, 0xE2 - .byte 0xA4, 0xFE, 0xFF, 0xEB, 0x01, 0x40, 0x44, 0xE2, 0x00, 0x00, 0x54, 0xE3, 0xF5, 0xFF, 0xFF, 0xCA - .byte 0x3F, 0x20, 0x16, 0xE2, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x09, 0x00, 0xA0, 0xE1, 0x18, 0x10, 0x88, 0xE2, 0xAC, 0xED, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x28, 0x20, 0x9F, 0xE5, 0x28, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x20, 0x80, 0xE5, 0x24, 0x20, 0x9F, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x20, 0x10, 0x9F, 0xE5 - .byte 0x08, 0x20, 0x80, 0xE5, 0x0C, 0x10, 0x80, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x10, 0x10, 0x80, 0xE5 - .byte 0x14, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF - .byte 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10, 0xF0, 0x41, 0x2D, 0xE9, 0xA0, 0xD0, 0x4D, 0xE2 - .byte 0x78, 0xE0, 0x9F, 0xE5, 0x1C, 0xC0, 0x8D, 0xE2, 0x00, 0x80, 0xA0, 0xE1, 0x01, 0x70, 0xA0, 0xE1 - .byte 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1, 0x0C, 0x40, 0xA0, 0xE1, 0x0F, 0x00, 0xBE, 0xE8 - .byte 0x0F, 0x00, 0xAC, 0xE8, 0x07, 0x00, 0x9E, 0xE8, 0x07, 0x00, 0x8C, 0xE8, 0x38, 0xE0, 0x8D, 0xE2 - .byte 0x08, 0xC0, 0x8D, 0xE2, 0x24, 0xE0, 0x8D, 0xE5, 0x44, 0xE0, 0x9F, 0xE5, 0x28, 0xC0, 0x8D, 0xE5 - .byte 0x40, 0xC0, 0x9F, 0xE5, 0x2C, 0xE0, 0x8D, 0xE5, 0x3C, 0xE0, 0x9F, 0xE5, 0x30, 0xC0, 0x8D, 0xE5 - .byte 0xB8, 0xC0, 0x9D, 0xE5, 0x34, 0xE0, 0x8D, 0xE5, 0x00, 0xC0, 0x8D, 0xE5, 0x05, 0x30, 0xA0, 0xE1 - .byte 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0x04, 0x40, 0x8D, 0xE5 - .byte 0xF0, 0x00, 0x00, 0xEB, 0xA0, 0xD0, 0x8D, 0xE2, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0x6A, 0x10, 0x02, 0x68, 0x31, 0x0D, 0x02, 0x0C, 0x30, 0x0D, 0x02, 0x10, 0x2E, 0x0D, 0x02 - .byte 0x0F, 0x00, 0x2D, 0xE9, 0x70, 0x40, 0x2D, 0xE9, 0x10, 0x00, 0x9D, 0xE5, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x1C, 0x30, 0x90, 0xE5, 0x20, 0x50, 0x80, 0xE2, 0x03, 0x10, 0x13, 0xE2, 0x43, 0x01, 0xA0, 0xE1 - .byte 0x00, 0x10, 0xA0, 0x03, 0x00, 0x11, 0x85, 0x07, 0x10, 0x20, 0x9D, 0xE5, 0x80, 0x10, 0xA0, 0xE3 - .byte 0x20, 0x40, 0x82, 0xE2, 0x03, 0x10, 0xC4, 0xE7, 0x01, 0x30, 0x83, 0xE2, 0x03, 0x10, 0x13, 0xE2 - .byte 0x04, 0x00, 0x00, 0x0A, 0x00, 0x20, 0xA0, 0xE3, 0x03, 0x20, 0xC4, 0xE7, 0x01, 0x30, 0x83, 0xE2 - .byte 0x03, 0x10, 0x13, 0xE2, 0xFB, 0xFF, 0xFF, 0x1A, 0x10, 0x10, 0x9D, 0xE5, 0x01, 0x00, 0x80, 0xE2 - .byte 0x1C, 0x10, 0x91, 0xE5, 0x38, 0x00, 0x51, 0xE3, 0x0D, 0x00, 0x00, 0xBA, 0x10, 0x00, 0x50, 0xE3 - .byte 0x04, 0x00, 0x00, 0xAA, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x11, 0x85, 0xE7, 0x01, 0x00, 0x80, 0xE2 - .byte 0x10, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0xBA, 0x68, 0x11, 0x9F, 0xE5, 0x10, 0x00, 0x9D, 0xE5 - .byte 0x00, 0x30, 0x91, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x40, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x0E, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0xAA, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x11, 0x85, 0xE7, 0x01, 0x00, 0x80, 0xE2, 0x0E, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0xBA - .byte 0x10, 0x00, 0x9D, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x14, 0x20, 0x90, 0xE5, 0x24, 0x31, 0x9F, 0xE5 - .byte 0x3F, 0x20, 0xC4, 0xE5, 0x22, 0x04, 0xA0, 0xE1, 0x3E, 0x00, 0xC4, 0xE5, 0x22, 0x08, 0xA0, 0xE1 - .byte 0x3D, 0x00, 0xC4, 0xE5, 0x22, 0x0C, 0xA0, 0xE1, 0x3C, 0x00, 0xC4, 0xE5, 0x10, 0x00, 0x9D, 0xE5 - .byte 0x40, 0x20, 0xA0, 0xE3, 0x18, 0x50, 0x90, 0xE5, 0x3B, 0x50, 0xC4, 0xE5, 0x25, 0x04, 0xA0, 0xE1 - .byte 0x3A, 0x00, 0xC4, 0xE5, 0x25, 0x08, 0xA0, 0xE1, 0x39, 0x00, 0xC4, 0xE5, 0x25, 0x0C, 0xA0, 0xE1 - .byte 0x38, 0x00, 0xC4, 0xE5, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x30, 0x93, 0xE5, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x10, 0x00, 0x9D, 0xE5, 0x10, 0x10, 0x8D, 0xE2, 0x00, 0x30, 0x90, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x23, 0x2C, 0xA0, 0xE1, 0x00, 0x20, 0xC6, 0xE5, 0x23, 0x28, 0xA0, 0xE1, 0x01, 0x20, 0xC6, 0xE5 - .byte 0x23, 0x24, 0xA0, 0xE1, 0x02, 0x20, 0xC6, 0xE5, 0x03, 0x30, 0xC6, 0xE5, 0x10, 0x30, 0x9D, 0xE5 - .byte 0x04, 0x20, 0xA0, 0xE3, 0x04, 0x40, 0x93, 0xE5, 0x24, 0x3C, 0xA0, 0xE1, 0x04, 0x30, 0xC6, 0xE5 - .byte 0x24, 0x38, 0xA0, 0xE1, 0x05, 0x30, 0xC6, 0xE5, 0x24, 0x34, 0xA0, 0xE1, 0x06, 0x30, 0xC6, 0xE5 - .byte 0x07, 0x40, 0xC6, 0xE5, 0x10, 0x30, 0x9D, 0xE5, 0x08, 0x40, 0x93, 0xE5, 0x24, 0x3C, 0xA0, 0xE1 - .byte 0x08, 0x30, 0xC6, 0xE5, 0x24, 0x38, 0xA0, 0xE1, 0x09, 0x30, 0xC6, 0xE5, 0x24, 0x34, 0xA0, 0xE1 - .byte 0x0A, 0x30, 0xC6, 0xE5, 0x0B, 0x40, 0xC6, 0xE5, 0x10, 0x30, 0x9D, 0xE5, 0x0C, 0x40, 0x93, 0xE5 - .byte 0x24, 0x3C, 0xA0, 0xE1, 0x0C, 0x30, 0xC6, 0xE5, 0x24, 0x38, 0xA0, 0xE1, 0x0D, 0x30, 0xC6, 0xE5 - .byte 0x24, 0x34, 0xA0, 0xE1, 0x0E, 0x30, 0xC6, 0xE5, 0x0F, 0x40, 0xC6, 0xE5, 0x10, 0x30, 0x9D, 0xE5 - .byte 0x10, 0x40, 0x93, 0xE5, 0x24, 0x3C, 0xA0, 0xE1, 0x10, 0x30, 0xC6, 0xE5, 0x24, 0x38, 0xA0, 0xE1 - .byte 0x11, 0x30, 0xC6, 0xE5, 0x24, 0x34, 0xA0, 0xE1, 0x12, 0x30, 0xC6, 0xE5, 0x13, 0x40, 0xC6, 0xE5 - .byte 0x10, 0x30, 0x9D, 0xE5, 0x1C, 0x00, 0x83, 0xE5, 0x7F, 0xEC, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x6A, 0x10, 0x02, 0xF0, 0x41, 0x2D, 0xE9 - .byte 0x00, 0x80, 0xA0, 0xE1, 0x02, 0x60, 0xB0, 0xE1, 0x01, 0x70, 0xA0, 0xE1, 0x20, 0x50, 0x88, 0xE2 - .byte 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x14, 0x00, 0x98, 0xE5, 0x86, 0x11, 0x80, 0xE0 - .byte 0x00, 0x00, 0x51, 0xE1, 0x18, 0x00, 0x98, 0x35, 0x01, 0x00, 0x80, 0x32, 0x18, 0x00, 0x88, 0x35 - .byte 0x18, 0x00, 0x98, 0xE5, 0xA6, 0x0E, 0x80, 0xE0, 0x18, 0x00, 0x88, 0xE5, 0x14, 0x10, 0x88, 0xE5 - .byte 0x1C, 0x10, 0x98, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x1B, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x81, 0xE0 - .byte 0x40, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0x3A, 0x40, 0x40, 0x61, 0xE2, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x20, 0xA0, 0xE1, 0x01, 0x10, 0x85, 0xE0, 0xD8, 0xEC, 0xFF, 0xEB, 0xE0, 0x10, 0x9F, 0xE5 - .byte 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x40, 0x20, 0xA0, 0xE3 - .byte 0x04, 0x60, 0x46, 0xE0, 0x04, 0x70, 0x87, 0xE0, 0x33, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x1C, 0x00, 0x88, 0xE5, 0x08, 0x00, 0x00, 0xEA, 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1 - .byte 0x01, 0x10, 0x85, 0xE0, 0xC9, 0xEC, 0xFF, 0xEB, 0x1C, 0x00, 0x98, 0xE5, 0x06, 0x00, 0x80, 0xE0 - .byte 0x1C, 0x00, 0x88, 0xE5, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0x00, 0x56, 0xE3 - .byte 0x19, 0x00, 0x00, 0x3A, 0x3F, 0x40, 0xC6, 0xE3, 0x04, 0x60, 0x46, 0xE0, 0x03, 0x00, 0x17, 0xE2 - .byte 0x07, 0x00, 0x00, 0x1A, 0x78, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x30, 0x91, 0xE5 - .byte 0x07, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0x33, 0xFF, 0x2F, 0xE1, 0x04, 0x70, 0x87, 0xE0 - .byte 0x0D, 0x00, 0x00, 0xEA, 0x07, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x40, 0x20, 0xA0, 0xE3 - .byte 0xB2, 0xEC, 0xFF, 0xEB, 0x48, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x30, 0x91, 0xE5 - .byte 0x05, 0x10, 0xA0, 0xE1, 0x40, 0x20, 0xA0, 0xE3, 0x40, 0x70, 0x87, 0xE2, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x40, 0x40, 0x44, 0xE2, 0x00, 0x00, 0x54, 0xE3, 0xF1, 0xFF, 0xFF, 0xCA, 0x1C, 0x60, 0x88, 0xE5 - .byte 0x00, 0x00, 0x56, 0xE3, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x05, 0x10, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0xA0, 0xEC, 0xFF, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x6A, 0x10, 0x02, 0x34, 0x10, 0x9F, 0xE5, 0x34, 0x20, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x80, 0xE5, 0x30, 0x10, 0x9F, 0xE5, 0x04, 0x20, 0x80, 0xE5, 0x2C, 0x20, 0x9F, 0xE5 - .byte 0x08, 0x10, 0x80, 0xE5, 0x28, 0x10, 0x9F, 0xE5, 0x0C, 0x20, 0x80, 0xE5, 0x10, 0x10, 0x80, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x14, 0x10, 0x80, 0xE5, 0x18, 0x10, 0x80, 0xE5, 0x1C, 0x10, 0x80, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98 - .byte 0x76, 0x54, 0x32, 0x10, 0xF0, 0xE1, 0xD2, 0xC3, 0xF0, 0x43, 0x2D, 0xE9, 0xC4, 0xD0, 0x4D, 0xE2 - .byte 0xE0, 0x50, 0x9D, 0xE5, 0xE4, 0x40, 0x9D, 0xE5, 0x00, 0x90, 0xB0, 0xE1, 0x01, 0x80, 0xA0, 0xE1 - .byte 0x02, 0x70, 0xA0, 0xE1, 0x03, 0x60, 0xA0, 0xE1, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x58, 0xE3, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x57, 0xE3, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x56, 0xE3, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x55, 0xE3, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0x54, 0xE3, 0xC4, 0xD0, 0x8D, 0x02, 0xF0, 0x43, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x0D, 0x00, 0x00, 0xDA - .byte 0x08, 0x00, 0x94, 0xE5, 0x10, 0x10, 0x94, 0xE5, 0x31, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x94, 0xE5 - .byte 0x14, 0x30, 0x94, 0xE5, 0x06, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0x00, 0x94, 0xE5, 0x18, 0x20, 0x94, 0xE5, 0x00, 0x10, 0x8D, 0xE2, 0x32, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x50, 0x94, 0xE5, 0x00, 0x60, 0x8D, 0xE2, 0x00, 0x00, 0x55, 0xE3, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x06, 0x00, 0x00, 0xDA, 0x40, 0x20, 0x8D, 0xE2, 0x00, 0x10, 0xD6, 0xE7, 0x01, 0x00, 0x80, 0xE2 - .byte 0x05, 0x00, 0x50, 0xE1, 0x36, 0x10, 0x21, 0xE2, 0x01, 0x10, 0xC2, 0xE4, 0xF9, 0xFF, 0xFF, 0xBA - .byte 0x04, 0x10, 0x94, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0xAA, 0x40, 0x10, 0x8D, 0xE2 - .byte 0x00, 0x30, 0x81, 0xE0, 0x36, 0x20, 0xA0, 0xE3, 0x01, 0x20, 0xC3, 0xE4, 0x04, 0x10, 0x94, 0xE5 - .byte 0x01, 0x00, 0x80, 0xE2, 0x01, 0x00, 0x50, 0xE1, 0xFA, 0xFF, 0xFF, 0xBA, 0x08, 0x00, 0x94, 0xE5 - .byte 0x10, 0x10, 0x94, 0xE5, 0x31, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x94, 0xE5, 0x04, 0x20, 0x94, 0xE5 - .byte 0x14, 0x30, 0x94, 0xE5, 0x40, 0x10, 0x8D, 0xE2, 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x94, 0xE5 - .byte 0x14, 0x30, 0x94, 0xE5, 0x08, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0x00, 0x94, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x18, 0x20, 0x94, 0xE5, 0x32, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x55, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xDA, 0x80, 0x10, 0x8D, 0xE2 - .byte 0x02, 0x00, 0xD6, 0xE7, 0x01, 0x20, 0x82, 0xE2, 0x05, 0x00, 0x52, 0xE1, 0x5C, 0x00, 0x20, 0xE2 - .byte 0x01, 0x00, 0xC1, 0xE4, 0xF9, 0xFF, 0xFF, 0xBA, 0x04, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x52, 0xE1 - .byte 0x07, 0x00, 0x00, 0xAA, 0x80, 0x00, 0x8D, 0xE2, 0x02, 0x30, 0x80, 0xE0, 0x5C, 0x10, 0xA0, 0xE3 - .byte 0x01, 0x10, 0xC3, 0xE4, 0x04, 0x00, 0x94, 0xE5, 0x01, 0x20, 0x82, 0xE2, 0x00, 0x00, 0x52, 0xE1 - .byte 0xFA, 0xFF, 0xFF, 0xBA, 0x08, 0x00, 0x94, 0xE5, 0x10, 0x10, 0x94, 0xE5, 0x31, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0x00, 0x94, 0xE5, 0x04, 0x20, 0x94, 0xE5, 0x14, 0x30, 0x94, 0xE5, 0x80, 0x10, 0x8D, 0xE2 - .byte 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x94, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x00, 0x20, 0x94, 0xE5 - .byte 0x14, 0x30, 0x94, 0xE5, 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x94, 0xE5, 0x18, 0x20, 0x94, 0xE5 - .byte 0x09, 0x10, 0xA0, 0xE1, 0x32, 0xFF, 0x2F, 0xE1, 0xC4, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0x00, 0xFF, 0x00, 0x99, 0x79, 0x82, 0x5A, 0xA1, 0xEB, 0xD9, 0x6E - .byte 0xDC, 0xBC, 0x1B, 0x8F, 0xD6, 0xC1, 0x62, 0xCA, 0xF0, 0x5F, 0x2D, 0xE9, 0x08, 0x1E, 0x90, 0xE8 - .byte 0x84, 0xD0, 0x4D, 0xE2, 0x80, 0x20, 0x8D, 0xE5, 0x28, 0x80, 0x1F, 0xE5, 0x30, 0x70, 0x1F, 0xE5 - .byte 0x0D, 0x60, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, 0x04, 0x40, 0x91, 0xE4, 0x0C, 0x20, 0x88, 0xE0 - .byte 0xE3, 0x2D, 0x82, 0xE0, 0x07, 0xE0, 0x04, 0xE0, 0x64, 0x4C, 0x07, 0xE0, 0x6E, 0x44, 0x84, 0xE1 - .byte 0x40, 0x40, 0x86, 0xE5, 0x04, 0x40, 0x86, 0xE4, 0x04, 0x20, 0x82, 0xE0, 0x0B, 0x40, 0x2A, 0xE0 - .byte 0x09, 0x40, 0x04, 0xE0, 0x0B, 0x40, 0x24, 0xE0, 0x04, 0x20, 0x82, 0xE0, 0x69, 0x91, 0xA0, 0xE1 - .byte 0x0B, 0xC0, 0xA0, 0xE1, 0x0A, 0xB0, 0xA0, 0xE1, 0x09, 0xA0, 0xA0, 0xE1, 0x03, 0x90, 0xA0, 0xE1 - .byte 0x02, 0x30, 0xA0, 0xE1, 0x04, 0x50, 0x85, 0xE2, 0x40, 0x00, 0x55, 0xE3, 0xE9, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x70, 0xA0, 0xE3, 0x0D, 0x60, 0xA0, 0xE1, 0x00, 0x20, 0x96, 0xE5, 0x08, 0x50, 0x96, 0xE5 - .byte 0x20, 0x40, 0x96, 0xE5, 0x34, 0xE0, 0x96, 0xE5, 0x05, 0x20, 0x22, 0xE0, 0x0E, 0x40, 0x24, 0xE0 - .byte 0x04, 0x20, 0x22, 0xE0, 0xE2, 0x2F, 0xA0, 0xE1, 0x40, 0x20, 0x86, 0xE5, 0x04, 0x20, 0x86, 0xE4 - .byte 0x0C, 0x20, 0x82, 0xE0, 0x08, 0x20, 0x82, 0xE0, 0xE3, 0x2D, 0x82, 0xE0, 0x0B, 0x40, 0x2A, 0xE0 - .byte 0x09, 0x40, 0x04, 0xE0, 0x0B, 0x40, 0x24, 0xE0, 0x04, 0x20, 0x82, 0xE0, 0x69, 0x91, 0xA0, 0xE1 - .byte 0x0B, 0xC0, 0xA0, 0xE1, 0x0A, 0xB0, 0xA0, 0xE1, 0x09, 0xA0, 0xA0, 0xE1, 0x03, 0x90, 0xA0, 0xE1 - .byte 0x02, 0x30, 0xA0, 0xE1, 0x04, 0x70, 0x87, 0xE2, 0x10, 0x00, 0x57, 0xE3, 0xE5, 0xFF, 0xFF, 0xBA - .byte 0xFC, 0x80, 0x1F, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0x00, 0x20, 0x96, 0xE5, 0x08, 0x40, 0x96, 0xE5 - .byte 0x20, 0xE0, 0x96, 0xE5, 0x34, 0x50, 0x96, 0xE5, 0x04, 0x20, 0x22, 0xE0, 0x05, 0xE0, 0x2E, 0xE0 - .byte 0x0E, 0x20, 0x22, 0xE0, 0xE2, 0x2F, 0xA0, 0xE1, 0x40, 0x20, 0x86, 0xE5, 0x04, 0x20, 0x86, 0xE4 - .byte 0x0C, 0x20, 0x82, 0xE0, 0x08, 0x20, 0x82, 0xE0, 0xE3, 0x2D, 0x82, 0xE0, 0x0A, 0xE0, 0x29, 0xE0 - .byte 0x0B, 0xE0, 0x2E, 0xE0, 0x0E, 0x20, 0x82, 0xE0, 0x69, 0x91, 0xA0, 0xE1, 0x0B, 0xC0, 0xA0, 0xE1 - .byte 0x0A, 0xB0, 0xA0, 0xE1, 0x09, 0xA0, 0xA0, 0xE1, 0x03, 0x90, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 - .byte 0x01, 0x70, 0x87, 0xE2, 0x0C, 0x00, 0x57, 0xE3, 0x0D, 0x60, 0xA0, 0x01, 0x14, 0x00, 0x57, 0xE3 - .byte 0xE4, 0xFF, 0xFF, 0xBA, 0x6C, 0x81, 0x1F, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0x00, 0x20, 0x96, 0xE5 - .byte 0x08, 0xE0, 0x96, 0xE5, 0x20, 0x50, 0x96, 0xE5, 0x34, 0x40, 0x96, 0xE5, 0x0E, 0x20, 0x22, 0xE0 - .byte 0x04, 0x50, 0x25, 0xE0, 0x05, 0x20, 0x22, 0xE0, 0xE2, 0x2F, 0xA0, 0xE1, 0x40, 0x20, 0x86, 0xE5 - .byte 0x04, 0x20, 0x86, 0xE4, 0x0C, 0x20, 0x82, 0xE0, 0x08, 0x20, 0x82, 0xE0, 0xE3, 0x2D, 0x82, 0xE0 - .byte 0x0A, 0x50, 0x89, 0xE1, 0x0B, 0x50, 0x05, 0xE0, 0x0A, 0x40, 0x09, 0xE0, 0x04, 0x50, 0x85, 0xE1 - .byte 0x05, 0x20, 0x82, 0xE0, 0x69, 0x91, 0xA0, 0xE1, 0x0B, 0xC0, 0xA0, 0xE1, 0x0A, 0xB0, 0xA0, 0xE1 - .byte 0x09, 0xA0, 0xA0, 0xE1, 0x03, 0x90, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x01, 0x70, 0x87, 0xE2 - .byte 0x08, 0x00, 0x57, 0xE3, 0x0D, 0x60, 0xA0, 0x01, 0x14, 0x00, 0x57, 0xE3, 0xE2, 0xFF, 0xFF, 0xBA - .byte 0xE4, 0x81, 0x1F, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0x00, 0x20, 0x96, 0xE5, 0x08, 0x50, 0x96, 0xE5 - .byte 0x20, 0x40, 0x96, 0xE5, 0x34, 0xE0, 0x96, 0xE5, 0x05, 0x20, 0x22, 0xE0, 0x0E, 0x40, 0x24, 0xE0 - .byte 0x04, 0x20, 0x22, 0xE0, 0xE2, 0x2F, 0xA0, 0xE1, 0x40, 0x20, 0x86, 0xE5, 0x04, 0x20, 0x86, 0xE4 - .byte 0x0C, 0x20, 0x82, 0xE0, 0x08, 0x20, 0x82, 0xE0, 0xE3, 0x2D, 0x82, 0xE0, 0x0A, 0x40, 0x29, 0xE0 - .byte 0x0B, 0x40, 0x24, 0xE0, 0x04, 0x20, 0x82, 0xE0, 0x69, 0x91, 0xA0, 0xE1, 0x0B, 0xC0, 0xA0, 0xE1 - .byte 0x0A, 0xB0, 0xA0, 0xE1, 0x09, 0xA0, 0xA0, 0xE1, 0x03, 0x90, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 - .byte 0x01, 0x70, 0x87, 0xE2, 0x04, 0x00, 0x57, 0xE3, 0x0D, 0x60, 0xA0, 0x01, 0x14, 0x00, 0x57, 0xE3 - .byte 0xE4, 0xFF, 0xFF, 0xBA, 0xD4, 0x40, 0x90, 0xE8, 0x02, 0x30, 0x83, 0xE0, 0x04, 0x90, 0x89, 0xE0 - .byte 0x06, 0xA0, 0x8A, 0xE0, 0x07, 0xB0, 0x8B, 0xE0, 0x0E, 0xC0, 0x8C, 0xE0, 0x08, 0x1E, 0x80, 0xE8 - .byte 0x80, 0xE0, 0x9D, 0xE5, 0x40, 0xE0, 0x5E, 0xE2, 0x80, 0xE0, 0x8D, 0xE5, 0x65, 0xFF, 0xFF, 0xCA - .byte 0x84, 0xD0, 0x8D, 0xE2, 0xF0, 0x9F, 0xBD, 0xE8, 0x34, 0x10, 0x9F, 0xE5, 0x10, 0x00, 0x2D, 0xE9 - .byte 0x1C, 0x10, 0x91, 0xE8, 0x1C, 0x10, 0xA0, 0xE8, 0xB0, 0xC1, 0x51, 0xE1, 0x28, 0x10, 0x81, 0xE2 - .byte 0x0C, 0x00, 0x91, 0xE8, 0x0C, 0x00, 0xA0, 0xE8, 0x03, 0xC0, 0x0C, 0xE2, 0xB8, 0x20, 0x51, 0xE1 - .byte 0xB0, 0xC0, 0xC0, 0xE1, 0x01, 0x20, 0x02, 0xE2, 0xB2, 0x20, 0xC0, 0xE1, 0x10, 0x00, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x90, 0x02, 0x00, 0x04, 0x10, 0x00, 0x2D, 0xE9, 0x2C, 0x10, 0x9F, 0xE5 - .byte 0x1C, 0x10, 0x90, 0xE8, 0x1C, 0x10, 0x81, 0xE8, 0xB8, 0x21, 0xD0, 0xE1, 0xBA, 0x31, 0xD0, 0xE1 - .byte 0xB0, 0x21, 0x41, 0xE1, 0xB0, 0x32, 0xC1, 0xE1, 0x10, 0x00, 0x80, 0xE2, 0x28, 0x10, 0x81, 0xE2 - .byte 0x0C, 0x00, 0x90, 0xE8, 0x0C, 0x00, 0x81, 0xE8, 0x10, 0x00, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x90, 0x02, 0x00, 0x04, 0x08, 0x10, 0x9F, 0xE5, 0xB4, 0x13, 0xD1, 0xE1, 0x00, 0x00, 0x01, 0xE0 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02, 0x0C, 0x10, 0x9F, 0xE5, 0xB6, 0x23, 0xD1, 0xE1 - .byte 0x00, 0x20, 0x12, 0xE0, 0xFC, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x1C, 0x21, 0x9F, 0xE5, 0xB0, 0x23, 0xD2, 0xE1, 0x00, 0x00, 0x52, 0xE3 - .byte 0x09, 0x00, 0x00, 0x1A, 0xB0, 0x30, 0xD1, 0xE1, 0xB2, 0x20, 0xD1, 0xE1, 0xB0, 0x30, 0xC0, 0xE1 - .byte 0xB2, 0x20, 0xC0, 0xE1, 0xB4, 0x20, 0xD1, 0xE1, 0xB6, 0x10, 0xD1, 0xE1, 0xB4, 0x20, 0xC0, 0xE1 - .byte 0xB6, 0x10, 0xC0, 0xE1, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB4, 0x30, 0xD1, 0xE1 - .byte 0xE4, 0x20, 0x9F, 0xE5, 0xB4, 0x30, 0xC0, 0xE1, 0xB6, 0x30, 0xD1, 0xE1, 0xB6, 0x30, 0xC0, 0xE1 - .byte 0xB4, 0x30, 0xD1, 0xE1, 0x00, 0x00, 0x53, 0xE3, 0x00, 0x10, 0xA0, 0x03, 0xB0, 0x10, 0xC0, 0x01 - .byte 0xB2, 0x10, 0xC0, 0x01, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xB0, 0x40, 0xD1, 0xE1 - .byte 0x00, 0x30, 0x92, 0xE5, 0x08, 0xE0, 0x92, 0xE5, 0x04, 0xC1, 0xA0, 0xE1, 0xCC, 0x4F, 0xA0, 0xE1 - .byte 0x03, 0xC0, 0x5C, 0xE0, 0xC3, 0x3F, 0xC4, 0xE0, 0x9E, 0x6C, 0x85, 0xE0, 0x9E, 0x53, 0x25, 0xE0 - .byte 0xCE, 0x3F, 0xA0, 0xE1, 0x93, 0x5C, 0x25, 0xE0, 0x26, 0x3B, 0xA0, 0xE1, 0x05, 0x35, 0x83, 0xE1 - .byte 0xB0, 0x30, 0xC0, 0xE1, 0xF0, 0x30, 0xD0, 0xE1, 0x00, 0x00, 0x53, 0xE3, 0x00, 0x30, 0xA0, 0xB3 - .byte 0xB0, 0x30, 0xC0, 0xB1, 0x02, 0x00, 0x00, 0xBA, 0xFF, 0x00, 0x53, 0xE3, 0xFF, 0x30, 0xA0, 0xC3 - .byte 0xB0, 0x30, 0xC0, 0xC1, 0xB2, 0x30, 0xD1, 0xE1, 0x0C, 0x10, 0x92, 0xE5, 0x14, 0xC0, 0x92, 0xE5 - .byte 0x03, 0x31, 0xA0, 0xE1, 0xC3, 0x2F, 0xA0, 0xE1, 0x01, 0x30, 0x53, 0xE0, 0xC1, 0x1F, 0xC2, 0xE0 - .byte 0x9C, 0x43, 0x8E, 0xE0, 0x9C, 0xE1, 0x2E, 0xE0, 0xCC, 0x1F, 0xA0, 0xE1, 0x91, 0xE3, 0x2E, 0xE0 - .byte 0x24, 0x1B, 0xA0, 0xE1, 0x0E, 0x15, 0x81, 0xE1, 0xB2, 0x10, 0xC0, 0xE1, 0xF2, 0x10, 0xD0, 0xE1 - .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0xB3, 0xB2, 0x10, 0xC0, 0xB1, 0x70, 0x40, 0xBD, 0xB8 - .byte 0x1E, 0xFF, 0x2F, 0xB1, 0xBF, 0x00, 0x51, 0xE3, 0xBF, 0x10, 0xA0, 0xC3, 0xB2, 0x10, 0xC0, 0xC1 - .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02, 0x8C, 0x54, 0x1D, 0x02 - .byte 0xF0, 0x4F, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x60, 0xA0, 0xE1, 0x00, 0x70, 0xA0, 0xE1 - .byte 0x02, 0x50, 0xA0, 0xE1, 0x03, 0x40, 0xA0, 0xE1, 0x01, 0x0A, 0x56, 0xE3, 0x07, 0x00, 0x00, 0x2A - .byte 0x01, 0x0A, 0x55, 0xE3, 0x05, 0x00, 0x00, 0x2A, 0xBC, 0x82, 0xDD, 0xE1, 0x01, 0x0A, 0x58, 0xE3 - .byte 0x02, 0x00, 0x00, 0x2A, 0xB0, 0x33, 0xDD, 0xE1, 0x01, 0x0A, 0x53, 0xE3, 0x03, 0x00, 0x00, 0x3A - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x01, 0x0C, 0x54, 0xE3, 0x08, 0x00, 0x00, 0x2A, 0xB4, 0x23, 0xDD, 0xE1, 0x01, 0x0C, 0x52, 0xE3 - .byte 0x05, 0x00, 0x00, 0x2A, 0xB8, 0x12, 0xDD, 0xE1, 0xC0, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x2A - .byte 0xB8, 0x03, 0xDD, 0xE1, 0xC0, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x3A, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x02, 0x00, 0x54, 0xE1 - .byte 0x05, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x56, 0xE1 - .byte 0x01, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x55, 0xE1, 0x03, 0x00, 0x00, 0x1A, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x8B, 0xE6, 0xFF, 0xEB - .byte 0xBC, 0x12, 0xDD, 0xE1, 0x94, 0x31, 0x9F, 0xE5, 0x94, 0xB1, 0x9F, 0xE5, 0x00, 0x10, 0x8D, 0xE5 - .byte 0x00, 0x20, 0x9D, 0xE5, 0xB4, 0x13, 0xDD, 0xE1, 0x02, 0x90, 0x46, 0xE0, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x09, 0xC4, 0xA0, 0xE1, 0xB0, 0x20, 0xC3, 0xE1, 0x00, 0xC0, 0x8B, 0xE5, 0xB0, 0x83, 0xDD, 0xE1 - .byte 0xB8, 0xA3, 0xDD, 0xE1, 0xB8, 0x92, 0xDD, 0xE1, 0x68, 0xB1, 0x9F, 0xE5, 0x01, 0xC0, 0x44, 0xE0 - .byte 0x00, 0xC0, 0x8B, 0xE5, 0x04, 0x20, 0x8B, 0xE5, 0x08, 0xB0, 0x45, 0xE0, 0x0A, 0x20, 0x49, 0xE0 - .byte 0xB0, 0xC0, 0xD3, 0xE1, 0x02, 0xC9, 0x1C, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0x48, 0xC1, 0x9F, 0xE5 - .byte 0x0B, 0xB4, 0xA0, 0xE1, 0x00, 0xE0, 0x9C, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0xB0, 0xC0, 0xC3, 0xE1 - .byte 0x2C, 0x31, 0x9F, 0xE5, 0x02, 0x09, 0x5E, 0xE3, 0x00, 0xB0, 0x83, 0xE5, 0x24, 0x31, 0x9F, 0xE5 - .byte 0x00, 0x20, 0x83, 0xE5, 0x03, 0x20, 0xA0, 0xE1, 0x04, 0xC0, 0x82, 0xE5, 0x03, 0x00, 0x00, 0xAA - .byte 0x02, 0x29, 0xA0, 0xE3, 0x00, 0x20, 0x62, 0xE2, 0x02, 0x00, 0x5E, 0xE1, 0x04, 0x00, 0x00, 0xAA - .byte 0x67, 0xE6, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB4, 0xE0, 0xC7, 0xE1, 0xF4, 0xB0, 0xD7, 0xE1, 0x01, 0x30, 0x84, 0xE0 - .byte 0x00, 0x10, 0x9D, 0xE5, 0x01, 0x40, 0x86, 0xE0, 0x9B, 0x03, 0x01, 0xE0, 0x04, 0x34, 0xA0, 0xE1 - .byte 0x01, 0x10, 0x43, 0xE0, 0x81, 0x14, 0xA0, 0xE1, 0x41, 0x18, 0xA0, 0xE1, 0x02, 0x09, 0x51, 0xE3 - .byte 0x01, 0x00, 0x00, 0xAA, 0x02, 0x00, 0x51, 0xE1, 0x04, 0x00, 0x00, 0xAA, 0x54, 0xE6, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x98, 0x20, 0x9F, 0xE5, 0xB0, 0x10, 0xC7, 0xE1, 0xB0, 0x10, 0xD2, 0xE1, 0x02, 0x19, 0x11, 0xE2 - .byte 0xFC, 0xFF, 0xFF, 0x1A, 0x90, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0x91, 0xE5, 0x48, 0xE6, 0xFF, 0xEB - .byte 0x02, 0x09, 0x54, 0xE3, 0x03, 0x00, 0x00, 0xAA, 0x02, 0x09, 0xA0, 0xE3, 0x00, 0x10, 0x60, 0xE2 - .byte 0x01, 0x00, 0x54, 0xE1, 0x03, 0x00, 0x00, 0xAA, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB6, 0x40, 0xC7, 0xE1, 0xF6, 0x20, 0xD7, 0xE1 - .byte 0x0A, 0x00, 0x89, 0xE0, 0x08, 0x30, 0x85, 0xE0, 0x92, 0x00, 0x00, 0xE0, 0x03, 0x24, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x42, 0xE0, 0x80, 0x04, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0x02, 0x09, 0x50, 0xE3 - .byte 0x01, 0x00, 0x00, 0xAA, 0x01, 0x00, 0x50, 0xE1, 0x03, 0x00, 0x00, 0xAA, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB2, 0x00, 0xC7, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x80, 0x02, 0x00, 0x04, 0x90, 0x02, 0x00, 0x04, 0x98, 0x02, 0x00, 0x04, 0xA0, 0x02, 0x00, 0x04 - .byte 0x04, 0x00, 0x9F, 0xE5, 0xBC, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02 - .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x03, 0x10, 0xA0, 0xE3, 0x5C, 0xE1, 0x9F, 0xE5 - .byte 0xB6, 0x10, 0xC0, 0xE1, 0xBE, 0x10, 0xDE, 0xE1, 0xBC, 0x30, 0xDE, 0xE1, 0x01, 0x00, 0x51, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0xB4, 0x11, 0xDE, 0xE1, 0x01, 0x00, 0x51, 0xE3, 0x0E, 0x00, 0x00, 0x1A - .byte 0x38, 0x11, 0x9F, 0xE5, 0x83, 0x21, 0xA0, 0xE1, 0x10, 0x10, 0x91, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x83, 0x31, 0x81, 0xE0, 0xB2, 0x20, 0x91, 0xE1, 0xB2, 0x10, 0xD3, 0xE1, 0xB0, 0x20, 0xC0, 0xE1 - .byte 0xB2, 0x10, 0xC0, 0xE1, 0xB4, 0x20, 0xD3, 0xE1, 0xB6, 0x10, 0xD3, 0xE1, 0xB4, 0x20, 0xC0, 0xE1 - .byte 0xB6, 0x10, 0xC0, 0xE1, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x10, 0x80, 0xE2 - .byte 0x00, 0xC0, 0xA0, 0xE3, 0x31, 0x00, 0x00, 0xEA, 0x0C, 0x50, 0x53, 0xE0, 0x10, 0x20, 0x9E, 0xE5 - .byte 0x04, 0x50, 0x85, 0x40, 0x85, 0x21, 0x82, 0xE0, 0xB4, 0x40, 0xD2, 0xE1, 0x00, 0x00, 0x54, 0xE3 - .byte 0x0A, 0x00, 0x00, 0x1A, 0xB0, 0x30, 0xD2, 0xE1, 0xB2, 0x10, 0xD2, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xB0, 0x30, 0xC0, 0xE1, 0xB2, 0x10, 0xC0, 0xE1, 0xB4, 0x30, 0xD2, 0xE1, 0xB6, 0x10, 0xD2, 0xE1 - .byte 0xB4, 0x30, 0xC0, 0xE1, 0xB6, 0x10, 0xC0, 0xE1, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB6, 0x40, 0xD0, 0xE1, 0x01, 0x40, 0x14, 0xE2, 0x08, 0x00, 0x00, 0x0A, 0xB6, 0x40, 0xD2, 0xE1 - .byte 0x01, 0x40, 0x14, 0xE2, 0x05, 0x00, 0x00, 0x1A, 0xB0, 0x40, 0xD2, 0xE1, 0x00, 0x00, 0x5C, 0xE3 - .byte 0xB0, 0x40, 0xC0, 0xE1, 0xB0, 0x40, 0xD1, 0x11, 0x01, 0x40, 0xC4, 0x13, 0xB0, 0x40, 0xC1, 0x11 - .byte 0xB6, 0x40, 0xD0, 0xE1, 0x02, 0x40, 0x14, 0xE2, 0x08, 0x00, 0x00, 0x0A, 0xB6, 0x40, 0xD2, 0xE1 - .byte 0x02, 0x40, 0x14, 0xE2, 0x05, 0x00, 0x00, 0x1A, 0xB2, 0x20, 0xD2, 0xE1, 0x00, 0x00, 0x5C, 0xE3 - .byte 0xB2, 0x20, 0xC0, 0xE1, 0xB0, 0x20, 0xD1, 0x11, 0x02, 0x20, 0xC2, 0x13, 0xB0, 0x20, 0xC1, 0x11 - .byte 0xB6, 0x20, 0xD0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x01, 0x10, 0xA0, 0x03, 0xB4, 0x10, 0xC0, 0x01 - .byte 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0xC0, 0x8C, 0xE2 - .byte 0xBE, 0x20, 0xDE, 0xE1, 0x02, 0x00, 0x5C, 0xE1, 0x03, 0x00, 0x00, 0xAA, 0xB4, 0x41, 0xDE, 0xE1 - .byte 0x01, 0x20, 0x44, 0xE2, 0x02, 0x00, 0x5C, 0xE1, 0xC6, 0xFF, 0xFF, 0xBA, 0x01, 0x10, 0xA0, 0xE3 - .byte 0xB4, 0x10, 0xC0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x74, 0x54, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0xBC, 0xE5, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x88, 0x10, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x2B, 0xF0, 0xFF, 0xEB + + arm_func_start FS_GetOverlayFileID +FS_GetOverlayFileID: ; 0x020D2710 + sub sp, sp, #0x8 + ldr r2, _020D2734 ; =0x021D5414 + str r2, [sp, #0x0] + ldr r1, [r1, #0x18] + str r1, [sp, #0x4] + str r2, [r0, #0x0] + str r1, [r0, #0x4] + add sp, sp, #0x8 + bx lr + .balign 4 +_020D2734: .word 0x021D5414 + + arm_func_start FS_ClearOverlayImage +FS_ClearOverlayImage: ; 0x020D2738 + stmdb sp!, {r4-r6,lr} + ldr r5, [r0, #0x8] + ldr r1, [r0, #0xc] + ldr r6, [r0, #0x4] + add r4, r5, r1 + mov r0, r6 + mov r1, r4 + bl IC_InvalidateRange + mov r0, r6 + mov r1, r4 + bl DC_InvalidateRange + add r0, r6, r5 + sub r2, r4, r5 + mov r1, #0x0 + bl MI_CpuFill8 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FSi_GetOverlayBinarySize +FSi_GetOverlayBinarySize: ; 0x020D277C + ldrb r1, [r0, #0x1f] + ands r1, r1, #0x1 + ldrne r0, [r0, #0x1c] + movne r0, r0, lsl #0x8 + movne r0, r0, lsr #0x8 + ldreq r0, [r0, #0x8] + bx lr + + arm_func_start ProcessBlock +ProcessBlock: ; 0x020D2798 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + add r3, r0, #0x18 + ldr r5, [r0, #0x0] + ldr r4, [r0, #0x4] + ldr lr, [r0, #0x8] + ldr r12, [r0, #0xc] + ldr r2, _020D2B78 ; =0x02106900 + mov r8, r3 + mov r7, #0x0 +_020D27C0: + mvn r1, r4 + and r6, r4, lr + and r1, r1, r12 + orr r1, r6, r1 + ldr r6, [r8, #0x0] + add r1, r5, r1 + ldr r5, [r2, #0x0] + add r1, r6, r1 + add r5, r5, r1 + mov r1, r5, lsl #0x7 + orr r1, r1, r5, lsr #0x19 + add r5, r4, r1 + mvn r1, r5 + and r6, r5, r4 + and r1, r1, lr + orr r1, r6, r1 + ldr r6, [r8, #0x4] + add r1, r12, r1 + ldr r9, [r2, #0x4] + add r1, r6, r1 + add r6, r9, r1 + mov r1, r6, lsl #0xc + orr r1, r1, r6, lsr #0x14 + add r12, r5, r1 + mvn r1, r12 + and r6, r12, r5 + and r1, r1, r4 + orr r6, r6, r1 + add r1, r8, #0xc + ldr r9, [r8, #0x8] + add r6, lr, r6 + add r6, r9, r6 + ldr r9, [r2, #0x8] + ldr r1, [r1, #0x0] + add r10, r9, r6 + add r6, r2, #0xc + ldr r6, [r6, #0x0] + mov r9, r10, lsl #0x11 + orr r9, r9, r10, lsr #0xf + add lr, r12, r9 + add r2, r2, #0x10 + add r8, r8, #0x10 + and r10, lr, r12 + mvn r9, lr + and r9, r9, r5 + orr r9, r10, r9 + add r4, r4, r9 + add r1, r1, r4 + add r4, r6, r1 + mov r1, r4, lsl #0x16 + orr r1, r1, r4, lsr #0xa + add r4, lr, r1 + add r7, r7, #0x1 + cmp r7, #0x4 + blt _020D27C0 + ldr r6, _020D2B7C ; =0x02106840 + mov r1, #0x0 +_020D28A4: + mvn r7, r12 + ldr r9, [r6, #0x0] + and r8, r4, r12 + and r7, lr, r7 + orr r7, r8, r7 + ldr r8, [r3, r9, lsl #0x2] + add r5, r5, r7 + ldr r7, [r2, #0x0] + add r5, r8, r5 + add r7, r7, r5 + mov r5, r7, lsl #0x5 + orr r5, r5, r7, lsr #0x1b + add r5, r4, r5 + mvn r8, lr + ldr r7, [r6, #0x4] + and r9, r5, lr + and r8, r4, r8 + orr r10, r9, r8 + mvn r8, r4 + ldr r9, [r6, #0x8] + ldr r11, [r3, r7, lsl #0x2] + add r7, r12, r10 + add r10, r11, r7 + add r7, r6, #0xc + ldr r9, [r3, r9, lsl #0x2] + and r8, r5, r8 + ldr r7, [r7, #0x0] + ldr r11, [r2, #0x4] + ldr r7, [r3, r7, lsl #0x2] + add r11, r11, r10 + mov r10, r11, lsl #0x9 + orr r10, r10, r11, lsr #0x17 + add r12, r5, r10 + ldr r10, [r2, #0x8] + and r11, r12, r4 + orr r8, r11, r8 + add r8, lr, r8 + add r8, r9, r8 + add r10, r10, r8 + add r8, r2, #0xc + ldr r8, [r8, #0x0] + mov r9, r10, lsl #0xe + orr r9, r9, r10, lsr #0x12 + add lr, r12, r9 + add r2, r2, #0x10 + add r6, r6, #0x10 + and r10, lr, r5 + mvn r9, r5 + and r9, r12, r9 + orr r9, r10, r9 + add r4, r4, r9 + add r4, r7, r4 + add r7, r8, r4 + mov r4, r7, lsl #0x14 + orr r4, r4, r7, lsr #0xc + add r4, lr, r4 + add r1, r1, #0x1 + cmp r1, #0x4 + blt _020D28A4 + mov r7, #0x0 +_020D2994: + ldr r8, [r6, #0x0] + eor r1, r4, lr + eor r1, r12, r1 + add r1, r5, r1 + ldr r8, [r3, r8, lsl #0x2] + ldr r5, [r2, #0x0] + add r1, r8, r1 + add r5, r5, r1 + mov r1, r5, lsl #0x4 + orr r1, r1, r5, lsr #0x1c + add r5, r4, r1 + ldr r8, [r6, #0x4] + eor r1, r5, r4 + eor r1, lr, r1 + ldr r8, [r3, r8, lsl #0x2] + add r1, r12, r1 + ldr r9, [r6, #0x8] + ldr r10, [r2, #0x4] + add r1, r8, r1 + add r8, r10, r1 + mov r1, r8, lsl #0xb + orr r1, r1, r8, lsr #0x15 + add r12, r5, r1 + eor r8, r12, r5 + eor r8, r4, r8 + ldr r9, [r3, r9, lsl #0x2] + add r8, lr, r8 + add r9, r9, r8 + ldr r10, [r2, #0x8] + add r1, r2, #0xc + ldr r8, [r6, #0xc] + add r10, r10, r9 + ldr r9, [r3, r8, lsl #0x2] + mov r8, r10, lsl #0x10 + orr r8, r8, r10, lsr #0x10 + add lr, r12, r8 + eor r8, lr, r12 + eor r8, r5, r8 + add r4, r4, r8 + add r7, r7, #0x1 + ldr r1, [r1, #0x0] + add r4, r9, r4 + add r4, r1, r4 + mov r1, r4, lsl #0x17 + orr r1, r1, r4, lsr #0x9 + add r2, r2, #0x10 + add r6, r6, #0x10 + add r4, lr, r1 + cmp r7, #0x4 + blt _020D2994 + mov r10, #0x0 +_020D2A60: + mvn r1, r12 + ldr r7, [r6, #0x0] + orr r1, r4, r1 + eor r1, lr, r1 + ldr r7, [r3, r7, lsl #0x2] + add r1, r5, r1 + ldr r5, [r2, #0x0] + add r1, r7, r1 + add r5, r5, r1 + mov r1, r5, lsl #0x6 + orr r1, r1, r5, lsr #0x1a + add r5, r4, r1 + mvn r1, lr + ldr r7, [r6, #0x4] + orr r1, r5, r1 + eor r1, r4, r1 + ldr r8, [r6, #0x8] + ldr r7, [r3, r7, lsl #0x2] + add r1, r12, r1 + ldr r9, [r2, #0x4] + add r1, r7, r1 + add r9, r9, r1 + mov r7, r9, lsl #0xa + add r1, r6, #0xc + orr r9, r7, r9, lsr #0x16 + ldr r1, [r1, #0x0] + add r7, r2, #0xc + add r12, r5, r9 + ldr r8, [r3, r8, lsl #0x2] + ldr r7, [r7, #0x0] + ldr r1, [r3, r1, lsl #0x2] + ldr r9, [r2, #0x8] + mvn r11, r4 + orr r11, r12, r11 + eor r11, r5, r11 + add r11, lr, r11 + add r8, r8, r11 + add r9, r9, r8 + mov r8, r9, lsl #0xf + orr r8, r8, r9, lsr #0x11 + add lr, r12, r8 + add r2, r2, #0x10 + add r6, r6, #0x10 + mvn r8, r5 + orr r8, lr, r8 + eor r8, r12, r8 + add r4, r4, r8 + add r1, r1, r4 + add r4, r7, r1 + mov r1, r4, lsl #0x15 + orr r1, r1, r4, lsr #0xb + add r4, lr, r1 + add r10, r10, #0x1 + cmp r10, #0x4 + blt _020D2A60 + ldr r1, [r0, #0x0] + add r1, r1, r5 + str r1, [r0, #0x0] + ldr r1, [r0, #0x4] + add r1, r1, r4 + str r1, [r0, #0x4] + ldr r1, [r0, #0x8] + add r1, r1, lr + str r1, [r0, #0x8] + ldr r1, [r0, #0xc] + add r1, r1, r12 + str r1, [r0, #0xc] + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020D2B78: .word 0x02106900 +_020D2B7C: .word 0x02106840 + + arm_func_start MATH_MD5GetHash +MATH_MD5GetHash: ; 0x020D2B80 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + ldr r1, [r6, #0x14] + ldr r3, [r6, #0x10] + mov r7, r0 + mov r4, r1, lsl #0x3 + ldr r1, _020D2C40 ; =0x0210683C + mov r0, r6 + mov r2, #0x1 + orr r4, r4, r3, lsr #0x1d + mov r5, r3, lsl #0x3 + bl MATH_MD5Update + ldr r0, [r6, #0x10] + mov r1, #0x0 + and r3, r0, #0x3f + rsb r2, r3, #0x40 + cmp r2, #0x8 + bhs _020D2BE8 + add r0, r6, #0x18 + add r0, r0, r3 + bl MI_CpuFill8 + mov r0, r6 + bl ProcessBlock + mov r3, #0x0 + mov r2, #0x40 +_020D2BE8: + cmp r2, #0x8 + bls _020D2C04 + add r0, r6, #0x18 + add r0, r0, r3 + sub r2, r2, #0x8 + mov r1, #0x0 + bl MI_CpuFill8 +_020D2C04: + str r5, [r6, #0x50] + mov r0, r6 + str r4, [r6, #0x54] + bl ProcessBlock + mov r0, r6 + mov r1, r7 + mov r2, #0x10 + bl MI_CpuCopy8 + mov r0, r6 + mov r1, #0x0 + mov r2, #0x58 + bl MI_CpuFill8 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020D2C40: .word 0x0210683C + + arm_func_start MATH_MD5Update +MATH_MD5Update: ; 0x020D2C44 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r8, r0 + add r12, r8, #0x10 + ldr r4, [r8, #0x10] + mov r6, r2 + and r3, r4, #0x3f + ldr r0, [r12, #0x4] + adds r4, r4, r6 + str r4, [r8, #0x10] + adc r0, r0, #0x0 + rsb r5, r3, #0x40 + mov r7, r1 + str r0, [r12, #0x4] + cmp r5, r6 + bls _020D2CB0 + cmp r6, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + add r1, r8, #0x18 + mov r0, r7 + add r1, r1, r3 + bl MI_CpuCopy8 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr +_020D2CB0: + add r1, r8, #0x18 + mov r0, r7 + mov r2, r5 + add r1, r1, r3 + bl MI_CpuCopy8 + mov r0, r8 + bl ProcessBlock + sub r6, r6, r5 + mov r4, r6, lsr #0x6 + cmp r4, #0x0 + add r9, r7, r5 + ble _020D2D10 + add r7, r8, #0x18 + mov r5, #0x40 +_020D2CE8: + mov r0, r9 + mov r1, r7 + mov r2, r5 + bl MI_CpuCopy8 + mov r0, r8 + add r9, r9, #0x40 + bl ProcessBlock + sub r4, r4, #0x1 + cmp r4, #0x0 + bgt _020D2CE8 +_020D2D10: + ands r2, r6, #0x3f + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + mov r0, r9 + add r1, r8, #0x18 + bl MI_CpuCopy8 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start MATH_MD5Init +MATH_MD5Init: ; 0x020D2D38 + ldr r2, _020D2D68 ; =0x67452301 + ldr r1, _020D2D6C ; =0xEFCDAB89 + str r2, [r0, #0x0] + ldr r2, _020D2D70 ; =0x98BADCFE + str r1, [r0, #0x4] + ldr r1, _020D2D74 ; =0x10325476 + str r2, [r0, #0x8] + str r1, [r0, #0xc] + mov r1, #0x0 + str r1, [r0, #0x10] + str r1, [r0, #0x14] + bx lr + .balign 4 +_020D2D68: .word 0x67452301 +_020D2D6C: .word 0xEFCDAB89 +_020D2D70: .word 0x98BADCFE +_020D2D74: .word 0x10325476 + + arm_func_start MATH_CalcHMACSHA1 +MATH_CalcHMACSHA1: ; 0x020D2D78 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0xa0 + ldr lr, _020D2E00 ; =0x02106A04 + add r12, sp, #0x1c + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + mov r4, r12 + ldmia lr!, {r0-r3} + stmia r12!, {r0-r3} + ldmia lr, {r0-r2} + stmia r12, {r0-r2} + add lr, sp, #0x38 + add r12, sp, #0x8 + str lr, [sp, #0x24] + ldr lr, _020D2E04 ; =MATH_SHA1Init + str r12, [sp, #0x28] + ldr ip, _020D2E08 ; =MATH_SHA1Update + str lr, [sp, #0x2c] + ldr lr, _020D2E0C ; =MATH_SHA1GetHash + str r12, [sp, #0x30] + ldr r12, [sp, #0xb8] + str lr, [sp, #0x34] + str r12, [sp, #0x0] + mov r3, r5 + mov r0, r8 + mov r1, r7 + mov r2, r6 + str r4, [sp, #0x4] + bl MATHi_CalcHMAC + add sp, sp, #0xa0 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020D2E00: .word 0x02106A04 +_020D2E04: .word MATH_SHA1Init +_020D2E08: .word MATH_SHA1Update +_020D2E0C: .word MATH_SHA1GetHash + + arm_func_start MATH_SHA1GetHash +MATH_SHA1GetHash: ; 0x020D2E10 + stmdb sp!, {r0-r3} + stmdb sp!, {r4-r6,lr} + ldr r0, [sp, #0x10] + mov r6, r1 + ldr r3, [r0, #0x1c] + add r5, r0, #0x20 + ands r1, r3, #0x3 + mov r0, r3, asr #0x2 + moveq r1, #0x0 + streq r1, [r5, r0, lsl #0x2] + ldr r2, [sp, #0x10] + mov r1, #0x80 + add r4, r2, #0x20 + strb r1, [r4, r3] + add r3, r3, #0x1 + ands r1, r3, #0x3 + beq _020D2E68 + mov r2, #0x0 +_020D2E58: + strb r2, [r4, r3] + add r3, r3, #0x1 + ands r1, r3, #0x3 + bne _020D2E58 +_020D2E68: + ldr r1, [sp, #0x10] + add r0, r0, #0x1 + ldr r1, [r1, #0x1c] + cmp r1, #0x38 + blt _020D2EB4 + cmp r0, #0x10 + bge _020D2E98 + mov r1, #0x0 +_020D2E88: + str r1, [r5, r0, lsl #0x2] + add r0, r0, #0x1 + cmp r0, #0x10 + blt _020D2E88 +_020D2E98: + ldr r1, _020D3008 ; =0x02106A00 + ldr r0, [sp, #0x10] + ldr r3, [r1, #0x0] + mov r1, r5 + mov r2, #0x40 + blx r3 + mov r0, #0x0 +_020D2EB4: + cmp r0, #0xe + bge _020D2ED0 + mov r1, #0x0 +_020D2EC0: + str r1, [r5, r0, lsl #0x2] + add r0, r0, #0x1 + cmp r0, #0xe + blt _020D2EC0 +_020D2ED0: + ldr r0, [sp, #0x10] + mov r1, r5 + ldr r2, [r0, #0x14] + ldr r3, _020D3008 ; =0x02106A00 + strb r2, [r4, #0x3f] + mov r0, r2, lsr #0x8 + strb r0, [r4, #0x3e] + mov r0, r2, lsr #0x10 + strb r0, [r4, #0x3d] + mov r0, r2, lsr #0x18 + strb r0, [r4, #0x3c] + ldr r0, [sp, #0x10] + mov r2, #0x40 + ldr r5, [r0, #0x18] + strb r5, [r4, #0x3b] + mov r0, r5, lsr #0x8 + strb r0, [r4, #0x3a] + mov r0, r5, lsr #0x10 + strb r0, [r4, #0x39] + mov r0, r5, lsr #0x18 + strb r0, [r4, #0x38] + ldr r0, [sp, #0x10] + ldr r3, [r3, #0x0] + blx r3 + ldr r0, [sp, #0x10] + add r1, sp, #0x10 + ldr r3, [r0, #0x0] + mov r0, #0x0 + mov r2, r3, lsr #0x18 + strb r2, [r6, #0x0] + mov r2, r3, lsr #0x10 + strb r2, [r6, #0x1] + mov r2, r3, lsr #0x8 + strb r2, [r6, #0x2] + strb r3, [r6, #0x3] + ldr r3, [sp, #0x10] + mov r2, #0x4 + ldr r4, [r3, #0x4] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0x4] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0x5] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0x6] + strb r4, [r6, #0x7] + ldr r3, [sp, #0x10] + ldr r4, [r3, #0x8] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0x8] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0x9] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0xa] + strb r4, [r6, #0xb] + ldr r3, [sp, #0x10] + ldr r4, [r3, #0xc] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0xc] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0xd] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0xe] + strb r4, [r6, #0xf] + ldr r3, [sp, #0x10] + ldr r4, [r3, #0x10] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0x10] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0x11] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0x12] + strb r4, [r6, #0x13] + ldr r3, [sp, #0x10] + str r0, [r3, #0x1c] + bl MIi_CpuClear32 + ldmia sp!, {r4-r6,lr} + add sp, sp, #0x10 + bx lr + .balign 4 +_020D3008: .word 0x02106A00 + + arm_func_start MATH_SHA1Update +MATH_SHA1Update: ; 0x020D300C + stmdb sp!, {r4-r8,lr} + mov r8, r0 + movs r6, r2 + mov r7, r1 + add r5, r8, #0x20 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r0, [r8, #0x14] + add r1, r0, r6, lsl #0x3 + cmp r1, r0 + ldrcc r0, [r8, #0x18] + addcc r0, r0, #0x1 + strcc r0, [r8, #0x18] + ldr r0, [r8, #0x18] + add r0, r0, r6, lsr #0x1d + str r0, [r8, #0x18] + str r1, [r8, #0x14] + ldr r1, [r8, #0x1c] + cmp r1, #0x0 + beq _020D30CC + add r0, r1, r6 + cmp r0, #0x40 + blo _020D30A8 + rsb r4, r1, #0x40 + mov r0, r7 + mov r2, r4 + add r1, r5, r1 + bl MI_CpuCopy8 + ldr r1, _020D3164 ; =0x02106A00 + mov r0, r8 + ldr r3, [r1, #0x0] + mov r1, r5 + mov r2, #0x40 + sub r6, r6, r4 + add r7, r7, r4 + blx r3 + mov r0, #0x0 + str r0, [r8, #0x1c] + b _020D30CC +_020D30A8: + mov r0, r7 + mov r2, r6 + add r1, r5, r1 + bl MI_CpuCopy8 + ldr r0, [r8, #0x1c] + add r0, r0, r6 + str r0, [r8, #0x1c] + ldmia sp!, {r4-r8,lr} + bx lr +_020D30CC: + cmp r6, #0x40 + blo _020D313C + bic r4, r6, #0x3f + sub r6, r6, r4 + ands r0, r7, #0x3 + bne _020D3104 + ldr r1, _020D3164 ; =0x02106A00 + mov r0, r8 + ldr r3, [r1, #0x0] + mov r1, r7 + mov r2, r4 + blx r3 + add r7, r7, r4 + b _020D313C +_020D3104: + mov r0, r7 + mov r1, r5 + mov r2, #0x40 + bl MI_CpuCopy8 + ldr r1, _020D3164 ; =0x02106A00 + mov r0, r8 + ldr r3, [r1, #0x0] + mov r1, r5 + mov r2, #0x40 + add r7, r7, #0x40 + blx r3 + sub r4, r4, #0x40 + cmp r4, #0x0 + bgt _020D3104 +_020D313C: + str r6, [r8, #0x1c] + cmp r6, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r0, r7 + mov r1, r5 + mov r2, r6 + bl MI_CpuCopy8 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020D3164: .word 0x02106A00 + + arm_func_start MATH_SHA1Init +MATH_SHA1Init: ; 0x020D3168 + ldr r1, _020D31A4 ; =0x67452301 + ldr r2, _020D31A8 ; =0xEFCDAB89 + str r1, [r0, #0x0] + ldr r1, _020D31AC ; =0x98BADCFE + str r2, [r0, #0x4] + ldr r2, _020D31B0 ; =0x10325476 + str r1, [r0, #0x8] + ldr r1, _020D31B4 ; =0xC3D2E1F0 + str r2, [r0, #0xc] + str r1, [r0, #0x10] + mov r1, #0x0 + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + bx lr + .balign 4 +_020D31A4: .word 0x67452301 +_020D31A8: .word 0xEFCDAB89 +_020D31AC: .word 0x98BADCFE +_020D31B0: .word 0x10325476 +_020D31B4: .word 0xC3D2E1F0 + + arm_func_start MATHi_CalcHMAC +MATHi_CalcHMAC: ; 0x020D31B8 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0xc4 + ldr r5, [sp, #0xe0] + ldr r4, [sp, #0xe4] + movs r9, r0 + mov r8, r1 + mov r7, r2 + mov r6, r3 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r8, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r7, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r6, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r5, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r4, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + ldr r0, [r4, #0x4] + cmp r5, r0 + ble _020D3278 + ldr r0, [r4, #0x8] + ldr r1, [r4, #0x10] + blx r1 + ldr r0, [r4, #0x8] + ldr r3, [r4, #0x14] + mov r1, r6 + mov r2, r5 + blx r3 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x18] + add r1, sp, #0x0 + blx r2 + ldr r5, [r4, #0x0] + add r6, sp, #0x0 +_020D3278: + cmp r5, #0x0 + mov r0, #0x0 + ble _020D32A0 + add r2, sp, #0x40 +_020D3288: + ldrb r1, [r6, r0] + add r0, r0, #0x1 + cmp r0, r5 + eor r1, r1, #0x36 + strb r1, [r2], #0x1 + blt _020D3288 +_020D32A0: + ldr r1, [r4, #0x4] + cmp r0, r1 + bge _020D32CC + add r1, sp, #0x40 + add r3, r1, r0 + mov r2, #0x36 +_020D32B8: + strb r2, [r3], #0x1 + ldr r1, [r4, #0x4] + add r0, r0, #0x1 + cmp r0, r1 + blt _020D32B8 +_020D32CC: + ldr r0, [r4, #0x8] + ldr r1, [r4, #0x10] + blx r1 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x4] + ldr r3, [r4, #0x14] + add r1, sp, #0x40 + blx r3 + ldr r0, [r4, #0x8] + ldr r3, [r4, #0x14] + mov r1, r8 + mov r2, r7 + blx r3 + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x18] + blx r2 + cmp r5, #0x0 + mov r2, #0x0 + ble _020D3338 + add r1, sp, #0x80 +_020D3320: + ldrb r0, [r6, r2] + add r2, r2, #0x1 + cmp r2, r5 + eor r0, r0, #0x5c + strb r0, [r1], #0x1 + blt _020D3320 +_020D3338: + ldr r0, [r4, #0x4] + cmp r2, r0 + bge _020D3364 + add r0, sp, #0x80 + add r3, r0, r2 + mov r1, #0x5c +_020D3350: + strb r1, [r3], #0x1 + ldr r0, [r4, #0x4] + add r2, r2, #0x1 + cmp r2, r0 + blt _020D3350 +_020D3364: + ldr r0, [r4, #0x8] + ldr r1, [r4, #0x10] + blx r1 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x4] + ldr r3, [r4, #0x14] + add r1, sp, #0x80 + blx r3 + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x0] + ldr r3, [r4, #0x14] + blx r3 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x18] + mov r1, r9 + blx r2 + add sp, sp, #0xc4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_020D33B4: .word 0x00FF00FF +_020D33B8: .word 0x5A827999 +_020D33BC: .word 0x6ED9EBA1 +_020D33C0: .word 0x8F1BBCDC +_020D33C4: .word 0xCA62C1D6 + + arm_func_start MATHi_SHA1ProcessBlock +MATHi_SHA1ProcessBlock: ; 0x020D33C8 + stmdb sp!, {r4-r12,lr} + ldmia r0, {r3,r9-r12} + sub sp, sp, #0x84 + str r2, [sp, #0x80] +_020D33D8: + ldr r8, _020D33B8 ; =0x5A827999 + ldr r7, _020D33B4 ; =0x00FF00FF + mov r6, sp + mov r5, #0x0 +_020D33E8: + ldr r4, [r1], #0x4 + add r2, r8, r12 + add r2, r2, r3, ror #27 + and lr, r4, r7 + and r4, r7, r4, ror #24 + orr r4, r4, lr, ror #8 + str r4, [r6, #0x40] + str r4, [r6], #0x4 + add r2, r2, r4 + eor r4, r10, r11 + and r4, r4, r9 + eor r4, r4, r11 + add r2, r2, r4 + mov r9, r9, ror #2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r5, r5, #0x4 + cmp r5, #0x40 + blt _020D33E8 + mov r7, #0x0 + mov r6, sp +_020D3448: + ldr r2, [r6, #0x0] + ldr r5, [r6, #0x8] + ldr r4, [r6, #0x20] + ldr lr, [r6, #0x34] + eor r2, r2, r5 + eor r4, r4, lr + eor r2, r2, r4 + mov r2, r2, ror #31 + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #27 + eor r4, r10, r11 + and r4, r4, r9 + eor r4, r4, r11 + add r2, r2, r4 + mov r9, r9, ror #2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x4 + cmp r7, #0x10 + blt _020D3448 + ldr r8, _020D33BC ; =0x6ED9EBA1 + mov r7, #0x0 +_020D34B8: + ldr r2, [r6, #0x0] + ldr r4, [r6, #0x8] + ldr lr, [r6, #0x20] + ldr r5, [r6, #0x34] + eor r2, r2, r4 + eor lr, lr, r5 + eor r2, r2, lr + mov r2, r2, ror #31 + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #27 + eor lr, r9, r10 + eor lr, lr, r11 + add r2, r2, lr + mov r9, r9, ror #2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x1 + cmp r7, #0xc + moveq r6, sp + cmp r7, #0x14 + blt _020D34B8 + ldr r8, _020D33C0 ; =0x8F1BBCDC + mov r7, #0x0 +_020D352C: + ldr r2, [r6, #0x0] + ldr lr, [r6, #0x8] + ldr r5, [r6, #0x20] + ldr r4, [r6, #0x34] + eor r2, r2, lr + eor r5, r5, r4 + eor r2, r2, r5 + mov r2, r2, ror #31 + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #27 + orr r5, r9, r10 + and r5, r5, r11 + and r4, r9, r10 + orr r5, r5, r4 + add r2, r2, r5 + mov r9, r9, ror #2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x1 + cmp r7, #0x8 + moveq r6, sp + cmp r7, #0x14 + blt _020D352C + ldr r8, _020D33C4 ; =0xCA62C1D6 + mov r7, #0x0 +_020D35A8: + ldr r2, [r6, #0x0] + ldr r5, [r6, #0x8] + ldr r4, [r6, #0x20] + ldr lr, [r6, #0x34] + eor r2, r2, r5 + eor r4, r4, lr + eor r2, r2, r4 + mov r2, r2, ror #31 + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #27 + eor r4, r9, r10 + eor r4, r4, r11 + add r2, r2, r4 + mov r9, r9, ror #2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x1 + cmp r7, #0x4 + moveq r6, sp + cmp r7, #0x14 + blt _020D35A8 + ldmia r0, {r2,r4,r6-r7,lr} + add r3, r3, r2 + add r9, r9, r4 + add r10, r10, r6 + add r11, r11, r7 + add r12, r12, lr + stmia r0, {r3,r9-r12} + ldr lr, [sp, #0x80] + subs lr, lr, #0x40 + str lr, [sp, #0x80] + bgt _020D33D8 + add sp, sp, #0x84 + ldmia sp!, {r4-r12,pc} + + arm_func_start CP_SaveContext +CP_SaveContext: ; 0x020D3648 + ldr r1, _020D3684 ; =0x04000290 + stmdb sp!, {r4} + ldmia r1, {r2-r4,r12} + stmia r0!, {r2-r4,r12} + ldrh r12, [r1, #-0x10] + add r1, r1, #0x28 + ldmia r1, {r2-r3} + stmia r0!, {r2-r3} + and r12, r12, #0x3 + ldrh r2, [r1, #-0x8] + strh r12, [r0, #0x0] + and r2, r2, #0x1 + strh r2, [r0, #0x2] + ldmia sp!, {r4} + bx lr + .balign 4 +_020D3684: .word 0x04000290 + + arm_func_start CP_RestoreContext +CP_RestoreContext: ; 0x020D3688 + stmdb sp!, {r4} + ldr r1, _020D36C0 ; =0x04000290 + ldmia r0, {r2-r4,r12} + stmia r1, {r2-r4,r12} + ldrh r2, [r0, #0x18] + ldrh r3, [r0, #0x1a] + strh r2, [r1, #-0x10] + strh r3, [r1, #0x20] + add r0, r0, #0x10 + add r1, r1, #0x28 + ldmia r0, {r2-r3} + stmia r1, {r2-r3} + ldmia sp!, {r4} + bx lr + .balign 4 +_020D36C0: .word 0x04000290 + + arm_func_start TP_CheckError +TP_CheckError: ; 0x020D36C4 + ldr r1, _020D36D4 ; =0x021D5474 + ldrh r1, [r1, #0x34] + and r0, r1, r0 + bx lr + .balign 4 +_020D36D4: .word 0x021D5474 + + arm_func_start TP_WaitBusy +TP_WaitBusy: ; 0x020D36D8 + ldr r1, _020D36EC ; =0x021D5474 +_020D36DC: + ldrh r2, [r1, #0x36] + ands r2, r2, r0 + bne _020D36DC + bx lr + .balign 4 +_020D36EC: .word 0x021D5474 + + arm_func_start TP_GetCalibratedPoint +TP_GetCalibratedPoint: ; 0x020D36F0 + stmdb sp!, {r4-r6,lr} + ldr r2, _020D3818 ; =0x021D5474 + ldrh r2, [r2, #0x30] + cmp r2, #0x0 + bne _020D372C + ldrh r3, [r1, #0x0] + ldrh r2, [r1, #0x2] + strh r3, [r0, #0x0] + strh r2, [r0, #0x2] + ldrh r2, [r1, #0x4] + ldrh r1, [r1, #0x6] + strh r2, [r0, #0x4] + strh r1, [r0, #0x6] + ldmia sp!, {r4-r6,lr} + bx lr +_020D372C: + ldrh r3, [r1, #0x4] + ldr r2, _020D381C ; =0x021D548C + strh r3, [r0, #0x4] + ldrh r3, [r1, #0x6] + strh r3, [r0, #0x6] + ldrh r3, [r1, #0x4] + cmp r3, #0x0 + moveq r1, #0x0 + streqh r1, [r0, #0x0] + streqh r1, [r0, #0x2] + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldrh r4, [r1, #0x0] + ldr r3, [r2, #0x0] + ldr lr, [r2, #0x8] + mov r12, r4, lsl #0x2 + mov r4, r12, asr #0x1f + subs r12, r12, r3 + sbc r3, r4, r3, asr #0x1f + umull r6, r5, lr, r12 + mla r5, lr, r3, r5 + mov r3, lr, asr #0x1f + mla r5, r3, r12, r5 + mov r3, r6, lsr #0x16 + orr r3, r3, r5, lsl #0xa + strh r3, [r0, #0x0] + ldrsh r3, [r0, #0x0] + cmp r3, #0x0 + movlt r3, #0x0 + strlth r3, [r0, #0x0] + blt _020D37B4 + cmp r3, #0xff + movgt r3, #0xff + strgth r3, [r0, #0x0] +_020D37B4: + ldrh r3, [r1, #0x2] + ldr r1, [r2, #0xc] + ldr r12, [r2, #0x14] + mov r3, r3, lsl #0x2 + mov r2, r3, asr #0x1f + subs r3, r3, r1 + sbc r1, r2, r1, asr #0x1f + umull r4, lr, r12, r3 + mla lr, r12, r1, lr + mov r1, r12, asr #0x1f + mla lr, r1, r3, lr + mov r1, r4, lsr #0x16 + orr r1, r1, lr, lsl #0xa + strh r1, [r0, #0x2] + ldrsh r1, [r0, #0x2] + cmp r1, #0x0 + movlt r1, #0x0 + strlth r1, [r0, #0x2] + ldmltia sp!, {r4-r6,lr} + bxlt lr + cmp r1, #0xbf + movgt r1, #0xbf + strgth r1, [r0, #0x2] + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020D3818: .word 0x021D5474 +_020D381C: .word 0x021D548C + + arm_func_start TP_CalcCalibrateParam +TP_CalcCalibrateParam: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r6, r1 + mov r7, r0 + mov r5, r2 + mov r4, r3 + cmp r6, #0x1000 + bhs _020D3860 + cmp r5, #0x1000 + bhs _020D3860 + ldrh r8, [sp, #0x2c] + cmp r8, #0x1000 + bhs _020D3860 + ldrh r3, [sp, #0x30] + cmp r3, #0x1000 + blo _020D3870 +_020D3860: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D3870: + cmp r4, #0x100 + bhs _020D389C + ldrh r2, [sp, #0x34] + cmp r2, #0x100 + bhs _020D389C + ldrh r1, [sp, #0x28] + cmp r1, #0xc0 + bhs _020D389C + ldrh r0, [sp, #0x38] + cmp r0, #0xc0 + blo _020D38AC +_020D389C: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D38AC: + cmp r4, r2 + beq _020D38CC + cmp r1, r0 + beq _020D38CC + cmp r6, r8 + beq _020D38CC + cmp r5, r3 + bne _020D38DC +_020D38CC: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D38DC: + bl OS_DisableInterrupts + ldrh r1, [sp, #0x2c] + ldr r3, _020D3A80 ; =0x04000280 + ldr fp, _020D3A84 ; =0x04000290 + str r1, [sp, #0x0] + ldr r2, [sp, #0x0] + ldrh r1, [sp, #0x34] + sub r9, r6, r2 + mov r2, #0x0 + mov r12, r9, lsl #0x8 + strh r2, [r3, #0x0] + str r12, [r11, #0x0] + ldrh r8, [sp, #0x30] + ldrh r10, [sp, #0x38] + ldrh r9, [sp, #0x28] + ldr fp, _020D3A88 ; =0x04000298 + sub r12, r4, r1 + str r12, [r11, #0x0] + str r2, [r11, #0x4] + sub r11, r5, r8 + sub r2, r9, r10 +_020D3930: + ldrh r12, [r3, #0x0] + ands r12, r12, #0x8000 + bne _020D3930 + ldr ip, _020D3A8C ; =0x040002A0 + mov r11, r11, lsl #0x8 + ldr lr, [r12, #0x0] + mov r12, #0x0 + strh r12, [r3, #0x0] + ldr r3, _020D3A84 ; =0x04000290 + cmp lr, #0x8000 + str r11, [r3, #0x0] + ldr r3, _020D3A88 ; =0x04000298 + str r2, [r3, #0x0] + mov r2, r3 + str r12, [r2, #0x4] + bge _020D3980 + mov r2, #0x8000 + rsb r2, r2, #0x0 + cmp lr, r2 + bge _020D3994 +_020D3980: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D3994: + strh lr, [r7, #0x4] + ldrsh r11, [r7, #0x4] + add r3, r4, r1 + ldr r1, [sp, #0x0] + add r4, r6, r1 + mul r1, r11, r3 + mov r3, r4, lsl #0x8 + sub r1, r3, r1 + mov r1, r1, lsl #0x9 + mov r1, r1, asr #0x10 + cmp r1, #0x8000 + bge _020D39CC + cmp r1, r2 + bge _020D39E0 +_020D39CC: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D39E0: + ldr r2, _020D3A80 ; =0x04000280 + strh r1, [r7, #0x0] +_020D39E8: + ldrh r1, [r2, #0x0] + ands r1, r1, #0x8000 + bne _020D39E8 + ldr r1, _020D3A8C ; =0x040002A0 + ldr r4, [r1, #0x0] + bl OS_RestoreInterrupts + cmp r4, #0x8000 + bge _020D3A18 + mov r0, #0x8000 + rsb r1, r0, #0x0 + cmp r4, r1 + bge _020D3A28 +_020D3A18: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D3A28: + strh r4, [r7, #0x6] + ldrsh r2, [r7, #0x6] + add r0, r9, r10 + add r3, r5, r8 + mul r0, r2, r0 + mov r2, r3, lsl #0x8 + sub r0, r2, r0 + mov r0, r0, lsl #0x9 + mov r0, r0, asr #0x10 + cmp r0, #0x8000 + bge _020D3A5C + cmp r0, r1 + bge _020D3A6C +_020D3A5C: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D3A6C: + strh r0, [r7, #0x2] + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020D3A80: .word 0x04000280 +_020D3A84: .word 0x04000290 +_020D3A88: .word 0x04000298 +_020D3A8C: .word 0x040002A0 + + arm_func_start TP_GetLatestIndexInAuto +TP_GetLatestIndexInAuto: ; 0x020D3A90 + ldr r0, _020D3A9C ; =0x021D5474 + ldrh r0, [r0, #0xc] + bx lr + .balign 4 +_020D3A9C: .word 0x021D5474 + + arm_func_start TP_GetLatestRawPointInAuto +TP_GetLatestRawPointInAuto: ; 0x020D3AA0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r1, #0x3 + ldr lr, _020D3C10 ; =0x021D5474 + strh r1, [r0, #0x6] + ldrh r1, [lr, #0xe] + ldrh r3, [lr, #0xc] + cmp r1, #0x1 + beq _020D3AD0 + ldrh r1, [lr, #0x14] + cmp r1, #0x1 + bne _020D3B0C +_020D3AD0: + ldr r1, _020D3C10 ; =0x021D5474 + mov r2, r3, lsl #0x3 + ldr r1, [r1, #0x10] + add sp, sp, #0x4 + add r3, r1, r3, lsl #0x3 + ldrh r2, [r1, r2] + ldrh r1, [r3, #0x2] + strh r2, [r0, #0x0] + strh r1, [r0, #0x2] + ldrh r2, [r3, #0x4] + ldrh r1, [r3, #0x6] + strh r2, [r0, #0x4] + strh r1, [r0, #0x6] + ldmia sp!, {r4-r5,lr} + bx lr +_020D3B0C: + add r1, r0, #0x6 + mov r12, #0x0 + b _020D3BE0 +_020D3B18: + subs r5, r3, r12 + ldr r2, [lr, #0x10] + addmi r5, r5, r4 + add r2, r2, r5, lsl #0x3 + ldrh r4, [r2, #0x4] + cmp r4, #0x0 + bne _020D3B60 + ldrh r3, [r2, #0x0] + ldrh r1, [r2, #0x2] + add sp, sp, #0x4 + strh r3, [r0, #0x0] + strh r1, [r0, #0x2] + ldrh r3, [r2, #0x4] + ldrh r1, [r2, #0x6] + strh r3, [r0, #0x4] + strh r1, [r0, #0x6] + ldmia sp!, {r4-r5,lr} + bx lr +_020D3B60: + ldrh r4, [r0, #0x6] + ands r4, r4, #0x1 + beq _020D3B90 + ldrh r4, [r2, #0x6] + ands r4, r4, #0x1 + bne _020D3B90 + ldrh r4, [r2, #0x0] + cmp r12, #0x0 + strh r4, [r0, #0x0] + ldrneh r4, [r1, #0x0] + bicne r4, r4, #0x1 + strneh r4, [r1, #0x0] +_020D3B90: + ldrh r4, [r0, #0x6] + ands r4, r4, #0x2 + beq _020D3BC0 + ldrh r4, [r2, #0x6] + ands r4, r4, #0x2 + bne _020D3BC0 + ldrh r2, [r2, #0x2] + cmp r12, #0x0 + strh r2, [r0, #0x2] + ldrneh r2, [r1, #0x0] + bicne r2, r2, #0x2 + strneh r2, [r1, #0x0] +_020D3BC0: + ldrh r2, [r0, #0x6] + cmp r2, #0x0 + moveq r1, #0x1 + streqh r1, [r0, #0x4] + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + add r12, r12, #0x1 +_020D3BE0: + ldrh r2, [lr, #0xe] + cmp r12, r2 + bge _020D3BFC + ldrh r4, [lr, #0x14] + sub r2, r4, #0x1 + cmp r12, r2 + blt _020D3B18 +_020D3BFC: + mov r1, #0x1 + strh r1, [r0, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020D3C10: .word 0x021D5474 + + arm_func_start TP_RequestAutoSamplingStopAsync +TP_RequestAutoSamplingStopAsync: ; 0x020D3C14 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + mov r4, r0 + ldr r1, _020D3CB0 ; =0x03000200 + mov r0, #0x6 + mov r2, #0x0 + bl PXI_SendWordByFifo +_020D3C30: .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0x50, 0xE3 .byte 0x0F, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0xB5, 0xE5, 0xFF, 0xEB, 0x60, 0x00, 0x9F, 0xE5 .byte 0xB4, 0x13, 0xD0, 0xE1, 0x00, 0x30, 0x90, 0xE5, 0x04, 0x10, 0x81, 0xE3, 0xB4, 0x13, 0xC0, 0xE1 @@ -2598,13 +11077,41 @@ _020CD33C: .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x28, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xB6, 0x23, 0xD1, 0xE1 .byte 0x04, 0x20, 0x82, 0xE3, 0xB6, 0x23, 0xC1, 0xE1, 0xB4, 0x23, 0xD1, 0xE1, 0x04, 0x20, 0xC2, 0xE3 .byte 0xB4, 0x23, 0xC1, 0xE1, 0x9E, 0xE5, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x02, 0x00, 0x03, 0x74, 0x54, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0xFC, 0x40, 0x9F, 0xE5 - .byte 0x01, 0x50, 0xA0, 0xE1, 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x60, 0xA0, 0xE1, 0x10, 0x20, 0x84, 0xE5 - .byte 0xBC, 0xC0, 0xC4, 0xE1, 0xBE, 0x50, 0xC4, 0xE1, 0xB4, 0x31, 0xC4, 0xE1, 0x00, 0x00, 0x53, 0xE3 - .byte 0x06, 0x00, 0x00, 0x9A, 0x0C, 0x10, 0xA0, 0xE1, 0x10, 0x00, 0x94, 0xE5, 0x8C, 0x01, 0x80, 0xE0 - .byte 0x01, 0xC0, 0x8C, 0xE2, 0xB4, 0x10, 0xC0, 0xE1, 0x03, 0x00, 0x5C, 0xE1, 0xF9, 0xFF, 0xFF, 0x3A - .byte 0x82, 0xE5, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0xB4, 0x00, 0x9F, 0xE5, 0xFF, 0x10, 0x05, 0xE2 - .byte 0x00, 0x10, 0x81, 0xE1, 0x06, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xEF, 0xEF, 0xFF, 0xEB +_020D3CB0: .word 0x03000200 +_020D3CB4: + .byte 0x74, 0x54, 0x1D, 0x02 + + arm_func_start TP_RequestAutoSamplingStartAsync +TP_RequestAutoSamplingStartAsync: ; 0x020D3CB8 + stmdb sp!, {r4-r6,lr} + ldr r4, _020D3DC0 ; =0x021D5474 + mov r5, r1 + mov r12, #0x0 + mov r6, r0 + str r2, [r4, #0x10] + strh r12, [r4, #0xc] + strh r5, [r4, #0xe] + strh r3, [r4, #0x14] + cmp r3, #0x0 + bls _020D3D00 + mov r1, r12 +_020D3CE8: + ldr r0, [r4, #0x10] + add r0, r0, r12, lsl #0x3 + add r12, r12, #0x1 + strh r1, [r0, #0x4] + cmp r12, r3 + blo _020D3CE8 +_020D3D00: + bl OS_DisableInterrupts + mov r4, r0 + ldr r0, _020D3DC4 ; =0x02000100 + and r1, r5, #0xff + orr r1, r1, r0 + mov r0, #0x6 + mov r2, #0x0 + bl PXI_SendWordByFifo +_020D3D20: .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x07, 0x00, 0x00, 0xBA, 0x94, 0x10, 0x9F, 0xE5 .byte 0x06, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0x86, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0xE7, 0xEF, 0xFF, 0xEB .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x01, 0x00, 0xA0, 0xA3, 0xFF, 0x00, 0x10, 0xE2 @@ -2615,14 +11122,47 @@ _020CD33C: .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xB6, 0x23, 0xD1, 0xE1 .byte 0x02, 0x20, 0x82, 0xE3, 0xB6, 0x23, 0xC1, 0xE1, 0xB4, 0x23, 0xD1, 0xE1, 0x02, 0x20, 0xC2, 0xE3 .byte 0xB4, 0x23, 0xC1, 0xE1, 0x5A, 0xE5, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x74, 0x54, 0x1D, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x3E, 0xFE, 0xFF, 0xEB, 0x3C, 0x10, 0x9F, 0xE5 - .byte 0xB4, 0x03, 0xD1, 0xE1, 0x01, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x10, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0xB4, 0x30, 0xD1, 0xE1, 0xB6, 0x20, 0xD1, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xB0, 0x30, 0xC4, 0xE1, 0xB2, 0x20, 0xC4, 0xE1, 0xB8, 0x20, 0xD1, 0xE1, 0xBA, 0x10, 0xD1, 0xE1 - .byte 0xB4, 0x20, 0xC4, 0xE1, 0xB6, 0x10, 0xC4, 0xE1, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x74, 0x54, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x38, 0xE5, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x06, 0x00, 0xA0, 0xE3, 0x03, 0x14, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xA7, 0xEF, 0xFF, 0xEB +_020D3DC0: .word 0x021D5474 +_020D3DC4: .word 0x02000100 +_020D3DC8: + .byte 0x00, 0x00, 0x01, 0x01 + + arm_func_start TP_WaitRawResult +TP_WaitRawResult: ; 0x020D3DCC + stmdb sp!, {r4,lr} + mov r4, r0 + mov r0, #0x1 + bl TP_WaitBusy + ldr r1, _020D3E20 ; =0x021D5474 + ldrh r0, [r1, #0x34] + ands r0, r0, #0x1 + movne r0, #0x1 + ldmneia sp!, {r4,lr} + bxne lr + ldrh r3, [r1, #0x4] + ldrh r2, [r1, #0x6] + mov r0, #0x0 + strh r3, [r4, #0x0] + strh r2, [r4, #0x2] + ldrh r2, [r1, #0x8] + ldrh r1, [r1, #0xa] + strh r2, [r4, #0x4] + strh r1, [r4, #0x6] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020D3E20: .word 0x021D5474 + + arm_func_start TP_RequestSamplingAsync +TP_RequestSamplingAsync: ; 0x020D3E24 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + mov r4, r0 + mov r0, #0x6 + mov r1, #0x3000000 + mov r2, #0x0 + bl PXI_SendWordByFifo +_020D3E40: .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0x50, 0xE3 .byte 0x0F, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x31, 0xE5, 0xFF, 0xEB, 0x5C, 0x00, 0x9F, 0xE5 .byte 0xB4, 0x13, 0xD0, 0xE1, 0x00, 0x30, 0x90, 0xE5, 0x01, 0x10, 0x81, 0xE3, 0xB4, 0x13, 0xC0, 0xE1 @@ -2631,68 +11171,274 @@ _020CD33C: .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xB6, 0x23, 0xD1, 0xE1 .byte 0x01, 0x20, 0x82, 0xE3, 0xB6, 0x23, 0xC1, 0xE1, 0xB4, 0x23, 0xD1, 0xE1, 0x01, 0x20, 0xC2, 0xE3 .byte 0xB4, 0x23, 0xC1, 0xE1, 0x1A, 0xE5, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x74, 0x54, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xB0, 0xE1 - .byte 0x20, 0x01, 0x9F, 0x05, 0x00, 0x10, 0xA0, 0x03, 0xB0, 0x13, 0xC0, 0x01, 0x04, 0xD0, 0x8D, 0x02 - .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x08, 0xE5, 0xFF, 0xEB, 0xF4, 0xE0, 0xD4, 0xE1 - .byte 0x00, 0x00, 0x5E, 0xE3, 0x15, 0x00, 0x00, 0x0A, 0xFC, 0x50, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE3 - .byte 0xF8, 0x20, 0x9F, 0xE5, 0xB0, 0xC0, 0xC5, 0xE1, 0x01, 0x32, 0xA0, 0xE3, 0xF0, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x30, 0x82, 0xE5, 0x00, 0xE0, 0x81, 0xE5, 0x04, 0xC0, 0x81, 0xE5, 0xF0, 0x20, 0xD4, 0xE1 - .byte 0xD0, 0x10, 0x9F, 0xE5, 0x18, 0x20, 0x81, 0xE5, 0xF4, 0x20, 0xD4, 0xE1, 0x1C, 0x20, 0x81, 0xE5 - .byte 0xB0, 0x10, 0xD5, 0xE1, 0x02, 0x19, 0x11, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0xC4, 0x20, 0x9F, 0xE5 - .byte 0xB0, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x92, 0xE5, 0x20, 0x20, 0x81, 0xE5, 0x04, 0x00, 0x00, 0xEA - .byte 0xA0, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x18, 0x20, 0x81, 0xE5, 0x1C, 0x20, 0x81, 0xE5 - .byte 0x20, 0x20, 0x81, 0xE5, 0xF6, 0x50, 0xD4, 0xE1, 0x00, 0x00, 0x55, 0xE3, 0x15, 0x00, 0x00, 0x0A - .byte 0x84, 0xC0, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0x80, 0x20, 0x9F, 0xE5, 0xB0, 0xE0, 0xCC, 0xE1 - .byte 0x01, 0x32, 0xA0, 0xE3, 0x78, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x50, 0x81, 0xE5 - .byte 0x04, 0xE0, 0x81, 0xE5, 0xF2, 0x20, 0xD4, 0xE1, 0x58, 0x10, 0x9F, 0xE5, 0x24, 0x20, 0x81, 0xE5 - .byte 0xF6, 0x20, 0xD4, 0xE1, 0x28, 0x20, 0x81, 0xE5, 0xB0, 0x10, 0xDC, 0xE1, 0x02, 0x19, 0x11, 0xE2 - .byte 0xFC, 0xFF, 0xFF, 0x1A, 0x4C, 0x20, 0x9F, 0xE5, 0x38, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x92, 0xE5 - .byte 0x2C, 0x20, 0x81, 0xE5, 0x04, 0x00, 0x00, 0xEA, 0x28, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x24, 0x20, 0x81, 0xE5, 0x28, 0x20, 0x81, 0xE5, 0x2C, 0x20, 0x81, 0xE5, 0xD0, 0xE4, 0xFF, 0xEB - .byte 0x10, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x13, 0xC0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02, 0x80, 0x02, 0x00, 0x04 - .byte 0x90, 0x02, 0x00, 0x04, 0x98, 0x02, 0x00, 0x04, 0xA0, 0x02, 0x00, 0x04, 0x70, 0x40, 0x2D, 0xE9 - .byte 0x18, 0xD0, 0x4D, 0xE2, 0x98, 0xC0, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0xB8, 0x15, 0xDC, 0xE1 - .byte 0xBA, 0x25, 0xDC, 0xE1, 0x5C, 0x30, 0xDC, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x5D, 0xE0, 0xDC, 0xE5 - .byte 0xBE, 0x65, 0xDC, 0xE1, 0xB0, 0x56, 0xDC, 0xE1, 0x62, 0x00, 0xDC, 0xE5, 0x63, 0xC0, 0xDC, 0xE5 - .byte 0x05, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x56, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x52, 0xE3 - .byte 0x01, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x55, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x00, 0xE0, 0x8D, 0xE5 - .byte 0x04, 0x60, 0x8D, 0xE5, 0x08, 0x50, 0x8D, 0xE5, 0x0C, 0x00, 0x8D, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x10, 0xC0, 0x8D, 0xE5, 0xE9, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A - .byte 0x00, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC4, 0xE1, 0xB2, 0x00, 0xC4, 0xE1, 0xB4, 0x00, 0xC4, 0xE1 - .byte 0xB6, 0x00, 0xC4, 0xE1, 0x18, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x18, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0xFC, 0x7F, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x74, 0x00, 0x9F, 0xE5, 0xB0, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x12 - .byte 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xC0, 0xE1 - .byte 0xB2, 0xEE, 0xFF, 0xEB, 0x54, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xB2, 0x13, 0xC0, 0xE1 - .byte 0xB6, 0x13, 0xC0, 0xE1, 0xBC, 0x10, 0xC0, 0xE1, 0x00, 0x10, 0x80, 0xE5, 0x10, 0x10, 0x80, 0xE5 - .byte 0xB0, 0x13, 0xC0, 0xE1, 0xB4, 0x13, 0xC0, 0xE1, 0x06, 0x50, 0xA0, 0xE3, 0x01, 0x40, 0xA0, 0xE3 - .byte 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0x1D, 0xEF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x74, 0x54, 0x1D, 0x02 + + arm_func_start TP_SetCalibrateParam +TP_SetCalibrateParam: ; 0x020D3EC4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + movs r4, r0 + ldreq r0, _020D3FF8 ; =0x021D5474 + moveq r1, #0x0 + streqh r1, [r0, #0x30] + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + bl OS_DisableInterrupts + ldrsh lr, [r4, #0x4] + cmp lr, #0x0 + beq _020D3F50 + ldr r5, _020D3FFC ; =0x04000280 + mov r12, #0x0 + ldr r2, _020D4000 ; =0x04000290 + strh r12, [r5, #0x0] + mov r3, #0x10000000 + ldr r1, _020D4004 ; =0x04000298 + str r3, [r2, #0x0] + str lr, [r1, #0x0] + str r12, [r1, #0x4] + ldrsh r2, [r4, #0x0] + ldr r1, _020D3FF8 ; =0x021D5474 + str r2, [r1, #0x18] + ldrsh r2, [r4, #0x4] + str r2, [r1, #0x1c] +_020D3F30: + ldrh r1, [r5, #0x0] + ands r1, r1, #0x8000 + bne _020D3F30 + ldr r2, _020D4008 ; =0x040002A0 + ldr r1, _020D3FF8 ; =0x021D5474 + ldr r2, [r2, #0x0] + str r2, [r1, #0x20] + b _020D3F64 +_020D3F50: + ldr r1, _020D3FF8 ; =0x021D5474 + mov r2, #0x0 + str r2, [r1, #0x18] + str r2, [r1, #0x1c] + str r2, [r1, #0x20] +_020D3F64: + ldrsh r5, [r4, #0x6] + cmp r5, #0x0 + beq _020D3FC8 + ldr ip, _020D3FFC ; =0x04000280 + mov lr, #0x0 + ldr r2, _020D4000 ; =0x04000290 + strh lr, [r12, #0x0] + mov r3, #0x10000000 + ldr r1, _020D4004 ; =0x04000298 + str r3, [r2, #0x0] + str r5, [r1, #0x0] + str lr, [r1, #0x4] + ldrsh r2, [r4, #0x2] + ldr r1, _020D3FF8 ; =0x021D5474 + str r2, [r1, #0x24] + ldrsh r2, [r4, #0x6] + str r2, [r1, #0x28] +_020D3FA8: + ldrh r1, [r12, #0x0] + ands r1, r1, #0x8000 + bne _020D3FA8 + ldr r2, _020D4008 ; =0x040002A0 + ldr r1, _020D3FF8 ; =0x021D5474 + ldr r2, [r2, #0x0] + str r2, [r1, #0x2c] + b _020D3FDC +_020D3FC8: + ldr r1, _020D3FF8 ; =0x021D5474 + mov r2, #0x0 + str r2, [r1, #0x24] + str r2, [r1, #0x28] + str r2, [r1, #0x2c] +_020D3FDC: + bl OS_RestoreInterrupts + ldr r0, _020D3FF8 ; =0x021D5474 + mov r1, #0x1 + strh r1, [r0, #0x30] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020D3FF8: .word 0x021D5474 +_020D3FFC: .word 0x04000280 +_020D4000: .word 0x04000290 +_020D4004: .word 0x04000298 +_020D4008: .word 0x040002A0 + + arm_func_start TP_GetUserInfo +TP_GetUserInfo: ; 0x020D400C + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x18 + ldr ip, _020D40B4 ; =0x027FFC80 + mov r4, r0 + ldrh r1, [r12, #0x58] + ldrh r2, [r12, #0x5a] + ldrb r3, [r12, #0x5c] + cmp r1, #0x0 + ldrb lr, [r12, #0x5d] + ldrh r6, [r12, #0x5e] + ldrh r5, [r12, #0x60] + ldrb r0, [r12, #0x62] + ldrb r12, [r12, #0x63] + bne _020D405C + cmp r6, #0x0 + bne _020D405C + cmp r2, #0x0 + bne _020D405C + cmp r5, #0x0 + beq _020D4080 +_020D405C: + str lr, [sp, #0x0] + str r6, [sp, #0x4] + str r5, [sp, #0x8] + str r0, [sp, #0xc] + mov r0, r4 + str r12, [sp, #0x10] + bl TP_CalcCalibrateParam +_020D4078: + .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A +_020D4080: + mov r0, #0x0 + strh r0, [r4, #0x0] + strh r0, [r4, #0x2] + strh r0, [r4, #0x4] + strh r0, [r4, #0x6] + add sp, sp, #0x18 + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr +_020D40A4: + .byte 0x01, 0x00, 0xA0, 0xE3, 0x18, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8 + .byte 0x1E, 0xFF, 0x2F, 0xE1 +_020D40B4: .word 0x027FFC80 + + arm_func_start TP_Init +TP_Init: ; 0x020D40B8 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020D413C ; =0x021D5470 + ldrh r1, [r0, #0x0] + cmp r1, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r1, #0x1 + strh r1, [r0, #0x0] + bl PXI_Init + ldr r0, _020D4140 ; =0x021D5474 + mov r1, #0x0 + strh r1, [r0, #0x32] + strh r1, [r0, #0x36] + strh r1, [r0, #0xc] + str r1, [r0, #0x0] + str r1, [r0, #0x10] + strh r1, [r0, #0x30] + strh r1, [r0, #0x34] + mov r5, #0x6 + mov r4, #0x1 + mov r0, r5 + mov r1, r4 + bl PXI_IsCallbackReady +_020D411C: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0xFA, 0xFF, 0xFF, 0x0A, 0x18, 0x10, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE3, 0x22, 0xEF, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0x54, 0x1D, 0x02 - .byte 0x74, 0x54, 0x1D, 0x02, 0x48, 0x41, 0x0D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2 - .byte 0x01, 0x08, 0xA0, 0xE1, 0x20, 0x38, 0xA0, 0xE1, 0x7F, 0x0C, 0x03, 0xE2, 0x00, 0x04, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x52, 0xE3, 0x20, 0x08, 0xA0, 0xE1, 0x0F, 0x00, 0x00, 0x0A, 0x88, 0x12, 0x9F, 0xE5 - .byte 0x01, 0x20, 0xA0, 0xE3, 0xB4, 0x43, 0xD1, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0x12, 0x20, 0x84, 0xE1 - .byte 0x00, 0x00, 0x53, 0xE3, 0xB4, 0x23, 0xC1, 0xE1, 0x08, 0xD0, 0x8D, 0x02, 0x10, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x00, 0x50, 0xE3 - .byte 0x31, 0x00, 0x00, 0x1A, 0x40, 0x12, 0x9F, 0xE5, 0xBC, 0x30, 0xD1, 0xE1, 0xB4, 0x21, 0xD1, 0xE1 - .byte 0x01, 0x30, 0x83, 0xE2, 0xBC, 0x30, 0xC1, 0xE1, 0xBC, 0x30, 0xD1, 0xE1, 0x02, 0x00, 0x53, 0xE1 - .byte 0x00, 0x20, 0xA0, 0x23, 0xBC, 0x20, 0xC1, 0x21, 0x20, 0x12, 0x9F, 0xE5, 0x18, 0x22, 0x9F, 0xE5 - .byte 0xB0, 0x30, 0xD1, 0xE1, 0x18, 0x12, 0x9F, 0xE5, 0xBC, 0xC0, 0xD2, 0xE1, 0xB0, 0x30, 0xCD, 0xE1 - .byte 0xB0, 0x10, 0xD1, 0xE1, 0x10, 0x40, 0x92, 0xE5, 0x8C, 0xE1, 0xA0, 0xE1, 0xB2, 0x10, 0xCD, 0xE1 - .byte 0x00, 0x30, 0x9D, 0xE5, 0x8C, 0x11, 0x84, 0xE0, 0x03, 0x3A, 0xA0, 0xE1, 0x23, 0x3A, 0xA0, 0xE1 - .byte 0xBE, 0x30, 0x84, 0xE1, 0x00, 0x30, 0x9D, 0xE5, 0x03, 0x34, 0xA0, 0xE1, 0x23, 0x3A, 0xA0, 0xE1 - .byte 0xB2, 0x30, 0xC1, 0xE1, 0x00, 0x30, 0x9D, 0xE5, 0x83, 0x33, 0xA0, 0xE1, 0xA3, 0x3F, 0xA0, 0xE1 - .byte 0xFF, 0x30, 0x03, 0xE2, 0xB4, 0x30, 0xC1, 0xE1, 0x00, 0x30, 0x9D, 0xE5, 0x83, 0x32, 0xA0, 0xE1 - .byte 0x23, 0x3F, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0xB6, 0x30, 0xC1, 0xE1, 0x00, 0x30, 0x92, 0xE5 - .byte 0x00, 0x00, 0x53, 0xE3, 0x08, 0xD0, 0x8D, 0x02, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0xBC, 0x20, 0xD2, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0xFF, 0x20, 0x02, 0xE2, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x14, 0x11, 0xE2 - .byte 0x08, 0xD0, 0x8D, 0x02, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xFF, 0x10, 0x03, 0xE2 - .byte 0x04, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0x53, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020D413C: .word 0x021D5470 +_020D4140: .word 0x021D5474 +_020D4144: + .byte 0x48, 0x41, 0x0D, 0x02 + + arm_func_start FUN_020D4148 +FUN_020D4148: ; 0x020D4148 + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + mov r0, r1, lsl #0x10 + mov r3, r0, lsr #0x10 + and r0, r3, #0x7f00 + mov r0, r0, lsl #0x8 + cmp r2, #0x0 + mov r0, r0, lsr #0x10 + beq _020D41AC + ldr r1, _020D43FC ; =0x021D5474 + mov r2, #0x1 + ldrh r4, [r1, #0x34] + ldr r3, [r1, #0x0] + orr r2, r4, r2, lsl r0 + cmp r3, #0x0 + strh r2, [r1, #0x34] + addeq sp, sp, #0x8 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r1, #0x4 + mov r2, #0x0 + blx r3 + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020D41AC: + cmp r0, #0x10 + bne _020D427C + ldr r1, _020D43FC ; =0x021D5474 + ldrh r3, [r1, #0xc] + ldrh r2, [r1, #0x14] + add r3, r3, #0x1 + strh r3, [r1, #0xc] + ldrh r3, [r1, #0xc] + cmp r3, r2 + movcs r2, #0x0 + strcsh r2, [r1, #0xc] + ldr r1, _020D4400 ; =0x027FFFAA + ldr r2, _020D43FC ; =0x021D5474 + ldrh r3, [r1, #0x0] + ldr r1, _020D4404 ; =0x027FFFAC + ldrh r12, [r2, #0xc] + strh r3, [sp, #0x0] + ldrh r1, [r1, #0x0] + ldr r4, [r2, #0x10] + mov lr, r12, lsl #0x3 + strh r1, [sp, #0x2] + ldr r3, [sp, #0x0] + add r1, r4, r12, lsl #0x3 + mov r3, r3, lsl #0x14 + mov r3, r3, lsr #0x14 + strh r3, [r4, lr] + ldr r3, [sp, #0x0] + mov r3, r3, lsl #0x8 + mov r3, r3, lsr #0x14 + strh r3, [r1, #0x2] + ldr r3, [sp, #0x0] + mov r3, r3, lsl #0x7 + mov r3, r3, lsr #0x1f + and r3, r3, #0xff + strh r3, [r1, #0x4] + ldr r3, [sp, #0x0] + mov r3, r3, lsl #0x5 + mov r3, r3, lsr #0x1e + and r3, r3, #0xff + strh r3, [r1, #0x6] + ldr r3, [r2, #0x0] + cmp r3, #0x0 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4,lr} + bxeq lr + ldrh r2, [r2, #0xc] + mov r1, #0x0 + and r2, r2, #0xff + blx r3 + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020D427C: + ands r1, r1, #0x1000000 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4,lr} + bxeq lr + and r1, r3, #0xff + cmp r1, #0x4 + addls pc, pc, r1, lsl #0x2 + b _020D43EC +_020D429C: + .byte 0x03, 0x00, 0x00, 0xEA .byte 0x51, 0x00, 0x00, 0xEA, 0x39, 0x00, 0x00, 0xEA, 0x3A, 0x00, 0x00, 0xEA, 0x35, 0x00, 0x00, 0xEA .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A .byte 0x02, 0x00, 0x50, 0xE3, 0x30, 0x11, 0x9F, 0x05, 0x00, 0x20, 0xA0, 0x03, 0xB2, 0x23, 0xC1, 0x01 @@ -2713,17 +11459,62 @@ _020CD33C: .byte 0x1E, 0xC0, 0x8C, 0xE1, 0xB4, 0xC3, 0xC1, 0xE1, 0xB6, 0xC3, 0xD1, 0xE1, 0x00, 0x00, 0x53, 0xE3 .byte 0x08, 0xD0, 0x8D, 0x02, 0x02, 0x20, 0x0C, 0xE0, 0xB6, 0x23, 0xC1, 0xE1, 0x10, 0x40, 0xBD, 0x08 .byte 0x1E, 0xFF, 0x2F, 0x01, 0xFF, 0x10, 0x04, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x17, 0xE5, 0xFF, 0xEB - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x54, 0x1D, 0x02 - .byte 0xAA, 0xFF, 0x7F, 0x02, 0xAC, 0xFF, 0x7F, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x9C, 0xE5 - .byte 0x01, 0x00, 0x50, 0xE3, 0xFC, 0xFF, 0xFF, 0x0A, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02 - .byte 0x04, 0x10, 0x9F, 0xE5, 0x0C, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x20, 0x10, 0x9F, 0xE5, 0x09, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x25, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3 + .byte 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020D43EC: + bl OS_Terminate + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020D43FC: .word 0x021D5474 +_020D4400: .word 0x027FFFAA +_020D4404: .word 0x027FFFAC + + arm_func_start MicWaitBusy +MicWaitBusy: ; 0x020D4408 + ldr ip, _020D441C ; =0x021D54B0 +_020D440C: + ldr r0, [r12, #0x0] + cmp r0, #0x1 + beq _020D440C + bx lr + .balign 4 +_020D441C: .word 0x021D54B0 + + arm_func_start MicGetResultCallback +MicGetResultCallback: ; 0x020D4420 + ldr r1, _020D442C ; =0x021D54B0 + str r0, [r1, #0xc] + bx lr + .balign 4 +_020D442C: .word 0x021D54B0 + + arm_func_start MicStopAutoSampling +MicStopAutoSampling: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D4460 ; =0x03004200 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo +_020D4448: + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3 .byte 0x00, 0x00, 0xA0, 0xB3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x42, 0x00, 0x03, 0x70, 0x40, 0x2D, 0xE9, 0x14, 0xC1, 0x9F, 0xE5, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x0C, 0x10, 0x83, 0xE1, 0x09, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x15, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3 +_020D4460: .word 0x03004200 + + arm_func_start MicStartAutoSampling +MicStartAutoSampling: ; 0x020D4464 + stmdb sp!, {r4-r6,lr} + ldr ip, _020D4584 ; =0x02004100 + mov r6, r0 + mov r5, r1 + mov r4, r2 + orr r1, r3, r12 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo +_020D4488: + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3 .byte 0x70, 0x40, 0xBD, 0xB8, 0x1E, 0xFF, 0x2F, 0xB1, 0x26, 0x08, 0xA0, 0xE1, 0x01, 0x18, 0x80, 0xE3 .byte 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x0C, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 .byte 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xB8, 0x1E, 0xFF, 0x2F, 0xB1, 0xC4, 0x10, 0x9F, 0xE5 @@ -2739,61 +11530,232 @@ _020CD33C: .byte 0x1E, 0xFF, 0x2F, 0xB1, 0x2C, 0x00, 0x9F, 0xE5, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x04, 0xE0 .byte 0x01, 0x10, 0x80, 0xE1, 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xDB, 0xED, 0xFF, 0xEB .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x41, 0x00, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x01, 0x10, 0x80, 0xE1, 0x09, 0x00, 0xA0, 0xE3, 0xCC, 0xED, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0xE1 +_020D4584: .word 0x02004100 +_020D4588: + .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01 + + arm_func_start MicDoSampling +MicDoSampling: ; 0x020D4590 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D45C4 ; =0x03004000 + mov r2, #0x0 + orr r1, r0, r1 + mov r0, #0x9 + bl PXI_SendWordByFifo +_020D45AC: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x40, 0x00, 0x03, 0x10, 0x40, 0x2D, 0xE9, 0x01, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x52, 0xE3, 0x0D, 0x00, 0x00, 0x0A, 0x20, 0x01, 0x9F, 0xE5, 0x1C, 0x21, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x90, 0xE5, 0x04, 0xC0, 0x92, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0x13 - .byte 0x00, 0x10, 0x80, 0x15, 0x00, 0x00, 0x5C, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x08, 0x10, 0x92, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x06, 0x00, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x3C, 0xFF, 0x2F, 0xE1 - .byte 0xFF, 0x00, 0x04, 0xE2, 0x00, 0x18, 0xA0, 0xE1, 0x7F, 0x2C, 0x04, 0xE2, 0x02, 0x04, 0xA0, 0xE1 - .byte 0x21, 0x18, 0xA0, 0xE1, 0x04, 0x00, 0x51, 0xE3, 0x20, 0x28, 0xA0, 0xE1, 0x01, 0xF1, 0x8F, 0x90 - .byte 0x0E, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA + .byte 0x1E, 0xFF, 0x2F, 0xE1 +_020D45C4: .word 0x03004000 + + arm_func_start MicCommonCallback +MicCommonCallback: ; 0x020D45C8 + stmdb sp!, {r4,lr} + mov r4, r1 + cmp r2, #0x0 + beq _020D4610 + ldr r0, _020D4700 ; =0x021D54B0 + ldr r2, _020D4700 ; =0x021D54B0 + ldr r1, [r0, #0x0] + ldr r12, [r2, #0x4] + cmp r1, #0x0 + movne r1, #0x0 + strne r1, [r0, #0x0] + cmp r12, #0x0 + beq _020D4610 + ldr r1, [r2, #0x8] + mov r3, #0x0 + mov r0, #0x6 + str r3, [r2, #0x4] + blx r12 +_020D4610: + and r0, r4, #0xff + mov r1, r0, lsl #0x10 + and r2, r4, #0x7f00 + mov r0, r2, lsl #0x8 + mov r1, r1, lsr #0x10 + cmp r1, #0x4 + mov r2, r0, lsr #0x10 + addls pc, pc, r1, lsl #0x2 + b _020D4670 +_020D4634: + .byte 0x03, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA .byte 0x06, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x00, 0x00, 0xEA .byte 0x04, 0x00, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA .byte 0x05, 0x00, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA - .byte 0x06, 0x00, 0xA0, 0xE3, 0x51, 0x00, 0x52, 0xE3, 0x08, 0x00, 0x00, 0x1A, 0x7C, 0x10, 0x9F, 0xE5 - .byte 0x10, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x14, 0x10, 0x91, 0xE5, 0x32, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x40, 0x00, 0x52, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x50, 0x10, 0x9F, 0xE5, 0x18, 0x20, 0x91, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x48, 0x10, 0x9F, 0x15, 0xB0, 0x10, 0xD1, 0x11, 0xB0, 0x10, 0xC2, 0x11 - .byte 0x38, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x00, 0x20, 0xA0, 0x13 - .byte 0x00, 0x20, 0x81, 0x15, 0x24, 0x20, 0x9F, 0xE5, 0x04, 0x40, 0x92, 0xE5, 0x00, 0x00, 0x54, 0xE3 - .byte 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x08, 0x10, 0x92, 0xE5, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x04, 0x30, 0x82, 0xE5, 0x34, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB0, 0x54, 0x1D, 0x02, 0x94, 0xFF, 0x7F, 0x02, 0x04, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x90, 0xFF, 0x7F, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x0B, 0x00, 0x00, 0xEB, 0x24, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x00, 0x1A, 0x31, 0xFF, 0xFF, 0xEB - .byte 0x10, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0x44, 0x0D, 0x02, 0xB0, 0x54, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1, 0xE7, 0xE2, 0xFF, 0xEB - .byte 0x50, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x0A - .byte 0xE7, 0xE2, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5, 0xE0, 0xE2, 0xFF, 0xEB - .byte 0x20, 0x00, 0x9F, 0xE5, 0x04, 0x50, 0x80, 0xE5, 0x08, 0x40, 0x80, 0xE5, 0x1F, 0xFF, 0xFF, 0xEB +_020D4670: + mov r0, #0x6 + cmp r2, #0x51 + bne _020D46A0 + ldr r1, _020D4700 ; =0x021D54B0 + ldr r2, [r1, #0x10] + cmp r2, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r1, [r1, #0x14] + blx r2 + ldmia sp!, {r4,lr} + bx lr +_020D46A0: + cmp r2, #0x40 + bne _020D46C0 + ldr r1, _020D4700 ; =0x021D54B0 + ldr r2, [r1, #0x18] + cmp r2, #0x0 + ldrne r1, _020D4704 ; =0x027FFF94 + ldrneh r1, [r1, #0x0] + strneh r1, [r2, #0x0] +_020D46C0: + ldr r1, _020D4700 ; =0x021D54B0 + ldr r2, [r1, #0x0] + cmp r2, #0x0 + movne r2, #0x0 + strne r2, [r1, #0x0] + ldr r2, _020D4700 ; =0x021D54B0 + ldr r4, [r2, #0x4] + cmp r4, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r1, [r2, #0x8] + mov r3, #0x0 + str r3, [r2, #0x4] + blx r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020D4700: .word 0x021D54B0 +_020D4704: .word 0x027FFF94 + + arm_func_start MIC_GetLastSamplingAddress +MIC_GetLastSamplingAddress: ; 0x020D4708 + ldr r0, _020D4714 ; =0x027FFF90 + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020D4714: .word 0x027FFF90 + + arm_func_start MIC_StopAutoSampling +MIC_StopAutoSampling: ; 0x020D4718 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020D4754 ; =MicGetResultCallback + mov r1, #0x0 + bl MIC_StopAutoSamplingAsync + ldr r1, _020D4758 ; =0x021D54B0 + cmp r0, #0x0 + str r0, [r1, #0xc] + bne _020D4740 + bl MicWaitBusy +_020D4740: + ldr r0, _020D4758 ; =0x021D54B0 + ldr r0, [r0, #0xc] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D4754: .word MicGetResultCallback +_020D4758: .word 0x021D54B0 + + arm_func_start MIC_StopAutoSamplingAsync +MIC_StopAutoSamplingAsync: ; 0x020D475C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + bl OS_DisableInterrupts + ldr r1, _020D47C8 ; =0x021D54B0 + ldr r2, [r1, #0x0] + cmp r2, #0x0 + beq _020D4794 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r5,lr} + bx lr +_020D4794: + mov r2, #0x1 + str r2, [r1, #0x0] + bl OS_RestoreInterrupts + ldr r0, _020D47C8 ; =0x021D54B0 + str r5, [r0, #0x4] + str r4, [r0, #0x8] + bl MicStopAutoSampling +_020D47B0: .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x03, 0x00, 0xA0, 0x03, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x0B, 0x00, 0x00, 0xEB - .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x00, 0x1A - .byte 0x04, 0xFF, 0xFF, 0xEB, 0x10, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0x44, 0x0D, 0x02, 0xB0, 0x54, 0x1D, 0x02 - .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x04, 0x00, 0x97, 0xE5 - .byte 0x01, 0x60, 0xA0, 0xE1, 0x1F, 0x00, 0x10, 0xE2, 0x02, 0x50, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0x12 - .byte 0x02, 0x00, 0xA0, 0x13, 0xF0, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x08, 0x10, 0x97, 0xE5 - .byte 0x1F, 0x00, 0x11, 0xE2, 0x04, 0xD0, 0x8D, 0x12, 0x02, 0x00, 0xA0, 0x13, 0xF0, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0x51, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x02, 0x00, 0xA0, 0x03 - .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x00, 0x97, 0xE5, 0x01, 0x0B, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x32, 0x02, 0x00, 0xA0, 0x33, 0xF0, 0x40, 0xBD, 0x38, 0x1E, 0xFF, 0x2F, 0x31 - .byte 0x00, 0x00, 0x97, 0xE5, 0x05, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x11, 0x00, 0x00, 0xEA + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020D47C8: .word 0x021D54B0 + + arm_func_start MIC_StartAutoSampling +MIC_StartAutoSampling: ; 0x020D47CC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D4808 ; =MicGetResultCallback + mov r2, #0x0 + bl MIC_StartAutoSamplingAsync + ldr r1, _020D480C ; =0x021D54B0 + cmp r0, #0x0 + str r0, [r1, #0xc] + bne _020D47F4 + bl MicWaitBusy +_020D47F4: + ldr r0, _020D480C ; =0x021D54B0 + ldr r0, [r0, #0xc] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D4808: .word MicGetResultCallback +_020D480C: .word 0x021D54B0 + + arm_func_start MIC_StartAutoSamplingAsync +MIC_StartAutoSamplingAsync: ; 0x020D4810 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + ldr r0, [r7, #0x4] + mov r6, r1 + ands r0, r0, #0x1f + mov r5, r2 + addne sp, sp, #0x4 + movne r0, #0x2 + ldmneia sp!, {r4-r7,lr} + bxne lr + ldr r1, [r7, #0x8] + ands r0, r1, #0x1f + addne sp, sp, #0x4 + movne r0, #0x2 + ldmneia sp!, {r4-r7,lr} + bxne lr + cmp r1, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x2 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldr r0, [r7, #0xc] + cmp r0, #0x400 + addcc sp, sp, #0x4 + movcc r0, #0x2 + ldmccia sp!, {r4-r7,lr} + bxcc lr + ldr r0, [r7, #0x0] + cmp r0, #0x5 + addls pc, pc, r0, lsl #0x2 + b _020D48D8 +_020D4890: .byte 0x04, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA .byte 0x08, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x00, 0x10, 0xA0, 0xE3, 0x0D, 0x00, 0x00, 0xEA .byte 0x01, 0x10, 0xA0, 0xE3, 0x0B, 0x00, 0x00, 0xEA, 0x02, 0x10, 0xA0, 0xE3, 0x09, 0x00, 0x00, 0xEA .byte 0x03, 0x10, 0xA0, 0xE3, 0x07, 0x00, 0x00, 0xEA, 0x05, 0x10, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA - .byte 0x07, 0x10, 0xA0, 0xE3, 0x03, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2, 0x02, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x00, 0x97, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x07, 0x10, 0xA0, 0xE3, 0x03, 0x00, 0x00, 0xEA +_020D48D8: + add sp, sp, #0x4 + mov r0, #0x2 + ldmia sp!, {r4-r7,lr} + bx lr +_020D48E8: + .byte 0x10, 0x00, 0x97, 0xE5, 0x00, 0x00, 0x50, 0xE3 .byte 0x10, 0x00, 0x81, 0x13, 0xFF, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x01, 0x02, 0xFF, 0x40, 0x00, 0xE2 .byte 0x82, 0xE2, 0xFF, 0xEB, 0x70, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3 .byte 0x04, 0x00, 0x00, 0x0A, 0x82, 0xE2, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 @@ -2803,88 +11765,330 @@ _020CD33C: .byte 0x14, 0x10, 0x80, 0xE5, 0x04, 0x00, 0x97, 0xE5, 0x08, 0x10, 0x97, 0xE5, 0x0C, 0x20, 0x97, 0xE5 .byte 0xBF, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x03, 0x00, 0xA0, 0x03 .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02 - .byte 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x06, 0x00, 0x50, 0xE3, 0x01, 0x70, 0xA0, 0xE1 - .byte 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xA2, 0x02, 0x00, 0xA0, 0xA3 - .byte 0xF0, 0x40, 0xBD, 0xA8, 0x1E, 0xFF, 0x2F, 0xA1, 0x03, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 - .byte 0x0B, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA + + arm_func_start MIC_DoSamplingAsync +MIC_DoSamplingAsync: ; 0x020D4980 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + cmp r0, #0x6 + mov r7, r1 + mov r6, r2 + mov r5, r3 + addge sp, sp, #0x4 + movge r0, #0x2 + ldmgeia sp!, {r4-r7,lr} + bxge lr + cmp r0, #0x3 + addls pc, pc, r0, lsl #0x2 + b _020D49E4 +_020D49B4: + .byte 0x02, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA .byte 0x05, 0x00, 0x00, 0xEA, 0x00, 0x40, 0xA0, 0xE3, 0x09, 0x00, 0x00, 0xEA, 0x01, 0x40, 0xA0, 0xE3 .byte 0x07, 0x00, 0x00, 0xEA, 0x02, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA, 0x03, 0x40, 0xA0, 0xE3 - .byte 0x03, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2, 0x02, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x45, 0xE2, 0xFF, 0xEB, 0x58, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0x03, 0x00, 0x00, 0xEA +_020D49E4: + add sp, sp, #0x4 + mov r0, #0x2 + ldmia sp!, {r4-r7,lr} + bx lr +_020D49F4: + .byte 0x45, 0xE2, 0xFF, 0xEB, 0x58, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5 .byte 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x45, 0xE2, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x20, 0xA0, 0xE3 .byte 0x00, 0x20, 0x81, 0xE5, 0x3E, 0xE2, 0xFF, 0xEB, 0x28, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 .byte 0x04, 0x60, 0x81, 0xE5, 0x08, 0x50, 0x81, 0xE5, 0x18, 0x70, 0x81, 0xE5, 0xD3, 0xFE, 0xFF, 0xEB .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x03, 0x00, 0xA0, 0x03, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x6C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x58, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x30, 0xA0, 0xE3, 0xB0, 0x30, 0xC1, 0xE1, 0x00, 0x20, 0x80, 0xE5 - .byte 0x04, 0x20, 0x80, 0xE5, 0x45, 0xEC, 0xFF, 0xEB, 0x09, 0x50, 0xA0, 0xE3, 0x01, 0x40, 0xA0, 0xE3 - .byte 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0xB9, 0xEC, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02 + + arm_func_start MIC_Init +MIC_Init: ; 0x020D4A5C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r1, _020D4AD8 ; =0x021D54AC + ldrh r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + ldr r0, _020D4ADC ; =0x021D54B0 + mov r2, #0x0 + mov r3, #0x1 + strh r3, [r1, #0x0] + str r2, [r0, #0x0] + str r2, [r0, #0x4] + bl PXI_Init + mov r5, #0x9 + mov r4, #0x1 + mov r0, r5 + mov r1, r4 + bl PXI_IsCallbackReady +_020D4AAC: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0xFA, 0xFF, 0xFF, 0x0A, 0x24, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x20, 0x10, 0x9F, 0xE5 .byte 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0xBB, 0xEC, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xAC, 0x54, 0x1D, 0x02, 0xB0, 0x54, 0x1D, 0x02 - .byte 0x90, 0xFF, 0x7F, 0x02, 0xC8, 0x45, 0x0D, 0x02, 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x4B, 0x0D, 0x02, 0xE0, 0x54, 0x1D, 0x02 - .byte 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0x78, 0x4B, 0x0D, 0x02, 0xD8, 0x54, 0x1D, 0x02, 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0xC4, 0x4B, 0x0D, 0x02, 0xE0, 0x54, 0x1D, 0x02 - .byte 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0x0C, 0x4C, 0x0D, 0x02, 0xD8, 0x54, 0x1D, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xB0, 0xE1 - .byte 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x00, 0x94, 0xE5, 0x00, 0x10, 0x94, 0xE5 - .byte 0x31, 0xFF, 0x2F, 0xE1, 0x08, 0x40, 0x94, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A - .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020D4AD8: .word 0x021D54AC +_020D4ADC: .word 0x021D54B0 +_020D4AE0: + .byte 0x90, 0xFF, 0x7F, 0x02, 0xC8, 0x45, 0x0D, 0x02 + + arm_func_start PM_DeletePostSleepCallback +PM_DeletePostSleepCallback: ; 0x020D4AE8 + ldr ip, _020D4AF8 ; =0x020D4B78 + mov r1, r0 + ldr r0, _020D4AFC ; =0x021D54E0 + bx r12 + .balign 4 +_020D4AF8: .word 0x020D4B78 +_020D4AFC: .word 0x021D54E0 + + arm_func_start PM_DeletePreSleepCallback +PM_DeletePreSleepCallback: ; 0x020D4B00 + ldr ip, _020D4B10 ; =0x020D4B78 + mov r1, r0 + ldr r0, _020D4B14 ; =0x021D54D8 + bx r12 + .balign 4 +_020D4B10: .word 0x020D4B78 +_020D4B14: .word 0x021D54D8 + + arm_func_start PM_AppendPostSleepCallback +PM_AppendPostSleepCallback: ; 0x020D4B18 + ldr ip, _020D4B28 ; =FUN_020D4BC4 + mov r1, r0 + ldr r0, _020D4B2C ; =0x021D54E0 + bx r12 + .balign 4 +_020D4B28: .word FUN_020D4BC4 +_020D4B2C: .word 0x021D54E0 + + arm_func_start PM_PrependPreSleepCallback +PM_PrependPreSleepCallback: ; 0x020D4B30 + ldr ip, _020D4B40 ; =FUN_020D4C0C + mov r1, r0 + ldr r0, _020D4B44 ; =0x021D54D8 + bx r12 + .balign 4 +_020D4B40: .word FUN_020D4C0C +_020D4B44: .word 0x021D54D8 + + arm_func_start PMi_ExecuteList +PMi_ExecuteList: ; 0x020D4B48 + stmdb sp!, {r4,lr} + movs r4, r0 + ldmeqia sp!, {r4,lr} + bxeq lr +_020D4B58: + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x0] + blx r1 + ldr r4, [r4, #0x8] + cmp r4, #0x0 + bne _020D4B58 + ldmia sp!, {r4,lr} + bx lr +_020D4B78: + .byte 0x00, 0x00, 0x50, 0xE3, 0x1E, 0xFF, 0x2F, 0x01 .byte 0x00, 0x30, 0x90, 0xE5, 0x03, 0x20, 0xA0, 0xE1, 0x00, 0x00, 0x53, 0xE3, 0x1E, 0xFF, 0x2F, 0x01 .byte 0x01, 0x00, 0x53, 0xE1, 0x05, 0x00, 0x00, 0x1A, 0x02, 0x00, 0x53, 0xE1, 0x08, 0x10, 0x93, 0x05 .byte 0x00, 0x10, 0x80, 0x05, 0x08, 0x00, 0x93, 0x15, 0x08, 0x00, 0x82, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 .byte 0x03, 0x20, 0xA0, 0xE1, 0x08, 0x30, 0x93, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0xF3, 0xFF, 0xFF, 0x1A - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x20, 0x90, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x00, 0x20, 0xA0, 0x03, 0x08, 0x20, 0x81, 0x05, 0x00, 0x10, 0x80, 0x05 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x08, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0x00, 0x20, 0xA0, 0xE1, 0x08, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A - .byte 0x08, 0x00, 0x81, 0xE5, 0x08, 0x10, 0x82, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x50, 0xE3 - .byte 0x00, 0x20, 0x90, 0x15, 0x08, 0x20, 0x81, 0x15, 0x00, 0x10, 0x80, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE2 - .byte 0x09, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FUN_020D4BC4 +FUN_020D4BC4: ; 0x020D4BC4 + cmp r0, #0x0 + bxeq lr + ldr r2, [r0, #0x0] + cmp r2, #0x0 + moveq r2, #0x0 + streq r2, [r1, #0x8] + streq r1, [r0, #0x0] + bxeq lr + ldr r0, [r2, #0x8] + cmp r0, #0x0 + beq _020D4C00 +_020D4BF0: + mov r2, r0 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _020D4BF0 +_020D4C00: + str r0, [r1, #0x8] + str r1, [r2, #0x8] + bx lr + + arm_func_start FUN_020D4C0C +FUN_020D4C0C: ; 0x020D4C0C + cmp r0, #0x0 + ldrne r2, [r0, #0x0] + strne r2, [r1, #0x8] + strne r1, [r0, #0x0] + bx lr + + arm_func_start PM_GetLEDPattern +PM_GetLEDPattern: ; 0x020D4C20 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D4C58 ; =0x020D587C + add r2, sp, #0x0 + bl PM_GetLEDPatternAsync +_020D4C34: + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 .byte 0x1E, 0xFF, 0x2F, 0x11, 0x0E, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x58, 0x0D, 0x02, 0x70, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x14, 0x03, 0x00, 0xEB + .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 +_020D4C58: .word 0x020D587C + + arm_func_start PM_GetLEDPatternAsync +PM_GetLEDPatternAsync: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl FUN_020D58C4 +_020D4C70: .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 .byte 0x1C, 0x10, 0x9F, 0xE5, 0x1C, 0x00, 0x9F, 0xE5, 0x04, 0x50, 0x81, 0xE5, 0x08, 0x40, 0x81, 0xE5 .byte 0x0C, 0x60, 0x81, 0xE5, 0x03, 0x01, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE4, 0x54, 0x1D, 0x02, 0x00, 0x67, 0x00, 0x03, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE2, 0x09, 0x00, 0x00, 0xEB + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE4, 0x54, 0x1D, 0x02, 0x00, 0x67, 0x00, 0x03 + + arm_func_start PMi_SendLEDPatternCommand +PMi_SendLEDPatternCommand: ; 0x020D4CAC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D4CE4 ; =0x020D587C + add r2, sp, #0x0 + bl PMi_SendLEDPatternCommandAsync +_020D4CC0: .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 .byte 0xEB, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x58, 0x0D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0xF1, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0xE1 +_020D4CE4: .word 0x020D587C + + arm_func_start PMi_SendLEDPatternCommandAsync +PMi_SendLEDPatternCommandAsync: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl FUN_020D58C4 +_020D4CFC: + .byte 0x00, 0x00, 0x50, 0xE3 .byte 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x20, 0x00, 0x9F, 0xE5 .byte 0x20, 0x10, 0x9F, 0xE5, 0xFF, 0x20, 0x06, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x04, 0x50, 0x81, 0xE5 .byte 0x08, 0x40, 0x81, 0xE5, 0xDF, 0x00, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x66, 0x00, 0x03, 0xE4, 0x54, 0x1D, 0x02, 0x10, 0x00, 0x9F, 0xE5 - .byte 0xB0, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x03, 0x00, 0x04, 0x14, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x01, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE3 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x4D, 0x0D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x2E, 0x00, 0x00, 0x1A - .byte 0x00, 0x00, 0x52, 0xE3, 0x09, 0x00, 0x00, 0x1A, 0xBC, 0x20, 0x9F, 0xE5, 0xBC, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x20, 0x92, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x42, 0xE0, 0x07, 0x00, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x92, 0x00, 0x00, 0xA0, 0x93, 0x00, 0x40, 0xBD, 0x98, 0x1E, 0xFF, 0x2F, 0x91 - .byte 0x00, 0x00, 0x51, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x53, 0xE3, 0x02, 0x00, 0x00, 0x0A - .byte 0x01, 0x00, 0xA0, 0xE1, 0x57, 0x01, 0x00, 0xEB, 0x03, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE1 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE1, 0x61, 0x01, 0x00, 0xEB, 0x70, 0x10, 0x9F, 0xE5 - .byte 0xB0, 0x00, 0xD1, 0xE1, 0x01, 0x00, 0x80, 0xE3, 0xB0, 0x00, 0xC1, 0xE1, 0x12, 0x00, 0x00, 0xEA - .byte 0x5C, 0xE0, 0x9F, 0xE5, 0x50, 0x20, 0x9F, 0xE5, 0xB0, 0xC0, 0xDE, 0xE1, 0x4C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x01, 0xC0, 0xCC, 0xE3, 0xB0, 0xC0, 0xCE, 0xE1, 0x00, 0x20, 0x92, 0xE5 - .byte 0x00, 0x20, 0x80, 0xE5, 0x08, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x53, 0xE3, 0x02, 0x00, 0x00, 0x0A - .byte 0x01, 0x00, 0xA0, 0xE1, 0x3F, 0x01, 0x00, 0xEB, 0x03, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE1 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE1, 0x49, 0x01, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x3C, 0xFC, 0x7F, 0x02 - .byte 0xDC, 0x54, 0x1D, 0x02, 0x04, 0x03, 0x00, 0x04, 0xF0, 0x4F, 0x2D, 0xE9, 0x1C, 0xD0, 0x4D, 0xE2 - .byte 0x0C, 0x32, 0x9F, 0xE5, 0x00, 0xA0, 0xA0, 0xE1, 0x00, 0x00, 0x93, 0xE5, 0x01, 0x90, 0xA0, 0xE1 - .byte 0x02, 0xB0, 0xA0, 0xE1, 0x00, 0x80, 0xA0, 0xE3, 0x2E, 0xFF, 0xFF, 0xEB, 0xF4, 0x11, 0x9F, 0xE5 - .byte 0x08, 0x00, 0xA0, 0xE1, 0xB0, 0x40, 0xD1, 0xE1, 0xB0, 0x00, 0xC1, 0xE1, 0x1B, 0xE1, 0xFF, 0xEB + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x66, 0x00, 0x03, 0xE4, 0x54, 0x1D, 0x02 + + arm_func_start PM_GetLCDPower +PM_GetLCDPower: ; 0x020D4D3C + ldr r0, _020D4D54 ; =0x04000304 + ldrh r0, [r0, #0x0] + ands r0, r0, #0x1 + movne r0, #0x1 + moveq r0, #0x0 + bx lr + .balign 4 +_020D4D54: .word 0x04000304 + + arm_func_start PM_SetLCDPower +PM_SetLCDPower: ; 0x020D4D58 + ldr ip, _020D4D74 ; =PMi_SetLCDPower + mov r1, #0x0 + cmp r0, #0x1 + movne r0, #0x0 + mov r2, r1 + mov r3, #0x1 + bx r12 + .balign 4 +_020D4D74: .word PMi_SetLCDPower + + arm_func_start PMi_SetLCDPower +PMi_SetLCDPower: ; 0x020D4D78 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x0 + beq _020D4E00 + cmp r0, #0x1 + bne _020D4E4C + cmp r2, #0x0 + bne _020D4DC0 + ldr r2, _020D4E5C ; =0x027FFC3C + ldr r0, _020D4E60 ; =0x021D54DC + ldr r2, [r2, #0x0] + ldr r0, [r0, #0x0] + sub r0, r2, r0 + cmp r0, #0x7 + addls sp, sp, #0x4 + movls r0, #0x0 + ldmlsia sp!, {lr} + bxls lr +_020D4DC0: + cmp r1, #0x0 + beq _020D4DEC + cmp r3, #0x0 + beq _020D4DDC + mov r0, r1 + bl FUN_020D5338 + b _020D4DEC +_020D4DDC: + mov r0, r1 + mov r1, #0x0 + mov r2, r1 + bl FUN_020D5374 +_020D4DEC: + ldr r1, _020D4E64 ; =0x04000304 + ldrh r0, [r1, #0x0] + orr r0, r0, #0x1 + strh r0, [r1, #0x0] + b _020D4E4C +_020D4E00: + ldr lr, _020D4E64 ; =0x04000304 + ldr r2, _020D4E5C ; =0x027FFC3C + ldrh r12, [lr, #0x0] + ldr r0, _020D4E60 ; =0x021D54DC + cmp r1, #0x0 + bic r12, r12, #0x1 + strh r12, [lr, #0x0] + ldr r2, [r2, #0x0] + str r2, [r0, #0x0] + beq _020D4E4C + cmp r3, #0x0 + beq _020D4E3C + mov r0, r1 + bl FUN_020D5338 + b _020D4E4C +_020D4E3C: + mov r0, r1 + mov r1, #0x0 + mov r2, r1 + bl FUN_020D5374 +_020D4E4C: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D4E5C: .word 0x027FFC3C +_020D4E60: .word 0x021D54DC +_020D4E64: .word 0x04000304 + + arm_func_start PM_GoSleepMode +PM_GoSleepMode: ; 0x020D4E68 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x1c + ldr r3, _020D5084 ; =0x021D54D8 + mov r10, r0 + ldr r0, [r3, #0x0] + mov r9, r1 + mov r11, r2 + mov r8, #0x0 + bl PMi_ExecuteList + ldr r1, _020D5088 ; =0x04000208 + mov r0, r8 + ldrh r4, [r1, #0x0] + strh r0, [r1, #0x0] + bl OS_DisableInterrupts +_020D4EA0: .byte 0x00, 0x00, 0x8D, 0xE5, 0xE0, 0x01, 0x9F, 0xE5, 0xD9, 0xD3, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE5 .byte 0x01, 0x07, 0xA0, 0xE3, 0xF6, 0xD3, 0xFF, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x18, 0xE1, 0xFF, 0xEB .byte 0xC0, 0x21, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x00, 0xD2, 0xE1, 0x08, 0x00, 0x1A, 0xE2 @@ -2915,11 +12119,26 @@ _020CD33C: .byte 0xB3, 0xE0, 0xFF, 0xEB, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x58, 0xE3, 0xB0, 0x00, 0xD1, 0xE1 .byte 0xB0, 0x40, 0xC1, 0xE1, 0x00, 0x00, 0x00, 0x0A, 0x44, 0x00, 0x00, 0xEB, 0x30, 0x00, 0x9F, 0xE5 .byte 0x00, 0x00, 0x90, 0xE5, 0xB3, 0xFE, 0xFF, 0xEB, 0x1C, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xD8, 0x54, 0x1D, 0x02, 0x08, 0x02, 0x00, 0x04, 0xFF, 0xFF, 0x3F, 0x00 + .byte 0x1E, 0xFF, 0x2F, 0xE1 +_020D5084: .word 0x021D54D8 +_020D5088: .word 0x04000208 +_020D508C: + .byte 0xFF, 0xFF, 0x3F, 0x00 .byte 0x40, 0xFC, 0x7F, 0x02, 0x00, 0x10, 0x00, 0x04, 0x3C, 0xFC, 0x7F, 0x02, 0x00, 0x6A, 0x99, 0x00 - .byte 0x14, 0x02, 0x00, 0x04, 0xE0, 0x54, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x08, 0x50, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x20, 0xA0, 0xE1, 0x05, 0xEB, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A + .byte 0x14, 0x02, 0x00, 0x04, 0xE0, 0x54, 0x1D, 0x02 + + arm_func_start PMi_SendPxiData +PMi_SendPxiData: ; 0x020D50A8 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, #0x8 + mov r4, #0x0 + mov r0, r5 + mov r1, r6 + mov r2, r4 + bl PXI_SendWordByFifo +_020D50C8: + .byte 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 arm_func_start PM_GetBackLight @@ -2930,169 +12149,15 @@ PM_GetBackLight: ; 0x020D50D8 mov r5, r0 add r1, sp, #0x0 mov r0, #0x0 - bl _020D5498 + bl FUN_020D5498 _020D50F4: .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0x55, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0xB0, 0x10, 0xDD, 0xE1 .byte 0x08, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x10, 0x85, 0xE5 .byte 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 .byte 0xB0, 0x10, 0xDD, 0xE1, 0x04, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03 - .byte 0x00, 0x10, 0x84, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x18, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE3 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xDC, 0x53, 0x0D, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x20, 0x18, 0xA0, 0xE1, 0x02, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xDC, 0x53, 0x0D, 0x02 - .byte 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x8D, 0xE2 - .byte 0x09, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0xB6, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x58, 0x0D, 0x02, 0xF0, 0x40, 0x2D, 0xE9 - .byte 0x0C, 0xD0, 0x4D, 0xE2, 0x00, 0x70, 0xA0, 0xE1, 0x98, 0x00, 0x9F, 0xE5, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x6A, 0xE0, 0xFF, 0xEB, 0xD8, 0xFE, 0xFF, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x1A, 0x00, 0x00, 0x0A - .byte 0x00, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0x8D, 0xE2, 0xBA, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x9D, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x19, 0x00, 0x00, 0xEB, 0x04, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A - .byte 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x13, 0x00, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0xCC, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x34, 0x50, 0x9F, 0xE5 - .byte 0x01, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x50, 0xE0, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0xC4, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x0A, 0x07, 0x10, 0xA0, 0xE1 - .byte 0x06, 0x20, 0xA0, 0xE1, 0x0E, 0x00, 0xA0, 0xE3, 0xBB, 0x00, 0x00, 0xEB, 0x0C, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x6A, 0x99, 0x00, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0x8D, 0xE2, 0x09, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0x7B, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x58, 0x0D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0xC0, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x51, 0xE3 - .byte 0x06, 0xC0, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3, 0x07, 0xC0, 0xA0, 0x03, 0x0C, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x51, 0xE3, 0x04, 0xC0, 0xA0, 0x03 - .byte 0x00, 0x00, 0x51, 0xE3, 0x05, 0xC0, 0xA0, 0x03, 0x05, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x51, 0xE3, 0x08, 0xC0, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3 - .byte 0x09, 0xC0, 0xA0, 0x03, 0x00, 0x00, 0x5C, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x20, 0x00, 0x9F, 0x05 - .byte 0x00, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x02, 0x10, 0xA0, 0xE1, 0x0C, 0x00, 0xA0, 0xE1 - .byte 0x03, 0x20, 0xA0, 0xE1, 0x88, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x28, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE2, 0x09, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x48, 0x01, 0x00, 0xEB - .byte 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x7C, 0x58, 0x0D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x01, 0x00, 0x50, 0xE3 - .byte 0x04, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA - .byte 0x02, 0x00, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x14, 0x00, 0x9F, 0x05 - .byte 0x00, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x5F, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x28, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0x8D, 0xE2, 0x09, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0x1F, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0x58, 0x0D, 0x02, 0xF0, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1 - .byte 0x23, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03 - .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x38, 0x00, 0x9F, 0xE5, 0x38, 0x10, 0x9F, 0xE5 - .byte 0xFF, 0x20, 0x07, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x04, 0x60, 0x81, 0xE5, 0x08, 0x50, 0x81, 0xE5 - .byte 0x10, 0xFF, 0xFF, 0xEB, 0x24, 0x00, 0x9F, 0xE5, 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x04, 0xE0 - .byte 0x01, 0x00, 0x80, 0xE1, 0x0B, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x64, 0x00, 0x02, 0xE4, 0x54, 0x1D, 0x02 - .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01 -_020D5498: - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, _020D54D0 ; =0x020D587C - add r3, sp, #0x0 - bl _020D54D4 -_020D54AC: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0xF0, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 -_020D54D0: .word 0x020D587C -_020D54D4: - stmdb sp!, {r4-r8,lr} - mov r7, r0 - mov r6, r1 - mov r5, r2 - mov r4, r3 - bl _020D58C4 -_020D54EC: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x03, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x38, 0xC0, 0x9F, 0xE5 - .byte 0x38, 0x10, 0x9F, 0xE5, 0x38, 0x00, 0x9F, 0xE5, 0xFF, 0x20, 0x07, 0xE2, 0x87, 0xE1, 0xA0, 0xE1 - .byte 0x00, 0x80, 0xA0, 0xE3, 0x2C, 0x30, 0x9F, 0xE5, 0xBE, 0x80, 0x8C, 0xE1, 0x00, 0x00, 0x82, 0xE1 - .byte 0x04, 0x50, 0x81, 0xE5, 0x08, 0x40, 0x81, 0xE5, 0x87, 0x61, 0x83, 0xE7, 0xDD, 0xFE, 0xFF, 0xEB - .byte 0x08, 0x00, 0xA0, 0xE1, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x55, 0x1D, 0x02 - .byte 0xE4, 0x54, 0x1D, 0x02, 0x00, 0x65, 0x00, 0x03, 0x10, 0x55, 0x1D, 0x02, 0x70, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1, 0xD8, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x24, 0x28, 0xA0, 0xE1, 0x34, 0x10, 0x9F, 0xE5, 0x34, 0x00, 0x9F, 0xE5, 0xFF, 0x20, 0x02, 0xE2 - .byte 0x00, 0x00, 0x82, 0xE1, 0x04, 0x60, 0x81, 0xE5, 0x08, 0x50, 0x81, 0xE5, 0xC5, 0xFE, 0xFF, 0xEB - .byte 0x20, 0x00, 0x9F, 0xE5, 0x20, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x04, 0xE0, 0x01, 0x00, 0x80, 0xE1 - .byte 0xC0, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xE4, 0x54, 0x1D, 0x02, 0x00, 0x63, 0x00, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01 - .byte 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1 - .byte 0xBB, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03 - .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x70, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x6C, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x81, 0xE5, 0xAA, 0xFE, 0xFF, 0xEB, 0x5C, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFC, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x50, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x00, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE1 - .byte 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x8C, 0xE5, 0xD2, 0xFD, 0xFF, 0xEB, 0x38, 0x00, 0x9F, 0xE5 - .byte 0xFF, 0x10, 0x05, 0xE2, 0x00, 0x00, 0x81, 0xE1, 0x9A, 0xFE, 0xFF, 0xEB, 0x2C, 0x00, 0x9F, 0xE5 - .byte 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x04, 0xE0, 0x01, 0x00, 0x80, 0xE1, 0x95, 0xFE, 0xFF, 0xEB - .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xD0, 0x54, 0x1D, 0x02, 0x00, 0x60, 0x00, 0x03, 0xD4, 0x54, 0x1D, 0x02, 0x00, 0x61, 0x00, 0x02 - .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x02, 0x00, 0xA0, 0xE3, 0x65, 0x00, 0x00, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x7F, 0x0C, 0x01, 0xE2 - .byte 0x00, 0x04, 0xA0, 0xE1, 0xFF, 0x10, 0x01, 0xE2, 0x20, 0x28, 0xA0, 0xE1, 0x01, 0x08, 0xA0, 0xE1 - .byte 0x70, 0x00, 0x52, 0xE3, 0x20, 0x08, 0xA0, 0xE1, 0x0F, 0x00, 0x00, 0x3A, 0x74, 0x00, 0x52, 0xE3 - .byte 0x0D, 0x00, 0x00, 0x8A, 0x84, 0x10, 0x9F, 0xE5, 0x70, 0x20, 0x42, 0xE2, 0xFF, 0x00, 0x00, 0xE2 - .byte 0x82, 0x11, 0x91, 0xE7, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3 - .byte 0xB0, 0x00, 0xC1, 0x11, 0x82, 0x11, 0xA0, 0xE1, 0x64, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3 - .byte 0xB1, 0x20, 0x80, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x52, 0xE3 - .byte 0x50, 0x10, 0x9F, 0x05, 0x01, 0x20, 0xA0, 0x03, 0x00, 0x20, 0x81, 0x05, 0x0B, 0x00, 0x00, 0x0A - .byte 0x62, 0x00, 0x52, 0xE3, 0x40, 0x10, 0x9F, 0x05, 0x01, 0x20, 0xA0, 0x03, 0x00, 0x20, 0x81, 0x05 - .byte 0x06, 0x00, 0x00, 0x0A, 0x67, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x2C, 0x10, 0x9F, 0xE5 - .byte 0x0C, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0x81, 0x15, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x38, 0x00, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x10, 0x55, 0x1D, 0x02, 0x0C, 0x55, 0x1D, 0x02, 0xD0, 0x54, 0x1D, 0x02, 0xD4, 0x54, 0x1D, 0x02 - .byte 0xE4, 0x54, 0x1D, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x98, 0x10, 0x9F, 0xE5 - .byte 0xB0, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x84, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x30, 0xA0, 0xE3 - .byte 0xB0, 0x30, 0xC1, 0xE1, 0x00, 0x20, 0x80, 0xE5, 0x04, 0x20, 0x80, 0xE5, 0x03, 0xE9, 0xFF, 0xEB - .byte 0x08, 0x50, 0xA0, 0xE3, 0x01, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1 - .byte 0x77, 0xE9, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A, 0x50, 0x10, 0x9F, 0xE5 - .byte 0x08, 0x00, 0xA0, 0xE3, 0x7C, 0xE9, 0xFF, 0xEB, 0x00, 0x30, 0xA0, 0xE3, 0x44, 0x00, 0x9F, 0xE5 - .byte 0x03, 0x20, 0xA0, 0xE1, 0x83, 0x11, 0xA0, 0xE1, 0x01, 0x30, 0x83, 0xE2, 0xB1, 0x20, 0x80, 0xE1 - .byte 0x05, 0x00, 0x53, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA, 0x2C, 0x00, 0x9F, 0xE5, 0x2A, 0xDA, 0xFF, 0xEB - .byte 0x28, 0x10, 0x9F, 0xE5, 0x28, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xCC, 0x54, 0x1D, 0x02 - .byte 0xE4, 0x54, 0x1D, 0x02, 0x78, 0x56, 0x0D, 0x02, 0x0C, 0x55, 0x1D, 0x02, 0xF4, 0x54, 0x1D, 0x02 - .byte 0x3C, 0xFC, 0x7F, 0x02, 0xDC, 0x54, 0x1D, 0x02, 0x00, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 - .byte 0x40, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x04, 0xC0, 0x92, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x00, 0x30, 0xA0, 0x13, 0x00, 0x30, 0x82, 0x15, 0x00, 0x00, 0x5C, 0xE3, 0x04, 0xD0, 0x8D, 0x02 - .byte 0x08, 0x10, 0x92, 0xE5, 0x00, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x14, 0x20, 0x9F, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x3C, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xE4, 0x54, 0x1D, 0x02, 0x00, 0x00, 0x81, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0x2D, 0xE9, 0x30, 0x40, 0x9F, 0xE5, 0x00, 0x00, 0x94, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0xB1, 0xDE, 0xFF, 0xEB - .byte 0x80, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0xC3, 0xE8, 0xFF, 0xEB, 0x00, 0x00, 0x94, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0xF8, 0xFF, 0xFF, 0x1A, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xE4, 0x54, 0x1D, 0x02 -_020D58C4: - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020CD310 - ldr r1, _020D5910 ; =0x021D54E4 - ldr r2, [r1, #0x0] - cmp r2, #0x0 - beq _020D58F4 - bl FUN_020CD324 - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {lr} + .byte 0x00, 0x10, 0x84, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 +_020D5150: bx lr -_020D58F4: - mov r2, #0x1 - str r2, [r1, #0x0] - bl FUN_020CD324 - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020D5910: .word 0x021D54E4 + +; end before _020D5910: .word 0x021D54E4 diff --git a/asm/rom2.s b/asm/rom2.s index 95a5107f..c0ec08f4 100644 --- a/asm/rom2.s +++ b/asm/rom2.s @@ -2,7 +2,8 @@ .section .text -.incbin "baserom.nds", 0xD9914, 0x16CB8 +.incbin "baserom.nds", 0xD9150, 0x1747C + .global FUN_020EC5CC FUN_020EC5CC: diff --git a/asm/secure.s b/asm/secure.s index 7f3a678c..f889a118 100644 --- a/asm/secure.s +++ b/asm/secure.s @@ -2,4 +2,12 @@ .section .text -.incbin "baserom.nds", 0x4000, 0x800 +.incbin "baserom.nds", 0x4000, 0x5F2 + + .global FUN_020005F2 + .thumb +FUN_020005F2: + swi 3 + bx lr + +.incbin "baserom.nds", 0x45F6, 0x20A diff --git a/undefined_syms.txt b/undefined_syms.txt index d2a0c6e8..329641bd 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -902,6 +902,21 @@ FUN_0224F12C = 0x0224F12C; FUN_02252534 = 0x02252534; FUN_02252538 = 0x02252538; FUN_022567E0 = 0x022567E0; +FUN_01FF84E4 = 0x01FF84E4; +FUN_01FF857C = 0x01FF857C; +FUN_01FF85F0 = 0x01FF85F0; +FUN_020005F2 = 0x020005F2; +FUN_02000950 = 0x02000950; +FUN_020CD380 = 0x020CD380; +FUN_020D5338 = 0x020D5338; +FUN_020D5374 = 0x020D5374; +FUN_020D5498 = 0x020D5498; +FUN_020D5764 = 0x020D5764; +FUN_020D58C4 = 0x020D58C4; +FUN_020D66C0 = 0x020D66C0; +FUN_020D66E0 = 0x020D66E0; +FUN_020D72AC = 0x020D72AC; +FUN_020DBC80 = 0x020DBC80; CONST_3F = 0x0000003F; CONST_34 = 0x00000034; gBacklightTop = 0x2106FA0; -- cgit v1.2.3 From f7fafb7d506b03c8ec5951a5954c2a551922bdbf Mon Sep 17 00:00:00 2001 From: Mor Date: Sat, 18 Apr 2020 23:26:14 +0300 Subject: applied names to FUN_020C9C0C externs --- asm/FUN_020C9C0C.s | 77 +++++++-------- asm/arm9_thumb.s | 278 ++++++++++++++++++++++++++--------------------------- global.inc | 6 +- undefined_syms.txt | 28 +++--- 4 files changed, 192 insertions(+), 197 deletions(-) diff --git a/asm/FUN_020C9C0C.s b/asm/FUN_020C9C0C.s index 50fcd3d5..98b66335 100644 --- a/asm/FUN_020C9C0C.s +++ b/asm/FUN_020C9C0C.s @@ -6,25 +6,20 @@ .text .extern FUN_020005F2 -.extern FUN_020EBBE8 -.extern FUN_020EBC80 -.extern FUN_020EBC80 -.extern FUN_020EBC80 -.extern FUN_020DBC80 -.extern FUN_020D7228 -.extern FUN_020D5764 -.extern FUN_020EBBE8 -.extern FUN_020D7228 -.extern FUN_020D66C0 -.extern FUN_020D72AC -.extern FUN_02000950 -.extern FUN_020D5338 -.extern FUN_020D5338 -.extern FUN_020D66E0 -.extern FUN_020CD380 -.extern FUN_020D58C4 -.extern FUN_020D5374 -.extern FUN_020D5498 +.extern _ll_udiv +.extern _s32_div_f +.extern CTRDG_Init +.extern PM_Init +.extern CARD_Init +.extern CARD_LockRom +.extern CARD_UnlockRom +.extern CARDi_ReadRom +.extern MIi_UncompressBackward +.extern PMi_SetLED +.extern OS_SpinWait +.extern PMi_Lock +.extern PMi_SetLEDAsync +.extern PMi_ReadRegister .extern FUN_01FF857C .extern FUN_01FF84E4 .extern FUN_01FF85F0 @@ -1228,7 +1223,7 @@ _020CAB98: ldr r2, [sp, #0xc] ldr r3, [sp, #0x4] mov r0, r4 - bl FUN_020EBBE8 + bl _ll_udiv mov r3, #0xa umull r3, r12, r0, r3 subs r3, r4, r3 @@ -2537,7 +2532,7 @@ _020CBCCC: ldr r0, [r6, #0x18] add r0, r0, r1 sub r0, r0, #0x1 - bl FUN_020EBC80 + bl _s32_div_f str r1, [r6, #0x18] ldr r2, [r6, #0x10] ldr r1, [r6, #0x18] @@ -2589,7 +2584,7 @@ _020CBD74: ldr r0, [r6, #0x18] ldr r1, [r6, #0x14] add r0, r0, #0x1 - bl FUN_020EBC80 + bl _s32_div_f str r1, [r6, #0x18] ldr r1, [r6, #0x1c] mov r0, r6 @@ -2635,7 +2630,7 @@ _020CBE14: _020CBE2C: ldr r0, [r6, #0x18] add r0, r0, r2 - bl FUN_020EBC80 + bl _s32_div_f ldr r2, [r6, #0x10] add r0, r6, #0x8 str r5, [r2, r1, lsl #0x2] @@ -2945,9 +2940,9 @@ OS_Init: ; 0x020CC1B4 bl OSi_InitVramExclusive bl OS_InitThread bl OS_InitReset - bl FUN_020DBC80 - bl FUN_020D7228 - bl FUN_020D5764 + bl CTRDG_Init + bl CARD_Init + bl PM_Init add sp, sp, #0x4 ldmia sp!, {lr} bx lr @@ -3885,7 +3880,7 @@ OSi_InsertAlarm: ; 0x020CD038 mov r2, r5 mov r3, r4 sbc r1, r1, r6 - bl FUN_020EBBE8 + bl _ll_udiv mov r2, #0x1 adds r2, r0, r2 adc r0, r1, #0x0 @@ -4150,7 +4145,7 @@ _020CD3D0: bl OS_GetLockID mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 - bl FUN_020D66E0 + bl CARD_LockRom _020CD3E0: .byte 0x00, 0x00, 0xA0, 0xE3, 0x6B, 0x01, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x69, 0x01, 0x00, 0xEB .byte 0x02, 0x00, 0xA0, 0xE3, 0x67, 0x01, 0x00, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x65, 0x01, 0x00, 0xEB @@ -6233,7 +6228,7 @@ _020CF294: mov r0, r5 bl OS_RestoreInterrupts mov r0, r6 - bl FUN_020CD380 + bl OS_SpinWait bl OS_DisableInterrupts mov r5, r0 bl SNDi_GetFinishedCommandTag @@ -9024,7 +9019,7 @@ FSi_InitRom: ; 0x020D1D84 str r12, [r2, #0x4] str r12, [r1, #0x0] str r12, [r1, #0x4] - bl FUN_020D7228 + bl CARD_Init ldr r0, _020D1EF8 ; =0x021D5414 bl FS_InitArchive ldr r0, _020D1EF8 ; =0x021D5414 @@ -9143,7 +9138,7 @@ _020D1F58: ldr r0, [r0, #0x0] mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 - bl FUN_020D66E0 + bl CARD_LockRom add sp, sp, #0x4 mov r0, #0x0 ldmia sp!, {lr} @@ -9153,7 +9148,7 @@ _020D1F7C: ldr r0, [r0, #0x0] mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 - bl FUN_020D66C0 + bl CARD_UnlockRom add sp, sp, #0x4 mov r0, #0x0 ldmia sp!, {lr} @@ -9190,7 +9185,7 @@ FSi_ReadRomCallback: ; 0x020D1FCC mov r1, r2 ldr r0, [r0, #0x0] mov r2, lr - bl FUN_020D72AC + bl CARDi_ReadRom mov r0, #0x6 add sp, sp, #0xc ldmia sp!, {lr} @@ -9358,7 +9353,7 @@ _020D22A4: beq _020D22BC ldr r0, [r5, #0x4] add r0, r0, r4 - bl FUN_02000950 + bl MIi_UncompressBackward _020D22BC: ldr r0, [r5, #0x4] ldr r1, [r5, #0x8] @@ -11945,7 +11940,7 @@ PM_GetLEDPatternAsync: mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_020D58C4 + bl PMi_Lock _020D4C70: .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 .byte 0x1C, 0x10, 0x9F, 0xE5, 0x1C, 0x00, 0x9F, 0xE5, 0x04, 0x50, 0x81, 0xE5, 0x08, 0x40, 0x81, 0xE5 @@ -11971,7 +11966,7 @@ PMi_SendLEDPatternCommandAsync: mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_020D58C4 + bl PMi_Lock _020D4CFC: .byte 0x00, 0x00, 0x50, 0xE3 .byte 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x20, 0x00, 0x9F, 0xE5 @@ -12028,13 +12023,13 @@ _020D4DC0: cmp r3, #0x0 beq _020D4DDC mov r0, r1 - bl FUN_020D5338 + bl PMi_SetLED b _020D4DEC _020D4DDC: mov r0, r1 mov r1, #0x0 mov r2, r1 - bl FUN_020D5374 + bl PMi_SetLEDAsync _020D4DEC: ldr r1, _020D4E64 ; =0x04000304 ldrh r0, [r1, #0x0] @@ -12055,13 +12050,13 @@ _020D4E00: cmp r3, #0x0 beq _020D4E3C mov r0, r1 - bl FUN_020D5338 + bl PMi_SetLED b _020D4E4C _020D4E3C: mov r0, r1 mov r1, #0x0 mov r2, r1 - bl FUN_020D5374 + bl PMi_SetLEDAsync _020D4E4C: mov r0, #0x1 add sp, sp, #0x4 @@ -12149,7 +12144,7 @@ PM_GetBackLight: ; 0x020D50D8 mov r5, r0 add r1, sp, #0x0 mov r0, #0x0 - bl FUN_020D5498 + bl PMi_ReadRegister _020D50F4: .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0x55, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0xB0, 0x10, 0xDD, 0xE1 diff --git a/asm/arm9_thumb.s b/asm/arm9_thumb.s index 2084721f..cd0fd83a 100644 --- a/asm/arm9_thumb.s +++ b/asm/arm9_thumb.s @@ -2291,7 +2291,7 @@ _02001ECE: ldrb r4, [r5, #0x15] add r1, r6, #0x0 add r0, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x0 bne _02001EF2 ldrb r0, [r5, #0xb] @@ -2323,7 +2323,7 @@ _02001F08: ldrb r6, [r5, #0x15] sub r4, r1, #0x1 add r0, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f cmp r4, r1 bne _02001F2A ldrb r0, [r5, #0xb] @@ -2393,7 +2393,7 @@ _02001F72: mov r0, #0x0 pop {r4-r6, pc} _02001F8A: - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x18 asr r2, r0, #0x18 b _02001F9A @@ -2563,7 +2563,7 @@ FUN_020020B0: ; 0x020020B0 ldrb r1, [r5, #0xa] add r0, r7, #0x0 add r6, r2, #0x0 - blx FUN_020EBC80 + blx _s32_div_f ldrb r2, [r5, #0x19] ldrb r1, [r5, #0x16] lsl r2, r2, #0x1 @@ -2572,7 +2572,7 @@ FUN_020020B0: ; 0x020020B0 strb r1, [r4, #0x0] ldrb r1, [r5, #0xa] add r0, r7, #0x0 - blx FUN_020EBC80 + blx _s32_div_f ldrb r2, [r5, #0xb] ldrb r3, [r5, #0x1a] ldrb r0, [r5, #0x18] @@ -7866,7 +7866,7 @@ _02004872: bne _0200488A add r0, r4, #0x0 mov r1, #0x5 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0200483C @@ -8219,7 +8219,7 @@ FUN_02004AF8: ; 0x02004AF8 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 ldr r0, [r4, #0x0] blx FUN_020C04DC @@ -8778,11 +8778,11 @@ FUN_02004F28: ; 0x02004F28 add r0, r6, #0x0 lsl r1, r1, #0x8 ldr r5, [r5, #0x8] - blx FUN_020EBC80 + blx _s32_div_f lsl r1, r0, #0x1 bpl _02004F50 mov r0, #0x20 - blx FUN_020EBC80 + blx _s32_div_f neg r0, r0 b _02004F5A _02004F50: @@ -9027,7 +9027,7 @@ _020050D8: blt _020050D8 _020050E6: add r1, r2, #0x0 - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [sp, #0x8] strh r0, [r1, #0x0] mov r0, #0x0 @@ -9044,7 +9044,7 @@ _020050FA: cmp r2, r1 blt _020050FA _02005108: - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [sp, #0x4] sub r4, r4, #0x1 strh r0, [r1, #0x0] @@ -19787,12 +19787,12 @@ _0200A1EA: mov r0, #0x12 ldrsh r0, [r5, r0] add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f strh r0, [r5, #0x14] mov r0, #0x12 ldrsh r0, [r5, r0] add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f strh r1, [r5, #0x16] mov r0, #0x0 strh r0, [r5, #0x18] @@ -30147,13 +30147,13 @@ FUN_0200F14C: ; 0x0200F14C thumb_func_start FUN_0200F164 FUN_0200F164: ; 0x0200F164 - ldr r3, _0200F170 ; =FUN_020EBC80 + ldr r3, _0200F170 ; =_s32_div_f sub r0, r1, r0 lsl r0, r0, #0x7 add r1, r2, #0x0 bx r3 nop -_0200F170: .word FUN_020EBC80 +_0200F170: .word _s32_div_f thumb_func_start FUN_0200F174 FUN_0200F174: ; 0x0200F174 @@ -32716,7 +32716,7 @@ FUN_0201047C: ; 0x0201047C str r3, [sp, #0x1c] ldr r6, [sp, #0x38] ldr r7, [sp, #0x3c] - blx FUN_020EBC80 + blx _s32_div_f str r0, [sp, #0x20] ldrb r1, [r4, #0x8] ldr r3, [sp, #0x44] @@ -32872,7 +32872,7 @@ FUN_020105A0: ; 0x020105A0 asr r7, r1, #0xc lsl r0, r7, #0x1 mov r1, #0x15 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x1 lsl r0, r0, #0x1 mov r1, #0xb4 @@ -32880,7 +32880,7 @@ FUN_020105A0: ; 0x020105A0 ldr r0, _02010684 ; =0x0000FFFF add r1, #0xb4 mul r0, r2 - blx FUN_020EBC80 + blx _s32_div_f lsr r1, r0, #0x1f add r1, r0, r1 asr r4, r1, #0x1 @@ -33569,7 +33569,7 @@ FUN_02010B40: ; 0x02010B40 str r0, [sp, #0x0] ldr r0, [r0, #0xc] ldr r1, _02010C60 ; =0x00003FFF - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] @@ -33722,7 +33722,7 @@ FUN_02010C64: ; 0x02010C64 add r0, r3, #0x0 mul r0, r1 add r1, r2, #0x0 - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [r4, #0x4] add r0, r0, r1 str r0, [r4, #0x0] @@ -34065,7 +34065,7 @@ FUN_02010F14: ; 0x02010F14 add r0, r3, #0x0 mul r0, r1 add r1, r2, #0x0 - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [r4, #0x4] add r0, r0, r1 str r0, [r4, #0x0] @@ -34371,7 +34371,7 @@ FUN_0201115C: ; 0x0201115C add r1, r3, #0x0 sub r0, r4, r6 mul r0, r2 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, r6 cmp r6, r4 bhi _0201117C @@ -37341,14 +37341,14 @@ FUN_02012710: ; 0x02012710 bne _02012742 add r0, r6, #0x0 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x0 bne _02012750 _02012742: mov r1, #0x19 add r0, r6, #0x0 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x0 bne _02012752 _02012750: @@ -37998,7 +37998,7 @@ FUN_02012BE4: ; 0x02012BE4 ldr r0, _02012C80 ; =0x00000798 mov r1, #0x64 ldrsh r0, [r6, r0] - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r3, r0, #0x18 ldr r0, _02012C84 ; =0x0000078C @@ -38030,7 +38030,7 @@ _02012C12: stmia r5!, {r0} add r0, r3, #0x1 mov r1, #0xc0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x18 lsr r3, r0, #0x18 ldr r0, _02012C8C ; =0x0000078D @@ -38053,7 +38053,7 @@ _02012C4C: blt _02012C70 mov r0, #0x0 ldrsh r0, [r4, r0] - blx FUN_020EBC80 + blx _s32_div_f strh r1, [r4, #0x0] pop {r3-r7, pc} _02012C70: @@ -43490,7 +43490,7 @@ FUN_020152B0: ; 0x020152B0 bl FUN_02015050 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] - blx FUN_020EBC80 + blx _s32_div_f add r1, sp, #0x0 ldrb r1, [r1, #0x0] lsl r1, r1, #0x2 @@ -43511,7 +43511,7 @@ FUN_020152D8: ; 0x020152D8 bl FUN_02015050 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] - blx FUN_020EBC80 + blx _s32_div_f add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 @@ -44609,7 +44609,7 @@ FUN_02015AEC: ; 0x02015AEC add r0, r0, #0x1 mul r0, r1 ldr r1, [r4, #0x18] - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [r4, #0x14] add r0, r1, r0 lsl r0, r0, #0x10 @@ -44745,7 +44745,7 @@ FUN_02015BE8: ; 0x02015BE8 ldr r0, [r4, #0x8] mul r0, r1 ldr r1, [r4, #0xc] - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [r4, #0x24] str r0, [r1, #0x0] add r0, r4, #0x0 @@ -57525,7 +57525,7 @@ FUN_0201B970: ; 0x0201B970 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 - blx FUN_020EBC80 + blx _s32_div_f ldr r0, _0201B984 ; =0x020EDF50 lsl r1, r1, #0x2 ldr r0, [r0, r1] @@ -57538,7 +57538,7 @@ FUN_0201B988: ; 0x0201B988 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 - blx FUN_020EBC80 + blx _s32_div_f add r1, #0x5a ldr r0, _0201B99C ; =0x020EDF50 lsl r1, r1, #0x2 @@ -57552,7 +57552,7 @@ FUN_0201B9A0: ; 0x0201B9A0 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 - blx FUN_020EBC80 + blx _s32_div_f ldr r0, _0201B9B4 ; =0x020EDC7E lsl r1, r1, #0x1 ldrh r0, [r0, r1] @@ -57567,7 +57567,7 @@ FUN_0201B9B8: ; 0x0201B9B8 mov r1, #0x5a lsr r0, r0, #0x10 lsl r1, r1, #0x2 - blx FUN_020EBC80 + blx _s32_div_f ldr r0, _0201B9D0 ; =0x020EDF50 lsl r1, r1, #0x2 ldr r0, [r0, r1] @@ -57944,7 +57944,7 @@ FUN_0201BC84: ; 0x0201BC84 lsr r2, r2, #0xc orr r2, r1 asr r1, r2, #0xc - blx FUN_020EBC80 + blx _s32_div_f pop {r3-r5, pc} nop _0201BCB4: .word 0x0000323D @@ -62671,7 +62671,7 @@ FUN_0201DF10: ; 0x0201DF10 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x0 beq _0201DF28 sub r5, r5, r1 @@ -62687,11 +62687,11 @@ FUN_0201DF2C: ; 0x0201DF2C asr r2, r0, #0x4 lsr r2, r2, #0x1b add r2, r0, r2 - ldr r3, _0201DF38 ; =FUN_020EBC80 + ldr r3, _0201DF38 ; =_s32_div_f asr r0, r2, #0x5 bx r3 .balign 4 -_0201DF38: .word FUN_020EBC80 +_0201DF38: .word _s32_div_f thumb_func_start FUN_0201DF3C FUN_0201DF3C: ; 0x0201DF3C @@ -64243,7 +64243,7 @@ _0201EA5C: ldr r0, [r7, #0x4] ldr r1, [r1, #0x0] add r0, r0, #0x1 - blx FUN_020EBC80 + blx _s32_div_f str r1, [r7, #0x4] ldr r1, [sp, #0x0] ldr r0, [r5, #0x64] @@ -64262,7 +64262,7 @@ _0201EA5C: ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] add r0, r0, #0x1 - blx FUN_020EBC80 + blx _s32_div_f ldr r0, [sp, #0x0] str r1, [r0, #0x0] ldr r0, [r5, #0x64] @@ -68979,7 +68979,7 @@ FUN_02020BFC: ; 0x02020BFC ldr r2, _02020C10 ; =0x000082EA lsl r0, r0, #0x6 mov r3, #0x0 - blx FUN_020EBBE8 + blx _ll_udiv pop {r3, pc} .balign 4 _02020C10: .word 0x000082EA @@ -68993,7 +68993,7 @@ FUN_02020C14: ; 0x02020C14 ldr r2, _02020C28 ; =0x01FF6210 lsl r0, r0, #0x6 mov r3, #0x0 - blx FUN_020EBBE8 + blx _ll_udiv pop {r3, pc} .balign 4 _02020C28: .word 0x01FF6210 @@ -72355,7 +72355,7 @@ _02022460: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202248A - blx FUN_020D7228 + blx CARD_Init mov r2, #0x16 ldr r0, _020224C0 ; =0x027FFE00 ldr r1, _020224C4 ; =0x027FF000 @@ -79026,12 +79026,12 @@ FUN_02025374: ; 0x02025374 mov r1, #0x3c str r0, [sp, #0x0] add r0, r7, r0 - blx FUN_020EBC80 + blx _s32_div_f add r4, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0x3c add r0, r7, r0 - blx FUN_020EBC80 + blx _s32_div_f strh r1, [r5, #0x4] cmp r4, #0x0 beq _020253DE @@ -79049,7 +79049,7 @@ _020253BA: sub r0, r6, #0x1 add r0, r1, r0 add r1, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f sub r4, r4, r0 mov r0, #0x0 strb r0, [r5, #0xa] @@ -85362,7 +85362,7 @@ FUN_02027ED0: ; 0x02027ED0 _02027EDC: bl FUN_0201B9EC add r1, r7, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x18 lsr r0, r0, #0x18 add r1, r5, r0 @@ -85512,7 +85512,7 @@ FUN_02027FDC: ; 0x02027FDC add r4, r0, #0x0 ldrb r0, [r4, #0x0] mov r1, #0x5 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x5 @@ -88139,7 +88139,7 @@ FUN_0202918C: ; 0x0202918C ldr r0, [sp, #0x0] bl FUN_02029EC0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _020291DA @@ -88208,7 +88208,7 @@ FUN_0202920C: ; 0x0202920C ldr r0, [sp, #0x0] bl FUN_02029EC0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 @@ -90954,7 +90954,7 @@ _0202A502: add r0, #0x1e sub r0, r0, r1 mov r1, #0x1e - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 _0202A510: @@ -90978,7 +90978,7 @@ FUN_0202A524: ; 0x0202A524 ldrh r0, [r0, #0x16] mov r1, #0xfa lsl r1, r1, #0x2 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} @@ -93139,7 +93139,7 @@ FUN_0202B3C4: ; 0x0202B3C4 _0202B3D4: add r0, r2, #0x0 mov r1, #0xf - blx FUN_020EBC80 + blx _s32_div_f mov r0, #0xf sub r1, r0, r1 str r1, [r4, #0x4] @@ -97634,7 +97634,7 @@ FUN_0202D4A8: ; 0x0202D4A8 add r0, r1, #0x0 mov r1, #0xa ldrsh r1, [r2, r1] - blx FUN_020EBC80 + blx _s32_div_f add r0, r1, #0x0 pop {r3, pc} .balign 4 @@ -121200,7 +121200,7 @@ _02038A68: _02038A72: bl FUN_0201B9EC add r1, r7, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x18 lsr r2, r0, #0x18 ldrb r1, [r6, r4] @@ -132060,7 +132060,7 @@ FUN_0203DFA8: ; 0x0203DFA8 add r5, r0, #0x0 bl FUN_0201B9EC add r1, r5, #0x0 - blx FUN_020EBC80 + blx _s32_div_f strh r1, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} @@ -132085,7 +132085,7 @@ FUN_0203DFE0: ; 0x0203DFE0 add r5, r0, #0x0 bl FUN_0201B9EC add r1, r5, #0x0 - blx FUN_020EBC80 + blx _s32_div_f strh r1, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} @@ -133013,7 +133013,7 @@ FUN_0203E774: ; 0x0203E774 add r4, r0, #0x0 bl FUN_0201B9EC add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r6, r0, #0x10 ldr r0, [sp, #0x0] @@ -134307,7 +134307,7 @@ _0203F1E0: _0203F1F8: bl FUN_0201B9EC add r1, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f mov r4, #0x0 add r2, sp, #0x4 _0203F206: @@ -134733,7 +134733,7 @@ _0203F54C: _0203F556: bl FUN_0201B9EC mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x19 bge _0203F568 ldr r7, _0203F5CC ; =0x0000010D @@ -134741,7 +134741,7 @@ _0203F556: _0203F568: bl FUN_0201B9EC mov r1, #0x6 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r1, r0, #0x10 mov r0, #0x6 @@ -135148,7 +135148,7 @@ FUN_0203F880: ; 0x0203F880 _0203F8A2: bl FUN_0201B9EC mov r1, #0x65 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 cmp r0, r4 @@ -137242,11 +137242,11 @@ FUN_02040964: ; 0x02040964 bl FUN_020394F0 add r5, r0, #0x0 mov r1, #0x1e - blx FUN_020EBC80 + blx _s32_div_f add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1e - blx FUN_020EBC80 + blx _s32_div_f add r2, r1, #0x0 ldr r0, [sp, #0x0] add r1, r7, #0x0 @@ -138431,14 +138431,14 @@ FUN_02041354: ; 0x02041354 _02041360: add r0, r5, #0x0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r1, [sp, #0x0] str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x8] @@ -138447,12 +138447,12 @@ _02041360: bne _020413AC add r0, r5, #0x0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, #0x0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0x1 @@ -144162,7 +144162,7 @@ FUN_02044198: ; 0x02044198 add r5, r0, #0x0 bl FUN_0201B9EC mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 cmp r0, #0xf @@ -145072,7 +145072,7 @@ FUN_020448D4: ; 0x020448D4 mov r0, #0x96 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0204495A: @@ -157281,7 +157281,7 @@ FUN_0204AAD4: ; 0x0204AAD4 add r5, r0, #0x0 add r6, r1, #0x0 str r2, [r4, #0x8] - blx FUN_020EBC80 + blx _s32_div_f lsl r1, r1, #0x10 lsr r1, r1, #0x10 ldr r0, [r4, #0x0] @@ -157290,7 +157290,7 @@ FUN_0204AAD4: ; 0x0204AAD4 str r0, [r4, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 ldr r1, [r4, #0x8] @@ -157739,7 +157739,7 @@ _0204AE28: ldr r0, [r4, #0x0] mov r1, #0x6 add r0, r0, #0x1 - blx FUN_020EBC80 + blx _s32_div_f str r1, [r4, #0x0] _0204AE58: pop {r4, pc} @@ -157782,7 +157782,7 @@ _0204AE74: ldr r0, [r4, #0x0] mov r1, #0x6 add r0, r0, #0x1 - blx FUN_020EBC80 + blx _s32_div_f str r1, [r4, #0x0] _0204AEA6: pop {r4, pc} @@ -159500,7 +159500,7 @@ FUN_0204BBC4: ; 0x0204BBC4 add r4, r0, #0x0 bl FUN_0201B9EC ldr r1, _0204BBE4 ; =0x0000199A - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0xa @@ -159629,13 +159629,13 @@ _0204BCA4: lsl r1, r1, #0x10 ldr r0, _0204BD14 ; =0x0000FFFF lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r4, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 add r6, #0x14 lsr r4, r0, #0x10 @@ -191414,7 +191414,7 @@ FUN_0205AAB0: ; 0x0205AAB0 bl FUN_0205AA90 add r1, r0, #0x0 add r0, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x2 ldr r0, [r5, r0] pop {r4-r6, pc} @@ -191433,7 +191433,7 @@ FUN_0205AAD4: ; 0x0205AAD4 bl FUN_0205AA90 add r1, r0, #0x0 add r0, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x2 ldr r0, [r4, r0] pop {r4-r6, pc} @@ -198302,13 +198302,13 @@ _0205DDCA: add r6, r0, #0x0 ldr r0, _0205DED0 ; =0x0000FFFF add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, r4 @@ -198324,13 +198324,13 @@ _0205DDF2: lsr r6, r0, #0x18 add r0, r6, #0x0 add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 bne _0205DE1C add r0, r6, #0x0 add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r1, r5, r1 add r0, r5, #0x0 b _0205DE5C @@ -198339,7 +198339,7 @@ _0205DE1C: bne _0205DE30 add r0, r6, #0x0 add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r0, r5, r4 add r1, r5, r1 sub r0, r0, #0x1 @@ -198452,7 +198452,7 @@ _0205DEE0: bl FUN_0201B9EC mov r1, #0x29 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r7, r0, #0x10 cmp r7, #0x64 @@ -198999,7 +198999,7 @@ _0205E2DC: bl FUN_0201B9EC mov r1, #0x29 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x64 @@ -199174,13 +199174,13 @@ _0205E43C: lsl r1, r5, #0x10 ldr r0, _0205E47C ; =0x0000FFFF lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r4, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 lsl r0, r5, #0x10 @@ -201636,7 +201636,7 @@ FUN_0205F668: ; 0x0205F668 add r4, r0, #0x0 bl FUN_0201B9EC mov r1, #0x62 - blx FUN_020EBC80 + blx _s32_div_f add r1, r1, #0x2 lsl r1, r1, #0x10 add r0, r4, #0x0 @@ -201873,7 +201873,7 @@ _0205F812: ldr r0, [r0, #0x0] mov r1, #0x6 add r0, r0, #0x4 - blx FUN_020EBC80 + blx _s32_div_f mov r6, #0x0 add r4, r5, #0x0 _0205F83E: @@ -201895,7 +201895,7 @@ _0205F85A: strh r0, [r4, #0x28] add r0, r1, #0x5 mov r1, #0x6 - blx FUN_020EBC80 + blx _s32_div_f add r6, r6, #0x1 add r4, #0xc cmp r6, #0x5 @@ -203571,7 +203571,7 @@ FUN_02060588: ; 0x02060588 _0206059C: bl FUN_0201B9EC ldr r1, _020605D4 ; =0x000008D4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x1d @@ -203645,13 +203645,13 @@ _02060630: add r6, r0, #0x0 ldr r0, _02060684 ; =0x0000FFFF add r1, r5, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, r5 @@ -205541,7 +205541,7 @@ FUN_02061498: ; 0x02061498 bl FUN_02060D90 bl FUN_0201B9EC ldr r1, _020614F8 ; =0x00003334 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x5 @@ -205949,7 +205949,7 @@ FUN_020617D8: ; 0x020617D8 bl FUN_02060E70 bl FUN_0201B9EC ldr r1, _02061830 ; =0x00005556 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x3 @@ -207104,7 +207104,7 @@ _02062100: bl FUN_0201B9EC mov r1, #0xf1 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x11 @@ -207162,7 +207162,7 @@ FUN_02062170: ; 0x02062170 add r7, r1, #0x0 bl FUN_0201B9EC ldr r1, _02062234 ; =0x00003334 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x5 @@ -207348,7 +207348,7 @@ FUN_020622C4: ; 0x020622C4 bl FUN_0201B9EC mov r1, #0xf1 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x11 @@ -207362,7 +207362,7 @@ _020622E6: bl FUN_0201B9EC mov r1, #0xf1 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x11 @@ -207474,13 +207474,13 @@ _020623B0: lsl r1, r4, #0x10 ldr r0, _020623F0 ; =0x0000FFFF lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 lsl r0, r4, #0x10 @@ -207594,13 +207594,13 @@ _0206249E: add r5, r0, #0x0 ldr r0, _02062504 ; =0x0000FFFF add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, r4 @@ -207779,11 +207779,11 @@ FUN_020625EC: ; 0x020625EC str r0, [r4, #0x0] ldr r0, [sp, #0x0] mov r1, #0x3 - blx FUN_020EBC80 + blx _s32_div_f strb r1, [r4, #0x16] ldr r0, [sp, #0x0] mov r1, #0x3 - blx FUN_020EBC80 + blx _s32_div_f strb r0, [r4, #0x17] ldrb r0, [r4, #0x16] bl FUN_0202B870 @@ -216986,7 +216986,7 @@ FUN_02066E74: ; 0x02066E74 cmp r5, #0x0 bne _02066EA0 mov r1, #0x19 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x1 mov r0, #0x19 mul r0, r1 @@ -217161,7 +217161,7 @@ _02066FFC: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r4, r0 add r0, #0xa _0206701E: @@ -217183,7 +217183,7 @@ _0206701E: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x4c] add r0, r5, #0x0 @@ -217211,7 +217211,7 @@ _0206701E: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x48] add r0, r5, #0x0 @@ -217239,7 +217239,7 @@ _0206701E: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x44] add r0, r5, #0x0 @@ -217267,7 +217267,7 @@ _0206701E: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x40] add r0, r5, #0x0 @@ -217295,7 +217295,7 @@ _0206701E: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x3c] add r0, r5, #0x0 @@ -220535,7 +220535,7 @@ _020688A2: lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 b _020688E0 @@ -220545,7 +220545,7 @@ _020688CE: lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 _020688E0: @@ -220647,7 +220647,7 @@ _02068994: mov r0, #0x96 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 asr r4, r0, #0x18 _020689AA: @@ -221855,7 +221855,7 @@ _02069216: ldr r0, [sp, #0x1c] mov r1, #0xa ldr r4, [sp, #0x18] - blx FUN_020EBC80 + blx _s32_div_f str r1, [sp, #0x8] _02069246: ldrh r0, [r4, #0x0] @@ -223196,7 +223196,7 @@ FUN_02069C4C: ; 0x02069C4C _02069C70: bl FUN_0201B9EC add r1, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r0, r5, #0x0 add r7, r1, #0x0 bl FUN_0206B9B0 @@ -223378,7 +223378,7 @@ FUN_02069DC8: ; 0x02069DC8 add r7, r0, #0x0 bl FUN_0201B9EC mov r1, #0x3 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x0 bne _02069E70 mov r4, #0x0 @@ -223766,7 +223766,7 @@ FUN_0206A094: ; 0x0206A094 bne _0206A12E bl FUN_0201B9EC mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r4, r1, #0x0 add r0, r5, #0x0 mov r1, #0x5 @@ -225328,7 +225328,7 @@ _0206AB3A: mul r0, r4 mul r0, r5 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r4, r0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 @@ -225819,7 +225819,7 @@ _0206AECE: mov r0, #0x1f mul r0, r1 mov r1, #0xff - blx FUN_020EBC80 + blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] @@ -225903,7 +225903,7 @@ _0206AF76: mov r0, #0x1f mul r0, r1 mov r1, #0xff - blx FUN_020EBC80 + blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] @@ -225996,7 +225996,7 @@ _0206B030: mov r0, #0x1f mul r0, r1 mov r1, #0xff - blx FUN_020EBC80 + blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] @@ -226080,7 +226080,7 @@ _0206B0DA: mov r0, #0x1f mul r0, r1 mov r1, #0xff - blx FUN_020EBC80 + blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] @@ -246893,7 +246893,7 @@ FUN_020753B4: ; 0x020753B4 ldr r0, _020754AC ; =0x00000708 ldrh r0, [r1, r0] mov r1, #0x5 - blx FUN_020EBC80 + blx _s32_div_f ldr r1, _020754B0 ; =0x00000B28 strh r0, [r4, r1] sub r0, r1, #0x3 @@ -251128,7 +251128,7 @@ FUN_020777D4: ; 0x020777D4 bne _020777FE bl FUN_0201B9EC mov r1, #0x12 - blx FUN_020EBC80 + blx _s32_div_f mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r5, r0] @@ -251140,7 +251140,7 @@ _020777FE: bne _0207781A bl FUN_0201B9EC mov r1, #0x12 - blx FUN_020EBC80 + blx _s32_div_f mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r5, r0] @@ -259829,7 +259829,7 @@ FUN_0207BD84: ; 0x0207BD84 bl FUN_0206AB18 bl FUN_02083114 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 asr r6, r0, #0x18 mov r4, #0x0 @@ -261769,7 +261769,7 @@ _0207CD3E: mov r1, #0xa ldrb r0, [r4, r0] add r0, r0, #0x1 - blx FUN_020EBC80 + blx _s32_div_f ldr r0, _0207CE44 ; =0x00000693 strb r1, [r4, r0] b _0207CDE8 @@ -268668,7 +268668,7 @@ _0208064C: add r0, r7, #0x0 _02080654: mov r1, #0x5 - blx FUN_020EBC80 + blx _s32_div_f mov r2, #0xa add r6, r5, #0x0 mul r6, r2 @@ -273402,7 +273402,7 @@ _02082A5A: ldr r0, [sp, #0x4] bl FUN_02082878 ldr r1, [sp, #0x10] - blx FUN_020EBC80 + blx _s32_div_f mov r3, #0x0 cmp r6, #0x0 ble _02082AA2 @@ -273446,7 +273446,7 @@ _02082AB0: ldr r0, [sp, #0x4] bl FUN_02082878 add r1, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r2, r0, #0x10 ldrb r3, [r5, r2] @@ -273507,7 +273507,7 @@ _02082B16: ldr r0, [sp, #0x4] bl FUN_02082878 ldr r1, [sp, #0x8] - blx FUN_020EBC80 + blx _s32_div_f add r0, r4, r1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 @@ -274190,7 +274190,7 @@ _02083058: ldr r0, [sp, #0x4] bl FUN_02082878 add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r1, r0, #0x10 ldr r0, [sp, #0x10] @@ -274778,7 +274778,7 @@ FUN_02083454: ; 0x02083454 _02083464: bl FUN_0201B9EC mov r1, #0xc - blx FUN_020EBC80 + blx _s32_div_f add sp, #0xc add r0, r1, #0x0 pop {r4-r5, pc} @@ -274823,7 +274823,7 @@ _020834A6: _020834BE: bl FUN_0201B9EC add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r0, sp, #0x0 ldrb r0, [r0, r1] add sp, #0xc @@ -278531,7 +278531,7 @@ _020850BE: mov r0, #0x96 mul r0, r1 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f str r0, [sp, #0x18] _020850EC: add r0, r5, #0x0 diff --git a/global.inc b/global.inc index 36dc1899..9fd18132 100644 --- a/global.inc +++ b/global.inc @@ -413,7 +413,7 @@ .extern FUN_020D6DB8 .extern FUN_020D6DC4 .extern FUN_020D6F20 -.extern FUN_020D7228 +.extern CARD_Init .extern FUN_020D7D18 .extern FUN_020D7E9C .extern FUN_020D8A4C @@ -462,10 +462,10 @@ .extern FUN_020EB5C4 .extern FUN_020EB7B0 .extern FUN_020EBA38 -.extern FUN_020EBBE8 +.extern _ll_udiv .extern FUN_020EBC30 .extern FUN_020EBC50 -.extern FUN_020EBC80 +.extern _s32_div_f .extern FUN_020EBE8C .extern FUN_020EC5CC .extern FUN_020EC694 diff --git a/undefined_syms.txt b/undefined_syms.txt index 329641bd..607dc0f6 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -412,7 +412,7 @@ FUN_020D6DAC = 0x020D6DAC; FUN_020D6DB8 = 0x020D6DB8; FUN_020D6DC4 = 0x020D6DC4; FUN_020D6F20 = 0x020D6F20; -FUN_020D7228 = 0x020D7228; +CARD_Init = 0x020D7228; FUN_020D7D18 = 0x020D7D18; FUN_020D7E9C = 0x020D7E9C; FUN_020D8A4C = 0x020D8A4C; @@ -461,10 +461,10 @@ FUN_020EB57C = 0x020EB57C; FUN_020EB5C4 = 0x020EB5C4; FUN_020EB7B0 = 0x020EB7B0; FUN_020EBA38 = 0x020EBA38; -FUN_020EBBE8 = 0x020EBBE8; +_ll_udiv = 0x020EBBE8; FUN_020EBC30 = 0x020EBC30; FUN_020EBC50 = 0x020EBC50; -FUN_020EBC80 = 0x020EBC80; +_s32_div_f = 0x020EBC80; FUN_020EBE8C = 0x020EBE8C; FUN_021D74E0 = 0x021D74E0; FUN_021D76AC = 0x021D76AC; @@ -906,17 +906,17 @@ FUN_01FF84E4 = 0x01FF84E4; FUN_01FF857C = 0x01FF857C; FUN_01FF85F0 = 0x01FF85F0; FUN_020005F2 = 0x020005F2; -FUN_02000950 = 0x02000950; -FUN_020CD380 = 0x020CD380; -FUN_020D5338 = 0x020D5338; -FUN_020D5374 = 0x020D5374; -FUN_020D5498 = 0x020D5498; -FUN_020D5764 = 0x020D5764; -FUN_020D58C4 = 0x020D58C4; -FUN_020D66C0 = 0x020D66C0; -FUN_020D66E0 = 0x020D66E0; -FUN_020D72AC = 0x020D72AC; -FUN_020DBC80 = 0x020DBC80; +MIi_UncompressBackward = 0x02000950; +OS_SpinWait = 0x020CD380; +PMi_SetLED = 0x020D5338; +PMi_SetLEDAsync = 0x020D5374; +PMi_ReadRegister = 0x020D5498; +PM_Init = 0x020D5764; +PMi_Lock = 0x020D58C4; +CARD_UnlockRom = 0x020D66C0; +CARD_LockRom = 0x020D66E0; +CARDi_ReadRom = 0x020D72AC; +CTRDG_Init = 0x020DBC80; CONST_3F = 0x0000003F; CONST_34 = 0x00000034; gBacklightTop = 0x2106FA0; -- cgit v1.2.3 From 73f51d82e7fc4a9445bcf448c71048a93823b8a1 Mon Sep 17 00:00:00 2001 From: Mor Date: Sun, 19 Apr 2020 17:09:05 +0300 Subject: diassembled the rest of FUN_020C9C0C.s --- asm/FUN_020C9C0C.s | 3005 ++++++++++++++++++++++++++++++++++++++++------------ asm/arm9_thumb.s | 1284 +++++++++++----------- global.inc | 152 +-- undefined_syms.txt | 87 +- 4 files changed, 3042 insertions(+), 1486 deletions(-) diff --git a/asm/FUN_020C9C0C.s b/asm/FUN_020C9C0C.s index 98b66335..ce0ba71d 100644 --- a/asm/FUN_020C9C0C.s +++ b/asm/FUN_020C9C0C.s @@ -1,7 +1,5 @@ -/* FUN020C9C0C.s TODO: Disassemble */ - .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text @@ -20,9 +18,14 @@ .extern PMi_Lock .extern PMi_SetLEDAsync .extern PMi_ReadRegister +.extern PMi_WaitBusy +.extern CTRDG_IsExisting +.extern PMi_SendSleepStart .extern FUN_01FF857C .extern FUN_01FF84E4 .extern FUN_01FF85F0 +.extern FUN_01FF84A4 +.extern FUN_01FF8544 arm_func_start OS_WaitIrq @@ -31,9 +34,6 @@ OS_WaitIrq: mov r5, r0 mov r4, r1 bl OS_DisableInterrupts - - arm_func_start FUN_020C9C1C -FUN_020C9C1C: ; 0x020C9C1C cmp r5, #0x0 beq _020C9C3C ldr r1, _020C9C80 ; =0x027E0000 @@ -56,9 +56,6 @@ _020C9C3C: _020C9C64: mov r0, r5 bl OS_SleepThread - - arm_func_start FUN_020C9C6C -FUN_020C9C6C: ; 0x020C9C6C ldr r0, [r6, #0x0] ands r0, r4, r0 beq _020C9C64 @@ -678,9 +675,6 @@ FUN_020CA358: ; 0x020CA358 mov r6, r2 mov r5, r3 bl OSi_DoTryLockByWord - - arm_func_start FUN_020CA370 -FUN_020CA370: ; 0x020CA370 cmp r0, #0x0 ldmleia sp!, {r4-r8,lr} bxle lr @@ -693,9 +687,6 @@ _020CA380: mov r2, r6 mov r3, r5 bl OSi_DoTryLockByWord - - arm_func_start FUN_020CA39C -FUN_020CA39C: ; 0x020CA39C cmp r0, #0x0 bgt _020CA380 ldmia sp!, {r4-r8,lr} @@ -971,16 +962,30 @@ _020CA754: addls pc, pc, r1, lsl #0x2 b _020CA950 _020CA764: - .byte 0x08, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x77, 0x00, 0x00, 0xEA - .byte 0x76, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA, 0x74, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA - .byte 0x72, 0x00, 0x00, 0xEA, 0x71, 0x00, 0x00, 0xEA, 0x75, 0x00, 0x00, 0xEA, 0x14, 0x20, 0x9D, 0xE5 - .byte 0x01, 0x6A, 0x86, 0xE3, 0x74, 0x00, 0x00, 0xEA, 0x01, 0x6A, 0x86, 0xE3, 0x72, 0x00, 0x00, 0xEA + b _020CA78C + b _020CA7A8 + b _020CA950 + b _020CA950 + b _020CA828 + b _020CA950 + b _020CA798 + b _020CA950 + b _020CA950 + b _020CA964 +_020CA78C: + ldr r2, [sp, #0x14] + orr r6, r6, #0x1000 + b _020CA96C +_020CA798: + orr r6, r6, #0x1000 + b _020CA96C _020CA7A0: ldr r0, [sp, #0x18] b _020CA964 _020CA7A8: - .byte 0x04, 0x60, 0x86, 0xE3, 0x14, 0x50, 0x9D, 0xE5 - .byte 0x6B, 0x00, 0x00, 0xEA + orr r6, r6, #0x4 + ldr r5, [sp, #0x14] + b _020CA964 _020CA7B4: cmp r5, #0x0 bge _020CA950 @@ -1014,18 +1019,57 @@ _020CA820: add r9, r9, #0x1 b _020CAD0C _020CA828: - .byte 0x04, 0xB0, 0x8B, 0xE2, 0x00, 0x00, 0x55, 0xE3 - .byte 0x04, 0x70, 0x9D, 0xE5, 0x04, 0x40, 0x1B, 0xE5, 0x08, 0x00, 0x00, 0xAA, 0xD0, 0x00, 0xD4, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x01, 0x70, 0x87, 0xE2, 0xD7, 0x00, 0x94, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x05, 0x00, 0x00, 0xEA, 0x01, 0x70, 0x87, 0xE2 - .byte 0x05, 0x00, 0x57, 0xE1, 0x02, 0x00, 0x00, 0xAA, 0xD7, 0x00, 0x94, 0xE1, 0x00, 0x00, 0x50, 0xE3 - .byte 0xF9, 0xFF, 0xFF, 0x1A, 0x08, 0x00, 0x16, 0xE2, 0x07, 0xA0, 0x4A, 0xE0, 0x08, 0x00, 0x00, 0x0A - .byte 0x04, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0x52, 0x01, 0x00, 0xEB - .byte 0x1C, 0x10, 0x9D, 0xE5, 0x0A, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2, 0x66, 0x01, 0x00, 0xEB - .byte 0x0B, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x16, 0xE2, 0x20, 0x00, 0x9D, 0x15, 0x0A, 0x20, 0xA0, 0xE1 - .byte 0x1C, 0x00, 0x9D, 0x05, 0x00, 0x0C, 0xA0, 0xE1, 0x40, 0x1C, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x5D, 0x01, 0x00, 0xEB, 0x04, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x41, 0x01, 0x00, 0xEB, 0x01, 0x90, 0x89, 0xE2, 0x0B, 0x01, 0x00, 0xEA + add fp, fp, #0x4 + cmp r5, #0x0 + ldr r7, [sp, #0x4] + ldr r4, [fp, #-0x4] + bge _020CA860 + ldrsb r0, [r4] + cmp r0, #0x0 + beq _020CA874 +_020CA848: + add r7, r7, #0x1 + ldrsb r0, [r4, r7] + cmp r0, #0x0 + bne _020CA848 + b _020CA874 +_020CA85C: + add r7, r7, #0x1 +_020CA860: + cmp r7, r5 + bge _020CA874 + ldrsb r0, [r4, r7] + cmp r0, #0x0 + bne _020CA85C +_020CA874: + ands r0, r6, #0x8 + sub sl, sl, r7 + beq _020CA8A4 + mov r1, r4 + mov r2, r7 + add r0, sp, #0x54 + bl string_put_string + ldr r1, [sp, #0x1C] + mov r2, sl + add r0, sp, #0x54 + bl string_fill_char + b _020CA8D4 +_020CA8A4: + ands r0, r6, #0x10 + ldrne r0, [sp, #0x20] + mov r2, sl + ldreq r0, [sp, #0x1C] + mov r0, r0, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_fill_char + mov r1, r4 + mov r2, r7 + add r0, sp, #0x54 + bl string_put_string +_020CA8D4: + add r9, r9, #0x1 + b _020CAD0C _020CA8DC: ands r0, r6, #0x100 ldr r1, [sp, #0x58] @@ -1292,23 +1336,40 @@ _020CAC90: ble _020CACB8 add r0, sp, #0x38 add r4, r0, r7 +_020CACA0: ldrsb r1, [r4, #-0x1]! sub r7, r7, #0x1 add r0, sp, #0x54 bl string_put_char _020CACB0: - .byte 0x00, 0x00, 0x57, 0xE3, 0xF9, 0xFF, 0xFF, 0xCA + cmp r7, #0x0 + bgt _020CACA0 _020CACB8: ldr r1, [sp, #0x20] mov r2, r5 add r0, sp, #0x54 bl string_fill_char _020CACC8: - .byte 0x00, 0x00, 0x58, 0xE3, 0x07, 0x00, 0x00, 0xDA - .byte 0x3A, 0x00, 0x8D, 0xE2, 0x08, 0x40, 0x80, 0xE0, 0xD1, 0x10, 0x74, 0xE1, 0x01, 0x80, 0x48, 0xE2 - .byte 0x54, 0x00, 0x8D, 0xE2, 0x6E, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x58, 0xE3, 0xF9, 0xFF, 0xFF, 0xCA - .byte 0x00, 0x00, 0x56, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x1C, 0x10, 0x9D, 0xE5, 0x0A, 0x20, 0xA0, 0xE1 - .byte 0x54, 0x00, 0x8D, 0xE2, 0x4C, 0x00, 0x00, 0xEB, 0x01, 0x90, 0x89, 0xE2 + cmp r8, #0x0 + ble _020CACF0 + add r0, sp, #0x3A + add r4, r0, r8 +_020CACD8: + ldrsb r1, [r4, #-0x1]! + sub r8, r8, #0x1 + add r0, sp, #0x54 + bl string_put_char + cmp r8, #0x0 + bgt _020CACD8 +_020CACF0: + cmp r6, #0x0 + beq _020CAD08 + ldr r1, [sp, #0x1C] + mov r2, sl + add r0, sp, #0x54 + bl string_fill_char +_020CAD08: + add r9, r9, #0x1 _020CAD0C: ldrsb r0, [r9, #0x0] cmp r0, #0x0 @@ -1436,7 +1497,7 @@ _020CAE80: ldmia sp!, {lr} bx lr - arm_func_start string_fill_char + arm_func_start string_put_char string_put_char: ldr r2, [r0, #0x0] cmp r2, #0x0 @@ -1457,6 +1518,8 @@ FUN_020CAED0: ; 0x020CAED0 bx lr .balign 4 _020CAEDC: .word 0x021D3494 + + arm_func_start OS_SetThreadDestructor OS_SetThreadDestructor: str r1, [r0, #0xb4] bx lr @@ -1618,8 +1681,9 @@ _020CB0C4: mov r0, r4 bl OS_RestoreInterrupts _020CB0CC: - .byte 0x00, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr _020CB0D8: ldr r0, [r8, #0x70] cmp r0, r5 @@ -2039,10 +2103,20 @@ OS_CreateThread: ; 0x020CB57C mov r0, r8 bl OS_SetThreadDestructor _020CB640: - .byte 0x00, 0x00, 0xA0, 0xE3, 0x78, 0x00, 0x88, 0xE5, 0x80, 0x00, 0x88, 0xE5, 0x80, 0x20, 0x98, 0xE5 - .byte 0xA4, 0x10, 0x88, 0xE2, 0x7C, 0x20, 0x88, 0xE5, 0x0C, 0x20, 0xA0, 0xE3, 0xE6, 0x0A, 0x00, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0x88, 0xE5, 0x2C, 0x07, 0x00, 0xEB - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + str r0, [r8, #0x78] + str r0, [r8, #0x80] + ldr r2, [r8, #0x80] + add r1, r8, #0xA4 + str r2, [r8, #0x7C] + mov r2, #0xC + bl MIi_CpuClear32 + mov r0, r4 + mov r1, #0x0 + str r1, [r8, #0xB0] + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8, lr} + bx lr _020CB678: .word 0xFDDB597D _020CB67C: .word 0x7BF9DD5B _020CB680: .word OS_ExitThread @@ -2176,7 +2250,9 @@ _020CB824: mov r0, r6 bl OS_SaveContext _020CB864: - .byte 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 + cmp r0, #0x0 + ldmneia sp!, {r4-r6,lr} + bxne lr _020CB870: ldr r0, _020CB8C8 ; =0x021D348C ldr r2, [r0, #0x0] @@ -2478,8 +2554,9 @@ _020CBC0C: mov r0, r4 bl OS_RestoreInterrupts _020CBC1C: - .byte 0x00, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr _020CBC28: mov r0, r7 bl OS_SleepThread @@ -2568,7 +2645,9 @@ _020CBD44: mov r0, r4 bl OS_RestoreInterrupts _020CBD54: - .byte 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr _020CBD60: mov r0, r7 bl OS_SleepThread @@ -2955,12 +3034,27 @@ OS_AllocFromArenaHi: ; 0x020CC204 mov r5, r2 bl OS_GetArenaHi _020CC218: - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03 - .byte 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x10, 0x45, 0xE2, 0x01, 0x20, 0xE0, 0xE1 - .byte 0x02, 0x00, 0x00, 0xE0, 0x06, 0x10, 0x40, 0xE0, 0x04, 0x00, 0xA0, 0xE1, 0x02, 0x50, 0x01, 0xE0 - .byte 0xBC, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x55, 0xE1, 0x00, 0x00, 0xA0, 0x33, 0x70, 0x40, 0xBD, 0x38 - .byte 0x1E, 0xFF, 0x2F, 0x31, 0x04, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x29, 0x00, 0x00, 0xEB - .byte 0x05, 0x00, 0xA0, 0xE1, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + sub r1, r5, #0x1 + mvn r2, r1 + and r0, r0, r2 + sub r1, r0, r6 + mov r0, r4 + and r5, r1, r2 + bl OS_GetArenaLo + cmp r5, r0 + movcc r0, #0x0 + ldmccia sp!, {r4-r6, lr} + bxcc lr + mov r0, r4 + mov r1, r5 + bl OS_SetArenaHi + mov r0, r5 + ldmia sp!, {r4-r6,lr} + bx lr arm_func_start OS_AllocFromArenaLo OS_AllocFromArenaLo: ; 0x020CC26C @@ -2971,14 +3065,34 @@ OS_AllocFromArenaLo: ; 0x020CC26C mov r5, r2 bl OS_GetArenaLo _020CC284: - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 - .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x00, 0x80, 0xE0, 0x01, 0x10, 0x45, 0xE2 - .byte 0x01, 0x20, 0xE0, 0xE1, 0x01, 0x00, 0x40, 0xE2, 0x00, 0x40, 0x02, 0xE0, 0x06, 0x00, 0x84, 0xE0 - .byte 0x05, 0x00, 0x80, 0xE0, 0x01, 0x10, 0x40, 0xE2, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x50, 0x02, 0xE0 - .byte 0xA1, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x55, 0xE1, 0x04, 0xD0, 0x8D, 0x82, 0x00, 0x00, 0xA0, 0x83 - .byte 0xF0, 0x40, 0xBD, 0x88, 0x1E, 0xFF, 0x2F, 0x81, 0x07, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x03, 0x00, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7, lr} + bxeq lr + add r0, r0, r5 + sub r1, r5, #0x1 + mvn r2, r1 + sub r0, r0, #0x1 + and r4, r2, r0 + add r0, r4, r6 + add r0, r0, r5 + sub r1, r0, #0x1 + mov r0, r7 + and r5, r2, r1 + bl OS_GetArenaHi + cmp r5, r0 + addhi sp, sp, #0x4 + movhi r0, #0x0 + ldmhiia sp!, {r4-r7, lr} + bxhi lr + mov r0, r7 + mov r1, r5 + bl OS_SetArenaLo + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7, lr} + bx lr arm_func_start OS_SetArenaLo OS_SetArenaLo: ; 0x020CC2F4 @@ -3004,26 +3118,69 @@ OS_GetInitArenaLo: ; 0x020CC31C addls pc, pc, r0, lsl #0x2 b _020CC3DC _020CC330: - .byte 0x05, 0x00, 0x00, 0xEA, 0x28, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA - .byte 0x19, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x1F, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x94, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x8C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x13, 0xFE, 0xFF, 0xEB - .byte 0x03, 0x00, 0x00, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x5C, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x44, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x38, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + b _020CC34C + b _020CC3DC + b _020CC35C + b _020CC39C + b _020CC3AC + b _020CC3BC + b _020CC3CC +_020CC34C: + add sp, sp, #0x4 + ldr r0, _020CC3EC ; =0x0225FFA0 + ldmfd sp!, {lr} + bx lr +_020CC35C: + ldr r0, _020CC3F0 ; =0x021D36F4 + ldr r0, [r0] + cmp r0, #0x0 + beq _020CC37C + bl OS_GetConsoleType + and r0, r0, #0x3 + cmp r0, #0x1 + bne _020CC38C +_020CC37C: + add sp, sp, #0x4 + mov r0, #0x0 + ldmfd sp!, {lr} + bx lr +_020CC38C: + add sp, sp, #0x4 + ldr r0, _020CC3F4 ; =0x023E0000 + ldmfd sp!, {lr} + bx lr +_020CC39C: + add sp, sp, #0x4 + ldr r0, _020CC3F8 ; =0x01FF8720 + ldmfd sp!, {lr} + bx lr +_020CC3AC: + add sp, sp, #0x4 + ldr r0, _020CC3FC ; =0x027E0080 + ldmfd sp!, {lr} + bx lr +_020CC3BC: + add sp, sp, #0x4 + ldr r0, _020CC400 ; =0x027FF000 + ldmfd sp!, {lr} + bx lr +_020CC3CC: + add sp, sp, #0x4 + ldr r0, _020CC404 ; =0x037F8000 + ldmfd sp!, {lr} + bx lr _020CC3DC: mov r0, #0x0 add sp, sp, #0x4 ldmia sp!, {lr} bx lr -_020CC3EC: - .byte 0xA0, 0xFF, 0x25, 0x02 - .byte 0xF4, 0x36, 0x1D, 0x02, 0x00, 0x00, 0x3E, 0x02, 0x20, 0x87, 0xFF, 0x01, 0x80, 0x00, 0x7E, 0x02 - .byte 0x00, 0xF0, 0x7F, 0x02, 0x00, 0x80, 0x7F, 0x03 +_020CC3EC: .word 0x0225FFA0 +_020CC3F0: .word 0x021D36F4 +_020CC3F4: .word 0x023E0000 +_020CC3F8: .word 0x01FF8720 +_020CC3FC: .word 0x027E0080 +_020CC400: .word 0x027FF000 +_020CC404: .word 0x037F8000 arm_func_start OS_GetInitArenaHi OS_GetInitArenaHi: ; 0x020CC408 @@ -3033,31 +3190,87 @@ OS_GetInitArenaHi: ; 0x020CC408 addls pc, pc, r0, lsl #0x2 b _020CC508 _020CC41C: - .byte 0x05, 0x00, 0x00, 0xEA - .byte 0x38, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA, 0x19, 0x00, 0x00, 0xEA - .byte 0x2C, 0x00, 0x00, 0xEA, 0x2F, 0x00, 0x00, 0xEA, 0x04, 0xD0, 0x8D, 0xE2, 0xD4, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xCC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0xD8, 0xFD, 0xFF, 0xEB, 0x03, 0x00, 0x00, 0xE2 - .byte 0x01, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x27, 0x06, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x02, 0x04, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0x00, 0x9F, 0xE5, 0x80, 0x10, 0x9F, 0xE5 - .byte 0x80, 0x20, 0x9F, 0xE5, 0xFE, 0x3D, 0x80, 0xE2, 0x00, 0x00, 0x51, 0xE3, 0x02, 0x20, 0x43, 0xE0 - .byte 0x05, 0x00, 0x00, 0x1A, 0x70, 0x10, 0x9F, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0x50, 0xE1 - .byte 0x01, 0x00, 0xA0, 0x31, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x51, 0xE3 - .byte 0x54, 0x00, 0x9F, 0xB5, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0x40, 0xB0, 0x01, 0x00, 0x42, 0xA0 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x3C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + b _020CC438 + b _020CC508 + b _020CC448 + b _020CC488 + b _020CC498 + b _020CC4E8 + b _020CC4F8 +_020CC438: + add sp, sp, #0x4 + ldr r0, _020CC518 ; =0x023E0000 + ldmfd sp!, {lr} + bx lr +_020CC448: + ldr r0, _020CC51C ; =0x021D36F4 + ldr r0, [r0] + cmp r0, #0x0 + beq _020CC468 + bl OS_GetConsoleType + and r0, r0, #0x3 + cmp r0, #0x1 + bne _020CC478 +_020CC468: + add sp, sp, #0x4 + mov r0, #0x0 + ldmfd sp!, {lr} + bx lr +_020CC478: + add sp, sp, #0x4 + mov r0, #0x2700000 + ldmfd sp!, {lr} + bx lr +_020CC488: + add sp, sp, #0x4 + mov r0, #0x2000000 + ldmfd sp!, {lr} + bx lr +_020CC498: + ldr r0, _020CC520 ; =0x027E0000 + ldr r1, _020CC524 ; =0x00000000 + ldr r2, _020CC528 ; =0x00000400 + add r3, r0, #0x3f80 + cmp r1, #0x0 + sub r2, r3, r2 + bne _020CC4CC + ldr r1, _020CC52C ; =0x027E0080 + add sp, sp, #0x4 + cmp r0, r1 + movcc r0, r1 + ldmfd sp!, {lr} + bx lr +_020CC4CC: + cmp r1, #0x0 + ldrlt r0, _020CC52C ; =0x027E0080 + add sp, sp, #0x4 + sublt r0, r0, r1 + subge r0, r2, r1 + ldmfd sp!, {lr} + bx lr +_020CC4E8: + add sp, sp, #0x4 + ldr r0, _020CC530 ; =0x027FF680 + ldmfd sp!, {lr} + bx lr +_020CC4F8: + add sp, sp, #0x4 + ldr r0, _020CC534 ; =0x037F8000 + ldmfd sp!, {lr} + bx lr _020CC508: mov r0, #0x0 add sp, sp, #0x4 ldmia sp!, {lr} bx lr -_020CC518: - .byte 0x00, 0x00, 0x3E, 0x02, 0xF4, 0x36, 0x1D, 0x02 - .byte 0x00, 0x00, 0x7E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80, 0x00, 0x7E, 0x02 - .byte 0x80, 0xF6, 0x7F, 0x02, 0x00, 0x80, 0x7F, 0x03 +_020CC518: .word 0x023E0000 +_020CC51C: .word 0x021D36F4 +_020CC520: .word 0x027E0000 +_020CC524: .word 0x00000000 +_020CC528: .word 0x00000400 +_020CC52C: .word 0x027E0080 +_020CC530: .word 0x027FF680 +_020CC534: .word 0x037F8000 arm_func_start OS_GetArenaLo OS_GetArenaLo: @@ -3130,21 +3343,60 @@ OS_InitArena: ; 0x020CC5E0 mov r0, #0x0 bl OS_SetArenaHi _020CC61C: - .byte 0x00, 0x00, 0xA0, 0xE3 - .byte 0x3D, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x30, 0xFF, 0xFF, 0xEB - .byte 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x2D, 0xFF, 0xFF, 0xEB, 0x02, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x2F, 0xFF, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x6D, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x10, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE3, 0x2A, 0xFF, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3 - .byte 0x2D, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x03, 0x00, 0xA0, 0xE3, 0x20, 0xFF, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE3, 0x63, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0xA0, 0xE3 - .byte 0x20, 0xFF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x23, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x00, 0xA0, 0xE3, 0x16, 0xFF, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE3, 0x59, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x10, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE3, 0x16, 0xFF, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE3 - .byte 0x19, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE3, 0x0C, 0xFF, 0xFF, 0xEB - .byte 0x06, 0x00, 0xA0, 0xE3, 0x4F, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE3 - .byte 0x0C, 0xFF, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE3, 0x0F, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x06, 0x00, 0xA0, 0xE3, 0x02, 0xFF, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x0 + bl OS_SetArenaLo + mov r0, #0x2 + mov r1, #0x0 + bl OS_SetArenaLo + mov r0, #0x2 + mov r1, #0x0 + bl OS_SetArenaHi + mov r0, #0x3 + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x3 + bl OS_SetArenaHi + mov r0, #0x3 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x3 + bl OS_SetArenaLo + mov r0, #0x4 + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x4 + bl OS_SetArenaHi + mov r0, #0x4 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x4 + bl OS_SetArenaLo + mov r0, #0x5 + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x5 + bl OS_SetArenaHi + mov r0, #0x5 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x5 + bl OS_SetArenaLo + mov r0, #0x6 + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x6 + bl OS_SetArenaHi + mov r0, #0x6 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x6 + bl OS_SetArenaLo + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr _020CC6F4: .word 0x021D36F0 arm_func_start OS_FreeToHeap @@ -3417,8 +3669,9 @@ _020CCA54: mov r0, r0 b _020CCA54 _020CCA5C: - .byte 0x0F, 0x50, 0xBD, 0xE8 - .byte 0x0C, 0xD0, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + ldmia sp!, {r0-r3,ip,lr} + mov sp, ip + bx lr _020CCA68: .word 0x021D3724 _020CCA6C: .word 0x02000000 @@ -4147,14 +4400,27 @@ _020CD3D0: mov r0, r0, lsr #0x10 bl CARD_LockRom _020CD3E0: - .byte 0x00, 0x00, 0xA0, 0xE3, 0x6B, 0x01, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x69, 0x01, 0x00, 0xEB - .byte 0x02, 0x00, 0xA0, 0xE3, 0x67, 0x01, 0x00, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x65, 0x01, 0x00, 0xEB - .byte 0x01, 0x07, 0xA0, 0xE3, 0xA2, 0xF2, 0xFF, 0xEB, 0x00, 0x00, 0xE0, 0xE3, 0x73, 0xF2, 0xFF, 0xEB - .byte 0x18, 0x10, 0x9F, 0xE5, 0x10, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0x81, 0xE5, 0x04, 0x00, 0x00, 0xEB - .byte 0x1F, 0xAC, 0xFC, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + bl MI_StopDma + mov r0, #0x1 + bl MI_StopDma + mov r0, #0x2 + bl MI_StopDma + mov r0, #0x3 + bl MI_StopDma + mov r0, #0x40000 + bl OS_SetIrqMask + mvn r0, #0x0 + bl OS_ResetRequestIrqMask + ldr r1, _020CD430 + mov r0, #0x10 + str r4, [r1] + bl OSi_SendToPxi + bl FUN_01FF84A4 + ldmia sp!, {r4, lr} + bx lr _020CD42C: .word 0x027FFC40 -_020CD430: - .byte 0x20, 0xFC, 0x7F, 0x02 +_020CD430: .word 0x027FFC20 arm_func_start OSi_SendToPxi OSi_SendToPxi: ; 0x020CD434 @@ -4162,13 +4428,16 @@ OSi_SendToPxi: ; 0x020CD434 mov r6, r0, lsl #0x8 mov r5, #0xc mov r4, #0x0 +_020CD444: mov r0, r5 mov r1, r6 mov r2, r4 bl PXI_SendWordByFifo _020CD454: - .byte 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + bne _020CD444 + ldmia sp!, {r4-r6, lr} + bx lr arm_func_start OSi_CommonCallback OSi_CommonCallback: ; 0x020CD464 @@ -4206,16 +4475,21 @@ OS_InitReset: ; 0x020CD4A8 bl PXI_Init mov r5, #0xc mov r4, #0x1 +_020CD4DC: mov r0, r5 mov r1, r4 bl PXI_IsCallbackReady _020CD4E8: - .byte 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A - .byte 0x14, 0x10, 0x9F, 0xE5, 0x0C, 0x00, 0xA0, 0xE3, 0x2F, 0x0A, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + beq _020CD4DC + ldr r1, _020CD50C + mov r0, #0xC + bl PXI_SetFifoRecvCallback + add sp, sp, #0x4 + ldmia sp!, {r4-r5, lr} + bx lr _020CD508: .word 0x021D37DC -_020CD50C: - .byte 0x64, 0xD4, 0x0C, 0x02 +_020CD50C: .word 0x020CD464 arm_func_start OS_GetOwnerRtcOffset OS_GetOwnerRtcOffset: ; 0x020CD510 @@ -4608,6 +4882,8 @@ _020CDA08: .balign 4 _020CDA14: .word 0x040000B0 _020CDA18: .word 0x81400001 + + arm_func_start MI_WaitDma MI_WaitDma: stmdb sp!, {r4,lr} mov r4, r0 @@ -4653,15 +4929,41 @@ MI_DmaCopy32Async: ; 0x020CDA8C ldr r4, [sp, #0x18] bl MIi_CheckDma0SourceAddress _020CDAB0: - .byte 0x00, 0x00, 0x55, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x54, 0xE3, 0xF0, 0x41, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x1C, 0x00, 0x9D, 0xE5, 0x34, 0xFF, 0x2F, 0xE1, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0xCF, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3 - .byte 0x0B, 0x00, 0x00, 0x0A, 0x1C, 0x20, 0x9D, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1 - .byte 0x07, 0xF1, 0xFF, 0xEB, 0x25, 0x31, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 - .byte 0x06, 0x20, 0xA0, 0xE1, 0x31, 0x33, 0x83, 0xE3, 0xB8, 0xAA, 0xFC, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x25, 0x31, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1 - .byte 0x06, 0x20, 0xA0, 0xE1, 0x21, 0x33, 0x83, 0xE3, 0xB0, 0xAA, 0xFC, 0xEB, 0xF0, 0x41, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r5, #0x0 + bne _020CDAD4 + cmp r4, #0x0 + ldmeqia sp!, {r4-r8, lr} + bxeq lr + ldr r0, [sp, #0x1C] + blx r4 + ldmia sp!, {r4-r8, lr} + bx lr +_020CDAD4: + mov r0, r8 + bl MI_WaitDma + cmp r4, #0x0 + beq _020CDB14 + ldr r2, [sp, #0x1C] + mov r0, r8 + mov r1, r4 + bl OSi_EnterDmaCallback + mov r3, r5, lsr #0x2 + mov r0, r8 + mov r1, r7 + mov r2, r6 + orr r3, r3, #0xc4000000 + bl FUN_01FF85F0 + ldmia sp!, {r4-r8, lr} + bx lr +_020CDB14: + mov r3, r5, lsr #0x2 + mov r0, r8 + mov r1, r7 + mov r2, r6 + orr r3, r3, #0x84000000 + bl FUN_01FF85F0 + ldmia sp!, {r4-r8, lr} + bx lr arm_func_start MI_DmaFill32Async MI_DmaFill32Async: ; 0x020CDB34 @@ -4682,16 +4984,46 @@ MI_DmaFill32Async: ; 0x020CDB34 _020CDB6C: bl MI_WaitDma _020CDB70: - .byte 0x00, 0x00, 0x58, 0xE3, 0x13, 0x00, 0x00, 0x0A, 0x1C, 0x20, 0x9D, 0xE5, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x08, 0x10, 0xA0, 0xE1, 0xE2, 0xF0, 0xFF, 0xEB, 0xE0, 0xFD, 0xFF, 0xEB, 0x24, 0x31, 0xA0, 0xE1 - .byte 0x70, 0x10, 0x9F, 0xE5, 0x07, 0x21, 0xA0, 0xE1, 0x01, 0x23, 0x82, 0xE2, 0xE0, 0x50, 0x82, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x07, 0x11, 0x81, 0xE0, 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1 - .byte 0xC5, 0x34, 0x83, 0xE3, 0x62, 0xAA, 0xFC, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xD8, 0xFD, 0xFF, 0xEB - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xD0, 0xFD, 0xFF, 0xEB, 0x34, 0x10, 0x9F, 0xE5 - .byte 0x07, 0x21, 0xA0, 0xE1, 0x24, 0x31, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0xC3, 0x82, 0xE2 - .byte 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0x07, 0x11, 0x81, 0xE0, 0x85, 0x34, 0x83, 0xE3 - .byte 0xE0, 0x50, 0x8C, 0xE5, 0x52, 0xAA, 0xFC, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xC8, 0xFD, 0xFF, 0xEB - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xE0, 0x00, 0x00, 0x04 + cmp r8, #0x0 + beq _020CDBC8 + ldr r2, [sp, #0x1C] + mov r0, r7 + mov r1, r8 + bl OSi_EnterDmaCallback + bl OS_DisableInterrupts + mov r3, r4, lsr #2 + ldr r1, _20CDC08 + mov r2, r7, lsl #2 + add r2, r2, #0x4000000 + str r5, [r2, #0xE0] + mov r4, r0 + add r1, r1, r7, lsl #0x2 + mov r0, r7 + mov r2, r6 + orr r3, r3, #0xc5000000 + bl FUN_01FF8544 + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr +_020CDBC8: + bl OS_DisableInterrupts + ldr r1, _20CDC08 + mov r2, r7, lsl #0x2 + mov r3, r4, lsr #0x2 + mov r4, r0 + add ip, r2, #0x4000000 + mov r0, r7 + mov r2, r6 + add r1, r1, r7, lsl #0x2 + orr r3, r3, #0x85000000 + str r5, [ip, #0xE0] + bl FUN_01FF8544 + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr +_20CDC08: .word 0x040000E0 arm_func_start MI_DmaCopy16 MI_DmaCopy16: ; 0x020CDC0C @@ -4721,8 +5053,11 @@ _020CDC48: orr r3, r3, #0x80000000 bl FUN_01FF857C _020CDC6C: - .byte 0x00, 0x00, 0x94, 0xE5 - .byte 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + ldr r0, [r4] + ands r0, r0, #0x80000000 + bne _020CDC6C + ldmia sp!, {r4-r8,lr} + bx lr _020CDC80: .word 0x040000B0 arm_func_start MI_DmaCopy32 @@ -4736,12 +5071,31 @@ MI_DmaCopy32: ; 0x020CDC84 mov r7, r1 bl MIi_CheckDma0SourceAddress _020CDCA4: - .byte 0x00, 0x00, 0x55, 0xE3, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x03, 0x00, 0xA0, 0xE3, 0x98, 0x00, 0x01, 0xE0, 0x3C, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0x81, 0xE2 - .byte 0x01, 0x41, 0x80, 0xE0, 0x00, 0x00, 0x94, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A - .byte 0x25, 0x31, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1 - .byte 0x21, 0x33, 0x83, 0xE3, 0x24, 0xAA, 0xFC, 0xEB, 0x00, 0x00, 0x94, 0xE5, 0x02, 0x01, 0x10, 0xE2 - .byte 0xFC, 0xFF, 0xFF, 0x1A, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x00, 0x00, 0x04 + cmp r5, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r0, #0x3 + mul r1, r8, r0 + ldr r0, _020CDCFC + add r1, r1, #0x2 + add r4, r0, r1, lsl #0x2 +_020CDCC4: + ldr r0, [r4] + ands r0, r0, #0x80000000 + bne _020CDCC4 + mov r3, r5, lsr #0x2 + mov r0, r8 + mov r1, r7 + mov r2, r6 + orr r3, r3, #0x84000000 + bl FUN_01FF857C +_020CDCE8: + ldr r0, [r4] + ands r0, r0, #0x80000000 + bne _020CDCE8 + ldmia sp!, {r4-r8,lr} + bx lr +_020CDCFC: .word 0x040000B0 arm_func_start MI_DmaFill32 MI_DmaFill32: ; 0x020CDD00 @@ -4776,8 +5130,11 @@ _020CDD30: mov r0, r4 bl OS_RestoreInterrupts _020CDD74: - .byte 0x00, 0x00, 0x95, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A - .byte 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + ldr r0, [r5] + ands r0, r0, #0x80000000 + bne _020CDD74 + ldmia sp!, {r4-r8,lr} + bx lr _020CDD88: .word 0x040000B0 _020CDD8C: .word 0x040000E0 @@ -4797,11 +5154,22 @@ MI_HBlankDmaCopy16: ; 0x020CDD90 mov r3, #0x0 bl MIi_CheckDma0SourceAddress _020CDDC4: - .byte 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x07, 0x00, 0xA0, 0xE1, 0x0F, 0xFF, 0xFF, 0xEB, 0x1C, 0x30, 0x9F, 0xE5 - .byte 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0xA4, 0x30, 0x83, 0xE1 - .byte 0xFE, 0xA9, 0xFC, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x60, 0x92 + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7, lr} + bxeq lr + mov r0, r7 + bl MI_WaitDma + ldr r3, _020CDE00 + mov r0, r7 + mov r1, r6 + mov r2, r5 + orr r3, r3, r4, lsr #0x1 + bl FUN_01FF85F0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_020CDE00: .word 0x92600000 arm_func_start MI_HBlankDmaCopy32 MI_HBlankDmaCopy32: ; 0x020CDE04 @@ -4819,11 +5187,22 @@ MI_HBlankDmaCopy32: ; 0x020CDE04 mov r3, #0x0 bl MIi_CheckDma0SourceAddress _020CDE38: - .byte 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02 - .byte 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x07, 0x00, 0xA0, 0xE1, 0xF2, 0xFE, 0xFF, 0xEB - .byte 0x1C, 0x30, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1 - .byte 0x24, 0x31, 0x83, 0xE1, 0xE1, 0xA9, 0xFC, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x60, 0x96 + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, r7 + bl MI_WaitDma + ldr r3, _020CDE74 + mov r0, r7 + mov r1, r6 + mov r2, r5 + orr r3, r3, r4, lsr #0x2 + bl FUN_01FF85F0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_020CDE74: .word 0x96600000 arm_func_start MIi_DMAFastCallback MIi_DMAFastCallback: ; 0x020CDE78 @@ -5153,9 +5532,16 @@ _020CE2AC: blt _020CE2AC ldmia sp!, {r4-r10} bx lr -_020CE2C4: - .byte 0x0C, 0x10, 0xB0, 0xE8, 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x10, 0xB0, 0xE8 - .byte 0x0C, 0x10, 0xA1, 0xE8, 0x0C, 0x00, 0xB0, 0xE8, 0x0C, 0x00, 0xA1, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FUN_020CE2C4 +FUN_020CE2C4: + ldmia r0!, {r2, r3, ip} + stmia r1!, {r2, r3, ip} + ldmia r0!, {r2, r3, ip} + stmia r1!, {r2, r3, ip} + ldmia r0!, {r2, r3} + stmia r1!, {r2, r3} + bx lr arm_func_start MI_Copy36B MI_Copy36B: ; 0x020CE2E0 @@ -5404,12 +5790,29 @@ MIi_CardDmaCopy32: ; 0x020CE5BC mov r3, #0x1000000 bl MIi_CheckDma0SourceAddress _020CE5F0: - .byte 0x00, 0x00, 0x57, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x03, 0x00, 0xA0, 0xE3, 0x96, 0x00, 0x01, 0xE0, 0x30, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0x81, 0xE2 - .byte 0x01, 0x11, 0x80, 0xE0, 0x00, 0x00, 0x91, 0xE5, 0x02, 0x01, 0x10, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A - .byte 0x1C, 0x30, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0xEE, 0xA7, 0xFC, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB0, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0xAF + cmp r7, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7, lr} + bxeq lr + mov r0, #0x3 + mul r1, r6, r0 + ldr r0, _020CE640 + add r1, r1, #0x2 + add r1, r0, r1, lsl #0x2 +_020CE614: + ldr r0, [r1] + ands r0, r0, #0x80000000 + bne _020CE614 + ldr r3, _020CE644 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_01FF85F0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7, lr} + bx lr +_020CE640: .word 0x040000B0 +_020CE644: .word 0xAf000001 arm_func_start MI_Init MI_Init: ; 0x020CE648 @@ -5417,9 +5820,11 @@ MI_Init: ; 0x020CE648 sub sp, sp, #0x4 mov r0, #0x3 bl MI_SetWramBank -_020CE658: - .byte 0x00, 0x00, 0xA0, 0xE3, 0xCD, 0xFC, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + bl MI_StopDma + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr arm_func_start PushCommand_impl PushCommand_impl: ; 0x020CE66C @@ -5432,11 +5837,20 @@ PushCommand_impl: ; 0x020CE66C mov r4, r3 bl SND_AllocCommand _020CE68C: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x70, 0x80, 0xE5 - .byte 0x08, 0x60, 0x80, 0xE5, 0x0C, 0x50, 0x80, 0xE5, 0x18, 0x10, 0x9D, 0xE5, 0x10, 0x40, 0x80, 0xE5 - .byte 0x14, 0x10, 0x80, 0xE5, 0xB1, 0x02, 0x00, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7, lr} + bxeq lr + str r7, [r0, #0x4] + str r6, [r0, #0x8] + str r5, [r0, #0xc] + ldr r1, [sp, #0x18] + str r4, [r0, #0x10] + str r1, [r0, #0x14] + bl SND_PushCommand + add sp, sp, #0x4 + ldmia sp!, {r4-r7, lr} + bx lr arm_func_start SNDi_SetTrackParam SNDi_SetTrackParam: ; 0x020CE6C4 @@ -5664,9 +6078,15 @@ SND_SetupAlarm: ; 0x020CE978 mov r1, r3 bl SNDi_SetAlarmHandler _020CE998: - .byte 0x00, 0x00, 0x8D, 0xE5, 0x06, 0x10, 0xA0, 0xE1 - .byte 0x05, 0x20, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x12, 0x00, 0xA0, 0xE3, 0x2E, 0xFF, 0xFF, 0xEB - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + str r0, [sp] + mov r1, r6 + mov r2, r5 + mov r3, r4 + mov r0, #0x12 + bl PushCommand_impl + add sp, sp, #0x8 + ldmia sp!, {r4-r6, lr} + bx lr arm_func_start SND_SetupCapture SND_SetupCapture: ; 0x020CE9BC @@ -5907,11 +6327,22 @@ IsCommandAvailable: stmdb sp!, {r4,lr} bl OS_IsRunOnEmulator _020CEC94: - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x99, 0xF9, 0xFF, 0xEB, 0x20, 0x10, 0x9F, 0xE5, 0x10, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x81, 0xE5, 0x00, 0x40, 0x91, 0xE5, 0x99, 0xF9, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0xF2, 0xFF, 0x04 + cmp r0, #0x0 + moveq r0, #0x1 + ldmeqia sp!, {r4, lr} + bxeq lr + bl OS_DisableInterrupts + ldr r1, _020CECD0 + mov r2, #0x10 + str r2, [r1] + ldr r4, [r1] + bl OS_RestoreInterrupts + cmp r4, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + ldmia sp!, {r4, lr} + bx lr +_020CECD0: .word 0x04FFF200 arm_func_start AllocCommand AllocCommand: ; 0x020CECD4 @@ -5923,7 +6354,9 @@ AllocCommand: ; 0x020CECD4 bne _020CECFC bl OS_RestoreInterrupts _020CECF0: - .byte 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + ldmia sp!, {r4, lr} + bx lr _020CECFC: ldr r2, [r4, #0x0] str r2, [r1, #0x0] @@ -5945,13 +6378,17 @@ RequestCommandProc: ; 0x020CED2C sub sp, sp, #0x4 mov r5, #0x7 mov r4, #0x0 +_020CED3C: mov r0, r5 mov r1, r4 mov r2, r4 bl PXI_SendWordByFifo _020CED4C: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0xF9, 0xFF, 0xFF, 0xBA, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0 + blt _020CED3C + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr arm_func_start InitPXI InitPXI: ; 0x020CED60 @@ -5961,12 +6398,28 @@ InitPXI: ; 0x020CED60 bl PXI_SetFifoRecvCallback bl IsCommandAvailable _020CED74: - .byte 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x07, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0xA0, 0xE3, 0x01, 0x04, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x70, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x64, 0x60, 0xA0, 0xE3, 0x07, 0x50, 0xA0, 0xE3 - .byte 0x01, 0x40, 0xA0, 0xE3, 0x06, 0x00, 0xA0, 0xE1, 0x74, 0xF9, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE1, 0xF6, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF8, 0xFF, 0xFF, 0x0A - .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + ldmeqia sp!, {r4-r6, lr} + bxeq lr + mov r0, #0x7 + mov r1, #0x1 + bl PXI_IsCallbackReady + cmp r0, #0x0 + ldmneia sp!, {r4-r6, lr} + bxne lr + mov r6, #0x64 + mov r5, #0x7 + mov r4, #0x1 +_020CEDA4: + mov r0, r6 + bl OS_SpinWait + mov r0, r5 + mov r1, r4 + bl PXI_IsCallbackReady + cmp r0, #0x0 + beq _020CEDA4 + ldmia sp!, {r4-r6, lr} + bx lr _020CEDC8: .word PxiFifoCallback arm_func_start PxiFifoCallback @@ -6093,14 +6546,40 @@ SND_WaitForCommandProc: ; 0x020CEF30 mov r5, r0 bl SND_IsFinishedCommandTag _020CEF40: - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0xC1, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x05, 0x00, 0xA0, 0xE1, 0xCB, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x6A, 0xFF, 0xFF, 0xEB - .byte 0x05, 0x00, 0xA0, 0xE1, 0xC4, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12 - .byte 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1 - .byte 0xAF, 0x00, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0xBB, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0xF9, 0xFF, 0xFF, 0x0A, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5, lr} + bxne lr + mov r4, #0x0 +_020CEF54: + mov r0, r4 + bl SND_RecvCommandReply + cmp r0, #0x0 + bne _020CEF54 + mov r0, r5 + bl SND_IsFinishedCommandTag + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5, lr} + bxne lr + bl RequestCommandProc + mov r0, r5 + bl SND_IsFinishedCommandTag + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5, lr} + bxne lr + mov r4, #0x1 +_020CEF9C: + mov r0, r4 + bl SND_RecvCommandReply + mov r0, r5 + bl SND_IsFinishedCommandTag + cmp r0, #0x0 + beq _020CEF9C + add sp, sp, #0x4 + ldmia sp!, {r4-r5, lr} + bx lr arm_func_start SND_FlushCommand SND_FlushCommand: ; 0x020CEFC0 @@ -6147,29 +6626,83 @@ _020CF03C: mov r2, #0x0 bl PXI_SendWordByFifo _020CF05C: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x1E, 0x00, 0x00, 0xAA, 0x01, 0x00, 0x15, 0xE2, 0x05, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 - .byte 0xAB, 0xF8, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x43, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xD8, 0x10, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x11, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0xAA - .byte 0xBC, 0x60, 0x9F, 0xE5, 0x64, 0x90, 0xA0, 0xE3, 0x07, 0x80, 0xA0, 0xE3, 0x00, 0x70, 0xA0, 0xE3 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x9A, 0xF8, 0xFF, 0xEB, 0x09, 0x00, 0xA0, 0xE1, 0xAF, 0xF8, 0xFF, 0xEB - .byte 0x92, 0xF8, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0x96, 0xE5 - .byte 0x07, 0x20, 0xA0, 0xE1, 0x01, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF3, 0xFF, 0xFF, 0xBA - .byte 0x02, 0x00, 0x15, 0xE2, 0x00, 0x00, 0x00, 0x0A, 0x0F, 0xFF, 0xFF, 0xEB, 0x7C, 0x00, 0x9F, 0xE5 - .byte 0x6C, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x00, 0x50, 0x91, 0xE5, 0x01, 0x10, 0x83, 0xE2 - .byte 0x6C, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x03, 0x51, 0x82, 0xE7, 0x08, 0x00, 0x51, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xC3, 0x4C, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0x80, 0xC5, 0x54, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x30, 0x92, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x01, 0xC0, 0x83, 0xE2, 0x01, 0x60, 0x80, 0xE2 - .byte 0x2C, 0x50, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0x3C, 0x30, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x00, 0xE0, 0x85, 0xE5, 0x00, 0xE0, 0x83, 0xE5, 0x00, 0xC0, 0x82, 0xE5, 0x00, 0x60, 0x81, 0xE5 - .byte 0x73, 0xF8, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + bge _020CF0E0 + ands r0, r5, #0x1 + bne _020CF084 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r9, lr} + bx lr +_020CF084: + ldr r1, _020CF164 + mov r0, #0x7 + ldr r1, [r1] + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + bge _020CF0E0 + ldr r6, _020CF164 + mov r9, #0x64 + mov r8, #0x7 + mov r7, #0x0 +_020CF0B0: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, r9 + bl OS_SpinWait + bl OS_DisableInterrupts + mov r4, r0 + mov r0, r8 + ldr r1, [r6] + mov r2, r7 + bl PXI_SendWordByFifo + cmp r0, #0x0 + blt _020CF0B0 +_020CF0E0: + ands r0, r5, #0x2 + beq _020CF0EC + bl RequestCommandProc +_020CF0EC: + ldr r0, _020CF170 + ldr r1, _020CF164 + ldr r3, [r0] + ldr r5, [r1] + add r1, r3, #0x1 + ldr r2, _020CF174 + str r1, [r0] + str r5, [r2, r3, lsl #2] + cmp r1, #0x8 + movgt r1, #0x0 + ldr r2, _020CF168 + strgt r1, [r0] + ldr r1, _020CF178 + ldr r3, [r2] + ldr r0, [r1] + add ip, r3, #0x1 + add r6, r0, #0x1 + ldr r5, _020CF164 + mov lr, #0x0 + ldr r3, _020CF17C + mov r0, r4 + str lr, [r5] + str lr, [r3] + str ip, [r2] + str r6, [r1] + bl OS_RestoreInterrupts + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r9, lr} + bx lr _020CF164: .word 0x021D3840 _020CF168: .word 0x021D3854 _020CF16C: .word 0x021D3B00 -_020CF170: - .byte 0x50, 0x38, 0x1D, 0x02, 0x5C, 0x38, 0x1D, 0x02, 0x58, 0x38, 0x1D, 0x02, 0x44, 0x38, 0x1D, 0x02 +_020CF170: .word 0x021D3850 +_020CF174: .word 0x021D385C +_020CF178: .word 0x021D3858 +_020CF17C: .word 0x021D3844 arm_func_start SND_PushCommand SND_PushCommand: ; 0x020CF180 @@ -6199,16 +6732,46 @@ SND_AllocCommand: mov r4, r0 bl IsCommandAvailable _020CF1D4: - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0xBA, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x10, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x01, 0x00, 0x14, 0xE2, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0xFC, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x09, 0x00, 0x00, 0xDA - .byte 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0x11, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0xFB, 0xFF, 0xFF, 0x1A, 0xAA, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x5F, 0xFF, 0xFF, 0xEB - .byte 0xB9, 0xFE, 0xFF, 0xEB, 0x01, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0x00, 0x00, 0xEB - .byte 0x9F, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + bl AllocCommand + cmp r0, #0x0 + ldmneia sp!, {r4,lr} + bxne lr + ands r0, r4, #0x1 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + bl SND_CountWaitingCommand + cmp r0, #0x0 + ble _020CF238 + mov r4, #0x0 +_020CF214: + mov r0, r4 + bl SND_RecvCommandReply + cmp r0, #0x0 + bne _020CF214 + bl AllocCommand + cmp r0, #0x0 + beq _020CF240 + ldmia sp!, {r4,lr} + bx lr +_020CF238: + mov r0, #0x1 + bl SND_FlushCommand +_020CF240: + bl RequestCommandProc + mov r4, #0x1 +_020CF248: + mov r0, r4 + bl SND_RecvCommandReply + bl AllocCommand + cmp r0, #0x0 + beq _020CF248 + ldmia sp!, {r4,lr} + bx lr arm_func_start SND_RecvCommandReply SND_RecvCommandReply: ; 0x020CF264 @@ -6245,8 +6808,9 @@ _020CF2C0: mov r0, r5 bl OS_RestoreInterrupts _020CF2DC: - .byte 0x00, 0x00, 0xA0, 0xE3 - .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + ldmia sp!, {r4-r6, lr} + bx lr _020CF2E8: ldr r0, _020CF384 ; =0x021D384C ldr r2, _020CF388 ; =0x021D385C @@ -6341,11 +6905,21 @@ _020CF3BC: mov r0, r8 bl SND_AllocCommand _020CF43C: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0x02, 0xF0, 0x4F, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x1D, 0x20, 0xA0, 0xE3 - .byte 0x0B, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0x80, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x08, 0x10, 0x80, 0xE5 - .byte 0x46, 0xFF, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0xD4, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r11, lr} + bxeq lr + mov r2, #0x1D + mov r1, fp + str r2, [r0, #0x4] + ldr r1, [r1] + str r1, [r0, #0x8] + bl SND_PushCommand + mov r0, r8 + bl SND_FlushCommand + add sp, sp, #0x4 + ldmia sp!, {r4-r11, lr} + bx lr _020CF478: .word 0x021D3B00 _020CF47C: .word 0x021D3838 _020CF480: .word 0x021D4B00 @@ -6647,19 +7221,36 @@ _020CF80C: addls pc, pc, r3, lsl #0x2 b _020CF998 _020CF838: - .byte 0x56, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA - .byte 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA + b _020CF998 + b _020CF85C + b _020CF85C + b _020CF85C + b _020CF85C + b _020CF85C _020CF850: cmp r3, #0x11 beq _020CF924 b _020CF998 _020CF85C: - .byte 0x24, 0x34, 0xA0, 0xE1 - .byte 0x24, 0x54, 0x80, 0xE0, 0xB3, 0x40, 0x90, 0xE1, 0xB2, 0x30, 0xD5, 0xE1, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x01, 0x00, 0xA0, 0xE3, 0xB2, 0x40, 0xC1, 0xE1, 0xB4, 0x30, 0xC1, 0xE1, 0xB4, 0x40, 0xD5, 0xE1 - .byte 0xB6, 0x30, 0xD5, 0xE1, 0xB6, 0x40, 0xC1, 0xE1, 0xB8, 0x30, 0xC1, 0xE1, 0xB8, 0x30, 0xD5, 0xE1 - .byte 0xBA, 0x30, 0xC1, 0xE1, 0x00, 0x10, 0x92, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x00, 0x10, 0x82, 0xE5 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r3, r4, lsr #0x8 + add r5, r0, r4, lsr #0x8 + ldrh r4, [r0, r3] + ldrh r3, [r5, #0x2] + add sp, sp, #0x4 + mov r0, #0x1 + strh r4, [r1, #0x2] + strh r3, [r1, #0x4] + ldrh r4, [r5, #0x4] + ldrh r3, [r5, #0x6] + strh r4, [r1, #0x6] + strh r3, [r1, #0x8] + ldrh r3, [r5, #0x8] + strh r3, [r1, #0xA] + ldr r1, [r2] + add r1, r1, #0x1 + str r1, [r2] + ldmia sp!, {r4-r5,lr} + bx lr _020CF8A8: add r5, r0, r4, lsr #0x8 b _020CF904 @@ -6969,8 +7560,9 @@ _020CFCB8: bl OS_RestoreInterrupts b _020CFBE0 _020CFCC8: - .byte 0x08, 0xD0, 0x8D, 0xE2, 0xF0, 0x47, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + add sp, sp, #0x8 + ldmia sp!, {r4-r10, lr} + bx lr _020CFCD4: .word 0x04000184 _020CFCD8: .word 0x021D5368 _020CFCDC: .word 0x04000188 @@ -7018,8 +7610,10 @@ _020CFD6C: str r2, [r1, #0x0] bl OS_RestoreInterrupts _020CFD7C: - .byte 0x00, 0x00, 0xA0, 0xE3 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr _020CFD8C: .word 0x04000184 _020CFD90: .word 0x04000188 @@ -7177,11 +7771,25 @@ FSi_TranslateCommand: addls pc, pc, r6, lsl #0x2 b _020CFFE8 _020CFFA0: - .byte 0x07, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x0D, 0x00, 0x00, 0xEA - .byte 0x03, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x00, 0xEA, 0x14, 0x60, 0x88, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0x58, 0x10, 0x95, 0xE5 - .byte 0x04, 0x00, 0xE0, 0xE1, 0x00, 0x00, 0x01, 0xE0, 0x58, 0x00, 0x85, 0xE5, 0x07, 0x60, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x00, 0xEA + b _020CFFC4 + b _020CFFC4 + b _020CFFE8 + b _020CFFE8 + b _020CFFC4 + b _020CFFE8 + b _020CFFE8 + b _020CFFE8 + b _020CFFCC +_020CFFC4: + str r6, [r8, #0x14] + b _020CFFE8 +_020CFFCC: + ldr r1, [r5, #0x58] + mvn r0, r4 + and r0, r1, r0 + str r0, [r5, #0x58] + mov r6, #0x7 + b _020CFFE8 _020CFFE4: mov r6, #0x7 _020CFFE8: @@ -7311,10 +7919,21 @@ FSi_OpenFileFastCommand: ; 0x020D0144 str r3, [sp, #0xc] bl FSi_ReadTable _020D0194: - .byte 0x00, 0x00, 0x50, 0xE3, 0x14, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x10, 0x9D, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x30, 0x10, 0x85, 0xE5 - .byte 0x04, 0x20, 0x9D, 0xE5, 0x07, 0x10, 0xA0, 0xE3, 0x34, 0x20, 0x85, 0xE5, 0x38, 0x40, 0x85, 0xE5 - .byte 0x5B, 0xFF, 0xFF, 0xEB, 0x14, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0 + addne sp, sp, #0x14 + ldmneia sp!, {r4-r5,lr} + bxne lr + ldr r1, [sp] + mov r0, r5 + str r1, [r5, #0x30] + ldr r2, [sp, #0x4] + mov r1, #7 + str r2, [r5, #0x34] + str r4, [r5, #0x38] + bl FSi_TranslateCommand + add sp, sp, #0x14 + ldmia sp!, {r4-r5,lr} + bx lr arm_func_start FSi_GetPathCommand FSi_GetPathCommand: ; 0x020D01D0 @@ -7347,6 +7966,7 @@ FSi_GetPathCommand: ; 0x020D01D0 add r8, sp, #0x98 mov r6, #0x3 mov r7, #0x1 +_020D0244: mov r0, r8 mov r1, r10 bl FSi_SeekDirDirect @@ -7359,11 +7979,28 @@ FSi_GetPathCommand: ; 0x020D01D0 str r7, [sp, #0xcc] bl FSi_TranslateCommand _020D0270: - .byte 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x9D, 0xE5, 0x04, 0x00, 0x50, 0xE1, 0xBC, 0x5B, 0xDD, 0x01 - .byte 0x04, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x24, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0xF3, 0xFF, 0xFF, 0x0A, 0x01, 0x08, 0x55, 0xE3, 0x02, 0x00, 0x00, 0x1A - .byte 0x01, 0xA0, 0x8A, 0xE2, 0x09, 0x00, 0x5A, 0xE1, 0xE1, 0xFF, 0xFF, 0x3A + cmp r0, #0x0 + bne _020D02A8 +_020D0278: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + bne _020D0294 + ldr r0, [sp, #0x8] + cmp r0, r4 + ldreqh r5, [sp, #0xbc] + beq _020D02A8 +_020D0294: + mov r0, r8 + mov r1, r6 + bl FSi_TranslateCommand + cmp r0, #0x0 + beq _020D0278 +_020D02A8: + cmp r5, #0x10000 + bne _020D02BC + add sl, sl, #0x1 + cmp sl, r9 + bcc _020D0244 _020D02BC: cmp r5, #0x10000 moveq r0, #0x0 @@ -7398,6 +8035,7 @@ _020D0308: add r8, sp, #0x98 mov r6, #0x3 mov r7, #0x1 +_020D033C: ldr r1, [sp, #0xc4] mov r0, r8 bl FSi_SeekDirDirect @@ -7408,11 +8046,28 @@ _020D0308: str r7, [sp, #0xcc] bl FSi_TranslateCommand _020D0360: - .byte 0x00, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x05, 0x00, 0x00, 0x0A, 0xB8, 0x00, 0xDD, 0xE1, 0x0A, 0x00, 0x50, 0xE1, 0x14, 0x00, 0x9D, 0x05 - .byte 0x01, 0x00, 0x80, 0x02, 0x00, 0x90, 0x89, 0x00, 0x04, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xA0, 0xE1 - .byte 0x06, 0x10, 0xA0, 0xE1, 0xE6, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF1, 0xFF, 0xFF, 0x0A - .byte 0xBC, 0xAB, 0xDD, 0xE1, 0x00, 0x00, 0x5A, 0xE3, 0xE3, 0xFF, 0xFF, 0x1A + cmp r0, #0x0 + bne _020D03A0 +_020D0368: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + beq _020D038C + ldrh r0, [sp, #0x8] + cmp r0, sl + ldreq r0, [sp, #0x14] + addeq r0, r0, #0x1 + addeq r9, r9, r0 + beq _020D03A0 +_020D038C: + mov r0, r8 + mov r1, r6 + bl FSi_TranslateCommand + cmp r0, #0x0 + beq _020D0368 +_020D03A0: + ldrh sl, [sp, #0xbc] + cmp sl, #0x0 + bne _020D033C _020D03AC: add r0, r9, #0x1 strh r0, [r11, #0x8] @@ -7463,25 +8118,47 @@ _020D0410: str r2, [sp, #0xcc] bl FSi_TranslateCommand _020D0464: - .byte 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x1A, 0x98, 0x90, 0x8D, 0xE2 - .byte 0x03, 0x80, 0xA0, 0xE3, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A - .byte 0x08, 0x00, 0x9D, 0xE5, 0x04, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A, 0x09, 0x00, 0xA0, 0xE1 - .byte 0x08, 0x10, 0xA0, 0xE1, 0xA6, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF4, 0xFF, 0xFF, 0x0A - .byte 0x14, 0x00, 0x9D, 0xE5, 0x06, 0x10, 0x87, 0xE0, 0x01, 0x40, 0x80, 0xE2, 0x18, 0x00, 0x8D, 0xE2 - .byte 0x04, 0x20, 0xA0, 0xE1, 0x04, 0x10, 0x41, 0xE0, 0xC8, 0xF7, 0xFF, 0xEB, 0x04, 0x60, 0x46, 0xE0 - .byte 0x03, 0x00, 0x00, 0xEA -_020D04C4: - add r0, r7, r6 - mov r1, #0x0 - strb r1, [r0, #-0x1] - sub r6, r6, #0x1 - cmp r5, #0x0 - beq _020D057C - add r10, sp, #0x98 - add r11, sp, #0x4 - mov r4, #0x3 - mov r9, #0x0 + cmp r0, #0x0 + bne _020D04A0 + add r9, sp, #0x98 + mov r8, #0x3 +_020D0474: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + bne _020D048C + ldr r0, [sp, #0x8] + cmp r0, r4 + beq _020D04A0 +_020D048C: + mov r0, r9 + mov r1, r8 + bl FSi_TranslateCommand + cmp r0, #0x0 + beq _020D0474 +_020D04A0: + ldr r0, [sp, #0x14] + add r1, r7, r6 + add r4, r0, #0x1 + add r0, sp, #0x18 + mov r2, r4 + sub r1, r1, r4 + bl MI_CpuCopy8 + sub r6, r6, r4 + b _020D04D4 +_020D04C4: + add r0, r7, r6 + mov r1, #0x0 + strb r1, [r0, #-0x1] + sub r6, r6, #0x1 +_020D04D4: + cmp r5, #0x0 + beq _020D057C + add r10, sp, #0x98 + add r11, sp, #0x4 + mov r4, #0x3 + mov r9, #0x0 mov r8, #0x2f +_020D04F0: ldr r1, [sp, #0xc4] mov r0, r10 bl FSi_SeekDirDirect @@ -7494,13 +8171,33 @@ _020D04C4: sub r6, r6, #0x1 bl FSi_TranslateCommand _020D051C: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x12, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A - .byte 0xB8, 0x00, 0xDD, 0xE1, 0x05, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0x1A, 0x14, 0x50, 0x9D, 0xE5 - .byte 0x06, 0x10, 0x87, 0xE0, 0x18, 0x00, 0x8D, 0xE2, 0x05, 0x20, 0xA0, 0xE1, 0x05, 0x10, 0x41, 0xE0 - .byte 0xA2, 0xF7, 0xFF, 0xEB, 0x05, 0x60, 0x46, 0xE0, 0x04, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x72, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xEC, 0xFF, 0xFF, 0x0A - .byte 0xBC, 0x5B, 0xDD, 0xE1, 0x00, 0x00, 0x55, 0xE3, 0xDC, 0xFF, 0xFF, 0x1A + cmp r0, #0x0 + bne _020D0570 +_020D0524: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + beq _020D055C + ldrh r0, [sp, #0x8] + cmp r0, r5 + bne _020D055C + ldr r5, [sp, #0x14] + add r1, r7, r6 + add r0, sp, #0x18 + mov r2, r5 + sub r1, r1, r5 + bl MI_CpuCopy8 + sub r6, r6, r5 + b _020D0570 +_020D055C: + mov r0, sl + mov r1, r4 + bl FSi_TranslateCommand + cmp r0, #0x0 + beq _020D0524 +_020D0570: + ldrh r5, [sp, #0xbc] + cmp r5, #0x0 + bne _020D04F0 _020D057C: mov r0, #0x0 add sp, sp, #0xe4 @@ -7590,22 +8287,55 @@ _020D068C: add r0, sp, #0x8 str r0, [r10, #0x30] str r6, [r10, #0x34] +_020D06AC: mov r0, r10 mov r1, r4 bl FSi_TranslateCommand _020D06B8: - .byte 0x00, 0x00, 0x50, 0xE3, 0x9C, 0xD0, 0x8D, 0x12 - .byte 0x01, 0x00, 0xA0, 0x13, 0xF0, 0x4F, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x14, 0x00, 0x9D, 0xE5 - .byte 0x00, 0x00, 0x58, 0xE1, 0xF4, 0xFF, 0xFF, 0x1A, 0x18, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x57, 0xE1 - .byte 0xF1, 0xFF, 0xFF, 0x1A, 0x09, 0x00, 0xA0, 0xE1, 0x0B, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1 - .byte 0xF9, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xEB, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x58, 0xE3 - .byte 0x08, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x8D, 0xE2, 0x30, 0x30, 0x8A, 0xE2, 0x07, 0x00, 0x90, 0xE8 - .byte 0x07, 0x00, 0x83, 0xE8, 0x04, 0x10, 0x9D, 0xE5, 0x0A, 0x00, 0xA0, 0xE1, 0x07, 0x90, 0x89, 0xE0 - .byte 0x03, 0xFE, 0xFF, 0xEB, 0x0E, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x9C, 0xD0, 0x8D, 0x12, 0x01, 0x00, 0xA0, 0x13, 0xF0, 0x4F, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0x44, 0x30, 0x9A, 0xE5, 0x08, 0x20, 0x9D, 0xE5, 0x0C, 0x10, 0x9D, 0xE5, 0x9C, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x20, 0x83, 0xE5, 0x04, 0x10, 0x83, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x4F, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + addne sp, sp, #0x9c + movne r0, #0x1 + ldmneia sp!, {r4-r11,lr} + bxne lr + ldr r0, [sp, #0x14] + cmp r8, r0 + bne _020D06AC + ldr r0, [sp, #0x18] + cmp r7, r0 + bne _020D06AC + mov r0, r9 + mov r1, fp + mov r2, r7 + bl FSi_StrNICmp + cmp r0, #0x0 + bne _020D06AC + cmp r8, #0x0 + beq _020D0728 + add r0, sp, #0x8 + add r3, sl, #0x30 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + ldr r1, [sp, #0x4] + mov r0, sl + add r9, r9, r7 + bl FSi_TranslateCommand + b _020D0764 +_020D0728: + ldr r0, [sp] + cmp r0, #0x0 + addne sp, sp, #0x9c + movne r0, #0x1 + ldmneia sp!, {r4-r11,lr} + bxne lr + ldr r3, [sl, #0x44] + ldr r2, [sp, #0x8] + ldr r1, [sp, #0xC] + add sp, sp, #0x9c + str r2, [r3] + str r1, [r3, #0x4] + mov r0, #0x0 + ldmia sp!, {r4-r11,lr} + bx lr _020D0764: ldrb r0, [r9, #0x0] cmp r0, #0x0 @@ -7642,24 +8372,78 @@ FSi_ReadDirCommand: ; 0x020D07AC str r3, [sp, #0x8] bl FSi_ReadTable _020D07DC: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x0C, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x10, 0xDD, 0xE5 - .byte 0x7F, 0x20, 0x01, 0xE2, 0xC1, 0x13, 0xA0, 0xE1, 0x10, 0x20, 0x84, 0xE5, 0x01, 0x10, 0x01, 0xE2 - .byte 0x0C, 0x10, 0x84, 0xE5, 0x10, 0x20, 0x94, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x0C, 0xD0, 0x8D, 0x02 - .byte 0x01, 0x00, 0xA0, 0x03, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x34, 0x10, 0x95, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x0B, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x8D, 0xE2, 0x14, 0x10, 0x84, 0xE2 - .byte 0x7E, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x10, 0x10, 0x94, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x10, 0x84, 0xE0 - .byte 0x14, 0x20, 0xC1, 0xE5, 0x02, 0x00, 0x00, 0xEA, 0x08, 0x10, 0x9D, 0xE5, 0x02, 0x10, 0x81, 0xE0 - .byte 0x08, 0x10, 0x8D, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x11, 0x00, 0x00, 0x0A - .byte 0x04, 0x00, 0x8D, 0xE2, 0x02, 0x10, 0x8D, 0xE2, 0x02, 0x20, 0xA0, 0xE3, 0x6B, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x0C, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0x08, 0x20, 0x95, 0xE5, 0x4C, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x84, 0xE5, 0xB2, 0x30, 0xDD, 0xE1 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x10, 0x03, 0xE0, 0xB4, 0x10, 0xC4, 0xE1, 0xB6, 0x20, 0xC4, 0xE1 - .byte 0x08, 0x20, 0x84, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0x08, 0x10, 0x95, 0xE5, 0x00, 0x10, 0x84, 0xE5 - .byte 0xB6, 0x12, 0xD5, 0xE1, 0x04, 0x10, 0x84, 0xE5, 0xB6, 0x12, 0xD5, 0xE1, 0x01, 0x10, 0x81, 0xE2 - .byte 0xB6, 0x12, 0xC5, 0xE1, 0x08, 0x10, 0x9D, 0xE5, 0x28, 0x10, 0x85, 0xE5, 0x0C, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0x0F, 0x00, 0x00 + cmp r0, #0x0 + addne sp, sp, #0xC + ldmneia sp!, {r4-r5,lr} + bxne lr + ldrb r1, [sp] + and r2, r1, #0x7F + mov r1, r1, asr #0x7 + str r2, [r4, #0x10] + and r1, r1, #0x1 + str r1, [r4, #0xC] + ldr r2, [r4, #0x10] + cmp r2, #0x0 + addeq sp, sp, #0xC + moveq r0, #0x1 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r1, [r5, #0x34] + cmp r1, #0x0 + bne _020D0858 + add r0, sp, #0x4 + add r1, r4, #0x14 + bl FSi_ReadTable + cmp r0, #0x0 + addne sp, sp, #0xC + ldmneia sp!, {r4-r5,lr} + bxne lr + ldr r1, [r4, #0x10] + mov r2, #0x0 + add r1, r4, r1 + strb r2, [r1, #0x14] + b _020D0864 +_020D0858: + ldr r1, [sp, #0x8] + add r1, r1, r2 + str r1, [sp, #0x8] +_020D0864: + ldr r1, [r4, #0xC] + cmp r1, #0x0 + beq _020D08B8 + add r0, sp, #0x4 + add r1, sp, #0x2 + mov r2, #0x2 + bl FSi_ReadTable + cmp r0, #0x0 + addne sp, sp, #0xC + ldmneia sp!, {r4-r5,lr} + bxne lr + ldr r2, [r5, #0x8] + ldr r1, _020D08E8 + str r2, [r4] + ldrh r3, [sp, #0x2] + mov r2, #0x0 + and r1, r3, r1 + strh r1, [r4, #0x4] + strh r2, [r4, #0x6] + str r2, [r4, #0x8] + b _020D08D4 +_020D08B8: + ldr r1, [r5, #0x8] + str r1, [r4] + ldrh r1, [r5, #0x26] + str r1, [r4, #0x4] + ldrh r1, [r5, #0x26] + add r1, r1, #0x1 + strh r1, [r5, #0x26] +_020D08D4: + ldr r1, [sp, #0x8] + str r1, [r5, #0x28] + add sp, sp, #0xC + ldmia sp!, {r4-r5,lr} + bx lr +_020D08E8: .word 0x00000FFF arm_func_start FSi_SeekDirCommand FSi_SeekDirCommand: ; 0x020D08EC @@ -7855,8 +8639,12 @@ FS_NotifyArchiveAsyncEnd: ; 0x020D0B40 mov r0, r4 bl FSi_NextCommand _020D0B74: - .byte 0x00, 0x00, 0x50, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x13, 0x02, 0x00, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + bl FSi_ExecuteAsyncCommand + ldmia sp!, {r4-r6,lr} + bx lr _020D0B8C: ldr r5, [r4, #0x24] bl OS_DisableInterrupts @@ -7911,9 +8699,15 @@ _020D0C34: mov r0, r5 bl OS_RestoreInterrupts _020D0C3C: - .byte 0x00, 0x00, 0x56, 0xE3 - .byte 0x01, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0xE1, 0x01, 0x00, 0xEB, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r6, #0x0 + beq _020D0C4C + mov r0, r6 + bl FSi_ExecuteAsyncCommand +_020D0C4C: + mov r0, r7 + add sp, sp, #0x4 + ldmia sp!, {r4-r7, lr} + bx lr arm_func_start FS_SuspendArchive FS_SuspendArchive: ; 0x020D0C5C @@ -8027,21 +8821,59 @@ FUN_020D0D84: ; 0x020D0D84 add r3, r2, r3 bl FS_OpenFileDirect _020D0DE4: - .byte 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x30, 0x20, 0x97, 0xE5 - .byte 0x04, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x83, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0xAA, 0x30, 0x20, 0x97, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x4D, 0xF5, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE2, 0xB7, 0x02, 0x00, 0xEB, 0x2C, 0x40, 0x87, 0xE5 - .byte 0x30, 0xC0, 0x97, 0xE5, 0x34, 0x20, 0x97, 0xE5, 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x8D, 0xE5 - .byte 0x38, 0x30, 0x97, 0xE5, 0x04, 0x00, 0x8D, 0xE2, 0x07, 0x10, 0xA0, 0xE1, 0x03, 0x30, 0x82, 0xE0 - .byte 0x0C, 0x40, 0x84, 0xE0, 0xF1, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A - .byte 0x38, 0x20, 0x97, 0xE5, 0x04, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x6A, 0x02, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0xAA, 0x38, 0x20, 0x97, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x34, 0xF5, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE2, 0x9E, 0x02, 0x00, 0xEB - .byte 0x34, 0x40, 0x87, 0xE5, 0x20, 0x00, 0x9F, 0xE5, 0x44, 0x60, 0x87, 0xE5, 0x50, 0x00, 0x87, 0xE5 - .byte 0x1C, 0x00, 0x97, 0xE5, 0x04, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0x87, 0xE5 + cmp r0, #0x0 + beq _020D0E1C + ldr r2, [r7, #0x30] + add r0, sp, #0x4 + mov r1, r4 + bl FS_ReadFile + cmp r0, #0x0 + bge _020D0E14 + ldr r2, [r7, #0x30] + mov r0, r4 + mov r1, #0x0 + bl MI_CpuFill8 +_020D0E14: + add r0, sp, #0x4 + bl FS_CloseFile +_020D0E1C: + str r4, [r7, #0x2C] + ldr ip, [r7, #0x30] + ldr r2, [r7, #0x34] + mvn r0, #0x0 + str r0, [sp] + ldr r3, [r7, #0x38] + add r0, sp, #0x4 + mov r1, r7 + add r3, r2, r3 + add r4, r4, ip + bl FS_OpenFileDirect + cmp r0, #0x0 + beq _020D0E80 + ldr r2, [r7, #0x38] + add r0, sp, #0x4 + mov r1, r4 + bl FS_ReadFile + cmp r0, #0x0 + bge _020D0E78 + ldr r2, [r7, #0x38] + mov r0, r4 + mov r1, #0x0 + bl MI_CpuFill8 +_020D0E78: + add r0, sp, #0x4 + bl FS_CloseFile +_020D0E80: + str r4, [r7, #0x34] + ldr r0, _020D0EAC + str r6, [r7, #0x44] + str r0, [r7, #0x50] + ldr r0, [r7, #0x1C] + orr r0, r0, #0x4 + str r0, [r7, #0x1C] _020D0E9C: mov r0, r5 - add sp, sp, #0x4c + add sp, sp, #0x4C ldmia sp!, {r4-r7,lr} bx lr _020D0EAC: @@ -8194,16 +9026,49 @@ FS_RegisterArchiveName: ; 0x020D1088 mov r1, r5 bl FS_FindArchive _020D10B0: - .byte 0x00, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x00, 0x1A, 0x80, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x74, 0x00, 0x9F, 0xE5, 0x08, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x70, 0x81, 0xE5, 0x00, 0x70, 0x80, 0xE5, 0x08, 0x20, 0x80, 0xE5, 0xB6, 0x20, 0xC0, 0xE1 - .byte 0xB4, 0x20, 0xC0, 0xE1, 0x08, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x04, 0x70, 0x82, 0xE5, 0x08, 0x20, 0x87, 0xE5, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x05, 0x10, 0xA0, 0xE1, 0x73, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x87, 0xE5, 0x1C, 0x00, 0x97, 0xE5 - .byte 0x01, 0x80, 0xA0, 0xE3, 0x01, 0x00, 0x80, 0xE3, 0x1C, 0x00, 0x87, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x7B, 0xF0, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1, 0xF0, 0x41, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xE8, 0x53, 0x1D, 0x02, 0xEC, 0x53, 0x1D, 0x02 + cmp r0, #0x0 + bne _020D112C + ldr r1, _020D1140 + ldr r2, [r1] + cmp r2, #0x0 + bne _020D10E8 + ldr r0, _020D1144 + mov r2, r8 + str r7, [r1] + str r7, [r0] + str r2, [r0, #0x8] + strh r2, [r0, #0x6] + strh r2, [r0, #0x4] + b _020D110C +_020D10E8: + ldr r0, [r2, #0x4] + cmp r0, #0x0 + beq _020D1104 +_020D10F4: + mov r2, r0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + bne _020D10F4 +_020D1104: + str r7, [r2, #0x4] + str r2, [r7, #0x8] +_020D110C: + mov r0, r6 + mov r1, r5 + bl FSi_GetPackedName + str r0, [r7] + ldr r0, [r7, #0x1C] + mov r8, #0x1 + orr r0, r0, #0x1 + str r0, [r7, #0x1C] +_020D112C: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, r8 + ldmia sp!, {r4-r8,lr} + bx lr +_020D1140: .word 0x021D53E8 +_020D1144: .word 0x021D53EC arm_func_start FS_FindArchive FS_FindArchive: @@ -8383,9 +9248,16 @@ FSi_ExecuteSyncCommand: ; 0x020D138C ldr r0, [r4, #0x8] bl FSi_NextCommand _020D13B0: - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x00, 0xEB, 0x14, 0x00, 0x94, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + beq _020D13BC + bl FSi_ExecuteAsyncCommand +_020D13BC: + ldr r0, [r4, #0x14] + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + ldmia sp!, {r4,lr} + bx lr arm_func_start FSi_ExecuteAsyncCommand FSi_ExecuteAsyncCommand: ; 0x020D13D4 @@ -8466,8 +9338,8 @@ _020D14BC: streq r4, [r6, #0x24] bl FSi_ReleaseCommand _020D14EC: - .byte 0x00, 0x00, 0x54, 0xE3 - .byte 0x24, 0x40, 0x96, 0x05 + cmp r4, #0x0 + ldreq r4, [r6, #0x24] _020D14F4: mov r0, r4 cmp r4, #0x0 @@ -8499,15 +9371,42 @@ _020D1500: mov r0, r5 bl OS_RestoreInterrupts _020D1564: - .byte 0x00, 0x00, 0x57, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x58, 0x00, 0x96, 0xE5 - .byte 0x02, 0x0C, 0x10, 0xE2, 0x03, 0x00, 0x00, 0x0A, 0x54, 0x20, 0x96, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x09, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1, 0x60, 0xEF, 0xFF, 0xEB, 0x0C, 0x10, 0x94, 0xE5 - .byte 0x00, 0x50, 0xA0, 0xE1, 0x40, 0x00, 0x81, 0xE3, 0x0C, 0x00, 0x84, 0xE5, 0x0C, 0x00, 0x94, 0xE5 - .byte 0x04, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3 - .byte 0x07, 0x00, 0x00, 0x0A, 0x18, 0x00, 0x84, 0xE2, 0x29, 0xE7, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x57, 0xEF, 0xFF, 0xEB, 0x4C, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x43, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x51, 0xEF, 0xFF, 0xEB, 0x4C, 0xD0, 0x8D, 0xE2 - .byte 0x04, 0x00, 0xA0, 0xE1, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r7, #0x0 + beq _020D1588 + ldr r0, [r6, #0x58] + ands r0, r0, #0x200 + beq _020D1588 + ldr r2, [r6, #0x54] + mov r0, r4 + mov r1, #0x9 + blx r2 +_020D1588: + bl OS_DisableInterrupts + ldr r1, [r4, #0xC] + mov r5, r0 + orr r0, r1, #0x40 + str r0, [r4, #0xC] + ldr r0, [r4, #0xC] + ands r0, r0, #0x4 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020D15D4 + add r0, r4, #0x18 + bl OS_WakeupThread + mov r0, r5 + bl OS_RestoreInterrupts + add sp, sp, #0x4c + mov r0, #0x0 + ldmia sp!, {r4-r9, lr} + bx lr +_020D15D4: + mov r0, r5 + bl OS_RestoreInterrupts + add sp, sp, #0x4c + mov r0, r4 + ldmia sp!, {r4-r9, lr} + bx lr _020D15EC: ldr r0, [r6, #0x1c] ands r0, r0, #0x10 @@ -8541,7 +9440,10 @@ _020D1658: mov r0, r5 bl OS_RestoreInterrupts _020D1660: - .byte 0x00, 0x00, 0xA0, 0xE3, 0x4C, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + add sp, sp, #0x4c + ldmia sp!, {r4-r9, lr} + bx lr arm_func_start FSi_ReadMemoryCore FSi_ReadMemoryCore: ; 0x020D1670 @@ -8551,8 +9453,10 @@ FSi_ReadMemoryCore: ; 0x020D1670 mov r2, r3 bl MI_CpuCopy8 _020D1684: - .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr arm_func_start FSi_WriteMemCallback FSi_WriteMemCallback: ; 0x020D1694 @@ -8564,7 +9468,10 @@ FSi_WriteMemCallback: ; 0x020D1694 mov r2, r3 bl MI_CpuCopy8 _020D16B0: - .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr arm_func_start FSi_ReadMemCallback FSi_ReadMemCallback: ; 0x020D16C0 @@ -8575,8 +9482,10 @@ FSi_ReadMemCallback: ; 0x020D16C0 mov r2, r3 bl MI_CpuCopy8 _020D16D8: - .byte 0x00, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x0 + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr arm_func_start FSi_GetPackedName FSi_GetPackedName: ; 0x020D16E8 @@ -8621,9 +9530,17 @@ FS_ChangeDir: ; 0x020D174C mov r2, #0x0 bl FSi_FindPath _020D1774: - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x8D, 0x12 - .byte 0x14, 0x30, 0x9F, 0x15, 0x07, 0x00, 0x90, 0x18, 0x07, 0x00, 0x83, 0x18, 0x01, 0x00, 0xA0, 0x13 - .byte 0x58, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xEC, 0x53, 0x1D, 0x02 + cmp r0, #0x0 + moveq r0, #0x0 + addne r0, sp, #0x0 + ldrne r3, _020D179C + ldmneia r0, {r0, r1, r2} + stmneia r3, {r0, r1, r2} + movne r0, #0x1 + add sp, sp, #0x58 + ldmia sp!, {r4, lr} + bx lr +_020D179C: .word 0x021D53EC arm_func_start FS_SeekFile FS_SeekFile: ; 0x020D17A0 @@ -8720,11 +9637,14 @@ _020D18BC: mov r0, r4 bl OS_RestoreInterrupts _020D18C4: - .byte 0x00, 0x00, 0x55, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1 - .byte 0xAD, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020D18E0 -FUN_020D18E0: ; 0x020D18E0 + cmp r5, #0x0 + beq _020D18E0 + mov r0, r6 + bl FSi_ExecuteSyncCommand + add sp, sp, #4 + ldmia sp!, {r4-r7,lr} + bx lr +_020D18E0: ldr r0, [r6, #0x14] cmp r0, #0x0 moveq r0, #0x1 @@ -8740,11 +9660,20 @@ FS_CloseFile: ; 0x020D18FC mov r4, r0 bl FSi_SendCommand _020D190C: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x00, 0x84, 0xE5, 0x0E, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x84, 0xE5, 0x0C, 0x10, 0x94, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x30, 0x10, 0xC1, 0xE3, 0x0C, 0x10, 0x84, 0xE5, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r0, #0x0 + str r0, [r4, #0x8] + mov r0, #0xE + str r0, [r4, #0x10] + ldr r1, [r4, #0xC] + mov r0, #0x1 + bic r1, r1, #0x30 + str r1, [r4, #0xC] + ldmia sp!, {r4,lr} + bx lr arm_func_start FS_OpenFile FS_OpenFile: ; 0x020D1944 @@ -8754,11 +9683,22 @@ FS_OpenFile: ; 0x020D1944 add r0, sp, #0x0 bl FS_ConvertPathToFileID _020D1958: - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A - .byte 0x00, 0x10, 0x8D, 0xE2, 0x04, 0x00, 0xA0, 0xE1, 0x06, 0x00, 0x91, 0xE8, 0x08, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0xD0, 0x8D, 0x12, 0x01, 0x00, 0xA0, 0x13, 0x10, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + beq _020D1984 + add r1, sp, #0x0 + mov r0, r4 + ldmia r1, {r1, r2} + bl FS_OpenFileFast + cmp r0, #0x0 + addne sp, sp, #0x8 + movne r0, #0x1 + ldmneia sp!, {r4, lr} + bxne lr +_020D1984: + mov r0, #0x0 + add sp, sp, #0x8 + ldmia sp!, {r4, lr} + bx lr arm_func_start FS_OpenFileFast FS_OpenFileFast: @@ -8779,10 +9719,21 @@ FS_OpenFileFast: str r2, [r4, #0x34] bl FSi_SendCommand _020D19D4: - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 - .byte 0x10, 0xD0, 0x8D, 0x02, 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x10, 0x94, 0xE5, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x10, 0x10, 0x81, 0xE3, 0x0C, 0x10, 0x84, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x20, 0x10, 0xC1, 0xE3 - .byte 0x0C, 0x10, 0x84, 0xE5, 0x10, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4, lr} + addeq sp, sp, #0x10 + bxeq lr + ldr r1, [r4, #0xC] + mov r0, #0x1 + orr r1, r1, #0x10 + str r1, [r4, #0xC] + ldr r1, [r4, #0xC] + bic r1, r1, #0x20 + str r1, [r4, #0xC] + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr arm_func_start FS_OpenFileDirect FS_OpenFileDirect: @@ -8796,10 +9747,19 @@ FS_OpenFileDirect: str r3, [r4, #0x34] bl FSi_SendCommand _020D1A34: - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x10, 0x94, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x10, 0x10, 0x81, 0xE3 - .byte 0x0C, 0x10, 0x84, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0x20, 0x10, 0xC1, 0xE3, 0x0C, 0x10, 0x84, 0xE5 - .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4, lr} + bxeq lr + ldr r1, [r4, #0xC] + mov r0, #0x1 + orr r1, r1, #0x10 + str r1, [r4, #0xC] + ldr r1, [r4, #0xC] + bic r1, r1, #0x20 + str r1, [r4, #0xC] + ldmia sp!, {r4, lr} + bx lr arm_func_start FS_ConvertPathToFileID FS_ConvertPathToFileID: @@ -8810,9 +9770,17 @@ FS_ConvertPathToFileID: mov r4, r1 bl FS_InitFile _020D1A80: - .byte 0x00, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x27, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0x4C, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + add r0, sp, #0x0 + mov r1, r4 + mov r2, r5 + mov r3, #0x0 + bl FSi_FindPath + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4C + ldmia sp!, {r4-r5, lr} + bx lr arm_func_start FUN_020D1AAC FUN_020D1AAC: ; 0x020D1AAC @@ -8839,10 +9807,19 @@ FUN_020D1AAC: ; 0x020D1AAC mov r0, r7 bl FSi_SendCommand _020D1B04: - .byte 0x00, 0x00, 0x55, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x45, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2C, 0x00, 0x97, 0x15, 0x04, 0x60, 0x40, 0x10 - .byte 0x00, 0x60, 0xE0, 0x03, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r5, #0x0 + bne _020D1B24 + mov r0, r7 + bl FS_WaitAsync + cmp r0, #0x0 + ldrne r0, [r7, #0x2C] + subne r6, r0, r4 + mvneq r6, #0x0 +_020D1B24: + mov r0, r6 + add sp, sp, #0x4 + ldmia sp!, {r4-r7, lr} + bx lr arm_func_start FSi_FindPath FSi_FindPath: @@ -8887,19 +9864,39 @@ _020D1B98: mov r1, r4 bl FS_FindArchive _020D1BC8: - .byte 0x00, 0x00, 0x50, 0xE3, 0x10, 0xD0, 0x8D, 0x02 - .byte 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x1C, 0x10, 0x90, 0xE5 - .byte 0x02, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x51, 0xE3 - .byte 0x10, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x41, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x08, 0x10, 0x8D, 0xE5, 0xB6, 0x10, 0xCD, 0xE1 - .byte 0xB4, 0x10, 0xCD, 0xE1, 0x01, 0x00, 0x84, 0xE2, 0x00, 0x00, 0xF7, 0xE7, 0x2F, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0x00, 0x0A, 0x5C, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x01, 0x70, 0x87, 0xE2 - .byte 0x02, 0x00, 0x00, 0xEA -_020D1C34: - add r4, r4, #0x1 - cmp r4, #0x3 - ble _020D1B98 -_020D1C40: + cmp r0, #0x0 + addeq sp, sp, #0x10 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r1, [r0, #0x1C] + ands r1, r1, #0x2 + movne r1, #0x1 + moveq r1, #0x0 + cmp r1, #0x0 + addeq sp, sp, #0x10 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r1, #0x0 + str r0, [sp] + str r1, [sp, #0x8] + strh r1, [sp, #0x6] + strh r1, [sp, #0x4] + add r0, r4, #0x1 + ldrb r0, [r7, r0]! + cmp r0, #0x2f + beq _020D1C2C + cmp r0, #0x5c + bne _020D1C40 +_020D1C2C: + add r7, r7, #0x1 + b _020D1C40 +_020D1C34: + add r4, r4, #0x1 + cmp r4, #0x3 + ble _020D1B98 +_020D1C40: ldr r1, [sp, #0x0] add r0, sp, #0x0 str r1, [r8, #0x8] @@ -9198,10 +10195,16 @@ _020D2014: .word 0x021D5400 FSi_OnRomReadDone: ; 0x020D2018 stmdb sp!, {r4,lr} mov r4, r0 - bl FUN_020D7D18 + bl CARD_IsPulledOut _020D2024: - .byte 0x00, 0x00, 0x50, 0xE3, 0x05, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03 - .byte 0x04, 0x00, 0xA0, 0xE1, 0xC1, 0xFA, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + movne r1, #0x5 + moveq r1, #0x0 + mov r0, r4 + bl FS_NotifyArchiveAsyncEnd + ldmia sp!, {r4,lr} + bx lr + arm_func_start FS_UnloadOverlay FS_UnloadOverlay: ; 0x020D2040 @@ -9213,11 +10216,22 @@ FS_UnloadOverlay: ; 0x020D2040 mov r1, r3 bl FS_LoadOverlayInfo _020D205C: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2, 0x20, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0x1A, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + beq _020D2074 + add r0, sp, #0x0 + bl FS_UnloadOverlayImage + cmp r0, #0x0 + bne _020D2084 +_020D2074: + add sp, sp, #0x2c + mov r0, #0x0 + ldmfd sp!, {lr} + bx lr +_020D2084: + mov r0, #0x1 + add sp, sp, #0x2c + ldmfd sp!, {lr} + bx lr arm_func_start FS_LoadOverlay FS_LoadOverlay: ; 0x020D2094 @@ -9229,10 +10243,24 @@ FS_LoadOverlay: ; 0x020D2094 mov r1, r3 bl FS_LoadOverlayInfo _020D20B0: - .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2, 0xBC, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x8D, 0xE2, 0x4B, 0x00, 0x00, 0xEB - .byte 0x01, 0x00, 0xA0, 0xE3, 0x2C, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + beq _020D20C8 + add r0, sp, #0x0 + bl FS_LoadOverlayImage + cmp r0, #0x0 + bne _020D20D8 +_020D20C8: + add sp, sp, #0x2c + mov r0, #0x0 + ldmfd sp!, {lr} + bx lr +_020D20D8: + add r0, sp, #0x0 + bl FS_StartOverlay + mov r0, #0x1 + add sp, sp, #0x2c + ldmfd sp!, {lr} + bx lr arm_func_start FS_UnloadOverlayImage FS_UnloadOverlayImage: ; 0x020D20F0 @@ -9251,6 +10279,7 @@ FS_EndOverlay: ; 0x020D210C ldr r8, _020D220C ; =0x021D74C8 mov r11, r0 mov r9, #0x0 +_020D2120: ldr r1, [r11, #0x8] ldr r0, [r11, #0xc] ldr r5, [r11, #0x4] @@ -9300,11 +10329,25 @@ _020D21B8: _020D21C4: bl OS_RestoreInterrupts _020D21C8: - .byte 0x00, 0x00, 0x57, 0xE3, 0x04, 0xD0, 0x8D, 0x02 - .byte 0xF0, 0x4F, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x04, 0x10, 0x97, 0xE5, 0x00, 0x40, 0x97, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x97, 0xE5, 0x31, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0x54, 0xE3, 0xF6, 0xFF, 0xFF, 0x1A, 0xC7, 0xFF, 0xFF, 0xEA - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r7, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r11, lr} + bxeq lr +_020D21D8: + ldr r1, [r7, #0x4] + ldr r4, [r7] + cmp r1, #0x0 + beq _020D21F0 + ldr r0, [r7, #0x8] + blx r1 +_020D21F0: + mov r7, r4 + cmp r4, #0x0 + bne _020D21D8 + b _020D2120 + add sp, sp, #0x4 + ldmia sp!, {r4-r11, lr} + bx lr _020D220C: .word 0x021D74C8 arm_func_start FS_StartOverlay @@ -9435,16 +10478,42 @@ FS_LoadOverlayImage: ; 0x020D23B4 add r0, sp, #0x8 bl FS_InitFile _020D23C8: - .byte 0x00, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1 - .byte 0xCE, 0x00, 0x00, 0xEB, 0x00, 0x10, 0x8D, 0xE2, 0x08, 0x00, 0x8D, 0xE2, 0x06, 0x00, 0x91, 0xE8 - .byte 0x6B, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x54, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 - .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x00, 0xA0, 0xE1, 0xDE, 0x00, 0x00, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0xCA, 0x00, 0x00, 0xEB, 0x04, 0x10, 0x95, 0xE5 - .byte 0x08, 0x00, 0x8D, 0xE2, 0x04, 0x20, 0xA0, 0xE1, 0xFB, 0xFC, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE1 - .byte 0x05, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x8D, 0xE2, 0x33, 0xFD, 0xFF, 0xEB, 0x54, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x8D, 0xE2 - .byte 0x2D, 0xFD, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x54, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + add r0, sp, #0x0 + mov r1, r5 + bl FS_GetOverlayFileID + add r1, sp, #0x0 + add r0, sp, #0x8 + ldmia r1, {r1, r2} + bl FS_OpenFileFast + cmp r0, #0x0 + addeq sp, sp, #0x54 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5, lr} + bxeq lr + mov r0, r5 + bl FSi_GetOverlayBinarySize + mov r4, r0 + mov r0, r5 + bl FS_ClearOverlayImage + ldr r1, [r5, #0x4] + add r0, sp, #0x8 + mov r2, r4 + bl FS_ReadFile + cmp r4, r0 + beq _020D243C + add r0, sp, #0x8 + bl FS_CloseFile + add sp, sp, #0x54 + mov r0, #0x0 + ldmia sp!, {r4-r5, lr} + bx lr +_020D243C: + add r0, sp, #0x8 + bl FS_CloseFile + mov r0, #0x1 + add sp, sp, #0x54 + ldmia sp!, {r4-r5, lr} + bx lr arm_func_start FS_LoadOverlayImageAsync FS_LoadOverlayImageAsync: ; 0x020D2454 @@ -9455,15 +10524,38 @@ FS_LoadOverlayImageAsync: ; 0x020D2454 mov r0, r5 bl FS_InitFile _020D246C: - .byte 0x00, 0x00, 0x8D, 0xE2 - .byte 0x06, 0x10, 0xA0, 0xE1, 0xA5, 0x00, 0x00, 0xEB, 0x00, 0x10, 0x8D, 0xE2, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x06, 0x00, 0x91, 0xE8, 0x42, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0xD0, 0x8D, 0x02 - .byte 0x00, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x06, 0x00, 0xA0, 0xE1 - .byte 0xB5, 0x00, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE1, 0xA1, 0x00, 0x00, 0xEB - .byte 0x04, 0x10, 0x96, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0xD6, 0xFC, 0xFF, 0xEB - .byte 0x00, 0x00, 0x54, 0xE1, 0x08, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x05, 0x00, 0xA0, 0xE1, 0x07, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + add r0, sp, #0x0 + mov r1, r6 + bl FS_GetOverlayFileID + add r1, sp, #0x0 + mov r0, r5 + ldmia r1, {r1, r2} + bl FS_OpenFileFast + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6, lr} + bxeq lr + mov r0, r6 + bl FSi_GetOverlayBinarySize + mov r4, r0 + mov r0, r6 + bl FS_ClearOverlayImage + ldr r1, [r6, #0x4] + mov r0, r5 + mov r2, r4 + bl FS_ReadFileAsync + cmp r4, r0 + addeq sp, sp, #0x8 + moveq r0, #0x1 + ldmeqia sp!, {r4-r6, lr} + bxeq lr + mov r0, r5 + bl FS_CloseFile + mov r0, #0x0 + add sp, sp, #0x8 + ldmia sp!, {r4-r6, lr} + bx lr arm_func_start FS_LoadOverlayInfo FS_LoadOverlayInfo: @@ -9498,11 +10590,23 @@ FS_LoadOverlayInfo: ldmia r1, {r1-r2} bl FS_OpenFileFast _020D2564: - .byte 0x00, 0x00, 0x50, 0xE3, 0x64, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03 - .byte 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x3C, 0x10, 0x9D, 0xE5, 0x18, 0x00, 0x8D, 0xE2 - .byte 0x24, 0x10, 0x85, 0xE5, 0x40, 0x20, 0x9D, 0xE5, 0x3C, 0x10, 0x9D, 0xE5, 0x01, 0x10, 0x42, 0xE0 - .byte 0x28, 0x10, 0x85, 0xE5, 0xD8, 0xFC, 0xFF, 0xEB, 0x64, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + addeq sp, sp, #0x64 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r1, [sp, #0x3c] + add r0, sp, #0x18 + str r1, [r5, #0x24] + ldr r2, [sp, #0x40] + ldr r1, [sp, #0x3c] + sub r1, r2, r1 + str r1, [r5, #0x28] + bl FS_CloseFile + add sp, sp, #0x64 + mov r0, #0x1 + ldmia sp!, {r4-r5,lr} + bx lr _020D25A8: ldr r1, _020D25F4 ; =0x027FFE50 ldr ip, _020D25F8 ; =0x027FFE58 @@ -9555,17 +10659,51 @@ FSi_LoadOverlayInfoCore: ; 0x020D2600 str r12, [sp, #0x0] bl FS_OpenFileDirect _020D2660: - .byte 0x00, 0x00, 0x50, 0xE3, 0x54, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x43, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x20, 0x20, 0xA0, 0xE3 - .byte 0x61, 0xFC, 0xFF, 0xEB, 0x20, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0x8D, 0xE2 - .byte 0x99, 0xFC, 0xFF, 0xEB, 0x54, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x43, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x00, 0x8D, 0xE2, 0x93, 0xFC, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE2 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x20, 0x90, 0x84, 0xE5, 0x14, 0x00, 0x00, 0xEB, 0x04, 0x10, 0x8D, 0xE2 - .byte 0x0C, 0x00, 0x8D, 0xE2, 0x06, 0x00, 0x91, 0xE8, 0xB1, 0xFC, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x54, 0xD0, 0x8D, 0x02, 0x00, 0x00, 0xA0, 0x03, 0xF0, 0x43, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x30, 0x10, 0x9D, 0xE5, 0x0C, 0x00, 0x8D, 0xE2, 0x24, 0x10, 0x84, 0xE5, 0x34, 0x20, 0x9D, 0xE5 - .byte 0x30, 0x10, 0x9D, 0xE5, 0x01, 0x10, 0x42, 0xE0, 0x28, 0x10, 0x84, 0xE5, 0x7E, 0xFC, 0xFF, 0xEB - .byte 0x01, 0x00, 0xA0, 0xE3, 0x54, 0xD0, 0x8D, 0xE2, 0xF0, 0x43, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0 + addeq sp, sp, #0x54 + moveq r0, #0 + ldmeqia sp!, {r4-r9, lr} + bxeq lr + add r0, sp, #12 + mov r1, r4 + mov r2, #32 + bl FS_ReadFile + cmp r0, #32 + beq _020D26A4 + add r0, sp, #12 + bl FS_CloseFile + add sp, sp, #0x54 + mov r0, #0x0 + ldmia sp!, {r4-r9, lr} + bx lr +_020D26A4: + add r0, sp, #0xC + bl FS_CloseFile + add r0, sp, #0x4 + mov r1, r4 + str r9, [r4, #0x20] + bl FS_GetOverlayFileID + add r1, sp, #0x4 + add r0, sp, #0xC + ldmia r1, {r1, r2} + bl FS_OpenFileFast + cmp r0, #0x0 + addeq sp, sp, #0x54 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9, lr} + bxeq lr + ldr r1, [sp, #0x30] + add r0, sp, #0xC + str r1, [r4, #0x24] + ldr r2, [sp, #0x34] + ldr r1, [sp, #0x30] + sub r1, r2, r1 + str r1, [r4, #0x28] + bl FS_CloseFile + mov r0, #0x1 + add sp, sp, #0x54 + ldmia sp!, {r4-r9, lr} + bx lr arm_func_start FS_GetOverlayFileID FS_GetOverlayFileID: ; 0x020D2710 @@ -10469,10 +11607,10 @@ _020D33D8: _020D33E8: ldr r4, [r1], #0x4 add r2, r8, r12 - add r2, r2, r3, ror #27 + add r2, r2, r3, ror #0x1B and lr, r4, r7 - and r4, r7, r4, ror #24 - orr r4, r4, lr, ror #8 + and r4, r7, r4, ror #0x18 + orr r4, r4, lr, ror #0x8 str r4, [r6, #0x40] str r4, [r6], #0x4 add r2, r2, r4 @@ -10480,7 +11618,7 @@ _020D33E8: and r4, r4, r9 eor r4, r4, r11 add r2, r2, r4 - mov r9, r9, ror #2 + mov r9, r9, ror #0x2 mov r12, r11 mov r11, r10 mov r10, r9 @@ -10499,17 +11637,17 @@ _020D3448: eor r2, r2, r5 eor r4, r4, lr eor r2, r2, r4 - mov r2, r2, ror #31 + mov r2, r2, ror #0x1F str r2, [r6, #0x40] str r2, [r6], #0x4 add r2, r2, r12 add r2, r2, r8 - add r2, r2, r3, ror #27 + add r2, r2, r3, ror #0x1B eor r4, r10, r11 and r4, r4, r9 eor r4, r4, r11 add r2, r2, r4 - mov r9, r9, ror #2 + mov r9, r9, ror #0x2 mov r12, r11 mov r11, r10 mov r10, r9 @@ -10528,16 +11666,16 @@ _020D34B8: eor r2, r2, r4 eor lr, lr, r5 eor r2, r2, lr - mov r2, r2, ror #31 + mov r2, r2, ror #0x1F str r2, [r6, #0x40] str r2, [r6], #0x4 add r2, r2, r12 add r2, r2, r8 - add r2, r2, r3, ror #27 + add r2, r2, r3, ror #0x1B eor lr, r9, r10 eor lr, lr, r11 add r2, r2, lr - mov r9, r9, ror #2 + mov r9, r9, ror #0x2 mov r12, r11 mov r11, r10 mov r10, r9 @@ -10558,18 +11696,18 @@ _020D352C: eor r2, r2, lr eor r5, r5, r4 eor r2, r2, r5 - mov r2, r2, ror #31 + mov r2, r2, ror #0x1F str r2, [r6, #0x40] str r2, [r6], #0x4 add r2, r2, r12 add r2, r2, r8 - add r2, r2, r3, ror #27 + add r2, r2, r3, ror #0x1B orr r5, r9, r10 and r5, r5, r11 and r4, r9, r10 orr r5, r5, r4 add r2, r2, r5 - mov r9, r9, ror #2 + mov r9, r9, ror #0x2 mov r12, r11 mov r11, r10 mov r10, r9 @@ -10590,16 +11728,16 @@ _020D35A8: eor r2, r2, r5 eor r4, r4, lr eor r2, r2, r4 - mov r2, r2, ror #31 + mov r2, r2, ror #0x1F str r2, [r6, #0x40] str r2, [r6], #0x4 add r2, r2, r12 add r2, r2, r8 - add r2, r2, r3, ror #27 + add r2, r2, r3, ror #0x1B eor r4, r9, r10 eor r4, r4, r11 add r2, r2, r4 - mov r9, r9, ror #2 + mov r9, r9, ror #0x2 mov r12, r11 mov r11, r10 mov r10, r9 @@ -11064,17 +12202,41 @@ TP_RequestAutoSamplingStopAsync: ; 0x020D3C14 mov r2, #0x0 bl PXI_SendWordByFifo _020D3C30: - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0x50, 0xE3 - .byte 0x0F, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0xB5, 0xE5, 0xFF, 0xEB, 0x60, 0x00, 0x9F, 0xE5 - .byte 0xB4, 0x13, 0xD0, 0xE1, 0x00, 0x30, 0x90, 0xE5, 0x04, 0x10, 0x81, 0xE3, 0xB4, 0x13, 0xC0, 0xE1 - .byte 0x00, 0x00, 0x53, 0xE3, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x02, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x28, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xB6, 0x23, 0xD1, 0xE1 - .byte 0x04, 0x20, 0x82, 0xE3, 0xB6, 0x23, 0xC1, 0xE1, 0xB4, 0x23, 0xD1, 0xE1, 0x04, 0x20, 0xC2, 0xE3 - .byte 0xB4, 0x23, 0xC1, 0xE1, 0x9E, 0xE5, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + movge r0, #0x1 + movlt r0, #0x0 + cmp r0, #0x0 + bne _020D3C84 + mov r0, r4 + bl OS_RestoreInterrupts + ldr r0, _020D3CB4 + ldrh r1, [r0, #0x34] + ldr r3, [r0] + orr r1, r1, #0x4 + strh r1, [r0, #0x34] + cmp r3, #0x0 + ldmeqia sp!, {r4, lr} + bxeq lr + mov r0, #0x2 + mov r1, #0x4 + mov r2, #0x0 + blx r3 + ldmia sp!, {r4, lr} + bx lr +_020D3C84: + ldr r1, _020D3CB4 + mov r0, r4 + ldrh r2, [r1, #0x36] + orr r2, r2, #0x4 + strh r2, [r1, #0x36] + ldrh r2, [r1, #0x34] + bic r2, r2, #0x4 + strh r2, [r1, #0x34] + bl OS_RestoreInterrupts + ldmia sp!, {r4, lr} + bx lr _020D3CB0: .word 0x03000200 -_020D3CB4: - .byte 0x74, 0x54, 0x1D, 0x02 +_020D3CB4: .word 0x021D5474 arm_func_start TP_RequestAutoSamplingStartAsync TP_RequestAutoSamplingStartAsync: ; 0x020D3CB8 @@ -11107,20 +12269,51 @@ _020D3D00: mov r2, #0x0 bl PXI_SendWordByFifo _020D3D20: - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x07, 0x00, 0x00, 0xBA, 0x94, 0x10, 0x9F, 0xE5 - .byte 0x06, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0x86, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0xE7, 0xEF, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x01, 0x00, 0xA0, 0xA3, 0xFF, 0x00, 0x10, 0xE2 - .byte 0x0F, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x71, 0xE5, 0xFF, 0xEB, 0x5C, 0x00, 0x9F, 0xE5 - .byte 0xB4, 0x13, 0xD0, 0xE1, 0x00, 0x30, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE3, 0xB4, 0x13, 0xC0, 0xE1 - .byte 0x00, 0x00, 0x53, 0xE3, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xB6, 0x23, 0xD1, 0xE1 - .byte 0x02, 0x20, 0x82, 0xE3, 0xB6, 0x23, 0xC1, 0xE1, 0xB4, 0x23, 0xD1, 0xE1, 0x02, 0x20, 0xC2, 0xE3 - .byte 0xB4, 0x23, 0xC1, 0xE1, 0x5A, 0xE5, 0xFF, 0xEB, 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + movlt r0, #0x0 + blt _020D3D4C + ldr r1, _020D3DC8 + mov r0, #0x6 + orr r1, r6, r1 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + movge r0, #0x1 +_020D3D4C: + ands r0, r0, #0xFF + bne _020D3D94 + mov r0, r4 + bl OS_RestoreInterrupts + ldr r0, _020D3DC0 + ldrh r1, [r0, #0x34] + ldr r3, [r0] + orr r1, r1, #0x2 + strh r1, [r0, #0x34] + cmp r3, #0x0 + ldmeqia sp!, {r4-r6, lr} + bxeq lr + mov r0, #0x1 + mov r1, #0x4 + mov r2, #0x0 + blx r3 + ldmia sp!, {r4-r6, lr} + bx lr +_020D3D94: + ldr r1, _020D3DC0 + mov r0, r4 + ldrh r2, [r1, #0x36] + orr r2, r2, #0x2 + strh r2, [r1, #0x36] + ldrh r2, [r1, #0x34] + bic r2, r2, #0x2 + strh r2, [r1, #0x34] + bl OS_RestoreInterrupts + ldmia sp!, {r4-r6, lr} + bx lr _020D3DC0: .word 0x021D5474 _020D3DC4: .word 0x02000100 -_020D3DC8: - .byte 0x00, 0x00, 0x01, 0x01 +_020D3DC8: .word 0x01010000 arm_func_start TP_WaitRawResult TP_WaitRawResult: ; 0x020D3DCC @@ -11158,15 +12351,40 @@ TP_RequestSamplingAsync: ; 0x020D3E24 mov r2, #0x0 bl PXI_SendWordByFifo _020D3E40: - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0x50, 0xE3 - .byte 0x0F, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x31, 0xE5, 0xFF, 0xEB, 0x5C, 0x00, 0x9F, 0xE5 - .byte 0xB4, 0x13, 0xD0, 0xE1, 0x00, 0x30, 0x90, 0xE5, 0x01, 0x10, 0x81, 0xE3, 0xB4, 0x13, 0xC0, 0xE1 - .byte 0x00, 0x00, 0x53, 0xE3, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1, 0x10, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xB6, 0x23, 0xD1, 0xE1 - .byte 0x01, 0x20, 0x82, 0xE3, 0xB6, 0x23, 0xC1, 0xE1, 0xB4, 0x23, 0xD1, 0xE1, 0x01, 0x20, 0xC2, 0xE3 - .byte 0xB4, 0x23, 0xC1, 0xE1, 0x1A, 0xE5, 0xFF, 0xEB, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x74, 0x54, 0x1D, 0x02 + cmp r0, #0x0 + movge r0, #0x1 + movlt r0, #0x0 + cmp r0, #0x0 + bne _020D3E94 + mov r0, r4 + bl OS_RestoreInterrupts + ldr r0, _20D3EC0 + ldrh r1, [r0, #0x34] + ldr r3, [r0] + orr r1, r1, #0x1 + strh r1, [r0, #0x34] + cmp r3, #0x0 + ldmeqia sp!, {r4, lr} + bxeq lr + mov r0, #0x0 + mov r2, r0 + mov r1, #0x4 + blx r3 + ldmia sp!, {r4, lr} + bx lr +_020D3E94: + ldr r1, _20D3EC0 + mov r0, r4 + ldrh r2, [r1, #0x36] + orr r2, r2, #0x1 + strh r2, [r1, #0x36] + ldrh r2, [r1, #0x34] + bic r2, r2, #0x1 + strh r2, [r1, #0x34] + bl OS_RestoreInterrupts + ldmia sp!, {r4, lr} + bx lr +_20D3EC0: .word 0x021D5474 arm_func_start TP_SetCalibrateParam TP_SetCalibrateParam: ; 0x020D3EC4 @@ -11291,7 +12509,8 @@ _020D405C: str r12, [sp, #0x10] bl TP_CalcCalibrateParam _020D4078: - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A + cmp r0, #0 + beq _020D40A4 _020D4080: mov r0, #0x0 strh r0, [r4, #0x0] @@ -11303,8 +12522,10 @@ _020D4080: ldmia sp!, {r4-r6,lr} bx lr _020D40A4: - .byte 0x01, 0x00, 0xA0, 0xE3, 0x18, 0xD0, 0x8D, 0xE2, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + mov r0, #0x1 + add sp, sp, #0x18 + ldmia sp!, {r4-r6,lr} + bx lr _020D40B4: .word 0x027FFC80 arm_func_start TP_Init @@ -11331,17 +12552,22 @@ TP_Init: ; 0x020D40B8 strh r1, [r0, #0x34] mov r5, #0x6 mov r4, #0x1 +_020D4110: mov r0, r5 mov r1, r4 bl PXI_IsCallbackReady _020D411C: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0xFA, 0xFF, 0xFF, 0x0A, 0x18, 0x10, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE3, 0x22, 0xEF, 0xFF, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + beq _020D4110 + ldr r1, _020D4144 + mov r0, #0x6 + bl PXI_SetFifoRecvCallback + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr _020D413C: .word 0x021D5470 _020D4140: .word 0x021D5474 -_020D4144: - .byte 0x48, 0x41, 0x0D, 0x02 +_020D4144: .word FUN_020D4148 arm_func_start FUN_020D4148 FUN_020D4148: ; 0x020D4148 @@ -11433,28 +12659,98 @@ _020D427C: addls pc, pc, r1, lsl #0x2 b _020D43EC _020D429C: - .byte 0x03, 0x00, 0x00, 0xEA - .byte 0x51, 0x00, 0x00, 0xEA, 0x39, 0x00, 0x00, 0xEA, 0x3A, 0x00, 0x00, 0xEA, 0x35, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A - .byte 0x02, 0x00, 0x50, 0xE3, 0x30, 0x11, 0x9F, 0x05, 0x00, 0x20, 0xA0, 0x03, 0xB2, 0x23, 0xC1, 0x01 - .byte 0x1B, 0x00, 0x00, 0xEA, 0x24, 0x11, 0x9F, 0xE5, 0x24, 0x31, 0x9F, 0xE5, 0xB0, 0xC0, 0xD1, 0xE1 - .byte 0x14, 0x11, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0xB4, 0xC0, 0xCD, 0xE1, 0xB0, 0x30, 0xD3, 0xE1 - .byte 0xB6, 0x30, 0xCD, 0xE1, 0x04, 0xC0, 0x9D, 0xE5, 0xB2, 0x23, 0xC1, 0xE1, 0x8C, 0x33, 0xA0, 0xE1 - .byte 0x8C, 0x22, 0xA0, 0xE1, 0x0C, 0xEA, 0xA0, 0xE1, 0x0C, 0xC4, 0xA0, 0xE1, 0xA3, 0x3F, 0xA0, 0xE1 - .byte 0x22, 0x2F, 0xA0, 0xE1, 0x2E, 0xEA, 0xA0, 0xE1, 0x2C, 0xCA, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2 - .byte 0xFF, 0x20, 0x02, 0xE2, 0xB4, 0xE0, 0xC1, 0xE1, 0xB6, 0xC0, 0xC1, 0xE1, 0xB8, 0x30, 0xC1, 0xE1 - .byte 0xBA, 0x20, 0xC1, 0xE1, 0x02, 0x00, 0x00, 0xEA, 0xBC, 0x10, 0x9F, 0xE5, 0x02, 0x20, 0xA0, 0xE3 - .byte 0xB2, 0x23, 0xC1, 0xE1, 0xB0, 0x10, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0xB6, 0xC3, 0xD1, 0xE1 - .byte 0x12, 0x20, 0xE0, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0x02, 0x20, 0x0C, 0xE0, 0x00, 0x00, 0x53, 0xE3 - .byte 0xB6, 0x23, 0xC1, 0xE1, 0x08, 0xD0, 0x8D, 0x02, 0x10, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE1, 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0xD0, 0x8D, 0xE2 - .byte 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x03, 0x40, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA - .byte 0x01, 0x40, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x02, 0x40, 0xA0, 0xE3, 0x58, 0x10, 0x9F, 0xE5 - .byte 0x01, 0xE0, 0xA0, 0xE3, 0xB4, 0xC3, 0xD1, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0x1E, 0x20, 0xE0, 0xE1 - .byte 0x1E, 0xC0, 0x8C, 0xE1, 0xB4, 0xC3, 0xC1, 0xE1, 0xB6, 0xC3, 0xD1, 0xE1, 0x00, 0x00, 0x53, 0xE3 - .byte 0x08, 0xD0, 0x8D, 0x02, 0x02, 0x20, 0x0C, 0xE0, 0xB6, 0x23, 0xC1, 0xE1, 0x10, 0x40, 0xBD, 0x08 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0xFF, 0x10, 0x04, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + b _020D42B0 + b _020D43EC + b _020D4390 + b _020D4398 + b _020D4388 +_020D42B0: + cmp r0, #0x0 + beq _020D42D4 + cmp r0, #0x1 + beq _020D4338 + cmp r0, #0x2 + ldreq r1, _020D43FC + moveq r2, #0x0 + streqh r2, [r1, #0x32] + b _020D4344 +_020D42D4: + ldr r1, _020D4400 + ldr r3, _020D4404 + ldrh ip, [r1] + ldr r1, _020D43FC + mov r2, #0x0 + strh ip, [sp, #0x4] + ldrh r3, [r3] + strh r3, [sp, #0x6] + ldr ip, [sp, #0x4] + strh r2, [r1, #0x32] + mov r3, ip, lsl #0x7 + mov r2, ip, lsl #0x5 + mov lr, ip, lsl #0x14 + mov ip, ip, lsl #0x8 + mov r3, r3, lsr #0x1F + mov r2, r2, lsr #0x1E + mov lr, lr, lsr #0x14 + mov ip, ip, lsr #0x14 + and r3, r3, #0xFF + and r2, r2, #0xFF + strh lr, [r1, #0x4] + strh ip, [r1, #0x6] + strh r3, [r1, #0x8] + strh r2, [r1, #0xA] + b _020D4344 +_020D4338: + ldr r1, _020D43FC + mov r2, #0x2 + strh r2, [r1, #0x32] +_020D4344: + ldr r1, _020D43FC + mov r2, #0x1 + ldrh ip, [r1, #0x36] + mvn r2, r2, lsl r0 + ldr r3, [r1] + and r2, ip, r2 + cmp r3, #0x0 + strh r2, [r1, #0x36] + addeq sp, sp, #0x8 + ldmeqia sp!, {r4, lr} + bxeq lr + mov r1, #0x0 + mov r2, r1 + blx r3 + add sp, sp, #0x8 + ldmia sp!, {r4, lr} + bx lr +_020D4388: + mov r4, #0x3 + b _020D439C +_020D4390: + mov r4, #0x1 + b _020D439C +_020D4398: + mov r4, #0x2 +_020D439C: + ldr r1, _020D43FC + mov lr, #0x1 + ldrh ip, [r1, #0x34] + ldr r3, [r1] + mvn r2, lr, lsl r0 + orr ip, ip, lr, lsl r0 + strh ip, [r1, #0x34] + ldrh ip, [r1, #0x36] + cmp r3, #0x0 + addeq sp, sp, #0x8 + and r2, ip, r2 + strh r2, [r1, #0x36] + ldmeqia sp!, {r4, lr} + bxeq lr + and r1, r4, #0xff + mov r2, #0x0 + blx r3 + add sp, sp, #0x8 + ldmia sp!, {r4, lr} + bx lr _020D43EC: bl OS_Terminate add sp, sp, #0x8 @@ -11493,8 +12789,12 @@ MicStopAutoSampling: mov r2, #0x0 bl PXI_SendWordByFifo _020D4448: - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3 - .byte 0x00, 0x00, 0xA0, 0xB3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + movge r0, #0x1 + movlt r0, #0x0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr _020D4460: .word 0x03004200 arm_func_start MicStartAutoSampling @@ -11509,26 +12809,72 @@ MicStartAutoSampling: ; 0x020D4464 mov r2, #0x0 bl PXI_SendWordByFifo _020D4488: - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3 - .byte 0x70, 0x40, 0xBD, 0xB8, 0x1E, 0xFF, 0x2F, 0xB1, 0x26, 0x08, 0xA0, 0xE1, 0x01, 0x18, 0x80, 0xE3 - .byte 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x0C, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xB8, 0x1E, 0xFF, 0x2F, 0xB1, 0xC4, 0x10, 0x9F, 0xE5 - .byte 0x09, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0x06, 0xE0, 0x02, 0x18, 0x81, 0xE3, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x02, 0xEE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xB8 - .byte 0x1E, 0xFF, 0x2F, 0xB1, 0x25, 0x08, 0xA0, 0xE1, 0x03, 0x18, 0x80, 0xE3, 0x09, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x20, 0xA0, 0xE3, 0xF9, 0xED, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3 - .byte 0x70, 0x40, 0xBD, 0xB8, 0x1E, 0xFF, 0x2F, 0xB1, 0x78, 0x10, 0x9F, 0xE5, 0x09, 0x00, 0xA0, 0xE3 - .byte 0x01, 0x10, 0x05, 0xE0, 0x01, 0x17, 0x81, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xEF, 0xED, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xB8, 0x1E, 0xFF, 0x2F, 0xB1 - .byte 0x24, 0x08, 0xA0, 0xE1, 0x05, 0x18, 0x80, 0xE3, 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 - .byte 0xE6, 0xED, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xB8 - .byte 0x1E, 0xFF, 0x2F, 0xB1, 0x2C, 0x00, 0x9F, 0xE5, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x04, 0xE0 - .byte 0x01, 0x10, 0x80, 0xE1, 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xDB, 0xED, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + mov r0, r6, lsr #0x10 + orr r1, r0, #0x10000 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + ldr r1, _020D4588 + mov r0, #0x9 + and r1, r6, r1 + orr r1, r1, #0x20000 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + mov r0, r5, lsr #0x10 + orr r1, r0, #0x30000 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + ldr r1, _020D4588 + mov r0, #0x9 + and r1, r5, r1 + orr r1, r1, #0x40000 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + mov r0, r4, lsr #0x10 + orr r1, r0, #0x50000 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + ldr r0, _020D4588 + ldr r1, _020D458C + and r0, r4, r0 + orr r1, r0, r1 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movge r0, #0x1 + movlt r0, #0x0 + ldmia sp!, {r4-r6, lr} + bx lr _020D4584: .word 0x02004100 -_020D4588: - .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01 +_020D4588: .word 0x0000FFFF +_020D458C: .word 0x01060000 arm_func_start MicDoSampling MicDoSampling: ; 0x020D4590 @@ -11540,9 +12886,12 @@ MicDoSampling: ; 0x020D4590 mov r0, #0x9 bl PXI_SendWordByFifo _020D45AC: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0xA0, 0xA3, 0x00, 0x00, 0xA0, 0xB3, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + movge r0, #0x1 + movlt r0, #0x0 + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr _020D45C4: .word 0x03004000 arm_func_start MicCommonCallback @@ -11576,12 +12925,29 @@ _020D4610: addls pc, pc, r1, lsl #0x2 b _020D4670 _020D4634: - .byte 0x03, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA - .byte 0x06, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x00, 0x00, 0xEA - .byte 0x04, 0x00, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA - .byte 0x05, 0x00, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA + b _020D4648 + b _020D4650 + b _020D4658 + b _020D4660 + b _020D4668 +_020D4648: + mov r0, #0x0 + b _020D4674 +_020D4650: + mov r0, #0x4 + b _020D4674 +_020D4658: + mov r0, #0x2 + b _020D4674 +_020D4660: + mov r0, #0x5 + b _020D4674 +_020D4668: + mov r0, #0x1 + b _020D4674 _020D4670: mov r0, #0x6 +_020D4674: cmp r2, #0x51 bne _020D46A0 ldr r1, _020D4700 ; =0x021D54B0 @@ -11678,8 +13044,12 @@ _020D4794: str r4, [r0, #0x8] bl MicStopAutoSampling _020D47B0: - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x03, 0x00, 0xA0, 0x03, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + movne r0, #0x0 + moveq r0, #0x3 + add sp, sp, #0x4 + ldmia sp!, {r4-r5, lr} + bx lr _020D47C8: .word 0x021D54B0 arm_func_start MIC_StartAutoSampling @@ -11739,27 +13109,75 @@ MIC_StartAutoSamplingAsync: ; 0x020D4810 addls pc, pc, r0, lsl #0x2 b _020D48D8 _020D4890: - .byte 0x04, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA - .byte 0x08, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x00, 0x10, 0xA0, 0xE3, 0x0D, 0x00, 0x00, 0xEA - .byte 0x01, 0x10, 0xA0, 0xE3, 0x0B, 0x00, 0x00, 0xEA, 0x02, 0x10, 0xA0, 0xE3, 0x09, 0x00, 0x00, 0xEA - .byte 0x03, 0x10, 0xA0, 0xE3, 0x07, 0x00, 0x00, 0xEA, 0x05, 0x10, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA - .byte 0x07, 0x10, 0xA0, 0xE3, 0x03, 0x00, 0x00, 0xEA + b _020D48A8 + b _020D48B0 + b _020D48B8 + b _020D48C0 + b _020D48C8 + b _020D48D0 +_020D48A8: + mov r1, #0x0 + b _020D48E8 +_020D48B0: + mov r1, #0x1 + b _020D48E8 +_020D48B8: + mov r1, #0x2 + b _020D48E8 +_020D48C0: + mov r1, #0x3 + b _020D48E8 +_020D48C8: + mov r1, #0x5 + b _020D48E8 +_020D48D0: + mov r1, #0x7 + b _020D48E8 _020D48D8: add sp, sp, #0x4 mov r0, #0x2 ldmia sp!, {r4-r7,lr} bx lr _020D48E8: - .byte 0x10, 0x00, 0x97, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x10, 0x00, 0x81, 0x13, 0xFF, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x01, 0x02, 0xFF, 0x40, 0x00, 0xE2 - .byte 0x82, 0xE2, 0xFF, 0xEB, 0x70, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0x52, 0xE3 - .byte 0x04, 0x00, 0x00, 0x0A, 0x82, 0xE2, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5 - .byte 0x7B, 0xE2, 0xFF, 0xEB, 0x40, 0x00, 0x9F, 0xE5, 0x04, 0x30, 0xA0, 0xE1, 0x04, 0x60, 0x80, 0xE5 - .byte 0x08, 0x50, 0x80, 0xE5, 0x14, 0x10, 0x97, 0xE5, 0x10, 0x10, 0x80, 0xE5, 0x18, 0x10, 0x97, 0xE5 - .byte 0x14, 0x10, 0x80, 0xE5, 0x04, 0x00, 0x97, 0xE5, 0x08, 0x10, 0x97, 0xE5, 0x0C, 0x20, 0x97, 0xE5 - .byte 0xBF, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x03, 0x00, 0xA0, 0x03 - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02 + ldr r0, [r7, #0x10] + cmp r0, #0x0 + orrne r0, r1, #0x10 + andne r0, r0, #0xff + andeq r0, r1, #0xff + and r4, r0, #0xff + bl OS_DisableInterrupts + ldr r1, _020D497C + ldr r2, [r1] + cmp r2, #0x0 + beq _020D4928 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020D4928: + mov r2, #0x1 + str r2, [r1] + bl OS_RestoreInterrupts + ldr r0, _020D497C + mov r3, r4 + str r6, [r0, #0x4] + str r5, [r0, #0x8] + ldr r1, [r7, #0x14] + str r1, [r0, #0x10] + ldr r1, [r7, #0x18] + str r1, [r0, #0x14] + ldr r0, [r7, #0x4] + ldr r1, [r7, #0x8] + ldr r2, [r7, #0xC] + bl MicStartAutoSampling + cmp r0, #0x0 + movne r0, #0x0 + moveq r0, #0x3 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_020D497C: .word 0x021D54B0 arm_func_start MIC_DoSamplingAsync MIC_DoSamplingAsync: ; 0x020D4980 @@ -11777,23 +13195,55 @@ MIC_DoSamplingAsync: ; 0x020D4980 addls pc, pc, r0, lsl #0x2 b _020D49E4 _020D49B4: - .byte 0x02, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA - .byte 0x05, 0x00, 0x00, 0xEA, 0x00, 0x40, 0xA0, 0xE3, 0x09, 0x00, 0x00, 0xEA, 0x01, 0x40, 0xA0, 0xE3 - .byte 0x07, 0x00, 0x00, 0xEA, 0x02, 0x40, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA, 0x03, 0x40, 0xA0, 0xE3 - .byte 0x03, 0x00, 0x00, 0xEA + b _020D49C4 + b _020D49CC + b _020D49D4 + b _020D49DC +_020D49C4: + mov r4, #0x0 + b _020D49F4 +_020D49CC: + mov r4, #0x1 + b _020D49F4 +_020D49D4: + mov r4, #0x2 + b _020D49F4 +_020D49DC: + mov r4, #0x3 + b _020D49F4 _020D49E4: add sp, sp, #0x4 mov r0, #0x2 ldmia sp!, {r4-r7,lr} bx lr _020D49F4: - .byte 0x45, 0xE2, 0xFF, 0xEB, 0x58, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x45, 0xE2, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x81, 0xE5, 0x3E, 0xE2, 0xFF, 0xEB, 0x28, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x60, 0x81, 0xE5, 0x08, 0x50, 0x81, 0xE5, 0x18, 0x70, 0x81, 0xE5, 0xD3, 0xFE, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x03, 0x00, 0xA0, 0x03, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x54, 0x1D, 0x02 + bl OS_DisableInterrupts + ldr r1, _020D4A58 + ldr r2, [r1] + cmp r2, #0x0 + beq _020D4A1C + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020D4A1C: + mov r2, #0x1 + str r2, [r1] + bl OS_RestoreInterrupts + ldr r1, _020D4A58 + mov r0, r4 + str r6, [r1, #0x4] + str r5, [r1, #0x8] + str r7, [r1, #0x18] + bl MicDoSampling + cmp r0, #0x0 + movne r0, #0x0 + moveq r0, #0x3 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_020D4A58: .word 0x021D54B0 arm_func_start MIC_Init MIC_Init: ; 0x020D4A5C @@ -11814,18 +13264,26 @@ MIC_Init: ; 0x020D4A5C bl PXI_Init mov r5, #0x9 mov r4, #0x1 +_020D4AA0: mov r0, r5 mov r1, r4 bl PXI_IsCallbackReady _020D4AAC: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0xFA, 0xFF, 0xFF, 0x0A, 0x24, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x20, 0x10, 0x9F, 0xE5 - .byte 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0xBB, 0xEC, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x30, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + beq _020D4AA0 + ldr r2, _020D4AE0 + mov r3, #0x0 + ldr r1, _020D4AE4 + mov r0, #0x9 + str r3, [r2] + bl PXI_SetFifoRecvCallback + add sp, sp, #0x4 + ldmia sp!, {r4-r5, lr} + bx lr _020D4AD8: .word 0x021D54AC _020D4ADC: .word 0x021D54B0 -_020D4AE0: - .byte 0x90, 0xFF, 0x7F, 0x02, 0xC8, 0x45, 0x0D, 0x02 +_020D4AE0: .word 0x027FFF90 +_020D4AE4: .word MicCommonCallback arm_func_start PM_DeletePostSleepCallback PM_DeletePostSleepCallback: ; 0x020D4AE8 @@ -11882,13 +13340,30 @@ _020D4B58: bne _020D4B58 ldmia sp!, {r4,lr} bx lr -_020D4B78: - .byte 0x00, 0x00, 0x50, 0xE3, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x00, 0x30, 0x90, 0xE5, 0x03, 0x20, 0xA0, 0xE1, 0x00, 0x00, 0x53, 0xE3, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x01, 0x00, 0x53, 0xE1, 0x05, 0x00, 0x00, 0x1A, 0x02, 0x00, 0x53, 0xE1, 0x08, 0x10, 0x93, 0x05 - .byte 0x00, 0x10, 0x80, 0x05, 0x08, 0x00, 0x93, 0x15, 0x08, 0x00, 0x82, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x03, 0x20, 0xA0, 0xE1, 0x08, 0x30, 0x93, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0xF3, 0xFF, 0xFF, 0x1A - .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start FUN_020D4B78 +FUN_020D4B78: + cmp r0, #0x0 + bxeq lr + ldr r3, [r0] + mov r2, r3 + cmp r3, #0x0 + bxeq lr +_020D4B90: + cmp r3, r1 + bne _020D4BB0 + cmp r3, r2 + ldreq r1, [r3, #0x8] + streq r1, [r0] + ldrne r0, [r3, #0x8] + strne r0, [r2, #0x8] + bx lr +_020D4BB0: + mov r2, r3 + ldr r3, [r3, #0x8] + cmp r3, #0x0 + bne _020D4B90 + bx lr arm_func_start FUN_020D4BC4 FUN_020D4BC4: ; 0x020D4BC4 @@ -11929,9 +13404,15 @@ PM_GetLEDPattern: ; 0x020D4C20 add r2, sp, #0x0 bl PM_GetLEDPatternAsync _020D4C34: - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x0E, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmnefd sp!, {lr} + bxne lr + bl PMi_WaitBusy + ldr r0, [sp] + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr _020D4C58: .word 0x020D587C arm_func_start PM_GetLEDPatternAsync @@ -11942,10 +13423,21 @@ PM_GetLEDPatternAsync: mov r4, r2 bl PMi_Lock _020D4C70: - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x1C, 0x10, 0x9F, 0xE5, 0x1C, 0x00, 0x9F, 0xE5, 0x04, 0x50, 0x81, 0xE5, 0x08, 0x40, 0x81, 0xE5 - .byte 0x0C, 0x60, 0x81, 0xE5, 0x03, 0x01, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE4, 0x54, 0x1D, 0x02, 0x00, 0x67, 0x00, 0x03 + cmp r0, #0x0 + moveq r0, #0x1 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r1, _020D4CA4 + ldr r0, _020D4CA8 + str r5, [r1, #0x4] + str r4, [r1, #0x8] + str r6, [r1, #0xC] + bl PMi_SendPxiData + mov r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr +_020D4CA4: .word 0x021D54E4 +_020D4CA8: .word 0x03006700 arm_func_start PMi_SendLEDPatternCommand PMi_SendLEDPatternCommand: ; 0x020D4CAC @@ -11955,9 +13447,15 @@ PMi_SendLEDPatternCommand: ; 0x020D4CAC add r2, sp, #0x0 bl PMi_SendLEDPatternCommandAsync _020D4CC0: - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x00, 0x40, 0xBD, 0x18, 0x1E, 0xFF, 0x2F, 0x11 - .byte 0xEB, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x00, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmnefd sp!, {lr} + bxne lr + bl PMi_WaitBusy + ldr r0, [sp] + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr _020D4CE4: .word 0x020D587C arm_func_start PMi_SendLEDPatternCommandAsync @@ -11968,11 +13466,22 @@ PMi_SendLEDPatternCommandAsync: mov r4, r2 bl PMi_Lock _020D4CFC: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x03, 0x70, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01, 0x20, 0x00, 0x9F, 0xE5 - .byte 0x20, 0x10, 0x9F, 0xE5, 0xFF, 0x20, 0x06, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x04, 0x50, 0x81, 0xE5 - .byte 0x08, 0x40, 0x81, 0xE5, 0xDF, 0x00, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x40, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x66, 0x00, 0x03, 0xE4, 0x54, 0x1D, 0x02 + cmp r0, #0x0 + moveq r0, #0x1 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, _020D4D34 + ldr r1, _020D4D38 + and r2, r6, #0xff + orr r0, r2, r0 + str r5, [r1, #0x4] + str r4, [r1, #0x8] + bl PMi_SendPxiData + mov r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr +_020D4D34: .word 0x03006600 +_020D4D38: .word 0x021D54E4 arm_func_start PM_GetLCDPower PM_GetLCDPower: ; 0x020D4D3C @@ -12084,43 +13593,148 @@ PM_GoSleepMode: ; 0x020D4E68 strh r0, [r1, #0x0] bl OS_DisableInterrupts _020D4EA0: - .byte 0x00, 0x00, 0x8D, 0xE5, 0xE0, 0x01, 0x9F, 0xE5, 0xD9, 0xD3, 0xFF, 0xEB, 0x04, 0x00, 0x8D, 0xE5 - .byte 0x01, 0x07, 0xA0, 0xE3, 0xF6, 0xD3, 0xFF, 0xEB, 0x00, 0x00, 0x9D, 0xE5, 0x18, 0xE1, 0xFF, 0xEB - .byte 0xC0, 0x21, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x00, 0xD2, 0xE1, 0x08, 0x00, 0x1A, 0xE2 - .byte 0xB0, 0x10, 0xC2, 0xE1, 0x03, 0x00, 0x00, 0x0A, 0xB0, 0x01, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1 - .byte 0x02, 0x00, 0x50, 0xE3, 0x08, 0xA0, 0xCA, 0x03, 0x10, 0x00, 0x1A, 0xE2, 0x02, 0x00, 0x00, 0x0A - .byte 0xE5, 0x19, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x10, 0xA0, 0xCA, 0x03, 0x90, 0x01, 0x9F, 0xE5 - .byte 0x01, 0x13, 0xA0, 0xE3, 0x00, 0x70, 0x91, 0xE5, 0x00, 0x60, 0x90, 0xE5, 0x8A, 0xFF, 0xFF, 0xEB - .byte 0x08, 0x00, 0x8D, 0xE5, 0x0C, 0x00, 0x8D, 0xE2, 0x10, 0x10, 0x8D, 0xE2, 0x6D, 0x00, 0x00, 0xEB - .byte 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0xCF, 0x00, 0x00, 0xEB, 0x64, 0x21, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x92, 0xE5, 0x14, 0x00, 0x8D, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x14, 0x00, 0x9D, 0xE5 - .byte 0x01, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x92, 0xE5, 0x01, 0x23, 0xA0, 0xE3 - .byte 0x14, 0x00, 0x8D, 0xE5, 0x00, 0x00, 0x92, 0xE5, 0x34, 0x11, 0x9F, 0xE5, 0x03, 0x08, 0xC0, 0xE3 - .byte 0x00, 0x00, 0x82, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x01, 0x08, 0xC0, 0xE3, 0x00, 0x00, 0x81, 0xE5 - .byte 0x20, 0x21, 0x9F, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x14, 0x00, 0x9D, 0xE5, 0x01, 0x00, 0x50, 0xE1 - .byte 0xFB, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x92, 0xE5, 0x14, 0x00, 0x8D, 0xE5, 0x04, 0x21, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x92, 0xE5, 0x14, 0x00, 0x9D, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0x0A - .byte 0x0C, 0x00, 0x9D, 0xE5, 0x10, 0x10, 0x9D, 0xE5, 0x80, 0x02, 0x8A, 0xE1, 0x01, 0x03, 0x80, 0xE1 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x58, 0xA0, 0xE1, 0x0B, 0x00, 0x89, 0xE1, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x20, 0x98, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x09, 0x10, 0xA0, 0xE1, 0x7B, 0x01, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x1A, 0x19, 0xE2, 0xFF, 0xEB, 0xB8, 0x00, 0x9F, 0xE5 - .byte 0xE6, 0xE0, 0xFF, 0xEB, 0x08, 0x00, 0x1A, 0xE2, 0x03, 0x00, 0x00, 0x0A, 0xAC, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x06, 0x10, 0xE2, 0x01, 0x80, 0xA0, 0x13, 0x00, 0x00, 0x58, 0xE3 - .byte 0x0E, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x9D, 0xE5, 0x01, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A - .byte 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x54, 0xFF, 0xFF, 0xEB, 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0xC1, 0x00, 0x00, 0xEB - .byte 0x01, 0x13, 0xA0, 0xE3, 0x58, 0x00, 0x9F, 0xE5, 0x00, 0x70, 0x81, 0xE5, 0x00, 0x60, 0x80, 0xE5 - .byte 0xB2, 0xE0, 0xFF, 0xEB, 0x04, 0x00, 0x9D, 0xE5, 0x91, 0xD3, 0xFF, 0xEB, 0x00, 0x00, 0x9D, 0xE5 - .byte 0xB3, 0xE0, 0xFF, 0xEB, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x58, 0xE3, 0xB0, 0x00, 0xD1, 0xE1 - .byte 0xB0, 0x40, 0xC1, 0xE1, 0x00, 0x00, 0x00, 0x0A, 0x44, 0x00, 0x00, 0xEB, 0x30, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0xB3, 0xFE, 0xFF, 0xEB, 0x1C, 0xD0, 0x8D, 0xE2, 0xF0, 0x4F, 0xBD, 0xE8 - .byte 0x1E, 0xFF, 0x2F, 0xE1 + str r0, [sp] + ldr r0, _020D508C + bl OS_DisableIrqMask + str r0, [sp, #0x4] + mov r0, #0x40000 + bl OS_SetIrqMask + ldr r0, [sp] + bl OS_RestoreInterrupts + ldr r2, _020D5088 + mov r1, #0x1 + ldrh r0, [r2] + ands r0, sl, #0x8 + strh r1, [r2] + beq _020D4EE8 + ldr r0, _020D5090 + ldrh r0, [r0] + cmp r0, #0x2 + biceq sl, sl, #0x8 +_020D4EE8: + ands r0, sl, #0x10 + beq _020D4EFC + bl CTRDG_IsExisting + cmp r0, #0x0 + biceq sl, sl, #0x10 +_020D4EFC: + ldr r0, _020D5094 + mov r1, #0x4000000 + ldr r7, [r1] + ldr r6, [r0] + bl PM_GetLCDPower + str r0, [sp, #0x8] + add r0, sp, #0xC + add r1, sp, #0x10 + bl PM_GetBackLight + mov r0, #0x2 + mov r1, #0x0 + bl FUN_020D526C + ldr r2, _020D5098 + ldr r0, [r2] + str r0, [sp, #0x14] +_020D4F38: + ldr r1, [r2] + ldr r0, [sp, #0x14] + cmp r0, r1 + beq _020D4F38 + ldr r0, [r2] + mov r2, #0x4000000 + str r0, [sp, #0x14] + ldr r0, [r2] + ldr r1, _020D5094 + bic r0, r0, #0x30000 + str r0, [r2] + ldr r0, [r1] + bic r0, r0, #0x10000 + str r0, [r1] + ldr r2, _020D5098 +_020D4F74: + ldr r1, [r2] + ldr r0, [sp, #0x14] + cmp r0, r1 + beq _020D4F74 + ldr r0, [r2] + str r0, [sp, #0x14] + ldr r2, _020D5098 +_020D4F90: + ldr r1, [r2] + ldr r0, [sp, #0x14] + cmp r0, r1 + beq _020D4F90 + ldr r0, [sp, #0xC] + ldr r1, [sp, #0x10] + orr r0, sl, r0, lsl #0x5 + orr r0, r0, r1, lsl #0x6 + mov r0, r0, lsl #0x10 + mov r5, r0, lsr #0x10 + orr r0, r9, fp + mov r0, r0, lsl #0x10 + mov r9, r0, lsr #0x10 +_020D4FC4: + mov r0, r5 + mov r1, r9 + bl PMi_SendSleepStart + cmp r0, #0x0 + bne _020D4FC4 + bl OS_Halt + ldr r0, _020D509C + bl OS_SpinWait + ands r0, sl, #0x8 + beq _020D4FFC + ldr r0, _020D50A0 + ldr r0, [r0] + ands r0, r0, #0x100000 + movne r8, #0x1 +_020D4FFC: + cmp r8, #0x0 + bne _020D5040 + ldr r0, [sp, #0x8] + cmp r0, #0x1 + bne _020D5028 + mov r0, #0x1 + mov r1, r0 + mov r2, r0 + mov r3, #0x0 + bl PMi_SetLCDPower + b _020D5030 +_020D5028: + mov r0, #0x1 + bl PMi_SetLED +_020D5030: + mov r1, #0x4000000 + ldr r0, _020D5094 + str r7, [r1] + str r6, [r0] +_020D5040: + bl OS_DisableInterrupts + ldr r0, [sp, #0x4] + bl OS_SetIrqMask + ldr r0, [sp] + bl OS_RestoreInterrupts + ldr r1, _020D5088 + cmp r8, #0x0 + ldrh r0, [r1] + strh r4, [r1] + beq _020D506C + bl FUN_020D5180 +_020D506C: + ldr r0, _020D50A4 + ldr r0, [r0] + bl PMi_ExecuteList + add sp, sp, #0x1C + ldmia sp!, {r4-r11, lr} + bx lr _020D5084: .word 0x021D54D8 _020D5088: .word 0x04000208 -_020D508C: - .byte 0xFF, 0xFF, 0x3F, 0x00 - .byte 0x40, 0xFC, 0x7F, 0x02, 0x00, 0x10, 0x00, 0x04, 0x3C, 0xFC, 0x7F, 0x02, 0x00, 0x6A, 0x99, 0x00 - .byte 0x14, 0x02, 0x00, 0x04, 0xE0, 0x54, 0x1D, 0x02 +_020D508C: .word 0x003FFFFF +_020D5090: .word 0x027FFC40 +_020D5094: .word 0x04001000 +_020D5098: .word 0x027FFC3C +_020D509C: .word 0x00996A00 +_020D50A0: .word 0x04000214 +_020D50A4: .word 0x021D54E0 + arm_func_start PMi_SendPxiData PMi_SendPxiData: ; 0x020D50A8 @@ -12128,13 +13742,16 @@ PMi_SendPxiData: ; 0x020D50A8 mov r6, r0 mov r5, #0x8 mov r4, #0x0 +_020D50B8: mov r0, r5 mov r1, r6 mov r2, r4 bl PXI_SendWordByFifo _020D50C8: - .byte 0x00, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A - .byte 0x70, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 + cmp r0, #0 + bne _020D50B8 + ldmia sp!, {r4-r6, lr} + bx lr arm_func_start PM_GetBackLight PM_GetBackLight: ; 0x020D50D8 @@ -12146,13 +13763,27 @@ PM_GetBackLight: ; 0x020D50D8 mov r0, #0x0 bl PMi_ReadRegister _020D50F4: - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0xD0, 0x8D, 0x12, 0x30, 0x40, 0xBD, 0x18 - .byte 0x1E, 0xFF, 0x2F, 0x11, 0x00, 0x00, 0x55, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0xB0, 0x10, 0xDD, 0xE1 - .byte 0x08, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x10, 0x85, 0xE5 - .byte 0x00, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0x30, 0x40, 0xBD, 0x08, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0xB0, 0x10, 0xDD, 0xE1, 0x04, 0x10, 0x11, 0xE2, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03 - .byte 0x00, 0x10, 0x84, 0xE5, 0x04, 0xD0, 0x8D, 0xE2, 0x30, 0x40, 0xBD, 0xE8 -_020D5150: + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + cmp r5, #0x0 + beq _020D5120 + ldrh r1, [sp] + ands r1, r1, #0x8 + movne r1, #0x1 + moveq r1, #0x0 + str r1, [r5] +_020D5120: + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldrh r1, [sp] + ands r1, r1, #0x4 + movne r1, #0x1 + moveq r1, #0x0 + str r1, [r4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} bx lr - -; end before _020D5910: .word 0x021D54E4 diff --git a/asm/arm9_thumb.s b/asm/arm9_thumb.s index cd0fd83a..8e3a5b8e 100644 --- a/asm/arm9_thumb.s +++ b/asm/arm9_thumb.s @@ -110,7 +110,7 @@ FUN_02000EC8: ; 0x02000EC8 cmp r0, #0x1 bne _02000EE2 add r0, r4, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem _02000EE2: bl FUN_02000E9C pop {r4, pc} @@ -282,8 +282,8 @@ _02001024: _02001032: mov r1, #0x0 add r2, r1, #0x0 - blx FUN_020D4E68 - blx FUN_020D7D18 + blx PM_GoSleepMode + blx CARD_IsPulledOut cmp r0, #0x0 beq _02001048 blx FUN_020D5180 @@ -4615,7 +4615,7 @@ FUN_02002FD0: ; 0x02002FD0 mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 @@ -4694,13 +4694,13 @@ FUN_02003054: ; 0x02003054 lsl r4, r3, #0x1 add r1, r1, r4 add r2, r7, #0x0 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 add r1, r5, r6 ldr r1, [r1, #0x4] ldr r0, [sp, #0x0] add r1, r1, r4 add r2, r7, #0x0 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 pop {r3-r7, pc} .balign 4 @@ -4860,7 +4860,7 @@ _0200319A: lsl r0, r0, #0x1 add r0, r1, r0 ldr r1, [sp, #0x14] - blx FUN_020CE1E0 + blx MIi_CpuCopy16 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} @@ -4888,7 +4888,7 @@ FUN_020031B8: ; 0x020031B8 ldr r1, [r5, r6] add r0, r0, r4 add r1, r1, r7 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 ldr r0, [sp, #0x4] add r1, r5, r6 ldr r0, [r5, r0] @@ -4896,7 +4896,7 @@ FUN_020031B8: ; 0x020031B8 ldr r2, [sp, #0x0] add r0, r0, r4 add r1, r1, r7 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 add sp, #0x8 pop {r3-r7, pc} .balign 4 @@ -5643,7 +5643,7 @@ _02003750: _02003770: ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] - blx FUN_020CC15C + blx DC_FlushRange cmp r5, #0xd bls _0200377E _0200377C: @@ -5871,7 +5871,7 @@ _0200393A: ldr r0, [sp, #0x0] sub r2, r2, r5 lsl r2, r2, #0x1 - blx FUN_020CE1C8 + blx MIi_CpuClear16 _02003952: cmp r7, #0x0 beq _0200395A @@ -5886,7 +5886,7 @@ _0200395A: ldr r0, [sp, #0x0] sub r2, r2, r5 lsl r2, r2, #0x1 - blx FUN_020CE1C8 + blx MIi_CpuClear16 _0200396E: add sp, #0x8 pop {r3-r7, pc} @@ -6875,7 +6875,7 @@ _020040C4: .word 0x000BCD20 thumb_func_start FUN_020040C8 FUN_020040C8: ; 0x020040C8 push {r3, lr} - blx FUN_020D4A5C + blx MIC_Init mov r0, #0x1 blx FUN_020D5168 mov r0, #0x2 @@ -7957,22 +7957,22 @@ _0200490E: thumb_func_start FUN_02004914 FUN_02004914: ; 0x02004914 - ldr r3, _02004918 ; =FUN_020D47CC + ldr r3, _02004918 ; =MIC_StartAutoSampling bx r3 .balign 4 -_02004918: .word FUN_020D47CC +_02004918: .word MIC_StartAutoSampling thumb_func_start FUN_0200491C FUN_0200491C: ; 0x0200491C push {r3, lr} bl FUN_02003D30 - blx FUN_020D4718 + blx MIC_StopAutoSampling pop {r3, pc} thumb_func_start FUN_02004928 FUN_02004928: ; 0x02004928 push {r3, lr} - blx FUN_020D4980 + blx MIC_DoSamplingAsync pop {r3, pc} thumb_func_start FUN_02004930 @@ -8440,7 +8440,7 @@ FUN_02004CB4: ; 0x02004CB4 bl FUN_02003D38 mov r1, #0x0 mov r2, #0x1c - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x3 bl FUN_02003D38 add r4, r0, #0x0 @@ -8760,7 +8760,7 @@ _02004F02: pop {r3-r5, pc} _02004F18: mov r1, #0x0 - blx FUN_020CF768 + blx SND_GetWaveDataAddress str r0, [r4, #0x0] pop {r3-r5, pc} nop @@ -9081,10 +9081,10 @@ _02005130: _0200514A: ldr r1, [sp, #0x0] add r0, r5, #0x0 - blx FUN_020CC15C + blx DC_FlushRange ldr r1, [sp, #0x0] add r0, r6, #0x0 - blx FUN_020CC15C + blx DC_FlushRange _0200515A: add sp, #0x30 pop {r3-r7, pc} @@ -10788,7 +10788,7 @@ FUN_02005F3C: ; 0x02005F3C _02005F4A: ldr r1, [r4, #0x0] mov r0, #0x0 - blx FUN_020D2040 + blx FS_UnloadOverlay cmp r0, #0x1 beq _02005F5A bl ErrorHandling @@ -10830,7 +10830,7 @@ FUN_02005F90: ; 0x02005F90 add r2, r0, #0x0 add r0, sp, #0x0 mov r1, #0x0 - blx FUN_020D24EC + blx FS_LoadOverlayInfo cmp r0, #0x1 beq _02005FA6 bl ErrorHandling @@ -10913,7 +10913,7 @@ _0200602C: bhi _0200603C mov r0, #0x0 mvn r0, r0 - blx FUN_020D1D30 + blx FS_SetDefaultDMA str r0, [sp, #0x0] _0200603C: cmp r4, #0x0 @@ -10949,7 +10949,7 @@ _02006076: cmp r6, #0x1 bhi _02006080 ldr r0, [sp, #0x0] - blx FUN_020D1D30 + blx FS_SetDefaultDMA _02006080: cmp r4, #0x0 bne _0200608C @@ -11058,7 +11058,7 @@ FUN_02006130: ; 0x02006130 add r0, sp, #0x0 mov r1, #0x0 add r2, r3, #0x0 - blx FUN_020D24EC + blx FS_LoadOverlayInfo cmp r0, #0x0 bne _02006152 bl ErrorHandling @@ -11080,10 +11080,10 @@ _02006152: thumb_func_start FUN_02006168 FUN_02006168: ; 0x02006168 - ldr r3, _0200616C ; =FUN_020D2094 + ldr r3, _0200616C ; =FS_LoadOverlay bx r3 .balign 4 -_0200616C: .word FUN_020D2094 +_0200616C: .word FS_LoadOverlay thumb_func_start FUN_02006170 FUN_02006170: ; 0x02006170 @@ -11093,7 +11093,7 @@ FUN_02006170: ; 0x02006170 add r2, r1, #0x0 add r0, sp, #0x0 add r1, r3, #0x0 - blx FUN_020D24EC + blx FS_LoadOverlayInfo cmp r0, #0x0 bne _0200618A add sp, #0x2c @@ -11101,7 +11101,7 @@ FUN_02006170: ; 0x02006170 pop {pc} _0200618A: add r0, sp, #0x0 - blx FUN_020D23B4 + blx FS_LoadOverlayImage cmp r0, #0x0 bne _0200619A add sp, #0x2c @@ -11109,7 +11109,7 @@ _0200618A: pop {pc} _0200619A: add r0, sp, #0x0 - blx FUN_020D2210 + blx FS_StartOverlay mov r0, #0x1 add sp, #0x2c pop {pc} @@ -11123,7 +11123,7 @@ FUN_020061A8: ; 0x020061A8 add r2, r1, #0x0 add r0, sp, #0x0 add r1, r3, #0x0 - blx FUN_020D24EC + blx FS_LoadOverlayInfo cmp r0, #0x0 bne _020061C2 add sp, #0x74 @@ -11131,16 +11131,16 @@ FUN_020061A8: ; 0x020061A8 pop {pc} _020061C2: add r0, sp, #0x2c - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x0 add r1, sp, #0x2c - blx FUN_020D2454 + blx FS_LoadOverlayImageAsync add r0, sp, #0x2c - blx FUN_020D182C + blx FS_WaitAsync add r0, sp, #0x2c - blx FUN_020D18FC + blx FS_CloseFile add r0, sp, #0x0 - blx FUN_020D2210 + blx FS_StartOverlay mov r0, #0x1 add sp, #0x74 pop {pc} @@ -11338,31 +11338,31 @@ FUN_02006314: ; 0x02006314 add r0, sp, #0x18 add r5, r2, #0x0 str r3, [sp, #0x4] - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x18 add r1, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile add r0, sp, #0x18 mov r1, #0xc mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile ldr r4, [sp, #0x14] add r0, sp, #0x18 add r1, r4, #0x4 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0x8 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x8 ldrh r0, [r0, #0x0] cmp r0, r5 @@ -11374,26 +11374,26 @@ _0200637A: add r6, r4, r0 add r0, sp, #0x18 add r1, r6, #0x4 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r4, #0xc lsl r1, r5, #0x3 add r0, sp, #0x18 add r1, r4, r1 mov r2, #0x0 ldr r7, [sp, #0x14] - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x10 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0xc mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r2, r6, r7 ldr r1, [sp, #0x10] add r2, #0x8 @@ -11402,7 +11402,7 @@ _0200637A: add r0, sp, #0x18 add r1, r1, r2 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r0, [sp, #0x78] cmp r0, #0x0 bne _020063D6 @@ -11418,9 +11418,9 @@ _020063E0: ldr r1, [sp, #0x0] ldr r2, [sp, #0x14] add r0, sp, #0x18 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 - blx FUN_020D18FC + blx FS_CloseFile add sp, #0x60 pop {r3-r7, pc} @@ -11439,31 +11439,31 @@ FUN_020063F4: ; 0x020063F4 add r0, sp, #0x18 str r2, [sp, #0x0] str r3, [sp, #0x4] - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x18 add r1, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile add r0, sp, #0x18 mov r1, #0xc mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile ldr r4, [sp, #0x14] add r0, sp, #0x18 add r1, r4, #0x4 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0x8 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x8 ldrh r0, [r0, #0x0] cmp r0, r5 @@ -11475,26 +11475,26 @@ _0200645A: add r6, r4, r0 add r0, sp, #0x18 add r1, r6, #0x4 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r4, #0xc lsl r1, r5, #0x3 add r0, sp, #0x18 add r1, r4, r1 mov r2, #0x0 ldr r7, [sp, #0x14] - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x10 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0xc mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r2, r6, r7 ldr r1, [sp, #0x10] add r2, #0x8 @@ -11503,7 +11503,7 @@ _0200645A: add r0, sp, #0x18 add r1, r1, r2 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r0, [sp, #0x78] cmp r0, #0x0 bne _020064B6 @@ -11532,9 +11532,9 @@ _020064D8: ldr r2, [sp, #0x14] add r0, sp, #0x18 add r1, r4, #0x0 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 - blx FUN_020D18FC + blx FS_CloseFile add r0, r4, #0x0 add sp, #0x60 pop {r3-r7, pc} @@ -11649,33 +11649,33 @@ FUN_020065A4: ; 0x020065A4 add r0, sp, #0x0 strh r1, [r0, #0x0] add r0, sp, #0x10 - blx FUN_020D1C94 + blx FS_InitFile ldr r1, _0200666C ; =0x021058A0 lsl r2, r4, #0x2 ldr r1, [r1, r2] add r0, sp, #0x10 - blx FUN_020D1944 + blx FS_OpenFile add r0, sp, #0x10 mov r1, #0xc mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0xc mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile ldr r4, [sp, #0xc] add r0, sp, #0x10 add r1, r4, #0x4 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0xc mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x10 add r1, sp, #0x0 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x0 ldrh r0, [r0, #0x0] cmp r0, r5 @@ -11687,33 +11687,33 @@ _0200660A: add r6, r4, r0 add r0, sp, #0x10 add r1, r6, #0x4 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0xc mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r4, #0xc lsl r1, r5, #0x3 add r0, sp, #0x10 add r1, r4, r1 mov r2, #0x0 ldr r7, [sp, #0xc] - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0x8 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x10 add r1, sp, #0x4 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r2, r6, r7 ldr r1, [sp, #0x8] add r2, #0x8 add r1, r2, r1 add r0, sp, #0x10 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] sub r0, r1, r0 @@ -11738,46 +11738,46 @@ FUN_02006670: ; 0x02006670 beq _020066EC mov r1, #0x0 str r1, [r4, #0x48] - blx FUN_020D1C94 + blx FS_InitFile ldr r1, _020066F0 ; =0x021058A0 lsl r2, r5, #0x2 ldr r1, [r1, r2] add r0, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile add r0, r4, #0x0 mov r1, #0xc mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0x48 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile ldr r1, [r4, #0x48] add r0, r4, #0x0 add r1, r1, #0x4 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r4, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0x50 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile ldr r1, [r4, #0x48] ldr r0, [sp, #0x0] mov r2, #0x0 add r5, r1, r0 add r0, r4, #0x0 add r1, r5, #0x4 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r4, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldr r0, [sp, #0x0] add r0, r5, r0 str r0, [r4, #0x4c] @@ -11791,7 +11791,7 @@ _020066F0: .word 0x021058A0 FUN_020066F4: ; 0x020066F4 push {r4, lr} add r4, r0, #0x0 - blx FUN_020D18FC + blx FS_CloseFile add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} @@ -11815,22 +11815,22 @@ _0200671A: add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x4 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldr r2, [r5, #0x4c] ldr r1, [sp, #0x4] add r2, #0x8 add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r2, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r6, #0x0 @@ -11843,7 +11843,7 @@ _0200671A: add r0, r5, #0x0 add r1, r4, #0x0 sub r2, r3, r2 - blx FUN_020D180C + blx FS_ReadFile _0200676C: add r0, r4, #0x0 add sp, #0x8 @@ -11869,28 +11869,28 @@ _0200678A: add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x4 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldr r2, [r5, #0x4c] ldr r1, [sp, #0x4] add r2, #0x8 add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r3, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r5, #0x0 add r1, r6, #0x0 sub r2, r3, r2 - blx FUN_020D180C + blx FS_ReadFile add sp, #0x8 pop {r4-r6, pc} @@ -11912,15 +11912,15 @@ _020067E4: add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x4 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldr r1, [sp, #0x0] ldr r0, [sp, #0x4] sub r0, r1, r0 @@ -11947,11 +11947,11 @@ _0200682A: add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldr r2, [r5, #0x4c] ldr r1, [sp, #0x0] add r2, #0x8 @@ -11959,11 +11959,11 @@ _0200682A: add r0, r5, #0x0 add r1, r6, r1 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r1, [sp, #0x18] add r0, r5, #0x0 add r2, r7, #0x0 - blx FUN_020D180C + blx FS_ReadFile pop {r3-r7, pc} .balign 4 @@ -12124,7 +12124,7 @@ _02006982: ldr r0, [sp, #0x8] add r1, r5, #0x0 ldr r0, [r0, #0xc] - blx FUN_020CC15C + blx DC_FlushRange cmp r4, #0x7 bhi _02006A14 add r0, r4, r4 @@ -12234,7 +12234,7 @@ _02006A60: ldr r0, [sp, #0x4] add r1, r4, #0x0 ldr r0, [r0, #0x14] - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [sp, #0x4] ldr r3, _02006A88 ; =0x020ECBA0 lsl r5, r5, #0x2 @@ -12581,7 +12581,7 @@ _02006CFC: beq _02006D10 add r0, r4, #0x0 add r1, r5, #0x0 - blx FUN_020CE528 + blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02006D10: @@ -12647,7 +12647,7 @@ _02006D7C: beq _02006D90 add r0, r4, #0x0 add r1, r5, #0x0 - blx FUN_020CE528 + blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02006D90: @@ -12700,7 +12700,7 @@ FUN_02006D98: ; 0x02006D98 ldr r1, [r4, r1] mov r0, #0x0 mov r2, #0x4 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r5, #0x0 mov r1, #0xc0 bl FUN_02016998 @@ -12710,7 +12710,7 @@ FUN_02006D98: ; 0x02006D98 ldr r1, [r4, r1] mov r0, #0x0 mov r2, #0x4 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r6, #0x0 add r5, r4, #0x0 add r7, r6, #0x0 @@ -12718,7 +12718,7 @@ _02006E12: add r0, r7, #0x0 add r1, r5, #0x0 mov r2, #0x98 - blx FUN_020CE240 + blx MIi_CpuClearFast add r6, r6, #0x1 add r5, #0x98 cmp r6, #0x4 @@ -12759,7 +12759,7 @@ _02006E12: ldrb r1, [r1, #0x0] ldr r0, [r4, r0] lsl r2, r2, #0xe - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 mov r7, #0xab ldr r6, _02006ECC ; =0x00005050 @@ -13410,14 +13410,14 @@ _0200734A: thumb_func_start FUN_0200737C FUN_0200737C: ; 0x0200737C add r2, r0, #0x0 - ldr r3, _0200738C ; =FUN_020CE3E0 + ldr r3, _0200738C ; =MI_CpuCopy8 add r2, #0x84 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0x14 bx r3 nop -_0200738C: .word FUN_020CE3E0 +_0200738C: .word MI_CpuCopy8 thumb_func_start FUN_02007390 FUN_02007390: ; 0x02007390 @@ -13493,7 +13493,7 @@ _02007408: mov r0, #0x0 add r1, r5, #0x0 mov r2, #0x98 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r1, [r4, r6] mov r0, #0x1 bic r1, r0 @@ -13622,7 +13622,7 @@ _02007408: add r1, r4, r6 add r1, #0x84 mov r2, #0x14 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _02007518: add r0, r4, r6 add sp, #0xc @@ -18763,7 +18763,7 @@ _02009A34: beq _02009A48 add r0, r4, #0x0 add r1, r5, #0x0 - blx FUN_020CE528 + blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02009A48: @@ -19883,11 +19883,11 @@ FUN_0200A2AC: ; 0x0200A2AC ldr r0, _0200A2CC ; =0x021C4694 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0200A2D0 ; =0x021C4674 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0200A2D4 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x3c] @@ -19908,7 +19908,7 @@ FUN_0200A2D8: ; 0x0200A2D8 ldr r0, _0200A30C ; =0x021C4694 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0200A310 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x3c] @@ -19919,7 +19919,7 @@ _0200A2F2: ldr r0, _0200A314 ; =0x021C4674 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0200A310 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x1c] @@ -20160,11 +20160,11 @@ FUN_0200A4C0: ; 0x0200A4C0 add r0, r1, #0x0 add r1, r3, #0x0 ldr r2, [r2, #0x4] - ldr r3, _0200A4D0 ; =FUN_020CE1E0 + ldr r3, _0200A4D0 ; =MIi_CpuCopy16 lsl r2, r2, #0x1 bx r3 nop -_0200A4D0: .word FUN_020CE1E0 +_0200A4D0: .word MIi_CpuCopy16 thumb_func_start FUN_0200A4D4 FUN_0200A4D4: ; 0x0200A4D4 @@ -20209,7 +20209,7 @@ FUN_0200A4D4: ; 0x0200A4D4 ldr r2, [sp, #0x4] add r0, r5, r0 add r1, r7, #0x0 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 ldr r1, _0200A57C ; =0x00091BD3 add r2, r4, #0x1 mul r1, r2 @@ -20296,7 +20296,7 @@ FUN_0200A584: ; 0x0200A584 ldr r2, [sp, #0x4] add r0, r5, r0 add r1, r7, #0x0 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 ldr r1, _0200A640 ; =0x00091BD3 add r2, r4, #0x1 mul r1, r2 @@ -23047,13 +23047,13 @@ _0200BAD8: add r0, r1, r0 add r1, r6, r5 mov r2, #0x20 - blx FUN_020CE210 + blx MIi_CpuCopy32 b _0200BB00 _0200BAF6: ldr r1, [sp, #0x0] add r0, r6, r5 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 _0200BB00: add r4, r4, #0x2 ldrh r1, [r4, #0x8] @@ -27818,7 +27818,7 @@ FUN_0200DEF4: ; 0x0200DEF4 add r7, r0, #0x0 add r0, r4, #0x0 lsl r1, r1, #0x8 - blx FUN_020CC15C + blx DC_FlushRange mov r2, #0x19 add r0, r4, #0x0 add r1, r7, #0x0 @@ -27844,7 +27844,7 @@ FUN_0200DEF4: ; 0x0200DEF4 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x20 - blx FUN_020CC15C + blx DC_FlushRange add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x20 @@ -36077,7 +36077,7 @@ _02011DC6: bl FUN_02011B20 add r0, r7, #0x0 add r1, r4, #0x0 - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [sp, #0x30] cmp r0, #0x1 bne _02011E08 @@ -36989,7 +36989,7 @@ _0201249C: add r1, r4, #0x0 ldr r0, [r0, #0xc] mov r2, #0x20 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 add r0, r5, #0x0 bl FUN_02016A18 add r0, r4, #0x0 @@ -37719,9 +37719,9 @@ _020129C6: FUN_020129C8: ; 0x020129C8 push {r3, lr} mov r0, #0x0 - blx FUN_020CD998 + blx MI_StopDma mov r0, #0x0 - blx FUN_020CDA1C + blx MI_WaitDma pop {r3, pc} thumb_func_start FUN_020129D8 @@ -37736,14 +37736,14 @@ FUN_020129D8: ; 0x020129D8 add r1, r6, #0x0 add r2, r5, #0x0 add r3, r4, #0x0 - blx FUN_020CDE04 + blx MI_HBlankDmaCopy32 pop {r4-r6, pc} _020129F2: mov r0, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 add r3, r4, #0x0 - blx FUN_020CDD90 + blx MI_HBlankDmaCopy16 pop {r4-r6, pc} thumb_func_start FUN_02012A00 @@ -37824,13 +37824,13 @@ _02012A4E: add r1, r5, #0x0 ldr r0, [r5, r0] lsl r2, r2, #0x8 - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r0, _02012AC0 ; =0x00000794 mov r2, #0x3 lsl r2, r2, #0x8 ldr r0, [r5, r0] add r1, r5, r2 - blx FUN_020CE1FC + blx MIi_CpuClear32 pop {r3-r7, pc} .balign 4 _02012AB0: .word 0x00000604 @@ -37914,7 +37914,7 @@ FUN_02012B30: ; 0x02012B30 mov r2, #0x3 ldr r0, [r4, r0] lsl r2, r2, #0x8 - blx FUN_020CE1FC + blx MIi_CpuClear32 _02012B5E: pop {r4, pc} .balign 4 @@ -38092,7 +38092,7 @@ _02012CA2: mov r1, #0x3 lsl r1, r1, #0x8 add r5, r0, #0x0 - blx FUN_020CC15C + blx DC_FlushRange mov r1, #0x79 lsl r1, r1, #0x4 ldr r1, [r4, r1] @@ -41385,14 +41385,14 @@ _0201434A: add r1, r4, #0x0 add r1, #0xc mov r2, #0x20 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 ldr r1, [sp, #0x0] ldr r0, [sp, #0x8] mov r2, #0x20 add r0, r1, r0 add r1, r4, #0x0 add r1, #0x2c - blx FUN_020CE1E0 + blx MIi_CpuCopy16 ldr r0, [sp, #0x4] mov r1, #0x1 str r0, [r4, #0x0] @@ -41645,7 +41645,7 @@ FUN_02014518: ; 0x02014518 mov r1, #0x0 mov r2, #0x78 add r6, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r2, _02014560 ; =0x0000019E mov r0, #0x0 mov r1, #0x1a @@ -42427,7 +42427,7 @@ FUN_02014AD4: ; 0x02014AD4 add r5, r0, #0x0 ldr r0, [r1, #0x14] ldr r1, [r1, #0x10] - blx FUN_020CC15C + blx DC_FlushRange ldr r3, [r4, #0x4] ldr r0, [r4, #0x10] str r0, [sp, #0x0] @@ -42455,7 +42455,7 @@ FUN_02014B10: ; 0x02014B10 ldr r0, [r4, #0x0] ldr r1, [r4, #0x10] ldr r0, [r0, #0xc] - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02014B34 @@ -42592,7 +42592,7 @@ FUN_02014BF4: ; 0x02014BF4 mov r1, #0x0 add r2, r6, #0x0 str r0, [r4, #0x0] - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 pop {r3-r7, pc} @@ -42656,7 +42656,7 @@ _02014C8C: add r0, r0, r4 mov r1, #0x0 lsl r2, r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r5, #0x0] mov r1, #0x1 add r0, r0, r4 @@ -43026,7 +43026,7 @@ _02014F3E: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x54 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x1 str r0, [r4, #0x0] mov r0, #0xc @@ -45142,7 +45142,7 @@ FUN_02015EA0: ; 0x02015EA0 orr r0, r2 str r0, [r3, r1] mov r0, #0x3 - blx FUN_020CDA1C + blx MI_WaitDma ldr r0, _02015ED0 ; =0x021C48B8 ldr r0, [r0, #0x1c] bl FUN_0201B5CC @@ -45164,24 +45164,24 @@ FUN_02015ED4: ; 0x02015ED4 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] - ldr r3, _02015EF0 ; =FUN_020CDA1C + ldr r3, _02015EF0 ; =MI_WaitDma mov r0, #0x3 bx r3 nop _02015EE8: .word 0x027E0000 _02015EEC: .word 0x00003FF8 -_02015EF0: .word FUN_020CDA1C +_02015EF0: .word MI_WaitDma thumb_func_start FUN_02015EF4 FUN_02015EF4: ; 0x02015EF4 push {r3, lr} mov r0, #0x1 - blx FUN_020C9E14 + blx OS_DisableIrqMask ldr r1, _02015F0C ; =FUN_02015ED4 mov r0, #0x1 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x1 - blx FUN_020C9E5C + blx OS_EnableIrqMask pop {r3, pc} .balign 4 _02015F0C: .word FUN_02015ED4 @@ -45263,7 +45263,7 @@ FUN_02015F80: ; 0x02015F80 bne _02015F9E ldr r0, [r2, #0x8] mov r0, #0x2 - blx FUN_020C9E14 + blx OS_DisableIrqMask mov r0, #0x0 blx FUN_020C5AF8 b _02015FB4 @@ -45271,9 +45271,9 @@ _02015F9E: ldr r0, [r2, #0x8] ldr r1, _02015FC4 ; =FUN_02015F6C mov r0, #0x2 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x2 - blx FUN_020C9E5C + blx OS_EnableIrqMask mov r0, #0x1 blx FUN_020C5AF8 _02015FB4: @@ -45291,7 +45291,7 @@ FUN_02015FC8: ; 0x02015FC8 push {r3, lr} sub sp, #0x30 add r0, sp, #0x10 - blx FUN_020CD754 + blx OS_GetLowEntropyData add r0, sp, #0x0 add r1, sp, #0x10 mov r2, #0x20 @@ -45330,7 +45330,7 @@ _02016010: .word 0x020EDB10 thumb_func_start InitSystemForTheGame InitSystemForTheGame: ; 0x02016014 push {r3-r5, lr} - blx FUN_020CC1B4 + blx OS_Init blx FUN_020C5974 ldr r2, _02016124 ; =0x04000304 ldr r0, _02016128 ; =0xFFFFFDF1 @@ -45340,14 +45340,14 @@ InitSystemForTheGame: ; 0x02016014 orr r0, r1 strh r0, [r2, #0x0] blx FUN_020C5B28 - blx FUN_020CCD64 + blx OS_InitTick bl FUN_02015FC8 mov r0, #0xa0 bl FUN_0201B578 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0xa0 bl FUN_0201B580 @@ -45358,7 +45358,7 @@ InitSystemForTheGame: ; 0x02016014 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x10 bl FUN_0201B580 @@ -45369,7 +45369,7 @@ InitSystemForTheGame: ; 0x02016014 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x20 bl FUN_0201B580 @@ -45380,7 +45380,7 @@ InitSystemForTheGame: ; 0x02016014 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x4 bl FUN_0201B580 @@ -45399,35 +45399,35 @@ InitSystemForTheGame: ; 0x02016014 strh r0, [r2, #0x0] ldr r1, _0201613C ; =FUN_02015EA0 mov r0, #0x1 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x1 - blx FUN_020C9E5C + blx OS_EnableIrqMask mov r0, #0x1 lsl r0, r0, #0x12 - blx FUN_020C9E5C + blx OS_EnableIrqMask ldr r1, _02016140 ; =0x04000208 ldrh r0, [r1, #0x0] mov r0, #0x1 strh r0, [r1, #0x0] blx FUN_020C5AC8 mov r0, #0x1 - blx FUN_020D1CD4 + blx FS_Init bl FUN_02022450 mov r0, #0x0 add r1, r0, #0x0 - blx FUN_020D1D10 + blx FS_TryLoadTable add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo add r5, r0, #0x0 bne _02016108 bl ErrorHandling _02016108: add r0, r5, #0x0 add r1, r4, #0x0 - blx FUN_020D1D10 + blx FS_TryLoadTable ldr r0, _02016130 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x0] @@ -45459,30 +45459,30 @@ InitGraphicMemory: ; 0x02016148 mov r0, #0x0 lsl r1, r1, #0x16 lsl r2, r2, #0xe - blx FUN_020CE240 + blx MIi_CpuClearFast blx FUN_020C5E54 mov r1, #0x7 mov r2, #0x1 mov r0, #0xc0 lsl r1, r1, #0x18 lsl r2, r2, #0xa - blx FUN_020CE240 + blx MIi_CpuClearFast mov r2, #0x1 ldr r1, _0201619C ; =0x07000400 mov r0, #0xc0 lsl r2, r2, #0xa - blx FUN_020CE240 + blx MIi_CpuClearFast mov r1, #0x5 mov r2, #0x1 mov r0, #0x0 lsl r1, r1, #0x18 lsl r2, r2, #0xa - blx FUN_020CE240 + blx MIi_CpuClearFast mov r2, #0x1 ldr r1, _020161A0 ; =0x05000400 mov r0, #0x0 lsl r2, r2, #0xa - blx FUN_020CE240 + blx MIi_CpuClearFast pop {r3, pc} .balign 4 _02016198: .word 0x000001FF @@ -45496,10 +45496,10 @@ FUN_020161A4: ; 0x020161A4 add r6, r0, #0x0 add r4, r1, #0x0 add r0, sp, #0x0 - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x0 add r1, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile cmp r0, #0x0 beq _020161F0 ldr r1, [sp, #0x28] @@ -45513,7 +45513,7 @@ FUN_020161A4: ; 0x020161A4 add r0, sp, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 - blx FUN_020D180C + blx FS_ReadFile cmp r5, r0 beq _020161E8 add r0, r6, #0x0 @@ -45522,7 +45522,7 @@ FUN_020161A4: ; 0x020161A4 mov r4, #0x0 _020161E8: add r0, sp, #0x0 - blx FUN_020D18FC + blx FS_CloseFile b _020161F2 _020161F0: mov r4, #0x0 @@ -45538,10 +45538,10 @@ FUN_020161F8: ; 0x020161F8 add r5, r0, #0x0 add r0, sp, #0x0 add r4, r1, #0x0 - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x0 add r1, r5, #0x0 - blx FUN_020D1944 + blx FS_OpenFile cmp r0, #0x0 beq _0201622A ldr r1, [sp, #0x28] @@ -45551,10 +45551,10 @@ FUN_020161F8: ; 0x020161F8 cmp r1, #0x0 beq _02016224 add r0, sp, #0x0 - blx FUN_020D180C + blx FS_ReadFile _02016224: add r0, sp, #0x0 - blx FUN_020D18FC + blx FS_CloseFile _0201622A: add sp, #0x48 pop {r3-r5, pc} @@ -45734,10 +45734,10 @@ _02016346: b _020163B2 _02016362: add r0, sp, #0x20 - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x20 add r1, sp, #0x0 - blx FUN_020D1944 + blx FS_OpenFile cmp r0, #0x0 beq _020163B0 ldr r1, [sp, #0x48] @@ -45751,7 +45751,7 @@ _02016362: add r0, sp, #0x20 add r1, r4, #0x0 add r2, r6, #0x0 - blx FUN_020D180C + blx FS_ReadFile cmp r6, r0 beq _0201639C add r0, r4, #0x0 @@ -45759,7 +45759,7 @@ _02016362: mov r4, #0x0 _0201639C: add r0, sp, #0x20 - blx FUN_020D18FC + blx FS_CloseFile cmp r5, #0x0 bne _020163B2 add r0, r4, #0x0 @@ -45800,13 +45800,13 @@ FUN_020163BC: ; 0x020163BC strh r2, [r0, #0x22] ldr r0, _02016424 ; =0x021C4918 strb r2, [r0, #0x4] - blx FUN_020D40B8 + blx TP_Init add r0, sp, #0x0 - blx FUN_020D400C + blx TP_GetUserInfo cmp r0, #0x1 add r0, sp, #0x0 bne _02016402 - blx FUN_020D3EC4 + blx TP_SetCalibrateParam add sp, #0x8 pop {r3, pc} _02016402: @@ -45819,7 +45819,7 @@ _02016402: ldr r1, _02016434 ; =0x00001208 strh r1, [r0, #0x6] add r0, sp, #0x0 - blx FUN_020D3EC4 + blx TP_SetCalibrateParam add sp, #0x8 pop {r3, pc} .balign 4 @@ -45929,19 +45929,19 @@ _020164C8: bne _020164F4 add r4, sp, #0x8 _020164E4: - blx FUN_020D3E24 + blx TP_RequestSamplingAsync add r0, r4, #0x0 - blx FUN_020D3DCC + blx TP_WaitRawResult cmp r0, #0x0 bne _020164E4 b _020164FA _020164F4: add r0, sp, #0x8 - blx FUN_020D3AA0 + blx TP_GetLatestRawPointInAuto _020164FA: add r0, sp, #0x0 add r1, sp, #0x8 - blx FUN_020D36F0 + blx TP_GetCalibratedPoint add r1, sp, #0x0 ldrh r3, [r1, #0x6] cmp r3, #0x0 @@ -46224,7 +46224,7 @@ _020166F4: mov r0, #0x0 add r1, r3, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo _020166FE: ldr r1, [sp, #0x4] lsl r7, r6, #0x1 @@ -46236,7 +46236,7 @@ _020166FE: mov r0, #0x0 add r1, r6, r1 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo ldr r1, _020167F0 ; =0x021C4D28 str r0, [r1, #0x0] ldr r1, [sp, #0x4] @@ -46277,13 +46277,13 @@ _0201675C: ldr r1, [r5, #0x0] mov r0, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo b _02016772 _02016768: ldr r1, [r5, #0x0] mov r0, #0x2 mov r2, #0x4 - blx FUN_020CC204 + blx OS_AllocFromArenaHi _02016772: cmp r0, #0x0 beq _0201678E @@ -46407,7 +46407,7 @@ FUN_02016834: ; 0x02016834 add r5, r1, #0x0 str r2, [sp, #0x0] add r7, r3, #0x0 - blx FUN_020CD374 + blx OS_GetProcMode cmp r0, #0x12 bne _0201684C bl ErrorHandling @@ -46481,7 +46481,7 @@ _020168CC: .word 0x021C4D28 FUN_020168D0: ; 0x020168D0 push {r4, lr} add r4, r0, #0x0 - blx FUN_020CD374 + blx OS_GetProcMode cmp r0, #0x12 bne _020168E0 bl ErrorHandling @@ -46548,7 +46548,7 @@ FUN_02016944: ; 0x02016944 bne _02016956 bl ErrorHandling _02016956: - blx FUN_020CD310 + blx OS_DisableInterrupts add r4, #0x10 str r0, [sp, #0x0] add r0, r5, #0x0 @@ -46557,7 +46557,7 @@ _02016956: blx FUN_020ADFA0 add r4, r0, #0x0 ldr r0, [sp, #0x0] - blx FUN_020CD324 + blx OS_RestoreInterrupts cmp r4, #0x0 beq _02016984 ldr r1, [r4, #0xc] @@ -46696,14 +46696,14 @@ _02016A5E: ldrh r0, [r1, r5] sub r0, r0, #0x1 strh r0, [r1, r5] - blx FUN_020CD310 + blx OS_DisableInterrupts sub r6, #0x10 add r4, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 blx FUN_020ADDF0 add r0, r4, #0x0 - blx FUN_020CD324 + blx OS_RestoreInterrupts pop {r3-r7, pc} _02016A80: bl ErrorHandling @@ -46716,7 +46716,7 @@ FUN_02016A8C: ; 0x02016A8C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 - blx FUN_020CD374 + blx OS_GetProcMode cmp r0, #0x12 bne _02016A9E bl ErrorHandling @@ -46812,7 +46812,7 @@ FUN_02016B44: ; 0x02016B44 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 - blx FUN_020CD374 + blx OS_GetProcMode cmp r0, #0x12 bne _02016B56 bl ErrorHandling @@ -47510,7 +47510,7 @@ _0201705A: ldr r1, [r6, r5] ldr r2, [r4, #0x8] mov r0, #0x0 - blx FUN_020CE1C8 + blx MIi_CpuClear16 ldr r0, [sp, #0x0] ldr r2, [r4, #0x8] add r1, r0, r5 @@ -49172,7 +49172,7 @@ FUN_02017C98: ; 0x02017C98 push {r3-r5, lr} cmp r2, #0x0 bne _02017CA4 - blx FUN_020CE528 + blx MI_UncompressLZ8 pop {r3-r5, pc} _02017CA4: mov r4, #0x3 @@ -49191,10 +49191,10 @@ _02017CA4: ror r5, r3 add r3, r4, r5 bne _02017CCA - blx FUN_020CE210 + blx MIi_CpuCopy32 pop {r3-r5, pc} _02017CCA: - blx FUN_020CE1E0 + blx MIi_CpuCopy16 pop {r3-r5, pc} thumb_func_start FUN_02017CD0 @@ -49282,7 +49282,7 @@ FUN_02017D68: ; 0x02017D68 add r0, r4, #0x0 add r1, r6, #0x0 add r5, r2, #0x0 - blx FUN_020CC15C + blx DC_FlushRange cmp r7, #0x7 bhi _02017DF8 add r0, r7, r7 @@ -49431,7 +49431,7 @@ FUN_02017E84: ; 0x02017E84 add r0, r4, #0x0 add r1, r6, #0x0 add r5, r2, #0x0 - blx FUN_020CC15C + blx DC_FlushRange cmp r7, #0x7 bhi _02017F14 add r0, r7, r7 @@ -49564,7 +49564,7 @@ _02017F8C: ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast lsl r0, r7, #0x18 ldrb r2, [r4, r6] ldr r3, [sp, #0x20] @@ -49587,7 +49587,7 @@ FUN_02017FB4: ; 0x02017FB4 add r0, r5, #0x0 add r1, r4, #0x0 add r7, r3, #0x0 - blx FUN_020CC15C + blx DC_FlushRange cmp r6, #0x4 bhs _02017FD6 add r0, r5, #0x0 @@ -50632,7 +50632,7 @@ FUN_02018744: ; 0x02018744 beq _02018766 ldr r2, [r2, #0xc] mov r0, #0x0 - blx FUN_020CE1C8 + blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02017CD0 @@ -50652,7 +50652,7 @@ FUN_02018768: ; 0x02018768 beq _0201878A add r0, r2, #0x0 ldr r2, [r3, #0xc] - blx FUN_020CE1C8 + blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02017CD0 @@ -50672,7 +50672,7 @@ FUN_0201878C: ; 0x0201878C beq _020187AE add r0, r2, #0x0 ldr r2, [r3, #0xc] - blx FUN_020CE1C8 + blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201AC68 @@ -52718,7 +52718,7 @@ _0201963C: ldrb r4, [r4, #0x7] mul r2, r4 mul r2, r3 - blx FUN_020CE240 + blx MIi_CpuClearFast pop {r3-r5, pc} thumb_func_start FUN_02019658 @@ -56471,7 +56471,7 @@ FUN_0201B1A8: ; 0x0201B1A8 bne _0201B1D2 ldr r0, [r5, #0x0] ldr r1, [r0, #0x8] - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [r5, #0x0] blx FUN_020BB59C _0201B1D2: @@ -56498,7 +56498,7 @@ FUN_0201B1E4: ; 0x0201B1E4 bne _0201B20A ldr r0, [r5, #0x0] ldr r1, [r0, #0x8] - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [r5, #0x0] blx FUN_020BB59C _0201B20A: @@ -56568,7 +56568,7 @@ FUN_0201B26C: ; 0x0201B26C blx FUN_020B8474 ldr r1, _0201B2A0 ; =0x021CEDD4 add r0, r4, #0x0 - blx FUN_020CE2E0 + blx MI_Copy36B ldr r1, _0201B2A4 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] @@ -56594,7 +56594,7 @@ FUN_0201B2A8: ; 0x0201B2A8 blx FUN_020B8474 ldr r1, _0201B2E4 ; =0x021CEDD4 add r0, r4, #0x0 - blx FUN_020CE2E0 + blx MI_Copy36B ldr r1, _0201B2E8 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] @@ -56852,7 +56852,7 @@ _0201B4A6: blx FUN_020B7CDC ldr r1, [r5, #0x4] add r0, r5, #0x0 - blx FUN_020CC15C + blx DC_FlushRange add r0, r5, #0x0 mov r1, #0x1 blx FUN_020B7D28 @@ -57204,7 +57204,7 @@ FUN_0201B6D0: ; 0x0201B6D0 blx FUN_020B8474 ldr r1, _0201B764 ; =0x021CEDD4 add r0, r5, #0x0 - blx FUN_020CE2E0 + blx MI_Copy36B ldr r1, _0201B768 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] @@ -58642,7 +58642,7 @@ FUN_0201C1B0: ; 0x0201C1B0 ldr r0, [r0, #0x14] add r1, r5, #0x0 lsl r2, r2, #0x8 - blx FUN_020CE210 + blx MIi_CpuCopy32 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 @@ -60171,11 +60171,11 @@ _0201CCD0: mov r4, #0x4 add r6, r4, #0x0 _0201CCD4: - blx FUN_020D3C14 + blx TP_RequestAutoSamplingStopAsync add r0, r4, #0x0 - blx FUN_020D36D8 + blx TP_WaitBusy add r0, r6, #0x0 - blx FUN_020D36C4 + blx TP_CheckError cmp r0, #0x0 beq _0201CCEA add r5, r5, #0x1 @@ -60240,7 +60240,7 @@ _0201CD4E: ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0201CD88 - blx FUN_020D3A90 + blx TP_GetLatestIndexInAuto add r5, r0, #0x0 ldr r0, _0201CD90 ; =0x021C5944 mov r1, #0x9 @@ -60284,7 +60284,7 @@ FUN_0201CD94: ; 0x0201CD94 _0201CDA6: add r0, sp, #0x4 add r1, r5, #0x0 - blx FUN_020D36F0 + blx TP_GetCalibratedPoint ldrh r0, [r6, #0x0] add r7, r7, #0x1 add r5, #0x8 @@ -60367,11 +60367,11 @@ _0201CE38: add r1, r4, #0x0 add r2, r7, #0x0 mov r3, #0x9 - blx FUN_020D3CB8 + blx TP_RequestAutoSamplingStartAsync mov r0, #0x2 - blx FUN_020D36D8 + blx TP_WaitBusy mov r0, #0x2 - blx FUN_020D36C4 + blx TP_CheckError cmp r0, #0x0 beq _0201CE56 add r5, r5, #0x1 @@ -60685,7 +60685,7 @@ FUN_0201D060: ; 0x0201D060 mov r2, #0x3c str r1, [r0, #0x0] mov r0, #0x0 - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r1, _0201D120 ; =0x021C5994 ldr r2, [r5, #0x0] ldr r0, [r1, #0x0] @@ -62831,7 +62831,7 @@ FUN_0201E00C: ; 0x0201E00C mov r2, #0x28 str r1, [r0, #0x0] mov r0, #0x0 - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r0, _0201E064 ; =0x021C5998 mov r1, #0x30 ldr r0, [r0, #0x0] @@ -67842,11 +67842,11 @@ FUN_020203CC: ; 0x020203CC lsl r0, r0, #0x6 add r1, r4, #0x0 lsl r2, r2, #0xa - blx FUN_020CE1C8 + blx MIi_CpuClear16 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0xa - blx FUN_020CC15C + blx DC_FlushRange mov r2, #0x1 add r0, r4, #0x0 mov r1, #0x0 @@ -67868,7 +67868,7 @@ FUN_02020404: ; 0x02020404 lsl r0, r0, #0x6 add r1, r4, #0x0 lsl r2, r2, #0xa - blx FUN_020CE1C8 + blx MIi_CpuClear16 mov r2, #0x1 add r0, r4, #0x0 mov r1, #0x0 @@ -68859,9 +68859,9 @@ FUN_02020AFC: ; 0x02020AFC strh r0, [r1, #0x0] ldr r1, _02020B2C ; =FUN_02020B30 mov r0, #0x40 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x40 - blx FUN_020C9E5C + blx OS_EnableIrqMask pop {r3, pc} .balign 4 _02020B24: .word 0x021C59B0 @@ -68895,7 +68895,7 @@ _02020B54: ldr r2, [r3, r1] orr r2, r0 str r2, [r3, r1] - ldr r3, _02020B78 ; =FUN_020C9FEC + ldr r3, _02020B78 ; =OS_SetIrqFunction ldr r1, _02020B7C ; =FUN_02020B30 bx r3 nop @@ -68903,14 +68903,14 @@ _02020B68: .word 0x021C59B0 _02020B6C: .word 0x0400010E _02020B70: .word 0x027E0000 _02020B74: .word 0x00003FF8 -_02020B78: .word FUN_020C9FEC +_02020B78: .word OS_SetIrqFunction _02020B7C: .word FUN_02020B30 thumb_func_start FUN_02020B80 FUN_02020B80: ; 0x02020B80 push {r4-r5, lr} sub sp, #0xc - blx FUN_020CD310 + blx OS_DisableInterrupts ldr r1, _02020BE4 ; =0x0400010C add r3, sp, #0x0 ldrh r1, [r1, #0x0] @@ -68942,7 +68942,7 @@ FUN_02020B80: ; 0x02020B80 str r2, [sp, #0x4] str r3, [sp, #0x8] _02020BC4: - blx FUN_020CD324 + blx OS_RestoreInterrupts ldr r2, [sp, #0x4] ldr r1, [sp, #0x8] lsr r0, r2, #0x10 @@ -69004,7 +69004,7 @@ ErrorHandling: ; 0x02020C2C bl FUN_02031810 cmp r0, #0x0 beq _02020C42 - blx FUN_020CD374 + blx OS_GetProcMode cmp r0, #0x12 beq _02020C42 bl FUN_0208A9B8 @@ -69933,7 +69933,7 @@ FUN_020212B8: ; 0x020212B8 bl FUN_020212E4 ldr r1, [r4, #0x4] add r0, r4, #0x0 - blx FUN_020CC15C + blx DC_FlushRange add r0, r4, #0x0 mov r1, #0x1 blx FUN_020B7D28 @@ -72345,10 +72345,10 @@ _0202244C: .word 0x04000580 thumb_func_start FUN_02022450 FUN_02022450: ; 0x02022450 push {r3, lr} - blx FUN_020D1CC4 + blx FS_IsAvailable cmp r0, #0x0 bne _02022460 - blx FUN_020CD850 + blx OS_Terminate pop {r3, pc} _02022460: ldr r0, _020224BC ; =0x027FF00C @@ -72360,19 +72360,19 @@ _02022460: ldr r0, _020224C0 ; =0x027FFE00 ldr r1, _020224C4 ; =0x027FF000 lsl r2, r2, #0x4 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r2, #0x16 ldr r0, _020224C0 ; =0x027FFE00 ldr r1, _020224C8 ; =0x027FFA80 lsl r2, r2, #0x4 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r1, _020224CC ; =0x4A414441 ldr r0, _020224BC ; =0x027FF00C str r1, [r0, #0x0] _0202248A: ldr r0, _020224D0 ; =0x020EE6D4 mov r1, #0x3 - blx FUN_020D1148 + blx FS_FindArchive ldr r1, _020224C4 ; =0x027FF000 ldr r2, [r1, #0x48] str r2, [r0, #0x2c] @@ -72391,7 +72391,7 @@ _0202248A: cmp r1, r0 beq _020224B8 _020224B4: - blx FUN_020CD850 + blx OS_Terminate _020224B8: pop {r3, pc} nop @@ -72409,17 +72409,17 @@ FUN_020224D8: ; 0x020224D8 sub sp, #0x48 add r4, r0, #0x0 add r0, sp, #0x0 - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x0 add r1, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile cmp r0, #0x0 beq _020224FC ldr r1, [sp, #0x24] ldr r0, _02022500 ; =0x027FFC2C str r1, [r0, #0x0] mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem _020224FC: add sp, #0x48 pop {r4, pc} @@ -72485,7 +72485,7 @@ FUN_0202254C: ; 0x0202254C ldr r2, _020225E0 ; =0x000204A8 mov r0, #0x0 add r1, r4, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r0, _020225E4 ; =0x021C59C8 str r4, [r0, #0x0] bl FUN_02023570 @@ -72511,7 +72511,7 @@ FUN_0202254C: ; 0x0202254C mov r0, #0x0 add r1, r4, r1 mov r2, #0x8 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_02022AD8 str r0, [r4, #0x10] @@ -72650,7 +72650,7 @@ _0202267A: mvn r0, r0 add r1, r6, #0x0 lsl r2, r2, #0xc - blx FUN_020CE240 + blx MIi_CpuClearFast mov r4, #0x0 mov r7, #0x1 add r5, r4, #0x0 @@ -73959,7 +73959,7 @@ _02023006: ldr r0, [r4, #0x10] lsl r0, r0, #0x10 lsr r0, r0, #0x10 - blx FUN_020CA0F8 + blx OS_ReleaseLockID _02023034: mov r0, #0x1 bl FUN_02016454 @@ -74006,7 +74006,7 @@ FUN_02023074: ; 0x02023074 add r0, sp, #0x0 mov r1, #0xff mov r2, #0x14 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020228A4 @@ -74207,7 +74207,7 @@ FUN_020231F4: ; 0x020231F4 add r1, r6, #0x0 lsl r2, r2, #0x10 ldr r4, _02023240 ; =0x020EE700 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r0, _02023244 ; =0x020EE6DC mov r7, #0x0 ldr r0, [r0, #0x0] @@ -74221,7 +74221,7 @@ _02023216: ldr r1, [sp, #0x4] mov r0, #0x0 add r1, r6, r1 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r0, [sp, #0x4] ldr r1, [r4, #0xc] add r0, r6, r0 @@ -74634,7 +74634,7 @@ _0202356C: .word 0x000204A0 thumb_func_start FUN_02023570 FUN_02023570: ; 0x02023570 push {r3-r5, lr} - blx FUN_020CA0A0 + blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 @@ -74666,7 +74666,7 @@ _020235AA: blx FUN_020D66A0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 - blx FUN_020CA0F8 + blx OS_ReleaseLockID cmp r5, #0x0 beq _020235C2 mov r0, #0x1 @@ -74701,7 +74701,7 @@ FUN_020235EC: ; 0x020235EC add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 - blx FUN_020CA0A0 + blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 @@ -74731,7 +74731,7 @@ _02023608: blx FUN_020D66A0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 - blx FUN_020CA0F8 + blx OS_ReleaseLockID cmp r5, #0x0 bne _02023652 ldr r0, _02023658 ; =0x021C59C8 @@ -74762,7 +74762,7 @@ FUN_02023668: ; 0x02023668 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 - blx FUN_020CA0A0 + blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 @@ -74829,7 +74829,7 @@ FUN_020236E4: ; 0x020236E4 blx FUN_020D66A0 lsl r0, r5, #0x10 lsr r0, r0, #0x10 - blx FUN_020CA0F8 + blx OS_ReleaseLockID blx FUN_020D6700 cmp r0, #0x0 beq _02023714 @@ -74874,7 +74874,7 @@ FUN_02023740: ; 0x02023740 blx FUN_020D66A0 lsl r0, r5, #0x10 lsr r0, r0, #0x10 - blx FUN_020CA0F8 + blx OS_ReleaseLockID ldr r0, _02023768 ; =0x021C59C8 ldr r0, [r0, #0x0] bl FUN_02016A18 @@ -74897,7 +74897,7 @@ FUN_02023770: ; 0x02023770 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x5c - blx FUN_020CE240 + blx MIi_CpuClearFast add r4, #0x10 add r0, r4, #0x0 bl FUN_02023840 @@ -74924,14 +74924,14 @@ FUN_020237A0: ; 0x020237A0 push {r4, lr} sub sp, #0x50 add r4, r0, #0x0 - blx FUN_020CD510 + blx OS_GetOwnerRtcOffset str r0, [r4, #0x0] add r0, r4, #0x0 add r0, #0x8 str r1, [r4, #0x4] - blx FUN_020CD5A0 + blx OS_GetMacAddress add r0, sp, #0x0 - blx FUN_020CD524 + blx OS_GetOwnerInfo add r0, sp, #0x0 ldrb r1, [r0, #0x2] strb r1, [r4, #0xe] @@ -74947,7 +74947,7 @@ FUN_020237CC: ; 0x020237CC sub sp, #0x8 add r4, r0, #0x0 add r0, sp, #0x0 - blx FUN_020CD5A0 + blx OS_GetMacAddress mov r2, #0x0 add r3, sp, #0x0 _020237DC: @@ -74973,7 +74973,7 @@ _020237EC: FUN_020237FC: ; 0x020237FC push {r4, lr} add r4, r0, #0x0 - blx FUN_020CD510 + blx OS_GetOwnerRtcOffset ldr r3, [r4, #0x0] ldr r2, [r4, #0x4] eor r0, r3 @@ -75113,7 +75113,7 @@ FUN_020238C8: ; 0x020238C8 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x2c - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_02024F50 add r0, r4, #0x4 @@ -75176,11 +75176,11 @@ FUN_02023928: ; 0x02023928 thumb_func_start FUN_0202393C FUN_0202393C: ; 0x0202393C - ldr r3, _02023944 ; =FUN_020CE3E0 + ldr r3, _02023944 ; =MI_CpuCopy8 mov r2, #0x20 bx r3 nop -_02023944: .word FUN_020CE3E0 +_02023944: .word MI_CpuCopy8 thumb_func_start FUN_02023948 FUN_02023948: ; 0x02023948 @@ -75473,11 +75473,11 @@ FUN_02023AC8: ; 0x02023AC8 thumb_func_start FUN_02023ACC FUN_02023ACC: ; 0x02023ACC - ldr r3, _02023AD4 ; =FUN_020CE3E0 + ldr r3, _02023AD4 ; =MI_CpuCopy8 mov r2, #0x20 bx r3 nop -_02023AD4: .word FUN_020CE3E0 +_02023AD4: .word MI_CpuCopy8 thumb_func_start FUN_02023AD8 FUN_02023AD8: ; 0x02023AD8 @@ -75904,12 +75904,12 @@ FUN_02023D6C: ; 0x02023D6C thumb_func_start FUN_02023D80 FUN_02023D80: ; 0x02023D80 - ldr r3, _02023D88 ; =FUN_020CE3E0 + ldr r3, _02023D88 ; =MI_CpuCopy8 mov r2, #0x4f lsl r2, r2, #0x2 bx r3 .balign 4 -_02023D88: .word FUN_020CE3E0 +_02023D88: .word MI_CpuCopy8 thumb_func_start FUN_02023D8C FUN_02023D8C: ; 0x02023D8C @@ -78249,7 +78249,7 @@ FUN_02024E6C: ; 0x02024E6C ldr r2, _02024EA4 ; =0x0000074C mov r0, #0x0 add r1, r4, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_020250A4 mov r0, #0x7 @@ -78260,12 +78260,12 @@ FUN_02024E6C: ; 0x02024E6C ldr r0, _02024EAC ; =0x0000FFFF add r1, r4, r1 mov r2, #0x8 - blx FUN_020CE1C8 + blx MIi_CpuClear16 ldr r1, _02024EB0 ; =0x00000734 ldr r0, _02024EAC ; =0x0000FFFF add r1, r4, r1 mov r2, #0xb - blx FUN_020CE1C8 + blx MIi_CpuClear16 pop {r4, pc} .balign 4 _02024EA4: .word 0x0000074C @@ -78362,11 +78362,11 @@ FUN_02024F30: ; 0x02024F30 thumb_func_start FUN_02024F44 FUN_02024F44: ; 0x02024F44 - ldr r3, _02024F4C ; =FUN_020CE3E0 + ldr r3, _02024F4C ; =MI_CpuCopy8 mov r2, #0x2 bx r3 nop -_02024F4C: .word FUN_020CE3E0 +_02024F4C: .word MI_CpuCopy8 thumb_func_start FUN_02024F50 FUN_02024F50: ; 0x02024F50 @@ -78374,7 +78374,7 @@ FUN_02024F50: ; 0x02024F50 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 ldrh r1, [r4, #0x0] mov r0, #0xf bic r1, r0 @@ -78589,7 +78589,7 @@ FUN_020250A4: ; 0x020250A4 mov r1, #0x0 lsl r2, r2, #0x8 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r1, #0x0 add r0, r1, #0x0 _020250B6: @@ -79151,12 +79151,12 @@ _02025474: thumb_func_start FUN_02025484 FUN_02025484: ; 0x02025484 - ldr r3, _0202548C ; =FUN_020CE34C + ldr r3, _0202548C ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x24 bx r3 .balign 4 -_0202548C: .word FUN_020CE34C +_0202548C: .word MI_CpuFill8 thumb_func_start FUN_02025490 FUN_02025490: ; 0x02025490 @@ -79496,11 +79496,11 @@ FUN_020256BC: ; 0x020256BC thumb_func_start FUN_020256D0 FUN_020256D0: ; 0x020256D0 - ldr r3, _020256D8 ; =FUN_020CE3E0 + ldr r3, _020256D8 ; =MI_CpuCopy8 mov r2, #0x38 bx r3 nop -_020256D8: .word FUN_020CE3E0 +_020256D8: .word MI_CpuCopy8 thumb_func_start FUN_020256DC FUN_020256DC: ; 0x020256DC @@ -79900,7 +79900,7 @@ FUN_02025964: ; 0x02025964 mov r1, #0x0 mov r2, #0x3c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 @@ -79936,7 +79936,7 @@ FUN_0202597C: ; 0x0202597C ldr r2, _020259DC ; =0x000009B4 add r0, r4, #0x0 add r1, r7, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 add r0, #0x94 mov r1, #0x9b @@ -80344,7 +80344,7 @@ _02025C72: lsl r1, r1, #0x4 add r1, r2, r1 mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_020239BC ldr r1, [sp, #0x0] @@ -80584,7 +80584,7 @@ FUN_02025E20: ; 0x02025E20 add r0, r5, r0 add r1, sp, #0xc mov r2, #0xc8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r2, [sp, #0x8] add r1, sp, #0xc add r0, r4, #0x0 @@ -80740,12 +80740,12 @@ FUN_02025F44: ; 0x02025F44 mov r1, #0x9a lsl r1, r1, #0x4 add r0, r0, r1 - ldr r3, _02025F54 ; =FUN_020CE34C + ldr r3, _02025F54 ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0xf bx r3 nop -_02025F54: .word FUN_020CE34C +_02025F54: .word MI_CpuFill8 thumb_func_start FUN_02025F58 FUN_02025F58: ; 0x02025F58 @@ -80861,7 +80861,7 @@ FUN_02025FFC: ; 0x02025FFC add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 @@ -81003,12 +81003,12 @@ FUN_020260EC: ; 0x020260EC add r1, sp, #0x34 mov r2, #0x28 mov r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _02026168 ; =0x00000978 add r1, sp, #0xc add r0, r7, r0 mov r2, #0x28 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r3, [sp, #0x0] add r1, sp, #0x34 add r3, r1, r3 @@ -81146,7 +81146,7 @@ FUN_020261EC: ; 0x020261EC add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 @@ -81268,7 +81268,7 @@ FUN_020262BC: ; 0x020262BC add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 @@ -81424,7 +81424,7 @@ _020263D6: add r0, r4, r0 add r0, r2, r0 mov r2, #0x3 - blx FUN_020CE34C + blx MI_CpuFill8 pop {r3-r5, pc} .balign 4 _020263F0: .word 0x0000010F @@ -81701,7 +81701,7 @@ _020265C6: add r0, r4, r0 add r0, r1, r0 mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 pop {r3-r5, pc} nop _020265DC: .word 0x0000020F @@ -81861,12 +81861,12 @@ _020266D0: .word 0x000009AF thumb_func_start FUN_020266D4 FUN_020266D4: ; 0x020266D4 - ldr r3, _020266DC ; =FUN_020CE34C + ldr r3, _020266DC ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x94 bx r3 .balign 4 -_020266DC: .word FUN_020CE34C +_020266DC: .word MI_CpuFill8 thumb_func_start FUN_020266E0 FUN_020266E0: ; 0x020266E0 @@ -81874,12 +81874,12 @@ FUN_020266E0: ; 0x020266E0 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x2d - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 add r0, #0x2d mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x0 add r0, #0x8c @@ -85827,7 +85827,7 @@ FUN_020281E8: ; 0x020281E8 mov r0, #0x0 add r1, r7, #0x0 lsl r2, r2, #0x6 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r0, #0x1d lsl r0, r0, #0x4 add r1, r0, #0x0 @@ -86219,7 +86219,7 @@ _020284A2: mov r2, #0x30 add r0, r0, r1 add r1, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0xc add r1, r7, #0x0 mul r1, r0 @@ -86227,7 +86227,7 @@ _020284A2: mov r2, #0xc add r0, r0, r1 add r1, r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r5, r5, #0x1 add r6, #0x30 add r4, #0xc @@ -86243,7 +86243,7 @@ _020284D2: add r1, r2, r1 mov r0, #0x0 mov r2, #0x30 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r2, [sp, #0x0] mov r1, #0x5d add r2, #0x40 @@ -86251,7 +86251,7 @@ _020284D2: add r1, r2, r1 mov r0, #0x0 mov r2, #0xc - blx FUN_020CE240 + blx MIi_CpuClearFast mov r2, #0x7a lsl r2, r2, #0x4 add r1, r2, #0x0 @@ -86286,7 +86286,7 @@ FUN_02028518: ; 0x02028518 str r1, [sp, #0x0] add r0, r4, r5 add r1, r4, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, [sp, #0x4] add r6, r7, #0x0 mov r3, #0xc @@ -86300,16 +86300,16 @@ FUN_02028518: ; 0x02028518 mul r2, r3 add r1, r6, r2 add r2, r3, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x0 add r1, r4, r5 mov r2, #0x30 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r1, [sp, #0x8] mov r0, #0x0 add r1, r6, r1 mov r2, #0xc - blx FUN_020CE240 + blx MIi_CpuClearFast mov r0, #0x1d ldr r1, _02028588 ; =0x0000FFFF add r2, r7, r5 @@ -86495,7 +86495,7 @@ _020286BC: mov r0, #0x0 add r1, r6, r4 mov r2, #0x30 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r0, #0x1d ldr r1, _020286E8 ; =0x0000FFFF add r2, r5, r4 @@ -86556,7 +86556,7 @@ FUN_02028724: ; 0x02028724 mov r0, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r0, _0202874C ; =0x0000FFFF mov r1, #0x0 add r2, r4, #0x0 @@ -89419,13 +89419,13 @@ _02029AE4: .word 0x00000FF8 thumb_func_start FUN_02029AE8 FUN_02029AE8: ; 0x02029AE8 - ldr r3, _02029AF4 ; =FUN_020CE1FC + ldr r3, _02029AF4 ; =MIi_CpuClear32 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _02029AF8 ; =0x00000FF8 bx r3 nop -_02029AF4: .word FUN_020CE1FC +_02029AF4: .word MIi_CpuClear32 _02029AF8: .word 0x00000FF8 thumb_func_start FUN_02029AFC @@ -89646,16 +89646,16 @@ FUN_02029C60: ; 0x02029C60 add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 pop {r4, pc} thumb_func_start FUN_02029C74 FUN_02029C74: ; 0x02029C74 - ldr r3, _02029C7C ; =FUN_020CE3E0 + ldr r3, _02029C7C ; =MI_CpuCopy8 mov r2, #0x18 bx r3 nop -_02029C7C: .word FUN_020CE3E0 +_02029C7C: .word MI_CpuCopy8 thumb_func_start FUN_02029C80 FUN_02029C80: ; 0x02029C80 @@ -90033,7 +90033,7 @@ FUN_02029ECC: ; 0x02029ECC mov r0, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r0, #0x0 str r0, [r4, #0x0] pop {r4, pc} @@ -90157,11 +90157,11 @@ FUN_02029F9C: ; 0x02029F9C add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0xfb - ldr r3, _02029FAC ; =FUN_020CE28C + ldr r3, _02029FAC ; =MIi_CpuCopyFast lsl r2, r2, #0x2 bx r3 nop -_02029FAC: .word FUN_020CE28C +_02029FAC: .word MIi_CpuCopyFast thumb_func_start FUN_02029FB0 FUN_02029FB0: ; 0x02029FB0 @@ -90172,14 +90172,14 @@ FUN_02029FB0: ; 0x02029FB0 thumb_func_start FUN_02029FB8 FUN_02029FB8: ; 0x02029FB8 - ldr r3, _02029FC4 ; =FUN_020CE1FC + ldr r3, _02029FC4 ; =MIi_CpuClear32 mov r2, #0x53 add r1, r0, #0x0 mov r0, #0x0 lsl r2, r2, #0x2 bx r3 .balign 4 -_02029FC4: .word FUN_020CE1FC +_02029FC4: .word MIi_CpuClear32 thumb_func_start FUN_02029FC8 FUN_02029FC8: ; 0x02029FC8 @@ -90477,12 +90477,12 @@ FUN_0202A1E0: ; 0x0202A1E0 thumb_func_start FUN_0202A1E4 FUN_0202A1E4: ; 0x0202A1E4 - ldr r3, _0202A1EC ; =FUN_020CE34C + ldr r3, _0202A1EC ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x3c bx r3 .balign 4 -_0202A1EC: .word FUN_020CE34C +_0202A1EC: .word MI_CpuFill8 thumb_func_start FUN_0202A1F0 FUN_0202A1F0: ; 0x0202A1F0 @@ -90491,7 +90491,7 @@ FUN_0202A1F0: ; 0x0202A1F0 mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x1 strb r0, [r4, #0x3] pop {r4, pc} @@ -90519,12 +90519,12 @@ FUN_0202A204: ; 0x0202A204 thumb_func_start FUN_0202A230 FUN_0202A230: ; 0x0202A230 - ldr r3, _0202A238 ; =FUN_020CE34C + ldr r3, _0202A238 ; =MI_CpuFill8 mov r1, #0x0 ldr r2, _0202A23C ; =0x00000B3C bx r3 .balign 4 -_0202A238: .word FUN_020CE34C +_0202A238: .word MI_CpuFill8 _0202A23C: .word 0x00000B3C thumb_func_start FUN_0202A240 @@ -90571,14 +90571,14 @@ _0202A280: add r1, r2, #0x0 add r0, #0x8 mov r2, #0x4 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A28E: add r1, r2, #0x0 add r0, #0x2c mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A29C: @@ -90590,7 +90590,7 @@ _0202A2A4: add r1, r2, #0x0 add r0, #0xc mov r2, #0x1c - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A2B2: @@ -90661,14 +90661,14 @@ _0202A318: add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x4 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r4, pc} _0202A326: add r3, #0x2c add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r4, pc} _0202A334: ldrb r4, [r3, #0x0] @@ -90685,7 +90685,7 @@ _0202A346: add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x1c - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r4, pc} _0202A354: ldr r0, [r2, #0x0] @@ -90881,14 +90881,14 @@ FUN_0202A474: ; 0x0202A474 add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0xa8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3, pc} _0202A48A: add r3, #0x18 add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0xa8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3, pc} thumb_func_start FUN_0202A498 @@ -90899,13 +90899,13 @@ FUN_0202A498: ; 0x0202A498 add r1, r2, #0x0 add r0, #0xc0 mov r2, #0xa8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3, pc} _0202A4AA: add r1, r2, #0x0 add r0, #0x18 mov r2, #0xa8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3, pc} .balign 4 @@ -91175,11 +91175,11 @@ FUN_0202A670: ; 0x0202A670 add r0, r4, #0x4 mov r1, #0x0 mov r2, #0xfa - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 pop {r4, pc} .balign 4 @@ -91311,7 +91311,7 @@ FUN_0202A754: ; 0x0202A754 ldr r2, _0202A77C ; =0x0000063C add r1, r5, r1 add r6, r3, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0202A780 ; =0x00000101 strb r4, [r5, r0] sub r0, r0, #0x1 @@ -91384,30 +91384,30 @@ _0202A7EE: add r0, #0xa8 add r1, #0x8 mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _0202A7FC: add r0, r5, r4 add r1, r6, #0x0 add r0, #0xca add r1, #0x18 mov r2, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r5, r4 add r1, r6, #0x0 add r0, #0xd2 add r1, #0x20 mov r2, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r5, r4 add r6, #0x28 add r0, #0xda add r1, r6, #0x0 mov r2, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r5, r4 add r1, r7, #0x0 mov r2, #0xa8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3-r7, pc} nop _0202A834: .word 0x00002710 @@ -91424,7 +91424,7 @@ FUN_0202A838: ; 0x0202A838 add r1, r5, r1 lsl r2, r2, #0x2 add r6, r3, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0202A860 ; =0x00000103 strb r4, [r5, r0] sub r0, r0, #0x1 @@ -91463,7 +91463,7 @@ FUN_0202A878: ; 0x0202A878 add r0, r5, r0 add r1, r4, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 pop {r3-r5, pc} @@ -91998,13 +91998,13 @@ FUN_0202ABC8: ; 0x0202ABC8 thumb_func_start FUN_0202ABCC FUN_0202ABCC: ; 0x0202ABCC - ldr r3, _0202ABD8 ; =FUN_020CE240 + ldr r3, _0202ABD8 ; =MIi_CpuClearFast add r1, r0, #0x0 mov r0, #0x0 mov r2, #0xf4 bx r3 nop -_0202ABD8: .word FUN_020CE240 +_0202ABD8: .word MIi_CpuClearFast thumb_func_start FUN_0202ABDC FUN_0202ABDC: ; 0x0202ABDC @@ -92022,22 +92022,22 @@ FUN_0202ABE4: ; 0x0202ABE4 thumb_func_start FUN_0202ABEC FUN_0202ABEC: ; 0x0202ABEC - ldr r3, _0202ABF4 ; =FUN_020CE28C + ldr r3, _0202ABF4 ; =MIi_CpuCopyFast mov r2, #0xec bx r3 nop -_0202ABF4: .word FUN_020CE28C +_0202ABF4: .word MIi_CpuCopyFast thumb_func_start FUN_0202ABF8 FUN_0202ABF8: ; 0x0202ABF8 - ldr r3, _0202AC04 ; =FUN_020CE28C + ldr r3, _0202AC04 ; =MIi_CpuCopyFast add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0xec bx r3 .balign 4 -_0202AC04: .word FUN_020CE28C +_0202AC04: .word MIi_CpuCopyFast thumb_func_start FUN_0202AC08 FUN_0202AC08: ; 0x0202AC08 @@ -92161,7 +92161,7 @@ _0202ACB4: ldr r0, [sp, #0x0] add r1, r1, r6 sub r2, #0x28 - blx FUN_020CE3E0 + blx MI_CpuCopy8 lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x1 @@ -92231,7 +92231,7 @@ _0202AD3C: mul r1, r2 add r0, r6, #0x0 add r1, r3, r1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x12 @@ -92671,13 +92671,13 @@ _0202B038: .word 0x00002AB0 thumb_func_start FUN_0202B03C FUN_0202B03C: ; 0x0202B03C - ldr r3, _0202B048 ; =FUN_020CE1FC + ldr r3, _0202B048 ; =MIi_CpuClear32 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0202B04C ; =0x00002AB0 bx r3 nop -_0202B048: .word FUN_020CE1FC +_0202B048: .word MIi_CpuClear32 _0202B04C: .word 0x00002AB0 thumb_func_start FUN_0202B050 @@ -92727,7 +92727,7 @@ _0202B07E: ldr r1, [sp, #0x14] mov r0, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE1C8 + blx MIi_CpuClear16 ldr r0, [sp, #0x10] mov r7, #0x0 cmp r0, #0x0 @@ -93092,13 +93092,13 @@ _0202B378: .word 0x00000B88 thumb_func_start FUN_0202B37C FUN_0202B37C: ; 0x0202B37C - ldr r3, _0202B388 ; =FUN_020CE240 + ldr r3, _0202B388 ; =MIi_CpuClearFast add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0202B38C ; =0x00000B88 bx r3 nop -_0202B388: .word FUN_020CE240 +_0202B388: .word MIi_CpuClearFast _0202B38C: .word 0x00000B88 thumb_func_start FUN_0202B390 @@ -93109,18 +93109,18 @@ FUN_0202B390: ; 0x0202B390 mov r0, #0x0 add r1, #0xc mov r2, #0xc0 - blx FUN_020CE240 + blx MIi_CpuClearFast add r1, r4, #0x0 mov r0, #0x0 add r1, #0xcc mov r2, #0xc0 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r1, #0x63 lsl r1, r1, #0x2 mov r0, #0x0 add r1, r4, r1 mov r2, #0xc0 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_0202B3F8 pop {r4, pc} @@ -93271,7 +93271,7 @@ FUN_0202B470: ; 0x0202B470 add r0, r6, #0x0 add r1, r5, #0x0 mov r2, #0x28 - blx FUN_020CE28C + blx MIi_CpuCopyFast add sp, #0x10 pop {r4-r6, pc} @@ -93650,7 +93650,7 @@ FUN_0202B710: ; 0x0202B710 add r0, sp, #0x8 mov r1, #0x0 mov r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 str r0, [sp, #0x0] add r0, sp, #0x8 @@ -93903,7 +93903,7 @@ FUN_0202B8B8: ; 0x0202B8B8 mov r1, #0x0 lsl r2, r2, #0x4 add r6, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r7, #0x0 _0202B8C8: mov r4, #0x0 @@ -94079,7 +94079,7 @@ FUN_0202B9EC: ; 0x0202B9EC mov r1, #0x0 lsl r2, r2, #0x2 str r0, [sp, #0x4] - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_0202881C mov r1, #0x1 @@ -94196,7 +94196,7 @@ FUN_0202BAD4: ; 0x0202BAD4 mov r1, #0x0 mov r2, #0xe0 add r4, r3, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, sp, #0x10 ldrb r0, [r0, #0x10] cmp r0, #0x0 @@ -94208,7 +94208,7 @@ FUN_0202BAD4: ; 0x0202BAD4 add r0, r5, r0 add r1, #0x50 str r0, [sp, #0x8] - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r1, sp, #0x10 ldrb r3, [r1, #0x18] mov r0, #0x0 @@ -94269,7 +94269,7 @@ _0202BB64: add r1, r6, #0x0 add r1, #0x50 str r0, [sp, #0x8] - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, sp, #0x10 ldrb r2, [r0, #0x18] mov r3, #0x0 @@ -94552,7 +94552,7 @@ FUN_0202BD6C: ; 0x0202BD6C mov r1, #0x0 mov r2, #0x4c add r7, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_0202881C mov r1, #0x1 @@ -94610,7 +94610,7 @@ FUN_0202BDF0: ; 0x0202BDF0 mov r1, #0x0 mov r2, #0x4c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [sp, #0x0] mov r1, #0x90 mul r1, r0 @@ -94679,7 +94679,7 @@ _0202BE7E: add r0, r6, #0x0 mov r1, #0x0 mov r2, #0x4c - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r6, #0x0 bl FUN_02016A18 pop {r4-r6, pc} @@ -94698,7 +94698,7 @@ FUN_0202BEA0: ; 0x0202BEA0 ldr r2, _0202BED8 ; =0x00000688 mov r0, #0x0 add r1, r5, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r4, #0x0 mov r6, #0xab add r7, r4, #0x0 @@ -94728,7 +94728,7 @@ FUN_0202BEDC: ; 0x0202BEDC ldr r2, _0202BF14 ; =0x00000588 mov r0, #0x0 add r1, r5, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r4, #0x0 mov r6, #0xab add r7, r4, #0x0 @@ -94837,14 +94837,14 @@ FUN_0202BF90: ; 0x0202BF90 str r0, [r3, r2] add r0, r2, #0x4 str r1, [r3, r0] - blx FUN_020CD510 + blx OS_GetOwnerRtcOffset ldr r2, _0202BFD4 ; =0x00000678 str r0, [r5, r2] add r0, r2, #0x4 add r2, #0x8 str r1, [r5, r0] add r0, r5, r2 - blx FUN_020CD5A0 + blx OS_GetMacAddress pop {r4-r6, pc} nop _0202BFCC: .word 0x00000588 @@ -94935,7 +94935,7 @@ FUN_0202C060: ; 0x0202C060 sub sp, #0x8 add r4, r0, #0x0 add r0, sp, #0x0 - blx FUN_020CD5A0 + blx OS_GetMacAddress mov r0, #0x1a mov r3, #0x0 add r5, sp, #0x0 @@ -94963,7 +94963,7 @@ _0202C084: FUN_0202C094: ; 0x0202C094 push {r4, lr} add r4, r0, #0x0 - blx FUN_020CD510 + blx OS_GetOwnerRtcOffset ldr r2, _0202C0B4 ; =0x00000678 ldr r3, [r4, r2] add r2, r2, #0x4 @@ -95195,14 +95195,14 @@ _0202C230: lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x4 - blx FUN_020CC124 + blx DC_InvalidateRange mov r0, #0x66 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r4, r0 mov r1, #0x4 - blx FUN_020CC15C + blx DC_FlushRange ldr r0, _0202C280 ; =FUN_0202C288 blx FUN_020D9554 cmp r0, #0x2 @@ -95784,7 +95784,7 @@ _0202C6D0: sub r0, #0xf0 add r0, r2, r0 mov r1, #0xc0 - blx FUN_020CC124 + blx DC_InvalidateRange ldr r0, _0202C760 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C768 ; =0x00001320 @@ -95935,7 +95935,7 @@ _0202C800: ldr r0, _0202C84C ; =0x02105D54 add r1, #0x1 mov r2, #0x3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 bl FUN_02033534 add r1, sp, #0x4 strb r0, [r1, #0x0] @@ -96264,7 +96264,7 @@ FUN_0202CA88: ; 0x0202CA88 add r0, r1, r0 ldr r1, [r1, r2] add r7, r3, #0x0 - blx FUN_020CC15C + blx DC_FlushRange ldr r0, _0202CAD8 ; =0x0000FFFF add r1, r7, #0x0 str r0, [sp, #0x0] @@ -96461,7 +96461,7 @@ FUN_0202CBFC: ; 0x0202CBFC push {r3-r5, lr} sub sp, #0x8 add r0, sp, #0x0 - blx FUN_020CD5A0 + blx OS_GetMacAddress ldr r0, _0202CC84 ; =0x027FFC3C ldr r3, [r0, #0x0] add r0, sp, #0x0 @@ -97037,14 +97037,14 @@ _0202D066: ldr r1, _0202D09C ; =0x00001220 add r1, r2, r1 mov r2, #0xc0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0202D094 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D09C ; =0x00001220 add r0, r1, r0 mov r1, #0xc0 - blx FUN_020CC15C - blx FUN_020CC180 + blx DC_FlushRange + blx DC_WaitWriteBufferEmpty bl FUN_0202C7E8 pop {r4-r6, pc} _0202D08E: @@ -97886,7 +97886,7 @@ _0202D660: ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] add r2, r3, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _0202D66A: ldrh r0, [r5, #0xc] ldr r1, [r4, #0x0] @@ -98060,7 +98060,7 @@ _0202D7A4: add r0, r6, #0x0 mov r1, #0x0 mov r2, #0x10 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r4, #0x4] ldr r7, [sp, #0x0] cmp r0, #0x0 @@ -98094,7 +98094,7 @@ FUN_0202D7D8: ; 0x0202D7D8 mov r1, #0x0 mov r2, #0x20 add r5, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 lsl r7, r4, #0x4 mov r0, #0xf add r1, r7, #0x0 @@ -98102,7 +98102,7 @@ FUN_0202D7D8: ; 0x0202D7D8 mov r1, #0x0 add r2, r7, #0x0 str r0, [r5, #0x18] - blx FUN_020CE34C + blx MI_CpuFill8 str r4, [r5, #0x1c] str r6, [r5, #0x14] pop {r3-r7, pc} @@ -98116,7 +98116,7 @@ FUN_0202D804: ; 0x0202D804 ldr r0, [r4, #0x18] mov r1, #0x0 lsl r2, r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 str r0, [r4, #0x0] str r0, [r4, #0x4] @@ -98587,7 +98587,7 @@ FUN_0202DB14: ; 0x0202DB14 str r0, [r1, #0x0] mov r1, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 mov r6, #0x0 ldr r7, _0202DBA0 ; =0x021C59E4 add r4, r6, #0x0 @@ -98710,7 +98710,7 @@ FUN_0202DBE0: ; 0x0202DBE0 ldr r0, [r0, #0x0] add r0, #0x64 add r0, r0, r5 - blx FUN_020CD5A0 + blx OS_GetMacAddress add r0, r7, #0x0 mov r1, #0x1 mov r2, #0x0 @@ -98720,7 +98720,7 @@ FUN_0202DBE0: ; 0x0202DBE0 ldr r1, [r1, #0x0] add r1, #0x54 add r1, r1, r5 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_02029B38 ldr r1, _0202DCD8 ; =0x021C59E4 @@ -98762,7 +98762,7 @@ FUN_0202DBE0: ; 0x0202DBE0 mov r2, #0x20 add r0, #0x8 add r0, r0, r5 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r1, [r0, #0x0] ldr r0, [r1, #0x0] @@ -98838,7 +98838,7 @@ FUN_0202DD08: ; 0x0202DD08 add r3, r1, #0x0 mul r3, r2 add r1, r5, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r4, #0x62 ldr r2, _0202DD78 ; =0x021C59E4 ldrb r3, [r4, #0x0] @@ -98888,7 +98888,7 @@ FUN_0202DD80: ; 0x0202DD80 add r1, #0x8 add r1, r1, r4 add r2, r3, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0202DDE0 ; =0x021C59E4 add r1, r5, #0x0 ldr r0, [r0, #0x0] @@ -98966,7 +98966,7 @@ _0202DE0A: ldr r0, [r1, r0] add r6, #0x28 add r1, r6, r5 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r1, _0202DE70 ; =0x021C59E4 mov r0, #0x4 ldr r1, [r1, #0x0] @@ -99603,7 +99603,7 @@ FUN_0202E29C: ; 0x0202E29C str r0, [r1, #0x8] mov r1, #0x0 lsl r2, r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 bl FUN_0202CEEC add r1, r0, #0x0 mov r0, #0xf @@ -99619,7 +99619,7 @@ FUN_0202E29C: ; 0x0202E29C ldr r0, _0202E338 ; =0x00000CA4 ldr r0, [r1, r0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 bl FUN_02023AC4 add r1, r0, #0x0 mov r0, #0xf @@ -99635,7 +99635,7 @@ FUN_0202E29C: ; 0x0202E29C ldr r0, _0202E33C ; =0x00000CBC ldr r0, [r1, r0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r2, _0202E334 ; =0x021C59E8 mov r1, #0x33 ldr r3, _0202E340 ; =0x00000333 @@ -99771,7 +99771,7 @@ _0202E3D2: mul r1, r2 add r0, r7, #0x0 add r1, r3, r1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3-r7, pc} _0202E412: add r6, r6, #0x1 @@ -99808,7 +99808,7 @@ _0202E434: mul r3, r2 add r0, r7, #0x0 add r1, r4, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0202E464 ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] @@ -99826,7 +99826,7 @@ FUN_0202E470: ; 0x0202E470 push {r3, lr} cmp r1, #0x0 beq _0202E47A - blx FUN_020CD850 + blx OS_Terminate _0202E47A: ldr r0, _0202E484 ; =0x021C59E8 mov r1, #0x2 @@ -99861,7 +99861,7 @@ FUN_0202E49C: ; 0x0202E49C blx FUN_02090DB8 cmp r0, #0x1 beq _0202E4BC - blx FUN_020CD850 + blx OS_Terminate _0202E4BC: pop {r3, pc} nop @@ -99956,7 +99956,7 @@ _0202E544: ldr r0, [r0, #0x8] lsl r2, r2, #0xa add r0, #0x54 - blx FUN_020CE34C + blx MI_CpuFill8 pop {r3-r5, pc} nop _0202E564: .word 0x021C59E8 @@ -100673,7 +100673,7 @@ _0202EACE: add r2, r0, #0x0 add r0, r4, #0x0 add r1, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 bl FUN_02023AC4 add r2, r0, #0x0 ldr r0, _0202EB6C ; =0x021C59E8 @@ -100682,7 +100682,7 @@ _0202EACE: ldr r0, [r1, r0] add r1, r5, #0x0 add r1, #0x30 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_020239BC str r0, [r5, #0x0] @@ -100697,7 +100697,7 @@ _0202EACE: add r0, r1, r0 add r1, r5, #0x0 add r1, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 bl FUN_0202D358 add r5, #0x54 strb r0, [r5, #0x0] @@ -100719,14 +100719,14 @@ _0202EB24: ldr r0, [r0, #0x8] add r1, r5, #0x0 mov r2, #0x54 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _0202EB4E: ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB70 ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c - blx FUN_020CC15C + blx DC_FlushRange ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB70 ; =0x00000CC4 @@ -100758,7 +100758,7 @@ FUN_0202EB7C: ; 0x0202EB7C ldr r0, _0202EBCC ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c - blx FUN_020CC15C + blx DC_FlushRange ldr r0, _0202EBC8 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EBCC ; =0x00000CC4 @@ -101333,7 +101333,7 @@ _0202EFC2: add r1, r4, #0x0 mul r1, r2 add r1, r3, r1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _0202EFD8: pop {r3-r5, pc} nop @@ -101426,7 +101426,7 @@ _0202F074: .word 0x00000DAD thumb_func_start FUN_0202F078 FUN_0202F078: ; 0x0202F078 ldr r1, _0202F088 ; =0x021C59E8 - ldr r3, _0202F08C ; =FUN_020CE3E0 + ldr r3, _0202F08C ; =MI_CpuCopy8 ldr r2, [r1, #0x8] ldr r1, _0202F090 ; =0x00000CA8 add r1, r2, r1 @@ -101434,7 +101434,7 @@ FUN_0202F078: ; 0x0202F078 bx r3 nop _0202F088: .word 0x021C59E8 -_0202F08C: .word FUN_020CE3E0 +_0202F08C: .word MI_CpuCopy8 _0202F090: .word 0x00000CA8 thumb_func_start FUN_0202F094 @@ -101448,7 +101448,7 @@ FUN_0202F094: ; 0x0202F094 ldr r1, _0202F0B4 ; =0x00000CBC add r0, r4, #0x0 ldr r1, [r3, r1] - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r4, pc} nop _0202F0B0: .word 0x021C59E8 @@ -101509,7 +101509,7 @@ FUN_0202F10C: ; 0x0202F10C ldr r1, _0202F120 ; =0x021C59E8 mov r2, #0x54 ldr r1, [r1, #0x8] - blx FUN_020CE3E0 + blx MI_CpuCopy8 bl FUN_0202F0B8 pop {r3, pc} nop @@ -101570,7 +101570,7 @@ _0202F178: ldr r2, _0202F2C0 ; =0x0000068C str r0, [r1, #0x4] add r1, r4, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2C4 ; =0x00000658 ldr r0, [r2, #0x4] @@ -101759,7 +101759,7 @@ FUN_0202F2F0: ; 0x0202F2F0 ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 - blx FUN_020CE34C + blx MI_CpuFill8 mov r4, #0x0 cmp r6, #0x0 ble _0202F360 @@ -101792,7 +101792,7 @@ _0202F360: ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 - blx FUN_020CE34C + blx MI_CpuFill8 mov r5, #0x0 cmp r6, #0x0 ble _0202F3A2 @@ -101824,7 +101824,7 @@ _0202F3A2: add r0, r1, r0 mov r1, #0x0 lsl r2, r2, #0x6 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r1, #0xb5 ldr r2, [r0, #0x4] @@ -101858,7 +101858,7 @@ _0202F3DA: mov r1, #0x0 add r0, #0x4c lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r2, #0x42 ldr r1, [r0, #0x4] @@ -101894,7 +101894,7 @@ _0202F420: ldr r0, [r3, r0] mov r1, #0x0 lsl r2, r2, #0x1 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r1, #0x47 ldr r3, [r0, #0x4] @@ -102073,7 +102073,7 @@ FUN_0202F5A4: ; 0x0202F5A4 ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 - blx FUN_020CE34C + blx MI_CpuFill8 mov r4, #0x0 cmp r6, #0x0 ble _0202F606 @@ -102106,7 +102106,7 @@ _0202F606: ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 - blx FUN_020CE34C + blx MI_CpuFill8 mov r5, #0x0 cmp r6, #0x0 ble _0202F648 @@ -102138,7 +102138,7 @@ _0202F648: add r0, r1, r0 mov r1, #0x0 lsl r2, r2, #0x6 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r1, #0xb5 ldr r2, [r0, #0x4] @@ -102172,7 +102172,7 @@ _0202F680: mov r1, #0x0 add r0, #0x4c lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r2, #0x42 ldr r1, [r0, #0x4] @@ -102208,7 +102208,7 @@ _0202F6C6: ldr r0, [r3, r0] mov r1, #0x0 lsl r2, r2, #0x1 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r1, #0x47 ldr r3, [r0, #0x4] @@ -105048,7 +105048,7 @@ _02030D22: ldr r0, [sp, #0x8] add r1, r2, r1 ldr r2, [sp, #0xc] - blx FUN_020CE3E0 + blx MI_CpuCopy8 _02030D42: ldr r1, [r5, #0x0] ldr r0, [sp, #0xc] @@ -106051,7 +106051,7 @@ FUN_02031480: ; 0x02031480 ldr r2, _020314CC ; =0x00000253 str r0, [r1, #0x0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 _0203149C: ldr r1, _020314C8 ; =0x021C59FC mov r3, #0x0 @@ -106327,7 +106327,7 @@ _02031672: add r1, r7, #0x0 add r0, r0, r5 mov r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x8 @@ -106369,7 +106369,7 @@ FUN_020316AC: ; 0x020316AC add r3, #0x18 add r0, r1, #0x0 add r1, r3, r4 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r1, _020316DC ; =0x021C59FC mov r0, #0x14 ldr r1, [r1, #0x0] @@ -106423,7 +106423,7 @@ FUN_02031704: ; 0x02031704 add r4, #0x18 mul r3, r2 add r1, r4, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3-r5, pc} nop _0203172C: .word 0x021C59FC @@ -106450,7 +106450,7 @@ FUN_02031734: ; 0x02031734 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _020317BC ; =0x021C5A00 mov r2, #0x32 ldr r1, [r0, #0x0] @@ -109983,7 +109983,7 @@ FUN_02033288: ; 0x02033288 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _020332D8 ; =0x021C5A00 mov r2, #0x18 ldr r1, [r0, #0x0] @@ -110049,7 +110049,7 @@ FUN_02033310: ; 0x02033310 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _02033360 ; =0x021C5A00 mov r2, #0x19 ldr r1, [r0, #0x0] @@ -110229,7 +110229,7 @@ _02033482: mov r1, #0x0 ldr r0, [r0, #0x0] add r2, r4, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _020334D4 ; =0x021C5A00 mov r1, #0x0 ldr r2, [r0, #0x0] @@ -110335,27 +110335,27 @@ _02033560: .word 0x021C5A00 thumb_func_start FUN_02033564 FUN_02033564: ; 0x02033564 ldr r1, _02033570 ; =0x021C5A00 - ldr r3, _02033574 ; =FUN_020CE3E0 + ldr r3, _02033574 ; =MI_CpuCopy8 ldr r1, [r1, #0x0] mov r2, #0x6 add r1, r1, #0x4 bx r3 .balign 4 _02033570: .word 0x021C5A00 -_02033574: .word FUN_020CE3E0 +_02033574: .word MI_CpuCopy8 thumb_func_start FUN_02033578 FUN_02033578: ; 0x02033578 add r1, r0, #0x0 ldr r0, _02033588 ; =0x021C5A00 - ldr r3, _0203358C ; =FUN_020CE3E0 + ldr r3, _0203358C ; =MI_CpuCopy8 ldr r0, [r0, #0x0] mov r2, #0x6 add r0, r0, #0x4 bx r3 nop _02033588: .word 0x021C5A00 -_0203358C: .word FUN_020CE3E0 +_0203358C: .word MI_CpuCopy8 thumb_func_start FUN_02033590 FUN_02033590: ; 0x02033590 @@ -110978,7 +110978,7 @@ _02033A1C: add r0, r7, #0x0 add r1, r1, r3 mov r2, #0xc - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r5, #0x0 bl FUN_0202E1BC b _02033A5C @@ -111022,7 +111022,7 @@ FUN_02033A70: ; 0x02033A70 bl FUN_0202DFD8 ldr r1, [sp, #0x8] mov r2, #0xc - blx FUN_020CE3E0 + blx MI_CpuCopy8 _02033AA6: ldr r0, [sp, #0x28] cmp r0, #0x0 @@ -111377,7 +111377,7 @@ FUN_02033D3C: ; 0x02033D3C mov r1, #0x96 ldr r0, [sp, #0x4] lsl r1, r1, #0x2 - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [sp, #0x4] add r1, sp, #0x0 blx FUN_020B0138 @@ -111430,7 +111430,7 @@ _02033DC8: mov r1, #0x96 ldr r0, [sp, #0x4] lsl r1, r1, #0x2 - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [sp, #0x4] add r1, sp, #0x0 blx FUN_020B0088 @@ -111642,13 +111642,13 @@ FUN_02033F50: ; 0x02033F50 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] - ldr r3, _02033F6C ; =FUN_020CDA1C + ldr r3, _02033F6C ; =MI_WaitDma mov r0, #0x3 bx r3 nop _02033F64: .word 0x027E0000 _02033F68: .word 0x00003FF8 -_02033F6C: .word FUN_020CDA1C +_02033F6C: .word MI_WaitDma thumb_func_start FUN_02033F70 FUN_02033F70: ; 0x02033F70 @@ -111692,12 +111692,12 @@ _02033FA4: mov r1, #0x0 bl FUN_0200E3A0 mov r0, #0x1 - blx FUN_020C9E14 + blx OS_DisableIrqMask ldr r1, _02034154 ; =FUN_02033F50 mov r0, #0x1 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x1 - blx FUN_020C9E5C + blx OS_EnableIrqMask mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 @@ -112144,7 +112144,7 @@ _0203440A: add r0, r5, #0x0 add r1, r4, r1 add r2, r7, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, [sp, #0x8] add r5, r5, r7 cmp r0, #0x0 @@ -112155,7 +112155,7 @@ _0203440A: add r1, r4, #0x2 mul r2, r3 lsl r2, r2, #0x1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldrb r1, [r4, #0x1] ldrb r0, [r4, #0x0] mul r0, r1 @@ -112171,7 +112171,7 @@ _0203443A: mul r2, r3 lsr r0, r0, #0x10 lsl r2, r2, #0x1 - blx FUN_020CE1C8 + blx MIi_CpuClear16 _0203444E: ldr r0, [sp, #0x4] cmp r0, #0x0 @@ -112182,7 +112182,7 @@ _0203444E: add r0, r5, #0x0 add r1, r4, r1 mul r2, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldrb r1, [r4, #0x1] ldrb r0, [r4, #0x0] mul r0, r1 @@ -112195,7 +112195,7 @@ _0203446C: mul r2, r3 add r1, r4, r1 lsl r2, r2, #0x1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_02016A18 add sp, #0xc @@ -112389,7 +112389,7 @@ FUN_020345A8: ; 0x020345A8 ldr r2, _020345D8 ; =0x00000708 add r0, r0, r1 add r1, r5, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 @@ -113482,7 +113482,7 @@ FUN_02034CEC: ; 0x02034CEC mov r0, #0x0 add r1, r5, r1 lsl r2, r2, #0x8 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r0, #0xa add r1, r4, #0x0 bl FUN_020065A4 @@ -113563,14 +113563,14 @@ FUN_02034D80: ; 0x02034D80 thumb_func_start FUN_02034D88 FUN_02034D88: ; 0x02034D88 - ldr r3, _02034D94 ; =FUN_020CE1FC + ldr r3, _02034D94 ; =MIi_CpuClear32 mov r2, #0x5 add r1, r0, #0x0 mov r0, #0x0 lsl r2, r2, #0xa bx r3 .balign 4 -_02034D94: .word FUN_020CE1FC +_02034D94: .word MIi_CpuClear32 thumb_func_start FUN_02034D98 FUN_02034D98: ; 0x02034D98 @@ -118410,7 +118410,7 @@ FUN_02037400: ; 0x02037400 mov r1, #0x0 mov r2, #0xb8 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0xb mov r1, #0x10 bl FUN_02016998 @@ -119102,7 +119102,7 @@ FUN_0203797C: ; 0x0203797C mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x40 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] @@ -119484,7 +119484,7 @@ FUN_02037C7C: ; 0x02037C7C mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0x4] @@ -121187,7 +121187,7 @@ FUN_02038A3C: ; 0x02038A3C ldr r0, _02038AAC ; =0x020F2BE8 add r1, sp, #0x8 mov r2, #0xc - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r4, #0x0 mov r7, #0xc add r6, sp, #0x8 @@ -128382,7 +128382,7 @@ FUN_0203C200: ; 0x0203C200 mov r2, #0x8 str r0, [r6, #0x0] add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [sp, #0x0] strh r7, [r4, #0x4] strh r0, [r4, #0x6] @@ -140989,7 +140989,7 @@ FUN_020427D0: ; 0x020427D0 ldr r0, _0204285C ; =0x00000884 mov r2, #0x46 add r0, r6, r0 - blx FUN_020CE34C + blx MI_CpuFill8 cmp r4, #0x0 beq _0204281E cmp r4, #0x1 @@ -141946,7 +141946,7 @@ FUN_02042F6C: ; 0x02042F6C add r2, r7, #0x0 bl FUN_020671BC add r6, r0, #0x0 - blx FUN_020CCC1C + blx OS_GetTick bl FUN_0201BA10 add r1, r0, #0x0 ldr r0, [sp, #0x14] @@ -150759,7 +150759,7 @@ FUN_020476CC: ; 0x020476CC mov r1, #0x0 lsl r2, r2, #0x2 add r7, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r1, #0x63 str r4, [r7, #0x0] mov r0, #0x0 @@ -150775,7 +150775,7 @@ _020476FA: add r1, r4, #0x0 mov r2, #0x34 str r0, [r6, #0x18] - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r0, [sp, #0x0] add r6, r6, #0x4 add r0, r0, #0x1 @@ -150883,7 +150883,7 @@ _02047774: add r0, r2, #0x4 add r0, r7, r0 mov r2, #0xc - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r7, #0x0 pop {r3-r7, pc} @@ -152637,7 +152637,7 @@ _02048666: mov r0, #0x4 bl FUN_020168D0 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} @@ -154712,7 +154712,7 @@ FUN_02049718: ; 0x02049718 mov r1, #0x0 mov r2, #0x1c add r7, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r5, #0x38] bl FUN_020552F8 mov r1, #0x0 @@ -155524,7 +155524,7 @@ FUN_02049D9C: ; 0x02049D9C add r6, r0, #0x0 mov r1, #0x0 mov r2, #0x1c - blx FUN_020CE34C + blx MI_CpuFill8 add r2, r6, #0x0 ldmia r4!, {r0-r1} add r2, #0x8 @@ -155655,7 +155655,7 @@ FUN_02049EA4: ; 0x02049EA4 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_02048CB0 @@ -158449,7 +158449,7 @@ FUN_0204B388: ; 0x0204B388 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x64 - blx FUN_020CE34C + blx MI_CpuFill8 str r6, [r4, #0x0] add r0, r6, #0x0 bl FUN_02025128 @@ -159254,7 +159254,7 @@ FUN_0204B9EC: ; 0x0204B9EC add r4, r0, #0x0 mov r0, #0x0 mov r2, #0x4c - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r1, _0204BA14 ; =0x021C5A1C add r0, r4, #0x0 bl FUN_0204BB20 @@ -160259,7 +160259,7 @@ FUN_0204C0D4: ; 0x0204C0D4 beq _0204C0E6 add r0, #0x2a mov r2, #0x78 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _0204C0E6: pop {r3, pc} @@ -160271,7 +160271,7 @@ FUN_0204C0E8: ; 0x0204C0E8 add r1, r4, #0x0 add r1, #0x2a mov r2, #0x78 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldrb r1, [r4, #0x0] mov r0, #0x4 orr r0, r1 @@ -161589,7 +161589,7 @@ _0204CB32: str r0, [r1, #0x0] mov r1, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 _0204CB40: ldr r1, _0204CC34 ; =0x021C5A68 ldr r0, _0204CC38 ; =0x000002BE @@ -162743,7 +162743,7 @@ FUN_0204D43C: ; 0x0204D43C add r0, #0x5a mov r1, #0x0 mov r2, #0x8 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_0204CD78 ldr r0, _0204D4CC ; =0x021C5A68 @@ -167889,7 +167889,7 @@ FUN_0204FBB0: ; 0x0204FBB0 mov r2, #0x48 str r0, [r1, #0x0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0204FC08 ; =0x021C5A6C mov r1, #0x32 ldr r0, [r0, #0x0] @@ -170232,7 +170232,7 @@ FUN_02050E48: ; 0x02050E48 mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 @@ -170287,7 +170287,7 @@ FUN_02050ED4: ; 0x02050ED4 mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress @@ -170413,7 +170413,7 @@ _02050FDA: add r0, #0x2c add r1, #0x3d mov r2, #0x6 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, [r4, #0x4] add r0, #0x22 ldrb r0, [r0, #0x0] @@ -171503,7 +171503,7 @@ _0205188E: add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x8c - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x5 add r0, #0x43 @@ -171689,7 +171689,7 @@ _02051A16: bl FUN_0206B9B0 add r1, r4, #0x0 add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r5, r5, #0x1 add r4, r4, r6 cmp r5, #0x3 @@ -171851,7 +171851,7 @@ FUN_02051B1C: ; 0x02051B1C mul r2, r4 add r1, r3, r2 add r2, r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, [r6, #0x50] mov r1, #0x3 bl FUN_0206B8CC @@ -172595,7 +172595,7 @@ _0205211E: mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 str r0, [r4, #0x10] mov r0, #0x28 @@ -173980,7 +173980,7 @@ FUN_02052B74: ; 0x02052B74 add r0, sp, #0x0 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 cmp r4, #0xb bhi _02052BFA add r0, r4, r4 @@ -174442,7 +174442,7 @@ FUN_02052EE8: ; 0x02052EE8 ldr r2, _02052F58 ; =0x000004E8 mov r0, #0x0 add r1, r4, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r0, #0x4e str r5, [r4, #0x0] mov r1, #0x1 @@ -179020,7 +179020,7 @@ FUN_02054F50: ; 0x02054F50 mov r1, #0x0 mov r2, #0x14 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, sp, #0x8 ldrh r0, [r0, #0x10] cmp r0, #0x0 @@ -179123,7 +179123,7 @@ FUN_0205502C: ; 0x0205502C add r4, r0, #0x0 mov r1, #0x0 mov r2, #0xc - blx FUN_020CE34C + blx MI_CpuFill8 strh r6, [r4, #0x4] strh r7, [r4, #0x6] str r5, [r4, #0x0] @@ -198241,7 +198241,7 @@ FUN_0205DD40: ; 0x0205DD40 add r0, #0x1c mov r2, #0xa0 str r1, [r4, #0x18] - blx FUN_020CE34C + blx MI_CpuFill8 mov r3, #0x0 add r2, r3, #0x0 mov r0, #0x28 @@ -200109,7 +200109,7 @@ FUN_0205EB38: ; 0x0205EB38 add r7, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r7, #0x0 add r1, sp, #0xc mov r2, #0x2 @@ -201958,10 +201958,10 @@ FUN_0205F8CC: ; 0x0205F8CC bl FUN_020462AC str r0, [sp, #0x0] add r0, sp, #0x28 - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x28 add r1, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile cmp r0, #0x0 bne _0205F8F8 bl ErrorHandling @@ -201971,7 +201971,7 @@ _0205F8F8: add r0, sp, #0x28 add r1, sp, #0x24 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile cmp r0, #0x0 bge _0205F90A bl ErrorHandling @@ -201982,7 +201982,7 @@ _0205F90A: mov r1, #0x0 mov r2, #0x4 add r6, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r1, [sp, #0x24] ldr r0, _0205FA28 ; =0x0000013A mov r4, #0x0 @@ -202011,7 +202011,7 @@ _0205F94C: add r0, sp, #0x28 add r1, r6, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldrb r0, [r6, #0x0] cmp r0, #0x1 beq _0205F962 @@ -202112,7 +202112,7 @@ _0205FA0E: blt _0205F94C _0205FA16: add r0, sp, #0x28 - blx FUN_020D18FC + blx FS_CloseFile add r0, r6, #0x0 bl FUN_02016A18 add sp, #0x70 @@ -202132,7 +202132,7 @@ FUN_0205FA2C: ; 0x0205FA2C mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r6, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0xc] @@ -202239,7 +202239,7 @@ _0205FB0C: add r0, #0x2c add r1, #0xe mov r2, #0x6 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 add r0, #0x22 ldrb r0, [r0, #0x0] @@ -202265,7 +202265,7 @@ FUN_0205FB34: ; 0x0205FB34 mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0x4] @@ -202403,7 +202403,7 @@ FUN_0205FC50: ; 0x0205FC50 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x18 - blx FUN_020CE34C + blx MI_CpuFill8 strb r6, [r4, #0x8] strb r7, [r4, #0x9] add r0, sp, #0x8 @@ -202522,7 +202522,7 @@ FUN_0205FD38: ; 0x0205FD38 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x18 - blx FUN_020CE34C + blx MI_CpuFill8 strh r5, [r4, #0x12] strh r7, [r4, #0x14] ldr r0, [sp, #0x0] @@ -202601,7 +202601,7 @@ FUN_0205FDDC: ; 0x0205FDDC add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 strh r5, [r4, #0x0] strh r6, [r4, #0x2] ldr r0, [r7, #0x10] @@ -204926,7 +204926,7 @@ FUN_02061008: ; 0x02061008 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x24 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 pop {r4, pc} @@ -204947,7 +204947,7 @@ FUN_02061028: ; 0x02061028 add r1, r5, #0x0 mov r2, #0x24 add r7, r3, #0x0 - blx FUN_020CE1FC + blx MIi_CpuClear32 str r6, [r5, #0x0] add r0, r5, #0x0 add r2, r5, #0x0 @@ -205275,7 +205275,7 @@ FUN_020612AC: ; 0x020612AC mov r0, #0x0 add r1, sp, #0x0 mov r2, #0x28 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r6, #0x0 mov r1, #0x1 mov r2, #0x0 @@ -207774,7 +207774,7 @@ FUN_020625EC: ; 0x020625EC mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x50 str r0, [r4, #0x0] ldr r0, [sp, #0x0] @@ -207896,7 +207896,7 @@ _020626FE: add r0, r4, #0x0 mov r1, #0x0 lsl r2, r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_020168D0 mov r0, #0xc @@ -208360,7 +208360,7 @@ FUN_02062A70: ; 0x02062A70 mov r2, #0x3c mov r1, #0x0 mul r2, r3 - blx FUN_020CE34C + blx MI_CpuFill8 ldrb r1, [r4, #0x16] ldr r2, [r4, #0x0] add r0, r5, #0x0 @@ -209118,7 +209118,7 @@ _02063094: ldr r0, _02063164 ; =0x020F7C2C add r1, #0xa0 mov r2, #0x20 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r1, r5, #0x0 add r0, r5, #0x0 add r1, #0xd4 @@ -213489,7 +213489,7 @@ _02065290: ldr r0, [sp, #0x10] add r1, r4, #0x0 lsl r2, r2, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3-r5, pc} .balign 4 _020652A0: .word 0x000F423F @@ -213677,7 +213677,7 @@ FUN_020653EC: ; 0x020653EC mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 str r6, [r4, #0x4] bl FUN_020377AC @@ -214645,7 +214645,7 @@ _02065B9E: ldr r0, _02065CE4 ; =0x020F7E8C add r1, r5, r1 mov r2, #0x20 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r1, #0x5d lsl r1, r1, #0x2 add r0, r1, #0x0 @@ -214945,7 +214945,7 @@ _02065E14: ldr r0, _02065ED0 ; =0x020F7E8C add r1, r5, r1 mov r2, #0x20 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x5d lsl r0, r0, #0x2 add r1, r0, #0x0 @@ -215656,7 +215656,7 @@ FUN_020663D4: ; 0x020663D4 add r0, r4, r0 mov r1, #0x0 mov r2, #0x10 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x17 mov r1, #0x0 lsl r0, r0, #0x4 @@ -215997,7 +215997,7 @@ _02066676: mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r5, r0] @@ -216236,13 +216236,13 @@ FUN_02066840: ; 0x02066840 add r0, r7, #0x0 mov r1, #0x0 mov r2, #0xe4 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_0202398C add r1, r7, #0x0 add r1, #0xa8 mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_020239BC add r1, r7, #0x0 @@ -216309,7 +216309,7 @@ _020668FC: ldr r1, [sp, #0x8] mov r2, #0x8 add r1, r1, r5 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x3 @@ -216320,7 +216320,7 @@ _020668FC: add r1, r7, #0x0 add r1, #0xc0 mov r2, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02066956 @@ -216366,7 +216366,7 @@ FUN_02066978: ; 0x02066978 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0xec - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 ldrh r2, [r4, #0x6] add r0, #0x8 @@ -216386,7 +216386,7 @@ FUN_020669A0: ; 0x020669A0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x88 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 ldrh r2, [r4, #0x6] add r0, #0x8 @@ -216596,7 +216596,7 @@ FUN_02066ACC: ; 0x02066ACC mov r0, #0x0 add r1, sp, #0x14 mov r2, #0x18 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r5, #0x0 mov r1, #0xaa add r2, sp, #0x14 @@ -221575,7 +221575,7 @@ FUN_02069010: ; 0x02069010 add r0, sp, #0xc add r1, r4, #0x0 mov r2, #0x14 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add sp, #0x20 pop {r3-r5, pc} .balign 4 @@ -222287,20 +222287,20 @@ FUN_02069558: ; 0x02069558 bl ErrorHandling _0206956E: add r0, sp, #0x4 - blx FUN_020D1C94 + blx FS_InitFile ldr r1, _020695A4 ; =0x02105FC8 add r0, sp, #0x4 - blx FUN_020D1944 + blx FS_OpenFile add r0, sp, #0x4 lsl r1, r4, #0x1 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x4 add r1, sp, #0x0 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x4 - blx FUN_020D18FC + blx FS_CloseFile add r0, sp, #0x0 ldrh r0, [r0, #0x0] add sp, #0x4c @@ -222964,7 +222964,7 @@ _02069A8E: mov r0, #0x0 add r1, sp, #0x4 mov r2, #0x18 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 mov r1, #0xaa add r2, sp, #0x4 @@ -225234,7 +225234,7 @@ FUN_0206AA84: ; 0x0206AA84 add r1, sp, #0x0 add r1, #0x1 mov r2, #0x18 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 mov r1, #0xa1 add r2, sp, #0x0 @@ -227993,7 +227993,7 @@ FUN_0206BE48: ; 0x0206BE48 add r0, sp, #0x30 mov r1, #0x0 mov r2, #0xc - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [sp, #0x20] mov r7, #0x0 cmp r0, #0x0 @@ -229211,21 +229211,21 @@ FUN_0206C700: ; 0x0206C700 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x80 - blx FUN_020CE240 + blx MIi_CpuClearFast bl FUN_020222F0 str r0, [sp, #0x1c] bl FUN_020222E8 add r1, r0, #0x0 ldr r2, [sp, #0x1c] mov r0, #0x0 - blx FUN_020CE1C8 + blx MIi_CpuClear16 bl FUN_02022300 str r0, [sp, #0x20] bl FUN_020222F8 add r1, r0, #0x0 ldr r2, [sp, #0x20] mov r0, #0x0 - blx FUN_020CE1C8 + blx MIi_CpuClear16 ldr r0, [sp, #0x14] str r6, [r4, #0x24] mov r1, #0x5 @@ -229346,7 +229346,7 @@ FUN_0206C700: ; 0x0206C700 ldr r1, [r4, #0x3c] mov r0, #0x0 mov r2, #0x30 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r1, [sp, #0x38] ldr r0, [r4, #0x3c] str r1, [r0, #0x2c] @@ -231339,7 +231339,7 @@ _0206D8EA: mov r0, #0x0 add r1, sp, #0x8 mov r2, #0x18 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r5, #0x0 mov r1, #0xaa add r2, sp, #0x8 @@ -231408,25 +231408,25 @@ _0206D9C6: mov r0, #0x0 lsl r1, r1, #0x18 lsl r2, r2, #0x12 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x62 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x19 mov r2, #0x1 mov r0, #0x0 lsl r1, r1, #0x16 lsl r2, r2, #0x12 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x66 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r6, _0206DC2C ; =0x020F8328 add r3, sp, #0x2c add r2, r3, #0x0 @@ -233839,22 +233839,22 @@ _0206EB9C: .word 0x00000774 thumb_func_start FUN_0206EBA0 FUN_0206EBA0: ; 0x0206EBA0 - ldr r3, _0206EBAC ; =FUN_020CE1C8 + ldr r3, _0206EBAC ; =MIi_CpuClear16 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0206EBB0 ; =0x00000774 bx r3 nop -_0206EBAC: .word FUN_020CE1C8 +_0206EBAC: .word MIi_CpuClear16 _0206EBB0: .word 0x00000774 thumb_func_start FUN_0206EBB4 FUN_0206EBB4: ; 0x0206EBB4 - ldr r3, _0206EBBC ; =FUN_020CE3E0 + ldr r3, _0206EBBC ; =MI_CpuCopy8 ldr r2, _0206EBC0 ; =0x00000774 bx r3 nop -_0206EBBC: .word FUN_020CE3E0 +_0206EBBC: .word MI_CpuCopy8 _0206EBC0: .word 0x00000774 thumb_func_start FUN_0206EBC4 @@ -234679,7 +234679,7 @@ FUN_0206F164: ; 0x0206F164 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x24 - blx FUN_020CE1C8 + blx MIi_CpuClear16 add r0, r4, #0x0 pop {r4, pc} @@ -234975,7 +234975,7 @@ _0206F34A: mov r0, #0x36 bl FUN_02211E60 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem b _0206F380 _0206F366: ldr r0, [r4, #0x0] @@ -235006,14 +235006,14 @@ FUN_0206F38C: ; 0x0206F38C mov r1, #0x0 mov r2, #0x10 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0xb mov r1, #0xc bl FUN_020169D8 mov r1, #0x0 mov r2, #0xc str r0, [r4, #0x0] - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 @@ -251798,7 +251798,7 @@ _02077D88: mov r0, #0x1 add r1, #0xd8 mov r2, #0x40 - blx FUN_020CE1C8 + blx MIi_CpuClear16 ldr r0, [r4, #0x0] cmp r0, #0x1 bne _02077DCE @@ -252365,7 +252365,7 @@ _0207818C: mov r1, #0x2 ldr r0, [r5, r0] lsl r1, r1, #0x8 - blx FUN_020CC15C + blx DC_FlushRange bl FUN_0206B888 add r1, r0, #0x0 mov r0, #0x13 @@ -252378,7 +252378,7 @@ _0207818C: add r0, r1, #0x4 ldr r0, [r5, r0] mov r1, #0x80 - blx FUN_020CC15C + blx DC_FlushRange _02078272: mov r3, #0x1 str r3, [sp, #0x0] @@ -254046,7 +254046,7 @@ FUN_02078FA0: ; 0x02078FA0 bl FUN_02078F7C mov r1, #0x2 lsl r1, r1, #0xa - blx FUN_020CC15C + blx DC_FlushRange add r7, r6, #0x0 mov r4, #0x0 add r7, #0x30 @@ -254062,7 +254062,7 @@ _02078FD0: mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x8 - blx FUN_020CC15C + blx DC_FlushRange ldr r1, _02079070 ; =0x020F9D28 mov r2, #0x1 ldrb r1, [r1, r4] @@ -254102,7 +254102,7 @@ _02079012: bl FUN_02078F7C mov r1, #0x80 add r7, r0, #0x0 - blx FUN_020CC15C + blx DC_FlushRange ldr r1, _02079078 ; =0x020F9D40 lsl r2, r5, #0x2 ldr r1, [r1, r2] @@ -269399,7 +269399,7 @@ FUN_02080C38: ; 0x02080C38 mov r1, #0x0 mov r2, #0x8 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r1, _02080C5C ; =FUN_02080C60 add r0, r5, #0x0 add r2, r4, #0x0 @@ -269623,7 +269623,7 @@ FUN_02080E0C: ; 0x02080E0C mov r1, #0x0 mov r2, #0x8 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _02080E50 ; =0x00000121 str r6, [r4, #0x0] ldrb r0, [r6, r0] @@ -270124,7 +270124,7 @@ FUN_020811D8: ; 0x020811D8 ldr r2, _02081204 ; =0x000019C4 mov r1, #0x0 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _02081208 ; =0x00000123 mov r1, #0x0 strb r1, [r4, r0] @@ -270639,7 +270639,7 @@ FUN_020815D0: ; 0x020815D0 mov r1, #0x0 mov r2, #0x28 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _02081658 ; =0x00000123 ldrb r1, [r5, r0] lsl r1, r1, #0x2 @@ -271255,7 +271255,7 @@ _02081A8A: ldr r1, _02081D30 ; =0x00000585 ldr r0, [r4, r0] add r1, r4, r1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0xc bl FUN_02031588 ldr r0, _02081D2C ; =0x00000584 @@ -272614,7 +272614,7 @@ _02082456: mov r1, #0x0 mov r2, #0x10 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r6, #0x0 bl FUN_020832E4 strb r0, [r4, #0xc] @@ -274786,7 +274786,7 @@ _02083474: add r0, sp, #0x0 add r1, r4, #0x0 mov r2, #0xc - blx FUN_020CE34C + blx MI_CpuFill8 mov r1, #0x2 add r0, sp, #0x0 strb r1, [r0, #0x0] @@ -274939,7 +274939,7 @@ _02083578: add r1, r2, r1 ldr r0, [sp, #0x0] add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x1 strb r0, [r7, r5] pop {r3-r7, pc} @@ -274974,7 +274974,7 @@ FUN_020835B0: ; 0x020835B0 lsl r1, r6, #0x8 add r1, r2, r1 add r2, r5, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r2, _02083628 ; =0x00000584 ldrb r0, [r4, r2] add r0, r0, #0x1 @@ -275096,7 +275096,7 @@ FUN_02083694: ; 0x02083694 add r0, r5, #0x0 lsl r1, r1, #0x2 ldr r1, [r4, r1] - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _020836B8 ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 @@ -275119,7 +275119,7 @@ FUN_020836BC: ; 0x020836BC add r0, r7, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x1b add r1, r5, #0x0 add r2, r4, #0x1 @@ -275153,7 +275153,7 @@ _02083710: ldr r1, [r4, #0x0] add r0, r0, r5 add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, #0x4 add r5, r5, r6 @@ -275190,7 +275190,7 @@ _02083758: ldr r0, [r5, #0x0] add r1, r1, r4 add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, r6 add r5, r5, #0x4 @@ -275225,7 +275225,7 @@ FUN_0208378C: ; 0x0208378C add r5, #0x10 mul r3, r2 add r1, r5, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _020837B0 ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 @@ -275246,7 +275246,7 @@ FUN_020837B4: ; 0x020837B4 add r0, r6, #0x0 add r1, r4, #0x0 mov r2, #0x30 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 add r0, #0x30 strb r5, [r0, #0x0] @@ -275281,7 +275281,7 @@ _02083802: add r0, r6, r0 add r1, r5, #0x0 add r2, r7, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x3 @@ -275316,7 +275316,7 @@ _02083848: add r0, r5, #0x0 add r1, r6, r1 add r2, r7, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x3 @@ -275381,7 +275381,7 @@ FUN_020838B4: ; 0x020838B4 add r0, sp, #0x0 add r1, r4, #0x4 mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 strb r5, [r4, #0x0] mov r0, #0x10 strb r0, [r4, #0x1] @@ -275418,7 +275418,7 @@ FUN_02083904: ; 0x02083904 add r1, r4, r1 add r1, #0xf8 ldr r1, [r1, #0x0] - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0208392C ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 @@ -275441,7 +275441,7 @@ FUN_02083930: ; 0x02083930 add r0, r7, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x20 add r1, r5, #0x0 add r2, r4, #0x1 @@ -275484,7 +275484,7 @@ _02083992: ldr r1, [r1, #0x0] add r0, r0, r5 add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, #0x4 add r5, r5, r6 @@ -275527,7 +275527,7 @@ _020839E8: ldr r0, [r5, #0x0] add r1, r1, r4 add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, r6 add r5, r5, #0x4 @@ -275557,7 +275557,7 @@ FUN_02083A1C: ; 0x02083A1C add r0, r2, #0x0 add r1, r3, r1 add r2, r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r4, pc} nop _02083A30: .word 0x000019A0 @@ -275645,7 +275645,7 @@ FUN_02083AA8: ; 0x02083AA8 mov r1, #0x57 lsl r1, r1, #0x2 ldr r1, [r3, r1] - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _02083AD0 ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 @@ -275669,7 +275669,7 @@ FUN_02083AD4: ; 0x02083AD4 add r0, r6, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _02083AF4: mov r0, #0x24 add r1, r4, #0x0 @@ -275728,7 +275728,7 @@ FUN_02083B48: ; 0x02083B48 add r0, r6, #0x0 add r1, r4, #0x0 mov r2, #0x6 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x25 add r1, r4, #0x0 mov r2, #0x7 @@ -275964,7 +275964,7 @@ FUN_02083CD8: ; 0x02083CD8 add r0, r6, #0x0 add r1, r3, r1 sub r2, r2, #0x4 - blx FUN_020CE28C + blx MIi_CpuCopyFast mov r0, #0x4 str r0, [r4, #0x54] mov r0, #0x0 @@ -276054,14 +276054,14 @@ FUN_02083D5C: ; 0x02083D5C mov r2, #0x19 add r0, r5, #0x0 lsl r2, r2, #0x4 - blx FUN_020CE28C + blx MIi_CpuCopyFast b _02083D9C _02083D90: add r2, r4, r2 add r1, r2, r1 add r0, r5, #0x0 sub r2, r3, #0x4 - blx FUN_020CE28C + blx MIi_CpuCopyFast _02083D9C: mov r1, #0xb5 ldr r0, _02083DE8 ; =0x000043D0 @@ -276070,7 +276070,7 @@ _02083D9C: ldr r1, [r4, r1] add r0, r4, r0 lsl r2, r2, #0x6 - blx FUN_020CE28C + blx MIi_CpuCopyFast mov r0, #0xb2 lsl r0, r0, #0x2 add r0, r4, r0 @@ -276171,7 +276171,7 @@ FUN_02083E4C: ; 0x02083E4C mov r0, #0x0 add r1, r4, r1 lsl r2, r2, #0x6 - blx FUN_020CE240 + blx MIi_CpuClearFast bl FUN_02031190 cmp r0, #0x0 bne _02083E8A @@ -276426,7 +276426,7 @@ FUN_0208402C: ; 0x0208402C add r0, r1, r0 ldr r1, _02084078 ; =0x00007C10 add r1, r5, r1 - blx FUN_020CE28C + blx MIi_CpuCopyFast ldr r0, _02084078 ; =0x00007C10 mov r2, #0x0 add r1, r2, #0x0 @@ -279176,7 +279176,7 @@ FUN_020854E0: ; 0x020854E0 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [sp, #0x0] strb r0, [r4, #0xf] ldr r0, [sp, #0x4] @@ -279214,7 +279214,7 @@ FUN_02085538: ; 0x02085538 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 strh r0, [r4, #0x0] str r5, [r4, #0x8] @@ -279244,7 +279244,7 @@ FUN_02085578: ; 0x02085578 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 strh r0, [r4, #0x0] str r5, [r4, #0x10] @@ -279271,7 +279271,7 @@ FUN_020855B0: ; 0x020855B0 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 strh r0, [r4, #0x0] add r0, r7, #0x0 @@ -279431,7 +279431,7 @@ FUN_020856F0: ; 0x020856F0 mov r1, #0x0 mov r2, #0x34 add r6, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 strh r0, [r6, #0x0] add r0, r4, #0x0 @@ -279569,7 +279569,7 @@ FUN_020857F8: ; 0x020857F8 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r1, #0x28 str r1, [r4, #0x0] ldr r0, [r5, #0x14] @@ -281160,25 +281160,25 @@ _0208655C: mov r0, #0x0 lsl r1, r1, #0x18 lsl r2, r2, #0x12 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x62 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x19 mov r2, #0x1 mov r0, #0x0 lsl r1, r1, #0x16 lsl r2, r2, #0x12 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x66 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r5, _02086654 ; =0x020FCE24 add r3, sp, #0x1c add r2, r3, #0x0 @@ -284144,7 +284144,7 @@ FUN_02087D00: ; 0x02087D00 mov r1, #0x0 lsl r2, r2, #0x2 add r7, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_02028048 str r0, [r7, #0x8] @@ -284303,7 +284303,7 @@ FUN_02087E40: ; 0x02087E40 mov r1, #0x0 mov r2, #0x18 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x2c str r0, [r4, #0x0] str r5, [r4, #0xc] @@ -284469,7 +284469,7 @@ _02087F86: mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r5, #0xc] mov r1, #0x0 ldr r0, [r0, #0x10] @@ -284610,7 +284610,7 @@ FUN_020880A0: ; 0x020880A0 mov r1, #0x0 mov r2, #0xc add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r1, [r5, #0xc] ldrb r0, [r1, #0x1] lsl r0, r0, #0x3 @@ -284924,7 +284924,7 @@ FUN_02088320: ; 0x02088320 mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 str r6, [r4, #0x0] cmp r5, #0x10 bls _0208834A @@ -284953,7 +284953,7 @@ FUN_02088360: ; 0x02088360 add r0, r4, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} @@ -285048,7 +285048,7 @@ _02088402: ldr r0, [r0, r2] mov r1, #0x0 mov r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 add sp, #0xc pop {r4-r7, pc} .balign 4 @@ -285121,7 +285121,7 @@ _020884B4: str r0, [sp, #0x38] mov r1, #0x0 mov r2, #0x8 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r1, [sp, #0x3c] ldr r0, [sp, #0x38] strh r1, [r0, #0x0] @@ -285653,7 +285653,7 @@ FUN_02088898: ; 0x02088898 bl FUN_02088888 bl FUN_02088868 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem pop {r4, pc} .balign 4 @@ -285693,7 +285693,7 @@ FUN_020888DC: ; 0x020888DC mov r0, #0x31 bl FUN_020168D0 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem mov r0, #0x1 pop {r4, pc} .balign 4 @@ -285710,7 +285710,7 @@ FUN_0208890C: ; 0x0208890C add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 str r5, [r4, #0xc] add r0, r5, #0x0 bl FUN_02028048 @@ -285799,7 +285799,7 @@ FUN_020889B0: ; 0x020889B0 mov r1, #0x0 mov r2, #0x24 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x37 str r0, [r4, #0x0] str r5, [r4, #0x10] @@ -285899,7 +285899,7 @@ FUN_02088A78: ; 0x02088A78 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x24 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_0200627C add r0, r6, #0x0 @@ -287208,7 +287208,7 @@ FUN_020893F0: ; 0x020893F0 bhs _0208940A add r0, r1, #0x0 ldr r1, _02089410 ; =0x021C5C58 - blx FUN_020CE210 + blx MIi_CpuCopy32 ldr r0, _02089414 ; =0x02106154 str r4, [r0, #0x0] pop {r4, pc} @@ -287231,7 +287231,7 @@ FUN_02089418: ; 0x02089418 cmp r0, r3 bne _02089438 ldr r0, _02089440 ; =0x021C5C58 - blx FUN_020CE210 + blx MIi_CpuCopy32 mov r0, #0x1 pop {r3, pc} _02089434: @@ -287253,7 +287253,7 @@ FUN_02089444: ; 0x02089444 bhs _0208945E add r0, r1, #0x0 ldr r1, _02089464 ; =0x021C5C58 - blx FUN_020CE28C + blx MIi_CpuCopyFast ldr r0, _02089468 ; =0x02106154 str r4, [r0, #0x0] pop {r4, pc} @@ -287276,7 +287276,7 @@ FUN_0208946C: ; 0x0208946C cmp r0, r3 bne _0208948C ldr r0, _02089494 ; =0x021C5C58 - blx FUN_020CE28C + blx MIi_CpuCopyFast mov r0, #0x1 pop {r3, pc} _02089488: @@ -287453,7 +287453,7 @@ FUN_020895F0: ; 0x020895F0 add r0, r4, #0x0 bl FUN_020168D0 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem mov r0, #0x1 pop {r3-r5, pc} @@ -289784,13 +289784,13 @@ FUN_0208A998: ; 0x0208A998 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] - ldr r3, _0208A9B4 ; =FUN_020CDA1C + ldr r3, _0208A9B4 ; =MI_WaitDma mov r0, #0x3 bx r3 nop _0208A9AC: .word 0x027E0000 _0208A9B0: .word 0x00003FF8 -_0208A9B4: .word FUN_020CDA1C +_0208A9B4: .word MI_WaitDma thumb_func_start FUN_0208A9B8 FUN_0208A9B8: ; 0x0208A9B8 @@ -289805,15 +289805,15 @@ _0208A9C6: mov r1, #0x1 str r1, [r0, #0x0] mov r0, #0x0 - blx FUN_020CC408 + blx OS_GetInitArenaHi add r1, r0, #0x0 mov r0, #0x0 - blx FUN_020CC308 + blx OS_SetArenaHi mov r0, #0x0 - blx FUN_020CC31C + blx OS_GetInitArenaLo add r1, r0, #0x0 mov r0, #0x0 - blx FUN_020CC2F4 + blx OS_SetArenaLo mov r1, #0x1 ldr r0, _0208ABCC ; =0x020FF4A4 add r2, r1, #0x0 @@ -289826,12 +289826,12 @@ _0208A9C6: mov r1, #0x0 bl FUN_0200E3A0 mov r0, #0x1 - blx FUN_020C9E14 + blx OS_DisableIrqMask ldr r1, _0208ABD0 ; =FUN_0208A998 mov r0, #0x1 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x1 - blx FUN_020C9E5C + blx OS_EnableIrqMask mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 @@ -290008,7 +290008,7 @@ _0208AB9C: ldr r0, [sp, #0x10] bl FUN_02016A18 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem _0208ABC4: add sp, #0x24 pop {r4-r7, pc} diff --git a/global.inc b/global.inc index 9fd18132..57c538eb 100644 --- a/global.inc +++ b/global.inc @@ -320,81 +320,81 @@ .extern FUN_020C94E8 .extern FUN_020C9550 .extern OS_WaitIrq -.extern FUN_020C9E14 -.extern FUN_020C9E5C -.extern FUN_020C9FEC -.extern FUN_020CA0A0 -.extern FUN_020CA0F8 -.extern FUN_020CC124 -.extern FUN_020CC15C -.extern FUN_020CC180 -.extern FUN_020CC1B4 -.extern FUN_020CC204 -.extern FUN_020CC26C -.extern FUN_020CC2F4 -.extern FUN_020CC308 -.extern FUN_020CC31C -.extern FUN_020CC408 -.extern FUN_020CCC1C -.extern FUN_020CCD64 -.extern FUN_020CD310 -.extern FUN_020CD324 -.extern FUN_020CD374 -.extern FUN_020CD3B4 -.extern FUN_020CD510 -.extern FUN_020CD524 -.extern FUN_020CD5A0 -.extern FUN_020CD754 -.extern FUN_020CD850 -.extern FUN_020CD998 -.extern FUN_020CDA1C -.extern FUN_020CDD90 -.extern FUN_020CDE04 -.extern FUN_020CE1C8 -.extern FUN_020CE1E0 -.extern FUN_020CE1FC -.extern FUN_020CE210 -.extern FUN_020CE240 -.extern FUN_020CE28C -.extern FUN_020CE2E0 -.extern FUN_020CE34C -.extern FUN_020CE3E0 -.extern FUN_020CE528 -.extern FUN_020CF768 -.extern FUN_020D1148 -.extern FUN_020D17A0 -.extern FUN_020D180C -.extern FUN_020D182C -.extern FUN_020D18FC -.extern FUN_020D1944 -.extern FUN_020D1C94 -.extern FUN_020D1CC4 -.extern FUN_020D1CD4 -.extern FUN_020D1D10 -.extern FUN_020D1D30 -.extern FUN_020D2040 -.extern FUN_020D2094 -.extern FUN_020D2210 -.extern FUN_020D23B4 -.extern FUN_020D2454 -.extern FUN_020D24EC -.extern FUN_020D36C4 -.extern FUN_020D36D8 -.extern FUN_020D36F0 -.extern FUN_020D3A90 -.extern FUN_020D3AA0 -.extern FUN_020D3C14 -.extern FUN_020D3CB8 -.extern FUN_020D3DCC -.extern FUN_020D3E24 -.extern FUN_020D3EC4 -.extern FUN_020D400C -.extern FUN_020D40B8 -.extern FUN_020D4718 -.extern FUN_020D47CC -.extern FUN_020D4980 -.extern FUN_020D4A5C -.extern FUN_020D4E68 +.extern OS_DisableIrqMask +.extern OS_EnableIrqMask +.extern OS_SetIrqFunction +.extern OS_GetLockID +.extern OS_ReleaseLockID +.extern DC_InvalidateRange +.extern DC_FlushRange +.extern DC_WaitWriteBufferEmpty +.extern OS_Init +.extern OS_AllocFromArenaHi +.extern OS_AllocFromArenaLo +.extern OS_SetArenaLo +.extern OS_SetArenaHi +.extern OS_GetInitArenaLo +.extern OS_GetInitArenaHi +.extern OS_GetTick +.extern OS_InitTick +.extern OS_DisableInterrupts +.extern OS_RestoreInterrupts +.extern OS_GetProcMode +.extern OS_ResetSystem +.extern OS_GetOwnerRtcOffset +.extern OS_GetOwnerInfo +.extern OS_GetMacAddress +.extern OS_GetLowEntropyData +.extern OS_Terminate +.extern MI_StopDma +.extern MI_WaitDma +.extern MI_HBlankDmaCopy16 +.extern MI_HBlankDmaCopy32 +.extern MIi_CpuClear16 +.extern MIi_CpuCopy16 +.extern MIi_CpuClear32 +.extern MIi_CpuCopy32 +.extern MIi_CpuClearFast +.extern MIi_CpuCopyFast +.extern MI_Copy36B +.extern MI_CpuFill8 +.extern MI_CpuCopy8 +.extern MI_UncompressLZ8 +.extern SND_GetWaveDataAddress +.extern FS_FindArchive +.extern FS_SeekFile +.extern FS_ReadFile +.extern FS_WaitAsync +.extern FS_CloseFile +.extern FS_OpenFile +.extern FS_InitFile +.extern FS_IsAvailable +.extern FS_Init +.extern FS_TryLoadTable +.extern FS_SetDefaultDMA +.extern FS_UnloadOverlay +.extern FS_LoadOverlay +.extern FS_StartOverlay +.extern FS_LoadOverlayImage +.extern FS_LoadOverlayImageAsync +.extern FS_LoadOverlayInfo +.extern TP_CheckError +.extern TP_WaitBusy +.extern TP_GetCalibratedPoint +.extern TP_GetLatestIndexInAuto +.extern TP_GetLatestRawPointInAuto +.extern TP_RequestAutoSamplingStopAsync +.extern TP_RequestAutoSamplingStartAsync +.extern TP_WaitRawResult +.extern TP_RequestSamplingAsync +.extern TP_SetCalibrateParam +.extern TP_GetUserInfo +.extern TP_Init +.extern MIC_StopAutoSampling +.extern MIC_StartAutoSampling +.extern MIC_DoSamplingAsync +.extern MIC_Init +.extern PM_GoSleepMode .extern PM_GetBackLight .extern FUN_020D5150 .extern FUN_020D5168 @@ -414,7 +414,7 @@ .extern FUN_020D6DC4 .extern FUN_020D6F20 .extern CARD_Init -.extern FUN_020D7D18 +.extern CARD_IsPulledOut .extern FUN_020D7E9C .extern FUN_020D8A4C .extern FUN_020D8AF0 diff --git a/undefined_syms.txt b/undefined_syms.txt index 607dc0f6..6b24590a 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -17,18 +17,15 @@ FUN_0201259C = 0x0201259C; FUN_020125D4 = 0x020125D4; FUN_02015E30 = 0x02015E30; FUN_02015E60 = 0x02015E60; -InitGraphicMemory = 0x02016148; FUN_020163BC = 0x020163BC; FUN_02016438 = 0x02016438; FUN_02016464 = 0x02016464; FUN_0201B5CC = 0x0201B5CC; FUN_02020AFC = 0x02020AFC; -ErrorHandling = 0x02020C2C; FUN_02022294 = 0x02022294; FUN_020222C4 = 0x020222C4; FUN_0202254C = 0x0202254C; FUN_020227FC = 0x020227FC; -LoadPlayerDataAddress = 0x02023900; FUN_02029EF8 = 0x02029EF8; FUN_0202FB80 = 0x0202FB80; FUN_020337E8 = 0x020337E8; @@ -318,83 +315,6 @@ FUN_020C9418 = 0x020C9418; FUN_020C9480 = 0x020C9480; FUN_020C94E8 = 0x020C94E8; FUN_020C9550 = 0x020C9550; -OS_WaitIrq = 0x020C9C0C; -FUN_020C9E14 = 0x020C9E14; -FUN_020C9E5C = 0x020C9E5C; -FUN_020C9FEC = 0x020C9FEC; -FUN_020CA0A0 = 0x020CA0A0; -FUN_020CA0F8 = 0x020CA0F8; -FUN_020CC124 = 0x020CC124; -FUN_020CC15C = 0x020CC15C; -FUN_020CC180 = 0x020CC180; -FUN_020CC1B4 = 0x020CC1B4; -FUN_020CC204 = 0x020CC204; -FUN_020CC26C = 0x020CC26C; -FUN_020CC2F4 = 0x020CC2F4; -FUN_020CC308 = 0x020CC308; -FUN_020CC31C = 0x020CC31C; -FUN_020CC408 = 0x020CC408; -FUN_020CCC1C = 0x020CCC1C; -FUN_020CCD64 = 0x020CCD64; -FUN_020CD310 = 0x020CD310; -FUN_020CD324 = 0x020CD324; -FUN_020CD374 = 0x020CD374; -FUN_020CD3B4 = 0x020CD3B4; -FUN_020CD510 = 0x020CD510; -FUN_020CD524 = 0x020CD524; -FUN_020CD5A0 = 0x020CD5A0; -FUN_020CD754 = 0x020CD754; -FUN_020CD850 = 0x020CD850; -FUN_020CD998 = 0x020CD998; -FUN_020CDA1C = 0x020CDA1C; -FUN_020CDD90 = 0x020CDD90; -FUN_020CDE04 = 0x020CDE04; -FUN_020CE1C8 = 0x020CE1C8; -FUN_020CE1E0 = 0x020CE1E0; -FUN_020CE1FC = 0x020CE1FC; -FUN_020CE210 = 0x020CE210; -FUN_020CE240 = 0x020CE240; -FUN_020CE28C = 0x020CE28C; -FUN_020CE2E0 = 0x020CE2E0; -FUN_020CE34C = 0x020CE34C; -FUN_020CE3E0 = 0x020CE3E0; -FUN_020CE528 = 0x020CE528; -FUN_020CF768 = 0x020CF768; -FUN_020D1148 = 0x020D1148; -FUN_020D17A0 = 0x020D17A0; -FUN_020D180C = 0x020D180C; -FUN_020D182C = 0x020D182C; -FUN_020D18FC = 0x020D18FC; -FUN_020D1944 = 0x020D1944; -FUN_020D1C94 = 0x020D1C94; -FUN_020D1CC4 = 0x020D1CC4; -FUN_020D1CD4 = 0x020D1CD4; -FUN_020D1D10 = 0x020D1D10; -FUN_020D1D30 = 0x020D1D30; -FUN_020D2040 = 0x020D2040; -FUN_020D2094 = 0x020D2094; -FUN_020D2210 = 0x020D2210; -FUN_020D23B4 = 0x020D23B4; -FUN_020D2454 = 0x020D2454; -FUN_020D24EC = 0x020D24EC; -FUN_020D36C4 = 0x020D36C4; -FUN_020D36D8 = 0x020D36D8; -FUN_020D36F0 = 0x020D36F0; -FUN_020D3A90 = 0x020D3A90; -FUN_020D3AA0 = 0x020D3AA0; -FUN_020D3C14 = 0x020D3C14; -FUN_020D3CB8 = 0x020D3CB8; -FUN_020D3DCC = 0x020D3DCC; -FUN_020D3E24 = 0x020D3E24; -FUN_020D3EC4 = 0x020D3EC4; -FUN_020D400C = 0x020D400C; -FUN_020D40B8 = 0x020D40B8; -FUN_020D4718 = 0x020D4718; -FUN_020D47CC = 0x020D47CC; -FUN_020D4980 = 0x020D4980; -FUN_020D4A5C = 0x020D4A5C; -FUN_020D4E68 = 0x020D4E68; -PM_GetBackLight = 0x020D50D8; FUN_020D5150 = 0x020D5150; FUN_020D5168 = 0x020D5168; FUN_020D5180 = 0x020D5180; @@ -413,7 +333,7 @@ FUN_020D6DB8 = 0x020D6DB8; FUN_020D6DC4 = 0x020D6DC4; FUN_020D6F20 = 0x020D6F20; CARD_Init = 0x020D7228; -FUN_020D7D18 = 0x020D7D18; +CARD_IsPulledOut = 0x020D7D18; FUN_020D7E9C = 0x020D7E9C; FUN_020D8A4C = 0x020D8A4C; FUN_020D8AF0 = 0x020D8AF0; @@ -902,10 +822,15 @@ FUN_0224F12C = 0x0224F12C; FUN_02252534 = 0x02252534; FUN_02252538 = 0x02252538; FUN_022567E0 = 0x022567E0; +FUN_01FF84A4 = 0x01FF84A4; FUN_01FF84E4 = 0x01FF84E4; +FUN_01FF8544 = 0x01FF8544; FUN_01FF857C = 0x01FF857C; FUN_01FF85F0 = 0x01FF85F0; FUN_020005F2 = 0x020005F2; +PMi_WaitBusy = 0x020D5884; +CTRDG_IsExisting = 0x020DB68C; +PMi_SendSleepStart = 0x020D55C0; MIi_UncompressBackward = 0x02000950; OS_SpinWait = 0x020CD380; PMi_SetLED = 0x020D5338; -- cgit v1.2.3 From eb5d138e43a44482ff17834f182b77777fcb780d Mon Sep 17 00:00:00 2001 From: Mor Date: Sun, 19 Apr 2020 17:10:58 +0300 Subject: moved .externs to global.inc --- asm/FUN_020C9C0C.s | 23 ----------------------- global.inc | 23 ++++++++++++++++++++++- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/asm/FUN_020C9C0C.s b/asm/FUN_020C9C0C.s index ce0ba71d..b103a702 100644 --- a/asm/FUN_020C9C0C.s +++ b/asm/FUN_020C9C0C.s @@ -3,29 +3,6 @@ .text -.extern FUN_020005F2 -.extern _ll_udiv -.extern _s32_div_f -.extern CTRDG_Init -.extern PM_Init -.extern CARD_Init -.extern CARD_LockRom -.extern CARD_UnlockRom -.extern CARDi_ReadRom -.extern MIi_UncompressBackward -.extern PMi_SetLED -.extern OS_SpinWait -.extern PMi_Lock -.extern PMi_SetLEDAsync -.extern PMi_ReadRegister -.extern PMi_WaitBusy -.extern CTRDG_IsExisting -.extern PMi_SendSleepStart -.extern FUN_01FF857C -.extern FUN_01FF84E4 -.extern FUN_01FF85F0 -.extern FUN_01FF84A4 -.extern FUN_01FF8544 arm_func_start OS_WaitIrq diff --git a/global.inc b/global.inc index 57c538eb..bd7155df 100644 --- a/global.inc +++ b/global.inc @@ -905,4 +905,25 @@ .extern FUN_02252534 .extern FUN_02252538 .extern FUN_022567E0 -.extern NitroMain \ No newline at end of file +.extern NitroMain + +.extern FUN_020005F2 +.extern CTRDG_Init +.extern PM_Init +.extern CARD_LockRom +.extern CARD_UnlockRom +.extern CARDi_ReadRom +.extern MIi_UncompressBackward +.extern PMi_SetLED +.extern OS_SpinWait +.extern PMi_Lock +.extern PMi_SetLEDAsync +.extern PMi_ReadRegister +.extern PMi_WaitBusy +.extern CTRDG_IsExisting +.extern PMi_SendSleepStart +.extern FUN_01FF857C +.extern FUN_01FF84E4 +.extern FUN_01FF85F0 +.extern FUN_01FF84A4 +.extern FUN_01FF8544 \ No newline at end of file -- cgit v1.2.3 From cba5674ddc761e24b37bc05ff3375eddebd13c27 Mon Sep 17 00:00:00 2001 From: Mor Date: Sun, 19 Apr 2020 17:55:52 +0300 Subject: added EOF newline in global.inc and changed secure.s to use thumb_func_start macro --- asm/secure.s | 4 ++-- global.inc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/asm/secure.s b/asm/secure.s index f889a118..73197bf2 100644 --- a/asm/secure.s +++ b/asm/secure.s @@ -1,11 +1,11 @@ /* secure.s TODO: Disassemble */ + .include "asm/macros.inc" .section .text .incbin "baserom.nds", 0x4000, 0x5F2 - .global FUN_020005F2 - .thumb + thumb_func_start FUN_020005F2: swi 3 bx lr diff --git a/global.inc b/global.inc index bd7155df..7987d56e 100644 --- a/global.inc +++ b/global.inc @@ -926,4 +926,4 @@ .extern FUN_01FF84E4 .extern FUN_01FF85F0 .extern FUN_01FF84A4 -.extern FUN_01FF8544 \ No newline at end of file +.extern FUN_01FF8544 -- cgit v1.2.3 From 16de0d1dd63c15454e6d1af4ecf1f70b8034a745 Mon Sep 17 00:00:00 2001 From: Mor Date: Sun, 19 Apr 2020 17:58:45 +0300 Subject: fixed thumb_func_start macro use --- asm/secure.s | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/asm/secure.s b/asm/secure.s index 73197bf2..05d39175 100644 --- a/asm/secure.s +++ b/asm/secure.s @@ -5,7 +5,7 @@ .incbin "baserom.nds", 0x4000, 0x5F2 - thumb_func_start + thumb_func_start FUN_020005F2 FUN_020005F2: swi 3 bx lr -- cgit v1.2.3 From f3d0e11e1e7023ebac9489345e81d11b942a83b3 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sun, 19 Apr 2020 13:32:49 -0400 Subject: correct asm dependency. --- Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 6a43a9c8..c66c9afd 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ # Makefile to build Pokemon Diamond image -.PHONY: clean tidy all default +.PHONY: clean tidy all default patch_mwasmarm # Try to include devkitarm if installed TOOLCHAIN := $(DEVKITARM) @@ -93,7 +93,7 @@ MWASMARM_PATCHER = tools/mwasmarm_patcher/mwasmarm_patcher$(EXE) ######################### Targets ########################### -all: $(ROM) +all: patch_mwasmarm $(ROM) @$(SHA1SUM) -c $(TARGET).sha1 clean: tidy @@ -110,14 +110,14 @@ ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS)) $(BUILD_DIR)/%.o: %.c $(CC) -c $(CFLAGS) -o $@ $< -$(BUILD_DIR)/%.o: %.s patch_mwasmarm +$(BUILD_DIR)/%.o: %.s $(AS) $(ASFLAGS) $< -o $@ -$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) +$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< $(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) - $(LD) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) -nodead -w off + $(LD) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) -map -nodead -w off $(ROM): $(ELF) $(OBJCOPY) -O binary $< $@ -- cgit v1.2.3 From 8c12f7d91fe48e0f01e49774eb8bec7eab84ec1a Mon Sep 17 00:00:00 2001 From: red031000 Date: Sun, 19 Apr 2020 21:00:19 +0100 Subject: update install.md with fix for license issue --- INSTALL.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/INSTALL.md b/INSTALL.md index 2803a159..1ffc5c59 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -47,3 +47,7 @@ Install them using either the Cygwin package manager or using pacman on Msys2. ### 4. Build ROM Run `make` to build the ROM. + +Windows Users: + +If you get an error in saving configuration settings when specifying the license file, you need to add a system environment variable called LM_LICENSE_FILE and point it to the license.dat file. -- cgit v1.2.3