diff --git a/Makefile b/Makefile index cb5149ba2..43483231e 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ TARGET := pokediamond.us ROM := $(BUILD_DIR)/$(TARGET).nds ELF := $(BUILD_DIR)/$(TARGET).elf -LD_SCRIPT := ld_script.txt +LD_SCRIPT := pokediamond.lcf # Directories containing source files SRC_DIRS := src @@ -31,17 +31,26 @@ MWCCVERSION := 2.0/base CROSS := arm-linux-gnueabi- -MWCCARM := tools/mwccarm/$(MWCCVERSION)/mwccarm.exe +MWCCARM := tools/mwccarm/$(MWCCVERSION)/mwccarm.exe +# Argh... due to EABI version shenanigans, we can't use GNU LD to link together +# MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we +# have to use mwldarm for now. +# TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the +# only dependency should be MWCCARM. +MWLDARM := tools/mwccarm/$(MWCCVERSION)/mwldarm.exe +MWASMARM := tools/mwccarm/$(MWCCVERSION)/mwasmarm.exe -AS := $(CROSS)as +AS := $(MWASMARM) CC := $(MWCCARM) CPP := cpp -P -LD := $(CROSS)ld +LD := $(MWLDARM) AR := $(CROSS)ar OBJDUMP := $(CROSS)objdump OBJCOPY := $(CROSS)objcopy -CFLAGS = -O4,p -proc arm946e -thumb -fp soft -lang c -Cpp_exceptions off +# ./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 ####################### Other Tools ######################### @@ -63,13 +72,13 @@ $(BUILD_DIR)/%.o: %.c $(CC) -c $(CFLAGS) -o $@ $< $(BUILD_DIR)/%.o: %.s - $(AS) $(ASFLAGS) -MD $(BUILD_DIR)/$*.d -o $@ $< + $(AS) $(ASFLAGS) $< -o $@ $(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) undefined_syms.txt - $(LD) -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) -Map $(BUILD_DIR)/$(TARGET).map +$(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) + $(LD) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) -nodead $(ROM): $(ELF) $(OBJCOPY) -O binary $< $@ diff --git a/asm/arm9_thumb.s b/asm/arm9_thumb.s new file mode 100644 index 000000000..e51efe057 --- /dev/null +++ b/asm/arm9_thumb.s @@ -0,0 +1,256758 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start sub_02000E0C +sub_02000E0C: ; 0x02000E0C + push {r3, lr} + ldr r0, _02000E74 ; =0x02106FA0 + ldr r1, [r0, #0xc] + cmp r1, #0x0 + bne _02000E4A + ldr r1, [r0, #0x14] + cmp r1, #0x0 + beq _02000E70 + mov r1, #0x0 + ldr r0, [r0, #0x10] + mvn r1, r1 + cmp r0, r1 + beq _02000E2C + mov r1, #0x0 + bl sub_02005FDC +_02000E2C: + ldr r0, _02000E74 ; =0x02106FA0 + mov r2, #0x0 + ldr r1, [r0, #0x10] + str r1, [r0, #0x8] + ldr r0, [r0, #0x14] + ldr r1, _02000E78 ; =0x02106FB8 + bl sub_02006234 + ldr r1, _02000E74 ; =0x02106FA0 + str r0, [r1, #0xc] + mov r0, #0x0 + mvn r0, r0 + str r0, [r1, #0x10] + mov r0, #0x0 + str r0, [r1, #0x14] +_02000E4A: + ldr r0, _02000E74 ; =0x02106FA0 + ldr r0, [r0, #0xc] + bl sub_02006290 + cmp r0, #0x0 + beq _02000E70 + ldr r0, _02000E74 ; =0x02106FA0 + ldr r0, [r0, #0xc] + bl sub_02006260 + ldr r0, _02000E74 ; =0x02106FA0 + mov r1, #0x0 + str r1, [r0, #0xc] + ldr r0, [r0, #0x8] + sub r1, r1, #0x1 + cmp r0, r1 + beq _02000E70 + bl sub_02005F60 +_02000E70: + pop {r3, pc} + nop +_02000E74: .word 0x02106FA0 +_02000E78: .word 0x02106FB8 + + thumb_func_start sub_02000E7C +sub_02000E7C: ; 0x02000E7C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02000E98 ; =0x02106FA0 + add r4, r1, #0x0 + ldr r0, [r0, #0x14] + cmp r0, #0x0 + beq _02000E8E + bl sub_02020C2C +_02000E8E: + ldr r0, _02000E98 ; =0x02106FA0 + str r5, [r0, #0x10] + str r4, [r0, #0x14] + pop {r3-r5, pc} + nop +_02000E98: .word 0x02106FA0 + + thumb_func_start sub_02000E9C +sub_02000E9C: ; 0x02000E9C + push {r3, lr} + bl sub_0202FB80 + mov r0, #0x1 + add r1, r0, #0x0 + blx sub_020C9C0C + ldr r0, _02000EC4 ; =0x021C48B8 + ldr r1, [r0, #0x2c] + add r1, r1, #0x1 + str r1, [r0, #0x2c] + mov r1, #0x0 + str r1, [r0, #0x30] + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02000EC0 + ldr r0, [r0, #0x4] + blx r1 +_02000EC0: + pop {r3, pc} + nop +_02000EC4: .word 0x021C48B8 + + thumb_func_start sub_02000EC8 +sub_02000EC8: ; 0x02000EC8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02033678 + cmp r0, #0x0 + beq _02000EE2 + blx sub_020D6DAC + cmp r0, #0x1 + bne _02000EE2 + add r0, r4, #0x0 + blx sub_020CD3B4 +_02000EE2: + bl sub_02000E9C + pop {r4, pc} + + thumb_func_start sub_02000EE8 +sub_02000EE8: ; 0x02000EE8 + push {r3, lr} + bl sub_020335B8 + add r1, r0, #0x0 + cmp r1, #0x1 + beq _02000EFE + cmp r1, #0x2 + beq _02000F06 + cmp r1, #0x3 + beq _02000F0E + pop {r3, pc} +_02000EFE: + mov r0, #0x1 + bl sub_02000F4C + pop {r3, pc} +_02000F06: + mov r0, #0x0 + bl sub_02000F4C + pop {r3, pc} +_02000F0E: + mov r0, #0x1 + bl sub_02000F4C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02000F18 +sub_02000F18: ; 0x02000F18 + push {r4, lr} + ldr r1, _02000F48 ; =0x00007FFF + add r4, r0, #0x0 + mov r0, #0x0 + bl sub_0200E3A0 + ldr r1, _02000F48 ; =0x00007FFF + mov r0, #0x1 + bl sub_0200E3A0 + bl sub_02032DAC + cmp r0, #0x0 + beq _02000F3C + bl sub_020225F8 + bl sub_0202287C +_02000F3C: + bl sub_02000FE8 + add r0, r4, #0x0 + bl sub_02000EC8 + b _02000F3C + .balign 4 +_02000F48: .word 0x00007FFF + + thumb_func_start sub_02000F4C +sub_02000F4C: ; 0x02000F4C + push {r4-r6, lr} + add r6, r0, #0x0 + cmp r1, #0x3 + bne _02000F60 + mov r0, #0x0 + mov r1, #0x3 + add r2, r0, #0x0 + bl sub_02033F70 + b _02000F7A +_02000F60: + cmp r6, #0x0 + bne _02000F70 + mov r0, #0x0 + mov r1, #0x2 + add r2, r0, #0x0 + bl sub_02033F70 + b _02000F7A +_02000F70: + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + bl sub_02033F70 +_02000F7A: + bl sub_02032DAC + ldr r5, _02000FA0 ; =0x021C48B8 + mov r4, #0x1 +_02000F82: + bl sub_02000FE8 + bl sub_02016464 + ldr r0, [r5, #0x48] + tst r0, r4 + bne _02000F96 + bl sub_02000E9C + b _02000F82 +_02000F96: + add r0, r6, #0x0 + bl sub_02000F18 + pop {r4-r6, pc} + nop +_02000FA0: .word 0x021C48B8 + + thumb_func_start sub_02000FA4 +sub_02000FA4: ; 0x02000FA4 + push {r4-r5, lr} + sub sp, #0x1c + add r0, sp, #0xc + add r1, sp, #0x0 + bl sub_0201265C + ldr r0, _02000FE4 ; =0x021C48B8 + ldr r3, [sp, #0x10] + ldr r4, [r0, #0x2c] + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x14] + add r0, r1, r0 + lsl r2, r0, #0x18 + ldr r0, [sp, #0x0] + lsl r3, r3, #0x8 + lsl r1, r0, #0x10 + mul r3, r5 + ldr r0, [sp, #0xc] + lsl r3, r3, #0x10 + add r0, r0, r3 + add r0, r1, r0 + add r5, r2, r0 + add r0, r4, r5 + bl sub_0201BA1C + add r0, r4, r5 + bl sub_0201B9E0 + add sp, #0x1c + pop {r4-r5, pc} + nop +_02000FE4: .word 0x021C48B8 + + thumb_func_start sub_02000FE8 +sub_02000FE8: ; 0x02000FE8 + push {r3-r7, lr} + sub sp, #0x8 + ldr r0, _0200109C ; =0x027FFFA8 + ldrh r1, [r0, #0x0] + mov r0, #0x2 + lsl r0, r0, #0xe + and r0, r1 + asr r0, r0, #0xf + beq _0200107E + ldr r0, _020010A0 ; =0x021C4918 + ldrb r0, [r0, #0x7] + cmp r0, #0x0 + bne _02001064 + bl sub_0201CE04 + blx sub_020DB7A8 + cmp r0, #0x1 + bne _02001014 + ldr r0, _020010A4 ; =0x02106FA0 + mov r1, #0x1 + str r1, [r0, #0x4] +_02001014: + ldr r6, _020010A4 ; =0x02106FA0 + mov r0, #0xc + ldr r1, [r6, #0x4] + ldr r4, _0200109C ; =0x027FFFA8 + mov r2, #0x10 + add r5, r0, #0x0 + ldr r7, _020010A0 ; =0x021C4918 + orr r5, r2 +_02001024: + ldrb r2, [r7, #0x6] + mov r0, #0xc + cmp r2, #0x0 + beq _02001032 + cmp r1, #0x0 + bne _02001032 + add r0, r5, #0x0 +_02001032: + mov r1, #0x0 + add r2, r1, #0x0 + blx sub_020D4E68 + blx sub_020D7D18 + cmp r0, #0x0 + beq _02001048 + blx sub_020D5180 + b _0200105C +_02001048: + ldrh r1, [r4, #0x0] + mov r0, #0x2 + lsl r0, r0, #0xe + and r0, r1 + asr r0, r0, #0xf + beq _0200105C + mov r0, #0x1 + str r0, [r6, #0x4] + add r1, r0, #0x0 + b _02001024 +_0200105C: + bl sub_0201CDD0 + add sp, #0x8 + pop {r3-r7, pc} +_02001064: + add r0, sp, #0x4 + add r1, sp, #0x0 + blx sub_020D50D8 + ldr r0, [sp, #0x4] + cmp r0, #0x1 + bne _02001096 + mov r0, #0x2 + mov r1, #0x0 + blx sub_020D526C + add sp, #0x8 + pop {r3-r7, pc} +_0200107E: + add r0, sp, #0x4 + add r1, sp, #0x0 + blx sub_020D50D8 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _02001096 + ldr r1, _020010A4 ; =0x02106FA0 + mov r0, #0x2 + ldr r1, [r1, #0x0] + blx sub_020D526C +_02001096: + add sp, #0x8 + pop {r3-r7, pc} + nop +_0200109C: .word 0x027FFFA8 +_020010A0: .word 0x021C4918 +_020010A4: .word 0x02106FA0 + + thumb_func_start sub_020010A8 +sub_020010A8: ; 0x020010A8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r3, #0x0 + mov r1, #0x38 + add r7, r2, #0x0 + str r3, [sp, #0x0] + bl sub_02016998 + add r4, r0, #0x0 + add r3, r5, #0x0 + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [sp, #0x0] + bl sub_02013690 + str r0, [r4, #0x28] + strh r6, [r4, #0x2c] + add r1, r4, #0x0 + strh r7, [r4, #0x2e] + mov r0, #0x0 + add r1, #0x30 + strb r0, [r1, #0x0] + add r1, r4, #0x0 + add r1, #0x31 + strb r0, [r1, #0x0] + add r1, r4, #0x0 + mov r2, #0xff + add r1, #0x32 + strb r2, [r1, #0x0] + add r1, r4, #0x0 + add r1, #0x33 + strb r0, [r1, #0x0] + add r1, r4, #0x0 + ldr r0, [sp, #0x0] + add r1, #0x34 + strb r0, [r1, #0x0] + add r0, r4, #0x0 + ldrb r1, [r4, #0x17] + add r0, #0x20 + ldrb r2, [r0, #0x0] + lsl r1, r1, #0x18 + mov r0, #0xf + lsr r3, r1, #0x1c + mov r1, #0xf + bic r2, r0 + and r3, r1 + orr r3, r2 + add r2, r4, #0x0 + add r2, #0x20 + strb r3, [r2, #0x0] + add r2, r4, #0x0 + add r2, #0x20 + ldrb r2, [r2, #0x0] + mov r3, #0xf0 + bic r2, r3 + ldrb r3, [r4, #0x18] + lsl r3, r3, #0x1c + lsr r3, r3, #0x1c + lsl r3, r3, #0x1c + lsr r3, r3, #0x18 + orr r3, r2 + add r2, r4, #0x0 + add r2, #0x20 + strb r3, [r2, #0x0] + add r2, r4, #0x0 + add r2, #0x21 + ldrb r2, [r2, #0x0] + bic r2, r0 + ldrb r0, [r4, #0x18] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + add r0, r4, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x22 + ldrb r0, [r0, #0x0] + mov r1, #0x3f + bic r0, r1 + ldrh r1, [r4, #0x1a] + lsl r1, r1, #0x1d + lsr r1, r1, #0x1d + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + mov r1, #0x3f + and r1, r2 + orr r1, r0 + add r0, r4, #0x0 + add r0, #0x22 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x24 + ldrb r0, [r0, #0x0] + mov r1, #0x7f + bic r0, r1 + ldrh r1, [r4, #0x1a] + lsl r1, r1, #0x11 + lsr r1, r1, #0x1a + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + mov r1, #0x7f + and r1, r2 + orr r1, r0 + add r0, r4, #0x0 + add r0, #0x24 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x24 + ldrb r1, [r0, #0x0] + mov r0, #0x80 + bic r1, r0 + add r0, r4, #0x0 + add r0, #0x24 + strb r1, [r0, #0x0] + ldrh r1, [r4, #0x10] + ldrh r0, [r4, #0x12] + cmp r1, r0 + bhs _020011AC + strh r1, [r4, #0x12] +_020011AC: + ldrb r2, [r4, #0x18] + ldr r0, [r4, #0x28] + lsl r1, r2, #0x1c + lsr r1, r1, #0x1c + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldrb r1, [r4, #0x17] + lsl r2, r2, #0x18 + lsr r2, r2, #0x1c + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + lsl r1, r1, #0x18 + lsl r2, r2, #0x18 + lsr r1, r1, #0x8 + lsr r2, r2, #0x10 + orr r1, r2 + orr r1, r3 + bl sub_020136E0 + ldrb r1, [r4, #0x18] + ldr r0, [r4, #0xc] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + bl sub_02019620 + ldrh r1, [r4, #0x2c] + ldrh r3, [r4, #0x12] + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_02001714 + add r0, r4, #0x0 + bl sub_020017AC + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02001B64 + ldr r0, [r5, #0xc] + bl sub_020191D0 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02001204 +sub_02001204: ; 0x02001204 + push {r4-r6, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + ldr r6, _020012FC ; =0x021C48B8 + mov r3, #0x0 + add r1, #0x33 + strb r3, [r1, #0x0] + ldr r1, [r6, #0x48] + mov r2, #0x1 + add r5, r1, #0x0 + tst r5, r2 + beq _0200122C + ldrh r1, [r4, #0x2c] + ldrh r0, [r4, #0x2e] + ldr r2, [r4, #0x0] + add r0, r1, r0 + lsl r0, r0, #0x3 + add r0, r2, r0 + ldr r0, [r0, #0x4] + pop {r4-r6, pc} +_0200122C: + mov r5, #0x2 + tst r1, r5 + beq _02001236 + sub r0, r5, #0x4 + pop {r4-r6, pc} +_02001236: + ldr r5, [r6, #0x4c] + mov r1, #0x40 + tst r1, r5 + beq _02001254 + add r1, r2, #0x0 + bl sub_02001AA4 + cmp r0, #0x0 + bne _0200124E + mov r0, #0x1 + add r4, #0x33 + strb r0, [r4, #0x0] +_0200124E: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_02001254: + mov r1, #0x80 + add r3, r5, #0x0 + tst r3, r1 + beq _02001274 + add r1, r2, #0x0 + add r3, r2, #0x0 + bl sub_02001AA4 + cmp r0, #0x0 + bne _0200126E + mov r0, #0x2 + add r4, #0x33 + strb r0, [r4, #0x0] +_0200126E: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_02001274: + ldrh r0, [r4, #0x1a] + lsl r0, r0, #0x17 + lsr r0, r0, #0x1e + beq _02001284 + cmp r0, #0x1 + beq _0200128A + cmp r0, #0x2 + beq _0200129C +_02001284: + mov r0, #0x0 + add r1, r0, #0x0 + b _020012AC +_0200128A: + mov r0, #0x20 + mov r1, #0x10 + and r0, r5 + and r1, r5 + lsl r0, r0, #0x10 + lsl r1, r1, #0x10 + lsr r0, r0, #0x10 + lsr r1, r1, #0x10 + b _020012AC +_0200129C: + lsl r0, r1, #0x2 + add r1, #0x80 + and r0, r5 + and r1, r5 + lsl r0, r0, #0x10 + lsl r1, r1, #0x10 + lsr r0, r0, #0x10 + lsr r1, r1, #0x10 +_020012AC: + cmp r0, #0x0 + beq _020012D0 + ldrh r2, [r4, #0x12] + add r0, r4, #0x0 + mov r1, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r3, #0x0 + bl sub_02001AA4 + cmp r0, #0x0 + bne _020012CA + mov r0, #0x3 + add r4, #0x33 + strb r0, [r4, #0x0] +_020012CA: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_020012D0: + cmp r1, #0x0 + beq _020012F4 + ldrh r2, [r4, #0x12] + mov r1, #0x1 + add r0, r4, #0x0 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + add r3, r1, #0x0 + bl sub_02001AA4 + cmp r0, #0x0 + bne _020012EE + mov r0, #0x4 + add r4, #0x33 + strb r0, [r4, #0x0] +_020012EE: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_020012F4: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} + nop +_020012FC: .word 0x021C48B8 + + thumb_func_start sub_02001300 +sub_02001300: ; 0x02001300 + push {r4, lr} + add r4, r0, #0x0 + cmp r1, #0x0 + beq _0200130C + ldrh r0, [r4, #0x2c] + strh r0, [r1, #0x0] +_0200130C: + cmp r2, #0x0 + beq _02001314 + ldrh r0, [r4, #0x2e] + strh r0, [r2, #0x0] +_02001314: + ldr r0, [r4, #0x28] + bl sub_020136C0 + add r0, r4, #0x0 + add r0, #0x34 + ldrb r0, [r0, #0x0] + add r1, r4, #0x0 + bl sub_02016A8C + pop {r4, pc} + + thumb_func_start sub_02001328 +sub_02001328: ; 0x02001328 + push {r4, lr} + add r4, r0, #0x0 + ldrb r1, [r4, #0x18] + ldr r0, [r4, #0xc] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + bl sub_02019620 + ldrh r1, [r4, #0x2c] + ldrh r3, [r4, #0x12] + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_02001714 + add r0, r4, #0x0 + bl sub_020017AC + ldr r0, [r4, #0xc] + bl sub_020191D0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02001354 +sub_02001354: ; 0x02001354 + push {r4-r6, lr} + add r4, r0, #0x0 + add r6, r1, #0x0 + beq _0200136E + add r5, r4, #0x0 + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} +_0200136E: + strh r2, [r4, #0x2c] + add r0, r4, #0x0 + strh r3, [r4, #0x2e] + mov r3, #0x0 + add r0, #0x30 + strb r3, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x31 + add r1, sp, #0x0 + strb r3, [r0, #0x0] + ldrh r0, [r1, #0x14] + cmp r0, #0x40 + bne _02001398 + ldrh r1, [r1, #0x10] + add r0, r4, #0x0 + mov r2, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_02001AA4 + b _020013AC +_02001398: + cmp r0, #0x80 + bne _020013AC + ldrh r1, [r1, #0x10] + mov r2, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r3, r2, #0x0 + bl sub_02001AA4 +_020013AC: + ldr r1, [sp, #0x18] + cmp r1, #0x0 + beq _020013B6 + ldrh r0, [r4, #0x2c] + strh r0, [r1, #0x0] +_020013B6: + ldr r1, [sp, #0x1c] + cmp r1, #0x0 + beq _020013C0 + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x0] +_020013C0: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020013C8 +sub_020013C8: ; 0x020013C8 + push {r4, lr} + sub sp, #0x10 + mov r4, #0x0 + str r4, [sp, #0x0] + add r4, sp, #0x8 + ldrh r4, [r4, #0x10] + str r4, [sp, #0x4] + ldr r4, [sp, #0x1c] + str r4, [sp, #0x8] + ldr r4, [sp, #0x20] + str r4, [sp, #0xc] + bl sub_02001354 + add sp, #0x10 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020013E8 +sub_020013E8: ; 0x020013E8 + push {r3-r6} + add r4, r0, #0x0 + add r4, #0x20 + ldrb r6, [r4, #0x0] + mov r4, #0xf + mov r5, #0xf + bic r6, r4 + and r1, r5 + orr r6, r1 + add r1, r0, #0x0 + add r1, #0x20 + strb r6, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x20 + lsl r2, r2, #0x1c + ldrb r1, [r1, #0x0] + mov r6, #0xf0 + lsr r2, r2, #0x18 + bic r1, r6 + orr r2, r1 + add r1, r0, #0x0 + add r1, #0x20 + strb r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x21 + ldrb r2, [r1, #0x0] + add r1, r3, #0x0 + and r1, r5 + bic r2, r4 + orr r2, r1 + add r1, r0, #0x0 + add r1, #0x21 + strb r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x24 + ldrb r2, [r1, #0x0] + mov r1, #0x80 + add r0, #0x24 + orr r1, r2 + strb r1, [r0, #0x0] + pop {r3-r6} + bx lr + + thumb_func_start sub_0200143C +sub_0200143C: ; 0x0200143C + ldrh r2, [r0, #0x2c] + ldrh r0, [r0, #0x2e] + add r0, r2, r0 + strh r0, [r1, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02001448 +sub_02001448: ; 0x02001448 + cmp r1, #0x0 + beq _02001450 + ldrh r3, [r0, #0x2c] + strh r3, [r1, #0x0] +_02001450: + cmp r2, #0x0 + beq _02001458 + ldrh r0, [r0, #0x2e] + strh r0, [r2, #0x0] +_02001458: + bx lr + .balign 4 + + thumb_func_start sub_0200145C +sub_0200145C: ; 0x0200145C + add r0, #0x33 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02001464 +sub_02001464: ; 0x02001464 + ldr r2, [r0, #0x0] + lsl r0, r1, #0x3 + add r0, r2, r0 + ldr r0, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start sub_02001470 +sub_02001470: ; 0x02001470 + push {r4, lr} + add r4, r0, #0x0 + cmp r1, #0x13 + bhi _02001532 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r4, #0 + lsl r2, r5, #0 + lsl r6, r5, #0 + lsl r2, r6, #0 + lsl r4, r5, #0x2 + lsl r6, r6, #0 + lsl r2, r7, #0 + lsl r6, r7, #0 + lsl r2, r0, #0x1 + lsl r2, r1, #0x1 + lsl r4, r4, #0x1 + lsl r4, r5, #0x1 + lsl r4, r6, #0x1 + lsl r4, r7, #0x1 + lsl r4, r0, #0x2 + lsl r4, r1, #0x2 + lsl r4, r2, #0x2 + lsl r4, r3, #0x2 + lsl r4, r4, #0x2 + lsl r0, r5, #0x2 + ldr r0, [r4, #0x4] + pop {r4, pc} +_020014B0: + .byte 0xA0, 0x68, 0x10, 0xBD, 0x20, 0x8A, 0x10, 0xBD, 0x60, 0x8A, 0x10, 0xBD, 0x20, 0x7D, 0x10, 0xBD + .byte 0x60, 0x7D, 0x10, 0xBD, 0xA0, 0x7D, 0x10, 0xBD, 0xE0, 0x7D, 0x00, 0x07, 0x00, 0x0F, 0x10, 0xBD + .byte 0x60, 0x8B, 0x01, 0x21, 0x40, 0x04, 0x80, 0x0E, 0x00, 0x06, 0x00, 0x0E, 0x01, 0xF0, 0xB6, 0xFC + .byte 0x61, 0x8B, 0x49, 0x06, 0x09, 0x0F, 0x08, 0x18, 0x10, 0xBD, 0xE0, 0x7D, 0x00, 0x06, 0x00, 0x0F + .byte 0x10, 0xBD, 0x20, 0x7E, 0x00, 0x07, 0x00, 0x0F, 0x10, 0xBD, 0x20, 0x7E, 0x00, 0x06, 0x00, 0x0F + .byte 0x10, 0xBD, 0x60, 0x8B, 0x40, 0x07, 0x40, 0x0F, 0x10, 0xBD, 0x60, 0x8B, 0x40, 0x06, 0x00, 0x0F + .byte 0x10, 0xBD, 0x60, 0x8B, 0xC0, 0x05, 0x80, 0x0F, 0x10, 0xBD, 0x60, 0x8B, 0x40, 0x04, 0x80, 0x0E + .byte 0x10, 0xBD, 0x60, 0x8B, 0x00, 0x04, 0xC0, 0x0F, 0x10, 0xBD, 0xE0, 0x68, 0x10, 0xBD, 0xE0, 0x69 + .byte 0x10, 0xBD +_02001532: + mov r0, #0x0 + mvn r0, r0 + pop {r4, pc} + + thumb_func_start sub_02001538 +sub_02001538: ; 0x02001538 + cmp r1, #0x13 + bls _0200153E + b _02001648 +_0200153E: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r4, #0 + lsl r2, r5, #0 + lsl r6, r5, #0 + lsl r2, r6, #0 + lsl r4, r7, #0x3 + lsl r6, r6, #0 + lsl r2, r7, #0 + lsl r6, r7, #0 + lsl r2, r0, #0x1 + lsl r4, r7, #0x3 + lsl r6, r2, #0x1 + lsl r2, r5, #0x1 + lsl r6, r7, #0x1 + lsl r2, r2, #0x2 + lsl r6, r4, #0x2 + lsl r2, r7, #0x2 + lsl r6, r1, #0x3 + lsl r2, r4, #0x3 + lsl r6, r6, #0x3 + lsl r2, r7, #0x3 + str r2, [r0, #0x4] + bx lr +_02001576: + .byte 0x82, 0x60, 0x70, 0x47, 0x02, 0x82, 0x70, 0x47, 0x42, 0x82 + .byte 0x70, 0x47, 0x02, 0x75, 0x70, 0x47, 0x42, 0x75, 0x70, 0x47, 0x82, 0x75, 0x70, 0x47, 0xC3, 0x7D + .byte 0x0F, 0x21, 0x8B, 0x43, 0x11, 0x06, 0x0A, 0x0E, 0x0F, 0x21, 0x11, 0x40, 0x19, 0x43, 0xC1, 0x75 + .byte 0x70, 0x47, 0xC3, 0x7D, 0xF0, 0x21, 0x8B, 0x43, 0x11, 0x06, 0x09, 0x0E, 0x09, 0x07, 0x09, 0x0E + .byte 0x19, 0x43, 0xC1, 0x75, 0x70, 0x47, 0x03, 0x7E, 0x0F, 0x21, 0x8B, 0x43, 0x11, 0x06, 0x0A, 0x0E + .byte 0x0F, 0x21, 0x11, 0x40, 0x19, 0x43, 0x01, 0x76, 0x70, 0x47, 0x03, 0x7E, 0xF0, 0x21, 0x8B, 0x43 + .byte 0x11, 0x06, 0x09, 0x0E, 0x09, 0x07, 0x09, 0x0E, 0x19, 0x43, 0x01, 0x76, 0x70, 0x47, 0x43, 0x8B + .byte 0x07, 0x21, 0x8B, 0x43, 0x11, 0x06, 0x0A, 0x0E, 0x07, 0x21, 0x11, 0x40, 0x19, 0x43, 0x41, 0x83 + .byte 0x70, 0x47, 0x43, 0x8B, 0x78, 0x21, 0x8B, 0x43, 0x11, 0x06, 0x09, 0x0E, 0x09, 0x07, 0x49, 0x0E + .byte 0x19, 0x43, 0x41, 0x83, 0x70, 0x47, 0x43, 0x8B, 0x10, 0x49, 0x0B, 0x40, 0x11, 0x06, 0x09, 0x0E + .byte 0x89, 0x07, 0xC9, 0x0D, 0x19, 0x43, 0x41, 0x83, 0x70, 0x47, 0x43, 0x8B, 0x0C, 0x49, 0x0B, 0x40 + .byte 0x11, 0x06, 0x09, 0x0E, 0x89, 0x06, 0x49, 0x0C, 0x19, 0x43, 0x41, 0x83, 0x70, 0x47, 0x43, 0x8B + .byte 0x08, 0x49, 0x0B, 0x40, 0x11, 0x06, 0x09, 0x0E, 0xC9, 0x07, 0x09, 0x0C, 0x19, 0x43, 0x41, 0x83 + .byte 0x70, 0x47, 0xC2, 0x60, 0x70, 0x47, 0xC2, 0x61 +_02001648: + bx lr + nop +_0200164C: + .byte 0x7F, 0xFE, 0xFF, 0xFF + .byte 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF + + thumb_func_start sub_02001658 +sub_02001658: ; 0x02001658 + str r1, [r0, #0x0] + bx lr + + thumb_func_start sub_0200165C +sub_0200165C: ; 0x0200165C + push {r4-r6, lr} + sub sp, #0x18 + add r5, r1, #0x0 + add r6, r0, #0x0 + add r4, r2, #0x0 + cmp r5, #0x0 + beq _02001710 + add r0, #0x24 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + str r3, [sp, #0x0] + beq _020016CC + mov r0, #0xff + str r0, [sp, #0x4] + add r0, r6, #0x0 + add r0, #0x20 + ldrb r2, [r0, #0x0] + add r3, r4, #0x0 + lsl r0, r2, #0x18 + lsr r0, r0, #0x1c + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + lsl r0, r2, #0x1c + add r2, r6, #0x0 + add r2, #0x21 + ldrb r2, [r2, #0x0] + lsr r0, r0, #0x1c + lsl r0, r0, #0x18 + lsl r2, r2, #0x1c + lsr r2, r2, #0x1c + lsl r2, r2, #0x18 + lsr r0, r0, #0x8 + lsr r2, r2, #0x10 + orr r0, r2 + orr r0, r1 + str r0, [sp, #0x8] + add r0, r6, #0x0 + add r0, #0x22 + ldrb r0, [r0, #0x0] + add r2, r5, #0x0 + lsl r0, r0, #0x1a + lsr r0, r0, #0x1a + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r0, [r6, #0xc] + add r6, #0x24 + ldrb r1, [r6, #0x0] + lsl r1, r1, #0x19 + lsr r1, r1, #0x19 + bl sub_0201BE3C + add sp, #0x18 + pop {r4-r6, pc} +_020016CC: + mov r0, #0xff + str r0, [sp, #0x4] + ldrb r1, [r6, #0x18] + add r3, r4, #0x0 + lsl r0, r1, #0x1c + lsr r0, r0, #0x1c + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + ldrb r0, [r6, #0x17] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + lsl r0, r0, #0x18 + lsl r1, r1, #0x18 + lsr r0, r0, #0x8 + lsr r1, r1, #0x10 + orr r0, r1 + orr r0, r2 + str r0, [sp, #0x8] + ldrh r0, [r6, #0x1a] + add r2, r5, #0x0 + lsl r0, r0, #0x1d + lsr r0, r0, #0x1d + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldrh r1, [r6, #0x1a] + ldr r0, [r6, #0xc] + lsl r1, r1, #0x11 + lsr r1, r1, #0x1a + bl sub_0201BE3C +_02001710: + add sp, #0x18 + pop {r4-r6, pc} + + thumb_func_start sub_02001714 +sub_02001714: ; 0x02001714 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + str r3, [sp, #0x0] + ldrh r0, [r5, #0x1a] + add r4, r1, #0x0 + mov r1, #0x1 + lsl r0, r0, #0x11 + lsr r0, r0, #0x1a + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r6, r2, #0x0 + bl sub_02002E4C + ldrh r1, [r5, #0x1a] + lsl r1, r1, #0x19 + lsr r1, r1, #0x1c + add r0, r1, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x0] + cmp r0, #0x0 + ble _020017A6 +_02001748: + ldr r1, [r5, #0x0] + lsl r0, r4, #0x3 + str r0, [sp, #0x8] + add r0, r1, r0 + ldr r1, [r0, #0x4] + mov r0, #0x2 + mvn r0, r0 + cmp r1, r0 + beq _02001760 + ldrb r0, [r5, #0x15] + str r0, [sp, #0x4] + b _02001764 +_02001760: + ldrb r0, [r5, #0x14] + str r0, [sp, #0x4] +_02001764: + ldrb r0, [r5, #0x17] + lsl r0, r0, #0x1c + lsr r3, r0, #0x1c + ldr r0, [sp, #0xc] + add r2, r0, #0x0 + mul r2, r6 + add r0, r3, r2 + lsl r0, r0, #0x18 + ldr r3, [r5, #0x8] + lsr r7, r0, #0x18 + cmp r3, #0x0 + beq _02001782 + add r0, r5, #0x0 + add r2, r7, #0x0 + blx r3 +_02001782: + ldr r2, [r5, #0x0] + ldr r1, [sp, #0x8] + add r0, r5, #0x0 + ldr r1, [r2, r1] + ldr r2, [sp, #0x4] + add r3, r7, #0x0 + bl sub_0200165C + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [sp, #0x10] + add r6, r6, #0x1 + add r1, r0, #0x1 + ldr r0, [sp, #0x0] + str r1, [sp, #0x10] + cmp r1, r0 + blt _02001748 +_020017A6: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_020017AC +sub_020017AC: ; 0x020017AC + push {r3-r5, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x1a] + mov r1, #0x1 + lsl r0, r0, #0x11 + lsr r0, r0, #0x1a + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02002E4C + ldrh r1, [r4, #0x1a] + ldrh r5, [r4, #0x2e] + lsl r2, r1, #0x19 + lsr r2, r2, #0x1c + add r0, r2, r0 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + ldrb r0, [r4, #0x17] + mul r3, r5 + ldrb r2, [r4, #0x16] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + add r0, r0, r3 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + lsl r0, r1, #0x10 + lsr r0, r0, #0x1f + cmp r0, #0x3 + bhi _02001802 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r1, #0 + lsl r6, r1, #0 + lsl r6, r1, #0 + ldr r0, [r4, #0x28] + ldr r1, [r4, #0xc] + bl sub_020136F8 +_02001802: + pop {r3-r5, pc} + + thumb_func_start sub_02001804 +sub_02001804: ; 0x02001804 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + ldrh r0, [r4, #0x1a] + add r5, r1, #0x0 + lsl r1, r0, #0x10 + lsr r1, r1, #0x1f + cmp r1, #0x3 + bhi _02001868 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r4, r0, #0x1 + lsl r4, r0, #0x1 + lsl r4, r0, #0x1 + lsl r0, r0, #0x11 + lsr r0, r0, #0x1a + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 + bl sub_02002E4C + ldrh r1, [r4, #0x1a] + lsl r1, r1, #0x19 + lsr r1, r1, #0x1c + add r0, r1, r0 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + mov r0, #0x8 + str r0, [sp, #0x0] + mov r0, #0x10 + str r0, [sp, #0x4] + ldrb r1, [r4, #0x18] + ldr r0, [r4, #0xc] + ldrb r2, [r4, #0x16] + ldrb r4, [r4, #0x17] + lsl r1, r1, #0x1c + mul r3, r5 + lsl r4, r4, #0x1c + lsr r4, r4, #0x1c + add r3, r4, r3 + lsl r3, r3, #0x10 + lsr r1, r1, #0x1c + lsr r3, r3, #0x10 + bl sub_020196F4 +_02001868: + add sp, #0x8 + pop {r3-r5, pc} + + thumb_func_start sub_0200186C +sub_0200186C: ; 0x0200186C + push {r4-r7} + ldrh r4, [r0, #0x2e] + ldrh r3, [r0, #0x2c] + cmp r1, #0x0 + ldrh r2, [r0, #0x12] + bne _020018FE + cmp r2, #0x1 + bne _02001880 + mov r1, #0x0 + b _02001898 +_02001880: + lsr r7, r2, #0x1f + lsl r6, r2, #0x1f + sub r6, r6, r7 + mov r5, #0x1f + ror r6, r5 + lsr r1, r2, #0x1 + add r5, r7, r6 + add r1, r1, r5 + sub r1, r2, r1 + sub r1, r1, #0x1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 +_02001898: + cmp r3, #0x0 + bne _020018CC + cmp r4, #0x0 + beq _020018C6 + ldr r2, [r0, #0x0] + lsl r1, r3, #0x3 + mov r3, #0x2 + add r1, r2, r1 + mvn r3, r3 +_020018AA: + sub r2, r4, #0x1 + lsl r2, r2, #0x10 + lsr r4, r2, #0x10 + lsl r2, r4, #0x3 + add r2, r1, r2 + ldr r2, [r2, #0x4] + cmp r2, r3 + beq _020018C2 + strh r4, [r0, #0x2e] + mov r0, #0x1 + pop {r4-r7} + bx lr +_020018C2: + cmp r4, #0x0 + bne _020018AA +_020018C6: + mov r0, #0x0 + pop {r4-r7} + bx lr +_020018CC: + cmp r4, r1 + bls _020018F6 + ldr r5, [r0, #0x0] + lsl r2, r3, #0x3 + add r2, r5, r2 + mov r5, #0x2 + mvn r5, r5 +_020018DA: + sub r4, r4, #0x1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + lsl r6, r4, #0x3 + add r6, r2, r6 + ldr r6, [r6, #0x4] + cmp r6, r5 + beq _020018F2 + strh r4, [r0, #0x2e] + mov r0, #0x1 + pop {r4-r7} + bx lr +_020018F2: + cmp r4, r1 + bhi _020018DA +_020018F6: + strh r1, [r0, #0x2e] + sub r1, r3, #0x1 + strh r1, [r0, #0x2c] + b _02001984 +_020018FE: + cmp r2, #0x1 + bne _02001906 + mov r5, #0x0 + b _0200191A +_02001906: + lsr r7, r2, #0x1f + lsl r6, r2, #0x1f + sub r6, r6, r7 + mov r5, #0x1f + ror r6, r5 + lsr r1, r2, #0x1 + add r5, r7, r6 + add r1, r1, r5 + lsl r1, r1, #0x10 + lsr r5, r1, #0x10 +_0200191A: + ldrh r1, [r0, #0x10] + sub r1, r1, r2 + cmp r3, r1 + bne _02001954 + sub r2, r2, #0x1 + cmp r4, r2 + bge _0200194E + ldr r5, [r0, #0x0] + lsl r1, r3, #0x3 + add r1, r5, r1 + mov r5, #0x2 + mvn r5, r5 +_02001932: + add r3, r4, #0x1 + lsl r3, r3, #0x10 + lsr r4, r3, #0x10 + lsl r3, r4, #0x3 + add r3, r1, r3 + ldr r3, [r3, #0x4] + cmp r3, r5 + beq _0200194A + strh r4, [r0, #0x2e] + mov r0, #0x1 + pop {r4-r7} + bx lr +_0200194A: + cmp r4, r2 + blt _02001932 +_0200194E: + mov r0, #0x0 + pop {r4-r7} + bx lr +_02001954: + cmp r4, r5 + bhs _0200197E + ldr r2, [r0, #0x0] + lsl r1, r3, #0x3 + mov r6, #0x2 + add r1, r2, r1 + mvn r6, r6 +_02001962: + add r2, r4, #0x1 + lsl r2, r2, #0x10 + lsr r4, r2, #0x10 + lsl r2, r4, #0x3 + add r2, r1, r2 + ldr r2, [r2, #0x4] + cmp r2, r6 + beq _0200197A + strh r4, [r0, #0x2e] + mov r0, #0x1 + pop {r4-r7} + bx lr +_0200197A: + cmp r4, r5 + blo _02001962 +_0200197E: + strh r5, [r0, #0x2e] + add r1, r3, #0x1 + strh r1, [r0, #0x2c] +_02001984: + mov r0, #0x2 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_0200198C +sub_0200198C: ; 0x0200198C + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldrh r0, [r5, #0x12] + add r4, r1, #0x0 + add r7, r2, #0x0 + cmp r4, r0 + blt _020019B8 + ldrb r1, [r5, #0x18] + ldr r0, [r5, #0xc] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + bl sub_02019620 + ldrh r1, [r5, #0x2c] + ldrh r3, [r5, #0x12] + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02001714 + add sp, #0x8 + pop {r3-r7, pc} +_020019B8: + ldrh r0, [r5, #0x1a] + mov r1, #0x1 + lsl r0, r0, #0x11 + lsr r0, r0, #0x1a + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02002E4C + ldrh r1, [r5, #0x1a] + lsl r1, r1, #0x19 + lsr r1, r1, #0x1c + add r0, r1, r0 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r7, #0x0 + ldrb r0, [r5, #0x18] + bne _02001A46 + lsl r0, r0, #0x1c + lsr r7, r0, #0x1c + add r2, r4, #0x0 + lsl r3, r7, #0x4 + mul r2, r6 + orr r3, r7 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r5, #0xc] + mov r1, #0x1 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_0201A8C8 + ldrh r1, [r5, #0x2c] + add r0, r5, #0x0 + mov r2, #0x0 + add r3, r4, #0x0 + bl sub_02001714 + ldrb r0, [r5, #0x17] + lsl r0, r0, #0x1c + lsr r2, r0, #0x1c + ldrh r0, [r5, #0x12] + add r1, r0, #0x0 + mul r1, r6 + add r0, r2, r1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [r5, #0xc] + bl sub_0201AB0C + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0201AB10 + lsl r0, r0, #0x3 + lsl r1, r6, #0x13 + sub r0, r0, r4 + lsr r1, r1, #0x10 + lsl r0, r0, #0x10 + str r1, [sp, #0x0] + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + ldrb r1, [r5, #0x18] + ldr r0, [r5, #0xc] + mov r2, #0x0 + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + add r3, r4, #0x0 + bl sub_020196F4 + add sp, #0x8 + pop {r3-r7, pc} +_02001A46: + lsl r0, r0, #0x1c + lsr r3, r0, #0x1c + add r2, r4, #0x0 + mul r2, r6 + lsl r6, r3, #0x4 + orr r3, r6 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r5, #0xc] + mov r1, #0x0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_0201A8C8 + ldrh r0, [r5, #0x12] + ldrh r1, [r5, #0x2c] + add r3, r4, #0x0 + sub r2, r0, r4 + add r1, r1, r2 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + lsr r2, r2, #0x10 + bl sub_02001714 + ldr r0, [r5, #0xc] + bl sub_0201AB0C + lsl r0, r0, #0x13 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + ldrb r0, [r5, #0x17] + mov r2, #0x0 + add r3, r2, #0x0 + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + str r0, [sp, #0x4] + ldrb r1, [r5, #0x18] + ldr r0, [r5, #0xc] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + bl sub_020196F4 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02001AA4 +sub_02001AA4: ; 0x02001AA4 + push {r3-r7, lr} + sub sp, #0x10 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r4, r0, #0x0 + str r3, [sp, #0x8] + ldrh r0, [r4, #0x2e] + mov r6, #0x0 + add r5, r6, #0x0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x4] + add r7, r6, #0x0 + cmp r0, #0x0 + bls _02001AF6 +_02001AC0: + ldr r1, [sp, #0x8] + add r0, r4, #0x0 + bl sub_0200186C + orr r5, r0 + cmp r0, #0x2 + bne _02001AEA + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldrh r1, [r4, #0x2c] + ldrh r0, [r4, #0x2e] + ldr r2, [r4, #0x0] + add r0, r1, r0 + lsl r0, r0, #0x3 + add r0, r2, r0 + ldr r1, [r0, #0x4] + mov r0, #0x2 + mvn r0, r0 + cmp r1, r0 + beq _02001AC0 +_02001AEA: + add r0, r7, #0x1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r0, [sp, #0x4] + cmp r7, r0 + blo _02001AC0 +_02001AF6: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _02001B5E + cmp r5, #0x3 + bhi _02001B14 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r1, #0 + lsl r2, r5, #0 + lsl r2, r5, #0 +_02001B14: + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_02001B1A: + .byte 0x03, 0x99, 0x20, 0x1C, 0xFF, 0xF7 + .byte 0x71, 0xFE, 0x20, 0x1C, 0xFF, 0xF7, 0x42, 0xFE, 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0, 0x1A, 0xF8 + .byte 0xE0, 0x68, 0x17, 0xF0, 0x4D, 0xFB, 0x12, 0xE0, 0x03, 0x99, 0x20, 0x1C, 0xFF, 0xF7, 0x62, 0xFE + .byte 0x02, 0x9A, 0x20, 0x1C, 0x31, 0x1C, 0xFF, 0xF7, 0x21, 0xFF, 0x20, 0x1C, 0xFF, 0xF7, 0x2E, 0xFE + .byte 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0, 0x06, 0xF8, 0xE0, 0x68, 0x17, 0xF0, 0x39, 0xFB +_02001B5E: + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start sub_02001B64 +sub_02001B64: ; 0x02001B64 + push {r3-r5, lr} + ldr r3, [r0, #0x4] + add r2, r1, #0x0 + cmp r3, #0x0 + beq _02001B7E + ldrh r5, [r0, #0x2c] + ldrh r4, [r0, #0x2e] + ldr r1, [r0, #0x0] + add r4, r5, r4 + lsl r4, r4, #0x3 + add r1, r1, r4 + ldr r1, [r1, #0x4] + blx r3 +_02001B7E: + pop {r3-r5, pc} + + thumb_func_start sub_02001B80 +sub_02001B80: ; 0x02001B80 + ldr r3, _02001B88 ; =sub_020191D0 + ldr r0, [r0, #0xc] + bx r3 + nop +_02001B88: .word sub_020191D0 + 1 + + thumb_func_start sub_02001B8C +sub_02001B8C: ; 0x02001B8C + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + str r3, [sp, #0x0] + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + add r6, r1, #0x0 + mov r1, #0x20 + add r7, r2, #0x0 + str r0, [sp, #0x4] + bl sub_02016998 + add r4, r0, #0x0 + add r3, r5, #0x0 + ldmia r3!, {r0-r1} + add r2, r4, #0x0 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldr r0, [sp, #0x4] + bl sub_02013690 + str r0, [r4, #0xc] + ldr r0, [sp, #0x24] + str r0, [r4, #0x10] + ldr r0, [sp, #0x0] + strb r0, [r4, #0x15] + add r0, r4, #0x0 + bl sub_02001FB4 + strb r0, [r4, #0x16] + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + mov r1, #0x0 + strb r0, [r4, #0x1c] + strb r6, [r4, #0x17] + strb r7, [r4, #0x18] + ldrb r0, [r5, #0x8] + bl sub_02002E4C + add r6, r0, #0x0 + ldrb r0, [r5, #0x8] + mov r1, #0x2 + bl sub_02002E4C + add r0, r6, r0 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x8] + mov r1, #0x1 + bl sub_02002E4C + add r6, r0, #0x0 + ldrb r0, [r5, #0x8] + mov r1, #0x3 + bl sub_02002E4C + add r0, r6, r0 + strb r0, [r4, #0x1a] + add r0, r4, #0x0 + bl sub_02001FF4 + add r0, r4, #0x0 + bl sub_02002080 + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02001C14 +sub_02001C14: ; 0x02001C14 + push {r4, lr} + sub sp, #0x8 + add r4, sp, #0x0 + ldrb r4, [r4, #0x10] + str r4, [sp, #0x0] + ldr r4, [sp, #0x14] + str r4, [sp, #0x4] + bl sub_02001B8C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + bl sub_020191D0 + add r0, r4, #0x0 + add sp, #0x8 + pop {r4, pc} + + thumb_func_start sub_02001C34 +sub_02001C34: ; 0x02001C34 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldrb r0, [r5, #0x8] + add r6, r1, #0x0 + add r4, r2, #0x0 + mov r1, #0x0 + bl sub_02002E4C + add r1, r0, #0x0 + str r4, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r2, #0x0 + add r3, r6, #0x0 + bl sub_02001C14 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02001C5C +sub_02001C5C: ; 0x02001C5C + push {r4, lr} + add r4, r0, #0x0 + cmp r1, #0x0 + beq _02001C68 + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x0] +_02001C68: + ldr r0, [r4, #0xc] + bl sub_020136C0 + ldrb r0, [r4, #0x1c] + add r1, r4, #0x0 + bl sub_02016A8C + pop {r4, pc} + + thumb_func_start sub_02001C78 +sub_02001C78: ; 0x02001C78 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r1, #0x0 + ldr r2, _02001D24 ; =0x021C48B8 + strb r1, [r4, #0x1b] + ldr r2, [r2, #0x48] + mov r5, #0x1 + add r3, r2, #0x0 + tst r3, r5 + beq _02001C9E + ldr r0, _02001D28 ; =0x000005DC + bl sub_020054C8 + ldrb r0, [r4, #0x15] + ldr r1, [r4, #0x0] + lsl r0, r0, #0x3 + add r0, r1, r0 + ldr r0, [r0, #0x4] + pop {r3-r5, pc} +_02001C9E: + ldr r3, [r4, #0x10] + tst r3, r2 + beq _02001CAE + ldr r0, _02001D28 ; =0x000005DC + bl sub_020054C8 + sub r0, r5, #0x3 + pop {r3-r5, pc} +_02001CAE: + mov r3, #0x40 + tst r3, r2 + beq _02001CC8 + ldr r2, _02001D28 ; =0x000005DC + bl sub_02001E64 + cmp r0, #0x1 + bne _02001CC2 + add r0, r5, #0x0 + strb r0, [r4, #0x1b] +_02001CC2: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_02001CC8: + mov r1, #0x80 + tst r1, r2 + beq _02001CE4 + ldr r2, _02001D28 ; =0x000005DC + add r1, r5, #0x0 + bl sub_02001E64 + cmp r0, #0x1 + bne _02001CDE + mov r0, #0x2 + strb r0, [r4, #0x1b] +_02001CDE: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_02001CE4: + mov r1, #0x20 + tst r1, r2 + beq _02001D00 + ldr r2, _02001D28 ; =0x000005DC + mov r1, #0x2 + bl sub_02001E64 + cmp r0, #0x1 + bne _02001CFA + mov r0, #0x3 + strb r0, [r4, #0x1b] +_02001CFA: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_02001D00: + mov r1, #0x10 + tst r2, r1 + beq _02001D1C + ldr r2, _02001D28 ; =0x000005DC + mov r1, #0x3 + bl sub_02001E64 + cmp r0, #0x1 + bne _02001D16 + mov r0, #0x4 + strb r0, [r4, #0x1b] +_02001D16: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_02001D1C: + sub r1, #0x11 + add r0, r1, #0x0 + pop {r3-r5, pc} + nop +_02001D24: .word 0x021C48B8 +_02001D28: .word 0x000005DC + + thumb_func_start sub_02001D2C +sub_02001D2C: ; 0x02001D2C + push {r4-r6, lr} + add r2, r1, #0x0 + add r4, r0, #0x0 + mov r1, #0x0 + ldr r3, _02001DD4 ; =0x021C48B8 + strb r1, [r4, #0x1b] + ldr r5, [r3, #0x48] + mov r3, #0x1 + add r6, r5, #0x0 + tst r6, r3 + beq _02001D54 + ldr r0, _02001DD8 ; =0x000005DC + bl sub_020054C8 + ldrb r0, [r4, #0x15] + ldr r1, [r4, #0x0] + lsl r0, r0, #0x3 + add r0, r1, r0 + ldr r0, [r0, #0x4] + pop {r4-r6, pc} +_02001D54: + ldr r6, [r4, #0x10] + tst r6, r5 + beq _02001D66 + ldr r0, _02001DD8 ; =0x000005DC + bl sub_020054C8 + mov r0, #0x1 + mvn r0, r0 + pop {r4-r6, pc} +_02001D66: + mov r6, #0x40 + tst r6, r5 + beq _02001D7E + bl sub_02001E64 + cmp r0, #0x1 + bne _02001D78 + mov r0, #0x1 + strb r0, [r4, #0x1b] +_02001D78: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_02001D7E: + mov r1, #0x80 + tst r1, r5 + beq _02001D98 + add r1, r3, #0x0 + bl sub_02001E64 + cmp r0, #0x1 + bne _02001D92 + mov r0, #0x2 + strb r0, [r4, #0x1b] +_02001D92: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_02001D98: + mov r1, #0x20 + tst r1, r5 + beq _02001DB2 + mov r1, #0x2 + bl sub_02001E64 + cmp r0, #0x1 + bne _02001DAC + mov r0, #0x3 + strb r0, [r4, #0x1b] +_02001DAC: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_02001DB2: + mov r1, #0x10 + add r3, r5, #0x0 + tst r3, r1 + beq _02001DCE + mov r1, #0x3 + bl sub_02001E64 + cmp r0, #0x1 + bne _02001DC8 + mov r0, #0x4 + strb r0, [r4, #0x1b] +_02001DC8: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_02001DCE: + sub r1, #0x11 + add r0, r1, #0x0 + pop {r4-r6, pc} + .balign 4 +_02001DD4: .word 0x021C48B8 +_02001DD8: .word 0x000005DC + + thumb_func_start sub_02001DDC +sub_02001DDC: ; 0x02001DDC + push {r4, lr} + add r4, r0, #0x0 + cmp r1, #0x5 + bhi _02001E52 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r1, #0 + lsl r4, r3, #0 + lsl r0, r5, #0 + lsl r6, r6, #0 + lsl r4, r0, #0x1 + lsl r2, r2, #0x1 + ldr r0, _02001E58 ; =0x000005DC + bl sub_020054C8 + ldrb r0, [r4, #0x15] + ldr r1, [r4, #0x0] + lsl r0, r0, #0x3 + add r0, r1, r0 + ldr r0, [r0, #0x4] + pop {r4, pc} +_02001E0E: + .byte 0x12, 0x48 + .byte 0x03, 0xF0, 0x5A, 0xFB, 0x01, 0x20, 0xC0, 0x43, 0x10, 0xBD, 0x0F, 0x4A, 0x00, 0x21, 0x00, 0xF0 + .byte 0x21, 0xF8, 0x00, 0x20, 0xC0, 0x43, 0x10, 0xBD, 0x0B, 0x4A, 0x01, 0x21, 0x00, 0xF0, 0x1A, 0xF8 + .byte 0x00, 0x20, 0xC0, 0x43, 0x10, 0xBD, 0x08, 0x4A, 0x02, 0x21, 0x00, 0xF0, 0x13, 0xF8, 0x00, 0x20 + .byte 0xC0, 0x43, 0x10, 0xBD, 0x04, 0x4A, 0x03, 0x21, 0x00, 0xF0, 0x0C, 0xF8, 0x00, 0x20, 0xC0, 0x43 + .byte 0x10, 0xBD +_02001E52: + mov r0, #0x0 + mvn r0, r0 + pop {r4, pc} + .balign 4 +_02001E58: .word 0x000005DC + + thumb_func_start sub_02001E5C +sub_02001E5C: ; 0x02001E5C + ldrb r0, [r0, #0x15] + bx lr + + thumb_func_start sub_02001E60 +sub_02001E60: ; 0x02001E60 + ldrb r0, [r0, #0x1b] + bx lr + + thumb_func_start sub_02001E64 +sub_02001E64: ; 0x02001E64 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r6, r2, #0x0 + ldrb r4, [r5, #0x15] + bl sub_02001EBC + cmp r0, #0x0 + bne _02001E7C + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_02001E7C: + ldrb r0, [r5, #0x8] + mov r1, #0x6 + bl sub_02002E4C + add r1, sp, #0x8 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, #0x1 + add r2, sp, #0x8 + add r3, r4, #0x0 + bl sub_020020B0 + mov r0, #0x8 + str r0, [sp, #0x0] + ldrb r0, [r5, #0x1a] + add r3, sp, #0x8 + add r1, r7, #0x0 + str r0, [sp, #0x4] + ldrb r2, [r3, #0x1] + ldrb r3, [r3, #0x0] + ldr r0, [r5, #0x4] + bl sub_020196F4 + add r0, r5, #0x0 + bl sub_02002080 + add r0, r6, #0x0 + bl sub_020054C8 + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02001EBC +sub_02001EBC: ; 0x02001EBC + push {r4-r6, lr} + add r5, r0, #0x0 + cmp r1, #0x0 + bne _02001EFA + ldrb r6, [r5, #0xa] + cmp r6, #0x1 + bhi _02001ECE + mov r0, #0x0 + pop {r4-r6, pc} +_02001ECE: + ldrb r4, [r5, #0x15] + add r1, r6, #0x0 + add r0, r4, #0x0 + blx sub_020EBC80 + cmp r1, #0x0 + bne _02001EF2 + ldrb r0, [r5, #0xb] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1e + bne _02001EE8 + mov r0, #0x0 + pop {r4-r6, pc} +_02001EE8: + sub r0, r6, #0x1 + add r0, r4, r0 + lsl r0, r0, #0x18 + asr r2, r0, #0x18 + b _02001F9A +_02001EF2: + sub r0, r4, #0x1 + lsl r0, r0, #0x18 + asr r2, r0, #0x18 + b _02001F9A +_02001EFA: + cmp r1, #0x1 + bne _02001F32 + ldrb r1, [r5, #0xa] + cmp r1, #0x1 + bhi _02001F08 + mov r0, #0x0 + pop {r4-r6, pc} +_02001F08: + ldrb r6, [r5, #0x15] + sub r4, r1, #0x1 + add r0, r6, #0x0 + blx sub_020EBC80 + cmp r4, r1 + bne _02001F2A + ldrb r0, [r5, #0xb] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1e + bne _02001F22 + mov r0, #0x0 + pop {r4-r6, pc} +_02001F22: + sub r0, r6, r4 + lsl r0, r0, #0x18 + asr r2, r0, #0x18 + b _02001F9A +_02001F2A: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + asr r2, r0, #0x18 + b _02001F9A +_02001F32: + cmp r1, #0x2 + bne _02001F68 + ldrb r3, [r5, #0x9] + cmp r3, #0x1 + bhi _02001F40 + mov r0, #0x0 + pop {r4-r6, pc} +_02001F40: + ldrb r2, [r5, #0xa] + ldrb r1, [r5, #0x15] + cmp r1, r2 + bhs _02001F60 + ldrb r0, [r5, #0xb] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1e + bne _02001F54 + mov r0, #0x0 + pop {r4-r6, pc} +_02001F54: + sub r0, r3, #0x1 + mul r0, r2 + add r0, r1, r0 + lsl r0, r0, #0x18 + asr r2, r0, #0x18 + b _02001F9A +_02001F60: + sub r0, r1, r2 + lsl r0, r0, #0x18 + asr r2, r0, #0x18 + b _02001F9A +_02001F68: + ldrb r2, [r5, #0x9] + cmp r2, #0x1 + bhi _02001F72 + mov r0, #0x0 + pop {r4-r6, pc} +_02001F72: + ldrb r1, [r5, #0xa] + ldrb r0, [r5, #0x15] + sub r2, r2, #0x1 + mul r2, r1 + cmp r0, r2 + blt _02001F94 + ldrb r2, [r5, #0xb] + lsl r2, r2, #0x18 + lsr r2, r2, #0x1e + bne _02001F8A + mov r0, #0x0 + pop {r4-r6, pc} +_02001F8A: + blx sub_020EBC80 + lsl r0, r1, #0x18 + asr r2, r0, #0x18 + b _02001F9A +_02001F94: + add r0, r0, r1 + lsl r0, r0, #0x18 + asr r2, r0, #0x18 +_02001F9A: + ldr r1, [r5, #0x0] + lsl r0, r2, #0x3 + add r0, r1, r0 + ldr r1, [r0, #0x4] + mov r0, #0x2 + mvn r0, r0 + cmp r1, r0 + bne _02001FAE + mov r0, #0x0 + pop {r4-r6, pc} +_02001FAE: + strb r2, [r5, #0x15] + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_02001FB4 +sub_02001FB4: ; 0x02001FB4 + push {r3-r7, lr} + add r5, r0, #0x0 + ldrb r1, [r5, #0x9] + ldrb r0, [r5, #0xa] + mov r6, #0x0 + add r4, r6, #0x0 + mul r0, r1 + cmp r0, #0x0 + ble _02001FF0 + add r7, r6, #0x0 +_02001FC8: + ldr r2, [r5, #0x0] + lsl r1, r4, #0x3 + ldr r1, [r2, r1] + ldrb r0, [r5, #0x8] + add r2, r7, #0x0 + bl sub_02002E14 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r6, r0 + bhs _02001FE0 + add r6, r0, #0x0 +_02001FE0: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldrb r1, [r5, #0x9] + ldrb r0, [r5, #0xa] + mul r0, r1 + cmp r4, r0 + blt _02001FC8 +_02001FF0: + add r0, r6, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02001FF4 +sub_02001FF4: ; 0x02001FF4 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldrb r0, [r5, #0x8] + mov r1, #0x6 + bl sub_02002E4C + add r1, r0, #0x0 + ldr r0, [r5, #0x4] + bl sub_02019620 + ldrb r0, [r5, #0x19] + ldrb r1, [r5, #0x16] + ldrb r7, [r5, #0x17] + lsl r0, r0, #0x1 + add r0, r1, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + ldrb r0, [r5, #0x9] + mov r6, #0x0 + cmp r0, #0x0 + bls _0200207C +_02002022: + ldrb r2, [r5, #0xa] + mov r4, #0x0 + cmp r2, #0x0 + bls _02002068 +_0200202A: + ldrb r3, [r5, #0xb] + mul r2, r6 + ldrb r0, [r5, #0x1a] + lsl r3, r3, #0x1c + lsr r3, r3, #0x1c + add r0, r0, r3 + ldrb r1, [r5, #0x18] + mul r0, r4 + add r2, r4, r2 + add r0, r1, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r3, [r5, #0x0] + lsl r2, r2, #0x3 + ldr r2, [r3, r2] + ldrb r1, [r5, #0x8] + ldr r0, [r5, #0x4] + add r3, r7, #0x0 + bl sub_0201BD84 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + ldrb r2, [r5, #0xa] + lsr r4, r0, #0x18 + cmp r4, r2 + blo _0200202A +_02002068: + ldr r0, [sp, #0xc] + add r0, r7, r0 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldrb r0, [r5, #0x9] + cmp r6, r0 + blo _02002022 +_0200207C: + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start sub_02002080 +sub_02002080: ; 0x02002080 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldrb r1, [r4, #0xb] + lsl r1, r1, #0x1a + lsr r1, r1, #0x1e + cmp r1, #0x1 + beq _020020AA + ldrb r3, [r4, #0x15] + add r1, sp, #0x0 + add r1, #0x1 + add r2, sp, #0x0 + bl sub_020020B0 + add r3, sp, #0x0 + ldrb r2, [r3, #0x1] + ldrb r3, [r3, #0x0] + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x4] + bl sub_020136F8 +_020020AA: + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_020020B0 +sub_020020B0: ; 0x020020B0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r7, r3, #0x0 + ldrb r1, [r5, #0xa] + add r0, r7, #0x0 + add r6, r2, #0x0 + blx sub_020EBC80 + ldrb r2, [r5, #0x19] + ldrb r1, [r5, #0x16] + lsl r2, r2, #0x1 + add r1, r1, r2 + mul r1, r0 + strb r1, [r4, #0x0] + ldrb r1, [r5, #0xa] + add r0, r7, #0x0 + blx sub_020EBC80 + ldrb r2, [r5, #0xb] + ldrb r3, [r5, #0x1a] + ldrb r0, [r5, #0x18] + lsl r2, r2, #0x1c + lsr r2, r2, #0x1c + add r2, r3, r2 + mul r2, r1 + add r0, r0, r2 + strb r0, [r6, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020020EC +sub_020020EC: ; 0x020020EC + push {r3-r7, lr} + sub sp, #0x20 + ldr r5, [sp, #0x3c] + str r2, [sp, #0xc] + add r7, r0, #0x0 + str r1, [sp, #0x8] + str r3, [sp, #0x10] + ldr r2, _02002194 ; =0x00000141 + mov r0, #0x1 + mov r1, #0x1a + add r3, r5, #0x0 + bl sub_0200A86C + add r4, r0, #0x0 + mov r0, #0x2 + add r1, r5, #0x0 + bl sub_02012838 + add r1, r4, #0x0 + mov r2, #0x29 + mov r3, #0x0 + add r6, r0, #0x0 + bl sub_02012880 + mov r3, #0x2a + add r2, r3, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + sub r3, #0x2c + bl sub_02012880 + add r0, r4, #0x0 + bl sub_0200A8B8 + add r0, r5, #0x0 + mov r1, #0x1 + str r6, [sp, #0x14] + bl sub_02018FF4 + add r1, r0, #0x0 + str r1, [sp, #0x18] + mov r0, #0x0 + add r3, sp, #0x14 + strb r0, [r3, #0x8] + mov r0, #0x1 + strb r0, [r3, #0x9] + mov r0, #0x2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + mov r2, #0xf + bic r0, r2 + strb r0, [r3, #0xb] + ldrb r4, [r3, #0xb] + mov r0, #0x30 + bic r4, r0 + strb r4, [r3, #0xb] + ldrb r0, [r3, #0xb] + bic r0, r2 + strb r0, [r3, #0xb] + ldr r2, [sp, #0x8] + add r0, r7, #0x0 + bl sub_02019150 + ldr r0, [sp, #0x18] + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x10] + mov r1, #0x1 + bl sub_0200CCA4 + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + add r3, sp, #0x28 + ldrb r3, [r3, #0x10] + add r0, sp, #0x14 + mov r1, #0x8 + mov r2, #0x0 + bl sub_02001C14 + add sp, #0x20 + pop {r3-r7, pc} + nop +_02002194: .word 0x00000141 + + thumb_func_start sub_02002198 +sub_02002198: ; 0x02002198 + push {r4, lr} + sub sp, #0x8 + mov r4, #0x0 + str r4, [sp, #0x0] + ldr r4, [sp, #0x10] + str r4, [sp, #0x4] + bl sub_020020EC + add sp, #0x8 + pop {r4, pc} + + thumb_func_start sub_020021AC +sub_020021AC: ; 0x020021AC + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02001C78 + add r6, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r6, r0 + beq _020021C8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020021EC +_020021C8: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020021CC +sub_020021CC: ; 0x020021CC + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl sub_02001DDC + add r6, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r6, r0 + beq _020021E8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020021EC +_020021E8: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020021EC +sub_020021EC: ; 0x020021EC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + add r4, r1, #0x0 + mov r1, #0x0 + bl sub_0200CCF8 + ldr r0, [r5, #0x4] + bl sub_02019178 + ldr r1, [r5, #0x4] + add r0, r4, #0x0 + bl sub_02016A8C + ldr r0, [r5, #0x0] + bl sub_02012870 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02001C5C + pop {r3-r5, pc} + + thumb_func_start sub_02002218 +sub_02002218: ; 0x02002218 + push {r4, lr} + sub sp, #0x18 + mov r4, #0x8 + lsl r1, r1, #0x10 + str r4, [sp, #0x0] + mov r3, #0x10 + str r3, [sp, #0x4] + lsr r1, r1, #0x10 + str r1, [sp, #0x8] + lsl r1, r2, #0x10 + lsr r1, r1, #0x10 + str r1, [sp, #0xc] + str r4, [sp, #0x10] + ldr r1, _02002244 ; =0x020ECAC8 + mov r2, #0x0 + str r3, [sp, #0x14] + add r3, r2, #0x0 + bl sub_02019658 + add sp, #0x18 + pop {r4, pc} + nop +_02002244: .word 0x020ECAC8 + + thumb_func_start sub_02002248 +sub_02002248: ; 0x02002248 + ldrh r3, [r1, #0x0] + ldr r2, _02002264 ; =0x0000FFFF + cmp r3, r2 + beq _0200225C +_02002250: + add r1, r1, #0x2 + strh r3, [r0, #0x0] + ldrh r3, [r1, #0x0] + add r0, r0, #0x2 + cmp r3, r2 + bne _02002250 +_0200225C: + ldr r1, _02002264 ; =0x0000FFFF + strh r1, [r0, #0x0] + bx lr + nop +_02002264: .word 0x0000FFFF + + thumb_func_start sub_02002268 +sub_02002268: ; 0x02002268 + push {r4-r5} + mov r4, #0x0 + cmp r2, #0x0 + bls _02002280 + add r5, r0, #0x0 +_02002272: + ldrh r3, [r1, #0x0] + add r4, r4, #0x1 + add r1, r1, #0x2 + strh r3, [r5, #0x0] + add r5, r5, #0x2 + cmp r4, r2 + blo _02002272 +_02002280: + lsl r1, r2, #0x1 + add r0, r0, r1 + pop {r4-r5} + bx lr + + thumb_func_start sub_02002288 +sub_02002288: ; 0x02002288 + ldrh r2, [r0, #0x0] + ldr r1, _020022A0 ; =0x0000FFFF + mov r3, #0x0 + cmp r2, r1 + beq _0200229C +_02002292: + add r0, r0, #0x2 + ldrh r2, [r0, #0x0] + add r3, r3, #0x1 + cmp r2, r1 + bne _02002292 +_0200229C: + add r0, r3, #0x0 + bx lr + .balign 4 +_020022A0: .word 0x0000FFFF + + thumb_func_start sub_020022A4 +sub_020022A4: ; 0x020022A4 + push {r3-r4} + ldrh r4, [r0, #0x0] + ldrh r2, [r1, #0x0] + cmp r4, r2 + bne _020022C6 + ldr r2, _020022CC ; =0x0000FFFF +_020022B0: + cmp r4, r2 + bne _020022BA + mov r0, #0x0 + pop {r3-r4} + bx lr +_020022BA: + add r0, r0, #0x2 + add r1, r1, #0x2 + ldrh r4, [r0, #0x0] + ldrh r3, [r1, #0x0] + cmp r4, r3 + beq _020022B0 +_020022C6: + mov r0, #0x1 + pop {r3-r4} + bx lr + .balign 4 +_020022CC: .word 0x0000FFFF + + thumb_func_start sub_020022D0 +sub_020022D0: ; 0x020022D0 + push {r3-r6} + ldrh r6, [r1, #0x0] + ldrh r5, [r0, #0x0] + cmp r5, r6 + bne _02002304 + ldr r3, _0200230C ; =0x0000FFFF + add r4, r3, #0x0 +_020022DE: + cmp r2, #0x0 + bne _020022E8 + mov r0, #0x0 + pop {r3-r6} + bx lr +_020022E8: + cmp r5, r4 + bne _020022F6 + cmp r6, r3 + bne _020022F6 + mov r0, #0x0 + pop {r3-r6} + bx lr +_020022F6: + add r0, r0, #0x2 + add r1, r1, #0x2 + ldrh r6, [r1, #0x0] + ldrh r5, [r0, #0x0] + sub r2, r2, #0x1 + cmp r5, r6 + beq _020022DE +_02002304: + mov r0, #0x1 + pop {r3-r6} + bx lr + nop +_0200230C: .word 0x0000FFFF + + thumb_func_start sub_02002310 +sub_02002310: ; 0x02002310 + push {r3-r4} + mov r3, #0x0 + cmp r2, #0x0 + bls _02002324 + add r4, r0, #0x0 +_0200231A: + add r3, r3, #0x1 + strh r1, [r4, #0x0] + add r4, r4, #0x2 + cmp r3, r2 + blo _0200231A +_02002324: + lsl r1, r3, #0x1 + add r0, r0, r1 + pop {r3-r4} + bx lr + + thumb_func_start sub_0200232C +sub_0200232C: ; 0x0200232C + ldr r3, _02002334 ; =sub_02002310 + add r2, r1, #0x0 + ldr r1, _02002338 ; =0x0000FFFF + bx r3 + .balign 4 +_02002334: .word sub_02002310 + 1 +_02002338: .word 0x0000FFFF + + thumb_func_start sub_0200233C +sub_0200233C: ; 0x0200233C + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + ldr r0, _020023B4 ; =0x020ECB24 + lsl r1, r3, #0x2 + ldr r4, [r0, r1] + add r6, r2, #0x0 + cmp r4, #0x0 + beq _020023AC +_0200234E: + add r0, r7, #0x0 + add r1, r4, #0x0 + blx sub_020EBE8C + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + add r0, r4, #0x0 + mul r0, r1 + sub r7, r7, r0 + cmp r6, #0x2 + bne _02002378 + cmp r1, #0xa + blo _0200236C + mov r0, #0xe2 + b _02002372 +_0200236C: + ldr r0, _020023B8 ; =0x020ECB08 + lsl r1, r1, #0x1 + ldrh r0, [r0, r1] +_02002372: + strh r0, [r5, #0x0] + add r5, r5, #0x2 + b _020023A0 +_02002378: + cmp r1, #0x0 + bne _02002380 + cmp r4, #0x1 + bne _02002396 +_02002380: + mov r6, #0x2 + cmp r1, #0xa + blo _0200238A + mov r0, #0xe2 + b _02002390 +_0200238A: + ldr r0, _020023B8 ; =0x020ECB08 + lsl r1, r1, #0x1 + ldrh r0, [r0, r1] +_02002390: + strh r0, [r5, #0x0] + add r5, r5, #0x2 + b _020023A0 +_02002396: + cmp r6, #0x1 + bne _020023A0 + mov r0, #0x1 + strh r0, [r5, #0x0] + add r5, r5, #0x2 +_020023A0: + add r0, r4, #0x0 + mov r1, #0xa + blx sub_020EBE8C + add r4, r0, #0x0 + bne _0200234E +_020023AC: + ldr r0, _020023BC ; =0x0000FFFF + strh r0, [r5, #0x0] + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_020023B4: .word 0x020ECB24 +_020023B8: .word 0x020ECB08 +_020023BC: .word 0x0000FFFF + + thumb_func_start sub_020023C0 +sub_020023C0: ; 0x020023C0 + push {r3-r6, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x24 + ldrb r1, [r1, #0x0] + add r6, r4, #0x0 + add r6, #0x1c + cmp r1, #0x6 + bls _020023D6 + b _02002838 +_020023D6: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0 + lsl r6, r3, #0xd + lsl r0, r7, #0xd + lsl r2, r4, #0xe + lsl r2, r2, #0xf + lsl r0, r5, #0x10 + lsl r4, r6, #0x10 + ldr r0, _02002658 ; =0x021C48B8 + ldr r1, [r0, #0x44] + mov r0, #0x3 + tst r0, r1 + beq _02002402 + ldrb r0, [r6, #0x0] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + bne _02002414 +_02002402: + ldr r0, _0200265C ; =0x021C48F8 + ldrh r0, [r0, #0x22] + cmp r0, #0x0 + beq _02002432 + ldr r0, _02002660 ; =0x02106FC4 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + beq _02002432 +_02002414: + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x26 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x25 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x19 + lsr r0, r0, #0x19 + beq _02002432 + ldr r1, _02002660 ; =0x02106FC4 + mov r0, #0x40 + ldrb r2, [r1, #0x0] + orr r0, r2 + strb r0, [r1, #0x0] +_02002432: + add r0, r4, #0x0 + add r0, #0x26 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0200248C + add r0, r4, #0x0 + add r0, #0x25 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x19 + lsr r0, r0, #0x19 + beq _0200248C + add r0, r4, #0x0 + add r0, #0x26 + ldrb r0, [r0, #0x0] + sub r1, r0, #0x1 + add r0, r4, #0x0 + add r0, #0x26 + strb r1, [r0, #0x0] + ldr r0, _02002660 ; =0x02106FC4 + ldrb r0, [r0, #0x0] + lsl r1, r0, #0x1f + lsr r1, r1, #0x1f + beq _02002486 + ldr r1, _02002658 ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #0x3 + tst r1, r2 + bne _02002478 + ldr r1, _0200265C ; =0x021C48F8 + ldrh r1, [r1, #0x20] + cmp r1, #0x0 + beq _02002486 + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + beq _02002486 +_02002478: + ldrb r1, [r6, #0x0] + mov r0, #0x10 + add r4, #0x26 + orr r0, r1 + strb r0, [r6, #0x0] + mov r0, #0x0 + strb r0, [r4, #0x0] +_02002486: + add sp, #0xc + mov r0, #0x3 + pop {r3-r6, pc} +_0200248C: + add r0, r4, #0x0 + add r0, #0x25 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x19 + lsr r1, r0, #0x19 + add r0, r4, #0x0 + add r0, #0x26 + strb r1, [r0, #0x0] + ldr r0, [r4, #0x0] + ldrh r5, [r0, #0x0] + add r0, r0, #0x2 + str r0, [r4, #0x0] + mov r0, #0xf1 + lsl r0, r0, #0x8 + cmp r5, r0 + bne _020024B0 + bl sub_02020C2C +_020024B0: + ldr r0, _02002664 ; =0x0000F0FD + cmp r5, r0 + bgt _020024DA + bge _0200250E + ldr r1, _02002668 ; =0x000025BD + cmp r5, r1 + bgt _020024D0 + sub r0, r1, #0x1 + cmp r5, r0 + blt _020024CE + bne _020024C8 + b _020026D8 +_020024C8: + cmp r5, r1 + bne _020024CE + b _020026EC +_020024CE: + b _02002700 +_020024D0: + mov r0, #0xe + lsl r0, r0, #0xc + cmp r5, r0 + beq _020024F2 + b _02002700 +_020024DA: + ldr r0, _0200266C ; =0x0000FFFE + cmp r5, r0 + bgt _020024E4 + beq _0200251A + b _02002700 +_020024E4: + add r0, r0, #0x1 + cmp r5, r0 + beq _020024EC + b _02002700 +_020024EC: + add sp, #0xc + mov r0, #0x1 + pop {r3-r6, pc} +_020024F2: + ldrb r0, [r4, #0xa] + mov r1, #0x1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x9] + bl sub_02002E4C + ldrb r1, [r4, #0xf] + ldrb r2, [r4, #0xd] + add sp, #0xc + add r0, r1, r0 + add r0, r2, r0 + strb r0, [r4, #0xd] + mov r0, #0x2 + pop {r3-r6, pc} +_0200250E: + ldr r0, [r4, #0x0] + add sp, #0xc + add r0, r0, #0x2 + str r0, [r4, #0x0] + mov r0, #0x2 + pop {r3-r6, pc} +_0200251A: + ldr r0, [r4, #0x0] + sub r0, r0, #0x2 + str r0, [r4, #0x0] + bl sub_0201B8E0 + lsl r0, r0, #0x10 + ldr r1, _02002670 ; =0x0000FE06 + lsr r0, r0, #0x10 + cmp r0, r1 + bgt _02002552 + blt _02002532 + b _02002678 +_02002532: + mov r1, #0x2 + lsl r1, r1, #0x8 + sub r1, r0, r1 + cmp r1, #0x4 + bhi _0200255C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r5, #0x1 + lsl r4, r2, #0x2 + lsl r6, r6, #0x2 + lsl r6, r1, #0x3 + lsl r2, r3, #0x3 +_02002552: + mov r1, #0xff + lsl r1, r1, #0x8 + cmp r0, r1 + bgt _0200255E + beq _02002566 +_0200255C: + b _020026CA +_0200255E: + add r1, r1, #0x1 + cmp r0, r1 + beq _02002630 + b _020026CA +_02002566: + ldr r0, [r4, #0x0] + mov r1, #0x0 + bl sub_0201B914 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0xff + bne _02002596 + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x17] + sub r1, r0, #0x1 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r0, r0, #0x1 + add r0, #0x64 + strb r0, [r4, #0x17] + cmp r2, #0x64 + blo _02002644 + cmp r2, #0x6b + bhs _02002644 + sub r2, #0x64 + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + b _0200259E +_02002596: + cmp r0, #0x64 + blo _0200259E + strb r0, [r4, #0x17] + b _020026CA +_0200259E: + lsl r1, r0, #0x1 + add r0, r1, #0x1 + strb r0, [r4, #0x11] + add r0, r1, #0x2 + strb r0, [r4, #0x13] + ldrb r0, [r4, #0x11] + ldrb r1, [r4, #0x12] + ldrb r2, [r4, #0x13] + bl sub_0201C05C + b _020026CA +_020025B4: + .byte 0x20, 0x68, 0x00, 0x21, 0x19, 0xF0, 0xAC, 0xF9, 0x00, 0x04, 0x03, 0x0C + .byte 0x21, 0x7B, 0x62, 0x7B, 0x20, 0x1C, 0x19, 0xF0, 0x11, 0xFE, 0x20, 0x1C, 0x25, 0x30, 0x00, 0x78 + .byte 0x00, 0x06, 0xC0, 0x0F, 0x79, 0xD0, 0x60, 0x68, 0x16, 0xF0, 0xFA, 0xFD, 0x75, 0xE0, 0x20, 0x68 + .byte 0x00, 0x21, 0x19, 0xF0, 0x97, 0xF9, 0x21, 0x1C, 0x26, 0x31, 0x08, 0x70, 0x20, 0x68, 0x19, 0xF0 + .byte 0x63, 0xF9, 0x20, 0x60, 0x06, 0x20, 0x24, 0x34, 0x20, 0x70, 0x03, 0xB0, 0x03, 0x20, 0x78, 0xBD + .byte 0x20, 0x68, 0x00, 0x21, 0x19, 0xF0, 0x86, 0xF9, 0x60, 0x85, 0x20, 0x68, 0x19, 0xF0, 0x54, 0xF9 + .byte 0x20, 0x60, 0x03, 0xB0, 0x03, 0x20, 0x78, 0xBD, 0x20, 0x68, 0x00, 0x21, 0x19, 0xF0, 0x7A, 0xF9 + .byte 0x20, 0x73, 0x52, 0xE0, 0x20, 0x68, 0x00, 0x21, 0x19, 0xF0, 0x74, 0xF9, 0x60, 0x73, 0x4C, 0xE0 +_02002630: + ldr r0, [r4, #0x0] + mov r1, #0x0 + bl sub_0201B914 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x64 + beq _02002646 + cmp r0, #0xc8 + beq _0200264E +_02002644: + b _020026CA +_02002646: + mov r0, #0x0 + strh r0, [r4, #0x14] + strb r0, [r4, #0x16] + b _020026CA +_0200264E: + ldr r0, _02002674 ; =0x0000FFFC + strh r0, [r4, #0x14] + mov r0, #0x0 + strb r0, [r4, #0x16] + b _020026CA + .balign 4 +_02002658: .word 0x021C48B8 +_0200265C: .word 0x021C48F8 +_02002660: .word 0x02106FC4 +_02002664: .word 0x0000F0FD +_02002668: .word 0x000025BD +_0200266C: .word 0x0000FFFE +_02002670: .word 0x0000FE06 +_02002674: .word 0x0000FFFC +_02002678: + ldr r0, [r4, #0x0] + mov r1, #0x0 + bl sub_0201B914 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + mov r0, #0xfe + lsl r0, r0, #0x8 + cmp r1, r0 + beq _020026AE + add r0, r0, #0x1 + cmp r1, r0 + bne _020026CA + add r0, r4, #0x0 + mov r1, #0x2 + add r0, #0x24 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_0200284C + ldr r0, [r4, #0x0] + bl sub_0201B8B8 + str r0, [r4, #0x0] + add sp, #0xc + mov r0, #0x3 + pop {r3-r6, pc} +_020026AE: + add r0, r4, #0x0 + mov r1, #0x3 + add r0, #0x24 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_0200284C + ldr r0, [r4, #0x0] + bl sub_0201B8B8 + str r0, [r4, #0x0] + add sp, #0xc + mov r0, #0x3 + pop {r3-r6, pc} +_020026CA: + ldr r0, [r4, #0x0] + bl sub_0201B8B8 + str r0, [r4, #0x0] + add sp, #0xc + mov r0, #0x2 + pop {r3-r6, pc} +_020026D8: + add r0, r4, #0x0 + mov r1, #0x2 + add r0, #0x24 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_0200284C + add sp, #0xc + mov r0, #0x3 + pop {r3-r6, pc} +_020026EC: + add r0, r4, #0x0 + mov r1, #0x3 + add r0, #0x24 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_0200284C + add sp, #0xc + mov r0, #0x3 + pop {r3-r6, pc} +_02002700: + ldrb r0, [r6, #0x0] + add r1, r5, #0x0 + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + bl sub_02002D94 + add r5, r0, #0x0 + ldrb r0, [r4, #0xc] + add r2, r5, #0x0 + add r3, r5, #0x0 + str r0, [sp, #0x0] + ldrb r0, [r4, #0xd] + add r2, #0x80 + add r3, #0x81 + str r0, [sp, #0x4] + ldrh r0, [r4, #0x14] + add r1, r5, #0x0 + str r0, [sp, #0x8] + ldrb r2, [r2, #0x0] + ldrb r3, [r3, #0x0] + ldr r0, [r4, #0x4] + bl sub_0201974C + add r5, #0x80 + ldrb r1, [r5, #0x0] + ldrb r0, [r4, #0xe] + ldrb r2, [r4, #0xc] + add sp, #0xc + add r0, r1, r0 + add r0, r2, r0 + strb r0, [r4, #0xc] + mov r0, #0x0 + pop {r3-r6, pc} +_02002742: + .byte 0x00, 0xF0, 0xFB, 0xF9, 0x00, 0x28, 0x05, 0xD0, 0x20, 0x1C, 0x00, 0xF0, 0x58, 0xF9 + .byte 0x00, 0x20, 0x24, 0x34, 0x20, 0x70, 0x03, 0xB0, 0x03, 0x20, 0x78, 0xBD, 0x00, 0xF0, 0xDC, 0xF9 + .byte 0x00, 0x28, 0x0D, 0xD0, 0x20, 0x1C, 0x00, 0xF0, 0x4B, 0xF9, 0xA1, 0x7C, 0x60, 0x68, 0x16, 0xF0 + .byte 0x57, 0xFF, 0xA0, 0x7A, 0x20, 0x73, 0xE0, 0x7A, 0x60, 0x73, 0x00, 0x20, 0x24, 0x34, 0x20, 0x70 + .byte 0x03, 0xB0, 0x03, 0x20, 0x78, 0xBD, 0x00, 0xF0, 0xC7, 0xF9, 0x00, 0x28, 0x10, 0xD0, 0x20, 0x1C + .byte 0x00, 0xF0, 0x36, 0xF9, 0x60, 0x7A, 0x01, 0x21, 0x00, 0xF0, 0x58, 0xFB, 0xE1, 0x7B, 0x09, 0x18 + .byte 0x20, 0x1C, 0x27, 0x30, 0x01, 0x70, 0xA0, 0x7A, 0x20, 0x73, 0x04, 0x20, 0x24, 0x34, 0x20, 0x70 + .byte 0x03, 0xB0, 0x03, 0x20, 0x78, 0xBD, 0x27, 0x30, 0x02, 0x78, 0x00, 0x2A, 0x20, 0xD0, 0x04, 0x2A + .byte 0xA5, 0x7C, 0x09, 0xDA, 0x2B, 0x01, 0x2B, 0x43, 0x1B, 0x06, 0x60, 0x68, 0x00, 0x21, 0x1B, 0x0E + .byte 0x18, 0xF0, 0x7A, 0xF8, 0x00, 0x21, 0x0C, 0xE0, 0x2B, 0x01, 0x2B, 0x43, 0x1B, 0x06, 0x60, 0x68 + .byte 0x00, 0x21, 0x04, 0x22, 0x1B, 0x0E, 0x18, 0xF0, 0x6F, 0xF8, 0x20, 0x1C, 0x27, 0x30, 0x00, 0x78 + .byte 0x01, 0x1F, 0x20, 0x1C, 0x27, 0x30, 0x01, 0x70, 0x60, 0x68, 0x16, 0xF0, 0xE9, 0xFC, 0x02, 0xE0 + .byte 0x00, 0x20, 0x24, 0x34, 0x20, 0x70, 0x03, 0xB0, 0x03, 0x20, 0x78, 0xBD, 0x00, 0x20, 0x24, 0x34 + .byte 0x20, 0x70, 0x03, 0xB0, 0x03, 0x20, 0x78, 0xBD, 0x26, 0x30, 0x00, 0x78, 0x00, 0x28, 0x05, 0xD0 + .byte 0x20, 0x1C, 0x26, 0x30, 0x00, 0x78, 0x26, 0x34, 0x40, 0x1E, 0x01, 0xE0, 0x00, 0x20, 0x24, 0x34 + .byte 0x03, 0xB0, 0x20, 0x70, 0x03, 0x20, 0x78, 0xBD +_02002838: + mov r0, #0x1 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02002840 +sub_02002840: ; 0x02002840 + ldr r1, _02002848 ; =0x02106FC4 + strh r0, [r1, #0x2] + bx lr + nop +_02002848: .word 0x02106FC4 + + thumb_func_start sub_0200284C +sub_0200284C: ; 0x0200284C + ldr r1, _02002874 ; =0x02106FC4 + add r0, #0x1c + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x1d + lsr r1, r1, #0x1f + beq _02002862 + ldrb r2, [r0, #0x2] + mov r1, #0xff + bic r2, r1 + strb r2, [r0, #0x2] + bx lr +_02002862: + ldrb r2, [r0, #0x1] + mov r1, #0x60 + bic r2, r1 + strb r2, [r0, #0x1] + ldrb r2, [r0, #0x1] + mov r1, #0x1f + bic r2, r1 + strb r2, [r0, #0x1] + bx lr + .balign 4 +_02002874: .word 0x02106FC4 + + thumb_func_start sub_02002878 +sub_02002878: ; 0x02002878 + push {r4-r7, lr} + sub sp, #0x2c + add r5, r0, #0x0 + ldr r0, _020029F8 ; =0x02106FC4 + add r4, r5, #0x0 + ldrb r0, [r0, #0x0] + add r4, #0x1c + lsl r0, r0, #0x1d + lsr r0, r0, #0x1f + beq _0200288E + b _020029F4 +_0200288E: + ldrb r0, [r4, #0x1] + lsl r1, r0, #0x1b + lsr r2, r1, #0x1b + beq _020028AC + mov r1, #0x1f + add r2, #0xff + bic r0, r1 + lsl r1, r2, #0x18 + lsr r2, r1, #0x18 + mov r1, #0x1f + and r1, r2 + orr r0, r1 + add sp, #0x2c + strb r0, [r4, #0x1] + pop {r4-r7, pc} +_020028AC: + ldr r0, [r5, #0x4] + bl sub_0201AB08 + str r0, [sp, #0x20] + ldr r0, [r5, #0x4] + bl sub_0201AB14 + str r0, [sp, #0x24] + ldr r0, [r5, #0x4] + bl sub_0201AB18 + str r0, [sp, #0x28] + ldr r0, [r5, #0x4] + bl sub_0201AB0C + ldr r1, _020029F8 ; =0x02106FC4 + ldrh r6, [r1, #0x2] + ldr r1, [sp, #0x28] + add r7, r1, #0x2 + ldr r1, [sp, #0x24] + add r2, r6, #0x0 + add r0, r1, r0 + str r0, [sp, #0x1c] + add r0, r0, #0x1 + str r0, [sp, #0x18] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + add r2, #0x12 + mov r12, r2 + ldrb r2, [r4, #0x1] + ldr r0, [r5, #0x4] + ldr r1, [sp, #0x20] + lsl r2, r2, #0x19 + lsr r3, r2, #0x1e + ldr r2, _020029FC ; =0x020ECB50 + ldr r0, [r0, #0x0] + ldrb r2, [r2, r3] + mov r3, r12 + lsl r2, r2, #0x2 + add r2, r3, r2 + ldr r3, [sp, #0x18] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x20] + add r0, r0, #0x2 + str r0, [sp, #0x10] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldrb r2, [r4, #0x1] + add r7, r6, #0x0 + ldr r0, [r5, #0x4] + lsl r2, r2, #0x19 + lsr r3, r2, #0x1e + ldr r2, _020029FC ; =0x020ECB50 + add r7, #0x13 + ldrb r2, [r2, r3] + ldr r3, [sp, #0x10] + ldr r0, [r0, #0x0] + lsl r2, r2, #0x2 + add r2, r7, r2 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x28] + add r7, r6, #0x0 + add r0, r0, #0x3 + str r0, [sp, #0x14] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldrb r2, [r4, #0x1] + ldr r0, [r5, #0x4] + add r7, #0x14 + lsl r2, r2, #0x19 + lsr r3, r2, #0x1e + ldr r2, _020029FC ; =0x020ECB50 + ldr r0, [r0, #0x0] + ldrb r2, [r2, r3] + ldr r3, [sp, #0x18] + ldr r1, [sp, #0x20] + lsl r2, r2, #0x2 + add r2, r7, r2 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x14] + add r6, #0x15 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldrb r2, [r4, #0x1] + ldr r0, [r5, #0x4] + ldr r1, [sp, #0x20] + lsl r2, r2, #0x19 + lsr r3, r2, #0x1e + ldr r2, _020029FC ; =0x020ECB50 + ldr r0, [r0, #0x0] + ldrb r2, [r2, r3] + ldr r3, [sp, #0x10] + lsl r2, r2, #0x2 + add r2, r6, r2 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [r5, #0x4] + ldr r1, [sp, #0x20] + ldr r0, [r0, #0x0] + bl sub_02017CD0 + ldrb r1, [r4, #0x1] + mov r0, #0x1f + bic r1, r0 + mov r0, #0x8 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r2, [r4, #0x1] + mov r1, #0x60 + add r0, r2, #0x0 + bic r0, r1 + lsl r1, r2, #0x19 + lsr r1, r1, #0x1e + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1e + lsr r1, r1, #0x19 + orr r0, r1 + strb r0, [r4, #0x1] +_020029F4: + add sp, #0x2c + pop {r4-r7, pc} + .balign 4 +_020029F8: .word 0x02106FC4 +_020029FC: .word 0x020ECB50 + + thumb_func_start sub_02002A00 +sub_02002A00: ; 0x02002A00 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + bl sub_0201AB08 + str r0, [sp, #0x10] + ldr r0, [r5, #0x4] + bl sub_0201AB14 + str r0, [sp, #0x14] + ldr r0, [r5, #0x4] + bl sub_0201AB18 + add r6, r0, #0x0 + ldr r0, [r5, #0x4] + bl sub_0201AB0C + ldr r1, _02002A90 ; =0x02106FC4 + add r7, r6, #0x2 + ldrh r4, [r1, #0x2] + ldr r1, [sp, #0x14] + add r6, r1, r0 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldr r0, [r5, #0x4] + add r2, r4, #0x0 + add r2, #0xa + add r3, r6, #0x1 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [r0, #0x0] + ldr r1, [sp, #0x10] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldr r0, [r5, #0x4] + add r4, #0xb + add r3, r6, #0x2 + lsl r2, r4, #0x10 + lsl r3, r3, #0x18 + ldr r0, [r0, #0x0] + ldr r1, [sp, #0x10] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [r5, #0x4] + ldr r1, [sp, #0x10] + ldr r0, [r0, #0x0] + bl sub_02017CD0 + add sp, #0x18 + pop {r3-r7, pc} + nop +_02002A90: .word 0x02106FC4 + + thumb_func_start sub_02002A94 +sub_02002A94: ; 0x02002A94 + push {r3, lr} + ldr r0, _02002ACC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + bne _02002AB2 + ldr r0, _02002AD0 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0x0 + beq _02002AC6 + ldr r0, _02002AD4 ; =0x02106FC4 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + beq _02002AC6 +_02002AB2: + ldr r0, _02002AD8 ; =0x000005DC + bl sub_020054C8 + ldr r1, _02002AD4 ; =0x02106FC4 + mov r0, #0x80 + ldrb r2, [r1, #0x0] + orr r0, r2 + strb r0, [r1, #0x0] + mov r0, #0x1 + pop {r3, pc} +_02002AC6: + mov r0, #0x0 + pop {r3, pc} + nop +_02002ACC: .word 0x021C48B8 +_02002AD0: .word 0x021C48F8 +_02002AD4: .word 0x02106FC4 +_02002AD8: .word 0x000005DC + + thumb_func_start sub_02002ADC +sub_02002ADC: ; 0x02002ADC + push {r4, lr} + add r2, r0, #0x0 + add r2, #0x1c + ldrb r1, [r2, #0x2] + add r4, r1, #0x0 + cmp r4, #0x64 + bne _02002AEE + mov r0, #0x1 + pop {r4, pc} +_02002AEE: + mov r3, #0xff + bic r1, r3 + add r3, r4, #0x1 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + orr r1, r3 + strb r1, [r2, #0x2] + ldr r1, _02002B14 ; =0x02106FC4 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x1a + lsr r1, r1, #0x1f + beq _02002B10 + bl sub_02002A94 + pop {r4, pc} +_02002B10: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_02002B14: .word 0x02106FC4 + + thumb_func_start sub_02002B18 +sub_02002B18: ; 0x02002B18 + push {r4, lr} + ldr r1, _02002B38 ; =0x02106FC4 + add r4, r0, #0x0 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x1d + lsr r1, r1, #0x1f + beq _02002B2C + bl sub_02002ADC + pop {r4, pc} +_02002B2C: + bl sub_02002878 + add r0, r4, #0x0 + bl sub_02002A94 + pop {r4, pc} + .balign 4 +_02002B38: .word 0x02106FC4 + + thumb_func_start sub_02002B3C +sub_02002B3C: ; 0x02002B3C + push {r3, lr} + ldr r1, _02002B5C ; =0x02106FC4 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x1d + lsr r1, r1, #0x1f + beq _02002B52 + bl sub_02002ADC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} +_02002B52: + bl sub_02002A94 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + .balign 4 +_02002B5C: .word 0x02106FC4 + + thumb_func_start sub_02002B60 +sub_02002B60: ; 0x02002B60 + ldr r2, _02002B78 ; =0x02106FC4 + mov r1, #0x1 + ldrb r3, [r2, #0x0] + lsl r0, r0, #0x18 + bic r3, r1 + lsr r1, r0, #0x18 + mov r0, #0x1 + and r0, r1 + orr r0, r3 + strb r0, [r2, #0x0] + bx lr + nop +_02002B78: .word 0x02106FC4 + + thumb_func_start sub_02002B7C +sub_02002B7C: ; 0x02002B7C + push {r3-r4} + ldr r1, _02002BB4 ; =0x02106FC4 + mov r3, #0x4 + ldrb r2, [r1, #0x0] + mov r4, #0x1 + bic r2, r3 + add r3, r0, #0x0 + and r3, r4 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + lsl r3, r3, #0x1f + lsr r3, r3, #0x1d + orr r2, r3 + asr r0, r0, #0x1 + and r0, r4 + strb r2, [r1, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1f + ldrb r2, [r1, #0x0] + mov r3, #0x20 + lsr r0, r0, #0x1a + bic r2, r3 + orr r0, r2 + strb r0, [r1, #0x0] + pop {r3-r4} + bx lr + nop +_02002BB4: .word 0x02106FC4 + + thumb_func_start sub_02002BB8 +sub_02002BB8: ; 0x02002BB8 + ldr r2, _02002BD0 ; =0x02106FC4 + lsl r0, r0, #0x18 + ldrb r3, [r2, #0x0] + lsr r0, r0, #0x18 + mov r1, #0x10 + lsl r0, r0, #0x1f + bic r3, r1 + lsr r0, r0, #0x1b + orr r0, r3 + strb r0, [r2, #0x0] + bx lr + nop +_02002BD0: .word 0x02106FC4 + + thumb_func_start sub_02002BD4 +sub_02002BD4: ; 0x02002BD4 + ldr r0, _02002BE0 ; =0x02106FC4 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x19 + lsr r0, r0, #0x1f + bx lr + nop +_02002BE0: .word 0x02106FC4 + + thumb_func_start sub_02002BE4 +sub_02002BE4: ; 0x02002BE4 + ldr r1, _02002BF0 ; =0x02106FC4 + mov r0, #0x40 + ldrb r2, [r1, #0x0] + bic r2, r0 + strb r2, [r1, #0x0] + bx lr + .balign 4 +_02002BF0: .word 0x02106FC4 + + thumb_func_start sub_02002BF4 +sub_02002BF4: ; 0x02002BF4 + ldr r0, _02002C00 ; =0x02106FC4 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + bx lr + nop +_02002C00: .word 0x02106FC4 + + thumb_func_start sub_02002C04 +sub_02002C04: ; 0x02002C04 + ldr r1, _02002C10 ; =0x02106FC4 + mov r0, #0x80 + ldrb r2, [r1, #0x0] + bic r2, r0 + strb r2, [r1, #0x0] + bx lr + .balign 4 +_02002C10: .word 0x02106FC4 + + thumb_func_start sub_02002C14 +sub_02002C14: ; 0x02002C14 + push {r4, lr} + ldr r0, _02002C44 ; =0x02106FCC + ldr r4, _02002C48 ; =0x02106FC8 + mov r1, #0x0 + str r0, [r4, #0x0] + add r2, r1, #0x0 + add r0, r1, #0x0 +_02002C22: + ldr r3, [r4, #0x0] + add r1, r1, #0x1 + add r3, r3, r2 + add r3, #0x84 + str r0, [r3, #0x0] + ldr r3, [r4, #0x0] + add r3, r3, r2 + add r3, #0x94 + add r2, r2, #0x4 + str r0, [r3, #0x0] + cmp r1, #0x4 + blo _02002C22 + ldr r0, _02002C4C ; =0x020ECB64 + bl sub_0201BCBC + pop {r4, pc} + nop +_02002C44: .word 0x02106FCC +_02002C48: .word 0x02106FC8 +_02002C4C: .word 0x020ECB64 + + thumb_func_start sub_02002C50 +sub_02002C50: ; 0x02002C50 + push {r3-r4, lr} + sub sp, #0x4 + str r1, [sp, #0x0] + lsl r4, r0, #0x2 + ldr r1, _02002C78 ; =0x020ECB54 + ldr r3, _02002C7C ; =0x020ECB56 + ldrh r1, [r1, r4] + ldrh r3, [r3, r4] + mov r0, #0xe + mov r2, #0x1 + bl sub_02021590 + ldr r1, _02002C80 ; =0x02106FC8 + ldr r1, [r1, #0x0] + add r1, r1, r4 + add r1, #0x94 + str r0, [r1, #0x0] + add sp, #0x4 + pop {r3-r4, pc} + nop +_02002C78: .word 0x020ECB54 +_02002C7C: .word 0x020ECB56 +_02002C80: .word 0x02106FC8 + + thumb_func_start sub_02002C84 +sub_02002C84: ; 0x02002C84 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x4 + blt _02002C92 + bl sub_02020C2C +_02002C92: + ldr r0, _02002CBC ; =0x02106FC8 + lsl r4, r4, #0x2 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002CA6 + bl sub_02020C2C +_02002CA6: + ldr r0, _02002CBC ; =0x02106FC8 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r2, r5, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl sub_020215E0 + pop {r3-r5, pc} + nop +_02002CBC: .word 0x02106FC8 + + thumb_func_start sub_02002CC0 +sub_02002CC0: ; 0x02002CC0 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x4 + blt _02002CCC + bl sub_02020C2C +_02002CCC: + ldr r0, _02002CF4 ; =0x02106FC8 + lsl r4, r4, #0x2 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002CE0 + bl sub_02020C2C +_02002CE0: + ldr r0, _02002CF4 ; =0x02106FC8 + mov r1, #0x1 + ldr r0, [r0, #0x0] + mov r2, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl sub_020215E0 + pop {r4, pc} + .balign 4 +_02002CF4: .word 0x02106FC8 + + thumb_func_start sub_02002CF8 +sub_02002CF8: ; 0x02002CF8 + push {r3-r7, lr} + add r4, r0, #0x0 + cmp r4, #0x4 + blt _02002D04 + bl sub_02020C2C +_02002D04: + ldr r0, _02002D8C ; =0x02106FC8 + lsl r6, r4, #0x2 + ldr r7, [r0, #0x0] + add r0, r7, r6 + add r0, #0x84 + ldr r0, [r0, #0x0] + mov r12, r0 + cmp r0, #0x0 + beq _02002D68 + ldr r2, _02002D90 ; =0x020ECB54 + mov r1, #0x0 + ldrh r0, [r2, r6] + add r3, r7, #0x0 +_02002D1E: + cmp r1, r4 + beq _02002D3E + ldrh r5, [r2, #0x0] + cmp r5, r0 + bne _02002D3E + add r5, r3, #0x0 + add r5, #0x94 + ldr r5, [r5, #0x0] + cmp r5, #0x0 + beq _02002D3E + lsl r0, r1, #0x2 + add r2, r7, r0 + add r2, #0x84 + mov r0, r12 + str r0, [r2, #0x0] + b _02002D48 +_02002D3E: + add r1, r1, #0x1 + add r2, r2, #0x4 + add r3, r3, #0x4 + cmp r1, #0x4 + blo _02002D1E +_02002D48: + cmp r1, #0x4 + bne _02002D68 + ldr r0, _02002D8C ; =0x02106FC8 + lsl r5, r4, #0x2 + ldr r0, [r0, #0x0] + add r0, r0, r5 + add r0, #0x84 + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _02002D8C ; =0x02106FC8 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r5 + add r0, #0x84 + str r1, [r0, #0x0] +_02002D68: + ldr r0, _02002D8C ; =0x02106FC8 + ldr r0, [r0, #0x0] + add r0, r0, r6 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02002D88 + bl sub_020215C8 + ldr r0, _02002D8C ; =0x02106FC8 + mov r2, #0x0 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x2 + add r0, r1, r0 + add r0, #0x94 + str r2, [r0, #0x0] +_02002D88: + pop {r3-r7, pc} + nop +_02002D8C: .word 0x02106FC8 +_02002D90: .word 0x020ECB54 + + thumb_func_start sub_02002D94 +sub_02002D94: ; 0x02002D94 + push {r3, lr} + ldr r2, _02002DAC ; =0x02106FC8 + lsl r0, r0, #0x2 + ldr r2, [r2, #0x0] + add r0, r2, r0 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl sub_02021750 + ldr r0, _02002DAC ; =0x02106FC8 + ldr r0, [r0, #0x0] + pop {r3, pc} + .balign 4 +_02002DAC: .word 0x02106FC8 + + thumb_func_start sub_02002DB0 +sub_02002DB0: ; 0x02002DB0 + push {r4, lr} + add r3, r1, #0x0 + add r3, #0x1c + ldrb r2, [r3, #0x1] + lsl r2, r2, #0x18 + lsr r2, r2, #0x1f + bne _02002DD8 + ldrb r2, [r3, #0x0] + mov r4, #0xf + lsl r0, r0, #0x18 + bic r2, r4 + lsr r4, r0, #0x18 + mov r0, #0xf + and r0, r4 + orr r0, r2 + strb r0, [r3, #0x0] + ldrb r2, [r3, #0x1] + mov r0, #0x80 + orr r0, r2 + strb r0, [r3, #0x1] +_02002DD8: + add r0, r1, #0x0 + bl sub_020023C0 + pop {r4, pc} + + thumb_func_start sub_02002DE0 +sub_02002DE0: ; 0x02002DE0 + push {r4-r6, lr} + lsl r4, r0, #0x2 + ldr r0, _02002E10 ; =0x02106FC8 + add r5, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002DFA + bl sub_02020C2C +_02002DFA: + ldr r0, _02002E10 ; =0x02106FC8 + add r1, r5, #0x0 + ldr r0, [r0, #0x0] + add r2, r6, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl sub_020218D8 + pop {r4-r6, pc} + nop +_02002E10: .word 0x02106FC8 + + thumb_func_start sub_02002E14 +sub_02002E14: ; 0x02002E14 + push {r4-r6, lr} + lsl r4, r0, #0x2 + ldr r0, _02002E48 ; =0x02106FC8 + add r5, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002E2E + bl sub_02020C2C +_02002E2E: + add r0, r5, #0x0 + bl sub_02021F2C + add r1, r0, #0x0 + ldr r0, _02002E48 ; =0x02106FC8 + add r2, r6, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl sub_020218D8 + pop {r4-r6, pc} + .balign 4 +_02002E48: .word 0x02106FC8 + + thumb_func_start sub_02002E4C +sub_02002E4C: ; 0x02002E4C + mov r2, #0x0 + cmp r1, #0x7 + bhi _02002EAC + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + lsl r6, r4, #0 + lsl r6, r5, #0 + lsl r6, r6, #0 + lsl r6, r7, #0 + lsl r6, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _02002EB0 ; =0x020ECB64 + ldrb r2, [r0, r1] + b _02002EAC +_02002E76: + .byte 0xC1, 0x00, 0x0E, 0x48, 0x42, 0x5C, 0x16, 0xE0, 0xC1, 0x00 + .byte 0x0D, 0x48, 0x42, 0x5C, 0x12, 0xE0, 0xC1, 0x00, 0x0C, 0x48, 0x42, 0x5C, 0x0E, 0xE0, 0xC1, 0x00 + .byte 0x0B, 0x48, 0x42, 0x5C, 0x0A, 0xE0, 0xC1, 0x00, 0x0A, 0x48, 0x42, 0x5C, 0x06, 0xE0, 0xC1, 0x00 + .byte 0x09, 0x48, 0x42, 0x5C, 0x02, 0xE0, 0xC1, 0x00, 0x08, 0x48, 0x42, 0x5C +_02002EAC: + add r0, r2, #0x0 + bx lr + .balign 4 +_02002EB0: .word 0x020ECB64 +_02002EB4: + .byte 0x65, 0xCB, 0x0E, 0x02, 0x66, 0xCB, 0x0E, 0x02, 0x67, 0xCB, 0x0E, 0x02 + .byte 0x68, 0xCB, 0x0E, 0x02, 0x69, 0xCB, 0x0E, 0x02, 0x6A, 0xCB, 0x0E, 0x02, 0x6B, 0xCB, 0x0E, 0x02 + + thumb_func_start sub_02002ED0 +sub_02002ED0: ; 0x02002ED0 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + add r3, r1, #0x0 + str r2, [sp, #0x4] + mov r0, #0xe + mov r1, #0x6 + add r2, r4, #0x0 + bl sub_02006930 + add sp, #0x8 + pop {r4, pc} + + thumb_func_start sub_02002EEC +sub_02002EEC: ; 0x02002EEC + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + add r3, r1, #0x0 + str r2, [sp, #0x4] + mov r0, #0xe + mov r1, #0x7 + add r2, r4, #0x0 + bl sub_02006930 + add sp, #0x8 + pop {r4, pc} + + thumb_func_start sub_02002F08 +sub_02002F08: ; 0x02002F08 + push {r4-r6, lr} + lsl r4, r0, #0x2 + ldr r0, _02002F3C ; =0x02106FC8 + add r5, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002F22 + bl sub_02020C2C +_02002F22: + add r0, r5, #0x0 + bl sub_02021F2C + add r1, r0, #0x0 + ldr r0, _02002F3C ; =0x02106FC8 + add r2, r6, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl sub_02021934 + pop {r4-r6, pc} + .balign 4 +_02002F3C: .word 0x02106FC8 + + thumb_func_start sub_02002F40 +sub_02002F40: ; 0x02002F40 + push {r4, lr} + add r4, r3, #0x0 + bl sub_02002E14 + cmp r0, r4 + bhs _02002F52 + sub r0, r4, r0 + lsr r0, r0, #0x1 + pop {r4, pc} +_02002F52: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02002F58 +sub_02002F58: ; 0x02002F58 + push {r3-r7, lr} + ldrh r2, [r0, #0x0] + ldr r1, _02002F8C ; =0x0000FFFF + mov r5, #0x1 + cmp r2, r1 + beq _02002F88 + mov r6, #0xe + lsl r6, r6, #0xc + add r7, r1, #0x0 + sub r4, r1, #0x1 +_02002F6C: + cmp r2, r4 + bne _02002F76 + bl sub_0201B8B8 + b _02002F82 +_02002F76: + cmp r2, r6 + bne _02002F80 + add r5, r5, #0x1 + add r0, r0, #0x2 + b _02002F82 +_02002F80: + add r0, r0, #0x2 +_02002F82: + ldrh r2, [r0, #0x0] + cmp r2, r7 + bne _02002F6C +_02002F88: + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_02002F8C: .word 0x0000FFFF + + thumb_func_start sub_02002F90 +sub_02002F90: ; 0x02002F90 + push {r3, lr} + bl sub_02021F2C + bl sub_02002F58 + pop {r3, pc} + + thumb_func_start sub_02002F9C +sub_02002F9C: ; 0x02002F9C + push {r3-r5, lr} + lsl r4, r0, #0x2 + ldr r0, _02002FCC ; =0x02106FC8 + add r5, r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002FB4 + bl sub_02020C2C +_02002FB4: + add r0, r5, #0x0 + bl sub_02021F2C + add r1, r0, #0x0 + ldr r0, _02002FCC ; =0x02106FC8 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl sub_0202199C + pop {r3-r5, pc} + .balign 4 +_02002FCC: .word 0x02106FC8 + + thumb_func_start sub_02002FD0 +sub_02002FD0: ; 0x02002FD0 + push {r4, lr} + mov r1, #0x12 + lsl r1, r1, #0x4 + bl sub_02016998 + mov r2, #0x12 + mov r1, #0x0 + lsl r2, r2, #0x4 + add r4, r0, #0x0 + blx sub_020CE34C + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02002FEC +sub_02002FEC: ; 0x02002FEC + ldr r3, _02002FF0 ; =sub_02016A18 + bx r3 + .balign 4 +_02002FF0: .word sub_02016A18 + 1 + + thumb_func_start sub_02002FF4 +sub_02002FF4: ; 0x02002FF4 + push {r3-r4} + mov r4, #0x14 + mul r4, r1 + str r2, [r0, r4] + add r1, r0, r4 + ldr r0, [sp, #0x8] + str r3, [r1, #0x4] + str r0, [r1, #0x8] + pop {r3-r4} + bx lr + + thumb_func_start sub_02003008 +sub_02003008: ; 0x02003008 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + str r3, [sp, #0x4] + add r0, r3, #0x0 + add r1, r4, #0x0 + bl sub_02016998 + add r7, r0, #0x0 + ldr r0, [sp, #0x4] + add r1, r4, #0x0 + bl sub_02016998 + add r3, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + str r4, [sp, #0x0] + bl sub_02002FF4 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02003038 +sub_02003038: ; 0x02003038 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r0, #0x14 + add r5, r1, #0x0 + mul r5, r0 + ldr r0, [r4, r5] + bl sub_02016A18 + add r0, r4, r5 + ldr r0, [r0, #0x4] + bl sub_02016A18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02003054 +sub_02003054: ; 0x02003054 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, sp, #0x8 + ldrh r7, [r0, #0x10] + add r6, r2, #0x0 + mov r0, #0x14 + mul r6, r0 + str r1, [sp, #0x0] + add r0, r1, #0x0 + ldr r1, [r5, r6] + lsl r4, r3, #0x1 + add r1, r1, r4 + add r2, r7, #0x0 + blx sub_020CE1E0 + add r1, r5, r6 + ldr r1, [r1, #0x4] + ldr r0, [sp, #0x0] + add r1, r1, r4 + add r2, r7, #0x0 + blx sub_020CE1E0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02003084 +sub_02003084: ; 0x02003084 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + add r2, sp, #0x4 + ldr r4, [sp, #0x1c] + bl sub_02006C08 + add r6, r0, #0x0 + bne _0200309E + bl sub_02020C2C +_0200309E: + cmp r4, #0x0 + bne _020030A6 + ldr r0, [sp, #0x4] + ldr r4, [r0, #0x8] +_020030A6: + add r0, sp, #0x8 + ldrh r0, [r0, #0x18] + ldr r2, [sp, #0x18] + mov r1, #0x14 + mul r1, r2 + add r1, r5, r1 + lsl r0, r0, #0x1 + ldr r1, [r1, #0x8] + add r0, r4, r0 + cmp r0, r1 + bls _020030C0 + bl sub_02020C2C +_020030C0: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r3, sp, #0x8 + ldr r2, [r1, #0xc] + ldrh r1, [r3, #0x1c] + ldrh r3, [r3, #0x18] + add r0, r5, #0x0 + lsl r1, r1, #0x1 + add r1, r2, r1 + ldr r2, [sp, #0x18] + bl sub_02003054 + add r0, r6, #0x0 + bl sub_02016A18 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020030E8 +sub_020030E8: ; 0x020030E8 + push {r4, lr} + sub sp, #0x10 + ldr r4, [sp, #0x18] + str r4, [sp, #0x0] + ldr r4, [sp, #0x1c] + str r4, [sp, #0x4] + add r4, sp, #0x8 + ldrh r4, [r4, #0x18] + str r4, [sp, #0x8] + mov r4, #0x0 + str r4, [sp, #0xc] + bl sub_02003084 + add sp, #0x10 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02003108 +sub_02003108: ; 0x02003108 + push {r3-r7, lr} + add r4, r1, #0x0 + mov r1, #0x14 + add r6, r0, #0x0 + mul r1, r4 + add r5, r2, #0x0 + add r1, r6, r1 + add r7, r3, #0x0 + lsl r0, r5, #0x1 + ldr r1, [r1, #0x8] + add r0, r7, r0 + cmp r0, r1 + bls _02003126 + bl sub_02020C2C +_02003126: + cmp r4, #0x3 + bhi _0200315E + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + bl sub_020222E8 + add r1, r0, #0x0 + b _02003164 +_02003146: + .byte 0x1F, 0xF0, 0xD7, 0xF8, 0x01, 0x1C, 0x0A, 0xE0, 0x1F, 0xF0 + .byte 0xDB, 0xF8, 0x01, 0x1C, 0x06, 0xE0, 0x1F, 0xF0, 0xDB, 0xF8, 0x01, 0x1C, 0x02, 0xE0 +_0200315E: + bl sub_02020C2C + pop {r3-r7, pc} +_02003164: + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + lsl r2, r5, #0x1 + str r0, [sp, #0x0] + add r1, r1, r2 + add r0, r6, #0x0 + add r2, r4, #0x0 + add r3, r5, #0x0 + bl sub_02003054 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200317C +sub_0200317C: ; 0x0200317C + push {r3-r5, lr} + add r4, r2, #0x0 + add r5, r3, #0x0 + add r2, sp, #0x0 + add r3, r4, #0x0 + bl sub_02006C08 + add r4, r0, #0x0 + bne _02003192 + bl sub_02020C2C +_02003192: + cmp r5, #0x0 + bne _0200319A + ldr r0, [sp, #0x0] + ldr r5, [r0, #0x8] +_0200319A: + ldr r0, [sp, #0x0] + add r2, r5, #0x0 + ldr r1, [r0, #0xc] + add r0, sp, #0x0 + ldrh r0, [r0, #0x10] + lsl r0, r0, #0x1 + add r0, r1, r0 + ldr r1, [sp, #0x14] + blx sub_020CE1E0 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020031B8 +sub_020031B8: ; 0x020031B8 + push {r3-r7, lr} + sub sp, #0x8 + add r4, sp, #0x10 + add r5, r0, #0x0 + add r0, r1, #0x0 + ldrh r1, [r4, #0x14] + add r6, r3, #0x0 + str r1, [sp, #0x0] + ldrh r1, [r4, #0x10] + lsl r4, r2, #0x1 + ldr r2, [sp, #0x0] + lsl r7, r1, #0x1 + mov r1, #0x14 + mul r6, r1 + mul r1, r0 + ldr r0, [r5, r1] + str r1, [sp, #0x4] + ldr r1, [r5, r6] + add r0, r0, r4 + add r1, r1, r7 + blx sub_020CE1E0 + ldr r0, [sp, #0x4] + add r1, r5, r6 + ldr r0, [r5, r0] + ldr r1, [r1, #0x4] + ldr r2, [sp, #0x0] + add r0, r0, r4 + add r1, r1, r7 + blx sub_020CE1E0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020031FC +sub_020031FC: ; 0x020031FC + mov r2, #0x14 + mul r2, r1 + ldr r0, [r0, r2] + bx lr + + thumb_func_start sub_02003204 +sub_02003204: ; 0x02003204 + mov r2, #0x14 + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start sub_02003210 +sub_02003210: ; 0x02003210 + push {r0-r3} + push {r3-r7, lr} + sub sp, #0x10 + str r3, [sp, #0x8] + add r5, r0, #0x0 + ldr r0, [sp, #0x38] + mov r6, #0x0 + str r0, [sp, #0x38] + ldr r0, [sp, #0x3c] + add r7, r1, #0x0 + str r0, [sp, #0x3c] + ldr r0, [sp, #0x40] + add r4, r6, #0x0 + str r0, [sp, #0x40] + add r0, sp, #0x28 + ldrh r0, [r0, #0x8] + str r0, [sp, #0xc] +_02003232: + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_02003314 + cmp r0, #0x1 + bne _020032A6 + mov r0, #0x46 + lsl r0, r0, #0x2 + ldrh r0, [r5, r0] + add r1, r4, #0x0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x12 + bl sub_02003314 + cmp r0, #0x0 + bne _020032A6 + mov r0, #0x14 + add r6, r4, #0x0 + mul r6, r0 + add r0, r4, #0x0 + add r1, r5, r6 + add r2, sp, #0x30 + bl sub_02003368 + ldr r0, [sp, #0x3c] + add r1, sp, #0x28 + str r0, [sp, #0x0] + ldr r0, [sp, #0x40] + str r0, [sp, #0x4] + add r0, r5, r6 + ldrh r1, [r1, #0x8] + ldr r2, [sp, #0x8] + ldr r3, [sp, #0x38] + add r0, #0xc + bl sub_020033A4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02003328 + cmp r4, #0x4 + blo _02003294 + mov r2, #0x1 + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x8 + bl sub_0200359C + b _0200329E +_02003294: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x10 + bl sub_0200359C +_0200329E: + ldr r1, [sp, #0xc] + add r0, sp, #0x28 + strh r1, [r0, #0x8] + mov r6, #0x1 +_020032A6: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xe + blo _02003232 + cmp r6, #0x1 + bne _02003300 + mov r0, #0x46 + lsl r0, r0, #0x2 + ldrh r2, [r5, r0] + ldr r1, _0200330C ; =0xFFFF0003 + and r1, r2 + lsl r2, r2, #0x10 + lsr r2, r2, #0x12 + orr r2, r7 + lsl r2, r2, #0x12 + lsr r2, r2, #0x10 + orr r1, r2 + strh r1, [r5, r0] + add r1, r0, #0x2 + ldrh r1, [r5, r1] + lsl r1, r1, #0x11 + lsr r1, r1, #0x1f + bne _02003300 + add r1, r0, #0x2 + ldrh r2, [r5, r1] + mov r1, #0x1 + lsl r1, r1, #0xe + orr r2, r1 + add r1, r0, #0x2 + strh r2, [r5, r1] + ldrh r2, [r5, r0] + mov r1, #0x3 + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strh r1, [r5, r0] + mov r2, #0x0 + add r0, r0, #0x4 + strb r2, [r5, r0] + ldr r0, _02003310 ; =sub_02003464 + add r1, r5, #0x0 + sub r2, r2, #0x2 + bl sub_0200CA44 +_02003300: + add r0, r6, #0x0 + add sp, #0x10 + pop {r3-r7} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4 +_0200330C: .word 0xFFFF0003 +_02003310: .word sub_02003464 + 1 + + thumb_func_start sub_02003314 +sub_02003314: ; 0x02003314 + mov r3, #0x1 + add r2, r3, #0x0 + lsl r2, r1 + tst r0, r2 + bne _02003320 + mov r3, #0x0 +_02003320: + lsl r0, r3, #0x18 + lsr r0, r0, #0x18 + bx lr + .balign 4 + + thumb_func_start sub_02003328 +sub_02003328: ; 0x02003328 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _02003360 ; =0x0000011A + add r4, r1, #0x0 + ldrh r0, [r5, r0] + lsl r0, r0, #0x12 + lsr r0, r0, #0x12 + bl sub_02003314 + cmp r0, #0x1 + beq _0200335E + ldr r3, _02003360 ; =0x0000011A + ldr r1, _02003364 ; =0xFFFFC000 + ldrh r2, [r5, r3] + add r0, r2, #0x0 + lsl r2, r2, #0x12 + lsr r6, r2, #0x12 + mov r2, #0x1 + lsl r2, r4 + orr r2, r6 + lsl r2, r2, #0x10 + and r0, r1 + lsr r2, r2, #0x10 + lsr r1, r1, #0x12 + and r1, r2 + orr r0, r1 + strh r0, [r5, r3] +_0200335E: + pop {r4-r6, pc} + .balign 4 +_02003360: .word 0x0000011A +_02003364: .word 0xFFFFC000 + + thumb_func_start sub_02003368 +sub_02003368: ; 0x02003368 + push {r4-r5} + cmp r0, #0x4 + ldr r0, [r1, #0x8] + bge _02003374 + lsl r0, r0, #0x13 + b _02003378 +_02003374: + lsr r0, r0, #0x9 + lsl r0, r0, #0x18 +_02003378: + mov r4, #0x0 + lsr r0, r0, #0x18 + add r5, r4, #0x0 + cmp r0, #0x0 + bls _02003398 + mov r3, #0x1 +_02003384: + add r1, r3, #0x0 + lsl r1, r5 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + add r1, r5, #0x1 + lsl r1, r1, #0x18 + lsr r5, r1, #0x18 + cmp r5, r0 + blo _02003384 +_02003398: + ldrh r0, [r2, #0x0] + and r0, r4 + strh r0, [r2, #0x0] + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_020033A4 +sub_020033A4: ; 0x020033A4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r3, #0x0 + cmp r2, #0x0 + bge _020033D4 + add r0, r2, #0x0 + blx sub_020DE3F0 + add r0, r0, #0x2 + ldrh r1, [r5, #0x6] + mov r2, #0xf + lsl r0, r0, #0x10 + bic r1, r2 + lsr r2, r0, #0x10 + mov r0, #0xf + and r0, r2 + orr r0, r1 + strh r0, [r5, #0x6] + ldrh r1, [r5, #0x2] + mov r0, #0x3f + bic r1, r0 + strh r1, [r5, #0x2] + b _020033F2 +_020033D4: + ldrh r1, [r5, #0x6] + mov r0, #0xf + bic r1, r0 + mov r0, #0x2 + orr r0, r1 + strh r0, [r5, #0x6] + ldrh r0, [r5, #0x2] + mov r1, #0x3f + bic r0, r1 + lsl r1, r2, #0x10 + lsr r2, r1, #0x10 + mov r1, #0x3f + and r1, r2 + orr r0, r1 + strh r0, [r5, #0x2] +_020033F2: + strh r6, [r5, #0x0] + ldrh r1, [r5, #0x2] + ldr r0, _02003454 ; =0xFFFFF83F + add r3, sp, #0x0 + and r1, r0 + lsl r0, r4, #0x1b + lsr r0, r0, #0x15 + orr r0, r1 + strh r0, [r5, #0x2] + ldrh r1, [r5, #0x2] + ldr r0, _02003458 ; =0xFFFF07FF + add r2, r1, #0x0 + ldrb r1, [r3, #0x10] + and r2, r0 + lsl r0, r1, #0x1b + lsr r0, r0, #0x10 + orr r0, r2 + strh r0, [r5, #0x2] + ldrh r0, [r5, #0x4] + ldr r2, _0200345C ; =0xFFFF8000 + ldrh r6, [r3, #0x14] + lsr r3, r2, #0x11 + and r0, r2 + and r3, r6 + orr r0, r3 + strh r0, [r5, #0x4] + ldrh r3, [r5, #0x6] + ldr r0, _02003460 ; =0xFFFFFC0F + and r0, r3 + ldrh r3, [r5, #0x2] + lsl r3, r3, #0x1a + lsr r3, r3, #0x1a + lsl r3, r3, #0x1a + lsr r3, r3, #0x16 + orr r0, r3 + strh r0, [r5, #0x6] + cmp r4, r1 + ldrh r1, [r5, #0x4] + bhs _02003448 + sub r0, r2, #0x1 + and r0, r1 + strh r0, [r5, #0x4] + pop {r4-r6, pc} +_02003448: + mov r0, #0x2 + lsl r0, r0, #0xe + orr r0, r1 + strh r0, [r5, #0x4] + pop {r4-r6, pc} + nop +_02003454: .word 0xFFFFF83F +_02003458: .word 0xFFFF07FF +_0200345C: .word 0xFFFF8000 +_02003460: .word 0xFFFFFC0F + + thumb_func_start sub_02003464 +sub_02003464: ; 0x02003464 + push {r4-r6, lr} + add r4, r1, #0x0 + mov r1, #0x47 + lsl r1, r1, #0x2 + ldrb r2, [r4, r1] + add r5, r0, #0x0 + cmp r2, #0x1 + bne _020034A4 + mov r2, #0x0 + strb r2, [r4, r1] + sub r2, r1, #0x2 + ldrh r3, [r4, r2] + ldr r2, _020034F4 ; =0xFFFFC000 + add r5, r3, #0x0 + and r5, r2 + sub r3, r1, #0x2 + strh r5, [r4, r3] + sub r3, r1, #0x4 + ldrh r5, [r4, r3] + ldr r3, _020034F8 ; =0xFFFF0003 + sub r2, r2, #0x1 + and r5, r3 + sub r3, r1, #0x4 + strh r5, [r4, r3] + sub r3, r1, #0x2 + ldrh r3, [r4, r3] + sub r1, r1, #0x2 + and r2, r3 + strh r2, [r4, r1] + bl sub_0200CAB4 + pop {r4-r6, pc} +_020034A4: + sub r0, r1, #0x4 + ldrh r2, [r4, r0] + lsl r0, r2, #0x1e + lsr r0, r0, #0x1e + cmp r0, #0x1 + bne _020034F0 + sub r0, r1, #0x2 + ldrh r0, [r4, r0] + ldr r3, _020034F4 ; =0xFFFFC000 + lsl r2, r2, #0x10 + lsr r6, r2, #0x12 + lsr r2, r3, #0x12 + and r0, r3 + and r2, r6 + orr r2, r0 + sub r0, r1, #0x2 + strh r2, [r4, r0] + add r0, r4, #0x0 + bl sub_02003500 + add r0, r4, #0x0 + bl sub_02003520 + mov r1, #0x46 + lsl r1, r1, #0x2 + ldrh r0, [r4, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x12 + bne _020034F0 + add r0, r1, #0x2 + ldrh r2, [r4, r0] + ldr r0, _020034FC ; =0xFFFFBFFF + and r2, r0 + add r0, r1, #0x2 + strh r2, [r4, r0] + add r0, r5, #0x0 + bl sub_0200CAB4 +_020034F0: + pop {r4-r6, pc} + nop +_020034F4: .word 0xFFFFC000 +_020034F8: .word 0xFFFF0003 +_020034FC: .word 0xFFFFBFFF + + thumb_func_start sub_02003500 +sub_02003500: ; 0x02003500 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r4, #0x0 + mov r6, #0x10 +_02003508: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02003540 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + blo _02003508 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02003520 +sub_02003520: ; 0x02003520 + push {r4-r6, lr} + mov r4, #0x4 + add r6, r4, #0x0 + add r5, r0, #0x0 + add r6, #0xfc +_0200352A: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02003540 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xe + blo _0200352A + pop {r4-r6, pc} + + thumb_func_start sub_02003540 +sub_02003540: ; 0x02003540 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0x46 + lsl r0, r0, #0x2 + ldrh r0, [r5, r0] + add r4, r1, #0x0 + add r6, r2, #0x0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x12 + bl sub_02003314 + cmp r0, #0x0 + beq _02003594 + mov r0, #0x14 + mul r0, r4 + add r2, r5, r0 + ldrh r0, [r2, #0x12] + ldrh r3, [r2, #0xe] + lsl r1, r0, #0x16 + lsl r3, r3, #0x1a + lsr r1, r1, #0x1a + lsr r3, r3, #0x1a + cmp r1, r3 + bhs _02003584 + ldr r3, _02003598 ; =0xFFFFFC0F + and r3, r0 + add r0, r1, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1a + lsr r0, r0, #0x16 + orr r0, r3 + strh r0, [r2, #0x12] + pop {r4-r6, pc} +_02003584: + ldr r1, _02003598 ; =0xFFFFFC0F + and r0, r1 + strh r0, [r2, #0x12] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0200359C +_02003594: + pop {r4-r6, pc} + nop +_02003598: .word 0xFFFFFC0F + + thumb_func_start sub_0200359C +sub_0200359C: ; 0x0200359C + push {r4-r7, lr} + sub sp, #0xc + str r1, [sp, #0x4] + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + mov r1, #0x14 + mul r1, r0 + ldr r0, [sp, #0x0] + mov r6, #0x0 + add r5, r0, r1 + add r0, r5, #0x0 + str r0, [sp, #0x8] + add r0, #0xc + add r7, r2, #0x0 + add r4, r6, #0x0 + str r0, [sp, #0x8] +_020035BC: + ldrh r0, [r5, #0xc] + lsl r1, r6, #0x10 + lsr r1, r1, #0x10 + bl sub_02003314 + cmp r0, #0x0 + beq _020035DC + ldr r0, [r5, #0x0] + lsl r1, r4, #0x1 + ldr r2, [r5, #0x4] + add r0, r0, r1 + add r1, r2, r1 + ldr r2, [sp, #0x8] + add r3, r7, #0x0 + bl sub_020035F8 +_020035DC: + add r6, r6, #0x1 + add r4, r4, r7 + cmp r6, #0x10 + blo _020035BC + ldr r1, [sp, #0x4] + add r5, #0xc + lsl r1, r1, #0x18 + ldr r0, [sp, #0x0] + lsr r1, r1, #0x18 + add r2, r5, #0x0 + bl sub_02003684 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_020035F8 +sub_020035F8: ; 0x020035F8 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x4] + mov r0, #0x0 + add r6, r1, #0x0 + mov r12, r0 + str r2, [sp, #0x0] + mov lr, r3 + add r0, r3, #0x0 + beq _02003680 +_0200360C: + ldr r0, [sp, #0x4] + mov r1, #0x1f + ldrh r0, [r0, #0x0] + asr r2, r0, #0x5 + add r5, r2, #0x0 + and r5, r1 + ldr r1, [sp, #0x0] + asr r4, r0, #0xa + ldrh r1, [r1, #0x4] + lsl r1, r1, #0x11 + lsr r3, r1, #0x11 + ldr r1, [sp, #0x0] + ldrh r1, [r1, #0x2] + lsl r1, r1, #0x15 + lsr r2, r1, #0x1b + mov r1, #0x1f + and r1, r4 + mov r4, #0x1f + and r0, r4 + and r4, r3 + sub r4, r4, r0 + mul r4, r2 + asr r4, r4, #0x4 + add r0, r0, r4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + asr r4, r3, #0xa + mov r0, #0x1f + and r0, r4 + sub r0, r0, r1 + mul r0, r2 + asr r0, r0, #0x4 + add r0, r1, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + asr r3, r3, #0x5 + mov r1, #0x1f + and r1, r3 + sub r1, r1, r5 + mul r1, r2 + asr r1, r1, #0x4 + add r1, r5, r1 + lsl r1, r1, #0x18 + lsl r0, r0, #0xa + lsr r1, r1, #0x13 + orr r0, r1 + orr r0, r7 + strh r0, [r6, #0x0] + ldr r0, [sp, #0x4] + add r6, r6, #0x2 + add r0, r0, #0x2 + str r0, [sp, #0x4] + mov r0, r12 + add r1, r0, #0x1 + mov r0, lr + mov r12, r1 + cmp r1, r0 + blo _0200360C +_02003680: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02003684 +sub_02003684: ; 0x02003684 + push {r4-r5} + ldrh r4, [r2, #0x2] + lsl r3, r4, #0x10 + lsl r4, r4, #0x15 + lsr r3, r3, #0x1b + lsr r4, r4, #0x1b + cmp r4, r3 + bne _020036BE + mov r3, #0x46 + lsl r3, r3, #0x2 + ldrh r4, [r0, r3] + mov r2, #0x1 + lsl r2, r1 + lsl r1, r4, #0x10 + lsr r5, r1, #0x12 + add r1, r5, #0x0 + tst r1, r2 + beq _0200371E + eor r2, r5 + lsl r2, r2, #0x10 + ldr r1, _02003724 ; =0xFFFF0003 + lsr r2, r2, #0x10 + lsl r2, r2, #0x12 + and r1, r4 + lsr r2, r2, #0x10 + orr r1, r2 + strh r1, [r0, r3] + pop {r4-r5} + bx lr +_020036BE: + ldrh r0, [r2, #0x4] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1f + bne _020036F4 + lsl r0, r4, #0x10 + asr r1, r0, #0x10 + ldrh r0, [r2, #0x6] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + add r0, r1, r0 + lsl r0, r0, #0x10 + asr r4, r0, #0x10 + cmp r4, r3 + ble _020036DE + lsl r0, r3, #0x10 + asr r4, r0, #0x10 +_020036DE: + ldrh r1, [r2, #0x2] + ldr r0, _02003728 ; =0xFFFFF83F + and r1, r0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1b + lsr r0, r0, #0x15 + orr r0, r1 + strh r0, [r2, #0x2] + pop {r4-r5} + bx lr +_020036F4: + lsl r0, r4, #0x10 + asr r1, r0, #0x10 + ldrh r0, [r2, #0x6] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + sub r0, r1, r0 + lsl r0, r0, #0x10 + asr r4, r0, #0x10 + cmp r4, r3 + bge _0200370C + lsl r0, r3, #0x10 + asr r4, r0, #0x10 +_0200370C: + ldrh r1, [r2, #0x2] + ldr r0, _02003728 ; =0xFFFFF83F + and r1, r0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1b + lsr r0, r0, #0x15 + orr r0, r1 + strh r0, [r2, #0x2] +_0200371E: + pop {r4-r5} + bx lr + nop +_02003724: .word 0xFFFF0003 +_02003728: .word 0xFFFFF83F + + thumb_func_start sub_0200372C +sub_0200372C: ; 0x0200372C + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, _020038DC ; =0x0000011A + ldrh r1, [r6, r0] + lsl r1, r1, #0x10 + lsr r1, r1, #0x1f + bne _02003748 + sub r0, r0, #0x2 + ldrh r0, [r6, r0] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1e + cmp r0, #0x1 + beq _02003748 + b _020038DA +_02003748: + mov r7, #0x2 + mov r5, #0x0 + add r4, r6, #0x0 + lsl r7, r7, #0xc +_02003750: + ldr r0, _020038DC ; =0x0000011A + ldrh r1, [r6, r0] + lsl r0, r1, #0x10 + lsr r0, r0, #0x1f + bne _02003770 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _0200377C + lsl r0, r1, #0x12 + lsl r1, r5, #0x10 + lsr r0, r0, #0x12 + lsr r1, r1, #0x10 + bl sub_02003314 + cmp r0, #0x0 + beq _0200377C +_02003770: + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x8] + blx sub_020CC15C + cmp r5, #0xd + bls _0200377E +_0200377C: + b _020038A4 +_0200377E: + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r3, #0 + lsl r6, r4, #0 + lsl r2, r6, #0 + lsl r6, r7, #0 + lsl r2, r1, #0x1 + lsl r6, r3, #0x1 + lsl r2, r6, #0x1 + lsl r0, r1, #0x2 + lsl r6, r3, #0x2 + lsl r2, r6, #0x2 + lsl r6, r0, #0x3 + lsl r4, r3, #0x3 + lsl r2, r6, #0x3 + lsl r6, r0, #0x4 + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + mov r1, #0x0 + blx sub_020C9550 + b _020038A4 +_020037B2: + .byte 0x60, 0x68, 0xA2, 0x68, 0x00, 0x21, 0xC5, 0xF0, 0x96, 0xEE, 0x72, 0xE0, 0x60, 0x68 + .byte 0xA2, 0x68, 0x00, 0x21, 0xC5, 0xF0, 0x5C, 0xEE, 0x6C, 0xE0, 0x60, 0x68, 0xA2, 0x68, 0x00, 0x21 + .byte 0xC5, 0xF0, 0x22, 0xEE, 0x66, 0xE0, 0xC5, 0xF0, 0x9C, 0xE9, 0x60, 0x68, 0xA2, 0x68, 0x00, 0x21 + .byte 0xC5, 0xF0, 0x56, 0xE9, 0xC5, 0xF0, 0x22, 0xE9, 0x5C, 0xE0, 0xC5, 0xF0, 0x92, 0xE9, 0x60, 0x68 + .byte 0xA2, 0x68, 0x39, 0x1C, 0xC5, 0xF0, 0x4C, 0xE9, 0xC5, 0xF0, 0x18, 0xE9, 0x52, 0xE0, 0xC5, 0xF0 + .byte 0x88, 0xE9, 0x01, 0x21, 0x60, 0x68, 0xA2, 0x68, 0x89, 0x03, 0xC5, 0xF0, 0x42, 0xE9, 0xC5, 0xF0 + .byte 0x0E, 0xE9, 0x47, 0xE0, 0xC5, 0xF0, 0x7C, 0xE9, 0x06, 0x21, 0x60, 0x68, 0xA2, 0x68, 0x09, 0x03 + .byte 0xC5, 0xF0, 0x36, 0xE9, 0xC5, 0xF0, 0x02, 0xE9, 0x3C, 0xE0, 0xC5, 0xF0, 0x50, 0xE8, 0x60, 0x68 + .byte 0xA2, 0x68, 0x00, 0x21, 0xC5, 0xF0, 0x10, 0xE8, 0xC4, 0xF0, 0xE8, 0xEF, 0x32, 0xE0, 0xC5, 0xF0 + .byte 0x46, 0xE8, 0x60, 0x68, 0xA2, 0x68, 0x39, 0x1C, 0xC5, 0xF0, 0x06, 0xE8, 0xC4, 0xF0, 0xDE, 0xEF + .byte 0x28, 0xE0, 0xC5, 0xF0, 0x3C, 0xE8, 0x01, 0x21, 0x60, 0x68, 0xA2, 0x68, 0x89, 0x03, 0xC4, 0xF0 + .byte 0xFC, 0xEF, 0xC4, 0xF0, 0xD4, 0xEF, 0x1D, 0xE0, 0xC5, 0xF0, 0x30, 0xE8, 0x06, 0x21, 0x60, 0x68 + .byte 0xA2, 0x68, 0x09, 0x03, 0xC4, 0xF0, 0xF0, 0xEF, 0xC4, 0xF0, 0xC8, 0xEF, 0x12, 0xE0, 0xC5, 0xF0 + .byte 0x9E, 0xE8, 0x60, 0x68, 0xA2, 0x68, 0x00, 0x21, 0xC5, 0xF0, 0x5E, 0xE8, 0xC5, 0xF0, 0x30, 0xE8 + .byte 0x08, 0xE0, 0xC4, 0xF0, 0xAA, 0xEF, 0x60, 0x68, 0xA2, 0x68, 0x00, 0x21, 0xC4, 0xF0, 0x6A, 0xEF + .byte 0xC4, 0xF0, 0x42, 0xEF +_020038A4: + add r5, r5, #0x1 + add r4, #0x14 + cmp r5, #0xe + bge _020038AE + b _02003750 +_020038AE: + ldr r3, _020038DC ; =0x0000011A + ldr r1, _020038E0 ; =0xFFFFC000 + sub r2, r3, #0x2 + ldrh r2, [r6, r2] + ldrh r0, [r6, r3] + lsl r2, r2, #0x10 + and r0, r1 + lsr r2, r2, #0x12 + lsr r1, r1, #0x12 + and r1, r2 + orr r0, r1 + strh r0, [r6, r3] + ldrh r0, [r6, r3] + lsl r0, r0, #0x12 + lsr r0, r0, #0x12 + bne _020038DA + sub r0, r3, #0x2 + ldrh r1, [r6, r0] + mov r0, #0x3 + bic r1, r0 + sub r0, r3, #0x2 + strh r1, [r6, r0] +_020038DA: + pop {r3-r7, pc} + .balign 4 +_020038DC: .word 0x0000011A +_020038E0: .word 0xFFFFC000 + + thumb_func_start sub_020038E4 +sub_020038E4: ; 0x020038E4 + mov r1, #0x46 + lsl r1, r1, #0x2 + ldrh r0, [r0, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x12 + bx lr + + thumb_func_start sub_020038F0 +sub_020038F0: ; 0x020038F0 + push {r3-r4} + ldr r3, _0200390C ; =0x0000011A + lsl r1, r1, #0x10 + ldrh r4, [r0, r3] + ldr r2, _02003910 ; =0xFFFF7FFF + lsr r1, r1, #0x10 + lsl r1, r1, #0x1f + and r2, r4 + lsr r1, r1, #0x10 + orr r1, r2 + strh r1, [r0, r3] + pop {r3-r4} + bx lr + nop +_0200390C: .word 0x0000011A +_02003910: .word 0xFFFF7FFF + + thumb_func_start sub_02003914 +sub_02003914: ; 0x02003914 + push {r3-r7, lr} + sub sp, #0x8 + add r6, r0, #0x0 + str r3, [sp, #0x0] + mov r0, #0x14 + add r4, r1, #0x0 + mul r4, r0 + add r0, sp, #0x10 + ldrh r0, [r0, #0x14] + add r7, r2, #0x0 + ldr r5, [sp, #0x20] + str r0, [sp, #0x4] + lsl r1, r0, #0x1 + add r0, r6, r4 + ldr r0, [r0, #0x8] + cmp r1, r0 + bls _0200393A + bl sub_02020C2C +_0200393A: + sub r0, r7, #0x1 + cmp r0, #0x1 + bhi _02003952 + ldr r2, [r6, r4] + lsl r1, r5, #0x1 + add r1, r2, r1 + ldr r2, [sp, #0x4] + ldr r0, [sp, #0x0] + sub r2, r2, r5 + lsl r2, r2, #0x1 + blx sub_020CE1C8 +_02003952: + cmp r7, #0x0 + beq _0200395A + cmp r7, #0x2 + bne _0200396E +_0200395A: + add r1, r6, r4 + ldr r2, [r1, #0x4] + lsl r1, r5, #0x1 + add r1, r2, r1 + ldr r2, [sp, #0x4] + ldr r0, [sp, #0x0] + sub r2, r2, r5 + lsl r2, r2, #0x1 + blx sub_020CE1C8 +_0200396E: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02003974 +sub_02003974: ; 0x02003974 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x10 + ldrh r0, [r0, #0x10] + str r1, [sp, #0x4] + add r7, r2, #0x0 + lsl r1, r0, #0x1b + lsr r1, r1, #0x1b + mov r12, r1 + lsl r1, r0, #0x16 + lsl r0, r0, #0x11 + lsr r1, r1, #0x1b + lsr r0, r0, #0x1b + mov r2, #0x0 + mov lr, r1 + str r0, [sp, #0x8] + cmp r7, #0x0 + bls _020039E2 +_0200399A: + ldr r0, [sp, #0x0] + lsl r6, r2, #0x1 + ldrh r4, [r0, r6] + lsl r0, r4, #0x1b + lsr r1, r0, #0x1b + lsl r0, r4, #0x16 + lsl r4, r4, #0x11 + lsr r5, r4, #0x1b + ldr r4, [sp, #0x8] + lsr r0, r0, #0x1b + sub r4, r4, r5 + mul r4, r3 + asr r4, r4, #0x4 + add r4, r5, r4 + lsl r5, r4, #0xa + mov r4, r12 + sub r4, r4, r1 + mul r4, r3 + asr r4, r4, #0x4 + add r1, r1, r4 + mov r4, lr + sub r4, r4, r0 + mul r4, r3 + asr r4, r4, #0x4 + add r0, r0, r4 + lsl r0, r0, #0x5 + orr r0, r1 + add r1, r5, #0x0 + orr r1, r0 + ldr r0, [sp, #0x4] + strh r1, [r0, r6] + add r0, r2, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + cmp r2, r7 + blo _0200399A +_020039E2: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_020039E8 +sub_020039E8: ; 0x020039E8 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r2, #0x0 + add r5, r0, #0x0 + mov r2, #0x14 + add r6, r1, #0x0 + mul r6, r2 + str r3, [sp, #0x4] + ldr r1, [r5, r6] + mov r0, #0x0 + add r4, r5, r6 + cmp r1, #0x0 + beq _02003A0A + ldr r1, [r4, #0x4] + cmp r1, #0x0 + beq _02003A0A + mov r0, #0x1 +_02003A0A: + cmp r0, #0x0 + bne _02003A12 + bl sub_02020C2C +_02003A12: + add r3, sp, #0x10 + ldrh r0, [r3, #0x14] + add r2, r5, r6 + lsl r1, r7, #0x1 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r2, [r2, #0x4] + add r0, r0, r1 + add r1, r2, r1 + ldrb r3, [r3, #0x10] + ldr r2, [sp, #0x4] + bl sub_02003974 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02003A30 +sub_02003A30: ; 0x02003A30 + push {r3-r7, lr} + sub sp, #0x8 + str r3, [sp, #0x4] + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + ldr r7, [sp, #0x20] + beq _02003A60 +_02003A40: + mov r0, #0x1 + tst r0, r4 + beq _02003A54 + str r7, [sp, #0x0] + ldr r3, [sp, #0x4] + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r2, #0x10 + bl sub_02003974 +_02003A54: + lsl r0, r4, #0xf + lsr r4, r0, #0x10 + add r6, #0x20 + add r5, #0x20 + cmp r4, #0x0 + bne _02003A40 +_02003A60: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02003A64 +sub_02003A64: ; 0x02003A64 + push {r4-r7, lr} + sub sp, #0xc + str r3, [sp, #0x8] + add r6, r0, #0x0 + add r7, r1, #0x0 + ldr r0, [sp, #0x20] + add r5, r2, #0x0 + mov r1, #0x14 + add r2, r7, #0x0 + str r0, [sp, #0x20] + mul r2, r1 + mov r4, #0x0 + ldr r1, [r6, r2] + add r0, r4, #0x0 + cmp r1, #0x0 + beq _02003A8E + add r1, r6, r2 + ldr r1, [r1, #0x4] + cmp r1, #0x0 + beq _02003A8E + mov r0, #0x1 +_02003A8E: + cmp r0, #0x0 + bne _02003A96 + bl sub_02020C2C +_02003A96: + cmp r5, #0x0 + beq _02003AC0 +_02003A9A: + mov r0, #0x1 + tst r0, r5 + beq _02003AB6 + ldr r0, [sp, #0x8] + lsl r2, r4, #0x10 + str r0, [sp, #0x0] + ldr r0, [sp, #0x20] + add r1, r7, #0x0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + lsr r2, r2, #0x10 + mov r3, #0x10 + bl sub_020039E8 +_02003AB6: + lsl r0, r5, #0xf + lsr r5, r0, #0x10 + add r4, #0x10 + cmp r5, #0x0 + bne _02003A9A +_02003AC0: + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02003AC4 +sub_02003AC4: ; 0x02003AC4 + push {r3-r7, lr} + mov lr, r1 + mov r12, r2 + add r7, r3, #0x0 + mov r4, #0x0 + cmp r1, #0x0 + ble _02003B3C + ldr r6, [sp, #0x18] +_02003AD4: + ldrh r3, [r0, #0x0] + mov r1, #0x1f + add r2, r3, #0x0 + asr r5, r3, #0xa + and r2, r1 + and r5, r1 + mov r1, #0x1d + mul r1, r5 + mov r5, #0x4c + mul r5, r2 + asr r3, r3, #0x5 + mov r2, #0x1f + and r3, r2 + mov r2, #0x97 + mul r2, r3 + add r2, r5, r2 + add r1, r1, r2 + asr r3, r1, #0x8 + mov r1, r12 + add r2, r1, #0x0 + mul r2, r3 + lsl r1, r2, #0x10 + lsr r1, r1, #0x10 + asr r2, r1, #0x8 + add r1, r7, #0x0 + mul r1, r3 + mul r3, r6 + lsl r1, r1, #0x10 + lsl r3, r3, #0x10 + lsr r1, r1, #0x10 + lsr r3, r3, #0x10 + asr r1, r1, #0x8 + asr r3, r3, #0x8 + cmp r2, #0x1f + ble _02003B1C + mov r2, #0x1f +_02003B1C: + cmp r1, #0x1f + ble _02003B22 + mov r1, #0x1f +_02003B22: + cmp r3, #0x1f + ble _02003B28 + mov r3, #0x1f +_02003B28: + lsl r3, r3, #0xa + lsl r1, r1, #0x5 + orr r1, r3 + orr r1, r2 + strh r1, [r0, #0x0] + add r4, r4, #0x1 + mov r1, lr + add r0, r0, #0x2 + cmp r4, r1 + blt _02003AD4 +_02003B3C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02003B40 +sub_02003B40: ; 0x02003B40 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + add r2, sp, #0x4 + bl sub_02006C08 + add r4, r0, #0x0 + bne _02003B58 + bl sub_02020C2C +_02003B58: + ldr r0, [sp, #0x1c] + cmp r0, #0x0 + bne _02003B64 + ldr r0, [sp, #0x4] + ldr r0, [r0, #0x8] + str r0, [sp, #0x1c] +_02003B64: + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0x24] + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + ldr r3, [sp, #0x28] + ldr r0, [r0, #0xc] + mov r1, #0x10 + bl sub_02003AC4 + ldr r0, [sp, #0x1c] + add r3, sp, #0x8 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldrh r3, [r3, #0x18] + ldr r1, [r1, #0xc] + ldr r2, [sp, #0x18] + add r0, r5, #0x0 + bl sub_02003054 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x8 + pop {r3-r5, pc} + + thumb_func_start sub_02003B98 +sub_02003B98: ; 0x02003B98 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl sub_02003D30 + add r4, r0, #0x0 + blx sub_020C01D0 + bl sub_020040C8 + add r0, r4, #0x0 + bl sub_02004064 + add r0, r4, #0x0 + ldr r1, _02003C00 ; =0x000BBC00 + add r0, #0x94 + blx sub_020C2A94 + add r1, r4, #0x0 + add r1, #0x90 + str r0, [r1, #0x0] + add r2, r4, #0x0 + add r2, #0x90 + ldr r1, _02003C04 ; =0x02104780 + ldr r2, [r2, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + blx sub_020C26F8 + add r0, r4, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + blx sub_020C39CC + add r0, r4, #0x0 + bl sub_02004088 + add r0, r4, #0x0 + bl sub_020040A4 + ldr r0, _02003C08 ; =0x02107070 + mov r1, #0x0 + str r1, [r0, #0x4] + ldr r0, _02003C0C ; =0x000BCD4C + str r5, [r4, r0] + ldrh r0, [r6, #0x0] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1e + bl sub_02004D60 + pop {r4-r6, pc} + nop +_02003C00: .word 0x000BBC00 +_02003C04: .word 0x02104780 +_02003C08: .word 0x02107070 +_02003C0C: .word 0x000BCD4C + + thumb_func_start sub_02003C10 +sub_02003C10: ; 0x02003C10 + push {r4, lr} + bl sub_02003D30 + add r4, r0, #0x0 + bl sub_02003D04 + cmp r0, #0x0 + bne _02003C30 + ldr r0, _02003C3C ; =0x000BCD00 + ldr r1, [r4, r0] + cmp r1, #0x0 + ble _02003C2C + sub r1, r1, #0x1 + str r1, [r4, r0] +_02003C2C: + bl sub_02003C40 +_02003C30: + bl sub_02005CFC + blx sub_020C01A0 + pop {r4, pc} + nop +_02003C3C: .word 0x000BCD00 + + thumb_func_start sub_02003C40 +sub_02003C40: ; 0x02003C40 + push {r4, lr} + bl sub_02003D30 + add r4, r0, #0x0 + ldr r0, _02003CDC ; =0x02107070 + ldr r0, [r0, #0x0] + cmp r0, #0x6 + bhi _02003CD8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r7, #0x1 + lsl r4, r1, #0 + lsl r2, r7, #0x1 + lsl r4, r2, #0 + lsl r4, r4, #0 + lsl r4, r6, #0 + lsl r2, r2, #0x1 + mov r0, #0x2 + bl sub_02003CE8 + pop {r4, pc} +_02003C72: + .byte 0x01, 0xF0, 0xC7, 0xFB, 0x00, 0x28, 0x2E, 0xD1, 0x02, 0x20, 0x00, 0xF0, 0x34, 0xF8 + .byte 0x10, 0xBD, 0x01, 0xF0, 0xBF, 0xFB, 0x00, 0x28, 0x26, 0xD1, 0x02, 0x20, 0x00, 0xF0, 0x2C, 0xF8 + .byte 0x10, 0xBD, 0x01, 0xF0, 0xB7, 0xFB, 0x00, 0x28, 0x1E, 0xD1, 0x01, 0xF0, 0x7B, 0xF8, 0x00, 0x28 + .byte 0x1A, 0xD1, 0x00, 0xF0, 0x1B, 0xFA, 0x0E, 0x48, 0x20, 0x5A, 0x01, 0xF0, 0xB7, 0xFA, 0x10, 0xBD + .byte 0x01, 0xF0, 0xA8, 0xFB, 0x00, 0x28, 0x0F, 0xD1, 0x01, 0xF0, 0x6C, 0xF8, 0x00, 0x28, 0x0B, 0xD1 + .byte 0x00, 0xF0, 0x0C, 0xFA, 0x06, 0x48, 0x20, 0x5A, 0x01, 0xF0, 0xA8, 0xFA, 0x05, 0x49, 0x7F, 0x20 + .byte 0x61, 0x58, 0x00, 0x22, 0x01, 0xF0, 0x5A, 0xFB +_02003CD8: + pop {r4, pc} + nop +_02003CDC: .word 0x02107070 +_02003CE0: + .byte 0x0E, 0xCD, 0x0B, 0x00, 0x08, 0xCD, 0x0B, 0x00 + + thumb_func_start sub_02003CE8 +sub_02003CE8: ; 0x02003CE8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02003D30 + ldr r1, _02003CFC ; =0x000BCCFC + mov r2, #0x0 + strh r2, [r0, r1] + ldr r0, _02003D00 ; =0x02107070 + str r4, [r0, #0x0] + pop {r4, pc} + .balign 4 +_02003CFC: .word 0x000BCCFC +_02003D00: .word 0x02107070 + + thumb_func_start sub_02003D04 +sub_02003D04: ; 0x02003D04 + push {r4, lr} + bl sub_02003D30 + add r4, r0, #0x0 + mov r0, #0x2 + bl sub_020048BC + cmp r0, #0x0 + beq _02003D1A + mov r0, #0x1 + pop {r4, pc} +_02003D1A: + ldr r0, _02003D2C ; =0x000BCD12 + ldrh r0, [r4, r0] + cmp r0, #0x0 + beq _02003D26 + mov r0, #0x1 + pop {r4, pc} +_02003D26: + mov r0, #0x0 + pop {r4, pc} + nop +_02003D2C: .word 0x000BCD12 + + thumb_func_start sub_02003D30 +sub_02003D30: ; 0x02003D30 + ldr r0, _02003D34 ; =0x02107078 + bx lr + .balign 4 +_02003D34: .word 0x02107078 + + thumb_func_start sub_02003D38 +sub_02003D38: ; 0x02003D38 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02003D30 + cmp r4, #0x27 + bls _02003D46 + b _02003E92 +_02003D46: + add r1, r4, r4 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r2, #0x1 + lsl r2, r3, #0x1 + lsl r0, r4, #0x1 + lsl r6, r4, #0x1 + lsl r4, r5, #0x1 + lsl r6, r1, #0x1 + lsl r2, r6, #0x1 + lsl r0, r7, #0x1 + lsl r6, r7, #0x1 + lsl r4, r0, #0x2 + lsl r2, r1, #0x2 + lsl r0, r2, #0x2 + lsl r6, r2, #0x2 + lsl r4, r3, #0x2 + lsl r2, r4, #0x2 + lsl r0, r5, #0x2 + lsl r6, r5, #0x2 + lsl r4, r6, #0x2 + lsl r2, r7, #0x2 + lsl r0, r0, #0x3 + lsl r6, r0, #0x3 + lsl r4, r1, #0x3 + lsl r2, r2, #0x3 + lsl r0, r3, #0x3 + lsl r6, r3, #0x3 + lsl r4, r4, #0x3 + lsl r2, r5, #0x3 + lsl r0, r6, #0x3 + lsl r6, r6, #0x3 + lsl r4, r7, #0x3 + lsl r2, r0, #0x4 + lsl r0, r1, #0x4 + lsl r6, r1, #0x4 + lsl r4, r2, #0x4 + lsl r2, r3, #0x4 + lsl r0, r4, #0x4 + lsl r6, r4, #0x4 + lsl r4, r5, #0x4 + lsl r2, r6, #0x4 + lsl r0, r7, #0x4 + ldr r1, _02003E9C ; =0x000BCCFE + add r0, r0, r1 + pop {r4, pc} +_02003DA8: + .byte 0x3D, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x3D, 0x49 + .byte 0x40, 0x18, 0x10, 0xBD, 0x3C, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x3C, 0x49, 0x40, 0x18, 0x10, 0xBD + .byte 0x3B, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x3B, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x3A, 0x49, 0x40, 0x18 + .byte 0x10, 0xBD, 0x3A, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x39, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x39, 0x49 + .byte 0x40, 0x18, 0x10, 0xBD, 0x38, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x38, 0x49, 0x40, 0x18, 0x10, 0xBD + .byte 0x37, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x37, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x36, 0x49, 0x40, 0x18 + .byte 0x10, 0xBD, 0x36, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x35, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x35, 0x49 + .byte 0x40, 0x18, 0x10, 0xBD, 0x34, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x34, 0x49, 0x40, 0x18, 0x10, 0xBD + .byte 0x33, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x33, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x32, 0x49, 0x40, 0x18 + .byte 0x10, 0xBD, 0x32, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x31, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x31, 0x49 + .byte 0x40, 0x18, 0x10, 0xBD, 0x30, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x30, 0x49, 0x40, 0x18, 0x10, 0xBD + .byte 0x2F, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x2F, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x2E, 0x49, 0x40, 0x18 + .byte 0x10, 0xBD, 0x2E, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x2D, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x2D, 0x49 + .byte 0x40, 0x18, 0x10, 0xBD, 0x2C, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x2C, 0x49, 0x40, 0x18, 0x10, 0xBD + .byte 0x2B, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x2B, 0x49, 0x40, 0x18, 0x10, 0xBD, 0x2A, 0x49, 0x40, 0x18 + .byte 0x10, 0xBD +_02003E92: + bl sub_02020C2C + mov r0, #0x0 + pop {r4, pc} + nop +_02003E9C: .word 0x000BCCFE +_02003EA0: + .byte 0xB8, 0xBC, 0x0B, 0x00, 0xBC, 0xBC, 0x0B, 0x00, 0xC0, 0xBC, 0x0B, 0x00, 0xE0, 0xBC, 0x0B, 0x00 + .byte 0xE0, 0xCC, 0x0B, 0x00, 0x00, 0xCD, 0x0B, 0x00, 0x04, 0xCD, 0x0B, 0x00, 0x08, 0xCD, 0x0B, 0x00 + .byte 0x0C, 0xCD, 0x0B, 0x00, 0x0E, 0xCD, 0x0B, 0x00, 0x10, 0xCD, 0x0B, 0x00, 0x11, 0xCD, 0x0B, 0x00 + .byte 0x12, 0xCD, 0x0B, 0x00, 0x14, 0xCD, 0x0B, 0x00, 0x15, 0xCD, 0x0B, 0x00, 0x16, 0xCD, 0x0B, 0x00 + .byte 0x17, 0xCD, 0x0B, 0x00, 0x18, 0xCD, 0x0B, 0x00, 0x19, 0xCD, 0x0B, 0x00, 0x1A, 0xCD, 0x0B, 0x00 + .byte 0x1B, 0xCD, 0x0B, 0x00, 0x1C, 0xCD, 0x0B, 0x00, 0x20, 0xCD, 0x0B, 0x00, 0x24, 0xCD, 0x0B, 0x00 + .byte 0x28, 0xCD, 0x0B, 0x00, 0x2C, 0xCD, 0x0B, 0x00, 0x30, 0xCD, 0x0B, 0x00, 0x34, 0xCD, 0x0B, 0x00 + .byte 0x38, 0xCD, 0x0B, 0x00, 0x39, 0xCD, 0x0B, 0x00, 0x3A, 0xCD, 0x0B, 0x00, 0x3C, 0xCD, 0x0B, 0x00 + .byte 0x40, 0xCD, 0x0B, 0x00, 0x48, 0xCD, 0x0B, 0x00, 0x4C, 0xCD, 0x0B, 0x00, 0x50, 0xCD, 0x0B, 0x00 + .byte 0x54, 0xCD, 0x0B, 0x00, 0x58, 0xCD, 0x0B, 0x00, 0x5C, 0xCD, 0x0B, 0x00 + + thumb_func_start sub_02003F3C +sub_02003F3C: ; 0x02003F3C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02003D30 + add r0, #0x90 + ldr r0, [r0, #0x0] + blx sub_020C290C + add r4, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _02003F5A + bl sub_02020C2C +_02003F5A: + cmp r5, #0x0 + beq _02003F60 + str r4, [r5, #0x0] +_02003F60: + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02003F64 +sub_02003F64: ; 0x02003F64 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02003D30 + add r0, #0x90 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + blx sub_020C2828 + pop {r4, pc} + + thumb_func_start sub_02003F78 +sub_02003F78: ; 0x02003F78 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02003D30 + add r1, r0, #0x0 + add r1, #0x90 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + blx sub_020C36A8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02003F90 +sub_02003F90: ; 0x02003F90 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02003D30 + add r1, r0, #0x0 + add r1, #0x90 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + blx sub_020C3674 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02003FA8 +sub_02003FA8: ; 0x02003FA8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02003D30 + add r2, r0, #0x0 + add r2, #0x90 + ldr r2, [r2, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_020C35E0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02003FC4 +sub_02003FC4: ; 0x02003FC4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02003D30 + add r1, r0, #0x0 + add r1, #0x90 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + blx sub_020C360C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02003FDC +sub_02003FDC: ; 0x02003FDC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02003D30 + add r1, r0, #0x0 + add r1, #0x90 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + blx sub_020C3640 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02003FF4 +sub_02003FF4: ; 0x02003FF4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02003D30 + add r4, r0, #0x0 + cmp r5, #0x9 + blt _02004008 + bl sub_02020C2C + mov r5, #0x0 +_02004008: + ldr r0, _02004014 ; =0x000BBC94 + add r1, r4, r0 + lsl r0, r5, #0x2 + add r0, r1, r0 + pop {r3-r5, pc} + nop +_02004014: .word 0x000BBC94 + + thumb_func_start sub_02004018 +sub_02004018: ; 0x02004018 + push {r3, lr} + cmp r0, #0x7 + bhi _0200405A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r2, #0 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r2, r3, #0 + lsl r6, r3, #0 + lsl r2, r4, #0 + lsl r6, r4, #0 + lsl r2, r5, #0 + mov r0, #0x0 + pop {r3, pc} +_0200403E: + .byte 0x01, 0x20 + .byte 0x08, 0xBD, 0x02, 0x20, 0x08, 0xBD, 0x03, 0x20, 0x08, 0xBD, 0x04, 0x20, 0x08, 0xBD, 0x05, 0x20 + .byte 0x08, 0xBD, 0x06, 0x20, 0x08, 0xBD, 0x07, 0x20, 0x08, 0xBD +_0200405A: + bl sub_02020C2C + mov r0, #0x3 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02004064 +sub_02004064: ; 0x02004064 + push {r4, lr} + ldr r2, _02004080 ; =0x000BCD60 + mov r1, #0x0 + add r4, r0, #0x0 + blx sub_020DF4A4 + ldr r0, _02004084 ; =0x000BCD1C + mov r1, #0x0 +_02004074: + add r1, r1, #0x1 + str r1, [r4, r0] + add r4, r4, #0x4 + cmp r1, #0x7 + blt _02004074 + pop {r4, pc} + .balign 4 +_02004080: .word 0x000BCD60 +_02004084: .word 0x000BCD1C + + thumb_func_start sub_02004088 +sub_02004088: ; 0x02004088 + push {r3-r5, lr} + ldr r1, _020040A0 ; =0x000BBC94 + mov r4, #0x0 + add r5, r0, r1 +_02004090: + add r0, r5, #0x0 + blx sub_020C0F80 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x9 + blt _02004090 + pop {r3-r5, pc} + .balign 4 +_020040A0: .word 0x000BBC94 + + thumb_func_start sub_020040A4 +sub_020040A4: ; 0x020040A4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020040C0 ; =0x000BCD1C + add r0, r4, r0 + bl sub_02003F3C + mov r0, #0x0 + bl sub_02003F78 + ldr r0, _020040C4 ; =0x000BCD20 + add r0, r4, r0 + bl sub_02003F3C + pop {r4, pc} + .balign 4 +_020040C0: .word 0x000BCD1C +_020040C4: .word 0x000BCD20 + + thumb_func_start sub_020040C8 +sub_020040C8: ; 0x020040C8 + push {r3, lr} + blx sub_020D4A5C + mov r0, #0x1 + blx sub_020D5168 + mov r0, #0x2 + blx sub_020D5150 + pop {r3, pc} + + thumb_func_start sub_020040DC +sub_020040DC: ; 0x020040DC + push {r3, lr} + mov r0, #0x7 + mov r1, #0x0 + blx sub_020C1040 + mov r0, #0x7 + bl sub_02003FF4 + blx sub_020C0F68 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020040F4 +sub_020040F4: ; 0x020040F4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x5 + bl sub_02003D38 + strb r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02004104 +sub_02004104: ; 0x02004104 + push {r3, lr} + mov r0, #0x5 + bl sub_02003D38 + ldrb r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02004110 +sub_02004110: ; 0x02004110 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x9 + bl sub_02003D38 + strh r4, [r0, #0x0] + mov r0, #0x0 + bl sub_02004130 + pop {r4, pc} + + thumb_func_start sub_02004124 +sub_02004124: ; 0x02004124 + push {r3, lr} + mov r0, #0x9 + bl sub_02003D38 + ldrh r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02004130 +sub_02004130: ; 0x02004130 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0xa + bl sub_02003D38 + strh r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02004140 +sub_02004140: ; 0x02004140 + push {r3, lr} + mov r0, #0xa + bl sub_02003D38 + ldrh r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_0200414C +sub_0200414C: ; 0x0200414C + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1f + bl sub_02003D38 + strh r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200415C +sub_0200415C: ; 0x0200415C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x14 + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0x15 + bl sub_02003D38 + cmp r5, #0x33 + bhs _0200417A + strb r5, [r4, #0x0] + mov r1, #0x0 + strb r1, [r0, #0x0] + pop {r3-r5, pc} +_0200417A: + strb r5, [r0, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02004180 +sub_02004180: ; 0x02004180 + push {r3, lr} + cmp r0, #0x39 + bgt _020041DE + blt _0200418A + b _020042C8 +_0200418A: + cmp r0, #0x35 + bgt _020041CC + blt _02004192 + b _0200429A +_02004192: + cmp r0, #0x33 + bgt _020041C6 + bge _0200427C + cmp r0, #0xe + bhi _020041CA + add r2, r0, r0 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r2, r0, #0x6 + lsl r0, r7, #0x1 + lsl r2, r0, #0x2 + lsl r4, r1, #0x2 + lsl r6, r2, #0x2 + lsl r0, r4, #0x2 + lsl r4, r6, #0x2 + lsl r0, r6, #0x3 + lsl r6, r7, #0x2 + lsl r0, r7, #0x1 + lsl r0, r7, #0x1 + lsl r2, r5, #0x2 + lsl r0, r1, #0x3 + lsl r2, r0, #0x2 + lsl r0, r7, #0x1 +_020041C6: + cmp r0, #0x34 + beq _02004290 +_020041CA: + b _0200432C +_020041CC: + cmp r0, #0x37 + bgt _020041D8 + bge _020042AE + cmp r0, #0x36 + beq _020042A4 + b _0200432C +_020041D8: + cmp r0, #0x38 + beq _020042BE + b _0200432C +_020041DE: + cmp r0, #0x3d + bgt _020041F8 + blt _020041E6 + b _020042F0 +_020041E6: + cmp r0, #0x3b + bgt _020041F2 + bge _020042DC + cmp r0, #0x3a + beq _020042D2 + b _0200432C +_020041F2: + cmp r0, #0x3c + beq _020042E6 + b _0200432C +_020041F8: + cmp r0, #0x3f + bgt _02004206 + blt _02004200 + b _02004304 +_02004200: + cmp r0, #0x3e + beq _020042FA + b _0200432C +_02004206: + sub r0, #0x40 + cmp r0, #0x3 + bls _0200420E + b _0200432C +_0200420E: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r6, #0x3 + lsl r2, r0, #0x4 + lsl r2, r5, #0x1 + lsl r2, r2, #0x2 + mov r0, #0x1 + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_0200422C: + .byte 0x02, 0x20, 0xFF, 0xF7 + .byte 0xA3, 0xFE, 0x01, 0x1C, 0x7A, 0xE0, 0x0D, 0x20, 0xFF, 0xF7, 0x9E, 0xFE, 0x01, 0x1C, 0x75, 0xE0 + .byte 0x01, 0x20, 0xFF, 0xF7, 0x99, 0xFE, 0x01, 0x1C, 0x70, 0xE0, 0x02, 0x20, 0xFF, 0xF7, 0x94, 0xFE + .byte 0x01, 0x1C, 0x6B, 0xE0, 0x01, 0x20, 0xFF, 0xF7, 0x8F, 0xFE, 0x01, 0x1C, 0x66, 0xE0, 0x0B, 0x20 + .byte 0xFF, 0xF7, 0x8A, 0xFE, 0x01, 0x1C, 0x61, 0xE0, 0x01, 0x20, 0xFF, 0xF7, 0x85, 0xFE, 0x01, 0x1C + .byte 0x5C, 0xE0, 0x0E, 0x20, 0xFF, 0xF7, 0x80, 0xFE, 0x01, 0x1C, 0x57, 0xE0 +_0200427C: + mov r0, #0x3 + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_02004286: + .byte 0x06, 0x20, 0xFF, 0xF7, 0x76, 0xFE, 0x01, 0x1C, 0x4D, 0xE0 +_02004290: + mov r0, #0x5 + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_0200429A: + mov r0, #0x9 + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042A4: + mov r0, #0xa + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042AE: + ldr r0, _02004330 ; =0x000005E5 + bl sub_02003FDC + ldr r0, _02004330 ; =0x000005E5 + bl sub_02003FC4 + add r1, r0, #0x0 + b _0200432C +_020042BE: + mov r0, #0xc + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042C8: + mov r0, #0x7 + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042D2: + mov r0, #0x8 + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042DC: + mov r0, #0xf + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042E6: + mov r0, #0x3 + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042F0: + mov r0, #0x5 + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042FA: + mov r0, #0xf + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_02004304: + mov r0, #0x4 + bl sub_02003F78 + add r1, r0, #0x0 + b _0200432C +_0200430E: + .byte 0x09, 0x48 + .byte 0xFF, 0xF7, 0x64, 0xFE, 0x07, 0x48, 0xFF, 0xF7, 0x55, 0xFE, 0x01, 0x1C, 0x06, 0xE0, 0x06, 0x48 + .byte 0xFF, 0xF7, 0x5C, 0xFE, 0x04, 0x48, 0xFF, 0xF7, 0x4D, 0xFE, 0x01, 0x1C +_0200432C: + add r0, r1, #0x0 + pop {r3, pc} + .balign 4 +_02004330: .word 0x000005E5 +_02004334: + .byte 0xED, 0x05, 0x00, 0x00, 0xEC, 0x05, 0x00, 0x00 + + thumb_func_start sub_0200433C +sub_0200433C: ; 0x0200433C + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + mov r0, #0x14 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_02003D38 + str r0, [sp, #0x0] + mov r0, #0x15 + bl sub_02003D38 + str r0, [sp, #0x4] + mov r0, #0xd + bl sub_02003D38 + add r7, r0, #0x0 + cmp r4, #0x33 + bhs _02004370 + ldr r0, [sp, #0x0] + ldrb r0, [r0, #0x0] + cmp r0, r4 + bne _0200437E + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_02004370: + ldr r0, [sp, #0x4] + ldrb r0, [r0, #0x0] + cmp r0, r4 + bne _0200437E + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0200437E: + add r0, r4, #0x0 + bl sub_0200415C + cmp r4, #0x39 + bgt _020043DC + bge _02004458 + cmp r4, #0x35 + bgt _020043CA + bge _02004458 + cmp r4, #0x33 + bgt _020043C4 + bge _02004458 + cmp r4, #0xe + bhi _020043C8 + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r7, #0x3 + lsl r0, r7, #0x2 + lsl r4, r3, #0x3 + lsl r6, r5, #0x3 + lsl r4, r6, #0x1 + lsl r0, r1, #0x2 + lsl r4, r3, #0x2 + lsl r6, r4, #0x2 + lsl r6, r5, #0x3 + lsl r6, r5, #0x3 + lsl r6, r5, #0x3 + lsl r2, r2, #0x2 + lsl r6, r5, #0x3 + lsl r6, r5, #0x3 + lsl r2, r1, #0x3 +_020043C4: + cmp r4, #0x34 + beq _02004458 +_020043C8: + b _020044A0 +_020043CA: + cmp r4, #0x37 + bgt _020043D6 + bge _02004458 + cmp r4, #0x36 + beq _02004458 + b _020044A0 +_020043D6: + cmp r4, #0x38 + beq _02004458 + b _020044A0 +_020043DC: + cmp r4, #0x3d + bgt _020043F4 + bge _02004458 + cmp r4, #0x3b + bgt _020043EE + bge _02004458 + cmp r4, #0x3a + beq _02004458 + b _020044A0 +_020043EE: + cmp r4, #0x3c + beq _02004458 + b _020044A0 +_020043F4: + cmp r4, #0x3f + bgt _02004400 + bge _02004458 + cmp r4, #0x3e + beq _02004458 + b _020044A0 +_02004400: + add r0, r4, #0x0 + sub r0, #0x40 + cmp r0, #0x3 + bhi _020044A0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r0, #0x1 + lsl r2, r0, #0x1 + lsl r2, r0, #0x1 + lsl r2, r0, #0x1 + mov r0, #0x0 + bl sub_0200516C + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020044D4 + mov r0, #0x0 + strh r0, [r7, #0x0] + b _020044A0 +_02004430: + .byte 0x28, 0x1C, 0x31, 0x1C, 0x00, 0xF0, 0x08, 0xF9, 0x32, 0xE0, 0x28, 0x1C, 0x31, 0x1C, 0x00, 0xF0 + .byte 0x1F, 0xF9, 0x2D, 0xE0, 0x28, 0x1C, 0x31, 0x1C, 0x00, 0xF0, 0x2A, 0xF9, 0x28, 0xE0, 0x28, 0x1C + .byte 0x31, 0x1C, 0x00, 0xF0, 0x37, 0xF9, 0x23, 0xE0 +_02004458: + add r0, r4, #0x0 + bl sub_020046E8 + b _020044A0 +_02004460: + .byte 0x01, 0x20, 0x00, 0xF0, 0x83, 0xFE, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C, 0x00, 0xF0, 0x4A, 0xF9 + .byte 0x16, 0xE0, 0x02, 0x20, 0x00, 0xF0, 0x7A, 0xFE, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C, 0x00, 0xF0 + .byte 0x41, 0xF9, 0x0D, 0xE0, 0x00, 0x20, 0x00, 0xF0, 0x71, 0xFE, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C + .byte 0x00, 0xF0, 0x38, 0xF9, 0x04, 0xE0, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C, 0x00, 0xF0, 0x32, 0xF9 +_020044A0: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020044A8 +sub_020044A8: ; 0x020044A8 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x17 + bl sub_02003D38 + ldr r0, [r0, #0x0] + bl sub_02003F64 + mov r0, #0x18 + bl sub_02003D38 + bl sub_02003F3C + add r0, r4, #0x0 + bl sub_02004180 + mov r0, #0x19 + bl sub_02003D38 + bl sub_02003F3C + pop {r4, pc} + + thumb_func_start sub_020044D4 +sub_020044D4: ; 0x020044D4 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0xb + bl sub_02003D38 + add r6, r0, #0x0 + mov r0, #0x17 + bl sub_02003D38 + mov r0, #0x1f + bl sub_02003D38 + mov r0, #0x0 + bl sub_02003FF4 + bl sub_020048EC + add r4, r0, #0x0 + ldrb r0, [r6, #0x0] + cmp r0, #0x0 + bne _0200450E + cmp r4, r5 + bne _0200450E + bl sub_02004140 + mov r1, #0x12 + lsl r1, r1, #0x6 + cmp r0, r1 + bne _02004566 +_0200450E: + mov r0, #0x1 + bl sub_02004DBC + bl sub_02005454 + cmp r4, r5 + beq _02004528 + mov r0, #0x1 + mov r1, #0x0 + bl sub_020047C8 + bl sub_0200541C +_02004528: + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _02004560 + mov r0, #0x2 + bl sub_02004748 + bl sub_02003F64 + mov r0, #0x4 + bl sub_02004180 + mov r0, #0x19 + bl sub_02003D38 + bl sub_02003F3C + cmp r4, r5 + beq _02004554 + mov r0, #0x1 + mov r1, #0x0 + bl sub_020047C8 +_02004554: + lsl r1, r4, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + bl sub_02004568 + pop {r4-r6, pc} +_02004560: + add r0, r5, #0x0 + bl sub_0200521C +_02004566: + pop {r4-r6, pc} + + thumb_func_start sub_02004568 +sub_02004568: ; 0x02004568 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x1f + bl sub_02003D38 + add r4, r0, #0x0 + ldrh r0, [r4, #0x0] + bl sub_02004900 + ldr r1, _020045C0 ; =0x000003E9 + cmp r0, r1 + beq _02004594 + add r1, r1, #0x2 + cmp r0, r1 + beq _02004594 + add r0, r5, #0x0 + mov r1, #0x4 + bl sub_02003FA8 + bl sub_02020C2C + b _0200459C +_02004594: + ldrh r0, [r4, #0x0] + mov r1, #0x6 + bl sub_02003FA8 +_0200459C: + mov r0, #0x1a + bl sub_02003D38 + bl sub_02003F3C + mov r0, #0x1 + mov r1, #0x0 + bl sub_020047C8 + mov r0, #0x7f + mov r1, #0x28 + mov r2, #0x0 + bl sub_0200538C + mov r0, #0x0 + bl sub_02004DBC + pop {r3-r5, pc} + .balign 4 +_020045C0: .word 0x000003E9 + + thumb_func_start sub_020045C4 +sub_020045C4: ; 0x020045C4 + push {r3-r7, lr} + add r7, r0, #0x0 + mov r0, #0x12 + add r5, r1, #0x0 + bl sub_02003D38 + add r6, r0, #0x0 + mov r0, #0x1f + bl sub_02003D38 + add r4, r0, #0x0 + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + beq _020045E4 + cmp r5, #0x0 + bne _02004642 +_020045E4: + mov r0, #0x1 + bl sub_02004748 + bl sub_02003F64 + ldrh r0, [r4, #0x0] + mov r1, #0x2 + bl sub_02003FA8 + mov r0, #0x18 + bl sub_02003D38 + bl sub_02003F3C + mov r0, #0x4 + bl sub_02004180 + mov r0, #0x19 + bl sub_02003D38 + bl sub_02003F3C + ldrh r0, [r4, #0x0] + bl sub_02004900 + ldr r1, _02004644 ; =0x000003E9 + cmp r0, r1 + beq _02004630 + add r1, r1, #0x2 + cmp r0, r1 + beq _02004630 + add r0, r7, #0x0 + mov r1, #0x4 + bl sub_02003FA8 + bl sub_02020C2C + b _02004638 +_02004630: + ldrh r0, [r4, #0x0] + mov r1, #0x4 + bl sub_02003FA8 +_02004638: + mov r0, #0x1a + bl sub_02003D38 + bl sub_02003F3C +_02004642: + pop {r3-r7, pc} + .balign 4 +_02004644: .word 0x000003E9 + + thumb_func_start sub_02004648 +sub_02004648: ; 0x02004648 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x17 + bl sub_02003D38 + bl sub_020051AC + mov r0, #0x2 + bl sub_02004748 + bl sub_02003F64 + mov r0, #0x5 + bl sub_02004180 + mov r0, #0x19 + bl sub_02003D38 + bl sub_02003F3C + mov r0, #0x1 + bl sub_02004DBC + add r0, r4, #0x0 + bl sub_0200521C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02004680 +sub_02004680: ; 0x02004680 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x17 + bl sub_02003D38 + bl sub_0200541C + bl sub_02004810 + mov r0, #0x4 + bl sub_020044A8 + add r0, r4, #0x0 + bl sub_0200521C + pop {r4, pc} + + thumb_func_start sub_020046A0 +sub_020046A0: ; 0x020046A0 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x17 + bl sub_02003D38 + bl sub_0200541C + mov r0, #0x6 + bl sub_020044A8 + mov r0, #0x1 + bl sub_02004DBC + add r0, r4, #0x0 + bl sub_0200521C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020046C4 +sub_020046C4: ; 0x020046C4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x17 + bl sub_02003D38 + bl sub_0200541C + mov r0, #0x7 + bl sub_020044A8 + mov r0, #0x1 + bl sub_02004DBC + add r0, r4, #0x0 + bl sub_0200521C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020046E8 +sub_020046E8: ; 0x020046E8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02004738 + add r0, r4, #0x0 + bl sub_02004180 + mov r0, #0x1b + bl sub_02003D38 + bl sub_02003F3C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02004704 +sub_02004704: ; 0x02004704 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x17 + add r4, r1, #0x0 + bl sub_02003D38 + bl sub_0200541C + add r0, r5, #0x0 + bl sub_020044A8 + add r0, r4, #0x0 + bl sub_0200521C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02004724 +sub_02004724: ; 0x02004724 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02003D30 + bl sub_020051AC + add r0, r4, #0x0 + bl sub_0200521C + pop {r4, pc} + + thumb_func_start sub_02004738 +sub_02004738: ; 0x02004738 + push {r3, lr} + mov r0, #0x4 + bl sub_02004748 + bl sub_02003F64 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02004748 +sub_02004748: ; 0x02004748 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02003D30 + cmp r4, #0x7 + blt _02004762 + bl sub_02020C2C + mov r0, #0x1a + bl sub_02003D38 + ldr r0, [r0, #0x0] + pop {r3-r5, pc} +_02004762: + cmp r4, #0x6 + bhi _020047C4 + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r6, r2, #0 + lsl r0, r4, #0 + lsl r2, r5, #0 + lsl r4, r6, #0 + lsl r6, r7, #0 + lsl r0, r1, #0x1 + mov r0, #0x16 + bl sub_02003D38 + add r5, r0, #0x0 + b _020047C4 +_0200478A: + .byte 0x17, 0x20, 0xFF, 0xF7, 0xD4, 0xFA + .byte 0x05, 0x1C, 0x17, 0xE0, 0x18, 0x20, 0xFF, 0xF7, 0xCF, 0xFA, 0x05, 0x1C, 0x12, 0xE0, 0x19, 0x20 + .byte 0xFF, 0xF7, 0xCA, 0xFA, 0x05, 0x1C, 0x0D, 0xE0, 0x1A, 0x20, 0xFF, 0xF7, 0xC5, 0xFA, 0x05, 0x1C + .byte 0x08, 0xE0, 0x1B, 0x20, 0xFF, 0xF7, 0xC0, 0xFA, 0x05, 0x1C, 0x03, 0xE0, 0x1C, 0x20, 0xFF, 0xF7 + .byte 0xBB, 0xFA, 0x05, 0x1C +_020047C4: + ldr r0, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_020047C8 +sub_020047C8: ; 0x020047C8 + push {r4-r6, lr} + add r5, r1, #0x0 + cmp r0, #0x1 + bne _020047DC + mov r0, #0xb + bl sub_02003D38 + add r6, r0, #0x0 + mov r4, #0x0 + b _020047EA +_020047DC: + cmp r0, #0x7 + bne _0200480E + mov r0, #0xc + bl sub_02003D38 + add r6, r0, #0x0 + mov r4, #0x7 +_020047EA: + cmp r5, #0x0 + bne _02004800 + add r0, r4, #0x0 + bl sub_02003FF4 + bl sub_020048EC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02004110 +_02004800: + add r0, r4, #0x0 + bl sub_02003FF4 + add r1, r5, #0x0 + blx sub_020C0F8C + strb r5, [r6, #0x0] +_0200480E: + pop {r4-r6, pc} + + thumb_func_start sub_02004810 +sub_02004810: ; 0x02004810 + push {r4, lr} + mov r0, #0xb + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0xc + bl sub_02003D38 + mov r1, #0x0 + strb r1, [r4, #0x0] + strb r1, [r0, #0x0] + pop {r4, pc} + + thumb_func_start sub_02004828 +sub_02004828: ; 0x02004828 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_02003FF4 + add r1, r5, #0x0 + add r2, r4, #0x0 + blx sub_020C0EF4 + pop {r3-r5, pc} + + thumb_func_start sub_0200483C +sub_0200483C: ; 0x0200483C + push {r4, lr} + add r4, r1, #0x0 + bpl _02004844 + mov r4, #0x0 +_02004844: + cmp r4, #0x7f + ble _0200484A + mov r4, #0x7f +_0200484A: + bl sub_02003FF4 + add r1, r4, #0x0 + blx sub_020C0F30 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02004858 +sub_02004858: ; 0x02004858 + push {r3-r5, lr} + add r5, r1, #0x0 + blx sub_020C23FC + cmp r5, #0x1 + beq _02004868 + cmp r5, #0x8 + bne _0200486C +_02004868: + mov r4, #0x7f + b _02004872 +_0200486C: + cmp r0, #0x0 + beq _0200488A + ldrb r4, [r0, #0x2] +_02004872: + bl sub_020313EC + cmp r0, #0x1 + bne _0200488A + add r0, r4, #0x0 + mov r1, #0x5 + blx sub_020EBC80 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0200483C +_0200488A: + pop {r3-r5, pc} + + thumb_func_start sub_0200488C +sub_0200488C: ; 0x0200488C + push {r4, lr} + add r4, r1, #0x0 + bl sub_020048D0 + bl sub_02004018 + add r1, r4, #0x0 + bl sub_0200483C + pop {r4, pc} + + thumb_func_start sub_020048A0 +sub_020048A0: ; 0x020048A0 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_02003FF4 + mov r2, #0x0 + mvn r2, r2 + add r1, r5, #0x0 + add r3, r2, #0x0 + str r4, [sp, #0x0] + blx sub_020C3910 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020048BC +sub_020048BC: ; 0x020048BC + push {r4, lr} + add r4, r0, #0x0 + bpl _020048C6 + bl sub_02020C2C +_020048C6: + add r0, r4, #0x0 + blx sub_020C0F50 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020048D0 +sub_020048D0: ; 0x020048D0 + push {r3, lr} + cmp r0, #0x0 + bne _020048DA + mov r0, #0xff + pop {r3, pc} +_020048DA: + blx sub_020C23FC + cmp r0, #0x0 + bne _020048E6 + mov r0, #0xff + pop {r3, pc} +_020048E6: + ldrb r0, [r0, #0x5] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020048EC +sub_020048EC: ; 0x020048EC + ldr r3, _020048F0 ; =sub_020C0E14 + bx r3 + .balign 4 +_020048F0: .word sub_020C0E14 + + thumb_func_start sub_020048F4 +sub_020048F4: ; 0x020048F4 + push {r3, lr} + bl sub_02004900 + blx sub_020C22D0 + pop {r3, pc} + + thumb_func_start sub_02004900 +sub_02004900: ; 0x02004900 + push {r3, lr} + blx sub_020C23FC + cmp r0, #0x0 + bne _0200490E + mov r0, #0x0 + pop {r3, pc} +_0200490E: + ldrh r0, [r0, #0x0] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02004914 +sub_02004914: ; 0x02004914 + ldr r3, _02004918 ; =sub_020D47CC + bx r3 + .balign 4 +_02004918: .word sub_020D47CC + + thumb_func_start sub_0200491C +sub_0200491C: ; 0x0200491C + push {r3, lr} + bl sub_02003D30 + blx sub_020D4718 + pop {r3, pc} + + thumb_func_start sub_02004928 +sub_02004928: ; 0x02004928 + push {r3, lr} + blx sub_020D4980 + pop {r3, pc} + + thumb_func_start sub_02004930 +sub_02004930: ; 0x02004930 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02003D30 + mov r0, #0xf + bl sub_02003D38 + add r6, r0, #0x0 + mov r0, #0x10 + bl sub_02003D38 + add r4, r0, #0x0 + cmp r5, #0xe + beq _02004954 + cmp r5, #0xf + beq _02004954 + bl sub_02020C2C +_02004954: + cmp r5, #0xe + bne _02004962 + ldrb r0, [r6, #0x0] + cmp r0, #0x0 + bne _02004962 + bl sub_02020C2C +_02004962: + cmp r5, #0xf + bne _02004970 + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _02004970 + bl sub_02020C2C +_02004970: + cmp r5, #0xe + bne _0200497C + mov r0, #0x0 + bl sub_02003D38 + pop {r4-r6, pc} +_0200497C: + mov r0, #0x1 + bl sub_02003D38 + pop {r4-r6, pc} + + thumb_func_start sub_02004984 +sub_02004984: ; 0x02004984 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02003D30 + mov r0, #0xf + bl sub_02003D38 + add r6, r0, #0x0 + mov r0, #0x10 + bl sub_02003D38 + add r4, r0, #0x0 + cmp r5, #0xe + beq _020049A8 + cmp r5, #0xf + beq _020049A8 + bl sub_02020C2C +_020049A8: + cmp r5, #0xe + bne _020049D6 + ldrb r0, [r6, #0x0] + cmp r0, #0x0 + bne _020049D0 + mov r0, #0x0 + bl sub_02003D38 + add r4, r0, #0x0 + add r0, r5, #0x0 + blx sub_020C0688 + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _020049CA + mov r0, #0x0 + pop {r4-r6, pc} +_020049CA: + mov r0, #0x1 + strb r0, [r6, #0x0] + b _020049FE +_020049D0: + bl sub_02020C2C + b _020049FE +_020049D6: + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _020049FA + mov r0, #0x1 + bl sub_02003D38 + add r6, r0, #0x0 + add r0, r5, #0x0 + blx sub_020C0688 + str r0, [r6, #0x0] + cmp r0, #0x0 + bne _020049F4 + mov r0, #0x0 + pop {r4-r6, pc} +_020049F4: + mov r0, #0x1 + strb r0, [r4, #0x0] + b _020049FE +_020049FA: + bl sub_02020C2C +_020049FE: + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02004A04 +sub_02004A04: ; 0x02004A04 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02003D30 + mov r0, #0xf + bl sub_02003D38 + add r6, r0, #0x0 + mov r0, #0x10 + bl sub_02003D38 + add r4, r0, #0x0 + cmp r5, #0xe + beq _02004A2A + cmp r5, #0xf + beq _02004A2A + bl sub_02020C2C + pop {r4-r6, pc} +_02004A2A: + cmp r5, #0xe + bne _02004A4C + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _02004A46 + add r0, r5, #0x0 + bl sub_02004930 + ldr r0, [r0, #0x0] + blx sub_020C0670 + mov r0, #0x0 + strb r0, [r6, #0x0] + pop {r4-r6, pc} +_02004A46: + bl sub_02020C2C + pop {r4-r6, pc} +_02004A4C: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _02004A64 + add r0, r5, #0x0 + bl sub_02004930 + ldr r0, [r0, #0x0] + blx sub_020C0670 + mov r0, #0x0 + strb r0, [r4, #0x0] + pop {r4-r6, pc} +_02004A64: + bl sub_02020C2C + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02004A6C +sub_02004A6C: ; 0x02004A6C + push {r3-r5, lr} + sub sp, #0x18 + add r3, r0, #0x0 + ldr r0, [r3, #0x10] + add r4, r1, #0x0 + str r0, [sp, #0x0] + ldr r0, [r3, #0x14] + str r0, [sp, #0x4] + ldr r0, [r3, #0x18] + str r0, [sp, #0x8] + ldr r0, [r3, #0x1c] + str r0, [sp, #0xc] + ldr r0, [r3, #0x20] + str r0, [sp, #0x10] + ldr r0, [r3, #0x24] + str r0, [sp, #0x14] + ldr r0, [r3, #0x0] + ldr r1, [r3, #0x4] + ldr r2, [r3, #0x8] + ldr r0, [r0, #0x0] + ldr r3, [r3, #0xc] + blx sub_020C054C + add r5, r0, #0x0 + bne _02004AA4 + add r0, r4, #0x0 + bl sub_02004A04 +_02004AA4: + add r0, r5, #0x0 + add sp, #0x18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02004AAC +sub_02004AAC: ; 0x02004AAC + push {r3, lr} + bl sub_02004930 + ldr r0, [r0, #0x0] + blx sub_020C0510 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02004ABC +sub_02004ABC: ; 0x02004ABC + push {r3, lr} + bl sub_02004930 + ldr r0, [r0, #0x0] + blx sub_020C03B8 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02004ACC +sub_02004ACC: ; 0x02004ACC + push {r4, lr} + add r4, r1, #0x0 + cmp r4, #0x7f + bls _02004AD6 + mov r4, #0x7f +_02004AD6: + bl sub_02004930 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + blx sub_020C041C + pop {r4, pc} + + thumb_func_start sub_02004AE4 +sub_02004AE4: ; 0x02004AE4 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02004930 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + blx sub_020C044C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02004AF8 +sub_02004AF8: ; 0x02004AF8 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + bl sub_020313EC + cmp r0, #0x1 + bne _02004B20 + add r0, r4, #0x0 + bl sub_02004930 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x5 + blx sub_020EBC80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + blx sub_020C04DC + pop {r3-r5, pc} +_02004B20: + add r0, r4, #0x0 + bl sub_02004930 + ldr r0, [r0, #0x0] + add r1, r5, #0x0 + blx sub_020C04DC + pop {r3-r5, pc} + + thumb_func_start sub_02004B30 +sub_02004B30: ; 0x02004B30 + push {r3-r7, lr} + sub sp, #0x30 + add r6, r0, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r5, r3, #0x0 + bl sub_02003D30 + mov r0, #0x21 + bl sub_02003D38 + add r4, r0, #0x0 + cmp r5, #0xe + beq _02004B54 + cmp r5, #0xf + beq _02004B54 + bl sub_02020C2C +_02004B54: + add r0, r6, #0x0 + blx sub_020C226C + add r7, r0, #0x0 + bne _02004B68 + bl sub_02020C2C + add sp, #0x30 + mov r0, #0x0 + pop {r3-r7, pc} +_02004B68: + ldr r0, [r7, #0x0] + lsl r0, r0, #0x8 + lsr r0, r0, #0x8 + blx sub_020C217C + add r6, r0, #0x0 + bne _02004B80 + bl sub_02020C2C + add sp, #0x30 + mov r0, #0x0 + pop {r3-r7, pc} +_02004B80: + cmp r5, #0xe + bne _02004BCE + ldr r0, [sp, #0x48] + add r1, r6, #0x0 + bl sub_02016998 + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _02004B9C + bl sub_02020C2C + add sp, #0x30 + mov r0, #0x0 + pop {r3-r7, pc} +_02004B9C: + mov r1, #0x0 + add r2, r6, #0x0 + blx sub_020DF4A4 + ldr r0, [r7, #0x0] + ldr r1, [r4, #0x0] + lsl r0, r0, #0x8 + lsr r0, r0, #0x8 + add r2, r6, #0x0 + mov r3, #0x0 + blx sub_020C2104 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + bne _02004BC6 + bl sub_02020C2C + add sp, #0x30 + mov r0, #0x0 + pop {r3-r7, pc} +_02004BC6: + ldr r0, [r4, #0x0] + add r1, r6, #0x0 + bl sub_02004C1C +_02004BCE: + add r0, r5, #0x0 + bl sub_02004930 + mov r1, #0x0 + str r1, [sp, #0xc] + str r0, [sp, #0x8] + ldr r0, [r4, #0x0] + str r0, [sp, #0x10] + ldr r0, _02004C18 ; =0x00003443 + str r1, [sp, #0x14] + str r0, [sp, #0x20] + ldr r0, [sp, #0x0] + str r1, [sp, #0x18] + str r0, [sp, #0x24] + mov r0, #0x6 + lsl r0, r0, #0xc + str r0, [sp, #0x28] + ldr r0, [sp, #0x4] + add r1, r5, #0x0 + str r0, [sp, #0x2c] + add r0, sp, #0x8 + str r6, [sp, #0x1c] + bl sub_02004A6C + add r4, r0, #0x0 + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02004AF8 + mov r0, #0xe + bl sub_02003D38 + mov r1, #0x1 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_02004C18: .word 0x00003443 + + thumb_func_start sub_02004C1C +sub_02004C1C: ; 0x02004C1C + push {r3-r6} + mov r5, #0x0 + lsr r6, r1, #0x1 + beq _02004C36 + sub r2, r1, #0x1 +_02004C26: + sub r3, r2, r5 + ldrb r4, [r0, r5] + ldrb r1, [r0, r3] + strb r1, [r0, r5] + add r5, r5, #0x1 + strb r4, [r0, r3] + cmp r5, r6 + blo _02004C26 +_02004C36: + pop {r3-r6} + bx lr + .balign 4 + + thumb_func_start sub_02004C3C +sub_02004C3C: ; 0x02004C3C + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02003D30 + mov r0, #0xe + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0x21 + bl sub_02003D38 + add r6, r0, #0x0 + cmp r5, #0xe + beq _02004C60 + cmp r5, #0xf + beq _02004C60 + bl sub_02020C2C +_02004C60: + add r0, r5, #0x0 + bl sub_02004AAC + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _02004C76 + mov r0, #0x0 + strb r0, [r4, #0x0] + ldr r0, [r6, #0x0] + bl sub_02016A18 +_02004C76: + pop {r4-r6, pc} + + thumb_func_start sub_02004C78 +sub_02004C78: ; 0x02004C78 + ldr r3, _02004C7C ; =sub_020C1E58 + bx r3 + .balign 4 +_02004C7C: .word sub_020C1E58 + + thumb_func_start sub_02004C80 +sub_02004C80: ; 0x02004C80 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_02003D30 + mov r0, #0x3 + bl sub_02003D38 + mov r1, #0x1 + mov r3, #0xfa + lsl r1, r1, #0xc + mov r2, #0x0 + lsl r3, r3, #0x6 + str r4, [sp, #0x0] + blx sub_020C1FF0 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_02004CA4 +sub_02004CA4: ; 0x02004CA4 + ldr r3, _02004CA8 ; =sub_020C1F54 + bx r3 + .balign 4 +_02004CA8: .word sub_020C1F54 + + thumb_func_start sub_02004CAC +sub_02004CAC: ; 0x02004CAC + ldr r3, _02004CB0 ; =sub_020C1FA4 + bx r3 + .balign 4 +_02004CB0: .word sub_020C1FA4 + + thumb_func_start sub_02004CB4 +sub_02004CB4: ; 0x02004CB4 + push {r3-r4, lr} + sub sp, #0xc + bl sub_02003D30 + mov r0, #0x4 + bl sub_02003D38 + mov r1, #0x0 + mov r2, #0x1c + blx sub_020CE34C + mov r0, #0x3 + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0x4 + bl sub_02003D38 + mov r2, #0x2 + ldr r1, _02004CF4 ; =sub_02005068 + str r2, [sp, #0x0] + str r1, [sp, #0x4] + str r0, [sp, #0x8] + lsl r1, r2, #0xb + ldr r3, _02004CF8 ; =0x000055F0 + add r0, r4, #0x0 + mov r2, #0x0 + blx sub_020C1EA4 + add sp, #0xc + pop {r3-r4, pc} + nop +_02004CF4: .word sub_02005068 + 1 +_02004CF8: .word 0x000055F0 + + thumb_func_start sub_02004CFC +sub_02004CFC: ; 0x02004CFC + ldr r3, _02004D00 ; =sub_020C1E68 + bx r3 + .balign 4 +_02004D00: .word sub_020C1E68 + + thumb_func_start sub_02004D04 +sub_02004D04: ; 0x02004D04 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x13 + bl sub_02003D38 + cmp r4, #0x8 + ble _02004D16 + mov r4, #0x8 + b _02004D1C +_02004D16: + cmp r4, #0x0 + bge _02004D1C + mov r4, #0x0 +_02004D1C: + strb r4, [r0, #0x0] + pop {r4, pc} + + thumb_func_start sub_02004D20 +sub_02004D20: ; 0x02004D20 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_02003FF4 + add r1, r5, #0x0 + add r2, r4, #0x0 + blx sub_020C0EA4 + pop {r3-r5, pc} + + thumb_func_start sub_02004D34 +sub_02004D34: ; 0x02004D34 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_020048D0 + bl sub_02004018 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02004D20 + pop {r3-r5, pc} + + thumb_func_start sub_02004D4C +sub_02004D4C: ; 0x02004D4C + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_02003FF4 + add r1, r5, #0x0 + add r2, r4, #0x0 + blx sub_020C0E7C + pop {r3-r5, pc} + + thumb_func_start sub_02004D60 +sub_02004D60: ; 0x02004D60 + push {r4, lr} + add r4, r0, #0x0 + blx sub_020C0174 + ldr r0, _02004D70 ; =0x021C3DD8 + str r4, [r0, #0x0] + pop {r4, pc} + nop +_02004D70: .word 0x021C3DD8 + + thumb_func_start sub_02004D74 +sub_02004D74: ; 0x02004D74 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x6 + bl sub_02003D38 + str r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02004D84 +sub_02004D84: ; 0x02004D84 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x7 + bl sub_02003D38 + str r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02004D94 +sub_02004D94: ; 0x02004D94 + push {r3, lr} + mov r0, #0x7 + bl sub_02003D38 + ldrh r1, [r0, #0x0] + cmp r1, #0x0 + bne _02004DAA + mov r1, #0x0 + strh r1, [r0, #0x0] + add r0, r1, #0x0 + pop {r3, pc} +_02004DAA: + sub r1, r1, #0x1 + strh r1, [r0, #0x0] + ldrh r0, [r0, #0x0] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02004DB4 +sub_02004DB4: ; 0x02004DB4 + ldr r0, _02004DB8 ; =0x021C3DE0 + bx lr + .balign 4 +_02004DB8: .word 0x021C3DE0 + + thumb_func_start sub_02004DBC +sub_02004DBC: ; 0x02004DBC + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x12 + bl sub_02003D38 + strb r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02004DCC +sub_02004DCC: ; 0x02004DCC + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r0, #0x15 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x8] + bl sub_02003D38 + add r4, r0, #0x0 + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + ldr r3, [sp, #0x8] + add r1, r6, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + add r2, r7, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02004E44 + mov r0, #0x0 + strb r0, [r4, #0x0] + mov r0, #0x5 + bl sub_02003CE8 + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02004E08 +sub_02004E08: ; 0x02004E08 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r0, #0x8 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x8] + bl sub_02003D38 + add r4, r0, #0x0 + add r0, sp, #0x10 + ldrb r0, [r0, #0x14] + ldr r3, [sp, #0x8] + add r1, r6, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x28] + add r2, r7, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02004E44 + ldr r0, [sp, #0x20] + str r0, [r4, #0x0] + mov r0, #0x6 + bl sub_02003CE8 + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02004E44 +sub_02004E44: ; 0x02004E44 + push {r3-r7, lr} + add r6, r2, #0x0 + mov r0, #0x2 + add r5, r1, #0x0 + add r7, r3, #0x0 + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r6, #0x0 + bl sub_020053CC + mov r0, #0x0 + bl sub_02004110 + add r0, r5, #0x0 + bl sub_02004130 + add r0, r7, #0x0 + bl sub_02004D84 + add r0, r5, #0x0 + bl sub_020048F4 + str r0, [r4, #0x0] + add r0, sp, #0x8 + ldrb r0, [r0, #0x10] + bl sub_02004DBC + pop {r3-r7, pc} + + thumb_func_start sub_02004E80 +sub_02004E80: ; 0x02004E80 + cmp r0, #0x0 + bne _02004E88 + mov r0, #0x0 + bx lr +_02004E88: + add r0, #0xc + bx lr + + thumb_func_start sub_02004E8C +sub_02004E8C: ; 0x02004E8C + cmp r0, #0x0 + bne _02004E94 + mov r0, #0x0 + bx lr +_02004E94: + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start sub_02004E98 +sub_02004E98: ; 0x02004E98 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x5 + bl sub_02004748 + bl sub_02003F64 + lsl r0, r5, #0x10 + lsr r4, r0, #0x10 + ldr r0, _02004ECC ; =0x000001B9 + cmp r4, r0 + beq _02004EBC + add r0, #0x36 + cmp r5, r0 + bgt _02004EBA + cmp r5, #0x0 + bne _02004EBC +_02004EBA: + mov r4, #0x1 +_02004EBC: + add r0, r4, #0x0 + bl sub_02003FC4 + add r0, r4, #0x0 + bl sub_02004ED0 + pop {r3-r5, pc} + nop +_02004ECC: .word 0x000001B9 + + thumb_func_start sub_02004ED0 +sub_02004ED0: ; 0x02004ED0 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x20 + bl sub_02003D38 + add r4, r0, #0x0 + lsl r0, r5, #0x10 + ldr r1, _02004F24 ; =0x000001B9 + lsr r0, r0, #0x10 + cmp r0, r1 + beq _02004EF2 + add r1, #0x36 + cmp r5, r1 + bgt _02004EF0 + cmp r5, #0x0 + bne _02004EF2 +_02004EF0: + mov r0, #0x1 +_02004EF2: + blx sub_020C226C + cmp r0, #0x0 + bne _02004F02 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_02004F02: + ldr r0, [r0, #0x0] + lsl r0, r0, #0x8 + lsr r0, r0, #0x8 + blx sub_020C20DC + cmp r0, #0x0 + bne _02004F18 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_02004F18: + mov r1, #0x0 + blx sub_020CF768 + str r0, [r4, #0x0] + pop {r3-r5, pc} + nop +_02004F24: .word 0x000001B9 + + thumb_func_start sub_02004F28 +sub_02004F28: ; 0x02004F28 + push {r4-r6, lr} + mov r0, #0x1 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_02004F64 + mov r1, #0x3 + add r4, r0, #0x0 + add r0, r6, #0x0 + lsl r1, r1, #0x8 + ldr r5, [r5, #0x8] + blx sub_020EBC80 + lsl r1, r0, #0x1 + bpl _02004F50 + mov r0, #0x20 + blx sub_020EBC80 + neg r0, r0 + b _02004F5A +_02004F50: + cmp r1, #0x0 + bne _02004F58 + mov r0, #0x20 + b _02004F5A +_02004F58: + lsl r0, r1, #0x5 +_02004F5A: + mul r0, r4 + cmp r0, r5 + blo _02004F62 + mov r0, #0x0 +_02004F62: + pop {r4-r6, pc} + + thumb_func_start sub_02004F64 +sub_02004F64: ; 0x02004F64 + push {r3, lr} + bl sub_02003FF4 + blx sub_020C0DD4 + pop {r3, pc} + + thumb_func_start sub_02004F70 +sub_02004F70: ; 0x02004F70 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + add r4, r1, #0x0 + add r6, r2, #0x0 + ldr r1, [sp, #0x0] + mov r0, #0x1 + add r2, r3, #0x0 + bl sub_02004F28 + add r1, r0, #0x0 + mov r12, r0 + sub r1, #0x64 + bpl _02004F8E + mov r1, #0x0 +_02004F8E: + ldr r0, [sp, #0x0] + mov r3, #0x0 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + add r7, r3, #0x0 + cmp r0, #0x80 + bhs _02004FA0 + mov r0, #0x1 + b _02004FA2 +_02004FA0: + sub r0, r3, #0x1 +_02004FA2: + lsl r0, r0, #0x18 + asr r5, r0, #0x18 + mov r0, r12 + cmp r1, r0 + bhs _02005022 +_02004FAC: + mov r0, #0x0 + cmp r5, #0x0 + ble _02004FC6 + ldr r2, [sp, #0x0] + add r2, r2, r1 + str r2, [sp, #0x4] + ldrb r2, [r2, #0xc] + cmp r2, #0x80 + bls _02004FC2 + mov r0, #0x1 + b _02004FD8 +_02004FC2: + add r3, r3, #0x1 + b _02004FD8 +_02004FC6: + ldr r2, [sp, #0x0] + add r2, r2, r1 + str r2, [sp, #0x4] + ldrb r2, [r2, #0xc] + cmp r2, #0x80 + bhs _02004FD6 + mov r0, #0x1 + b _02004FD8 +_02004FD6: + add r3, r3, #0x1 +_02004FD8: + cmp r0, #0x1 + bne _0200501A + ldr r5, _02005064 ; =0x020ECB8C + mov r2, #0x0 +_02004FE0: + ldrb r0, [r5, #0x0] + cmp r3, r0 + bge _02004FEA + add r7, r2, #0x0 + b _02004FF2 +_02004FEA: + add r2, r2, #0x1 + add r5, r5, #0x1 + cmp r2, #0x9 + blt _02004FE0 +_02004FF2: + cmp r7, r6 + blt _02004FF8 + sub r7, r6, #0x1 +_02004FF8: + cmp r3, #0x0 + beq _02005006 + sub r0, r6, #0x1 + sub r0, r0, r7 + ldrb r2, [r4, r0] + add r2, r2, #0x1 + strb r2, [r4, r0] +_02005006: + ldr r0, [sp, #0x4] + mov r3, #0x0 + ldrb r0, [r0, #0xc] + cmp r0, #0x80 + bhs _02005014 + mov r0, #0x1 + b _02005016 +_02005014: + sub r0, r3, #0x1 +_02005016: + lsl r0, r0, #0x18 + asr r5, r0, #0x18 +_0200501A: + add r1, r1, #0x2 + mov r0, r12 + cmp r1, r0 + blo _02004FAC +_02005022: + mov r2, #0x0 + cmp r6, #0x0 + ble _02005038 + mov r0, #0x9 +_0200502A: + ldrb r1, [r4, r2] + cmp r1, #0xa + blo _02005032 + strb r0, [r4, r2] +_02005032: + add r2, r2, #0x1 + cmp r2, r6 + blt _0200502A +_02005038: + sub r2, r6, #0x1 + mov r3, #0x0 + cmp r2, #0x0 + ble _02005060 +_02005040: + ldrb r0, [r4, r3] + add r1, r4, r3 + cmp r0, #0x0 + bne _0200505A + ldrb r0, [r1, #0x1] + cmp r0, #0x0 + beq _0200505A + add r0, r3, #0x1 + ldrb r0, [r4, r0] + add sp, #0x8 + lsr r0, r0, #0x1 + strb r0, [r1, #0x0] + pop {r3-r7, pc} +_0200505A: + add r3, r3, #0x1 + cmp r3, r2 + blt _02005040 +_02005060: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02005064: .word 0x020ECB8C + + thumb_func_start sub_02005068 +sub_02005068: ; 0x02005068 + push {r3-r7, lr} + sub sp, #0x30 + add r5, r0, #0x0 + ldr r0, [sp, #0x48] + add r6, r1, #0x0 + str r0, [sp, #0xc] + mov r0, #0x13 + str r2, [sp, #0x0] + add r4, r3, #0x0 + bl sub_02003D38 + add r7, r0, #0x0 + cmp r4, #0x1 + beq _0200508A + ldr r0, [sp, #0x0] + lsr r0, r0, #0x1 + str r0, [sp, #0x0] +_0200508A: + ldrb r2, [r7, #0x0] + cmp r2, #0x0 + beq _0200515A + mov r0, #0x0 + cmp r2, #0x0 + ble _020050BC + add r1, sp, #0x10 +_02005098: + ldr r3, [sp, #0x0] + sub r2, r3, r2 + add r2, r0, r2 + lsl r2, r2, #0x1 + ldrsh r2, [r5, r2] + strh r2, [r1, #0x0] + ldrb r3, [r7, #0x0] + ldr r2, [sp, #0x0] + sub r2, r2, r3 + add r2, r0, r2 + lsl r2, r2, #0x1 + ldrsh r2, [r6, r2] + add r0, r0, #0x1 + strh r2, [r1, #0x2] + ldrb r2, [r7, #0x0] + add r1, r1, #0x4 + cmp r0, r2 + blt _02005098 +_020050BC: + ldr r0, [sp, #0x0] + sub r4, r0, #0x1 + sub r0, r2, #0x1 + cmp r4, r0 + blt _02005126 + lsl r1, r4, #0x1 + add r0, r5, r1 + str r0, [sp, #0x8] + add r0, r6, r1 + str r0, [sp, #0x4] +_020050D0: + mov r0, #0x0 + add r1, r0, #0x0 + cmp r2, #0x0 + ble _020050E6 +_020050D8: + sub r3, r4, r1 + lsl r3, r3, #0x1 + ldrsh r3, [r5, r3] + add r1, r1, #0x1 + add r0, r0, r3 + cmp r1, r2 + blt _020050D8 +_020050E6: + add r1, r2, #0x0 + blx sub_020EBC80 + ldr r1, [sp, #0x8] + strh r0, [r1, #0x0] + mov r0, #0x0 + ldrb r1, [r7, #0x0] + add r2, r0, #0x0 + cmp r1, #0x0 + ble _02005108 +_020050FA: + sub r3, r4, r2 + lsl r3, r3, #0x1 + ldrsh r3, [r6, r3] + add r2, r2, #0x1 + add r0, r0, r3 + cmp r2, r1 + blt _020050FA +_02005108: + blx sub_020EBC80 + ldr r1, [sp, #0x4] + sub r4, r4, #0x1 + strh r0, [r1, #0x0] + ldr r0, [sp, #0x8] + ldrb r2, [r7, #0x0] + sub r0, r0, #0x2 + str r0, [sp, #0x8] + add r0, r1, #0x0 + sub r0, r0, #0x2 + str r0, [sp, #0x4] + sub r0, r2, #0x1 + cmp r4, r0 + bge _020050D0 +_02005126: + mov r1, #0x0 + cmp r2, #0x0 + ble _0200514A + add r0, sp, #0x10 + mov r4, #0x2 +_02005130: + mov r2, #0x0 + ldrsh r3, [r0, r2] + ldr r2, [sp, #0xc] + add r1, r1, #0x1 + strh r3, [r2, #0x0] + ldrsh r3, [r0, r4] + add r0, r0, #0x4 + strh r3, [r2, #0x2] + add r2, r2, #0x4 + str r2, [sp, #0xc] + ldrb r2, [r7, #0x0] + cmp r1, r2 + blt _02005130 +_0200514A: + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + blx sub_020CC15C + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + blx sub_020CC15C +_0200515A: + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02005160 +sub_02005160: ; 0x02005160 + ldr r3, _02005168 ; =sub_020C1148 + add r1, r0, #0x0 + mov r0, #0x7 + bx r3 + .balign 4 +_02005168: .word sub_020C1148 + + thumb_func_start sub_0200516C +sub_0200516C: ; 0x0200516C + push {r3, lr} + cmp r0, #0x0 + bne _02005180 + ldr r0, _020051A4 ; =0x000007FF + bl sub_02005160 + mov r0, #0x0 + bl sub_02004CA4 + b _0200519C +_02005180: + cmp r0, #0x1 + ldr r0, _020051A8 ; =0x00007FFF + bne _02005192 + bl sub_02005160 + mov r0, #0x1e + bl sub_02004C80 + b _0200519C +_02005192: + bl sub_02005160 + mov r0, #0xf + bl sub_02004C80 +_0200519C: + bl sub_02004C78 + pop {r3, pc} + nop +_020051A4: .word 0x000007FF +_020051A8: .word 0x00007FFF + + thumb_func_start sub_020051AC +sub_020051AC: ; 0x020051AC + push {r3, lr} + bl sub_02005404 + cmp r0, #0x0 + bne _020051E0 + mov r0, #0x0 + bl sub_02003FF4 + bl sub_020048EC + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _020051E0 + bl sub_02004124 + ldr r1, _020051E8 ; =0x0000047E + cmp r0, r1 + beq _020051E0 + bl sub_02005454 + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_020047C8 + pop {r3, pc} +_020051E0: + bl sub_0200541C + pop {r3, pc} + nop +_020051E8: .word 0x0000047E + + thumb_func_start sub_020051EC +sub_020051EC: ; 0x020051EC + ldr r3, _020051F0 ; =sub_020C1180 + bx r3 + .balign 4 +_020051F0: .word sub_020C1180 + + thumb_func_start sub_020051F4 +sub_020051F4: ; 0x020051F4 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_020048D0 + bl sub_02004018 + add r4, r0, #0x0 + bl sub_02003FF4 + add r1, r5, #0x0 + blx sub_020C3980 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0200526C + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0200521C +sub_0200521C: ; 0x0200521C + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_020048D0 + add r4, r0, #0x0 + bl sub_02004018 + add r6, r0, #0x0 + cmp r4, #0x7 + bne _0200523E + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02005288 + add r4, r0, #0x0 + b _02005258 +_0200523E: + cmp r4, #0x1 + bne _02005250 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020052B8 + add r4, r0, #0x0 + b _02005258 +_02005250: + bl sub_02020C2C + mov r0, #0x0 + pop {r4-r6, pc} +_02005258: + mov r0, #0x0 + bl sub_02004DBC + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0200526C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0200526C +sub_0200526C: ; 0x0200526C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02004110 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02004858 + mov r0, #0x1 + bl sub_02003CE8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02005288 +sub_02005288: ; 0x02005288 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x3 + add r4, r2, #0x0 + bl sub_02004748 + bl sub_02003F64 + add r0, r5, #0x0 + bl sub_02003F90 + mov r0, #0x1a + bl sub_02003D38 + bl sub_02003F3C + add r0, r4, #0x0 + bl sub_02003FF4 + add r1, r5, #0x0 + blx sub_020C3980 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020052B8 +sub_020052B8: ; 0x020052B8 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + mov r0, #0x12 + add r6, r2, #0x0 + bl sub_02003D38 + mov r0, #0x1f + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0x0 + bl sub_02003FF4 + bl sub_020048EC + bl sub_02004900 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_020045C4 + add r0, r6, #0x0 + bl sub_02003FF4 + add r6, r0, #0x0 + ldrh r0, [r4, #0x0] + bl sub_02004900 + mov r1, #0x0 + mvn r1, r1 + add r2, r0, #0x0 + add r0, r6, #0x0 + add r3, r1, #0x0 + str r5, [sp, #0x0] + blx sub_020C3910 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02005308 +sub_02005308: ; 0x02005308 + push {r3-r5, lr} + add r5, r1, #0x0 + cmp r0, #0x4 + beq _02005318 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_02005318: + add r0, r5, #0x0 + bl sub_020048D0 + cmp r0, #0x7 + beq _0200532A + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_0200532A: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02003FA8 + mov r0, #0x7 + bl sub_02003FF4 + add r1, r5, #0x0 + blx sub_020C3980 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02004110 + mov r0, #0x1 + bl sub_02003CE8 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02005350 +sub_02005350: ; 0x02005350 + push {r4, lr} + add r4, r0, #0x0 + blx sub_020C0FDC + add r0, r4, #0x0 + bl sub_020048D0 + cmp r0, #0xff + beq _0200536E + bl sub_02004018 + bl sub_02003FF4 + blx sub_020C0F68 +_0200536E: + bl sub_02005374 + pop {r4, pc} + + thumb_func_start sub_02005374 +sub_02005374: ; 0x02005374 + push {r3, lr} + mov r0, #0x0 + bl sub_02004110 + mov r0, #0x0 + bl sub_02004130 + mov r0, #0x0 + bl sub_02003CE8 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0200538C +sub_0200538C: ; 0x0200538C + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_02004124 + bl sub_020048D0 + cmp r0, #0xff + beq _020053C8 + bl sub_02004018 + add r7, r0, #0x0 + cmp r4, #0x0 + bne _020053B2 + mov r1, #0x0 + add r2, r1, #0x0 + bl sub_02004828 +_020053B2: + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02004828 + add r0, r5, #0x0 + bl sub_02004D74 + mov r0, #0x3 + bl sub_02003CE8 +_020053C8: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020053CC +sub_020053CC: ; 0x020053CC + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02004124 + bl sub_020048D0 + add r6, r0, #0x0 + cmp r6, #0xff + beq _02005402 + bl sub_02005404 + cmp r0, #0x0 + bne _020053FC + add r0, r6, #0x0 + bl sub_02004018 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02004828 + add r0, r4, #0x0 + bl sub_02004D74 +_020053FC: + mov r0, #0x4 + bl sub_02003CE8 +_02005402: + pop {r4-r6, pc} + + thumb_func_start sub_02005404 +sub_02005404: ; 0x02005404 + push {r3, lr} + mov r0, #0x6 + bl sub_02003D38 + ldrh r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02005410 +sub_02005410: ; 0x02005410 + push {r3, lr} + bl sub_020048D0 + bl sub_020048BC + pop {r3, pc} + + thumb_func_start sub_0200541C +sub_0200541C: ; 0x0200541C + push {r3-r5, lr} + mov r0, #0xf + bl sub_02003D38 + add r5, r0, #0x0 + mov r0, #0x10 + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0x0 + blx sub_020C0F9C + ldrb r0, [r5, #0x0] + cmp r0, #0x1 + bne _02005440 + mov r0, #0xe + bl sub_02004AAC +_02005440: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _0200544C + mov r0, #0xf + bl sub_02004AAC +_0200544C: + mov r0, #0x0 + bl sub_02003CE8 + pop {r3-r5, pc} + + thumb_func_start sub_02005454 +sub_02005454: ; 0x02005454 + push {r3-r7, lr} + mov r0, #0xf + bl sub_02003D38 + add r7, r0, #0x0 + mov r0, #0x10 + bl sub_02003D38 + add r6, r0, #0x0 + mov r0, #0x7 + bl sub_02003FF4 + mov r1, #0x0 + blx sub_020C10A4 + bl sub_02005374 + mov r5, #0x0 + add r4, r5, #0x0 +_0200547A: + add r0, r5, #0x3 + add r1, r4, #0x0 + bl sub_020054F8 + add r5, r5, #0x1 + cmp r5, #0x4 + blt _0200547A + mov r0, #0x0 + bl sub_02005614 + ldrb r0, [r7, #0x0] + cmp r0, #0x1 + bne _0200549A + mov r0, #0xe + bl sub_02004AAC +_0200549A: + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _020054A6 + mov r0, #0xf + bl sub_02004AAC +_020054A6: + pop {r3-r7, pc} + + thumb_func_start sub_020054A8 +sub_020054A8: ; 0x020054A8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020054C8 + add r6, r0, #0x0 + ldr r1, _020054C4 ; =0x0000FFFF + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_02005530 + add r0, r6, #0x0 + pop {r4-r6, pc} + nop +_020054C4: .word 0x0000FFFF + + thumb_func_start sub_020054C8 +sub_020054C8: ; 0x020054C8 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_020048D0 + bl sub_02004018 + add r4, r0, #0x0 + bl sub_02003FF4 + add r1, r5, #0x0 + blx sub_020C3980 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02004858 + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020054F0 +sub_020054F0: ; 0x020054F0 + ldr r3, _020054F4 ; =sub_020C0FDC + bx r3 + .balign 4 +_020054F4: .word sub_020C0FDC + + thumb_func_start sub_020054F8 +sub_020054F8: ; 0x020054F8 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02003FF4 + add r1, r4, #0x0 + blx sub_020C10A4 + pop {r4, pc} + + thumb_func_start sub_02005508 +sub_02005508: ; 0x02005508 + push {r3, lr} + bl sub_020048D0 + bl sub_020048BC + pop {r3, pc} + + thumb_func_start sub_02005514 +sub_02005514: ; 0x02005514 + push {r4, lr} + mov r4, #0x0 +_02005518: + add r0, r4, #0x3 + bl sub_020048BC + cmp r0, #0x1 + bne _02005526 + mov r0, #0x1 + pop {r4, pc} +_02005526: + add r4, r4, #0x1 + cmp r4, #0x4 + blt _02005518 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02005530 +sub_02005530: ; 0x02005530 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_020048D0 + bl sub_02004018 + bl sub_02003FF4 + add r1, r5, #0x0 + add r2, r4, #0x0 + blx sub_020C0E7C + pop {r3-r5, pc} + + thumb_func_start sub_0200554C +sub_0200554C: ; 0x0200554C + push {r3-r7, lr} + add r6, r0, #0x0 + mov r0, #0x3 + bl sub_02004018 + ldr r7, _02005574 ; =0x0000FFFF + add r4, r0, #0x0 + mov r5, #0x0 +_0200555C: + add r0, r4, r5 + bl sub_02003FF4 + add r1, r7, #0x0 + add r2, r6, #0x0 + blx sub_020C0E7C + add r5, r5, #0x1 + cmp r5, #0x4 + blt _0200555C + pop {r3-r7, pc} + nop +_02005574: .word 0x0000FFFF + + thumb_func_start sub_02005578 +sub_02005578: ; 0x02005578 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x11 + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0x23 + bl sub_02003D38 + ldr r1, _02005610 ; =0x000001B9 + cmp r5, r1 + beq _0200559C + add r1, #0x36 + cmp r5, r1 + bhi _0200559A + cmp r5, #0x0 + bne _0200559C +_0200559A: + mov r5, #0x1 +_0200559C: + ldr r1, _02005610 ; =0x000001B9 + cmp r5, r1 + bne _020055BC + mov r1, #0x0 + ldr r0, [r0, #0x0] + mov r2, #0x7f + add r3, r1, #0x0 + bl sub_02005D48 + cmp r0, #0x1 + bne _020055BC + mov r0, #0x0 + bl sub_02005E80 + mov r0, #0x1 + pop {r3-r5, pc} +_020055BC: + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _020055E8 + mov r0, #0x0 + bl sub_02005614 + mov r0, #0x1 + bl sub_02003FF4 + mov r1, #0x2 + str r1, [sp, #0x0] + sub r1, r1, #0x3 + add r2, r5, #0x0 + add r3, r1, #0x0 + blx sub_020C3910 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02004858 + b _02005606 +_020055E8: + mov r0, #0x8 + bl sub_02003FF4 + mov r1, #0x2 + str r1, [sp, #0x0] + sub r1, r1, #0x3 + add r2, r5, #0x0 + add r3, r1, #0x0 + blx sub_020C3910 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x8 + bl sub_02004858 +_02005606: + mov r0, #0x0 + bl sub_02005E80 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02005610: .word 0x000001B9 + + thumb_func_start sub_02005614 +sub_02005614: ; 0x02005614 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0xf + bl sub_02003D38 + add r6, r0, #0x0 + mov r0, #0x10 + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0xe + bl sub_02003D38 + mov r0, #0x1 + bl sub_02003FF4 + add r1, r5, #0x0 + blx sub_020C10A4 + mov r0, #0x8 + bl sub_02003FF4 + add r1, r5, #0x0 + blx sub_020C10A4 + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _02005658 + mov r0, #0xe + bl sub_02004C3C + mov r0, #0xe + bl sub_02004A04 +_02005658: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _0200566A + mov r0, #0xf + bl sub_02004C3C + mov r0, #0xf + bl sub_02004A04 +_0200566A: + bl sub_02005DFC + pop {r4-r6, pc} + + thumb_func_start sub_02005670 +sub_02005670: ; 0x02005670 + push {r3-r5, lr} + mov r0, #0xf + bl sub_02003D38 + add r5, r0, #0x0 + mov r0, #0x10 + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0xe + bl sub_02003D38 + ldrb r0, [r5, #0x0] + cmp r0, #0x1 + bne _02005696 + mov r0, #0xe + bl sub_02004ABC + pop {r3-r5, pc} +_02005696: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _020056A4 + mov r0, #0xf + bl sub_02004ABC + pop {r3-r5, pc} +_020056A4: + mov r0, #0x0 + bl sub_020048BC + pop {r3-r5, pc} + + thumb_func_start sub_020056AC +sub_020056AC: ; 0x020056AC + push {r3-r7, lr} + sub sp, #0x20 + str r0, [sp, #0x4] + mov r0, #0xf + str r1, [sp, #0x8] + add r5, r2, #0x0 + add r6, r3, #0x0 + ldr r7, [sp, #0x38] + bl sub_02003D38 + str r0, [sp, #0x14] + mov r0, #0x10 + bl sub_02003D38 + str r0, [sp, #0x10] + mov r0, #0x11 + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0x1d + bl sub_02003D38 + str r0, [sp, #0xc] + mov r0, #0x23 + bl sub_02003D38 + lsr r0, r5, #0x1f + add r0, r5, r0 + asr r0, r0, #0x1 + str r0, [sp, #0x1c] + add r0, #0x40 + str r0, [sp, #0x1c] + add r0, r6, #0x0 + str r0, [sp, #0x18] + sub r0, #0x1e + str r0, [sp, #0x18] + cmp r0, #0x0 + bgt _020056FC + mov r0, #0x1 + str r0, [sp, #0x18] +_020056FC: + mov r0, #0x0 + strb r0, [r4, #0x0] + ldr r0, [sp, #0x14] + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02005714 + mov r0, #0xe + bl sub_02004C3C + mov r0, #0xe + bl sub_02004A04 +_02005714: + ldr r0, [sp, #0x10] + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02005728 + mov r0, #0xf + bl sub_02004C3C + mov r0, #0xf + bl sub_02004A04 +_02005728: + ldr r4, [sp, #0x8] + ldr r0, _02005AB4 ; =0x000001B9 + add r1, r4, #0x0 + cmp r1, r0 + beq _0200573E + add r0, #0x36 + cmp r1, r0 + bhi _0200573C + add r0, r4, #0x0 + bne _0200573E +_0200573C: + mov r4, #0x1 +_0200573E: + ldr r0, _02005AB4 ; =0x000001B9 + ldr r1, [sp, #0x8] + cmp r1, r0 + bne _020057B4 + ldr r1, [sp, #0x4] + cmp r1, #0xc + bhi _020057AE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r3, #0 + lsl r0, r3, #0 + lsl r0, r3, #0 + lsl r4, r2, #0x1 + lsl r4, r2, #0x1 + lsl r0, r3, #0 + lsl r4, r2, #0x1 + lsl r4, r2, #0x1 + lsl r4, r2, #0x1 + lsl r4, r2, #0x1 + lsl r4, r2, #0x1 + lsl r0, r3, #0 + lsl r0, r3, #0 + bl sub_02005578 + ldr r0, [sp, #0xc] + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02005794 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl sub_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl sub_02005AC8 + b _020057A8 +_02005794: + ldr r1, [sp, #0x1c] + mov r0, #0xe + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_02004ACC + mov r0, #0xe + add r1, r6, #0x0 + bl sub_02004AF8 +_020057A8: + add sp, #0x20 + mov r0, #0x1 + pop {r3-r7, pc} +_020057AE: + mov r0, #0x1 + bl sub_02005E80 +_020057B4: + ldr r0, [sp, #0x4] + cmp r0, #0xe + bls _020057BC + b _02005AC2 +_020057BC: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r3, #0 + lsl r0, r7, #0 + lsl r4, r3, #0x1 + lsl r6, r3, #0x2 + lsl r0, r5, #0x3 + lsl r6, r6, #0x4 + lsl r6, r3, #0x5 + lsl r2, r4, #0x6 + lsl r2, r2, #0x7 + lsl r0, r0, #0x8 + lsl r4, r6, #0x8 + lsl r4, r4, #0x9 + lsl r4, r1, #0xa + lsl r4, r7, #0xa + lsl r2, r6, #0xb + add r0, r4, #0x0 + bl sub_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl sub_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl sub_02005AC8 + b _02005AC2 +_02005802: + .byte 0x20, 0x1C, 0xFF, 0xF7, 0xB8, 0xFE, 0xAB, 0x49, 0x01, 0x20, 0x2A, 0x1C, 0xFF, 0xF7 + .byte 0x9D, 0xFA, 0x20, 0x1C, 0x01, 0x21, 0x32, 0x1C, 0x00, 0xF0, 0x56, 0xF9, 0x14, 0x20, 0x39, 0x1C + .byte 0x00, 0xF0, 0x5E, 0xF9, 0x4D, 0xE1, 0x20, 0x1C, 0xFF, 0xF7, 0xA6, 0xFE, 0xA2, 0x49, 0x01, 0x20 + .byte 0x2A, 0x1C, 0xFF, 0xF7, 0x8B, 0xFA, 0x20, 0x1C, 0x01, 0x21, 0x32, 0x1C, 0x00, 0xF0, 0x44, 0xF9 + .byte 0x9D, 0x49, 0x01, 0x20, 0x40, 0x22, 0xFF, 0xF7, 0x6B, 0xFA, 0x20, 0x1C, 0x14, 0x21, 0x00, 0xF0 + .byte 0xBB, 0xF9, 0x99, 0x49, 0x08, 0x20, 0x2A, 0x1C, 0xFF, 0xF7, 0x78, 0xFA, 0x06, 0x9A, 0x20, 0x1C + .byte 0x08, 0x21, 0x00, 0xF0, 0x31, 0xF9, 0x2C, 0xE1, 0x20, 0x1C, 0xFF, 0xF7, 0x85, 0xFE, 0x92, 0x49 + .byte 0x01, 0x20, 0x2A, 0x1C, 0xFF, 0xF7, 0x6A, 0xFA, 0x20, 0x1C, 0x01, 0x21, 0x32, 0x1C, 0x00, 0xF0 + .byte 0x23, 0xF9, 0x1E, 0x20, 0x39, 0x1C, 0x00, 0xF0, 0x2B, 0xF9, 0x8B, 0x49, 0x01, 0x20, 0xC0, 0x22 + .byte 0xFF, 0xF7, 0x46, 0xFA, 0x20, 0x1C, 0x10, 0x21, 0x00, 0xF0, 0x96, 0xF9, 0x86, 0x49, 0x08, 0x20 + .byte 0x2A, 0x1C, 0xFF, 0xF7, 0x53, 0xFA, 0x06, 0x9A, 0x20, 0x1C, 0x08, 0x21, 0x00, 0xF0, 0x0C, 0xF9 + .byte 0x07, 0xE1, 0x0E, 0x20, 0xFF, 0xF7, 0x66, 0xF8, 0x07, 0x9A, 0x20, 0x1C, 0x31, 0x1C, 0x0E, 0x23 + .byte 0x00, 0x97, 0xFF, 0xF7, 0x35, 0xF9, 0x07, 0x99, 0x0E, 0x20, 0x09, 0x06, 0x09, 0x0E, 0xFF, 0xF7 + .byte 0xFD, 0xF8, 0x0F, 0x20, 0x39, 0x1C, 0x00, 0xF0, 0x03, 0xF9, 0x86, 0x21, 0x0E, 0x20, 0x09, 0x02 + .byte 0xFF, 0xF7, 0x00, 0xF9, 0x3F, 0x21, 0x06, 0x9A, 0x07, 0x9B, 0x20, 0x1C, 0xC9, 0x43, 0x00, 0x97 + .byte 0x00, 0xF0, 0x82, 0xF9, 0x86, 0x21, 0x0F, 0x20, 0x09, 0x02, 0xFF, 0xF7, 0xF3, 0xF8, 0xE0, 0xE0 + .byte 0x20, 0x1C, 0xFF, 0xF7, 0x39, 0xFE, 0x6C, 0x49, 0x01, 0x20, 0x2A, 0x1C, 0xFF, 0xF7, 0x1E, 0xFA + .byte 0x20, 0x1C, 0x01, 0x21, 0x32, 0x1C, 0x00, 0xF0, 0xD7, 0xF8, 0x01, 0x20, 0x02, 0x1C, 0x66, 0x49 + .byte 0xE1, 0x3A, 0xFF, 0xF7, 0xFD, 0xF9, 0xCC, 0xE0, 0x20, 0x1C, 0xFF, 0xF7, 0x25, 0xFE, 0x62, 0x49 + .byte 0x01, 0x20, 0x2A, 0x1C, 0xFF, 0xF7, 0x0A, 0xFA, 0x20, 0x1C, 0x01, 0x21, 0x32, 0x1C, 0x00, 0xF0 + .byte 0xC3, 0xF8, 0x5D, 0x49, 0x01, 0x20, 0x2C, 0x22, 0xFF, 0xF7, 0xEA, 0xF9, 0x3F, 0x21, 0x20, 0x1C + .byte 0xC9, 0x43, 0x00, 0xF0, 0x39, 0xF9, 0x58, 0x49, 0x08, 0x20, 0x2A, 0x1C, 0xFF, 0xF7, 0xF6, 0xF9 + .byte 0x06, 0x9A, 0x20, 0x1C, 0x08, 0x21, 0x00, 0xF0, 0xAF, 0xF8, 0xAA, 0xE0, 0x20, 0x1C, 0xFF, 0xF7 + .byte 0x03, 0xFE, 0x51, 0x49, 0x01, 0x20, 0x2A, 0x1C, 0xFF, 0xF7, 0xE8, 0xF9, 0x20, 0x1C, 0x01, 0x21 + .byte 0x32, 0x1C, 0x00, 0xF0, 0xA1, 0xF8, 0x0B, 0x20, 0x39, 0x1C, 0x00, 0xF0, 0xA9, 0xF8, 0x01, 0x20 + .byte 0x02, 0x1C, 0x49, 0x49, 0x81, 0x3A, 0xFF, 0xF7, 0xC3, 0xF9, 0x92, 0xE0, 0x20, 0x1C, 0xFF, 0xF7 + .byte 0xEB, 0xFD, 0x45, 0x49, 0x01, 0x20, 0x2A, 0x1C, 0xFF, 0xF7, 0xD0, 0xF9, 0x20, 0x1C, 0x01, 0x21 + .byte 0x32, 0x1C, 0x00, 0xF0, 0x89, 0xF8, 0x3C, 0x20, 0x39, 0x1C, 0x00, 0xF0, 0x91, 0xF8, 0x3E, 0x49 + .byte 0x01, 0x20, 0x3C, 0x22, 0xFF, 0xF7, 0xAC, 0xF9, 0x7B, 0xE0, 0x0E, 0x20, 0xFE, 0xF7, 0xDA, 0xFF + .byte 0x07, 0x9A, 0x20, 0x1C, 0x31, 0x1C, 0x0E, 0x23, 0x00, 0x97, 0xFF, 0xF7, 0xA9, 0xF8, 0x07, 0x99 + .byte 0x0E, 0x20, 0x09, 0x06, 0x09, 0x0E, 0xFF, 0xF7, 0x71, 0xF8, 0x0D, 0x20, 0x39, 0x1C, 0x00, 0xF0 + .byte 0x77, 0xF8, 0x1A, 0x21, 0x0E, 0x20, 0x89, 0x02, 0xFF, 0xF7, 0x74, 0xF8, 0x61, 0xE0, 0x20, 0x1C + .byte 0xFF, 0xF7, 0xBA, 0xFD, 0x2C, 0x49, 0x01, 0x20, 0x2A, 0x1C, 0xFF, 0xF7, 0x9F, 0xF9, 0x20, 0x1C + .byte 0x01, 0x21, 0x32, 0x1C, 0x00, 0xF0, 0x58, 0xF8, 0x64, 0x20, 0x39, 0x1C, 0x00, 0xF0, 0x60, 0xF8 + .byte 0x01, 0x20, 0x02, 0x1C, 0x24, 0x49, 0x2D, 0x3A, 0xFF, 0xF7, 0x7A, 0xF9, 0x49, 0xE0, 0x20, 0x1C + .byte 0xFF, 0xF7, 0xA2, 0xFD, 0x20, 0x49, 0x01, 0x20, 0x2A, 0x1C, 0xFF, 0xF7, 0x87, 0xF9, 0x20, 0x1C + .byte 0x01, 0x21, 0x32, 0x1C, 0x00, 0xF0, 0x40, 0xF8, 0x01, 0x20, 0x02, 0x1C, 0x1A, 0x49, 0x61, 0x3A + .byte 0xFF, 0xF7, 0x66, 0xF9, 0x35, 0xE0, 0x20, 0x1C, 0xFF, 0xF7, 0x8E, 0xFD, 0x16, 0x49, 0x01, 0x20 + .byte 0x2A, 0x1C, 0xFF, 0xF7, 0x73, 0xF9, 0x20, 0x1C, 0x01, 0x21, 0x32, 0x1C, 0x00, 0xF0, 0x2C, 0xF8 + .byte 0x14, 0x20, 0x39, 0x1C, 0x00, 0xF0, 0x34, 0xF8, 0x01, 0x20, 0x02, 0x1C, 0x0E, 0x49, 0x61, 0x3A + .byte 0xFF, 0xF7, 0x4E, 0xF9, 0x1D, 0xE0, 0x20, 0x1C, 0xFF, 0xF7, 0x76, 0xFD, 0x20, 0x1C, 0x01, 0x21 + .byte 0x7F, 0x22, 0x00, 0xF0, 0x19, 0xF8, 0x20, 0x1C, 0x14, 0x21, 0x00, 0xF0, 0x95, 0xF8, 0x06, 0x49 + .byte 0x08, 0x20, 0x2A, 0x1C, 0xFF, 0xF7, 0x52, 0xF9, 0x08, 0x20, 0x31, 0x1C, 0x00, 0x22, 0xFE, 0xF7 + .byte 0xBB, 0xFE, 0x06, 0xE0 +_02005AB4: .word 0x000001B9 +_02005AB8: .word 0x0000FFFF +_02005ABC: + .byte 0x20, 0x1C, 0xFF, 0xF7 + .byte 0x5B, 0xFD +_02005AC2: + mov r0, #0x1 + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_02005AC8 +sub_02005AC8: ; 0x02005AC8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r2, #0x0 + bl sub_0200483C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02004858 + pop {r3-r5, pc} + + thumb_func_start sub_02005AE0 +sub_02005AE0: ; 0x02005AE0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x22 + bl sub_02003D38 + add r6, r0, #0x0 + bl sub_02005BA0 + add r0, r4, #0x0 + mov r1, #0x8 + bl sub_02016998 + add r4, r0, #0x0 + bne _02005B04 + bl sub_02020C2C + pop {r4-r6, pc} +_02005B04: + mov r2, #0x0 + strb r2, [r4, #0x0] + strb r2, [r4, #0x1] + strb r2, [r4, #0x2] + strb r2, [r4, #0x3] + strb r2, [r4, #0x4] + strb r2, [r4, #0x5] + strb r2, [r4, #0x6] + strb r2, [r4, #0x7] + ldr r0, _02005B28 ; =sub_02005B2C + add r1, r4, #0x0 + str r5, [r4, #0x0] + bl sub_0200CA44 + str r0, [r4, #0x4] + str r0, [r6, #0x0] + pop {r4-r6, pc} + nop +_02005B28: .word sub_02005B2C + 1 + + thumb_func_start sub_02005B2C +sub_02005B2C: ; 0x02005B2C + push {r4-r6, lr} + mov r0, #0xf + add r5, r1, #0x0 + bl sub_02003D38 + add r6, r0, #0x0 + mov r0, #0x10 + bl sub_02003D38 + ldr r2, [r5, #0x0] + add r4, r0, #0x0 + cmp r2, #0xa + bne _02005B58 + mov r0, #0x1 + mov r1, #0x0 + bl sub_02004828 + ldr r2, [r5, #0x0] + mov r0, #0x8 + mov r1, #0x0 + bl sub_02004828 +_02005B58: + ldr r0, [r5, #0x0] + sub r0, r0, #0x1 + str r0, [r5, #0x0] + bl sub_02005670 + cmp r0, #0x0 + bne _02005B6A + mov r0, #0x0 + str r0, [r5, #0x0] +_02005B6A: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + bgt _02005B9E + mov r0, #0x0 + bl sub_02005614 + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _02005B88 + mov r0, #0xe + bl sub_02004C3C + mov r0, #0xe + bl sub_02004A04 +_02005B88: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _02005B9A + mov r0, #0xf + bl sub_02004C3C + mov r0, #0xf + bl sub_02004A04 +_02005B9A: + bl sub_02005BA0 +_02005B9E: + pop {r4-r6, pc} + + thumb_func_start sub_02005BA0 +sub_02005BA0: ; 0x02005BA0 + push {r3-r5, lr} + mov r0, #0x22 + bl sub_02003D38 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02005BC2 + bl sub_0201B6C8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0200CAB4 + add r0, r5, #0x0 + bl sub_02016A18 +_02005BC2: + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_02005BC8 +sub_02005BC8: ; 0x02005BC8 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x11 + add r4, r1, #0x0 + bl sub_02003D38 + mov r1, #0x1 + strb r1, [r0, #0x0] + add r0, r1, #0x0 + bl sub_02005E80 + add r0, r5, #0x0 + bl sub_02005578 + add r5, r0, #0x0 + ldr r1, _02005BF4 ; =0x0000FFFF + mov r0, #0x8 + add r2, r4, #0x0 + bl sub_02004D20 + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 +_02005BF4: .word 0x0000FFFF + + thumb_func_start sub_02005BF8 +sub_02005BF8: ; 0x02005BF8 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + mov r0, #0x11 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02003D38 + mov r1, #0x1 + strb r1, [r0, #0x0] + mov r0, #0xf + bl sub_02004984 + ldr r0, [sp, #0x18] + add r1, r4, #0x0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r2, r6, #0x0 + mov r3, #0xf + bl sub_02004B30 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02005C28 +sub_02005C28: ; 0x02005C28 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020048F4 + add r0, r5, #0x0 + bl sub_02005CEC + bl sub_02004124 + bl sub_020048D0 + cmp r0, #0xff + beq _02005C48 + mov r1, #0x1 + bl sub_020047C8 +_02005C48: + mov r0, #0x1c + bl sub_02003D38 + bl sub_02003F3C + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_02003FA8 + mov r0, #0x2 + bl sub_02003FF4 + add r1, r5, #0x0 + blx sub_020C3980 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_02004858 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02005C74 +sub_02005C74: ; 0x02005C74 + push {r4, lr} + mov r0, #0xd + bl sub_02003D38 + add r4, r0, #0x0 + mov r0, #0x2 + bl sub_020048BC + cmp r0, #0x0 + beq _02005C8C + mov r0, #0x1 + pop {r4, pc} +_02005C8C: + ldrh r0, [r4, #0x0] + cmp r0, #0x0 + beq _02005C9A + sub r0, r0, #0x1 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} +_02005C9A: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02005CA0 +sub_02005CA0: ; 0x02005CA0 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x2 + bl sub_02003FF4 + add r1, r4, #0x0 + blx sub_020C10A4 + mov r0, #0x6 + bl sub_02004748 + bl sub_02003F64 + pop {r4, pc} + + thumb_func_start sub_02005CBC +sub_02005CBC: ; 0x02005CBC + push {r3, lr} + mov r0, #0xd + bl sub_02003D38 + bl sub_02005C74 + cmp r0, #0x1 + bne _02005CD0 + mov r0, #0x1 + pop {r3, pc} +_02005CD0: + mov r0, #0x0 + bl sub_02005CA0 + bl sub_02004124 + bl sub_020048D0 + cmp r0, #0xff + beq _02005CE8 + mov r1, #0x0 + bl sub_020047C8 +_02005CE8: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02005CEC +sub_02005CEC: ; 0x02005CEC + push {r3, lr} + mov r0, #0xd + bl sub_02003D38 + mov r1, #0xf + strh r1, [r0, #0x0] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02005CFC +sub_02005CFC: ; 0x02005CFC + push {r3, lr} + mov r0, #0x1d + bl sub_02003D38 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02005D1C + mov r0, #0xe + bl sub_02004ABC + cmp r0, #0x0 + bne _02005D1C + bl sub_02005DFC + mov r0, #0x1 + pop {r3, pc} +_02005D1C: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02005D20 +sub_02005D20: ; 0x02005D20 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x1e + bl sub_02003D38 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02029F04 + cmp r0, #0x0 + bne _02005D3A + mov r0, #0x0 + pop {r3-r5, pc} +_02005D3A: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + beq _02005D44 + mov r0, #0x1 + pop {r3-r5, pc} +_02005D44: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02005D48 +sub_02005D48: ; 0x02005D48 + push {r3-r7, lr} + sub sp, #0x30 + add r6, r0, #0x0 + add r5, r2, #0x0 + add r7, r3, #0x0 + bl sub_02004DB4 + str r0, [sp, #0x0] + mov r0, #0x1d + bl sub_02003D38 + str r0, [sp, #0x4] + add r0, r6, #0x0 + bl sub_02005D20 + cmp r0, #0x0 + bne _02005D70 + add sp, #0x30 + mov r0, #0x0 + pop {r3-r7, pc} +_02005D70: + mov r0, #0x0 + bl sub_02005614 + bl sub_02005DFC + mov r0, #0xe + bl sub_02004984 + bl sub_0201B9EC + lsr r2, r0, #0x1f + lsl r1, r0, #0x13 + sub r1, r1, r2 + mov r0, #0x13 + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r6, #0x0 + bl sub_02029F10 + add r1, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02029F14 + mov r0, #0xe + bl sub_02004930 + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + bl sub_02004DB4 + str r0, [sp, #0x10] + mov r0, #0x0 + str r0, [sp, #0x14] + str r0, [sp, #0x18] + mov r0, #0x7d + lsl r0, r0, #0x4 + str r0, [sp, #0x1c] + str r0, [sp, #0x20] + mov r0, #0x2 + lsl r0, r0, #0xe + add r0, r4, r0 + str r0, [sp, #0x28] + lsr r0, r7, #0x1f + add r0, r7, r0 + asr r0, r0, #0x1 + add r0, #0x40 + str r0, [sp, #0x2c] + add r0, sp, #0x8 + mov r1, #0xe + str r5, [sp, #0x24] + bl sub_02004A6C + add r4, r0, #0x0 + mov r0, #0xe + add r1, r5, #0x0 + bl sub_02004AF8 + ldr r0, [sp, #0x4] + mov r1, #0x1 + strb r1, [r0, #0x0] + mov r0, #0x0 + bl sub_02005E80 + add r0, r4, #0x0 + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02005DFC +sub_02005DFC: ; 0x02005DFC + push {r3-r5, lr} + mov r0, #0xf + bl sub_02003D38 + add r5, r0, #0x0 + mov r0, #0x1d + bl sub_02003D38 + add r4, r0, #0x0 + ldrb r0, [r5, #0x0] + cmp r0, #0x1 + bne _02005E20 + mov r0, #0xe + bl sub_02004C3C + mov r0, #0xe + bl sub_02004A04 +_02005E20: + mov r0, #0x0 + strb r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02005E28 +sub_02005E28: ; 0x02005E28 + push {lr} + sub sp, #0x1c + mov r0, #0x2 + str r0, [sp, #0x0] + bl sub_02004DB4 + mov r1, #0x7d + str r0, [sp, #0x4] + lsl r1, r1, #0x4 + mov r0, #0x1f + str r1, [sp, #0x8] + tst r0, r1 + beq _02005E48 + mov r0, #0x1f + bic r1, r0 + str r1, [sp, #0x8] +_02005E48: + ldr r0, _02005E60 ; =0x00004174 + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + str r0, [sp, #0x14] + str r0, [sp, #0x18] + add r0, sp, #0x0 + bl sub_02004914 + add sp, #0x1c + pop {pc} + nop +_02005E60: .word 0x00004174 + + thumb_func_start sub_02005E64 +sub_02005E64: ; 0x02005E64 + ldr r3, _02005E68 ; =sub_0200491C + bx r3 + .balign 4 +_02005E68: .word sub_0200491C + 1 + + thumb_func_start sub_02005E6C +sub_02005E6C: ; 0x02005E6C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02004DB4 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02029F4C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02005E80 +sub_02005E80: ; 0x02005E80 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1e + bl sub_02003D38 + strb r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02005E90 +sub_02005E90: ; 0x02005E90 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x23 + add r7, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02003D38 + cmp r5, #0x0 + bne _02005EB2 + ldr r0, [r0, #0x0] + add r1, r7, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_02005D48 + b _02005EBE +_02005EB2: + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_02005D48 +_02005EBE: + cmp r0, #0x0 + bne _02005ED8 + mov r0, #0x1 + bl sub_02005E80 + mov r0, #0xb + str r0, [sp, #0x0] + ldr r1, _02005EDC ; =0x000001B9 + mov r0, #0x0 + add r2, r6, #0x0 + add r3, r4, #0x0 + bl sub_020056AC +_02005ED8: + pop {r3-r7, pc} + nop +_02005EDC: .word 0x000001B9 + + thumb_func_start sub_02005EE0 +sub_02005EE0: ; 0x02005EE0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02029F04 + cmp r0, #0x0 + bne _02005EF0 + mov r0, #0x0 + pop {r4, pc} +_02005EF0: + add r0, r4, #0x0 + bl sub_02029F10 + mov r1, #0xf + ldrsb r0, [r0, r1] + sub r1, #0x2d + cmp r0, r1 + bge _02005F04 + mov r0, #0x1 + pop {r4, pc} +_02005F04: + cmp r0, #0x1e + blt _02005F10 + cmp r0, #0x80 + bge _02005F10 + mov r0, #0x2 + pop {r4, pc} +_02005F10: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02005F14 +sub_02005F14: ; 0x02005F14 + cmp r0, #0xb + bgt _02005F2E + bge _02005F32 + cmp r0, #0x5 + bgt _02005F36 + cmp r0, #0x0 + blt _02005F36 + beq _02005F32 + cmp r0, #0x1 + beq _02005F32 + cmp r0, #0x5 + beq _02005F32 + b _02005F36 +_02005F2E: + cmp r0, #0xc + bne _02005F36 +_02005F32: + mov r0, #0x1 + bx lr +_02005F36: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02005F3C +sub_02005F3C: ; 0x02005F3C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x1 + beq _02005F4A + bl sub_02020C2C +_02005F4A: + ldr r1, [r4, #0x0] + mov r0, #0x0 + blx sub_020D2040 + cmp r0, #0x1 + beq _02005F5A + bl sub_02020C2C +_02005F5A: + mov r0, #0x0 + str r0, [r4, #0x4] + pop {r4, pc} + + thumb_func_start sub_02005F60 +sub_02005F60: ; 0x02005F60 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02005F90 + bl sub_0200610C + mov r2, #0x0 + add r3, r0, #0x0 +_02005F70: + ldr r1, [r3, #0x4] + cmp r1, #0x1 + bne _02005F86 + ldr r1, [r3, #0x0] + cmp r4, r1 + bne _02005F86 + lsl r1, r2, #0x3 + add r0, r0, r1 + bl sub_02005F3C + pop {r4, pc} +_02005F86: + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, #0x8 + blt _02005F70 + pop {r4, pc} + + thumb_func_start sub_02005F90 +sub_02005F90: ; 0x02005F90 + push {lr} + sub sp, #0x2c + add r2, r0, #0x0 + add r0, sp, #0x0 + mov r1, #0x0 + blx sub_020D24EC + cmp r0, #0x1 + beq _02005FA6 + bl sub_02020C2C +_02005FA6: + mov r0, #0x2 + ldr r2, [sp, #0x4] + lsl r0, r0, #0x18 + cmp r2, r0 + bhi _02005FBC + lsr r0, r0, #0x1 + cmp r2, r0 + blo _02005FBC + add sp, #0x2c + mov r0, #0x1 + pop {pc} +_02005FBC: + mov r0, #0x1 + ldr r1, _02005FD8 ; =0x027E0000 + lsl r0, r0, #0xe + add r0, r1, r0 + cmp r2, r0 + bhi _02005FD2 + cmp r2, r1 + blo _02005FD2 + add sp, #0x2c + mov r0, #0x2 + pop {pc} +_02005FD2: + mov r0, #0x0 + add sp, #0x2c + pop {pc} + .balign 4 +_02005FD8: .word 0x027E0000 + + thumb_func_start sub_02005FDC +sub_02005FDC: ; 0x02005FDC + push {r3-r7, lr} + add r4, r1, #0x0 + mov r1, #0x0 + mvn r1, r1 + add r5, r0, #0x0 + str r1, [sp, #0x0] + bl sub_02006090 + cmp r0, #0x0 + bne _02005FF4 + mov r0, #0x0 + pop {r3-r7, pc} +_02005FF4: + add r0, r5, #0x0 + bl sub_02005F90 + add r7, r0, #0x0 + bl sub_0200610C + add r3, r0, #0x0 + mov r6, #0x0 + add r1, r3, #0x0 +_02006006: + ldr r0, [r1, #0x4] + cmp r0, #0x0 + bne _02006018 + lsl r1, r6, #0x3 + add r2, r3, r1 + mov r0, #0x1 + str r0, [r2, #0x4] + str r5, [r3, r1] + b _02006020 +_02006018: + add r6, r6, #0x1 + add r1, #0x8 + cmp r6, #0x8 + blt _02006006 +_02006020: + cmp r6, #0x8 + blt _0200602C + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} +_0200602C: + sub r6, r7, #0x1 + cmp r6, #0x1 + bhi _0200603C + mov r0, #0x0 + mvn r0, r0 + blx sub_020D1D30 + str r0, [sp, #0x0] +_0200603C: + cmp r4, #0x0 + beq _0200604A + cmp r4, #0x1 + beq _02006056 + cmp r4, #0x2 + beq _02006062 + b _0200606E +_0200604A: + mov r0, #0x0 + add r1, r5, #0x0 + bl sub_02006168 + add r4, r0, #0x0 + b _02006076 +_02006056: + mov r0, #0x0 + add r1, r5, #0x0 + bl sub_02006170 + add r4, r0, #0x0 + b _02006076 +_02006062: + mov r0, #0x0 + add r1, r5, #0x0 + bl sub_020061A8 + add r4, r0, #0x0 + b _02006076 +_0200606E: + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} +_02006076: + cmp r6, #0x1 + bhi _02006080 + ldr r0, [sp, #0x0] + blx sub_020D1D30 +_02006080: + cmp r4, #0x0 + bne _0200608C + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} +_0200608C: + mov r0, #0x1 + pop {r3-r7, pc} + + thumb_func_start sub_02006090 +sub_02006090: ; 0x02006090 + push {r3-r7, lr} + sub sp, #0x10 + add r1, sp, #0xc + add r2, sp, #0x8 + add r4, r0, #0x0 + bl sub_02006130 + cmp r0, #0x0 + bne _020060A8 + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_020060A8: + add r0, r4, #0x0 + bl sub_02005F90 + bl sub_0200610C + add r5, r0, #0x0 + mov r4, #0x0 + add r6, sp, #0x4 + add r7, sp, #0x0 +_020060BA: + ldr r0, [r5, #0x4] + cmp r0, #0x1 + bne _020060FC + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02006130 + cmp r0, #0x1 + bne _020060FC + ldr r1, [sp, #0x4] + ldr r2, [sp, #0xc] + cmp r2, r1 + blo _020060DC + ldr r0, [sp, #0x0] + cmp r2, r0 + blo _020060F2 +_020060DC: + ldr r3, [sp, #0x8] + cmp r3, r1 + bls _020060E8 + ldr r0, [sp, #0x0] + cmp r3, r0 + bls _020060F2 +_020060E8: + cmp r2, r1 + bhi _020060FC + ldr r0, [sp, #0x0] + cmp r3, r0 + blo _020060FC +_020060F2: + bl sub_02020C2C + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_020060FC: + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, #0x8 + blt _020060BA + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200610C +sub_0200610C: ; 0x0200610C + cmp r0, #0x0 + beq _02006118 + cmp r0, #0x1 + beq _0200611C + cmp r0, #0x2 + beq _02006120 +_02006118: + ldr r0, _02006124 ; =0x021C45B0 + bx lr +_0200611C: + ldr r0, _02006128 ; =0x021C45F0 + bx lr +_02006120: + ldr r0, _0200612C ; =0x021C4630 + bx lr + .balign 4 +_02006124: .word 0x021C45B0 +_02006128: .word 0x021C45F0 +_0200612C: .word 0x021C4630 + + thumb_func_start sub_02006130 +sub_02006130: ; 0x02006130 + push {r4-r5, lr} + sub sp, #0x2c + add r3, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + add r0, sp, #0x0 + mov r1, #0x0 + add r2, r3, #0x0 + blx sub_020D24EC + cmp r0, #0x0 + bne _02006152 + bl sub_02020C2C + add sp, #0x2c + mov r0, #0x0 + pop {r4-r5, pc} +_02006152: + ldr r2, [sp, #0x4] + str r2, [r5, #0x0] + ldr r1, [sp, #0x8] + ldr r0, [sp, #0xc] + add r0, r1, r0 + add r0, r2, r0 + str r0, [r4, #0x0] + mov r0, #0x1 + add sp, #0x2c + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_02006168 +sub_02006168: ; 0x02006168 + ldr r3, _0200616C ; =sub_020D2094 + bx r3 + .balign 4 +_0200616C: .word sub_020D2094 + + thumb_func_start sub_02006170 +sub_02006170: ; 0x02006170 + push {lr} + sub sp, #0x2c + add r3, r0, #0x0 + add r2, r1, #0x0 + add r0, sp, #0x0 + add r1, r3, #0x0 + blx sub_020D24EC + cmp r0, #0x0 + bne _0200618A + add sp, #0x2c + mov r0, #0x0 + pop {pc} +_0200618A: + add r0, sp, #0x0 + blx sub_020D23B4 + cmp r0, #0x0 + bne _0200619A + add sp, #0x2c + mov r0, #0x0 + pop {pc} +_0200619A: + add r0, sp, #0x0 + blx sub_020D2210 + mov r0, #0x1 + add sp, #0x2c + pop {pc} + .balign 4 + + thumb_func_start sub_020061A8 +sub_020061A8: ; 0x020061A8 + push {lr} + sub sp, #0x74 + add r3, r0, #0x0 + add r2, r1, #0x0 + add r0, sp, #0x0 + add r1, r3, #0x0 + blx sub_020D24EC + cmp r0, #0x0 + bne _020061C2 + add sp, #0x74 + mov r0, #0x0 + pop {pc} +_020061C2: + add r0, sp, #0x2c + blx sub_020D1C94 + add r0, sp, #0x0 + add r1, sp, #0x2c + blx sub_020D2454 + add r0, sp, #0x2c + blx sub_020D182C + add r0, sp, #0x2c + blx sub_020D18FC + add r0, sp, #0x0 + blx sub_020D2210 + mov r0, #0x1 + add sp, #0x74 + pop {pc} + + thumb_func_start sub_020061E8 +sub_020061E8: ; 0x020061E8 + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + add r7, r2, #0x0 + cmp r5, #0x0 + beq _0200620C + add r0, r3, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + bne _02006202 + mov r0, #0x0 + pop {r3-r7, pc} +_02006202: + mov r1, #0x0 + add r2, r5, #0x0 + blx sub_020DF4A4 + b _0200620E +_0200620C: + mov r4, #0x0 +_0200620E: + add r0, r6, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_0200CA44 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200621C +sub_0200621C: ; 0x0200621C + push {r4, lr} + add r4, r0, #0x0 + bl sub_0201B6C8 + cmp r0, #0x0 + beq _0200622C + bl sub_02016A18 +_0200622C: + add r0, r4, #0x0 + bl sub_0200CAB4 + pop {r4, pc} + + thumb_func_start sub_02006234 +sub_02006234: ; 0x02006234 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x28 + bl sub_02016998 + add r3, r0, #0x0 + add r2, r3, #0x0 + ldmia r5!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0x0 + str r0, [r3, #0x10] + str r0, [r3, #0x14] + str r4, [r3, #0x18] + str r0, [r3, #0x1c] + str r0, [r3, #0x20] + str r0, [r3, #0x24] + add r0, r3, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02006260 +sub_02006260: ; 0x02006260 + ldr r3, _02006264 ; =sub_02016A18 + bx r3 + .balign 4 +_02006264: .word sub_02016A18 + 1 + + thumb_func_start sub_02006268 +sub_02006268: ; 0x02006268 + push {r4, lr} + add r4, r0, #0x0 + add r0, r2, #0x0 + bl sub_02016998 + str r0, [r4, #0x1c] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02006278 +sub_02006278: ; 0x02006278 + ldr r0, [r0, #0x1c] + bx lr + + thumb_func_start sub_0200627C +sub_0200627C: ; 0x0200627C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x1c] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x1c] + pop {r4, pc} + + thumb_func_start sub_0200628C +sub_0200628C: ; 0x0200628C + ldr r0, [r0, #0x18] + bx lr + + thumb_func_start sub_02006290 +sub_02006290: ; 0x02006290 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x10] + cmp r1, #0x3 + bhi _0200630E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r2, r3, #0 + lsl r2, r6, #0 + lsl r0, r1, #0x1 + mov r1, #0x0 + ldr r0, [r4, #0xc] + mvn r1, r1 + cmp r0, r1 + beq _020062BE + mov r1, #0x2 + bl sub_02005FDC +_020062BE: + mov r0, #0x1 + str r0, [r4, #0x10] + add r1, r4, #0x0 + ldr r2, [r4, #0x0] + add r0, r4, #0x0 + add r1, #0x14 + blx r2 + cmp r0, #0x1 + bne _0200630E + mov r0, #0x2 + str r0, [r4, #0x10] + mov r0, #0x0 + str r0, [r4, #0x14] + b _0200630E +_020062DA: + .byte 0x21, 0x1C, 0x62, 0x68, 0x14, 0x31 + .byte 0x90, 0x47, 0x01, 0x28, 0x13, 0xD1, 0x03, 0x20, 0x20, 0x61, 0x00, 0x20, 0x60, 0x61, 0x0E, 0xE0 + .byte 0x21, 0x1C, 0xA2, 0x68, 0x14, 0x31, 0x90, 0x47, 0x01, 0x28, 0x08, 0xD1, 0x00, 0x21, 0xE0, 0x68 + .byte 0xC9, 0x43, 0x88, 0x42, 0x01, 0xD0, 0xFF, 0xF7, 0x2B, 0xFE, 0x01, 0x20, 0x10, 0xBD +_0200630E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02006314 +sub_02006314: ; 0x02006314 + push {r3-r7, lr} + sub sp, #0x60 + add r4, r1, #0x0 + mov r1, #0x0 + str r0, [sp, #0x0] + str r1, [sp, #0x14] + str r1, [sp, #0x10] + str r1, [sp, #0xc] + add r0, sp, #0x8 + strh r1, [r0, #0x0] + add r0, sp, #0x18 + add r5, r2, #0x0 + str r3, [sp, #0x4] + blx sub_020D1C94 + add r0, sp, #0x18 + add r1, r4, #0x0 + blx sub_020D1944 + add r0, sp, #0x18 + mov r1, #0xc + mov r2, #0x0 + blx sub_020D17A0 + add r0, sp, #0x18 + add r1, sp, #0x14 + mov r2, #0x2 + blx sub_020D180C + ldr r4, [sp, #0x14] + add r0, sp, #0x18 + add r1, r4, #0x4 + mov r2, #0x0 + blx sub_020D17A0 + add r0, sp, #0x18 + add r1, sp, #0x14 + mov r2, #0x4 + blx sub_020D180C + add r0, sp, #0x18 + add r1, sp, #0x8 + mov r2, #0x2 + blx sub_020D180C + add r0, sp, #0x8 + ldrh r0, [r0, #0x0] + cmp r0, r5 + bgt _0200637A + bl sub_02020C2C +_0200637A: + ldr r0, [sp, #0x14] + mov r2, #0x0 + add r6, r4, r0 + add r0, sp, #0x18 + add r1, r6, #0x4 + blx sub_020D17A0 + add r0, sp, #0x18 + add r1, sp, #0x14 + mov r2, #0x4 + blx sub_020D180C + add r4, #0xc + lsl r1, r5, #0x3 + add r0, sp, #0x18 + add r1, r4, r1 + mov r2, #0x0 + ldr r7, [sp, #0x14] + blx sub_020D17A0 + add r0, sp, #0x18 + add r1, sp, #0x10 + mov r2, #0x4 + blx sub_020D180C + add r0, sp, #0x18 + add r1, sp, #0xc + mov r2, #0x4 + blx sub_020D180C + add r2, r6, r7 + ldr r1, [sp, #0x10] + add r2, #0x8 + add r2, r2, r1 + ldr r1, [sp, #0x4] + add r0, sp, #0x18 + add r1, r1, r2 + mov r2, #0x0 + blx sub_020D17A0 + ldr r0, [sp, #0x78] + cmp r0, #0x0 + bne _020063D6 + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x10] + sub r0, r1, r0 +_020063D6: + str r0, [sp, #0x14] + cmp r0, #0x0 + bne _020063E0 + bl sub_02020C2C +_020063E0: + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x14] + add r0, sp, #0x18 + blx sub_020D180C + add r0, sp, #0x18 + blx sub_020D18FC + add sp, #0x60 + pop {r3-r7, pc} + + thumb_func_start sub_020063F4 +sub_020063F4: ; 0x020063F4 + push {r3-r7, lr} + sub sp, #0x60 + add r5, r1, #0x0 + mov r1, #0x0 + add r4, r0, #0x0 + str r1, [sp, #0x14] + str r1, [sp, #0x10] + str r1, [sp, #0xc] + add r0, sp, #0x8 + strh r1, [r0, #0x0] + add r0, sp, #0x18 + str r2, [sp, #0x0] + str r3, [sp, #0x4] + blx sub_020D1C94 + add r0, sp, #0x18 + add r1, r4, #0x0 + blx sub_020D1944 + add r0, sp, #0x18 + mov r1, #0xc + mov r2, #0x0 + blx sub_020D17A0 + add r0, sp, #0x18 + add r1, sp, #0x14 + mov r2, #0x2 + blx sub_020D180C + ldr r4, [sp, #0x14] + add r0, sp, #0x18 + add r1, r4, #0x4 + mov r2, #0x0 + blx sub_020D17A0 + add r0, sp, #0x18 + add r1, sp, #0x14 + mov r2, #0x4 + blx sub_020D180C + add r0, sp, #0x18 + add r1, sp, #0x8 + mov r2, #0x2 + blx sub_020D180C + add r0, sp, #0x8 + ldrh r0, [r0, #0x0] + cmp r0, r5 + bgt _0200645A + bl sub_02020C2C +_0200645A: + ldr r0, [sp, #0x14] + mov r2, #0x0 + add r6, r4, r0 + add r0, sp, #0x18 + add r1, r6, #0x4 + blx sub_020D17A0 + add r0, sp, #0x18 + add r1, sp, #0x14 + mov r2, #0x4 + blx sub_020D180C + add r4, #0xc + lsl r1, r5, #0x3 + add r0, sp, #0x18 + add r1, r4, r1 + mov r2, #0x0 + ldr r7, [sp, #0x14] + blx sub_020D17A0 + add r0, sp, #0x18 + add r1, sp, #0x10 + mov r2, #0x4 + blx sub_020D180C + add r0, sp, #0x18 + add r1, sp, #0xc + mov r2, #0x4 + blx sub_020D180C + add r2, r6, r7 + ldr r1, [sp, #0x10] + add r2, #0x8 + add r2, r2, r1 + ldr r1, [sp, #0x4] + add r0, sp, #0x18 + add r1, r1, r2 + mov r2, #0x0 + blx sub_020D17A0 + ldr r0, [sp, #0x78] + cmp r0, #0x0 + bne _020064B6 + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x10] + sub r0, r1, r0 +_020064B6: + str r0, [sp, #0x14] + cmp r0, #0x0 + bne _020064C0 + bl sub_02020C2C +_020064C0: + ldr r0, [sp, #0x7c] + cmp r0, #0x0 + bne _020064D0 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x14] + bl sub_02016998 + b _020064D8 +_020064D0: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x14] + bl sub_020169D8 +_020064D8: + add r4, r0, #0x0 + ldr r2, [sp, #0x14] + add r0, sp, #0x18 + add r1, r4, #0x0 + blx sub_020D180C + add r0, sp, #0x18 + blx sub_020D18FC + add r0, r4, #0x0 + add sp, #0x60 + pop {r3-r7, pc} + + thumb_func_start sub_020064F0 +sub_020064F0: ; 0x020064F0 + push {r3-r4, lr} + sub sp, #0x4 + mov r3, #0x0 + lsl r4, r1, #0x2 + ldr r1, _02006508 ; =0x021058A0 + str r3, [sp, #0x0] + ldr r1, [r1, r4] + bl sub_02006314 + add sp, #0x4 + pop {r3-r4, pc} + nop +_02006508: .word 0x021058A0 + + thumb_func_start sub_0200650C +sub_0200650C: ; 0x0200650C + push {r4, lr} + sub sp, #0x8 + mov r3, #0x0 + str r3, [sp, #0x0] + lsl r4, r0, #0x2 + ldr r0, _02006524 ; =0x021058A0 + str r3, [sp, #0x4] + ldr r0, [r0, r4] + bl sub_020063F4 + add sp, #0x8 + pop {r4, pc} + .balign 4 +_02006524: .word 0x021058A0 + + thumb_func_start sub_02006528 +sub_02006528: ; 0x02006528 + push {r4, lr} + sub sp, #0x8 + mov r3, #0x0 + str r3, [sp, #0x0] + mov r4, #0x1 + str r4, [sp, #0x4] + lsl r4, r0, #0x2 + ldr r0, _02006544 ; =0x021058A0 + ldr r0, [r0, r4] + bl sub_020063F4 + add sp, #0x8 + pop {r4, pc} + nop +_02006544: .word 0x021058A0 + + thumb_func_start sub_02006548 +sub_02006548: ; 0x02006548 + push {r3-r4, lr} + sub sp, #0x4 + ldr r4, [sp, #0x10] + str r4, [sp, #0x0] + lsl r4, r1, #0x2 + ldr r1, _02006560 ; =0x021058A0 + ldr r1, [r1, r4] + bl sub_02006314 + add sp, #0x4 + pop {r3-r4, pc} + nop +_02006560: .word 0x021058A0 + + thumb_func_start sub_02006564 +sub_02006564: ; 0x02006564 + push {r4, lr} + sub sp, #0x8 + ldr r4, [sp, #0x10] + str r4, [sp, #0x0] + mov r4, #0x0 + str r4, [sp, #0x4] + lsl r4, r0, #0x2 + ldr r0, _02006580 ; =0x021058A0 + ldr r0, [r0, r4] + bl sub_020063F4 + add sp, #0x8 + pop {r4, pc} + nop +_02006580: .word 0x021058A0 + + thumb_func_start sub_02006584 +sub_02006584: ; 0x02006584 + push {r4, lr} + sub sp, #0x8 + ldr r4, [sp, #0x10] + str r4, [sp, #0x0] + mov r4, #0x1 + str r4, [sp, #0x4] + lsl r4, r0, #0x2 + ldr r0, _020065A0 ; =0x021058A0 + ldr r0, [r0, r4] + bl sub_020063F4 + add sp, #0x8 + pop {r4, pc} + nop +_020065A0: .word 0x021058A0 + + thumb_func_start sub_020065A4 +sub_020065A4: ; 0x020065A4 + push {r3-r7, lr} + sub sp, #0x58 + add r5, r1, #0x0 + mov r1, #0x0 + add r4, r0, #0x0 + str r1, [sp, #0xc] + str r1, [sp, #0x8] + str r1, [sp, #0x4] + add r0, sp, #0x0 + strh r1, [r0, #0x0] + add r0, sp, #0x10 + blx sub_020D1C94 + ldr r1, _0200666C ; =0x021058A0 + lsl r2, r4, #0x2 + ldr r1, [r1, r2] + add r0, sp, #0x10 + blx sub_020D1944 + add r0, sp, #0x10 + mov r1, #0xc + mov r2, #0x0 + blx sub_020D17A0 + add r0, sp, #0x10 + add r1, sp, #0xc + mov r2, #0x2 + blx sub_020D180C + ldr r4, [sp, #0xc] + add r0, sp, #0x10 + add r1, r4, #0x4 + mov r2, #0x0 + blx sub_020D17A0 + add r0, sp, #0x10 + add r1, sp, #0xc + mov r2, #0x4 + blx sub_020D180C + add r0, sp, #0x10 + add r1, sp, #0x0 + mov r2, #0x2 + blx sub_020D180C + add r0, sp, #0x0 + ldrh r0, [r0, #0x0] + cmp r0, r5 + bgt _0200660A + bl sub_02020C2C +_0200660A: + ldr r0, [sp, #0xc] + mov r2, #0x0 + add r6, r4, r0 + add r0, sp, #0x10 + add r1, r6, #0x4 + blx sub_020D17A0 + add r0, sp, #0x10 + add r1, sp, #0xc + mov r2, #0x4 + blx sub_020D180C + add r4, #0xc + lsl r1, r5, #0x3 + add r0, sp, #0x10 + add r1, r4, r1 + mov r2, #0x0 + ldr r7, [sp, #0xc] + blx sub_020D17A0 + add r0, sp, #0x10 + add r1, sp, #0x8 + mov r2, #0x4 + blx sub_020D180C + add r0, sp, #0x10 + add r1, sp, #0x4 + mov r2, #0x4 + blx sub_020D180C + add r2, r6, r7 + ldr r1, [sp, #0x8] + add r2, #0x8 + add r1, r2, r1 + add r0, sp, #0x10 + mov r2, #0x0 + blx sub_020D17A0 + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + sub r0, r1, r0 + str r0, [sp, #0xc] + bne _02006664 + bl sub_02020C2C +_02006664: + ldr r0, [sp, #0xc] + add sp, #0x58 + pop {r3-r7, pc} + nop +_0200666C: .word 0x021058A0 + + thumb_func_start sub_02006670 +sub_02006670: ; 0x02006670 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x54 + bl sub_02016998 + add r4, r0, #0x0 + beq _020066EC + mov r1, #0x0 + str r1, [r4, #0x48] + blx sub_020D1C94 + ldr r1, _020066F0 ; =0x021058A0 + lsl r2, r5, #0x2 + ldr r1, [r1, r2] + add r0, r4, #0x0 + blx sub_020D1944 + add r0, r4, #0x0 + mov r1, #0xc + mov r2, #0x0 + blx sub_020D17A0 + add r1, r4, #0x0 + add r0, r4, #0x0 + add r1, #0x48 + mov r2, #0x2 + blx sub_020D180C + ldr r1, [r4, #0x48] + add r0, r4, #0x0 + add r1, r1, #0x4 + mov r2, #0x0 + blx sub_020D17A0 + add r0, r4, #0x0 + add r1, sp, #0x0 + mov r2, #0x4 + blx sub_020D180C + add r1, r4, #0x0 + add r0, r4, #0x0 + add r1, #0x50 + mov r2, #0x2 + blx sub_020D180C + ldr r1, [r4, #0x48] + ldr r0, [sp, #0x0] + mov r2, #0x0 + add r5, r1, r0 + add r0, r4, #0x0 + add r1, r5, #0x4 + blx sub_020D17A0 + add r0, r4, #0x0 + add r1, sp, #0x0 + mov r2, #0x4 + blx sub_020D180C + ldr r0, [sp, #0x0] + add r0, r5, r0 + str r0, [r4, #0x4c] +_020066EC: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_020066F0: .word 0x021058A0 + + thumb_func_start sub_020066F4 +sub_020066F4: ; 0x020066F4 + push {r4, lr} + add r4, r0, #0x0 + blx sub_020D18FC + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02006704 +sub_02006704: ; 0x02006704 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x50 + ldrh r0, [r0, #0x0] + add r4, r1, #0x0 + add r6, r2, #0x0 + cmp r0, r4 + bhi _0200671A + bl sub_02020C2C +_0200671A: + ldr r2, [r5, #0x48] + lsl r1, r4, #0x3 + add r2, #0xc + add r1, r2, r1 + add r0, r5, #0x0 + mov r2, #0x0 + blx sub_020D17A0 + add r0, r5, #0x0 + add r1, sp, #0x4 + mov r2, #0x4 + blx sub_020D180C + add r0, r5, #0x0 + add r1, sp, #0x0 + mov r2, #0x4 + blx sub_020D180C + ldr r2, [r5, #0x4c] + ldr r1, [sp, #0x4] + add r2, #0x8 + add r1, r2, r1 + add r0, r5, #0x0 + mov r2, #0x0 + blx sub_020D17A0 + ldr r2, [sp, #0x0] + ldr r1, [sp, #0x4] + add r0, r6, #0x0 + sub r1, r2, r1 + bl sub_02016998 + add r4, r0, #0x0 + beq _0200676C + ldr r3, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + sub r2, r3, r2 + blx sub_020D180C +_0200676C: + add r0, r4, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02006774 +sub_02006774: ; 0x02006774 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x50 + ldrh r0, [r0, #0x0] + add r4, r1, #0x0 + add r6, r2, #0x0 + cmp r0, r4 + bhi _0200678A + bl sub_02020C2C +_0200678A: + ldr r2, [r5, #0x48] + lsl r1, r4, #0x3 + add r2, #0xc + add r1, r2, r1 + add r0, r5, #0x0 + mov r2, #0x0 + blx sub_020D17A0 + add r0, r5, #0x0 + add r1, sp, #0x4 + mov r2, #0x4 + blx sub_020D180C + add r0, r5, #0x0 + add r1, sp, #0x0 + mov r2, #0x4 + blx sub_020D180C + ldr r2, [r5, #0x4c] + ldr r1, [sp, #0x4] + add r2, #0x8 + add r1, r2, r1 + add r0, r5, #0x0 + mov r2, #0x0 + blx sub_020D17A0 + ldr r3, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, r5, #0x0 + add r1, r6, #0x0 + sub r2, r3, r2 + blx sub_020D180C + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_020067D0 +sub_020067D0: ; 0x020067D0 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x50 + ldrh r0, [r0, #0x0] + add r4, r1, #0x0 + cmp r0, r4 + bhi _020067E4 + bl sub_02020C2C +_020067E4: + ldr r2, [r5, #0x48] + lsl r1, r4, #0x3 + add r2, #0xc + add r1, r2, r1 + add r0, r5, #0x0 + mov r2, #0x0 + blx sub_020D17A0 + add r0, r5, #0x0 + add r1, sp, #0x4 + mov r2, #0x4 + blx sub_020D180C + add r0, r5, #0x0 + add r1, sp, #0x0 + mov r2, #0x4 + blx sub_020D180C + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x4] + sub r0, r1, r0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02006814 +sub_02006814: ; 0x02006814 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x50 + ldrh r0, [r0, #0x0] + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r0, r4 + bhi _0200682A + bl sub_02020C2C +_0200682A: + ldr r2, [r5, #0x48] + lsl r1, r4, #0x3 + add r2, #0xc + add r1, r2, r1 + add r0, r5, #0x0 + mov r2, #0x0 + blx sub_020D17A0 + add r0, r5, #0x0 + add r1, sp, #0x0 + mov r2, #0x4 + blx sub_020D180C + ldr r2, [r5, #0x4c] + ldr r1, [sp, #0x0] + add r2, #0x8 + add r1, r2, r1 + add r0, r5, #0x0 + add r1, r6, r1 + mov r2, #0x0 + blx sub_020D17A0 + ldr r1, [sp, #0x18] + add r0, r5, #0x0 + add r2, r7, #0x0 + blx sub_020D180C + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02006864 +sub_02006864: ; 0x02006864 + add r3, r1, #0x0 + add r1, r2, #0x0 + add r2, r3, #0x0 + ldr r3, _02006870 ; =0x020D180C + bx r3 + nop +_02006870: .word 0x020D180C + + thumb_func_start sub_02006874 +sub_02006874: ; 0x02006874 + add r0, #0x50 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0200687C +sub_0200687C: ; 0x0200687C + push {r3-r7, lr} + sub sp, #0x8 + add r6, r2, #0x0 + mov r2, #0x0 + add r5, r3, #0x0 + str r2, [sp, #0x0] + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x2c] + ldr r4, [sp, #0x24] + bl sub_02006C98 + add r7, r0, #0x0 + beq _020068C2 + add r1, sp, #0x4 + blx sub_020B0030 + cmp r0, #0x0 + beq _020068BC + cmp r4, #0x0 + bne _020068A8 + ldr r0, [sp, #0x4] + ldr r4, [r0, #0x10] +_020068A8: + ldr r0, [sp, #0x20] + lsl r1, r5, #0x18 + str r0, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, r6, #0x0 + ldr r2, [r2, #0x14] + lsr r1, r1, #0x18 + add r3, r4, #0x0 + bl sub_02017E14 +_020068BC: + add r0, r7, #0x0 + bl sub_02016A18 +_020068C2: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_020068C8 +sub_020068C8: ; 0x020068C8 + push {r3-r7, lr} + sub sp, #0x8 + add r6, r2, #0x0 + mov r2, #0x1 + add r5, r3, #0x0 + str r2, [sp, #0x0] + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x2c] + ldr r4, [sp, #0x24] + bl sub_02006C98 + add r7, r0, #0x0 + beq _0200692C + add r1, sp, #0x4 + blx sub_020B0180 + cmp r0, #0x0 + beq _02006926 + cmp r4, #0x0 + bne _020068F4 + ldr r0, [sp, #0x4] + ldr r4, [r0, #0x8] +_020068F4: + lsl r1, r5, #0x18 + add r0, r6, #0x0 + lsr r1, r1, #0x18 + bl sub_0201886C + cmp r0, #0x0 + beq _02006912 + ldr r2, [sp, #0x4] + lsl r1, r5, #0x18 + add r0, r6, #0x0 + lsr r1, r1, #0x18 + add r2, #0xc + add r3, r4, #0x0 + bl sub_02017DFC +_02006912: + ldr r0, [sp, #0x20] + lsl r1, r5, #0x18 + str r0, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, r6, #0x0 + lsr r1, r1, #0x18 + add r2, #0xc + add r3, r4, #0x0 + bl sub_02017CE8 +_02006926: + add r0, r7, #0x0 + bl sub_02016A18 +_0200692C: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02006930 +sub_02006930: ; 0x02006930 + push {lr} + sub sp, #0xc + str r3, [sp, #0x0] + ldr r3, [sp, #0x10] + str r3, [sp, #0x4] + ldr r3, [sp, #0x14] + str r3, [sp, #0x8] + mov r3, #0x0 + bl sub_02006948 + add sp, #0xc + pop {pc} + + thumb_func_start sub_02006948 +sub_02006948: ; 0x02006948 + push {r4-r7, lr} + sub sp, #0xc + add r4, r2, #0x0 + add r7, r3, #0x0 + mov r2, #0x1 + str r2, [sp, #0x0] + ldr r3, [sp, #0x28] + mov r2, #0x0 + ldr r6, [sp, #0x20] + ldr r5, [sp, #0x24] + bl sub_02006C98 + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _02006A2A + add r1, sp, #0x8 + blx sub_020B0138 + cmp r0, #0x0 + beq _02006A24 + ldr r0, [sp, #0x8] + ldr r1, [r0, #0xc] + add r1, r1, r7 + str r1, [r0, #0xc] + cmp r5, #0x0 + bne _02006982 + ldr r0, [sp, #0x8] + ldr r0, [r0, #0x8] + sub r5, r0, r7 +_02006982: + ldr r0, [sp, #0x8] + add r1, r5, #0x0 + ldr r0, [r0, #0xc] + blx sub_020CC15C + cmp r4, #0x7 + bhi _02006A14 + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r1, #0 + lsl r2, r0, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r0, r5, #0 + lsl r4, r3, #0x1 + blx sub_020C8B10 + ldr r0, [sp, #0x8] + ldr r3, _02006A30 ; =0x020ECBB0 + lsl r4, r4, #0x2 + ldr r0, [r0, #0xc] + ldr r3, [r3, r4] + add r1, r6, #0x0 + add r2, r5, #0x0 + blx r3 + blx sub_020C8A2C + b _02006A24 +_020069C6: + .byte 0xC1, 0xF0, 0x82, 0xEF, 0x02, 0x98, 0x18, 0x4B, 0xA4, 0x00 + .byte 0xC0, 0x68, 0x1B, 0x59, 0x31, 0x1C, 0x2A, 0x1C, 0x98, 0x47, 0xC1, 0xF0, 0x18, 0xEF, 0x21, 0xE0 + .byte 0xC1, 0xF0, 0xEC, 0xEF, 0x02, 0x98, 0x12, 0x4B, 0xA4, 0x00, 0xC0, 0x68, 0x1B, 0x59, 0x31, 0x1C + .byte 0x2A, 0x1C, 0x98, 0x47, 0xC1, 0xF0, 0x7C, 0xEF, 0x14, 0xE0, 0xC1, 0xF0, 0xF6, 0xEE, 0x02, 0x98 + .byte 0x0B, 0x4B, 0xA4, 0x00, 0xC0, 0x68, 0x1B, 0x59, 0x31, 0x1C, 0x2A, 0x1C, 0x98, 0x47, 0xC1, 0xF0 + .byte 0x8C, 0xEE, 0x07, 0xE0 +_02006A14: + ldr r0, [sp, #0x8] + ldr r3, _02006A30 ; =0x020ECBB0 + lsl r4, r4, #0x2 + ldr r0, [r0, #0xc] + ldr r3, [r3, r4] + add r1, r6, #0x0 + add r2, r5, #0x0 + blx r3 +_02006A24: + ldr r0, [sp, #0x4] + bl sub_02016A18 +_02006A2A: + add sp, #0xc + pop {r4-r7, pc} + nop +_02006A30: .word 0x020ECBB0 + + thumb_func_start sub_02006A34 +sub_02006A34: ; 0x02006A34 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r2, #0x0 + mov r2, #0x1 + add r6, r3, #0x0 + str r2, [sp, #0x0] + ldr r2, [sp, #0x24] + ldr r3, [sp, #0x28] + ldr r4, [sp, #0x20] + bl sub_02006C98 + add r7, r0, #0x0 + beq _02006A80 + add r1, sp, #0x4 + blx sub_020B0088 + cmp r0, #0x0 + beq _02006A7A + cmp r4, #0x0 + bne _02006A60 + ldr r0, [sp, #0x4] + ldr r4, [r0, #0x10] +_02006A60: + ldr r0, [sp, #0x4] + add r1, r4, #0x0 + ldr r0, [r0, #0x14] + blx sub_020CC15C + ldr r0, [sp, #0x4] + ldr r3, _02006A88 ; =0x020ECBA0 + lsl r5, r5, #0x2 + ldr r0, [r0, #0x14] + ldr r3, [r3, r5] + add r1, r6, #0x0 + add r2, r4, #0x0 + blx r3 +_02006A7A: + add r0, r7, #0x0 + bl sub_02016A18 +_02006A80: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + nop +_02006A88: .word 0x020ECBA0 + + thumb_func_start sub_02006A8C +sub_02006A8C: ; 0x02006A8C + push {r4-r7, lr} + sub sp, #0xc + add r5, r2, #0x0 + add r4, r3, #0x0 + mov r2, #0x1 + str r2, [sp, #0x0] + ldr r3, [sp, #0x20] + mov r2, #0x0 + bl sub_02006C98 + add r6, r0, #0x0 + beq _02006AE0 + add r1, sp, #0x4 + blx sub_020B00F0 + add r7, r0, #0x0 + add r0, r6, #0x0 + add r1, sp, #0x8 + blx sub_020B0138 + cmp r0, #0x0 + beq _02006ADA + cmp r7, #0x0 + beq _02006ACE + ldr r0, [sp, #0x24] + add r2, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + add r3, r5, #0x0 + blx sub_020B10E8 + b _02006ADA +_02006ACE: + ldr r0, [sp, #0x8] + ldr r3, [sp, #0x24] + add r1, r4, #0x0 + add r2, r5, #0x0 + blx sub_020B1240 +_02006ADA: + add r0, r6, #0x0 + bl sub_02016A18 +_02006AE0: + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02006AE4 +sub_02006AE4: ; 0x02006AE4 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r3, #0x0 + mov r3, #0x1 + str r3, [sp, #0x0] + ldr r3, [sp, #0x24] + bl sub_02006C98 + add r6, r0, #0x0 + ldr r4, _02006B30 ; =0x00000000 + beq _02006B28 + add r1, sp, #0x4 + blx sub_020B0088 + cmp r0, #0x0 + beq _02006B22 + ldr r1, [sp, #0x18] + cmp r1, #0x0 + beq _02006B0E + ldr r0, [sp, #0x4] + str r1, [r0, #0x10] +_02006B0E: + ldr r4, _02006B34 ; =0x020ECBA8 + lsl r5, r5, #0x2 + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x20] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x28] + ldr r4, [r4, r5] + blx r4 + ldr r0, [sp, #0x4] + ldr r4, [r0, #0x10] +_02006B22: + add r0, r6, #0x0 + bl sub_02016A18 +_02006B28: + add r0, r4, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + nop +_02006B30: .word 0x00000000 +_02006B34: .word 0x020ECBA8 + + thumb_func_start sub_02006B38 +sub_02006B38: ; 0x02006B38 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r3, #0x0 + mov r3, #0x1 + str r3, [sp, #0x0] + ldr r3, [sp, #0x24] + bl sub_02006C98 + add r4, r0, #0x0 + beq _02006B9E + add r1, sp, #0x4 + blx sub_020B0088 + cmp r0, #0x0 + beq _02006B98 + ldr r1, [sp, #0x18] + cmp r1, #0x0 + beq _02006B60 + ldr r0, [sp, #0x4] + str r1, [r0, #0x10] +_02006B60: + ldr r0, [sp, #0x1c] + cmp r0, #0x1 + beq _02006B6C + cmp r0, #0x2 + beq _02006B7C + b _02006B88 +_02006B6C: + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + ldr r0, _02006BA4 ; =0x00300010 + and r1, r0 + ldr r0, [sp, #0x4] + str r1, [r0, #0x8] + b _02006B88 +_02006B7C: + ldr r0, _02006BA8 ; =0x04001000 + ldr r1, [r0, #0x0] + ldr r0, _02006BA4 ; =0x00300010 + and r1, r0 + ldr r0, [sp, #0x4] + str r1, [r0, #0x8] +_02006B88: + lsl r6, r5, #0x2 + ldr r5, _02006BAC ; =0x020ECB98 + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x20] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x28] + ldr r5, [r5, r6] + blx r5 +_02006B98: + add r0, r4, #0x0 + bl sub_02016A18 +_02006B9E: + add sp, #0x8 + pop {r4-r6, pc} + nop +_02006BA4: .word 0x00300010 +_02006BA8: .word 0x04001000 +_02006BAC: .word 0x020ECB98 + + thumb_func_start sub_02006BB0 +sub_02006BB0: ; 0x02006BB0 + push {r3-r5, lr} + add r4, r3, #0x0 + mov r3, #0x0 + str r3, [sp, #0x0] + ldr r3, [sp, #0x10] + bl sub_02006C98 + add r5, r0, #0x0 + beq _02006BD6 + add r1, r4, #0x0 + blx sub_020B0030 + cmp r0, #0x0 + bne _02006BD6 + add r0, r5, #0x0 + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r5, pc} +_02006BD6: + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02006BDC +sub_02006BDC: ; 0x02006BDC + push {r3-r5, lr} + add r4, r3, #0x0 + mov r3, #0x0 + str r3, [sp, #0x0] + ldr r3, [sp, #0x10] + bl sub_02006C98 + add r5, r0, #0x0 + beq _02006C02 + add r1, r4, #0x0 + blx sub_020B0180 + cmp r0, #0x0 + bne _02006C02 + add r0, r5, #0x0 + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r5, pc} +_02006C02: + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02006C08 +sub_02006C08: ; 0x02006C08 + push {r3-r5, lr} + add r5, r2, #0x0 + mov r2, #0x0 + str r2, [sp, #0x0] + bl sub_02006C98 + add r4, r0, #0x0 + beq _02006C2C + add r1, r5, #0x0 + blx sub_020B0138 + cmp r0, #0x0 + bne _02006C2C + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r5, pc} +_02006C2C: + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02006C30 +sub_02006C30: ; 0x02006C30 + push {r3-r5, lr} + add r4, r3, #0x0 + mov r3, #0x0 + str r3, [sp, #0x0] + ldr r3, [sp, #0x10] + bl sub_02006C98 + add r5, r0, #0x0 + beq _02006C56 + add r1, r4, #0x0 + blx sub_020AFEB8 + cmp r0, #0x0 + bne _02006C56 + add r0, r5, #0x0 + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r5, pc} +_02006C56: + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02006C5C +sub_02006C5C: ; 0x02006C5C + push {r3-r5, lr} + add r4, r3, #0x0 + mov r3, #0x0 + str r3, [sp, #0x0] + ldr r3, [sp, #0x10] + bl sub_02006C98 + add r5, r0, #0x0 + beq _02006C82 + add r1, r4, #0x0 + blx sub_020AFD94 + cmp r0, #0x0 + bne _02006C82 + add r0, r5, #0x0 + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r5, pc} +_02006C82: + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02006C88 +sub_02006C88: ; 0x02006C88 + push {r3, lr} + add r3, r2, #0x0 + mov r2, #0x0 + str r2, [sp, #0x0] + mov r2, #0x1 + bl sub_02006C98 + pop {r3, pc} + + thumb_func_start sub_02006C98 +sub_02006C98: ; 0x02006C98 + push {r3-r7, lr} + add r5, r2, #0x0 + add r7, r0, #0x0 + add r6, r3, #0x0 + str r1, [sp, #0x0] + cmp r5, #0x0 + bne _02006CAC + ldr r2, [sp, #0x18] + cmp r2, #0x1 + bne _02006CC0 +_02006CAC: + ldr r1, [sp, #0x0] + add r0, r7, #0x0 + bl sub_020065A4 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl sub_020169D8 + add r4, r0, #0x0 + b _02006CCE +_02006CC0: + bl sub_020065A4 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl sub_02016998 + add r4, r0, #0x0 +_02006CCE: + cmp r4, #0x0 + beq _02006D12 + ldr r2, [sp, #0x0] + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_020064F0 + cmp r5, #0x0 + beq _02006D12 + ldr r0, [sp, #0x18] + cmp r0, #0x0 + bne _02006CF2 + ldr r1, [r4, #0x0] + add r0, r6, #0x0 + lsr r1, r1, #0x8 + bl sub_02016998 + b _02006CFC +_02006CF2: + ldr r1, [r4, #0x0] + add r0, r6, #0x0 + lsr r1, r1, #0x8 + bl sub_020169D8 +_02006CFC: + add r5, r0, #0x0 + cmp r5, #0x0 + beq _02006D10 + add r0, r4, #0x0 + add r1, r5, #0x0 + blx sub_020CE528 + add r0, r4, #0x0 + bl sub_02016A18 +_02006D10: + add r4, r5, #0x0 +_02006D12: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02006D18 +sub_02006D18: ; 0x02006D18 + push {r3-r7, lr} + sub sp, #0x8 + ldr r5, [sp, #0x24] + str r0, [sp, #0x0] + str r1, [sp, #0x4] + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_020065A4 + str r0, [r5, #0x0] + cmp r6, #0x0 + bne _02006D36 + ldr r0, [sp, #0x20] + cmp r0, #0x1 + bne _02006D42 +_02006D36: + ldr r1, [r5, #0x0] + add r0, r7, #0x0 + bl sub_020169D8 + add r4, r0, #0x0 + b _02006D4C +_02006D42: + ldr r1, [r5, #0x0] + add r0, r7, #0x0 + bl sub_02016998 + add r4, r0, #0x0 +_02006D4C: + cmp r4, #0x0 + beq _02006D92 + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, r4, #0x0 + bl sub_020064F0 + cmp r6, #0x0 + beq _02006D92 + ldr r0, [r4, #0x0] + lsr r0, r0, #0x8 + str r0, [r5, #0x0] + ldr r0, [sp, #0x20] + cmp r0, #0x0 + bne _02006D74 + ldr r1, [r5, #0x0] + add r0, r7, #0x0 + bl sub_02016998 + b _02006D7C +_02006D74: + ldr r1, [r5, #0x0] + add r0, r7, #0x0 + bl sub_020169D8 +_02006D7C: + add r5, r0, #0x0 + cmp r5, #0x0 + beq _02006D90 + add r0, r4, #0x0 + add r1, r5, #0x0 + blx sub_020CE528 + add r0, r4, #0x0 + bl sub_02016A18 +_02006D90: + add r4, r5, #0x0 +_02006D92: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02006D98 +sub_02006D98: ; 0x02006D98 + push {r3-r7, lr} + sub sp, #0x10 + mov r1, #0xba + lsl r1, r1, #0x2 + add r5, r0, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0xa6 + lsl r0, r0, #0x2 + add r1, r0, #0x0 + add r3, r0, #0x0 + str r5, [r4, r0] + mov r2, #0x0 + add r1, #0x48 + strb r2, [r4, r1] + add r1, r0, #0x4 + str r2, [r4, r1] + mov r1, #0x2 + lsl r1, r1, #0xe + add r3, #0x8 + str r1, [r4, r3] + add r3, r0, #0x0 + add r3, #0xc + str r2, [r4, r3] + mov r2, #0x80 + add r0, #0x10 + str r2, [r4, r0] + add r0, r5, #0x0 + bl sub_02016998 + mov r1, #0xab + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, r5, #0x0 + mov r1, #0xc0 + bl sub_02016998 + mov r1, #0x2b + lsl r1, r1, #0x4 + str r0, [r4, r1] + ldr r1, [r4, r1] + mov r0, #0x0 + mov r2, #0x4 + blx sub_020CE240 + add r0, r5, #0x0 + mov r1, #0xc0 + bl sub_02016998 + mov r1, #0xad + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, [r4, r1] + mov r0, #0x0 + mov r2, #0x4 + blx sub_020CE240 + mov r6, #0x0 + add r5, r4, #0x0 + add r7, r6, #0x0 +_02006E12: + add r0, r7, #0x0 + add r1, r5, #0x0 + mov r2, #0x98 + blx sub_020CE240 + add r6, r6, #0x1 + add r5, #0x98 + cmp r6, #0x4 + blt _02006E12 + blx sub_020B02C8 + ldr r2, _02006EC8 ; =0x000002E3 + mov r0, #0x0 + strb r0, [r4, r2] + sub r2, #0x4b + ldr r2, [r4, r2] + mov r0, #0x75 + mov r1, #0xd3 + bl sub_0200650C + add r1, sp, #0xc + str r0, [sp, #0x4] + blx sub_020B0088 + ldr r0, [sp, #0xc] + mov r1, #0xaf + ldr r0, [r0, #0x4] + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [sp, #0xc] + ldr r2, [r0, #0x8] + add r0, r1, #0x4 + str r2, [r4, r0] + ldr r0, [sp, #0xc] + add r1, #0x8 + ldr r0, [r0, #0xc] + str r0, [r4, r1] + ldr r0, [sp, #0xc] + ldr r0, [r0, #0x14] + str r0, [sp, #0x8] + bl sub_02008A74 + ldr r1, [sp, #0x8] + mov r0, #0xab + lsl r0, r0, #0x2 + mov r2, #0x2 + ldrb r1, [r1, #0x0] + ldr r0, [r4, r0] + lsl r2, r2, #0xe + blx sub_020CE34C + mov r0, #0x0 + mov r7, #0xab + ldr r6, _02006ECC ; =0x00005050 + mov r12, r0 + str r0, [sp, #0x0] + add r3, r0, #0x0 + lsl r7, r7, #0x2 +_02006E86: + ldr r2, [sp, #0x8] + ldr r0, [sp, #0x0] + mov r1, #0x0 + add r2, r2, r0 +_02006E8E: + ldr r5, [r4, r7] + ldrb r0, [r2, #0x0] + add r5, r3, r5 + add r5, r1, r5 + add r1, r1, #0x1 + add r2, r2, #0x1 + strb r0, [r5, r6] + cmp r1, #0x28 + blt _02006E8E + ldr r0, [sp, #0x0] + add r3, #0x80 + add r0, #0x50 + str r0, [sp, #0x0] + mov r0, r12 + add r0, r0, #0x1 + mov r12, r0 + cmp r0, #0x50 + blt _02006E86 + ldr r0, [sp, #0x4] + bl sub_02016A18 + ldr r0, _02006ED0 ; =0x000002E1 + mov r1, #0x1 + strb r1, [r4, r0] + add r0, r0, #0x1 + strb r1, [r4, r0] + add r0, r4, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02006EC8: .word 0x000002E3 +_02006ECC: .word 0x00005050 +_02006ED0: .word 0x000002E1 + + thumb_func_start sub_02006ED4 +sub_02006ED4: ; 0x02006ED4 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + bl sub_020082A8 + add r0, r5, #0x0 + bl sub_020086F4 + blx sub_020BB394 + mov r6, #0x9f + mov r0, #0x0 + ldr r4, _02007250 ; =0x04000444 + lsl r6, r6, #0x2 + str r0, [r4, #0x0] + str r0, [sp, #0x18] + add r0, r6, #0x0 + sub r0, #0xc + ldr r1, [r5, r0] + add r3, r6, #0x0 + ldr r2, [r5, r6] + add r0, r6, #0x0 + sub r3, #0x8 + add r6, #0x20 + ldr r3, [r5, r3] + ldr r6, [r5, r6] + sub r0, #0x10 + ldr r0, [r5, r0] + lsr r6, r6, #0x3 + lsl r3, r3, #0x1a + orr r6, r3 + mov r3, #0x1 + lsl r3, r3, #0x1e + lsl r0, r0, #0x14 + orr r3, r6 + lsl r1, r1, #0x17 + orr r0, r3 + lsl r2, r2, #0x1d + orr r0, r1 + orr r0, r2 + str r0, [r4, #0x64] + ldr r0, [sp, #0x18] + add r4, r5, #0x0 + str r0, [sp, #0x14] + ldr r0, _02007254 ; =0x020ECD4C + str r0, [sp, #0x1c] +_02006F30: + ldr r0, [r4, #0x0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _02006F46 + ldr r0, [r4, #0x54] + lsl r1, r0, #0x1f + lsr r1, r1, #0x1f + bne _02006F46 + lsl r0, r0, #0x14 + lsr r0, r0, #0x1f + beq _02006F48 +_02006F46: + b _020072BC +_02006F48: + ldr r2, [r4, #0x68] + cmp r2, #0x0 + beq _02006F56 + add r1, r4, #0x0 + add r0, r4, #0x0 + add r1, #0x24 + blx r2 +_02006F56: + blx sub_020BB394 + ldr r0, _02007258 ; =0x000002E3 + ldrb r0, [r5, r0] + cmp r0, #0x1 + beq _02006F68 + ldr r0, _0200725C ; =0x04000454 + mov r1, #0x0 + str r1, [r0, #0x0] +_02006F68: + add r0, r4, #0x0 + bl sub_02007F48 + mov r0, #0x9d + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + cmp r0, #0x2 + bne _02006F7C + mov r0, #0x1 + b _02006F7E +_02006F7C: + mov r0, #0x0 +_02006F7E: + mov r1, #0xa9 + lsl r1, r1, #0x2 + ldr r2, [r5, r1] + ldr r1, [sp, #0x14] + add r2, r2, r1 + mov r1, #0x4 + sub r0, r1, r0 + add r1, r2, #0x0 + lsr r1, r0 + ldr r0, _02007260 ; =0x040004AC + str r1, [r0, #0x0] + ldr r0, [r4, #0x28] + lsl r1, r0, #0xc + mov r0, #0x26 + ldrsh r2, [r4, r0] + mov r0, #0x42 + ldrsh r0, [r4, r0] + add r0, r2, r0 + mov r2, #0x24 + ldrsh r3, [r4, r2] + mov r2, #0x40 + ldrsh r2, [r4, r2] + lsl r0, r0, #0xc + add r2, r3, r2 + lsl r3, r2, #0xc + ldr r2, _02007264 ; =0x04000470 + str r3, [r2, #0x0] + str r0, [r2, #0x0] + add r0, r2, #0x0 + str r1, [r0, #0x0] + ldrh r0, [r4, #0x38] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02007268 ; =0x020FFA38 + add r2, r0, r1 + ldrsh r0, [r0, r1] + mov r1, #0x2 + ldrsh r1, [r2, r1] + blx sub_020C8068 + ldrh r0, [r4, #0x3a] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02007268 ; =0x020FFA38 + add r2, r0, r1 + ldrsh r0, [r0, r1] + mov r1, #0x2 + ldrsh r1, [r2, r1] + blx sub_020C802C + ldrh r0, [r4, #0x3c] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02007268 ; =0x020FFA38 + add r2, r0, r1 + ldrsh r0, [r0, r1] + mov r1, #0x2 + ldrsh r1, [r2, r1] + blx sub_020C7FF0 + ldr r0, [r4, #0x28] + lsl r0, r0, #0xc + neg r1, r0 + mov r0, #0x26 + ldrsh r2, [r4, r0] + mov r0, #0x42 + ldrsh r0, [r4, r0] + add r0, r2, r0 + mov r2, #0x24 + ldrsh r3, [r4, r2] + mov r2, #0x40 + ldrsh r2, [r4, r2] + lsl r0, r0, #0xc + neg r0, r0 + add r2, r3, r2 + lsl r2, r2, #0xc + neg r3, r2 + ldr r2, _02007264 ; =0x04000470 + str r3, [r2, #0x0] + str r0, [r2, #0x0] + add r0, r2, #0x0 + str r1, [r0, #0x0] + ldr r3, [r4, #0x50] + lsl r0, r3, #0x11 + lsr r0, r0, #0x1b + lsl r2, r3, #0x16 + lsl r1, r0, #0xa + lsl r0, r3, #0x1b + lsr r2, r2, #0x1b + lsr r0, r0, #0x1b + lsl r2, r2, #0x5 + orr r0, r2 + orr r0, r1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + lsl r0, r3, #0x2 + lsr r0, r0, #0x1b + lsl r1, r0, #0xa + lsl r0, r3, #0xc + lsl r3, r3, #0x7 + lsr r3, r3, #0x1b + lsr r0, r0, #0x1b + lsl r3, r3, #0x5 + orr r0, r3 + orr r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + add r1, r2, #0x0 + orr r1, r0 + mov r0, #0x2 + lsl r0, r0, #0xe + orr r1, r0 + ldr r0, _0200726C ; =0x040004C0 + str r1, [r0, #0x0] + ldr r1, _02007270 ; =0x00004210 + add r0, r0, #0x4 + str r1, [r0, #0x0] + ldr r1, [r4, #0x0] + ldr r0, [r4, #0x54] + lsl r1, r1, #0x19 + lsl r0, r0, #0x19 + lsr r1, r1, #0x1a + lsr r0, r0, #0x1b + lsl r2, r1, #0x18 + mov r1, #0xc0 + lsl r0, r0, #0x10 + orr r1, r2 + orr r1, r0 + ldr r0, _02007274 ; =0x040004A4 + str r1, [r0, #0x0] + ldr r0, [r4, #0x54] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + beq _02007104 + add r0, r4, #0x0 + add r0, #0x5b + ldrb r0, [r0, #0x0] + add r2, r4, #0x0 + add r2, #0x44 + lsl r1, r0, #0x4 + ldr r0, [sp, #0x1c] + ldrb r3, [r2, #0x0] + add r0, r0, r1 + ldr r2, [sp, #0x1c] + ldr r0, [r0, #0x4] + ldr r1, [r2, r1] + add r6, r3, r1 + add r1, r4, #0x0 + add r1, #0x46 + ldrb r1, [r1, #0x0] + mov r12, r1 + add r1, r4, #0x0 + add r1, #0x45 + ldrb r2, [r1, #0x0] + add r1, r2, r0 + add r0, r4, #0x0 + add r0, #0x47 + ldrb r7, [r0, #0x0] + mov r0, r12 + add r0, r0, r6 + str r7, [sp, #0x0] + str r6, [sp, #0x4] + str r1, [sp, #0x8] + str r0, [sp, #0xc] + add r0, r7, r1 + str r0, [sp, #0x10] + mov r1, #0x24 + ldrsh r1, [r4, r1] + mov r0, #0x2c + ldrsh r0, [r4, r0] + sub r1, #0x28 + add r1, r1, r3 + add r0, r0, r1 + mov r3, #0x26 + ldrsh r3, [r4, r3] + mov r1, #0x2e + lsl r0, r0, #0x10 + sub r3, #0x28 + add r2, r3, r2 + ldrsh r1, [r4, r1] + ldr r3, [r4, #0x28] + asr r0, r0, #0x10 + add r2, r1, r2 + mov r1, #0x6e + ldrsb r1, [r4, r1] + sub r1, r2, r1 + ldr r2, [r4, #0x30] + lsl r1, r1, #0x10 + add r2, r3, r2 + asr r1, r1, #0x10 + mov r3, r12 + blx sub_020B0250 + b _02007174 +_02007104: + mov r0, #0x34 + ldrsh r1, [r4, r0] + mov r0, #0x50 + ldr r2, [sp, #0x1c] + mul r0, r1 + asr r3, r0, #0x8 + mov r0, #0x36 + ldrsh r1, [r4, r0] + mov r0, #0x50 + ldr r6, [sp, #0x1c] + mul r0, r1 + asr r1, r0, #0x8 + add r0, r4, #0x0 + add r0, #0x5b + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x4 + str r1, [sp, #0x0] + add r2, r2, r0 + ldr r0, [r6, r0] + lsr r6, r1, #0x1f + str r0, [sp, #0x4] + ldr r0, [r2, #0x4] + add r6, r1, r6 + str r0, [sp, #0x8] + ldr r0, [r2, #0x8] + asr r1, r6, #0x1 + str r0, [sp, #0xc] + ldr r0, [r2, #0xc] + str r0, [sp, #0x10] + mov r0, #0x24 + ldrsh r2, [r4, r0] + lsr r0, r3, #0x1f + add r0, r3, r0 + asr r0, r0, #0x1 + sub r2, r2, r0 + mov r0, #0x2c + ldrsh r0, [r4, r0] + ldr r6, [r4, #0x28] + add r0, r2, r0 + mov r2, #0x26 + ldrsh r2, [r4, r2] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + sub r2, r2, r1 + mov r1, #0x2e + ldrsh r1, [r4, r1] + add r2, r2, r1 + mov r1, #0x6e + ldrsb r1, [r4, r1] + sub r1, r2, r1 + ldr r2, [r4, #0x30] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add r2, r6, r2 + blx sub_020B0250 +_02007174: + add r0, r4, #0x0 + add r0, #0x6c + ldrh r0, [r0, #0x0] + lsl r1, r0, #0x1e + lsr r1, r1, #0x1e + beq _0200719A + lsl r0, r0, #0x19 + lsr r0, r0, #0x1e + beq _0200719A + ldr r0, [r4, #0x54] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + bne _0200719A + mov r0, #0xb9 + lsl r0, r0, #0x2 + ldr r1, [r5, r0] + mov r0, #0x1 + tst r0, r1 + beq _0200719C +_0200719A: + b _020072BC +_0200719C: + ldr r0, _02007258 ; =0x000002E3 + ldrb r0, [r5, r0] + cmp r0, #0x1 + beq _020071AA + ldr r0, _0200725C ; =0x04000454 + mov r1, #0x0 + str r1, [r0, #0x0] +_020071AA: + mov r0, #0x9d + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + cmp r0, #0x2 + bne _020071B8 + mov r1, #0x1 + b _020071BA +_020071B8: + mov r1, #0x0 +_020071BA: + add r2, r4, #0x0 + add r2, #0x6c + ldrh r2, [r2, #0x0] + mov r0, #0xa9 + lsl r0, r0, #0x2 + lsl r2, r2, #0x1e + lsr r2, r2, #0x1e + add r2, r2, #0x3 + ldr r0, [r5, r0] + lsl r2, r2, #0x5 + add r2, r0, r2 + mov r0, #0x4 + sub r0, r0, r1 + add r1, r2, #0x0 + lsr r1, r0 + ldr r0, _02007260 ; =0x040004AC + str r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x6c + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + beq _020071FA + mov r0, #0x34 + ldrsh r0, [r4, r0] + lsl r0, r0, #0x6 + asr r3, r0, #0x8 + mov r0, #0x36 + ldrsh r0, [r4, r0] + lsl r0, r0, #0x4 + asr r1, r0, #0x8 + b _020071FE +_020071FA: + mov r3, #0x40 + mov r1, #0x10 +_020071FE: + add r0, r4, #0x0 + add r0, #0x6c + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x1d + lsr r0, r0, #0x1f + beq _02007220 + mov r0, #0x74 + ldrsh r2, [r4, r0] + mov r0, #0x24 + mov r6, #0x2c + ldrsh r0, [r4, r0] + ldrsh r6, [r4, r6] + add r0, r0, r6 + add r2, r2, r0 + add r0, r4, #0x0 + add r0, #0x70 + strh r2, [r0, #0x0] +_02007220: + add r0, r4, #0x0 + add r0, #0x6c + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1f + beq _02007242 + mov r0, #0x76 + ldrsh r2, [r4, r0] + mov r0, #0x26 + mov r6, #0x2e + ldrsh r0, [r4, r0] + ldrsh r6, [r4, r6] + add r0, r0, r6 + add r2, r2, r0 + add r0, r4, #0x0 + add r0, #0x72 + strh r2, [r0, #0x0] +_02007242: + add r0, r4, #0x0 + add r0, #0x6c + ldrh r0, [r0, #0x0] + ldr r2, _02007278 ; =0x020ECBD0 + ldr r6, _02007278 ; =0x020ECBD0 + b _0200727C + nop +_02007250: .word 0x04000444 +_02007254: .word 0x020ECD4C +_02007258: .word 0x000002E3 +_0200725C: .word 0x04000454 +_02007260: .word 0x040004AC +_02007264: .word 0x04000470 +_02007268: .word 0x020FFA38 +_0200726C: .word 0x040004C0 +_02007270: .word 0x00004210 +_02007274: .word 0x040004A4 +_02007278: .word 0x020ECBD0 +_0200727C: + lsl r0, r0, #0x19 + lsr r0, r0, #0x1e + lsl r0, r0, #0x4 + str r1, [sp, #0x0] + add r2, r2, r0 + ldr r0, [r6, r0] + lsr r6, r1, #0x1f + str r0, [sp, #0x4] + ldr r0, [r2, #0x4] + add r6, r1, r6 + str r0, [sp, #0x8] + ldr r0, [r2, #0x8] + asr r1, r6, #0x1 + str r0, [sp, #0xc] + ldr r0, [r2, #0xc] + str r0, [sp, #0x10] + mov r0, #0x70 + ldrsh r2, [r4, r0] + lsr r0, r3, #0x1f + add r0, r3, r0 + asr r0, r0, #0x1 + sub r0, r2, r0 + mov r2, #0x72 + ldrsh r2, [r4, r2] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + sub r1, r2, r1 + lsl r1, r1, #0x10 + ldr r2, _020072E0 ; =0xFFFFFC18 + asr r1, r1, #0x10 + blx sub_020B0250 +_020072BC: + ldr r0, [sp, #0x14] + add r4, #0x98 + add r0, #0x20 + str r0, [sp, #0x14] + ldr r0, [sp, #0x1c] + add r0, #0x20 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + add r0, r0, #0x1 + str r0, [sp, #0x18] + cmp r0, #0x4 + bge _020072D6 + b _02006F30 +_020072D6: + ldr r0, _020072E4 ; =0x04000448 + mov r1, #0x1 + str r1, [r0, #0x0] + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 +_020072E0: .word 0xFFFFFC18 +_020072E4: .word 0x04000448 + + thumb_func_start sub_020072E8 +sub_020072E8: ; 0x020072E8 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0xab + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + mov r0, #0x2b + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_02016A18 + mov r0, #0xad + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02007314 +sub_02007314: ; 0x02007314 + push {r3-r4} + add r1, r0, #0x0 + mov r3, #0x0 + add r1, #0x59 + strb r3, [r1, #0x0] + add r1, r3, #0x0 +_02007320: + add r2, r0, r3 + add r2, #0x5c + add r3, r3, #0x1 + strb r1, [r2, #0x0] + cmp r3, #0xa + blt _02007320 + add r2, r0, #0x0 + add r2, #0x59 + ldrb r2, [r2, #0x0] + lsl r2, r2, #0x1 + add r3, r0, r2 + mov r2, #0x84 + ldrsb r4, [r3, r2] + add r3, r2, #0x0 + sub r3, #0x85 + cmp r4, r3 + bne _0200734A + add r0, #0x5b + strb r1, [r0, #0x0] + pop {r3-r4} + bx lr +_0200734A: + add r1, r0, #0x0 + mov r3, #0x1 + add r1, #0x58 + strb r3, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x59 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x1 + add r1, r0, r1 + ldrsb r2, [r1, r2] + add r1, r0, #0x0 + add r1, #0x5b + strb r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x59 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x1 + add r1, r0, r1 + add r1, #0x85 + ldrb r1, [r1, #0x0] + add r0, #0x5a + strb r1, [r0, #0x0] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_0200737C +sub_0200737C: ; 0x0200737C + add r2, r0, #0x0 + ldr r3, _0200738C ; =sub_020CE3E0 + add r2, #0x84 + add r0, r1, #0x0 + add r1, r2, #0x0 + mov r2, #0x14 + bx r3 + nop +_0200738C: .word sub_020CE3E0 + + thumb_func_start sub_02007390 +sub_02007390: ; 0x02007390 + add r0, #0x58 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0200739C + mov r0, #0x1 + bx lr +_0200739C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020073A0 +sub_020073A0: ; 0x020073A0 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x14] + mov r4, #0x0 +_020073AE: + ldr r1, [r0, #0x0] + lsl r1, r1, #0x1f + lsr r1, r1, #0x1f + beq _020073BE + add r4, r4, #0x1 + add r0, #0x98 + cmp r4, #0x4 + blt _020073AE +_020073BE: + cmp r4, #0x4 + bne _020073C6 + bl sub_02020C2C +_020073C6: + ldr r0, [sp, #0x30] + ldr r3, [sp, #0x14] + str r0, [sp, #0x0] + ldr r0, [sp, #0x34] + add r1, r6, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x38] + str r4, [sp, #0x8] + str r0, [sp, #0xc] + ldr r0, [sp, #0x3c] + add r2, r7, #0x0 + str r0, [sp, #0x10] + add r0, r5, #0x0 + bl sub_020073E8 + add sp, #0x18 + pop {r3-r7, pc} + + thumb_func_start sub_020073E8 +sub_020073E8: ; 0x020073E8 + push {r4-r7, lr} + sub sp, #0xc + str r1, [sp, #0x8] + ldr r1, [sp, #0x28] + add r4, r0, #0x0 + mov r0, #0x98 + add r6, r1, #0x0 + mul r6, r0 + ldr r0, [r4, r6] + str r2, [sp, #0x0] + lsl r0, r0, #0x1f + str r3, [sp, #0x4] + lsr r0, r0, #0x1f + beq _02007408 + bl sub_02020C2C +_02007408: + add r5, r4, r6 + mov r0, #0x0 + add r1, r5, #0x0 + mov r2, #0x98 + blx sub_020CE240 + ldr r1, [r4, r6] + mov r0, #0x1 + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + str r0, [r4, r6] + ldr r1, [r4, r6] + mov r0, #0x80 + orr r0, r1 + str r0, [r4, r6] + mov r0, #0x80 + ldr r1, [r4, r6] + add r0, #0x80 + orr r0, r1 + str r0, [r4, r6] + add r2, r5, #0x0 + ldr r0, [r4, r6] + mov r1, #0x7e + bic r0, r1 + ldr r1, [sp, #0x24] + add r7, r2, #0x4 + lsl r1, r1, #0x1a + lsr r1, r1, #0x19 + orr r0, r1 + str r0, [r4, r6] + ldr r0, [sp, #0x8] + mov r12, r0 + mov r3, r12 + ldmia r3!, {r0-r1} + stmia r7!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r7!, {r0-r1} + add r7, r2, #0x0 + ldr r3, [sp, #0x8] + add r7, #0x14 + ldmia r3!, {r0-r1} + stmia r7!, {r0-r1} + str r3, [sp, #0x8] + ldmia r3!, {r0-r1} + stmia r7!, {r0-r1} + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + lsl r1, r1, #0x10 + asr r7, r1, #0x10 + strh r0, [r2, #0x24] + str r3, [sp, #0x8] + ldr r1, [sp, #0x20] + strh r7, [r2, #0x26] + str r1, [r2, #0x28] + mov r1, #0x80 + add r1, #0x80 + strh r1, [r2, #0x34] + strh r1, [r2, #0x36] + ldr r1, [r5, #0x54] + mov r3, #0x7c + bic r1, r3 + mov r3, #0x7c + orr r1, r3 + str r1, [r5, #0x54] + ldr r1, [r5, #0x50] + mov r3, #0x1f + bic r1, r3 + mov r3, #0x1f + orr r3, r1 + ldr r1, _02007520 ; =0xFFFFFC1F + and r1, r3 + mov r3, #0x1f + lsl r3, r3, #0x5 + orr r3, r1 + ldr r1, _02007524 ; =0xFFFF83FF + and r1, r3 + mov r3, #0x1f + lsl r3, r3, #0xa + orr r3, r1 + ldr r1, _02007528 ; =0xFFF07FFF + and r1, r3 + mov r3, #0x80 + lsl r3, r3, #0xc + orr r3, r1 + ldr r1, _0200752C ; =0xFE0FFFFF + and r1, r3 + mov r3, #0x80 + lsl r3, r3, #0x11 + orr r3, r1 + ldr r1, _02007530 ; =0xC1FFFFFF + and r1, r3 + mov r3, #0x80 + lsl r3, r3, #0x16 + orr r1, r3 + str r1, [r5, #0x50] + ldr r1, [sp, #0x30] + str r1, [r2, #0x68] + add r1, r2, #0x0 + add r1, #0x70 + strh r0, [r1, #0x0] + add r2, #0x72 + add r0, r5, #0x0 + strh r7, [r2, #0x0] + add r0, #0x6c + ldrh r1, [r0, #0x0] + mov r0, #0x4 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x6c + strh r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x6c + ldrh r1, [r0, #0x0] + mov r0, #0x8 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x6c + strh r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x6c + ldrh r1, [r0, #0x0] + mov r0, #0x10 + add r5, #0x6c + orr r0, r1 + strh r0, [r5, #0x0] + ldr r0, [sp, #0x2c] + cmp r0, #0x0 + beq _02007518 + add r1, r4, r6 + add r1, #0x84 + mov r2, #0x14 + blx sub_020CE3E0 +_02007518: + add r0, r4, r6 + add sp, #0xc + pop {r4-r7, pc} + nop +_02007520: .word 0xFFFFFC1F +_02007524: .word 0xFFFF83FF +_02007528: .word 0xFFF07FFF +_0200752C: .word 0xFE0FFFFF +_02007530: .word 0xC1FFFFFF + + thumb_func_start sub_02007534 +sub_02007534: ; 0x02007534 + ldr r2, [r0, #0x0] + mov r1, #0x1 + bic r2, r1 + str r2, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02007540 +sub_02007540: ; 0x02007540 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_02007546: + add r0, r5, #0x0 + bl sub_02007534 + add r4, r4, #0x1 + add r5, #0x98 + cmp r4, #0x4 + blt _02007546 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02007558 +sub_02007558: ; 0x02007558 + cmp r1, #0x2e + bls _0200755E + b _02007800 +_0200755E: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r3, #0x1 + lsl r0, r4, #0x1 + lsl r4, r4, #0x1 + lsl r0, r5, #0x1 + lsl r4, r5, #0x1 + lsl r0, r6, #0x1 + lsl r4, r6, #0x1 + lsl r4, r0, #0x2 + lsl r0, r1, #0x2 + lsl r4, r1, #0x2 + lsl r0, r2, #0x2 + lsl r6, r2, #0x2 + lsl r4, r3, #0x2 + lsl r0, r4, #0x2 + lsl r4, r4, #0x2 + lsl r4, r6, #0x2 + lsl r2, r7, #0x2 + lsl r0, r0, #0x3 + lsl r6, r0, #0x3 + lsl r4, r1, #0x3 + lsl r2, r2, #0x3 + lsl r0, r3, #0x3 + lsl r6, r3, #0x3 + lsl r4, r4, #0x3 + lsl r4, r6, #0x3 + lsl r4, r0, #0x4 + lsl r4, r2, #0x4 + lsl r4, r4, #0x4 + lsl r4, r6, #0x4 + lsl r4, r0, #0x5 + lsl r4, r2, #0x5 + lsl r6, r5, #0x5 + lsl r4, r7, #0x5 + lsl r6, r1, #0x6 + lsl r0, r4, #0x6 + lsl r6, r4, #0x6 + lsl r6, r7, #0x6 + lsl r6, r2, #0x7 + lsl r6, r4, #0x7 + lsl r4, r2, #0xa + lsl r4, r5, #0x7 + lsl r4, r0, #0x8 + lsl r2, r1, #0x8 + lsl r6, r5, #0x8 + lsl r0, r1, #0x9 + lsl r2, r4, #0x9 + lsl r4, r7, #0x9 + strh r2, [r0, #0x24] + bx lr +_020075CC: + .byte 0xC2, 0x84, 0x70, 0x47 + .byte 0x82, 0x62, 0x70, 0x47, 0x82, 0x85, 0x70, 0x47, 0xC2, 0x85, 0x70, 0x47, 0x02, 0x63, 0x70, 0x47 + .byte 0x43, 0x6D, 0x01, 0x21, 0x8B, 0x43, 0x01, 0x21, 0x11, 0x40, 0x19, 0x43, 0x41, 0x65, 0x70, 0x47 + .byte 0x02, 0x87, 0x70, 0x47, 0x42, 0x87, 0x70, 0x47, 0x82, 0x87, 0x70, 0x47, 0x40, 0x30, 0x02, 0x80 + .byte 0x70, 0x47, 0x42, 0x30, 0x02, 0x80, 0x70, 0x47, 0x82, 0x86, 0x70, 0x47, 0xC2, 0x86, 0x70, 0x47 + .byte 0x43, 0x6D, 0x02, 0x21, 0x8B, 0x43, 0xD1, 0x07, 0x89, 0x0F, 0x19, 0x43, 0x41, 0x65, 0x70, 0x47 + .byte 0x44, 0x30, 0x02, 0x70, 0x70, 0x47, 0x45, 0x30, 0x02, 0x70, 0x70, 0x47, 0x46, 0x30, 0x02, 0x70 + .byte 0x70, 0x47, 0x47, 0x30, 0x02, 0x70, 0x70, 0x47, 0x70, 0x30, 0x02, 0x80, 0x70, 0x47, 0x72, 0x30 + .byte 0x02, 0x80, 0x70, 0x47, 0x74, 0x30, 0x02, 0x80, 0x70, 0x47, 0x76, 0x30, 0x02, 0x80, 0x70, 0x47 + .byte 0x43, 0x6D, 0x7C, 0x21, 0x8B, 0x43, 0xD1, 0x06, 0x49, 0x0E, 0x19, 0x43, 0x41, 0x65, 0x70, 0x47 + .byte 0x03, 0x6D, 0x1F, 0x21, 0x8B, 0x43, 0x1F, 0x21, 0x11, 0x40, 0x19, 0x43, 0x01, 0x65, 0x70, 0x47 + .byte 0x03, 0x6D, 0x64, 0x49, 0x0B, 0x40, 0xD1, 0x06, 0x89, 0x0D, 0x19, 0x43, 0x01, 0x65, 0x70, 0x47 + .byte 0x03, 0x6D, 0x61, 0x49, 0x0B, 0x40, 0xD1, 0x06, 0x49, 0x0C, 0x19, 0x43, 0x01, 0x65, 0x70, 0x47 + .byte 0x03, 0x6D, 0x5E, 0x49, 0x0B, 0x40, 0xD1, 0x06, 0x09, 0x0B, 0x19, 0x43, 0x01, 0x65, 0x70, 0x47 + .byte 0x03, 0x6D, 0x5B, 0x49, 0x0B, 0x40, 0xD1, 0x06, 0xC9, 0x09, 0x19, 0x43, 0x01, 0x65, 0x70, 0x47 + .byte 0x03, 0x6D, 0x58, 0x49, 0x0B, 0x40, 0xD1, 0x06, 0x89, 0x08, 0x19, 0x43, 0x01, 0x65, 0x70, 0x47 + .byte 0x43, 0x6D, 0x55, 0x49, 0x0B, 0x40, 0xD1, 0x07, 0xC9, 0x0C, 0x19, 0x43, 0x41, 0x65, 0x01, 0x21 + .byte 0x02, 0x68, 0x09, 0x02, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0xC2, 0x64, 0x01, 0x21, 0x02, 0x68 + .byte 0x09, 0x02, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0x01, 0x1C, 0x48, 0x31, 0x0A, 0x70, 0x01, 0x21 + .byte 0x02, 0x68, 0x09, 0x02, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0x01, 0x1C, 0x49, 0x31, 0x0A, 0x70 + .byte 0x01, 0x21, 0x02, 0x68, 0x09, 0x02, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0x4A, 0x30, 0x02, 0x70 + .byte 0x70, 0x47, 0x43, 0x6D, 0x41, 0x49, 0x0B, 0x40, 0xD1, 0x07, 0x89, 0x0D, 0x19, 0x43, 0x41, 0x65 + .byte 0x02, 0x68, 0x80, 0x21, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0x43, 0x6D, 0x3C, 0x49, 0x0B, 0x40 + .byte 0xD1, 0x07, 0x49, 0x0D, 0x19, 0x43, 0x41, 0x65, 0x02, 0x68, 0x80, 0x21, 0x11, 0x43, 0x01, 0x60 + .byte 0x70, 0x47, 0x43, 0x6D, 0x37, 0x49, 0x0B, 0x40, 0xD1, 0x07, 0x09, 0x0D, 0x19, 0x43, 0x41, 0x65 + .byte 0x70, 0x47, 0x5B, 0x30, 0x02, 0x70, 0x70, 0x47, 0x43, 0x6D, 0x33, 0x49, 0x0B, 0x40, 0x11, 0x07 + .byte 0xC9, 0x0B, 0x19, 0x43, 0x41, 0x65, 0x02, 0x68, 0x80, 0x21, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47 + .byte 0x6E, 0x30, 0x02, 0x70, 0x70, 0x47, 0x01, 0x1C, 0x6C, 0x31, 0x0B, 0x88, 0x03, 0x21, 0x8B, 0x43 + .byte 0x11, 0x04, 0x09, 0x0C, 0x03, 0x22, 0x11, 0x40, 0x0B, 0x43, 0x01, 0x1C, 0x6C, 0x31, 0x0B, 0x80 + .byte 0x01, 0x68, 0xFD, 0x32, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0x01, 0x1C, 0x6C, 0x31, 0x0B, 0x88 + .byte 0x04, 0x21, 0x6C, 0x30, 0x8B, 0x43, 0x11, 0x04, 0x09, 0x0C, 0xC9, 0x07, 0x49, 0x0F, 0x19, 0x43 + .byte 0x01, 0x80, 0x70, 0x47, 0x01, 0x1C, 0x6C, 0x31, 0x0B, 0x88, 0x08, 0x21, 0x6C, 0x30, 0x8B, 0x43 + .byte 0x11, 0x04, 0x09, 0x0C, 0xC9, 0x07, 0x09, 0x0F, 0x19, 0x43, 0x01, 0x80, 0x70, 0x47, 0x01, 0x1C + .byte 0x6C, 0x31, 0x0B, 0x88, 0x10, 0x21, 0x6C, 0x30, 0x8B, 0x43, 0x11, 0x04, 0x09, 0x0C, 0xC9, 0x07 + .byte 0xC9, 0x0E, 0x19, 0x43, 0x01, 0x80, 0x70, 0x47, 0x01, 0x1C, 0x6C, 0x31, 0x0B, 0x88, 0x60, 0x21 + .byte 0x6C, 0x30, 0x8B, 0x43, 0x11, 0x04, 0x09, 0x0C, 0x89, 0x07, 0x49, 0x0E, 0x19, 0x43, 0x01, 0x80 +_02007800: + bx lr + nop +_02007804: + .byte 0x1F, 0xFC, 0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFF, 0x7F, 0xF0, 0xFF + .byte 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF + .byte 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0x1F, 0xFE, 0xFF + + thumb_func_start sub_0200782C +sub_0200782C: ; 0x0200782C + push {r3, lr} + cmp r1, #0x2e + bls _02007834 + b _020079D6 +_02007834: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r3, #0x1 + lsl r2, r4, #0x1 + lsl r0, r5, #0x1 + lsl r4, r5, #0x1 + lsl r2, r6, #0x1 + lsl r0, r7, #0x1 + lsl r4, r7, #0x1 + lsl r4, r0, #0x2 + lsl r0, r1, #0x2 + lsl r4, r1, #0x2 + lsl r0, r2, #0x2 + lsl r6, r2, #0x2 + lsl r4, r3, #0x2 + lsl r2, r4, #0x2 + lsl r0, r5, #0x2 + lsl r0, r6, #0x2 + lsl r6, r6, #0x2 + lsl r4, r7, #0x2 + lsl r2, r0, #0x3 + lsl r0, r1, #0x3 + lsl r6, r1, #0x3 + lsl r4, r2, #0x3 + lsl r2, r3, #0x3 + lsl r0, r4, #0x3 + lsl r0, r5, #0x3 + lsl r0, r6, #0x3 + lsl r0, r7, #0x3 + lsl r0, r0, #0x4 + lsl r0, r1, #0x4 + lsl r0, r2, #0x4 + lsl r0, r3, #0x4 + lsl r0, r4, #0x4 + lsl r4, r4, #0x4 + lsl r2, r5, #0x4 + lsl r0, r6, #0x4 + lsl r6, r6, #0x4 + lsl r6, r7, #0x4 + lsl r6, r0, #0x5 + lsl r6, r1, #0x5 + lsl r4, r2, #0x6 + lsl r4, r2, #0x5 + lsl r4, r3, #0x5 + lsl r2, r4, #0x5 + lsl r4, r5, #0x5 + lsl r6, r6, #0x5 + lsl r0, r0, #0x6 + lsl r2, r1, #0x6 + mov r1, #0x24 + ldrsh r0, [r0, r1] + pop {r3, pc} +_020078A4: + .byte 0x26, 0x21, 0x40, 0x5E, 0x08, 0xBD, 0x80, 0x6A, 0x08, 0xBD, 0x2C, 0x21 + .byte 0x40, 0x5E, 0x08, 0xBD, 0x2E, 0x21, 0x40, 0x5E, 0x08, 0xBD, 0x00, 0x6B, 0x08, 0xBD, 0x40, 0x6D + .byte 0xC0, 0x07, 0xC0, 0x0F, 0x08, 0xBD, 0x00, 0x8F, 0x08, 0xBD, 0x40, 0x8F, 0x08, 0xBD, 0x80, 0x8F + .byte 0x08, 0xBD, 0x40, 0x21, 0x40, 0x5E, 0x08, 0xBD, 0x42, 0x21, 0x40, 0x5E, 0x08, 0xBD, 0x34, 0x21 + .byte 0x40, 0x5E, 0x08, 0xBD, 0x36, 0x21, 0x40, 0x5E, 0x08, 0xBD, 0x40, 0x6D, 0x80, 0x07, 0xC0, 0x0F + .byte 0x08, 0xBD, 0x44, 0x30, 0x00, 0x78, 0x08, 0xBD, 0x45, 0x30, 0x00, 0x78, 0x08, 0xBD, 0x46, 0x30 + .byte 0x00, 0x78, 0x08, 0xBD, 0x47, 0x30, 0x00, 0x78, 0x08, 0xBD, 0x70, 0x21, 0x40, 0x5E, 0x08, 0xBD + .byte 0x72, 0x21, 0x40, 0x5E, 0x08, 0xBD, 0x74, 0x21, 0x40, 0x5E, 0x08, 0xBD, 0x76, 0x21, 0x40, 0x5E + .byte 0x08, 0xBD, 0x40, 0x6D, 0x40, 0x06, 0xC0, 0x0E, 0x08, 0xBD, 0x00, 0x6D, 0xC0, 0x06, 0xC0, 0x0E + .byte 0x08, 0xBD, 0x00, 0x6D, 0x80, 0x05, 0xC0, 0x0E, 0x08, 0xBD, 0x00, 0x6D, 0x40, 0x04, 0xC0, 0x0E + .byte 0x08, 0xBD, 0x00, 0x6D, 0x00, 0x03, 0xC0, 0x0E, 0x08, 0xBD, 0x00, 0x6D, 0xC0, 0x01, 0xC0, 0x0E + .byte 0x08, 0xBD, 0x00, 0x6D, 0x80, 0x00, 0xC0, 0x0E, 0x08, 0xBD, 0x40, 0x6D, 0xC0, 0x04, 0xC0, 0x0F + .byte 0x08, 0xBD, 0xC0, 0x6C, 0x08, 0xBD, 0x48, 0x30, 0x00, 0x78, 0x08, 0xBD, 0x49, 0x30, 0x00, 0x78 + .byte 0x08, 0xBD, 0x4A, 0x30, 0x00, 0x78, 0x08, 0xBD, 0x40, 0x6D, 0x80, 0x05, 0xC0, 0x0F, 0x08, 0xBD + .byte 0x40, 0x6D, 0x40, 0x05, 0xC0, 0x0F, 0x08, 0xBD, 0x40, 0x6D, 0x00, 0x05, 0xC0, 0x0F, 0x08, 0xBD + .byte 0x5B, 0x30, 0x00, 0x78, 0x08, 0xBD, 0x40, 0x6D, 0xC0, 0x03, 0x00, 0x0F, 0x08, 0xBD, 0x6E, 0x21 + .byte 0x40, 0x56, 0x08, 0xBD, 0x6C, 0x30, 0x00, 0x88, 0x80, 0x07, 0x80, 0x0F, 0x08, 0xBD, 0x6C, 0x30 + .byte 0x00, 0x88, 0x40, 0x07, 0xC0, 0x0F, 0x08, 0xBD, 0x6C, 0x30, 0x00, 0x88, 0x00, 0x07, 0xC0, 0x0F + .byte 0x08, 0xBD, 0x6C, 0x30, 0x00, 0x88, 0xC0, 0x06, 0xC0, 0x0F, 0x08, 0xBD, 0x6C, 0x30, 0x00, 0x88 + .byte 0x40, 0x06, 0x80, 0x0F, 0x08, 0xBD +_020079D6: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020079E0 +sub_020079E0: ; 0x020079E0 + push {r3-r4} + add r3, r0, #0x0 + add r0, r2, #0x0 + cmp r1, #0x2e + bls _020079EC + b _02007E12 +_020079EC: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r3, #0x1 + lsl r0, r5, #0x1 + lsl r4, r6, #0x1 + lsl r6, r7, #0x1 + lsl r2, r1, #0x2 + lsl r6, r2, #0x2 + lsl r0, r4, #0x2 + lsl r2, r7, #0x2 + lsl r4, r0, #0x3 + lsl r6, r1, #0x3 + lsl r0, r3, #0x3 + lsl r6, r4, #0x3 + lsl r4, r6, #0x3 + lsl r0, r0, #0x4 + lsl r4, r1, #0x4 + lsl r6, r4, #0x4 + lsl r6, r6, #0x4 + lsl r6, r0, #0x5 + lsl r6, r2, #0x5 + lsl r6, r4, #0x5 + lsl r4, r6, #0x5 + lsl r2, r0, #0x6 + lsl r0, r2, #0x6 + lsl r6, r3, #0x6 + lsl r0, r7, #0x6 + lsl r2, r2, #0x7 + lsl r2, r5, #0x7 + lsl r2, r0, #0x8 + lsl r2, r3, #0x8 + lsl r2, r6, #0x8 + lsl r2, r1, #0x9 + lsl r4, r5, #0x9 + lsl r0, r0, #0xa + lsl r4, r3, #0xa + lsl r0, r7, #0xa + lsl r0, r1, #0xb + lsl r0, r5, #0xb + lsl r0, r1, #0xc + lsl r0, r4, #0xc + lsl r0, r3, #0x10 + lsl r0, r6, #0xc + lsl r0, r2, #0xd + lsl r6, r3, #0xd + lsl r4, r1, #0xe + lsl r0, r6, #0xe + lsl r4, r2, #0xf + lsl r0, r7, #0xf + mov r1, #0x24 + ldrsh r1, [r3, r1] + add r0, r1, r0 + strh r0, [r3, #0x24] + pop {r3-r4} + bx lr +_02007A62: + .byte 0x26, 0x21, 0x59, 0x5E, 0x08, 0x18, 0xD8, 0x84, 0x18, 0xBC, 0x70, 0x47, 0x99, 0x6A + .byte 0x08, 0x18, 0x98, 0x62, 0x18, 0xBC, 0x70, 0x47, 0x2C, 0x21, 0x59, 0x5E, 0x08, 0x18, 0x98, 0x85 + .byte 0x18, 0xBC, 0x70, 0x47, 0x2E, 0x21, 0x59, 0x5E, 0x08, 0x18, 0xD8, 0x85, 0x18, 0xBC, 0x70, 0x47 + .byte 0x19, 0x6B, 0x08, 0x18, 0x18, 0x63, 0x18, 0xBC, 0x70, 0x47, 0x5C, 0x6D, 0x01, 0x22, 0x21, 0x1C + .byte 0x91, 0x43, 0xE2, 0x07, 0xD2, 0x0F, 0x12, 0x18, 0x01, 0x20, 0x10, 0x40, 0x08, 0x43, 0x58, 0x65 + .byte 0x18, 0xBC, 0x70, 0x47, 0x19, 0x8F, 0x08, 0x18, 0x18, 0x87, 0x18, 0xBC, 0x70, 0x47, 0x59, 0x8F + .byte 0x08, 0x18, 0x58, 0x87, 0x18, 0xBC, 0x70, 0x47, 0x99, 0x8F, 0x08, 0x18, 0x98, 0x87, 0x18, 0xBC + .byte 0x70, 0x47, 0x40, 0x21, 0x59, 0x5E, 0x40, 0x33, 0x08, 0x18, 0x18, 0x80, 0x18, 0xBC, 0x70, 0x47 + .byte 0x42, 0x21, 0x59, 0x5E, 0x42, 0x33, 0x08, 0x18, 0x18, 0x80, 0x18, 0xBC, 0x70, 0x47, 0x34, 0x21 + .byte 0x59, 0x5E, 0x08, 0x18, 0x98, 0x86, 0x18, 0xBC, 0x70, 0x47, 0x36, 0x21, 0x59, 0x5E, 0x08, 0x18 + .byte 0xD8, 0x86, 0x18, 0xBC, 0x70, 0x47, 0x5C, 0x6D, 0x02, 0x22, 0x21, 0x1C, 0x91, 0x43, 0xA2, 0x07 + .byte 0xD2, 0x0F, 0x10, 0x18, 0xC0, 0x07, 0x80, 0x0F, 0x08, 0x43, 0x58, 0x65, 0x18, 0xBC, 0x70, 0x47 + .byte 0x19, 0x1C, 0x44, 0x31, 0x09, 0x78, 0x44, 0x33, 0x08, 0x18, 0x18, 0x70, 0x18, 0xBC, 0x70, 0x47 + .byte 0x19, 0x1C, 0x45, 0x31, 0x09, 0x78, 0x45, 0x33, 0x08, 0x18, 0x18, 0x70, 0x18, 0xBC, 0x70, 0x47 + .byte 0x19, 0x1C, 0x46, 0x31, 0x09, 0x78, 0x46, 0x33, 0x08, 0x18, 0x18, 0x70, 0x18, 0xBC, 0x70, 0x47 + .byte 0x19, 0x1C, 0x47, 0x31, 0x09, 0x78, 0x47, 0x33, 0x08, 0x18, 0x18, 0x70, 0x18, 0xBC, 0x70, 0x47 + .byte 0x70, 0x21, 0x59, 0x5E, 0x70, 0x33, 0x08, 0x18, 0x18, 0x80, 0x18, 0xBC, 0x70, 0x47, 0x72, 0x21 + .byte 0x59, 0x5E, 0x72, 0x33, 0x08, 0x18, 0x18, 0x80, 0x18, 0xBC, 0x70, 0x47, 0x74, 0x21, 0x59, 0x5E + .byte 0x74, 0x33, 0x08, 0x18, 0x18, 0x80, 0x18, 0xBC, 0x70, 0x47, 0x76, 0x21, 0x59, 0x5E, 0x76, 0x33 + .byte 0x08, 0x18, 0x18, 0x80, 0x18, 0xBC, 0x70, 0x47, 0x5C, 0x6D, 0x7C, 0x22, 0x21, 0x1C, 0x91, 0x43 + .byte 0x62, 0x06, 0xD2, 0x0E, 0x10, 0x18, 0xC0, 0x06, 0x40, 0x0E, 0x08, 0x43, 0x58, 0x65, 0x18, 0xBC + .byte 0x70, 0x47, 0x1C, 0x6D, 0x1F, 0x22, 0x21, 0x1C, 0x91, 0x43, 0xE2, 0x06, 0xD2, 0x0E, 0x12, 0x18 + .byte 0x1F, 0x20, 0x10, 0x40, 0x08, 0x43, 0x18, 0x65, 0x18, 0xBC, 0x70, 0x47, 0x1A, 0x6D, 0x92, 0x49 + .byte 0x11, 0x40, 0x92, 0x05, 0xD2, 0x0E, 0x10, 0x18, 0xC0, 0x06, 0x80, 0x0D, 0x08, 0x43, 0x18, 0x65 + .byte 0x18, 0xBC, 0x70, 0x47, 0x1A, 0x6D, 0x8D, 0x49, 0x11, 0x40, 0x52, 0x04, 0xD2, 0x0E, 0x10, 0x18 + .byte 0xC0, 0x06, 0x40, 0x0C, 0x08, 0x43, 0x18, 0x65, 0x18, 0xBC, 0x70, 0x47, 0x1A, 0x6D, 0x88, 0x49 + .byte 0x11, 0x40, 0x12, 0x03, 0xD2, 0x0E, 0x10, 0x18, 0xC0, 0x06, 0x00, 0x0B, 0x08, 0x43, 0x18, 0x65 + .byte 0x18, 0xBC, 0x70, 0x47, 0x1A, 0x6D, 0x83, 0x49, 0x11, 0x40, 0xD2, 0x01, 0xD2, 0x0E, 0x10, 0x18 + .byte 0xC0, 0x06, 0xC0, 0x09, 0x08, 0x43, 0x18, 0x65, 0x18, 0xBC, 0x70, 0x47, 0x1A, 0x6D, 0x7E, 0x49 + .byte 0x11, 0x40, 0x92, 0x00, 0xD2, 0x0E, 0x10, 0x18, 0xC0, 0x06, 0x80, 0x08, 0x08, 0x43, 0x18, 0x65 + .byte 0x18, 0xBC, 0x70, 0x47, 0x5A, 0x6D, 0x79, 0x49, 0x11, 0x40, 0xD2, 0x04, 0xD2, 0x0F, 0x10, 0x18 + .byte 0xC0, 0x07, 0xC0, 0x0C, 0x08, 0x43, 0x58, 0x65, 0x01, 0x20, 0x19, 0x68, 0x00, 0x02, 0x08, 0x43 + .byte 0x18, 0x60, 0x18, 0xBC, 0x70, 0x47, 0xD9, 0x6C, 0x08, 0x18, 0xD8, 0x64, 0x01, 0x20, 0x19, 0x68 + .byte 0x00, 0x02, 0x08, 0x43, 0x18, 0x60, 0x18, 0xBC, 0x70, 0x47, 0x19, 0x1C, 0x48, 0x31, 0x09, 0x78 + .byte 0x09, 0x18, 0x18, 0x1C, 0x48, 0x30, 0x01, 0x70, 0x01, 0x20, 0x19, 0x68, 0x00, 0x02, 0x08, 0x43 + .byte 0x18, 0x60, 0x18, 0xBC, 0x70, 0x47, 0x19, 0x1C, 0x49, 0x31, 0x09, 0x78, 0x09, 0x18, 0x18, 0x1C + .byte 0x49, 0x30, 0x01, 0x70, 0x01, 0x20, 0x19, 0x68, 0x00, 0x02, 0x08, 0x43, 0x18, 0x60, 0x18, 0xBC + .byte 0x70, 0x47, 0x19, 0x1C, 0x4A, 0x31, 0x09, 0x78, 0x4A, 0x33, 0x08, 0x18, 0x18, 0x70, 0x18, 0xBC + .byte 0x70, 0x47, 0x5A, 0x6D, 0x5A, 0x49, 0x11, 0x40, 0x92, 0x05, 0xD2, 0x0F, 0x10, 0x18, 0xC0, 0x07 + .byte 0x80, 0x0D, 0x08, 0x43, 0x58, 0x65, 0x19, 0x68, 0x80, 0x20, 0x08, 0x43, 0x18, 0x60, 0x18, 0xBC + .byte 0x70, 0x47, 0x5A, 0x6D, 0x53, 0x49, 0x11, 0x40, 0x52, 0x05, 0xD2, 0x0F, 0x10, 0x18, 0xC0, 0x07 + .byte 0x40, 0x0D, 0x08, 0x43, 0x58, 0x65, 0x19, 0x68, 0x80, 0x20, 0x08, 0x43, 0x18, 0x60, 0x18, 0xBC + .byte 0x70, 0x47, 0x5A, 0x6D, 0x4C, 0x49, 0x11, 0x40, 0x12, 0x05, 0xD2, 0x0F, 0x10, 0x18, 0xC0, 0x07 + .byte 0x00, 0x0D, 0x08, 0x43, 0x58, 0x65, 0x18, 0xBC, 0x70, 0x47, 0x19, 0x1C, 0x5B, 0x31, 0x09, 0x78 + .byte 0x5B, 0x33, 0x08, 0x18, 0x18, 0x70, 0x18, 0xBC, 0x70, 0x47, 0x5A, 0x6D, 0x43, 0x49, 0x11, 0x40 + .byte 0xD2, 0x03, 0x12, 0x0F, 0x10, 0x18, 0x00, 0x07, 0xC0, 0x0B, 0x08, 0x43, 0x58, 0x65, 0x19, 0x68 + .byte 0x80, 0x20, 0x08, 0x43, 0x18, 0x60, 0x18, 0xBC, 0x70, 0x47, 0x6E, 0x21, 0x59, 0x56, 0x6E, 0x33 + .byte 0x08, 0x18, 0x18, 0x70, 0x18, 0xBC, 0x70, 0x47, 0x19, 0x1C, 0x6C, 0x31, 0x0C, 0x88, 0x03, 0x22 + .byte 0x21, 0x1C, 0x91, 0x43, 0xA2, 0x07, 0x92, 0x0F, 0x10, 0x18, 0x00, 0x04, 0x00, 0x0C, 0x03, 0x22 + .byte 0x10, 0x40, 0x01, 0x43, 0x18, 0x1C, 0x6C, 0x30, 0x01, 0x80, 0x18, 0x68, 0xFD, 0x32, 0x10, 0x43 + .byte 0x18, 0x60, 0x18, 0xBC, 0x70, 0x47, 0x19, 0x1C, 0x6C, 0x31, 0x0C, 0x88, 0x04, 0x22, 0x6C, 0x33 + .byte 0x21, 0x1C, 0x91, 0x43, 0x62, 0x07, 0xD2, 0x0F, 0x10, 0x18, 0x00, 0x04, 0x00, 0x0C, 0xC0, 0x07 + .byte 0x40, 0x0F, 0x08, 0x43, 0x18, 0x80, 0x18, 0xBC, 0x70, 0x47, 0x19, 0x1C, 0x6C, 0x31, 0x0C, 0x88 + .byte 0x08, 0x22, 0x6C, 0x33, 0x21, 0x1C, 0x91, 0x43, 0x22, 0x07, 0xD2, 0x0F, 0x10, 0x18, 0x00, 0x04 + .byte 0x00, 0x0C, 0xC0, 0x07, 0x00, 0x0F, 0x08, 0x43, 0x18, 0x80, 0x18, 0xBC, 0x70, 0x47, 0x19, 0x1C + .byte 0x6C, 0x31, 0x0C, 0x88, 0x10, 0x22, 0x6C, 0x33, 0x21, 0x1C, 0x91, 0x43, 0xE2, 0x06, 0xD2, 0x0F + .byte 0x10, 0x18, 0x00, 0x04, 0x00, 0x0C, 0xC0, 0x07, 0xC0, 0x0E, 0x08, 0x43, 0x18, 0x80, 0x18, 0xBC + .byte 0x70, 0x47, 0x19, 0x1C, 0x6C, 0x31, 0x0C, 0x88, 0x60, 0x22, 0x6C, 0x33, 0x21, 0x1C, 0x91, 0x43 + .byte 0x62, 0x06, 0x92, 0x0F, 0x10, 0x18, 0x00, 0x04, 0x00, 0x0C, 0x80, 0x07, 0x40, 0x0E, 0x08, 0x43 + .byte 0x18, 0x80 +_02007E12: + pop {r3-r4} + bx lr + nop +_02007E18: + .byte 0x1F, 0xFC, 0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF + .byte 0xFF, 0x7F, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xEF, 0xFF, 0xFF + .byte 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0x1F, 0xFE, 0xFF + + thumb_func_start sub_02007E40 +sub_02007E40: ; 0x02007E40 + push {r4-r5} + ldr r5, [r0, #0x54] + mov r4, #0x2 + orr r4, r5 + str r4, [r0, #0x54] + add r4, r0, #0x0 + add r4, #0x44 + strb r1, [r4, #0x0] + add r1, r0, #0x0 + add r1, #0x45 + strb r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x46 + strb r3, [r1, #0x0] + ldr r1, [sp, #0x8] + add r0, #0x47 + strb r1, [r0, #0x0] + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_02007E68 +sub_02007E68: ; 0x02007E68 + push {r4-r5} + mov r4, #0x1 + ldr r5, [r0, #0x54] + lsl r4, r4, #0xc + orr r4, r5 + str r4, [r0, #0x54] + add r4, r0, #0x0 + add r4, #0x48 + strb r1, [r4, #0x0] + add r1, r0, #0x0 + add r1, #0x49 + strb r2, [r1, #0x0] + add r1, r0, #0x0 + mov r2, #0x0 + add r1, #0x4a + strb r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x4b + strb r3, [r1, #0x0] + ldr r1, [sp, #0x8] + str r1, [r0, #0x4c] + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_02007E98 +sub_02007E98: ; 0x02007E98 + push {r4-r7} + add r4, r0, #0x0 + add r0, r1, #0x0 + add r5, r2, #0x0 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + lsl r0, r5, #0x18 + lsr r5, r0, #0x18 + lsl r0, r3, #0x18 + ldr r2, [sp, #0x10] + mov r1, #0x0 + lsr r0, r0, #0x18 +_02007EB0: + ldr r3, [r4, #0x0] + lsl r3, r3, #0x1f + lsr r3, r3, #0x1f + beq _02007EDE + mov r3, #0x1 + ldr r7, [r4, #0x54] + lsl r3, r3, #0xc + orr r3, r7 + str r3, [r4, #0x54] + add r3, r4, #0x0 + add r3, #0x48 + strb r6, [r3, #0x0] + add r3, r4, #0x0 + add r3, #0x49 + add r7, r4, #0x0 + strb r5, [r3, #0x0] + add r7, #0x4a + mov r3, #0x0 + strb r3, [r7, #0x0] + add r3, r4, #0x0 + add r3, #0x4b + strb r0, [r3, #0x0] + str r2, [r4, #0x4c] +_02007EDE: + add r1, r1, #0x1 + add r4, #0x98 + cmp r1, #0x4 + blt _02007EB0 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_02007EEC +sub_02007EEC: ; 0x02007EEC + ldr r2, [r0, #0x54] + ldr r1, _02007F1C ; =0xFFFFEFFF + and r1, r2 + str r1, [r0, #0x54] + add r1, r0, #0x0 + mov r2, #0x0 + add r1, #0x48 + strb r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x49 + strb r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x4a + strb r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x4b + strb r2, [r1, #0x0] + str r2, [r0, #0x4c] + mov r1, #0x1 + ldr r2, [r0, #0x0] + lsl r1, r1, #0x8 + orr r1, r2 + str r1, [r0, #0x0] + bx lr + .balign 4 +_02007F1C: .word 0xFFFFEFFF + + thumb_func_start sub_02007F20 +sub_02007F20: ; 0x02007F20 + ldr r0, [r0, #0x54] + lsl r0, r0, #0x13 + lsr r0, r0, #0x1f + cmp r0, #0x1 + bne _02007F2E + mov r0, #0x1 + bx lr +_02007F2E: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02007F34 +sub_02007F34: ; 0x02007F34 + mov r2, #0x28 + sub r2, r2, r1 + mov r1, #0x36 + ldrsh r1, [r0, r1] + mul r1, r2 + asr r1, r1, #0x8 + sub r1, r2, r1 + strh r1, [r0, #0x2e] + bx lr + .balign 4 + + thumb_func_start sub_02007F48 +sub_02007F48: ; 0x02007F48 + push {r4-r7} + add r1, r0, #0x0 + add r1, #0x58 + ldrb r1, [r1, #0x0] + add r6, r0, #0x0 + add r6, #0x59 + cmp r1, #0x0 + beq _0200800A + add r1, r0, #0x0 + add r1, #0x5a + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + bne _02007FFE + ldrb r1, [r6, #0x0] + add r1, r1, #0x1 + strb r1, [r6, #0x0] + ldrb r3, [r6, #0x0] + mov r1, #0x84 + lsl r4, r3, #0x1 + add r2, r0, r4 + ldrsb r2, [r2, r1] + sub r1, #0x85 + cmp r2, r1 + bge _02007FC6 + mov r2, #0x0 + sub r1, r2, #0x2 +_02007F7C: + add r4, r0, r3 + add r4, #0x5c + ldrb r4, [r4, #0x0] + add r3, r0, r3 + add r3, #0x5c + add r4, r4, #0x1 + strb r4, [r3, #0x0] + ldrb r5, [r6, #0x0] + lsl r3, r5, #0x1 + add r4, r0, r3 + add r3, r4, #0x0 + add r7, r0, r5 + add r3, #0x85 + add r7, #0x5c + ldrb r3, [r3, #0x0] + ldrb r7, [r7, #0x0] + cmp r3, r7 + beq _02007FA4 + cmp r3, #0x0 + bne _02007FAE +_02007FA4: + add r3, r0, r5 + add r3, #0x5c + strb r2, [r3, #0x0] + add r6, r6, #0x1 + b _02007FB6 +_02007FAE: + mov r3, #0x84 + ldrsb r3, [r4, r3] + sub r3, r1, r3 + strb r3, [r6, #0x0] +_02007FB6: + ldrb r3, [r6, #0x0] + mov r5, #0x84 + lsl r4, r3, #0x1 + add r7, r0, r4 + ldrsb r7, [r7, r5] + sub r5, #0x85 + cmp r7, r5 + blt _02007F7C +_02007FC6: + add r2, r0, r4 + mov r1, #0x84 + ldrsb r2, [r2, r1] + sub r1, #0x85 + cmp r2, r1 + beq _02007FD6 + cmp r3, #0xa + blo _02007FE6 +_02007FD6: + add r1, r0, #0x0 + mov r2, #0x0 + add r1, #0x5b + strb r2, [r1, #0x0] + add r0, #0x58 + strb r2, [r0, #0x0] + pop {r4-r7} + bx lr +_02007FE6: + add r1, r0, #0x0 + add r1, #0x5b + strb r2, [r1, #0x0] + ldrb r1, [r6, #0x0] + lsl r1, r1, #0x1 + add r1, r0, r1 + add r1, #0x85 + ldrb r1, [r1, #0x0] + add r0, #0x5a + strb r1, [r0, #0x0] + pop {r4-r7} + bx lr +_02007FFE: + add r1, r0, #0x0 + add r1, #0x5a + ldrb r1, [r1, #0x0] + add r0, #0x5a + sub r1, r1, #0x1 + strb r1, [r0, #0x0] +_0200800A: + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_02008010 +sub_02008010: ; 0x02008010 + mov r2, #0x1 + strb r2, [r0, #0x0] + mov r3, #0x0 + strb r3, [r0, #0x2] + ldrsb r2, [r1, r3] + strb r2, [r0, #0x1] + ldrb r2, [r1, #0x1] + strb r2, [r0, #0x3] + str r1, [r0, #0x10] + add r2, r3, #0x0 +_02008024: + add r1, r0, r3 + add r3, r3, #0x1 + strb r2, [r1, #0x4] + cmp r3, #0xa + blt _02008024 + bx lr + + thumb_func_start sub_02008030 +sub_02008030: ; 0x02008030 + push {r4-r7} + ldrb r1, [r0, #0x0] + cmp r1, #0x0 + beq _020080C6 + add r3, r0, #0x2 + ldr r4, [r0, #0x10] + cmp r1, #0x0 + beq _020080C0 + ldrb r1, [r0, #0x3] + cmp r1, #0x0 + bne _020080BC + ldrb r1, [r3, #0x0] + add r1, r1, #0x1 + strb r1, [r3, #0x0] + ldrb r2, [r3, #0x0] + mov r1, #0x0 + mvn r1, r1 + lsl r5, r2, #0x1 + ldrsb r6, [r4, r5] + cmp r6, r1 + bge _02008098 + mov r1, #0x0 +_0200805C: + add r5, r0, r2 + ldrb r2, [r5, #0x4] + add r2, r2, #0x1 + strb r2, [r5, #0x4] + ldrb r2, [r3, #0x0] + add r5, r0, r2 + lsl r2, r2, #0x1 + add r2, r4, r2 + ldrb r7, [r2, #0x1] + ldrb r6, [r5, #0x4] + cmp r7, r6 + beq _02008078 + cmp r7, #0x0 + bne _0200807E +_02008078: + strb r1, [r5, #0x4] + add r3, r3, #0x1 + b _0200808A +_0200807E: + mov r5, #0x0 + ldrsb r5, [r2, r5] + mov r2, #0x1 + mvn r2, r2 + sub r2, r2, r5 + strb r2, [r3, #0x0] +_0200808A: + ldrb r2, [r3, #0x0] + mov r6, #0x0 + mvn r6, r6 + lsl r5, r2, #0x1 + ldrsb r7, [r4, r5] + cmp r7, r6 + blt _0200805C +_02008098: + ldrsb r5, [r4, r5] + mov r1, #0x0 + mvn r1, r1 + cmp r5, r1 + beq _020080A6 + cmp r2, #0xa + blo _020080AE +_020080A6: + mov r1, #0x0 + strb r1, [r0, #0x1] + strb r1, [r0, #0x0] + b _020080C0 +_020080AE: + strb r5, [r0, #0x1] + ldrb r1, [r3, #0x0] + lsl r1, r1, #0x1 + add r1, r4, r1 + ldrb r1, [r1, #0x1] + strb r1, [r0, #0x3] + b _020080C0 +_020080BC: + sub r1, r1, #0x1 + strb r1, [r0, #0x3] +_020080C0: + ldrb r0, [r0, #0x1] + pop {r4-r7} + bx lr +_020080C6: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_020080D0 +sub_020080D0: ; 0x020080D0 + ldr r2, [r0, #0x0] + mov r1, #0x80 + orr r2, r1 + add r1, #0x80 + orr r1, r2 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020080E0 +sub_020080E0: ; 0x020080E0 + push {r3-r4} + add r2, r0, #0x0 + add r3, r2, #0x0 + add r4, r2, #0x4 + add r3, #0x14 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + add r0, #0x6c + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x78 + strh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x6e + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x7a + strh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x70 + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x7c + strh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x72 + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x7e + strh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x74 + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x80 + strh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x76 + ldrh r0, [r0, #0x0] + add r2, #0x82 + strh r0, [r2, #0x0] + pop {r3-r4} + bx lr + + thumb_func_start sub_0200813C +sub_0200813C: ; 0x0200813C + push {r3-r4} + add r2, r0, #0x0 + add r4, r2, #0x0 + add r4, #0x14 + add r3, r2, #0x4 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + add r0, #0x78 + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x6c + strh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x7a + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x6e + strh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x7c + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x70 + strh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x7e + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x72 + strh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x80 + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x74 + strh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x82 + ldrh r1, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x76 + strh r1, [r0, #0x0] + ldr r1, [r2, #0x0] + mov r0, #0x80 + orr r1, r0 + add r0, #0x80 + orr r0, r1 + str r0, [r2, #0x0] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_020081A8 +sub_020081A8: ; 0x020081A8 + mov r3, #0xa7 + lsl r3, r3, #0x2 + str r1, [r0, r3] + add r1, r3, #0x4 + str r2, [r0, r1] + bx lr + + thumb_func_start sub_020081B4 +sub_020081B4: ; 0x020081B4 + mov r3, #0xa9 + lsl r3, r3, #0x2 + str r1, [r0, r3] + add r1, r3, #0x4 + str r2, [r0, r1] + bx lr + + thumb_func_start sub_020081C0 +sub_020081C0: ; 0x020081C0 + add r0, r0, #0x4 + bx lr + + thumb_func_start sub_020081C4 +sub_020081C4: ; 0x020081C4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02008254 ; =0x000002E1 + ldrb r1, [r4, r0] + cmp r1, #0x0 + beq _02008212 + mov r1, #0x0 + strb r1, [r4, r0] + sub r0, #0x81 + add r0, r4, r0 + blx sub_020B1A24 + mov r3, #0xae + lsl r3, r3, #0x2 + mov r1, #0x20 + strh r1, [r4, r3] + add r0, r3, #0x2 + strh r1, [r4, r0] + add r0, r3, #0x0 + sub r0, #0x18 + ldr r1, [r4, r0] + add r0, r3, #0x0 + add r0, #0x10 + str r1, [r4, r0] + add r0, r3, #0x0 + sub r0, #0xc + ldr r1, [r4, r0] + add r0, r3, #0x0 + add r0, #0x14 + str r1, [r4, r0] + add r1, r3, #0x0 + sub r1, #0x1c + add r0, r4, r3 + sub r3, #0x58 + ldr r1, [r4, r1] + mov r2, #0x0 + add r3, r4, r3 + blx sub_020B1528 +_02008212: + ldr r0, _02008258 ; =0x000002E2 + ldrb r1, [r4, r0] + cmp r1, #0x0 + beq _02008252 + mov r1, #0x0 + strb r1, [r4, r0] + sub r0, #0x5e + add r0, r4, r0 + blx sub_020B19DC + mov r3, #0xaa + lsl r3, r3, #0x2 + add r0, r3, #0x0 + ldr r1, [r4, r3] + add r0, #0x30 + str r1, [r4, r0] + add r0, r3, #0x0 + add r0, #0x8 + ldr r1, [r4, r0] + add r0, r3, #0x0 + add r0, #0x34 + str r1, [r4, r0] + add r0, r3, #0x0 + sub r1, r3, #0x4 + add r0, #0x28 + sub r3, #0x24 + ldr r1, [r4, r1] + add r0, r4, r0 + mov r2, #0x0 + add r3, r4, r3 + blx sub_020B1240 +_02008252: + pop {r4, pc} + .balign 4 +_02008254: .word 0x000002E1 +_02008258: .word 0x000002E2 + + thumb_func_start sub_0200825C +sub_0200825C: ; 0x0200825C + ldr r2, _02008264 ; =0x000002E3 + strb r1, [r0, r2] + bx lr + nop +_02008264: .word 0x000002E3 + + thumb_func_start sub_02008268 +sub_02008268: ; 0x02008268 + push {r4, lr} + add r4, r0, #0x0 + bne _02008272 + bl sub_02020C2C +_02008272: + ldr r0, [r4, #0x0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _0200827E + mov r0, #0x1 + pop {r4, pc} +_0200827E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02008284 +sub_02008284: ; 0x02008284 + mov r2, #0xb9 + lsl r2, r2, #0x2 + ldr r3, [r0, r2] + orr r1, r3 + str r1, [r0, r2] + bx lr + + thumb_func_start sub_02008290 +sub_02008290: ; 0x02008290 + push {r3-r4} + mov r3, #0xb9 + lsl r3, r3, #0x2 + mov r2, #0x0 + mvn r2, r2 + ldr r4, [r0, r3] + eor r1, r2 + and r1, r4 + str r1, [r0, r3] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_020082A8 +sub_020082A8: ; 0x020082A8 + push {r4-r7, lr} + sub sp, #0x5c + add r6, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x48] + str r0, [sp, #0x54] + ldr r0, [sp, #0x48] + str r6, [sp, #0x44] + str r0, [sp, #0x38] +_020082BA: + ldr r0, [sp, #0x44] + ldr r1, [r0, #0x0] + lsl r0, r1, #0x1f + lsr r0, r0, #0x1f + beq _020082CA + lsl r0, r1, #0x18 + lsr r0, r0, #0x1f + bne _020082CC +_020082CA: + b _020086C2 +_020082CC: + mov r0, #0x80 + bic r1, r0 + ldr r0, [sp, #0x44] + mov r2, #0xa6 + str r1, [r0, #0x0] + mov r0, #0x1 + str r0, [sp, #0x48] + ldr r0, [sp, #0x44] + ldr r1, [sp, #0x44] + lsl r2, r2, #0x2 + ldrh r0, [r0, #0x4] + ldrh r1, [r1, #0x6] + ldr r2, [r6, r2] + bl sub_0200650C + add r1, sp, #0x58 + str r0, [sp, #0x4c] + blx sub_020B0088 + ldr r0, [sp, #0x58] + mov r1, #0xaf + ldr r0, [r0, #0x4] + lsl r1, r1, #0x2 + str r0, [r6, r1] + ldr r0, [sp, #0x58] + ldr r2, [r0, #0x8] + add r0, r1, #0x4 + str r2, [r6, r0] + ldr r0, [sp, #0x58] + add r1, #0x8 + ldr r0, [r0, #0xc] + str r0, [r6, r1] + ldr r0, [sp, #0x58] + ldr r0, [r0, #0x14] + str r0, [sp, #0x50] + bl sub_02008A74 + ldr r0, [sp, #0x44] + ldr r1, [sp, #0x50] + bl sub_020088EC + ldr r0, [sp, #0x54] + cmp r0, #0x3 + beq _02008326 + b _02008554 +_02008326: + mov r5, #0x0 + add r0, r5, #0x0 + str r5, [sp, #0x14] + str r0, [sp, #0x24] +_0200832E: + ldr r0, [sp, #0x14] + mov r1, #0x4f + sub r2, r1, r0 + mov r0, #0x50 + add r1, r2, #0x0 + mul r1, r0 + ldr r0, [sp, #0x50] + mov r4, #0x0 + add r0, r0, r1 + str r0, [sp, #0x20] + ldr r1, [sp, #0x50] + ldr r0, [sp, #0x24] + add r7, r1, r0 + ldr r0, [sp, #0x20] + str r7, [sp, #0x18] + str r0, [sp, #0x1c] + ldr r0, [sp, #0x14] + sub r0, r0, #0x1 + lsl r0, r0, #0x7 + str r0, [sp, #0x10] +_02008356: + cmp r4, #0x28 + bge _02008442 + ldr r0, [sp, #0x44] + ldr r1, [r0, #0x54] + lsl r0, r1, #0x16 + lsr r0, r0, #0x1f + beq _02008386 + lsl r1, r1, #0x15 + lsr r1, r1, #0x1f + beq _02008386 + mov r0, #0x27 + sub r1, r0, r4 + ldr r0, [sp, #0x1c] + ldrb r0, [r0, r1] + bl sub_020088D8 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + add r1, r4, r1 + add r1, #0x50 + strb r0, [r1, #0x0] + b _0200852E +_02008386: + cmp r0, #0x0 + beq _020083A6 + mov r0, #0x27 + sub r1, r0, r4 + ldr r0, [sp, #0x18] + ldrb r0, [r0, r1] + bl sub_020088D8 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + add r1, r4, r1 + add r1, #0x50 + strb r0, [r1, #0x0] + b _0200852E +_020083A6: + ldr r0, [sp, #0x44] + ldr r0, [r0, #0x54] + lsl r1, r0, #0x15 + lsr r1, r1, #0x1f + beq _020083C4 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r0, [sp, #0x20] + ldr r1, [r6, r1] + ldrb r0, [r0, #0x0] + add r1, r5, r1 + add r1, r4, r1 + add r1, #0x50 + strb r0, [r1, #0x0] + b _0200852E +_020083C4: + lsl r0, r0, #0xf + lsr r0, r0, #0x1c + str r0, [sp, #0xc] + beq _02008430 + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x14] + lsl r1, r1, #0x1 + blx sub_020EBE8C + cmp r1, #0x0 + beq _020083F4 + mov r0, #0xab + lsl r0, r0, #0x2 + ldr r1, [r6, r0] + ldr r0, [sp, #0x10] + add r0, r0, r1 + add r0, r4, r0 + add r0, #0x50 + add r1, r5, r1 + add r1, r4, r1 + ldrb r0, [r0, #0x0] + add r1, #0x50 + strb r0, [r1, #0x0] + b _0200852E +_020083F4: + ldr r1, [sp, #0xc] + add r0, r4, #0x0 + blx sub_020EBE8C + cmp r1, #0x0 + beq _02008416 + mov r0, #0xab + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + add r2, r5, r0 + add r0, r2, r4 + add r0, #0x4f + ldrb r1, [r0, #0x0] + add r0, r2, r4 + add r0, #0x50 + strb r1, [r0, #0x0] + b _0200852E +_02008416: + ldrb r1, [r7, #0x0] + mov r0, #0xf + and r1, r0 + lsl r0, r1, #0x4 + orr r0, r1 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + add r1, r4, r1 + add r1, #0x50 + strb r0, [r1, #0x0] + b _0200852E +_02008430: + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + ldrb r0, [r7, #0x0] + add r1, r5, r1 + add r1, r4, r1 + add r1, #0x50 + strb r0, [r1, #0x0] + b _0200852E +_02008442: + ldr r0, [sp, #0x44] + ldr r1, [r0, #0x54] + lsl r0, r1, #0x16 + lsr r0, r0, #0x1f + beq _02008472 + lsl r1, r1, #0x15 + lsr r1, r1, #0x1f + beq _02008472 + add r1, r4, #0x0 + sub r1, #0x28 + mov r0, #0x4f + sub r1, r0, r1 + ldr r0, [sp, #0x1c] + ldrb r0, [r0, r1] + bl sub_020088D8 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + add r2, r4, r1 + ldr r1, _020086E8 ; =0x00002828 + strb r0, [r2, r1] + b _0200852E +_02008472: + cmp r0, #0x0 + beq _02008496 + add r1, r4, #0x0 + sub r1, #0x28 + mov r0, #0x4f + sub r1, r0, r1 + ldr r0, [sp, #0x18] + ldrb r0, [r0, r1] + bl sub_020088D8 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + add r2, r4, r1 + ldr r1, _020086E8 ; =0x00002828 + strb r0, [r2, r1] + b _0200852E +_02008496: + ldr r0, [sp, #0x44] + ldr r0, [r0, #0x54] + lsl r1, r0, #0x15 + lsr r1, r1, #0x1f + beq _020084B4 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r0, [sp, #0x20] + ldr r1, [r6, r1] + ldrb r0, [r0, #0x0] + add r1, r5, r1 + add r2, r4, r1 + ldr r1, _020086E8 ; =0x00002828 + strb r0, [r2, r1] + b _0200852E +_020084B4: + lsl r0, r0, #0xf + lsr r0, r0, #0x1c + str r0, [sp, #0x8] + beq _0200851E + ldr r1, [sp, #0x8] + ldr r0, [sp, #0x14] + lsl r1, r1, #0x1 + blx sub_020EBE8C + cmp r1, #0x0 + beq _020084E4 + mov r0, #0xab + lsl r0, r0, #0x2 + ldr r1, [r6, r0] + ldr r0, [sp, #0x10] + add r0, r0, r1 + add r2, r4, r0 + ldr r0, _020086E8 ; =0x00002828 + add r1, r5, r1 + ldrb r0, [r2, r0] + add r2, r4, r1 + ldr r1, _020086E8 ; =0x00002828 + strb r0, [r2, r1] + b _0200852E +_020084E4: + ldr r1, [sp, #0x8] + add r0, r4, #0x0 + blx sub_020EBE8C + cmp r1, #0x0 + beq _02008504 + mov r0, #0xab + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + ldr r1, _020086EC ; =0x00002827 + add r0, r5, r0 + add r0, r0, r4 + ldrb r2, [r0, r1] + add r1, r1, #0x1 + strb r2, [r0, r1] + b _0200852E +_02008504: + ldrb r1, [r7, #0x0] + mov r0, #0xf + and r1, r0 + lsl r0, r1, #0x4 + orr r0, r1 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + add r2, r4, r1 + ldr r1, _020086E8 ; =0x00002828 + strb r0, [r2, r1] + b _0200852E +_0200851E: + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + ldrb r0, [r7, #0x0] + add r1, r5, r1 + add r2, r4, r1 + ldr r1, _020086E8 ; =0x00002828 + strb r0, [r2, r1] +_0200852E: + ldr r0, [sp, #0x20] + add r4, r4, #0x1 + add r0, r0, #0x1 + add r7, r7, #0x1 + str r0, [sp, #0x20] + cmp r4, #0x50 + bge _0200853E + b _02008356 +_0200853E: + ldr r0, [sp, #0x24] + add r5, #0x80 + add r0, #0x50 + str r0, [sp, #0x24] + ldr r0, [sp, #0x14] + add r0, r0, #0x1 + str r0, [sp, #0x14] + cmp r0, #0x50 + bge _02008552 + b _0200832E +_02008552: + b _020086BC +_02008554: + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x40] + str r0, [sp, #0x3c] +_0200855C: + ldr r0, [sp, #0x0] + mov r1, #0x4f + sub r2, r1, r0 + mov r0, #0x50 + add r1, r2, #0x0 + mul r1, r0 + ldr r0, [sp, #0x50] + mov r4, #0x0 + add r0, r0, r1 + str r0, [sp, #0x34] + ldr r1, [sp, #0x50] + ldr r0, [sp, #0x3c] + add r7, r1, r0 + ldr r0, [sp, #0x34] + ldr r1, [sp, #0x38] + str r0, [sp, #0x30] + ldr r0, [sp, #0x40] + str r7, [sp, #0x2c] + add r5, r1, r0 + ldr r0, [sp, #0x0] + sub r0, r0, #0x1 + lsl r1, r0, #0x7 + ldr r0, [sp, #0x38] + add r0, r0, r1 + str r0, [sp, #0x28] +_0200858E: + ldr r0, [sp, #0x44] + ldr r1, [r0, #0x54] + lsl r0, r1, #0x16 + lsr r0, r0, #0x1f + beq _020085D6 + lsl r1, r1, #0x15 + lsr r1, r1, #0x1f + beq _020085D6 + cmp r4, #0x28 + bge _020085BA + mov r0, #0x27 + sub r1, r0, r4 + ldr r0, [sp, #0x30] + ldrb r0, [r0, r1] + bl sub_020088D8 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + strb r0, [r4, r1] + b _02008694 +_020085BA: + add r1, r4, #0x0 + sub r1, #0x28 + mov r0, #0x4f + sub r1, r0, r1 + ldr r0, [sp, #0x30] + ldrb r0, [r0, r1] + bl sub_020088D8 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + strb r0, [r4, r1] + b _02008694 +_020085D6: + cmp r0, #0x0 + beq _02008612 + cmp r4, #0x28 + bge _020085F6 + mov r0, #0x27 + sub r1, r0, r4 + ldr r0, [sp, #0x2c] + ldrb r0, [r0, r1] + bl sub_020088D8 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + strb r0, [r4, r1] + b _02008694 +_020085F6: + add r1, r4, #0x0 + sub r1, #0x28 + mov r0, #0x4f + sub r1, r0, r1 + ldr r0, [sp, #0x2c] + ldrb r0, [r0, r1] + bl sub_020088D8 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + strb r0, [r4, r1] + b _02008694 +_02008612: + ldr r0, [sp, #0x44] + ldr r0, [r0, #0x54] + lsl r1, r0, #0x15 + lsr r1, r1, #0x1f + beq _0200862C + ldr r0, [sp, #0x34] + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + ldrb r0, [r0, #0x0] + add r1, r5, r1 + strb r0, [r4, r1] + b _02008694 +_0200862C: + lsl r0, r0, #0xf + lsr r0, r0, #0x1c + str r0, [sp, #0x4] + beq _02008688 + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x0] + lsl r1, r1, #0x1 + blx sub_020EBE8C + cmp r1, #0x0 + beq _02008654 + mov r0, #0xab + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + ldr r1, [sp, #0x28] + add r1, r1, r0 + ldrb r1, [r4, r1] + add r0, r5, r0 + strb r1, [r4, r0] + b _02008694 +_02008654: + ldr r1, [sp, #0x4] + add r0, r4, #0x0 + blx sub_020EBE8C + cmp r1, #0x0 + beq _02008672 + mov r0, #0xab + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + add r1, r5, r0 + add r0, r1, r4 + sub r0, r0, #0x1 + ldrb r0, [r0, #0x0] + strb r0, [r1, r4] + b _02008694 +_02008672: + ldrb r1, [r7, #0x0] + mov r0, #0xf + and r1, r0 + lsl r0, r1, #0x4 + orr r0, r1 + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + add r1, r5, r1 + strb r0, [r4, r1] + b _02008694 +_02008688: + mov r1, #0xab + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + ldrb r0, [r7, #0x0] + add r1, r5, r1 + strb r0, [r4, r1] +_02008694: + ldr r0, [sp, #0x34] + add r4, r4, #0x1 + add r0, r0, #0x1 + add r7, r7, #0x1 + str r0, [sp, #0x34] + cmp r4, #0x50 + bge _020086A4 + b _0200858E +_020086A4: + ldr r0, [sp, #0x40] + add r0, #0x80 + str r0, [sp, #0x40] + ldr r0, [sp, #0x3c] + add r0, #0x50 + str r0, [sp, #0x3c] + ldr r0, [sp, #0x0] + add r0, r0, #0x1 + str r0, [sp, #0x0] + cmp r0, #0x50 + bge _020086BC + b _0200855C +_020086BC: + ldr r0, [sp, #0x4c] + bl sub_02016A18 +_020086C2: + ldr r0, [sp, #0x44] + mov r1, #0xa + add r0, #0x98 + str r0, [sp, #0x44] + ldr r0, [sp, #0x38] + lsl r1, r1, #0xa + add r0, r0, r1 + str r0, [sp, #0x38] + ldr r0, [sp, #0x54] + add r0, r0, #0x1 + str r0, [sp, #0x54] + cmp r0, #0x4 + bge _020086DE + b _020082BA +_020086DE: + ldr r1, _020086F0 ; =0x000002E1 + ldr r0, [sp, #0x48] + strb r0, [r6, r1] + add sp, #0x5c + pop {r4-r7, pc} + .balign 4 +_020086E8: .word 0x00002828 +_020086EC: .word 0x00002827 +_020086F0: .word 0x000002E1 + + thumb_func_start sub_020086F4 +sub_020086F4: ; 0x020086F4 + push {r4-r7, lr} + sub sp, #0x1c + add r5, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0xc] + str r0, [sp, #0x14] + ldr r0, [sp, #0xc] + add r4, r5, #0x0 + str r0, [sp, #0x8] +_02008706: + ldr r1, [r4, #0x0] + lsl r0, r1, #0x1f + lsr r0, r0, #0x1f + beq _020087E0 + lsl r0, r1, #0x17 + lsr r0, r0, #0x1f + beq _020087E0 + ldr r0, _020088CC ; =0xFFFFFEFF + mov r2, #0xa6 + and r0, r1 + str r0, [r4, #0x0] + mov r0, #0x1 + str r0, [sp, #0xc] + lsl r2, r2, #0x2 + ldrh r0, [r4, #0x4] + ldrh r1, [r4, #0x8] + ldr r2, [r5, r2] + bl sub_0200650C + add r1, sp, #0x18 + str r0, [sp, #0x10] + blx sub_020B0138 + ldr r0, [sp, #0x18] + mov r7, #0x0 + ldr r1, [r0, #0x0] + mov r0, #0x2d + lsl r0, r0, #0x4 + str r1, [r5, r0] + ldr r0, [sp, #0x18] + add r2, r7, #0x0 + ldr r1, [r0, #0xc] + ldr r0, [sp, #0x8] + lsl r3, r0, #0x1 +_0200874A: + mov r6, #0x2b + lsl r6, r6, #0x4 + ldr r6, [r5, r6] + ldrh r0, [r1, #0x0] + add r6, r3, r6 + add r7, r7, #0x1 + strh r0, [r2, r6] + mov r6, #0xad + lsl r6, r6, #0x2 + ldrh r0, [r1, #0x0] + ldr r6, [r5, r6] + add r1, r1, #0x2 + add r6, r3, r6 + strh r0, [r2, r6] + add r2, r2, #0x2 + cmp r7, #0x10 + blt _0200874A + ldr r0, [sp, #0x10] + bl sub_02016A18 + add r0, r4, #0x0 + add r0, #0x6c + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1e + beq _020087E0 + mov r2, #0xa6 + lsl r2, r2, #0x2 + ldr r2, [r5, r2] + mov r0, #0x75 + mov r1, #0xd4 + bl sub_0200650C + add r1, sp, #0x18 + str r0, [sp, #0x4] + blx sub_020B0138 + ldr r0, [sp, #0x18] + mov r7, #0xad + ldr r0, [r0, #0xc] + mov r1, #0x0 + lsl r7, r7, #0x2 +_0200879E: + add r6, r4, #0x0 + add r6, #0x6c + ldrh r6, [r6, #0x0] + mov r2, #0x2b + lsl r2, r2, #0x4 + lsl r6, r6, #0x1e + lsr r6, r6, #0x1e + add r6, r6, #0x3 + lsl r6, r6, #0x4 + add r6, r1, r6 + ldrh r3, [r0, #0x0] + ldr r2, [r5, r2] + lsl r6, r6, #0x1 + strh r3, [r2, r6] + add r6, r4, #0x0 + add r6, #0x6c + ldrh r6, [r6, #0x0] + ldrh r3, [r0, #0x0] + ldr r2, [r5, r7] + lsl r6, r6, #0x1e + lsr r6, r6, #0x1e + add r6, r6, #0x3 + lsl r6, r6, #0x4 + add r6, r1, r6 + lsl r6, r6, #0x1 + add r1, r1, #0x1 + add r0, r0, #0x2 + strh r3, [r2, r6] + cmp r1, #0x10 + blt _0200879E + ldr r0, [sp, #0x4] + bl sub_02016A18 +_020087E0: + ldr r0, [r4, #0x0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _020088AE + ldr r0, [r4, #0x54] + lsl r0, r0, #0x13 + lsr r0, r0, #0x1f + beq _020088AE + add r0, r4, #0x0 + add r0, #0x4a + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _020088A0 + mov r0, #0x1 + str r0, [sp, #0xc] + add r0, r4, #0x0 + add r0, #0x4b + ldrb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x4a + strb r1, [r0, #0x0] + ldr r0, [sp, #0x8] + mov r2, #0xad + lsl r1, r0, #0x1 + ldr r0, [r4, #0x4c] + add r3, r4, #0x0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r2, r2, #0x2 + str r0, [sp, #0x0] + ldr r0, [r5, r2] + sub r2, r2, #0x4 + add r3, #0x48 + ldr r2, [r5, r2] + add r0, r0, r1 + add r1, r2, r1 + ldrb r3, [r3, #0x0] + mov r2, #0x10 + bl sub_02003974 + add r0, r4, #0x0 + add r0, #0x6c + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1e + beq _02008862 + add r0, r0, #0x3 + lsl r1, r0, #0x5 + ldr r0, [r4, #0x4c] + mov r2, #0xad + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r3, r4, #0x0 + lsl r2, r2, #0x2 + str r0, [sp, #0x0] + ldr r0, [r5, r2] + sub r2, r2, #0x4 + add r3, #0x48 + ldr r2, [r5, r2] + add r0, r0, r1 + add r1, r2, r1 + ldrb r3, [r3, #0x0] + mov r2, #0x10 + bl sub_02003974 +_02008862: + add r0, r4, #0x0 + add r0, #0x49 + ldrb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, r1 + bne _0200887C + ldr r1, [r4, #0x54] + ldr r0, _020088D0 ; =0xFFFFEFFF + and r0, r1 + str r0, [r4, #0x54] + b _020088AE +_0200887C: + cmp r0, r1 + bls _02008890 + add r0, r4, #0x0 + add r0, #0x48 + ldrb r0, [r0, #0x0] + sub r1, r0, #0x1 + add r0, r4, #0x0 + add r0, #0x48 + strb r1, [r0, #0x0] + b _020088AE +_02008890: + add r0, r4, #0x0 + add r0, #0x48 + ldrb r0, [r0, #0x0] + add r1, r0, #0x1 + add r0, r4, #0x0 + add r0, #0x48 + strb r1, [r0, #0x0] + b _020088AE +_020088A0: + add r0, r4, #0x0 + add r0, #0x4a + ldrb r0, [r0, #0x0] + sub r1, r0, #0x1 + add r0, r4, #0x0 + add r0, #0x4a + strb r1, [r0, #0x0] +_020088AE: + ldr r0, [sp, #0x8] + add r4, #0x98 + add r0, #0x10 + str r0, [sp, #0x8] + ldr r0, [sp, #0x14] + add r0, r0, #0x1 + str r0, [sp, #0x14] + cmp r0, #0x4 + bge _020088C2 + b _02008706 +_020088C2: + ldr r1, _020088D4 ; =0x000002E2 + ldr r0, [sp, #0xc] + strb r0, [r5, r1] + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 +_020088CC: .word 0xFFFFFEFF +_020088D0: .word 0xFFFFEFFF +_020088D4: .word 0x000002E2 + + thumb_func_start sub_020088D8 +sub_020088D8: ; 0x020088D8 + mov r1, #0xf0 + and r1, r0 + lsl r1, r1, #0x14 + lsl r0, r0, #0x1c + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + orr r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + + thumb_func_start sub_020088EC +sub_020088EC: ; 0x020088EC + push {r3, lr} + add r2, r0, #0x0 + ldrh r0, [r2, #0xa] + cmp r0, #0x0 + beq _02008900 + add r0, r1, #0x0 + ldr r1, [r2, #0x10] + mov r2, #0x1 + bl sub_02008904 +_02008900: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02008904 +sub_02008904: ; 0x02008904 + push {r4-r7, lr} + sub sp, #0x1c + add r3, r0, #0x0 + add r0, r1, #0x0 + mov lr, r0 + mov r0, #0x0 + mov r12, r0 + ldr r0, _02008A50 ; =0x02105AE8 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + str r0, [sp, #0x10] +_0200891A: + ldr r0, [sp, #0x10] + mov r1, #0x0 + ldr r6, [r0, #0x0] + ldrb r0, [r6, #0x0] + cmp r0, #0xff + beq _02008992 + ldr r0, [sp, #0x0] + mov r2, #0xf + and r0, r2 + str r0, [sp, #0xc] + sub r0, #0x8 + str r0, [sp, #0xc] + ldr r0, [sp, #0x0] + mov r2, #0xf0 + and r0, r2 + lsr r7, r0, #0x4 + sub r7, #0x8 +_0200893C: + lsl r0, r1, #0x1 + add r2, r6, r0 + ldrb r4, [r6, r0] + ldrb r2, [r2, #0x1] + ldr r0, [sp, #0xc] + add r0, r0, r4 + add r2, r7, r2 + lsl r0, r0, #0x18 + lsl r2, r2, #0x18 + lsr r0, r0, #0x18 + lsr r4, r2, #0x18 + mov r2, #0x50 + mul r2, r4 + lsr r5, r0, #0x1 + add r2, r5, r2 + mov r4, #0x1 + tst r0, r4 + ldrb r4, [r3, r2] + beq _02008974 + mov r0, #0xf0 + and r0, r4 + cmp r0, #0x10 + blt _02008984 + cmp r0, #0x30 + bgt _02008984 + add r4, #0x50 + strb r4, [r3, r2] + b _02008984 +_02008974: + mov r0, #0xf + and r0, r4 + cmp r0, #0x1 + blt _02008984 + cmp r0, #0x3 + bgt _02008984 + add r0, r4, #0x5 + strb r0, [r3, r2] +_02008984: + add r0, r1, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + lsl r0, r1, #0x1 + ldrb r0, [r6, r0] + cmp r0, #0xff + bne _0200893C +_02008992: + ldr r0, [sp, #0x0] + lsr r0, r0, #0x8 + str r0, [sp, #0x0] + ldr r0, [sp, #0x10] + add r0, r0, #0x4 + str r0, [sp, #0x10] + mov r0, r12 + add r0, r0, #0x1 + mov r12, r0 + cmp r0, #0x4 + blt _0200891A + mov r0, lr + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _02008A4A + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, _02008A50 ; =0x02105AE8 + str r0, [sp, #0x18] +_020089BA: + ldr r0, [sp, #0x18] + mov r4, #0x0 + ldr r2, [r0, #0x0] + ldrb r0, [r2, #0x0] + cmp r0, #0xff + beq _02008A34 + ldr r0, [sp, #0x0] + mov r1, #0xf + and r0, r1 + str r0, [sp, #0x14] + add r0, #0x48 + str r0, [sp, #0x14] + ldr r0, [sp, #0x0] + mov r1, #0xf0 + and r0, r1 + lsr r7, r0, #0x4 + sub r7, #0x8 +_020089DC: + lsl r0, r4, #0x1 + add r5, r2, r0 + ldrb r1, [r2, r0] + ldrb r5, [r5, #0x1] + ldr r0, [sp, #0x14] + sub r1, #0xe + add r0, r0, r1 + add r5, r7, r5 + lsl r0, r0, #0x18 + lsl r5, r5, #0x18 + lsr r1, r0, #0x18 + lsr r6, r5, #0x18 + mov r5, #0x50 + lsr r0, r1, #0x1 + mul r5, r6 + add r0, r0, r5 + mov r5, #0x1 + tst r1, r5 + ldrb r5, [r3, r0] + beq _02008A16 + mov r1, #0xf0 + and r1, r5 + cmp r1, #0x10 + blt _02008A26 + cmp r1, #0x30 + bgt _02008A26 + add r5, #0x50 + strb r5, [r3, r0] + b _02008A26 +_02008A16: + mov r1, #0xf + and r1, r5 + cmp r1, #0x1 + blt _02008A26 + cmp r1, #0x3 + bgt _02008A26 + add r1, r5, #0x5 + strb r1, [r3, r0] +_02008A26: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + lsl r0, r4, #0x1 + ldrb r0, [r2, r0] + cmp r0, #0xff + bne _020089DC +_02008A34: + ldr r0, [sp, #0x0] + lsr r0, r0, #0x8 + str r0, [sp, #0x0] + ldr r0, [sp, #0x18] + add r0, r0, #0x4 + str r0, [sp, #0x18] + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + str r0, [sp, #0x8] + cmp r0, #0x4 + blt _020089BA +_02008A4A: + add sp, #0x1c + pop {r4-r7, pc} + nop +_02008A50: .word 0x02105AE8 + + thumb_func_start sub_02008A54 +sub_02008A54: ; 0x02008A54 + ldr r2, [r0, #0x0] + ldr r1, _02008A6C ; =0x41C64E6D + add r3, r2, #0x0 + mul r3, r1 + ldr r1, _02008A70 ; =0x00006073 + add r1, r3, r1 + str r1, [r0, #0x0] + lsr r0, r1, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + nop +_02008A6C: .word 0x41C64E6D +_02008A70: .word 0x00006073 + + thumb_func_start sub_02008A74 +sub_02008A74: ; 0x02008A74 + push {r3-r7, lr} + ldr r1, _02008AA0 ; =0x000018FE + mov r6, #0x0 + ldrh r2, [r0, r1] + lsr r4, r1, #0x1 + add r5, r0, r1 + str r2, [sp, #0x0] + add r7, sp, #0x0 + mvn r6, r6 +_02008A86: + ldrh r1, [r5, #0x0] + ldr r0, [sp, #0x0] + eor r0, r1 + strh r0, [r5, #0x0] + add r0, r7, #0x0 + bl sub_02008A54 + sub r4, r4, #0x1 + sub r5, r5, #0x2 + cmp r4, r6 + bgt _02008A86 + pop {r3-r7, pc} + nop +_02008AA0: .word 0x000018FE + + thumb_func_start sub_02008AA4 +sub_02008AA4: ; 0x02008AA4 + push {r3-r7, lr} + sub sp, #0x18 + mov r4, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x44] + add r6, r1, #0x0 + str r2, [sp, #0x0] + str r3, [sp, #0x4] + str r4, [sp, #0xc] + cmp r0, #0x0 + bne _02008AC2 + bl sub_02020C2C +_02008AC2: + ldr r0, [sp, #0x48] + cmp r0, #0x0 + bne _02008ACC + bl sub_02020C2C +_02008ACC: + ldr r0, [sp, #0x50] + cmp r0, #0x0 + bne _02008AD6 + bl sub_02020C2C +_02008AD6: + ldr r0, [sp, #0x4c] + cmp r0, #0x0 + bne _02008AE0 + bl sub_02020C2C +_02008AE0: + cmp r5, #0x0 + bne _02008AE8 + bl sub_02020C2C +_02008AE8: + ldr r0, [sp, #0x44] + add r1, r6, #0x0 + bl sub_020094F0 + add r7, r0, #0x0 + bne _02008AF8 + bl sub_02020C2C +_02008AF8: + ldr r0, [sp, #0x48] + ldr r1, [sp, #0x0] + bl sub_020094F0 + str r0, [sp, #0x14] + cmp r0, #0x0 + bne _02008B0A + bl sub_02020C2C +_02008B0A: + ldr r0, [sp, #0x4c] + ldr r1, [sp, #0x4] + bl sub_020094F0 + str r0, [sp, #0x10] + cmp r0, #0x0 + bne _02008B1C + bl sub_02020C2C +_02008B1C: + ldr r0, [sp, #0x50] + cmp r0, #0x0 + beq _02008B3A + mov r2, #0x0 + ldr r1, [sp, #0x30] + mvn r2, r2 + cmp r1, r2 + beq _02008B3A + bl sub_020094F0 + str r0, [sp, #0xc] + cmp r0, #0x0 + bne _02008B3A + bl sub_02020C2C +_02008B3A: + ldr r0, [sp, #0x54] + cmp r0, #0x0 + beq _02008B62 + mov r2, #0x0 + ldr r1, [sp, #0x34] + mvn r2, r2 + cmp r1, r2 + beq _02008B50 + bl sub_020094F0 + add r4, r0, #0x0 +_02008B50: + mov r0, #0x0 + ldr r1, [sp, #0x38] + mvn r0, r0 + cmp r1, r0 + beq _02008B62 + ldr r0, [sp, #0x58] + bl sub_020094F0 + str r0, [sp, #0x8] +_02008B62: + ldr r0, [sp, #0x3c] + cmp r0, #0x0 + beq _02008B82 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + bl sub_02009C80 + add r6, r0, #0x0 + bne _02008B78 + bl sub_02020C2C +_02008B78: + add r0, r7, #0x0 + bl sub_02009544 + str r0, [r5, #0x4] + b _02008B94 +_02008B82: + add r0, r7, #0x0 + bl sub_02009C5C + add r6, r0, #0x0 + bne _02008B90 + bl sub_02020C2C +_02008B90: + mov r0, #0x0 + str r0, [r5, #0x4] +_02008B94: + ldr r0, [sp, #0x14] + add r1, r6, #0x0 + bl sub_02009E54 + str r0, [r5, #0x8] + ldr r0, [sp, #0x10] + str r6, [r5, #0x0] + bl sub_02009574 + str r0, [r5, #0xc] + ldr r0, [sp, #0xc] + cmp r0, #0x0 + beq _02008BB4 + bl sub_0200958C + b _02008BB6 +_02008BB4: + mov r0, #0x0 +_02008BB6: + str r0, [r5, #0x10] + cmp r4, #0x0 + beq _02008BCC + add r0, r4, #0x0 + bl sub_020095A4 + str r0, [r5, #0x14] + ldr r0, [sp, #0x8] + bl sub_020095BC + b _02008BD0 +_02008BCC: + mov r0, #0x0 + str r0, [r5, #0x14] +_02008BD0: + str r0, [r5, #0x18] + ldr r0, [sp, #0x3c] + str r0, [r5, #0x1c] + ldr r0, [sp, #0x40] + add r5, #0x20 + strb r0, [r5, #0x0] + add sp, #0x18 + pop {r3-r7, pc} + + thumb_func_start sub_02008BE0 +sub_02008BE0: ; 0x02008BE0 + push {r4-r7, lr} + sub sp, #0x34 + add r5, r0, #0x0 + ldr r0, [sp, #0x48] + add r7, r1, #0x0 + str r0, [sp, #0x48] + ldr r0, [sp, #0x4c] + mov r4, #0x0 + str r0, [sp, #0x4c] + ldr r0, [sp, #0x50] + ldr r1, [r5, #0x0] + str r0, [sp, #0x50] + ldr r0, [sp, #0x54] + str r2, [sp, #0x2c] + str r0, [sp, #0x54] + sub r0, r4, #0x2 + str r3, [sp, #0x30] + cmp r1, r0 + beq _02008C14 + add r2, r5, #0x0 + sub r0, r4, #0x2 +_02008C0A: + add r2, #0x20 + ldr r1, [r2, #0x0] + add r4, r4, #0x1 + cmp r1, r0 + bne _02008C0A +_02008C14: + add r0, r7, #0x0 + mov r1, #0x8 + bl sub_02016998 + mov r1, #0x24 + add r6, r0, #0x0 + add r0, r7, #0x0 + mul r1, r4 + bl sub_02016998 + str r0, [r6, #0x0] + mov r7, #0x0 + str r4, [r6, #0x4] + cmp r4, #0x0 + ble _02008C7A + add r4, r7, #0x0 +_02008C34: + ldr r0, [r5, #0xc] + str r0, [sp, #0x0] + ldr r0, [r5, #0x10] + str r0, [sp, #0x4] + ldr r0, [r5, #0x14] + str r0, [sp, #0x8] + ldr r0, [r5, #0x18] + str r0, [sp, #0xc] + ldr r0, [r5, #0x1c] + str r0, [sp, #0x10] + ldr r0, [sp, #0x2c] + str r0, [sp, #0x14] + ldr r0, [sp, #0x30] + str r0, [sp, #0x18] + ldr r0, [sp, #0x48] + str r0, [sp, #0x1c] + ldr r0, [sp, #0x4c] + str r0, [sp, #0x20] + ldr r0, [sp, #0x50] + str r0, [sp, #0x24] + ldr r0, [sp, #0x54] + str r0, [sp, #0x28] + ldr r0, [r6, #0x0] + ldr r1, [r5, #0x0] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + add r0, r0, r4 + bl sub_02008AA4 + ldr r0, [r6, #0x4] + add r7, r7, #0x1 + add r5, #0x20 + add r4, #0x24 + cmp r7, r0 + blt _02008C34 +_02008C7A: + add r0, r6, #0x0 + add sp, #0x34 + pop {r4-r7, pc} + + thumb_func_start sub_02008C80 +sub_02008C80: ; 0x02008C80 + push {r4, lr} + add r4, r0, #0x0 + bne _02008C8A + bl sub_02020C2C +_02008C8A: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02008C94 + bl sub_02016A18 +_02008C94: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02008C9C +sub_02008C9C: ; 0x02008C9C + push {r3-r6, lr} + sub sp, #0x1c + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r1, _02008D00 ; =0xFFFFF000 + add r0, r4, #0x0 + add r6, r2, #0x0 + bl sub_0202134C + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0xff + lsl r0, r0, #0xc + str r0, [sp, #0x8] + mov r0, #0x3 + lsl r0, r0, #0x12 + str r0, [sp, #0xc] + add r0, r4, #0x0 + add r0, #0x98 + add r1, sp, #0x0 + mov r2, #0x1 + add r3, r4, #0x0 + bl sub_02009FD8 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0xff + mov r1, #0x3 + lsl r1, r1, #0x12 + lsl r0, r0, #0xc + str r0, [sp, #0x8] + add r0, r4, #0x0 + str r1, [sp, #0x4] + str r1, [sp, #0xc] + add r0, #0xe0 + add r1, sp, #0x0 + mov r2, #0x2 + add r3, r4, #0x0 + bl sub_02009FD8 + add r0, sp, #0x10 + str r5, [sp, #0x10] + str r4, [sp, #0x14] + str r6, [sp, #0x18] + bl sub_0201FCB0 + add sp, #0x1c + pop {r3-r6, pc} + nop +_02008D00: .word 0xFFFFF000 + + thumb_func_start sub_02008D04 +sub_02008D04: ; 0x02008D04 + push {r3, lr} + sub sp, #0x10 + str r1, [sp, #0x0] + mov r1, #0xff + lsl r1, r1, #0xc + str r1, [sp, #0x8] + mov r1, #0x3 + lsl r1, r1, #0x12 + str r1, [sp, #0xc] + add r0, #0x98 + add r1, sp, #0x0 + str r2, [sp, #0x4] + bl sub_02021390 + add sp, #0x10 + pop {r3, pc} + + thumb_func_start sub_02008D24 +sub_02008D24: ; 0x02008D24 + push {r3, lr} + sub sp, #0x10 + str r1, [sp, #0x0] + mov r1, #0xff + lsl r1, r1, #0xc + str r1, [sp, #0x8] + mov r1, #0x3 + lsl r1, r1, #0x12 + str r1, [sp, #0xc] + add r0, #0xe0 + add r1, sp, #0x0 + str r2, [sp, #0x4] + bl sub_02021390 + add sp, #0x10 + pop {r3, pc} + + thumb_func_start sub_02008D44 +sub_02008D44: ; 0x02008D44 + push {r4, lr} + add r4, r0, #0x0 + cmp r1, #0x10 + beq _02008D5A + ldr r2, _02008DCC ; =0x00100010 + cmp r1, r2 + beq _02008D8A + ldr r0, _02008DD0 ; =0x00200010 + cmp r1, r0 + beq _02008D98 + b _02008DC4 +_02008D5A: + blx sub_020C5DBC + cmp r0, #0x40 + beq _02008D6A + blx sub_020C5DBC + cmp r0, #0x20 + bne _02008D7A +_02008D6A: + mov r0, #0x3e + mov r1, #0x2 + lsl r0, r0, #0x8 + lsl r1, r1, #0x8 + add r2, r4, #0x0 + bl sub_0201D194 + pop {r4, pc} +_02008D7A: + mov r0, #0x7e + mov r1, #0x2 + lsl r0, r0, #0x8 + lsl r1, r1, #0x8 + add r2, r4, #0x0 + bl sub_0201D194 + pop {r4, pc} +_02008D8A: + mov r0, #0xfe + lsr r1, r2, #0xb + lsl r0, r0, #0x8 + add r2, r4, #0x0 + bl sub_0201D194 + pop {r4, pc} +_02008D98: + blx sub_020C5DBC + cmp r0, #0x30 + beq _02008DA8 + blx sub_020C5DBC + cmp r0, #0x50 + bne _02008DB6 +_02008DA8: + mov r1, #0x2 + ldr r0, _02008DD4 ; =0x00013E00 + lsl r1, r1, #0x8 + add r2, r4, #0x0 + bl sub_0201D194 + pop {r4, pc} +_02008DB6: + mov r1, #0x2 + ldr r0, _02008DD8 ; =0x0001FE00 + lsl r1, r1, #0x8 + add r2, r4, #0x0 + bl sub_0201D194 + pop {r4, pc} +_02008DC4: + bl sub_02020C2C + pop {r4, pc} + nop +_02008DCC: .word 0x00100010 +_02008DD0: .word 0x00200010 +_02008DD4: .word 0x00013E00 +_02008DD8: .word 0x0001FE00 + + thumb_func_start sub_02008DDC +sub_02008DDC: ; 0x02008DDC + ldr r3, _02008DE8 ; =0x0201E069 + add r1, r0, #0x0 + mov r0, #0x3 + lsl r0, r0, #0xe + bx r3 + nop +_02008DE8: .word 0x0201E069 + + thumb_func_start sub_02008DEC +sub_02008DEC: ; 0x02008DEC + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + str r2, [sp, #0x0] + add r0, r2, #0x0 + mov r1, #0x14 + bl sub_02016998 + add r4, r0, #0x0 + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02020C44 + str r0, [r4, #0x0] + mov r0, #0xc + add r7, r5, #0x0 + mul r7, r0 + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + bl sub_02016998 + mov r1, #0x0 + add r2, r7, #0x0 + str r0, [r4, #0x4] + blx sub_020DF4A4 + str r5, [r4, #0x8] + mov r0, #0x0 + str r0, [r4, #0xc] + str r6, [r4, #0x10] + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02008E2C +sub_02008E2C: ; 0x02008E2C + push {r4, lr} + add r4, r0, #0x0 + bne _02008E36 + bl sub_02020C2C +_02008E36: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _02008E40 + bl sub_02020C2C +_02008E40: + ldr r0, [r4, #0x4] + cmp r0, #0x0 + bne _02008E4A + bl sub_02020C2C +_02008E4A: + add r0, r4, #0x0 + bl sub_020094C4 + ldr r0, [r4, #0x0] + bl sub_02020C90 + mov r0, #0x0 + str r0, [r4, #0x0] + ldr r0, [r4, #0x4] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x4] + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02008E6C +sub_02008E6C: ; 0x02008E6C + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r5, #0x0 + bne _02008E80 + bl sub_02020C2C +_02008E80: + cmp r4, #0x0 + bne _02008E88 + bl sub_02020C2C +_02008E88: + ldr r0, [r4, #0x4] + cmp r0, r6 + bgt _02008E92 + bl sub_02020C2C +_02008E92: + ldr r1, [r5, #0x10] + ldr r0, [r4, #0x8] + cmp r1, r0 + beq _02008E9E + bl sub_02020C2C +_02008E9E: + add r0, r5, #0x0 + bl sub_020097D0 + str r0, [sp, #0x1c] + cmp r0, #0x0 + bne _02008EAE + bl sub_02020C2C +_02008EAE: + ldrb r0, [r4, #0xc] + cmp r0, #0x0 + bne _02008EEA + ldr r2, [r4, #0x0] + mov r0, #0x4c + add r1, r6, #0x0 + mul r1, r0 + add r6, r2, r1 + ldr r1, [r2, r1] + add r0, r5, #0x0 + bl sub_0200945C + cmp r0, #0x1 + beq _02008ECE + bl sub_02020C2C +_02008ECE: + ldr r0, [r6, #0x44] + ldr r1, [sp, #0x1c] + str r0, [sp, #0x0] + ldr r0, [r6, #0x48] + add r2, r6, #0x4 + str r0, [sp, #0x4] + ldr r0, [r4, #0x8] + str r0, [sp, #0x8] + str r7, [sp, #0xc] + ldr r3, [r6, #0x0] + add r0, r5, #0x0 + bl sub_0200994C + b _02008F28 +_02008EEA: + mov r0, #0x18 + ldr r1, [r4, #0x0] + mul r0, r6 + add r6, r1, r0 + ldr r1, [r6, #0xc] + add r0, r5, #0x0 + bl sub_0200945C + cmp r0, #0x1 + beq _02008F02 + bl sub_02020C2C +_02008F02: + ldr r0, [r6, #0x8] + ldr r1, [sp, #0x1c] + str r0, [sp, #0x0] + ldr r0, [r6, #0xc] + str r0, [sp, #0x4] + ldr r0, [r6, #0x10] + str r0, [sp, #0x8] + ldr r0, [r6, #0x14] + str r0, [sp, #0xc] + ldr r0, [r4, #0x8] + str r0, [sp, #0x10] + str r7, [sp, #0x14] + mov r0, #0x0 + str r0, [sp, #0x18] + ldr r2, [r6, #0x0] + ldr r3, [r6, #0x4] + add r0, r5, #0x0 + bl sub_02009978 +_02008F28: + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + ldr r0, [sp, #0x1c] + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_02008F34 +sub_02008F34: ; 0x02008F34 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x1c] + cmp r5, #0x0 + bne _02008F48 + bl sub_02020C2C +_02008F48: + ldr r0, [r5, #0x10] + cmp r0, #0x0 + beq _02008F52 + bl sub_02020C2C +_02008F52: + add r0, r5, #0x0 + bl sub_020097D0 + add r6, r0, #0x0 + bne _02008F60 + bl sub_02020C2C +_02008F60: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x3c] + mov r1, #0x0 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x40] + str r1, [sp, #0x10] + str r0, [sp, #0x14] + str r1, [sp, #0x18] + ldr r3, [sp, #0x1c] + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02009978 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add r0, r6, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02008F90 +sub_02008F90: ; 0x02008F90 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x1c] + cmp r5, #0x0 + bne _02008FA4 + bl sub_02020C2C +_02008FA4: + ldr r0, [r5, #0x10] + cmp r0, #0x0 + beq _02008FAE + bl sub_02020C2C +_02008FAE: + add r0, r5, #0x0 + bl sub_020097D0 + add r6, r0, #0x0 + bne _02008FBC + bl sub_02020C2C +_02008FBC: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x3c] + ldr r3, [sp, #0x1c] + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x40] + add r1, r6, #0x0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x44] + add r2, r7, #0x0 + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl sub_02009978 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add r0, r6, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_02008FEC +sub_02008FEC: ; 0x02008FEC + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x1c] + cmp r5, #0x0 + bne _02009000 + bl sub_02020C2C +_02009000: + ldr r0, [r5, #0x10] + cmp r0, #0x1 + beq _0200900A + bl sub_02020C2C +_0200900A: + add r0, r5, #0x0 + bl sub_020097D0 + add r6, r0, #0x0 + bne _02009018 + bl sub_02020C2C +_02009018: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x3c] + ldr r3, [sp, #0x1c] + str r0, [sp, #0x8] + ldr r0, [sp, #0x40] + add r1, r6, #0x0 + str r0, [sp, #0xc] + mov r0, #0x1 + str r0, [sp, #0x10] + ldr r0, [sp, #0x44] + add r2, r7, #0x0 + str r0, [sp, #0x14] + mov r0, #0x0 + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl sub_02009978 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add r0, r6, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200904C +sub_0200904C: ; 0x0200904C + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x1c] + cmp r5, #0x0 + bne _02009060 + bl sub_02020C2C +_02009060: + ldr r0, [r5, #0x10] + cmp r0, #0x1 + beq _0200906A + bl sub_02020C2C +_0200906A: + add r0, r5, #0x0 + bl sub_020097D0 + add r6, r0, #0x0 + bne _02009078 + bl sub_02020C2C +_02009078: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x3c] + ldr r3, [sp, #0x1c] + str r0, [sp, #0x8] + ldr r0, [sp, #0x40] + add r1, r6, #0x0 + str r0, [sp, #0xc] + mov r0, #0x1 + str r0, [sp, #0x10] + ldr r0, [sp, #0x44] + add r2, r7, #0x0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x48] + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl sub_02009978 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add r0, r6, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020090AC +sub_020090AC: ; 0x020090AC + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x1c] + cmp r5, #0x0 + bne _020090C0 + bl sub_02020C2C +_020090C0: + add r0, r5, #0x0 + bl sub_020097D0 + add r6, r0, #0x0 + bne _020090CE + bl sub_02020C2C +_020090CE: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + mov r1, #0x0 + str r1, [sp, #0x8] + ldr r0, [sp, #0x3c] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x40] + ldr r3, [sp, #0x1c] + str r0, [sp, #0x14] + str r1, [sp, #0x18] + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02009978 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add r0, r6, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_020090FC +sub_020090FC: ; 0x020090FC + push {r4-r7, lr} + sub sp, #0x24 + add r5, r0, #0x0 + add r4, r1, #0x0 + str r2, [sp, #0x1c] + str r3, [sp, #0x20] + cmp r5, #0x0 + bne _02009110 + bl sub_02020C2C +_02009110: + ldr r0, [r5, #0x10] + cmp r0, #0x0 + beq _0200911A + bl sub_02020C2C +_0200911A: + cmp r4, #0x0 + bne _02009122 + bl sub_02020C2C +_02009122: + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _0200912C + bl sub_02020C2C +_0200912C: + add r0, r4, #0x0 + bl sub_02009530 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020095E4 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02009490 + ldr r0, [sp, #0x38] + mov r1, #0x0 + str r0, [sp, #0x0] + str r6, [sp, #0x4] + str r7, [sp, #0x8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x3c] + str r1, [sp, #0x10] + str r0, [sp, #0x14] + str r1, [sp, #0x18] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x20] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02009978 + add sp, #0x24 + pop {r4-r7, pc} + + thumb_func_start sub_02009168 +sub_02009168: ; 0x02009168 + push {r3-r7, lr} + sub sp, #0x28 + add r5, r0, #0x0 + add r4, r1, #0x0 + str r2, [sp, #0x1c] + str r3, [sp, #0x20] + cmp r5, #0x0 + bne _0200917C + bl sub_02020C2C +_0200917C: + ldr r0, [r5, #0x10] + cmp r0, #0x1 + beq _02009186 + bl sub_02020C2C +_02009186: + cmp r4, #0x0 + bne _0200918E + bl sub_02020C2C +_0200918E: + ldr r0, [r4, #0x4] + cmp r0, #0x1 + beq _02009198 + bl sub_02020C2C +_02009198: + add r0, r4, #0x0 + bl sub_02009530 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020095E4 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02009610 + str r0, [sp, #0x24] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02009490 + ldr r0, [sp, #0x40] + ldr r2, [sp, #0x1c] + str r0, [sp, #0x0] + str r6, [sp, #0x4] + ldr r0, [sp, #0x24] + str r7, [sp, #0x8] + str r0, [sp, #0xc] + mov r0, #0x1 + str r0, [sp, #0x10] + ldr r0, [sp, #0x44] + ldr r3, [sp, #0x20] + str r0, [sp, #0x14] + mov r0, #0x0 + str r0, [sp, #0x18] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02009978 + add sp, #0x28 + pop {r3-r7, pc} + + thumb_func_start sub_020091E0 +sub_020091E0: ; 0x020091E0 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x1c] + cmp r5, #0x0 + bne _020091F4 + bl sub_02020C2C +_020091F4: + ldr r0, [r5, #0x10] + cmp r0, #0x0 + beq _020091FE + bl sub_02020C2C +_020091FE: + add r0, r5, #0x0 + bl sub_020097D0 + add r6, r0, #0x0 + bne _0200920C + bl sub_02020C2C +_0200920C: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x3c] + mov r1, #0x0 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x40] + str r1, [sp, #0x10] + str r0, [sp, #0x14] + str r1, [sp, #0x18] + ldr r3, [sp, #0x1c] + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_020099B0 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add r0, r6, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200923C +sub_0200923C: ; 0x0200923C + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x1c] + cmp r5, #0x0 + bne _02009250 + bl sub_02020C2C +_02009250: + ldr r0, [r5, #0x10] + cmp r0, #0x0 + beq _0200925A + bl sub_02020C2C +_0200925A: + add r0, r5, #0x0 + bl sub_020097D0 + add r6, r0, #0x0 + bne _02009268 + bl sub_02020C2C +_02009268: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x3c] + ldr r3, [sp, #0x1c] + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x40] + add r1, r6, #0x0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x44] + add r2, r7, #0x0 + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl sub_020099B0 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add r0, r6, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_02009298 +sub_02009298: ; 0x02009298 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x1c] + cmp r5, #0x0 + bne _020092AC + bl sub_02020C2C +_020092AC: + ldr r0, [r5, #0x10] + cmp r0, #0x1 + beq _020092B6 + bl sub_02020C2C +_020092B6: + add r0, r5, #0x0 + bl sub_020097D0 + add r6, r0, #0x0 + bne _020092C4 + bl sub_02020C2C +_020092C4: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x3c] + ldr r3, [sp, #0x1c] + str r0, [sp, #0x8] + ldr r0, [sp, #0x40] + add r1, r6, #0x0 + str r0, [sp, #0xc] + mov r0, #0x1 + str r0, [sp, #0x10] + ldr r0, [sp, #0x44] + add r2, r7, #0x0 + str r0, [sp, #0x14] + mov r0, #0x0 + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl sub_020099B0 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add r0, r6, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020092F8 +sub_020092F8: ; 0x020092F8 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x1c] + cmp r5, #0x0 + bne _0200930C + bl sub_02020C2C +_0200930C: + ldr r0, [r5, #0x10] + cmp r0, #0x1 + beq _02009316 + bl sub_02020C2C +_02009316: + add r0, r5, #0x0 + bl sub_020097D0 + add r6, r0, #0x0 + bne _02009324 + bl sub_02020C2C +_02009324: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x3c] + ldr r3, [sp, #0x1c] + str r0, [sp, #0x8] + ldr r0, [sp, #0x40] + add r1, r6, #0x0 + str r0, [sp, #0xc] + mov r0, #0x1 + str r0, [sp, #0x10] + ldr r0, [sp, #0x44] + add r2, r7, #0x0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x48] + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl sub_020099B0 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add r0, r6, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02009358 +sub_02009358: ; 0x02009358 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x1c] + cmp r5, #0x0 + bne _0200936C + bl sub_02020C2C +_0200936C: + add r0, r5, #0x0 + bl sub_020097D0 + add r6, r0, #0x0 + bne _0200937A + bl sub_02020C2C +_0200937A: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + mov r1, #0x0 + str r1, [sp, #0x8] + ldr r0, [sp, #0x3c] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x40] + ldr r3, [sp, #0x1c] + str r0, [sp, #0x14] + str r1, [sp, #0x18] + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_020099B0 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add r0, r6, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_020093A8 +sub_020093A8: ; 0x020093A8 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r5, #0x0 + bne _020093BC + bl sub_02020C2C +_020093BC: + cmp r4, #0x0 + bne _020093C4 + bl sub_02020C2C +_020093C4: + str r6, [sp, #0x0] + str r7, [sp, #0x4] + ldr r3, [r4, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020093DC + ldr r0, [r4, #0x4] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020093DC +sub_020093DC: ; 0x020093DC + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + add r5, r2, #0x0 + ldr r0, [sp, #0x24] + add r7, r5, r3 + str r1, [sp, #0x4] + ldr r4, [sp, #0x20] + str r0, [sp, #0x24] + cmp r5, r7 + bge _02009420 + add r6, r4, #0x0 + add r6, #0x8 +_020093F6: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r3, [sp, #0x24] + add r2, r5, #0x0 + bl sub_02008E6C + cmp r4, #0x0 + beq _0200941A + ldr r2, [r4, #0x8] + ldr r1, [r4, #0x4] + cmp r1, r2 + ble _0200941A + ldr r1, [r4, #0x0] + lsl r2, r2, #0x2 + str r0, [r1, r2] + ldr r0, [r6, #0x0] + add r0, r0, #0x1 + str r0, [r6, #0x0] +_0200941A: + add r5, r5, #0x1 + cmp r5, r7 + blt _020093F6 +_02009420: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02009424 +sub_02009424: ; 0x02009424 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0xc + bl sub_02016998 + add r4, r0, #0x0 + add r0, r6, #0x0 + lsl r1, r5, #0x2 + bl sub_02016998 + str r0, [r4, #0x0] + str r5, [r4, #0x4] + mov r0, #0x0 + str r0, [r4, #0x8] + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02009448 +sub_02009448: ; 0x02009448 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200945C +sub_0200945C: ; 0x0200945C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0200946A + bl sub_02020C2C +_0200946A: + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + bl sub_02020CB0 + pop {r3-r5, pc} + + thumb_func_start sub_02009474 +sub_02009474: ; 0x02009474 + push {r4, lr} + add r4, r0, #0x0 + bne _0200947E + bl sub_02020C2C +_0200947E: + add r0, r4, #0x0 + bl sub_02009920 + ldr r0, [r4, #0x0] + mov r1, #0x0 + bl sub_02020E1C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02009490 +sub_02009490: ; 0x02009490 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0200949E + bl sub_02020C2C +_0200949E: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _020094A8 + bl sub_02020C2C +_020094A8: + add r0, r4, #0x0 + bl sub_02009920 + ldr r0, [r5, #0x0] + ldr r1, [r4, #0x0] + bl sub_02020D68 + mov r0, #0x0 + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + sub r0, r0, #0x1 + str r0, [r5, #0xc] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020094C4 +sub_020094C4: ; 0x020094C4 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x8] + mov r6, #0x0 + cmp r0, #0x0 + ble _020094EC + add r4, r6, #0x0 +_020094D2: + ldr r1, [r5, #0x4] + ldr r0, [r1, r4] + cmp r0, #0x0 + beq _020094E2 + add r0, r5, #0x0 + add r1, r1, r4 + bl sub_02009490 +_020094E2: + ldr r0, [r5, #0x8] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _020094D2 +_020094EC: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020094F0 +sub_020094F0: ; 0x020094F0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + cmp r5, #0x0 + bne _020094FE + bl sub_02020C2C +_020094FE: + ldr r0, [r5, #0x8] + mov r6, #0x0 + cmp r0, #0x0 + ble _0200952C + add r4, r6, #0x0 +_02009508: + ldr r0, [r5, #0x4] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _02009522 + bl sub_02020E38 + cmp r0, r7 + bne _02009522 + mov r0, #0xc + ldr r1, [r5, #0x4] + mul r0, r6 + add r0, r1, r0 + pop {r3-r7, pc} +_02009522: + ldr r0, [r5, #0x8] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _02009508 +_0200952C: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02009530 +sub_02009530: ; 0x02009530 + push {r4, lr} + add r4, r0, #0x0 + bne _0200953A + bl sub_02020C2C +_0200953A: + ldr r0, [r4, #0x0] + bl sub_02020E38 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02009544 +sub_02009544: ; 0x02009544 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _02009552 + bl sub_02020C2C +_02009552: + add r0, r4, #0x0 + bl sub_02009934 + ldr r0, [r0, #0x0] + pop {r4, pc} + + thumb_func_start sub_0200955C +sub_0200955C: ; 0x0200955C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x1 + beq _0200956A + bl sub_02020C2C +_0200956A: + add r0, r4, #0x0 + bl sub_02009934 + ldr r0, [r0, #0x0] + pop {r4, pc} + + thumb_func_start sub_02009574 +sub_02009574: ; 0x02009574 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x2 + beq _02009582 + bl sub_02020C2C +_02009582: + add r0, r4, #0x0 + bl sub_02009934 + ldr r0, [r0, #0x0] + pop {r4, pc} + + thumb_func_start sub_0200958C +sub_0200958C: ; 0x0200958C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x3 + beq _0200959A + bl sub_02020C2C +_0200959A: + add r0, r4, #0x0 + bl sub_02009934 + ldr r0, [r0, #0x0] + pop {r4, pc} + + thumb_func_start sub_020095A4 +sub_020095A4: ; 0x020095A4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x4 + beq _020095B2 + bl sub_02020C2C +_020095B2: + add r0, r4, #0x0 + bl sub_02009934 + ldr r0, [r0, #0x0] + pop {r4, pc} + + thumb_func_start sub_020095BC +sub_020095BC: ; 0x020095BC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x5 + beq _020095CA + bl sub_02020C2C +_020095CA: + add r0, r4, #0x0 + bl sub_02009934 + ldr r0, [r0, #0x0] + pop {r4, pc} + + thumb_func_start sub_020095D4 +sub_020095D4: ; 0x020095D4 + push {r4, lr} + add r4, r0, #0x0 + bne _020095DE + bl sub_02020C2C +_020095DE: + ldr r0, [r4, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020095E4 +sub_020095E4: ; 0x020095E4 + push {r4, lr} + add r4, r0, #0x0 + bne _020095EE + bl sub_02020C2C +_020095EE: + ldr r0, [r4, #0x4] + cmp r0, #0x0 + bne _020095FE + add r0, r4, #0x0 + bl sub_02009934 + ldr r0, [r0, #0x4] + pop {r4, pc} +_020095FE: + cmp r0, #0x1 + bne _0200960C + add r0, r4, #0x0 + bl sub_02009934 + ldr r0, [r0, #0x4] + pop {r4, pc} +_0200960C: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02009610 +sub_02009610: ; 0x02009610 + push {r4, lr} + add r4, r0, #0x0 + bne _0200961A + bl sub_02020C2C +_0200961A: + ldr r0, [r4, #0x4] + cmp r0, #0x1 + bne _0200962A + add r0, r4, #0x0 + bl sub_02009934 + ldr r0, [r0, #0x8] + pop {r4, pc} +_0200962A: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02009630 +sub_02009630: ; 0x02009630 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0200963E + bl sub_02020C2C +_0200963E: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _0200964C + add r0, r5, #0x0 + bl sub_02009934 + str r4, [r0, #0x4] +_0200964C: + ldr r0, [r5, #0x4] + cmp r0, #0x1 + bne _0200965A + add r0, r5, #0x0 + bl sub_02009934 + str r4, [r0, #0x4] +_0200965A: + pop {r3-r5, pc} + + thumb_func_start sub_0200965C +sub_0200965C: ; 0x0200965C + mov r0, #0x10 + bx lr + + thumb_func_start sub_02009660 +sub_02009660: ; 0x02009660 + lsl r1, r1, #0x4 + add r0, r0, r1 + bx lr + .balign 4 + + thumb_func_start sub_02009668 +sub_02009668: ; 0x02009668 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x0 + bne _02009678 + bl sub_02020C2C +_02009678: + ldr r0, [r5, #0x0] + str r0, [r4, #0x8] + mov r0, #0x1 + strb r0, [r4, #0xc] + add r0, r5, #0x4 + bl sub_020099E8 + add r2, r0, #0x0 + str r0, [r4, #0x4] + cmp r2, #0x0 + ble _0200969A + mov r1, #0x18 + add r0, r6, #0x0 + mul r1, r2 + bl sub_02016998 + b _0200969C +_0200969A: + mov r0, #0x0 +_0200969C: + str r0, [r4, #0x0] + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020096B0 + ldr r3, [r4, #0x4] + mov r2, #0x18 + add r1, r5, #0x4 + mul r2, r3 + blx sub_020DF438 +_020096B0: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020096B4 +sub_020096B4: ; 0x020096B4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020096C2 + bl sub_02016A18 +_020096C2: + mov r0, #0x0 + str r0, [r4, #0x0] + str r0, [r4, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020096CC +sub_020096CC: ; 0x020096CC + push {r4, lr} + add r4, r0, #0x0 + bne _020096D6 + bl sub_02020C2C +_020096D6: + ldr r0, [r4, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020096DC +sub_020096DC: ; 0x020096DC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020096EA + bl sub_02020C2C +_020096EA: + ldr r0, [r5, #0x4] + cmp r0, r4 + bgt _020096F4 + bl sub_02020C2C +_020096F4: + ldrb r0, [r5, #0xc] + ldr r1, [r5, #0x0] + cmp r0, #0x0 + bne _02009704 + mov r0, #0x4c + mul r0, r4 + ldr r0, [r1, r0] + pop {r3-r5, pc} +_02009704: + mov r0, #0x18 + mul r0, r4 + add r0, r1, r0 + ldr r0, [r0, #0xc] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02009710 +sub_02009710: ; 0x02009710 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0200971E + bl sub_02020C2C +_0200971E: + ldr r0, [r5, #0x4] + cmp r0, r4 + bgt _02009728 + bl sub_02020C2C +_02009728: + ldrb r0, [r5, #0xc] + cmp r0, #0x1 + bne _02009738 + mov r0, #0x18 + ldr r1, [r5, #0x0] + mul r0, r4 + add r0, r1, r0 + ldr r6, [r0, #0x4] +_02009738: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0200973C +sub_0200973C: ; 0x0200973C + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0200974A + bl sub_02020C2C +_0200974A: + ldr r0, [r5, #0x4] + cmp r0, r4 + bgt _02009754 + bl sub_02020C2C +_02009754: + ldrb r0, [r5, #0xc] + cmp r0, #0x1 + bne _02009764 + mov r0, #0x18 + ldr r1, [r5, #0x0] + mul r0, r4 + add r0, r1, r0 + ldr r6, [r0, #0x8] +_02009764: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02009768 +sub_02009768: ; 0x02009768 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02009776 + bl sub_02020C2C +_02009776: + ldr r0, [r5, #0x4] + cmp r0, r4 + bgt _02009780 + bl sub_02020C2C +_02009780: + ldrb r0, [r5, #0xc] + ldr r1, [r5, #0x0] + cmp r0, #0x0 + bne _02009792 + mov r0, #0x4c + mul r0, r4 + add r0, r1, r0 + ldr r0, [r0, #0x44] + pop {r3-r5, pc} +_02009792: + mov r0, #0x18 + mul r0, r4 + add r0, r1, r0 + ldr r0, [r0, #0x10] + pop {r3-r5, pc} + + thumb_func_start sub_0200979C +sub_0200979C: ; 0x0200979C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020097AA + bl sub_02020C2C +_020097AA: + ldr r0, [r5, #0x4] + cmp r0, r4 + bgt _020097B4 + bl sub_02020C2C +_020097B4: + ldrb r0, [r5, #0xc] + ldr r1, [r5, #0x0] + cmp r0, #0x0 + bne _020097C6 + mov r0, #0x4c + mul r0, r4 + add r0, r1, r0 + ldr r0, [r0, #0x48] + pop {r3-r5, pc} +_020097C6: + mov r0, #0x18 + mul r0, r4 + add r0, r1, r0 + ldr r0, [r0, #0x14] + pop {r3-r5, pc} + + thumb_func_start sub_020097D0 +sub_020097D0: ; 0x020097D0 + push {r3-r4} + ldr r4, [r0, #0x8] + mov r1, #0x0 + cmp r4, #0x0 + ble _020097F6 + ldr r3, [r0, #0x4] + add r2, r3, #0x0 +_020097DE: + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _020097EE + mov r0, #0xc + mul r0, r1 + add r0, r3, r0 + pop {r3-r4} + bx lr +_020097EE: + add r1, r1, #0x1 + add r2, #0xc + cmp r1, r4 + blt _020097DE +_020097F6: + mov r0, #0x0 + pop {r3-r4} + bx lr + + thumb_func_start sub_020097FC +sub_020097FC: ; 0x020097FC + push {r3-r7, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x0] + ldr r5, [sp, #0x18] + bl sub_02020E0C + cmp r6, #0x5 + bhi _0200986A + add r1, r6, r6 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r1, #0 + lsl r6, r2, #0 + lsl r4, r4, #0 + lsl r6, r5, #0 + lsl r0, r7, #0 + lsl r2, r0, #0x1 + add r1, r7, #0x0 + add r2, r5, #0x0 + bl sub_0200986C + str r0, [r4, #0x8] + pop {r3-r7, pc} +_02009836: + .byte 0x00, 0x9A, 0x39, 0x1C, 0x2B, 0x1C, 0x00, 0xF0, 0x26, 0xF8 + .byte 0xA0, 0x60, 0xF8, 0xBD, 0x29, 0x1C, 0x00, 0xF0, 0x33, 0xF8, 0xA0, 0x60, 0xF8, 0xBD, 0x29, 0x1C + .byte 0x00, 0xF0, 0x3C, 0xF8, 0xA0, 0x60, 0xF8, 0xBD, 0x29, 0x1C, 0x00, 0xF0, 0x45, 0xF8, 0xA0, 0x60 + .byte 0xF8, 0xBD, 0x29, 0x1C, 0x00, 0xF0, 0x4E, 0xF8, 0xA0, 0x60 +_0200986A: + pop {r3-r7, pc} + + thumb_func_start sub_0200986C +sub_0200986C: ; 0x0200986C + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x8 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + blx sub_020B0088 + str r5, [r4, #0x4] + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0200988C +sub_0200988C: ; 0x0200988C + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + add r0, r3, #0x0 + mov r1, #0xc + add r6, r2, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r7, #0x0 + add r1, r4, #0x0 + blx sub_020B0138 + str r5, [r4, #0x4] + str r6, [r4, #0x8] + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020098B0 +sub_020098B0: ; 0x020098B0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x4 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_020AFEB8 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020098CC +sub_020098CC: ; 0x020098CC + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x4 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_020AFD94 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020098E8 +sub_020098E8: ; 0x020098E8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x4 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_020AFFD8 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02009904 +sub_02009904: ; 0x02009904 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x4 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_020AFD88 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02009920 +sub_02009920: ; 0x02009920 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _0200992E + bl sub_02016A18 +_0200992E: + mov r0, #0x0 + str r0, [r4, #0x8] + pop {r4, pc} + + thumb_func_start sub_02009934 +sub_02009934: ; 0x02009934 + push {r4, lr} + add r4, r0, #0x0 + bne _0200993E + bl sub_02020C2C +_0200993E: + ldr r0, [r4, #0x8] + cmp r0, #0x0 + bne _02009948 + bl sub_02020C2C +_02009948: + ldr r0, [r4, #0x8] + pop {r4, pc} + + thumb_func_start sub_0200994C +sub_0200994C: ; 0x0200994C + push {r3-r4, lr} + sub sp, #0x4 + add r4, r1, #0x0 + add r1, r2, #0x0 + add r2, r3, #0x0 + ldr r0, [r0, #0x0] + ldr r3, [sp, #0x1c] + bl sub_02020D10 + str r0, [r4, #0x0] + ldr r1, [sp, #0x18] + ldr r0, [sp, #0x1c] + str r1, [r4, #0x4] + str r0, [sp, #0x0] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + add r0, r4, #0x0 + bl sub_020097FC + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02009978 +sub_02009978: ; 0x02009978 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [sp, #0x28] + add r4, r1, #0x0 + str r0, [sp, #0x0] + add r0, r2, #0x0 + add r1, r3, #0x0 + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x24] + bl sub_02006C98 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r2, [sp, #0x14] + bl sub_02020CD4 + str r0, [r4, #0x0] + ldr r1, [sp, #0x20] + ldr r0, [sp, #0x24] + str r1, [r4, #0x4] + str r0, [sp, #0x0] + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x1c] + add r0, r4, #0x0 + bl sub_020097FC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020099B0 +sub_020099B0: ; 0x020099B0 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [sp, #0x28] + add r4, r1, #0x0 + str r0, [sp, #0x0] + add r0, r2, #0x0 + add r1, r3, #0x0 + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x24] + bl sub_02009A04 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r2, [sp, #0x14] + bl sub_02020CD4 + str r0, [r4, #0x0] + ldr r1, [sp, #0x20] + ldr r0, [sp, #0x24] + str r1, [r4, #0x4] + str r0, [sp, #0x0] + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x1c] + add r0, r4, #0x0 + bl sub_020097FC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020099E8 +sub_020099E8: ; 0x020099E8 + mov r3, #0x0 + ldr r2, [r0, #0x0] + sub r1, r3, #0x2 + cmp r2, r1 + beq _020099FE + sub r1, r3, #0x2 +_020099F4: + add r0, #0x18 + ldr r2, [r0, #0x0] + add r3, r3, #0x1 + cmp r2, r1 + bne _020099F4 +_020099FE: + add r0, r3, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02009A04 +sub_02009A04: ; 0x02009A04 + push {r4-r6, lr} + add r6, r3, #0x0 + add r5, r2, #0x0 + add r2, r6, #0x0 + bl sub_02006704 + add r4, r0, #0x0 + beq _02009A4A + cmp r5, #0x0 + beq _02009A4A + ldr r0, [sp, #0x10] + cmp r0, #0x0 + bne _02009A2A + ldr r1, [r4, #0x0] + add r0, r6, #0x0 + lsr r1, r1, #0x8 + bl sub_02016998 + b _02009A34 +_02009A2A: + ldr r1, [r4, #0x0] + add r0, r6, #0x0 + lsr r1, r1, #0x8 + bl sub_020169D8 +_02009A34: + add r5, r0, #0x0 + cmp r5, #0x0 + beq _02009A48 + add r0, r4, #0x0 + add r1, r5, #0x0 + blx sub_020CE528 + add r0, r4, #0x0 + bl sub_02016A18 +_02009A48: + add r4, r5, #0x0 +_02009A4A: + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02009A50 +sub_02009A50: ; 0x02009A50 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + bne _02009A5C + bl sub_02020C2C +_02009A5C: + add r0, r4, #0x0 + bl sub_020095D4 + cmp r0, #0x0 + beq _02009A6A + bl sub_02020C2C +_02009A6A: + add r0, r4, #0x0 + bl sub_02009544 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_020095E4 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02009530 + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + add r0, sp, #0x0 + bl sub_0201D1F8 + add sp, #0x10 + pop {r4, pc} + + thumb_func_start sub_02009A90 +sub_02009A90: ; 0x02009A90 + push {r4-r6, lr} + add r5, r0, #0x0 + bne _02009A9A + bl sub_02020C2C +_02009A9A: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02009AC2 + add r4, r6, #0x0 +_02009AA4: + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _02009AB8 + bl sub_02009A50 + cmp r0, #0x0 + bne _02009AB8 + bl sub_02020C2C +_02009AB8: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _02009AA4 +_02009AC2: + pop {r4-r6, pc} + + thumb_func_start sub_02009AC4 +sub_02009AC4: ; 0x02009AC4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + bne _02009AD0 + bl sub_02020C2C +_02009AD0: + add r0, r4, #0x0 + bl sub_020095D4 + cmp r0, #0x0 + beq _02009ADE + bl sub_02020C2C +_02009ADE: + add r0, r4, #0x0 + bl sub_02009544 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_020095E4 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02009530 + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + add r0, sp, #0x0 + bl sub_0201D250 + add sp, #0x10 + pop {r4, pc} + + thumb_func_start sub_02009B04 +sub_02009B04: ; 0x02009B04 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + bne _02009B10 + bl sub_02020C2C +_02009B10: + add r0, r4, #0x0 + bl sub_020095D4 + cmp r0, #0x0 + beq _02009B1E + bl sub_02020C2C +_02009B1E: + add r0, r4, #0x0 + bl sub_02009544 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_020095E4 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02009530 + str r0, [sp, #0x8] + mov r0, #0x1 + str r0, [sp, #0xc] + add r0, sp, #0x0 + bl sub_0201D1F8 + add sp, #0x10 + pop {r4, pc} + + thumb_func_start sub_02009B44 +sub_02009B44: ; 0x02009B44 + push {r4-r6, lr} + add r5, r0, #0x0 + bne _02009B4E + bl sub_02020C2C +_02009B4E: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02009B76 + add r4, r6, #0x0 +_02009B58: + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _02009B6C + bl sub_02009B04 + cmp r0, #0x0 + bne _02009B6C + bl sub_02020C2C +_02009B6C: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _02009B58 +_02009B76: + pop {r4-r6, pc} + + thumb_func_start sub_02009B78 +sub_02009B78: ; 0x02009B78 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + bne _02009B84 + bl sub_02020C2C +_02009B84: + add r0, r4, #0x0 + bl sub_020095D4 + cmp r0, #0x0 + beq _02009B92 + bl sub_02020C2C +_02009B92: + add r0, r4, #0x0 + bl sub_02009544 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_020095E4 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02009530 + str r0, [sp, #0x8] + mov r0, #0x1 + str r0, [sp, #0xc] + add r0, sp, #0x0 + bl sub_0201D250 + add sp, #0x10 + pop {r4, pc} + + thumb_func_start sub_02009BB8 +sub_02009BB8: ; 0x02009BB8 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x0 + bne _02009BC6 + bl sub_02020C2C +_02009BC6: + cmp r5, #0x0 + bne _02009BCE + bl sub_02020C2C +_02009BCE: + add r0, r4, #0x0 + bl sub_02009530 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02009544 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0201D2DC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02009BE8 +sub_02009BE8: ; 0x02009BE8 + push {r3-r5, lr} + add r5, r0, #0x0 + bne _02009BF2 + bl sub_02020C2C +_02009BF2: + add r0, r5, #0x0 + bl sub_02009530 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02009544 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0201D2DC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02009C0C +sub_02009C0C: ; 0x02009C0C + push {r4, lr} + add r4, r0, #0x0 + bne _02009C16 + bl sub_02020C2C +_02009C16: + add r0, r4, #0x0 + bl sub_020095D4 + cmp r0, #0x0 + beq _02009C24 + bl sub_02020C2C +_02009C24: + add r0, r4, #0x0 + bl sub_02009530 + bl sub_0201D324 + pop {r4, pc} + + thumb_func_start sub_02009C30 +sub_02009C30: ; 0x02009C30 + push {r4-r6, lr} + add r5, r0, #0x0 + bne _02009C3A + bl sub_02020C2C +_02009C3A: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02009C5A + add r4, r6, #0x0 +_02009C44: + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _02009C50 + bl sub_02009C0C +_02009C50: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _02009C44 +_02009C5A: + pop {r4-r6, pc} + + thumb_func_start sub_02009C5C +sub_02009C5C: ; 0x02009C5C + push {r4, lr} + add r4, r0, #0x0 + bne _02009C66 + bl sub_02020C2C +_02009C66: + add r0, r4, #0x0 + bl sub_020095D4 + cmp r0, #0x0 + beq _02009C74 + bl sub_02020C2C +_02009C74: + add r0, r4, #0x0 + bl sub_02009530 + bl sub_0201D3B0 + pop {r4, pc} + + thumb_func_start sub_02009C80 +sub_02009C80: ; 0x02009C80 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x0 + bne _02009C8E + bl sub_02020C2C +_02009C8E: + add r0, r4, #0x0 + bl sub_020095D4 + cmp r0, #0x0 + beq _02009C9C + bl sub_02020C2C +_02009C9C: + cmp r5, #0x0 + bne _02009CA4 + bl sub_02020C2C +_02009CA4: + add r0, r5, #0x0 + bl sub_020095D4 + cmp r0, #0x2 + beq _02009CB2 + bl sub_02020C2C +_02009CB2: + add r0, r4, #0x0 + bl sub_02009530 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02009574 + add r1, r0, #0x0 + ldr r1, [r1, #0xc] + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + bl sub_0201D3D4 + cmp r0, #0x0 + bne _02009CDA + add r0, r4, #0x0 + bl sub_0201D3B0 + bl sub_0201D458 +_02009CDA: + pop {r3-r5, pc} + + thumb_func_start sub_02009CDC +sub_02009CDC: ; 0x02009CDC + push {r4, lr} + add r4, r0, #0x0 + bne _02009CE6 + bl sub_02020C2C +_02009CE6: + add r0, r4, #0x0 + bl sub_0201D4F0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02009CF0 +sub_02009CF0: ; 0x02009CF0 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + bne _02009CFC + bl sub_02020C2C +_02009CFC: + add r0, r4, #0x0 + bl sub_020095D4 + cmp r0, #0x1 + beq _02009D0A + bl sub_02020C2C +_02009D0A: + add r0, r4, #0x0 + bl sub_0200955C + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_020095E4 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02009530 + str r0, [sp, #0xc] + add r0, r4, #0x0 + bl sub_02009610 + str r0, [sp, #0x8] + add r0, sp, #0x0 + bl sub_0201E0E4 + add sp, #0x10 + pop {r4, pc} + + thumb_func_start sub_02009D34 +sub_02009D34: ; 0x02009D34 + push {r4-r6, lr} + add r5, r0, #0x0 + bne _02009D3E + bl sub_02020C2C +_02009D3E: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02009D66 + add r4, r6, #0x0 +_02009D48: + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _02009D5C + bl sub_02009CF0 + cmp r0, #0x0 + bne _02009D5C + bl sub_02020C2C +_02009D5C: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _02009D48 +_02009D66: + pop {r4-r6, pc} + + thumb_func_start sub_02009D68 +sub_02009D68: ; 0x02009D68 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + bne _02009D74 + bl sub_02020C2C +_02009D74: + add r0, r4, #0x0 + bl sub_020095D4 + cmp r0, #0x1 + beq _02009D82 + bl sub_02020C2C +_02009D82: + add r0, r4, #0x0 + bl sub_0200955C + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_020095E4 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02009530 + str r0, [sp, #0xc] + add r0, r4, #0x0 + bl sub_02009610 + str r0, [sp, #0x8] + add r0, sp, #0x0 + bl sub_0201E128 + add sp, #0x10 + pop {r4, pc} + + thumb_func_start sub_02009DAC +sub_02009DAC: ; 0x02009DAC + push {r4-r6, lr} + add r5, r0, #0x0 + bne _02009DB6 + bl sub_02020C2C +_02009DB6: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02009DDE + add r4, r6, #0x0 +_02009DC0: + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _02009DD4 + bl sub_02009D68 + cmp r0, #0x0 + bne _02009DD4 + bl sub_02020C2C +_02009DD4: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _02009DC0 +_02009DDE: + pop {r4-r6, pc} + + thumb_func_start sub_02009DE0 +sub_02009DE0: ; 0x02009DE0 + push {r3-r5, lr} + add r5, r0, #0x0 + bne _02009DEA + bl sub_02020C2C +_02009DEA: + add r0, r5, #0x0 + bl sub_02009530 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0200955C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0201E168 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02009E04 +sub_02009E04: ; 0x02009E04 + push {r4, lr} + add r4, r0, #0x0 + bne _02009E0E + bl sub_02020C2C +_02009E0E: + add r0, r4, #0x0 + bl sub_020095D4 + cmp r0, #0x1 + beq _02009E1C + bl sub_02020C2C +_02009E1C: + add r0, r4, #0x0 + bl sub_02009530 + bl sub_0201E1C8 + pop {r4, pc} + + thumb_func_start sub_02009E28 +sub_02009E28: ; 0x02009E28 + push {r4-r6, lr} + add r5, r0, #0x0 + bne _02009E32 + bl sub_02020C2C +_02009E32: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02009E52 + add r4, r6, #0x0 +_02009E3C: + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _02009E48 + bl sub_02009E04 +_02009E48: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _02009E3C +_02009E52: + pop {r4-r6, pc} + + thumb_func_start sub_02009E54 +sub_02009E54: ; 0x02009E54 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02009E62 + bl sub_02020C2C +_02009E62: + add r0, r5, #0x0 + bl sub_020095D4 + cmp r0, #0x1 + beq _02009E70 + bl sub_02020C2C +_02009E70: + add r0, r5, #0x0 + bl sub_02009530 + cmp r4, #0x0 + beq _02009E82 + add r1, r4, #0x0 + bl sub_0201E258 + pop {r3-r5, pc} +_02009E82: + bl sub_0201E230 + pop {r3-r5, pc} + + thumb_func_start sub_02009E88 +sub_02009E88: ; 0x02009E88 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x0 + bl sub_02009E54 + add r1, r4, #0x0 + blx sub_020B19C4 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02009EA8 + asr r1, r0, #0x4 + lsr r1, r1, #0x1b + add r1, r0, r1 + asr r0, r1, #0x5 +_02009EA8: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02009EAC +sub_02009EAC: ; 0x02009EAC + push {r3-r4, lr} + sub sp, #0x14 + add r4, r0, #0x0 + cmp r4, #0x4 + bge _02009EC0 + mov r0, #0x4 + cmp r1, #0x7c + ble _02009EC0 + sub r4, r0, r4 + sub r1, r1, r4 +_02009EC0: + cmp r2, #0x1 + bge _02009ED0 + mov r4, #0x1 + cmp r3, #0x1e + ble _02009ED2 + sub r2, r4, r2 + sub r3, r3, r2 + b _02009ED2 +_02009ED0: + add r4, r2, #0x0 +_02009ED2: + ldr r2, [sp, #0x20] + str r2, [sp, #0x0] + ldr r2, [sp, #0x24] + str r2, [sp, #0x4] + ldr r2, [sp, #0x28] + str r2, [sp, #0x8] + ldr r2, [sp, #0x2c] + str r2, [sp, #0xc] + ldr r2, [sp, #0x30] + str r2, [sp, #0x10] + add r2, r4, #0x0 + bl sub_02009EF0 + add sp, #0x14 + pop {r3-r4, pc} + + thumb_func_start sub_02009EF0 +sub_02009EF0: ; 0x02009EF0 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, _02009F7C ; =0x021C4670 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r0, #0x0 + beq _02009F08 + bl sub_02020C2C +_02009F08: + ldr r0, [sp, #0x30] + mov r1, #0x3c + bl sub_02016998 + ldr r1, _02009F7C ; =0x021C4670 + cmp r0, #0x0 + str r0, [r1, #0x0] + bne _02009F1C + bl sub_02020C2C +_02009F1C: + ldr r1, _02009F7C ; =0x021C4670 + lsl r3, r6, #0x10 + ldr r2, [sp, #0x30] + ldr r0, [r1, #0x0] + lsr r3, r3, #0x10 + str r2, [r0, #0x38] + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, [r1, #0x0] + lsl r1, r5, #0x10 + lsl r2, r4, #0x10 + lsr r1, r1, #0x10 + lsr r2, r2, #0x10 + blx sub_020B0E34 + cmp r0, #0x0 + bne _02009F48 + bl sub_02020C2C +_02009F48: + ldr r0, [sp, #0x2c] + ldr r1, [sp, #0x20] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, _02009F7C ; =0x021C4670 + ldr r2, [sp, #0x24] + ldr r3, [sp, #0x28] + ldr r0, [r0, #0x0] + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + lsl r3, r3, #0x10 + add r0, #0x1c + lsr r1, r1, #0x10 + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + blx sub_020B0E34 + cmp r0, #0x0 + bne _02009F78 + bl sub_02020C2C +_02009F78: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02009F7C: .word 0x021C4670 + + thumb_func_start sub_02009F80 +sub_02009F80: ; 0x02009F80 + push {r3, lr} + ldr r0, _02009F9C ; =0x021C4670 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02009F98 + blx sub_020B0870 + ldr r0, _02009F9C ; =0x021C4670 + ldr r0, [r0, #0x0] + add r0, #0x1c + blx sub_020B0870 +_02009F98: + pop {r3, pc} + nop +_02009F9C: .word 0x021C4670 + + thumb_func_start sub_02009FA0 +sub_02009FA0: ; 0x02009FA0 + push {r3, lr} + ldr r0, _02009FD4 ; =0x021C4670 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02009FAE + bl sub_02020C2C +_02009FAE: + ldr r0, _02009FD4 ; =0x021C4670 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_0200A064 + ldr r0, _02009FD4 ; =0x021C4670 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_0200A06C + ldr r0, _02009FD4 ; =0x021C4670 + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _02009FD4 ; =0x021C4670 + mov r1, #0x0 + str r1, [r0, #0x0] + pop {r3, pc} + nop +_02009FD4: .word 0x021C4670 + + thumb_func_start sub_02009FD8 +sub_02009FD8: ; 0x02009FD8 + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + ldr r0, _0200A024 ; =0x021C4670 + add r7, r1, #0x0 + ldr r0, [r0, #0x0] + add r5, r2, #0x0 + add r4, r3, #0x0 + cmp r0, #0x0 + bne _02009FF0 + bl sub_02020C2C +_02009FF0: + cmp r5, #0x1 + bne _0200A00C + ldr r0, _0200A028 ; =sub_020213A0 + ldr r2, _0200A02C ; =sub_0200A074 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldr r3, _0200A030 ; =sub_0200A0B8 + add r0, r6, #0x0 + add r1, r7, #0x0 + str r4, [sp, #0x8] + bl sub_0202135C + add sp, #0xc + pop {r4-r7, pc} +_0200A00C: + ldr r0, _0200A028 ; =sub_020213A0 + ldr r2, _0200A034 ; =sub_0200A094 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldr r3, _0200A038 ; =sub_0200A0DC + add r0, r6, #0x0 + add r1, r7, #0x0 + str r4, [sp, #0x8] + bl sub_0202135C + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0200A024: .word 0x021C4670 +_0200A028: .word sub_020213A0 + 1 +_0200A02C: .word sub_0200A074 + 1 +_0200A030: .word sub_0200A0B8 + 1 +_0200A034: .word sub_0200A094 + 1 +_0200A038: .word sub_0200A0DC + 1 + + thumb_func_start sub_0200A03C +sub_0200A03C: ; 0x0200A03C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0200A060 ; =0x021C4670 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0200A04C + bl sub_02020C2C +_0200A04C: + cmp r4, #0x0 + bne _0200A056 + ldr r0, _0200A060 ; =0x021C4670 + ldr r0, [r0, #0x0] + pop {r4, pc} +_0200A056: + ldr r0, _0200A060 ; =0x021C4670 + ldr r0, [r0, #0x0] + add r0, #0x1c + pop {r4, pc} + nop +_0200A060: .word 0x021C4670 + + thumb_func_start sub_0200A064 +sub_0200A064: ; 0x0200A064 + ldr r3, _0200A068 ; =sub_020203CC + bx r3 + .balign 4 +_0200A068: .word sub_020203CC + 1 + + thumb_func_start sub_0200A06C +sub_0200A06C: ; 0x0200A06C + ldr r3, _0200A070 ; =sub_02020404 + bx r3 + .balign 4 +_0200A070: .word sub_02020404 + 1 + + thumb_func_start sub_0200A074 +sub_0200A074: ; 0x0200A074 + push {r4, lr} + add r3, r0, #0x0 + ldr r0, _0200A090 ; =0x021C4670 + add r2, r1, #0x0 + ldr r0, [r0, #0x0] + add r1, r3, #0x0 + blx sub_020B0C7C + add r4, r0, #0x0 + bne _0200A08C + bl sub_02020C2C +_0200A08C: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_0200A090: .word 0x021C4670 + + thumb_func_start sub_0200A094 +sub_0200A094: ; 0x0200A094 + push {r4, lr} + add r3, r0, #0x0 + ldr r0, _0200A0B4 ; =0x021C4670 + add r2, r1, #0x0 + ldr r0, [r0, #0x0] + add r1, r3, #0x0 + add r0, #0x1c + blx sub_020B0C7C + add r4, r0, #0x0 + bne _0200A0AE + bl sub_02020C2C +_0200A0AE: + add r0, r4, #0x0 + pop {r4, pc} + nop +_0200A0B4: .word 0x021C4670 + + thumb_func_start sub_0200A0B8 +sub_0200A0B8: ; 0x0200A0B8 + push {r4, lr} + add r1, r0, #0x0 + ldr r0, _0200A0D4 ; =0x021C4670 + ldr r0, [r0, #0x0] + blx sub_020B0BB0 + add r4, r0, #0x0 + ldr r0, _0200A0D8 ; =0x0000FFFE + cmp r4, r0 + bne _0200A0D0 + bl sub_02020C2C +_0200A0D0: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_0200A0D4: .word 0x021C4670 +_0200A0D8: .word 0x0000FFFE + + thumb_func_start sub_0200A0DC +sub_0200A0DC: ; 0x0200A0DC + push {r4, lr} + add r1, r0, #0x0 + ldr r0, _0200A0FC ; =0x021C4670 + ldr r0, [r0, #0x0] + add r0, #0x1c + blx sub_020B0BB0 + add r4, r0, #0x0 + ldr r0, _0200A100 ; =0x0000FFFE + cmp r4, r0 + bne _0200A0F6 + bl sub_02020C2C +_0200A0F6: + add r0, r4, #0x0 + pop {r4, pc} + nop +_0200A0FC: .word 0x021C4670 +_0200A100: .word 0x0000FFFE + + thumb_func_start sub_0200A104 +sub_0200A104: ; 0x0200A104 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x10 + ldrsb r2, [r5, r0] + mov r0, #0x14 + ldrsh r0, [r5, r0] + add r1, r2, #0x0 + mov r7, #0x1a + ldrsh r2, [r5, r7] + mul r1, r0 + mov r6, #0xa + ldrsh r0, [r5, r6] + add r1, r2, r1 + mov r4, #0x0 + cmp r0, r1 + beq _0200A162 + cmp r2, r0 + beq _0200A162 + strh r1, [r5, #0x1a] + ldrh r3, [r5, #0x18] + ldrh r0, [r5, #0x16] + add r2, r5, #0x0 + add r1, r5, #0x0 + add r0, r3, r0 + strh r0, [r5, #0x18] + ldrh r3, [r5, #0x18] + ldrh r0, [r5, #0x8] + add r2, #0x1a + add r1, #0x18 + cmp r3, r0 + blo _0200A166 + mov r3, #0x10 + ldrsh r0, [r2, r4] + ldrsb r3, [r5, r3] + add r0, r0, r3 + strh r0, [r2, #0x0] + ldrsh r2, [r5, r7] + ldrsh r0, [r5, r6] + cmp r2, r0 + beq _0200A15E + ldrh r2, [r1, #0x0] + ldrh r0, [r5, #0x8] + sub r0, r2, r0 + strh r0, [r1, #0x0] + b _0200A166 +_0200A15E: + mov r4, #0x1 + b _0200A166 +_0200A162: + strh r0, [r5, #0x1a] + mov r4, #0x1 +_0200A166: + ldr r1, [r5, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0200A17C + mov r2, #0x1a + ldrsh r2, [r5, r2] + ldr r0, _0200A198 ; =0x04000050 + ldr r1, [r5, #0x0] + blx sub_020C74B8 + b _0200A18E +_0200A17C: + mov r0, #0x2 + tst r0, r1 + beq _0200A18E + mov r2, #0x1a + ldrsh r2, [r5, r2] + ldr r0, _0200A19C ; =0x04001050 + ldr r1, [r5, #0x0] + blx sub_020C74B8 +_0200A18E: + cmp r4, #0x1 + bne _0200A196 + mov r0, #0x0 + str r0, [r5, #0x1c] +_0200A196: + pop {r3-r7, pc} + .balign 4 +_0200A198: .word 0x04000050 +_0200A19C: .word 0x04001050 + + thumb_func_start sub_0200A1A0 +sub_0200A1A0: ; 0x0200A1A0 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x1c] + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r0, #0x0 + beq _0200A1B4 + bl sub_02020C2C +_0200A1B4: + ldr r1, [sp, #0x18] + mov r0, #0x1 + lsl r1, r1, #0x18 + str r0, [r5, #0x1c] + lsr r1, r1, #0x18 + str r1, [r5, #0x0] + ldr r1, [sp, #0x1c] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [r5, #0x4] + strh r4, [r5, #0x8] + strh r6, [r5, #0xa] + strh r7, [r5, #0x1a] + sub r1, r7, r6 + strh r1, [r5, #0x12] + mov r1, #0x12 + ldrsh r2, [r5, r1] + cmp r2, #0x0 + ble _0200A1E0 + sub r1, #0x13 + strb r1, [r5, #0x10] + b _0200A1EA +_0200A1E0: + strb r0, [r5, #0x10] + ldrsh r0, [r5, r1] + sub r1, #0x13 + mul r1, r0 + strh r1, [r5, #0x12] +_0200A1EA: + mov r0, #0x12 + ldrsh r0, [r5, r0] + add r1, r4, #0x0 + blx sub_020EBC80 + strh r0, [r5, #0x14] + mov r0, #0x12 + ldrsh r0, [r5, r0] + add r1, r4, #0x0 + blx sub_020EBC80 + strh r1, [r5, #0x16] + mov r0, #0x0 + strh r0, [r5, #0x18] + pop {r3-r7, pc} + + thumb_func_start sub_0200A208 +sub_0200A208: ; 0x0200A208 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r6, r2, #0x0 + add r4, r3, #0x0 + cmp r5, #0x0 + beq _0200A25E + ldr r1, [sp, #0x20] + mov r0, #0x1 + tst r0, r1 + beq _0200A23A + ldr r0, _0200A264 ; =0x04000050 + add r1, r4, #0x0 + blx sub_020C74B8 + str r4, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, _0200A268 ; =0x021C4694 + add r1, r5, #0x0 + add r2, r7, #0x0 + add r3, r6, #0x0 + bl sub_0200A1A0 +_0200A23A: + ldr r1, [sp, #0x20] + mov r0, #0x2 + tst r0, r1 + beq _0200A25E + ldr r0, _0200A26C ; =0x04001050 + add r1, r4, #0x0 + add r2, r6, #0x0 + blx sub_020C74B8 + str r4, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + ldr r0, _0200A270 ; =0x021C4674 + add r1, r5, #0x0 + add r2, r7, #0x0 + add r3, r6, #0x0 + bl sub_0200A1A0 +_0200A25E: + add sp, #0x8 + pop {r3-r7, pc} + nop +_0200A264: .word 0x04000050 +_0200A268: .word 0x021C4694 +_0200A26C: .word 0x04001050 +_0200A270: .word 0x021C4674 + + thumb_func_start sub_0200A274 +sub_0200A274: ; 0x0200A274 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + mov r0, #0x1 + add r6, r1, #0x0 + tst r0, r4 + beq _0200A28A + ldr r0, _0200A2A4 ; =0x04000050 + add r2, r5, #0x0 + blx sub_020C74B8 +_0200A28A: + mov r0, #0x2 + tst r0, r4 + beq _0200A29A + ldr r0, _0200A2A8 ; =0x04001050 + add r1, r6, #0x0 + add r2, r5, #0x0 + blx sub_020C74B8 +_0200A29A: + add r0, r4, #0x0 + bl sub_0200A2D8 + pop {r4-r6, pc} + nop +_0200A2A4: .word 0x04000050 +_0200A2A8: .word 0x04001050 + + thumb_func_start sub_0200A2AC +sub_0200A2AC: ; 0x0200A2AC + push {r3, lr} + ldr r0, _0200A2CC ; =0x021C4694 + mov r1, #0x0 + mov r2, #0x20 + blx sub_020CE34C + ldr r0, _0200A2D0 ; =0x021C4674 + mov r1, #0x0 + mov r2, #0x20 + blx sub_020CE34C + ldr r0, _0200A2D4 ; =0x021C4674 + mov r1, #0x0 + str r1, [r0, #0x3c] + str r1, [r0, #0x1c] + pop {r3, pc} + .balign 4 +_0200A2CC: .word 0x021C4694 +_0200A2D0: .word 0x021C4674 +_0200A2D4: .word 0x021C4674 + + thumb_func_start sub_0200A2D8 +sub_0200A2D8: ; 0x0200A2D8 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1 + tst r0, r4 + beq _0200A2F2 + ldr r0, _0200A30C ; =0x021C4694 + mov r1, #0x0 + mov r2, #0x20 + blx sub_020CE34C + ldr r0, _0200A310 ; =0x021C4674 + mov r1, #0x0 + str r1, [r0, #0x3c] +_0200A2F2: + mov r0, #0x2 + tst r0, r4 + beq _0200A308 + ldr r0, _0200A314 ; =0x021C4674 + mov r1, #0x0 + mov r2, #0x20 + blx sub_020CE34C + ldr r0, _0200A310 ; =0x021C4674 + mov r1, #0x0 + str r1, [r0, #0x1c] +_0200A308: + pop {r4, pc} + nop +_0200A30C: .word 0x021C4694 +_0200A310: .word 0x021C4674 +_0200A314: .word 0x021C4674 + + thumb_func_start sub_0200A318 +sub_0200A318: ; 0x0200A318 + push {r3, lr} + ldr r0, _0200A338 ; =0x021C4674 + ldr r0, [r0, #0x3c] + cmp r0, #0x0 + beq _0200A328 + ldr r0, _0200A33C ; =0x021C4694 + bl sub_0200A104 +_0200A328: + ldr r0, _0200A338 ; =0x021C4674 + ldr r0, [r0, #0x1c] + cmp r0, #0x0 + beq _0200A336 + ldr r0, _0200A340 ; =0x021C4674 + bl sub_0200A104 +_0200A336: + pop {r3, pc} + .balign 4 +_0200A338: .word 0x021C4674 +_0200A33C: .word 0x021C4694 +_0200A340: .word 0x021C4674 + + thumb_func_start sub_0200A344 +sub_0200A344: ; 0x0200A344 + cmp r0, #0x3 + bne _0200A35A + ldr r0, _0200A380 ; =0x021C4674 + ldr r1, [r0, #0x3c] + cmp r1, #0x0 + bne _0200A37A + ldr r0, [r0, #0x1c] + cmp r0, #0x0 + bne _0200A37A + mov r0, #0x1 + bx lr +_0200A35A: + cmp r0, #0x1 + bne _0200A36A + ldr r0, _0200A380 ; =0x021C4674 + ldr r0, [r0, #0x3c] + cmp r0, #0x0 + bne _0200A37A + mov r0, #0x1 + bx lr +_0200A36A: + cmp r0, #0x2 + bne _0200A37A + ldr r0, _0200A380 ; =0x021C4674 + ldr r0, [r0, #0x1c] + cmp r0, #0x0 + bne _0200A37A + mov r0, #0x1 + bx lr +_0200A37A: + mov r0, #0x0 + bx lr + nop +_0200A380: .word 0x021C4674 + + thumb_func_start sub_0200A384 +sub_0200A384: ; 0x0200A384 + ldr r3, _0200A388 ; =sub_0200650C + bx r3 + .balign 4 +_0200A388: .word sub_0200650C + 1 + + thumb_func_start sub_0200A38C +sub_0200A38C: ; 0x0200A38C + ldr r3, _0200A390 ; =sub_02016A18 + bx r3 + .balign 4 +_0200A390: .word sub_02016A18 + 1 + + thumb_func_start sub_0200A394 +sub_0200A394: ; 0x0200A394 + push {r3-r7, lr} + sub sp, #0x8 + add r3, r0, #0x0 + ldrh r0, [r3, #0x0] + add r5, r1, #0x0 + add r4, r2, #0x0 + cmp r5, r0 + bhs _0200A404 + lsl r0, r5, #0x3 + add r0, r3, r0 + ldr r2, [r0, #0x4] + ldr r1, [r0, #0x8] + ldr r6, _0200A40C ; =0x000002FD + str r2, [sp, #0x0] + str r1, [sp, #0x4] + ldrh r0, [r3, #0x2] + add r7, r5, #0x1 + mul r6, r0 + add r0, r7, #0x0 + mul r0, r6 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + lsl r0, r6, #0x10 + orr r0, r6 + eor r2, r0 + eor r0, r1 + str r0, [sp, #0x4] + str r2, [sp, #0x0] + add r1, r3, r2 + add r0, r4, #0x0 + add r2, sp, #0x0 + bl sub_0200A4C0 + ldr r2, [sp, #0x4] + ldr r0, _0200A410 ; =0x00091BD3 + add r1, r7, #0x0 + mul r0, r1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + sub r3, r2, #0x1 + cmp r2, #0x0 + beq _0200A408 + ldr r0, _0200A414 ; =0x0000493D +_0200A3EA: + ldrh r1, [r4, #0x0] + eor r1, r5 + strh r1, [r4, #0x0] + add r1, r5, r0 + lsl r1, r1, #0x10 + lsr r5, r1, #0x10 + add r1, r3, #0x0 + add r4, r4, #0x2 + sub r3, r3, #0x1 + cmp r1, #0x0 + bne _0200A3EA + add sp, #0x8 + pop {r3-r7, pc} +_0200A404: + bl sub_02020C2C +_0200A408: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0200A40C: .word 0x000002FD +_0200A410: .word 0x00091BD3 +_0200A414: .word 0x0000493D + + thumb_func_start sub_0200A418 +sub_0200A418: ; 0x0200A418 + push {r4-r6, lr} + sub sp, #0x10 + add r5, r1, #0x0 + add r1, r3, #0x0 + add r4, r2, #0x0 + bl sub_02006670 + add r6, r0, #0x0 + beq _0200A4AE + add r1, sp, #0xc + str r1, [sp, #0x0] + add r1, r5, #0x0 + mov r2, #0x0 + mov r3, #0x4 + bl sub_02006814 + add r0, sp, #0x4 + lsl r2, r4, #0x3 + str r0, [sp, #0x0] + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r2, #0x4 + mov r3, #0x8 + bl sub_02006814 + add r0, sp, #0x4 + ldrh r2, [r0, #0xa] + ldr r0, _0200A4B4 ; =0x000002FD + add r1, r4, #0x1 + mul r0, r2 + mul r0, r1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + lsl r0, r1, #0x10 + orr r1, r0 + ldr r0, [sp, #0x4] + eor r0, r1 + str r0, [sp, #0x4] + ldr r0, [sp, #0x8] + eor r0, r1 + str r0, [sp, #0x8] + ldr r0, [sp, #0x20] + add r1, r5, #0x0 + str r0, [sp, #0x0] + ldr r3, [sp, #0x8] + ldr r2, [sp, #0x4] + add r0, r6, #0x0 + lsl r3, r3, #0x1 + bl sub_02006814 + ldr r2, _0200A4B8 ; =0x00091BD3 + add r3, r4, #0x1 + mul r2, r3 + lsl r2, r2, #0x10 + ldr r0, [sp, #0x8] + lsr r3, r2, #0x10 + sub r2, r0, #0x1 + ldr r1, [sp, #0x20] + cmp r0, #0x0 + beq _0200A4A8 + ldr r0, _0200A4BC ; =0x0000493D +_0200A492: + ldrh r4, [r1, #0x0] + eor r4, r3 + strh r4, [r1, #0x0] + add r3, r3, r0 + lsl r3, r3, #0x10 + add r4, r2, #0x0 + add r1, r1, #0x2 + lsr r3, r3, #0x10 + sub r2, r2, #0x1 + cmp r4, #0x0 + bne _0200A492 +_0200A4A8: + add r0, r6, #0x0 + bl sub_020066F4 +_0200A4AE: + add sp, #0x10 + pop {r4-r6, pc} + nop +_0200A4B4: .word 0x000002FD +_0200A4B8: .word 0x00091BD3 +_0200A4BC: .word 0x0000493D + + thumb_func_start sub_0200A4C0 +sub_0200A4C0: ; 0x0200A4C0 + add r3, r0, #0x0 + add r0, r1, #0x0 + add r1, r3, #0x0 + ldr r2, [r2, #0x4] + ldr r3, _0200A4D0 ; =sub_020CE1E0 + lsl r2, r2, #0x1 + bx r3 + nop +_0200A4D0: .word sub_020CE1E0 + + thumb_func_start sub_0200A4D4 +sub_0200A4D4: ; 0x0200A4D4 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldrh r0, [r5, #0x0] + add r4, r1, #0x0 + str r2, [sp, #0x0] + cmp r4, r0 + bhs _0200A56A + lsl r0, r4, #0x3 + add r0, r5, r0 + ldr r3, [r0, #0x4] + ldr r2, [r0, #0x8] + ldrh r1, [r5, #0x2] + ldr r6, _0200A578 ; =0x000002FD + add r0, r4, #0x1 + mul r6, r1 + add r1, r0, #0x0 + mul r1, r6 + lsl r0, r1, #0x10 + lsr r1, r0, #0x10 + lsl r0, r1, #0x10 + orr r1, r0 + add r0, r3, #0x0 + add r6, r2, #0x0 + str r3, [sp, #0x8] + eor r0, r1 + eor r6, r1 + str r0, [sp, #0x8] + lsl r0, r6, #0x1 + str r0, [sp, #0x4] + str r2, [sp, #0xc] + ldr r1, [sp, #0x4] + mov r0, #0x0 + str r6, [sp, #0xc] + bl sub_020169D8 + add r7, r0, #0x0 + beq _0200A574 + ldr r0, [sp, #0x8] + ldr r2, [sp, #0x4] + add r0, r5, r0 + add r1, r7, #0x0 + blx sub_020CE1E0 + ldr r1, _0200A57C ; =0x00091BD3 + add r2, r4, #0x1 + mul r1, r2 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + add r0, r7, #0x0 + sub r1, r6, #0x1 + cmp r6, #0x0 + beq _0200A556 + ldr r3, _0200A580 ; =0x0000493D +_0200A540: + ldrh r4, [r0, #0x0] + eor r4, r2 + strh r4, [r0, #0x0] + add r2, r2, r3 + lsl r2, r2, #0x10 + add r4, r1, #0x0 + add r0, r0, #0x2 + lsr r2, r2, #0x10 + sub r1, r1, #0x1 + cmp r4, #0x0 + bne _0200A540 +_0200A556: + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_02021E8C + add r0, r7, #0x0 + bl sub_02016A18 + add sp, #0x10 + pop {r3-r7, pc} +_0200A56A: + bl sub_02020C2C + ldr r0, [sp, #0x0] + bl sub_02021A4C +_0200A574: + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0200A578: .word 0x000002FD +_0200A57C: .word 0x00091BD3 +_0200A580: .word 0x0000493D + + thumb_func_start sub_0200A584 +sub_0200A584: ; 0x0200A584 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldrh r0, [r5, #0x0] + add r4, r1, #0x0 + str r2, [sp, #0x0] + cmp r4, r0 + bhs _0200A62C + lsl r0, r4, #0x3 + add r0, r5, r0 + ldr r3, [r0, #0x4] + ldr r2, [r0, #0x8] + ldrh r1, [r5, #0x2] + ldr r6, _0200A63C ; =0x000002FD + add r0, r4, #0x1 + mul r6, r1 + add r1, r0, #0x0 + mul r1, r6 + lsl r0, r1, #0x10 + lsr r1, r0, #0x10 + lsl r0, r1, #0x10 + orr r1, r0 + add r0, r3, #0x0 + add r6, r2, #0x0 + str r3, [sp, #0x8] + eor r0, r1 + eor r6, r1 + str r0, [sp, #0x8] + lsl r0, r6, #0x1 + str r0, [sp, #0x4] + str r2, [sp, #0xc] + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + str r6, [sp, #0xc] + bl sub_020169D8 + add r7, r0, #0x0 + beq _0200A626 + ldr r0, [sp, #0x8] + ldr r2, [sp, #0x4] + add r0, r5, r0 + add r1, r7, #0x0 + blx sub_020CE1E0 + ldr r1, _0200A640 ; =0x00091BD3 + add r2, r4, #0x1 + mul r1, r2 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + add r0, r7, #0x0 + sub r1, r6, #0x1 + cmp r6, #0x0 + beq _0200A606 + ldr r3, _0200A644 ; =0x0000493D +_0200A5F0: + ldrh r4, [r0, #0x0] + eor r4, r2 + strh r4, [r0, #0x0] + add r2, r2, r3 + lsl r2, r2, #0x10 + add r4, r1, #0x0 + add r0, r0, #0x2 + lsr r2, r2, #0x10 + sub r1, r1, #0x1 + cmp r4, #0x0 + bne _0200A5F0 +_0200A606: + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl sub_020219F4 + add r4, r0, #0x0 + beq _0200A61A + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_02021E8C +_0200A61A: + add r0, r7, #0x0 + bl sub_02016A18 + add sp, #0x10 + add r0, r4, #0x0 + pop {r3-r7, pc} +_0200A626: + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0200A62C: + bl sub_02020C2C + ldr r1, [sp, #0x0] + mov r0, #0x4 + bl sub_020219F4 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0200A63C: .word 0x000002FD +_0200A640: .word 0x00091BD3 +_0200A644: .word 0x0000493D + + thumb_func_start sub_0200A648 +sub_0200A648: ; 0x0200A648 + push {r3-r7, lr} + add r7, r3, #0x0 + add r5, r1, #0x0 + add r1, r7, #0x0 + add r4, r2, #0x0 + bl sub_02006670 + add r6, r0, #0x0 + beq _0200A66E + ldr r1, [sp, #0x18] + add r2, r4, #0x0 + str r1, [sp, #0x0] + add r1, r5, #0x0 + add r3, r7, #0x0 + bl sub_0200A670 + add r0, r6, #0x0 + bl sub_020066F4 +_0200A66E: + pop {r3-r7, pc} + + thumb_func_start sub_0200A670 +sub_0200A670: ; 0x0200A670 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r2, #0x0 + add r2, sp, #0x10 + add r4, r3, #0x0 + str r2, [sp, #0x0] + mov r2, #0x0 + mov r3, #0x4 + add r7, r0, #0x0 + str r1, [sp, #0x4] + bl sub_02006814 + add r0, sp, #0x8 + ldrh r0, [r0, #0x8] + cmp r5, r0 + bhs _0200A71E + add r0, sp, #0x8 + lsl r2, r5, #0x3 + str r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r0, r7, #0x0 + add r2, r2, #0x4 + mov r3, #0x8 + bl sub_02006814 + add r0, sp, #0x8 + ldrh r2, [r0, #0xa] + ldr r0, _0200A72C ; =0x000002FD + add r1, r5, #0x1 + mul r0, r2 + mul r0, r1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + lsl r0, r1, #0x10 + orr r1, r0 + ldr r0, [sp, #0x8] + eor r0, r1 + str r0, [sp, #0x8] + ldr r0, [sp, #0xc] + eor r0, r1 + lsl r6, r0, #0x1 + str r0, [sp, #0xc] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_020169D8 + add r4, r0, #0x0 + beq _0200A728 + str r4, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x8] + add r0, r7, #0x0 + add r3, r6, #0x0 + bl sub_02006814 + ldr r2, _0200A730 ; =0x00091BD3 + add r3, r5, #0x1 + mul r2, r3 + lsl r2, r2, #0x10 + ldr r0, [sp, #0xc] + lsr r3, r2, #0x10 + add r1, r4, #0x0 + sub r2, r0, #0x1 + cmp r0, #0x0 + beq _0200A70A + ldr r0, _0200A734 ; =0x0000493D +_0200A6F4: + ldrh r5, [r1, #0x0] + eor r5, r3 + strh r5, [r1, #0x0] + add r3, r3, r0 + lsl r3, r3, #0x10 + add r5, r2, #0x0 + add r1, r1, #0x2 + lsr r3, r3, #0x10 + sub r2, r2, #0x1 + cmp r5, #0x0 + bne _0200A6F4 +_0200A70A: + ldr r0, [sp, #0x28] + ldr r2, [sp, #0xc] + add r1, r4, #0x0 + bl sub_02021E8C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x14 + pop {r4-r7, pc} +_0200A71E: + bl sub_02020C2C + ldr r0, [sp, #0x28] + bl sub_02021A4C +_0200A728: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_0200A72C: .word 0x000002FD +_0200A730: .word 0x00091BD3 +_0200A734: .word 0x0000493D + + thumb_func_start sub_0200A738 +sub_0200A738: ; 0x0200A738 + push {r3-r7, lr} + add r6, r3, #0x0 + add r5, r1, #0x0 + add r1, r6, #0x0 + add r4, r2, #0x0 + bl sub_02006670 + add r7, r0, #0x0 + beq _0200A75E + add r1, r5, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_0200A76C + add r4, r0, #0x0 + add r0, r7, #0x0 + bl sub_020066F4 + b _0200A768 +_0200A75E: + mov r0, #0x4 + add r1, r6, #0x0 + bl sub_020219F4 + add r4, r0, #0x0 +_0200A768: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0200A76C +sub_0200A76C: ; 0x0200A76C + push {r3-r7, lr} + sub sp, #0x18 + add r4, r2, #0x0 + add r2, sp, #0x14 + add r5, r3, #0x0 + str r2, [sp, #0x0] + mov r2, #0x0 + mov r3, #0x4 + add r7, r0, #0x0 + str r1, [sp, #0x4] + bl sub_02006814 + add r0, sp, #0xc + ldrh r0, [r0, #0x8] + cmp r4, r0 + bhs _0200A82A + add r0, sp, #0xc + lsl r2, r4, #0x3 + str r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r0, r7, #0x0 + add r2, r2, #0x4 + mov r3, #0x8 + bl sub_02006814 + add r0, sp, #0xc + ldrh r2, [r0, #0xa] + ldr r0, _0200A83C ; =0x000002FD + add r1, r4, #0x1 + mul r0, r2 + mul r0, r1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + lsl r0, r1, #0x10 + orr r1, r0 + ldr r0, [sp, #0xc] + eor r0, r1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + eor r0, r1 + add r1, r5, #0x0 + str r0, [sp, #0x10] + bl sub_020219F4 + str r0, [sp, #0x8] + cmp r0, #0x0 + beq _0200A824 + ldr r0, [sp, #0x10] + lsl r6, r0, #0x1 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020169D8 + add r5, r0, #0x0 + beq _0200A824 + str r5, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r2, [sp, #0xc] + add r0, r7, #0x0 + add r3, r6, #0x0 + bl sub_02006814 + ldr r2, _0200A840 ; =0x00091BD3 + add r3, r4, #0x1 + mul r2, r3 + lsl r2, r2, #0x10 + ldr r0, [sp, #0x10] + lsr r3, r2, #0x10 + add r1, r5, #0x0 + sub r2, r0, #0x1 + cmp r0, #0x0 + beq _0200A814 + ldr r0, _0200A844 ; =0x0000493D +_0200A7FE: + ldrh r4, [r1, #0x0] + eor r4, r3 + strh r4, [r1, #0x0] + add r3, r3, r0 + lsl r3, r3, #0x10 + add r4, r2, #0x0 + add r1, r1, #0x2 + lsr r3, r3, #0x10 + sub r2, r2, #0x1 + cmp r4, #0x0 + bne _0200A7FE +_0200A814: + ldr r0, [sp, #0x8] + ldr r2, [sp, #0x10] + add r1, r5, #0x0 + bl sub_02021E8C + add r0, r5, #0x0 + bl sub_02016A18 +_0200A824: + ldr r0, [sp, #0x8] + add sp, #0x18 + pop {r3-r7, pc} +_0200A82A: + bl sub_02020C2C + mov r0, #0x4 + add r1, r5, #0x0 + bl sub_020219F4 + add sp, #0x18 + pop {r3-r7, pc} + nop +_0200A83C: .word 0x000002FD +_0200A840: .word 0x00091BD3 +_0200A844: .word 0x0000493D + + thumb_func_start sub_0200A848 +sub_0200A848: ; 0x0200A848 + ldrh r0, [r0, #0x0] + bx lr + + thumb_func_start sub_0200A84C +sub_0200A84C: ; 0x0200A84C + push {r3, lr} + sub sp, #0x8 + add r3, r0, #0x0 + mov r0, #0x4 + add r2, r1, #0x0 + str r0, [sp, #0x0] + add r1, r3, #0x0 + add r0, sp, #0x4 + mov r3, #0x0 + bl sub_02006548 + add r0, sp, #0x4 + ldrh r0, [r0, #0x0] + add sp, #0x8 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0200A86C +sub_0200A86C: ; 0x0200A86C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r3, #0x0 + mov r1, #0xc + add r7, r2, #0x0 + str r3, [sp, #0x0] + bl sub_020169D8 + add r4, r0, #0x0 + beq _0200A8B4 + cmp r5, #0x0 + bne _0200A8A0 + ldr r2, [sp, #0x0] + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_0200A384 + str r0, [r4, #0x8] + cmp r0, #0x0 + bne _0200A8AA + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r7, pc} +_0200A8A0: + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl sub_02006670 + str r0, [r4, #0x8] +_0200A8AA: + strh r5, [r4, #0x0] + strh r6, [r4, #0x4] + ldr r0, [sp, #0x0] + strh r7, [r4, #0x6] + strh r0, [r4, #0x2] +_0200A8B4: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0200A8B8 +sub_0200A8B8: ; 0x0200A8B8 + push {r4, lr} + add r4, r0, #0x0 + beq _0200A8DE + ldrh r0, [r4, #0x0] + cmp r0, #0x0 + beq _0200A8CA + cmp r0, #0x1 + beq _0200A8D2 + b _0200A8D8 +_0200A8CA: + ldr r0, [r4, #0x8] + bl sub_0200A38C + b _0200A8D8 +_0200A8D2: + ldr r0, [r4, #0x8] + bl sub_020066F4 +_0200A8D8: + add r0, r4, #0x0 + bl sub_02016A18 +_0200A8DE: + pop {r4, pc} + + thumb_func_start sub_0200A8E0 +sub_0200A8E0: ; 0x0200A8E0 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldrh r0, [r4, #0x0] + add r3, r1, #0x0 + cmp r0, #0x0 + beq _0200A8F6 + cmp r0, #0x1 + beq _0200A900 + add sp, #0x4 + pop {r3-r4, pc} +_0200A8F6: + ldr r0, [r4, #0x8] + bl sub_0200A4D4 + add sp, #0x4 + pop {r3-r4, pc} +_0200A900: + str r2, [sp, #0x0] + add r2, r3, #0x0 + ldrh r1, [r4, #0x6] + ldrh r3, [r4, #0x2] + ldr r0, [r4, #0x8] + bl sub_0200A670 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0200A914 +sub_0200A914: ; 0x0200A914 + push {r3, lr} + add r3, r0, #0x0 + ldrh r0, [r3, #0x0] + add r2, r1, #0x0 + cmp r0, #0x0 + beq _0200A926 + cmp r0, #0x1 + beq _0200A930 + b _0200A93C +_0200A926: + ldrh r2, [r3, #0x2] + ldr r0, [r3, #0x8] + bl sub_0200A584 + pop {r3, pc} +_0200A930: + ldr r0, [r3, #0x8] + ldrh r1, [r3, #0x6] + ldrh r3, [r3, #0x2] + bl sub_0200A76C + pop {r3, pc} +_0200A93C: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0200A940 +sub_0200A940: ; 0x0200A940 + push {r3, lr} + add r1, r0, #0x0 + ldrh r0, [r1, #0x0] + cmp r0, #0x0 + beq _0200A950 + cmp r0, #0x1 + beq _0200A958 + b _0200A962 +_0200A950: + ldr r0, [r1, #0x8] + bl sub_0200A848 + pop {r3, pc} +_0200A958: + ldrh r0, [r1, #0x4] + ldrh r1, [r1, #0x6] + bl sub_0200A84C + pop {r3, pc} +_0200A962: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0200A968 +sub_0200A968: ; 0x0200A968 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldrh r0, [r4, #0x0] + add r3, r1, #0x0 + cmp r0, #0x0 + beq _0200A97E + cmp r0, #0x1 + beq _0200A988 + add sp, #0x4 + pop {r3-r4, pc} +_0200A97E: + ldr r0, [r4, #0x8] + bl sub_0200A394 + add sp, #0x4 + pop {r3-r4, pc} +_0200A988: + str r2, [sp, #0x0] + add r2, r3, #0x0 + ldrh r0, [r4, #0x4] + ldrh r1, [r4, #0x6] + ldrh r3, [r4, #0x2] + bl sub_0200A418 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0200A99C +sub_0200A99C: ; 0x0200A99C + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r3, r1, #0x0 + ldr r2, _0200A9C0 ; =0x0000016A + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r6, r0, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0200A968 + add r0, r6, #0x0 + bl sub_0200A8B8 + pop {r4-r6, pc} + .balign 4 +_0200A9C0: .word 0x0000016A + + thumb_func_start sub_0200A9C4 +sub_0200A9C4: ; 0x0200A9C4 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x4] + add r5, r1, #0x0 + mov r0, #0x1 + ldr r1, [sp, #0x4] + lsl r0, r0, #0xa + add r6, r2, #0x0 + str r3, [sp, #0x0] + bl sub_020219F4 + add r4, r0, #0x0 + beq _0200AA0E + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0200A914 + add r5, r0, #0x0 + beq _0200AA08 + add r0, r7, #0x0 + add r1, r4, #0x0 + add r2, r5, #0x0 + bl sub_0200B7B8 + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02021ACC + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02021A20 +_0200AA08: + add r0, r4, #0x0 + bl sub_02021A20 +_0200AA0E: + ldr r0, [sp, #0x4] + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0200AA14 +sub_0200AA14: ; 0x0200AA14 + push {r4-r6, lr} + add r5, r1, #0x0 + mov r2, #0x93 + add r6, r0, #0x0 + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + add r3, r5, #0x0 + bl sub_0200A86C + add r4, r0, #0x0 + beq _0200AA4C + mov r0, #0x10 + add r1, r5, #0x0 + bl sub_020219F4 + add r5, r0, #0x0 + beq _0200AA42 + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_0200A8E0 +_0200AA42: + add r0, r4, #0x0 + bl sub_0200A8B8 + add r0, r5, #0x0 + pop {r4-r6, pc} +_0200AA4C: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0200AA50 +sub_0200AA50: ; 0x0200AA50 + push {r3-r5, lr} + ldr r2, _0200AA7C ; =0x0000016A + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r5, r0, #0x0 + beq _0200AA76 + add r1, r4, #0x0 + bl sub_0200A914 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0200A8B8 + add r0, r4, #0x0 + pop {r3-r5, pc} +_0200AA76: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0200AA7C: .word 0x0000016A + + thumb_func_start sub_0200AA80 +sub_0200AA80: ; 0x0200AA80 + ldr r3, _0200AA8C ; =sub_0200AA90 + add r2, r0, #0x0 + mov r0, #0x8 + mov r1, #0x20 + bx r3 + nop +_0200AA8C: .word sub_0200AA90 + 1 + + thumb_func_start sub_0200AA90 +sub_0200AA90: ; 0x0200AA90 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r0, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + bne _0200AAA0 + bl sub_02020C2C +_0200AAA0: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _0200AAAA + bl sub_02020C2C +_0200AAAA: + ldr r0, [sp, #0x4] + mov r1, #0x10 + bl sub_020169D8 + add r4, r0, #0x0 + beq _0200AB10 + ldr r0, [sp, #0x4] + str r7, [r4, #0x0] + str r0, [r4, #0x4] + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + bl sub_020219F4 + str r0, [r4, #0xc] + cmp r0, #0x0 + beq _0200AB10 + ldr r0, [sp, #0x4] + lsl r1, r7, #0x3 + bl sub_020169D8 + str r0, [r4, #0x8] + cmp r0, #0x0 + beq _0200AB10 + mov r6, #0x0 + cmp r7, #0x0 + bls _0200AB06 + add r5, r6, #0x0 +_0200AAE0: + add r0, r0, r5 + bl sub_0200AB6C + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + bl sub_020219F4 + ldr r1, [r4, #0x8] + add r1, r1, r5 + str r0, [r1, #0x4] + ldr r0, [r4, #0x8] + add r1, r0, r5 + ldr r1, [r1, #0x4] + cmp r1, #0x0 + beq _0200AB06 + add r6, r6, #0x1 + add r5, #0x8 + cmp r6, r7 + blo _0200AAE0 +_0200AB06: + cmp r6, r7 + bne _0200AB10 + add sp, #0x8 + add r0, r4, #0x0 + pop {r3-r7, pc} +_0200AB10: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200AB18 +sub_0200AB18: ; 0x0200AB18 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x0 + bne _0200AB26 + bl sub_02020C2C +_0200AB26: + ldr r0, [r5, #0x8] + cmp r0, #0x0 + beq _0200AB54 + ldr r0, [r5, #0x0] + mov r6, #0x0 + cmp r0, #0x0 + bls _0200AB4E + add r4, r6, #0x0 +_0200AB36: + ldr r0, [r5, #0x8] + add r0, r0, r4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0200AB4E + bl sub_02021A20 + ldr r0, [r5, #0x0] + add r6, r6, #0x1 + add r4, #0x8 + cmp r6, r0 + blo _0200AB36 +_0200AB4E: + ldr r0, [r5, #0x8] + bl sub_02016A18 +_0200AB54: + ldr r0, [r5, #0xc] + cmp r0, #0x0 + beq _0200AB5E + bl sub_02021A20 +_0200AB5E: + mov r0, #0x0 + str r0, [r5, #0x0] + add r0, r5, #0x0 + bl sub_02016A18 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0200AB6C +sub_0200AB6C: ; 0x0200AB6C + bx lr + .balign 4 + + thumb_func_start sub_0200AB70 +sub_0200AB70: ; 0x0200AB70 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + cmp r6, r0 + blo _0200AB84 + bl sub_02020C2C +_0200AB84: + ldr r0, [r5, #0x0] + cmp r6, r0 + bhs _0200ABB2 + cmp r4, #0x0 + beq _0200ABA4 + ldrb r0, [r4, #0x0] + ldr r3, [r5, #0x8] + lsl r2, r6, #0x3 + strb r0, [r3, r2] + ldrb r0, [r4, #0x1] + add r1, r3, r2 + strb r0, [r1, #0x1] + ldrb r0, [r4, #0x2] + strb r0, [r1, #0x2] + ldrb r0, [r4, #0x3] + strb r0, [r1, #0x3] +_0200ABA4: + ldr r1, [r5, #0x8] + lsl r0, r6, #0x3 + add r0, r1, r0 + ldr r0, [r0, #0x4] + add r1, r7, #0x0 + bl sub_02021A74 +_0200ABB2: + pop {r3-r7, pc} + + thumb_func_start sub_0200ABB4 +sub_0200ABB4: ; 0x0200ABB4 + push {r3, lr} + mov r3, #0x0 + bl sub_0200AB70 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0200ABC0 +sub_0200ABC0: ; 0x0200ABC0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + bl sub_0202398C + add r1, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02021E28 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0200ABE4 +sub_0200ABE4: ; 0x0200ABE4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + bl sub_02024EC0 + bl sub_02024EE8 + add r1, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02021E28 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0200AC0C +sub_0200AC0C: ; 0x0200AC0C + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r6, r1, #0x0 + bl sub_020238F4 + add r7, r0, #0x0 + ldr r2, _0200AC5C ; =0x000001F1 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r4, r0, #0x0 + add r0, r7, #0x0 + bl sub_020239CC + cmp r0, #0x0 + bne _0200AC3E + ldr r2, [r5, #0xc] + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0200A8E0 + b _0200AC48 +_0200AC3E: + ldr r2, [r5, #0xc] + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0200A8E0 +_0200AC48: + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r4, #0x0 + bl sub_0200A8B8 + pop {r3-r7, pc} + .balign 4 +_0200AC5C: .word 0x000001F1 + + thumb_func_start sub_0200AC60 +sub_0200AC60: ; 0x0200AC60 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r2, #0x0 + add r6, r1, #0x0 + ldr r2, _0200ACA0 ; =0x0000016A + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r4, r0, #0x0 + add r0, r7, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + add r1, r0, #0x0 + ldr r2, [r5, #0xc] + add r0, r4, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r4, #0x0 + bl sub_0200A8B8 + pop {r3-r7, pc} + nop +_0200ACA0: .word 0x0000016A + + thumb_func_start sub_0200ACA4 +sub_0200ACA4: ; 0x0200ACA4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0200ACC0 + pop {r3-r5, pc} + + thumb_func_start sub_0200ACC0 +sub_0200ACC0: ; 0x0200ACC0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200ACF4 ; =0x0000016B + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + add r7, r0, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 + pop {r3-r7, pc} + nop +_0200ACF4: .word 0x0000016B + + thumb_func_start sub_0200ACF8 +sub_0200ACF8: ; 0x0200ACF8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + ldr r2, [r5, #0xc] + mov r1, #0x76 + bl sub_020672BC + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0200AD18 +sub_0200AD18: ; 0x0200AD18 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + ldr r2, [r5, #0xc] + mov r1, #0x90 + bl sub_020672BC + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0200AD38 +sub_0200AD38: ; 0x0200AD38 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [sp, #0x14] + add r4, r1, #0x0 + str r0, [sp, #0x0] + add r1, r2, #0x0 + add r2, r3, #0x0 + ldr r0, [r5, #0xc] + ldr r3, [sp, #0x10] + bl sub_02021B04 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + pop {r3-r5, pc} + + thumb_func_start sub_0200AD5C +sub_0200AD5C: ; 0x0200AD5C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r2, #0x93 + add r4, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200AD90 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200AD90: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200AD94 +sub_0200AD94: ; 0x0200AD94 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r2, #0x79 + add r4, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200ADC8 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200ADC8: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200ADCC +sub_0200ADCC: ; 0x0200ADCC + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r2, #0x8a + add r4, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200AE00 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200AE00: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200AE04 +sub_0200AE04: ; 0x0200AE04 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r3, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xbe + bl sub_0200A86C + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + add r7, r0, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200AE38 +sub_0200AE38: ; 0x0200AE38 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r2, #0x56 + add r4, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200AE6C + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200AE6C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200AE70 +sub_0200AE70: ; 0x0200AE70 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200AEA4 ; =0x0000015A + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200AEA2 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200AEA2: + pop {r3-r7, pc} + .balign 4 +_0200AEA4: .word 0x0000015A + + thumb_func_start sub_0200AEA8 +sub_0200AEA8: ; 0x0200AEA8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200AEDC ; =0x0000015B + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200AEDA + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200AEDA: + pop {r3-r7, pc} + .balign 4 +_0200AEDC: .word 0x0000015B + + thumb_func_start sub_0200AEE0 +sub_0200AEE0: ; 0x0200AEE0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200AF14 ; =0x0000015D + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200AF12 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200AF12: + pop {r3-r7, pc} + .balign 4 +_0200AF14: .word 0x0000015D + + thumb_func_start sub_0200AF18 +sub_0200AF18: ; 0x0200AF18 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200AF4C ; =0x00000235 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200AF4A + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200AF4A: + pop {r3-r7, pc} + .balign 4 +_0200AF4C: .word 0x00000235 + + thumb_func_start sub_0200AF50 +sub_0200AF50: ; 0x0200AF50 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200AF84 ; =0x000001EF + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200AF82 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200AF82: + pop {r3-r7, pc} + .balign 4 +_0200AF84: .word 0x000001EF + + thumb_func_start sub_0200AF88 +sub_0200AF88: ; 0x0200AF88 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r3, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xcd + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200AFBA + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200AFBA: + pop {r3-r7, pc} + + thumb_func_start sub_0200AFBC +sub_0200AFBC: ; 0x0200AFBC + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r2, #0x89 + add r4, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200AFF0 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200AFF0: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200AFF4 +sub_0200AFF4: ; 0x0200AFF4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B028 ; =0x0000017E + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B026 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B026: + pop {r3-r7, pc} + .balign 4 +_0200B028: .word 0x0000017E + + thumb_func_start sub_0200B02C +sub_0200B02C: ; 0x0200B02C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B060 ; =0x00000196 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B05E + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B05E: + pop {r3-r7, pc} + .balign 4 +_0200B060: .word 0x00000196 + + thumb_func_start sub_0200B064 +sub_0200B064: ; 0x0200B064 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r2, #0x23 + add r4, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x4 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B098 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B098: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200B09C +sub_0200B09C: ; 0x0200B09C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B0D0 ; =0x00000231 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B0CE + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B0CE: + pop {r3-r7, pc} + .balign 4 +_0200B0D0: .word 0x00000231 + + thumb_func_start sub_0200B0D4 +sub_0200B0D4: ; 0x0200B0D4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + mov r2, #0x23 + add r6, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x4 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B108 + ldrb r1, [r4, #0x1] + ldr r2, [r5, #0xc] + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B108: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200B10C +sub_0200B10C: ; 0x0200B10C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B140 ; =0x0000022F + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B13E + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B13E: + pop {r3-r7, pc} + .balign 4 +_0200B140: .word 0x0000022F + + thumb_func_start sub_0200B144 +sub_0200B144: ; 0x0200B144 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r2, #0x14 + add r4, r1, #0x0 + add r1, r2, #0x0 + bl sub_02021E28 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0200B164 +sub_0200B164: ; 0x0200B164 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B198 ; =0x00000239 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B196 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B196: + pop {r3-r7, pc} + .balign 4 +_0200B198: .word 0x00000239 + + thumb_func_start sub_0200B19C +sub_0200B19C: ; 0x0200B19C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B1D0 ; =0x0000023A + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B1CE + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B1CE: + pop {r3-r7, pc} + .balign 4 +_0200B1D0: .word 0x0000023A + + thumb_func_start sub_0200B1D4 +sub_0200B1D4: ; 0x0200B1D4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B208 ; =0x0000023B + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B206 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B206: + pop {r3-r7, pc} + .balign 4 +_0200B208: .word 0x0000023B + + thumb_func_start sub_0200B20C +sub_0200B20C: ; 0x0200B20C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r2, #0x8f + add r4, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B240 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B240: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200B244 +sub_0200B244: ; 0x0200B244 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r3, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xc2 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B276 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B276: + pop {r3-r7, pc} + + thumb_func_start sub_0200B278 +sub_0200B278: ; 0x0200B278 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r3, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xbf + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B2AA + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B2AA: + pop {r3-r7, pc} + + thumb_func_start sub_0200B2AC +sub_0200B2AC: ; 0x0200B2AC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r3, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xbf + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B2DE + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B2DE: + pop {r3-r7, pc} + + thumb_func_start sub_0200B2E0 +sub_0200B2E0: ; 0x0200B2E0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B314 ; =0x0000023E + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B312 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B312: + pop {r3-r7, pc} + .balign 4 +_0200B314: .word 0x0000023E + + thumb_func_start sub_0200B318 +sub_0200B318: ; 0x0200B318 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B34C ; =0x0000023D + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B34A + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B34A: + pop {r3-r7, pc} + .balign 4 +_0200B34C: .word 0x0000023D + + thumb_func_start sub_0200B350 +sub_0200B350: ; 0x0200B350 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B384 ; =0x00000237 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B382 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B382: + pop {r3-r7, pc} + .balign 4 +_0200B384: .word 0x00000237 + + thumb_func_start sub_0200B388 +sub_0200B388: ; 0x0200B388 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r2, #0x8e + add r4, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B3BC + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B3BC: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200B3C0 +sub_0200B3C0: ; 0x0200B3C0 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r3, [r5, #0x4] + add r6, r1, #0x0 + add r4, r2, #0x0 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xc7 + bl sub_0200A86C + add r7, r0, #0x0 + cmp r4, #0x0 + beq _0200B3E0 + cmp r4, #0x1 + beq _0200B3EA + b _0200B3F4 +_0200B3E0: + ldr r2, [r5, #0xc] + mov r1, #0x44 + bl sub_0200A8E0 + b _0200B3FA +_0200B3EA: + ldr r2, [r5, #0xc] + mov r1, #0x45 + bl sub_0200A8E0 + b _0200B3FA +_0200B3F4: + ldr r0, [r5, #0xc] + bl sub_02021A4C +_0200B3FA: + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200B410 +sub_0200B410: ; 0x0200B410 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + ldr r2, [r5, #0xc] + add r1, r3, #0x0 + bl sub_0206B484 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0200B430 +sub_0200B430: ; 0x0200B430 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B464 ; =0x0000014B + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B462 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B462: + pop {r3-r7, pc} + .balign 4 +_0200B464: .word 0x0000014B + + thumb_func_start sub_0200B468 +sub_0200B468: ; 0x0200B468 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B49C ; =0x00000226 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B49A + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B49A: + pop {r3-r7, pc} + .balign 4 +_0200B49C: .word 0x00000226 + + thumb_func_start sub_0200B4A0 +sub_0200B4A0: ; 0x0200B4A0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r2, #0x99 + add r4, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B4D4 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B4D4: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200B4D8 +sub_0200B4D8: ; 0x0200B4D8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r6, r1, #0x0 + add r4, r3, #0x0 + bl sub_02088D40 + add r2, r0, #0x0 + beq _0200B516 + cmp r4, #0x0 + beq _0200B516 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B516 + ldr r2, [r5, #0xc] + add r1, r4, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B516: + pop {r3-r7, pc} + + thumb_func_start sub_0200B518 +sub_0200B518: ; 0x0200B518 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0xc] + add r0, r2, #0x0 + bl sub_02013A58 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + pop {r3-r5, pc} + + thumb_func_start sub_0200B534 +sub_0200B534: ; 0x0200B534 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r3, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xa + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B566 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B566: + pop {r3-r7, pc} + + thumb_func_start sub_0200B568 +sub_0200B568: ; 0x0200B568 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r3, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xb + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B59A + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B59A: + pop {r3-r7, pc} + + thumb_func_start sub_0200B59C +sub_0200B59C: ; 0x0200B59C + push {r3-r7, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r7, r1, #0x0 + bl sub_02015CC0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02015CE0 + add r4, r0, #0x0 + ldr r2, _0200B620 ; =0x020ECE64 + lsl r3, r6, #0x1 + ldrh r2, [r2, r3] + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r6, r0, #0x0 + beq _0200B61E + bl sub_0200A940 + cmp r4, r0 + bhs _0200B5EE + ldr r2, [r5, #0xc] + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r6, #0x0 + bl sub_0200A8B8 + pop {r3-r7, pc} +_0200B5EE: + add r0, r6, #0x0 + bl sub_0200A8B8 + ldr r2, _0200B624 ; =0x0000017E + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r4, r0, #0x0 + beq _0200B61E + ldr r2, [r5, #0xc] + mov r1, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r4, #0x0 + bl sub_0200A8B8 +_0200B61E: + pop {r3-r7, pc} + .balign 4 +_0200B620: .word 0x020ECE64 +_0200B624: .word 0x0000017E + + thumb_func_start sub_0200B628 +sub_0200B628: ; 0x0200B628 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B65C ; =0x0000019E + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B65A + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B65A: + pop {r3-r7, pc} + .balign 4 +_0200B65C: .word 0x0000019E + + thumb_func_start sub_0200B660 +sub_0200B660: ; 0x0200B660 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B694 ; =0x00000152 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B692 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B692: + pop {r3-r7, pc} + .balign 4 +_0200B694: .word 0x00000152 + + thumb_func_start sub_0200B698 +sub_0200B698: ; 0x0200B698 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r1, #0x0 + ldr r2, _0200B6CC ; =0x00000153 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B6CA + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B6CA: + pop {r3-r7, pc} + .balign 4 +_0200B6CC: .word 0x00000153 + + thumb_func_start sub_0200B6D0 +sub_0200B6D0: ; 0x0200B6D0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r2, #0x55 + add r4, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r7, r0, #0x0 + beq _0200B704 + ldr r2, [r5, #0xc] + add r1, r6, #0x0 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r7, #0x0 + bl sub_0200A8B8 +_0200B704: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200B708 +sub_0200B708: ; 0x0200B708 + push {r4-r7, lr} + sub sp, #0x14 + str r0, [sp, #0x8] + add r5, r2, #0x0 + add r0, r1, #0x0 + str r3, [sp, #0xc] + bl sub_0202881C + add r6, r0, #0x0 + add r1, r5, #0x0 + bl sub_020287F8 + str r0, [sp, #0x10] + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_02028804 + add r7, r0, #0x0 + mov r0, #0x40 + mov r1, #0x4 + bl sub_020219F4 + add r4, r0, #0x0 + ldr r2, [sp, #0x28] + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_020287A8 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02021E28 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + ldr r3, [sp, #0x10] + add r2, r4, #0x0 + str r7, [sp, #0x4] + bl sub_0200ABB4 + add r0, r4, #0x0 + bl sub_02021A20 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_0200B764 +sub_0200B764: ; 0x0200B764 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + mov r2, #0x5b + add r7, r1, #0x0 + ldr r3, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r6, r0, #0x0 + beq _0200B7A4 + cmp r4, #0x1 + blo _0200B786 + cmp r4, #0xc + bls _0200B788 +_0200B786: + mov r4, #0x1 +_0200B788: + ldr r2, [r5, #0xc] + add r0, r6, #0x0 + sub r1, r4, #0x1 + bl sub_0200A8E0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r3, #0x0 + bl sub_0200AB70 + add r0, r6, #0x0 + bl sub_0200A8B8 +_0200B7A4: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200B7A8 +sub_0200B7A8: ; 0x0200B7A8 + ldr r2, [r0, #0x8] + lsl r0, r1, #0x3 + add r0, r2, r0 + ldr r3, _0200B7B4 ; =sub_02021FF8 + ldr r0, [r0, #0x4] + bx r3 + .balign 4 +_0200B7B4: .word sub_02021FF8 + 1 + + thumb_func_start sub_0200B7B8 +sub_0200B7B8: ; 0x0200B7B8 + push {r3-r7, lr} + add r7, r0, #0x0 + add r6, r1, #0x0 + add r0, r2, #0x0 + bl sub_02021F2C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02021A4C + ldrh r1, [r5, #0x0] + ldr r0, _0200B844 ; =0x0000FFFF + cmp r1, r0 + beq _0200B840 +_0200B7D4: + ldr r0, _0200B848 ; =0x0000FFFE + cmp r1, r0 + bne _0200B82E + add r0, r5, #0x0 + bl sub_0201B8F8 + cmp r0, #0x0 + beq _0200B810 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0201B914 + add r4, r0, #0x0 + ldr r0, [r7, #0x0] + cmp r4, r0 + blo _0200B7F8 + bl sub_02020C2C +_0200B7F8: + ldr r2, [r7, #0x8] + lsl r1, r4, #0x3 + add r1, r2, r1 + ldr r1, [r1, #0x4] + add r0, r6, #0x0 + bl sub_02022048 + add r0, r5, #0x0 + bl sub_0201B8B8 + add r5, r0, #0x0 + b _0200B838 +_0200B810: + add r0, r5, #0x0 + add r4, r5, #0x0 + bl sub_0201B8B8 + add r5, r0, #0x0 + cmp r4, r5 + bhs _0200B838 +_0200B81E: + ldrh r1, [r4, #0x0] + add r0, r6, #0x0 + add r4, r4, #0x2 + bl sub_02021FB0 + cmp r4, r5 + blo _0200B81E + b _0200B838 +_0200B82E: + ldrh r1, [r5, #0x0] + add r0, r6, #0x0 + add r5, r5, #0x2 + bl sub_02021FB0 +_0200B838: + ldrh r1, [r5, #0x0] + ldr r0, _0200B844 ; =0x0000FFFF + cmp r1, r0 + bne _0200B7D4 +_0200B840: + pop {r3-r7, pc} + nop +_0200B844: .word 0x0000FFFF +_0200B848: .word 0x0000FFFE + + thumb_func_start sub_0200B84C +sub_0200B84C: ; 0x0200B84C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + mov r6, #0x0 + cmp r0, #0x0 + bls _0200B86E + add r4, r6, #0x0 +_0200B85A: + ldr r0, [r5, #0x8] + add r0, r0, r4 + ldr r0, [r0, #0x4] + bl sub_02021A4C + ldr r0, [r5, #0x0] + add r6, r6, #0x1 + add r4, #0x8 + cmp r6, r0 + blo _0200B85A +_0200B86E: + pop {r4-r6, pc} + + thumb_func_start sub_0200B870 +sub_0200B870: ; 0x0200B870 + push {r4-r7, lr} + sub sp, #0x2c + add r4, r3, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r4, #0x0 + mov r1, #0x2c + str r2, [sp, #0x4] + bl sub_02016998 + str r0, [sp, #0x8] + cmp r0, #0x0 + beq _0200B98A + ldr r3, [sp, #0x8] + mov r0, #0xe + mov r1, #0x4 + mov r2, #0x1 + add r3, r3, #0x4 + str r4, [sp, #0x0] + bl sub_02006BB0 + ldr r1, [sp, #0x8] + mov r3, #0x0 + str r0, [r1, #0x0] + add r0, r1, #0x0 + ldr r0, [r0, #0x4] + ldr r4, [r0, #0x14] + ldr r0, [r0, #0x10] + cmp r0, #0x0 + bls _0200B984 + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x4] + lsl r0, r0, #0x4 + orr r1, r0 + str r1, [sp, #0xc] + add r1, r0, #0x0 + orr r1, r5 + str r1, [sp, #0x10] + orr r0, r6 + str r0, [sp, #0x14] + ldr r1, [sp, #0x4] + lsl r0, r5, #0x4 + orr r1, r0 + str r1, [sp, #0x18] + add r1, r5, #0x0 + orr r1, r0 + str r1, [sp, #0x1c] + orr r0, r6 + lsl r2, r6, #0x4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x4] + add r7, r2, #0x0 + orr r7, r1 + add r1, r2, #0x0 + orr r1, r5 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + orr r2, r6 + str r1, [sp, #0x28] + lsl r1, r7, #0x18 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r0, [sp, #0x18] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsr r1, r1, #0x18 + lsl r0, r0, #0x18 + mov r12, r2 + str r1, [sp, #0x24] + lsr r6, r0, #0x18 + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x10] + ldr r2, [sp, #0xc] + lsl r0, r0, #0x18 + lsl r1, r1, #0x18 + lsl r2, r2, #0x18 + lsr r0, r0, #0x18 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 +_0200B914: + ldrb r5, [r4, r3] + cmp r5, #0x12 + bgt _0200B93C + bge _0200B962 + cmp r5, #0x10 + bgt _0200B936 + bge _0200B95A + cmp r5, #0x2 + bgt _0200B978 + cmp r5, #0x0 + blt _0200B978 + beq _0200B94E + cmp r5, #0x1 + beq _0200B952 + cmp r5, #0x2 + beq _0200B956 + b _0200B978 +_0200B936: + cmp r5, #0x11 + beq _0200B95E + b _0200B978 +_0200B93C: + cmp r5, #0x21 + bgt _0200B948 + bge _0200B96E + cmp r5, #0x20 + beq _0200B968 + b _0200B978 +_0200B948: + cmp r5, #0x22 + beq _0200B974 + b _0200B978 +_0200B94E: + strb r2, [r4, r3] + b _0200B978 +_0200B952: + strb r1, [r4, r3] + b _0200B978 +_0200B956: + strb r0, [r4, r3] + b _0200B978 +_0200B95A: + strb r6, [r4, r3] + b _0200B978 +_0200B95E: + strb r7, [r4, r3] + b _0200B978 +_0200B962: + ldr r5, [sp, #0x20] + strb r5, [r4, r3] + b _0200B978 +_0200B968: + ldr r5, [sp, #0x24] + strb r5, [r4, r3] + b _0200B978 +_0200B96E: + ldr r5, [sp, #0x28] + strb r5, [r4, r3] + b _0200B978 +_0200B974: + mov r5, r12 + strb r5, [r4, r3] +_0200B978: + ldr r5, [sp, #0x8] + add r3, r3, #0x1 + ldr r5, [r5, #0x4] + ldr r5, [r5, #0x10] + cmp r3, r5 + blo _0200B914 +_0200B984: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + str r1, [r0, #0x28] +_0200B98A: + ldr r0, [sp, #0x8] + add sp, #0x2c + pop {r4-r7, pc} + + thumb_func_start sub_0200B990 +sub_0200B990: ; 0x0200B990 + push {r4, lr} + add r4, r0, #0x0 + beq _0200B9A6 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0200B9A0 + bl sub_02016A18 +_0200B9A0: + add r0, r4, #0x0 + bl sub_02016A18 +_0200B9A6: + pop {r4, pc} + + thumb_func_start sub_0200B9A8 +sub_0200B9A8: ; 0x0200B9A8 + push {r3-r5, lr} + sub sp, #0x18 + add r4, r0, #0x0 + ldr r0, _0200B9E4 ; =0x020ECE6E + lsl r5, r1, #0x2 + ldrh r1, [r0, r5] + lsl r3, r3, #0x10 + mov r0, #0x8 + str r1, [sp, #0x0] + str r0, [sp, #0x4] + lsr r3, r3, #0x10 + str r3, [sp, #0x8] + ldr r3, [sp, #0x28] + lsl r3, r3, #0x10 + lsr r3, r3, #0x10 + str r3, [sp, #0xc] + str r1, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [r4, #0x4] + add r0, r2, #0x0 + ldr r2, [r1, #0x14] + ldr r1, _0200B9E8 ; =0x020ECE6C + ldrh r1, [r1, r5] + add r1, r2, r1 + mov r2, #0x0 + add r3, r2, #0x0 + bl sub_02019658 + add sp, #0x18 + pop {r3-r5, pc} + .balign 4 +_0200B9E4: .word 0x020ECE6E +_0200B9E8: .word 0x020ECE6C + + thumb_func_start sub_0200B9EC +sub_0200B9EC: ; 0x0200B9EC + push {r3-r7, lr} + sub sp, #0x18 + add r6, r0, #0x0 + ldr r0, [sp, #0x30] + add r4, r2, #0x0 + str r0, [sp, #0x30] + add r0, r6, #0x0 + add r2, r3, #0x0 + add r0, #0x8 + add r3, r4, #0x0 + ldr r5, [sp, #0x34] + ldr r7, [sp, #0x38] + bl sub_0200233C + ldrh r1, [r6, #0x8] + ldr r0, _0200BA74 ; =0x0000FFFF + cmp r1, r0 + beq _0200BA6E + lsl r0, r7, #0x10 + add r4, r6, #0x0 + lsr r7, r0, #0x10 +_0200BA16: + ldrh r2, [r4, #0x8] + cmp r2, #0xa2 + blo _0200BA4A + cmp r2, #0xab + bhi _0200BA4A + mov r0, #0x8 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x8] + str r7, [sp, #0xc] + mov r0, #0x8 + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [r6, #0x4] + sub r2, #0xa2 + ldr r1, [r1, #0x14] + lsl r2, r2, #0x5 + add r1, r1, r2 + mov r2, #0x0 + ldr r0, [sp, #0x30] + add r3, r2, #0x0 + bl sub_02019658 + b _0200BA62 +_0200BA4A: + mov r0, #0x8 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r1, [r6, #0x28] + lsl r2, r5, #0x10 + lsl r1, r1, #0x18 + ldr r0, [sp, #0x30] + lsr r1, r1, #0x18 + lsr r2, r2, #0x10 + add r3, r7, #0x0 + bl sub_020196F4 +_0200BA62: + add r4, r4, #0x2 + ldrh r1, [r4, #0x8] + ldr r0, _0200BA74 ; =0x0000FFFF + add r5, #0x8 + cmp r1, r0 + bne _0200BA16 +_0200BA6E: + add sp, #0x18 + pop {r3-r7, pc} + nop +_0200BA74: .word 0x0000FFFF + + thumb_func_start sub_0200BA78 +sub_0200BA78: ; 0x0200BA78 + push {r3-r6, lr} + sub sp, #0xc + add r4, r2, #0x0 + ldr r2, [sp, #0x2c] + add r6, r3, #0x0 + str r2, [sp, #0x0] + ldr r2, [sp, #0x24] + ldr r3, [sp, #0x28] + add r5, r0, #0x0 + bl sub_0200B9A8 + ldr r0, [sp, #0x24] + ldr r3, [sp, #0x20] + str r0, [sp, #0x0] + ldr r0, [sp, #0x28] + add r1, r4, #0x0 + add r0, #0x10 + str r0, [sp, #0x4] + ldr r0, [sp, #0x2c] + add r2, r6, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + bl sub_0200B9EC + add sp, #0xc + pop {r3-r6, pc} + + thumb_func_start sub_0200BAAC +sub_0200BAAC: ; 0x0200BAAC + push {r3-r7, lr} + add r7, r0, #0x0 + add r4, r2, #0x0 + ldr r2, [r7, #0x28] + ldr r6, [sp, #0x18] + lsl r0, r2, #0x4 + orr r0, r2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + add r0, r7, #0x0 + add r2, r3, #0x0 + add r0, #0x8 + add r3, r4, #0x0 + bl sub_0200233C + ldrh r1, [r7, #0x8] + ldr r0, _0200BB10 ; =0x0000FFFF + cmp r1, r0 + beq _0200BB0C + add r4, r7, #0x0 + mov r5, #0x0 +_0200BAD8: + ldrh r2, [r4, #0x8] + cmp r2, #0xa2 + blo _0200BAF6 + cmp r2, #0xab + bhi _0200BAF6 + ldr r0, [r7, #0x4] + sub r2, #0xa2 + ldr r1, [r0, #0x14] + lsl r0, r2, #0x5 + add r0, r1, r0 + add r1, r6, r5 + mov r2, #0x20 + blx sub_020CE210 + b _0200BB00 +_0200BAF6: + ldr r1, [sp, #0x0] + add r0, r6, r5 + mov r2, #0x20 + blx sub_020CE34C +_0200BB00: + add r4, r4, #0x2 + ldrh r1, [r4, #0x8] + ldr r0, _0200BB10 ; =0x0000FFFF + add r5, #0x20 + cmp r1, r0 + bne _0200BAD8 +_0200BB0C: + pop {r3-r7, pc} + nop +_0200BB10: .word 0x0000FFFF + + thumb_func_start sub_0200BB14 +sub_0200BB14: ; 0x0200BB14 + push {r4, lr} + mov r1, #0x4e + lsl r1, r1, #0x2 + add r4, r0, #0x0 + bl sub_02016998 + cmp r0, #0x0 + bne _0200BB28 + mov r0, #0x0 + pop {r4, pc} +_0200BB28: + str r4, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] + mov r1, #0x1 + str r1, [r0, #0x8] + pop {r4, pc} + + thumb_func_start sub_0200BB34 +sub_0200BB34: ; 0x0200BB34 + push {r4, lr} + add r4, r0, #0x0 + bne _0200BB3E + bl sub_02020C2C +_0200BB3E: + ldr r0, [r4, #0x0] + mov r1, #0x58 + bl sub_02016998 + cmp r0, #0x0 + bne _0200BB4E + mov r0, #0x0 + pop {r4, pc} +_0200BB4E: + ldr r1, [r4, #0x4] + mov r2, #0x0 + add r1, r1, #0x1 + str r1, [r4, #0x4] + add r3, r0, #0x0 + add r1, r2, #0x0 +_0200BB5A: + add r2, r2, #0x1 + str r1, [r3, #0xc] + add r3, r3, #0x4 + cmp r2, #0x6 + blt _0200BB5A + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200BB68 +sub_0200BB68: ; 0x0200BB68 + add r0, #0x10 + bx lr + + thumb_func_start sub_0200BB6C +sub_0200BB6C: ; 0x0200BB6C + push {r4-r7, lr} + sub sp, #0x24 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r5, #0x0 + bne _0200BB80 + bl sub_02020C2C +_0200BB80: + cmp r5, #0x0 + bne _0200BB8A + add sp, #0x24 + mov r0, #0x0 + pop {r4-r7, pc} +_0200BB8A: + ldr r0, [r6, #0x0] + str r0, [sp, #0x14] + ldr r0, [r6, #0x4] + str r0, [sp, #0x18] + ldr r0, [r6, #0x8] + str r0, [sp, #0x1c] + ldr r0, [r5, #0x0] + str r0, [sp, #0x20] + ldr r1, [r6, #0xc] + ldr r2, [r6, #0x10] + add r0, sp, #0x14 + bl sub_0201D060 + ldr r1, [r5, #0x0] + add r0, r7, #0x0 + bl sub_0201E00C + blx sub_020B0FC0 + ldr r0, [r5, #0x8] + cmp r0, #0x1 + bne _0200BBD6 + ldr r0, [r4, #0x10] + str r0, [sp, #0x0] + ldr r0, [r4, #0x14] + str r0, [sp, #0x4] + ldr r0, [r4, #0x18] + str r0, [sp, #0x8] + ldr r0, [r4, #0x1c] + str r0, [sp, #0xc] + ldr r0, [r5, #0x0] + str r0, [sp, #0x10] + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x8] + ldr r3, [r4, #0xc] + bl sub_02009EAC +_0200BBD6: + ldr r1, [r5, #0x0] + mov r0, #0x20 + bl sub_0201C328 + str r0, [r5, #0xc] + bl sub_0201D168 + bl sub_0201E0BC + mov r0, #0x1 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0200BBF0 +sub_0200BBF0: ; 0x0200BBF0 + push {r4, lr} + add r3, r0, #0x0 + add r4, r1, #0x0 + cmp r3, #0x0 + beq _0200BBFE + cmp r4, #0x0 + bne _0200BC02 +_0200BBFE: + mov r0, #0x0 + pop {r4, pc} +_0200BC02: + add r0, r2, #0x0 + add r1, r3, #0x0 + ldr r2, [r3, #0x0] + add r1, #0x10 + bl sub_02008C9C + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0200BC14 +sub_0200BC14: ; 0x0200BC14 + ldr r3, _0200BC18 ; =sub_0201FFC8 + bx r3 + .balign 4 +_0200BC18: .word sub_0201FFC8 + 1 + + thumb_func_start sub_0200BC1C +sub_0200BC1C: ; 0x0200BC1C + push {r4, lr} + add r4, r0, #0x0 + bne _0200BC26 + bl sub_02020C2C +_0200BC26: + ldr r0, [r4, #0x0] + bl sub_0201FDEC + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200BC30 +sub_0200BC30: ; 0x0200BC30 + ldr r3, _0200BC34 ; =sub_02009F80 + bx r3 + .balign 4 +_0200BC34: .word sub_02009F80 + 1 + + thumb_func_start sub_0200BC38 +sub_0200BC38: ; 0x0200BC38 + ldr r3, _0200BC3C ; =sub_0201C348 + bx r3 + .balign 4 +_0200BC3C: .word sub_0201C348 + 1 + + thumb_func_start sub_0200BC40 +sub_0200BC40: ; 0x0200BC40 + ldr r3, _0200BC48 ; =sub_0201FD58 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200BC48: .word sub_0201FD58 + 1 + + thumb_func_start sub_0200BC4C +sub_0200BC4C: ; 0x0200BC4C + push {r3, lr} + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0200BC58 + bl sub_02008C80 +_0200BC58: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0200BC5C +sub_0200BC5C: ; 0x0200BC5C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x54] + mov r4, #0x0 + cmp r0, #0x0 + ble _0200BC7C +_0200BC68: + ldr r0, [r5, #0x8] + add r1, r4, #0x0 + bl sub_02009660 + bl sub_020096B4 + ldr r0, [r5, #0x54] + add r4, r4, #0x1 + cmp r4, r0 + blt _0200BC68 +_0200BC7C: + ldr r0, [r5, #0x8] + bl sub_02016A18 + ldr r0, [r5, #0x24] + bl sub_02009C30 + ldr r0, [r5, #0x28] + bl sub_02009E28 + ldr r0, [r5, #0x54] + mov r6, #0x0 + cmp r0, #0x0 + ble _0200BCAE + add r4, r5, #0x0 +_0200BC98: + ldr r0, [r4, #0x24] + bl sub_02009448 + ldr r0, [r4, #0xc] + bl sub_02008E2C + ldr r0, [r5, #0x54] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _0200BC98 +_0200BCAE: + pop {r4-r6, pc} + + thumb_func_start sub_0200BCB0 +sub_0200BCB0: ; 0x0200BCB0 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0201C350 + bl sub_0201D12C + bl sub_0201E08C + ldr r0, [r4, #0x8] + cmp r0, #0x1 + bne _0200BCCC + bl sub_02009FA0 +_0200BCCC: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200BCD0 +sub_0200BCD0: ; 0x0200BCD0 + ldr r2, [r0, #0x4] + ldr r3, _0200BCDC ; =sub_02016A18 + sub r2, r2, #0x1 + str r2, [r0, #0x4] + add r0, r1, #0x0 + bx r3 + .balign 4 +_0200BCDC: .word sub_02016A18 + 1 + + thumb_func_start sub_0200BCE0 +sub_0200BCE0: ; 0x0200BCE0 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0200BC40 + add r0, r4, #0x0 + bl sub_0200BC4C + add r0, r4, #0x0 + bl sub_0200BC5C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0200BCD0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0200BD04 +sub_0200BD04: ; 0x0200BD04 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _0200BD12 + bl sub_02020C2C +_0200BD12: + add r0, r4, #0x0 + bl sub_0200BCB0 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_0200BD20 +sub_0200BD20: ; 0x0200BD20 + push {r4-r7, lr} + sub sp, #0x24 + add r5, r0, #0x0 + mov r0, #0x6 + add r4, r1, #0x0 + str r2, [sp, #0x10] + str r0, [sp, #0x14] + cmp r5, #0x0 + beq _0200BD36 + cmp r4, #0x0 + bne _0200BD3C +_0200BD36: + add sp, #0x24 + mov r0, #0x0 + pop {r4-r7, pc} +_0200BD3C: + add r0, r2, #0x0 + ldr r0, [r0, #0x10] + cmp r0, #0x0 + bne _0200BD48 + mov r0, #0x4 + str r0, [sp, #0x14] +_0200BD48: + ldr r0, [sp, #0x14] + str r0, [r4, #0x54] + bl sub_0200965C + add r2, r0, #0x0 + ldr r1, [sp, #0x14] + ldr r0, [r5, #0x0] + mul r1, r2 + bl sub_02016998 + str r0, [r4, #0x8] + ldr r0, [sp, #0x14] + mov r7, #0x0 + cmp r0, #0x0 + ble _0200BD94 + ldr r6, [sp, #0x10] +_0200BD68: + ldr r0, [r4, #0x8] + add r1, r7, #0x0 + bl sub_02009660 + str r0, [sp, #0x18] + ldr r0, [r5, #0x0] + ldr r1, [r6, #0x0] + bl sub_020161A4 + ldr r1, [sp, #0x18] + ldr r2, [r5, #0x0] + str r0, [sp, #0x1c] + bl sub_02009668 + ldr r0, [sp, #0x1c] + bl sub_02016A18 + ldr r0, [sp, #0x14] + add r7, r7, #0x1 + add r6, r6, #0x4 + cmp r7, r0 + blt _0200BD68 +_0200BD94: + ldr r0, [sp, #0x14] + mov r6, #0x0 + cmp r0, #0x0 + ble _0200BDBE + add r7, r4, #0x0 +_0200BD9E: + ldr r0, [r4, #0x8] + add r1, r6, #0x0 + bl sub_02009660 + bl sub_020096CC + ldr r2, [r5, #0x0] + add r1, r6, #0x0 + bl sub_02008DEC + str r0, [r7, #0xc] + ldr r0, [sp, #0x14] + add r6, r6, #0x1 + add r7, r7, #0x4 + cmp r6, r0 + blt _0200BD9E +_0200BDBE: + ldr r0, [sp, #0x14] + mov r7, #0x0 + cmp r0, #0x0 + ble _0200BDF6 + add r6, r4, #0x0 +_0200BDC8: + ldr r0, [r4, #0x8] + add r1, r7, #0x0 + bl sub_02009660 + str r0, [sp, #0x20] + bl sub_020096CC + ldr r1, [r5, #0x0] + bl sub_02009424 + add r2, r0, #0x0 + str r2, [r6, #0x24] + ldr r0, [r6, #0xc] + ldr r1, [sp, #0x20] + ldr r3, [r5, #0x0] + bl sub_020093A8 + str r0, [r6, #0x3c] + ldr r0, [sp, #0x14] + add r7, r7, #0x1 + add r6, r6, #0x4 + cmp r7, r0 + blt _0200BDC8 +_0200BDF6: + ldr r0, [r4, #0x24] + bl sub_02009A90 + ldr r0, [r4, #0x28] + bl sub_02009D34 + ldr r1, [sp, #0x10] + ldr r0, [r5, #0x0] + ldr r1, [r1, #0x18] + bl sub_020161A4 + ldr r1, [r4, #0x14] + add r6, r0, #0x0 + str r1, [sp, #0x0] + ldr r1, [r4, #0x18] + str r1, [sp, #0x4] + ldr r1, [r4, #0x1c] + str r1, [sp, #0x8] + ldr r1, [r4, #0x20] + str r1, [sp, #0xc] + ldr r1, [r5, #0x0] + ldr r2, [r4, #0xc] + ldr r3, [r4, #0x10] + bl sub_02008BE0 + str r0, [r4, #0x4] + add r0, r6, #0x0 + bl sub_02016A18 + mov r0, #0x1 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0200BE38 +sub_0200BE38: ; 0x0200BE38 + push {r4, lr} + sub sp, #0x28 + mov r3, #0x4 + mov r4, #0x6 + ldrsh r3, [r2, r3] + ldrsh r4, [r2, r4] + str r4, [sp, #0x0] + str r3, [sp, #0x4] + ldrh r4, [r2, #0xa] + str r4, [sp, #0x8] + ldr r4, [r2, #0xc] + str r4, [sp, #0xc] + ldr r4, [r2, #0x10] + str r4, [sp, #0x10] + ldr r4, [r2, #0x14] + str r4, [sp, #0x14] + ldr r4, [r2, #0x18] + str r4, [sp, #0x18] + ldr r4, [r2, #0x1c] + str r4, [sp, #0x1c] + ldr r4, [r2, #0x20] + str r4, [sp, #0x20] + ldr r4, [r2, #0x24] + str r4, [sp, #0x24] + ldr r2, [r2, #0x0] + bl sub_0200BE74 + add sp, #0x28 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200BE74 +sub_0200BE74: ; 0x0200BE74 + push {r4, lr} + sub sp, #0x30 + add r4, r0, #0x0 + ldr r0, [r1, #0x0] + str r0, [sp, #0x0] + ldr r0, [r1, #0x4] + ldr r1, [r0, #0x0] + mov r0, #0x24 + mul r0, r2 + add r0, r1, r0 + str r0, [sp, #0x4] + cmp r3, #0x0 + ble _0200BEA0 + lsl r0, r3, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _0200BEAE +_0200BEA0: + lsl r0, r3, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_0200BEAE: + blx sub_020EB4C0 + str r0, [sp, #0x8] + add r1, sp, #0x28 + mov r0, #0x10 + ldrsh r0, [r1, r0] + cmp r0, #0x0 + ble _0200BED0 + lsl r0, r0, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _0200BEDE +_0200BED0: + lsl r0, r0, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_0200BEDE: + blx sub_020EB4C0 + str r0, [sp, #0xc] + add r1, sp, #0x28 + mov r0, #0x14 + ldrsh r0, [r1, r0] + cmp r0, #0x0 + ble _0200BF00 + lsl r0, r0, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _0200BF0E +_0200BF00: + lsl r0, r0, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_0200BF0E: + blx sub_020EB4C0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x4c] + cmp r0, #0x2 + bne _0200BF24 + mov r0, #0x3 + ldr r1, [sp, #0xc] + lsl r0, r0, #0x12 + add r0, r1, r0 + str r0, [sp, #0xc] +_0200BF24: + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [sp, #0x14] + str r0, [sp, #0x18] + str r0, [sp, #0x1c] + mov r1, #0x0 + add r0, sp, #0x0 + strh r1, [r0, #0x20] + ldr r0, [sp, #0x44] + str r0, [sp, #0x24] + ldr r0, [sp, #0x4c] + str r0, [sp, #0x28] + ldr r0, [r4, #0x0] + str r0, [sp, #0x2c] + add r0, sp, #0x0 + bl sub_0201FE94 + add r4, r0, #0x0 + beq _0200BF5A + add r1, sp, #0x28 + ldrh r1, [r1, #0x18] + bl sub_02020130 + ldr r1, [sp, #0x48] + add r0, r4, #0x0 + bl sub_02020248 +_0200BF5A: + add r0, r4, #0x0 + add sp, #0x30 + pop {r4, pc} + + thumb_func_start sub_0200BF60 +sub_0200BF60: ; 0x0200BF60 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + mov r0, #0x6 + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + add r5, r1, #0x0 + add r6, r2, #0x0 + cmp r0, #0x0 + beq _0200BF78 + cmp r5, #0x0 + bne _0200BF7E +_0200BF78: + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0200BF7E: + ldr r0, [r6, #0x10] + cmp r0, #0x0 + beq _0200BF8A + ldr r0, [r6, #0x14] + cmp r0, #0x0 + bne _0200BF8E +_0200BF8A: + mov r0, #0x4 + str r0, [sp, #0x4] +_0200BF8E: + ldr r0, [sp, #0x4] + str r0, [r5, #0x54] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0200BFBE + add r7, r6, #0x0 + add r4, r5, #0x0 +_0200BFA0: + ldr r2, [sp, #0x0] + ldr r0, [r7, #0x0] + ldr r1, [sp, #0x8] + ldr r2, [r2, #0x0] + bl sub_02008DEC + str r0, [r4, #0xc] + ldr r0, [sp, #0x8] + add r7, r7, #0x4 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + add r4, r4, #0x4 + str r1, [sp, #0x8] + cmp r1, r0 + blt _0200BFA0 +_0200BFBE: + ldr r0, [sp, #0x4] + mov r7, #0x0 + cmp r0, #0x0 + ble _0200C004 + add r4, r7, #0x0 +_0200BFC8: + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _0200BFF8 + ldr r1, [sp, #0x0] + ldr r1, [r1, #0x0] + bl sub_02009424 + str r0, [r5, #0x24] + mov r0, #0x0 + str r0, [r5, #0x3c] + ldr r3, [r5, #0x24] + add r1, r0, #0x0 + ldr r0, [r3, #0x4] + cmp r0, #0x0 + ble _0200BFF8 + add r2, r1, #0x0 +_0200BFE8: + ldr r0, [r3, #0x0] + add r1, r1, #0x1 + str r4, [r0, r2] + ldr r3, [r5, #0x24] + add r2, r2, #0x4 + ldr r0, [r3, #0x4] + cmp r1, r0 + blt _0200BFE8 +_0200BFF8: + ldr r0, [sp, #0x4] + add r7, r7, #0x1 + add r6, r6, #0x4 + add r5, r5, #0x4 + cmp r7, r0 + blt _0200BFC8 +_0200C004: + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0200C00C +sub_0200C00C: ; 0x0200C00C + push {r4-r7, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + ldr r1, [sp, #0x28] + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_0200945C + cmp r0, #0x0 + bne _0200C02A + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0200C02A: + ldr r0, [sp, #0x28] + ldr r3, [sp, #0x20] + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + add r1, r6, #0x0 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + add r2, r7, #0x0 + str r0, [sp, #0x8] + ldr r0, [r4, #0xc] + bl sub_02008F34 + add r5, r0, #0x0 + beq _0200C058 + bl sub_02009B04 + ldr r0, [r4, #0x24] + add r1, r5, #0x0 + bl sub_0200C474 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0200C058: + bl sub_02020C2C + cmp r5, #0x0 + beq _0200C066 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0200C066: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0200C06C +sub_0200C06C: ; 0x0200C06C + push {r3-r7, lr} + sub sp, #0x10 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x10] + ldr r1, [sp, #0x34] + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_0200945C + cmp r0, #0x0 + bne _0200C08C + mov r0, #0x0 + add sp, #0x10 + mvn r0, r0 + pop {r3-r7, pc} +_0200C08C: + ldr r0, [sp, #0x34] + ldr r3, [sp, #0x28] + str r0, [sp, #0x0] + ldr r0, [sp, #0x30] + add r1, r6, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x2c] + add r2, r7, #0x0 + str r0, [sp, #0x8] + ldr r0, [r5, #0x0] + str r0, [sp, #0xc] + ldr r0, [r4, #0x10] + bl sub_02008FEC + add r5, r0, #0x0 + beq _0200C0D0 + bl sub_02009D68 + cmp r0, #0x1 + beq _0200C0B8 + bl sub_02020C2C +_0200C0B8: + ldr r0, [r4, #0x28] + add r1, r5, #0x0 + bl sub_0200C474 + ldr r1, [sp, #0x30] + add r0, r5, #0x0 + bl sub_02009E88 + lsl r0, r0, #0x18 + add sp, #0x10 + asr r0, r0, #0x18 + pop {r3-r7, pc} +_0200C0D0: + bl sub_02020C2C + mov r0, #0x0 + mvn r0, r0 + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start sub_0200C0DC +sub_0200C0DC: ; 0x0200C0DC + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, [sp, #0x28] + add r6, r1, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + add r1, r3, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x30] + ldr r3, [sp, #0x24] + str r0, [sp, #0x8] + ldr r0, [sp, #0x34] + str r0, [sp, #0xc] + add r0, r2, #0x0 + ldr r2, [sp, #0x20] + bl sub_0200C06C + add r4, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + beq _0200C11A + ldr r3, [sp, #0x2c] + lsl r2, r4, #0x14 + add r0, r5, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x10 + lsl r3, r3, #0x5 + bl sub_02003108 +_0200C11A: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0200C124 +sub_0200C124: ; 0x0200C124 + push {r3-r4, lr} + sub sp, #0xc + ldr r4, [sp, #0x18] + str r4, [sp, #0x0] + mov r4, #0x2 + str r4, [sp, #0x4] + ldr r4, [sp, #0x1c] + str r4, [sp, #0x8] + bl sub_0200C404 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_0200C13C +sub_0200C13C: ; 0x0200C13C + push {r3-r4, lr} + sub sp, #0xc + ldr r4, [sp, #0x18] + str r4, [sp, #0x0] + mov r4, #0x3 + str r4, [sp, #0x4] + ldr r4, [sp, #0x1c] + str r4, [sp, #0x8] + bl sub_0200C404 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_0200C154 +sub_0200C154: ; 0x0200C154 + push {r4-r7, lr} + sub sp, #0x74 + add r7, r0, #0x0 + ldr r0, [r7, #0x0] + add r6, r1, #0x0 + mov r1, #0x10 + add r5, r2, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + bne _0200C170 + add sp, #0x74 + mov r0, #0x0 + pop {r4-r7, pc} +_0200C170: + ldr r0, [r7, #0x0] + mov r1, #0x8 + bl sub_02016998 + str r0, [r4, #0x8] + cmp r0, #0x0 + bne _0200C184 + add sp, #0x74 + mov r0, #0x0 + pop {r4-r7, pc} +_0200C184: + ldr r0, [r7, #0x0] + mov r1, #0x24 + bl sub_02016998 + ldr r1, [r4, #0x8] + str r0, [r1, #0x0] + ldr r0, [r4, #0x8] + ldr r0, [r0, #0x0] + str r0, [r4, #0x4] + ldr r0, [r4, #0x8] + ldr r1, [r0, #0x0] + cmp r1, #0x0 + bne _0200C1AC + cmp r0, #0x0 + beq _0200C1A6 + bl sub_02016A18 +_0200C1A6: + add sp, #0x74 + mov r0, #0x0 + pop {r4-r7, pc} +_0200C1AC: + mov r1, #0x0 + add r2, r5, #0x0 + add r3, sp, #0x2c +_0200C1B2: + ldr r0, [r2, #0x14] + add r1, r1, #0x1 + add r2, r2, #0x4 + stmia r3!, {r0} + cmp r1, #0x6 + blt _0200C1B2 + ldr r0, [r6, #0x1c] + cmp r0, #0x0 + beq _0200C1CA + ldr r1, [r6, #0x20] + cmp r1, #0x0 + bne _0200C1D4 +_0200C1CA: + mov r0, #0x0 + mvn r0, r0 + str r0, [sp, #0x3c] + str r0, [sp, #0x40] + b _0200C206 +_0200C1D4: + mov r2, #0x0 + ldr r1, [sp, #0x3c] + mvn r2, r2 + cmp r1, r2 + beq _0200C1EC + bl sub_0200945C + cmp r0, #0x0 + bne _0200C1EC + mov r0, #0x0 + mvn r0, r0 + str r0, [sp, #0x3c] +_0200C1EC: + mov r0, #0x0 + ldr r1, [sp, #0x40] + mvn r0, r0 + cmp r1, r0 + beq _0200C206 + ldr r0, [r6, #0x20] + bl sub_0200945C + cmp r0, #0x0 + bne _0200C206 + mov r0, #0x0 + mvn r0, r0 + str r0, [sp, #0x40] +_0200C206: + ldr r0, [sp, #0x38] + str r0, [sp, #0x0] + ldr r0, [sp, #0x3c] + str r0, [sp, #0x4] + ldr r0, [sp, #0x40] + str r0, [sp, #0x8] + ldr r0, [r5, #0x30] + str r0, [sp, #0xc] + ldr r0, [r5, #0x2c] + str r0, [sp, #0x10] + ldr r0, [r6, #0xc] + str r0, [sp, #0x14] + ldr r0, [r6, #0x10] + str r0, [sp, #0x18] + ldr r0, [r6, #0x14] + str r0, [sp, #0x1c] + ldr r0, [r6, #0x18] + str r0, [sp, #0x20] + ldr r0, [r6, #0x1c] + str r0, [sp, #0x24] + ldr r0, [r6, #0x20] + str r0, [sp, #0x28] + ldr r0, [r4, #0x4] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x30] + ldr r3, [sp, #0x34] + bl sub_02008AA4 + ldr r0, [r6, #0x0] + str r0, [sp, #0x44] + ldr r0, [r4, #0x4] + str r0, [sp, #0x48] + mov r0, #0x0 + ldrsh r0, [r5, r0] + cmp r0, #0x0 + ble _0200C260 + lsl r0, r0, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _0200C26E +_0200C260: + lsl r0, r0, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_0200C26E: + blx sub_020EB4C0 + str r0, [sp, #0x4c] + mov r0, #0x2 + ldrsh r0, [r5, r0] + cmp r0, #0x0 + ble _0200C28E + lsl r0, r0, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _0200C29C +_0200C28E: + lsl r0, r0, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_0200C29C: + blx sub_020EB4C0 + str r0, [sp, #0x50] + mov r0, #0x4 + ldrsh r0, [r5, r0] + cmp r0, #0x0 + ble _0200C2BC + lsl r0, r0, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _0200C2CA +_0200C2BC: + lsl r0, r0, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_0200C2CA: + blx sub_020EB4C0 + str r0, [sp, #0x54] + ldr r0, [r5, #0x10] + cmp r0, #0x2 + bne _0200C2E0 + mov r0, #0x3 + ldr r1, [sp, #0x50] + lsl r0, r0, #0x12 + add r0, r1, r0 + str r0, [sp, #0x50] +_0200C2E0: + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [sp, #0x58] + str r0, [sp, #0x5c] + str r0, [sp, #0x60] + mov r1, #0x0 + add r0, sp, #0x2c + strh r1, [r0, #0x38] + ldr r0, [r5, #0x8] + str r0, [sp, #0x68] + ldr r0, [r5, #0x10] + str r0, [sp, #0x6c] + ldr r0, [r7, #0x0] + str r0, [sp, #0x70] + add r0, sp, #0x44 + bl sub_0201FE94 + str r0, [r4, #0x0] + ldr r0, [r5, #0x30] + str r0, [r4, #0xc] + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0200C328 + bl sub_020202A0 + add r6, r0, #0x0 + ldrh r1, [r5, #0x6] + ldr r0, [r4, #0x0] + bl sub_02020130 + ldr r1, [r5, #0xc] + ldr r0, [r4, #0x0] + add r1, r6, r1 + bl sub_02020248 + b _0200C32C +_0200C328: + bl sub_02020C2C +_0200C32C: + add r0, r4, #0x0 + add sp, #0x74 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0200C334 +sub_0200C334: ; 0x0200C334 + push {r3, lr} + ldr r0, [r0, #0x10] + bl sub_020094F0 + mov r1, #0x0 + bl sub_02009E54 + pop {r3, pc} + + thumb_func_start sub_0200C344 +sub_0200C344: ; 0x0200C344 + push {r4, lr} + ldr r0, [r0, #0x10] + add r4, r2, #0x0 + bl sub_020094F0 + add r1, r4, #0x0 + bl sub_02009E88 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200C358 +sub_0200C358: ; 0x0200C358 + add r3, r0, #0x0 + add r2, r1, #0x0 + ldr r0, [r3, #0xc] + ldr r1, [r3, #0x24] + ldr r3, _0200C364 ; =sub_0200C4F4 + bx r3 + .balign 4 +_0200C364: .word sub_0200C4F4 + 1 + + thumb_func_start sub_0200C368 +sub_0200C368: ; 0x0200C368 + add r3, r0, #0x0 + add r2, r1, #0x0 + ldr r0, [r3, #0x10] + ldr r1, [r3, #0x28] + ldr r3, _0200C374 ; =sub_0200C548 + bx r3 + .balign 4 +_0200C374: .word sub_0200C548 + 1 + + thumb_func_start sub_0200C378 +sub_0200C378: ; 0x0200C378 + add r3, r0, #0x0 + add r2, r1, #0x0 + ldr r0, [r3, #0x14] + ldr r1, [r3, #0x2c] + ldr r3, _0200C384 ; =sub_0200C4A8 + bx r3 + .balign 4 +_0200C384: .word sub_0200C4A8 + 1 + + thumb_func_start sub_0200C388 +sub_0200C388: ; 0x0200C388 + add r3, r0, #0x0 + add r2, r1, #0x0 + ldr r0, [r3, #0x18] + ldr r1, [r3, #0x30] + ldr r3, _0200C394 ; =sub_0200C4A8 + bx r3 + .balign 4 +_0200C394: .word sub_0200C4A8 + 1 + + thumb_func_start sub_0200C398 +sub_0200C398: ; 0x0200C398 + push {r3-r7, lr} + add r6, r1, #0x0 + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_0200BC40 + ldr r0, [r6, #0x24] + bl sub_02009C30 + ldr r0, [r6, #0x28] + bl sub_02009E28 + ldr r0, [r6, #0x54] + mov r4, #0x0 + cmp r0, #0x0 + ble _0200C3D0 + add r5, r6, #0x0 +_0200C3BA: + ldr r0, [r5, #0x24] + bl sub_02009448 + ldr r0, [r5, #0xc] + bl sub_02008E2C + ldr r0, [r6, #0x54] + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r0 + blt _0200C3BA +_0200C3D0: + add r0, r7, #0x0 + add r1, r6, #0x0 + bl sub_0200BCD0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200C3DC +sub_0200C3DC: ; 0x0200C3DC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + cmp r0, #0x0 + beq _0200C3EE + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x0] + bl sub_02009CDC +_0200C3EE: + ldr r0, [r4, #0x0] + bl sub_0201FFC8 + ldr r0, [r4, #0x8] + bl sub_02008C80 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200C404 +sub_0200C404: ; 0x0200C404 + push {r4-r7, lr} + sub sp, #0x14 + add r6, r1, #0x0 + add r7, r0, #0x0 + ldr r0, [sp, #0x2c] + add r5, r6, #0x0 + lsl r4, r0, #0x2 + add r5, #0xc + ldr r0, [r5, r4] + ldr r1, [sp, #0x30] + str r2, [sp, #0xc] + str r3, [sp, #0x10] + bl sub_0200945C + cmp r0, #0x0 + bne _0200C42A + add sp, #0x14 + mov r0, #0x0 + pop {r4-r7, pc} +_0200C42A: + ldr r0, [sp, #0x30] + ldr r1, [sp, #0xc] + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0x10] + str r0, [sp, #0x4] + ldr r0, [r7, #0x0] + ldr r3, [sp, #0x28] + str r0, [sp, #0x8] + ldr r0, [r5, r4] + bl sub_020090AC + add r5, r0, #0x0 + beq _0200C460 + add r0, r6, r4 + ldr r0, [r0, #0x24] + add r1, r5, #0x0 + bl sub_0200C474 + add r4, r0, #0x0 + cmp r4, #0x1 + beq _0200C45A + bl sub_02020C2C +_0200C45A: + add sp, #0x14 + add r0, r4, #0x0 + pop {r4-r7, pc} +_0200C460: + bl sub_02020C2C + cmp r5, #0x0 + beq _0200C46E + add sp, #0x14 + mov r0, #0x1 + pop {r4-r7, pc} +_0200C46E: + mov r0, #0x0 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_0200C474 +sub_0200C474: ; 0x0200C474 + push {r3-r6} + ldr r6, [r0, #0x4] + mov r3, #0x0 + cmp r6, #0x0 + ble _0200C4A0 + ldr r5, [r0, #0x0] + add r4, r5, #0x0 +_0200C482: + ldr r2, [r4, #0x0] + cmp r2, #0x0 + bne _0200C498 + lsl r2, r3, #0x2 + str r1, [r5, r2] + ldr r1, [r0, #0x8] + add r1, r1, #0x1 + str r1, [r0, #0x8] + mov r0, #0x1 + pop {r3-r6} + bx lr +_0200C498: + add r3, r3, #0x1 + add r4, r4, #0x4 + cmp r3, r6 + blt _0200C482 +_0200C4A0: + mov r0, #0x0 + pop {r3-r6} + bx lr + .balign 4 + + thumb_func_start sub_0200C4A8 +sub_0200C4A8: ; 0x0200C4A8 + push {r3-r7, lr} + add r5, r1, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x4] + add r7, r2, #0x0 + mov r6, #0x0 + cmp r0, #0x0 + ble _0200C4F0 + add r4, r6, #0x0 +_0200C4BA: + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _0200C4E6 + bl sub_02009530 + cmp r0, r7 + bne _0200C4E6 + ldr r1, [r5, #0x0] + lsl r4, r6, #0x2 + ldr r0, [sp, #0x0] + ldr r1, [r1, r4] + bl sub_02009490 + ldr r0, [r5, #0x0] + mov r1, #0x0 + str r1, [r0, r4] + ldr r0, [r5, #0x8] + sub r0, r0, #0x1 + str r0, [r5, #0x8] + mov r0, #0x1 + pop {r3-r7, pc} +_0200C4E6: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _0200C4BA +_0200C4F0: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0200C4F4 +sub_0200C4F4: ; 0x0200C4F4 + push {r3-r7, lr} + add r5, r1, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x4] + add r7, r2, #0x0 + mov r6, #0x0 + cmp r0, #0x0 + ble _0200C542 + add r4, r6, #0x0 +_0200C506: + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _0200C538 + bl sub_02009530 + cmp r0, r7 + bne _0200C538 + add r0, r7, #0x0 + bl sub_0201D324 + ldr r1, [r5, #0x0] + lsl r4, r6, #0x2 + ldr r0, [sp, #0x0] + ldr r1, [r1, r4] + bl sub_02009490 + ldr r0, [r5, #0x0] + mov r1, #0x0 + str r1, [r0, r4] + ldr r0, [r5, #0x8] + sub r0, r0, #0x1 + str r0, [r5, #0x8] + mov r0, #0x1 + pop {r3-r7, pc} +_0200C538: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _0200C506 +_0200C542: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200C548 +sub_0200C548: ; 0x0200C548 + push {r3-r7, lr} + add r5, r1, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x4] + add r7, r2, #0x0 + mov r6, #0x0 + cmp r0, #0x0 + ble _0200C596 + add r4, r6, #0x0 +_0200C55A: + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _0200C58C + bl sub_02009530 + cmp r0, r7 + bne _0200C58C + add r0, r7, #0x0 + bl sub_0201E1C8 + ldr r1, [r5, #0x0] + lsl r4, r6, #0x2 + ldr r0, [sp, #0x0] + ldr r1, [r1, r4] + bl sub_02009490 + ldr r0, [r5, #0x0] + mov r1, #0x0 + str r1, [r0, r4] + ldr r0, [r5, #0x8] + sub r0, r0, #0x1 + str r0, [r5, #0x8] + mov r0, #0x1 + pop {r3-r7, pc} +_0200C58C: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _0200C55A +_0200C596: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0200C59C: + .byte 0x01, 0x4B, 0x01, 0x21 + .byte 0x09, 0x03, 0x18, 0x47, 0xE5, 0x01, 0x02, 0x02 + + thumb_func_start sub_0200C5A8 +sub_0200C5A8: ; 0x0200C5A8 + ldr r3, _0200C5B0 ; =0x0200C59D + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C5B0: .word 0x0200C59D + + thumb_func_start sub_0200C5B4 +sub_0200C5B4: ; 0x0200C5B4 + ldr r3, _0200C5BC ; =sub_020201E4 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C5BC: .word sub_020201E4 + 1 + + thumb_func_start sub_0200C5C0 +sub_0200C5C0: ; 0x0200C5C0 + ldr r3, _0200C5C8 ; =sub_02020130 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C5C8: .word sub_02020130 + 1 + + thumb_func_start sub_0200C5CC +sub_0200C5CC: ; 0x0200C5CC + ldr r3, _0200C5D4 ; =sub_020201DC + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C5D4: .word sub_020201DC + 1 + + thumb_func_start sub_0200C5D8 +sub_0200C5D8: ; 0x0200C5D8 + ldr r3, _0200C5DC ; =sub_020200BC + bx r3 + .balign 4 +_0200C5DC: .word sub_020200BC + 1 + + thumb_func_start sub_0200C5E0 +sub_0200C5E0: ; 0x0200C5E0 + ldr r3, _0200C5E8 ; =sub_0200C5D8 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C5E8: .word sub_0200C5D8 + 1 + + thumb_func_start sub_0200C5EC +sub_0200C5EC: ; 0x0200C5EC + ldr r3, _0200C5F0 ; =sub_020200D8 + bx r3 + .balign 4 +_0200C5F0: .word sub_020200D8 + 1 + + thumb_func_start sub_0200C5F4 +sub_0200C5F4: ; 0x0200C5F4 + ldr r3, _0200C5FC ; =sub_0200C5EC + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C5FC: .word sub_0200C5EC + 1 + + thumb_func_start sub_0200C600 +sub_0200C600: ; 0x0200C600 + ldr r3, _0200C604 ; =sub_02020388 + bx r3 + .balign 4 +_0200C604: .word sub_02020388 + 1 + + thumb_func_start sub_0200C608 +sub_0200C608: ; 0x0200C608 + ldr r3, _0200C610 ; =sub_0200C600 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C610: .word sub_0200C600 + 1 +_0200C614: + .byte 0x00, 0x4B, 0x18, 0x47, 0x09, 0x02, 0x02, 0x02 + + thumb_func_start sub_0200C61C +sub_0200C61C: ; 0x0200C61C + ldr r3, _0200C624 ; =0x0200C615 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C624: .word 0x0200C615 + + thumb_func_start sub_0200C628 +sub_0200C628: ; 0x0200C628 + ldr r3, _0200C62C ; =sub_0202022C + bx r3 + .balign 4 +_0200C62C: .word sub_0202022C + 1 + + thumb_func_start sub_0200C630 +sub_0200C630: ; 0x0200C630 + ldr r3, _0200C638 ; =sub_0200C628 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C638: .word sub_0200C628 + 1 + + thumb_func_start sub_0200C63C +sub_0200C63C: ; 0x0200C63C + ldr r3, _0200C640 ; =sub_020200A0 + bx r3 + .balign 4 +_0200C640: .word sub_020200A0 + 1 + + thumb_func_start sub_0200C644 +sub_0200C644: ; 0x0200C644 + ldr r3, _0200C64C ; =sub_0200C63C + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C64C: .word sub_0200C63C + 1 + + thumb_func_start sub_0200C650 +sub_0200C650: ; 0x0200C650 + ldr r3, _0200C654 ; =sub_02020128 + bx r3 + .balign 4 +_0200C654: .word sub_02020128 + 1 + + thumb_func_start sub_0200C658 +sub_0200C658: ; 0x0200C658 + ldr r3, _0200C660 ; =sub_0200C650 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C660: .word sub_0200C650 + 1 + + thumb_func_start sub_0200C664 +sub_0200C664: ; 0x0200C664 + ldr r3, _0200C668 ; =sub_02020248 + bx r3 + .balign 4 +_0200C668: .word sub_02020248 + 1 + + thumb_func_start sub_0200C66C +sub_0200C66C: ; 0x0200C66C + ldr r3, _0200C674 ; =sub_0200C664 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C674: .word sub_0200C664 + 1 + + thumb_func_start sub_0200C678 +sub_0200C678: ; 0x0200C678 + ldr r3, _0200C67C ; =sub_020202A8 + bx r3 + .balign 4 +_0200C67C: .word sub_020202A8 + 1 + + thumb_func_start sub_0200C680 +sub_0200C680: ; 0x0200C680 + ldr r3, _0200C688 ; =sub_0200C678 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C688: .word sub_0200C678 + 1 + + thumb_func_start sub_0200C68C +sub_0200C68C: ; 0x0200C68C + ldr r3, _0200C694 ; =sub_02020300 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C694: .word sub_02020300 + 1 + + thumb_func_start sub_0200C698 +sub_0200C698: ; 0x0200C698 + ldr r3, _0200C6A0 ; =sub_02020238 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bx r3 + .balign 4 +_0200C6A0: .word sub_02020238 + 1 + + thumb_func_start sub_0200C6A4 +sub_0200C6A4: ; 0x0200C6A4 + ldr r3, _0200C6AC ; =0x02020241 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C6AC: .word 0x02020241 + + thumb_func_start sub_0200C6B0 +sub_0200C6B0: ; 0x0200C6B0 + ldr r3, _0200C6B8 ; =sub_0200C698 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C6B8: .word sub_0200C698 + 1 + + thumb_func_start sub_0200C6BC +sub_0200C6BC: ; 0x0200C6BC + ldr r3, _0200C6C0 ; =sub_02020310 + bx r3 + .balign 4 +_0200C6C0: .word sub_02020310 + 1 + + thumb_func_start sub_0200C6C4 +sub_0200C6C4: ; 0x0200C6C4 + ldr r3, _0200C6CC ; =sub_0200C6BC + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C6CC: .word sub_0200C6BC + 1 + + thumb_func_start sub_0200C6D0 +sub_0200C6D0: ; 0x0200C6D0 + ldr r3, _0200C6D4 ; =sub_0202032C + bx r3 + .balign 4 +_0200C6D4: .word sub_0202032C + 1 + + thumb_func_start sub_0200C6D8 +sub_0200C6D8: ; 0x0200C6D8 + ldr r3, _0200C6E0 ; =sub_0200C6D0 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C6E0: .word sub_0200C6D0 + 1 + + thumb_func_start sub_0200C6E4 +sub_0200C6E4: ; 0x0200C6E4 + push {r3-r4, lr} + sub sp, #0xc + lsl r1, r1, #0xc + str r1, [sp, #0x0] + lsl r1, r2, #0xc + add r4, r0, #0x0 + str r1, [sp, #0x4] + bl sub_02020380 + cmp r0, #0x2 + bne _0200C704 + mov r0, #0x3 + ldr r1, [sp, #0x4] + lsl r0, r0, #0x12 + add r0, r1, r0 + str r0, [sp, #0x4] +_0200C704: + mov r0, #0x0 + str r0, [sp, #0x8] + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02020044 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_0200C714 +sub_0200C714: ; 0x0200C714 + ldr r3, _0200C71C ; =sub_0200C6E4 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C71C: .word sub_0200C6E4 + 1 + + thumb_func_start sub_0200C720 +sub_0200C720: ; 0x0200C720 + push {r4-r5, lr} + sub sp, #0xc + lsl r1, r1, #0xc + str r1, [sp, #0x0] + lsl r1, r2, #0xc + add r5, r0, #0x0 + add r4, r3, #0x0 + str r1, [sp, #0x4] + bl sub_02020380 + cmp r0, #0x2 + bne _0200C73E + ldr r0, [sp, #0x4] + add r0, r0, r4 + str r0, [sp, #0x4] +_0200C73E: + mov r0, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_02020044 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_0200C750 +sub_0200C750: ; 0x0200C750 + push {r3, lr} + ldr r0, [r0, #0x0] + bl sub_0200C720 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0200C75C +sub_0200C75C: ; 0x0200C75C + push {r3-r7, lr} + add r7, r0, #0x0 + add r6, r1, #0x0 + add r5, r2, #0x0 + bl sub_0202011C + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + strh r0, [r6, #0x0] + add r0, r7, #0x0 + bl sub_02020380 + cmp r0, #0x2 + ldr r1, [r4, #0x4] + bne _0200C794 + mov r0, #0x3 + lsl r0, r0, #0x12 + sub r1, r1, r0 + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + strh r0, [r5, #0x0] + pop {r3-r7, pc} +_0200C794: + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + strh r0, [r5, #0x0] + pop {r3-r7, pc} + + thumb_func_start sub_0200C7A0 +sub_0200C7A0: ; 0x0200C7A0 + ldr r3, _0200C7A8 ; =sub_0200C75C + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C7A8: .word sub_0200C75C + 1 + + thumb_func_start sub_0200C7AC +sub_0200C7AC: ; 0x0200C7AC + push {r3-r7, lr} + str r0, [sp, #0x0] + add r6, r1, #0x0 + add r5, r2, #0x0 + add r7, r3, #0x0 + bl sub_0202011C + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + strh r0, [r6, #0x0] + ldr r0, [sp, #0x0] + bl sub_02020380 + cmp r0, #0x2 + bne _0200C7E2 + ldr r0, [r4, #0x4] + sub r1, r0, r7 + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + strh r0, [r5, #0x0] + pop {r3-r7, pc} +_0200C7E2: + ldr r1, [r4, #0x4] + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + strh r0, [r5, #0x0] + pop {r3-r7, pc} + + thumb_func_start sub_0200C7F0 +sub_0200C7F0: ; 0x0200C7F0 + push {r3, lr} + ldr r0, [r0, #0x0] + bl sub_0200C7AC + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0200C7FC +sub_0200C7FC: ; 0x0200C7FC + push {r3-r6, lr} + sub sp, #0xc + add r6, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_0202011C + ldr r2, [r0, #0x0] + lsl r1, r5, #0xc + add r1, r2, r1 + str r1, [sp, #0x0] + ldr r2, [r0, #0x4] + lsl r1, r4, #0xc + add r1, r2, r1 + str r1, [sp, #0x4] + ldr r0, [r0, #0x8] + add r1, sp, #0x0 + str r0, [sp, #0x8] + add r0, r6, #0x0 + bl sub_02020044 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_0200C82C +sub_0200C82C: ; 0x0200C82C + ldr r3, _0200C834 ; =sub_0200C7FC + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C834: .word sub_0200C7FC + 1 +_0200C838: + .byte 0x00, 0x4B, 0x18, 0x47, 0xED, 0x00, 0x02, 0x02 + + thumb_func_start sub_0200C840 +sub_0200C840: ; 0x0200C840 + ldr r3, _0200C848 ; =0x0200C839 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C848: .word 0x0200C839 + + thumb_func_start sub_0200C84C +sub_0200C84C: ; 0x0200C84C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_02020120 + add r4, r0, #0x0 + ldr r0, _0200C880 ; =0x45800000 + add r1, r6, #0x0 + blx sub_020EB5C4 + blx sub_020EB4C0 + str r0, [r4, #0x0] + ldr r0, _0200C880 ; =0x45800000 + add r1, r7, #0x0 + blx sub_020EB5C4 + blx sub_020EB4C0 + str r0, [r4, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02020064 + pop {r3-r7, pc} + .balign 4 +_0200C880: .word 0x45800000 + + thumb_func_start sub_0200C884 +sub_0200C884: ; 0x0200C884 + ldr r3, _0200C88C ; =sub_0200C84C + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C88C: .word sub_0200C84C + 1 + + thumb_func_start sub_0200C890 +sub_0200C890: ; 0x0200C890 + ldr r3, _0200C894 ; =sub_02020088 + bx r3 + .balign 4 +_0200C894: .word sub_02020088 + 1 + + thumb_func_start sub_0200C898 +sub_0200C898: ; 0x0200C898 + ldr r3, _0200C8A0 ; =sub_0200C890 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C8A0: .word sub_0200C890 + 1 + + thumb_func_start sub_0200C8A4 +sub_0200C8A4: ; 0x0200C8A4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + bl sub_02020124 + add r0, r0, r5 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + add r0, r4, #0x0 + bl sub_02020088 + pop {r3-r5, pc} + + thumb_func_start sub_0200C8BC +sub_0200C8BC: ; 0x0200C8BC + ldr r3, _0200C8C4 ; =sub_0200C8A4 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C8C4: .word sub_0200C8A4 + 1 + + thumb_func_start sub_0200C8C8 +sub_0200C8C8: ; 0x0200C8C8 + ldr r3, _0200C8CC ; =sub_02020100 + bx r3 + .balign 4 +_0200C8CC: .word sub_02020100 + 1 + + thumb_func_start sub_0200C8D0 +sub_0200C8D0: ; 0x0200C8D0 + ldr r3, _0200C8D8 ; =sub_0200C8C8 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C8D8: .word sub_0200C8C8 + 1 + + thumb_func_start sub_0200C8DC +sub_0200C8DC: ; 0x0200C8DC + push {lr} + sub sp, #0xc + lsl r1, r1, #0xc + str r1, [sp, #0x0] + lsl r1, r2, #0xc + str r1, [sp, #0x4] + mov r1, #0x0 + str r1, [sp, #0x8] + ldr r0, [r0, #0x0] + add r1, sp, #0x0 + bl sub_02020054 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0200C8F8 +sub_0200C8F8: ; 0x0200C8F8 + ldr r3, _0200C900 ; =0x02020359 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C900: .word 0x02020359 + + thumb_func_start sub_0200C904 +sub_0200C904: ; 0x0200C904 + ldr r3, _0200C908 ; =sub_02020398 + bx r3 + .balign 4 +_0200C908: .word sub_02020398 + 1 + + thumb_func_start sub_0200C90C +sub_0200C90C: ; 0x0200C90C + ldr r3, _0200C914 ; =sub_0200C904 + ldr r0, [r0, #0x0] + bx r3 + nop +_0200C914: .word sub_0200C904 + 1 + + thumb_func_start sub_0200C918 +sub_0200C918: ; 0x0200C918 + push {r4-r7, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + ldr r1, [sp, #0x28] + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_0200945C + cmp r0, #0x0 + bne _0200C936 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0200C936: + ldr r0, [sp, #0x28] + ldr r3, [sp, #0x20] + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + add r1, r6, #0x0 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + add r2, r7, #0x0 + str r0, [sp, #0x8] + ldr r0, [r4, #0xc] + bl sub_02008F34 + add r5, r0, #0x0 + beq _0200C964 + bl sub_02009AC4 + ldr r0, [r4, #0x24] + add r1, r5, #0x0 + bl sub_0200C474 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0200C964: + bl sub_02020C2C + cmp r5, #0x0 + beq _0200C972 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0200C972: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0200C978 +sub_0200C978: ; 0x0200C978 + push {r4-r7, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + ldr r1, [sp, #0x28] + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_0200945C + cmp r0, #0x0 + bne _0200C996 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0200C996: + ldr r0, [sp, #0x28] + ldr r3, [sp, #0x20] + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + add r1, r6, #0x0 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + add r2, r7, #0x0 + str r0, [sp, #0x8] + ldr r0, [r4, #0xc] + bl sub_02008F34 + add r5, r0, #0x0 + beq _0200C9C4 + bl sub_02009B78 + ldr r0, [r4, #0x24] + add r1, r5, #0x0 + bl sub_0200C474 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0200C9C4: + bl sub_02020C2C + cmp r5, #0x0 + beq _0200C9D2 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0200C9D2: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0200C9D8 +sub_0200C9D8: ; 0x0200C9D8 + push {r4-r7, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + ldr r1, [sp, #0x24] + add r7, r2, #0x0 + str r3, [sp, #0x8] + bl sub_020094F0 + add r6, r0, #0x0 + ldr r0, [sp, #0x20] + ldr r3, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + str r0, [sp, #0x4] + ldr r0, [r4, #0xc] + add r2, r7, #0x0 + bl sub_020090FC + add r0, r6, #0x0 + bl sub_02009BE8 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0200CA0C +sub_0200CA0C: ; 0x0200CA0C + push {r4-r7, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x10] + ldr r1, [sp, #0x24] + add r7, r2, #0x0 + str r3, [sp, #0x8] + bl sub_020094F0 + add r6, r0, #0x0 + ldr r0, [sp, #0x20] + ldr r3, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + str r0, [sp, #0x4] + ldr r0, [r4, #0x10] + add r2, r7, #0x0 + bl sub_02009168 + add r0, r6, #0x0 + bl sub_02009DE0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0200CA40 +sub_0200CA40: ; 0x0200CA40 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_0200CA44 +sub_0200CA44: ; 0x0200CA44 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0200CA5C ; =0x021C48B8 + add r4, r1, #0x0 + add r3, r2, #0x0 + ldr r0, [r0, #0x18] + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0201B60C + pop {r3-r5, pc} + nop +_0200CA5C: .word 0x021C48B8 + + thumb_func_start sub_0200CA60 +sub_0200CA60: ; 0x0200CA60 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0200CA78 ; =0x021C48B8 + add r4, r1, #0x0 + add r3, r2, #0x0 + ldr r0, [r0, #0x1c] + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0201B60C + pop {r3-r5, pc} + nop +_0200CA78: .word 0x021C48B8 + + thumb_func_start sub_0200CA7C +sub_0200CA7C: ; 0x0200CA7C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0200CA94 ; =0x021C48B8 + add r4, r1, #0x0 + add r3, r2, #0x0 + ldr r0, [r0, #0x24] + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0201B60C + pop {r3-r5, pc} + nop +_0200CA94: .word 0x021C48B8 + + thumb_func_start sub_0200CA98 +sub_0200CA98: ; 0x0200CA98 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0200CAB0 ; =0x021C48B8 + add r4, r1, #0x0 + add r3, r2, #0x0 + ldr r0, [r0, #0x20] + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0201B60C + pop {r3-r5, pc} + nop +_0200CAB0: .word 0x021C48B8 + + thumb_func_start sub_0200CAB4 +sub_0200CAB4: ; 0x0200CAB4 + ldr r3, _0200CAB8 ; =sub_0201B6A0 + bx r3 + .balign 4 +_0200CAB8: .word sub_0201B6A0 + 1 + + thumb_func_start sub_0200CABC +sub_0200CABC: ; 0x0200CABC + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r3, #0x0 + str r2, [sp, #0x0] + bne _0200CAE2 + mov r1, #0x0 + str r1, [sp, #0x4] + ldr r0, [sp, #0x20] + str r1, [sp, #0x8] + str r0, [sp, #0xc] + mov r0, #0x26 + add r2, r5, #0x0 + add r3, r4, #0x0 + bl sub_0200687C + add sp, #0x10 + pop {r3-r5, pc} +_0200CAE2: + mov r0, #0x0 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [sp, #0x20] + mov r1, #0x1 + str r0, [sp, #0xc] + mov r0, #0x26 + add r2, r5, #0x0 + add r3, r4, #0x0 + bl sub_0200687C + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_0200CAFC +sub_0200CAFC: ; 0x0200CAFC + mov r0, #0x18 + bx lr + + thumb_func_start sub_0200CB00 +sub_0200CB00: ; 0x0200CB00 + push {r4-r6, lr} + sub sp, #0x10 + add r6, r0, #0x0 + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + add r5, r1, #0x0 + add r4, r3, #0x0 + cmp r0, #0x0 + beq _0200CB16 + mov r1, #0x1 + b _0200CB18 +_0200CB16: + mov r1, #0x0 +_0200CB18: + str r2, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [sp, #0x24] + add r2, r6, #0x0 + str r0, [sp, #0xc] + mov r0, #0x26 + add r3, r5, #0x0 + bl sub_0200687C + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + cmp r0, #0x2 + bne _0200CB3A + mov r1, #0x2d + b _0200CB3C +_0200CB3A: + mov r1, #0x18 +_0200CB3C: + cmp r5, #0x4 + bhs _0200CB56 + mov r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + mov r2, #0x0 + str r0, [sp, #0x4] + mov r0, #0x26 + lsl r3, r4, #0x5 + bl sub_02006930 + add sp, #0x10 + pop {r4-r6, pc} +_0200CB56: + mov r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + mov r2, #0x4 + str r0, [sp, #0x4] + mov r0, #0x26 + lsl r3, r4, #0x5 + bl sub_02006930 + add sp, #0x10 + pop {r4-r6, pc} + + thumb_func_start sub_0200CB6C +sub_0200CB6C: ; 0x0200CB6C + push {r4-r7, lr} + sub sp, #0x24 + str r1, [sp, #0x14] + str r2, [sp, #0x18] + str r3, [sp, #0x1c] + ldr r2, [sp, #0x1c] + ldr r5, [sp, #0x40] + sub r7, r2, #0x1 + ldr r2, [sp, #0x18] + str r0, [sp, #0x10] + sub r6, r2, #0x1 + lsl r2, r7, #0x18 + lsr r2, r2, #0x18 + str r2, [sp, #0x0] + mov r2, #0x1 + str r2, [sp, #0x4] + str r2, [sp, #0x8] + lsl r3, r6, #0x18 + str r5, [sp, #0xc] + add r2, sp, #0x28 + ldrh r2, [r2, #0x1c] + lsr r3, r3, #0x18 + bl sub_02018540 + add r1, sp, #0x28 + ldrh r4, [r1, #0x1c] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + ldrb r0, [r1, #0x10] + add r2, r4, #0x1 + lsl r2, r2, #0x10 + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + str r5, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + ldr r3, [sp, #0x18] + lsr r2, r2, #0x10 + bl sub_02018540 + add r0, sp, #0x28 + ldrb r1, [r0, #0x10] + ldr r0, [sp, #0x18] + add r2, r4, #0x2 + add r0, r0, r1 + str r0, [sp, #0x20] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x20] + str r5, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + add r2, r4, #0x3 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, sp, #0x28 + ldrb r0, [r0, #0x14] + lsl r2, r2, #0x10 + lsl r3, r6, #0x18 + str r0, [sp, #0x8] + str r5, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + ldr r3, [sp, #0x20] + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, sp, #0x28 + ldrb r0, [r0, #0x14] + add r2, r4, #0x5 + lsl r2, r2, #0x10 + str r0, [sp, #0x8] + str r5, [sp, #0xc] + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + add r0, sp, #0x28 + ldrb r1, [r0, #0x14] + ldr r0, [sp, #0x1c] + add r2, r4, #0x6 + add r7, r0, r1 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r5, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r6, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + add r0, sp, #0x28 + ldrb r0, [r0, #0x10] + add r2, r4, #0x7 + lsl r2, r2, #0x10 + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + str r5, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + ldr r3, [sp, #0x18] + lsr r2, r2, #0x10 + bl sub_02018540 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x20] + str r5, [sp, #0xc] + add r4, #0x8 + lsl r2, r4, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0200CCA4 +sub_0200CCA4: ; 0x0200CCA4 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_0201AB08 + str r0, [sp, #0x10] + add r0, r5, #0x0 + bl sub_0201AB14 + str r0, [sp, #0x14] + add r0, r5, #0x0 + bl sub_0201AB18 + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl sub_0201AB0C + str r0, [sp, #0x1c] + add r0, r5, #0x0 + bl sub_0201AB10 + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x14] + str r1, [sp, #0x0] + str r0, [sp, #0x4] + str r7, [sp, #0x8] + str r6, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x10] + ldr r3, [sp, #0x18] + bl sub_0200CB6C + cmp r4, #0x0 + bne _0200CCF4 + add r0, r5, #0x0 + bl sub_020191D0 +_0200CCF4: + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_0200CCF8 +sub_0200CCF8: ; 0x0200CCF8 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0201AB08 + str r0, [sp, #0x10] + add r0, r5, #0x0 + bl sub_0201AB14 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB18 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB0C + str r0, [sp, #0x14] + add r0, r5, #0x0 + bl sub_0201AB10 + sub r1, r7, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x0] + ldr r1, [sp, #0x14] + add r0, r0, #0x2 + add r1, r1, #0x2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r0, #0x18 + str r1, [sp, #0x4] + lsr r0, r0, #0x18 + sub r3, r6, #0x1 + lsl r3, r3, #0x18 + str r0, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x10] + lsr r3, r3, #0x18 + bl sub_02018540 + cmp r4, #0x0 + bne _0200CD5A + add r0, r5, #0x0 + bl sub_02019570 +_0200CD5A: + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200CD60 +sub_0200CD60: ; 0x0200CD60 + add r0, r0, #0x2 + bx lr + + thumb_func_start sub_0200CD64 +sub_0200CD64: ; 0x0200CD64 + add r0, #0x19 + bx lr + + thumb_func_start sub_0200CD68 +sub_0200CD68: ; 0x0200CD68 + push {r4-r7, lr} + sub sp, #0x14 + str r0, [sp, #0x10] + add r0, sp, #0x18 + ldrb r7, [r0, #0x10] + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r7, #0x0 + add r4, r3, #0x0 + bl sub_0200CD60 + add r1, r0, #0x0 + str r6, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0x10] + str r0, [sp, #0xc] + mov r0, #0x26 + add r3, r5, #0x0 + bl sub_0200687C + cmp r5, #0x4 + bhs _0200CDB8 + add r0, r7, #0x0 + bl sub_0200CD64 + add r1, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + mov r2, #0x0 + str r0, [sp, #0x4] + mov r0, #0x26 + lsl r3, r4, #0x5 + bl sub_02006930 + add sp, #0x14 + pop {r4-r7, pc} +_0200CDB8: + add r0, r7, #0x0 + bl sub_0200CD64 + add r1, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + mov r2, #0x4 + str r0, [sp, #0x4] + mov r0, #0x26 + lsl r3, r4, #0x5 + bl sub_02006930 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0200CDD8 +sub_0200CDD8: ; 0x0200CDD8 + push {r3-r7, lr} + sub sp, #0x30 + str r1, [sp, #0x10] + str r2, [sp, #0x14] + str r3, [sp, #0x18] + ldr r2, [sp, #0x4c] + add r7, r0, #0x0 + str r2, [sp, #0x4c] + ldr r2, [sp, #0x18] + ldr r5, [sp, #0x50] + sub r6, r2, #0x1 + ldr r2, [sp, #0x14] + sub r2, r2, #0x2 + str r2, [sp, #0x28] + lsl r2, r6, #0x18 + lsr r2, r2, #0x18 + str r2, [sp, #0x0] + mov r2, #0x1 + str r2, [sp, #0x4] + str r2, [sp, #0x8] + ldr r3, [sp, #0x28] + str r5, [sp, #0xc] + add r2, sp, #0x38 + lsl r3, r3, #0x18 + ldrh r2, [r2, #0x1c] + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x14] + sub r0, r0, #0x1 + str r0, [sp, #0x24] + add r0, sp, #0x38 + ldrh r4, [r0, #0x1c] + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x24] + str r5, [sp, #0xc] + add r2, r4, #0x1 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + add r0, sp, #0x38 + ldrb r0, [r0, #0x10] + add r2, r4, #0x2 + lsl r2, r2, #0x10 + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + str r5, [sp, #0xc] + ldr r1, [sp, #0x10] + ldr r3, [sp, #0x14] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + bl sub_02018540 + add r0, sp, #0x38 + ldrb r1, [r0, #0x10] + ldr r0, [sp, #0x14] + add r2, r4, #0x3 + add r0, r0, r1 + str r0, [sp, #0x2c] + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x2c] + str r5, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x2c] + add r2, r4, #0x4 + add r0, r0, #0x1 + str r0, [sp, #0x20] + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x20] + str r5, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x2c] + add r2, r4, #0x5 + add r0, r0, #0x2 + str r0, [sp, #0x1c] + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x1c] + str r5, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x18] + ldr r3, [sp, #0x28] + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [sp, #0x4c] + add r2, r4, #0x6 + str r0, [sp, #0x8] + str r5, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x18] + ldr r3, [sp, #0x24] + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [sp, #0x4c] + add r2, r4, #0x7 + str r0, [sp, #0x8] + str r5, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x18] + add r2, r4, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [sp, #0x4c] + ldr r3, [sp, #0x2c] + str r0, [sp, #0x8] + str r5, [sp, #0xc] + add r2, #0x9 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x18] + add r2, r4, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [sp, #0x4c] + ldr r3, [sp, #0x20] + str r0, [sp, #0x8] + str r5, [sp, #0xc] + add r2, #0xa + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x18] + add r2, r4, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [sp, #0x4c] + ldr r3, [sp, #0x1c] + str r0, [sp, #0x8] + str r5, [sp, #0xc] + add r2, #0xb + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + add r2, r4, #0x0 + ldr r3, [sp, #0x28] + add r2, #0xc + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x18] + ldr r0, [sp, #0x4c] + lsr r2, r2, #0x10 + add r6, r1, r0 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r5, [sp, #0xc] + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + add r2, r4, #0x0 + ldr r3, [sp, #0x24] + str r5, [sp, #0xc] + add r2, #0xd + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + add r0, sp, #0x38 + ldrb r0, [r0, #0x10] + add r2, r4, #0x0 + add r2, #0xe + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + str r5, [sp, #0xc] + lsl r2, r2, #0x10 + ldr r1, [sp, #0x10] + ldr r3, [sp, #0x14] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + add r2, r4, #0x0 + ldr r3, [sp, #0x2c] + str r5, [sp, #0xc] + add r2, #0xf + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + add r2, r4, #0x0 + ldr r3, [sp, #0x20] + str r5, [sp, #0xc] + add r2, #0x10 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x1c] + str r5, [sp, #0xc] + add r4, #0x11 + lsl r2, r4, #0x10 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x10] + add r0, r7, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200D06C +sub_0200D06C: ; 0x0200D06C + push {r4-r7, lr} + sub sp, #0x1c + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_0201AB08 + str r0, [sp, #0x10] + add r0, r5, #0x0 + bl sub_0201AB14 + str r0, [sp, #0x14] + add r0, r5, #0x0 + bl sub_0201AB18 + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl sub_0201AB0C + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB10 + str r7, [sp, #0x0] + str r0, [sp, #0x4] + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x14] + ldr r3, [sp, #0x18] + bl sub_0200CDD8 + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0200D0BC +sub_0200D0BC: ; 0x0200D0BC + push {r4-r6, lr} + add r6, r2, #0x0 + add r4, r1, #0x0 + add r1, r6, #0x0 + add r2, r3, #0x0 + add r5, r0, #0x0 + bl sub_0200D06C + cmp r4, #0x0 + bne _0200D0D6 + add r0, r5, #0x0 + bl sub_020191D0 +_0200D0D6: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0200D18C + pop {r4-r6, pc} + + thumb_func_start sub_0200D0E0 +sub_0200D0E0: ; 0x0200D0E0 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0201AB08 + str r0, [sp, #0x10] + add r0, r5, #0x0 + bl sub_0201AB14 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB18 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB0C + str r0, [sp, #0x14] + add r0, r5, #0x0 + bl sub_0201AB10 + sub r1, r7, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x0] + ldr r1, [sp, #0x14] + add r0, r0, #0x2 + add r1, r1, #0x5 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r0, #0x18 + str r1, [sp, #0x4] + lsr r0, r0, #0x18 + sub r3, r6, #0x2 + lsl r3, r3, #0x18 + str r0, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x10] + lsr r3, r3, #0x18 + bl sub_02018540 + cmp r4, #0x0 + bne _0200D142 + add r0, r5, #0x0 + bl sub_02019570 +_0200D142: + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200D148 +sub_0200D148: ; 0x0200D148 + push {r4-r5, lr} + sub sp, #0x24 + add r5, r1, #0x0 + str r0, [sp, #0x1c] + add r1, sp, #0x14 + strh r3, [r1, #0xc] + add r4, r2, #0x0 + add r0, sp, #0x20 + ldrh r2, [r0, #0x10] + add r3, r4, #0x0 + strh r2, [r1, #0xe] + ldr r2, [sp, #0x34] + str r2, [sp, #0x14] + ldrh r2, [r0, #0x18] + strh r2, [r1, #0x4] + ldrh r2, [r0, #0x1c] + strh r2, [r1, #0x6] + ldrh r1, [r0, #0x20] + add r2, r5, #0x0 + str r1, [sp, #0x0] + ldrh r1, [r0, #0x24] + str r1, [sp, #0x4] + ldrh r1, [r0, #0x28] + str r1, [sp, #0x8] + ldrh r0, [r0, #0x2c] + add r1, sp, #0x14 + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + add r0, sp, #0x1c + bl sub_02018A60 + add sp, #0x24 + pop {r4-r5, pc} + + thumb_func_start sub_0200D18C +sub_0200D18C: ; 0x0200D18C + push {r3-r7, lr} + sub sp, #0x40 + str r1, [sp, #0x24] + str r0, [sp, #0x20] + ldr r0, [r0, #0x0] + bl sub_02016BB8 + add r6, r0, #0x0 + ldr r0, [sp, #0x20] + bl sub_0201AB08 + mov r1, #0x6 + str r0, [sp, #0x28] + add r0, r6, #0x0 + lsl r1, r1, #0x6 + bl sub_02016998 + add r5, r0, #0x0 + ldr r0, [sp, #0x28] + bl sub_020187B0 + add r4, r0, #0x0 + str r6, [sp, #0x0] + mov r0, #0x26 + mov r1, #0x16 + mov r2, #0x0 + add r3, sp, #0x3c + bl sub_02006BB0 + str r0, [sp, #0x2c] + ldr r0, [sp, #0x3c] + mov r7, #0x0 + ldr r0, [r0, #0x14] + str r0, [sp, #0x30] + ldr r0, [sp, #0x24] + add r0, #0xa + lsl r0, r0, #0x5 + str r0, [sp, #0x34] + ldr r0, [sp, #0x24] + add r0, #0xb + lsl r0, r0, #0x5 + str r0, [sp, #0x38] +_0200D1E0: + ldr r1, [sp, #0x34] + lsl r6, r7, #0x7 + add r0, r5, r6 + add r1, r4, r1 + mov r2, #0x20 + blx sub_020DF438 + add r0, r6, #0x0 + ldr r1, [sp, #0x38] + add r0, #0x20 + add r0, r5, r0 + add r1, r4, r1 + mov r2, #0x20 + blx sub_020DF438 + add r0, r6, #0x0 + ldr r1, [sp, #0x34] + add r0, #0x40 + add r0, r5, r0 + add r1, r4, r1 + mov r2, #0x20 + blx sub_020DF438 + ldr r1, [sp, #0x38] + add r6, #0x60 + add r0, r5, r6 + add r1, r4, r1 + mov r2, #0x20 + blx sub_020DF438 + add r0, r7, #0x1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + cmp r7, #0x3 + blo _0200D1E0 + mov r1, #0x30 + str r1, [sp, #0x0] + str r5, [sp, #0x4] + mov r3, #0xc + str r3, [sp, #0x8] + str r1, [sp, #0xc] + mov r0, #0x1 + str r0, [sp, #0x10] + mov r2, #0x0 + str r2, [sp, #0x14] + str r3, [sp, #0x18] + str r1, [sp, #0x1c] + ldr r0, [sp, #0x30] + mov r1, #0x4 + bl sub_0200D148 + ldr r0, [sp, #0x24] + mov r3, #0x6 + add r0, #0x12 + str r0, [sp, #0x0] + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x28] + ldr r0, [r0, #0x0] + add r2, r5, #0x0 + lsl r3, r3, #0x6 + bl sub_02017E14 + ldr r0, [sp, #0x24] + bl sub_02002840 + ldr r0, [sp, #0x2c] + bl sub_02016A18 + add r0, r5, #0x0 + bl sub_02016A18 + add sp, #0x40 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200D274 +sub_0200D274: ; 0x0200D274 + push {r4-r7, lr} + sub sp, #0x14 + str r0, [sp, #0x4] + str r1, [sp, #0x8] + add r0, sp, #0x18 + ldrb r0, [r0, #0x10] + add r7, r2, #0x0 + add r5, r3, #0x0 + bl sub_0200CD60 + add r1, r0, #0x0 + ldr r0, [sp, #0x2c] + mov r2, #0x0 + str r0, [sp, #0x0] + mov r0, #0x26 + add r3, sp, #0x10 + bl sub_02006BB0 + str r0, [sp, #0xc] + mov r1, #0x9 + ldr r0, [sp, #0x2c] + lsl r1, r1, #0x6 + bl sub_02016998 + ldr r1, [sp, #0x10] + mov r2, #0x9 + ldr r1, [r1, #0x14] + lsl r2, r2, #0x6 + add r4, r0, #0x0 + blx sub_020DF438 + mov r0, #0x9 + mov r3, #0x0 + lsl r0, r0, #0x6 + mov r1, #0xf +_0200D2BA: + ldrb r2, [r4, r3] + lsl r6, r2, #0x14 + and r2, r1 + lsl r2, r2, #0x18 + lsr r6, r6, #0x18 + lsr r2, r2, #0x18 + cmp r6, #0x0 + bne _0200D2CC + add r6, r5, #0x0 +_0200D2CC: + cmp r2, #0x0 + bne _0200D2D2 + add r2, r5, #0x0 +_0200D2D2: + lsl r6, r6, #0x4 + orr r2, r6 + strb r2, [r4, r3] + add r3, r3, #0x1 + cmp r3, r0 + blo _0200D2BA + str r7, [sp, #0x0] + mov r3, #0x9 + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x8] + add r2, r4, #0x0 + lsl r3, r3, #0x6 + bl sub_02017E14 + ldr r0, [sp, #0xc] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0200D300 +sub_0200D300: ; 0x0200D300 + push {r4-r7, lr} + sub sp, #0x1c + str r0, [sp, #0x10] + add r5, r2, #0x0 + mov r0, #0xf + add r6, r1, #0x0 + add r7, r3, #0x0 + str r5, [sp, #0x0] + lsl r0, r0, #0x6 + str r0, [sp, #0x4] + mov r1, #0x0 + ldr r4, [sp, #0x38] + str r1, [sp, #0x8] + ldr r2, [sp, #0x10] + mov r0, #0x24 + add r3, r6, #0x0 + str r4, [sp, #0xc] + bl sub_0200687C + mov r0, #0x24 + mov r1, #0x1 + add r2, r4, #0x0 + bl sub_0200650C + add r1, sp, #0x18 + str r0, [sp, #0x14] + blx sub_020B0138 + add r2, sp, #0x20 + ldr r1, [sp, #0x18] + ldrb r2, [r2, #0x10] + lsl r3, r7, #0x15 + ldr r1, [r1, #0xc] + lsl r2, r2, #0x5 + add r1, r1, r2 + add r0, r6, #0x0 + mov r2, #0x20 + lsr r3, r3, #0x10 + bl sub_02017FB4 + ldr r1, [sp, #0x14] + add r0, r4, #0x0 + bl sub_02016A8C + add r0, sp, #0x20 + ldrb r3, [r0, #0x10] + cmp r3, #0x1 + bhi _0200D374 + ldrh r0, [r0, #0x14] + add r5, #0x1e + lsl r2, r5, #0x10 + str r0, [sp, #0x0] + ldr r0, [sp, #0x10] + add r1, r6, #0x0 + lsr r2, r2, #0x10 + str r4, [sp, #0x4] + bl sub_0200D378 +_0200D374: + add sp, #0x1c + pop {r4-r7, pc} + + thumb_func_start sub_0200D378 +sub_0200D378: ; 0x0200D378 + push {r3-r5, lr} + sub sp, #0x10 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r1, [sp, #0x20] + cmp r3, #0x0 + bne _0200D38C + add r1, #0x21 + lsl r0, r1, #0x10 + b _0200D390 +_0200D38C: + add r0, r1, #0x2 + lsl r0, r0, #0x10 +_0200D390: + lsr r1, r0, #0x10 + mov r0, #0x3 + str r2, [sp, #0x0] + lsl r0, r0, #0x8 + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x24] + add r2, r5, #0x0 + str r0, [sp, #0xc] + mov r0, #0x24 + add r3, r4, #0x0 + bl sub_0200687C + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_0200D3B0 +sub_0200D3B0: ; 0x0200D3B0 + push {r3-r7, lr} + sub sp, #0x40 + str r1, [sp, #0x14] + str r2, [sp, #0x18] + str r3, [sp, #0x1c] + ldr r2, [sp, #0x1c] + ldr r6, [sp, #0x5c] + sub r7, r2, #0x1 + ldr r2, [sp, #0x18] + ldr r5, [sp, #0x60] + str r2, [sp, #0x34] + sub r2, #0x9 + str r2, [sp, #0x34] + lsl r2, r7, #0x18 + lsr r2, r2, #0x18 + str r2, [sp, #0x0] + mov r2, #0x1 + str r2, [sp, #0x4] + str r2, [sp, #0x8] + ldr r3, [sp, #0x34] + str r5, [sp, #0xc] + add r2, sp, #0x48 + lsl r3, r3, #0x18 + ldrh r2, [r2, #0x1c] + lsr r3, r3, #0x18 + str r0, [sp, #0x10] + bl sub_02018540 + ldr r0, [sp, #0x18] + str r0, [sp, #0x30] + sub r0, #0x8 + str r0, [sp, #0x30] + add r0, sp, #0x48 + ldrh r4, [r0, #0x1c] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x30] + str r5, [sp, #0xc] + add r2, r4, #0x1 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + add r0, sp, #0x48 + ldrb r0, [r0, #0x10] + add r2, r4, #0x2 + lsl r2, r2, #0x10 + str r0, [sp, #0x3c] + add r0, r0, #0x7 + str r0, [sp, #0x24] + ldr r0, [sp, #0x18] + lsr r2, r2, #0x10 + sub r0, r0, #0x7 + str r0, [sp, #0x20] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + ldr r3, [sp, #0x20] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + str r5, [sp, #0xc] + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r3, r3, #0x18 + bl sub_02018540 + add r2, r4, #0x3 + lsl r2, r2, #0x10 + ldr r1, [sp, #0x18] + ldr r0, [sp, #0x3c] + lsr r2, r2, #0x10 + add r0, r1, r0 + str r0, [sp, #0x38] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x38] + str r5, [sp, #0xc] + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x38] + add r2, r4, #0x4 + add r0, r0, #0x1 + str r0, [sp, #0x2c] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x2c] + str r5, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x38] + add r0, r0, #0x2 + str r0, [sp, #0x28] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x28] + str r5, [sp, #0xc] + add r2, r4, #0x5 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + ldr r3, [sp, #0x34] + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r6, [sp, #0x8] + str r5, [sp, #0xc] + add r2, r4, #0x6 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + ldr r3, [sp, #0x30] + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r6, [sp, #0x8] + str r5, [sp, #0xc] + add r2, r4, #0x7 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + add r2, r4, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r6, [sp, #0x8] + str r5, [sp, #0xc] + ldr r3, [sp, #0x18] + add r2, #0x8 + sub r3, r3, #0x1 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + add r2, r4, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r6, [sp, #0x8] + ldr r3, [sp, #0x38] + str r5, [sp, #0xc] + add r2, #0x9 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + add r2, r4, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r6, [sp, #0x8] + ldr r3, [sp, #0x2c] + str r5, [sp, #0xc] + add r2, #0xa + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + add r2, r4, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r6, [sp, #0x8] + ldr r3, [sp, #0x28] + str r5, [sp, #0xc] + add r2, #0xb + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + add r2, r4, #0x0 + add r6, r0, r6 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x34] + str r5, [sp, #0xc] + add r2, #0xc + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + add r2, r4, #0x0 + ldr r3, [sp, #0x30] + str r5, [sp, #0xc] + add r2, #0xd + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + add r2, r4, #0x0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + ldr r3, [sp, #0x20] + str r5, [sp, #0xc] + add r2, #0xe + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + add r2, r4, #0x0 + ldr r3, [sp, #0x38] + str r5, [sp, #0xc] + add r2, #0xf + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + add r2, r4, #0x0 + ldr r3, [sp, #0x2c] + str r5, [sp, #0xc] + add r2, #0x10 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0x28] + str r5, [sp, #0xc] + add r4, #0x11 + lsl r2, r4, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + add sp, #0x40 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200D678 +sub_0200D678: ; 0x0200D678 + push {r3-r7, lr} + sub sp, #0x28 + str r1, [sp, #0x10] + add r7, r0, #0x0 + str r2, [sp, #0x14] + bl sub_0201AB08 + str r0, [sp, #0x20] + add r0, r7, #0x0 + bl sub_0201AB14 + sub r0, r0, #0x7 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x18] + add r0, r7, #0x0 + bl sub_0201AB18 + str r0, [sp, #0x1c] + mov r0, #0x0 + str r0, [sp, #0x24] +_0200D6A2: + ldr r2, [sp, #0x24] + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x24] + add r3, r2, #0x0 + add r0, r1, r0 + mov r1, #0x6 + mul r3, r1 + ldr r1, [sp, #0x10] + lsl r0, r0, #0x18 + mov r4, #0x0 + add r5, r1, r3 + lsr r6, r0, #0x18 +_0200D6BA: + str r6, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [sp, #0x14] + ldr r3, [sp, #0x18] + str r0, [sp, #0xc] + add r2, r4, r5 + add r3, r3, r4 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [r7, #0x0] + ldr r1, [sp, #0x20] + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x6 + blo _0200D6BA + ldr r0, [sp, #0x24] + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x24] + cmp r0, #0x4 + blo _0200D6A2 + add sp, #0x28 + pop {r3-r7, pc} + + thumb_func_start sub_0200D6F8 +sub_0200D6F8: ; 0x0200D6F8 + push {r3-r7, lr} + sub sp, #0x28 + add r5, r0, #0x0 + str r1, [sp, #0x10] + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_0201AB08 + str r0, [sp, #0x14] + add r0, sp, #0x30 + ldrb r0, [r0, #0x10] + cmp r0, #0x1 + bhi _0200D756 + add r0, r5, #0x0 + bl sub_0201AB14 + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl sub_0201AB18 + str r0, [sp, #0x1c] + add r0, r5, #0x0 + bl sub_0201AB0C + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB10 + str r7, [sp, #0x0] + str r0, [sp, #0x4] + str r6, [sp, #0x8] + str r4, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x1c] + bl sub_0200D3B0 + add r1, r4, #0x0 + add r1, #0x1e + lsl r1, r1, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + add r2, r6, #0x0 + bl sub_0200D678 + b _0200D788 +_0200D756: + add r0, r5, #0x0 + bl sub_0201AB14 + str r0, [sp, #0x20] + add r0, r5, #0x0 + bl sub_0201AB18 + str r0, [sp, #0x24] + add r0, r5, #0x0 + bl sub_0201AB0C + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB10 + str r7, [sp, #0x0] + str r0, [sp, #0x4] + str r6, [sp, #0x8] + str r4, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x20] + ldr r3, [sp, #0x24] + bl sub_0200CDD8 +_0200D788: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + bne _0200D794 + add r0, r5, #0x0 + bl sub_020191D0 +_0200D794: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0200D18C + add sp, #0x28 + pop {r3-r7, pc} + + thumb_func_start sub_0200D7A0 +sub_0200D7A0: ; 0x0200D7A0 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + add r4, r1, #0x0 + str r2, [sp, #0x10] + bl sub_0201AB08 + str r0, [sp, #0x14] + cmp r4, #0x1 + bhi _0200D7FE + add r0, r5, #0x0 + bl sub_0201AB14 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB18 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB0C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB10 + sub r1, r7, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r0, #0x2 + lsl r0, r0, #0x18 + sub r4, #0x9 + lsl r3, r4, #0x18 + add r6, #0xb + str r1, [sp, #0x0] + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x4] + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x14] + lsr r3, r3, #0x18 + bl sub_02018540 + b _0200D846 +_0200D7FE: + add r0, r5, #0x0 + bl sub_0201AB14 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB18 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB0C + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_0201AB10 + sub r1, r6, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x0] + add r1, r7, #0x4 + lsl r1, r1, #0x18 + add r0, r0, #0x2 + lsr r1, r1, #0x18 + lsl r0, r0, #0x18 + str r1, [sp, #0x4] + lsr r0, r0, #0x18 + sub r3, r4, #0x2 + lsl r3, r3, #0x18 + str r0, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x14] + lsr r3, r3, #0x18 + bl sub_02018540 +_0200D846: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + bne _0200D852 + add r0, r5, #0x0 + bl sub_02019570 +_0200D852: + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200D858 +sub_0200D858: ; 0x0200D858 + push {r4-r7, lr} + sub sp, #0x34 + str r0, [sp, #0x20] + ldr r0, [r0, #0x0] + str r1, [sp, #0x24] + bl sub_02016BB8 + str r0, [sp, #0x28] + ldr r0, [sp, #0x20] + bl sub_0201AB08 + bl sub_020187B0 + add r5, r0, #0x0 + ldr r0, [sp, #0x28] + ldr r1, _0200D970 ; =0x0000048C + bl sub_02016998 + ldr r1, [sp, #0x24] + add r4, r0, #0x0 + ldr r0, _0200D974 ; =0x00000404 + add r1, #0x12 + lsl r1, r1, #0x5 + add r0, r4, r0 + add r1, r5, r1 + mov r2, #0x80 + blx sub_020DF438 + ldr r0, [sp, #0x28] + mov r1, #0x80 + bl sub_02016998 + ldr r1, [sp, #0x24] + mov r2, #0x20 + add r1, #0xa + lsl r1, r1, #0x5 + str r1, [sp, #0x2c] + add r1, r5, r1 + add r6, r0, #0x0 + blx sub_020DF438 + ldr r0, [sp, #0x24] + mov r2, #0x20 + add r0, #0xb + lsl r7, r0, #0x5 + add r0, r6, #0x0 + add r0, #0x20 + add r1, r5, r7 + blx sub_020DF438 + ldr r1, [sp, #0x2c] + add r0, r6, #0x0 + add r0, #0x40 + add r1, r5, r1 + mov r2, #0x20 + blx sub_020DF438 + add r0, r6, #0x0 + add r0, #0x60 + add r1, r5, r7 + mov r2, #0x20 + blx sub_020DF438 + mov r5, #0x0 + add r7, r4, #0x4 +_0200D8DA: + lsl r0, r5, #0x7 + add r0, r7, r0 + add r1, r6, #0x0 + mov r2, #0x80 + blx sub_020DF438 + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x8 + blo _0200D8DA + add r0, r6, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x28] + mov r1, #0x17 + str r0, [sp, #0x0] + mov r0, #0x26 + mov r2, #0x0 + add r3, sp, #0x30 + bl sub_02006BB0 + mov r2, #0x80 + add r5, r0, #0x0 + str r2, [sp, #0x0] + add r0, r4, #0x4 + str r0, [sp, #0x4] + mov r3, #0x10 + str r3, [sp, #0x8] + str r2, [sp, #0xc] + mov r1, #0x0 + str r1, [sp, #0x10] + str r1, [sp, #0x14] + str r3, [sp, #0x18] + str r2, [sp, #0x1c] + ldr r0, [sp, #0x30] + add r2, r1, #0x0 + ldr r0, [r0, #0x14] + bl sub_0200D148 + add r0, r5, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x20] + ldr r1, _0200D978 ; =0x00000484 + str r0, [r4, #0x0] + ldr r0, [sp, #0x24] + mov r2, #0x0 + strh r0, [r4, r1] + add r0, r1, #0x2 + strb r2, [r4, r0] + add r0, r1, #0x3 + ldrb r3, [r4, r0] + mov r0, #0x7f + bic r3, r0 + add r0, r1, #0x3 + strb r3, [r4, r0] + add r0, r1, #0x4 + ldrb r3, [r4, r0] + mov r0, #0x3 + bic r3, r0 + add r0, r1, #0x4 + strb r3, [r4, r0] + ldr r0, _0200D97C ; =sub_0200DB7C + add r1, r4, #0x0 + bl sub_0200CA60 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0200D980 + add r0, r4, #0x0 + add sp, #0x34 + pop {r4-r7, pc} + nop +_0200D970: .word 0x0000048C +_0200D974: .word 0x00000404 +_0200D978: .word 0x00000484 +_0200D97C: .word sub_0200DB7C + 1 + + thumb_func_start sub_0200D980 +sub_0200D980: ; 0x0200D980 + push {r4-r7, lr} + sub sp, #0x24 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + bl sub_0201AB08 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0201AB14 + str r0, [sp, #0x18] + ldr r0, [r5, #0x0] + bl sub_0201AB18 + str r0, [sp, #0x1c] + ldr r0, [r5, #0x0] + bl sub_0201AB0C + str r0, [sp, #0x20] + cmp r6, #0x2 + bne _0200DA8A + ldr r2, _0200DB78 ; =0x00000484 + add r1, r4, #0x0 + ldrh r0, [r5, r2] + sub r2, #0x80 + add r2, r5, r2 + add r0, #0x12 + str r0, [sp, #0x0] + ldr r0, [r5, #0x0] + mov r3, #0x80 + ldr r0, [r0, #0x0] + bl sub_02017E14 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + add r7, r0, #0x2 + ldr r0, [sp, #0x20] + ldr r2, _0200DB78 ; =0x00000484 + add r6, r1, r0 + add r0, r6, #0x1 + str r0, [sp, #0x14] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldrh r2, [r5, r2] + ldr r0, [r5, #0x0] + ldr r3, [sp, #0x14] + add r2, #0xa + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldr r2, _0200DB78 ; =0x00000484 + ldr r0, [r5, #0x0] + ldrh r2, [r5, r2] + add r6, r6, #0x2 + lsl r3, r6, #0x18 + add r2, #0xb + lsl r2, r2, #0x10 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + ldr r3, [sp, #0x14] + add r7, r0, #0x3 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldr r2, _0200DB78 ; =0x00000484 + ldr r0, [r5, #0x0] + ldrh r2, [r5, r2] + lsl r3, r3, #0x18 + ldr r0, [r0, #0x0] + add r2, #0xa + lsl r2, r2, #0x10 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldr r2, _0200DB78 ; =0x00000484 + ldr r0, [r5, #0x0] + ldrh r2, [r5, r2] + lsl r3, r6, #0x18 + ldr r0, [r0, #0x0] + add r2, #0xb + lsl r2, r2, #0x10 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0x0] + bl sub_02017CD0 + add sp, #0x24 + pop {r4-r7, pc} +_0200DA8A: + ldr r3, _0200DB78 ; =0x00000484 + add r2, r5, #0x4 + ldrh r0, [r5, r3] + add r3, r3, #0x3 + add r1, r4, #0x0 + add r0, #0x12 + str r0, [sp, #0x0] + ldrb r3, [r5, r3] + ldr r0, [r5, #0x0] + lsl r3, r3, #0x19 + lsr r3, r3, #0x19 + lsl r3, r3, #0x7 + add r2, r2, r3 + ldr r0, [r0, #0x0] + mov r3, #0x80 + bl sub_02017E14 + cmp r6, #0x0 + beq _0200DB72 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + add r7, r0, #0x2 + ldr r0, [sp, #0x20] + ldr r2, _0200DB78 ; =0x00000484 + add r6, r1, r0 + add r0, r6, #0x1 + str r0, [sp, #0x10] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldrh r2, [r5, r2] + ldr r0, [r5, #0x0] + ldr r3, [sp, #0x10] + add r2, #0x12 + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldr r2, _0200DB78 ; =0x00000484 + ldr r0, [r5, #0x0] + ldrh r2, [r5, r2] + add r6, r6, #0x2 + lsl r3, r6, #0x18 + add r2, #0x13 + lsl r2, r2, #0x10 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [sp, #0x1c] + ldr r3, [sp, #0x10] + add r7, r0, #0x3 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldr r2, _0200DB78 ; =0x00000484 + ldr r0, [r5, #0x0] + ldrh r2, [r5, r2] + lsl r3, r3, #0x18 + ldr r0, [r0, #0x0] + add r2, #0x14 + lsl r2, r2, #0x10 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldr r2, _0200DB78 ; =0x00000484 + ldr r0, [r5, #0x0] + ldrh r2, [r5, r2] + lsl r3, r6, #0x18 + ldr r0, [r0, #0x0] + add r2, #0x15 + lsl r2, r2, #0x10 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0x0] + bl sub_02017CD0 +_0200DB72: + add sp, #0x24 + pop {r4-r7, pc} + nop +_0200DB78: .word 0x00000484 + + thumb_func_start sub_0200DB7C +sub_0200DB7C: ; 0x0200DB7C + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, _0200DBE4 ; =0x00000488 + ldrb r2, [r1, r0] + lsl r2, r2, #0x1e + lsr r2, r2, #0x1e + beq _0200DB9E + cmp r2, #0x1 + bne _0200DB96 + add r0, r1, #0x0 + mov r1, #0x2 + bl sub_0200D980 +_0200DB96: + add r0, r4, #0x0 + bl sub_0200CAB4 + pop {r3-r5, pc} +_0200DB9E: + sub r2, r0, #0x2 + ldrb r2, [r1, r2] + add r3, r2, #0x1 + sub r2, r0, #0x2 + strb r3, [r1, r2] + ldrb r2, [r1, r2] + cmp r2, #0x10 + bne _0200DBE0 + mov r3, #0x0 + sub r2, r0, #0x2 + strb r3, [r1, r2] + sub r2, r0, #0x1 + ldrb r2, [r1, r2] + mov r4, #0x7f + bic r2, r4 + sub r4, r0, #0x1 + ldrb r4, [r1, r4] + sub r0, r0, #0x1 + lsl r4, r4, #0x19 + lsr r4, r4, #0x19 + add r5, r4, #0x1 + mov r4, #0x7 + and r4, r5 + lsl r4, r4, #0x18 + lsr r5, r4, #0x18 + mov r4, #0x7f + and r4, r5 + orr r2, r4 + strb r2, [r1, r0] + add r0, r1, #0x0 + add r1, r3, #0x0 + bl sub_0200D980 +_0200DBE0: + pop {r3-r5, pc} + nop +_0200DBE4: .word 0x00000488 + + thumb_func_start sub_0200DBE8 +sub_0200DBE8: ; 0x0200DBE8 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_0200CAB4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200DBFC +sub_0200DBFC: ; 0x0200DBFC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0200DC1C ; =sub_0200DBE8 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_0200CA98 + ldr r1, _0200DC20 ; =0x00000488 + mov r0, #0x3 + ldrb r2, [r4, r1] + bic r2, r0 + mov r0, #0x1 + orr r0, r2 + strb r0, [r4, r1] + pop {r4, pc} + nop +_0200DC1C: .word sub_0200DBE8 + 1 +_0200DC20: .word 0x00000488 + + thumb_func_start sub_0200DC24 +sub_0200DC24: ; 0x0200DC24 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0200DC44 ; =sub_0200DBE8 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_0200CA98 + ldr r1, _0200DC48 ; =0x00000488 + mov r0, #0x3 + ldrb r2, [r4, r1] + bic r2, r0 + mov r0, #0x2 + orr r0, r2 + strb r0, [r4, r1] + pop {r4, pc} + nop +_0200DC44: .word sub_0200DBE8 + 1 +_0200DC48: .word 0x00000488 + + thumb_func_start sub_0200DC4C +sub_0200DC4C: ; 0x0200DC4C + push {r4-r7, lr} + sub sp, #0xc + str r2, [sp, #0x4] + ldr r5, [sp, #0x30] + str r3, [sp, #0x8] + add r6, r0, #0x0 + add r7, r1, #0x0 + str r5, [sp, #0x0] + bl sub_0200DD70 + add r4, r0, #0x0 + add r1, r5, #0x0 + bl sub_0200DDAC + add r0, r4, #0x0 + bl sub_0200DDD8 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x8] + add r0, r4, #0x0 + bl sub_0200DE30 + add r2, sp, #0x10 + ldrh r1, [r2, #0x18] + ldrb r2, [r2, #0x1c] + add r0, r4, #0x0 + bl sub_0200DE80 + add r2, sp, #0x10 + ldrb r1, [r2, #0x10] + ldrh r2, [r2, #0x14] + add r0, r4, #0x0 + bl sub_0200DFD8 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_02017CD0 + ldr r0, _0200DCA0 ; =0x0000016F + add r0, r4, r0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0200DCA0: .word 0x0000016F + + thumb_func_start sub_0200DCA4 +sub_0200DCA4: ; 0x0200DCA4 + push {r4-r7, lr} + sub sp, #0xc + str r2, [sp, #0x4] + ldr r5, [sp, #0x2c] + str r3, [sp, #0x8] + add r6, r0, #0x0 + add r7, r1, #0x0 + str r5, [sp, #0x0] + bl sub_0200DD70 + add r4, r0, #0x0 + add r1, r5, #0x0 + bl sub_0200DDAC + add r0, r4, #0x0 + bl sub_0200DDD8 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x8] + add r0, r4, #0x0 + bl sub_0200DE30 + ldr r1, [sp, #0x28] + add r0, r4, #0x0 + bl sub_0200DEC0 + add r2, sp, #0x10 + ldrb r1, [r2, #0x10] + ldrh r2, [r2, #0x14] + add r0, r4, #0x0 + bl sub_0200DFD8 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_02017CD0 + ldr r0, _0200DCF4 ; =0x0000016F + add r0, r4, r0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0200DCF4: .word 0x0000016F + + thumb_func_start sub_0200DCF8 +sub_0200DCF8: ; 0x0200DCF8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0200DD6C ; =0x0000016F + add r4, r1, #0x0 + ldrb r1, [r4, r0] + cmp r1, #0x1 + beq _0200DD10 + cmp r1, #0x2 + beq _0200DD2E + cmp r1, #0x3 + beq _0200DD40 + b _0200DD54 +_0200DD10: + add r0, r4, #0x0 + bl sub_0200E188 + mov r0, #0x59 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0200C3DC + add r0, r4, #0x0 + bl sub_021D99F8 + add r0, r5, #0x0 + bl sub_0200621C + pop {r3-r5, pc} +_0200DD2E: + mov r1, #0x3 + strb r1, [r4, r0] + sub r0, #0xb + ldr r0, [r4, r0] + mov r1, #0x1 + ldr r0, [r0, #0x0] + bl sub_02020130 + b _0200DD54 +_0200DD40: + sub r0, #0xb + ldr r0, [r4, r0] + ldr r0, [r0, #0x0] + bl sub_0202022C + cmp r0, #0x6 + bne _0200DD54 + ldr r0, _0200DD6C ; =0x0000016F + mov r1, #0x0 + strb r1, [r4, r0] +_0200DD54: + mov r0, #0x59 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xc + bl sub_020201E4 + ldr r0, [r4, #0x0] + bl sub_0201FDEC + pop {r3-r5, pc} + .balign 4 +_0200DD6C: .word 0x0000016F + + thumb_func_start sub_0200DD70 +sub_0200DD70: ; 0x0200DD70 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r7, r3, #0x0 + mov r1, #0x17 + add r6, r2, #0x0 + ldr r0, _0200DDA4 ; =sub_0200DCF8 + ldr r3, [sp, #0x18] + lsl r1, r1, #0x4 + mov r2, #0x0 + bl sub_020061E8 + bl sub_0201B6C8 + ldr r1, _0200DDA8 ; =0x0000016F + mov r2, #0x0 + strb r2, [r0, r1] + sub r2, r1, #0x7 + str r5, [r0, r2] + sub r2, r1, #0x3 + strb r4, [r0, r2] + sub r2, r1, #0x2 + strb r6, [r0, r2] + sub r1, r1, #0x1 + strb r7, [r0, r1] + pop {r3-r7, pc} + .balign 4 +_0200DDA4: .word sub_0200DCF8 + 1 +_0200DDA8: .word 0x0000016F + + thumb_func_start sub_0200DDAC +sub_0200DDAC: ; 0x0200DDAC + push {r4-r6, lr} + sub sp, #0x18 + ldr r5, _0200DDD4 ; =0x020ECEA8 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r3, r1, #0x0 + add r2, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r1, r2, #0x0 + add r0, r6, #0x0 + mov r2, #0x1 + bl sub_021D959C + add sp, #0x18 + pop {r4-r6, pc} + .balign 4 +_0200DDD4: .word 0x020ECEA8 + + thumb_func_start sub_0200DDD8 +sub_0200DDD8: ; 0x0200DDD8 + push {r3-r4, lr} + sub sp, #0xc + mov r1, #0x1 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, _0200DE2C ; =0x00015CD5 + mov r2, #0x31 + str r1, [sp, #0x8] + mov r1, #0x26 + mov r3, #0x0 + add r4, r0, #0x0 + bl sub_021D967C + ldr r0, _0200DE2C ; =0x00015CD5 + mov r1, #0x26 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r2, #0x2f + mov r3, #0x0 + bl sub_021D96F4 + ldr r0, _0200DE2C ; =0x00015CD5 + mov r1, #0x26 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r2, #0x2e + mov r3, #0x0 + bl sub_021D9708 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, _0200DE2C ; =0x00015CD5 + mov r1, #0x26 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r2, #0x30 + mov r3, #0x0 + bl sub_021D971C + add sp, #0xc + pop {r3-r4, pc} + nop +_0200DE2C: .word 0x00015CD5 + + thumb_func_start sub_0200DE30 +sub_0200DE30: ; 0x0200DE30 + push {r4-r7, lr} + sub sp, #0x34 + ldr r5, _0200DE7C ; =0x020ECEC0 + add r6, r2, #0x0 + add r4, r0, #0x0 + add r7, r1, #0x0 + add r3, sp, #0x0 + mov r2, #0x6 +_0200DE40: + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0200DE40 + ldr r0, [r5, #0x0] + str r0, [r3, #0x0] + add r0, r7, #0x5 + lsl r1, r0, #0x3 + add r0, sp, #0x0 + strh r1, [r0, #0x0] + add r1, r6, #0x5 + lsl r1, r1, #0x3 + strh r1, [r0, #0x2] + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_021D9820 + mov r1, #0x59 + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, #0x0] + bl sub_0201FDEC + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E74C + add sp, #0x34 + pop {r4-r7, pc} + nop +_0200DE7C: .word 0x020ECEC0 + + thumb_func_start sub_0200DE80 +sub_0200DE80: ; 0x0200DE80 + push {r4-r7, lr} + sub sp, #0x1c + add r5, r0, #0x0 + ldr r0, _0200DEBC ; =0x00000162 + add r4, r1, #0x0 + ldrh r0, [r5, r0] + add r6, r2, #0x0 + bl sub_02006D98 + add r7, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + add r0, sp, #0xc + add r1, r4, #0x0 + add r2, r6, #0x0 + mov r3, #0x2 + bl sub_02068C00 + add r0, r5, #0x0 + add r1, sp, #0xc + bl sub_0200DEF4 + add r0, r7, #0x0 + bl sub_020072E8 + add sp, #0x1c + pop {r4-r7, pc} + nop +_0200DEBC: .word 0x00000162 + + thumb_func_start sub_0200DEC0 +sub_0200DEC0: ; 0x0200DEC0 + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, _0200DEF0 ; =0x00000162 + add r4, r1, #0x0 + ldrh r0, [r5, r0] + bl sub_02006D98 + add r6, r0, #0x0 + add r0, sp, #0x0 + add r1, r4, #0x0 + mov r2, #0x2 + bl sub_02068B68 + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_0200DEF4 + add r0, r6, #0x0 + bl sub_020072E8 + add sp, #0x10 + pop {r4-r6, pc} + nop +_0200DEF0: .word 0x00000162 + + thumb_func_start sub_0200DEF4 +sub_0200DEF4: ; 0x0200DEF4 + push {r3-r7, lr} + sub sp, #0x28 + add r5, r0, #0x0 + ldr r0, _0200DFC8 ; =0x00000162 + add r6, r1, #0x0 + mov r1, #0x19 + ldrh r0, [r5, r0] + lsl r1, r1, #0x8 + bl sub_02016998 + add r2, sp, #0x18 + ldr r3, _0200DFCC ; =0x020ECE98 + add r4, r0, #0x0 + add r7, r2, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + str r4, [sp, #0x0] + ldr r2, _0200DFC8 ; =0x00000162 + ldrh r0, [r6, #0x0] + ldrh r1, [r6, #0x2] + ldrh r2, [r5, r2] + add r3, r7, #0x0 + bl sub_02012400 + ldr r3, _0200DFD0 ; =0x020ECE88 + add r2, sp, #0x8 + add r7, r2, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0x32 + lsl r0, r0, #0x6 + add r0, r4, r0 + str r0, [sp, #0x0] + ldr r2, _0200DFC8 ; =0x00000162 + ldrh r0, [r6, #0x0] + ldrh r1, [r6, #0x2] + ldrh r2, [r5, r2] + add r3, r7, #0x0 + bl sub_02012400 + mov r0, #0x13 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + ldr r1, _0200DFD4 ; =0x00015CD5 + bl sub_020094F0 + bl sub_02009C5C + mov r1, #0x1 + str r0, [sp, #0x4] + blx sub_020B1A14 + mov r1, #0x19 + add r7, r0, #0x0 + add r0, r4, #0x0 + lsl r1, r1, #0x8 + blx sub_020CC15C + mov r2, #0x19 + add r0, r4, #0x0 + add r1, r7, #0x0 + lsl r2, r2, #0x8 + blx sub_020C92F4 + add r0, r4, #0x0 + bl sub_02016A18 + ldr r2, _0200DFC8 ; =0x00000162 + ldrh r0, [r6, #0x0] + ldrh r1, [r6, #0x4] + ldrh r2, [r5, r2] + bl sub_02012470 + add r4, r0, #0x0 + mov r0, #0x4d + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r1, _0200DFD4 ; =0x00015CD5 + bl sub_020094F0 + ldr r1, [sp, #0x4] + bl sub_02009E54 + mov r1, #0x1 + blx sub_020B19C4 + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x20 + blx sub_020CC15C + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x20 + blx sub_020C9480 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x28 + pop {r3-r7, pc} + nop +_0200DFC8: .word 0x00000162 +_0200DFCC: .word 0x020ECE98 +_0200DFD0: .word 0x020ECE88 +_0200DFD4: .word 0x00015CD5 + + thumb_func_start sub_0200DFD8 +sub_0200DFD8: ; 0x0200DFD8 + push {r4-r6, lr} + sub sp, #0x10 + ldr r3, _0200E184 ; =0x0000016E + add r5, r0, #0x0 + ldrb r0, [r5, r3] + add r4, r1, #0x0 + sub r1, r3, #0x2 + sub r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r4, [sp, #0xc] + sub r0, r3, #0x6 + sub r3, r3, #0x1 + ldrb r3, [r5, r3] + ldrb r1, [r5, r1] + ldr r0, [r5, r0] + sub r3, r3, #0x1 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + add r6, r2, #0x0 + bl sub_02018540 + ldr r3, _0200E184 ; =0x0000016E + add r2, r6, #0x1 + ldrb r0, [r5, r3] + sub r1, r3, #0x2 + lsl r2, r2, #0x10 + sub r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + str r4, [sp, #0xc] + sub r0, r3, #0x6 + sub r3, r3, #0x1 + ldrb r1, [r5, r1] + ldrb r3, [r5, r3] + ldr r0, [r5, r0] + lsr r2, r2, #0x10 + bl sub_02018540 + ldr r3, _0200E184 ; =0x0000016E + add r2, r6, #0x2 + ldrb r0, [r5, r3] + lsl r2, r2, #0x10 + sub r1, r3, #0x2 + sub r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r4, [sp, #0xc] + sub r0, r3, #0x6 + sub r3, r3, #0x1 + ldrb r3, [r5, r3] + ldrb r1, [r5, r1] + ldr r0, [r5, r0] + add r3, #0xa + lsl r3, r3, #0x18 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r3, _0200E184 ; =0x0000016E + add r2, r6, #0x4 + ldrb r0, [r5, r3] + lsl r2, r2, #0x10 + sub r1, r3, #0x2 + str r0, [sp, #0x0] + mov r0, #0xa + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r4, [sp, #0xc] + sub r0, r3, #0x6 + sub r3, r3, #0x1 + ldrb r1, [r5, r1] + ldrb r3, [r5, r3] + ldr r0, [r5, r0] + lsr r2, r2, #0x10 + bl sub_02018540 + ldr r3, _0200E184 ; =0x0000016E + add r2, r6, #0x3 + ldrb r0, [r5, r3] + lsl r2, r2, #0x10 + sub r1, r3, #0x2 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r0, #0xa + str r0, [sp, #0x8] + str r4, [sp, #0xc] + sub r0, r3, #0x6 + sub r3, r3, #0x1 + ldrb r3, [r5, r3] + ldrb r1, [r5, r1] + ldr r0, [r5, r0] + sub r3, r3, #0x1 + lsl r3, r3, #0x18 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r3, _0200E184 ; =0x0000016E + add r2, r6, #0x5 + ldrb r0, [r5, r3] + lsl r2, r2, #0x10 + sub r1, r3, #0x2 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r0, #0xa + str r0, [sp, #0x8] + str r4, [sp, #0xc] + sub r0, r3, #0x6 + sub r3, r3, #0x1 + ldrb r3, [r5, r3] + ldrb r1, [r5, r1] + ldr r0, [r5, r0] + add r3, #0xa + lsl r3, r3, #0x18 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r3, _0200E184 ; =0x0000016E + add r2, r6, #0x6 + ldrb r0, [r5, r3] + lsl r2, r2, #0x10 + sub r1, r3, #0x2 + add r0, #0xa + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r4, [sp, #0xc] + sub r0, r3, #0x6 + sub r3, r3, #0x1 + ldrb r3, [r5, r3] + ldrb r1, [r5, r1] + ldr r0, [r5, r0] + sub r3, r3, #0x1 + lsl r3, r3, #0x18 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + ldr r3, _0200E184 ; =0x0000016E + add r2, r6, #0x7 + ldrb r0, [r5, r3] + sub r1, r3, #0x2 + lsl r2, r2, #0x10 + add r0, #0xa + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + str r4, [sp, #0xc] + sub r0, r3, #0x6 + sub r3, r3, #0x1 + ldrb r1, [r5, r1] + ldrb r3, [r5, r3] + ldr r0, [r5, r0] + lsr r2, r2, #0x10 + bl sub_02018540 + ldr r3, _0200E184 ; =0x0000016E + add r6, #0x8 + ldrb r0, [r5, r3] + lsl r2, r6, #0x10 + sub r1, r3, #0x2 + add r0, #0xa + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r4, [sp, #0xc] + sub r0, r3, #0x6 + sub r3, r3, #0x1 + ldrb r3, [r5, r3] + ldrb r1, [r5, r1] + ldr r0, [r5, r0] + add r3, #0xa + lsl r3, r3, #0x18 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + mov r1, #0x5a + lsl r1, r1, #0x2 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldrb r1, [r5, r1] + bl sub_0201AC68 + add sp, #0x10 + pop {r4-r6, pc} + nop +_0200E184: .word 0x0000016E + + thumb_func_start sub_0200E188 +sub_0200E188: ; 0x0200E188 + push {r4, lr} + sub sp, #0x10 + ldr r3, _0200E1CC ; =0x0000016E + add r4, r0, #0x0 + ldrb r0, [r4, r3] + mov r2, #0x0 + sub r1, r3, #0x2 + sub r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r2, [sp, #0xc] + sub r0, r3, #0x6 + sub r3, r3, #0x1 + ldrb r3, [r4, r3] + ldrb r1, [r4, r1] + ldr r0, [r4, r0] + sub r3, r3, #0x1 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl sub_02018540 + mov r1, #0x5a + lsl r1, r1, #0x2 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldrb r1, [r4, r1] + bl sub_0201AC68 + add sp, #0x10 + pop {r4, pc} + .balign 4 +_0200E1CC: .word 0x0000016E + + thumb_func_start sub_0200E1D0 +sub_0200E1D0: ; 0x0200E1D0 + push {r4-r7, lr} + sub sp, #0x1c + add r5, r0, #0x0 + ldr r0, [sp, #0x30] + add r4, r1, #0x0 + add r7, r2, #0x0 + add r6, r3, #0x0 + cmp r0, #0x0 + bne _0200E1E6 + bl sub_02020C2C +_0200E1E6: + ldr r0, [sp, #0x34] + cmp r0, #0x0 + bne _0200E1F0 + bl sub_02020C2C +_0200E1F0: + ldr r0, _0200E2AC ; =0x021C47F4 + ldrh r0, [r0, #0xc] + cmp r0, #0x0 + beq _0200E1FC + bl sub_02020C2C +_0200E1FC: + ldr r0, _0200E2B0 ; =0x021C46B4 + bl sub_0200E808 + ldr r1, _0200E2B0 ; =0x021C46B4 + add r0, r5, #0x0 + bl sub_0200E558 + ldr r0, _0200E2B4 ; =0x021C4728 + bl sub_0200E5F4 + ldr r0, _0200E2B0 ; =0x021C46B4 + add r1, r6, #0x0 + bl sub_0200E75C + add r5, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, _0200E2B8 ; =0x021C4740 + ldr r2, [sp, #0x30] + str r0, [sp, #0xc] + ldr r0, _0200E2B4 ; =0x021C4728 + ldr r3, [sp, #0x34] + str r0, [sp, #0x10] + ldr r0, [sp, #0x38] + add r1, r4, #0x0 + str r0, [sp, #0x14] + ldr r0, _0200E2BC ; =0x021C46C8 + str r5, [sp, #0x18] + bl sub_0200E5C8 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + ldr r0, _0200E2B8 ; =0x021C4740 + ldr r2, [sp, #0x30] + str r0, [sp, #0xc] + ldr r0, _0200E2B4 ; =0x021C4728 + ldr r3, [sp, #0x34] + str r0, [sp, #0x10] + ldr r0, [sp, #0x38] + add r1, r7, #0x0 + str r0, [sp, #0x14] + ldr r0, _0200E2C0 ; =0x021C46F8 + str r5, [sp, #0x18] + bl sub_0200E5C8 + ldr r0, _0200E2AC ; =0x021C47F4 + mov r1, #0x1 + strh r1, [r0, #0xc] + ldr r0, _0200E2C4 ; =0x021C46B8 + ldr r1, _0200E2BC ; =0x021C46C8 + bl sub_0200E528 + ldr r0, _0200E2C8 ; =0x021C46BC + ldr r1, _0200E2C0 ; =0x021C46F8 + bl sub_0200E528 + ldr r0, _0200E2CC ; =0x021C46B4 + ldr r0, [r0, #0xc] + cmp r0, #0x0 + beq _0200E28E + ldr r0, _0200E2B0 ; =0x021C46B4 + add r0, #0x14 + bl sub_0200E7A8 + ldr r1, _0200E2D0 ; =0x0000014E + ldr r0, _0200E2B0 ; =0x021C46B4 + mov r2, #0x1 + strb r2, [r0, r1] +_0200E28E: + ldr r0, _0200E2B0 ; =0x021C46B4 + ldr r0, [r0, #0x10] + cmp r0, #0x0 + beq _0200E2A6 + ldr r0, _0200E2B0 ; =0x021C46B4 + add r0, #0x44 + bl sub_0200E7A8 + ldr r1, _0200E2D4 ; =0x0000014F + ldr r0, _0200E2B0 ; =0x021C46B4 + mov r2, #0x1 + strb r2, [r0, r1] +_0200E2A6: + add sp, #0x1c + pop {r4-r7, pc} + nop +_0200E2AC: .word 0x021C47F4 +_0200E2B0: .word 0x021C46B4 +_0200E2B4: .word 0x021C4728 +_0200E2B8: .word 0x021C4740 +_0200E2BC: .word 0x021C46C8 +_0200E2C0: .word 0x021C46F8 +_0200E2C4: .word 0x021C46B8 +_0200E2C8: .word 0x021C46BC +_0200E2CC: .word 0x021C46B4 +_0200E2D0: .word 0x0000014E +_0200E2D4: .word 0x0000014F + + thumb_func_start sub_0200E2D8 +sub_0200E2D8: ; 0x0200E2D8 + push {r4, lr} + ldr r0, _0200E300 ; =0x021C47F4 + ldr r4, _0200E304 ; =0x021C46B4 + ldrh r0, [r0, #0xc] + cmp r0, #0x0 + beq _0200E2FC + add r1, r4, #0x0 + add r2, r4, #0x0 + add r0, r4, #0x0 + add r1, #0x14 + add r2, #0x44 + bl sub_0200E4B8 + cmp r0, #0x1 + bne _0200E2FC + add r0, r4, #0x0 + bl sub_0200E460 +_0200E2FC: + pop {r4, pc} + nop +_0200E300: .word 0x021C47F4 +_0200E304: .word 0x021C46B4 + + thumb_func_start sub_0200E308 +sub_0200E308: ; 0x0200E308 + ldr r0, _0200E318 ; =0x021C47F4 + ldrh r0, [r0, #0xc] + cmp r0, #0x0 + bne _0200E314 + mov r0, #0x1 + bx lr +_0200E314: + mov r0, #0x0 + bx lr + .balign 4 +_0200E318: .word 0x021C47F4 + + thumb_func_start sub_0200E31C +sub_0200E31C: ; 0x0200E31C + push {r3, lr} + ldr r0, _0200E368 ; =0x021C4728 + mov r1, #0x0 + bl sub_0200E6A0 + ldr r0, _0200E368 ; =0x021C4728 + mov r1, #0x1 + bl sub_0200E6A0 + ldr r0, _0200E36C ; =0x021C46B4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0200E33A + mov r1, #0x2 + str r1, [r0, #0x20] +_0200E33A: + ldr r0, _0200E36C ; =0x021C46B4 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _0200E346 + mov r1, #0x2 + str r1, [r0, #0x50] +_0200E346: + ldr r0, _0200E370 ; =0x021C46B8 + ldr r1, _0200E374 ; =0x021C46C8 + bl sub_0200E528 + ldr r0, _0200E378 ; =0x021C46BC + ldr r1, _0200E37C ; =0x021C46F8 + bl sub_0200E528 + ldr r0, _0200E380 ; =0x021C47F4 + mov r1, #0x0 + strh r1, [r0, #0xc] + strb r1, [r0, #0xe] + strb r1, [r0, #0xf] + ldr r0, _0200E384 ; =0x021C46B4 + bl sub_0200E808 + pop {r3, pc} + .balign 4 +_0200E368: .word 0x021C4728 +_0200E36C: .word 0x021C46B4 +_0200E370: .word 0x021C46B8 +_0200E374: .word 0x021C46C8 +_0200E378: .word 0x021C46BC +_0200E37C: .word 0x021C46F8 +_0200E380: .word 0x021C47F4 +_0200E384: .word 0x021C46B4 + + thumb_func_start sub_0200E388 +sub_0200E388: ; 0x0200E388 + ldr r3, _0200E390 ; =sub_02011480 + add r1, r0, #0x0 + mov r0, #0x0 + bx r3 + .balign 4 +_0200E390: .word sub_02011480 + 1 + + thumb_func_start sub_0200E394 +sub_0200E394: ; 0x0200E394 + ldr r3, _0200E39C ; =sub_0200E440 + mov r1, #0x0 + bx r3 + nop +_0200E39C: .word sub_0200E440 + 1 + + thumb_func_start sub_0200E3A0 +sub_0200E3A0: ; 0x0200E3A0 + ldr r2, _0200E3B4 ; =0x00007FFF + cmp r1, r2 + bne _0200E3AA + mov r1, #0x10 + b _0200E3AE +_0200E3AA: + mov r1, #0xf + mvn r1, r1 +_0200E3AE: + ldr r3, _0200E3B8 ; =sub_0200E440 + bx r3 + nop +_0200E3B4: .word 0x00007FFF +_0200E3B8: .word sub_0200E440 + 1 + + thumb_func_start sub_0200E3BC +sub_0200E3BC: ; 0x0200E3BC + push {r0-r3} + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r0, sp, #0x1c + bne _0200E3D2 + mov r1, #0x0 + mov r2, #0x2 + blx sub_020C9550 + b _0200E3DA +_0200E3D2: + mov r1, #0x0 + mov r2, #0x2 + blx sub_020C94E8 +_0200E3DA: + ldr r0, _0200E41C ; =0x021C4740 + mov r1, #0x1 + add r2, r4, #0x0 + bl sub_02011634 + mov r2, #0x0 + ldr r0, _0200E41C ; =0x021C4740 + mov r1, #0x3f + add r3, r2, #0x0 + str r4, [sp, #0x0] + bl sub_02011650 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + ldr r0, _0200E41C ; =0x021C4740 + add r2, r1, #0x0 + add r3, r1, #0x0 + str r4, [sp, #0x8] + bl sub_02011698 + ldr r0, _0200E41C ; =0x021C4740 + mov r1, #0x20 + mov r2, #0x0 + add r3, r4, #0x0 + bl sub_02011678 + add sp, #0xc + pop {r3-r4} + pop {r3} + add sp, #0x10 + bx r3 + nop +_0200E41C: .word 0x021C4740 + + thumb_func_start sub_0200E420 +sub_0200E420: ; 0x0200E420 + push {r0-r3} + push {r3, lr} + add r0, sp, #0x8 + mov r1, #0x0 + mov r2, #0x2 + blx sub_020C9550 + add r0, sp, #0x8 + mov r1, #0x0 + mov r2, #0x2 + blx sub_020C94E8 + pop {r3} + pop {r3} + add sp, #0x10 + bx r3 + + thumb_func_start sub_0200E440 +sub_0200E440: ; 0x0200E440 + push {r3, lr} + cmp r0, #0x0 + bne _0200E44E + ldr r0, _0200E458 ; =0x0400006C + blx sub_020C5978 + pop {r3, pc} +_0200E44E: + ldr r0, _0200E45C ; =0x0400106C + blx sub_020C5978 + pop {r3, pc} + nop +_0200E458: .word 0x0400006C +_0200E45C: .word 0x0400106C + + thumb_func_start sub_0200E460 +sub_0200E460: ; 0x0200E460 + push {r4, lr} + mov r1, #0x53 + add r4, r0, #0x0 + mov r2, #0x0 + lsl r1, r1, #0x2 + strh r2, [r4, r1] + bl sub_0200E770 + mov r1, #0x15 + lsl r1, r1, #0x4 + strh r0, [r4, r1] + ldr r0, [r4, #0xc] + cmp r0, #0x0 + beq _0200E490 + add r0, r4, #0x0 + add r0, #0x14 + bl sub_0200E7D8 + ldr r0, [r4, #0x3c] + cmp r0, #0x0 + bne _0200E490 + ldr r0, _0200E4B4 ; =0x021C47F4 + mov r1, #0x0 + strb r1, [r0, #0xe] +_0200E490: + ldr r0, [r4, #0x10] + cmp r0, #0x0 + beq _0200E4AA + add r0, r4, #0x0 + add r0, #0x44 + bl sub_0200E7D8 + ldr r0, [r4, #0x3c] + cmp r0, #0x0 + bne _0200E4AA + ldr r0, _0200E4B4 ; =0x021C47F4 + mov r1, #0x0 + strb r1, [r0, #0xf] +_0200E4AA: + add r0, r4, #0x0 + bl sub_0200E808 + pop {r4, pc} + nop +_0200E4B4: .word 0x021C47F4 + + thumb_func_start sub_0200E4B8 +sub_0200E4B8: ; 0x0200E4B8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r4, r2, #0x0 + cmp r0, #0x0 + beq _0200E4CE + cmp r0, #0x1 + beq _0200E4E0 + cmp r0, #0x2 + beq _0200E4FA + b _0200E512 +_0200E4CE: + add r0, r5, #0x4 + bl sub_0200E528 + add r0, r5, #0x0 + add r0, #0x8 + add r1, r4, #0x0 + bl sub_0200E528 + b _0200E512 +_0200E4E0: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + beq _0200E4EE + add r0, r5, #0x4 + bl sub_0200E528 + b _0200E512 +_0200E4EE: + add r0, r5, #0x0 + add r0, #0x8 + add r1, r4, #0x0 + bl sub_0200E528 + b _0200E512 +_0200E4FA: + ldr r0, [r5, #0x8] + cmp r0, #0x0 + beq _0200E50C + add r0, r5, #0x0 + add r0, #0x8 + add r1, r4, #0x0 + bl sub_0200E528 + b _0200E512 +_0200E50C: + add r0, r5, #0x4 + bl sub_0200E528 +_0200E512: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _0200E522 + ldr r0, [r5, #0x8] + cmp r0, #0x0 + bne _0200E522 + mov r0, #0x1 + pop {r3-r5, pc} +_0200E522: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0200E528 +sub_0200E528: ; 0x0200E528 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0200E540 + add r0, r1, #0x0 + bl sub_0200E544 + cmp r0, #0x1 + bne _0200E540 + mov r0, #0x0 + str r0, [r4, #0x0] +_0200E540: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200E544 +sub_0200E544: ; 0x0200E544 + push {r3, lr} + ldr r1, [r0, #0x0] + lsl r2, r1, #0x2 + ldr r1, _0200E554 ; =0x020ECEF4 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + nop +_0200E554: .word 0x020ECEF4 + + thumb_func_start sub_0200E558 +sub_0200E558: ; 0x0200E558 + push {r3, lr} + cmp r0, #0x4 + bhi _0200E5B8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r6, r2, #0 + lsl r4, r4, #0 + lsl r2, r6, #0 + lsl r0, r0, #0x1 + mov r2, #0x1 + add r0, r1, #0x0 + mov r1, #0x0 + add r3, r2, #0x0 + bl sub_0200E5BC + pop {r3, pc} +_0200E582: + .byte 0x08, 0x1C, 0x01, 0x21, 0x0A, 0x1C, 0x0B, 0x1C, 0x00, 0xF0, 0x17, 0xF8, 0x08, 0xBD + .byte 0x01, 0x22, 0x08, 0x1C, 0x02, 0x21, 0x13, 0x1C, 0x00, 0xF0, 0x10, 0xF8, 0x08, 0xBD, 0x08, 0x1C + .byte 0x01, 0x21, 0x0A, 0x1C, 0x00, 0x23, 0x00, 0xF0, 0x09, 0xF8, 0x08, 0xBD, 0x08, 0x1C, 0x02, 0x21 + .byte 0x00, 0x22, 0x01, 0x23, 0x00, 0xF0, 0x02, 0xF8 +_0200E5B8: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0200E5BC +sub_0200E5BC: ; 0x0200E5BC + str r1, [r0, #0x0] + str r2, [r0, #0x4] + str r3, [r0, #0x8] + str r2, [r0, #0xc] + str r3, [r0, #0x10] + bx lr + + thumb_func_start sub_0200E5C8 +sub_0200E5C8: ; 0x0200E5C8 + str r1, [r0, #0x0] + str r2, [r0, #0x4] + ldr r1, [sp, #0x0] + str r3, [r0, #0x8] + str r1, [r0, #0xc] + ldr r1, [sp, #0x4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x8] + str r1, [r0, #0x10] + ldr r1, [sp, #0xc] + str r1, [r0, #0x18] + ldr r1, [sp, #0x10] + str r1, [r0, #0x1c] + ldr r1, [sp, #0x14] + str r1, [r0, #0x20] + ldr r1, _0200E5F0 ; =0xFFFFFFF0 + add r1, sp + ldrh r1, [r1, #0x28] + strh r1, [r0, #0x24] + bx lr + .balign 4 +_0200E5F0: .word 0xFFFFFFF0 + + thumb_func_start sub_0200E5F4 +sub_0200E5F4: ; 0x0200E5F4 + mov r3, #0x0 + ldr r1, _0200E60C ; =sub_0200E758 + add r2, r3, #0x0 +_0200E5FA: + str r2, [r0, #0x0] + str r1, [r0, #0x8] + str r2, [r0, #0x10] + add r3, r3, #0x1 + add r0, r0, #0x4 + cmp r3, #0x2 + blt _0200E5FA + bx lr + nop +_0200E60C: .word sub_0200E758 + 1 + + thumb_func_start sub_0200E610 +sub_0200E610: ; 0x0200E610 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_0200E616: + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x8] + blx r1 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x2 + blt _0200E616 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0200E628 +sub_0200E628: ; 0x0200E628 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r5, #0x0 + str r0, [sp, #0x8] + add r0, #0x10 + lsl r4, r3, #0x2 + str r0, [sp, #0x8] + ldr r0, [r0, r4] + add r7, r2, #0x0 + str r1, [sp, #0x0] + cmp r0, #0x0 + beq _0200E64A + bl sub_02020C2C +_0200E64A: + add r6, r5, #0x0 + add r6, #0x8 + ldr r0, [r6, r4] + cmp r0, #0x0 + bne _0200E658 + bl sub_02020C2C +_0200E658: + ldr r0, [r5, #0x10] + cmp r0, #0x0 + bne _0200E672 + ldr r0, [r5, #0x14] + cmp r0, #0x0 + bne _0200E672 + ldr r0, _0200E698 ; =sub_0200E610 + add r1, r5, #0x0 + bl sub_02015F34 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4] +_0200E672: + ldr r0, [sp, #0x4] + cmp r0, #0x1 + beq _0200E67C + bl sub_02020C2C +_0200E67C: + ldr r0, [sp, #0x0] + cmp r7, #0x0 + str r0, [r5, r4] + beq _0200E688 + str r7, [r6, r4] + b _0200E68C +_0200E688: + ldr r0, _0200E69C ; =sub_0200E758 + str r0, [r6, r4] +_0200E68C: + ldr r0, [sp, #0x8] + mov r1, #0x1 + str r1, [r0, r4] + add sp, #0xc + pop {r4-r7, pc} + nop +_0200E698: .word sub_0200E610 + 1 +_0200E69C: .word sub_0200E758 + 1 + + thumb_func_start sub_0200E6A0 +sub_0200E6A0: ; 0x0200E6A0 + push {r3-r5, lr} + lsl r4, r1, #0x2 + add r5, r0, #0x0 + mov r1, #0x0 + add r0, r5, r4 + str r1, [r0, #0x10] + ldr r0, [r5, #0x10] + cmp r0, #0x0 + bne _0200E6BC + ldr r0, [r5, #0x14] + cmp r0, #0x0 + bne _0200E6BC + bl sub_02015F1C +_0200E6BC: + ldr r1, _0200E6C8 ; =sub_0200E758 + add r0, r5, r4 + str r1, [r0, #0x8] + mov r0, #0x0 + str r0, [r5, r4] + pop {r3-r5, pc} + .balign 4 +_0200E6C8: .word sub_0200E758 + 1 + + thumb_func_start sub_0200E6CC +sub_0200E6CC: ; 0x0200E6CC + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r0, [sp, #0x18] + mov r1, #0x10 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_020169D8 + add r1, r0, #0x0 + str r5, [r1, #0x0] + str r4, [r1, #0x4] + mov r2, #0x1 + str r6, [r1, #0x8] + ldr r0, _0200E6F4 ; =sub_0200E71C + lsl r2, r2, #0xa + str r7, [r1, #0xc] + bl sub_0200CA98 + pop {r3-r7, pc} + .balign 4 +_0200E6F4: .word sub_0200E71C + 1 + + thumb_func_start sub_0200E6F8 +sub_0200E6F8: ; 0x0200E6F8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x8 + bl sub_020169D8 + add r1, r0, #0x0 + mov r2, #0x1 + str r5, [r1, #0x0] + ldr r0, _0200E718 ; =sub_0200E73C + lsl r2, r2, #0xa + str r4, [r1, #0x4] + bl sub_0200CA98 + pop {r3-r5, pc} + .balign 4 +_0200E718: .word sub_0200E73C + 1 + + thumb_func_start sub_0200E71C +sub_0200E71C: ; 0x0200E71C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x8] + ldr r3, [r4, #0xc] + bl sub_0200E628 + add r0, r5, #0x0 + bl sub_0200CAB4 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r3-r5, pc} + + thumb_func_start sub_0200E73C +sub_0200E73C: ; 0x0200E73C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + bl sub_0200E6A0 + add r0, r5, #0x0 + bl sub_0200CAB4 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r3-r5, pc} + + thumb_func_start sub_0200E758 +sub_0200E758: ; 0x0200E758 + bx lr + .balign 4 + + thumb_func_start sub_0200E75C +sub_0200E75C: ; 0x0200E75C + ldr r2, _0200E76C ; =0x0000FFFF + cmp r1, r2 + bne _0200E768 + mov r1, #0x15 + lsl r1, r1, #0x4 + ldrh r1, [r0, r1] +_0200E768: + add r0, r1, #0x0 + bx lr + .balign 4 +_0200E76C: .word 0x0000FFFF + + thumb_func_start sub_0200E770 +sub_0200E770: ; 0x0200E770 + ldr r1, [r0, #0xc] + cmp r1, #0x1 + bne _0200E77C + add r2, r0, #0x0 + add r2, #0x14 + b _0200E780 +_0200E77C: + add r2, r0, #0x0 + add r2, #0x44 +_0200E780: + ldr r1, [r2, #0x28] + cmp r1, #0x1 + bne _0200E78A + ldrh r0, [r2, #0x24] + bx lr +_0200E78A: + mov r1, #0x15 + lsl r1, r1, #0x4 + ldrh r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start sub_0200E794 +sub_0200E794: ; 0x0200E794 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r1, #0x10] + mov r1, #0x0 + bl sub_0200E440 + add r0, r4, #0x0 + bl sub_0200CAB4 + pop {r4, pc} + + thumb_func_start sub_0200E7A8 +sub_0200E7A8: ; 0x0200E7A8 + push {r3, lr} + add r1, r0, #0x0 + ldr r0, [r1, #0x28] + cmp r0, #0x0 + bne _0200E7CE + ldrh r2, [r1, #0x24] + ldr r0, _0200E7D0 ; =0x00007FFF + cmp r2, r0 + beq _0200E7BE + cmp r2, #0x0 + bne _0200E7CE +_0200E7BE: + ldr r0, [r1, #0x2c] + cmp r0, #0x0 + bne _0200E7CE + mov r2, #0x1 + ldr r0, _0200E7D4 ; =sub_0200E794 + lsl r2, r2, #0xa + bl sub_0200CA98 +_0200E7CE: + pop {r3, pc} + .balign 4 +_0200E7D0: .word 0x00007FFF +_0200E7D4: .word sub_0200E794 + 1 + + thumb_func_start sub_0200E7D8 +sub_0200E7D8: ; 0x0200E7D8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x28] + cmp r0, #0x1 + bne _0200E800 + ldrh r1, [r4, #0x24] + ldr r0, _0200E804 ; =0x00007FFF + cmp r1, r0 + beq _0200E7EE + cmp r1, #0x0 + bne _0200E800 +_0200E7EE: + ldr r0, [r4, #0x2c] + cmp r0, #0x0 + bne _0200E800 + ldr r0, [r4, #0x10] + bl sub_0200E3A0 + ldr r0, [r4, #0x10] + bl sub_0200E388 +_0200E800: + pop {r4, pc} + nop +_0200E804: .word 0x00007FFF + + thumb_func_start sub_0200E808 +sub_0200E808: ; 0x0200E808 + push {r4, lr} + add r4, r0, #0x0 + add r2, r4, #0x0 + mov r1, #0x14 + mov r0, #0x0 +_0200E812: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0200E812 + add r0, r4, #0x0 + add r0, #0x14 + mov r1, #0x0 + mov r2, #0x30 + blx sub_020DF4A4 + add r0, r4, #0x0 + add r0, #0x44 + mov r1, #0x0 + mov r2, #0x30 + blx sub_020DF4A4 + add r2, r4, #0x0 + add r2, #0x74 + mov r1, #0x18 + mov r0, #0x0 +_0200E83A: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0200E83A + add r4, #0x8c + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0xc0 + blx sub_020DF4A4 + pop {r4, pc} + + thumb_func_start sub_0200E850 +sub_0200E850: ; 0x0200E850 + push {r3, lr} + ldr r1, [r0, #0xc] + cmp r1, #0x0 + bne _0200E866 + mov r1, #0x1 + str r1, [r0, #0x28] + str r1, [r0, #0x2c] + bl sub_0200F20C + mov r0, #0x0 + pop {r3, pc} +_0200E866: + bl sub_0200F2AC + pop {r3, pc} + + thumb_func_start sub_0200E86C +sub_0200E86C: ; 0x0200E86C + push {r3, lr} + ldr r1, [r0, #0xc] + cmp r1, #0x0 + bne _0200E884 + mov r1, #0x0 + str r1, [r0, #0x28] + mov r2, #0x1 + str r2, [r0, #0x2c] + bl sub_0200F20C + mov r0, #0x0 + pop {r3, pc} +_0200E884: + bl sub_0200F2AC + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0200E88C +sub_0200E88C: ; 0x0200E88C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200E8B4 + ldr r1, _0200E8BC ; =0x020ECF9F + ldr r0, _0200E8C0 ; =0x02105AF8 + str r1, [r0, #0x30] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200E8C4 ; =0x02105B28 + add r0, r4, #0x0 + bl sub_02010F2C + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200E8B4: + bl sub_02010F70 + pop {r4, pc} + nop +_0200E8BC: .word 0x020ECF9F +_0200E8C0: .word 0x02105AF8 +_0200E8C4: .word 0x02105B28 + + thumb_func_start sub_0200E8C8 +sub_0200E8C8: ; 0x0200E8C8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200E8EE + ldr r1, _0200E8F4 ; =0x020ECF9C + ldr r0, _0200E8F8 ; =0x02105AF8 + str r1, [r0, #0x40] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200E8FC ; =0x02105B38 + add r0, r4, #0x0 + bl sub_02010F2C + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200E8EE: + bl sub_02010F70 + pop {r4, pc} + .balign 4 +_0200E8F4: .word 0x020ECF9C +_0200E8F8: .word 0x02105AF8 +_0200E8FC: .word 0x02105B38 + + thumb_func_start sub_0200E900 +sub_0200E900: ; 0x0200E900 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200E928 + ldr r1, _0200E930 ; =0x020ECFA5 + ldr r0, _0200E934 ; =0x02105AF8 + str r1, [r0, #0x48] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200E938 ; =0x02105B40 + add r0, r4, #0x0 + bl sub_02010F2C + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200E928: + bl sub_02010F70 + pop {r4, pc} + nop +_0200E930: .word 0x020ECFA5 +_0200E934: .word 0x02105AF8 +_0200E938: .word 0x02105B40 + + thumb_func_start sub_0200E93C +sub_0200E93C: ; 0x0200E93C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200E962 + ldr r1, _0200E968 ; =0x020ECFA2 + ldr r0, _0200E96C ; =0x02105AF8 + str r1, [r0, #0x38] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200E970 ; =0x02105B30 + add r0, r4, #0x0 + bl sub_02010F2C + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200E962: + bl sub_02010F70 + pop {r4, pc} + .balign 4 +_0200E968: .word 0x020ECFA2 +_0200E96C: .word 0x02105AF8 +_0200E970: .word 0x02105B30 + + thumb_func_start sub_0200E974 +sub_0200E974: ; 0x0200E974 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200E996 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200E99C ; =0x020ED0E8 + add r0, r4, #0x0 + bl sub_0200FCC8 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200E996: + bl sub_0200FD1C + pop {r4, pc} + .balign 4 +_0200E99C: .word 0x020ED0E8 + + thumb_func_start sub_0200E9A0 +sub_0200E9A0: ; 0x0200E9A0 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200E9C0 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200E9C8 ; =0x020ED154 + add r0, r4, #0x0 + bl sub_0200FCC8 + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200E9C0: + bl sub_0200FD1C + pop {r4, pc} + nop +_0200E9C8: .word 0x020ED154 + + thumb_func_start sub_0200E9CC +sub_0200E9CC: ; 0x0200E9CC + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200E9F4 + ldr r1, _0200E9FC ; =0x020ECFC0 + ldr r0, _0200EA00 ; =0x02105AF8 + str r1, [r0, #0x20] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EA04 ; =0x02105B18 + add r0, r4, #0x0 + bl sub_02010F2C + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200E9F4: + bl sub_02010F70 + pop {r4, pc} + nop +_0200E9FC: .word 0x020ECFC0 +_0200EA00: .word 0x02105AF8 +_0200EA04: .word 0x02105B18 + + thumb_func_start sub_0200EA08 +sub_0200EA08: ; 0x0200EA08 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EA2E + ldr r1, _0200EA34 ; =0x020ECFC6 + ldr r0, _0200EA38 ; =0x02105AF8 + str r1, [r0, #0x28] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EA3C ; =0x02105B20 + add r0, r4, #0x0 + bl sub_02010F2C + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EA2E: + bl sub_02010F70 + pop {r4, pc} + .balign 4 +_0200EA34: .word 0x020ECFC6 +_0200EA38: .word 0x02105AF8 +_0200EA3C: .word 0x02105B20 + + thumb_func_start sub_0200EA40 +sub_0200EA40: ; 0x0200EA40 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EA68 + ldr r1, _0200EA70 ; =0x020ECFA8 + ldr r0, _0200EA74 ; =0x02105AF8 + str r1, [r0, #0x10] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EA78 ; =0x02105B08 + add r0, r4, #0x0 + bl sub_02010F2C + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EA68: + bl sub_02010F70 + pop {r4, pc} + nop +_0200EA70: .word 0x020ECFA8 +_0200EA74: .word 0x02105AF8 +_0200EA78: .word 0x02105B08 + + thumb_func_start sub_0200EA7C +sub_0200EA7C: ; 0x0200EA7C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EAA2 + ldr r1, _0200EAA8 ; =0x020ECFB4 + ldr r0, _0200EAAC ; =0x02105AF8 + str r1, [r0, #0x18] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EAB0 ; =0x02105B10 + add r0, r4, #0x0 + bl sub_02010F2C + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EAA2: + bl sub_02010F70 + pop {r4, pc} + .balign 4 +_0200EAA8: .word 0x020ECFB4 +_0200EAAC: .word 0x02105AF8 +_0200EAB0: .word 0x02105B10 + + thumb_func_start sub_0200EAB4 +sub_0200EAB4: ; 0x0200EAB4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EAD6 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EADC ; =0x020ED1C0 + add r0, r4, #0x0 + bl sub_0200FCC8 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EAD6: + bl sub_0200FD1C + pop {r4, pc} + .balign 4 +_0200EADC: .word 0x020ED1C0 + + thumb_func_start sub_0200EAE0 +sub_0200EAE0: ; 0x0200EAE0 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EB00 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EB08 ; =0x020ED1E4 + add r0, r4, #0x0 + bl sub_0200FCC8 + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EB00: + bl sub_0200FD1C + pop {r4, pc} + nop +_0200EB08: .word 0x020ED1E4 + + thumb_func_start sub_0200EB0C +sub_0200EB0C: ; 0x0200EB0C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EB30 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EB38 ; =0x020ED208 + ldr r2, _0200EB3C ; =0x020ED22C + add r0, r4, #0x0 + bl sub_0200FD6C + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EB30: + bl sub_0200FDC4 + pop {r4, pc} + nop +_0200EB38: .word 0x020ED208 +_0200EB3C: .word 0x020ED22C + + thumb_func_start sub_0200EB40 +sub_0200EB40: ; 0x0200EB40 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EB62 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EB68 ; =0x020ED250 + ldr r2, _0200EB6C ; =0x020ED274 + add r0, r4, #0x0 + bl sub_0200FD6C + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EB62: + bl sub_0200FDC4 + pop {r4, pc} + .balign 4 +_0200EB68: .word 0x020ED250 +_0200EB6C: .word 0x020ED274 + + thumb_func_start sub_0200EB70 +sub_0200EB70: ; 0x0200EB70 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EB92 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EB98 ; =0x020ED090 + add r0, r4, #0x0 + bl sub_0200FF18 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EB92: + bl sub_0200FF50 + pop {r4, pc} + .balign 4 +_0200EB98: .word 0x020ED090 + + thumb_func_start sub_0200EB9C +sub_0200EB9C: ; 0x0200EB9C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EBBC + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EBC4 ; =0x020ED040 + add r0, r4, #0x0 + bl sub_0200FF18 + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EBBC: + bl sub_0200FF50 + pop {r4, pc} + nop +_0200EBC4: .word 0x020ED040 + + thumb_func_start sub_0200EBC8 +sub_0200EBC8: ; 0x0200EBC8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EBEA + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EBF0 ; =0x020ED050 + add r0, r4, #0x0 + bl sub_0200FF18 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EBEA: + bl sub_0200FF50 + pop {r4, pc} + .balign 4 +_0200EBF0: .word 0x020ED050 + + thumb_func_start sub_0200EBF4 +sub_0200EBF4: ; 0x0200EBF4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EC14 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EC1C ; =0x020ED060 + add r0, r4, #0x0 + bl sub_0200FF18 + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EC14: + bl sub_0200FF50 + pop {r4, pc} + nop +_0200EC1C: .word 0x020ED060 + + thumb_func_start sub_0200EC20 +sub_0200EC20: ; 0x0200EC20 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EC42 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EC48 ; =0x020ECFE0 + add r0, r4, #0x0 + bl sub_020101EC + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EC42: + bl sub_02010224 + pop {r4, pc} + .balign 4 +_0200EC48: .word 0x020ECFE0 + + thumb_func_start sub_0200EC4C +sub_0200EC4C: ; 0x0200EC4C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EC6C + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EC74 ; =0x020ECFEC + add r0, r4, #0x0 + bl sub_020101EC + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EC6C: + bl sub_02010224 + pop {r4, pc} + nop +_0200EC74: .word 0x020ECFEC + + thumb_func_start sub_0200EC78 +sub_0200EC78: ; 0x0200EC78 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EC9A + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200ECA0 ; =0x020ED0A0 + add r0, r4, #0x0 + bl sub_0200FCC8 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EC9A: + bl sub_0200FD1C + pop {r4, pc} + .balign 4 +_0200ECA0: .word 0x020ED0A0 + + thumb_func_start sub_0200ECA4 +sub_0200ECA4: ; 0x0200ECA4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200ECC4 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200ECCC ; =0x020ED0C4 + add r0, r4, #0x0 + bl sub_0200FCC8 + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200ECC4: + bl sub_0200FD1C + pop {r4, pc} + nop +_0200ECCC: .word 0x020ED0C4 + + thumb_func_start sub_0200ECD0 +sub_0200ECD0: ; 0x0200ECD0 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200ECF2 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200ECF8 ; =0x020ED10C + add r0, r4, #0x0 + bl sub_0200FCC8 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200ECF2: + bl sub_0200FD1C + pop {r4, pc} + .balign 4 +_0200ECF8: .word 0x020ED10C + + thumb_func_start sub_0200ECFC +sub_0200ECFC: ; 0x0200ECFC + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200ED1C + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200ED24 ; =0x020ED178 + add r0, r4, #0x0 + bl sub_0200FCC8 + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200ED1C: + bl sub_0200FD1C + pop {r4, pc} + nop +_0200ED24: .word 0x020ED178 + + thumb_func_start sub_0200ED28 +sub_0200ED28: ; 0x0200ED28 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200ED4A + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200ED50 ; =0x020ED004 + add r0, r4, #0x0 + bl sub_020103F0 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200ED4A: + bl sub_02010428 + pop {r4, pc} + .balign 4 +_0200ED50: .word 0x020ED004 + + thumb_func_start sub_0200ED54 +sub_0200ED54: ; 0x0200ED54 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200ED74 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200ED7C ; =0x020ED010 + add r0, r4, #0x0 + bl sub_020103F0 + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200ED74: + bl sub_02010428 + pop {r4, pc} + nop +_0200ED7C: .word 0x020ED010 + + thumb_func_start sub_0200ED80 +sub_0200ED80: ; 0x0200ED80 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EDC4 + ldr r0, _0200EDCC ; =0x020ED298 + mov r1, #0x4 + str r0, [sp, #0x0] + ldr r0, _0200EDD0 ; =0x020ED2D8 + str r0, [sp, #0x4] + add r0, sp, #0x0 + strb r1, [r0, #0x8] + mov r1, #0x0 + strb r1, [r0, #0x9] + mov r1, #0x3f + strb r1, [r0, #0xa] + mov r1, #0x20 + strb r1, [r0, #0xb] + mov r1, #0x1 + strb r1, [r0, #0xc] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02010688 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + add sp, #0x10 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EDC4: + bl sub_020106C0 + add sp, #0x10 + pop {r4, pc} + .balign 4 +_0200EDCC: .word 0x020ED298 +_0200EDD0: .word 0x020ED2D8 + + thumb_func_start sub_0200EDD4 +sub_0200EDD4: ; 0x0200EDD4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EE14 + ldr r0, _0200EE1C ; =0x020ED318 + mov r1, #0x4 + str r0, [sp, #0x0] + ldr r0, _0200EE20 ; =0x020ED358 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x0 + strb r1, [r0, #0x8] + strb r2, [r0, #0x9] + mov r1, #0x3f + strb r1, [r0, #0xa] + mov r1, #0x20 + strb r1, [r0, #0xb] + strb r2, [r0, #0xc] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02010688 + mov r0, #0x0 + str r0, [r4, #0x28] + add sp, #0x10 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EE14: + bl sub_020106C0 + add sp, #0x10 + pop {r4, pc} + .balign 4 +_0200EE1C: .word 0x020ED318 +_0200EE20: .word 0x020ED358 + + thumb_func_start sub_0200EE24 +sub_0200EE24: ; 0x0200EE24 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EE4C + ldr r1, _0200EE54 ; =0x020ECFD5 + ldr r0, _0200EE58 ; =0x02105AF8 + str r1, [r0, #0x0] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EE5C ; =0x02105AF8 + add r0, r4, #0x0 + bl sub_02010F2C + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EE4C: + bl sub_02010F70 + pop {r4, pc} + nop +_0200EE54: .word 0x020ECFD5 +_0200EE58: .word 0x02105AF8 +_0200EE5C: .word 0x02105AF8 + + thumb_func_start sub_0200EE60 +sub_0200EE60: ; 0x0200EE60 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EE86 + ldr r1, _0200EE8C ; =0x020ECFCC + ldr r0, _0200EE90 ; =0x02105AF8 + str r1, [r0, #0x8] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EE94 ; =0x02105B00 + add r0, r4, #0x0 + bl sub_02010F2C + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EE86: + bl sub_02010F70 + pop {r4, pc} + .balign 4 +_0200EE8C: .word 0x020ECFCC +_0200EE90: .word 0x02105AF8 +_0200EE94: .word 0x02105B00 + + thumb_func_start sub_0200EE98 +sub_0200EE98: ; 0x0200EE98 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EECA + ldr r3, _0200EED4 ; =0x020ECFF8 + add r2, sp, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02010948 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + add sp, #0xc + str r0, [r4, #0x2c] + pop {r3-r4, pc} +_0200EECA: + bl sub_02010988 + add sp, #0xc + pop {r3-r4, pc} + nop +_0200EED4: .word 0x020ECFF8 + + thumb_func_start sub_0200EED8 +sub_0200EED8: ; 0x0200EED8 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EF08 + ldr r3, _0200EF10 ; =0x020ED034 + add r2, sp, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02010948 + mov r0, #0x0 + str r0, [r4, #0x28] + add sp, #0xc + str r0, [r4, #0x2c] + pop {r3-r4, pc} +_0200EF08: + bl sub_02010988 + add sp, #0xc + pop {r3-r4, pc} + .balign 4 +_0200EF10: .word 0x020ED034 + + thumb_func_start sub_0200EF14 +sub_0200EF14: ; 0x0200EF14 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EF46 + ldr r3, _0200EF50 ; =0x020ED01C + add r2, sp, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02010C7C + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + add sp, #0xc + str r0, [r4, #0x2c] + pop {r3-r4, pc} +_0200EF46: + bl sub_02010CBC + add sp, #0xc + pop {r3-r4, pc} + nop +_0200EF50: .word 0x020ED01C + + thumb_func_start sub_0200EF54 +sub_0200EF54: ; 0x0200EF54 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EF84 + ldr r3, _0200EF8C ; =0x020ED028 + add r2, sp, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02010C7C + mov r0, #0x0 + str r0, [r4, #0x28] + add sp, #0xc + str r0, [r4, #0x2c] + pop {r3-r4, pc} +_0200EF84: + bl sub_02010CBC + add sp, #0xc + pop {r3-r4, pc} + .balign 4 +_0200EF8C: .word 0x020ED028 + + thumb_func_start sub_0200EF90 +sub_0200EF90: ; 0x0200EF90 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EFB2 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EFB8 ; =0x020ED080 + add r0, r4, #0x0 + bl sub_0200FF18 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EFB2: + bl sub_0200FF50 + pop {r4, pc} + .balign 4 +_0200EFB8: .word 0x020ED080 + + thumb_func_start sub_0200EFBC +sub_0200EFBC: ; 0x0200EFBC + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200EFDC + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200EFE4 ; =0x020ED070 + add r0, r4, #0x0 + bl sub_0200FF18 + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200EFDC: + bl sub_0200FF50 + pop {r4, pc} + nop +_0200EFE4: .word 0x020ED070 + + thumb_func_start sub_0200EFE8 +sub_0200EFE8: ; 0x0200EFE8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200F00A + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200F010 ; =0x020ED130 + add r0, r4, #0x0 + bl sub_0200FCC8 + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200F00A: + bl sub_0200FD1C + pop {r4, pc} + .balign 4 +_0200F010: .word 0x020ED130 + + thumb_func_start sub_0200F014 +sub_0200F014: ; 0x0200F014 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200F034 + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200F03C ; =0x020ED19C + add r0, r4, #0x0 + bl sub_0200FCC8 + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200F034: + bl sub_0200FD1C + pop {r4, pc} + nop +_0200F03C: .word 0x020ED19C + + thumb_func_start sub_0200F040 +sub_0200F040: ; 0x0200F040 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200F068 + ldr r1, _0200F070 ; =0x020ECFAE + ldr r0, _0200F074 ; =0x02105AF8 + str r1, [r0, #0x74] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200F078 ; =0x02105B48 + add r0, r4, #0x0 + bl sub_020111AC + mov r0, #0x1 + str r0, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + pop {r4, pc} +_0200F068: + bl sub_02011214 + pop {r4, pc} + nop +_0200F070: .word 0x020ECFAE +_0200F074: .word 0x02105AF8 +_0200F078: .word 0x02105B48 + + thumb_func_start sub_0200F07C +sub_0200F07C: ; 0x0200F07C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + bne _0200F0A2 + ldr r1, _0200F0A8 ; =0x020ECFBA + ldr r0, _0200F0AC ; =0x02105B78 + str r1, [r0, #0x24] + ldrh r0, [r4, #0x24] + bl sub_0200E420 + ldr r1, _0200F0B0 ; =0x02105B78 + add r0, r4, #0x0 + bl sub_020111AC + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + pop {r4, pc} +_0200F0A2: + bl sub_02011214 + pop {r4, pc} + .balign 4 +_0200F0A8: .word 0x020ECFBA +_0200F0AC: .word 0x02105B78 +_0200F0B0: .word 0x02105B78 + + thumb_func_start sub_0200F0B4 +sub_0200F0B4: ; 0x0200F0B4 + asr r0, r0, #0x4 + lsl r1, r0, #0x1 + lsl r0, r1, #0x1 + ldr r2, _0200F0C8 ; =0x020FFA38 + add r1, r1, #0x1 + lsl r1, r1, #0x1 + ldr r3, _0200F0CC ; =sub_020C50B8 + ldrsh r0, [r2, r0] + ldrsh r1, [r2, r1] + bx r3 + .balign 4 +_0200F0C8: .word 0x020FFA38 +_0200F0CC: .word sub_020C50B8 + + thumb_func_start sub_0200F0D0 +sub_0200F0D0: ; 0x0200F0D0 + push {r4, lr} + add r4, r1, #0x0 + bl sub_0200F0B4 + lsl r2, r4, #0xc + asr r1, r0, #0x1f + asr r3, r2, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + asr r0, r1, #0xc + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200F0F8 +sub_0200F0F8: ; 0x0200F0F8 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + add r7, r2, #0x0 + add r6, r3, #0x0 + bl sub_0200F0B4 + cmp r6, r7 + bge _0200F142 + lsl r1, r6, #0x2 + str r0, [sp, #0x0] + asr r0, r0, #0x1f + lsl r4, r6, #0xc + add r5, r5, r1 + str r0, [sp, #0x4] +_0200F116: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + asr r3, r4, #0x1f + add r2, r4, #0x0 + blx sub_020EBC30 + mov r2, #0x2 + lsl r2, r2, #0xa + add r0, r0, r2 + ldr r2, _0200F148 ; =0x00000000 + adc r1, r2 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + asr r0, r0, #0xc + stmia r5!, {r0} + mov r0, #0x1 + lsl r0, r0, #0xc + add r6, r6, #0x1 + add r4, r4, r0 + cmp r6, r7 + blt _0200F116 +_0200F142: + add sp, #0x8 + pop {r3-r7, pc} + nop +_0200F148: .word 0x00000000 + + thumb_func_start sub_0200F14C +sub_0200F14C: ; 0x0200F14C + push {r4, lr} + add r4, r1, #0x0 + bl sub_0200F0B4 + add r1, r0, #0x0 + lsr r0, r4, #0x1f + add r0, r4, r0 + asr r0, r0, #0x1 + lsl r0, r0, #0xc + blx sub_020C50B8 + pop {r4, pc} + + thumb_func_start sub_0200F164 +sub_0200F164: ; 0x0200F164 + ldr r3, _0200F170 ; =sub_020EBC80 + sub r0, r1, r0 + lsl r0, r0, #0x7 + add r1, r2, #0x0 + bx r3 + nop +_0200F170: .word sub_020EBC80 + + thumb_func_start sub_0200F174 +sub_0200F174: ; 0x0200F174 + add r0, r0, r1 + bpl _0200F17A + mov r0, #0x0 +_0200F17A: + cmp r0, #0xff + ble _0200F180 + mov r0, #0xff +_0200F180: + bx lr + .balign 4 + + thumb_func_start sub_0200F184 +sub_0200F184: ; 0x0200F184 + ldr r3, [r0, #0x0] + ldr r2, [r1, #0x0] + add r2, r3, r2 + str r2, [r0, #0x0] + ldr r3, [r0, #0x4] + ldr r2, [r1, #0x4] + add r2, r3, r2 + str r2, [r0, #0x4] + ldr r3, [r0, #0x8] + ldr r2, [r1, #0x8] + add r2, r3, r2 + str r2, [r0, #0x8] + ldr r2, [r0, #0xc] + ldr r1, [r1, #0xc] + add r1, r2, r1 + str r1, [r0, #0xc] + bx lr + .balign 4 + + thumb_func_start sub_0200F1A8 +sub_0200F1A8: ; 0x0200F1A8 + push {r3-r7, lr} + add r7, r1, #0x0 + ldr r1, [sp, #0x1c] + add r5, r3, #0x0 + str r1, [sp, #0x1c] + ldr r1, [r5, #0x0] + ldr r4, [sp, #0x18] + lsl r1, r1, #0x7 + str r1, [r0, #0x0] + ldr r1, [r5, #0x4] + add r6, r2, #0x0 + lsl r1, r1, #0x7 + str r1, [r0, #0x4] + ldr r1, [r5, #0x8] + add r2, r4, #0x0 + lsl r1, r1, #0x7 + str r1, [r0, #0x8] + ldr r1, [r5, #0xc] + lsl r1, r1, #0x7 + str r1, [r0, #0xc] + ldmia r2!, {r0-r1} + stmia r7!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r7!, {r0-r1} + ldr r0, [r5, #0x0] + ldr r1, [r4, #0x0] + ldr r2, [sp, #0x1c] + bl sub_0200F164 + str r0, [r6, #0x0] + ldr r0, [r5, #0x4] + ldr r1, [r4, #0x4] + ldr r2, [sp, #0x1c] + bl sub_0200F164 + str r0, [r6, #0x4] + ldr r0, [r5, #0x8] + ldr r1, [r4, #0x8] + ldr r2, [sp, #0x1c] + bl sub_0200F164 + str r0, [r6, #0x8] + ldr r0, [r5, #0xc] + ldr r1, [r4, #0xc] + ldr r2, [sp, #0x1c] + bl sub_0200F164 + str r0, [r6, #0xc] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200F20C +sub_0200F20C: ; 0x0200F20C + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + add r6, r1, #0x0 + mov r1, #0x1c + bl sub_02016998 + str r0, [r5, #0x14] + mov r2, #0x1c + mov r1, #0x0 +_0200F220: + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _0200F220 + ldr r4, [r5, #0x14] + cmp r6, #0x0 + ldrh r1, [r5, #0x24] + ldr r0, _0200F2A8 ; =0x00007FFF + bne _0200F254 + cmp r1, r0 + bne _0200F23C + mov r7, #0x10 + mov r6, #0x0 + b _0200F274 +_0200F23C: + cmp r1, #0x0 + bne _0200F248 + mov r7, #0xf + mvn r7, r7 + mov r6, #0x0 + b _0200F274 +_0200F248: + mov r7, #0xf + mvn r7, r7 + mov r6, #0x0 + bl sub_02020C2C + b _0200F274 +_0200F254: + cmp r1, r0 + bne _0200F25E + mov r7, #0x0 + mov r6, #0x10 + b _0200F274 +_0200F25E: + cmp r1, #0x0 + bne _0200F26A + mov r7, #0x0 + add r6, r7, #0x0 + sub r6, #0x10 + b _0200F274 +_0200F26A: + mov r7, #0x0 + add r6, r7, #0x0 + sub r6, #0x10 + bl sub_02020C2C +_0200F274: + ldr r0, [r5, #0x10] + add r1, r7, #0x0 + bl sub_0200E440 + ldr r0, [r5, #0x4] + add r1, r6, #0x0 + str r0, [r4, #0x0] + ldr r0, [r5, #0x8] + str r0, [r4, #0x4] + mov r0, #0x0 + str r0, [r4, #0x8] + lsl r0, r7, #0x7 + str r0, [r4, #0xc] + lsl r0, r6, #0x7 + str r0, [r4, #0x10] + ldr r2, [r5, #0x4] + add r0, r7, #0x0 + bl sub_0200F164 + str r0, [r4, #0x14] + ldr r0, [r5, #0x10] + str r0, [r4, #0x18] + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + pop {r3-r7, pc} + .balign 4 +_0200F2A8: .word 0x00007FFF + + thumb_func_start sub_0200F2AC +sub_0200F2AC: ; 0x0200F2AC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r1, [r5, #0xc] + mov r4, #0x0 + ldr r0, [r5, #0x14] + cmp r1, #0x1 + beq _0200F2C4 + cmp r1, #0x2 + beq _0200F2D4 + cmp r1, #0x3 + beq _0200F2E6 + b _0200F2E8 +_0200F2C4: + bl sub_0200F2EC + cmp r0, #0x1 + bne _0200F2E8 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0200F2E8 +_0200F2D4: + bl sub_02016A18 + add r0, r4, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r4, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0200F2E8 +_0200F2E6: + mov r4, #0x1 +_0200F2E8: + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0200F2EC +sub_0200F2EC: ; 0x0200F2EC + push {r4, lr} + add r1, r0, #0x0 + ldr r0, [r1, #0x8] + mov r4, #0x0 + add r2, r0, #0x1 + str r2, [r1, #0x8] + ldr r0, [r1, #0x4] + cmp r2, r0 + blt _0200F32A + str r4, [r1, #0x8] + ldr r0, [r1, #0x0] + sub r0, r0, #0x1 + cmp r0, #0x0 + ble _0200F314 + str r0, [r1, #0x0] + ldr r2, [r1, #0xc] + ldr r0, [r1, #0x14] + add r0, r2, r0 + str r0, [r1, #0xc] + b _0200F31A +_0200F314: + ldr r0, [r1, #0x10] + mov r4, #0x1 + str r0, [r1, #0xc] +_0200F31A: + ldr r2, [r1, #0xc] + ldr r0, [r1, #0x18] + asr r1, r2, #0x6 + lsr r1, r1, #0x19 + add r1, r2, r1 + asr r1, r1, #0x7 + bl sub_0200E440 +_0200F32A: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0200F330 +sub_0200F330: ; 0x0200F330 + push {r4-r6, lr} + add r4, r0, #0x0 + bne _0200F33A + bl sub_02020C2C +_0200F33A: + ldr r0, _0200F54C ; =0x04000006 + ldrh r0, [r0, #0x0] + cmp r0, #0xc0 + bge _0200F3E0 + add r5, r0, #0x1 + cmp r5, #0xbf + ble _0200F34A + sub r5, #0xc0 +_0200F34A: + ldr r0, [r4, #0x4] + cmp r0, #0x1 + bne _0200F3FA + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + ldr r3, [r4, #0x8] + lsl r5, r5, #0x1 + mov r4, #0x6 + add r1, r0, r5 + lsl r4, r4, #0x6 + ldrsh r2, [r1, r4] + lsl r4, r4, #0x2 + ldrsh r1, [r0, r5] + ldr r0, [r0, r4] + cmp r0, #0x0 + ldr r0, _0200F550 ; =0x04000004 + bne _0200F3B4 + cmp r3, #0x0 + bne _0200F394 + ldrh r4, [r0, #0x0] + mov r3, #0x2 + tst r3, r4 + beq _0200F3E0 + lsl r3, r1, #0x8 + mov r1, #0xff + lsl r1, r1, #0x8 + and r3, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + orr r1, r3 + strh r1, [r0, #0x3c] + mov r1, #0xc0 + add r0, #0x40 + strh r1, [r0, #0x0] + pop {r4-r6, pc} +_0200F394: + ldrh r3, [r0, #0x0] + mov r0, #0x2 + tst r0, r3 + beq _0200F3E0 + mov r0, #0xff + lsl r1, r1, #0x8 + lsl r0, r0, #0x8 + and r1, r0 + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + orr r0, r1 + ldr r1, _0200F554 ; =0x04001040 + strh r0, [r1, #0x0] + mov r0, #0xc0 + strh r0, [r1, #0x4] + pop {r4-r6, pc} +_0200F3B4: + cmp r3, #0x0 + bne _0200F3D8 + ldrh r4, [r0, #0x0] + mov r3, #0x2 + tst r3, r4 + beq _0200F3E0 + lsl r3, r1, #0x8 + mov r1, #0xff + lsl r1, r1, #0x8 + and r3, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + orr r1, r3 + strh r1, [r0, #0x3e] + mov r1, #0xc0 + add r0, #0x42 + strh r1, [r0, #0x0] + pop {r4-r6, pc} +_0200F3D8: + ldrh r3, [r0, #0x0] + mov r0, #0x2 + tst r0, r3 + bne _0200F3E2 +_0200F3E0: + b _0200F548 +_0200F3E2: + mov r0, #0xff + lsl r1, r1, #0x8 + lsl r0, r0, #0x8 + and r1, r0 + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + orr r0, r1 + ldr r1, _0200F558 ; =0x04001042 + strh r0, [r1, #0x0] + mov r0, #0xc0 + strh r0, [r1, #0x4] + pop {r4-r6, pc} +_0200F3FA: + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + add r3, r0, #0x0 + lsl r5, r5, #0x1 + mov r6, #0x6 + add r1, r3, r5 + lsl r6, r6, #0x6 + ldrsh r2, [r1, r6] + lsl r6, r6, #0x2 + ldrsh r1, [r3, r5] + ldr r3, [r3, r6] + ldr r0, [r4, #0x8] + cmp r3, #0x0 + bne _0200F460 + cmp r0, #0x0 + ldr r0, _0200F550 ; =0x04000004 + bne _0200F440 + ldrh r6, [r0, #0x0] + mov r3, #0x2 + tst r3, r6 + beq _0200F4A4 + lsl r3, r1, #0x8 + mov r1, #0xff + lsl r1, r1, #0x8 + and r3, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + orr r1, r3 + strh r1, [r0, #0x3c] + mov r1, #0xc0 + add r0, #0x40 + strh r1, [r0, #0x0] + b _0200F4A4 +_0200F440: + ldrh r3, [r0, #0x0] + mov r0, #0x2 + tst r0, r3 + beq _0200F4A4 + mov r0, #0xff + lsl r1, r1, #0x8 + lsl r0, r0, #0x8 + and r1, r0 + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + orr r0, r1 + ldr r1, _0200F554 ; =0x04001040 + strh r0, [r1, #0x0] + mov r0, #0xc0 + strh r0, [r1, #0x4] + b _0200F4A4 +_0200F460: + cmp r0, #0x0 + ldr r0, _0200F550 ; =0x04000004 + bne _0200F486 + ldrh r6, [r0, #0x0] + mov r3, #0x2 + tst r3, r6 + beq _0200F4A4 + lsl r3, r1, #0x8 + mov r1, #0xff + lsl r1, r1, #0x8 + and r3, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + orr r1, r3 + strh r1, [r0, #0x3e] + mov r1, #0xc0 + add r0, #0x42 + strh r1, [r0, #0x0] + b _0200F4A4 +_0200F486: + ldrh r3, [r0, #0x0] + mov r0, #0x2 + tst r0, r3 + beq _0200F4A4 + mov r0, #0xff + lsl r1, r1, #0x8 + lsl r0, r0, #0x8 + and r1, r0 + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + orr r0, r1 + ldr r1, _0200F558 ; =0x04001042 + strh r0, [r1, #0x0] + mov r0, #0xc0 + strh r0, [r1, #0x4] +_0200F4A4: + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0200F5D8 + ldr r3, [r4, #0x8] + mov r4, #0x6 + add r1, r0, r5 + lsl r4, r4, #0x6 + ldrsh r2, [r1, r4] + lsl r4, r4, #0x2 + ldrsh r1, [r0, r5] + ldr r0, [r0, r4] + cmp r0, #0x0 + ldr r0, _0200F550 ; =0x04000004 + bne _0200F506 + cmp r3, #0x0 + bne _0200F4E6 + ldrh r4, [r0, #0x0] + mov r3, #0x2 + tst r3, r4 + beq _0200F548 + lsl r3, r1, #0x8 + mov r1, #0xff + lsl r1, r1, #0x8 + and r3, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + orr r1, r3 + strh r1, [r0, #0x3c] + mov r1, #0xc0 + add r0, #0x40 + strh r1, [r0, #0x0] + pop {r4-r6, pc} +_0200F4E6: + ldrh r3, [r0, #0x0] + mov r0, #0x2 + tst r0, r3 + beq _0200F548 + mov r0, #0xff + lsl r1, r1, #0x8 + lsl r0, r0, #0x8 + and r1, r0 + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + orr r0, r1 + ldr r1, _0200F554 ; =0x04001040 + strh r0, [r1, #0x0] + mov r0, #0xc0 + strh r0, [r1, #0x4] + pop {r4-r6, pc} +_0200F506: + cmp r3, #0x0 + bne _0200F52A + ldrh r4, [r0, #0x0] + mov r3, #0x2 + tst r3, r4 + beq _0200F548 + lsl r3, r1, #0x8 + mov r1, #0xff + lsl r1, r1, #0x8 + and r3, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + orr r1, r3 + strh r1, [r0, #0x3e] + mov r1, #0xc0 + add r0, #0x42 + strh r1, [r0, #0x0] + pop {r4-r6, pc} +_0200F52A: + ldrh r3, [r0, #0x0] + mov r0, #0x2 + tst r0, r3 + beq _0200F548 + mov r0, #0xff + lsl r1, r1, #0x8 + lsl r0, r0, #0x8 + and r1, r0 + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + orr r0, r1 + ldr r1, _0200F558 ; =0x04001042 + strh r0, [r1, #0x0] + mov r0, #0xc0 + strh r0, [r1, #0x4] +_0200F548: + pop {r4-r6, pc} + nop +_0200F54C: .word 0x04000006 +_0200F550: .word 0x04000004 +_0200F554: .word 0x04001040 +_0200F558: .word 0x04001042 + + thumb_func_start sub_0200F55C +sub_0200F55C: ; 0x0200F55C + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x0 + beq _0200F572 + cmp r4, #0x1 + beq _0200F572 + cmp r4, #0x2 + beq _0200F58C + pop {r4-r6, pc} +_0200F572: + ldr r1, _0200F5B8 ; =0x00000604 + add r0, r3, #0x0 + bl sub_02016998 + str r0, [r5, #0x0] + mov r0, #0x1 + str r0, [r5, #0x4] + str r6, [r5, #0x8] + mov r0, #0x6 + ldr r1, [r5, #0x0] + lsl r0, r0, #0x8 + str r4, [r1, r0] + pop {r4-r6, pc} +_0200F58C: + ldr r1, _0200F5BC ; =0x00000C08 + add r0, r3, #0x0 + bl sub_02016998 + str r0, [r5, #0x0] + mov r0, #0x2 + str r0, [r5, #0x4] + mov r0, #0x6 + mov r3, #0x0 + lsl r0, r0, #0x8 + str r6, [r5, #0x8] + add r4, r3, #0x0 + add r1, r0, #0x4 +_0200F5A6: + ldr r2, [r5, #0x0] + add r2, r2, r4 + str r3, [r2, r0] + add r3, r3, #0x1 + add r4, r4, r1 + cmp r3, #0x2 + blt _0200F5A6 + pop {r4-r6, pc} + nop +_0200F5B8: .word 0x00000604 +_0200F5BC: .word 0x00000C08 + + thumb_func_start sub_0200F5C0 +sub_0200F5C0: ; 0x0200F5C0 + ldr r3, _0200F5C4 ; =sub_0200F5C8 + bx r3 + .balign 4 +_0200F5C4: .word sub_0200F5C8 + 1 + + thumb_func_start sub_0200F5C8 +sub_0200F5C8: ; 0x0200F5C8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_0200F5D8 +sub_0200F5D8: ; 0x0200F5D8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + add r4, r1, #0x0 + cmp r0, r4 + bgt _0200F5E8 + bl sub_02020C2C +_0200F5E8: + ldr r0, _0200F5F4 ; =0x00000604 + ldr r1, [r5, #0x0] + mul r0, r4 + add r0, r1, r0 + pop {r3-r5, pc} + nop +_0200F5F4: .word 0x00000604 + + thumb_func_start sub_0200F5F8 +sub_0200F5F8: ; 0x0200F5F8 + push {r3-r7, lr} + add r5, r1, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x4] + mov r4, #0x0 + cmp r0, #0x0 + ble _0200F624 + mov r7, #0x3 + lsl r7, r7, #0x8 + add r6, r7, #0x0 +_0200F60C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0200F5D8 + add r1, r0, r6 + add r2, r7, #0x0 + blx sub_020DF438 + ldr r0, [r5, #0x4] + add r4, r4, #0x1 + cmp r4, r0 + blt _0200F60C +_0200F624: + ldr r0, [sp, #0x0] + bl sub_0200CAB4 + pop {r3-r7, pc} + + thumb_func_start sub_0200F62C +sub_0200F62C: ; 0x0200F62C + push {r4-r5, lr} + sub sp, #0xc + add r5, r1, #0x0 + add r4, r2, #0x0 + cmp r0, #0x0 + bne _0200F644 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02011634 + add sp, #0xc + pop {r4-r5, pc} +_0200F644: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02011634 + mov r2, #0x0 + add r0, r5, #0x0 + mov r1, #0x3f + add r3, r2, #0x0 + str r4, [sp, #0x0] + bl sub_02011650 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + add r0, r5, #0x0 + add r2, r1, #0x0 + add r3, r1, #0x0 + str r4, [sp, #0x8] + bl sub_02011698 + add r0, r5, #0x0 + mov r1, #0x20 + mov r2, #0x0 + add r3, r4, #0x0 + bl sub_02011678 + add sp, #0xc + pop {r4-r5, pc} + + thumb_func_start sub_0200F67C +sub_0200F67C: ; 0x0200F67C + push {r4-r7, lr} + sub sp, #0xc + add r7, r2, #0x0 + ldr r2, [sp, #0x34] + add r6, r0, #0x0 + add r5, r3, #0x0 + ldr r4, [sp, #0x20] + cmp r2, #0x0 + bne _0200F6B8 + add r0, r1, #0x0 + mov r1, #0x0 + add r2, r5, #0x0 + add r3, r4, #0x0 + bl sub_020114AC + add r0, r7, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 + bl sub_02011534 + str r5, [sp, #0x0] + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x2c] + ldr r3, [sp, #0x30] + str r4, [sp, #0x4] + bl sub_02011574 + add sp, #0xc + pop {r4-r7, pc} +_0200F6B8: + mov r2, #0x0 + str r4, [sp, #0x0] + bl sub_02011650 + add r0, r6, #0x0 + add r1, r7, #0x0 + mov r2, #0x0 + add r3, r4, #0x0 + bl sub_02011678 + ldr r0, [sp, #0x30] + ldr r1, [sp, #0x24] + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x2c] + add r0, r6, #0x0 + str r4, [sp, #0x8] + bl sub_02011698 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0200F6E4 +sub_0200F6E4: ; 0x0200F6E4 + push {r3, lr} + cmp r3, #0x0 + bne _0200F6F4 + add r0, r1, #0x0 + add r1, r2, #0x0 + bl sub_02011480 + pop {r3, pc} +_0200F6F4: + bl sub_02011634 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0200F6FC +sub_0200F6FC: ; 0x0200F6FC + push {r3-r7, lr} + add r4, r2, #0x0 + mov r2, #0xc3 + add r6, r1, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x2 + add r5, r0, #0x0 + add r7, r3, #0x0 + blx sub_020DF4A4 + cmp r4, #0x1 + bne _0200F726 + mov r0, #0x6 + lsl r0, r0, #0x6 + str r7, [r5, r0] + mov r0, #0xc2 + lsl r0, r0, #0x2 + strb r4, [r5, r0] + add r0, r0, #0x1 + strb r6, [r5, r0] + pop {r3-r7, pc} +_0200F726: + mov r0, #0x6 + lsl r0, r0, #0x6 + str r7, [r5, r0] + mov r0, #0xc1 + ldr r1, [sp, #0x18] + lsl r0, r0, #0x2 + str r1, [r5, r0] + add r1, r0, #0x4 + strb r4, [r5, r1] + add r0, r0, #0x5 + strb r6, [r5, r0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200F740 +sub_0200F740: ; 0x0200F740 + ldr r3, _0200F74C ; =sub_0200CA98 + add r1, r0, #0x0 + ldr r0, _0200F750 ; =sub_0200F780 + ldr r2, _0200F754 ; =0x000003FF + bx r3 + nop +_0200F74C: .word sub_0200CA98 + 1 +_0200F750: .word sub_0200F780 + 1 +_0200F754: .word 0x000003FF + + thumb_func_start sub_0200F758 +sub_0200F758: ; 0x0200F758 + push {r3, lr} + ldr r3, _0200F768 ; =0x00000309 + str r2, [sp, #0x0] + ldrb r3, [r1, r3] + ldr r2, _0200F76C ; =sub_0200F7AC + bl sub_0200E6CC + pop {r3, pc} + .balign 4 +_0200F768: .word 0x00000309 +_0200F76C: .word sub_0200F7AC + 1 + + thumb_func_start sub_0200F770 +sub_0200F770: ; 0x0200F770 + ldr r3, _0200F778 ; =0x00000309 + ldrb r1, [r1, r3] + ldr r3, _0200F77C ; =sub_0200E6F8 + bx r3 + .balign 4 +_0200F778: .word 0x00000309 +_0200F77C: .word sub_0200E6F8 + 1 + + thumb_func_start sub_0200F780 +sub_0200F780: ; 0x0200F780 + push {r3-r7, lr} + mov r7, #0xc0 + add r6, r7, #0x0 + str r0, [sp, #0x0] + add r5, r1, #0x0 + mov r4, #0x0 + add r6, #0xc4 +_0200F78E: + add r0, r5, #0x0 + add r0, #0xc0 + add r1, r5, #0x0 + add r2, r7, #0x0 + blx sub_020DF438 + add r4, r4, #0x1 + add r5, r5, r6 + cmp r4, #0x2 + blt _0200F78E + ldr r0, [sp, #0x0] + bl sub_0200CAB4 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200F7AC +sub_0200F7AC: ; 0x0200F7AC + push {r3-r5, lr} + add r4, r0, #0x0 + bne _0200F7B6 + bl sub_02020C2C +_0200F7B6: + ldr r0, _0200FAC0 ; =0x04000006 + ldrh r0, [r0, #0x0] + cmp r0, #0xc0 + bge _0200F838 + add r0, r0, #0x1 + cmp r0, #0xbf + ble _0200F7C6 + sub r0, #0xc0 +_0200F7C6: + mov r2, #0xc2 + lsl r2, r2, #0x2 + ldrb r1, [r4, r2] + cmp r1, #0x1 + beq _0200F7D2 + b _0200F96C +_0200F7D2: + add r0, r4, r0 + add r0, #0xc0 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0200F8A2 + add r0, r2, #0x1 + ldrb r0, [r4, r0] + cmp r0, #0x0 + ldr r0, _0200FAC4 ; =0x04000004 + bne _0200F802 + ldrh r2, [r0, #0x0] + mov r1, #0x2 + tst r1, r2 + beq _0200F81C + add r0, #0x46 + ldrh r2, [r0, #0x0] + mov r1, #0x3f + bic r2, r1 + mov r1, #0x3f + orr r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0, #0x0] + b _0200F81C +_0200F802: + ldrh r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + beq _0200F81C + ldr r1, _0200FAC8 ; =0x0400104A + mov r0, #0x3f + ldrh r2, [r1, #0x0] + bic r2, r0 + mov r0, #0x3f + orr r2, r0 + mov r0, #0x20 + orr r0, r2 + strh r0, [r1, #0x0] +_0200F81C: + ldr r0, _0200FACC ; =0x00000309 + ldrb r1, [r4, r0] + mov r0, #0x6 + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + cmp r0, #0x0 + bne _0200F868 + cmp r1, #0x0 + bne _0200F84C + ldr r2, _0200FAC4 ; =0x04000004 + mov r0, #0x2 + ldrh r1, [r2, #0x0] + tst r0, r1 + bne _0200F83A +_0200F838: + b _0200FCB0 +_0200F83A: + add r2, #0x44 + ldrh r1, [r2, #0x0] + mov r0, #0x3f + bic r1, r0 + mov r0, #0x20 + orr r1, r0 + orr r0, r1 + strh r0, [r2, #0x0] + pop {r3-r5, pc} +_0200F84C: + ldr r0, _0200FAC4 ; =0x04000004 + ldrh r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + beq _0200F954 + ldr r1, _0200FAD0 ; =0x04001048 + mov r0, #0x3f + ldrh r2, [r1, #0x0] + bic r2, r0 + mov r0, #0x20 + orr r2, r0 + orr r0, r2 + strh r0, [r1, #0x0] + pop {r3-r5, pc} +_0200F868: + cmp r1, #0x0 + ldr r0, _0200FAC4 ; =0x04000004 + bne _0200F888 + ldrh r1, [r0, #0x0] + mov r2, #0x2 + tst r1, r2 + beq _0200F954 + add r0, #0x44 + ldrh r3, [r0, #0x0] + ldr r1, _0200FAD4 ; =0xFFFFC0FF + and r3, r1 + lsl r1, r2, #0xc + orr r3, r1 + orr r1, r3 + strh r1, [r0, #0x0] + pop {r3-r5, pc} +_0200F888: + ldrh r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + beq _0200F954 + ldr r2, _0200FAD0 ; =0x04001048 + ldr r0, _0200FAD4 ; =0xFFFFC0FF + ldrh r1, [r2, #0x0] + and r1, r0 + lsr r0, r2, #0xd + orr r1, r0 + orr r0, r1 + strh r0, [r2, #0x0] + pop {r3-r5, pc} +_0200F8A2: + add r0, r2, #0x1 + ldrb r0, [r4, r0] + cmp r0, #0x0 + ldr r0, _0200FAC4 ; =0x04000004 + bne _0200F8C6 + ldrh r2, [r0, #0x0] + mov r1, #0x2 + tst r1, r2 + beq _0200F8DE + add r0, #0x46 + ldrh r2, [r0, #0x0] + mov r1, #0x3f + bic r2, r1 + mov r1, #0x20 + orr r2, r1 + orr r1, r2 + strh r1, [r0, #0x0] + b _0200F8DE +_0200F8C6: + ldrh r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + beq _0200F8DE + ldr r1, _0200FAC8 ; =0x0400104A + mov r0, #0x3f + ldrh r2, [r1, #0x0] + bic r2, r0 + mov r0, #0x20 + orr r2, r0 + orr r0, r2 + strh r0, [r1, #0x0] +_0200F8DE: + ldr r0, _0200FACC ; =0x00000309 + ldrb r1, [r4, r0] + mov r0, #0x6 + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + cmp r0, #0x0 + ldr r0, _0200FAC4 ; =0x04000004 + bne _0200F92A + cmp r1, #0x0 + bne _0200F90E + ldrh r2, [r0, #0x0] + mov r1, #0x2 + tst r1, r2 + beq _0200F954 + add r0, #0x44 + ldrh r2, [r0, #0x0] + mov r1, #0x3f + bic r2, r1 + mov r1, #0x3f + orr r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0, #0x0] + pop {r3-r5, pc} +_0200F90E: + ldrh r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + beq _0200F954 + ldr r1, _0200FAD0 ; =0x04001048 + mov r0, #0x3f + ldrh r2, [r1, #0x0] + bic r2, r0 + mov r0, #0x3f + orr r2, r0 + mov r0, #0x20 + orr r0, r2 + strh r0, [r1, #0x0] + pop {r3-r5, pc} +_0200F92A: + cmp r1, #0x0 + bne _0200F94C + ldrh r1, [r0, #0x0] + mov r2, #0x2 + tst r1, r2 + beq _0200F954 + add r0, #0x44 + ldrh r3, [r0, #0x0] + ldr r1, _0200FAD4 ; =0xFFFFC0FF + and r3, r1 + mov r1, #0x3f + lsl r1, r1, #0x8 + orr r3, r1 + lsl r1, r2, #0xc + orr r1, r3 + strh r1, [r0, #0x0] + pop {r3-r5, pc} +_0200F94C: + ldrh r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + bne _0200F956 +_0200F954: + b _0200FCB0 +_0200F956: + ldr r2, _0200FAD0 ; =0x04001048 + ldr r0, _0200FAD4 ; =0xFFFFC0FF + ldrh r1, [r2, #0x0] + and r1, r0 + mov r0, #0x3f + lsl r0, r0, #0x8 + orr r1, r0 + lsr r0, r2, #0xd + orr r0, r1 + strh r0, [r2, #0x0] + pop {r3-r5, pc} +_0200F96C: + add r1, r4, r0 + add r1, #0xc0 + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + bne _0200FA38 + add r1, r2, #0x1 + ldrb r1, [r4, r1] + cmp r1, #0x0 + ldr r1, _0200FAC4 ; =0x04000004 + bne _0200F99C + ldrh r3, [r1, #0x0] + mov r2, #0x2 + tst r2, r3 + beq _0200F9B6 + add r1, #0x46 + ldrh r3, [r1, #0x0] + mov r2, #0x3f + bic r3, r2 + mov r2, #0x3f + orr r3, r2 + mov r2, #0x20 + orr r2, r3 + strh r2, [r1, #0x0] + b _0200F9B6 +_0200F99C: + ldrh r2, [r1, #0x0] + mov r1, #0x2 + tst r1, r2 + beq _0200F9B6 + ldr r2, _0200FAC8 ; =0x0400104A + mov r1, #0x3f + ldrh r3, [r2, #0x0] + bic r3, r1 + mov r1, #0x3f + orr r3, r1 + mov r1, #0x20 + orr r1, r3 + strh r1, [r2, #0x0] +_0200F9B6: + ldr r1, _0200FACC ; =0x00000309 + ldrb r2, [r4, r1] + mov r1, #0x6 + lsl r1, r1, #0x6 + ldr r1, [r4, r1] + cmp r1, #0x0 + ldr r1, _0200FAC4 ; =0x04000004 + bne _0200F9FE + cmp r2, #0x0 + bne _0200F9E4 + ldrh r3, [r1, #0x0] + mov r2, #0x2 + tst r2, r3 + beq _0200FA0A + add r1, #0x44 + ldrh r3, [r1, #0x0] + mov r2, #0x3f + bic r3, r2 + mov r2, #0x20 + orr r3, r2 + orr r2, r3 + strh r2, [r1, #0x0] + b _0200FB16 +_0200F9E4: + ldrh r2, [r1, #0x0] + mov r1, #0x2 + tst r1, r2 + beq _0200FA0A + ldr r2, _0200FAD0 ; =0x04001048 + mov r1, #0x3f + ldrh r3, [r2, #0x0] + bic r3, r1 + mov r1, #0x20 + orr r3, r1 + orr r1, r3 + strh r1, [r2, #0x0] + b _0200FB16 +_0200F9FE: + cmp r2, #0x0 + bne _0200FA1E + ldrh r2, [r1, #0x0] + mov r3, #0x2 + tst r2, r3 + bne _0200FA0C +_0200FA0A: + b _0200FB16 +_0200FA0C: + add r1, #0x44 + ldrh r5, [r1, #0x0] + ldr r2, _0200FAD4 ; =0xFFFFC0FF + and r5, r2 + lsl r2, r3, #0xc + orr r5, r2 + orr r2, r5 + strh r2, [r1, #0x0] + b _0200FB16 +_0200FA1E: + ldrh r2, [r1, #0x0] + mov r1, #0x2 + tst r1, r2 + beq _0200FB16 + ldr r3, _0200FAD0 ; =0x04001048 + ldr r1, _0200FAD4 ; =0xFFFFC0FF + ldrh r2, [r3, #0x0] + and r2, r1 + lsr r1, r3, #0xd + orr r2, r1 + orr r1, r2 + strh r1, [r3, #0x0] + b _0200FB16 +_0200FA38: + add r1, r2, #0x1 + ldrb r1, [r4, r1] + cmp r1, #0x0 + ldr r1, _0200FAC4 ; =0x04000004 + bne _0200FA5C + ldrh r3, [r1, #0x0] + mov r2, #0x2 + tst r2, r3 + beq _0200FA74 + add r1, #0x46 + ldrh r3, [r1, #0x0] + mov r2, #0x3f + bic r3, r2 + mov r2, #0x20 + orr r3, r2 + orr r2, r3 + strh r2, [r1, #0x0] + b _0200FA74 +_0200FA5C: + ldrh r2, [r1, #0x0] + mov r1, #0x2 + tst r1, r2 + beq _0200FA74 + ldr r2, _0200FAC8 ; =0x0400104A + mov r1, #0x3f + ldrh r3, [r2, #0x0] + bic r3, r1 + mov r1, #0x20 + orr r3, r1 + orr r1, r3 + strh r1, [r2, #0x0] +_0200FA74: + ldr r1, _0200FACC ; =0x00000309 + ldrb r2, [r4, r1] + mov r1, #0x6 + lsl r1, r1, #0x6 + ldr r1, [r4, r1] + cmp r1, #0x0 + ldr r1, _0200FAC4 ; =0x04000004 + bne _0200FAD8 + cmp r2, #0x0 + bne _0200FAA4 + ldrh r3, [r1, #0x0] + mov r2, #0x2 + tst r2, r3 + beq _0200FB16 + add r1, #0x44 + ldrh r3, [r1, #0x0] + mov r2, #0x3f + bic r3, r2 + mov r2, #0x3f + orr r3, r2 + mov r2, #0x20 + orr r2, r3 + strh r2, [r1, #0x0] + b _0200FB16 +_0200FAA4: + ldrh r2, [r1, #0x0] + mov r1, #0x2 + tst r1, r2 + beq _0200FB16 + ldr r2, _0200FAD0 ; =0x04001048 + mov r1, #0x3f + ldrh r3, [r2, #0x0] + bic r3, r1 + mov r1, #0x3f + orr r3, r1 + mov r1, #0x20 + orr r1, r3 + strh r1, [r2, #0x0] + b _0200FB16 + .balign 4 +_0200FAC0: .word 0x04000006 +_0200FAC4: .word 0x04000004 +_0200FAC8: .word 0x0400104A +_0200FACC: .word 0x00000309 +_0200FAD0: .word 0x04001048 +_0200FAD4: .word 0xFFFFC0FF +_0200FAD8: + cmp r2, #0x0 + bne _0200FAFA + ldrh r2, [r1, #0x0] + mov r3, #0x2 + tst r2, r3 + beq _0200FB16 + add r1, #0x44 + ldrh r5, [r1, #0x0] + ldr r2, _0200FCB4 ; =0xFFFFC0FF + and r5, r2 + mov r2, #0x3f + lsl r2, r2, #0x8 + orr r5, r2 + lsl r2, r3, #0xc + orr r2, r5 + strh r2, [r1, #0x0] + b _0200FB16 +_0200FAFA: + ldrh r2, [r1, #0x0] + mov r1, #0x2 + tst r1, r2 + beq _0200FB16 + ldr r3, _0200FCB8 ; =0x04001048 + ldr r1, _0200FCB4 ; =0xFFFFC0FF + ldrh r2, [r3, #0x0] + and r2, r1 + mov r1, #0x3f + lsl r1, r1, #0x8 + orr r2, r1 + lsr r1, r3, #0xd + orr r1, r2 + strh r1, [r3, #0x0] +_0200FB16: + mov r1, #0x61 + lsl r1, r1, #0x2 + add r1, r4, r1 + add r0, r1, r0 + add r0, #0xc0 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + ldr r0, _0200FCBC ; =0x00000309 + bne _0200FBEC + ldrb r0, [r4, r0] + cmp r0, #0x0 + ldr r0, _0200FCC0 ; =0x04000004 + bne _0200FB4C + ldrh r3, [r0, #0x0] + mov r2, #0x2 + tst r2, r3 + beq _0200FB66 + add r0, #0x46 + ldrh r3, [r0, #0x0] + mov r2, #0x3f + bic r3, r2 + mov r2, #0x3f + orr r3, r2 + mov r2, #0x20 + orr r2, r3 + strh r2, [r0, #0x0] + b _0200FB66 +_0200FB4C: + ldrh r2, [r0, #0x0] + mov r0, #0x2 + tst r0, r2 + beq _0200FB66 + ldr r2, _0200FCC4 ; =0x0400104A + mov r0, #0x3f + ldrh r3, [r2, #0x0] + bic r3, r0 + mov r0, #0x3f + orr r3, r0 + mov r0, #0x20 + orr r0, r3 + strh r0, [r2, #0x0] +_0200FB66: + ldr r0, _0200FCBC ; =0x00000309 + ldrb r2, [r4, r0] + mov r0, #0x6 + lsl r0, r0, #0x6 + ldr r0, [r1, r0] + cmp r0, #0x0 + bne _0200FBB2 + cmp r2, #0x0 + bne _0200FB94 + ldr r2, _0200FCC0 ; =0x04000004 + mov r0, #0x2 + ldrh r1, [r2, #0x0] + tst r0, r1 + beq _0200FB9E + add r2, #0x44 + ldrh r1, [r2, #0x0] + mov r0, #0x3f + bic r1, r0 + mov r0, #0x20 + orr r1, r0 + orr r0, r1 + strh r0, [r2, #0x0] + pop {r3-r5, pc} +_0200FB94: + ldr r0, _0200FCC0 ; =0x04000004 + ldrh r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + bne _0200FBA0 +_0200FB9E: + b _0200FCB0 +_0200FBA0: + ldr r1, _0200FCB8 ; =0x04001048 + mov r0, #0x3f + ldrh r2, [r1, #0x0] + bic r2, r0 + mov r0, #0x20 + orr r2, r0 + orr r0, r2 + strh r0, [r1, #0x0] + pop {r3-r5, pc} +_0200FBB2: + cmp r2, #0x0 + ldr r0, _0200FCC0 ; =0x04000004 + bne _0200FBD2 + ldrh r1, [r0, #0x0] + mov r2, #0x2 + tst r1, r2 + beq _0200FCB0 + add r0, #0x44 + ldrh r3, [r0, #0x0] + ldr r1, _0200FCB4 ; =0xFFFFC0FF + and r3, r1 + lsl r1, r2, #0xc + orr r3, r1 + orr r1, r3 + strh r1, [r0, #0x0] + pop {r3-r5, pc} +_0200FBD2: + ldrh r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + beq _0200FCB0 + ldr r2, _0200FCB8 ; =0x04001048 + ldr r0, _0200FCB4 ; =0xFFFFC0FF + ldrh r1, [r2, #0x0] + and r1, r0 + lsr r0, r2, #0xd + orr r1, r0 + orr r0, r1 + strh r0, [r2, #0x0] + pop {r3-r5, pc} +_0200FBEC: + ldrb r0, [r4, r0] + cmp r0, #0x0 + ldr r0, _0200FCC0 ; =0x04000004 + bne _0200FC0E + ldrh r3, [r0, #0x0] + mov r2, #0x2 + tst r2, r3 + beq _0200FC26 + add r0, #0x46 + ldrh r3, [r0, #0x0] + mov r2, #0x3f + bic r3, r2 + mov r2, #0x20 + orr r3, r2 + orr r2, r3 + strh r2, [r0, #0x0] + b _0200FC26 +_0200FC0E: + ldrh r2, [r0, #0x0] + mov r0, #0x2 + tst r0, r2 + beq _0200FC26 + ldr r2, _0200FCC4 ; =0x0400104A + mov r0, #0x3f + ldrh r3, [r2, #0x0] + bic r3, r0 + mov r0, #0x20 + orr r3, r0 + orr r0, r3 + strh r0, [r2, #0x0] +_0200FC26: + ldr r0, _0200FCBC ; =0x00000309 + ldrb r2, [r4, r0] + mov r0, #0x6 + lsl r0, r0, #0x6 + ldr r0, [r1, r0] + cmp r0, #0x0 + ldr r0, _0200FCC0 ; =0x04000004 + bne _0200FC72 + cmp r2, #0x0 + bne _0200FC56 + ldrh r2, [r0, #0x0] + mov r1, #0x2 + tst r1, r2 + beq _0200FCB0 + add r0, #0x44 + ldrh r2, [r0, #0x0] + mov r1, #0x3f + bic r2, r1 + mov r1, #0x3f + orr r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0, #0x0] + pop {r3-r5, pc} +_0200FC56: + ldrh r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + beq _0200FCB0 + ldr r1, _0200FCB8 ; =0x04001048 + mov r0, #0x3f + ldrh r2, [r1, #0x0] + bic r2, r0 + mov r0, #0x3f + orr r2, r0 + mov r0, #0x20 + orr r0, r2 + strh r0, [r1, #0x0] + pop {r3-r5, pc} +_0200FC72: + cmp r2, #0x0 + bne _0200FC94 + ldrh r1, [r0, #0x0] + mov r2, #0x2 + tst r1, r2 + beq _0200FCB0 + add r0, #0x44 + ldrh r3, [r0, #0x0] + ldr r1, _0200FCB4 ; =0xFFFFC0FF + and r3, r1 + mov r1, #0x3f + lsl r1, r1, #0x8 + orr r3, r1 + lsl r1, r2, #0xc + orr r1, r3 + strh r1, [r0, #0x0] + pop {r3-r5, pc} +_0200FC94: + ldrh r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + beq _0200FCB0 + ldr r2, _0200FCB8 ; =0x04001048 + ldr r0, _0200FCB4 ; =0xFFFFC0FF + ldrh r1, [r2, #0x0] + and r1, r0 + mov r0, #0x3f + lsl r0, r0, #0x8 + orr r1, r0 + lsr r0, r2, #0xd + orr r0, r1 + strh r0, [r2, #0x0] +_0200FCB0: + pop {r3-r5, pc} + nop +_0200FCB4: .word 0xFFFFC0FF +_0200FCB8: .word 0x04001048 +_0200FCBC: .word 0x00000309 +_0200FCC0: .word 0x04000004 +_0200FCC4: .word 0x0400104A + + thumb_func_start sub_0200FCC8 +sub_0200FCC8: ; 0x0200FCC8 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + add r6, r1, #0x0 + mov r1, #0x4c + bl sub_02016998 + str r0, [r5, #0x14] + add r4, r0, #0x0 + ldr r0, [r5, #0x10] + add r1, r6, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + str r0, [sp, #0x4] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + add r0, r4, #0x0 + bl sub_0200FE20 + add r6, #0x20 + ldrb r0, [r6, #0x0] + cmp r0, #0x0 + ldr r0, [r5, #0x18] + bne _0200FD06 + ldr r2, [r4, #0x30] + ldr r3, [r4, #0x44] + mov r1, #0x1 + bl sub_0200F6E4 + b _0200FD10 +_0200FD06: + ldr r2, [r4, #0x30] + ldr r3, [r4, #0x44] + mov r1, #0x2 + bl sub_0200F6E4 +_0200FD10: + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0200FD1C +sub_0200FD1C: ; 0x0200FD1C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + ldr r4, [r5, #0x14] + cmp r0, #0x1 + beq _0200FD34 + cmp r0, #0x2 + beq _0200FD50 + cmp r0, #0x3 + beq _0200FD64 + b _0200FD66 +_0200FD34: + add r0, r4, #0x0 + bl sub_0200FE90 + cmp r0, #0x1 + bne _0200FD66 + ldr r0, [r4, #0x44] + ldr r1, [r5, #0x18] + ldr r2, [r5, #0x10] + bl sub_0200F62C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0200FD66 +_0200FD50: + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r6, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r6, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0200FD66 +_0200FD64: + mov r6, #0x1 +_0200FD66: + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0200FD6C +sub_0200FD6C: ; 0x0200FD6C + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + add r6, r1, #0x0 + mov r1, #0x98 + add r7, r2, #0x0 + bl sub_02016998 + str r0, [r5, #0x14] + add r4, r0, #0x0 + ldr r0, [r5, #0x10] + add r1, r6, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + str r0, [sp, #0x4] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + add r0, r4, #0x0 + bl sub_0200FE20 + ldr r0, [r5, #0x10] + add r1, r7, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + str r0, [sp, #0x4] + add r0, r4, #0x0 + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + add r0, #0x4c + bl sub_0200FE20 + ldr r0, [r5, #0x18] + ldr r2, [r5, #0x10] + ldr r3, [r4, #0x44] + mov r1, #0x3 + bl sub_0200F6E4 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200FDC4 +sub_0200FDC4: ; 0x0200FDC4 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + ldr r4, [r5, #0x14] + cmp r0, #0x1 + beq _0200FDDC + cmp r0, #0x2 + beq _0200FE04 + cmp r0, #0x3 + beq _0200FE18 + b _0200FE1A +_0200FDDC: + add r0, r4, #0x0 + bl sub_0200FE90 + add r7, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x4c + bl sub_0200FE90 + add r0, r7, r0 + cmp r0, #0x2 + bne _0200FE1A + ldr r0, [r4, #0x44] + ldr r1, [r5, #0x18] + ldr r2, [r5, #0x10] + bl sub_0200F62C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0200FE1A +_0200FE04: + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r6, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r6, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0200FE1A +_0200FE18: + mov r6, #0x1 +_0200FE1A: + add r0, r6, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200FE20 +sub_0200FE20: ; 0x0200FE20 + push {r3-r7, lr} + sub sp, #0x18 + add r4, r1, #0x0 + add r1, #0x10 + add r7, r3, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + str r1, [sp, #0x0] + add r1, r5, #0x0 + add r2, r5, #0x0 + add r1, #0x20 + add r2, #0x10 + add r3, r4, #0x0 + str r6, [sp, #0x4] + bl sub_0200F1A8 + ldr r1, [sp, #0x30] + add r0, r4, #0x0 + add r2, r4, #0x0 + str r1, [r5, #0x30] + add r0, #0x20 + ldrb r0, [r0, #0x0] + add r2, #0x23 + str r0, [r5, #0x34] + str r6, [r5, #0x38] + str r7, [r5, #0x3c] + mov r0, #0x0 + str r0, [r5, #0x40] + ldr r0, [sp, #0x34] + str r0, [r5, #0x48] + ldrb r2, [r2, #0x0] + str r2, [r5, #0x44] + str r1, [sp, #0x0] + ldr r1, [r4, #0x0] + add r2, r4, #0x0 + str r1, [sp, #0x4] + ldr r1, [r4, #0x4] + add r2, #0x22 + str r1, [sp, #0x8] + ldr r1, [r4, #0x8] + str r1, [sp, #0xc] + ldr r1, [r4, #0xc] + str r1, [sp, #0x10] + ldr r1, [r5, #0x44] + str r1, [sp, #0x14] + add r1, r4, #0x0 + add r1, #0x21 + add r4, #0x20 + ldrb r1, [r1, #0x0] + ldrb r2, [r2, #0x0] + ldrb r3, [r4, #0x0] + bl sub_0200F67C + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0200FE90 +sub_0200FE90: ; 0x0200FE90 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r1, [r4, #0x40] + add r2, r1, #0x1 + str r2, [r4, #0x40] + ldr r1, [r4, #0x3c] + cmp r2, r1 + blt _0200FF10 + mov r1, #0x0 + str r1, [r4, #0x40] + ldr r1, [r4, #0x38] + sub r1, r1, #0x1 + cmp r1, #0x0 + ble _0200FEBA + str r1, [r4, #0x38] + add r1, r4, #0x0 + add r1, #0x10 + bl sub_0200F184 + b _0200FED8 +_0200FEBA: + ldr r0, [r4, #0x2c] + str r0, [sp, #0x0] + ldr r0, [r4, #0x34] + str r0, [sp, #0x4] + ldr r0, [r4, #0x30] + str r0, [sp, #0x8] + ldr r0, [r4, #0x48] + ldr r1, [r4, #0x20] + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + bl sub_02011698 + add sp, #0xc + mov r0, #0x1 + pop {r3-r4, pc} +_0200FED8: + ldr r1, [r4, #0xc] + asr r0, r1, #0x6 + lsr r0, r0, #0x19 + add r0, r1, r0 + asr r0, r0, #0x7 + str r0, [sp, #0x0] + ldr r0, [r4, #0x34] + str r0, [sp, #0x4] + ldr r0, [r4, #0x30] + str r0, [sp, #0x8] + ldr r2, [r4, #0x0] + ldr r3, [r4, #0x4] + asr r1, r2, #0x6 + lsr r1, r1, #0x19 + add r1, r2, r1 + ldr r0, [r4, #0x48] + asr r2, r3, #0x6 + lsr r2, r2, #0x19 + add r2, r3, r2 + ldr r4, [r4, #0x8] + asr r1, r1, #0x7 + asr r3, r4, #0x6 + lsr r3, r3, #0x19 + add r3, r4, r3 + asr r2, r2, #0x7 + asr r3, r3, #0x7 + bl sub_02011698 +_0200FF10: + mov r0, #0x0 + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0200FF18 +sub_0200FF18: ; 0x0200FF18 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + add r4, r1, #0x0 + mov r1, #0x38 + bl sub_02016998 + str r0, [r5, #0x14] + ldr r0, [r5, #0x10] + add r1, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + str r0, [sp, #0x4] + ldr r0, [r5, #0x1c] + str r0, [sp, #0x8] + ldr r0, [r5, #0x20] + str r0, [sp, #0xc] + ldr r0, [r5, #0x14] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + bl sub_0200FFAC + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_0200FF50 +sub_0200FF50: ; 0x0200FF50 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + ldr r4, [r5, #0x14] + cmp r0, #0x1 + beq _0200FF68 + cmp r0, #0x2 + beq _0200FF84 + cmp r0, #0x3 + beq _0200FF9E + b _0200FFA2 +_0200FF68: + add r0, r4, #0x0 + bl sub_02010084 + cmp r0, #0x1 + bne _0200FFA6 + ldr r0, [r4, #0x2c] + ldr r1, [r4, #0x30] + ldr r2, [r5, #0x10] + bl sub_0200F62C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0200FFA6 +_0200FF84: + add r0, r4, #0x0 + bl sub_0200F5C0 + ldr r0, [r5, #0x14] + bl sub_02016A18 + add r0, r6, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r6, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0200FFA6 +_0200FF9E: + mov r6, #0x1 + b _0200FFA6 +_0200FFA2: + bl sub_02020C2C +_0200FFA6: + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0200FFAC +sub_0200FFAC: ; 0x0200FFAC + push {r4-r7, lr} + sub sp, #0x24 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + str r2, [sp, #0x18] + str r3, [sp, #0x1c] + ldr r6, [sp, #0x38] + ldr r7, [sp, #0x3c] + bl sub_0200F164 + str r0, [sp, #0x20] + ldrb r1, [r4, #0xc] + ldr r3, [sp, #0x44] + add r0, r5, #0x0 + add r2, r6, #0x0 + bl sub_0200F55C + ldr r0, [r4, #0x0] + lsl r0, r0, #0x7 + str r0, [r5, #0xc] + mov r0, #0x8 + ldrsh r0, [r4, r0] + str r0, [r5, #0x10] + mov r0, #0xa + ldrsh r0, [r4, r0] + str r0, [r5, #0x14] + ldr r0, [sp, #0x20] + str r0, [r5, #0x18] + ldr r0, [sp, #0x18] + str r0, [r5, #0x1c] + ldr r0, [sp, #0x1c] + str r0, [r5, #0x20] + mov r0, #0x0 + str r0, [r5, #0x24] + ldr r0, [sp, #0x40] + str r7, [r5, #0x30] + str r0, [r5, #0x34] + ldr r0, [sp, #0x44] + str r0, [r5, #0x28] + ldrb r0, [r4, #0xf] + str r0, [r5, #0x2c] + add r0, r5, #0x0 + bl sub_02010168 + ldr r0, _02010078 ; =sub_0200F5F8 + ldr r2, _0201007C ; =0x000003FF + add r1, r5, #0x0 + bl sub_0200CA98 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + mov r1, #0x3 + str r6, [sp, #0x0] + lsl r1, r1, #0x8 + ldrsh r1, [r0, r1] + str r1, [sp, #0x4] + mov r1, #0x0 + str r1, [sp, #0x8] + mov r1, #0x12 + lsl r1, r1, #0x6 + ldrsh r0, [r0, r1] + str r0, [sp, #0xc] + mov r0, #0xc0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x2c] + str r0, [sp, #0x14] + ldrb r1, [r4, #0xd] + ldrb r2, [r4, #0xe] + ldrb r3, [r4, #0xc] + add r0, r7, #0x0 + bl sub_0200F67C + ldrb r0, [r4, #0xc] + cmp r0, #0x0 + bne _02010058 + ldr r3, [r5, #0x2c] + add r0, r7, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl sub_0200F6E4 + b _02010064 +_02010058: + ldr r3, [r5, #0x2c] + add r0, r7, #0x0 + mov r1, #0x2 + add r2, r6, #0x0 + bl sub_0200F6E4 +_02010064: + ldr r0, [sp, #0x44] + ldr r2, _02010080 ; =sub_0200F330 + str r0, [sp, #0x0] + ldr r0, [r5, #0x34] + add r1, r5, #0x0 + add r3, r6, #0x0 + bl sub_0200E6CC + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 +_02010078: .word sub_0200F5F8 + 1 +_0201007C: .word 0x000003FF +_02010080: .word sub_0200F330 + 1 + + thumb_func_start sub_02010084 +sub_02010084: ; 0x02010084 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x24] + add r2, r1, #0x1 + str r2, [r4, #0x24] + ldr r1, [r4, #0x20] + cmp r2, r1 + blt _020100C8 + mov r1, #0x0 + str r1, [r4, #0x24] + ldr r1, [r4, #0x1c] + sub r1, r1, #0x1 + cmp r1, #0x0 + ble _020100BA + str r1, [r4, #0x1c] + ldr r2, [r4, #0xc] + ldr r1, [r4, #0x18] + add r1, r2, r1 + str r1, [r4, #0xc] + bl sub_02010168 + ldr r0, _020100CC ; =sub_0200F5F8 + ldr r2, _020100D0 ; =0x000003FF + add r1, r4, #0x0 + bl sub_0200CA98 + b _020100C8 +_020100BA: + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x8] + ldr r2, [r4, #0x28] + bl sub_0200E6F8 + mov r0, #0x1 + pop {r4, pc} +_020100C8: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_020100CC: .word sub_0200F5F8 + 1 +_020100D0: .word 0x000003FF + + thumb_func_start sub_020100D4 +sub_020100D4: ; 0x020100D4 + push {r4-r7, lr} + sub sp, #0xc + str r1, [sp, #0x0] + asr r1, r0, #0x6 + lsr r1, r1, #0x19 + add r1, r0, r1 + asr r1, r1, #0x7 + ldr r5, [sp, #0x20] + ldr r4, [sp, #0x24] + sub r0, r3, r2 + bpl _020100EC + neg r0, r0 +_020100EC: + cmp r0, r1 + blt _020100FA + mov r0, #0x0 + str r0, [r5, #0x0] + add sp, #0xc + str r0, [r4, #0x0] + pop {r4-r7, pc} +_020100FA: + lsl r0, r0, #0xc + str r0, [sp, #0x4] + asr r7, r0, #0x1f + lsl r0, r1, #0xc + asr r1, r0, #0x1f + add r2, r0, #0x0 + add r3, r1, #0x0 + blx sub_020EBC30 + str r0, [sp, #0x8] + ldr r0, [sp, #0x4] + add r6, r1, #0x0 + add r1, r7, #0x0 + add r2, r0, #0x0 + add r3, r7, #0x0 + blx sub_020EBC30 + add r2, r0, #0x0 + add r3, r1, #0x0 + mov r0, #0x2 + ldr r1, [sp, #0x8] + mov r7, #0x0 + lsl r0, r0, #0xa + add r0, r1, r0 + adc r6, r7 + lsl r1, r6, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + mov r1, #0x2 + lsl r1, r1, #0xa + add r2, r2, r1 + adc r3, r7 + lsl r1, r3, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + sub r0, r0, r2 + blx sub_020C504C + asr r2, r0, #0xc + ldr r0, [sp, #0x0] + sub r0, r0, r2 + str r0, [r5, #0x0] + bpl _02010154 + add r0, r7, #0x0 + str r0, [r5, #0x0] +_02010154: + ldr r1, [r5, #0x0] + lsl r0, r2, #0x1 + add r0, r1, r0 + str r0, [r4, #0x0] + cmp r0, #0xff + ble _02010164 + mov r0, #0xff + str r0, [r4, #0x0] +_02010164: + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02010168 +sub_02010168: ; 0x02010168 + push {r3-r7, lr} + sub sp, #0x10 + mov r1, #0x0 + add r5, r0, #0x0 + bl sub_0200F5D8 + add r7, r0, #0x0 + mov r4, #0x0 + add r6, r7, #0x0 +_0201017A: + ldr r2, [r5, #0x14] + cmp r4, r2 + bgt _02010194 + add r0, sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + ldr r0, [r5, #0xc] + ldr r1, [r5, #0x10] + add r3, r4, #0x0 + bl sub_020100D4 + b _020101CE +_02010194: + lsl r0, r2, #0x1 + cmp r4, r0 + bgt _020101BC + sub r0, r0, r4 + lsl r0, r0, #0x1 + add r1, r7, r0 + mov r0, #0x3 + lsl r0, r0, #0x8 + ldrsh r0, [r1, r0] + str r0, [sp, #0xc] + ldr r0, [r5, #0x14] + lsl r0, r0, #0x1 + sub r0, r0, r4 + lsl r0, r0, #0x1 + add r1, r7, r0 + mov r0, #0x12 + lsl r0, r0, #0x6 + ldrsh r0, [r1, r0] + str r0, [sp, #0x8] + b _020101CE +_020101BC: + add r0, sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + ldr r0, [r5, #0xc] + ldr r1, [r5, #0x10] + add r3, r4, #0x0 + bl sub_020100D4 +_020101CE: + mov r0, #0x3 + ldr r1, [sp, #0xc] + lsl r0, r0, #0x8 + strh r1, [r6, r0] + mov r0, #0x12 + ldr r1, [sp, #0x8] + lsl r0, r0, #0x6 + strh r1, [r6, r0] + add r4, r4, #0x1 + add r6, r6, #0x2 + cmp r4, #0xc0 + blt _0201017A + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020101EC +sub_020101EC: ; 0x020101EC + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + add r4, r1, #0x0 + mov r1, #0x30 + bl sub_02016998 + str r0, [r5, #0x14] + ldr r0, [r5, #0x10] + add r1, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + str r0, [sp, #0x4] + ldr r0, [r5, #0x1c] + str r0, [sp, #0x8] + ldr r0, [r5, #0x20] + str r0, [sp, #0xc] + ldr r0, [r5, #0x14] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + bl sub_02010280 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_02010224 +sub_02010224: ; 0x02010224 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + ldr r4, [r5, #0x14] + cmp r0, #0x1 + beq _0201023C + cmp r0, #0x2 + beq _02010258 + cmp r0, #0x3 + beq _02010272 + b _02010276 +_0201023C: + add r0, r4, #0x0 + bl sub_02010348 + cmp r0, #0x1 + bne _0201027A + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x24] + ldr r2, [r5, #0x10] + bl sub_0200F62C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0201027A +_02010258: + add r0, r4, #0x0 + bl sub_0200F5C0 + ldr r0, [r5, #0x14] + bl sub_02016A18 + add r0, r6, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r6, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0201027A +_02010272: + mov r6, #0x1 + b _0201027A +_02010276: + bl sub_02020C2C +_0201027A: + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02010280 +sub_02010280: ; 0x02010280 + push {r3-r7, lr} + sub sp, #0x20 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + str r2, [sp, #0x18] + str r3, [sp, #0x1c] + ldr r6, [sp, #0x38] + ldr r7, [sp, #0x3c] + bl sub_0200F164 + str r0, [r5, #0x10] + ldrb r1, [r4, #0x8] + ldr r3, [sp, #0x44] + add r0, r5, #0x0 + add r2, r6, #0x0 + bl sub_0200F55C + ldr r0, [r4, #0x0] + lsl r0, r0, #0x7 + str r0, [r5, #0xc] + ldr r0, [sp, #0x18] + str r0, [r5, #0x14] + ldr r0, [sp, #0x1c] + str r0, [r5, #0x18] + mov r0, #0x0 + str r0, [r5, #0x1c] + ldr r0, [sp, #0x40] + str r7, [r5, #0x24] + str r0, [r5, #0x28] + ldr r0, [sp, #0x44] + str r0, [r5, #0x2c] + ldrb r0, [r4, #0xb] + str r0, [r5, #0x20] + add r0, r5, #0x0 + bl sub_02010398 + ldr r0, _0201033C ; =sub_0200F5F8 + ldr r2, _02010340 ; =0x000003FF + add r1, r5, #0x0 + bl sub_0200CA98 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + mov r1, #0x3 + str r6, [sp, #0x0] + lsl r1, r1, #0x8 + ldrsh r1, [r0, r1] + str r1, [sp, #0x4] + mov r1, #0x0 + str r1, [sp, #0x8] + mov r1, #0x12 + lsl r1, r1, #0x6 + ldrsh r0, [r0, r1] + str r0, [sp, #0xc] + mov r0, #0xc0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x20] + str r0, [sp, #0x14] + ldrb r1, [r4, #0x9] + ldrb r2, [r4, #0xa] + ldrb r3, [r4, #0x8] + add r0, r7, #0x0 + bl sub_0200F67C + ldrb r0, [r4, #0x8] + cmp r0, #0x0 + bne _0201031C + ldr r3, [r5, #0x20] + add r0, r7, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl sub_0200F6E4 + b _02010328 +_0201031C: + ldr r3, [r5, #0x20] + add r0, r7, #0x0 + mov r1, #0x2 + add r2, r6, #0x0 + bl sub_0200F6E4 +_02010328: + ldr r0, [sp, #0x44] + ldr r2, _02010344 ; =sub_0200F330 + str r0, [sp, #0x0] + ldr r0, [r5, #0x28] + add r1, r5, #0x0 + add r3, r6, #0x0 + bl sub_0200E6CC + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 +_0201033C: .word sub_0200F5F8 + 1 +_02010340: .word 0x000003FF +_02010344: .word sub_0200F330 + 1 + + thumb_func_start sub_02010348 +sub_02010348: ; 0x02010348 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x1c] + add r2, r1, #0x1 + str r2, [r4, #0x1c] + ldr r1, [r4, #0x18] + cmp r2, r1 + blt _0201038C + mov r1, #0x0 + str r1, [r4, #0x1c] + ldr r1, [r4, #0x14] + sub r1, r1, #0x1 + cmp r1, #0x0 + ble _0201037E + str r1, [r4, #0x14] + ldr r2, [r4, #0xc] + ldr r1, [r4, #0x10] + add r1, r2, r1 + str r1, [r4, #0xc] + bl sub_02010398 + ldr r0, _02010390 ; =sub_0200F5F8 + ldr r2, _02010394 ; =0x000003FF + add r1, r4, #0x0 + bl sub_0200CA98 + b _0201038C +_0201037E: + ldr r0, [r4, #0x28] + ldr r1, [r4, #0x8] + ldr r2, [r4, #0x2c] + bl sub_0200E6F8 + mov r0, #0x1 + pop {r4, pc} +_0201038C: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_02010390: .word sub_0200F5F8 + 1 +_02010394: .word 0x000003FF + + thumb_func_start sub_02010398 +sub_02010398: ; 0x02010398 + push {r3-r7, lr} + sub sp, #0x1fc + sub sp, #0x104 + add r4, r0, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + ldr r1, [r4, #0xc] + add r5, r0, #0x0 + asr r0, r1, #0x6 + lsr r0, r0, #0x19 + add r0, r1, r0 + asr r0, r0, #0x7 + add r1, sp, #0x0 + mov r2, #0xc0 + mov r3, #0x0 + bl sub_0200F0F8 + mov r7, #0x12 + mov r6, #0x0 + add r4, sp, #0x0 + lsl r7, r7, #0x6 +_020103C4: + ldr r1, [r4, #0x0] + mov r0, #0x80 + neg r1, r1 + bl sub_0200F174 + mov r1, #0x3 + lsl r1, r1, #0x8 + strh r0, [r5, r1] + ldr r1, [r4, #0x0] + mov r0, #0x80 + bl sub_0200F174 + strh r0, [r5, r7] + add r6, r6, #0x1 + add r4, r4, #0x4 + add r5, r5, #0x2 + cmp r6, #0xc0 + blt _020103C4 + add sp, #0x1fc + add sp, #0x104 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020103F0 +sub_020103F0: ; 0x020103F0 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + add r4, r1, #0x0 + mov r1, #0x34 + bl sub_02016998 + str r0, [r5, #0x14] + ldr r0, [r5, #0x10] + add r1, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + str r0, [sp, #0x4] + ldr r0, [r5, #0x1c] + str r0, [sp, #0x8] + ldr r0, [r5, #0x20] + str r0, [sp, #0xc] + ldr r0, [r5, #0x14] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + bl sub_0201047C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_02010428 +sub_02010428: ; 0x02010428 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + ldr r4, [r5, #0x14] + cmp r0, #0x1 + beq _02010440 + cmp r0, #0x2 + beq _0201045C + cmp r0, #0x3 + beq _02010476 + b _02010478 +_02010440: + add r0, r4, #0x0 + bl sub_02010550 + cmp r0, #0x1 + bne _02010478 + ldr r0, [r4, #0x24] + ldr r1, [r4, #0x28] + ldr r2, [r5, #0x10] + bl sub_0200F62C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _02010478 +_0201045C: + add r0, r4, #0x0 + bl sub_0200F5C0 + ldr r0, [r5, #0x14] + bl sub_02016A18 + add r0, r6, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r6, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _02010478 +_02010476: + mov r6, #0x1 +_02010478: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0201047C +sub_0201047C: ; 0x0201047C + push {r4-r7, lr} + sub sp, #0x24 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r1, [r4, #0x4] + ldr r0, [r4, #0x0] + str r2, [sp, #0x18] + sub r0, r1, r0 + add r1, r2, #0x0 + str r3, [sp, #0x1c] + ldr r6, [sp, #0x38] + ldr r7, [sp, #0x3c] + blx sub_020EBC80 + str r0, [sp, #0x20] + ldrb r1, [r4, #0x8] + ldr r3, [sp, #0x44] + add r0, r5, #0x0 + add r2, r6, #0x0 + bl sub_0200F55C + mov r0, #0x2 + lsl r0, r0, #0x12 + str r0, [r5, #0xc] + ldr r0, [r4, #0x0] + str r0, [r5, #0x10] + ldr r0, [sp, #0x20] + str r0, [r5, #0x14] + ldr r0, [sp, #0x18] + str r0, [r5, #0x18] + ldr r0, [sp, #0x1c] + str r0, [r5, #0x1c] + mov r0, #0x0 + str r0, [r5, #0x20] + ldr r0, [sp, #0x40] + str r7, [r5, #0x28] + str r0, [r5, #0x2c] + ldr r0, [sp, #0x44] + str r0, [r5, #0x30] + ldrb r0, [r4, #0xb] + str r0, [r5, #0x24] + add r0, r5, #0x0 + bl sub_020105A0 + ldr r0, _02010544 ; =sub_0200F5F8 + ldr r2, _02010548 ; =0x000003FF + add r1, r5, #0x0 + bl sub_0200CA98 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + mov r1, #0xf + str r6, [sp, #0x0] + lsl r1, r1, #0x6 + ldrsh r1, [r0, r1] + str r1, [sp, #0x4] + mov r1, #0x0 + str r1, [sp, #0x8] + mov r1, #0x15 + lsl r1, r1, #0x6 + ldrsh r0, [r0, r1] + str r0, [sp, #0xc] + mov r0, #0xc0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x24] + str r0, [sp, #0x14] + ldrb r1, [r4, #0x9] + ldrb r2, [r4, #0xa] + ldrb r3, [r4, #0x8] + add r0, r7, #0x0 + bl sub_0200F67C + ldrb r0, [r4, #0x8] + cmp r0, #0x0 + bne _02010524 + ldr r3, [r5, #0x24] + add r0, r7, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl sub_0200F6E4 + b _02010530 +_02010524: + ldr r3, [r5, #0x24] + add r0, r7, #0x0 + mov r1, #0x2 + add r2, r6, #0x0 + bl sub_0200F6E4 +_02010530: + ldr r0, [sp, #0x44] + ldr r2, _0201054C ; =sub_0200F330 + str r0, [sp, #0x0] + ldr r0, [r5, #0x2c] + add r1, r5, #0x0 + add r3, r6, #0x0 + bl sub_0200E6CC + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 +_02010544: .word sub_0200F5F8 + 1 +_02010548: .word 0x000003FF +_0201054C: .word sub_0200F330 + 1 + + thumb_func_start sub_02010550 +sub_02010550: ; 0x02010550 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x20] + add r2, r1, #0x1 + str r2, [r4, #0x20] + ldr r1, [r4, #0x1c] + cmp r2, r1 + blt _02010594 + mov r1, #0x0 + str r1, [r4, #0x20] + ldr r1, [r4, #0x18] + sub r1, r1, #0x1 + cmp r1, #0x0 + ble _02010586 + str r1, [r4, #0x18] + ldr r2, [r4, #0x10] + ldr r1, [r4, #0x14] + add r1, r2, r1 + str r1, [r4, #0x10] + bl sub_020105A0 + ldr r0, _02010598 ; =sub_0200F5F8 + ldr r2, _0201059C ; =0x000003FF + add r1, r4, #0x0 + bl sub_0200CA98 + b _02010594 +_02010586: + ldr r0, [r4, #0x2c] + ldr r1, [r4, #0x8] + ldr r2, [r4, #0x30] + bl sub_0200E6F8 + mov r0, #0x1 + pop {r4, pc} +_02010594: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_02010598: .word sub_0200F5F8 + 1 +_0201059C: .word 0x000003FF + + thumb_func_start sub_020105A0 +sub_020105A0: ; 0x020105A0 + push {r4-r7, lr} + sub sp, #0x1fc + sub sp, #0x110 + add r4, r0, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + str r0, [sp, #0x0] + ldr r0, [r4, #0x10] + ldr r2, [r4, #0xc] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02010680 ; =0x020FFA38 + asr r3, r2, #0x1f + ldrsh r0, [r0, r1] + asr r1, r0, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + asr r7, r1, #0xc + lsl r0, r7, #0x1 + mov r1, #0x15 + blx sub_020EBC80 + add r0, r0, #0x1 + lsl r0, r0, #0x1 + mov r1, #0xb4 + sub r2, r1, r0 + ldr r0, _02010684 ; =0x0000FFFF + add r1, #0xb4 + mul r0, r2 + blx sub_020EBC80 + lsr r1, r0, #0x1f + add r1, r0, r1 + asr r4, r1, #0x1 + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0x8 + bl sub_0200F14C + asr r0, r0, #0xc + str r0, [sp, #0x4] + cmp r0, #0xc0 + blt _0201060C + bl sub_02020C2C +_0201060C: + ldr r2, [sp, #0x4] + add r0, r4, #0x0 + add r1, sp, #0xc + mov r3, #0x0 + bl sub_0200F0F8 + ldr r5, [sp, #0x0] + mov r4, #0x0 +_0201061C: + ldr r0, [sp, #0x4] + add r1, r4, #0x1 + sub r0, r0, r1 + add r6, r7, #0x0 + cmp r0, #0x0 + ble _02010634 + lsl r1, r0, #0x2 + add r0, sp, #0xc + ldr r0, [r0, r1] + cmp r0, r7 + ble _02010634 + add r6, r0, #0x0 +_02010634: + mov r0, #0x80 + neg r1, r6 + bl sub_0200F174 + str r0, [sp, #0x8] + mov r0, #0x80 + add r1, r6, #0x0 + bl sub_0200F174 + ldr r1, [sp, #0x8] + lsl r0, r0, #0x10 + lsl r1, r1, #0x10 + asr r2, r1, #0x10 + mov r1, #0x3 + lsl r1, r1, #0x8 + strh r2, [r5, r1] + asr r1, r0, #0x10 + mov r0, #0x12 + lsl r0, r0, #0x6 + strh r1, [r5, r0] + mov r0, #0xbf + sub r0, r0, r4 + lsl r3, r0, #0x1 + ldr r0, [sp, #0x0] + add r4, r4, #0x1 + add r0, r0, r3 + mov r3, #0x3 + lsl r3, r3, #0x8 + strh r2, [r0, r3] + mov r2, #0x12 + lsl r2, r2, #0x6 + add r5, r5, #0x2 + strh r1, [r0, r2] + cmp r4, #0x60 + blt _0201061C + add sp, #0x1fc + add sp, #0x110 + pop {r4-r7, pc} + .balign 4 +_02010680: .word 0x020FFA38 +_02010684: .word 0x0000FFFF + + thumb_func_start sub_02010688 +sub_02010688: ; 0x02010688 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + add r4, r1, #0x0 + mov r1, #0x30 + bl sub_02016998 + str r0, [r5, #0x14] + ldr r0, [r5, #0x10] + add r1, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + str r0, [sp, #0x4] + ldr r0, [r5, #0x1c] + str r0, [sp, #0x8] + ldr r0, [r5, #0x20] + str r0, [sp, #0xc] + ldr r0, [r5, #0x14] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + bl sub_02010720 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_020106C0 +sub_020106C0: ; 0x020106C0 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + ldr r4, [r5, #0x14] + cmp r0, #0x1 + beq _020106D8 + cmp r0, #0x2 + beq _020106F4 + cmp r0, #0x3 + beq _02010714 + b _02010718 +_020106D8: + add r0, r4, #0x0 + bl sub_02010834 + cmp r0, #0x1 + bne _0201071C + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x24] + ldr r2, [r5, #0x10] + bl sub_0200F62C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0201071C +_020106F4: + add r0, r4, #0x0 + bl sub_02010884 + add r0, r4, #0x0 + bl sub_0200F5C0 + ldr r0, [r5, #0x14] + bl sub_02016A18 + add r0, r6, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r6, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _0201071C +_02010714: + mov r6, #0x1 + b _0201071C +_02010718: + bl sub_02020C2C +_0201071C: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02010720 +sub_02010720: ; 0x02010720 + push {r4-r7, lr} + sub sp, #0x24 + add r5, r1, #0x0 + add r7, r0, #0x0 + str r2, [sp, #0x18] + ldr r0, [sp, #0x38] + ldrb r2, [r5, #0x8] + str r0, [sp, #0x38] + ldr r0, [sp, #0x44] + mov r1, #0x30 + mul r1, r2 + str r3, [sp, #0x1c] + str r0, [sp, #0x44] + bl sub_02016998 + str r0, [r7, #0xc] + cmp r0, #0x0 + bne _02010748 + bl sub_02020C2C +_02010748: + ldrb r0, [r5, #0x8] + str r0, [r7, #0x10] + mov r0, #0x0 + str r0, [sp, #0x20] + ldrb r0, [r5, #0x8] + cmp r0, #0x0 + ble _02010788 + ldr r6, [sp, #0x20] + add r4, r6, #0x0 +_0201075A: + ldr r0, [r5, #0x4] + ldr r2, [r7, #0xc] + add r0, r0, r6 + str r0, [sp, #0x0] + ldr r0, [sp, #0x18] + str r0, [sp, #0x4] + add r0, r2, r4 + ldr r3, [r5, #0x0] + add r1, r0, #0x0 + add r2, r2, r4 + add r1, #0x20 + add r2, #0x10 + add r3, r3, r6 + bl sub_0200F1A8 + ldr r0, [sp, #0x20] + ldrb r1, [r5, #0x8] + add r0, r0, #0x1 + add r6, #0x10 + add r4, #0x30 + str r0, [sp, #0x20] + cmp r0, r1 + blt _0201075A +_02010788: + ldrb r1, [r5, #0x9] + ldr r2, [sp, #0x38] + ldr r3, [sp, #0x44] + add r0, r7, #0x0 + bl sub_0200F55C + ldr r0, [sp, #0x18] + str r0, [r7, #0x14] + ldr r0, [sp, #0x1c] + str r0, [r7, #0x18] + mov r0, #0x0 + str r0, [r7, #0x1c] + ldr r0, [sp, #0x3c] + str r0, [r7, #0x24] + ldr r0, [sp, #0x40] + str r0, [r7, #0x28] + ldr r0, [sp, #0x44] + str r0, [r7, #0x2c] + ldrb r0, [r5, #0xc] + str r0, [r7, #0x20] + add r0, r7, #0x0 + bl sub_02010894 + ldr r0, _02010828 ; =sub_0200F5F8 + ldr r2, _0201082C ; =0x000003FF + add r1, r7, #0x0 + bl sub_0200CA98 + add r0, r7, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + ldr r1, [sp, #0x38] + str r1, [sp, #0x0] + mov r1, #0x3 + lsl r1, r1, #0x8 + ldrsh r1, [r0, r1] + str r1, [sp, #0x4] + mov r1, #0x0 + str r1, [sp, #0x8] + mov r1, #0x12 + lsl r1, r1, #0x6 + ldrsh r0, [r0, r1] + str r0, [sp, #0xc] + mov r0, #0xc0 + str r0, [sp, #0x10] + ldr r0, [r7, #0x20] + str r0, [sp, #0x14] + ldrb r1, [r5, #0xa] + ldrb r2, [r5, #0xb] + ldrb r3, [r5, #0x9] + ldr r0, [sp, #0x3c] + bl sub_0200F67C + ldrb r0, [r5, #0x9] + cmp r0, #0x0 + ldr r0, [r7, #0x24] + bne _02010808 + ldr r2, [sp, #0x38] + ldr r3, [r7, #0x20] + mov r1, #0x1 + bl sub_0200F6E4 + b _02010812 +_02010808: + ldr r2, [sp, #0x38] + ldr r3, [r7, #0x20] + mov r1, #0x2 + bl sub_0200F6E4 +_02010812: + ldr r0, [sp, #0x44] + ldr r2, _02010830 ; =sub_0200F330 + str r0, [sp, #0x0] + ldr r0, [r7, #0x28] + ldr r3, [sp, #0x38] + add r1, r7, #0x0 + bl sub_0200E6CC + add sp, #0x24 + pop {r4-r7, pc} + nop +_02010828: .word sub_0200F5F8 + 1 +_0201082C: .word 0x000003FF +_02010830: .word sub_0200F330 + 1 + + thumb_func_start sub_02010834 +sub_02010834: ; 0x02010834 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x1c] + add r2, r1, #0x1 + str r2, [r4, #0x1c] + ldr r1, [r4, #0x18] + cmp r2, r1 + blt _02010876 + mov r1, #0x0 + str r1, [r4, #0x1c] + ldr r1, [r4, #0x14] + sub r1, r1, #0x1 + cmp r1, #0x0 + ble _02010868 + str r1, [r4, #0x14] + bl sub_02010920 + add r0, r4, #0x0 + bl sub_02010894 + ldr r0, _0201087C ; =sub_0200F5F8 + ldr r2, _02010880 ; =0x000003FF + add r1, r4, #0x0 + bl sub_0200CA98 + b _02010876 +_02010868: + ldr r0, [r4, #0x28] + ldr r1, [r4, #0x8] + ldr r2, [r4, #0x2c] + bl sub_0200E6F8 + mov r0, #0x1 + pop {r4, pc} +_02010876: + mov r0, #0x0 + pop {r4, pc} + nop +_0201087C: .word sub_0200F5F8 + 1 +_02010880: .word 0x000003FF + + thumb_func_start sub_02010884 +sub_02010884: ; 0x02010884 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_02010894 +sub_02010894: ; 0x02010894 + push {r4-r6, lr} + mov r1, #0x0 + add r6, r0, #0x0 + bl sub_0200F5D8 + mov r2, #0x3 + lsl r2, r2, #0x8 + add r0, r0, r2 + mov r1, #0x0 + blx sub_020DF4A4 + ldr r0, [r6, #0x10] + sub r4, r0, #0x1 + bmi _020108C6 + mov r0, #0x30 + add r5, r4, #0x0 + mul r5, r0 +_020108B6: + ldr r1, [r6, #0xc] + add r0, r6, #0x0 + add r1, r1, r5 + bl sub_020108C8 + sub r5, #0x30 + sub r4, r4, #0x1 + bpl _020108B6 +_020108C6: + pop {r4-r6, pc} + + thumb_func_start sub_020108C8 +sub_020108C8: ; 0x020108C8 + push {r4-r6, lr} + add r4, r1, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + ldr r2, [r4, #0x0] + ldr r3, [r4, #0x8] + asr r1, r2, #0x6 + lsr r1, r1, #0x19 + add r1, r2, r1 + asr r2, r1, #0x7 + asr r1, r3, #0x6 + ldr r5, [r4, #0xc] + lsr r1, r1, #0x19 + add r1, r3, r1 + asr r3, r5, #0x6 + lsr r3, r3, #0x19 + add r3, r5, r3 + ldr r4, [r4, #0x4] + asr r5, r3, #0x7 + asr r3, r4, #0x6 + lsr r3, r3, #0x19 + add r3, r4, r3 + asr r3, r3, #0x7 + asr r1, r1, #0x7 + cmp r3, r5 + bge _0201091E + lsl r4, r3, #0x1 + lsl r1, r1, #0x10 + add r4, r0, r4 + lsl r0, r2, #0x10 + asr r6, r1, #0x10 + mov r1, #0x3 + mov r2, #0x12 + asr r0, r0, #0x10 + lsl r1, r1, #0x8 + lsl r2, r2, #0x6 +_02010912: + strh r0, [r4, r1] + strh r6, [r4, r2] + add r3, r3, #0x1 + add r4, r4, #0x2 + cmp r3, r5 + blt _02010912 +_0201091E: + pop {r4-r6, pc} + + thumb_func_start sub_02010920 +sub_02010920: ; 0x02010920 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x10] + mov r6, #0x0 + cmp r0, #0x0 + ble _02010944 + add r4, r6, #0x0 +_0201092E: + ldr r1, [r5, #0xc] + add r0, r1, r4 + add r1, r1, r4 + add r1, #0x10 + bl sub_0200F184 + ldr r0, [r5, #0x10] + add r6, r6, #0x1 + add r4, #0x30 + cmp r6, r0 + blt _0201092E +_02010944: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02010948 +sub_02010948: ; 0x02010948 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + add r4, r1, #0x0 + mov r1, #0x38 + bl sub_02016998 + str r0, [r5, #0x14] + mov r1, #0x0 + mov r2, #0x38 + blx sub_020DF4A4 + ldr r0, [r5, #0x10] + add r1, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + str r0, [sp, #0x4] + ldr r0, [r5, #0x1c] + str r0, [sp, #0x8] + ldr r0, [r5, #0x20] + str r0, [sp, #0xc] + ldr r0, [r5, #0x14] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + bl sub_020109E8 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_02010988 +sub_02010988: ; 0x02010988 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + ldr r4, [r5, #0x14] + cmp r0, #0x1 + beq _020109A0 + cmp r0, #0x2 + beq _020109BC + cmp r0, #0x3 + beq _020109DC + b _020109E0 +_020109A0: + add r0, r4, #0x0 + bl sub_02010AE4 + cmp r0, #0x1 + bne _020109E4 + ldr r0, [r4, #0x28] + ldr r1, [r4, #0x30] + ldr r2, [r5, #0x10] + bl sub_0200F62C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _020109E4 +_020109BC: + add r0, r4, #0x0 + bl sub_02010B3C + add r0, r4, #0x0 + bl sub_0200F5C0 + ldr r0, [r5, #0x14] + bl sub_02016A18 + add r0, r6, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r6, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _020109E4 +_020109DC: + mov r6, #0x1 + b _020109E4 +_020109E0: + bl sub_02020C2C +_020109E4: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020109E8 +sub_020109E8: ; 0x020109E8 + push {r3-r7, lr} + sub sp, #0x28 + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r1, #0x0 + str r1, [r5, #0xc] + ldr r1, [r4, #0x0] + str r2, [sp, #0x18] + str r1, [r5, #0x10] + str r3, [sp, #0x1c] + ldr r2, [r4, #0x4] + ldr r1, [r4, #0x0] + ldr r6, [sp, #0x40] + sub r1, r2, r1 + str r1, [r5, #0x14] + ldr r3, [sp, #0x4c] + mov r1, #0x2 + add r2, r6, #0x0 + ldr r7, [sp, #0x44] + bl sub_0200F55C + ldr r0, [sp, #0x18] + mov r1, #0x0 + str r0, [r5, #0x18] + ldr r0, [sp, #0x1c] + str r1, [r5, #0x1c] + str r0, [r5, #0x20] + str r1, [r5, #0x24] + ldr r0, [sp, #0x48] + str r7, [r5, #0x30] + str r0, [r5, #0x34] + ldr r0, [sp, #0x4c] + str r0, [r5, #0x2c] + ldrb r0, [r4, #0xa] + str r0, [r5, #0x28] + add r0, r5, #0x0 + ldr r1, [r5, #0x1c] + ldr r2, [r5, #0x18] + add r0, #0xc + bl sub_02010C64 + add r0, r5, #0x0 + bl sub_02010B40 + ldr r0, _02010AD8 ; =sub_0200F5F8 + ldr r2, _02010ADC ; =0x000003FF + add r1, r5, #0x0 + bl sub_0200CA98 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + str r0, [sp, #0x20] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200F5D8 + str r0, [sp, #0x24] + mov r1, #0x3 + ldr r0, [sp, #0x20] + str r6, [sp, #0x0] + lsl r1, r1, #0x8 + ldrsh r0, [r0, r1] + mov r1, #0x12 + mov r3, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x20] + str r3, [sp, #0x8] + lsl r1, r1, #0x6 + ldrsh r0, [r0, r1] + str r0, [sp, #0xc] + mov r0, #0xc0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + str r0, [sp, #0x14] + ldrb r1, [r4, #0x8] + ldrb r2, [r4, #0x9] + add r0, r7, #0x0 + bl sub_0200F67C + mov r1, #0x3 + ldr r0, [sp, #0x24] + str r6, [sp, #0x0] + lsl r1, r1, #0x8 + ldrsh r0, [r0, r1] + mov r1, #0x12 + lsl r1, r1, #0x6 + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x24] + mov r3, #0x1 + ldrsh r0, [r0, r1] + str r0, [sp, #0xc] + mov r0, #0xc0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + str r0, [sp, #0x14] + ldrb r1, [r4, #0x8] + ldrb r2, [r4, #0x9] + add r0, r7, #0x0 + bl sub_0200F67C + ldr r3, [r5, #0x28] + add r0, r7, #0x0 + mov r1, #0x3 + add r2, r6, #0x0 + bl sub_0200F6E4 + ldr r0, [sp, #0x4c] + ldr r2, _02010AE0 ; =sub_0200F330 + str r0, [sp, #0x0] + ldr r0, [r5, #0x34] + add r1, r5, #0x0 + add r3, r6, #0x0 + bl sub_0200E6CC + add sp, #0x28 + pop {r3-r7, pc} + .balign 4 +_02010AD8: .word sub_0200F5F8 + 1 +_02010ADC: .word 0x000003FF +_02010AE0: .word sub_0200F330 + 1 + + thumb_func_start sub_02010AE4 +sub_02010AE4: ; 0x02010AE4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x24] + add r1, r0, #0x1 + str r1, [r4, #0x24] + ldr r0, [r4, #0x20] + cmp r1, r0 + blt _02010B2E + mov r0, #0x0 + str r0, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r1, r0, #0x1 + ldr r0, [r4, #0x18] + cmp r1, r0 + bgt _02010B20 + str r1, [r4, #0x1c] + add r0, r4, #0x0 + ldr r2, [r4, #0x18] + add r0, #0xc + bl sub_02010C64 + add r0, r4, #0x0 + bl sub_02010B40 + ldr r0, _02010B34 ; =sub_0200F5F8 + ldr r2, _02010B38 ; =0x000003FF + add r1, r4, #0x0 + bl sub_0200CA98 + b _02010B2E +_02010B20: + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x8] + ldr r2, [r4, #0x2c] + bl sub_0200E6F8 + mov r0, #0x1 + pop {r4, pc} +_02010B2E: + mov r0, #0x0 + pop {r4, pc} + nop +_02010B34: .word sub_0200F5F8 + 1 +_02010B38: .word 0x000003FF + + thumb_func_start sub_02010B3C +sub_02010B3C: ; 0x02010B3C + bx lr + .balign 4 + + thumb_func_start sub_02010B40 +sub_02010B40: ; 0x02010B40 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + ldr r0, [r0, #0xc] + ldr r1, _02010C60 ; =0x00003FFF + blx sub_020EBC80 + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + mov r1, #0x0 + bl sub_0200F5D8 + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + mov r1, #0x1 + bl sub_0200F5D8 + add r4, r0, #0x0 + mov r6, #0x0 + add r5, r4, #0x0 +_02010B6C: + ldr r0, [sp, #0x0] + ldr r1, [r0, #0xc] + ldr r0, _02010C60 ; =0x00003FFF + cmp r1, r0 + bge _02010BB0 + mov r1, #0x60 + ldr r0, [sp, #0x4] + sub r1, r1, r6 + bl sub_0200F0D0 + cmp r0, #0x7f + ble _02010B86 + mov r0, #0x7f +_02010B86: + mov r1, #0xbf + sub r1, r1, r6 + lsl r1, r1, #0x1 + add r3, r7, r1 + mov r1, #0x80 + sub r2, r1, r0 + mov r1, #0x3 + lsl r1, r1, #0x8 + strh r2, [r3, r1] + mov r1, #0x12 + mov r2, #0x80 + lsl r1, r1, #0x6 + strh r2, [r3, r1] + mov r1, #0x3 + lsl r1, r1, #0x8 + strh r2, [r5, r1] + mov r1, #0x12 + add r0, #0x80 + lsl r1, r1, #0x6 + strh r0, [r5, r1] + b _02010BD8 +_02010BB0: + mov r0, #0xbf + sub r0, r0, r6 + lsl r0, r0, #0x1 + mov r1, #0x3 + add r0, r7, r0 + mov r2, #0x0 + lsl r1, r1, #0x8 + strh r2, [r0, r1] + mov r1, #0x12 + mov r2, #0x80 + lsl r1, r1, #0x6 + strh r2, [r0, r1] + mov r0, #0x3 + add r1, r2, #0x0 + lsl r0, r0, #0x8 + strh r1, [r5, r0] + mov r0, #0x12 + mov r1, #0xff + lsl r0, r0, #0x6 + strh r1, [r5, r0] +_02010BD8: + add r6, r6, #0x1 + add r5, r5, #0x2 + cmp r6, #0x60 + blt _02010B6C + ldr r1, _02010C60 ; =0x00003FFF + ldr r0, [sp, #0x4] + mov r5, #0x60 + add r4, #0xc0 + sub r6, r1, r0 +_02010BEA: + ldr r0, [sp, #0x0] + ldr r1, [r0, #0xc] + ldr r0, _02010C60 ; =0x00003FFF + cmp r1, r0 + bge _02010C1A + mov r0, #0xbf + sub r0, r0, r5 + lsl r0, r0, #0x1 + mov r1, #0x3 + add r0, r7, r0 + mov r2, #0x80 + lsl r1, r1, #0x8 + strh r2, [r0, r1] + mov r1, #0x12 + lsl r1, r1, #0x6 + strh r2, [r0, r1] + mov r0, #0x3 + add r1, r2, #0x0 + lsl r0, r0, #0x8 + strh r1, [r4, r0] + mov r0, #0x12 + lsl r0, r0, #0x6 + strh r1, [r4, r0] + b _02010C54 +_02010C1A: + add r1, r5, #0x0 + add r0, r6, #0x0 + sub r1, #0x60 + bl sub_0200F0D0 + add r1, r0, #0x0 + cmp r1, #0x7f + ble _02010C2C + mov r1, #0x7f +_02010C2C: + mov r0, #0xbf + sub r0, r0, r5 + lsl r0, r0, #0x1 + mov r2, #0x3 + add r0, r7, r0 + mov r3, #0x0 + lsl r2, r2, #0x8 + strh r3, [r0, r2] + mov r2, #0x80 + sub r3, r2, r1 + mov r2, #0x12 + lsl r2, r2, #0x6 + strh r3, [r0, r2] + mov r0, #0x3 + add r1, #0x80 + lsl r0, r0, #0x8 + strh r1, [r4, r0] + mov r1, #0xff + add r0, r2, #0x0 + strh r1, [r4, r0] +_02010C54: + add r5, r5, #0x1 + add r4, r4, #0x2 + cmp r5, #0xc0 + blt _02010BEA + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02010C60: .word 0x00003FFF + + thumb_func_start sub_02010C64 +sub_02010C64: ; 0x02010C64 + push {r4, lr} + add r4, r0, #0x0 + ldr r3, [r4, #0x8] + add r0, r3, #0x0 + mul r0, r1 + add r1, r2, #0x0 + blx sub_020EBC80 + ldr r1, [r4, #0x4] + add r0, r0, r1 + str r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_02010C7C +sub_02010C7C: ; 0x02010C7C + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + add r4, r1, #0x0 + mov r1, #0x38 + bl sub_02016998 + str r0, [r5, #0x14] + mov r1, #0x0 + mov r2, #0x38 + blx sub_020DF4A4 + ldr r0, [r5, #0x10] + add r1, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + str r0, [sp, #0x4] + ldr r0, [r5, #0x1c] + str r0, [sp, #0x8] + ldr r0, [r5, #0x20] + str r0, [sp, #0xc] + ldr r0, [r5, #0x14] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + bl sub_02010D1C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_02010CBC +sub_02010CBC: ; 0x02010CBC + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + ldr r4, [r5, #0x14] + cmp r0, #0x1 + beq _02010CD4 + cmp r0, #0x2 + beq _02010CF0 + cmp r0, #0x3 + beq _02010D10 + b _02010D14 +_02010CD4: + add r0, r4, #0x0 + bl sub_02010DEC + cmp r0, #0x1 + bne _02010D18 + ldr r0, [r4, #0x28] + ldr r1, [r4, #0x30] + ldr r2, [r5, #0x10] + bl sub_0200F62C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _02010D18 +_02010CF0: + add r0, r4, #0x0 + bl sub_02010E44 + add r0, r4, #0x0 + bl sub_0200F5C0 + ldr r0, [r5, #0x14] + bl sub_02016A18 + add r0, r6, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r6, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _02010D18 +_02010D10: + mov r6, #0x1 + b _02010D18 +_02010D14: + bl sub_02020C2C +_02010D18: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02010D1C +sub_02010D1C: ; 0x02010D1C + push {r3-r7, lr} + sub sp, #0x20 + add r4, r1, #0x0 + ldr r1, [r4, #0x0] + add r5, r0, #0x0 + str r1, [r5, #0xc] + ldr r1, [r4, #0x0] + str r3, [sp, #0x1c] + str r1, [r5, #0x10] + str r2, [sp, #0x18] + ldr r2, [r4, #0x4] + ldr r1, [r4, #0x0] + ldr r6, [sp, #0x38] + sub r1, r2, r1 + str r1, [r5, #0x14] + ldr r3, [sp, #0x44] + mov r1, #0x2 + add r2, r6, #0x0 + ldr r7, [sp, #0x3c] + bl sub_0200F55C + ldr r0, [sp, #0x18] + mov r1, #0x0 + str r0, [r5, #0x18] + ldr r0, [sp, #0x1c] + str r1, [r5, #0x1c] + str r0, [r5, #0x20] + str r1, [r5, #0x24] + ldr r0, [sp, #0x40] + str r7, [r5, #0x30] + str r0, [r5, #0x34] + ldr r0, [sp, #0x44] + str r0, [r5, #0x2c] + ldrb r0, [r4, #0xa] + str r0, [r5, #0x28] + add r0, r5, #0x0 + bl sub_02010E48 + ldr r0, _02010DE0 ; =sub_0200F5F8 + ldr r2, _02010DE4 ; =0x000003FF + add r1, r5, #0x0 + bl sub_0200CA98 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0200F5D8 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200F5D8 + str r6, [sp, #0x0] + mov r3, #0x0 + str r3, [sp, #0x4] + str r3, [sp, #0x8] + mov r0, #0xff + str r0, [sp, #0xc] + mov r0, #0xc0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + str r0, [sp, #0x14] + ldrb r1, [r4, #0x8] + ldrb r2, [r4, #0x9] + add r0, r7, #0x0 + bl sub_0200F67C + str r6, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0xff + str r0, [sp, #0xc] + mov r0, #0xc0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + mov r3, #0x1 + str r0, [sp, #0x14] + ldrb r1, [r4, #0x8] + ldrb r2, [r4, #0x9] + add r0, r7, #0x0 + bl sub_0200F67C + ldr r3, [r5, #0x28] + add r0, r7, #0x0 + mov r1, #0x3 + add r2, r6, #0x0 + bl sub_0200F6E4 + ldr r0, [sp, #0x44] + ldr r2, _02010DE8 ; =sub_0200F330 + str r0, [sp, #0x0] + ldr r0, [r5, #0x34] + add r1, r5, #0x0 + add r3, r6, #0x0 + bl sub_0200E6CC + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 +_02010DE0: .word sub_0200F5F8 + 1 +_02010DE4: .word 0x000003FF +_02010DE8: .word sub_0200F330 + 1 + + thumb_func_start sub_02010DEC +sub_02010DEC: ; 0x02010DEC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x24] + add r1, r0, #0x1 + str r1, [r4, #0x24] + ldr r0, [r4, #0x20] + cmp r1, r0 + blt _02010E36 + mov r0, #0x0 + str r0, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r1, r0, #0x1 + ldr r0, [r4, #0x18] + cmp r1, r0 + bgt _02010E28 + str r1, [r4, #0x1c] + add r0, r4, #0x0 + ldr r2, [r4, #0x18] + add r0, #0xc + bl sub_02010F14 + add r0, r4, #0x0 + bl sub_02010E48 + ldr r0, _02010E3C ; =sub_0200F5F8 + ldr r2, _02010E40 ; =0x000003FF + add r1, r4, #0x0 + bl sub_0200CA98 + b _02010E36 +_02010E28: + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x8] + ldr r2, [r4, #0x2c] + bl sub_0200E6F8 + mov r0, #0x1 + pop {r4, pc} +_02010E36: + mov r0, #0x0 + pop {r4, pc} + nop +_02010E3C: .word sub_0200F5F8 + 1 +_02010E40: .word 0x000003FF + + thumb_func_start sub_02010E44 +sub_02010E44: ; 0x02010E44 + bx lr + .balign 4 + + thumb_func_start sub_02010E48 +sub_02010E48: ; 0x02010E48 + push {r4-r7, lr} + sub sp, #0x1c + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + str r1, [sp, #0x8] + mov r1, #0x0 + bl sub_0200F5D8 + str r0, [sp, #0x10] + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0200F5D8 + str r0, [sp, #0xc] + add r5, r0, #0x0 + ldr r1, _02010F10 ; =0x00003FFF + ldr r0, [sp, #0x8] + ldr r6, [sp, #0x10] + sub r0, r1, r0 + mov r7, #0x0 + str r0, [sp, #0x4] +_02010E76: + mov r0, #0x60 + sub r0, r0, r7 + str r0, [sp, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x0] + bl sub_0200F0D0 + add r4, r0, #0x0 + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x0] + bl sub_0200F0D0 + cmp r4, #0x7f + ble _02010E94 + mov r4, #0x7f +_02010E94: + cmp r0, #0x7f + ble _02010E9A + mov r0, #0x7f +_02010E9A: + mov r1, #0x80 + sub r1, r1, r0 + lsl r1, r1, #0x10 + mov r2, #0x3 + asr r1, r1, #0x10 + lsl r2, r2, #0x8 + str r1, [sp, #0x14] + strh r1, [r6, r2] + mov r1, #0x80 + sub r1, r1, r4 + lsl r1, r1, #0x10 + asr r2, r1, #0x10 + mov r1, #0x12 + lsl r1, r1, #0x6 + strh r2, [r6, r1] + mov r1, #0xbf + sub r1, r1, r7 + mov r12, r2 + lsl r1, r1, #0x1 + ldr r2, [sp, #0x10] + add r0, #0x80 + add r3, r2, r1 + str r1, [sp, #0x18] + mov r2, #0x3 + ldr r1, [sp, #0x14] + lsl r2, r2, #0x8 + strh r1, [r3, r2] + mov r1, #0x12 + mov r2, r12 + lsl r1, r1, #0x6 + strh r2, [r3, r1] + add r4, #0x80 + lsl r1, r4, #0x10 + asr r2, r1, #0x10 + mov r1, #0x3 + lsl r1, r1, #0x8 + lsl r0, r0, #0x10 + strh r2, [r5, r1] + asr r1, r0, #0x10 + mov r0, #0x12 + lsl r0, r0, #0x6 + strh r1, [r5, r0] + ldr r3, [sp, #0xc] + ldr r0, [sp, #0x18] + add r7, r7, #0x1 + add r0, r3, r0 + mov r3, #0x3 + lsl r3, r3, #0x8 + strh r2, [r0, r3] + mov r2, #0x12 + lsl r2, r2, #0x6 + strh r1, [r0, r2] + add r6, r6, #0x2 + add r5, r5, #0x2 + cmp r7, #0x60 + blt _02010E76 + add sp, #0x1c + pop {r4-r7, pc} + nop +_02010F10: .word 0x00003FFF + + thumb_func_start sub_02010F14 +sub_02010F14: ; 0x02010F14 + push {r4, lr} + add r4, r0, #0x0 + ldr r3, [r4, #0x8] + add r0, r3, #0x0 + mul r0, r1 + add r1, r2, #0x0 + blx sub_020EBC80 + ldr r1, [r4, #0x4] + add r0, r0, r1 + str r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_02010F2C +sub_02010F2C: ; 0x02010F2C + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r1, #0xcd + ldr r0, [r5, #0x20] + lsl r1, r1, #0x2 + bl sub_02016998 + mov r2, #0xcd + str r0, [r5, #0x14] + mov r1, #0x0 + lsl r2, r2, #0x2 + blx sub_020DF4A4 + ldr r0, [r5, #0x10] + add r1, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + str r0, [sp, #0x4] + ldr r0, [r5, #0x1c] + str r0, [sp, #0x8] + ldr r0, [r5, #0x20] + str r0, [sp, #0xc] + ldr r0, [r5, #0x14] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + bl sub_02010FD0 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_02010F70 +sub_02010F70: ; 0x02010F70 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + ldr r4, [r5, #0x14] + cmp r0, #0x1 + beq _02010F88 + cmp r0, #0x2 + beq _02010FAA + cmp r0, #0x3 + beq _02010FC4 + b _02010FC8 +_02010F88: + add r0, r4, #0x0 + bl sub_020110BC + cmp r0, #0x1 + bne _02010FCC + mov r1, #0xc9 + lsl r1, r1, #0x2 + ldr r0, [r4, r1] + add r1, #0x8 + ldr r1, [r4, r1] + ldr r2, [r5, #0x10] + bl sub_0200F62C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _02010FCC +_02010FAA: + add r0, r4, #0x0 + bl sub_0201111C + ldr r0, [r5, #0x14] + bl sub_02016A18 + add r0, r6, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r6, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _02010FCC +_02010FC4: + mov r6, #0x1 + b _02010FCC +_02010FC8: + bl sub_02020C2C +_02010FCC: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02010FD0 +sub_02010FD0: ; 0x02010FD0 + push {r3-r7, lr} + sub sp, #0x20 + ldr r7, [sp, #0x38] + str r3, [sp, #0x1c] + mov r3, #0x0 + add r4, r1, #0x0 + str r2, [sp, #0x18] + str r3, [sp, #0x0] + add r1, r7, #0x0 + mov r2, #0x1 + add r5, r0, #0x0 + ldr r6, [sp, #0x3c] + bl sub_0200F6FC + ldrb r0, [r4, #0x5] + cmp r0, #0x0 + bne _0201100A + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0xc0 + blx sub_020DF4A4 + add r0, r5, #0x0 + add r0, #0xc0 + mov r1, #0x1 + mov r2, #0xc0 + blx sub_020DF4A4 + b _02011020 +_0201100A: + add r0, r5, #0x0 + mov r1, #0x0 + mov r2, #0xc0 + blx sub_020DF4A4 + add r0, r5, #0x0 + add r0, #0xc0 + mov r1, #0x0 + mov r2, #0xc0 + blx sub_020DF4A4 +_02011020: + mov r1, #0xc3 + lsl r1, r1, #0x2 + ldr r0, [r4, #0x0] + add r3, r1, #0x0 + str r0, [r5, r1] + ldrb r2, [r4, #0x4] + add r0, r1, #0x4 + add r3, #0x8 + str r2, [r5, r0] + add r0, r1, #0x0 + ldrb r2, [r4, #0x5] + add r0, #0x18 + str r2, [r5, r0] + add r0, r1, #0x0 + ldr r2, [sp, #0x44] + add r0, #0x1c + str r2, [r5, r0] + ldr r0, [sp, #0x18] + str r0, [r5, r3] + add r3, r1, #0x0 + add r3, #0xc + mov r0, #0x0 + str r0, [r5, r3] + add r3, r1, #0x0 + ldr r0, [sp, #0x1c] + add r3, #0x10 + str r0, [r5, r3] + add r3, r1, #0x0 + add r3, #0x14 + mov r0, #0x0 + str r0, [r5, r3] + add r0, r1, #0x0 + add r0, #0x20 + str r6, [r5, r0] + ldr r0, [sp, #0x40] + add r1, #0x24 + str r0, [r5, r1] + add r1, r5, #0x0 + bl sub_0200F758 + ldrb r0, [r4, #0x5] + cmp r0, #0x1 + str r7, [sp, #0x0] + bne _02011090 + mov r3, #0x0 + str r3, [sp, #0x4] + str r3, [sp, #0x8] + str r3, [sp, #0xc] + str r3, [sp, #0x10] + str r0, [sp, #0x14] + add r0, r6, #0x0 + mov r1, #0x20 + mov r2, #0x3f + bl sub_0200F67C + b _020110A6 +_02011090: + mov r3, #0x0 + str r3, [sp, #0x4] + str r3, [sp, #0x8] + str r3, [sp, #0xc] + str r3, [sp, #0x10] + str r0, [sp, #0x14] + add r0, r6, #0x0 + mov r1, #0x3f + mov r2, #0x20 + bl sub_0200F67C +_020110A6: + mov r3, #0xc9 + lsl r3, r3, #0x2 + ldr r3, [r5, r3] + add r0, r6, #0x0 + mov r1, #0x1 + add r2, r7, #0x0 + bl sub_0200F6E4 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020110BC +sub_020110BC: ; 0x020110BC + push {r4, lr} + mov r2, #0x32 + add r4, r0, #0x0 + lsl r2, r2, #0x4 + ldr r1, [r4, r2] + add r1, r1, #0x1 + str r1, [r4, r2] + sub r1, r2, #0x4 + ldr r3, [r4, r2] + ldr r1, [r4, r1] + cmp r3, r1 + blt _02011116 + mov r1, #0x0 + str r1, [r4, r2] + add r1, r2, #0x0 + sub r1, #0x8 + ldr r1, [r4, r1] + add r3, r1, #0x1 + add r1, r2, #0x0 + sub r1, #0xc + ldr r1, [r4, r1] + cmp r3, r1 + bgt _02011102 + add r1, r2, #0x0 + sub r1, #0x8 + ldr r1, [r4, r1] + sub r2, #0x8 + add r1, r1, #0x1 + str r1, [r4, r2] + bl sub_02011120 + add r0, r4, #0x0 + bl sub_0200F740 + b _02011116 +_02011102: + add r0, r2, #0x0 + add r0, #0x10 + add r2, #0x8 + ldr r0, [r4, r0] + ldr r2, [r4, r2] + add r1, r4, #0x0 + bl sub_0200F770 + mov r0, #0x1 + pop {r4, pc} +_02011116: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201111C +sub_0201111C: ; 0x0201111C + bx lr + .balign 4 + + thumb_func_start sub_02011120 +sub_02011120: ; 0x02011120 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x31 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r6, #0x0 + cmp r0, #0x0 + ble _0201115A + mov r7, #0x31 + add r4, r6, #0x0 + lsl r7, r7, #0x4 +_02011136: + mov r0, #0xc3 + lsl r0, r0, #0x2 + mov r2, #0xc6 + mov r3, #0xc5 + ldr r0, [r5, r0] + lsl r2, r2, #0x2 + lsl r3, r3, #0x2 + ldr r2, [r5, r2] + ldr r3, [r5, r3] + add r0, r0, r4 + add r1, r5, #0x0 + bl sub_0201115C + ldr r0, [r5, r7] + add r6, r6, #0x1 + add r4, r4, #0x3 + cmp r6, r0 + blt _02011136 +_0201115A: + pop {r3-r7, pc} + + thumb_func_start sub_0201115C +sub_0201115C: ; 0x0201115C + push {r3-r7, lr} + add r7, r0, #0x0 + ldrb r6, [r7, #0x0] + ldrb r4, [r7, #0x1] + add r5, r1, #0x0 + add r1, r3, #0x0 + sub r0, r4, r6 + mul r0, r2 + blx sub_020EBC80 + add r0, r0, r6 + cmp r6, r4 + bhi _0201117C + add r1, r6, #0x0 + ldrb r6, [r7, #0x2] + b _0201118C +_0201117C: + ldrb r2, [r7, #0x2] + add r1, r4, #0x0 + add r4, r6, #0x0 + cmp r2, #0x0 + bne _0201118A + mov r6, #0x1 + b _0201118C +_0201118A: + mov r6, #0x0 +_0201118C: + cmp r1, r4 + bge _020111AA + mov r2, #0x0 + mov r3, #0x1 +_02011194: + cmp r1, r0 + bne _020111A2 + cmp r6, #0x0 + bne _020111A0 + add r6, r3, #0x0 + b _020111A2 +_020111A0: + add r6, r2, #0x0 +_020111A2: + strb r6, [r5, r1] + add r1, r1, #0x1 + cmp r1, r4 + blt _02011194 +_020111AA: + pop {r3-r7, pc} + + thumb_func_start sub_020111AC +sub_020111AC: ; 0x020111AC + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r1, #0xe2 + ldr r0, [r5, #0x20] + lsl r1, r1, #0x2 + bl sub_02016998 + mov r2, #0xe2 + mov r1, #0x0 + lsl r2, r2, #0x2 + str r0, [r5, #0x14] + blx sub_020DF4A4 + add r1, r4, #0x0 + add r1, #0x23 + ldrb r1, [r1, #0x0] + ldr r0, [r5, #0x14] + cmp r1, #0x0 + ldr r1, [r5, #0x10] + bne _020111F2 + str r1, [sp, #0x0] + ldr r1, [r5, #0x18] + str r1, [sp, #0x4] + ldr r1, [r5, #0x1c] + str r1, [sp, #0x8] + ldr r1, [r5, #0x20] + str r1, [sp, #0xc] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + add r1, r4, #0x0 + bl sub_0201127C + b _0201120A +_020111F2: + str r1, [sp, #0x0] + ldr r1, [r5, #0x18] + str r1, [sp, #0x4] + ldr r1, [r5, #0x1c] + str r1, [sp, #0x8] + ldr r1, [r5, #0x20] + str r1, [sp, #0xc] + ldr r2, [r5, #0x4] + ldr r3, [r5, #0x8] + add r1, r4, #0x0 + bl sub_0201137C +_0201120A: + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_02011214 +sub_02011214: ; 0x02011214 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r1, [r5, #0xc] + mov r4, #0x0 + ldr r0, [r5, #0x14] + cmp r1, #0x1 + beq _0201122C + cmp r1, #0x2 + beq _02011258 + cmp r1, #0x3 + beq _0201126A + b _0201126E +_0201122C: + ldr r1, _02011278 ; =0x00000386 + ldrb r1, [r0, r1] + cmp r1, #0x0 + bne _0201123C + add r1, r5, #0x0 + bl sub_02011308 + b _02011242 +_0201123C: + add r1, r5, #0x0 + bl sub_020113EC +_02011242: + cmp r0, #0x1 + bne _02011272 + ldr r0, [r5, #0x28] + ldr r1, [r5, #0x18] + ldr r2, [r5, #0x10] + bl sub_0200F62C + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _02011272 +_02011258: + bl sub_02016A18 + add r0, r4, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r4, #0x1 + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _02011272 +_0201126A: + mov r4, #0x1 + b _02011272 +_0201126E: + bl sub_02020C2C +_02011272: + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_02011278: .word 0x00000386 + + thumb_func_start sub_0201127C +sub_0201127C: ; 0x0201127C + push {r3-r7, lr} + sub sp, #0x8 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r5, r0, #0x0 + lsl r0, r6, #0xc + ldr r2, [r4, #0x2c] + add r7, r3, #0x0 + asr r1, r0, #0x1f + asr r3, r2, #0x1f + blx sub_020EBC30 + add r2, r0, #0x0 + mov r0, #0x2 + mov r3, #0x0 + lsl r0, r0, #0xa + add r0, r2, r0 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + asr r2, r0, #0xc + mov r0, #0xe1 + sub r1, r6, r2 + lsl r0, r0, #0x2 + strb r1, [r5, r0] + sub r1, r0, #0x4 + str r4, [r5, r1] + add r1, r4, #0x0 + add r1, #0x23 + ldrb r1, [r1, #0x0] + add r0, r0, #0x2 + add r3, r7, #0x0 + strb r1, [r5, r0] + ldr r0, [sp, #0x20] + add r1, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_0200FE20 + add r0, r4, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _020112EA + add r4, #0x23 + ldrb r3, [r4, #0x0] + ldr r0, [sp, #0x24] + ldr r2, [sp, #0x20] + mov r1, #0x1 + bl sub_0200F6E4 + b _020112F8 +_020112EA: + add r4, #0x23 + ldrb r3, [r4, #0x0] + ldr r0, [sp, #0x24] + ldr r2, [sp, #0x20] + mov r1, #0x2 + bl sub_0200F6E4 +_020112F8: + ldr r0, _02011304 ; =0x00000385 + mov r1, #0x0 + strb r1, [r5, r0] + add sp, #0x8 + pop {r3-r7, pc} + nop +_02011304: .word 0x00000385 + + thumb_func_start sub_02011308 +sub_02011308: ; 0x02011308 + push {r4-r6, lr} + sub sp, #0x10 + add r4, r1, #0x0 + ldr r1, _02011378 ; =0x00000385 + add r5, r0, #0x0 + ldrb r1, [r5, r1] + mov r6, #0x0 + cmp r1, #0x0 + beq _02011324 + cmp r1, #0x1 + beq _0201135A + cmp r1, #0x2 + beq _02011370 + b _02011372 +_02011324: + bl sub_0200FE90 + cmp r0, #0x1 + bne _02011372 + ldr r2, _02011378 ; =0x00000385 + ldrb r0, [r5, r2] + sub r1, r2, #0x5 + add r0, r0, #0x1 + strb r0, [r5, r2] + ldr r0, [r4, #0x10] + sub r2, r2, #0x1 + str r0, [sp, #0x0] + ldr r0, [r4, #0x18] + str r0, [sp, #0x4] + ldr r0, [r4, #0x1c] + str r0, [sp, #0x8] + ldr r0, [r4, #0x20] + str r0, [sp, #0xc] + ldr r1, [r5, r1] + add r0, r5, #0x0 + ldrb r2, [r5, r2] + ldr r3, [r4, #0x8] + add r0, #0x4c + add r1, #0x24 + bl sub_02010FD0 + b _02011372 +_0201135A: + add r0, #0x4c + bl sub_020110BC + cmp r0, #0x1 + bne _02011372 + ldr r0, _02011378 ; =0x00000385 + mov r6, #0x1 + ldrb r1, [r5, r0] + add r1, r1, #0x1 + strb r1, [r5, r0] + b _02011372 +_02011370: + mov r6, #0x1 +_02011372: + add r0, r6, #0x0 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_02011378: .word 0x00000385 + + thumb_func_start sub_0201137C +sub_0201137C: ; 0x0201137C + push {r3-r7, lr} + sub sp, #0x10 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r5, r0, #0x0 + lsl r0, r6, #0xc + ldr r2, [r4, #0x2c] + add r7, r3, #0x0 + asr r1, r0, #0x1f + asr r3, r2, #0x1f + blx sub_020EBC30 + add r2, r0, #0x0 + mov r0, #0x2 + mov r3, #0x0 + lsl r0, r0, #0xa + add r0, r2, r0 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + mov r1, #0xe1 + asr r0, r0, #0xc + lsl r1, r1, #0x2 + strb r0, [r5, r1] + ldrb r0, [r5, r1] + sub r2, r6, r0 + sub r0, r1, #0x4 + str r4, [r5, r0] + add r4, #0x23 + add r0, r1, #0x2 + ldrb r3, [r4, #0x0] + sub r1, r1, #0x4 + strb r3, [r5, r0] + ldr r0, [sp, #0x28] + add r3, r7, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + str r0, [sp, #0x4] + ldr r0, [sp, #0x30] + str r0, [sp, #0x8] + ldr r0, [sp, #0x34] + str r0, [sp, #0xc] + ldr r1, [r5, r1] + add r0, r5, #0x0 + add r0, #0x4c + add r1, #0x24 + bl sub_02010FD0 + ldr r0, _020113E8 ; =0x00000385 + mov r1, #0x0 + strb r1, [r5, r0] + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_020113E8: .word 0x00000385 + + thumb_func_start sub_020113EC +sub_020113EC: ; 0x020113EC + push {r4-r6, lr} + sub sp, #0x8 + add r4, r1, #0x0 + ldr r1, _0201147C ; =0x00000385 + add r5, r0, #0x0 + ldrb r1, [r5, r1] + mov r6, #0x0 + cmp r1, #0x0 + beq _02011408 + cmp r1, #0x1 + beq _02011460 + cmp r1, #0x2 + beq _02011474 + b _02011476 +_02011408: + add r0, #0x4c + bl sub_020110BC + cmp r0, #0x1 + bne _02011476 + ldr r2, _0201147C ; =0x00000385 + ldrb r0, [r5, r2] + sub r1, r2, #0x5 + add r0, r0, #0x1 + strb r0, [r5, r2] + ldr r0, [r4, #0x10] + sub r2, r2, #0x1 + str r0, [sp, #0x0] + ldr r0, [r4, #0x18] + str r0, [sp, #0x4] + ldrb r2, [r5, r2] + ldr r1, [r5, r1] + ldr r3, [r4, #0x8] + add r0, r5, #0x0 + bl sub_0200FE20 + mov r0, #0xe + lsl r0, r0, #0x6 + ldr r3, [r5, r0] + add r0, r3, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + ldr r0, [r4, #0x18] + bne _02011452 + add r3, #0x23 + ldrb r3, [r3, #0x0] + ldr r2, [r4, #0x10] + mov r1, #0x1 + bl sub_0200F6E4 + b _02011476 +_02011452: + add r3, #0x23 + ldrb r3, [r3, #0x0] + ldr r2, [r4, #0x10] + mov r1, #0x2 + bl sub_0200F6E4 + b _02011476 +_02011460: + bl sub_0200FE90 + cmp r0, #0x1 + bne _02011476 + ldr r0, _0201147C ; =0x00000385 + mov r6, #0x1 + ldrb r1, [r5, r0] + add r1, r1, #0x1 + strb r1, [r5, r0] + b _02011476 +_02011474: + mov r6, #0x1 +_02011476: + add r0, r6, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_0201147C: .word 0x00000385 + + thumb_func_start sub_02011480 +sub_02011480: ; 0x02011480 + cmp r1, #0x0 + ldr r1, _020114A4 ; =0xFFFF1FFF + bne _02011496 + mov r3, #0x1 + lsl r3, r3, #0x1a + ldr r2, [r3, #0x0] + lsl r0, r0, #0xd + and r1, r2 + orr r0, r1 + str r0, [r3, #0x0] + bx lr +_02011496: + ldr r3, _020114A8 ; =0x04001000 + lsl r0, r0, #0xd + ldr r2, [r3, #0x0] + and r1, r2 + orr r0, r1 + str r0, [r3, #0x0] + bx lr + .balign 4 +_020114A4: .word 0xFFFF1FFF +_020114A8: .word 0x04001000 + + thumb_func_start sub_020114AC +sub_020114AC: ; 0x020114AC + push {r3-r4} + cmp r2, #0x0 + bne _020114EE + cmp r3, #0x0 + bne _020114D2 + ldr r2, _02011528 ; =0x04000048 + ldrh r3, [r2, #0x0] + mov r2, #0x3f + bic r3, r2 + add r2, r3, #0x0 + orr r2, r0 + cmp r1, #0x0 + beq _020114CA + mov r0, #0x20 + orr r2, r0 +_020114CA: + ldr r0, _02011528 ; =0x04000048 + strh r2, [r0, #0x0] + pop {r3-r4} + bx lr +_020114D2: + ldr r2, _0201152C ; =0x04001048 + ldrh r3, [r2, #0x0] + mov r2, #0x3f + bic r3, r2 + add r2, r3, #0x0 + orr r2, r0 + cmp r1, #0x0 + beq _020114E6 + mov r0, #0x20 + orr r2, r0 +_020114E6: + ldr r0, _0201152C ; =0x04001048 + strh r2, [r0, #0x0] + pop {r3-r4} + bx lr +_020114EE: + cmp r3, #0x0 + ldr r2, _02011530 ; =0xFFFFC0FF + bne _0201150E + ldr r4, _02011528 ; =0x04000048 + lsl r0, r0, #0x8 + ldrh r3, [r4, #0x0] + and r2, r3 + orr r2, r0 + cmp r1, #0x0 + beq _02011506 + lsr r0, r4, #0xd + orr r2, r0 +_02011506: + ldr r0, _02011528 ; =0x04000048 + strh r2, [r0, #0x0] + pop {r3-r4} + bx lr +_0201150E: + ldr r4, _0201152C ; =0x04001048 + lsl r0, r0, #0x8 + ldrh r3, [r4, #0x0] + and r2, r3 + orr r2, r0 + cmp r1, #0x0 + beq _02011520 + lsr r0, r4, #0xd + orr r2, r0 +_02011520: + ldr r0, _0201152C ; =0x04001048 + strh r2, [r0, #0x0] + pop {r3-r4} + bx lr + .balign 4 +_02011528: .word 0x04000048 +_0201152C: .word 0x04001048 +_02011530: .word 0xFFFFC0FF + + thumb_func_start sub_02011534 +sub_02011534: ; 0x02011534 + cmp r2, #0x0 + bne _02011552 + ldr r2, _0201156C ; =0x0400004A + ldrh r3, [r2, #0x0] + mov r2, #0x3f + bic r3, r2 + add r2, r3, #0x0 + orr r2, r0 + cmp r1, #0x0 + beq _0201154C + mov r0, #0x20 + orr r2, r0 +_0201154C: + ldr r0, _0201156C ; =0x0400004A + strh r2, [r0, #0x0] + bx lr +_02011552: + ldr r2, _02011570 ; =0x0400104A + ldrh r3, [r2, #0x0] + mov r2, #0x3f + bic r3, r2 + add r2, r3, #0x0 + orr r2, r0 + cmp r1, #0x0 + beq _02011566 + mov r0, #0x20 + orr r2, r0 +_02011566: + ldr r0, _02011570 ; =0x0400104A + strh r2, [r0, #0x0] + bx lr + .balign 4 +_0201156C: .word 0x0400004A +_02011570: .word 0x0400104A + + thumb_func_start sub_02011574 +sub_02011574: ; 0x02011574 + push {r4-r5} + add r4, r2, #0x0 + add r2, r3, #0x0 + ldr r3, [sp, #0x8] + cmp r3, #0x0 + bne _020115D2 + ldr r3, [sp, #0xc] + cmp r3, #0x0 + bne _020115AC + lsl r0, r0, #0x8 + mov r3, #0xff + add r5, r0, #0x0 + lsl r3, r3, #0x8 + lsl r0, r4, #0x18 + and r5, r3 + lsl r1, r1, #0x8 + and r3, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + add r4, r5, #0x0 + orr r4, r0 + ldr r0, _02011624 ; =0x04000040 + orr r1, r3 + strh r4, [r0, #0x0] + strh r1, [r0, #0x4] + pop {r4-r5} + bx lr +_020115AC: + lsl r0, r0, #0x8 + mov r3, #0xff + add r5, r0, #0x0 + lsl r3, r3, #0x8 + lsl r0, r4, #0x18 + and r5, r3 + lsl r1, r1, #0x8 + and r3, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + add r4, r5, #0x0 + orr r4, r0 + ldr r0, _02011628 ; =0x04001040 + orr r1, r3 + strh r4, [r0, #0x0] + strh r1, [r0, #0x4] + pop {r4-r5} + bx lr +_020115D2: + ldr r3, [sp, #0xc] + cmp r3, #0x0 + bne _020115FE + lsl r0, r0, #0x8 + mov r3, #0xff + add r5, r0, #0x0 + lsl r3, r3, #0x8 + lsl r0, r4, #0x18 + and r5, r3 + lsl r1, r1, #0x8 + and r3, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + add r4, r5, #0x0 + orr r4, r0 + ldr r0, _0201162C ; =0x04000042 + orr r1, r3 + strh r4, [r0, #0x0] + strh r1, [r0, #0x4] + pop {r4-r5} + bx lr +_020115FE: + lsl r0, r0, #0x8 + mov r3, #0xff + add r5, r0, #0x0 + lsl r3, r3, #0x8 + lsl r0, r4, #0x18 + and r5, r3 + lsl r1, r1, #0x8 + and r3, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + add r4, r5, #0x0 + orr r4, r0 + ldr r0, _02011630 ; =0x04001042 + orr r1, r3 + strh r4, [r0, #0x0] + strh r1, [r0, #0x4] + pop {r4-r5} + bx lr + .balign 4 +_02011624: .word 0x04000040 +_02011628: .word 0x04001040 +_0201162C: .word 0x04000042 +_02011630: .word 0x04001042 + + thumb_func_start sub_02011634 +sub_02011634: ; 0x02011634 + push {r4, lr} + lsl r3, r2, #0x3 + add r4, r0, r3 + str r1, [r0, r3] + str r2, [r4, #0x4] + ldr r0, _0201164C ; =sub_020116CC + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_0200CA98 + pop {r4, pc} + nop +_0201164C: .word sub_020116CC + 1 + + thumb_func_start sub_02011650 +sub_02011650: ; 0x02011650 + push {r4-r6, lr} + ldr r5, [sp, #0x10] + add r0, #0x10 + lsl r4, r5, #0x5 + add r6, r0, r4 + lsl r0, r3, #0x4 + add r4, r6, r0 + str r1, [r6, r0] + str r2, [r4, #0x4] + str r3, [r4, #0x8] + ldr r0, _02011674 ; =sub_020116E0 + add r1, r4, #0x0 + mov r2, #0x1 + str r5, [r4, #0xc] + bl sub_0200CA98 + pop {r4-r6, pc} + nop +_02011674: .word sub_020116E0 + 1 + + thumb_func_start sub_02011678 +sub_02011678: ; 0x02011678 + push {r3-r5, lr} + mov r4, #0xc + add r0, #0x68 + mul r4, r3 + add r5, r0, r4 + str r1, [r0, r4] + str r2, [r5, #0x4] + ldr r0, _02011694 ; =sub_020116FC + add r1, r5, #0x0 + mov r2, #0x1 + str r3, [r5, #0x8] + bl sub_0200CA98 + pop {r3-r5, pc} + .balign 4 +_02011694: .word sub_020116FC + 1 + + thumb_func_start sub_02011698 +sub_02011698: ; 0x02011698 + push {r3-r7, lr} + ldr r5, [sp, #0x20] + add r7, r1, #0x0 + add r0, #0x80 + lsl r1, r5, #0x5 + add r6, r0, r1 + add r4, r2, #0x0 + ldr r0, [sp, #0x1c] + add r2, r3, #0x0 + lsl r3, r0, #0x4 + add r1, r6, r3 + strh r7, [r6, r3] + strh r4, [r1, #0x2] + strh r2, [r1, #0x4] + ldr r2, [sp, #0x18] + strh r2, [r1, #0x6] + str r0, [r1, #0x8] + ldr r0, _020116C8 ; =sub_02011714 + mov r2, #0x1 + str r5, [r1, #0xc] + bl sub_0200CA98 + pop {r3-r7, pc} + nop +_020116C8: .word sub_02011714 + 1 + + thumb_func_start sub_020116CC +sub_020116CC: ; 0x020116CC + push {r4, lr} + add r4, r0, #0x0 + ldmia r1!, {r0-r1} + bl sub_02011480 + add r0, r4, #0x0 + bl sub_0200CAB4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020116E0 +sub_020116E0: ; 0x020116E0 + push {r4, lr} + add r3, r1, #0x0 + add r4, r0, #0x0 + ldr r0, [r3, #0x0] + ldr r1, [r3, #0x4] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl sub_020114AC + add r0, r4, #0x0 + bl sub_0200CAB4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020116FC +sub_020116FC: ; 0x020116FC + push {r4, lr} + add r2, r1, #0x0 + add r4, r0, #0x0 + ldr r0, [r2, #0x0] + ldr r1, [r2, #0x4] + ldr r2, [r2, #0x8] + bl sub_02011534 + add r0, r4, #0x0 + bl sub_0200CAB4 + pop {r4, pc} + + thumb_func_start sub_02011714 +sub_02011714: ; 0x02011714 + push {r3-r5, lr} + sub sp, #0x8 + add r3, r1, #0x0 + add r4, r0, #0x0 + ldr r0, [r3, #0x8] + mov r1, #0x2 + str r0, [sp, #0x0] + ldr r0, [r3, #0xc] + mov r2, #0x4 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r5, #0x6 + ldrsh r0, [r3, r0] + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldrsh r3, [r3, r5] + bl sub_02011574 + add r0, r4, #0x0 + bl sub_0200CAB4 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02011744 +sub_02011744: ; 0x02011744 + push {r4-r7, lr} + sub sp, #0xc + add r7, r1, #0x0 + str r0, [sp, #0x4] + add r0, r7, #0x0 + mov r1, #0x68 + bl sub_02016998 + str r0, [sp, #0x8] + cmp r0, #0x0 + bne _0201175E + bl sub_02020C2C +_0201175E: + ldr r4, [sp, #0x8] + ldr r5, [sp, #0x8] + mov r6, #0x0 + add r4, #0x30 +_02011766: + mov r0, #0x23 + add r1, r6, #0x0 + mov r2, #0x0 + add r3, r4, #0x0 + str r7, [sp, #0x0] + bl sub_02006C30 + str r0, [r5, #0x0] + cmp r0, #0x0 + bne _0201177E + bl sub_02020C2C +_0201177E: + add r6, r6, #0x1 + add r4, r4, #0x4 + add r5, r5, #0x4 + cmp r6, #0xc + blt _02011766 + ldr r0, [sp, #0x4] + mov r1, #0x14 + add r4, r0, #0x0 + mul r4, r1 + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_02016998 + ldr r1, [sp, #0x8] + cmp r0, #0x0 + str r0, [r1, #0x60] + bne _020117A4 + bl sub_02020C2C +_020117A4: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + add r2, r4, #0x0 + str r1, [r0, #0x64] + ldr r0, [r0, #0x60] + mov r1, #0x0 + blx sub_020DF4A4 + ldr r0, [sp, #0x8] + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_020117BC +sub_020117BC: ; 0x020117BC + push {r4-r6, lr} + add r6, r0, #0x0 + bne _020117C6 + bl sub_02020C2C +_020117C6: + mov r4, #0x0 + add r5, r6, #0x0 +_020117CA: + ldr r0, [r5, #0x0] + bl sub_02016A18 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0xc + blt _020117CA + ldr r0, [r6, #0x60] + bl sub_02016A18 + add r0, r6, #0x0 + bl sub_02016A18 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020117E8 +sub_020117E8: ; 0x020117E8 + push {r4-r7, lr} + sub sp, #0x1c + add r5, r0, #0x0 + bne _020117F4 + bl sub_02020C2C +_020117F4: + ldr r0, [r5, #0x0] + bl sub_02011BA0 + add r4, r0, #0x0 + bne _02011802 + bl sub_02020C2C +_02011802: + ldr r0, [r5, #0x10] + add r3, sp, #0x8 + str r0, [r4, #0x8] + ldr r0, [r5, #0x18] + str r0, [r4, #0xc] + ldr r0, [r5, #0x1c] + str r0, [r4, #0x10] + str r3, [sp, #0x14] + str r3, [sp, #0x18] + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x2c] + ldrb r0, [r1, #0x7] + ldrb r1, [r1, #0x8] + bl sub_02011CA4 + add r6, r0, #0x0 + mov r1, #0x24 + ldr r0, [r5, #0x2c] + mul r1, r6 + bl sub_020169D8 + add r7, r0, #0x0 + mov r1, #0xc + ldr r0, [r5, #0x2c] + mul r1, r6 + bl sub_02016998 + str r0, [r4, #0x0] + str r6, [r4, #0x4] + ldr r0, [r5, #0x28] + add r1, sp, #0x8 + str r0, [sp, #0x0] + ldr r0, [r5, #0x2c] + add r2, r7, #0x0 + str r0, [sp, #0x4] + ldr r0, [r5, #0x4] + ldr r3, [r5, #0x14] + bl sub_02011D2C + add r0, r5, #0x0 + add r1, sp, #0x8 + add r2, r7, #0x0 + add r3, r4, #0x0 + bl sub_02011EAC + add r0, r7, #0x0 + bl sub_02016A18 + add r0, sp, #0x8 + bl sub_02011FDC + add r0, r4, #0x0 + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02011870 +sub_02011870: ; 0x02011870 + push {r4, lr} + add r4, r0, #0x0 + bne _0201187A + bl sub_02020C2C +_0201187A: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _02011884 + bl sub_02020C2C +_02011884: + add r0, r4, #0x0 + bl sub_02011F00 + ldr r0, [r4, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02011B90 + pop {r4, pc} + + thumb_func_start sub_02011898 +sub_02011898: ; 0x02011898 + push {r4-r5, lr} + sub sp, #0x14 + add r3, sp, #0x0 + add r5, r0, #0x0 + str r3, [sp, #0xc] + str r3, [sp, #0x10] + add r4, r1, #0x0 + ldrb r0, [r5, #0x7] + ldrb r1, [r5, #0x8] + bl sub_02011CA4 + add r0, sp, #0x0 + add r1, r4, #0x0 + bl sub_02011E58 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl sub_02011FDC + add r0, r4, #0x0 + add sp, #0x14 + pop {r4-r5, pc} + + thumb_func_start sub_020118C4 +sub_020118C4: ; 0x020118C4 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r7, r2, #0x0 + str r1, [sp, #0x0] + cmp r5, #0x0 + bne _020118D6 + bl sub_02020C2C +_020118D6: + ldr r0, [sp, #0x0] + str r0, [r5, #0xc] + str r7, [r5, #0x10] + lsl r0, r0, #0xc + str r0, [sp, #0x0] + ldr r0, [r5, #0x8] + lsl r7, r7, #0xc + cmp r0, #0x0 + beq _020118F8 + bl sub_0202011C + ldr r2, [r0, #0x0] + ldr r1, [sp, #0x0] + ldr r0, [r0, #0x4] + add r1, r1, r2 + str r1, [sp, #0x0] + add r7, r7, r0 +_020118F8: + mov r6, #0x0 + str r6, [sp, #0xc] + ldr r0, [r5, #0x4] + cmp r0, #0x0 + ble _02011932 + add r4, r6, #0x0 +_02011904: + ldr r0, [r5, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x4] + lsl r1, r0, #0xc + ldr r0, [sp, #0x0] + add r0, r0, r1 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + add r1, sp, #0x4 + add r0, r0, r4 + ldr r0, [r0, #0x8] + lsl r0, r0, #0xc + add r0, r7, r0 + str r0, [sp, #0x8] + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + bl sub_02020044 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _02011904 +_02011932: + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02011938 +sub_02011938: ; 0x02011938 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + bne _02011944 + bl sub_02020C2C +_02011944: + ldr r0, [r5, #0x8] + cmp r0, #0x0 + beq _0201199E + ldr r1, [r5, #0xc] + lsl r1, r1, #0xc + str r1, [sp, #0x0] + ldr r1, [r5, #0x10] + lsl r7, r1, #0xc + bl sub_0202011C + ldr r2, [r0, #0x0] + ldr r0, [r0, #0x4] + mov r6, #0x0 + ldr r1, [sp, #0x0] + str r6, [sp, #0xc] + add r7, r7, r0 + add r1, r1, r2 + ldr r0, [r5, #0x4] + str r1, [sp, #0x0] + cmp r0, #0x0 + ble _0201199E + add r4, r6, #0x0 +_02011970: + ldr r0, [r5, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x4] + lsl r1, r0, #0xc + ldr r0, [sp, #0x0] + add r0, r0, r1 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + add r1, sp, #0x4 + add r0, r0, r4 + ldr r0, [r0, #0x8] + lsl r0, r0, #0xc + add r0, r7, r0 + str r0, [sp, #0x8] + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + bl sub_02020044 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _02011970 +_0201199E: + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020119A4 +sub_020119A4: ; 0x020119A4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + cmp r5, #0x0 + bne _020119B4 + bl sub_02020C2C +_020119B4: + cmp r4, #0x0 + bne _020119BC + bl sub_02020C2C +_020119BC: + cmp r6, #0x0 + bne _020119C4 + bl sub_02020C2C +_020119C4: + ldr r0, [r5, #0xc] + str r0, [r4, #0x0] + ldr r0, [r5, #0x10] + str r0, [r6, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020119D0 +sub_020119D0: ; 0x020119D0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + cmp r5, #0x0 + bne _020119DE + bl sub_02020C2C +_020119DE: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _020119FC + add r4, r6, #0x0 +_020119E8: + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, r4] + bl sub_020200A0 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _020119E8 +_020119FC: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02011A00 +sub_02011A00: ; 0x02011A00 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + cmp r5, #0x0 + bne _02011A0E + bl sub_02020C2C +_02011A0E: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02011A2C + add r4, r6, #0x0 +_02011A18: + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, r4] + bl sub_02020238 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _02011A18 +_02011A2C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02011A30 +sub_02011A30: ; 0x02011A30 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + cmp r5, #0x0 + bne _02011A3E + bl sub_02020C2C +_02011A3E: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02011A5C + add r4, r6, #0x0 +_02011A48: + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, r4] + bl sub_02020310 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _02011A48 +_02011A5C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02011A60 +sub_02011A60: ; 0x02011A60 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + cmp r5, #0x0 + bne _02011A6E + bl sub_02020C2C +_02011A6E: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02011A8C + add r4, r6, #0x0 +_02011A78: + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, r4] + bl sub_02020248 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _02011A78 +_02011A8C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02011A90 +sub_02011A90: ; 0x02011A90 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + cmp r5, #0x0 + bne _02011A9E + bl sub_02020C2C +_02011A9E: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02011ABC + add r4, r6, #0x0 +_02011AA8: + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, r4] + bl sub_020202A8 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _02011AA8 +_02011ABC: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02011AC0 +sub_02011AC0: ; 0x02011AC0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + cmp r5, #0x0 + bne _02011ACE + bl sub_02020C2C +_02011ACE: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02011AEC + add r4, r6, #0x0 +_02011AD8: + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, r4] + bl sub_020202DC + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _02011AD8 +_02011AEC: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02011AF0 +sub_02011AF0: ; 0x02011AF0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + cmp r5, #0x0 + bne _02011AFE + bl sub_02020C2C +_02011AFE: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02011B1C + add r4, r6, #0x0 +_02011B08: + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, r4] + bl sub_02020398 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _02011B08 +_02011B1C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02011B20 +sub_02011B20: ; 0x02011B20 + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + ldr r0, [sp, #0x20] + add r7, r1, #0x0 + str r0, [sp, #0x20] + ldr r0, [sp, #0x24] + ldrb r1, [r6, #0x7] + str r0, [sp, #0x24] + add r0, r3, #0x0 + add r0, r7, r0 + str r2, [sp, #0x0] + str r3, [sp, #0x4] + cmp r1, r0 + bge _02011B42 + bl sub_02020C2C +_02011B42: + ldrb r2, [r6, #0x8] + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x20] + add r0, r1, r0 + cmp r2, r0 + bge _02011B52 + bl sub_02020C2C +_02011B52: + ldr r0, [sp, #0x0] + mov r4, #0x0 + cmp r0, #0x0 + ble _02011B8A + lsl r0, r7, #0x5 + add r5, r4, #0x0 + str r0, [sp, #0x8] +_02011B60: + ldrb r1, [r6, #0x7] + ldr r0, [sp, #0x20] + add r2, r1, #0x0 + add r0, r4, r0 + mul r2, r0 + ldr r0, [sp, #0x4] + lsl r1, r5, #0x5 + add r2, r2, r0 + ldr r0, [sp, #0x24] + lsl r2, r2, #0x5 + add r0, r0, r1 + ldr r1, [r6, #0xc] + add r1, r1, r2 + ldr r2, [sp, #0x8] + blx sub_020DF438 + ldr r0, [sp, #0x0] + add r4, r4, #0x1 + add r5, r5, r7 + cmp r4, r0 + blt _02011B60 +_02011B8A: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02011B90 +sub_02011B90: ; 0x02011B90 + mov r2, #0x14 + mov r1, #0x0 +_02011B94: + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _02011B94 + bx lr + .balign 4 + + thumb_func_start sub_02011BA0 +sub_02011BA0: ; 0x02011BA0 + ldr r1, [r0, #0x64] + mov r2, #0x0 + cmp r1, #0x0 + ble _02011BC4 + ldr r3, [r0, #0x60] +_02011BAA: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + bne _02011BBA + ldr r1, [r0, #0x60] + mov r0, #0x14 + mul r0, r2 + add r0, r1, r0 + bx lr +_02011BBA: + ldr r1, [r0, #0x64] + add r2, r2, #0x1 + add r3, #0x14 + cmp r2, r1 + blt _02011BAA +_02011BC4: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02011BC8 +sub_02011BC8: ; 0x02011BC8 + push {r3-r4} + ldr r4, _02011BF0 ; =0x020ED398 + mov r3, #0x0 +_02011BCE: + ldrb r2, [r4, #0x0] + cmp r2, r0 + bgt _02011BE0 + ldrb r2, [r4, #0x1] + cmp r2, r1 + bgt _02011BE0 + add r0, r3, #0x0 + pop {r3-r4} + bx lr +_02011BE0: + add r3, r3, #0x1 + add r4, r4, #0x2 + cmp r3, #0xc + blt _02011BCE + mov r0, #0xc + pop {r3-r4} + bx lr + nop +_02011BF0: .word 0x020ED398 + + thumb_func_start sub_02011BF4 +sub_02011BF4: ; 0x02011BF4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r2, #0x0 + bl sub_02011FAC + ldr r1, [r6, #0x10] + add r4, r0, #0x0 + bl sub_02011FF4 + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + bl sub_02011BC8 + str r0, [r4, #0x8] + ldr r0, [r5, #0x4] + ldr r1, _02011C9C ; =0x020ED398 + str r0, [r4, #0x0] + ldr r0, [r5, #0x0] + ldr r6, _02011CA0 ; =0x020ED399 + str r0, [r4, #0x4] + ldr r0, [r4, #0x8] + ldr r2, [r5, #0x8] + lsl r3, r0, #0x1 + ldrb r0, [r1, r3] + ldrb r3, [r6, r3] + sub r2, r2, r0 + ldr r0, [r5, #0xc] + sub r6, r0, r3 + cmp r2, #0x0 + ble _02011C5C + str r0, [r5, #0x1c] + str r2, [r5, #0x18] + ldr r0, [r5, #0x0] + str r0, [r5, #0x10] + ldr r2, [r4, #0x8] + ldr r0, [r5, #0x4] + lsl r2, r2, #0x1 + ldrb r1, [r1, r2] + add r0, r0, r1 + str r0, [r5, #0x14] + add r0, r5, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02011C54 + bl sub_02020C2C +_02011C54: + add r0, r5, #0x0 + mov r1, #0x1 + add r0, #0x20 + strb r1, [r0, #0x0] +_02011C5C: + cmp r6, #0x0 + ble _02011C72 + ldr r0, [r4, #0x8] + ldr r2, [r5, #0x0] + lsl r1, r0, #0x1 + ldr r0, _02011CA0 ; =0x020ED399 + ldrb r0, [r0, r1] + add r0, r2, r0 + str r0, [r5, #0x0] + str r6, [r5, #0xc] + b _02011C96 +_02011C72: + add r0, r5, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02011C92 + add r3, r5, #0x0 + add r3, #0x10 + add r2, r5, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0x0 + add r5, #0x20 + strb r0, [r5, #0x0] + b _02011C96 +_02011C92: + mov r0, #0x1 + pop {r4-r6, pc} +_02011C96: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_02011C9C: .word 0x020ED398 +_02011CA0: .word 0x020ED399 + + thumb_func_start sub_02011CA4 +sub_02011CA4: ; 0x02011CA4 + push {r3-r7, lr} + sub sp, #0x38 + add r7, r0, #0x0 + str r1, [sp, #0x0] + add r5, r2, #0x0 + add r6, r3, #0x0 + cmp r7, #0x0 + bne _02011CB8 + bl sub_02020C2C +_02011CB8: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _02011CC2 + bl sub_02020C2C +_02011CC2: + ldr r0, [sp, #0x0] + mov r4, #0x0 + str r0, [sp, #0x10] + str r4, [sp, #0x4] + str r4, [sp, #0x8] + str r7, [sp, #0xc] + add r0, sp, #0x24 + strb r4, [r0, #0x0] + ldr r0, [sp, #0x0] + str r4, [sp, #0x2c] + str r7, [sp, #0x30] + cmp r0, #0x0 + beq _02011D20 + add r7, sp, #0x4 +_02011CDE: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x0] + bl sub_02011BC8 + lsl r1, r0, #0x1 + ldr r0, _02011D28 ; =0x020ED398 + add r0, r0, r1 + ldrb r0, [r0, #0x1] + ldr r1, [sp, #0x4] + add r1, r1, r0 + str r1, [sp, #0x28] + ldr r1, [sp, #0x10] + sub r1, r1, r0 + str r1, [sp, #0x34] + str r0, [sp, #0x10] +_02011CFC: + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + add r4, r4, #0x1 + bl sub_02011BF4 + cmp r0, #0x0 + beq _02011CFC + add r3, sp, #0x28 + add r2, sp, #0x4 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [sp, #0x10] + str r0, [sp, #0x0] + cmp r0, #0x0 + bne _02011CDE +_02011D20: + add r0, r4, #0x0 + add sp, #0x38 + pop {r3-r7, pc} + nop +_02011D28: .word 0x020ED398 + + thumb_func_start sub_02011D2C +sub_02011D2C: ; 0x02011D2C + push {r4-r7, lr} + sub sp, #0x1c + str r0, [sp, #0x10] + ldr r0, [sp, #0x30] + str r1, [sp, #0x14] + str r0, [sp, #0x30] + ldr r0, [sp, #0x34] + add r5, r2, #0x0 + str r0, [sp, #0x34] + ldr r0, [sp, #0x30] + add r6, r3, #0x0 + cmp r0, #0x1 + bne _02011D4E + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + b _02011D52 +_02011D4E: + ldr r0, _02011D98 ; =0x04001000 + ldr r1, [r0, #0x0] +_02011D52: + ldr r0, _02011D9C ; =0x00300010 + add r7, r1, #0x0 + and r7, r0 + add r0, r7, #0x0 + bl sub_0201DED0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + ldr r4, [r0, #0xc] + cmp r4, r0 + beq _02011D92 +_02011D68: + add r0, r5, #0x0 + blx sub_020B1A24 + str r7, [sp, #0x0] + ldr r0, [sp, #0x30] + str r6, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [sp, #0x34] + ldr r3, [sp, #0x18] + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + add r1, r4, #0x0 + add r2, r5, #0x0 + bl sub_02011DA0 + add r6, r0, #0x0 + ldr r4, [r4, #0xc] + ldr r0, [sp, #0x14] + add r5, #0x24 + cmp r4, r0 + bne _02011D68 +_02011D92: + add sp, #0x1c + pop {r4-r7, pc} + nop +_02011D98: .word 0x04001000 +_02011D9C: .word 0x00300010 + + thumb_func_start sub_02011DA0 +sub_02011DA0: ; 0x02011DA0 + push {r4-r7, lr} + sub sp, #0x14 + add r6, r1, #0x0 + str r0, [sp, #0x8] + ldr r0, [r6, #0x8] + add r5, r2, #0x0 + lsl r1, r0, #0x1 + ldr r0, _02011E44 ; =0x020ED398 + ldrb r0, [r0, r1] + str r0, [sp, #0x10] + ldr r0, _02011E48 ; =0x020ED399 + ldrb r0, [r0, r1] + ldr r1, [sp, #0x10] + add r4, r1, #0x0 + mul r4, r0 + str r0, [sp, #0xc] + cmp r4, r3 + bge _02011DC6 + add r4, r3, #0x0 +_02011DC6: + lsl r4, r4, #0x5 + ldr r0, [sp, #0x34] + add r1, r4, #0x0 + bl sub_020169D8 + add r7, r0, #0x0 + ldr r0, [r6, #0x4] + ldr r1, [sp, #0x10] + str r0, [sp, #0x0] + str r7, [sp, #0x4] + ldr r0, [sp, #0x8] + ldr r2, [sp, #0xc] + ldr r3, [r6, #0x0] + bl sub_02011B20 + add r0, r7, #0x0 + add r1, r4, #0x0 + blx sub_020CC15C + ldr r0, [sp, #0x30] + cmp r0, #0x1 + bne _02011E08 + ldr r6, [sp, #0x2c] + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + blx sub_020C92F4 + mov r0, #0x1 + str r6, [r5, #0x4] + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + b _02011E1A +_02011E08: + ldr r6, [sp, #0x2c] + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + blx sub_020C9294 + ldr r0, _02011E4C ; =0x04001000 + str r6, [r5, #0x8] + ldr r1, [r0, #0x0] +_02011E1A: + ldr r0, _02011E50 ; =0x00300010 + and r0, r1 + str r0, [r5, #0x20] + ldr r0, _02011E54 ; =0x0000FFFF + str r0, [r5, #0xc] + str r0, [r5, #0x10] + mov r0, #0x3 + str r0, [r5, #0x14] + mov r0, #0x0 + str r0, [r5, #0x18] + mov r0, #0x1 + str r0, [r5, #0x1c] + ldr r0, [sp, #0x28] + str r0, [r5, #0x20] + add r0, r7, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x2c] + add r0, r0, r4 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02011E44: .word 0x020ED398 +_02011E48: .word 0x020ED399 +_02011E4C: .word 0x04001000 +_02011E50: .word 0x00300010 +_02011E54: .word 0x0000FFFF + + thumb_func_start sub_02011E58 +sub_02011E58: ; 0x02011E58 + push {r3-r7, lr} + add r4, r0, #0x0 + cmp r1, #0x1 + bne _02011E68 + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + b _02011E6C +_02011E68: + ldr r0, _02011EA0 ; =0x04001000 + ldr r1, [r0, #0x0] +_02011E6C: + ldr r0, _02011EA4 ; =0x00300010 + and r0, r1 + bl sub_0201DED0 + ldr r2, [r4, #0xc] + mov r3, #0x0 + cmp r2, r4 + beq _02011E9A + ldr r1, _02011EA8 ; =0x020ED398 +_02011E7E: + ldr r5, [r2, #0x8] + lsl r5, r5, #0x1 + add r7, r1, r5 + ldrb r6, [r1, r5] + ldrb r5, [r7, #0x1] + mul r5, r6 + cmp r5, r0 + bge _02011E90 + add r5, r0, #0x0 +_02011E90: + ldr r2, [r2, #0xc] + lsl r5, r5, #0x5 + add r3, r3, r5 + cmp r2, r4 + bne _02011E7E +_02011E9A: + add r0, r3, #0x0 + pop {r3-r7, pc} + nop +_02011EA0: .word 0x04001000 +_02011EA4: .word 0x00300010 +_02011EA8: .word 0x020ED398 + + thumb_func_start sub_02011EAC +sub_02011EAC: ; 0x02011EAC + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + add r0, r1, #0x0 + ldr r4, [r0, #0xc] + str r1, [sp, #0x4] + add r7, r2, #0x0 + add r6, r3, #0x0 + cmp r4, r0 + beq _02011EFC + mov r5, #0x0 +_02011EC2: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_02011F24 + ldr r1, [r6, #0x0] + str r0, [r1, r5] + ldr r0, [r6, #0x0] + ldr r0, [r0, r5] + cmp r0, #0x0 + bne _02011EDC + bl sub_02020C2C +_02011EDC: + ldr r0, [r4, #0x0] + add r7, #0x24 + lsl r1, r0, #0x3 + ldr r0, [r6, #0x0] + add r0, r0, r5 + str r1, [r0, #0x4] + ldr r0, [r4, #0x4] + lsl r1, r0, #0x3 + ldr r0, [r6, #0x0] + add r0, r0, r5 + str r1, [r0, #0x8] + ldr r4, [r4, #0xc] + ldr r0, [sp, #0x4] + add r5, #0xc + cmp r4, r0 + bne _02011EC2 +_02011EFC: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02011F00 +sub_02011F00: ; 0x02011F00 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02011F20 + add r4, r6, #0x0 +_02011F0E: + ldr r0, [r5, #0x0] + ldr r0, [r0, r4] + bl sub_0201FFC8 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0xc + cmp r6, r0 + blt _02011F0E +_02011F20: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02011F24 +sub_02011F24: ; 0x02011F24 + push {r4-r5, lr} + sub sp, #0x44 + add r5, r0, #0x0 + mov r0, #0x0 + str r2, [sp, #0x0] + str r0, [sp, #0x4] + add r4, r1, #0x0 + ldr r1, [r5, #0xc] + str r1, [sp, #0x8] + ldr r1, [r4, #0x8] + ldr r2, [r5, #0x0] + lsl r1, r1, #0x2 + add r1, r2, r1 + ldr r1, [r1, #0x30] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + str r0, [sp, #0x18] + str r0, [sp, #0x1c] + ldr r2, [r5, #0x20] + add r1, sp, #0x20 + strb r2, [r1, #0x0] + ldr r1, [r5, #0x8] + str r1, [sp, #0x24] + add r1, sp, #0x0 + str r1, [sp, #0x28] + ldr r1, [r5, #0x24] + str r1, [sp, #0x38] + ldr r1, [r5, #0x28] + str r1, [sp, #0x3c] + ldr r1, [r5, #0x2c] + str r1, [sp, #0x40] + str r0, [sp, #0x2c] + str r0, [sp, #0x30] + str r0, [sp, #0x34] + ldr r0, [r5, #0x10] + cmp r0, #0x0 + beq _02011F80 + bl sub_0202011C + add r3, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, sp, #0x2c + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] +_02011F80: + ldr r1, [r4, #0x0] + ldr r2, [r5, #0x18] + lsl r1, r1, #0x3 + add r1, r2, r1 + ldr r0, [sp, #0x2c] + lsl r1, r1, #0xc + add r0, r0, r1 + str r0, [sp, #0x2c] + ldr r1, [r4, #0x4] + ldr r2, [r5, #0x1c] + lsl r1, r1, #0x3 + add r1, r2, r1 + ldr r0, [sp, #0x30] + lsl r1, r1, #0xc + add r0, r0, r1 + str r0, [sp, #0x30] + add r0, sp, #0x24 + bl sub_0201FF84 + add sp, #0x44 + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_02011FAC +sub_02011FAC: ; 0x02011FAC + push {r4, lr} + mov r1, #0x14 + bl sub_020169D8 + add r4, r0, #0x0 + bne _02011FBC + bl sub_02020C2C +_02011FBC: + mov r0, #0x0 + str r0, [r4, #0xc] + str r0, [r4, #0x10] + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02011FC8 +sub_02011FC8: ; 0x02011FC8 + push {r4, lr} + add r4, r0, #0x0 + bne _02011FD2 + bl sub_02020C2C +_02011FD2: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02011FDC +sub_02011FDC: ; 0x02011FDC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + cmp r0, r5 + beq _02011FF2 +_02011FE6: + ldr r4, [r0, #0xc] + bl sub_02011FC8 + add r0, r4, #0x0 + cmp r4, r5 + bne _02011FE6 +_02011FF2: + pop {r3-r5, pc} + + thumb_func_start sub_02011FF4 +sub_02011FF4: ; 0x02011FF4 + ldr r2, [r1, #0xc] + str r2, [r0, #0xc] + str r1, [r0, #0x10] + ldr r2, [r1, #0xc] + str r0, [r2, #0x10] + str r0, [r1, #0xc] + bx lr + .balign 4 + + thumb_func_start sub_02012004 +sub_02012004: ; 0x02012004 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + ldr r6, [sp, #0x20] + str r1, [sp, #0x4] + add r5, r2, #0x0 + add r4, r3, #0x0 + str r0, [sp, #0x24] + mov r7, #0x0 +_02012018: + ldr r1, [r4, #0x0] + ldr r0, [sp, #0x4] + ldr r2, [r5, #0x0] + add r0, r0, r1 + ldr r1, [sp, #0x0] + add r1, r1, r2 + add r2, r6, #0x0 + blx sub_020DF438 + ldr r1, [r5, #0x0] + ldr r0, [sp, #0x24] + add r7, r7, #0x1 + add r0, r1, r0 + str r0, [r5, #0x0] + ldr r0, [r4, #0x0] + add r0, r0, r6 + str r0, [r4, #0x0] + cmp r7, #0x8 + blt _02012018 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02012044 +sub_02012044: ; 0x02012044 + push {r4-r6, lr} + add r5, r3, #0x0 + bl sub_0200650C + add r4, r0, #0x0 + bne _02012054 + bl sub_02020C2C +_02012054: + add r0, r4, #0x0 + add r1, r5, #0x0 + blx sub_020B0088 + add r6, r0, #0x0 + cmp r5, #0x0 + bne _02012066 + bl sub_02020C2C +_02012066: + cmp r6, #0x0 + bne _0201206E + bl sub_02020C2C +_0201206E: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02012078 +sub_02012078: ; 0x02012078 + push {r4-r7, lr} + sub sp, #0x2c + ldr r4, [sp, #0x40] + str r0, [sp, #0x8] + add r6, r0, r2 + ldrh r0, [r4, #0x2] + str r1, [sp, #0xc] + add r5, r3, #0x0 + cmp r0, r6 + bge _02012090 + bl sub_02020C2C +_02012090: + ldr r0, [sp, #0xc] + ldrh r1, [r4, #0x0] + add r0, r0, r5 + str r0, [sp, #0x14] + cmp r1, r0 + bge _020120A0 + bl sub_02020C2C +_020120A0: + ldr r0, [r4, #0x14] + str r0, [sp, #0x20] + ldr r0, [sp, #0x44] + str r0, [sp, #0x1c] + ldrh r0, [r4, #0x2] + lsl r7, r0, #0x2 + ldr r0, [sp, #0xc] + add r1, r0, #0x0 + mul r1, r7 + ldr r0, [sp, #0x8] + str r1, [sp, #0x18] + lsl r1, r0, #0x2 + ldr r0, [sp, #0x18] + str r1, [sp, #0x10] + add r0, r1, r0 + str r0, [sp, #0x28] + mov r0, #0x0 + str r0, [sp, #0x24] + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x14] + cmp r1, r0 + bge _0201210A +_020120CC: + ldr r4, [sp, #0x8] + add r0, r4, #0x0 + cmp r0, r6 + bge _020120F8 + ldr r0, [sp, #0x18] + lsl r1, r0, #0x3 + ldr r0, [sp, #0x10] + add r5, r0, r1 +_020120DC: + str r5, [sp, #0x28] + mov r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x1c] + add r2, sp, #0x28 + add r3, sp, #0x24 + str r7, [sp, #0x4] + bl sub_02012004 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r6 + blt _020120DC +_020120F8: + ldr r0, [sp, #0x18] + add r0, r0, r7 + str r0, [sp, #0x18] + ldr r0, [sp, #0xc] + add r1, r0, #0x1 + ldr r0, [sp, #0x14] + str r1, [sp, #0xc] + cmp r1, r0 + blt _020120CC +_0201210A: + add sp, #0x2c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02012110 +sub_02012110: ; 0x02012110 + push {r4-r5} + sub sp, #0x8 + ldr r2, _02012148 ; =0x020ED3B0 + add r1, sp, #0x0 + ldr r3, [r2, #0x0] + ldr r2, [r2, #0x4] + str r3, [sp, #0x0] + str r2, [sp, #0x4] + ldr r2, _0201214C ; =0x000001EF + mov r5, #0x0 + add r3, r2, #0x0 +_02012126: + ldr r4, [r1, #0x0] + cmp r4, r3 + beq _02012140 + cmp r4, r0 + bne _02012138 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r5} + bx lr +_02012138: + add r5, r5, #0x1 + add r1, r1, #0x4 + cmp r5, r2 + blt _02012126 +_02012140: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r5} + bx lr + .balign 4 +_02012148: .word 0x020ED3B0 +_0201214C: .word 0x000001EF + + thumb_func_start sub_02012150 +sub_02012150: ; 0x02012150 + push {r3-r4, lr} + sub sp, #0xc + add r4, r3, #0x0 + mov r3, #0x0 + str r3, [sp, #0x8] + add r3, sp, #0x8 + bl sub_02012044 + ldr r0, [sp, #0x8] + ldr r0, [r0, #0x14] + bl sub_02008A74 + ldr r0, [sp, #0x34] + bl sub_02012110 + ldr r1, [sp, #0x30] + cmp r1, #0x2 + bne _02012184 + cmp r0, #0x1 + bne _02012184 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x28] + ldr r0, [r0, #0x14] + ldr r2, [sp, #0x2c] + bl sub_02008904 +_02012184: + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x18] + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + ldr r2, [sp, #0x1c] + str r0, [sp, #0x4] + ldr r3, [sp, #0x20] + add r0, r4, #0x0 + bl sub_02012078 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_0201219C +sub_0201219C: ; 0x0201219C + push {r4-r7, lr} + sub sp, #0x24 + add r7, r1, #0x0 + add r5, r2, #0x0 + ldr r2, [sp, #0x3c] + ldr r1, [sp, #0x40] + add r6, r0, #0x0 + mul r1, r2 + add r0, r5, #0x0 + lsl r1, r1, #0x5 + str r3, [sp, #0x20] + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [sp, #0x38] + ldr r3, [sp, #0x20] + str r0, [sp, #0x0] + ldr r0, [sp, #0x3c] + add r1, r7, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x40] + add r2, r5, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x44] + str r4, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x48] + str r0, [sp, #0x14] + ldr r0, [sp, #0x4c] + str r0, [sp, #0x18] + ldr r0, [sp, #0x50] + str r0, [sp, #0x1c] + add r0, r6, #0x0 + bl sub_02012150 + add r0, r4, #0x0 + add sp, #0x24 + pop {r4-r7, pc} + + thumb_func_start sub_020121E8 +sub_020121E8: ; 0x020121E8 + push {r3-r7, lr} + sub sp, #0x30 + str r3, [sp, #0x8] + ldr r3, [sp, #0x48] + str r3, [sp, #0x48] + mov r3, #0x0 + str r3, [sp, #0x2c] + bl sub_0200650C + str r0, [sp, #0x20] + cmp r0, #0x0 + bne _02012204 + bl sub_02020C2C +_02012204: + ldr r0, [sp, #0x20] + add r1, sp, #0x2c + blx sub_020B0088 + cmp r0, #0x0 + bne _02012214 + bl sub_02020C2C +_02012214: + ldr r1, [sp, #0x4c] + ldr r0, [sp, #0x8] + add r6, r0, r1 + ldr r0, [sp, #0x2c] + ldrh r0, [r0, #0x2] + cmp r0, r6 + bge _02012226 + bl sub_02020C2C +_02012226: + ldr r1, [sp, #0x50] + ldr r0, [sp, #0x48] + add r0, r0, r1 + str r0, [sp, #0x10] + ldr r0, [sp, #0x2c] + ldrh r1, [r0, #0x0] + ldr r0, [sp, #0x10] + cmp r1, r0 + bge _0201223C + bl sub_02020C2C +_0201223C: + ldr r0, [sp, #0x2c] + ldr r0, [r0, #0x14] + str r0, [sp, #0x1c] + bl sub_02008A74 + ldr r0, [sp, #0x54] + str r0, [sp, #0x18] + ldr r0, [sp, #0x2c] + ldrh r0, [r0, #0x2] + lsl r7, r0, #0x2 + ldr r0, [sp, #0x48] + add r1, r0, #0x0 + mul r1, r7 + ldr r0, [sp, #0x8] + str r1, [sp, #0x14] + lsl r1, r0, #0x2 + ldr r0, [sp, #0x14] + str r1, [sp, #0xc] + add r0, r1, r0 + str r0, [sp, #0x28] + mov r0, #0x0 + str r0, [sp, #0x24] + ldr r1, [sp, #0x48] + ldr r0, [sp, #0x10] + cmp r1, r0 + bge _020122AE +_02012270: + ldr r4, [sp, #0x8] + add r0, r4, #0x0 + cmp r0, r6 + bge _0201229C + ldr r0, [sp, #0x14] + lsl r1, r0, #0x3 + ldr r0, [sp, #0xc] + add r5, r0, r1 +_02012280: + str r5, [sp, #0x28] + mov r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + add r2, sp, #0x28 + add r3, sp, #0x24 + str r7, [sp, #0x4] + bl sub_02012004 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r6 + blt _02012280 +_0201229C: + ldr r0, [sp, #0x14] + add r0, r0, r7 + str r0, [sp, #0x14] + ldr r0, [sp, #0x48] + add r1, r0, #0x1 + ldr r0, [sp, #0x10] + str r1, [sp, #0x48] + cmp r1, r0 + blt _02012270 +_020122AE: + ldr r0, [sp, #0x20] + bl sub_02016A18 + add sp, #0x30 + pop {r3-r7, pc} + + thumb_func_start sub_020122B8 +sub_020122B8: ; 0x020122B8 + push {r4-r7, lr} + sub sp, #0x14 + add r7, r1, #0x0 + add r5, r2, #0x0 + ldr r2, [sp, #0x2c] + ldr r1, [sp, #0x30] + add r6, r0, #0x0 + mul r1, r2 + add r0, r5, #0x0 + lsl r1, r1, #0x5 + str r3, [sp, #0x10] + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [sp, #0x28] + ldr r3, [sp, #0x10] + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + add r1, r7, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x30] + add r2, r5, #0x0 + str r0, [sp, #0x8] + add r0, r6, #0x0 + str r4, [sp, #0xc] + bl sub_020121E8 + add r0, r4, #0x0 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_020122F4 +sub_020122F4: ; 0x020122F4 + push {r3-r7, lr} + sub sp, #0x20 + str r0, [sp, #0x0] + ldr r0, [sp, #0x44] + ldr r1, [sp, #0x38] + str r0, [sp, #0x18] + ldr r0, [sp, #0x48] + str r2, [sp, #0x4] + str r0, [sp, #0x14] + add r0, r2, #0x0 + add r7, r0, r1 + ldr r1, [sp, #0x3c] + add r0, r3, #0x0 + add r0, r0, r1 + add r1, r3, #0x0 + str r3, [sp, #0x8] + ldr r5, [sp, #0x40] + str r0, [sp, #0x10] + cmp r1, r0 + bge _0201236C + add r0, r3, #0x0 + lsl r0, r0, #0x5 + str r0, [sp, #0xc] + add r0, r2, #0x0 + lsl r0, r0, #0x5 + str r0, [sp, #0x1c] +_02012328: + ldr r6, [sp, #0x4] + add r0, r6, #0x0 + cmp r0, r7 + bge _0201235A + ldr r1, [sp, #0x0] + ldr r0, [sp, #0xc] + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [sp, #0x1c] + add r4, r0, r2 +_0201233C: + ldr r1, [r5, #0x0] + ldr r0, [sp, #0x14] + mov r2, #0x20 + add r0, r0, r1 + ldr r1, [sp, #0x18] + add r1, r1, r4 + blx sub_020DF438 + ldr r0, [r5, #0x0] + add r6, r6, #0x1 + add r0, #0x20 + str r0, [r5, #0x0] + add r4, #0x20 + cmp r6, r7 + blt _0201233C +_0201235A: + ldr r0, [sp, #0xc] + add r0, #0x20 + str r0, [sp, #0xc] + ldr r0, [sp, #0x8] + add r1, r0, #0x1 + ldr r0, [sp, #0x10] + str r1, [sp, #0x8] + cmp r1, r0 + blt _02012328 +_0201236C: + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_02012370 +sub_02012370: ; 0x02012370 + push {r3-r4, lr} + sub sp, #0x14 + add r4, r2, #0x0 + ldr r2, [r4, #0x8] + str r2, [sp, #0x0] + ldr r2, [r4, #0xc] + str r2, [sp, #0x4] + ldr r2, [sp, #0x20] + str r3, [sp, #0x8] + str r2, [sp, #0xc] + ldr r2, [sp, #0x24] + str r2, [sp, #0x10] + ldr r2, [r4, #0x0] + ldr r3, [r4, #0x4] + bl sub_020122F4 + add sp, #0x14 + pop {r3-r4, pc} + + thumb_func_start sub_02012394 +sub_02012394: ; 0x02012394 + push {r4-r7, lr} + sub sp, #0x7c + str r0, [sp, #0xc] + ldr r0, [sp, #0x9c] + mov r12, r3 + add r5, r2, #0x0 + ldr r6, [sp, #0x94] + ldr r7, [sp, #0x98] + ldr r3, _020123FC ; =0x020ED3D8 + str r1, [sp, #0x10] + str r0, [sp, #0x9c] + add r2, sp, #0x1c + mov r4, #0xc +_020123AE: + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + sub r4, r4, #0x1 + bne _020123AE + mov r0, #0x0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x90] + ldr r1, [sp, #0x10] + str r0, [sp, #0x0] + str r6, [sp, #0x4] + ldr r0, [sp, #0xc] + add r2, r5, #0x0 + mov r3, r12 + str r7, [sp, #0x8] + bl sub_020122B8 + str r0, [sp, #0x14] + mov r4, #0x0 + add r5, sp, #0x1c +_020123D4: + ldr r0, [sp, #0x14] + add r1, r7, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x9c] + add r2, r5, #0x0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + add r3, sp, #0x18 + bl sub_02012370 + add r4, r4, #0x1 + add r5, #0x10 + cmp r4, #0x6 + blt _020123D4 + ldr r0, [sp, #0x14] + bl sub_02016A18 + add sp, #0x7c + pop {r4-r7, pc} + nop +_020123FC: .word 0x020ED3D8 + + thumb_func_start sub_02012400 +sub_02012400: ; 0x02012400 + push {r4, lr} + sub sp, #0x10 + ldr r4, [r3, #0x4] + str r4, [sp, #0x0] + ldr r4, [r3, #0x8] + str r4, [sp, #0x4] + ldr r4, [r3, #0xc] + str r4, [sp, #0x8] + ldr r4, [sp, #0x18] + str r4, [sp, #0xc] + ldr r3, [r3, #0x0] + bl sub_02012394 + add sp, #0x10 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02012420 +sub_02012420: ; 0x02012420 + push {r4-r7, lr} + sub sp, #0x14 + ldr r4, _02012448 ; =0x020ED3B8 + add r5, r3, #0x0 + add r3, sp, #0x4 + add r7, r0, #0x0 + mov r12, r1 + add r6, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r7, #0x0 + mov r1, r12 + add r3, r6, #0x0 + str r5, [sp, #0x0] + bl sub_02012400 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02012448: .word 0x020ED3B8 + + thumb_func_start sub_0201244C +sub_0201244C: ; 0x0201244C + push {r3-r7, lr} + add r6, r1, #0x0 + mov r1, #0x32 + add r7, r2, #0x0 + add r5, r0, #0x0 + add r0, r7, #0x0 + lsl r1, r1, #0x6 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + add r3, r4, #0x0 + bl sub_02012420 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02012470 +sub_02012470: ; 0x02012470 + push {r3-r7, lr} + add r7, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r7, #0x0 + mov r1, #0x20 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_0200650C + add r1, sp, #0x0 + add r5, r0, #0x0 + blx sub_020B0138 + cmp r0, #0x1 + beq _0201249C + bl sub_02020C2C +_0201249C: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0xc] + mov r2, #0x20 + blx sub_020CE1E0 + add r0, r5, #0x0 + bl sub_02016A18 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020124B4 +sub_020124B4: ; 0x020124B4 + push {r4-r7, lr} + sub sp, #0x8c + str r0, [sp, #0x1c] + ldr r0, [sp, #0xac] + mov r12, r3 + add r5, r2, #0x0 + ldr r6, [sp, #0xa4] + ldr r7, [sp, #0xa8] + ldr r3, _0201252C ; =0x020ED438 + str r1, [sp, #0x20] + str r0, [sp, #0xac] + add r2, sp, #0x2c + mov r4, #0xc +_020124CE: + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + sub r4, r4, #0x1 + bne _020124CE + mov r0, #0x0 + str r0, [sp, #0x28] + ldr r0, [sp, #0xa0] + ldr r1, [sp, #0x20] + str r0, [sp, #0x0] + str r6, [sp, #0x4] + ldr r0, [sp, #0xb0] + str r7, [sp, #0x8] + str r0, [sp, #0xc] + ldr r0, [sp, #0xb4] + add r2, r5, #0x0 + str r0, [sp, #0x10] + ldr r0, [sp, #0xb8] + mov r3, r12 + str r0, [sp, #0x14] + ldr r0, [sp, #0xbc] + str r0, [sp, #0x18] + ldr r0, [sp, #0x1c] + bl sub_0201219C + str r0, [sp, #0x24] + mov r4, #0x0 + add r5, sp, #0x2c +_02012504: + ldr r0, [sp, #0x24] + add r1, r7, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0xac] + add r2, r5, #0x0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + add r3, sp, #0x28 + bl sub_02012370 + add r4, r4, #0x1 + add r5, #0x10 + cmp r4, #0x6 + blt _02012504 + ldr r0, [sp, #0x24] + bl sub_02016A18 + add sp, #0x8c + pop {r4-r7, pc} + nop +_0201252C: .word 0x020ED438 + + thumb_func_start sub_02012530 +sub_02012530: ; 0x02012530 + push {r4, lr} + sub sp, #0x20 + ldr r4, [r3, #0x4] + str r4, [sp, #0x0] + ldr r4, [r3, #0x8] + str r4, [sp, #0x4] + ldr r4, [r3, #0xc] + str r4, [sp, #0x8] + ldr r4, [sp, #0x28] + str r4, [sp, #0xc] + ldr r4, [sp, #0x2c] + str r4, [sp, #0x10] + ldr r4, [sp, #0x30] + str r4, [sp, #0x14] + ldr r4, [sp, #0x34] + str r4, [sp, #0x18] + ldr r4, [sp, #0x38] + str r4, [sp, #0x1c] + ldr r3, [r3, #0x0] + bl sub_020124B4 + add sp, #0x20 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02012560 +sub_02012560: ; 0x02012560 + push {r4-r7, lr} + sub sp, #0x24 + ldr r4, _02012598 ; =0x020ED3C8 + add r5, r3, #0x0 + add r3, sp, #0x14 + add r7, r0, #0x0 + mov r12, r1 + add r6, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [sp, #0x38] + str r5, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x3c] + mov r1, r12 + str r0, [sp, #0x8] + ldr r0, [sp, #0x40] + add r3, r6, #0x0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x44] + str r0, [sp, #0x10] + add r0, r7, #0x0 + bl sub_02012530 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 +_02012598: .word 0x020ED3C8 + + thumb_func_start sub_0201259C +sub_0201259C: ; 0x0201259C + push {r3, lr} + blx sub_020D614C + ldr r3, _020125CC ; =0x021C4808 + mov r0, #0x0 + add r2, r3, #0x0 + add r1, r0, #0x0 + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + ldr r1, _020125D0 ; =0x021C4808 + str r0, [r1, #0x0] + str r0, [r1, #0x4] + str r0, [r1, #0x8] + add r0, r3, #0x0 + bl sub_02012634 + pop {r3, pc} + .balign 4 +_020125CC: .word 0x021C4808 +_020125D0: .word 0x021C4808 + + thumb_func_start sub_020125D4 +sub_020125D4: ; 0x020125D4 + push {r3, lr} + ldr r0, _020125F4 ; =0x021C4808 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + bne _020125F2 + ldr r1, [r0, #0x8] + add r1, r1, #0x1 + str r1, [r0, #0x8] + cmp r1, #0xa + ble _020125F2 + mov r1, #0x0 + str r1, [r0, #0x8] + ldr r0, _020125F8 ; =0x021C4808 + bl sub_02012634 +_020125F2: + pop {r3, pc} + .balign 4 +_020125F4: .word 0x021C4808 +_020125F8: .word 0x021C4808 + + thumb_func_start sub_020125FC +sub_020125FC: ; 0x020125FC + push {r4, lr} + add r4, r1, #0x0 + str r0, [r4, #0xc] + cmp r0, #0x0 + beq _0201260A + bl sub_02020C2C +_0201260A: + add r3, r4, #0x0 + mov r0, #0x1 + add r2, r4, #0x0 + add r3, #0x2c + str r0, [r4, #0x0] + ldmia r3!, {r0-r1} + add r2, #0x10 + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + add r3, r4, #0x0 + add r3, #0x3c + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x20 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + pop {r4, pc} + + thumb_func_start sub_02012634 +sub_02012634: ; 0x02012634 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1 + str r0, [r4, #0x4] + add r0, r4, #0x0 + add r1, r4, #0x0 + ldr r2, _02012658 ; =sub_020125FC + add r0, #0x2c + add r1, #0x3c + add r3, r4, #0x0 + blx sub_020D5F40 + str r0, [r4, #0xc] + cmp r0, #0x0 + beq _02012656 + bl sub_02020C2C +_02012656: + pop {r4, pc} + .balign 4 +_02012658: .word sub_020125FC + 1 + + thumb_func_start sub_0201265C +sub_0201265C: ; 0x0201265C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02012684 ; =0x021C4808 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x1 + beq _0201266E + bl sub_02020C2C +_0201266E: + ldr r2, _02012688 ; =0x021C4818 + ldmia r2!, {r0-r1} + stmia r5!, {r0-r1} + ldmia r2!, {r0-r1} + ldr r2, _0201268C ; =0x021C4828 + stmia r5!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 +_02012684: .word 0x021C4808 +_02012688: .word 0x021C4818 +_0201268C: .word 0x021C4828 + + thumb_func_start sub_02012690 +sub_02012690: ; 0x02012690 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020126AC ; =0x021C4808 + ldr r0, [r0, #0x0] + cmp r0, #0x1 + beq _020126A0 + bl sub_02020C2C +_020126A0: + ldr r2, _020126B0 ; =0x021C4828 + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r4, #0x0] + pop {r4, pc} + .balign 4 +_020126AC: .word 0x021C4808 +_020126B0: .word 0x021C4828 + + thumb_func_start sub_020126B4 +sub_020126B4: ; 0x020126B4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020126D0 ; =0x021C4808 + ldr r0, [r0, #0x0] + cmp r0, #0x1 + beq _020126C4 + bl sub_02020C2C +_020126C4: + ldr r2, _020126D4 ; =0x021C4818 + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + pop {r4, pc} + .balign 4 +_020126D0: .word 0x021C4808 +_020126D4: .word 0x021C4818 + + thumb_func_start sub_020126D8 +sub_020126D8: ; 0x020126D8 + push {r3-r4} + ldr r4, _020126F8 ; =0x021C4828 + mov r0, #0x3c + ldr r1, [r4, #0x4] + ldr r3, [r4, #0x8] + add r2, r1, #0x0 + mul r2, r0 + mov r0, #0xe1 + ldr r1, [r4, #0x0] + lsl r0, r0, #0x4 + mul r0, r1 + add r0, r2, r0 + add r0, r3, r0 + pop {r3-r4} + bx lr + nop +_020126F8: .word 0x021C4828 + + thumb_func_start sub_020126FC +sub_020126FC: ; 0x020126FC + ldr r3, _02012704 ; =sub_020D6578 + ldr r0, _02012708 ; =0x021C4818 + ldr r1, _0201270C ; =0x021C4828 + bx r3 + .balign 4 +_02012704: .word sub_020D6578 +_02012708: .word 0x021C4818 +_0201270C: .word 0x021C4828 + + thumb_func_start sub_02012710 +sub_02012710: ; 0x02012710 + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r2, [r5, #0x4] + ldr r0, _02012778 ; =0x020ED4B2 + lsl r1, r2, #0x1 + ldrh r0, [r0, r1] + ldr r3, [r5, #0x8] + add r4, r3, r0 + cmp r2, #0x3 + blo _02012752 + ldr r6, [r5, #0x0] + mov r0, #0x1e + lsr r2, r6, #0x1f + lsl r1, r6, #0x1e + sub r1, r1, r2 + ror r1, r0 + add r0, r2, r1 + bne _02012742 + add r0, r6, #0x0 + mov r1, #0x64 + blx sub_020EBC80 + cmp r1, #0x0 + bne _02012750 +_02012742: + mov r1, #0x19 + add r0, r6, #0x0 + lsl r1, r1, #0x4 + blx sub_020EBC80 + cmp r1, #0x0 + bne _02012752 +_02012750: + add r4, r4, #0x1 +_02012752: + add r6, r5, #0x0 + add r3, sp, #0x0 + add r2, r3, #0x0 + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + add r0, r2, #0x0 + blx sub_020D660C + add r0, r5, #0x0 + blx sub_020D660C + add r0, r4, #0x0 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_02012778: .word 0x020ED4B2 + + thumb_func_start sub_0201277C +sub_0201277C: ; 0x0201277C + push {r3, lr} + bl sub_02012794 + cmp r0, #0x3 + beq _0201278A + cmp r0, #0x4 + bne _0201278E +_0201278A: + mov r0, #0x1 + pop {r3, pc} +_0201278E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02012794 +sub_02012794: ; 0x02012794 + push {lr} + sub sp, #0xc + add r0, sp, #0x0 + bl sub_02012690 + ldr r0, [sp, #0x0] + bl sub_020127A8 + add sp, #0xc + pop {pc} + + thumb_func_start sub_020127A8 +sub_020127A8: ; 0x020127A8 + push {r4, lr} + add r4, r0, #0x0 + bmi _020127B2 + cmp r4, #0x18 + blt _020127B6 +_020127B2: + bl sub_02020C2C +_020127B6: + ldr r0, _020127BC ; =0x020ED4CC + ldrb r0, [r0, r4] + pop {r4, pc} + .balign 4 +_020127BC: .word 0x020ED4CC + + thumb_func_start sub_020127C0 +sub_020127C0: ; 0x020127C0 + push {r4-r7, lr} + sub sp, #0x24 + add r6, r3, #0x0 + ldr r3, _0201282C ; =0x020ED4A4 + add r4, r0, #0x0 + add r7, r1, #0x0 + add r5, r2, #0x0 + add r2, sp, #0x14 + ldmia r3!, {r0-r1} + str r2, [sp, #0x0] + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r3, _02012830 ; =0x020ED498 + add r2, sp, #0x8 + ldmia r3!, {r0-r1} + str r2, [sp, #0x4] + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + ldr r1, [sp, #0x4] + str r0, [r2, #0x0] + ldr r0, [sp, #0x0] + blx sub_020D6578 + add r2, r1, #0x0 + add r3, r0, #0x0 + mov r1, #0x0 + ldr r0, _02012834 ; =0xBC19137F + eor r1, r2 + eor r0, r3 + orr r0, r1 + beq _02012804 + bl sub_02020C2C +_02012804: + sub r0, r4, r5 + mov r12, r7 + mov r0, r12 + sbc r0, r6 + bge _02012818 + sub r0, r5, r4 + sbc r6, r7 + add sp, #0x24 + add r1, r6, #0x0 + pop {r4-r7, pc} +_02012818: + ldr r0, _02012834 ; =0xBC19137F + mov r1, #0x0 + sub r0, r0, r4 + sbc r1, r7 + add r0, r5, r0 + adc r6, r1 + add r1, r6, #0x0 + add sp, #0x24 + pop {r4-r7, pc} + nop +_0201282C: .word 0x020ED4A4 +_02012830: .word 0x020ED498 +_02012834: .word 0xBC19137F + + thumb_func_start sub_02012838 +sub_02012838: ; 0x02012838 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0x3 + bl sub_02016998 + cmp r0, #0x0 + beq _0201286E + mov r2, #0x0 + cmp r5, #0x0 + bls _02012862 + add r3, r0, #0x0 + add r1, r2, #0x0 +_02012856: + str r1, [r3, #0x0] + str r1, [r3, #0x4] + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, r5 + blo _02012856 +_02012862: + mov r1, #0x0 + lsl r2, r2, #0x3 + mvn r1, r1 + str r1, [r0, r2] + add r1, r0, r2 + str r4, [r1, #0x4] +_0201286E: + pop {r3-r5, pc} + + thumb_func_start sub_02012870 +sub_02012870: ; 0x02012870 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0201291C + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02012880 +sub_02012880: ; 0x02012880 + push {r3-r7, lr} + add r6, r1, #0x0 + add r1, sp, #0x0 + add r7, r2, #0x0 + add r5, r3, #0x0 + bl sub_020128E0 + add r4, r0, #0x0 + beq _0201289E + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_0200A914 + str r0, [r4, #0x0] + str r5, [r4, #0x4] +_0201289E: + pop {r3-r7, pc} + + thumb_func_start sub_020128A0 +sub_020128A0: ; 0x020128A0 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r1, #0x0 + add r1, sp, #0x0 + add r5, r2, #0x0 + bl sub_020128E0 + add r4, r0, #0x0 + beq _020128BE + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl sub_02021ACC + str r0, [r4, #0x0] + str r5, [r4, #0x4] +_020128BE: + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_020128C4 +sub_020128C4: ; 0x020128C4 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r1, #0x0 + add r1, sp, #0x0 + bl sub_020128E0 + cmp r0, #0x0 + beq _020128DC + ldr r1, [r4, #0x0] + str r1, [r0, #0x0] + ldr r1, [r4, #0x4] + str r1, [r0, #0x4] +_020128DC: + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_020128E0 +sub_020128E0: ; 0x020128E0 + push {r4, lr} + ldr r3, [r0, #0x0] + cmp r3, #0x0 + beq _02012900 + mov r2, #0x0 + mvn r2, r2 +_020128EC: + cmp r3, r2 + bne _020128F8 + bl sub_02020C2C + mov r0, #0x0 + pop {r4, pc} +_020128F8: + add r0, #0x8 + ldr r3, [r0, #0x0] + cmp r3, #0x0 + bne _020128EC +_02012900: + mov r2, #0x0 + mvn r2, r2 + add r4, r0, #0x0 + cmp r3, r2 + beq _02012912 +_0201290A: + add r0, #0x8 + ldr r3, [r0, #0x0] + cmp r3, r2 + bne _0201290A +_02012912: + ldr r0, [r0, #0x4] + str r0, [r1, #0x0] + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201291C +sub_0201291C: ; 0x0201291C + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0x0 + ldr r1, [r5, #0x0] + mvn r0, r0 + cmp r1, r0 + beq _02012942 + mov r4, #0x0 + add r6, r0, #0x0 +_0201292E: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _02012942 + bl sub_02021A20 + str r4, [r5, #0x0] + add r5, #0x8 + ldr r0, [r5, #0x0] + cmp r0, r6 + bne _0201292E +_02012942: + pop {r4-r6, pc} + + thumb_func_start sub_02012944 +sub_02012944: ; 0x02012944 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0xc + add r4, r2, #0x0 + bl sub_02016998 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + strb r1, [r0, #0x4] + strb r1, [r0, #0x5] + strb r1, [r0, #0x6] + strb r1, [r0, #0x7] + strb r1, [r0, #0x8] + strb r1, [r0, #0x9] + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + mov r1, #0x1 + strb r1, [r0, #0x9] + str r5, [r0, #0x0] + str r4, [r0, #0x4] + pop {r3-r5, pc} + + thumb_func_start sub_02012974 +sub_02012974: ; 0x02012974 + push {r4, lr} + add r4, r0, #0x0 + bne _0201297E + bl sub_02020C2C +_0201297E: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02012988 +sub_02012988: ; 0x02012988 + push {r4, lr} + add r4, r0, #0x0 + bne _02012992 + bl sub_02020C2C +_02012992: + ldrb r0, [r4, #0x8] + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201299C +sub_0201299C: ; 0x0201299C + push {r4, lr} + add r4, r0, #0x0 + bne _020129A6 + bl sub_02020C2C +_020129A6: + ldrb r1, [r4, #0x8] + mov r0, #0x1 + eor r0, r1 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020129B4 +sub_020129B4: ; 0x020129B4 + cmp r0, #0x0 + beq _020129C6 + ldrb r1, [r0, #0x9] + cmp r1, #0x0 + beq _020129C6 + ldrb r2, [r0, #0x8] + mov r1, #0x1 + eor r1, r2 + strb r1, [r0, #0x8] +_020129C6: + bx lr + + thumb_func_start sub_020129C8 +sub_020129C8: ; 0x020129C8 + push {r3, lr} + mov r0, #0x0 + blx sub_020CD998 + mov r0, #0x0 + blx sub_020CDA1C + pop {r3, pc} + + thumb_func_start sub_020129D8 +sub_020129D8: ; 0x020129D8 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + cmp r3, #0x1 + bne _020129F2 + mov r0, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + add r3, r4, #0x0 + blx sub_020CDE04 + pop {r4-r6, pc} +_020129F2: + mov r0, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + add r3, r4, #0x0 + blx sub_020CDD90 + pop {r4-r6, pc} + + thumb_func_start sub_02012A00 +sub_02012A00: ; 0x02012A00 + push {r3-r5, lr} + ldr r1, _02012A2C ; =0x0000079C + add r5, r0, #0x0 + bl sub_02016998 + ldr r2, _02012A2C ; =0x0000079C + mov r1, #0x0 + add r4, r0, #0x0 + blx sub_020DF4A4 + mov r2, #0x3 + lsl r2, r2, #0x8 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r4, r2 + bl sub_02012944 + mov r1, #0x6 + lsl r1, r1, #0x8 + str r0, [r4, r1] + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02012A2C: .word 0x0000079C + + thumb_func_start sub_02012A30 +sub_02012A30: ; 0x02012A30 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r5, #0x0 + bne _02012A42 + bl sub_02020C2C +_02012A42: + ldr r0, _02012AB0 ; =0x00000604 + ldr r0, [r5, r0] + cmp r0, #0x0 + beq _02012A4E + bl sub_02020C2C +_02012A4E: + ldr r0, _02012AB4 ; =0x0000078C + mov r2, #0x0 + strb r4, [r5, r0] + add r1, r0, #0x1 + strb r6, [r5, r1] + add r1, r0, #0x0 + add r1, #0xc + strh r2, [r5, r1] + add r2, sp, #0x8 + mov r1, #0x14 + ldrsh r2, [r2, r1] + add r1, r0, #0x0 + add r1, #0xe + strh r2, [r5, r1] + add r1, r0, #0x4 + ldr r2, [sp, #0x20] + add r0, #0x8 + str r2, [r5, r1] + ldr r1, [sp, #0x24] + ldr r3, [sp, #0x18] + str r1, [r5, r0] + ldr r0, _02012AB8 ; =0x0000060C + mov r1, #0xc0 + add r0, r5, r0 + add r2, r7, #0x0 + bl sub_02012B88 + ldr r0, _02012ABC ; =sub_02012BE4 + ldr r2, [sp, #0x28] + add r1, r5, #0x0 + bl sub_0200CA44 + ldr r1, _02012AB0 ; =0x00000604 + mov r2, #0x3 + str r0, [r5, r1] + ldr r0, _02012AC0 ; =0x00000794 + add r1, r5, #0x0 + ldr r0, [r5, r0] + lsl r2, r2, #0x8 + blx sub_020CE1FC + ldr r0, _02012AC0 ; =0x00000794 + mov r2, #0x3 + lsl r2, r2, #0x8 + ldr r0, [r5, r0] + add r1, r5, r2 + blx sub_020CE1FC + pop {r3-r7, pc} + .balign 4 +_02012AB0: .word 0x00000604 +_02012AB4: .word 0x0000078C +_02012AB8: .word 0x0000060C +_02012ABC: .word sub_02012BE4 + 1 +_02012AC0: .word 0x00000794 + + thumb_func_start sub_02012AC4 +sub_02012AC4: ; 0x02012AC4 + push {r4, lr} + add r4, r0, #0x0 + bne _02012ACE + bl sub_02020C2C +_02012ACE: + ldr r0, _02012AF8 ; =0x00000604 + ldr r0, [r4, r0] + cmp r0, #0x0 + beq _02012AF4 + bl sub_0200CAB4 + ldr r0, _02012AF8 ; =0x00000604 + mov r1, #0x0 + str r1, [r4, r0] + sub r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_02012988 + ldr r1, _02012AFC ; =0x00000794 + mov r2, #0x3 + ldr r1, [r4, r1] + lsl r2, r2, #0x8 + blx sub_020DF4A4 +_02012AF4: + pop {r4, pc} + nop +_02012AF8: .word 0x00000604 +_02012AFC: .word 0x00000794 + + thumb_func_start sub_02012B00 +sub_02012B00: ; 0x02012B00 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02012AC4 + bl sub_02012C90 + mov r0, #0x6 + lsl r0, r0, #0x8 + ldr r0, [r4, r0] + bl sub_02012974 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02012B20 +sub_02012B20: ; 0x02012B20 + mov r1, #0x6 + lsl r1, r1, #0x8 + ldr r3, _02012B2C ; =sub_02012988 + ldr r0, [r0, r1] + bx r3 + nop +_02012B2C: .word sub_02012988 + 1 + + thumb_func_start sub_02012B30 +sub_02012B30: ; 0x02012B30 + push {r4, lr} + add r4, r0, #0x0 + beq _02012B5E + ldr r0, _02012B60 ; =0x00000604 + ldr r1, [r4, r0] + cmp r1, #0x0 + beq _02012B5E + sub r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_020129B4 + mov r0, #0x6 + lsl r0, r0, #0x8 + ldr r0, [r4, r0] + bl sub_02012988 + add r1, r0, #0x0 + ldr r0, _02012B64 ; =0x00000794 + mov r2, #0x3 + ldr r0, [r4, r0] + lsl r2, r2, #0x8 + blx sub_020CE1FC +_02012B5E: + pop {r4, pc} + .balign 4 +_02012B60: .word 0x00000604 +_02012B64: .word 0x00000794 + + thumb_func_start sub_02012B68 +sub_02012B68: ; 0x02012B68 + push {r4, lr} + add r4, r0, #0x0 + beq _02012B80 + ldr r0, _02012B84 ; =0x00000604 + ldr r0, [r4, r0] + cmp r0, #0x0 + beq _02012B80 + bl sub_02012C90 + add r0, r4, #0x0 + bl sub_02012C98 +_02012B80: + pop {r4, pc} + nop +_02012B84: .word 0x00000604 + + thumb_func_start sub_02012B88 +sub_02012B88: ; 0x02012B88 + push {r4-r7, lr} + sub sp, #0xc + mov r4, #0x0 + add r7, r1, #0x0 + add r5, r0, #0x0 + add r6, r4, #0x0 + str r2, [sp, #0x0] + cmp r7, #0x0 + bls _02012BD6 + asr r0, r3, #0x1f + str r3, [sp, #0x4] + str r0, [sp, #0x8] +_02012BA0: + asr r0, r4, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02012BDC ; =0x020FFA38 + ldr r2, [sp, #0x4] + ldrsh r0, [r0, r1] + ldr r3, [sp, #0x8] + asr r1, r0, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + lsl r2, r2, #0xa + add r0, r0, r2 + ldr r2, _02012BE0 ; =0x00000000 + adc r1, r2 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + asr r0, r0, #0xc + strh r0, [r5, #0x0] + ldr r0, [sp, #0x0] + add r6, r6, #0x1 + add r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r5, r5, #0x2 + cmp r6, r7 + blo _02012BA0 +_02012BD6: + add sp, #0xc + pop {r4-r7, pc} + nop +_02012BDC: .word 0x020FFA38 +_02012BE0: .word 0x00000000 + + thumb_func_start sub_02012BE4 +sub_02012BE4: ; 0x02012BE4 + push {r3-r7, lr} + mov r0, #0x6 + add r6, r1, #0x0 + lsl r0, r0, #0x8 + ldr r0, [r6, r0] + bl sub_02012988 + add r5, r0, #0x0 + ldr r0, _02012C80 ; =0x00000798 + mov r1, #0x64 + ldrsh r0, [r6, r0] + blx sub_020EBC80 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + ldr r0, _02012C84 ; =0x0000078C + ldrb r4, [r6, r0] + add r0, r0, #0x1 + ldrb r0, [r6, r0] + cmp r4, r0 + bgt _02012C4C + lsl r0, r4, #0x2 + add r5, r5, r0 +_02012C12: + ldr r2, [r5, #0x0] + lsl r0, r2, #0x10 + asr r7, r0, #0x10 + lsl r0, r3, #0x1 + add r1, r6, r0 + ldr r0, _02012C88 ; =0x0000060C + ldrsh r0, [r1, r0] + add r0, r7, r0 + lsl r0, r0, #0x10 + asr r1, r0, #0x10 + lsr r0, r2, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + lsr r1, r1, #0x10 + orr r0, r1 + stmia r5!, {r0} + add r0, r3, #0x1 + mov r1, #0xc0 + blx sub_020EBC80 + lsl r0, r1, #0x18 + lsr r3, r0, #0x18 + ldr r0, _02012C8C ; =0x0000078D + add r4, r4, #0x1 + ldrb r0, [r6, r0] + cmp r4, r0 + ble _02012C12 +_02012C4C: + ldr r1, _02012C80 ; =0x00000798 + add r0, r1, #0x2 + ldrsh r2, [r6, r1] + ldrsh r0, [r6, r0] + add r4, r6, r1 + add r0, r2, r0 + strh r0, [r4, #0x0] + ldrsh r0, [r6, r1] + mov r1, #0x4b + lsl r1, r1, #0x8 + cmp r0, r1 + blt _02012C70 + mov r0, #0x0 + ldrsh r0, [r4, r0] + blx sub_020EBC80 + strh r1, [r4, #0x0] + pop {r3-r7, pc} +_02012C70: + cmp r0, #0x0 + bge _02012C7C + mov r0, #0x0 + ldrsh r0, [r4, r0] + add r0, r0, r1 + strh r0, [r4, #0x0] +_02012C7C: + pop {r3-r7, pc} + nop +_02012C80: .word 0x00000798 +_02012C84: .word 0x0000078C +_02012C88: .word 0x0000060C +_02012C8C: .word 0x0000078D + + thumb_func_start sub_02012C90 +sub_02012C90: ; 0x02012C90 + ldr r3, _02012C94 ; =sub_020129C8 + bx r3 + .balign 4 +_02012C94: .word sub_020129C8 + 1 + + thumb_func_start sub_02012C98 +sub_02012C98: ; 0x02012C98 + push {r3-r5, lr} + add r4, r0, #0x0 + bne _02012CA2 + bl sub_02020C2C +_02012CA2: + mov r0, #0x6 + lsl r0, r0, #0x8 + ldr r0, [r4, r0] + bl sub_0201299C + mov r1, #0x3 + lsl r1, r1, #0x8 + add r5, r0, #0x0 + blx sub_020CC15C + mov r1, #0x79 + lsl r1, r1, #0x4 + ldr r1, [r4, r1] + add r0, r5, #0x0 + mov r2, #0x4 + mov r3, #0x1 + bl sub_020129D8 + pop {r3-r5, pc} + + thumb_func_start sub_02012CC8 +sub_02012CC8: ; 0x02012CC8 + mov r1, #0x0 + ldr r2, _02012CD8 ; =0x021C4858 + add r0, r1, #0x0 +_02012CCE: + add r1, r1, #0x1 + stmia r2!, {r0} + cmp r1, #0x10 + blt _02012CCE + bx lr + .balign 4 +_02012CD8: .word 0x021C4858 + + thumb_func_start sub_02012CDC +sub_02012CDC: ; 0x02012CDC + push {r3-r7, lr} + sub sp, #0x10 + str r1, [sp, #0x8] + ldr r1, _02012DD0 ; =0x021C4858 + add r7, r0, #0x0 + add r6, r2, #0x0 + str r3, [sp, #0xc] + mov r5, #0x0 +_02012CEC: + ldr r0, [r1, #0x0] + cmp r0, #0x0 + beq _02012CFA + add r5, r5, #0x1 + add r1, r1, #0x4 + cmp r5, #0x10 + blt _02012CEC +_02012CFA: + cmp r5, #0x10 + blt _02012D04 + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_02012D04: + ldr r0, [sp, #0x2c] + mov r1, #0xdc + bl sub_02016998 + add r4, r0, #0x0 + bne _02012D14 + bl sub_02020C2C +_02012D14: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0xdc + blx sub_020DF4A4 + add r2, r4, #0x0 + ldr r0, [sp, #0x8] + str r7, [r4, #0x18] + ldr r3, _02012DD4 ; =0x020ED4FC + str r0, [r4, #0x1c] + ldmia r3!, {r0-r1} + add r2, #0x34 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + ldr r3, _02012DD8 ; =0x020ED4E4 + str r0, [r2, #0x0] + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x40 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + ldr r3, _02012DDC ; =0x020ED4F0 + str r0, [r2, #0x0] + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x4c + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + mov r1, #0x0 + str r0, [r2, #0x0] + ldr r2, [sp, #0xc] + add r0, r6, #0x0 + blx sub_020DF4A4 + ldr r0, [sp, #0xc] + str r6, [r4, #0xc] + str r6, [r4, #0x10] + add r0, r6, r0 + str r0, [r4, #0x14] + add r0, r4, #0x0 + add r0, #0xda + strb r5, [r0, #0x0] + ldr r0, _02012DD0 ; =0x021C4858 + lsl r5, r5, #0x2 + str r4, [r0, r5] + ldr r0, [sp, #0x28] + cmp r0, #0x1 + bne _02012DA8 + ldr r0, [sp, #0x2c] + bl sub_0201EB64 + str r0, [r4, #0x20] + mov r3, #0x0 + str r3, [r4, #0x24] + str r3, [r4, #0x28] + mov r0, #0x2 + str r3, [r4, #0x2c] + lsl r0, r0, #0xc + strh r0, [r4, #0x30] + str r3, [sp, #0x0] + ldr r0, [r4, #0x20] + ldr r1, _02012DD4 ; =0x020ED4FC + str r0, [sp, #0x4] + ldrh r2, [r4, #0x30] + ldr r0, _02012DDC ; =0x020ED4F0 + bl sub_0201ED5C + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0xdb + strb r1, [r0, #0x0] + ldr r0, [r4, #0x20] + bl sub_0201EB8C +_02012DA8: + mov r0, #0x6 + str r0, [sp, #0x0] + mov r0, #0x3f + str r0, [sp, #0x4] + ldr r0, _02012DE0 ; =0x020ED508 + mov r1, #0x14 + ldr r0, [r0, r5] + mov r2, #0xc8 + mov r3, #0x5 + blx sub_0208B4A0 + str r0, [r4, #0x0] + ldr r1, _02012DD8 ; =0x020ED4E4 + add r0, r4, #0x0 + bl sub_020133FC + add r0, r4, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + nop +_02012DD0: .word 0x021C4858 +_02012DD4: .word 0x020ED4FC +_02012DD8: .word 0x020ED4E4 +_02012DDC: .word 0x020ED4F0 +_02012DE0: .word 0x020ED508 + + thumb_func_start sub_02012DE4 +sub_02012DE4: ; 0x02012DE4 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020133D0 + add r0, r5, #0x0 + add r0, #0xd8 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + tst r0, r1 + beq _02012E02 + add r0, r5, #0x0 + add r0, #0x58 + blx sub_020AE8CC + b _02012E22 +_02012E02: + mov r0, #0x2 + tst r0, r1 + beq _02012E22 + mov r6, #0x0 + add r4, r5, #0x0 + add r7, r6, #0x0 +_02012E0E: + ldr r0, [r4, #0x58] + cmp r0, #0x0 + beq _02012E1A + blx sub_020AF894 + str r7, [r4, #0x58] +_02012E1A: + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, #0x10 + blt _02012E0E +_02012E22: + add r0, r5, #0x0 + add r0, #0xd8 + ldrb r1, [r0, #0x0] + mov r0, #0x4 + tst r0, r1 + beq _02012E38 + add r0, r5, #0x0 + add r0, #0x98 + blx sub_020AEC7C + b _02012E60 +_02012E38: + mov r0, #0x8 + tst r0, r1 + beq _02012E60 + mov r6, #0x0 + add r4, r5, #0x0 + add r7, r6, #0x0 +_02012E44: + add r0, r4, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02012E58 + blx sub_020AFA80 + add r0, r4, #0x0 + add r0, #0x98 + str r7, [r0, #0x0] +_02012E58: + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, #0x10 + blt _02012E44 +_02012E60: + add r0, r5, #0x0 + mov r1, #0x0 + add r0, #0xd8 + strb r1, [r0, #0x0] + str r1, [r5, #0x8] + ldr r0, [r5, #0x4] + cmp r0, #0x0 + beq _02012E78 + bl sub_02016A18 + mov r0, #0x0 + str r0, [r5, #0x4] +_02012E78: + ldr r2, _02012EA8 ; =0x021C4858 + mov r1, #0x0 +_02012E7C: + ldr r0, [r2, #0x0] + cmp r0, r5 + bne _02012E8C + ldr r0, _02012EA8 ; =0x021C4858 + mov r2, #0x0 + lsl r1, r1, #0x2 + str r2, [r0, r1] + b _02012E94 +_02012E8C: + add r1, r1, #0x1 + add r2, r2, #0x4 + cmp r1, #0x10 + blt _02012E7C +_02012E94: + ldr r0, [r5, #0x20] + cmp r0, #0x0 + beq _02012E9E + bl sub_0201EB70 +_02012E9E: + add r0, r5, #0x0 + bl sub_02016A18 + pop {r3-r7, pc} + nop +_02012EA8: .word 0x021C4858 + + thumb_func_start sub_02012EAC +sub_02012EAC: ; 0x02012EAC + push {r3-r5, lr} + ldr r5, _02012EC8 ; =0x021C4858 + mov r4, #0x0 +_02012EB2: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _02012EBC + bl sub_02012DE4 +_02012EBC: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x10 + blt _02012EB2 + pop {r3-r5, pc} + nop +_02012EC8: .word 0x021C4858 + + thumb_func_start sub_02012ECC +sub_02012ECC: ; 0x02012ECC + push {r4, lr} + ldr r1, _02012EF4 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x8] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02012EE4 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02012EE4: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02012EF0 + bl sub_02020C2C +_02012EF0: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02012EF4: .word 0x021C4850 + + thumb_func_start sub_02012EF8 +sub_02012EF8: ; 0x02012EF8 + push {r4, lr} + ldr r1, _02012F20 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0xc] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02012F10 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02012F10: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02012F1C + bl sub_02020C2C +_02012F1C: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02012F20: .word 0x021C4850 + + thumb_func_start sub_02012F24 +sub_02012F24: ; 0x02012F24 + push {r4, lr} + ldr r1, _02012F4C ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x10] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02012F3C + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02012F3C: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02012F48 + bl sub_02020C2C +_02012F48: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02012F4C: .word 0x021C4850 + + thumb_func_start sub_02012F50 +sub_02012F50: ; 0x02012F50 + push {r4, lr} + ldr r1, _02012F78 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x14] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02012F68 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02012F68: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02012F74 + bl sub_02020C2C +_02012F74: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02012F78: .word 0x021C4850 + + thumb_func_start sub_02012F7C +sub_02012F7C: ; 0x02012F7C + push {r4, lr} + ldr r1, _02012FA4 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x18] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02012F94 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02012F94: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02012FA0 + bl sub_02020C2C +_02012FA0: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02012FA4: .word 0x021C4850 + + thumb_func_start sub_02012FA8 +sub_02012FA8: ; 0x02012FA8 + push {r4, lr} + ldr r1, _02012FD0 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x1c] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02012FC0 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02012FC0: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02012FCC + bl sub_02020C2C +_02012FCC: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02012FD0: .word 0x021C4850 + + thumb_func_start sub_02012FD4 +sub_02012FD4: ; 0x02012FD4 + push {r4, lr} + ldr r1, _02012FFC ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x20] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02012FEC + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02012FEC: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02012FF8 + bl sub_02020C2C +_02012FF8: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02012FFC: .word 0x021C4850 + + thumb_func_start sub_02013000 +sub_02013000: ; 0x02013000 + push {r4, lr} + ldr r1, _02013028 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x24] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02013018 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02013018: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02013024 + bl sub_02020C2C +_02013024: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02013028: .word 0x021C4850 + + thumb_func_start sub_0201302C +sub_0201302C: ; 0x0201302C + push {r4, lr} + ldr r1, _02013054 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x28] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02013044 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02013044: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02013050 + bl sub_02020C2C +_02013050: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02013054: .word 0x021C4850 + + thumb_func_start sub_02013058 +sub_02013058: ; 0x02013058 + push {r4, lr} + ldr r1, _02013080 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x2c] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02013070 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02013070: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _0201307C + bl sub_02020C2C +_0201307C: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02013080: .word 0x021C4850 + + thumb_func_start sub_02013084 +sub_02013084: ; 0x02013084 + push {r4, lr} + ldr r1, _020130AC ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x30] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _0201309C + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_0201309C: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _020130A8 + bl sub_02020C2C +_020130A8: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_020130AC: .word 0x021C4850 + + thumb_func_start sub_020130B0 +sub_020130B0: ; 0x020130B0 + push {r4, lr} + ldr r1, _020130D8 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x34] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _020130C8 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_020130C8: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _020130D4 + bl sub_02020C2C +_020130D4: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_020130D8: .word 0x021C4850 + + thumb_func_start sub_020130DC +sub_020130DC: ; 0x020130DC + push {r4, lr} + ldr r1, _02013104 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x38] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _020130F4 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_020130F4: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02013100 + bl sub_02020C2C +_02013100: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02013104: .word 0x021C4850 + + thumb_func_start sub_02013108 +sub_02013108: ; 0x02013108 + push {r4, lr} + ldr r1, _02013130 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x3c] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02013120 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02013120: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _0201312C + bl sub_02020C2C +_0201312C: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02013130: .word 0x021C4850 + + thumb_func_start sub_02013134 +sub_02013134: ; 0x02013134 + push {r4, lr} + ldr r1, _0201315C ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x40] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _0201314C + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_0201314C: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02013158 + bl sub_02020C2C +_02013158: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_0201315C: .word 0x021C4850 + + thumb_func_start sub_02013160 +sub_02013160: ; 0x02013160 + push {r4, lr} + ldr r1, _02013188 ; =0x021C4850 + mov r2, #0x3 + ldr r1, [r1, #0x44] + ldr r4, [r1, #0x10] + add r0, r4, r0 + add r3, r0, #0x0 + and r3, r2 + beq _02013178 + mov r2, #0x4 + sub r2, r2, r3 + add r0, r0, r2 +_02013178: + str r0, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r0, r1 + blo _02013184 + bl sub_02020C2C +_02013184: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02013188: .word 0x021C4850 + + thumb_func_start sub_0201318C +sub_0201318C: ; 0x0201318C + ldr r3, _02013190 ; =sub_0200650C + bx r3 + .balign 4 +_02013190: .word sub_0200650C + 1 + + thumb_func_start sub_02013194 +sub_02013194: ; 0x02013194 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + add r4, r2, #0x0 + add r7, r3, #0x0 + cmp r0, #0x0 + bne _020131A8 + bl sub_02020C2C +_020131A8: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + beq _020131B2 + bl sub_02020C2C +_020131B2: + add r0, r5, #0x0 + add r0, #0xd8 + strb r4, [r0, #0x0] + mov r0, #0x1 + tst r0, r4 + beq _020131C8 + add r0, r5, #0x0 + add r0, #0x58 + blx sub_020AE918 + b _020131DE +_020131C8: + mov r0, #0x2 + tst r0, r4 + beq _020131DE + mov r1, #0x0 + add r2, r5, #0x0 + add r0, r1, #0x0 +_020131D4: + add r1, r1, #0x1 + str r0, [r2, #0x58] + add r2, r2, #0x4 + cmp r1, #0x10 + blt _020131D4 +_020131DE: + mov r0, #0x4 + tst r0, r4 + beq _020131EE + add r0, r5, #0x0 + add r0, #0x98 + blx sub_020AEC98 + b _02013208 +_020131EE: + mov r0, #0x8 + tst r0, r4 + beq _02013208 + mov r2, #0x0 + add r3, r5, #0x0 + add r1, r2, #0x0 +_020131FA: + add r0, r3, #0x0 + add r0, #0x98 + add r2, r2, #0x1 + add r3, r3, #0x4 + str r1, [r0, #0x0] + cmp r2, #0x10 + blt _020131FA +_02013208: + str r6, [r5, #0x4] + cmp r7, #0x1 + bne _02013216 + add r0, r5, #0x0 + bl sub_02013228 + pop {r3-r7, pc} +_02013216: + ldr r0, _02013224 ; =sub_02013268 + add r1, r5, #0x0 + mov r2, #0x5 + bl sub_0200CA98 + pop {r3-r7, pc} + nop +_02013224: .word sub_02013268 + 1 + + thumb_func_start sub_02013228 +sub_02013228: ; 0x02013228 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + blx sub_0208B128 + ldr r0, _02013264 ; =0x021C4850 + str r4, [r0, #0x0] + ldr r1, [r4, #0x18] + ldr r0, [r4, #0x0] + cmp r1, #0x0 + bne _02013246 + blx sub_0208AF94 + b _0201324A +_02013246: + blx sub_0208B05C +_0201324A: + ldr r1, [r4, #0x1c] + ldr r0, [r4, #0x0] + cmp r1, #0x0 + bne _02013258 + blx sub_0208AF80 + b _0201325C +_02013258: + blx sub_0208AFA8 +_0201325C: + ldr r0, _02013264 ; =0x021C4850 + mov r1, #0x0 + str r1, [r0, #0x0] + pop {r4, pc} + .balign 4 +_02013264: .word 0x021C4850 + + thumb_func_start sub_02013268 +sub_02013268: ; 0x02013268 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02013228 + add r0, r4, #0x0 + bl sub_0200CAB4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201327C +sub_0201327C: ; 0x0201327C + push {r4, lr} + add r4, r0, #0x0 + bne _02013286 + bl sub_02020C2C +_02013286: + ldr r0, _020132B8 ; =0x021C4850 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02013292 + bl sub_02020C2C +_02013292: + ldr r0, _020132B8 ; =0x021C4850 + mov r1, #0x0 + ldr r3, [r0, #0x0] + add r2, r3, #0x0 +_0201329A: + ldr r0, [r2, #0x58] + cmp r0, #0x0 + bne _020132A8 + lsl r0, r1, #0x2 + add r0, r3, r0 + str r4, [r0, #0x58] + pop {r4, pc} +_020132A8: + add r1, r1, #0x1 + add r2, r2, #0x4 + cmp r1, #0x10 + blt _0201329A + bl sub_02020C2C + pop {r4, pc} + nop +_020132B8: .word 0x021C4850 + + thumb_func_start sub_020132BC +sub_020132BC: ; 0x020132BC + push {r4, lr} + add r4, r0, #0x0 + bne _020132C6 + bl sub_02020C2C +_020132C6: + ldr r0, _020132FC ; =0x021C4850 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020132D2 + bl sub_02020C2C +_020132D2: + ldr r0, _020132FC ; =0x021C4850 + mov r1, #0x0 + ldr r3, [r0, #0x0] + add r2, r3, #0x0 +_020132DA: + add r0, r2, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020132EE + lsl r0, r1, #0x2 + add r0, r3, r0 + add r0, #0x98 + str r4, [r0, #0x0] + pop {r4, pc} +_020132EE: + add r1, r1, #0x1 + add r2, r2, #0x4 + cmp r1, #0x10 + blt _020132DA + bl sub_02020C2C + pop {r4, pc} + .balign 4 +_020132FC: .word 0x021C4850 + + thumb_func_start sub_02013300 +sub_02013300: ; 0x02013300 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x20] + cmp r1, #0x0 + beq _0201331C + add r0, #0xdb + ldrb r0, [r0, #0x0] + bl sub_0201EE2C + ldr r0, [r4, #0x20] + bl sub_0201EB8C + bl sub_0201EBA4 +_0201331C: + blx sub_020B849C + ldr r0, [r4, #0x0] + ldr r1, _02013338 ; =0x021CED64 + blx sub_0208AD80 + ldr r0, [r4, #0x20] + cmp r0, #0x0 + beq _02013332 + bl sub_0201EB98 +_02013332: + blx sub_020B849C + pop {r4, pc} + .balign 4 +_02013338: .word 0x021CED64 + + thumb_func_start sub_0201333C +sub_0201333C: ; 0x0201333C + ldr r3, _02013344 ; =0x0208AE48 + ldr r0, [r0, #0x0] + bx r3 + nop +_02013344: .word 0x0208AE48 + + thumb_func_start sub_02013348 +sub_02013348: ; 0x02013348 + mov r0, #0x0 + ldr r3, _02013360 ; =0x021C4858 + add r2, r0, #0x0 +_0201334E: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _02013356 + add r0, r0, #0x1 +_02013356: + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, #0x10 + blt _0201334E + bx lr + .balign 4 +_02013360: .word 0x021C4858 + + thumb_func_start sub_02013364 +sub_02013364: ; 0x02013364 + push {r4-r6, lr} + mov r4, #0x0 + ldr r5, _02013384 ; =0x021C4858 + add r6, r4, #0x0 +_0201336C: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _02013378 + bl sub_02013300 + add r4, r4, #0x1 +_02013378: + add r6, r6, #0x1 + add r5, r5, #0x4 + cmp r6, #0x10 + blt _0201336C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02013384: .word 0x021C4858 + + thumb_func_start sub_02013388 +sub_02013388: ; 0x02013388 + push {r4-r6, lr} + mov r4, #0x0 + ldr r5, _020133A8 ; =0x021C4858 + add r6, r4, #0x0 +_02013390: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _0201339C + bl sub_0201333C + add r4, r4, #0x1 +_0201339C: + add r6, r6, #0x1 + add r5, r5, #0x4 + cmp r6, #0x10 + blt _02013390 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_020133A8: .word 0x021C4858 + + thumb_func_start sub_020133AC +sub_020133AC: ; 0x020133AC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020133C4 ; =0x021C4850 + str r3, [r0, #0x4] + ldr r0, [r4, #0x0] + blx sub_0208ACEC + ldr r1, _020133C4 ; =0x021C4850 + mov r2, #0x0 + str r2, [r1, #0x4] + str r0, [r4, #0x8] + pop {r4, pc} + .balign 4 +_020133C4: .word 0x021C4850 + + thumb_func_start sub_020133C8 +sub_020133C8: ; 0x020133C8 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start sub_020133D0 +sub_020133D0: ; 0x020133D0 + ldr r3, _020133D8 ; =0x0208AC14 + ldr r0, [r0, #0x0] + bx r3 + nop +_020133D8: .word 0x0208AC14 + + thumb_func_start sub_020133DC +sub_020133DC: ; 0x020133DC + ldr r3, _020133E4 ; =0x0208AC58 + ldr r0, [r0, #0x0] + bx r3 + nop +_020133E4: .word 0x0208AC58 + + thumb_func_start sub_020133E8 +sub_020133E8: ; 0x020133E8 + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_020133EC +sub_020133EC: ; 0x020133EC + add r2, r0, #0x0 + add r2, #0x40 + add r3, r1, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + + thumb_func_start sub_020133FC +sub_020133FC: ; 0x020133FC + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r3, r4, #0x0 + add r2, r5, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x40 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldr r1, [r5, #0x20] + add r0, r4, #0x0 + bl sub_0201EC58 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201341C +sub_0201341C: ; 0x0201341C + ldr r0, _02013424 ; =0x021C4850 + ldr r0, [r0, #0x4] + bx lr + nop +_02013424: .word 0x021C4850 + + thumb_func_start sub_02013428 +sub_02013428: ; 0x02013428 + ldr r2, _02013438 ; =0x020ED4E4 + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + nop +_02013438: .word 0x020ED4E4 + + thumb_func_start sub_0201343C +sub_0201343C: ; 0x0201343C + ldr r0, [r0, #0x20] + bx lr + + thumb_func_start sub_02013440 +sub_02013440: ; 0x02013440 + add r0, #0xdb + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02013448 +sub_02013448: ; 0x02013448 + add r0, #0xdb + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02013450 +sub_02013450: ; 0x02013450 + ldr r0, [r0, #0x20] + ldr r0, [r0, #0x0] + str r1, [r0, #0x10] + bx lr + + thumb_func_start sub_02013458 +sub_02013458: ; 0x02013458 + push {r4-r7} + ldr r0, [r0, #0x20] + add r4, r1, #0x0 + ldrh r2, [r0, #0x1c] + cmp r2, #0x0 + bne _0201346A + mov r0, #0x0 + pop {r4-r7} + bx lr +_0201346A: + mov r1, #0x0 + cmp r2, #0x0 + ble _020134F4 + ldr r3, [r0, #0x18] + ldr r7, _020134FC ; =0x020908DC + ldr r0, _02013500 ; =0x020909A4 +_02013476: + cmp r3, #0x0 + beq _020134EC + cmp r4, #0x5 + bhi _020134E6 + add r5, r4, r4 + add r5, pc + ldrh r5, [r5, #0x6] + lsl r5, r5, #0x10 + asr r5, r5, #0x10 + add pc, r5 + lsl r2, r1, #0 + lsl r6, r2, #0 + lsl r2, r4, #0 + lsl r0, r6, #0 + lsl r6, r7, #0 + lsl r4, r1, #0x1 + ldr r5, [r3, #0x0] + cmp r5, r0 + bne _020134EC + ldr r0, [r3, #0x4] + pop {r4-r7} + bx lr +_020134A2: + .byte 0x1D, 0x68, 0xBD, 0x42, 0x21, 0xD1, 0x58, 0x68, 0xF0, 0xBC, 0x70, 0x47, 0x1E, 0x68 + .byte 0x14, 0x4D, 0xAE, 0x42, 0x1A, 0xD1, 0x58, 0x68, 0xF0, 0xBC, 0x70, 0x47, 0x1E, 0x68, 0x12, 0x4D + .byte 0xAE, 0x42, 0x13, 0xD1, 0x58, 0x68, 0xF0, 0xBC, 0x70, 0x47, 0x1E, 0x68, 0x0F, 0x4D, 0xAE, 0x42 + .byte 0x0C, 0xD1, 0x58, 0x68, 0xF0, 0xBC, 0x70, 0x47, 0x1E, 0x68, 0x0D, 0x4D, 0xAE, 0x42, 0x05, 0xD1 + .byte 0x58, 0x68, 0xF0, 0xBC, 0x70, 0x47 +_020134E6: + mov r0, #0x0 + pop {r4-r7} + bx lr +_020134EC: + add r1, r1, #0x1 + add r3, #0x8 + cmp r1, r2 + blt _02013476 +_020134F4: + mov r0, #0x0 + pop {r4-r7} + bx lr + nop +_020134FC: .word 0x020908DC +_02013500: .word 0x020909A4 +_02013504: + .byte 0x58, 0x08, 0x09, 0x02, 0x80, 0x07, 0x09, 0x02, 0x64, 0x06, 0x09, 0x02 + .byte 0xD0, 0x05, 0x09, 0x02 + + thumb_func_start sub_02013514 +sub_02013514: ; 0x02013514 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x0 + bl sub_02013458 + cmp r0, #0x0 + beq _0201352E + ldrh r1, [r4, #0x0] + strh r1, [r0, #0x0] + ldrh r1, [r4, #0x2] + strh r1, [r0, #0x2] + ldrh r1, [r4, #0x4] + strh r1, [r0, #0x4] +_0201352E: + pop {r4, pc} + + thumb_func_start sub_02013530 +sub_02013530: ; 0x02013530 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x2 + bl sub_02013458 + add r2, r0, #0x0 + beq _02013546 + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r2, #0x0] +_02013546: + pop {r4, pc} + + thumb_func_start sub_02013548 +sub_02013548: ; 0x02013548 + push {r3-r4, lr} + sub sp, #0xc + add r4, r1, #0x0 + mov r1, #0x2 + bl sub_02013458 + add r2, r0, #0x0 + bne _0201356E + add r2, sp, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + str r0, [r2, #0x4] + str r0, [r2, #0x8] + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r2, #0x0] + add sp, #0xc + str r0, [r4, #0x0] + pop {r3-r4, pc} +_0201356E: + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r4, #0x0] + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0201357C +sub_0201357C: ; 0x0201357C + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x2 + bl sub_02013458 + cmp r0, #0x0 + beq _02013590 + mov r1, #0x0 + ldrsh r1, [r4, r1] + strh r1, [r0, #0xc] +_02013590: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02013594 +sub_02013594: ; 0x02013594 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x2 + bl sub_02013458 + cmp r0, #0x0 + bne _020135A8 + mov r0, #0x0 + strh r0, [r4, #0x0] + pop {r4, pc} +_020135A8: + mov r1, #0xc + ldrsh r0, [r0, r1] + strh r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_020135B0 +sub_020135B0: ; 0x020135B0 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x3 + bl sub_02013458 + cmp r0, #0x0 + beq _020135C2 + ldrh r1, [r4, #0x0] + strh r1, [r0, #0x0] +_020135C2: + pop {r4, pc} + + thumb_func_start sub_020135C4 +sub_020135C4: ; 0x020135C4 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x3 + bl sub_02013458 + cmp r0, #0x0 + bne _020135D8 + mov r0, #0x0 + strh r0, [r4, #0x0] + pop {r4, pc} +_020135D8: + ldrh r0, [r0, #0x0] + strh r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020135E0 +sub_020135E0: ; 0x020135E0 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x3 + bl sub_02013458 + cmp r0, #0x0 + beq _020135F2 + ldrh r1, [r4, #0x0] + strh r1, [r0, #0x2] +_020135F2: + pop {r4, pc} + + thumb_func_start sub_020135F4 +sub_020135F4: ; 0x020135F4 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x3 + bl sub_02013458 + cmp r0, #0x0 + bne _02013608 + mov r0, #0x0 + strh r0, [r4, #0x0] + pop {r4, pc} +_02013608: + ldrh r0, [r0, #0x2] + strh r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02013610 +sub_02013610: ; 0x02013610 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x5 + bl sub_02013458 + add r2, r0, #0x0 + beq _02013626 + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r2, #0x0] +_02013626: + pop {r4, pc} + + thumb_func_start sub_02013628 +sub_02013628: ; 0x02013628 + push {r3-r4, lr} + sub sp, #0xc + add r4, r1, #0x0 + mov r1, #0x5 + bl sub_02013458 + add r2, r0, #0x0 + bne _0201364E + add r2, sp, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + str r0, [r2, #0x4] + str r0, [r2, #0x8] + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r2, #0x0] + add sp, #0xc + str r0, [r4, #0x0] + pop {r3-r4, pc} +_0201364E: + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r4, #0x0] + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0201365C +sub_0201365C: ; 0x0201365C + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x5 + bl sub_02013458 + cmp r0, #0x0 + beq _02013670 + mov r1, #0x0 + ldrsh r1, [r4, r1] + strh r1, [r0, #0xc] +_02013670: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02013674 +sub_02013674: ; 0x02013674 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x5 + bl sub_02013458 + cmp r0, #0x0 + bne _02013688 + mov r0, #0x0 + strh r0, [r4, #0x0] + pop {r4, pc} +_02013688: + mov r1, #0xc + ldrsh r0, [r0, r1] + strh r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_02013690 +sub_02013690: ; 0x02013690 + push {r3-r5, lr} + mov r1, #0x8 + add r5, r0, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + beq _020136B2 + ldr r0, _020136B8 ; =0x0001020F + add r1, r5, #0x0 + str r0, [r4, #0x0] + mov r0, #0x4 + bl sub_020219F4 + ldr r1, _020136BC ; =0x020ED548 + str r0, [r4, #0x4] + bl sub_02021E28 +_020136B2: + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_020136B8: .word 0x0001020F +_020136BC: .word 0x020ED548 + + thumb_func_start sub_020136C0 +sub_020136C0: ; 0x020136C0 + push {r4, lr} + add r4, r0, #0x0 + bne _020136CA + bl sub_02020C2C +_020136CA: + cmp r4, #0x0 + beq _020136DE + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _020136D8 + bl sub_02021A20 +_020136D8: + add r0, r4, #0x0 + bl sub_02016A18 +_020136DE: + pop {r4, pc} + + thumb_func_start sub_020136E0 +sub_020136E0: ; 0x020136E0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020136EE + bl sub_02020C2C +_020136EE: + cmp r5, #0x0 + beq _020136F4 + str r4, [r5, #0x0] +_020136F4: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020136F8 +sub_020136F8: ; 0x020136F8 + push {r4-r6, lr} + sub sp, #0x10 + add r6, r0, #0x0 + str r3, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, [r6, #0x0] + add r5, r1, #0x0 + str r0, [sp, #0x8] + mov r1, #0x0 + add r4, r2, #0x0 + str r1, [sp, #0xc] + ldr r2, [r6, #0x4] + add r0, r5, #0x0 + add r3, r4, #0x0 + bl sub_0201BDE0 + add r0, r5, #0x0 + bl sub_02019548 + add sp, #0x10 + pop {r4-r6, pc} + + thumb_func_start sub_02013724 +sub_02013724: ; 0x02013724 + ldr r1, _02013738 ; =0x0000FFFF + mov r2, #0x0 + strh r1, [r0, #0x0] +_0201372A: + add r2, r2, #0x1 + strh r1, [r0, #0x4] + add r0, r0, #0x2 + cmp r2, #0x2 + blt _0201372A + bx lr + nop +_02013738: .word 0x0000FFFF + + thumb_func_start sub_0201373C +sub_0201373C: ; 0x0201373C + strh r1, [r0, #0x0] + mov r2, #0x0 + ldr r1, _02013750 ; =0x0000FFFF + strh r2, [r0, #0x2] +_02013744: + add r2, r2, #0x1 + strh r1, [r0, #0x4] + add r0, r0, #0x2 + cmp r2, #0x2 + blt _02013744 + bx lr + .balign 4 +_02013750: .word 0x0000FFFF + + thumb_func_start sub_02013754 +sub_02013754: ; 0x02013754 + push {r4, lr} + mov r1, #0x4 + add r4, r0, #0x0 + bl sub_0201373C + mov r0, #0x5 + strh r0, [r4, #0x2] + pop {r4, pc} + + thumb_func_start sub_02013764 +sub_02013764: ; 0x02013764 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + cmp r6, #0x4 + blo _02013772 + bl sub_02020C2C +_02013772: + cmp r6, #0x4 + bhs _020137B8 + mov r0, #0xa + add r4, r6, #0x0 + mul r4, r0 + ldr r1, _020137BC ; =0x020ED556 + add r0, r5, #0x0 + ldrb r1, [r1, r4] + bl sub_0201373C + ldr r0, _020137C0 ; =0x020ED557 + mov r1, #0x0 + ldrb r0, [r0, r4] + mvn r1, r1 + strh r0, [r5, #0x2] + ldr r0, _020137C4 ; =0x020ED558 + ldrsh r0, [r0, r4] + cmp r0, r1 + beq _020137A2 + ldr r1, _020137C8 ; =0x020ED55A + ldrh r1, [r1, r4] + bl sub_02013A9C + strh r0, [r5, #0x4] +_020137A2: + ldr r0, _020137CC ; =0x020ED55C + mov r1, #0x0 + ldrsh r0, [r0, r4] + mvn r1, r1 + cmp r0, r1 + beq _020137B8 + ldr r1, _020137D0 ; =0x020ED55E + ldrh r1, [r1, r4] + bl sub_02013A9C + strh r0, [r5, #0x6] +_020137B8: + pop {r4-r6, pc} + nop +_020137BC: .word 0x020ED556 +_020137C0: .word 0x020ED557 +_020137C4: .word 0x020ED558 +_020137C8: .word 0x020ED55A +_020137CC: .word 0x020ED55C +_020137D0: .word 0x020ED55E + + thumb_func_start sub_020137D4 +sub_020137D4: ; 0x020137D4 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + add r0, r1, #0x0 + str r1, [sp, #0x4] + bl sub_0200AA80 + ldr r5, [sp, #0x0] + ldr r7, _02013838 ; =0x0000FFFF + add r6, r0, #0x0 + mov r4, #0x0 +_020137EA: + ldrh r2, [r5, #0x4] + cmp r2, r7 + beq _02013800 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0200B518 + add r4, r4, #0x1 + add r5, r5, #0x2 + cmp r4, #0x2 + blt _020137EA +_02013800: + ldr r2, [sp, #0x0] + mov r0, #0x1 + ldrh r2, [r2, #0x0] + mov r1, #0x1a + lsl r3, r2, #0x1 + ldr r2, _0201383C ; =0x020ED54C + ldrh r2, [r2, r3] + ldr r3, [sp, #0x4] + bl sub_0200A86C + add r5, r0, #0x0 + ldr r2, [sp, #0x0] + ldr r3, [sp, #0x4] + ldrh r2, [r2, #0x2] + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0200A9C4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0200A8B8 + add r0, r6, #0x0 + bl sub_0200AB18 + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02013838: .word 0x0000FFFF +_0201383C: .word 0x020ED54C + + thumb_func_start sub_02013840 +sub_02013840: ; 0x02013840 + push {r4, lr} + add r4, r0, #0x0 + add r3, r1, #0x0 + ldrh r1, [r4, #0x0] + mov r0, #0x1a + lsl r2, r1, #0x1 + ldr r1, _02013858 ; =0x020ED54C + ldrh r1, [r1, r2] + ldrh r2, [r4, #0x2] + bl sub_0200A738 + pop {r4, pc} + .balign 4 +_02013858: .word 0x020ED54C + + thumb_func_start sub_0201385C +sub_0201385C: ; 0x0201385C + ldrh r1, [r0, #0x0] + ldr r0, _0201386C ; =0x0000FFFF + cmp r1, r0 + beq _02013868 + mov r0, #0x1 + bx lr +_02013868: + mov r0, #0x0 + bx lr + .balign 4 +_0201386C: .word 0x0000FFFF + + thumb_func_start sub_02013870 +sub_02013870: ; 0x02013870 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x0] + ldrh r1, [r4, #0x2] + bl sub_020138A0 + mov r3, #0x0 + cmp r0, #0x0 + bls _02013896 + ldr r1, _0201389C ; =0x0000FFFF +_02013884: + ldrh r2, [r4, #0x4] + cmp r2, r1 + bne _0201388E + mov r0, #0x0 + pop {r4, pc} +_0201388E: + add r3, r3, #0x1 + add r4, r4, #0x2 + cmp r3, r0 + blo _02013884 +_02013896: + mov r0, #0x1 + pop {r4, pc} + nop +_0201389C: .word 0x0000FFFF + + thumb_func_start sub_020138A0 +sub_020138A0: ; 0x020138A0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x5 + blo _020138AE + bl sub_02020C2C +_020138AE: + add r0, r5, #0x0 + bl sub_02013974 + cmp r4, r0 + blo _020138BC + bl sub_02020C2C +_020138BC: + ldr r1, _02013910 ; =0x020ED54C + lsl r2, r5, #0x1 + ldrh r1, [r1, r2] + mov r0, #0x1a + add r2, r4, #0x0 + mov r3, #0x0 + bl sub_0200A738 + str r0, [sp, #0x0] + bl sub_02021F2C + add r4, r0, #0x0 + ldrh r1, [r4, #0x0] + ldr r0, _02013914 ; =0x0000FFFF + mov r5, #0x0 + cmp r1, r0 + beq _02013904 + add r7, r0, #0x0 + sub r6, r0, #0x1 +_020138E2: + cmp r1, r6 + bne _020138FC + add r0, r4, #0x0 + bl sub_0201B8F8 + cmp r0, #0x0 + beq _020138F2 + add r5, r5, #0x1 +_020138F2: + add r0, r4, #0x0 + bl sub_0201B8B8 + add r4, r0, #0x0 + b _020138FE +_020138FC: + add r4, r4, #0x2 +_020138FE: + ldrh r1, [r4, #0x0] + cmp r1, r7 + bne _020138E2 +_02013904: + ldr r0, [sp, #0x0] + bl sub_02021A20 + add r0, r5, #0x0 + pop {r3-r7, pc} + nop +_02013910: .word 0x020ED54C +_02013914: .word 0x0000FFFF + + thumb_func_start sub_02013918 +sub_02013918: ; 0x02013918 + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, #0x4] + bx lr + + thumb_func_start sub_02013920 +sub_02013920: ; 0x02013920 + ldrh r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02013924 +sub_02013924: ; 0x02013924 + ldrh r0, [r0, #0x2] + bx lr + + thumb_func_start sub_02013928 +sub_02013928: ; 0x02013928 + push {r3-r4} + ldrh r3, [r0, #0x0] + ldrh r2, [r1, #0x0] + cmp r3, r2 + bne _0201393A + ldrh r3, [r0, #0x2] + ldrh r2, [r1, #0x2] + cmp r3, r2 + beq _02013940 +_0201393A: + mov r0, #0x0 + pop {r3-r4} + bx lr +_02013940: + mov r4, #0x0 +_02013942: + ldrh r3, [r0, #0x4] + ldrh r2, [r1, #0x4] + cmp r3, r2 + beq _02013950 + mov r0, #0x0 + pop {r3-r4} + bx lr +_02013950: + add r4, r4, #0x1 + add r1, r1, #0x2 + add r0, r0, #0x2 + cmp r4, #0x2 + blt _02013942 + mov r0, #0x1 + pop {r3-r4} + bx lr + + thumb_func_start sub_02013960 +sub_02013960: ; 0x02013960 + ldrh r2, [r1, #0x0] + strh r2, [r0, #0x0] + ldrh r2, [r1, #0x2] + strh r2, [r0, #0x2] + ldrh r2, [r1, #0x4] + strh r2, [r0, #0x4] + ldrh r1, [r1, #0x6] + strh r1, [r0, #0x6] + bx lr + .balign 4 + + thumb_func_start sub_02013974 +sub_02013974: ; 0x02013974 + cmp r0, #0x5 + bhs _0201397C + mov r0, #0x14 + bx lr +_0201397C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02013980 +sub_02013980: ; 0x02013980 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x5 + blo _02013990 + bl sub_02020C2C +_02013990: + strh r4, [r5, #0x0] + strh r6, [r5, #0x2] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02013998 +sub_02013998: ; 0x02013998 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x2 + blo _020139A8 + bl sub_02020C2C +_020139A8: + lsl r0, r4, #0x1 + add r0, r5, r0 + strh r6, [r0, #0x4] + pop {r4-r6, pc} + + thumb_func_start sub_020139B0 +sub_020139B0: ; 0x020139B0 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x0] + ldrh r1, [r4, #0x2] + bl sub_020138A0 + cmp r0, #0x2 + bhs _020139D0 + lsl r1, r0, #0x1 + add r2, r4, r1 + ldr r1, _020139D4 ; =0x0000FFFF +_020139C6: + add r0, r0, #0x1 + strh r1, [r2, #0x4] + add r2, r2, #0x2 + cmp r0, #0x2 + blo _020139C6 +_020139D0: + pop {r4, pc} + nop +_020139D4: .word 0x0000FFFF + + thumb_func_start sub_020139D8 +sub_020139D8: ; 0x020139D8 + push {r3-r7, lr} + mov r1, #0x30 + add r6, r0, #0x0 + bl sub_02016998 + ldr r4, _02013A0C ; =0x020ED5C0 + str r0, [sp, #0x0] + mov r7, #0x0 + add r5, r0, #0x0 +_020139EA: + ldr r0, [sp, #0x0] + mov r1, #0x1a + str r6, [r0, #0x0] + ldrh r2, [r4, #0x0] + mov r0, #0x1 + add r3, r6, #0x0 + bl sub_0200A86C + str r0, [r5, #0x4] + add r7, r7, #0x1 + add r4, r4, #0x2 + add r5, r5, #0x4 + cmp r7, #0xb + blt _020139EA + ldr r0, [sp, #0x0] + pop {r3-r7, pc} + nop +_02013A0C: .word 0x020ED5C0 + + thumb_func_start sub_02013A10 +sub_02013A10: ; 0x02013A10 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r4, #0x0 + add r5, r6, #0x0 +_02013A18: + ldr r0, [r5, #0x4] + bl sub_0200A8B8 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0xb + blt _02013A18 + add r0, r6, #0x0 + bl sub_02016A18 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02013A30 +sub_02013A30: ; 0x02013A30 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r2, #0x0 + add r0, r1, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + bl sub_02013AEC + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x0] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x4] + add r2, r4, #0x0 + bl sub_0200A8E0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02013A58 +sub_02013A58: ; 0x02013A58 + push {r3-r4, lr} + sub sp, #0xc + add r4, r1, #0x0 + ldr r1, _02013A94 ; =0x0000FFFF + cmp r0, r1 + beq _02013A88 + add r1, sp, #0x8 + add r2, sp, #0x4 + bl sub_02013AEC + ldr r0, [sp, #0x8] + mov r3, #0x0 + lsl r1, r0, #0x1 + ldr r0, _02013A98 ; =0x020ED5C0 + ldrh r0, [r0, r1] + str r0, [sp, #0x8] + str r4, [sp, #0x0] + ldr r1, [sp, #0x8] + ldr r2, [sp, #0x4] + mov r0, #0x1a + bl sub_0200A648 + add sp, #0xc + pop {r3-r4, pc} +_02013A88: + add r0, r4, #0x0 + bl sub_02021A4C + add sp, #0xc + pop {r3-r4, pc} + nop +_02013A94: .word 0x0000FFFF +_02013A98: .word 0x020ED5C0 + + thumb_func_start sub_02013A9C +sub_02013A9C: ; 0x02013A9C + push {r4-r5} + ldr r4, _02013AE0 ; =0x020ED5C0 + mov r2, #0x0 +_02013AA2: + ldrh r3, [r4, #0x0] + cmp r0, r3 + bne _02013AD0 + mov r4, #0x0 + add r3, r4, #0x0 + cmp r2, #0x0 + bls _02013AC6 + ldr r0, _02013AE4 ; =0x020ED5D6 +_02013AB2: + lsl r5, r4, #0x1 + ldrh r5, [r0, r5] + add r4, r4, #0x1 + lsl r4, r4, #0x10 + add r3, r3, r5 + lsl r3, r3, #0x10 + lsr r4, r4, #0x10 + lsr r3, r3, #0x10 + cmp r4, r2 + blo _02013AB2 +_02013AC6: + add r0, r3, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r4-r5} + bx lr +_02013AD0: + add r2, r2, #0x1 + add r4, r4, #0x2 + cmp r2, #0xb + blo _02013AA2 + ldr r0, _02013AE8 ; =0x0000FFFF + pop {r4-r5} + bx lr + nop +_02013AE0: .word 0x020ED5C0 +_02013AE4: .word 0x020ED5D6 +_02013AE8: .word 0x0000FFFF + + thumb_func_start sub_02013AEC +sub_02013AEC: ; 0x02013AEC + push {r3-r6} + ldr r3, _02013B20 ; =0x00000FFF + ldr r6, _02013B24 ; =0x020ED5D6 + and r3, r0 + mov r0, #0x0 + add r5, r0, #0x0 +_02013AF8: + ldrh r4, [r6, #0x0] + add r0, r0, r4 + cmp r3, r0 + bhs _02013B12 + str r5, [r1, #0x0] + ldr r1, _02013B24 ; =0x020ED5D6 + lsl r4, r5, #0x1 + ldrh r1, [r1, r4] + sub r0, r0, r1 + sub r0, r3, r0 + str r0, [r2, #0x0] + pop {r3-r6} + bx lr +_02013B12: + add r5, r5, #0x1 + add r6, r6, #0x2 + cmp r5, #0xb + blo _02013AF8 + pop {r3-r6} + bx lr + nop +_02013B20: .word 0x00000FFF +_02013B24: .word 0x020ED5D6 + + thumb_func_start sub_02013B28 +sub_02013B28: ; 0x02013B28 + mov r0, #0x8 + bx lr + + thumb_func_start sub_02013B2C +sub_02013B2C: ; 0x02013B2C + push {r3, lr} + mov r2, #0x0 + str r2, [r0, #0x0] + ldr r3, _02013B54 ; =0x020ED5B4 + str r2, [r0, #0x4] +_02013B36: + ldrb r1, [r3, #0x0] + cmp r1, #0x2 + bne _02013B48 + ldr r1, _02013B58 ; =0x020ED5B5 + lsl r2, r2, #0x1 + ldrb r1, [r1, r2] + bl sub_02013C18 + pop {r3, pc} +_02013B48: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0x6 + blo _02013B36 + pop {r3, pc} + nop +_02013B54: .word 0x020ED5B4 +_02013B58: .word 0x020ED5B5 + + thumb_func_start sub_02013B5C +sub_02013B5C: ; 0x02013B5C + ldr r3, _02013B64 ; =sub_02022610 + mov r1, #0x22 + bx r3 + nop +_02013B64: .word sub_02022610 + 1 + + thumb_func_start sub_02013B68 +sub_02013B68: ; 0x02013B68 + ldr r0, [r0, #0x4] + add r2, r0, #0x0 + lsr r2, r1 + mov r0, #0x1 + and r0, r2 + bx lr + + thumb_func_start sub_02013B74 +sub_02013B74: ; 0x02013B74 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r2, #0x0 + ldr r3, [r5, #0x4] + add r4, r2, #0x0 + mov r0, #0x1 +_02013B80: + add r1, r3, #0x0 + lsr r1, r2 + tst r1, r0 + bne _02013B8A + add r4, r4, #0x1 +_02013B8A: + add r2, r2, #0x1 + cmp r2, #0x20 + blo _02013B80 + cmp r4, #0x0 + beq _02013BC4 + bl sub_0201B9EC + add r1, r4, #0x0 + blx sub_020EBE8C + ldr r4, [r5, #0x4] + mov r0, #0x0 + mov r2, #0x1 +_02013BA4: + add r3, r4, #0x0 + lsr r3, r0 + tst r3, r2 + bne _02013BBE + cmp r1, #0x0 + bne _02013BBC + mov r1, #0x1 + ldr r2, [r5, #0x4] + lsl r1, r0 + orr r1, r2 + str r1, [r5, #0x4] + pop {r3-r5, pc} +_02013BBC: + sub r1, r1, #0x1 +_02013BBE: + add r0, r0, #0x1 + cmp r0, #0x20 + blo _02013BA4 +_02013BC4: + mov r0, #0x20 + pop {r3-r5, pc} + + thumb_func_start sub_02013BC8 +sub_02013BC8: ; 0x02013BC8 + ldr r3, [r0, #0x4] + mov r2, #0x0 + mov r0, #0x1 +_02013BCE: + add r1, r3, #0x0 + lsr r1, r2 + tst r1, r0 + bne _02013BDA + mov r0, #0x0 + bx lr +_02013BDA: + add r2, r2, #0x1 + cmp r2, #0x20 + blo _02013BCE + mov r0, #0x1 + bx lr + + thumb_func_start sub_02013BE4 +sub_02013BE4: ; 0x02013BE4 + push {r3-r4} + mov r3, #0x0 + ldr r4, _02013C08 ; =0x020ED5D6 + add r2, r3, #0x0 +_02013BEC: + ldrh r1, [r4, #0x0] + add r2, r2, #0x1 + add r4, r4, #0x2 + add r1, r3, r1 + lsl r1, r1, #0x10 + lsr r3, r1, #0x10 + cmp r2, #0x9 + blt _02013BEC + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r3-r4} + bx lr + nop +_02013C08: .word 0x020ED5D6 + + thumb_func_start sub_02013C0C +sub_02013C0C: ; 0x02013C0C + ldr r0, [r0, #0x0] + add r2, r0, #0x0 + lsr r2, r1 + mov r0, #0x1 + and r0, r2 + bx lr + + thumb_func_start sub_02013C18 +sub_02013C18: ; 0x02013C18 + mov r2, #0x1 + ldr r3, [r0, #0x0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02013C28 +sub_02013C28: ; 0x02013C28 + push {r4-r7} + mov r3, #0x0 + ldr r5, _02013C64 ; =0x020ED5EC + add r2, r3, #0x0 +_02013C30: + ldr r7, [r5, #0x4] + add r4, r2, #0x0 + cmp r7, #0x0 + ble _02013C54 + ldr r6, [r5, #0x0] +_02013C3A: + ldrh r1, [r6, #0x0] + cmp r0, r1 + bne _02013C4C + ldr r0, _02013C68 ; =0x020ED5F0 + lsl r1, r3, #0x3 + ldr r0, [r0, r1] + sub r0, r0, #0x1 + pop {r4-r7} + bx lr +_02013C4C: + add r4, r4, #0x1 + add r6, r6, #0x2 + cmp r4, r7 + blt _02013C3A +_02013C54: + add r3, r3, #0x1 + add r5, #0x8 + cmp r3, #0xc + blo _02013C30 + mov r0, #0x0 + pop {r4-r7} + bx lr + nop +_02013C64: .word 0x020ED5EC +_02013C68: .word 0x020ED5F0 + + thumb_func_start sub_02013C6C +sub_02013C6C: ; 0x02013C6C + push {r3-r7, lr} + ldr r3, _02013CC8 ; =0x020ED5EC + add r6, r1, #0x0 + mov r7, #0x0 +_02013C74: + ldr r5, [r3, #0x4] + mov r2, #0x0 + cmp r5, #0x0 + ble _02013CBC + ldr r4, [r3, #0x0] +_02013C7E: + ldrh r1, [r4, #0x0] + cmp r0, r1 + bne _02013CB4 + ldr r2, _02013CCC ; =0x020ED5F0 + lsl r1, r7, #0x3 + ldr r2, [r2, r1] + mov r0, #0x0 + cmp r2, #0x0 + beq _02013CAC + ldr r2, _02013CC8 ; =0x020ED5EC + add r2, r2, r1 + ldr r2, [r2, #0x4] +_02013C96: + cmp r6, #0x0 + bne _02013CA4 + ldr r2, _02013CC8 ; =0x020ED5EC + lsl r0, r0, #0x1 + ldr r1, [r2, r1] + ldrh r0, [r1, r0] + pop {r3-r7, pc} +_02013CA4: + sub r6, r6, #0x1 + add r0, r0, #0x1 + cmp r2, #0x0 + bne _02013C96 +_02013CAC: + bl sub_02020C2C + ldr r0, _02013CD0 ; =0x0000FFFF + pop {r3-r7, pc} +_02013CB4: + add r2, r2, #0x1 + add r4, r4, #0x2 + cmp r2, r5 + blt _02013C7E +_02013CBC: + add r7, r7, #0x1 + add r3, #0x8 + cmp r7, #0xc + blo _02013C74 + pop {r3-r7, pc} + nop +_02013CC8: .word 0x020ED5EC +_02013CCC: .word 0x020ED5F0 +_02013CD0: .word 0x0000FFFF + + thumb_func_start sub_02013CD4 +sub_02013CD4: ; 0x02013CD4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r1, #0x18 + bl sub_02016998 + add r4, r0, #0x0 + bne _02013CE8 + bl sub_02020C2C +_02013CE8: + ldr r0, [r5, #0x0] + ldr r1, [r5, #0xc] + bl sub_02013F68 + str r0, [r4, #0x0] + ldr r0, [r5, #0x0] + str r0, [r4, #0x4] + ldr r0, [r5, #0x4] + ldr r1, [r5, #0xc] + bl sub_02013F98 + str r0, [r4, #0x8] + ldr r0, [r5, #0x4] + str r0, [r4, #0xc] + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + bl sub_02013FC8 + str r0, [r4, #0x10] + ldr r0, [r5, #0x8] + str r0, [r4, #0x14] + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02013D18 +sub_02013D18: ; 0x02013D18 + push {r4, lr} + add r4, r0, #0x0 + bne _02013D22 + bl sub_02020C2C +_02013D22: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _02013D2C + bl sub_02020C2C +_02013D2C: + ldr r0, [r4, #0x8] + cmp r0, #0x0 + bne _02013D36 + bl sub_02020C2C +_02013D36: + ldr r0, [r4, #0x10] + cmp r0, #0x0 + bne _02013D40 + bl sub_02020C2C +_02013D40: + ldr r0, [r4, #0x0] + bl sub_02016A18 + ldr r0, [r4, #0x8] + bl sub_02016A18 + ldr r0, [r4, #0x10] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02013D5C +sub_02013D5C: ; 0x02013D5C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _02013D90 ; =0x04000444 + mov r6, #0x0 + str r6, [r0, #0x0] + ldr r0, [r5, #0x4] + cmp r0, #0x0 + ble _02013D86 + add r4, r6, #0x0 +_02013D6E: + ldr r0, [r5, #0x0] + add r0, r0, r4 + ldr r1, [r0, #0x20] + cmp r1, #0x0 + beq _02013D7C + bl sub_020140D8 +_02013D7C: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0x40 + cmp r6, r0 + blt _02013D6E +_02013D86: + ldr r0, _02013D94 ; =0x04000448 + mov r1, #0x1 + str r1, [r0, #0x0] + pop {r4-r6, pc} + nop +_02013D90: .word 0x04000444 +_02013D94: .word 0x04000448 + + thumb_func_start sub_02013D98 +sub_02013D98: ; 0x02013D98 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02014024 + add r4, r0, #0x0 + bne _02013DAA + bl sub_02020C2C +_02013DAA: + ldr r0, [r5, #0x4] + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _02013DB6 + bl sub_02020C2C +_02013DB6: + ldr r0, [r5, #0x4] + bl sub_0201407C + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _02013DC6 + bl sub_02020C2C +_02013DC6: + ldr r0, [r5, #0x4] + ldr r1, [r4, #0x0] + add r2, r4, #0x4 + bl sub_020140A4 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02013DD4 +sub_02013DD4: ; 0x02013DD4 + push {r4, lr} + ldr r1, _02013DE8 ; =0x021064BC + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r1, #0x0] + blx r1 + add r0, r4, #0x0 + bl sub_02013F50 + pop {r4, pc} + .balign 4 +_02013DE8: .word 0x021064BC + + thumb_func_start sub_02013DEC +sub_02013DEC: ; 0x02013DEC + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + cmp r0, #0x0 + ble _02013E12 + add r4, r6, #0x0 +_02013DFA: + ldr r1, [r5, #0x8] + ldr r0, [r1, r4] + cmp r0, #0x0 + beq _02013E08 + add r0, r1, r4 + bl sub_02013DD4 +_02013E08: + ldr r0, [r5, #0xc] + add r6, r6, #0x1 + add r4, #0x28 + cmp r6, r0 + blt _02013DFA +_02013E12: + pop {r4-r6, pc} + + thumb_func_start sub_02013E14 +sub_02013E14: ; 0x02013E14 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02014050 + add r4, r0, #0x0 + bne _02013E26 + bl sub_02020C2C +_02013E26: + ldr r0, [r5, #0x8] + bl sub_02014090 + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _02013E36 + bl sub_02020C2C +_02013E36: + ldr r0, [r5, #0x4] + ldr r1, [r4, #0x0] + add r2, r4, #0x4 + bl sub_020140B4 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02013E44 +sub_02013E44: ; 0x02013E44 + push {r4, lr} + ldr r1, _02013E58 ; =0x021064C4 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r1, #0x0] + blx r1 + add r0, r4, #0x0 + bl sub_02013F5C + pop {r4, pc} + .balign 4 +_02013E58: .word 0x021064C4 + + thumb_func_start sub_02013E5C +sub_02013E5C: ; 0x02013E5C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x14] + mov r6, #0x0 + cmp r0, #0x0 + ble _02013E82 + add r4, r6, #0x0 +_02013E6A: + ldr r1, [r5, #0x10] + ldr r0, [r1, r4] + cmp r0, #0x0 + beq _02013E78 + add r0, r1, r4 + bl sub_02013E44 +_02013E78: + ldr r0, [r5, #0x14] + add r6, r6, #0x1 + add r4, #0x18 + cmp r6, r0 + blt _02013E6A +_02013E82: + pop {r4-r6, pc} + + thumb_func_start sub_02013E84 +sub_02013E84: ; 0x02013E84 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02013FF8 + add r4, r0, #0x0 + bne _02013E96 + bl sub_02020C2C +_02013E96: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02014218 + mov r0, #0x1 + str r0, [r4, #0x1c] + str r0, [r4, #0x20] + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02013EA8 +sub_02013EA8: ; 0x02013EA8 + ldr r3, _02013EAC ; =sub_02013F30 + bx r3 + .balign 4 +_02013EAC: .word sub_02013F30 + 1 + + thumb_func_start sub_02013EB0 +sub_02013EB0: ; 0x02013EB0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02013EBE + bl sub_02020C2C +_02013EBE: + str r4, [r5, #0x20] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02013EC4 +sub_02013EC4: ; 0x02013EC4 + strh r1, [r0, #0x0] + strh r2, [r0, #0x2] + bx lr + .balign 4 + + thumb_func_start sub_02013ECC +sub_02013ECC: ; 0x02013ECC + ldrh r1, [r0, #0x2] + ldrh r0, [r0, #0x0] + lsl r1, r1, #0x10 + orr r0, r1 + bx lr + .balign 4 + + thumb_func_start sub_02013ED8 +sub_02013ED8: ; 0x02013ED8 + strh r1, [r0, #0x4] + strh r2, [r0, #0x6] + bx lr + .balign 4 + + thumb_func_start sub_02013EE0 +sub_02013EE0: ; 0x02013EE0 + str r1, [r0, #0xc] + str r2, [r0, #0x10] + bx lr + .balign 4 + + thumb_func_start sub_02013EE8 +sub_02013EE8: ; 0x02013EE8 + strh r1, [r0, #0x8] + strh r2, [r0, #0xa] + bx lr + .balign 4 + + thumb_func_start sub_02013EF0 +sub_02013EF0: ; 0x02013EF0 + ldrh r1, [r0, #0xa] + ldrh r0, [r0, #0x8] + lsl r1, r1, #0x10 + orr r0, r1 + bx lr + .balign 4 + + thumb_func_start sub_02013EFC +sub_02013EFC: ; 0x02013EFC + str r1, [r0, #0x14] + bx lr + + thumb_func_start sub_02013F00 +sub_02013F00: ; 0x02013F00 + ldr r0, [r0, #0x14] + bx lr + + thumb_func_start sub_02013F04 +sub_02013F04: ; 0x02013F04 + add r0, #0x3e + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02013F0C +sub_02013F0C: ; 0x02013F0C + strh r1, [r0, #0x3c] + bx lr + + thumb_func_start sub_02013F10 +sub_02013F10: ; 0x02013F10 + str r1, [r0, #0x24] + bx lr + + thumb_func_start sub_02013F14 +sub_02013F14: ; 0x02013F14 + str r1, [r0, #0x28] + bx lr + + thumb_func_start sub_02013F18 +sub_02013F18: ; 0x02013F18 + str r1, [r0, #0x2c] + bx lr + + thumb_func_start sub_02013F1C +sub_02013F1C: ; 0x02013F1C + str r1, [r0, #0x30] + bx lr + + thumb_func_start sub_02013F20 +sub_02013F20: ; 0x02013F20 + cmp r1, #0x0 + bne _02013F28 + str r2, [r0, #0x34] + bx lr +_02013F28: + str r2, [r0, #0x38] + bx lr + + thumb_func_start sub_02013F2C +sub_02013F2C: ; 0x02013F2C + str r1, [r0, #0x18] + bx lr + + thumb_func_start sub_02013F30 +sub_02013F30: ; 0x02013F30 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x40 + blx sub_020DF4A4 + add r0, r4, #0x0 + mov r1, #0x1f + add r0, #0x3e + strb r1, [r0, #0x0] + ldr r0, _02013F4C ; =0x00007FFF + strh r0, [r4, #0x3c] + pop {r4, pc} + nop +_02013F4C: .word 0x00007FFF + + thumb_func_start sub_02013F50 +sub_02013F50: ; 0x02013F50 + ldr r3, _02013F58 ; =sub_020B1A24 + mov r1, #0x0 + stmia r0!, {r1} + bx r3 + .balign 4 +_02013F58: .word sub_020B1A24 + + thumb_func_start sub_02013F5C +sub_02013F5C: ; 0x02013F5C + ldr r3, _02013F64 ; =sub_020B19DC + mov r1, #0x0 + stmia r0!, {r1} + bx r3 + .balign 4 +_02013F64: .word sub_020B19DC + + thumb_func_start sub_02013F68 +sub_02013F68: ; 0x02013F68 + push {r3-r7, lr} + add r6, r0, #0x0 + add r0, r1, #0x0 + lsl r1, r6, #0x6 + bl sub_02016998 + add r7, r0, #0x0 + bne _02013F7C + bl sub_02020C2C +_02013F7C: + mov r4, #0x0 + cmp r6, #0x0 + ble _02013F92 + add r5, r7, #0x0 +_02013F84: + add r0, r5, #0x0 + bl sub_02013F30 + add r4, r4, #0x1 + add r5, #0x40 + cmp r4, r6 + blt _02013F84 +_02013F92: + add r0, r7, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02013F98 +sub_02013F98: ; 0x02013F98 + push {r3-r7, lr} + add r6, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x28 + mul r1, r6 + bl sub_02016998 + add r7, r0, #0x0 + bne _02013FAE + bl sub_02020C2C +_02013FAE: + mov r4, #0x0 + cmp r6, #0x0 + ble _02013FC4 + add r5, r7, #0x0 +_02013FB6: + add r0, r5, #0x0 + bl sub_02013F50 + add r4, r4, #0x1 + add r5, #0x28 + cmp r4, r6 + blt _02013FB6 +_02013FC4: + add r0, r7, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02013FC8 +sub_02013FC8: ; 0x02013FC8 + push {r3-r7, lr} + add r6, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x18 + mul r1, r6 + bl sub_02016998 + add r7, r0, #0x0 + bne _02013FDE + bl sub_02020C2C +_02013FDE: + mov r4, #0x0 + cmp r6, #0x0 + ble _02013FF4 + add r5, r7, #0x0 +_02013FE6: + add r0, r5, #0x0 + bl sub_02013F5C + add r4, r4, #0x1 + add r5, #0x18 + cmp r4, r6 + blt _02013FE6 +_02013FF4: + add r0, r7, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02013FF8 +sub_02013FF8: ; 0x02013FF8 + push {r3-r4} + ldr r4, [r0, #0x4] + mov r1, #0x0 + cmp r4, #0x0 + ble _0201401C + ldr r3, [r0, #0x0] + add r2, r3, #0x0 +_02014006: + ldr r0, [r2, #0x1c] + cmp r0, #0x0 + bne _02014014 + lsl r0, r1, #0x6 + add r0, r3, r0 + pop {r3-r4} + bx lr +_02014014: + add r1, r1, #0x1 + add r2, #0x40 + cmp r1, r4 + blt _02014006 +_0201401C: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_02014024 +sub_02014024: ; 0x02014024 + push {r3-r4} + ldr r4, [r0, #0x4] + mov r1, #0x0 + cmp r4, #0x0 + ble _0201404A + ldr r3, [r0, #0x8] + add r2, r3, #0x0 +_02014032: + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _02014042 + mov r0, #0x28 + mul r0, r1 + add r0, r3, r0 + pop {r3-r4} + bx lr +_02014042: + add r1, r1, #0x1 + add r2, #0x28 + cmp r1, r4 + blt _02014032 +_0201404A: + mov r0, #0x0 + pop {r3-r4} + bx lr + + thumb_func_start sub_02014050 +sub_02014050: ; 0x02014050 + push {r3-r4} + ldr r4, [r0, #0x4] + mov r1, #0x0 + cmp r4, #0x0 + ble _02014076 + ldr r3, [r0, #0x10] + add r2, r3, #0x0 +_0201405E: + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _0201406E + mov r0, #0x18 + mul r0, r1 + add r0, r3, r0 + pop {r3-r4} + bx lr +_0201406E: + add r1, r1, #0x1 + add r2, #0x18 + cmp r1, r4 + blt _0201405E +_02014076: + mov r0, #0x0 + pop {r3-r4} + bx lr + + thumb_func_start sub_0201407C +sub_0201407C: ; 0x0201407C + push {r3, lr} + ldr r3, _0201408C ; =0x021064B8 + mov r1, #0x0 + ldr r0, [r0, #0x10] + ldr r3, [r3, #0x0] + add r2, r1, #0x0 + blx r3 + pop {r3, pc} + .balign 4 +_0201408C: .word 0x021064B8 + + thumb_func_start sub_02014090 +sub_02014090: ; 0x02014090 + push {r3, lr} + ldr r3, _020140A0 ; =0x021064C0 + mov r1, #0x0 + ldr r3, [r3, #0x0] + lsl r0, r0, #0x5 + add r2, r1, #0x0 + blx r3 + pop {r3, pc} + .balign 4 +_020140A0: .word 0x021064C0 + + thumb_func_start sub_020140A4 +sub_020140A4: ; 0x020140A4 + push {r3, lr} + lsl r1, r1, #0x10 + add r3, r2, #0x0 + lsr r1, r1, #0xd + mov r2, #0x0 + blx sub_020B1528 + pop {r3, pc} + + thumb_func_start sub_020140B4 +sub_020140B4: ; 0x020140B4 + push {r3-r5, lr} + add r3, r2, #0x0 + ldr r2, _020140D4 ; =0xFFFF0000 + add r5, r0, #0x0 + and r2, r1 + lsr r2, r2, #0x10 + lsl r1, r1, #0x10 + ldr r4, [r5, #0x8] + lsl r2, r2, #0x3 + str r2, [r5, #0x8] + lsr r1, r1, #0xd + mov r2, #0x0 + blx sub_020B1240 + str r4, [r5, #0x8] + pop {r3-r5, pc} + .balign 4 +_020140D4: .word 0xFFFF0000 + + thumb_func_start sub_020140D8 +sub_020140D8: ; 0x020140D8 + push {r3-r7, lr} + sub sp, #0x18 + ldr r7, _020141F8 ; =0x04000444 + mov r6, #0x0 + add r5, r0, #0x0 + str r6, [r7, #0x0] + ldrh r1, [r5, #0x3c] + ldr r0, _020141FC ; =0x7FFF8000 + orr r0, r1 + str r0, [r7, #0x7c] + add r0, r7, #0x0 + ldr r1, _02014200 ; =0x00004210 + add r0, #0x80 + str r1, [r0, #0x0] + ldr r3, [r5, #0x24] + ldr r4, [r3, #0x8] + ldr r2, [r3, #0x10] + ldr r1, [r3, #0x4] + ldr r0, [r3, #0x0] + lsl r3, r2, #0x1d + lsl r2, r1, #0x17 + lsl r1, r0, #0x14 + ldr r0, [r5, #0x28] + lsl r4, r4, #0x1a + lsr r0, r0, #0x3 + orr r4, r0 + mov r0, #0x1 + lsl r0, r0, #0x1e + orr r0, r4 + orr r0, r1 + orr r0, r2 + orr r0, r3 + str r0, [r7, #0x64] + ldr r0, [r5, #0x24] + ldr r0, [r0, #0x8] + cmp r0, #0x2 + bne _02014124 + mov r6, #0x1 +_02014124: + ldr r0, [r5, #0x30] + ldr r1, [r5, #0x2c] + lsl r0, r0, #0x5 + add r1, r1, r0 + mov r0, #0x4 + sub r0, r0, r6 + lsr r1, r0 + ldr r2, _02014204 ; =0x040004AC + add r0, r5, #0x0 + str r1, [r2, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + sub r2, #0x8 + lsl r1, r0, #0x10 + mov r0, #0xc0 + orr r0, r1 + str r0, [r2, #0x0] + ldr r0, [r5, #0x34] + cmp r0, #0x0 + beq _02014156 + mov r0, #0x8 + ldrsh r0, [r5, r0] + mov r7, #0x0 + str r0, [sp, #0x14] + b _0201415E +_02014156: + mov r0, #0x8 + ldrsh r7, [r5, r0] + mov r0, #0x0 + str r0, [sp, #0x14] +_0201415E: + ldr r0, [r5, #0x38] + cmp r0, #0x0 + beq _0201416C + mov r0, #0xa + ldrsh r6, [r5, r0] + mov r4, #0x0 + b _02014172 +_0201416C: + mov r0, #0xa + ldrsh r4, [r5, r0] + mov r6, #0x0 +_02014172: + ldr r0, [r5, #0x14] + mov r1, #0x6 + lsl r2, r0, #0xc + mov r0, #0x2 + ldrsh r0, [r5, r0] + ldrsh r1, [r5, r1] + mov r3, #0x4 + ldrsh r3, [r5, r3] + add r0, r0, r1 + lsl r1, r0, #0xc + mov r0, #0x0 + ldrsh r0, [r5, r0] + add r0, r0, r3 + ldr r3, _02014208 ; =0x04000470 + lsl r0, r0, #0xc + str r0, [r3, #0x0] + str r1, [r3, #0x0] + str r2, [r3, #0x0] + ldr r0, [r5, #0x18] + ldr r1, _0201420C ; =0x020FFA38 + asr r0, r0, #0x4 + lsl r2, r0, #0x1 + lsl r0, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r0, [r1, r0] + ldrsh r1, [r1, r2] + blx sub_020C7FF0 + ldr r2, [r5, #0x10] + ldr r0, [r5, #0xc] + ldr r1, _02014210 ; =0x0400046C + mov r3, #0x8 + str r0, [r1, #0x0] + str r2, [r1, #0x0] + lsr r0, r1, #0xe + str r0, [r1, #0x0] + mov r2, #0x4 + mov r0, #0x6 + ldrsh r2, [r5, r2] + ldrsh r0, [r5, r0] + neg r2, r2 + neg r0, r0 + lsl r2, r2, #0xc + lsl r0, r0, #0xc + str r2, [r1, #0x4] + str r0, [r1, #0x4] + mov r0, #0x0 + str r0, [r1, #0x4] + mov r1, #0xa + ldrsh r1, [r5, r1] + add r2, r0, #0x0 + str r1, [sp, #0x0] + ldr r1, [sp, #0x14] + str r1, [sp, #0x4] + str r6, [sp, #0x8] + str r7, [sp, #0xc] + str r4, [sp, #0x10] + ldrsh r3, [r5, r3] + add r1, r0, #0x0 + blx sub_020B0250 + ldr r0, _02014214 ; =0x04000448 + mov r1, #0x1 + str r1, [r0, #0x0] + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_020141F8: .word 0x04000444 +_020141FC: .word 0x7FFF8000 +_02014200: .word 0x00004210 +_02014204: .word 0x040004AC +_02014208: .word 0x04000470 +_0201420C: .word 0x020FFA38 +_02014210: .word 0x0400046C +_02014214: .word 0x04000448 + + thumb_func_start sub_02014218 +sub_02014218: ; 0x02014218 + push {r3-r7, lr} + add r5, r1, #0x0 + ldr r1, [r5, #0x4] + add r7, r0, #0x0 + ldr r2, [r1, #0x10] + mov r6, #0x8 + mov r0, #0x0 + cmp r2, #0x0 + ble _02014236 +_0201422A: + ldr r2, [r5, #0x4] + add r0, r0, #0x1 + ldr r2, [r2, #0x10] + lsl r6, r6, #0x1 + cmp r0, r2 + blt _0201422A +_02014236: + ldr r1, [r1, #0x14] + mov r4, #0x8 + mov r0, #0x0 + cmp r1, #0x0 + ble _0201424C +_02014240: + ldr r1, [r5, #0x4] + add r0, r0, #0x1 + ldr r1, [r1, #0x14] + lsl r4, r4, #0x1 + cmp r0, r1 + blt _02014240 +_0201424C: + mov r1, #0xc + mov r2, #0xe + ldrsh r1, [r5, r1] + ldrsh r2, [r5, r2] + add r0, r7, #0x0 + bl sub_02013EC4 + lsr r1, r6, #0x1f + lsr r2, r4, #0x1f + add r1, r6, r1 + add r2, r4, r2 + lsl r1, r1, #0xf + lsl r2, r2, #0xf + add r0, r7, #0x0 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl sub_02013ED8 + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [r7, #0xc] + str r0, [r7, #0x10] + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_02013EE8 + ldr r1, [r5, #0x18] + add r0, r7, #0x0 + bl sub_02013EFC + ldr r1, [r5, #0x14] + add r0, r7, #0x0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_02013F04 + ldr r1, [r5, #0x4] + add r0, r7, #0x0 + add r1, #0x10 + bl sub_02013F10 + ldr r0, [r5, #0x4] + mov r1, #0x0 + add r0, r0, #0x4 + blx sub_020B1A14 + add r1, r0, #0x0 + add r0, r7, #0x0 + bl sub_02013F14 + ldr r0, [r5, #0x8] + mov r1, #0x0 + add r0, r0, #0x4 + blx sub_020B19C4 + add r1, r0, #0x0 + add r0, r7, #0x0 + bl sub_02013F18 + ldrh r1, [r5, #0x1c] + add r0, r7, #0x0 + bl sub_02013F1C + mov r1, #0x0 + add r0, r7, #0x0 + add r2, r1, #0x0 + bl sub_02013F20 + add r0, r7, #0x0 + mov r1, #0x1 + mov r2, #0x0 + bl sub_02013F20 + ldrh r1, [r5, #0x10] + add r0, r7, #0x0 + bl sub_02013F2C + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020142EC +sub_020142EC: ; 0x020142EC + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + ldr r0, _02014394 ; =sub_020143DC + mov r1, #0x50 + mov r2, #0x0 + bl sub_020061E8 + str r0, [sp, #0x4] + bl sub_0201B6C8 + add r4, r0, #0x0 + cmp r5, #0x0 + beq _02014330 + cmp r6, #0x0 + bne _02014320 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020031FC + str r0, [sp, #0x0] + ldr r0, _02014398 ; =sub_020144E0 + str r0, [r4, #0x4] + b _0201434A +_02014320: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020031FC + str r0, [sp, #0x0] + ldr r0, _0201439C ; =sub_020144FC + str r0, [r4, #0x4] + b _0201434A +_02014330: + cmp r6, #0x0 + bne _02014340 + bl sub_020222E8 + str r0, [sp, #0x0] + ldr r0, _020143A0 ; =sub_020144B0 + str r0, [r4, #0x4] + b _0201434A +_02014340: + bl sub_020222F8 + str r0, [sp, #0x0] + ldr r0, _020143A4 ; =sub_020144C8 + str r0, [r4, #0x4] +_0201434A: + ldr r1, [sp, #0x0] + lsl r0, r7, #0x5 + str r0, [sp, #0x8] + add r0, r1, r0 + add r1, r4, #0x0 + add r1, #0xc + mov r2, #0x20 + blx sub_020CE1E0 + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x8] + mov r2, #0x20 + add r0, r1, r0 + add r1, r4, #0x0 + add r1, #0x2c + blx sub_020CE1E0 + ldr r0, [sp, #0x4] + mov r1, #0x1 + str r0, [r4, #0x0] + add r0, r4, #0x0 + str r5, [r4, #0x8] + add r0, #0x4c + strb r6, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x4d + strb r7, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x4e + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x4f + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02014394: .word sub_020143DC + 1 +_02014398: .word sub_020144E0 + 1 +_0201439C: .word sub_020144FC + 1 +_020143A0: .word sub_020144B0 + 1 +_020143A4: .word sub_020144C8 + 1 + + thumb_func_start sub_020143A8 +sub_020143A8: ; 0x020143A8 + cmp r1, #0x0 + beq _020143B6 + cmp r1, #0x1 + beq _020143BE + cmp r1, #0x2 + beq _020143C6 + bx lr +_020143B6: + mov r1, #0x0 + add r0, #0x4e + strb r1, [r0, #0x0] + bx lr +_020143BE: + mov r1, #0x2 + add r0, #0x4e + strb r1, [r0, #0x0] + bx lr +_020143C6: + mov r1, #0x3 + add r0, #0x4e + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020143D0 +sub_020143D0: ; 0x020143D0 + ldr r3, _020143D8 ; =sub_0200621C + ldr r0, [r0, #0x0] + bx r3 + nop +_020143D8: .word sub_0200621C + 1 + + thumb_func_start sub_020143DC +sub_020143DC: ; 0x020143DC + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x4e + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + bhi _02014452 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r2, #0 + lsl r0, r3, #0x1 + lsl r2, r1, #0x1 + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x4f + strb r1, [r0, #0x0] + mov r0, #0x1 + add r4, #0x4e + strb r0, [r4, #0x0] + pop {r3-r5, pc} +_02014410: + .byte 0x20, 0x1C, 0x00, 0xF0, 0x1F, 0xF8, 0x01, 0x28, 0x04, 0xD1, 0x21, 0x1C, 0x62, 0x68, 0x20, 0x1C + .byte 0x2C, 0x31, 0x90, 0x47, 0x20, 0x1C, 0x4F, 0x30, 0x00, 0x78, 0x41, 0x1C, 0x20, 0x1C, 0x4F, 0x30 + .byte 0x01, 0x70, 0x20, 0x1C, 0x4F, 0x30, 0x00, 0x78, 0x20, 0x28, 0x0A, 0xD1, 0x00, 0x20, 0x4F, 0x34 + .byte 0x20, 0x70, 0x38, 0xBD, 0x62, 0x68, 0x20, 0x1C, 0x0C, 0x31, 0x90, 0x47, 0x28, 0x1C, 0xF1, 0xF7 + .byte 0xE5, 0xFE +_02014452: + pop {r3-r5, pc} + + thumb_func_start sub_02014454 +sub_02014454: ; 0x02014454 + push {r4-r5} + add r1, r0, #0x0 + add r1, #0x4f + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + bne _02014482 + mov r1, #0x1e + mov r4, #0x0 + mov r3, #0x1 + lsl r1, r1, #0xa +_02014468: + add r2, r3, #0x0 + lsl r2, r4 + tst r2, r1 + beq _02014474 + ldrh r2, [r0, #0xc] + strh r2, [r0, #0x2c] +_02014474: + add r4, r4, #0x1 + add r0, r0, #0x2 + cmp r4, #0x10 + blo _02014468 + mov r0, #0x1 + pop {r4-r5} + bx lr +_02014482: + cmp r1, #0x18 + bne _020144AA + mov r1, #0x1e + mov r5, #0x0 + add r4, r0, #0x0 + mov r3, #0x1 + lsl r1, r1, #0xa +_02014490: + add r2, r3, #0x0 + lsl r2, r5 + tst r2, r1 + beq _0201449C + ldrh r2, [r0, #0x2a] + strh r2, [r4, #0x2c] +_0201449C: + add r5, r5, #0x1 + add r4, r4, #0x2 + cmp r5, #0x10 + blo _02014490 + mov r0, #0x1 + pop {r4-r5} + bx lr +_020144AA: + mov r0, #0x0 + pop {r4-r5} + bx lr + + thumb_func_start sub_020144B0 +sub_020144B0: ; 0x020144B0 + push {r3, lr} + add r3, r0, #0x0 + add r3, #0x4d + ldrb r3, [r3, #0x0] + mov r0, #0x0 + mov r2, #0x20 + lsl r3, r3, #0x15 + lsr r3, r3, #0x10 + bl sub_02017FB4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020144C8 +sub_020144C8: ; 0x020144C8 + push {r3, lr} + add r3, r0, #0x0 + add r3, #0x4d + ldrb r3, [r3, #0x0] + mov r0, #0x4 + mov r2, #0x20 + lsl r3, r3, #0x15 + lsr r3, r3, #0x10 + bl sub_02017FB4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020144E0 +sub_020144E0: ; 0x020144E0 + push {r3, lr} + add r3, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [r3, #0x8] + add r3, #0x4d + ldrb r3, [r3, #0x0] + mov r2, #0x0 + lsl r3, r3, #0x14 + lsr r3, r3, #0x10 + bl sub_02003054 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020144FC +sub_020144FC: ; 0x020144FC + push {r3, lr} + add r3, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [r3, #0x8] + add r3, #0x4d + ldrb r3, [r3, #0x0] + mov r2, #0x1 + lsl r3, r3, #0x14 + lsr r3, r3, #0x10 + bl sub_02003054 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02014518 +sub_02014518: ; 0x02014518 + push {r3-r7, lr} + mov r1, #0x78 + add r7, r0, #0x0 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x78 + add r6, r0, #0x0 + blx sub_020CE34C + ldr r2, _02014560 ; =0x0000019E + mov r0, #0x0 + mov r1, #0x1a + add r3, r7, #0x0 + bl sub_0200A86C + str r0, [r6, #0x0] + mov r4, #0x0 + add r5, r6, #0x0 +_0201453E: + mov r0, #0x16 + add r1, r7, #0x0 + bl sub_020219F4 + str r0, [r5, #0x4] + ldr r0, [r6, #0x0] + ldr r2, [r5, #0x4] + add r1, r4, #0x0 + bl sub_0200A8E0 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x1d + blt _0201453E + add r0, r6, #0x0 + pop {r3-r7, pc} + nop +_02014560: .word 0x0000019E + + thumb_func_start sub_02014564 +sub_02014564: ; 0x02014564 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r6, #0x0 + mov r4, #0x1c + add r5, #0x70 +_0201456E: + ldr r0, [r5, #0x4] + bl sub_02021A20 + sub r5, r5, #0x4 + sub r4, r4, #0x1 + bpl _0201456E + ldr r0, [r6, #0x0] + bl sub_0200A8B8 + add r0, r6, #0x0 + bl sub_02016A18 + pop {r4-r6, pc} + + thumb_func_start sub_02014588 +sub_02014588: ; 0x02014588 + lsl r1, r1, #0x2 + add r0, r0, r1 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_02014590 +sub_02014590: ; 0x02014590 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0x9c + bl sub_02016998 + add r1, r5, #0x0 + add r4, r0, #0x0 + bl sub_020146F0 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020145A8 +sub_020145A8: ; 0x020145A8 + push {r4, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x9b + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + cmp r1, #0x1 + bne _020145BE + bl sub_020146C4 +_020145BE: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020145C8 +sub_020145C8: ; 0x020145C8 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r2, [r4, #0x0] + add r5, r0, #0x0 + str r2, [r5, #0x7c] + add r2, r5, #0x0 + ldr r3, [r4, #0x4] + add r2, #0x80 + str r3, [r2, #0x0] + add r2, r5, #0x0 + ldrb r3, [r4, #0x10] + add r2, #0x98 + strb r3, [r2, #0x0] + add r2, r5, #0x0 + ldrb r3, [r4, #0x11] + add r2, #0x99 + strb r3, [r2, #0x0] + bl sub_02014730 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02014754 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02014784 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02014814 + add r0, r5, #0x0 + add r0, #0x9b + ldrb r1, [r0, #0x0] + mov r0, #0xf + bic r1, r0 + mov r0, #0x1 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x9b + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x9b + ldrb r1, [r0, #0x0] + mov r0, #0xf0 + add r5, #0x9b + bic r1, r0 + mov r0, #0x80 + orr r0, r1 + strb r0, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02014630 +sub_02014630: ; 0x02014630 + push {r4, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x9b + ldrb r2, [r1, #0x0] + mov r1, #0xf0 + bic r2, r1 + mov r1, #0x80 + orr r2, r1 + add r1, r4, #0x0 + add r1, #0x9b + strb r2, [r1, #0x0] + bl sub_0201466C + cmp r0, #0x0 + bne _0201466A + add r1, r4, #0x0 + add r1, #0x9b + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + bne _0201466A + add r4, #0x9a + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _02014668 + mov r0, #0x3 + pop {r4, pc} +_02014668: + mov r0, #0x4 +_0201466A: + pop {r4, pc} + + thumb_func_start sub_0201466C +sub_0201466C: ; 0x0201466C + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x9b + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #0x1 + beq _02014680 + bl sub_02020C2C +_02014680: + add r0, r4, #0x0 + add r0, #0x9a + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + bne _02014690 + ldr r0, [r4, #0x0] + bl sub_02022144 +_02014690: + add r1, r4, #0x0 + add r1, #0x9a + ldrb r2, [r1, #0x0] + mov r0, #0x0 + cmp r2, #0x3 + beq _020146AA + add r1, r4, #0x0 + mov r0, #0x38 + add r1, #0xc + mul r0, r2 + add r0, r1, r0 + bl sub_02014930 +_020146AA: + cmp r0, #0x1 + bne _020146BE + add r4, #0x9a + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _020146BA + mov r0, #0x1 + pop {r4, pc} +_020146BA: + mov r0, #0x2 + pop {r4, pc} +_020146BE: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020146C4 +sub_020146C4: ; 0x020146C4 + push {r4-r6, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_0202212C + add r5, r6, #0x0 + mov r4, #0x0 + add r5, #0xc +_020146D4: + add r0, r5, #0x0 + bl sub_02014970 + add r4, r4, #0x1 + add r5, #0x38 + cmp r4, #0x2 + blt _020146D4 + add r0, r6, #0x0 + add r6, #0x84 + ldr r1, [r6, #0x0] + bl sub_020146F0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020146F0 +sub_020146F0: ; 0x020146F0 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r1, #0x0 + mov r2, #0x9c + blx sub_020DF4A4 + add r0, r5, #0x0 + add r0, #0x9b + ldrb r1, [r0, #0x0] + mov r0, #0xf + bic r1, r0 + add r0, r5, #0x0 + add r0, #0x9b + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x84 + str r4, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x3 + add r0, #0x9a + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x9b + ldrb r1, [r0, #0x0] + mov r0, #0xf0 + add r5, #0x9b + bic r1, r0 + mov r0, #0x80 + orr r0, r1 + strb r0, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_02014730 +sub_02014730: ; 0x02014730 + push {r3, lr} + sub sp, #0x8 + add r3, r0, #0x0 + ldr r0, [r1, #0x8] + mov r1, #0x1 + str r0, [sp, #0x0] + add r0, r3, #0x0 + add r0, #0x84 + ldr r0, [r0, #0x0] + str r0, [sp, #0x4] + ldr r2, [r3, #0x7c] + add r3, #0x80 + ldr r3, [r3, #0x0] + mov r0, #0x54 + bl sub_02014A3C + add sp, #0x8 + pop {r3, pc} + + thumb_func_start sub_02014754 +sub_02014754: ; 0x02014754 + push {r3, lr} + sub sp, #0x8 + add r3, r1, #0x0 + add r1, r0, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + cmp r1, #0x4 + bhs _02014768 + mov r2, #0x0 + b _0201476A +_02014768: + mov r2, #0x4 +_0201476A: + mov r1, #0x40 + str r1, [sp, #0x0] + add r0, #0x84 + ldr r0, [r0, #0x0] + mov r1, #0x0 + str r0, [sp, #0x4] + ldr r3, [r3, #0xc] + mov r0, #0x54 + lsl r3, r3, #0x5 + bl sub_02014A8C + add sp, #0x8 + pop {r3, pc} + + thumb_func_start sub_02014784 +sub_02014784: ; 0x02014784 + push {r3-r7, lr} + sub sp, #0x30 + add r7, r0, #0x0 + mov r3, #0x0 + add r4, r7, #0x0 +_0201478E: + add r0, r4, #0x0 + add r3, r3, #0x1 + lsl r2, r3, #0xc + add r0, #0x88 + add r4, r4, #0x4 + str r2, [r0, #0x0] + cmp r3, #0x4 + blt _0201478E + ldr r0, [r7, #0x7c] + mov r5, #0x0 + str r0, [sp, #0x0] + add r0, r7, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r4, r7, #0x0 + str r0, [sp, #0x4] + mov r0, #0x54 + str r0, [sp, #0x8] + ldr r0, [r1, #0x8] + add r6, r5, #0x0 + str r0, [sp, #0x1c] + ldr r0, [r1, #0xc] + add r4, #0xc + str r0, [sp, #0x20] + add r0, r7, #0x0 + add r0, #0x88 + str r0, [sp, #0x24] + mov r0, #0x4 + str r0, [sp, #0x28] + add r0, r7, #0x0 + add r0, #0x98 + ldrb r1, [r0, #0x0] + add r0, sp, #0x20 + strb r1, [r0, #0xc] +_020147D2: + mov r1, #0x0 + mov r2, #0x2 + add r3, sp, #0x0 +_020147D8: + add r0, r5, r2 + str r0, [r3, #0xc] + add r1, r1, #0x1 + add r2, r2, #0x2 + add r3, r3, #0x4 + cmp r1, #0x4 + blt _020147D8 + add r0, r7, #0x0 + add r0, #0x99 + ldrb r0, [r0, #0x0] + add r2, r7, #0x0 + add r2, #0x84 + add r1, r0, r6 + add r0, sp, #0x20 + strb r1, [r0, #0xd] + ldr r0, [sp, #0x20] + add r1, sp, #0x0 + add r0, r0, r5 + str r0, [sp, #0x20] + ldr r2, [r2, #0x0] + add r0, r4, #0x0 + bl sub_020148A8 + add r5, r5, #0x1 + add r6, r6, #0x4 + add r4, #0x38 + cmp r5, #0x2 + blt _020147D2 + add sp, #0x30 + pop {r3-r7, pc} + + thumb_func_start sub_02014814 +sub_02014814: ; 0x02014814 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r4, #0x0 +_02014820: + add r3, r4, #0x0 + add r3, #0x99 + ldrb r3, [r3, #0x0] + add r0, r0, #0x1 + lsl r3, r3, #0x3 + add r3, r3, r1 + strb r3, [r2, #0x4] + add r3, r4, #0x0 + add r3, #0x99 + ldrb r3, [r3, #0x0] + lsl r3, r3, #0x3 + add r3, r3, r1 + add r3, #0x20 + strb r3, [r2, #0x5] + add r3, r4, #0x0 + add r3, #0x98 + ldrb r3, [r3, #0x0] + add r1, #0x20 + lsl r3, r3, #0x3 + strb r3, [r2, #0x6] + add r3, r4, #0x0 + add r3, #0x98 + ldrb r3, [r3, #0x0] + lsl r3, r3, #0x3 + add r3, #0x30 + strb r3, [r2, #0x7] + add r2, r2, #0x4 + cmp r0, #0x2 + blt _02014820 + add r0, r4, #0x0 + add r0, #0x84 + ldr r0, [r0, #0x0] + ldr r2, _02014874 ; =sub_02014878 + str r0, [sp, #0x0] + add r0, r4, #0x4 + mov r1, #0x2 + add r3, r4, #0x0 + bl sub_020220C4 + str r0, [r4, #0x0] + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_02014874: .word sub_02014878 + 1 + + thumb_func_start sub_02014878 +sub_02014878: ; 0x02014878 + push {r4, lr} + add r3, r2, #0x0 + add r3, #0x9b + ldrb r3, [r3, #0x0] + mov r4, #0xf0 + bic r3, r4 + lsl r4, r1, #0x18 + lsr r4, r4, #0x18 + lsl r4, r4, #0x1c + lsr r4, r4, #0x18 + orr r4, r3 + add r3, r2, #0x0 + add r3, #0x9b + strb r4, [r3, #0x0] + cmp r1, #0x0 + bne _020148A2 + add r2, #0x9a + strb r0, [r2, #0x0] + ldr r0, _020148A4 ; =0x000005E4 + bl sub_020054C8 +_020148A2: + pop {r4, pc} + .balign 4 +_020148A4: .word 0x000005E4 + + thumb_func_start sub_020148A8 +sub_020148A8: ; 0x020148A8 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r1, #0x0 + str r2, [sp, #0x8] + str r0, [sp, #0x4] + ldr r1, [r5, #0x24] + ldr r2, [r5, #0x28] + add r0, #0x28 + bl sub_020149FC + ldr r1, [r5, #0x0] + ldr r0, [sp, #0x4] + ldr r6, [sp, #0x4] + str r1, [r0, #0x0] + ldr r1, [r5, #0x4] + ldr r4, [sp, #0x4] + str r1, [r0, #0x4] + add r0, r5, #0x0 + add r0, #0x2c + ldrb r1, [r0, #0x0] + ldr r0, [sp, #0x4] + add r6, #0x18 + add r0, #0x34 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x2d + ldrb r1, [r0, #0x0] + ldr r0, [sp, #0x4] + add r7, r5, #0x0 + add r0, #0x35 + strb r1, [r0, #0x0] + mov r0, #0x0 + str r0, [sp, #0xc] +_020148EA: + ldr r0, [sp, #0x8] + mov r2, #0x1 + str r0, [sp, #0x0] + ldr r0, [r5, #0x8] + ldr r1, [r7, #0xc] + add r3, r6, #0x0 + bl sub_02006BDC + str r0, [r4, #0x8] + ldr r0, [r4, #0x18] + ldr r1, [r5, #0x1c] + bl sub_02014BA4 + ldr r0, [r4, #0x18] + ldr r1, [r5, #0x20] + bl sub_02014BC4 + ldr r0, [sp, #0xc] + add r6, r6, #0x4 + add r0, r0, #0x1 + add r7, r7, #0x4 + add r4, r4, #0x4 + str r0, [sp, #0xc] + cmp r0, #0x4 + blt _020148EA + ldr r0, [sp, #0x4] + bl sub_020149D0 + ldr r0, [sp, #0x4] + mov r1, #0x0 + add r0, #0x36 + str r0, [sp, #0x4] + strb r1, [r0, #0x0] + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start sub_02014930 +sub_02014930: ; 0x02014930 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x28 + bl sub_02014A10 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x36 + ldrb r0, [r0, #0x0] + cmp r0, r4 + beq _02014952 + add r0, r5, #0x0 + bl sub_020149D0 + add r0, r5, #0x0 + add r0, #0x36 + strb r4, [r0, #0x0] +_02014952: + ldr r0, [r5, #0x2c] + sub r0, r0, #0x1 + cmp r4, r0 + bne _0201495E + mov r0, #0x1 + pop {r3-r5, pc} +_0201495E: + add r5, #0x28 + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0xc + bl sub_02014A08 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02014970 +sub_02014970: ; 0x02014970 + push {r4-r6, lr} + sub sp, #0x10 + add r6, r0, #0x0 + add r0, #0x35 + ldrb r0, [r0, #0x0] + ldr r1, [r6, #0x18] + add r3, r6, #0x0 + str r0, [sp, #0x0] + ldrh r0, [r1, #0x0] + mov r2, #0x0 + add r3, #0x34 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x4] + ldrh r0, [r1, #0x2] + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + str r2, [sp, #0xc] + ldr r1, [r6, #0x4] + ldrb r3, [r3, #0x0] + lsl r1, r1, #0x18 + ldr r0, [r6, #0x0] + lsr r1, r1, #0x18 + bl sub_02018540 + ldr r1, [r6, #0x4] + ldr r0, [r6, #0x0] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_0201AC68 + mov r4, #0x0 + add r5, r6, #0x0 +_020149B4: + ldr r0, [r5, #0x8] + bl sub_02016A18 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x4 + blt _020149B4 + add r0, r6, #0x0 + mov r1, #0x0 + mov r2, #0x38 + blx sub_020DF4A4 + add sp, #0x10 + pop {r4-r6, pc} + + thumb_func_start sub_020149D0 +sub_020149D0: ; 0x020149D0 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r0, #0x28 + bl sub_02014A10 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x35 + ldrb r0, [r0, #0x0] + lsl r2, r2, #0x2 + add r2, r4, r2 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + add r4, #0x34 + ldrb r3, [r4, #0x0] + ldr r2, [r2, #0x18] + bl sub_02014B58 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_020149FC +sub_020149FC: ; 0x020149FC + str r1, [r0, #0x0] + str r2, [r0, #0x4] + mov r1, #0x0 + str r1, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start sub_02014A08 +sub_02014A08: ; 0x02014A08 + ldr r2, [r0, #0x8] + add r1, r2, r1 + str r1, [r0, #0x8] + bx lr + + thumb_func_start sub_02014A10 +sub_02014A10: ; 0x02014A10 + push {r4-r5} + ldr r5, [r0, #0x4] + mov r2, #0x0 + cmp r5, #0x0 + bls _02014A34 + ldr r3, [r0, #0x0] + ldr r4, [r0, #0x8] +_02014A1E: + ldr r1, [r3, #0x0] + cmp r1, r4 + blt _02014A2A + add r0, r2, #0x0 + pop {r4-r5} + bx lr +_02014A2A: + ldr r1, [r0, #0x4] + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, r1 + blo _02014A1E +_02014A34: + sub r0, r5, #0x1 + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_02014A3C +sub_02014A3C: ; 0x02014A3C + push {r3-r7, lr} + sub sp, #0x8 + add r7, r0, #0x0 + str r1, [sp, #0x4] + ldr r0, [sp, #0x24] + mov r1, #0x14 + add r5, r2, #0x0 + add r6, r3, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + add r2, r4, #0x0 + mov r1, #0x14 + mov r0, #0x0 +_02014A58: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _02014A58 + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x4] + str r0, [sp, #0x0] + add r0, r7, #0x0 + mov r2, #0x1 + add r3, r4, #0x4 + bl sub_02006BB0 + str r0, [r4, #0x8] + str r5, [r4, #0x0] + ldr r0, [sp, #0x20] + str r6, [r4, #0xc] + str r0, [r4, #0x10] + ldr r0, _02014A88 ; =sub_02014AD4 + add r1, r4, #0x0 + mov r2, #0x80 + bl sub_0200CA98 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02014A88: .word sub_02014AD4 + 1 + + thumb_func_start sub_02014A8C +sub_02014A8C: ; 0x02014A8C + push {r3-r7, lr} + add r7, r0, #0x0 + str r1, [sp, #0x0] + ldr r0, [sp, #0x1c] + mov r1, #0x14 + add r5, r2, #0x0 + add r6, r3, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + add r2, r4, #0x0 + mov r1, #0x14 + mov r0, #0x0 +_02014AA6: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _02014AA6 + ldr r1, [sp, #0x0] + ldr r3, [sp, #0x1c] + add r0, r7, #0x0 + add r2, r4, #0x0 + bl sub_02006C08 + str r0, [r4, #0x4] + str r5, [r4, #0x8] + ldr r0, [sp, #0x18] + str r6, [r4, #0xc] + str r0, [r4, #0x10] + ldr r0, _02014AD0 ; =sub_02014B10 + add r1, r4, #0x0 + mov r2, #0x80 + bl sub_0200CA98 + pop {r3-r7, pc} + .balign 4 +_02014AD0: .word sub_02014B10 + 1 + + thumb_func_start sub_02014AD4 +sub_02014AD4: ; 0x02014AD4 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, [r4, #0x4] + add r5, r0, #0x0 + ldr r0, [r1, #0x14] + ldr r1, [r1, #0x10] + blx sub_020CC15C + ldr r3, [r4, #0x4] + ldr r0, [r4, #0x10] + str r0, [sp, #0x0] + ldr r1, [r4, #0xc] + ldr r2, [r3, #0x14] + lsl r1, r1, #0x18 + ldr r0, [r4, #0x0] + ldr r3, [r3, #0x10] + lsr r1, r1, #0x18 + bl sub_02017E14 + add r0, r5, #0x0 + bl sub_0200CAB4 + ldr r0, [r4, #0x8] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02014B10 +sub_02014B10: ; 0x02014B10 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x10] + ldr r0, [r0, #0xc] + blx sub_020CC15C + ldr r0, [r4, #0x8] + cmp r0, #0x0 + bne _02014B34 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0xc] + ldr r0, [r0, #0xc] + ldr r2, [r4, #0x10] + blx sub_020C9550 + b _02014B44 +_02014B34: + cmp r0, #0x4 + bne _02014B44 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0xc] + ldr r0, [r0, #0xc] + ldr r2, [r4, #0x10] + blx sub_020C94E8 +_02014B44: + add r0, r5, #0x0 + bl sub_0200CAB4 + ldr r0, [r4, #0x4] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r3-r5, pc} + + thumb_func_start sub_02014B58 +sub_02014B58: ; 0x02014B58 + push {r3-r6, lr} + sub sp, #0x1c + add r4, r1, #0x0 + add r1, r2, #0x0 + add r2, r3, #0x0 + ldrh r6, [r1, #0x0] + ldrh r3, [r1, #0x2] + lsl r2, r2, #0x18 + lsl r6, r6, #0x15 + lsr r6, r6, #0x18 + lsl r3, r3, #0x15 + str r6, [sp, #0x0] + lsr r3, r3, #0x18 + str r3, [sp, #0x4] + add r1, #0xc + str r1, [sp, #0x8] + mov r1, #0x0 + str r1, [sp, #0xc] + str r1, [sp, #0x10] + str r6, [sp, #0x14] + str r3, [sp, #0x18] + ldr r3, [sp, #0x30] + lsl r1, r4, #0x18 + lsl r3, r3, #0x18 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + add r5, r0, #0x0 + bl sub_02018170 + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl sub_0201AC68 + add sp, #0x1c + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02014BA4 +sub_02014BA4: ; 0x02014BA4 + push {r3-r4} + ldr r2, [r0, #0x8] + add r0, #0xc + lsr r4, r2, #0x1 + mov r3, #0x0 + cmp r4, #0x0 + ble _02014BC0 +_02014BB2: + ldrh r2, [r0, #0x0] + add r3, r3, #0x1 + add r2, r2, r1 + strh r2, [r0, #0x0] + add r0, r0, #0x2 + cmp r3, r4 + blt _02014BB2 +_02014BC0: + pop {r3-r4} + bx lr + + thumb_func_start sub_02014BC4 +sub_02014BC4: ; 0x02014BC4 + push {r4-r5} + ldr r2, [r0, #0x8] + add r0, #0xc + lsr r3, r2, #0x1 + mov r2, #0x0 + cmp r3, #0x0 + ble _02014BEA + ldr r4, _02014BF0 ; =0x00000FFF + lsl r1, r1, #0xc +_02014BD6: + ldrh r5, [r0, #0x0] + add r2, r2, #0x1 + and r5, r4 + strh r5, [r0, #0x0] + ldrh r5, [r0, #0x0] + orr r5, r1 + strh r5, [r0, #0x0] + add r0, r0, #0x2 + cmp r2, r3 + blt _02014BD6 +_02014BEA: + pop {r4-r5} + bx lr + nop +_02014BF0: .word 0x00000FFF + + thumb_func_start sub_02014BF4 +sub_02014BF4: ; 0x02014BF4 + push {r3-r7, lr} + add r7, r1, #0x0 + mov r1, #0xc + add r5, r0, #0x0 + add r6, r2, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + strb r6, [r4, #0x8] + mov r0, #0x1d + strb r7, [r4, #0x9] + lsl r0, r0, #0x4 + add r6, r7, #0x0 + mul r6, r0 + add r0, r5, #0x0 + add r1, r6, #0x0 + str r5, [r4, #0x4] + bl sub_02016998 + mov r1, #0x0 + add r2, r6, #0x0 + str r0, [r4, #0x0] + blx sub_020CE34C + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02014C28 +sub_02014C28: ; 0x02014C28 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02014C3C +sub_02014C3C: ; 0x02014C3C + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x19 + blo _02014C48 + bl sub_02020C2C +_02014C48: + ldr r0, _02014C50 ; =0x020ED64C + ldrb r0, [r0, r4] + pop {r4, pc} + nop +_02014C50: .word 0x020ED64C + + thumb_func_start sub_02014C54 +sub_02014C54: ; 0x02014C54 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + str r3, [sp, #0x4] + add r0, r2, #0x0 + ldrh r6, [r0, #0x0] + ldrh r0, [r0, #0x2] + add r7, r1, #0x0 + ldrb r1, [r5, #0x9] + str r0, [sp, #0x8] + ldr r0, [sp, #0x4] + str r2, [sp, #0x0] + cmp r0, r1 + blo _02014C74 + bl sub_02020C2C +_02014C74: + ldr r0, [sp, #0x4] + mov r1, #0x1d + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r5, #0x0] + mul r4, r1 + add r0, r0, r4 + ldr r0, [r0, #0x10] + cmp r0, #0x0 + beq _02014C8C + bl sub_02020C2C +_02014C8C: + ldr r0, [r5, #0x0] + mov r2, #0x1d + add r0, r0, r4 + mov r1, #0x0 + lsl r2, r2, #0x4 + blx sub_020CE34C + ldr r0, [r5, #0x0] + mov r1, #0x1 + add r0, r0, r4 + str r1, [r0, #0x10] + ldr r0, [r5, #0x0] + cmp r6, #0x86 + str r7, [r0, r4] + blt _02014CAE + mov r6, #0x0 + str r6, [sp, #0x8] +_02014CAE: + ldr r0, [r5, #0x0] + add r0, r0, r4 + str r6, [r0, #0x14] + ldrb r0, [r5, #0x8] + cmp r0, #0x0 + beq _02014CC0 + ldr r0, [sp, #0x0] + ldrb r2, [r0, #0x4] + b _02014CC2 +_02014CC0: + mov r2, #0x0 +_02014CC2: + ldr r0, [r5, #0x0] + add r1, r0, r4 + mov r0, #0x73 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + ldr r1, [r5, #0x0] + ldr r2, [r5, #0x4] + add r1, r1, r4 + ldr r1, [r1, #0x14] + mov r0, #0x5e + bl sub_02006528 + ldr r1, [r5, #0x0] + mov r2, #0x0 + add r1, r1, r4 + str r0, [r1, #0x8] + ldr r0, [r5, #0x0] + mov r6, #0x1c + add r1, r0, r4 + ldr r0, [r1, #0x8] + str r0, [r1, #0xc] + ldr r0, [r5, #0x0] + add r0, r0, r4 + str r2, [r0, #0x1c] + ldr r0, [r5, #0x0] + add r0, r0, r4 + str r2, [r0, #0x20] + ldr r0, [r5, #0x0] + add r1, r0, r4 + ldr r0, _02014D74 ; =0x000001CD + strb r2, [r1, r0] + ldr r1, [r5, #0x0] + add r3, r1, r4 + add r1, r0, #0x1 + strb r6, [r3, r1] + ldr r1, [r5, #0x0] + add r0, r0, #0x2 + add r1, r1, r4 + strb r2, [r1, r0] + ldr r1, [r5, #0x0] + ldr r0, _02014D78 ; =sub_02014DD8 + add r1, r1, r4 + bl sub_0200CA44 + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x4] + ldr r0, [r5, #0x0] + add r1, r0, r4 + ldr r0, [sp, #0x8] + str r0, [r1, #0x54] + add r0, r7, #0x0 + mov r1, #0x0 + bl sub_0200782C + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x58] + add r0, r7, #0x0 + mov r1, #0x1 + bl sub_0200782C + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x5c] + ldr r1, [r5, #0x0] + mov r0, #0x0 + add r1, r1, r4 + str r0, [r1, #0x60] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x64] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x68] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x6c] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x70] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x74] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x78] + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02014D74: .word 0x000001CD +_02014D78: .word sub_02014DD8 + 1 + + thumb_func_start sub_02014D7C +sub_02014D7C: ; 0x02014D7C + push {r3-r5, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0x9] + add r4, r1, #0x0 + cmp r4, r0 + blo _02014D8C + bl sub_02020C2C +_02014D8C: + mov r0, #0x1d + lsl r0, r0, #0x4 + ldr r1, [r5, #0x0] + mul r0, r4 + add r0, r1, r0 + ldr r0, [r0, #0x20] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02014D9C +sub_02014D9C: ; 0x02014D9C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x1d + lsl r0, r0, #0x4 + add r4, r1, #0x0 + mul r4, r0 + ldr r0, [r5, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _02014DD6 + bl sub_0200CAB4 + ldr r1, [r5, #0x0] + mov r0, #0x0 + add r1, r1, r4 + str r0, [r1, #0x4] + ldr r1, [r5, #0x0] + mov r2, #0x1 + add r1, r1, r4 + str r2, [r1, #0x20] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x10] + ldr r0, [r5, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x8] + bl sub_02016A18 +_02014DD6: + pop {r3-r5, pc} + + thumb_func_start sub_02014DD8 +sub_02014DD8: ; 0x02014DD8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x54] + cmp r0, #0x0 + bne _02014DEC + add r0, r4, #0x0 + bl sub_02014E10 + b _02014DF0 +_02014DEC: + sub r0, r0, #0x1 + str r0, [r4, #0x54] +_02014DF0: + ldr r0, [r4, #0x1c] + cmp r0, #0x0 + beq _02014E0E + mov r0, #0x1 + str r0, [r4, #0x20] + mov r0, #0x0 + str r0, [r4, #0x10] + add r0, r5, #0x0 + bl sub_0200CAB4 + mov r0, #0x0 + str r0, [r4, #0x4] + ldr r0, [r4, #0x8] + bl sub_02016A18 +_02014E0E: + pop {r3-r5, pc} + + thumb_func_start sub_02014E10 +sub_02014E10: ; 0x02014E10 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r6, #0x0 + str r6, [r5, #0x18] + add r7, r5, #0x0 + str r6, [r5, #0x44] + add r4, r6, #0x0 + add r7, #0x7c +_02014E20: + mov r0, #0x54 + add r1, r4, #0x0 + mul r1, r0 + add r0, r7, r1 + ldr r1, [r7, r1] + cmp r1, #0x0 + beq _02014E4E + add r1, r0, #0x0 + add r1, #0x2d + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + bne _02014E40 + ldr r2, [r0, #0x50] + add r1, r5, #0x0 + blx r2 + b _02014E54 +_02014E40: + add r1, r0, #0x0 + add r1, #0x2d + ldrb r1, [r1, #0x0] + add r0, #0x2d + sub r1, r1, #0x1 + strb r1, [r0, #0x0] + b _02014E54 +_02014E4E: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 +_02014E54: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + blo _02014E20 + cmp r6, #0x4 + bne _02014E68 + ldr r0, _02014EFC ; =0x000001CD + mov r1, #0x0 + strb r1, [r5, r0] +_02014E68: + ldr r0, _02014EFC ; =0x000001CD + ldrb r1, [r5, r0] + cmp r1, #0x0 + beq _02014E7E + add r0, r5, #0x0 + bl sub_020156E8 + add r0, r5, #0x0 + bl sub_02015730 + pop {r3-r7, pc} +_02014E7E: + add r0, r0, #0x2 + ldrb r0, [r5, r0] + cmp r0, #0x0 + beq _02014E96 + ldr r0, [r5, #0x0] + bl sub_02007F20 + cmp r0, #0x0 + bne _02014EF8 + ldr r0, _02014F00 ; =0x000001CF + mov r1, #0x0 + strb r1, [r5, r0] +_02014E96: + add r6, r5, #0x0 + add r4, r5, #0x0 + ldr r7, _02014F04 ; =0x020ED6A4 + add r6, #0xc + add r4, #0x44 +_02014EA0: + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x0] + cmp r0, #0x22 + blo _02014EB2 + bl sub_02020C2C +_02014EB2: + ldr r1, [r5, #0xc] + add r0, r5, #0x0 + ldr r1, [r1, #0x0] + lsl r1, r1, #0x2 + ldr r1, [r7, r1] + blx r1 + ldr r0, [r5, #0x1c] + cmp r0, #0x0 + bne _02014EF8 + ldr r0, [r6, #0x0] + add r0, r0, #0x4 + str r0, [r6, #0x0] + ldr r0, [r5, #0x18] + cmp r0, #0x0 + bne _02014EF8 + ldr r0, _02014EFC ; =0x000001CD + ldrb r0, [r5, r0] + cmp r0, #0x0 + beq _02014EE6 + add r0, r5, #0x0 + bl sub_020156E8 + add r0, r5, #0x0 + bl sub_02015730 + pop {r3-r7, pc} +_02014EE6: + mov r0, #0x1 + ldr r1, [r5, #0x44] + lsl r0, r0, #0x8 + cmp r1, r0 + blt _02014EA0 + bl sub_02020C2C + mov r0, #0x1 + str r0, [r5, #0x1c] +_02014EF8: + pop {r3-r7, pc} + nop +_02014EFC: .word 0x000001CD +_02014F00: .word 0x000001CF +_02014F04: .word 0x020ED6A4 + + thumb_func_start sub_02014F08 +sub_02014F08: ; 0x02014F08 + push {r4, lr} + lsl r1, r1, #0x2 + ldr r4, [r0, r1] + cmp r2, #0x1 + beq _02014F16 + bl sub_02020C2C +_02014F16: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02014F1C: + .byte 0x01, 0x4B, 0x0A, 0x1C + .byte 0x00, 0x21, 0x18, 0x47, 0x09, 0x4F, 0x01, 0x02 + + thumb_func_start sub_02014F28 +sub_02014F28: ; 0x02014F28 + ldr r3, _02014F30 ; =0x02014F1D + mov r1, #0x1 + bx r3 + nop +_02014F30: .word 0x02014F1D + + thumb_func_start sub_02014F34 +sub_02014F34: ; 0x02014F34 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r3, #0x0 + add r0, #0x7c + mov r2, #0x54 +_02014F3E: + add r1, r3, #0x0 + mul r1, r2 + add r4, r0, r1 + ldr r1, [r0, r1] + cmp r1, #0x0 + bne _02014F68 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x54 + blx sub_020CE34C + mov r0, #0x1 + str r0, [r4, #0x0] + mov r0, #0xc + add r1, r5, #0x0 + mul r1, r0 + ldr r0, _02014F7C ; =0x020ED668 + ldr r0, [r0, r1] + str r0, [r4, #0x50] + add r0, r4, #0x0 + pop {r3-r5, pc} +_02014F68: + add r1, r3, #0x1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0x4 + blo _02014F3E + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02014F7C: .word 0x020ED668 + + thumb_func_start sub_02014F80 +sub_02014F80: ; 0x02014F80 + push {r4, lr} + add r4, r1, #0x0 + ldr r1, [r0, #0xc] + add r1, r1, #0x4 + str r1, [r0, #0xc] + add r0, r1, #0x0 + bl sub_02014F28 + str r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_02014F94 +sub_02014F94: ; 0x02014F94 + push {r4, lr} + add r4, r1, #0x0 + ldr r1, [r0, #0xc] + add r1, r1, #0x4 + str r1, [r0, #0xc] + add r0, r1, #0x0 + bl sub_02014F28 + strb r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_02014FA8 +sub_02014FA8: ; 0x02014FA8 + push {r4, lr} + add r4, r1, #0x0 + ldr r1, [r0, #0xc] + add r1, r1, #0x4 + str r1, [r0, #0xc] + add r0, r1, #0x0 + bl sub_02014F28 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x0] + cmp r0, #0x8 + blo _02014FC4 + bl sub_02020C2C +_02014FC4: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02014FC8 +sub_02014FC8: ; 0x02014FC8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl sub_02014FA8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02014FA8 + pop {r3-r5, pc} + + thumb_func_start sub_02014FDC +sub_02014FDC: ; 0x02014FDC + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02014FA8 + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x12 + bne _0201501C + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + bl sub_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + add r1, r6, #0x0 + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x0] + add r0, r5, #0x0 + bl sub_02014F80 + add sp, #0x4 + pop {r3-r6, pc} +_0201501C: + cmp r0, #0x13 + bne _02015048 + add r1, sp, #0x0 + add r2, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + add r2, #0x1 + bl sub_02014FC8 + add r0, sp, #0x0 + ldrb r1, [r0, #0x2] + add sp, #0x4 + lsl r1, r1, #0x2 + add r1, r5, r1 + ldr r1, [r1, #0x24] + str r1, [r4, #0x0] + ldrb r0, [r0, #0x1] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [r6, #0x0] + pop {r3-r6, pc} +_02015048: + bl sub_02020C2C + add sp, #0x4 + pop {r3-r6, pc} + + thumb_func_start sub_02015050 +sub_02015050: ; 0x02015050 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02014FA8 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x1 + bl sub_02014F94 + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + cmp r0, #0x12 + bne _02015082 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02014F80 + b _020150A2 +_02015082: + cmp r0, #0x13 + bne _0201509E + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3 + bl sub_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x3] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x0] + b _020150A2 +_0201509E: + bl sub_02020C2C +_020150A2: + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x12 + bne _020150B6 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02014F80 + add sp, #0x4 + pop {r3-r6, pc} +_020150B6: + cmp r0, #0x13 + bne _020150D4 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + bl sub_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [r6, #0x0] + pop {r3-r6, pc} +_020150D4: + bl sub_02020C2C + add sp, #0x4 + pop {r3-r6, pc} + + thumb_func_start sub_020150DC +sub_020150DC: ; 0x020150DC + push {r3-r7, lr} + sub sp, #0x8 + add r4, r2, #0x0 + add r2, sp, #0x0 + add r2, #0x3 + add r5, r0, #0x0 + add r6, r3, #0x0 + bl sub_02014FC8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x3] + add r1, sp, #0x0 + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r7, [r0, #0x24] + add r0, r5, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x14 + bne _02015112 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02014F80 + b _02015132 +_02015112: + cmp r0, #0x15 + bne _0201512E + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + bl sub_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [r6, #0x0] + b _02015132 +_0201512E: + bl sub_02020C2C +_02015132: + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x14 + bne _0201514C + add r0, r5, #0x0 + add r1, sp, #0x4 + bl sub_02014F80 + b _0201516C +_0201514C: + cmp r0, #0x15 + bne _02015168 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x1 + bl sub_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0x4] + b _0201516C +_02015168: + bl sub_02020C2C +_0201516C: + ldr r0, [sp, #0x4] + add r0, r7, r0 + lsr r2, r0, #0x1f + lsl r1, r0, #0x10 + sub r1, r1, r2 + mov r0, #0x10 + ror r1, r0 + add r0, r2, r1 + str r0, [r4, #0x0] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02015184 +sub_02015184: ; 0x02015184 + ldr r2, [r0, #0x0] + ldr r0, [r1, #0x0] + sub r0, r2, r0 + bpl _02015190 + mov r0, #0xf + bx lr +_02015190: + cmp r0, #0x0 + ble _02015198 + mov r0, #0x10 + bx lr +_02015198: + mov r0, #0x11 + bx lr + + thumb_func_start sub_0201519C +sub_0201519C: ; 0x0201519C + add r2, r0, #0x0 + ldr r0, [r2, #0x0] + ldr r2, [r2, #0x74] + mov r1, #0x1 + neg r3, r2 + asr r2, r3, #0x2 + lsr r2, r2, #0x1d + add r2, r3, r2 + ldr r3, _020151B4 ; =sub_020079E0 + asr r2, r2, #0x3 + bx r3 + nop +_020151B4: .word sub_020079E0 + 1 + + thumb_func_start sub_020151B8 +sub_020151B8: ; 0x020151B8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020151D0 + mov r0, #0x1 + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + pop {r4, pc} + + thumb_func_start sub_020151C8 +sub_020151C8: ; 0x020151C8 + mov r1, #0x1 + str r1, [r0, #0x18] + bx lr + .balign 4 + + thumb_func_start sub_020151D0 +sub_020151D0: ; 0x020151D0 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r2, [r4, #0x58] + mov r1, #0x0 + bl sub_02007558 + ldr r0, [r4, #0x0] + ldr r2, [r4, #0x5c] + mov r1, #0x1 + bl sub_02007558 + ldr r0, [r4, #0x0] + mov r1, #0x9 + mov r2, #0x0 + bl sub_02007558 + ldr r0, [r4, #0x0] + mov r1, #0xa + mov r2, #0x0 + bl sub_02007558 + mov r1, #0xc + add r2, r1, #0x0 + ldr r0, [r4, #0x0] + add r2, #0xf4 + bl sub_02007558 + mov r1, #0xd + add r2, r1, #0x0 + ldr r0, [r4, #0x0] + add r2, #0xf3 + bl sub_02007558 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02015218 +sub_02015218: ; 0x02015218 + push {r3-r4, lr} + sub sp, #0x4 + add r1, sp, #0x0 + add r1, #0x1 + add r2, sp, #0x0 + add r4, r0, #0x0 + bl sub_02014FC8 + add r0, sp, #0x0 + ldrb r1, [r0, #0x0] + ldrb r0, [r0, #0x1] + lsl r1, r1, #0x2 + add r1, r4, r1 + lsl r0, r0, #0x2 + ldr r1, [r1, #0x24] + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02015240 +sub_02015240: ; 0x02015240 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl sub_02014FDC + ldr r1, [sp, #0x8] + ldr r0, [sp, #0x4] + add r1, r1, r0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_02015264 +sub_02015264: ; 0x02015264 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl sub_02014FDC + ldr r1, [sp, #0x8] + ldr r0, [sp, #0x4] + add r2, r1, #0x0 + mul r2, r0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + str r2, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0201528C +sub_0201528C: ; 0x0201528C + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl sub_02015050 + ldr r1, [sp, #0x8] + ldr r0, [sp, #0x4] + sub r1, r1, r0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_020152B0 +sub_020152B0: ; 0x020152B0 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl sub_02015050 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + blx sub_020EBC80 + add r1, sp, #0x0 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x2 + add r1, r4, r1 + str r0, [r1, #0x24] + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_020152D8 +sub_020152D8: ; 0x020152D8 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl sub_02015050 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + blx sub_020EBC80 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02015300 +sub_02015300: ; 0x02015300 + push {r3-r5, lr} + sub sp, #0x10 + add r1, sp, #0x0 + add r5, r0, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x14 + bne _02015334 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3 + bl sub_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x3] + add r1, sp, #0x8 + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0xc] + add r0, r5, #0x0 + bl sub_02014F80 + b _02015362 +_02015334: + cmp r0, #0x15 + bne _0201535E + add r1, sp, #0x0 + add r2, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3 + add r2, #0x2 + bl sub_02014FC8 + add r0, sp, #0x0 + ldrb r1, [r0, #0x3] + lsl r1, r1, #0x2 + add r1, r5, r1 + ldr r1, [r1, #0x24] + str r1, [sp, #0xc] + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0x8] + b _02015362 +_0201535E: + bl sub_02020C2C +_02015362: + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x1 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + cmp r0, #0x11 + bls _02015378 + bl sub_02020C2C +_02015378: + add r0, sp, #0xc + add r1, sp, #0x8 + bl sub_02015184 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x14 + bne _020153A6 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3 + bl sub_02014FA8 + add r0, r5, #0x0 + add r1, sp, #0x4 + bl sub_02014F80 + b _020153CA +_020153A6: + cmp r0, #0x15 + bne _020153C6 + add r1, sp, #0x0 + add r2, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3 + add r2, #0x2 + bl sub_02014FC8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0x4] + b _020153CA +_020153C6: + bl sub_02020C2C +_020153CA: + add r0, sp, #0x0 + ldrb r1, [r0, #0x1] + cmp r1, r4 + bne _020153DC + ldrb r0, [r0, #0x3] + ldr r1, [sp, #0x4] + lsl r0, r0, #0x2 + add r0, r5, r0 + str r1, [r0, #0x24] +_020153DC: + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_020153E0 +sub_020153E0: ; 0x020153E0 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r1, sp, #0x0 + bl sub_02014FA8 + ldr r0, [r4, #0xc] + add r0, r0, #0x4 + str r0, [r4, #0xc] + bl sub_02014F28 + add r1, sp, #0x0 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x2 + add r1, r4, r1 + str r0, [r1, #0x24] + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_02015404 +sub_02015404: ; 0x02015404 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x50] + cmp r0, #0x0 + beq _02015412 + bl sub_02020C2C +_02015412: + ldr r0, [r4, #0xc] + add r0, r0, #0x4 + str r0, [r4, #0xc] + str r0, [r4, #0x50] + ldr r0, [r4, #0xc] + bl sub_02014F28 + str r0, [r4, #0x48] + mov r0, #0x0 + str r0, [r4, #0x4c] + pop {r4, pc} + + thumb_func_start sub_02015428 +sub_02015428: ; 0x02015428 + ldr r1, [r0, #0x4c] + add r2, r1, #0x1 + str r2, [r0, #0x4c] + ldr r1, [r0, #0x48] + cmp r2, r1 + blt _0201543E + mov r1, #0x0 + str r1, [r0, #0x50] + str r1, [r0, #0x4c] + str r1, [r0, #0x48] + bx lr +_0201543E: + ldr r1, [r0, #0x50] + str r1, [r0, #0xc] + bx lr + + thumb_func_start sub_02015444 +sub_02015444: ; 0x02015444 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r1, sp, #0x4 + bl sub_02014F80 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02014FA8 + add r2, sp, #0x0 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x0] + ldr r1, [sp, #0x4] + lsl r2, r2, #0x2 + add r2, r4, r2 + ldr r2, [r2, #0x24] + bl sub_02007558 + add sp, #0x8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02015470 +sub_02015470: ; 0x02015470 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r1, sp, #0x4 + bl sub_02014F80 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02014FA8 + add r2, sp, #0x0 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x0] + ldr r1, [sp, #0x4] + lsl r2, r2, #0x2 + add r2, r4, r2 + ldr r2, [r2, #0x24] + bl sub_020079E0 + add sp, #0x8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201549C +sub_0201549C: ; 0x0201549C + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x8 + add r4, r0, #0x0 + bl sub_02014F80 + add r1, sp, #0x0 + add r0, r4, #0x0 + add r1, #0x1 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + cmp r0, #0x14 + bne _020154C4 + add r0, r4, #0x0 + add r1, sp, #0x4 + bl sub_02014F80 + b _020154E4 +_020154C4: + cmp r0, #0x15 + bne _020154E0 + add r1, sp, #0x0 + add r0, r4, #0x0 + add r1, #0x2 + bl sub_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0x4] + b _020154E4 +_020154E0: + bl sub_02020C2C +_020154E4: + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x16 + bne _02015502 + ldr r0, [r4, #0x0] + ldr r1, [sp, #0x8] + ldr r2, [sp, #0x4] + bl sub_02007558 + add sp, #0xc + pop {r3-r4, pc} +_02015502: + cmp r0, #0x17 + bne _02015514 + ldr r0, [r4, #0x0] + ldr r1, [sp, #0x8] + ldr r2, [sp, #0x4] + bl sub_020079E0 + add sp, #0xc + pop {r3-r4, pc} +_02015514: + bl sub_02020C2C + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_0201551C +sub_0201551C: ; 0x0201551C + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl sub_020150DC + ldr r0, [sp, #0x8] + ldr r2, [sp, #0x4] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _0201554C ; =0x020FFA38 + ldrsh r0, [r0, r1] + mul r0, r2 + asr r1, r0, #0xc + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + nop +_0201554C: .word 0x020FFA38 + + thumb_func_start sub_02015550 +sub_02015550: ; 0x02015550 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl sub_020150DC + ldr r1, [sp, #0x8] + ldr r0, [sp, #0x4] + asr r1, r1, #0x4 + lsl r1, r1, #0x1 + add r1, r1, #0x1 + lsl r2, r1, #0x1 + ldr r1, _02015584 ; =0x020FFA38 + ldrsh r1, [r1, r2] + mul r1, r0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + asr r1, r1, #0xc + lsl r0, r0, #0x2 + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + nop +_02015584: .word 0x020FFA38 + + thumb_func_start sub_02015588 +sub_02015588: ; 0x02015588 + push {r3-r4, lr} + sub sp, #0x4 + add r1, sp, #0x0 + add r4, r0, #0x0 + add r1, #0x1 + bl sub_02014FA8 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r1, [r0, #0x0] + cmp r1, #0x8 + bne _020155B4 + ldrb r0, [r0, #0x1] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x60] + pop {r3-r4, pc} +_020155B4: + cmp r1, #0x9 + bne _020155C6 + ldrb r0, [r0, #0x1] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x64] + pop {r3-r4, pc} +_020155C6: + bl sub_02020C2C + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_020155D0 +sub_020155D0: ; 0x020155D0 + push {r3-r4, lr} + sub sp, #0x4 + add r1, sp, #0x0 + add r4, r0, #0x0 + add r1, #0x1 + bl sub_02014FA8 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r1, [r0, #0x0] + cmp r1, #0x8 + bne _02015600 + ldrb r0, [r0, #0x1] + ldr r1, [r4, #0x60] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + add r0, r1, r0 + str r0, [r4, #0x60] + pop {r3-r4, pc} +_02015600: + cmp r1, #0x9 + bne _02015616 + ldrb r0, [r0, #0x1] + ldr r1, [r4, #0x64] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + add r0, r1, r0 + str r0, [r4, #0x64] + pop {r3-r4, pc} +_02015616: + bl sub_02020C2C + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02015620 +sub_02015620: ; 0x02015620 + push {r3-r5, lr} + sub sp, #0x8 + add r1, sp, #0x0 + add r1, #0x3 + add r5, r0, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x3] + cmp r0, #0x8 + bne _0201563C + add r4, r5, #0x0 + add r4, #0x60 + b _0201567C +_0201563C: + cmp r0, #0x9 + bne _02015646 + add r4, r5, #0x0 + add r4, #0x64 + b _0201567C +_02015646: + cmp r0, #0xa + bne _02015650 + add r4, r5, #0x0 + add r4, #0x68 + b _0201567C +_02015650: + cmp r0, #0xb + bne _0201565A + add r4, r5, #0x0 + add r4, #0x6c + b _0201567C +_0201565A: + cmp r0, #0xc + bne _02015664 + add r4, r5, #0x0 + add r4, #0x70 + b _0201567C +_02015664: + cmp r0, #0xd + bne _0201566E + add r4, r5, #0x0 + add r4, #0x74 + b _0201567C +_0201566E: + cmp r0, #0xe + bne _02015678 + add r4, r5, #0x0 + add r4, #0x78 + b _0201567C +_02015678: + bl sub_02020C2C +_0201567C: + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x1 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + cmp r0, #0x14 + bne _02015698 + add r0, r5, #0x0 + add r1, sp, #0x4 + bl sub_02014F80 + b _020156B8 +_02015698: + cmp r0, #0x15 + bne _020156B4 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + bl sub_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0x4] + b _020156B8 +_020156B4: + bl sub_02020C2C +_020156B8: + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x16 + bne _020156D0 + ldr r0, [sp, #0x4] + add sp, #0x8 + str r0, [r4, #0x0] + pop {r3-r5, pc} +_020156D0: + cmp r0, #0x17 + bne _020156E0 + ldr r0, [sp, #0x4] + ldr r1, [r4, #0x0] + add sp, #0x8 + add r0, r1, r0 + str r0, [r4, #0x0] + pop {r3-r5, pc} +_020156E0: + bl sub_02020C2C + add sp, #0x8 + pop {r3-r5, pc} + + thumb_func_start sub_020156E8 +sub_020156E8: ; 0x020156E8 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r0, #0x73 + lsl r0, r0, #0x2 + ldrb r0, [r4, r0] + cmp r0, #0x0 + ldr r0, [r4, #0x0] + beq _0201570A + ldr r3, [r4, #0x60] + ldr r2, [r4, #0x68] + ldr r5, [r4, #0x58] + add r2, r3, r2 + mov r1, #0x0 + sub r2, r5, r2 + bl sub_02007558 + b _0201571A +_0201570A: + ldr r3, [r4, #0x58] + ldr r2, [r4, #0x60] + ldr r5, [r4, #0x68] + add r2, r3, r2 + mov r1, #0x0 + add r2, r5, r2 + bl sub_02007558 +_0201571A: + ldr r3, [r4, #0x5c] + ldr r2, [r4, #0x64] + ldr r5, [r4, #0x6c] + add r2, r3, r2 + ldr r0, [r4, #0x0] + mov r1, #0x1 + add r2, r5, r2 + bl sub_02007558 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02015730 +sub_02015730: ; 0x02015730 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0xc + add r2, r1, #0x0 + ldr r3, [r4, #0x70] + add r2, #0xf4 + ldr r0, [r4, #0x0] + add r2, r3, r2 + bl sub_02007558 + mov r1, #0xd + add r2, r1, #0x0 + ldr r3, [r4, #0x74] + add r2, #0xf3 + ldr r0, [r4, #0x0] + add r2, r3, r2 + bl sub_02007558 + ldr r2, [r4, #0x78] + ldr r0, [r4, #0x0] + lsl r2, r2, #0x10 + mov r1, #0x9 + lsr r2, r2, #0x10 + bl sub_02007558 + ldr r0, _02015794 ; =0x000001CE + ldrb r0, [r4, r0] + cmp r0, #0x1b + bne _02015778 + ldr r0, [r4, #0x74] + cmp r0, #0x0 + bge _02015792 + add r0, r4, #0x0 + bl sub_0201519C + pop {r4, pc} +_02015778: + cmp r0, #0x1d + bne _0201578A + ldr r0, [r4, #0x74] + cmp r0, #0x0 + beq _02015792 + add r0, r4, #0x0 + bl sub_0201519C + pop {r4, pc} +_0201578A: + cmp r0, #0x1c + beq _02015792 + bl sub_02020C2C +_02015792: + pop {r4, pc} + .balign 4 +_02015794: .word 0x000001CE + + thumb_func_start sub_02015798 +sub_02015798: ; 0x02015798 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r1, sp, #0x0 + bl sub_02014FA8 + ldr r0, [r4, #0xc] + add r0, r0, #0x4 + str r0, [r4, #0xc] + bl sub_02014F28 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x8 + beq _020157BA + cmp r0, #0xa + bne _020157CA +_020157BA: + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x68] + pop {r3-r4, pc} +_020157CA: + cmp r0, #0x9 + beq _020157D2 + cmp r0, #0xb + bne _020157E2 +_020157D2: + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x6c] + pop {r3-r4, pc} +_020157E2: + bl sub_02020C2C + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_020157EC +sub_020157EC: ; 0x020157EC + push {r4, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x54 + bl sub_02014F80 + mov r0, #0x1 + str r0, [r4, #0x18] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02015800 +sub_02015800: ; 0x02015800 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x4 + add r1, #0x2 + add r4, r0, #0x0 + bl sub_02014F94 + add r1, sp, #0x4 + add r0, r4, #0x0 + add r1, #0x1 + bl sub_02014F94 + add r0, r4, #0x0 + add r1, sp, #0x4 + bl sub_02014F94 + add r0, r4, #0x0 + add r1, sp, #0x8 + bl sub_02014F80 + ldr r0, [sp, #0x8] + add r3, sp, #0x4 + str r0, [sp, #0x0] + ldrb r1, [r3, #0x2] + ldrb r2, [r3, #0x1] + ldrb r3, [r3, #0x0] + ldr r0, [r4, #0x0] + bl sub_02007E68 + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02015840 +sub_02015840: ; 0x02015840 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02007F20 + cmp r0, #0x0 + beq _02015856 + ldr r0, _02015858 ; =0x000001CF + mov r1, #0x1 + strb r1, [r4, r0] + str r1, [r4, #0x18] +_02015856: + pop {r4, pc} + .balign 4 +_02015858: .word 0x000001CF + + thumb_func_start sub_0201585C +sub_0201585C: ; 0x0201585C + ldr r1, _02015864 ; =0x000001CD + mov r2, #0x1 + strb r2, [r0, r1] + bx lr + .balign 4 +_02015864: .word 0x000001CD + + thumb_func_start sub_02015868 +sub_02015868: ; 0x02015868 + push {r4, lr} + ldr r1, _0201589C ; =0x000001CE + add r4, r0, #0x0 + add r1, r4, r1 + bl sub_02014F94 + ldr r0, _0201589C ; =0x000001CE + mov r1, #0x1 + ldrb r0, [r4, r0] + add r2, r1, #0x0 + cmp r0, #0x1b + beq _02015886 + cmp r0, #0x1d + beq _02015886 + mov r2, #0x0 +_02015886: + cmp r2, #0x0 + bne _02015890 + cmp r0, #0x1c + beq _02015890 + mov r1, #0x0 +_02015890: + cmp r1, #0x0 + bne _02015898 + bl sub_02020C2C +_02015898: + pop {r4, pc} + nop +_0201589C: .word 0x000001CE + + thumb_func_start sub_020158A0 +sub_020158A0: ; 0x020158A0 + ldr r3, _020158A8 ; =sub_0201598C + mov r1, #0x0 + bx r3 + nop +_020158A8: .word sub_0201598C + 1 + + thumb_func_start sub_020158AC +sub_020158AC: ; 0x020158AC + ldr r3, _020158B4 ; =sub_0201598C + mov r1, #0x1 + bx r3 + nop +_020158B4: .word sub_0201598C + 1 + + thumb_func_start sub_020158B8 +sub_020158B8: ; 0x020158B8 + ldr r3, _020158C0 ; =sub_0201598C + mov r1, #0x2 + bx r3 + nop +_020158C0: .word sub_0201598C + 1 + + thumb_func_start sub_020158C4 +sub_020158C4: ; 0x020158C4 + ldr r3, _020158CC ; =sub_0201598C + mov r1, #0x3 + bx r3 + nop +_020158CC: .word sub_0201598C + 1 + + thumb_func_start sub_020158D0 +sub_020158D0: ; 0x020158D0 + ldr r3, _020158D8 ; =sub_0201598C + mov r1, #0x4 + bx r3 + nop +_020158D8: .word sub_0201598C + 1 + + thumb_func_start sub_020158DC +sub_020158DC: ; 0x020158DC + push {r3, lr} + cmp r0, #0x18 + bne _020158E8 + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + pop {r3, pc} +_020158E8: + cmp r0, #0x19 + bne _020158F6 + ldr r1, [r1, #0x0] + ldr r0, [r2, #0x0] + add r0, r1, r0 + str r0, [r3, #0x0] + pop {r3, pc} +_020158F6: + cmp r0, #0x1a + bne _02015904 + ldr r1, [r3, #0x0] + ldr r0, [r2, #0x0] + add r0, r1, r0 + str r0, [r3, #0x0] + pop {r3, pc} +_02015904: + bl sub_02020C2C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0201590C +sub_0201590C: ; 0x0201590C + push {r3, lr} + sub r0, #0x23 + cmp r0, #0x4 + bhi _02015984 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r2, r3, #0 + lsl r4, r5, #0 + lsl r6, r7, #0 + lsl r0, r2, #0x1 + add r0, r1, #0x0 + add r0, #0x3c + str r0, [r1, #0x24] + add r0, r2, #0x0 + add r0, #0x68 + str r0, [r1, #0x28] + ldr r0, [r2, #0x68] + str r0, [r1, #0x30] + pop {r3, pc} +_0201593C: + .byte 0x08, 0x1C, 0x40, 0x30 + .byte 0x48, 0x62, 0x10, 0x1C, 0x6C, 0x30, 0x88, 0x62, 0xD0, 0x6E, 0x08, 0x63, 0x08, 0xBD, 0x08, 0x1C + .byte 0x44, 0x30, 0x48, 0x62, 0x10, 0x1C, 0x70, 0x30, 0x88, 0x62, 0x10, 0x6F, 0x08, 0x63, 0x08, 0xBD + .byte 0x08, 0x1C, 0x48, 0x30, 0x48, 0x62, 0x10, 0x1C, 0x74, 0x30, 0x88, 0x62, 0x50, 0x6F, 0x08, 0x63 + .byte 0x08, 0xBD, 0x08, 0x1C, 0x4C, 0x30, 0x48, 0x62, 0x10, 0x1C, 0x78, 0x30, 0x88, 0x62, 0x90, 0x6F + .byte 0x08, 0x63, 0x08, 0xBD +_02015984: + bl sub_02020C2C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0201598C +sub_0201598C: ; 0x0201598C + push {r3-r7, lr} + sub sp, #0x8 + add r6, r1, #0x0 + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + add r5, r0, #0x0 + bl sub_02014F34 + str r0, [sp, #0x4] + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + add r1, #0x2c + bl sub_02014F94 + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + add r1, #0x2d + bl sub_02014F94 + mov r0, #0xc + mul r0, r6 + ldr r1, _02015A28 ; =0x020ED66C + str r0, [sp, #0x0] + ldr r0, [r1, r0] + mov r4, #0x0 + cmp r0, #0x0 + ble _020159E2 + ldr r1, _02015A2C ; =0x020ED668 + ldr r0, [sp, #0x0] + add r6, r1, r0 + ldr r0, [sp, #0x4] + add r7, r0, #0x4 +_020159CC: + lsl r1, r4, #0x2 + add r0, r5, #0x0 + add r1, r7, r1 + bl sub_02014F80 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, [r6, #0x4] + cmp r4, r0 + blt _020159CC +_020159E2: + ldr r1, _02015A30 ; =0x020ED670 + ldr r0, [sp, #0x0] + add r2, r5, #0x0 + ldr r0, [r1, r0] + lsl r1, r0, #0x2 + ldr r0, [sp, #0x4] + add r0, r0, r1 + ldr r0, [r0, #0x4] + ldr r1, [sp, #0x4] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_0201590C + ldr r0, [sp, #0x4] + add r0, #0x2d + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02015A14 + ldr r0, [sp, #0x4] + add r1, r5, #0x0 + add r2, r0, #0x0 + ldr r2, [r2, #0x50] + blx r2 + add sp, #0x8 + pop {r3-r7, pc} +_02015A14: + ldr r0, [sp, #0x4] + add r0, #0x2d + ldrb r0, [r0, #0x0] + sub r1, r0, #0x1 + ldr r0, [sp, #0x4] + add r0, #0x2d + str r0, [sp, #0x4] + strb r1, [r0, #0x0] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02015A28: .word 0x020ED66C +_02015A2C: .word 0x020ED668 +_02015A30: .word 0x020ED670 + + thumb_func_start sub_02015A34 +sub_02015A34: ; 0x02015A34 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x1c] + ldr r1, [r4, #0x10] + add r0, r0, #0x1 + ldr r2, [r4, #0x14] + mul r0, r1 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, [r4, #0x4] + sub r0, #0x1e + cmp r0, #0x3 + bhi _02015AC0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r3, #0 + lsl r2, r6, #0 + lsl r0, r1, #0x1 + asr r0, r1, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02015AE8 ; =0x020FFA38 + ldr r2, [r4, #0xc] + ldrsh r0, [r0, r1] + mul r0, r2 + asr r1, r0, #0xc + ldr r0, [r4, #0x24] + str r1, [r0, #0x0] + b _02015AC4 +_02015A78: + .byte 0x09, 0x11, 0x49, 0x00, 0x49, 0x1C, 0x4A, 0x00 + .byte 0x19, 0x49, 0xE0, 0x68, 0x89, 0x5E, 0x41, 0x43, 0x60, 0x6A, 0x09, 0x13, 0x01, 0x60, 0x19, 0xE0 + .byte 0x08, 0x11, 0x81, 0x00, 0x14, 0x48, 0xE2, 0x68, 0x40, 0x5E, 0x50, 0x43, 0x00, 0x13, 0x41, 0x42 + .byte 0x60, 0x6A, 0x01, 0x60, 0x0E, 0xE0, 0x09, 0x11, 0x49, 0x00, 0x49, 0x1C, 0x4A, 0x00, 0x0E, 0x49 + .byte 0xE0, 0x68, 0x89, 0x5E, 0x41, 0x43, 0x08, 0x13, 0x41, 0x42, 0x60, 0x6A, 0x01, 0x60, 0x01, 0xE0 +_02015AC0: + bl sub_02020C2C +_02015AC4: + add r0, r4, #0x0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + add r1, r4, #0x0 + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + add r1, #0x30 + bl sub_020158DC + ldr r0, [r4, #0x1c] + add r1, r0, #0x1 + str r1, [r4, #0x1c] + ldr r0, [r4, #0x18] + cmp r1, r0 + blt _02015AE6 + mov r0, #0x0 + str r0, [r4, #0x0] +_02015AE6: + pop {r4, pc} + .balign 4 +_02015AE8: .word 0x020FFA38 + + thumb_func_start sub_02015AEC +sub_02015AEC: ; 0x02015AEC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x1c] + ldr r1, [r4, #0x10] + add r0, r0, #0x1 + mul r0, r1 + ldr r1, [r4, #0x18] + blx sub_020EBC80 + ldr r1, [r4, #0x14] + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, [r4, #0x4] + sub r0, #0x1e + cmp r0, #0x3 + bhi _02015B7E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r3, #0 + lsl r2, r6, #0 + lsl r0, r1, #0x1 + asr r0, r1, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02015BA8 ; =0x020FFA38 + ldr r2, [r4, #0xc] + ldrsh r0, [r0, r1] + mul r0, r2 + asr r1, r0, #0xc + ldr r0, [r4, #0x24] + str r1, [r0, #0x0] + b _02015B82 +_02015B36: + .byte 0x09, 0x11, 0x49, 0x00, 0x49, 0x1C, 0x4A, 0x00, 0x1A, 0x49 + .byte 0xE0, 0x68, 0x89, 0x5E, 0x41, 0x43, 0x60, 0x6A, 0x09, 0x13, 0x01, 0x60, 0x19, 0xE0, 0x08, 0x11 + .byte 0x81, 0x00, 0x15, 0x48, 0xE2, 0x68, 0x40, 0x5E, 0x50, 0x43, 0x00, 0x13, 0x41, 0x42, 0x60, 0x6A + .byte 0x01, 0x60, 0x0E, 0xE0, 0x09, 0x11, 0x49, 0x00, 0x49, 0x1C, 0x4A, 0x00, 0x0E, 0x49, 0xE0, 0x68 + .byte 0x89, 0x5E, 0x41, 0x43, 0x08, 0x13, 0x41, 0x42, 0x60, 0x6A, 0x01, 0x60, 0x01, 0xE0 +_02015B7E: + bl sub_02020C2C +_02015B82: + add r0, r4, #0x0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + add r1, r4, #0x0 + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + add r1, #0x30 + bl sub_020158DC + ldr r0, [r4, #0x1c] + add r1, r0, #0x1 + str r1, [r4, #0x1c] + ldr r0, [r4, #0x18] + cmp r1, r0 + blt _02015BA4 + mov r0, #0x0 + str r0, [r4, #0x0] +_02015BA4: + pop {r4, pc} + nop +_02015BA8: .word 0x020FFA38 + + thumb_func_start sub_02015BAC +sub_02015BAC: ; 0x02015BAC + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x24] + ldr r3, [r4, #0xc] + ldr r2, [r4, #0x14] + ldr r5, [r4, #0x8] + mul r2, r3 + ldr r0, [r1, #0x0] + add r2, r5, r2 + add r0, r0, r2 + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x2c + add r1, r4, #0x0 + ldrb r0, [r0, #0x0] + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + add r1, #0x30 + bl sub_020158DC + ldr r0, [r4, #0x14] + add r1, r0, #0x1 + str r1, [r4, #0x14] + ldr r0, [r4, #0x10] + cmp r1, r0 + blt _02015BE4 + mov r0, #0x0 + str r0, [r4, #0x0] +_02015BE4: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02015BE8 +sub_02015BE8: ; 0x02015BE8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x10] + add r1, r0, #0x1 + ldr r0, [r4, #0x8] + mul r0, r1 + ldr r1, [r4, #0xc] + blx sub_020EBC80 + ldr r1, [r4, #0x24] + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x2c + add r1, r4, #0x0 + ldrb r0, [r0, #0x0] + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + add r1, #0x30 + bl sub_020158DC + ldr r0, [r4, #0x10] + add r1, r0, #0x1 + str r1, [r4, #0x10] + ldr r0, [r4, #0xc] + cmp r1, r0 + blt _02015C20 + mov r0, #0x0 + str r0, [r4, #0x0] +_02015C20: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02015C24 +sub_02015C24: ; 0x02015C24 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x14] + ldr r2, [r4, #0x8] + mul r0, r1 + ldr r1, [r4, #0x24] + add r2, r2, r0 + ldr r0, [r1, #0x0] + add r0, r0, r2 + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + cmp r0, #0x18 + beq _02015C48 + cmp r0, #0x1a + bne _02015C6E +_02015C48: + cmp r2, #0x0 + ldr r2, [r4, #0x10] + bge _02015C5E + ldr r1, [r4, #0x24] + ldr r0, [r1, #0x0] + cmp r0, r2 + bgt _02015CA4 + str r2, [r1, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02015CA4 +_02015C5E: + ldr r1, [r4, #0x24] + ldr r0, [r1, #0x0] + cmp r0, r2 + blt _02015CA4 + str r2, [r1, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02015CA4 +_02015C6E: + cmp r0, #0x19 + bne _02015CA0 + ldr r1, [r4, #0x24] + ldr r3, [r4, #0x30] + ldr r0, [r1, #0x0] + add r3, r3, r0 + cmp r2, #0x0 + ldr r2, [r4, #0x10] + bge _02015C90 + cmp r3, r2 + bgt _02015CA4 + sub r2, r2, r3 + add r0, r0, r2 + str r0, [r1, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02015CA4 +_02015C90: + cmp r3, r2 + blt _02015CA4 + sub r2, r3, r2 + sub r0, r0, r2 + str r0, [r1, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02015CA4 +_02015CA0: + bl sub_02020C2C +_02015CA4: + add r0, r4, #0x0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + add r1, r4, #0x0 + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + add r1, #0x30 + bl sub_020158DC + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02015CC0 +sub_02015CC0: ; 0x02015CC0 + ldr r3, _02015CDC ; =0x020ED72C + mov r2, #0x0 +_02015CC4: + ldrh r1, [r3, #0x2] + cmp r0, r1 + bhs _02015CCE + add r0, r2, #0x0 + bx lr +_02015CCE: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0x2 + blt _02015CC4 + add r0, r2, #0x0 + bx lr + nop +_02015CDC: .word 0x020ED72C + + thumb_func_start sub_02015CE0 +sub_02015CE0: ; 0x02015CE0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02015CC0 + lsl r1, r0, #0x1 + ldr r0, _02015CF4 ; =0x020ED72C + ldrh r0, [r0, r1] + sub r0, r4, r0 + pop {r4, pc} + nop +_02015CF4: .word 0x020ED72C + + thumb_func_start sub_02015CF8 +sub_02015CF8: ; 0x02015CF8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x3 + blt _02015D06 + bl sub_02020C2C +_02015D06: + ldr r0, _02015D10 ; =0x020ED72C + lsl r1, r5, #0x1 + ldrh r0, [r0, r1] + add r0, r4, r0 + pop {r3-r5, pc} + .balign 4 +_02015D10: .word 0x020ED72C + + thumb_func_start sub_02015D14 +sub_02015D14: ; 0x02015D14 + cmp r0, #0x7 + bhi _02015D34 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + lsl r0, r3, #0 + lsl r2, r2, #0 + lsl r4, r3, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 +_02015D34: + mov r0, #0xea + bx lr + + thumb_func_start sub_02015D38 +sub_02015D38: ; 0x02015D38 + mov r0, #0x6d + lsl r0, r0, #0x2 + bx lr + + non_word_aligned_thumb_func_start sub_02015D3E +sub_02015D3E: ; 0x02015D3E + ldr r0, _02015D48 ; =0x000001B7 + bx lr + + non_word_aligned_thumb_func_start sub_02015D42 +sub_02015D42: ; 0x02015D42 + ldr r0, _02015D4C ; =0x000001B6 + bx lr + nop +_02015D48: .word 0x000001B7 +_02015D4C: .word 0x000001B6 + + thumb_func_start sub_02015D50 +sub_02015D50: ; 0x02015D50 + cmp r0, #0x7 + bhi _02015D70 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + lsl r6, r2, #0 + lsl r2, r2, #0 + lsl r4, r3, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 +_02015D70: + mov r0, #0xeb + bx lr + + thumb_func_start sub_02015D74 +sub_02015D74: ; 0x02015D74 + ldr r0, _02015D84 ; =0x000001B5 + bx lr + + thumb_func_start sub_02015D78 +sub_02015D78: ; 0x02015D78 + mov r0, #0x6e + lsl r0, r0, #0x2 + bx lr + + non_word_aligned_thumb_func_start sub_02015D7E +sub_02015D7E: ; 0x02015D7E + mov r0, #0x6d + lsl r0, r0, #0x2 + bx lr + .balign 4 +_02015D84: .word 0x000001B5 + + thumb_func_start sub_02015D88 +sub_02015D88: ; 0x02015D88 + push {r3-r7, lr} + sub sp, #0x10 + add r6, r3, #0x0 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + str r2, [sp, #0x8] + cmp r6, #0x1 + beq _02015D9C + mov r2, #0x1 + b _02015D9E +_02015D9C: + mov r2, #0x0 +_02015D9E: + ldr r0, [sp, #0x8] + mov r4, #0x0 + sub r0, r0, #0x1 + str r0, [sp, #0xc] + beq _02015E18 + ldr r1, _02015E28 ; =0x020ED734 + lsl r0, r2, #0x1 + ldr r5, [sp, #0x4] + add r7, r1, r0 +_02015DB0: + ldr r0, [sp, #0x0] + ldrb r0, [r0, r4] + cmp r0, #0xff + beq _02015E18 + cmp r0, #0xf7 + blo _02015DEA + ldr r0, [sp, #0x8] + sub r3, r0, #0x1 + cmp r3, #0xa + blo _02015DC6 + mov r3, #0xa +_02015DC6: + mov r1, #0x0 + cmp r3, #0x0 + ble _02015DDC + mov r0, #0x6b + ldr r2, [sp, #0x4] + lsl r0, r0, #0x2 +_02015DD2: + add r1, r1, #0x1 + strh r0, [r2, #0x0] + add r2, r2, #0x2 + cmp r1, r3 + blt _02015DD2 +_02015DDC: + ldr r0, [sp, #0x4] + ldr r2, _02015E2C ; =0x0000FFFF + lsl r1, r1, #0x1 + strh r2, [r0, r1] + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_02015DEA: + lsl r0, r0, #0x2 + ldrh r0, [r7, r0] + cmp r0, #0xea + beq _02015DF8 + cmp r0, #0xeb + beq _02015E02 + b _02015E0C +_02015DF8: + add r0, r6, #0x0 + bl sub_02015D14 + strh r0, [r5, #0x0] + b _02015E0E +_02015E02: + add r0, r6, #0x0 + bl sub_02015D50 + strh r0, [r5, #0x0] + b _02015E0E +_02015E0C: + strh r0, [r5, #0x0] +_02015E0E: + ldr r0, [sp, #0xc] + add r4, r4, #0x1 + add r5, r5, #0x2 + cmp r4, r0 + blo _02015DB0 +_02015E18: + ldr r2, _02015E2C ; =0x0000FFFF + ldr r0, [sp, #0x4] + lsl r1, r4, #0x1 + strh r2, [r0, r1] + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + nop +_02015E28: .word 0x020ED734 +_02015E2C: .word 0x0000FFFF + + thumb_func_start sub_02015E30 +sub_02015E30: ; 0x02015E30 + ldr r0, _02015E38 ; =0x021C4898 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_02015E38: .word 0x021C4898 + + thumb_func_start sub_02015E3C +sub_02015E3C: ; 0x02015E3C + push {r3, lr} + ldr r1, _02015E5C ; =0x021C4898 + mov r2, #0x1 + str r2, [r1, #0x0] + mov r2, #0x0 + str r2, [r1, #0x10] + str r2, [r1, #0x14] + str r2, [r1, #0x8] + str r2, [r1, #0xc] + str r0, [r1, #0x4] + bl sub_02020BF4 + ldr r2, _02015E5C ; =0x021C4898 + str r0, [r2, #0x18] + str r1, [r2, #0x1c] + pop {r3, pc} + .balign 4 +_02015E5C: .word 0x021C4898 + + thumb_func_start sub_02015E60 +sub_02015E60: ; 0x02015E60 + push {r3-r5, lr} + ldr r0, _02015E9C ; =0x021C4898 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02015E9A + bl sub_02020BF4 + ldr r2, _02015E9C ; =0x021C4898 + ldr r3, [r2, #0x18] + ldr r2, [r2, #0x1c] + sub r0, r0, r3 + sbc r1, r2 + bl sub_02020C14 + add r5, r1, #0x0 + ldr r1, _02015E9C ; =0x021C4898 + add r4, r0, #0x0 + ldr r3, [r1, #0x8] + ldr r2, [r1, #0xc] + sub r0, r3, r4 + sbc r2, r5 + bhs _02015E9A + ldr r0, [r1, #0x4] + sub r1, r4, r3 + bl sub_02029E54 + ldr r0, _02015E9C ; =0x021C4898 + str r4, [r0, #0x8] + str r5, [r0, #0xc] +_02015E9A: + pop {r3-r5, pc} + .balign 4 +_02015E9C: .word 0x021C4898 + + thumb_func_start sub_02015EA0 +sub_02015EA0: ; 0x02015EA0 + push {r3, lr} + ldr r3, _02015EC8 ; =0x027E0000 + ldr r1, _02015ECC ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + mov r0, #0x3 + blx sub_020CDA1C + ldr r0, _02015ED0 ; =0x021C48B8 + ldr r0, [r0, #0x1c] + bl sub_0201B5CC + ldr r0, _02015ED0 ; =0x021C48B8 + ldr r1, [r0, #0x30] + add r1, r1, #0x1 + str r1, [r0, #0x30] + pop {r3, pc} + nop +_02015EC8: .word 0x027E0000 +_02015ECC: .word 0x00003FF8 +_02015ED0: .word 0x021C48B8 + + thumb_func_start sub_02015ED4 +sub_02015ED4: ; 0x02015ED4 + ldr r3, _02015EE8 ; =0x027E0000 + ldr r1, _02015EEC ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + ldr r3, _02015EF0 ; =sub_020CDA1C + mov r0, #0x3 + bx r3 + nop +_02015EE8: .word 0x027E0000 +_02015EEC: .word 0x00003FF8 +_02015EF0: .word sub_020CDA1C + + thumb_func_start sub_02015EF4 +sub_02015EF4: ; 0x02015EF4 + push {r3, lr} + mov r0, #0x1 + blx sub_020C9E14 + ldr r1, _02015F0C ; =sub_02015ED4 + mov r0, #0x1 + blx sub_020C9FEC + mov r0, #0x1 + blx sub_020C9E5C + pop {r3, pc} + .balign 4 +_02015F0C: .word sub_02015ED4 + 1 + + thumb_func_start sub_02015F10 +sub_02015F10: ; 0x02015F10 + ldr r2, _02015F18 ; =0x021C48B8 + str r0, [r2, #0x0] + str r1, [r2, #0x4] + bx lr + .balign 4 +_02015F18: .word 0x021C48B8 + + thumb_func_start sub_02015F1C +sub_02015F1C: ; 0x02015F1C + push {r3, lr} + mov r0, #0x0 + bl sub_02015F80 + ldr r0, _02015F30 ; =0x021C48B8 + mov r1, #0x0 + str r1, [r0, #0x8] + str r1, [r0, #0xc] + pop {r3, pc} + nop +_02015F30: .word 0x021C48B8 + + thumb_func_start sub_02015F34 +sub_02015F34: ; 0x02015F34 + push {r3, lr} + cmp r0, #0x0 + bne _02015F4C + mov r0, #0x0 + bl sub_02015F80 + ldr r0, _02015F68 ; =0x021C48B8 + mov r1, #0x0 + str r1, [r0, #0x8] + str r1, [r0, #0xc] + mov r0, #0x1 + pop {r3, pc} +_02015F4C: + ldr r2, _02015F68 ; =0x021C48B8 + ldr r3, [r2, #0x8] + cmp r3, #0x0 + bne _02015F62 + str r1, [r2, #0xc] + str r0, [r2, #0x8] + mov r0, #0x1 + bl sub_02015F80 + mov r0, #0x1 + pop {r3, pc} +_02015F62: + mov r0, #0x0 + pop {r3, pc} + nop +_02015F68: .word 0x021C48B8 + + thumb_func_start sub_02015F6C +sub_02015F6C: ; 0x02015F6C + push {r3, lr} + ldr r0, _02015F7C ; =0x021C48B8 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _02015F7A + ldr r0, [r0, #0xc] + blx r1 +_02015F7A: + pop {r3, pc} + .balign 4 +_02015F7C: .word 0x021C48B8 + + thumb_func_start sub_02015F80 +sub_02015F80: ; 0x02015F80 + push {r3, lr} + ldr r2, _02015FC0 ; =0x04000208 + ldrh r1, [r2, #0x0] + mov r1, #0x0 + strh r1, [r2, #0x0] + cmp r0, #0x0 + bne _02015F9E + ldr r0, [r2, #0x8] + mov r0, #0x2 + blx sub_020C9E14 + mov r0, #0x0 + blx sub_020C5AF8 + b _02015FB4 +_02015F9E: + ldr r0, [r2, #0x8] + ldr r1, _02015FC4 ; =sub_02015F6C + mov r0, #0x2 + blx sub_020C9FEC + mov r0, #0x2 + blx sub_020C9E5C + mov r0, #0x1 + blx sub_020C5AF8 +_02015FB4: + ldr r1, _02015FC0 ; =0x04000208 + ldrh r0, [r1, #0x0] + mov r0, #0x1 + strh r0, [r1, #0x0] + pop {r3, pc} + nop +_02015FC0: .word 0x04000208 +_02015FC4: .word sub_02015F6C + 1 + + thumb_func_start sub_02015FC8 +sub_02015FC8: ; 0x02015FC8 + push {r3, lr} + sub sp, #0x30 + add r0, sp, #0x10 + blx sub_020CD754 + add r0, sp, #0x0 + add r1, sp, #0x10 + mov r2, #0x20 + blx sub_020DDCE4 + mov r3, #0x0 + add r1, r3, #0x0 + add r2, sp, #0x0 +_02015FE2: + ldrb r0, [r2, #0x0] + add r1, r1, #0x1 + add r2, r2, #0x1 + add r3, r3, r0 + cmp r1, #0x10 + blo _02015FE2 + lsl r0, r3, #0x18 + lsr r3, r0, #0x18 + mov r0, #0x3 + tst r0, r3 + beq _02016002 + mov r0, #0x3 +_02015FFA: + add r3, r3, #0x1 + add r1, r3, #0x0 + tst r1, r0 + bne _02015FFA +_02016002: + ldr r0, _02016010 ; =0x020EDB10 + mov r1, #0x4 + mov r2, #0x5c + bl sub_020166C8 + add sp, #0x30 + pop {r3, pc} + .balign 4 +_02016010: .word 0x020EDB10 + + thumb_func_start sub_02016014 +sub_02016014: ; 0x02016014 + push {r3-r5, lr} + blx sub_020CC1B4 + blx sub_020C5974 + ldr r2, _02016124 ; =0x04000304 + ldr r0, _02016128 ; =0xFFFFFDF1 + ldrh r1, [r2, #0x0] + and r1, r0 + ldr r0, _0201612C ; =0x0000020E + orr r0, r1 + strh r0, [r2, #0x0] + blx sub_020C5B28 + blx sub_020CCD64 + bl sub_02015FC8 + mov r0, #0xa0 + bl sub_0201B578 + add r1, r0, #0x0 + mov r0, #0x0 + mov r2, #0x4 + blx sub_020CC26C + add r1, r0, #0x0 + mov r0, #0xa0 + bl sub_0201B580 + ldr r1, _02016130 ; =0x021C48B8 + str r0, [r1, #0x18] + mov r0, #0x10 + bl sub_0201B578 + add r1, r0, #0x0 + mov r0, #0x0 + mov r2, #0x4 + blx sub_020CC26C + add r1, r0, #0x0 + mov r0, #0x10 + bl sub_0201B580 + ldr r1, _02016130 ; =0x021C48B8 + str r0, [r1, #0x1c] + mov r0, #0x20 + bl sub_0201B578 + add r1, r0, #0x0 + mov r0, #0x0 + mov r2, #0x4 + blx sub_020CC26C + add r1, r0, #0x0 + mov r0, #0x20 + bl sub_0201B580 + ldr r1, _02016130 ; =0x021C48B8 + str r0, [r1, #0x20] + mov r0, #0x4 + bl sub_0201B578 + add r1, r0, #0x0 + mov r0, #0x0 + mov r2, #0x4 + blx sub_020CC26C + add r1, r0, #0x0 + mov r0, #0x4 + bl sub_0201B580 + ldr r1, _02016130 ; =0x021C48B8 + str r0, [r1, #0x24] + blx sub_020C5A80 + ldr r2, _02016134 ; =0x04001000 + ldr r0, _02016138 ; =0xFFFEFFFF + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + ldr r2, _02016124 ; =0x04000304 + ldrh r1, [r2, #0x0] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2, #0x0] + ldr r1, _0201613C ; =sub_02015EA0 + mov r0, #0x1 + blx sub_020C9FEC + mov r0, #0x1 + blx sub_020C9E5C + mov r0, #0x1 + lsl r0, r0, #0x12 + blx sub_020C9E5C + ldr r1, _02016140 ; =0x04000208 + ldrh r0, [r1, #0x0] + mov r0, #0x1 + strh r0, [r1, #0x0] + blx sub_020C5AC8 + mov r0, #0x1 + blx sub_020D1CD4 + bl sub_02022450 + mov r0, #0x0 + add r1, r0, #0x0 + blx sub_020D1D10 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x4 + blx sub_020CC26C + add r5, r0, #0x0 + bne _02016108 + bl sub_02020C2C +_02016108: + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_020D1D10 + ldr r0, _02016130 ; =0x021C48B8 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x8] + str r1, [r0, #0x10] + str r1, [r0, #0x14] + str r1, [r0, #0x2c] + ldr r0, _02016144 ; =0x021C4918 + strb r1, [r0, #0x5] + pop {r3-r5, pc} + .balign 4 +_02016124: .word 0x04000304 +_02016128: .word 0xFFFFFDF1 +_0201612C: .word 0x0000020E +_02016130: .word 0x021C48B8 +_02016134: .word 0x04001000 +_02016138: .word 0xFFFEFFFF +_0201613C: .word sub_02015EA0 + 1 +_02016140: .word 0x04000208 +_02016144: .word 0x021C4918 + + thumb_func_start sub_02016148 +sub_02016148: ; 0x02016148 + push {r3, lr} + ldr r0, _02016198 ; =0x000001FF + blx sub_020C63A8 + mov r1, #0x1a + mov r2, #0x29 + mov r0, #0x0 + lsl r1, r1, #0x16 + lsl r2, r2, #0xe + blx sub_020CE240 + blx sub_020C5E54 + mov r1, #0x7 + mov r2, #0x1 + mov r0, #0xc0 + lsl r1, r1, #0x18 + lsl r2, r2, #0xa + blx sub_020CE240 + mov r2, #0x1 + ldr r1, _0201619C ; =0x07000400 + mov r0, #0xc0 + lsl r2, r2, #0xa + blx sub_020CE240 + mov r1, #0x5 + mov r2, #0x1 + mov r0, #0x0 + lsl r1, r1, #0x18 + lsl r2, r2, #0xa + blx sub_020CE240 + mov r2, #0x1 + ldr r1, _020161A0 ; =0x05000400 + mov r0, #0x0 + lsl r2, r2, #0xa + blx sub_020CE240 + pop {r3, pc} + .balign 4 +_02016198: .word 0x000001FF +_0201619C: .word 0x07000400 +_020161A0: .word 0x05000400 + + thumb_func_start sub_020161A4 +sub_020161A4: ; 0x020161A4 + push {r4-r6, lr} + sub sp, #0x48 + add r6, r0, #0x0 + add r4, r1, #0x0 + add r0, sp, #0x0 + blx sub_020D1C94 + add r0, sp, #0x0 + add r1, r4, #0x0 + blx sub_020D1944 + cmp r0, #0x0 + beq _020161F0 + ldr r1, [sp, #0x28] + ldr r0, [sp, #0x24] + sub r5, r1, r0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + beq _020161E8 + add r0, sp, #0x0 + add r1, r4, #0x0 + add r2, r5, #0x0 + blx sub_020D180C + cmp r5, r0 + beq _020161E8 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02016A8C + mov r4, #0x0 +_020161E8: + add r0, sp, #0x0 + blx sub_020D18FC + b _020161F2 +_020161F0: + mov r4, #0x0 +_020161F2: + add r0, r4, #0x0 + add sp, #0x48 + pop {r4-r6, pc} + + thumb_func_start sub_020161F8 +sub_020161F8: ; 0x020161F8 + push {r3-r5, lr} + sub sp, #0x48 + add r5, r0, #0x0 + add r0, sp, #0x0 + add r4, r1, #0x0 + blx sub_020D1C94 + add r0, sp, #0x0 + add r1, r5, #0x0 + blx sub_020D1944 + cmp r0, #0x0 + beq _0201622A + ldr r1, [sp, #0x28] + ldr r0, [sp, #0x24] + sub r2, r1, r0 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02016224 + add r0, sp, #0x0 + blx sub_020D180C +_02016224: + add r0, sp, #0x0 + blx sub_020D18FC +_0201622A: + add sp, #0x48 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02016230 +sub_02016230: ; 0x02016230 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + blx sub_020E2EAC + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + lsr r2, r3, #0x1f + lsl r1, r3, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + beq _02016258 + lsr r0, r3, #0x2 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + b _0201625E +_02016258: + lsl r0, r3, #0xe + lsr r0, r0, #0x10 + str r0, [sp, #0x4] +_0201625E: + ldr r0, [sp, #0x4] + mov r7, #0x0 + mov r12, r7 + cmp r0, #0x0 + ble _0201629A + add r6, r7, #0x0 + add r4, r7, #0x0 +_0201626C: + ldr r2, [sp, #0x0] + mov r1, #0x0 + add r0, r1, #0x0 + add r2, r2, r6 + add r3, r1, #0x0 +_02016276: + ldrsb r5, [r2, r4] + cmp r5, #0x0 + beq _0201628A + lsl r5, r3 + add r0, r0, #0x1 + orr r1, r5 + add r2, r2, #0x1 + add r3, #0x8 + cmp r0, #0x4 + blt _02016276 +_0201628A: + mov r0, r12 + eor r7, r1 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + add r6, r6, #0x4 + mov r12, r1 + cmp r1, r0 + blt _0201626C +_0201629A: + add r0, r7, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_020162A0 +sub_020162A0: ; 0x020162A0 + ldr r3, _020162C4 ; =0x021C4928 + mov r2, #0x0 +_020162A4: + ldr r1, [r3, #0x4] + cmp r0, r1 + bne _020162B4 + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _020162B4 + add r0, r2, #0x0 + bx lr +_020162B4: + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, #0x80 + blt _020162A4 + mov r0, #0x0 + mvn r0, r0 + bx lr + nop +_020162C4: .word 0x021C4928 + + thumb_func_start sub_020162C8 +sub_020162C8: ; 0x020162C8 + push {r3-r4} + ldr r3, _020162F4 ; =0x021C4928 + mov r4, #0x0 +_020162CE: + ldr r2, [r3, #0x0] + cmp r2, #0x0 + bne _020162E4 + ldr r2, _020162F4 ; =0x021C4928 + lsl r3, r4, #0x3 + str r0, [r2, r3] + ldr r0, _020162F8 ; =0x021C492C + str r1, [r0, r3] + add r0, r4, #0x0 + pop {r3-r4} + bx lr +_020162E4: + add r4, r4, #0x1 + add r3, #0x8 + cmp r4, #0x80 + blt _020162CE + mov r0, #0x0 + mvn r0, r0 + pop {r3-r4} + bx lr + .balign 4 +_020162F4: .word 0x021C4928 +_020162F8: .word 0x021C492C + + thumb_func_start sub_020162FC +sub_020162FC: ; 0x020162FC + push {r3-r7, lr} + mov r6, #0x0 + ldr r5, _02016320 ; =0x021C4D20 + mov r4, #0x7f + sub r7, r6, #0x1 +_02016306: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _02016314 + bl sub_02016A18 + str r6, [r5, #0x0] + str r6, [r5, #0x4] +_02016314: + sub r4, r4, #0x1 + sub r5, #0x8 + cmp r4, r7 + bgt _02016306 + pop {r3-r7, pc} + nop +_02016320: .word 0x021C4D20 + + thumb_func_start sub_02016324 +sub_02016324: ; 0x02016324 + push {r3-r7, lr} + sub sp, #0x68 + add r2, r0, #0x0 + mov r5, #0x0 + ldrsb r0, [r2, r5] + add r4, r1, #0x0 + cmp r0, #0x21 + add r0, sp, #0x0 + bne _02016340 + add r1, r2, #0x1 + blx sub_020E2EC8 + mov r5, #0x1 + b _02016346 +_02016340: + add r1, r2, #0x0 + blx sub_020E2EC8 +_02016346: + add r0, sp, #0x0 + bl sub_02016230 + add r7, r0, #0x0 + bl sub_020162A0 + cmp r0, #0x0 + blt _02016362 + cmp r5, #0x0 + bne _02016362 + lsl r1, r0, #0x3 + ldr r0, _020163B8 ; =0x021C4928 + ldr r4, [r0, r1] + b _020163B2 +_02016362: + add r0, sp, #0x20 + blx sub_020D1C94 + add r0, sp, #0x20 + add r1, sp, #0x0 + blx sub_020D1944 + cmp r0, #0x0 + beq _020163B0 + ldr r1, [sp, #0x48] + ldr r0, [sp, #0x44] + sub r6, r1, r0 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + beq _0201639C + add r0, sp, #0x20 + add r1, r4, #0x0 + add r2, r6, #0x0 + blx sub_020D180C + cmp r6, r0 + beq _0201639C + add r0, r4, #0x0 + bl sub_02016A18 + mov r4, #0x0 +_0201639C: + add r0, sp, #0x20 + blx sub_020D18FC + cmp r5, #0x0 + bne _020163B2 + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_020162C8 + b _020163B2 +_020163B0: + mov r4, #0x0 +_020163B2: + add r0, r4, #0x0 + add sp, #0x68 + pop {r3-r7, pc} + .balign 4 +_020163B8: .word 0x021C4928 + + thumb_func_start sub_020163BC +sub_020163BC: ; 0x020163BC + push {r3, lr} + sub sp, #0x8 + ldr r0, _0201641C ; =0x021C48B8 + mov r2, #0x0 + str r2, [r0, #0x34] + str r2, [r0, #0x38] + str r2, [r0, #0x3c] + str r2, [r0, #0x40] + str r2, [r0, #0x44] + str r2, [r0, #0x48] + str r2, [r0, #0x4c] + str r2, [r0, #0x50] + mov r1, #0x8 + str r1, [r0, #0x54] + mov r1, #0xf + str r1, [r0, #0x58] + ldr r0, _02016420 ; =0x021C48F8 + strh r2, [r0, #0x1c] + strh r2, [r0, #0x1e] + strh r2, [r0, #0x20] + strh r2, [r0, #0x22] + ldr r0, _02016424 ; =0x021C4918 + strb r2, [r0, #0x4] + blx sub_020D40B8 + add r0, sp, #0x0 + blx sub_020D400C + cmp r0, #0x1 + add r0, sp, #0x0 + bne _02016402 + blx sub_020D3EC4 + add sp, #0x8 + pop {r3, pc} +_02016402: + ldr r1, _02016428 ; =0x000002AE + strh r1, [r0, #0x0] + ldr r1, _0201642C ; =0x0000058C + strh r1, [r0, #0x2] + ldr r1, _02016430 ; =0x00000E25 + strh r1, [r0, #0x4] + ldr r1, _02016434 ; =0x00001208 + strh r1, [r0, #0x6] + add r0, sp, #0x0 + blx sub_020D3EC4 + add sp, #0x8 + pop {r3, pc} + .balign 4 +_0201641C: .word 0x021C48B8 +_02016420: .word 0x021C48F8 +_02016424: .word 0x021C4918 +_02016428: .word 0x000002AE +_0201642C: .word 0x0000058C +_02016430: .word 0x00000E25 +_02016434: .word 0x00001208 + + thumb_func_start sub_02016438 +sub_02016438: ; 0x02016438 + ldr r1, _02016440 ; =0x021C4918 + strb r0, [r1, #0x6] + bx lr + nop +_02016440: .word 0x021C4918 + + thumb_func_start sub_02016444 +sub_02016444: ; 0x02016444 + ldr r1, _02016450 ; =0x021C4918 + ldrb r2, [r1, #0x7] + orr r0, r2 + strb r0, [r1, #0x7] + bx lr + nop +_02016450: .word 0x021C4918 + + thumb_func_start sub_02016454 +sub_02016454: ; 0x02016454 + ldr r1, _02016460 ; =0x021C4918 + mvn r0, r0 + ldrb r2, [r1, #0x7] + and r0, r2 + strb r0, [r1, #0x7] + bx lr + .balign 4 +_02016460: .word 0x021C4918 + + thumb_func_start sub_02016464 +sub_02016464: ; 0x02016464 + push {r4, lr} + sub sp, #0x10 + ldr r2, _02016550 ; =0x027FFFA8 + mov r0, #0x2 + ldrh r1, [r2, #0x0] + lsl r0, r0, #0xe + and r0, r1 + asr r0, r0, #0xf + beq _0201648A + ldr r0, _02016554 ; =0x021C48B8 + mov r1, #0x0 + str r1, [r0, #0x48] + str r1, [r0, #0x44] + str r1, [r0, #0x4c] + ldr r0, _02016558 ; =0x021C48F8 + add sp, #0x10 + strh r1, [r0, #0x20] + strh r1, [r0, #0x22] + pop {r4, pc} +_0201648A: + ldr r0, _0201655C ; =0x04000130 + ldrh r1, [r0, #0x0] + ldrh r0, [r2, #0x0] + orr r1, r0 + ldr r0, _02016560 ; =0x00002FFF + eor r1, r0 + and r0, r1 + ldr r1, _02016554 ; =0x021C48B8 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + ldr r2, [r1, #0x38] + add r3, r0, #0x0 + eor r3, r2 + and r3, r0 + str r3, [r1, #0x3c] + str r3, [r1, #0x40] + cmp r0, #0x0 + beq _020164C2 + cmp r2, r0 + bne _020164C2 + ldr r2, [r1, #0x50] + sub r2, r2, #0x1 + str r2, [r1, #0x50] + bne _020164C8 + str r0, [r1, #0x40] + ldr r2, [r1, #0x54] + str r2, [r1, #0x50] + b _020164C8 +_020164C2: + ldr r1, _02016554 ; =0x021C48B8 + ldr r2, [r1, #0x58] + str r2, [r1, #0x50] +_020164C8: + ldr r1, _02016554 ; =0x021C48B8 + str r0, [r1, #0x38] + ldr r2, [r1, #0x3c] + str r2, [r1, #0x48] + str r0, [r1, #0x44] + ldr r0, [r1, #0x40] + str r0, [r1, #0x4c] + bl sub_02016568 + ldr r0, _02016564 ; =0x021C4918 + ldrb r0, [r0, #0x4] + cmp r0, #0x0 + bne _020164F4 + add r4, sp, #0x8 +_020164E4: + blx sub_020D3E24 + add r0, r4, #0x0 + blx sub_020D3DCC + cmp r0, #0x0 + bne _020164E4 + b _020164FA +_020164F4: + add r0, sp, #0x8 + blx sub_020D3AA0 +_020164FA: + add r0, sp, #0x0 + add r1, sp, #0x8 + blx sub_020D36F0 + add r1, sp, #0x0 + ldrh r3, [r1, #0x6] + cmp r3, #0x0 + bne _02016516 + ldrh r2, [r1, #0x0] + ldr r0, _02016558 ; =0x021C48F8 + strh r2, [r0, #0x1c] + ldrh r1, [r1, #0x2] + strh r1, [r0, #0x1e] + b _0201653A +_02016516: + ldr r0, _02016558 ; =0x021C48F8 + ldrh r2, [r0, #0x22] + cmp r2, #0x0 + beq _02016536 + cmp r3, #0x1 + beq _0201652A + cmp r3, #0x2 + beq _02016530 + cmp r3, #0x3 + b _0201653A +_0201652A: + ldrh r1, [r1, #0x2] + strh r1, [r0, #0x1e] + b _0201653A +_02016530: + ldrh r1, [r1, #0x0] + strh r1, [r0, #0x1c] + b _0201653A +_02016536: + mov r0, #0x0 + strh r0, [r1, #0x4] +_0201653A: + add r0, sp, #0x0 + ldrh r2, [r0, #0x4] + ldr r0, _02016558 ; =0x021C48F8 + ldrh r1, [r0, #0x22] + eor r1, r2 + and r1, r2 + strh r1, [r0, #0x20] + strh r2, [r0, #0x22] + add sp, #0x10 + pop {r4, pc} + nop +_02016550: .word 0x027FFFA8 +_02016554: .word 0x021C48B8 +_02016558: .word 0x021C48F8 +_0201655C: .word 0x04000130 +_02016560: .word 0x00002FFF +_02016564: .word 0x021C4918 + + thumb_func_start sub_02016568 +sub_02016568: ; 0x02016568 + ldr r0, _02016690 ; =0x021C48B8 + ldr r1, [r0, #0x34] + cmp r1, #0x3 + bls _02016572 + b _0201668C +_02016572: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0x4 + lsl r6, r0, #0 + lsl r4, r7, #0 + lsl r2, r0, #0x3 + ldr r2, [r0, #0x48] + mov r1, #0x8 + add r3, r2, #0x0 + tst r3, r1 + beq _02016596 + lsl r1, r1, #0x7 + orr r1, r2 + str r1, [r0, #0x48] +_02016596: + ldr r1, _02016690 ; =0x021C48B8 + mov r0, #0x8 + ldr r2, [r1, #0x44] + add r3, r2, #0x0 + tst r3, r0 + beq _020165A8 + lsl r0, r0, #0x7 + orr r0, r2 + str r0, [r1, #0x44] +_020165A8: + ldr r1, _02016690 ; =0x021C48B8 + mov r0, #0x8 + ldr r2, [r1, #0x4c] + add r3, r2, #0x0 + tst r3, r0 + beq _0201668C + lsl r0, r0, #0x7 + orr r0, r2 + str r0, [r1, #0x4c] + bx lr +_020165BC: + .byte 0x83, 0x6C, 0x01, 0x20 + .byte 0x80, 0x02, 0x1A, 0x1C, 0x00, 0x21, 0x02, 0x42, 0x01, 0xD0, 0x40, 0x00, 0x01, 0x43, 0x02, 0x20 + .byte 0x80, 0x02, 0x1A, 0x1C, 0x02, 0x42, 0x01, 0xD0, 0x40, 0x08, 0x01, 0x43, 0x2C, 0x4A, 0x2D, 0x48 + .byte 0x93, 0x6C, 0x18, 0x40, 0x08, 0x43, 0x90, 0x64, 0x53, 0x6C, 0x01, 0x21, 0x89, 0x02, 0x1A, 0x1C + .byte 0x00, 0x20, 0x0A, 0x42, 0x01, 0xD0, 0x49, 0x00, 0x08, 0x43, 0x02, 0x21, 0x89, 0x02, 0x1A, 0x1C + .byte 0x0A, 0x42, 0x01, 0xD0, 0x49, 0x08, 0x08, 0x43, 0x21, 0x4A, 0x22, 0x49, 0x53, 0x6C, 0x19, 0x40 + .byte 0x08, 0x43, 0x50, 0x64, 0xD3, 0x6C, 0x01, 0x21, 0x89, 0x02, 0x1A, 0x1C, 0x00, 0x20, 0x0A, 0x42 + .byte 0x01, 0xD0, 0x49, 0x00, 0x08, 0x43, 0x02, 0x21, 0x89, 0x02, 0x1A, 0x1C, 0x0A, 0x42, 0x01, 0xD0 + .byte 0x49, 0x08, 0x08, 0x43, 0x16, 0x4A, 0x17, 0x49, 0xD3, 0x6C, 0x19, 0x40, 0x08, 0x43, 0xD0, 0x64 + .byte 0x70, 0x47, 0x02, 0x21, 0x82, 0x6C, 0x09, 0x02, 0x11, 0x42, 0x02, 0xD0, 0x01, 0x21, 0x11, 0x43 + .byte 0x81, 0x64, 0x0F, 0x49, 0x02, 0x20, 0x4A, 0x6C, 0x00, 0x02, 0x10, 0x42, 0x02, 0xD0, 0x01, 0x20 + .byte 0x10, 0x43, 0x48, 0x64, 0x0A, 0x49, 0x02, 0x20, 0xCA, 0x6C, 0x00, 0x02, 0x10, 0x42, 0x02, 0xD0 + .byte 0x01, 0x20, 0x10, 0x43, 0xC8, 0x64, 0x06, 0x49, 0x07, 0x48, 0x8A, 0x6C, 0x02, 0x40, 0x8A, 0x64 + .byte 0x4A, 0x6C, 0x02, 0x40, 0x4A, 0x64, 0xCA, 0x6C, 0x10, 0x40, 0xC8, 0x64 +_0201668C: + bx lr + nop +_02016690: .word 0x021C48B8 +_02016694: + .byte 0xFF, 0xF3, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x00 + + thumb_func_start sub_0201669C +sub_0201669C: ; 0x0201669C + ldr r2, _020166A4 ; =0x021C48B8 + str r0, [r2, #0x54] + str r1, [r2, #0x58] + bx lr + .balign 4 +_020166A4: .word 0x021C48B8 + + thumb_func_start sub_020166A8 +sub_020166A8: ; 0x020166A8 + ldr r1, _020166B4 ; =0x021C4918 + ldrb r2, [r1, #0x8] + orr r0, r2 + strb r0, [r1, #0x8] + bx lr + nop +_020166B4: .word 0x021C4918 + + thumb_func_start sub_020166B8 +sub_020166B8: ; 0x020166B8 + ldr r1, _020166C4 ; =0x021C4918 + mvn r0, r0 + ldrb r2, [r1, #0x8] + and r0, r2 + strb r0, [r1, #0x8] + bx lr + .balign 4 +_020166C4: .word 0x021C4918 + + thumb_func_start sub_020166C8 +sub_020166C8: ; 0x020166C8 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + str r0, [sp, #0x4] + add r0, #0x18 + add r6, r2, #0x0 + str r0, [sp, #0x4] + cmp r6, r0 + bhs _020166E0 + add r6, r0, #0x0 +_020166E0: + cmp r3, #0x0 + beq _020166FE + mov r0, #0x3 + tst r0, r3 + beq _020166F4 + mov r0, #0x3 +_020166EC: + add r3, r3, #0x1 + add r1, r3, #0x0 + tst r1, r0 + bne _020166EC +_020166F4: + mov r0, #0x0 + add r1, r3, #0x0 + mov r2, #0x4 + blx sub_020CC26C +_020166FE: + ldr r1, [sp, #0x4] + lsl r7, r6, #0x1 + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r1, #0x1 + lsl r1, r1, #0x2 + add r1, r7, r1 + mov r0, #0x0 + add r1, r6, r1 + mov r2, #0x4 + blx sub_020CC26C + ldr r1, _020167F0 ; =0x021C4D28 + str r0, [r1, #0x0] + ldr r1, [sp, #0x4] + add r1, r1, #0x1 + lsl r1, r1, #0x2 + add r1, r0, r1 + ldr r0, _020167F0 ; =0x021C4D28 + str r1, [r0, #0x4] + ldr r0, [sp, #0x4] + lsl r0, r0, #0x2 + add r2, r1, r0 + ldr r1, _020167F0 ; =0x021C4D28 + str r2, [r1, #0x8] + add r1, r2, r0 + ldr r0, _020167F0 ; =0x021C4D28 + str r1, [r0, #0xc] + add r1, r1, r7 + str r1, [r0, #0x10] + strh r6, [r0, #0x14] + strh r4, [r0, #0x16] + ldr r0, [sp, #0x4] + mov r7, #0x0 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, _020167F0 ; =0x021C4D28 + cmp r4, #0x0 + strh r1, [r0, #0x1a] + strh r1, [r0, #0x18] + bls _020167A0 + str r7, [sp, #0x0] +_02016752: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + beq _0201675C + cmp r0, #0x2 + beq _02016768 +_0201675C: + ldr r1, [r5, #0x0] + mov r0, #0x0 + mov r2, #0x4 + blx sub_020CC26C + b _02016772 +_02016768: + ldr r1, [r5, #0x0] + mov r0, #0x2 + mov r2, #0x4 + blx sub_020CC204 +_02016772: + cmp r0, #0x0 + beq _0201678E + ldr r1, [r5, #0x0] + mov r2, #0x0 + blx sub_020ADFE8 + ldr r1, _020167F0 ; =0x021C4D28 + ldr r2, [r1, #0x0] + ldr r1, [sp, #0x0] + str r0, [r2, r1] + ldr r0, _020167F0 ; =0x021C4D28 + ldr r0, [r0, #0x10] + strb r7, [r0, r7] + b _02016792 +_0201678E: + bl sub_02020C2C +_02016792: + ldr r0, [sp, #0x0] + add r7, r7, #0x1 + add r0, r0, #0x4 + add r5, #0x8 + str r0, [sp, #0x0] + cmp r7, r4 + blo _02016752 +_020167A0: + ldr r0, [sp, #0x4] + add r1, r0, #0x1 + cmp r4, r1 + bhs _020167C0 + ldr r3, _020167F0 ; =0x021C4D28 + lsl r2, r4, #0x2 + mov r0, #0x0 +_020167AE: + ldr r5, [r3, #0x0] + str r0, [r5, r2] + ldrh r7, [r3, #0x1a] + ldr r5, [r3, #0x10] + add r2, r2, #0x4 + strb r7, [r5, r4] + add r4, r4, #0x1 + cmp r4, r1 + blo _020167AE +_020167C0: + cmp r4, r6 + bhs _020167D2 + ldr r0, _020167F0 ; =0x021C4D28 +_020167C6: + ldrh r2, [r0, #0x1a] + ldr r1, [r0, #0x10] + strb r2, [r1, r4] + add r4, r4, #0x1 + cmp r4, r6 + blo _020167C6 +_020167D2: + mov r4, #0x0 + cmp r6, #0x0 + bls _020167EA + ldr r0, _020167F0 ; =0x021C4D28 + add r3, r4, #0x0 + add r2, r4, #0x0 +_020167DE: + ldr r1, [r0, #0xc] + add r4, r4, #0x1 + strh r2, [r1, r3] + add r3, r3, #0x2 + cmp r4, r6 + blo _020167DE +_020167EA: + add sp, #0x8 + pop {r3-r7, pc} + nop +_020167F0: .word 0x021C4D28 + + thumb_func_start sub_020167F4 +sub_020167F4: ; 0x020167F4 + ldr r1, _02016818 ; =0x021C4D28 + ldrh r0, [r1, #0x16] + ldrh r3, [r1, #0x18] + cmp r0, r3 + bge _02016812 + ldr r2, [r1, #0x0] + lsl r1, r0, #0x2 + add r2, r2, r1 +_02016804: + ldr r1, [r2, #0x0] + cmp r1, #0x0 + beq _02016816 + add r0, r0, #0x1 + add r2, r2, #0x4 + cmp r0, r3 + blt _02016804 +_02016812: + mov r0, #0x0 + mvn r0, r0 +_02016816: + bx lr + .balign 4 +_02016818: .word 0x021C4D28 + + thumb_func_start sub_0201681C +sub_0201681C: ; 0x0201681C + push {r3, lr} + mov r3, #0x4 + bl sub_02016834 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02016828 +sub_02016828: ; 0x02016828 + push {r3, lr} + mov r3, #0x3 + mvn r3, r3 + bl sub_02016834 + pop {r3, pc} + + thumb_func_start sub_02016834 +sub_02016834: ; 0x02016834 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r5, r1, #0x0 + str r2, [sp, #0x0] + add r7, r3, #0x0 + blx sub_020CD374 + cmp r0, #0x12 + bne _0201684C + bl sub_02020C2C +_0201684C: + ldr r1, _020168CC ; =0x021C4D28 + ldr r0, [r1, #0x10] + ldrh r3, [r1, #0x1a] + ldrb r2, [r0, r5] + cmp r3, r2 + bne _020168C2 + ldrb r0, [r0, r4] + ldr r1, [r1, #0x0] + lsl r0, r0, #0x2 + ldr r6, [r1, r0] + cmp r6, #0x0 + beq _020168BC + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + add r2, r7, #0x0 + blx sub_020ADFA0 + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _020168B6 + bl sub_020167F4 + add r7, r0, #0x0 + bmi _020168B0 + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x0] + mov r2, #0x0 + lsl r4, r7, #0x2 + blx sub_020ADFE8 + ldr r1, _020168CC ; =0x021C4D28 + ldr r2, [r1, #0x0] + str r0, [r2, r4] + ldr r0, [r1, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _020168AA + ldr r0, [r1, #0x4] + str r6, [r0, r4] + ldr r0, [sp, #0x4] + ldr r2, [r1, #0x8] + add sp, #0x8 + str r0, [r2, r4] + ldr r0, [r1, #0x10] + strb r7, [r0, r5] + mov r0, #0x1 + pop {r3-r7, pc} +_020168AA: + bl sub_02020C2C + b _020168C6 +_020168B0: + bl sub_02020C2C + b _020168C6 +_020168B6: + bl sub_02020C2C + b _020168C6 +_020168BC: + bl sub_02020C2C + b _020168C6 +_020168C2: + bl sub_02020C2C +_020168C6: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020168CC: .word 0x021C4D28 + + thumb_func_start sub_020168D0 +sub_020168D0: ; 0x020168D0 + push {r4, lr} + add r4, r0, #0x0 + blx sub_020CD374 + cmp r0, #0x12 + bne _020168E0 + bl sub_02020C2C +_020168E0: + ldr r0, _02016940 ; =0x021C4D28 + ldr r1, [r0, #0x0] + ldr r0, [r0, #0x10] + ldrb r0, [r0, r4] + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0201693E + blx sub_020ADFDC + ldr r1, _02016940 ; =0x021C4D28 + ldr r0, [r1, #0x10] + ldrb r0, [r0, r4] + lsl r2, r0, #0x2 + ldr r0, [r1, #0x4] + ldr r1, [r1, #0x8] + ldr r0, [r0, r2] + ldr r1, [r1, r2] + cmp r0, #0x0 + beq _02016912 + cmp r1, #0x0 + beq _02016912 + blx sub_020ADDF0 + b _02016916 +_02016912: + bl sub_02020C2C +_02016916: + ldr r1, _02016940 ; =0x021C4D28 + mov r0, #0x0 + ldr r2, [r1, #0x10] + ldr r3, [r1, #0x0] + ldrb r2, [r2, r4] + lsl r2, r2, #0x2 + str r0, [r3, r2] + ldr r2, [r1, #0x10] + ldr r3, [r1, #0x4] + ldrb r2, [r2, r4] + lsl r2, r2, #0x2 + str r0, [r3, r2] + ldr r2, [r1, #0x10] + ldr r3, [r1, #0x8] + ldrb r2, [r2, r4] + lsl r2, r2, #0x2 + str r0, [r3, r2] + ldrh r2, [r1, #0x1a] + ldr r0, [r1, #0x10] + strb r2, [r0, r4] +_0201693E: + pop {r4, pc} + .balign 4 +_02016940: .word 0x021C4D28 + + thumb_func_start sub_02016944 +sub_02016944: ; 0x02016944 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r7, r2, #0x0 + add r6, r3, #0x0 + cmp r5, #0x0 + bne _02016956 + bl sub_02020C2C +_02016956: + blx sub_020CD310 + add r4, #0x10 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + blx sub_020ADFA0 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + blx sub_020CD324 + cmp r4, #0x0 + beq _02016984 + ldr r1, [r4, #0xc] + mov r0, #0xff + bic r1, r0 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + orr r0, r1 + str r0, [r4, #0xc] + add r4, #0x10 +_02016984: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02016988 +sub_02016988: ; 0x02016988 + push {r3, lr} + bl sub_02031810 + cmp r0, #0x0 + beq _02016996 + bl sub_0208A9B8 +_02016996: + pop {r3, pc} + + thumb_func_start sub_02016998 +sub_02016998: ; 0x02016998 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _020169D4 ; =0x021C4D28 + mov r4, #0x0 + ldrh r2, [r0, #0x14] + cmp r5, r2 + bhs _020169BA + ldr r2, [r0, #0x0] + ldr r0, [r0, #0x10] + add r3, r5, #0x0 + ldrb r0, [r0, r5] + lsl r0, r0, #0x2 + ldr r0, [r2, r0] + mov r2, #0x4 + bl sub_02016944 + add r4, r0, #0x0 +_020169BA: + cmp r4, #0x0 + beq _020169CC + ldr r0, _020169D4 ; =0x021C4D28 + lsl r1, r5, #0x1 + ldr r2, [r0, #0xc] + ldrh r0, [r2, r1] + add r0, r0, #0x1 + strh r0, [r2, r1] + b _020169D0 +_020169CC: + bl sub_02016988 +_020169D0: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_020169D4: .word 0x021C4D28 + + thumb_func_start sub_020169D8 +sub_020169D8: ; 0x020169D8 + push {r3-r5, lr} + ldr r2, _02016A14 ; =0x021C4D28 + add r5, r0, #0x0 + ldrh r0, [r2, #0x14] + mov r4, #0x0 + cmp r5, r0 + bhs _020169FA + ldr r0, [r2, #0x0] + ldr r2, [r2, #0x10] + add r3, r5, #0x0 + ldrb r2, [r2, r5] + lsl r2, r2, #0x2 + ldr r0, [r0, r2] + sub r2, r4, #0x4 + bl sub_02016944 + add r4, r0, #0x0 +_020169FA: + cmp r4, #0x0 + beq _02016A0C + ldr r0, _02016A14 ; =0x021C4D28 + lsl r1, r5, #0x1 + ldr r2, [r0, #0xc] + ldrh r0, [r2, r1] + add r0, r0, #0x1 + strh r0, [r2, r1] + b _02016A10 +_02016A0C: + bl sub_02016988 +_02016A10: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02016A14: .word 0x021C4D28 + + thumb_func_start sub_02016A18 +sub_02016A18: ; 0x02016A18 + push {r3-r7, lr} + add r6, r0, #0x0 + sub r0, r6, #0x4 + ldr r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, _02016A88 ; =0x021C4D28 + ldrh r1, [r0, #0x14] + cmp r4, r1 + bhs _02016A80 + ldr r1, [r0, #0x0] + ldr r0, [r0, #0x10] + ldrb r0, [r0, r4] + lsl r0, r0, #0x2 + ldr r7, [r1, r0] + cmp r7, #0x0 + bne _02016A3E + bl sub_02020C2C +_02016A3E: + ldr r0, _02016A88 ; =0x021C4D28 + lsl r5, r4, #0x1 + ldr r0, [r0, #0xc] + ldrh r0, [r0, r5] + cmp r0, #0x0 + bne _02016A50 + add r0, r4, #0x0 + bl sub_02016B90 +_02016A50: + ldr r0, _02016A88 ; =0x021C4D28 + ldr r0, [r0, #0xc] + ldrh r0, [r0, r5] + cmp r0, #0x0 + bne _02016A5E + bl sub_02020C2C +_02016A5E: + ldr r0, _02016A88 ; =0x021C4D28 + ldr r1, [r0, #0xc] + ldrh r0, [r1, r5] + sub r0, r0, #0x1 + strh r0, [r1, r5] + blx sub_020CD310 + sub r6, #0x10 + add r4, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + blx sub_020ADDF0 + add r0, r4, #0x0 + blx sub_020CD324 + pop {r3-r7, pc} +_02016A80: + bl sub_02020C2C + pop {r3-r7, pc} + nop +_02016A88: .word 0x021C4D28 + + thumb_func_start sub_02016A8C +sub_02016A8C: ; 0x02016A8C + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + blx sub_020CD374 + cmp r0, #0x12 + bne _02016A9E + bl sub_02020C2C +_02016A9E: + ldr r0, _02016AF4 ; =0x021C4D28 + ldrh r1, [r0, #0x14] + cmp r5, r1 + bhs _02016AEE + ldr r1, [r0, #0x0] + ldr r0, [r0, #0x10] + ldrb r0, [r0, r5] + lsl r0, r0, #0x2 + ldr r6, [r1, r0] + cmp r6, #0x0 + bne _02016AB8 + bl sub_02020C2C +_02016AB8: + sub r0, r4, #0x4 + ldr r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, r5 + beq _02016AC8 + bl sub_02020C2C +_02016AC8: + sub r4, #0x10 + add r0, r6, #0x0 + add r1, r4, #0x0 + blx sub_020ADDF0 + ldr r0, _02016AF4 ; =0x021C4D28 + lsl r4, r5, #0x1 + ldr r0, [r0, #0xc] + ldrh r0, [r0, r4] + cmp r0, #0x0 + bne _02016AE2 + bl sub_02020C2C +_02016AE2: + ldr r0, _02016AF4 ; =0x021C4D28 + ldr r1, [r0, #0xc] + ldrh r0, [r1, r4] + sub r0, r0, #0x1 + strh r0, [r1, r4] + pop {r4-r6, pc} +_02016AEE: + bl sub_02020C2C + pop {r4-r6, pc} + .balign 4 +_02016AF4: .word 0x021C4D28 + + thumb_func_start sub_02016AF8 +sub_02016AF8: ; 0x02016AF8 + push {r3, lr} + ldr r1, _02016B1C ; =0x021C4D28 + ldrh r2, [r1, #0x14] + cmp r0, r2 + bhs _02016B12 + ldr r2, [r1, #0x0] + ldr r1, [r1, #0x10] + ldrb r0, [r1, r0] + lsl r0, r0, #0x2 + ldr r0, [r2, r0] + blx sub_020ADDC8 + pop {r3, pc} +_02016B12: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + nop +_02016B1C: .word 0x021C4D28 + + thumb_func_start sub_02016B20 +sub_02016B20: ; 0x02016B20 + push {r4, lr} + ldr r4, _02016B40 ; =0x021C4D28 + ldrh r3, [r4, #0x14] + cmp r1, r3 + bhs _02016B3A + ldr r3, [r4, #0x0] + ldr r4, [r4, #0x10] + ldrb r1, [r4, r1] + lsl r1, r1, #0x2 + ldr r1, [r3, r1] + blx sub_020AE82C + pop {r4, pc} +_02016B3A: + bl sub_02020C2C + pop {r4, pc} + .balign 4 +_02016B40: .word 0x021C4D28 + + thumb_func_start sub_02016B44 +sub_02016B44: ; 0x02016B44 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + blx sub_020CD374 + cmp r0, #0x12 + bne _02016B56 + bl sub_02020C2C +_02016B56: + add r0, r5, #0x0 + sub r0, #0x10 + blx sub_020ADDC0 + add r4, #0x10 + cmp r0, r4 + blo _02016B84 + sub r2, r5, #0x4 + ldr r0, _02016B8C ; =0x021C4D28 + ldr r2, [r2, #0x0] + ldr r1, [r0, #0x0] + lsl r2, r2, #0x18 + ldr r0, [r0, #0x10] + lsr r2, r2, #0x18 + ldrb r0, [r0, r2] + sub r5, #0x10 + add r2, r4, #0x0 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + add r1, r5, #0x0 + blx sub_020ADE2C + pop {r3-r5, pc} +_02016B84: + bl sub_02020C2C + pop {r3-r5, pc} + nop +_02016B8C: .word 0x021C4D28 + + thumb_func_start sub_02016B90 +sub_02016B90: ; 0x02016B90 + mov r0, #0x1 + bx lr + + thumb_func_start sub_02016B94 +sub_02016B94: ; 0x02016B94 + push {r3-r5, lr} + mov r1, #0x5a + lsl r1, r1, #0x2 + add r5, r0, #0x0 + bl sub_02016998 + mov r2, #0x5a + mov r1, #0x0 + lsl r2, r2, #0x2 + add r4, r0, #0x0 + blx sub_020DF4A4 + str r5, [r4, #0x0] + mov r0, #0x0 + strh r0, [r4, #0x4] + strh r0, [r4, #0x6] + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02016BB8 +sub_02016BB8: ; 0x02016BB8 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02016BBC +sub_02016BBC: ; 0x02016BBC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + ldr r2, [r4, #0xc] + blx sub_020C59C0 + ldr r0, [r4, #0x8] + blx sub_020C59A4 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02016BF0 ; =0xC7FFFFFF + and r1, r0 + str r1, [r2, #0x0] + ldr r1, [r2, #0x0] + asr r0, r0, #0x3 + and r0, r1 + str r0, [r2, #0x0] + bl sub_0201E6D8 + bl sub_0201E740 + pop {r4, pc} + nop +_02016BF0: .word 0xC7FFFFFF + + thumb_func_start sub_02016BF4 +sub_02016BF4: ; 0x02016BF4 + push {r3, lr} + add r2, r0, #0x0 + cmp r1, #0x0 + bne _02016C0C + ldr r0, [r2, #0x0] + ldr r1, [r2, #0x4] + ldr r2, [r2, #0xc] + blx sub_020C59C0 + bl sub_0201E6D8 + pop {r3, pc} +_02016C0C: + ldr r0, [r2, #0x8] + blx sub_020C59A4 + bl sub_0201E740 + pop {r3, pc} + + thumb_func_start sub_02016C18 +sub_02016C18: ; 0x02016C18 + push {r3-r7, lr} + sub sp, #0x18 + str r1, [sp, #0x4] + str r3, [sp, #0x8] + add r4, r2, #0x0 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x10] + ldr r1, [sp, #0x8] + bl sub_020177DC + add r5, r0, #0x0 + ldr r0, [sp, #0x4] + cmp r0, #0x7 + bls _02016C36 + b _0201705A +_02016C36: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r6, r4, #0x1 + lsl r6, r7, #0x2 + lsl r0, r4, #0x5 + lsl r2, r0, #0x8 + lsl r2, r3, #0x9 + lsl r2, r6, #0xa + lsl r4, r2, #0xd + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_0201E6E4 + ldrb r3, [r4, #0x14] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x13] + lsl r6, r3, #0xd + lsl r0, r0, #0x7 + lsl r3, r2, #0x2 + str r0, [sp, #0xc] + ldr r2, _02016FB4 ; =0x04000008 + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r1, r0 + ldr r0, [sp, #0xc] + orr r0, r1 + orr r0, r7 + orr r0, r3 + orr r0, r6 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016CA0 + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016CA0: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016CAA: + .byte 0x02, 0x20, 0x01, 0x21, 0x07, 0xF0 + .byte 0x19, 0xFD, 0x23, 0x7D, 0xA1, 0x7C, 0x60, 0x7C, 0xE2, 0x7C, 0x5E, 0x03, 0xC0, 0x01, 0x93, 0x00 + .byte 0x04, 0x90, 0xBD, 0x4A, 0x0F, 0x02, 0x11, 0x88, 0x43, 0x20, 0x08, 0x40, 0xA9, 0x03, 0x01, 0x43 + .byte 0x04, 0x98, 0x08, 0x43, 0x38, 0x43, 0x18, 0x43, 0x30, 0x43, 0x10, 0x80, 0x11, 0x88, 0x03, 0x20 + .byte 0x81, 0x43, 0x60, 0x7D, 0x08, 0x43, 0x10, 0x80, 0xA0, 0x69, 0x00, 0x28, 0x04, 0xD0, 0x11, 0x88 + .byte 0x40, 0x20, 0x08, 0x43, 0x10, 0x80, 0xB0, 0xE1, 0x11, 0x88, 0x40, 0x20, 0x81, 0x43, 0x11, 0x80 + .byte 0xAB, 0xE1, 0x04, 0x20, 0x01, 0x21, 0x07, 0xF0, 0xED, 0xFC, 0x02, 0x98, 0x00, 0x28, 0x03, 0xD0 + .byte 0x01, 0x28, 0x12, 0xD0, 0x02, 0x28, 0x21, 0xD0, 0xA1, 0x7C, 0xA8, 0x4F, 0xE2, 0x7C, 0x0B, 0x02 + .byte 0x60, 0x7C, 0x96, 0x00, 0x39, 0x88, 0xC2, 0x01, 0x43, 0x20, 0x08, 0x40, 0xA9, 0x03, 0x08, 0x43 + .byte 0x10, 0x43, 0x18, 0x43, 0x30, 0x43, 0x38, 0x80, 0x20, 0xE0, 0xE2, 0x7C, 0xA1, 0x7C, 0xA0, 0x7D + .byte 0x93, 0x00, 0x9E, 0x4F, 0x0A, 0x02, 0x46, 0x03, 0x39, 0x88, 0x43, 0x20, 0x08, 0x40, 0xA9, 0x03 + .byte 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x30, 0x43, 0x38, 0x80, 0x0F, 0xE0, 0xA1, 0x7C, 0x97, 0x4F + .byte 0xA0, 0x7D, 0x0B, 0x02, 0xE2, 0x7C, 0x46, 0x03, 0x39, 0x88, 0x43, 0x20, 0x92, 0x00, 0x08, 0x40 + .byte 0xA9, 0x03, 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x30, 0x43, 0x38, 0x80, 0x8F, 0x48, 0x03, 0x21 + .byte 0x02, 0x88, 0x8A, 0x43, 0x61, 0x7D, 0x11, 0x43, 0x01, 0x80, 0xA1, 0x69, 0x00, 0x29, 0x04, 0xD0 + .byte 0x02, 0x88, 0x40, 0x21, 0x11, 0x43, 0x01, 0x80, 0x5F, 0xE1, 0x02, 0x88, 0x40, 0x21, 0x8A, 0x43 + .byte 0x02, 0x80, 0x5A, 0xE1, 0x08, 0x20, 0x01, 0x21, 0x07, 0xF0, 0x9C, 0xFC, 0x02, 0x98, 0x00, 0x28 + .byte 0x03, 0xD0, 0x01, 0x28, 0x12, 0xD0, 0x02, 0x28, 0x21, 0xD0, 0xA1, 0x7C, 0x80, 0x4F, 0xE2, 0x7C + .byte 0x0B, 0x02, 0x60, 0x7C, 0x96, 0x00, 0x39, 0x88, 0xC2, 0x01, 0x43, 0x20, 0x08, 0x40, 0xA9, 0x03 + .byte 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x30, 0x43, 0x38, 0x80, 0x20, 0xE0, 0xE2, 0x7C, 0xA1, 0x7C + .byte 0xA0, 0x7D, 0x93, 0x00, 0x76, 0x4F, 0x0A, 0x02, 0x46, 0x03, 0x39, 0x88, 0x43, 0x20, 0x08, 0x40 + .byte 0xA9, 0x03, 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x30, 0x43, 0x38, 0x80, 0x0F, 0xE0, 0xA1, 0x7C + .byte 0x6F, 0x4F, 0xA0, 0x7D, 0x0B, 0x02, 0xE2, 0x7C, 0x46, 0x03, 0x39, 0x88, 0x43, 0x20, 0x92, 0x00 + .byte 0x08, 0x40, 0xA9, 0x03, 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x30, 0x43, 0x38, 0x80, 0x68, 0x48 + .byte 0x03, 0x21, 0x02, 0x88, 0x8A, 0x43, 0x61, 0x7D, 0x11, 0x43, 0x01, 0x80, 0xA1, 0x69, 0x00, 0x29 + .byte 0x04, 0xD0, 0x02, 0x88, 0x40, 0x21, 0x11, 0x43, 0x01, 0x80, 0x0E, 0xE1, 0x02, 0x88, 0x40, 0x21 + .byte 0x8A, 0x43, 0x02, 0x80, 0x09, 0xE1, 0x01, 0x20, 0x01, 0x1C, 0x07, 0xF0, 0x7F, 0xFC, 0x23, 0x7D + .byte 0xA1, 0x7C, 0x60, 0x7C, 0xE2, 0x7C, 0x5E, 0x03, 0xC0, 0x01, 0x93, 0x00, 0x05, 0x90, 0x59, 0x4A + .byte 0x0F, 0x02, 0x11, 0x88, 0x43, 0x20, 0x08, 0x40, 0xA9, 0x03, 0x01, 0x43, 0x05, 0x98, 0x08, 0x43 + .byte 0x38, 0x43, 0x18, 0x43, 0x30, 0x43, 0x10, 0x80, 0x11, 0x88, 0x03, 0x20, 0x81, 0x43, 0x60, 0x7D + .byte 0x08, 0x43, 0x10, 0x80, 0xA0, 0x69, 0x00, 0x28, 0x04, 0xD0, 0x11, 0x88, 0x40, 0x20, 0x08, 0x43 + .byte 0x10, 0x80, 0xE2, 0xE0, 0x11, 0x88, 0x40, 0x20, 0x81, 0x43, 0x11, 0x80, 0xDD, 0xE0, 0x02, 0x20 + .byte 0x01, 0x21, 0x07, 0xF0, 0x53, 0xFC, 0xE2, 0x7C, 0xA1, 0x7C, 0x60, 0x7C, 0x96, 0x00, 0x23, 0x7D + .byte 0xC0, 0x01, 0x84, 0x46, 0x44, 0x4A, 0x0F, 0x02, 0x11, 0x88, 0x43, 0x20, 0x5B, 0x03, 0x08, 0x40 + .byte 0xA9, 0x03, 0x08, 0x43, 0x61, 0x46, 0x08, 0x43, 0x38, 0x43, 0x30, 0x43, 0x18, 0x43, 0x10, 0x80 + .byte 0x11, 0x88, 0x03, 0x20, 0x81, 0x43, 0x60, 0x7D, 0x08, 0x43, 0x10, 0x80, 0xA0, 0x69, 0x00, 0x28 + .byte 0x04, 0xD0, 0x11, 0x88, 0x40, 0x20, 0x08, 0x43, 0x10, 0x80, 0xB6, 0xE0, 0x11, 0x88, 0x40, 0x20 + .byte 0x81, 0x43, 0x11, 0x80, 0xB1, 0xE0, 0x04, 0x20, 0x01, 0x21, 0x07, 0xF0, 0x27, 0xFC, 0x02, 0x98 + .byte 0x00, 0x28, 0x03, 0xD0, 0x01, 0x28, 0x12, 0xD0, 0x02, 0x28, 0x21, 0xD0, 0xA1, 0x7C, 0x2F, 0x4F + .byte 0xE2, 0x7C, 0x0B, 0x02, 0x60, 0x7C, 0x96, 0x00, 0x39, 0x88, 0xC2, 0x01, 0x43, 0x20, 0x08, 0x40 + .byte 0xA9, 0x03, 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x30, 0x43, 0x38, 0x80, 0x20, 0xE0, 0xE2, 0x7C + .byte 0xA1, 0x7C, 0xA0, 0x7D, 0x93, 0x00, 0x25, 0x4F, 0x0A, 0x02, 0x46, 0x03, 0x39, 0x88, 0x43, 0x20 + .byte 0x08, 0x40, 0xA9, 0x03, 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x30, 0x43, 0x38, 0x80, 0x0F, 0xE0 + .byte 0xA1, 0x7C, 0x1E, 0x4F, 0xA0, 0x7D, 0x0B, 0x02, 0xE2, 0x7C, 0x46, 0x03, 0x39, 0x88, 0x43, 0x20 + .byte 0x92, 0x00, 0x08, 0x40, 0xA9, 0x03, 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x30, 0x43, 0x38, 0x80 + .byte 0x16, 0x48, 0x03, 0x21, 0x02, 0x88, 0x8A, 0x43, 0x61, 0x7D, 0x11, 0x43, 0x01, 0x80, 0xA1, 0x69 + .byte 0x00, 0x29, 0x04, 0xD0, 0x02, 0x88, 0x40, 0x21, 0x11, 0x43, 0x01, 0x80, 0x65, 0xE0, 0x02, 0x88 + .byte 0x40, 0x21, 0x8A, 0x43, 0x02, 0x80, 0x60, 0xE0, 0x08, 0x20, 0x01, 0x21, 0x07, 0xF0, 0xD6, 0xFB + .byte 0x02, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x01, 0x28, 0x23, 0xD0, 0x02, 0x28, 0x32, 0xD0, 0xA1, 0x7C + .byte 0x07, 0x4F, 0x0F, 0xE0 +_02016FB4: .word 0x04000008 +_02016FB8: + .byte 0x0A, 0x00, 0x00, 0x04, 0x0C, 0x00, 0x00, 0x04 + .byte 0x0E, 0x00, 0x00, 0x04, 0x08, 0x10, 0x00, 0x04, 0x0A, 0x10, 0x00, 0x04, 0x0C, 0x10, 0x00, 0x04 + .byte 0x0E, 0x10, 0x00, 0x04, 0xE2, 0x7C, 0x0B, 0x02, 0x60, 0x7C, 0x96, 0x00, 0x39, 0x88, 0xC2, 0x01 + .byte 0x43, 0x20, 0x08, 0x40, 0xA9, 0x03, 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x30, 0x43, 0x38, 0x80 + .byte 0x20, 0xE0, 0xE2, 0x7C, 0xA1, 0x7C, 0xA0, 0x7D, 0x93, 0x00, 0x3D, 0x4F, 0x0A, 0x02, 0x46, 0x03 + .byte 0x39, 0x88, 0x43, 0x20, 0x08, 0x40, 0xA9, 0x03, 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x30, 0x43 + .byte 0x38, 0x80, 0x0F, 0xE0, 0xA1, 0x7C, 0x36, 0x4F, 0xA0, 0x7D, 0x0B, 0x02, 0xE2, 0x7C, 0x46, 0x03 + .byte 0x39, 0x88, 0x43, 0x20, 0x92, 0x00, 0x08, 0x40, 0xA9, 0x03, 0x08, 0x43, 0x10, 0x43, 0x18, 0x43 + .byte 0x30, 0x43, 0x38, 0x80, 0x2E, 0x48, 0x03, 0x21, 0x02, 0x88, 0x8A, 0x43, 0x61, 0x7D, 0x11, 0x43 + .byte 0x01, 0x80, 0xA1, 0x69, 0x00, 0x29, 0x04, 0xD0, 0x02, 0x88, 0x40, 0x21, 0x11, 0x43, 0x01, 0x80 + .byte 0x03, 0xE0, 0x02, 0x88, 0x40, 0x21, 0x8A, 0x43, 0x02, 0x80 +_0201705A: + ldr r0, [sp, #0x4] + mov r1, #0x2c + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + mul r5, r1 + add r2, r0, r5 + mov r3, #0x0 + mov r0, #0x1 + strh r3, [r2, #0x20] + lsl r0, r0, #0xc + str r0, [r2, #0x24] + str r0, [r2, #0x28] + str r3, [r2, #0x2c] + str r3, [r2, #0x30] + ldr r1, [r4, #0x8] + cmp r1, #0x0 + beq _020170A2 + ldr r0, [sp, #0x0] + ldr r6, [sp, #0x0] + ldr r0, [r0, #0x0] + add r6, #0x8 + bl sub_02016998 + str r0, [r6, r5] + ldr r1, [r6, r5] + ldr r2, [r4, #0x8] + mov r0, #0x0 + blx sub_020CE1C8 + ldr r0, [sp, #0x0] + ldr r2, [r4, #0x8] + add r1, r0, r5 + str r2, [r1, #0xc] + ldr r0, [r4, #0xc] + str r0, [r1, #0x10] + b _020170A8 +_020170A2: + str r3, [r2, #0x8] + str r3, [r2, #0xc] + str r3, [r2, #0x10] +_020170A8: + ldr r0, [sp, #0x0] + ldrb r1, [r4, #0x10] + add r0, r0, r5 + strb r1, [r0, #0x1d] + ldr r1, [sp, #0x8] + strb r1, [r0, #0x1c] + ldrb r1, [r4, #0x11] + strb r1, [r0, #0x1e] + ldr r1, [sp, #0x8] + cmp r1, #0x0 + bne _020170CA + ldrb r1, [r4, #0x11] + cmp r1, #0x0 + bne _020170CA + mov r1, #0x20 + strb r1, [r0, #0x1f] + b _020170D2 +_020170CA: + ldr r0, [sp, #0x0] + mov r1, #0x40 + add r0, r0, r5 + strb r1, [r0, #0x1f] +_020170D2: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r3, [r4, #0x0] + mov r2, #0x0 + bl sub_020179E0 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r3, [r4, #0x4] + mov r2, #0x3 + bl sub_020179E0 + add sp, #0x18 + pop {r3-r7, pc} + nop +_020170F0: + .byte 0x0E, 0x10, 0x00, 0x04 + + thumb_func_start sub_020170F4 +sub_020170F4: ; 0x020170F4 + push {r3-r7, lr} + sub sp, #0x20 + add r4, r1, #0x0 + add r5, r0, #0x0 + add r1, r2, #0x0 + add r0, r3, #0x0 + cmp r1, #0x0 + bne _0201710C + mov r2, #0x2c + mul r2, r4 + add r2, r5, r2 + strb r0, [r2, #0x1e] +_0201710C: + cmp r4, #0x7 + bls _02017112 + b _020177C4 +_02017112: + add r2, r4, r4 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r6, r1, #0 + lsl r2, r7, #0x1 + lsl r6, r4, #0x3 + lsl r2, r3, #0x8 + lsl r6, r1, #0xd + lsl r4, r2, #0xf + lsl r0, r0, #0x11 + lsl r4, r6, #0x15 + ldr r2, _02017480 ; =0x04000008 + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x1e] + bne _0201714A + ldrh r3, [r2, #0x1e] + ldr r1, _02017484 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x1e] + b _0201715C +_0201714A: + cmp r1, #0x2 + bne _0201715C + ldrh r3, [r2, #0x1e] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x1e] +_0201715C: + add r0, sp, #0x0 + ldrh r3, [r0, #0x1e] + add sp, #0x20 + lsl r0, r3, #0x12 + lsr r6, r0, #0x1f + lsl r0, r3, #0x1a + lsr r2, r0, #0x1c + lsl r0, r3, #0x13 + lsr r1, r0, #0x1b + mov r0, #0x2c + mul r0, r4 + add r0, r5, r0 + lsl r3, r3, #0x10 + lsr r5, r3, #0x1e + lsl r3, r2, #0x2 + ldrb r0, [r0, #0x1e] + lsl r2, r1, #0x8 + lsl r4, r6, #0xd + lsl r1, r0, #0x7 + ldr r0, _02017480 ; =0x04000008 + mov r6, #0x43 + ldrh r7, [r0, #0x0] + lsl r5, r5, #0xe + and r6, r7 + orr r5, r6 + orr r1, r5 + orr r1, r2 + orr r1, r3 + orr r1, r4 + strh r1, [r0, #0x0] + pop {r3-r7, pc} +_0201719A: + .byte 0xBB, 0x4A, 0x01, 0x29, 0x13, 0x88 + .byte 0x00, 0xAA, 0x93, 0x83, 0x07, 0xD1, 0x93, 0x8B, 0xB6, 0x49, 0xC0, 0x06, 0x19, 0x40, 0xC0, 0x0C + .byte 0x08, 0x43, 0x90, 0x83, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0x93, 0x8B, 0x3C, 0x21, 0x00, 0x07 + .byte 0x8B, 0x43, 0x80, 0x0E, 0x18, 0x43, 0x90, 0x83, 0x00, 0xA8, 0x83, 0x8B, 0x08, 0xB0, 0x98, 0x04 + .byte 0xC6, 0x0F, 0x98, 0x06, 0x02, 0x0F, 0xD8, 0x04, 0xC1, 0x0E, 0x2C, 0x20, 0x60, 0x43, 0x28, 0x18 + .byte 0x1B, 0x04, 0x9D, 0x0F, 0x93, 0x00, 0x80, 0x7F, 0x0A, 0x02, 0x74, 0x03, 0xC1, 0x01, 0xA6, 0x48 + .byte 0x43, 0x26, 0x07, 0x88, 0xAD, 0x03, 0x3E, 0x40, 0x35, 0x43, 0x29, 0x43, 0x11, 0x43, 0x19, 0x43 + .byte 0x21, 0x43, 0x01, 0x80, 0xF8, 0xBD, 0x2C, 0x22, 0x62, 0x43, 0xAB, 0x18, 0x1B, 0x7F, 0x00, 0x2B + .byte 0x03, 0xD0, 0x01, 0x2B, 0x31, 0xD0, 0x02, 0x2B, 0x5F, 0xD0, 0x9C, 0x4B, 0x01, 0x29, 0x1C, 0x88 + .byte 0x00, 0xAB, 0x5C, 0x83, 0x07, 0xD1, 0x5C, 0x8B, 0x96, 0x49, 0xC0, 0x06, 0x21, 0x40, 0xC0, 0x0C + .byte 0x08, 0x43, 0x58, 0x83, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0x5C, 0x8B, 0x3C, 0x21, 0x00, 0x07 + .byte 0x8C, 0x43, 0x80, 0x0E, 0x20, 0x43, 0x58, 0x83, 0x00, 0xA8, 0x43, 0x8B, 0xAA, 0x18, 0x8F, 0x4E + .byte 0x98, 0x06, 0x94, 0x7F, 0x01, 0x0F, 0xD8, 0x04, 0x1A, 0x04, 0x93, 0x0F, 0x35, 0x88, 0xC0, 0x0E + .byte 0x8A, 0x00, 0x01, 0x02, 0xE0, 0x01, 0x43, 0x24, 0x2C, 0x40, 0x9B, 0x03, 0x23, 0x43, 0x18, 0x43 + .byte 0x08, 0x43, 0x10, 0x43, 0x08, 0xB0, 0x30, 0x80, 0xF8, 0xBD, 0x84, 0x4A, 0x01, 0x29, 0x13, 0x88 + .byte 0x00, 0xAA, 0x13, 0x83, 0x07, 0xD1, 0x13, 0x8B, 0x7E, 0x49, 0xC0, 0x06, 0x19, 0x40, 0xC0, 0x0C + .byte 0x08, 0x43, 0x10, 0x83, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0x13, 0x8B, 0x3C, 0x21, 0x00, 0x07 + .byte 0x8B, 0x43, 0x80, 0x0E, 0x18, 0x43, 0x10, 0x83, 0x00, 0xA8, 0x03, 0x8B, 0x77, 0x4E, 0x08, 0xB0 + .byte 0xD9, 0x04, 0x98, 0x06, 0xCC, 0x0E, 0x99, 0x04, 0xCA, 0x0F, 0x19, 0x04, 0x8B, 0x0F, 0x00, 0x0F + .byte 0x81, 0x00, 0x20, 0x02, 0x35, 0x88, 0x43, 0x24, 0x9B, 0x03, 0x2C, 0x40, 0x23, 0x43, 0x18, 0x43 + .byte 0x52, 0x03, 0x08, 0x43, 0x10, 0x43, 0x30, 0x80, 0xF8, 0xBD, 0x6C, 0x4A, 0x01, 0x29, 0x13, 0x88 + .byte 0x00, 0xAA, 0xD3, 0x82, 0x07, 0xD1, 0xD3, 0x8A, 0x66, 0x49, 0xC0, 0x06, 0x19, 0x40, 0xC0, 0x0C + .byte 0x08, 0x43, 0xD0, 0x82, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0xD3, 0x8A, 0x38, 0x21, 0x40, 0x07 + .byte 0x8B, 0x43, 0x80, 0x0E, 0x18, 0x43, 0xD0, 0x82, 0x00, 0xA8, 0xC3, 0x8A, 0x5F, 0x4E, 0x08, 0xB0 + .byte 0xD9, 0x04, 0xCC, 0x0E, 0x99, 0x04, 0xCA, 0x0F, 0x98, 0x06, 0x19, 0x04, 0x8B, 0x0F, 0x21, 0x02 + .byte 0x40, 0x0F, 0x35, 0x88, 0x43, 0x24, 0x9B, 0x03, 0x2C, 0x40, 0x80, 0x00, 0x23, 0x43, 0x18, 0x43 + .byte 0x52, 0x03, 0x08, 0x43, 0x10, 0x43, 0x30, 0x80, 0xF8, 0xBD, 0x2C, 0x22, 0x62, 0x43, 0xAB, 0x18 + .byte 0x1B, 0x7F, 0x00, 0x2B, 0x03, 0xD0, 0x01, 0x2B, 0x31, 0xD0, 0x02, 0x2B, 0x5F, 0xD0, 0x50, 0x4B + .byte 0x01, 0x29, 0x1C, 0x88, 0x00, 0xAB, 0x9C, 0x82, 0x07, 0xD1, 0x9C, 0x8A, 0x49, 0x49, 0xC0, 0x06 + .byte 0x21, 0x40, 0xC0, 0x0C, 0x08, 0x43, 0x98, 0x82, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0x9C, 0x8A + .byte 0x3C, 0x21, 0x00, 0x07, 0x8C, 0x43, 0x80, 0x0E, 0x20, 0x43, 0x98, 0x82, 0x00, 0xA8, 0x83, 0x8A + .byte 0xAA, 0x18, 0x43, 0x4E, 0x98, 0x06, 0x94, 0x7F, 0x01, 0x0F, 0xD8, 0x04, 0x1A, 0x04, 0x93, 0x0F + .byte 0x35, 0x88, 0xC0, 0x0E, 0x8A, 0x00, 0x01, 0x02, 0xE0, 0x01, 0x43, 0x24, 0x2C, 0x40, 0x9B, 0x03 + .byte 0x23, 0x43, 0x18, 0x43, 0x08, 0x43, 0x10, 0x43, 0x08, 0xB0, 0x30, 0x80, 0xF8, 0xBD, 0x38, 0x4A + .byte 0x01, 0x29, 0x13, 0x88, 0x00, 0xAA, 0x53, 0x82, 0x07, 0xD1, 0x53, 0x8A, 0x31, 0x49, 0xC0, 0x06 + .byte 0x19, 0x40, 0xC0, 0x0C, 0x08, 0x43, 0x50, 0x82, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0x53, 0x8A + .byte 0x3C, 0x21, 0x00, 0x07, 0x8B, 0x43, 0x80, 0x0E, 0x18, 0x43, 0x50, 0x82, 0x00, 0xA8, 0x43, 0x8A + .byte 0x2B, 0x4E, 0x08, 0xB0, 0xD9, 0x04, 0x98, 0x06, 0xCC, 0x0E, 0x99, 0x04, 0xCA, 0x0F, 0x19, 0x04 + .byte 0x8B, 0x0F, 0x00, 0x0F, 0x81, 0x00, 0x20, 0x02, 0x35, 0x88, 0x43, 0x24, 0x9B, 0x03, 0x2C, 0x40 + .byte 0x23, 0x43, 0x18, 0x43, 0x52, 0x03, 0x08, 0x43, 0x10, 0x43, 0x30, 0x80, 0xF8, 0xBD, 0x20, 0x4A + .byte 0x01, 0x29, 0x13, 0x88, 0x00, 0xAA, 0x13, 0x82, 0x07, 0xD1, 0x13, 0x8A, 0x19, 0x49, 0xC0, 0x06 + .byte 0x19, 0x40, 0xC0, 0x0C, 0x08, 0x43, 0x10, 0x82, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0x13, 0x8A + .byte 0x38, 0x21, 0x40, 0x07, 0x8B, 0x43, 0x80, 0x0E, 0x18, 0x43, 0x10, 0x82, 0x00, 0xA8, 0x03, 0x8A + .byte 0x13, 0x4E, 0x08, 0xB0, 0xD9, 0x04, 0xCC, 0x0E, 0x99, 0x04, 0xCA, 0x0F, 0x98, 0x06, 0x19, 0x04 + .byte 0x8B, 0x0F, 0x21, 0x02, 0x40, 0x0F, 0x35, 0x88, 0x43, 0x24, 0x9B, 0x03, 0x2C, 0x40, 0x80, 0x00 + .byte 0x23, 0x43, 0x18, 0x43, 0x52, 0x03, 0x08, 0x43, 0x10, 0x43, 0x30, 0x80, 0xF8, 0xBD, 0x09, 0x4A + .byte 0x01, 0x29, 0x13, 0x88, 0x00, 0xAA, 0xD3, 0x81, 0x14, 0xD1, 0xD3, 0x89, 0x01, 0x49, 0x0B, 0xE0 +_02017480: .word 0x04000008 +_02017484: .word 0xFFFFE0FF +_02017488: + .byte 0x0A, 0x00, 0x00, 0x04, 0x0C, 0x00, 0x00, 0x04 + .byte 0x0E, 0x00, 0x00, 0x04, 0x08, 0x10, 0x00, 0x04, 0xC0, 0x06, 0x19, 0x40, 0xC0, 0x0C, 0x08, 0x43 + .byte 0xD0, 0x81, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0xD3, 0x89, 0x3C, 0x21, 0x00, 0x07, 0x8B, 0x43 + .byte 0x80, 0x0E, 0x18, 0x43, 0xD0, 0x81, 0x00, 0xA8, 0xC3, 0x89, 0x08, 0xB0, 0x98, 0x04, 0xC6, 0x0F + .byte 0x98, 0x06, 0x02, 0x0F, 0xD8, 0x04, 0xC1, 0x0E, 0x2C, 0x20, 0x60, 0x43, 0x28, 0x18, 0x1B, 0x04 + .byte 0x9D, 0x0F, 0x93, 0x00, 0x80, 0x7F, 0x0A, 0x02, 0x74, 0x03, 0xC1, 0x01, 0xBA, 0x48, 0x43, 0x26 + .byte 0x07, 0x88, 0xAD, 0x03, 0x3E, 0x40, 0x35, 0x43, 0x29, 0x43, 0x11, 0x43, 0x19, 0x43, 0x21, 0x43 + .byte 0x01, 0x80, 0xF8, 0xBD, 0xB5, 0x4A, 0x01, 0x29, 0x13, 0x88, 0x00, 0xAA, 0x93, 0x81, 0x07, 0xD1 + .byte 0x93, 0x89, 0xB3, 0x49, 0xC0, 0x06, 0x19, 0x40, 0xC0, 0x0C, 0x08, 0x43, 0x90, 0x81, 0x08, 0xE0 + .byte 0x02, 0x29, 0x06, 0xD1, 0x93, 0x89, 0x3C, 0x21, 0x00, 0x07, 0x8B, 0x43, 0x80, 0x0E, 0x18, 0x43 + .byte 0x90, 0x81, 0x00, 0xA8, 0x83, 0x89, 0x08, 0xB0, 0x98, 0x04, 0xC6, 0x0F, 0x98, 0x06, 0x02, 0x0F + .byte 0xD8, 0x04, 0xC1, 0x0E, 0x2C, 0x20, 0x60, 0x43, 0x28, 0x18, 0x1B, 0x04, 0x9D, 0x0F, 0x93, 0x00 + .byte 0x80, 0x7F, 0x0A, 0x02, 0x74, 0x03, 0xC1, 0x01, 0xA0, 0x48, 0x43, 0x26, 0x07, 0x88, 0xAD, 0x03 + .byte 0x3E, 0x40, 0x35, 0x43, 0x29, 0x43, 0x11, 0x43, 0x19, 0x43, 0x21, 0x43, 0x01, 0x80, 0xF8, 0xBD + .byte 0x2C, 0x22, 0x62, 0x43, 0xAB, 0x18, 0x1B, 0x7F, 0x00, 0x2B, 0x03, 0xD0, 0x01, 0x2B, 0x31, 0xD0 + .byte 0x02, 0x2B, 0x5F, 0xD0, 0x97, 0x4B, 0x01, 0x29, 0x1C, 0x88, 0x00, 0xAB, 0x5C, 0x81, 0x07, 0xD1 + .byte 0x5C, 0x89, 0x93, 0x49, 0xC0, 0x06, 0x21, 0x40, 0xC0, 0x0C, 0x08, 0x43, 0x58, 0x81, 0x08, 0xE0 + .byte 0x02, 0x29, 0x06, 0xD1, 0x5C, 0x89, 0x3C, 0x21, 0x00, 0x07, 0x8C, 0x43, 0x80, 0x0E, 0x20, 0x43 + .byte 0x58, 0x81, 0x00, 0xA8, 0x43, 0x89, 0xAA, 0x18, 0x8A, 0x4E, 0x98, 0x06, 0x94, 0x7F, 0x01, 0x0F + .byte 0xD8, 0x04, 0x1A, 0x04, 0x93, 0x0F, 0x35, 0x88, 0xC0, 0x0E, 0x8A, 0x00, 0x01, 0x02, 0xE0, 0x01 + .byte 0x43, 0x24, 0x2C, 0x40, 0x9B, 0x03, 0x23, 0x43, 0x18, 0x43, 0x08, 0x43, 0x10, 0x43, 0x08, 0xB0 + .byte 0x30, 0x80, 0xF8, 0xBD, 0x7F, 0x4A, 0x01, 0x29, 0x13, 0x88, 0x00, 0xAA, 0x13, 0x81, 0x07, 0xD1 + .byte 0x13, 0x89, 0x7B, 0x49, 0xC0, 0x06, 0x19, 0x40, 0xC0, 0x0C, 0x08, 0x43, 0x10, 0x81, 0x08, 0xE0 + .byte 0x02, 0x29, 0x06, 0xD1, 0x13, 0x89, 0x3C, 0x21, 0x00, 0x07, 0x8B, 0x43, 0x80, 0x0E, 0x18, 0x43 + .byte 0x10, 0x81, 0x00, 0xA8, 0x03, 0x89, 0x73, 0x4E, 0x08, 0xB0, 0xD9, 0x04, 0x98, 0x06, 0xCC, 0x0E + .byte 0x99, 0x04, 0xCA, 0x0F, 0x19, 0x04, 0x8B, 0x0F, 0x00, 0x0F, 0x81, 0x00, 0x20, 0x02, 0x35, 0x88 + .byte 0x43, 0x24, 0x9B, 0x03, 0x2C, 0x40, 0x23, 0x43, 0x18, 0x43, 0x52, 0x03, 0x08, 0x43, 0x10, 0x43 + .byte 0x30, 0x80, 0xF8, 0xBD, 0x67, 0x4A, 0x01, 0x29, 0x13, 0x88, 0x00, 0xAA, 0xD3, 0x80, 0x07, 0xD1 + .byte 0xD3, 0x88, 0x63, 0x49, 0xC0, 0x06, 0x19, 0x40, 0xC0, 0x0C, 0x08, 0x43, 0xD0, 0x80, 0x08, 0xE0 + .byte 0x02, 0x29, 0x06, 0xD1, 0xD3, 0x88, 0x38, 0x21, 0x40, 0x07, 0x8B, 0x43, 0x80, 0x0E, 0x18, 0x43 + .byte 0xD0, 0x80, 0x00, 0xA8, 0xC3, 0x88, 0x5B, 0x4E, 0x08, 0xB0, 0xD9, 0x04, 0xCC, 0x0E, 0x99, 0x04 + .byte 0xCA, 0x0F, 0x98, 0x06, 0x19, 0x04, 0x8B, 0x0F, 0x21, 0x02, 0x40, 0x0F, 0x35, 0x88, 0x43, 0x24 + .byte 0x9B, 0x03, 0x2C, 0x40, 0x80, 0x00, 0x23, 0x43, 0x18, 0x43, 0x52, 0x03, 0x08, 0x43, 0x10, 0x43 + .byte 0x30, 0x80, 0xF8, 0xBD, 0x2C, 0x22, 0x62, 0x43, 0xAB, 0x18, 0x1B, 0x7F, 0x00, 0x2B, 0x03, 0xD0 + .byte 0x01, 0x2B, 0x31, 0xD0, 0x02, 0x2B, 0x5F, 0xD0, 0x4B, 0x4B, 0x01, 0x29, 0x1C, 0x88, 0x00, 0xAB + .byte 0x9C, 0x80, 0x07, 0xD1, 0x9C, 0x88, 0x46, 0x49, 0xC0, 0x06, 0x21, 0x40, 0xC0, 0x0C, 0x08, 0x43 + .byte 0x98, 0x80, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0x9C, 0x88, 0x3C, 0x21, 0x00, 0x07, 0x8C, 0x43 + .byte 0x80, 0x0E, 0x20, 0x43, 0x98, 0x80, 0x00, 0xA8, 0x83, 0x88, 0xAA, 0x18, 0x3E, 0x4E, 0x98, 0x06 + .byte 0x94, 0x7F, 0x01, 0x0F, 0xD8, 0x04, 0x1A, 0x04, 0x93, 0x0F, 0x35, 0x88, 0xC0, 0x0E, 0x8A, 0x00 + .byte 0x01, 0x02, 0xE0, 0x01, 0x43, 0x24, 0x2C, 0x40, 0x9B, 0x03, 0x23, 0x43, 0x18, 0x43, 0x08, 0x43 + .byte 0x10, 0x43, 0x08, 0xB0, 0x30, 0x80, 0xF8, 0xBD, 0x33, 0x4A, 0x01, 0x29, 0x13, 0x88, 0x00, 0xAA + .byte 0x53, 0x80, 0x07, 0xD1, 0x53, 0x88, 0x2E, 0x49, 0xC0, 0x06, 0x19, 0x40, 0xC0, 0x0C, 0x08, 0x43 + .byte 0x50, 0x80, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0x53, 0x88, 0x3C, 0x21, 0x00, 0x07, 0x8B, 0x43 + .byte 0x80, 0x0E, 0x18, 0x43, 0x50, 0x80, 0x00, 0xA8, 0x43, 0x88, 0x27, 0x4E, 0x08, 0xB0, 0xD9, 0x04 + .byte 0x98, 0x06, 0xCC, 0x0E, 0x99, 0x04, 0xCA, 0x0F, 0x19, 0x04, 0x8B, 0x0F, 0x00, 0x0F, 0x81, 0x00 + .byte 0x20, 0x02, 0x35, 0x88, 0x43, 0x24, 0x9B, 0x03, 0x2C, 0x40, 0x23, 0x43, 0x18, 0x43, 0x52, 0x03 + .byte 0x08, 0x43, 0x10, 0x43, 0x30, 0x80, 0xF8, 0xBD, 0x1B, 0x4A, 0x01, 0x29, 0x13, 0x88, 0x00, 0xAA + .byte 0x13, 0x80, 0x07, 0xD1, 0x13, 0x88, 0x16, 0x49, 0xC0, 0x06, 0x19, 0x40, 0xC0, 0x0C, 0x08, 0x43 + .byte 0x10, 0x80, 0x08, 0xE0, 0x02, 0x29, 0x06, 0xD1, 0x13, 0x88, 0x38, 0x21, 0x40, 0x07, 0x8B, 0x43 + .byte 0x80, 0x0E, 0x18, 0x43, 0x10, 0x80, 0x00, 0xA8, 0x03, 0x88, 0x0F, 0x4E, 0xD9, 0x04, 0xCC, 0x0E + .byte 0x99, 0x04, 0xCA, 0x0F, 0x98, 0x06, 0x19, 0x04, 0x8B, 0x0F, 0x21, 0x02, 0x40, 0x0F, 0x35, 0x88 + .byte 0x43, 0x24, 0x9B, 0x03, 0x2C, 0x40, 0x80, 0x00, 0x23, 0x43, 0x18, 0x43, 0x52, 0x03, 0x08, 0x43 + .byte 0x10, 0x43, 0x30, 0x80 +_020177C4: + add sp, #0x20 + pop {r3-r7, pc} +_020177C8: + .byte 0x08, 0x10, 0x00, 0x04, 0x0A, 0x10, 0x00, 0x04 + .byte 0xFF, 0xE0, 0xFF, 0xFF, 0x0C, 0x10, 0x00, 0x04, 0x0E, 0x10, 0x00, 0x04 + + thumb_func_start sub_020177DC +sub_020177DC: ; 0x020177DC + cmp r1, #0x0 + beq _020177EA + cmp r1, #0x1 + beq _0201780A + cmp r1, #0x2 + beq _0201782A + b _0201784A +_020177EA: + cmp r0, #0x1 + bne _020177F2 + mov r0, #0x0 + bx lr +_020177F2: + cmp r0, #0x2 + bne _020177FA + mov r0, #0x2 + bx lr +_020177FA: + cmp r0, #0x3 + bne _02017802 + mov r0, #0x1 + bx lr +_02017802: + cmp r0, #0x4 + bne _0201784A + mov r0, #0x3 + bx lr +_0201780A: + cmp r0, #0x0 + bne _02017812 + mov r0, #0x0 + bx lr +_02017812: + cmp r0, #0x1 + bne _0201781A + mov r0, #0x1 + bx lr +_0201781A: + cmp r0, #0x4 + bne _02017822 + mov r0, #0x2 + bx lr +_02017822: + cmp r0, #0x5 + bne _0201784A + mov r0, #0x3 + bx lr +_0201782A: + cmp r0, #0x0 + bne _02017832 + mov r0, #0x0 + bx lr +_02017832: + cmp r0, #0x1 + bne _0201783A + mov r0, #0x1 + bx lr +_0201783A: + cmp r0, #0x4 + bne _02017842 + mov r0, #0x2 + bx lr +_02017842: + cmp r0, #0x5 + bne _0201784A + mov r0, #0x3 + bx lr +_0201784A: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02017850 +sub_02017850: ; 0x02017850 + cmp r0, #0x5 + bhi _0201789E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r2, r2, #0 + lsl r2, r3, #0 + lsl r4, r4, #0 + lsl r6, r5, #0 + lsl r6, r6, #0 + mov r0, #0x10 + strb r0, [r1, #0x0] + strb r0, [r2, #0x0] + bx lr +_02017874: + .byte 0x20, 0x20, 0x08, 0x70, 0x10, 0x70, 0x70, 0x47, 0x20, 0x20, 0x08, 0x70 + .byte 0x40, 0x20, 0x10, 0x70, 0x70, 0x47, 0x40, 0x20, 0x08, 0x70, 0x20, 0x20, 0x10, 0x70, 0x70, 0x47 + .byte 0x40, 0x20, 0x08, 0x70, 0x10, 0x70, 0x70, 0x47, 0x80, 0x20, 0x08, 0x70, 0x10, 0x70 +_0201789E: + bx lr + + thumb_func_start sub_020178A0 +sub_020178A0: ; 0x020178A0 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r2, #0x2c + add r5, r1, #0x0 + mul r5, r2 + add r4, #0x8 + ldr r0, [r4, r5] + cmp r0, #0x0 + beq _020178BA + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, r5] +_020178BA: + pop {r3-r5, pc} + + thumb_func_start sub_020178BC +sub_020178BC: ; 0x020178BC + cmp r0, #0x7 + bhi _0201795A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r6, r3, #0 + lsl r6, r5, #0 + lsl r6, r7, #0 + lsl r6, r1, #0x1 + lsl r6, r3, #0x1 + lsl r6, r5, #0x1 + lsl r6, r7, #0x1 + ldr r2, _0201795C ; =0x04000008 + mov r0, #0x3 + ldrh r3, [r2, #0x0] + bic r3, r0 + add r0, r3, #0x0 + orr r0, r1 + strh r0, [r2, #0x0] + bx lr +_020178EC: + .byte 0x1C, 0x4A, 0x03, 0x20 + .byte 0x13, 0x88, 0x83, 0x43, 0x18, 0x1C, 0x08, 0x43, 0x10, 0x80, 0x70, 0x47, 0x19, 0x4A, 0x03, 0x20 + .byte 0x13, 0x88, 0x83, 0x43, 0x18, 0x1C, 0x08, 0x43, 0x10, 0x80, 0x70, 0x47, 0x16, 0x4A, 0x03, 0x20 + .byte 0x13, 0x88, 0x83, 0x43, 0x18, 0x1C, 0x08, 0x43, 0x10, 0x80, 0x70, 0x47, 0x13, 0x4A, 0x03, 0x20 + .byte 0x13, 0x88, 0x83, 0x43, 0x18, 0x1C, 0x08, 0x43, 0x10, 0x80, 0x70, 0x47, 0x10, 0x4A, 0x03, 0x20 + .byte 0x13, 0x88, 0x83, 0x43, 0x18, 0x1C, 0x08, 0x43, 0x10, 0x80, 0x70, 0x47, 0x0D, 0x4A, 0x03, 0x20 + .byte 0x13, 0x88, 0x83, 0x43, 0x18, 0x1C, 0x08, 0x43, 0x10, 0x80, 0x70, 0x47, 0x0A, 0x4A, 0x03, 0x20 + .byte 0x13, 0x88, 0x83, 0x43, 0x18, 0x1C, 0x08, 0x43, 0x10, 0x80 +_0201795A: + bx lr + .balign 4 +_0201795C: .word 0x04000008 +_02017960: + .byte 0x0A, 0x00, 0x00, 0x04, 0x0C, 0x00, 0x00, 0x04, 0x0E, 0x00, 0x00, 0x04, 0x08, 0x10, 0x00, 0x04 + .byte 0x0A, 0x10, 0x00, 0x04, 0x0C, 0x10, 0x00, 0x04, 0x0E, 0x10, 0x00, 0x04 + + thumb_func_start sub_0201797C +sub_0201797C: ; 0x0201797C + push {r3, lr} + cmp r0, #0x7 + bhi _020179DC + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + lsl r6, r4, #0 + lsl r6, r5, #0 + lsl r6, r6, #0 + lsl r6, r7, #0 + lsl r6, r0, #0x1 + mov r0, #0x1 + bl sub_0201E6E4 + pop {r3, pc} +_020179A6: + .byte 0x02, 0x20, 0x06, 0xF0, 0x9C, 0xFE, 0x08, 0xBD, 0x04, 0x20 + .byte 0x06, 0xF0, 0x98, 0xFE, 0x08, 0xBD, 0x08, 0x20, 0x06, 0xF0, 0x94, 0xFE, 0x08, 0xBD, 0x01, 0x20 + .byte 0x06, 0xF0, 0xC4, 0xFE, 0x08, 0xBD, 0x02, 0x20, 0x06, 0xF0, 0xC0, 0xFE, 0x08, 0xBD, 0x04, 0x20 + .byte 0x06, 0xF0, 0xBC, 0xFE, 0x08, 0xBD, 0x08, 0x20, 0x06, 0xF0, 0xB8, 0xFE +_020179DC: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020179E0 +sub_020179E0: ; 0x020179E0 + push {r4-r6, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + mov r0, #0x2c + add r6, r5, #0x0 + mul r6, r0 + add r0, r4, #0x0 + add r0, #0x8 + add r1, r2, #0x0 + add r2, r3, #0x0 + add r0, r0, r6 + bl sub_02017B8C + add r0, r4, r6 + ldr r1, [r0, #0x14] + ldr r0, [r0, #0x18] + cmp r5, #0x7 + bls _02017A06 + b _02017B1C +_02017A06: + add r2, r5, r5 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r6, r1, #0 + lsl r4, r4, #0 + lsl r2, r7, #0 + lsl r4, r4, #0x1 + lsl r6, r1, #0x2 + lsl r4, r4, #0x2 + lsl r2, r7, #0x2 + lsl r2, r4, #0x3 + ldr r2, _02017B20 ; =0x000001FF + add r3, r1, #0x0 + lsl r1, r0, #0x10 + lsl r0, r2, #0x10 + and r3, r2 + and r0, r1 + add r1, r3, #0x0 + orr r1, r0 + ldr r0, _02017B24 ; =0x04000010 + str r1, [r0, #0x0] + pop {r4-r6, pc} +_02017A38: + .byte 0x39, 0x4A, 0x0B, 0x1C, 0x01, 0x04, 0x10, 0x04 + .byte 0x13, 0x40, 0x08, 0x40, 0x19, 0x1C, 0x01, 0x43, 0x37, 0x48, 0x01, 0x60, 0x70, 0xBD, 0x22, 0x1C + .byte 0x74, 0x32, 0x12, 0x78, 0x00, 0x2A, 0x0A, 0xD1, 0x31, 0x4A, 0x0B, 0x1C, 0x01, 0x04, 0x10, 0x04 + .byte 0x13, 0x40, 0x08, 0x40, 0x19, 0x1C, 0x01, 0x43, 0x30, 0x48, 0x01, 0x60, 0x70, 0xBD, 0x20, 0x1C + .byte 0x02, 0x21, 0x00, 0xF0, 0xFB, 0xF8, 0x70, 0xBD, 0x22, 0x1C, 0xA0, 0x32, 0x12, 0x78, 0x00, 0x2A + .byte 0x0A, 0xD1, 0x27, 0x4A, 0x0B, 0x1C, 0x01, 0x04, 0x10, 0x04, 0x13, 0x40, 0x08, 0x40, 0x19, 0x1C + .byte 0x01, 0x43, 0x27, 0x48, 0x01, 0x60, 0x70, 0xBD, 0x20, 0x1C, 0x03, 0x21, 0x00, 0xF0, 0xE6, 0xF8 + .byte 0x70, 0xBD, 0x1F, 0x4A, 0x0B, 0x1C, 0x01, 0x04, 0x10, 0x04, 0x13, 0x40, 0x08, 0x40, 0x19, 0x1C + .byte 0x01, 0x43, 0x20, 0x48, 0x01, 0x60, 0x70, 0xBD, 0x19, 0x4A, 0x0B, 0x1C, 0x01, 0x04, 0x10, 0x04 + .byte 0x13, 0x40, 0x08, 0x40, 0x19, 0x1C, 0x01, 0x43, 0x1B, 0x48, 0x01, 0x60, 0x70, 0xBD, 0x49, 0x22 + .byte 0x92, 0x00, 0xA3, 0x5C, 0x00, 0x2B, 0x09, 0xD1, 0xDB, 0x32, 0x0A, 0x40, 0x01, 0x04, 0x17, 0x48 + .byte 0x08, 0x40, 0x11, 0x1C, 0x01, 0x43, 0x16, 0x48, 0x01, 0x60, 0x70, 0xBD, 0x20, 0x1C, 0x06, 0x21 + .byte 0x00, 0xF0, 0xBC, 0xF8, 0x70, 0xBD, 0x15, 0x22, 0x12, 0x01, 0xA3, 0x5C, 0x00, 0x2B, 0x09, 0xD1 + .byte 0xAF, 0x32, 0x0A, 0x40, 0x01, 0x04, 0x0D, 0x48, 0x08, 0x40, 0x11, 0x1C, 0x01, 0x43, 0x0D, 0x48 + .byte 0x01, 0x60, 0x70, 0xBD, 0x20, 0x1C, 0x07, 0x21, 0x00, 0xF0, 0xA8, 0xF8 +_02017B1C: + pop {r4-r6, pc} + nop +_02017B20: .word 0x000001FF +_02017B24: .word 0x04000010 +_02017B28: + .byte 0x14, 0x00, 0x00, 0x04, 0x18, 0x00, 0x00, 0x04 + .byte 0x1C, 0x00, 0x00, 0x04, 0x10, 0x10, 0x00, 0x04, 0x14, 0x10, 0x00, 0x04, 0x00, 0x00, 0xFF, 0x01 + .byte 0x18, 0x10, 0x00, 0x04, 0x1C, 0x10, 0x00, 0x04 + + thumb_func_start sub_02017B48 +sub_02017B48: ; 0x02017B48 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x14] + bx lr + .balign 4 + + thumb_func_start sub_02017B54 +sub_02017B54: ; 0x02017B54 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x18] + bx lr + .balign 4 + + thumb_func_start sub_02017B60 +sub_02017B60: ; 0x02017B60 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + mov r0, #0x2c + add r1, #0x8 + mul r0, r4 + add r0, r1, r0 + add r1, r2, #0x0 + add r2, r3, #0x0 + bl sub_02017B8C + ldr r0, [sp, #0x18] + ldr r2, [sp, #0x10] + str r0, [sp, #0x0] + ldr r3, [sp, #0x14] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02017BD0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02017B8C +sub_02017B8C: ; 0x02017B8C + cmp r1, #0x5 + bhi _02017BCE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + lsl r2, r4, #0 + lsl r2, r5, #0 + str r2, [r0, #0xc] + bx lr +_02017BAC: + .byte 0xC1, 0x68, 0x89, 0x18 + .byte 0xC1, 0x60, 0x70, 0x47, 0xC1, 0x68, 0x89, 0x1A, 0xC1, 0x60, 0x70, 0x47, 0x02, 0x61, 0x70, 0x47 + .byte 0x01, 0x69, 0x89, 0x18, 0x01, 0x61, 0x70, 0x47, 0x01, 0x69, 0x89, 0x1A, 0x01, 0x61 +_02017BCE: + bx lr + + thumb_func_start sub_02017BD0 +sub_02017BD0: ; 0x02017BD0 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r1, #0x0 + add r1, r2, #0x0 + add r2, r3, #0x0 + ldr r3, [sp, #0x18] + cmp r4, #0x7 + bhi _02017C58 + add r5, r4, r4 + add r5, pc + ldrh r5, [r5, #0x6] + lsl r5, r5, #0x10 + asr r5, r5, #0x10 + add pc, r5 + lsl r2, r5, #0x1 + lsl r2, r5, #0x1 + lsl r6, r1, #0 + lsl r6, r4, #0 + lsl r2, r5, #0x1 + lsl r2, r5, #0x1 + lsl r6, r7, #0 + lsl r6, r2, #0x1 + mov r5, #0x2c + mul r5, r4 + add r4, r0, r5 + ldr r0, [r4, #0x14] + str r0, [sp, #0x0] + ldr r0, [r4, #0x18] + str r0, [sp, #0x4] + ldr r0, _02017C5C ; =0x04000020 + blx sub_020C74F8 + add sp, #0x8 + pop {r3-r5, pc} +_02017C14: + .byte 0x2C, 0x25, 0x65, 0x43, 0x44, 0x19, 0x60, 0x69, 0x00, 0x90, 0xA0, 0x69 + .byte 0x01, 0x90, 0x0F, 0x48, 0xAF, 0xF0, 0x68, 0xEC, 0x02, 0xB0, 0x38, 0xBD, 0x2C, 0x25, 0x65, 0x43 + .byte 0x44, 0x19, 0x60, 0x69, 0x00, 0x90, 0xA0, 0x69, 0x01, 0x90, 0x0A, 0x48, 0xAF, 0xF0, 0x5C, 0xEC + .byte 0x02, 0xB0, 0x38, 0xBD, 0x2C, 0x25, 0x65, 0x43, 0x44, 0x19, 0x60, 0x69, 0x00, 0x90, 0xA0, 0x69 + .byte 0x01, 0x90, 0x05, 0x48, 0xAF, 0xF0, 0x50, 0xEC +_02017C58: + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02017C5C: .word 0x04000020 +_02017C60: + .byte 0x30, 0x00, 0x00, 0x04, 0x20, 0x10, 0x00, 0x04, 0x30, 0x10, 0x00, 0x04 + + thumb_func_start sub_02017C6C +sub_02017C6C: ; 0x02017C6C + push {r4-r5, lr} + sub sp, #0x14 + mov r2, #0x1 + lsl r2, r2, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r1, #0x0 + add r0, sp, #0x4 + add r3, r2, #0x0 + str r1, [sp, #0x0] + bl sub_0201BB74 + mov r3, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, sp, #0x4 + str r3, [sp, #0x0] + bl sub_02017BD0 + add sp, #0x14 + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_02017C98 +sub_02017C98: ; 0x02017C98 + push {r3-r5, lr} + cmp r2, #0x0 + bne _02017CA4 + blx sub_020CE528 + pop {r3-r5, pc} +_02017CA4: + mov r4, #0x3 + add r3, r0, #0x0 + tst r3, r4 + bne _02017CCA + add r3, r1, #0x0 + tst r3, r4 + bne _02017CCA + lsl r3, r2, #0x10 + lsr r3, r3, #0x10 + lsr r4, r3, #0x1f + lsl r5, r3, #0x1e + sub r5, r5, r4 + mov r3, #0x1e + ror r5, r3 + add r3, r4, r5 + bne _02017CCA + blx sub_020CE210 + pop {r3-r5, pc} +_02017CCA: + blx sub_020CE1E0 + pop {r3-r5, pc} + + thumb_func_start sub_02017CD0 +sub_02017CD0: ; 0x02017CD0 + push {r3, lr} + mov r2, #0x2c + mul r2, r1 + add r3, r0, r2 + ldr r2, [r3, #0x10] + str r2, [sp, #0x0] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl sub_02017CE8 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02017CE8 +sub_02017CE8: ; 0x02017CE8 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + str r3, [sp, #0x0] + cmp r3, #0x0 + bne _02017D56 + mov r0, #0x2c + add r7, r4, #0x0 + mul r7, r0 + add r0, r5, r7 + ldr r0, [r0, #0x8] + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _02017D26 + ldr r1, [sp, #0x4] + add r0, r6, #0x0 + add r2, r3, #0x0 + bl sub_02017C98 + add r3, r5, r7 + ldr r2, [r3, #0x10] + ldr r1, [sp, #0x4] + ldr r3, [r3, #0xc] + add r0, r4, #0x0 + lsl r2, r2, #0x1 + bl sub_02017D68 + add sp, #0x8 + pop {r3-r7, pc} +_02017D26: + ldr r0, [r6, #0x0] + lsr r7, r0, #0x8 + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + bl sub_020169D8 + add r5, r0, #0x0 + ldr r2, [sp, #0x0] + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_02017C98 + ldr r2, [sp, #0x20] + add r0, r4, #0x0 + add r1, r5, #0x0 + lsl r2, r2, #0x1 + add r3, r7, #0x0 + bl sub_02017D68 + add r0, r5, #0x0 + bl sub_02016A18 + add sp, #0x8 + pop {r3-r7, pc} +_02017D56: + ldr r2, [sp, #0x20] + add r0, r4, #0x0 + add r1, r6, #0x0 + lsl r2, r2, #0x1 + bl sub_02017D68 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02017D68 +sub_02017D68: ; 0x02017D68 + push {r3-r7, lr} + add r4, r1, #0x0 + add r6, r3, #0x0 + add r7, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + add r5, r2, #0x0 + blx sub_020CC15C + cmp r7, #0x7 + bhi _02017DF8 + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r2, r3, #0 + lsl r6, r4, #0 + lsl r2, r6, #0 + lsl r6, r7, #0 + lsl r2, r1, #0x1 + lsl r6, r2, #0x1 + lsl r2, r4, #0x1 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + blx sub_020C922C + pop {r3-r7, pc} +_02017DA6: + .byte 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C, 0xB1, 0xF0, 0xD6, 0xE9 + .byte 0xF8, 0xBD, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C, 0xB1, 0xF0, 0x68, 0xE9, 0xF8, 0xBD, 0x20, 0x1C + .byte 0x29, 0x1C, 0x32, 0x1C, 0xB1, 0xF0, 0xFA, 0xE8, 0xF8, 0xBD, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C + .byte 0xB1, 0xF0, 0xF8, 0xE9, 0xF8, 0xBD, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C, 0xB1, 0xF0, 0x8A, 0xE9 + .byte 0xF8, 0xBD, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C, 0xB1, 0xF0, 0x1C, 0xE9, 0xF8, 0xBD, 0x20, 0x1C + .byte 0x29, 0x1C, 0x32, 0x1C, 0xB1, 0xF0, 0xAE, 0xE8 +_02017DF8: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02017DFC +sub_02017DFC: ; 0x02017DFC + push {r4, lr} + add r4, r0, #0x0 + add r0, r2, #0x0 + mov r2, #0x2c + mul r2, r1 + add r1, r4, r2 + ldr r1, [r1, #0x8] + add r2, r3, #0x0 + bl sub_02017C98 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02017E14 +sub_02017E14: ; 0x02017E14 + push {r3-r4, lr} + sub sp, #0x4 + mov r4, #0x2c + mul r4, r1 + add r4, r0, r4 + ldrb r4, [r4, #0x1e] + cmp r4, #0x0 + bne _02017E32 + ldr r4, [sp, #0x10] + lsl r4, r4, #0x5 + str r4, [sp, #0x0] + bl sub_02017E40 + add sp, #0x4 + pop {r3-r4, pc} +_02017E32: + ldr r4, [sp, #0x10] + lsl r4, r4, #0x6 + str r4, [sp, #0x0] + bl sub_02017E40 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_02017E40 +sub_02017E40: ; 0x02017E40 + push {r3-r7, lr} + add r7, r1, #0x0 + add r5, r2, #0x0 + str r3, [sp, #0x0] + cmp r3, #0x0 + bne _02017E78 + ldr r1, [r5, #0x0] + ldr r0, [r0, #0x0] + lsr r4, r1, #0x8 + add r1, r4, #0x0 + bl sub_020169D8 + add r6, r0, #0x0 + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02017C98 + ldr r2, [sp, #0x18] + add r0, r7, #0x0 + add r1, r6, #0x0 + add r3, r4, #0x0 + bl sub_02017E84 + add r0, r6, #0x0 + bl sub_02016A18 + pop {r3-r7, pc} +_02017E78: + ldr r2, [sp, #0x18] + add r0, r7, #0x0 + add r1, r5, #0x0 + bl sub_02017E84 + pop {r3-r7, pc} + + thumb_func_start sub_02017E84 +sub_02017E84: ; 0x02017E84 + push {r3-r7, lr} + add r4, r1, #0x0 + add r6, r3, #0x0 + add r7, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + add r5, r2, #0x0 + blx sub_020CC15C + cmp r7, #0x7 + bhi _02017F14 + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r2, r3, #0 + lsl r6, r4, #0 + lsl r2, r6, #0 + lsl r6, r7, #0 + lsl r2, r1, #0x1 + lsl r6, r2, #0x1 + lsl r2, r4, #0x1 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + blx sub_020C8EEC + pop {r3-r7, pc} +_02017EC2: + .byte 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C, 0xB0, 0xF0, 0xA8, 0xEF, 0xF8, 0xBD, 0x20, 0x1C + .byte 0x29, 0x1C, 0x32, 0x1C, 0xB0, 0xF0, 0x3A, 0xEF, 0xF8, 0xBD, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C + .byte 0xB0, 0xF0, 0xCC, 0xEE, 0xF8, 0xBD, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C, 0xB0, 0xF0, 0xCA, 0xEF + .byte 0xF8, 0xBD, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C, 0xB0, 0xF0, 0x5C, 0xEF, 0xF8, 0xBD, 0x20, 0x1C + .byte 0x29, 0x1C, 0x32, 0x1C, 0xB0, 0xF0, 0xEE, 0xEE, 0xF8, 0xBD, 0x20, 0x1C, 0x29, 0x1C, 0x32, 0x1C + .byte 0xB0, 0xF0, 0x80, 0xEE +_02017F14: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02017F18 +sub_02017F18: ; 0x02017F18 + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r0, r3, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x0] + bl sub_020169D8 + add r4, r0, #0x0 + mov r1, #0x0 + add r2, r5, #0x0 + blx sub_020DF4A4 + add r0, r6, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + add r3, r5, #0x0 + bl sub_02017E84 + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl sub_02016A8C + pop {r3-r7, pc} + + thumb_func_start sub_02017F48 +sub_02017F48: ; 0x02017F48 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r1, #0x0 + add r4, r0, #0x0 + mov r1, #0x2c + add r6, r7, #0x0 + add r4, #0x1f + mul r6, r1 + ldrb r1, [r4, r6] + ldr r0, [r0, #0x0] + add r5, r2, #0x0 + mul r1, r3 + str r1, [sp, #0x0] + bl sub_020169D8 + str r0, [sp, #0x4] + ldrb r0, [r4, r6] + cmp r0, #0x20 + bne _02017F82 + lsl r2, r5, #0xc + lsl r1, r5, #0x8 + lsl r0, r5, #0x4 + orr r1, r2 + orr r0, r1 + add r1, r5, #0x0 + orr r1, r0 + lsl r0, r1, #0x10 + add r5, r1, #0x0 + b _02017F8C +_02017F82: + lsl r2, r5, #0x18 + lsl r1, r5, #0x10 + lsl r0, r5, #0x8 + orr r1, r2 + orr r0, r1 +_02017F8C: + orr r5, r0 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + blx sub_020CE240 + lsl r0, r7, #0x18 + ldrb r2, [r4, r6] + ldr r3, [sp, #0x20] + ldr r1, [sp, #0x4] + mul r2, r3 + ldr r3, [sp, #0x0] + lsr r0, r0, #0x18 + bl sub_02017E84 + ldr r0, [sp, #0x4] + bl sub_02016A18 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02017FB4 +sub_02017FB4: ; 0x02017FB4 + push {r3-r7, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r7, r3, #0x0 + blx sub_020CC15C + cmp r6, #0x4 + bhs _02017FD6 + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r4, #0x0 + blx sub_020C9550 + pop {r3-r7, pc} +_02017FD6: + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r4, #0x0 + blx sub_020C94E8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02017FE4 +sub_02017FE4: ; 0x02017FE4 + push {r0-r3} + push {r3, lr} + add r1, sp, #0xc + mov r2, #0x2 + mov r3, #0x0 + bl sub_02017FB4 + pop {r3} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4 + + thumb_func_start sub_02017FFC +sub_02017FFC: ; 0x02017FFC + cmp r2, #0x5 + bhi _02018066 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r2, r1, #0 + lsl r4, r2, #0 + lsl r4, r2, #0 + lsl r6, r3, #0 + lsl r4, r6, #0 + lsl r6, r2, #0x1 + lsl r1, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr +_02018022: + .byte 0x49, 0x01, 0x40, 0x18, 0x00, 0x04, 0x00, 0x0C, 0x70, 0x47, 0x1F, 0x22, 0x03, 0x1C + .byte 0x13, 0x40, 0x1F, 0x22, 0x90, 0x43, 0x08, 0x18, 0x40, 0x01, 0x18, 0x18, 0x00, 0x04, 0x00, 0x0C + .byte 0x70, 0x47, 0x4A, 0x11, 0x43, 0x11, 0x52, 0x00, 0x9A, 0x18, 0x12, 0x04, 0x12, 0x0C, 0x92, 0x06 + .byte 0x13, 0x0C, 0x1F, 0x22, 0x02, 0x40, 0xC8, 0x06, 0x80, 0x0D, 0x10, 0x18, 0x18, 0x18, 0x00, 0x04 + .byte 0x00, 0x0C, 0x70, 0x47, 0x00, 0x20 +_02018066: + bx lr + + thumb_func_start sub_02018068 +sub_02018068: ; 0x02018068 + push {r3-r7} + sub sp, #0x4 + str r3, [sp, #0x0] + add r6, r2, #0x0 + ldr r5, [sp, #0x0] + add r4, r6, #0x0 + sub r4, #0x20 + sub r5, #0x20 + mov r2, #0x0 + lsl r4, r4, #0x10 + lsl r5, r5, #0x10 + add r3, r2, #0x0 + asr r4, r4, #0x10 + asr r7, r5, #0x10 + lsr r5, r0, #0x5 + beq _0201808E + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 +_0201808E: + lsr r5, r1, #0x5 + beq _02018098 + add r2, r2, #0x2 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 +_02018098: + cmp r2, #0x3 + bhi _02018140 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r6, r0, #0 + lsl r4, r4, #0 + lsl r2, r1, #0x1 + lsl r6, r6, #0x1 + cmp r4, #0x0 + blt _020180C0 + lsl r1, r1, #0x5 + add r0, r0, r1 + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + b _02018140 +_020180C0: + add r2, r1, #0x0 + mul r2, r6 + add r0, r0, r2 + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + b _02018140 +_020180CE: + .byte 0x00, 0x2F + .byte 0x02, 0xDB, 0x01, 0x22, 0x92, 0x02, 0x01, 0xE0, 0x00, 0x9A, 0x52, 0x01, 0x9A, 0x18, 0x12, 0x04 + .byte 0x13, 0x0C, 0x1F, 0x22, 0x02, 0x40, 0x08, 0x1C, 0x60, 0x43, 0x10, 0x18, 0x18, 0x18, 0x00, 0x04 + .byte 0x03, 0x0C, 0x25, 0xE0, 0x72, 0x01, 0x9A, 0x18, 0x12, 0x04, 0x12, 0x0C, 0x00, 0x2C, 0x06, 0xDB + .byte 0xC9, 0x06, 0x89, 0x0D, 0x40, 0x18, 0x10, 0x18, 0x00, 0x04, 0x03, 0x0C, 0x18, 0xE0, 0x1F, 0x23 + .byte 0x19, 0x40, 0x0B, 0x1C, 0x73, 0x43, 0xC0, 0x18, 0x10, 0x18, 0x00, 0x04, 0x03, 0x0C, 0x0F, 0xE0 + .byte 0xF2, 0x19, 0x52, 0x01, 0x9A, 0x18, 0x05, 0x1C, 0x1F, 0x23, 0x08, 0x1C, 0x18, 0x40, 0x01, 0x1C + .byte 0x12, 0x04, 0x1D, 0x40, 0x61, 0x43, 0x12, 0x0C, 0x68, 0x18, 0x10, 0x18, 0x00, 0x04, 0x03, 0x0C +_02018140: + add r0, r3, #0x0 + add sp, #0x4 + pop {r3-r7} + bx lr + + thumb_func_start sub_02018148 +sub_02018148: ; 0x02018148 + push {r3-r6, lr} + sub sp, #0x1c + add r6, sp, #0x20 + ldrb r5, [r6, #0x14] + str r5, [sp, #0x0] + ldrb r4, [r6, #0x18] + str r4, [sp, #0x4] + str r2, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + str r2, [sp, #0x10] + str r5, [sp, #0x14] + str r4, [sp, #0x18] + add r2, r3, #0x0 + ldrb r3, [r6, #0x10] + bl sub_02018170 + add sp, #0x1c + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02018170 +sub_02018170: ; 0x02018170 + push {r4-r5, lr} + sub sp, #0x1c + add r4, r2, #0x0 + add r2, r3, #0x0 + mov r3, #0x2c + add r5, r1, #0x0 + mul r5, r3 + add r1, r0, r5 + ldrb r1, [r1, #0x1c] + add r3, sp, #0x18 + cmp r1, #0x1 + beq _020181BA + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldr r1, [sp, #0x30] + str r1, [sp, #0x4] + ldrb r1, [r3, #0x1c] + str r1, [sp, #0x8] + add r1, sp, #0x38 + ldrb r1, [r1, #0x0] + str r1, [sp, #0xc] + add r1, sp, #0x3c + ldrb r1, [r1, #0x0] + str r1, [sp, #0x10] + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + str r1, [sp, #0x14] + mov r1, #0x0 + str r1, [sp, #0x18] + ldrb r3, [r3, #0x10] + add r1, r4, #0x0 + bl sub_02018268 + add sp, #0x1c + pop {r4-r5, pc} +_020181BA: + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldr r1, [sp, #0x30] + str r1, [sp, #0x4] + ldrb r1, [r3, #0x1c] + str r1, [sp, #0x8] + add r1, sp, #0x38 + ldrb r1, [r1, #0x0] + str r1, [sp, #0xc] + add r1, sp, #0x3c + ldrb r1, [r1, #0x0] + str r1, [sp, #0x10] + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + str r1, [sp, #0x14] + mov r1, #0x0 + str r1, [sp, #0x18] + ldrb r3, [r3, #0x10] + add r1, r4, #0x0 + bl sub_020183DC + add sp, #0x1c + pop {r4-r5, pc} + + thumb_func_start sub_020181EC +sub_020181EC: ; 0x020181EC + push {r4-r5, lr} + sub sp, #0x1c + add r4, r2, #0x0 + add r2, r3, #0x0 + mov r3, #0x2c + add r5, r1, #0x0 + mul r5, r3 + add r1, r0, r5 + ldrb r1, [r1, #0x1c] + add r3, sp, #0x18 + cmp r1, #0x1 + beq _02018236 + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldr r1, [sp, #0x30] + str r1, [sp, #0x4] + ldrb r1, [r3, #0x1c] + str r1, [sp, #0x8] + add r1, sp, #0x38 + ldrb r1, [r1, #0x0] + str r1, [sp, #0xc] + add r1, sp, #0x3c + ldrb r1, [r1, #0x0] + str r1, [sp, #0x10] + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + str r1, [sp, #0x14] + mov r1, #0x1 + str r1, [sp, #0x18] + ldrb r3, [r3, #0x10] + add r1, r4, #0x0 + bl sub_02018268 + add sp, #0x1c + pop {r4-r5, pc} +_02018236: + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldr r1, [sp, #0x30] + str r1, [sp, #0x4] + ldrb r1, [r3, #0x1c] + str r1, [sp, #0x8] + add r1, sp, #0x38 + ldrb r1, [r1, #0x0] + str r1, [sp, #0xc] + add r1, sp, #0x3c + ldrb r1, [r1, #0x0] + str r1, [sp, #0x10] + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + str r1, [sp, #0x14] + mov r1, #0x1 + str r1, [sp, #0x18] + ldrb r3, [r3, #0x10] + add r1, r4, #0x0 + bl sub_020183DC + add sp, #0x1c + pop {r4-r5, pc} + + thumb_func_start sub_02018268 +sub_02018268: ; 0x02018268 + push {r4-r7, lr} + sub sp, #0x44 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r7, r0, #0x0 + ldr r0, [sp, #0x58] + add r6, r3, #0x0 + str r0, [sp, #0x58] + ldr r0, [sp, #0x5c] + ldr r4, [sp, #0x68] + str r0, [sp, #0x5c] + ldr r0, [sp, #0x6c] + str r0, [sp, #0x6c] + ldr r0, [r7, #0x0] + str r0, [sp, #0x2c] + cmp r0, #0x0 + bne _0201828C + b _020183D6 +_0201828C: + ldrb r0, [r7, #0x15] + add r1, sp, #0x40 + add r1, #0x1 + add r2, sp, #0x40 + bl sub_02017850 + add r0, sp, #0x70 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201833A + mov r0, #0x0 + str r0, [sp, #0x28] + ldr r0, [sp, #0x58] + cmp r0, #0x0 + bls _020182CA + add r1, sp, #0x48 + ldrb r0, [r1, #0x1c] + str r0, [sp, #0x1c] + ldrb r0, [r1, #0x18] + str r0, [sp, #0x18] + lsl r1, r0, #0x1 + ldr r0, [sp, #0x5c] + add r0, r0, r1 + str r0, [sp, #0x14] +_020182BC: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x28] + add r0, r1, r0 + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + cmp r0, r1 + blt _020182CC +_020182CA: + b _020183D6 +_020182CC: + ldr r2, [sp, #0x1c] + ldr r1, [sp, #0x28] + add r2, r2, r1 + ldr r1, [sp, #0x6c] + cmp r2, r1 + bge _020183D6 + mov r5, #0x0 + cmp r6, #0x0 + bls _02018326 + add r1, r4, #0x0 + mul r1, r2 + lsl r2, r1, #0x1 + ldr r1, [sp, #0x14] + lsl r0, r0, #0x18 + add r1, r1, r2 + lsr r0, r0, #0x18 + str r1, [sp, #0x10] + str r0, [sp, #0x30] +_020182F0: + add r1, sp, #0x40 + ldr r0, [sp, #0x0] + ldrb r1, [r1, #0x1] + add r0, r0, r5 + cmp r0, r1 + bge _02018326 + ldr r1, [sp, #0x18] + add r1, r1, r5 + cmp r1, r4 + bge _02018326 + ldrb r2, [r7, #0x15] + lsl r0, r0, #0x18 + ldr r1, [sp, #0x30] + lsr r0, r0, #0x18 + bl sub_02017FFC + ldr r1, [sp, #0x10] + lsl r2, r5, #0x1 + ldrh r1, [r1, r2] + lsl r2, r0, #0x1 + ldr r0, [sp, #0x2c] + strh r1, [r0, r2] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _020182F0 +_02018326: + ldr r0, [sp, #0x28] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + str r1, [sp, #0x28] + ldr r0, [sp, #0x58] + cmp r1, r0 + blo _020182BC + add sp, #0x44 + pop {r4-r7, pc} +_0201833A: + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x58] + cmp r0, #0x0 + bls _020183D6 + add r1, sp, #0x48 + ldrb r0, [r1, #0x1c] + str r0, [sp, #0x24] + ldrb r0, [r1, #0x18] + str r0, [sp, #0x20] +_0201834E: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + add r1, r1, r0 + add r0, sp, #0x40 + ldrb r0, [r0, #0x0] + cmp r1, r0 + bge _020183D6 + ldr r2, [sp, #0x24] + ldr r0, [sp, #0x8] + add r0, r2, r0 + ldr r2, [sp, #0x6c] + cmp r0, r2 + bge _020183D6 + mov r5, #0x0 + cmp r6, #0x0 + bls _020183C6 + lsl r1, r1, #0x18 + lsl r0, r0, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + str r1, [sp, #0x34] + str r0, [sp, #0x3c] +_0201837A: + add r1, sp, #0x40 + ldr r0, [sp, #0x0] + ldrb r1, [r1, #0x1] + add r0, r0, r5 + cmp r0, r1 + bge _020183C6 + ldr r1, [sp, #0x20] + add r1, r1, r5 + str r1, [sp, #0xc] + cmp r1, r4 + bge _020183C6 + ldrb r2, [r7, #0x15] + lsl r0, r0, #0x18 + ldr r1, [sp, #0x34] + lsr r0, r0, #0x18 + bl sub_02017FFC + str r0, [sp, #0x38] + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x3c] + lsl r0, r0, #0x18 + ldr r3, [sp, #0x6c] + lsr r0, r0, #0x18 + add r2, r4, #0x0 + bl sub_02018068 + lsl r1, r0, #0x1 + ldr r0, [sp, #0x5c] + ldrh r0, [r0, r1] + ldr r1, [sp, #0x38] + lsl r2, r1, #0x1 + ldr r1, [sp, #0x2c] + strh r0, [r1, r2] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _0201837A +_020183C6: + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + str r1, [sp, #0x8] + ldr r0, [sp, #0x58] + cmp r1, r0 + blo _0201834E +_020183D6: + add sp, #0x44 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_020183DC +sub_020183DC: ; 0x020183DC + push {r4-r7, lr} + sub sp, #0x44 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r7, r0, #0x0 + ldr r0, [sp, #0x58] + add r6, r3, #0x0 + str r0, [sp, #0x58] + ldr r0, [sp, #0x5c] + ldr r4, [sp, #0x68] + str r0, [sp, #0x5c] + ldr r0, [sp, #0x6c] + str r0, [sp, #0x6c] + ldr r0, [r7, #0x0] + str r0, [sp, #0x2c] + cmp r0, #0x0 + bne _02018400 + b _0201853C +_02018400: + ldrb r0, [r7, #0x15] + add r1, sp, #0x40 + add r1, #0x1 + add r2, sp, #0x40 + bl sub_02017850 + add r0, sp, #0x70 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _020184A4 + mov r0, #0x0 + str r0, [sp, #0x28] + ldr r0, [sp, #0x58] + cmp r0, #0x0 + bhi _02018420 + b _0201853C +_02018420: + add r1, sp, #0x48 + ldrb r0, [r1, #0x1c] + str r0, [sp, #0x1c] + ldrb r0, [r1, #0x18] + ldr r1, [sp, #0x5c] + str r0, [sp, #0x18] + add r0, r1, r0 + str r0, [sp, #0x14] +_02018430: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x28] + add r0, r1, r0 + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + cmp r0, r1 + bge _0201853C + ldr r2, [sp, #0x1c] + ldr r1, [sp, #0x28] + add r2, r2, r1 + ldr r1, [sp, #0x6c] + cmp r2, r1 + bge _0201853C + mov r5, #0x0 + cmp r6, #0x0 + bls _02018490 + ldr r1, [sp, #0x14] + mul r2, r4 + lsl r0, r0, #0x18 + add r1, r1, r2 + lsr r0, r0, #0x18 + str r1, [sp, #0x10] + str r0, [sp, #0x30] +_0201845E: + add r1, sp, #0x40 + ldr r0, [sp, #0x0] + ldrb r1, [r1, #0x1] + add r0, r0, r5 + cmp r0, r1 + bge _02018490 + ldr r1, [sp, #0x18] + add r1, r1, r5 + cmp r1, r4 + bge _02018490 + ldrb r2, [r7, #0x15] + lsl r0, r0, #0x18 + ldr r1, [sp, #0x30] + lsr r0, r0, #0x18 + bl sub_02017FFC + ldr r1, [sp, #0x10] + ldrb r2, [r1, r5] + ldr r1, [sp, #0x2c] + strb r2, [r1, r0] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _0201845E +_02018490: + ldr r0, [sp, #0x28] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + str r1, [sp, #0x28] + ldr r0, [sp, #0x58] + cmp r1, r0 + blo _02018430 + add sp, #0x44 + pop {r4-r7, pc} +_020184A4: + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x58] + cmp r0, #0x0 + bls _0201853C + add r1, sp, #0x48 + ldrb r0, [r1, #0x1c] + str r0, [sp, #0x24] + ldrb r0, [r1, #0x18] + str r0, [sp, #0x20] +_020184B8: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + add r1, r1, r0 + add r0, sp, #0x40 + ldrb r0, [r0, #0x0] + cmp r1, r0 + bge _0201853C + ldr r2, [sp, #0x24] + ldr r0, [sp, #0x8] + add r0, r2, r0 + ldr r2, [sp, #0x6c] + cmp r0, r2 + bge _0201853C + mov r5, #0x0 + cmp r6, #0x0 + bls _0201852C + lsl r1, r1, #0x18 + lsl r0, r0, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + str r1, [sp, #0x34] + str r0, [sp, #0x3c] +_020184E4: + add r1, sp, #0x40 + ldr r0, [sp, #0x0] + ldrb r1, [r1, #0x1] + add r0, r0, r5 + cmp r0, r1 + bge _0201852C + ldr r1, [sp, #0x20] + add r1, r1, r5 + str r1, [sp, #0xc] + cmp r1, r4 + bge _0201852C + ldrb r2, [r7, #0x15] + lsl r0, r0, #0x18 + ldr r1, [sp, #0x34] + lsr r0, r0, #0x18 + bl sub_02017FFC + str r0, [sp, #0x38] + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x3c] + lsl r0, r0, #0x18 + ldr r3, [sp, #0x6c] + lsr r0, r0, #0x18 + add r2, r4, #0x0 + bl sub_02018068 + ldr r1, [sp, #0x5c] + ldrb r2, [r1, r0] + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x38] + strb r2, [r1, r0] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _020184E4 +_0201852C: + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + str r1, [sp, #0x8] + ldr r0, [sp, #0x58] + cmp r1, r0 + blo _020184B8 +_0201853C: + add sp, #0x44 + pop {r4-r7, pc} + + thumb_func_start sub_02018540 +sub_02018540: ; 0x02018540 + push {r4-r5, lr} + sub sp, #0xc + add r4, r2, #0x0 + add r2, r3, #0x0 + mov r3, #0x2c + add r5, r1, #0x0 + mul r5, r3 + add r1, r0, r5 + ldrb r1, [r1, #0x1c] + add r3, sp, #0x8 + cmp r1, #0x1 + beq _02018574 + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldrb r1, [r3, #0x18] + str r1, [sp, #0x4] + ldrb r1, [r3, #0x1c] + str r1, [sp, #0x8] + ldrb r3, [r3, #0x10] + add r1, r4, #0x0 + bl sub_02018590 + add sp, #0xc + pop {r4-r5, pc} +_02018574: + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldrb r1, [r3, #0x18] + str r1, [sp, #0x4] + lsl r1, r4, #0x18 + ldrb r3, [r3, #0x10] + lsr r1, r1, #0x18 + bl sub_02018640 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_02018590 +sub_02018590: ; 0x02018590 + push {r4-r7, lr} + sub sp, #0x1c + str r2, [sp, #0x4] + str r3, [sp, #0x8] + ldr r4, [r0, #0x0] + add r7, r1, #0x0 + str r0, [sp, #0x0] + ldr r6, [sp, #0x38] + cmp r4, #0x0 + beq _0201863A + ldrb r0, [r0, #0x15] + add r1, sp, #0x18 + add r1, #0x1 + add r2, sp, #0x18 + bl sub_02017850 + add r0, sp, #0x20 + ldrb r2, [r0, #0x14] + ldr r1, [sp, #0x8] + add r1, r1, r2 + ldr r2, [sp, #0x8] + str r1, [sp, #0xc] + cmp r2, r1 + bge _0201863A + ldrb r2, [r0, #0x10] + ldr r0, [sp, #0x4] + lsl r1, r6, #0xc + add r0, r0, r2 + add r1, r1, r7 + str r0, [sp, #0x10] + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x14] +_020185D2: + add r0, sp, #0x18 + ldrb r1, [r0, #0x0] + ldr r0, [sp, #0x8] + cmp r0, r1 + bhs _0201863A + ldr r5, [sp, #0x4] + ldr r0, [sp, #0x10] + add r1, r5, #0x0 + cmp r1, r0 + bge _0201862A +_020185E6: + add r0, sp, #0x18 + ldrb r0, [r0, #0x1] + cmp r5, r0 + bhs _0201862A + ldr r2, [sp, #0x0] + ldr r1, [sp, #0x8] + ldrb r2, [r2, #0x15] + add r0, r5, #0x0 + bl sub_02017FFC + cmp r6, #0x11 + bne _02018604 + lsl r0, r0, #0x1 + strh r7, [r4, r0] + b _0201861E +_02018604: + cmp r6, #0x10 + bne _02018618 + lsl r0, r0, #0x1 + ldrh r2, [r4, r0] + mov r1, #0xf + lsl r1, r1, #0xc + and r1, r2 + add r1, r7, r1 + strh r1, [r4, r0] + b _0201861E +_02018618: + lsl r1, r0, #0x1 + ldr r0, [sp, #0x14] + strh r0, [r4, r1] +_0201861E: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r0, [sp, #0x10] + cmp r5, r0 + blt _020185E6 +_0201862A: + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r0, [sp, #0xc] + str r1, [sp, #0x8] + cmp r1, r0 + blt _020185D2 +_0201863A: + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02018640 +sub_02018640: ; 0x02018640 + push {r4-r7, lr} + sub sp, #0x14 + str r1, [sp, #0x0] + add r7, r0, #0x0 + str r2, [sp, #0x4] + ldr r0, [r7, #0x0] + add r5, r3, #0x0 + str r0, [sp, #0xc] + cmp r0, #0x0 + beq _020186B0 + ldrb r0, [r7, #0x15] + add r1, sp, #0x10 + add r1, #0x1 + add r2, sp, #0x10 + bl sub_02017850 + add r1, sp, #0x18 + ldrb r0, [r1, #0x14] + add r0, r5, r0 + str r0, [sp, #0x8] + cmp r5, r0 + bge _020186B0 + ldrb r1, [r1, #0x10] + ldr r0, [sp, #0x4] + add r6, r0, r1 +_02018672: + add r0, sp, #0x10 + ldrb r0, [r0, #0x0] + cmp r5, r0 + bhs _020186B0 + ldr r4, [sp, #0x4] + add r0, r4, #0x0 + cmp r0, r6 + bge _020186A4 +_02018682: + add r0, sp, #0x10 + ldrb r0, [r0, #0x1] + cmp r4, r0 + bhs _020186A4 + ldrb r2, [r7, #0x15] + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02017FFC + ldr r2, [sp, #0x0] + ldr r1, [sp, #0xc] + strb r2, [r1, r0] + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, r6 + blt _02018682 +_020186A4: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r0, [sp, #0x8] + cmp r5, r0 + blt _02018672 +_020186B0: + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_020186B4 +sub_020186B4: ; 0x020186B4 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + mov r0, #0x2c + add r7, r1, #0x0 + mul r7, r0 + str r2, [sp, #0x0] + add r0, r5, r7 + ldr r4, [r0, #0x8] + add r6, r3, #0x0 + cmp r4, #0x0 + beq _0201873C + ldrb r0, [r0, #0x1d] + add r1, sp, #0x10 + add r1, #0x1 + add r2, sp, #0x10 + bl sub_02017850 + add r0, sp, #0x18 + ldrb r1, [r0, #0x14] + add r1, r6, r1 + str r1, [sp, #0x4] + cmp r6, r1 + bge _0201873C + add r1, r5, r7 + str r1, [sp, #0xc] + ldrb r1, [r0, #0x18] + lsl r1, r1, #0xc + str r1, [sp, #0x8] + ldrb r1, [r0, #0x10] + ldr r0, [sp, #0x0] + add r7, r0, r1 +_020186F4: + add r0, sp, #0x10 + ldrb r0, [r0, #0x0] + cmp r6, r0 + bhs _0201873C + ldr r5, [sp, #0x0] + add r0, r5, #0x0 + cmp r0, r7 + bge _02018730 +_02018704: + add r0, sp, #0x10 + ldrb r0, [r0, #0x1] + cmp r5, r0 + bhs _02018730 + ldr r2, [sp, #0xc] + add r0, r5, #0x0 + ldrb r2, [r2, #0x1d] + add r1, r6, #0x0 + bl sub_02017FFC + lsl r0, r0, #0x1 + ldrh r2, [r4, r0] + ldr r1, _02018740 ; =0x00000FFF + and r2, r1 + ldr r1, [sp, #0x8] + orr r1, r2 + strh r1, [r4, r0] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r7 + blt _02018704 +_02018730: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r0, [sp, #0x4] + cmp r6, r0 + blt _020186F4 +_0201873C: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02018740: .word 0x00000FFF + + thumb_func_start sub_02018744 +sub_02018744: ; 0x02018744 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x2c + mul r0, r4 + add r2, r5, r0 + ldr r1, [r2, #0x8] + cmp r1, #0x0 + beq _02018766 + ldr r2, [r2, #0xc] + mov r0, #0x0 + blx sub_020CE1C8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02017CD0 +_02018766: + pop {r3-r5, pc} + + thumb_func_start sub_02018768 +sub_02018768: ; 0x02018768 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x2c + mul r0, r4 + add r3, r5, r0 + ldr r1, [r3, #0x8] + cmp r1, #0x0 + beq _0201878A + add r0, r2, #0x0 + ldr r2, [r3, #0xc] + blx sub_020CE1C8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02017CD0 +_0201878A: + pop {r3-r5, pc} + + thumb_func_start sub_0201878C +sub_0201878C: ; 0x0201878C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x2c + mul r0, r4 + add r3, r5, r0 + ldr r1, [r3, #0x8] + cmp r1, #0x0 + beq _020187AE + add r0, r2, #0x0 + ldr r2, [r3, #0xc] + blx sub_020CE1C8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201AC68 +_020187AE: + pop {r3-r5, pc} + + thumb_func_start sub_020187B0 +sub_020187B0: ; 0x020187B0 + push {r3, lr} + cmp r0, #0x7 + bhi _02018802 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r4, r2, #0 + lsl r2, r3, #0 + lsl r0, r4, #0 + lsl r6, r4, #0 + lsl r4, r5, #0 + lsl r2, r6, #0 + lsl r0, r7, #0 + blx sub_020C7124 + pop {r3, pc} +_020187D8: + .byte 0xAE, 0xF0, 0x7A, 0xEC, 0x08, 0xBD, 0xAE, 0xF0 + .byte 0x3C, 0xEC, 0x08, 0xBD, 0xAE, 0xF0, 0xE4, 0xEB, 0x08, 0xBD, 0xAE, 0xF0, 0x8C, 0xEC, 0x08, 0xBD + .byte 0xAE, 0xF0, 0x5E, 0xEC, 0x08, 0xBD, 0xAE, 0xF0, 0x0C, 0xEC, 0x08, 0xBD, 0xAE, 0xF0, 0xB0, 0xEB + .byte 0x08, 0xBD +_02018802: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02018808 +sub_02018808: ; 0x02018808 + push {r4-r7} + lsl r3, r3, #0x1c + lsr r3, r3, #0x18 + mov r4, #0x0 + cmp r1, #0x0 + bls _02018842 + mov r5, #0xf + add r6, r5, #0x0 +_02018818: + ldrb r7, [r0, r4] + and r7, r6 + strb r7, [r2, #0x0] + ldrb r7, [r2, #0x0] + cmp r7, #0x0 + beq _02018828 + add r7, r7, r3 + strb r7, [r2, #0x0] +_02018828: + ldrb r7, [r0, r4] + asr r7, r7, #0x4 + and r7, r5 + strb r7, [r2, #0x1] + ldrb r7, [r2, #0x1] + cmp r7, #0x0 + beq _0201883A + add r7, r7, r3 + strb r7, [r2, #0x1] +_0201883A: + add r4, r4, #0x1 + add r2, r2, #0x2 + cmp r4, r1 + blo _02018818 +_02018842: + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_02018848 +sub_02018848: ; 0x02018848 + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + add r0, r3, #0x0 + lsl r1, r5, #0x1 + add r7, r2, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02018808 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201886C +sub_0201886C: ; 0x0201886C + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start sub_02018878 +sub_02018878: ; 0x02018878 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldrh r0, [r0, #0x20] + bx lr + .balign 4 + + thumb_func_start sub_02018884 +sub_02018884: ; 0x02018884 + sub sp, #0x20 + cmp r1, #0x7 + bls _0201888C + b _02018A38 +_0201888C: + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r6, r1, #0 + lsl r2, r4, #0 + lsl r6, r6, #0 + lsl r6, r0, #0x2 + lsl r6, r2, #0x3 + lsl r2, r5, #0x3 + lsl r6, r7, #0x3 + lsl r6, r1, #0x5 + ldr r0, _02018A40 ; =0x04000008 + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x1e] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020188BC: + .byte 0x61, 0x48, 0x01, 0x88 + .byte 0x00, 0xA8, 0x08, 0xB0, 0x81, 0x83, 0x88, 0x07, 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47 + .byte 0x2C, 0x22, 0x4A, 0x43, 0x80, 0x18, 0x00, 0x7F, 0x00, 0x28, 0x03, 0xD0, 0x01, 0x28, 0x0B, 0xD0 + .byte 0x02, 0x28, 0x13, 0xD0, 0x58, 0x48, 0x01, 0x88, 0x00, 0xA8, 0x08, 0xB0, 0x41, 0x83, 0x88, 0x07 + .byte 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47, 0x53, 0x48, 0x01, 0x88, 0x00, 0xA8, 0x08, 0xB0 + .byte 0x01, 0x83, 0x88, 0x07, 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47, 0x4E, 0x48, 0x01, 0x88 + .byte 0x00, 0xA8, 0x08, 0xB0, 0xC1, 0x82, 0x88, 0x07, 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47 + .byte 0x2C, 0x22, 0x4A, 0x43, 0x80, 0x18, 0x00, 0x7F, 0x00, 0x28, 0x03, 0xD0, 0x01, 0x28, 0x0B, 0xD0 + .byte 0x02, 0x28, 0x13, 0xD0, 0x45, 0x48, 0x01, 0x88, 0x00, 0xA8, 0x08, 0xB0, 0x81, 0x82, 0x88, 0x07 + .byte 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47, 0x40, 0x48, 0x01, 0x88, 0x00, 0xA8, 0x08, 0xB0 + .byte 0x41, 0x82, 0x88, 0x07, 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47, 0x3B, 0x48, 0x01, 0x88 + .byte 0x00, 0xA8, 0x08, 0xB0, 0x01, 0x82, 0x88, 0x07, 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47 + .byte 0x37, 0x48, 0x01, 0x88, 0x00, 0xA8, 0x08, 0xB0, 0xC1, 0x81, 0x88, 0x07, 0x80, 0x0F, 0x00, 0x06 + .byte 0x00, 0x0E, 0x70, 0x47, 0x33, 0x48, 0x01, 0x88, 0x00, 0xA8, 0x08, 0xB0, 0x81, 0x81, 0x88, 0x07 + .byte 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47, 0x2C, 0x22, 0x4A, 0x43, 0x80, 0x18, 0x00, 0x7F + .byte 0x00, 0x28, 0x03, 0xD0, 0x01, 0x28, 0x0B, 0xD0, 0x02, 0x28, 0x13, 0xD0, 0x2A, 0x48, 0x01, 0x88 + .byte 0x00, 0xA8, 0x08, 0xB0, 0x41, 0x81, 0x88, 0x07, 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47 + .byte 0x25, 0x48, 0x01, 0x88, 0x00, 0xA8, 0x08, 0xB0, 0x01, 0x81, 0x88, 0x07, 0x80, 0x0F, 0x00, 0x06 + .byte 0x00, 0x0E, 0x70, 0x47, 0x20, 0x48, 0x01, 0x88, 0x00, 0xA8, 0x08, 0xB0, 0xC1, 0x80, 0x88, 0x07 + .byte 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47, 0x2C, 0x22, 0x4A, 0x43, 0x80, 0x18, 0x00, 0x7F + .byte 0x00, 0x28, 0x03, 0xD0, 0x01, 0x28, 0x0B, 0xD0, 0x02, 0x28, 0x13, 0xD0, 0x17, 0x48, 0x01, 0x88 + .byte 0x00, 0xA8, 0x08, 0xB0, 0x81, 0x80, 0x88, 0x07, 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47 + .byte 0x12, 0x48, 0x01, 0x88, 0x00, 0xA8, 0x08, 0xB0, 0x41, 0x80, 0x88, 0x07, 0x80, 0x0F, 0x00, 0x06 + .byte 0x00, 0x0E, 0x70, 0x47, 0x0D, 0x48, 0x01, 0x88, 0x00, 0xA8, 0x08, 0xB0, 0x01, 0x80, 0x88, 0x07 + .byte 0x80, 0x0F, 0x00, 0x06, 0x00, 0x0E, 0x70, 0x47 +_02018A38: + mov r0, #0x0 + add sp, #0x20 + bx lr + nop +_02018A40: .word 0x04000008 +_02018A44: + .byte 0x0A, 0x00, 0x00, 0x04, 0x0C, 0x00, 0x00, 0x04, 0x0E, 0x00, 0x00, 0x04 + .byte 0x08, 0x10, 0x00, 0x04, 0x0A, 0x10, 0x00, 0x04, 0x0C, 0x10, 0x00, 0x04, 0x0E, 0x10, 0x00, 0x04 + + thumb_func_start sub_02018A60 +sub_02018A60: ; 0x02018A60 + push {r3-r7, lr} + sub sp, #0x68 + str r2, [sp, #0x8] + str r3, [sp, #0xc] + add r2, sp, #0x70 + str r0, [sp, #0x0] + ldrh r0, [r2, #0x10] + str r1, [sp, #0x4] + ldrh r2, [r2, #0x18] + str r0, [sp, #0x10] + add r0, r1, #0x0 + ldrh r1, [r0, #0x4] + ldr r0, [sp, #0x10] + sub r3, r1, r0 + cmp r3, r2 + bge _02018A88 + ldr r0, [sp, #0x8] + add r0, r0, r3 + str r0, [sp, #0x50] + b _02018A8E +_02018A88: + ldr r0, [sp, #0x8] + add r0, r2, r0 + str r0, [sp, #0x50] +_02018A8E: + ldr r2, [sp, #0x4] + add r3, sp, #0x70 + ldrh r0, [r3, #0x14] + ldrh r2, [r2, #0x6] + ldrh r3, [r3, #0x1c] + sub r4, r2, r0 + cmp r4, r3 + bge _02018AA6 + ldr r2, [sp, #0xc] + add r2, r2, r4 + str r2, [sp, #0x4c] + b _02018AAC +_02018AA6: + ldr r2, [sp, #0xc] + add r2, r3, r2 + str r2, [sp, #0x4c] +_02018AAC: + ldr r2, [sp, #0x0] + mov r3, #0x7 + ldrh r4, [r2, #0x4] + add r2, r4, #0x0 + and r2, r3 + add r2, r4, r2 + asr r2, r2, #0x3 + str r2, [sp, #0x48] + add r2, r1, #0x0 + and r2, r3 + add r1, r1, r2 + asr r1, r1, #0x3 + str r1, [sp, #0x44] + add r1, sp, #0x70 + ldrh r1, [r1, #0x20] + ldr r2, _02018C98 ; =0x0000FFFF + str r1, [sp, #0x38] + cmp r1, r2 + bne _02018BB4 + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x4c] + cmp r2, r1 + bge _02018ADE + cmp r2, r1 + blt _02018AE0 +_02018ADE: + b _02018C92 +_02018AE0: + add r1, r2, #0x0 + lsl r1, r1, #0x2 + lsl r0, r0, #0x2 + str r1, [sp, #0x28] + str r0, [sp, #0x24] +_02018AEA: + ldr r3, [sp, #0x8] + ldr r0, [sp, #0x50] + add r1, r3, #0x0 + ldr r4, [sp, #0x10] + cmp r1, r0 + bge _02018B96 + cmp r1, r0 + bge _02018B96 + add r0, r3, #0x0 + lsl r5, r0, #0x2 + add r0, r4, #0x0 + lsl r6, r0, #0x2 + ldr r0, _02018C9C ; =0x00003FE0 + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x48] + and r1, r0 + mul r2, r1 + str r2, [sp, #0x20] + ldr r2, [sp, #0x28] + mov r1, #0x1c + and r2, r1 + str r2, [sp, #0x1c] + ldr r2, [sp, #0x24] + and r0, r2 + ldr r2, [sp, #0x44] + mul r2, r0 + ldr r0, [sp, #0x24] + str r2, [sp, #0x18] + and r0, r1 + str r0, [sp, #0x14] +_02018B26: + ldr r0, [sp, #0x4] + asr r2, r4, #0x1 + mov r1, #0x3 + ldr r0, [r0, #0x0] + and r1, r2 + add r1, r0, r1 + ldr r0, _02018C9C ; =0x00003FE0 + and r0, r6 + add r1, r1, r0 + ldr r0, [sp, #0x18] + add r6, r6, #0x4 + add r0, r1, r0 + str r0, [sp, #0x64] + lsl r0, r4, #0x1f + lsr r2, r0, #0x1d + ldr r0, [sp, #0x0] + asr r1, r3, #0x1 + ldr r7, [r0, #0x0] + mov r0, #0x3 + and r0, r1 + ldr r1, _02018C9C ; =0x00003FE0 + add r4, r4, #0x1 + and r1, r5 + str r1, [sp, #0x54] + add r1, r7, r0 + ldr r0, [sp, #0x54] + add r5, r5, #0x4 + add r1, r0, r1 + ldr r0, [sp, #0x20] + add r1, r0, r1 + ldr r0, [sp, #0x1c] + ldrb r1, [r0, r1] + lsl r0, r3, #0x1f + lsr r0, r0, #0x1d + asr r1, r0 + mov r0, #0xf + and r0, r1 + add r7, r0, #0x0 + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x64] + lsl r7, r2 + ldrb r0, [r0, r1] + add r3, r3, #0x1 + str r0, [sp, #0x58] + mov r0, #0xf0 + asr r0, r2 + ldr r1, [sp, #0x58] + add r2, r7, #0x0 + and r0, r1 + orr r2, r0 + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x64] + strb r2, [r0, r1] + ldr r0, [sp, #0x50] + cmp r3, r0 + blt _02018B26 +_02018B96: + ldr r0, [sp, #0x28] + add r0, r0, #0x4 + str r0, [sp, #0x28] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x24] + ldr r1, [sp, #0xc] + add r0, r0, #0x4 + str r0, [sp, #0x24] + ldr r0, [sp, #0x4c] + cmp r1, r0 + blt _02018AEA + add sp, #0x68 + pop {r3-r7, pc} +_02018BB4: + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x4c] + cmp r2, r1 + bge _02018C92 + cmp r2, r1 + bge _02018C92 + add r1, r2, #0x0 + lsl r1, r1, #0x2 + lsl r0, r0, #0x2 + str r1, [sp, #0x40] + str r0, [sp, #0x3c] +_02018BCA: + ldr r3, [sp, #0x8] + ldr r0, [sp, #0x50] + add r1, r3, #0x0 + ldr r4, [sp, #0x10] + cmp r1, r0 + bge _02018C78 + cmp r1, r0 + bge _02018C78 + add r0, r3, #0x0 + lsl r1, r0, #0x2 + add r0, r4, #0x0 + lsl r2, r0, #0x2 + ldr r0, _02018C9C ; =0x00003FE0 + ldr r5, [sp, #0x40] + ldr r6, [sp, #0x48] + and r5, r0 + mul r6, r5 + str r6, [sp, #0x34] + ldr r6, [sp, #0x40] + mov r5, #0x1c + and r6, r5 + str r6, [sp, #0x30] + ldr r6, [sp, #0x3c] + and r0, r6 + ldr r6, [sp, #0x44] + mul r6, r0 + ldr r0, [sp, #0x3c] + str r6, [sp, #0x2c] + and r0, r5 + str r0, [sp, #0x60] +_02018C06: + ldr r0, [sp, #0x4] + asr r6, r4, #0x1 + mov r5, #0x3 + and r5, r6 + ldr r0, [r0, #0x0] + asr r6, r3, #0x1 + add r5, r0, r5 + ldr r0, _02018C9C ; =0x00003FE0 + and r0, r2 + add r5, r5, r0 + ldr r0, [sp, #0x2c] + add r5, r5, r0 + ldr r0, [sp, #0x0] + ldr r7, [r0, #0x0] + mov r0, #0x3 + and r0, r6 + ldr r6, _02018C9C ; =0x00003FE0 + and r6, r1 + str r6, [sp, #0x5c] + add r6, r7, r0 + ldr r0, [sp, #0x5c] + add r6, r0, r6 + ldr r0, [sp, #0x34] + add r6, r0, r6 + ldr r0, [sp, #0x30] + ldrb r6, [r0, r6] + lsl r0, r3, #0x1f + lsr r0, r0, #0x1d + asr r6, r0 + mov r0, #0xf + and r0, r6 + ldr r6, [sp, #0x38] + cmp r0, r6 + beq _02018C6A + lsl r6, r4, #0x1f + lsr r7, r6, #0x1d + lsl r0, r7 + mov lr, r0 + ldr r0, [sp, #0x60] + ldrb r0, [r5, r0] + mov r12, r0 + mov r0, #0xf0 + add r6, r0, #0x0 + asr r6, r7 + mov r0, r12 + and r0, r6 + mov r6, lr + orr r6, r0 + ldr r0, [sp, #0x60] + strb r6, [r5, r0] +_02018C6A: + ldr r0, [sp, #0x50] + add r3, r3, #0x1 + add r1, r1, #0x4 + add r2, r2, #0x4 + add r4, r4, #0x1 + cmp r3, r0 + blt _02018C06 +_02018C78: + ldr r0, [sp, #0x40] + add r0, r0, #0x4 + str r0, [sp, #0x40] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x3c] + ldr r1, [sp, #0xc] + add r0, r0, #0x4 + str r0, [sp, #0x3c] + ldr r0, [sp, #0x4c] + cmp r1, r0 + blt _02018BCA +_02018C92: + add sp, #0x68 + pop {r3-r7, pc} + nop +_02018C98: .word 0x0000FFFF +_02018C9C: .word 0x00003FE0 + + thumb_func_start sub_02018CA0 +sub_02018CA0: ; 0x02018CA0 + push {r3-r7, lr} + sub sp, #0x50 + str r2, [sp, #0x8] + str r3, [sp, #0xc] + add r2, sp, #0x58 + str r0, [sp, #0x0] + ldrh r0, [r2, #0x10] + str r1, [sp, #0x4] + ldrh r2, [r2, #0x18] + str r0, [sp, #0x10] + add r0, r1, #0x0 + ldrh r1, [r0, #0x4] + ldr r0, [sp, #0x10] + sub r3, r1, r0 + cmp r3, r2 + bge _02018CC6 + ldr r0, [sp, #0x8] + add r0, r0, r3 + b _02018CCA +_02018CC6: + ldr r0, [sp, #0x8] + add r0, r2, r0 +_02018CCA: + ldr r2, [sp, #0x4] + add r3, sp, #0x58 + mov r12, r0 + ldrh r0, [r3, #0x14] + ldrh r2, [r2, #0x6] + ldrh r3, [r3, #0x1c] + sub r4, r2, r0 + cmp r4, r3 + bge _02018CE2 + ldr r2, [sp, #0xc] + add r2, r2, r4 + b _02018CE6 +_02018CE2: + ldr r2, [sp, #0xc] + add r2, r3, r2 +_02018CE6: + mov lr, r2 + ldr r2, [sp, #0x0] + mov r3, #0x7 + ldrh r4, [r2, #0x4] + add r2, r4, #0x0 + and r2, r3 + add r2, r4, r2 + asr r2, r2, #0x3 + str r2, [sp, #0x4c] + add r2, r1, #0x0 + and r2, r3 + add r1, r1, r2 + asr r1, r1, #0x3 + str r1, [sp, #0x48] + add r1, sp, #0x58 + ldrh r1, [r1, #0x20] + ldr r2, _02018E80 ; =0x0000FFFF + str r1, [sp, #0x3c] + cmp r1, r2 + bne _02018DC6 + ldr r2, [sp, #0xc] + mov r1, lr + cmp r2, r1 + bge _02018D1C + mov r1, lr + cmp r2, r1 + blt _02018D1E +_02018D1C: + b _02018E7C +_02018D1E: + add r1, r2, #0x0 + lsl r1, r1, #0x3 + lsl r0, r0, #0x3 + str r1, [sp, #0x28] + str r0, [sp, #0x24] +_02018D28: + ldr r1, [sp, #0x8] + mov r0, r12 + add r2, r1, #0x0 + ldr r7, [sp, #0x10] + cmp r2, r0 + bge _02018DA8 + mov r0, r12 + cmp r2, r0 + bge _02018DA8 + add r0, r1, #0x0 + lsl r2, r0, #0x3 + add r0, r7, #0x0 + lsl r3, r0, #0x3 + ldr r6, _02018E84 ; =0x00007FC0 + ldr r0, [sp, #0x28] + ldr r4, [sp, #0x4c] + and r0, r6 + mul r4, r0 + str r4, [sp, #0x20] + ldr r0, [sp, #0x28] + mov r5, #0x38 + and r0, r5 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x24] + ldr r4, [sp, #0x48] + and r0, r6 + mul r4, r0 + ldr r0, [sp, #0x24] + str r4, [sp, #0x18] + and r0, r5 + str r0, [sp, #0x14] +_02018D66: + ldr r0, [sp, #0x0] + add r5, r1, #0x0 + mov r4, #0x7 + and r5, r4 + ldr r0, [r0, #0x0] + ldr r4, _02018E84 ; =0x00007FC0 + add r0, r0, r5 + and r4, r2 + add r4, r4, r0 + ldr r0, [sp, #0x20] + add r5, r7, #0x0 + add r4, r0, r4 + ldr r0, [sp, #0x1c] + add r1, r1, #0x1 + ldrb r6, [r0, r4] + ldr r0, [sp, #0x4] + mov r4, #0x7 + and r5, r4 + ldr r0, [r0, #0x0] + ldr r4, _02018E84 ; =0x00007FC0 + add r0, r0, r5 + and r4, r3 + add r4, r4, r0 + ldr r0, [sp, #0x18] + add r2, #0x8 + add r4, r0, r4 + ldr r0, [sp, #0x14] + add r3, #0x8 + strb r6, [r0, r4] + mov r0, r12 + add r7, r7, #0x1 + cmp r1, r0 + blt _02018D66 +_02018DA8: + ldr r0, [sp, #0x28] + add r0, #0x8 + str r0, [sp, #0x28] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x24] + ldr r1, [sp, #0xc] + add r0, #0x8 + str r0, [sp, #0x24] + mov r0, lr + cmp r1, r0 + blt _02018D28 + add sp, #0x50 + pop {r3-r7, pc} +_02018DC6: + ldr r2, [sp, #0xc] + mov r1, lr + cmp r2, r1 + bge _02018E7C + mov r1, lr + cmp r2, r1 + bge _02018E7C + add r1, r2, #0x0 + lsl r1, r1, #0x3 + lsl r0, r0, #0x3 + str r1, [sp, #0x44] + str r0, [sp, #0x40] +_02018DDE: + ldr r2, [sp, #0x8] + mov r0, r12 + add r1, r2, #0x0 + ldr r3, [sp, #0x10] + cmp r1, r0 + bge _02018E62 + mov r0, r12 + cmp r1, r0 + bge _02018E62 + add r0, r2, #0x0 + lsl r6, r0, #0x3 + add r0, r3, #0x0 + lsl r1, r0, #0x3 + ldr r7, _02018E84 ; =0x00007FC0 + ldr r0, [sp, #0x44] + ldr r4, [sp, #0x4c] + and r0, r7 + mul r4, r0 + str r4, [sp, #0x38] + ldr r0, [sp, #0x44] + mov r5, #0x38 + and r0, r5 + str r0, [sp, #0x34] + ldr r0, [sp, #0x40] + ldr r4, [sp, #0x48] + and r0, r7 + mul r4, r0 + ldr r0, [sp, #0x40] + str r4, [sp, #0x30] + and r0, r5 + str r0, [sp, #0x2c] +_02018E1C: + ldr r0, [sp, #0x4] + mov r4, #0x7 + ldr r0, [r0, #0x0] + and r4, r3 + add r0, r0, r4 + ldr r4, _02018E84 ; =0x00007FC0 + add r5, r2, #0x0 + and r4, r1 + add r4, r0, r4 + ldr r0, [sp, #0x30] + add r7, r4, r0 + ldr r0, [sp, #0x0] + mov r4, #0x7 + and r5, r4 + ldr r0, [r0, #0x0] + ldr r4, _02018E84 ; =0x00007FC0 + add r0, r0, r5 + and r4, r6 + add r4, r4, r0 + ldr r0, [sp, #0x38] + add r4, r0, r4 + ldr r0, [sp, #0x34] + ldrb r0, [r0, r4] + ldr r4, [sp, #0x3c] + cmp r0, r4 + beq _02018E54 + ldr r4, [sp, #0x2c] + strb r0, [r7, r4] +_02018E54: + add r2, r2, #0x1 + mov r0, r12 + add r6, #0x8 + add r1, #0x8 + add r3, r3, #0x1 + cmp r2, r0 + blt _02018E1C +_02018E62: + ldr r0, [sp, #0x44] + add r0, #0x8 + str r0, [sp, #0x44] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x40] + ldr r1, [sp, #0xc] + add r0, #0x8 + str r0, [sp, #0x40] + mov r0, lr + cmp r1, r0 + blt _02018DDE +_02018E7C: + add sp, #0x50 + pop {r3-r7, pc} + .balign 4 +_02018E80: .word 0x0000FFFF +_02018E84: .word 0x00007FC0 + + thumb_func_start sub_02018E88 +sub_02018E88: ; 0x02018E88 + push {r4-r7, lr} + sub sp, #0x14 + str r1, [sp, #0x4] + str r2, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + str r0, [sp, #0x2c] + ldr r0, [sp, #0x4] + add r6, r0, r3 + ldr r0, [sp, #0x0] + ldrh r0, [r0, #0x4] + cmp r6, r0 + ble _02018EA4 + add r6, r0, #0x0 +_02018EA4: + add r1, sp, #0x18 + ldrh r2, [r1, #0x10] + ldr r1, [sp, #0x8] + add r1, r1, r2 + mov r12, r1 + ldr r1, [sp, #0x0] + ldrh r2, [r1, #0x6] + mov r1, r12 + cmp r1, r2 + ble _02018EBA + mov r12, r2 +_02018EBA: + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + mov lr, r0 + ldr r1, [sp, #0x8] + mov r0, r12 + cmp r1, r0 + bge _02018F44 + add r0, r1, #0x0 + lsl r0, r0, #0x2 + str r0, [sp, #0xc] + ldr r0, [sp, #0x2c] + lsl r0, r0, #0x4 + str r0, [sp, #0x10] +_02018ED8: + ldr r1, [sp, #0x4] + add r0, r1, #0x0 + cmp r0, r6 + bge _02018F32 + lsl r5, r0, #0x2 + ldr r2, _02018F48 ; =0x00003FE0 + ldr r0, [sp, #0xc] + and r0, r2 + add r7, r0, #0x0 + mov r2, lr + mul r7, r2 + ldr r0, [sp, #0xc] + mov r2, #0x1c + and r2, r0 +_02018EF4: + ldr r0, [sp, #0x0] + asr r3, r1, #0x1 + ldr r4, [r0, #0x0] + mov r0, #0x3 + and r0, r3 + ldr r3, _02018F48 ; =0x00003FE0 + add r0, r4, r0 + and r3, r5 + add r0, r0, r3 + add r0, r0, r7 + mov r3, #0x1 + tst r3, r1 + ldrb r4, [r0, r2] + beq _02018F1C + mov r3, #0xf + and r3, r4 + strb r3, [r0, r2] + ldrb r4, [r0, r2] + ldr r3, [sp, #0x10] + b _02018F26 +_02018F1C: + mov r3, #0xf0 + and r3, r4 + strb r3, [r0, r2] + ldrb r4, [r0, r2] + ldr r3, [sp, #0x2c] +_02018F26: + orr r3, r4 + add r1, r1, #0x1 + strb r3, [r0, r2] + add r5, r5, #0x4 + cmp r1, r6 + blt _02018EF4 +_02018F32: + ldr r0, [sp, #0xc] + add r0, r0, #0x4 + str r0, [sp, #0xc] + ldr r0, [sp, #0x8] + add r1, r0, #0x1 + mov r0, r12 + str r1, [sp, #0x8] + cmp r1, r0 + blt _02018ED8 +_02018F44: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02018F48: .word 0x00003FE0 + + thumb_func_start sub_02018F4C +sub_02018F4C: ; 0x02018F4C + push {r4-r7, lr} + sub sp, #0x14 + str r1, [sp, #0x4] + str r2, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + str r0, [sp, #0x2c] + ldr r0, [sp, #0x4] + add r5, r0, r3 + ldr r0, [sp, #0x0] + ldrh r0, [r0, #0x4] + cmp r5, r0 + ble _02018F68 + add r5, r0, #0x0 +_02018F68: + add r1, sp, #0x18 + ldrh r2, [r1, #0x10] + ldr r1, [sp, #0x8] + add r1, r1, r2 + mov lr, r1 + ldr r1, [sp, #0x0] + ldrh r2, [r1, #0x6] + mov r1, lr + cmp r1, r2 + ble _02018F7E + mov lr, r2 +_02018F7E: + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x10] + ldr r1, [sp, #0x8] + mov r0, lr + cmp r1, r0 + bge _02018FEA + add r0, r1, #0x0 + lsl r0, r0, #0x3 + str r0, [sp, #0xc] + ldr r0, [sp, #0x4] + lsl r0, r0, #0x3 + mov r12, r0 +_02018F9C: + ldr r2, [sp, #0x4] + add r0, r2, #0x0 + cmp r0, r5 + bge _02018FD8 + ldr r1, [sp, #0xc] + ldr r0, _02018FF0 ; =0x00007FC0 + mov r3, r12 + and r0, r1 + add r7, r0, #0x0 + ldr r1, [sp, #0x10] + mov r0, #0x38 + mul r7, r1 + ldr r1, [sp, #0xc] + add r6, r1, #0x0 + and r6, r0 +_02018FBA: + ldr r0, [sp, #0x0] + ldr r4, _02018FF0 ; =0x00007FC0 + ldr r1, [r0, #0x0] + mov r0, #0x7 + and r0, r2 + and r4, r3 + add r0, r1, r0 + add r0, r4, r0 + add r1, r7, r0 + ldr r0, [sp, #0x2c] + add r2, r2, #0x1 + strb r0, [r6, r1] + add r3, #0x8 + cmp r2, r5 + blt _02018FBA +_02018FD8: + ldr r0, [sp, #0xc] + add r0, #0x8 + str r0, [sp, #0xc] + ldr r0, [sp, #0x8] + add r1, r0, #0x1 + mov r0, lr + str r1, [sp, #0x8] + cmp r1, r0 + blt _02018F9C +_02018FEA: + add sp, #0x14 + pop {r4-r7, pc} + nop +_02018FF0: .word 0x00007FC0 + + thumb_func_start sub_02018FF4 +sub_02018FF4: ; 0x02018FF4 + push {r4-r6, lr} + add r5, r1, #0x0 + lsl r1, r5, #0x4 + bl sub_02016998 + add r6, r0, #0x0 + mov r4, #0x0 + cmp r5, #0x0 + ble _02019018 +_02019006: + lsl r0, r4, #0x4 + add r0, r6, r0 + bl sub_0201901C + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r5 + blt _02019006 +_02019018: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0201901C +sub_0201901C: ; 0x0201901C + mov r3, #0x0 + str r3, [r0, #0x0] + mov r1, #0xff + strb r1, [r0, #0x4] + strb r3, [r0, #0x5] + strb r3, [r0, #0x6] + strb r3, [r0, #0x7] + strb r3, [r0, #0x8] + strb r3, [r0, #0x9] + ldrh r2, [r0, #0xa] + ldr r1, _02019044 ; =0xFFFF8000 + and r2, r1 + strh r2, [r0, #0xa] + str r3, [r0, #0xc] + ldrh r2, [r0, #0xa] + sub r1, r1, #0x1 + and r1, r2 + strh r1, [r0, #0xa] + bx lr + nop +_02019044: .word 0xFFFF8000 + + thumb_func_start sub_02019048 +sub_02019048: ; 0x02019048 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0201905A + ldrb r1, [r0, #0x4] + cmp r1, #0xff + beq _0201905A + ldr r0, [r0, #0xc] + cmp r0, #0x0 + bne _0201905E +_0201905A: + mov r0, #0x0 + bx lr +_0201905E: + mov r0, #0x1 + bx lr + .balign 4 + + thumb_func_start sub_02019064 +sub_02019064: ; 0x02019064 + push {r3-r7, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + mov r0, #0x2c + add r7, r6, #0x0 + mul r7, r0 + add r4, r1, #0x0 + str r3, [sp, #0x0] + add r1, r5, r7 + ldr r0, [r1, #0x8] + cmp r0, #0x0 + beq _020190E0 + add r3, sp, #0x8 + ldrb r2, [r1, #0x1f] + ldrb r1, [r3, #0x14] + ldrb r3, [r3, #0x18] + ldr r0, [r5, #0x0] + mul r3, r1 + add r1, r2, #0x0 + mul r1, r3 + bl sub_02016998 + add r1, r0, #0x0 + beq _020190E0 + str r5, [r4, #0x0] + strb r6, [r4, #0x4] + ldr r0, [sp, #0x0] + add r3, sp, #0x8 + strb r0, [r4, #0x5] + ldrb r0, [r3, #0x10] + ldr r2, _020190E4 ; =0xFFFF8000 + strb r0, [r4, #0x6] + ldrb r0, [r3, #0x14] + strb r0, [r4, #0x7] + ldrb r0, [r3, #0x18] + strb r0, [r4, #0x8] + ldrb r0, [r3, #0x1c] + strb r0, [r4, #0x9] + ldrh r0, [r4, #0xa] + ldrh r3, [r3, #0x20] + and r0, r2 + lsr r2, r2, #0x11 + and r2, r3 + orr r0, r2 + strh r0, [r4, #0xa] + str r1, [r4, #0xc] + add r0, r5, r7 + ldrb r0, [r0, #0x1e] + cmp r0, #0x0 + bne _020190CC + mov r2, #0x0 + b _020190CE +_020190CC: + mov r2, #0x1 +_020190CE: + ldrh r1, [r4, #0xa] + ldr r0, _020190E8 ; =0xFFFF7FFF + and r1, r0 + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1f + lsr r0, r0, #0x10 + orr r0, r1 + strh r0, [r4, #0xa] +_020190E0: + pop {r3-r7, pc} + nop +_020190E4: .word 0xFFFF8000 +_020190E8: .word 0xFFFF7FFF + + thumb_func_start sub_020190EC +sub_020190EC: ; 0x020190EC + push {r3-r7, lr} + sub sp, #0x8 + str r3, [sp, #0x0] + add r5, r0, #0x0 + ldr r0, [sp, #0x24] + add r6, r2, #0x0 + str r0, [sp, #0x24] + ldr r0, [sp, #0x0] + add r4, r1, #0x0 + mul r0, r6 + lsl r0, r0, #0x5 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x4] + bl sub_02016998 + ldr r1, [sp, #0x24] + add r7, r0, #0x0 + lsl r2, r1, #0x4 + orr r1, r2 + lsl r1, r1, #0x18 + ldr r2, [sp, #0x4] + lsr r1, r1, #0x18 + blx sub_020DF4A4 + cmp r7, #0x0 + beq _02019148 + str r5, [r4, #0x0] + strb r6, [r4, #0x7] + ldr r0, [sp, #0x0] + strb r0, [r4, #0x8] + ldrh r1, [r4, #0xa] + ldr r0, _0201914C ; =0xFFFF8000 + add r3, r1, #0x0 + add r1, sp, #0x10 + ldrh r2, [r1, #0x10] + lsr r1, r0, #0x11 + and r3, r0 + and r1, r2 + orr r1, r3 + strh r1, [r4, #0xa] + str r7, [r4, #0xc] + ldrh r1, [r4, #0xa] + sub r0, r0, #0x1 + and r0, r1 + strh r0, [r4, #0xa] +_02019148: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0201914C: .word 0xFFFF8000 + + thumb_func_start sub_02019150 +sub_02019150: ; 0x02019150 + push {lr} + sub sp, #0x14 + add r3, r2, #0x0 + ldrb r2, [r3, #0x2] + str r2, [sp, #0x0] + ldrb r2, [r3, #0x3] + str r2, [sp, #0x4] + ldrb r2, [r3, #0x4] + str r2, [sp, #0x8] + ldrb r2, [r3, #0x5] + str r2, [sp, #0xc] + ldrh r2, [r3, #0x6] + str r2, [sp, #0x10] + ldrb r2, [r3, #0x0] + ldrb r3, [r3, #0x1] + bl sub_02019064 + add sp, #0x14 + pop {pc} + .balign 4 + + thumb_func_start sub_02019178 +sub_02019178: ; 0x02019178 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02016A18 + mov r2, #0x0 + str r2, [r4, #0x0] + mov r0, #0xff + strb r0, [r4, #0x4] + strb r2, [r4, #0x5] + strb r2, [r4, #0x6] + strb r2, [r4, #0x7] + strb r2, [r4, #0x8] + strb r2, [r4, #0x9] + ldrh r1, [r4, #0xa] + ldr r0, _020191A0 ; =0xFFFF8000 + and r0, r1 + strh r0, [r4, #0xa] + str r2, [r4, #0xc] + pop {r4, pc} + .balign 4 +_020191A0: .word 0xFFFF8000 + + thumb_func_start sub_020191A4 +sub_020191A4: ; 0x020191A4 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + mov r4, #0x0 + cmp r6, #0x0 + ble _020191C8 +_020191B0: + lsl r0, r4, #0x4 + add r0, r5, r0 + ldr r0, [r0, #0xc] + cmp r0, #0x0 + beq _020191BE + bl sub_02016A18 +_020191BE: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r6 + blt _020191B0 +_020191C8: + add r0, r5, #0x0 + bl sub_02016A18 + pop {r4-r6, pc} + + thumb_func_start sub_020191D0 +sub_020191D0: ; 0x020191D0 + push {r4, lr} + add r4, r0, #0x0 + bne _020191DA + bl sub_02020C2C +_020191DA: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _020191E4 + bl sub_02020C2C +_020191E4: + ldrb r0, [r4, #0x4] + cmp r0, #0x8 + blo _020191EE + bl sub_02020C2C +_020191EE: + ldrb r1, [r4, #0x4] + mov r0, #0x2c + ldr r2, [r4, #0x0] + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0x1c] + cmp r0, #0x3 + blo _02019202 + bl sub_02020C2C +_02019202: + ldrb r2, [r4, #0x4] + mov r1, #0x2c + ldr r3, [r4, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + add r0, r4, #0x0 + lsl r2, r1, #0x2 + ldr r1, _0201921C ; =0x020EDB68 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0201921C: .word 0x020EDB68 + + thumb_func_start sub_02019220 +sub_02019220: ; 0x02019220 + push {r4, lr} + add r4, r0, #0x0 + bne _0201922A + bl sub_02020C2C +_0201922A: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _02019234 + bl sub_02020C2C +_02019234: + ldrb r0, [r4, #0x4] + cmp r0, #0x8 + blo _0201923E + bl sub_02020C2C +_0201923E: + ldrb r1, [r4, #0x4] + mov r0, #0x2c + ldr r2, [r4, #0x0] + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0x1c] + cmp r0, #0x3 + blo _02019252 + bl sub_02020C2C +_02019252: + ldrb r2, [r4, #0x4] + mov r1, #0x2c + ldr r3, [r4, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + add r0, r4, #0x0 + lsl r2, r1, #0x2 + ldr r1, _0201926C ; =0x020EDB5C + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0201926C: .word 0x020EDB5C + + thumb_func_start sub_02019270 +sub_02019270: ; 0x02019270 + push {r3, lr} + ldrb r2, [r0, #0x4] + mov r1, #0x2c + ldr r3, [r0, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + lsl r2, r1, #0x2 + ldr r1, _02019288 ; =0x020EDB38 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + .balign 4 +_02019288: .word 0x020EDB38 + + thumb_func_start sub_0201928C +sub_0201928C: ; 0x0201928C + push {r4-r6, lr} + add r5, r0, #0x0 + ldrb r6, [r5, #0x7] + ldrb r4, [r5, #0x8] + strb r1, [r5, #0x7] + strb r2, [r5, #0x8] + ldrb r3, [r5, #0x4] + mov r2, #0x2c + ldr r1, [r5, #0x0] + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0x1c] + lsl r2, r1, #0x2 + ldr r1, _020192B4 ; =0x020EDB38 + ldr r1, [r1, r2] + blx r1 + strb r6, [r5, #0x7] + strb r4, [r5, #0x8] + pop {r4-r6, pc} + nop +_020192B4: .word 0x020EDB38 + + thumb_func_start sub_020192B8 +sub_020192B8: ; 0x020192B8 + push {r3, lr} + ldrb r2, [r0, #0x4] + mov r1, #0x2c + ldr r3, [r0, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + lsl r2, r1, #0x2 + ldr r1, _020192D0 ; =0x020EDB74 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + .balign 4 +_020192D0: .word 0x020EDB74 + + thumb_func_start sub_020192D4 +sub_020192D4: ; 0x020192D4 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldrb r1, [r5, #0x4] + mov r0, #0x2c + ldr r2, [r5, #0x0] + mul r0, r1 + add r0, r2, r0 + ldr r0, [r0, #0x8] + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _02019354 + ldrh r0, [r5, #0xa] + ldrb r1, [r5, #0x5] + lsl r0, r0, #0x11 + lsr r3, r0, #0x11 + ldrb r0, [r5, #0x7] + add r7, r1, r0 + ldrb r0, [r5, #0x6] + ldrb r1, [r5, #0x8] + mov r12, r0 + add r0, r0, r1 + mov r1, r12 + mov lr, r0 + cmp r1, r0 + bhs _02019354 +_02019308: + ldrb r2, [r5, #0x5] + cmp r2, r7 + bhs _02019348 + mov r0, r12 + lsl r0, r0, #0x1b + lsr r0, r0, #0x16 + lsl r1, r0, #0x1 + ldr r0, [sp, #0x4] + add r0, r0, r1 + mov r1, r12 + str r0, [sp, #0x0] + mov r0, #0x20 + add r6, r1, #0x0 + and r6, r0 +_02019324: + ldrb r0, [r5, #0x9] + mov r4, #0x20 + add r1, r3, #0x0 + lsl r0, r0, #0xc + and r4, r2 + orr r1, r0 + mov r0, #0x1f + add r4, r6, r4 + and r0, r2 + lsl r4, r4, #0x5 + add r0, r0, r4 + lsl r4, r0, #0x1 + ldr r0, [sp, #0x0] + add r2, r2, #0x1 + strh r1, [r0, r4] + add r3, r3, #0x1 + cmp r2, r7 + blo _02019324 +_02019348: + mov r0, r12 + add r1, r0, #0x1 + mov r0, lr + mov r12, r1 + cmp r1, r0 + blo _02019308 +_02019354: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02019358 +sub_02019358: ; 0x02019358 + push {r4-r7} + ldrb r3, [r0, #0x4] + mov r1, #0x2c + add r2, r3, #0x0 + mul r2, r1 + ldr r1, [r0, #0x0] + add r1, r1, r2 + ldr r3, [r1, #0x8] + cmp r3, #0x0 + beq _020193AC + ldrb r2, [r1, #0x1d] + ldr r1, _020193B0 ; =0x020EDB30 + ldrb r6, [r1, r2] + ldrb r1, [r0, #0x6] + add r2, r1, #0x0 + mul r2, r6 + add r2, r3, r2 + ldrb r1, [r0, #0x5] + mov r3, #0x0 + add r4, r2, r1 + ldrh r1, [r0, #0xa] + lsl r1, r1, #0x11 + lsr r5, r1, #0x11 + ldrb r1, [r0, #0x8] + cmp r1, #0x0 + ble _020193AC + add r1, r3, #0x0 +_0201938E: + ldrb r7, [r0, #0x7] + add r2, r1, #0x0 + cmp r7, #0x0 + ble _020193A2 +_02019396: + strb r5, [r4, r2] + ldrb r7, [r0, #0x7] + add r2, r2, #0x1 + add r5, r5, #0x1 + cmp r2, r7 + blt _02019396 +_020193A2: + ldrb r2, [r0, #0x8] + add r3, r3, #0x1 + add r4, r4, r6 + cmp r3, r2 + blt _0201938E +_020193AC: + pop {r4-r7} + bx lr + .balign 4 +_020193B0: .word 0x020EDB30 + + thumb_func_start sub_020193B4 +sub_020193B4: ; 0x020193B4 + push {r4-r7, lr} + sub sp, #0xc + ldrb r2, [r0, #0x4] + str r0, [sp, #0x0] + mov r0, #0x2c + add r1, r2, #0x0 + mul r1, r0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x0] + add r1, r0, r1 + ldr r0, [r1, #0x8] + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _0201943C + ldrb r1, [r1, #0x1d] + ldr r0, _02019440 ; =0x020EDB30 + ldrb r0, [r0, r1] + str r0, [sp, #0x8] + ldr r0, [sp, #0x0] + ldrb r1, [r0, #0x5] + ldrb r0, [r0, #0x7] + add r2, r1, r0 + ldr r0, [sp, #0x0] + ldrb r0, [r0, #0x6] + mov r12, r0 + ldr r0, [sp, #0x0] + ldrb r1, [r0, #0x8] + mov r0, r12 + add r0, r0, r1 + mov r1, r12 + mov lr, r0 + cmp r1, r0 + bhs _0201943C + mov r6, #0x0 + mov r7, #0x20 +_020193FA: + ldr r0, [sp, #0x0] + ldrb r1, [r0, #0x5] + cmp r1, r2 + bhs _02019430 + mov r3, r12 + mov r0, #0x1f + and r3, r0 + ldr r0, [sp, #0x8] + mul r0, r3 + lsl r3, r0, #0x1 + ldr r0, [sp, #0x4] + add r5, r0, r3 + mov r3, r12 + mov r0, #0x20 + and r3, r0 +_02019418: + add r4, r1, #0x0 + and r4, r7 + mov r0, #0x1f + add r4, r3, r4 + and r0, r1 + lsl r4, r4, #0x5 + add r0, r0, r4 + lsl r0, r0, #0x1 + add r1, r1, #0x1 + strh r6, [r5, r0] + cmp r1, r2 + blo _02019418 +_02019430: + mov r0, r12 + add r1, r0, #0x1 + mov r0, lr + mov r12, r1 + cmp r1, r0 + blo _020193FA +_0201943C: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02019440: .word 0x020EDB30 + + thumb_func_start sub_02019444 +sub_02019444: ; 0x02019444 + push {r4-r7} + ldrb r3, [r0, #0x4] + mov r1, #0x2c + add r2, r3, #0x0 + mul r2, r1 + ldr r1, [r0, #0x0] + add r1, r1, r2 + ldr r3, [r1, #0x8] + cmp r3, #0x0 + beq _02019492 + ldrb r2, [r1, #0x1d] + ldr r1, _02019498 ; =0x020EDB30 + mov r4, #0x0 + ldrb r6, [r1, r2] + ldrb r1, [r0, #0x6] + add r2, r1, #0x0 + mul r2, r6 + ldrb r1, [r0, #0x5] + add r2, r3, r2 + add r5, r2, r1 + ldrb r1, [r0, #0x8] + cmp r1, #0x0 + ble _02019492 + add r1, r4, #0x0 + add r2, r4, #0x0 +_02019476: + ldrb r7, [r0, #0x7] + add r3, r2, #0x0 + cmp r7, #0x0 + ble _02019488 +_0201947E: + strb r1, [r5, r3] + ldrb r7, [r0, #0x7] + add r3, r3, #0x1 + cmp r3, r7 + blt _0201947E +_02019488: + ldrb r3, [r0, #0x8] + add r4, r4, #0x1 + add r5, r5, r6 + cmp r4, r3 + blt _02019476 +_02019492: + pop {r4-r7} + bx lr + nop +_02019498: .word 0x020EDB30 + + thumb_func_start sub_0201949C +sub_0201949C: ; 0x0201949C + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_020192D4 + add r0, r4, #0x0 + bl sub_02019548 + ldrb r1, [r4, #0x4] + mov r0, #0x2c + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [r4, #0x0] + add r3, r0, r2 + ldr r2, [r3, #0x10] + str r2, [sp, #0x0] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl sub_02017CE8 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_020194C8 +sub_020194C8: ; 0x020194C8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020192D4 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl sub_0201AC68 + add r0, r4, #0x0 + bl sub_02019548 + pop {r4, pc} + + thumb_func_start sub_020194E0 +sub_020194E0: ; 0x020194E0 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02019358 + ldrb r1, [r4, #0x4] + mov r0, #0x2c + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [r4, #0x0] + add r3, r0, r2 + ldr r2, [r3, #0x10] + str r2, [sp, #0x0] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl sub_02017CE8 + ldrh r0, [r4, #0xa] + lsl r0, r0, #0x11 + lsr r0, r0, #0x11 + str r0, [sp, #0x0] + ldrb r5, [r4, #0x7] + ldrb r3, [r4, #0x8] + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + mul r3, r5 + ldr r2, [r4, #0xc] + lsl r3, r3, #0x6 + bl sub_02017E14 + pop {r3-r5, pc} + + thumb_func_start sub_0201951C +sub_0201951C: ; 0x0201951C + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02019358 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl sub_0201AC68 + ldrh r0, [r4, #0xa] + lsl r0, r0, #0x11 + lsr r0, r0, #0x11 + str r0, [sp, #0x0] + ldrb r5, [r4, #0x7] + ldrb r3, [r4, #0x8] + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + mul r3, r5 + ldr r2, [r4, #0xc] + lsl r3, r3, #0x6 + bl sub_02017E14 + pop {r3-r5, pc} + + thumb_func_start sub_02019548 +sub_02019548: ; 0x02019548 + push {r3-r5, lr} + add r3, r0, #0x0 + ldrh r2, [r3, #0xa] + ldrb r1, [r3, #0x4] + mov r4, #0x2c + lsl r2, r2, #0x11 + ldr r0, [r3, #0x0] + lsr r2, r2, #0x11 + str r2, [sp, #0x0] + mul r4, r1 + add r4, r0, r4 + ldr r2, [r3, #0xc] + ldrb r5, [r3, #0x7] + ldrb r3, [r3, #0x8] + ldrb r4, [r4, #0x1f] + mul r3, r5 + mul r3, r4 + bl sub_02017E14 + pop {r3-r5, pc} + + thumb_func_start sub_02019570 +sub_02019570: ; 0x02019570 + push {r3, lr} + ldrb r2, [r0, #0x4] + mov r1, #0x2c + ldr r3, [r0, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + lsl r2, r1, #0x2 + ldr r1, _02019588 ; =0x020EDB50 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + .balign 4 +_02019588: .word 0x020EDB50 + + thumb_func_start sub_0201958C +sub_0201958C: ; 0x0201958C + push {r3, lr} + ldrb r2, [r0, #0x4] + mov r1, #0x2c + ldr r3, [r0, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + lsl r2, r1, #0x2 + ldr r1, _020195A4 ; =0x020EDB44 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + .balign 4 +_020195A4: .word 0x020EDB44 + + thumb_func_start sub_020195A8 +sub_020195A8: ; 0x020195A8 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_020193B4 + ldrb r1, [r4, #0x4] + mov r0, #0x2c + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [r4, #0x0] + add r3, r0, r2 + ldr r2, [r3, #0x10] + str r2, [sp, #0x0] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl sub_02017CE8 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_020195D0 +sub_020195D0: ; 0x020195D0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020193B4 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl sub_0201AC68 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020195E4 +sub_020195E4: ; 0x020195E4 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_02019444 + ldrb r1, [r4, #0x4] + mov r0, #0x2c + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [r4, #0x0] + add r3, r0, r2 + ldr r2, [r3, #0x10] + str r2, [sp, #0x0] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl sub_02017CE8 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0201960C +sub_0201960C: ; 0x0201960C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02019444 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl sub_0201AC68 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02019620 +sub_02019620: ; 0x02019620 + push {r3-r5, lr} + add r4, r0, #0x0 + ldrb r2, [r4, #0x4] + mov r0, #0x2c + ldr r3, [r4, #0x0] + mul r0, r2 + add r0, r3, r0 + ldrb r2, [r0, #0x1f] + cmp r2, #0x20 + bne _0201963C + lsl r0, r1, #0x4 + orr r0, r1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 +_0201963C: + lsl r3, r1, #0x18 + lsl r0, r1, #0x10 + orr r0, r3 + lsl r5, r1, #0x8 + orr r0, r5 + orr r0, r1 + ldr r1, [r4, #0xc] + ldrb r3, [r4, #0x8] + ldrb r4, [r4, #0x7] + mul r2, r4 + mul r2, r3 + blx sub_020CE240 + pop {r3-r5, pc} + + thumb_func_start sub_02019658 +sub_02019658: ; 0x02019658 + push {r4-r5, lr} + sub sp, #0x1c + add r4, sp, #0x18 + ldrh r5, [r4, #0x10] + str r5, [sp, #0x0] + ldrh r5, [r4, #0x14] + str r5, [sp, #0x4] + ldrh r5, [r4, #0x18] + str r5, [sp, #0x8] + ldrh r5, [r4, #0x1c] + str r5, [sp, #0xc] + ldrh r5, [r4, #0x20] + str r5, [sp, #0x10] + ldrh r4, [r4, #0x24] + str r4, [sp, #0x14] + mov r4, #0x0 + str r4, [sp, #0x18] + bl sub_02019684 + add sp, #0x1c + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_02019684 +sub_02019684: ; 0x02019684 + push {r4-r5, lr} + sub sp, #0x24 + str r1, [sp, #0x1c] + add r4, sp, #0x20 + ldrh r5, [r4, #0x10] + add r1, sp, #0x14 + strh r5, [r1, #0xc] + ldrh r5, [r4, #0x14] + strh r5, [r1, #0xe] + ldr r5, [r0, #0xc] + str r5, [sp, #0x14] + ldrb r5, [r0, #0x7] + lsl r5, r5, #0x3 + strh r5, [r1, #0x4] + ldrb r5, [r0, #0x8] + lsl r5, r5, #0x3 + strh r5, [r1, #0x6] + ldrb r5, [r0, #0x4] + ldr r1, [r0, #0x0] + mov r0, #0x2c + mul r0, r5 + add r0, r1, r0 + ldrb r0, [r0, #0x1e] + add r1, sp, #0x14 + cmp r0, #0x0 + ldrh r0, [r4, #0x18] + bne _020196D6 + str r0, [sp, #0x0] + ldrh r0, [r4, #0x1c] + str r0, [sp, #0x4] + ldrh r0, [r4, #0x20] + str r0, [sp, #0x8] + ldrh r0, [r4, #0x24] + str r0, [sp, #0xc] + ldrh r0, [r4, #0x28] + str r0, [sp, #0x10] + add r0, sp, #0x1c + bl sub_02018A60 + add sp, #0x24 + pop {r4-r5, pc} +_020196D6: + str r0, [sp, #0x0] + ldrh r0, [r4, #0x1c] + str r0, [sp, #0x4] + ldrh r0, [r4, #0x20] + str r0, [sp, #0x8] + ldrh r0, [r4, #0x24] + str r0, [sp, #0xc] + ldrh r0, [r4, #0x28] + str r0, [sp, #0x10] + add r0, sp, #0x1c + bl sub_02018CA0 + add sp, #0x24 + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_020196F4 +sub_020196F4: ; 0x020196F4 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r1, #0x0 + ldr r1, [r0, #0xc] + add r4, r2, #0x0 + str r1, [sp, #0x8] + ldrb r1, [r0, #0x7] + add r2, r3, #0x0 + lsl r3, r1, #0x3 + add r1, sp, #0x8 + strh r3, [r1, #0x4] + ldrb r3, [r0, #0x8] + lsl r3, r3, #0x3 + strh r3, [r1, #0x6] + ldrb r3, [r0, #0x4] + ldr r1, [r0, #0x0] + mov r0, #0x2c + mul r0, r3 + add r0, r1, r0 + ldrb r0, [r0, #0x1e] + add r3, sp, #0x10 + cmp r0, #0x0 + bne _02019736 + ldrh r0, [r3, #0x14] + add r1, r4, #0x0 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldrh r3, [r3, #0x10] + add r0, sp, #0x8 + bl sub_02018E88 + add sp, #0x10 + pop {r3-r5, pc} +_02019736: + ldrh r0, [r3, #0x14] + add r1, r4, #0x0 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldrh r3, [r3, #0x10] + add r0, sp, #0x8 + bl sub_02018F4C + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201974C +sub_0201974C: ; 0x0201974C + push {r4-r7, lr} + sub sp, #0x1fc + sub sp, #0x118 + add r5, r0, #0x0 + ldr r0, [sp, #0x330] + str r1, [sp, #0x0] + str r0, [sp, #0x330] + add r1, sp, #0x318 + ldrh r1, [r1, #0x10] + ldr r0, [r5, #0xc] + str r1, [sp, #0x5c] + ldrb r1, [r5, #0x7] + str r0, [sp, #0x278] + ldrb r0, [r5, #0x8] + lsl r1, r1, #0x13 + lsr r4, r1, #0x10 + ldr r1, [sp, #0x5c] + lsl r0, r0, #0x13 + sub r1, r4, r1 + lsr r0, r0, #0x10 + str r4, [sp, #0x58] + str r1, [sp, #0x8] + cmp r1, r2 + blt _0201977E + str r2, [sp, #0x8] +_0201977E: + add r1, sp, #0x318 + ldrh r1, [r1, #0x14] + sub r0, r0, r1 + str r1, [sp, #0x48] + str r0, [sp, #0x4] + cmp r0, r3 + blt _0201978E + str r3, [sp, #0x4] +_0201978E: + ldr r0, [sp, #0x8] + mov r4, #0x0 + cmp r0, #0x8 + ble _0201979E + mov r0, #0x1 + orr r0, r4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_0201979E: + ldr r0, [sp, #0x4] + cmp r0, #0x8 + ble _020197AC + mov r0, #0x2 + orr r0, r4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_020197AC: + ldrh r0, [r5, #0xa] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1f + beq _020197B8 + bl sub_0201A12C +_020197B8: + cmp r4, #0x3 + bls _020197C0 + bl sub_0201A8BC +_020197C0: + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r1, #0x4 + lsl r0, r3, #0xc + lsl r0, r7, #0x14 + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x70] + mov r0, #0x0 + str r0, [sp, #0x274] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bgt _020197EA + bl sub_0201A8BC +_020197EA: + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x6c] +_020197F6: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x70] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x26c] + ldr r0, [sp, #0x274] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x270] + ldr r0, [sp, #0x8] + mov r1, #0x0 + cmp r0, #0x0 + ble _020198AA + ble _020198AA + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x6c] + lsl r5, r0, #0x2 + ldr r0, _02019B68 ; =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0x68] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, _02019B68 ; =0x00003FE0 + ldr r5, [sp, #0x6c] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0x64] + str r0, [sp, #0x60] +_02019848: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, _02019B68 ; =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0x68] + str r5, [sp, #0x27c] + add r0, r5, r0 + ldr r5, [sp, #0x26c] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _0201989C + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x280] + ldrb r5, [r0, r7] + str r5, [sp, #0x284] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x284] + and r6, r5 + ldr r5, [sp, #0x280] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x270] + cmp r0, #0x0 + beq _0201989C + ldr r6, [sp, #0x27c] + ldr r0, [sp, #0x64] + add r6, r6, r0 + ldr r0, [sp, #0x60] + strb r5, [r0, r6] +_0201989C: + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019848 +_020198AA: + ldr r0, [sp, #0x270] + cmp r0, #0x0 + beq _020198B8 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _020198BE +_020198B8: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_020198BE: + ldr r0, [sp, #0x0] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x274] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x274] + cmp r1, r0 + blt _020197F6 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_020198D6: + .byte 0x00, 0x98, 0x97, 0x90, 0x12, 0x98, 0x99, 0x90, 0xCC, 0x98 + .byte 0x00, 0x06, 0x00, 0x0E, 0x15, 0x90, 0x00, 0x06, 0x00, 0x0E, 0x21, 0x90, 0x00, 0x20, 0x9A, 0x90 + .byte 0x01, 0x98, 0x00, 0x28, 0x6D, 0xDD, 0x16, 0x98, 0x07, 0x21, 0x01, 0x40, 0x40, 0x18, 0xC0, 0x10 + .byte 0x20, 0x90, 0x97, 0x98, 0x21, 0x99, 0x00, 0x68, 0x17, 0x9A, 0x96, 0x90, 0x9A, 0x98, 0x20, 0x9E + .byte 0x01, 0x41, 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0x98, 0x90, 0x10, 0x1C, 0x83, 0x00 + .byte 0x99, 0x98, 0x00, 0x21, 0x85, 0x00, 0x90, 0x48, 0x2F, 0x1C, 0x28, 0x40, 0x46, 0x43, 0x1C, 0x20 + .byte 0x07, 0x40, 0x99, 0x98, 0x1F, 0x96, 0x40, 0x1C, 0x86, 0x00, 0x8B, 0x48, 0x20, 0x9D, 0x30, 0x40 + .byte 0x45, 0x43, 0x1C, 0x20, 0x30, 0x40, 0x0C, 0x1C, 0x1E, 0x95, 0x1D, 0x90, 0x55, 0x10, 0x03, 0x20 + .byte 0x05, 0x40, 0x9E, 0x98, 0x40, 0x19, 0x84, 0x4D, 0x1D, 0x40, 0x45, 0x19, 0x1F, 0x98, 0xA2, 0x95 + .byte 0x28, 0x18, 0x96, 0x9D, 0x2E, 0x1C, 0xE6, 0x40, 0x0F, 0x25, 0x35, 0x40, 0x2D, 0x06, 0x2D, 0x0E + .byte 0x16, 0xD0, 0xD6, 0x07, 0x76, 0x0F, 0xB5, 0x40, 0xA3, 0x95, 0xC5, 0x5D, 0xA4, 0x95, 0xF0, 0x25 + .byte 0x35, 0x41, 0xA4, 0x9E, 0x2E, 0x40, 0xA3, 0x9D, 0x35, 0x43, 0x2D, 0x06, 0x2D, 0x0E, 0xC5, 0x55 + .byte 0x98, 0x98, 0x00, 0x28, 0x04, 0xD0, 0xA2, 0x9E, 0x1E, 0x98, 0x36, 0x18, 0x1D, 0x98, 0x85, 0x55 + .byte 0x49, 0x1C, 0x24, 0x1D, 0x1B, 0x1D, 0x52, 0x1C, 0x08, 0x29, 0xCF, 0xDB, 0x98, 0x98, 0x00, 0x28 + .byte 0x03, 0xD0, 0x99, 0x98, 0x80, 0x1C, 0x99, 0x90, 0x02, 0xE0, 0x99, 0x98, 0x40, 0x1C, 0x99, 0x90 + .byte 0x97, 0x98, 0x00, 0x1D, 0x97, 0x90, 0x9A, 0x98, 0x41, 0x1C, 0x01, 0x98, 0x9A, 0x91, 0x81, 0x42 + .byte 0x97, 0xDB, 0x00, 0x98, 0x20, 0x30, 0x00, 0x90, 0x15, 0x98, 0x00, 0x06, 0x00, 0x0E, 0x26, 0x90 + .byte 0x00, 0x20, 0x95, 0x90, 0x01, 0x98, 0x00, 0x28, 0x01, 0xDC, 0x00, 0xF0, 0x67, 0xFF, 0x17, 0x98 + .byte 0x07, 0x21, 0x08, 0x30, 0x17, 0x90, 0x16, 0x98, 0x01, 0x40, 0x40, 0x18, 0xC0, 0x10, 0x25, 0x90 + .byte 0x00, 0x98, 0x26, 0x99, 0x00, 0x68, 0x17, 0x9A, 0x93, 0x90, 0x95, 0x98, 0x01, 0x41, 0x01, 0x20 + .byte 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0x94, 0x90, 0x02, 0x98, 0x00, 0x21, 0xA5, 0x90, 0x08, 0x38 + .byte 0xA5, 0x90, 0x00, 0x28, 0x49, 0xDD, 0x48, 0xDD, 0x10, 0x1C, 0x83, 0x00, 0x12, 0x98, 0x25, 0x9E + .byte 0x85, 0x00, 0x4D, 0x48, 0x2F, 0x1C, 0x28, 0x40, 0x46, 0x43, 0x1C, 0x20, 0x07, 0x40, 0x12, 0x98 + .byte 0x24, 0x96, 0x40, 0x1C, 0x86, 0x00, 0x48, 0x48, 0x25, 0x9D, 0x30, 0x40, 0x45, 0x43, 0x1C, 0x20 + .byte 0x30, 0x40, 0x0C, 0x1C, 0x23, 0x95, 0x22, 0x90, 0x55, 0x10, 0x03, 0x20, 0x05, 0x40, 0x9E, 0x98 + .byte 0x40, 0x19, 0x41, 0x4D, 0x1D, 0x40, 0x45, 0x19, 0x24, 0x98, 0xA6, 0x95, 0x28, 0x18, 0x93, 0x9D + .byte 0x2E, 0x1C, 0xE6, 0x40, 0x0F, 0x25, 0x35, 0x40, 0x2D, 0x06, 0x2D, 0x0E, 0x16, 0xD0, 0xD6, 0x07 + .byte 0x76, 0x0F, 0xB5, 0x40, 0xA7, 0x95, 0xC5, 0x5D, 0xA8, 0x95, 0xF0, 0x25, 0x35, 0x41, 0xA8, 0x9E + .byte 0x2E, 0x40, 0xA7, 0x9D, 0x35, 0x43, 0x2D, 0x06, 0x2D, 0x0E, 0xC5, 0x55, 0x94, 0x98, 0x00, 0x28 + .byte 0x04, 0xD0, 0xA6, 0x9E, 0x23, 0x98, 0x36, 0x18, 0x22, 0x98, 0x85, 0x55, 0xA5, 0x98, 0x49, 0x1C + .byte 0x24, 0x1D, 0x1B, 0x1D, 0x52, 0x1C, 0x81, 0x42, 0xCE, 0xDB, 0x94, 0x98, 0x00, 0x28, 0x03, 0xD0 + .byte 0x12, 0x98, 0x80, 0x1C, 0x12, 0x90, 0x02, 0xE0, 0x12, 0x98, 0x40, 0x1C, 0x12, 0x90, 0x00, 0x98 + .byte 0x00, 0x1D, 0x00, 0x90, 0x95, 0x98, 0x41, 0x1C, 0x01, 0x98, 0x95, 0x91, 0x81, 0x42, 0x8F, 0xDB + .byte 0x7F, 0xB0, 0x46, 0xB0, 0xF0, 0xBD, 0x00, 0x98, 0x07, 0x21, 0x8F, 0x90, 0x12, 0x98, 0x91, 0x90 + .byte 0x00, 0x20, 0x92, 0x90, 0xCC, 0x98, 0x00, 0x06, 0x00, 0x0E, 0x2A, 0x90, 0x16, 0x98, 0x01, 0x40 + .byte 0x40, 0x18, 0xC0, 0x10, 0x10, 0x90, 0x8F, 0x98, 0x2A, 0x99, 0x00, 0x68, 0x17, 0x9A, 0x8E, 0x90 + .byte 0x92, 0x98, 0x01, 0x41, 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0x90, 0x90, 0x02, 0x98 + .byte 0x00, 0x21, 0x00, 0x28, 0x4D, 0xDD, 0x4C, 0xDD, 0x10, 0x1C, 0x83, 0x00, 0x91, 0x98, 0x10, 0x9E + .byte 0x85, 0x00, 0x0D, 0x48, 0x2F, 0x1C, 0x28, 0x40, 0x46, 0x43, 0x1C, 0x20, 0x07, 0x40, 0x91, 0x98 + .byte 0x29, 0x96, 0x40, 0x1C, 0x86, 0x00, 0x08, 0x48, 0x10, 0x9D, 0x30, 0x40, 0x45, 0x43, 0x1C, 0x20 + .byte 0x30, 0x40, 0x0C, 0x1C, 0x28, 0x95, 0x27, 0x90, 0x55, 0x10, 0x03, 0x20, 0x05, 0x40, 0x9E, 0x98 + .byte 0x40, 0x19, 0x01, 0x4D, 0x02, 0xE0, 0xC0, 0x46 +_02019B68: .word 0x00003FE0 +_02019B6C: + .byte 0x1D, 0x40, 0x45, 0x19 + .byte 0x29, 0x98, 0xA9, 0x95, 0x28, 0x18, 0x8E, 0x9D, 0x2E, 0x1C, 0xE6, 0x40, 0x0F, 0x25, 0x35, 0x40 + .byte 0x2D, 0x06, 0x2D, 0x0E, 0x16, 0xD0, 0xD6, 0x07, 0x76, 0x0F, 0xB5, 0x40, 0xAA, 0x95, 0xC5, 0x5D + .byte 0xAB, 0x95, 0xF0, 0x25, 0x35, 0x41, 0xAB, 0x9E, 0x2E, 0x40, 0xAA, 0x9D, 0x35, 0x43, 0x2D, 0x06 + .byte 0x2D, 0x0E, 0xC5, 0x55, 0x90, 0x98, 0x00, 0x28, 0x04, 0xD0, 0xA9, 0x9E, 0x28, 0x98, 0x36, 0x18 + .byte 0x27, 0x98, 0x85, 0x55, 0x02, 0x98, 0x49, 0x1C, 0x24, 0x1D, 0x1B, 0x1D, 0x52, 0x1C, 0x81, 0x42 + .byte 0xCA, 0xDB, 0x90, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x91, 0x98, 0x80, 0x1C, 0x91, 0x90, 0x02, 0xE0 + .byte 0x91, 0x98, 0x40, 0x1C, 0x91, 0x90, 0x8F, 0x98, 0x00, 0x1D, 0x8F, 0x90, 0x92, 0x98, 0x40, 0x1C + .byte 0x92, 0x90, 0x08, 0x28, 0x8F, 0xDB, 0x00, 0x98, 0x00, 0x22, 0x40, 0x30, 0x00, 0x90, 0x12, 0x98 + .byte 0x01, 0x21, 0x08, 0x30, 0x12, 0x90, 0xCC, 0x98, 0x10, 0x41, 0x08, 0x42, 0x02, 0xD0, 0x12, 0x98 + .byte 0x40, 0x1C, 0x12, 0x90, 0x52, 0x1C, 0x08, 0x2A, 0xF5, 0xDB, 0xCC, 0x98, 0x00, 0x12, 0x00, 0x06 + .byte 0x00, 0x0E, 0x2E, 0x90, 0x00, 0x20, 0x08, 0x90, 0x01, 0x98, 0x08, 0x38, 0x00, 0x28, 0x01, 0xDC + .byte 0x00, 0xF0, 0x4C, 0xFE, 0x00, 0x98, 0x2E, 0x99, 0x00, 0x68, 0x17, 0x9A, 0x8C, 0x90, 0x08, 0x98 + .byte 0x01, 0x41, 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0x8D, 0x90, 0x02, 0x98, 0x00, 0x21 + .byte 0x00, 0x28, 0x49, 0xDD, 0x48, 0xDD, 0x10, 0x1C, 0x83, 0x00, 0x12, 0x98, 0x10, 0x9E, 0x85, 0x00 + .byte 0xCD, 0x48, 0x2F, 0x1C, 0x28, 0x40, 0x46, 0x43, 0x1C, 0x20, 0x07, 0x40, 0x12, 0x98, 0x2D, 0x96 + .byte 0x40, 0x1C, 0x86, 0x00, 0xC8, 0x48, 0x10, 0x9D, 0x30, 0x40, 0x45, 0x43, 0x1C, 0x20, 0x30, 0x40 + .byte 0x0C, 0x1C, 0x2C, 0x95, 0x2B, 0x90, 0x55, 0x10, 0x03, 0x20, 0x05, 0x40, 0x9E, 0x98, 0x40, 0x19 + .byte 0xC1, 0x4D, 0x1D, 0x40, 0x45, 0x19, 0x2D, 0x98, 0xAC, 0x95, 0x28, 0x18, 0x8C, 0x9D, 0x2E, 0x1C + .byte 0xE6, 0x40, 0x0F, 0x25, 0x35, 0x40, 0x2D, 0x06, 0x2D, 0x0E, 0x16, 0xD0, 0xD6, 0x07, 0x76, 0x0F + .byte 0xB5, 0x40, 0xAD, 0x95, 0xC5, 0x5D, 0xAE, 0x95, 0xF0, 0x25, 0x35, 0x41, 0xAE, 0x9E, 0x2E, 0x40 + .byte 0xAD, 0x9D, 0x35, 0x43, 0x2D, 0x06, 0x2D, 0x0E, 0xC5, 0x55, 0x8D, 0x98, 0x00, 0x28, 0x04, 0xD0 + .byte 0xAC, 0x9E, 0x2C, 0x98, 0x36, 0x18, 0x2B, 0x98, 0x85, 0x55, 0x02, 0x98, 0x49, 0x1C, 0x24, 0x1D + .byte 0x1B, 0x1D, 0x52, 0x1C, 0x81, 0x42, 0xCE, 0xDB, 0x8D, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x12, 0x98 + .byte 0x80, 0x1C, 0x12, 0x90, 0x02, 0xE0, 0x12, 0x98, 0x40, 0x1C, 0x12, 0x90, 0x00, 0x98, 0x01, 0x99 + .byte 0x00, 0x1D, 0x00, 0x90, 0x08, 0x98, 0x08, 0x39, 0x40, 0x1C, 0x08, 0x90, 0x88, 0x42, 0x91, 0xDB + .byte 0x7F, 0xB0, 0x46, 0xB0, 0xF0, 0xBD, 0x00, 0x98, 0x88, 0x90, 0x12, 0x98, 0x8A, 0x90, 0xCC, 0x98 + .byte 0x00, 0x06, 0x01, 0x0E, 0x00, 0x20, 0x8B, 0x90, 0x08, 0x06, 0x00, 0x0E, 0x0F, 0x90, 0x16, 0x98 + .byte 0x07, 0x21, 0x01, 0x40, 0x40, 0x18, 0xC0, 0x10, 0x0E, 0x90, 0x88, 0x98, 0x0F, 0x99, 0x00, 0x68 + .byte 0x17, 0x9A, 0x87, 0x90, 0x8B, 0x98, 0x0E, 0x9E, 0x01, 0x41, 0x01, 0x20, 0x08, 0x40, 0x00, 0x06 + .byte 0x00, 0x0E, 0x89, 0x90, 0x10, 0x1C, 0x83, 0x00, 0x8A, 0x98, 0x00, 0x21, 0x85, 0x00, 0x8E, 0x48 + .byte 0x2F, 0x1C, 0x28, 0x40, 0x46, 0x43, 0x1C, 0x20, 0x07, 0x40, 0x8A, 0x98, 0x31, 0x96, 0x40, 0x1C + .byte 0x86, 0x00, 0x89, 0x48, 0x0E, 0x9D, 0x30, 0x40, 0x45, 0x43, 0x1C, 0x20, 0x30, 0x40, 0x0D, 0x93 + .byte 0x0C, 0x1C, 0x30, 0x95, 0x2F, 0x90, 0x55, 0x10, 0x03, 0x20, 0x05, 0x40, 0x9E, 0x98, 0x40, 0x19 + .byte 0x81, 0x4D, 0x1D, 0x40, 0x45, 0x19, 0x31, 0x98, 0xAF, 0x95, 0x28, 0x18, 0x87, 0x9D, 0x2E, 0x1C + .byte 0xE6, 0x40, 0x0F, 0x25, 0x35, 0x40, 0x2D, 0x06, 0x2D, 0x0E, 0x16, 0xD0, 0xD6, 0x07, 0x76, 0x0F + .byte 0xB5, 0x40, 0xB0, 0x95, 0xC5, 0x5D, 0xB1, 0x95, 0xF0, 0x25, 0x35, 0x41, 0xB1, 0x9E, 0x2E, 0x40 + .byte 0xB0, 0x9D, 0x35, 0x43, 0x2D, 0x06, 0x2D, 0x0E, 0xC5, 0x55, 0x89, 0x98, 0x00, 0x28, 0x04, 0xD0 + .byte 0xAF, 0x9E, 0x30, 0x98, 0x36, 0x18, 0x2F, 0x98, 0x85, 0x55, 0x49, 0x1C, 0x24, 0x1D, 0x1B, 0x1D + .byte 0x52, 0x1C, 0x08, 0x29, 0xCF, 0xDB, 0x89, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x8A, 0x98, 0x80, 0x1C + .byte 0x8A, 0x90, 0x02, 0xE0, 0x8A, 0x98, 0x40, 0x1C, 0x8A, 0x90, 0x88, 0x98, 0x00, 0x1D, 0x88, 0x90 + .byte 0x8B, 0x98, 0x40, 0x1C, 0x8B, 0x90, 0x08, 0x28, 0x97, 0xDB, 0x00, 0x98, 0x83, 0x90, 0x20, 0x30 + .byte 0x83, 0x90, 0x12, 0x98, 0x85, 0x90, 0x00, 0x20, 0x86, 0x90, 0x17, 0x98, 0x35, 0x90, 0x08, 0x30 + .byte 0x35, 0x90, 0x83, 0x98, 0x0F, 0x99, 0x00, 0x68, 0x35, 0x9A, 0x82, 0x90, 0x86, 0x98, 0x01, 0x41 + .byte 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0x84, 0x90, 0x02, 0x98, 0x00, 0x21, 0xB2, 0x90 + .byte 0x08, 0x38, 0xB2, 0x90, 0x00, 0x28, 0x49, 0xDD, 0x48, 0xDD, 0x10, 0x1C, 0x83, 0x00, 0x85, 0x98 + .byte 0x0E, 0x9E, 0x85, 0x00, 0x50, 0x48, 0x2F, 0x1C, 0x28, 0x40, 0x46, 0x43, 0x1C, 0x20, 0x07, 0x40 + .byte 0x85, 0x98, 0x34, 0x96, 0x40, 0x1C, 0x86, 0x00, 0x4B, 0x48, 0x0E, 0x9D, 0x30, 0x40, 0x45, 0x43 + .byte 0x1C, 0x20, 0x30, 0x40, 0x0C, 0x1C, 0x33, 0x95, 0x32, 0x90, 0x55, 0x10, 0x03, 0x20, 0x05, 0x40 + .byte 0x9E, 0x98, 0x40, 0x19, 0x44, 0x4D, 0x1D, 0x40, 0x45, 0x19, 0x34, 0x98, 0xB3, 0x95, 0x28, 0x18 + .byte 0x82, 0x9D, 0x2E, 0x1C, 0xE6, 0x40, 0x0F, 0x25, 0x35, 0x40, 0x2D, 0x06, 0x2D, 0x0E, 0x16, 0xD0 + .byte 0xD6, 0x07, 0x76, 0x0F, 0xB5, 0x40, 0xB4, 0x95, 0xC5, 0x5D, 0xB5, 0x95, 0xF0, 0x25, 0x35, 0x41 + .byte 0xB5, 0x9E, 0x2E, 0x40, 0xB4, 0x9D, 0x35, 0x43, 0x2D, 0x06, 0x2D, 0x0E, 0xC5, 0x55, 0x84, 0x98 + .byte 0x00, 0x28, 0x04, 0xD0, 0xB3, 0x9E, 0x33, 0x98, 0x36, 0x18, 0x32, 0x98, 0x85, 0x55, 0xB2, 0x98 + .byte 0x49, 0x1C, 0x24, 0x1D, 0x1B, 0x1D, 0x52, 0x1C, 0x81, 0x42, 0xCE, 0xDB, 0x84, 0x98, 0x00, 0x28 + .byte 0x03, 0xD0, 0x85, 0x98, 0x80, 0x1C, 0x85, 0x90, 0x02, 0xE0, 0x85, 0x98, 0x40, 0x1C, 0x85, 0x90 + .byte 0x83, 0x98, 0x00, 0x1D, 0x83, 0x90, 0x86, 0x98, 0x40, 0x1C, 0x86, 0x90, 0x08, 0x28, 0x90, 0xDB + .byte 0x00, 0x98, 0x00, 0x22, 0x7F, 0x90, 0x40, 0x30, 0x7F, 0x90, 0x12, 0x98, 0x01, 0x21, 0x08, 0x30 + .byte 0x12, 0x90, 0x81, 0x90, 0xCC, 0x98, 0x10, 0x41, 0x08, 0x42, 0x02, 0xD0, 0x81, 0x98, 0x40, 0x1C + .byte 0x81, 0x90, 0x52, 0x1C, 0x08, 0x2A, 0xF5, 0xDB, 0xCC, 0x98, 0x00, 0x12, 0x14, 0x90, 0x00, 0x06 + .byte 0x00, 0x0E, 0x39, 0x90, 0x00, 0x20, 0x07, 0x90, 0x01, 0x98, 0x08, 0x38, 0x00, 0x28, 0x6B, 0xDD + .byte 0x7F, 0x98, 0x39, 0x99, 0x00, 0x68, 0x0E, 0x9E, 0x7E, 0x90, 0x07, 0x98, 0x17, 0x9A, 0x01, 0x41 + .byte 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0x80, 0x90, 0x81, 0x98, 0x00, 0x21, 0x85, 0x00 + .byte 0x0D, 0x48, 0x2F, 0x1C, 0x28, 0x40, 0x46, 0x43, 0x1C, 0x20, 0x07, 0x40, 0x81, 0x98, 0x38, 0x96 + .byte 0x40, 0x1C, 0x86, 0x00, 0x08, 0x48, 0x0E, 0x9D, 0x30, 0x40, 0x45, 0x43, 0x1C, 0x20, 0x30, 0x40 + .byte 0x0D, 0x9B, 0x0C, 0x1C, 0x37, 0x95, 0x36, 0x90, 0x55, 0x10, 0x03, 0x20, 0x05, 0x40, 0x9E, 0x98 + .byte 0x40, 0x19, 0x01, 0x4D, 0x02, 0xE0, 0xC0, 0x46, 0xE0, 0x3F, 0x00, 0x00, 0x1D, 0x40, 0x45, 0x19 + .byte 0x38, 0x98, 0xB6, 0x95, 0x28, 0x18, 0x7E, 0x9D, 0x2E, 0x1C, 0xE6, 0x40, 0x0F, 0x25, 0x35, 0x40 + .byte 0x2D, 0x06, 0x2D, 0x0E, 0x16, 0xD0, 0xD6, 0x07, 0x76, 0x0F, 0xB5, 0x40, 0xB7, 0x95, 0xC5, 0x5D + .byte 0xB8, 0x95, 0xF0, 0x25, 0x35, 0x41, 0xB8, 0x9E, 0x2E, 0x40, 0xB7, 0x9D, 0x35, 0x43, 0x2D, 0x06 + .byte 0x2D, 0x0E, 0xC5, 0x55, 0x80, 0x98, 0x00, 0x28, 0x04, 0xD0, 0xB6, 0x9E, 0x37, 0x98, 0x36, 0x18 + .byte 0x36, 0x98, 0x85, 0x55, 0x49, 0x1C, 0x24, 0x1D, 0x1B, 0x1D, 0x52, 0x1C, 0x08, 0x29, 0xCB, 0xDB + .byte 0x80, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x81, 0x98, 0x80, 0x1C, 0x81, 0x90, 0x02, 0xE0, 0x81, 0x98 + .byte 0x40, 0x1C, 0x81, 0x90, 0x7F, 0x98, 0x01, 0x99, 0x00, 0x1D, 0x7F, 0x90, 0x07, 0x98, 0x08, 0x39 + .byte 0x40, 0x1C, 0x07, 0x90, 0x88, 0x42, 0x93, 0xDB, 0x00, 0x98, 0x00, 0x22, 0x60, 0x30, 0x00, 0x90 + .byte 0x01, 0x21, 0xCC, 0x98, 0x10, 0x41, 0x08, 0x42, 0x02, 0xD0, 0x12, 0x98, 0x40, 0x1C, 0x12, 0x90 + .byte 0x52, 0x1C, 0x08, 0x2A, 0xF5, 0xDB, 0x14, 0x98, 0x00, 0x06, 0x00, 0x0E, 0x3D, 0x90, 0x00, 0x20 + .byte 0x06, 0x90, 0x01, 0x98, 0x08, 0x38, 0x00, 0x28, 0x01, 0xDC, 0x00, 0xF0, 0x3F, 0xFC, 0x17, 0x98 + .byte 0x08, 0x30, 0x17, 0x90, 0x00, 0x98, 0x3D, 0x99, 0x00, 0x68, 0x17, 0x9A, 0x7C, 0x90, 0x06, 0x98 + .byte 0x01, 0x41, 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0x7D, 0x90, 0x02, 0x98, 0x00, 0x21 + .byte 0xB9, 0x90, 0x08, 0x38, 0xB9, 0x90, 0x00, 0x28, 0x49, 0xDD, 0x48, 0xDD, 0x10, 0x1C, 0x83, 0x00 + .byte 0x12, 0x98, 0x0E, 0x9E, 0x85, 0x00, 0xCC, 0x48, 0x2F, 0x1C, 0x28, 0x40, 0x46, 0x43, 0x1C, 0x20 + .byte 0x07, 0x40, 0x12, 0x98, 0x3C, 0x96, 0x40, 0x1C, 0x86, 0x00, 0xC7, 0x48, 0x0E, 0x9D, 0x30, 0x40 + .byte 0x45, 0x43, 0x1C, 0x20, 0x30, 0x40, 0x0C, 0x1C, 0x3B, 0x95, 0x3A, 0x90, 0x55, 0x10, 0x03, 0x20 + .byte 0x05, 0x40, 0x9E, 0x98, 0x40, 0x19, 0xC0, 0x4D, 0x1D, 0x40, 0x45, 0x19, 0x3C, 0x98, 0xBA, 0x95 + .byte 0x28, 0x18, 0x7C, 0x9D, 0x2E, 0x1C, 0xE6, 0x40, 0x0F, 0x25, 0x35, 0x40, 0x2D, 0x06, 0x2D, 0x0E + .byte 0x16, 0xD0, 0xD6, 0x07, 0x76, 0x0F, 0xB5, 0x40, 0xBB, 0x95, 0xC5, 0x5D, 0xAC, 0x46, 0xF0, 0x25 + .byte 0x35, 0x41, 0x66, 0x46, 0x2E, 0x40, 0xBB, 0x9D, 0x35, 0x43, 0x2D, 0x06, 0x2D, 0x0E, 0xC5, 0x55 + .byte 0x7D, 0x98, 0x00, 0x28, 0x04, 0xD0, 0xBA, 0x9E, 0x3B, 0x98, 0x36, 0x18, 0x3A, 0x98, 0x85, 0x55 + .byte 0xB9, 0x98, 0x49, 0x1C, 0x24, 0x1D, 0x1B, 0x1D, 0x52, 0x1C, 0x81, 0x42, 0xCE, 0xDB, 0x7D, 0x98 + .byte 0x00, 0x28, 0x03, 0xD0, 0x12, 0x98, 0x80, 0x1C, 0x12, 0x90, 0x02, 0xE0, 0x12, 0x98, 0x40, 0x1C + .byte 0x12, 0x90, 0x00, 0x98, 0x01, 0x99, 0x00, 0x1D, 0x00, 0x90, 0x06, 0x98, 0x08, 0x39, 0x40, 0x1C + .byte 0x06, 0x90, 0x88, 0x42, 0x8E, 0xDB, 0x7F, 0xB0, 0x46, 0xB0, 0xF0, 0xBD + + thumb_func_start sub_0201A12C +sub_0201A12C: ; 0x0201A12C + lsl r1, r2, #0x2 + mul r1, r3 + ldr r3, [r5, #0x0] + ldrb r2, [r5, #0x9] + ldr r0, [sp, #0x0] + ldr r3, [r3, #0x0] + lsl r1, r1, #0x3 + bl sub_02018848 + str r0, [sp, #0x1ec] + cmp r4, #0x3 + bhi _0201A21E + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r1, #0x3 + lsl r0, r7, #0x9 + lsl r4, r3, #0x10 + ldr r0, [sp, #0x330] + ldr r7, [sp, #0x1ec] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x10c] + mov r0, #0x0 + str r0, [sp, #0x1e8] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201A21E + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x108] +_0201A178: + ldr r1, [sp, #0x10c] + ldr r0, [sp, #0x1e8] + mov r4, #0x0 + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x310] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x5c] + cmp r0, #0x0 + ble _0201A1FC + ble _0201A1FC + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x108] + lsl r1, r0, #0x3 + ldr r0, _0201A3AC ; =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x100] + ldr r0, [sp, #0x48] + str r2, [sp, #0x104] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _0201A3AC ; =0x00007FC0 + ldr r2, [sp, #0x108] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0xfc] + str r0, [sp, #0xf8] +_0201A1C4: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, _0201A3AC ; =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x104] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A1F0 + ldr r0, [sp, #0x100] + strb r1, [r2, r0] + ldr r0, [sp, #0x310] + cmp r0, #0x0 + beq _0201A1F0 + ldr r0, [sp, #0xfc] + add r2, r3, r0 + ldr r0, [sp, #0xf8] + strb r1, [r0, r2] +_0201A1F0: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r0 + blt _0201A1C4 +_0201A1FC: + ldr r0, [sp, #0x310] + cmp r0, #0x0 + beq _0201A20A + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A210 +_0201A20A: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A210: + ldr r0, [sp, #0x1e8] + add r7, #0x8 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x1e8] + cmp r1, r0 + blt _0201A178 +_0201A21E: + b _0201A8B6 +_0201A220: + .byte 0x12, 0x98, 0x7B, 0x9F, 0x78, 0x90, 0xCC, 0x98, 0x00, 0x06, 0x00, 0x0E, 0x13, 0x90, 0x00, 0x06 + .byte 0x00, 0x0E, 0x49, 0x90, 0x00, 0x20, 0x79, 0x90, 0x01, 0x98, 0x00, 0x28, 0x53, 0xDD, 0x16, 0x98 + .byte 0x07, 0x21, 0x01, 0x40, 0x40, 0x18, 0xC0, 0x10, 0x48, 0x90, 0x49, 0x99, 0x79, 0x98, 0x17, 0x9D + .byte 0x01, 0x41, 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0xC3, 0x90, 0x28, 0x1C, 0xC6, 0x00 + .byte 0x78, 0x98, 0x48, 0x9A, 0xC1, 0x00, 0x51, 0x48, 0x38, 0x23, 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C + .byte 0x18, 0x40, 0x46, 0x90, 0x78, 0x98, 0x47, 0x92, 0x40, 0x1C, 0xC1, 0x00, 0x4B, 0x48, 0x48, 0x9A + .byte 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x00, 0x24, 0x45, 0x92, 0x44, 0x90, 0x07, 0x20 + .byte 0x29, 0x1C, 0x01, 0x40, 0x9E, 0x98, 0x41, 0x18, 0x44, 0x48, 0x30, 0x40, 0x0B, 0x18, 0x47, 0x98 + .byte 0x39, 0x5D, 0x1A, 0x18, 0x00, 0x29, 0x08, 0xD0, 0x46, 0x98, 0x11, 0x54, 0xC3, 0x98, 0x00, 0x28 + .byte 0x03, 0xD0, 0x45, 0x98, 0x1A, 0x18, 0x44, 0x98, 0x81, 0x54, 0x64, 0x1C, 0x08, 0x36, 0x6D, 0x1C + .byte 0x08, 0x2C, 0xE4, 0xDB, 0xC3, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x78, 0x98, 0x80, 0x1C, 0x78, 0x90 + .byte 0x02, 0xE0, 0x78, 0x98, 0x40, 0x1C, 0x78, 0x90, 0x79, 0x98, 0x08, 0x37, 0x41, 0x1C, 0x01, 0x98 + .byte 0x79, 0x91, 0x81, 0x42, 0xB1, 0xDB, 0x7B, 0x98, 0xC2, 0x90, 0x40, 0x30, 0xC2, 0x90, 0x13, 0x98 + .byte 0x00, 0x06, 0x00, 0x0E, 0x4F, 0x90, 0x00, 0x20, 0x77, 0x90, 0x01, 0x98, 0x00, 0x28, 0x63, 0xDD + .byte 0x17, 0x98, 0x07, 0x21, 0x08, 0x30, 0x17, 0x90, 0x16, 0x98, 0x01, 0x40, 0x40, 0x18, 0xC0, 0x10 + .byte 0x4E, 0x90, 0x4F, 0x99, 0x77, 0x98, 0x02, 0x9F, 0x01, 0x41, 0x01, 0x20, 0x08, 0x40, 0x00, 0x06 + .byte 0x00, 0x0E, 0x08, 0x3F, 0x00, 0x24, 0x76, 0x90, 0x17, 0x9D, 0x00, 0x2F, 0x34, 0xDD, 0x33, 0xDD + .byte 0x28, 0x1C, 0xC6, 0x00, 0x12, 0x98, 0x4E, 0x9A, 0xC1, 0x00, 0x1C, 0x48, 0x38, 0x23, 0x08, 0x40 + .byte 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x4C, 0x90, 0x12, 0x98, 0x4D, 0x92, 0x40, 0x1C, 0xC1, 0x00 + .byte 0x16, 0x48, 0x4E, 0x9A, 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x4B, 0x92, 0x4A, 0x90 + .byte 0x07, 0x20, 0x29, 0x1C, 0x01, 0x40, 0x9E, 0x98, 0x41, 0x18, 0x10, 0x48, 0x30, 0x40, 0x0B, 0x18 + .byte 0x4D, 0x98, 0x1A, 0x18, 0xC2, 0x98, 0x01, 0x5D, 0x00, 0x29, 0x08, 0xD0, 0x4C, 0x98, 0x11, 0x54 + .byte 0x76, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x4B, 0x98, 0x1A, 0x18, 0x4A, 0x98, 0x81, 0x54, 0x64, 0x1C + .byte 0x08, 0x36, 0x6D, 0x1C, 0xBC, 0x42, 0xE3, 0xDB, 0x76, 0x98, 0x00, 0x28, 0x08, 0xD0, 0x12, 0x98 + .byte 0x80, 0x1C, 0x12, 0x90, 0x07, 0xE0, 0xC0, 0x46, 0xE0, 0x3F, 0x00, 0x00 +_0201A3AC: .word 0x00007FC0 +_0201A3B0: + .byte 0x12, 0x98, 0x40, 0x1C, 0x12, 0x90, 0xC2, 0x98, 0x08, 0x30, 0xC2, 0x90, 0x77, 0x98, 0x41, 0x1C + .byte 0x01, 0x98, 0x77, 0x91, 0x81, 0x42, 0xA4, 0xDB, 0x75, 0xE2, 0x12, 0x98, 0x07, 0x21, 0x74, 0x90 + .byte 0x00, 0x20, 0x75, 0x90, 0xCC, 0x98, 0x7B, 0x9F, 0x00, 0x06, 0x00, 0x0E, 0x54, 0x90, 0x16, 0x98 + .byte 0x01, 0x40, 0x40, 0x18, 0xC0, 0x10, 0x0C, 0x90, 0x54, 0x99, 0x75, 0x98, 0x00, 0x24, 0x01, 0x41 + .byte 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0xC1, 0x90, 0x02, 0x98, 0x17, 0x9D, 0x00, 0x28 + .byte 0x34, 0xDD, 0x33, 0xDD, 0x28, 0x1C, 0xC6, 0x00, 0x74, 0x98, 0x0C, 0x9A, 0xC1, 0x00, 0xCE, 0x48 + .byte 0x38, 0x23, 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x52, 0x90, 0x74, 0x98, 0x53, 0x92 + .byte 0x40, 0x1C, 0xC1, 0x00, 0xC8, 0x48, 0x0C, 0x9A, 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40 + .byte 0x51, 0x92, 0x50, 0x90, 0x07, 0x20, 0x29, 0x1C, 0x01, 0x40, 0x9E, 0x98, 0x41, 0x18, 0xC2, 0x48 + .byte 0x30, 0x40, 0x0B, 0x18, 0x53, 0x98, 0x39, 0x5D, 0x1A, 0x18, 0x00, 0x29, 0x08, 0xD0, 0x52, 0x98 + .byte 0x11, 0x54, 0xC1, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x51, 0x98, 0x1A, 0x18, 0x50, 0x98, 0x81, 0x54 + .byte 0x02, 0x98, 0x64, 0x1C, 0x08, 0x36, 0x6D, 0x1C, 0x84, 0x42, 0xE3, 0xDB, 0xC1, 0x98, 0x00, 0x28 + .byte 0x03, 0xD0, 0x74, 0x98, 0x80, 0x1C, 0x74, 0x90, 0x02, 0xE0, 0x74, 0x98, 0x40, 0x1C, 0x74, 0x90 + .byte 0x75, 0x98, 0x08, 0x37, 0x40, 0x1C, 0x75, 0x90, 0x08, 0x28, 0xAD, 0xDB, 0x12, 0x98, 0x7B, 0x9F + .byte 0x08, 0x30, 0x12, 0x90, 0x80, 0x37, 0x00, 0x20, 0x01, 0x22, 0xCC, 0x99, 0x01, 0x41, 0x11, 0x42 + .byte 0x02, 0xD0, 0x12, 0x99, 0x49, 0x1C, 0x12, 0x91, 0x40, 0x1C, 0x08, 0x28, 0xF5, 0xDB, 0xCC, 0x98 + .byte 0x00, 0x12, 0x00, 0x06, 0x00, 0x0E, 0x59, 0x90, 0x00, 0x20, 0x05, 0x90, 0x01, 0x98, 0x08, 0x38 + .byte 0x00, 0x28, 0x53, 0xDD, 0x59, 0x99, 0x05, 0x98, 0x00, 0x24, 0x01, 0x41, 0x01, 0x20, 0x08, 0x40 + .byte 0x00, 0x06, 0x00, 0x0E, 0xC0, 0x90, 0x02, 0x98, 0x17, 0x9D, 0x00, 0x28, 0x34, 0xDD, 0x33, 0xDD + .byte 0x28, 0x1C, 0xC6, 0x00, 0x12, 0x98, 0x0C, 0x9A, 0xC1, 0x00, 0x97, 0x48, 0x38, 0x23, 0x08, 0x40 + .byte 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x57, 0x90, 0x12, 0x98, 0x58, 0x92, 0x40, 0x1C, 0xC1, 0x00 + .byte 0x91, 0x48, 0x0C, 0x9A, 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x56, 0x92, 0x55, 0x90 + .byte 0x07, 0x20, 0x29, 0x1C, 0x01, 0x40, 0x9E, 0x98, 0x41, 0x18, 0x8B, 0x48, 0x30, 0x40, 0x0B, 0x18 + .byte 0x58, 0x98, 0x39, 0x5D, 0x1A, 0x18, 0x00, 0x29, 0x08, 0xD0, 0x57, 0x98, 0x11, 0x54, 0xC0, 0x98 + .byte 0x00, 0x28, 0x03, 0xD0, 0x56, 0x98, 0x1A, 0x18, 0x55, 0x98, 0x81, 0x54, 0x02, 0x98, 0x64, 0x1C + .byte 0x08, 0x36, 0x6D, 0x1C, 0x84, 0x42, 0xE3, 0xDB, 0xC0, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x12, 0x98 + .byte 0x80, 0x1C, 0x12, 0x90, 0x02, 0xE0, 0x12, 0x98, 0x40, 0x1C, 0x12, 0x90, 0x05, 0x98, 0x01, 0x99 + .byte 0x40, 0x1C, 0x08, 0x39, 0x08, 0x37, 0x05, 0x90, 0x88, 0x42, 0xAB, 0xDB, 0xA3, 0xE1, 0x12, 0x98 + .byte 0x7B, 0x9F, 0x72, 0x90, 0xCC, 0x98, 0x00, 0x06, 0x01, 0x0E, 0x00, 0x20, 0x73, 0x90, 0x08, 0x06 + .byte 0x00, 0x0E, 0x0B, 0x90, 0x16, 0x98, 0x07, 0x21, 0x01, 0x40, 0x40, 0x18, 0xC0, 0x10, 0x0A, 0x90 + .byte 0x0B, 0x99, 0x73, 0x98, 0x17, 0x9D, 0x01, 0x41, 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E + .byte 0xBF, 0x90, 0x28, 0x1C, 0xC6, 0x00, 0x72, 0x98, 0x0A, 0x9A, 0xC1, 0x00, 0x66, 0x48, 0x38, 0x23 + .byte 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x5C, 0x90, 0x72, 0x98, 0x5D, 0x92, 0x40, 0x1C + .byte 0xC1, 0x00, 0x61, 0x48, 0x0A, 0x9A, 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x00, 0x24 + .byte 0x09, 0x96, 0x5B, 0x92, 0x5A, 0x90, 0x07, 0x20, 0x29, 0x1C, 0x01, 0x40, 0x9E, 0x98, 0x41, 0x18 + .byte 0x59, 0x48, 0x30, 0x40, 0x0B, 0x18, 0x5D, 0x98, 0x39, 0x5D, 0x1A, 0x18, 0x00, 0x29, 0x08, 0xD0 + .byte 0x5C, 0x98, 0x11, 0x54, 0xBF, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x5B, 0x98, 0x1A, 0x18, 0x5A, 0x98 + .byte 0x81, 0x54, 0x64, 0x1C, 0x08, 0x36, 0x6D, 0x1C, 0x08, 0x2C, 0xE4, 0xDB, 0xBF, 0x98, 0x00, 0x28 + .byte 0x03, 0xD0, 0x72, 0x98, 0x80, 0x1C, 0x72, 0x90, 0x02, 0xE0, 0x72, 0x98, 0x40, 0x1C, 0x72, 0x90 + .byte 0x73, 0x98, 0x08, 0x37, 0x40, 0x1C, 0x73, 0x90, 0x08, 0x28, 0xB1, 0xDB, 0x7B, 0x98, 0xBE, 0x90 + .byte 0x40, 0x30, 0xBE, 0x90, 0x12, 0x98, 0x70, 0x90, 0x00, 0x20, 0x71, 0x90, 0x17, 0x98, 0x62, 0x90 + .byte 0x08, 0x30, 0x62, 0x90, 0x0B, 0x99, 0x71, 0x98, 0x02, 0x9F, 0x01, 0x41, 0x01, 0x20, 0x08, 0x40 + .byte 0x00, 0x06, 0x00, 0x0E, 0x08, 0x3F, 0x00, 0x24, 0x6F, 0x90, 0x62, 0x9D, 0x00, 0x2F, 0x34, 0xDD + .byte 0x33, 0xDD, 0x28, 0x1C, 0xC6, 0x00, 0x70, 0x98, 0x0A, 0x9A, 0xC1, 0x00, 0x36, 0x48, 0x38, 0x23 + .byte 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x60, 0x90, 0x70, 0x98, 0x61, 0x92, 0x40, 0x1C + .byte 0xC1, 0x00, 0x31, 0x48, 0x0A, 0x9A, 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x5F, 0x92 + .byte 0x5E, 0x90, 0x07, 0x20, 0x29, 0x1C, 0x01, 0x40, 0x9E, 0x98, 0x41, 0x18, 0x2A, 0x48, 0x30, 0x40 + .byte 0x0B, 0x18, 0x61, 0x98, 0x1A, 0x18, 0xBE, 0x98, 0x01, 0x5D, 0x00, 0x29, 0x08, 0xD0, 0x60, 0x98 + .byte 0x11, 0x54, 0x6F, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x5F, 0x98, 0x1A, 0x18, 0x5E, 0x98, 0x81, 0x54 + .byte 0x64, 0x1C, 0x08, 0x36, 0x6D, 0x1C, 0xBC, 0x42, 0xE3, 0xDB, 0x6F, 0x98, 0x00, 0x28, 0x03, 0xD0 + .byte 0x70, 0x98, 0x80, 0x1C, 0x70, 0x90, 0x02, 0xE0, 0x70, 0x98, 0x40, 0x1C, 0x70, 0x90, 0xBE, 0x98 + .byte 0x08, 0x30, 0xBE, 0x90, 0x71, 0x98, 0x40, 0x1C, 0x71, 0x90, 0x08, 0x28, 0xAA, 0xDB, 0x12, 0x98 + .byte 0x7B, 0x9F, 0x08, 0x30, 0x80, 0x37, 0x12, 0x90, 0x6E, 0x90, 0x00, 0x20, 0x01, 0x22, 0xCC, 0x99 + .byte 0x01, 0x41, 0x11, 0x42, 0x02, 0xD0, 0x6E, 0x99, 0x49, 0x1C, 0x6E, 0x91, 0x40, 0x1C, 0x08, 0x28 + .byte 0xF5, 0xDB, 0xCC, 0x98, 0x00, 0x12, 0x11, 0x90, 0x00, 0x06, 0x00, 0x0E, 0x67, 0x90, 0x00, 0x20 + .byte 0x04, 0x90, 0x01, 0x98, 0x08, 0x38, 0x00, 0x28, 0x51, 0xDD, 0x67, 0x99, 0x04, 0x98, 0x0A, 0x9A + .byte 0x01, 0x41, 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0xBD, 0x90, 0x6E, 0x98, 0x38, 0x23 + .byte 0xC1, 0x00, 0x01, 0x48, 0x02, 0xE0, 0xC0, 0x46, 0xC0, 0x7F, 0x00, 0x00, 0x17, 0x9D, 0x08, 0x40 + .byte 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x65, 0x90, 0x6E, 0x98, 0x66, 0x92, 0x40, 0x1C, 0xC1, 0x00 + .byte 0x58, 0x48, 0x0A, 0x9A, 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x09, 0x9E, 0x00, 0x24 + .byte 0x64, 0x92, 0x63, 0x90, 0x07, 0x20, 0x29, 0x1C, 0x01, 0x40, 0x9E, 0x98, 0x41, 0x18, 0x51, 0x48 + .byte 0x30, 0x40, 0x0B, 0x18, 0x66, 0x98, 0x39, 0x5D, 0x1A, 0x18, 0x00, 0x29, 0x08, 0xD0, 0x65, 0x98 + .byte 0x11, 0x54, 0xBD, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x64, 0x98, 0x1A, 0x18, 0x63, 0x98, 0x81, 0x54 + .byte 0x64, 0x1C, 0x08, 0x36, 0x6D, 0x1C, 0x08, 0x2C, 0xE4, 0xDB, 0xBD, 0x98, 0x00, 0x28, 0x03, 0xD0 + .byte 0x6E, 0x98, 0x80, 0x1C, 0x6E, 0x90, 0x02, 0xE0, 0x6E, 0x98, 0x40, 0x1C, 0x6E, 0x90, 0x04, 0x98 + .byte 0x01, 0x99, 0x40, 0x1C, 0x08, 0x39, 0x08, 0x37, 0x04, 0x90, 0x88, 0x42, 0xAD, 0xDB, 0x7B, 0x98 + .byte 0x00, 0x22, 0xBC, 0x90, 0xC0, 0x30, 0xBC, 0x90, 0x01, 0x21, 0xCC, 0x98, 0x10, 0x41, 0x08, 0x42 + .byte 0x02, 0xD0, 0x12, 0x98, 0x40, 0x1C, 0x12, 0x90, 0x52, 0x1C, 0x08, 0x2A, 0xF5, 0xDB, 0x11, 0x98 + .byte 0x00, 0x06, 0x00, 0x0E, 0x6C, 0x90, 0x00, 0x20, 0x03, 0x90, 0x01, 0x98, 0x08, 0x38, 0x00, 0x28 + .byte 0x59, 0xDD, 0x17, 0x98, 0x08, 0x30, 0x17, 0x90, 0x6C, 0x99, 0x03, 0x98, 0x02, 0x9F, 0x01, 0x41 + .byte 0x01, 0x20, 0x08, 0x40, 0x00, 0x06, 0x00, 0x0E, 0x08, 0x3F, 0x00, 0x24, 0x6D, 0x90, 0x17, 0x9D + .byte 0x00, 0x2F, 0x34, 0xDD, 0x33, 0xDD, 0x28, 0x1C, 0xC6, 0x00, 0x12, 0x98, 0x0A, 0x9A, 0xC1, 0x00 + .byte 0x24, 0x48, 0x38, 0x23, 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C, 0x18, 0x40, 0x6A, 0x90, 0x12, 0x98 + .byte 0x6B, 0x92, 0x40, 0x1C, 0xC1, 0x00, 0x1F, 0x48, 0x0A, 0x9A, 0x08, 0x40, 0x42, 0x43, 0x08, 0x1C + .byte 0x18, 0x40, 0x69, 0x92, 0x68, 0x90, 0x07, 0x20, 0x29, 0x1C, 0x01, 0x40, 0x9E, 0x98, 0x41, 0x18 + .byte 0x18, 0x48, 0x30, 0x40, 0x0B, 0x18, 0x6B, 0x98, 0x1A, 0x18, 0xBC, 0x98, 0x01, 0x5D, 0x00, 0x29 + .byte 0x08, 0xD0, 0x6A, 0x98, 0x11, 0x54, 0x6D, 0x98, 0x00, 0x28, 0x03, 0xD0, 0x69, 0x98, 0x1A, 0x18 + .byte 0x68, 0x98, 0x81, 0x54, 0x64, 0x1C, 0x08, 0x36, 0x6D, 0x1C, 0xBC, 0x42, 0xE3, 0xDB, 0x6D, 0x98 + .byte 0x00, 0x28, 0x03, 0xD0, 0x12, 0x98, 0x80, 0x1C, 0x12, 0x90, 0x02, 0xE0, 0x12, 0x98, 0x40, 0x1C + .byte 0x12, 0x90, 0xBC, 0x98, 0x01, 0x99, 0x08, 0x30, 0xBC, 0x90, 0x03, 0x98, 0x08, 0x39, 0x40, 0x1C + .byte 0x03, 0x90, 0x88, 0x42, 0xA8, 0xDB +_0201A8B6: + ldr r0, [sp, #0x1ec] + bl sub_02016A18 + + thumb_func_start sub_0201A8BC +sub_0201A8BC: ; 0x0201A8BC + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} + nop +_0201A8C4: + .byte 0xC0, 0x7F, 0x00, 0x00 + + thumb_func_start sub_0201A8C8 +sub_0201A8C8: ; 0x0201A8C8 + push {r4-r6, lr} + ldrb r6, [r0, #0x4] + mov r5, #0x2c + ldr r4, [r0, #0x0] + mul r5, r6 + add r4, r4, r5 + ldrb r4, [r4, #0x1e] + cmp r4, #0x0 + bne _0201A8E0 + bl sub_0201A8E8 + pop {r4-r6, pc} +_0201A8E0: + bl sub_0201A9D4 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0201A8E8 +sub_0201A8E8: ; 0x0201A8E8 + push {r3-r7, lr} + sub sp, #0x10 + add r6, r3, #0x0 + add r4, r0, #0x0 + add r0, r1, #0x0 + lsl r3, r6, #0x18 + lsl r1, r6, #0x10 + str r2, [sp, #0x0] + orr r1, r3 + lsl r5, r6, #0x8 + orr r1, r5 + orr r1, r6 + str r1, [sp, #0x4] + ldrb r1, [r4, #0x7] + ldrb r3, [r4, #0x8] + ldr r2, [r4, #0xc] + str r1, [sp, #0x8] + mul r1, r3 + lsl r1, r1, #0x5 + str r1, [sp, #0xc] + cmp r0, #0x3 + bhi _0201A9CE + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r2, #0x1 + lsl r4, r5, #0x2 + lsl r4, r5, #0x2 + add r0, r1, #0x0 + mov r7, #0x0 + cmp r0, #0x0 + ble _0201A9CE + mov r0, #0x7 + mov lr, r0 +_0201A934: + ldr r3, [sp, #0x0] + mov r4, #0x0 + add r5, r7, #0x0 +_0201A93A: + mov r0, #0x7 + add r6, r3, #0x0 + and r6, r0 + add r1, r3, #0x0 + mov r0, lr + bic r1, r0 + ldr r0, [sp, #0x8] + mul r1, r0 + add r0, r6, #0x0 + orr r0, r1 + lsl r0, r0, #0x2 + add r1, r7, r0 + ldr r0, [sp, #0xc] + cmp r1, r0 + bge _0201A95C + ldr r0, [r2, r1] + b _0201A95E +_0201A95C: + ldr r0, [sp, #0x4] +_0201A95E: + add r4, r4, #0x1 + str r0, [r2, r5] + add r3, r3, #0x1 + add r5, r5, #0x4 + cmp r4, #0x8 + blt _0201A93A + ldr r0, [sp, #0xc] + add r7, #0x20 + cmp r7, r0 + blt _0201A934 + add sp, #0x10 + pop {r3-r7, pc} +_0201A976: + .byte 0x08, 0x1C, 0x00, 0x1F, 0x12, 0x18, 0x08, 0x1C, 0x00, 0x27 + .byte 0x00, 0x28, 0x24, 0xDD, 0x07, 0x20, 0x84, 0x46, 0x00, 0x9C, 0x00, 0x25, 0x3B, 0x1C, 0x07, 0x20 + .byte 0x26, 0x1C, 0x06, 0x40, 0x21, 0x1C, 0x60, 0x46, 0x81, 0x43, 0x02, 0x98, 0x41, 0x43, 0x30, 0x1C + .byte 0x08, 0x43, 0x80, 0x00, 0x39, 0x18, 0x03, 0x98, 0x81, 0x42, 0x04, 0xDA, 0x50, 0x1A, 0x01, 0x68 + .byte 0xD0, 0x1A, 0x01, 0x60, 0x02, 0xE0, 0x01, 0x98, 0xD1, 0x1A, 0x08, 0x60, 0x6D, 0x1C, 0x64, 0x1C + .byte 0x1B, 0x1D, 0x08, 0x2D, 0xE3, 0xDB, 0x03, 0x98, 0x20, 0x37, 0x87, 0x42, 0xDC, 0xDB +_0201A9CE: + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201A9D4 +sub_0201A9D4: ; 0x0201A9D4 + push {r3-r7, lr} + sub sp, #0x20 + add r6, r3, #0x0 + add r4, r0, #0x0 + str r2, [sp, #0x0] + lsl r2, r6, #0x18 + lsl r0, r6, #0x10 + orr r0, r2 + ldrb r2, [r4, #0x7] + ldr r3, [r4, #0xc] + lsl r5, r6, #0x8 + orr r0, r5 + ldrb r4, [r4, #0x8] + str r2, [sp, #0x10] + orr r0, r6 + mul r2, r4 + lsl r2, r2, #0x6 + str r2, [sp, #0x1c] + cmp r1, #0x3 + bls _0201A9FE + b _0201AB04 +_0201A9FE: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r4, r6, #0x1 + lsl r0, r7, #0x3 + lsl r0, r7, #0x3 + mov r1, #0x0 + str r1, [sp, #0xc] + add r1, r2, #0x0 + cmp r1, #0x0 + ble _0201AB04 + add r1, r1, #0x4 + str r1, [sp, #0x14] + mov r1, #0x7 + mov lr, r1 +_0201AA24: + ldr r4, [sp, #0x0] + ldr r5, [sp, #0xc] + mov r7, #0x0 +_0201AA2A: + mov r1, #0x7 + add r6, r4, #0x0 + and r6, r1 + add r2, r4, #0x0 + mov r1, lr + bic r2, r1 + ldr r1, [sp, #0x10] + mul r2, r1 + add r1, r6, #0x0 + orr r1, r2 + lsl r2, r1, #0x3 + ldr r1, [sp, #0xc] + add r1, r1, r2 + ldr r2, [sp, #0x1c] + cmp r1, r2 + bge _0201AA50 + ldr r2, [r3, r1] + str r2, [r3, r5] + b _0201AA52 +_0201AA50: + str r0, [r3, r5] +_0201AA52: + add r2, r1, #0x4 + ldr r1, [sp, #0x14] + cmp r2, r1 + bge _0201AA62 + ldr r2, [r3, r2] + add r1, r5, #0x4 + str r2, [r3, r1] + b _0201AA66 +_0201AA62: + add r1, r5, #0x4 + str r0, [r3, r1] +_0201AA66: + add r7, r7, #0x1 + add r4, r4, #0x1 + add r5, #0x8 + cmp r7, #0x8 + blt _0201AA2A + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x1c] + add r2, #0x40 + str r2, [sp, #0xc] + cmp r2, r1 + blt _0201AA24 + add sp, #0x20 + pop {r3-r7, pc} +_0201AA80: + .byte 0x11, 0x1C, 0x08, 0x39, 0x5B, 0x18, 0x00, 0x21, 0x02, 0x91, 0x11, 0x1C, 0x00, 0x29, 0x39, 0xDD + .byte 0x00, 0x21, 0x01, 0x91, 0x07, 0x99, 0x00, 0x9D, 0x09, 0x1F, 0x06, 0x91, 0x07, 0x21, 0x02, 0x9C + .byte 0x8C, 0x46, 0x07, 0x21, 0x2E, 0x1C, 0x0E, 0x40, 0x2A, 0x1C, 0x61, 0x46, 0x8A, 0x43, 0x04, 0x99 + .byte 0x4A, 0x43, 0x31, 0x1C, 0x11, 0x43, 0xCA, 0x00, 0x02, 0x99, 0x8E, 0x18, 0x07, 0x99, 0x8E, 0x42 + .byte 0x04, 0xDA, 0x99, 0x1B, 0x0A, 0x68, 0x19, 0x1B, 0x0A, 0x60, 0x01, 0xE0, 0x19, 0x1B, 0x08, 0x60 + .byte 0x06, 0x99, 0x32, 0x1F, 0x8A, 0x42, 0x05, 0xDA, 0x99, 0x1A, 0x22, 0x1F, 0x09, 0x68, 0x9A, 0x1A + .byte 0x11, 0x60, 0x02, 0xE0, 0x21, 0x1F, 0x59, 0x1A, 0x08, 0x60, 0x01, 0x99, 0x6D, 0x1C, 0x49, 0x1C + .byte 0x08, 0x34, 0x01, 0x91, 0x08, 0x29, 0xD4, 0xDB, 0x02, 0x9A, 0x07, 0x99, 0x40, 0x32, 0x02, 0x92 + .byte 0x8A, 0x42, 0xC5, 0xDB +_0201AB04: + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_0201AB08 +sub_0201AB08: ; 0x0201AB08 + ldrb r0, [r0, #0x4] + bx lr + + thumb_func_start sub_0201AB0C +sub_0201AB0C: ; 0x0201AB0C + ldrb r0, [r0, #0x7] + bx lr + + thumb_func_start sub_0201AB10 +sub_0201AB10: ; 0x0201AB10 + ldrb r0, [r0, #0x8] + bx lr + + thumb_func_start sub_0201AB14 +sub_0201AB14: ; 0x0201AB14 + ldrb r0, [r0, #0x5] + bx lr + + thumb_func_start sub_0201AB18 +sub_0201AB18: ; 0x0201AB18 + ldrb r0, [r0, #0x6] + bx lr + + thumb_func_start sub_0201AB1C +sub_0201AB1C: ; 0x0201AB1C + strb r1, [r0, #0x5] + bx lr + + thumb_func_start sub_0201AB20 +sub_0201AB20: ; 0x0201AB20 + strb r1, [r0, #0x6] + bx lr + + thumb_func_start sub_0201AB24 +sub_0201AB24: ; 0x0201AB24 + strb r1, [r0, #0x9] + bx lr + + thumb_func_start sub_0201AB28 +sub_0201AB28: ; 0x0201AB28 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + bl sub_020161A4 + add r1, sp, #0x0 + str r0, [r4, #0x0] + blx sub_020B0030 + ldr r0, [sp, #0x0] + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_0201AB44 +sub_0201AB44: ; 0x0201AB44 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + bl sub_020161A4 + add r1, sp, #0x0 + str r0, [r4, #0x0] + blx sub_020B0138 + ldr r0, [sp, #0x0] + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_0201AB60 +sub_0201AB60: ; 0x0201AB60 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0201AC78 + add r0, r4, #0x0 + bl sub_0201AB78 + mov r0, #0x0 + strh r0, [r4, #0x4] + strh r0, [r4, #0x6] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201AB78 +sub_0201AB78: ; 0x0201AB78 + push {r4, lr} + add r4, r0, #0x0 + ldrh r1, [r4, #0x6] + mov r0, #0x1 + tst r0, r1 + beq _0201AB92 + ldr r2, [r4, #0x10] + ldr r1, [r4, #0x8] + ldr r3, [r4, #0xc] + mov r0, #0x0 + lsl r2, r2, #0x1 + bl sub_02017D68 +_0201AB92: + ldrh r1, [r4, #0x6] + mov r0, #0x2 + tst r0, r1 + beq _0201ABA8 + ldr r2, [r4, #0x3c] + ldr r1, [r4, #0x34] + ldr r3, [r4, #0x38] + mov r0, #0x1 + lsl r2, r2, #0x1 + bl sub_02017D68 +_0201ABA8: + ldrh r1, [r4, #0x6] + mov r0, #0x4 + tst r0, r1 + beq _0201ABBE + ldr r2, [r4, #0x68] + ldr r1, [r4, #0x60] + ldr r3, [r4, #0x64] + mov r0, #0x2 + lsl r2, r2, #0x1 + bl sub_02017D68 +_0201ABBE: + ldrh r1, [r4, #0x6] + mov r0, #0x8 + tst r0, r1 + beq _0201ABE0 + add r2, r4, #0x0 + add r1, r4, #0x0 + add r2, #0x94 + add r3, r4, #0x0 + add r1, #0x8c + ldr r2, [r2, #0x0] + add r3, #0x90 + ldr r1, [r1, #0x0] + ldr r3, [r3, #0x0] + mov r0, #0x3 + lsl r2, r2, #0x1 + bl sub_02017D68 +_0201ABE0: + ldrh r1, [r4, #0x6] + mov r0, #0x10 + tst r0, r1 + beq _0201AC02 + add r2, r4, #0x0 + add r1, r4, #0x0 + add r2, #0xc0 + add r3, r4, #0x0 + add r1, #0xb8 + ldr r2, [r2, #0x0] + add r3, #0xbc + ldr r1, [r1, #0x0] + ldr r3, [r3, #0x0] + mov r0, #0x4 + lsl r2, r2, #0x1 + bl sub_02017D68 +_0201AC02: + ldrh r1, [r4, #0x6] + mov r0, #0x20 + tst r0, r1 + beq _0201AC24 + add r2, r4, #0x0 + add r1, r4, #0x0 + add r2, #0xec + add r3, r4, #0x0 + add r1, #0xe4 + ldr r2, [r2, #0x0] + add r3, #0xe8 + ldr r1, [r1, #0x0] + ldr r3, [r3, #0x0] + mov r0, #0x5 + lsl r2, r2, #0x1 + bl sub_02017D68 +_0201AC24: + ldrh r0, [r4, #0x6] + mov r3, #0x40 + tst r0, r3 + beq _0201AC44 + add r2, r3, #0x0 + add r1, r3, #0x0 + add r2, #0xd8 + add r1, #0xd0 + ldr r2, [r4, r2] + add r3, #0xd4 + ldr r1, [r4, r1] + ldr r3, [r4, r3] + mov r0, #0x6 + lsl r2, r2, #0x1 + bl sub_02017D68 +_0201AC44: + ldrh r0, [r4, #0x6] + mov r3, #0x80 + tst r0, r3 + beq _0201AC64 + add r2, r3, #0x0 + add r1, r3, #0x0 + add r2, #0xc4 + add r1, #0xbc + ldr r2, [r4, r2] + add r3, #0xc0 + ldr r1, [r4, r1] + ldr r3, [r4, r3] + mov r0, #0x7 + lsl r2, r2, #0x1 + bl sub_02017D68 +_0201AC64: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201AC68 +sub_0201AC68: ; 0x0201AC68 + ldrh r3, [r0, #0x6] + mov r2, #0x1 + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strh r1, [r0, #0x6] + bx lr + .balign 4 + + thumb_func_start sub_0201AC78 +sub_0201AC78: ; 0x0201AC78 + push {r4, lr} + sub sp, #0x48 + add r4, r0, #0x0 + ldrh r1, [r4, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201AC9E + ldr r1, [r4, #0x14] + ldr r0, _0201AEB0 ; =0x000001FF + add r2, r1, #0x0 + ldr r1, [r4, #0x18] + and r2, r0 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + ldr r0, _0201AEB4 ; =0x04000010 + str r1, [r0, #0x0] +_0201AC9E: + ldrh r1, [r4, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201ACBE + ldr r1, [r4, #0x40] + ldr r0, _0201AEB0 ; =0x000001FF + add r2, r1, #0x0 + ldr r1, [r4, #0x44] + and r2, r0 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + ldr r0, _0201AEB8 ; =0x04000014 + str r1, [r0, #0x0] +_0201ACBE: + ldrh r1, [r4, #0x4] + mov r0, #0x4 + tst r0, r1 + beq _0201AD1E + add r0, r4, #0x0 + add r0, #0x74 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201ACEA + ldr r1, [r4, #0x6c] + ldr r0, _0201AEB0 ; =0x000001FF + add r2, r1, #0x0 + ldr r1, [r4, #0x70] + and r2, r0 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + ldr r0, _0201AEBC ; =0x04000018 + str r1, [r0, #0x0] + b _0201AD1E +_0201ACEA: + mov r0, #0x2 + str r0, [sp, #0x0] + add r1, r4, #0x0 + add r1, #0x78 + add r3, r4, #0x0 + add r3, #0x80 + ldrh r1, [r1, #0x0] + ldr r2, [r4, #0x7c] + ldr r3, [r3, #0x0] + add r0, sp, #0x38 + bl sub_0201BB74 + ldr r0, [r4, #0x6c] + add r2, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x70] + add r3, r4, #0x0 + str r0, [sp, #0x4] + add r2, #0x84 + add r3, #0x88 + ldr r0, _0201AEC0 ; =0x04000020 + ldr r2, [r2, #0x0] + ldr r3, [r3, #0x0] + add r1, sp, #0x38 + blx sub_020C74F8 +_0201AD1E: + ldrh r1, [r4, #0x4] + mov r0, #0x8 + tst r0, r1 + beq _0201AD8E + add r0, r4, #0x0 + add r0, #0xa0 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201AD4E + add r0, r4, #0x0 + add r2, r4, #0x0 + add r0, #0x98 + add r2, #0x9c + ldr r2, [r2, #0x0] + ldr r0, [r0, #0x0] + ldr r1, _0201AEB0 ; =0x000001FF + lsl r2, r2, #0x10 + and r0, r1 + lsl r1, r1, #0x10 + and r1, r2 + orr r1, r0 + ldr r0, _0201AEC4 ; =0x0400001C + str r1, [r0, #0x0] + b _0201AD8E +_0201AD4E: + mov r0, #0x2 + add r1, r4, #0x0 + str r0, [sp, #0x0] + add r1, #0xa4 + add r2, r4, #0x0 + add r3, r4, #0x0 + add r2, #0xa8 + add r3, #0xac + ldrh r1, [r1, #0x0] + ldr r2, [r2, #0x0] + ldr r3, [r3, #0x0] + add r0, sp, #0x28 + bl sub_0201BB74 + add r0, r4, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + add r2, r4, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r0, #0x9c + ldr r0, [r0, #0x0] + add r3, r4, #0x0 + str r0, [sp, #0x4] + add r2, #0xb0 + add r3, #0xb4 + ldr r0, _0201AEC8 ; =0x04000030 + ldr r2, [r2, #0x0] + ldr r3, [r3, #0x0] + add r1, sp, #0x28 + blx sub_020C74F8 +_0201AD8E: + ldrh r1, [r4, #0x4] + mov r0, #0x10 + tst r0, r1 + beq _0201ADB2 + add r0, r4, #0x0 + add r2, r4, #0x0 + add r0, #0xc4 + add r2, #0xc8 + ldr r2, [r2, #0x0] + ldr r0, [r0, #0x0] + ldr r1, _0201AEB0 ; =0x000001FF + lsl r2, r2, #0x10 + and r0, r1 + lsl r1, r1, #0x10 + and r1, r2 + orr r1, r0 + ldr r0, _0201AECC ; =0x04001010 + str r1, [r0, #0x0] +_0201ADB2: + ldrh r1, [r4, #0x4] + mov r0, #0x20 + tst r0, r1 + beq _0201ADD6 + add r0, r4, #0x0 + add r2, r4, #0x0 + add r0, #0xf0 + add r2, #0xf4 + ldr r2, [r2, #0x0] + ldr r0, [r0, #0x0] + ldr r1, _0201AEB0 ; =0x000001FF + lsl r2, r2, #0x10 + and r0, r1 + lsl r1, r1, #0x10 + and r1, r2 + orr r1, r0 + ldr r0, _0201AED0 ; =0x04001014 + str r1, [r0, #0x0] +_0201ADD6: + ldrh r0, [r4, #0x4] + mov r3, #0x40 + tst r0, r3 + beq _0201AE3E + add r0, r3, #0x0 + add r0, #0xe4 + ldrb r0, [r4, r0] + cmp r0, #0x0 + bne _0201AE04 + ldr r1, _0201AEB0 ; =0x000001FF + add r3, #0xdc + add r2, r1, #0x0 + sub r2, #0xdf + ldr r0, [r4, r3] + ldr r2, [r4, r2] + and r0, r1 + lsl r2, r2, #0x10 + lsl r1, r1, #0x10 + and r1, r2 + orr r1, r0 + ldr r0, _0201AED4 ; =0x04001018 + str r1, [r0, #0x0] + b _0201AE3E +_0201AE04: + mov r0, #0x2 + add r1, r3, #0x0 + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r1, #0xe8 + add r2, #0xec + add r3, #0xf0 + ldrh r1, [r4, r1] + ldr r2, [r4, r2] + ldr r3, [r4, r3] + add r0, sp, #0x18 + bl sub_0201BB74 + mov r3, #0x47 + lsl r3, r3, #0x2 + ldr r0, [r4, r3] + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r0, r3, #0x4 + ldr r0, [r4, r0] + add r2, #0x18 + str r0, [sp, #0x4] + add r3, #0x1c + ldr r0, _0201AED8 ; =0x04001020 + ldr r2, [r4, r2] + ldr r3, [r4, r3] + add r1, sp, #0x18 + blx sub_020C74F8 +_0201AE3E: + ldrh r0, [r4, #0x4] + mov r3, #0x80 + tst r0, r3 + beq _0201AEAC + add r0, r3, #0x0 + add r0, #0xd0 + ldrb r0, [r4, r0] + cmp r0, #0x0 + bne _0201AE72 + add r3, #0xc8 + ldr r1, [r4, r3] + ldr r0, _0201AEB0 ; =0x000001FF + add r2, r1, #0x0 + add r1, r0, #0x0 + sub r1, #0xb3 + ldr r1, [r4, r1] + and r2, r0 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + ldr r0, _0201AEDC ; =0x0400101C + add sp, #0x48 + str r1, [r0, #0x0] + pop {r4, pc} +_0201AE72: + mov r0, #0x2 + add r1, r3, #0x0 + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r1, #0xd4 + add r2, #0xd8 + add r3, #0xdc + ldrh r1, [r4, r1] + ldr r2, [r4, r2] + ldr r3, [r4, r3] + add r0, sp, #0x8 + bl sub_0201BB74 + mov r3, #0x52 + lsl r3, r3, #0x2 + ldr r0, [r4, r3] + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r0, r3, #0x4 + ldr r0, [r4, r0] + add r2, #0x18 + str r0, [sp, #0x4] + add r3, #0x1c + ldr r0, _0201AEE0 ; =0x04001030 + ldr r2, [r4, r2] + ldr r3, [r4, r3] + add r1, sp, #0x8 + blx sub_020C74F8 +_0201AEAC: + add sp, #0x48 + pop {r4, pc} + .balign 4 +_0201AEB0: .word 0x000001FF +_0201AEB4: .word 0x04000010 +_0201AEB8: .word 0x04000014 +_0201AEBC: .word 0x04000018 +_0201AEC0: .word 0x04000020 +_0201AEC4: .word 0x0400001C +_0201AEC8: .word 0x04000030 +_0201AECC: .word 0x04001010 +_0201AED0: .word 0x04001014 +_0201AED4: .word 0x04001018 +_0201AED8: .word 0x04001020 +_0201AEDC: .word 0x0400101C +_0201AEE0: .word 0x04001030 + + thumb_func_start sub_0201AEE4 +sub_0201AEE4: ; 0x0201AEE4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + mov r0, #0x2c + add r1, #0x8 + mul r0, r4 + add r0, r1, r0 + add r1, r2, #0x0 + add r2, r3, #0x0 + bl sub_02017B8C + mov r0, #0x1 + ldrh r1, [r5, #0x4] + lsl r0, r4 + orr r0, r1 + strh r0, [r5, #0x4] + pop {r3-r5, pc} + + thumb_func_start sub_0201AF08 +sub_0201AF08: ; 0x0201AF08 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + mov r0, #0x2c + add r1, #0x8 + mul r0, r4 + add r0, r1, r0 + add r1, r2, #0x0 + add r2, r3, #0x0 + bl sub_0201AF2C + mov r0, #0x1 + ldrh r1, [r5, #0x4] + lsl r0, r4 + orr r0, r1 + strh r0, [r5, #0x4] + pop {r3-r5, pc} + + thumb_func_start sub_0201AF2C +sub_0201AF2C: ; 0x0201AF2C + cmp r1, #0x0 + beq _0201AF3A + cmp r1, #0x1 + beq _0201AF3E + cmp r1, #0x2 + beq _0201AF46 + bx lr +_0201AF3A: + strh r2, [r0, #0x18] + bx lr +_0201AF3E: + ldrh r1, [r0, #0x18] + add r1, r1, r2 + strh r1, [r0, #0x18] + bx lr +_0201AF46: + ldrh r1, [r0, #0x18] + sub r1, r1, r2 + strh r1, [r0, #0x18] + bx lr + .balign 4 + + thumb_func_start sub_0201AF50 +sub_0201AF50: ; 0x0201AF50 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + mov r0, #0x2c + add r1, #0x8 + mul r0, r4 + add r0, r1, r0 + add r1, r2, #0x0 + add r2, r3, #0x0 + bl sub_0201AF74 + mov r0, #0x1 + ldrh r1, [r5, #0x4] + lsl r0, r4 + orr r0, r1 + strh r0, [r5, #0x4] + pop {r3-r5, pc} + + thumb_func_start sub_0201AF74 +sub_0201AF74: ; 0x0201AF74 + sub r1, #0x9 + cmp r1, #0x5 + bhi _0201AFB8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + lsl r2, r4, #0 + lsl r2, r5, #0 + str r2, [r0, #0x24] + bx lr +_0201AF96: + .byte 0x41, 0x6A, 0x89, 0x18, 0x41, 0x62, 0x70, 0x47, 0x41, 0x6A + .byte 0x89, 0x1A, 0x41, 0x62, 0x70, 0x47, 0x82, 0x62, 0x70, 0x47, 0x81, 0x6A, 0x89, 0x18, 0x81, 0x62 + .byte 0x70, 0x47, 0x81, 0x6A, 0x89, 0x1A, 0x81, 0x62 +_0201AFB8: + bx lr + .balign 4 + + thumb_func_start sub_0201AFBC +sub_0201AFBC: ; 0x0201AFBC + push {r4-r7, lr} + sub sp, #0x1c + str r1, [sp, #0x0] + add r7, r0, #0x0 + str r2, [sp, #0x4] + ldr r0, [sp, #0x30] + str r3, [sp, #0x8] + str r0, [sp, #0x30] + ldr r0, [sp, #0x0] + add r4, r7, #0x0 + mov r1, #0x2c + add r5, r0, #0x0 + mul r5, r1 + add r4, #0x8 + ldr r0, [r4, r5] + cmp r0, #0x0 + bne _0201AFE4 + add sp, #0x1c + mov r0, #0x0 + pop {r4-r7, pc} +_0201AFE4: + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x8] + add r2, r7, r5 + lsl r0, r0, #0x15 + lsl r1, r1, #0x15 + ldrb r2, [r2, #0x1d] + lsr r0, r0, #0x18 + lsr r1, r1, #0x18 + bl sub_02017FFC + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_020187B0 + str r0, [sp, #0x18] + ldr r1, [sp, #0x4] + mov r0, #0x7 + and r1, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldr r1, [sp, #0x8] + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r1, r7, r5 + str r0, [sp, #0x10] + ldrb r0, [r1, #0x1e] + cmp r0, #0x0 + bne _0201B096 + ldr r0, [r4, r5] + mov r1, #0x40 + str r0, [sp, #0xc] + ldr r0, [r7, #0x0] + bl sub_020169D8 + add r4, r0, #0x0 + lsl r0, r6, #0x1 + ldr r1, [sp, #0xc] + mov r12, r0 + ldrh r0, [r1, r0] + mov r3, #0x0 + mov r6, #0xf + lsl r0, r0, #0x16 + lsr r1, r0, #0x11 + ldr r0, [sp, #0x18] + add r2, r0, r1 +_0201B042: + ldrb r5, [r2, r3] + lsl r0, r3, #0x1 + add r1, r4, r0 + and r5, r6 + strb r5, [r4, r0] + ldrb r0, [r2, r3] + asr r0, r0, #0x4 + strb r0, [r1, #0x1] + add r0, r3, #0x1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0x20 + blo _0201B042 + ldr r2, [sp, #0xc] + mov r1, r12 + ldrh r1, [r2, r1] + add r0, r7, #0x0 + asr r2, r1, #0xa + mov r1, #0x3 + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r2, r4, #0x0 + bl sub_0201B118 + ldr r0, [sp, #0x10] + lsl r1, r0, #0x3 + ldr r0, [sp, #0x14] + add r0, r0, r1 + ldrb r5, [r4, r0] + add r0, r4, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x30] + ldrh r2, [r0, #0x0] + mov r0, #0x1 + add r1, r0, #0x0 + lsl r1, r5 + tst r1, r2 + beq _0201B10C + add sp, #0x1c + pop {r4-r7, pc} +_0201B096: + ldrb r0, [r1, #0x1c] + cmp r0, #0x1 + beq _0201B0E0 + ldr r0, [r7, #0x0] + ldr r4, [r4, r5] + mov r1, #0x40 + bl sub_020169D8 + lsl r6, r6, #0x1 + ldrh r1, [r4, r6] + add r5, r0, #0x0 + lsl r1, r1, #0x16 + lsr r2, r1, #0x10 + ldr r1, [sp, #0x18] + add r1, r1, r2 + mov r2, #0x40 + blx sub_020DF438 + ldrh r1, [r4, r6] + add r0, r7, #0x0 + asr r2, r1, #0xa + mov r1, #0x3 + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r2, r5, #0x0 + bl sub_0201B118 + ldr r0, [sp, #0x10] + lsl r1, r0, #0x3 + ldr r0, [sp, #0x14] + add r0, r0, r1 + ldrb r4, [r5, r0] + add r0, r5, #0x0 + bl sub_02016A18 + b _0201B0F4 +_0201B0E0: + ldr r1, [r4, r5] + ldr r0, [sp, #0x10] + ldrb r1, [r1, r6] + lsl r0, r0, #0x3 + lsl r2, r1, #0x6 + ldr r1, [sp, #0x14] + add r1, r1, r2 + add r1, r0, r1 + ldr r0, [sp, #0x18] + ldrb r4, [r0, r1] +_0201B0F4: + ldr r0, [sp, #0x30] + ldrh r2, [r0, #0x0] + lsl r0, r2, #0x18 + lsr r1, r0, #0x18 + ldr r0, _0201B114 ; =0x0000FFFF +_0201B0FE: + cmp r2, r0 + beq _0201B10C + cmp r4, r1 + bne _0201B0FE + add sp, #0x1c + mov r0, #0x1 + pop {r4-r7, pc} +_0201B10C: + mov r0, #0x0 + add sp, #0x1c + pop {r4-r7, pc} + nop +_0201B114: .word 0x0000FFFF + + thumb_func_start sub_0201B118 +sub_0201B118: ; 0x0201B118 + push {r3-r7, lr} + str r1, [sp, #0x0] + ldr r1, [sp, #0x0] + add r7, r2, #0x0 + cmp r1, #0x0 + beq _0201B1A4 + ldr r0, [r0, #0x0] + mov r1, #0x40 + bl sub_020169D8 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + mov r1, #0x1 + tst r0, r1 + beq _0201B166 + mov r0, #0x0 + mov r5, #0x7 +_0201B13A: + lsl r3, r0, #0x3 + add r2, r7, r3 + mov r1, #0x0 + add r3, r4, r3 +_0201B142: + sub r6, r5, r1 + ldrb r6, [r2, r6] + strb r6, [r3, r1] + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #0x8 + blo _0201B142 + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x8 + blo _0201B13A + add r0, r7, #0x0 + add r1, r4, #0x0 + mov r2, #0x40 + blx sub_020DF438 +_0201B166: + ldr r0, [sp, #0x0] + mov r1, #0x2 + tst r0, r1 + beq _0201B19E + mov r5, #0x0 + mov r6, #0x7 +_0201B172: + lsl r0, r5, #0x3 + add r3, r4, r0 + sub r0, r6, r5 + lsl r0, r0, #0x3 + add r2, r7, r0 + mov r1, #0x8 +_0201B17E: + ldrb r0, [r2, #0x0] + add r2, r2, #0x1 + strb r0, [r3, #0x0] + add r3, r3, #0x1 + sub r1, r1, #0x1 + bne _0201B17E + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x8 + blo _0201B172 + add r0, r7, #0x0 + add r1, r4, #0x0 + mov r2, #0x40 + blx sub_020DF438 +_0201B19E: + add r0, r4, #0x0 + bl sub_02016A18 +_0201B1A4: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201B1A8 +sub_0201B1A8: ; 0x0201B1A8 + push {r3-r5, lr} + add r5, r3, #0x0 + add r4, r2, #0x0 + bl sub_020161A4 + str r0, [r5, #0x0] + blx sub_020BC0FC + cmp r0, #0x0 + beq _0201B1D2 + bl sub_0201B254 + cmp r0, #0x0 + bne _0201B1D2 + ldr r0, [r5, #0x0] + ldr r1, [r0, #0x8] + blx sub_020CC15C + ldr r0, [r5, #0x0] + blx sub_020BB59C +_0201B1D2: + ldr r0, [r5, #0x0] + blx sub_020BC13C + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0201B1E4 +sub_0201B1E4: ; 0x0201B1E4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + blx sub_020BC0FC + cmp r0, #0x0 + beq _0201B20A + bl sub_0201B254 + cmp r0, #0x0 + bne _0201B20A + ldr r0, [r5, #0x0] + ldr r1, [r0, #0x8] + blx sub_020CC15C + ldr r0, [r5, #0x0] + blx sub_020BB59C +_0201B20A: + ldr r0, [r5, #0x0] + blx sub_020BC13C + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0201B21C +sub_0201B21C: ; 0x0201B21C + push {r3-r5, lr} + add r4, r3, #0x0 + add r5, r2, #0x0 + ldr r3, [sp, #0x10] + add r2, r4, #0x0 + bl sub_0201B1A8 + ldr r1, [r4, #0x0] + add r0, r5, #0x0 + blx sub_020B80B4 + pop {r3-r5, pc} + + thumb_func_start sub_0201B234 +sub_0201B234: ; 0x0201B234 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r2, #0x0 + bl sub_0201B1E4 + cmp r4, #0x0 + bne _0201B24A + bl sub_02020C2C +_0201B24A: + ldr r1, [r4, #0x0] + add r0, r5, #0x0 + blx sub_020B80B4 + pop {r3-r5, pc} + + thumb_func_start sub_0201B254 +sub_0201B254: ; 0x0201B254 + ldrh r2, [r0, #0x10] + mov r1, #0x1 + tst r2, r1 + bne _0201B262 + ldrh r0, [r0, #0x20] + tst r0, r1 + beq _0201B266 +_0201B262: + mov r0, #0x1 + bx lr +_0201B266: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0201B26C +sub_0201B26C: ; 0x0201B26C + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + blx sub_020B8474 + ldr r1, _0201B2A0 ; =0x021CEDD4 + add r0, r4, #0x0 + blx sub_020CE2E0 + ldr r1, _0201B2A4 ; =0x021CED98 + mov r0, #0xa4 + ldr r2, [r1, #0x7c] + bic r2, r0 + add r0, r6, #0x0 + str r2, [r1, #0x7c] + blx sub_020B844C + blx sub_020B849C + add r0, r5, #0x0 + blx sub_020BAC98 + pop {r4-r6, pc} + nop +_0201B2A0: .word 0x021CEDD4 +_0201B2A4: .word 0x021CED98 + + thumb_func_start sub_0201B2A8 +sub_0201B2A8: ; 0x0201B2A8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + blx sub_020B8474 + ldr r1, _0201B2E4 ; =0x021CEDD4 + add r0, r4, #0x0 + blx sub_020CE2E0 + ldr r1, _0201B2E8 ; =0x021CED98 + mov r0, #0xa4 + ldr r2, [r1, #0x7c] + bic r2, r0 + str r2, [r1, #0x7c] + add r0, r6, #0x0 + blx sub_020B844C + blx sub_020B849C + mov r1, #0x0 + ldr r0, [r5, #0x4] + add r2, r1, #0x0 + mov r3, #0x1 + blx sub_020BAFB8 + blx sub_020BB394 + pop {r4-r6, pc} + .balign 4 +_0201B2E4: .word 0x021CEDD4 +_0201B2E8: .word 0x021CED98 + + thumb_func_start sub_0201B2EC +sub_0201B2EC: ; 0x0201B2EC + push {r3, lr} + sub sp, #0x8 + mov r1, #0x4 + str r1, [sp, #0x0] + ldr r1, _0201B30C ; =sub_0201B314 + mov r2, #0x2 + str r1, [sp, #0x4] + mov r1, #0x0 + add r3, r1, #0x0 + bl sub_02022318 + ldr r1, _0201B310 ; =0x021C4D44 + str r0, [r1, #0x0] + add sp, #0x8 + pop {r3, pc} + nop +_0201B30C: .word sub_0201B314 + 1 +_0201B310: .word 0x021C4D44 + + thumb_func_start sub_0201B314 +sub_0201B314: ; 0x0201B314 + push {r3, lr} + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_0201E6E4 + ldr r0, _0201B380 ; =0x04000008 + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strh r1, [r0, #0x0] + add r0, #0x58 + ldrh r2, [r0, #0x0] + ldr r1, _0201B384 ; =0xFFFFCFFD + and r2, r1 + strh r2, [r0, #0x0] + add r2, r1, #0x2 + ldrh r3, [r0, #0x0] + add r1, r1, #0x2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0, #0x0] + ldrh r3, [r0, #0x0] + ldr r2, _0201B388 ; =0x0000CFFB + and r3, r2 + strh r3, [r0, #0x0] + ldrh r3, [r0, #0x0] + sub r2, #0x1c + and r3, r1 + mov r1, #0x8 + orr r1, r3 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + and r1, r2 + strh r1, [r0, #0x0] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + blx sub_020C7C28 + mov r0, #0x0 + ldr r2, _0201B38C ; =0x00007FFF + add r1, r0, #0x0 + mov r3, #0x3f + str r0, [sp, #0x0] + blx sub_020C7B3C + ldr r1, _0201B390 ; =0xBFFF0000 + ldr r0, _0201B394 ; =0x04000580 + str r1, [r0, #0x0] + pop {r3, pc} + .balign 4 +_0201B380: .word 0x04000008 +_0201B384: .word 0xFFFFCFFD +_0201B388: .word 0x0000CFFB +_0201B38C: .word 0x00007FFF +_0201B390: .word 0xBFFF0000 +_0201B394: .word 0x04000580 + + thumb_func_start sub_0201B398 +sub_0201B398: ; 0x0201B398 + ldr r0, _0201B3A0 ; =0x021C4D44 + ldr r3, _0201B3A4 ; =sub_020223BC + ldr r0, [r0, #0x0] + bx r3 + .balign 4 +_0201B3A0: .word 0x021C4D44 +_0201B3A4: .word sub_020223BC + 1 + + thumb_func_start sub_0201B3A8 +sub_0201B3A8: ; 0x0201B3A8 + push {r4, lr} + add r4, r1, #0x0 + blx sub_020BC13C + cmp r4, #0x0 + beq _0201B3BE + add r1, r4, #0x0 + blx sub_020B7790 + mov r0, #0x1 + pop {r4, pc} +_0201B3BE: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201B3C4 +sub_0201B3C4: ; 0x0201B3C4 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + bne _0201B3D2 + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0201B3D2: + mov r1, #0x0 + str r1, [r5, #0x8] + mov r1, #0x1 + str r1, [sp, #0x8] + str r1, [sp, #0x4] + str r1, [sp, #0x0] + cmp r5, #0x0 + beq _0201B4D0 + blx sub_020B7E1C + add r6, r0, #0x0 + add r0, r5, #0x0 + blx sub_020B7E10 + add r4, r0, #0x0 + add r0, r5, #0x0 + blx sub_020B7CE4 + str r0, [sp, #0xc] + cmp r6, #0x0 + beq _0201B412 + ldr r3, _0201B4D8 ; =0x021064B8 + mov r1, #0x0 + ldr r3, [r3, #0x0] + add r0, r6, #0x0 + add r2, r1, #0x0 + blx r3 + add r7, r0, #0x0 + bne _0201B414 + mov r0, #0x0 + str r0, [sp, #0x8] + b _0201B414 +_0201B412: + mov r7, #0x0 +_0201B414: + cmp r4, #0x0 + beq _0201B42E + ldr r3, _0201B4D8 ; =0x021064B8 + add r0, r4, #0x0 + ldr r3, [r3, #0x0] + mov r1, #0x1 + mov r2, #0x0 + blx r3 + add r6, r0, #0x0 + bne _0201B430 + mov r0, #0x0 + str r0, [sp, #0x4] + b _0201B430 +_0201B42E: + mov r6, #0x0 +_0201B430: + ldr r0, [sp, #0xc] + cmp r0, #0x0 + beq _0201B450 + ldr r3, _0201B4DC ; =0x021064C0 + mov r1, #0x2 + ldrh r2, [r5, #0x20] + lsl r1, r1, #0xe + ldr r3, [r3, #0x0] + and r1, r2 + mov r2, #0x0 + blx r3 + add r4, r0, #0x0 + bne _0201B452 + mov r0, #0x0 + str r0, [sp, #0x0] + b _0201B452 +_0201B450: + mov r4, #0x0 +_0201B452: + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bne _0201B46E + ldr r1, _0201B4E0 ; =0x021064BC + add r0, r7, #0x0 + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _0201B468 + bl sub_02020C2C +_0201B468: + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0201B46E: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _0201B48A + ldr r1, _0201B4E0 ; =0x021064BC + add r0, r6, #0x0 + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _0201B484 + bl sub_02020C2C +_0201B484: + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0201B48A: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _0201B4A6 + ldr r1, _0201B4E4 ; =0x021064C4 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _0201B4A0 + bl sub_02020C2C +_0201B4A0: + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0201B4A6: + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + blx sub_020B7DFC + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_020B7CDC + ldr r1, [r5, #0x4] + add r0, r5, #0x0 + blx sub_020CC15C + add r0, r5, #0x0 + mov r1, #0x1 + blx sub_020B7D28 + add r0, r5, #0x0 + mov r1, #0x1 + blx sub_020B7C78 +_0201B4D0: + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + nop +_0201B4D8: .word 0x021064B8 +_0201B4DC: .word 0x021064C0 +_0201B4E0: .word 0x021064BC +_0201B4E4: .word 0x021064C4 + + thumb_func_start sub_0201B4E8 +sub_0201B4E8: ; 0x0201B4E8 + str r0, [r1, #0x0] + add r0, r0, #0x4 + str r0, [r1, #0x8] + str r0, [r1, #0x4] + mov r0, #0x0 + str r0, [r1, #0xc] + str r0, [r1, #0x10] + str r0, [r1, #0x14] + bx lr + .balign 4 + + thumb_func_start sub_0201B4FC +sub_0201B4FC: ; 0x0201B4FC + push {r3-r7, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x0] + mov r7, #0x0 + cmp r0, #0x0 + ble _0201B52A + add r4, r7, #0x0 + add r6, r7, #0x0 +_0201B50C: + ldr r1, [r5, #0x24] + add r0, r5, #0x0 + add r1, r1, r4 + bl sub_0201B4E8 + ldr r0, [r5, #0x24] + add r7, r7, #0x1 + add r1, r0, r4 + ldr r0, [r5, #0x20] + add r4, #0x1c + str r1, [r0, r6] + ldrh r0, [r5, #0x0] + add r6, r6, #0x4 + cmp r7, r0 + blt _0201B50C +_0201B52A: + mov r0, #0x0 + strh r0, [r5, #0x2] + pop {r3-r7, pc} + + thumb_func_start sub_0201B530 +sub_0201B530: ; 0x0201B530 + ldrh r3, [r0, #0x2] + ldrh r1, [r0, #0x0] + cmp r3, r1 + bne _0201B53C + mov r0, #0x0 + bx lr +_0201B53C: + ldr r2, [r0, #0x20] + lsl r1, r3, #0x2 + ldr r2, [r2, r1] + add r1, r3, #0x1 + strh r1, [r0, #0x2] + add r0, r2, #0x0 + bx lr + .balign 4 +_0201B54C: + .byte 0x42, 0x88, 0x00, 0x2A + .byte 0x01, 0xD1, 0x00, 0x20, 0x70, 0x47, 0x08, 0x60, 0x02, 0x1D, 0x8A, 0x60, 0x4A, 0x60, 0x00, 0x22 + .byte 0xCA, 0x60, 0x0A, 0x61, 0x4A, 0x61, 0x42, 0x88, 0x52, 0x1E, 0x42, 0x80, 0x02, 0x6A, 0x40, 0x88 + .byte 0x80, 0x00, 0x11, 0x50, 0x01, 0x20, 0x70, 0x47 + + thumb_func_start sub_0201B578 +sub_0201B578: ; 0x0201B578 + lsl r0, r0, #0x5 + add r0, #0x34 + bx lr + .balign 4 + + thumb_func_start sub_0201B580 +sub_0201B580: ; 0x0201B580 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bne _0201B58C + bl sub_02020C2C +_0201B58C: + add r1, r4, #0x0 + add r1, #0x34 + lsl r0, r5, #0x2 + str r1, [r4, #0x20] + add r0, r1, r0 + str r0, [r4, #0x24] + strh r5, [r4, #0x0] + mov r0, #0x0 + strh r0, [r4, #0x2] + str r0, [r4, #0x28] + add r0, r4, #0x0 + bl sub_0201B5AC + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201B5AC +sub_0201B5AC: ; 0x0201B5AC + push {r4, lr} + add r4, r0, #0x0 + bl sub_0201B4FC + str r4, [r4, #0x4] + add r0, r4, #0x4 + str r0, [r4, #0xc] + str r0, [r4, #0x8] + mov r0, #0x0 + str r0, [r4, #0x10] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + ldr r0, [r4, #0xc] + str r0, [r4, #0x2c] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201B5CC +sub_0201B5CC: ; 0x0201B5CC + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x28] + cmp r0, #0x0 + bne _0201B608 + ldr r1, [r5, #0xc] + add r4, r5, #0x4 + str r1, [r5, #0x2c] + cmp r1, r4 + beq _0201B604 + mov r6, #0x0 +_0201B5E2: + ldr r0, [r1, #0x8] + str r0, [r5, #0x30] + ldr r0, [r5, #0x2c] + ldr r1, [r0, #0x18] + cmp r1, #0x0 + bne _0201B5FA + ldr r2, [r0, #0x14] + cmp r2, #0x0 + beq _0201B5FC + ldr r1, [r0, #0x10] + blx r2 + b _0201B5FC +_0201B5FA: + str r6, [r0, #0x18] +_0201B5FC: + ldr r1, [r5, #0x30] + str r1, [r5, #0x2c] + cmp r1, r4 + bne _0201B5E2 +_0201B604: + mov r0, #0x0 + str r0, [r1, #0x14] +_0201B608: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0201B60C +sub_0201B60C: ; 0x0201B60C + push {r3-r5, lr} + add r4, r0, #0x0 + mov r5, #0x1 + str r5, [r4, #0x28] + bl sub_0201B620 + mov r1, #0x0 + str r1, [r4, #0x28] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201B620 +sub_0201B620: ; 0x0201B620 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + bl sub_0201B530 + cmp r0, #0x0 + bne _0201B636 + mov r0, #0x0 + pop {r3-r7, pc} +_0201B636: + str r4, [r0, #0xc] + str r7, [r0, #0x10] + str r6, [r0, #0x14] + ldr r2, [r5, #0x2c] + ldr r1, [r2, #0x14] + cmp r1, #0x0 + beq _0201B656 + ldr r1, [r2, #0xc] + cmp r1, r4 + bhi _0201B650 + mov r1, #0x1 + str r1, [r0, #0x18] + b _0201B65A +_0201B650: + mov r1, #0x0 + str r1, [r0, #0x18] + b _0201B65A +_0201B656: + mov r1, #0x0 + str r1, [r0, #0x18] +_0201B65A: + ldr r3, [r5, #0xc] + add r2, r5, #0x4 + cmp r3, r2 + beq _0201B686 + ldr r4, [r0, #0xc] +_0201B664: + ldr r1, [r3, #0xc] + cmp r1, r4 + bls _0201B680 + ldr r1, [r3, #0x4] + str r1, [r0, #0x4] + str r3, [r0, #0x8] + ldr r1, [r3, #0x4] + str r0, [r1, #0x8] + str r0, [r3, #0x4] + ldr r1, [r5, #0x30] + cmp r3, r1 + bne _0201B69E + str r0, [r5, #0x30] + pop {r3-r7, pc} +_0201B680: + ldr r3, [r3, #0x8] + cmp r3, r2 + bne _0201B664 +_0201B686: + ldr r2, [r5, #0x30] + add r1, r5, #0x4 + cmp r2, r1 + bne _0201B690 + str r0, [r5, #0x30] +_0201B690: + ldr r1, [r5, #0x8] + str r1, [r0, #0x4] + add r1, r5, #0x4 + str r1, [r0, #0x8] + ldr r1, [r5, #0x8] + str r0, [r1, #0x8] + str r0, [r5, #0x8] +_0201B69E: + pop {r3-r7, pc} + + thumb_func_start sub_0201B6A0 +sub_0201B6A0: ; 0x0201B6A0 + add r1, r0, #0x0 + ldr r2, [r1, #0x0] + ldr r0, [r2, #0x30] + cmp r0, r1 + bne _0201B6AE + ldr r0, [r1, #0x8] + str r0, [r2, #0x30] +_0201B6AE: + ldr r2, [r1, #0x8] + ldr r0, [r1, #0x4] + ldr r3, _0201B6C0 ; =0x0201B54D + str r2, [r0, #0x8] + ldr r2, [r1, #0x4] + ldr r0, [r1, #0x8] + str r2, [r0, #0x4] + ldr r0, [r1, #0x0] + bx r3 + .balign 4 +_0201B6C0: .word 0x0201B54D + + thumb_func_start sub_0201B6C4 +sub_0201B6C4: ; 0x0201B6C4 + str r1, [r0, #0x14] + bx lr + + thumb_func_start sub_0201B6C8 +sub_0201B6C8: ; 0x0201B6C8 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start sub_0201B6CC +sub_0201B6CC: ; 0x0201B6CC + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_0201B6D0 +sub_0201B6D0: ; 0x0201B6D0 + push {r4-r7, lr} + sub sp, #0x34 + add r6, r1, #0x0 + add r4, r0, #0x0 + add r5, r2, #0x0 + ldmia r6!, {r0-r1} + add r2, sp, #0x1c + stmia r2!, {r0-r1} + ldr r0, [r6, #0x0] + add r4, #0x14 + str r0, [r2, #0x0] + mov r0, #0x20 + ldrsh r0, [r4, r0] + add r7, r3, #0x0 + mov r1, #0x1a + str r0, [sp, #0x0] + mov r0, #0x22 + ldrsh r0, [r4, r0] + mov r2, #0x1c + mov r3, #0x1e + str r0, [sp, #0x4] + add r0, sp, #0x28 + str r0, [sp, #0x8] + mov r0, #0x18 + ldrsh r0, [r4, r0] + ldrsh r1, [r4, r1] + ldrsh r2, [r4, r2] + ldrsh r3, [r4, r3] + bl sub_0201B808 + add r0, sp, #0x1c + blx sub_020B8474 + ldr r1, _0201B764 ; =0x021CEDD4 + add r0, r5, #0x0 + blx sub_020CE2E0 + ldr r1, _0201B768 ; =0x021CED98 + mov r0, #0xa4 + ldr r2, [r1, #0x7c] + bic r2, r0 + add r0, r7, #0x0 + str r2, [r1, #0x7c] + blx sub_020B844C + blx sub_020B849C + mov r1, #0x0 + mov r0, #0x11 + add r2, r1, #0x0 + blx sub_020BB1C0 + ldr r0, [r4, #0x24] + add r1, sp, #0x10 + str r0, [sp, #0x10] + str r0, [sp, #0x14] + str r0, [sp, #0x18] + mov r0, #0x1b + mov r2, #0x3 + blx sub_020BB1C0 + add r0, sp, #0x28 + bl sub_0201B82C + add r4, r0, #0x0 + mov r2, #0x1 + mov r0, #0x12 + add r1, sp, #0xc + str r2, [sp, #0xc] + blx sub_020BB1C0 + add r0, r4, #0x0 + add sp, #0x34 + pop {r4-r7, pc} + .balign 4 +_0201B764: .word 0x021CEDD4 +_0201B768: .word 0x021CED98 + + thumb_func_start sub_0201B76C +sub_0201B76C: ; 0x0201B76C + push {r3-r5, lr} + sub sp, #0x28 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x2 + ldrsh r0, [r4, r0] + str r0, [sp, #0x0] + mov r0, #0x4 + ldrsh r0, [r4, r0] + str r0, [sp, #0x4] + add r0, sp, #0x1c + str r0, [sp, #0x8] + mov r0, #0x0 + ldrsh r3, [r4, r0] + add r1, r0, #0x0 + add r2, r0, #0x0 + bl sub_0201B808 + add r0, r5, #0x0 + blx sub_020B8474 + blx sub_020B849C + mov r1, #0x0 + mov r0, #0x11 + add r2, r1, #0x0 + blx sub_020BB1C0 + ldr r0, [r4, #0x10] + lsl r2, r0, #0xc + ldr r0, [r4, #0xc] + lsl r1, r0, #0xc + ldr r0, [r4, #0x8] + lsl r0, r0, #0xc + str r0, [sp, #0x10] + str r1, [sp, #0x14] + str r2, [sp, #0x18] + mov r0, #0x1b + add r1, sp, #0x10 + mov r2, #0x3 + blx sub_020BB1C0 + add r0, sp, #0x1c + bl sub_0201B82C + add r4, r0, #0x0 + mov r2, #0x1 + mov r0, #0x12 + add r1, sp, #0xc + str r2, [sp, #0xc] + blx sub_020BB1C0 + add r0, r4, #0x0 + add sp, #0x28 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201B7DC +sub_0201B7DC: ; 0x0201B7DC + push {r4-r6, lr} + add r6, r3, #0x0 + add r4, r2, #0x0 + add r2, r6, #0x0 + add r5, r1, #0x0 + add r1, r6, #0x0 + add r2, #0x8 + bl sub_0201B880 + add r2, r6, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x2 + add r2, #0xc + bl sub_0201B880 + add r1, r6, #0x4 + add r6, #0x10 + add r0, r4, #0x0 + add r2, r6, #0x0 + bl sub_0201B880 + pop {r4-r6, pc} + + thumb_func_start sub_0201B808 +sub_0201B808: ; 0x0201B808 + push {r3-r4} + ldr r4, [sp, #0x10] + strh r0, [r4, #0x0] + strh r1, [r4, #0x2] + ldr r1, _0201B828 ; =0xFFFFFFF8 + strh r2, [r4, #0x4] + strh r3, [r4, #0x6] + add r1, sp + mov r0, #0x10 + ldrsh r0, [r1, r0] + strh r0, [r4, #0x8] + mov r0, #0x14 + ldrsh r0, [r1, r0] + strh r0, [r4, #0xa] + pop {r3-r4} + bx lr + .balign 4 +_0201B828: .word 0xFFFFFFF8 + + thumb_func_start sub_0201B82C +sub_0201B82C: ; 0x0201B82C + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r0, _0201B87C ; =0x000030C1 + mov r2, #0x1 + str r0, [sp, #0x4] + mov r0, #0x29 + add r1, sp, #0x4 + str r2, [sp, #0x8] + blx sub_020BB1C0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x40 + add r1, sp, #0x0 + mov r2, #0x1 + blx sub_020BB1C0 + mov r1, #0x0 + mov r0, #0x41 + add r2, r1, #0x0 + blx sub_020BB1C0 + mov r0, #0x70 + add r1, r4, #0x0 + mov r2, #0x3 + blx sub_020BB1C0 + blx sub_020BB394 + add r4, sp, #0x8 +_0201B86A: + add r0, r4, #0x0 + blx sub_020C7A14 + cmp r0, #0x0 + bne _0201B86A + ldr r0, [sp, #0x8] + add sp, #0xc + pop {r3-r4, pc} + nop +_0201B87C: .word 0x000030C1 + + thumb_func_start sub_0201B880 +sub_0201B880: ; 0x0201B880 + push {r3-r4} + ldr r4, _0201B8B4 ; =0x00007FFF + mov r3, #0x0 + cmp r0, r4 + blo _0201B896 +_0201B88A: + add r3, r3, #0x1 + lsl r3, r3, #0x18 + lsr r0, r0, #0x1 + lsr r3, r3, #0x18 + cmp r0, r4 + bhs _0201B88A +_0201B896: + strh r0, [r1, #0x0] + mov r0, #0x1 + mov r1, #0x0 + str r0, [r2, #0x0] + cmp r3, #0x0 + ble _0201B8AE +_0201B8A2: + ldr r0, [r2, #0x0] + add r1, r1, #0x1 + lsl r0, r0, #0x1 + str r0, [r2, #0x0] + cmp r1, r3 + blt _0201B8A2 +_0201B8AE: + pop {r3-r4} + bx lr + nop +_0201B8B4: .word 0x00007FFF + + thumb_func_start sub_0201B8B8 +sub_0201B8B8: ; 0x0201B8B8 + push {r4, lr} + add r4, r0, #0x0 + ldrh r1, [r4, #0x0] + ldr r0, _0201B8DC ; =0x0000FFFE + cmp r1, r0 + beq _0201B8C8 + bl sub_02020C2C +_0201B8C8: + ldrh r1, [r4, #0x0] + ldr r0, _0201B8DC ; =0x0000FFFE + cmp r1, r0 + bne _0201B8D8 + ldrh r0, [r4, #0x4] + add r1, r4, #0x6 + lsl r0, r0, #0x1 + add r4, r1, r0 +_0201B8D8: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_0201B8DC: .word 0x0000FFFE + + thumb_func_start sub_0201B8E0 +sub_0201B8E0: ; 0x0201B8E0 + push {r4, lr} + add r4, r0, #0x0 + ldrh r1, [r4, #0x0] + ldr r0, _0201B8F4 ; =0x0000FFFE + cmp r1, r0 + beq _0201B8F0 + bl sub_02020C2C +_0201B8F0: + ldrh r0, [r4, #0x2] + pop {r4, pc} + .balign 4 +_0201B8F4: .word 0x0000FFFE + + thumb_func_start sub_0201B8F8 +sub_0201B8F8: ; 0x0201B8F8 + push {r3, lr} + bl sub_0201B8E0 + mov r1, #0xff + lsl r1, r1, #0x8 + and r1, r0 + mov r0, #0x1 + lsl r0, r0, #0x8 + cmp r1, r0 + bne _0201B910 + mov r0, #0x1 + pop {r3, pc} +_0201B910: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0201B914 +sub_0201B914: ; 0x0201B914 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldrh r1, [r5, #0x0] + ldr r0, _0201B938 ; =0x0000FFFE + cmp r1, r0 + beq _0201B926 + bl sub_02020C2C +_0201B926: + ldrh r0, [r5, #0x4] + cmp r4, r0 + blo _0201B930 + bl sub_02020C2C +_0201B930: + lsl r0, r4, #0x1 + add r0, r5, r0 + ldrh r0, [r0, #0x6] + pop {r3-r5, pc} + .balign 4 +_0201B938: .word 0x0000FFFE + + thumb_func_start sub_0201B93C +sub_0201B93C: ; 0x0201B93C + mov r1, #0x5a + lsl r1, r1, #0x2 + cmp r0, r1 + blo _0201B948 + mov r0, #0x0 + bx lr +_0201B948: + lsl r1, r0, #0x2 + ldr r0, _0201B950 ; =0x020EDF50 + ldr r0, [r0, r1] + bx lr + .balign 4 +_0201B950: .word 0x020EDF50 + + thumb_func_start sub_0201B954 +sub_0201B954: ; 0x0201B954 + mov r1, #0x5a + lsl r1, r1, #0x2 + cmp r0, r1 + blo _0201B960 + mov r0, #0x0 + bx lr +_0201B960: + add r0, #0x5a + lsl r1, r0, #0x2 + ldr r0, _0201B96C ; =0x020EDF50 + ldr r0, [r0, r1] + bx lr + nop +_0201B96C: .word 0x020EDF50 + + thumb_func_start sub_0201B970 +sub_0201B970: ; 0x0201B970 + push {r3, lr} + mov r1, #0x5a + lsl r1, r1, #0x2 + blx sub_020EBC80 + ldr r0, _0201B984 ; =0x020EDF50 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + pop {r3, pc} + nop +_0201B984: .word 0x020EDF50 + + thumb_func_start sub_0201B988 +sub_0201B988: ; 0x0201B988 + push {r3, lr} + mov r1, #0x5a + lsl r1, r1, #0x2 + blx sub_020EBC80 + add r1, #0x5a + ldr r0, _0201B99C ; =0x020EDF50 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + pop {r3, pc} + .balign 4 +_0201B99C: .word 0x020EDF50 + + thumb_func_start sub_0201B9A0 +sub_0201B9A0: ; 0x0201B9A0 + push {r3, lr} + mov r1, #0x5a + lsl r1, r1, #0x2 + blx sub_020EBC80 + ldr r0, _0201B9B4 ; =0x020EDC7E + lsl r1, r1, #0x1 + ldrh r0, [r0, r1] + pop {r3, pc} + nop +_0201B9B4: .word 0x020EDC7E + + thumb_func_start sub_0201B9B8 +sub_0201B9B8: ; 0x0201B9B8 + push {r3, lr} + lsl r0, r0, #0x4 + mov r1, #0x5a + lsr r0, r0, #0x10 + lsl r1, r1, #0x2 + blx sub_020EBC80 + ldr r0, _0201B9D0 ; =0x020EDF50 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + pop {r3, pc} + nop +_0201B9D0: .word 0x020EDF50 + + thumb_func_start sub_0201B9D4 +sub_0201B9D4: ; 0x0201B9D4 + ldr r0, _0201B9DC ; =0x021C4D48 + ldr r0, [r0, #0x0] + bx lr + nop +_0201B9DC: .word 0x021C4D48 + + thumb_func_start sub_0201B9E0 +sub_0201B9E0: ; 0x0201B9E0 + ldr r1, _0201B9E8 ; =0x021C4D48 + str r0, [r1, #0x0] + bx lr + nop +_0201B9E8: .word 0x021C4D48 + + thumb_func_start sub_0201B9EC +sub_0201B9EC: ; 0x0201B9EC + ldr r1, _0201BA04 ; =0x021C4D48 + ldr r0, _0201BA08 ; =0x41C64E6D + ldr r2, [r1, #0x0] + add r3, r2, #0x0 + mul r3, r0 + ldr r0, _0201BA0C ; =0x00006073 + add r0, r3, r0 + str r0, [r1, #0x0] + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + .balign 4 +_0201BA04: .word 0x021C4D48 +_0201BA08: .word 0x41C64E6D +_0201BA0C: .word 0x00006073 + + thumb_func_start sub_0201BA10 +sub_0201BA10: ; 0x0201BA10 + ldr r1, _0201BA18 ; =0x6C078965 + mul r1, r0 + add r0, r1, #0x1 + bx lr + .balign 4 +_0201BA18: .word 0x6C078965 + + thumb_func_start sub_0201BA1C +sub_0201BA1C: ; 0x0201BA1C + push {r4-r5} + ldr r1, _0201BA50 ; =0x021C4D48 + mov r4, #0x27 + str r0, [r1, #0x4] + ldr r1, _0201BA54 ; =0x02105BA8 + mov r0, #0x1 + str r0, [r1, #0x0] + ldr r1, _0201BA58 ; =0x021C4D50 + ldr r3, _0201BA5C ; =0x6C078965 + lsl r4, r4, #0x4 +_0201BA30: + sub r2, r1, #0x4 + ldr r5, [r2, #0x0] + lsr r2, r5, #0x1e + eor r2, r5 + add r5, r2, #0x0 + mul r5, r3 + add r2, r0, r5 + add r0, r0, #0x1 + stmia r1!, {r2} + cmp r0, r4 + blt _0201BA30 + ldr r1, _0201BA54 ; =0x02105BA8 + str r0, [r1, #0x0] + pop {r4-r5} + bx lr + nop +_0201BA50: .word 0x021C4D48 +_0201BA54: .word 0x02105BA8 +_0201BA58: .word 0x021C4D50 +_0201BA5C: .word 0x6C078965 + + thumb_func_start sub_0201BA60 +sub_0201BA60: ; 0x0201BA60 + push {r3-r7, lr} + ldr r0, _0201BB44 ; =0x02105BA8 + ldr r1, [r0, #0x0] + mov r0, #0x27 + lsl r0, r0, #0x4 + cmp r1, r0 + blt _0201BB18 + add r0, r0, #0x1 + cmp r1, r0 + bne _0201BA7A + ldr r0, _0201BB48 ; =0x00001571 + bl sub_0201BA1C +_0201BA7A: + ldr r4, _0201BB4C ; =0x021C4D4C + ldr r1, _0201BB50 ; =0x02105BAC + ldr r5, _0201BB54 ; =0x7FFFFFFF + ldr r6, _0201BB58 ; =0x00000634 + mov r0, #0x0 +_0201BA84: + mov r2, #0x2 + ldr r3, [r4, #0x0] + lsl r2, r2, #0x1e + and r3, r2 + ldr r2, [r4, #0x4] + add r0, r0, #0x1 + and r2, r5 + orr r3, r2 + lsr r7, r3, #0x1 + lsl r3, r3, #0x1f + ldr r2, [r4, r6] + lsr r3, r3, #0x1d + ldr r3, [r1, r3] + eor r2, r7 + eor r2, r3 + stmia r4!, {r2} + cmp r0, #0xe3 + blt _0201BA84 + ldr r1, _0201BB5C ; =0x0000026F + cmp r0, r1 + bge _0201BAE4 + ldr r2, _0201BB4C ; =0x021C4D4C + lsl r1, r0, #0x2 + add r1, r2, r1 + mov r2, #0xe3 + ldr r4, _0201BB50 ; =0x02105BAC + ldr r3, _0201BB5C ; =0x0000026F + lsl r2, r2, #0x2 +_0201BABC: + mov r5, #0x2 + ldr r6, [r1, #0x0] + lsl r5, r5, #0x1e + and r5, r6 + ldr r7, [r1, #0x4] + ldr r6, _0201BB54 ; =0x7FFFFFFF + add r0, r0, #0x1 + and r6, r7 + orr r6, r5 + lsr r5, r6, #0x1 + sub r7, r1, r2 + lsl r6, r6, #0x1f + ldr r7, [r7, #0x0] + lsr r6, r6, #0x1d + ldr r6, [r4, r6] + eor r5, r7 + eor r5, r6 + stmia r1!, {r5} + cmp r0, r3 + blt _0201BABC +_0201BAE4: + ldr r2, _0201BB60 ; =0x021C56C8 + mov r0, #0x2 + ldr r1, [r2, #0x40] + lsl r0, r0, #0x1e + add r3, r1, #0x0 + ldr r1, _0201BB64 ; =0x021C4D48 + and r3, r0 + ldr r1, [r1, #0x4] + sub r0, r0, #0x1 + and r0, r1 + add r4, r3, #0x0 + orr r4, r0 + ldr r0, _0201BB68 ; =0x021C5348 + ldr r1, [r0, #0x34] + lsr r0, r4, #0x1 + add r3, r1, #0x0 + eor r3, r0 + lsl r0, r4, #0x1f + lsr r1, r0, #0x1d + ldr r0, _0201BB50 ; =0x02105BAC + ldr r0, [r0, r1] + mov r1, #0x0 + eor r0, r3 + str r0, [r2, #0x40] + ldr r0, _0201BB44 ; =0x02105BA8 + str r1, [r0, #0x0] +_0201BB18: + ldr r0, _0201BB44 ; =0x02105BA8 + ldr r2, [r0, #0x0] + add r1, r2, #0x1 + str r1, [r0, #0x0] + ldr r0, _0201BB4C ; =0x021C4D4C + lsl r1, r2, #0x2 + ldr r1, [r0, r1] + lsr r0, r1, #0xb + add r2, r1, #0x0 + eor r2, r0 + ldr r0, _0201BB6C ; =0x9D2C5680 + lsl r1, r2, #0x7 + and r0, r1 + eor r2, r0 + ldr r0, _0201BB70 ; =0xEFC60000 + lsl r1, r2, #0xf + and r0, r1 + add r1, r2, #0x0 + eor r1, r0 + lsr r0, r1, #0x12 + eor r0, r1 + pop {r3-r7, pc} + .balign 4 +_0201BB44: .word 0x02105BA8 +_0201BB48: .word 0x00001571 +_0201BB4C: .word 0x021C4D4C +_0201BB50: .word 0x02105BAC +_0201BB54: .word 0x7FFFFFFF +_0201BB58: .word 0x00000634 +_0201BB5C: .word 0x0000026F +_0201BB60: .word 0x021C56C8 +_0201BB64: .word 0x021C4D48 +_0201BB68: .word 0x021C5348 +_0201BB6C: .word 0x9D2C5680 +_0201BB70: .word 0xEFC60000 + + thumb_func_start sub_0201BB74 +sub_0201BB74: ; 0x0201BB74 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x10] + add r4, r2, #0x0 + add r6, r3, #0x0 + cmp r0, #0x1 + bne _0201BB8E + ldr r0, _0201BBC8 ; =0x0000FFFF + mul r0, r1 + lsl r0, r0, #0x8 + lsr r1, r0, #0x10 + b _0201BBA2 +_0201BB8E: + cmp r0, #0x2 + bne _0201BBA2 + ldr r0, _0201BBC8 ; =0x0000FFFF + mul r0, r1 + mov r1, #0x5a + lsl r1, r1, #0x2 + blx sub_020EBE8C + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 +_0201BBA2: + asr r0, r1, #0x4 + lsl r3, r0, #0x1 + lsl r1, r3, #0x1 + ldr r2, _0201BBCC ; =0x020FFA38 + add r3, r3, #0x1 + lsl r3, r3, #0x1 + ldrsh r1, [r2, r1] + ldrsh r2, [r2, r3] + add r0, r5, #0x0 + bl sub_020C3EA4 + add r0, r5, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + blx sub_020C3EB0 + pop {r4-r6, pc} + nop +_0201BBC8: .word 0x0000FFFF +_0201BBCC: .word 0x020FFA38 + + thumb_func_start sub_0201BBD0 +sub_0201BBD0: ; 0x0201BBD0 + push {r3-r7, lr} + sub sp, #0x38 + lsl r5, r0, #0xc + lsl r4, r1, #0xc + mov r1, #0x0 + lsl r0, r2, #0xc + lsl r6, r3, #0xc + str r1, [sp, #0x34] + str r0, [sp, #0x0] + str r0, [sp, #0x20] + str r1, [sp, #0x28] + str r1, [sp, #0x8] + str r1, [sp, #0xc] + asr r1, r5, #0x1f + add r0, r5, #0x0 + asr r3, r6, #0x1f + add r2, r6, #0x0 + str r5, [sp, #0x2c] + str r4, [sp, #0x30] + str r6, [sp, #0x24] + blx sub_020EBC30 + str r0, [sp, #0x4] + add r2, r4, #0x0 + ldr r0, [sp, #0x20] + add r7, r1, #0x0 + asr r1, r0, #0x1f + asr r3, r2, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + ldr r3, [sp, #0x4] + lsl r2, r2, #0xa + add r3, r3, r2 + ldr r2, _0201BC80 ; =0x00000000 + str r4, [sp, #0x2c] + adc r7, r2 + lsl r2, r7, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + mov r2, #0x2 + lsl r2, r2, #0xa + add r0, r0, r2 + ldr r2, _0201BC80 ; =0x00000000 + str r5, [sp, #0x30] + adc r1, r2 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + sub r2, r3, r0 + ldr r1, [sp, #0x8] + ldr r0, [sp, #0xc] + str r2, [sp, #0x10] + add r0, r1, r0 + add r7, r2, r0 + mov r0, #0x0 + str r0, [sp, #0x34] + add r0, sp, #0x2c + add r1, sp, #0x14 + blx sub_020C5288 + mov r1, #0x0 + ldr r0, [sp, #0x0] + str r1, [sp, #0x34] + str r0, [sp, #0x20] + str r1, [sp, #0x28] + add r0, sp, #0x20 + add r1, sp, #0x2c + add r2, sp, #0x8 + str r5, [sp, #0x2c] + str r4, [sp, #0x30] + str r6, [sp, #0x24] + blx sub_020C5600 + add r0, sp, #0x14 + add r1, sp, #0x8 + blx sub_020C5588 + asr r0, r0, #0xc + bpl _0201BC72 + neg r0, r0 +_0201BC72: + cmp r7, #0x0 + bgt _0201BC7C + mov r1, #0x0 + mvn r1, r1 + mul r0, r1 +_0201BC7C: + add sp, #0x38 + pop {r3-r7, pc} + .balign 4 +_0201BC80: .word 0x00000000 + + thumb_func_start sub_0201BC84 +sub_0201BC84: ; 0x0201BC84 + push {r3-r5, lr} + lsl r0, r0, #0xd + add r4, r1, #0x0 + ldr r2, _0201BCB4 ; =0x0000323D + asr r1, r0, #0x1f + mov r3, #0x0 + blx sub_020EBC30 + add r5, r0, #0x0 + ldr r0, _0201BCB8 ; =0x0000FFFF + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + mul r0, r4 + add r2, r5, r2 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + asr r1, r2, #0xc + blx sub_020EBC80 + pop {r3-r5, pc} + nop +_0201BCB4: .word 0x0000323D +_0201BCB8: .word 0x0000FFFF + + thumb_func_start sub_0201BCBC +sub_0201BCBC: ; 0x0201BCBC + ldr r1, _0201BCC4 ; =0x02105BB4 + str r0, [r1, #0x0] + bx lr + nop +_0201BCC4: .word 0x02105BB4 + + thumb_func_start sub_0201BCC8 +sub_0201BCC8: ; 0x0201BCC8 + push {r4-r6, lr} + ldr r4, _0201BCF8 ; =0x021C5714 + mov r5, #0x0 +_0201BCCE: + ldr r3, [r4, #0x0] + cmp r3, #0x0 + bne _0201BCE8 + ldr r6, _0201BCF8 ; =0x021C5714 + lsl r4, r5, #0x2 + bl sub_0200CA7C + str r0, [r6, r4] + ldr r0, [r6, r4] + cmp r0, #0x0 + bne _0201BCF0 + mov r5, #0x8 + b _0201BCF0 +_0201BCE8: + add r5, r5, #0x1 + add r4, r4, #0x4 + cmp r5, #0x8 + blt _0201BCCE +_0201BCF0: + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + pop {r4-r6, pc} + nop +_0201BCF8: .word 0x021C5714 + + thumb_func_start sub_0201BCFC +sub_0201BCFC: ; 0x0201BCFC + push {r4-r6, lr} + add r5, r0, #0x0 + cmp r5, #0x8 + blo _0201BD08 + bl sub_02020C2C +_0201BD08: + ldr r6, _0201BD40 ; =0x021C5714 + lsl r4, r5, #0x2 + ldr r0, [r6, r4] + cmp r0, #0x0 + bne _0201BD16 + bl sub_02020C2C +_0201BD16: + cmp r5, #0x8 + bhs _0201BD3C + ldr r0, [r6, r4] + cmp r0, #0x0 + beq _0201BD3C + bl sub_0201B6C8 + add r5, r0, #0x0 + beq _0201BD32 + bl sub_0201C238 + add r0, r5, #0x0 + bl sub_02016A18 +_0201BD32: + ldr r0, [r6, r4] + bl sub_0200CAB4 + mov r0, #0x0 + str r0, [r6, r4] +_0201BD3C: + pop {r4-r6, pc} + nop +_0201BD40: .word 0x021C5714 + + thumb_func_start sub_0201BD44 +sub_0201BD44: ; 0x0201BD44 + lsl r1, r0, #0x2 + ldr r0, _0201BD58 ; =0x021C5714 + ldr r0, [r0, r1] + cmp r0, #0x0 + beq _0201BD52 + mov r0, #0x1 + bx lr +_0201BD52: + mov r0, #0x0 + bx lr + nop +_0201BD58: .word 0x021C5714 + + thumb_func_start sub_0201BD5C +sub_0201BD5C: ; 0x0201BD5C + mov r1, #0x0 + ldr r2, _0201BD6C ; =0x021C5714 + add r0, r1, #0x0 +_0201BD62: + add r1, r1, #0x1 + stmia r2!, {r0} + cmp r1, #0x8 + blt _0201BD62 + bx lr + .balign 4 +_0201BD6C: .word 0x021C5714 + + thumb_func_start sub_0201BD70 +sub_0201BD70: ; 0x0201BD70 + push {r3, lr} + bl sub_0201BD44 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + + thumb_func_start sub_0201BD7C +sub_0201BD7C: ; 0x0201BD7C + ldr r3, _0201BD80 ; =sub_0201BCFC + bx r3 + .balign 4 +_0201BD80: .word sub_0201BCFC + 1 + + thumb_func_start sub_0201BD84 +sub_0201BD84: ; 0x0201BD84 + push {r3, lr} + sub sp, #0x18 + str r0, [sp, #0x4] + lsl r0, r3, #0x18 + lsr r3, r0, #0x18 + ldr r0, [sp, #0x20] + str r2, [sp, #0x0] + add r2, sp, #0x0 + strb r1, [r2, #0x9] + lsl r0, r0, #0x18 + strb r3, [r2, #0xa] + lsr r0, r0, #0x18 + strb r0, [r2, #0xb] + strb r3, [r2, #0xc] + strb r0, [r2, #0xd] + ldr r0, _0201BDDC ; =0x02105BB4 + lsl r1, r1, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r1 + ldrb r0, [r1, #0x2] + strb r0, [r2, #0xe] + ldrb r0, [r1, #0x3] + strb r0, [r2, #0xf] + ldrb r0, [r1, #0x4] + strb r0, [r2, #0x10] + ldrb r0, [r1, #0x5] + strb r0, [r2, #0x11] + ldrb r0, [r1, #0x6] + strb r0, [r2, #0x12] + ldrb r0, [r1, #0x7] + ldr r1, [sp, #0x24] + strb r0, [r2, #0x13] + mov r0, #0x0 + strh r0, [r2, #0x14] + strb r0, [r2, #0x16] + mov r0, #0xff + strb r0, [r2, #0x17] + ldr r2, [sp, #0x28] + add r0, sp, #0x0 + bl sub_0201BE98 + add sp, #0x18 + pop {r3, pc} + nop +_0201BDDC: .word 0x02105BB4 + + thumb_func_start sub_0201BDE0 +sub_0201BDE0: ; 0x0201BDE0 + push {r3, lr} + sub sp, #0x18 + str r0, [sp, #0x4] + lsl r0, r3, #0x18 + lsr r3, r0, #0x18 + ldr r0, [sp, #0x20] + str r2, [sp, #0x0] + add r2, sp, #0x0 + strb r1, [r2, #0x9] + lsl r0, r0, #0x18 + strb r3, [r2, #0xa] + lsr r0, r0, #0x18 + strb r0, [r2, #0xb] + strb r3, [r2, #0xc] + strb r0, [r2, #0xd] + ldr r0, _0201BE38 ; =0x02105BB4 + lsl r1, r1, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r1 + ldrb r0, [r1, #0x2] + strb r0, [r2, #0xe] + ldrb r0, [r1, #0x3] + strb r0, [r2, #0xf] + ldrb r0, [r1, #0x4] + ldr r1, [sp, #0x28] + strb r0, [r2, #0x10] + lsr r0, r1, #0x10 + strb r0, [r2, #0x11] + lsr r0, r1, #0x8 + strb r0, [r2, #0x13] + strb r1, [r2, #0x12] + mov r0, #0x0 + strh r0, [r2, #0x14] + strb r0, [r2, #0x16] + mov r0, #0xff + strb r0, [r2, #0x17] + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x2c] + add r0, sp, #0x0 + bl sub_0201BE98 + add sp, #0x18 + pop {r3, pc} + nop +_0201BE38: .word 0x02105BB4 + + thumb_func_start sub_0201BE3C +sub_0201BE3C: ; 0x0201BE3C + push {r3, lr} + sub sp, #0x18 + str r0, [sp, #0x4] + lsl r0, r3, #0x18 + lsr r3, r0, #0x18 + ldr r0, [sp, #0x20] + str r2, [sp, #0x0] + add r2, sp, #0x0 + strb r1, [r2, #0x9] + lsl r0, r0, #0x18 + strb r3, [r2, #0xa] + lsr r0, r0, #0x18 + strb r0, [r2, #0xb] + strb r3, [r2, #0xc] + strb r0, [r2, #0xd] + ldr r0, [sp, #0x2c] + strb r0, [r2, #0xe] + ldr r0, [sp, #0x30] + strb r0, [r2, #0xf] + ldr r0, _0201BE94 ; =0x02105BB4 + ldr r3, [r0, #0x0] + lsl r0, r1, #0x3 + add r0, r3, r0 + ldrb r0, [r0, #0x4] + ldr r1, [sp, #0x28] + strb r0, [r2, #0x10] + lsr r0, r1, #0x10 + strb r0, [r2, #0x11] + lsr r0, r1, #0x8 + strb r0, [r2, #0x13] + strb r1, [r2, #0x12] + mov r0, #0x0 + strh r0, [r2, #0x14] + strb r0, [r2, #0x16] + mov r0, #0xff + strb r0, [r2, #0x17] + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x34] + add r0, sp, #0x0 + bl sub_0201BE98 + add sp, #0x18 + pop {r3, pc} + nop +_0201BE94: .word 0x02105BB4 + + thumb_func_start sub_0201BE98 +sub_0201BE98: ; 0x0201BE98 + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _0201BFD0 ; =0x02105BB4 + add r6, r1, #0x0 + ldr r0, [r0, #0x0] + add r5, r2, #0x0 + cmp r0, #0x0 + bne _0201BEAC + mov r0, #0xff + pop {r3-r7, pc} +_0201BEAC: + mov r0, #0x0 + mov r1, #0x30 + bl sub_02016998 + add r4, r0, #0x0 + mov r1, #0x1 + add r0, #0x23 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + add r0, #0x24 + strb r3, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x25 + ldrb r2, [r0, #0x0] + mov r0, #0x7f + bic r2, r0 + lsl r0, r6, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x7f + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + add r0, r4, #0x0 + add r0, #0x25 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x26 + strb r3, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x27 + strb r3, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x29 + strb r3, [r0, #0x0] + add r1, r3, #0x0 +_0201BEF4: + add r0, r4, r3 + add r3, r3, #0x1 + strb r1, [r0, #0x1c] + cmp r3, #0x7 + blt _0201BEF4 + add r3, r7, #0x0 + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r4, #0x0] + bl sub_02021F2C + str r0, [r4, #0x0] + ldr r0, _0201BFD4 ; =0x021C570C + str r5, [r4, #0x18] + mov r1, #0x0 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_0201C1A8 + cmp r6, #0xff + beq _0201BF74 + cmp r6, #0x0 + beq _0201BF74 + add r0, r4, #0x0 + add r0, #0x25 + ldrb r2, [r0, #0x0] + mov r1, #0x7f + add r0, r2, #0x0 + bic r0, r1 + lsl r1, r2, #0x19 + lsr r1, r1, #0x19 + add r1, #0xff + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + mov r1, #0x7f + and r1, r2 + orr r1, r0 + add r0, r4, #0x0 + add r0, #0x25 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x25 + ldrb r1, [r0, #0x0] + mov r0, #0x80 + mov r2, #0x1 + orr r1, r0 + add r0, r4, #0x0 + add r0, #0x25 + strb r1, [r0, #0x0] + ldr r0, _0201BFD8 ; =sub_0201BFDC + add r1, r4, #0x0 + bl sub_0201BCC8 + add r1, r4, #0x0 + add r1, #0x28 + strb r0, [r1, #0x0] + add r4, #0x28 + ldrb r0, [r4, #0x0] + pop {r3-r7, pc} +_0201BF74: + add r0, r4, #0x0 + add r0, #0x25 + ldrb r1, [r0, #0x0] + mov r0, #0x7f + mov r5, #0x0 + bic r1, r0 + add r0, r4, #0x0 + add r0, #0x25 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x25 + ldrb r1, [r0, #0x0] + mov r0, #0x80 + bic r1, r0 + add r0, r4, #0x0 + add r0, #0x25 + strb r1, [r0, #0x0] + ldrb r0, [r7, #0x11] + ldrb r1, [r7, #0x12] + ldrb r2, [r7, #0x13] + bl sub_0201C05C + mov r7, #0x1 + lsl r7, r7, #0xa +_0201BFA4: + add r0, r4, #0x0 + bl sub_0201C048 + cmp r0, #0x1 + beq _0201BFB4 + add r5, r5, #0x1 + cmp r5, r7 + blo _0201BFA4 +_0201BFB4: + cmp r6, #0xff + beq _0201BFBE + ldr r0, [r4, #0x4] + bl sub_020191D0 +_0201BFBE: + add r0, r4, #0x0 + bl sub_0201C238 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x8 + pop {r3-r7, pc} + nop +_0201BFD0: .word 0x02105BB4 +_0201BFD4: .word 0x021C570C +_0201BFD8: .word sub_0201BFDC + 1 + + thumb_func_start sub_0201BFDC +sub_0201BFDC: ; 0x0201BFDC + push {r4, lr} + ldr r0, _0201C044 ; =0x021C570C + add r4, r1, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201C042 + add r0, r4, #0x0 + add r0, #0x29 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201C036 + mov r0, #0x0 + strh r0, [r4, #0x2a] + ldrb r0, [r4, #0x11] + ldrb r1, [r4, #0x12] + ldrb r2, [r4, #0x13] + bl sub_0201C05C + add r0, r4, #0x0 + bl sub_0201C048 + cmp r0, #0x0 + beq _0201C014 + cmp r0, #0x1 + beq _0201C02C + cmp r0, #0x3 + beq _0201C01A + pop {r4, pc} +_0201C014: + ldr r0, [r4, #0x4] + bl sub_020191D0 +_0201C01A: + ldr r2, [r4, #0x18] + cmp r2, #0x0 + beq _0201C042 + ldrh r1, [r4, #0x2a] + add r0, r4, #0x0 + blx r2 + add r4, #0x29 + strb r0, [r4, #0x0] + pop {r4, pc} +_0201C02C: + add r4, #0x28 + ldrb r0, [r4, #0x0] + bl sub_0201BCFC + pop {r4, pc} +_0201C036: + ldrh r1, [r4, #0x2a] + ldr r2, [r4, #0x18] + add r0, r4, #0x0 + blx r2 + add r4, #0x29 + strb r0, [r4, #0x0] +_0201C042: + pop {r4, pc} + .balign 4 +_0201C044: .word 0x021C570C + + thumb_func_start sub_0201C048 +sub_0201C048: ; 0x0201C048 + push {r4, lr} + add r4, r0, #0x0 +_0201C04C: + ldrb r0, [r4, #0x9] + add r1, r4, #0x0 + bl sub_02002DB0 + cmp r0, #0x2 + beq _0201C04C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201C05C +sub_0201C05C: ; 0x0201C05C + push {r3-r7, lr} + sub sp, #0x30 + ldr r3, _0201C0F8 ; =0x021C570C + mov r5, #0x0 + str r5, [sp, #0x20] + str r0, [sp, #0x24] + str r2, [sp, #0x28] + str r1, [sp, #0x2c] + strh r1, [r3, #0x6] + strh r0, [r3, #0x2] + add r0, sp, #0x20 + strh r2, [r3, #0x4] + str r5, [sp, #0x14] + str r0, [sp, #0x8] + mov r12, r0 + mov lr, r0 + str r0, [sp, #0x18] +_0201C07E: + mov r0, #0x0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + str r0, [sp, #0x4] + ldr r0, [sp, #0x8] + ldr r0, [r0, #0x0] + str r0, [sp, #0x1c] +_0201C08C: + mov r0, #0x0 + str r0, [sp, #0xc] + mov r0, lr + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + ldr r0, [r0, #0x0] + lsl r7, r0, #0x4 +_0201C09A: + ldr r0, [sp, #0x0] + mov r3, #0x0 + ldr r0, [r0, #0x0] + mov r4, r12 + lsl r6, r0, #0x8 +_0201C0A4: + ldr r0, [r4, #0x0] + add r1, r7, #0x0 + lsl r0, r0, #0xc + orr r0, r6 + orr r1, r0 + ldr r0, [sp, #0x1c] + add r3, r3, #0x1 + add r2, r0, #0x0 + orr r2, r1 + lsl r1, r5, #0x1 + ldr r0, _0201C0FC ; =0x021C5734 + add r5, r5, #0x1 + add r4, r4, #0x4 + strh r2, [r0, r1] + cmp r3, #0x4 + blt _0201C0A4 + ldr r0, [sp, #0x0] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + cmp r0, #0x4 + blt _0201C09A + ldr r0, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x4] + ldr r0, [sp, #0x10] + add r0, r0, #0x1 + str r0, [sp, #0x10] + cmp r0, #0x4 + blt _0201C08C + ldr r0, [sp, #0x8] + add r0, r0, #0x4 + str r0, [sp, #0x8] + ldr r0, [sp, #0x14] + add r0, r0, #0x1 + str r0, [sp, #0x14] + cmp r0, #0x4 + blt _0201C07E + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_0201C0F8: .word 0x021C570C +_0201C0FC: .word 0x021C5734 + + thumb_func_start sub_0201C100 +sub_0201C100: ; 0x0201C100 + ldrh r2, [r0, #0x0] + lsr r2, r2, #0x8 + lsl r3, r2, #0x1 + ldr r2, _0201C1A4 ; =0x021C5734 + ldrh r3, [r2, r3] + strh r3, [r1, #0x0] + ldrh r3, [r0, #0x0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0x2] + ldrh r3, [r0, #0x2] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x4] + ldrh r3, [r0, #0x2] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0x6] + ldrh r3, [r0, #0x4] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x8] + ldrh r3, [r0, #0x4] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0xa] + ldrh r3, [r0, #0x6] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0xc] + ldrh r3, [r0, #0x6] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0xe] + ldrh r3, [r0, #0x8] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x10] + ldrh r3, [r0, #0x8] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0x12] + ldrh r3, [r0, #0xa] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x14] + ldrh r3, [r0, #0xa] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0x16] + ldrh r3, [r0, #0xc] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x18] + ldrh r3, [r0, #0xc] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0x1a] + ldrh r3, [r0, #0xe] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x1c] + ldrh r0, [r0, #0xe] + lsl r0, r0, #0x18 + lsr r0, r0, #0x17 + ldrh r0, [r2, r0] + strh r0, [r1, #0x1e] + bx lr + .balign 4 +_0201C1A4: .word 0x021C5734 + + thumb_func_start sub_0201C1A8 +sub_0201C1A8: ; 0x0201C1A8 + mov r1, #0x0 + str r1, [r0, #0x2c] + bx lr + .balign 4 + + thumb_func_start sub_0201C1B0 +sub_0201C1B0: ; 0x0201C1B0 + push {r3-r5, lr} + sub sp, #0x8 + mov r1, #0x6 + mov r0, #0x0 + lsl r1, r1, #0x8 + bl sub_02016998 + mov r2, #0x0 + add r5, r0, #0x0 + str r2, [sp, #0x0] + mov r0, #0xe + mov r1, #0x5 + add r3, sp, #0x4 + bl sub_02006BB0 + add r4, r0, #0x0 + ldr r0, [sp, #0x4] + mov r2, #0x6 + ldr r0, [r0, #0x14] + add r1, r5, #0x0 + lsl r2, r2, #0x8 + blx sub_020CE210 + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201C1EC +sub_0201C1EC: ; 0x0201C1EC + push {r3-r7, lr} + sub sp, #0x18 + add r4, r0, #0x0 + ldr r0, [r4, #0x2c] + add r7, r3, #0x0 + ldr r5, [r4, #0x4] + cmp r0, #0x0 + bne _0201C202 + bl sub_0201C1B0 + str r0, [r4, #0x2c] +_0201C202: + mov r0, #0x6 + lsl r0, r0, #0x6 + add r6, r7, #0x0 + mul r6, r0 + add r0, r5, #0x0 + ldr r4, [r4, #0x2c] + bl sub_0201AB0C + sub r0, r0, #0x3 + lsl r0, r0, #0x13 + mov r1, #0x18 + lsr r2, r0, #0x10 + str r1, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + str r2, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + str r1, [sp, #0x10] + str r0, [sp, #0x14] + add r0, r5, #0x0 + add r1, r4, r6 + add r3, r2, #0x0 + bl sub_02019658 + add sp, #0x18 + pop {r3-r7, pc} + + thumb_func_start sub_0201C238 +sub_0201C238: ; 0x0201C238 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x2c] + cmp r0, #0x0 + beq _0201C24A + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x2c] +_0201C24A: + pop {r4, pc} + + thumb_func_start sub_0201C24C +sub_0201C24C: ; 0x0201C24C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0201C298 ; =0x021C5934 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201C25E + bl sub_02020C2C +_0201C25E: + add r0, r4, #0x0 + mov r1, #0xc + bl sub_02016998 + ldr r1, _0201C298 ; =0x021C5934 + cmp r0, #0x0 + str r0, [r1, #0x0] + bne _0201C272 + bl sub_02020C2C +_0201C272: + add r0, r4, #0x0 + lsl r1, r5, #0x4 + bl sub_02016998 + ldr r1, _0201C298 ; =0x021C5934 + ldr r2, [r1, #0x0] + str r0, [r2, #0x8] + ldr r0, [r1, #0x0] + mov r2, #0x0 + str r5, [r0, #0x0] + ldr r0, [r1, #0x0] + str r2, [r0, #0x4] + ldr r1, [r1, #0x0] + ldr r0, [r1, #0x8] + ldr r1, [r1, #0x0] + blx sub_020AEF1C + pop {r3-r5, pc} + nop +_0201C298: .word 0x021C5934 + + thumb_func_start sub_0201C29C +sub_0201C29C: ; 0x0201C29C + push {r3, lr} + ldr r0, _0201C2C4 ; =0x021C5934 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201C2AA + bl sub_02020C2C +_0201C2AA: + ldr r0, _0201C2C4 ; =0x021C5934 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x8] + bl sub_02016A18 + ldr r0, _0201C2C4 ; =0x021C5934 + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _0201C2C4 ; =0x021C5934 + mov r1, #0x0 + str r1, [r0, #0x0] + pop {r3, pc} + .balign 4 +_0201C2C4: .word 0x021C5934 + + thumb_func_start sub_0201C2C8 +sub_0201C2C8: ; 0x0201C2C8 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _0201C308 ; =0x021C5934 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r0, #0x0 + bne _0201C2DE + bl sub_02020C2C +_0201C2DE: + ldr r1, _0201C308 ; =0x021C5934 + ldr r0, [r1, #0x0] + ldr r2, [r0, #0x4] + add r2, r2, #0x1 + str r2, [r0, #0x4] + ldr r0, [r1, #0x0] + ldr r1, [r0, #0x4] + ldr r0, [r0, #0x0] + cmp r1, r0 + blo _0201C2FA + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} +_0201C2FA: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, r7, #0x0 + blx sub_020AEE40 + pop {r3-r7, pc} + .balign 4 +_0201C308: .word 0x021C5934 + + thumb_func_start sub_0201C30C +sub_0201C30C: ; 0x0201C30C + push {r3, lr} + ldr r0, _0201C324 ; =0x021C5934 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201C322 + blx sub_020AEEB8 + ldr r0, _0201C324 ; =0x021C5934 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x4] +_0201C322: + pop {r3, pc} + .balign 4 +_0201C324: .word 0x021C5934 + + thumb_func_start sub_0201C328 +sub_0201C328: ; 0x0201C328 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x30 + mul r1, r4 + bl sub_02016998 + ldr r2, _0201C344 ; =sub_0201C358 + add r1, r4, #0x0 + add r5, r0, #0x0 + blx sub_020B4568 + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 +_0201C344: .word sub_0201C358 + 1 + + thumb_func_start sub_0201C348 +sub_0201C348: ; 0x0201C348 + ldr r3, _0201C34C ; =sub_020B442C + bx r3 + .balign 4 +_0201C34C: .word sub_020B442C + + thumb_func_start sub_0201C350 +sub_0201C350: ; 0x0201C350 + ldr r3, _0201C354 ; =sub_02016A18 + bx r3 + .balign 4 +_0201C354: .word sub_02016A18 + 1 + + thumb_func_start sub_0201C358 +sub_0201C358: ; 0x0201C358 + push {r3, lr} + bl sub_0201C2C8 + pop {r3, pc} + + thumb_func_start sub_0201C360 +sub_0201C360: ; 0x0201C360 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x8 + bl sub_02016998 + mov r1, #0x14 + add r4, r0, #0x0 + add r0, r6, #0x0 + mul r1, r5 + bl sub_02016998 + str r0, [r4, #0x0] + mov r6, #0x0 + str r5, [r4, #0x4] + cmp r5, #0x0 + ble _0201C398 + add r5, r6, #0x0 +_0201C386: + ldr r0, [r4, #0x0] + add r0, r0, r5 + bl sub_0201C444 + ldr r0, [r4, #0x4] + add r6, r6, #0x1 + add r5, #0x14 + cmp r6, r0 + blt _0201C386 +_0201C398: + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0201C39C +sub_0201C39C: ; 0x0201C39C + push {r4, lr} + add r4, r0, #0x0 + bl sub_0201C414 + ldr r0, [r4, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201C3B4 +sub_0201C3B4: ; 0x0201C3B4 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + mov r4, #0x0 + add r7, r2, #0x0 + mov r12, r1 + add r6, r3, #0x0 + add r2, r4, #0x0 + cmp r0, #0x0 + ble _0201C3E2 + ldr r5, [r5, #0x0] + add r3, r5, #0x0 +_0201C3CC: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + bne _0201C3DA + mov r0, #0x14 + mul r0, r2 + add r4, r5, r0 + b _0201C3E2 +_0201C3DA: + add r2, r2, #0x1 + add r3, #0x14 + cmp r2, r0 + blt _0201C3CC +_0201C3E2: + cmp r4, #0x0 + bne _0201C3EA + mov r0, #0x0 + pop {r3-r7, pc} +_0201C3EA: + mov r0, r12 + str r0, [r4, #0x0] + str r7, [r4, #0x4] + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x18] + str r6, [r4, #0x8] + str r0, [r4, #0xc] + mov r0, #0xff + strb r0, [r4, #0x10] + lsl r1, r1, #0x4 + strb r0, [r4, #0x11] + add r0, r4, #0x0 + lsr r1, r1, #0x10 + bl sub_0201C454 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0201C40C +sub_0201C40C: ; 0x0201C40C + ldr r3, _0201C410 ; =sub_0201C444 + bx r3 + .balign 4 +_0201C410: .word sub_0201C444 + 1 + + thumb_func_start sub_0201C414 +sub_0201C414: ; 0x0201C414 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _0201C434 + add r4, r6, #0x0 +_0201C422: + ldr r0, [r5, #0x0] + add r0, r0, r4 + bl sub_0201C444 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0x14 + cmp r6, r0 + blt _0201C422 +_0201C434: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0201C438 +sub_0201C438: ; 0x0201C438 + ldr r3, _0201C440 ; =sub_0201C454 + lsl r1, r1, #0x4 + lsr r1, r1, #0x10 + bx r3 + .balign 4 +_0201C440: .word sub_0201C454 + 1 + + thumb_func_start sub_0201C444 +sub_0201C444: ; 0x0201C444 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + str r1, [r0, #0x8] + str r1, [r0, #0xc] + strb r1, [r0, #0x10] + strb r1, [r0, #0x11] + bx lr + + thumb_func_start sub_0201C454 +sub_0201C454: ; 0x0201C454 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02022244 + add r2, sp, #0x0 + strb r0, [r2, #0x0] + lsr r0, r0, #0x8 + strb r0, [r2, #0x1] + ldrb r0, [r2, #0x0] + add r1, sp, #0x0 + add r1, #0x2 + strb r0, [r2, #0x2] + ldrb r0, [r2, #0x1] + strb r0, [r2, #0x3] + ldrb r3, [r4, #0x10] + ldrb r0, [r2, #0x2] + cmp r3, r0 + beq _0201C482 + add r0, r4, #0x0 + bl sub_0201C49C +_0201C482: + add r0, sp, #0x0 + ldrb r1, [r4, #0x11] + ldrb r0, [r0, #0x3] + cmp r1, r0 + beq _0201C496 + add r1, sp, #0x0 + add r0, r4, #0x0 + add r1, #0x2 + bl sub_0201C4C8 +_0201C496: + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0201C49C +sub_0201C49C: ; 0x0201C49C + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0201C4F4 + ldr r3, [r5, #0x8] + add r2, r0, #0x0 + lsl r1, r3, #0x10 + ldr r6, _0201C4C4 ; =0x7FFF0000 + mov r0, #0x0 + and r3, r6 + lsr r3, r3, #0x10 + lsr r1, r1, #0xd + lsl r3, r3, #0x4 + bl sub_0201C2C8 + ldrb r0, [r4, #0x0] + strb r0, [r5, #0x10] + pop {r4-r6, pc} + nop +_0201C4C4: .word 0x7FFF0000 + + thumb_func_start sub_0201C4C8 +sub_0201C4C8: ; 0x0201C4C8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0201C500 + ldr r3, [r5, #0xc] + add r2, r0, #0x0 + lsl r1, r3, #0x10 + ldr r6, _0201C4F0 ; =0xFFFF0000 + mov r0, #0x1 + and r3, r6 + lsr r3, r3, #0x10 + lsr r1, r1, #0xd + lsl r3, r3, #0x3 + bl sub_0201C2C8 + ldrb r0, [r4, #0x1] + strb r0, [r5, #0x11] + pop {r4-r6, pc} + nop +_0201C4F0: .word 0xFFFF0000 + + thumb_func_start sub_0201C4F4 +sub_0201C4F4: ; 0x0201C4F4 + ldr r3, _0201C4FC ; =0x0201C50D + ldr r0, [r0, #0x4] + ldrb r1, [r1, #0x0] + bx r3 + .balign 4 +_0201C4FC: .word 0x0201C50D + + thumb_func_start sub_0201C500 +sub_0201C500: ; 0x0201C500 + ldr r3, _0201C508 ; =0x0201C541 + ldr r0, [r0, #0x4] + ldrb r1, [r1, #0x1] + bx r3 + .balign 4 +_0201C508: .word 0x0201C541 +_0201C50C: + .byte 0x18, 0xB4, 0x02, 0x1C + .byte 0x42, 0x32, 0x12, 0x88, 0x04, 0x1C, 0x3C, 0x34, 0xA3, 0x18, 0xA2, 0x5A, 0x1B, 0x1D, 0x51, 0x43 + .byte 0x5B, 0x18, 0x02, 0xD1, 0x00, 0x20, 0x18, 0xBC, 0x70, 0x47, 0x41, 0x69, 0x42, 0x18, 0x19, 0x68 + .byte 0x80, 0x68, 0x09, 0x04, 0x09, 0x0C, 0x08, 0x18, 0xC0, 0x00, 0x10, 0x18, 0x18, 0xBC, 0x70, 0x47 + .byte 0x18, 0xB4, 0x82, 0x8E, 0x84, 0x18, 0xE2, 0x88, 0xA3, 0x18, 0xA2, 0x5A, 0x1B, 0x1D, 0x51, 0x43 + .byte 0x5A, 0x18, 0x02, 0xD1, 0x00, 0x20, 0x18, 0xBC, 0x70, 0x47, 0x81, 0x6B, 0x41, 0x18, 0x10, 0x88 + .byte 0xC0, 0x00, 0x08, 0x18, 0x18, 0xBC, 0x70, 0x47 + + thumb_func_start sub_0201C568 +sub_0201C568: ; 0x0201C568 + ldr r1, [r1, #0x0] + ldr r0, [r0, #0x8] + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + lsr r1, r1, #0xd + lsr r0, r0, #0xd + add r0, r1, r0 + bx lr + + thumb_func_start sub_0201C578 +sub_0201C578: ; 0x0201C578 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl sub_0201C750 + add r0, r4, #0x0 + add r0, #0x3c + add r1, sp, #0x0 + blx sub_020BC2A0 + add r1, r0, #0x0 + bne _0201C598 + add sp, #0x10 + mov r0, #0x0 + pop {r4, pc} +_0201C598: + add r0, r4, #0x0 + bl sub_0201C568 + add sp, #0x10 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201C5A4 +sub_0201C5A4: ; 0x0201C5A4 + push {r3, lr} + ldr r0, [r1, #0x0] + mov r1, #0x7 + lsl r1, r1, #0x1a + and r1, r0 + lsr r1, r1, #0x1a + cmp r1, #0x4 + bhi _0201C5DA + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r3, #0 + lsl r4, r2, #0 + lsl r0, r1, #0 + lsl r4, r1, #0 + lsl r0, r2, #0 + mov r1, #0x4 + b _0201C5DE +_0201C5CE: + .byte 0x02, 0x21 + .byte 0x05, 0xE0, 0x01, 0x21, 0x03, 0xE0, 0x01, 0x21, 0x01, 0xE0 +_0201C5DA: + mov r0, #0x0 + pop {r3, pc} +_0201C5DE: + mov r3, #0x7 + lsl r3, r3, #0x14 + add r2, r0, #0x0 + and r2, r3 + lsl r3, r3, #0x3 + and r0, r3 + lsr r2, r2, #0x14 + lsr r0, r0, #0x17 + lsl r2, r2, #0x4 + lsl r0, r0, #0x4 + mul r0, r2 + blx sub_020EBE8C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0201C5FC +sub_0201C5FC: ; 0x0201C5FC + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl sub_0201C750 + add r0, r4, #0x0 + add r0, #0x3c + add r1, sp, #0x0 + blx sub_020BC2A0 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0201C5A4 + add sp, #0x10 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201C620 +sub_0201C620: ; 0x0201C620 + ldrb r3, [r0, #0x0] + strb r3, [r1, #0x0] + ldrb r0, [r0, #0x1] + strb r0, [r2, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0201C62C +sub_0201C62C: ; 0x0201C62C + ldrb r3, [r0, #0x2] + strb r3, [r1, #0x0] + ldrb r0, [r0, #0x3] + strb r0, [r2, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0201C638 +sub_0201C638: ; 0x0201C638 + push {r4-r5} + ldr r5, _0201C6B0 ; =0xFFFFFFF8 + ldr r4, [sp, #0xc] + add r5, sp + ldrb r5, [r5, #0x18] + cmp r5, #0x3 + bhi _0201C678 + add r5, r5, r5 + add r5, pc + ldrh r5, [r5, #0x6] + lsl r5, r5, #0x10 + asr r5, r5, #0x10 + add pc, r5 + lsl r6, r0, #0 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + lsl r4, r4, #0x3 + add r4, r0, r4 + ldrb r4, [r4, #0x4] + b _0201C678 +_0201C662: + .byte 0xE4, 0x00, 0x04, 0x19, 0x64, 0x79, 0x06, 0xE0, 0xE4, 0x00, 0x04, 0x19, 0xA4, 0x79 + .byte 0x02, 0xE0, 0xE4, 0x00, 0x04, 0x19, 0xE4, 0x79 +_0201C678: + cmp r1, #0x0 + beq _0201C682 + lsl r5, r4, #0x3 + ldrb r5, [r0, r5] + strb r5, [r1, #0x0] +_0201C682: + cmp r2, #0x0 + beq _0201C68E + lsl r1, r4, #0x3 + add r1, r0, r1 + ldrb r1, [r1, #0x1] + strb r1, [r2, #0x0] +_0201C68E: + cmp r3, #0x0 + beq _0201C69A + lsl r1, r4, #0x3 + add r1, r0, r1 + ldrb r1, [r1, #0x2] + strb r1, [r3, #0x0] +_0201C69A: + ldr r2, [sp, #0x8] + cmp r2, #0x0 + beq _0201C6A8 + lsl r1, r4, #0x3 + add r0, r0, r1 + ldrb r0, [r0, #0x3] + strb r0, [r2, #0x0] +_0201C6A8: + add r0, r4, #0x0 + pop {r4-r5} + bx lr + nop +_0201C6B0: .word 0xFFFFFFF8 + + thumb_func_start sub_0201C6B4 +sub_0201C6B4: ; 0x0201C6B4 + mov r2, #0x0 + ldrsb r1, [r0, r2] + cmp r1, #0x0 + beq _0201C6C4 +_0201C6BC: + add r2, r2, #0x1 + ldrsb r1, [r0, r2] + cmp r1, #0x0 + bne _0201C6BC +_0201C6C4: + add r0, r2, #0x0 + bx lr + + thumb_func_start sub_0201C6C8 +sub_0201C6C8: ; 0x0201C6C8 + push {r4-r5} + mov r4, #0x1 + mov r3, #0x0 + lsl r4, r4, #0x8 +_0201C6D0: + ldrsb r5, [r0, r3] + strb r5, [r1, r3] + ldrsb r5, [r0, r3] + cmp r2, r5 + beq _0201C6DE + cmp r5, #0x0 + bne _0201C6FE +_0201C6DE: + mov r4, #0x0 + strb r4, [r1, r3] + cmp r2, #0xd + bne _0201C6F6 + add r1, r3, #0x1 + ldrsb r1, [r0, r1] + cmp r1, #0xa + bne _0201C6F6 + add r1, r3, #0x2 + add r0, r0, r1 + pop {r4-r5} + bx lr +_0201C6F6: + add r1, r3, #0x1 + add r0, r0, r1 + pop {r4-r5} + bx lr +_0201C6FE: + add r3, r3, #0x1 + cmp r3, r4 + blt _0201C6D0 + mov r0, #0x0 + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_0201C70C +sub_0201C70C: ; 0x0201C70C + push {r4-r6, lr} + add r4, r0, #0x0 + bl sub_0201C6B4 + mov r5, #0x1 + mov r6, #0x0 + sub r3, r0, #0x1 + bmi _0201C74A + sub r1, r6, #0x1 + mov r0, #0xa +_0201C720: + ldrsb r2, [r4, r3] + cmp r2, #0x30 + blt _0201C732 + cmp r2, #0x39 + bgt _0201C732 + sub r2, #0x30 + mul r2, r5 + add r6, r6, r2 + b _0201C744 +_0201C732: + cmp r3, #0x0 + bne _0201C73E + cmp r2, #0x2d + bne _0201C744 + mul r6, r1 + b _0201C744 +_0201C73E: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_0201C744: + mul r5, r0 + sub r3, r3, #0x1 + bpl _0201C720 +_0201C74A: + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0201C750 +sub_0201C750: ; 0x0201C750 + push {r3-r5, lr} + mov r2, #0x0 + add r4, r1, #0x0 + add r5, r0, #0x0 + add r1, r2, #0x0 +_0201C75A: + lsl r0, r2, #0x2 + str r1, [r5, r0] + add r0, r2, #0x1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x4 + blo _0201C75A + add r0, r4, #0x0 + bl sub_0201C6B4 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r2, _0201C788 ; =0x00000000 + beq _0201C784 +_0201C776: + ldrsb r0, [r4, r2] + strb r0, [r5, r2] + add r0, r2, #0x1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, r1 + blo _0201C776 +_0201C784: + pop {r3-r5, pc} + nop +_0201C788: .word 0x00000000 + + thumb_func_start sub_0201C78C +sub_0201C78C: ; 0x0201C78C + ldr r1, _0201C79C ; =0x00000121 + cmp r0, r1 + bhs _0201C796 + mov r0, #0x1 + bx lr +_0201C796: + mov r0, #0x0 + bx lr + nop +_0201C79C: .word 0x00000121 + + thumb_func_start sub_0201C7A0 +sub_0201C7A0: ; 0x0201C7A0 + cmp r0, r1 + blt _0201C7A6 + add r0, r1, #0x0 +_0201C7A6: + bx lr + + thumb_func_start sub_0201C7A8 +sub_0201C7A8: ; 0x0201C7A8 + cmp r0, r1 + bgt _0201C7AE + add r0, r1, #0x0 +_0201C7AE: + bx lr + + thumb_func_start sub_0201C7B0 +sub_0201C7B0: ; 0x0201C7B0 + push {r3-r7, lr} + sub sp, #0x30 + add r4, r1, #0x0 + add r1, sp, #0x24 + blx sub_020C5288 + add r0, r4, #0x0 + add r1, sp, #0x18 + blx sub_020C5288 + ldr r0, [sp, #0x24] + ldr r4, [sp, #0x18] + str r0, [sp, #0x0] + asr r0, r0, #0x1f + str r0, [sp, #0x4] + ldr r0, [sp, #0x20] + asr r6, r4, #0x1f + str r0, [sp, #0x8] + asr r0, r0, #0x1f + str r0, [sp, #0xc] + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0x8] + asr r7, r0, #0x1f + ldr r3, [sp, #0xc] + add r1, r7, #0x0 + str r0, [sp, #0x10] + blx sub_020EBC30 + str r0, [sp, #0x14] + add r5, r1, #0x0 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r2, r4, #0x0 + add r3, r6, #0x0 + blx sub_020EBC30 + mov r2, #0x2 + ldr r3, [sp, #0x14] + lsl r2, r2, #0xa + add r3, r3, r2 + ldr r2, _0201C874 ; =0x00000000 + adc r5, r2 + lsl r2, r5, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + mov r2, #0x2 + lsl r2, r2, #0xa + add r0, r0, r2 + ldr r2, _0201C874 ; =0x00000000 + adc r1, r2 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + add r5, r3, r0 + ldr r0, [sp, #0x10] + add r1, r7, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + blx sub_020EBC30 + add r6, r0, #0x0 + add r4, r1, #0x0 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x8] + ldr r3, [sp, #0xc] + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r6, r6, r2 + adc r4, r3 + lsl r4, r4, #0x14 + lsr r6, r6, #0xc + orr r6, r4 + add r4, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r4, #0xc + orr r1, r0 + sub r0, r6, r1 + cmp r5, #0x0 + bne _0201C86A + cmp r0, #0x0 + ble _0201C862 + add sp, #0x30 + lsl r0, r2, #0x3 + pop {r3-r7, pc} +_0201C862: + mov r0, #0x3 + add sp, #0x30 + lsl r0, r0, #0xe + pop {r3-r7, pc} +_0201C86A: + add r1, r5, #0x0 + blx sub_020C5668 + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_0201C874: .word 0x00000000 + + thumb_func_start sub_0201C878 +sub_0201C878: ; 0x0201C878 + push {r0-r3} + push {r4-r7, lr} + sub sp, #0x54 + ldr r0, [sp, #0x7c] + ldr r2, [sp, #0x80] + str r0, [sp, #0x8] + ldr r0, [sp, #0x94] + ldr r1, [sp, #0x8c] + str r0, [sp, #0xc] + ldr r0, [sp, #0x88] + ldr r4, [sp, #0x70] + str r0, [sp, #0x10] + sub r0, r2, r1 + str r0, [sp, #0x14] + asr r0, r0, #0x1f + str r0, [sp, #0x18] + ldr r0, [sp, #0x8] + asr r0, r0, #0x1f + str r0, [sp, #0x1c] + ldr r0, [sp, #0x74] + sub r3, r0, r2 + sub r0, r1, r0 + str r3, [sp, #0x20] + asr r3, r3, #0x1f + str r3, [sp, #0x24] + ldr r3, [sp, #0xc] + str r0, [sp, #0x2c] + asr r0, r0, #0x1f + str r0, [sp, #0x30] + ldr r0, [sp, #0x10] + asr r3, r3, #0x1f + str r3, [sp, #0x28] + asr r0, r0, #0x1f + ldr r3, [sp, #0x68] + str r0, [sp, #0x34] + asr r0, r4, #0x1f + str r0, [sp, #0x38] + sub r2, r2, r3 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x1c] + asr r3, r2, #0x1f + blx sub_020EBC30 + add r7, r0, #0x0 + add r6, r1, #0x0 + ldr r3, [sp, #0x68] + ldr r2, [sp, #0x74] + ldr r0, [sp, #0x10] + sub r2, r3, r2 + ldr r1, [sp, #0x34] + asr r3, r2, #0x1f + blx sub_020EBC30 + add r5, r1, #0x0 + str r0, [sp, #0x3c] + ldr r1, [sp, #0x38] + ldr r2, [sp, #0x20] + ldr r3, [sp, #0x24] + add r0, r4, #0x0 + blx sub_020EBC30 + mov r2, #0x2 + str r0, [sp, #0x4c] + add r0, r1, #0x0 + mov r1, #0x0 + lsl r2, r2, #0xa + add r3, r7, r2 + adc r6, r1 + lsl r2, r6, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + mov r2, #0x2 + ldr r6, [sp, #0x3c] + lsl r2, r2, #0xa + add r2, r6, r2 + adc r5, r1 + mov r6, #0x2 + lsl r5, r5, #0x14 + lsr r2, r2, #0xc + orr r2, r5 + ldr r5, [sp, #0x4c] + lsl r6, r6, #0xa + add r5, r5, r6 + adc r0, r1 + lsl r0, r0, #0x14 + lsr r1, r5, #0xc + orr r1, r0 + add r0, r2, r1 + add r0, r3, r0 + str r0, [sp, #0x4] + ldr r3, [sp, #0x8c] + ldr r2, [sp, #0x68] + ldr r0, [sp, #0x10] + sub r2, r3, r2 + ldr r1, [sp, #0x34] + asr r3, r2, #0x1f + blx sub_020EBC30 + add r7, r0, #0x0 + add r6, r1, #0x0 + ldr r3, [sp, #0x68] + ldr r2, [sp, #0x80] + ldr r0, [sp, #0xc] + sub r2, r3, r2 + ldr r1, [sp, #0x28] + asr r3, r2, #0x1f + blx sub_020EBC30 + str r0, [sp, #0x40] + add r5, r1, #0x0 + ldr r1, [sp, #0x38] + ldr r2, [sp, #0x14] + ldr r3, [sp, #0x18] + add r0, r4, #0x0 + blx sub_020EBC30 + mov r2, #0x2 + str r0, [sp, #0x50] + add r0, r1, #0x0 + mov r1, #0x0 + lsl r2, r2, #0xa + add r3, r7, r2 + adc r6, r1 + lsl r2, r6, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + mov r2, #0x2 + ldr r6, [sp, #0x40] + lsl r2, r2, #0xa + add r2, r6, r2 + adc r5, r1 + mov r6, #0x2 + lsl r5, r5, #0x14 + lsr r2, r2, #0xc + orr r2, r5 + ldr r5, [sp, #0x50] + lsl r6, r6, #0xa + add r5, r5, r6 + adc r0, r1 + lsl r0, r0, #0x14 + lsr r1, r5, #0xc + orr r1, r0 + add r0, r2, r1 + add r0, r3, r0 + str r0, [sp, #0x0] + ldr r3, [sp, #0x74] + ldr r2, [sp, #0x68] + ldr r0, [sp, #0xc] + sub r2, r3, r2 + ldr r1, [sp, #0x28] + asr r3, r2, #0x1f + blx sub_020EBC30 + add r7, r0, #0x0 + add r6, r1, #0x0 + ldr r3, [sp, #0x68] + ldr r2, [sp, #0x8c] + ldr r0, [sp, #0x8] + sub r2, r3, r2 + ldr r1, [sp, #0x1c] + asr r3, r2, #0x1f + blx sub_020EBC30 + add r5, r1, #0x0 + str r0, [sp, #0x44] + ldr r1, [sp, #0x38] + ldr r2, [sp, #0x2c] + ldr r3, [sp, #0x30] + add r0, r4, #0x0 + blx sub_020EBC30 + mov r3, #0x2 + mov r2, #0x0 + lsl r3, r3, #0xa + add r4, r7, r3 + adc r6, r2 + lsl r3, r6, #0x14 + lsr r4, r4, #0xc + orr r4, r3 + mov r3, #0x2 + ldr r6, [sp, #0x44] + lsl r3, r3, #0xa + add r3, r6, r3 + adc r5, r2 + lsl r5, r5, #0x14 + lsr r3, r3, #0xc + orr r3, r5 + mov r5, #0x2 + lsl r5, r5, #0xa + add r5, r0, r5 + adc r1, r2 + lsl r0, r1, #0x14 + lsr r1, r5, #0xc + orr r1, r0 + add r0, r3, r1 + add r6, r4, r0 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x34] + ldr r2, [sp, #0x2c] + ldr r3, [sp, #0x30] + blx sub_020EBC30 + add r7, r0, #0x0 + add r5, r1, #0x0 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x20] + ldr r3, [sp, #0x24] + blx sub_020EBC30 + str r0, [sp, #0x48] + add r4, r1, #0x0 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x14] + ldr r3, [sp, #0x18] + blx sub_020EBC30 + mov r12, r0 + mov r0, #0x2 + add r2, r1, #0x0 + mov r1, #0x0 + lsl r0, r0, #0xa + add r0, r7, r0 + adc r5, r1 + lsl r3, r5, #0x14 + lsr r0, r0, #0xc + orr r0, r3 + mov r3, #0x2 + ldr r5, [sp, #0x48] + lsl r3, r3, #0xa + add r3, r5, r3 + adc r4, r1 + lsl r4, r4, #0x14 + lsr r3, r3, #0xc + orr r3, r4 + mov r4, #0x2 + lsl r4, r4, #0xa + mov r5, r12 + add r4, r5, r4 + adc r2, r1 + lsl r2, r2, #0x14 + lsr r4, r4, #0xc + orr r4, r2 + add r2, r3, r4 + add r0, r0, r2 + bpl _0201CA72 + add sp, #0x54 + add r0, r1, #0x0 + pop {r4-r7} + pop {r3} + add sp, #0x10 + bx r3 +_0201CA72: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bge _0201CA84 + add sp, #0x54 + add r0, r1, #0x0 + pop {r4-r7} + pop {r3} + add sp, #0x10 + bx r3 +_0201CA84: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bge _0201CA96 + add sp, #0x54 + add r0, r1, #0x0 + pop {r4-r7} + pop {r3} + add sp, #0x10 + bx r3 +_0201CA96: + cmp r6, #0x0 + blt _0201CA9C + mov r1, #0x1 +_0201CA9C: + add r0, r1, #0x0 + add sp, #0x54 + pop {r4-r7} + pop {r3} + add sp, #0x10 + bx r3 + + thumb_func_start sub_0201CAA8 +sub_0201CAA8: ; 0x0201CAA8 + push {r4-r5, lr} + sub sp, #0x24 + add r4, r1, #0x0 + ldr r1, [r4, #0x0] + ldr r3, _0201CB1C ; =0x020FFA38 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + asr r1, r1, #0x4 + lsl r2, r1, #0x1 + lsl r1, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r5, r0, #0x0 + bl sub_020C3F38 + ldr r0, [r4, #0x4] + ldr r3, _0201CB1C ; =0x020FFA38 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #0x4 + lsl r2, r0, #0x1 + lsl r1, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0x0 + bl sub_020C3F54 + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, r5, #0x0 + blx sub_020C400C + ldr r0, [r4, #0x8] + ldr r3, _0201CB1C ; =0x020FFA38 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #0x4 + lsl r2, r0, #0x1 + lsl r1, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0x0 + bl sub_020C3F70 + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, r5, #0x0 + blx sub_020C400C + add sp, #0x24 + pop {r4-r5, pc} + nop +_0201CB1C: .word 0x020FFA38 + + thumb_func_start sub_0201CB20 +sub_0201CB20: ; 0x0201CB20 + push {r4-r7, lr} + sub sp, #0x24 + add r6, r1, #0x0 + add r5, r2, #0x0 + lsl r1, r6, #0x2 + ldr r2, _0201CB78 ; =0x020EDF50 + add r6, #0x5a + add r4, r3, #0x0 + lsl r3, r6, #0x2 + ldr r1, [r2, r1] + ldr r2, [r2, r3] + add r7, r0, #0x0 + bl sub_020C3F38 + lsl r1, r5, #0x2 + ldr r3, _0201CB78 ; =0x020EDF50 + add r5, #0x5a + lsl r2, r5, #0x2 + ldr r1, [r3, r1] + ldr r2, [r3, r2] + add r0, sp, #0x0 + bl sub_020C3F54 + add r0, r7, #0x0 + add r1, sp, #0x0 + add r2, r7, #0x0 + blx sub_020C400C + lsl r1, r4, #0x2 + ldr r3, _0201CB78 ; =0x020EDF50 + add r4, #0x5a + lsl r2, r4, #0x2 + ldr r1, [r3, r1] + ldr r2, [r3, r2] + add r0, sp, #0x0 + bl sub_020C3F70 + add r0, r7, #0x0 + add r1, sp, #0x0 + add r2, r7, #0x0 + blx sub_020C400C + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 +_0201CB78: .word 0x020EDF50 + + thumb_func_start sub_0201CB7C +sub_0201CB7C: ; 0x0201CB7C + push {r3-r7, lr} + asr r0, r0, #0x4 + add r7, r2, #0x0 + lsl r2, r0, #0x1 + add r6, r1, #0x0 + lsl r0, r2, #0x1 + ldr r1, _0201CBE8 ; =0x020FFA38 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r0, [r1, r0] + ldrsh r1, [r1, r2] + add r5, r3, #0x0 + ldr r4, [sp, #0x18] + blx sub_020C50B8 + add r2, r0, #0x0 + asr r1, r6, #0x1f + add r0, r6, #0x0 + asr r3, r2, #0x1f + blx sub_020EBC30 + mov r6, #0x2 + mov r2, #0x0 + lsl r6, r6, #0xa + add r0, r0, r6 + adc r1, r2 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + asr r3, r0, #0x1f + lsr r1, r0, #0x13 + lsl r3, r3, #0xd + orr r3, r1 + lsl r0, r0, #0xd + add r0, r0, r6 + adc r3, r2 + lsl r1, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + asr r1, r0, #0x1f + asr r3, r7, #0x1f + add r2, r7, #0x0 + str r0, [r4, #0x0] + blx sub_020EBC30 + mov r3, #0x0 + add r2, r6, #0x0 + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [r5, #0x0] + pop {r3-r7, pc} + .balign 4 +_0201CBE8: .word 0x020FFA38 + + thumb_func_start sub_0201CBEC +sub_0201CBEC: ; 0x0201CBEC + push {r3, lr} + sub r0, r0, r2 + sub r2, r1, r3 + add r1, r0, #0x0 + mul r1, r0 + add r0, r2, #0x0 + mul r0, r2 + add r0, r1, r0 + lsl r0, r0, #0xc + blx sub_020C504C + asr r0, r0, #0xc + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0201CC08 +sub_0201CC08: ; 0x0201CC08 + push {r3, lr} + ldr r0, _0201CC20 ; =0x021C5978 + ldrh r0, [r0, #0x1a] + cmp r0, #0x0 + beq _0201CC16 + bl sub_02020C2C +_0201CC16: + ldr r0, _0201CC20 ; =0x021C5978 + mov r1, #0x0 + strh r1, [r0, #0x18] + strh r1, [r0, #0x1a] + pop {r3, pc} + .balign 4 +_0201CC20: .word 0x021C5978 + + thumb_func_start sub_0201CC24 +sub_0201CC24: ; 0x0201CC24 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + ldr r0, _0201CC74 ; =0x021C5978 + ldrh r0, [r0, #0x1a] + cmp r0, #0x0 + beq _0201CC36 + bl sub_02020C2C +_0201CC36: + cmp r4, #0x5 + bhs _0201CC3E + cmp r4, #0x0 + bne _0201CC44 +_0201CC3E: + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_0201CC44: + ldr r0, _0201CC74 ; =0x021C5978 + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0201CC52 + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_0201CC52: + add r0, r4, #0x0 + bl sub_0201CE2C + cmp r0, #0x1 + bne _0201CC70 + mov r2, #0x0 + str r2, [sp, #0x0] + lsl r0, r4, #0x1 + str r0, [sp, #0x4] + mov r0, #0x2 + mov r1, #0x1 + add r3, r2, #0x0 + bl sub_0201CC78 + mov r0, #0x1 +_0201CC70: + add sp, #0x8 + pop {r4, pc} + .balign 4 +_0201CC74: .word 0x021C5978 + + thumb_func_start sub_0201CC78 +sub_0201CC78: ; 0x0201CC78 + push {r4, lr} + ldr r4, _0201CC9C ; =0x021C5978 + strh r0, [r4, #0x18] + ldr r0, _0201CCA0 ; =0x021C4918 + strb r1, [r0, #0x4] + ldr r0, _0201CCA4 ; =0x021C5938 + ldr r1, [sp, #0xc] + str r2, [r0, #0x0] + str r3, [r0, #0x4] + str r1, [r0, #0x8] + ldr r1, [sp, #0x8] + str r1, [r0, #0x54] + ldr r0, _0201CCA8 ; =0x021C5944 + mov r1, #0x9 + bl sub_0201CCAC + pop {r4, pc} + nop +_0201CC9C: .word 0x021C5978 +_0201CCA0: .word 0x021C4918 +_0201CCA4: .word 0x021C5938 +_0201CCA8: .word 0x021C5944 + + thumb_func_start sub_0201CCAC +sub_0201CCAC: ; 0x0201CCAC + mov r3, #0x0 + cmp r1, #0x0 + ble _0201CCBE + add r2, r3, #0x0 +_0201CCB4: + add r3, r3, #0x1 + strh r2, [r0, #0x4] + add r0, #0x8 + cmp r3, r1 + blt _0201CCB4 +_0201CCBE: + bx lr + + thumb_func_start sub_0201CCC0 +sub_0201CCC0: ; 0x0201CCC0 + push {r4-r6, lr} + ldr r0, _0201CD00 ; =0x021C5978 + mov r5, #0x0 + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + bne _0201CCD0 + mov r0, #0x1 + pop {r4-r6, pc} +_0201CCD0: + mov r4, #0x4 + add r6, r4, #0x0 +_0201CCD4: + blx sub_020D3C14 + add r0, r4, #0x0 + blx sub_020D36D8 + add r0, r6, #0x0 + blx sub_020D36C4 + cmp r0, #0x0 + beq _0201CCEA + add r5, r5, #0x1 +_0201CCEA: + cmp r0, #0x0 + beq _0201CCF2 + cmp r5, #0x5 + bls _0201CCD4 +_0201CCF2: + cmp r5, #0x5 + bls _0201CCFA + mov r0, #0x2 + pop {r4-r6, pc} +_0201CCFA: + mov r0, #0x1 + pop {r4-r6, pc} + nop +_0201CD00: .word 0x021C5978 + + thumb_func_start sub_0201CD04 +sub_0201CD04: ; 0x0201CD04 + push {r4, lr} + sub sp, #0x8 + ldr r0, _0201CD34 ; =0x021C5978 + ldrh r0, [r0, #0x1a] + cmp r0, #0x0 + beq _0201CD14 + bl sub_02020C2C +_0201CD14: + bl sub_0201CCC0 + add r4, r0, #0x0 + cmp r4, #0x1 + bne _0201CD2E + mov r0, #0x0 + str r0, [sp, #0x0] + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + str r0, [sp, #0x4] + bl sub_0201CC78 +_0201CD2E: + add r0, r4, #0x0 + add sp, #0x8 + pop {r4, pc} + .balign 4 +_0201CD34: .word 0x021C5978 + + thumb_func_start sub_0201CD38 +sub_0201CD38: ; 0x0201CD38 + push {r3-r7, lr} + add r4, r0, #0x0 + ldr r0, _0201CD8C ; =0x021C5978 + add r6, r1, #0x0 + ldrh r0, [r0, #0x1a] + add r7, r2, #0x0 + mov r5, #0x3 + cmp r0, #0x0 + beq _0201CD4E + bl sub_02020C2C +_0201CD4E: + ldr r0, _0201CD8C ; =0x021C5978 + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0201CD88 + blx sub_020D3A90 + add r5, r0, #0x0 + ldr r0, _0201CD90 ; =0x021C5944 + mov r1, #0x9 + bl sub_0201CD94 + cmp r4, #0x0 + beq _0201CD70 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0201CFD0 +_0201CD70: + ldr r0, _0201CD8C ; =0x021C5978 + ldrh r0, [r0, #0x18] + cmp r0, #0x1 + bne _0201CD86 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r7, #0x0 + bl sub_0201CE70 + add r5, r0, #0x0 + b _0201CD88 +_0201CD86: + mov r5, #0x1 +_0201CD88: + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_0201CD8C: .word 0x021C5978 +_0201CD90: .word 0x021C5944 + + thumb_func_start sub_0201CD94 +sub_0201CD94: ; 0x0201CD94 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r7, #0x0 + str r1, [sp, #0x0] + add r0, r1, #0x0 + beq _0201CDCA + add r4, r5, #0x0 + add r6, sp, #0x4 +_0201CDA6: + add r0, sp, #0x4 + add r1, r5, #0x0 + blx sub_020D36F0 + ldrh r0, [r6, #0x0] + add r7, r7, #0x1 + add r5, #0x8 + strh r0, [r4, #0x0] + ldrh r0, [r6, #0x2] + strh r0, [r4, #0x2] + ldrh r0, [r6, #0x4] + strh r0, [r4, #0x4] + ldrh r0, [r6, #0x6] + strh r0, [r4, #0x6] + ldr r0, [sp, #0x0] + add r4, #0x8 + cmp r7, r0 + blo _0201CDA6 +_0201CDCA: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0201CDD0 +sub_0201CDD0: ; 0x0201CDD0 + push {r3, lr} + ldr r0, _0201CDFC ; =0x021C5978 + ldrh r1, [r0, #0x1a] + cmp r1, #0x0 + beq _0201CDF8 + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0201CDF8 + ldr r0, _0201CE00 ; =0x021C5938 + ldr r0, [r0, #0x8] + lsr r0, r0, #0x1 + bl sub_0201CE2C + cmp r0, #0x1 + beq _0201CDF2 + bl sub_02020C2C +_0201CDF2: + ldr r0, _0201CDFC ; =0x021C5978 + mov r1, #0x0 + strh r1, [r0, #0x1a] +_0201CDF8: + pop {r3, pc} + nop +_0201CDFC: .word 0x021C5978 +_0201CE00: .word 0x021C5938 + + thumb_func_start sub_0201CE04 +sub_0201CE04: ; 0x0201CE04 + push {r3, lr} + ldr r0, _0201CE28 ; =0x021C5978 + ldrh r1, [r0, #0x1a] + cmp r1, #0x1 + beq _0201CE26 + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0201CE26 + bl sub_0201CCC0 + cmp r0, #0x1 + beq _0201CE20 + bl sub_02020C2C +_0201CE20: + ldr r0, _0201CE28 ; =0x021C5978 + mov r1, #0x1 + strh r1, [r0, #0x1a] +_0201CE26: + pop {r3, pc} + .balign 4 +_0201CE28: .word 0x021C5978 + + thumb_func_start sub_0201CE2C +sub_0201CE2C: ; 0x0201CE2C + push {r3-r7, lr} + mov r5, #0x0 + lsl r0, r0, #0x10 + ldr r7, _0201CE6C ; =0x021C5944 + add r6, r5, #0x0 + lsr r4, r0, #0x10 +_0201CE38: + add r0, r6, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + mov r3, #0x9 + blx sub_020D3CB8 + mov r0, #0x2 + blx sub_020D36D8 + mov r0, #0x2 + blx sub_020D36C4 + cmp r0, #0x0 + beq _0201CE56 + add r5, r5, #0x1 +_0201CE56: + cmp r0, #0x0 + beq _0201CE5E + cmp r5, #0x5 + ble _0201CE38 +_0201CE5E: + cmp r5, #0x5 + ble _0201CE66 + mov r0, #0x2 + pop {r3-r7, pc} +_0201CE66: + mov r0, #0x1 + pop {r3-r7, pc} + nop +_0201CE6C: .word 0x021C5944 + + thumb_func_start sub_0201CE70 +sub_0201CE70: ; 0x0201CE70 + push {r3, lr} + cmp r0, #0x5 + bhi _0201CE9A + add r3, r0, r0 + add r3, pc + ldrh r3, [r3, #0x6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 + lsl r6, r2, #0 + lsl r2, r1, #0 + lsl r6, r2, #0 + lsl r2, r1, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + bl sub_0201CEA0 + pop {r3, pc} +_0201CE94: + .byte 0x00, 0xF0, 0x60, 0xF8, 0x08, 0xBD +_0201CE9A: + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0201CEA0 +sub_0201CEA0: ; 0x0201CEA0 + push {r3-r7, lr} + sub sp, #0x8 + ldr r5, _0201CF50 ; =0x021C5938 + str r1, [sp, #0x4] + ldr r1, [r5, #0x8] + str r0, [sp, #0x0] + add r7, r2, #0x0 + mov r4, #0x0 + cmp r1, #0x0 + bls _0201CF46 +_0201CEB4: + ldr r0, [sp, #0x4] + sub r0, r0, r1 + add r0, r4, r0 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bpl _0201CEC8 + add r0, #0x9 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 +_0201CEC8: + lsl r1, r0, #0x3 + ldr r0, _0201CF54 ; =0x021C5938 + add r1, r0, r1 + ldrh r0, [r1, #0x10] + cmp r0, #0x1 + bne _0201CF3E + ldrh r0, [r1, #0x12] + cmp r0, #0x0 + bne _0201CF3E + ldr r2, [r5, #0x54] + ldr r0, [r5, #0x0] + lsl r2, r2, #0x3 + add r2, r0, r2 + add r0, r2, #0x0 + sub r0, #0x8 + ldrh r3, [r1, #0xc] + ldrh r0, [r0, #0x0] + cmp r0, r3 + blt _0201CEF2 + sub r3, r0, r3 + b _0201CEF4 +_0201CEF2: + sub r3, r3, r0 +_0201CEF4: + sub r6, r2, #0x6 + ldrh r0, [r1, #0xe] + ldrh r6, [r6, #0x0] + cmp r6, r0 + blt _0201CF02 + sub r0, r6, r0 + b _0201CF04 +_0201CF02: + sub r0, r0, r6 +_0201CF04: + cmp r3, r7 + bhs _0201CF0C + cmp r0, r7 + blo _0201CF3E +_0201CF0C: + ldrh r0, [r1, #0xc] + strh r0, [r2, #0x0] + ldrh r0, [r1, #0xe] + strh r0, [r2, #0x2] + ldrh r0, [r1, #0x10] + strh r0, [r2, #0x4] + ldrh r0, [r1, #0x12] + strh r0, [r2, #0x6] + ldr r0, [r5, #0x54] + add r0, r0, #0x1 + str r0, [r5, #0x54] + ldr r1, [r5, #0x4] + cmp r0, r1 + blo _0201CF3E + ldr r2, [sp, #0x0] + cmp r2, #0x1 + bne _0201CF36 + blx sub_020EBE8C + str r1, [r5, #0x54] + b _0201CF3E +_0201CF36: + mov r0, #0x0 + add sp, #0x8 + mvn r0, r0 + pop {r3-r7, pc} +_0201CF3E: + ldr r1, [r5, #0x8] + add r4, r4, #0x1 + cmp r4, r1 + blo _0201CEB4 +_0201CF46: + ldr r0, _0201CF50 ; =0x021C5938 + ldr r0, [r0, #0x54] + add sp, #0x8 + pop {r3-r7, pc} + nop +_0201CF50: .word 0x021C5938 +_0201CF54: .word 0x021C5938 + + thumb_func_start sub_0201CF58 +sub_0201CF58: ; 0x0201CF58 + push {r3-r7, lr} + ldr r5, _0201CFC8 ; =0x021C5938 + str r1, [sp, #0x0] + ldr r1, [r5, #0x8] + add r7, r0, #0x0 + mov r4, #0x0 + cmp r1, #0x0 + bls _0201CFC0 +_0201CF68: + ldr r0, [sp, #0x0] + sub r0, r0, r1 + add r0, r4, r0 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + asr r1, r0, #0x10 + bpl _0201CF7C + add r1, #0x9 + lsl r0, r1, #0x10 + asr r1, r0, #0x10 +_0201CF7C: + ldr r0, [r5, #0x54] + lsl r1, r1, #0x3 + lsl r3, r0, #0x3 + ldr r0, _0201CFCC ; =0x021C5938 + ldr r6, [r5, #0x0] + add r2, r0, r1 + ldrh r0, [r2, #0xc] + add r1, r6, r3 + strh r0, [r6, r3] + ldrh r0, [r2, #0xe] + strh r0, [r1, #0x2] + ldrh r0, [r2, #0x10] + strh r0, [r1, #0x4] + ldrh r0, [r2, #0x12] + strh r0, [r1, #0x6] + ldr r0, [r5, #0x54] + add r0, r0, #0x1 + str r0, [r5, #0x54] + ldr r1, [r5, #0x4] + cmp r0, r1 + blo _0201CFB8 + cmp r7, #0x4 + bne _0201CFB2 + blx sub_020EBE8C + str r1, [r5, #0x54] + b _0201CFB8 +_0201CFB2: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0201CFB8: + ldr r1, [r5, #0x8] + add r4, r4, #0x1 + cmp r4, r1 + blo _0201CF68 +_0201CFC0: + ldr r0, _0201CFC8 ; =0x021C5938 + ldr r0, [r0, #0x54] + pop {r3-r7, pc} + nop +_0201CFC8: .word 0x021C5938 +_0201CFCC: .word 0x021C5938 + + thumb_func_start sub_0201CFD0 +sub_0201CFD0: ; 0x0201CFD0 + push {r4-r7} + mov r2, #0x0 + strh r2, [r0, #0x0] + add r3, r0, #0x0 + add r6, r2, #0x0 +_0201CFDA: + strh r6, [r3, #0x8] + strh r6, [r3, #0x6] + strh r6, [r3, #0x2] + strh r6, [r3, #0x4] + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, #0x8 + blt _0201CFDA + ldr r2, _0201D038 ; =0x021C5938 + ldr r3, [r2, #0x8] + cmp r3, #0x0 + bls _0201D034 + ldr r4, _0201D03C ; =0x021C5938 +_0201CFF4: + sub r3, r1, r3 + add r3, r6, r3 + add r3, r3, #0x1 + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + bpl _0201D006 + add r3, #0x9 + lsl r3, r3, #0x10 + asr r3, r3, #0x10 +_0201D006: + lsl r3, r3, #0x3 + add r5, r4, r3 + ldrh r3, [r5, #0x12] + cmp r3, #0x0 + bne _0201D02C + ldrh r3, [r0, #0x0] + ldrh r7, [r5, #0xc] + lsl r3, r3, #0x3 + add r3, r0, r3 + strh r7, [r3, #0x2] + ldrh r7, [r5, #0xe] + strh r7, [r3, #0x4] + ldrh r7, [r5, #0x10] + strh r7, [r3, #0x6] + ldrh r5, [r5, #0x12] + strh r5, [r3, #0x8] + ldrh r3, [r0, #0x0] + add r3, r3, #0x1 + strh r3, [r0, #0x0] +_0201D02C: + ldr r3, [r2, #0x8] + add r6, r6, #0x1 + cmp r6, r3 + blo _0201CFF4 +_0201D034: + pop {r4-r7} + bx lr + .balign 4 +_0201D038: .word 0x021C5938 +_0201D03C: .word 0x021C5938 + + thumb_func_start sub_0201D040 +sub_0201D040: ; 0x0201D040 + ldr r1, _0201D054 ; =0x04001000 + ldr r2, [r1, #0x0] + ldr r1, _0201D058 ; =0x00300010 + lsl r3, r1, #0x16 + ldr r3, [r3, #0x0] + and r2, r1 + and r1, r3 + ldr r3, _0201D05C ; =sub_0201D060 + bx r3 + nop +_0201D054: .word 0x04001000 +_0201D058: .word 0x00300010 +_0201D05C: .word sub_0201D060 + 1 + + thumb_func_start sub_0201D060 +sub_0201D060: ; 0x0201D060 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, _0201D120 ; =0x021C5994 + str r1, [sp, #0x0] + ldr r0, [r0, #0x0] + str r2, [sp, #0x4] + cmp r0, #0x0 + bne _0201D11A + ldr r0, [r5, #0xc] + mov r1, #0x3c + bl sub_02016998 + add r1, r0, #0x0 + ldr r0, _0201D120 ; =0x021C5994 + mov r2, #0x3c + str r1, [r0, #0x0] + mov r0, #0x0 + blx sub_020CE1FC + ldr r1, _0201D120 ; =0x021C5994 + ldr r2, [r5, #0x0] + ldr r0, [r1, #0x0] + str r2, [r0, #0x4] + ldr r1, [r1, #0x0] + ldr r0, [r5, #0xc] + ldr r2, [r1, #0x4] + mov r1, #0x54 + mul r1, r2 + bl sub_02016998 + ldr r7, _0201D120 ; =0x021C5994 + mov r6, #0x0 + ldr r1, [r7, #0x0] + str r0, [r1, #0x0] + ldr r0, [r5, #0x0] + cmp r0, #0x0 + ble _0201D0C2 + add r4, r6, #0x0 +_0201D0AE: + ldr r0, [r7, #0x0] + ldr r0, [r0, #0x0] + add r0, r0, r4 + bl sub_0201D690 + ldr r0, [r5, #0x0] + add r6, r6, #0x1 + add r4, #0x54 + cmp r6, r0 + blt _0201D0AE +_0201D0C2: + ldr r0, [sp, #0x0] + bl sub_0201DED0 + ldr r1, _0201D120 ; =0x021C5994 + ldr r1, [r1, #0x0] + str r0, [r1, #0x2c] + ldr r0, [sp, #0x4] + bl sub_0201DED0 + ldr r2, _0201D120 ; =0x021C5994 + mov r3, #0x1 + ldr r1, [r2, #0x0] + lsl r3, r3, #0x1a + str r0, [r1, #0x30] + ldr r0, [r3, #0x0] + ldr r1, _0201D124 ; =0xFFCFFFEF + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + and r4, r1 + orr r0, r4 + str r0, [r3, #0x0] + ldr r3, _0201D128 ; =0x04001000 + ldr r0, [r3, #0x0] + and r1, r0 + ldr r0, [sp, #0x4] + orr r0, r1 + str r0, [r3, #0x0] + ldr r1, [r2, #0x0] + ldr r0, [r5, #0x4] + ldr r1, [r1, #0x2c] + bl sub_0201DF2C + ldr r1, _0201D120 ; =0x021C5994 + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + ldr r0, [r5, #0x8] + ldr r1, [r1, #0x30] + bl sub_0201DF2C + add r1, r0, #0x0 + ldr r2, [r5, #0xc] + add r0, r4, #0x0 + bl sub_0201DC58 +_0201D11A: + add sp, #0x8 + pop {r3-r7, pc} + nop +_0201D120: .word 0x021C5994 +_0201D124: .word 0xFFCFFFEF +_0201D128: .word 0x04001000 + + thumb_func_start sub_0201D12C +sub_0201D12C: ; 0x0201D12C + push {r3, lr} + ldr r0, _0201D164 ; =0x021C5994 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201D162 + ldr r0, [r0, #0x34] + bl sub_0201DCC0 + ldr r0, _0201D164 ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_0201DCC0 + bl sub_0201D374 + ldr r0, _0201D164 ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _0201D164 ; =0x021C5994 + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _0201D164 ; =0x021C5994 + mov r1, #0x0 + str r1, [r0, #0x0] +_0201D162: + pop {r3, pc} + .balign 4 +_0201D164: .word 0x021C5994 + + thumb_func_start sub_0201D168 +sub_0201D168: ; 0x0201D168 + push {r3, lr} + ldr r0, _0201D190 ; =0x021C5994 + mov r2, #0x0 + ldr r1, [r0, #0x0] + str r2, [r1, #0xc] + ldr r1, [r0, #0x0] + str r2, [r1, #0x10] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x34] + bl sub_0201DD00 + ldr r0, _0201D190 ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_0201DD00 + bl sub_0201DAE8 + pop {r3, pc} + nop +_0201D190: .word 0x021C5994 + + thumb_func_start sub_0201D194 +sub_0201D194: ; 0x0201D194 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r3, r1, #0x0 + cmp r2, #0x1 + add r0, sp, #0x4 + bne _0201D1CA + str r0, [sp, #0x0] + ldr r0, _0201D1F4 ; =0x021C5994 + add r2, r3, #0x0 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0x1c] + add r3, sp, #0x8 + bl sub_0201DFF0 + ldr r3, [sp, #0x4] + cmp r3, #0x0 + ble _0201D1F0 + mov r2, #0x0 + str r2, [sp, #0x0] + ldr r1, [sp, #0x8] + mov r0, #0x1 + bl sub_0201D948 + add sp, #0xc + pop {r3-r4, pc} +_0201D1CA: + str r0, [sp, #0x0] + ldr r0, _0201D1F4 ; =0x021C5994 + add r2, r3, #0x0 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0x20] + add r3, sp, #0x8 + bl sub_0201DFF0 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201D1F0 + str r0, [sp, #0x0] + mov r1, #0x0 + ldr r2, [sp, #0x8] + mov r0, #0x2 + add r3, r1, #0x0 + bl sub_0201D948 +_0201D1F0: + add sp, #0xc + pop {r3-r4, pc} + .balign 4 +_0201D1F4: .word 0x021C5994 + + thumb_func_start sub_0201D1F8 +sub_0201D1F8: ; 0x0201D1F8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x8] + bl sub_0201D2AC + cmp r0, #0x1 + bne _0201D20A + bl sub_02020C2C +_0201D20A: + bl sub_0201DAAC + add r4, r0, #0x0 + bne _0201D21A + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_0201D21A: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201D6B4 + cmp r0, #0x0 + bne _0201D22A + mov r0, #0x0 + pop {r3-r5, pc} +_0201D22A: + add r0, r4, #0x0 + bl sub_0201D724 + cmp r0, #0x0 + bne _0201D23E + ldr r0, [r4, #0xc] + bl sub_0201D324 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D23E: + ldr r0, _0201D24C ; =0x021C5994 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x8] + add r0, r0, #0x1 + str r0, [r1, #0x8] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0201D24C: .word 0x021C5994 + + thumb_func_start sub_0201D250 +sub_0201D250: ; 0x0201D250 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x8] + bl sub_0201D2AC + cmp r0, #0x1 + bne _0201D262 + bl sub_02020C2C +_0201D262: + bl sub_0201DAAC + add r4, r0, #0x0 + bne _0201D272 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_0201D272: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201D6B4 + cmp r0, #0x0 + bne _0201D282 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D282: + mov r0, #0x1 + str r0, [r4, #0x40] + add r0, r4, #0x0 + bl sub_0201D724 + cmp r0, #0x0 + bne _0201D29A + ldr r0, [r4, #0xc] + bl sub_0201D324 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D29A: + ldr r0, _0201D2A8 ; =0x021C5994 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x8] + add r0, r0, #0x1 + str r0, [r1, #0x8] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0201D2A8: .word 0x021C5994 + + thumb_func_start sub_0201D2AC +sub_0201D2AC: ; 0x0201D2AC + push {r3-r4} + ldr r1, _0201D2D8 ; =0x021C5994 + mov r2, #0x0 + ldr r4, [r1, #0x0] + ldr r1, [r4, #0x4] + cmp r1, #0x0 + ble _0201D2D2 + ldr r3, [r4, #0x0] +_0201D2BC: + ldr r1, [r3, #0xc] + cmp r0, r1 + bne _0201D2C8 + mov r0, #0x1 + pop {r3-r4} + bx lr +_0201D2C8: + ldr r1, [r4, #0x4] + add r2, r2, #0x1 + add r3, #0x54 + cmp r2, r1 + blt _0201D2BC +_0201D2D2: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 +_0201D2D8: .word 0x021C5994 + + thumb_func_start sub_0201D2DC +sub_0201D2DC: ; 0x0201D2DC + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + bne _0201D2E8 + bl sub_02020C2C +_0201D2E8: + add r0, r4, #0x0 + bl sub_0201D7F8 + add r4, r0, #0x0 + bne _0201D2F6 + bl sub_02020C2C +_0201D2F6: + str r5, [r4, #0x0] + ldr r1, [r4, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201D30C + ldr r1, [r4, #0x34] + ldr r2, [r5, #0x14] + ldr r3, [r5, #0x10] + mov r0, #0x13 + bl sub_0201C2C8 +_0201D30C: + ldr r1, [r4, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201D320 + ldr r1, [r4, #0x38] + ldr r2, [r5, #0x14] + ldr r3, [r5, #0x10] + mov r0, #0x23 + bl sub_0201C2C8 +_0201D320: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201D324 +sub_0201D324: ; 0x0201D324 + push {r3-r7, lr} + add r6, r0, #0x0 + mov r5, #0x1 + mov r7, #0x0 +_0201D32C: + add r0, r6, #0x0 + bl sub_0201D7F8 + add r4, r0, #0x0 + bne _0201D33A + bl sub_02020C2C +_0201D33A: + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x4 + bne _0201D34E + add r0, r4, #0x0 + add r0, #0x10 + bl sub_0201D4F0 + b _0201D350 +_0201D34E: + add r5, r7, #0x0 +_0201D350: + cmp r5, #0x0 + bne _0201D32C + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201D36E + add r0, r4, #0x0 + bl sub_0201D7E0 + ldr r0, _0201D370 ; =0x021C5994 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x8] + sub r0, r0, #0x1 + str r0, [r1, #0x8] +_0201D36E: + pop {r3-r7, pc} + .balign 4 +_0201D370: .word 0x021C5994 + + thumb_func_start sub_0201D374 +sub_0201D374: ; 0x0201D374 + push {r4-r6, lr} + ldr r6, _0201D3AC ; =0x021C5994 + mov r4, #0x0 + ldr r1, [r6, #0x0] + ldr r0, [r1, #0x4] + cmp r0, #0x0 + ble _0201D3AA + add r5, r4, #0x0 +_0201D384: + ldr r1, [r1, #0x0] + add r0, r1, r5 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201D39E + add r0, r1, r5 + bl sub_0201D7E0 + ldr r1, [r6, #0x0] + ldr r0, [r1, #0x8] + sub r0, r0, #0x1 + str r0, [r1, #0x8] +_0201D39E: + ldr r1, [r6, #0x0] + add r4, r4, #0x1 + ldr r0, [r1, #0x4] + add r5, #0x54 + cmp r4, r0 + blt _0201D384 +_0201D3AA: + pop {r4-r6, pc} + .balign 4 +_0201D3AC: .word 0x021C5994 + + thumb_func_start sub_0201D3B0 +sub_0201D3B0: ; 0x0201D3B0 + push {r4, lr} + bl sub_0201D7F8 + add r4, r0, #0x0 + bne _0201D3BE + bl sub_02020C2C +_0201D3BE: + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201D3CC + mov r0, #0x0 + pop {r4, pc} +_0201D3CC: + add r4, #0x10 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201D3D4 +sub_0201D3D4: ; 0x0201D3D4 + push {r3-r5, lr} + sub sp, #0x18 + add r5, r1, #0x0 + bl sub_0201D7F8 + add r4, r0, #0x0 + bne _0201D3E6 + bl sub_02020C2C +_0201D3E6: + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201D3F6 + add sp, #0x18 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D3F6: + add r0, sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + ldr r0, [r4, #0x4] + add r1, sp, #0x14 + add r2, sp, #0x10 + add r3, r5, #0x0 + bl sub_0201D86C + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + bne _0201D41A + add sp, #0x18 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D41A: + add r0, r4, #0x0 + mov r1, #0x3 + add r0, #0x3c + strb r1, [r0, #0x0] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + add r0, r4, #0x0 + bl sub_0201D918 + mov r0, #0x1 + str r0, [r4, #0x48] + ldr r0, [sp, #0xc] + str r0, [r4, #0x4c] + ldr r0, [sp, #0x8] + str r0, [r4, #0x50] + add r0, r4, #0x0 + bl sub_0201DA38 + ldr r0, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [r4, #0x4] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + bl sub_0201D948 + add r4, #0x10 + add r0, r4, #0x0 + add sp, #0x18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201D458 +sub_0201D458: ; 0x0201D458 + push {r3-r5, lr} + sub sp, #0x18 + bl sub_0201D6D8 + add r4, r0, #0x0 + bne _0201D468 + bl sub_02020C2C +_0201D468: + bl sub_0201DAAC + add r5, r0, #0x0 + bne _0201D474 + bl sub_02020C2C +_0201D474: + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + beq _0201D484 + add sp, #0x18 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D484: + add r3, r5, #0x0 + mov r2, #0xa +_0201D488: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0201D488 + ldr r0, [r4, #0x0] + mov r1, #0x4 + str r0, [r3, #0x0] + add r0, r5, #0x0 + add r0, #0x3c + strb r1, [r0, #0x0] + ldr r0, [r5, #0x4] + mov r1, #0x1 + tst r1, r0 + beq _0201D4A8 + ldr r3, [r5, #0x4c] + b _0201D4AA +_0201D4A8: + ldr r3, [r5, #0x50] +_0201D4AA: + add r1, sp, #0xc + str r1, [sp, #0x0] + add r1, sp, #0x8 + str r1, [sp, #0x4] + add r1, sp, #0x14 + add r2, sp, #0x10 + bl sub_0201D86C + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + add r0, r5, #0x0 + bl sub_0201D918 + mov r0, #0x1 + str r0, [r5, #0x48] + ldr r0, [sp, #0xc] + str r0, [r5, #0x4c] + ldr r0, [sp, #0x8] + str r0, [r5, #0x50] + add r0, r5, #0x0 + bl sub_0201DA38 + ldr r0, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [r5, #0x4] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + bl sub_0201D948 + add r5, #0x10 + add r0, r5, #0x0 + add sp, #0x18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201D4F0 +sub_0201D4F0: ; 0x0201D4F0 + push {r4-r6, lr} + ldr r2, _0201D564 ; =0x021C5994 + mov r1, #0x0 + ldr r5, [r2, #0x0] + ldr r4, [r5, #0x4] + cmp r4, #0x0 + ble _0201D52E + ldr r2, [r5, #0x0] + add r3, r1, #0x0 +_0201D502: + add r6, r2, #0x0 + add r6, #0x3c + ldrb r6, [r6, #0x0] + cmp r6, #0x3 + beq _0201D518 + ldr r6, [r5, #0x0] + add r6, r6, r3 + add r6, #0x3c + ldrb r6, [r6, #0x0] + cmp r6, #0x4 + bne _0201D522 +_0201D518: + ldr r6, [r5, #0x0] + add r6, r6, r3 + add r6, #0x10 + cmp r6, r0 + beq _0201D52E +_0201D522: + ldr r6, [r5, #0x4] + add r1, r1, #0x1 + add r2, #0x54 + add r3, #0x54 + cmp r1, r6 + blt _0201D502 +_0201D52E: + cmp r1, r4 + bge _0201D562 + mov r0, #0x54 + add r4, r1, #0x0 + mul r4, r0 + ldr r0, [r5, #0x0] + add r0, r0, r4 + bl sub_0201DE4C + ldr r0, _0201D564 ; =0x021C5994 + ldr r1, [r0, #0x0] + ldr r2, [r1, #0x0] + add r2, #0x3c + ldrb r1, [r2, r4] + cmp r1, #0x3 + bne _0201D554 + mov r0, #0x2 + strb r0, [r2, r4] + pop {r4-r6, pc} +_0201D554: + mov r1, #0x0 + strb r1, [r2, r4] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + add r0, r0, r4 + bl sub_0201D690 +_0201D562: + pop {r4-r6, pc} + .balign 4 +_0201D564: .word 0x021C5994 + + thumb_func_start sub_0201D568 +sub_0201D568: ; 0x0201D568 + push {r3-r7, lr} + sub sp, #0x18 + add r6, r0, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + cmp r1, #0x0 + bne _0201D5A0 + add r1, r5, #0x0 + add r2, sp, #0x14 + add r3, sp, #0x10 + bl sub_0201DF44 + add r7, r0, #0x0 + beq _0201D5E0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0201DF94 + str r5, [r4, #0x8] + str r6, [r4, #0x0] + cmp r5, #0x1 + bne _0201D59A + ldr r0, [sp, #0x14] + str r0, [r4, #0x4] + b _0201D5E0 +_0201D59A: + ldr r0, [sp, #0x10] + str r0, [r4, #0x4] + b _0201D5E0 +_0201D5A0: + add r0, sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, sp, #0x14 + add r2, sp, #0x10 + add r3, r6, #0x0 + bl sub_0201D86C + add r7, r0, #0x0 + beq _0201D5E0 + ldr r0, [sp, #0x8] + str r0, [sp, #0x0] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + add r0, r5, #0x0 + bl sub_0201D948 + str r5, [r4, #0x8] + cmp r5, #0x1 + bne _0201D5D8 + ldr r0, [sp, #0xc] + str r0, [r4, #0x0] + ldr r0, [sp, #0x14] + str r0, [r4, #0x4] + b _0201D5E0 +_0201D5D8: + ldr r0, [sp, #0x8] + str r0, [r4, #0x0] + ldr r0, [sp, #0x10] + str r0, [r4, #0x4] +_0201D5E0: + add r0, r7, #0x0 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201D5E8 +sub_0201D5E8: ; 0x0201D5E8 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x8] + mov r0, #0x1 + tst r0, r1 + beq _0201D61E + ldr r1, _0201D654 ; =0x021C5994 + ldr r0, [r4, #0x0] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x2c] + bl sub_0201DF2C + add r5, r0, #0x0 + ldr r0, _0201D654 ; =0x021C5994 + ldr r1, [r4, #0x4] + ldr r2, [r0, #0x0] + ldr r0, [r2, #0x1c] + sub r0, r1, r0 + ldr r1, [r2, #0x2c] + bl sub_0201DF2C + ldr r2, _0201D654 ; =0x021C5994 + add r1, r5, #0x0 + ldr r2, [r2, #0x0] + ldr r2, [r2, #0x34] + bl sub_0201DDFC +_0201D61E: + ldr r1, [r4, #0x8] + mov r0, #0x2 + tst r0, r1 + beq _0201D650 + ldr r1, _0201D654 ; =0x021C5994 + ldr r0, [r4, #0x0] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x30] + bl sub_0201DF2C + add r5, r0, #0x0 + ldr r0, _0201D654 ; =0x021C5994 + ldr r1, [r4, #0x4] + ldr r2, [r0, #0x0] + ldr r0, [r2, #0x20] + sub r0, r1, r0 + ldr r1, [r2, #0x30] + bl sub_0201DF2C + ldr r2, _0201D654 ; =0x021C5994 + add r1, r5, #0x0 + ldr r2, [r2, #0x0] + ldr r2, [r2, #0x38] + bl sub_0201DDFC +_0201D650: + pop {r3-r5, pc} + nop +_0201D654: .word 0x021C5994 + + thumb_func_start sub_0201D658 +sub_0201D658: ; 0x0201D658 + push {r3, lr} + ldr r0, _0201D670 ; =0x021C5994 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201D666 + bl sub_02020C2C +_0201D666: + ldr r1, _0201D670 ; =0x021C5994 + mov r2, #0x0 + ldr r0, [r1, #0x0] + str r2, [r1, #0x0] + pop {r3, pc} + .balign 4 +_0201D670: .word 0x021C5994 + + thumb_func_start sub_0201D674 +sub_0201D674: ; 0x0201D674 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0201D68C ; =0x021C5994 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201D684 + bl sub_02020C2C +_0201D684: + ldr r0, _0201D68C ; =0x021C5994 + str r4, [r0, #0x0] + pop {r4, pc} + nop +_0201D68C: .word 0x021C5994 + + thumb_func_start sub_0201D690 +sub_0201D690: ; 0x0201D690 + mov r2, #0x0 + str r2, [r0, #0x0] + str r2, [r0, #0x4] + strb r2, [r0, #0x8] + sub r1, r2, #0x1 + str r1, [r0, #0xc] + str r2, [r0, #0x34] + add r1, r0, #0x0 + str r2, [r0, #0x38] + add r1, #0x3c + strb r2, [r1, #0x0] + str r2, [r0, #0x40] + ldr r3, _0201D6B0 ; =sub_020B1A24 + add r0, #0x10 + bx r3 + nop +_0201D6B0: .word sub_020B1A24 + + thumb_func_start sub_0201D6B4 +sub_0201D6B4: ; 0x0201D6B4 + ldr r2, [r0, #0x0] + str r2, [r1, #0x0] + ldr r2, [r0, #0x8] + str r2, [r1, #0xc] + ldr r2, [r0, #0x4] + str r2, [r1, #0x4] + ldr r2, [r1, #0x0] + ldr r2, [r2, #0xc] + lsr r2, r2, #0x8 + strb r2, [r1, #0x8] + ldr r0, [r0, #0xc] + str r0, [r1, #0x44] + mov r0, #0x0 + str r0, [r1, #0x48] + str r0, [r1, #0x4c] + str r0, [r1, #0x50] + mov r0, #0x1 + bx lr + + thumb_func_start sub_0201D6D8 +sub_0201D6D8: ; 0x0201D6D8 + push {r3-r6} + ldr r2, _0201D720 ; =0x021C5994 + mov r1, #0x0 + ldr r5, [r2, #0x0] + ldr r4, [r5, #0x4] + cmp r4, #0x0 + ble _0201D70A + ldr r2, [r5, #0x0] + add r3, r1, #0x0 +_0201D6EA: + add r6, r2, #0x0 + add r6, #0x3c + ldrb r6, [r6, #0x0] + cmp r6, #0x0 + beq _0201D6FE + ldr r6, [r5, #0x0] + add r6, r6, r3 + add r6, #0x10 + cmp r6, r0 + beq _0201D70A +_0201D6FE: + ldr r6, [r5, #0x4] + add r1, r1, #0x1 + add r2, #0x54 + add r3, #0x54 + cmp r1, r6 + blt _0201D6EA +_0201D70A: + cmp r1, r4 + blt _0201D714 + mov r0, #0x0 + pop {r3-r6} + bx lr +_0201D714: + mov r0, #0x54 + ldr r2, [r5, #0x0] + mul r0, r1 + add r0, r2, r0 + pop {r3-r6} + bx lr + .balign 4 +_0201D720: .word 0x021C5994 + + thumb_func_start sub_0201D724 +sub_0201D724: ; 0x0201D724 + push {r3, lr} + ldrb r1, [r0, #0x8] + mov r2, #0x1 + cmp r1, #0x0 + beq _0201D736 + mov r1, #0x2 + add r0, #0x3c + strb r1, [r0, #0x0] + b _0201D750 +_0201D736: + add r1, r0, #0x0 + add r1, #0x3c + strb r2, [r1, #0x0] + ldr r1, [r0, #0x44] + cmp r1, #0x0 + bne _0201D74A + bl sub_0201D754 + add r2, r0, #0x0 + b _0201D750 +_0201D74A: + bl sub_0201D788 + add r2, r0, #0x0 +_0201D750: + add r0, r2, #0x0 + pop {r3, pc} + + thumb_func_start sub_0201D754 +sub_0201D754: ; 0x0201D754 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + ldr r0, [r0, #0x10] + add r2, sp, #0x4 + add r3, sp, #0x0 + bl sub_0201DF44 + add r4, r0, #0x0 + beq _0201D780 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + bl sub_0201D858 + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + ldr r0, [r0, #0x10] + bl sub_0201DF94 +_0201D780: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201D788 +sub_0201D788: ; 0x0201D788 + push {r4, lr} + sub sp, #0x18 + add r4, r0, #0x0 + add r0, sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + ldr r3, [r4, #0x0] + ldr r0, [r4, #0x4] + ldr r3, [r3, #0x10] + add r1, sp, #0x14 + add r2, sp, #0x10 + bl sub_0201D86C + cmp r0, #0x0 + bne _0201D7AE + add sp, #0x18 + mov r0, #0x0 + pop {r4, pc} +_0201D7AE: + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + add r0, r4, #0x0 + bl sub_0201D918 + mov r0, #0x1 + str r0, [r4, #0x48] + ldr r0, [sp, #0xc] + str r0, [r4, #0x4c] + ldr r0, [sp, #0x8] + str r0, [r4, #0x50] + add r0, r4, #0x0 + bl sub_0201D9B0 + ldr r0, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [r4, #0x4] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + bl sub_0201D948 + mov r0, #0x1 + add sp, #0x18 + pop {r4, pc} + + thumb_func_start sub_0201D7E0 +sub_0201D7E0: ; 0x0201D7E0 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x48] + cmp r1, #0x0 + beq _0201D7EE + bl sub_0201DE4C +_0201D7EE: + add r0, r4, #0x0 + bl sub_0201D690 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201D7F8 +sub_0201D7F8: ; 0x0201D7F8 + push {r4-r5} + ldr r2, _0201D82C ; =0x021C5994 + mov r1, #0x0 + ldr r5, [r2, #0x0] + ldr r2, [r5, #0x4] + cmp r2, #0x0 + ble _0201D824 + ldr r2, [r5, #0x0] + add r4, r2, #0x0 +_0201D80A: + ldr r3, [r4, #0xc] + cmp r0, r3 + bne _0201D81A + mov r0, #0x54 + mul r0, r1 + add r0, r2, r0 + pop {r4-r5} + bx lr +_0201D81A: + ldr r3, [r5, #0x4] + add r1, r1, #0x1 + add r4, #0x54 + cmp r1, r3 + blt _0201D80A +_0201D824: + mov r0, #0x0 + pop {r4-r5} + bx lr + nop +_0201D82C: .word 0x021C5994 + + thumb_func_start sub_0201D830 +sub_0201D830: ; 0x0201D830 + cmp r1, #0x1 + bne _0201D83C + mov r1, #0x1 + lsl r1, r1, #0x1a + ldr r2, [r1, #0x0] + b _0201D840 +_0201D83C: + ldr r1, _0201D850 ; =0x04001000 + ldr r2, [r1, #0x0] +_0201D840: + ldr r1, _0201D854 ; =0x00300010 + and r2, r1 + ldr r1, [r0, #0x0] + str r2, [r1, #0x8] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x8] + bx lr + nop +_0201D850: .word 0x04001000 +_0201D854: .word 0x00300010 + + thumb_func_start sub_0201D858 +sub_0201D858: ; 0x0201D858 + push {r3, lr} + str r1, [r0, #0x34] + str r2, [r0, #0x38] + ldrb r1, [r0, #0x8] + cmp r1, #0x0 + bne _0201D868 + bl sub_0201D9B0 +_0201D868: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0201D86C +sub_0201D86C: ; 0x0201D86C + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [sp, #0x1c] + add r6, r2, #0x0 + str r0, [sp, #0x1c] + mov r2, #0x1 + add r0, r5, #0x0 + add r4, r1, #0x0 + str r3, [sp, #0x0] + ldr r7, [sp, #0x18] + tst r0, r2 + beq _0201D8C4 + ldr r1, _0201D914 ; =0x021C5994 + add r0, r3, #0x0 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x2c] + bl sub_0201DF10 + ldr r1, _0201D914 ; =0x021C5994 + str r0, [r7, #0x0] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x2c] + bl sub_0201DF2C + ldr r1, _0201D914 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x34] + bl sub_0201DD74 + mov r1, #0x0 + mvn r1, r1 + str r0, [r4, #0x0] + cmp r0, r1 + bne _0201D8B8 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} +_0201D8B8: + ldr r1, _0201D914 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x2c] + bl sub_0201DF3C + str r0, [r4, #0x0] +_0201D8C4: + mov r0, #0x2 + tst r0, r5 + beq _0201D90E + ldr r1, _0201D914 ; =0x021C5994 + ldr r0, [sp, #0x0] + ldr r1, [r1, #0x0] + mov r2, #0x1 + ldr r1, [r1, #0x30] + bl sub_0201DF10 + ldr r1, [sp, #0x1c] + str r0, [r1, #0x0] + ldr r1, _0201D914 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x30] + bl sub_0201DF2C + ldr r1, _0201D914 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x38] + bl sub_0201DD74 + mov r1, #0x0 + mvn r1, r1 + str r0, [r6, #0x0] + cmp r0, r1 + bne _0201D902 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} +_0201D902: + ldr r1, _0201D914 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x30] + bl sub_0201DF3C + str r0, [r6, #0x0] +_0201D90E: + mov r0, #0x1 + pop {r3-r7, pc} + nop +_0201D914: .word 0x021C5994 + + thumb_func_start sub_0201D918 +sub_0201D918: ; 0x0201D918 + push {r3-r4} + ldr r4, [r0, #0x4] + mov r3, #0x1 + tst r3, r4 + beq _0201D92C + ldr r3, _0201D944 ; =0x021C5994 + ldr r3, [r3, #0x0] + ldr r3, [r3, #0x1c] + add r1, r1, r3 + str r1, [r0, #0x34] +_0201D92C: + ldr r3, [r0, #0x4] + mov r1, #0x2 + tst r1, r3 + beq _0201D93E + ldr r1, _0201D944 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x20] + add r1, r2, r1 + str r1, [r0, #0x38] +_0201D93E: + pop {r3-r4} + bx lr + nop +_0201D944: .word 0x021C5994 + + thumb_func_start sub_0201D948 +sub_0201D948: ; 0x0201D948 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x1 + add r4, r1, #0x0 + add r6, r2, #0x0 + tst r0, r5 + beq _0201D97C + ldr r1, _0201D9AC ; =0x021C5994 + add r0, r3, #0x0 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x2c] + bl sub_0201DF2C + ldr r1, _0201D9AC ; =0x021C5994 + add r7, r0, #0x0 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + ldr r1, [r1, #0x2c] + bl sub_0201DF2C + ldr r2, _0201D9AC ; =0x021C5994 + add r1, r7, #0x0 + ldr r2, [r2, #0x0] + ldr r2, [r2, #0x34] + bl sub_0201DD18 +_0201D97C: + mov r0, #0x2 + tst r0, r5 + beq _0201D9A8 + ldr r1, _0201D9AC ; =0x021C5994 + ldr r0, [sp, #0x18] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x30] + bl sub_0201DF2C + ldr r1, _0201D9AC ; =0x021C5994 + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + add r0, r6, #0x0 + ldr r1, [r1, #0x30] + bl sub_0201DF2C + ldr r2, _0201D9AC ; =0x021C5994 + add r1, r4, #0x0 + ldr r2, [r2, #0x0] + ldr r2, [r2, #0x38] + bl sub_0201DD18 +_0201D9A8: + pop {r3-r7, pc} + nop +_0201D9AC: .word 0x021C5994 + + thumb_func_start sub_0201D9B0 +sub_0201D9B0: ; 0x0201D9B0 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x10 + blx sub_020B1A24 + ldr r1, [r4, #0x4] + cmp r1, #0x3 + beq _0201D9C8 + add r0, r4, #0x0 + bl sub_0201D9DC + pop {r4, pc} +_0201D9C8: + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0201D9DC + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_0201D9DC + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201D9DC +sub_0201D9DC: ; 0x0201D9DC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0x40] + add r4, r1, #0x0 + cmp r2, #0x0 + beq _0201D9EE + bl sub_0201D830 + b _0201D9F0 +_0201D9EE: + add r0, r4, #0x0 +_0201D9F0: + cmp r4, #0x1 + bne _0201D9FE + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r5, #0x34] + ldr r2, [r2, #0x0] + b _0201DA04 +_0201D9FE: + ldr r2, _0201DA34 ; =0x04001000 + ldr r1, [r5, #0x38] + ldr r2, [r2, #0x0] +_0201DA04: + cmp r0, #0x0 + ldr r0, [r5, #0x0] + bne _0201DA16 + add r5, #0x10 + add r2, r4, #0x0 + add r3, r5, #0x0 + blx sub_020B1528 + b _0201DA20 +_0201DA16: + add r5, #0x10 + add r2, r4, #0x0 + add r3, r5, #0x0 + blx sub_020B1768 +_0201DA20: + cmp r4, #0x1 + bne _0201DA2C + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r0, [r0, #0x0] + pop {r3-r5, pc} +_0201DA2C: + ldr r0, _0201DA34 ; =0x04001000 + ldr r0, [r0, #0x0] + pop {r3-r5, pc} + nop +_0201DA34: .word 0x04001000 + + thumb_func_start sub_0201DA38 +sub_0201DA38: ; 0x0201DA38 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x10 + blx sub_020B1A24 + ldr r1, [r4, #0x4] + cmp r1, #0x3 + beq _0201DA50 + add r0, r4, #0x0 + bl sub_0201DA64 + pop {r4, pc} +_0201DA50: + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0201DA64 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_0201DA64 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201DA64 +sub_0201DA64: ; 0x0201DA64 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0x40] + add r4, r1, #0x0 + cmp r2, #0x0 + beq _0201DA74 + bl sub_0201D830 +_0201DA74: + cmp r4, #0x1 + bne _0201DA82 + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r5, #0x34] + ldr r0, [r0, #0x0] + b _0201DA88 +_0201DA82: + ldr r0, _0201DAA8 ; =0x04001000 + ldr r1, [r5, #0x38] + ldr r0, [r0, #0x0] +_0201DA88: + ldr r0, [r5, #0x0] + add r5, #0x10 + add r2, r4, #0x0 + add r3, r5, #0x0 + blx sub_020B1340 + cmp r4, #0x1 + bne _0201DAA0 + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r0, [r0, #0x0] + pop {r3-r5, pc} +_0201DAA0: + ldr r0, _0201DAA8 ; =0x04001000 + ldr r0, [r0, #0x0] + pop {r3-r5, pc} + nop +_0201DAA8: .word 0x04001000 + + thumb_func_start sub_0201DAAC +sub_0201DAAC: ; 0x0201DAAC + push {r3-r4} + ldr r1, _0201DAE4 ; =0x021C5994 + mov r0, #0x0 + ldr r4, [r1, #0x0] + ldr r1, [r4, #0x4] + cmp r1, #0x0 + ble _0201DADC + ldr r1, [r4, #0x0] + add r3, r1, #0x0 +_0201DABE: + add r2, r3, #0x0 + add r2, #0x3c + ldrb r2, [r2, #0x0] + cmp r2, #0x0 + bne _0201DAD2 + mov r2, #0x54 + mul r2, r0 + add r0, r1, r2 + pop {r3-r4} + bx lr +_0201DAD2: + ldr r2, [r4, #0x4] + add r0, r0, #0x1 + add r3, #0x54 + cmp r0, r2 + blt _0201DABE +_0201DADC: + mov r0, #0x0 + pop {r3-r4} + bx lr + nop +_0201DAE4: .word 0x021C5994 + + thumb_func_start sub_0201DAE8 +sub_0201DAE8: ; 0x0201DAE8 + push {r3, lr} + blx sub_020C5DBC + cmp r0, #0x30 + bgt _0201DB18 + bge _0201DB60 + cmp r0, #0x10 + bgt _0201DB12 + bge _0201DB54 + cmp r0, #0x3 + bhi _0201DB90 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r4, #0 + lsl r4, r5, #0x1 + lsl r4, r5, #0x1 + lsl r0, r7, #0x1 +_0201DB12: + cmp r0, #0x20 + beq _0201DB3C + b _0201DB90 +_0201DB18: + cmp r0, #0x50 + bgt _0201DB24 + bge _0201DB60 + cmp r0, #0x40 + beq _0201DB3C + b _0201DB90 +_0201DB24: + cmp r0, #0x60 + bgt _0201DB2C + beq _0201DB48 + b _0201DB90 +_0201DB2C: + cmp r0, #0x70 + beq _0201DB6C + b _0201DB90 +_0201DB32: + .byte 0x41, 0x48, 0x00, 0x21, 0x00, 0x68, 0x41, 0x61, 0x2D, 0xE0 +_0201DB3C: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x1 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xe + str r1, [r0, #0x14] + b _0201DB98 +_0201DB48: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x2 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xe + str r1, [r0, #0x14] + b _0201DB98 +_0201DB54: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x1 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x10 + str r1, [r0, #0x14] + b _0201DB98 +_0201DB60: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x5 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xe + str r1, [r0, #0x14] + b _0201DB98 +_0201DB6C: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x6 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xe + str r1, [r0, #0x14] + b _0201DB98 +_0201DB78: + .byte 0x2F, 0x48, 0x02, 0x21, 0x00, 0x68, 0x09, 0x04 + .byte 0x41, 0x61, 0x09, 0xE0, 0x2C, 0x48, 0x01, 0x21, 0x00, 0x68, 0x89, 0x04, 0x41, 0x61, 0x03, 0xE0 +_0201DB90: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x14] +_0201DB98: + blx sub_020C5D4C + cmp r0, #0x0 + beq _0201DBAE + cmp r0, #0x8 + beq _0201DBC2 + mov r1, #0x1 + lsl r1, r1, #0x8 + cmp r0, r1 + beq _0201DBB8 + b _0201DBCE +_0201DBAE: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x18] + b _0201DBD6 +_0201DBB8: + ldr r0, _0201DC38 ; =0x021C5994 + lsl r1, r1, #0x6 + ldr r0, [r0, #0x0] + str r1, [r0, #0x18] + b _0201DBD6 +_0201DBC2: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x2 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x10 + str r1, [r0, #0x18] + b _0201DBD6 +_0201DBCE: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x18] +_0201DBD6: + ldr r0, _0201DC38 ; =0x021C5994 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x24] + ldr r1, [r1, #0x2c] + bl sub_0201DF3C + ldr r1, _0201DC38 ; =0x021C5994 + ldr r3, [r1, #0x0] + ldr r2, [r3, #0x14] + sub r0, r2, r0 + str r0, [r3, #0x1c] + ldr r1, [r1, #0x0] + ldr r0, [r1, #0x28] + ldr r1, [r1, #0x30] + bl sub_0201DF3C + ldr r1, _0201DC38 ; =0x021C5994 + ldr r3, [r1, #0x0] + ldr r2, [r3, #0x18] + sub r0, r2, r0 + str r0, [r3, #0x20] + ldr r1, [r1, #0x0] + mov r2, #0x0 + ldr r0, [r1, #0x1c] + cmp r0, #0x0 + blt _0201DC12 + ldr r0, [r1, #0x20] + cmp r0, #0x0 + blt _0201DC12 + mov r2, #0x1 +_0201DC12: + cmp r2, #0x0 + bne _0201DC1A + bl sub_02020C2C +_0201DC1A: + ldr r0, _0201DC38 ; =0x021C5994 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x1c] + cmp r0, #0x0 + blt _0201DC2E + ldr r0, [r1, #0x20] + cmp r0, #0x0 + blt _0201DC2E + mov r2, #0x1 +_0201DC2E: + cmp r2, #0x0 + bne _0201DC36 + bl sub_02020C2C +_0201DC36: + pop {r3, pc} + .balign 4 +_0201DC38: .word 0x021C5994 + + thumb_func_start sub_0201DC3C +sub_0201DC3C: ; 0x0201DC3C + push {r3, lr} + ldr r0, _0201DC54 ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x34] + bl sub_0201DD00 + ldr r0, _0201DC54 ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_0201DD00 + pop {r3, pc} + .balign 4 +_0201DC54: .word 0x021C5994 + + thumb_func_start sub_0201DC58 +sub_0201DC58: ; 0x0201DC58 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _0201DCBC ; =0x021C5994 + add r4, r1, #0x0 + ldr r1, [r0, #0x0] + add r6, r2, #0x0 + str r5, [r1, #0x24] + ldr r1, [r0, #0x0] + str r4, [r1, #0x28] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x34] + cmp r0, #0x0 + beq _0201DC76 + bl sub_02016A18 +_0201DC76: + ldr r0, _0201DCBC ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + cmp r0, #0x0 + beq _0201DC84 + bl sub_02016A18 +_0201DC84: + ldr r0, _0201DCBC ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x24] + cmp r0, #0x0 + beq _0201DC9C + add r0, r6, #0x0 + lsr r1, r5, #0x3 + bl sub_02016998 + ldr r1, _0201DCBC ; =0x021C5994 + ldr r1, [r1, #0x0] + str r0, [r1, #0x34] +_0201DC9C: + ldr r0, _0201DCBC ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + cmp r0, #0x0 + beq _0201DCB4 + add r0, r6, #0x0 + lsr r1, r4, #0x3 + bl sub_02016998 + ldr r1, _0201DCBC ; =0x021C5994 + ldr r1, [r1, #0x0] + str r0, [r1, #0x38] +_0201DCB4: + bl sub_0201DC3C + pop {r4-r6, pc} + nop +_0201DCBC: .word 0x021C5994 + + thumb_func_start sub_0201DCC0 +sub_0201DCC0: ; 0x0201DCC0 + push {r3, lr} + cmp r0, #0x0 + beq _0201DCE2 + ldr r1, _0201DCE4 ; =0x021C5994 + ldr r2, [r1, #0x0] + ldr r1, [r2, #0x34] + cmp r0, r1 + bne _0201DCDA + mov r1, #0x0 + str r1, [r2, #0x24] + bl sub_02016A18 + pop {r3, pc} +_0201DCDA: + mov r1, #0x0 + str r1, [r2, #0x28] + bl sub_02016A18 +_0201DCE2: + pop {r3, pc} + .balign 4 +_0201DCE4: .word 0x021C5994 + + thumb_func_start sub_0201DCE8 +sub_0201DCE8: ; 0x0201DCE8 + ldr r1, _0201DCFC ; =0x021C5994 + ldr r2, [r1, #0x0] + ldr r1, [r2, #0x34] + cmp r0, r1 + bne _0201DCF6 + ldr r0, [r2, #0x24] + bx lr +_0201DCF6: + ldr r0, [r2, #0x28] + bx lr + nop +_0201DCFC: .word 0x021C5994 + + thumb_func_start sub_0201DD00 +sub_0201DD00: ; 0x0201DD00 + push {r4, lr} + add r4, r0, #0x0 + beq _0201DD16 + bl sub_0201DCE8 + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x0 + lsr r2, r2, #0x3 + blx sub_020DF4A4 +_0201DD16: + pop {r4, pc} + + thumb_func_start sub_0201DD18 +sub_0201DD18: ; 0x0201DD18 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + beq _0201DD6E + add r0, r4, #0x0 + bl sub_0201DCE8 + add r6, r5, r6 + add r7, r0, #0x0 + cmp r5, r6 + bhs _0201DD6E +_0201DD32: + cmp r5, r7 + bhs _0201DD6E + add r0, r5, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + bl sub_0201DFE4 + add r0, sp, #0x0 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + lsl r0, r1 + ldr r1, [sp, #0x4] + ldrb r1, [r4, r1] + tst r0, r1 + beq _0201DD54 + bl sub_02020C2C +_0201DD54: + add r2, sp, #0x0 + ldrb r3, [r2, #0x0] + ldr r1, [sp, #0x4] + mov r2, #0x1 + lsl r2, r3 + lsl r2, r2, #0x18 + ldrb r0, [r4, r1] + lsr r2, r2, #0x18 + add r5, r5, #0x1 + orr r0, r2 + strb r0, [r4, r1] + cmp r5, r6 + blo _0201DD32 +_0201DD6E: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201DD74 +sub_0201DD74: ; 0x0201DD74 + push {r3-r7, lr} + sub sp, #0x10 + add r7, r0, #0x0 + str r1, [sp, #0x0] + cmp r1, #0x0 + beq _0201DDF2 + add r0, r1, #0x0 + bl sub_0201DCE8 + mov r6, #0x0 + str r0, [sp, #0x4] + cmp r0, #0x0 + bls _0201DDF2 +_0201DD8E: + add r0, r6, #0x0 + add r1, sp, #0xc + add r2, sp, #0x8 + bl sub_0201DFE4 + add r0, sp, #0x8 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + mov r4, #0x0 + lsl r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b _0201DDD0 +_0201DDA8: + add r5, r6, r4 + add r0, r5, #0x0 + add r1, sp, #0xc + add r2, sp, #0x8 + bl sub_0201DFE4 + add r0, sp, #0x8 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + lsl r0, r1 + lsl r0, r0, #0x18 + ldr r1, [sp, #0x4] + lsr r0, r0, #0x18 + cmp r5, r1 + blo _0201DDCE + mov r0, #0x0 + add sp, #0x10 + mvn r0, r0 + pop {r3-r7, pc} +_0201DDCE: + add r4, r4, #0x1 +_0201DDD0: + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x0] + ldrb r1, [r1, r2] + tst r0, r1 + bne _0201DDDE + cmp r4, r7 + bls _0201DDA8 +_0201DDDE: + cmp r4, r7 + bls _0201DDE8 + add sp, #0x10 + add r0, r6, #0x0 + pop {r3-r7, pc} +_0201DDE8: + add r0, r6, r4 + add r6, r0, #0x1 + ldr r0, [sp, #0x4] + cmp r6, r0 + blo _0201DD8E +_0201DDF2: + mov r0, #0x0 + mvn r0, r0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201DDFC +sub_0201DDFC: ; 0x0201DDFC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r2, #0x0 + beq _0201DE46 + add r6, r5, r1 + cmp r5, r6 + bhs _0201DE46 + add r7, sp, #0x0 +_0201DE0E: + add r0, r5, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + bl sub_0201DFE4 + ldrb r1, [r7, #0x0] + mov r0, #0x1 + lsl r0, r1 + ldr r1, [sp, #0x4] + ldrb r1, [r4, r1] + tst r0, r1 + bne _0201DE2A + bl sub_02020C2C +_0201DE2A: + ldrb r0, [r7, #0x0] + mov r1, #0x1 + ldr r3, [sp, #0x4] + lsl r1, r0 + mov r0, #0xff + eor r0, r1 + lsl r0, r0, #0x18 + ldrb r2, [r4, r3] + lsr r0, r0, #0x18 + add r5, r5, #0x1 + and r0, r2 + strb r0, [r4, r3] + cmp r5, r6 + blo _0201DE0E +_0201DE46: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201DE4C +sub_0201DE4C: ; 0x0201DE4C + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + mov r1, #0x1 + tst r0, r1 + beq _0201DE8A + add r0, r4, #0x0 + add r0, #0x10 + blx sub_020B1A14 + ldr r1, _0201DECC ; =0x021C5994 + ldr r2, [r1, #0x0] + ldr r1, [r2, #0x1c] + sub r0, r0, r1 + ldr r1, [r2, #0x2c] + bl sub_0201DF2C + ldr r1, _0201DECC ; =0x021C5994 + add r5, r0, #0x0 + ldr r1, [r1, #0x0] + ldr r0, [r4, #0x4c] + ldr r1, [r1, #0x2c] + bl sub_0201DF2C + ldr r2, _0201DECC ; =0x021C5994 + add r1, r0, #0x0 + ldr r2, [r2, #0x0] + add r0, r5, #0x0 + ldr r2, [r2, #0x34] + bl sub_0201DDFC +_0201DE8A: + ldr r0, [r4, #0x4] + mov r1, #0x2 + tst r0, r1 + beq _0201DEC4 + add r0, r4, #0x0 + add r0, #0x10 + blx sub_020B1A14 + ldr r1, _0201DECC ; =0x021C5994 + ldr r2, [r1, #0x0] + ldr r1, [r2, #0x20] + sub r0, r0, r1 + ldr r1, [r2, #0x30] + bl sub_0201DF2C + ldr r1, _0201DECC ; =0x021C5994 + add r5, r0, #0x0 + ldr r1, [r1, #0x0] + ldr r0, [r4, #0x50] + ldr r1, [r1, #0x30] + bl sub_0201DF2C + ldr r2, _0201DECC ; =0x021C5994 + add r1, r0, #0x0 + ldr r2, [r2, #0x0] + add r0, r5, #0x0 + ldr r2, [r2, #0x38] + bl sub_0201DDFC +_0201DEC4: + mov r0, #0x0 + str r0, [r4, #0x48] + pop {r3-r5, pc} + nop +_0201DECC: .word 0x021C5994 + + thumb_func_start sub_0201DED0 +sub_0201DED0: ; 0x0201DED0 + ldr r1, _0201DF04 ; =0x00100010 + cmp r0, r1 + bgt _0201DEDE + bge _0201DEF4 + cmp r0, #0x10 + beq _0201DEF0 + b _0201DF00 +_0201DEDE: + ldr r1, _0201DF08 ; =0x00200010 + cmp r0, r1 + bgt _0201DEE8 + beq _0201DEF8 + b _0201DF00 +_0201DEE8: + ldr r1, _0201DF0C ; =0x00300010 + cmp r0, r1 + beq _0201DEFC + b _0201DF00 +_0201DEF0: + mov r0, #0x1 + bx lr +_0201DEF4: + mov r0, #0x2 + bx lr +_0201DEF8: + mov r0, #0x4 + bx lr +_0201DEFC: + mov r0, #0x8 + bx lr +_0201DF00: + mov r0, #0x1 + bx lr + .balign 4 +_0201DF04: .word 0x00100010 +_0201DF08: .word 0x00200010 +_0201DF0C: .word 0x00300010 + + thumb_func_start sub_0201DF10 +sub_0201DF10: ; 0x0201DF10 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + blx sub_020EBC80 + cmp r1, #0x0 + beq _0201DF28 + sub r5, r5, r1 + cmp r6, #0x1 + bne _0201DF28 + add r5, r5, r4 +_0201DF28: + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0201DF2C +sub_0201DF2C: ; 0x0201DF2C + asr r2, r0, #0x4 + lsr r2, r2, #0x1b + add r2, r0, r2 + ldr r3, _0201DF38 ; =sub_020EBC80 + asr r0, r2, #0x5 + bx r3 + .balign 4 +_0201DF38: .word sub_020EBC80 + + thumb_func_start sub_0201DF3C +sub_0201DF3C: ; 0x0201DF3C + mul r1, r0 + lsl r0, r1, #0x5 + bx lr + .balign 4 + + thumb_func_start sub_0201DF44 +sub_0201DF44: ; 0x0201DF44 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r1, r2, #0x0 + mov r0, #0x1 + add r2, r4, #0x0 + add r7, r3, #0x0 + tst r2, r0 + beq _0201DF6E + ldr r2, _0201DF90 ; =0x021C5994 + ldr r2, [r2, #0x0] + ldr r6, [r2, #0xc] + ldr r2, [r2, #0x1c] + add r3, r6, r5 + cmp r3, r2 + bls _0201DF6C + bl sub_02020C2C + mov r0, #0x0 + b _0201DF6E +_0201DF6C: + str r6, [r1, #0x0] +_0201DF6E: + mov r1, #0x2 + tst r1, r4 + beq _0201DF8C + ldr r1, _0201DF90 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r3, [r1, #0x10] + ldr r1, [r1, #0x20] + add r2, r3, r5 + cmp r2, r1 + bls _0201DF8A + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} +_0201DF8A: + str r3, [r7, #0x0] +_0201DF8C: + pop {r3-r7, pc} + nop +_0201DF90: .word 0x021C5994 + + thumb_func_start sub_0201DF94 +sub_0201DF94: ; 0x0201DF94 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r2, #0x1 + add r0, r4, #0x0 + tst r0, r2 + beq _0201DFBC + ldr r0, _0201DFE0 ; =0x021C5994 + ldr r3, [r0, #0x0] + ldr r1, [r3, #0xc] + add r1, r1, r5 + str r1, [r3, #0xc] + ldr r1, [r0, #0x0] + ldr r0, [r1, #0xc] + ldr r1, [r1, #0x2c] + bl sub_0201DF10 + ldr r1, _0201DFE0 ; =0x021C5994 + ldr r1, [r1, #0x0] + str r0, [r1, #0xc] +_0201DFBC: + mov r0, #0x2 + tst r0, r4 + beq _0201DFDE + ldr r0, _0201DFE0 ; =0x021C5994 + ldr r2, [r0, #0x0] + ldr r1, [r2, #0x10] + add r1, r1, r5 + str r1, [r2, #0x10] + ldr r1, [r0, #0x0] + mov r2, #0x1 + ldr r0, [r1, #0x10] + ldr r1, [r1, #0x30] + bl sub_0201DF10 + ldr r1, _0201DFE0 ; =0x021C5994 + ldr r1, [r1, #0x0] + str r0, [r1, #0x10] +_0201DFDE: + pop {r3-r5, pc} + .balign 4 +_0201DFE0: .word 0x021C5994 + + thumb_func_start sub_0201DFE4 +sub_0201DFE4: ; 0x0201DFE4 + asr r3, r0, #0x3 + str r3, [r1, #0x0] + mov r1, #0x7 + and r0, r1 + strb r0, [r2, #0x0] + bx lr + + thumb_func_start sub_0201DFF0 +sub_0201DFF0: ; 0x0201DFF0 + push {r3-r4} + sub r0, r1, r0 + ldr r4, [sp, #0x8] + str r0, [r3, #0x0] + bpl _0201E006 + add r0, r2, r0 + str r0, [r4, #0x0] + mov r0, #0x0 + str r0, [r3, #0x0] + pop {r3-r4} + bx lr +_0201E006: + str r2, [r4, #0x0] + pop {r3-r4} + bx lr + + thumb_func_start sub_0201E00C +sub_0201E00C: ; 0x0201E00C + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, _0201E064 ; =0x021C5998 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201E060 + add r0, r4, #0x0 + mov r1, #0x28 + bl sub_02016998 + add r1, r0, #0x0 + ldr r0, _0201E064 ; =0x021C5998 + mov r2, #0x28 + str r1, [r0, #0x0] + mov r0, #0x0 + blx sub_020CE1FC + ldr r0, _0201E064 ; =0x021C5998 + mov r1, #0x30 + ldr r0, [r0, #0x0] + mul r1, r6 + str r6, [r0, #0x4] + add r0, r4, #0x0 + bl sub_02016998 + ldr r7, _0201E064 ; =0x021C5998 + mov r4, #0x0 + ldr r1, [r7, #0x0] + cmp r6, #0x0 + str r0, [r1, #0x0] + ble _0201E060 + add r5, r4, #0x0 +_0201E04E: + ldr r0, [r7, #0x0] + ldr r0, [r0, #0x0] + add r0, r0, r5 + bl sub_0201E2F8 + add r4, r4, #0x1 + add r5, #0x30 + cmp r4, r6 + blt _0201E04E +_0201E060: + pop {r3-r7, pc} + nop +_0201E064: .word 0x021C5998 +_0201E068: + .byte 0x01, 0x29, 0x05, 0xD1, 0x06, 0x49, 0x0A, 0x68 + .byte 0x91, 0x8C, 0x08, 0x43, 0x90, 0x84, 0x70, 0x47, 0x02, 0x29, 0x04, 0xD1, 0x02, 0x49, 0x0A, 0x68 + .byte 0xD1, 0x8C, 0x08, 0x43, 0xD0, 0x84, 0x70, 0x47, 0x98, 0x59, 0x1C, 0x02 + + thumb_func_start sub_0201E08C +sub_0201E08C: ; 0x0201E08C + push {r3, lr} + ldr r0, _0201E0B4 ; =0x021C5998 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201E0B2 + bl sub_0201E1F0 + ldr r0, _0201E0B4 ; =0x021C5998 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _0201E0B4 ; =0x021C5998 + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _0201E0B4 ; =0x021C5998 + mov r1, #0x0 + str r1, [r0, #0x0] +_0201E0B2: + pop {r3, pc} + .balign 4 +_0201E0B4: .word 0x021C5998 + + thumb_func_start sub_0201E0B8 +sub_0201E0B8: ; 0x0201E0B8 + bx lr + .balign 4 + + thumb_func_start sub_0201E0BC +sub_0201E0BC: ; 0x0201E0BC + push {r3, lr} + ldr r0, _0201E0E0 ; =0x021C5998 + mov r2, #0x0 + ldr r1, [r0, #0x0] + str r2, [r1, #0xc] + ldr r1, [r0, #0x0] + str r2, [r1, #0x10] + ldr r1, [r0, #0x0] + str r2, [r1, #0x14] + ldr r0, [r0, #0x0] + str r2, [r0, #0x18] + bl sub_0201E464 + ldr r0, _0201E0E0 ; =0x021C5998 + ldr r0, [r0, #0x0] + bl sub_0201E574 + pop {r3, pc} + .balign 4 +_0201E0E0: .word 0x021C5998 + + thumb_func_start sub_0201E0E4 +sub_0201E0E4: ; 0x0201E0E4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0201E428 + add r4, r0, #0x0 + bne _0201E0F8 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_0201E0F8: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201E2C4 + cmp r0, #0x0 + bne _0201E108 + mov r0, #0x0 + pop {r3-r5, pc} +_0201E108: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201E314 + cmp r0, #0x0 + bne _0201E11E + ldr r0, [r5, #0xc] + bl sub_0201E1C8 + mov r0, #0x0 + pop {r3-r5, pc} +_0201E11E: + add r0, r4, #0x0 + bl sub_0201E57C + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0201E128 +sub_0201E128: ; 0x0201E128 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0201E428 + add r4, r0, #0x0 + bne _0201E13C + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_0201E13C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201E2C4 + cmp r0, #0x0 + bne _0201E14C + mov r0, #0x0 + pop {r3-r5, pc} +_0201E14C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201E36C + cmp r0, #0x0 + bne _0201E162 + ldr r0, [r5, #0xc] + bl sub_0201E1C8 + mov r0, #0x0 + pop {r3-r5, pc} +_0201E162: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201E168 +sub_0201E168: ; 0x0201E168 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + bne _0201E174 + bl sub_02020C2C +_0201E174: + add r0, r4, #0x0 + bl sub_0201E3F0 + add r4, r0, #0x0 + bne _0201E182 + bl sub_02020C2C +_0201E182: + str r5, [r4, #0x0] + ldr r1, [r4, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201E19A + ldr r3, [r4, #0x8] + ldr r1, [r4, #0x24] + ldr r2, [r5, #0xc] + mov r0, #0xe + lsl r3, r3, #0x5 + bl sub_0201C2C8 +_0201E19A: + ldr r1, [r4, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201E1B0 + ldr r3, [r4, #0x8] + ldr r1, [r4, #0x28] + ldr r2, [r5, #0xc] + mov r0, #0x1e + lsl r3, r3, #0x5 + bl sub_0201C2C8 +_0201E1B0: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201E1B4 +sub_0201E1B4: ; 0x0201E1B4 + push {r3, lr} + bl sub_0201E3F0 + cmp r0, #0x0 + beq _0201E1C2 + mov r0, #0x1 + pop {r3, pc} +_0201E1C2: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0201E1C8 +sub_0201E1C8: ; 0x0201E1C8 + push {r4, lr} + bl sub_0201E3F0 + add r4, r0, #0x0 + bne _0201E1D6 + bl sub_02020C2C +_0201E1D6: + add r0, r4, #0x0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0201E1EC + add r0, r4, #0x0 + bl sub_0201E5B8 + add r0, r4, #0x0 + bl sub_0201E2BC +_0201E1EC: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201E1F0 +sub_0201E1F0: ; 0x0201E1F0 + push {r4-r6, lr} + ldr r6, _0201E22C ; =0x021C5998 + mov r4, #0x0 + ldr r1, [r6, #0x0] + ldr r0, [r1, #0x4] + cmp r0, #0x0 + ble _0201E228 + add r5, r4, #0x0 +_0201E200: + ldr r1, [r1, #0x0] + add r0, r1, r5 + add r0, #0x2c + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0201E21C + add r0, r1, r5 + bl sub_0201E5B8 + ldr r0, [r6, #0x0] + ldr r0, [r0, #0x0] + add r0, r0, r5 + bl sub_0201E2BC +_0201E21C: + ldr r1, [r6, #0x0] + add r4, r4, #0x1 + ldr r0, [r1, #0x4] + add r5, #0x30 + cmp r4, r0 + blt _0201E200 +_0201E228: + pop {r4-r6, pc} + nop +_0201E22C: .word 0x021C5998 + + thumb_func_start sub_0201E230 +sub_0201E230: ; 0x0201E230 + push {r3, lr} + bl sub_0201E3F0 + cmp r0, #0x0 + bne _0201E244 + bne _0201E240 + bl sub_02020C2C +_0201E240: + mov r0, #0x0 + pop {r3, pc} +_0201E244: + add r1, r0, #0x0 + add r1, #0x2c + ldrb r1, [r1, #0x0] + cmp r1, #0x1 + bne _0201E252 + add r0, #0x10 + pop {r3, pc} +_0201E252: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0201E258 +sub_0201E258: ; 0x0201E258 + push {r4, lr} + add r4, r1, #0x0 + bl sub_0201E3F0 + cmp r0, #0x0 + bne _0201E26E + bne _0201E26A + bl sub_02020C2C +_0201E26A: + mov r0, #0x0 + pop {r4, pc} +_0201E26E: + add r1, r0, #0x0 + add r1, #0x2c + ldrb r1, [r1, #0x0] + cmp r1, #0x1 + beq _0201E27C + mov r0, #0x0 + pop {r4, pc} +_0201E27C: + ldr r1, [r0, #0x0] + ldr r1, [r1, #0x4] + cmp r1, #0x0 + beq _0201E288 + mov r1, #0x1 + str r1, [r4, #0x18] +_0201E288: + add r0, #0x10 + pop {r4, pc} + + thumb_func_start sub_0201E28C +sub_0201E28C: ; 0x0201E28C + push {r4, lr} + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _0201E29A + mov r4, #0x2 + lsl r4, r4, #0x8 + b _0201E2A6 +_0201E29A: + ldr r2, [r0, #0x0] + cmp r2, #0x4 + bne _0201E2A4 + mov r4, #0x0 + b _0201E2A6 +_0201E2A4: + mov r4, #0x20 +_0201E2A6: + cmp r4, #0x0 + beq _0201E2B6 + blx sub_020B19C4 + add r1, r4, #0x0 + blx sub_020EBE8C + pop {r4, pc} +_0201E2B6: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201E2BC +sub_0201E2BC: ; 0x0201E2BC + ldr r3, _0201E2C0 ; =sub_0201E2F8 + bx r3 + .balign 4 +_0201E2C0: .word sub_0201E2F8 + 1 + + thumb_func_start sub_0201E2C4 +sub_0201E2C4: ; 0x0201E2C4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r4, r1, #0x0 + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl sub_0201E1B4 + cmp r0, #0x1 + bne _0201E2E0 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_0201E2E0: + ldr r0, [r5, #0xc] + add r1, r4, #0x0 + str r0, [r4, #0xc] + ldr r0, [r5, #0x4] + add r1, #0x2c + str r0, [r4, #0x4] + mov r0, #0x1 + strb r0, [r1, #0x0] + ldr r1, [r5, #0x8] + str r1, [r4, #0x8] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201E2F8 +sub_0201E2F8: ; 0x0201E2F8 + push {r4, lr} + mov r1, #0x0 + mov r2, #0x30 + add r4, r0, #0x0 + blx sub_020DF4A4 + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0xc] + add r4, #0x10 + add r0, r4, #0x0 + blx sub_020B19DC + pop {r4, pc} + + thumb_func_start sub_0201E314 +sub_0201E314: ; 0x0201E314 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r1, #0x0 + ldr r0, [r6, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0201E334 + ldr r0, _0201E368 ; =0x021C5998 + ldr r0, [r0, #0x0] + add r4, r0, #0x0 + add r5, r0, #0x0 + ldr r3, [r0, #0x1c] + add r4, #0x14 + add r5, #0x18 + ldr r0, [r0, #0x20] + b _0201E344 +_0201E334: + ldr r0, _0201E368 ; =0x021C5998 + mov r3, #0x2 + ldr r5, [r0, #0x0] + lsl r3, r3, #0x8 + add r4, r5, #0x0 + add r4, #0xc + add r5, #0x10 + add r0, r3, #0x0 +_0201E344: + str r0, [sp, #0x0] + ldr r1, [r4, #0x0] + ldr r2, [r5, #0x0] + add r0, r6, #0x0 + bl sub_0201E5F4 + add r0, r6, #0x0 + bl sub_0201E4AC + add r0, r6, #0x0 + add r1, r4, #0x0 + add r2, r5, #0x0 + bl sub_0201E640 + mov r0, #0x1 + add sp, #0x4 + pop {r3-r6, pc} + nop +_0201E368: .word 0x021C5998 + + thumb_func_start sub_0201E36C +sub_0201E36C: ; 0x0201E36C + push {r4-r6, lr} + add r5, r1, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0201E37C + bl sub_02020C2C +_0201E37C: + ldr r1, [r5, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201E39E + ldr r0, _0201E3EC ; =0x021C5998 + ldr r1, [r5, #0x8] + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x24] + bl sub_0201E534 + add r6, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r6, r0 + bne _0201E39E + mov r0, #0x0 + pop {r4-r6, pc} +_0201E39E: + ldr r1, [r5, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201E3C0 + ldr r0, _0201E3EC ; =0x021C5998 + ldr r1, [r5, #0x8] + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x26] + bl sub_0201E534 + add r4, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _0201E3C0 + mov r0, #0x0 + pop {r4-r6, pc} +_0201E3C0: + ldr r1, [r5, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201E3CA + str r6, [r5, #0x24] +_0201E3CA: + ldr r1, [r5, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201E3D4 + str r4, [r5, #0x28] +_0201E3D4: + ldr r0, [r5, #0x8] + lsl r1, r0, #0x5 + ldr r0, [r5, #0x0] + str r1, [r0, #0x8] + add r0, r5, #0x0 + bl sub_0201E4BC + add r0, r5, #0x0 + bl sub_0201E57C + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0201E3EC: .word 0x021C5998 + + thumb_func_start sub_0201E3F0 +sub_0201E3F0: ; 0x0201E3F0 + push {r4-r5} + ldr r2, _0201E424 ; =0x021C5998 + mov r1, #0x0 + ldr r5, [r2, #0x0] + ldr r2, [r5, #0x4] + cmp r2, #0x0 + ble _0201E41C + ldr r2, [r5, #0x0] + add r4, r2, #0x0 +_0201E402: + ldr r3, [r4, #0xc] + cmp r0, r3 + bne _0201E412 + mov r0, #0x30 + mul r0, r1 + add r0, r2, r0 + pop {r4-r5} + bx lr +_0201E412: + ldr r3, [r5, #0x4] + add r1, r1, #0x1 + add r4, #0x30 + cmp r1, r3 + blt _0201E402 +_0201E41C: + mov r0, #0x0 + pop {r4-r5} + bx lr + nop +_0201E424: .word 0x021C5998 + + thumb_func_start sub_0201E428 +sub_0201E428: ; 0x0201E428 + push {r3-r4} + ldr r1, _0201E460 ; =0x021C5998 + mov r0, #0x0 + ldr r4, [r1, #0x0] + ldr r1, [r4, #0x4] + cmp r1, #0x0 + ble _0201E458 + ldr r1, [r4, #0x0] + add r3, r1, #0x0 +_0201E43A: + add r2, r3, #0x0 + add r2, #0x2c + ldrb r2, [r2, #0x0] + cmp r2, #0x0 + bne _0201E44E + mov r2, #0x30 + mul r2, r0 + add r0, r1, r2 + pop {r3-r4} + bx lr +_0201E44E: + ldr r2, [r4, #0x4] + add r0, r0, #0x1 + add r3, #0x30 + cmp r0, r2 + blt _0201E43A +_0201E458: + mov r0, #0x0 + pop {r3-r4} + bx lr + nop +_0201E460: .word 0x021C5998 + + thumb_func_start sub_0201E464 +sub_0201E464: ; 0x0201E464 + push {r3, lr} + blx sub_020C5D9C + cmp r0, #0x20 + beq _0201E472 + cmp r0, #0x40 + bne _0201E47E +_0201E472: + ldr r0, _0201E4A8 ; =0x021C5998 + mov r1, #0x2 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xc + str r1, [r0, #0x1c] + b _0201E486 +_0201E47E: + ldr r0, _0201E4A8 ; =0x021C5998 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x1c] +_0201E486: + blx sub_020C5D2C + mov r1, #0x1 + lsl r1, r1, #0x8 + cmp r0, r1 + bne _0201E49C + ldr r0, _0201E4A8 ; =0x021C5998 + lsl r1, r1, #0x5 + ldr r0, [r0, #0x0] + str r1, [r0, #0x20] + pop {r3, pc} +_0201E49C: + ldr r0, _0201E4A8 ; =0x021C5998 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x20] + pop {r3, pc} + nop +_0201E4A8: .word 0x021C5998 + + thumb_func_start sub_0201E4AC +sub_0201E4AC: ; 0x0201E4AC + ldr r1, [r0, #0x8] + ldr r3, _0201E4B8 ; =sub_0201E4BC + lsl r2, r1, #0x5 + ldr r1, [r0, #0x0] + str r2, [r1, #0x8] + bx r3 + .balign 4 +_0201E4B8: .word sub_0201E4BC + 1 + + thumb_func_start sub_0201E4BC +sub_0201E4BC: ; 0x0201E4BC + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x10 + blx sub_020B19DC + ldr r0, [r4, #0x4] + mov r2, #0x1 + tst r0, r2 + beq _0201E4DA + add r3, r4, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x24] + add r3, #0x10 + blx sub_020B1240 +_0201E4DA: + ldr r0, [r4, #0x4] + mov r2, #0x2 + tst r0, r2 + beq _0201E4EE + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x28] + add r4, #0x10 + add r3, r4, #0x0 + blx sub_020B1240 +_0201E4EE: + pop {r4, pc} + + thumb_func_start sub_0201E4F0 +sub_0201E4F0: ; 0x0201E4F0 + push {r4-r7} + mov r3, #0x0 + cmp r1, #0x0 + ble _0201E50E + mov r5, #0x1 +_0201E4FA: + ldrh r7, [r0, #0x0] + add r4, r2, r3 + add r6, r5, #0x0 + lsl r6, r4 + add r4, r7, #0x0 + orr r4, r6 + add r3, r3, #0x1 + strh r4, [r0, #0x0] + cmp r3, r1 + blt _0201E4FA +_0201E50E: + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_0201E514 +sub_0201E514: ; 0x0201E514 + push {r4-r7} + mov r4, #0x0 + cmp r1, #0x0 + ble _0201E530 + mov r6, #0x1 +_0201E51E: + add r5, r2, r4 + add r7, r6, #0x0 + ldrh r3, [r0, #0x0] + lsl r7, r5 + bic r3, r7 + add r4, r4, #0x1 + strh r3, [r0, #0x0] + cmp r4, r1 + blt _0201E51E +_0201E530: + pop {r4-r7} + bx lr + + thumb_func_start sub_0201E534 +sub_0201E534: ; 0x0201E534 + push {r4-r7} + mov r3, #0x0 + mov r6, #0x1 + add r2, r3, #0x0 +_0201E53C: + add r4, r2, #0x0 + b _0201E546 +_0201E540: + cmp r5, #0x10 + bge _0201E554 + add r4, r4, #0x1 +_0201E546: + add r5, r3, r4 + add r7, r6, #0x0 + lsl r7, r5 + tst r7, r0 + bne _0201E554 + cmp r4, r1 + blt _0201E540 +_0201E554: + cmp r4, r1 + bge _0201E560 + add r3, r3, r4 + add r3, r3, #0x1 + cmp r3, #0x10 + blt _0201E53C +_0201E560: + cmp r3, #0x10 + blt _0201E56C + mov r0, #0x0 + mvn r0, r0 + pop {r4-r7} + bx lr +_0201E56C: + lsl r0, r3, #0x5 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_0201E574 +sub_0201E574: ; 0x0201E574 + mov r1, #0x0 + strh r1, [r0, #0x24] + strh r1, [r0, #0x26] + bx lr + + thumb_func_start sub_0201E57C +sub_0201E57C: ; 0x0201E57C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201E598 + ldr r0, _0201E5B4 ; =0x021C5998 + ldr r2, [r4, #0x24] + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x8] + add r0, #0x24 + lsr r2, r2, #0x5 + bl sub_0201E4F0 +_0201E598: + ldr r1, [r4, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201E5B0 + ldr r0, _0201E5B4 ; =0x021C5998 + ldr r2, [r4, #0x28] + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x8] + add r0, #0x26 + lsr r2, r2, #0x5 + bl sub_0201E4F0 +_0201E5B0: + pop {r4, pc} + nop +_0201E5B4: .word 0x021C5998 + + thumb_func_start sub_0201E5B8 +sub_0201E5B8: ; 0x0201E5B8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201E5D4 + ldr r0, _0201E5F0 ; =0x021C5998 + ldr r2, [r4, #0x24] + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x8] + add r0, #0x24 + lsr r2, r2, #0x5 + bl sub_0201E514 +_0201E5D4: + ldr r1, [r4, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201E5EC + ldr r0, _0201E5F0 ; =0x021C5998 + ldr r2, [r4, #0x28] + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x8] + add r0, #0x26 + lsr r2, r2, #0x5 + bl sub_0201E514 +_0201E5EC: + pop {r4, pc} + nop +_0201E5F0: .word 0x021C5998 + + thumb_func_start sub_0201E5F4 +sub_0201E5F4: ; 0x0201E5F4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + ldr r2, [r5, #0x4] + mov r0, #0x1 + tst r2, r0 + beq _0201E61A + ldr r2, [r5, #0x8] + lsl r2, r2, #0x5 + add r2, r1, r2 + cmp r2, r3 + bls _0201E618 + bl sub_02020C2C + bl sub_0201E0B8 + mov r0, #0x0 + b _0201E61A +_0201E618: + str r1, [r5, #0x24] +_0201E61A: + ldr r2, [r5, #0x4] + mov r1, #0x2 + tst r1, r2 + beq _0201E63C + ldr r1, [r5, #0x8] + lsl r1, r1, #0x5 + add r2, r4, r1 + ldr r1, [sp, #0x10] + cmp r2, r1 + bls _0201E63A + bl sub_02020C2C + bl sub_0201E0B8 + mov r0, #0x0 + pop {r3-r5, pc} +_0201E63A: + str r4, [r5, #0x28] +_0201E63C: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201E640 +sub_0201E640: ; 0x0201E640 + push {r3-r4} + ldr r4, [r0, #0x4] + mov r3, #0x1 + tst r3, r4 + beq _0201E654 + ldr r3, [r0, #0x8] + ldr r4, [r1, #0x0] + lsl r3, r3, #0x5 + add r3, r4, r3 + str r3, [r1, #0x0] +_0201E654: + ldr r3, [r0, #0x4] + mov r1, #0x2 + tst r1, r3 + beq _0201E666 + ldr r0, [r0, #0x8] + ldr r1, [r2, #0x0] + lsl r0, r0, #0x5 + add r0, r1, r0 + str r0, [r2, #0x0] +_0201E666: + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_0201E66C +sub_0201E66C: ; 0x0201E66C + push {r4, lr} + add r4, r0, #0x0 + blx sub_020C611C + blx sub_020C60E4 + blx sub_020C6070 + blx sub_020C6034 + blx sub_020C6108 + blx sub_020C60C0 + blx sub_020C605C + blx sub_020C600C + blx sub_020C60AC + blx sub_020C6098 + ldr r0, [r4, #0x0] + blx sub_020C6BF0 + ldr r0, [r4, #0x4] + blx sub_020C6970 + ldr r0, [r4, #0x8] + blx sub_020C62FC + ldr r0, [r4, #0xc] + blx sub_020C61F4 + ldr r0, [r4, #0x10] + blx sub_020C6A84 + ldr r0, [r4, #0x14] + blx sub_020C68B8 + ldr r0, [r4, #0x18] + blx sub_020C6280 + ldr r0, [r4, #0x1c] + blx sub_020C6168 + ldr r0, [r4, #0x20] + blx sub_020C66B4 + ldr r0, [r4, #0x24] + blx sub_020C65C0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201E6D8 +sub_0201E6D8: ; 0x0201E6D8 + ldr r0, _0201E6E0 ; =0x021C599C + mov r1, #0x0 + str r1, [r0, #0x4] + bx lr + .balign 4 +_0201E6E0: .word 0x021C599C + + thumb_func_start sub_0201E6E4 +sub_0201E6E4: ; 0x0201E6E4 + cmp r1, #0x1 + bne _0201E6F2 + ldr r1, _0201E718 ; =0x021C599C + ldr r1, [r1, #0x4] + tst r1, r0 + beq _0201E6FA + bx lr +_0201E6F2: + ldr r1, _0201E718 ; =0x021C599C + ldr r1, [r1, #0x4] + tst r1, r0 + beq _0201E714 +_0201E6FA: + ldr r1, _0201E718 ; =0x021C599C + ldr r2, [r1, #0x4] + add r3, r2, #0x0 + eor r3, r0 + mov r2, #0x1 + lsl r2, r2, #0x1a + str r3, [r1, #0x4] + ldr r1, [r2, #0x0] + ldr r0, _0201E71C ; =0xFFFFE0FF + and r1, r0 + lsl r0, r3, #0x8 + orr r0, r1 + str r0, [r2, #0x0] +_0201E714: + bx lr + nop +_0201E718: .word 0x021C599C +_0201E71C: .word 0xFFFFE0FF + + thumb_func_start sub_0201E720 +sub_0201E720: ; 0x0201E720 + ldr r1, _0201E738 ; =0x021C599C + mov r3, #0x1 + str r0, [r1, #0x4] + lsl r3, r3, #0x1a + ldr r2, [r3, #0x0] + ldr r1, _0201E73C ; =0xFFFFE0FF + lsl r0, r0, #0x8 + and r1, r2 + orr r0, r1 + str r0, [r3, #0x0] + bx lr + nop +_0201E738: .word 0x021C599C +_0201E73C: .word 0xFFFFE0FF + + thumb_func_start sub_0201E740 +sub_0201E740: ; 0x0201E740 + ldr r0, _0201E748 ; =0x021C599C + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_0201E748: .word 0x021C599C + + thumb_func_start sub_0201E74C +sub_0201E74C: ; 0x0201E74C + cmp r1, #0x1 + bne _0201E75A + ldr r1, _0201E77C ; =0x021C599C + ldr r1, [r1, #0x0] + tst r1, r0 + beq _0201E762 + bx lr +_0201E75A: + ldr r1, _0201E77C ; =0x021C599C + ldr r1, [r1, #0x0] + tst r1, r0 + beq _0201E77A +_0201E762: + ldr r1, _0201E77C ; =0x021C599C + ldr r2, [r1, #0x0] + add r3, r2, #0x0 + eor r3, r0 + ldr r2, _0201E780 ; =0x04001000 + str r3, [r1, #0x0] + ldr r1, [r2, #0x0] + ldr r0, _0201E784 ; =0xFFFFE0FF + and r1, r0 + lsl r0, r3, #0x8 + orr r0, r1 + str r0, [r2, #0x0] +_0201E77A: + bx lr + .balign 4 +_0201E77C: .word 0x021C599C +_0201E780: .word 0x04001000 +_0201E784: .word 0xFFFFE0FF + + thumb_func_start sub_0201E788 +sub_0201E788: ; 0x0201E788 + push {r3, lr} + blx sub_020C5A34 + ldr r2, _0201E79C ; =0x04001000 + mov r0, #0x1 + ldr r1, [r2, #0x0] + lsl r0, r0, #0x10 + orr r0, r1 + str r0, [r2, #0x0] + pop {r3, pc} + .balign 4 +_0201E79C: .word 0x04001000 + + thumb_func_start sub_0201E7A0 +sub_0201E7A0: ; 0x0201E7A0 + ldr r0, _0201E7C0 ; =0x021C4918 + ldr r2, _0201E7C4 ; =0x04000304 + ldrb r0, [r0, #0x5] + cmp r0, #0x0 + bne _0201E7B4 + ldrh r1, [r2, #0x0] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2, #0x0] + bx lr +_0201E7B4: + ldrh r1, [r2, #0x0] + ldr r0, _0201E7C8 ; =0xFFFF7FFF + and r0, r1 + strh r0, [r2, #0x0] + bx lr + nop +_0201E7C0: .word 0x021C4918 +_0201E7C4: .word 0x04000304 +_0201E7C8: .word 0xFFFF7FFF + + thumb_func_start sub_0201E7CC +sub_0201E7CC: ; 0x0201E7CC + ldr r0, _0201E7D4 ; =0x021C599C + ldr r0, [r0, #0x4] + bx lr + nop +_0201E7D4: .word 0x021C599C + + thumb_func_start sub_0201E7D8 +sub_0201E7D8: ; 0x0201E7D8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x3e] + ldr r2, [r5, #0x38] + ldrh r4, [r5, #0x3c] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _0201E8B4 ; =0x020FFA38 + asr r3, r2, #0x1f + ldrsh r0, [r0, r1] + asr r1, r0, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r0, r0, r2 + adc r1, r3 + asr r2, r4, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r3, r2, #0x1 + ldr r2, _0201E8B4 ; =0x020FFA38 + lsl r1, r1, #0x14 + ldrsh r2, [r2, r3] + lsr r0, r0, #0xc + orr r0, r1 + asr r1, r0, #0x1f + asr r3, r2, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [r5, #0x14] + ldrh r0, [r5, #0x3e] + ldr r2, [r5, #0x38] + asr r0, r0, #0x4 + lsl r0, r0, #0x1 + add r0, r0, #0x1 + lsl r1, r0, #0x1 + ldr r0, _0201E8B4 ; =0x020FFA38 + asr r3, r2, #0x1f + ldrsh r0, [r0, r1] + asr r1, r0, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + lsl r2, r2, #0xa + mov r3, #0x0 + add r0, r0, r2 + adc r1, r3 + ldrh r2, [r5, #0x3c] + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + asr r2, r2, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r3, r2, #0x1 + ldr r2, _0201E8B4 ; =0x020FFA38 + orr r0, r1 + ldrsh r2, [r2, r3] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + neg r0, r4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r1, [r5, #0x1c] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _0201E8B4 ; =0x020FFA38 + ldr r2, [r5, #0x38] + ldrsh r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + add r0, r5, #0x0 + str r1, [r5, #0x18] + add r0, #0x14 + add r5, #0x20 + add r1, r5, #0x0 + add r2, r0, #0x0 + blx sub_020C5634 + pop {r3-r5, pc} + nop +_0201E8B4: .word 0x020FFA38 + + thumb_func_start sub_0201E8B8 +sub_0201E8B8: ; 0x0201E8B8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x3e] + ldr r2, [r5, #0x38] + ldrh r4, [r5, #0x3c] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _0201E998 ; =0x020FFA38 + asr r3, r2, #0x1f + ldrsh r0, [r0, r1] + asr r1, r0, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r0, r0, r2 + adc r1, r3 + asr r2, r4, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r3, r2, #0x1 + ldr r2, _0201E998 ; =0x020FFA38 + lsl r1, r1, #0x14 + ldrsh r2, [r2, r3] + lsr r0, r0, #0xc + orr r0, r1 + asr r1, r0, #0x1f + asr r3, r2, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + neg r0, r1 + str r0, [r5, #0x20] + ldrh r0, [r5, #0x3e] + ldr r2, [r5, #0x38] + asr r0, r0, #0x4 + lsl r0, r0, #0x1 + add r0, r0, #0x1 + lsl r1, r0, #0x1 + ldr r0, _0201E998 ; =0x020FFA38 + asr r3, r2, #0x1f + ldrsh r0, [r0, r1] + asr r1, r0, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + lsl r2, r2, #0xa + mov r3, #0x0 + add r0, r0, r2 + adc r1, r3 + ldrh r2, [r5, #0x3c] + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + asr r2, r2, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r3, r2, #0x1 + ldr r2, _0201E998 ; =0x020FFA38 + orr r0, r1 + ldrsh r2, [r2, r3] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + neg r0, r1 + str r0, [r5, #0x28] + neg r0, r4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _0201E998 ; =0x020FFA38 + ldr r2, [r5, #0x38] + ldrsh r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + neg r0, r1 + str r0, [r5, #0x24] + add r0, r5, #0x0 + add r0, #0x20 + add r5, #0x14 + add r1, r5, #0x0 + add r2, r0, #0x0 + blx sub_020C5634 + pop {r3-r5, pc} + .balign 4 +_0201E998: .word 0x020FFA38 + + thumb_func_start sub_0201E99C +sub_0201E99C: ; 0x0201E99C + add r2, r1, #0x0 + add r2, #0x46 + strh r0, [r2, #0x0] + asr r0, r0, #0x4 + lsl r3, r0, #0x1 + ldr r2, _0201E9E0 ; =0x020FFA38 + lsl r0, r3, #0x1 + ldrsh r0, [r2, r0] + str r0, [r1, #0x0] + add r0, r3, #0x1 + lsl r0, r0, #0x1 + ldrsh r0, [r2, r0] + mov r2, #0x0 + str r0, [r1, #0x4] + ldr r0, _0201E9E4 ; =0x00001555 + str r0, [r1, #0x8] + mov r0, #0x96 + lsl r0, r0, #0xc + str r0, [r1, #0xc] + mov r0, #0xe1 + lsl r0, r0, #0xe + str r0, [r1, #0x10] + mov r0, #0x1 + str r2, [r1, #0x2c] + lsl r0, r0, #0xc + str r0, [r1, #0x30] + str r2, [r1, #0x34] + str r2, [r1, #0x54] + str r2, [r1, #0x58] + str r2, [r1, #0x5c] + str r2, [r1, #0x60] + str r2, [r1, #0x64] + bx lr + nop +_0201E9E0: .word 0x020FFA38 +_0201E9E4: .word 0x00001555 + + thumb_func_start sub_0201E9E8 +sub_0201E9E8: ; 0x0201E9E8 + ldr r2, [r0, #0x58] + cmp r2, #0x0 + bne _0201E9F2 + mov r2, #0x0 + str r2, [r1, #0x0] +_0201E9F2: + ldr r2, [r0, #0x5c] + cmp r2, #0x0 + bne _0201E9FC + mov r2, #0x0 + str r2, [r1, #0x4] +_0201E9FC: + ldr r0, [r0, #0x60] + cmp r0, #0x0 + bne _0201EA06 + mov r0, #0x0 + str r0, [r1, #0x8] +_0201EA06: + bx lr + + thumb_func_start sub_0201EA08 +sub_0201EA08: ; 0x0201EA08 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r7, [r5, #0x64] + add r4, r1, #0x0 + add r6, r2, #0x0 + cmp r7, #0x0 + bne _0201EA20 + ldmia r4!, {r0-r1} + stmia r6!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r6, #0x0] + pop {r3-r7, pc} +_0201EA20: + add r0, r7, #0x0 + str r0, [sp, #0x0] + add r0, #0x8 + str r0, [sp, #0x0] + ldr r0, [r7, #0x10] + cmp r0, #0x0 + bne _0201EA48 + add r3, r4, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldr r0, [r5, #0x64] + ldr r2, [r7, #0x4] + ldr r1, [r0, #0xc] + cmp r2, r1 + bne _0201EA5C + mov r1, #0x1 + str r1, [r0, #0x10] + b _0201EA5C +_0201EA48: + ldr r2, [r7, #0x4] + mov r1, #0xc + mul r1, r2 + ldr r0, [r7, #0x20] + add r2, r6, #0x0 + add r3, r0, r1 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] +_0201EA5C: + ldr r1, [r5, #0x64] + ldr r0, [r7, #0x4] + ldr r1, [r1, #0x0] + add r0, r0, #0x1 + blx sub_020EBC80 + str r1, [r7, #0x4] + ldr r1, [sp, #0x0] + ldr r0, [r5, #0x64] + ldr r2, [r1, #0x0] + mov r1, #0xc + ldr r0, [r0, #0x20] + mul r1, r2 + add r3, r4, #0x0 + add r2, r0, r1 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldr r0, [sp, #0x0] + ldr r1, [r5, #0x64] + ldr r0, [r0, #0x0] + ldr r1, [r1, #0x0] + add r0, r0, #0x1 + blx sub_020EBC80 + ldr r0, [sp, #0x0] + str r1, [r0, #0x0] + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x14] + cmp r0, #0x0 + bne _0201EAA0 + ldr r0, [r4, #0x0] + str r0, [r6, #0x0] +_0201EAA0: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x18] + cmp r0, #0x0 + bne _0201EAAC + ldr r0, [r4, #0x4] + str r0, [r6, #0x4] +_0201EAAC: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x1c] + cmp r0, #0x0 + bne _0201EAB8 + ldr r0, [r4, #0x8] + str r0, [r6, #0x8] +_0201EAB8: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201EABC +sub_0201EABC: ; 0x0201EABC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [sp, #0x18] + add r7, r1, #0x0 + str r0, [sp, #0x18] + ldr r0, [r0, #0x54] + add r6, r2, #0x0 + str r3, [sp, #0x0] + cmp r0, #0x0 + beq _0201EB46 + add r0, r7, #0x1 + cmp r0, r5 + ble _0201EADA + bl sub_02020C2C +_0201EADA: + ldr r0, [sp, #0x0] + mov r1, #0x24 + bl sub_02016998 + add r4, r0, #0x0 + mov r1, #0xc + ldr r0, [sp, #0x0] + mul r1, r5 + bl sub_02016998 + mov r1, #0x0 + str r0, [r4, #0x20] + cmp r5, #0x0 + ble _0201EB12 + add r2, r1, #0x0 + add r0, r1, #0x0 +_0201EAFA: + ldr r3, [r4, #0x20] + add r1, r1, #0x1 + str r0, [r3, r2] + ldr r3, [r4, #0x20] + add r3, r3, r2 + str r0, [r3, #0x4] + ldr r3, [r4, #0x20] + add r3, r3, r2 + str r0, [r3, #0x8] + add r2, #0xc + cmp r1, r5 + blt _0201EAFA +_0201EB12: + str r5, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + str r7, [r4, #0x8] + str r7, [r4, #0xc] + str r0, [r4, #0x10] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + mov r0, #0x1 + add r1, r6, #0x0 + tst r1, r0 + beq _0201EB2E + str r0, [r4, #0x14] +_0201EB2E: + mov r0, #0x2 + tst r0, r6 + beq _0201EB38 + mov r0, #0x1 + str r0, [r4, #0x18] +_0201EB38: + mov r0, #0x4 + tst r0, r6 + beq _0201EB42 + mov r0, #0x1 + str r0, [r4, #0x1c] +_0201EB42: + ldr r0, [sp, #0x18] + str r4, [r0, #0x64] +_0201EB46: + pop {r3-r7, pc} + + thumb_func_start sub_0201EB48 +sub_0201EB48: ; 0x0201EB48 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x64] + cmp r0, #0x0 + beq _0201EB62 + ldr r0, [r0, #0x20] + bl sub_02016A18 + ldr r0, [r4, #0x64] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x64] +_0201EB62: + pop {r4, pc} + + thumb_func_start sub_0201EB64 +sub_0201EB64: ; 0x0201EB64 + ldr r3, _0201EB6C ; =sub_02016998 + mov r1, #0x68 + bx r3 + nop +_0201EB6C: .word sub_02016998 + 1 + + thumb_func_start sub_0201EB70 +sub_0201EB70: ; 0x0201EB70 + ldr r3, _0201EB74 ; =sub_02016A18 + bx r3 + .balign 4 +_0201EB74: .word sub_02016A18 + 1 + + thumb_func_start sub_0201EB78 +sub_0201EB78: ; 0x0201EB78 + push {r3-r4} + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r2, #0xd +_0201EB80: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0201EB80 + pop {r3-r4} + bx lr + + thumb_func_start sub_0201EB8C +sub_0201EB8C: ; 0x0201EB8C + ldr r1, _0201EB94 ; =0x021C59A4 + str r0, [r1, #0x0] + bx lr + nop +_0201EB94: .word 0x021C59A4 + + thumb_func_start sub_0201EB98 +sub_0201EB98: ; 0x0201EB98 + ldr r0, _0201EBA0 ; =0x021C59A4 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_0201EBA0: .word 0x021C59A4 + + thumb_func_start sub_0201EBA4 +sub_0201EBA4: ; 0x0201EBA4 + push {r3-r6, lr} + sub sp, #0x1c + ldr r0, _0201EC40 ; =0x021C59A4 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0201EC3A + ldr r0, [r1, #0x54] + cmp r0, #0x0 + beq _0201EBEE + add r1, #0x48 + add r2, sp, #0x10 + blx sub_020C5600 + ldr r0, _0201EC40 ; =0x021C59A4 + add r1, sp, #0x10 + ldr r0, [r0, #0x0] + bl sub_0201E9E8 + ldr r0, _0201EC40 ; =0x021C59A4 + add r1, sp, #0x10 + ldr r0, [r0, #0x0] + add r2, sp, #0x4 + bl sub_0201EA08 + ldr r1, _0201EC40 ; =0x021C59A4 + add r0, sp, #0x4 + ldr r1, [r1, #0x0] + bl sub_0201EF70 + ldr r0, _0201EC40 ; =0x021C59A4 + ldr r3, [r0, #0x0] + ldr r2, [r3, #0x54] + add r3, #0x48 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] +_0201EBEE: + ldr r0, _0201EC40 ; =0x021C59A4 + ldr r5, _0201EC44 ; =0x021CEF58 + ldr r4, [r0, #0x0] + add r3, r4, #0x0 + add r2, r4, #0x0 + add r4, #0x14 + add r6, r4, #0x0 + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + ldr r0, [r6, #0x0] + add r2, #0x2c + str r0, [r5, #0x0] + add r6, r2, #0x0 + ldr r5, _0201EC48 ; =0x021CEF64 + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + ldr r0, [r6, #0x0] + add r3, #0x20 + str r0, [r5, #0x0] + add r6, r3, #0x0 + ldr r5, _0201EC4C ; =0x021CEF70 + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + ldr r0, [r6, #0x0] + add r1, r2, #0x0 + str r0, [r5, #0x0] + ldr r0, _0201EC50 ; =0x021CED64 + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + blx sub_020C80A4 + ldr r1, _0201EC54 ; =0x021CED98 + mov r0, #0xe8 + ldr r2, [r1, #0x7c] + bic r2, r0 + str r2, [r1, #0x7c] +_0201EC3A: + add sp, #0x1c + pop {r3-r6, pc} + nop +_0201EC40: .word 0x021C59A4 +_0201EC44: .word 0x021CEF58 +_0201EC48: .word 0x021CEF64 +_0201EC4C: .word 0x021CEF70 +_0201EC50: .word 0x021CED64 +_0201EC54: .word 0x021CED98 + + thumb_func_start sub_0201EC58 +sub_0201EC58: ; 0x0201EC58 + add r3, r0, #0x0 + add r2, r1, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x2c + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_0201EC68 +sub_0201EC68: ; 0x0201EC68 + push {r3-r4} + add r3, r1, #0x0 + add r4, r0, #0x0 + str r4, [r3, #0x54] + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + add r2, #0x48 + stmia r2!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r2, #0x0] + mov r0, #0x1 + str r0, [r3, #0x58] + str r0, [r3, #0x5c] + str r0, [r3, #0x60] + pop {r3-r4} + bx lr + + thumb_func_start sub_0201EC88 +sub_0201EC88: ; 0x0201EC88 + mov r1, #0x0 + str r1, [r0, #0x54] + str r1, [r0, #0x58] + str r1, [r0, #0x5c] + str r1, [r0, #0x60] + bx lr + + thumb_func_start sub_0201EC94 +sub_0201EC94: ; 0x0201EC94 + str r0, [r2, #0xc] + add r0, r2, #0x0 + str r1, [r2, #0x10] + add r0, #0x44 + ldr r3, _0201ECA4 ; =sub_0201EE2C + ldrb r0, [r0, #0x0] + add r1, r2, #0x0 + bx r3 + .balign 4 +_0201ECA4: .word sub_0201EE2C + 1 + + thumb_func_start sub_0201ECA8 +sub_0201ECA8: ; 0x0201ECA8 + push {r3-r7, lr} + ldr r4, [sp, #0x20] + add r5, r0, #0x0 + add r7, r1, #0x0 + add r0, r3, #0x0 + add r1, r4, #0x0 + add r6, r2, #0x0 + bl sub_0201E99C + add r3, r5, #0x0 + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x20 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + str r7, [r4, #0x38] + ldrh r0, [r6, #0x0] + strh r0, [r4, #0x3c] + ldrh r0, [r6, #0x2] + strh r0, [r4, #0x3e] + add r0, r4, #0x0 + ldrh r1, [r6, #0x4] + add r0, #0x40 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + ldrh r1, [r6, #0x6] + add r0, #0x42 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_0201E7D8 + add r0, sp, #0x8 + ldrb r0, [r0, #0x10] + add r1, r4, #0x0 + bl sub_0201EE2C + ldr r0, [sp, #0x1c] + cmp r0, #0x0 + beq _0201ED0E + str r5, [r4, #0x54] + add r2, r4, #0x0 + ldmia r5!, {r0-r1} + add r2, #0x48 + stmia r2!, {r0-r1} + ldr r0, [r5, #0x0] + str r0, [r2, #0x0] + mov r0, #0x1 + str r0, [r4, #0x58] + str r0, [r4, #0x5c] + str r0, [r4, #0x60] +_0201ED0E: + pop {r3-r7, pc} + + thumb_func_start sub_0201ED10 +sub_0201ED10: ; 0x0201ED10 + push {r3-r7, lr} + ldr r4, [sp, #0x1c] + add r6, r0, #0x0 + add r7, r1, #0x0 + add r0, r3, #0x0 + add r1, r4, #0x0 + add r5, r2, #0x0 + bl sub_0201E99C + add r2, r4, #0x0 + ldmia r6!, {r0-r1} + add r2, #0x14 + stmia r2!, {r0-r1} + ldr r0, [r6, #0x0] + str r0, [r2, #0x0] + str r7, [r4, #0x38] + ldrh r0, [r5, #0x0] + strh r0, [r4, #0x3c] + ldrh r0, [r5, #0x2] + strh r0, [r4, #0x3e] + add r0, r4, #0x0 + ldrh r1, [r5, #0x4] + add r0, #0x40 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + ldrh r1, [r5, #0x6] + add r0, #0x42 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_0201E8B8 + add r0, sp, #0x8 + ldrb r0, [r0, #0x10] + add r1, r4, #0x0 + bl sub_0201EE2C + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201ED5C +sub_0201ED5C: ; 0x0201ED5C + push {r4-r7, lr} + sub sp, #0x3c + ldr r4, [sp, #0x54] + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r2, #0x0 + add r1, r4, #0x0 + add r7, r3, #0x0 + bl sub_0201E99C + add r3, r5, #0x0 + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x20 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r3, r6, #0x0 + str r0, [r2, #0x0] + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x14 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r1, r5, #0x0 + str r0, [r2, #0x0] + add r0, r6, #0x0 + add r2, sp, #0x30 + blx sub_020C5600 + add r0, sp, #0x30 + blx sub_020C53C8 + str r0, [r4, #0x38] + mov r6, #0x0 + add r0, sp, #0x24 + str r6, [r0, #0x0] + str r6, [r0, #0x4] + str r6, [r0, #0x8] + add r0, sp, #0x18 + str r6, [r0, #0x0] + str r6, [r0, #0x4] + str r6, [r0, #0x8] + add r0, sp, #0xc + str r6, [r0, #0x0] + str r6, [r0, #0x4] + str r6, [r0, #0x8] + mov r0, #0x1 + lsl r0, r0, #0xc + add r3, sp, #0x30 + str r0, [sp, #0x8] + ldmia r3!, {r0-r1} + add r2, sp, #0xc + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r6, [sp, #0x0] + str r0, [r2, #0x0] + str r6, [sp, #0x4] + str r6, [sp, #0x10] + add r0, sp, #0x0 + add r1, sp, #0xc + bl sub_0201C7B0 + strh r0, [r4, #0x3e] + add r1, r6, #0x0 + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [sp, #0x0] + ldr r0, [sp, #0x38] + str r1, [sp, #0x4] + str r0, [sp, #0xc] + ldr r0, [sp, #0x34] + str r1, [sp, #0x8] + str r0, [sp, #0x14] + str r1, [sp, #0x10] + add r0, sp, #0x0 + add r1, sp, #0xc + bl sub_0201C7B0 + strh r0, [r4, #0x3c] + add r0, r4, #0x0 + add r1, r6, #0x0 + add r0, #0x40 + strh r1, [r0, #0x0] + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_0201EE2C + ldr r0, [sp, #0x50] + cmp r0, #0x0 + beq _0201EE26 + str r5, [r4, #0x54] + add r2, r4, #0x0 + ldmia r5!, {r0-r1} + add r2, #0x48 + stmia r2!, {r0-r1} + ldr r0, [r5, #0x0] + str r0, [r2, #0x0] + mov r0, #0x1 + str r0, [r4, #0x58] + str r0, [r4, #0x5c] + str r0, [r4, #0x60] +_0201EE26: + add sp, #0x3c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0201EE2C +sub_0201EE2C: ; 0x0201EE2C + push {r3-r6, lr} + sub sp, #0x14 + add r5, r1, #0x0 + cmp r0, #0x0 + bne _0201EE6C + ldr r0, [r5, #0x10] + str r0, [sp, #0x0] + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, _0201EEE4 ; =0x021CED20 + str r0, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + ldr r3, [r5, #0xc] + blx sub_020C8538 + ldr r1, _0201EEE8 ; =0x021CED98 + mov r0, #0x50 + ldr r2, [r1, #0x7c] + add r5, #0x44 + bic r2, r0 + str r2, [r1, #0x7c] + mov r1, #0x0 + ldr r0, _0201EEEC ; =0x02105BB8 + strb r1, [r5, #0x0] + str r1, [r0, #0x0] + add sp, #0x14 + pop {r3-r6, pc} +_0201EE6C: + ldr r4, [r5, #0x38] + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + blx sub_020C50B8 + asr r1, r0, #0x1f + asr r3, r4, #0x1f + add r2, r4, #0x0 + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsr r4, r2, #0xc + lsl r0, r1, #0x14 + orr r4, r0 + ldr r2, [r5, #0x8] + asr r1, r4, #0x1f + add r0, r4, #0x0 + asr r3, r2, #0x1f + blx sub_020EBC30 + mov r6, #0x2 + mov r2, #0x0 + lsl r6, r6, #0xa + add r3, r0, r6 + adc r1, r2 + lsl r0, r1, #0x14 + lsr r3, r3, #0xc + orr r3, r0 + ldr r0, [r5, #0xc] + neg r1, r4 + str r0, [sp, #0x0] + ldr r0, [r5, #0x10] + str r0, [sp, #0x4] + lsl r0, r6, #0x1 + str r0, [sp, #0x8] + str r2, [sp, #0xc] + ldr r0, _0201EEE4 ; =0x021CED20 + neg r2, r3 + str r0, [sp, #0x10] + add r0, r4, #0x0 + blx sub_020C823C + ldr r1, _0201EEE8 ; =0x021CED98 + mov r0, #0x50 + ldr r2, [r1, #0x7c] + add r5, #0x44 + bic r2, r0 + str r2, [r1, #0x7c] + mov r0, #0x1 + strb r0, [r5, #0x0] + ldr r0, _0201EEEC ; =0x02105BB8 + mov r1, #0x0 + str r1, [r0, #0x0] + add sp, #0x14 + pop {r3-r6, pc} + nop +_0201EEE4: .word 0x021CED20 +_0201EEE8: .word 0x021CED98 +_0201EEEC: .word 0x02105BB8 + + thumb_func_start sub_0201EEF0 +sub_0201EEF0: ; 0x0201EEF0 + add r2, r1, #0x0 + add r2, #0x46 + strh r0, [r2, #0x0] + add r0, r1, #0x0 + add r0, #0x46 + ldrh r0, [r0, #0x0] + ldr r3, _0201EF24 ; =sub_0201EE2C + asr r0, r0, #0x4 + lsl r2, r0, #0x2 + ldr r0, _0201EF28 ; =0x020FFA38 + ldrsh r2, [r0, r2] + str r2, [r1, #0x0] + add r2, r1, #0x0 + add r2, #0x46 + ldrh r2, [r2, #0x0] + asr r2, r2, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r0, [r0, r2] + str r0, [r1, #0x4] + add r0, r1, #0x0 + add r0, #0x44 + ldrb r0, [r0, #0x0] + bx r3 + nop +_0201EF24: .word sub_0201EE2C + 1 +_0201EF28: .word 0x020FFA38 + + thumb_func_start sub_0201EF2C +sub_0201EF2C: ; 0x0201EF2C + add r2, r1, #0x0 + add r2, #0x46 + ldrh r2, [r2, #0x0] + ldr r3, _0201EF68 ; =sub_0201EE2C + add r2, r2, r0 + add r0, r1, #0x0 + add r0, #0x46 + strh r2, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x46 + ldrh r0, [r0, #0x0] + asr r0, r0, #0x4 + lsl r2, r0, #0x2 + ldr r0, _0201EF6C ; =0x020FFA38 + ldrsh r2, [r0, r2] + str r2, [r1, #0x0] + add r2, r1, #0x0 + add r2, #0x46 + ldrh r2, [r2, #0x0] + asr r2, r2, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r0, [r0, r2] + str r0, [r1, #0x4] + add r0, r1, #0x0 + add r0, #0x44 + ldrb r0, [r0, #0x0] + bx r3 + nop +_0201EF68: .word sub_0201EE2C + 1 +_0201EF6C: .word 0x020FFA38 + + thumb_func_start sub_0201EF70 +sub_0201EF70: ; 0x0201EF70 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x14 + add r1, r5, #0x0 + add r2, r0, #0x0 + blx sub_020C5634 + add r4, #0x20 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + blx sub_020C5634 + pop {r3-r5, pc} + + thumb_func_start sub_0201EF90 +sub_0201EF90: ; 0x0201EF90 + ldrh r2, [r0, #0x0] + strh r2, [r1, #0x3c] + ldrh r2, [r0, #0x2] + strh r2, [r1, #0x3e] + add r2, r1, #0x0 + ldrh r3, [r0, #0x4] + add r2, #0x40 + strh r3, [r2, #0x0] + ldrh r2, [r0, #0x6] + add r0, r1, #0x0 + add r0, #0x42 + strh r2, [r0, #0x0] + ldr r3, _0201EFB0 ; =sub_0201E7D8 + add r0, r1, #0x0 + bx r3 + nop +_0201EFB0: .word sub_0201E7D8 + 1 + + thumb_func_start sub_0201EFB4 +sub_0201EFB4: ; 0x0201EFB4 + ldrh r3, [r1, #0x3c] + ldrh r2, [r0, #0x0] + add r2, r3, r2 + strh r2, [r1, #0x3c] + ldrh r3, [r1, #0x3e] + ldrh r2, [r0, #0x2] + add r2, r3, r2 + strh r2, [r1, #0x3e] + add r2, r1, #0x0 + add r2, #0x40 + ldrh r2, [r2, #0x0] + ldrh r0, [r0, #0x4] + ldr r3, _0201EFDC ; =sub_0201E8B8 + add r2, r2, r0 + add r0, r1, #0x0 + add r0, #0x40 + strh r2, [r0, #0x0] + add r0, r1, #0x0 + bx r3 + nop +_0201EFDC: .word sub_0201E8B8 + 1 + + thumb_func_start sub_0201EFE0 +sub_0201EFE0: ; 0x0201EFE0 + ldr r3, _0201EFE8 ; =sub_0201E7D8 + str r0, [r1, #0x38] + add r0, r1, #0x0 + bx r3 + .balign 4 +_0201EFE8: .word sub_0201E7D8 + 1 + + thumb_func_start sub_0201EFEC +sub_0201EFEC: ; 0x0201EFEC + push {r4, lr} + add r3, r1, #0x0 + add r4, r0, #0x0 + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + add r2, #0x20 + stmia r2!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r2, #0x0] + add r0, r3, #0x0 + bl sub_0201E7D8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201F008 +sub_0201F008: ; 0x0201F008 + add r0, #0x46 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0201F010 +sub_0201F010: ; 0x0201F010 + ldr r0, [r0, #0x38] + bx lr + + thumb_func_start sub_0201F014 +sub_0201F014: ; 0x0201F014 + ldrh r2, [r1, #0x3c] + strh r2, [r0, #0x0] + ldrh r2, [r1, #0x3e] + strh r2, [r0, #0x2] + add r2, r1, #0x0 + add r2, #0x40 + ldrh r2, [r2, #0x0] + add r1, #0x42 + strh r2, [r0, #0x4] + ldrh r1, [r1, #0x0] + strh r1, [r0, #0x6] + bx lr + + thumb_func_start sub_0201F02C +sub_0201F02C: ; 0x0201F02C + add r2, r1, #0x0 + add r2, #0x20 + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + + thumb_func_start sub_0201F03C +sub_0201F03C: ; 0x0201F03C + add r2, r1, #0x0 + add r2, #0x14 + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + + thumb_func_start sub_0201F04C +sub_0201F04C: ; 0x0201F04C + add r3, r0, #0x0 + add r2, r1, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x20 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_0201F05C +sub_0201F05C: ; 0x0201F05C + add r3, r0, #0x0 + add r2, r1, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x14 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_0201F06C +sub_0201F06C: ; 0x0201F06C + mov r2, #0x0 + strb r2, [r0, #0x0] + strb r2, [r0, #0x1] + str r2, [r0, #0x4] + add r1, r0, #0x0 + str r2, [r0, #0x8] + add r1, #0xc4 + str r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0xc8 + str r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0xcc + str r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0xd0 + str r2, [r1, #0x0] + strb r2, [r0, #0x3] + bx lr + .balign 4 + + thumb_func_start sub_0201F094 +sub_0201F094: ; 0x0201F094 + mov r3, #0x0 + str r3, [r0, #0x1c] + str r3, [r0, #0x20] + str r3, [r0, #0x78] + add r1, r0, #0x0 + str r3, [r0, #0x7c] + add r1, #0x80 + str r3, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x84 + add r2, r0, #0x0 + str r3, [r1, #0x0] + add r2, #0x94 + mov r1, #0x10 +_0201F0B0: + strb r3, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0201F0B0 + add r2, r0, #0x0 + mov r1, #0x0 + add r2, #0x88 + str r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0x8c + str r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0x90 + str r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xa4 + str r1, [r2, #0x0] + str r1, [r0, #0x0] + str r1, [r0, #0x4] + mov r2, #0x1 + str r1, [r0, #0x8] + lsl r2, r2, #0xc + str r2, [r0, #0xc] + str r2, [r0, #0x10] + str r2, [r0, #0x14] + add r2, r0, #0x0 + add r2, #0xaa + strh r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xa8 + strb r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xb0 + str r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xb4 + str r1, [r2, #0x0] + strb r1, [r0, #0x18] + bx lr + .balign 4 + + thumb_func_start sub_0201F100 +sub_0201F100: ; 0x0201F100 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, _0201F13C ; =0x021C59A8 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201F112 + bl sub_02020C2C +_0201F112: + mov r1, #0xd4 + add r0, r4, #0x0 + mul r1, r6 + bl sub_02016998 + ldr r7, _0201F13C ; =0x021C59A8 + mov r4, #0x0 + str r0, [r7, #0x0] + str r6, [r7, #0x4] + cmp r6, #0x0 + ble _0201F13A + add r5, r4, #0x0 +_0201F12A: + ldr r0, [r7, #0x0] + add r0, r0, r5 + bl sub_0201F06C + add r4, r4, #0x1 + add r5, #0xd4 + cmp r4, r6 + blt _0201F12A +_0201F13A: + pop {r3-r7, pc} + .balign 4 +_0201F13C: .word 0x021C59A8 + + thumb_func_start sub_0201F140 +sub_0201F140: ; 0x0201F140 + push {r4-r6, lr} + ldr r6, _0201F174 ; =0x021C59A8 + mov r4, #0x0 + ldr r0, [r6, #0x4] + cmp r0, #0x0 + ble _0201F160 + add r5, r4, #0x0 +_0201F14E: + ldr r0, [r6, #0x0] + add r0, r0, r5 + bl sub_0201F23C + ldr r0, [r6, #0x4] + add r4, r4, #0x1 + add r5, #0xd4 + cmp r4, r0 + blt _0201F14E +_0201F160: + ldr r0, _0201F174 ; =0x021C59A8 + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _0201F174 ; =0x021C59A8 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + pop {r4-r6, pc} + nop +_0201F174: .word 0x021C59A8 + + thumb_func_start sub_0201F178 +sub_0201F178: ; 0x0201F178 + push {r3-r7, lr} + ldr r6, _0201F1B0 ; =0x021C59A8 + mov r4, #0x0 + ldr r0, [r6, #0x4] + cmp r0, #0x0 + ble _0201F1AC + add r5, r4, #0x0 + mov r7, #0x2 +_0201F188: + ldr r0, [r6, #0x0] + add r0, r0, r5 + ldrb r1, [r0, #0x1] + cmp r1, #0x1 + bne _0201F196 + bl sub_0201F318 +_0201F196: + ldr r0, [r6, #0x0] + add r1, r0, r5 + ldrb r0, [r1, #0x3] + cmp r0, #0x1 + bne _0201F1A2 + strb r7, [r1, #0x3] +_0201F1A2: + ldr r0, [r6, #0x4] + add r4, r4, #0x1 + add r5, #0xd4 + cmp r4, r0 + blt _0201F188 +_0201F1AC: + pop {r3-r7, pc} + nop +_0201F1B0: .word 0x021C59A8 + + thumb_func_start sub_0201F1B4 +sub_0201F1B4: ; 0x0201F1B4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0201F2E4 + add r4, r0, #0x0 + bne _0201F1C8 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_0201F1C8: + mov r0, #0x1 + strb r0, [r4, #0x0] + strb r0, [r4, #0x1] + ldr r2, [r5, #0x0] + mov r1, #0xb8 + ldr r0, [r5, #0x4] + mul r1, r2 + bl sub_02016998 + str r0, [r4, #0x4] + ldr r0, [r5, #0x0] + str r0, [r4, #0x8] + add r0, r4, #0x0 + add r0, #0xc + bl sub_0201F094 + add r1, r4, #0x0 + add r0, r4, #0x0 + add r1, #0xc + add r0, #0xbc + str r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0xc0 + str r1, [r0, #0x0] + ldr r1, [r5, #0x0] + ldr r0, [r5, #0x4] + lsl r1, r1, #0x2 + bl sub_02016998 + add r1, r4, #0x0 + add r1, #0xc4 + str r0, [r1, #0x0] + add r0, r4, #0x0 + bl sub_0201FABC + ldr r0, [r5, #0x4] + mov r1, #0x10 + bl sub_02016998 + add r1, r4, #0x0 + add r1, #0xcc + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0xcc + ldr r0, [r0, #0x0] + ldr r1, [r5, #0x4] + mov r2, #0x4 + bl sub_02016B20 + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + bl sub_0201C360 + add r1, r4, #0x0 + add r1, #0xd0 + str r0, [r1, #0x0] + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0201F23C +sub_0201F23C: ; 0x0201F23C + push {r4, lr} + add r4, r0, #0x0 + bne _0201F24A + bl sub_02020C2C + mov r0, #0x0 + pop {r4, pc} +_0201F24A: + ldrb r1, [r4, #0x0] + cmp r1, #0x0 + beq _0201F27E + bl sub_0201F284 + ldr r0, [r4, #0x4] + bl sub_02016A18 + add r0, r4, #0x0 + add r0, #0xc4 + ldr r0, [r0, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + add r0, #0xcc + ldr r0, [r0, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + bl sub_0201C39C + add r0, r4, #0x0 + bl sub_0201F06C +_0201F27E: + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201F284 +sub_0201F284: ; 0x0201F284 + push {r3-r5, lr} + cmp r0, #0x0 + bne _0201F294 + bne _0201F290 + bl sub_02020C2C +_0201F290: + mov r0, #0x0 + pop {r3-r5, pc} +_0201F294: + ldrb r1, [r0, #0x0] + cmp r1, #0x0 + beq _0201F2BA + add r1, r0, #0x0 + add r1, #0xbc + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + add r4, #0xc + cmp r1, r4 + beq _0201F2BA +_0201F2A8: + add r0, r1, #0x0 + add r0, #0xb0 + ldr r5, [r0, #0x0] + add r0, r1, #0x0 + bl sub_0201F744 + add r1, r5, #0x0 + cmp r5, r4 + bne _0201F2A8 +_0201F2BA: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201F2C0 +sub_0201F2C0: ; 0x0201F2C0 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F2CA + bl sub_02020C2C +_0201F2CA: + ldrb r0, [r4, #0x3] + cmp r0, #0x0 + bne _0201F2D4 + mov r0, #0x0 + pop {r4, pc} +_0201F2D4: + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0201F2D8 +sub_0201F2D8: ; 0x0201F2D8 + ldrb r1, [r0, #0x3] + cmp r1, #0x2 + bne _0201F2E2 + mov r1, #0x0 + strb r1, [r0, #0x3] +_0201F2E2: + bx lr + + thumb_func_start sub_0201F2E4 +sub_0201F2E4: ; 0x0201F2E4 + push {r3-r4} + ldr r0, _0201F314 ; =0x021C59A8 + mov r1, #0x0 + ldr r3, [r0, #0x4] + cmp r3, #0x0 + ble _0201F30C + ldr r4, [r0, #0x0] + add r2, r4, #0x0 +_0201F2F4: + ldrb r0, [r2, #0x0] + cmp r0, #0x0 + bne _0201F304 + mov r0, #0xd4 + mul r0, r1 + add r0, r4, r0 + pop {r3-r4} + bx lr +_0201F304: + add r1, r1, #0x1 + add r2, #0xd4 + cmp r1, r3 + blt _0201F2F4 +_0201F30C: + mov r0, #0x0 + pop {r3-r4} + bx lr + nop +_0201F314: .word 0x021C59A8 + + thumb_func_start sub_0201F318 +sub_0201F318: ; 0x0201F318 + push {r3-r6, lr} + sub sp, #0x24 + add r5, r0, #0x0 + bne _0201F324 + bl sub_02020C2C +_0201F324: + add r0, sp, #0x0 + blx sub_020C3F14 + add r0, r5, #0x0 + add r0, #0xbc + ldr r4, [r0, #0x0] + add r5, #0xc + cmp r4, r5 + beq _0201F37E + add r6, sp, #0x0 +_0201F338: + ldrb r0, [r4, #0x18] + cmp r0, #0x1 + bne _0201F376 + add r0, r4, #0x0 + bl sub_0201FC54 + add r0, r4, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + bne _0201F356 + add r0, r4, #0x0 + bl sub_0201F90C + b _0201F360 +_0201F356: + cmp r0, #0x2 + bne _0201F360 + add r0, r4, #0x0 + bl sub_0201F8F0 +_0201F360: + add r0, r4, #0x0 + add r3, r4, #0x0 + add r0, #0x24 + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, #0xc + bl sub_0201B26C + add r0, r4, #0x0 + bl sub_0201FC70 +_0201F376: + add r4, #0xb0 + ldr r4, [r4, #0x0] + cmp r4, r5 + bne _0201F338 +_0201F37E: + add sp, #0x24 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_0201F384 +sub_0201F384: ; 0x0201F384 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r6, [r5, #0x1c] + add r4, r1, #0x0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0201F5B8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201F5D4 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0201F648 + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0201F3BA + add r6, #0xc + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0201FB58 +_0201F3BA: + add r0, r5, #0x0 + mov r1, #0x2 + add r0, #0xa8 + strb r1, [r0, #0x0] + ldr r0, [r4, #0x8] + mov r1, #0x0 + str r0, [r5, #0x20] + add r0, r5, #0x0 + add r0, #0xaa + strh r1, [r0, #0x0] + add r5, #0xac + str r1, [r5, #0x0] + pop {r4-r6, pc} + + thumb_func_start sub_0201F3D4 +sub_0201F3D4: ; 0x0201F3D4 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r6, [r5, #0x1c] + add r4, r1, #0x0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0201F5B8 + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0201F3FE + add r0, r5, #0x0 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r0, #0x88 + add r1, #0x8c + add r2, #0x90 + bl sub_0201F524 +_0201F3FE: + add r0, r5, #0x0 + ldr r1, [r4, #0x1c] + add r0, #0x88 + str r1, [r0, #0x0] + add r0, r5, #0x0 + ldr r1, [r4, #0x20] + add r0, #0x8c + str r1, [r0, #0x0] + add r0, r5, #0x0 + ldr r1, [r4, #0x24] + add r0, #0x90 + str r1, [r0, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201F69C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201F6C8 + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0201F43A + add r6, #0xc + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0201FB58 +_0201F43A: + add r0, r5, #0x0 + mov r1, #0x3 + add r0, #0xa8 + strb r1, [r0, #0x0] + ldr r0, [r4, #0x8] + mov r1, #0x0 + str r0, [r5, #0x20] + add r0, r5, #0x0 + add r0, #0xaa + strh r1, [r0, #0x0] + add r5, #0xac + str r1, [r5, #0x0] + pop {r4-r6, pc} + + thumb_func_start sub_0201F454 +sub_0201F454: ; 0x0201F454 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + blx sub_020B7E1C + str r0, [sp, #0x8] + add r0, r5, #0x0 + blx sub_020B7E10 + str r0, [sp, #0x4] + add r0, r5, #0x0 + blx sub_020B7CE4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _0201F492 + ldr r3, _0201F4E4 ; =0x021064B8 + mov r1, #0x0 + ldr r3, [r3, #0x0] + add r2, r1, #0x0 + blx r3 + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _0201F496 + bl sub_02020C2C + b _0201F496 +_0201F492: + mov r0, #0x0 + str r0, [r4, #0x0] +_0201F496: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _0201F4B2 + ldr r3, _0201F4E4 ; =0x021064B8 + mov r1, #0x1 + ldr r3, [r3, #0x0] + mov r2, #0x0 + blx r3 + str r0, [r6, #0x0] + cmp r0, #0x0 + bne _0201F4B6 + bl sub_02020C2C + b _0201F4B6 +_0201F4B2: + mov r0, #0x0 + str r0, [r6, #0x0] +_0201F4B6: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _0201F4DA + ldr r3, _0201F4E8 ; =0x021064C0 + mov r1, #0x2 + ldrh r2, [r5, #0x20] + lsl r1, r1, #0xe + ldr r3, [r3, #0x0] + and r1, r2 + mov r2, #0x0 + blx r3 + str r0, [r7, #0x0] + cmp r0, #0x0 + bne _0201F4DE + bl sub_02020C2C + add sp, #0xc + pop {r4-r7, pc} +_0201F4DA: + mov r0, #0x0 + str r0, [r7, #0x0] +_0201F4DE: + add sp, #0xc + pop {r4-r7, pc} + nop +_0201F4E4: .word 0x021064B8 +_0201F4E8: .word 0x021064C0 + + thumb_func_start sub_0201F4EC +sub_0201F4EC: ; 0x0201F4EC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r3, #0x0 + blx sub_020B7CF0 + add r0, r5, #0x0 + blx sub_020B7C58 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0201F500 +sub_0201F500: ; 0x0201F500 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, [r2, #0x0] + ldr r2, [r3, #0x0] + add r5, r0, #0x0 + blx sub_020B7DFC + ldr r1, [sp, #0x10] + add r0, r5, #0x0 + ldr r1, [r1, #0x0] + blx sub_020B7CDC + add r0, r4, #0x0 + add r1, r5, #0x0 + blx sub_020B7790 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201F524 +sub_0201F524: ; 0x0201F524 + push {r3-r5, lr} + ldr r0, [r0, #0x0] + add r5, r1, #0x0 + add r4, r2, #0x0 + cmp r0, #0x0 + beq _0201F536 + ldr r1, _0201F550 ; =0x021064BC + ldr r1, [r1, #0x0] + blx r1 +_0201F536: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _0201F542 + ldr r1, _0201F550 ; =0x021064BC + ldr r1, [r1, #0x0] + blx r1 +_0201F542: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0201F54E + ldr r1, _0201F554 ; =0x021064C4 + ldr r1, [r1, #0x0] + blx r1 +_0201F54E: + pop {r3-r5, pc} + .balign 4 +_0201F550: .word 0x021064BC +_0201F554: .word 0x021064C4 + + thumb_func_start sub_0201F558 +sub_0201F558: ; 0x0201F558 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x0 + beq _0201F568 + cmp r5, #0x0 + bne _0201F56E +_0201F568: + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0201F56E: + blx sub_020B7E1C + str r0, [sp, #0x0] + add r0, r4, #0x0 + blx sub_020B7E10 + str r0, [sp, #0x4] + add r0, r4, #0x0 + blx sub_020B7CE4 + add r4, r0, #0x0 + add r0, r5, #0x0 + blx sub_020B7E1C + add r6, r0, #0x0 + add r0, r5, #0x0 + blx sub_020B7E10 + add r7, r0, #0x0 + add r0, r5, #0x0 + blx sub_020B7CE4 + ldr r1, [sp, #0x0] + cmp r1, r6 + bne _0201F5AA + ldr r1, [sp, #0x4] + cmp r1, r7 + bne _0201F5AA + cmp r4, r0 + beq _0201F5B0 +_0201F5AA: + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0201F5B0: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201F5B8 +sub_0201F5B8: ; 0x0201F5B8 + push {r4, lr} + add r4, r1, #0x0 + add r0, r4, #0x0 + add r0, #0xa4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201F5D0 + bl sub_0201C40C + mov r0, #0x0 + add r4, #0xa4 + str r0, [r4, #0x0] +_0201F5D0: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201F5D4 +sub_0201F5D4: ; 0x0201F5D4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + add r0, r1, #0x0 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r1, #0x7c + add r2, #0x80 + bl sub_0201FB9C + str r0, [r5, #0x78] + add r0, r5, #0x0 + ldr r1, [r5, #0x7c] + add r0, #0x24 + blx sub_020B80B4 + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + beq _0201F60E + add r1, r5, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + bl sub_0201F558 + b _0201F610 +_0201F60E: + mov r0, #0x0 +_0201F610: + cmp r0, #0x0 + bne _0201F644 + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0201F62E + add r0, r5, #0x0 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r0, #0x88 + add r1, #0x8c + add r2, #0x90 + bl sub_0201F524 +_0201F62E: + add r0, r5, #0x0 + add r0, #0x80 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r5, #0x90 + ldr r0, [r0, #0x0] + add r1, #0x88 + add r2, #0x8c + add r3, r5, #0x0 + bl sub_0201F454 +_0201F644: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201F648 +sub_0201F648: ; 0x0201F648 + push {r4-r6, lr} + sub sp, #0x8 + add r4, r2, #0x0 + add r6, r0, #0x0 + add r5, r1, #0x0 + add r0, r4, #0x0 + bl sub_0201FBCC + add r1, r5, #0x0 + add r1, #0x84 + add r3, r5, #0x0 + add r3, #0x94 + str r0, [r1, #0x0] + add r4, #0xc + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r5, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + add r1, r2, #0x0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r0, #0xac + ldr r0, [r0, #0x0] + add r2, r5, #0x0 + add r3, r5, #0x0 + str r0, [sp, #0x4] + add r6, #0xd0 + add r2, #0x84 + add r3, #0x88 + ldr r0, [r6, #0x0] + ldr r2, [r2, #0x0] + ldr r3, [r3, #0x0] + bl sub_0201C3B4 + add r5, #0xa4 + str r0, [r5, #0x0] + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_0201F69C +sub_0201F69C: ; 0x0201F69C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r0, r4, #0x0 + add r1, #0x7c + add r2, #0x80 + bl sub_0201FB9C + str r0, [r5, #0x78] + add r0, r5, #0x0 + ldr r1, [r5, #0x7c] + add r0, #0x24 + blx sub_020B80B4 + add r0, r4, #0x0 + bl sub_0201FBCC + add r5, #0x84 + str r0, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0201F6C8 +sub_0201F6C8: ; 0x0201F6C8 + push {r3-r4} + add r4, r0, #0x0 + add r2, r4, #0x0 + add r3, r1, #0x0 + add r3, #0xc + add r2, #0x94 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0x0 + add r4, #0xa4 + str r0, [r4, #0x0] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_0201F6E8 +sub_0201F6E8: ; 0x0201F6E8 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r6, [r5, #0x0] + cmp r6, #0x0 + bne _0201F6F6 + mov r0, #0x0 + pop {r4-r6, pc} +_0201F6F6: + add r0, r6, #0x0 + bl sub_0201FAF4 + add r4, r0, #0x0 + bne _0201F704 + mov r0, #0x0 + pop {r4-r6, pc} +_0201F704: + add r3, r5, #0x0 + str r6, [r4, #0x1c] + add r3, #0x8 + ldmia r3!, {r0-r1} + add r2, r4, #0x0 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r3, r5, #0x0 + str r0, [r2, #0x0] + add r3, #0x14 + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0xc + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + mov r1, #0x0 + str r0, [r2, #0x0] + add r0, r4, #0x0 + add r0, #0xaa + strh r1, [r0, #0x0] + mov r1, #0x1 + add r0, r4, #0x0 + strb r1, [r4, #0x18] + add r0, #0xa8 + strb r1, [r0, #0x0] + ldr r1, [r5, #0x4] + add r0, r4, #0x0 + bl sub_0201FBD8 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0201F744 +sub_0201F744: ; 0x0201F744 + push {r3-r5, lr} + add r5, r0, #0x0 + bne _0201F74E + bl sub_02020C2C +_0201F74E: + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0201F75C + bl sub_02020C2C +_0201F75C: + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + ldr r4, [r5, #0x1c] + cmp r0, #0x0 + bne _0201F76C + mov r0, #0x0 + pop {r3-r5, pc} +_0201F76C: + add r0, r5, #0x0 + bl sub_0201FB7C + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0201F78C + add r0, r5, #0x0 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r0, #0x88 + add r1, #0x8c + add r2, #0x90 + bl sub_0201F524 +_0201F78C: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0201F5B8 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0201FB20 + mov r0, #0x1 + strb r0, [r4, #0x3] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201F7A4 +sub_0201F7A4: ; 0x0201F7A4 + push {r3-r4} + add r4, r0, #0x0 + str r1, [r4, #0x0] + str r2, [r4, #0x4] + str r3, [r4, #0x8] + ldr r3, [sp, #0x8] + add r2, r4, #0x0 + add r2, #0xc + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0x0 + str r0, [r4, #0x1c] + str r0, [r4, #0x20] + str r0, [r4, #0x24] + pop {r3-r4} + bx lr + + thumb_func_start sub_0201F7C8 +sub_0201F7C8: ; 0x0201F7C8 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x0 + bne _0201F7D6 + bl sub_02020C2C +_0201F7D6: + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r5, #0x0] + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0201F7E0 +sub_0201F7E0: ; 0x0201F7E0 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F7EA + bl sub_02020C2C +_0201F7EA: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201F7F0 +sub_0201F7F0: ; 0x0201F7F0 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x0 + bne _0201F7FE + bl sub_02020C2C +_0201F7FE: + ldmia r5!, {r0-r1} + add r4, #0xc + stmia r4!, {r0-r1} + ldr r0, [r5, #0x0] + str r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201F80C +sub_0201F80C: ; 0x0201F80C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0201F81A + bl sub_02020C2C +_0201F81A: + strb r4, [r5, #0x18] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201F820 +sub_0201F820: ; 0x0201F820 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F82A + bl sub_02020C2C +_0201F82A: + ldrb r0, [r4, #0x18] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201F830 +sub_0201F830: ; 0x0201F830 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0201F83E + bl sub_02020C2C +_0201F83E: + add r5, #0xaa + strh r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0201F844 +sub_0201F844: ; 0x0201F844 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F84E + bl sub_02020C2C +_0201F84E: + add r4, #0xaa + ldrh r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_0201F854 +sub_0201F854: ; 0x0201F854 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0201F862 + bl sub_02020C2C +_0201F862: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0201FBFC + pop {r3-r5, pc} + + thumb_func_start sub_0201F86C +sub_0201F86C: ; 0x0201F86C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0201F87A + bl sub_02020C2C +_0201F87A: + add r5, #0xac + str r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0201F880 +sub_0201F880: ; 0x0201F880 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F88A + bl sub_02020C2C +_0201F88A: + add r4, #0xac + ldr r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_0201F890 +sub_0201F890: ; 0x0201F890 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0201F89E + bl sub_02020C2C +_0201F89E: + add r1, r5, #0x0 + add r1, #0xaa + ldrh r1, [r1, #0x0] + add r0, r5, #0x0 + bl sub_0201FBEC + add r1, r5, #0x0 + add r1, #0xac + str r0, [r1, #0x0] + add r0, r5, #0x0 + add r0, #0xac + ldr r0, [r0, #0x0] + add r5, #0xac + add r0, r0, r4 + str r0, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201F8C0 +sub_0201F8C0: ; 0x0201F8C0 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F8CA + bl sub_02020C2C +_0201F8CA: + add r1, r4, #0x0 + add r1, #0xaa + ldrh r1, [r1, #0x0] + add r0, r4, #0x0 + bl sub_0201FBEC + add r4, #0xac + ldr r1, [r4, #0x0] + sub r0, r1, r0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201F8E0 +sub_0201F8E0: ; 0x0201F8E0 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F8EA + bl sub_02020C2C +_0201F8EA: + ldr r0, [r4, #0x7c] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201F8F0 +sub_0201F8F0: ; 0x0201F8F0 + push {r3, lr} + add r1, r0, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0201F90A + add r0, r1, #0x0 + add r0, #0xa4 + add r1, #0xac + ldr r0, [r0, #0x0] + ldr r1, [r1, #0x0] + bl sub_0201C438 +_0201F90A: + pop {r3, pc} + + thumb_func_start sub_0201F90C +sub_0201F90C: ; 0x0201F90C + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0xac + ldr r1, [r1, #0x0] + add r0, #0x94 + lsl r1, r1, #0x4 + lsr r1, r1, #0x10 + bl sub_02022244 + add r2, sp, #0x0 + strb r0, [r2, #0x0] + lsr r0, r0, #0x8 + strb r0, [r2, #0x1] + ldrb r0, [r2, #0x0] + add r1, r4, #0x0 + add r1, #0x84 + strb r0, [r2, #0x2] + ldrb r0, [r2, #0x1] + strb r0, [r2, #0x3] + ldrb r2, [r2, #0x2] + ldr r0, [r4, #0x7c] + ldr r1, [r1, #0x0] + bl sub_0201F954 + add r2, sp, #0x0 + ldr r0, [r4, #0x7c] + add r4, #0x84 + ldrb r2, [r2, #0x3] + ldr r1, [r4, #0x0] + bl sub_0201FA04 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0201F954 +sub_0201F954: ; 0x0201F954 + push {r3-r7, lr} + ldr r3, [r0, #0x8] + mov r5, #0x0 + add r6, r0, r3 + ldrh r0, [r0, r3] + add r3, r1, #0x0 + add r1, #0x42 + ldrh r1, [r1, #0x0] + add r3, #0x3c + add r4, r6, r0 + add r0, r3, r1 + ldrh r1, [r3, r1] + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x4] + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + ldrb r0, [r4, #0x1] + cmp r0, #0x0 + ble _0201F9A2 +_0201F97C: + ldrh r0, [r4, #0x6] + add r1, r4, r0 + ldrh r0, [r4, r0] + add r2, r1, #0x4 + add r1, r0, #0x0 + mul r1, r5 + add r1, r2, r1 + ldrb r2, [r1, #0x3] + mov r0, #0x1 + tst r0, r2 + beq _0201F99A + add r0, r6, #0x0 + add r2, r7, #0x0 + bl sub_0201F9A4 +_0201F99A: + ldrb r0, [r4, #0x1] + add r5, r5, #0x1 + cmp r5, r0 + blt _0201F97C +_0201F9A2: + pop {r3-r7, pc} + + thumb_func_start sub_0201F9A4 +sub_0201F9A4: ; 0x0201F9A4 + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + add r0, r1, #0x0 + ldrh r0, [r0, #0x0] + str r1, [sp, #0x0] + add r7, r2, #0x0 + add r0, r6, r0 + str r0, [sp, #0x4] + add r0, r1, #0x0 + ldrb r0, [r0, #0x2] + mov r4, #0x0 + cmp r0, #0x0 + ble _0201F9FC + add r0, r6, #0x4 + str r0, [sp, #0x8] +_0201F9C4: + ldrh r2, [r6, #0xa] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x8] + add r0, r0, r2 + ldrh r2, [r1, r2] + ldr r1, [sp, #0x4] + ldrb r1, [r1, r4] + mul r1, r2 + add r0, r0, r1 + ldr r0, [r0, #0x4] + add r5, r6, r0 + ldr r0, [r5, #0x14] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r0, r7 + ldr r0, _0201FA00 ; =0x0000FFFF + cmp r1, r0 + bls _0201F9EC + bl sub_02020C2C +_0201F9EC: + ldr r0, [r5, #0x14] + add r4, r4, #0x1 + add r0, r0, r7 + str r0, [r5, #0x14] + ldr r0, [sp, #0x0] + ldrb r0, [r0, #0x2] + cmp r4, r0 + blt _0201F9C4 +_0201F9FC: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0201FA00: .word 0x0000FFFF + + thumb_func_start sub_0201FA04 +sub_0201FA04: ; 0x0201FA04 + push {r3-r7, lr} + ldr r3, [r0, #0x8] + add r7, r0, r3 + ldrh r0, [r7, #0x2] + add r4, r7, r0 + ldrh r0, [r1, #0x34] + add r5, r1, r0 + ldrh r0, [r5, #0x6] + add r1, r5, r0 + ldrh r0, [r5, r0] + add r3, r1, #0x4 + add r1, r0, #0x0 + mul r1, r2 + add r0, r3, r1 + ldrh r6, [r3, r1] + ldrh r1, [r0, #0x2] + mov r0, #0x1 + tst r0, r1 + bne _0201FA2C + lsr r6, r6, #0x1 +_0201FA2C: + ldrb r0, [r4, #0x1] + mov r5, #0x0 + cmp r0, #0x0 + bls _0201FA5A +_0201FA34: + ldrh r0, [r4, #0x6] + add r1, r4, r0 + ldrh r0, [r4, r0] + add r2, r1, #0x4 + add r1, r0, #0x0 + mul r1, r5 + add r1, r2, r1 + ldrb r2, [r1, #0x3] + mov r0, #0x1 + tst r0, r2 + beq _0201FA52 + add r0, r7, #0x0 + add r2, r6, #0x0 + bl sub_0201FA5C +_0201FA52: + ldrb r0, [r4, #0x1] + add r5, r5, #0x1 + cmp r5, r0 + blo _0201FA34 +_0201FA5A: + pop {r3-r7, pc} + + thumb_func_start sub_0201FA5C +sub_0201FA5C: ; 0x0201FA5C + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + add r0, r1, #0x0 + ldrh r0, [r0, #0x0] + str r1, [sp, #0x0] + add r7, r2, #0x0 + add r0, r6, r0 + str r0, [sp, #0x4] + add r0, r1, #0x0 + ldrb r0, [r0, #0x2] + mov r4, #0x0 + cmp r0, #0x0 + bls _0201FAB4 + add r0, r6, #0x4 + str r0, [sp, #0x8] +_0201FA7C: + ldrh r2, [r6, #0xa] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x8] + add r0, r0, r2 + ldrh r2, [r1, r2] + ldr r1, [sp, #0x4] + ldrb r1, [r1, r4] + mul r1, r2 + add r0, r0, r1 + ldr r0, [r0, #0x4] + add r5, r6, r0 + ldrh r1, [r5, #0x1c] + ldr r0, _0201FAB8 ; =0x00001FFF + and r0, r1 + add r1, r0, r7 + ldr r0, _0201FAB8 ; =0x00001FFF + cmp r1, r0 + bls _0201FAA4 + bl sub_02020C2C +_0201FAA4: + ldrh r0, [r5, #0x1c] + add r4, r4, #0x1 + add r0, r0, r7 + strh r0, [r5, #0x1c] + ldr r0, [sp, #0x0] + ldrb r0, [r0, #0x2] + cmp r4, r0 + blo _0201FA7C +_0201FAB4: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0201FAB8: .word 0x00001FFF + + thumb_func_start sub_0201FABC +sub_0201FABC: ; 0x0201FABC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x8] + mov r7, #0x0 + cmp r0, #0x0 + ble _0201FAEC + add r4, r7, #0x0 + add r6, r7, #0x0 +_0201FACC: + ldr r0, [r5, #0x4] + add r0, r0, r4 + bl sub_0201F094 + ldr r0, [r5, #0x4] + add r7, r7, #0x1 + add r1, r0, r4 + add r0, r5, #0x0 + add r0, #0xc4 + ldr r0, [r0, #0x0] + add r4, #0xb8 + str r1, [r0, r6] + ldr r0, [r5, #0x8] + add r6, r6, #0x4 + cmp r7, r0 + blt _0201FACC +_0201FAEC: + mov r0, #0x0 + add r5, #0xc8 + str r0, [r5, #0x0] + pop {r3-r7, pc} + + thumb_func_start sub_0201FAF4 +sub_0201FAF4: ; 0x0201FAF4 + add r1, r0, #0x0 + add r1, #0xc8 + ldr r3, [r1, #0x0] + ldr r1, [r0, #0x8] + cmp r3, r1 + blt _0201FB04 + mov r0, #0x0 + bx lr +_0201FB04: + add r1, r0, #0x0 + add r1, #0xc4 + ldr r2, [r1, #0x0] + lsl r1, r3, #0x2 + ldr r2, [r2, r1] + add r1, r0, #0x0 + add r1, #0xc8 + ldr r1, [r1, #0x0] + add r0, #0xc8 + add r1, r1, #0x1 + str r1, [r0, #0x0] + add r0, r2, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0201FB20 +sub_0201FB20: ; 0x0201FB20 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0xc8 + ldr r0, [r0, #0x0] + add r4, r1, #0x0 + cmp r0, #0x0 + bgt _0201FB32 + mov r0, #0x0 + pop {r3-r5, pc} +_0201FB32: + add r0, r4, #0x0 + bl sub_0201F094 + add r0, r5, #0x0 + add r0, #0xc8 + ldr r0, [r0, #0x0] + sub r1, r0, #0x1 + add r0, r5, #0x0 + add r0, #0xc8 + str r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0xc4 + add r5, #0xc8 + ldr r1, [r0, #0x0] + ldr r0, [r5, #0x0] + lsl r0, r0, #0x2 + str r4, [r1, r0] + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0201FB58 +sub_0201FB58: ; 0x0201FB58 + add r2, r0, #0x0 + add r2, #0xb4 + ldr r3, [r2, #0x0] + add r2, r1, #0x0 + add r2, #0xb4 + str r3, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xb4 + ldr r2, [r2, #0x0] + add r2, #0xb0 + str r1, [r2, #0x0] + add r2, r1, #0x0 + add r2, #0xb0 + str r0, [r2, #0x0] + add r0, #0xb4 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0201FB7C +sub_0201FB7C: ; 0x0201FB7C + add r1, r0, #0x0 + add r1, #0xb0 + ldr r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0xb4 + ldr r1, [r1, #0x0] + add r1, #0xb0 + str r2, [r1, #0x0] + add r1, r0, #0x0 + add r0, #0xb0 + add r1, #0xb4 + ldr r0, [r0, #0x0] + ldr r1, [r1, #0x0] + add r0, #0xb4 + str r1, [r0, #0x0] + bx lr + + thumb_func_start sub_0201FB9C +sub_0201FB9C: ; 0x0201FB9C + push {r3-r7, lr} + add r6, r1, #0x0 + mov r1, #0x0 + add r5, r2, #0x0 + bl sub_0201FC90 + add r7, r0, #0x0 + blx sub_020BC13C + add r4, r0, #0x0 + ldrh r0, [r4, #0xe] + add r0, r4, r0 + ldr r0, [r0, #0xc] + add r0, r4, r0 + str r0, [r6, #0x0] + cmp r5, #0x0 + beq _0201FBC6 + add r0, r7, #0x0 + blx sub_020BC0FC + str r0, [r5, #0x0] +_0201FBC6: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0201FBCC +sub_0201FBCC: ; 0x0201FBCC + ldr r3, _0201FBD4 ; =sub_0201FC90 + mov r1, #0x1 + bx r3 + nop +_0201FBD4: .word sub_0201FC90 + 1 + + thumb_func_start sub_0201FBD8 +sub_0201FBD8: ; 0x0201FBD8 + push {r3, lr} + ldr r2, [r1, #0x1c] + cmp r2, #0x0 + bne _0201FBE6 + bl sub_0201F384 + pop {r3, pc} +_0201FBE6: + bl sub_0201F3D4 + pop {r3, pc} + + thumb_func_start sub_0201FBEC +sub_0201FBEC: ; 0x0201FBEC + push {r3, lr} + ldr r0, [r0, #0x20] + bl sub_0201FCA8 + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0201FBFC +sub_0201FBFC: ; 0x0201FBFC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + add r1, #0xaa + ldrh r1, [r1, #0x0] + ldr r0, [r5, #0x20] + bl sub_0201FCA8 + add r5, #0xac + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0201FC1C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0201FC1C +sub_0201FC1C: ; 0x0201FC1C + push {r3-r6} + ldr r4, [r0, #0x0] + ldr r6, [r1, #0x0] + lsl r4, r4, #0xc + mov r3, #0x0 + cmp r4, r6 + bgt _0201FC32 + ldr r5, [r0, #0x4] + lsl r5, r5, #0xc + cmp r5, r6 + bge _0201FC36 +_0201FC32: + str r4, [r1, #0x0] + b _0201FC4E +_0201FC36: + add r2, r6, r2 + cmp r5, r2 + bge _0201FC4C + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _0201FC46 + str r4, [r1, #0x0] + b _0201FC4E +_0201FC46: + mov r3, #0x1 + str r5, [r1, #0x0] + b _0201FC4E +_0201FC4C: + str r2, [r1, #0x0] +_0201FC4E: + add r0, r3, #0x0 + pop {r3-r6} + bx lr + + thumb_func_start sub_0201FC54 +sub_0201FC54: ; 0x0201FC54 + push {r3, lr} + add r3, r0, #0x0 + add r0, #0x90 + str r0, [sp, #0x0] + add r0, r3, #0x0 + add r0, #0x80 + add r2, r3, #0x0 + ldr r1, [r3, #0x78] + ldr r0, [r0, #0x0] + add r2, #0x88 + add r3, #0x8c + bl sub_0201F500 + pop {r3, pc} + + thumb_func_start sub_0201FC70 +sub_0201FC70: ; 0x0201FC70 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r0, [r4, #0x78] + blx sub_020B772C + add r4, #0x80 + ldr r0, [r4, #0x0] + add r1, sp, #0x4 + add r2, sp, #0x8 + add r3, sp, #0x0 + bl sub_0201F4EC + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0201FC90 +sub_0201FC90: ; 0x0201FC90 + cmp r1, #0x0 + beq _0201FC9A + cmp r1, #0x1 + beq _0201FC9E + b _0201FCA2 +_0201FC9A: + ldr r0, [r0, #0x0] + bx lr +_0201FC9E: + ldr r0, [r0, #0x4] + bx lr +_0201FCA2: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0201FCA8 +sub_0201FCA8: ; 0x0201FCA8 + mov r2, #0xc + mul r2, r1 + add r0, r0, r2 + bx lr + + thumb_func_start sub_0201FCB0 +sub_0201FCB0: ; 0x0201FCB0 + push {r3-r5, lr} + add r5, r0, #0x0 + bne _0201FCBA + bl sub_02020C2C +_0201FCBA: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _0201FCC4 + bl sub_02020C2C +_0201FCC4: + mov r1, #0x49 + ldr r0, [r5, #0x8] + lsl r1, r1, #0x2 + bl sub_02016998 + add r4, r0, #0x0 + bne _0201FCD6 + bl sub_02020C2C +_0201FCD6: + add r0, r4, #0x0 + bl sub_0201FE44 + ldr r2, [r5, #0x0] + ldr r0, [r5, #0x8] + lsl r1, r2, #0x6 + add r1, r2, r1 + lsl r1, r1, #0x2 + bl sub_02016998 + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _0201FCF4 + bl sub_02020C2C +_0201FCF4: + ldr r0, [r5, #0x0] + str r0, [r4, #0x4] + ldr r1, [r5, #0x0] + ldr r0, [r5, #0x8] + lsl r1, r1, #0x2 + bl sub_02016998 + str r0, [r4, #0x8] + cmp r0, #0x0 + bne _0201FD0C + bl sub_02020C2C +_0201FD0C: + add r0, r4, #0x0 + bl sub_0202083C + add r0, r4, #0x0 + add r0, #0x10 + bl sub_0201FE6C + add r2, r4, #0x0 + mov r1, #0x43 + lsl r1, r1, #0x2 + add r2, #0x10 + str r2, [r4, r1] + add r0, r1, #0x4 + str r2, [r4, r0] + ldr r0, [r5, #0x4] + add r1, #0x8 + str r0, [r4, r1] + ldr r0, [r5, #0x8] + ldr r1, _0201FD54 ; =0x02105BBC + bl sub_020161A4 + mov r1, #0x46 + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, r1] + add r1, r1, #0x4 + add r1, r4, r1 + blx sub_020AFD94 + mov r0, #0x12 + mov r1, #0x1 + lsl r0, r0, #0x4 + str r1, [r4, r0] + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_0201FD54: .word 0x02105BBC + + thumb_func_start sub_0201FD58 +sub_0201FD58: ; 0x0201FD58 + push {r4, lr} + add r4, r0, #0x0 + bne _0201FD62 + mov r0, #0x0 + pop {r4, pc} +_0201FD62: + ldr r1, [r4, #0x0] + cmp r1, #0x0 + bne _0201FD6C + mov r0, #0x1 + pop {r4, pc} +_0201FD6C: + bl sub_0201FDB4 + mov r0, #0x46 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + ldr r0, [r4, #0x8] + bl sub_02016A18 + ldr r0, [r4, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_0201FE44 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201FD98 +sub_0201FD98: ; 0x0201FD98 + cmp r0, #0x0 + bne _0201FDA0 + mov r0, #0x0 + bx lr +_0201FDA0: + ldr r2, [r0, #0x0] + cmp r2, #0x0 + bne _0201FDAA + mov r0, #0x0 + bx lr +_0201FDAA: + mov r2, #0x12 + lsl r2, r2, #0x4 + str r1, [r0, r2] + mov r0, #0x1 + bx lr + + thumb_func_start sub_0201FDB4 +sub_0201FDB4: ; 0x0201FDB4 + push {r4-r6, lr} + cmp r0, #0x0 + bne _0201FDBE + mov r0, #0x0 + pop {r4-r6, pc} +_0201FDBE: + ldr r1, [r0, #0x0] + cmp r1, #0x0 + bne _0201FDC8 + mov r0, #0x1 + pop {r4-r6, pc} +_0201FDC8: + mov r1, #0x11 + lsl r1, r1, #0x4 + add r4, r0, #0x0 + ldr r1, [r0, r1] + add r4, #0x10 + cmp r1, r4 + beq _0201FDE8 + mov r6, #0x1 + lsl r6, r6, #0x8 +_0201FDDA: + ldr r5, [r1, r6] + add r0, r1, #0x0 + bl sub_0201FFC8 + add r1, r5, #0x0 + cmp r5, r4 + bne _0201FDDA +_0201FDE8: + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_0201FDEC +sub_0201FDEC: ; 0x0201FDEC + push {r3-r7, lr} + add r5, r0, #0x0 + bne _0201FDF6 + bl sub_02020C2C +_0201FDF6: + mov r0, #0x12 + lsl r0, r0, #0x4 + ldr r1, [r5, r0] + cmp r1, #0x0 + beq _0201FE38 + sub r0, #0x10 + add r6, r5, #0x0 + ldr r4, [r5, r0] + add r6, #0x10 + cmp r4, r6 + beq _0201FE38 + ldr r7, _0201FE3C ; =0x020EE658 +_0201FE0E: + add r2, r4, #0x0 + add r2, #0x34 + ldrb r2, [r2, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + ldr r2, [r7, r2] + blx r2 + add r1, r4, #0x0 + add r1, #0x35 + ldrb r1, [r1, #0x0] + add r0, r4, #0x0 + lsl r2, r1, #0x2 + ldr r1, _0201FE40 ; =0x020EE660 + ldr r1, [r1, r2] + blx r1 + mov r0, #0x1 + lsl r0, r0, #0x8 + ldr r4, [r4, r0] + cmp r4, r6 + bne _0201FE0E +_0201FE38: + pop {r3-r7, pc} + nop +_0201FE3C: .word 0x020EE658 +_0201FE40: .word 0x020EE660 + + thumb_func_start sub_0201FE44 +sub_0201FE44: ; 0x0201FE44 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + str r1, [r4, #0x0] + str r1, [r4, #0x4] + str r1, [r4, #0x8] + mov r0, #0x45 + str r1, [r4, #0xc] + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, r4, #0x0 + add r0, #0x10 + bl sub_0201FE6C + mov r0, #0x12 + mov r1, #0x0 + lsl r0, r0, #0x4 + str r1, [r4, r0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201FE6C +sub_0201FE6C: ; 0x0201FE6C + push {r4, lr} + mov r2, #0x41 + add r4, r0, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x2 + str r1, [r4, #0x3c] + blx sub_020DF4A4 + add r0, r4, #0x0 + add r0, #0xb4 + blx sub_020B1A24 + add r0, r4, #0x0 + add r0, #0xd8 + blx sub_020B19DC + mov r0, #0x0 + str r0, [r4, #0x30] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201FE94 +sub_0201FE94: ; 0x0201FE94 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02020874 + add r4, r0, #0x0 + bne _0201FEA6 + mov r0, #0x0 + pop {r4-r6, pc} +_0201FEA6: + ldr r0, [r5, #0x0] + add r6, r5, #0x0 + str r0, [r4, #0x3c] + add r0, r4, #0x0 + mov r2, #0x0 + add r0, #0xf0 + add r6, #0x8 + strh r2, [r0, #0x0] + ldmia r6!, {r0-r1} + add r3, r4, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r6, #0x0] + add r6, r5, #0x0 + str r0, [r3, #0x0] + add r6, #0x14 + add r3, r4, #0x0 + ldmia r6!, {r0-r1} + add r3, #0x18 + stmia r3!, {r0-r1} + ldr r0, [r6, #0x0] + str r0, [r3, #0x0] + ldrh r0, [r5, #0x20] + strh r0, [r4, #0x24] + add r0, r4, #0x0 + ldr r1, [r5, #0x28] + add r0, #0xf8 + str r1, [r0, #0x0] + add r0, r4, #0x0 + ldr r1, [r5, #0x24] + add r0, #0xf4 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x26 + strb r2, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x27 + strb r2, [r0, #0x0] + str r2, [r4, #0x2c] + add r0, r4, #0x0 + str r2, [r4, #0x30] + mov r1, #0x11 + add r0, #0x28 + strb r1, [r0, #0x0] + mov r0, #0x45 + ldr r1, [r5, #0x0] + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + add r1, r4, #0x0 + add r1, #0x26 + ldrb r1, [r1, #0x0] + blx sub_020B502C + add r0, r4, #0x0 + add r0, #0x27 + ldrb r2, [r0, #0x0] + mov r0, #0x45 + ldr r1, [r5, #0x0] + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + mov r1, #0x1 + mov r3, #0x2 + and r1, r2 + and r2, r3 + blx sub_020B4F38 + add r0, r4, #0x0 + mov r2, #0x1 + add r0, #0x34 + strb r2, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x35 + strb r1, [r0, #0x0] + lsl r0, r2, #0xd + str r0, [r4, #0x38] + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + ldr r3, [r5, #0x2c] + add r2, r4, #0x0 + bl sub_02020434 + cmp r0, #0x0 + bne _0201FF56 + add r0, r4, #0x0 + bl sub_0201FFC8 + mov r0, #0x0 + pop {r4-r6, pc} +_0201FF56: + add r1, r4, #0x0 + add r1, #0xf8 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + add r0, #0xd8 + bl sub_020205E8 + add r1, r4, #0x0 + add r1, #0x2a + strb r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x2a + ldrb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x29 + strb r1, [r0, #0x0] + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + bl sub_02020788 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0201FF84 +sub_0201FF84: ; 0x0201FF84 + push {r4, lr} + sub sp, #0x30 + add r2, r0, #0x0 + ldr r0, [r2, #0x0] + add r4, r2, #0x0 + str r0, [sp, #0x0] + ldr r0, [r2, #0x4] + add r4, #0x8 + str r0, [sp, #0x4] + ldmia r4!, {r0-r1} + add r3, sp, #0x8 + stmia r3!, {r0-r1} + ldr r0, [r4, #0x0] + mov r1, #0x0 + str r0, [r3, #0x0] + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [sp, #0x14] + str r0, [sp, #0x18] + str r0, [sp, #0x1c] + add r0, sp, #0x0 + strh r1, [r0, #0x20] + ldr r0, [r2, #0x14] + str r0, [sp, #0x24] + ldr r0, [r2, #0x18] + str r0, [sp, #0x28] + ldr r0, [r2, #0x1c] + str r0, [sp, #0x2c] + add r0, sp, #0x0 + bl sub_0201FE94 + add sp, #0x30 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0201FFC8 +sub_0201FFC8: ; 0x0201FFC8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0xec + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _02020040 + add r1, r5, #0x0 + add r1, #0xfc + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _0201FFE4 + bl sub_02020820 +_0201FFE4: + add r0, r5, #0x0 + add r0, #0xec + ldr r0, [r0, #0x0] + cmp r0, #0x3 + bne _0202000E + add r1, r5, #0x0 + add r1, #0xf8 + add r0, r5, #0x0 + add r4, r5, #0x0 + ldr r1, [r1, #0x0] + add r0, #0xb4 + add r4, #0x40 + blx sub_020B1A14 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _0202000E + ldr r0, [r4, #0x5c] + blx sub_020B4358 +_0202000E: + add r0, r5, #0x0 + add r0, #0xec + ldr r0, [r0, #0x0] + cmp r0, #0x2 + bne _02020030 + add r4, r5, #0x0 + add r4, #0x40 + ldr r0, [r4, #0x70] + cmp r0, #0x0 + beq _02020026 + bl sub_02016A18 +_02020026: + ldr r0, [r4, #0x74] + cmp r0, #0x0 + beq _02020030 + bl sub_02016A18 +_02020030: + add r0, r5, #0x0 + mov r1, #0x0 + add r0, #0xec + str r1, [r0, #0x0] + ldr r0, [r5, #0x3c] + add r1, r5, #0x0 + bl sub_02020890 +_02020040: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02020044 +sub_02020044: ; 0x02020044 + add r2, r1, #0x0 + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02020054 +sub_02020054: ; 0x02020054 + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0xc + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_02020064 +sub_02020064: ; 0x02020064 + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x18 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_02020074 +sub_02020074: ; 0x02020074 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl sub_02020064 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020200EC + pop {r3-r5, pc} + + thumb_func_start sub_02020088 +sub_02020088: ; 0x02020088 + strh r1, [r0, #0x24] + bx lr + + thumb_func_start sub_0202008C +sub_0202008C: ; 0x0202008C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl sub_02020088 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020200EC + pop {r3-r5, pc} + + thumb_func_start sub_020200A0 +sub_020200A0: ; 0x020200A0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020200AE + bl sub_02020C2C +_020200AE: + cmp r4, #0x2 + blt _020200B6 + bl sub_02020C2C +_020200B6: + add r5, #0x34 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_020200BC +sub_020200BC: ; 0x020200BC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020200CA + bl sub_02020C2C +_020200CA: + cmp r4, #0x2 + blt _020200D2 + bl sub_02020C2C +_020200D2: + add r5, #0x35 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_020200D8 +sub_020200D8: ; 0x020200D8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020200E6 + bl sub_02020C2C +_020200E6: + str r4, [r5, #0x38] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020200EC +sub_020200EC: ; 0x020200EC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020200FA + bl sub_02020C2C +_020200FA: + add r5, #0x26 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_02020100 +sub_02020100: ; 0x02020100 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0202010E + bl sub_02020C2C +_0202010E: + add r0, r5, #0x0 + add r0, #0x27 + strb r4, [r0, #0x0] + mov r0, #0x0 + add r5, #0x26 + strb r0, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0202011C +sub_0202011C: ; 0x0202011C + bx lr + .balign 4 + + thumb_func_start sub_02020120 +sub_02020120: ; 0x02020120 + add r0, #0x18 + bx lr + + thumb_func_start sub_02020124 +sub_02020124: ; 0x02020124 + ldrh r0, [r0, #0x24] + bx lr + + thumb_func_start sub_02020128 +sub_02020128: ; 0x02020128 + add r0, #0x34 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02020130 +sub_02020130: ; 0x02020130 + push {r4, lr} + lsl r2, r1, #0x10 + lsr r3, r2, #0x10 + add r2, r0, #0x0 + add r2, #0xf0 + strh r3, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xec + ldr r2, [r2, #0x0] + cmp r2, #0x1 + beq _0202014A + cmp r2, #0x3 + bne _02020168 +_0202014A: + add r4, r0, #0x0 + add r4, #0x40 + lsl r1, r1, #0x10 + ldr r0, [r4, #0x4] + lsr r1, r1, #0x10 + blx sub_020AFC04 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x8 + blx sub_020B1EE4 + mov r0, #0x1 + str r0, [r4, #0x10] + pop {r4, pc} +_02020168: + add r4, r0, #0x0 + add r4, #0x40 + ldr r0, [r4, #0x6c] + add r1, r3, #0x0 + blx sub_020AFC04 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x8 + blx sub_020B242C + mov r0, #0x1 + str r0, [r4, #0x10] + pop {r4, pc} + + thumb_func_start sub_02020184 +sub_02020184: ; 0x02020184 + push {r3, lr} + add r2, r0, #0x0 + add r2, #0xf0 + ldrh r2, [r2, #0x0] + cmp r2, r1 + beq _02020194 + bl sub_02020130 +_02020194: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02020198 +sub_02020198: ; 0x02020198 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0xec + ldr r0, [r0, #0x0] + cmp r0, #0x1 + beq _020201A8 + cmp r0, #0x3 + bne _020201C2 +_020201A8: + add r5, r4, #0x0 + add r5, #0x40 + add r0, r5, #0x0 + add r0, #0x8 + blx sub_020B0448 + mov r0, #0x1 + str r0, [r5, #0x10] + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02020208 + pop {r3-r5, pc} +_020201C2: + add r5, r4, #0x0 + add r5, #0x40 + add r0, r5, #0x0 + add r0, #0x8 + blx sub_020B0448 + mov r0, #0x1 + str r0, [r5, #0x10] + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02020208 + pop {r3-r5, pc} + + thumb_func_start sub_020201DC +sub_020201DC: ; 0x020201DC + add r0, #0xf0 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020201E4 +sub_020201E4: ; 0x020201E4 + push {r3, lr} + add r2, r0, #0x0 + add r2, #0xec + ldr r2, [r2, #0x0] + cmp r2, #0x1 + beq _020201F4 + cmp r2, #0x3 + bne _020201FE +_020201F4: + add r0, #0x40 + add r0, #0x8 + blx sub_020B1EC4 + pop {r3, pc} +_020201FE: + add r0, #0x40 + add r0, #0x8 + blx sub_020B224C + pop {r3, pc} + + thumb_func_start sub_02020208 +sub_02020208: ; 0x02020208 + push {r3, lr} + add r2, r0, #0x0 + add r2, #0xec + ldr r2, [r2, #0x0] + cmp r2, #0x1 + beq _02020218 + cmp r2, #0x3 + bne _02020222 +_02020218: + add r0, #0x40 + add r0, #0x8 + blx sub_020B1EA4 + pop {r3, pc} +_02020222: + add r0, #0x40 + add r0, #0x8 + blx sub_020B2194 + pop {r3, pc} + + thumb_func_start sub_0202022C +sub_0202022C: ; 0x0202022C + ldr r3, _02020234 ; =0x020B04FC + add r0, #0x40 + add r0, #0x8 + bx r3 + .balign 4 +_02020234: .word 0x020B04FC + + thumb_func_start sub_02020238 +sub_02020238: ; 0x02020238 + add r0, #0xf2 + strb r1, [r0, #0x0] + bx lr + .balign 4 +_02020240: + .byte 0xF2, 0x30, 0x00, 0x78, 0x70, 0x47, 0x00, 0x00 + + thumb_func_start sub_02020248 +sub_02020248: ; 0x02020248 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020256 + bl sub_02020C2C +_02020256: + add r0, r5, #0x0 + add r0, #0x29 + strb r4, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x2 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x28 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x10 + add r5, #0x28 + bic r1, r0 + strb r1, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0202027C +sub_0202027C: ; 0x0202027C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02020248 + add r1, r4, #0x0 + add r1, #0xf8 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + add r0, #0xd8 + bl sub_020205E8 + add r1, r4, #0x0 + add r1, #0x29 + ldrb r1, [r1, #0x0] + add r4, #0x29 + add r0, r1, r0 + strb r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_020202A0 +sub_020202A0: ; 0x020202A0 + add r0, #0x29 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020202A8 +sub_020202A8: ; 0x020202A8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020202B6 + bl sub_02020C2C +_020202B6: + add r0, r5, #0x0 + add r0, #0x2a + strb r4, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x10 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x28 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x2 + add r5, #0x28 + bic r1, r0 + strb r1, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_020202DC +sub_020202DC: ; 0x020202DC + push {r4, lr} + add r4, r0, #0x0 + bl sub_020202A8 + add r1, r4, #0x0 + add r1, #0xf8 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + add r0, #0xd8 + bl sub_020205E8 + add r1, r4, #0x0 + add r1, #0x2a + ldrb r1, [r1, #0x0] + add r4, #0x2a + add r0, r1, r0 + strb r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_02020300 +sub_02020300: ; 0x02020300 + push {r4, lr} + add r4, r0, #0x0 + bne _0202030A + bl sub_02020C2C +_0202030A: + add r4, #0x2a + ldrb r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_02020310 +sub_02020310: ; 0x02020310 + push {r3-r5, lr} + add r5, r0, #0x0 + add r2, r5, #0x0 + ldr r4, [r5, #0x3c] + add r2, #0xf4 + strh r1, [r2, #0x0] + bl sub_02020820 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02020788 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202032C +sub_0202032C: ; 0x0202032C + add r0, #0xf4 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02020334 +sub_02020334: ; 0x02020334 + push {r3-r4} + add r3, r0, #0x0 + add r4, r1, #0x0 + add r3, #0xb4 + mov r2, #0x4 +_0202033E: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0202033E + ldr r0, [r4, #0x0] + str r0, [r3, #0x0] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_02020350 +sub_02020350: ; 0x02020350 + add r0, #0xb4 + bx lr + + thumb_func_start sub_02020354 +sub_02020354: ; 0x02020354 + add r0, #0xd8 + bx lr +_02020358: + .byte 0xC1, 0x62, 0x01, 0x29, 0x07, 0xD1, 0x01, 0x1C + .byte 0x28, 0x31, 0x0A, 0x78, 0x04, 0x21, 0x28, 0x30, 0x11, 0x43, 0x01, 0x70, 0x70, 0x47, 0x01, 0x1C + .byte 0x28, 0x31, 0x0A, 0x78, 0x04, 0x21, 0x51, 0x40, 0x28, 0x30, 0x01, 0x70, 0x70, 0x47, 0x00, 0x00 + + thumb_func_start sub_02020380 +sub_02020380: ; 0x02020380 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02020388 +sub_02020388: ; 0x02020388 + push {r4, lr} + add r4, r0, #0x0 + bne _02020392 + bl sub_02020C2C +_02020392: + ldr r0, [r4, #0x50] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02020398 +sub_02020398: ; 0x02020398 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x0 + bne _020203A6 + bl sub_02020C2C +_020203A6: + str r5, [r4, #0x30] + cmp r5, #0x0 + bne _020203BC + add r0, r4, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x8 + add r4, #0x28 + eor r0, r1 + strb r0, [r4, #0x0] + pop {r3-r5, pc} +_020203BC: + add r0, r4, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x8 + orr r0, r1 + add r4, #0x28 + strb r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_020203CC +sub_020203CC: ; 0x020203CC + push {r4, lr} + mov r1, #0x1 + lsl r1, r1, #0xa + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0xb + mov r2, #0x1 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + lsl r2, r2, #0xa + blx sub_020CE1C8 + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0xa + blx sub_020CC15C + mov r2, #0x1 + add r0, r4, #0x0 + mov r1, #0x0 + lsl r2, r2, #0xa + blx sub_020C93BC + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02020404 +sub_02020404: ; 0x02020404 + push {r4, lr} + mov r1, #0x1 + lsl r1, r1, #0xa + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0xb + mov r2, #0x1 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + lsl r2, r2, #0xa + blx sub_020CE1C8 + mov r2, #0x1 + add r0, r4, #0x0 + mov r1, #0x0 + lsl r2, r2, #0xa + blx sub_020C9354 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02020434 +sub_02020434: ; 0x02020434 + push {r3-r7, lr} + add r5, r1, #0x0 + str r0, [sp, #0x0] + add r4, r2, #0x0 + add r0, r5, #0x0 + add r7, r3, #0x0 + bl sub_020204DC + add r1, r4, #0x0 + add r1, #0xec + str r0, [r1, #0x0] + add r3, r4, #0x0 + ldr r6, [r5, #0x0] + add r3, #0xb4 + mov r2, #0x4 +_02020452: + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02020452 + ldr r0, [r6, #0x0] + add r2, r4, #0x0 + str r0, [r3, #0x0] + ldr r3, [r5, #0x8] + add r2, #0xd8 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r1, r4, #0x0 + str r0, [r2, #0x0] + ldr r0, [r5, #0xc] + bl sub_020204F4 + ldr r0, [r5, #0x10] + cmp r0, #0x0 + beq _02020486 + add r1, r4, #0x0 + bl sub_020204F8 + b _02020494 +_02020486: + mov r1, #0x47 + ldr r0, [sp, #0x0] + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + add r1, r4, #0x0 + bl sub_020204F8 +_02020494: + add r0, r4, #0x0 + add r0, #0xec + ldr r0, [r0, #0x0] + cmp r0, #0x2 + bne _020204B8 + ldr r0, [r5, #0x14] + add r1, r4, #0x0 + bl sub_020204FC + ldr r0, [r5, #0x18] + add r1, r4, #0x0 + bl sub_02020504 + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_02020588 + b _020204D0 +_020204B8: + cmp r0, #0x3 + bne _020204C8 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_0202052C + b _020204D0 +_020204C8: + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_0202050C +_020204D0: + add r5, #0x20 + ldrb r0, [r5, #0x0] + add r4, #0xf2 + strb r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} + + thumb_func_start sub_020204DC +sub_020204DC: ; 0x020204DC + ldr r1, [r0, #0x14] + cmp r1, #0x0 + beq _020204E6 + mov r0, #0x2 + bx lr +_020204E6: + ldr r0, [r0, #0x1c] + cmp r0, #0x1 + bne _020204F0 + mov r0, #0x3 + bx lr +_020204F0: + mov r0, #0x1 + bx lr + + thumb_func_start sub_020204F4 +sub_020204F4: ; 0x020204F4 + str r0, [r1, #0x40] + bx lr + + thumb_func_start sub_020204F8 +sub_020204F8: ; 0x020204F8 + str r0, [r1, #0x44] + bx lr + + thumb_func_start sub_020204FC +sub_020204FC: ; 0x020204FC + add r1, #0xa8 + str r0, [r1, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02020504 +sub_02020504: ; 0x02020504 + add r1, #0xac + str r0, [r1, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0202050C +sub_0202050C: ; 0x0202050C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r5, #0x0 + add r4, #0x40 + ldr r0, [r4, #0x4] + mov r1, #0x0 + blx sub_020AFC04 + add r4, #0x8 + add r1, r0, #0x0 + ldr r2, [r5, #0x40] + add r0, r4, #0x0 + blx sub_020B1F80 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202052C +sub_0202052C: ; 0x0202052C + push {r4-r7, lr} + sub sp, #0x1c + add r6, r1, #0x0 + add r4, r6, #0x0 + add r4, #0x40 + add r5, r0, #0x0 + blx sub_020B43A4 + str r0, [r4, #0x5c] + ldr r0, [r4, #0x4] + mov r1, #0x0 + ldr r5, [r5, #0x4] + blx sub_020AFC04 + str r0, [sp, #0x18] + add r0, r6, #0x0 + add r0, #0xb4 + mov r1, #0x1 + blx sub_020B1A14 + add r7, r0, #0x0 + add r0, r6, #0x0 + add r0, #0xb4 + mov r1, #0x2 + blx sub_020B1A14 + mov r1, #0x0 + mvn r1, r1 + str r1, [sp, #0x0] + str r7, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [r5, #0x14] + ldr r1, [sp, #0x18] + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x10] + str r0, [sp, #0x14] + add r0, r4, #0x0 + ldr r2, [r6, #0x40] + ldr r3, [r4, #0x5c] + add r0, #0x8 + blx sub_020B1EFC + add sp, #0x1c + pop {r4-r7, pc} + + thumb_func_start sub_02020588 +sub_02020588: ; 0x02020588 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r5, #0x0 + add r4, #0x40 + ldr r0, [r4, #0x6c] + add r7, r1, #0x0 + mov r1, #0x0 + blx sub_020AFC04 + str r0, [sp, #0xc] + ldr r0, [r4, #0x68] + blx sub_020B23D8 + add r6, r0, #0x0 + mov r1, #0x28 + add r0, r7, #0x0 + mul r1, r6 + bl sub_02016998 + mov r1, #0x54 + str r0, [r4, #0x70] + add r0, r7, #0x0 + mul r1, r6 + bl sub_02016998 + str r0, [r4, #0x74] + ldr r0, [r4, #0x4] + add r3, r6, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x40] + str r0, [sp, #0x4] + ldr r0, [r4, #0x68] + str r0, [sp, #0x8] + add r0, r4, #0x0 + ldr r1, [r4, #0x70] + ldr r2, [r4, #0x74] + add r0, #0x8 + blx sub_020B20C8 + add r4, #0x8 + ldr r1, [sp, #0xc] + add r0, r4, #0x0 + blx sub_020B242C + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020205E8 +sub_020205E8: ; 0x020205E8 + push {r4, lr} + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _020205F6 + mov r4, #0x2 + lsl r4, r4, #0x8 + b _02020602 +_020205F6: + ldr r2, [r0, #0x0] + cmp r2, #0x4 + bne _02020600 + mov r4, #0x0 + b _02020602 +_02020600: + mov r4, #0x20 +_02020602: + cmp r4, #0x0 + beq _02020612 + blx sub_020B19C4 + add r1, r4, #0x0 + blx sub_020EBE8C + pop {r4, pc} +_02020612: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02020618 +sub_02020618: ; 0x02020618 + push {r3-r6, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r3, r4, #0x0 + add r5, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, sp, #0x0 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r1, r4, #0x0 + str r0, [r2, #0x0] + mov r0, #0x45 + lsl r0, r0, #0x2 + add r2, r4, #0x0 + ldr r0, [r5, r0] + add r1, #0xb4 + add r2, #0xd8 + blx sub_020B2780 + mov r0, #0x45 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + blx sub_020B326C + blx sub_020B2B58 + add r1, r4, #0x0 + mov r0, #0x45 + add r1, #0x26 + lsl r0, r0, #0x2 + ldrb r1, [r1, #0x0] + ldr r0, [r5, r0] + blx sub_020B502C + add r0, r4, #0x0 + add r0, #0x26 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02020680 + add r0, r4, #0x0 + add r0, #0x27 + ldrb r2, [r0, #0x0] + mov r0, #0x45 + lsl r0, r0, #0x2 + mov r1, #0x1 + ldr r0, [r5, r0] + mov r3, #0x2 + and r1, r2 + and r2, r3 + blx sub_020B4F38 + b _0202068E +_02020680: + mov r0, #0x45 + lsl r0, r0, #0x2 + mov r1, #0x0 + ldr r0, [r5, r0] + add r2, r1, #0x0 + blx sub_020B4F38 +_0202068E: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x8] + blx sub_020B2A08 + add r0, r4, #0x0 + add r0, #0x26 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _020206DC + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + ldr r2, [r4, #0x14] + blx sub_020B2A08 + ldr r0, [r4, #0x18] + ldr r1, [r4, #0x1c] + ldr r2, [r4, #0x20] + blx sub_020B28B4 + ldrh r0, [r4, #0x24] + ldr r2, _02020770 ; =0x020FFA38 + asr r0, r0, #0x4 + lsl r1, r0, #0x1 + lsl r0, r1, #0x1 + add r1, r1, #0x1 + lsl r1, r1, #0x1 + ldrsh r0, [r2, r0] + ldrsh r1, [r2, r1] + blx sub_020B2794 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + ldr r2, [r4, #0x14] + neg r0, r0 + neg r1, r1 + neg r2, r2 + blx sub_020B2A08 +_020206DC: + add r0, r4, #0x0 + add r0, #0x28 + ldrb r3, [r0, #0x0] + mov r0, #0x45 + lsl r0, r0, #0x2 + ldr r2, [r5, r0] + add r1, r2, #0x0 + add r1, #0x84 + ldr r1, [r1, #0x0] + add r2, #0x84 + orr r1, r3 + str r1, [r2, #0x0] + add r1, r4, #0x0 + add r1, #0x28 + ldrb r1, [r1, #0x0] + mvn r6, r1 + ldr r1, [r5, r0] + add r2, r1, #0x0 + add r2, #0x84 + ldr r3, [r2, #0x0] + mvn r2, r6 + and r2, r3 + add r1, #0x84 + str r2, [r1, #0x0] + add r1, r4, #0x0 + add r1, #0x29 + ldrb r2, [r1, #0x0] + ldr r1, [r5, r0] + add r1, #0x8a + strh r2, [r1, #0x0] + add r1, r4, #0x0 + add r1, #0x2a + ldrb r2, [r1, #0x0] + ldr r1, [r5, r0] + add r1, #0x94 + strh r2, [r1, #0x0] + ldr r1, [r5, r0] + ldr r2, [r4, #0x2c] + add r1, #0x90 + str r2, [r1, #0x0] + ldr r1, [r5, r0] + ldr r2, [r4, #0x30] + add r1, #0x8c + str r2, [r1, #0x0] + add r1, r4, #0x0 + add r1, #0xf2 + ldr r0, [r5, r0] + ldrb r1, [r1, #0x0] + add r0, #0x88 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0xec + ldr r0, [r0, #0x0] + cmp r0, #0x1 + beq _0202074E + cmp r0, #0x3 + bne _0202075A +_0202074E: + add r4, #0x40 + add r4, #0x8 + add r0, r4, #0x0 + blx sub_020B317C + b _02020764 +_0202075A: + add r4, #0x40 + add r4, #0x8 + add r0, r4, #0x0 + blx sub_020B2D9C +_02020764: + blx sub_020B2B08 + blx sub_020B31F0 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 +_02020770: .word 0x020FFA38 + + thumb_func_start sub_02020774 +sub_02020774: ; 0x02020774 + bx lr + .balign 4 + + thumb_func_start sub_02020778 +sub_02020778: ; 0x02020778 + ldr r3, _02020780 ; =sub_020201E4 + ldr r1, [r0, #0x38] + bx r3 + nop +_02020780: .word sub_020201E4 + 1 + + thumb_func_start sub_02020784 +sub_02020784: ; 0x02020784 + bx lr + .balign 4 + + thumb_func_start sub_02020788 +sub_02020788: ; 0x02020788 + push {r4-r7} + mov r2, #0x11 + lsl r2, r2, #0x4 + add r4, r0, #0x0 + ldr r5, [r0, r2] + add r4, #0x10 + cmp r5, r4 + bne _020207AC + str r1, [r0, r2] + sub r3, r2, #0x4 + str r1, [r0, r3] + add r0, r1, #0x0 + add r0, #0xfc + str r4, [r0, #0x0] + sub r2, #0x10 + str r4, [r1, r2] + pop {r4-r7} + bx lr +_020207AC: + add r3, r1, #0x0 + add r3, #0xf4 + ldrh r6, [r3, #0x0] + sub r3, r2, #0x4 + ldr r3, [r0, r3] + add r7, r3, #0x0 + add r7, #0xf4 + ldrh r7, [r7, #0x0] + cmp r7, r6 + bhi _020207DE + add r5, r1, #0x0 + add r5, #0xfc + str r3, [r5, #0x0] + sub r3, r2, #0x4 + ldr r5, [r0, r3] + add r3, r2, #0x0 + sub r3, #0x10 + str r1, [r5, r3] + add r3, r2, #0x0 + sub r3, #0x10 + str r4, [r1, r3] + sub r2, r2, #0x4 + str r1, [r0, r2] + pop {r4-r7} + bx lr +_020207DE: + cmp r5, r4 + beq _0202081A + add r0, r2, #0x0 + sub r0, #0x10 +_020207E6: + add r2, r5, #0x0 + add r2, #0xf4 + ldrh r2, [r2, #0x0] + cmp r2, r6 + bls _02020814 + add r0, r5, #0x0 + add r0, #0xfc + mov r2, #0x1 + ldr r0, [r0, #0x0] + lsl r2, r2, #0x8 + str r1, [r0, r2] + add r0, r5, #0x0 + add r0, #0xfc + ldr r3, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0xfc + str r3, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0xfc + str r1, [r0, #0x0] + str r5, [r1, r2] + pop {r4-r7} + bx lr +_02020814: + ldr r5, [r5, r0] + cmp r5, r4 + bne _020207E6 +_0202081A: + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_02020820 +sub_02020820: ; 0x02020820 + mov r2, #0x1 + add r1, r0, #0x0 + lsl r2, r2, #0x8 + add r1, #0xfc + ldr r3, [r0, r2] + ldr r1, [r1, #0x0] + str r3, [r1, r2] + add r1, r0, #0x0 + add r1, #0xfc + ldr r0, [r0, r2] + ldr r1, [r1, #0x0] + add r0, #0xfc + str r1, [r0, #0x0] + bx lr + + thumb_func_start sub_0202083C +sub_0202083C: ; 0x0202083C + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + mov r7, #0x0 + cmp r0, #0x0 + ble _0202086C + add r4, r7, #0x0 + add r6, r7, #0x0 +_0202084C: + ldr r0, [r5, #0x0] + add r0, r0, r4 + bl sub_0201FE6C + ldr r0, [r5, #0x0] + add r7, r7, #0x1 + add r1, r0, r4 + ldr r0, [r5, #0x8] + str r1, [r0, r6] + mov r0, #0x41 + lsl r0, r0, #0x2 + add r4, r4, r0 + ldr r0, [r5, #0x4] + add r6, r6, #0x4 + cmp r7, r0 + blt _0202084C +_0202086C: + mov r0, #0x0 + str r0, [r5, #0xc] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02020874 +sub_02020874: ; 0x02020874 + ldr r3, [r0, #0xc] + ldr r1, [r0, #0x4] + cmp r3, r1 + blt _02020880 + mov r0, #0x0 + bx lr +_02020880: + ldr r2, [r0, #0x8] + lsl r1, r3, #0x2 + ldr r2, [r2, r1] + add r1, r3, #0x1 + str r1, [r0, #0xc] + add r0, r2, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02020890 +sub_02020890: ; 0x02020890 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + cmp r0, #0x0 + bgt _020208A0 + mov r0, #0x0 + pop {r3-r5, pc} +_020208A0: + add r0, r4, #0x0 + bl sub_0201FE6C + ldr r0, [r5, #0xc] + sub r0, r0, #0x1 + str r0, [r5, #0xc] + ldr r1, [r5, #0x8] + lsl r0, r0, #0x2 + str r4, [r1, r0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020208B8 +sub_020208B8: ; 0x020208B8 + push {r4-r7} + ldrb r3, [r0, #0x0] + mov r4, #0x0 + cmp r3, #0xff + beq _020208FA +_020208C2: + ldrb r7, [r0, #0x2] + ldrb r3, [r0, #0x3] + ldrb r5, [r0, #0x0] + sub r6, r1, r7 + sub r3, r3, r7 + cmp r6, r3 + bhs _020208D4 + mov r6, #0x1 + b _020208D6 +_020208D4: + mov r6, #0x0 +_020208D6: + ldrb r7, [r0, #0x1] + sub r3, r2, r5 + sub r5, r7, r5 + cmp r3, r5 + bhs _020208E4 + mov r3, #0x1 + b _020208E6 +_020208E4: + mov r3, #0x0 +_020208E6: + tst r3, r6 + beq _020208F0 + add r0, r4, #0x0 + pop {r4-r7} + bx lr +_020208F0: + add r0, r0, #0x4 + ldrb r3, [r0, #0x0] + add r4, r4, #0x1 + cmp r3, #0xff + bne _020208C2 +_020208FA: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_02020904 +sub_02020904: ; 0x02020904 + push {r3-r4} + ldrb r3, [r0, #0x1] + sub r4, r3, r1 + ldrb r1, [r0, #0x2] + sub r3, r1, r2 + ldrb r2, [r0, #0x3] + add r1, r4, #0x0 + add r0, r3, #0x0 + mul r1, r4 + mul r0, r3 + add r1, r1, r0 + add r0, r2, #0x0 + mul r0, r2 + cmp r1, r0 + bhs _02020928 + mov r0, #0x1 + pop {r3-r4} + bx lr +_02020928: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_02020930 +sub_02020930: ; 0x02020930 + push {r4-r5} + ldrb r5, [r0, #0x2] + ldrb r3, [r0, #0x0] + sub r4, r1, r5 + ldrb r1, [r0, #0x3] + sub r1, r1, r5 + cmp r4, r1 + bhs _02020944 + mov r4, #0x1 + b _02020946 +_02020944: + mov r4, #0x0 +_02020946: + ldrb r0, [r0, #0x1] + sub r1, r2, r3 + sub r0, r0, r3 + cmp r1, r0 + bhs _02020954 + mov r0, #0x1 + b _02020956 +_02020954: + mov r0, #0x0 +_02020956: + tst r0, r4 + beq _02020960 + mov r0, #0x1 + pop {r4-r5} + bx lr +_02020960: + mov r0, #0x0 + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_02020968 +sub_02020968: ; 0x02020968 + push {r3, lr} + ldr r2, _02020984 ; =0x021C48F8 + ldrh r1, [r2, #0x22] + cmp r1, #0x0 + beq _0202097C + ldrh r1, [r2, #0x1c] + ldrh r2, [r2, #0x1e] + bl sub_020208B8 + pop {r3, pc} +_0202097C: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + nop +_02020984: .word 0x021C48F8 + + thumb_func_start sub_02020988 +sub_02020988: ; 0x02020988 + push {r3, lr} + ldr r2, _020209A4 ; =0x021C48F8 + ldrh r1, [r2, #0x20] + cmp r1, #0x0 + beq _0202099C + ldrh r1, [r2, #0x1c] + ldrh r2, [r2, #0x1e] + bl sub_020208B8 + pop {r3, pc} +_0202099C: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + nop +_020209A4: .word 0x021C48F8 + + thumb_func_start sub_020209A8 +sub_020209A8: ; 0x020209A8 + push {r3-r7, lr} + ldr r7, _020209F0 ; =0x021C48F8 + add r5, r0, #0x0 + ldrh r0, [r7, #0x22] + cmp r0, #0x0 + beq _020209EA + mov r6, #0x0 + add r4, r5, #0x0 +_020209B8: + ldrb r0, [r5, #0x0] + cmp r0, #0xfe + bne _020209D0 + ldrh r1, [r7, #0x1c] + ldrh r2, [r7, #0x1e] + add r0, r4, #0x0 + bl sub_02020904 + cmp r0, #0x0 + beq _020209E2 + add r0, r6, #0x0 + pop {r3-r7, pc} +_020209D0: + ldrh r1, [r7, #0x1c] + ldrh r2, [r7, #0x1e] + add r0, r4, #0x0 + bl sub_02020930 + cmp r0, #0x0 + beq _020209E2 + add r0, r6, #0x0 + pop {r3-r7, pc} +_020209E2: + add r5, r5, #0x4 + add r4, r4, #0x4 + add r6, r6, #0x1 + b _020209B8 +_020209EA: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + .balign 4 +_020209F0: .word 0x021C48F8 + + thumb_func_start sub_020209F4 +sub_020209F4: ; 0x020209F4 + push {r3-r7, lr} + ldr r7, _02020A3C ; =0x021C48F8 + add r5, r0, #0x0 + ldrh r0, [r7, #0x20] + cmp r0, #0x0 + beq _02020A36 + mov r6, #0x0 + add r4, r5, #0x0 +_02020A04: + ldrb r0, [r5, #0x0] + cmp r0, #0xfe + bne _02020A1C + ldrh r1, [r7, #0x1c] + ldrh r2, [r7, #0x1e] + add r0, r4, #0x0 + bl sub_02020904 + cmp r0, #0x0 + beq _02020A2E + add r0, r6, #0x0 + pop {r3-r7, pc} +_02020A1C: + ldrh r1, [r7, #0x1c] + ldrh r2, [r7, #0x1e] + add r0, r4, #0x0 + bl sub_02020930 + cmp r0, #0x0 + beq _02020A2E + add r0, r6, #0x0 + pop {r3-r7, pc} +_02020A2E: + add r5, r5, #0x4 + add r4, r4, #0x4 + add r6, r6, #0x1 + b _02020A04 +_02020A36: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + .balign 4 +_02020A3C: .word 0x021C48F8 + + thumb_func_start sub_02020A40 +sub_02020A40: ; 0x02020A40 + push {r3, lr} + ldr r2, _02020A68 ; =0x021C48F8 + ldrh r1, [r2, #0x22] + cmp r1, #0x0 + beq _02020A62 + ldrb r1, [r0, #0x0] + cmp r1, #0xfe + ldrh r1, [r2, #0x1c] + bne _02020A5A + ldrh r2, [r2, #0x1e] + bl sub_02020904 + pop {r3, pc} +_02020A5A: + ldrh r2, [r2, #0x1e] + bl sub_02020930 + pop {r3, pc} +_02020A62: + mov r0, #0x0 + pop {r3, pc} + nop +_02020A68: .word 0x021C48F8 + + thumb_func_start sub_02020A6C +sub_02020A6C: ; 0x02020A6C + push {r3, lr} + ldr r2, _02020A94 ; =0x021C48F8 + ldrh r1, [r2, #0x20] + cmp r1, #0x0 + beq _02020A8E + ldrb r1, [r0, #0x0] + cmp r1, #0xfe + ldrh r1, [r2, #0x1c] + bne _02020A86 + ldrh r2, [r2, #0x1e] + bl sub_02020904 + pop {r3, pc} +_02020A86: + ldrh r2, [r2, #0x1e] + bl sub_02020930 + pop {r3, pc} +_02020A8E: + mov r0, #0x0 + pop {r3, pc} + nop +_02020A94: .word 0x021C48F8 + + thumb_func_start sub_02020A98 +sub_02020A98: ; 0x02020A98 + ldr r0, _02020AA0 ; =0x021C48F8 + ldrh r0, [r0, #0x22] + bx lr + nop +_02020AA0: .word 0x021C48F8 + + thumb_func_start sub_02020AA4 +sub_02020AA4: ; 0x02020AA4 + ldr r0, _02020AAC ; =0x021C48F8 + ldrh r0, [r0, #0x20] + bx lr + nop +_02020AAC: .word 0x021C48F8 + + thumb_func_start sub_02020AB0 +sub_02020AB0: ; 0x02020AB0 + ldr r2, _02020AC8 ; =0x021C48F8 + ldrh r3, [r2, #0x22] + cmp r3, #0x0 + beq _02020AC4 + ldrh r3, [r2, #0x1c] + str r3, [r0, #0x0] + ldrh r0, [r2, #0x1e] + str r0, [r1, #0x0] + mov r0, #0x1 + bx lr +_02020AC4: + mov r0, #0x0 + bx lr + .balign 4 +_02020AC8: .word 0x021C48F8 + + thumb_func_start sub_02020ACC +sub_02020ACC: ; 0x02020ACC + ldr r2, _02020AE4 ; =0x021C48F8 + ldrh r3, [r2, #0x20] + cmp r3, #0x0 + beq _02020AE0 + ldrh r3, [r2, #0x1c] + str r3, [r0, #0x0] + ldrh r0, [r2, #0x1e] + str r0, [r1, #0x0] + mov r0, #0x1 + bx lr +_02020AE0: + mov r0, #0x0 + bx lr + .balign 4 +_02020AE4: .word 0x021C48F8 + + thumb_func_start sub_02020AE8 +sub_02020AE8: ; 0x02020AE8 + push {r3, lr} + ldrb r3, [r0, #0x0] + cmp r3, #0xfe + bne _02020AF6 + bl sub_02020904 + pop {r3, pc} +_02020AF6: + bl sub_02020930 + pop {r3, pc} + + thumb_func_start sub_02020AFC +sub_02020AFC: ; 0x02020AFC + push {r3, lr} + ldr r0, _02020B24 ; =0x021C59B0 + mov r2, #0x0 + str r2, [r0, #0x4] + str r2, [r0, #0x8] + ldr r1, _02020B28 ; =0x0400010E + str r2, [r0, #0x0] + strh r2, [r1, #0x0] + sub r0, r1, #0x2 + strh r2, [r0, #0x0] + mov r0, #0xc1 + strh r0, [r1, #0x0] + ldr r1, _02020B2C ; =sub_02020B30 + mov r0, #0x40 + blx sub_020C9FEC + mov r0, #0x40 + blx sub_020C9E5C + pop {r3, pc} + .balign 4 +_02020B24: .word 0x021C59B0 +_02020B28: .word 0x0400010E +_02020B2C: .word sub_02020B30 + 1 + + thumb_func_start sub_02020B30 +sub_02020B30: ; 0x02020B30 + ldr r0, _02020B68 ; =0x021C59B0 + mov r3, #0x0 + ldr r1, [r0, #0x4] + ldr r2, [r0, #0x8] + add r1, r1, #0x1 + adc r2, r3 + str r1, [r0, #0x4] + str r2, [r0, #0x8] + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02020B54 + ldr r2, _02020B6C ; =0x0400010E + strh r3, [r2, #0x0] + sub r1, r2, #0x2 + strh r3, [r1, #0x0] + mov r1, #0xc1 + strh r1, [r2, #0x0] + str r3, [r0, #0x0] +_02020B54: + ldr r3, _02020B70 ; =0x027E0000 + ldr r1, _02020B74 ; =0x00003FF8 + mov r0, #0x40 + ldr r2, [r3, r1] + orr r2, r0 + str r2, [r3, r1] + ldr r3, _02020B78 ; =sub_020C9FEC + ldr r1, _02020B7C ; =sub_02020B30 + bx r3 + nop +_02020B68: .word 0x021C59B0 +_02020B6C: .word 0x0400010E +_02020B70: .word 0x027E0000 +_02020B74: .word 0x00003FF8 +_02020B78: .word sub_020C9FEC +_02020B7C: .word sub_02020B30 + 1 + + thumb_func_start sub_02020B80 +sub_02020B80: ; 0x02020B80 + push {r4-r5, lr} + sub sp, #0xc + blx sub_020CD310 + ldr r1, _02020BE4 ; =0x0400010C + add r3, sp, #0x0 + ldrh r1, [r1, #0x0] + ldr r2, _02020BE8 ; =0x0000FFFF + strh r1, [r3, #0x0] + ldr r1, _02020BEC ; =0x021C59B0 + ldr r5, [r1, #0x4] + ldr r4, [r1, #0x8] + mov r1, #0x0 + mvn r1, r1 + and r1, r5 + str r1, [sp, #0x4] + and r2, r4 + ldr r1, _02020BF0 ; =0x04000214 + str r2, [sp, #0x8] + ldr r2, [r1, #0x0] + mov r1, #0x40 + tst r2, r1 + beq _02020BC4 + ldrh r2, [r3, #0x0] + lsl r1, r1, #0x9 + tst r1, r2 + bne _02020BC4 + ldr r2, [sp, #0x4] + mov r1, #0x0 + ldr r3, [sp, #0x8] + add r2, r2, #0x1 + adc r3, r1 + str r2, [sp, #0x4] + str r3, [sp, #0x8] +_02020BC4: + blx sub_020CD324 + ldr r2, [sp, #0x4] + ldr r1, [sp, #0x8] + lsr r0, r2, #0x10 + lsl r1, r1, #0x10 + orr r1, r0 + add r0, sp, #0x0 + lsl r3, r2, #0x10 + ldrh r2, [r0, #0x0] + asr r0, r2, #0x1f + orr r1, r0 + add r0, r3, #0x0 + orr r0, r2 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 +_02020BE4: .word 0x0400010C +_02020BE8: .word 0x0000FFFF +_02020BEC: .word 0x021C59B0 +_02020BF0: .word 0x04000214 + + thumb_func_start sub_02020BF4 +sub_02020BF4: ; 0x02020BF4 + ldr r3, _02020BF8 ; =sub_02020B80 + bx r3 + .balign 4 +_02020BF8: .word sub_02020B80 + 1 + + thumb_func_start sub_02020BFC +sub_02020BFC: ; 0x02020BFC + push {r3, lr} + lsr r2, r0, #0x1a + lsl r1, r1, #0x6 + orr r1, r2 + ldr r2, _02020C10 ; =0x000082EA + lsl r0, r0, #0x6 + mov r3, #0x0 + blx sub_020EBBE8 + pop {r3, pc} + .balign 4 +_02020C10: .word 0x000082EA + + thumb_func_start sub_02020C14 +sub_02020C14: ; 0x02020C14 + push {r3, lr} + lsr r2, r0, #0x1a + lsl r1, r1, #0x6 + orr r1, r2 + ldr r2, _02020C28 ; =0x01FF6210 + lsl r0, r0, #0x6 + mov r3, #0x0 + blx sub_020EBBE8 + pop {r3, pc} + .balign 4 +_02020C28: .word 0x01FF6210 + + thumb_func_start sub_02020C2C +sub_02020C2C: ; 0x02020C2C + push {r3, lr} + bl sub_02031810 + cmp r0, #0x0 + beq _02020C42 + blx sub_020CD374 + cmp r0, #0x12 + beq _02020C42 + bl sub_0208A9B8 +_02020C42: + pop {r3, pc} + + thumb_func_start sub_02020C44 +sub_02020C44: ; 0x02020C44 + push {r3-r7, lr} + add r4, r1, #0x0 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0xc + bl sub_02016998 + add r6, r0, #0x0 + bne _02020C5A + bl sub_02020C2C +_02020C5A: + add r0, r4, #0x0 + lsl r1, r7, #0x3 + bl sub_02016998 + str r0, [r6, #0x0] + cmp r0, #0x0 + bne _02020C6C + bl sub_02020C2C +_02020C6C: + mov r4, #0x0 + cmp r7, #0x0 + ble _02020C84 + add r5, r4, #0x0 +_02020C74: + ldr r0, [r6, #0x0] + add r0, r0, r5 + bl sub_02020E78 + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, r7 + blt _02020C74 +_02020C84: + str r7, [r6, #0x4] + mov r0, #0x0 + str r0, [r6, #0x8] + add r0, r6, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02020C90 +sub_02020C90: ; 0x02020C90 + push {r4, lr} + add r4, r0, #0x0 + bne _02020C9A + bl sub_02020C2C +_02020C9A: + add r0, r4, #0x0 + bl sub_02020D9C + ldr r0, [r4, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02020CB0 +sub_02020CB0: ; 0x02020CB0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020CBE + bl sub_02020C2C +_02020CBE: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02020DD8 + cmp r0, #0x0 + bne _02020CCE + mov r0, #0x1 + pop {r3-r5, pc} +_02020CCE: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02020CD4 +sub_02020CD4: ; 0x02020CD4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + add r6, r2, #0x0 + cmp r5, #0x0 + bne _02020CE4 + bl sub_02020C2C +_02020CE4: + add r0, r5, #0x0 + bl sub_02020E48 + add r4, r0, #0x0 + bne _02020CF2 + bl sub_02020C2C +_02020CF2: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02020CB0 + cmp r0, #0x1 + beq _02020D02 + bl sub_02020C2C +_02020D02: + str r7, [r4, #0x4] + str r6, [r4, #0x0] + ldr r0, [r5, #0x8] + add r0, r0, #0x1 + str r0, [r5, #0x8] + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02020D10 +sub_02020D10: ; 0x02020D10 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x0] + cmp r5, #0x0 + bne _02020D22 + bl sub_02020C2C +_02020D22: + cmp r6, #0x0 + bne _02020D2A + bl sub_02020C2C +_02020D2A: + add r0, r5, #0x0 + bl sub_02020E48 + add r4, r0, #0x0 + bne _02020D38 + bl sub_02020C2C +_02020D38: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02020CB0 + cmp r0, #0x1 + beq _02020D48 + bl sub_02020C2C +_02020D48: + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl sub_020161A4 + str r0, [r4, #0x4] + cmp r0, #0x0 + bne _02020D5A + bl sub_02020C2C +_02020D5A: + str r7, [r4, #0x0] + ldr r0, [r5, #0x8] + add r0, r0, #0x1 + str r0, [r5, #0x8] + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02020D68 +sub_02020D68: ; 0x02020D68 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020D76 + bl sub_02020C2C +_02020D76: + cmp r4, #0x0 + bne _02020D7E + bl sub_02020C2C +_02020D7E: + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _02020D8C + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x4] +_02020D8C: + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x0] + ldr r0, [r5, #0x8] + sub r0, r0, #0x1 + str r0, [r5, #0x8] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02020D9C +sub_02020D9C: ; 0x02020D9C + push {r3-r7, lr} + add r5, r0, #0x0 + bne _02020DA6 + bl sub_02020C2C +_02020DA6: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + bne _02020DB0 + bl sub_02020C2C +_02020DB0: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02020DD6 + add r4, r6, #0x0 + sub r7, r6, #0x1 +_02020DBC: + ldr r1, [r5, #0x0] + ldr r0, [r1, r4] + cmp r0, r7 + beq _02020DCC + add r0, r5, #0x0 + add r1, r1, r4 + bl sub_02020D68 +_02020DCC: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0x8 + cmp r6, r0 + blt _02020DBC +_02020DD6: + pop {r3-r7, pc} + + thumb_func_start sub_02020DD8 +sub_02020DD8: ; 0x02020DD8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020DE6 + bl sub_02020C2C +_02020DE6: + ldr r6, [r5, #0x4] + mov r1, #0x0 + cmp r6, #0x0 + ble _02020E06 + ldr r3, [r5, #0x0] + add r2, r3, #0x0 +_02020DF2: + ldr r0, [r2, #0x0] + cmp r4, r0 + bne _02020DFE + lsl r0, r1, #0x3 + add r0, r3, r0 + pop {r4-r6, pc} +_02020DFE: + add r1, r1, #0x1 + add r2, #0x8 + cmp r1, r6 + blt _02020DF2 +_02020E06: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02020E0C +sub_02020E0C: ; 0x02020E0C + push {r4, lr} + add r4, r0, #0x0 + bne _02020E16 + bl sub_02020C2C +_02020E16: + ldr r0, [r4, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02020E1C +sub_02020E1C: ; 0x02020E1C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020E2A + bl sub_02020C2C +_02020E2A: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + beq _02020E34 + bl sub_02016A18 +_02020E34: + str r4, [r5, #0x4] + pop {r3-r5, pc} + + thumb_func_start sub_02020E38 +sub_02020E38: ; 0x02020E38 + push {r4, lr} + add r4, r0, #0x0 + bne _02020E42 + bl sub_02020C2C +_02020E42: + ldr r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02020E48 +sub_02020E48: ; 0x02020E48 + push {r3-r5, lr} + add r4, r0, #0x0 + bne _02020E52 + bl sub_02020C2C +_02020E52: + ldr r5, [r4, #0x4] + mov r2, #0x0 + cmp r5, #0x0 + ble _02020E74 + ldr r4, [r4, #0x0] + sub r0, r2, #0x1 + add r3, r4, #0x0 +_02020E60: + ldr r1, [r3, #0x0] + cmp r1, r0 + bne _02020E6C + lsl r0, r2, #0x3 + add r0, r4, r0 + pop {r3-r5, pc} +_02020E6C: + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, r5 + blt _02020E60 +_02020E74: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02020E78 +sub_02020E78: ; 0x02020E78 + push {r4, lr} + add r4, r0, #0x0 + bne _02020E82 + bl sub_02020C2C +_02020E82: + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02020E90 +sub_02020E90: ; 0x02020E90 + push {r3-r7, lr} + add r4, r1, #0x0 + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x8 + bl sub_02016998 + add r7, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02020C44 + mov r1, #0x18 + str r0, [r7, #0x0] + add r0, r4, #0x0 + mul r1, r6 + bl sub_02016998 + mov r4, #0x0 + str r0, [r7, #0x4] + cmp r6, #0x0 + ble _02020ECE + add r5, r4, #0x0 +_02020EBE: + ldr r0, [r7, #0x4] + add r0, r0, r5 + bl sub_0202120C + add r4, r4, #0x1 + add r5, #0x18 + cmp r4, r6 + blt _02020EBE +_02020ECE: + add r0, r7, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02020ED4 +sub_02020ED4: ; 0x02020ED4 + push {r4, lr} + add r4, r0, #0x0 + bne _02020EDE + bl sub_02020C2C +_02020EDE: + add r0, r4, #0x0 + bl sub_02021010 + ldr r0, [r4, #0x0] + bl sub_02020C90 + ldr r0, [r4, #0x4] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02020EF8 +sub_02020EF8: ; 0x02020EF8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020F06 + bl sub_02020C2C +_02020F06: + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + bl sub_02020CB0 + pop {r3-r5, pc} + + thumb_func_start sub_02020F10 +sub_02020F10: ; 0x02020F10 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r3, #0x0 + str r2, [sp, #0x0] + cmp r5, #0x0 + bne _02020F22 + bl sub_02020C2C +_02020F22: + add r0, r5, #0x0 + bl sub_020211DC + add r4, r0, #0x0 + strh r7, [r4, #0x16] + ldrh r0, [r4, #0x16] + cmp r0, #0x1 + bne _02020F40 + ldr r1, [sp, #0x18] + add r0, r6, #0x0 + bl sub_02021310 + add r1, r0, #0x0 + str r6, [r4, #0x10] + b _02020F46 +_02020F40: + mov r0, #0x0 + add r1, r6, #0x0 + str r0, [r4, #0x10] +_02020F46: + ldr r0, [r5, #0x0] + ldr r2, [sp, #0x0] + bl sub_02020CD4 + str r0, [r4, #0x0] + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02020F54 +sub_02020F54: ; 0x02020F54 + push {r3-r4, lr} + sub sp, #0x4 + ldr r4, [sp, #0x10] + str r4, [sp, #0x0] + bl sub_02020F10 + add r4, r0, #0x0 + bl sub_02021174 + add r0, r4, #0x0 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_02020F6C +sub_02020F6C: ; 0x02020F6C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020F7A + bl sub_02020C2C +_02020F7A: + cmp r4, #0x0 + bne _02020F82 + bl sub_02020C2C +_02020F82: + ldrh r0, [r4, #0x16] + cmp r0, #0x1 + bne _02020F98 + ldrh r0, [r4, #0x14] + cmp r0, #0x0 + bne _02020F98 + ldr r0, [r4, #0x10] + bl sub_02016A18 + mov r0, #0x0 + strh r0, [r4, #0x16] +_02020F98: + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02020FA4 + ldr r0, [r5, #0x0] + bl sub_02020D68 +_02020FA4: + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _02020FB8 + ldr r1, _02020FE8 ; =0x021064BC + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _02020FB8 + bl sub_02020C2C +_02020FB8: + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _02020FCC + ldr r1, _02020FE8 ; =0x021064BC + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _02020FCC + bl sub_02020C2C +_02020FCC: + ldr r0, [r4, #0xc] + cmp r0, #0x0 + beq _02020FE0 + ldr r1, _02020FEC ; =0x021064C4 + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _02020FE0 + bl sub_02020C2C +_02020FE0: + add r0, r4, #0x0 + bl sub_0202120C + pop {r3-r5, pc} + .balign 4 +_02020FE8: .word 0x021064BC +_02020FEC: .word 0x021064C4 + + thumb_func_start sub_02020FF0 +sub_02020FF0: ; 0x02020FF0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020FFE + bl sub_02020C2C +_02020FFE: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02021050 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02020F6C + pop {r3-r5, pc} + + thumb_func_start sub_02021010 +sub_02021010: ; 0x02021010 + push {r4-r6, lr} + add r5, r0, #0x0 + bne _0202101A + bl sub_02020C2C +_0202101A: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _02021024 + bl sub_02020C2C +_02021024: + ldr r0, [r5, #0x0] + mov r6, #0x0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + ble _0202104C + add r4, r6, #0x0 +_02021030: + ldr r1, [r5, #0x4] + ldr r0, [r1, r4] + cmp r0, #0x0 + beq _02021040 + add r0, r5, #0x0 + add r1, r1, r4 + bl sub_02020F6C +_02021040: + ldr r0, [r5, #0x0] + add r6, r6, #0x1 + ldr r0, [r0, #0x4] + add r4, #0x18 + cmp r6, r0 + blt _02021030 +_0202104C: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02021050 +sub_02021050: ; 0x02021050 + push {r3-r7, lr} + add r6, r0, #0x0 + add r7, r1, #0x0 + cmp r6, #0x0 + bne _0202105E + bl sub_02020C2C +_0202105E: + ldr r0, [r6, #0x0] + mov r4, #0x0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + ble _02021092 + add r5, r4, #0x0 +_0202106A: + ldr r1, [r6, #0x4] + ldr r0, [r1, r5] + cmp r0, #0x0 + beq _02021086 + add r0, r1, r5 + bl sub_02021098 + cmp r0, r7 + bne _02021086 + mov r0, #0x18 + ldr r1, [r6, #0x4] + mul r0, r4 + add r0, r1, r0 + pop {r3-r7, pc} +_02021086: + ldr r0, [r6, #0x0] + add r4, r4, #0x1 + ldr r0, [r0, #0x4] + add r5, #0x18 + cmp r4, r0 + blt _0202106A +_02021092: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02021098 +sub_02021098: ; 0x02021098 + push {r4, lr} + add r4, r0, #0x0 + bne _020210A2 + bl sub_02020C2C +_020210A2: + ldr r0, [r4, #0x0] + bl sub_02020E38 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020210AC +sub_020210AC: ; 0x020210AC + push {r4, lr} + add r4, r0, #0x0 + bne _020210B6 + bl sub_02020C2C +_020210B6: + add r0, r4, #0x0 + bl sub_02021220 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020210C0 +sub_020210C0: ; 0x020210C0 + push {r4, lr} + add r4, r0, #0x0 + bne _020210CA + bl sub_02020C2C +_020210CA: + ldrh r0, [r4, #0x14] + cmp r0, #0x0 + beq _020210D4 + bl sub_02020C2C +_020210D4: + ldr r0, [r4, #0xc] + cmp r0, #0x0 + bne _020210E0 + bl sub_02020C2C + pop {r4, pc} +_020210E0: + add r0, r4, #0x0 + bl sub_02021230 + add r1, r4, #0x0 + bl sub_020212B8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020210F0 +sub_020210F0: ; 0x020210F0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020210FE + bl sub_02020C2C +_020210FE: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02021050 + bl sub_020210C0 + pop {r3-r5, pc} + + thumb_func_start sub_0202110C +sub_0202110C: ; 0x0202110C + push {r4, lr} + add r4, r0, #0x0 + bne _02021116 + bl sub_02020C2C +_02021116: + ldrh r0, [r4, #0x16] + cmp r0, #0x0 + bne _02021122 + bl sub_02020C2C + pop {r4, pc} +_02021122: + ldrh r0, [r4, #0x14] + cmp r0, #0x0 + beq _0202112E + bl sub_02020C2C + pop {r4, pc} +_0202112E: + add r0, r4, #0x0 + bl sub_02021230 + bl sub_020212F8 + add r0, r4, #0x0 + bl sub_02021220 + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x8] + ldr r3, [r4, #0xc] + bl sub_020212E4 + ldr r0, [r4, #0x10] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x10] + mov r0, #0x1 + strh r0, [r4, #0x14] + pop {r4, pc} + + thumb_func_start sub_02021158 +sub_02021158: ; 0x02021158 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021166 + bl sub_02020C2C +_02021166: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02021050 + bl sub_0202110C + pop {r3-r5, pc} + + thumb_func_start sub_02021174 +sub_02021174: ; 0x02021174 + push {r4, lr} + add r4, r0, #0x0 + bne _0202117E + bl sub_02020C2C +_0202117E: + ldrh r0, [r4, #0x14] + cmp r0, #0x0 + beq _02021188 + bl sub_02020C2C +_02021188: + ldr r0, [r4, #0xc] + cmp r0, #0x0 + beq _02021194 + bl sub_02020C2C + pop {r4, pc} +_02021194: + add r0, r4, #0x0 + bl sub_02021230 + add r2, r4, #0x0 + add r1, r4, #0x4 + add r4, #0xc + add r2, #0x8 + add r3, r4, #0x0 + bl sub_02021248 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020211AC +sub_020211AC: ; 0x020211AC + push {r4, lr} + add r4, r0, #0x0 + bne _020211B6 + bl sub_02020C2C +_020211B6: + ldr r0, [r4, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020211BC +sub_020211BC: ; 0x020211BC + push {r4, lr} + add r4, r0, #0x0 + bne _020211C6 + bl sub_02020C2C +_020211C6: + ldr r0, [r4, #0x8] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020211CC +sub_020211CC: ; 0x020211CC + push {r4, lr} + add r4, r0, #0x0 + bne _020211D6 + bl sub_02020C2C +_020211D6: + ldr r0, [r4, #0xc] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020211DC +sub_020211DC: ; 0x020211DC + push {r3-r4} + ldr r1, [r0, #0x0] + mov r2, #0x0 + ldr r4, [r1, #0x4] + cmp r4, #0x0 + ble _02021204 + ldr r3, [r0, #0x4] +_020211EA: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + bne _020211FC + ldr r1, [r0, #0x4] + mov r0, #0x18 + mul r0, r2 + add r0, r1, r0 + pop {r3-r4} + bx lr +_020211FC: + add r2, r2, #0x1 + add r3, #0x18 + cmp r2, r4 + blt _020211EA +_02021204: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_0202120C +sub_0202120C: ; 0x0202120C + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + str r1, [r0, #0x8] + str r1, [r0, #0xc] + strh r1, [r0, #0x14] + str r1, [r0, #0x10] + strh r1, [r0, #0x14] + bx lr + .balign 4 + + thumb_func_start sub_02021220 +sub_02021220: ; 0x02021220 + push {r3, lr} + ldr r0, [r0, #0x0] + bl sub_02020E0C + blx sub_020BC0FC + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02021230 +sub_02021230: ; 0x02021230 + push {r3, lr} + ldrh r1, [r0, #0x16] + cmp r1, #0x0 + bne _02021240 + ldr r0, [r0, #0x0] + bl sub_02020E0C + b _02021242 +_02021240: + ldr r0, [r0, #0x10] +_02021242: + blx sub_020BC0FC + pop {r3, pc} + + thumb_func_start sub_02021248 +sub_02021248: ; 0x02021248 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + str r3, [sp, #0x8] + blx sub_020B7E1C + add r7, r0, #0x0 + add r0, r5, #0x0 + blx sub_020B7E10 + add r6, r0, #0x0 + add r0, r5, #0x0 + blx sub_020B7CE4 + add r4, r0, #0x0 + cmp r7, #0x0 + beq _0202127E + ldr r3, _020212B0 ; =0x021064B8 + mov r1, #0x0 + ldr r3, [r3, #0x0] + add r0, r7, #0x0 + add r2, r1, #0x0 + blx r3 + ldr r1, [sp, #0x0] + str r0, [r1, #0x0] +_0202127E: + cmp r6, #0x0 + beq _02021292 + ldr r3, _020212B0 ; =0x021064B8 + add r0, r6, #0x0 + ldr r3, [r3, #0x0] + mov r1, #0x1 + mov r2, #0x0 + blx r3 + ldr r1, [sp, #0x4] + str r0, [r1, #0x0] +_02021292: + cmp r4, #0x0 + beq _020212AC + ldr r3, _020212B4 ; =0x021064C0 + mov r1, #0x2 + ldrh r2, [r5, #0x20] + lsl r1, r1, #0xe + ldr r3, [r3, #0x0] + and r1, r2 + add r0, r4, #0x0 + mov r2, #0x0 + blx r3 + ldr r1, [sp, #0x8] + str r0, [r1, #0x0] +_020212AC: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_020212B0: .word 0x021064B8 +_020212B4: .word 0x021064C0 + + thumb_func_start sub_020212B8 +sub_020212B8: ; 0x020212B8 + push {r4, lr} + add r3, r1, #0x0 + ldr r1, [r3, #0x4] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + add r4, r0, #0x0 + bl sub_020212E4 + ldr r1, [r4, #0x4] + add r0, r4, #0x0 + blx sub_020CC15C + add r0, r4, #0x0 + mov r1, #0x1 + blx sub_020B7D28 + add r0, r4, #0x0 + mov r1, #0x1 + blx sub_020B7C78 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020212E4 +sub_020212E4: ; 0x020212E4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r3, #0x0 + blx sub_020B7DFC + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_020B7CDC + pop {r3-r5, pc} + + thumb_func_start sub_020212F8 +sub_020212F8: ; 0x020212F8 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + blx sub_020B7CF0 + add r0, r4, #0x0 + blx sub_020B7C58 + add sp, #0x8 + pop {r4, pc} + + thumb_func_start sub_02021310 +sub_02021310: ; 0x02021310 + push {r4-r6, lr} + add r6, r0, #0x0 + add r4, r1, #0x0 + bl sub_02021334 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02016998 + add r1, r6, #0x0 + add r2, r5, #0x0 + add r4, r0, #0x0 + blx sub_020DF438 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02021334 +sub_02021334: ; 0x02021334 + push {r3-r5, lr} + add r5, r0, #0x0 + blx sub_020BC0FC + add r4, r0, #0x0 + bne _02021344 + bl sub_02020C2C +_02021344: + ldr r0, [r4, #0x14] + add r0, r4, r0 + sub r0, r0, r5 + pop {r3-r5, pc} + + thumb_func_start sub_0202134C +sub_0202134C: ; 0x0202134C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + blx sub_020B33A0 + add r5, #0x80 + str r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0202135C +sub_0202135C: ; 0x0202135C + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + blx sub_020B3334 + add r2, r5, #0x0 + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + str r6, [r5, #0x28] + ldr r0, [sp, #0x18] + str r7, [r5, #0x2c] + str r0, [r5, #0x34] + ldr r0, [sp, #0x1c] + str r0, [r5, #0x14] + ldr r0, [sp, #0x20] + cmp r0, #0x0 + beq _0202138C + add r1, r5, #0x0 + blx sub_020B3390 +_0202138C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02021390 +sub_02021390: ; 0x02021390 + add r3, r0, #0x0 + add r2, r1, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + bx lr + .balign 4 + + thumb_func_start sub_020213A0 +sub_020213A0: ; 0x020213A0 + push {r3-r7, lr} + sub sp, #0x60 + add r5, r1, #0x0 + add r6, r2, #0x0 + ldr r4, [r5, #0x10] + ldr r3, [r6, #0x0] + add r2, r0, #0x0 + sub r3, r4, r3 + ldrh r1, [r0, #0x2] + mov r0, #0x3f + str r3, [sp, #0x18] + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1a + ldr r4, [r5, #0x14] + ldr r3, [r6, #0x4] + add r2, #0x8 + sub r3, r4, r3 + str r3, [sp, #0x14] + asr r3, r1, #0xb + mov r1, #0x1 + and r1, r3 + lsr r0, r0, #0x18 + cmp r1, #0x1 + bne _020213F4 + mov r0, #0x6 + ldrsh r0, [r2, r0] + lsl r4, r0, #0xc + mov r0, #0x2 + ldrsh r0, [r2, r0] + lsl r0, r0, #0xc + str r0, [sp, #0x10] + mov r0, #0x4 + ldrsh r0, [r2, r0] + lsl r0, r0, #0xc + str r0, [sp, #0xc] + mov r0, #0x0 + ldrsh r0, [r2, r0] + lsl r0, r0, #0xc + str r0, [sp, #0x8] + b _02021400 +_020213F4: + neg r1, r0 + lsl r0, r0, #0xc + lsl r4, r1, #0xc + str r0, [sp, #0x10] + str r4, [sp, #0xc] + str r0, [sp, #0x8] +_02021400: + ldr r0, [r5, #0xc] + str r0, [sp, #0x1c] + asr r0, r0, #0x1f + str r0, [sp, #0x20] + asr r0, r4, #0x1f + str r0, [sp, #0x24] + ldr r0, [r5, #0x4] + ldr r1, [sp, #0x24] + str r0, [sp, #0x28] + asr r0, r0, #0x1f + str r0, [sp, #0x2c] + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x2c] + add r0, r4, #0x0 + blx sub_020EBC30 + add r7, r1, #0x0 + str r0, [sp, #0x30] + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x20] + add r0, r4, #0x0 + blx sub_020EBC30 + add r2, r0, #0x0 + add r3, r1, #0x0 + mov r0, #0x2 + ldr r1, [sp, #0x30] + mov r4, #0x0 + lsl r0, r0, #0xa + add r0, r1, r0 + adc r7, r4 + lsl r1, r7, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + mov r1, #0x2 + lsl r1, r1, #0xa + add r2, r2, r1 + adc r3, r4 + lsl r1, r3, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + add r1, r0, r2 + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x28] + add r0, r0, r1 + str r0, [sp, #0x5c] + ldr r0, [sp, #0x10] + ldr r3, [sp, #0x2c] + asr r0, r0, #0x1f + str r0, [sp, #0x34] + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x34] + blx sub_020EBC30 + str r0, [sp, #0x38] + add r4, r1, #0x0 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x34] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x20] + blx sub_020EBC30 + mov r2, #0x2 + ldr r3, [sp, #0x38] + lsl r2, r2, #0xa + add r2, r3, r2 + ldr r3, _0202158C ; =0x00000000 + adc r4, r3 + lsl r3, r4, #0x14 + lsr r2, r2, #0xc + orr r2, r3 + mov r3, #0x2 + lsl r3, r3, #0xa + add r3, r0, r3 + ldr r0, _0202158C ; =0x00000000 + adc r1, r0 + lsl r0, r1, #0x14 + lsr r1, r3, #0xc + orr r1, r0 + ldr r0, [sp, #0x14] + add r1, r2, r1 + add r4, r0, r1 + ldr r0, [r5, #0x8] + str r0, [sp, #0x3c] + asr r0, r0, #0x1f + str r0, [sp, #0x40] + ldr r0, [sp, #0xc] + asr r0, r0, #0x1f + str r0, [sp, #0x44] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x44] + str r0, [sp, #0x48] + asr r0, r0, #0x1f + str r0, [sp, #0x4c] + ldr r0, [sp, #0xc] + ldr r2, [sp, #0x48] + ldr r3, [sp, #0x4c] + blx sub_020EBC30 + str r0, [sp, #0x50] + add r5, r1, #0x0 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x44] + ldr r2, [sp, #0x3c] + ldr r3, [sp, #0x40] + blx sub_020EBC30 + mov r2, #0x2 + ldr r3, [sp, #0x50] + lsl r2, r2, #0xa + add r2, r3, r2 + ldr r3, _0202158C ; =0x00000000 + adc r5, r3 + lsl r3, r5, #0x14 + lsr r2, r2, #0xc + orr r2, r3 + mov r3, #0x2 + lsl r3, r3, #0xa + add r3, r0, r3 + ldr r0, _0202158C ; =0x00000000 + adc r1, r0 + lsl r0, r1, #0x14 + lsr r1, r3, #0xc + orr r1, r0 + ldr r0, [sp, #0x18] + add r1, r2, r1 + add r5, r0, r1 + ldr r0, [sp, #0x8] + asr r0, r0, #0x1f + str r0, [sp, #0x54] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x54] + ldr r2, [sp, #0x48] + ldr r3, [sp, #0x4c] + blx sub_020EBC30 + str r0, [sp, #0x58] + str r1, [sp, #0x4] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x54] + ldr r2, [sp, #0x3c] + ldr r3, [sp, #0x40] + blx sub_020EBC30 + mov r12, r0 + add r2, r1, #0x0 + mov r0, #0x2 + ldr r1, [sp, #0x58] + lsl r0, r0, #0xa + add r3, r1, r0 + ldr r1, [sp, #0x4] + ldr r0, _0202158C ; =0x00000000 + adc r1, r0 + str r1, [sp, #0x4] + lsl r0, r1, #0x14 + lsr r1, r3, #0xc + orr r1, r0 + mov r0, #0x2 + lsl r0, r0, #0xa + mov r3, r12 + add r0, r3, r0 + ldr r3, _0202158C ; =0x00000000 + adc r2, r3 + lsl r2, r2, #0x14 + lsr r0, r0, #0xc + orr r0, r2 + add r1, r1, r0 + ldr r0, [sp, #0x18] + add r0, r0, r1 + ldr r1, [sp, #0x5c] + cmp r4, r1 + bge _02021560 + add r1, r4, #0x0 + ldr r4, [sp, #0x5c] + str r1, [sp, #0x5c] +_02021560: + cmp r0, r5 + bge _0202156A + add r1, r0, #0x0 + add r0, r5, #0x0 + add r5, r1, #0x0 +_0202156A: + cmp r4, #0x0 + ble _02021586 + ldr r2, [r6, #0xc] + ldr r1, [sp, #0x5c] + cmp r1, r2 + bge _02021586 + cmp r0, #0x0 + ble _02021586 + ldr r0, [r6, #0x8] + cmp r5, r0 + bge _02021586 + add sp, #0x60 + mov r0, #0x1 + pop {r3-r7, pc} +_02021586: + mov r0, #0x0 + add sp, #0x60 + pop {r3-r7, pc} + .balign 4 +_0202158C: .word 0x00000000 + + thumb_func_start sub_02021590 +sub_02021590: ; 0x02021590 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r6, r1, #0x0 + ldr r0, [sp, #0x20] + mov r1, #0x78 + add r7, r2, #0x0 + str r3, [sp, #0x4] + bl sub_02016998 + add r4, r0, #0x0 + beq _020215C0 + ldr r1, [sp, #0x20] + ldr r3, [sp, #0x4] + str r1, [sp, #0x0] + add r1, r5, #0x0 + add r2, r6, #0x0 + bl sub_02021600 + ldr r2, [sp, #0x20] + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_020216D4 +_020215C0: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020215C8 +sub_020215C8: ; 0x020215C8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02021728 + add r0, r4, #0x0 + bl sub_020216B8 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020215E0 +sub_020215E0: ; 0x020215E0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + add r6, r2, #0x0 + cmp r1, r4 + beq _020215FC + bl sub_02021728 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020216D4 +_020215FC: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02021600 +sub_02021600: ; 0x02021600 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r0, r1, #0x0 + ldr r1, [sp, #0x18] + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02006670 + str r0, [r5, #0x54] + cmp r0, #0x0 + beq _020216A6 + add r1, r5, #0x0 + add r1, #0x5c + str r1, [sp, #0x0] + add r1, r4, #0x0 + mov r2, #0x0 + mov r3, #0x10 + bl sub_02006814 + str r6, [r5, #0x6c] + cmp r6, #0x0 + beq _02021638 + mov r0, #0x0 + str r0, [r5, #0x74] + ldr r0, _020216AC ; =sub_0202192C + str r0, [r5, #0x70] + b _02021660 +_02021638: + ldr r0, [r5, #0x60] + cmp r0, #0x0 + bne _02021642 + bl sub_02020C2C +_02021642: + ldr r0, [sp, #0x18] + ldr r1, [r5, #0x64] + bl sub_02016998 + str r0, [r5, #0x74] + ldr r0, _020216B0 ; =sub_02021924 + add r1, r4, #0x0 + str r0, [r5, #0x70] + ldr r0, [r5, #0x74] + str r0, [sp, #0x0] + ldr r0, [r5, #0x54] + ldr r2, [r5, #0x60] + ldr r3, [r5, #0x64] + bl sub_02006814 +_02021660: + add r0, r5, #0x0 + add r0, #0x6a + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bhi _02021674 + add r0, r5, #0x0 + add r0, #0x6b + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bls _02021678 +_02021674: + bl sub_02020C2C +_02021678: + add r0, r5, #0x0 + add r0, #0x6a + ldrb r0, [r0, #0x0] + ldr r2, _020216B4 ; =0x020EE668 + sub r0, r0, #0x1 + lsl r3, r0, #0x1 + add r0, r5, #0x0 + add r0, #0x6b + ldrb r0, [r0, #0x0] + sub r1, r0, #0x1 + add r0, r2, r3 + ldrb r0, [r1, r0] + str r0, [r5, #0x8] + add r0, r5, #0x0 + add r0, #0x6b + ldrb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x6a + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x4 + mul r0, r1 + str r0, [r5, #0xc] + str r4, [r5, #0x58] +_020216A6: + add sp, #0x4 + pop {r3-r6, pc} + nop +_020216AC: .word sub_0202192C + 1 +_020216B0: .word sub_02021924 + 1 +_020216B4: .word 0x020EE668 + + thumb_func_start sub_020216B8 +sub_020216B8: ; 0x020216B8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x74] + cmp r0, #0x0 + beq _020216C6 + bl sub_02016A18 +_020216C6: + ldr r0, [r4, #0x54] + cmp r0, #0x0 + beq _020216D0 + bl sub_020066F4 +_020216D0: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020216D4 +sub_020216D4: ; 0x020216D4 + push {r3, lr} + add r3, r1, #0x0 + add r1, r2, #0x0 + str r3, [r0, #0x0] + ldr r2, _020216E8 ; =0x020EE66C + lsl r3, r3, #0x2 + ldr r2, [r2, r3] + blx r2 + pop {r3, pc} + nop +_020216E8: .word 0x020EE66C + + thumb_func_start sub_020216EC +sub_020216EC: ; 0x020216EC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0xc] + ldr r0, [r5, #0x64] + add r4, r2, #0x0 + mul r4, r0 + add r0, r1, #0x0 + add r1, r4, #0x0 + bl sub_02016998 + str r0, [r5, #0x10] + ldr r0, _02021718 ; =sub_02021774 + add r3, r4, #0x0 + str r0, [r5, #0x4] + ldr r0, [r5, #0x10] + str r0, [sp, #0x0] + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + ldr r2, [r5, #0x5c] + bl sub_02006814 + pop {r3-r5, pc} + .balign 4 +_02021718: .word sub_02021774 + 1 + + thumb_func_start sub_0202171C +sub_0202171C: ; 0x0202171C + ldr r1, _02021724 ; =sub_0202181C + str r1, [r0, #0x4] + bx lr + nop +_02021724: .word sub_0202181C + 1 + + thumb_func_start sub_02021728 +sub_02021728: ; 0x02021728 + push {r3, lr} + ldr r1, [r0, #0x0] + lsl r2, r1, #0x2 + ldr r1, _02021738 ; =0x020EE674 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + nop +_02021738: .word 0x020EE674 + + thumb_func_start sub_0202173C +sub_0202173C: ; 0x0202173C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x10] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x10] + pop {r4, pc} + + thumb_func_start sub_0202174C +sub_0202174C: ; 0x0202174C + bx lr + .balign 4 + + thumb_func_start sub_02021750 +sub_02021750: ; 0x02021750 + push {r3, lr} + ldr r3, [r0, #0x64] + cmp r1, r3 + bhi _02021764 + sub r1, r1, #0x1 + lsl r1, r1, #0x10 + ldr r3, [r0, #0x4] + lsr r1, r1, #0x10 + blx r3 + pop {r3, pc} +_02021764: + add r0, r2, #0x0 + mov r1, #0x0 + add r0, #0x80 + strb r1, [r0, #0x0] + add r2, #0x81 + strb r1, [r2, #0x0] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02021774 +sub_02021774: ; 0x02021774 + push {r3-r7, lr} + str r1, [sp, #0x0] + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r1, [r7, #0xc] + add r5, r0, #0x0 + ldr r0, [r7, #0x8] + add r6, r2, #0x0 + mul r5, r1 + ldr r4, [r7, #0x10] + cmp r0, #0x3 + bhi _02021802 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r2, #0 + lsl r6, r4, #0 + lsl r4, r7, #0 + add r0, r4, r5 + add r1, r6, #0x0 + bl sub_0201C100 + b _02021802 +_020217AA: + .byte 0x60, 0x19, 0x31, 0x1C, 0xFA, 0xF7 + .byte 0xA7, 0xFC, 0x60, 0x19, 0x31, 0x1C, 0x10, 0x30, 0x40, 0x31, 0xFA, 0xF7, 0xA1, 0xFC, 0x20, 0xE0 + .byte 0x60, 0x19, 0x31, 0x1C, 0xFA, 0xF7, 0x9C, 0xFC, 0x60, 0x19, 0x31, 0x1C, 0x10, 0x30, 0x20, 0x31 + .byte 0xFA, 0xF7, 0x96, 0xFC, 0x15, 0xE0, 0x60, 0x19, 0x31, 0x1C, 0xFA, 0xF7, 0x91, 0xFC, 0x60, 0x19 + .byte 0x31, 0x1C, 0x10, 0x30, 0x20, 0x31, 0xFA, 0xF7, 0x8B, 0xFC, 0x60, 0x19, 0x31, 0x1C, 0x20, 0x30 + .byte 0x40, 0x31, 0xFA, 0xF7, 0x85, 0xFC, 0x60, 0x19, 0x31, 0x1C, 0x30, 0x30, 0x60, 0x31, 0xFA, 0xF7 + .byte 0x7F, 0xFC +_02021802: + ldr r1, [sp, #0x0] + ldr r2, [r7, #0x70] + add r0, r7, #0x0 + blx r2 + add r1, r6, #0x0 + add r1, #0x80 + add r7, #0x69 + strb r0, [r1, #0x0] + ldrb r0, [r7, #0x0] + add r6, #0x81 + strb r0, [r6, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202181C +sub_0202181C: ; 0x0202181C + push {r3-r7, lr} + add r4, r0, #0x0 + ldr r6, [r4, #0xc] + add r0, #0x14 + str r0, [sp, #0x0] + add r7, r1, #0x0 + add r5, r2, #0x0 + add r2, r7, #0x0 + ldr r3, [r4, #0x5c] + mul r2, r6 + add r2, r3, r2 + ldr r0, [r4, #0x54] + ldr r1, [r4, #0x58] + add r3, r6, #0x0 + bl sub_02006814 + ldr r0, [r4, #0x8] + cmp r0, #0x3 + bhi _020218C0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r2, #0 + lsl r2, r5, #0 + lsl r2, r0, #0x1 + add r0, r4, #0x0 + add r0, #0x14 + add r1, r5, #0x0 + bl sub_0201C100 + b _020218C0 +_02021862: + .byte 0x20, 0x1C, 0x14, 0x30, 0x29, 0x1C, 0xFA, 0xF7, 0x4A, 0xFC, 0x20, 0x1C, 0x29, 0x1C + .byte 0x24, 0x30, 0x40, 0x31, 0xFA, 0xF7, 0x44, 0xFC, 0x22, 0xE0, 0x20, 0x1C, 0x14, 0x30, 0x29, 0x1C + .byte 0xFA, 0xF7, 0x3E, 0xFC, 0x20, 0x1C, 0x29, 0x1C, 0x24, 0x30, 0x20, 0x31, 0xFA, 0xF7, 0x38, 0xFC + .byte 0x16, 0xE0, 0x20, 0x1C, 0x14, 0x30, 0x29, 0x1C, 0xFA, 0xF7, 0x32, 0xFC, 0x20, 0x1C, 0x29, 0x1C + .byte 0x24, 0x30, 0x20, 0x31, 0xFA, 0xF7, 0x2C, 0xFC, 0x20, 0x1C, 0x29, 0x1C, 0x34, 0x30, 0x40, 0x31 + .byte 0xFA, 0xF7, 0x26, 0xFC, 0x20, 0x1C, 0x29, 0x1C, 0x44, 0x30, 0x60, 0x31, 0xFA, 0xF7, 0x20, 0xFC +_020218C0: + ldr r2, [r4, #0x70] + add r0, r4, #0x0 + add r1, r7, #0x0 + blx r2 + add r1, r5, #0x0 + add r1, #0x80 + add r4, #0x69 + strb r0, [r1, #0x0] + ldrb r0, [r4, #0x0] + add r5, #0x81 + strb r0, [r5, #0x0] + pop {r3-r7, pc} + + thumb_func_start sub_020218D8 +sub_020218D8: ; 0x020218D8 + push {r3-r7, lr} + add r4, r1, #0x0 + ldrh r1, [r4, #0x0] + add r5, r0, #0x0 + ldr r0, _0202191C ; =0x0000FFFF + add r7, r2, #0x0 + mov r6, #0x0 + cmp r1, r0 + beq _02021916 +_020218EA: + ldr r0, _02021920 ; =0x0000FFFE + cmp r1, r0 + bne _02021900 + add r0, r4, #0x0 + bl sub_0201B8B8 + add r4, r0, #0x0 + ldrh r1, [r4, #0x0] + ldr r0, _0202191C ; =0x0000FFFF + cmp r1, r0 + beq _02021916 +_02021900: + ldr r2, [r5, #0x70] + add r0, r5, #0x0 + sub r1, r1, #0x1 + blx r2 + add r4, r4, #0x2 + add r0, r7, r0 + add r6, r6, r0 + ldrh r1, [r4, #0x0] + ldr r0, _0202191C ; =0x0000FFFF + cmp r1, r0 + bne _020218EA +_02021916: + sub r0, r6, r7 + pop {r3-r7, pc} + nop +_0202191C: .word 0x0000FFFF +_02021920: .word 0x0000FFFE + + thumb_func_start sub_02021924 +sub_02021924: ; 0x02021924 + ldr r0, [r0, #0x74] + ldrb r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start sub_0202192C +sub_0202192C: ; 0x0202192C + add r0, #0x68 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02021934 +sub_02021934: ; 0x02021934 + push {r3-r7, lr} + add r5, r1, #0x0 + ldrh r1, [r5, #0x0] + add r7, r0, #0x0 + mov r4, #0x0 + ldr r0, _02021994 ; =0x0000FFFF + add r6, r2, #0x0 + str r4, [sp, #0x0] + cmp r1, r0 + beq _02021986 +_02021948: + ldr r0, _02021998 ; =0x0000FFFE + cmp r1, r0 + bne _02021958 + add r0, r5, #0x0 + bl sub_0201B8B8 + add r5, r0, #0x0 + b _0202197E +_02021958: + mov r0, #0xe + lsl r0, r0, #0xc + cmp r1, r0 + bne _02021970 + ldr r0, [sp, #0x0] + sub r1, r4, r6 + cmp r0, r1 + bhs _0202196A + str r1, [sp, #0x0] +_0202196A: + mov r4, #0x0 + add r5, r5, #0x2 + b _0202197E +_02021970: + ldr r2, [r7, #0x70] + add r0, r7, #0x0 + sub r1, r1, #0x1 + blx r2 + add r0, r6, r0 + add r4, r4, r0 + add r5, r5, #0x2 +_0202197E: + ldrh r1, [r5, #0x0] + ldr r0, _02021994 ; =0x0000FFFF + cmp r1, r0 + bne _02021948 +_02021986: + ldr r0, [sp, #0x0] + sub r1, r4, r6 + cmp r0, r1 + bhs _02021990 + str r1, [sp, #0x0] +_02021990: + ldr r0, [sp, #0x0] + pop {r3-r7, pc} + .balign 4 +_02021994: .word 0x0000FFFF +_02021998: .word 0x0000FFFE + + thumb_func_start sub_0202199C +sub_0202199C: ; 0x0202199C + push {r3-r7, lr} + add r5, r1, #0x0 + ldrh r1, [r5, #0x0] + add r6, r0, #0x0 + ldr r0, _020219EC ; =0x0000FFFF + mov r4, #0x0 + cmp r1, r0 + beq _020219E8 + sub r7, r0, #0x1 +_020219AE: + cmp r1, r7 + bne _020219D4 + add r0, r5, #0x0 + bl sub_0201B8E0 + ldr r1, _020219F0 ; =0x00000203 + cmp r0, r1 + bne _020219CA + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0201B914 + add r4, r0, #0x0 + sub r4, #0xc +_020219CA: + add r0, r5, #0x0 + bl sub_0201B8B8 + add r5, r0, #0x0 + b _020219E0 +_020219D4: + ldr r2, [r6, #0x70] + add r0, r6, #0x0 + sub r1, r1, #0x1 + blx r2 + add r4, r4, r0 + add r5, r5, #0x2 +_020219E0: + ldrh r1, [r5, #0x0] + ldr r0, _020219EC ; =0x0000FFFF + cmp r1, r0 + bne _020219AE +_020219E8: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_020219EC: .word 0x0000FFFF +_020219F0: .word 0x00000203 + + thumb_func_start sub_020219F4 +sub_020219F4: ; 0x020219F4 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + lsl r1, r4, #0x1 + add r1, #0xa + bl sub_02016998 + cmp r0, #0x0 + beq _02021A14 + ldr r1, _02021A18 ; =0xB6F8D2EC + str r1, [r0, #0x4] + strh r4, [r0, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x2] + ldr r1, _02021A1C ; =0x0000FFFF + strh r1, [r0, #0x8] +_02021A14: + pop {r4, pc} + nop +_02021A18: .word 0xB6F8D2EC +_02021A1C: .word 0x0000FFFF + + thumb_func_start sub_02021A20 +sub_02021A20: ; 0x02021A20 + push {r4, lr} + add r4, r0, #0x0 + bne _02021A2A + bl sub_02020C2C +_02021A2A: + ldr r1, [r4, #0x4] + ldr r0, _02021A44 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021A36 + bl sub_02020C2C +_02021A36: + ldr r0, _02021A48 ; =0xB6F8D2ED + str r0, [r4, #0x4] + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + nop +_02021A44: .word 0xB6F8D2EC +_02021A48: .word 0xB6F8D2ED + + thumb_func_start sub_02021A4C +sub_02021A4C: ; 0x02021A4C + push {r4, lr} + add r4, r0, #0x0 + bne _02021A56 + bl sub_02020C2C +_02021A56: + ldr r1, [r4, #0x4] + ldr r0, _02021A6C ; =0xB6F8D2EC + cmp r1, r0 + beq _02021A62 + bl sub_02020C2C +_02021A62: + mov r0, #0x0 + strh r0, [r4, #0x2] + ldr r0, _02021A70 ; =0x0000FFFF + strh r0, [r4, #0x8] + pop {r4, pc} + .balign 4 +_02021A6C: .word 0xB6F8D2EC +_02021A70: .word 0x0000FFFF + + thumb_func_start sub_02021A74 +sub_02021A74: ; 0x02021A74 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021A82 + bl sub_02020C2C +_02021A82: + ldr r1, [r5, #0x4] + ldr r0, _02021AC8 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021A8E + bl sub_02020C2C +_02021A8E: + cmp r4, #0x0 + bne _02021A96 + bl sub_02020C2C +_02021A96: + ldr r1, [r4, #0x4] + ldr r0, _02021AC8 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021AA2 + bl sub_02020C2C +_02021AA2: + ldrh r2, [r4, #0x2] + ldrh r0, [r5, #0x0] + cmp r0, r2 + bls _02021AC0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r2, #0x1 + add r0, #0x8 + add r1, #0x8 + lsl r2, r2, #0x1 + blx sub_020DF438 + ldrh r0, [r4, #0x2] + strh r0, [r5, #0x2] + pop {r3-r5, pc} +_02021AC0: + bl sub_02020C2C + pop {r3-r5, pc} + nop +_02021AC8: .word 0xB6F8D2EC + + thumb_func_start sub_02021ACC +sub_02021ACC: ; 0x02021ACC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021ADA + bl sub_02020C2C +_02021ADA: + ldr r1, [r5, #0x4] + ldr r0, _02021B00 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021AE6 + bl sub_02020C2C +_02021AE6: + ldrh r0, [r5, #0x2] + add r1, r4, #0x0 + add r0, r0, #0x1 + bl sub_020219F4 + add r4, r0, #0x0 + beq _02021AFA + add r1, r5, #0x0 + bl sub_02021A74 +_02021AFA: + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_02021B00: .word 0xB6F8D2EC + + thumb_func_start sub_02021B04 +sub_02021B04: ; 0x02021B04 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, [sp, #0x20] + add r6, r1, #0x0 + add r7, r3, #0x0 + str r2, [sp, #0x0] + str r0, [sp, #0x20] + cmp r5, #0x0 + bne _02021B1C + bl sub_02020C2C +_02021B1C: + ldr r1, [r5, #0x4] + ldr r0, _02021C1C ; =0xB6F8D2EC + cmp r1, r0 + beq _02021B28 + bl sub_02020C2C +_02021B28: + cmp r6, #0x0 + bge _02021B30 + mov r4, #0x1 + b _02021B32 +_02021B30: + mov r4, #0x0 +_02021B32: + ldr r0, [sp, #0x0] + ldrh r1, [r5, #0x0] + add r0, r0, r4 + cmp r1, r0 + bls _02021C14 + ldr r0, [sp, #0x20] + cmp r0, #0x0 + bne _02021B48 + ldr r0, _02021C20 ; =0x020EE67C + str r0, [sp, #0x4] + b _02021B4C +_02021B48: + ldr r0, _02021C24 ; =0x020EE690 + str r0, [sp, #0x4] +_02021B4C: + add r0, r5, #0x0 + bl sub_02021A4C + cmp r4, #0x0 + beq _02021B74 + mov r0, #0x0 + mvn r0, r0 + mul r6, r0 + ldr r0, [sp, #0x20] + cmp r0, #0x0 + bne _02021B66 + mov r0, #0xf1 + b _02021B68 +_02021B66: + ldr r0, _02021C28 ; =0x000001BE +_02021B68: + ldrh r2, [r5, #0x2] + add r1, r2, #0x1 + strh r1, [r5, #0x2] + lsl r1, r2, #0x1 + add r1, r5, r1 + strh r0, [r1, #0x8] +_02021B74: + ldr r0, [sp, #0x0] + lsl r1, r0, #0x2 + ldr r0, _02021C2C ; =0x020EE6A0 + ldr r4, [r0, r1] + cmp r4, #0x0 + beq _02021C06 +_02021B80: + add r0, r6, #0x0 + add r1, r4, #0x0 + blx sub_020EBE8C + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + add r0, r4, #0x0 + mul r0, r1 + sub r6, r6, r0 + cmp r7, #0x2 + bne _02021BB4 + cmp r1, #0xa + bhs _02021BA2 + ldr r0, [sp, #0x4] + lsl r1, r1, #0x1 + ldrh r1, [r0, r1] + b _02021BA4 +_02021BA2: + mov r1, #0xe2 +_02021BA4: + ldrh r0, [r5, #0x2] + add r2, r0, #0x0 + add r2, r2, #0x1 + lsl r0, r0, #0x1 + strh r2, [r5, #0x2] + add r0, r5, r0 + strh r1, [r0, #0x8] + b _02021BFA +_02021BB4: + cmp r1, #0x0 + bne _02021BBC + cmp r4, #0x1 + bne _02021BDC +_02021BBC: + mov r7, #0x2 + cmp r1, #0xa + bhs _02021BCA + ldr r0, [sp, #0x4] + lsl r1, r1, #0x1 + ldrh r1, [r0, r1] + b _02021BCC +_02021BCA: + mov r1, #0xe2 +_02021BCC: + ldrh r0, [r5, #0x2] + add r2, r0, #0x0 + add r2, r2, #0x1 + lsl r0, r0, #0x1 + strh r2, [r5, #0x2] + add r0, r5, r0 + strh r1, [r0, #0x8] + b _02021BFA +_02021BDC: + cmp r7, #0x1 + bne _02021BFA + ldr r0, [sp, #0x20] + cmp r0, #0x0 + bne _02021BEA + mov r1, #0x1 + b _02021BEC +_02021BEA: + ldr r1, _02021C30 ; =0x000001E2 +_02021BEC: + ldrh r0, [r5, #0x2] + add r2, r0, #0x0 + add r2, r2, #0x1 + lsl r0, r0, #0x1 + strh r2, [r5, #0x2] + add r0, r5, r0 + strh r1, [r0, #0x8] +_02021BFA: + add r0, r4, #0x0 + mov r1, #0xa + blx sub_020EBE8C + add r4, r0, #0x0 + bne _02021B80 +_02021C06: + ldrh r0, [r5, #0x2] + ldr r1, _02021C34 ; =0x0000FFFF + add sp, #0x8 + lsl r0, r0, #0x1 + add r0, r5, r0 + strh r1, [r0, #0x8] + pop {r3-r7, pc} +_02021C14: + bl sub_02020C2C + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02021C1C: .word 0xB6F8D2EC +_02021C20: .word 0x020EE67C +_02021C24: .word 0x020EE690 +_02021C28: .word 0x000001BE +_02021C2C: .word 0x020EE6A0 +_02021C30: .word 0x000001E2 +_02021C34: .word 0x0000FFFF + + thumb_func_start sub_02021C38 +sub_02021C38: ; 0x02021C38 + push {r3-r7, lr} + sub sp, #0x10 + str r1, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x8] + str r1, [sp, #0xc] + add r5, r1, #0x0 + ldrh r1, [r0, #0x2] + mov r7, #0x1 + cmp r1, #0x12 + bls _02021C56 + ldr r0, [sp, #0x8] + add sp, #0x10 + add r1, r0, #0x0 + pop {r3-r7, pc} +_02021C56: + sub r1, r1, #0x1 + str r1, [sp, #0x4] + bmi _02021CCC + lsl r1, r1, #0x1 + add r4, r0, r1 +_02021C60: + ldrh r6, [r4, #0x8] + mov r3, #0xa + mov r0, #0x0 + add r1, r6, #0x0 + sub r1, #0xa2 + asr r2, r1, #0x1f + sub r3, r1, r3 + mov r12, r2 + mov r3, r12 + sbc r3, r0 + blo _02021C98 + ldr r0, _02021CDC ; =0x00000121 + mov r3, #0xa + sub r1, r6, r0 + asr r2, r1, #0x1f + mov r0, #0x0 + sub r3, r1, r3 + mov r12, r2 + mov r3, r12 + sbc r3, r0 + blo _02021C98 + ldr r0, [sp, #0x0] + mov r1, #0x0 + str r1, [r0, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + add sp, #0x10 + pop {r3-r7, pc} +_02021C98: + add r0, r1, #0x0 + add r1, r2, #0x0 + add r2, r7, #0x0 + add r3, r5, #0x0 + blx sub_020EBC30 + add r2, r1, #0x0 + ldr r1, [sp, #0x8] + add r0, r1, r0 + str r0, [sp, #0x8] + ldr r0, [sp, #0xc] + adc r0, r2 + str r0, [sp, #0xc] + add r0, r7, #0x0 + add r1, r5, #0x0 + mov r2, #0xa + mov r3, #0x0 + blx sub_020EBC30 + add r7, r0, #0x0 + ldr r0, [sp, #0x4] + add r5, r1, #0x0 + sub r4, r4, #0x2 + sub r0, r0, #0x1 + str r0, [sp, #0x4] + bpl _02021C60 +_02021CCC: + ldr r0, [sp, #0x0] + mov r1, #0x1 + str r1, [r0, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + add sp, #0x10 + pop {r3-r7, pc} + nop +_02021CDC: .word 0x00000121 + + thumb_func_start sub_02021CE0 +sub_02021CE0: ; 0x02021CE0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021CEE + bl sub_02020C2C +_02021CEE: + ldr r1, [r5, #0x4] + ldr r0, _02021D34 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021CFA + bl sub_02020C2C +_02021CFA: + cmp r4, #0x0 + bne _02021D02 + bl sub_02020C2C +_02021D02: + ldr r1, [r4, #0x4] + ldr r0, _02021D34 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021D0E + bl sub_02020C2C +_02021D0E: + ldrh r1, [r5, #0x8] + ldrh r0, [r4, #0x8] + cmp r1, r0 + bne _02021D2E + ldr r0, _02021D38 ; =0x0000FFFF +_02021D18: + ldrh r1, [r5, #0x8] + cmp r1, r0 + bne _02021D22 + mov r0, #0x0 + pop {r3-r5, pc} +_02021D22: + add r5, r5, #0x2 + add r4, r4, #0x2 + ldrh r2, [r5, #0x8] + ldrh r1, [r4, #0x8] + cmp r2, r1 + beq _02021D18 +_02021D2E: + mov r0, #0x1 + pop {r3-r5, pc} + nop +_02021D34: .word 0xB6F8D2EC +_02021D38: .word 0x0000FFFF + + thumb_func_start sub_02021D3C +sub_02021D3C: ; 0x02021D3C + push {r4, lr} + add r4, r0, #0x0 + bne _02021D46 + bl sub_02020C2C +_02021D46: + ldr r1, [r4, #0x4] + ldr r0, _02021D58 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021D52 + bl sub_02020C2C +_02021D52: + ldrh r0, [r4, #0x2] + pop {r4, pc} + nop +_02021D58: .word 0xB6F8D2EC + + thumb_func_start sub_02021D5C +sub_02021D5C: ; 0x02021D5C + push {r3-r5, lr} + add r4, r0, #0x0 + bne _02021D66 + bl sub_02020C2C +_02021D66: + ldr r1, [r4, #0x4] + ldr r0, _02021D98 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021D72 + bl sub_02020C2C +_02021D72: + ldrh r1, [r4, #0x2] + mov r3, #0x0 + mov r0, #0x1 + cmp r1, #0x0 + ble _02021D94 + mov r1, #0xe + add r5, r4, #0x0 + lsl r1, r1, #0xc +_02021D82: + ldrh r2, [r5, #0x8] + cmp r2, r1 + bne _02021D8A + add r0, r0, #0x1 +_02021D8A: + ldrh r2, [r4, #0x2] + add r3, r3, #0x1 + add r5, r5, #0x2 + cmp r3, r2 + blt _02021D82 +_02021D94: + pop {r3-r5, pc} + nop +_02021D98: .word 0xB6F8D2EC + + thumb_func_start sub_02021D9C +sub_02021D9C: ; 0x02021D9C + push {r3-r7, lr} + add r5, r1, #0x0 + add r7, r0, #0x0 + add r6, r2, #0x0 + cmp r5, #0x0 + bne _02021DAC + bl sub_02020C2C +_02021DAC: + ldr r1, [r5, #0x4] + ldr r0, _02021E24 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021DB8 + bl sub_02020C2C +_02021DB8: + cmp r7, #0x0 + bne _02021DC0 + bl sub_02020C2C +_02021DC0: + ldr r1, [r7, #0x4] + ldr r0, _02021E24 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021DCC + bl sub_02020C2C +_02021DCC: + mov r4, #0x0 + cmp r6, #0x0 + beq _02021DF6 + ldrh r0, [r5, #0x2] + cmp r0, #0x0 + ble _02021DF6 + mov r1, #0xe + add r0, r5, #0x0 + lsl r1, r1, #0xc +_02021DDE: + ldrh r2, [r0, #0x8] + cmp r2, r1 + bne _02021DEC + sub r6, r6, #0x1 + bne _02021DEC + add r4, r4, #0x1 + b _02021DF6 +_02021DEC: + ldrh r2, [r5, #0x2] + add r4, r4, #0x1 + add r0, r0, #0x2 + cmp r4, r2 + blt _02021DDE +_02021DF6: + add r0, r7, #0x0 + bl sub_02021A4C + ldrh r0, [r5, #0x2] + cmp r4, r0 + bge _02021E20 + lsl r0, r4, #0x1 + add r6, r5, r0 +_02021E06: + ldrh r1, [r6, #0x8] + mov r0, #0xe + lsl r0, r0, #0xc + cmp r1, r0 + beq _02021E20 + add r0, r7, #0x0 + bl sub_02021FB0 + ldrh r0, [r5, #0x2] + add r4, r4, #0x1 + add r6, r6, #0x2 + cmp r4, r0 + blt _02021E06 +_02021E20: + pop {r3-r7, pc} + nop +_02021E24: .word 0xB6F8D2EC + + thumb_func_start sub_02021E28 +sub_02021E28: ; 0x02021E28 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021E36 + bl sub_02020C2C +_02021E36: + ldr r1, [r5, #0x4] + ldr r0, _02021E84 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021E42 + bl sub_02020C2C +_02021E42: + mov r0, #0x0 + strh r0, [r5, #0x2] + ldrh r1, [r4, #0x0] + ldr r0, _02021E88 ; =0x0000FFFF + cmp r1, r0 + beq _02021E76 + add r1, r0, #0x0 +_02021E50: + ldrh r2, [r5, #0x0] + ldrh r0, [r5, #0x2] + sub r2, r2, #0x1 + cmp r0, r2 + blt _02021E60 + bl sub_02020C2C + b _02021E76 +_02021E60: + add r2, r0, #0x0 + add r2, r2, #0x1 + strh r2, [r5, #0x2] + ldrh r2, [r4, #0x0] + lsl r0, r0, #0x1 + add r0, r5, r0 + add r4, r4, #0x2 + strh r2, [r0, #0x8] + ldrh r0, [r4, #0x0] + cmp r0, r1 + bne _02021E50 +_02021E76: + ldrh r0, [r5, #0x2] + ldr r1, _02021E88 ; =0x0000FFFF + lsl r0, r0, #0x1 + add r0, r5, r0 + strh r1, [r0, #0x8] + pop {r3-r5, pc} + nop +_02021E84: .word 0xB6F8D2EC +_02021E88: .word 0x0000FFFF + + thumb_func_start sub_02021E8C +sub_02021E8C: ; 0x02021E8C + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r2, #0x0 + cmp r5, #0x0 + bne _02021E9C + bl sub_02020C2C +_02021E9C: + ldr r1, [r5, #0x4] + ldr r0, _02021EE8 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021EA8 + bl sub_02020C2C +_02021EA8: + ldrh r0, [r5, #0x0] + cmp r4, r0 + bhi _02021EE2 + lsl r6, r4, #0x1 + add r0, r5, #0x0 + add r0, #0x8 + add r1, r7, #0x0 + add r2, r6, #0x0 + blx sub_020DF438 + mov r2, #0x0 + cmp r4, #0x0 + bls _02021ED4 + ldr r0, _02021EEC ; =0x0000FFFF + add r3, r5, #0x0 +_02021EC6: + ldrh r1, [r3, #0x8] + cmp r1, r0 + beq _02021ED4 + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, r4 + blo _02021EC6 +_02021ED4: + strh r2, [r5, #0x2] + cmp r2, r4 + bne _02021EE6 + ldr r1, _02021EEC ; =0x0000FFFF + add r0, r5, r6 + strh r1, [r0, #0x6] + pop {r3-r7, pc} +_02021EE2: + bl sub_02020C2C +_02021EE6: + pop {r3-r7, pc} + .balign 4 +_02021EE8: .word 0xB6F8D2EC +_02021EEC: .word 0x0000FFFF + + thumb_func_start sub_02021EF0 +sub_02021EF0: ; 0x02021EF0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + cmp r5, #0x0 + bne _02021F00 + bl sub_02020C2C +_02021F00: + ldr r1, [r5, #0x4] + ldr r0, _02021F28 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021F0C + bl sub_02020C2C +_02021F0C: + ldrh r0, [r5, #0x2] + add r2, r0, #0x1 + cmp r2, r4 + bhi _02021F22 + add r5, #0x8 + add r0, r6, #0x0 + add r1, r5, #0x0 + lsl r2, r2, #0x1 + blx sub_020DF438 + pop {r4-r6, pc} +_02021F22: + bl sub_02020C2C + pop {r4-r6, pc} + .balign 4 +_02021F28: .word 0xB6F8D2EC + + thumb_func_start sub_02021F2C +sub_02021F2C: ; 0x02021F2C + push {r4, lr} + add r4, r0, #0x0 + bne _02021F36 + bl sub_02020C2C +_02021F36: + ldr r1, [r4, #0x4] + ldr r0, _02021F48 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021F42 + bl sub_02020C2C +_02021F42: + add r4, #0x8 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02021F48: .word 0xB6F8D2EC + + thumb_func_start sub_02021F4C +sub_02021F4C: ; 0x02021F4C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021F5A + bl sub_02020C2C +_02021F5A: + ldr r1, [r5, #0x4] + ldr r0, _02021FAC ; =0xB6F8D2EC + cmp r1, r0 + beq _02021F66 + bl sub_02020C2C +_02021F66: + cmp r4, #0x0 + bne _02021F6E + bl sub_02020C2C +_02021F6E: + ldr r1, [r4, #0x4] + ldr r0, _02021FAC ; =0xB6F8D2EC + cmp r1, r0 + beq _02021F7A + bl sub_02020C2C +_02021F7A: + ldrh r2, [r4, #0x2] + ldrh r0, [r5, #0x2] + add r1, r0, r2 + add r3, r1, #0x1 + ldrh r1, [r5, #0x0] + cmp r3, r1 + bgt _02021FA6 + add r1, r5, #0x0 + add r1, #0x8 + lsl r0, r0, #0x1 + add r0, r1, r0 + add r1, r4, #0x0 + add r2, r2, #0x1 + add r1, #0x8 + lsl r2, r2, #0x1 + blx sub_020DF438 + ldrh r1, [r5, #0x2] + ldrh r0, [r4, #0x2] + add r0, r1, r0 + strh r0, [r5, #0x2] + pop {r3-r5, pc} +_02021FA6: + bl sub_02020C2C + pop {r3-r5, pc} + .balign 4 +_02021FAC: .word 0xB6F8D2EC + + thumb_func_start sub_02021FB0 +sub_02021FB0: ; 0x02021FB0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021FBE + bl sub_02020C2C +_02021FBE: + ldr r1, [r5, #0x4] + ldr r0, _02021FF0 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021FCA + bl sub_02020C2C +_02021FCA: + ldrh r2, [r5, #0x2] + ldrh r0, [r5, #0x0] + add r1, r2, #0x1 + cmp r1, r0 + bge _02021FE8 + lsl r0, r2, #0x1 + strh r1, [r5, #0x2] + add r0, r5, r0 + strh r4, [r0, #0x8] + ldrh r0, [r5, #0x2] + ldr r1, _02021FF4 ; =0x0000FFFF + lsl r0, r0, #0x1 + add r0, r5, r0 + strh r1, [r0, #0x8] + pop {r3-r5, pc} +_02021FE8: + bl sub_02020C2C + pop {r3-r5, pc} + nop +_02021FF0: .word 0xB6F8D2EC +_02021FF4: .word 0x0000FFFF + + thumb_func_start sub_02021FF8 +sub_02021FF8: ; 0x02021FF8 + push {r4, lr} + add r4, r0, #0x0 + bne _02022002 + bl sub_02020C2C +_02022002: + ldr r1, [r4, #0x4] + ldr r0, _02022028 ; =0xB6F8D2EC + cmp r1, r0 + beq _0202200E + bl sub_02020C2C +_0202200E: + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + beq _02022026 + ldrh r1, [r4, #0x8] + ldr r0, _0202202C ; =0x00000145 + cmp r1, r0 + blo _02022026 + add r0, #0x19 + cmp r1, r0 + bhi _02022026 + sub r1, #0x1a + strh r1, [r4, #0x8] +_02022026: + pop {r4, pc} + .balign 4 +_02022028: .word 0xB6F8D2EC +_0202202C: .word 0x00000145 + + thumb_func_start sub_02022030 +sub_02022030: ; 0x02022030 + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + beq _02022044 + ldrh r1, [r0, #0x8] + mov r0, #0xf1 + lsl r0, r0, #0x8 + cmp r1, r0 + bne _02022044 + mov r0, #0x1 + bx lr +_02022044: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02022048 +sub_02022048: ; 0x02022048 + push {r3-r7, lr} + add r4, r1, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02022030 + cmp r0, #0x0 + beq _020220B2 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x0] + ldrh r0, [r0, #0x2] + add r1, #0x8 + ldr r7, _020220BC ; =0x000001FF + lsl r0, r0, #0x1 + add r3, r1, r0 + mov r0, #0x0 + add r4, #0xa + add r1, r0, #0x0 +_0202206C: + ldrh r2, [r4, #0x0] + asr r2, r0 + and r2, r7 + lsl r2, r2, #0x10 + add r0, #0x9 + lsr r2, r2, #0x10 + cmp r0, #0xf + blt _02022094 + add r4, r4, #0x2 + sub r0, #0xf + beq _02022094 + ldrh r6, [r4, #0x0] + mov r5, #0x9 + sub r5, r5, r0 + lsl r6, r5 + ldr r5, _020220BC ; =0x000001FF + and r5, r6 + orr r2, r5 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 +_02022094: + ldr r5, _020220BC ; =0x000001FF + cmp r2, r5 + beq _020220A2 + strh r2, [r3, #0x0] + add r3, r3, #0x2 + add r1, r1, #0x1 + b _0202206C +_020220A2: + ldr r0, _020220C0 ; =0x0000FFFF + strh r0, [r3, #0x0] + ldr r0, [sp, #0x0] + ldrh r0, [r0, #0x2] + add r1, r0, r1 + ldr r0, [sp, #0x0] + strh r1, [r0, #0x2] + pop {r3-r7, pc} +_020220B2: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl sub_02021F4C + pop {r3-r7, pc} + .balign 4 +_020220BC: .word 0x000001FF +_020220C0: .word 0x0000FFFF + + thumb_func_start sub_020220C4 +sub_020220C4: ; 0x020220C4 + push {r3-r7, lr} + add r7, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + str r3, [sp, #0x0] + cmp r7, #0x0 + bne _020220D6 + bl sub_02020C2C +_020220D6: + ldr r0, [sp, #0x18] + mov r1, #0x14 + bl sub_02016998 + add r4, r0, #0x0 + beq _0202211C + str r5, [r4, #0x0] + str r7, [r4, #0x4] + ldr r0, [sp, #0x0] + str r6, [r4, #0x8] + str r0, [r4, #0xc] + ldr r0, [sp, #0x18] + lsl r1, r7, #0x2 + bl sub_02016998 + str r0, [r4, #0x10] + cmp r0, #0x0 + beq _02022114 + mov r6, #0x0 + cmp r7, #0x0 + bls _0202211C + add r5, r6, #0x0 +_02022102: + ldr r0, [r4, #0x10] + add r0, r0, r5 + bl sub_02022120 + add r6, r6, #0x1 + add r5, r5, #0x4 + cmp r6, r7 + blo _02022102 + b _0202211C +_02022114: + add r0, r4, #0x0 + bl sub_02016A18 + mov r4, #0x0 +_0202211C: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02022120 +sub_02022120: ; 0x02022120 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strh r1, [r0, #0x2] + bx lr + .balign 4 + + thumb_func_start sub_0202212C +sub_0202212C: ; 0x0202212C + push {r4, lr} + add r4, r0, #0x0 + bne _02022136 + bl sub_02020C2C +_02022136: + ldr r0, [r4, #0x10] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02022144 +sub_02022144: ; 0x02022144 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02020A98 + str r0, [sp, #0x0] + cmp r0, #0x0 + beq _02022190 + bl sub_02020AA4 + str r0, [sp, #0x4] + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + bls _020221AE + add r4, r6, #0x0 +_02022164: + ldr r0, [r5, #0x10] + add r0, r0, r4 + ldrb r0, [r0, #0x1] + cmp r0, #0x0 + ldr r0, [r5, #0x0] + beq _02022178 + add r0, r0, r4 + bl sub_02020A40 + b _0202217E +_02022178: + add r0, r0, r4 + bl sub_02020A6C +_0202217E: + ldr r1, [r5, #0x10] + add r6, r6, #0x1 + add r1, r1, r4 + strb r0, [r1, #0x1] + ldr r0, [r5, #0x4] + add r4, r4, #0x4 + cmp r6, r0 + blo _02022164 + b _020221AE +_02022190: + ldr r0, [r5, #0x4] + mov r3, #0x0 + str r3, [sp, #0x4] + cmp r0, #0x0 + bls _020221AE + add r2, r3, #0x0 + add r1, r3, #0x0 +_0202219E: + ldr r0, [r5, #0x10] + add r3, r3, #0x1 + add r0, r0, r2 + strb r1, [r0, #0x1] + ldr r0, [r5, #0x4] + add r2, r2, #0x4 + cmp r3, r0 + blo _0202219E +_020221AE: + mov r4, #0x0 + cmp r0, #0x0 + bls _020221E4 + add r7, r4, #0x0 +_020221B6: + ldr r3, [r5, #0x10] + ldr r1, [sp, #0x0] + add r0, r3, r7 + ldrb r3, [r3, r7] + ldr r2, [sp, #0x4] + lsl r6, r3, #0x2 + ldr r3, _020221E8 ; =0x020EE6CC + ldr r3, [r3, r6] + blx r3 + add r1, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + beq _020221DA + ldr r2, [r5, #0xc] + ldr r3, [r5, #0x8] + add r0, r4, #0x0 + blx r3 +_020221DA: + ldr r0, [r5, #0x4] + add r4, r4, #0x1 + add r7, r7, #0x4 + cmp r4, r0 + blo _020221B6 +_020221E4: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020221E8: .word 0x020EE6CC + + thumb_func_start sub_020221EC +sub_020221EC: ; 0x020221EC + push {r3, lr} + ldrb r1, [r0, #0x1] + cmp r1, #0x0 + beq _02022202 + cmp r2, #0x0 + beq _02022202 + mov r1, #0x1 + bl sub_0202223C + mov r0, #0x0 + pop {r3, pc} +_02022202: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + + thumb_func_start sub_02022208 +sub_02022208: ; 0x02022208 + push {r3, lr} + ldrb r2, [r0, #0x1] + cmp r2, #0x0 + beq _02022220 + ldrh r2, [r0, #0x2] + ldr r1, _02022238 ; =0x0000FFFF + cmp r2, r1 + bhs _0202221C + add r1, r2, #0x1 + strh r1, [r0, #0x2] +_0202221C: + mov r0, #0x2 + pop {r3, pc} +_02022220: + cmp r1, #0x0 + beq _0202222E + mov r1, #0x0 + bl sub_0202223C + mov r0, #0x3 + pop {r3, pc} +_0202222E: + mov r1, #0x0 + bl sub_0202223C + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_02022238: .word 0x0000FFFF + + thumb_func_start sub_0202223C +sub_0202223C: ; 0x0202223C + strb r1, [r0, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x2] + bx lr + + thumb_func_start sub_02022244 +sub_02022244: ; 0x02022244 + push {r3-r4} + ldr r3, [r0, #0xc] + mov r2, #0x0 + sub r3, r3, #0x1 + beq _02022262 + ldr r4, [r0, #0x0] +_02022250: + ldrh r3, [r4, #0x2] + cmp r3, r1 + bhi _02022262 + ldr r3, [r0, #0xc] + add r2, r2, #0x1 + sub r3, r3, #0x1 + add r4, r4, #0x2 + cmp r2, r3 + blo _02022250 +_02022262: + ldr r1, [r0, #0x4] + ldrb r3, [r1, r2] + add r1, sp, #0x0 + strb r3, [r1, #0x0] + ldr r0, [r0, #0x8] + ldrb r2, [r0, r2] + strb r2, [r1, #0x1] + ldrb r0, [r1, #0x0] + lsl r1, r2, #0x8 + orr r0, r1 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_0202227C +sub_0202227C: ; 0x0202227C + ldr r2, [r0, #0x0] + str r2, [r1, #0xc] + add r2, r0, #0x4 + str r2, [r1, #0x0] + ldr r0, [r1, #0xc] + lsl r0, r0, #0x1 + add r2, r2, r0 + str r2, [r1, #0x4] + ldr r0, [r1, #0xc] + add r0, r2, r0 + str r0, [r1, #0x8] + bx lr + + thumb_func_start sub_02022294 +sub_02022294: ; 0x02022294 + ldr r0, _020222A4 ; =0x021C59BC + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + str r1, [r0, #0x8] + ldr r0, _020222A8 ; =0x021C59BC + str r1, [r0, #0x0] + bx lr + .balign 4 +_020222A4: .word 0x021C59BC +_020222A8: .word 0x021C59BC + + thumb_func_start sub_020222AC +sub_020222AC: ; 0x020222AC + ldr r3, _020222B0 ; =sub_020C7E0C + bx r3 + .balign 4 +_020222B0: .word sub_020C7E0C + + thumb_func_start sub_020222B4 +sub_020222B4: ; 0x020222B4 + ldr r2, _020222C0 ; =0x021C59BC + str r0, [r2, #0x4] + str r1, [r2, #0x8] + mov r0, #0x1 + str r0, [r2, #0x0] + bx lr + .balign 4 +_020222C0: .word 0x021C59BC + + thumb_func_start sub_020222C4 +sub_020222C4: ; 0x020222C4 + ldr r0, _020222E0 ; =0x021C59BC + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _020222DC + ldr r1, [r0, #0x8] + ldr r2, [r0, #0x4] + lsl r1, r1, #0x1 + orr r2, r1 + ldr r1, _020222E4 ; =0x04000540 + str r2, [r1, #0x0] + mov r1, #0x0 + str r1, [r0, #0x0] +_020222DC: + bx lr + nop +_020222E0: .word 0x021C59BC +_020222E4: .word 0x04000540 + + thumb_func_start sub_020222E8 +sub_020222E8: ; 0x020222E8 + mov r0, #0x5 + lsl r0, r0, #0x18 + bx lr + .balign 4 + + thumb_func_start sub_020222F0 +sub_020222F0: ; 0x020222F0 + mov r0, #0x2 + lsl r0, r0, #0x8 + bx lr + .balign 4 + + thumb_func_start sub_020222F8 +sub_020222F8: ; 0x020222F8 + ldr r0, _020222FC ; =0x05000400 + bx lr + .balign 4 +_020222FC: .word 0x05000400 + + thumb_func_start sub_02022300 +sub_02022300: ; 0x02022300 + mov r0, #0x2 + lsl r0, r0, #0x8 + bx lr + .balign 4 + + thumb_func_start sub_02022308 +sub_02022308: ; 0x02022308 + ldr r0, _0202230C ; =0x05000200 + bx lr + .balign 4 +_0202230C: .word 0x05000200 + + thumb_func_start sub_02022310 +sub_02022310: ; 0x02022310 + ldr r0, _02022314 ; =0x05000600 + bx lr + .balign 4 +_02022314: .word 0x05000600 + + thumb_func_start sub_02022318 +sub_02022318: ; 0x02022318 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r1, #0x0 + mov r1, #0xc + add r6, r0, #0x0 + add r5, r2, #0x0 + str r3, [sp, #0x4] + bl sub_02016998 + add r4, r0, #0x0 + str r6, [r4, #0x0] + blx sub_020BB7F4 + blx sub_020C7D28 + mov r1, #0x2 + ldr r0, _020223B8 ; =0x04000540 + cmp r7, #0x0 + str r1, [r0, #0x0] + bne _02022364 + lsl r0, r5, #0x7 + blx sub_020AFA28 + add r6, r0, #0x0 + ldr r0, [r4, #0x0] + add r1, r6, #0x0 + bl sub_02016998 + str r0, [r4, #0x8] + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r2, [r4, #0x8] + lsl r0, r5, #0x11 + mov r1, #0x0 + add r3, r6, #0x0 + blx sub_020AF9C4 + b _0202236E +_02022364: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x1 + blx sub_020AEB70 +_0202236E: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _02022398 + ldr r0, [sp, #0x20] + lsl r0, r0, #0x8 + blx sub_020AFBFC + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + add r1, r5, #0x0 + bl sub_02016998 + str r0, [r4, #0x4] + ldr r0, [sp, #0x20] + ldr r1, [r4, #0x4] + lsl r0, r0, #0xd + add r2, r5, #0x0 + mov r3, #0x1 + blx sub_020AFBA8 + b _020223A4 +_02022398: + ldr r0, [sp, #0x20] + mov r1, #0x1 + lsl r0, r0, #0x1d + lsr r0, r0, #0x10 + blx sub_020AEB70 +_020223A4: + ldr r0, [sp, #0x24] + cmp r0, #0x0 + beq _020223AE + blx r0 + b _020223B2 +_020223AE: + bl sub_020223D4 +_020223B2: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020223B8: .word 0x04000540 + + thumb_func_start sub_020223BC +sub_020223BC: ; 0x020223BC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + bl sub_02016A18 + ldr r0, [r4, #0x8] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_020223D4 +sub_020223D4: ; 0x020223D4 + push {r3, lr} + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_0201E6E4 + ldr r0, _02022438 ; =0x04000008 + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + strh r2, [r0, #0x0] + add r0, #0x58 + ldrh r2, [r0, #0x0] + ldr r1, _0202243C ; =0xFFFFCFFD + and r1, r2 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + ldr r2, _02022440 ; =0x0000CFEF + and r1, r2 + strh r1, [r0, #0x0] + add r1, r2, #0x0 + ldrh r3, [r0, #0x0] + add r1, #0xc + and r1, r3 + strh r1, [r0, #0x0] + add r1, r2, #0x0 + ldrh r3, [r0, #0x0] + add r1, #0x8 + sub r2, #0x10 + and r1, r3 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + and r1, r2 + strh r1, [r0, #0x0] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + blx sub_020C7C28 + mov r0, #0x0 + ldr r2, _02022444 ; =0x00007FFF + add r1, r0, #0x0 + mov r3, #0x3f + str r0, [sp, #0x0] + blx sub_020C7B3C + ldr r1, _02022448 ; =0xBFFF0000 + ldr r0, _0202244C ; =0x04000580 + str r1, [r0, #0x0] + pop {r3, pc} + .balign 4 +_02022438: .word 0x04000008 +_0202243C: .word 0xFFFFCFFD +_02022440: .word 0x0000CFEF +_02022444: .word 0x00007FFF +_02022448: .word 0xBFFF0000 +_0202244C: .word 0x04000580 + + thumb_func_start sub_02022450 +sub_02022450: ; 0x02022450 + push {r3, lr} + blx sub_020D1CC4 + cmp r0, #0x0 + bne _02022460 + blx sub_020CD850 + pop {r3, pc} +_02022460: + ldr r0, _020224BC ; =0x027FF00C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0202248A + blx sub_020D7228 + mov r2, #0x16 + ldr r0, _020224C0 ; =0x027FFE00 + ldr r1, _020224C4 ; =0x027FF000 + lsl r2, r2, #0x4 + blx sub_020CE3E0 + mov r2, #0x16 + ldr r0, _020224C0 ; =0x027FFE00 + ldr r1, _020224C8 ; =0x027FFA80 + lsl r2, r2, #0x4 + blx sub_020CE3E0 + ldr r1, _020224CC ; =0x4A414441 + ldr r0, _020224BC ; =0x027FF00C + str r1, [r0, #0x0] +_0202248A: + ldr r0, _020224D0 ; =0x020EE6D4 + mov r1, #0x3 + blx sub_020D1148 + ldr r1, _020224C4 ; =0x027FF000 + ldr r2, [r1, #0x48] + str r2, [r0, #0x2c] + ldr r2, [r1, #0x4c] + str r2, [r0, #0x30] + ldr r2, [r1, #0x40] + str r2, [r0, #0x34] + ldr r2, [r1, #0x44] + str r2, [r0, #0x38] + ldr r2, [r1, #0xc] + ldr r0, _020224CC ; =0x4A414441 + cmp r2, r0 + bne _020224B4 + ldrh r1, [r1, #0x10] + ldr r0, _020224D4 ; =0x00003130 + cmp r1, r0 + beq _020224B8 +_020224B4: + blx sub_020CD850 +_020224B8: + pop {r3, pc} + nop +_020224BC: .word 0x027FF00C +_020224C0: .word 0x027FFE00 +_020224C4: .word 0x027FF000 +_020224C8: .word 0x027FFA80 +_020224CC: .word 0x4A414441 +_020224D0: .word 0x020EE6D4 +_020224D4: .word 0x00003130 + + thumb_func_start sub_020224D8 +sub_020224D8: ; 0x020224D8 + push {r4, lr} + sub sp, #0x48 + add r4, r0, #0x0 + add r0, sp, #0x0 + blx sub_020D1C94 + add r0, sp, #0x0 + add r1, r4, #0x0 + blx sub_020D1944 + cmp r0, #0x0 + beq _020224FC + ldr r1, [sp, #0x24] + ldr r0, _02022500 ; =0x027FFC2C + str r1, [r0, #0x0] + mov r0, #0x0 + blx sub_020CD3B4 +_020224FC: + add sp, #0x48 + pop {r4, pc} + .balign 4 +_02022500: .word 0x027FFC2C + + thumb_func_start sub_02022504 +sub_02022504: ; 0x02022504 + ldr r3, _0202250C ; =sub_02022610 + mov r1, #0x1b + bx r3 + nop +_0202250C: .word sub_02022610 + 1 + + thumb_func_start sub_02022510 +sub_02022510: ; 0x02022510 + ldr r3, _02022518 ; =sub_02022610 + mov r1, #0x23 + bx r3 + nop +_02022518: .word sub_02022610 + 1 + + thumb_func_start sub_0202251C +sub_0202251C: ; 0x0202251C + ldr r3, _02022524 ; =sub_02022610 + mov r1, #0x1f + bx r3 + nop +_02022524: .word sub_02022610 + 1 + + thumb_func_start sub_02022528 +sub_02022528: ; 0x02022528 + ldr r3, _02022530 ; =sub_02022610 + mov r1, #0x20 + bx r3 + nop +_02022530: .word sub_02022610 + 1 + + thumb_func_start sub_02022534 +sub_02022534: ; 0x02022534 + push {r3, lr} + add r3, r2, #0x0 + mov r2, #0x0 + bl sub_02023408 + pop {r3, pc} + + thumb_func_start sub_02022540 +sub_02022540: ; 0x02022540 + ldr r3, _02022548 ; =sub_020232BC + add r2, r1, #0x0 + mov r1, #0x0 + bx r3 + .balign 4 +_02022548: .word sub_020232BC + 1 + + thumb_func_start sub_0202254C +sub_0202254C: ; 0x0202254C + push {r4, lr} + ldr r1, _020225E0 ; =0x000204A8 + mov r0, #0x1 + bl sub_02016998 + add r4, r0, #0x0 + ldr r2, _020225E0 ; =0x000204A8 + mov r0, #0x0 + add r1, r4, #0x0 + blx sub_020CE240 + ldr r0, _020225E4 ; =0x021C59C8 + str r4, [r0, #0x0] + bl sub_02023570 + str r0, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + mov r0, #0x1 + str r0, [r4, #0x8] + str r0, [r4, #0xc] + add r0, r4, #0x0 + ldr r1, _020225E8 ; =0x00001021 + add r0, #0x14 + blx sub_020DDF60 + ldr r0, _020225EC ; =0x00020224 + add r0, r4, r0 + bl sub_020230E4 + ldr r0, _020225F0 ; =0x00020464 + ldr r1, _020225EC ; =0x00020224 + add r0, r4, r0 + add r1, r4, r1 + bl sub_02023160 + ldr r1, _020225F4 ; =0x00020218 + mov r0, #0x0 + add r1, r4, r1 + mov r2, #0x8 + blx sub_020CE240 + add r0, r4, #0x0 + bl sub_02022AD8 + str r0, [r4, #0x10] + cmp r0, #0x3 + bhi _020225DA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r3, #0 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r2, r3, #0 + mov r0, #0x0 + str r0, [r4, #0xc] + add r0, r4, #0x0 + bl sub_02022D08 + mov r0, #0x1 + str r0, [r4, #0x4] + mov r0, #0x0 + str r0, [r4, #0x8] + b _020225DA +_020225D4: + .byte 0x20, 0x1C, 0x00, 0xF0, 0x01, 0xF9 +_020225DA: + add r0, r4, #0x0 + pop {r4, pc} + nop +_020225E0: .word 0x000204A8 +_020225E4: .word 0x021C59C8 +_020225E8: .word 0x00001021 +_020225EC: .word 0x00020224 +_020225F0: .word 0x00020464 +_020225F4: .word 0x00020218 + + thumb_func_start sub_020225F8 +sub_020225F8: ; 0x020225F8 + push {r3, lr} + ldr r0, _0202260C ; =0x021C59C8 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02022606 + bl sub_02020C2C +_02022606: + ldr r0, _0202260C ; =0x021C59C8 + ldr r0, [r0, #0x0] + pop {r3, pc} + .balign 4 +_0202260C: .word 0x021C59C8 + + thumb_func_start sub_02022610 +sub_02022610: ; 0x02022610 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x24 + blt _0202261E + bl sub_02020C2C +_0202261E: + mov r0, #0x85 + lsl r0, r0, #0x2 + add r2, r5, r0 + lsl r0, r4, #0x4 + add r1, r5, r0 + ldr r0, _02022630 ; =0x0002022C + ldr r0, [r1, r0] + add r0, r2, r0 + pop {r3-r5, pc} + .balign 4 +_02022630: .word 0x0002022C +_02022634: + .byte 0x00, 0x4B, 0x18, 0x47, 0x11, 0x26, 0x02, 0x02 + + thumb_func_start sub_0202263C +sub_0202263C: ; 0x0202263C + push {r3-r7, lr} + mov r1, #0x1 + str r0, [sp, #0x0] + mov r0, #0x3 + lsl r1, r1, #0xc + bl sub_020169D8 + add r6, r0, #0x0 + mov r0, #0x1 + bl sub_02016444 + ldr r1, _020226F4 ; =0x00020220 + ldr r0, [sp, #0x0] + ldrb r0, [r0, r1] + cmp r0, #0x0 + bne _02022660 + mov r2, #0x1 + b _02022662 +_02022660: + mov r2, #0x0 +_02022662: + ldr r0, [sp, #0x0] + mov r1, #0x0 + bl sub_02023074 + ldr r1, _020226F8 ; =0x00020221 + ldr r0, [sp, #0x0] + ldrb r0, [r0, r1] + cmp r0, #0x0 + bne _02022678 + mov r2, #0x1 + b _0202267A +_02022678: + mov r2, #0x0 +_0202267A: + ldr r0, [sp, #0x0] + mov r1, #0x1 + bl sub_02023074 + ldr r0, [sp, #0x0] + ldr r3, _020226F4 ; =0x00020220 + add r2, r0, #0x0 + ldrb r2, [r2, r3] + mov r1, #0x0 + bl sub_02023074 + ldr r0, [sp, #0x0] + ldr r3, _020226F8 ; =0x00020221 + add r2, r0, #0x0 + ldrb r2, [r2, r3] + mov r1, #0x1 + bl sub_02023074 + mov r0, #0x0 + mov r2, #0x1 + mvn r0, r0 + add r1, r6, #0x0 + lsl r2, r2, #0xc + blx sub_020CE240 + mov r4, #0x0 + mov r7, #0x1 + add r5, r4, #0x0 + lsl r7, r7, #0xc +_020226B4: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_020235D0 + add r0, r4, #0x0 + add r0, #0x40 + lsl r0, r0, #0xc + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_020235D0 + mov r0, #0x1 + lsl r0, r0, #0xc + add r4, r4, #0x1 + add r5, r5, r0 + cmp r4, #0x40 + blt _020226B4 + add r0, r6, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x0] + bl sub_020227DC + ldr r0, [sp, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] + mov r0, #0x1 + bl sub_02016454 + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_020226F4: .word 0x00020220 +_020226F8: .word 0x00020221 + + thumb_func_start sub_020226FC +sub_020226FC: ; 0x020226FC + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + bne _0202270A + mov r0, #0x0 + pop {r4, pc} +_0202270A: + bl sub_02022D08 + cmp r0, #0x0 + beq _0202271C + mov r0, #0x1 + str r0, [r4, #0x4] + mov r1, #0x0 + str r1, [r4, #0x8] + pop {r4, pc} +_0202271C: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02022720 +sub_02022720: ; 0x02022720 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _0202272E + mov r0, #0x3 + pop {r4, pc} +_0202272E: + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _02022784 + mov r0, #0x1 + bl sub_02016444 + ldr r0, _02022798 ; =0x00020220 + ldrb r0, [r4, r0] + cmp r0, #0x0 + bne _02022746 + mov r2, #0x1 + b _02022748 +_02022746: + mov r2, #0x0 +_02022748: + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02023074 + ldr r0, _0202279C ; =0x00020221 + ldrb r0, [r4, r0] + cmp r0, #0x0 + bne _0202275C + mov r2, #0x1 + b _0202275E +_0202275C: + mov r2, #0x0 +_0202275E: + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02023074 + ldr r2, _02022798 ; =0x00020220 + add r0, r4, #0x0 + ldrb r2, [r4, r2] + mov r1, #0x0 + bl sub_02023074 + ldr r2, _0202279C ; =0x00020221 + add r0, r4, #0x0 + ldrb r2, [r4, r2] + mov r1, #0x1 + bl sub_02023074 + mov r0, #0x1 + bl sub_02016454 +_02022784: + add r0, r4, #0x0 + bl sub_02023044 + cmp r0, #0x2 + bne _02022796 + mov r1, #0x1 + str r1, [r4, #0x4] + mov r1, #0x0 + str r1, [r4, #0x8] +_02022796: + pop {r4, pc} + .balign 4 +_02022798: .word 0x00020220 +_0202279C: .word 0x00020221 + + thumb_func_start sub_020227A0 +sub_020227A0: ; 0x020227A0 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x2 + blt _020227AE + bl sub_02020C2C +_020227AE: + ldr r0, [r5, #0x8] + cmp r0, #0x0 + beq _020227B8 + bl sub_02020C2C +_020227B8: + ldr r0, [r5, #0x4] + cmp r0, #0x1 + beq _020227C2 + bl sub_02020C2C +_020227C2: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02022840 +_020227CA: + add r0, r5, #0x0 + bl sub_02022854 + cmp r0, #0x0 + beq _020227CA + cmp r0, #0x1 + beq _020227CA + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020227DC +sub_020227DC: ; 0x020227DC + add r2, r0, #0x0 + mov r0, #0x1 + str r0, [r2, #0x8] + str r0, [r2, #0xc] + mov r0, #0x85 + ldr r1, _020227F4 ; =0x00020224 + lsl r0, r0, #0x2 + ldr r3, _020227F8 ; =sub_020231F4 + add r0, r2, r0 + add r1, r2, r1 + bx r3 + nop +_020227F4: .word 0x00020224 +_020227F8: .word sub_020231F4 + 1 + + thumb_func_start sub_020227FC +sub_020227FC: ; 0x020227FC + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02022800 +sub_02022800: ; 0x02022800 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start sub_02022804 +sub_02022804: ; 0x02022804 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_02022808 +sub_02022808: ; 0x02022808 + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start sub_0202280C +sub_0202280C: ; 0x0202280C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02022808 + cmp r0, #0x0 + beq _02022826 + add r0, r4, #0x0 + bl sub_02022804 + cmp r0, #0x0 + beq _02022826 + mov r0, #0x1 + pop {r4, pc} +_02022826: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202282C +sub_0202282C: ; 0x0202282C + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_02022830 +sub_02022830: ; 0x02022830 + ldr r0, _0202283C ; =0x021C59C8 + mov r1, #0x1 + ldr r0, [r0, #0x0] + str r1, [r0, #0xc] + bx lr + nop +_0202283C: .word 0x021C59C8 + + thumb_func_start sub_02022840 +sub_02022840: ; 0x02022840 + add r2, r1, #0x0 + ldr r1, _0202284C ; =0x0002047C + ldr r3, _02022850 ; =sub_02022DFC + add r1, r0, r1 + bx r3 + nop +_0202284C: .word 0x0002047C +_02022850: .word sub_02022DFC + 1 + + thumb_func_start sub_02022854 +sub_02022854: ; 0x02022854 + push {r3-r5, lr} + ldr r1, _02022878 ; =0x0002047C + add r5, r0, #0x0 + add r1, r5, r1 + bl sub_02022E78 + add r4, r0, #0x0 + beq _02022874 + cmp r4, #0x1 + beq _02022874 + ldr r1, _02022878 ; =0x0002047C + add r0, r5, #0x0 + add r1, r5, r1 + add r2, r4, #0x0 + bl sub_02022F80 +_02022874: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02022878: .word 0x0002047C + + thumb_func_start sub_0202287C +sub_0202287C: ; 0x0202287C + ldr r1, _02022884 ; =0x0002047C + ldr r3, _02022888 ; =0x02022FF1 + add r1, r0, r1 + bx r3 + .balign 4 +_02022884: .word 0x0002047C +_02022888: .word 0x02022FF1 + + thumb_func_start sub_0202288C +sub_0202288C: ; 0x0202288C + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + str r1, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start sub_02022898 +sub_02022898: ; 0x02022898 + ldr r3, _020228A0 ; =sub_020DDD60 + add r0, #0x14 + sub r2, #0x14 + bx r3 + .balign 4 +_020228A0: .word sub_020DDD60 + + thumb_func_start sub_020228A4 +sub_020228A4: ; 0x020228A4 + cmp r0, #0x0 + bne _020228AC + mov r2, #0x0 + b _020228B0 +_020228AC: + mov r2, #0x1 + lsl r2, r2, #0x12 +_020228B0: + ldr r0, [r1, #0x4] + add r0, r2, r0 + bx lr + .balign 4 + + thumb_func_start sub_020228B8 +sub_020228B8: ; 0x020228B8 + push {r3-r5, lr} + ldr r3, _020228DC ; =0x00020464 + add r3, r0, r3 + mov r0, #0xc + mul r0, r2 + add r5, r3, r0 + ldr r0, [r5, #0x4] + add r4, r1, r0 + ldr r0, [r5, #0x8] + cmp r0, #0x0 + bne _020228D2 + bl sub_02020C2C +_020228D2: + ldr r0, [r5, #0x8] + add r0, r4, r0 + sub r0, #0x14 + pop {r3-r5, pc} + nop +_020228DC: .word 0x00020464 + + thumb_func_start sub_020228E0 +sub_020228E0: ; 0x020228E0 + push {r3-r7, lr} + ldr r4, _02022934 ; =0x00020464 + add r3, r0, #0x0 + add r3, r3, r4 + add r5, r2, #0x0 + mov r4, #0xc + mul r4, r5 + str r0, [sp, #0x0] + add r7, r1, #0x0 + add r6, r3, r4 + bl sub_020228B8 + add r4, r0, #0x0 + ldr r2, [r6, #0x8] + ldr r0, [r4, #0x8] + ldr r1, [r6, #0x4] + cmp r0, r2 + beq _02022908 + mov r0, #0x0 + pop {r3-r7, pc} +_02022908: + ldr r3, [r4, #0xc] + ldr r0, _02022938 ; =0x20060623 + cmp r3, r0 + beq _02022914 + mov r0, #0x0 + pop {r3-r7, pc} +_02022914: + ldrb r0, [r4, #0x10] + cmp r0, r5 + beq _0202291E + mov r0, #0x0 + pop {r3-r7, pc} +_0202291E: + ldr r0, [sp, #0x0] + add r1, r7, r1 + bl sub_02022898 + ldrh r1, [r4, #0x12] + cmp r1, r0 + bne _02022930 + mov r0, #0x1 + pop {r3-r7, pc} +_02022930: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02022934: .word 0x00020464 +_02022938: .word 0x20060623 + + thumb_func_start sub_0202293C +sub_0202293C: ; 0x0202293C + push {r3-r7, lr} + add r7, r2, #0x0 + add r6, r1, #0x0 + add r5, r0, #0x0 + str r3, [sp, #0x0] + add r0, r6, #0x0 + add r1, r7, #0x0 + add r2, r3, #0x0 + bl sub_020228B8 + add r4, r0, #0x0 + ldr r2, [sp, #0x0] + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_020228E0 + str r0, [r5, #0x0] + ldr r0, [r4, #0x0] + str r0, [r5, #0x4] + ldr r0, [r4, #0x4] + str r0, [r5, #0x8] + pop {r3-r7, pc} + + thumb_func_start sub_02022968 +sub_02022968: ; 0x02022968 + push {r3-r7, lr} + ldr r3, _020229AC ; =0x00020464 + add r5, r0, #0x0 + add r7, r2, #0x0 + mov r4, #0xc + add r3, r5, r3 + mul r4, r7 + str r1, [sp, #0x0] + add r6, r3, r4 + bl sub_020228B8 + ldr r2, _020229B0 ; =0x00020214 + add r4, r0, #0x0 + ldr r0, [r5, r2] + ldr r1, [r6, #0x4] + add r2, r2, #0x4 + str r0, [r4, #0x0] + lsl r0, r7, #0x2 + add r0, r5, r0 + ldr r0, [r0, r2] + ldr r2, [sp, #0x0] + str r0, [r4, #0x4] + ldr r0, [r6, #0x8] + add r1, r2, r1 + str r0, [r4, #0x8] + ldr r0, _020229B4 ; =0x20060623 + str r0, [r4, #0xc] + strb r7, [r4, #0x10] + ldr r2, [r6, #0x8] + add r0, r5, #0x0 + bl sub_02022898 + strh r0, [r4, #0x12] + pop {r3-r7, pc} + .balign 4 +_020229AC: .word 0x00020464 +_020229B0: .word 0x00020214 +_020229B4: .word 0x20060623 + + thumb_func_start sub_020229B8 +sub_020229B8: ; 0x020229B8 + mov r2, #0x0 + mvn r2, r2 + cmp r0, r2 + bne _020229C8 + cmp r1, #0x0 + bne _020229C8 + add r0, r2, #0x0 + bx lr +_020229C8: + cmp r0, #0x0 + bne _020229D8 + mov r2, #0x0 + mvn r2, r2 + cmp r1, r2 + bne _020229D8 + mov r0, #0x1 + bx lr +_020229D8: + cmp r0, r1 + bls _020229E0 + mov r0, #0x1 + bx lr +_020229E0: + cmp r0, r1 + bhs _020229E8 + mov r0, #0x1 + b _020229EA +_020229E8: + mov r0, #0x0 +_020229EA: + neg r0, r0 + bx lr + .balign 4 + + thumb_func_start sub_020229F0 +sub_020229F0: ; 0x020229F0 + push {r3-r7, lr} + add r7, r0, #0x0 + add r6, r1, #0x0 + ldr r0, [r7, #0x4] + ldr r1, [r6, #0x4] + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_020229B8 + str r0, [sp, #0x0] + ldr r0, [r7, #0x8] + ldr r1, [r6, #0x8] + bl sub_020229B8 + ldr r2, [r7, #0x0] + cmp r2, #0x0 + beq _02022A6A + ldr r1, [r6, #0x0] + cmp r1, #0x0 + beq _02022A6A + ldr r1, [sp, #0x0] + cmp r1, #0x0 + ble _02022A30 + cmp r0, #0x0 + bgt _02022A26 + bl sub_02020C2C +_02022A26: + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x1 + str r0, [r4, #0x0] + b _02022A66 +_02022A30: + bge _02022A44 + cmp r0, #0x0 + blt _02022A3A + bl sub_02020C2C +_02022A3A: + mov r0, #0x1 + str r0, [r5, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02022A66 +_02022A44: + cmp r0, #0x0 + ble _02022A52 + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x1 + str r0, [r4, #0x0] + b _02022A66 +_02022A52: + bge _02022A5E + mov r0, #0x1 + str r0, [r5, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02022A66 +_02022A5E: + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x1 + str r0, [r4, #0x0] +_02022A66: + mov r0, #0x2 + pop {r3-r7, pc} +_02022A6A: + cmp r2, #0x0 + beq _02022A80 + ldr r0, [r6, #0x0] + cmp r0, #0x0 + bne _02022A80 + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x2 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} +_02022A80: + cmp r2, #0x0 + bne _02022A94 + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _02022A94 + mov r0, #0x1 + str r0, [r5, #0x0] + mov r1, #0x2 + str r1, [r4, #0x0] + pop {r3-r7, pc} +_02022A94: + mov r0, #0x2 + str r0, [r5, #0x0] + str r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02022AA0 +sub_02022AA0: ; 0x02022AA0 + push {r3-r6} + mov r4, #0xc + add r5, r3, #0x0 + mul r5, r4 + add r6, r1, r5 + ldr r5, [r6, #0x4] + ldr r1, _02022AD4 ; =0x00020214 + str r5, [r0, r1] + ldr r6, [r6, #0x8] + add r5, r1, #0x4 + str r6, [r0, r5] + ldr r5, [sp, #0x10] + mul r4, r5 + add r2, r2, r4 + ldr r4, [r2, #0x8] + add r2, r1, #0x0 + add r2, #0x8 + str r4, [r0, r2] + add r2, r1, #0x0 + add r2, #0xc + strb r3, [r0, r2] + add r1, #0xd + strb r5, [r0, r1] + pop {r3-r6} + bx lr + nop +_02022AD4: .word 0x00020214 + + thumb_func_start sub_02022AD8 +sub_02022AD8: ; 0x02022AD8 + push {r3-r6, lr} + sub sp, #0x44 + mov r1, #0x2 + add r5, r0, #0x0 + mov r0, #0x3 + lsl r1, r1, #0x10 + bl sub_020169D8 + mov r1, #0x2 + add r6, r0, #0x0 + mov r0, #0x3 + lsl r1, r1, #0x10 + bl sub_020169D8 + mov r2, #0x2 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r6, #0x0 + lsl r2, r2, #0x10 + bl sub_020235EC + cmp r0, #0x0 + add r0, sp, #0x2c + beq _02022B20 + add r1, r5, #0x0 + add r2, r6, #0x0 + mov r3, #0x0 + bl sub_0202293C + add r0, sp, #0x14 + add r1, r5, #0x0 + add r2, r6, #0x0 + mov r3, #0x1 + bl sub_0202293C + b _02022B2A +_02022B20: + bl sub_0202288C + add r0, sp, #0x14 + bl sub_0202288C +_02022B2A: + mov r0, #0x1 + lsl r0, r0, #0x12 + add r1, r4, #0x0 + lsr r2, r0, #0x1 + bl sub_020235EC + cmp r0, #0x0 + add r0, sp, #0x38 + beq _02022B54 + add r1, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x0 + bl sub_0202293C + add r0, sp, #0x20 + add r1, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x1 + bl sub_0202293C + b _02022B5E +_02022B54: + bl sub_0202288C + add r0, sp, #0x20 + bl sub_0202288C +_02022B5E: + add r0, r6, #0x0 + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + add r0, sp, #0x2c + add r1, sp, #0x38 + add r2, sp, #0x10 + add r3, sp, #0x8 + bl sub_020229F0 + add r4, r0, #0x0 + add r0, sp, #0x14 + add r1, sp, #0x20 + add r2, sp, #0xc + add r3, sp, #0x4 + bl sub_020229F0 + cmp r4, #0x0 + bne _02022B92 + cmp r0, #0x0 + bne _02022B92 + add sp, #0x44 + mov r0, #0x0 + pop {r3-r6, pc} +_02022B92: + cmp r4, #0x0 + beq _02022B9A + cmp r0, #0x0 + bne _02022BA0 +_02022B9A: + add sp, #0x44 + mov r0, #0x3 + pop {r3-r6, pc} +_02022BA0: + cmp r4, #0x2 + bne _02022BE4 + cmp r0, #0x2 + bne _02022BE4 + ldr r3, [sp, #0x10] + ldr r1, [sp, #0xc] + mov r2, #0xc + add r4, r3, #0x0 + mul r4, r2 + add r0, sp, #0x30 + ldr r0, [r0, r4] + add r4, r1, #0x0 + mul r4, r2 + add r2, sp, #0x18 + ldr r2, [r2, r4] + cmp r0, r2 + str r1, [sp, #0x0] + add r1, sp, #0x2c + bne _02022BD4 + add r0, r5, #0x0 + add r2, sp, #0x14 + bl sub_02022AA0 + add sp, #0x44 + mov r0, #0x1 + pop {r3-r6, pc} +_02022BD4: + ldr r3, [sp, #0x8] + add r0, r5, #0x0 + add r2, sp, #0x14 + bl sub_02022AA0 + add sp, #0x44 + mov r0, #0x2 + pop {r3-r6, pc} +_02022BE4: + cmp r4, #0x1 + bne _02022C3A + cmp r0, #0x2 + bne _02022C3A + ldr r3, [sp, #0x10] + ldr r0, [sp, #0xc] + mov r4, #0xc + add r2, r3, #0x0 + add r6, r0, #0x0 + mul r2, r4 + add r1, sp, #0x30 + ldr r2, [r1, r2] + mul r6, r4 + add r1, sp, #0x18 + ldr r6, [r1, r6] + cmp r2, r6 + bne _02022C18 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, sp, #0x2c + add r2, sp, #0x14 + bl sub_02022AA0 + add sp, #0x44 + mov r0, #0x2 + pop {r3-r6, pc} +_02022C18: + ldr r0, [sp, #0x4] + mul r4, r0 + ldr r1, [r1, r4] + cmp r2, r1 + bne _02022C34 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, sp, #0x2c + add r2, sp, #0x14 + bl sub_02022AA0 + add sp, #0x44 + mov r0, #0x2 + pop {r3-r6, pc} +_02022C34: + add sp, #0x44 + mov r0, #0x3 + pop {r3-r6, pc} +_02022C3A: + cmp r4, #0x2 + bne _02022C7E + cmp r0, #0x1 + bne _02022C7E + ldr r3, [sp, #0x10] + ldr r1, [sp, #0xc] + mov r2, #0xc + add r4, r3, #0x0 + mul r4, r2 + add r0, sp, #0x30 + ldr r0, [r0, r4] + add r4, r1, #0x0 + mul r4, r2 + add r2, sp, #0x18 + ldr r2, [r2, r4] + cmp r0, r2 + str r1, [sp, #0x0] + add r1, sp, #0x2c + bne _02022C6E + add r0, r5, #0x0 + add r2, sp, #0x14 + bl sub_02022AA0 + add sp, #0x44 + mov r0, #0x1 + pop {r3-r6, pc} +_02022C6E: + ldr r3, [sp, #0x8] + add r0, r5, #0x0 + add r2, sp, #0x14 + bl sub_02022AA0 + add sp, #0x44 + mov r0, #0x2 + pop {r3-r6, pc} +_02022C7E: + cmp r4, #0x1 + bne _02022CBC + cmp r0, #0x1 + bne _02022CBC + ldr r0, [sp, #0xc] + ldr r2, [sp, #0x10] + cmp r2, r0 + bne _02022CBC + add r3, r2, #0x0 + mov r1, #0xc + mul r3, r1 + add r2, sp, #0x30 + mul r1, r0 + add r0, sp, #0x18 + ldr r2, [r2, r3] + ldr r0, [r0, r1] + cmp r2, r0 + beq _02022CA6 + bl sub_02020C2C +_02022CA6: + ldr r0, [sp, #0xc] + add r1, sp, #0x2c + str r0, [sp, #0x0] + ldr r3, [sp, #0x10] + add r0, r5, #0x0 + add r2, sp, #0x14 + bl sub_02022AA0 + add sp, #0x44 + mov r0, #0x1 + pop {r3-r6, pc} +_02022CBC: + ldr r1, [sp, #0x10] + mov r0, #0xc + add r2, r1, #0x0 + mul r2, r0 + add r1, sp, #0x30 + ldr r3, [r1, r2] + ldr r1, [sp, #0xc] + add r2, r1, #0x0 + mul r2, r0 + add r0, sp, #0x18 + ldr r0, [r0, r2] + cmp r3, r0 + beq _02022CDA + bl sub_02020C2C +_02022CDA: + ldr r0, [sp, #0xc] + add r1, sp, #0x2c + str r0, [sp, #0x0] + ldr r3, [sp, #0x10] + add r0, r5, #0x0 + add r2, sp, #0x14 + bl sub_02022AA0 + mov r0, #0x2 + add sp, #0x44 + pop {r3-r6, pc} + + thumb_func_start sub_02022CF0 +sub_02022CF0: ; 0x02022CF0 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_020228A4 + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + add r1, r4, r1 + bl sub_020235EC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02022D08 +sub_02022D08: ; 0x02022D08 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _02022D4C ; =0x00020464 + mov r7, #0x85 + mov r4, #0x0 + add r6, r5, r0 + lsl r7, r7, #0x2 +_02022D16: + ldr r0, _02022D50 ; =0x00020220 + add r1, r5, r4 + ldrb r0, [r1, r0] + add r1, r6, #0x0 + add r2, r5, r7 + bl sub_02022CF0 + cmp r0, #0x0 + bne _02022D2C + mov r0, #0x0 + pop {r3-r7, pc} +_02022D2C: + add r0, r5, #0x0 + add r1, r5, r7 + add r2, r4, #0x0 + bl sub_020228E0 + cmp r0, #0x0 + bne _02022D3E + mov r0, #0x0 + pop {r3-r7, pc} +_02022D3E: + add r4, r4, #0x1 + add r6, #0xc + cmp r4, #0x2 + blt _02022D16 + mov r0, #0x1 + pop {r3-r7, pc} + nop +_02022D4C: .word 0x00020464 +_02022D50: .word 0x00020220 + + thumb_func_start sub_02022D54 +sub_02022D54: ; 0x02022D54 + push {r4-r6, lr} + add r3, r1, #0x0 + ldr r1, _02022D90 ; =0x00020464 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r2, r5, r1 + mov r1, #0xc + mul r1, r3 + add r4, r2, r1 + mov r1, #0x85 + lsl r1, r1, #0x2 + add r1, r5, r1 + add r2, r3, #0x0 + bl sub_02022968 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_020228A4 + mov r1, #0x85 + lsl r1, r1, #0x2 + add r2, r5, r1 + ldr r1, [r4, #0x4] + add r1, r2, r1 + ldr r2, [r4, #0x8] + sub r2, #0x14 + bl sub_02023668 + pop {r4-r6, pc} + nop +_02022D90: .word 0x00020464 + + thumb_func_start sub_02022D94 +sub_02022D94: ; 0x02022D94 + push {r4-r6, lr} + add r6, r0, #0x0 + ldr r0, _02022DC4 ; =0x00020464 + add r3, r6, r0 + mov r0, #0xc + mul r0, r1 + add r4, r3, r0 + add r0, r2, #0x0 + add r1, r4, #0x0 + ldr r5, [r4, #0x8] + bl sub_020228A4 + mov r1, #0x2 + lsl r1, r1, #0x8 + add r2, r6, r1 + ldr r1, [r4, #0x4] + add r0, r5, r0 + add r1, r2, r1 + sub r0, #0x14 + add r1, r1, r5 + mov r2, #0x14 + bl sub_02023668 + pop {r4-r6, pc} + .balign 4 +_02022DC4: .word 0x00020464 + + thumb_func_start sub_02022DC8 +sub_02022DC8: ; 0x02022DC8 + push {r4-r6, lr} + add r6, r0, #0x0 + ldr r0, _02022DF8 ; =0x00020464 + add r3, r6, r0 + mov r0, #0xc + mul r0, r1 + add r4, r3, r0 + add r0, r2, #0x0 + add r1, r4, #0x0 + ldr r5, [r4, #0x8] + bl sub_020228A4 + mov r1, #0x82 + lsl r1, r1, #0x2 + add r2, r6, r1 + ldr r1, [r4, #0x4] + add r0, r5, r0 + add r1, r2, r1 + sub r0, #0xc + add r1, r1, r5 + mov r2, #0x8 + bl sub_02023668 + pop {r4-r6, pc} + .balign 4 +_02022DF8: .word 0x00020464 + + thumb_func_start sub_02022DFC +sub_02022DFC: ; 0x02022DFC + push {r3-r7, lr} + ldr r7, _02022E70 ; =0x00020218 + add r4, r1, #0x0 + mov r12, r2 + mov r1, #0x0 + add r2, r0, #0x0 + add r3, r4, #0x0 + add r6, r7, #0x0 +_02022E0C: + ldr r5, _02022E70 ; =0x00020218 + add r1, r1, #0x1 + ldr r5, [r2, r5] + str r5, [r3, #0x1c] + ldr r5, [r2, r7] + add r3, r3, #0x4 + add r5, r5, #0x1 + str r5, [r2, r6] + add r2, r2, #0x4 + cmp r1, #0x2 + blt _02022E0C + mov r1, #0x0 + str r1, [r4, #0x14] + mov r2, r12 + str r1, [r4, #0x0] + cmp r2, #0x2 + bne _02022E58 + ldr r2, [r0, #0xc] + cmp r2, #0x0 + beq _02022E4E + mov r2, #0x1 + str r2, [r4, #0x0] + ldr r2, _02022E74 ; =0x00020214 + ldr r3, [r0, r2] + str r3, [r4, #0x18] + ldr r3, [r0, r2] + add r3, r3, #0x1 + str r3, [r0, r2] + str r1, [r4, #0x4] + str r1, [r4, #0x8] + mov r0, #0x2 + str r0, [r4, #0xc] + b _02022E66 +_02022E4E: + str r1, [r4, #0x4] + str r1, [r4, #0x8] + mov r0, #0x1 + str r0, [r4, #0xc] + b _02022E66 +_02022E58: + mov r0, r12 + str r0, [r4, #0x4] + mov r0, r12 + str r0, [r4, #0x8] + mov r0, r12 + add r0, r0, #0x1 + str r0, [r4, #0xc] +_02022E66: + mov r0, #0x1 + bl sub_02016444 + pop {r3-r7, pc} + nop +_02022E70: .word 0x00020218 +_02022E74: .word 0x00020214 + + thumb_func_start sub_02022E78 +sub_02022E78: ; 0x02022E78 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x14] + cmp r0, #0x5 + bhi _02022F78 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r6, r5, #0 + lsl r2, r1, #0x1 + lsl r6, r5, #0x1 + lsl r0, r3, #0x2 + lsl r4, r7, #0x2 + ldr r1, [r4, #0x8] + ldr r0, _02022F7C ; =0x00020220 + add r2, r5, r1 + ldrb r0, [r2, r0] + cmp r0, #0x0 + bne _02022EAC + mov r2, #0x1 + b _02022EAE +_02022EAC: + mov r2, #0x0 +_02022EAE: + lsl r2, r2, #0x18 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_02022D54 + str r0, [r4, #0x10] + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] + ldr r0, [r4, #0x10] + add r1, sp, #0x0 + bl sub_020236E4 + cmp r0, #0x0 + beq _02022F78 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _02022ED6 + mov r0, #0x3 + pop {r3-r5, pc} +_02022ED6: + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] + ldr r1, [r4, #0x8] + ldr r0, _02022F7C ; =0x00020220 + add r2, r5, r1 + ldrb r0, [r2, r0] + cmp r0, #0x0 + bne _02022EEC + mov r2, #0x1 + b _02022EEE +_02022EEC: + mov r2, #0x0 +_02022EEE: + lsl r2, r2, #0x18 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_02022DC8 + str r0, [r4, #0x10] + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] + ldr r0, [r4, #0x10] + add r1, sp, #0x0 + bl sub_020236E4 + cmp r0, #0x0 + beq _02022F78 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _02022F16 + mov r0, #0x3 + pop {r3-r5, pc} +_02022F16: + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] + ldr r0, [r4, #0x8] + add r1, r0, #0x1 + ldr r0, [r4, #0xc] + cmp r1, r0 + bne _02022F2A + mov r0, #0x1 + pop {r3-r5, pc} +_02022F2A: + ldr r1, [r4, #0x8] + ldr r0, _02022F7C ; =0x00020220 + add r2, r5, r1 + ldrb r0, [r2, r0] + cmp r0, #0x0 + bne _02022F3A + mov r2, #0x1 + b _02022F3C +_02022F3A: + mov r2, #0x0 +_02022F3C: + lsl r2, r2, #0x18 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_02022D94 + str r0, [r4, #0x10] + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] + ldr r0, [r4, #0x10] + add r1, sp, #0x0 + bl sub_020236E4 + cmp r0, #0x0 + beq _02022F78 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _02022F64 + mov r0, #0x3 + pop {r3-r5, pc} +_02022F64: + ldr r0, [r4, #0x8] + add r1, r0, #0x1 + str r1, [r4, #0x8] + ldr r0, [r4, #0xc] + cmp r1, r0 + bne _02022F74 + mov r0, #0x2 + pop {r3-r5, pc} +_02022F74: + mov r0, #0x0 + str r0, [r4, #0x14] +_02022F78: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02022F7C: .word 0x00020220 + + thumb_func_start sub_02022F80 +sub_02022F80: ; 0x02022F80 + push {r3-r7, lr} + add r3, r0, #0x0 + add r0, r1, #0x0 + cmp r2, #0x3 + bne _02022FAA + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02022F96 + ldr r2, [r0, #0x18] + ldr r1, _02022FE4 ; =0x00020214 + str r2, [r3, r1] +_02022F96: + ldr r1, _02022FE8 ; =0x00020218 + mov r4, #0x0 +_02022F9A: + ldr r2, [r0, #0x1c] + add r4, r4, #0x1 + str r2, [r3, r1] + add r0, r0, #0x4 + add r3, r3, #0x4 + cmp r4, #0x2 + blt _02022F9A + b _02022FDA +_02022FAA: + ldr r6, [r0, #0x4] + ldr r1, [r0, #0xc] + cmp r6, r1 + bge _02022FD0 + ldr r1, _02022FEC ; =0x00020220 + mov r7, #0x1 + add r2, r1, #0x0 +_02022FB8: + add r5, r3, r6 + ldrb r4, [r5, r2] + cmp r4, #0x0 + bne _02022FC4 + add r4, r7, #0x0 + b _02022FC6 +_02022FC4: + mov r4, #0x0 +_02022FC6: + strb r4, [r5, r1] + ldr r4, [r0, #0xc] + add r6, r6, #0x1 + cmp r6, r4 + blt _02022FB8 +_02022FD0: + mov r0, #0x1 + str r0, [r3, #0x4] + mov r0, #0x0 + str r0, [r3, #0x8] + str r0, [r3, #0xc] +_02022FDA: + mov r0, #0x1 + bl sub_02016454 + pop {r3-r7, pc} + nop +_02022FE4: .word 0x00020214 +_02022FE8: .word 0x00020218 +_02022FEC: .word 0x00020220 +_02022FF0: + .byte 0x38, 0xB5, 0x0C, 0x1C, 0x21, 0x68, 0x00, 0x29, 0x02, 0xD0, 0xA2, 0x69, 0x0F, 0x49, 0x42, 0x50 + .byte 0x0F, 0x49, 0x00, 0x23, 0x25, 0x1C, 0xEA, 0x69, 0x5B, 0x1C, 0x42, 0x50, 0x2D, 0x1D, 0x00, 0x1D + .byte 0x02, 0x2B, 0xF8, 0xDB, 0xB3, 0xF0, 0xCA, 0xEE, 0x00, 0x28, 0x0B, 0xD1, 0xB3, 0xF0, 0xAE, 0xEE + .byte 0x20, 0x69, 0x00, 0x04, 0x00, 0x0C, 0xB3, 0xF0, 0x3C, 0xEB, 0x20, 0x69, 0x00, 0x04, 0x00, 0x0C + .byte 0xA7, 0xF0, 0x62, 0xE8, 0x01, 0x20, 0xF3, 0xF7, 0x0D, 0xFA, 0x38, 0xBD, 0x14, 0x02, 0x02, 0x00 + .byte 0x18, 0x02, 0x02, 0x00 + + thumb_func_start sub_02023044 +sub_02023044: ; 0x02023044 + push {r3-r6, lr} + sub sp, #0x24 + add r1, sp, #0x0 + mov r2, #0x2 + add r5, r0, #0x0 + bl sub_02022DFC + add r6, sp, #0x0 +_02023054: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02022E78 + add r4, r0, #0x0 + beq _02023054 + cmp r4, #0x1 + beq _02023054 + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, r4, #0x0 + bl sub_02022F80 + add r0, r4, #0x0 + add sp, #0x24 + pop {r3-r6, pc} + + thumb_func_start sub_02023074 +sub_02023074: ; 0x02023074 + push {r4-r5, lr} + sub sp, #0x14 + add r4, r2, #0x0 + ldr r2, _020230A8 ; =0x00020464 + add r2, r0, r2 + mov r0, #0xc + mul r0, r1 + add r5, r2, r0 + add r0, sp, #0x0 + mov r1, #0xff + mov r2, #0x14 + blx sub_020CE34C + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_020228A4 + ldr r1, [r5, #0x8] + mov r2, #0x14 + add r0, r1, r0 + sub r0, #0x14 + add r1, sp, #0x0 + bl sub_020235D0 + add sp, #0x14 + pop {r4-r5, pc} + .balign 4 +_020230A8: .word 0x00020464 + + thumb_func_start sub_020230AC +sub_020230AC: ; 0x020230AC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _020230DC ; =0x020EE6DC + ldr r4, _020230E0 ; =0x020EE700 + ldr r0, [r0, #0x0] + cmp r5, r0 + blt _020230BE + bl sub_02020C2C +_020230BE: + lsl r0, r5, #0x4 + add r0, r4, r0 + ldr r0, [r0, #0x8] + blx r0 + lsr r3, r0, #0x1f + lsl r2, r0, #0x1e + sub r2, r2, r3 + mov r1, #0x1e + ror r2, r1 + add r2, r3, r2 + mov r1, #0x4 + sub r1, r1, r2 + add r0, r0, r1 + pop {r3-r5, pc} + nop +_020230DC: .word 0x020EE6DC +_020230E0: .word 0x020EE700 + + thumb_func_start sub_020230E4 +sub_020230E4: ; 0x020230E4 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, _02023158 ; =0x020EE6DC + ldr r4, _0202315C ; =0x020EE700 + ldr r0, [r0, #0x0] + mov r7, #0x0 + str r0, [sp, #0x0] + cmp r0, #0x24 + beq _020230FC + bl sub_02020C2C +_020230FC: + ldr r0, [sp, #0x0] + mov r6, #0x0 + cmp r0, #0x0 + ble _02023148 + sub r0, r0, #0x1 + str r0, [sp, #0x4] +_02023108: + ldr r0, [r4, #0x0] + cmp r6, r0 + beq _02023112 + bl sub_02020C2C +_02023112: + ldr r0, [r4, #0x0] + str r0, [r5, #0x0] + add r0, r6, #0x0 + bl sub_020230AC + str r0, [r5, #0x4] + str r7, [r5, #0x8] + mov r0, #0x0 + strh r0, [r5, #0xc] + ldr r0, [r4, #0x4] + strh r0, [r5, #0xe] + ldr r0, [r5, #0x4] + add r7, r7, r0 + ldr r0, [sp, #0x4] + cmp r6, r0 + beq _0202313A + ldr r1, [r4, #0x4] + ldr r0, [r4, #0x14] + cmp r1, r0 + beq _0202313C +_0202313A: + add r7, #0x14 +_0202313C: + ldr r0, [sp, #0x0] + add r6, r6, #0x1 + add r4, #0x10 + add r5, #0x10 + cmp r6, r0 + blt _02023108 +_02023148: + mov r0, #0x2 + lsl r0, r0, #0x10 + cmp r7, r0 + ble _02023154 + bl sub_02020C2C +_02023154: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02023158: .word 0x020EE6DC +_0202315C: .word 0x020EE700 + + thumb_func_start sub_02023160 +sub_02023160: ; 0x02023160 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + mov r12, r0 + add r3, r0, #0x0 + add r6, r0, #0x0 + ldr r0, _020231EC ; =0x020EE6DC + ldr r4, [sp, #0x0] + ldr r7, [r0, #0x0] + add r5, r1, #0x0 +_02023178: + add r2, r4, #0x0 + strb r6, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x8] + add r2, #0x8 + b _02023190 +_02023184: + ldr r0, [r5, #0x4] + ldr r1, [r2, #0x0] + add r5, #0x10 + add r0, r1, r0 + str r0, [r2, #0x0] + add r3, r3, #0x1 +_02023190: + ldrh r0, [r5, #0xe] + cmp r6, r0 + bne _0202319A + cmp r3, r7 + blt _02023184 +_0202319A: + ldr r0, [r4, #0x8] + add r6, r6, #0x1 + add r0, #0x14 + str r0, [r4, #0x8] + ldr r0, [sp, #0x4] + strb r0, [r4, #0x1] + mov r0, r12 + str r0, [r4, #0x4] + ldr r1, [r4, #0x8] + ldr r0, _020231F0 ; =0x00000FFF + add r0, r1, r0 + lsr r0, r0, #0xc + strb r0, [r4, #0x2] + ldrb r1, [r4, #0x2] + ldr r0, [sp, #0x4] + add r0, r0, r1 + str r0, [sp, #0x4] + ldr r0, [r4, #0x8] + mov r1, r12 + add r0, r1, r0 + add r4, #0xc + mov r12, r0 + cmp r6, #0x2 + blt _02023178 + ldr r0, [sp, #0x0] + ldrb r1, [r0, #0xd] + ldrb r0, [r0, #0xe] + add r1, r1, r0 + ldr r0, [sp, #0x4] + cmp r0, r1 + beq _020231DC + bl sub_02020C2C +_020231DC: + ldr r0, [sp, #0x4] + cmp r0, #0x20 + ble _020231E6 + bl sub_02020C2C +_020231E6: + add sp, #0x8 + pop {r3-r7, pc} + nop +_020231EC: .word 0x020EE6DC +_020231F0: .word 0x00000FFF + + thumb_func_start sub_020231F4 +sub_020231F4: ; 0x020231F4 + push {r3-r7, lr} + sub sp, #0x8 + add r6, r0, #0x0 + mov r2, #0x2 + add r5, r1, #0x0 + mov r0, #0x0 + add r1, r6, #0x0 + lsl r2, r2, #0x10 + ldr r4, _02023240 ; =0x020EE700 + blx sub_020CE240 + ldr r0, _02023244 ; =0x020EE6DC + mov r7, #0x0 + ldr r0, [r0, #0x0] + str r0, [sp, #0x0] + cmp r0, #0x0 + ble _0202323A +_02023216: + ldr r0, [r5, #0x8] + ldr r2, [r5, #0x4] + str r0, [sp, #0x4] + ldr r1, [sp, #0x4] + mov r0, #0x0 + add r1, r6, r1 + blx sub_020CE240 + ldr r0, [sp, #0x4] + ldr r1, [r4, #0xc] + add r0, r6, r0 + blx r1 + ldr r0, [sp, #0x0] + add r7, r7, #0x1 + add r5, #0x10 + add r4, #0x10 + cmp r7, r0 + blt _02023216 +_0202323A: + add sp, #0x8 + pop {r3-r7, pc} + nop +_02023240: .word 0x020EE700 +_02023244: .word 0x020EE6DC + + thumb_func_start sub_02023248 +sub_02023248: ; 0x02023248 + push {r3-r5, lr} + ldr r5, _0202326C ; =0x20060623 + add r4, r1, r3 + str r5, [r1, r3] + ldr r5, _02023270 ; =0x000204A4 + ldr r5, [r0, r5] + add r0, #0x14 + add r5, r5, #0x1 + str r5, [r4, #0x4] + str r3, [r4, #0x8] + add r3, #0xe + strh r2, [r4, #0xc] + add r2, r3, #0x0 + blx sub_020DDD60 + strh r0, [r4, #0xe] + pop {r3-r5, pc} + nop +_0202326C: .word 0x20060623 +_02023270: .word 0x000204A4 + + thumb_func_start sub_02023274 +sub_02023274: ; 0x02023274 + push {r4-r6, lr} + ldr r6, [r1, r3] + ldr r5, _020232B0 ; =0x20060623 + add r4, r1, r3 + cmp r6, r5 + beq _02023284 + mov r0, #0x0 + pop {r4-r6, pc} +_02023284: + ldr r5, [r4, #0x8] + cmp r5, r3 + beq _0202328E + mov r0, #0x0 + pop {r4-r6, pc} +_0202328E: + ldrh r5, [r4, #0xc] + cmp r5, r2 + beq _02023298 + mov r0, #0x0 + pop {r4-r6, pc} +_02023298: + add r3, #0xe + add r0, #0x14 + add r2, r3, #0x0 + blx sub_020DDD60 + ldrh r1, [r4, #0xe] + cmp r1, r0 + bne _020232AC + mov r0, #0x1 + pop {r4-r6, pc} +_020232AC: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_020232B0: .word 0x20060623 + + thumb_func_start sub_020232B4 +sub_020232B4: ; 0x020232B4 + add r0, r0, r1 + ldr r0, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start sub_020232BC +sub_020232BC: ; 0x020232BC + push {r3-r7, lr} + sub sp, #0x8 + add r7, r0, #0x0 + mov r0, #0x1 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_02016444 + ldr r0, _020233FC ; =0x020EE6D8 + ldr r0, [r0, #0x0] + cmp r5, r0 + blt _020232D8 + bl sub_02020C2C +_020232D8: + ldr r1, _02023400 ; =0x020EE6E0 + lsl r0, r5, #0x4 + add r4, r1, r0 + ldr r0, [r1, r0] + cmp r0, r5 + beq _020232E8 + bl sub_02020C2C +_020232E8: + ldr r0, [r4, #0x8] + blx r0 + str r0, [sp, #0x4] + add r0, #0x10 + str r0, [sp, #0x4] + ldr r0, _02023404 ; =0x000204A0 + ldr r0, [r7, r0] + cmp r0, #0x1 + ldr r0, [r4, #0x8] + bne _0202336E + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02023248 + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x4] + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl sub_020235D0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02023274 + cmp r0, #0x1 + beq _02023330 + bl sub_02020C2C +_02023330: + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02023248 + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x4] + add r0, #0x40 + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl sub_020235D0 + ldr r1, [sp, #0x0] + orr r0, r1 + str r0, [sp, #0x0] + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02023274 + cmp r0, #0x1 + beq _020233DE + bl sub_02020C2C + b _020233DE +_0202336E: + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02023248 + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x4] + add r0, #0x40 + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl sub_020235D0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02023274 + cmp r0, #0x1 + beq _020233A4 + bl sub_02020C2C +_020233A4: + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02023248 + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x4] + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl sub_020235D0 + ldr r1, [sp, #0x0] + orr r0, r1 + str r0, [sp, #0x0] + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02023274 + cmp r0, #0x1 + beq _020233DE + bl sub_02020C2C +_020233DE: + ldr r0, [sp, #0x0] + cmp r0, #0x1 + bne _020233F0 + mov r0, #0x1 + bl sub_02016454 + add sp, #0x8 + mov r0, #0x2 + pop {r3-r7, pc} +_020233F0: + mov r0, #0x1 + bl sub_02016454 + mov r0, #0x3 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020233FC: .word 0x020EE6D8 +_02023400: .word 0x020EE6E0 +_02023404: .word 0x000204A0 + + thumb_func_start sub_02023408 +sub_02023408: ; 0x02023408 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + ldr r0, _02023564 ; =0x020EE6D8 + add r7, r2, #0x0 + ldr r0, [r0, #0x0] + add r6, r1, #0x0 + str r3, [sp, #0x0] + cmp r7, r0 + blt _02023420 + bl sub_02020C2C +_02023420: + ldr r1, _02023568 ; =0x020EE6E0 + lsl r0, r7, #0x4 + add r4, r1, r0 + ldr r0, [r1, r0] + cmp r0, r7 + beq _02023430 + bl sub_02020C2C +_02023430: + ldr r0, [r4, #0x8] + blx r0 + str r0, [sp, #0x10] + add r0, #0x10 + str r0, [sp, #0x10] + ldr r1, [sp, #0x10] + add r0, r6, #0x0 + bl sub_02016998 + add r6, r0, #0x0 + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x10] + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl sub_020235EC + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02023274 + str r0, [sp, #0xc] + ldr r0, [r4, #0x8] + blx r0 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl sub_020232B4 + str r0, [sp, #0x8] + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x10] + add r0, #0x40 + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl sub_020235EC + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02023274 + add r7, r0, #0x0 + ldr r0, [r4, #0x8] + blx r0 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl sub_020232B4 + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + mov r1, #0x1 + str r1, [r0, #0x0] + ldr r0, [sp, #0xc] + cmp r0, #0x1 + bne _020234CC + cmp r7, #0x0 + bne _020234CC + ldr r0, _0202356C ; =0x000204A0 + mov r1, #0x0 + str r1, [r5, r0] + add r1, r0, #0x4 + ldr r0, [sp, #0x8] + ldr r2, [sp, #0x10] + str r0, [r5, r1] + ldr r0, [r4, #0x4] + add r1, r6, #0x0 + lsl r0, r0, #0xc + bl sub_020235EC + add sp, #0x14 + add r0, r6, #0x0 + pop {r4-r7, pc} +_020234CC: + ldr r0, [sp, #0xc] + cmp r0, #0x0 + bne _020234F6 + cmp r7, #0x1 + bne _020234F6 + ldr r0, _0202356C ; =0x000204A0 + mov r1, #0x1 + str r1, [r5, r0] + add r1, r0, #0x4 + ldr r0, [sp, #0x4] + ldr r2, [sp, #0x10] + str r0, [r5, r1] + ldr r0, [r4, #0x4] + add r1, r6, #0x0 + add r0, #0x40 + lsl r0, r0, #0xc + bl sub_020235EC + add sp, #0x14 + add r0, r6, #0x0 + pop {r4-r7, pc} +_020234F6: + ldr r0, [sp, #0xc] + cmp r0, #0x1 + bne _0202354C + cmp r7, #0x1 + bne _0202354C + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + bl sub_020229B8 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + ldr r0, _0202356C ; =0x000204A0 + beq _0202352E + mov r1, #0x0 + str r1, [r5, r0] + add r1, r0, #0x4 + ldr r0, [sp, #0x8] + ldr r2, [sp, #0x10] + str r0, [r5, r1] + ldr r0, [r4, #0x4] + add r1, r6, #0x0 + lsl r0, r0, #0xc + bl sub_020235EC + add sp, #0x14 + add r0, r6, #0x0 + pop {r4-r7, pc} +_0202352E: + mov r1, #0x1 + str r1, [r5, r0] + add r1, r0, #0x4 + ldr r0, [sp, #0x4] + ldr r2, [sp, #0x10] + str r0, [r5, r1] + ldr r0, [r4, #0x4] + add r1, r6, #0x0 + add r0, #0x40 + lsl r0, r0, #0xc + bl sub_020235EC + add sp, #0x14 + add r0, r6, #0x0 + pop {r4-r7, pc} +_0202354C: + ldr r0, [sp, #0x0] + mov r1, #0x2 + str r1, [r0, #0x0] + ldr r0, _0202356C ; =0x000204A0 + mov r1, #0x0 + str r1, [r5, r0] + add r0, r0, #0x4 + str r1, [r5, r0] + add r0, r6, #0x0 + add sp, #0x14 + pop {r4-r7, pc} + nop +_02023564: .word 0x020EE6D8 +_02023568: .word 0x020EE6E0 +_0202356C: .word 0x000204A0 + + thumb_func_start sub_02023570 +sub_02023570: ; 0x02023570 + push {r3-r5, lr} + blx sub_020CA0A0 + add r4, r0, #0x0 + mov r0, #0x2 + mvn r0, r0 + cmp r4, r0 + bne _02023584 + bl sub_02020C2C +_02023584: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + blx sub_020D66B0 + ldr r0, _020235C8 ; =0x00001302 + blx sub_020D6DC4 + cmp r0, #0x0 + beq _0202359A + ldr r5, _020235C8 ; =0x00001302 + b _020235AA +_0202359A: + ldr r0, _020235CC ; =0x00001202 + blx sub_020D6DC4 + cmp r0, #0x0 + beq _020235A8 + ldr r5, _020235CC ; =0x00001202 + b _020235AA +_020235A8: + mov r5, #0x0 +_020235AA: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + blx sub_020D66A0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + blx sub_020CA0F8 + cmp r5, #0x0 + beq _020235C2 + mov r0, #0x1 + pop {r3-r5, pc} +_020235C2: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_020235C8: .word 0x00001302 +_020235CC: .word 0x00001202 + + thumb_func_start sub_020235D0 +sub_020235D0: ; 0x020235D0 + push {r3-r5, lr} + bl sub_02023668 + add r5, r0, #0x0 + add r4, sp, #0x0 +_020235DA: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020236E4 + cmp r0, #0x0 + beq _020235DA + ldr r0, [sp, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020235EC +sub_020235EC: ; 0x020235EC + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + blx sub_020CA0A0 + add r4, r0, #0x0 + mov r0, #0x2 + mvn r0, r0 + cmp r4, r0 + bne _02023608 + bl sub_02020C2C +_02023608: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + blx sub_020D66B0 + mov r3, #0x0 + str r3, [sp, #0x0] + mov r1, #0x1 + str r1, [sp, #0x4] + mov r0, #0x6 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + str r3, [sp, #0x10] + blx sub_020D6F20 + blx sub_020D6DB8 + add r5, r0, #0x0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + blx sub_020D66A0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + blx sub_020CA0F8 + cmp r5, #0x0 + bne _02023652 + ldr r0, _02023658 ; =0x021C59C8 + ldr r0, [r0, #0x0] + bl sub_02016A18 + mov r0, #0x1 + bl sub_02089D90 +_02023652: + add r0, r5, #0x0 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02023658: .word 0x021C59C8 + + thumb_func_start sub_0202365C +sub_0202365C: ; 0x0202365C + ldr r0, _02023664 ; =0x021C59C8 + mov r1, #0x1 + str r1, [r0, #0x4] + bx lr + .balign 4 +_02023664: .word 0x021C59C8 + + thumb_func_start sub_02023668 +sub_02023668: ; 0x02023668 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + blx sub_020CA0A0 + add r4, r0, #0x0 + mov r0, #0x2 + mvn r0, r0 + cmp r4, r0 + bne _02023684 + bl sub_02020C2C +_02023684: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + blx sub_020D66B0 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r1, #0x6 + str r1, [sp, #0x8] + mov r1, #0x1 + str r1, [sp, #0xc] + add r1, sp, #0x14 + mov r2, #0x4 + add r3, r0, #0x0 + str r0, [sp, #0x10] + blx sub_020D6F20 + cmp r0, #0x0 + bne _020236B2 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02023740 +_020236B2: + ldr r0, _020236DC ; =0x021C59C8 + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r0, #0x7 + str r0, [sp, #0x8] + mov r0, #0xa + str r0, [sp, #0xc] + mov r0, #0x2 + str r0, [sp, #0x10] + ldr r3, _020236E0 ; =sub_0202365C + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r7, #0x0 + blx sub_020D6F20 + add r0, r4, #0x0 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_020236DC: .word 0x021C59C8 +_020236E0: .word sub_0202365C + 1 + + thumb_func_start sub_020236E4 +sub_020236E4: ; 0x020236E4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0202373C ; =0x021C59C8 + add r4, r1, #0x0 + ldr r0, [r0, #0x4] + cmp r0, #0x1 + bne _02023738 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + blx sub_020D66A0 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + blx sub_020CA0F8 + blx sub_020D6700 + cmp r0, #0x0 + beq _02023714 + cmp r0, #0x4 + beq _0202371E + cmp r0, #0x6 + beq _02023728 + b _0202371A +_02023714: + mov r0, #0x1 + str r0, [r4, #0x0] + b _02023734 +_0202371A: + bl sub_02020C2C +_0202371E: + mov r1, #0x0 + add r0, r5, #0x0 + str r1, [r4, #0x0] + bl sub_02023740 +_02023728: + mov r0, #0x0 + str r0, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02023740 +_02023734: + mov r0, #0x1 + pop {r3-r5, pc} +_02023738: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0202373C: .word 0x021C59C8 + + thumb_func_start sub_02023740 +sub_02023740: ; 0x02023740 + push {r3-r5, lr} + add r5, r0, #0x0 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + add r4, r1, #0x0 + blx sub_020D66A0 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + blx sub_020CA0F8 + ldr r0, _02023768 ; =0x021C59C8 + ldr r0, [r0, #0x0] + bl sub_02016A18 + mov r0, #0x1 + add r1, r4, #0x0 + bl sub_0208A0B8 + + non_word_aligned_thumb_func_start sub_02023766 +sub_02023766: ; 0x02023766 + pop {r3-r5, pc} + .balign 4 +_02023768: .word 0x021C59C8 + + thumb_func_start sub_0202376C +sub_0202376C: ; 0x0202376C + mov r0, #0x5c + bx lr + + thumb_func_start sub_02023770 +sub_02023770: ; 0x02023770 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x5c + blx sub_020CE240 + add r4, #0x10 + add r0, r4, #0x0 + bl sub_02023840 + pop {r4, pc} + + thumb_func_start sub_02023788 +sub_02023788: ; 0x02023788 + ldr r3, _02023790 ; =sub_02022610 + mov r1, #0x0 + bx r3 + nop +_02023790: .word sub_02022610 + 1 + + thumb_func_start sub_02023794 +sub_02023794: ; 0x02023794 + push {r3, lr} + bl sub_02023788 + add r0, #0x10 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020237A0 +sub_020237A0: ; 0x020237A0 + push {r4, lr} + sub sp, #0x50 + add r4, r0, #0x0 + blx sub_020CD510 + str r0, [r4, #0x0] + add r0, r4, #0x0 + add r0, #0x8 + str r1, [r4, #0x4] + blx sub_020CD5A0 + add r0, sp, #0x0 + blx sub_020CD524 + add r0, sp, #0x0 + ldrb r1, [r0, #0x2] + strb r1, [r4, #0xe] + ldrb r0, [r0, #0x3] + strb r0, [r4, #0xf] + add sp, #0x50 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020237CC +sub_020237CC: ; 0x020237CC + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r0, sp, #0x0 + blx sub_020CD5A0 + mov r2, #0x0 + add r3, sp, #0x0 +_020237DC: + add r0, r4, r2 + ldrb r1, [r3, #0x0] + ldrb r0, [r0, #0x8] + cmp r1, r0 + beq _020237EC + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_020237EC: + add r2, r2, #0x1 + add r3, r3, #0x1 + cmp r2, #0x6 + blt _020237DC + mov r0, #0x1 + add sp, #0x8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020237FC +sub_020237FC: ; 0x020237FC + push {r4, lr} + add r4, r0, #0x0 + blx sub_020CD510 + ldr r3, [r4, #0x0] + ldr r2, [r4, #0x4] + eor r0, r3 + eor r1, r2 + orr r0, r1 + bne _02023814 + mov r0, #0x1 + pop {r4, pc} +_02023814: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02023818 +sub_02023818: ; 0x02023818 + ldrb r0, [r0, #0xe] + bx lr + + thumb_func_start sub_0202381C +sub_0202381C: ; 0x0202381C + ldrb r0, [r0, #0xf] + bx lr + + thumb_func_start sub_02023820 +sub_02023820: ; 0x02023820 + add r0, #0x48 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02023828 +sub_02023828: ; 0x02023828 + add r0, #0x48 + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02023830 +sub_02023830: ; 0x02023830 + ldr r0, [r0, #0x4c] + bx lr + + thumb_func_start sub_02023834 +sub_02023834: ; 0x02023834 + ldr r2, [r0, #0x4c] + cmp r2, #0x0 + bne _0202383C + str r1, [r0, #0x4c] +_0202383C: + bx lr + .balign 4 + + thumb_func_start sub_02023840 +sub_02023840: ; 0x02023840 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1 + add r1, r4, #0x0 + str r0, [r4, #0x0] + add r0, r4, #0x4 + add r1, #0x14 + bl sub_0201265C + add r0, r4, #0x4 + blx sub_020D660C + add r1, r4, #0x0 + str r0, [r4, #0x20] + add r0, r4, #0x4 + add r1, #0x14 + blx sub_020D6578 + str r0, [r4, #0x24] + str r1, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + str r0, [r4, #0x30] + str r0, [r4, #0x34] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02023874 +sub_02023874: ; 0x02023874 + ldr r0, [r0, #0x34] + cmp r0, #0x0 + beq _0202387E + mov r0, #0x1 + bx lr +_0202387E: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02023884 +sub_02023884: ; 0x02023884 + mov r2, #0x5a + ldr r3, [r0, #0x34] + lsl r2, r2, #0x4 + cmp r3, r2 + bls _02023890 + str r2, [r0, #0x34] +_02023890: + ldr r2, [r0, #0x34] + cmp r2, r1 + bhs _0202389C + mov r1, #0x0 + str r1, [r0, #0x34] + bx lr +_0202389C: + sub r1, r2, r1 + str r1, [r0, #0x34] + bx lr + .balign 4 + + thumb_func_start sub_020238A4 +sub_020238A4: ; 0x020238A4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x5a + lsl r0, r0, #0x4 + add r1, r4, #0x0 + str r0, [r4, #0x34] + add r0, r4, #0x4 + add r1, #0x14 + bl sub_0201265C + add r0, r4, #0x4 + blx sub_020D660C + str r0, [r4, #0x20] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020238C4 +sub_020238C4: ; 0x020238C4 + mov r0, #0x2c + bx lr + + thumb_func_start sub_020238C8 +sub_020238C8: ; 0x020238C8 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x2c + blx sub_020CE240 + add r0, r4, #0x0 + bl sub_02024F50 + add r0, r4, #0x4 + bl sub_02023948 + add r0, r4, #0x0 + add r0, #0x24 + bl sub_02028910 + add r4, #0x26 + add r0, r4, #0x0 + bl sub_02029E48 + pop {r4, pc} + + thumb_func_start sub_020238F4 +sub_020238F4: ; 0x020238F4 + push {r3, lr} + mov r1, #0x1 + bl sub_02022610 + add r0, r0, #0x4 + pop {r3, pc} + + thumb_func_start sub_02023900 +sub_02023900: ; 0x02023900 + ldr r3, _02023908 ; =sub_02022610 + mov r1, #0x1 + bx r3 + nop +_02023908: .word sub_02022610 + 1 + + thumb_func_start sub_0202390C +sub_0202390C: ; 0x0202390C + push {r3, lr} + mov r1, #0x1 + bl sub_02022610 + add r0, #0x24 + pop {r3, pc} + + thumb_func_start sub_02023918 +sub_02023918: ; 0x02023918 + push {r3, lr} + mov r1, #0x1 + bl sub_02022610 + add r0, #0x26 + pop {r3, pc} + + thumb_func_start sub_02023924 +sub_02023924: ; 0x02023924 + mov r0, #0x20 + bx lr + + thumb_func_start sub_02023928 +sub_02023928: ; 0x02023928 + push {r4, lr} + mov r1, #0x20 + bl sub_02016998 + add r4, r0, #0x0 + bl sub_02023948 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202393C +sub_0202393C: ; 0x0202393C + ldr r3, _02023944 ; =sub_020CE3E0 + mov r2, #0x20 + bx r3 + nop +_02023944: .word sub_020CE3E0 + + thumb_func_start sub_02023948 +sub_02023948: ; 0x02023948 + push {r4, lr} + mov r1, #0x0 + mov r2, #0x20 + add r4, r0, #0x0 + blx sub_020DF4A4 + mov r0, #0x2 + strb r0, [r4, #0x19] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202395C +sub_0202395C: ; 0x0202395C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02002288 + cmp r0, #0x8 + blt _02023970 + bl sub_02020C2C +_02023970: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02002248 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202397C +sub_0202397C: ; 0x0202397C + ldr r3, _02023988 ; =sub_02021EF0 + add r2, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + mov r2, #0x8 + bx r3 + .balign 4 +_02023988: .word sub_02021EF0 + 1 + + thumb_func_start sub_0202398C +sub_0202398C: ; 0x0202398C + bx lr + .balign 4 + + thumb_func_start sub_02023990 +sub_02023990: ; 0x02023990 + ldr r3, _0202399C ; =sub_02021E28 + add r2, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + bx r3 + nop +_0202399C: .word sub_02021E28 + 1 + + thumb_func_start sub_020239A0 +sub_020239A0: ; 0x020239A0 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x8 + bl sub_020219F4 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02023990 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_020239B8 +sub_020239B8: ; 0x020239B8 + str r1, [r0, #0x10] + bx lr + + thumb_func_start sub_020239BC +sub_020239BC: ; 0x020239BC + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start sub_020239C0 +sub_020239C0: ; 0x020239C0 + ldr r0, [r0, #0x10] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + + thumb_func_start sub_020239C8 +sub_020239C8: ; 0x020239C8 + strb r1, [r0, #0x18] + bx lr + + thumb_func_start sub_020239CC +sub_020239CC: ; 0x020239CC + ldrb r0, [r0, #0x18] + bx lr + + thumb_func_start sub_020239D0 +sub_020239D0: ; 0x020239D0 + ldrb r3, [r0, #0x1a] + mov r0, #0x1 + add r2, r0, #0x0 + lsl r2, r1 + add r1, r3, #0x0 + tst r1, r2 + bne _020239E0 + mov r0, #0x0 +_020239E0: + bx lr + .balign 4 + + thumb_func_start sub_020239E4 +sub_020239E4: ; 0x020239E4 + ldrb r3, [r0, #0x1a] + mov r2, #0x1 + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strb r1, [r0, #0x1a] + bx lr + .balign 4 + + thumb_func_start sub_020239F4 +sub_020239F4: ; 0x020239F4 + ldrb r3, [r0, #0x1a] + mov r2, #0x0 + cmp r3, #0x0 + beq _02023A0A + mov r0, #0x1 +_020239FE: + add r1, r3, #0x0 + tst r1, r0 + beq _02023A06 + add r2, r2, #0x1 +_02023A06: + lsr r3, r3, #0x1 + bne _020239FE +_02023A0A: + add r0, r2, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02023A10 +sub_02023A10: ; 0x02023A10 + ldr r0, [r0, #0x14] + bx lr + + thumb_func_start sub_02023A14 +sub_02023A14: ; 0x02023A14 + ldr r2, _02023A24 ; =0x000F423F + cmp r1, r2 + bls _02023A1C + add r1, r2, #0x0 +_02023A1C: + str r1, [r0, #0x14] + add r0, r1, #0x0 + bx lr + nop +_02023A24: .word 0x000F423F + + thumb_func_start sub_02023A28 +sub_02023A28: ; 0x02023A28 + ldrb r0, [r0, #0x1b] + bx lr + + thumb_func_start sub_02023A2C +sub_02023A2C: ; 0x02023A2C + strb r1, [r0, #0x1b] + bx lr + + thumb_func_start sub_02023A30 +sub_02023A30: ; 0x02023A30 + ldr r2, _02023A50 ; =0x000F423F + cmp r1, r2 + bls _02023A3A + str r2, [r0, #0x14] + b _02023A40 +_02023A3A: + ldr r2, [r0, #0x14] + add r1, r2, r1 + str r1, [r0, #0x14] +_02023A40: + ldr r2, [r0, #0x14] + ldr r1, _02023A50 ; =0x000F423F + cmp r2, r1 + bls _02023A4A + str r1, [r0, #0x14] +_02023A4A: + ldr r0, [r0, #0x14] + bx lr + nop +_02023A50: .word 0x000F423F + + thumb_func_start sub_02023A54 +sub_02023A54: ; 0x02023A54 + ldr r2, [r0, #0x14] + cmp r2, r1 + bhs _02023A5E + mov r1, #0x0 + b _02023A60 +_02023A5E: + sub r1, r2, r1 +_02023A60: + str r1, [r0, #0x14] + ldr r0, [r0, #0x14] + bx lr + .balign 4 + + thumb_func_start sub_02023A68 +sub_02023A68: ; 0x02023A68 + ldrb r0, [r0, #0x1c] + bx lr + + thumb_func_start sub_02023A6C +sub_02023A6C: ; 0x02023A6C + strb r1, [r0, #0x1c] + bx lr + + thumb_func_start sub_02023A70 +sub_02023A70: ; 0x02023A70 + ldrb r0, [r0, #0x19] + bx lr + + thumb_func_start sub_02023A74 +sub_02023A74: ; 0x02023A74 + strb r1, [r0, #0x19] + bx lr + + thumb_func_start sub_02023A78 +sub_02023A78: ; 0x02023A78 + ldrb r2, [r0, #0x1d] + mov r1, #0x1 + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strb r1, [r0, #0x1d] + bx lr + .balign 4 + + thumb_func_start sub_02023A88 +sub_02023A88: ; 0x02023A88 + ldrb r0, [r0, #0x1d] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bx lr + + thumb_func_start sub_02023A90 +sub_02023A90: ; 0x02023A90 + ldrb r2, [r0, #0x1d] + mov r1, #0x2 + orr r1, r2 + strb r1, [r0, #0x1d] + bx lr + .balign 4 + + thumb_func_start sub_02023A9C +sub_02023A9C: ; 0x02023A9C + ldrb r0, [r0, #0x1d] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + bx lr + + thumb_func_start sub_02023AA4 +sub_02023AA4: ; 0x02023AA4 + push {r3-r5, lr} + mov r2, #0x7 + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020022D0 + cmp r0, #0x0 + bne _02023AC0 + ldr r1, [r5, #0x10] + ldr r0, [r4, #0x10] + cmp r1, r0 + bne _02023AC0 + mov r0, #0x1 + pop {r3-r5, pc} +_02023AC0: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02023AC4 +sub_02023AC4: ; 0x02023AC4 + mov r0, #0x20 + bx lr + + thumb_func_start sub_02023AC8 +sub_02023AC8: ; 0x02023AC8 + mov r0, #0x20 + bx lr + + thumb_func_start sub_02023ACC +sub_02023ACC: ; 0x02023ACC + ldr r3, _02023AD4 ; =sub_020CE3E0 + mov r2, #0x20 + bx r3 + nop +_02023AD4: .word sub_020CE3E0 + + thumb_func_start sub_02023AD8 +sub_02023AD8: ; 0x02023AD8 + ldr r3, _02023AE0 ; =sub_020DF4A4 + mov r1, #0x0 + mov r2, #0x20 + bx r3 + .balign 4 +_02023AE0: .word sub_020DF4A4 + + thumb_func_start sub_02023AE4 +sub_02023AE4: ; 0x02023AE4 + ldr r3, _02023AF0 ; =sub_02021E8C + add r2, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + mov r2, #0xc + bx r3 + .balign 4 +_02023AF0: .word sub_02021E8C + 1 + + thumb_func_start sub_02023AF4 +sub_02023AF4: ; 0x02023AF4 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x18 + bl sub_020219F4 + add r1, r5, #0x0 + add r4, r0, #0x0 + bl sub_02021E28 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02023B0C +sub_02023B0C: ; 0x02023B0C + mov r2, #0x0 + cmp r1, #0xc + bhi _02023B9E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r7, #0x1 + lsl r0, r3, #0 + lsl r4, r3, #0 + lsl r0, r4, #0 + lsl r4, r4, #0 + lsl r4, r5, #0 + lsl r2, r6, #0 + lsl r6, r0, #0x1 + lsl r4, r1, #0x1 + lsl r0, r4, #0x1 + lsl r0, r5, #0x1 + lsl r0, r6, #0x1 + lsl r0, r7, #0x1 + ldrb r2, [r0, #0x1a] + b _02023B9E +_02023B3C: + .byte 0xC2, 0x7E, 0x2E, 0xE0 + .byte 0x02, 0x8B, 0x2C, 0xE0, 0x80, 0x7F, 0xC0, 0x07, 0xC2, 0x0F, 0x28, 0xE0, 0x1C, 0x21, 0x42, 0x56 + .byte 0x25, 0xE0, 0x1C, 0x21, 0x40, 0x56, 0x00, 0x28, 0x01, 0xDD, 0x01, 0x22, 0x1F, 0xE0, 0x1E, 0xDA + .byte 0x0A, 0x1C, 0x1D, 0x3A, 0x1B, 0xE0, 0x1D, 0x21, 0x42, 0x56, 0x18, 0xE0, 0x1D, 0x21, 0x40, 0x56 + .byte 0x00, 0x28, 0x01, 0xDD, 0x01, 0x22, 0x12, 0xE0, 0x11, 0xDA, 0x0A, 0x1C, 0x1E, 0x3A, 0x0E, 0xE0 + .byte 0x80, 0x7F, 0x00, 0x07, 0xC2, 0x0F, 0x0A, 0xE0, 0x80, 0x7F, 0x40, 0x07, 0xC2, 0x0F, 0x06, 0xE0 + .byte 0x80, 0x7F, 0x80, 0x07, 0xC2, 0x0F, 0x02, 0xE0, 0x80, 0x7F, 0xC0, 0x06, 0xC2, 0x0F +_02023B9E: + add r0, r2, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02023BA4 +sub_02023BA4: ; 0x02023BA4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x1 + blt _02023BB2 + bl sub_02020C2C +_02023BB2: + add r0, r4, #0x0 + mov r1, #0xd + bl sub_02022610 + add r4, r0, #0x0 + lsl r5, r5, #0x5 + add r0, r4, r5 + mov r1, #0x1 + bl sub_02023B0C + cmp r0, #0x0 + beq _02023BCE + add r0, r4, r5 + pop {r3-r5, pc} +_02023BCE: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02023BD4 +sub_02023BD4: ; 0x02023BD4 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0xd + bl sub_02022610 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02023ACC + pop {r4, pc} + + thumb_func_start sub_02023BE8 +sub_02023BE8: ; 0x02023BE8 + push {r3, lr} + cmp r1, #0x5 + bhs _02023BF6 + ldr r2, _02023C00 ; =0x02105BD4 + lsl r0, r1, #0x5 + add r0, r2, r0 + pop {r3, pc} +_02023BF6: + mov r1, #0xd + bl sub_02022610 + pop {r3, pc} + nop +_02023C00: .word 0x02105BD4 + + thumb_func_start sub_02023C04 +sub_02023C04: ; 0x02023C04 + push {r4-r6, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + cmp r5, #0x5 + bhs _02023C2C + ldr r2, _02023C3C ; =0x0000013A + mov r0, #0x0 + mov r1, #0x1a + bl sub_0200A86C + add r5, #0x38 + add r6, r0, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0200A8E0 + add r0, r6, #0x0 + bl sub_0200A8B8 + pop {r4-r6, pc} +_02023C2C: + mov r1, #0x0 + bl sub_02023BA4 + add r1, r4, #0x0 + bl sub_02023AE4 + pop {r4-r6, pc} + nop +_02023C3C: .word 0x0000013A + + thumb_func_start sub_02023C40 +sub_02023C40: ; 0x02023C40 + mov r0, #0x1e + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_02023C48 +sub_02023C48: ; 0x02023C48 + push {r4, lr} + mov r2, #0x1e + add r4, r0, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x4 + blx sub_020DF4A4 + add r0, r4, #0x0 + bl sub_020669A0 + add r0, r4, #0x0 + add r0, #0xec + bl sub_020669A0 + mov r0, #0x76 + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, r0, #0x4 + strb r1, [r4, r0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02023C74 +sub_02023C74: ; 0x02023C74 + mov r2, #0xec + mul r2, r1 + add r0, r0, r2 + bx lr + + thumb_func_start sub_02023C7C +sub_02023C7C: ; 0x02023C7C + bx lr + .balign 4 + + thumb_func_start sub_02023C80 +sub_02023C80: ; 0x02023C80 + add r0, #0x88 + bx lr + + thumb_func_start sub_02023C84 +sub_02023C84: ; 0x02023C84 + add r0, #0xe8 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02023C8C +sub_02023C8C: ; 0x02023C8C + bx lr + .balign 4 + + thumb_func_start sub_02023C90 +sub_02023C90: ; 0x02023C90 + mov r1, #0x76 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + bx lr + + thumb_func_start sub_02023C98 +sub_02023C98: ; 0x02023C98 + mov r1, #0x77 + lsl r1, r1, #0x2 + ldrb r0, [r0, r1] + bx lr + + thumb_func_start sub_02023CA0 +sub_02023CA0: ; 0x02023CA0 + add r0, #0xe8 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02023CA8 +sub_02023CA8: ; 0x02023CA8 + add r2, r0, #0x0 + add r2, #0xe8 + ldr r2, [r2, #0x0] + add r0, #0xe8 + add r1, r2, r1 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02023CB8 +sub_02023CB8: ; 0x02023CB8 + mov r2, #0x76 + lsl r2, r2, #0x2 + str r1, [r0, r2] + bx lr + + thumb_func_start sub_02023CC0 +sub_02023CC0: ; 0x02023CC0 + mov r2, #0x77 + lsl r2, r2, #0x2 + strb r1, [r0, r2] + bx lr + + thumb_func_start sub_02023CC8 +sub_02023CC8: ; 0x02023CC8 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0xc + mov r2, #0x0 + bl sub_020672BC + add r5, #0xec + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xc + mov r2, #0x0 + bl sub_020672BC + cmp r4, r0 + beq _02023CEA + mov r0, #0x1 + pop {r3-r5, pc} +_02023CEA: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02023CF0 +sub_02023CF0: ; 0x02023CF0 + push {r3-r4} + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r2, #0x1d +_02023CF8: + ldmia r3!, {r0-r1} + stmia r4!, {r0-r1} + sub r2, r2, #0x1 + bne _02023CF8 + ldr r0, [r3, #0x0] + str r0, [r4, #0x0] + pop {r3-r4} + bx lr + + thumb_func_start sub_02023D08 +sub_02023D08: ; 0x02023D08 + push {r3-r4} + mov r1, #0x0 + add r2, r0, #0x0 + add r4, r1, #0x0 +_02023D10: + add r1, r1, #0x1 + strh r4, [r2, #0x38] + add r2, r2, #0x2 + cmp r1, #0x8 + blt _02023D10 + add r3, r0, #0x0 + mov r2, #0x0 +_02023D1E: + add r1, r3, #0x0 + add r1, #0x48 + add r4, r4, #0x1 + add r3, r3, #0x2 + strh r2, [r1, #0x0] + cmp r4, #0xb + blt _02023D1E + ldr r1, _02023D38 ; =0x0000FFFF + strh r1, [r0, #0x38] + add r0, #0x48 + strh r1, [r0, #0x0] + pop {r3-r4} + bx lr + .balign 4 +_02023D38: .word 0x0000FFFF + + thumb_func_start sub_02023D3C +sub_02023D3C: ; 0x02023D3C + push {r4, lr} + add r4, r0, #0x0 + bl sub_020669A0 + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0xe8 + add r4, #0x88 + str r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_02023D08 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02023D58 +sub_02023D58: ; 0x02023D58 + ldr r3, _02023D60 ; =sub_02022610 + mov r1, #0x8 + bx r3 + nop +_02023D60: .word sub_02022610 + 1 + + thumb_func_start sub_02023D64 +sub_02023D64: ; 0x02023D64 + mov r0, #0x4f + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start sub_02023D6C +sub_02023D6C: ; 0x02023D6C + push {r4, lr} + mov r1, #0x4f + lsl r1, r1, #0x2 + bl sub_02016998 + add r4, r0, #0x0 + bl sub_02024378 + add r0, r4, #0x0 + pop {r4, pc} + + thumb_func_start sub_02023D80 +sub_02023D80: ; 0x02023D80 + ldr r3, _02023D88 ; =sub_020CE3E0 + mov r2, #0x4f + lsl r2, r2, #0x2 + bx r3 + .balign 4 +_02023D88: .word sub_020CE3E0 + + thumb_func_start sub_02023D8C +sub_02023D8C: ; 0x02023D8C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02023DE8 ; =0x000001A6 + add r4, r1, #0x0 + cmp r4, r0 + beq _02023DA2 + add r0, r0, #0x1 + cmp r4, r0 + beq _02023DA2 + bl sub_02020C2C +_02023DA2: + lsl r1, r4, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + bl sub_020245F0 + cmp r0, #0x0 + bne _02023DB4 + mov r0, #0x0 + pop {r3-r5, pc} +_02023DB4: + ldr r0, _02023DE8 ; =0x000001A6 + cmp r4, r0 + bne _02023DBE + sub r0, #0x9e + b _02023DC0 +_02023DBE: + sub r0, #0x9d +_02023DC0: + add r0, r5, r0 + ldrb r1, [r0, #0x0] + mov r2, #0x1 + add r0, r1, #0x0 + tst r0, r2 + bne _02023DCE + mov r2, #0x0 +_02023DCE: + mov r0, #0x2 + tst r0, r1 + beq _02023DD8 + mov r0, #0x1 + b _02023DDA +_02023DD8: + mov r0, #0x0 +_02023DDA: + cmp r2, r0 + bne _02023DE2 + mov r0, #0x1 + pop {r3-r5, pc} +_02023DE2: + mov r0, #0x2 + pop {r3-r5, pc} + nop +_02023DE8: .word 0x000001A6 + + thumb_func_start sub_02023DEC +sub_02023DEC: ; 0x02023DEC + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _02023E6C ; =0x000001A6 + add r6, r1, #0x0 + add r5, r2, #0x0 + cmp r6, r0 + beq _02023E04 + add r0, r0, #0x1 + cmp r6, r0 + beq _02023E04 + bl sub_02020C2C +_02023E04: + lsl r1, r6, #0x10 + add r0, r7, #0x0 + lsr r1, r1, #0x10 + bl sub_020245F0 + cmp r0, #0x0 + bne _02023E16 + mov r0, #0x0 + pop {r3-r7, pc} +_02023E16: + ldr r0, _02023E6C ; =0x000001A6 + cmp r6, r0 + bne _02023E20 + sub r0, #0x9e + b _02023E22 +_02023E20: + sub r0, #0x9d +_02023E22: + add r4, r7, r0 + add r0, r7, #0x0 + add r1, r6, #0x0 + bl sub_02023D8C + mov r6, #0x0 + cmp r0, #0x0 + bls _02023E66 + mov r1, #0x1 +_02023E34: + add r2, r6, #0x1 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + sub r2, r2, #0x1 + lsl r2, r2, #0x10 + lsr r3, r2, #0x10 + add r7, r3, #0x0 + mov r2, #0x7 + asr r3, r3, #0x3 + and r7, r2 + add r2, r1, #0x0 + ldrb r3, [r4, r3] + lsl r2, r7 + tst r2, r3 + beq _02023E56 + add r2, r1, #0x0 + b _02023E58 +_02023E56: + mov r2, #0x0 +_02023E58: + cmp r2, r5 + bne _02023E60 + mov r0, #0x1 + pop {r3-r7, pc} +_02023E60: + add r6, r6, #0x1 + cmp r6, r0 + blo _02023E34 +_02023E66: + mov r0, #0x0 + pop {r3-r7, pc} + nop +_02023E6C: .word 0x000001A6 + + thumb_func_start sub_02023E70 +sub_02023E70: ; 0x02023E70 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, _02023F28 ; =0x000001A6 + add r5, r1, #0x0 + add r7, r2, #0x0 + cmp r5, r0 + beq _02023E88 + add r0, r0, #0x1 + cmp r5, r0 + beq _02023E88 + bl sub_02020C2C +_02023E88: + lsl r2, r7, #0x18 + add r0, r6, #0x0 + add r1, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_02023DEC + cmp r0, #0x0 + bne _02023F26 + ldr r0, _02023F28 ; =0x000001A6 + cmp r5, r0 + bne _02023EA2 + sub r0, #0x9e + b _02023EA4 +_02023EA2: + sub r0, #0x9d +_02023EA4: + add r4, r6, r0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_02023D8C + add r5, r0, #0x0 + cmp r5, #0x2 + bge _02023F26 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x2 + blo _02023EC6 + bl sub_02020C2C +_02023EC6: + sub r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + add r2, r1, #0x0 + mov r0, #0x7 + and r2, r0 + asr r1, r1, #0x3 + mov r3, #0x1 + lsl r3, r2 + ldrb r0, [r4, r1] + mvn r3, r3 + and r0, r3 + strb r0, [r4, r1] + lsl r0, r7, #0x18 + lsr r6, r0, #0x18 + add r0, r6, #0x0 + ldrb r3, [r4, r1] + lsl r0, r2 + orr r0, r3 + strb r0, [r4, r1] + cmp r5, #0x0 + bne _02023F26 + add r0, r5, #0x2 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r6, #0x2 + blo _02023F00 + bl sub_02020C2C +_02023F00: + sub r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r0, #0x7 + add r1, r2, #0x0 + and r1, r0 + asr r0, r2, #0x3 + mov r2, #0x1 + lsl r2, r1 + ldrb r3, [r4, r0] + mvn r2, r2 + and r2, r3 + strb r2, [r4, r0] + add r2, r6, #0x0 + ldrb r3, [r4, r0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strb r1, [r4, r0] +_02023F26: + pop {r3-r7, pc} + .balign 4 +_02023F28: .word 0x000001A6 + + thumb_func_start sub_02023F2C +sub_02023F2C: ; 0x02023F2C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x67 + add r4, r1, #0x0 + lsl r0, r0, #0x2 + cmp r4, r0 + beq _02023F44 + add r0, r0, #0x1 + cmp r4, r0 + beq _02023F44 + bl sub_02020C2C +_02023F44: + lsl r1, r4, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + bl sub_020245F0 + cmp r0, #0x0 + bne _02023F56 + mov r0, #0x0 + pop {r3-r5, pc} +_02023F56: + mov r0, #0x67 + lsl r0, r0, #0x2 + cmp r4, r0 + bne _02023F62 + sub r0, #0x92 + b _02023F64 +_02023F62: + sub r0, #0x91 +_02023F64: + add r1, r5, r0 + mov r0, #0x0 + mov r3, #0x3 +_02023F6A: + lsl r2, r0, #0x10 + lsr r5, r2, #0x10 + asr r2, r5, #0x2 + ldrb r4, [r1, r2] + lsl r2, r5, #0x1e + lsr r2, r2, #0x1d + asr r4, r2 + add r2, r4, #0x0 + and r2, r3 + cmp r2, #0x3 + beq _02023F86 + add r0, r0, #0x1 + cmp r0, #0x3 + blt _02023F6A +_02023F86: + pop {r3-r5, pc} + + thumb_func_start sub_02023F88 +sub_02023F88: ; 0x02023F88 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r0, #0x67 + add r5, r1, #0x0 + lsl r0, r0, #0x2 + add r4, r2, #0x0 + cmp r5, r0 + beq _02023FA2 + add r0, r0, #0x1 + cmp r5, r0 + beq _02023FA2 + bl sub_02020C2C +_02023FA2: + lsl r1, r5, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_020245F0 + cmp r0, #0x0 + bne _02023FB4 + mov r0, #0x0 + pop {r4-r6, pc} +_02023FB4: + mov r0, #0x67 + lsl r0, r0, #0x2 + cmp r5, r0 + bne _02023FC0 + sub r0, #0x92 + b _02023FC2 +_02023FC0: + sub r0, #0x91 +_02023FC2: + add r1, r6, r0 + mov r0, #0x0 + mov r3, #0x3 +_02023FC8: + lsl r2, r0, #0x10 + lsr r6, r2, #0x10 + asr r2, r6, #0x2 + ldrb r5, [r1, r2] + lsl r2, r6, #0x1e + lsr r2, r2, #0x1d + asr r5, r2 + add r2, r5, #0x0 + and r2, r3 + cmp r2, r4 + bne _02023FE2 + mov r0, #0x1 + pop {r4-r6, pc} +_02023FE2: + add r0, r0, #0x1 + cmp r0, #0x3 + blt _02023FC8 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02023FEC +sub_02023FEC: ; 0x02023FEC + push {r3-r7, lr} + add r6, r0, #0x0 + mov r0, #0x67 + add r5, r1, #0x0 + lsl r0, r0, #0x2 + add r7, r2, #0x0 + cmp r5, r0 + beq _02024006 + add r0, r0, #0x1 + cmp r5, r0 + beq _02024006 + bl sub_02020C2C +_02024006: + lsl r2, r7, #0x18 + add r0, r6, #0x0 + add r1, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_02023F88 + cmp r0, #0x0 + bne _02024064 + mov r0, #0x67 + lsl r0, r0, #0x2 + cmp r5, r0 + bne _02024022 + sub r0, #0x92 + b _02024024 +_02024022: + sub r0, #0x91 +_02024024: + add r4, r6, r0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_02023F2C + add r5, r0, #0x0 + cmp r5, #0x3 + bge _02024064 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x4 + blo _02024040 + bl sub_02020C2C +_02024040: + lsl r0, r5, #0x10 + lsr r2, r0, #0x10 + lsl r0, r2, #0x1e + lsr r1, r0, #0x1d + asr r0, r2, #0x2 + mov r2, #0x3 + lsl r2, r1 + ldrb r3, [r4, r0] + mvn r2, r2 + and r2, r3 + strb r2, [r4, r0] + lsl r2, r7, #0x18 + lsr r2, r2, #0x18 + ldrb r3, [r4, r0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strb r1, [r4, r0] +_02024064: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02024068 +sub_02024068: ; 0x02024068 + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r6, #0x4 + blo _02024078 + bl sub_02020C2C +_02024078: + cmp r4, #0xf + bls _02024080 + bl sub_02020C2C +_02024080: + cmp r6, #0x2 + bhs _0202409E + lsl r0, r6, #0x2 + add r0, #0x18 + mov r1, #0xf + lsl r1, r0 + ldr r2, [r5, #0x40] + mvn r1, r1 + and r2, r1 + add r1, r4, #0x0 + lsl r1, r0 + add r0, r2, #0x0 + orr r0, r1 + str r0, [r5, #0x40] + pop {r4-r6, pc} +_0202409E: + sub r0, r6, #0x2 + lsl r0, r0, #0x18 + add r1, r5, #0x0 + lsr r0, r0, #0x16 + add r1, #0x80 + ldr r2, [r1, #0x0] + add r0, #0x18 + mov r1, #0xf + lsl r1, r0 + mvn r1, r1 + and r2, r1 + add r1, r5, #0x0 + add r1, #0x80 + str r2, [r1, #0x0] + add r1, r5, #0x0 + add r1, #0x80 + ldr r2, [r1, #0x0] + add r1, r4, #0x0 + lsl r1, r0 + add r0, r2, #0x0 + orr r0, r1 + add r5, #0x80 + str r0, [r5, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020240D0 +sub_020240D0: ; 0x020240D0 + push {r3-r6} + mov r3, #0xf + mov r1, #0x0 + add r4, r3, #0x0 +_020240D8: + lsl r2, r1, #0x18 + lsr r6, r2, #0x18 + cmp r6, #0x2 + bhs _020240EE + lsl r2, r6, #0x2 + ldr r5, [r0, #0x40] + add r2, #0x18 + lsr r5, r2 + add r2, r5, #0x0 + and r2, r4 + b _02024102 +_020240EE: + add r2, r0, #0x0 + add r2, #0x80 + ldr r5, [r2, #0x0] + sub r2, r6, #0x2 + lsl r2, r2, #0x18 + lsr r2, r2, #0x16 + add r2, #0x18 + lsr r5, r2 + add r2, r5, #0x0 + and r2, r3 +_02024102: + cmp r2, #0xf + beq _0202410C + add r1, r1, #0x1 + cmp r1, #0x4 + blt _020240D8 +_0202410C: + add r0, r1, #0x0 + pop {r3-r6} + bx lr + .balign 4 + + thumb_func_start sub_02024114 +sub_02024114: ; 0x02024114 + push {r4-r7} + mov r2, #0xf + mov r6, #0x0 + add r3, r2, #0x0 +_0202411C: + lsl r4, r6, #0x18 + lsr r5, r4, #0x18 + cmp r5, #0x2 + bhs _02024134 + ldr r7, [r0, #0x40] + lsl r4, r5, #0x2 + add r4, #0x18 + add r5, r7, #0x0 + lsr r5, r4 + add r4, r5, #0x0 + and r4, r3 + b _02024146 +_02024134: + add r4, r0, #0x0 + sub r5, r5, #0x2 + add r4, #0x80 + lsl r5, r5, #0x18 + lsr r5, r5, #0x16 + ldr r4, [r4, #0x0] + add r5, #0x18 + lsr r4, r5 + and r4, r2 +_02024146: + cmp r1, r4 + bne _02024150 + mov r0, #0x1 + pop {r4-r7} + bx lr +_02024150: + add r6, r6, #0x1 + cmp r6, #0x4 + blt _0202411C + mov r0, #0x0 + pop {r4-r7} + bx lr + + thumb_func_start sub_0202415C +sub_0202415C: ; 0x0202415C + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, _02024198 ; =0x00000182 + cmp r6, r0 + bne _02024196 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02024114 + cmp r0, #0x0 + bne _02024196 + add r0, r5, #0x0 + bl sub_020240D0 + add r2, r0, #0x0 + lsl r2, r2, #0x18 + add r0, r5, #0x0 + add r1, r4, #0x0 + lsr r2, r2, #0x18 + bl sub_02024068 +_02024196: + pop {r4-r6, pc} + .balign 4 +_02024198: .word 0x00000182 + + thumb_func_start sub_0202419C +sub_0202419C: ; 0x0202419C + push {r4-r6, lr} + add r5, r0, #0x0 + mov r4, #0x0 + mov r6, #0xf +_020241A4: + lsl r2, r4, #0x18 + add r0, r5, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x18 + bl sub_02024068 + add r4, r4, #0x1 + cmp r4, #0x4 + blt _020241A4 + pop {r4-r6, pc} + + thumb_func_start sub_020241B8 +sub_020241B8: ; 0x020241B8 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xc9 + bne _02024210 + add r0, r2, #0x0 + bl sub_020690CC + lsl r1, r0, #0x18 + lsr r3, r1, #0x18 + mov r1, #0x43 + mov r4, #0x0 + add r6, r5, #0x0 + lsl r1, r1, #0x2 +_020241D4: + ldrb r2, [r6, r1] + cmp r3, r2 + bne _020241DE + mov r1, #0x1 + b _020241E8 +_020241DE: + add r4, r4, #0x1 + add r6, r6, #0x1 + cmp r4, #0x1c + blt _020241D4 + mov r1, #0x0 +_020241E8: + cmp r1, #0x0 + bne _02024290 + mov r1, #0x43 + mov r3, #0x0 + add r4, r5, #0x0 + lsl r1, r1, #0x2 +_020241F4: + ldrb r2, [r4, r1] + cmp r2, #0xff + beq _02024202 + add r3, r3, #0x1 + add r4, r4, #0x1 + cmp r3, #0x1c + blt _020241F4 +_02024202: + cmp r3, #0x1c + bge _02024290 + mov r1, #0x43 + add r2, r5, r3 + lsl r1, r1, #0x2 + strb r0, [r2, r1] + pop {r4-r6, pc} +_02024210: + mov r6, #0x67 + lsl r6, r6, #0x2 + cmp r4, r6 + bne _0202422E + add r0, r2, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02023FEC + pop {r4-r6, pc} +_0202422E: + add r3, r6, #0x1 + cmp r4, r3 + bne _0202424A + add r0, r2, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02023FEC + pop {r4-r6, pc} +_0202424A: + add r3, r6, #0x0 + add r3, #0xa + cmp r4, r3 + bne _02024268 + add r0, r2, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02023E70 + pop {r4-r6, pc} +_02024268: + add r3, r6, #0x0 + add r3, #0xb + cmp r4, r3 + bne _02024286 + add r0, r2, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02023E70 + pop {r4-r6, pc} +_02024286: + sub r6, #0x1a + cmp r4, r6 + bne _02024290 + bl sub_0202415C +_02024290: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02024294 +sub_02024294: ; 0x02024294 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r0, r1, #0x0 + bl sub_02087A50 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02087A1C + cmp r4, #0xe + beq _020242C0 + cmp r0, #0x6 + beq _020242C0 + ldr r1, _020242C4 ; =0x00000129 + add r3, r5, r1 + ldrb r2, [r3, r4] + mov r1, #0x1 + lsl r1, r0 + add r0, r2, #0x0 + orr r0, r1 + strb r0, [r3, r4] +_020242C0: + pop {r4-r6, pc} + nop +_020242C4: .word 0x00000129 + + thumb_func_start sub_020242C8 +sub_020242C8: ; 0x020242C8 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x12 + add r4, r2, #0x0 + bl sub_02068678 + cmp r0, #0xff + bne _020242EA + cmp r4, #0x0 + bne _020242E4 + mov r0, #0x2 + pop {r4-r6, pc} +_020242E4: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_020242EA: + sub r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r1, #0x1 + mov r0, #0x7 + add r3, r2, #0x0 + and r3, r0 + add r0, r1, #0x0 + lsl r0, r3 + asr r3, r2, #0x3 + add r3, r5, r3 + add r3, #0x84 + ldrb r3, [r3, #0x0] + tst r0, r3 + bne _0202430A + mov r1, #0x0 +_0202430A: + lsl r0, r1, #0x18 + lsr r1, r0, #0x18 + cmp r4, #0x1 + bne _0202433A + add r4, r2, #0x0 + asr r2, r2, #0x3 + add r2, r5, r2 + mov r0, #0x7 + add r2, #0xc4 + mov r3, #0x1 + and r4, r0 + add r0, r3, #0x0 + ldrb r2, [r2, #0x0] + lsl r0, r4 + tst r0, r2 + bne _0202432C + mov r3, #0x0 +_0202432C: + lsl r0, r3, #0x18 + lsr r0, r0, #0x18 + cmp r0, r1 + bne _0202433C + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_0202433A: + add r0, r1, #0x0 +_0202433C: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02024340 +sub_02024340: ; 0x02024340 + push {r4-r5} + mov r3, #0x0 + ldr r5, _02024360 ; =0x020EE942 + mov r4, #0x1 + add r1, r3, #0x0 +_0202434A: + ldrh r2, [r5, #0x0] + cmp r0, r2 + bne _02024352 + add r4, r1, #0x0 +_02024352: + add r3, r3, #0x1 + add r5, r5, #0x2 + cmp r3, #0xb + blt _0202434A + add r0, r4, #0x0 + pop {r4-r5} + bx lr + .balign 4 +_02024360: .word 0x020EE942 + + thumb_func_start sub_02024364 +sub_02024364: ; 0x02024364 + ldr r1, _02024374 ; =0x000001EA + mov r2, #0x1 + cmp r0, r1 + bne _0202436E + mov r2, #0x0 +_0202436E: + add r0, r2, #0x0 + bx lr + nop +_02024374: .word 0x000001EA + + thumb_func_start sub_02024378 +sub_02024378: ; 0x02024378 + push {r4, lr} + mov r2, #0x4f + mov r1, #0x0 + lsl r2, r2, #0x2 + add r4, r0, #0x0 + blx sub_020DF4A4 + ldr r0, _020243C0 ; =0xBEEFCAFE + mov r1, #0x0 + str r0, [r4, #0x0] + ldr r0, _020243C4 ; =0x00000139 + mov r2, #0x1c + strb r1, [r4, r0] + sub r0, #0x2d + add r0, r4, r0 + mov r1, #0xff + blx sub_020DF4A4 + mov r1, #0xff + add r0, r1, #0x0 + add r0, #0x9 + strb r1, [r4, r0] + add r0, r1, #0x0 + add r0, #0xa + strb r1, [r4, r0] + add r0, r1, #0x0 + add r0, #0xb + strb r1, [r4, r0] + add r0, r1, #0x0 + add r0, #0xc + strb r1, [r4, r0] + add r0, r4, #0x0 + bl sub_0202419C + pop {r4, pc} + nop +_020243C0: .word 0xBEEFCAFE +_020243C4: .word 0x00000139 + + thumb_func_start sub_020243C8 +sub_020243C8: ; 0x020243C8 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r1, [r6, #0x0] + ldr r0, _020243FC ; =0xBEEFCAFE + cmp r1, r0 + beq _020243D8 + bl sub_02020C2C +_020243D8: + ldr r7, _02024400 ; =0x000001ED + mov r5, #0x0 + mov r4, #0x1 +_020243DE: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_02024594 + cmp r0, #0x1 + bne _020243EE + add r5, r5, #0x1 +_020243EE: + add r4, r4, #0x1 + cmp r4, r7 + ble _020243DE + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + pop {r3-r7, pc} + nop +_020243FC: .word 0xBEEFCAFE +_02024400: .word 0x000001ED + + thumb_func_start sub_02024404 +sub_02024404: ; 0x02024404 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r1, [r6, #0x0] + ldr r0, _02024438 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024414 + bl sub_02020C2C +_02024414: + ldr r7, _0202443C ; =0x000001ED + mov r5, #0x0 + mov r4, #0x1 +_0202441A: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_020245F0 + cmp r0, #0x1 + bne _0202442A + add r5, r5, #0x1 +_0202442A: + add r4, r4, #0x1 + cmp r4, r7 + ble _0202441A + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + pop {r3-r7, pc} + nop +_02024438: .word 0xBEEFCAFE +_0202443C: .word 0x000001ED + + thumb_func_start sub_02024440 +sub_02024440: ; 0x02024440 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02024CA4 + cmp r0, #0x0 + beq _02024454 + add r0, r4, #0x0 + bl sub_02024404 + pop {r4, pc} +_02024454: + add r0, r4, #0x0 + bl sub_020244A4 + pop {r4, pc} + + thumb_func_start sub_0202445C +sub_0202445C: ; 0x0202445C + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r1, [r6, #0x0] + ldr r0, _0202449C ; =0xBEEFCAFE + cmp r1, r0 + beq _0202446C + bl sub_02020C2C +_0202446C: + ldr r7, _020244A0 ; =0x000001ED + mov r5, #0x0 + mov r4, #0x1 +_02024472: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_02024594 + cmp r0, #0x1 + bne _0202448E + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl sub_02069B40 + cmp r0, #0x0 + beq _0202448E + add r5, r5, #0x1 +_0202448E: + add r4, r4, #0x1 + cmp r4, r7 + ble _02024472 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + pop {r3-r7, pc} + nop +_0202449C: .word 0xBEEFCAFE +_020244A0: .word 0x000001ED + + thumb_func_start sub_020244A4 +sub_020244A4: ; 0x020244A4 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r1, [r6, #0x0] + ldr r0, _020244E4 ; =0xBEEFCAFE + cmp r1, r0 + beq _020244B4 + bl sub_02020C2C +_020244B4: + ldr r7, _020244E8 ; =0x000001ED + mov r5, #0x0 + mov r4, #0x1 +_020244BA: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_020245F0 + cmp r0, #0x1 + bne _020244D6 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl sub_02069B40 + cmp r0, #0x0 + beq _020244D6 + add r5, r5, #0x1 +_020244D6: + add r4, r4, #0x1 + cmp r4, r7 + ble _020244BA + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + pop {r3-r7, pc} + nop +_020244E4: .word 0xBEEFCAFE +_020244E8: .word 0x000001ED + + thumb_func_start sub_020244EC +sub_020244EC: ; 0x020244EC + push {r3, lr} + bl sub_02024518 + ldr r1, _02024500 ; =0x000001E2 + cmp r0, r1 + blo _020244FC + mov r0, #0x1 + pop {r3, pc} +_020244FC: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_02024500: .word 0x000001E2 + + thumb_func_start sub_02024504 +sub_02024504: ; 0x02024504 + push {r3, lr} + bl sub_02024550 + cmp r0, #0x96 + blo _02024512 + mov r0, #0x1 + pop {r3, pc} +_02024512: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02024518 +sub_02024518: ; 0x02024518 + push {r3-r7, lr} + ldr r7, _0202454C ; =0x000001ED + add r6, r0, #0x0 + mov r5, #0x0 + mov r4, #0x1 +_02024522: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_02024594 + cmp r0, #0x1 + bne _02024542 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl sub_02024340 + cmp r0, #0x1 + bne _02024542 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +_02024542: + add r4, r4, #0x1 + cmp r4, r7 + ble _02024522 + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_0202454C: .word 0x000001ED + + thumb_func_start sub_02024550 +sub_02024550: ; 0x02024550 + push {r3-r7, lr} + ldr r7, _02024590 ; =0x000001ED + add r6, r0, #0x0 + mov r5, #0x0 + mov r4, #0x1 +_0202455A: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_020245F0 + cmp r0, #0x1 + bne _02024586 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl sub_02069B40 + cmp r0, #0x0 + beq _02024586 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl sub_02024364 + cmp r0, #0x1 + bne _02024586 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +_02024586: + add r4, r4, #0x1 + cmp r4, r7 + ble _0202455A + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_02024590: .word 0x000001ED + + thumb_func_start sub_02024594 +sub_02024594: ; 0x02024594 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020245E8 ; =0xBEEFCAFE + cmp r1, r0 + beq _020245A6 + bl sub_02020C2C +_020245A6: + cmp r4, #0x0 + beq _020245B0 + ldr r0, _020245EC ; =0x000001ED + cmp r4, r0 + bls _020245B8 +_020245B0: + bl sub_02020C2C + mov r0, #0x1 + b _020245BA +_020245B8: + mov r0, #0x0 +_020245BA: + cmp r0, #0x0 + beq _020245C2 + mov r0, #0x0 + pop {r3-r5, pc} +_020245C2: + sub r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r0, #0x1 + mov r1, #0x7 + and r1, r2 + add r3, r0, #0x0 + lsl r3, r1 + asr r1, r2, #0x3 + add r2, r5, r1 + ldrb r1, [r2, #0x4] + tst r1, r3 + beq _020245E4 + add r2, #0x44 + ldrb r1, [r2, #0x0] + tst r1, r3 + bne _020245E6 +_020245E4: + mov r0, #0x0 +_020245E6: + pop {r3-r5, pc} + .balign 4 +_020245E8: .word 0xBEEFCAFE +_020245EC: .word 0x000001ED + + thumb_func_start sub_020245F0 +sub_020245F0: ; 0x020245F0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024640 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024602 + bl sub_02020C2C +_02024602: + cmp r4, #0x0 + beq _0202460C + ldr r0, _02024644 ; =0x000001ED + cmp r4, r0 + bls _02024614 +_0202460C: + bl sub_02020C2C + mov r0, #0x1 + b _02024616 +_02024614: + mov r0, #0x0 +_02024616: + cmp r0, #0x0 + beq _0202461E + mov r0, #0x0 + pop {r3-r5, pc} +_0202461E: + sub r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + mov r0, #0x1 + mov r1, #0x7 + and r1, r3 + add r2, r0, #0x0 + lsl r2, r1 + asr r1, r3, #0x3 + add r1, r5, r1 + add r1, #0x44 + ldrb r1, [r1, #0x0] + tst r1, r2 + bne _0202463C + mov r0, #0x0 +_0202463C: + pop {r3-r5, pc} + nop +_02024640: .word 0xBEEFCAFE +_02024644: .word 0x000001ED + + thumb_func_start sub_02024648 +sub_02024648: ; 0x02024648 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024670 ; =0xBEEFCAFE + cmp r1, r0 + beq _0202465A + bl sub_02020C2C +_0202465A: + cmp r4, #0x0 + bne _02024666 + mov r0, #0x41 + lsl r0, r0, #0x2 + ldr r6, [r5, r0] + b _0202466A +_02024666: + bl sub_02020C2C +_0202466A: + add r0, r6, #0x0 + pop {r4-r6, pc} + nop +_02024670: .word 0xBEEFCAFE + + thumb_func_start sub_02024674 +sub_02024674: ; 0x02024674 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020246D4 ; =0xBEEFCAFE + add r6, r2, #0x0 + cmp r1, r0 + beq _02024688 + bl sub_02020C2C +_02024688: + cmp r4, #0x0 + beq _02024692 + ldr r0, _020246D8 ; =0x000001ED + cmp r4, r0 + bls _0202469A +_02024692: + bl sub_02020C2C + mov r0, #0x1 + b _0202469C +_0202469A: + mov r0, #0x0 +_0202469C: + cmp r0, #0x0 + beq _020246A6 + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_020246A6: + sub r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + add r3, r2, #0x0 + asr r2, r2, #0x3 + add r2, r5, r2 + mov r0, #0x7 + add r2, #0x44 + mov r1, #0x1 + and r3, r0 + ldrb r2, [r2, #0x0] + lsl r1, r3 + tst r1, r2 + beq _020246CE + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020242C8 + pop {r4-r6, pc} +_020246CE: + sub r0, #0x8 + pop {r4-r6, pc} + nop +_020246D4: .word 0xBEEFCAFE +_020246D8: .word 0x000001ED + + thumb_func_start sub_020246DC +sub_020246DC: ; 0x020246DC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024718 ; =0xBEEFCAFE + cmp r1, r0 + beq _020246EE + bl sub_02020C2C +_020246EE: + mov r0, #0x43 + mov r2, #0x0 + lsl r0, r0, #0x2 +_020246F4: + add r1, r5, r2 + ldrb r1, [r1, r0] + cmp r1, #0xff + beq _02024702 + add r2, r2, #0x1 + cmp r2, #0x1c + blt _020246F4 +_02024702: + cmp r2, r4 + bgt _0202470C + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0202470C: + mov r0, #0x43 + add r1, r5, r4 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + pop {r3-r5, pc} + nop +_02024718: .word 0xBEEFCAFE + + thumb_func_start sub_0202471C +sub_0202471C: ; 0x0202471C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024744 ; =0xBEEFCAFE + cmp r1, r0 + beq _0202472C + bl sub_02020C2C +_0202472C: + mov r1, #0x43 + mov r0, #0x0 + lsl r1, r1, #0x2 +_02024732: + add r2, r4, r0 + ldrb r2, [r2, r1] + cmp r2, #0xff + beq _02024740 + add r0, r0, #0x1 + cmp r0, #0x1c + blt _02024732 +_02024740: + pop {r4, pc} + nop +_02024744: .word 0xBEEFCAFE + + thumb_func_start sub_02024748 +sub_02024748: ; 0x02024748 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _0202479C ; =0xBEEFCAFE + cmp r1, r0 + beq _0202475A + bl sub_02020C2C +_0202475A: + ldr r1, _020247A0 ; =0x000001A6 + add r0, r5, #0x0 + bl sub_02023D8C + cmp r0, r4 + bgt _0202476C + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0202476C: + cmp r4, #0x2 + blt _02024774 + bl sub_02020C2C +_02024774: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + sub r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r0, #0x1 + mov r1, #0x7 + and r1, r2 + add r3, r0, #0x0 + lsl r3, r1 + asr r1, r2, #0x3 + add r2, r5, r1 + mov r1, #0x42 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + tst r1, r3 + bne _0202479A + mov r0, #0x0 +_0202479A: + pop {r3-r5, pc} + .balign 4 +_0202479C: .word 0xBEEFCAFE +_020247A0: .word 0x000001A6 + + thumb_func_start sub_020247A4 +sub_020247A4: ; 0x020247A4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _020247C0 ; =0xBEEFCAFE + cmp r1, r0 + beq _020247B4 + bl sub_02020C2C +_020247B4: + ldr r1, _020247C4 ; =0x000001A6 + add r0, r4, #0x0 + bl sub_02023D8C + pop {r4, pc} + nop +_020247C0: .word 0xBEEFCAFE +_020247C4: .word 0x000001A6 + + thumb_func_start sub_020247C8 +sub_020247C8: ; 0x020247C8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _0202481C ; =0xBEEFCAFE + cmp r1, r0 + beq _020247DA + bl sub_02020C2C +_020247DA: + ldr r1, _02024820 ; =0x000001A7 + add r0, r5, #0x0 + bl sub_02023D8C + cmp r0, r4 + bgt _020247EC + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_020247EC: + cmp r4, #0x2 + blt _020247F4 + bl sub_02020C2C +_020247F4: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + sub r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r0, #0x1 + mov r1, #0x7 + and r1, r2 + add r3, r0, #0x0 + lsl r3, r1 + asr r1, r2, #0x3 + add r2, r5, r1 + ldr r1, _02024824 ; =0x00000109 + ldrb r1, [r2, r1] + tst r1, r3 + bne _02024818 + mov r0, #0x0 +_02024818: + pop {r3-r5, pc} + nop +_0202481C: .word 0xBEEFCAFE +_02024820: .word 0x000001A7 +_02024824: .word 0x00000109 + + thumb_func_start sub_02024828 +sub_02024828: ; 0x02024828 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024844 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024838 + bl sub_02020C2C +_02024838: + ldr r1, _02024848 ; =0x000001A7 + add r0, r4, #0x0 + bl sub_02023D8C + pop {r4, pc} + nop +_02024844: .word 0xBEEFCAFE +_02024848: .word 0x000001A7 + + thumb_func_start sub_0202484C +sub_0202484C: ; 0x0202484C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024894 ; =0xBEEFCAFE + cmp r1, r0 + beq _0202485E + bl sub_02020C2C +_0202485E: + mov r1, #0x67 + add r0, r5, #0x0 + lsl r1, r1, #0x2 + bl sub_02023F2C + cmp r0, r4 + bgt _02024872 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_02024872: + cmp r4, #0x3 + blt _0202487A + bl sub_02020C2C +_0202487A: + lsl r0, r4, #0x10 + lsr r2, r0, #0x10 + asr r0, r2, #0x2 + add r1, r5, r0 + ldr r0, _02024898 ; =0x0000010A + ldrb r1, [r1, r0] + lsl r0, r2, #0x1e + lsr r0, r0, #0x1d + asr r1, r0 + mov r0, #0x3 + and r0, r1 + pop {r3-r5, pc} + nop +_02024894: .word 0xBEEFCAFE +_02024898: .word 0x0000010A + + thumb_func_start sub_0202489C +sub_0202489C: ; 0x0202489C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _020248B8 ; =0xBEEFCAFE + cmp r1, r0 + beq _020248AC + bl sub_02020C2C +_020248AC: + mov r1, #0x67 + add r0, r4, #0x0 + lsl r1, r1, #0x2 + bl sub_02023F2C + pop {r4, pc} + .balign 4 +_020248B8: .word 0xBEEFCAFE + + thumb_func_start sub_020248BC +sub_020248BC: ; 0x020248BC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024900 ; =0xBEEFCAFE + cmp r1, r0 + beq _020248CE + bl sub_02020C2C +_020248CE: + ldr r1, _02024904 ; =0x0000019D + add r0, r5, #0x0 + bl sub_02023F2C + cmp r0, r4 + bgt _020248E0 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_020248E0: + cmp r4, #0x3 + blt _020248E8 + bl sub_02020C2C +_020248E8: + lsl r0, r4, #0x10 + lsr r2, r0, #0x10 + asr r0, r2, #0x2 + add r1, r5, r0 + ldr r0, _02024908 ; =0x0000010B + ldrb r1, [r1, r0] + lsl r0, r2, #0x1e + lsr r0, r0, #0x1d + asr r1, r0 + mov r0, #0x3 + and r0, r1 + pop {r3-r5, pc} + .balign 4 +_02024900: .word 0xBEEFCAFE +_02024904: .word 0x0000019D +_02024908: .word 0x0000010B + + thumb_func_start sub_0202490C +sub_0202490C: ; 0x0202490C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024928 ; =0xBEEFCAFE + cmp r1, r0 + beq _0202491C + bl sub_02020C2C +_0202491C: + ldr r1, _0202492C ; =0x0000019D + add r0, r4, #0x0 + bl sub_02023F2C + pop {r4, pc} + nop +_02024928: .word 0xBEEFCAFE +_0202492C: .word 0x0000019D + + thumb_func_start sub_02024930 +sub_02024930: ; 0x02024930 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _0202496C ; =0xBEEFCAFE + cmp r1, r0 + beq _02024942 + bl sub_02020C2C +_02024942: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x2 + bhs _02024958 + lsl r0, r0, #0x2 + ldr r1, [r5, #0x40] + add r0, #0x18 + lsr r1, r0 + mov r0, #0xf + and r0, r1 + pop {r3-r5, pc} +_02024958: + add r5, #0x80 + sub r0, r0, #0x2 + lsl r0, r0, #0x18 + ldr r1, [r5, #0x0] + lsr r0, r0, #0x16 + add r0, #0x18 + lsr r1, r0 + mov r0, #0xf + and r0, r1 + pop {r3-r5, pc} + .balign 4 +_0202496C: .word 0xBEEFCAFE + + thumb_func_start sub_02024970 +sub_02024970: ; 0x02024970 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024988 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024980 + bl sub_02020C2C +_02024980: + add r0, r4, #0x0 + bl sub_020240D0 + pop {r4, pc} + .balign 4 +_02024988: .word 0xBEEFCAFE + + thumb_func_start sub_0202498C +sub_0202498C: ; 0x0202498C + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + str r1, [sp, #0x0] + add r0, r1, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + mov r1, #0x0 + ldr r0, [sp, #0x0] + add r2, r1, #0x0 + bl sub_020671BC + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_020689E0 + add r6, r0, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024AE4 ; =0xBEEFCAFE + cmp r1, r0 + beq _020249C4 + bl sub_02020C2C +_020249C4: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _020249D0 + ldr r1, _02024AE8 ; =0x000001ED + cmp r0, r1 + bls _020249D8 +_020249D0: + bl sub_02020C2C + mov r0, #0x1 + b _020249DA +_020249D8: + mov r0, #0x0 +_020249DA: + cmp r0, #0x0 + bne _02024ADE + ldr r0, [sp, #0x4] + mov r2, #0x1 + sub r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + mov r0, #0x7 + and r0, r4 + add r1, r2, #0x0 + lsl r1, r0 + asr r0, r4, #0x3 + add r3, r5, r0 + add r3, #0x44 + ldrb r3, [r3, #0x0] + tst r3, r1 + bne _02024A70 + ldr r1, _02024AEC ; =0x00000147 + ldr r0, [sp, #0x4] + cmp r0, r1 + bne _02024A08 + sub r1, #0x43 + str r7, [r5, r1] +_02024A08: + lsl r0, r6, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x2 + bls _02024A14 + bl sub_02020C2C +_02024A14: + cmp r6, #0x2 + bne _02024A1A + mov r6, #0x0 +_02024A1A: + cmp r6, #0x2 + blo _02024A22 + bl sub_02020C2C +_02024A22: + add r2, r5, #0x0 + mov r0, #0x7 + add r3, r4, #0x0 + and r3, r0 + mov r0, #0x1 + lsl r0, r3 + add r2, #0xc4 + asr r1, r4, #0x3 + ldrb r7, [r2, r1] + mvn r0, r0 + and r0, r7 + strb r0, [r2, r1] + add r0, r6, #0x0 + ldrb r7, [r2, r1] + lsl r0, r3 + orr r0, r7 + strb r0, [r2, r1] + cmp r6, #0x2 + blo _02024A4C + bl sub_02020C2C +_02024A4C: + add r1, r5, #0x0 + mov r0, #0x7 + add r2, r4, #0x0 + and r2, r0 + mov r3, #0x1 + lsl r3, r2 + add r1, #0x84 + asr r0, r4, #0x3 + ldrb r7, [r1, r0] + mvn r3, r3 + lsl r6, r2 + and r3, r7 + strb r3, [r1, r0] + ldrb r3, [r1, r0] + add r2, r3, #0x0 + orr r2, r6 + strb r2, [r1, r0] + b _02024AC0 +_02024A70: + add r0, r5, r0 + add r0, #0x84 + ldrb r0, [r0, #0x0] + tst r0, r1 + bne _02024A7C + mov r2, #0x0 +_02024A7C: + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + cmp r0, r6 + beq _02024AC0 + lsl r0, r6, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x2 + bls _02024A90 + bl sub_02020C2C +_02024A90: + cmp r6, #0x2 + bne _02024A96 + mov r6, #0x0 +_02024A96: + cmp r6, #0x2 + blo _02024A9E + bl sub_02020C2C +_02024A9E: + add r1, r5, #0x0 + mov r0, #0x7 + add r2, r4, #0x0 + and r2, r0 + mov r3, #0x1 + lsl r3, r2 + add r1, #0xc4 + asr r0, r4, #0x3 + ldrb r7, [r1, r0] + mvn r3, r3 + lsl r6, r2 + and r3, r7 + strb r3, [r1, r0] + ldrb r3, [r1, r0] + add r2, r3, #0x0 + orr r2, r6 + strb r2, [r1, r0] +_02024AC0: + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + bl sub_020241B8 + mov r1, #0x7 + add r5, #0x44 + asr r0, r4, #0x3 + ldrb r3, [r5, r0] + mov r2, #0x1 + and r1, r4 + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strb r1, [r5, r0] +_02024ADE: + add sp, #0x8 + pop {r3-r7, pc} + nop +_02024AE4: .word 0xBEEFCAFE +_02024AE8: .word 0x000001ED +_02024AEC: .word 0x00000147 + + thumb_func_start sub_02024AF0 +sub_02024AF0: ; 0x02024AF0 + push {r4-r7, lr} + sub sp, #0x14 + add r4, r0, #0x0 + str r1, [sp, #0x0] + add r0, r1, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + ldr r0, [sp, #0x0] + mov r1, #0xc + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x8] + mov r1, #0x0 + ldr r0, [sp, #0x0] + add r2, r1, #0x0 + bl sub_020671BC + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + bl sub_020689E0 + add r7, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024C78 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024B32 + bl sub_02020C2C +_02024B32: + cmp r6, #0x0 + beq _02024B3C + ldr r0, _02024C7C ; =0x000001ED + cmp r6, r0 + bls _02024B44 +_02024B3C: + bl sub_02020C2C + mov r0, #0x1 + b _02024B46 +_02024B44: + mov r0, #0x0 +_02024B46: + cmp r0, #0x0 + beq _02024B4C + b _02024C72 +_02024B4C: + sub r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + mov r0, #0x1 + mov r1, #0x7 + and r1, r5 + add r2, r0, #0x0 + asr r3, r5, #0x3 + lsl r2, r1 + add r1, r4, r3 + add r1, #0x44 + ldrb r1, [r1, #0x0] + tst r1, r2 + bne _02024BEA + ldr r1, _02024C80 ; =0x00000147 + cmp r6, r1 + bne _02024B74 + ldr r0, [sp, #0x4] + sub r1, #0x43 + str r0, [r4, r1] +_02024B74: + lsl r0, r7, #0x18 + lsr r7, r0, #0x18 + cmp r7, #0x2 + bls _02024B80 + bl sub_02020C2C +_02024B80: + cmp r7, #0x2 + bne _02024B86 + mov r7, #0x0 +_02024B86: + cmp r7, #0x2 + blo _02024B8E + bl sub_02020C2C +_02024B8E: + mov r0, #0x7 + and r0, r5 + str r0, [sp, #0x10] + add r0, r4, #0x0 + add r0, #0xc4 + asr r3, r5, #0x3 + ldrb r1, [r0, r3] + mov r2, #0x1 + str r1, [sp, #0xc] + ldr r1, [sp, #0x10] + lsl r2, r1 + ldr r1, [sp, #0xc] + mvn r2, r2 + and r1, r2 + strb r1, [r0, r3] + ldrb r1, [r0, r3] + add r2, r7, #0x0 + mov r12, r1 + ldr r1, [sp, #0x10] + lsl r2, r1 + mov r1, r12 + orr r1, r2 + strb r1, [r0, r3] + cmp r7, #0x2 + blo _02024BC4 + bl sub_02020C2C +_02024BC4: + add r1, r4, #0x0 + mov r0, #0x7 + add r2, r5, #0x0 + and r2, r0 + mov r3, #0x1 + lsl r3, r2 + add r1, #0x84 + asr r0, r5, #0x3 + ldrb r5, [r1, r0] + mvn r3, r3 + and r3, r5 + strb r3, [r1, r0] + add r5, r7, #0x0 + ldrb r3, [r1, r0] + lsl r5, r2 + add r2, r3, #0x0 + orr r2, r5 + strb r2, [r1, r0] + b _02024C3C +_02024BEA: + add r1, r4, r3 + add r1, #0x84 + ldrb r1, [r1, #0x0] + tst r1, r2 + bne _02024BF6 + mov r0, #0x0 +_02024BF6: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, r7 + beq _02024C3C + lsl r0, r7, #0x18 + lsr r7, r0, #0x18 + cmp r7, #0x2 + bls _02024C0A + bl sub_02020C2C +_02024C0A: + cmp r7, #0x2 + bne _02024C10 + mov r7, #0x0 +_02024C10: + cmp r7, #0x2 + blo _02024C18 + bl sub_02020C2C +_02024C18: + add r1, r4, #0x0 + mov r0, #0x7 + add r2, r5, #0x0 + and r2, r0 + mov r3, #0x1 + lsl r3, r2 + add r1, #0xc4 + asr r0, r5, #0x3 + ldrb r5, [r1, r0] + mvn r3, r3 + and r3, r5 + strb r3, [r1, r0] + add r5, r7, #0x0 + ldrb r3, [r1, r0] + lsl r5, r2 + add r2, r3, #0x0 + orr r2, r5 + strb r2, [r1, r0] +_02024C3C: + ldr r2, [sp, #0x0] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_020241B8 + ldr r2, [sp, #0x8] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_02024294 + sub r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r1, r4, #0x4 + asr r0, r6, #0x3 + mov r2, #0x7 + ldrb r5, [r1, r0] + mov r3, #0x1 + and r2, r6 + lsl r3, r2 + add r2, r5, #0x0 + orr r2, r3 + add r4, #0x44 + strb r2, [r1, r0] + ldrb r1, [r4, r0] + orr r1, r3 + strb r1, [r4, r0] +_02024C72: + add sp, #0x14 + pop {r4-r7, pc} + nop +_02024C78: .word 0xBEEFCAFE +_02024C7C: .word 0x000001ED +_02024C80: .word 0x00000147 + + thumb_func_start sub_02024C84 +sub_02024C84: ; 0x02024C84 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024C9C ; =0xBEEFCAFE + cmp r1, r0 + beq _02024C94 + bl sub_02020C2C +_02024C94: + ldr r0, _02024CA0 ; =0x00000139 + mov r1, #0x1 + strb r1, [r4, r0] + pop {r4, pc} + .balign 4 +_02024C9C: .word 0xBEEFCAFE +_02024CA0: .word 0x00000139 + + thumb_func_start sub_02024CA4 +sub_02024CA4: ; 0x02024CA4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024CBC ; =0xBEEFCAFE + cmp r1, r0 + beq _02024CB4 + bl sub_02020C2C +_02024CB4: + ldr r0, _02024CC0 ; =0x00000139 + ldrb r0, [r4, r0] + pop {r4, pc} + nop +_02024CBC: .word 0xBEEFCAFE +_02024CC0: .word 0x00000139 + + thumb_func_start sub_02024CC4 +sub_02024CC4: ; 0x02024CC4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024CDC ; =0xBEEFCAFE + cmp r1, r0 + beq _02024CD4 + bl sub_02020C2C +_02024CD4: + mov r0, #0x4a + lsl r0, r0, #0x2 + ldrb r0, [r4, r0] + pop {r4, pc} + .balign 4 +_02024CDC: .word 0xBEEFCAFE + + thumb_func_start sub_02024CE0 +sub_02024CE0: ; 0x02024CE0 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024CFC ; =0xBEEFCAFE + cmp r1, r0 + beq _02024CF0 + bl sub_02020C2C +_02024CF0: + mov r0, #0x4a + mov r1, #0x1 + lsl r0, r0, #0x2 + strb r1, [r4, r0] + pop {r4, pc} + nop +_02024CFC: .word 0xBEEFCAFE + + thumb_func_start sub_02024D00 +sub_02024D00: ; 0x02024D00 + push {r4-r6, lr} + add r6, r2, #0x0 + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r6, #0x8 + blo _02024D10 + bl sub_02020C2C +_02024D10: + ldr r1, [r4, #0x0] + ldr r0, _02024D44 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024D1C + bl sub_02020C2C +_02024D1C: + add r0, r5, #0x0 + bl sub_02087A50 + add r5, r0, #0x0 + cmp r5, #0xe + bne _02024D2C + mov r0, #0x0 + pop {r4-r6, pc} +_02024D2C: + add r0, r6, #0x0 + bl sub_02087A1C + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r0 + ldr r0, _02024D48 ; =0x00000129 + add r1, r4, r5 + ldrb r0, [r1, r0] + and r0, r2 + pop {r4-r6, pc} + nop +_02024D44: .word 0xBEEFCAFE +_02024D48: .word 0x00000129 + + thumb_func_start sub_02024D4C +sub_02024D4C: ; 0x02024D4C + ldr r1, _02024D54 ; =0x00000137 + mov r2, #0x1 + strb r2, [r0, r1] + bx lr + .balign 4 +_02024D54: .word 0x00000137 + + thumb_func_start sub_02024D58 +sub_02024D58: ; 0x02024D58 + ldr r1, _02024D60 ; =0x00000137 + ldrb r0, [r0, r1] + bx lr + nop +_02024D60: .word 0x00000137 + + thumb_func_start sub_02024D64 +sub_02024D64: ; 0x02024D64 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024D7C ; =0xBEEFCAFE + cmp r1, r0 + beq _02024D74 + bl sub_02020C2C +_02024D74: + mov r0, #0x4e + lsl r0, r0, #0x2 + ldrb r0, [r4, r0] + pop {r4, pc} + .balign 4 +_02024D7C: .word 0xBEEFCAFE + + thumb_func_start sub_02024D80 +sub_02024D80: ; 0x02024D80 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024D9C ; =0xBEEFCAFE + cmp r1, r0 + beq _02024D90 + bl sub_02020C2C +_02024D90: + mov r0, #0x4e + mov r1, #0x1 + lsl r0, r0, #0x2 + strb r1, [r4, r0] + pop {r4, pc} + nop +_02024D9C: .word 0xBEEFCAFE + + thumb_func_start sub_02024DA0 +sub_02024DA0: ; 0x02024DA0 + ldr r3, _02024DA8 ; =sub_02022610 + mov r1, #0x7 + bx r3 + nop +_02024DA8: .word sub_02022610 + 1 + + thumb_func_start sub_02024DAC +sub_02024DAC: ; 0x02024DAC + push {r3-r5, lr} + add r4, r2, #0x0 + ldr r2, _02024E60 ; =0x0000019D + add r5, r0, #0x0 + cmp r1, r2 + bgt _02024DD6 + sub r3, r2, #0x1 + cmp r1, r3 + blt _02024DC6 + beq _02024E24 + cmp r1, r2 + beq _02024E36 + b _02024E5A +_02024DC6: + cmp r1, #0xc9 + bgt _02024DCE + beq _02024DEE + b _02024E5A +_02024DCE: + sub r2, #0x1b + cmp r1, r2 + beq _02024E48 + b _02024E5A +_02024DD6: + add r3, r2, #0x0 + add r3, #0x9 + cmp r1, r3 + bgt _02024DE6 + add r2, #0x9 + cmp r1, r2 + beq _02024E00 + b _02024E5A +_02024DE6: + add r2, #0xa + cmp r1, r2 + beq _02024E12 + b _02024E5A +_02024DEE: + bl sub_0202471C + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020246DC + pop {r3-r5, pc} +_02024E00: + bl sub_020247A4 + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02024748 + pop {r3-r5, pc} +_02024E12: + bl sub_02024828 + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020247C8 + pop {r3-r5, pc} +_02024E24: + bl sub_0202489C + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0202484C + pop {r3-r5, pc} +_02024E36: + bl sub_0202490C + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020248BC + pop {r3-r5, pc} +_02024E48: + bl sub_02024970 + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02024930 + pop {r3-r5, pc} +_02024E5A: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02024E60: .word 0x0000019D + + thumb_func_start sub_02024E64 +sub_02024E64: ; 0x02024E64 + ldr r0, _02024E68 ; =0x0000074C + bx lr + .balign 4 +_02024E68: .word 0x0000074C + + thumb_func_start sub_02024E6C +sub_02024E6C: ; 0x02024E6C + push {r4, lr} + add r4, r0, #0x0 + ldr r2, _02024EA4 ; =0x0000074C + mov r0, #0x0 + add r1, r4, #0x0 + blx sub_020CE240 + add r0, r4, #0x0 + bl sub_020250A4 + mov r0, #0x7 + lsl r0, r0, #0x8 + add r0, r4, r0 + bl sub_02025484 + ldr r1, _02024EA8 ; =0x00000724 + ldr r0, _02024EAC ; =0x0000FFFF + add r1, r4, r1 + mov r2, #0x8 + blx sub_020CE1C8 + ldr r1, _02024EB0 ; =0x00000734 + ldr r0, _02024EAC ; =0x0000FFFF + add r1, r4, r1 + mov r2, #0xb + blx sub_020CE1C8 + pop {r4, pc} + .balign 4 +_02024EA4: .word 0x0000074C +_02024EA8: .word 0x00000724 +_02024EAC: .word 0x0000FFFF +_02024EB0: .word 0x00000734 + + thumb_func_start sub_02024EB4 +sub_02024EB4: ; 0x02024EB4 + ldr r3, _02024EBC ; =sub_02022610 + mov r1, #0xa + bx r3 + nop +_02024EBC: .word sub_02022610 + 1 + + thumb_func_start sub_02024EC0 +sub_02024EC0: ; 0x02024EC0 + ldr r3, _02024EC8 ; =0x02022635 + mov r1, #0xa + bx r3 + nop +_02024EC8: .word 0x02022635 + + thumb_func_start sub_02024ECC +sub_02024ECC: ; 0x02024ECC + ldr r3, _02024ED4 ; =sub_02022610 + mov r1, #0xa + bx r3 + nop +_02024ED4: .word sub_02022610 + 1 + + thumb_func_start sub_02024ED8 +sub_02024ED8: ; 0x02024ED8 + push {r3, lr} + mov r1, #0xa + bl sub_02022610 + mov r1, #0x7 + lsl r1, r1, #0x8 + add r0, r0, r1 + pop {r3, pc} + + thumb_func_start sub_02024EE8 +sub_02024EE8: ; 0x02024EE8 + ldr r1, _02024EF0 ; =0x00000724 + add r0, r0, r1 + bx lr + nop +_02024EF0: .word 0x00000724 + + thumb_func_start sub_02024EF4 +sub_02024EF4: ; 0x02024EF4 + add r2, r0, #0x0 + add r0, r1, #0x0 + ldr r1, _02024F04 ; =0x00000724 + ldr r3, _02024F08 ; =sub_02021EF0 + add r1, r2, r1 + mov r2, #0x8 + bx r3 + nop +_02024F04: .word 0x00000724 +_02024F08: .word sub_02021EF0 + 1 + + thumb_func_start sub_02024F0C +sub_02024F0C: ; 0x02024F0C + ldr r1, _02024F14 ; =0x00000734 + add r0, r0, r1 + bx lr + nop +_02024F14: .word 0x00000734 + + thumb_func_start sub_02024F18 +sub_02024F18: ; 0x02024F18 + add r2, r0, #0x0 + add r0, r1, #0x0 + ldr r1, _02024F28 ; =0x00000734 + ldr r3, _02024F2C ; =sub_02021EF0 + add r1, r2, r1 + mov r2, #0xb + bx r3 + nop +_02024F28: .word 0x00000734 +_02024F2C: .word sub_02021EF0 + 1 + + thumb_func_start sub_02024F30 +sub_02024F30: ; 0x02024F30 + push {r4, lr} + mov r1, #0x2 + bl sub_02016998 + add r4, r0, #0x0 + bl sub_02024F50 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02024F44 +sub_02024F44: ; 0x02024F44 + ldr r3, _02024F4C ; =sub_020CE3E0 + mov r2, #0x2 + bx r3 + nop +_02024F4C: .word sub_020CE3E0 + + thumb_func_start sub_02024F50 +sub_02024F50: ; 0x02024F50 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x2 + blx sub_020CE34C + ldrh r1, [r4, #0x0] + mov r0, #0xf + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strh r0, [r4, #0x0] + ldrh r1, [r4, #0x0] + mov r0, #0x30 + bic r1, r0 + strh r1, [r4, #0x0] + ldrh r1, [r4, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r4, #0x0] + ldrh r1, [r4, #0x0] + mov r0, #0x80 + bic r1, r0 + strh r1, [r4, #0x0] + ldrh r1, [r4, #0x0] + ldr r0, _02024F94 ; =0xFFFFFCFF + and r0, r1 + strh r0, [r4, #0x0] + ldrh r1, [r4, #0x0] + ldr r0, _02024F98 ; =0xFFFF83FF + and r0, r1 + strh r0, [r4, #0x0] + pop {r4, pc} + nop +_02024F94: .word 0xFFFFFCFF +_02024F98: .word 0xFFFF83FF + + thumb_func_start sub_02024F9C +sub_02024F9C: ; 0x02024F9C + push {r3, lr} + cmp r0, #0x0 + beq _02024FAC + bl sub_02023900 + bl sub_02025064 + add r1, r0, #0x0 +_02024FAC: + cmp r1, #0x0 + beq _02024FCA + cmp r1, #0x1 + beq _02024FBA + cmp r1, #0x2 + beq _02024FC2 + b _02024FCA +_02024FBA: + ldr r0, _02024FD4 ; =0x021C48B8 + mov r1, #0x1 + str r1, [r0, #0x34] + pop {r3, pc} +_02024FC2: + ldr r0, _02024FD4 ; =0x021C48B8 + mov r1, #0x3 + str r1, [r0, #0x34] + pop {r3, pc} +_02024FCA: + ldr r0, _02024FD4 ; =0x021C48B8 + mov r1, #0x0 + str r1, [r0, #0x34] + pop {r3, pc} + nop +_02024FD4: .word 0x021C48B8 + + thumb_func_start sub_02024FD8 +sub_02024FD8: ; 0x02024FD8 + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + bx lr + + thumb_func_start sub_02024FE0 +sub_02024FE0: ; 0x02024FE0 + ldrh r3, [r0, #0x0] + mov r2, #0xf + lsl r1, r1, #0x10 + bic r3, r2 + lsr r2, r1, #0x10 + mov r1, #0xf + and r1, r2 + orr r1, r3 + strh r1, [r0, #0x0] + bx lr + + thumb_func_start sub_02024FF4 +sub_02024FF4: ; 0x02024FF4 + push {r3, lr} + bl sub_02024FD8 + cmp r0, #0x0 + bne _02025002 + mov r0, #0x8 + pop {r3, pc} +_02025002: + cmp r0, #0x1 + bne _0202500A + mov r0, #0x4 + pop {r3, pc} +_0202500A: + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02025010 +sub_02025010: ; 0x02025010 + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1e + bx lr + + thumb_func_start sub_02025018 +sub_02025018: ; 0x02025018 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1e + ldrh r3, [r0, #0x0] + mov r2, #0x30 + lsr r1, r1, #0x1a + bic r3, r2 + orr r1, r3 + strh r1, [r0, #0x0] + bx lr + + thumb_func_start sub_0202502C +sub_0202502C: ; 0x0202502C + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + bx lr + + thumb_func_start sub_02025034 +sub_02025034: ; 0x02025034 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1f + ldrh r3, [r0, #0x0] + mov r2, #0x80 + lsr r1, r1, #0x18 + bic r3, r2 + orr r1, r3 + strh r1, [r0, #0x0] + bx lr + + thumb_func_start sub_02025048 +sub_02025048: ; 0x02025048 + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x19 + lsr r0, r0, #0x1f + bx lr + + thumb_func_start sub_02025050 +sub_02025050: ; 0x02025050 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1f + ldrh r3, [r0, #0x0] + mov r2, #0x40 + lsr r1, r1, #0x19 + bic r3, r2 + orr r1, r3 + strh r1, [r0, #0x0] + bx lr + + thumb_func_start sub_02025064 +sub_02025064: ; 0x02025064 + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x16 + lsr r0, r0, #0x1e + bx lr + + thumb_func_start sub_0202506C +sub_0202506C: ; 0x0202506C + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1e + ldrh r3, [r0, #0x0] + ldr r2, _02025080 ; =0xFFFFFCFF + lsr r1, r1, #0x16 + and r2, r3 + orr r1, r2 + strh r1, [r0, #0x0] + bx lr + .balign 4 +_02025080: .word 0xFFFFFCFF + + thumb_func_start sub_02025084 +sub_02025084: ; 0x02025084 + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x11 + lsr r0, r0, #0x1b + bx lr + + thumb_func_start sub_0202508C +sub_0202508C: ; 0x0202508C + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1b + ldrh r3, [r0, #0x0] + ldr r2, _020250A0 ; =0xFFFF83FF + lsr r1, r1, #0x11 + and r2, r3 + orr r1, r2 + strh r1, [r0, #0x0] + bx lr + .balign 4 +_020250A0: .word 0xFFFF83FF + + thumb_func_start sub_020250A4 +sub_020250A4: ; 0x020250A4 + push {r4, lr} + mov r2, #0x7 + mov r1, #0x0 + lsl r2, r2, #0x8 + add r4, r0, #0x0 + blx sub_020CE34C + mov r1, #0x0 + add r0, r1, #0x0 +_020250B6: + strb r0, [r4, #0x1] + strb r0, [r4, #0x0] + add r1, r1, #0x1 + add r4, #0xe + cmp r1, #0x80 + blt _020250B6 + pop {r4, pc} + + thumb_func_start sub_020250C4 +sub_020250C4: ; 0x020250C4 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r0, r1, #0x0 + str r2, [sp, #0x0] + str r3, [sp, #0x4] + bl sub_02025128 + mov r4, #0x0 + str r0, [sp, #0x8] + add r6, r4, #0x0 + b _02025112 +_020250DC: + add r0, r5, #0x0 + bl sub_02025184 + ldr r0, [sp, #0x0] + lsl r1, r6, #0x1 + add r7, r0, r1 + ldrh r0, [r0, r1] + sub r0, #0x94 + strb r0, [r5, #0x0] + mov r0, #0x5 + strb r0, [r5, #0x1] + ldrb r1, [r5, #0x0] + ldrb r2, [r5, #0xc] + ldr r0, [sp, #0x8] + bl sub_020251B0 + lsl r0, r0, #0x2 + strh r0, [r5, #0x2] + ldrh r0, [r7, #0x2] + add r6, r6, #0x2 + add r4, r4, #0x1 + strh r0, [r5, #0x8] + mov r0, #0x64 + strb r0, [r5, #0xa] + mov r0, #0x3 + strb r0, [r5, #0xb] + add r5, #0xe +_02025112: + cmp r4, #0x80 + blt _020250DC + ldr r0, [sp, #0x4] + cmp r4, r0 + blt _020250DC + ldr r0, [sp, #0x8] + bl sub_02016A18 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02025128 +sub_02025128: ; 0x02025128 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r0, #0x0 + bl sub_02085258 + str r0, [sp, #0x0] + add r0, r7, #0x0 + mov r1, #0xc0 + bl sub_02016998 + str r0, [sp, #0x4] + mov r6, #0x0 + add r5, r0, #0x0 +_02025142: + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02085264 + add r4, r0, #0x0 + mov r1, #0x3 + bl sub_02085290 + strb r0, [r5, #0x0] + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_02085290 + strb r0, [r5, #0x1] + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02085290 + strb r0, [r5, #0x2] + add r0, r4, #0x0 + bl sub_02016A18 + add r6, r6, #0x1 + add r5, r5, #0x3 + cmp r6, #0x40 + blt _02025142 + ldr r0, [sp, #0x0] + bl sub_0208526C + ldr r0, [sp, #0x4] + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02025184 +sub_02025184: ; 0x02025184 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strh r1, [r0, #0x2] + strh r1, [r0, #0x4] + strb r1, [r0, #0x6] + strh r1, [r0, #0x8] + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + strb r1, [r0, #0xc] + strb r1, [r0, #0xd] + bx lr + + thumb_func_start sub_0202519C +sub_0202519C: ; 0x0202519C + ldrb r2, [r0, #0xb] + ldrb r0, [r0, #0x0] + sub r3, r0, #0x1 + lsl r0, r3, #0x1 + add r0, r3, r0 + add r0, r1, r0 + ldrb r0, [r0, #0x2] + mul r0, r2 + bx lr + .balign 4 + + thumb_func_start sub_020251B0 +sub_020251B0: ; 0x020251B0 + sub r3, r1, #0x1 + lsl r1, r3, #0x1 + add r1, r3, r1 + ldrb r1, [r0, r1] + mov r0, #0x3c + mul r0, r1 + cmp r2, #0x1 + bne _020251CE + lsl r1, r0, #0x1 + add r1, r0, r1 + asr r0, r1, #0x1 + lsr r0, r0, #0x1e + add r0, r1, r0 + asr r0, r0, #0x2 + bx lr +_020251CE: + cmp r2, #0x2 + bne _020251DA + lsr r1, r0, #0x1f + add r1, r0, r1 + asr r1, r1, #0x1 + add r0, r0, r1 +_020251DA: + bx lr + + thumb_func_start sub_020251DC +sub_020251DC: ; 0x020251DC + sub r3, r1, #0x1 + lsl r1, r3, #0x1 + add r1, r3, r1 + add r0, r0, r1 + ldrb r0, [r0, #0x1] + cmp r2, #0x2 + bne _020251F2 + lsr r1, r0, #0x1f + add r1, r0, r1 + asr r0, r1, #0x1 + bx lr +_020251F2: + cmp r2, #0x1 + bne _020251FE + lsr r1, r0, #0x1f + add r1, r0, r1 + asr r1, r1, #0x1 + add r0, r0, r1 +_020251FE: + bx lr + + thumb_func_start sub_02025200 +sub_02025200: ; 0x02025200 + ldrb r0, [r0, #0xc] + cmp r0, #0x3 + bne _0202520A + mov r0, #0x6 + bx lr +_0202520A: + mov r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_02025210 +sub_02025210: ; 0x02025210 + ldrb r0, [r0, #0xc] + cmp r0, #0x4 + bne _0202521A + mov r0, #0xf + bx lr +_0202521A: + mov r0, #0xa + bx lr + .balign 4 + + thumb_func_start sub_02025220 +sub_02025220: ; 0x02025220 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02025200 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02025210 + add r1, r4, #0x3 + mul r0, r1 + add r0, r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_02025238 +sub_02025238: ; 0x02025238 + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0x1] + bx lr + .balign 4 + + thumb_func_start sub_02025244 +sub_02025244: ; 0x02025244 + mov r2, #0xe + mul r2, r1 + ldrb r0, [r0, r2] + bx lr + + thumb_func_start sub_0202524C +sub_0202524C: ; 0x0202524C + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0xa] + cmp r0, #0x0 + bne _0202525C + mov r0, #0x0 + bx lr +_0202525C: + cmp r0, #0x32 + bgt _02025264 + mov r0, #0x1 + bx lr +_02025264: + mov r0, #0x2 + bx lr + + thumb_func_start sub_02025268 +sub_02025268: ; 0x02025268 + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0xb] + bx lr + .balign 4 + + thumb_func_start sub_02025274 +sub_02025274: ; 0x02025274 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0xe + mul r4, r0 + strb r3, [r5, r4] + mov r0, #0x1 + add r6, r5, r4 + strb r0, [r6, #0x1] + add r0, r2, #0x0 + ldrb r2, [r6, #0xc] + add r1, r3, #0x0 + bl sub_020251B0 + add r1, r6, #0x0 + strh r0, [r1, #0x2] + mov r0, #0x0 + strh r0, [r1, #0x4] + strb r0, [r1, #0x6] + strh r0, [r1, #0x8] + mov r0, #0x64 + strb r0, [r1, #0xa] + mov r0, #0x5 + strb r0, [r1, #0xb] + mov r0, #0x1 + strb r0, [r1, #0xd] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020252AC +sub_020252AC: ; 0x020252AC + mov r2, #0xe + mul r2, r1 + mov r3, #0x64 + add r0, r0, r2 + strb r3, [r0, #0xa] + bx lr + + thumb_func_start sub_020252B8 +sub_020252B8: ; 0x020252B8 + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0xd] + bx lr + .balign 4 + + thumb_func_start sub_020252C4 +sub_020252C4: ; 0x020252C4 + mov r3, #0xe + mul r3, r1 + add r0, r0, r3 + strb r2, [r0, #0xd] + bx lr + .balign 4 + + thumb_func_start sub_020252D0 +sub_020252D0: ; 0x020252D0 + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0xc] + bx lr + .balign 4 + + thumb_func_start sub_020252DC +sub_020252DC: ; 0x020252DC + mov r3, #0xe + mul r3, r1 + add r0, r0, r3 + strb r2, [r0, #0xc] + bx lr + .balign 4 + + thumb_func_start sub_020252E8 +sub_020252E8: ; 0x020252E8 + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrh r0, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start sub_020252F4 +sub_020252F4: ; 0x020252F4 + push {r4, lr} + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrh r4, [r0, #0x8] + bl sub_02025184 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02025308 +sub_02025308: ; 0x02025308 + push {r4, lr} + add r4, r0, #0x0 + ldrb r2, [r4, #0x1] + cmp r2, #0x5 + bhi _02025370 + add r3, r2, r2 + add r3, pc + ldrh r3, [r3, #0x6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 + lsl r2, r1, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r6, r2, #0 + lsl r6, r5, #0 + bl sub_02020C2C + pop {r4, pc} +_02025330: + .byte 0x50, 0x1C, 0x60, 0x70, 0x10, 0xBD, 0xFF, 0xF7, 0x31, 0xFF, 0x20, 0x81, 0x20, 0x89, 0x02, 0x28 + .byte 0x01, 0xD2, 0x02, 0x20, 0x20, 0x81, 0x60, 0x78, 0x40, 0x1C, 0x60, 0x70, 0x10, 0xBD, 0x00, 0x21 + .byte 0x21, 0x81, 0x02, 0x21, 0x61, 0x70, 0x05, 0x21, 0xE1, 0x72, 0xA1, 0x79, 0x49, 0x1C, 0xA1, 0x71 + .byte 0xFF, 0xF7, 0x56, 0xFF, 0xA1, 0x79, 0x81, 0x42, 0x02, 0xD1, 0x20, 0x1C, 0xFF, 0xF7, 0x0A, 0xFF +_02025370: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02025374 +sub_02025374: ; 0x02025374 + push {r3-r7, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0x1] + add r7, r2, #0x0 + cmp r0, #0x5 + beq _020253DE + add r0, r1, #0x0 + ldrb r1, [r5, #0x0] + ldrb r2, [r5, #0xc] + bl sub_020251DC + add r6, r0, #0x0 + ldrh r0, [r5, #0x4] + mov r1, #0x3c + str r0, [sp, #0x0] + add r0, r7, r0 + blx sub_020EBC80 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + mov r1, #0x3c + add r0, r7, r0 + blx sub_020EBC80 + strh r1, [r5, #0x4] + cmp r4, #0x0 + beq _020253DE + ldrb r1, [r5, #0xa] + add r0, r6, #0x0 + mul r0, r4 + cmp r1, r0 + blt _020253BA + sub r0, r1, r0 + strb r0, [r5, #0xa] + pop {r3-r7, pc} +_020253BA: + cmp r1, #0x0 + beq _020253CE + sub r0, r6, #0x1 + add r0, r1, r0 + add r1, r6, #0x0 + blx sub_020EBC80 + sub r4, r4, r0 + mov r0, #0x0 + strb r0, [r5, #0xa] +_020253CE: + ldrb r0, [r5, #0xb] + cmp r0, r4 + ble _020253DA + sub r0, r0, r4 + strb r0, [r5, #0xb] + pop {r3-r7, pc} +_020253DA: + mov r0, #0x0 + strb r0, [r5, #0xb] +_020253DE: + pop {r3-r7, pc} + + thumb_func_start sub_020253E0 +sub_020253E0: ; 0x020253E0 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r0, [sp, #0x0] +_020253EC: + ldrb r1, [r5, #0x0] + cmp r1, #0x0 + beq _02025474 + ldrb r0, [r5, #0x1] + cmp r0, #0x0 + beq _02025474 + ldrb r0, [r5, #0xd] + cmp r0, #0x0 + beq _02025474 + ldrb r2, [r5, #0xc] + add r0, r6, #0x0 + bl sub_020251B0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02025220 + mul r0, r4 + cmp r7, r0 + blt _0202541C + add r0, r5, #0x0 + bl sub_02025184 + b _02025474 +_0202541C: + add r4, r7, #0x0 + b _0202546A +_02025420: + ldrh r2, [r5, #0x2] + cmp r2, r4 + ble _02025438 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_02025374 + ldrh r0, [r5, #0x2] + sub r0, r0, r4 + strh r0, [r5, #0x2] + b _02025474 +_02025438: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02025374 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02025308 + ldrh r0, [r5, #0x2] + ldrb r1, [r5, #0x0] + ldrb r2, [r5, #0xc] + sub r4, r4, r0 + add r0, r6, #0x0 + bl sub_020251B0 + strh r0, [r5, #0x2] + ldrb r0, [r5, #0x1] + cmp r0, #0x5 + bne _0202546A + add r0, r5, #0x0 + bl sub_02025200 + ldrh r1, [r5, #0x2] + mul r0, r1 + strh r0, [r5, #0x2] +_0202546A: + ldrb r0, [r5, #0x1] + cmp r0, #0x0 + beq _02025474 + cmp r4, #0x0 + bne _02025420 +_02025474: + ldr r0, [sp, #0x0] + add r5, #0xe + add r0, r0, #0x1 + str r0, [sp, #0x0] + cmp r0, #0x80 + blt _020253EC + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02025484 +sub_02025484: ; 0x02025484 + ldr r3, _0202548C ; =sub_020CE34C + mov r1, #0x0 + mov r2, #0x24 + bx r3 + .balign 4 +_0202548C: .word sub_020CE34C + + thumb_func_start sub_02025490 +sub_02025490: ; 0x02025490 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02025484 + str r4, [r5, #0x0] + add r0, r5, #0x4 + pop {r3-r5, pc} + + thumb_func_start sub_020254A0 +sub_020254A0: ; 0x020254A0 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, r1 + beq _020254AE + bl sub_02020C2C +_020254AE: + add r0, r4, #0x4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020254B4 +sub_020254B4: ; 0x020254B4 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_020254B8 +sub_020254B8: ; 0x020254B8 + mov r0, #0x22 + lsl r0, r0, #0x6 + bx lr + .balign 4 + + thumb_func_start sub_020254C0 +sub_020254C0: ; 0x020254C0 + ldr r3, _020254C8 ; =sub_02022610 + mov r1, #0x9 + bx r3 + nop +_020254C8: .word sub_02022610 + 1 + + thumb_func_start sub_020254CC +sub_020254CC: ; 0x020254CC + push {r3-r7, lr} + mov r4, #0x0 + ldr r6, _020254EC ; =0x0000FFFF + add r5, r0, #0x0 + add r7, r4, #0x0 +_020254D6: + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x88 + blx sub_020DF4A4 + strh r6, [r5, #0x0] + add r4, r4, #0x1 + add r5, #0x88 + cmp r4, #0x10 + blt _020254D6 + pop {r3-r7, pc} + .balign 4 +_020254EC: .word 0x0000FFFF + + thumb_func_start sub_020254F0 +sub_020254F0: ; 0x020254F0 + mov r2, #0x88 + mul r2, r1 + add r0, r0, r2 + bx lr + + thumb_func_start sub_020254F8 +sub_020254F8: ; 0x020254F8 + add r0, r0, r1 + add r0, #0x68 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02025500 +sub_02025500: ; 0x02025500 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020022A4 + cmp r0, #0x0 + bne _0202551A + ldr r1, [r5, #0x10] + ldr r0, [r4, #0x10] + cmp r1, r0 + bne _0202551A + mov r0, #0x1 + pop {r3-r5, pc} +_0202551A: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02025520 +sub_02025520: ; 0x02025520 + push {r4-r7, lr} + sub sp, #0x2c + str r1, [sp, #0x4] + mov r1, #0x22 + str r0, [sp, #0x0] + add r0, r3, #0x0 + lsl r1, r1, #0x6 + str r2, [sp, #0x8] + bl sub_02016998 + str r0, [sp, #0x10] + bl sub_020254CC + mov r0, #0x0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x8] + cmp r0, #0x0 + ble _02025578 + ldr r7, [sp, #0x4] + add r6, sp, #0x18 +_02025548: + mov r0, #0x0 + mvn r0, r0 + ldr r5, [sp, #0x0] + str r0, [r6, #0x0] + mov r4, #0x0 +_02025552: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02025500 + cmp r0, #0x0 + beq _02025560 + str r4, [r6, #0x0] +_02025560: + add r4, r4, #0x1 + add r5, #0x88 + cmp r4, #0x10 + blt _02025552 + ldr r0, [sp, #0x14] + add r6, r6, #0x4 + add r1, r0, #0x1 + ldr r0, [sp, #0x8] + add r7, #0x88 + str r1, [sp, #0x14] + cmp r1, r0 + blt _02025548 +_02025578: + ldr r0, [sp, #0x8] + mov r4, #0x0 + str r4, [sp, #0xc] + cmp r0, #0x0 + ble _020255BE + ldr r5, [sp, #0x10] + add r6, sp, #0x18 +_02025586: + ldr r3, [sp, #0x4] + add r7, r5, #0x0 + mov r2, #0x11 +_0202558C: + ldmia r3!, {r0-r1} + stmia r7!, {r0-r1} + sub r2, r2, #0x1 + bne _0202558C + ldr r1, [r6, #0x0] + cmp r1, #0x0 + blt _020255A6 + add r2, r1, #0x0 + mov r0, #0x88 + mul r2, r0 + ldr r1, _02025610 ; =0x0000FFFF + ldr r0, [sp, #0x0] + strh r1, [r0, r2] +_020255A6: + ldr r0, [sp, #0x4] + add r5, #0x88 + add r0, #0x88 + str r0, [sp, #0x4] + ldr r0, [sp, #0xc] + add r4, r4, #0x1 + add r1, r0, #0x1 + ldr r0, [sp, #0x8] + add r6, r6, #0x4 + str r1, [sp, #0xc] + cmp r1, r0 + blt _02025586 +_020255BE: + mov r0, #0x0 + mov r12, r0 + mov r0, #0x88 + add r1, r4, #0x0 + mul r1, r0 + ldr r0, [sp, #0x10] + ldr r3, [sp, #0x0] + add r5, r0, r1 +_020255CE: + ldrh r1, [r3, #0x0] + ldr r0, _02025610 ; =0x0000FFFF + cmp r1, r0 + beq _020255EC + add r6, r3, #0x0 + add r7, r5, #0x0 + mov r2, #0x11 +_020255DC: + ldmia r6!, {r0-r1} + stmia r7!, {r0-r1} + sub r2, r2, #0x1 + bne _020255DC + add r4, r4, #0x1 + add r5, #0x88 + cmp r4, #0x10 + bge _020255F8 +_020255EC: + mov r0, r12 + add r0, r0, #0x1 + add r3, #0x88 + mov r12, r0 + cmp r0, #0x10 + blt _020255CE +_020255F8: + mov r2, #0x22 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x10] + lsl r2, r2, #0x6 + blx sub_020DF438 + ldr r0, [sp, #0x10] + bl sub_02016A18 + add sp, #0x2c + pop {r4-r7, pc} + nop +_02025610: .word 0x0000FFFF + + thumb_func_start sub_02025614 +sub_02025614: ; 0x02025614 + push {r3-r6} + mov r3, #0x0 + add r4, r0, #0x0 +_0202561A: + ldr r2, [r4, #0x10] + cmp r1, r2 + bne _02025626 + mov r0, #0x1 + pop {r3-r6} + bx lr +_02025626: + add r3, r3, #0x1 + add r4, #0x88 + cmp r3, #0x10 + blt _0202561A + mov r6, #0x0 + add r3, r6, #0x0 +_02025632: + add r4, r3, #0x0 + add r5, r0, #0x0 +_02025636: + ldr r2, [r5, #0x18] + cmp r1, r2 + bne _02025642 + add r0, r6, #0x2 + pop {r3-r6} + bx lr +_02025642: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x10 + blt _02025636 + add r6, r6, #0x1 + add r0, #0x88 + cmp r6, #0x10 + blt _02025632 + mov r0, #0x0 + pop {r3-r6} + bx lr + + thumb_func_start sub_02025658 +sub_02025658: ; 0x02025658 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [r4, #0x0] + strb r0, [r4, #0x4] + ldr r0, _020256A0 ; =0x020ECAC4 + mov r1, #0x8 + ldrb r0, [r0, #0x0] + strb r0, [r4, #0x5] + ldr r0, _020256A4 ; =0x020ECAC0 + ldrb r0, [r0, #0x0] + strb r0, [r4, #0x6] + mov r0, #0xff + strb r0, [r4, #0x7] + add r0, r4, #0x0 + add r0, #0x8 + bl sub_0200232C + ldr r0, _020256A8 ; =0x0000FFFF + mov r1, #0x0 + add r2, r4, #0x0 +_02025682: + add r1, r1, #0x1 + strh r0, [r2, #0x18] + add r2, r2, #0x2 + cmp r1, #0x3 + blt _02025682 + mov r5, #0x0 + add r4, #0x20 +_02025690: + add r0, r4, #0x0 + bl sub_02013724 + add r5, r5, #0x1 + add r4, #0x8 + cmp r5, #0x3 + blt _02025690 + pop {r3-r5, pc} + .balign 4 +_020256A0: .word 0x020ECAC4 +_020256A4: .word 0x020ECAC0 +_020256A8: .word 0x0000FFFF + + thumb_func_start sub_020256AC +sub_020256AC: ; 0x020256AC + ldrb r0, [r0, #0x7] + cmp r0, #0xb + bhi _020256B6 + mov r0, #0x1 + bx lr +_020256B6: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_020256BC +sub_020256BC: ; 0x020256BC + push {r4, lr} + mov r1, #0x38 + bl sub_020169D8 + add r4, r0, #0x0 + bl sub_02025658 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020256D0 +sub_020256D0: ; 0x020256D0 + ldr r3, _020256D8 ; =sub_020CE3E0 + mov r2, #0x38 + bx r3 + nop +_020256D8: .word sub_020CE3E0 + + thumb_func_start sub_020256DC +sub_020256DC: ; 0x020256DC + push {r4-r7, lr} + sub sp, #0x14 + add r7, r3, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + bl sub_02025658 + add r0, r7, #0x0 + strb r6, [r5, #0x7] + bl sub_0206BB1C + str r0, [sp, #0x0] + add r0, r7, #0x0 + bl sub_020238F4 + add r6, r0, #0x0 + bl sub_0202398C + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x8 + bl sub_02002248 + add r0, r6, #0x0 + bl sub_020239CC + strb r0, [r5, #0x4] + add r0, r6, #0x0 + bl sub_020239BC + str r0, [r5, #0x0] + ldr r0, [sp, #0x0] + mov r6, #0x0 + bl sub_0206B9AC + cmp r4, r0 + bge _020257AE + add r5, #0x18 +_0202572A: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + add r7, r0, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + add r0, r7, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x8] + add r0, r7, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0xc] + add r0, r7, #0x0 + bl sub_0206B6C8 + str r0, [sp, #0x10] + ldr r0, [sp, #0x4] + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x8] + bl sub_0206B7BC + lsl r3, r6, #0x1 + ldrh r1, [r5, r3] + add r7, r0, #0x0 + ldr r0, _020257B4 ; =0xFFFFF000 + add r2, r1, #0x0 + and r2, r0 + ldr r0, [sp, #0x10] + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, _020257B8 ; =0x00000FFF + and r0, r1 + orr r0, r2 + strh r0, [r5, r3] + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldrh r1, [r5, r3] + ldr r0, _020257BC ; =0xFFFF0FFF + and r0, r1 + lsl r1, r7, #0x1c + lsr r1, r1, #0x10 + orr r0, r1 + strh r0, [r5, r3] + cmp r6, #0x3 + bhs _020257AE + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x0] + bl sub_0206B9AC + cmp r4, r0 + blt _0202572A +_020257AE: + add sp, #0x14 + pop {r4-r7, pc} + nop +_020257B4: .word 0xFFFFF000 +_020257B8: .word 0x00000FFF +_020257BC: .word 0xFFFF0FFF + + thumb_func_start sub_020257C0 +sub_020257C0: ; 0x020257C0 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_020257C4 +sub_020257C4: ; 0x020257C4 + add r0, #0x8 + bx lr + + thumb_func_start sub_020257C8 +sub_020257C8: ; 0x020257C8 + ldrb r0, [r0, #0x4] + bx lr + + thumb_func_start sub_020257CC +sub_020257CC: ; 0x020257CC + ldrb r0, [r0, #0x7] + bx lr + + thumb_func_start sub_020257D0 +sub_020257D0: ; 0x020257D0 + cmp r1, #0xc + bhs _020257D6 + strb r1, [r0, #0x7] +_020257D6: + bx lr + + thumb_func_start sub_020257D8 +sub_020257D8: ; 0x020257D8 + ldrb r0, [r0, #0x5] + bx lr + + thumb_func_start sub_020257DC +sub_020257DC: ; 0x020257DC + ldrb r0, [r0, #0x6] + bx lr + + thumb_func_start sub_020257E0 +sub_020257E0: ; 0x020257E0 + cmp r1, #0x3 + bhs _02025810 + cmp r2, #0x0 + beq _020257F0 + cmp r2, #0x1 + beq _020257FC + cmp r2, #0x2 + b _02025808 +_020257F0: + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, #0x18] + lsl r0, r0, #0x14 + lsr r0, r0, #0x14 + bx lr +_020257FC: + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, #0x18] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1c + bx lr +_02025808: + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, #0x18] + bx lr +_02025810: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02025814 +sub_02025814: ; 0x02025814 + cmp r1, #0x3 + bhs _02025820 + add r0, #0x20 + lsl r1, r1, #0x3 + add r0, r0, r1 + bx lr +_02025820: + add r0, #0x20 + bx lr + + thumb_func_start sub_02025824 +sub_02025824: ; 0x02025824 + push {r3, lr} + cmp r2, #0x3 + bhs _02025834 + add r0, #0x20 + lsl r2, r2, #0x3 + add r0, r0, r2 + bl sub_02013960 +_02025834: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02025838 +sub_02025838: ; 0x02025838 + ldr r3, _02025840 ; =sub_02022610 + mov r1, #0xf + bx r3 + nop +_02025840: .word sub_02022610 + 1 + + thumb_func_start sub_02025844 +sub_02025844: ; 0x02025844 + mov r0, #0x46 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_0202584C +sub_0202584C: ; 0x0202584C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_02025852: + add r0, r5, #0x0 + bl sub_02025658 + add r4, r4, #0x1 + add r5, #0x38 + cmp r4, #0x14 + blt _02025852 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02025864 +sub_02025864: ; 0x02025864 + push {r3, lr} + cmp r1, #0x0 + bne _02025872 + mov r1, #0x14 + bl sub_020258F0 + pop {r3, pc} +_02025872: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + + thumb_func_start sub_02025878 +sub_02025878: ; 0x02025878 + push {r3, lr} + bl sub_02025940 + cmp r0, #0x0 + beq _02025886 + bl sub_02025658 +_02025886: + pop {r3, pc} + + thumb_func_start sub_02025888 +sub_02025888: ; 0x02025888 + push {r4, lr} + add r4, r3, #0x0 + bl sub_02025940 + add r1, r0, #0x0 + beq _0202589A + add r0, r4, #0x0 + bl sub_020256D0 +_0202589A: + pop {r4, pc} + + thumb_func_start sub_0202589C +sub_0202589C: ; 0x0202589C + push {r3, lr} + cmp r1, #0x0 + bne _020258AA + mov r1, #0x14 + bl sub_02025918 + pop {r3, pc} +_020258AA: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020258B0 +sub_020258B0: ; 0x020258B0 + push {r3-r5, lr} + add r5, r3, #0x0 + bl sub_02025940 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020256BC + add r5, r0, #0x0 + cmp r4, #0x0 + beq _020258CE + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_020256D0 +_020258CE: + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020258D4 +sub_020258D4: ; 0x020258D4 + push {r4, lr} + add r4, r3, #0x0 + bl sub_02025940 + cmp r0, #0x0 + bne _020258E8 + add r0, r4, #0x0 + bl sub_02025658 + pop {r4, pc} +_020258E8: + add r1, r4, #0x0 + bl sub_020256D0 + pop {r4, pc} + + thumb_func_start sub_020258F0 +sub_020258F0: ; 0x020258F0 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + mov r4, #0x0 + cmp r6, #0x0 + ble _02025912 +_020258FC: + add r0, r5, #0x0 + bl sub_020256AC + cmp r0, #0x0 + bne _0202590A + add r0, r4, #0x0 + pop {r4-r6, pc} +_0202590A: + add r4, r4, #0x1 + add r5, #0x38 + cmp r4, r6 + blt _020258FC +_02025912: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} + + thumb_func_start sub_02025918 +sub_02025918: ; 0x02025918 + push {r3-r7, lr} + mov r4, #0x0 + add r7, r1, #0x0 + add r5, r0, #0x0 + add r6, r4, #0x0 + cmp r7, #0x0 + ble _0202593A +_02025926: + add r0, r5, #0x0 + bl sub_020256AC + cmp r0, #0x0 + beq _02025932 + add r4, r4, #0x1 +_02025932: + add r6, r6, #0x1 + add r5, #0x38 + cmp r6, r7 + blt _02025926 +_0202593A: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02025940 +sub_02025940: ; 0x02025940 + mov r3, #0x0 + cmp r1, #0x0 + bne _02025950 + cmp r2, #0x14 + bge _02025950 + mov r1, #0x38 + mul r1, r2 + add r3, r0, r1 +_02025950: + add r0, r3, #0x0 + bx lr + + thumb_func_start sub_02025954 +sub_02025954: ; 0x02025954 + ldr r0, _02025958 ; =0x000009B4 + bx lr + .balign 4 +_02025958: .word 0x000009B4 + + thumb_func_start sub_0202595C +sub_0202595C: ; 0x0202595C + mov r0, #0x94 + bx lr + + thumb_func_start sub_02025960 +sub_02025960: ; 0x02025960 + mov r0, #0x3c + bx lr + + thumb_func_start sub_02025964 +sub_02025964: ; 0x02025964 + push {r4, lr} + mov r1, #0x3c + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x3c + add r4, r0, #0x0 + blx sub_020CE34C + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202597C +sub_0202597C: ; 0x0202597C + push {r4-r7, lr} + sub sp, #0x1c + add r4, r0, #0x0 + add r0, sp, #0xc + add r1, sp, #0x0 + bl sub_0201265C + ldr r0, _020259D8 ; =0x021C48B8 + ldr r6, [sp, #0xc] + ldr r1, [sp, #0x8] + ldr r0, [r0, #0x2c] + lsl r6, r6, #0x5 + add r5, r1, r0 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + add r0, r0, r6 + lsl r0, r0, #0x5 + add r0, r1, r0 + mov r7, #0x0 + ldr r2, [sp, #0x0] + lsl r0, r0, #0x5 + add r0, r2, r0 + ldr r3, [sp, #0x4] + lsl r0, r0, #0x5 + add r0, r3, r0 + lsl r0, r0, #0x5 + add r5, r5, r0 + ldr r2, _020259DC ; =0x000009B4 + add r0, r4, #0x0 + add r1, r7, #0x0 + blx sub_020CE34C + add r0, r4, #0x0 + add r0, #0x94 + mov r1, #0x9b + str r5, [r0, #0x0] + lsl r1, r1, #0x4 + ldrb r2, [r4, r1] + mov r0, #0xf + bic r2, r0 + mov r0, #0x1 + orr r0, r2 + strb r0, [r4, r1] + add sp, #0x1c + pop {r4-r7, pc} + nop +_020259D8: .word 0x021C48B8 +_020259DC: .word 0x000009B4 + + thumb_func_start sub_020259E0 +sub_020259E0: ; 0x020259E0 + mov r1, #0x9 + mov r3, #0x0 + lsl r1, r1, #0x8 +_020259E6: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + bne _020259F2 + add r0, r3, #0x0 + bx lr +_020259F2: + add r3, r3, #0x1 + cmp r3, #0x28 + blt _020259E6 + mov r0, #0x0 + mvn r0, r0 + bx lr + .balign 4 + + thumb_func_start sub_02025A00 +sub_02025A00: ; 0x02025A00 + mov r1, #0x95 + mov r3, #0x0 + lsl r1, r1, #0x4 +_02025A06: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + bne _02025A12 + add r0, r3, #0x0 + bx lr +_02025A12: + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02025A06 + mov r0, #0x0 + mvn r0, r0 + bx lr + .balign 4 + + thumb_func_start sub_02025A20 +sub_02025A20: ; 0x02025A20 + ldr r1, _02025A3C ; =0x00000928 + mov r3, #0x0 +_02025A24: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + bne _02025A30 + add r0, r3, #0x0 + bx lr +_02025A30: + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02025A24 + mov r0, #0x0 + mvn r0, r0 + bx lr + .balign 4 +_02025A3C: .word 0x00000928 + + thumb_func_start sub_02025A40 +sub_02025A40: ; 0x02025A40 + ldr r1, _02025A5C ; =0x000008D8 + mov r3, #0x0 +_02025A44: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + bne _02025A50 + add r0, r3, #0x0 + bx lr +_02025A50: + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02025A44 + mov r0, #0x0 + mvn r0, r0 + bx lr + .balign 4 +_02025A5C: .word 0x000008D8 + + thumb_func_start sub_02025A60 +sub_02025A60: ; 0x02025A60 + push {r4-r7, lr} + sub sp, #0x14 + str r1, [sp, #0x0] + bl sub_02026CC4 + ldr r1, _02025B50 ; =0x020EE958 + add r6, r0, #0x0 + ldrb r2, [r1, #0x0] + add r0, sp, #0x8 + strb r2, [r0, #0x6] + ldrb r2, [r1, #0x1] + strb r2, [r0, #0x7] + ldrb r2, [r1, #0x2] + strb r2, [r0, #0x8] + ldrb r2, [r1, #0x3] + strb r2, [r0, #0x9] + ldrb r2, [r1, #0x4] + strb r2, [r0, #0xa] + ldrb r2, [r1, #0x5] + strb r2, [r0, #0xb] + ldrb r2, [r1, #0x6] + strb r2, [r0, #0x0] + ldrb r2, [r1, #0x7] + strb r2, [r0, #0x1] + ldrb r2, [r1, #0x8] + strb r2, [r0, #0x2] + ldrb r2, [r1, #0x9] + strb r2, [r0, #0x3] + ldrb r2, [r1, #0xa] + strb r2, [r0, #0x4] + ldrb r1, [r1, #0xb] + strb r1, [r0, #0x5] + ldr r0, [sp, #0x0] + cmp r0, #0x0 + ble _02025B4C + str r0, [sp, #0x4] + cmp r0, #0x63 + ble _02025AB0 + mov r0, #0x63 + str r0, [sp, #0x4] +_02025AB0: + add r0, r6, #0x0 + add r0, #0x94 + ldr r3, [r0, #0x0] + mov r0, #0x0 + mov r12, r0 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _02025B28 + add r7, sp, #0xc + add r7, #0x2 +_02025AC4: + mov r2, #0x0 +_02025AC6: + ldr r0, _02025B54 ; =0x0000055C + add r4, r6, r2 + ldrb r5, [r4, r0] + cmp r5, #0x0 + beq _02025B16 + ldr r0, _02025B58 ; =0x5D588B65 + ldrb r1, [r7, r5] + mul r0, r3 + ldr r3, _02025B5C ; =0x00269EC3 + add r3, r0, r3 + cmp r1, #0x0 + bne _02025AE2 + lsr r0, r3, #0x10 + b _02025AE8 +_02025AE2: + lsr r0, r3, #0x10 + mul r1, r0 + lsr r0, r1, #0x10 +_02025AE8: + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + add r0, sp, #0x8 + ldrb r0, [r0, r5] + add r0, r0, r1 + mov r1, #0x17 + lsl r1, r1, #0x6 + ldrb r1, [r4, r1] + add r1, r0, r1 + cmp r1, #0x63 + bge _02025B0E + mov r1, #0x17 + lsl r1, r1, #0x6 + ldrb r1, [r4, r1] + add r1, r1, r0 + mov r0, #0x17 + lsl r0, r0, #0x6 + strb r1, [r4, r0] + b _02025B16 +_02025B0E: + mov r0, #0x17 + mov r1, #0x63 + lsl r0, r0, #0x6 + strb r1, [r4, r0] +_02025B16: + add r2, r2, #0x1 + cmp r2, #0x64 + blt _02025AC6 + mov r0, r12 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + mov r12, r1 + cmp r1, r0 + blt _02025AC4 +_02025B28: + add r0, r6, #0x0 + add r0, #0x94 + ldr r1, [r0, #0x0] + ldr r0, [sp, #0x0] + add r0, r1, r0 + bl sub_0201BA10 + add r1, r6, #0x0 + add r1, #0x94 + str r0, [r1, #0x0] + mov r1, #0x9b + lsl r1, r1, #0x4 + ldrb r2, [r6, r1] + mov r0, #0xf + bic r2, r0 + mov r0, #0x1 + orr r0, r2 + strb r0, [r6, r1] +_02025B4C: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02025B50: .word 0x020EE958 +_02025B54: .word 0x0000055C +_02025B58: .word 0x5D588B65 +_02025B5C: .word 0x00269EC3 + + thumb_func_start sub_02025B60 +sub_02025B60: ; 0x02025B60 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r2, #0x0 + bl sub_02026CC4 + cmp r4, #0x0 + blt _02025B90 + cmp r5, #0x0 + bne _02025B90 + add r1, r0, #0x0 + add r1, #0x98 + ldr r1, [r1, #0x0] + cmp r1, r4 + bge _02025B84 + mov r1, #0x0 + add r0, #0x98 + str r1, [r0, #0x0] + pop {r3-r5, pc} +_02025B84: + add r1, r0, #0x0 + add r1, #0x98 + ldr r1, [r1, #0x0] + add r0, #0x98 + sub r1, r1, r4 + str r1, [r0, #0x0] +_02025B90: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02025B94 +sub_02025B94: ; 0x02025B94 + push {r3, lr} + bl sub_02026CC4 + add r1, r0, #0x0 + add r1, #0x98 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _02025BB6 + add r1, r0, #0x0 + add r1, #0x9c + ldrb r1, [r1, #0x0] + cmp r1, #0x2 + bne _02025BB6 + add r1, r0, #0x0 + mov r2, #0x0 + add r1, #0x9c + strb r2, [r1, #0x0] +_02025BB6: + add r1, r0, #0x0 + add r1, #0x98 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _02025BD4 + add r1, r0, #0x0 + add r1, #0x9c + ldrb r1, [r1, #0x0] + cmp r1, #0x1 + bne _02025BD4 + mov r2, #0x5a + add r1, r0, #0x0 + lsl r2, r2, #0x4 + add r1, #0x98 + str r2, [r1, #0x0] +_02025BD4: + add r1, r0, #0x0 + add r1, #0x9c + ldrb r1, [r1, #0x0] + cmp r1, #0x1 + bne _02025BE4 + mov r1, #0x2 + add r0, #0x9c + strb r1, [r0, #0x0] +_02025BE4: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02025BE8 +sub_02025BE8: ; 0x02025BE8 + push {r3, lr} + bl sub_02026CC4 + add r1, r0, #0x0 + add r1, #0x9c + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + bne _02025BFE + mov r1, #0x1 + add r0, #0x9c + strb r1, [r0, #0x0] +_02025BFE: + pop {r3, pc} + + thumb_func_start sub_02025C00 +sub_02025C00: ; 0x02025C00 + push {r3, lr} + bl sub_02026CC4 + add r1, r0, #0x0 + add r1, #0x9c + ldrb r1, [r1, #0x0] + cmp r1, #0x1 + bne _02025C16 + mov r1, #0x0 + add r0, #0x9c + strb r1, [r0, #0x0] +_02025C16: + pop {r3, pc} + + thumb_func_start sub_02025C18 +sub_02025C18: ; 0x02025C18 + push {r3, lr} + bl sub_02026CC4 + add r0, #0x9c + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + beq _02025C2A + mov r0, #0x1 + pop {r3, pc} +_02025C2A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02025C30 +sub_02025C30: ; 0x02025C30 + mov r1, #0x1 + add r0, #0x9d + strb r1, [r0, #0x0] + bx lr + + thumb_func_start sub_02025C38 +sub_02025C38: ; 0x02025C38 + add r0, #0x9d + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02025C40 +sub_02025C40: ; 0x02025C40 + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _02025CD0 ; =0x0000010E + add r6, r1, #0x0 + ldrb r0, [r7, r0] + mov r4, #0x0 + add r5, r7, #0x0 + str r0, [sp, #0x0] +_02025C50: + add r0, r6, #0x0 + bl sub_020239BC + add r1, r5, #0x0 + add r1, #0xa0 + ldr r1, [r1, #0x0] + cmp r1, r0 + beq _02025CCC + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x5 + blt _02025C50 + ldr r0, [sp, #0x0] + cmp r0, #0x5 + blt _02025C72 + bl sub_02020C2C +_02025C72: + add r0, r6, #0x0 + bl sub_0202398C + ldr r1, [sp, #0x0] + add r2, r7, #0x0 + add r2, #0xb4 + lsl r1, r1, #0x4 + add r1, r2, r1 + mov r2, #0x10 + blx sub_020CE3E0 + add r0, r6, #0x0 + bl sub_020239BC + ldr r1, [sp, #0x0] + lsl r1, r1, #0x2 + add r1, r7, r1 + add r1, #0xa0 + str r0, [r1, #0x0] + add r0, r6, #0x0 + bl sub_02023A70 + ldr r1, [sp, #0x0] + add r2, r7, r1 + mov r1, #0x41 + lsl r1, r1, #0x2 + strb r0, [r2, r1] + add r0, r6, #0x0 + bl sub_02023A68 + ldr r1, [sp, #0x0] + add r2, r7, r1 + ldr r1, _02025CD4 ; =0x00000109 + strb r0, [r2, r1] + add r0, r1, #0x5 + ldrb r0, [r7, r0] + add r2, r0, #0x1 + add r0, r1, #0x5 + strb r2, [r7, r0] + ldrb r0, [r7, r0] + cmp r0, #0x5 + blo _02025CCC + mov r2, #0x0 + add r0, r1, #0x5 + strb r2, [r7, r0] +_02025CCC: + pop {r3-r7, pc} + nop +_02025CD0: .word 0x0000010E +_02025CD4: .word 0x00000109 + + thumb_func_start sub_02025CD8 +sub_02025CD8: ; 0x02025CD8 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _02025D38 ; =0x0000010E + ldrb r0, [r5, r0] + sub r0, r0, r2 + sub r4, r0, #0x1 + bpl _02025CE8 + add r4, r4, #0x5 +_02025CE8: + add r7, r5, #0x0 + lsl r0, r4, #0x4 + add r7, #0xb4 + str r0, [sp, #0x0] + ldrh r0, [r7, r0] + cmp r0, #0x0 + beq _02025D32 + add r0, r1, #0x0 + bl sub_02023928 + ldr r1, [sp, #0x0] + add r6, r0, #0x0 + add r1, r7, r1 + bl sub_0202395C + ldr r1, _02025D3C ; =0x00000109 + add r2, r5, r4 + ldrb r1, [r2, r1] + add r0, r6, #0x0 + bl sub_02023A6C + mov r1, #0x41 + add r2, r5, r4 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + add r0, r6, #0x0 + bl sub_02023A74 + lsl r1, r4, #0x2 + add r1, r5, r1 + add r1, #0xa0 + ldr r1, [r1, #0x0] + add r0, r6, #0x0 + bl sub_020239B8 + add r0, r6, #0x0 + pop {r3-r7, pc} +_02025D32: + mov r0, #0x0 + pop {r3-r7, pc} + nop +_02025D38: .word 0x0000010E +_02025D3C: .word 0x00000109 + + thumb_func_start sub_02025D40 +sub_02025D40: ; 0x02025D40 + add r0, #0x94 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02025D48 +sub_02025D48: ; 0x02025D48 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0xb + bge _02025D54 + bl sub_02020C2C +_02025D54: + cmp r4, #0x3c + blt _02025D5C + bl sub_02020C2C +_02025D5C: + sub r4, #0xb + ldr r0, _02025D68 ; =0x02105C74 + lsl r1, r4, #0x1 + ldrh r0, [r0, r1] + pop {r4, pc} + nop +_02025D68: .word 0x02105C74 + + thumb_func_start sub_02025D6C +sub_02025D6C: ; 0x02025D6C + push {r4-r5} + mov r2, #0x81 + mov r5, #0x0 + lsl r2, r2, #0x4 +_02025D74: + add r4, r0, r5 + ldrb r3, [r4, r2] + cmp r3, #0x0 + bne _02025D88 + mov r0, #0x81 + lsl r0, r0, #0x4 + strb r1, [r4, r0] + mov r0, #0x1 + pop {r4-r5} + bx lr +_02025D88: + add r5, r5, #0x1 + cmp r5, #0xc8 + blt _02025D74 + mov r0, #0x0 + pop {r4-r5} + bx lr + + thumb_func_start sub_02025D94 +sub_02025D94: ; 0x02025D94 + mov r1, #0x81 + mov r3, #0x0 + lsl r1, r1, #0x4 +_02025D9A: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + bne _02025DA6 + mov r0, #0x1 + bx lr +_02025DA6: + add r3, r3, #0x1 + cmp r3, #0xc8 + blt _02025D9A + mov r0, #0x0 + bx lr + + thumb_func_start sub_02025DB0 +sub_02025DB0: ; 0x02025DB0 + mov r1, #0x81 + mov r3, #0x0 + lsl r1, r1, #0x4 +_02025DB6: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + beq _02025DC4 + add r3, r3, #0x1 + cmp r3, #0xc8 + blt _02025DB6 +_02025DC4: + add r0, r3, #0x0 + bx lr + + thumb_func_start sub_02025DC8 +sub_02025DC8: ; 0x02025DC8 + add r1, r0, r1 + mov r0, #0x81 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start sub_02025DD4 +sub_02025DD4: ; 0x02025DD4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02025F0C + cmp r0, #0x0 + beq _02025DE6 + bl sub_02020C2C +_02025DE6: + mov r0, #0x81 + add r1, r5, r4 + lsl r0, r0, #0x4 + add r6, r4, #0x0 + ldrb r7, [r1, r0] + cmp r4, #0xc7 + bge _02025E06 + mov r1, #0x81 + add r0, r0, #0x1 + lsl r1, r1, #0x4 +_02025DFA: + add r3, r5, r6 + ldrb r2, [r3, r0] + add r6, r6, #0x1 + cmp r6, #0xc7 + strb r2, [r3, r1] + blt _02025DFA +_02025E06: + ldr r0, _02025E1C ; =0x000008D7 + mov r2, #0x0 + strb r2, [r5, r0] + add r0, r5, #0x0 + add r1, r4, #0x0 + sub r2, r2, #0x1 + bl sub_02025F58 + add r0, r7, #0x0 + pop {r3-r7, pc} + nop +_02025E1C: .word 0x000008D7 + + thumb_func_start sub_02025E20 +sub_02025E20: ; 0x02025E20 + push {r4-r7, lr} + sub sp, #0xd4 + mov r4, #0x0 + add r5, r0, #0x0 + sub r0, r4, #0x1 + str r0, [sp, #0x4] + mov r0, #0x81 + lsl r0, r0, #0x4 + str r1, [sp, #0x8] + str r2, [sp, #0x0] + add r0, r5, r0 + add r1, sp, #0xc + mov r2, #0xc8 + blx sub_020CE3E0 + ldr r2, [sp, #0x8] + add r1, sp, #0xc + add r0, r4, #0x0 + add r7, r1, r2 +_02025E46: + ldr r2, [sp, #0x8] + cmp r0, r2 + beq _02025E58 + ldrb r6, [r1, #0x0] + mov r2, #0x81 + add r3, r5, r4 + lsl r2, r2, #0x4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_02025E58: + ldr r2, [sp, #0x0] + cmp r0, r2 + bne _02025E6A + ldrb r6, [r7, #0x0] + mov r2, #0x81 + add r3, r5, r4 + lsl r2, r2, #0x4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_02025E6A: + add r0, r0, #0x1 + add r1, r1, #0x1 + cmp r0, #0xc8 + blt _02025E46 + ldr r0, [sp, #0x8] + mov r3, #0x0 + add r2, r0, #0x1 + mov r0, #0x9a + lsl r0, r0, #0x4 +_02025E7C: + add r1, r5, r3 + ldrb r1, [r1, r0] + cmp r2, r1 + bne _02025E88 + str r3, [sp, #0x4] + b _02025E8E +_02025E88: + add r3, r3, #0x1 + cmp r3, #0xf + blt _02025E7C +_02025E8E: + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + mov r2, #0x1 + bl sub_02025F58 + mov r2, #0x0 + ldr r1, [sp, #0x8] + add r0, r5, #0x0 + mvn r2, r2 + bl sub_02025F58 + mov r1, #0x0 + ldr r0, [sp, #0x4] + mvn r1, r1 + cmp r0, r1 + beq _02025ED6 + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x8] + cmp r0, r1 + bge _02025EC8 + add r0, r1, #0x0 + add r2, r0, #0x1 + ldr r0, [sp, #0x4] + add sp, #0xd4 + add r1, r5, r0 + mov r0, #0x9a + lsl r0, r0, #0x4 + strb r2, [r1, r0] + pop {r4-r7, pc} +_02025EC8: + add r0, r1, #0x0 + add r2, r0, #0x2 + ldr r0, [sp, #0x4] + add r1, r5, r0 + mov r0, #0x9a + lsl r0, r0, #0x4 + strb r2, [r1, r0] +_02025ED6: + add sp, #0xd4 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02025EDC +sub_02025EDC: ; 0x02025EDC + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r6, #0x1 + bge _02025EEC + bl sub_02020C2C +_02025EEC: + cmp r6, #0xf + ble _02025EF4 + bl sub_02020C2C +_02025EF4: + sub r0, r6, #0x1 + add r1, r5, r0 + mov r0, #0x9a + add r2, r4, #0x1 + lsl r0, r0, #0x4 + strb r2, [r1, r0] + mov r0, #0x81 + add r1, r5, r4 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02025F0C +sub_02025F0C: ; 0x02025F0C + push {r3-r4} + add r3, r1, #0x1 + mov r1, #0x9a + mov r4, #0x0 + lsl r1, r1, #0x4 +_02025F16: + add r2, r0, r4 + ldrb r2, [r2, r1] + cmp r3, r2 + bne _02025F24 + mov r0, #0x1 + pop {r3-r4} + bx lr +_02025F24: + add r4, r4, #0x1 + cmp r4, #0xf + blt _02025F16 + mov r0, #0x0 + pop {r3-r4} + bx lr + + thumb_func_start sub_02025F30 +sub_02025F30: ; 0x02025F30 + sub r1, r1, #0x1 + cmp r1, #0xf + bge _02025F40 + add r1, r0, r1 + mov r0, #0x9a + mov r2, #0x0 + lsl r0, r0, #0x4 + strb r2, [r1, r0] +_02025F40: + bx lr + .balign 4 + + thumb_func_start sub_02025F44 +sub_02025F44: ; 0x02025F44 + mov r1, #0x9a + lsl r1, r1, #0x4 + add r0, r0, r1 + ldr r3, _02025F54 ; =sub_020CE34C + mov r1, #0x0 + mov r2, #0xf + bx r3 + nop +_02025F54: .word sub_020CE34C + + thumb_func_start sub_02025F58 +sub_02025F58: ; 0x02025F58 + push {r4-r7} + mov r6, #0x9a + lsl r6, r6, #0x4 + mov r4, #0x0 + add r1, r1, #0x1 + add r7, r6, #0x0 +_02025F64: + add r3, r0, r4 + ldrb r5, [r3, r7] + cmp r5, r1 + ble _02025F76 + mov r5, #0x9a + lsl r5, r5, #0x4 + ldrb r5, [r3, r5] + add r5, r5, r2 + strb r5, [r3, r6] +_02025F76: + add r4, r4, #0x1 + cmp r4, #0xf + blt _02025F64 + pop {r4-r7} + bx lr + + thumb_func_start sub_02025F80 +sub_02025F80: ; 0x02025F80 + mov r1, #0x9 + mov r3, #0x0 + lsl r1, r1, #0x8 +_02025F86: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + beq _02025F94 + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02025F86 +_02025F94: + add r0, r3, #0x0 + bx lr + + thumb_func_start sub_02025F98 +sub_02025F98: ; 0x02025F98 + add r1, r0, r1 + mov r0, #0x9 + lsl r0, r0, #0x8 + ldrb r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start sub_02025FA4 +sub_02025FA4: ; 0x02025FA4 + push {r3-r6} + mov r2, #0x9 + add r3, r0, r1 + lsl r2, r2, #0x8 + ldrb r2, [r3, r2] + cmp r1, #0x27 + bge _02025FC2 + ldr r3, _02025FD0 ; =0x00000901 + sub r4, r3, #0x1 +_02025FB6: + add r6, r0, r1 + ldrb r5, [r6, r3] + add r1, r1, #0x1 + cmp r1, #0x27 + strb r5, [r6, r4] + blt _02025FB6 +_02025FC2: + ldr r1, _02025FD4 ; =0x00000927 + mov r3, #0x0 + strb r3, [r0, r1] + add r0, r2, #0x0 + pop {r3-r6} + bx lr + nop +_02025FD0: .word 0x00000901 +_02025FD4: .word 0x00000927 + + thumb_func_start sub_02025FD8 +sub_02025FD8: ; 0x02025FD8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020259E0 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02025FF6 + add r1, r5, r0 + mov r0, #0x9 + lsl r0, r0, #0x8 + strb r4, [r1, r0] + mov r0, #0x1 + pop {r3-r5, pc} +_02025FF6: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02025FFC +sub_02025FFC: ; 0x02025FFC + push {r3-r7, lr} + sub sp, #0x30 + add r5, r0, #0x0 + mov r0, #0x9 + lsl r0, r0, #0x8 + str r1, [sp, #0x4] + str r2, [sp, #0x0] + add r0, r5, r0 + add r1, sp, #0x8 + mov r2, #0x28 + mov r4, #0x0 + blx sub_020CE3E0 + ldr r2, [sp, #0x4] + add r1, sp, #0x8 + add r0, r4, #0x0 + add r7, r1, r2 +_0202601E: + ldr r2, [sp, #0x4] + cmp r0, r2 + beq _02026030 + ldrb r6, [r1, #0x0] + mov r2, #0x9 + add r3, r5, r4 + lsl r2, r2, #0x8 + strb r6, [r3, r2] + add r4, r4, #0x1 +_02026030: + ldr r2, [sp, #0x0] + cmp r0, r2 + bne _02026042 + ldrb r6, [r7, #0x0] + mov r2, #0x9 + add r3, r5, r4 + lsl r2, r2, #0x8 + strb r6, [r3, r2] + add r4, r4, #0x1 +_02026042: + add r0, r0, #0x1 + add r1, r1, #0x1 + cmp r0, #0x28 + blt _0202601E + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02026050 +sub_02026050: ; 0x02026050 + mov r1, #0x95 + mov r3, #0x0 + lsl r1, r1, #0x4 +_02026056: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + beq _02026064 + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02026056 +_02026064: + add r0, r3, #0x0 + bx lr + + thumb_func_start sub_02026068 +sub_02026068: ; 0x02026068 + add r1, r0, r1 + mov r0, #0x95 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start sub_02026074 +sub_02026074: ; 0x02026074 + add r1, r0, r1 + ldr r0, _0202607C ; =0x00000978 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_0202607C: .word 0x00000978 + + thumb_func_start sub_02026080 +sub_02026080: ; 0x02026080 + push {r4-r7} + add r2, r0, #0x0 + mov r0, #0x95 + add r3, r2, r1 + lsl r0, r0, #0x4 + ldrb r0, [r3, r0] + cmp r1, #0x27 + mov r12, r0 + bge _020260AE + ldr r7, _020260BC ; =0x00000951 + add r4, r7, #0x0 + add r5, r7, #0x0 + sub r3, r7, #0x1 + add r4, #0x28 + add r5, #0x27 +_0202609E: + add r0, r2, r1 + ldrb r6, [r0, r7] + add r1, r1, #0x1 + cmp r1, #0x27 + strb r6, [r0, r3] + ldrb r6, [r0, r4] + strb r6, [r0, r5] + blt _0202609E +_020260AE: + ldr r0, _020260C0 ; =0x00000977 + mov r1, #0x0 + strb r1, [r2, r0] + mov r0, r12 + pop {r4-r7} + bx lr + nop +_020260BC: .word 0x00000951 +_020260C0: .word 0x00000977 + + thumb_func_start sub_020260C4 +sub_020260C4: ; 0x020260C4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02025A00 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _020260E8 + add r1, r5, r0 + mov r0, #0x95 + lsl r0, r0, #0x4 + strb r4, [r1, r0] + add r0, #0x28 + strb r6, [r1, r0] + mov r0, #0x1 + pop {r4-r6, pc} +_020260E8: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020260EC +sub_020260EC: ; 0x020260EC + push {r4-r7, lr} + sub sp, #0x5c + add r7, r0, #0x0 + mov r0, #0x95 + lsl r0, r0, #0x4 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r0, r7, r0 + add r1, sp, #0x34 + mov r2, #0x28 + mov r4, #0x0 + blx sub_020CE3E0 + ldr r0, _02026168 ; =0x00000978 + add r1, sp, #0xc + add r0, r7, r0 + mov r2, #0x28 + blx sub_020CE3E0 + ldr r3, [sp, #0x0] + add r1, sp, #0x34 + add r3, r1, r3 + mov r12, r3 + ldr r3, [sp, #0x0] + add r2, sp, #0xc + add r3, r2, r3 + add r0, r4, #0x0 + str r3, [sp, #0x8] +_02026124: + ldr r3, [sp, #0x0] + cmp r0, r3 + beq _0202613C + ldrb r5, [r1, #0x0] + mov r3, #0x95 + add r6, r7, r4 + lsl r3, r3, #0x4 + strb r5, [r6, r3] + ldrb r5, [r2, #0x0] + add r3, #0x28 + add r4, r4, #0x1 + strb r5, [r6, r3] +_0202613C: + ldr r3, [sp, #0x4] + cmp r0, r3 + bne _02026158 + mov r3, r12 + ldrb r5, [r3, #0x0] + mov r3, #0x95 + add r6, r7, r4 + lsl r3, r3, #0x4 + strb r5, [r6, r3] + ldr r3, [sp, #0x8] + add r4, r4, #0x1 + ldrb r5, [r3, #0x0] + ldr r3, _02026168 ; =0x00000978 + strb r5, [r6, r3] +_02026158: + add r0, r0, #0x1 + add r1, r1, #0x1 + add r2, r2, #0x1 + cmp r0, #0x28 + blt _02026124 + add sp, #0x5c + pop {r4-r7, pc} + nop +_02026168: .word 0x00000978 + + thumb_func_start sub_0202616C +sub_0202616C: ; 0x0202616C + ldr r1, _02026184 ; =0x00000928 + mov r3, #0x0 +_02026170: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + beq _0202617E + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02026170 +_0202617E: + add r0, r3, #0x0 + bx lr + nop +_02026184: .word 0x00000928 + + thumb_func_start sub_02026188 +sub_02026188: ; 0x02026188 + add r1, r0, r1 + ldr r0, _02026190 ; =0x00000928 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_02026190: .word 0x00000928 + + thumb_func_start sub_02026194 +sub_02026194: ; 0x02026194 + push {r3-r6} + ldr r2, _020261BC ; =0x00000928 + add r3, r0, r1 + ldrb r2, [r3, r2] + cmp r1, #0x27 + bge _020261B0 + ldr r3, _020261C0 ; =0x00000929 + sub r4, r3, #0x1 +_020261A4: + add r6, r0, r1 + ldrb r5, [r6, r3] + add r1, r1, #0x1 + cmp r1, #0x27 + strb r5, [r6, r4] + blt _020261A4 +_020261B0: + ldr r1, _020261C4 ; =0x0000094F + mov r3, #0x0 + strb r3, [r0, r1] + add r0, r2, #0x0 + pop {r3-r6} + bx lr + .balign 4 +_020261BC: .word 0x00000928 +_020261C0: .word 0x00000929 +_020261C4: .word 0x0000094F + + thumb_func_start sub_020261C8 +sub_020261C8: ; 0x020261C8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02025A20 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _020261E4 + add r1, r5, r0 + ldr r0, _020261E8 ; =0x00000928 + strb r4, [r1, r0] + mov r0, #0x1 + pop {r3-r5, pc} +_020261E4: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_020261E8: .word 0x00000928 + + thumb_func_start sub_020261EC +sub_020261EC: ; 0x020261EC + push {r3-r7, lr} + sub sp, #0x30 + add r5, r0, #0x0 + ldr r0, _02026238 ; =0x00000928 + str r1, [sp, #0x4] + str r2, [sp, #0x0] + add r0, r5, r0 + add r1, sp, #0x8 + mov r2, #0x28 + mov r4, #0x0 + blx sub_020CE3E0 + ldr r2, [sp, #0x4] + add r1, sp, #0x8 + add r0, r4, #0x0 + add r7, r1, r2 +_0202620C: + ldr r2, [sp, #0x4] + cmp r0, r2 + beq _0202621C + ldrb r6, [r1, #0x0] + ldr r2, _02026238 ; =0x00000928 + add r3, r5, r4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_0202621C: + ldr r2, [sp, #0x0] + cmp r0, r2 + bne _0202622C + ldrb r6, [r7, #0x0] + ldr r2, _02026238 ; =0x00000928 + add r3, r5, r4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_0202622C: + add r0, r0, #0x1 + add r1, r1, #0x1 + cmp r0, #0x28 + blt _0202620C + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_02026238: .word 0x00000928 + + thumb_func_start sub_0202623C +sub_0202623C: ; 0x0202623C + ldr r1, _02026254 ; =0x000008D8 + mov r3, #0x0 +_02026240: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + beq _0202624E + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02026240 +_0202624E: + add r0, r3, #0x0 + bx lr + nop +_02026254: .word 0x000008D8 + + thumb_func_start sub_02026258 +sub_02026258: ; 0x02026258 + add r1, r0, r1 + ldr r0, _02026260 ; =0x000008D8 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_02026260: .word 0x000008D8 + + thumb_func_start sub_02026264 +sub_02026264: ; 0x02026264 + push {r3-r6} + ldr r2, _0202628C ; =0x000008D8 + add r3, r0, r1 + ldrb r2, [r3, r2] + cmp r1, #0x27 + bge _02026280 + ldr r3, _02026290 ; =0x000008D9 + sub r4, r3, #0x1 +_02026274: + add r6, r0, r1 + ldrb r5, [r6, r3] + add r1, r1, #0x1 + cmp r1, #0x27 + strb r5, [r6, r4] + blt _02026274 +_02026280: + ldr r1, _02026294 ; =0x000008FF + mov r3, #0x0 + strb r3, [r0, r1] + add r0, r2, #0x0 + pop {r3-r6} + bx lr + .balign 4 +_0202628C: .word 0x000008D8 +_02026290: .word 0x000008D9 +_02026294: .word 0x000008FF + + thumb_func_start sub_02026298 +sub_02026298: ; 0x02026298 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02025A40 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _020262B4 + add r1, r5, r0 + ldr r0, _020262B8 ; =0x000008D8 + strb r4, [r1, r0] + mov r0, #0x1 + pop {r3-r5, pc} +_020262B4: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_020262B8: .word 0x000008D8 + + thumb_func_start sub_020262BC +sub_020262BC: ; 0x020262BC + push {r3-r7, lr} + sub sp, #0x30 + add r5, r0, #0x0 + ldr r0, _02026308 ; =0x000008D8 + str r1, [sp, #0x4] + str r2, [sp, #0x0] + add r0, r5, r0 + add r1, sp, #0x8 + mov r2, #0x28 + mov r4, #0x0 + blx sub_020CE3E0 + ldr r2, [sp, #0x4] + add r1, sp, #0x8 + add r0, r4, #0x0 + add r7, r1, r2 +_020262DC: + ldr r2, [sp, #0x4] + cmp r0, r2 + beq _020262EC + ldrb r6, [r1, #0x0] + ldr r2, _02026308 ; =0x000008D8 + add r3, r5, r4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_020262EC: + ldr r2, [sp, #0x0] + cmp r0, r2 + bne _020262FC + ldrb r6, [r7, #0x0] + ldr r2, _02026308 ; =0x000008D8 + add r3, r5, r4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_020262FC: + add r0, r0, #0x1 + add r1, r1, #0x1 + cmp r0, #0x28 + blt _020262DC + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_02026308: .word 0x000008D8 + + thumb_func_start sub_0202630C +sub_0202630C: ; 0x0202630C + push {r3-r7, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r6, r3, #0x0 + cmp r4, #0x40 + blt _0202631E + bl sub_02020C2C +_0202631E: + ldr r0, _02026350 ; =0x0000010F + add r1, r5, r4 + strb r7, [r1, r0] + lsl r1, r4, #0x1 + add r1, r4, r1 + add r2, r0, #0x0 + add r1, r5, r1 + add r2, #0x40 + strb r6, [r1, r2] + mov r2, #0xf + lsl r2, r2, #0x8 + add r3, r6, #0x0 + and r3, r2 + asr r4, r3, #0x8 + ldr r3, [sp, #0x18] + and r2, r3 + asr r2, r2, #0x4 + add r4, r4, r2 + add r2, r0, #0x0 + add r2, #0x41 + strb r4, [r1, r2] + add r0, #0x42 + strb r3, [r1, r0] + pop {r3-r7, pc} + nop +_02026350: .word 0x0000010F + + thumb_func_start sub_02026354 +sub_02026354: ; 0x02026354 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x40 + blt _02026362 + bl sub_02020C2C +_02026362: + ldr r0, _0202636C ; =0x0000010F + add r1, r5, r4 + ldrb r0, [r1, r0] + pop {r3-r5, pc} + nop +_0202636C: .word 0x0000010F + + thumb_func_start sub_02026370 +sub_02026370: ; 0x02026370 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x40 + blt _0202637E + bl sub_02020C2C +_0202637E: + lsl r0, r4, #0x1 + add r0, r4, r0 + add r1, r5, r0 + ldr r0, _02026398 ; =0x0000014F + ldrb r2, [r1, r0] + add r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x8 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + pop {r3-r5, pc} + .balign 4 +_02026398: .word 0x0000014F + + thumb_func_start sub_0202639C +sub_0202639C: ; 0x0202639C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x40 + blt _020263AA + bl sub_02020C2C +_020263AA: + lsl r0, r4, #0x1 + add r0, r4, r0 + add r1, r5, r0 + ldr r0, _020263C4 ; =0x00000151 + ldrb r2, [r1, r0] + sub r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x4 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + pop {r3-r5, pc} + .balign 4 +_020263C4: .word 0x00000151 + + thumb_func_start sub_020263C8 +sub_020263C8: ; 0x020263C8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x40 + blt _020263D6 + bl sub_02020C2C +_020263D6: + ldr r0, _020263F0 ; =0x0000010F + mov r1, #0x0 + add r2, r5, r4 + strb r1, [r2, r0] + add r0, #0x40 + add r2, r5, r0 + lsl r0, r4, #0x1 + add r0, r4, r0 + add r0, r2, r0 + mov r2, #0x3 + blx sub_020CE34C + pop {r3-r5, pc} + .balign 4 +_020263F0: .word 0x0000010F + + thumb_func_start sub_020263F4 +sub_020263F4: ; 0x020263F4 + push {r3-r7, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r6, r3, #0x0 + cmp r4, #0x10 + blt _02026406 + bl sub_02020C2C +_02026406: + lsl r2, r4, #0x1 + ldr r1, _02026440 ; =0x0000050C + add r0, r5, r4 + add r2, r4, r2 + add r4, r5, r2 + add r2, r1, #0x0 + mov r5, #0xf + strb r7, [r0, r1] + add r2, #0x10 + strb r6, [r4, r2] + lsl r5, r5, #0x8 + add r2, r6, #0x0 + and r2, r5 + asr r3, r2, #0x8 + ldr r2, [sp, #0x18] + and r5, r2 + asr r5, r5, #0x4 + add r5, r3, r5 + add r3, r1, #0x0 + add r3, #0x11 + strb r5, [r4, r3] + add r3, r1, #0x0 + add r3, #0x12 + strb r2, [r4, r3] + ldr r2, [sp, #0x1c] + add r1, #0x40 + strb r2, [r0, r1] + pop {r3-r7, pc} + nop +_02026440: .word 0x0000050C + + thumb_func_start sub_02026444 +sub_02026444: ; 0x02026444 + add r1, r0, r1 + ldr r0, _0202644C ; =0x0000050C + ldrb r0, [r1, r0] + bx lr + .balign 4 +_0202644C: .word 0x0000050C + + thumb_func_start sub_02026450 +sub_02026450: ; 0x02026450 + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _0202646C ; =0x0000051C + ldrb r2, [r1, r0] + add r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x8 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_0202646C: .word 0x0000051C + + thumb_func_start sub_02026470 +sub_02026470: ; 0x02026470 + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _0202648C ; =0x0000051E + ldrb r2, [r1, r0] + sub r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x4 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_0202648C: .word 0x0000051E + + thumb_func_start sub_02026490 +sub_02026490: ; 0x02026490 + add r1, r0, r1 + ldr r0, _02026498 ; =0x0000054C + ldrb r0, [r1, r0] + bx lr + .balign 4 +_02026498: .word 0x0000054C + + thumb_func_start sub_0202649C +sub_0202649C: ; 0x0202649C + push {r3-r7, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r3, #0x0 + cmp r4, #0x64 + blt _020264AE + bl sub_02020C2C +_020264AE: + ldr r1, _020264E8 ; =0x0000055C + add r0, r5, r4 + strb r6, [r0, r1] + lsl r1, r4, #0x1 + add r1, r4, r1 + add r4, r5, r1 + mov r5, #0xf + lsl r5, r5, #0x8 + add r2, r7, #0x0 + and r2, r5 + asr r3, r2, #0x8 + ldr r2, [sp, #0x18] + ldr r1, _020264EC ; =0x00000688 + and r5, r2 + asr r5, r5, #0x4 + add r5, r3, r5 + strb r7, [r4, r1] + add r3, r1, #0x1 + strb r5, [r4, r3] + add r3, r1, #0x2 + strb r2, [r4, r3] + add r2, r1, #0x0 + ldr r3, [sp, #0x1c] + sub r2, #0x64 + strb r3, [r0, r2] + ldr r2, [sp, #0x20] + sub r1, #0xc8 + strb r2, [r0, r1] + pop {r3-r7, pc} + .balign 4 +_020264E8: .word 0x0000055C +_020264EC: .word 0x00000688 + + thumb_func_start sub_020264F0 +sub_020264F0: ; 0x020264F0 + add r1, r0, r1 + ldr r0, _020264F8 ; =0x0000055C + ldrb r0, [r1, r0] + bx lr + .balign 4 +_020264F8: .word 0x0000055C + + thumb_func_start sub_020264FC +sub_020264FC: ; 0x020264FC + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _02026518 ; =0x00000688 + ldrb r2, [r1, r0] + add r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x8 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_02026518: .word 0x00000688 + + thumb_func_start sub_0202651C +sub_0202651C: ; 0x0202651C + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _02026538 ; =0x0000068A + ldrb r2, [r1, r0] + sub r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x4 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_02026538: .word 0x0000068A + + thumb_func_start sub_0202653C +sub_0202653C: ; 0x0202653C + add r1, r0, r1 + ldr r0, _02026544 ; =0x00000624 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_02026544: .word 0x00000624 + + thumb_func_start sub_02026548 +sub_02026548: ; 0x02026548 + add r1, r0, r1 + mov r0, #0x17 + lsl r0, r0, #0x6 + ldrb r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start sub_02026554 +sub_02026554: ; 0x02026554 + push {r4-r7} + ldr r3, _020265B0 ; =0x00000211 + add r7, r0, #0x0 + mov r12, r1 + mov r0, #0x0 + add r1, r7, #0x0 + sub r4, r3, #0x1 + sub r5, r3, #0x2 +_02026564: + ldrb r6, [r1, r5] + cmp r6, #0x0 + bne _020265A0 + ldrb r6, [r1, r4] + cmp r6, #0x0 + bne _020265A0 + ldrb r6, [r1, r3] + cmp r6, #0x0 + bne _020265A0 + lsl r1, r0, #0x1 + add r1, r0, r1 + mov r5, #0xf + ldr r4, _020265B4 ; =0x0000020F + add r1, r7, r1 + mov r3, r12 + strb r3, [r1, r4] + lsl r5, r5, #0x8 + mov r3, r12 + and r3, r5 + asr r6, r3, #0x8 + add r3, r2, #0x0 + and r3, r5 + asr r3, r3, #0x4 + add r5, r6, r3 + add r3, r4, #0x1 + strb r5, [r1, r3] + add r3, r4, #0x2 + strb r2, [r1, r3] + pop {r4-r7} + bx lr +_020265A0: + add r0, r0, #0x1 + add r1, r1, #0x3 + cmp r0, #0xff + blt _02026564 + mov r0, #0x0 + pop {r4-r7} + bx lr + nop +_020265B0: .word 0x00000211 +_020265B4: .word 0x0000020F + + thumb_func_start sub_020265B8 +sub_020265B8: ; 0x020265B8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xff + blt _020265C6 + bl sub_02020C2C +_020265C6: + ldr r0, _020265DC ; =0x0000020F + mov r2, #0x3 + add r1, r5, r0 + lsl r0, r4, #0x1 + add r0, r4, r0 + add r0, r1, r0 + mov r1, #0x0 + blx sub_020CE34C + pop {r3-r5, pc} + nop +_020265DC: .word 0x0000020F + + thumb_func_start sub_020265E0 +sub_020265E0: ; 0x020265E0 + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _020265FC ; =0x0000020F + ldrb r2, [r1, r0] + add r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x8 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_020265FC: .word 0x0000020F + + thumb_func_start sub_02026600 +sub_02026600: ; 0x02026600 + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _0202661C ; =0x00000211 + ldrb r2, [r1, r0] + sub r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x4 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_0202661C: .word 0x00000211 + + thumb_func_start sub_02026620 +sub_02026620: ; 0x02026620 + mov r1, #0x9b + lsl r1, r1, #0x4 + ldrb r0, [r0, r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + bne _02026630 + mov r0, #0x1 + bx lr +_02026630: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02026634 +sub_02026634: ; 0x02026634 + mov r2, #0x9b + lsl r2, r2, #0x4 + ldrb r3, [r0, r2] + mov r1, #0xf0 + bic r3, r1 + mov r1, #0x10 + orr r1, r3 + strb r1, [r0, r2] + bx lr + .balign 4 + + thumb_func_start sub_02026648 +sub_02026648: ; 0x02026648 + mov r1, #0x9b + lsl r1, r1, #0x4 + ldrb r0, [r0, r1] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + bx lr + + thumb_func_start sub_02026654 +sub_02026654: ; 0x02026654 + mov r2, #0x9b + lsl r2, r2, #0x4 + ldrb r3, [r0, r2] + mov r1, #0xf + bic r3, r1 + strb r3, [r0, r2] + bx lr + .balign 4 + + thumb_func_start sub_02026664 +sub_02026664: ; 0x02026664 + push {r3-r4} + cmp r1, #0x2c + blt _0202667E + cmp r1, #0x3b + bgt _0202667E + ldr r2, _02026684 ; =0x0000080C + mov r3, #0x1 + sub r1, #0x2c + ldr r4, [r0, r2] + lsl r3, r1 + add r1, r4, #0x0 + orr r1, r3 + str r1, [r0, r2] +_0202667E: + pop {r3-r4} + bx lr + nop +_02026684: .word 0x0000080C + + thumb_func_start sub_02026688 +sub_02026688: ; 0x02026688 + cmp r1, #0x2c + blt _02026690 + cmp r1, #0x3b + ble _02026694 +_02026690: + mov r0, #0x1 + bx lr +_02026694: + ldr r2, _020266AC ; =0x0000080C + sub r1, #0x2c + ldr r3, [r0, r2] + mov r0, #0x1 + add r2, r0, #0x0 + lsl r2, r1 + add r1, r3, #0x0 + tst r1, r2 + beq _020266A8 + mov r0, #0x0 +_020266A8: + bx lr + nop +_020266AC: .word 0x0000080C + + thumb_func_start sub_020266B0 +sub_020266B0: ; 0x020266B0 + ldr r1, _020266C4 ; =0x000009AF + ldrb r2, [r0, r1] + cmp r2, #0x63 + blo _020266BE + mov r2, #0x0 + strb r2, [r0, r1] + bx lr +_020266BE: + add r2, r2, #0x1 + strb r2, [r0, r1] + bx lr + .balign 4 +_020266C4: .word 0x000009AF + + thumb_func_start sub_020266C8 +sub_020266C8: ; 0x020266C8 + ldr r1, _020266D0 ; =0x000009AF + ldrb r0, [r0, r1] + bx lr + nop +_020266D0: .word 0x000009AF + + thumb_func_start sub_020266D4 +sub_020266D4: ; 0x020266D4 + ldr r3, _020266DC ; =sub_020CE34C + mov r1, #0x0 + mov r2, #0x94 + bx r3 + .balign 4 +_020266DC: .word sub_020CE34C + + thumb_func_start sub_020266E0 +sub_020266E0: ; 0x020266E0 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x2d + blx sub_020CE34C + add r0, r4, #0x0 + add r0, #0x2d + mov r1, #0x0 + mov r2, #0x20 + blx sub_020CE34C + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x8c + strh r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x8e + strh r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x90 + strb r1, [r0, #0x0] + add r4, #0x91 + strb r1, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02026714 +sub_02026714: ; 0x02026714 + mov r1, #0x0 + add r0, #0x91 + strb r1, [r0, #0x0] + bx lr + + thumb_func_start sub_0202671C +sub_0202671C: ; 0x0202671C + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r7, r2, #0x0 + add r6, r3, #0x0 + cmp r4, #0x20 + blt _0202672E + bl sub_02020C2C +_0202672E: + cmp r6, #0x20 + blt _02026736 + bl sub_02020C2C +_02026736: + ldr r0, [sp, #0x18] + cmp r0, #0x20 + blt _02026740 + bl sub_02020C2C +_02026740: + cmp r5, #0x0 + bne _02026748 + bl sub_02020C2C +_02026748: + cmp r4, #0x0 + beq _02026774 + cmp r4, #0x10 + bge _02026762 + sub r1, r4, #0x1 + lsl r0, r1, #0x1 + add r0, r1, r0 + strb r6, [r5, r0] + ldr r1, [sp, #0x18] + add r0, r5, r0 + strb r1, [r0, #0x1] + strb r7, [r0, #0x2] + pop {r3-r7, pc} +_02026762: + sub r4, #0x10 + lsl r2, r4, #0x1 + add r0, r5, r2 + add r0, #0x2d + strb r6, [r0, #0x0] + add r0, r5, r2 + ldr r1, [sp, #0x18] + add r0, #0x2e + strb r1, [r0, #0x0] +_02026774: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02026778 +sub_02026778: ; 0x02026778 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + bl sub_020267C4 + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r3, r7, #0x0 + str r4, [sp, #0x0] + bl sub_0202671C + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02026798 +sub_02026798: ; 0x02026798 + add r0, #0x88 + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + cmp r0, #0x32 + blt _020267A8 + mov r0, #0x5 + bx lr +_020267A8: + cmp r0, #0xa + blt _020267B0 + mov r0, #0x4 + bx lr +_020267B0: + cmp r0, #0x3 + blt _020267B8 + mov r0, #0x3 + bx lr +_020267B8: + cmp r0, #0x1 + blt _020267C0 + mov r0, #0x2 + bx lr +_020267C0: + mov r0, #0x1 + bx lr + + thumb_func_start sub_020267C4 +sub_020267C4: ; 0x020267C4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x20 + blt _020267D2 + bl sub_02020C2C +_020267D2: + cmp r5, #0x0 + bne _020267DE + add r0, r4, #0x0 + bl sub_02026798 + pop {r3-r5, pc} +_020267DE: + cmp r5, #0x10 + bge _020267EE + sub r1, r5, #0x1 + lsl r0, r1, #0x1 + add r0, r1, r0 + add r0, r4, r0 + ldrb r0, [r0, #0x2] + pop {r3-r5, pc} +_020267EE: + sub r5, #0x10 + lsl r1, r5, #0x1 + add r0, r4, r1 + add r0, #0x2d + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202680A + add r0, r4, r1 + add r0, #0x2e + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202680A + mov r0, #0x6 + pop {r3-r5, pc} +_0202680A: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02026810 +sub_02026810: ; 0x02026810 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x20 + blt _0202681E + bl sub_02020C2C +_0202681E: + cmp r5, #0x0 + bne _02026826 + mov r0, #0xf + pop {r3-r5, pc} +_02026826: + cmp r5, #0x10 + bge _02026834 + sub r1, r5, #0x1 + lsl r0, r1, #0x1 + add r0, r1, r0 + ldrb r0, [r4, r0] + pop {r3-r5, pc} +_02026834: + sub r5, #0x10 + lsl r0, r5, #0x1 + add r0, r4, r0 + add r0, #0x2d + ldrb r0, [r0, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_02026840 +sub_02026840: ; 0x02026840 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x20 + blt _0202684E + bl sub_02020C2C +_0202684E: + cmp r5, #0x0 + bne _02026856 + mov r0, #0xc + pop {r3-r5, pc} +_02026856: + cmp r5, #0x10 + bge _02026866 + sub r1, r5, #0x1 + lsl r0, r1, #0x1 + add r0, r1, r0 + add r0, r4, r0 + ldrb r0, [r0, #0x1] + pop {r3-r5, pc} +_02026866: + sub r5, #0x10 + lsl r0, r5, #0x1 + add r0, r4, r0 + add r0, #0x2e + ldrb r0, [r0, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02026874 +sub_02026874: ; 0x02026874 + add r0, #0x88 + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + cmp r0, #0x32 + blo _02026884 + mov r0, #0x0 + bx lr +_02026884: + cmp r0, #0xa + blo _0202688C + mov r0, #0x6 + bx lr +_0202688C: + cmp r0, #0x3 + blo _02026894 + mov r0, #0xb + bx lr +_02026894: + cmp r0, #0x1 + blo _0202689C + mov r0, #0xf + bx lr +_0202689C: + mov r0, #0x10 + bx lr + + thumb_func_start sub_020268A0 +sub_020268A0: ; 0x020268A0 + add r0, #0x88 + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + cmp r0, #0x32 + blo _020268B0 + mov r0, #0xf + bx lr +_020268B0: + cmp r0, #0xa + blo _020268B8 + mov r0, #0xf + bx lr +_020268B8: + cmp r0, #0x3 + blo _020268C0 + mov r0, #0xf + bx lr +_020268C0: + cmp r0, #0x1 + blo _020268C8 + mov r0, #0xc + bx lr +_020268C8: + mov r0, #0xa + bx lr + + thumb_func_start sub_020268CC +sub_020268CC: ; 0x020268CC + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_020268D4 +sub_020268D4: ; 0x020268D4 + push {r3, lr} + bl sub_020269A0 + cmp r0, #0x4 + bne _020268E2 + mov r0, #0x1 + pop {r3, pc} +_020268E2: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020268E8 +sub_020268E8: ; 0x020268E8 + ldr r3, [r0, #0x0] + ldr r2, _020268F8 ; =0xFFF00000 + and r3, r2 + ldr r2, _020268FC ; =0x000FFFFF + and r1, r2 + orr r1, r3 + str r1, [r0, #0x0] + bx lr + .balign 4 +_020268F8: .word 0xFFF00000 +_020268FC: .word 0x000FFFFF + + thumb_func_start sub_02026900 +sub_02026900: ; 0x02026900 + ldr r0, [r0, #0x4] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026908 +sub_02026908: ; 0x02026908 + push {r3-r4} + ldr r2, [r0, #0x4] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _0202692C ; =0x000F423F + cmp r4, r1 + bhs _02026926 + ldr r1, _02026930 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026934 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x4] +_02026926: + pop {r3-r4} + bx lr + nop +_0202692C: .word 0x000F423F +_02026930: .word 0xFFF00000 +_02026934: .word 0x000FFFFF + + thumb_func_start sub_02026938 +sub_02026938: ; 0x02026938 + ldr r0, [r0, #0x8] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026940 +sub_02026940: ; 0x02026940 + push {r3-r4} + ldr r2, [r0, #0x8] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026964 ; =0x000F423F + cmp r4, r1 + bhs _0202695E + ldr r1, _02026968 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _0202696C ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x8] +_0202695E: + pop {r3-r4} + bx lr + nop +_02026964: .word 0x000F423F +_02026968: .word 0xFFF00000 +_0202696C: .word 0x000FFFFF + + thumb_func_start sub_02026970 +sub_02026970: ; 0x02026970 + push {r3-r4} + ldr r2, [r0, #0xc] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026994 ; =0x000F423F + cmp r4, r1 + bhs _0202698E + ldr r1, _02026998 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _0202699C ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0xc] +_0202698E: + pop {r3-r4} + bx lr + nop +_02026994: .word 0x000F423F +_02026998: .word 0xFFF00000 +_0202699C: .word 0x000FFFFF + + thumb_func_start sub_020269A0 +sub_020269A0: ; 0x020269A0 + ldr r0, [r0, #0x38] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + cmp r0, #0x32 + blt _020269AE + mov r0, #0x4 + bx lr +_020269AE: + cmp r0, #0xa + blt _020269B6 + mov r0, #0x3 + bx lr +_020269B6: + cmp r0, #0x3 + blt _020269BE + mov r0, #0x2 + bx lr +_020269BE: + cmp r0, #0x1 + blt _020269C6 + mov r0, #0x1 + bx lr +_020269C6: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_020269CC +sub_020269CC: ; 0x020269CC + ldr r0, [r0, #0x38] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_020269D4 +sub_020269D4: ; 0x020269D4 + push {r3-r4} + ldr r2, [r0, #0x38] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _020269F8 ; =0x000F423F + cmp r4, r1 + bhs _020269F2 + ldr r1, _020269FC ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026A00 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x38] +_020269F2: + pop {r3-r4} + bx lr + nop +_020269F8: .word 0x000F423F +_020269FC: .word 0xFFF00000 +_02026A00: .word 0x000FFFFF + + thumb_func_start sub_02026A04 +sub_02026A04: ; 0x02026A04 + ldr r0, [r0, #0x10] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026A0C +sub_02026A0C: ; 0x02026A0C + push {r4-r5} + cmp r1, #0x0 + ble _02026A2C + ldr r4, [r0, #0x10] + lsl r2, r4, #0xc + lsr r5, r2, #0xc + ldr r2, _02026A44 ; =0x000F423F + sub r3, r2, r1 + cmp r5, r3 + bls _02026A2C + ldr r1, _02026A48 ; =0xFFF00000 + and r1, r4 + orr r1, r2 + str r1, [r0, #0x10] + pop {r4-r5} + bx lr +_02026A2C: + ldr r3, [r0, #0x10] + ldr r2, _02026A48 ; =0xFFF00000 + and r2, r3 + lsl r3, r3, #0xc + lsr r3, r3, #0xc + add r3, r3, r1 + ldr r1, _02026A4C ; =0x000FFFFF + and r1, r3 + orr r1, r2 + str r1, [r0, #0x10] + pop {r4-r5} + bx lr + .balign 4 +_02026A44: .word 0x000F423F +_02026A48: .word 0xFFF00000 +_02026A4C: .word 0x000FFFFF + + thumb_func_start sub_02026A50 +sub_02026A50: ; 0x02026A50 + ldr r0, [r0, #0x14] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026A58 +sub_02026A58: ; 0x02026A58 + push {r4-r5} + cmp r1, #0x0 + ble _02026A78 + ldr r4, [r0, #0x14] + lsl r2, r4, #0xc + lsr r5, r2, #0xc + ldr r2, _02026A90 ; =0x000F423F + sub r3, r2, r1 + cmp r5, r3 + bls _02026A78 + ldr r1, _02026A94 ; =0xFFF00000 + and r1, r4 + orr r1, r2 + str r1, [r0, #0x14] + pop {r4-r5} + bx lr +_02026A78: + ldr r3, [r0, #0x14] + ldr r2, _02026A94 ; =0xFFF00000 + and r2, r3 + lsl r3, r3, #0xc + lsr r3, r3, #0xc + add r3, r3, r1 + ldr r1, _02026A98 ; =0x000FFFFF + and r1, r3 + orr r1, r2 + str r1, [r0, #0x14] + pop {r4-r5} + bx lr + .balign 4 +_02026A90: .word 0x000F423F +_02026A94: .word 0xFFF00000 +_02026A98: .word 0x000FFFFF + + thumb_func_start sub_02026A9C +sub_02026A9C: ; 0x02026A9C + push {r4-r5} + cmp r1, #0x0 + ble _02026ABC + ldr r4, [r0, #0x18] + lsl r2, r4, #0xc + lsr r5, r2, #0xc + ldr r2, _02026AD4 ; =0x000F423F + sub r3, r2, r1 + cmp r5, r3 + bls _02026ABC + ldr r1, _02026AD8 ; =0xFFF00000 + and r1, r4 + orr r1, r2 + str r1, [r0, #0x18] + pop {r4-r5} + bx lr +_02026ABC: + ldr r3, [r0, #0x18] + ldr r2, _02026AD8 ; =0xFFF00000 + and r2, r3 + lsl r3, r3, #0xc + lsr r3, r3, #0xc + add r3, r3, r1 + ldr r1, _02026ADC ; =0x000FFFFF + and r1, r3 + orr r1, r2 + str r1, [r0, #0x18] + pop {r4-r5} + bx lr + .balign 4 +_02026AD4: .word 0x000F423F +_02026AD8: .word 0xFFF00000 +_02026ADC: .word 0x000FFFFF + + thumb_func_start sub_02026AE0 +sub_02026AE0: ; 0x02026AE0 + ldr r0, [r0, #0x1c] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026AE8 +sub_02026AE8: ; 0x02026AE8 + push {r3-r4} + ldr r2, [r0, #0x1c] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026B0C ; =0x000F423F + cmp r4, r1 + bhs _02026B06 + ldr r1, _02026B10 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026B14 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x1c] +_02026B06: + pop {r3-r4} + bx lr + nop +_02026B0C: .word 0x000F423F +_02026B10: .word 0xFFF00000 +_02026B14: .word 0x000FFFFF + + thumb_func_start sub_02026B18 +sub_02026B18: ; 0x02026B18 + ldr r0, [r0, #0x20] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026B20 +sub_02026B20: ; 0x02026B20 + push {r3-r4} + ldr r2, [r0, #0x20] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026B44 ; =0x000F423F + cmp r4, r1 + bhs _02026B3E + ldr r1, _02026B48 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026B4C ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x20] +_02026B3E: + pop {r3-r4} + bx lr + nop +_02026B44: .word 0x000F423F +_02026B48: .word 0xFFF00000 +_02026B4C: .word 0x000FFFFF + + thumb_func_start sub_02026B50 +sub_02026B50: ; 0x02026B50 + ldr r0, [r0, #0x24] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026B58 +sub_02026B58: ; 0x02026B58 + push {r3-r4} + ldr r2, [r0, #0x24] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026B7C ; =0x000F423F + cmp r4, r1 + bhs _02026B76 + ldr r1, _02026B80 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026B84 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x24] +_02026B76: + pop {r3-r4} + bx lr + nop +_02026B7C: .word 0x000F423F +_02026B80: .word 0xFFF00000 +_02026B84: .word 0x000FFFFF + + thumb_func_start sub_02026B88 +sub_02026B88: ; 0x02026B88 + ldr r0, [r0, #0x28] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026B90 +sub_02026B90: ; 0x02026B90 + push {r3-r4} + ldr r2, [r0, #0x28] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026BB4 ; =0x000F423F + cmp r4, r1 + bhs _02026BAE + ldr r1, _02026BB8 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026BBC ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x28] +_02026BAE: + pop {r3-r4} + bx lr + nop +_02026BB4: .word 0x000F423F +_02026BB8: .word 0xFFF00000 +_02026BBC: .word 0x000FFFFF + + thumb_func_start sub_02026BC0 +sub_02026BC0: ; 0x02026BC0 + ldr r0, [r0, #0x2c] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026BC8 +sub_02026BC8: ; 0x02026BC8 + push {r3-r4} + ldr r2, [r0, #0x2c] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026BEC ; =0x000F423F + cmp r4, r1 + bhs _02026BE6 + ldr r1, _02026BF0 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026BF4 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x2c] +_02026BE6: + pop {r3-r4} + bx lr + nop +_02026BEC: .word 0x000F423F +_02026BF0: .word 0xFFF00000 +_02026BF4: .word 0x000FFFFF + + thumb_func_start sub_02026BF8 +sub_02026BF8: ; 0x02026BF8 + ldr r0, [r0, #0x30] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026C00 +sub_02026C00: ; 0x02026C00 + push {r3-r4} + ldr r2, [r0, #0x30] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026C24 ; =0x000F423F + cmp r4, r1 + bhs _02026C1E + ldr r1, _02026C28 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026C2C ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x30] +_02026C1E: + pop {r3-r4} + bx lr + nop +_02026C24: .word 0x000F423F +_02026C28: .word 0xFFF00000 +_02026C2C: .word 0x000FFFFF + + thumb_func_start sub_02026C30 +sub_02026C30: ; 0x02026C30 + ldr r0, [r0, #0x34] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start sub_02026C38 +sub_02026C38: ; 0x02026C38 + push {r3-r4} + ldr r2, [r0, #0x34] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026C5C ; =0x000F423F + cmp r4, r1 + bhs _02026C56 + ldr r1, _02026C60 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026C64 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x34] +_02026C56: + pop {r3-r4} + bx lr + nop +_02026C5C: .word 0x000F423F +_02026C60: .word 0xFFF00000 +_02026C64: .word 0x000FFFFF + + thumb_func_start sub_02026C68 +sub_02026C68: ; 0x02026C68 + push {r3-r4} + add r4, r0, #0x0 + add r4, #0x8c + strh r1, [r4, #0x0] + add r1, r0, #0x0 + add r1, #0x8e + strh r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x90 + strb r3, [r1, #0x0] + mov r1, #0x1 + add r0, #0x91 + strb r1, [r0, #0x0] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_02026C88 +sub_02026C88: ; 0x02026C88 + add r0, #0x8c + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02026C90 +sub_02026C90: ; 0x02026C90 + add r0, #0x8e + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02026C98 +sub_02026C98: ; 0x02026C98 + add r0, #0x90 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02026CA0 +sub_02026CA0: ; 0x02026CA0 + add r0, #0x91 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02026CA8 +sub_02026CA8: ; 0x02026CA8 + ldr r3, _02026CB0 ; =sub_02022610 + mov r1, #0xc + bx r3 + nop +_02026CB0: .word sub_02022610 + 1 + + thumb_func_start sub_02026CB4 +sub_02026CB4: ; 0x02026CB4 + push {r3, lr} + mov r1, #0xc + bl sub_02022610 + add r0, #0x50 + pop {r3, pc} + + thumb_func_start sub_02026CC0 +sub_02026CC0: ; 0x02026CC0 + add r0, #0x50 + bx lr + + thumb_func_start sub_02026CC4 +sub_02026CC4: ; 0x02026CC4 + ldr r3, _02026CCC ; =sub_02022610 + mov r1, #0xc + bx r3 + nop +_02026CCC: .word sub_02022610 + 1 + + thumb_func_start sub_02026CD0 +sub_02026CD0: ; 0x02026CD0 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x0 + add r7, r3, #0x0 + bl sub_020671BC + add r2, r5, #0x0 + strh r0, [r5, #0x8] + add r0, r4, #0x0 + mov r1, #0x74 + add r2, #0xa + bl sub_020671BC + mov r1, #0x0 + add r0, r4, #0x0 + add r2, r1, #0x0 + bl sub_020671BC + str r0, [r5, #0x0] + add r0, r4, #0x0 + mov r1, #0x7 + mov r2, #0x0 + bl sub_020671BC + str r0, [r5, #0x4] + add r0, r4, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x33 + strb r0, [r1, #0x0] + add r0, r5, #0x0 + add r0, #0x31 + strb r6, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x32 + strb r7, [r0, #0x0] + add r1, sp, #0x8 + mov r0, #0x10 + ldrsb r0, [r1, r0] + add r5, #0x30 + strb r0, [r5, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02026D34 +sub_02026D34: ; 0x02026D34 + push {r3-r6, lr} + sub sp, #0xc + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r4, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x8 + bl sub_021DB858 + add r0, r4, #0x0 + bl sub_021DB7E8 + add r4, r0, #0x0 + mov r0, #0x1 + ldr r1, [sp, #0x4] + lsl r0, r0, #0x8 + cmp r1, r0 + blt _02026D5E + bl sub_02020C2C +_02026D5E: + mov r0, #0x1 + ldr r1, [sp, #0x8] + lsl r0, r0, #0x8 + cmp r1, r0 + blt _02026D6C + bl sub_02020C2C +_02026D6C: + mov r0, #0x7f + mvn r0, r0 + cmp r4, r0 + bgt _02026D78 + bl sub_02020C2C +_02026D78: + lsl r0, r4, #0x18 + asr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r2, [sp, #0x4] + ldr r3, [sp, #0x8] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r0, r5, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_02026CD0 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02026D98 +sub_02026D98: ; 0x02026D98 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + add r1, r5, #0x0 + add r4, r2, #0x0 + add r1, #0x20 + mov r2, #0x8 + bl sub_02021EF0 + add r5, #0x34 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_02026DB0 +sub_02026DB0: ; 0x02026DB0 + strb r1, [r0, #0x0] + ldr r1, _02026DC0 ; =0xFFFFFFF0 + strb r2, [r0, #0x1] + strb r3, [r0, #0x2] + add r1, sp + ldrb r1, [r1, #0x10] + strb r1, [r0, #0x3] + bx lr + .balign 4 +_02026DC0: .word 0xFFFFFFF0 + + thumb_func_start sub_02026DC4 +sub_02026DC4: ; 0x02026DC4 + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + cmp r4, #0x3d + blo _02026DD4 + bl sub_02020C2C +_02026DD4: + lsr r2, r4, #0x1f + lsl r1, r4, #0x1d + sub r1, r1, r2 + mov r0, #0x1d + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1a + lsr r1, r0, #0x18 + lsr r0, r4, #0x3 + lsl r0, r0, #0x18 + mov r2, #0xf + lsr r0, r0, #0x16 + lsl r2, r1 + ldr r3, [r5, r0] + mvn r2, r2 + and r2, r3 + str r2, [r5, r0] + add r2, r6, #0x0 + ldr r3, [r5, r0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + str r1, [r5, r0] + pop {r4-r6, pc} + + thumb_func_start sub_02026E08 +sub_02026E08: ; 0x02026E08 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3d + blo _02026E16 + bl sub_02020C2C +_02026E16: + lsr r3, r4, #0x1f + lsl r2, r4, #0x1d + lsr r0, r4, #0x3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + sub r2, r2, r3 + mov r1, #0x1d + ror r2, r1 + add r1, r3, r2 + lsl r1, r1, #0x18 + ldr r0, [r5, r0] + lsr r1, r1, #0x18 + lsl r1, r1, #0x1a + add r2, r0, #0x0 + lsr r1, r1, #0x18 + lsr r2, r1 + mov r0, #0xf + and r0, r2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x9 + bls _02026E44 + mov r0, #0x9 +_02026E44: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02026E48 +sub_02026E48: ; 0x02026E48 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x2 + blo _02026E58 + bl sub_02020C2C +_02026E58: + lsr r2, r6, #0x1f + lsl r1, r6, #0x1b + sub r1, r1, r2 + mov r0, #0x1b + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + lsr r0, r6, #0x5 + lsl r0, r0, #0x18 + mov r2, #0x1 + lsr r0, r0, #0x16 + lsl r2, r1 + ldr r3, [r5, r0] + mvn r2, r2 + and r2, r3 + str r2, [r5, r0] + add r2, r4, #0x0 + ldr r3, [r5, r0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + str r1, [r5, r0] + pop {r4-r6, pc} + + thumb_func_start sub_02026E88 +sub_02026E88: ; 0x02026E88 + lsr r2, r1, #0x5 + lsl r2, r2, #0x18 + lsr r2, r2, #0x16 + ldr r3, [r0, r2] + lsr r2, r1, #0x1f + lsl r1, r1, #0x1b + sub r1, r1, r2 + mov r0, #0x1b + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r1, r3, #0x0 + lsr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .balign 4 + + thumb_func_start sub_02026EB0 +sub_02026EB0: ; 0x02026EB0 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x12 + bls _02026EC0 + bl sub_02020C2C +_02026EC0: + lsr r2, r6, #0x1f + lsl r1, r6, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1b + lsr r1, r0, #0x18 + lsr r0, r6, #0x2 + lsl r0, r0, #0x18 + mov r2, #0xff + lsr r0, r0, #0x16 + lsl r2, r1 + ldr r3, [r5, r0] + mvn r2, r2 + and r2, r3 + str r2, [r5, r0] + add r2, r4, #0x0 + ldr r3, [r5, r0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + str r1, [r5, r0] + pop {r4-r6, pc} + + thumb_func_start sub_02026EF4 +sub_02026EF4: ; 0x02026EF4 + lsr r2, r1, #0x2 + lsl r2, r2, #0x18 + lsr r2, r2, #0x16 + ldr r0, [r0, r2] + lsr r3, r1, #0x1f + lsl r2, r1, #0x1e + sub r2, r2, r3 + mov r1, #0x1e + ror r2, r1 + add r1, r3, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1b + lsr r1, r1, #0x18 + lsr r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + + thumb_func_start sub_02026F18 +sub_02026F18: ; 0x02026F18 + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_02026F20: + lsl r1, r4, #0x18 + add r0, r6, #0x0 + lsr r1, r1, #0x18 + bl sub_02026EF4 + cmp r0, #0x12 + beq _02026F30 + add r5, r5, #0x1 +_02026F30: + add r4, r4, #0x1 + cmp r4, #0x12 + blt _02026F20 + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + pop {r4-r6, pc} + + thumb_func_start sub_02026F3C +sub_02026F3C: ; 0x02026F3C + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0x2 + add r4, r2, #0x0 + bl sub_02068E14 + mov r1, #0x80 + strb r1, [r5, #0x0] + mov r1, #0x28 + sub r1, r1, r0 + mov r0, #0x8d + sub r0, r0, r1 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x0] + add r0, #0x28 + strb r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02026F60 +sub_02026F60: ; 0x02026F60 + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r6, _02026FC8 ; =0x00001234 + mov r4, #0x0 + add r5, r7, #0x0 +_02026F6A: + add r0, r5, #0x0 + mov r1, #0x0 + mov r2, #0x74 + blx sub_020DF4A4 + str r6, [r5, #0x0] + add r4, r4, #0x1 + add r5, #0x74 + cmp r4, #0xb + blt _02026F6A + ldr r0, _02026FCC ; =0x000004FC + mov r6, #0x0 + add r4, r7, r0 + add r5, r7, #0x0 +_02026F86: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x98 + blx sub_020DF4A4 + ldr r1, _02026FC8 ; =0x00001234 + ldr r0, _02026FCC ; =0x000004FC + add r6, r6, #0x1 + str r1, [r5, r0] + add r4, #0x98 + add r5, #0x98 + cmp r6, #0x5 + blt _02026F86 + ldr r0, _02026FD0 ; =0x000007F4 + mov r1, #0x0 + add r0, r7, r0 + mov r2, #0x40 + blx sub_020DF4A4 + ldr r5, _02026FD4 ; =0x0000081C + mov r4, #0x0 + mov r6, #0x12 +_02026FB2: + lsl r2, r4, #0x18 + add r0, r7, r5 + add r1, r6, #0x0 + lsr r2, r2, #0x18 + bl sub_02026EB0 + add r4, r4, #0x1 + cmp r4, #0x12 + blt _02026FB2 + pop {r3-r7, pc} + nop +_02026FC8: .word 0x00001234 +_02026FCC: .word 0x000004FC +_02026FD0: .word 0x000007F4 +_02026FD4: .word 0x0000081C + + thumb_func_start sub_02026FD8 +sub_02026FD8: ; 0x02026FD8 + ldr r0, _02026FDC ; =0x00000834 + bx lr + .balign 4 +_02026FDC: .word 0x00000834 + + thumb_func_start sub_02026FE0 +sub_02026FE0: ; 0x02026FE0 + mov r0, #0x74 + bx lr + + thumb_func_start sub_02026FE4 +sub_02026FE4: ; 0x02026FE4 + mov r0, #0x98 + bx lr + + thumb_func_start sub_02026FE8 +sub_02026FE8: ; 0x02026FE8 + push {r4, lr} + mov r1, #0x98 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x98 + add r4, r0, #0x0 + blx sub_020DF4A4 + ldr r0, _02027004 ; =0x00001234 + str r0, [r4, #0x0] + add r0, r4, #0x0 + pop {r4, pc} + nop +_02027004: .word 0x00001234 + + thumb_func_start sub_02027008 +sub_02027008: ; 0x02027008 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + cmp r6, #0xb + blt _02027016 + bl sub_02020C2C +_02027016: + mov r0, #0x74 + add r4, r6, #0x0 + mul r4, r0 + ldr r1, [r5, r4] + ldr r0, _0202703C ; =0x00001234 + cmp r1, r0 + beq _0202702A + ldr r0, _02027040 ; =0x00002345 + cmp r1, r0 + bne _0202702E +_0202702A: + mov r0, #0x1 + b _02027030 +_0202702E: + mov r0, #0x0 +_02027030: + cmp r0, #0x0 + bne _02027038 + bl sub_02020C2C +_02027038: + add r0, r5, r4 + pop {r4-r6, pc} + .balign 4 +_0202703C: .word 0x00001234 +_02027040: .word 0x00002345 + + thumb_func_start sub_02027044 +sub_02027044: ; 0x02027044 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + cmp r6, #0x5 + blt _02027052 + bl sub_02020C2C +_02027052: + mov r0, #0x98 + add r4, r6, #0x0 + mul r4, r0 + ldr r0, _02027080 ; =0x000004FC + add r1, r5, r4 + ldr r1, [r1, r0] + ldr r0, _02027084 ; =0x00001234 + cmp r1, r0 + beq _0202706A + ldr r0, _02027088 ; =0x00002345 + cmp r1, r0 + bne _0202706E +_0202706A: + mov r0, #0x1 + b _02027070 +_0202706E: + mov r0, #0x0 +_02027070: + cmp r0, #0x0 + bne _02027078 + bl sub_02020C2C +_02027078: + ldr r0, _02027080 ; =0x000004FC + add r0, r5, r0 + add r0, r0, r4 + pop {r4-r6, pc} + .balign 4 +_02027080: .word 0x000004FC +_02027084: .word 0x00001234 +_02027088: .word 0x00002345 + + thumb_func_start sub_0202708C +sub_0202708C: ; 0x0202708C + ldr r1, _02027094 ; =0x000007F4 + add r0, r0, r1 + bx lr + nop +_02027094: .word 0x000007F4 + + thumb_func_start sub_02027098 +sub_02027098: ; 0x02027098 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xb + blt _020270A6 + bl sub_02020C2C +_020270A6: + mov r0, #0x74 + mul r0, r4 + add r0, r5, r0 + bl sub_0202729C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020270B4 +sub_020270B4: ; 0x020270B4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x5 + blt _020270C2 + bl sub_02020C2C +_020270C2: + ldr r0, _020270D4 ; =0x000004FC + add r1, r5, r0 + mov r0, #0x98 + mul r0, r4 + add r0, r1, r0 + bl sub_020276D8 + pop {r3-r5, pc} + nop +_020270D4: .word 0x000004FC + + thumb_func_start sub_020270D8 +sub_020270D8: ; 0x020270D8 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r2, #0x0 + mov r4, #0x1 + bl sub_02027114 + cmp r6, #0x3d + bhs _020270F2 + add r0, r0, r5 + cmp r0, #0x9 + bls _020270FA + mov r4, #0x0 + b _020270FA +_020270F2: + add r0, r0, r5 + cmp r0, #0x1 + bls _020270FA + mov r4, #0x0 +_020270FA: + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02027100 +sub_02027100: ; 0x02027100 + push {r3, lr} + bl sub_0202714C + cmp r0, #0x12 + beq _0202710E + mov r0, #0x1 + pop {r3, pc} +_0202710E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02027114 +sub_02027114: ; 0x02027114 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x64 + blo _02027122 + bl sub_02020C2C +_02027122: + cmp r5, #0x3d + bhs _02027132 + lsl r1, r5, #0x18 + add r0, r4, #0x0 + lsr r1, r1, #0x18 + bl sub_02026E08 + pop {r3-r5, pc} +_02027132: + bhs _02027138 + bl sub_02020C2C +_02027138: + sub r5, #0x3d + lsl r0, r5, #0x18 + lsr r1, r0, #0x18 + add r4, #0x20 + lsl r1, r1, #0x18 + add r0, r4, #0x0 + lsr r1, r1, #0x18 + bl sub_02026E88 + pop {r3-r5, pc} + + thumb_func_start sub_0202714C +sub_0202714C: ; 0x0202714C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x12 + blo _0202715A + bl sub_02020C2C +_0202715A: + add r5, #0x28 + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl sub_02026EF4 + pop {r3-r5, pc} + + thumb_func_start sub_02027168 +sub_02027168: ; 0x02027168 + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_02027170: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02027114 + add r4, r4, #0x1 + add r5, r5, r0 + cmp r4, #0x64 + blt _02027170 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02027184 +sub_02027184: ; 0x02027184 + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_0202718C: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0202714C + cmp r0, #0x12 + beq _0202719A + add r5, r5, #0x1 +_0202719A: + add r4, r4, #0x1 + cmp r4, #0x12 + blt _0202718C + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020271A4 +sub_020271A4: ; 0x020271A4 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x64 + blo _020271B4 + bl sub_02020C2C +_020271B4: + cmp r4, #0x3d + bhs _020271DA + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl sub_02026E08 + add r0, r0, r6 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x9 + bls _020271CE + mov r1, #0x9 +_020271CE: + lsl r2, r4, #0x18 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_02026DC4 + pop {r4-r6, pc} +_020271DA: + add r0, r5, #0x0 + lsl r1, r4, #0x18 + add r0, #0x20 + lsr r1, r1, #0x18 + bl sub_02026E88 + add r0, r0, r6 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x1 + bls _020271F2 + mov r6, #0x1 +_020271F2: + cmp r4, #0x3d + bhs _020271FA + bl sub_02020C2C +_020271FA: + sub r4, #0x3d + lsl r0, r4, #0x18 + lsr r2, r0, #0x18 + add r5, #0x20 + lsl r2, r2, #0x18 + add r0, r5, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x18 + bl sub_02026E48 + pop {r4-r6, pc} + + thumb_func_start sub_02027210 +sub_02027210: ; 0x02027210 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x64 + blo _02027220 + bl sub_02020C2C +_02027220: + cmp r4, #0x3d + bhs _02027248 + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl sub_02026E08 + cmp r0, r6 + bls _0202723A + sub r0, r0, r6 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + b _0202723C +_0202723A: + mov r1, #0x0 +_0202723C: + lsl r2, r4, #0x18 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_02026DC4 + pop {r4-r6, pc} +_02027248: + bhs _0202724E + bl sub_02020C2C +_0202724E: + sub r4, #0x3d + lsl r0, r4, #0x18 + lsr r2, r0, #0x18 + add r5, #0x20 + lsl r2, r2, #0x18 + add r0, r5, #0x0 + mov r1, #0x0 + lsr r2, r2, #0x18 + bl sub_02026E48 + pop {r4-r6, pc} + + thumb_func_start sub_02027264 +sub_02027264: ; 0x02027264 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x12 + blo _02027272 + bl sub_02020C2C +_02027272: + add r0, r5, #0x0 + lsl r1, r4, #0x18 + add r0, #0x28 + lsr r1, r1, #0x18 + bl sub_02026EF4 + cmp r0, #0x12 + bne _02027298 + add r0, r5, #0x0 + add r0, #0x28 + bl sub_02026F18 + lsl r2, r4, #0x18 + add r5, #0x28 + add r1, r0, #0x0 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_02026EB0 +_02027298: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202729C +sub_0202729C: ; 0x0202729C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _020272CC ; =0x00001234 + cmp r1, r0 + beq _020272AE + ldr r0, _020272D0 ; =0x00002345 + cmp r1, r0 + bne _020272B2 +_020272AE: + mov r0, #0x1 + b _020272B4 +_020272B2: + mov r0, #0x0 +_020272B4: + cmp r0, #0x0 + bne _020272BC + bl sub_02020C2C +_020272BC: + ldr r1, [r4, #0x0] + ldr r0, _020272D0 ; =0x00002345 + cmp r1, r0 + bne _020272C8 + mov r0, #0x1 + pop {r4, pc} +_020272C8: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_020272CC: .word 0x00001234 +_020272D0: .word 0x00002345 + + thumb_func_start sub_020272D4 +sub_020272D4: ; 0x020272D4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027304 ; =0x00001234 + cmp r1, r0 + beq _020272E6 + ldr r0, _02027308 ; =0x00002345 + cmp r1, r0 + bne _020272EA +_020272E6: + mov r0, #0x1 + b _020272EC +_020272EA: + mov r0, #0x0 +_020272EC: + cmp r0, #0x0 + bne _020272F4 + bl sub_02020C2C +_020272F4: + ldr r0, _02027308 ; =0x00002345 + str r0, [r4, #0x0] + ldr r0, _0202730C ; =0x020ECAC4 + add r4, #0x71 + ldrb r0, [r0, #0x0] + strb r0, [r4, #0x0] + pop {r4, pc} + nop +_02027304: .word 0x00001234 +_02027308: .word 0x00002345 +_0202730C: .word 0x020ECAC4 + + thumb_func_start sub_02027310 +sub_02027310: ; 0x02027310 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027340 ; =0x00001234 + cmp r1, r0 + beq _02027322 + ldr r0, _02027344 ; =0x00002345 + cmp r1, r0 + bne _02027326 +_02027322: + mov r0, #0x1 + b _02027328 +_02027326: + mov r0, #0x0 +_02027328: + cmp r0, #0x0 + bne _02027330 + bl sub_02020C2C +_02027330: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x74 + blx sub_020DF4A4 + ldr r0, _02027340 ; =0x00001234 + str r0, [r4, #0x0] + pop {r4, pc} + .balign 4 +_02027340: .word 0x00001234 +_02027344: .word 0x00002345 + + thumb_func_start sub_02027348 +sub_02027348: ; 0x02027348 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027378 ; =0x00001234 + add r6, r2, #0x0 + cmp r1, r0 + beq _0202735E + ldr r0, _0202737C ; =0x00002345 + cmp r1, r0 + bne _02027362 +_0202735E: + mov r0, #0x1 + b _02027364 +_02027362: + mov r0, #0x0 +_02027364: + cmp r0, #0x0 + bne _0202736C + bl sub_02020C2C +_0202736C: + add r0, r5, #0x4 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02026D34 + pop {r4-r6, pc} + .balign 4 +_02027378: .word 0x00001234 +_0202737C: .word 0x00002345 + + thumb_func_start sub_02027380 +sub_02027380: ; 0x02027380 + push {r4-r7, lr} + sub sp, #0x14 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x4] + add r6, r2, #0x0 + bl sub_02013ECC + add r1, sp, #0xc + strh r0, [r1, #0x0] + lsr r0, r0, #0x10 + strh r0, [r1, #0x2] + ldrh r0, [r1, #0x0] + strh r0, [r1, #0x4] + ldrh r0, [r1, #0x2] + strh r0, [r1, #0x6] + ldr r0, [r4, #0x4] + bl sub_02013F00 + str r0, [sp, #0x8] + cmp r6, #0xa + blt _020273B0 + bl sub_02020C2C +_020273B0: + add r1, sp, #0xc + mov r0, #0x4 + ldrsh r1, [r1, r0] + add r0, #0xfc + cmp r1, r0 + blt _020273C0 + bl sub_02020C2C +_020273C0: + add r1, sp, #0xc + mov r0, #0x6 + ldrsh r7, [r1, r0] + add r0, #0xfa + cmp r7, r0 + blt _020273D0 + bl sub_02020C2C +_020273D0: + mov r1, #0x7f + ldr r0, [sp, #0x8] + mvn r1, r1 + cmp r0, r1 + bgt _020273DE + bl sub_02020C2C +_020273DE: + mov r0, #0x1 + lsl r0, r6 + ldr r1, [r5, #0x3c] + str r0, [sp, #0x4] + tst r0, r1 + beq _020273EE + bl sub_02020C2C +_020273EE: + ldr r1, [r5, #0x0] + ldr r0, _02027440 ; =0x00001234 + cmp r1, r0 + beq _020273FC + ldr r0, _02027444 ; =0x00002345 + cmp r1, r0 + bne _02027400 +_020273FC: + mov r0, #0x1 + b _02027402 +_02027400: + mov r0, #0x0 +_02027402: + cmp r0, #0x0 + bne _0202740A + bl sub_02020C2C +_0202740A: + ldr r0, [sp, #0x8] + add r1, r5, #0x0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + add r3, sp, #0xc + mov r2, #0x4 + ldrsh r2, [r3, r2] + lsl r3, r7, #0x18 + add r1, #0x48 + lsl r0, r6, #0x2 + add r0, r1, r0 + ldr r1, [r4, #0x0] + lsl r2, r2, #0x18 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_02026DB0 + ldr r1, [r5, #0x3c] + ldr r0, [sp, #0x4] + orr r0, r1 + str r0, [r5, #0x3c] + add sp, #0x14 + pop {r4-r7, pc} + nop +_02027440: .word 0x00001234 +_02027444: .word 0x00002345 + + thumb_func_start sub_02027448 +sub_02027448: ; 0x02027448 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027470 ; =0x00001234 + cmp r1, r0 + beq _0202745C + ldr r0, _02027474 ; =0x00002345 + cmp r1, r0 + bne _02027460 +_0202745C: + mov r0, #0x1 + b _02027462 +_02027460: + mov r0, #0x0 +_02027462: + cmp r0, #0x0 + bne _0202746A + bl sub_02020C2C +_0202746A: + add r5, #0x70 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 +_02027470: .word 0x00001234 +_02027474: .word 0x00002345 + + thumb_func_start sub_02027478 +sub_02027478: ; 0x02027478 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020274B0 ; =0x00001234 + cmp r1, r0 + beq _0202748C + ldr r0, _020274B4 ; =0x00002345 + cmp r1, r0 + bne _02027490 +_0202748C: + mov r0, #0x1 + b _02027492 +_02027490: + mov r0, #0x0 +_02027492: + cmp r0, #0x0 + bne _0202749A + bl sub_02020C2C +_0202749A: + add r0, r5, #0x0 + add r0, #0x40 + bl sub_02013724 + add r5, #0x40 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 + bl sub_02013998 + pop {r3-r5, pc} + .balign 4 +_020274B0: .word 0x00001234 +_020274B4: .word 0x00002345 + + thumb_func_start sub_020274B8 +sub_020274B8: ; 0x020274B8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020274E8 ; =0x00001234 + cmp r1, r0 + beq _020274CC + ldr r0, _020274EC ; =0x00002345 + cmp r1, r0 + bne _020274D0 +_020274CC: + mov r0, #0x1 + b _020274D2 +_020274D0: + mov r0, #0x0 +_020274D2: + cmp r0, #0x0 + bne _020274DA + bl sub_02020C2C +_020274DA: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x74 + blx sub_020DF438 + pop {r3-r5, pc} + nop +_020274E8: .word 0x00001234 +_020274EC: .word 0x00002345 + + thumb_func_start sub_020274F0 +sub_020274F0: ; 0x020274F0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027520 ; =0x00001234 + add r6, r2, #0x0 + cmp r1, r0 + beq _02027506 + ldr r0, _02027524 ; =0x00002345 + cmp r1, r0 + bne _0202750A +_02027506: + mov r0, #0x1 + b _0202750C +_0202750A: + mov r0, #0x0 +_0202750C: + cmp r0, #0x0 + bne _02027514 + bl sub_02020C2C +_02027514: + add r0, r5, #0x4 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02026D98 + pop {r4-r6, pc} + .balign 4 +_02027520: .word 0x00001234 +_02027524: .word 0x00002345 + + thumb_func_start sub_02027528 +sub_02027528: ; 0x02027528 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xa + blt _02027536 + bl sub_02020C2C +_02027536: + ldr r1, [r5, #0x0] + ldr r0, _0202755C ; =0x00001234 + cmp r1, r0 + beq _02027544 + ldr r0, _02027560 ; =0x00002345 + cmp r1, r0 + bne _02027548 +_02027544: + mov r0, #0x1 + b _0202754A +_02027548: + mov r0, #0x0 +_0202754A: + cmp r0, #0x0 + bne _02027552 + bl sub_02020C2C +_02027552: + mov r0, #0x1 + ldr r1, [r5, #0x3c] + lsl r0, r4 + and r0, r1 + pop {r3-r5, pc} + .balign 4 +_0202755C: .word 0x00001234 +_02027560: .word 0x00002345 + + thumb_func_start sub_02027564 +sub_02027564: ; 0x02027564 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027588 ; =0x00001234 + cmp r1, r0 + beq _02027576 + ldr r0, _0202758C ; =0x00002345 + cmp r1, r0 + bne _0202757A +_02027576: + mov r0, #0x1 + b _0202757C +_0202757A: + mov r0, #0x0 +_0202757C: + cmp r0, #0x0 + bne _02027584 + bl sub_02020C2C +_02027584: + add r0, r4, #0x4 + pop {r4, pc} + .balign 4 +_02027588: .word 0x00001234 +_0202758C: .word 0x00002345 + + thumb_func_start sub_02027590 +sub_02027590: ; 0x02027590 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xa + blt _0202759E + bl sub_02020C2C +_0202759E: + mov r0, #0x1 + ldr r1, [r5, #0x3c] + lsl r0, r4 + tst r0, r1 + bne _020275AC + bl sub_02020C2C +_020275AC: + ldr r1, [r5, #0x0] + ldr r0, _020275D0 ; =0x00001234 + cmp r1, r0 + beq _020275BA + ldr r0, _020275D4 ; =0x00002345 + cmp r1, r0 + bne _020275BE +_020275BA: + mov r0, #0x1 + b _020275C0 +_020275BE: + mov r0, #0x0 +_020275C0: + cmp r0, #0x0 + bne _020275C8 + bl sub_02020C2C +_020275C8: + add r5, #0x48 + lsl r0, r4, #0x2 + add r0, r5, r0 + pop {r3-r5, pc} + .balign 4 +_020275D0: .word 0x00001234 +_020275D4: .word 0x00002345 + + thumb_func_start sub_020275D8 +sub_020275D8: ; 0x020275D8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027600 ; =0x00001234 + cmp r1, r0 + beq _020275EA + ldr r0, _02027604 ; =0x00002345 + cmp r1, r0 + bne _020275EE +_020275EA: + mov r0, #0x1 + b _020275F0 +_020275EE: + mov r0, #0x0 +_020275F0: + cmp r0, #0x0 + bne _020275F8 + bl sub_02020C2C +_020275F8: + add r0, r4, #0x4 + bl sub_02027C84 + pop {r4, pc} + .balign 4 +_02027600: .word 0x00001234 +_02027604: .word 0x00002345 + + thumb_func_start sub_02027608 +sub_02027608: ; 0x02027608 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027634 ; =0x00001234 + cmp r1, r0 + beq _0202761C + ldr r0, _02027638 ; =0x00002345 + cmp r1, r0 + bne _02027620 +_0202761C: + mov r0, #0x1 + b _02027622 +_02027620: + mov r0, #0x0 +_02027622: + cmp r0, #0x0 + bne _0202762A + bl sub_02020C2C +_0202762A: + add r0, r5, #0x4 + add r1, r4, #0x0 + bl sub_02027C88 + pop {r3-r5, pc} + .balign 4 +_02027634: .word 0x00001234 +_02027638: .word 0x00002345 + + thumb_func_start sub_0202763C +sub_0202763C: ; 0x0202763C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027664 ; =0x00001234 + cmp r1, r0 + beq _0202764E + ldr r0, _02027668 ; =0x00002345 + cmp r1, r0 + bne _02027652 +_0202764E: + mov r0, #0x1 + b _02027654 +_02027652: + mov r0, #0x0 +_02027654: + cmp r0, #0x0 + bne _0202765C + bl sub_02020C2C +_0202765C: + add r0, r4, #0x4 + bl sub_02027C98 + pop {r4, pc} + .balign 4 +_02027664: .word 0x00001234 +_02027668: .word 0x00002345 + + thumb_func_start sub_0202766C +sub_0202766C: ; 0x0202766C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027694 ; =0x00001234 + cmp r1, r0 + beq _0202767E + ldr r0, _02027698 ; =0x00002345 + cmp r1, r0 + bne _02027682 +_0202767E: + mov r0, #0x1 + b _02027684 +_02027682: + mov r0, #0x0 +_02027684: + cmp r0, #0x0 + bne _0202768C + bl sub_02020C2C +_0202768C: + add r4, #0x70 + ldrb r0, [r4, #0x0] + pop {r4, pc} + nop +_02027694: .word 0x00001234 +_02027698: .word 0x00002345 + + thumb_func_start sub_0202769C +sub_0202769C: ; 0x0202769C + ldr r3, _020276A4 ; =sub_02013918 + add r0, #0x40 + mov r1, #0x0 + bx r3 + .balign 4 +_020276A4: .word sub_02013918 + 1 + + thumb_func_start sub_020276A8 +sub_020276A8: ; 0x020276A8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _020276D0 ; =0x00001234 + cmp r1, r0 + beq _020276BA + ldr r0, _020276D4 ; =0x00002345 + cmp r1, r0 + bne _020276BE +_020276BA: + mov r0, #0x1 + b _020276C0 +_020276BE: + mov r0, #0x0 +_020276C0: + cmp r0, #0x0 + bne _020276C8 + bl sub_02020C2C +_020276C8: + add r4, #0x71 + ldrb r0, [r4, #0x0] + pop {r4, pc} + nop +_020276D0: .word 0x00001234 +_020276D4: .word 0x00002345 + + thumb_func_start sub_020276D8 +sub_020276D8: ; 0x020276D8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027708 ; =0x00001234 + cmp r1, r0 + beq _020276EA + ldr r0, _0202770C ; =0x00002345 + cmp r1, r0 + bne _020276EE +_020276EA: + mov r0, #0x1 + b _020276F0 +_020276EE: + mov r0, #0x0 +_020276F0: + cmp r0, #0x0 + bne _020276F8 + bl sub_02020C2C +_020276F8: + ldr r1, [r4, #0x0] + ldr r0, _0202770C ; =0x00002345 + cmp r1, r0 + bne _02027704 + mov r0, #0x1 + pop {r4, pc} +_02027704: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_02027708: .word 0x00001234 +_0202770C: .word 0x00002345 + + thumb_func_start sub_02027710 +sub_02027710: ; 0x02027710 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027738 ; =0x00001234 + cmp r1, r0 + beq _02027722 + ldr r0, _0202773C ; =0x00002345 + cmp r1, r0 + bne _02027726 +_02027722: + mov r0, #0x1 + b _02027728 +_02027726: + mov r0, #0x0 +_02027728: + cmp r0, #0x0 + bne _02027730 + bl sub_02020C2C +_02027730: + ldr r0, _0202773C ; =0x00002345 + str r0, [r4, #0x0] + pop {r4, pc} + nop +_02027738: .word 0x00001234 +_0202773C: .word 0x00002345 + + thumb_func_start sub_02027740 +sub_02027740: ; 0x02027740 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027770 ; =0x00001234 + cmp r1, r0 + beq _02027752 + ldr r0, _02027774 ; =0x00002345 + cmp r1, r0 + bne _02027756 +_02027752: + mov r0, #0x1 + b _02027758 +_02027756: + mov r0, #0x0 +_02027758: + cmp r0, #0x0 + bne _02027760 + bl sub_02020C2C +_02027760: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x98 + blx sub_020DF4A4 + ldr r0, _02027770 ; =0x00001234 + str r0, [r4, #0x0] + pop {r4, pc} + .balign 4 +_02027770: .word 0x00001234 +_02027774: .word 0x00002345 + + thumb_func_start sub_02027778 +sub_02027778: ; 0x02027778 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020277AC ; =0x00001234 + add r6, r2, #0x0 + cmp r1, r0 + beq _0202778E + ldr r0, _020277B0 ; =0x00002345 + cmp r1, r0 + bne _02027792 +_0202778E: + mov r0, #0x1 + b _02027794 +_02027792: + mov r0, #0x0 +_02027794: + cmp r0, #0x0 + bne _0202779C + bl sub_02020C2C +_0202779C: + add r5, #0x8 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02026D34 + pop {r4-r6, pc} + nop +_020277AC: .word 0x00001234 +_020277B0: .word 0x00002345 + + thumb_func_start sub_020277B4 +sub_020277B4: ; 0x020277B4 + push {r4-r7, lr} + sub sp, #0x14 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x4] + add r6, r2, #0x0 + bl sub_02013ECC + add r1, sp, #0xc + strh r0, [r1, #0x0] + lsr r0, r0, #0x10 + strh r0, [r1, #0x2] + ldrh r0, [r1, #0x0] + strh r0, [r1, #0x4] + ldrh r0, [r1, #0x2] + strh r0, [r1, #0x6] + ldr r0, [r4, #0x4] + bl sub_02013F00 + str r0, [sp, #0x8] + cmp r6, #0x14 + blt _020277E4 + bl sub_02020C2C +_020277E4: + add r1, sp, #0xc + mov r0, #0x4 + ldrsh r1, [r1, r0] + add r0, #0xfc + cmp r1, r0 + blt _020277F4 + bl sub_02020C2C +_020277F4: + add r1, sp, #0xc + mov r0, #0x6 + ldrsh r7, [r1, r0] + add r0, #0xfa + cmp r7, r0 + blt _02027804 + bl sub_02020C2C +_02027804: + mov r1, #0x7f + ldr r0, [sp, #0x8] + mvn r1, r1 + cmp r0, r1 + bgt _02027812 + bl sub_02020C2C +_02027812: + mov r0, #0x1 + lsl r0, r6 + ldr r1, [r5, #0x40] + str r0, [sp, #0x4] + tst r0, r1 + beq _02027822 + bl sub_02020C2C +_02027822: + ldr r1, [r5, #0x0] + ldr r0, _02027874 ; =0x00001234 + cmp r1, r0 + beq _02027830 + ldr r0, _02027878 ; =0x00002345 + cmp r1, r0 + bne _02027834 +_02027830: + mov r0, #0x1 + b _02027836 +_02027834: + mov r0, #0x0 +_02027836: + cmp r0, #0x0 + bne _0202783E + bl sub_02020C2C +_0202783E: + ldr r0, [sp, #0x8] + add r1, r5, #0x0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + add r3, sp, #0xc + mov r2, #0x4 + ldrsh r2, [r3, r2] + lsl r3, r7, #0x18 + add r1, #0x44 + lsl r0, r6, #0x2 + add r0, r1, r0 + ldr r1, [r4, #0x0] + lsl r2, r2, #0x18 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_02026DB0 + ldr r1, [r5, #0x40] + ldr r0, [sp, #0x4] + orr r0, r1 + str r0, [r5, #0x40] + add sp, #0x14 + pop {r4-r7, pc} + nop +_02027874: .word 0x00001234 +_02027878: .word 0x00002345 + + thumb_func_start sub_0202787C +sub_0202787C: ; 0x0202787C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020278A4 ; =0x00001234 + cmp r1, r0 + beq _02027890 + ldr r0, _020278A8 ; =0x00002345 + cmp r1, r0 + bne _02027894 +_02027890: + mov r0, #0x1 + b _02027896 +_02027894: + mov r0, #0x0 +_02027896: + cmp r0, #0x0 + bne _0202789E + bl sub_02020C2C +_0202789E: + add r5, #0x94 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 +_020278A4: .word 0x00001234 +_020278A8: .word 0x00002345 + + thumb_func_start sub_020278AC +sub_020278AC: ; 0x020278AC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020278D4 ; =0x00001234 + cmp r1, r0 + beq _020278C0 + ldr r0, _020278D8 ; =0x00002345 + cmp r1, r0 + bne _020278C4 +_020278C0: + mov r0, #0x1 + b _020278C6 +_020278C4: + mov r0, #0x0 +_020278C6: + cmp r0, #0x0 + bne _020278CE + bl sub_02020C2C +_020278CE: + str r4, [r5, #0x4] + pop {r3-r5, pc} + nop +_020278D4: .word 0x00001234 +_020278D8: .word 0x00002345 + + thumb_func_start sub_020278DC +sub_020278DC: ; 0x020278DC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _0202790C ; =0x00001234 + cmp r1, r0 + beq _020278F0 + ldr r0, _02027910 ; =0x00002345 + cmp r1, r0 + bne _020278F4 +_020278F0: + mov r0, #0x1 + b _020278F6 +_020278F4: + mov r0, #0x0 +_020278F6: + cmp r0, #0x0 + bne _020278FE + bl sub_02020C2C +_020278FE: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x98 + blx sub_020DF438 + pop {r3-r5, pc} + nop +_0202790C: .word 0x00001234 +_02027910: .word 0x00002345 + + thumb_func_start sub_02027914 +sub_02027914: ; 0x02027914 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _0202795C ; =0x00001234 + add r6, r2, #0x0 + cmp r1, r0 + beq _0202792C + ldr r0, _02027960 ; =0x00002345 + cmp r1, r0 + bne _02027930 +_0202792C: + mov r0, #0x1 + b _02027932 +_02027930: + mov r0, #0x0 +_02027932: + cmp r0, #0x0 + bne _0202793A + bl sub_02020C2C +_0202793A: + add r1, sp, #0x4 + add r0, r4, #0x0 + add r1, #0x1 + add r2, sp, #0x4 + bl sub_02026F3C + add r5, #0x8 + str r6, [sp, #0x0] + add r3, sp, #0x4 + ldrb r2, [r3, #0x1] + ldrb r3, [r3, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02026CD0 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_0202795C: .word 0x00001234 +_02027960: .word 0x00002345 + + thumb_func_start sub_02027964 +sub_02027964: ; 0x02027964 + push {r4-r7, lr} + sub sp, #0xc + str r3, [sp, #0x4] + add r6, r1, #0x0 + add r5, r0, #0x0 + add r7, r2, #0x0 + ldr r4, [sp, #0x24] + cmp r6, #0x14 + blo _0202797A + bl sub_02020C2C +_0202797A: + cmp r7, #0x64 + blo _02027982 + bl sub_02020C2C +_02027982: + mov r1, #0x1 + ldr r0, [sp, #0x4] + lsl r1, r1, #0x8 + cmp r0, r1 + blt _02027990 + bl sub_02020C2C +_02027990: + add r0, sp, #0x10 + ldrb r1, [r0, #0x10] + mov r0, #0x1 + lsl r0, r0, #0x8 + cmp r1, r0 + blt _020279A0 + bl sub_02020C2C +_020279A0: + mov r0, #0x7f + mvn r0, r0 + cmp r4, r0 + bgt _020279AC + bl sub_02020C2C +_020279AC: + mov r0, #0x1 + lsl r0, r6 + ldr r1, [r5, #0x40] + str r0, [sp, #0x8] + tst r0, r1 + beq _020279BC + bl sub_02020C2C +_020279BC: + ldr r1, [r5, #0x0] + ldr r0, _02027A0C ; =0x00001234 + cmp r1, r0 + beq _020279CA + ldr r0, _02027A10 ; =0x00002345 + cmp r1, r0 + bne _020279CE +_020279CA: + mov r0, #0x1 + b _020279D0 +_020279CE: + mov r0, #0x0 +_020279D0: + cmp r0, #0x0 + bne _020279D8 + bl sub_02020C2C +_020279D8: + mov r0, #0x38 + ldrsb r0, [r5, r0] + cmp r0, r4 + blt _020279E6 + add r0, r0, #0x1 + lsl r0, r0, #0x18 + asr r4, r0, #0x18 +_020279E6: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + add r3, sp, #0x10 + add r1, r5, #0x0 + ldrb r3, [r3, #0x10] + add r1, #0x44 + lsl r0, r6, #0x2 + add r0, r1, r0 + ldr r2, [sp, #0x4] + add r1, r7, #0x0 + bl sub_02026DB0 + ldr r1, [r5, #0x40] + ldr r0, [sp, #0x8] + orr r0, r1 + str r0, [r5, #0x40] + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02027A0C: .word 0x00001234 +_02027A10: .word 0x00002345 + + thumb_func_start sub_02027A14 +sub_02027A14: ; 0x02027A14 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x14 + blt _02027A22 + bl sub_02020C2C +_02027A22: + ldr r1, [r5, #0x0] + ldr r0, _02027A50 ; =0x00001234 + cmp r1, r0 + beq _02027A30 + ldr r0, _02027A54 ; =0x00002345 + cmp r1, r0 + bne _02027A34 +_02027A30: + mov r0, #0x1 + b _02027A36 +_02027A34: + mov r0, #0x0 +_02027A36: + cmp r0, #0x0 + bne _02027A3E + bl sub_02020C2C +_02027A3E: + mov r0, #0x1 + add r1, r0, #0x0 + ldr r2, [r5, #0x40] + lsl r1, r4 + tst r1, r2 + bne _02027A4C + mov r0, #0x0 +_02027A4C: + pop {r3-r5, pc} + nop +_02027A50: .word 0x00001234 +_02027A54: .word 0x00002345 + + thumb_func_start sub_02027A58 +sub_02027A58: ; 0x02027A58 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027A8C ; =0x00001234 + add r6, r2, #0x0 + cmp r1, r0 + beq _02027A6E + ldr r0, _02027A90 ; =0x00002345 + cmp r1, r0 + bne _02027A72 +_02027A6E: + mov r0, #0x1 + b _02027A74 +_02027A72: + mov r0, #0x0 +_02027A74: + cmp r0, #0x0 + bne _02027A7C + bl sub_02020C2C +_02027A7C: + add r5, #0x8 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02026D98 + pop {r4-r6, pc} + nop +_02027A8C: .word 0x00001234 +_02027A90: .word 0x00002345 + + thumb_func_start sub_02027A94 +sub_02027A94: ; 0x02027A94 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027ABC ; =0x00001234 + cmp r1, r0 + beq _02027AA6 + ldr r0, _02027AC0 ; =0x00002345 + cmp r1, r0 + bne _02027AAA +_02027AA6: + mov r0, #0x1 + b _02027AAC +_02027AAA: + mov r0, #0x0 +_02027AAC: + cmp r0, #0x0 + bne _02027AB4 + bl sub_02020C2C +_02027AB4: + add r4, #0x8 + add r0, r4, #0x0 + pop {r4, pc} + nop +_02027ABC: .word 0x00001234 +_02027AC0: .word 0x00002345 + + thumb_func_start sub_02027AC4 +sub_02027AC4: ; 0x02027AC4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x14 + blt _02027AD2 + bl sub_02020C2C +_02027AD2: + mov r0, #0x1 + ldr r1, [r5, #0x40] + lsl r0, r4 + tst r0, r1 + bne _02027AE0 + bl sub_02020C2C +_02027AE0: + ldr r1, [r5, #0x0] + ldr r0, _02027B04 ; =0x00001234 + cmp r1, r0 + beq _02027AEE + ldr r0, _02027B08 ; =0x00002345 + cmp r1, r0 + bne _02027AF2 +_02027AEE: + mov r0, #0x1 + b _02027AF4 +_02027AF2: + mov r0, #0x0 +_02027AF4: + cmp r0, #0x0 + bne _02027AFC + bl sub_02020C2C +_02027AFC: + add r5, #0x44 + lsl r0, r4, #0x2 + add r0, r5, r0 + pop {r3-r5, pc} + .balign 4 +_02027B04: .word 0x00001234 +_02027B08: .word 0x00002345 + + thumb_func_start sub_02027B0C +sub_02027B0C: ; 0x02027B0C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027B3C ; =0x00001234 + cmp r1, r0 + beq _02027B20 + ldr r0, _02027B40 ; =0x00002345 + cmp r1, r0 + bne _02027B24 +_02027B20: + mov r0, #0x1 + b _02027B26 +_02027B24: + mov r0, #0x0 +_02027B26: + cmp r0, #0x0 + bne _02027B2E + bl sub_02020C2C +_02027B2E: + add r5, #0x8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02027C88 + pop {r3-r5, pc} + nop +_02027B3C: .word 0x00001234 +_02027B40: .word 0x00002345 + + thumb_func_start sub_02027B44 +sub_02027B44: ; 0x02027B44 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027B70 ; =0x00001234 + cmp r1, r0 + beq _02027B56 + ldr r0, _02027B74 ; =0x00002345 + cmp r1, r0 + bne _02027B5A +_02027B56: + mov r0, #0x1 + b _02027B5C +_02027B5A: + mov r0, #0x0 +_02027B5C: + cmp r0, #0x0 + bne _02027B64 + bl sub_02020C2C +_02027B64: + add r4, #0x8 + add r0, r4, #0x0 + bl sub_02027C98 + pop {r4, pc} + nop +_02027B70: .word 0x00001234 +_02027B74: .word 0x00002345 + + thumb_func_start sub_02027B78 +sub_02027B78: ; 0x02027B78 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027BD4 ; =0x00001234 + cmp r1, r0 + beq _02027B8E + ldr r0, _02027BD8 ; =0x00002345 + cmp r1, r0 + bne _02027B92 +_02027B8E: + mov r0, #0x1 + b _02027B94 +_02027B92: + mov r0, #0x0 +_02027B94: + cmp r0, #0x0 + bne _02027B9C + bl sub_02020C2C +_02027B9C: + mov r1, #0x1 + str r1, [sp, #0x0] + ldr r0, [r5, #0x8] + mov r2, #0x0 + str r0, [sp, #0x4] + str r1, [sp, #0x8] + ldr r0, [r5, #0xc] + add r3, r2, #0x0 + str r0, [sp, #0xc] + ldrh r1, [r5, #0x10] + add r0, r4, #0x0 + bl sub_02066ACC + add r2, r5, #0x0 + add r0, r4, #0x0 + mov r1, #0x74 + add r2, #0x12 + bl sub_02067830 + add r5, #0x3b + add r0, r4, #0x0 + mov r1, #0x70 + add r2, r5, #0x0 + bl sub_02067830 + add sp, #0x10 + pop {r3-r5, pc} + nop +_02027BD4: .word 0x00001234 +_02027BD8: .word 0x00002345 + + thumb_func_start sub_02027BDC +sub_02027BDC: ; 0x02027BDC + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x14 + blt _02027BEA + bl sub_02020C2C +_02027BEA: + mov r0, #0x1 + ldr r1, [r5, #0x40] + lsl r0, r4 + tst r0, r1 + bne _02027BF8 + bl sub_02020C2C +_02027BF8: + ldr r1, [r5, #0x0] + ldr r0, _02027C20 ; =0x00001234 + cmp r1, r0 + beq _02027C06 + ldr r0, _02027C24 ; =0x00002345 + cmp r1, r0 + bne _02027C0A +_02027C06: + mov r0, #0x1 + b _02027C0C +_02027C0A: + mov r0, #0x0 +_02027C0C: + cmp r0, #0x0 + bne _02027C14 + bl sub_02020C2C +_02027C14: + add r5, #0x44 + lsl r0, r4, #0x2 + add r0, r5, r0 + bl sub_02027CF8 + pop {r3-r5, pc} + .balign 4 +_02027C20: .word 0x00001234 +_02027C24: .word 0x00002345 + + thumb_func_start sub_02027C28 +sub_02027C28: ; 0x02027C28 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027C50 ; =0x00001234 + cmp r1, r0 + beq _02027C3A + ldr r0, _02027C54 ; =0x00002345 + cmp r1, r0 + bne _02027C3E +_02027C3A: + mov r0, #0x1 + b _02027C40 +_02027C3E: + mov r0, #0x0 +_02027C40: + cmp r0, #0x0 + bne _02027C48 + bl sub_02020C2C +_02027C48: + add r4, #0x94 + ldrb r0, [r4, #0x0] + pop {r4, pc} + nop +_02027C50: .word 0x00001234 +_02027C54: .word 0x00002345 + + thumb_func_start sub_02027C58 +sub_02027C58: ; 0x02027C58 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027C7C ; =0x00001234 + cmp r1, r0 + beq _02027C6A + ldr r0, _02027C80 ; =0x00002345 + cmp r1, r0 + bne _02027C6E +_02027C6A: + mov r0, #0x1 + b _02027C70 +_02027C6E: + mov r0, #0x0 +_02027C70: + cmp r0, #0x0 + bne _02027C78 + bl sub_02020C2C +_02027C78: + ldr r0, [r4, #0x4] + pop {r4, pc} + .balign 4 +_02027C7C: .word 0x00001234 +_02027C80: .word 0x00002345 + + thumb_func_start sub_02027C84 +sub_02027C84: ; 0x02027C84 + ldrh r0, [r0, #0x8] + bx lr + + thumb_func_start sub_02027C88 +sub_02027C88: ; 0x02027C88 + add r2, r0, #0x0 + ldr r3, _02027C94 ; =sub_02021E28 + add r2, #0x20 + add r0, r1, #0x0 + add r1, r2, #0x0 + bx r3 + .balign 4 +_02027C94: .word sub_02021E28 + 1 + + thumb_func_start sub_02027C98 +sub_02027C98: ; 0x02027C98 + add r0, #0x34 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02027CA0 +sub_02027CA0: ; 0x02027CA0 + mov r1, #0x30 + ldrsb r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start sub_02027CA8 +sub_02027CA8: ; 0x02027CA8 + add r0, #0x31 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02027CB0 +sub_02027CB0: ; 0x02027CB0 + add r0, #0x32 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02027CB8 +sub_02027CB8: ; 0x02027CB8 + push {r3-r5, lr} + sub sp, #0x10 + add r4, r1, #0x0 + mov r1, #0x1 + add r5, r0, #0x0 + str r1, [sp, #0x0] + ldr r0, [r5, #0x0] + mov r2, #0x0 + str r0, [sp, #0x4] + str r1, [sp, #0x8] + ldr r0, [r5, #0x4] + add r3, r2, #0x0 + str r0, [sp, #0xc] + ldrh r1, [r5, #0x8] + add r0, r4, #0x0 + bl sub_02066ACC + add r2, r5, #0x0 + add r0, r4, #0x0 + mov r1, #0x74 + add r2, #0xa + bl sub_02067830 + add r5, #0x33 + add r0, r4, #0x0 + mov r1, #0x70 + add r2, r5, #0x0 + bl sub_02067830 + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02027CF8 +sub_02027CF8: ; 0x02027CF8 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02027CFC +sub_02027CFC: ; 0x02027CFC + ldrb r0, [r0, #0x1] + bx lr + + thumb_func_start sub_02027D00 +sub_02027D00: ; 0x02027D00 + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start sub_02027D04 +sub_02027D04: ; 0x02027D04 + mov r1, #0x3 + ldrsb r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start sub_02027D0C +sub_02027D0C: ; 0x02027D0C + push {r4-r7, lr} + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0xc + add r7, r0, #0x0 + mov r0, #0x1 + add r4, r1, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_0202729C + cmp r0, #0x1 + bne _02027D6A + ldr r1, _02027D78 ; =0xEDB88320 + add r0, sp, #0x4 + blx sub_020DDE44 + add r0, sp, #0x4 + add r1, r4, #0x0 + mov r2, #0x74 + blx sub_020DDD28 + add r6, r0, #0x0 + mov r5, #0x0 +_02027D3C: + add r0, r7, #0x0 + add r1, r5, #0x0 + bl sub_02027008 + add r4, r0, #0x0 + ldr r1, _02027D78 ; =0xEDB88320 + add r0, sp, #0x4 + blx sub_020DDE44 + add r0, sp, #0x4 + add r1, r4, #0x0 + mov r2, #0x74 + blx sub_020DDD28 + cmp r0, r6 + bne _02027D62 + mov r0, #0x0 + str r0, [sp, #0x0] + b _02027D6E +_02027D62: + add r5, r5, #0x1 + cmp r5, #0xb + blt _02027D3C + b _02027D6E +_02027D6A: + mov r0, #0x0 + str r0, [sp, #0x0] +_02027D6E: + ldr r0, [sp, #0x0] + add sp, #0x1fc + add sp, #0x1fc + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02027D78: .word 0xEDB88320 + + thumb_func_start sub_02027D7C +sub_02027D7C: ; 0x02027D7C + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + mov r7, #0x0 + ldr r0, [sp, #0x0] + str r1, [sp, #0x4] + add r5, r2, #0x0 + add r6, r7, #0x0 + str r3, [sp, #0x8] + cmp r0, #0x0 + ble _02027DB6 + add r4, r3, #0x0 +_02027D94: + ldr r0, [sp, #0x4] + cmp r6, r0 + beq _02027DAC + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02027DAC + add r0, r5, #0x0 + bl sub_02027D0C + cmp r0, #0x1 + bne _02027DAC + add r7, r7, #0x1 +_02027DAC: + ldr r0, [sp, #0x0] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _02027D94 +_02027DB6: + mov r4, #0xa +_02027DB8: + add r1, r4, r7 + cmp r1, #0xb + bge _02027DD6 + add r0, r5, #0x0 + bl sub_02027008 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02027008 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl sub_020274B8 +_02027DD6: + sub r4, r4, #0x1 + cmp r4, #0x1 + bge _02027DB8 + ldr r0, [sp, #0x0] + mov r6, #0x1 + mov r4, #0x0 + cmp r0, #0x0 + ble _02027E1E +_02027DE6: + ldr r0, [sp, #0x4] + cmp r4, r0 + beq _02027E10 + ldr r0, [sp, #0x8] + ldr r7, [r0, #0x0] + cmp r7, #0x0 + beq _02027E10 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02027D0C + cmp r0, #0x1 + bne _02027E10 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02027008 + add r1, r7, #0x0 + add r6, r6, #0x1 + bl sub_020274B8 +_02027E10: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r0, r0, #0x4 + str r0, [sp, #0x8] + ldr r0, [sp, #0x0] + cmp r4, r0 + blt _02027DE6 +_02027E1E: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02027E24 +sub_02027E24: ; 0x02027E24 + ldr r3, _02027E2C ; =sub_02022610 + mov r1, #0xe + bx r3 + nop +_02027E2C: .word sub_02022610 + 1 + + thumb_func_start sub_02027E30 +sub_02027E30: ; 0x02027E30 + mov r0, #0x8 + bx lr + + thumb_func_start sub_02027E34 +sub_02027E34: ; 0x02027E34 + ldrb r0, [r0, #0x0] + cmp r0, #0x1e + beq _02027E3E + mov r0, #0x1 + bx lr +_02027E3E: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02027E44 +sub_02027E44: ; 0x02027E44 + mov r1, #0x1e + strb r1, [r0, #0x0] + mov r1, #0x0 + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + strb r1, [r0, #0x4] + strb r1, [r0, #0x5] + strb r1, [r0, #0x6] + strb r1, [r0, #0x7] + bx lr + .balign 4 + + thumb_func_start sub_02027E5C +sub_02027E5C: ; 0x02027E5C + push {r4, lr} + mov r1, #0x8 + bl sub_020169D8 + add r4, r0, #0x0 + bl sub_02027E44 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02027E70 +sub_02027E70: ; 0x02027E70 + ldrb r2, [r0, #0x0] + strb r2, [r1, #0x0] + ldrb r2, [r0, #0x1] + strb r2, [r1, #0x1] + ldrb r2, [r0, #0x2] + strb r2, [r1, #0x2] + ldrb r2, [r0, #0x3] + strb r2, [r1, #0x3] + ldrb r2, [r0, #0x4] + strb r2, [r1, #0x4] + ldrb r2, [r0, #0x5] + strb r2, [r1, #0x5] + ldrb r2, [r0, #0x6] + strb r2, [r1, #0x6] + ldrb r0, [r0, #0x7] + strb r0, [r1, #0x7] + bx lr + .balign 4 + + thumb_func_start sub_02027E94 +sub_02027E94: ; 0x02027E94 + cmp r1, #0x6 + bhi _02027ECA + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0 + lsl r0, r2, #0 + lsl r4, r2, #0 + lsl r0, r3, #0 + lsl r4, r3, #0 + lsl r0, r4, #0 + lsl r4, r4, #0 + ldrb r0, [r0, #0x0] + bx lr +_02027EB6: + .byte 0x40, 0x78, 0x70, 0x47, 0x80, 0x78, 0x70, 0x47, 0xC0, 0x78 + .byte 0x70, 0x47, 0x00, 0x79, 0x70, 0x47, 0x40, 0x79, 0x70, 0x47 +_02027ECA: + ldrb r0, [r0, #0x6] + bx lr + .balign 4 + + thumb_func_start sub_02027ED0 +sub_02027ED0: ; 0x02027ED0 + push {r3-r7, lr} + add r5, r0, #0x0 + str r1, [sp, #0x0] + mov r4, #0x0 + mov r6, #0x2 + mov r7, #0x5 +_02027EDC: + bl sub_0201B9EC + add r1, r7, #0x0 + blx sub_020EBC80 + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + add r1, r5, r0 + ldrb r0, [r1, #0x1] + cmp r0, #0x0 + bne _02027EF6 + strb r6, [r1, #0x1] + add r4, r4, #0x1 +_02027EF6: + cmp r4, #0x3 + blt _02027EDC + mov r0, #0x1b + strb r0, [r5, #0x0] + ldr r0, [sp, #0x0] + strb r0, [r5, #0x6] + pop {r3-r7, pc} + + thumb_func_start sub_02027F04 +sub_02027F04: ; 0x02027F04 + push {r3-r7, lr} + sub sp, #0x8 + mov r12, r2 + mov r2, #0x0 + add r6, r2, #0x0 + mov r5, #0x1b + cmp r3, #0x0 + beq _02027F20 + mov r1, r12 + bl sub_02027ED0 + add sp, #0x8 + add r0, r5, #0x0 + pop {r3-r7, pc} +_02027F20: + add r4, r2, #0x0 + add r7, sp, #0x0 +_02027F24: + ldrb r3, [r1, r4] + cmp r3, #0x0 + beq _02027F34 + cmp r3, #0x32 + blo _02027F30 + mov r6, #0x1 +_02027F30: + strb r4, [r7, r2] + add r2, r2, #0x1 +_02027F34: + add r4, r4, #0x1 + cmp r4, #0x5 + blt _02027F24 + cmp r2, #0x5 + bhi _02027F9C + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r2, r1, #0 + lsl r6, r2, #0 + lsl r4, r4, #0 + lsl r2, r1, #0x1 + lsl r6, r1, #0x1 + lsl r6, r1, #0x1 + mov r1, r12 + bl sub_02027ED0 + add sp, #0x8 + mov r0, #0x1b + pop {r3-r7, pc} +_02027F62: + .byte 0x00, 0xAA, 0x13, 0x78, 0x06, 0x22, 0x5A, 0x43, 0x12, 0x06, 0x15, 0x0E, 0x15, 0xE0 + .byte 0x00, 0xAA, 0x53, 0x78, 0x12, 0x78, 0xCC, 0x5C, 0x8D, 0x5C, 0xA5, 0x42, 0x05, 0xD3, 0x94, 0x00 + .byte 0x12, 0x19, 0x9A, 0x18, 0x12, 0x06, 0x15, 0x0E, 0x08, 0xE0, 0x9C, 0x00, 0x1B, 0x19, 0xD2, 0x18 + .byte 0x12, 0x06, 0x15, 0x0E, 0x02, 0xE0, 0x19, 0x25, 0x00, 0xE0, 0x1A, 0x25 +_02027F9C: + cmp r6, #0x0 + beq _02027FA2 + mov r5, #0x1c +_02027FA2: + mov r4, #0x0 +_02027FA4: + ldrb r3, [r1, r4] + add r2, r0, r4 + add r4, r4, #0x1 + strb r3, [r2, #0x1] + cmp r4, #0x5 + blt _02027FA4 + strb r5, [r0, #0x0] + mov r1, r12 + strb r1, [r0, #0x6] + add r0, r5, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02027FBC +sub_02027FBC: ; 0x02027FBC + ldrb r2, [r0, #0x0] + strb r2, [r1, #0x0] + ldrb r2, [r0, #0x1] + strb r2, [r1, #0x1] + ldrb r2, [r0, #0x2] + strb r2, [r1, #0x2] + ldrb r2, [r0, #0x3] + strb r2, [r1, #0x3] + ldrb r2, [r0, #0x4] + strb r2, [r1, #0x4] + ldrb r2, [r0, #0x5] + strb r2, [r1, #0x5] + ldrb r0, [r0, #0x6] + strb r0, [r1, #0x6] + bx lr + .balign 4 + + thumb_func_start sub_02027FDC +sub_02027FDC: ; 0x02027FDC + push {r4, lr} + add r4, r0, #0x0 + ldrb r0, [r4, #0x0] + mov r1, #0x5 + blx sub_020EBC80 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi _0202801C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + lsl r6, r2, #0 + lsl r2, r3, #0 + lsl r6, r3, #0 + ldrb r0, [r4, #0x1] + b _0202803E +_0202800C: + .byte 0xA0, 0x78, 0x16, 0xE0 + .byte 0xE0, 0x78, 0x14, 0xE0, 0x20, 0x79, 0x12, 0xE0, 0x60, 0x79, 0x10, 0xE0 +_0202801C: + ldrb r0, [r4, #0x1] + ldrb r1, [r4, #0x2] + cmp r0, r1 + bhs _02028026 + add r0, r1, #0x0 +_02028026: + ldrb r1, [r4, #0x3] + cmp r0, r1 + bhs _0202802E + add r0, r1, #0x0 +_0202802E: + ldrb r1, [r4, #0x4] + cmp r0, r1 + bhs _02028036 + add r0, r1, #0x0 +_02028036: + ldrb r1, [r4, #0x5] + cmp r0, r1 + bhs _0202803E + add r0, r1, #0x0 +_0202803E: + cmp r0, #0x63 + bls _02028044 + mov r0, #0x63 +_02028044: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02028048 +sub_02028048: ; 0x02028048 + ldr r3, _02028050 ; =sub_02022610 + mov r1, #0x10 + bx r3 + nop +_02028050: .word sub_02022610 + 1 + + thumb_func_start sub_02028054 +sub_02028054: ; 0x02028054 + mov r0, #0x32 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_0202805C +sub_0202805C: ; 0x0202805C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_02028062: + add r0, r5, #0x0 + bl sub_02027E44 + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, #0x64 + blt _02028062 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02028074 +sub_02028074: ; 0x02028074 + mov r2, #0x0 +_02028076: + lsl r1, r2, #0x3 + ldrb r1, [r0, r1] + cmp r1, #0x1e + bne _02028082 + add r0, r2, #0x0 + bx lr +_02028082: + add r1, r2, #0x1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + cmp r2, #0x64 + blo _02028076 + ldr r0, _02028090 ; =0x0000FFFF + bx lr + .balign 4 +_02028090: .word 0x0000FFFF + + thumb_func_start sub_02028094 +sub_02028094: ; 0x02028094 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl sub_02028074 + ldr r1, _020280B4 ; =0x0000FFFF + add r4, r0, #0x0 + cmp r4, r1 + beq _020280B2 + lsl r1, r4, #0x3 + add r0, r6, #0x0 + add r1, r5, r1 + bl sub_02027E70 + add r0, r4, #0x0 +_020280B2: + pop {r4-r6, pc} + .balign 4 +_020280B4: .word 0x0000FFFF + + thumb_func_start sub_020280B8 +sub_020280B8: ; 0x020280B8 + push {r3, lr} + cmp r1, #0x64 + blo _020280C2 + mov r0, #0x0 + pop {r3, pc} +_020280C2: + lsl r1, r1, #0x3 + add r0, r0, r1 + bl sub_02027E44 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020280D0 +sub_020280D0: ; 0x020280D0 + cmp r1, #0x64 + bhs _020280EA +_020280D4: + lsl r2, r1, #0x3 + ldrb r2, [r0, r2] + cmp r2, #0x1e + beq _020280E0 + add r0, r1, #0x0 + bx lr +_020280E0: + add r1, r1, #0x1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, #0x64 + blo _020280D4 +_020280EA: + ldr r0, _020280F0 ; =0x0000FFFF + bx lr + nop +_020280F0: .word 0x0000FFFF + + thumb_func_start sub_020280F4 +sub_020280F4: ; 0x020280F4 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r0, #0x0 + mov r7, #0x64 + str r0, [sp, #0x4] +_02028100: + ldr r0, [sp, #0x4] + lsl r0, r0, #0x3 + ldrb r0, [r5, r0] + cmp r0, #0x1e + bne _0202815C + ldr r6, [sp, #0x4] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020280D0 + add r4, r0, #0x0 + ldr r0, _02028170 ; =0x0000FFFF + cmp r4, r0 + beq _0202816A + ldr r0, [sp, #0x4] + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + cmp r4, r7 + bhs _02028154 + cmp r4, r7 + bhs _02028154 +_0202812E: + lsl r0, r4, #0x3 + lsl r1, r6, #0x3 + str r0, [sp, #0x8] + add r0, r5, r0 + add r1, r5, r1 + bl sub_02027E70 + ldr r0, [sp, #0x8] + add r0, r5, r0 + bl sub_02027E44 + add r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r7 + blo _0202812E +_02028154: + ldr r0, [sp, #0x0] + sub r0, r7, r0 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 +_0202815C: + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + cmp r0, r7 + blo _02028100 +_0202816A: + add sp, #0xc + pop {r4-r7, pc} + nop +_02028170: .word 0x0000FFFF + + thumb_func_start sub_02028174 +sub_02028174: ; 0x02028174 + push {r3, lr} + cmp r1, #0x64 + blo _02028182 + add r0, r2, #0x0 + bl sub_02027E44 + pop {r3, pc} +_02028182: + lsl r1, r1, #0x3 + add r0, r0, r1 + add r1, r2, #0x0 + bl sub_02027E70 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02028190 +sub_02028190: ; 0x02028190 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + bl sub_02027E5C + add r6, r0, #0x0 + cmp r4, #0x64 + blo _020281AA + bl sub_02027E44 + mov r0, #0x0 + pop {r4-r6, pc} +_020281AA: + lsl r0, r4, #0x3 + add r0, r5, r0 + add r1, r6, #0x0 + bl sub_02027E70 + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020281B8 +sub_020281B8: ; 0x020281B8 + push {r4-r6, lr} + mov r4, #0x0 + add r6, r0, #0x0 + add r5, r4, #0x0 +_020281C0: + lsl r0, r5, #0x3 + add r0, r6, r0 + bl sub_02027E34 + cmp r0, #0x0 + beq _020281D2 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020281D2: + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x64 + blo _020281C0 + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020281E0 +sub_020281E0: ; 0x020281E0 + mov r0, #0x1f + lsl r0, r0, #0x6 + bx lr + .balign 4 + + thumb_func_start sub_020281E8 +sub_020281E8: ; 0x020281E8 + push {r3-r7, lr} + add r7, r0, #0x0 + mov r2, #0x1f + mov r0, #0x0 + add r1, r7, #0x0 + lsl r2, r2, #0x6 + blx sub_020CE240 + mov r0, #0x1d + lsl r0, r0, #0x4 + add r1, r0, #0x0 + add r2, r0, #0x0 + ldr r4, _02028224 ; =0x0000FFFF + mov r5, #0x0 + add r6, r7, #0x0 + mov r3, #0x2 + sub r1, #0x10 + add r2, #0x1e +_0202820C: + strh r4, [r6, r0] + strh r4, [r6, r1] + strb r3, [r6, r2] + add r5, r5, #0x1 + add r6, #0x30 + cmp r5, #0x20 + blt _0202820C + add r0, r7, #0x0 + bl sub_0203380C + pop {r3-r7, pc} + nop +_02028224: .word 0x0000FFFF + + thumb_func_start sub_02028228 +sub_02028228: ; 0x02028228 + bx lr + .balign 4 + + thumb_func_start sub_0202822C +sub_0202822C: ; 0x0202822C + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r7, r2, #0x0 + cmp r4, #0x20 + blt _0202823C + bl sub_02020C2C +_0202823C: + cmp r7, #0x8 + bhi _020282D0 + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r2, #0 + lsl r6, r3, #0 + lsl r4, r5, #0 + lsl r0, r7, #0 + lsl r6, r0, #0x1 + lsl r2, r2, #0x1 + lsl r0, r4, #0x1 + lsl r0, r7, #0x1 + lsl r4, r5, #0x1 + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + mov r0, #0x1e + lsl r0, r0, #0x4 + ldr r6, [r1, r0] + b _020282D0 +_0202826C: + .byte 0x30, 0x20, 0x60, 0x43 + .byte 0x29, 0x18, 0x79, 0x20, 0x80, 0x00, 0x0E, 0x5A, 0x2A, 0xE0, 0x30, 0x20, 0x60, 0x43, 0x29, 0x18 + .byte 0x14, 0x48, 0x0E, 0x5A, 0x24, 0xE0, 0x30, 0x20, 0x60, 0x43, 0x29, 0x18, 0x7A, 0x20, 0x80, 0x00 + .byte 0x0E, 0x5A, 0x1D, 0xE0, 0x30, 0x20, 0x60, 0x43, 0x29, 0x18, 0x0F, 0x48, 0x0E, 0x5A, 0x17, 0xE0 + .byte 0x30, 0x20, 0x60, 0x43, 0x29, 0x18, 0x7B, 0x20, 0x80, 0x00, 0x0E, 0x5C, 0x10, 0xE0, 0x30, 0x20 + .byte 0x60, 0x43, 0x29, 0x18, 0x09, 0x48, 0x0E, 0x5C, 0x0A, 0xE0, 0x30, 0x20, 0x60, 0x43, 0x29, 0x18 + .byte 0x07, 0x48, 0x0E, 0x5C, 0x04, 0xE0, 0x30, 0x20, 0x60, 0x43, 0x29, 0x18, 0x05, 0x48, 0x0E, 0x5C +_020282D0: + add r0, r6, #0x0 + pop {r3-r7, pc} +_020282D4: + .byte 0xE6, 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x00, 0xED, 0x01, 0x00, 0x00 + .byte 0xEE, 0x01, 0x00, 0x00, 0xEF, 0x01, 0x00, 0x00 + + thumb_func_start sub_020282E8 +sub_020282E8: ; 0x020282E8 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r7, r2, #0x0 + add r6, r3, #0x0 + cmp r4, #0x20 + blt _020282FA + bl sub_02020C2C +_020282FA: + cmp r7, #0x8 + bhi _02028378 + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r2, #0 + lsl r6, r3, #0 + lsl r4, r4, #0 + lsl r2, r5, #0 + lsl r0, r6, #0 + lsl r4, r7, #0 + lsl r2, r1, #0x1 + lsl r2, r4, #0x1 + lsl r6, r2, #0x1 + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + mov r0, #0x1e + lsl r0, r0, #0x4 + str r6, [r1, r0] + pop {r3-r7, pc} +_0202832A: + .byte 0xF8, 0xF7, 0x7F, 0xFC, 0xF8, 0xBD + .byte 0xF8, 0xF7, 0x7C, 0xFC, 0xF8, 0xBD, 0xF8, 0xF7, 0x79, 0xFC, 0xF8, 0xBD, 0x30, 0x20, 0x60, 0x43 + .byte 0x29, 0x18, 0x0E, 0x48, 0x0E, 0x52, 0xF8, 0xBD, 0x30, 0x20, 0x60, 0x43, 0x29, 0x18, 0x7B, 0x20 + .byte 0x80, 0x00, 0x0E, 0x54, 0xF8, 0xBD, 0x30, 0x20, 0x60, 0x43, 0x29, 0x18, 0x08, 0x48, 0x0E, 0x54 + .byte 0xF8, 0xBD, 0x30, 0x20, 0x60, 0x43, 0x29, 0x18, 0x06, 0x48, 0x0E, 0x54, 0xF8, 0xBD, 0x30, 0x20 + .byte 0x60, 0x43, 0x29, 0x18, 0x04, 0x48, 0x0E, 0x54 +_02028378: + pop {r3-r7, pc} + nop +_0202837C: + .byte 0xEA, 0x01, 0x00, 0x00 + .byte 0xED, 0x01, 0x00, 0x00, 0xEE, 0x01, 0x00, 0x00, 0xEF, 0x01, 0x00, 0x00 + + thumb_func_start sub_0202838C +sub_0202838C: ; 0x0202838C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x20 + blt _0202839A + bl sub_02020C2C +_0202839A: + mov r0, #0xc + add r5, #0x40 + mul r0, r4 + add r0, r5, r0 + pop {r3-r5, pc} + + thumb_func_start sub_020283A4 +sub_020283A4: ; 0x020283A4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x20 + blt _020283B2 + bl sub_02020C2C +_020283B2: + mov r0, #0x1d + lsl r0, r0, #0x4 + add r1, r5, r0 + mov r0, #0x30 + mul r0, r4 + add r0, r1, r0 + pop {r3-r5, pc} + + thumb_func_start sub_020283C0 +sub_020283C0: ; 0x020283C0 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x20 + blt _020283D0 + bl sub_02020C2C +_020283D0: + mov r1, #0x1d + lsl r1, r1, #0x4 + add r2, r5, r1 + mov r1, #0x30 + mul r1, r4 + add r1, r2, r1 + add r0, r6, #0x0 + mov r2, #0x10 + bl sub_02021EF0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020283E8 +sub_020283E8: ; 0x020283E8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x20 + blt _020283F6 + bl sub_02020C2C +_020283F6: + mov r0, #0x7 + lsl r0, r0, #0x6 + add r1, r5, r0 + mov r0, #0x30 + mul r0, r4 + add r0, r1, r0 + pop {r3-r5, pc} + + thumb_func_start sub_02028404 +sub_02028404: ; 0x02028404 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x20 + blt _02028414 + bl sub_02020C2C +_02028414: + mov r1, #0x7 + lsl r1, r1, #0x6 + add r2, r5, r1 + mov r1, #0x30 + mul r1, r4 + add r1, r2, r1 + add r0, r6, #0x0 + mov r2, #0x10 + bl sub_02021EF0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0202842C +sub_0202842C: ; 0x0202842C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x20 + blt _0202843A + bl sub_02020C2C +_0202843A: + mov r0, #0xc + add r5, #0x40 + mul r0, r4 + add r0, r5, r0 + blx sub_0209700C + pop {r3-r5, pc} + + thumb_func_start sub_02028448 +sub_02028448: ; 0x02028448 + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_02028450: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0202842C + cmp r0, #0x0 + beq _0202845E + add r5, r5, #0x1 +_0202845E: + add r4, r4, #0x1 + cmp r4, #0x20 + blt _02028450 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02028468 +sub_02028468: ; 0x02028468 + push {r4-r7, lr} + sub sp, #0xc + add r5, r1, #0x0 + str r0, [sp, #0x0] + cmp r5, #0x20 + blt _02028478 + bl sub_02020C2C +_02028478: + cmp r5, #0x1f + bge _020284D2 + mov r1, #0x7 + ldr r0, [sp, #0x0] + lsl r1, r1, #0x6 + add r0, r0, r1 + str r0, [sp, #0x4] + mov r0, #0x30 + add r1, r5, #0x0 + mul r1, r0 + ldr r0, [sp, #0x4] + add r6, r0, r1 + ldr r0, [sp, #0x0] + add r1, r5, #0x0 + str r0, [sp, #0x8] + add r0, #0x40 + str r0, [sp, #0x8] + mov r0, #0xc + mul r1, r0 + ldr r0, [sp, #0x8] + add r4, r0, r1 +_020284A2: + add r7, r5, #0x1 + mov r0, #0x30 + add r1, r7, #0x0 + mul r1, r0 + ldr r0, [sp, #0x4] + mov r2, #0x30 + add r0, r0, r1 + add r1, r6, #0x0 + blx sub_020CE3E0 + mov r0, #0xc + add r1, r7, #0x0 + mul r1, r0 + ldr r0, [sp, #0x8] + mov r2, #0xc + add r0, r0, r1 + add r1, r4, #0x0 + blx sub_020CE3E0 + add r5, r5, #0x1 + add r6, #0x30 + add r4, #0xc + cmp r5, #0x1f + blt _020284A2 +_020284D2: + mov r2, #0x7 + ldr r1, [sp, #0x0] + lsl r2, r2, #0x6 + add r2, r1, r2 + mov r1, #0x5d + lsl r1, r1, #0x4 + add r1, r2, r1 + mov r0, #0x0 + mov r2, #0x30 + blx sub_020CE240 + ldr r2, [sp, #0x0] + mov r1, #0x5d + add r2, #0x40 + lsl r1, r1, #0x2 + add r1, r2, r1 + mov r0, #0x0 + mov r2, #0xc + blx sub_020CE240 + mov r2, #0x7a + lsl r2, r2, #0x4 + add r1, r2, #0x0 + ldr r3, _02028514 ; =0x0000FFFF + ldr r0, [sp, #0x0] + sub r1, #0x10 + strh r3, [r0, r2] + strh r3, [r0, r1] + mov r1, #0x2 + add r2, #0x1e + strb r1, [r0, r2] + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02028514: .word 0x0000FFFF + + thumb_func_start sub_02028518 +sub_02028518: ; 0x02028518 + push {r4-r7, lr} + sub sp, #0xc + str r2, [sp, #0x4] + add r7, r0, #0x0 + ldr r0, [sp, #0x4] + mov r2, #0x30 + add r5, r0, #0x0 + mov r0, #0x7 + lsl r0, r0, #0x6 + add r3, r1, #0x0 + mul r5, r2 + add r4, r7, r0 + mul r3, r2 + str r1, [sp, #0x0] + add r0, r4, r5 + add r1, r4, r3 + blx sub_020CE3E0 + ldr r0, [sp, #0x4] + add r6, r7, #0x0 + mov r3, #0xc + add r1, r0, #0x0 + mul r1, r3 + add r6, #0x40 + str r1, [sp, #0x8] + add r0, r6, r1 + ldr r1, [sp, #0x0] + add r2, r1, #0x0 + mul r2, r3 + add r1, r6, r2 + add r2, r3, #0x0 + blx sub_020CE3E0 + mov r0, #0x0 + add r1, r4, r5 + mov r2, #0x30 + blx sub_020CE240 + ldr r1, [sp, #0x8] + mov r0, #0x0 + add r1, r6, r1 + mov r2, #0xc + blx sub_020CE240 + mov r0, #0x1d + ldr r1, _02028588 ; =0x0000FFFF + add r2, r7, r5 + lsl r0, r0, #0x4 + strh r1, [r2, r0] + strh r1, [r4, r5] + mov r1, #0x2 + add r0, #0x1e + strb r1, [r2, r0] + add sp, #0xc + pop {r4-r7, pc} + nop +_02028588: .word 0x0000FFFF + + thumb_func_start sub_0202858C +sub_0202858C: ; 0x0202858C + push {r3-r7, lr} + mov r5, #0x0 + mvn r5, r5 + add r6, r0, #0x0 + mov r4, #0x0 + add r7, r5, #0x0 +_02028598: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0202842C + cmp r0, #0x0 + beq _020285BC + mov r0, #0x0 + mvn r0, r0 + cmp r5, r0 + beq _020285C6 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02028518 + add r4, r7, #0x0 + add r5, r7, #0x0 + b _020285C6 +_020285BC: + mov r0, #0x0 + mvn r0, r0 + cmp r5, r0 + bne _020285C6 + add r5, r4, #0x0 +_020285C6: + add r4, r4, #0x1 + cmp r4, #0x20 + blt _02028598 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020285D0 +sub_020285D0: ; 0x020285D0 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, sp, #0x0 + bl sub_020126B4 + mov r0, #0x30 + add r2, r4, #0x0 + mul r2, r0 + mov r0, #0x7d + ldr r1, [sp, #0x0] + lsl r0, r0, #0x4 + add r1, r1, r0 + ldr r0, _02028604 ; =0x000001EA + add r3, r5, r2 + strh r1, [r3, r0] + add r1, r0, #0x2 + ldr r2, [sp, #0x4] + add r0, r0, #0x3 + strb r2, [r3, r1] + ldr r1, [sp, #0x8] + strb r1, [r3, r0] + add sp, #0x10 + pop {r3-r5, pc} + nop +_02028604: .word 0x000001EA + + thumb_func_start sub_02028608 +sub_02028608: ; 0x02028608 + push {r4-r6, lr} + mov r5, #0x79 + add r4, r0, #0x0 + mov r0, #0x30 + lsl r5, r5, #0x2 + mul r0, r1 + add r5, r4, r5 + ldrh r6, [r5, r0] + add r2, r6, r2 + strh r2, [r5, r0] + ldrh r6, [r5, r0] + ldr r2, _0202865C ; =0x0000270F + cmp r6, r2 + bls _02028626 + strh r2, [r5, r0] +_02028626: + ldr r2, _02028660 ; =0x000001E6 + add r2, r4, r2 + ldrh r5, [r2, r0] + add r3, r5, r3 + strh r3, [r2, r0] + ldrh r5, [r2, r0] + ldr r3, _0202865C ; =0x0000270F + cmp r5, r3 + bls _0202863A + strh r3, [r2, r0] +_0202863A: + mov r2, #0x7a + lsl r2, r2, #0x2 + add r2, r4, r2 + ldrh r5, [r2, r0] + ldr r3, [sp, #0x10] + add r3, r5, r3 + strh r3, [r2, r0] + ldrh r5, [r2, r0] + ldr r3, _0202865C ; =0x0000270F + cmp r5, r3 + bls _02028652 + strh r3, [r2, r0] +_02028652: + add r0, r4, #0x0 + bl sub_020285D0 + pop {r4-r6, pc} + nop +_0202865C: .word 0x0000270F +_02028660: .word 0x000001E6 + + thumb_func_start sub_02028664 +sub_02028664: ; 0x02028664 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r3, #0x79 + mov r0, #0x30 + add r4, r1, #0x0 + mul r4, r0 + lsl r3, r3, #0x2 + mul r0, r2 + add r2, r5, r3 + add r6, r5, r4 + ldrh r1, [r2, r0] + ldrh r3, [r6, r3] + add r1, r1, r3 + strh r1, [r2, r0] + ldrh r3, [r2, r0] + ldr r1, _020286E0 ; =0x0000270F + cmp r3, r1 + bls _0202868A + strh r1, [r2, r0] +_0202868A: + ldr r3, _020286E4 ; =0x000001E6 + add r6, r5, r4 + add r2, r5, r3 + ldrh r1, [r2, r0] + ldrh r3, [r6, r3] + add r1, r1, r3 + strh r1, [r2, r0] + ldrh r3, [r2, r0] + ldr r1, _020286E0 ; =0x0000270F + cmp r3, r1 + bls _020286A2 + strh r1, [r2, r0] +_020286A2: + mov r3, #0x7a + lsl r3, r3, #0x2 + add r2, r5, r3 + add r6, r5, r4 + ldrh r1, [r2, r0] + ldrh r3, [r6, r3] + add r1, r1, r3 + strh r1, [r2, r0] + ldrh r3, [r2, r0] + ldr r1, _020286E0 ; =0x0000270F + cmp r3, r1 + bls _020286BC + strh r1, [r2, r0] +_020286BC: + mov r0, #0x7 + lsl r0, r0, #0x6 + add r6, r5, r0 + mov r0, #0x0 + add r1, r6, r4 + mov r2, #0x30 + blx sub_020CE240 + mov r0, #0x1d + ldr r1, _020286E8 ; =0x0000FFFF + add r2, r5, r4 + lsl r0, r0, #0x4 + strh r1, [r2, r0] + strh r1, [r6, r4] + mov r1, #0x2 + add r0, #0x1e + strb r1, [r2, r0] + pop {r4-r6, pc} + .balign 4 +_020286E0: .word 0x0000270F +_020286E4: .word 0x000001E6 +_020286E8: .word 0x0000FFFF + + thumb_func_start sub_020286EC +sub_020286EC: ; 0x020286EC + ldr r3, _020286F4 ; =sub_02022610 + mov r1, #0x1d + bx r3 + nop +_020286F4: .word sub_02022610 + 1 + + thumb_func_start sub_020286F8 +sub_020286F8: ; 0x020286F8 + mov r0, #0x42 + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start sub_02028700 +sub_02028700: ; 0x02028700 + push {r4-r5} + add r5, r2, #0x0 + mov r3, #0x2c + add r2, r1, #0x0 + mul r2, r3 + mul r5, r3 + add r4, r0, r2 + add r3, r0, r5 + mov r2, #0x5 +_02028712: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02028712 + ldr r0, [r4, #0x0] + str r0, [r3, #0x0] + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_02028724 +sub_02028724: ; 0x02028724 + push {r4, lr} + add r4, r0, #0x0 + mov r2, #0x42 + mov r0, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + blx sub_020CE240 + ldr r0, _0202874C ; =0x0000FFFF + mov r1, #0x0 + add r2, r4, #0x0 +_0202873A: + strh r0, [r2, #0x0] + strh r0, [r2, #0x10] + add r1, r1, #0x1 + add r2, #0x2c + cmp r1, #0x6 + blt _0202873A + ldr r0, _02028750 ; =0x021C59D0 + str r4, [r0, #0x0] + pop {r4, pc} + .balign 4 +_0202874C: .word 0x0000FFFF +_02028750: .word 0x021C59D0 + + thumb_func_start sub_02028754 +sub_02028754: ; 0x02028754 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r7, #0x0 +_0202875C: + mov r4, #0x0 + cmp r6, #0x0 + bls _02028770 +_02028762: + ldr r0, [r5, #0x28] + bl sub_0201BA10 + add r4, r4, #0x1 + str r0, [r5, #0x28] + cmp r4, r6 + blo _02028762 +_02028770: + add r7, r7, #0x1 + add r5, #0x2c + cmp r7, #0x6 + blo _0202875C + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202877C +sub_0202877C: ; 0x0202877C + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x24] + bx lr + .balign 4 + + thumb_func_start sub_02028788 +sub_02028788: ; 0x02028788 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x2c + add r4, r1, #0x0 + mul r4, r0 + add r0, r5, r4 + str r2, [r0, #0x24] + add r0, r2, #0x0 + bl sub_0201BA10 + add r1, r5, r4 + str r0, [r1, #0x28] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020287A4 +sub_020287A4: ; 0x020287A4 + ldr r0, [r0, #0x54] + bx lr + + thumb_func_start sub_020287A8 +sub_020287A8: ; 0x020287A8 + cmp r2, #0x0 + bne _020287B4 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + bx lr +_020287B4: + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + add r0, #0x10 + bx lr + .balign 4 + + thumb_func_start sub_020287C0 +sub_020287C0: ; 0x020287C0 + push {r4, lr} + add r4, r0, #0x0 + cmp r2, #0x0 + bne _020287D8 + mov r2, #0x2c + mul r2, r1 + add r1, r4, r2 + add r0, r3, #0x0 + mov r2, #0x8 + bl sub_02021EF0 + pop {r4, pc} +_020287D8: + mov r2, #0x2c + mul r2, r1 + add r1, r4, r2 + add r0, r3, #0x0 + add r1, #0x10 + mov r2, #0x8 + bl sub_02021EF0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020287EC +sub_020287EC: ; 0x020287EC + mov r3, #0x2c + mul r3, r1 + add r0, r0, r3 + add r0, #0x20 + strb r2, [r0, #0x0] + bx lr + + thumb_func_start sub_020287F8 +sub_020287F8: ; 0x020287F8 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + add r0, #0x20 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02028804 +sub_02028804: ; 0x02028804 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + add r0, #0x21 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02028810 +sub_02028810: ; 0x02028810 + mov r3, #0x2c + mul r3, r1 + add r0, r0, r3 + add r0, #0x21 + strb r2, [r0, #0x0] + bx lr + + thumb_func_start sub_0202881C +sub_0202881C: ; 0x0202881C + ldr r3, _02028824 ; =sub_02022610 + mov r1, #0x11 + bx r3 + nop +_02028824: .word sub_02022610 + 1 + + thumb_func_start sub_02028828 +sub_02028828: ; 0x02028828 + push {r3, lr} + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + bl sub_0202888C + cmp r0, #0x0 + bne _0202883C + mov r0, #0x1 + pop {r3, pc} +_0202883C: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02028840 +sub_02028840: ; 0x02028840 + mov r2, #0x2c + add r3, r0, #0x0 + mul r2, r1 + add r1, r3, r2 + ldr r3, _02028850 ; =sub_020288AC + add r0, #0x2c + bx r3 + nop +_02028850: .word sub_020288AC + 1 + + thumb_func_start sub_02028854 +sub_02028854: ; 0x02028854 + push {r3-r7, lr} + add r6, r1, #0x0 + ldrh r1, [r6, #0x0] + add r5, r0, #0x0 + ldr r0, _02028888 ; =0x0000FFFF + cmp r1, r0 + bne _02028866 + mov r0, #0x0 + pop {r3-r7, pc} +_02028866: + mov r4, #0x0 + mov r7, #0x8 +_0202886A: + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r7, #0x0 + bl sub_020022D0 + cmp r0, #0x0 + bne _0202887C + mov r0, #0x1 + pop {r3-r7, pc} +_0202887C: + add r4, r4, #0x1 + add r5, #0x2c + cmp r4, #0x6 + blt _0202886A + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02028888: .word 0x0000FFFF + + thumb_func_start sub_0202888C +sub_0202888C: ; 0x0202888C + ldrh r2, [r0, #0x0] + ldr r1, _020288A8 ; =0x0000FFFF + cmp r2, r1 + bne _02028898 + mov r0, #0x1 + bx lr +_02028898: + ldrh r0, [r0, #0x10] + cmp r0, r1 + bne _020288A2 + mov r0, #0x1 + bx lr +_020288A2: + mov r0, #0x0 + bx lr + nop +_020288A8: .word 0x0000FFFF + + thumb_func_start sub_020288AC +sub_020288AC: ; 0x020288AC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, #0x10 + add r1, #0x10 + mov r2, #0x8 + bl sub_020022D0 + cmp r0, #0x0 + beq _020288C4 + mov r0, #0x0 + pop {r3-r5, pc} +_020288C4: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x8 + bl sub_020022D0 + cmp r0, #0x0 + beq _020288D6 + mov r0, #0x0 + pop {r3-r5, pc} +_020288D6: + add r0, r5, #0x0 + add r0, #0x20 + ldrb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r1, r0 + beq _020288EA + mov r0, #0x0 + pop {r3-r5, pc} +_020288EA: + add r0, r5, #0x0 + add r0, #0x21 + ldrb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x21 + ldrb r0, [r0, #0x0] + cmp r1, r0 + beq _020288FE + mov r0, #0x0 + pop {r3-r5, pc} +_020288FE: + ldr r1, [r5, #0x24] + ldr r0, [r4, #0x24] + cmp r1, r0 + bne _0202890A + mov r0, #0x1 + pop {r3-r5, pc} +_0202890A: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02028910 +sub_02028910: ; 0x02028910 + mov r1, #0x0 + strh r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02028918 +sub_02028918: ; 0x02028918 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0202892C ; =0x0000C350 + add r4, r1, #0x0 + cmp r4, r0 + bls _02028928 + bl sub_02020C2C +_02028928: + strh r4, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 +_0202892C: .word 0x0000C350 + + thumb_func_start sub_02028930 +sub_02028930: ; 0x02028930 + ldrh r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02028934 +sub_02028934: ; 0x02028934 + ldrh r3, [r0, #0x0] + ldr r2, _02028950 ; =0x0000C350 + cmp r3, r2 + blo _02028940 + mov r0, #0x0 + bx lr +_02028940: + add r1, r3, r1 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + cmp r1, r2 + bls _0202894C + strh r2, [r0, #0x0] +_0202894C: + mov r0, #0x1 + bx lr + .balign 4 +_02028950: .word 0x0000C350 + + thumb_func_start sub_02028954 +sub_02028954: ; 0x02028954 + ldrh r0, [r0, #0x0] + add r1, r1, r0 + ldr r0, _02028968 ; =0x0000C350 + cmp r1, r0 + bhi _02028962 + mov r0, #0x1 + bx lr +_02028962: + mov r0, #0x0 + bx lr + nop +_02028968: .word 0x0000C350 + + thumb_func_start sub_0202896C +sub_0202896C: ; 0x0202896C + ldrh r2, [r0, #0x0] + cmp r2, r1 + bhs _02028976 + mov r0, #0x0 + bx lr +_02028976: + sub r1, r2, r1 + strh r1, [r0, #0x0] + mov r0, #0x1 + bx lr + .balign 4 + + thumb_func_start sub_02028980 +sub_02028980: ; 0x02028980 + mov r0, #0x46 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_02028988 +sub_02028988: ; 0x02028988 + ldr r3, _02028990 ; =sub_020DF4A4 + mov r1, #0x0 + mov r2, #0x70 + bx r3 + .balign 4 +_02028990: .word sub_020DF4A4 + + thumb_func_start sub_02028994 +sub_02028994: ; 0x02028994 + ldr r3, _020289A0 ; =sub_020DF4A4 + mov r2, #0x46 + mov r1, #0x0 + lsl r2, r2, #0x4 + bx r3 + nop +_020289A0: .word sub_020DF4A4 + + thumb_func_start sub_020289A4 +sub_020289A4: ; 0x020289A4 + ldr r3, _020289AC ; =sub_02022610 + mov r1, #0x12 + bx r3 + nop +_020289AC: .word sub_02022610 + 1 + + thumb_func_start sub_020289B0 +sub_020289B0: ; 0x020289B0 + push {r3-r7, lr} + sub sp, #0x10 + add r7, r0, #0x0 + cmp r1, #0x1 + beq _020289C0 + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_020289C0: + add r0, sp, #0x0 + bl sub_020126B4 + ldr r0, [r7, #0x0] + lsl r1, r0, #0x15 + lsr r3, r1, #0x1c + beq _02028A18 + lsl r1, r0, #0x19 + lsr r2, r1, #0x19 + ldr r1, [sp, #0x0] + cmp r2, r1 + bne _020289F2 + ldr r1, [sp, #0x4] + cmp r3, r1 + bne _020289F2 + lsl r1, r0, #0xd + lsr r2, r1, #0x1b + ldr r1, [sp, #0x8] + cmp r2, r1 + bne _020289F2 + lsl r0, r0, #0x12 + lsr r1, r0, #0x1d + ldr r0, [sp, #0xc] + cmp r1, r0 + beq _02028A18 +_020289F2: + mov r0, #0x3f + lsl r0, r0, #0x4 + mov r5, #0x9 + add r6, r7, r0 +_020289FA: + add r4, r6, #0x0 + sub r4, #0x70 + add r3, r6, #0x0 + mov r2, #0xe +_02028A02: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02028A02 + sub r5, r5, #0x1 + sub r6, #0x70 + cmp r5, #0x1 + bge _020289FA + add r0, r7, #0x0 + bl sub_02028988 +_02028A18: + add r0, r7, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02028A20 +sub_02028A20: ; 0x02028A20 + push {r4, lr} + sub sp, #0x20 + add r4, r0, #0x0 + cmp r1, #0x1 + beq _02028A30 + add sp, #0x20 + mov r0, #0x0 + pop {r4, pc} +_02028A30: + add r0, sp, #0x0 + bl sub_020126B4 + ldr r0, [r4, #0x0] + lsl r0, r0, #0x19 + lsr r0, r0, #0x19 + str r0, [sp, #0x10] + ldr r0, [r4, #0x0] + lsl r0, r0, #0x15 + lsr r0, r0, #0x1c + str r0, [sp, #0x14] + ldr r0, [r4, #0x0] + lsl r0, r0, #0xd + lsr r0, r0, #0x1b + str r0, [sp, #0x18] + ldr r0, [r4, #0x0] + lsl r0, r0, #0x12 + lsr r0, r0, #0x1d + str r0, [sp, #0x1c] + add r0, sp, #0x0 + bl sub_02012710 + add r4, r0, #0x0 + add r0, sp, #0x10 + bl sub_02012710 + ldr r2, [sp, #0x4] + sub r0, r4, r0 + cmp r2, #0xc + bne _02028A7E + ldr r1, [sp, #0x8] + cmp r1, #0x1f + bne _02028A7E + ldr r1, [sp, #0x14] + cmp r1, #0x1 + bne _02028A7E + ldr r1, [sp, #0x18] + cmp r1, #0x1 + beq _02028A94 +_02028A7E: + cmp r2, #0x1 + bne _02028AAC + ldr r1, [sp, #0x8] + cmp r1, #0x1 + bne _02028AAC + ldr r1, [sp, #0x14] + cmp r1, #0xc + bne _02028AAC + ldr r1, [sp, #0x18] + cmp r1, #0x1f + bne _02028AAC +_02028A94: + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x10] + sub r1, r1, r0 + cmp r1, #0x2 + bge _02028AA6 + mov r0, #0x1 + mvn r0, r0 + cmp r1, r0 + bgt _02028ACC +_02028AA6: + add sp, #0x20 + mov r0, #0x1 + pop {r4, pc} +_02028AAC: + mov r1, #0x1 + mvn r1, r1 + cmp r0, r1 + ble _02028AB8 + cmp r0, #0x2 + blt _02028ABE +_02028AB8: + add sp, #0x20 + mov r0, #0x1 + pop {r4, pc} +_02028ABE: + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x10] + cmp r1, r0 + beq _02028ACC + add sp, #0x20 + mov r0, #0x1 + pop {r4, pc} +_02028ACC: + mov r0, #0x0 + add sp, #0x20 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02028AD4 +sub_02028AD4: ; 0x02028AD4 + push {r4, lr} + add r4, r1, #0x0 + cmp r0, #0x0 + beq _02028B12 + cmp r2, #0x4 + bhi _02028B12 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r0, r1, #0 + lsl r6, r1, #0 + lsl r4, r2, #0 + lsl r2, r3, #0 + lsl r0, r4, #0 + bl sub_02028B1C + b _02028B12 +_02028AFC: + .byte 0x00, 0xF0, 0x2E, 0xF8 + .byte 0x07, 0xE0, 0x00, 0xF0, 0x75, 0xF8, 0x04, 0xE0, 0x00, 0xF0, 0x78, 0xF8, 0x01, 0xE0, 0x00, 0xF0 + .byte 0x7B, 0xF8 +_02028B12: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02028B1C +sub_02028B1C: ; 0x02028B1C + push {r4-r5} + ldr r3, [r0, #0x0] + lsl r2, r3, #0x19 + lsr r5, r2, #0x19 + ldr r2, [r1, #0x0] + lsl r4, r2, #0x19 + lsr r4, r4, #0x19 + cmp r5, r4 + bne _02028B52 + lsl r4, r3, #0x15 + lsr r5, r4, #0x1c + lsl r4, r2, #0x15 + lsr r4, r4, #0x1c + cmp r5, r4 + bne _02028B52 + lsl r4, r3, #0xd + lsr r5, r4, #0x1b + lsl r4, r2, #0xd + lsr r4, r4, #0x1b + cmp r5, r4 + bne _02028B52 + lsl r3, r3, #0x12 + lsl r2, r2, #0x12 + lsr r3, r3, #0x1d + lsr r2, r2, #0x1d + cmp r3, r2 + beq _02028B56 +_02028B52: + ldr r1, [r1, #0x0] + str r1, [r0, #0x0] +_02028B56: + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_02028B5C +sub_02028B5C: ; 0x02028B5C + push {r3, lr} + ldrb r2, [r1, #0x0] + cmp r2, #0x23 + bhi _02028BEE + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r4, r7, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r1, #0x1 + lsl r6, r1, #0x1 + lsl r6, r2, #0x1 + lsl r6, r3, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r5, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r4, r7, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + add r0, r0, #0x4 + bl sub_02028CE8 + pop {r3, pc} +_02028BC0: + .byte 0x00, 0x1D, 0x00, 0xF0, 0xE9, 0xF8, 0x08, 0xBD, 0x00, 0x1D, 0x00, 0xF0, 0xBB, 0xF8, 0x08, 0xBD + .byte 0x00, 0x1D, 0x00, 0xF0, 0xA7, 0xF8, 0x08, 0xBD, 0x00, 0x1D, 0x00, 0xF0, 0x0F, 0xF9, 0x08, 0xBD + .byte 0x00, 0x1D, 0x00, 0xF0, 0x2F, 0xF9, 0x08, 0xBD, 0x00, 0x1D, 0x00, 0xF0, 0x4F, 0xF9 +_02028BEE: + pop {r3, pc} + + thumb_func_start sub_02028BF0 +sub_02028BF0: ; 0x02028BF0 + ldrh r2, [r1, #0x0] + strh r2, [r0, #0x14] + ldrh r1, [r1, #0x2] + strh r1, [r0, #0x16] + bx lr + .balign 4 + + thumb_func_start sub_02028BFC +sub_02028BFC: ; 0x02028BFC + ldrh r2, [r1, #0x0] + strh r2, [r0, #0x18] + ldrh r1, [r1, #0x2] + strh r1, [r0, #0x1a] + bx lr + .balign 4 + + thumb_func_start sub_02028C08 +sub_02028C08: ; 0x02028C08 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + bl sub_02028CA8 + ldrb r1, [r4, #0x0] + cmp r1, #0x10 + bhi _02028C6E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0x1 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r5, #0 + lsl r0, r6, #0 + lsl r0, r7, #0 + lsl r0, r6, #0 + lsl r0, r7, #0 + lsl r0, r4, #0 + lsl r0, r7, #0 + lsl r2, r0, #0x1 + lsl r0, r7, #0 + lsl r0, r6, #0 + lsl r0, r7, #0 + add r1, r4, #0x0 + bl sub_02028ED4 + pop {r3-r5, pc} +_02028C4E: + .byte 0x21, 0x1C + .byte 0x00, 0xF0, 0x5E, 0xF9, 0x38, 0xBD, 0x21, 0x1C, 0x00, 0xF0, 0x68, 0xF9, 0x38, 0xBD, 0x28, 0x1C + .byte 0x21, 0x1C, 0x00, 0xF0, 0x7D, 0xF9, 0x38, 0xBD, 0x21, 0x1C, 0x00, 0xF0, 0x93, 0xF9 +_02028C6E: + pop {r3-r5, pc} + + thumb_func_start sub_02028C70 +sub_02028C70: ; 0x02028C70 + push {r3-r4} + mov r3, #0x0 + add r4, r0, #0x0 + mov r1, #0x3f +_02028C78: + ldr r2, [r4, #0x0] + tst r2, r1 + bne _02028C86 + lsl r1, r3, #0x2 + add r0, r0, r1 + pop {r3-r4} + bx lr +_02028C86: + add r3, r3, #0x1 + add r4, r4, #0x4 + cmp r3, #0x4 + blo _02028C78 + mov r3, #0x0 + add r2, r0, #0x0 +_02028C92: + ldr r1, [r2, #0x4] + add r3, r3, #0x1 + stmia r2!, {r1} + cmp r3, #0x3 + blo _02028C92 + lsl r2, r3, #0x2 + mov r1, #0x0 + str r1, [r0, r2] + add r0, r0, r2 + pop {r3-r4} + bx lr + + thumb_func_start sub_02028CA8 +sub_02028CA8: ; 0x02028CA8 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 +_02028CB0: + ldrb r0, [r2, #0x1c] + cmp r0, #0x0 + bne _02028CC0 + mov r0, #0x2a + add r4, #0x1c + mul r0, r1 + add r0, r4, r0 + pop {r4, pc} +_02028CC0: + add r1, r1, #0x1 + add r2, #0x2a + cmp r1, #0x2 + blo _02028CB0 + add r0, r4, #0x0 + add r1, r4, #0x0 + add r0, #0x1c + add r1, #0x46 + mov r2, #0x2a + blx sub_020DF438 + add r4, #0x46 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x2a + blx sub_020DF4A4 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02028CE8 +sub_02028CE8: ; 0x02028CE8 + push {r4, lr} + add r4, r1, #0x0 + mov r2, #0x0 + add r3, r0, #0x0 +_02028CF0: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _02028CFE + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, #0x4 + blo _02028CF0 +_02028CFE: + cmp r2, #0x0 + beq _02028D14 + lsl r2, r2, #0x2 + add r2, r0, r2 + sub r2, r2, #0x4 + ldr r3, [r2, #0x0] + mov r2, #0x3f + ldrb r1, [r4, #0x0] + and r2, r3 + cmp r1, r2 + beq _02028D20 +_02028D14: + bl sub_02028C70 + ldrb r2, [r4, #0x0] + mov r1, #0x3f + and r1, r2 + str r1, [r0, #0x0] +_02028D20: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02028D24 +sub_02028D24: ; 0x02028D24 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02028C70 + ldrb r2, [r4, #0x0] + mov r1, #0x3f + and r1, r2 + ldrh r2, [r4, #0x2] + lsl r3, r2, #0x10 + ldrh r2, [r4, #0x4] + lsl r2, r2, #0x16 + lsr r2, r2, #0x10 + orr r2, r3 + orr r1, r2 + str r1, [r0, #0x0] + pop {r4, pc} + + thumb_func_start sub_02028D44 +sub_02028D44: ; 0x02028D44 + push {r3-r5, lr} + add r4, r1, #0x0 + mov r2, #0x0 + mov r3, #0x3f +_02028D4C: + lsl r1, r2, #0x2 + ldr r5, [r0, r1] + and r5, r3 + cmp r5, #0xb + bne _02028D72 + mov r3, #0x0 + str r3, [r0, r1] + cmp r2, #0x3 + bhs _02028D7C +_02028D5E: + lsl r3, r2, #0x2 + add r1, r0, r3 + ldr r1, [r1, #0x4] + str r1, [r0, r3] + add r1, r2, #0x1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + cmp r2, #0x3 + blo _02028D5E + b _02028D7C +_02028D72: + add r1, r2, #0x1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + cmp r2, #0x4 + blo _02028D4C +_02028D7C: + bl sub_02028C70 + ldrb r2, [r4, #0x0] + mov r1, #0x3f + and r1, r2 + ldrh r2, [r4, #0x2] + lsl r3, r2, #0x10 + ldrh r2, [r4, #0x4] + lsl r2, r2, #0x16 + lsr r2, r2, #0x10 + orr r2, r3 + orr r1, r2 + str r1, [r0, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_02028D98 +sub_02028D98: ; 0x02028D98 + push {r4-r6, lr} + add r4, r1, #0x0 + mov r6, #0x0 + mov r1, #0x3f +_02028DA0: + lsl r5, r6, #0x2 + ldr r3, [r0, r5] + add r2, r3, #0x0 + and r2, r1 + cmp r2, #0x9 + bne _02028DD4 + lsr r3, r3, #0x10 + lsl r3, r3, #0x10 + ldrh r2, [r4, #0x2] + lsr r3, r3, #0x10 + cmp r2, r3 + bne _02028DD4 + mov r1, #0x0 + str r1, [r0, r5] + cmp r6, #0x3 + bhs _02028DDE +_02028DC0: + lsl r2, r6, #0x2 + add r1, r0, r2 + ldr r1, [r1, #0x4] + str r1, [r0, r2] + add r1, r6, #0x1 + lsl r1, r1, #0x10 + lsr r6, r1, #0x10 + cmp r6, #0x3 + blo _02028DC0 + b _02028DDE +_02028DD4: + add r2, r6, #0x1 + lsl r2, r2, #0x10 + lsr r6, r2, #0x10 + cmp r6, #0x4 + blo _02028DA0 +_02028DDE: + bl sub_02028C70 + ldrb r2, [r4, #0x0] + mov r1, #0x3f + and r1, r2 + ldrh r2, [r4, #0x2] + lsl r3, r2, #0x10 + ldrh r2, [r4, #0x4] + lsl r2, r2, #0x16 + lsr r2, r2, #0x10 + orr r2, r3 + orr r1, r2 + str r1, [r0, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02028DFC +sub_02028DFC: ; 0x02028DFC + push {r4, lr} + add r4, r1, #0x0 + mov r2, #0x0 + add r3, r0, #0x0 +_02028E04: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _02028E12 + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, #0x4 + blo _02028E04 +_02028E12: + cmp r2, #0x0 + beq _02028E30 + lsl r1, r2, #0x2 + add r1, r0, r1 + sub r1, r1, #0x4 + ldr r3, [r1, #0x0] + mov r1, #0x3f + ldrb r2, [r4, #0x0] + and r1, r3 + cmp r2, r1 + bne _02028E30 + ldrh r2, [r4, #0x2] + lsr r1, r3, #0x10 + cmp r2, r1 + beq _02028E42 +_02028E30: + bl sub_02028C70 + ldrh r1, [r4, #0x2] + ldrb r2, [r4, #0x0] + lsl r3, r1, #0x10 + mov r1, #0x3f + and r1, r2 + orr r1, r3 + str r1, [r0, #0x0] +_02028E42: + pop {r4, pc} + + thumb_func_start sub_02028E44 +sub_02028E44: ; 0x02028E44 + push {r4, lr} + add r4, r1, #0x0 + mov r2, #0x0 + add r3, r0, #0x0 +_02028E4C: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _02028E5A + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, #0x4 + blo _02028E4C +_02028E5A: + cmp r2, #0x0 + beq _02028E78 + lsl r1, r2, #0x2 + add r1, r0, r1 + sub r1, r1, #0x4 + ldr r3, [r1, #0x0] + mov r1, #0x3f + ldrb r2, [r4, #0x0] + and r1, r3 + cmp r2, r1 + bne _02028E78 + ldrh r2, [r4, #0x6] + lsr r1, r3, #0x10 + cmp r2, r1 + beq _02028E8A +_02028E78: + bl sub_02028C70 + ldrh r1, [r4, #0x6] + ldrb r2, [r4, #0x0] + lsl r3, r1, #0x10 + mov r1, #0x3f + and r1, r2 + orr r1, r3 + str r1, [r0, #0x0] +_02028E8A: + pop {r4, pc} + + thumb_func_start sub_02028E8C +sub_02028E8C: ; 0x02028E8C + push {r4, lr} + add r4, r1, #0x0 + mov r2, #0x0 + add r3, r0, #0x0 +_02028E94: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _02028EA2 + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, #0x4 + blo _02028E94 +_02028EA2: + cmp r2, #0x0 + beq _02028EC0 + lsl r1, r2, #0x2 + add r1, r0, r1 + sub r1, r1, #0x4 + ldr r3, [r1, #0x0] + mov r1, #0x3f + ldrb r2, [r4, #0x0] + and r1, r3 + cmp r2, r1 + bne _02028EC0 + ldrh r2, [r4, #0x2] + lsr r1, r3, #0x10 + cmp r2, r1 + beq _02028ED2 +_02028EC0: + bl sub_02028C70 + ldrh r1, [r4, #0x2] + ldrb r2, [r4, #0x0] + lsl r3, r1, #0x10 + mov r1, #0x3f + and r1, r2 + orr r1, r3 + str r1, [r0, #0x0] +_02028ED2: + pop {r4, pc} + + thumb_func_start sub_02028ED4 +sub_02028ED4: ; 0x02028ED4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldrb r0, [r4, #0x0] + strb r0, [r5, #0x0] + ldrb r3, [r4, #0x1] + lsl r1, r3, #0x1c + lsr r2, r1, #0x1a + lsl r1, r3, #0x1b + lsr r1, r1, #0x1f + lsl r0, r3, #0x1a + lsl r1, r1, #0x1 + orr r1, r2 + lsr r0, r0, #0x1f + orr r0, r1 + strb r0, [r5, #0x1] + add r0, r4, #0x2 + add r1, r5, #0x2 + mov r2, #0x8 + bl sub_020292D4 + add r4, #0x12 + add r5, #0x12 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x8 + bl sub_020292D4 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02028F10 +sub_02028F10: ; 0x02028F10 + add r2, r0, #0x0 + ldrb r0, [r1, #0x0] + ldr r3, _02028F28 ; =sub_020292D4 + strb r0, [r2, #0x0] + ldrb r0, [r1, #0x1] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + strb r0, [r2, #0x1] + add r0, r1, #0x2 + add r1, r2, #0x2 + mov r2, #0x8 + bx r3 + .balign 4 +_02028F28: .word sub_020292D4 + 1 + + thumb_func_start sub_02028F2C +sub_02028F2C: ; 0x02028F2C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldrb r0, [r4, #0x0] + mov r2, #0x8 + strb r0, [r5, #0x0] + ldrb r0, [r4, #0x1] + lsl r1, r0, #0x1b + lsr r1, r1, #0x1f + lsl r0, r0, #0x18 + lsl r1, r1, #0x2 + lsr r0, r0, #0x1e + orr r0, r1 + strb r0, [r5, #0x1] + add r0, r4, #0x2 + add r1, r5, #0x2 + bl sub_020292D4 + add r4, #0x22 + add r5, #0x12 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0xc + bl sub_020292D4 + pop {r3-r5, pc} + + thumb_func_start sub_02028F60 +sub_02028F60: ; 0x02028F60 + push {r4, lr} + add r4, r1, #0x0 + mov r3, #0x0 + add r2, r0, #0x0 +_02028F68: + ldrb r1, [r2, #0x1c] + cmp r1, #0x0 + beq _02028F76 + add r3, r3, #0x1 + add r2, #0x2a + cmp r3, #0x2 + blo _02028F68 +_02028F76: + cmp r3, #0x0 + beq _02028F8A + mov r1, #0x2a + mul r1, r3 + add r1, r0, r1 + sub r1, #0xe + ldrb r2, [r4, #0x0] + ldrb r1, [r1, #0x0] + cmp r2, r1 + beq _02028F92 +_02028F8A: + bl sub_02028CA8 + ldrb r1, [r4, #0x0] + strb r1, [r0, #0x0] +_02028F92: + pop {r4, pc} + + thumb_func_start sub_02028F94 +sub_02028F94: ; 0x02028F94 + ldrb r2, [r1, #0x0] + strb r2, [r0, #0x0] + ldrb r1, [r1, #0x1] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + strb r1, [r0, #0x1] + bx lr + .balign 4 + + thumb_func_start sub_02028FA4 +sub_02028FA4: ; 0x02028FA4 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x4 + bl sub_02016998 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl sub_020126B4 + ldr r2, [r4, #0x0] + mov r0, #0x7f + bic r2, r0 + ldr r1, [sp, #0x0] + mov r0, #0x7f + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + str r1, [r4, #0x0] + add r2, r1, #0x0 + ldr r1, [sp, #0x4] + ldr r0, _02029008 ; =0xFFFFF87F + lsl r1, r1, #0x1c + and r2, r0 + lsr r1, r1, #0x15 + orr r2, r1 + ldr r1, _0202900C ; =0xFFF83FFF + str r2, [r4, #0x0] + and r2, r1 + ldr r1, [sp, #0x8] + lsr r0, r0, #0xd + lsl r1, r1, #0x1b + lsr r1, r1, #0xd + orr r2, r1 + ldr r1, _02029010 ; =0xFFFFC7FF + str r2, [r4, #0x0] + and r2, r1 + ldr r1, [sp, #0xc] + lsl r1, r1, #0x1d + lsr r1, r1, #0x12 + orr r1, r2 + and r1, r0 + lsl r0, r5, #0x13 + orr r0, r1 + str r0, [r4, #0x0] + add r0, r4, #0x0 + add sp, #0x10 + pop {r3-r5, pc} + nop +_02029008: .word 0xFFFFF87F +_0202900C: .word 0xFFF83FFF +_02029010: .word 0xFFFFC7FF + + thumb_func_start sub_02029014 +sub_02029014: ; 0x02029014 + push {r3, lr} + mov r1, #0x8 + bl sub_02016998 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + strb r1, [r0, #0x4] + strb r1, [r0, #0x5] + strb r1, [r0, #0x6] + strb r1, [r0, #0x7] + pop {r3, pc} + + thumb_func_start sub_02029030 +sub_02029030: ; 0x02029030 + push {r3, lr} + bl sub_02029014 + mov r1, #0x1 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_0202903C +sub_0202903C: ; 0x0202903C + push {r3, lr} + bl sub_02029014 + mov r1, #0x2 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02029048 +sub_02029048: ; 0x02029048 + push {r3, lr} + bl sub_02029014 + mov r1, #0x3 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02029054 +sub_02029054: ; 0x02029054 + push {r3, lr} + bl sub_02029014 + mov r1, #0x4 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02029060 +sub_02029060: ; 0x02029060 + push {r3, lr} + bl sub_02029014 + mov r1, #0x5 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_0202906C +sub_0202906C: ; 0x0202906C + push {r3, lr} + bl sub_02029014 + mov r1, #0x6 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02029078 +sub_02029078: ; 0x02029078 + push {r3, lr} + bl sub_02029014 + mov r1, #0x7 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02029084 +sub_02029084: ; 0x02029084 + push {r3, lr} + bl sub_02029014 + mov r1, #0x8 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02029090 +sub_02029090: ; 0x02029090 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02029014 + mov r1, #0x9 + strb r1, [r0, #0x0] + strh r4, [r0, #0x2] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020290A4 +sub_020290A4: ; 0x020290A4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + bl sub_02029014 + mov r1, #0xa + strb r1, [r0, #0x0] + strh r5, [r0, #0x2] + strh r4, [r0, #0x4] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020290BC +sub_020290BC: ; 0x020290BC + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02029014 + mov r1, #0xb + strb r1, [r0, #0x0] + strh r4, [r0, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020290D0 +sub_020290D0: ; 0x020290D0 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02029014 + mov r1, #0xc + strb r1, [r0, #0x0] + strh r4, [r0, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020290E4 +sub_020290E4: ; 0x020290E4 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02029014 + mov r1, #0xd + strb r1, [r0, #0x0] + strh r4, [r0, #0x2] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020290F8 +sub_020290F8: ; 0x020290F8 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02029014 + mov r1, #0xe + strb r1, [r0, #0x0] + strh r4, [r0, #0x2] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202910C +sub_0202910C: ; 0x0202910C + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02029014 + mov r1, #0xf + strb r1, [r0, #0x0] + strh r4, [r0, #0x2] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02029120 +sub_02029120: ; 0x02029120 + push {r3, lr} + bl sub_02029014 + mov r1, #0x10 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_0202912C +sub_0202912C: ; 0x0202912C + push {r3, lr} + bl sub_02029014 + mov r1, #0x11 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02029138 +sub_02029138: ; 0x02029138 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02029014 + mov r1, #0x12 + strb r1, [r0, #0x0] + strh r4, [r0, #0x6] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202914C +sub_0202914C: ; 0x0202914C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + bl sub_02029014 + add r5, #0x13 + strb r5, [r0, #0x0] + strh r4, [r0, #0x2] + pop {r3-r5, pc} + + thumb_func_start sub_02029160 +sub_02029160: ; 0x02029160 + push {r3, lr} + bl sub_02029014 + mov r1, #0x22 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_0202916C +sub_0202916C: ; 0x0202916C + push {r3, lr} + bl sub_02029014 + mov r1, #0x23 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02029178 +sub_02029178: ; 0x02029178 + push {r3, lr} + mov r1, #0x4 + bl sub_02016998 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + pop {r3, pc} + + thumb_func_start sub_0202918C +sub_0202918C: ; 0x0202918C + push {r3-r7, lr} + str r0, [sp, #0x0] + ldr r0, [sp, #0x18] + add r5, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02029178 + add r4, r0, #0x0 + mov r0, #0x1 + strb r0, [r4, #0x0] + strh r5, [r4, #0x2] + ldrb r1, [r4, #0x1] + mov r0, #0xc0 + bic r1, r0 + lsl r0, r6, #0x1e + lsr r0, r0, #0x18 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x3c + bic r1, r0 + lsl r0, r7, #0x1c + lsr r0, r0, #0x1a + orr r0, r1 + strb r0, [r4, #0x1] + ldr r0, [sp, #0x0] + bl sub_02029EC0 + mov r1, #0xa + blx sub_020EBC80 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + beq _020291DA + cmp r0, #0x2 + beq _020291DA + cmp r0, #0x4 + bne _020291E4 +_020291DA: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + strb r1, [r4, #0x1] + b _02029206 +_020291E4: + cmp r0, #0x1 + beq _020291EC + cmp r0, #0x3 + bne _020291FA +_020291EC: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strb r0, [r4, #0x1] + b _02029206 +_020291FA: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + mov r0, #0x2 + orr r0, r1 + strb r0, [r4, #0x1] +_02029206: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202920C +sub_0202920C: ; 0x0202920C + push {r3-r7, lr} + str r0, [sp, #0x0] + ldr r0, [sp, #0x18] + add r5, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02029178 + add r4, r0, #0x0 + mov r0, #0x2 + strb r0, [r4, #0x0] + strh r5, [r4, #0x2] + ldrb r1, [r4, #0x1] + mov r0, #0xc0 + bic r1, r0 + lsl r0, r6, #0x1e + lsr r0, r0, #0x18 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x3c + bic r1, r0 + lsl r0, r7, #0x1c + lsr r0, r0, #0x1a + orr r0, r1 + strb r0, [r4, #0x1] + ldr r0, [sp, #0x0] + bl sub_02029EC0 + mov r1, #0xa + blx sub_020EBC80 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + beq _0202925C + cmp r0, #0x3 + beq _0202925C + cmp r0, #0x5 + bne _02029266 +_0202925C: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + strb r1, [r4, #0x1] + b _02029288 +_02029266: + cmp r0, #0x2 + beq _0202926E + cmp r0, #0x4 + bne _0202927C +_0202926E: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strb r0, [r4, #0x1] + b _02029288 +_0202927C: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + mov r0, #0x2 + orr r0, r1 + strb r0, [r4, #0x1] +_02029288: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0202928C +sub_0202928C: ; 0x0202928C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x4 + bl sub_02016998 + ldrh r2, [r0, #0x0] + mov r1, #0x1 + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strh r1, [r0, #0x0] + strh r5, [r0, #0x2] + ldrh r2, [r0, #0x0] + ldr r1, _020292B8 ; =0xFFFF0001 + and r2, r1 + lsl r1, r4, #0x11 + lsr r1, r1, #0x10 + orr r1, r2 + strh r1, [r0, #0x0] + pop {r3-r5, pc} + .balign 4 +_020292B8: .word 0xFFFF0001 + + thumb_func_start sub_020292BC +sub_020292BC: ; 0x020292BC + push {r4, lr} + mov r1, #0x3a + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x3a + add r4, r0, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020292D4 +sub_020292D4: ; 0x020292D4 + push {r4-r5} + mov r4, #0x0 + cmp r2, #0x0 + bls _020292EA + ldr r3, _02029308 ; =0x0000FFFF + add r5, r1, #0x0 +_020292E0: + add r4, r4, #0x1 + strh r3, [r5, #0x0] + add r5, r5, #0x2 + cmp r4, r2 + blo _020292E0 +_020292EA: + mov r5, #0x0 + cmp r2, #0x0 + bls _02029304 + ldr r3, _02029308 ; =0x0000FFFF +_020292F2: + ldrh r4, [r0, #0x0] + cmp r4, r3 + beq _02029304 + add r5, r5, #0x1 + strh r4, [r1, #0x0] + add r0, r0, #0x2 + add r1, r1, #0x2 + cmp r5, r2 + blo _020292F2 +_02029304: + pop {r4-r5} + bx lr + .balign 4 +_02029308: .word 0x0000FFFF + + thumb_func_start sub_0202930C +sub_0202930C: ; 0x0202930C + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, r3, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_020292BC + add r4, r0, #0x0 + mov r0, #0x1 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0xf + mov r2, #0x8 + bic r0, r1 + mov r1, #0xf + and r1, r6 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x10 + bic r1, r0 + lsl r0, r5, #0x1f + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl sub_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202934C +sub_0202934C: ; 0x0202934C + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, r3, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_020292BC + add r4, r0, #0x0 + mov r0, #0x2 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0xf + mov r2, #0x8 + bic r0, r1 + mov r1, #0xf + and r1, r6 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x10 + bic r1, r0 + lsl r0, r5, #0x1f + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl sub_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202938C +sub_0202938C: ; 0x0202938C + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, [sp, #0x1c] + str r1, [sp, #0x0] + add r5, r2, #0x0 + add r6, r3, #0x0 + bl sub_020292BC + add r4, r0, #0x0 + mov r0, #0x3 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0xf + bic r0, r1 + add r1, sp, #0x8 + ldrb r2, [r1, #0x10] + mov r1, #0xf + and r1, r2 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r0, [r4, #0x1] + mov r1, #0x10 + mov r2, #0x8 + bic r0, r1 + lsl r1, r5, #0x1f + lsr r1, r1, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x20 + bic r1, r0 + lsl r0, r6, #0x1f + lsr r0, r0, #0x1a + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl sub_020292D4 + add r1, r4, #0x0 + ldr r0, [sp, #0x0] + add r1, #0x12 + mov r2, #0x8 + bl sub_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020293EC +sub_020293EC: ; 0x020293EC + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, r3, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_020292BC + add r4, r0, #0x0 + mov r0, #0x4 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0xf + mov r2, #0x8 + bic r0, r1 + mov r1, #0xf + and r1, r6 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x10 + bic r1, r0 + lsl r0, r5, #0x1f + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl sub_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202942C +sub_0202942C: ; 0x0202942C + push {r4-r6, lr} + add r6, r0, #0x0 + add r0, r2, #0x0 + add r5, r1, #0x0 + bl sub_020292BC + add r4, r0, #0x0 + mov r0, #0x6 + strb r0, [r4, #0x0] + ldrb r1, [r4, #0x1] + mov r0, #0x10 + mov r2, #0x8 + bic r1, r0 + lsl r0, r5, #0x1f + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r6, #0x0 + add r1, r4, #0x2 + bl sub_020292D4 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0202945C +sub_0202945C: ; 0x0202945C + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, [sp, #0x18] + add r5, r1, #0x0 + str r2, [sp, #0x0] + add r6, r3, #0x0 + bl sub_020292BC + add r4, r0, #0x0 + mov r0, #0x7 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0x10 + mov r2, #0x8 + bic r0, r1 + lsl r1, r5, #0x1f + lsr r1, r1, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0xc0 + bic r1, r0 + lsl r0, r6, #0x1e + lsr r0, r0, #0x18 + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl sub_020292D4 + add r1, r4, #0x0 + ldr r0, [sp, #0x0] + add r1, #0x22 + mov r2, #0xc + bl sub_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_020294A8 +sub_020294A8: ; 0x020294A8 + push {r3, lr} + bl sub_020292BC + mov r1, #0x8 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_020294B4 +sub_020294B4: ; 0x020294B4 + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, r3, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_020292BC + add r4, r0, #0x0 + mov r0, #0xb + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0xf + mov r2, #0x8 + bic r0, r1 + mov r1, #0xf + and r1, r6 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x10 + bic r1, r0 + lsl r0, r5, #0x1f + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl sub_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020294F4 +sub_020294F4: ; 0x020294F4 + push {r3, lr} + bl sub_020292BC + mov r1, #0xc + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02029500 +sub_02029500: ; 0x02029500 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_020292BC + mov r1, #0xd + strb r1, [r0, #0x0] + ldrb r2, [r0, #0x1] + mov r1, #0xf + bic r2, r1 + mov r1, #0xf + and r1, r4 + orr r1, r2 + strb r1, [r0, #0x1] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02029520 +sub_02029520: ; 0x02029520 + push {r3, lr} + bl sub_020292BC + mov r1, #0xe + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_0202952C +sub_0202952C: ; 0x0202952C + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, [sp, #0x18] + add r5, r1, #0x0 + str r2, [sp, #0x0] + add r6, r3, #0x0 + bl sub_020292BC + add r4, r0, #0x0 + mov r0, #0xf + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0x10 + mov r2, #0x8 + bic r0, r1 + lsl r1, r5, #0x1f + lsr r1, r1, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0xc0 + bic r1, r0 + lsl r0, r6, #0x1e + lsr r0, r0, #0x18 + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl sub_020292D4 + add r1, r4, #0x0 + ldr r0, [sp, #0x0] + add r1, #0x22 + mov r2, #0xc + bl sub_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02029578 +sub_02029578: ; 0x02029578 + push {r3, lr} + bl sub_020292BC + mov r1, #0x10 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_02029584 +sub_02029584: ; 0x02029584 + push {r3, lr} + cmp r2, #0x4 + bhi _020295DA + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r0, r1, #0 + lsl r4, r2, #0 + lsl r0, r4, #0 + lsl r4, r5, #0 + lsl r0, r7, #0 + mov r2, #0x70 + mul r2, r3 + add r0, r0, r2 + bl sub_020295DC + pop {r3, pc} +_020295AC: + .byte 0x70, 0x22, 0x5A, 0x43 + .byte 0x80, 0x18, 0x00, 0xF0, 0x17, 0xF8, 0x08, 0xBD, 0x70, 0x22, 0x5A, 0x43, 0x80, 0x18, 0x00, 0xF0 + .byte 0x67, 0xF8, 0x08, 0xBD, 0x70, 0x22, 0x5A, 0x43, 0x80, 0x18, 0x00, 0xF0, 0x67, 0xF8, 0x08, 0xBD + .byte 0x70, 0x22, 0x5A, 0x43, 0x80, 0x18, 0x00, 0xF0, 0x67, 0xF8 +_020295DA: + pop {r3, pc} + + thumb_func_start sub_020295DC +sub_020295DC: ; 0x020295DC + ldr r0, [r0, #0x0] + str r0, [r1, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020295E4 +sub_020295E4: ; 0x020295E4 + push {r3-r7, lr} + mov r6, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r7, r6, #0x0 +_020295EE: + strb r7, [r4, #0x0] + strb r7, [r4, #0x1] + strb r7, [r4, #0x2] + strb r7, [r4, #0x3] + strb r7, [r4, #0x4] + strb r7, [r4, #0x5] + strb r7, [r4, #0x6] + strb r7, [r4, #0x7] + ldr r0, [r5, #0x4] + mov r1, #0x3f + and r1, r0 + cmp r1, #0x23 + bhi _02029682 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r5, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r1, #0x1 + lsl r6, r1, #0x1 + lsl r6, r1, #0x1 + lsl r6, r1, #0x1 + lsl r6, r2, #0x1 + lsl r6, r2, #0x1 + lsl r6, r2, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r3, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r4, r5, #0x1 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + add r1, r4, #0x0 + bl sub_02029730 + b _02029682 +_02029664: + .byte 0x21, 0x1C, 0x00, 0xF0, 0x67, 0xF8, 0x0A, 0xE0, 0x21, 0x1C, 0x00, 0xF0 + .byte 0x6F, 0xF8, 0x06, 0xE0, 0x21, 0x1C, 0x00, 0xF0, 0x71, 0xF8, 0x02, 0xE0, 0x21, 0x1C, 0x00, 0xF0 + .byte 0x73, 0xF8 +_02029682: + add r6, r6, #0x1 + add r4, #0x8 + add r5, r5, #0x4 + cmp r6, #0x4 + blo _020295EE + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02029690 +sub_02029690: ; 0x02029690 + ldrh r2, [r0, #0x14] + strh r2, [r1, #0x0] + ldrh r0, [r0, #0x16] + strh r0, [r1, #0x2] + bx lr + .balign 4 + + thumb_func_start sub_0202969C +sub_0202969C: ; 0x0202969C + ldrh r2, [r0, #0x18] + strh r2, [r1, #0x0] + ldrh r0, [r0, #0x1a] + strh r0, [r1, #0x2] + bx lr + .balign 4 + + thumb_func_start sub_020296A8 +sub_020296A8: ; 0x020296A8 + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r6, #0x0 + add r4, r1, #0x0 + mov r7, #0x0 + add r5, #0x1c +_020296B4: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x3a + blx sub_020DF4A4 + ldrb r0, [r6, #0x1c] + cmp r0, #0x10 + bhi _02029722 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r2, #0x1 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r2, r5, #0 + lsl r4, r6, #0 + lsl r6, r7, #0 + lsl r4, r6, #0 + lsl r6, r7, #0 + lsl r0, r4, #0 + lsl r6, r7, #0 + lsl r0, r1, #0x1 + lsl r6, r7, #0 + lsl r4, r6, #0 + lsl r6, r7, #0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02029774 + b _02029722 +_020296FC: + .byte 0x28, 0x1C, 0x21, 0x1C + .byte 0x00, 0xF0, 0x70, 0xF8, 0x0D, 0xE0, 0x28, 0x1C, 0x21, 0x1C, 0x00, 0xF0, 0x7D, 0xF8, 0x08, 0xE0 + .byte 0x28, 0x1C, 0x21, 0x1C, 0x00, 0xF0, 0xA4, 0xF8, 0x03, 0xE0, 0x28, 0x1C, 0x21, 0x1C, 0x00, 0xF0 + .byte 0xA3, 0xF8 +_02029722: + add r7, r7, #0x1 + add r4, #0x3a + add r6, #0x2a + add r5, #0x2a + cmp r7, #0x2 + blo _020296B4 + pop {r3-r7, pc} + + thumb_func_start sub_02029730 +sub_02029730: ; 0x02029730 + mov r2, #0x3f + and r0, r2 + strb r0, [r1, #0x0] + bx lr + + thumb_func_start sub_02029738 +sub_02029738: ; 0x02029738 + mov r2, #0x3f + and r2, r0 + strb r2, [r1, #0x0] + lsr r3, r0, #0x6 + ldr r2, _0202974C ; =0x000003FF + lsr r0, r0, #0x10 + and r2, r3 + strh r2, [r1, #0x4] + strh r0, [r1, #0x2] + bx lr + .balign 4 +_0202974C: .word 0x000003FF + + thumb_func_start sub_02029750 +sub_02029750: ; 0x02029750 + mov r2, #0x3f + and r2, r0 + strb r2, [r1, #0x0] + lsr r0, r0, #0x10 + strh r0, [r1, #0x2] + bx lr + + thumb_func_start sub_0202975C +sub_0202975C: ; 0x0202975C + mov r2, #0x3f + and r2, r0 + strb r2, [r1, #0x0] + lsr r0, r0, #0x10 + strh r0, [r1, #0x6] + bx lr + + thumb_func_start sub_02029768 +sub_02029768: ; 0x02029768 + mov r2, #0x3f + and r2, r0 + strb r2, [r1, #0x0] + lsr r0, r0, #0x10 + strh r0, [r1, #0x2] + bx lr + + thumb_func_start sub_02029774 +sub_02029774: ; 0x02029774 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0x0] + add r4, r1, #0x0 + mov r1, #0xf + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + bic r0, r1 + ldrb r1, [r5, #0x1] + asr r2, r1, #0x2 + mov r1, #0x1f + and r1, r2 + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + mov r1, #0xf + and r1, r2 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r0, [r4, #0x1] + mov r1, #0x10 + mov r2, #0x1 + bic r0, r1 + ldrb r1, [r5, #0x1] + asr r1, r1, #0x1 + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1f + lsr r1, r1, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r0, [r4, #0x1] + mov r1, #0x20 + bic r0, r1 + ldrb r1, [r5, #0x1] + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1f + lsr r1, r1, #0x1a + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r5, #0x2 + add r1, r4, #0x2 + mov r2, #0x8 + bl sub_020292D4 + add r5, #0x12 + add r4, #0x12 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x8 + bl sub_020292D4 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020297E4 +sub_020297E4: ; 0x020297E4 + ldrb r2, [r0, #0x0] + strb r2, [r1, #0x0] + ldrb r3, [r1, #0x1] + mov r2, #0x10 + bic r3, r2 + ldrb r2, [r0, #0x1] + add r0, r0, #0x2 + lsl r2, r2, #0x1f + lsr r2, r2, #0x1b + orr r2, r3 + strb r2, [r1, #0x1] + ldr r3, _02029804 ; =sub_020292D4 + add r1, r1, #0x2 + mov r2, #0x8 + bx r3 + nop +_02029804: .word sub_020292D4 + 1 + + thumb_func_start sub_02029808 +sub_02029808: ; 0x02029808 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0x0] + add r4, r1, #0x0 + mov r1, #0x10 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + bic r0, r1 + ldrb r1, [r5, #0x1] + asr r2, r1, #0x2 + mov r1, #0x1 + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1f + lsr r1, r1, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r0, [r4, #0x1] + mov r1, #0xc0 + ldrb r2, [r5, #0x1] + bic r0, r1 + mov r1, #0x3 + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1e + lsr r1, r1, #0x18 + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r5, #0x2 + add r1, r4, #0x2 + mov r2, #0x8 + bl sub_020292D4 + add r5, #0x12 + add r4, #0x22 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0xc + bl sub_020292D4 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02029860 +sub_02029860: ; 0x02029860 + ldrb r0, [r0, #0x0] + strb r0, [r1, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02029868 +sub_02029868: ; 0x02029868 + ldrb r2, [r0, #0x0] + strb r2, [r1, #0x0] + ldrb r3, [r1, #0x1] + mov r2, #0xf + bic r3, r2 + ldrb r2, [r0, #0x1] + mov r0, #0xf + and r0, r2 + orr r0, r3 + strb r0, [r1, #0x1] + bx lr + .balign 4 + + thumb_func_start sub_02029880 +sub_02029880: ; 0x02029880 + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + mov r0, #0x0 + add r4, r3, #0x0 + str r0, [sp, #0x4] + add r0, r4, #0x0 + str r1, [sp, #0x0] + add r5, r2, #0x0 + ldr r6, [sp, #0x20] + bl sub_02034930 + cmp r0, #0x1 + bne _020298BA + add r0, r5, #0x0 + bl sub_02034964 + cmp r0, #0x1 + bne _02029942 + add r0, r4, #0x0 + bl sub_02034824 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r6, #0x0 + bl sub_020290F8 + str r0, [sp, #0x4] + b _02029942 +_020298BA: + add r0, r4, #0x0 + bl sub_02034944 + cmp r0, #0x1 + bne _0202991A + add r0, r5, #0x0 + bl sub_02034964 + cmp r0, #0x1 + bne _02029942 + ldr r0, _02029958 ; =0x0000019E + cmp r4, r0 + bne _020298DE + add r0, r6, #0x0 + bl sub_02029030 + str r0, [sp, #0x4] + b _02029942 +_020298DE: + add r0, #0x8 + cmp r4, r0 + bne _020298EE + add r0, r6, #0x0 + bl sub_0202903C + str r0, [sp, #0x4] + b _02029942 +_020298EE: + add r0, r4, #0x0 + bl sub_02034824 + add r7, r0, #0x0 + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + ldr r5, _0202995C ; =0x020EE9A4 + mov r4, #0x0 + str r0, [sp, #0x8] +_02029900: + ldr r0, [r5, #0x0] + cmp r7, r0 + bne _02029910 + ldr r0, [sp, #0x8] + add r1, r6, #0x0 + bl sub_0202910C + str r0, [sp, #0x4] +_02029910: + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, #0x1b + blo _02029900 + b _02029942 +_0202991A: + add r0, r4, #0x0 + bl sub_02034964 + cmp r0, #0x1 + bne _02029942 + add r0, r5, #0x0 + bl sub_02034944 + cmp r0, #0x1 + bne _02029942 + add r0, r7, #0x0 + add r1, r5, #0x0 + bl sub_02029988 + cmp r0, #0xff + beq _02029942 + add r1, r6, #0x0 + bl sub_02029090 + str r0, [sp, #0x4] +_02029942: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _02029952 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + mov r2, #0x1 + bl sub_02028AD4 +_02029952: + add sp, #0xc + pop {r4-r7, pc} + nop +_02029958: .word 0x0000019E +_0202995C: .word 0x020EE9A4 + + thumb_func_start sub_02029960 +sub_02029960: ; 0x02029960 + ldr r3, _02029980 ; =0x020EE9A4 + mov r2, #0x0 +_02029964: + ldr r1, [r3, #0x0] + cmp r0, r1 + bne _02029972 + ldr r0, _02029984 ; =0x020EE9A8 + lsl r1, r2, #0x3 + ldr r0, [r0, r1] + bx lr +_02029972: + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, #0x1b + blo _02029964 + mov r0, #0x0 + bx lr + nop +_02029980: .word 0x020EE9A4 +_02029984: .word 0x020EE9A8 + + thumb_func_start sub_02029988 +sub_02029988: ; 0x02029988 + push {r3-r5, lr} + ldr r2, _020299B8 ; =0x020EE964 + mov r4, #0x0 +_0202998E: + lsl r3, r4, #0x3 + add r5, r2, r3 + ldrh r5, [r5, #0x4] + cmp r1, r5 + bne _020299A8 + ldr r1, _020299BC ; =0x020EE96A + ldrh r1, [r1, r3] + bl sub_020239D0 + cmp r0, #0x0 + bne _020299B2 + add r0, r4, #0x0 + pop {r3-r5, pc} +_020299A8: + add r3, r4, #0x1 + lsl r3, r3, #0x18 + lsr r4, r3, #0x18 + cmp r4, #0x8 + blo _0202998E +_020299B2: + mov r0, #0xff + pop {r3-r5, pc} + nop +_020299B8: .word 0x020EE964 +_020299BC: .word 0x020EE96A + + thumb_func_start sub_020299C0 +sub_020299C0: ; 0x020299C0 + push {r4, lr} + add r4, r0, #0x0 + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + add r1, r2, #0x0 + bl sub_020290E4 + add r1, r0, #0x0 + add r0, r4, #0x0 + mov r2, #0x1 + bl sub_02028AD4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020299DC +sub_020299DC: ; 0x020299DC + push {r3-r7, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r7, r1, #0x0 + add r6, r3, #0x0 + bl sub_02029A48 + cmp r0, #0x8 + bhs _02029A04 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020290A4 + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x1 + bl sub_02028AD4 + pop {r3-r7, pc} +_02029A04: + bne _02029A1A + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_020290BC + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x1 + bl sub_02028AD4 + pop {r3-r7, pc} +_02029A1A: + cmp r0, #0x9 + bne _02029A32 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_020290D0 + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x1 + bl sub_02028AD4 + pop {r3-r7, pc} +_02029A32: + add r0, r7, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0202928C + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x3 + bl sub_02028AD4 + pop {r3-r7, pc} + + thumb_func_start sub_02029A48 +sub_02029A48: ; 0x02029A48 + ldr r2, _02029A7C ; =0x020EE964 + mov r3, #0x0 +_02029A4C: + lsl r1, r3, #0x3 + ldr r1, [r2, r1] + cmp r0, r1 + bne _02029A58 + add r0, r3, #0x0 + bx lr +_02029A58: + add r1, r3, #0x1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0x8 + blo _02029A4C + ldr r1, _02029A80 ; =0x00000105 + sub r2, r0, r1 + cmp r2, #0x3 + bhi _02029A6E + mov r0, #0x8 + bx lr +_02029A6E: + add r1, r1, #0x6 + cmp r0, r1 + bne _02029A78 + mov r0, #0x9 + bx lr +_02029A78: + mov r0, #0xa + bx lr + .balign 4 +_02029A7C: .word 0x020EE964 +_02029A80: .word 0x00000105 + + thumb_func_start sub_02029A84 +sub_02029A84: ; 0x02029A84 + mov r0, #0x62 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_02029A8C +sub_02029A8C: ; 0x02029A8C + push {r4-r6, lr} + mov r2, #0x62 + add r4, r0, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x4 + blx sub_020DF4A4 + add r0, r4, #0x0 + bl sub_02029ACC + add r5, r0, #0x0 + mov r4, #0x0 + mov r6, #0x8c +_02029AA6: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02029AD8 + add r4, r4, #0x1 + cmp r4, #0x8 + blt _02029AA6 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02029ABC +sub_02029ABC: ; 0x02029ABC + ldr r3, _02029AC4 ; =sub_02022610 + mov r1, #0x13 + bx r3 + nop +_02029AC4: .word sub_02022610 + 1 + + thumb_func_start sub_02029AC8 +sub_02029AC8: ; 0x02029AC8 + add r0, #0x20 + bx lr + + thumb_func_start sub_02029ACC +sub_02029ACC: ; 0x02029ACC + bx lr + .balign 4 + + thumb_func_start sub_02029AD0 +sub_02029AD0: ; 0x02029AD0 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start sub_02029AD8 +sub_02029AD8: ; 0x02029AD8 + lsl r0, r0, #0x2 + str r1, [r2, r0] + bx lr + .balign 4 + + thumb_func_start sub_02029AE0 +sub_02029AE0: ; 0x02029AE0 + ldr r0, _02029AE4 ; =0x00000FF8 + bx lr + .balign 4 +_02029AE4: .word 0x00000FF8 + + thumb_func_start sub_02029AE8 +sub_02029AE8: ; 0x02029AE8 + ldr r3, _02029AF4 ; =sub_020CE1FC + add r1, r0, #0x0 + mov r0, #0x0 + ldr r2, _02029AF8 ; =0x00000FF8 + bx r3 + nop +_02029AF4: .word sub_020CE1FC +_02029AF8: .word 0x00000FF8 + + thumb_func_start sub_02029AFC +sub_02029AFC: ; 0x02029AFC + ldr r3, _02029B04 ; =sub_02022610 + mov r1, #0x1e + bx r3 + nop +_02029B04: .word sub_02022610 + 1 + + thumb_func_start sub_02029B08 +sub_02029B08: ; 0x02029B08 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r0, #0x1 + add r5, r1, #0x0 + lsl r0, r0, #0x8 + add r4, r2, #0x0 + cmp r5, r0 + blt _02029B1C + bl sub_02020C2C +_02029B1C: + cmp r4, #0x40 + blt _02029B24 + bl sub_02020C2C +_02029B24: + strb r5, [r6, #0x5] + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x3 + strb r4, [r6, #0x6] + bl sub_02029B90 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02029B38 +sub_02029B38: ; 0x02029B38 + ldrb r0, [r0, #0x5] + bx lr + + thumb_func_start sub_02029B3C +sub_02029B3C: ; 0x02029B3C + ldrb r0, [r0, #0x6] + bx lr + + thumb_func_start sub_02029B40 +sub_02029B40: ; 0x02029B40 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r0, #0x1 + add r5, r1, #0x0 + lsl r0, r0, #0x8 + add r4, r2, #0x0 + cmp r5, r0 + blt _02029B54 + bl sub_02020C2C +_02029B54: + cmp r4, #0x40 + blt _02029B5C + bl sub_02020C2C +_02029B5C: + cmp r5, #0x0 + bne _02029B64 + mov r0, #0x0 + pop {r4-r6, pc} +_02029B64: + asr r0, r4, #0x1 + lsr r0, r0, #0x1e + add r0, r4, r0 + asr r1, r0, #0x2 + sub r0, r5, #0x1 + lsl r0, r0, #0x4 + add r0, r1, r0 + add r0, r6, r0 + ldrb r3, [r0, #0x7] + lsr r2, r4, #0x1f + lsl r1, r4, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x1 + add r1, r3, #0x0 + asr r1, r0 + mov r0, #0x3 + and r0, r1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02029B90 +sub_02029B90: ; 0x02029B90 + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + str r3, [sp, #0x0] + cmp r3, #0x4 + blt _02029BA2 + bl sub_02020C2C +_02029BA2: + mov r0, #0x1 + lsl r0, r0, #0x8 + cmp r5, r0 + blt _02029BAE + bl sub_02020C2C +_02029BAE: + cmp r4, #0x40 + blt _02029BB6 + bl sub_02020C2C +_02029BB6: + cmp r5, #0x0 + beq _02029BFE + asr r0, r4, #0x1 + lsr r0, r0, #0x1e + add r0, r4, r0 + asr r2, r0, #0x2 + sub r0, r5, #0x1 + lsl r0, r0, #0x4 + add r0, r2, r0 + lsr r2, r4, #0x1f + lsl r4, r4, #0x1e + sub r4, r4, r2 + mov r3, #0x1e + ror r4, r3 + add r2, r2, r4 + lsl r6, r2, #0x1 + mov r2, #0x3 + add r3, r2, #0x0 + add r1, r7, #0x7 + ldrb r4, [r1, r0] + lsl r3, r6 + mov r2, #0xff + eor r2, r3 + and r2, r4 + ldr r3, [sp, #0x0] + strb r2, [r1, r0] + ldrb r2, [r1, r0] + lsl r3, r6 + orr r2, r3 + strb r2, [r1, r0] + cmp r5, #0x67 + beq _02029BFE + add r0, r7, #0x0 + mov r1, #0x1 + bl sub_02029C04 +_02029BFE: + pop {r3-r7, pc} + + thumb_func_start sub_02029C00 +sub_02029C00: ; 0x02029C00 + ldrb r0, [r0, #0x4] + bx lr + + thumb_func_start sub_02029C04 +sub_02029C04: ; 0x02029C04 + strb r1, [r0, #0x4] + bx lr + + thumb_func_start sub_02029C08 +sub_02029C08: ; 0x02029C08 + push {r3-r7, lr} + mov lr, r0 + mov r0, #0x3 + mov r7, #0x0 + mov r4, #0x2 + mov r6, #0xff + add r3, r0, #0x0 +_02029C16: + mov r1, lr + add r1, r1, r7 + ldrb r2, [r1, #0x7] + mov r12, r1 + mov r1, #0x0 +_02029C20: + add r5, r2, #0x0 + asr r5, r1 + and r5, r3 + cmp r5, #0x1 + bne _02029C40 + add r5, r0, #0x0 + lsl r5, r1 + eor r5, r6 + and r2, r5 + lsl r2, r2, #0x18 + lsr r5, r2, #0x18 + add r2, r4, #0x0 + lsl r2, r1 + orr r2, r5 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 +_02029C40: + add r1, r1, #0x2 + cmp r1, #0x8 + blt _02029C20 + mov r1, r12 + strb r2, [r1, #0x7] + mov r1, #0xff + add r7, r7, #0x1 + lsl r1, r1, #0x4 + cmp r7, r1 + blt _02029C16 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02029C58 +sub_02029C58: ; 0x02029C58 + mov r0, #0x17 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_02029C60 +sub_02029C60: ; 0x02029C60 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02029C58 + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x0 + blx sub_020CE34C + pop {r4, pc} + + thumb_func_start sub_02029C74 +sub_02029C74: ; 0x02029C74 + ldr r3, _02029C7C ; =sub_020CE3E0 + mov r2, #0x18 + bx r3 + nop +_02029C7C: .word sub_020CE3E0 + + thumb_func_start sub_02029C80 +sub_02029C80: ; 0x02029C80 + ldr r3, _02029C88 ; =sub_02022610 + mov r1, #0x15 + bx r3 + nop +_02029C88: .word sub_02022610 + 1 + + thumb_func_start sub_02029C8C +sub_02029C8C: ; 0x02029C8C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xc + blt _02029C9A + bl sub_02020C2C +_02029C9A: + mov r0, #0x18 + mul r0, r4 + add r0, r5, r0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02029CA4 +sub_02029CA4: ; 0x02029CA4 + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r6, #0xc + blt _02029CB4 + bl sub_02020C2C +_02029CB4: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02029C8C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02029C74 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02029CC8 +sub_02029CC8: ; 0x02029CC8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x8 + blt _02029CD6 + bl sub_02020C2C +_02029CD6: + lsl r0, r4, #0x1 + add r0, r4, r0 + add r0, r5, r0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02029CE0 +sub_02029CE0: ; 0x02029CE0 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02029CE4 +sub_02029CE4: ; 0x02029CE4 + ldrb r0, [r0, #0x1] + bx lr + + thumb_func_start sub_02029CE8 +sub_02029CE8: ; 0x02029CE8 + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start sub_02029CEC +sub_02029CEC: ; 0x02029CEC + mov r1, #0x12 + lsl r1, r1, #0x4 + add r0, r0, r1 + bx lr + + thumb_func_start sub_02029CF4 +sub_02029CF4: ; 0x02029CF4 + ldrb r0, [r0, r1] + bx lr + + thumb_func_start sub_02029CF8 +sub_02029CF8: ; 0x02029CF8 + mov r3, #0x0 + add r2, r1, #0x1 +_02029CFC: + ldrb r1, [r0, #0x0] + cmp r2, r1 + bne _02029D06 + mov r0, #0x1 + bx lr +_02029D06: + add r3, r3, #0x1 + add r0, r0, #0x3 + cmp r3, #0x8 + blt _02029CFC + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02029D14 +sub_02029D14: ; 0x02029D14 + push {r4-r7} + mov r6, #0x0 + add r4, r6, #0x0 + add r2, r1, #0x1 + add r3, r6, #0x0 +_02029D1E: + add r5, r3, #0x0 + add r7, r0, #0x0 +_02029D22: + ldrb r1, [r7, #0x0] + cmp r2, r1 + bne _02029D2A + add r6, r6, #0x1 +_02029D2A: + add r5, r5, #0x1 + add r7, r7, #0x3 + cmp r5, #0x8 + blt _02029D22 + add r4, r4, #0x1 + add r0, #0x18 + cmp r4, #0xc + blt _02029D1E + add r0, r6, #0x0 + pop {r4-r7} + bx lr + + thumb_func_start sub_02029D40 +sub_02029D40: ; 0x02029D40 + strb r2, [r0, r1] + bx lr + + thumb_func_start sub_02029D44 +sub_02029D44: ; 0x02029D44 + push {r4-r6, lr} + add r5, r1, #0x0 + sub r1, r5, #0x1 + add r6, r0, #0x0 + add r4, r2, #0x0 + bl sub_02029D14 + mov r1, #0x12 + lsl r1, r1, #0x4 + add r2, r6, r1 + sub r1, r5, #0x1 + ldrb r3, [r2, r1] + add r0, r0, r3 + cmp r4, #0x0 + bge _02029D6E + add r0, r4, r3 + bmi _02029D6A + strb r0, [r2, r1] + b _02029D7E +_02029D6A: + mov r0, #0x0 + pop {r4-r6, pc} +_02029D6E: + add r0, r0, r4 + cmp r0, #0x63 + bgt _02029D7A + add r0, r3, r4 + strb r0, [r2, r1] + b _02029D7E +_02029D7A: + mov r0, #0x0 + pop {r4-r6, pc} +_02029D7E: + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02029D84 +sub_02029D84: ; 0x02029D84 + push {r4-r6, lr} + add r5, r1, #0x0 + sub r1, r5, #0x1 + add r6, r0, #0x0 + add r4, r2, #0x0 + bl sub_02029D14 + cmp r4, #0x0 + bge _02029DAC + mov r0, #0x12 + lsl r0, r0, #0x4 + add r2, r6, r0 + sub r1, r5, #0x1 + ldrb r0, [r2, r1] + add r0, r4, r0 + bmi _02029DA8 + strb r0, [r2, r1] + b _02029DD0 +_02029DA8: + mov r0, #0x0 + pop {r4-r6, pc} +_02029DAC: + add r0, r0, r4 + cmp r0, #0x63 + bgt _02029DCC + mov r0, #0x12 + lsl r0, r0, #0x4 + add r2, r6, r0 + sub r1, r5, #0x1 + ldrb r0, [r2, r1] + add r0, r0, r4 + strb r0, [r2, r1] + ldrb r0, [r2, r1] + cmp r0, #0x63 + blo _02029DD0 + mov r0, #0x63 + strb r0, [r2, r1] + b _02029DD0 +_02029DCC: + mov r0, #0x0 + pop {r4-r6, pc} +_02029DD0: + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_02029DD4 +sub_02029DD4: ; 0x02029DD4 + push {r4-r6, lr} + add r5, r1, #0x0 + sub r1, r5, #0x1 + add r6, r0, #0x0 + add r4, r2, #0x0 + bl sub_02029D14 + sub r1, r5, #0x1 + add r2, r6, r1 + mov r1, #0x12 + lsl r1, r1, #0x4 + ldrb r1, [r2, r1] + add r0, r0, r1 + cmp r4, #0x0 + bge _02029DFE + add r0, r4, r1 + bmi _02029DFA + mov r0, #0x1 + pop {r4-r6, pc} +_02029DFA: + mov r0, #0x0 + pop {r4-r6, pc} +_02029DFE: + add r0, r0, r4 + cmp r0, #0x63 + bgt _02029E08 + mov r0, #0x1 + pop {r4-r6, pc} +_02029E08: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02029E0C +sub_02029E0C: ; 0x02029E0C + push {r4-r6, lr} + add r6, r0, #0x0 + mov r5, #0x0 + mov r4, #0x1 +_02029E14: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02029E2C + cmp r0, #0x0 + beq _02029E22 + add r5, r5, #0x1 +_02029E22: + add r4, r4, #0x1 + cmp r4, #0x51 + blt _02029E14 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02029E2C +sub_02029E2C: ; 0x02029E2C + push {r3-r5, lr} + add r5, r1, #0x0 + sub r1, r5, #0x1 + add r4, r0, #0x0 + bl sub_02029D14 + sub r1, r5, #0x1 + add r2, r4, r1 + mov r1, #0x12 + lsl r1, r1, #0x4 + ldrb r1, [r2, r1] + add r0, r0, r1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02029E48 +sub_02029E48: ; 0x02029E48 + mov r1, #0x0 + strh r1, [r0, #0x0] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + bx lr + .balign 4 + + thumb_func_start sub_02029E54 +sub_02029E54: ; 0x02029E54 + push {r3-r7, lr} + add r5, r0, #0x0 + ldrh r6, [r5, #0x0] + ldr r0, _02029EB8 ; =0x000003E7 + cmp r6, r0 + bne _02029E6C + ldrb r0, [r5, #0x2] + cmp r0, #0x3b + bne _02029E6C + ldrb r0, [r5, #0x3] + cmp r0, #0x3b + beq _02029EB4 +_02029E6C: + ldrb r0, [r5, #0x3] + ldrb r4, [r5, #0x2] + add r7, r0, r1 + cmp r7, #0x3b + bls _02029EAE + add r0, r7, #0x0 + mov r1, #0x3c + blx sub_020EBE8C + add r4, r4, r0 + add r0, r7, #0x0 + mov r1, #0x3c + blx sub_020EBE8C + add r7, r1, #0x0 + cmp r4, #0x3b + bls _02029EAE + add r0, r4, #0x0 + mov r1, #0x3c + blx sub_020EBE8C + add r6, r6, r0 + add r0, r4, #0x0 + mov r1, #0x3c + blx sub_020EBE8C + ldr r0, _02029EB8 ; =0x000003E7 + add r4, r1, #0x0 + cmp r6, r0 + blo _02029EAE + mov r4, #0x3b + add r6, r0, #0x0 + add r7, r4, #0x0 +_02029EAE: + strh r6, [r5, #0x0] + strb r4, [r5, #0x2] + strb r7, [r5, #0x3] +_02029EB4: + pop {r3-r7, pc} + nop +_02029EB8: .word 0x000003E7 + + thumb_func_start sub_02029EBC +sub_02029EBC: ; 0x02029EBC + ldrh r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02029EC0 +sub_02029EC0: ; 0x02029EC0 + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start sub_02029EC4 +sub_02029EC4: ; 0x02029EC4 + mov r0, #0xfb + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start sub_02029ECC +sub_02029ECC: ; 0x02029ECC + push {r4, lr} + add r4, r0, #0x0 + mov r2, #0xfb + mov r0, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + blx sub_020CE1FC + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02029EE4 +sub_02029EE4: ; 0x02029EE4 + push {r4, lr} + mov r1, #0xfb + lsl r1, r1, #0x2 + bl sub_02016998 + add r4, r0, #0x0 + bl sub_02029ECC + add r0, r4, #0x0 + pop {r4, pc} + + thumb_func_start sub_02029EF8 +sub_02029EF8: ; 0x02029EF8 + ldr r3, _02029F00 ; =sub_02022610 + mov r1, #0x16 + bx r3 + nop +_02029F00: .word sub_02022610 + 1 + + thumb_func_start sub_02029F04 +sub_02029F04: ; 0x02029F04 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02029F08 +sub_02029F08: ; 0x02029F08 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02029F10 +sub_02029F10: ; 0x02029F10 + add r0, r0, #0x4 + bx lr + + thumb_func_start sub_02029F14 +sub_02029F14: ; 0x02029F14 + push {r4-r7} + mov r5, #0x0 + mov r2, #0xfa + add r4, r5, #0x0 + mov r6, #0xf + lsl r2, r2, #0x2 +_02029F20: + ldrsb r7, [r1, r4] + add r3, r0, r5 + and r7, r6 + lsl r7, r7, #0x18 + lsr r7, r7, #0x18 + sub r7, #0x8 + lsl r7, r7, #0x18 + asr r7, r7, #0x14 + strb r7, [r0, r5] + ldrsb r7, [r1, r4] + add r4, r4, #0x1 + add r5, r5, #0x2 + lsl r7, r7, #0x14 + lsr r7, r7, #0x18 + sub r7, #0x8 + lsl r7, r7, #0x18 + asr r7, r7, #0x14 + strb r7, [r3, #0x1] + cmp r4, r2 + blt _02029F20 + pop {r4-r7} + bx lr + + thumb_func_start sub_02029F4C +sub_02029F4C: ; 0x02029F4C + push {r4-r7} + add r3, r0, #0x0 + add r2, r1, #0x0 + mov r0, #0x1 + mov r1, #0x0 + str r0, [r3, #0x0] + add r0, r1, #0x0 +_02029F5A: + ldrsb r4, [r2, r0] + add r6, r3, r1 + add r7, r2, r0 + asr r5, r4, #0x3 + lsr r5, r5, #0x1c + add r5, r4, r5 + lsl r4, r5, #0x14 + asr r4, r4, #0x18 + add r4, #0x8 + strb r4, [r6, #0x4] + mov r4, #0x4 + ldrsb r5, [r6, r4] + mov r4, #0x1 + ldrsb r4, [r7, r4] + add r0, r0, #0x2 + add r1, r1, #0x1 + asr r7, r4, #0x3 + lsr r7, r7, #0x1c + add r7, r4, r7 + lsl r4, r7, #0x14 + asr r4, r4, #0x18 + add r4, #0x8 + lsl r4, r4, #0x18 + lsr r4, r4, #0x14 + orr r4, r5 + strb r4, [r6, #0x4] + mov r4, #0x7d + lsl r4, r4, #0x4 + cmp r0, r4 + blt _02029F5A + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_02029F9C +sub_02029F9C: ; 0x02029F9C + add r2, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + mov r2, #0xfb + ldr r3, _02029FAC ; =sub_020CE28C + lsl r2, r2, #0x2 + bx r3 + nop +_02029FAC: .word sub_020CE28C + + thumb_func_start sub_02029FB0 +sub_02029FB0: ; 0x02029FB0 + mov r0, #0x53 + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start sub_02029FB8 +sub_02029FB8: ; 0x02029FB8 + ldr r3, _02029FC4 ; =sub_020CE1FC + mov r2, #0x53 + add r1, r0, #0x0 + mov r0, #0x0 + lsl r2, r2, #0x2 + bx r3 + .balign 4 +_02029FC4: .word sub_020CE1FC + + thumb_func_start sub_02029FC8 +sub_02029FC8: ; 0x02029FC8 + ldr r3, _02029FD0 ; =sub_02022610 + mov r1, #0x14 + bx r3 + nop +_02029FD0: .word sub_02022610 + 1 + + thumb_func_start sub_02029FD4 +sub_02029FD4: ; 0x02029FD4 + push {r3, lr} + cmp r1, #0x2c + bge _02029FE0 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + pop {r3, pc} +_02029FE0: + cmp r1, #0x79 + bge _02029FF0 + sub r1, #0x2c + lsl r1, r1, #0x1 + add r0, r0, r1 + add r0, #0xb0 + ldrh r0, [r0, #0x0] + pop {r3, pc} +_02029FF0: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02029FF8 +sub_02029FF8: ; 0x02029FF8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x2c + bge _0202A008 + lsl r0, r4, #0x2 + str r2, [r5, r0] + b _0202A01E +_0202A008: + cmp r4, #0x79 + bge _0202A01A + add r0, r4, #0x0 + sub r0, #0x2c + lsl r0, r0, #0x1 + add r0, r5, r0 + add r0, #0xb0 + strh r2, [r0, #0x0] + b _0202A01E +_0202A01A: + bl sub_02020C2C +_0202A01E: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02029FD4 + pop {r3-r5, pc} + + thumb_func_start sub_0202A028 +sub_0202A028: ; 0x0202A028 + push {r3, lr} + cmp r0, #0x2c + bge _0202A03E + ldr r1, _0202A05C ; =0x02105CD8 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202A03A + ldr r0, _0202A060 ; =0x3B9AC9FF + pop {r3, pc} +_0202A03A: + ldr r0, _0202A064 ; =0x000F423F + pop {r3, pc} +_0202A03E: + cmp r0, #0x79 + bge _0202A052 + ldr r1, _0202A05C ; =0x02105CD8 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202A04E + ldr r0, _0202A068 ; =0x0000FFFF + pop {r3, pc} +_0202A04E: + ldr r0, _0202A06C ; =0x0000270F + pop {r3, pc} +_0202A052: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + nop +_0202A05C: .word 0x02105CD8 +_0202A060: .word 0x3B9AC9FF +_0202A064: .word 0x000F423F +_0202A068: .word 0x0000FFFF +_0202A06C: .word 0x0000270F + + thumb_func_start sub_0202A070 +sub_0202A070: ; 0x0202A070 + lsl r1, r0, #0x1 + ldr r0, _0202A078 ; =0x020EEA7C + ldrh r0, [r0, r1] + bx lr + .balign 4 +_0202A078: .word 0x020EEA7C + + thumb_func_start sub_0202A07C +sub_0202A07C: ; 0x0202A07C + push {r4-r6, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r4, r2, #0x0 + bl sub_0202A028 + add r2, r0, #0x0 + cmp r4, r2 + bhs _0202A09C + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02029FF8 + pop {r4-r6, pc} +_0202A09C: + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_02029FF8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0202A0A8 +sub_0202A0A8: ; 0x0202A0A8 + push {r3-r7, lr} + add r6, r1, #0x0 + add r7, r0, #0x0 + add r0, r6, #0x0 + add r5, r2, #0x0 + bl sub_0202A028 + add r4, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + bl sub_02029FD4 + cmp r5, r4 + bls _0202A0C6 + add r5, r4, #0x0 +_0202A0C6: + cmp r0, r5 + bhs _0202A0D6 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_02029FF8 + pop {r3-r7, pc} +_0202A0D6: + cmp r0, r4 + bls _0202A0E4 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_02029FF8 +_0202A0E4: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202A0E8 +sub_0202A0E8: ; 0x0202A0E8 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0202A028 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02029FD4 + add r2, r0, #0x1 + cmp r2, r4 + bhs _0202A10E + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02029FF8 + pop {r4-r6, pc} +_0202A10E: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_02029FF8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0202A11C +sub_0202A11C: ; 0x0202A11C + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r7, r2, #0x0 + bl sub_0202A028 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02029FD4 + add r2, r0, r7 + cmp r2, r6 + bhs _0202A144 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02029FF8 + pop {r3-r7, pc} +_0202A144: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02029FF8 + pop {r3-r7, pc} + + thumb_func_start sub_0202A150 +sub_0202A150: ; 0x0202A150 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0202A028 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02029FD4 + cmp r0, r4 + bhi _0202A16C + add r4, r0, #0x0 +_0202A16C: + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0202A170 +sub_0202A170: ; 0x0202A170 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x26 + blt _0202A17E + bl sub_02020C2C +_0202A17E: + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0202A150 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0202A070 + ldr r2, _0202A1B4 ; =0x05F5E0FF + add r0, r6, r0 + cmp r0, r2 + bls _0202A1A0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0202A07C + pop {r4-r6, pc} +_0202A1A0: + add r0, r4, #0x0 + bl sub_0202A070 + add r2, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0202A11C + pop {r4-r6, pc} + nop +_0202A1B4: .word 0x05F5E0FF + + thumb_func_start sub_0202A1B8 +sub_0202A1B8: ; 0x0202A1B8 + ldr r3, _0202A1C0 ; =sub_0202A150 + mov r1, #0x0 + bx r3 + nop +_0202A1C0: .word sub_0202A150 + 1 + + thumb_func_start sub_0202A1C4 +sub_0202A1C4: ; 0x0202A1C4 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + bl sub_02024594 + cmp r0, #0x0 + bne _0202A1DC + add r0, r4, #0x0 + mov r1, #0x16 + bl sub_0202A170 +_0202A1DC: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202A1E0 +sub_0202A1E0: ; 0x0202A1E0 + mov r0, #0xe4 + bx lr + + thumb_func_start sub_0202A1E4 +sub_0202A1E4: ; 0x0202A1E4 + ldr r3, _0202A1EC ; =sub_020CE34C + mov r1, #0x0 + mov r2, #0x3c + bx r3 + .balign 4 +_0202A1EC: .word sub_020CE34C + + thumb_func_start sub_0202A1F0 +sub_0202A1F0: ; 0x0202A1F0 + push {r4, lr} + mov r2, #0x5a + mov r1, #0x0 + lsl r2, r2, #0x2 + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0x1 + strb r0, [r4, #0x3] + pop {r4, pc} + + thumb_func_start sub_0202A204 +sub_0202A204: ; 0x0202A204 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + bl sub_02013764 + add r0, r4, #0x0 + add r0, #0x8 + mov r1, #0x1 + bl sub_02013764 + add r0, r4, #0x0 + add r0, #0x10 + mov r1, #0x2 + bl sub_02013764 + add r4, #0x18 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_02013764 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202A230 +sub_0202A230: ; 0x0202A230 + ldr r3, _0202A238 ; =sub_020CE34C + mov r1, #0x0 + ldr r2, _0202A23C ; =0x00000B3C + bx r3 + .balign 4 +_0202A238: .word sub_020CE34C +_0202A23C: .word 0x00000B3C + + thumb_func_start sub_0202A240 +sub_0202A240: ; 0x0202A240 + push {r3, lr} + cmp r1, #0xa + bhi _0202A2BE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r2, #0 + lsl r4, r3, #0 + lsl r0, r4, #0 + lsl r4, r4, #0 + lsl r0, r5, #0 + lsl r4, r5, #0 + lsl r2, r7, #0 + lsl r0, r1, #0x1 + lsl r0, r2, #0x1 + lsl r6, r3, #0x1 + lsl r6, r4, #0x1 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1d + pop {r3, pc} +_0202A270: + .byte 0x80, 0x78, 0x08, 0xBD, 0xC0, 0x78, 0x08, 0xBD, 0x80, 0x88, 0x08, 0xBD, 0xC0, 0x88, 0x08, 0xBD + .byte 0x11, 0x1C, 0x08, 0x30, 0x04, 0x22, 0xA4, 0xF0, 0xAC, 0xE8, 0x00, 0x20, 0x08, 0xBD, 0x11, 0x1C + .byte 0x2C, 0x30, 0x10, 0x22, 0xA4, 0xF0, 0xA4, 0xE8, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x78, 0xC0, 0x07 + .byte 0xC0, 0x0F, 0x08, 0xBD, 0x11, 0x1C, 0x0C, 0x30, 0x1C, 0x22, 0xA4, 0xF0, 0x9A, 0xE8, 0x00, 0x20 + .byte 0x08, 0xBD, 0x00, 0x78, 0x00, 0x06, 0x40, 0x0F, 0x08, 0xBD, 0x80, 0x6A, 0x08, 0xBD +_0202A2BE: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202A2C4 +sub_0202A2C4: ; 0x0202A2C4 + push {r4, lr} + add r3, r0, #0x0 + cmp r1, #0xa + bhi _0202A36A + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r2, #0 + lsl r6, r4, #0 + lsl r4, r5, #0 + lsl r2, r6, #0 + lsl r0, r7, #0 + lsl r6, r7, #0 + lsl r4, r1, #0x1 + lsl r2, r3, #0x1 + lsl r4, r5, #0x1 + lsl r0, r0, #0x2 + lsl r2, r7, #0x1 + ldrb r1, [r3, #0x0] + mov r0, #0x1c + bic r1, r0 + ldrb r0, [r2, #0x0] + lsl r0, r0, #0x1d + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r3, #0x0] + pop {r4, pc} +_0202A300: + .byte 0x10, 0x78, 0x98, 0x70, 0x10, 0xBD, 0x10, 0x78, 0xD8, 0x70, 0x10, 0xBD, 0x10, 0x88, 0x98, 0x80 + .byte 0x10, 0xBD, 0x10, 0x88, 0xD8, 0x80, 0x10, 0xBD, 0x08, 0x33, 0x10, 0x1C, 0x19, 0x1C, 0x04, 0x22 + .byte 0xA4, 0xF0, 0x5E, 0xE8, 0x10, 0xBD, 0x2C, 0x33, 0x10, 0x1C, 0x19, 0x1C, 0x10, 0x22, 0xA4, 0xF0 + .byte 0x58, 0xE8, 0x10, 0xBD, 0x1C, 0x78, 0x11, 0x78, 0x01, 0x20, 0x84, 0x43, 0x01, 0x20, 0x08, 0x40 + .byte 0x20, 0x43, 0x18, 0x70, 0x10, 0xBD, 0x0C, 0x33, 0x10, 0x1C, 0x19, 0x1C, 0x1C, 0x22, 0xA4, 0xF0 + .byte 0x48, 0xE8, 0x10, 0xBD, 0x10, 0x68, 0x98, 0x62, 0x10, 0xBD, 0x19, 0x78, 0xE0, 0x20, 0x81, 0x43 + .byte 0x10, 0x78, 0x40, 0x07, 0x00, 0x0E, 0x08, 0x43, 0x18, 0x70 +_0202A36A: + pop {r4, pc} + + thumb_func_start sub_0202A36C +sub_0202A36C: ; 0x0202A36C + push {r3-r4} + ldrb r4, [r0, #0x3] + add r1, r4, r1 + cmp r1, #0xff + bge _0202A378 + strb r1, [r0, #0x3] +_0202A378: + ldrh r1, [r0, #0x4] + add r2, r1, r2 + ldr r1, _0202A394 ; =0x0000FFFF + cmp r2, r1 + bge _0202A384 + strh r2, [r0, #0x4] +_0202A384: + ldrh r1, [r0, #0x6] + add r2, r1, r3 + ldr r1, _0202A394 ; =0x0000FFFF + cmp r2, r1 + bge _0202A390 + strh r2, [r0, #0x6] +_0202A390: + pop {r3-r4} + bx lr + .balign 4 +_0202A394: .word 0x0000FFFF + + thumb_func_start sub_0202A398 +sub_0202A398: ; 0x0202A398 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + bx lr + + thumb_func_start sub_0202A3A0 +sub_0202A3A0: ; 0x0202A3A0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1f + ldrb r3, [r0, #0x0] + mov r2, #0x2 + lsr r1, r1, #0x1e + bic r3, r2 + orr r1, r3 + strb r1, [r0, #0x0] + bx lr + + thumb_func_start sub_0202A3B4 +sub_0202A3B4: ; 0x0202A3B4 + cmp r2, #0x6 + bhi _0202A402 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r4, r7, #0 + lsl r4, r1, #0 + lsl r4, r7, #0 + lsl r4, r7, #0 + lsl r4, r7, #0 + lsl r2, r3, #0 + lsl r4, r5, #0 + ldr r2, _0202A408 ; =0x0000270F + cmp r1, r2 + bls _0202A3DC + strh r2, [r0, #0x0] + b _0202A402 +_0202A3DC: + strh r1, [r0, #0x0] + b _0202A402 +_0202A3E0: + .byte 0x02, 0x88, 0x52, 0x18, 0x08, 0x49, 0x8A, 0x42, 0x01, 0xDD, 0x01, 0x80, 0x09, 0xE0, 0x02, 0x80 + .byte 0x07, 0xE0, 0x02, 0x88, 0x8A, 0x42, 0x02, 0xD2, 0x00, 0x21, 0x01, 0x80, 0x01, 0xE0, 0x51, 0x1A + .byte 0x01, 0x80 +_0202A402: + ldrh r0, [r0, #0x0] + bx lr + nop +_0202A408: .word 0x0000270F + + thumb_func_start sub_0202A40C +sub_0202A40C: ; 0x0202A40C + cmp r1, #0x2 + beq _0202A416 + cmp r1, #0x3 + beq _0202A424 + b _0202A440 +_0202A416: + mov r1, #0x0 + strb r1, [r0, #0x2] + ldrh r2, [r0, #0x8] + mov r1, #0x10 + bic r2, r1 + strh r2, [r0, #0x8] + b _0202A440 +_0202A424: + ldrh r1, [r0, #0x8] + lsl r1, r1, #0x1b + lsr r1, r1, #0x1f + beq _0202A434 + ldrb r1, [r0, #0x2] + add r1, r1, #0x1 + strb r1, [r0, #0x2] + b _0202A440 +_0202A434: + mov r1, #0x1 + strb r1, [r0, #0x2] + ldrh r2, [r0, #0x8] + mov r1, #0x10 + orr r1, r2 + strh r1, [r0, #0x8] +_0202A440: + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start sub_0202A444 +sub_0202A444: ; 0x0202A444 + cmp r1, #0x2 + beq _0202A452 + cmp r1, #0x3 + beq _0202A458 + cmp r1, #0x4 + beq _0202A464 + b _0202A46E +_0202A452: + mov r1, #0x1 + strb r1, [r0, #0x3] + b _0202A46E +_0202A458: + ldrb r1, [r0, #0x3] + cmp r1, #0xa + bhs _0202A46E + add r1, r1, #0x1 + strb r1, [r0, #0x3] + b _0202A46E +_0202A464: + ldrb r1, [r0, #0x3] + cmp r1, #0x1 + bls _0202A46E + sub r1, r1, #0x1 + strb r1, [r0, #0x3] +_0202A46E: + ldrb r0, [r0, #0x3] + bx lr + .balign 4 + + thumb_func_start sub_0202A474 +sub_0202A474: ; 0x0202A474 + push {r3, lr} + add r3, r0, #0x0 + cmp r1, #0x0 + bne _0202A48A + add r3, #0xc0 + add r0, r2, #0x0 + add r1, r3, #0x0 + mov r2, #0xa8 + blx sub_020CE3E0 + pop {r3, pc} +_0202A48A: + add r3, #0x18 + add r0, r2, #0x0 + add r1, r3, #0x0 + mov r2, #0xa8 + blx sub_020CE3E0 + pop {r3, pc} + + thumb_func_start sub_0202A498 +sub_0202A498: ; 0x0202A498 + push {r3, lr} + cmp r1, #0x0 + bne _0202A4AA + add r1, r2, #0x0 + add r0, #0xc0 + mov r2, #0xa8 + blx sub_020CE3E0 + pop {r3, pc} +_0202A4AA: + add r1, r2, #0x0 + add r0, #0x18 + mov r2, #0xa8 + blx sub_020CE3E0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202A4B8 +sub_0202A4B8: ; 0x0202A4B8 + push {r4-r6, lr} + add r6, r0, #0x0 + ldrb r0, [r1, #0x2] + mov r2, #0xfa + lsl r2, r2, #0x2 + sub r0, r0, #0x1 + add r3, r0, #0x0 + mul r3, r2 + lsl r0, r3, #0x10 + lsr r4, r0, #0x10 + ldrh r3, [r1, #0x4] + mov r0, #0xa + ldrb r5, [r1, #0x3] + mul r0, r3 + mov r3, #0x14 + mul r3, r5 + lsl r0, r0, #0x10 + lsl r3, r3, #0x10 + lsr r0, r0, #0x10 + lsr r3, r3, #0x10 + add r3, r0, r3 + add r0, r2, #0x0 + sub r0, #0x32 + cmp r3, r0 + ble _0202A4EE + mov r5, #0x0 + b _0202A4F6 +_0202A4EE: + sub r2, #0x32 + sub r0, r2, r3 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +_0202A4F6: + ldrh r1, [r1, #0x6] + ldr r0, _0202A51C ; =0x000003CA + cmp r1, r0 + bls _0202A502 + mov r1, #0x0 + b _0202A510 +_0202A502: + add r0, #0x1e + sub r0, r0, r1 + mov r1, #0x1e + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 +_0202A510: + add r0, r4, r5 + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + strh r0, [r6, #0x16] + pop {r4-r6, pc} + .balign 4 +_0202A51C: .word 0x000003CA + + thumb_func_start sub_0202A520 +sub_0202A520: ; 0x0202A520 + ldrh r0, [r0, #0x16] + bx lr + + thumb_func_start sub_0202A524 +sub_0202A524: ; 0x0202A524 + push {r3, lr} + ldrh r0, [r0, #0x16] + mov r1, #0xfa + lsl r1, r1, #0x2 + blx sub_020EBC80 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202A538 +sub_0202A538: ; 0x0202A538 + push {r4-r5} + cmp r1, #0x5 + bne _0202A544 + mov r0, #0x0 + pop {r4-r5} + bx lr +_0202A544: + cmp r2, #0x2 + beq _0202A54E + cmp r2, #0x3 + beq _0202A558 + b _0202A56A +_0202A54E: + lsl r2, r1, #0x1 + mov r3, #0x0 + add r2, r0, r2 + strh r3, [r2, #0xc] + b _0202A56A +_0202A558: + add r5, r0, #0x0 + add r5, #0xc + lsl r4, r1, #0x1 + ldrh r3, [r5, r4] + ldr r2, _0202A574 ; =0x0000FFFE + cmp r3, r2 + bhs _0202A56A + add r2, r3, #0x1 + strh r2, [r5, r4] +_0202A56A: + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, #0xc] + pop {r4-r5} + bx lr + .balign 4 +_0202A574: .word 0x0000FFFE + + thumb_func_start sub_0202A578 +sub_0202A578: ; 0x0202A578 + push {r3-r4} + mov r3, #0x1 + mov r4, #0x0 + cmp r1, #0x0 + bls _0202A590 +_0202A582: + add r4, r4, #0x1 + lsl r4, r4, #0x10 + lsl r3, r3, #0x11 + lsr r4, r4, #0x10 + lsr r3, r3, #0x10 + cmp r4, r1 + blo _0202A582 +_0202A590: + cmp r2, #0x0 + beq _0202A5B4 + cmp r2, #0x1 + beq _0202A5AC + cmp r2, #0x2 + bne _0202A5C2 + ldr r1, _0202A5C8 ; =0x0000FFFF + eor r1, r3 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + ldrh r1, [r0, #0x8] + and r1, r2 + strh r1, [r0, #0x8] + b _0202A5C2 +_0202A5AC: + ldrh r1, [r0, #0x8] + orr r1, r3 + strh r1, [r0, #0x8] + b _0202A5C2 +_0202A5B4: + ldrh r0, [r0, #0x8] + add r2, r0, #0x0 + asr r2, r1 + mov r0, #0x1 + and r0, r2 + pop {r3-r4} + bx lr +_0202A5C2: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 +_0202A5C8: .word 0x0000FFFF + + thumb_func_start sub_0202A5CC +sub_0202A5CC: ; 0x0202A5CC + str r1, [r0, #0x4] + bx lr + + thumb_func_start sub_0202A5D0 +sub_0202A5D0: ; 0x0202A5D0 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_0202A5D4 +sub_0202A5D4: ; 0x0202A5D4 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0x17 + add r4, r2, #0x0 + bl sub_02022610 + mov r1, #0x69 + lsl r1, r1, #0x2 + add r1, r0, r1 + lsl r0, r5, #0x3 + add r0, r1, r0 + add r1, r4, #0x0 + bl sub_02013960 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202A5F4 +sub_0202A5F4: ; 0x0202A5F4 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x17 + bl sub_02022610 + mov r1, #0x69 + lsl r1, r1, #0x2 + add r1, r0, r1 + lsl r0, r4, #0x3 + add r0, r1, r0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202A60C +sub_0202A60C: ; 0x0202A60C + push {r3-r6} + add r4, r3, #0x0 + mov r3, #0x1 + cmp r2, #0x0 + beq _0202A66C + cmp r2, #0xc8 + bhi _0202A66C + cmp r1, #0x0 + beq _0202A66C + cmp r1, #0xa + bhi _0202A66C + sub r5, r2, #0x1 + sub r2, r1, #0x1 + mov r1, #0xc8 + mul r1, r2 + add r1, r5, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsr r6, r1, #0x1f + lsl r5, r1, #0x1d + sub r5, r5, r6 + mov r2, #0x1d + ror r5, r2 + add r2, r6, r5 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsl r3, r2 + lsl r2, r3, #0x18 + lsl r1, r1, #0x15 + lsr r5, r2, #0x18 + add r3, r0, #0x4 + lsr r2, r1, #0x18 + ldrb r1, [r3, r2] + orr r1, r5 + strb r1, [r3, r2] + ldr r3, [r4, #0x0] + ldr r1, [r4, #0x8] + lsl r5, r3, #0x18 + ldr r3, [r4, #0x4] + lsl r1, r1, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #0x8 + ldr r2, [r4, #0xc] + lsr r1, r1, #0x10 + orr r3, r5 + orr r1, r3 + orr r1, r2 + str r1, [r0, #0x0] +_0202A66C: + pop {r3-r6} + bx lr + + thumb_func_start sub_0202A670 +sub_0202A670: ; 0x0202A670 + push {r4, lr} + add r4, r0, #0x0 + add r0, r4, #0x4 + mov r1, #0x0 + mov r2, #0xfa + blx sub_020CE34C + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x4 + blx sub_020CE34C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202A68C +sub_0202A68C: ; 0x0202A68C + ldr r3, [r0, #0x0] + ldr r2, [r1, #0x0] + cmp r3, r2 + bls _0202A698 + mov r0, #0x1 + bx lr +_0202A698: + ldr r3, [r0, #0x4] + ldr r2, [r1, #0x4] + cmp r3, r2 + bls _0202A6A4 + mov r0, #0x1 + bx lr +_0202A6A4: + ldr r2, [r0, #0x8] + ldr r0, [r1, #0x8] + cmp r2, r0 + bls _0202A6B0 + mov r0, #0x1 + bx lr +_0202A6B0: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0202A6B4 +sub_0202A6B4: ; 0x0202A6B4 + push {r3-r7, lr} + sub sp, #0x10 + add r6, r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r7, #0x1 + cmp r6, #0xc8 + bhi _0202A6C8 + cmp r4, #0xa + bls _0202A6CE +_0202A6C8: + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0202A6CE: + ldr r0, [r5, #0x0] + lsr r1, r0, #0x18 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x0] + lsr r1, r0, #0x10 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x4] + lsr r1, r0, #0x8 + lsl r1, r1, #0x18 + lsl r0, r0, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + str r1, [sp, #0x8] + str r0, [sp, #0xc] + add r0, r3, #0x0 + add r1, sp, #0x0 + bl sub_0202A68C + cmp r0, #0x0 + beq _0202A706 + add r0, r5, #0x0 + bl sub_0202A670 + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0202A706: + sub r1, r4, #0x1 + mov r0, #0xc8 + mul r0, r1 + sub r2, r6, #0x1 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsr r3, r0, #0x1f + lsl r2, r0, #0x1d + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + add r0, r5, r0 + sub r2, r2, r3 + mov r1, #0x1d + ror r2, r1 + add r1, r3, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r2, r7, #0x0 + lsl r2, r1 + lsl r1, r2, #0x18 + ldrb r0, [r0, #0x4] + lsr r1, r1, #0x18 + tst r0, r1 + beq _0202A73E + add sp, #0x10 + add r0, r7, #0x0 + pop {r3-r7, pc} +_0202A73E: + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start sub_0202A744 +sub_0202A744: ; 0x0202A744 + add r0, #0xfe + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0202A74C +sub_0202A74C: ; 0x0202A74C + add r0, #0xff + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0202A754 +sub_0202A754: ; 0x0202A754 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x41 + add r4, r2, #0x0 + lsl r1, r1, #0x2 + ldr r2, _0202A77C ; =0x0000063C + add r1, r5, r1 + add r6, r3, #0x0 + blx sub_020CE3E0 + ldr r0, _0202A780 ; =0x00000101 + strb r4, [r5, r0] + sub r0, r0, #0x1 + strb r6, [r5, r0] + mov r0, #0x1 + add r5, #0xfe + strb r0, [r5, #0x0] + pop {r4-r6, pc} + nop +_0202A77C: .word 0x0000063C +_0202A780: .word 0x00000101 + + thumb_func_start sub_0202A784 +sub_0202A784: ; 0x0202A784 + ldr r2, _0202A794 ; =0x00000101 + ldrb r3, [r0, r2] + sub r2, r2, #0x1 + strb r3, [r1, #0x0] + ldrb r0, [r0, r2] + strb r0, [r1, #0x1] + bx lr + nop +_0202A794: .word 0x00000101 + + thumb_func_start sub_0202A798 +sub_0202A798: ; 0x0202A798 + push {r3-r7, lr} + add r6, r1, #0x0 + mov r1, #0x41 + lsl r1, r1, #0x2 + add r5, r0, r1 + mov r0, #0xe4 + add r4, r2, #0x0 + mul r4, r0 + ldr r0, _0202A834 ; =0x00002710 + add r7, r6, #0x0 + str r0, [r6, #0x0] + add r0, r5, r4 + add r0, #0xc9 + ldrb r0, [r0, #0x0] + add r7, #0x30 + strh r0, [r6, #0x4] + add r0, r5, r4 + add r0, #0xc8 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _0202A7EE + mov r0, #0x0 + mov r1, #0x1a + mov r2, #0x11 + mov r3, #0xb + bl sub_0200A86C + add r1, r5, r4 + add r1, #0xc8 + ldrb r1, [r1, #0x0] + add r2, r6, #0x0 + str r0, [sp, #0x0] + lsl r1, r1, #0x1e + lsr r1, r1, #0x1f + add r1, #0x16 + add r2, #0x8 + bl sub_0200A968 + ldr r0, [sp, #0x0] + bl sub_0200A8B8 + b _0202A7FC +_0202A7EE: + add r0, r5, r4 + add r1, r6, #0x0 + add r0, #0xa8 + add r1, #0x8 + mov r2, #0x10 + blx sub_020CE3E0 +_0202A7FC: + add r0, r5, r4 + add r1, r6, #0x0 + add r0, #0xca + add r1, #0x18 + mov r2, #0x8 + blx sub_020CE3E0 + add r0, r5, r4 + add r1, r6, #0x0 + add r0, #0xd2 + add r1, #0x20 + mov r2, #0x8 + blx sub_020CE3E0 + add r0, r5, r4 + add r6, #0x28 + add r0, #0xda + add r1, r6, #0x0 + mov r2, #0x8 + blx sub_020CE3E0 + add r0, r5, r4 + add r1, r7, #0x0 + mov r2, #0xa8 + blx sub_020CE3E0 + pop {r3-r7, pc} + nop +_0202A834: .word 0x00002710 + + thumb_func_start sub_0202A838 +sub_0202A838: ; 0x0202A838 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x1d + add r4, r2, #0x0 + lsl r1, r1, #0x6 + mov r2, #0xff + add r1, r5, r1 + lsl r2, r2, #0x2 + add r6, r3, #0x0 + blx sub_020CE3E0 + ldr r0, _0202A860 ; =0x00000103 + strb r4, [r5, r0] + sub r0, r0, #0x1 + strb r6, [r5, r0] + mov r0, #0x1 + add r5, #0xff + strb r0, [r5, #0x0] + pop {r4-r6, pc} + .balign 4 +_0202A860: .word 0x00000103 + + thumb_func_start sub_0202A864 +sub_0202A864: ; 0x0202A864 + ldr r2, _0202A874 ; =0x00000103 + ldrb r3, [r0, r2] + sub r2, r2, #0x1 + strb r3, [r1, #0x0] + ldrb r0, [r0, r2] + strb r0, [r1, #0x1] + bx lr + nop +_0202A874: .word 0x00000103 + + thumb_func_start sub_0202A878 +sub_0202A878: ; 0x0202A878 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0xff + lsl r1, r1, #0x2 + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x1d + lsl r0, r0, #0x6 + mov r2, #0xff + add r0, r5, r0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + blx sub_020CE3E0 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0202A89C +sub_0202A89C: ; 0x0202A89C + mov r0, #0xd + lsl r0, r0, #0x8 + bx lr + .balign 4 + + thumb_func_start sub_0202A8A4 +sub_0202A8A4: ; 0x0202A8A4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0202A1E4 + add r0, r4, #0x0 + add r0, #0x3c + bl sub_0202A1F0 + mov r0, #0x69 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0202A204 + mov r0, #0x71 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0202A230 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202A8CC +sub_0202A8CC: ; 0x0202A8CC + ldr r3, _0202A8D4 ; =sub_02022610 + mov r1, #0x17 + bx r3 + nop +_0202A8D4: .word sub_02022610 + 1 + + thumb_func_start sub_0202A8D8 +sub_0202A8D8: ; 0x0202A8D8 + push {r3, lr} + mov r1, #0x17 + bl sub_02022610 + add r0, #0x3c + pop {r3, pc} + + thumb_func_start sub_0202A8E4 +sub_0202A8E4: ; 0x0202A8E4 + push {r3, lr} + mov r1, #0x17 + bl sub_02022610 + mov r1, #0x71 + lsl r1, r1, #0x2 + add r0, r0, r1 + pop {r3, pc} + + thumb_func_start sub_0202A8F4 +sub_0202A8F4: ; 0x0202A8F4 + mov r0, #0xe + bx lr + + thumb_func_start sub_0202A8F8 +sub_0202A8F8: ; 0x0202A8F8 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + strb r1, [r0, #0x4] + strb r1, [r0, #0x5] + strb r1, [r0, #0x6] + strb r1, [r0, #0x7] + strb r1, [r0, #0x8] + strb r1, [r0, #0x9] + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + strb r1, [r0, #0xc] + strb r1, [r0, #0xd] + bx lr + + thumb_func_start sub_0202A918 +sub_0202A918: ; 0x0202A918 + ldr r3, _0202A920 ; =sub_02022610 + mov r1, #0x18 + bx r3 + nop +_0202A920: .word sub_02022610 + 1 + + thumb_func_start sub_0202A924 +sub_0202A924: ; 0x0202A924 + mov r0, #0x45 + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start sub_0202A92C +sub_0202A92C: ; 0x0202A92C + push {r4, lr} + mov r2, #0x45 + add r4, r0, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x2 + blx sub_020DF4A4 + bl sub_0201BA60 + str r0, [r4, #0x0] + bl sub_0201BA60 + str r0, [r4, #0x4] + mov r1, #0x0 + add r3, r4, #0x0 + ldr r0, _0202A980 ; =0x0000FFFF + str r1, [r4, #0x8] + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + mov r0, #0x15 + add r3, #0x10 + strb r0, [r4, #0x10] + add r2, r1, #0x0 +_0202A95A: + str r2, [r3, #0x4] + strb r2, [r3, #0x8] + strb r2, [r3, #0x9] + strb r2, [r3, #0xa] + strb r2, [r3, #0xb] + add r1, r1, #0x1 + add r3, #0x8 + cmp r1, #0x15 + blt _0202A95A + ldr r0, _0202A984 ; =0x0000010F + strb r2, [r4, r0] + add r1, r0, #0x1 + strb r2, [r4, r1] + add r1, r0, #0x2 + strb r2, [r4, r1] + add r0, r0, #0x3 + strb r2, [r4, r0] + pop {r4, pc} + nop +_0202A980: .word 0x0000FFFF +_0202A984: .word 0x0000010F + + thumb_func_start sub_0202A988 +sub_0202A988: ; 0x0202A988 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start sub_0202A990 +sub_0202A990: ; 0x0202A990 + push {r3, lr} + cmp r1, #0x1 + beq _0202A99C + cmp r1, #0x2 + beq _0202A9A0 + b _0202A9A4 +_0202A99C: + ldr r0, [r0, #0x0] + pop {r3, pc} +_0202A9A0: + ldr r0, [r0, #0x4] + pop {r3, pc} +_0202A9A4: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0202A9AC +sub_0202A9AC: ; 0x0202A9AC + add r0, #0xbc + bx lr + + thumb_func_start sub_0202A9B0 +sub_0202A9B0: ; 0x0202A9B0 + ldr r3, _0202A9B8 ; =sub_02022610 + mov r1, #0x19 + bx r3 + nop +_0202A9B8: .word sub_02022610 + 1 + + thumb_func_start sub_0202A9BC +sub_0202A9BC: ; 0x0202A9BC + add r0, #0x10 + bx lr + + thumb_func_start sub_0202A9C0 +sub_0202A9C0: ; 0x0202A9C0 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start sub_0202A9C4 +sub_0202A9C4: ; 0x0202A9C4 + strb r0, [r1, #0x0] + bx lr + + thumb_func_start sub_0202A9C8 +sub_0202A9C8: ; 0x0202A9C8 + add r1, r1, #0x4 + lsl r0, r0, #0x3 + add r0, r1, r0 + bx lr + + thumb_func_start sub_0202A9D0 +sub_0202A9D0: ; 0x0202A9D0 + push {r3-r7, lr} + add r5, r1, #0x0 + bl sub_0202A9B0 + add r6, r0, #0x0 + mov r4, #0x0 + add r6, #0x10 + add r7, r4, #0x0 +_0202A9E0: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + add r1, r6, #0x0 + bl sub_0202A9C8 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202A9F8 + sub r1, r1, r5 + str r1, [r0, #0x0] + bpl _0202A9F8 + str r7, [r0, #0x0] +_0202A9F8: + add r4, r4, #0x1 + cmp r4, #0x15 + blt _0202A9E0 + pop {r3-r7, pc} + + thumb_func_start sub_0202AA00 +sub_0202AA00: ; 0x0202AA00 + push {r3, lr} + bl sub_0202A9B0 + ldr r1, _0202AA10 ; =0x0000010F + mov r2, #0x1 + strb r2, [r0, r1] + pop {r3, pc} + nop +_0202AA10: .word 0x0000010F + + thumb_func_start sub_0202AA14 +sub_0202AA14: ; 0x0202AA14 + ldr r1, _0202AA1C ; =0x0000010F + ldrb r0, [r0, r1] + bx lr + nop +_0202AA1C: .word 0x0000010F + + thumb_func_start sub_0202AA20 +sub_0202AA20: ; 0x0202AA20 + add r2, r0, #0x0 + add r2, #0xc8 + ldr r3, [r2, #0x0] + cmp r3, r1 + beq _0202AA34 + add r2, r0, #0x0 + add r2, #0xcc + str r3, [r2, #0x0] + add r0, #0xc8 + str r1, [r0, #0x0] +_0202AA34: + bx lr + .balign 4 + + thumb_func_start sub_0202AA38 +sub_0202AA38: ; 0x0202AA38 + add r0, #0xcc + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0202AA40 +sub_0202AA40: ; 0x0202AA40 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blo _0202AA4E + bl sub_02020C2C +_0202AA4E: + mov r0, #0x43 + add r1, r5, r4 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + pop {r3-r5, pc} + + thumb_func_start sub_0202AA58 +sub_0202AA58: ; 0x0202AA58 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x3 + blo _0202AA68 + bl sub_02020C2C +_0202AA68: + mov r0, #0x43 + add r1, r5, r4 + lsl r0, r0, #0x2 + strb r6, [r1, r0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0202AA74 +sub_0202AA74: ; 0x0202AA74 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blo _0202AA82 + bl sub_02020C2C +_0202AA82: + mov r0, #0x14 + mul r0, r4 + add r0, r5, r0 + add r0, #0xe2 + ldrb r0, [r0, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202AA90 +sub_0202AA90: ; 0x0202AA90 + ldr r2, [r0, #0x0] + mov r1, #0x14 + mov r0, #0x0 +_0202AA96: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0202AA96 + bx lr + + thumb_func_start sub_0202AAA0 +sub_0202AAA0: ; 0x0202AAA0 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blo _0202AAAE + bl sub_02020C2C +_0202AAAE: + mov r0, #0x14 + add r5, #0xd0 + mul r0, r4 + add r0, r5, r0 + pop {r3-r5, pc} + + thumb_func_start sub_0202AAB8 +sub_0202AAB8: ; 0x0202AAB8 + cmp r1, #0x8 + bhi _0202AAF8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r5, #0 + lsl r0, r2, #0 + lsl r4, r2, #0 + lsl r0, r3, #0 + lsl r4, r3, #0 + lsl r0, r4, #0 + lsl r4, r4, #0 + lsl r0, r5, #0 + lsl r4, r5, #0 + ldr r0, [r0, #0x0] + bx lr +_0202AADE: + .byte 0x40, 0x68 + .byte 0x70, 0x47, 0x80, 0x68, 0x70, 0x47, 0x80, 0x89, 0x70, 0x47, 0xC0, 0x89, 0x70, 0x47, 0x00, 0x7C + .byte 0x70, 0x47, 0x40, 0x7C, 0x70, 0x47, 0x80, 0x7C +_0202AAF8: + bx lr + .balign 4 + + thumb_func_start sub_0202AAFC +sub_0202AAFC: ; 0x0202AAFC + cmp r1, #0x8 + bhi _0202AB3C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r5, #0 + lsl r0, r2, #0 + lsl r4, r2, #0 + lsl r0, r3, #0 + lsl r4, r3, #0 + lsl r0, r4, #0 + lsl r4, r4, #0 + lsl r0, r5, #0 + lsl r4, r5, #0 + str r2, [r0, #0x0] + bx lr +_0202AB22: + .byte 0x42, 0x60, 0x70, 0x47, 0x82, 0x60, 0x70, 0x47, 0x82, 0x81, 0x70, 0x47, 0xC2, 0x81 + .byte 0x70, 0x47, 0x02, 0x74, 0x70, 0x47, 0x42, 0x74, 0x70, 0x47, 0x82, 0x74 +_0202AB3C: + bx lr + .balign 4 + + thumb_func_start sub_0202AB40 +sub_0202AB40: ; 0x0202AB40 + ldr r1, _0202AB48 ; =0x00000111 + add r0, r0, r1 + bx lr + nop +_0202AB48: .word 0x00000111 + + thumb_func_start sub_0202AB4C +sub_0202AB4C: ; 0x0202AB4C + mov r1, #0x11 + lsl r1, r1, #0x4 + add r0, r0, r1 + bx lr + + thumb_func_start sub_0202AB54 +sub_0202AB54: ; 0x0202AB54 + mov r1, #0x11 + lsl r1, r1, #0x4 + ldrb r0, [r0, r1] + cmp r0, #0x0 + bne _0202AB62 + mov r0, #0x1 + bx lr +_0202AB62: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0202AB68 +sub_0202AB68: ; 0x0202AB68 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x2 + bls _0202AB76 + bl sub_02020C2C +_0202AB76: + ldr r0, _0202AB7C ; =0x00000112 + strb r4, [r5, r0] + pop {r3-r5, pc} + .balign 4 +_0202AB7C: .word 0x00000112 + + thumb_func_start sub_0202AB80 +sub_0202AB80: ; 0x0202AB80 + ldr r1, _0202AB88 ; =0x00000112 + ldrb r0, [r0, r1] + bx lr + nop +_0202AB88: .word 0x00000112 + + thumb_func_start sub_0202AB8C +sub_0202AB8C: ; 0x0202AB8C + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_0202A9B0 + ldrh r1, [r0, #0xc] + strh r1, [r5, #0x0] + ldrh r0, [r0, #0xe] + strh r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0202ABA0 +sub_0202ABA0: ; 0x0202ABA0 + push {r3-r5, lr} + add r5, r1, #0x0 + bl sub_0202A9B0 + add r4, r0, #0x0 + cmp r5, #0x10 + blo _0202ABB2 + bl sub_02020C2C +_0202ABB2: + ldrh r0, [r4, #0xc] + strh r0, [r4, #0xe] + strh r5, [r4, #0xc] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202ABBC +sub_0202ABBC: ; 0x0202ABBC + ldr r3, _0202ABC4 ; =sub_02022610 + mov r1, #0x1a + bx r3 + nop +_0202ABC4: .word sub_02022610 + 1 + + thumb_func_start sub_0202ABC8 +sub_0202ABC8: ; 0x0202ABC8 + mov r0, #0xf4 + bx lr + + thumb_func_start sub_0202ABCC +sub_0202ABCC: ; 0x0202ABCC + ldr r3, _0202ABD8 ; =sub_020CE240 + add r1, r0, #0x0 + mov r0, #0x0 + mov r2, #0xf4 + bx r3 + nop +_0202ABD8: .word sub_020CE240 + + thumb_func_start sub_0202ABDC +sub_0202ABDC: ; 0x0202ABDC + add r0, #0xec + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0202ABE4 +sub_0202ABE4: ; 0x0202ABE4 + add r0, #0xec + strh r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0202ABEC +sub_0202ABEC: ; 0x0202ABEC + ldr r3, _0202ABF4 ; =sub_020CE28C + mov r2, #0xec + bx r3 + nop +_0202ABF4: .word sub_020CE28C + + thumb_func_start sub_0202ABF8 +sub_0202ABF8: ; 0x0202ABF8 + ldr r3, _0202AC04 ; =sub_020CE28C + add r2, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + mov r2, #0xec + bx r3 + .balign 4 +_0202AC04: .word sub_020CE28C + + thumb_func_start sub_0202AC08 +sub_0202AC08: ; 0x0202AC08 + add r0, #0xf0 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0202AC10 +sub_0202AC10: ; 0x0202AC10 + add r0, #0xf0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0202AC18 +sub_0202AC18: ; 0x0202AC18 + add r0, #0xee + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0202AC20 +sub_0202AC20: ; 0x0202AC20 + ldr r0, _0202AC24 ; =0x00001354 + bx lr + .balign 4 +_0202AC24: .word 0x00001354 + + thumb_func_start sub_0202AC28 +sub_0202AC28: ; 0x0202AC28 + bx lr + .balign 4 + + thumb_func_start sub_0202AC2C +sub_0202AC2C: ; 0x0202AC2C + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x8 + blt _0202AC3A + bl sub_02020C2C +_0202AC3A: + mov r0, #0x1 + lsl r0, r0, #0x8 + add r6, r5, r0 + lsl r3, r4, #0x2 + ldr r2, [r6, r3] + ldr r1, _0202AC60 ; =0xEDB88320 + cmp r2, r1 + bne _0202AC58 + add r0, #0x2c + add r1, r5, r0 + lsl r0, r4, #0x6 + add r0, r4, r0 + lsl r0, r0, #0x2 + add r0, r1, r0 + pop {r4-r6, pc} +_0202AC58: + mov r0, #0x0 + str r0, [r6, r3] + pop {r4-r6, pc} + nop +_0202AC60: .word 0xEDB88320 + + thumb_func_start sub_0202AC64 +sub_0202AC64: ; 0x0202AC64 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blt _0202AC72 + bl sub_02020C2C +_0202AC72: + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x12 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0202AC8E + ldr r0, _0202AC94 ; =0x0000094C + add r1, r5, r0 + mov r0, #0xd6 + lsl r0, r0, #0x2 + mul r0, r4 + add r0, r1, r0 + pop {r3-r5, pc} +_0202AC8E: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0202AC94: .word 0x0000094C + + thumb_func_start sub_0202AC98 +sub_0202AC98: ; 0x0202AC98 + push {r3-r7, lr} + add r5, r0, #0x0 + str r1, [sp, #0x0] + add r7, r2, #0x0 + bl sub_0202ADF0 + cmp r0, #0x0 + bne _0202ACAC + mov r0, #0x0 + pop {r3-r7, pc} +_0202ACAC: + mov r0, #0x1 + mov r4, #0x0 + add r2, r5, #0x0 + lsl r0, r0, #0x8 +_0202ACB4: + ldr r1, [r2, r0] + cmp r1, #0x0 + bne _0202ACF6 + lsl r0, r4, #0x6 + mov r2, #0x4b + add r0, r4, r0 + lsl r2, r2, #0x2 + lsl r6, r0, #0x2 + add r1, r5, r2 + ldr r0, [sp, #0x0] + add r1, r1, r6 + sub r2, #0x28 + blx sub_020CE3E0 + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x1 + ldr r2, _0202AD04 ; =0xEDB88320 + lsl r0, r0, #0x8 + str r2, [r1, r0] + add r0, #0x2e + add r1, r5, r0 + ldrh r0, [r1, r6] + mov r2, #0x3 + bic r0, r2 + lsl r2, r7, #0x10 + lsr r3, r2, #0x10 + mov r2, #0x3 + and r2, r3 + orr r0, r2 + strh r0, [r1, r6] + mov r0, #0x1 + pop {r3-r7, pc} +_0202ACF6: + add r4, r4, #0x1 + add r2, r2, #0x4 + cmp r4, #0x8 + blt _0202ACB4 + mov r0, #0x0 + pop {r3-r7, pc} + nop +_0202AD04: .word 0xEDB88320 + + thumb_func_start sub_0202AD08 +sub_0202AD08: ; 0x0202AD08 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl sub_0202AE0C + cmp r0, #0x0 + bne _0202AD1A + mov r0, #0x0 + pop {r4-r6, pc} +_0202AD1A: + ldr r0, _0202AD88 ; =0x00000152 + ldrb r0, [r6, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1f + cmp r0, #0x1 + bne _0202AD34 + add r0, r5, #0x0 + bl sub_0202ADF0 + cmp r0, #0x0 + bne _0202AD34 + mov r0, #0x0 + pop {r4-r6, pc} +_0202AD34: + mov r0, #0x12 + mov r4, #0x0 + add r2, r5, #0x0 + lsl r0, r0, #0x4 +_0202AD3C: + ldr r1, [r2, r0] + cmp r1, #0x0 + bne _0202AD7C + ldr r1, _0202AD8C ; =0x0000094C + mov r2, #0xd6 + add r3, r5, r1 + lsl r2, r2, #0x2 + add r1, r4, #0x0 + mul r1, r2 + add r0, r6, #0x0 + add r1, r3, r1 + blx sub_020CE3E0 + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x12 + ldr r2, _0202AD90 ; =0xEDB88320 + lsl r0, r0, #0x4 + str r2, [r1, r0] + add r0, #0x32 + ldrb r0, [r6, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1f + cmp r0, #0x1 + bne _0202AD78 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x1 + bl sub_0202AC98 +_0202AD78: + mov r0, #0x1 + pop {r4-r6, pc} +_0202AD7C: + add r4, r4, #0x1 + add r2, r2, #0x4 + cmp r4, #0x3 + blt _0202AD3C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_0202AD88: .word 0x00000152 +_0202AD8C: .word 0x0000094C +_0202AD90: .word 0xEDB88320 + + thumb_func_start sub_0202AD94 +sub_0202AD94: ; 0x0202AD94 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + sub r0, r4, #0x1 + cmp r0, #0x8 + blt _0202ADA4 + bl sub_02020C2C +_0202ADA4: + sub r4, r4, #0x1 + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x1 + mov r2, #0x0 + lsl r0, r0, #0x8 + str r2, [r1, r0] + add r0, #0x2e + add r3, r5, r0 + lsl r0, r4, #0x6 + add r0, r4, r0 + lsl r2, r0, #0x2 + ldrh r1, [r3, r2] + mov r0, #0x3 + bic r1, r0 + strh r1, [r3, r2] + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0202ADC8 +sub_0202ADC8: ; 0x0202ADC8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blt _0202ADD6 + bl sub_02020C2C +_0202ADD6: + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x12 + mov r2, #0x0 + lsl r0, r0, #0x4 + str r2, [r1, r0] + add r0, r5, #0x0 + add r1, r4, #0x1 + bl sub_0202AEC4 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202ADF0 +sub_0202ADF0: ; 0x0202ADF0 + mov r1, #0x1 + mov r3, #0x0 + lsl r1, r1, #0x8 +_0202ADF6: + ldr r2, [r0, r1] + cmp r2, #0x0 + bne _0202AE00 + mov r0, #0x1 + bx lr +_0202AE00: + add r3, r3, #0x1 + add r0, r0, #0x4 + cmp r3, #0x8 + blt _0202ADF6 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0202AE0C +sub_0202AE0C: ; 0x0202AE0C + mov r1, #0x12 + mov r3, #0x0 + lsl r1, r1, #0x4 +_0202AE12: + ldr r2, [r0, r1] + cmp r2, #0x0 + bne _0202AE1C + mov r0, #0x1 + bx lr +_0202AE1C: + add r3, r3, #0x1 + add r0, r0, #0x4 + cmp r3, #0x3 + blt _0202AE12 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0202AE28 +sub_0202AE28: ; 0x0202AE28 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x8 + blt _0202AE36 + bl sub_02020C2C +_0202AE36: + lsl r0, r5, #0x2 + add r1, r4, r0 + mov r0, #0x1 + lsl r0, r0, #0x8 + ldr r0, [r1, r0] + cmp r0, #0x0 + bne _0202AE48 + mov r0, #0x0 + pop {r3-r5, pc} +_0202AE48: + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0202AE4C +sub_0202AE4C: ; 0x0202AE4C + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x3 + blt _0202AE5A + bl sub_02020C2C +_0202AE5A: + lsl r0, r5, #0x2 + add r1, r4, r0 + mov r0, #0x12 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + bne _0202AE6C + mov r0, #0x0 + pop {r3-r5, pc} +_0202AE6C: + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0202AE70 +sub_0202AE70: ; 0x0202AE70 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_0202AE76: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0202AE4C + cmp r0, #0x1 + bne _0202AE86 + mov r0, #0x1 + pop {r3-r5, pc} +_0202AE86: + add r4, r4, #0x1 + cmp r4, #0x3 + blt _0202AE76 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0202AE90 +sub_0202AE90: ; 0x0202AE90 + push {r3-r4} + cmp r1, #0x0 + beq _0202AEB8 + ldr r2, _0202AEC0 ; =0x0000012E + mov r3, #0x0 + add r4, r0, r2 + add r0, r2, #0x0 + sub r0, #0x2a +_0202AEA0: + ldrh r2, [r4, #0x0] + lsl r2, r2, #0x1e + lsr r2, r2, #0x1e + cmp r1, r2 + bne _0202AEB0 + mov r0, #0x1 + pop {r3-r4} + bx lr +_0202AEB0: + add r3, r3, #0x1 + add r4, r4, r0 + cmp r3, #0x8 + blt _0202AEA0 +_0202AEB8: + mov r0, #0x0 + pop {r3-r4} + bx lr + nop +_0202AEC0: .word 0x0000012E + + thumb_func_start sub_0202AEC4 +sub_0202AEC4: ; 0x0202AEC4 + push {r3-r5, lr} + cmp r1, #0x0 + beq _0202AEEE + ldr r3, _0202AEF0 ; =0x0000012E + mov r4, #0x41 + mov r2, #0x0 + add r3, r0, r3 + lsl r4, r4, #0x2 +_0202AED4: + ldrh r5, [r3, #0x0] + lsl r5, r5, #0x1e + lsr r5, r5, #0x1e + cmp r1, r5 + bne _0202AEE6 + add r1, r2, #0x1 + bl sub_0202AD94 + pop {r3-r5, pc} +_0202AEE6: + add r2, r2, #0x1 + add r3, r3, r4 + cmp r2, #0x8 + blt _0202AED4 +_0202AEEE: + pop {r3-r5, pc} + .balign 4 +_0202AEF0: .word 0x0000012E + + thumb_func_start sub_0202AEF4 +sub_0202AEF4: ; 0x0202AEF4 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x2 + add r4, r1, #0x0 + lsl r0, r0, #0xa + cmp r4, r0 + blt _0202AF06 + bl sub_02020C2C +_0202AF06: + mov r0, #0x1 + mov r1, #0x7 + add r2, r4, #0x0 + and r2, r1 + add r1, r0, #0x0 + lsl r1, r2 + asr r2, r4, #0x2 + lsr r2, r2, #0x1d + add r2, r4, r2 + asr r2, r2, #0x3 + ldrb r2, [r5, r2] + tst r1, r2 + bne _0202AF22 + mov r0, #0x0 +_0202AF22: + pop {r3-r5, pc} + + thumb_func_start sub_0202AF24 +sub_0202AF24: ; 0x0202AF24 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x2 + add r4, r1, #0x0 + lsl r0, r0, #0xa + cmp r4, r0 + blt _0202AF36 + bl sub_02020C2C +_0202AF36: + asr r0, r4, #0x2 + lsr r0, r0, #0x1d + add r0, r4, r0 + asr r0, r0, #0x3 + mov r1, #0x7 + ldrb r3, [r5, r0] + mov r2, #0x1 + and r1, r4 + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strb r1, [r5, r0] + pop {r3-r5, pc} + + thumb_func_start sub_0202AF50 +sub_0202AF50: ; 0x0202AF50 + ldr r3, _0202AF58 ; =sub_0202AEF4 + ldr r1, _0202AF5C ; =0x000007FF + bx r3 + nop +_0202AF58: .word sub_0202AEF4 + 1 +_0202AF5C: .word 0x000007FF + + thumb_func_start sub_0202AF60 +sub_0202AF60: ; 0x0202AF60 + ldr r3, _0202AF68 ; =sub_0202AF24 + ldr r1, _0202AF6C ; =0x000007FF + bx r3 + nop +_0202AF68: .word sub_0202AF24 + 1 +_0202AF6C: .word 0x000007FF + + thumb_func_start sub_0202AF70 +sub_0202AF70: ; 0x0202AF70 + push {r3, lr} + ldr r1, _0202AF84 ; =0x021C59D4 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _0202AF82 + bl sub_0202251C + ldr r1, _0202AF84 ; =0x021C59D4 + str r0, [r1, #0x0] +_0202AF82: + pop {r3, pc} + .balign 4 +_0202AF84: .word 0x021C59D4 + + thumb_func_start sub_0202AF88 +sub_0202AF88: ; 0x0202AF88 + ldr r0, _0202AF98 ; =0x021C59D4 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202AF94 + mov r1, #0x0 + str r1, [r0, #0x0] +_0202AF94: + bx lr + nop +_0202AF98: .word 0x021C59D4 + + thumb_func_start sub_0202AF9C +sub_0202AF9C: ; 0x0202AF9C + push {r3-r5, lr} + ldr r4, _0202AFBC ; =0x021C59D4 + mov r5, #0x0 +_0202AFA2: + ldr r0, [r4, #0x0] + add r1, r5, #0x0 + bl sub_0202AE28 + cmp r0, #0x1 + bne _0202AFB2 + add r0, r5, #0x1 + pop {r3-r5, pc} +_0202AFB2: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0202AFA2 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0202AFBC: .word 0x021C59D4 + + thumb_func_start sub_0202AFC0 +sub_0202AFC0: ; 0x0202AFC0 + push {r4, lr} + add r4, r0, #0x0 + bne _0202AFCA + mov r0, #0x0 + pop {r4, pc} +_0202AFCA: + sub r0, r4, #0x1 + cmp r0, #0x8 + blt _0202AFD4 + bl sub_02020C2C +_0202AFD4: + ldr r0, _0202AFF8 ; =0x021C59D4 + sub r1, r4, #0x1 + ldr r0, [r0, #0x0] + bl sub_0202AE28 + cmp r0, #0x1 + bne _0202AFF4 + ldr r0, _0202AFF8 ; =0x021C59D4 + sub r1, r4, #0x1 + ldr r0, [r0, #0x0] + bl sub_0202AC2C + cmp r0, #0x0 + beq _0202AFF4 + ldrh r0, [r0, #0x0] + pop {r4, pc} +_0202AFF4: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0202AFF8: .word 0x021C59D4 + + thumb_func_start sub_0202AFFC +sub_0202AFFC: ; 0x0202AFFC + cmp r0, #0x0 + beq _0202B016 + ldr r1, _0202B01C ; =0x021C59D4 + ldr r2, [r1, #0x0] + mov r1, #0x13 + lsl r1, r1, #0x4 + add r2, r2, r1 + sub r1, r0, #0x1 + lsl r0, r1, #0x6 + add r0, r1, r0 + lsl r0, r0, #0x2 + add r0, r2, r0 + bx lr +_0202B016: + mov r0, #0x0 + bx lr + nop +_0202B01C: .word 0x021C59D4 + + thumb_func_start sub_0202B020 +sub_0202B020: ; 0x0202B020 + add r1, r0, #0x0 + ldr r0, _0202B02C ; =0x021C59D4 + ldr r3, _0202B030 ; =sub_0202AD94 + ldr r0, [r0, #0x0] + bx r3 + nop +_0202B02C: .word 0x021C59D4 +_0202B030: .word sub_0202AD94 + 1 + + thumb_func_start sub_0202B034 +sub_0202B034: ; 0x0202B034 + ldr r0, _0202B038 ; =0x00002AB0 + bx lr + .balign 4 +_0202B038: .word 0x00002AB0 + + thumb_func_start sub_0202B03C +sub_0202B03C: ; 0x0202B03C + ldr r3, _0202B048 ; =sub_020CE1FC + add r1, r0, #0x0 + mov r0, #0x0 + ldr r2, _0202B04C ; =0x00002AB0 + bx r3 + nop +_0202B048: .word sub_020CE1FC +_0202B04C: .word 0x00002AB0 + + thumb_func_start sub_0202B050 +sub_0202B050: ; 0x0202B050 + push {r3-r7, lr} + sub sp, #0x18 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + str r2, [sp, #0x8] + cmp r0, #0x0 + bne _0202B062 + bl sub_02020C2C +_0202B062: + ldr r1, _0202B1E0 ; =0x00002AA8 + ldr r0, [sp, #0x0] + ldr r0, [r0, r1] + cmp r0, #0x1e + blo _0202B070 + bl sub_02020C2C +_0202B070: + ldr r1, _0202B1E4 ; =0x00002AAC + ldr r0, [sp, #0x0] + ldr r2, [r0, r1] + ldr r0, _0202B1E8 ; =0x0000270F + cmp r2, r0 + blo _0202B07E + b _0202B1DC +_0202B07E: + ldr r0, [sp, #0x0] + sub r1, r1, #0x4 + ldr r1, [r0, r1] + mov r0, #0x5b + lsl r0, r0, #0x2 + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [sp, #0x0] + add r0, r0, r2 + str r0, [sp, #0x14] + ldr r0, [sp, #0x4] + bl sub_0206B9AC + str r0, [sp, #0x10] + mov r0, #0xb + mov r1, #0x0 + bl sub_020219F4 + mov r2, #0x5a + add r6, r0, #0x0 + ldr r1, [sp, #0x14] + mov r0, #0x0 + lsl r2, r2, #0x2 + blx sub_020CE1C8 + ldr r0, [sp, #0x10] + mov r7, #0x0 + cmp r0, #0x0 + ble _0202B18E + ldr r5, [sp, #0x14] +_0202B0BA: + ldr r0, [sp, #0x4] + add r1, r7, #0x0 + bl sub_0206B9B0 + add r4, r0, #0x0 + bl sub_020669D4 + str r0, [sp, #0xc] + add r0, r4, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _0202B17E + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x0] + add r0, r4, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + strb r0, [r5, #0x2] + add r0, r4, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + mov r1, #0x0 + strb r0, [r5, #0x3] + add r0, r4, #0x0 + add r2, r1, #0x0 + bl sub_020671BC + str r0, [r5, #0x4] + add r0, r4, #0x0 + mov r1, #0x7 + mov r2, #0x0 + bl sub_020671BC + str r0, [r5, #0x8] + add r0, r4, #0x0 + mov r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x32] + add r0, r4, #0x0 + mov r1, #0x37 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x34] + add r0, r4, #0x0 + mov r1, #0x38 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x36] + add r0, r4, #0x0 + mov r1, #0x39 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x38] + cmp r6, #0x0 + beq _0202B176 + add r0, r4, #0x0 + mov r1, #0x76 + add r2, r6, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r0, r6, #0x0 + add r1, #0xc + mov r2, #0xb + bl sub_02021EF0 + add r0, r4, #0x0 + mov r1, #0x90 + add r2, r6, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r0, r6, #0x0 + add r1, #0x22 + mov r2, #0x8 + bl sub_02021EF0 + b _0202B17C +_0202B176: + ldr r0, _0202B1EC ; =0x0000FFFF + strh r0, [r5, #0xc] + strh r0, [r5, #0x22] +_0202B17C: + add r5, #0x3c +_0202B17E: + ldr r1, [sp, #0xc] + add r0, r4, #0x0 + bl sub_02066A20 + ldr r0, [sp, #0x10] + add r7, r7, #0x1 + cmp r7, r0 + blt _0202B0BA +_0202B18E: + ldr r0, [sp, #0x8] + mov r1, #0x5a + ldr r2, [r0, #0x0] + ldr r0, [sp, #0x14] + lsl r1, r1, #0x2 + strh r2, [r0, r1] + ldr r0, [sp, #0x8] + add r2, r1, #0x2 + ldr r3, [r0, #0x4] + ldr r0, [sp, #0x14] + add r1, r1, #0x3 + strb r3, [r0, r2] + ldr r0, [sp, #0x8] + ldr r2, [r0, #0x8] + ldr r0, [sp, #0x14] + strb r2, [r0, r1] + ldr r1, _0202B1E0 ; =0x00002AA8 + ldr r0, [sp, #0x0] + ldr r0, [r0, r1] + add r2, r0, #0x1 + ldr r0, [sp, #0x0] + str r2, [r0, r1] + ldr r0, [r0, r1] + cmp r0, #0x1e + blo _0202B1C6 + ldr r0, [sp, #0x0] + mov r2, #0x0 + str r2, [r0, r1] +_0202B1C6: + ldr r1, _0202B1E4 ; =0x00002AAC + ldr r0, [sp, #0x0] + ldr r0, [r0, r1] + add r2, r0, #0x1 + ldr r0, [sp, #0x0] + cmp r6, #0x0 + str r2, [r0, r1] + beq _0202B1DC + add r0, r6, #0x0 + bl sub_02021A20 +_0202B1DC: + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_0202B1E0: .word 0x00002AA8 +_0202B1E4: .word 0x00002AAC +_0202B1E8: .word 0x0000270F +_0202B1EC: .word 0x0000FFFF + + thumb_func_start sub_0202B1F0 +sub_0202B1F0: ; 0x0202B1F0 + push {r4, lr} + add r4, r0, #0x0 + bne _0202B1FA + bl sub_02020C2C +_0202B1FA: + ldr r0, _0202B214 ; =0x00002AA8 + ldr r0, [r4, r0] + cmp r0, #0x1e + blo _0202B206 + bl sub_02020C2C +_0202B206: + ldr r0, _0202B218 ; =0x00002AAC + ldr r0, [r4, r0] + cmp r0, #0x1e + blo _0202B210 + mov r0, #0x1e +_0202B210: + pop {r4, pc} + nop +_0202B214: .word 0x00002AA8 +_0202B218: .word 0x00002AAC + + thumb_func_start sub_0202B21C +sub_0202B21C: ; 0x0202B21C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0202B22A + bl sub_02020C2C +_0202B22A: + ldr r0, _0202B248 ; =0x00002AA8 + ldr r0, [r5, r0] + cmp r0, #0x1e + blo _0202B236 + bl sub_02020C2C +_0202B236: + cmp r4, #0x1e + blt _0202B23E + bl sub_02020C2C +_0202B23E: + ldr r0, _0202B24C ; =0x00002AAC + ldr r0, [r5, r0] + sub r0, r0, r4 + pop {r3-r5, pc} + nop +_0202B248: .word 0x00002AA8 +_0202B24C: .word 0x00002AAC + + thumb_func_start sub_0202B250 +sub_0202B250: ; 0x0202B250 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0202B25E + bl sub_02020C2C +_0202B25E: + ldr r0, _0202B298 ; =0x00002AA8 + ldr r0, [r5, r0] + cmp r0, #0x1e + blo _0202B26A + bl sub_02020C2C +_0202B26A: + cmp r4, #0x1e + blt _0202B272 + bl sub_02020C2C +_0202B272: + ldr r0, _0202B298 ; =0x00002AA8 + ldr r0, [r5, r0] + sub r0, r0, #0x1 + sub r2, r0, r4 + bpl _0202B27E + add r2, #0x1e +_0202B27E: + mov r1, #0x5b + lsl r1, r1, #0x2 + mul r1, r2 + mov r0, #0x0 + add r2, r5, r1 +_0202B288: + ldrh r1, [r2, #0x0] + cmp r1, #0x0 + beq _0202B296 + add r0, r0, #0x1 + add r2, #0x3c + cmp r0, #0x6 + blo _0202B288 +_0202B296: + pop {r3-r5, pc} + .balign 4 +_0202B298: .word 0x00002AA8 + + thumb_func_start sub_0202B29C +sub_0202B29C: ; 0x0202B29C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + cmp r5, #0x0 + bne _0202B2AE + bl sub_02020C2C +_0202B2AE: + ldr r0, _0202B318 ; =0x00002AA8 + ldr r0, [r5, r0] + cmp r0, #0x1e + blo _0202B2BA + bl sub_02020C2C +_0202B2BA: + cmp r6, #0x1e + blt _0202B2C2 + bl sub_02020C2C +_0202B2C2: + ldr r0, _0202B318 ; =0x00002AA8 + ldr r0, [r5, r0] + sub r0, r0, #0x1 + sub r1, r0, r6 + bpl _0202B2CE + add r1, #0x1e +_0202B2CE: + mov r0, #0x5b + lsl r0, r0, #0x2 + mul r0, r1 + add r1, r5, r0 + mov r0, #0x3c + mul r0, r7 + add r5, r1, r0 + ldrh r0, [r1, r0] + add r1, r5, #0x0 + add r1, #0xc + strh r0, [r4, #0x10] + ldrb r0, [r5, #0x2] + strb r0, [r4, #0x12] + ldr r0, [r5, #0x4] + str r0, [r4, #0x8] + ldr r0, [r5, #0x8] + str r0, [r4, #0xc] + ldrb r0, [r5, #0x3] + strb r0, [r4, #0x13] + ldr r0, [r4, #0x0] + bl sub_02021E28 + add r1, r5, #0x0 + ldr r0, [r4, #0x4] + add r1, #0x22 + bl sub_02021E28 + mov r1, #0x0 +_0202B306: + ldrh r0, [r5, #0x32] + add r1, r1, #0x1 + add r5, r5, #0x2 + strh r0, [r4, #0x14] + add r4, r4, #0x2 + cmp r1, #0x4 + blt _0202B306 + pop {r3-r7, pc} + nop +_0202B318: .word 0x00002AA8 + + thumb_func_start sub_0202B31C +sub_0202B31C: ; 0x0202B31C + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + cmp r5, #0x0 + bne _0202B32C + bl sub_02020C2C +_0202B32C: + ldr r0, _0202B370 ; =0x00002AA8 + ldr r0, [r5, r0] + cmp r0, #0x1e + blo _0202B338 + bl sub_02020C2C +_0202B338: + cmp r6, #0x1e + blt _0202B340 + bl sub_02020C2C +_0202B340: + ldr r0, _0202B370 ; =0x00002AA8 + ldr r0, [r5, r0] + sub r0, r0, #0x1 + sub r2, r0, r6 + bpl _0202B34C + add r2, #0x1e +_0202B34C: + mov r0, #0x5b + lsl r0, r0, #0x2 + add r1, r2, #0x0 + mul r1, r0 + add r2, r5, r1 + sub r1, r0, #0x4 + ldrh r1, [r2, r1] + str r1, [r4, #0x0] + sub r1, r0, #0x2 + ldrb r1, [r2, r1] + sub r0, r0, #0x1 + str r1, [r4, #0x4] + ldrb r0, [r2, r0] + str r0, [r4, #0x8] + mov r0, #0x0 + str r0, [r4, #0xc] + pop {r4-r6, pc} + nop +_0202B370: .word 0x00002AA8 + + thumb_func_start sub_0202B374 +sub_0202B374: ; 0x0202B374 + ldr r0, _0202B378 ; =0x00000B88 + bx lr + .balign 4 +_0202B378: .word 0x00000B88 + + thumb_func_start sub_0202B37C +sub_0202B37C: ; 0x0202B37C + ldr r3, _0202B388 ; =sub_020CE240 + add r1, r0, #0x0 + mov r0, #0x0 + ldr r2, _0202B38C ; =0x00000B88 + bx r3 + nop +_0202B388: .word sub_020CE240 +_0202B38C: .word 0x00000B88 + + thumb_func_start sub_0202B390 +sub_0202B390: ; 0x0202B390 + push {r4, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + mov r0, #0x0 + add r1, #0xc + mov r2, #0xc0 + blx sub_020CE240 + add r1, r4, #0x0 + mov r0, #0x0 + add r1, #0xcc + mov r2, #0xc0 + blx sub_020CE240 + mov r1, #0x63 + lsl r1, r1, #0x2 + mov r0, #0x0 + add r1, r4, r1 + mov r2, #0xc0 + blx sub_020CE240 + add r0, r4, #0x0 + bl sub_0202B3F8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202B3C4 +sub_0202B3C4: ; 0x0202B3C4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, r1 + ble _0202B3D4 + sub r0, r0, r1 + str r0, [r4, #0x4] + pop {r4, pc} +_0202B3D4: + add r0, r2, #0x0 + mov r1, #0xf + blx sub_020EBC80 + mov r0, #0xf + sub r1, r0, r1 + str r1, [r4, #0x4] + bne _0202B3E6 + str r0, [r4, #0x4] +_0202B3E6: + mov r1, #0x0 + strb r1, [r4, #0x8] + add r0, r1, #0x0 +_0202B3EC: + strb r0, [r4, r1] + add r1, r1, #0x1 + cmp r1, #0x4 + blt _0202B3EC + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202B3F8 +sub_0202B3F8: ; 0x0202B3F8 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + bl sub_0202B40C + add r0, r4, #0x0 + bl sub_0202B430 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202B40C +sub_0202B40C: ; 0x0202B40C + strb r1, [r0, #0x8] + bx lr + + thumb_func_start sub_0202B410 +sub_0202B410: ; 0x0202B410 + ldrb r0, [r0, #0x8] + bx lr + + thumb_func_start sub_0202B414 +sub_0202B414: ; 0x0202B414 + push {r3, lr} + mov r3, #0x0 +_0202B418: + ldrb r2, [r0, r3] + cmp r2, #0x0 + bne _0202B422 + strb r1, [r0, r3] + pop {r3, pc} +_0202B422: + add r3, r3, #0x1 + cmp r3, #0x4 + blt _0202B418 + bl sub_02020C2C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202B430 +sub_0202B430: ; 0x0202B430 + mov r2, #0x0 + add r1, r2, #0x0 +_0202B434: + strb r1, [r0, r2] + add r2, r2, #0x1 + cmp r2, #0x4 + blt _0202B434 + bx lr + .balign 4 + + thumb_func_start sub_0202B440 +sub_0202B440: ; 0x0202B440 + mov r3, #0x0 +_0202B442: + ldrb r2, [r0, r3] + cmp r1, r2 + bne _0202B44C + mov r0, #0x1 + bx lr +_0202B44C: + add r3, r3, #0x1 + cmp r3, #0x4 + blt _0202B442 + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0202B458 +sub_0202B458: ; 0x0202B458 + mov r2, #0x0 + add r3, r2, #0x0 +_0202B45C: + ldrb r1, [r0, r2] + cmp r1, #0x0 + beq _0202B464 + add r3, r3, #0x1 +_0202B464: + add r2, r2, #0x1 + cmp r2, #0x4 + blt _0202B45C + add r0, r3, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0202B470 +sub_0202B470: ; 0x0202B470 + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r0, sp, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_020126B4 + ldr r0, [sp, #0x8] + ldr r3, [sp, #0x4] + lsl r0, r0, #0x18 + lsr r1, r0, #0x10 + ldr r0, [sp, #0x0] + lsl r3, r3, #0x18 + lsl r0, r0, #0x18 + lsr r3, r3, #0x8 + orr r0, r3 + ldr r2, [sp, #0xc] + orr r0, r1 + orr r0, r2 + str r0, [r5, #0x4] + strb r4, [r5, #0x0] + mov r0, #0x0 + strb r0, [r5, #0x1] + add r5, #0x8 + add r0, r6, #0x0 + add r1, r5, #0x0 + mov r2, #0x28 + blx sub_020CE28C + add sp, #0x10 + pop {r4-r6, pc} + + thumb_func_start sub_0202B4B0 +sub_0202B4B0: ; 0x0202B4B0 + push {r3-r5, lr} + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_0202B548 + mov r2, #0x0 + add r3, r0, #0x0 +_0202B4BE: + ldrb r1, [r3, #0x0] + cmp r5, r1 + bne _0202B4E0 + mov r1, #0x30 + mul r1, r2 + add r0, r0, r1 + ldrb r1, [r0, #0x1] + cmp r1, #0x3 + blo _0202B4DC + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0202B470 + mov r0, #0x1 + pop {r3-r5, pc} +_0202B4DC: + mov r0, #0x0 + pop {r3-r5, pc} +_0202B4E0: + add r2, r2, #0x1 + add r3, #0x30 + cmp r2, #0x4 + blt _0202B4BE + mov r1, #0x0 + add r3, r0, #0x0 +_0202B4EC: + ldrb r2, [r3, #0x0] + cmp r2, #0x0 + bne _0202B504 + mov r2, #0x30 + mul r2, r1 + add r0, r0, r2 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0202B470 + mov r0, #0x1 + pop {r3-r5, pc} +_0202B504: + add r1, r1, #0x1 + add r3, #0x30 + cmp r1, #0x4 + blt _0202B4EC + mov r1, #0x0 + add r3, r0, #0x0 +_0202B510: + ldrb r2, [r3, #0x1] + cmp r2, #0x3 + blo _0202B528 + mov r2, #0x30 + mul r2, r1 + add r0, r0, r2 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0202B470 + mov r0, #0x1 + pop {r3-r5, pc} +_0202B528: + add r1, r1, #0x1 + add r3, #0x30 + cmp r1, #0x4 + blt _0202B510 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0202B534 +sub_0202B534: ; 0x0202B534 + add r0, #0x8 + bx lr + + thumb_func_start sub_0202B538 +sub_0202B538: ; 0x0202B538 + ldrb r0, [r0, #0x6] + bx lr + + thumb_func_start sub_0202B53C +sub_0202B53C: ; 0x0202B53C + ldrb r0, [r0, #0x5] + bx lr + + thumb_func_start sub_0202B540 +sub_0202B540: ; 0x0202B540 + add r0, #0x18 + bx lr + + thumb_func_start sub_0202B544 +sub_0202B544: ; 0x0202B544 + bx lr + .balign 4 + + thumb_func_start sub_0202B548 +sub_0202B548: ; 0x0202B548 + push {r4, lr} + mov r4, #0x0 + cmp r1, #0x4 + bhi _0202B57E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r4, #0 + lsl r0, r1, #0 + lsl r0, r2, #0 + lsl r6, r2, #0 + lsl r4, r3, #0 + mov r1, #0x63 + lsl r1, r1, #0x2 + add r4, r0, r1 + b _0202B57E +_0202B56E: + .byte 0x04, 0x1C + .byte 0x0C, 0x34, 0x04, 0xE0, 0x04, 0x1C, 0xCC, 0x34, 0x01, 0xE0, 0xF5, 0xF7, 0x57, 0xFB +_0202B57E: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202B584 +sub_0202B584: ; 0x0202B584 + push {r4, lr} + mov r4, #0x0 + cmp r1, #0x4 + bhi _0202B5BA + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r4, #0 + lsl r6, r2, #0 + lsl r0, r1, #0 + lsl r0, r2, #0 + lsl r4, r3, #0 + mov r1, #0x93 + lsl r1, r1, #0x2 + add r4, r0, r1 + b _0202B5BA +_0202B5AA: + .byte 0x05, 0x49, 0x44, 0x18, 0x04, 0xE0 + .byte 0x04, 0x49, 0x44, 0x18, 0x01, 0xE0, 0xF5, 0xF7, 0x39, 0xFB +_0202B5BA: + add r0, r4, #0x0 + pop {r4, pc} + nop +_0202B5C0: + .byte 0xCC, 0x06, 0x00, 0x00, 0x0C, 0x09, 0x00, 0x00 + + thumb_func_start sub_0202B5C8 +sub_0202B5C8: ; 0x0202B5C8 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start sub_0202B5CC +sub_0202B5CC: ; 0x0202B5CC + ldrb r1, [r0, #0x1] + cmp r1, #0x3 + bhs _0202B5D6 + add r1, r1, #0x1 + strb r1, [r0, #0x1] +_0202B5D6: + bx lr + + thumb_func_start sub_0202B5D8 +sub_0202B5D8: ; 0x0202B5D8 + add r0, #0x8 + bx lr + + thumb_func_start sub_0202B5DC +sub_0202B5DC: ; 0x0202B5DC + push {r4-r7} + mov r5, #0x0 + add r4, r5, #0x0 + ldr r6, [sp, #0x10] + cmp r1, #0x0 + ble _0202B616 +_0202B5E8: + ldrb r7, [r0, #0x0] + cmp r2, r7 + bne _0202B60E + ldrb r7, [r0, #0x1] + cmp r3, #0x0 + beq _0202B600 + cmp r7, #0x0 + beq _0202B600 + add r7, r4, #0x1 + strb r7, [r6, r5] + add r5, r5, #0x1 + b _0202B60E +_0202B600: + cmp r3, #0x0 + bne _0202B60E + cmp r7, #0x0 + bne _0202B60E + add r7, r4, #0x1 + strb r7, [r6, r5] + add r5, r5, #0x1 +_0202B60E: + add r4, r4, #0x1 + add r0, #0x30 + cmp r4, r1 + blt _0202B5E8 +_0202B616: + add r0, r5, #0x0 + pop {r4-r7} + bx lr + + thumb_func_start sub_0202B61C +sub_0202B61C: ; 0x0202B61C + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + mov r5, #0x0 + add r0, r1, #0x0 + add r4, r5, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + str r3, [sp, #0x8] + ldr r7, [sp, #0x20] + cmp r0, #0x0 + ble _0202B672 +_0202B634: + ldrb r2, [r6, #0x18] + ldr r1, [sp, #0x4] + ldrb r0, [r6, #0x19] + cmp r1, r2 + bne _0202B668 + ldr r1, [sp, #0x8] + cmp r1, #0x0 + beq _0202B654 + cmp r0, #0x0 + beq _0202B654 + add r0, r4, #0x1 + bl sub_0202B830 + strb r0, [r7, r5] + add r5, r5, #0x1 + b _0202B668 +_0202B654: + ldr r1, [sp, #0x8] + cmp r1, #0x0 + bne _0202B668 + cmp r0, #0x0 + bne _0202B668 + add r0, r4, #0x1 + bl sub_0202B830 + strb r0, [r7, r5] + add r5, r5, #0x1 +_0202B668: + ldr r0, [sp, #0x0] + add r4, r4, #0x1 + add r6, #0x48 + cmp r4, r0 + blt _0202B634 +_0202B672: + add r0, r5, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0202B678 +sub_0202B678: ; 0x0202B678 + push {r3-r5, lr} + ldr r5, [sp, #0x10] + ldr r4, [sp, #0x14] + cmp r1, #0x4 + bhi _0202B702 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r6, #0x1 + lsl r2, r1, #0x1 + lsl r0, r1, #0 + lsl r2, r5, #0 + lsl r6, r5, #0x1 + cmp r3, #0x0 + str r4, [sp, #0x0] + beq _0202B6AA + add r0, #0xc + mov r1, #0x4 + add r3, r5, #0x0 + bl sub_0202B5DC + pop {r3-r5, pc} +_0202B6AA: + mov r1, #0x93 + lsl r1, r1, #0x2 + add r0, r0, r1 + mov r1, #0x10 + add r3, r5, #0x0 + bl sub_0202B61C + pop {r3-r5, pc} +_0202B6BA: + .byte 0x00, 0x2B, 0x00, 0x94, 0x05, 0xD0 + .byte 0xCC, 0x30, 0x04, 0x21, 0x2B, 0x1C, 0xFF, 0xF7, 0x89, 0xFF, 0x38, 0xBD, 0x0E, 0x49, 0x2B, 0x1C + .byte 0x40, 0x18, 0x08, 0x21, 0xFF, 0xF7, 0xA2, 0xFF, 0x38, 0xBD, 0x00, 0x2B, 0x00, 0x94, 0x07, 0xD0 + .byte 0x63, 0x21, 0x89, 0x00, 0x40, 0x18, 0x04, 0x21, 0x2B, 0x1C, 0xFF, 0xF7, 0x77, 0xFF, 0x38, 0xBD + .byte 0x06, 0x49, 0x2B, 0x1C, 0x40, 0x18, 0x08, 0x21, 0xFF, 0xF7, 0x90, 0xFF, 0x38, 0xBD, 0x00, 0x20 + .byte 0x38, 0xBD +_0202B702: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0202B708: + .byte 0xCC, 0x06, 0x00, 0x00, 0x0C, 0x09, 0x00, 0x00 + + thumb_func_start sub_0202B710 +sub_0202B710: ; 0x0202B710 + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r6, r1, #0x0 + add r5, r2, #0x0 + add r0, sp, #0x8 + mov r1, #0x0 + mov r2, #0x4 + blx sub_020CE34C + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + mov r3, #0x1 + bl sub_0202B678 + cmp r0, #0x0 + beq _0202B742 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0202B742: + mov r3, #0x1 + str r3, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_0202B678 + cmp r0, #0x0 + beq _0202B79E + add r0, sp, #0x8 + ldrb r0, [r0, #0x0] + mov r7, #0x0 + cmp r0, #0x0 + beq _0202B798 + add r5, sp, #0x8 +_0202B764: + ldrb r2, [r5, #0x0] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_0202B7C8 + ldrb r0, [r0, #0x1] + cmp r0, #0x3 + blo _0202B77A + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0202B77A: + add r7, r7, #0x1 + add r5, r5, #0x1 + cmp r7, #0x4 + bge _0202B786 + mov r1, #0x1 + b _0202B788 +_0202B786: + mov r1, #0x0 +_0202B788: + ldrb r0, [r5, #0x0] + cmp r0, #0x0 + beq _0202B792 + mov r0, #0x1 + b _0202B794 +_0202B792: + mov r0, #0x0 +_0202B794: + tst r0, r1 + bne _0202B764 +_0202B798: + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0202B79E: + mov r5, #0x1 +_0202B7A0: + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_0202B7C8 + ldrb r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202B7B6 + ldrb r0, [r0, #0x1] + cmp r0, #0x3 + blo _0202B7BC +_0202B7B6: + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0202B7BC: + add r5, r5, #0x1 + cmp r5, #0x4 + ble _0202B7A0 + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0202B7C8 +sub_0202B7C8: ; 0x0202B7C8 + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r6, r1, #0x0 + bl sub_0202B820 + cmp r0, #0x1 + beq _0202B7DE + bl sub_02020C2C +_0202B7DE: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0202B548 + mov r1, #0x80 + bic r4, r1 + sub r2, r4, #0x1 + mov r1, #0x30 + mul r1, r2 + add r0, r0, r1 + pop {r4-r6, pc} + + thumb_func_start sub_0202B7F4 +sub_0202B7F4: ; 0x0202B7F4 + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r6, r1, #0x0 + bl sub_0202B820 + cmp r0, #0x0 + beq _0202B80A + bl sub_02020C2C +_0202B80A: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0202B584 + mov r1, #0x80 + bic r4, r1 + sub r2, r4, #0x1 + mov r1, #0x48 + mul r1, r2 + add r0, r0, r1 + pop {r4-r6, pc} + + thumb_func_start sub_0202B820 +sub_0202B820: ; 0x0202B820 + mov r1, #0x80 + tst r0, r1 + bne _0202B82A + mov r0, #0x1 + bx lr +_0202B82A: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0202B830 +sub_0202B830: ; 0x0202B830 + mov r1, #0x80 + orr r0, r1 + bx lr + .balign 4 + + thumb_func_start sub_0202B838 +sub_0202B838: ; 0x0202B838 + ldr r1, _0202B840 ; =0x00000B4C + add r0, r0, r1 + bx lr + nop +_0202B840: .word 0x00000B4C + + thumb_func_start sub_0202B844 +sub_0202B844: ; 0x0202B844 + ldr r1, _0202B84C ; =0x00000B56 + add r0, r0, r1 + bx lr + nop +_0202B84C: .word 0x00000B56 + + thumb_func_start sub_0202B850 +sub_0202B850: ; 0x0202B850 + ldr r1, _0202B858 ; =0x00000B7A + add r0, r0, r1 + bx lr + nop +_0202B858: .word 0x00000B7A + + thumb_func_start sub_0202B85C +sub_0202B85C: ; 0x0202B85C + ldr r1, _0202B864 ; =0x00000B7C + add r0, r0, r1 + bx lr + nop +_0202B864: .word 0x00000B7C + + thumb_func_start sub_0202B868 +sub_0202B868: ; 0x0202B868 + mov r1, #0x2e + lsl r1, r1, #0x6 + add r0, r0, r1 + bx lr + + thumb_func_start sub_0202B870 +sub_0202B870: ; 0x0202B870 + lsl r1, r0, #0x1 + ldr r0, _0202B878 ; =0x020EEAC8 + ldrb r0, [r0, r1] + bx lr + .balign 4 +_0202B878: .word 0x020EEAC8 + + thumb_func_start sub_0202B87C +sub_0202B87C: ; 0x0202B87C + lsl r1, r0, #0x1 + ldr r0, _0202B884 ; =0x020EEAC9 + ldrb r0, [r0, r1] + bx lr + .balign 4 +_0202B884: .word 0x020EEAC9 + + thumb_func_start sub_0202B888 +sub_0202B888: ; 0x0202B888 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + ldr r3, _0202B898 ; =sub_0200232C + add r0, #0x8 + mov r1, #0x8 + bx r3 + nop +_0202B898: .word sub_0200232C + 1 + + thumb_func_start sub_0202B89C +sub_0202B89C: ; 0x0202B89C + push {r3, lr} + add r0, #0x8 + bl sub_02002288 + cmp r0, #0x0 + beq _0202B8AC + mov r0, #0x1 + pop {r3, pc} +_0202B8AC: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0202B8B0 +sub_0202B8B0: ; 0x0202B8B0 + mov r0, #0xea + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_0202B8B8 +sub_0202B8B8: ; 0x0202B8B8 + push {r3-r7, lr} + mov r2, #0xea + mov r1, #0x0 + lsl r2, r2, #0x4 + add r6, r0, #0x0 + blx sub_020CE34C + mov r7, #0x0 +_0202B8C8: + mov r4, #0x0 + add r5, r6, #0x0 +_0202B8CC: + add r0, r5, #0x0 + bl sub_0202B888 + add r4, r4, #0x1 + add r5, #0x18 + cmp r4, #0x6 + blt _0202B8CC + add r7, r7, #0x1 + add r6, #0x90 + cmp r7, #0x1a + blt _0202B8C8 + pop {r3-r7, pc} + + thumb_func_start sub_0202B8E4 +sub_0202B8E4: ; 0x0202B8E4 + ldr r3, _0202B8EC ; =sub_02022610 + mov r1, #0x1c + bx r3 + nop +_0202B8EC: .word sub_02022610 + 1 + + thumb_func_start sub_0202B8F0 +sub_0202B8F0: ; 0x0202B8F0 + push {r4-r6, lr} + cmp r2, #0x6 + blo _0202B8FE + blo _0202B930 + bl sub_02020C2C + pop {r4-r6, pc} +_0202B8FE: + mov r3, #0x90 + mul r3, r1 + add r3, r0, r3 + cmp r2, #0x5 + bge _0202B928 + mov r0, #0x18 + mul r0, r2 + add r6, r3, r0 +_0202B90E: + add r5, r6, #0x0 + add r5, #0x18 + add r4, r6, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + add r2, r2, #0x1 + add r6, #0x18 + stmia r4!, {r0-r1} + cmp r2, #0x5 + blt _0202B90E +_0202B928: + add r3, #0x78 + add r0, r3, #0x0 + bl sub_0202B888 +_0202B930: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0202B934 +sub_0202B934: ; 0x0202B934 + mov r0, #0x4e + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start sub_0202B93C +sub_0202B93C: ; 0x0202B93C + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + bl sub_02029FC8 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x34 + bl sub_020169D8 + str r0, [sp, #0x4] + add r5, r0, #0x0 + ldr r0, _0202B9E8 ; =0x020EEAD0 + mov r6, #0x0 + str r0, [sp, #0x0] +_0202B95A: + cmp r6, #0x5 + beq _0202B968 + cmp r6, #0xa + beq _0202B988 + cmp r6, #0xb + beq _0202B9A0 + b _0202B9C8 +_0202B968: + add r0, r4, #0x0 + mov r1, #0xf + bl sub_0202A150 + add r7, r0, #0x0 + beq _0202B984 + add r0, r4, #0x0 + mov r1, #0x1d + bl sub_0202A150 + add r1, r7, #0x0 + blx sub_020EBE8C + add r7, r0, #0x0 +_0202B984: + str r7, [r5, #0x0] + b _0202B9D4 +_0202B988: + add r0, r4, #0x0 + mov r1, #0x41 + bl sub_0202A150 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x42 + bl sub_0202A150 + add r0, r7, r0 + str r0, [r5, #0x0] + b _0202B9D4 +_0202B9A0: + add r0, r4, #0x0 + mov r1, #0x3f + bl sub_0202A150 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x40 + bl sub_0202A150 + add r1, r7, r0 + beq _0202B9C4 + ldr r0, [sp, #0x4] + ldr r2, [r0, #0x28] + mov r0, #0x64 + mul r0, r2 + blx sub_020EBE8C + add r1, r0, #0x0 +_0202B9C4: + str r1, [r5, #0x0] + b _0202B9D4 +_0202B9C8: + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + bl sub_0202A150 + str r0, [r5, #0x0] +_0202B9D4: + ldr r0, [sp, #0x0] + add r6, r6, #0x1 + add r0, r0, #0x4 + add r5, r5, #0x4 + str r0, [sp, #0x0] + cmp r6, #0xd + blt _0202B95A + ldr r0, [sp, #0x4] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0202B9E8: .word 0x020EEAD0 + + thumb_func_start sub_0202B9EC +sub_0202B9EC: ; 0x0202B9EC + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020238F4 + mov r1, #0x4e + add r6, r0, #0x0 + add r0, r4, #0x0 + lsl r1, r1, #0x2 + bl sub_020169D8 + mov r2, #0x4e + mov r1, #0x0 + lsl r2, r2, #0x2 + str r0, [sp, #0x4] + blx sub_020CE34C + add r0, r5, #0x0 + bl sub_0202881C + mov r1, #0x1 + bl sub_0202877C + str r0, [sp, #0x8] + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_020239A0 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0202B93C + ldr r4, [sp, #0x4] + str r0, [sp, #0x0] + mov r6, #0x0 + add r5, r0, #0x0 +_0202BA38: + ldr r0, [sp, #0x8] + add r1, r4, #0x0 + str r0, [r4, #0x0] + add r0, r7, #0x0 + add r1, #0x8 + mov r2, #0x8 + bl sub_02021EF0 + ldr r0, [r5, #0x0] + add r6, r6, #0x1 + str r0, [r4, #0x4] + add r4, #0x18 + add r5, r5, #0x4 + cmp r6, #0xd + blt _0202BA38 + ldr r0, [sp, #0x0] + bl sub_02016A18 + add r0, r7, #0x0 + bl sub_02021A20 + ldr r0, [sp, #0x4] + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0202BA68 +sub_0202BA68: ; 0x0202BA68 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_0202BA6E: + add r0, r5, #0x0 + bl sub_0202B888 + add r4, r4, #0x1 + add r5, #0x18 + cmp r4, #0x6 + blt _0202BA6E + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202BA80 +sub_0202BA80: ; 0x0202BA80 + push {r3, lr} + ldr r3, [r0, #0x0] + ldr r2, [r1, #0x0] + cmp r3, r2 + beq _0202BA8E + mov r0, #0x0 + pop {r3, pc} +_0202BA8E: + add r0, #0x8 + add r1, #0x8 + bl sub_020022A4 + cmp r0, #0x0 + bne _0202BA9E + mov r0, #0x1 + pop {r3, pc} +_0202BA9E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202BAA4 +sub_0202BAA4: ; 0x0202BAA4 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x4] + add r7, r1, #0x0 + mov r4, #0x0 + cmp r0, #0x0 + ble _0202BACE + add r5, r6, #0x0 +_0202BAB4: + ldr r0, [r5, #0xc] + add r1, r7, #0x0 + bl sub_0202BA80 + cmp r0, #0x0 + beq _0202BAC4 + mov r0, #0x1 + pop {r3-r7, pc} +_0202BAC4: + ldr r0, [r6, #0x4] + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r0 + blt _0202BAB4 +_0202BACE: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202BAD4 +sub_0202BAD4: ; 0x0202BAD4 + push {r4-r7, lr} + sub sp, #0xc + add r6, r1, #0x0 + add r5, r0, #0x0 + str r2, [sp, #0x0] + add r0, r6, #0x0 + mov r1, #0x0 + mov r2, #0xe0 + add r4, r3, #0x0 + blx sub_020CE34C + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + cmp r0, #0x0 + bne _0202BB64 + mov r2, #0x90 + add r0, r4, #0x0 + mul r0, r2 + add r1, r6, #0x0 + add r0, r5, r0 + add r1, #0x50 + str r0, [sp, #0x8] + blx sub_020CE3E0 + add r1, sp, #0x10 + ldrb r3, [r1, #0x18] + mov r0, #0x0 + cmp r3, #0x0 + ble _0202BB2E + mov r2, #0x18 + ldr r1, [sp, #0x24] + mul r2, r4 +_0202BB14: + ldr r5, [r6, #0x4] + add r0, r0, #0x1 + add r4, r5, #0x0 + add r4, r4, #0x1 + str r4, [r6, #0x4] + ldr r4, [r1, #0x0] + lsl r5, r5, #0x2 + add r4, r4, r2 + add r5, r6, r5 + str r4, [r5, #0xc] + add r1, r1, #0x4 + cmp r0, r3 + blt _0202BB14 +_0202BB2E: + add r4, r6, #0x0 + add r4, #0x50 + mov r7, #0x0 + add r5, r4, #0x0 +_0202BB36: + add r0, r4, #0x0 + bl sub_0202B89C + cmp r0, #0x0 + beq _0202BB58 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0202BAA4 + cmp r0, #0x0 + bne _0202BB58 + ldr r1, [r6, #0x0] + add r0, r1, #0x1 + str r0, [r6, #0x0] + lsl r0, r1, #0x2 + add r0, r6, r0 + str r4, [r0, #0x38] +_0202BB58: + add r7, r7, #0x1 + add r4, #0x18 + add r5, #0x18 + cmp r7, #0x6 + blt _0202BB36 + b _0202BBF8 +_0202BB64: + add r0, r4, #0x0 + add r0, #0xd + mov r2, #0x90 + add r1, r0, #0x0 + mul r1, r2 + add r0, r5, r1 + add r1, r6, #0x0 + add r1, #0x50 + str r0, [sp, #0x8] + blx sub_020CE3E0 + add r0, sp, #0x10 + ldrb r2, [r0, #0x18] + mov r3, #0x0 + cmp r2, #0x0 + ble _0202BBB2 + mov r1, #0x18 + ldr r0, [sp, #0x24] + mul r1, r4 +_0202BB8A: + ldr r4, [r0, #0x0] + ldr r5, [r1, r4] + cmp r5, #0x0 + beq _0202BBAA + ldr r4, [sp, #0x0] + cmp r4, r5 + bne _0202BBAA + ldr r5, [r6, #0x4] + add r4, r5, #0x0 + add r4, r4, #0x1 + str r4, [r6, #0x4] + ldr r4, [r0, #0x0] + lsl r5, r5, #0x2 + add r4, r4, r1 + add r5, r6, r5 + str r4, [r5, #0xc] +_0202BBAA: + add r3, r3, #0x1 + add r0, r0, #0x4 + cmp r3, r2 + blt _0202BB8A +_0202BBB2: + add r4, r6, #0x0 + mov r0, #0x0 + add r4, #0x50 + str r0, [sp, #0x4] + add r5, r6, #0x0 + add r7, r4, #0x0 +_0202BBBE: + add r0, r4, #0x0 + bl sub_0202B89C + cmp r0, #0x0 + beq _0202BBE8 + ldr r1, [r5, #0x50] + ldr r0, [sp, #0x0] + cmp r0, r1 + bne _0202BBE8 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_0202BAA4 + cmp r0, #0x0 + bne _0202BBE8 + ldr r1, [r6, #0x0] + add r0, r1, #0x1 + str r0, [r6, #0x0] + lsl r0, r1, #0x2 + add r0, r6, r0 + str r4, [r0, #0x38] +_0202BBE8: + ldr r0, [sp, #0x4] + add r4, #0x18 + add r0, r0, #0x1 + add r5, #0x18 + add r7, #0x18 + str r0, [sp, #0x4] + cmp r0, #0x6 + blt _0202BBBE +_0202BBF8: + ldr r1, [r6, #0x4] + ldr r0, [r6, #0x0] + mov r2, #0x0 + add r0, r1, r0 + str r0, [r6, #0x8] + ldr r0, [r6, #0x0] + cmp r0, #0x0 + ble _0202BC20 + add r1, r6, #0x0 +_0202BC0A: + ldr r3, [r6, #0x4] + ldr r0, [r1, #0x38] + add r3, r2, r3 + lsl r3, r3, #0x2 + add r3, r6, r3 + str r0, [r3, #0xc] + ldr r0, [r6, #0x0] + add r2, r2, #0x1 + add r1, r1, #0x4 + cmp r2, r0 + blt _0202BC0A +_0202BC20: + mov r0, #0x0 + mov r12, r0 + ldr r0, [r6, #0x8] + sub r5, r0, #0x1 + cmp r5, #0x0 + ble _0202BC64 + add r3, r6, #0x0 +_0202BC2E: + mov r0, r12 + cmp r5, r0 + ble _0202BC52 + lsl r0, r5, #0x2 + add r4, r6, r0 +_0202BC38: + ldr r2, [r4, #0xc] + ldr r7, [r3, #0xc] + ldr r0, [r2, #0x4] + ldr r1, [r7, #0x4] + cmp r1, r0 + bhs _0202BC48 + str r2, [r3, #0xc] + str r7, [r4, #0xc] +_0202BC48: + sub r5, r5, #0x1 + mov r0, r12 + sub r4, r4, #0x4 + cmp r5, r0 + bgt _0202BC38 +_0202BC52: + mov r0, r12 + add r0, r0, #0x1 + mov r12, r0 + ldr r0, [r6, #0x8] + add r3, r3, #0x4 + sub r5, r0, #0x1 + mov r0, r12 + cmp r0, r5 + blt _0202BC2E +_0202BC64: + ldr r0, [sp, #0x8] + bl sub_0202BA68 + mov r3, #0x0 + add r2, r6, #0x0 + b _0202BC8A +_0202BC70: + ldr r5, [r2, #0xc] + ldr r4, [sp, #0x8] + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [sp, #0x8] + add r2, r2, #0x4 + add r0, #0x18 + str r0, [sp, #0x8] + add r3, r3, #0x1 +_0202BC8A: + cmp r3, #0x6 + bge _0202BC94 + ldr r0, [r6, #0x8] + cmp r3, r0 + blt _0202BC70 +_0202BC94: + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0202BC98 +sub_0202BC98: ; 0x0202BC98 + push {r4-r7, lr} + sub sp, #0x14 + add r7, r0, #0x0 + add r5, r1, #0x0 + ldr r0, [sp, #0x2c] + mov r1, #0xe0 + str r2, [sp, #0x10] + add r4, r3, #0x0 + bl sub_020169D8 + add r6, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + str r4, [sp, #0x4] + add r0, sp, #0x18 + ldrb r0, [r0, #0x10] + add r1, r6, #0x0 + add r2, r5, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x2c] + str r0, [sp, #0xc] + ldr r3, [sp, #0x10] + add r0, r7, #0x0 + bl sub_0202BAD4 + cmp r5, #0x0 + beq _0202BCEA + mov r0, #0x1 + str r0, [sp, #0x0] + str r4, [sp, #0x4] + add r0, sp, #0x18 + ldrb r0, [r0, #0x10] + add r1, r6, #0x0 + add r2, r5, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x2c] + str r0, [sp, #0xc] + ldr r3, [sp, #0x10] + add r0, r7, #0x0 + bl sub_0202BAD4 +_0202BCEA: + add r0, r6, #0x0 + bl sub_02016A18 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_0202BCF4 +sub_0202BCF4: ; 0x0202BCF4 + push {r4-r7, lr} + sub sp, #0x24 + add r6, r1, #0x0 + ldr r1, [sp, #0x38] + add r4, r0, #0x0 + add r5, r2, #0x0 + add r7, r3, #0x0 + str r1, [sp, #0x38] + bl sub_0202B8E4 + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl sub_0202881C + mov r1, #0x1 + bl sub_0202877C + mov r4, #0x0 + add r3, r4, #0x0 + str r0, [sp, #0xc] + cmp r5, #0x0 + bls _0202BD44 +_0202BD20: + cmp r3, r6 + beq _0202BD3A + lsl r0, r3, #0x2 + ldr r2, [r7, r0] + cmp r2, #0x0 + beq _0202BD3A + add r1, r4, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + lsl r1, r0, #0x2 + add r0, sp, #0x10 + str r2, [r0, r1] +_0202BD3A: + add r0, r3, #0x1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, r5 + blo _0202BD20 +_0202BD44: + cmp r4, #0x0 + beq _0202BD68 + mov r5, #0x0 + add r6, sp, #0x10 +_0202BD4C: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + add r2, r5, #0x0 + add r3, r6, #0x0 + bl sub_0202BC98 + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0xd + blo _0202BD4C +_0202BD68: + add sp, #0x24 + pop {r4-r7, pc} + + thumb_func_start sub_0202BD6C +sub_0202BD6C: ; 0x0202BD6C + push {r3-r7, lr} + sub sp, #0x10 + str r2, [sp, #0x0] + add r4, r0, #0x0 + add r5, r1, #0x0 + bl sub_020238F4 + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + mov r1, #0x4c + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x4c + add r7, r0, #0x0 + blx sub_020CE34C + add r0, r4, #0x0 + bl sub_0202881C + mov r1, #0x1 + bl sub_0202877C + str r0, [sp, #0xc] + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + bl sub_0202B93C + str r0, [sp, #0x8] + add r0, r5, #0x0 + bl sub_0202B870 + str r0, [r7, #0x0] + add r0, r5, #0x0 + bl sub_0202B87C + ldr r1, [r7, #0x0] + mov r6, #0x0 + cmp r1, #0x0 + ble _0202BDE2 + lsl r1, r0, #0x2 + ldr r0, [sp, #0x8] + add r4, r7, #0x0 + add r5, r0, r1 +_0202BDC4: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x0] + str r0, [r4, #0x4] + ldr r0, [r5, #0x0] + str r0, [r4, #0x8] + ldr r0, [sp, #0x4] + bl sub_020239A0 + str r0, [r4, #0xc] + ldr r0, [r7, #0x0] + add r6, r6, #0x1 + add r4, #0xc + add r5, r5, #0x4 + cmp r6, r0 + blt _0202BDC4 +_0202BDE2: + ldr r0, [sp, #0x8] + bl sub_02016A18 + add r0, r7, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202BDF0 +sub_0202BDF0: ; 0x0202BDF0 + push {r3-r7, lr} + add r7, r2, #0x0 + add r5, r0, #0x0 + str r1, [sp, #0x0] + add r0, r7, #0x0 + mov r1, #0x4c + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x4c + add r4, r0, #0x0 + blx sub_020CE34C + ldr r0, [sp, #0x0] + mov r1, #0x90 + mul r1, r0 + mov r6, #0x0 + add r5, r5, r1 +_0202BE14: + add r0, r5, #0x0 + bl sub_0202B89C + cmp r0, #0x0 + beq _0202BE60 + ldr r2, [r4, #0x0] + mov r1, #0xc + mul r1, r2 + ldr r0, [r5, #0x0] + add r1, r4, r1 + str r0, [r1, #0x4] + ldr r2, [r4, #0x0] + mov r1, #0xc + mul r1, r2 + ldr r0, [r5, #0x4] + add r1, r4, r1 + str r0, [r1, #0x8] + mov r0, #0x8 + add r1, r7, #0x0 + bl sub_020219F4 + ldr r2, [r4, #0x0] + mov r1, #0xc + mul r1, r2 + add r1, r4, r1 + str r0, [r1, #0xc] + ldr r1, [r4, #0x0] + mov r0, #0xc + mul r0, r1 + add r0, r4, r0 + add r1, r5, #0x0 + ldr r0, [r0, #0xc] + add r1, #0x8 + bl sub_02021E28 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] +_0202BE60: + add r6, r6, #0x1 + add r5, #0x18 + cmp r6, #0x6 + blt _0202BE14 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0202BE6C +sub_0202BE6C: ; 0x0202BE6C + push {r4-r6, lr} + add r6, r0, #0x0 + mov r4, #0x0 + add r5, r6, #0x0 +_0202BE74: + ldr r0, [r5, #0xc] + cmp r0, #0x0 + beq _0202BE7E + bl sub_02021A20 +_0202BE7E: + add r4, r4, #0x1 + add r5, #0xc + cmp r4, #0x6 + blt _0202BE74 + add r0, r6, #0x0 + mov r1, #0x0 + mov r2, #0x4c + blx sub_020CE34C + add r0, r6, #0x0 + bl sub_02016A18 + pop {r4-r6, pc} + + thumb_func_start sub_0202BE98 +sub_0202BE98: ; 0x0202BE98 + ldr r0, _0202BE9C ; =0x00000688 + bx lr + .balign 4 +_0202BE9C: .word 0x00000688 + + thumb_func_start sub_0202BEA0 +sub_0202BEA0: ; 0x0202BEA0 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r2, _0202BED8 ; =0x00000688 + mov r0, #0x0 + add r1, r5, #0x0 + blx sub_020CE240 + mov r4, #0x0 + mov r6, #0xab + add r7, r4, #0x0 +_0202BEB4: + add r0, r5, #0x0 + bl sub_02066978 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _0202BECC + bl sub_02020C2C +_0202BECC: + add r4, r4, #0x1 + add r5, #0xec + cmp r4, #0x6 + blt _0202BEB4 + pop {r3-r7, pc} + nop +_0202BED8: .word 0x00000688 + + thumb_func_start sub_0202BEDC +sub_0202BEDC: ; 0x0202BEDC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r2, _0202BF14 ; =0x00000588 + mov r0, #0x0 + add r1, r5, #0x0 + blx sub_020CE240 + mov r4, #0x0 + mov r6, #0xab + add r7, r4, #0x0 +_0202BEF0: + add r0, r5, #0x0 + bl sub_02066978 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _0202BF08 + bl sub_02020C2C +_0202BF08: + add r4, r4, #0x1 + add r5, #0xec + cmp r4, #0x6 + blt _0202BEF0 + pop {r3-r7, pc} + nop +_0202BF14: .word 0x00000588 + + thumb_func_start sub_0202BF18 +sub_0202BF18: ; 0x0202BF18 + push {r4-r7} + add r2, r0, #0x0 + ldr r3, _0202BF70 ; =0x00000588 + mov r0, #0x0 + add r5, r2, #0x0 +_0202BF22: + ldr r4, [r5, r3] + cmp r1, r4 + beq _0202BF6C + add r0, r0, #0x1 + add r5, r5, #0x4 + cmp r0, #0x14 + blt _0202BF22 + ldr r1, _0202BF70 ; =0x00000588 + mov r0, #0x0 + add r4, r2, #0x0 +_0202BF36: + ldr r3, [r4, r1] + cmp r3, #0x0 + beq _0202BF6C + add r0, r0, #0x1 + add r4, r4, #0x4 + cmp r0, #0x14 + blt _0202BF36 + mov r3, #0x0 + ldr r4, _0202BF74 ; =0x7FFFFFFF + add r5, r3, #0x0 +_0202BF4A: + ldr r0, _0202BF78 ; =0x000005D8 + ldr r1, [r2, r0] + add r0, r0, #0x4 + ldr r0, [r2, r0] + sub r6, r1, r4 + mov r12, r0 + mov r6, r12 + sbc r6, r3 + bge _0202BF62 + add r4, r1, #0x0 + add r3, r0, #0x0 + add r7, r5, #0x0 +_0202BF62: + add r5, r5, #0x1 + add r2, #0x8 + cmp r5, #0x14 + blt _0202BF4A + add r0, r7, #0x0 +_0202BF6C: + pop {r4-r7} + bx lr + .balign 4 +_0202BF70: .word 0x00000588 +_0202BF74: .word 0x7FFFFFFF +_0202BF78: .word 0x000005D8 + + thumb_func_start sub_0202BF7C +sub_0202BF7C: ; 0x0202BF7C + add r3, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0xec + mul r1, r2 + add r1, r3, r1 + ldr r3, _0202BF8C ; =sub_02069A64 + bx r3 + nop +_0202BF8C: .word sub_02069A64 + 1 + + thumb_func_start sub_0202BF90 +sub_0202BF90: ; 0x0202BF90 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0202BF18 + add r6, r0, #0x0 + lsl r0, r6, #0x2 + add r1, r5, r0 + ldr r0, _0202BFCC ; =0x00000588 + str r4, [r1, r0] + bl sub_020126FC + lsl r2, r6, #0x3 + add r3, r5, r2 + ldr r2, _0202BFD0 ; =0x000005D8 + str r0, [r3, r2] + add r0, r2, #0x4 + str r1, [r3, r0] + blx sub_020CD510 + ldr r2, _0202BFD4 ; =0x00000678 + str r0, [r5, r2] + add r0, r2, #0x4 + add r2, #0x8 + str r1, [r5, r0] + add r0, r5, r2 + blx sub_020CD5A0 + pop {r4-r6, pc} + nop +_0202BFCC: .word 0x00000588 +_0202BFD0: .word 0x000005D8 +_0202BFD4: .word 0x00000678 + + thumb_func_start sub_0202BFD8 +sub_0202BFD8: ; 0x0202BFD8 + push {r4-r6, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + add r4, r2, #0x0 + cmp r5, #0x6 + blt _0202BFE8 + bl sub_02020C2C +_0202BFE8: + mov r0, #0xec + mul r0, r5 + add r3, r6, r0 + mov r2, #0x1d +_0202BFF0: + ldmia r3!, {r0-r1} + stmia r4!, {r0-r1} + sub r2, r2, #0x1 + bne _0202BFF0 + ldr r0, [r3, #0x0] + str r0, [r4, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0202C000 +sub_0202C000: ; 0x0202C000 + push {r3-r7, lr} + mov r4, #0x0 + add r5, r0, #0x0 + add r6, r4, #0x0 + mov r7, #0xab +_0202C00A: + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _0202C01A + add r4, r4, #0x1 +_0202C01A: + add r6, r6, #0x1 + add r5, #0xec + cmp r6, #0x6 + blt _0202C00A + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202C028 +sub_0202C028: ; 0x0202C028 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020126FC + ldr r1, _0202C058 ; =0x00000588 + mov r3, #0x0 + add r6, r5, #0x0 +_0202C038: + ldr r2, [r6, r1] + cmp r4, r2 + bne _0202C04A + lsl r1, r3, #0x3 + add r2, r5, r1 + ldr r1, _0202C05C ; =0x000005D8 + ldr r1, [r2, r1] + sub r0, r0, r1 + pop {r4-r6, pc} +_0202C04A: + add r3, r3, #0x1 + add r6, r6, #0x4 + cmp r3, #0x14 + blt _0202C038 + mov r0, #0x0 + pop {r4-r6, pc} + nop +_0202C058: .word 0x00000588 +_0202C05C: .word 0x000005D8 + + thumb_func_start sub_0202C060 +sub_0202C060: ; 0x0202C060 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r0, sp, #0x0 + blx sub_020CD5A0 + mov r0, #0x1a + mov r3, #0x0 + add r5, sp, #0x0 + lsl r0, r0, #0x6 +_0202C074: + add r1, r4, r3 + ldrb r2, [r5, #0x0] + ldrb r1, [r1, r0] + cmp r2, r1 + beq _0202C084 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_0202C084: + add r3, r3, #0x1 + add r5, r5, #0x1 + cmp r3, #0x6 + blt _0202C074 + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202C094 +sub_0202C094: ; 0x0202C094 + push {r4, lr} + add r4, r0, #0x0 + blx sub_020CD510 + ldr r2, _0202C0B4 ; =0x00000678 + ldr r3, [r4, r2] + add r2, r2, #0x4 + ldr r2, [r4, r2] + eor r0, r3 + eor r1, r2 + orr r0, r1 + bne _0202C0B0 + mov r0, #0x1 + pop {r4, pc} +_0202C0B0: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0202C0B4: .word 0x00000678 + + thumb_func_start sub_0202C0B8 +sub_0202C0B8: ; 0x0202C0B8 + push {r3-r4} + mov r4, #0x0 + mov r1, #0x1a + add r3, r4, #0x0 + lsl r1, r1, #0x6 +_0202C0C2: + add r2, r0, r3 + ldrb r2, [r2, r1] + add r3, r3, #0x1 + orr r4, r2 + cmp r3, #0x6 + blt _0202C0C2 + cmp r4, #0x0 + bne _0202C0D8 + mov r0, #0x1 + pop {r3-r4} + bx lr +_0202C0D8: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_0202C0E0 +sub_0202C0E0: ; 0x0202C0E0 + mov r0, #0x28 + bx lr + + thumb_func_start sub_0202C0E4 +sub_0202C0E4: ; 0x0202C0E4 + push {r4-r5} + mov r4, #0x0 + add r1, r4, #0x0 + add r2, r4, #0x0 +_0202C0EC: + add r3, r2, #0x0 + add r5, r0, #0x0 +_0202C0F0: + add r3, r3, #0x1 + strh r1, [r5, #0x0] + add r5, r5, #0x2 + cmp r3, #0x4 + blt _0202C0F0 + add r4, r4, #0x1 + add r0, #0x8 + cmp r4, #0x5 + blt _0202C0EC + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_0202C108 +sub_0202C108: ; 0x0202C108 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0x21 + add r4, r2, #0x0 + bl sub_02022610 + lsl r1, r5, #0x3 + add r3, r0, r1 + lsl r2, r4, #0x1 + ldrh r1, [r3, r2] + ldr r0, _0202C128 ; =0x0000270F + cmp r1, r0 + bhs _0202C126 + add r0, r1, #0x1 + strh r0, [r3, r2] +_0202C126: + pop {r3-r5, pc} + .balign 4 +_0202C128: .word 0x0000270F + + thumb_func_start sub_0202C12C +sub_0202C12C: ; 0x0202C12C + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0x21 + add r4, r2, #0x0 + bl sub_02022610 + lsl r2, r5, #0x3 + lsl r1, r4, #0x1 + add r0, r0, r2 + ldrh r0, [r1, r0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202C144 +sub_0202C144: ; 0x0202C144 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _0202C194 + add r0, r5, #0x0 + bl sub_02024DA0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02029FC8 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + lsl r2, r2, #0x10 + add r0, r7, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x10 + bl sub_0202A1C4 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02024AF0 + add r0, r5, #0x0 + bl sub_0204C1A8 + add r1, r4, #0x0 + bl sub_0204C104 +_0202C194: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202C198 +sub_0202C198: ; 0x0202C198 + ldr r1, _0202C1A4 ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202C1A8 ; =0x00001310 + str r0, [r2, r1] + bx lr + nop +_0202C1A4: .word 0x021C59D8 +_0202C1A8: .word 0x00001310 + + thumb_func_start sub_0202C1AC +sub_0202C1AC: ; 0x0202C1AC + ldr r1, _0202C1C0 ; =0x021C59D8 + ldr r3, [r1, #0x4] + ldr r1, _0202C1C4 ; =0x00001310 + ldr r2, [r3, r1] + sub r2, #0x9 + cmp r2, #0x1 + bls _0202C1BE + add r1, #0x20 + str r0, [r3, r1] +_0202C1BE: + bx lr + .balign 4 +_0202C1C0: .word 0x021C59D8 +_0202C1C4: .word 0x00001310 + + thumb_func_start sub_0202C1C8 +sub_0202C1C8: ; 0x0202C1C8 + push {r3, lr} + mov r0, #0x3 + bl sub_0202C198 + ldr r1, _0202C1F0 ; =0x021C59D8 + ldr r0, _0202C1F4 ; =sub_0202C1F8 + ldr r1, [r1, #0x4] + blx sub_020D9624 + cmp r0, #0x2 + beq _0202C1EC + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + mov r0, #0x0 + pop {r3, pc} +_0202C1EC: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202C1F0: .word 0x021C59D8 +_0202C1F4: .word sub_0202C1F8 + 1 + + thumb_func_start sub_0202C1F8 +sub_0202C1F8: ; 0x0202C1F8 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202C20C + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + pop {r3, pc} +_0202C20C: + bl sub_0202C21C + cmp r0, #0x0 + bne _0202C21A + mov r0, #0x9 + bl sub_0202C198 +_0202C21A: + pop {r3, pc} + + thumb_func_start sub_0202C21C +sub_0202C21C: ; 0x0202C21C + push {r4, lr} + ldr r0, _0202C278 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C27C ; =0x00001310 + ldr r0, [r1, r0] + sub r0, r0, #0x4 + cmp r0, #0x2 + bhi _0202C230 + mov r0, #0x1 + pop {r4, pc} +_0202C230: + blx sub_020D7E9C + add r4, r0, #0x0 + mov r0, #0x66 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x4 + blx sub_020CC124 + mov r0, #0x66 + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, r4, r0 + mov r1, #0x4 + blx sub_020CC15C + ldr r0, _0202C280 ; =sub_0202C288 + blx sub_020D9554 + cmp r0, #0x2 + beq _0202C264 + bl sub_0202C1AC + mov r0, #0x0 + pop {r4, pc} +_0202C264: + ldr r2, _0202C278 ; =0x021C59D8 + ldr r1, _0202C284 ; =0x0000132C + ldr r0, [r2, #0x4] + mov r3, #0x0 + strh r3, [r0, r1] + ldr r2, [r2, #0x4] + mov r0, #0x1 + add r1, r1, #0x2 + strh r0, [r2, r1] + pop {r4, pc} + .balign 4 +_0202C278: .word 0x021C59D8 +_0202C27C: .word 0x00001310 +_0202C280: .word sub_0202C288 + 1 +_0202C284: .word 0x0000132C + + thumb_func_start sub_0202C288 +sub_0202C288: ; 0x0202C288 + push {r4-r6, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x10] + mov r1, #0x1 + lsl r1, r0 + lsl r0, r1, #0x10 + lsr r4, r0, #0x10 + ldrh r0, [r5, #0x2] + cmp r0, #0x0 + beq _0202C2A8 + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + pop {r4-r6, pc} +_0202C2A8: + ldrh r0, [r5, #0x8] + cmp r0, #0x7 + bgt _0202C2C0 + bge _0202C2DA + cmp r0, #0x2 + bgt _0202C378 + cmp r0, #0x0 + blt _0202C378 + beq _0202C36A + cmp r0, #0x2 + beq _0202C2CC + pop {r4-r6, pc} +_0202C2C0: + cmp r0, #0x9 + bgt _0202C2C8 + beq _0202C34C + pop {r4-r6, pc} +_0202C2C8: + cmp r0, #0x1a + pop {r4-r6, pc} +_0202C2CC: + ldr r0, _0202C37C ; =0x021C59D8 + ldr r2, [r0, #0x4] + ldr r0, _0202C380 ; =0x00001345 + ldrb r1, [r2, r0] + add r1, r1, #0x1 + strb r1, [r2, r0] + pop {r4-r6, pc} +_0202C2DA: + ldr r0, _0202C37C ; =0x021C59D8 + ldr r2, [r0, #0x4] + ldr r0, _0202C384 ; =0x00001343 + ldrb r1, [r2, r0] + cmp r1, #0x1 + beq _0202C318 + sub r0, r0, #0x1 + ldrb r0, [r2, r0] + cmp r0, #0x1 + beq _0202C318 + bl sub_0202CBA0 + ldr r1, _0202C37C ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202C388 ; =0x00001334 + ldrb r1, [r2, r1] + cmp r0, r1 + bge _0202C318 + bl sub_02033534 + ldrb r1, [r5, #0x14] + cmp r1, r0 + bne _0202C318 + add r1, r5, #0x0 + ldr r0, _0202C38C ; =0x02105D54 + add r1, #0x15 + mov r2, #0x3 + blx sub_020DF510 + cmp r0, #0x0 + beq _0202C330 +_0202C318: + ldrh r1, [r5, #0x10] + mov r0, #0x0 + blx sub_020D9060 + cmp r0, #0x2 + beq _0202C378 + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + pop {r4-r6, pc} +_0202C330: + ldr r1, _0202C37C ; =0x021C59D8 + ldr r0, _0202C390 ; =0x0000132E + ldr r3, [r1, #0x4] + ldrh r2, [r3, r0] + orr r2, r4 + strh r2, [r3, r0] + ldr r1, [r1, #0x4] + sub r0, r0, #0x6 + ldr r1, [r1, r0] + cmp r1, #0x0 + beq _0202C378 + ldrh r0, [r5, #0x10] + blx r1 + pop {r4-r6, pc} +_0202C34C: + ldr r2, _0202C37C ; =0x021C59D8 + ldr r1, _0202C390 ; =0x0000132E + ldr r0, [r2, #0x4] + mvn r3, r4 + ldrh r6, [r0, r1] + and r3, r6 + strh r3, [r0, r1] + ldr r0, [r2, #0x4] + sub r1, #0xa + ldr r1, [r0, r1] + cmp r1, #0x0 + beq _0202C378 + ldrh r0, [r5, #0x10] + blx r1 + pop {r4-r6, pc} +_0202C36A: + bl sub_0202C394 + cmp r0, #0x0 + bne _0202C378 + mov r0, #0x9 + bl sub_0202C198 +_0202C378: + pop {r4-r6, pc} + nop +_0202C37C: .word 0x021C59D8 +_0202C380: .word 0x00001345 +_0202C384: .word 0x00001343 +_0202C388: .word 0x00001334 +_0202C38C: .word 0x02105D54 +_0202C390: .word 0x0000132E + + thumb_func_start sub_0202C394 +sub_0202C394: ; 0x0202C394 + push {r4, lr} + sub sp, #0x8 + ldr r0, _0202C3F0 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C3F4 ; =0x00001310 + ldr r0, [r1, r0] + sub r0, r0, #0x4 + cmp r0, #0x2 + bhi _0202C3AC + add sp, #0x8 + mov r0, #0x1 + pop {r4, pc} +_0202C3AC: + mov r0, #0x4 + bl sub_0202C198 + ldr r0, _0202C3F0 ; =0x021C59D8 + ldr r2, _0202C3F8 ; =0x00001304 + ldr r4, [r0, #0x4] + ldr r3, _0202C3FC ; =0x00001020 + ldr r0, [r4, r2] + add r2, r2, #0x4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r2, [r4, r2] + add r1, r4, r3 + lsl r2, r2, #0x10 + sub r3, #0xe0 + ldr r0, _0202C400 ; =sub_0202C404 + lsr r2, r2, #0x10 + add r3, r4, r3 + blx sub_020D9B48 + cmp r0, #0x2 + beq _0202C3E8 + bl sub_0202C1AC + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_0202C3E8: + mov r0, #0x1 + add sp, #0x8 + pop {r4, pc} + nop +_0202C3F0: .word 0x021C59D8 +_0202C3F4: .word 0x00001310 +_0202C3F8: .word 0x00001304 +_0202C3FC: .word 0x00001020 +_0202C400: .word sub_0202C404 + 1 + + thumb_func_start sub_0202C404 +sub_0202C404: ; 0x0202C404 + push {r3, lr} + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + beq _0202C41A + add r0, r1, #0x0 + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + pop {r3, pc} +_0202C41A: + ldrh r0, [r0, #0x4] + sub r0, #0xa + cmp r0, #0x3 + bhi _0202C454 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r4, #0 + lsl r4, r4, #0 + lsl r4, r4, #0 + ldr r0, _0202C458 ; =0x021C59D8 + ldr r2, [r0, #0x4] + ldr r0, _0202C45C ; =0x00001314 + ldr r1, [r2, r0] + cmp r1, #0x2 + bne _0202C44E + sub r0, r0, #0x4 + ldr r0, [r2, r0] + cmp r0, #0x4 + beq _0202C44E + cmp r0, #0x6 + beq _0202C454 +_0202C44E: + mov r0, #0x4 + bl sub_0202C198 +_0202C454: + pop {r3, pc} + nop +_0202C458: .word 0x021C59D8 +_0202C45C: .word 0x00001314 + + thumb_func_start sub_0202C460 +sub_0202C460: ; 0x0202C460 + push {r3, lr} + mov r0, #0x3 + bl sub_0202C198 + ldr r0, _0202C480 ; =sub_0202C484 + blx sub_020D9960 + cmp r0, #0x2 + beq _0202C47A + bl sub_0202C1AC + mov r0, #0x0 + pop {r3, pc} +_0202C47A: + mov r0, #0x1 + pop {r3, pc} + nop +_0202C480: .word sub_0202C484 + 1 + + thumb_func_start sub_0202C484 +sub_0202C484: ; 0x0202C484 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202C496 + bl sub_0202C1AC + bl sub_0202D0D8 + pop {r3, pc} +_0202C496: + bl sub_0202C4A4 + cmp r0, #0x0 + bne _0202C4A2 + bl sub_0202D0D8 +_0202C4A2: + pop {r3, pc} + + thumb_func_start sub_0202C4A4 +sub_0202C4A4: ; 0x0202C4A4 + push {r3, lr} + ldr r0, _0202C4BC ; =sub_0202C4C0 + blx sub_020D950C + cmp r0, #0x2 + beq _0202C4B8 + bl sub_0202C1AC + mov r0, #0x0 + pop {r3, pc} +_0202C4B8: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202C4BC: .word sub_0202C4C0 + 1 + + thumb_func_start sub_0202C4C0 +sub_0202C4C0: ; 0x0202C4C0 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202C4CE + bl sub_0202C1AC + pop {r3, pc} +_0202C4CE: + mov r0, #0x1 + bl sub_0202C198 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202C4D8 +sub_0202C4D8: ; 0x0202C4D8 + push {r3-r7, lr} + add r6, r2, #0x0 + ldr r2, _0202C564 ; =0x021C59D8 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r3, #0x2 + ldr r0, [r2, #0x4] + ldr r1, _0202C568 ; =0x00001308 + lsl r3, r3, #0x8 + str r3, [r0, r1] + ldr r2, [r2, #0x4] + mov r0, #0x40 + sub r1, r1, #0x4 + str r0, [r2, r1] + mov r0, #0x2 + bl sub_0202C198 + ldr r1, _0202C564 ; =0x021C59D8 + ldr r0, _0202C56C ; =0x00001256 + ldr r3, [r1, #0x4] + mov r2, #0x1 + strh r2, [r3, r0] + add r7, r0, #0x0 + ldrh r3, [r4, #0x4] + ldr r2, [r1, #0x4] + add r7, #0x96 + strh r3, [r2, r7] + add r7, r0, #0x0 + ldrh r3, [r4, #0x2] + ldr r2, [r1, #0x4] + add r7, #0x94 + strh r3, [r2, r7] + add r2, r0, #0x0 + ldrh r4, [r4, #0x0] + ldr r3, [r1, #0x4] + add r2, #0x92 + strh r4, [r3, r2] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + add r2, #0xbe + str r5, [r3, r2] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + mov r2, #0x0 + add r3, #0xaa + str r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0xb6 + strh r6, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0x8e + strh r2, [r4, r3] + ldr r2, [r1, #0x4] + add r0, #0xb8 + mov r1, #0x1 + strh r1, [r2, r0] + bl sub_0202C5D8 + cmp r0, #0x0 + bne _0202C55E + mov r0, #0x9 + bl sub_0202C198 + mov r0, #0x0 + pop {r3-r7, pc} +_0202C55E: + mov r0, #0x1 + pop {r3-r7, pc} + nop +_0202C564: .word 0x021C59D8 +_0202C568: .word 0x00001308 +_0202C56C: .word 0x00001256 + + thumb_func_start sub_0202C570 +sub_0202C570: ; 0x0202C570 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0x2 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_0202C198 + ldr r1, _0202C5D4 ; =0x021C59D8 + mov r0, #0x13 + ldr r2, [r1, #0x4] + lsl r0, r0, #0x8 + str r5, [r2, r0] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + add r2, #0xc + strh r6, [r3, r2] + add r3, r0, #0x0 + ldr r5, [r1, #0x4] + mov r2, #0x0 + sub r3, #0x1c + strh r2, [r5, r3] + add r3, r0, #0x0 + ldr r5, [r1, #0x4] + add r3, #0xe + strh r2, [r5, r3] + add r2, r0, #0x0 + ldrh r5, [r4, #0x4] + ldr r3, [r1, #0x4] + sub r2, #0x14 + strh r5, [r3, r2] + add r2, r0, #0x0 + ldrh r5, [r4, #0x2] + ldr r3, [r1, #0x4] + sub r2, #0x16 + strh r5, [r3, r2] + ldrh r2, [r4, #0x0] + ldr r1, [r1, #0x4] + sub r0, #0x18 + strh r2, [r1, r0] + bl sub_0202C5D8 + cmp r0, #0x0 + bne _0202C5D0 + mov r0, #0x9 + bl sub_0202C198 + mov r0, #0x0 + pop {r4-r6, pc} +_0202C5D0: + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0202C5D4: .word 0x021C59D8 + + thumb_func_start sub_0202C5D8 +sub_0202C5D8: ; 0x0202C5D8 + push {r3-r7, lr} + blx sub_020D8C3C + add r5, r0, #0x0 + mov r0, #0x2 + lsl r0, r0, #0xe + cmp r5, r0 + bne _0202C5F8 + mov r0, #0x3 + bl sub_0202C1AC + mov r0, #0x1 + bl sub_020336A0 + mov r0, #0x0 + pop {r3-r7, pc} +_0202C5F8: + cmp r5, #0x0 + bne _0202C60C + mov r0, #0x16 + bl sub_0202C1AC + mov r0, #0x1 + bl sub_020336A0 + mov r0, #0x0 + pop {r3-r7, pc} +_0202C60C: + ldr r1, _0202C684 ; =0x021C59D8 + ldr r0, _0202C688 ; =0x0000130C + ldr r3, [r1, #0x4] + ldrh r2, [r3, r0] + cmp r2, #0x0 + bne _0202C64C + add r7, r0, #0x0 + mov r3, #0x1 + add r2, r3, #0x0 + sub r7, #0x28 + sub r0, #0x28 +_0202C622: + ldr r4, [r1, #0x4] + ldr r6, _0202C68C ; =0x000012E4 + ldrh r6, [r4, r6] + add r6, r6, #0x1 + strh r6, [r4, r7] + ldr r4, [r1, #0x4] + ldrh r6, [r4, r0] + cmp r6, #0x10 + bls _0202C638 + ldr r6, _0202C68C ; =0x000012E4 + strh r3, [r4, r6] +_0202C638: + ldr r6, [r1, #0x4] + ldr r4, _0202C68C ; =0x000012E4 + ldrh r4, [r6, r4] + add r6, r2, #0x0 + sub r4, r4, #0x1 + lsl r6, r4 + add r4, r5, #0x0 + tst r4, r6 + bne _0202C650 + b _0202C622 +_0202C64C: + sub r0, #0x28 + strh r2, [r3, r0] +_0202C650: + blx sub_020D8A4C + ldr r2, _0202C684 ; =0x021C59D8 + ldr r1, _0202C690 ; =0x000012E6 + ldr r3, [r2, #0x4] + strh r0, [r3, r1] + add r0, r1, #0x0 + ldr r3, [r2, #0x4] + sub r0, #0xc6 + add r4, r3, r0 + sub r0, r1, #0x6 + str r4, [r3, r0] + ldr r2, [r2, #0x4] + sub r1, r1, #0x6 + ldr r0, _0202C694 ; =sub_0202C698 + add r1, r2, r1 + blx sub_020D940C + cmp r0, #0x2 + beq _0202C680 + bl sub_0202C1AC + mov r0, #0x0 + pop {r3-r7, pc} +_0202C680: + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_0202C684: .word 0x021C59D8 +_0202C688: .word 0x0000130C +_0202C68C: .word 0x000012E4 +_0202C690: .word 0x000012E6 +_0202C694: .word sub_0202C698 + 1 + + thumb_func_start sub_0202C698 +sub_0202C698: ; 0x0202C698 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + beq _0202C6AE + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + pop {r4, pc} +_0202C6AE: + ldr r0, _0202C760 ; =0x021C59D8 + ldr r2, [r0, #0x4] + ldr r0, _0202C764 ; =0x00001310 + ldr r1, [r2, r0] + cmp r1, #0x2 + beq _0202C6D0 + mov r1, #0x0 + sub r0, r0, #0x2 + strh r1, [r2, r0] + bl sub_0202C794 + cmp r0, #0x0 + bne _0202C75C + mov r0, #0x9 + bl sub_0202C198 + pop {r4, pc} +_0202C6D0: + ldrh r1, [r4, #0x8] + cmp r1, #0x3 + beq _0202C75C + cmp r1, #0x4 + beq _0202C74E + cmp r1, #0x5 + bne _0202C74E + sub r0, #0xf0 + add r0, r2, r0 + mov r1, #0xc0 + blx sub_020CC124 + ldr r0, _0202C760 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C768 ; =0x00001320 + ldr r2, [r1, r0] + cmp r2, #0x0 + beq _0202C704 + ldrh r0, [r4, #0x36] + cmp r0, #0x8 + blo _0202C704 + add r1, r4, #0x0 + add r1, #0x48 + ldrb r1, [r1, #0x4] + ldr r0, [r4, #0x3c] + blx r2 +_0202C704: + ldrh r0, [r4, #0x36] + cmp r0, #0x8 + blo _0202C74E + ldr r0, _0202C760 ; =0x021C59D8 + ldr r2, [r4, #0x3c] + ldr r0, [r0, #0x4] + ldr r1, [r0, #0x8] + cmp r2, r1 + bne _0202C74E + add r4, #0x43 + ldrb r2, [r4, #0x0] + mov r1, #0x3 + and r1, r2 + cmp r1, #0x1 + bne _0202C74E + mov r1, #0x13 + lsl r1, r1, #0x8 + ldr r2, [r0, r1] + cmp r2, #0x0 + beq _0202C732 + sub r1, #0xe0 + add r0, r0, r1 + blx r2 +_0202C732: + ldr r0, _0202C760 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C76C ; =0x0000130E + ldrh r0, [r1, r0] + cmp r0, #0x0 + beq _0202C74E + bl sub_0202C794 + cmp r0, #0x0 + bne _0202C75C + mov r0, #0x9 + bl sub_0202C198 + pop {r4, pc} +_0202C74E: + bl sub_0202C5D8 + cmp r0, #0x0 + bne _0202C75C + mov r0, #0x9 + bl sub_0202C198 +_0202C75C: + pop {r4, pc} + nop +_0202C760: .word 0x021C59D8 +_0202C764: .word 0x00001310 +_0202C768: .word 0x00001320 +_0202C76C: .word 0x0000130E + + thumb_func_start sub_0202C770 +sub_0202C770: ; 0x0202C770 + push {r3, lr} + ldr r0, _0202C78C ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C790 ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x2 + beq _0202C782 + mov r0, #0x0 + pop {r3, pc} +_0202C782: + mov r0, #0x3 + bl sub_0202C198 + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202C78C: .word 0x021C59D8 +_0202C790: .word 0x00001310 + + thumb_func_start sub_0202C794 +sub_0202C794: ; 0x0202C794 + push {r3, lr} + ldr r0, _0202C7AC ; =sub_0202C7B0 + blx sub_020D9244 + cmp r0, #0x2 + beq _0202C7A8 + bl sub_0202C1AC + mov r0, #0x0 + pop {r3, pc} +_0202C7A8: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202C7AC: .word sub_0202C7B0 + 1 + + thumb_func_start sub_0202C7B0 +sub_0202C7B0: ; 0x0202C7B0 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202C7BE + bl sub_0202C1AC + pop {r3, pc} +_0202C7BE: + mov r0, #0x1 + bl sub_0202C198 + ldr r0, _0202C7E0 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C7E4 ; =0x0000130E + ldrh r0, [r1, r0] + cmp r0, #0x0 + beq _0202C7DE + bl sub_0202C7E8 + cmp r0, #0x0 + bne _0202C7DE + mov r0, #0x9 + bl sub_0202C198 +_0202C7DE: + pop {r3, pc} + .balign 4 +_0202C7E0: .word 0x021C59D8 +_0202C7E4: .word 0x0000130E + + thumb_func_start sub_0202C7E8 +sub_0202C7E8: ; 0x0202C7E8 + push {lr} + sub sp, #0x24 + ldr r0, _0202C844 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C848 ; =0x00001310 + ldr r0, [r1, r0] + sub r0, r0, #0x4 + cmp r0, #0x2 + bhi _0202C800 + add sp, #0x24 + mov r0, #0x1 + pop {pc} +_0202C800: + mov r0, #0x3 + bl sub_0202C198 + add r1, sp, #0x4 + ldr r0, _0202C84C ; =0x02105D54 + add r1, #0x1 + mov r2, #0x3 + blx sub_020CE3E0 + bl sub_02033534 + add r1, sp, #0x4 + strb r0, [r1, #0x0] + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r1, _0202C844 ; =0x021C59D8 + ldr r0, _0202C850 ; =sub_0202C858 + ldr r2, [r1, #0x4] + ldr r1, _0202C854 ; =0x00001220 + mov r3, #0x1 + add r1, r2, r1 + add r2, sp, #0x4 + blx sub_020D9168 + cmp r0, #0x2 + beq _0202C83E + bl sub_0202C1AC + add sp, #0x24 + mov r0, #0x0 + pop {pc} +_0202C83E: + mov r0, #0x1 + add sp, #0x24 + pop {pc} + .balign 4 +_0202C844: .word 0x021C59D8 +_0202C848: .word 0x00001310 +_0202C84C: .word 0x02105D54 +_0202C850: .word sub_0202C858 + 1 +_0202C854: .word 0x00001220 + + thumb_func_start sub_0202C858 +sub_0202C858: ; 0x0202C858 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + beq _0202C894 + bl sub_0202C1AC + ldrh r0, [r4, #0x2] + cmp r0, #0xc + bne _0202C874 + mov r0, #0x9 + bl sub_0202C198 + pop {r4, pc} +_0202C874: + cmp r0, #0xb + bne _0202C880 + mov r0, #0x9 + bl sub_0202C198 + pop {r4, pc} +_0202C880: + cmp r0, #0x1 + bne _0202C88C + mov r0, #0x8 + bl sub_0202C198 + pop {r4, pc} +_0202C88C: + mov r0, #0x9 + bl sub_0202C198 + pop {r4, pc} +_0202C894: + ldrh r0, [r4, #0x8] + cmp r0, #0x8 + beq _0202C8FA + cmp r0, #0x7 + bne _0202C8DA + ldr r0, _0202C8FC ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C900 ; =0x00001335 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202C8B8 + mov r0, #0x14 + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + pop {r4, pc} +_0202C8B8: + mov r0, #0x4 + bl sub_0202C198 + bl sub_0202C908 + cmp r0, #0x0 + bne _0202C8CE + mov r0, #0x3 + bl sub_0202C198 + pop {r4, pc} +_0202C8CE: + ldr r0, _0202C8FC ; =0x021C59D8 + ldrh r2, [r4, #0xa] + ldr r1, [r0, #0x4] + ldr r0, _0202C904 ; =0x0000132C + strh r2, [r1, r0] + pop {r4, pc} +_0202C8DA: + cmp r0, #0x6 + beq _0202C8FA + cmp r0, #0x9 + bne _0202C8F0 + mov r0, #0x14 + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + pop {r4, pc} +_0202C8F0: + cmp r0, #0x1a + beq _0202C8FA + mov r0, #0x9 + bl sub_0202C198 +_0202C8FA: + pop {r4, pc} + .balign 4 +_0202C8FC: .word 0x021C59D8 +_0202C900: .word 0x00001335 +_0202C904: .word 0x0000132C + + thumb_func_start sub_0202C908 +sub_0202C908: ; 0x0202C908 + push {r4, lr} + sub sp, #0x8 + ldr r0, _0202C948 ; =0x021C59D8 + ldr r2, _0202C94C ; =0x00001304 + ldr r4, [r0, #0x4] + ldr r3, _0202C950 ; =0x00001020 + ldr r0, [r4, r2] + add r1, r4, r3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r2, r2, #0x4 + ldr r2, [r4, r2] + sub r3, #0xe0 + lsl r2, r2, #0x10 + ldr r0, _0202C954 ; =sub_0202C958 + lsr r2, r2, #0x10 + add r3, r4, r3 + blx sub_020D9B48 + cmp r0, #0x2 + beq _0202C942 + bl sub_0202C1AC + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_0202C942: + mov r0, #0x1 + add sp, #0x8 + pop {r4, pc} + .balign 4 +_0202C948: .word 0x021C59D8 +_0202C94C: .word 0x00001304 +_0202C950: .word 0x00001020 +_0202C954: .word sub_0202C958 + 1 + + thumb_func_start sub_0202C958 +sub_0202C958: ; 0x0202C958 + push {r3, lr} + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + beq _0202C97A + cmp r1, #0xf + beq _0202C9B0 + cmp r1, #0x9 + beq _0202C9B0 + cmp r1, #0xd + beq _0202C9B0 + add r0, r1, #0x0 + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + pop {r3, pc} +_0202C97A: + ldrh r0, [r0, #0x4] + sub r0, #0xa + cmp r0, #0x3 + bhi _0202C9B0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + ldr r0, _0202C9B4 ; =0x021C59D8 + ldr r2, [r0, #0x4] + ldr r0, _0202C9B8 ; =0x00001314 + ldr r1, [r2, r0] + cmp r1, #0x3 + bne _0202C9AA + sub r0, r0, #0x4 + ldr r0, [r2, r0] + cmp r0, #0x6 + beq _0202C9B0 +_0202C9AA: + mov r0, #0x4 + bl sub_0202C198 +_0202C9B0: + pop {r3, pc} + nop +_0202C9B4: .word 0x021C59D8 +_0202C9B8: .word 0x00001314 + + thumb_func_start sub_0202C9BC +sub_0202C9BC: ; 0x0202C9BC + push {r3, lr} + mov r0, #0x3 + bl sub_0202C198 + ldr r0, _0202C9DC ; =sub_0202C9E0 + blx sub_020D9960 + cmp r0, #0x2 + beq _0202C9D6 + bl sub_0202C1AC + mov r0, #0x0 + pop {r3, pc} +_0202C9D6: + mov r0, #0x1 + pop {r3, pc} + nop +_0202C9DC: .word sub_0202C9E0 + 1 + + thumb_func_start sub_0202C9E0 +sub_0202C9E0: ; 0x0202C9E0 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202C9F2 + bl sub_0202C1AC + bl sub_0202D100 + pop {r3, pc} +_0202C9F2: + bl sub_0202CA04 + cmp r0, #0x0 + bne _0202CA00 + mov r0, #0x9 + bl sub_0202C198 +_0202CA00: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202CA04 +sub_0202CA04: ; 0x0202CA04 + push {r3, lr} + mov r0, #0x3 + bl sub_0202C198 + ldr r0, _0202CA28 ; =sub_0202CA2C + mov r1, #0x0 + blx sub_020D9060 + cmp r0, #0x2 + beq _0202CA24 + bl sub_0202C1AC + bl sub_0202D0D8 + mov r0, #0x0 + pop {r3, pc} +_0202CA24: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202CA28: .word sub_0202CA2C + 1 + + thumb_func_start sub_0202CA2C +sub_0202CA2C: ; 0x0202CA2C + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202CA3A + bl sub_0202C1AC + pop {r3, pc} +_0202CA3A: + mov r0, #0x1 + bl sub_0202C198 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202CA44 +sub_0202CA44: ; 0x0202CA44 + push {r3, lr} + mov r0, #0x3 + bl sub_0202C198 + ldr r0, _0202CA64 ; =sub_0202CA68 + blx sub_020D9774 + cmp r0, #0x2 + beq _0202CA5E + bl sub_0202C1AC + mov r0, #0x0 + pop {r3, pc} +_0202CA5E: + mov r0, #0x1 + pop {r3, pc} + nop +_0202CA64: .word sub_0202CA68 + 1 + + thumb_func_start sub_0202CA68 +sub_0202CA68: ; 0x0202CA68 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + beq _0202CA80 + mov r0, #0x9 + bl sub_0202C198 + ldrh r0, [r4, #0x2] + bl sub_0202C1AC + pop {r4, pc} +_0202CA80: + mov r0, #0x1 + bl sub_0202C198 + pop {r4, pc} + + thumb_func_start sub_0202CA88 +sub_0202CA88: ; 0x0202CA88 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + ldr r0, _0202CAD0 ; =0x021C59D8 + add r6, r1, #0x0 + add r4, r2, #0x0 + ldr r1, [r0, #0x4] + mov r0, #0x3d + lsl r0, r0, #0x6 + ldr r2, _0202CAD4 ; =0x00001304 + add r0, r1, r0 + ldr r1, [r1, r2] + add r7, r3, #0x0 + blx sub_020CC15C + ldr r0, _0202CAD8 ; =0x0000FFFF + add r1, r7, #0x0 + str r0, [sp, #0x0] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + ldr r0, _0202CADC ; =sub_0202CAE0 + add r2, r5, #0x0 + add r3, r6, #0x0 + blx sub_020D99EC + cmp r0, #0x2 + bne _0202CACA + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0202CACA: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0202CAD0: .word 0x021C59D8 +_0202CAD4: .word 0x00001304 +_0202CAD8: .word 0x0000FFFF +_0202CADC: .word sub_0202CAE0 + 1 + + thumb_func_start sub_0202CAE0 +sub_0202CAE0: ; 0x0202CAE0 + push {r3, lr} + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + beq _0202CAF4 + cmp r1, #0xf + beq _0202CAF4 + add r0, r1, #0x0 + bl sub_0202C1AC + pop {r3, pc} +_0202CAF4: + ldr r2, [r0, #0x20] + cmp r2, #0x0 + beq _0202CB06 + cmp r1, #0x0 + bne _0202CB02 + mov r0, #0x1 + b _0202CB04 +_0202CB02: + mov r0, #0x0 +_0202CB04: + blx r2 +_0202CB06: + pop {r3, pc} + + thumb_func_start sub_0202CB08 +sub_0202CB08: ; 0x0202CB08 + push {r3, lr} + add r2, r0, #0x0 + ldrh r0, [r2, #0x2] + cmp r0, #0x0 + beq _0202CB18 + bl sub_0202C1AC + pop {r3, pc} +_0202CB18: + ldr r0, _0202CB48 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202CB4C ; =0x00001318 + ldr r3, [r1, r0] + cmp r3, #0x0 + beq _0202CB44 + ldrh r0, [r2, #0x4] + cmp r0, #0x19 + beq _0202CB44 + cmp r0, #0x15 + bne _0202CB38 + ldrh r0, [r2, #0x12] + ldr r1, [r2, #0xc] + ldrh r2, [r2, #0x10] + blx r3 + pop {r3, pc} +_0202CB38: + cmp r0, #0x9 + bne _0202CB44 + ldrh r0, [r2, #0x12] + mov r1, #0x0 + add r2, r1, #0x0 + blx r3 +_0202CB44: + pop {r3, pc} + nop +_0202CB48: .word 0x021C59D8 +_0202CB4C: .word 0x00001318 + + thumb_func_start sub_0202CB50 +sub_0202CB50: ; 0x0202CB50 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202CB60 + mov r0, #0xa + bl sub_0202C198 + pop {r3, pc} +_0202CB60: + mov r0, #0x0 + add r1, r0, #0x0 + blx sub_02090CC8 + mov r0, #0x0 + bl sub_0202C198 + pop {r3, pc} + + thumb_func_start sub_0202CB70 +sub_0202CB70: ; 0x0202CB70 + ldr r1, _0202CB78 ; =0x021C59D8 + ldr r1, [r1, #0x4] + str r0, [r1, #0x8] + bx lr + .balign 4 +_0202CB78: .word 0x021C59D8 + + thumb_func_start sub_0202CB7C +sub_0202CB7C: ; 0x0202CB7C + ldr r2, _0202CB88 ; =0x021C59D8 + ldr r3, [r2, #0x4] + str r0, [r3, #0x0] + ldr r0, [r2, #0x4] + strh r1, [r0, #0x4] + bx lr + .balign 4 +_0202CB88: .word 0x021C59D8 + + thumb_func_start sub_0202CB8C +sub_0202CB8C: ; 0x0202CB8C + ldr r0, _0202CB98 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202CB9C ; =0x0000132E + ldrh r0, [r1, r0] + bx lr + nop +_0202CB98: .word 0x021C59D8 +_0202CB9C: .word 0x0000132E + + thumb_func_start sub_0202CBA0 +sub_0202CBA0: ; 0x0202CBA0 + push {r3-r4} + ldr r0, _0202CBCC ; =0x021C59D8 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202CBD0 ; =0x0000132E + add r3, r2, #0x0 + ldrh r4, [r1, r0] + mov r1, #0x1 +_0202CBB0: + add r0, r4, #0x0 + tst r0, r1 + beq _0202CBB8 + add r2, r2, #0x1 +_0202CBB8: + lsl r0, r4, #0xf + add r3, r3, #0x1 + lsr r4, r0, #0x10 + cmp r3, #0x10 + blt _0202CBB0 + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + pop {r3-r4} + bx lr + nop +_0202CBCC: .word 0x021C59D8 +_0202CBD0: .word 0x0000132E + + thumb_func_start sub_0202CBD4 +sub_0202CBD4: ; 0x0202CBD4 + ldr r0, _0202CBE0 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202CBE4 ; =0x00001310 + ldr r0, [r1, r0] + bx lr + nop +_0202CBE0: .word 0x021C59D8 +_0202CBE4: .word 0x00001310 + + thumb_func_start sub_0202CBE8 +sub_0202CBE8: ; 0x0202CBE8 + ldr r0, _0202CBF4 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202CBF8 ; =0x00001330 + ldr r0, [r1, r0] + bx lr + nop +_0202CBF4: .word 0x021C59D8 +_0202CBF8: .word 0x00001330 + + thumb_func_start sub_0202CBFC +sub_0202CBFC: ; 0x0202CBFC + push {r3-r5, lr} + sub sp, #0x8 + add r0, sp, #0x0 + blx sub_020CD5A0 + ldr r0, _0202CC84 ; =0x027FFC3C + ldr r3, [r0, #0x0] + add r0, sp, #0x0 + ldrh r2, [r0, #0x4] + ldrh r1, [r0, #0x2] + ldrh r0, [r0, #0x0] + add r0, r0, r3 + add r0, r1, r0 + add r1, r2, r0 + ldr r3, _0202CC88 ; =0x021C59D8 + ldr r2, _0202CC8C ; =0x00001338 + ldr r0, [r3, #0x4] + str r1, [r0, r2] + ldr r0, [r3, #0x4] + ldr r1, _0202CC90 ; =0x00010DCD + ldr r4, [r0, r2] + add r5, r4, #0x0 + mul r5, r1 + ldr r1, _0202CC94 ; =0x00003039 + mov r4, #0x0 + add r1, r5, r1 + str r1, [r0, r2] + ldr r1, [r3, #0x4] + add r0, r2, #0x4 + strh r4, [r1, r0] + ldr r1, [r3, #0x4] + mov r4, #0x65 + add r0, r2, #0x6 + strh r4, [r1, r0] + mov r0, #0x3 + bl sub_0202C198 + mov r0, #0x1 + bl sub_0202CC98 + cmp r0, #0x18 + bne _0202CC68 + mov r0, #0x18 + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + mov r0, #0x1 + bl sub_020336A0 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_0202CC68: + cmp r0, #0x2 + beq _0202CC7C + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_0202CC7C: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + nop +_0202CC84: .word 0x027FFC3C +_0202CC88: .word 0x021C59D8 +_0202CC8C: .word 0x00001338 +_0202CC90: .word 0x00010DCD +_0202CC94: .word 0x00003039 + + thumb_func_start sub_0202CC98 +sub_0202CC98: ; 0x0202CC98 + push {r4, lr} + add r4, r0, #0x0 + blx sub_020D8C3C + mov r1, #0x2 + lsl r1, r1, #0xe + cmp r0, r1 + bne _0202CCBE + mov r0, #0x3 + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + mov r0, #0x1 + bl sub_020336A0 + mov r0, #0x3 + pop {r4, pc} +_0202CCBE: + cmp r0, #0x0 + bne _0202CCD8 + mov r0, #0x16 + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + mov r0, #0x1 + bl sub_020336A0 + mov r0, #0x18 + pop {r4, pc} +_0202CCD8: + mov r2, #0x1 + sub r1, r4, #0x1 + lsl r2, r1 + add r1, r2, #0x0 + tst r1, r0 + bne _0202CD00 + mov r2, #0x1 +_0202CCE6: + add r1, r4, #0x1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r4, #0x10 + bls _0202CCF4 + mov r0, #0x18 + pop {r4, pc} +_0202CCF4: + sub r1, r4, #0x1 + add r3, r2, #0x0 + lsl r3, r1 + add r1, r3, #0x0 + tst r1, r0 + beq _0202CCE6 +_0202CD00: + ldr r0, _0202CD10 ; =sub_0202CD14 + add r1, r4, #0x0 + bl sub_0202CD90 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r4, pc} + nop +_0202CD10: .word sub_0202CD14 + 1 + + thumb_func_start sub_0202CD14 +sub_0202CD14: ; 0x0202CD14 + push {r3-r5, lr} + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + beq _0202CD30 + add r0, r1, #0x0 + bl sub_0202C1AC + mov r0, #0x9 + bl sub_0202C198 + mov r0, #0x1 + bl sub_020336A0 + pop {r3-r5, pc} +_0202CD30: + ldr r2, _0202CD88 ; =0x021C59D8 + ldrh r1, [r0, #0x8] + ldrh r5, [r0, #0xa] + ldr r0, [r2, #0x4] + ldr r3, _0202CD8C ; =0x0000133E + ldrh r4, [r0, r3] + cmp r4, r5 + bls _0202CD50 + strh r5, [r0, r3] + mov r4, #0x1 + sub r0, r1, #0x1 + lsl r4, r0 + ldr r2, [r2, #0x4] + add r0, r3, #0x2 + strh r4, [r2, r0] + b _0202CD64 +_0202CD50: + cmp r4, r5 + bne _0202CD64 + add r2, r3, #0x2 + ldrh r5, [r0, r2] + mov r4, #0x1 + sub r2, r1, #0x1 + lsl r4, r2 + orr r4, r5 + add r2, r3, #0x2 + strh r4, [r0, r2] +_0202CD64: + add r0, r1, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202CC98 + cmp r0, #0x18 + bne _0202CD7A + mov r0, #0x7 + bl sub_0202C198 + pop {r3-r5, pc} +_0202CD7A: + cmp r0, #0x2 + beq _0202CD84 + mov r0, #0x9 + bl sub_0202C198 +_0202CD84: + pop {r3-r5, pc} + nop +_0202CD88: .word 0x021C59D8 +_0202CD8C: .word 0x0000133E + + thumb_func_start sub_0202CD90 +sub_0202CD90: ; 0x0202CD90 + push {r3, lr} + add r3, r1, #0x0 + mov r1, #0x1e + str r1, [sp, #0x0] + mov r1, #0x3 + mov r2, #0x11 + blx sub_020DADD4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202CDA4 +sub_0202CDA4: ; 0x0202CDA4 + push {r3, lr} + mov r0, #0x1 + bl sub_0202C198 + ldr r0, _0202CDC8 ; =0x021C59D8 + ldr r1, [r0, #0x4] + mov r0, #0x4d + lsl r0, r0, #0x6 + ldrh r0, [r1, r0] + bl sub_0202CDD0 + ldr r2, _0202CDC8 ; =0x021C59D8 + ldr r1, _0202CDCC ; =0x0000133C + ldr r3, [r2, #0x4] + strh r0, [r3, r1] + ldr r0, [r2, #0x4] + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_0202CDC8: .word 0x021C59D8 +_0202CDCC: .word 0x0000133C + + thumb_func_start sub_0202CDD0 +sub_0202CDD0: ; 0x0202CDD0 + push {r4-r7} + add r4, r0, #0x0 + mov r0, #0x0 + add r3, r0, #0x0 + add r2, r0, #0x0 + mov r1, #0x1 +_0202CDDC: + add r5, r1, #0x0 + lsl r5, r2 + tst r5, r4 + beq _0202CDF0 + add r0, r2, #0x1 + add r3, r3, #0x1 + lsl r0, r0, #0x10 + lsl r3, r3, #0x10 + asr r0, r0, #0x10 + lsr r3, r3, #0x10 +_0202CDF0: + add r2, r2, #0x1 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + cmp r2, #0x10 + blt _0202CDDC + cmp r3, #0x1 + bls _0202CE4E + ldr r5, _0202CE54 ; =0x021C59D8 + ldr r2, _0202CE58 ; =0x00001338 + ldr r0, [r5, #0x4] + ldr r1, _0202CE5C ; =0x00010DCD + ldr r6, [r0, r2] + add r7, r6, #0x0 + mul r7, r1 + ldr r1, _0202CE60 ; =0x00003039 + add r1, r7, r1 + str r1, [r0, r2] + ldr r0, [r5, #0x4] + mov r1, #0x1 + ldr r0, [r0, r2] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mul r0, r3 + lsl r0, r0, #0x8 + lsr r2, r0, #0x10 + mov r3, #0x0 +_0202CE24: + add r0, r4, #0x0 + tst r0, r1 + beq _0202CE3E + cmp r2, #0x0 + bne _0202CE38 + add r0, r3, #0x1 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + pop {r4-r7} + bx lr +_0202CE38: + sub r0, r2, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 +_0202CE3E: + lsl r0, r4, #0xf + lsr r4, r0, #0x10 + add r0, r3, #0x1 + lsl r0, r0, #0x10 + asr r3, r0, #0x10 + cmp r3, #0x10 + blt _0202CE24 + mov r0, #0x0 +_0202CE4E: + pop {r4-r7} + bx lr + nop +_0202CE54: .word 0x021C59D8 +_0202CE58: .word 0x00001338 +_0202CE5C: .word 0x00010DCD +_0202CE60: .word 0x00003039 + + thumb_func_start sub_0202CE64 +sub_0202CE64: ; 0x0202CE64 + push {r3-r5, lr} + lsl r1, r0, #0x1b + lsr r2, r1, #0x1b + beq _0202CE72 + mov r1, #0x20 + sub r1, r1, r2 + add r0, r0, r1 +_0202CE72: + ldr r2, _0202CEE4 ; =0x021C59D8 + ldr r1, _0202CEE8 ; =0x00001308 + str r0, [r2, #0x4] + mov r3, #0x0 + str r3, [r0, r1] + ldr r4, [r2, #0x4] + sub r0, r1, #0x4 + str r3, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x10 + str r3, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x24 + strh r3, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + mov r5, #0x1 + add r0, #0x26 + strh r5, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x28 + str r3, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x8 + str r3, [r4, r0] + ldr r0, [r2, #0x4] + mov r5, #0x8 + str r3, [r0, #0x0] + ldr r0, [r2, #0x4] + strh r3, [r0, #0x4] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x14 + str r3, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x2c + strb r5, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x2d + strb r3, [r4, r0] + ldr r0, [r2, #0x4] + add r1, #0x3a + strb r3, [r0, r1] + bl sub_0202CF0C + cmp r0, #0x0 + bne _0202CEE0 + mov r0, #0x0 + pop {r3-r5, pc} +_0202CEE0: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0202CEE4: .word 0x021C59D8 +_0202CEE8: .word 0x00001308 + + thumb_func_start sub_0202CEEC +sub_0202CEEC: ; 0x0202CEEC + mov r0, #0x4e + lsl r0, r0, #0x6 + bx lr + .balign 4 + + thumb_func_start sub_0202CEF4 +sub_0202CEF4: ; 0x0202CEF4 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x8 + bne _0202CF08 + mov r0, #0x9 + bl sub_0202C198 + mov r0, #0x19 + bl sub_0202C1AC +_0202CF08: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202CF0C +sub_0202CF0C: ; 0x0202CF0C + push {r3, lr} + mov r0, #0x3 + bl sub_0202C198 + ldr r0, _0202CF38 ; =0x021C59D8 + ldr r1, _0202CF3C ; =sub_0202CF40 + ldr r0, [r0, #0x4] + mov r2, #0x2 + add r0, #0x40 + blx sub_020D97B4 + cmp r0, #0x2 + beq _0202CF34 + bl sub_0202C1AC + mov r0, #0xa + bl sub_0202C198 + mov r0, #0x0 + pop {r3, pc} +_0202CF34: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202CF38: .word 0x021C59D8 +_0202CF3C: .word sub_0202CF40 + 1 + + thumb_func_start sub_0202CF40 +sub_0202CF40: ; 0x0202CF40 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202CF5A + bl sub_0202C1AC + mov r0, #0xa + bl sub_0202C198 + mov r0, #0x1 + bl sub_020336A0 + pop {r3, pc} +_0202CF5A: + ldr r0, _0202CF80 ; =sub_0202CEF4 + blx sub_020D9014 + cmp r0, #0x0 + beq _0202CF76 + bl sub_0202C1AC + mov r0, #0xa + bl sub_0202C198 + mov r0, #0x1 + bl sub_020336A0 + pop {r3, pc} +_0202CF76: + mov r0, #0x1 + bl sub_0202C198 + pop {r3, pc} + nop +_0202CF80: .word sub_0202CEF4 + 1 + + thumb_func_start sub_0202CF84 +sub_0202CF84: ; 0x0202CF84 + push {r3-r7, lr} + add r6, r1, #0x0 + ldr r1, _0202D02C ; =0x021C59D8 + add r5, r0, #0x0 + add r7, r2, #0x0 + mov r0, #0x7 + ldr r2, [r1, #0x4] + ldr r1, _0202D030 ; =0x00001308 + lsl r0, r0, #0x6 + str r0, [r2, r1] + ldr r0, _0202D02C ; =0x021C59D8 + add r4, r3, #0x0 + ldr r2, [r0, #0x4] + sub r0, r1, #0x4 + mov r3, #0xe0 + str r3, [r2, r0] + ldr r0, _0202D02C ; =0x021C59D8 + add r1, #0xc + ldr r0, [r0, #0x4] + str r5, [r0, r1] + mov r0, #0x3 + bl sub_0202C198 + ldr r1, _0202D02C ; =0x021C59D8 + cmp r5, #0x0 + ldr r0, [r1, #0x4] + strh r6, [r0, #0xc] + ldr r0, [r1, #0x4] + strh r7, [r0, #0x32] + add r0, sp, #0x8 + ldrh r2, [r0, #0x10] + ldr r0, [r1, #0x4] + strh r2, [r0, #0x18] + beq _0202CFCE + cmp r5, #0x4 + beq _0202CFE8 + b _0202CFF4 +_0202CFCE: + ldr r0, [r1, #0x4] + mov r2, #0xc0 + strh r2, [r0, #0x34] + cmp r4, #0x5 + blo _0202CFE0 + ldr r0, [r1, #0x4] + mov r2, #0xc + strh r2, [r0, #0x36] + b _0202CFF4 +_0202CFE0: + ldr r0, [r1, #0x4] + mov r2, #0x26 + strh r2, [r0, #0x36] + b _0202CFF4 +_0202CFE8: + ldr r0, [r1, #0x4] + mov r2, #0x64 + strh r2, [r0, #0x34] + ldr r0, [r1, #0x4] + mov r2, #0xc + strh r2, [r0, #0x36] +_0202CFF4: + ldr r1, _0202D02C ; =0x021C59D8 + ldr r0, [r1, #0x4] + strh r4, [r0, #0x10] + ldr r2, [r1, #0x4] + mov r0, #0x0 + strh r0, [r2, #0x16] + ldr r2, [r1, #0x4] + cmp r5, #0x2 + strh r0, [r2, #0x12] + ldr r2, [sp, #0x1c] + ldr r1, [r1, #0x4] + strh r2, [r1, #0xe] + bne _0202D010 + mov r0, #0x1 +_0202D010: + ldr r1, _0202D02C ; =0x021C59D8 + cmp r5, #0x0 + ldr r1, [r1, #0x4] + strh r0, [r1, #0x14] + beq _0202D022 + cmp r5, #0x2 + beq _0202D022 + cmp r5, #0x4 + bne _0202D028 +_0202D022: + bl sub_0202C1C8 + pop {r3-r7, pc} +_0202D028: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0202D02C: .word 0x021C59D8 +_0202D030: .word 0x00001308 + + thumb_func_start sub_0202D034 +sub_0202D034: ; 0x0202D034 + push {r4-r6, lr} + ldr r2, _0202D094 ; =0x021C59D8 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r3, #0x2 + ldr r0, [r2, #0x4] + ldr r1, _0202D098 ; =0x00001308 + lsl r3, r3, #0x8 + str r3, [r0, r1] + sub r0, r1, #0x4 + ldr r3, [r2, #0x4] + mov r6, #0x40 + str r6, [r3, r0] + ldr r0, [r2, #0x4] + add r1, #0xc + str r5, [r0, r1] + mov r0, #0x3 + bl sub_0202C198 + cmp r5, #0x1 + beq _0202D066 + cmp r5, #0x3 + beq _0202D066 + cmp r5, #0x5 + bne _0202D08E +_0202D066: + ldr r1, _0202D094 ; =0x021C59D8 + add r0, r4, #0x0 + ldr r2, [r1, #0x4] + ldr r1, _0202D09C ; =0x00001220 + add r1, r2, r1 + mov r2, #0xc0 + blx sub_020CE3E0 + ldr r0, _0202D094 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D09C ; =0x00001220 + add r0, r1, r0 + mov r1, #0xc0 + blx sub_020CC15C + blx sub_020CC180 + bl sub_0202C7E8 + pop {r4-r6, pc} +_0202D08E: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_0202D094: .word 0x021C59D8 +_0202D098: .word 0x00001308 +_0202D09C: .word 0x00001220 + + thumb_func_start sub_0202D0A0 +sub_0202D0A0: ; 0x0202D0A0 + push {r3, lr} + ldr r2, _0202D0C4 ; =0x021C59D8 + ldr r3, [r2, #0x4] + ldr r2, _0202D0C8 ; =0x00001318 + str r0, [r3, r2] + lsl r0, r1, #0x10 + ldr r1, _0202D0CC ; =sub_0202CB08 + lsr r0, r0, #0x10 + mov r2, #0x0 + blx sub_020D8F34 + cmp r0, #0x0 + beq _0202D0C2 + mov r0, #0x9 + bl sub_0202C198 +_0202D0C0: + b _0202D0C0 +_0202D0C2: + pop {r3, pc} + .balign 4 +_0202D0C4: .word 0x021C59D8 +_0202D0C8: .word 0x00001318 +_0202D0CC: .word sub_0202CB08 + 1 + + thumb_func_start sub_0202D0D0 +sub_0202D0D0: ; 0x0202D0D0 + push {r3, lr} + bl sub_0202CA88 + pop {r3, pc} + + thumb_func_start sub_0202D0D8 +sub_0202D0D8: ; 0x0202D0D8 + push {r3, lr} + ldr r0, _0202D0F8 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D0FC ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x2 + bne _0202D0E8 +_0202D0E6: + b _0202D0E6 +_0202D0E8: + bl sub_0202CA44 + cmp r0, #0x0 + bne _0202D0F6 + mov r0, #0xa + bl sub_0202C198 +_0202D0F6: + pop {r3, pc} + .balign 4 +_0202D0F8: .word 0x021C59D8 +_0202D0FC: .word 0x00001310 + + thumb_func_start sub_0202D100 +sub_0202D100: ; 0x0202D100 + push {r3, lr} + ldr r0, _0202D16C ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D170 ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x1 + beq _0202D16A + cmp r0, #0x6 + beq _0202D126 + cmp r0, #0x5 + beq _0202D126 + cmp r0, #0x4 + beq _0202D126 + mov r0, #0x3 + bl sub_0202C198 + bl sub_0202D0D8 + pop {r3, pc} +_0202D126: + mov r0, #0x3 + bl sub_0202C198 + ldr r0, _0202D16C ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D174 ; =0x00001314 + ldr r0, [r1, r0] + cmp r0, #0x5 + bhi _0202D16A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r3, #0 + lsl r2, r1, #0 + lsl r4, r4, #0 + lsl r4, r4, #0 + lsl r0, r3, #0 + lsl r2, r1, #0 + bl sub_0202C9BC + cmp r0, #0x0 + bne _0202D16A + bl sub_0202D0D8 + pop {r3, pc} +_0202D15E: + .byte 0xFF, 0xF7 + .byte 0x7F, 0xF9, 0x00, 0x28, 0x01, 0xD1, 0xFF, 0xF7, 0xB7, 0xFF +_0202D16A: + pop {r3, pc} + .balign 4 +_0202D16C: .word 0x021C59D8 +_0202D170: .word 0x00001310 +_0202D174: .word 0x00001314 + + thumb_func_start sub_0202D178 +sub_0202D178: ; 0x0202D178 + push {r3, lr} + mov r0, #0x3 + bl sub_0202C198 + ldr r0, _0202D198 ; =sub_0202CB50 + blx sub_020D972C + cmp r0, #0x2 + beq _0202D194 + mov r0, #0x9 + bl sub_0202C198 + mov r0, #0x0 + pop {r3, pc} +_0202D194: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202D198: .word sub_0202CB50 + 1 + + thumb_func_start sub_0202D19C +sub_0202D19C: ; 0x0202D19C + ldr r0, _0202D1A8 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D1AC ; =0x0000132C + ldrh r0, [r1, r0] + bx lr + nop +_0202D1A8: .word 0x021C59D8 +_0202D1AC: .word 0x0000132C + + thumb_func_start sub_0202D1B0 +sub_0202D1B0: ; 0x0202D1B0 + ldr r1, _0202D1C0 ; =0x021C59D8 + ldr r2, [r1, #0x4] + cmp r2, #0x0 + beq _0202D1BC + ldr r1, _0202D1C4 ; =0x00001334 + strb r0, [r2, r1] +_0202D1BC: + bx lr + nop +_0202D1C0: .word 0x021C59D8 +_0202D1C4: .word 0x00001334 + + thumb_func_start sub_0202D1C8 +sub_0202D1C8: ; 0x0202D1C8 + ldr r0, _0202D1DC ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D1E0 ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x1 + bne _0202D1D8 + mov r0, #0x1 + bx lr +_0202D1D8: + mov r0, #0x0 + bx lr + .balign 4 +_0202D1DC: .word 0x021C59D8 +_0202D1E0: .word 0x00001310 + + thumb_func_start sub_0202D1E4 +sub_0202D1E4: ; 0x0202D1E4 + ldr r0, _0202D1F8 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D1FC ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x3 + bne _0202D1F4 + mov r0, #0x1 + bx lr +_0202D1F4: + mov r0, #0x0 + bx lr + .balign 4 +_0202D1F8: .word 0x021C59D8 +_0202D1FC: .word 0x00001310 + + thumb_func_start sub_0202D200 +sub_0202D200: ; 0x0202D200 + ldr r0, _0202D214 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D218 ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x9 + bne _0202D210 + mov r0, #0x1 + bx lr +_0202D210: + mov r0, #0x0 + bx lr + .balign 4 +_0202D214: .word 0x021C59D8 +_0202D218: .word 0x00001310 + + thumb_func_start sub_0202D21C +sub_0202D21C: ; 0x0202D21C + ldr r0, _0202D238 ; =0x021C59D8 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0202D234 + ldr r0, _0202D23C ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x2 + bne _0202D230 + mov r0, #0x1 + bx lr +_0202D230: + mov r0, #0x0 + bx lr +_0202D234: + mov r0, #0x0 + bx lr + .balign 4 +_0202D238: .word 0x021C59D8 +_0202D23C: .word 0x00001310 + + thumb_func_start sub_0202D240 +sub_0202D240: ; 0x0202D240 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r0, #0x0 + ldr r0, _0202D274 ; =0x021C59D8 + add r5, r1, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202D278 ; =0x00001310 + add r4, r2, #0x0 + ldr r0, [r1, r0] + cmp r0, #0x4 + bne _0202D26E + lsl r0, r3, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x1 + lsl r2, r5, #0x10 + str r0, [sp, #0x4] + mov r0, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x10 + add r3, r4, #0x0 + blx sub_020DAF30 +_0202D26E: + add sp, #0x8 + pop {r4-r6, pc} + nop +_0202D274: .word 0x021C59D8 +_0202D278: .word 0x00001310 + + thumb_func_start sub_0202D27C +sub_0202D27C: ; 0x0202D27C + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + bne _0202D28C + ldr r0, _0202D290 ; =0x021C59D8 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _0202D294 ; =0x00001344 + strb r2, [r1, r0] +_0202D28C: + bx lr + nop +_0202D290: .word 0x021C59D8 +_0202D294: .word 0x00001344 + + thumb_func_start sub_0202D298 +sub_0202D298: ; 0x0202D298 + push {r4, lr} + ldr r2, _0202D2C4 ; =0x021C59D8 + add r1, r0, #0x0 + ldr r3, [r2, #0x4] + ldr r0, _0202D2C8 ; =0x00001344 + mov r4, #0x0 + strb r4, [r3, r0] + ldr r2, [r2, #0x4] + sub r0, #0x34 + ldr r0, [r2, r0] + cmp r0, #0x4 + bne _0202D2BE + ldr r0, _0202D2CC ; =sub_0202D27C + blx sub_020DAD74 + cmp r0, #0x2 + bne _0202D2BE + mov r0, #0x1 + pop {r4, pc} +_0202D2BE: + mov r0, #0x0 + pop {r4, pc} + nop +_0202D2C4: .word 0x021C59D8 +_0202D2C8: .word 0x00001344 +_0202D2CC: .word sub_0202D27C + 1 + + thumb_func_start sub_0202D2D0 +sub_0202D2D0: ; 0x0202D2D0 + ldr r0, _0202D2EC ; =0x021C59D8 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0202D2E8 + ldr r0, _0202D2F0 ; =0x00001345 + ldrb r0, [r1, r0] + cmp r0, #0x6 + blo _0202D2E4 + mov r0, #0x1 + bx lr +_0202D2E4: + mov r0, #0x0 + bx lr +_0202D2E8: + mov r0, #0x0 + bx lr + .balign 4 +_0202D2EC: .word 0x021C59D8 +_0202D2F0: .word 0x00001345 + + thumb_func_start sub_0202D2F4 +sub_0202D2F4: ; 0x0202D2F4 + ldr r0, _0202D300 ; =0x021C59D8 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202D304 ; =0x00001345 + strb r2, [r1, r0] + bx lr + .balign 4 +_0202D300: .word 0x021C59D8 +_0202D304: .word 0x00001345 + + thumb_func_start sub_0202D308 +sub_0202D308: ; 0x0202D308 + ldr r1, _0202D314 ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D318 ; =0x00001320 + str r0, [r2, r1] + bx lr + nop +_0202D314: .word 0x021C59D8 +_0202D318: .word 0x00001320 + + thumb_func_start sub_0202D31C +sub_0202D31C: ; 0x0202D31C + ldr r1, _0202D328 ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D32C ; =0x00001324 + str r0, [r2, r1] + bx lr + nop +_0202D328: .word 0x021C59D8 +_0202D32C: .word 0x00001324 + + thumb_func_start sub_0202D330 +sub_0202D330: ; 0x0202D330 + ldr r1, _0202D33C ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D340 ; =0x00001328 + str r0, [r2, r1] + bx lr + nop +_0202D33C: .word 0x021C59D8 +_0202D340: .word 0x00001328 + + thumb_func_start sub_0202D344 +sub_0202D344: ; 0x0202D344 + ldr r1, _0202D350 ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D354 ; =0x00001342 + strb r0, [r2, r1] + bx lr + nop +_0202D350: .word 0x021C59D8 +_0202D354: .word 0x00001342 + + thumb_func_start sub_0202D358 +sub_0202D358: ; 0x0202D358 + ldr r0, _0202D364 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D368 ; =0x00001342 + ldrb r0, [r1, r0] + bx lr + nop +_0202D364: .word 0x021C59D8 +_0202D368: .word 0x00001342 + + thumb_func_start sub_0202D36C +sub_0202D36C: ; 0x0202D36C + ldr r1, _0202D378 ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D37C ; =0x00001343 + strb r0, [r2, r1] + bx lr + nop +_0202D378: .word 0x021C59D8 +_0202D37C: .word 0x00001343 + + thumb_func_start sub_0202D380 +sub_0202D380: ; 0x0202D380 + ldr r1, _0202D38C ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D390 ; =0x00001335 + strb r0, [r2, r1] + bx lr + nop +_0202D38C: .word 0x021C59D8 +_0202D390: .word 0x00001335 + + thumb_func_start sub_0202D394 +sub_0202D394: ; 0x0202D394 + str r1, [r0, #0x0] + strh r2, [r0, #0xa] + mov r1, #0x0 + strh r1, [r0, #0x4] + strh r1, [r0, #0x6] + strh r1, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start sub_0202D3A4 +sub_0202D3A4: ; 0x0202D3A4 + push {r3-r7, lr} + str r2, [sp, #0x0] + add r5, r0, #0x0 + add r7, r1, #0x0 + bl sub_0202D498 + ldr r1, [sp, #0x0] + cmp r0, r1 + bgt _0202D3BC + bl sub_02031454 + pop {r3-r7, pc} +_0202D3BC: + mov r0, #0x8 + ldrsh r4, [r5, r0] + ldrsh r1, [r5, r0] + ldr r0, [sp, #0x0] + mov r6, #0x0 + add r0, r1, r0 + cmp r4, r0 + bge _0202D3F2 +_0202D3CC: + cmp r7, #0x0 + bne _0202D3D4 + bl sub_02020C2C +_0202D3D4: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0202D4A8 + ldrb r2, [r7, r6] + ldr r1, [r5, #0x0] + add r4, r4, #0x1 + strb r2, [r1, r0] + mov r0, #0x8 + ldrsh r1, [r5, r0] + ldr r0, [sp, #0x0] + add r6, r6, #0x1 + add r0, r1, r0 + cmp r4, r0 + blt _0202D3CC +_0202D3F2: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0202D4A8 + strh r0, [r5, #0x8] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202D400 +sub_0202D400: ; 0x0202D400 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0202D42C + mov r1, #0x4 + add r4, r0, #0x0 + ldrsh r1, [r5, r1] + add r0, r5, #0x0 + add r1, r1, r4 + bl sub_0202D4A8 + strh r0, [r5, #0x4] + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0202D41C +sub_0202D41C: ; 0x0202D41C + push {r3, lr} + add r1, sp, #0x0 + mov r2, #0x1 + bl sub_0202D400 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_0202D42C +sub_0202D42C: ; 0x0202D42C + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x4 + ldrsh r4, [r5, r0] + add r7, r2, #0x0 + str r1, [sp, #0x0] + add r0, r4, r7 + mov r6, #0x0 + cmp r4, r0 + bge _0202D472 +_0202D440: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0202D4A8 + mov r1, #0x6 + ldrsh r1, [r5, r1] + cmp r1, r0 + bne _0202D454 + add r0, r6, #0x0 + pop {r3-r7, pc} +_0202D454: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0202D4A8 + ldr r1, [r5, #0x0] + add r4, r4, #0x1 + ldrb r1, [r1, r0] + ldr r0, [sp, #0x0] + strb r1, [r0, r6] + mov r0, #0x4 + ldrsh r0, [r5, r0] + add r6, r6, #0x1 + add r0, r0, r7 + cmp r4, r0 + blt _0202D440 +_0202D472: + add r0, r6, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202D478 +sub_0202D478: ; 0x0202D478 + mov r1, #0x4 + mov r3, #0x6 + ldrsh r1, [r0, r1] + ldrsh r2, [r0, r3] + cmp r1, r2 + ble _0202D490 + mov r2, #0xa + ldrsh r2, [r0, r2] + ldrsh r0, [r0, r3] + add r0, r2, r0 + sub r0, r0, r1 + bx lr +_0202D490: + ldrsh r0, [r0, r3] + sub r0, r0, r1 + bx lr + .balign 4 + + thumb_func_start sub_0202D498 +sub_0202D498: ; 0x0202D498 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0202D478 + mov r1, #0xa + ldrsh r1, [r4, r1] + sub r0, r1, r0 + pop {r4, pc} + + thumb_func_start sub_0202D4A8 +sub_0202D4A8: ; 0x0202D4A8 + push {r3, lr} + add r2, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0xa + ldrsh r1, [r2, r1] + blx sub_020EBC80 + add r0, r1, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202D4BC +sub_0202D4BC: ; 0x0202D4BC + mov r1, #0x8 + ldrsh r1, [r0, r1] + strh r1, [r0, #0x6] + bx lr + + thumb_func_start sub_0202D4C4 +sub_0202D4C4: ; 0x0202D4C4 + ldr r3, [r0, #0x1c] + mov r2, #0x0 + ldr r1, [r0, #0x18] + cmp r3, #0x0 + ble _0202D4E0 +_0202D4CE: + ldrb r0, [r1, #0xe] + cmp r0, #0x0 + bne _0202D4D8 + add r0, r1, #0x0 + bx lr +_0202D4D8: + add r2, r2, #0x1 + add r1, #0x10 + cmp r2, r3 + blt _0202D4CE +_0202D4E0: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0202D4E4 +sub_0202D4E4: ; 0x0202D4E4 + ldr r3, [r0, #0x1c] + mov r2, #0x0 + ldr r1, [r0, #0x18] + cmp r3, #0x0 + ble _0202D500 +_0202D4EE: + ldrb r0, [r1, #0xe] + cmp r0, #0x0 + beq _0202D4F8 + mov r0, #0x0 + bx lr +_0202D4F8: + add r2, r2, #0x1 + add r1, #0x10 + cmp r2, r3 + blt _0202D4EE +_0202D500: + mov r0, #0x1 + bx lr + + thumb_func_start sub_0202D504 +sub_0202D504: ; 0x0202D504 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202D522 + ldr r1, [r1, #0x8] + cmp r1, #0x0 + beq _0202D518 + str r1, [r0, #0x0] + mov r0, #0x0 + str r0, [r1, #0x4] + b _0202D51E +_0202D518: + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] +_0202D51E: + mov r0, #0x1 + bx lr +_0202D522: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0202D528 +sub_0202D528: ; 0x0202D528 + ldr r2, [r0, #0x0] + strb r1, [r2, #0x0] + ldr r1, [r0, #0x0] + add r1, r1, #0x1 + str r1, [r0, #0x0] + ldr r1, [r0, #0x4] + sub r1, r1, #0x1 + str r1, [r0, #0x4] + bne _0202D53E + mov r0, #0x1 + bx lr +_0202D53E: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0202D544 +sub_0202D544: ; 0x0202D544 + push {r4-r6, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0xe] + add r4, r1, #0x0 + bl sub_0202D9A0 + add r6, r0, #0x0 + ldr r0, _0202D5B8 ; =0x0000FFFF + cmp r6, r0 + ldr r0, [r4, #0x4] + bne _0202D56A + cmp r0, #0x3 + bge _0202D57A + ldrb r1, [r5, #0xf] + mov r0, #0x1 + bic r1, r0 + strb r1, [r5, #0xf] + mov r0, #0x1 + pop {r4-r6, pc} +_0202D56A: + cmp r0, #0x1 + bge _0202D57A + ldrb r1, [r5, #0xf] + mov r0, #0x1 + bic r1, r0 + strb r1, [r5, #0xf] + mov r0, #0x1 + pop {r4-r6, pc} +_0202D57A: + ldrb r1, [r5, #0xe] + add r0, r4, #0x0 + bl sub_0202D528 + ldr r0, _0202D5B8 ; =0x0000FFFF + cmp r6, r0 + bne _0202D5A4 + ldrh r1, [r5, #0xc] + add r0, r4, #0x0 + asr r1, r1, #0x8 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_0202D528 + ldrh r1, [r5, #0xc] + add r0, r4, #0x0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_0202D528 + b _0202D5A6 +_0202D5A4: + strh r6, [r5, #0xc] +_0202D5A6: + ldrb r1, [r5, #0xf] + mov r0, #0x1 + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strb r0, [r5, #0xf] + mov r0, #0x0 + pop {r4-r6, pc} + nop +_0202D5B8: .word 0x0000FFFF + + thumb_func_start sub_0202D5BC +sub_0202D5BC: ; 0x0202D5BC + push {r3-r7, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0xe] + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_0202D9A0 + ldr r1, _0202D680 ; =0x0000FFFF + cmp r0, r1 + bne _0202D5D6 + mov r2, #0x3 + b _0202D5D8 +_0202D5D6: + mov r2, #0x1 +_0202D5D8: + ldrh r0, [r5, #0xc] + ldr r1, [r4, #0x4] + add r0, r0, r2 + cmp r1, r0 + bge _0202D5EA + cmp r7, #0x0 + bne _0202D5EA + mov r0, #0x0 + pop {r3-r7, pc} +_0202D5EA: + ldrb r0, [r5, #0xf] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + cmp r0, #0x1 + beq _0202D604 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0202D544 + cmp r0, #0x0 + beq _0202D604 + mov r0, #0x0 + pop {r3-r7, pc} +_0202D604: + ldrh r3, [r5, #0xc] + ldr r2, [r4, #0x4] + cmp r2, r3 + ldrb r0, [r5, #0xf] + bge _0202D64E + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + beq _0202D61E + ldr r1, [r4, #0x0] + add r0, r6, #0x0 + bl sub_0202D400 + b _0202D634 +_0202D61E: + mov r3, #0x0 + cmp r2, #0x0 + ble _0202D634 +_0202D624: + ldr r0, [r5, #0x0] + ldrb r1, [r0, r3] + ldr r0, [r4, #0x0] + strb r1, [r0, r3] + ldr r0, [r4, #0x4] + add r3, r3, #0x1 + cmp r3, r0 + blt _0202D624 +_0202D634: + ldr r1, [r5, #0x0] + ldr r0, [r4, #0x4] + add r0, r1, r0 + str r0, [r5, #0x0] + ldrh r1, [r5, #0xc] + ldr r0, [r4, #0x4] + sub r0, r1, r0 + strh r0, [r5, #0xc] + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x4] + mov r0, #0x1 + pop {r3-r7, pc} +_0202D64E: + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + beq _0202D660 + ldr r1, [r4, #0x0] + add r0, r6, #0x0 + add r2, r3, #0x0 + bl sub_0202D400 + b _0202D66A +_0202D660: + ldr r0, [r5, #0x0] + ldr r1, [r4, #0x0] + add r2, r3, #0x0 + blx sub_020CE3E0 +_0202D66A: + ldrh r0, [r5, #0xc] + ldr r1, [r4, #0x0] + add r0, r1, r0 + str r0, [r4, #0x0] + ldrh r0, [r5, #0xc] + ldr r1, [r4, #0x4] + sub r0, r1, r0 + str r0, [r4, #0x4] + mov r0, #0x1 + pop {r3-r7, pc} + nop +_0202D680: .word 0x0000FFFF + + thumb_func_start sub_0202D684 +sub_0202D684: ; 0x0202D684 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r7, r3, #0x0 + bl sub_0202D4C4 + add r4, r0, #0x0 + bne _0202D69E + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0202D69E: + ldr r0, _0202D710 ; =0x0000FFFE + cmp r7, r0 + blt _0202D6A8 + bl sub_02020C2C +_0202D6A8: + ldr r0, [sp, #0x0] + bl sub_0202D9A0 + add r6, r0, #0x0 + ldr r0, _0202D714 ; =0x0000FFFF + cmp r6, r0 + bne _0202D6B8 + add r6, r7, #0x0 +_0202D6B8: + ldr r0, [sp, #0x24] + cmp r0, #0x0 + beq _0202D6EA + ldr r0, [r5, #0x14] + bl sub_0202D498 + add r1, r6, #0x3 + cmp r1, r0 + blt _0202D6D0 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0202D6D0: + ldr r0, [r5, #0x14] + ldr r1, [sp, #0x4] + ldr r3, _0202D718 ; =0x00000109 + add r2, r6, #0x0 + bl sub_0202D3A4 + ldr r0, [r5, #0x14] + bl sub_0202D4BC + ldrb r1, [r4, #0xf] + mov r0, #0x2 + orr r0, r1 + strb r0, [r4, #0xf] +_0202D6EA: + ldr r0, [sp, #0x0] + strh r6, [r4, #0xc] + strb r0, [r4, #0xe] + ldr r0, [sp, #0x4] + str r0, [r4, #0x0] + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _0202D700 + str r4, [r5, #0x4] + str r4, [r5, #0x0] + b _0202D708 +_0202D700: + str r4, [r0, #0x8] + ldr r0, [r5, #0x4] + str r0, [r4, #0x4] + str r4, [r5, #0x4] +_0202D708: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0202D710: .word 0x0000FFFE +_0202D714: .word 0x0000FFFF +_0202D718: .word 0x00000109 + + thumb_func_start sub_0202D71C +sub_0202D71C: ; 0x0202D71C + ldr r1, [r0, #0x10] + cmp r1, #0x0 + beq _0202D726 + add r0, r1, #0x0 + bx lr +_0202D726: + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202D730 + add r0, r1, #0x0 + bx lr +_0202D730: + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _0202D738 + mov r0, #0x0 +_0202D738: + bx lr + .balign 4 + + thumb_func_start sub_0202D73C +sub_0202D73C: ; 0x0202D73C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x10] + cmp r1, #0x0 + beq _0202D74C + mov r0, #0x0 + str r0, [r4, #0x10] + pop {r4, pc} +_0202D74C: + bl sub_0202D504 + cmp r0, #0x0 + bne _0202D75C + add r4, #0x8 + add r0, r4, #0x0 + bl sub_0202D504 +_0202D75C: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202D760 +sub_0202D760: ; 0x0202D760 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x4] + mov r7, #0x1 + str r2, [sp, #0x0] + cmp r0, #0x0 + ble _0202D7B6 +_0202D770: + add r0, r5, #0x0 + bl sub_0202D71C + add r6, r0, #0x0 + beq _0202D7B6 + add r0, r5, #0x0 + bl sub_0202D73C + ldr r2, [r5, #0x14] + add r0, r6, #0x0 + add r1, r4, #0x0 + add r3, r7, #0x0 + bl sub_0202D5BC + cmp r0, #0x0 + bne _0202D794 + str r6, [r5, #0x10] + b _0202D7B6 +_0202D794: + mov r0, #0x0 + ldr r1, [r4, #0x4] + mvn r0, r0 + cmp r1, r0 + bne _0202D7A4 + str r6, [r5, #0x10] + mov r0, #0x0 + pop {r3-r7, pc} +_0202D7A4: + add r0, r6, #0x0 + mov r1, #0x0 + mov r2, #0x10 + blx sub_020CE34C + ldr r0, [r4, #0x4] + ldr r7, [sp, #0x0] + cmp r0, #0x0 + bgt _0202D770 +_0202D7B6: + ldr r0, [r4, #0x4] + mov r2, #0x0 + cmp r0, #0x0 + ble _0202D7D2 + mov r1, #0xee +_0202D7C0: + ldr r0, [r4, #0x0] + add r2, r2, #0x1 + strb r1, [r0, #0x0] + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + ldr r0, [r4, #0x4] + cmp r2, r0 + blt _0202D7C0 +_0202D7D2: + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202D7D8 +sub_0202D7D8: ; 0x0202D7D8 + push {r3-r7, lr} + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r1, #0x0 + mov r2, #0x20 + add r5, r0, #0x0 + blx sub_020CE34C + lsl r7, r4, #0x4 + mov r0, #0xf + add r1, r7, #0x0 + bl sub_02016998 + mov r1, #0x0 + add r2, r7, #0x0 + str r0, [r5, #0x18] + blx sub_020CE34C + str r4, [r5, #0x1c] + str r6, [r5, #0x14] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0202D804 +sub_0202D804: ; 0x0202D804 + push {r4, lr} + add r4, r0, #0x0 + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0x18] + mov r1, #0x0 + lsl r2, r2, #0x4 + blx sub_020CE34C + mov r0, #0x0 + str r0, [r4, #0x0] + str r0, [r4, #0x4] + str r0, [r4, #0x8] + str r0, [r4, #0xc] + str r0, [r4, #0x10] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202D824 +sub_0202D824: ; 0x0202D824 + ldr r3, _0202D82C ; =sub_02016A18 + ldr r0, [r0, #0x18] + bx r3 + nop +_0202D82C: .word sub_02016A18 + 1 + + thumb_func_start sub_0202D830 +sub_0202D830: ; 0x0202D830 + push {r3-r4} + ldr r4, [r0, #0x1c] + mov r2, #0x0 + ldr r3, [r0, #0x18] + cmp r4, #0x0 + ble _0202D850 +_0202D83C: + ldrb r0, [r3, #0xe] + cmp r0, r1 + bne _0202D848 + mov r0, #0x1 + pop {r3-r4} + bx lr +_0202D848: + add r2, r2, #0x1 + add r3, #0x10 + cmp r2, r4 + blt _0202D83C +_0202D850: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_0202D858 +sub_0202D858: ; 0x0202D858 + push {r3-r4, lr} + sub sp, #0x1c + ldr r3, _0202D880 ; =0x020EEB04 + add r4, r0, #0x0 + add r2, sp, #0x0 + mov r1, #0x1a +_0202D864: + ldrb r0, [r3, #0x0] + add r3, r3, #0x1 + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0202D864 + cmp r4, #0x1a + blo _0202D878 + bl sub_02020C2C +_0202D878: + add r0, sp, #0x0 + ldrb r0, [r0, r4] + add sp, #0x1c + pop {r3-r4, pc} + .balign 4 +_0202D880: .word 0x020EEB04 + + thumb_func_start sub_0202D884 +sub_0202D884: ; 0x0202D884 + push {r3-r4, lr} + sub sp, #0x1c + ldr r3, _0202D8AC ; =0x020EEB1E + add r4, r0, #0x0 + add r2, sp, #0x0 + mov r1, #0x1a +_0202D890: + ldrb r0, [r3, #0x0] + add r3, r3, #0x1 + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0202D890 + cmp r4, #0x1a + blo _0202D8A4 + bl sub_02020C2C +_0202D8A4: + add r0, sp, #0x0 + ldrb r0, [r0, r4] + add sp, #0x1c + pop {r3-r4, pc} + .balign 4 +_0202D8AC: .word 0x020EEB1E + + thumb_func_start sub_0202D8B0 +sub_0202D8B0: ; 0x0202D8B0 + cmp r0, #0xd + bgt _0202D8C4 + cmp r0, #0x7 + blt _0202D8CC + beq _0202D8C8 + cmp r0, #0x9 + beq _0202D8C8 + cmp r0, #0xd + beq _0202D8C8 + b _0202D8CC +_0202D8C4: + cmp r0, #0x12 + bne _0202D8CC +_0202D8C8: + mov r0, #0x1 + bx lr +_0202D8CC: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0202D8D0 +sub_0202D8D0: ; 0x0202D8D0 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _0202D914 ; =0x021C59E0 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + cmp r0, #0x0 + bne _0202D8EC + mov r0, #0xf + mov r1, #0x18 + bl sub_02016998 + ldr r1, _0202D914 ; =0x021C59E0 + str r0, [r1, #0x0] +_0202D8EC: + ldr r0, _0202D914 ; =0x021C59E0 + mov r3, #0x0 + ldr r1, [r0, #0x0] + add r2, r3, #0x0 + str r5, [r1, #0x0] + ldr r1, [r0, #0x0] + str r4, [r1, #0x4] + ldr r1, [r0, #0x0] + str r6, [r1, #0x8] +_0202D8FE: + ldr r1, [r0, #0x0] + add r1, r1, r3 + add r3, r3, #0x1 + strb r2, [r1, #0xc] + cmp r3, #0x8 + blt _0202D8FE + ldr r0, _0202D914 ; =0x021C59E0 + ldr r0, [r0, #0x0] + strb r2, [r0, #0x14] + pop {r4-r6, pc} + nop +_0202D914: .word 0x021C59E0 + + thumb_func_start sub_0202D918 +sub_0202D918: ; 0x0202D918 + push {r3, lr} + ldr r0, _0202D930 ; =0x021C59E0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202D92C + bl sub_02016A18 + ldr r0, _0202D930 ; =0x021C59E0 + mov r1, #0x0 + str r1, [r0, #0x0] +_0202D92C: + pop {r3, pc} + nop +_0202D930: .word 0x021C59E0 + + thumb_func_start sub_0202D934 +sub_0202D934: ; 0x0202D934 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r4, #0x16 + bge _0202D94C + mov r0, #0xc + mul r1, r0 + ldr r0, _0202D998 ; =0x020EEB38 + ldr r4, [r0, r1] + b _0202D974 +_0202D94C: + ldr r0, _0202D99C ; =0x021C59E0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0202D958 + bl sub_02020C2C +_0202D958: + ldr r0, _0202D99C ; =0x021C59E0 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x4] + add r0, #0x16 + cmp r4, r0 + ble _0202D96A + bl sub_02031454 + pop {r3-r7, pc} +_0202D96A: + ldr r1, [r1, #0x0] + sub r4, #0x16 + mov r0, #0xc + mul r0, r4 + ldr r4, [r1, r0] +_0202D974: + cmp r4, #0x0 + beq _0202D996 + ldr r0, _0202D99C ; =0x021C59E0 + ldr r3, [r0, #0x0] + cmp r3, #0x0 + beq _0202D98C + ldr r3, [r3, #0x8] + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + blx r4 + pop {r3-r7, pc} +_0202D98C: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + mov r3, #0x0 + blx r4 +_0202D996: + pop {r3-r7, pc} + .balign 4 +_0202D998: .word 0x020EEB38 +_0202D99C: .word 0x021C59E0 + + thumb_func_start sub_0202D9A0 +sub_0202D9A0: ; 0x0202D9A0 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 + cmp r5, #0x16 + bge _0202D9B6 + mov r0, #0xc + add r1, r5, #0x0 + mul r1, r0 + ldr r0, _0202D9FC ; =0x020EEB3C + ldr r0, [r0, r1] + b _0202D9EE +_0202D9B6: + ldr r0, _0202DA00 ; =0x021C59E0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0202D9C2 + bl sub_02020C2C +_0202D9C2: + ldr r0, _0202DA00 ; =0x021C59E0 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + bne _0202D9D2 + bl sub_02031454 + mov r0, #0x0 + pop {r3-r5, pc} +_0202D9D2: + ldr r0, [r1, #0x4] + add r0, #0x16 + cmp r5, r0 + ble _0202D9E2 + bl sub_02031454 + mov r0, #0x0 + pop {r3-r5, pc} +_0202D9E2: + ldr r1, [r1, #0x0] + sub r5, #0x16 + mov r0, #0xc + mul r0, r5 + add r0, r1, r0 + ldr r0, [r0, #0x4] +_0202D9EE: + cmp r0, #0x0 + beq _0202D9F6 + blx r0 + add r4, r0, #0x0 +_0202D9F6: + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_0202D9FC: .word 0x020EEB3C +_0202DA00: .word 0x021C59E0 + + thumb_func_start sub_0202DA04 +sub_0202DA04: ; 0x0202DA04 + cmp r0, #0x16 + bge _0202DA1C + mov r1, #0xc + mul r1, r0 + ldr r0, _0202DA38 ; =0x020EEB40 + ldr r0, [r0, r1] + cmp r0, #0x0 + beq _0202DA18 + mov r0, #0x1 + bx lr +_0202DA18: + mov r0, #0x0 + bx lr +_0202DA1C: + ldr r1, _0202DA3C ; =0x021C59E0 + sub r0, #0x16 + ldr r1, [r1, #0x0] + ldr r2, [r1, #0x0] + mov r1, #0xc + mul r1, r0 + add r0, r2, r1 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202DA34 + mov r0, #0x1 + bx lr +_0202DA34: + mov r0, #0x0 + bx lr + .balign 4 +_0202DA38: .word 0x020EEB40 +_0202DA3C: .word 0x021C59E0 + + thumb_func_start sub_0202DA40 +sub_0202DA40: ; 0x0202DA40 + push {r3-r5, lr} + add r3, r0, #0x0 + cmp r3, #0x16 + bge _0202DA58 + mov r4, #0xc + mul r4, r3 + ldr r3, _0202DA70 ; =0x020EEB40 + add r0, r1, #0x0 + ldr r3, [r3, r4] + mov r1, #0x0 + blx r3 + pop {r3-r5, pc} +_0202DA58: + ldr r0, _0202DA74 ; =0x021C59E0 + sub r3, #0x16 + ldr r4, [r0, #0x0] + add r0, r1, #0x0 + ldr r1, [r4, #0x8] + ldr r5, [r4, #0x0] + mov r4, #0xc + mul r4, r3 + add r3, r5, r4 + ldr r3, [r3, #0x8] + blx r3 + pop {r3-r5, pc} + .balign 4 +_0202DA70: .word 0x020EEB40 +_0202DA74: .word 0x021C59E0 + + thumb_func_start sub_0202DA78 +sub_0202DA78: ; 0x0202DA78 + ldr r0, _0202DA7C ; =0x0000FFFF + bx lr + .balign 4 +_0202DA7C: .word 0x0000FFFF + + thumb_func_start sub_0202DA80 +sub_0202DA80: ; 0x0202DA80 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0202DA84 +sub_0202DA84: ; 0x0202DA84 + mov r0, #0x1 + bx lr + + thumb_func_start sub_0202DA88 +sub_0202DA88: ; 0x0202DA88 + mov r0, #0x2 + bx lr + + thumb_func_start sub_0202DA8C +sub_0202DA8C: ; 0x0202DA8C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02031190 + cmp r0, #0x0 + bne _0202DACA + ldr r4, _0202DACC ; =0x021C59E0 + mov r1, #0x1 + ldr r0, [r4, #0x0] + add r0, r0, r5 + strb r1, [r0, #0xc] + mov r5, #0x0 +_0202DAA4: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + beq _0202DABA + ldr r0, [r4, #0x0] + add r0, r0, r5 + ldrb r0, [r0, #0xc] + cmp r0, #0x0 + beq _0202DACA +_0202DABA: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0202DAA4 + mov r1, #0x0 + mov r0, #0xe + add r2, r1, #0x0 + bl sub_02030BC4 +_0202DACA: + pop {r3-r5, pc} + .balign 4 +_0202DACC: .word 0x021C59E0 + + thumb_func_start sub_0202DAD0 +sub_0202DAD0: ; 0x0202DAD0 + ldr r0, _0202DAF0 ; =0x021C59E0 + mov r3, #0x0 + ldr r1, [r0, #0x0] + str r3, [r1, #0x0] + ldr r1, [r0, #0x0] + str r3, [r1, #0x4] + ldr r1, [r0, #0x0] + str r3, [r1, #0x8] + ldr r0, [r0, #0x0] + mov r1, #0x1 + strb r1, [r0, #0x14] + ldr r3, _0202DAF4 ; =sub_020311D0 + mov r0, #0xf + add r1, r2, #0x0 + bx r3 + nop +_0202DAF0: .word 0x021C59E0 +_0202DAF4: .word sub_020311D0 + 1 + + thumb_func_start sub_0202DAF8 +sub_0202DAF8: ; 0x0202DAF8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02031190 + cmp r0, #0x0 + bne _0202DB0E + ldr r0, _0202DB10 ; =0x021C59E0 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + strb r1, [r0, #0xc] +_0202DB0E: + pop {r4, pc} + .balign 4 +_0202DB10: .word 0x021C59E0 + + thumb_func_start sub_0202DB14 +sub_0202DB14: ; 0x0202DB14 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + str r1, [sp, #0x4] + bl sub_020238F4 + str r0, [sp, #0x8] + ldr r0, _0202DBA0 ; =0x021C59E4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0202DB9A + mov r1, #0xe9 + mov r0, #0xf + lsl r1, r1, #0x2 + bl sub_02016998 + ldr r1, _0202DBA0 ; =0x021C59E4 + mov r2, #0xe9 + str r0, [r1, #0x0] + mov r1, #0x0 + lsl r2, r2, #0x2 + blx sub_020CE34C + mov r6, #0x0 + ldr r7, _0202DBA0 ; =0x021C59E4 + add r4, r6, #0x0 + add r5, r6, #0x0 +_0202DB4A: + ldr r1, [r7, #0x0] + add r0, r1, #0x0 + add r0, #0x28 + add r2, r0, r4 + mov r0, #0xd2 + add r1, r1, r5 + lsl r0, r0, #0x2 + str r2, [r1, r0] + add r0, r6, #0x0 + bl sub_0202DE78 + add r6, r6, #0x1 + add r4, #0x68 + add r5, r5, #0x4 + cmp r6, #0x8 + blt _0202DB4A + ldr r2, _0202DBA0 ; =0x021C59E4 + mov r1, #0x3a + ldr r3, [r2, #0x0] + mov r0, #0x0 + lsl r1, r1, #0x4 + strb r0, [r3, r1] + ldr r4, [r2, #0x0] + add r3, r1, #0x1 + strb r0, [r4, r3] + add r3, r1, #0x2 + ldr r4, [r2, #0x0] + sub r1, #0x58 + strb r0, [r4, r3] + ldr r3, [r2, #0x0] + ldr r0, [sp, #0x0] + str r0, [r3, #0x4] + ldr r3, [r2, #0x0] + ldr r0, [sp, #0x4] + str r0, [r3, #0x0] + ldr r2, [r2, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [r2, r1] + bl sub_0202393C +_0202DB9A: + add sp, #0xc + pop {r4-r7, pc} + nop +_0202DBA0: .word 0x021C59E4 + + thumb_func_start sub_0202DBA4 +sub_0202DBA4: ; 0x0202DBA4 + push {r3-r5, lr} + ldr r1, _0202DBDC ; =0x021C59E4 + ldr r0, [r1, #0x0] + cmp r0, #0x0 + beq _0202DBD8 + mov r4, #0x0 + mov r0, #0xd2 + add r5, r4, #0x0 + add r3, r4, #0x0 + lsl r0, r0, #0x2 +_0202DBB8: + ldr r2, [r1, #0x0] + add r4, r4, #0x1 + add r2, r2, r5 + add r5, r5, #0x4 + str r3, [r2, r0] + cmp r4, #0x8 + blt _0202DBB8 + ldr r0, _0202DBDC ; =0x021C59E4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202DBD2 + bl sub_02016A18 +_0202DBD2: + ldr r0, _0202DBDC ; =0x021C59E4 + mov r1, #0x0 + str r1, [r0, #0x0] +_0202DBD8: + pop {r3-r5, pc} + nop +_0202DBDC: .word 0x021C59E4 + + thumb_func_start sub_0202DBE0 +sub_0202DBE0: ; 0x0202DBE0 + push {r3-r7, lr} + bl sub_02031190 + add r4, r0, #0x0 + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl sub_0202881C + add r7, r0, #0x0 + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl sub_020286EC + str r0, [sp, #0x0] + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl sub_02029AFC + add r6, r0, #0x0 + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl sub_020238F4 + ldr r1, _0202DCD8 ; =0x021C59E4 + ldr r2, [r1, #0x0] + lsl r1, r4, #0x2 + add r2, r2, r1 + mov r1, #0xd2 + lsl r1, r1, #0x2 + ldr r1, [r2, r1] + bl sub_0202393C + mov r0, #0x68 + add r5, r4, #0x0 + mul r5, r0 + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r0, [r0, #0x0] + add r0, #0x64 + add r0, r0, r5 + blx sub_020CD5A0 + add r0, r7, #0x0 + mov r1, #0x1 + mov r2, #0x0 + bl sub_020287A8 + ldr r1, _0202DCD8 ; =0x021C59E4 + mov r2, #0x10 + ldr r1, [r1, #0x0] + add r1, #0x54 + add r1, r1, r5 + blx sub_020CE3E0 + add r0, r6, #0x0 + bl sub_02029B38 + ldr r1, _0202DCD8 ; =0x021C59E4 + ldr r1, [r1, #0x0] + add r1, r1, r5 + add r1, #0x6b + strb r0, [r1, #0x0] + add r0, r6, #0x0 + bl sub_02029B3C + ldr r2, _0202DCD8 ; =0x021C59E4 + ldr r1, [r2, #0x0] + add r1, r1, r5 + add r1, #0x6c + strb r0, [r1, #0x0] + ldr r0, [r2, #0x0] + ldr r0, [r0, #0x4] + bl sub_02025C18 + ldr r2, _0202DCD8 ; =0x021C59E4 + ldr r1, [r2, #0x0] + add r1, r1, r5 + add r1, #0x6d + strb r0, [r1, #0x0] + ldr r2, [r2, #0x0] + mov r0, #0x1 + add r2, #0x6d + ldrb r1, [r2, r5] + sub r0, r0, r1 + strb r0, [r2, r5] + ldr r0, [sp, #0x0] + bl sub_02028228 + ldr r1, _0202DCD8 ; =0x021C59E4 + ldr r1, [r1, #0x0] + add r1, #0x48 + add r1, r1, r5 + blx sub_02096CCC + ldr r0, _0202DCD8 ; =0x021C59E4 + mov r1, #0x0 + ldr r0, [r0, #0x0] + mov r2, #0x20 + add r0, #0x8 + add r0, r0, r5 + blx sub_020CE34C + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x0] + cmp r0, #0x0 + beq _0202DCC4 + add r1, #0x8 + add r1, r1, r5 + bl sub_02023ACC +_0202DCC4: + ldr r1, _0202DCD8 ; =0x021C59E4 + mov r0, #0x3 + ldr r1, [r1, #0x0] + mov r2, #0x68 + add r1, #0x8 + add r1, r1, r5 + bl sub_02030ADC + pop {r3-r7, pc} + nop +_0202DCD8: .word 0x021C59E4 + + thumb_func_start sub_0202DCDC +sub_0202DCDC: ; 0x0202DCDC + mov r0, #0x68 + bx lr + + thumb_func_start sub_0202DCE0 +sub_0202DCE0: ; 0x0202DCE0 + ldr r0, _0202DCF4 ; =0x021C59E4 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _0202DCF0 + mov r0, #0x3a + mov r1, #0x1 + lsl r0, r0, #0x4 + strb r1, [r2, r0] +_0202DCF0: + bx lr + nop +_0202DCF4: .word 0x021C59E4 + + thumb_func_start sub_0202DCF8 +sub_0202DCF8: ; 0x0202DCF8 + ldr r0, _0202DD04 ; =0x021C59E4 + ldr r1, [r0, #0x0] + mov r0, #0x3a + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_0202DD04: .word 0x021C59E4 + + thumb_func_start sub_0202DD08 +sub_0202DD08: ; 0x0202DD08 + push {r3-r5, lr} + ldr r1, _0202DD78 ; =0x021C59E4 + add r4, r2, #0x0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _0202DD74 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + beq _0202DD74 + ldr r1, _0202DD78 ; =0x021C59E4 + mov r2, #0x68 + ldr r5, [r1, #0x0] + add r1, r4, #0x0 + add r1, #0x62 + ldrb r1, [r1, #0x0] + add r5, #0x8 + add r0, r4, #0x0 + add r3, r1, #0x0 + mul r3, r2 + add r1, r5, r3 + blx sub_020CE3E0 + add r4, #0x62 + ldr r2, _0202DD78 ; =0x021C59E4 + ldrb r3, [r4, #0x0] + ldr r0, [r2, #0x0] + ldr r1, _0202DD7C ; =0x000003A2 + strb r3, [r0, r1] + add r0, r1, #0x0 + ldr r3, [r2, #0x0] + sub r0, #0xa + add r4, r3, r0 + ldrb r3, [r3, r1] + ldrb r0, [r4, r3] + cmp r0, #0x2 + bhs _0202DD74 + mov r0, #0x1 + strb r0, [r4, r3] + ldr r0, [r2, #0x0] + ldrb r4, [r0, r1] + bl sub_02031190 + cmp r4, r0 + bne _0202DD74 + ldr r0, _0202DD78 ; =0x021C59E4 + mov r2, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r4 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] +_0202DD74: + pop {r3-r5, pc} + nop +_0202DD78: .word 0x021C59E4 +_0202DD7C: .word 0x000003A2 + + thumb_func_start sub_0202DD80 +sub_0202DD80: ; 0x0202DD80 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0202DDE0 ; =0x021C59E4 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202DDDC + mov r3, #0x68 + add r4, r5, #0x0 + add r0, r2, #0x0 + mul r4, r3 + add r1, #0x8 + add r1, r1, r4 + add r2, r3, #0x0 + blx sub_020CE3E0 + ldr r0, _0202DDE0 ; =0x021C59E4 + add r1, r5, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x64 + add r0, r0, r4 + bl sub_0202EFAC + ldr r0, _0202DDE0 ; =0x021C59E4 + mov r2, #0x1 + ldr r0, [r0, #0x0] + add r1, r0, r5 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + bl sub_02031190 + cmp r5, r0 + bne _0202DDD2 + ldr r0, _0202DDE0 ; =0x021C59E4 + mov r2, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r5 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + pop {r3-r5, pc} +_0202DDD2: + ldr r0, _0202DDE0 ; =0x021C59E4 + mov r2, #0x1 + ldr r1, [r0, #0x0] + ldr r0, _0202DDE4 ; =0x000003A1 + strb r2, [r1, r0] +_0202DDDC: + pop {r3-r5, pc} + nop +_0202DDE0: .word 0x021C59E4 +_0202DDE4: .word 0x000003A1 + + thumb_func_start sub_0202DDE8 +sub_0202DDE8: ; 0x0202DDE8 + push {r3-r7, lr} + ldr r0, _0202DE70 ; =0x021C59E4 + ldr r1, [r0, #0x0] + ldr r0, _0202DE74 ; =0x000003A1 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0202DDFA + mov r0, #0x0 + pop {r3-r7, pc} +_0202DDFA: + mov r0, #0x5 + bl sub_02031354 + cmp r0, #0x0 + bne _0202DE6C + mov r4, #0x0 + add r5, r4, #0x0 + add r7, r4, #0x0 +_0202DE0A: + ldr r0, _0202DE70 ; =0x021C59E4 + ldr r2, [r0, #0x0] + mov r0, #0xe6 + add r1, r2, r4 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202DE4A + add r0, r2, r5 + add r0, #0x6a + strb r4, [r0, #0x0] + ldr r0, _0202DE70 ; =0x021C59E4 + ldr r6, [r0, #0x0] + bl sub_02023924 + add r2, r0, #0x0 + mov r0, #0xd2 + add r1, r6, r7 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + add r6, #0x28 + add r1, r6, r5 + blx sub_020CE3E0 + ldr r1, _0202DE70 ; =0x021C59E4 + mov r0, #0x4 + ldr r1, [r1, #0x0] + mov r2, #0x68 + add r1, #0x8 + add r1, r1, r5 + bl sub_02031000 +_0202DE4A: + add r4, r4, #0x1 + add r5, #0x68 + add r7, r7, #0x4 + cmp r4, #0x8 + blt _0202DE0A + mov r1, #0x0 + mov r0, #0x5 + add r2, r1, #0x0 + bl sub_02031000 + ldr r0, _0202DE70 ; =0x021C59E4 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, _0202DE74 ; =0x000003A1 + strb r2, [r1, r0] + mov r0, #0x1 + pop {r3-r7, pc} +_0202DE6C: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0202DE70: .word 0x021C59E4 +_0202DE74: .word 0x000003A1 + + thumb_func_start sub_0202DE78 +sub_0202DE78: ; 0x0202DE78 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0202DEA0 ; =0x021C59E4 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x2 + add r1, r1, r0 + mov r0, #0xd2 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + bl sub_02023948 + ldr r0, _0202DEA0 ; =0x021C59E4 + mov r2, #0x0 + ldr r0, [r0, #0x0] + add r1, r0, r4 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + pop {r4, pc} + nop +_0202DEA0: .word 0x021C59E4 + + thumb_func_start sub_0202DEA4 +sub_0202DEA4: ; 0x0202DEA4 + ldr r1, _0202DEBC ; =0x021C59E4 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0xe6 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0x1 + bne _0202DEB8 + mov r0, #0x1 + bx lr +_0202DEB8: + mov r0, #0x0 + bx lr + .balign 4 +_0202DEBC: .word 0x021C59E4 + + thumb_func_start sub_0202DEC0 +sub_0202DEC0: ; 0x0202DEC0 + ldr r1, _0202DEDC ; =0x021C59E4 + mov r2, #0x1 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0xe6 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0x2 + beq _0202DED8 + cmp r0, #0x1 + beq _0202DED8 + mov r2, #0x0 +_0202DED8: + add r0, r2, #0x0 + bx lr + .balign 4 +_0202DEDC: .word 0x021C59E4 + + thumb_func_start sub_0202DEE0 +sub_0202DEE0: ; 0x0202DEE0 + ldr r1, _0202DEF0 ; =0x021C59E4 + mov r2, #0x2 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + bx lr + .balign 4 +_0202DEF0: .word 0x021C59E4 + + thumb_func_start sub_0202DEF4 +sub_0202DEF4: ; 0x0202DEF4 + ldr r1, _0202DF04 ; =0x021C59E4 + mov r2, #0x3 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + bx lr + .balign 4 +_0202DF04: .word 0x021C59E4 + + thumb_func_start sub_0202DF08 +sub_0202DF08: ; 0x0202DF08 + ldr r1, _0202DF24 ; =0x021C59E4 + mov r0, #0x0 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + lsl r1, r1, #0x2 +_0202DF12: + ldrb r2, [r3, r1] + cmp r2, #0x1 + beq _0202DF22 + add r0, r0, #0x1 + add r3, r3, #0x1 + cmp r0, #0x8 + blt _0202DF12 + mov r0, #0xff +_0202DF22: + bx lr + .balign 4 +_0202DF24: .word 0x021C59E4 + + thumb_func_start sub_0202DF28 +sub_0202DF28: ; 0x0202DF28 + push {r3-r4} + ldr r1, _0202DF50 ; =0x021C59E4 + mov r0, #0x0 + ldr r4, [r1, #0x0] + mov r1, #0xe6 + add r3, r0, #0x0 + lsl r1, r1, #0x2 +_0202DF36: + ldrb r2, [r4, r1] + cmp r2, #0x2 + beq _0202DF40 + cmp r2, #0x3 + bne _0202DF42 +_0202DF40: + add r0, r0, #0x1 +_0202DF42: + add r3, r3, #0x1 + add r4, r4, #0x1 + cmp r3, #0x8 + blt _0202DF36 + pop {r3-r4} + bx lr + nop +_0202DF50: .word 0x021C59E4 + + thumb_func_start sub_0202DF54 +sub_0202DF54: ; 0x0202DF54 + push {r4-r6, lr} + ldr r0, _0202DFA0 ; =0x021C59E4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202DF9C + bl sub_02030F20 + cmp r0, #0x0 + beq _0202DF9C + mov r6, #0xe6 + ldr r4, _0202DFA0 ; =0x021C59E4 + mov r5, #0x0 + lsl r6, r6, #0x2 +_0202DF6E: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + bne _0202DF96 + cmp r5, #0x0 + bne _0202DF86 + bl sub_02031280 + cmp r0, #0x0 + bne _0202DF96 +_0202DF86: + ldr r0, [r4, #0x0] + add r0, r0, r5 + ldrb r0, [r0, r6] + cmp r0, #0x0 + beq _0202DF96 + add r0, r5, #0x0 + bl sub_0202DE78 +_0202DF96: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0202DF6E +_0202DF9C: + pop {r4-r6, pc} + nop +_0202DFA0: .word 0x021C59E4 + + thumb_func_start sub_0202DFA4 +sub_0202DFA4: ; 0x0202DFA4 + ldr r1, _0202DFD4 ; =0x021C59E4 + ldr r3, [r1, #0x0] + cmp r3, #0x0 + bne _0202DFB0 + mov r0, #0x0 + bx lr +_0202DFB0: + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x1 + beq _0202DFC4 + cmp r1, #0x2 + beq _0202DFC4 + cmp r1, #0x3 + bne _0202DFD0 +_0202DFC4: + lsl r0, r0, #0x2 + add r1, r3, r0 + mov r0, #0xd2 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + bx lr +_0202DFD0: + mov r0, #0x0 + bx lr + .balign 4 +_0202DFD4: .word 0x021C59E4 + + thumb_func_start sub_0202DFD8 +sub_0202DFD8: ; 0x0202DFD8 + ldr r1, _0202DFF8 ; =0x021C59E4 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202DFF2 + mov r1, #0x68 + add r3, #0x48 + mul r1, r0 + add r0, r3, r1 + bx lr +_0202DFF2: + mov r0, #0x0 + bx lr + nop +_0202DFF8: .word 0x021C59E4 + + thumb_func_start sub_0202DFFC +sub_0202DFFC: ; 0x0202DFFC + ldr r1, _0202E01C ; =0x021C59E4 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E016 + mov r1, #0x68 + add r3, #0x54 + mul r1, r0 + add r0, r3, r1 + bx lr +_0202E016: + mov r0, #0x0 + bx lr + nop +_0202E01C: .word 0x021C59E4 + + thumb_func_start sub_0202E020 +sub_0202E020: ; 0x0202E020 + ldr r1, _0202E040 ; =0x021C59E4 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E03C + mov r1, #0x68 + mul r1, r0 + add r0, r3, r1 + add r0, #0x6b + ldrb r0, [r0, #0x0] + bx lr +_0202E03C: + mov r0, #0x0 + bx lr + .balign 4 +_0202E040: .word 0x021C59E4 + + thumb_func_start sub_0202E044 +sub_0202E044: ; 0x0202E044 + ldr r1, _0202E064 ; =0x021C59E4 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E060 + mov r1, #0x68 + mul r1, r0 + add r0, r3, r1 + add r0, #0x6c + ldrb r0, [r0, #0x0] + bx lr +_0202E060: + mov r0, #0x0 + bx lr + .balign 4 +_0202E064: .word 0x021C59E4 + + thumb_func_start sub_0202E068 +sub_0202E068: ; 0x0202E068 + ldr r1, _0202E088 ; =0x021C59E4 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E084 + mov r1, #0x68 + mul r1, r0 + add r0, r3, r1 + add r0, #0x6d + ldrb r0, [r0, #0x0] + bx lr +_0202E084: + mov r0, #0x0 + bx lr + .balign 4 +_0202E088: .word 0x021C59E4 + + thumb_func_start sub_0202E08C +sub_0202E08C: ; 0x0202E08C + push {r4-r6, lr} + mov r4, #0x0 + add r5, r4, #0x0 + add r6, r4, #0x0 +_0202E094: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + beq _0202E0E8 + ldr r0, _0202E0F4 ; =0x021C59E4 + ldr r0, [r0, #0x0] + add r1, r0, r4 + mov r0, #0xe6 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202E0E8 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + beq _0202E0E8 + ldr r0, _0202E0F4 ; =0x021C59E4 + ldr r1, _0202E0F8 ; =0x00000399 + ldr r0, [r0, #0x0] + add r2, r0, r4 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E0E8 + add r1, r6, #0x0 + add r2, r0, r5 +_0202E0D0: + add r3, r2, #0x0 + add r3, #0x70 + ldrb r0, [r2, #0x8] + ldrb r3, [r3, #0x0] + cmp r0, r3 + beq _0202E0E0 + mov r0, #0x0 + pop {r4-r6, pc} +_0202E0E0: + add r1, r1, #0x1 + add r2, r2, #0x1 + cmp r1, #0x20 + blt _0202E0D0 +_0202E0E8: + add r4, r4, #0x1 + add r5, #0x68 + cmp r4, #0x7 + blt _0202E094 + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0202E0F4: .word 0x021C59E4 +_0202E0F8: .word 0x00000399 + + thumb_func_start sub_0202E0FC +sub_0202E0FC: ; 0x0202E0FC + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _0202E1B4 ; =0x021C59E4 + add r6, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202E1B0 + cmp r7, #0x2 + beq _0202E11C + bl sub_02031190 + bl sub_020313CC + mov r1, #0x1 + and r0, r1 + str r0, [sp, #0x0] +_0202E11C: + mov r4, #0x0 + bl sub_02030F20 + cmp r0, #0x0 + ble _0202E1B0 + add r5, r4, #0x0 +_0202E128: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + beq _0202E1A4 + ldr r0, _0202E1B4 ; =0x021C59E4 + mov r1, #0xe6 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x2 + add r2, r0, r4 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E1A4 + cmp r7, #0x0 + bne _0202E16E + add r0, r4, #0x0 + bl sub_020313CC + mov r1, #0x1 + and r1, r0 + ldr r0, [sp, #0x0] + cmp r0, r1 + beq _0202E1A4 + ldr r0, _0202E1B4 ; =0x021C59E4 + mov r1, #0xda + ldr r0, [r0, #0x0] + lsl r1, r1, #0x2 + add r0, r0, r5 + ldrh r1, [r0, r1] + add r2, r1, r6 + mov r1, #0xda + lsl r1, r1, #0x2 + strh r2, [r0, r1] + b _0202E1A4 +_0202E16E: + cmp r7, #0x1 + bne _0202E194 + add r0, r4, #0x0 + bl sub_020313CC + mov r1, #0x1 + and r1, r0 + ldr r0, [sp, #0x0] + cmp r0, r1 + beq _0202E1A4 + ldr r0, _0202E1B4 ; =0x021C59E4 + ldr r1, _0202E1B8 ; =0x0000036A + ldr r0, [r0, #0x0] + add r0, r0, r5 + ldrh r1, [r0, r1] + add r2, r1, r6 + ldr r1, _0202E1B8 ; =0x0000036A + strh r2, [r0, r1] + b _0202E1A4 +_0202E194: + mov r1, #0xdb + add r0, r0, r5 + lsl r1, r1, #0x2 + ldrh r1, [r0, r1] + add r2, r1, r6 + mov r1, #0xdb + lsl r1, r1, #0x2 + strh r2, [r0, r1] +_0202E1A4: + add r5, r5, #0x6 + add r4, r4, #0x1 + bl sub_02030F20 + cmp r4, r0 + blt _0202E128 +_0202E1B0: + pop {r3-r7, pc} + nop +_0202E1B4: .word 0x021C59E4 +_0202E1B8: .word 0x0000036A + + thumb_func_start sub_0202E1BC +sub_0202E1BC: ; 0x0202E1BC + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + bl sub_020286EC + str r0, [sp, #0x4] + mov r4, #0x0 + bl sub_02030F20 + cmp r0, #0x0 + ble _0202E224 + add r5, r4, #0x0 +_0202E1D4: + add r0, r4, #0x0 + bl sub_0202DFD8 + add r1, r0, #0x0 + beq _0202E218 + add r0, r7, #0x0 + add r2, sp, #0x8 + bl sub_02033874 + cmp r0, #0x0 + beq _0202E1EE + cmp r0, #0x1 + bne _0202E218 +_0202E1EE: + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bge _0202E1F8 + bl sub_02020C2C +_0202E1F8: + ldr r0, _0202E254 ; =0x021C59E4 + mov r2, #0xda + ldr r0, [r0, #0x0] + ldr r3, _0202E258 ; =0x0000036A + add r6, r0, r5 + mov r0, #0xdb + lsl r0, r0, #0x2 + ldrh r0, [r6, r0] + lsl r2, r2, #0x2 + str r0, [sp, #0x0] + ldrh r2, [r6, r2] + ldrh r3, [r6, r3] + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x8] + bl sub_02028608 +_0202E218: + add r5, r5, #0x6 + add r4, r4, #0x1 + bl sub_02030F20 + cmp r4, r0 + blt _0202E1D4 +_0202E224: + mov r3, #0xda + mov r2, #0x0 + lsl r3, r3, #0x2 + ldr r6, _0202E254 ; =0x021C59E4 + add r1, r2, #0x0 + add r0, r2, #0x0 + add r4, r3, #0x2 + add r5, r3, #0x4 +_0202E234: + ldr r7, [r6, #0x0] + add r2, r2, #0x1 + add r7, r7, r1 + strh r0, [r7, r3] + ldr r7, [r6, #0x0] + add r7, r7, r1 + strh r0, [r7, r4] + ldr r7, [r6, #0x0] + add r7, r7, r1 + add r1, r1, #0x6 + strh r0, [r7, r5] + cmp r2, #0x8 + blt _0202E234 + add sp, #0xc + pop {r4-r7, pc} + nop +_0202E254: .word 0x021C59E4 +_0202E258: .word 0x0000036A + + thumb_func_start sub_0202E25C +sub_0202E25C: ; 0x0202E25C + push {r4, lr} + add r4, r0, #0x0 + cmp r1, #0x1 + bne _0202E26E + mov r0, #0x0 + mov r1, #0x1 + bl sub_0202E0FC + b _0202E27E +_0202E26E: + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + bne _0202E27E + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_0202E0FC +_0202E27E: + add r0, r4, #0x0 + bl sub_0202E1BC + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202E288 +sub_0202E288: ; 0x0202E288 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x2 + bl sub_0202E0FC + add r0, r4, #0x0 + bl sub_0202E1BC + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0202E29C +sub_0202E29C: ; 0x0202E29C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0202E334 ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _0202E332 + mov r1, #0xdb + mov r0, #0xf + lsl r1, r1, #0x4 + bl sub_02016998 + ldr r1, _0202E334 ; =0x021C59E8 + mov r2, #0xdb + str r0, [r1, #0x8] + mov r1, #0x0 + lsl r2, r2, #0x4 + blx sub_020CE34C + bl sub_0202CEEC + add r1, r0, #0x0 + mov r0, #0xf + bl sub_02016998 + ldr r1, _0202E334 ; =0x021C59E8 + ldr r2, [r1, #0x8] + ldr r1, _0202E338 ; =0x00000CA4 + str r0, [r2, r1] + bl sub_0202CEEC + add r2, r0, #0x0 + ldr r0, _0202E334 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E338 ; =0x00000CA4 + ldr r0, [r1, r0] + mov r1, #0x0 + blx sub_020CE34C + bl sub_02023AC4 + add r1, r0, #0x0 + mov r0, #0xf + bl sub_02016998 + ldr r1, _0202E334 ; =0x021C59E8 + ldr r2, [r1, #0x8] + ldr r1, _0202E33C ; =0x00000CBC + str r0, [r2, r1] + bl sub_02023AC4 + add r2, r0, #0x0 + ldr r0, _0202E334 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E33C ; =0x00000CBC + ldr r0, [r1, r0] + mov r1, #0x0 + blx sub_020CE34C + ldr r2, _0202E334 ; =0x021C59E8 + mov r1, #0x33 + ldr r3, _0202E340 ; =0x00000333 + ldr r0, [r2, #0x8] + lsl r1, r1, #0x6 + str r3, [r0, r1] + add r0, r1, #0x0 + ldr r3, [r2, #0x8] + sub r0, #0x8 + str r4, [r3, r0] + ldr r0, [r2, #0x8] + sub r1, #0x18 + add r0, r0, r1 + bl sub_02013724 + bl sub_0202E500 +_0202E332: + pop {r4, pc} + .balign 4 +_0202E334: .word 0x021C59E8 +_0202E338: .word 0x00000CA4 +_0202E33C: .word 0x00000CBC +_0202E340: .word 0x00000333 + + thumb_func_start sub_0202E344 +sub_0202E344: ; 0x0202E344 + ldr r0, _0202E354 ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202E350 + mov r0, #0x1 + bx lr +_0202E350: + mov r0, #0x0 + bx lr + .balign 4 +_0202E354: .word 0x021C59E8 + + thumb_func_start sub_0202E358 +sub_0202E358: ; 0x0202E358 + push {r4-r5} + mov r5, #0x0 + cmp r2, #0x0 + ble _0202E378 +_0202E360: + ldrb r4, [r0, #0x0] + ldrb r3, [r1, #0x0] + cmp r4, r3 + beq _0202E36E + mov r0, #0x0 + pop {r4-r5} + bx lr +_0202E36E: + add r5, r5, #0x1 + add r0, r0, #0x1 + add r1, r1, #0x1 + cmp r5, r2 + blt _0202E360 +_0202E378: + mov r0, #0x1 + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_0202E380 +sub_0202E380: ; 0x0202E380 + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02033534 + add r5, r0, #0x0 + bl sub_0203354C + add r4, r7, #0x0 + add r6, r0, #0x0 + add r4, #0x50 + cmp r5, #0xe + beq _0202E3C2 + ldrb r0, [r4, #0x4] + bl sub_0202D8B0 + cmp r0, #0x0 + beq _0202E3AC + add r0, r5, #0x0 + bl sub_0202D8B0 + cmp r0, #0x0 + bne _0202E3C2 +_0202E3AC: + add r0, r4, #0x0 + add r0, #0x54 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202E3BC + ldrb r0, [r4, #0x4] + cmp r0, #0xa + beq _0202E460 +_0202E3BC: + ldrb r0, [r4, #0x4] + cmp r0, r5 + bne _0202E460 +_0202E3C2: + cmp r5, #0xe + beq _0202E3CC + ldrb r0, [r4, #0x5] + cmp r0, r6 + bne _0202E460 +_0202E3CC: + mov r6, #0x0 + add r4, r6, #0x0 + add r5, r6, #0x0 +_0202E3D2: + ldr r0, _0202E464 ; =0x021C59E8 + ldr r1, _0202E468 ; =0x00000C84 + ldr r0, [r0, #0x8] + add r2, r0, r4 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202E412 + add r0, #0x58 + add r0, r0, r5 + add r1, r7, #0x4 + mov r2, #0x6 + bl sub_0202E358 + cmp r0, #0x0 + beq _0202E412 + ldr r2, _0202E464 ; =0x021C59E8 + lsl r1, r6, #0x1 + ldr r3, [r2, #0x8] + mov r0, #0x96 + add r3, r3, r1 + ldr r1, _0202E468 ; =0x00000C84 + strh r0, [r3, r1] + ldr r3, [r2, #0x8] + mov r2, #0xc0 + add r1, r6, #0x0 + add r3, #0x54 + mul r1, r2 + add r0, r7, #0x0 + add r1, r3, r1 + blx sub_020CE3E0 + pop {r3-r7, pc} +_0202E412: + add r6, r6, #0x1 + add r4, r4, #0x2 + add r5, #0xc0 + cmp r6, #0x10 + blt _0202E3D2 + ldr r0, _0202E464 ; =0x021C59E8 + ldr r2, _0202E468 ; =0x00000C84 + ldr r0, [r0, #0x8] + mov r1, #0x0 + add r4, r0, #0x0 +_0202E426: + ldrh r3, [r4, r2] + cmp r3, #0x0 + beq _0202E434 + add r1, r1, #0x1 + add r4, r4, #0x2 + cmp r1, #0x10 + blt _0202E426 +_0202E434: + cmp r1, #0x10 + bge _0202E460 + lsl r2, r1, #0x1 + add r2, r0, r2 + ldr r0, _0202E468 ; =0x00000C84 + mov r3, #0x96 + strh r3, [r2, r0] + ldr r2, _0202E464 ; =0x021C59E8 + add r3, r1, #0x0 + ldr r4, [r2, #0x8] + mov r2, #0xc0 + add r4, #0x54 + mul r3, r2 + add r0, r7, #0x0 + add r1, r4, r3 + blx sub_020CE3E0 + ldr r0, _0202E464 ; =0x021C59E8 + mov r2, #0x1 + ldr r1, [r0, #0x8] + ldr r0, _0202E46C ; =0x00000CB4 + strb r2, [r1, r0] +_0202E460: + pop {r3-r7, pc} + nop +_0202E464: .word 0x021C59E8 +_0202E468: .word 0x00000C84 +_0202E46C: .word 0x00000CB4 + + thumb_func_start sub_0202E470 +sub_0202E470: ; 0x0202E470 + push {r3, lr} + cmp r1, #0x0 + beq _0202E47A + blx sub_020CD850 +_0202E47A: + ldr r0, _0202E484 ; =0x021C59E8 + mov r1, #0x2 + str r1, [r0, #0x4] + pop {r3, pc} + nop +_0202E484: .word 0x021C59E8 + + thumb_func_start sub_0202E488 +sub_0202E488: ; 0x0202E488 + ldr r0, _0202E494 ; =0x021C59E8 + mov r1, #0x0 + str r1, [r0, #0x4] + ldr r3, _0202E498 ; =sub_02016454 + mov r0, #0x4 + bx r3 + .balign 4 +_0202E494: .word 0x021C59E8 +_0202E498: .word sub_02016454 + 1 + + thumb_func_start sub_0202E49C +sub_0202E49C: ; 0x0202E49C + push {r3, lr} + mov r0, #0x4 + bl sub_02016444 + ldr r0, _0202E4C0 ; =0x021C59E8 + mov r1, #0x1 + str r1, [r0, #0x4] + ldr r1, _0202E4C4 ; =sub_0202E470 + mov r0, #0x8 + mov r2, #0x0 + blx sub_02090DB8 + cmp r0, #0x1 + beq _0202E4BC + blx sub_020CD850 +_0202E4BC: + pop {r3, pc} + nop +_0202E4C0: .word 0x021C59E8 +_0202E4C4: .word sub_0202E470 + 1 + + thumb_func_start sub_0202E4C8 +sub_0202E4C8: ; 0x0202E4C8 + ldr r0, _0202E4D8 ; =0x021C59E8 + ldr r0, [r0, #0x4] + cmp r0, #0x2 + bne _0202E4D4 + mov r0, #0x1 + bx lr +_0202E4D4: + mov r0, #0x0 + bx lr + .balign 4 +_0202E4D8: .word 0x021C59E8 + + thumb_func_start sub_0202E4DC +sub_0202E4DC: ; 0x0202E4DC + ldr r0, _0202E4EC ; =0x021C59E8 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202E4E8 + mov r0, #0x1 + bx lr +_0202E4E8: + mov r0, #0x0 + bx lr + .balign 4 +_0202E4EC: .word 0x021C59E8 + + thumb_func_start sub_0202E4F0 +sub_0202E4F0: ; 0x0202E4F0 + ldr r3, _0202E4F8 ; =sub_02090CC8 + ldr r0, _0202E4FC ; =sub_0202E488 + mov r1, #0x0 + bx r3 + .balign 4 +_0202E4F8: .word sub_02090CC8 +_0202E4FC: .word sub_0202E488 + 1 + + thumb_func_start sub_0202E500 +sub_0202E500: ; 0x0202E500 + push {r3, lr} + ldr r1, _0202E534 ; =0x021C59E8 + mov r0, #0xcb + ldr r2, [r1, #0x8] + mov r3, #0x0 + lsl r0, r0, #0x4 + str r3, [r2, r0] + ldr r1, [r1, #0x8] + sub r0, #0xc + ldr r2, [r1, r0] + mov r0, #0x1f + add r1, r2, #0x0 + and r1, r0 + mov r0, #0x20 + sub r0, r0, r1 + add r0, r2, r0 + bl sub_0202CE64 + ldr r0, _0202E534 ; =0x021C59E8 + ldr r1, [r0, #0x8] + mov r0, #0x33 + lsl r0, r0, #0x6 + ldr r0, [r1, r0] + bl sub_0202CB70 + pop {r3, pc} + .balign 4 +_0202E534: .word 0x021C59E8 + + thumb_func_start sub_0202E538 +sub_0202E538: ; 0x0202E538 + push {r3-r5, lr} + mov r4, #0x0 + ldr r2, _0202E564 ; =0x021C59E8 + ldr r0, _0202E568 ; =0x00000C84 + add r5, r4, #0x0 + add r1, r4, #0x0 +_0202E544: + ldr r3, [r2, #0x8] + add r4, r4, #0x1 + add r3, r3, r5 + add r5, r5, #0x2 + strh r1, [r3, r0] + cmp r4, #0x10 + blt _0202E544 + ldr r0, _0202E564 ; =0x021C59E8 + mov r2, #0x3 + ldr r0, [r0, #0x8] + lsl r2, r2, #0xa + add r0, #0x54 + blx sub_020CE34C + pop {r3-r5, pc} + nop +_0202E564: .word 0x021C59E8 +_0202E568: .word 0x00000C84 + + thumb_func_start sub_0202E56C +sub_0202E56C: ; 0x0202E56C + push {r3-r4} + ldr r1, _0202E58C ; =0x021C59E8 + lsl r0, r0, #0x18 + ldr r2, [r1, #0x8] + ldr r4, _0202E590 ; =0x00000DAD + lsr r0, r0, #0x18 + ldrb r1, [r2, r4] + mov r3, #0x8 + lsl r0, r0, #0x1f + bic r1, r3 + lsr r0, r0, #0x1c + orr r0, r1 + strb r0, [r2, r4] + pop {r3-r4} + bx lr + nop +_0202E58C: .word 0x021C59E8 +_0202E590: .word 0x00000DAD + + thumb_func_start sub_0202E594 +sub_0202E594: ; 0x0202E594 + push {r4-r5} + ldr r1, _0202E5F0 ; =0x021C59E8 + ldr r0, _0202E5F4 ; =0x00000CB4 + ldr r3, [r1, #0x8] + mov r2, #0x0 + strb r2, [r3, r0] + add r3, r0, #0x0 + ldr r5, [r1, #0x8] + add r3, #0xf9 + ldrb r4, [r5, r3] + mov r3, #0x1 + bic r4, r3 + add r3, r0, #0x0 + add r3, #0xf9 + strb r4, [r5, r3] + add r3, r0, #0x0 + ldr r5, [r1, #0x8] + add r3, #0xf9 + ldrb r4, [r5, r3] + mov r3, #0x4 + bic r4, r3 + add r3, r0, #0x0 + add r3, #0xf9 + strb r4, [r5, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x8] + add r3, #0xf6 + strb r2, [r4, r3] + add r3, r0, #0x0 + ldr r5, [r1, #0x8] + add r3, #0xf9 + ldrb r4, [r5, r3] + mov r3, #0x10 + bic r4, r3 + add r3, r0, #0x0 + add r3, #0xf9 + strb r4, [r5, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x8] + add r3, #0xf8 + strb r2, [r4, r3] + ldr r1, [r1, #0x8] + add r0, #0xf7 + strb r2, [r1, r0] + pop {r4-r5} + bx lr + .balign 4 +_0202E5F0: .word 0x021C59E8 +_0202E5F4: .word 0x00000CB4 + + thumb_func_start sub_0202E5F8 +sub_0202E5F8: ; 0x0202E5F8 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_0202E594 + add r0, r5, #0x0 + bl sub_0202E56C + bl sub_0202D2F4 + ldr r0, _0202E65C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E660 ; =0x00000DAB + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0202E62A + ldr r0, _0202E664 ; =sub_020303BC + mov r1, #0xe + bl sub_0202D0A0 + ldr r0, _0202E65C ; =0x021C59E8 + mov r2, #0x1 + ldr r1, [r0, #0x8] + ldr r0, _0202E660 ; =0x00000DAB + strb r2, [r1, r0] +_0202E62A: + ldr r0, _0202E65C ; =0x021C59E8 + ldr r3, _0202E668 ; =0x00000DAD + ldr r1, [r0, #0x8] + mov r2, #0x20 + ldrb r0, [r1, r3] + bic r0, r2 + lsl r2, r4, #0x18 + lsr r2, r2, #0x18 + lsl r2, r2, #0x1f + lsr r2, r2, #0x1a + orr r0, r2 + strb r0, [r1, r3] + bl sub_0202CBD4 + cmp r0, #0x1 + bne _0202E656 + bl sub_0202CBFC + cmp r0, #0x0 + beq _0202E656 + mov r0, #0x1 + pop {r3-r5, pc} +_0202E656: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0202E65C: .word 0x021C59E8 +_0202E660: .word 0x00000DAB +_0202E664: .word sub_020303BC + 1 +_0202E668: .word 0x00000DAD + + thumb_func_start sub_0202E66C +sub_0202E66C: ; 0x0202E66C + push {r4, lr} + sub sp, #0x8 + add r4, r1, #0x0 + bl sub_0202E594 + cmp r4, #0x0 + beq _0202E67E + bl sub_0202E538 +_0202E67E: + ldr r0, _0202E6DC ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E6E0 ; =0x00000DAB + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0202E69C + ldr r0, _0202E6E4 ; =sub_02030238 + mov r1, #0xe + bl sub_0202D0A0 + ldr r0, _0202E6DC ; =0x021C59E8 + mov r2, #0x1 + ldr r1, [r0, #0x8] + ldr r0, _0202E6E0 ; =0x00000DAB + strb r2, [r1, r0] +_0202E69C: + bl sub_0202CBD4 + cmp r0, #0x1 + bne _0202E6D4 + ldr r2, _0202E6E8 ; =0x020EEC40 + add r0, sp, #0x0 + ldrb r3, [r2, #0x0] + add r1, sp, #0x0 + strb r3, [r0, #0x0] + ldrb r3, [r2, #0x1] + strb r3, [r0, #0x1] + ldrb r3, [r2, #0x2] + strb r3, [r0, #0x2] + ldrb r3, [r2, #0x3] + strb r3, [r0, #0x3] + ldrb r3, [r2, #0x4] + ldrb r2, [r2, #0x5] + strb r3, [r0, #0x4] + strb r2, [r0, #0x5] + ldr r0, _0202E6EC ; =sub_0202E380 + mov r2, #0x0 + bl sub_0202C570 + cmp r0, #0x0 + beq _0202E6D4 + add sp, #0x8 + mov r0, #0x1 + pop {r4, pc} +_0202E6D4: + mov r0, #0x0 + add sp, #0x8 + pop {r4, pc} + nop +_0202E6DC: .word 0x021C59E8 +_0202E6E0: .word 0x00000DAB +_0202E6E4: .word sub_02030238 + 1 +_0202E6E8: .word 0x020EEC40 +_0202E6EC: .word sub_0202E380 + 1 + + thumb_func_start sub_0202E6F0 +sub_0202E6F0: ; 0x0202E6F0 + push {r3, lr} + ldr r0, _0202E77C ; =0x021C59E8 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + bne _0202E6FE + mov r0, #0x1 + pop {r3, pc} +_0202E6FE: + ldr r0, _0202E780 ; =0x00000DAC + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202E710 + cmp r0, #0x1 + beq _0202E740 + cmp r0, #0x2 + beq _0202E758 + b _0202E776 +_0202E710: + bl sub_0202D21C + cmp r0, #0x0 + beq _0202E728 + bl sub_0202C770 + ldr r0, _0202E77C ; =0x021C59E8 + mov r2, #0x1 + ldr r1, [r0, #0x8] + ldr r0, _0202E780 ; =0x00000DAC + strb r2, [r1, r0] + b _0202E776 +_0202E728: + bl sub_0202D1E4 + cmp r0, #0x0 + bne _0202E776 + bl sub_0202D100 + ldr r0, _0202E77C ; =0x021C59E8 + mov r2, #0x2 + ldr r1, [r0, #0x8] + ldr r0, _0202E780 ; =0x00000DAC + strb r2, [r1, r0] + b _0202E776 +_0202E740: + bl sub_0202D1E4 + cmp r0, #0x0 + bne _0202E776 + bl sub_0202D100 + ldr r0, _0202E77C ; =0x021C59E8 + mov r2, #0x2 + ldr r1, [r0, #0x8] + ldr r0, _0202E780 ; =0x00000DAC + strb r2, [r1, r0] + b _0202E776 +_0202E758: + bl sub_0202D1C8 + cmp r0, #0x0 + beq _0202E764 + mov r0, #0x1 + pop {r3, pc} +_0202E764: + bl sub_0202D200 + cmp r0, #0x0 + beq _0202E776 + ldr r0, _0202E77C ; =0x021C59E8 + mov r2, #0x1 + ldr r1, [r0, #0x8] + ldr r0, _0202E780 ; =0x00000DAC + strb r2, [r1, r0] +_0202E776: + mov r0, #0x0 + pop {r3, pc} + nop +_0202E77C: .word 0x021C59E8 +_0202E780: .word 0x00000DAC + + thumb_func_start sub_0202E784 +sub_0202E784: ; 0x0202E784 + push {r3, lr} + ldr r0, _0202E7A8 ; =0x021C59E8 + ldr r2, [r0, #0x8] + cmp r2, #0x0 + beq _0202E7A2 + ldr r0, _0202E7AC ; =0x00000DAA + ldrb r1, [r2, r0] + cmp r1, #0x0 + bne _0202E7A2 + mov r1, #0x1 + strb r1, [r2, r0] + bl sub_0202D100 + mov r0, #0x1 + pop {r3, pc} +_0202E7A2: + mov r0, #0x0 + pop {r3, pc} + nop +_0202E7A8: .word 0x021C59E8 +_0202E7AC: .word 0x00000DAA + + thumb_func_start sub_0202E7B0 +sub_0202E7B0: ; 0x0202E7B0 + push {r3, lr} + ldr r1, _0202E7D0 ; =0x021C59E8 + ldr r2, [r1, #0x8] + cmp r2, #0x0 + beq _0202E7CE + cmp r0, #0x0 + ldr r0, _0202E7D4 ; =0x00000DAA + beq _0202E7C6 + mov r1, #0x2 + strb r1, [r2, r0] + pop {r3, pc} +_0202E7C6: + mov r1, #0x0 + strb r1, [r2, r0] + bl sub_0202E500 +_0202E7CE: + pop {r3, pc} + .balign 4 +_0202E7D0: .word 0x021C59E8 +_0202E7D4: .word 0x00000DAA + + thumb_func_start sub_0202E7D8 +sub_0202E7D8: ; 0x0202E7D8 + push {r3, lr} + ldr r0, _0202E804 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E808 ; =0x00000CBC + ldr r0, [r1, r0] + bl sub_02016A18 + ldr r0, _0202E804 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E80C ; =0x00000CA4 + ldr r0, [r1, r0] + bl sub_02016A18 + ldr r0, _0202E804 ; =0x021C59E8 + ldr r0, [r0, #0x8] + bl sub_02016A18 + ldr r0, _0202E804 ; =0x021C59E8 + mov r1, #0x0 + str r1, [r0, #0x8] + pop {r3, pc} + nop +_0202E804: .word 0x021C59E8 +_0202E808: .word 0x00000CBC +_0202E80C: .word 0x00000CA4 + + thumb_func_start sub_0202E810 +sub_0202E810: ; 0x0202E810 + push {r4, lr} + bl sub_02030F40 + cmp r0, #0x0 + bne _0202E81E + mov r0, #0x0 + pop {r4, pc} +_0202E81E: + ldr r1, _0202E83C ; =0x021C59E8 + mov r0, #0x0 + ldr r4, [r1, #0x8] + ldr r1, _0202E840 ; =0x00000C84 + add r3, r0, #0x0 +_0202E828: + ldrh r2, [r4, r1] + cmp r2, #0x0 + beq _0202E830 + add r0, r0, #0x1 +_0202E830: + add r3, r3, #0x1 + add r4, r4, #0x2 + cmp r3, #0x10 + blt _0202E828 + pop {r4, pc} + nop +_0202E83C: .word 0x021C59E8 +_0202E840: .word 0x00000C84 + + thumb_func_start sub_0202E844 +sub_0202E844: ; 0x0202E844 + push {r3-r5, lr} + ldr r1, _0202E870 ; =0x021C59E8 + mov r4, #0x0 + ldr r5, [r1, #0x8] + ldr r1, _0202E874 ; =0x00000C84 + add r3, r4, #0x0 +_0202E850: + ldrh r2, [r5, r1] + cmp r2, #0x0 + beq _0202E860 + cmp r4, r0 + bne _0202E85E + add r0, r3, #0x0 + pop {r3-r5, pc} +_0202E85E: + add r4, r4, #0x1 +_0202E860: + add r3, r3, #0x1 + add r5, r5, #0x2 + cmp r3, #0x10 + blt _0202E850 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0202E870: .word 0x021C59E8 +_0202E874: .word 0x00000C84 + + thumb_func_start sub_0202E878 +sub_0202E878: ; 0x0202E878 + ldr r0, _0202E884 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E888 ; =0x00000CB4 + ldrb r0, [r1, r0] + bx lr + nop +_0202E884: .word 0x021C59E8 +_0202E888: .word 0x00000CB4 + + thumb_func_start sub_0202E88C +sub_0202E88C: ; 0x0202E88C + ldr r0, _0202E898 ; =0x021C59E8 + mov r2, #0x0 + ldr r1, [r0, #0x8] + ldr r0, _0202E89C ; =0x00000CB4 + strb r2, [r1, r0] + bx lr + .balign 4 +_0202E898: .word 0x021C59E8 +_0202E89C: .word 0x00000CB4 + + thumb_func_start sub_0202E8A0 +sub_0202E8A0: ; 0x0202E8A0 + ldr r1, _0202E8C8 ; =0x021C59E8 + ldr r3, [r1, #0x8] + lsl r1, r0, #0x1 + add r2, r3, r1 + ldr r1, _0202E8CC ; =0x00000C84 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202E8C2 + mov r1, #0xc0 + mul r1, r0 + add r0, r3, r1 + add r0, #0xaa + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0202E8C4 + mov r0, #0x1 + bx lr +_0202E8C2: + mov r0, #0x0 +_0202E8C4: + bx lr + nop +_0202E8C8: .word 0x021C59E8 +_0202E8CC: .word 0x00000C84 + + thumb_func_start sub_0202E8D0 +sub_0202E8D0: ; 0x0202E8D0 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0xf +_0202E8D6: + add r0, r4, #0x0 + bl sub_0202E8A0 + cmp r0, r5 + ble _0202E8E8 + cmp r0, #0x8 + bge _0202E8E8 + add r0, r4, #0x0 + pop {r3-r5, pc} +_0202E8E8: + sub r4, r4, #0x1 + bpl _0202E8D6 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202E8F4 +sub_0202E8F4: ; 0x0202E8F4 + push {r3-r7, lr} + bl sub_0202E810 + cmp r0, #0x0 + bne _0202E904 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0202E904: + mov r5, #0x2d + ldr r7, _0202E948 ; =0x021C59E8 + mov r6, #0xf + mov r4, #0x1e + lsl r5, r5, #0x6 +_0202E90E: + ldr r0, [r7, #0x8] + ldr r1, _0202E94C ; =0x00000C84 + add r2, r0, r4 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202E938 + add r0, #0x58 + add r0, r0, r5 + bl sub_0202EFE4 + cmp r0, #0x0 + beq _0202E938 + add r0, r6, #0x0 + bl sub_0202E8A0 + cmp r0, #0x1 + ble _0202E938 + cmp r0, #0x8 + bge _0202E938 + add r0, r6, #0x0 + pop {r3-r7, pc} +_0202E938: + sub r4, r4, #0x2 + sub r5, #0xc0 + sub r6, r6, #0x1 + bpl _0202E90E + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + nop +_0202E948: .word 0x021C59E8 +_0202E94C: .word 0x00000C84 + + thumb_func_start sub_0202E950 +sub_0202E950: ; 0x0202E950 + push {r3-r7, lr} + bl sub_0202E810 + cmp r0, #0x0 + bne _0202E960 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0202E960: + mov r5, #0x2d + ldr r7, _0202E9A4 ; =0x021C59E8 + mov r6, #0xf + mov r4, #0x1e + lsl r5, r5, #0x6 +_0202E96A: + ldr r0, [r7, #0x8] + ldr r1, _0202E9A8 ; =0x00000C84 + add r2, r0, r4 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202E986 + add r0, #0x58 + add r0, r0, r5 + bl sub_0202EFE4 + cmp r0, #0x0 + beq _0202E986 + add r0, r6, #0x0 + pop {r3-r7, pc} +_0202E986: + sub r4, r4, #0x2 + sub r5, #0xc0 + sub r6, r6, #0x1 + bpl _0202E96A + mov r0, #0x1 + bl sub_0202E8D0 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + bne _0202E9A2 + mov r0, #0x0 + bl sub_0202E8D0 +_0202E9A2: + pop {r3-r7, pc} + .balign 4 +_0202E9A4: .word 0x021C59E8 +_0202E9A8: .word 0x00000C84 + + thumb_func_start sub_0202E9AC +sub_0202E9AC: ; 0x0202E9AC + push {r4-r6, lr} + add r4, r1, #0x0 + ldr r1, _0202E9E0 ; =0x021C59E8 + mov r5, #0x0 + ldr r6, [r1, #0x8] + ldr r1, _0202E9E4 ; =0x00000C84 + add r3, r5, #0x0 +_0202E9BA: + ldrh r2, [r6, r1] + cmp r2, #0x0 + beq _0202E9D4 + cmp r0, r5 + bne _0202E9D2 + add r0, r3, #0x0 + bl sub_0202EF84 + add r1, r4, #0x0 + bl sub_0202393C + pop {r4-r6, pc} +_0202E9D2: + add r5, r5, #0x1 +_0202E9D4: + add r3, r3, #0x1 + add r6, r6, #0x2 + cmp r3, #0x10 + blt _0202E9BA + pop {r4-r6, pc} + nop +_0202E9E0: .word 0x021C59E8 +_0202E9E4: .word 0x00000C84 + + thumb_func_start sub_0202E9E8 +sub_0202E9E8: ; 0x0202E9E8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0202CBD4 + cmp r0, #0x2 + bne _0202E9FC + bl sub_0202C770 + mov r0, #0x0 + pop {r3-r5, pc} +_0202E9FC: + bl sub_0202CBD4 + cmp r0, #0x1 + bne _0202EA48 + bl sub_02033534 + mov r1, #0xc0 + add r4, r5, #0x0 + mul r4, r1 + ldr r1, _0202EA4C ; =0x021C59E8 + ldr r3, [r1, #0x8] + add r1, r3, r4 + add r1, #0x8a + ldrh r2, [r1, #0x0] + ldr r1, _0202EA50 ; =0x00000DA8 + strb r2, [r3, r1] + bl sub_0202D8B0 + cmp r0, #0x0 + beq _0202EA36 + ldr r1, _0202EA4C ; =0x021C59E8 + mov r0, #0x1 + ldr r1, [r1, #0x8] + mov r2, #0x0 + add r1, #0x58 + add r1, r1, r4 + bl sub_0202C4D8 + b _0202EA44 +_0202EA36: + ldr r1, _0202EA4C ; =0x021C59E8 + mov r0, #0x1 + ldr r1, [r1, #0x8] + add r1, #0x54 + add r1, r1, r4 + bl sub_0202D034 +_0202EA44: + mov r0, #0x1 + pop {r3-r5, pc} +_0202EA48: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0202EA4C: .word 0x021C59E8 +_0202EA50: .word 0x00000DA8 + + thumb_func_start sub_0202EA54 +sub_0202EA54: ; 0x0202EA54 + push {r4-r7} + mov r4, #0x0 + ldr r1, _0202EA90 ; =0x021C59E8 + ldr r0, _0202EA94 ; =0x00000C84 + add r5, r4, #0x0 + mov r2, #0x1 +_0202EA60: + ldr r3, [r1, #0x8] + add r3, r3, r5 + ldrh r6, [r3, r0] + cmp r6, #0x0 + beq _0202EA84 + beq _0202EA84 + ldr r6, _0202EA94 ; =0x00000C84 + ldrh r6, [r3, r6] + sub r7, r6, #0x1 + ldr r6, _0202EA94 ; =0x00000C84 + strh r7, [r3, r6] + ldr r3, [r1, #0x8] + add r7, r3, r5 + ldrh r6, [r7, r6] + cmp r6, #0x0 + bne _0202EA84 + ldr r6, _0202EA98 ; =0x00000CB4 + strb r2, [r3, r6] +_0202EA84: + add r4, r4, #0x1 + add r5, r5, #0x2 + cmp r4, #0x10 + blt _0202EA60 + pop {r4-r7} + bx lr + .balign 4 +_0202EA90: .word 0x021C59E8 +_0202EA94: .word 0x00000C84 +_0202EA98: .word 0x00000CB4 + + thumb_func_start sub_0202EA9C +sub_0202EA9C: ; 0x0202EA9C + push {r3-r5, lr} + bl sub_02033534 + add r5, r0, #0x0 + bl sub_0202EF70 + add r4, r0, #0x0 + cmp r5, #0xf + beq _0202EB24 + ldr r0, _0202EB6C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EB70 ; =0x00000CC4 + add r5, r1, r0 + bl sub_02023AC4 + cmp r0, #0x20 + ble _0202EAC2 + bl sub_02020C2C +_0202EAC2: + bl sub_02023924 + cmp r0, #0x20 + beq _0202EACE + bl sub_02020C2C +_0202EACE: + bl sub_02023924 + add r1, r5, #0x0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, #0x10 + blx sub_020CE3E0 + bl sub_02023AC4 + add r2, r0, #0x0 + ldr r0, _0202EB6C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EB74 ; =0x00000CBC + ldr r0, [r1, r0] + add r1, r5, #0x0 + add r1, #0x30 + blx sub_020CE3E0 + add r0, r4, #0x0 + bl sub_020239BC + str r0, [r5, #0x0] + bl sub_02033534 + strb r0, [r5, #0x4] + bl sub_0203354C + strb r0, [r5, #0x5] + ldr r0, _0202EB6C ; =0x021C59E8 + mov r2, #0x8 + ldr r1, [r0, #0x8] + ldr r0, _0202EB78 ; =0x00000CA8 + add r0, r1, r0 + add r1, r5, #0x0 + add r1, #0x8 + blx sub_020CE3E0 + bl sub_0202D358 + add r5, #0x54 + strb r0, [r5, #0x0] + b _0202EB4E +_0202EB24: + ldr r1, _0202EB6C ; =0x021C59E8 + ldr r4, [r1, #0x8] + ldr r1, _0202EB70 ; =0x00000CC4 + add r5, r4, r1 + bl sub_020239BC + ldr r1, _0202EB70 ; =0x00000CC4 + str r0, [r4, r1] + bl sub_02033534 + strb r0, [r5, #0x4] + bl sub_0203354C + strb r0, [r5, #0x5] + ldr r0, _0202EB6C ; =0x021C59E8 + add r5, #0x8 + ldr r0, [r0, #0x8] + add r1, r5, #0x0 + mov r2, #0x54 + blx sub_020CE3E0 +_0202EB4E: + ldr r0, _0202EB6C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EB70 ; =0x00000CC4 + add r0, r1, r0 + mov r1, #0x5c + blx sub_020CC15C + ldr r0, _0202EB6C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EB70 ; =0x00000CC4 + add r0, r1, r0 + mov r1, #0x5c + bl sub_0202CB7C + pop {r3-r5, pc} + .balign 4 +_0202EB6C: .word 0x021C59E8 +_0202EB70: .word 0x00000CC4 +_0202EB74: .word 0x00000CBC +_0202EB78: .word 0x00000CA8 + + thumb_func_start sub_0202EB7C +sub_0202EB7C: ; 0x0202EB7C + push {r4, lr} + ldr r0, _0202EBC8 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EBCC ; =0x00000CC4 + add r4, r1, r0 + bl sub_0202EDB8 + ldrb r1, [r4, #0x6] + cmp r1, r0 + beq _0202EBC6 + bl sub_0202EDB8 + strb r0, [r4, #0x6] + ldr r0, _0202EBC8 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EBCC ; =0x00000CC4 + add r0, r1, r0 + mov r1, #0x5c + blx sub_020CC15C + ldr r0, _0202EBC8 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EBCC ; =0x00000CC4 + add r0, r1, r0 + mov r1, #0x5c + bl sub_0202CB7C + ldr r3, _0202EBC8 ; =0x021C59E8 + ldr r2, _0202EBCC ; =0x00000CC4 + ldr r4, [r3, #0x8] + ldrh r3, [r3, #0x0] + add r0, r4, r2 + sub r2, r2, #0x4 + ldr r2, [r4, r2] + mov r1, #0x5c + bl sub_0202D240 +_0202EBC6: + pop {r4, pc} + .balign 4 +_0202EBC8: .word 0x021C59E8 +_0202EBCC: .word 0x00000CC4 + + thumb_func_start sub_0202EBD0 +sub_0202EBD0: ; 0x0202EBD0 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_0202CBD4 + add r5, r0, #0x0 + bl sub_0202DF54 + bl sub_0202EB7C + bl sub_0202D19C + cmp r0, #0x0 + bne _0202EC0C + bl sub_0202EE24 + cmp r0, #0x0 + bne _0202EC0C + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r2, [r0, #0x8] + ldr r0, _0202ED54 ; =0x00000DAD + ldrb r1, [r2, r0] + lsl r3, r1, #0x1d + lsr r3, r3, #0x1f + beq _0202EC0C + mov r3, #0x1 + bic r1, r3 + mov r3, #0x1 + orr r1, r3 + strb r1, [r2, r0] +_0202EC0C: + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r1, _0202ED58 ; =0x0000FFFF + ldr r3, [r0, #0x8] + ldr r0, _0202ED5C ; =0x00000DA6 + ldrh r2, [r3, r0] + cmp r2, r1 + bne _0202EC1C + strh r4, [r3, r0] +_0202EC1C: + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r2, [r0, #0x8] + ldr r0, _0202ED54 ; =0x00000DAD + ldrb r1, [r2, r0] + lsl r3, r1, #0x1e + lsr r3, r3, #0x1f + beq _0202EC3C + sub r3, r0, #0x7 + ldrh r3, [r2, r3] + cmp r3, r4 + bls _0202EC3C + mov r3, #0x1 + bic r1, r3 + mov r3, #0x1 + orr r1, r3 + strb r1, [r2, r0] +_0202EC3C: + bl sub_0202CBE8 + cmp r0, #0x19 + bne _0202EC4A + mov r0, #0x0 + bl sub_020335D0 +_0202EC4A: + cmp r5, #0x9 + bhi _0202ED4C + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r2, #0 + lsl r2, r6, #0 + lsl r0, r6, #0x3 + lsl r0, r6, #0x3 + lsl r0, r6, #0x3 + lsl r0, r6, #0x3 + lsl r0, r6, #0x3 + lsl r6, r6, #0x1 + lsl r4, r3, #0x1 + lsl r4, r3, #0x1 + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r2, [r0, #0x8] + ldr r0, _0202ED60 ; =0x00000DAA + ldrb r1, [r2, r0] + cmp r1, #0x1 + bne _0202EC82 + bl sub_0202E7D8 + add sp, #0x8 + pop {r3-r5, pc} +_0202EC82: + cmp r1, #0x2 + bne _0202ED4C + mov r1, #0x3 + strb r1, [r2, r0] + add sp, #0x8 + pop {r3-r5, pc} +_0202EC8E: + .byte 0x30, 0x48 + .byte 0x81, 0x68, 0x33, 0x48, 0x08, 0x5C, 0x01, 0x28, 0x03, 0xD1, 0xFE, 0xF7, 0x6D, 0xFA, 0x00, 0x28 + .byte 0x54, 0xD1, 0x2B, 0x48, 0x81, 0x68, 0x2E, 0x48, 0x08, 0x5C, 0x02, 0x28, 0x4E, 0xD1, 0xFE, 0xF7 + .byte 0x63, 0xFA, 0x02, 0xB0, 0x00, 0x28, 0x38, 0xBD, 0x25, 0x48, 0x83, 0x68, 0x00, 0x2B, 0x45, 0xD0 + .byte 0x24, 0x49, 0x01, 0x20, 0x5A, 0x5C, 0x02, 0xB0, 0x82, 0x43, 0x01, 0x20, 0x10, 0x43, 0x58, 0x54 + .byte 0x38, 0xBD, 0xFE, 0xF7, 0x67, 0xF8, 0x1E, 0x4B, 0x22, 0x4A, 0x9C, 0x68, 0xA1, 0x5C, 0x00, 0x29 + .byte 0x05, 0xD1, 0x51, 0x1F, 0x60, 0x52, 0x98, 0x68, 0x05, 0x21, 0x81, 0x54, 0x01, 0xE0, 0x48, 0x1E + .byte 0xA0, 0x54, 0x17, 0x49, 0x1C, 0x48, 0x8A, 0x68, 0x15, 0x5A, 0x09, 0x30, 0x10, 0x5C, 0x00, 0x07 + .byte 0xC0, 0x0F, 0x02, 0xD0, 0x08, 0x88, 0x40, 0x1C, 0x08, 0x80, 0xFF, 0xF7, 0xC7, 0xFE, 0x04, 0xF0 + .byte 0x11, 0xFC, 0x00, 0x04, 0x00, 0x0C, 0xFE, 0xF7, 0x9F, 0xFD, 0x04, 0x1C, 0x04, 0xF0, 0x0A, 0xFC + .byte 0x00, 0x04, 0x00, 0x0C, 0x00, 0xF0, 0xE0, 0xF8, 0x00, 0x90, 0x09, 0x49, 0x09, 0x48, 0x8A, 0x68 + .byte 0x23, 0x1C, 0x10, 0x5C, 0x2A, 0x1C, 0x80, 0x06, 0xC0, 0x0F, 0x01, 0x90, 0x09, 0x88, 0x00, 0x20 + .byte 0xFE, 0xF7, 0x20, 0xF9, 0x02, 0x48, 0x81, 0x68, 0x08, 0x48, 0x0D, 0x54 +_0202ED4C: + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_0202ED50: .word 0x021C59E8 +_0202ED54: .word 0x00000DAD +_0202ED58: .word 0x0000FFFF +_0202ED5C: .word 0x00000DA6 +_0202ED60: .word 0x00000DAA +_0202ED64: + .byte 0xA9, 0x0D, 0x00, 0x00, 0xA4, 0x0D, 0x00, 0x00, 0xA8, 0x0D, 0x00, 0x00 + + thumb_func_start sub_0202ED70 +sub_0202ED70: ; 0x0202ED70 + push {r3, lr} + ldr r1, _0202ED80 ; =0x021C59E8 + ldr r1, [r1, #0x8] + cmp r1, #0x0 + beq _0202ED7E + bl sub_0202EBD0 +_0202ED7E: + pop {r3, pc} + .balign 4 +_0202ED80: .word 0x021C59E8 + + thumb_func_start sub_0202ED84 +sub_0202ED84: ; 0x0202ED84 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0202EDB4 ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _0202ED94 + mov r0, #0x0 + pop {r4, pc} +_0202ED94: + bl sub_0202CBD4 + cmp r0, #0x4 + beq _0202EDA0 + mov r0, #0x0 + pop {r4, pc} +_0202EDA0: + bl sub_0202CB8C + mov r2, #0x1 + add r1, r2, #0x0 + lsl r1, r4 + tst r0, r1 + bne _0202EDB0 + mov r2, #0x0 +_0202EDB0: + add r0, r2, #0x0 + pop {r4, pc} + .balign 4 +_0202EDB4: .word 0x021C59E8 + + thumb_func_start sub_0202EDB8 +sub_0202EDB8: ; 0x0202EDB8 + push {r3-r5, lr} + mov r4, #0x0 + add r5, r4, #0x0 +_0202EDBE: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl sub_0202ED84 + cmp r0, #0x0 + beq _0202EDCC + add r4, r4, #0x1 +_0202EDCC: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0202EDBE + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202EDD8 +sub_0202EDD8: ; 0x0202EDD8 + ldr r0, _0202EDF0 ; =0x021C59E8 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _0202EDEC + ldr r0, _0202EDF4 ; =0x00000DAA + ldrb r0, [r1, r0] + cmp r0, #0x3 + bne _0202EDEC + mov r0, #0x1 + bx lr +_0202EDEC: + mov r0, #0x0 + bx lr + .balign 4 +_0202EDF0: .word 0x021C59E8 +_0202EDF4: .word 0x00000DAA + + thumb_func_start sub_0202EDF8 +sub_0202EDF8: ; 0x0202EDF8 + ldr r0, _0202EE08 ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202EE04 + mov r0, #0x1 + bx lr +_0202EE04: + mov r0, #0x0 + bx lr + .balign 4 +_0202EE08: .word 0x021C59E8 + + thumb_func_start sub_0202EE0C +sub_0202EE0C: ; 0x0202EE0C + push {r3, lr} + ldr r0, _0202EE20 ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202EE1C + bl sub_0202D1C8 + pop {r3, pc} +_0202EE1C: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202EE20: .word 0x021C59E8 + + thumb_func_start sub_0202EE24 +sub_0202EE24: ; 0x0202EE24 + push {r3, lr} + ldr r0, _0202EE3C ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202EE38 + bl sub_0202CB8C + ldr r1, _0202EE40 ; =0x0000FFFE + and r0, r1 + pop {r3, pc} +_0202EE38: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0202EE3C: .word 0x021C59E8 +_0202EE40: .word 0x0000FFFE + + thumb_func_start sub_0202EE44 +sub_0202EE44: ; 0x0202EE44 + push {r3, lr} + bl sub_0202EE60 + cmp r0, #0x0 + beq _0202EE5A + bl sub_0202CBE8 + cmp r0, #0x14 + bne _0202EE5A + mov r0, #0x1 + pop {r3, pc} +_0202EE5A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202EE60 +sub_0202EE60: ; 0x0202EE60 + ldr r0, _0202EE7C ; =0x021C59E8 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _0202EE76 + ldr r0, _0202EE80 ; =0x00000DAD + ldrb r0, [r1, r0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _0202EE76 + mov r0, #0x1 + bx lr +_0202EE76: + mov r0, #0x0 + bx lr + nop +_0202EE7C: .word 0x021C59E8 +_0202EE80: .word 0x00000DAD + + thumb_func_start sub_0202EE84 +sub_0202EE84: ; 0x0202EE84 + push {r3-r4} + ldr r1, _0202EEA8 ; =0x021C59E8 + ldr r2, [r1, #0x8] + cmp r2, #0x0 + beq _0202EEA2 + ldr r4, _0202EEAC ; =0x00000DAD + lsl r0, r0, #0x18 + ldrb r1, [r2, r4] + lsr r0, r0, #0x18 + mov r3, #0x4 + lsl r0, r0, #0x1f + bic r1, r3 + lsr r0, r0, #0x1d + orr r0, r1 + strb r0, [r2, r4] +_0202EEA2: + pop {r3-r4} + bx lr + nop +_0202EEA8: .word 0x021C59E8 +_0202EEAC: .word 0x00000DAD + + thumb_func_start sub_0202EEB0 +sub_0202EEB0: ; 0x0202EEB0 + push {r4-r5} + ldr r5, _0202EEDC ; =0x021C59E8 + ldr r2, [r5, #0x8] + cmp r2, #0x0 + beq _0202EED6 + ldr r4, _0202EEE0 ; =0x00000DAD + lsl r0, r0, #0x18 + ldrb r1, [r2, r4] + lsr r0, r0, #0x18 + mov r3, #0x2 + lsl r0, r0, #0x1f + bic r1, r3 + lsr r0, r0, #0x1e + orr r0, r1 + strb r0, [r2, r4] + ldr r2, _0202EEE4 ; =0x0000FFFF + ldr r1, [r5, #0x8] + sub r0, r4, #0x7 + strh r2, [r1, r0] +_0202EED6: + pop {r4-r5} + bx lr + nop +_0202EEDC: .word 0x021C59E8 +_0202EEE0: .word 0x00000DAD +_0202EEE4: .word 0x0000FFFF + + thumb_func_start sub_0202EEE8 +sub_0202EEE8: ; 0x0202EEE8 + push {r3-r5, lr} + add r5, r0, #0x0 + blx sub_020D8AF0 + add r4, r0, #0x0 + cmp r5, #0x1a + blo _0202EEFA + bl sub_02020C2C +_0202EEFA: + cmp r5, #0xa + bne _0202EF04 + lsl r0, r4, #0xe + lsr r0, r0, #0x10 + pop {r3-r5, pc} +_0202EF04: + cmp r5, #0x9 + beq _0202EF0C + cmp r5, #0xd + bne _0202EF12 +_0202EF0C: + lsl r0, r4, #0xe + lsr r0, r0, #0x10 + pop {r3-r5, pc} +_0202EF12: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0202EF18 +sub_0202EF18: ; 0x0202EF18 + ldr r1, _0202EF3C ; =0x021C59E8 + ldr r3, [r1, #0x8] + cmp r3, #0x0 + beq _0202EF36 + lsl r1, r0, #0x1 + add r2, r3, r1 + ldr r1, _0202EF40 ; =0x00000C84 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202EF36 + mov r1, #0xc0 + add r3, #0x54 + mul r1, r0 + add r0, r3, r1 + bx lr +_0202EF36: + mov r0, #0x0 + bx lr + nop +_0202EF3C: .word 0x021C59E8 +_0202EF40: .word 0x00000C84 + + thumb_func_start sub_0202EF44 +sub_0202EF44: ; 0x0202EF44 + ldr r1, _0202EF68 ; =0x021C59E8 + ldr r3, [r1, #0x8] + cmp r3, #0x0 + beq _0202EF62 + lsl r1, r0, #0x1 + add r2, r3, r1 + ldr r1, _0202EF6C ; =0x00000C84 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202EF62 + mov r1, #0xc0 + add r3, #0xa4 + mul r1, r0 + add r0, r3, r1 + bx lr +_0202EF62: + mov r0, #0x0 + bx lr + nop +_0202EF68: .word 0x021C59E8 +_0202EF6C: .word 0x00000C84 + + thumb_func_start sub_0202EF70 +sub_0202EF70: ; 0x0202EF70 + ldr r0, _0202EF7C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EF80 ; =0x00000CB8 + ldr r0, [r1, r0] + bx lr + nop +_0202EF7C: .word 0x021C59E8 +_0202EF80: .word 0x00000CB8 + + thumb_func_start sub_0202EF84 +sub_0202EF84: ; 0x0202EF84 + ldr r1, _0202EFA4 ; =0x021C59E8 + ldr r3, [r1, #0x8] + lsl r1, r0, #0x1 + add r2, r3, r1 + ldr r1, _0202EFA8 ; =0x00000C84 + ldrh r1, [r2, r1] + cmp r1, #0x0 + bne _0202EF98 + mov r0, #0x0 + bx lr +_0202EF98: + mov r1, #0xc0 + add r3, #0xa4 + mul r1, r0 + add r0, r3, r1 + add r0, #0x10 + bx lr + .balign 4 +_0202EFA4: .word 0x021C59E8 +_0202EFA8: .word 0x00000C84 + + thumb_func_start sub_0202EFAC +sub_0202EFAC: ; 0x0202EFAC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0202EFDC ; =0x021C59E8 + add r4, r1, #0x0 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202EFD8 + cmp r4, #0x8 + blt _0202EFC2 + bl sub_02020C2C +_0202EFC2: + ldr r1, _0202EFDC ; =0x021C59E8 + add r0, r5, #0x0 + ldr r2, [r1, #0x8] + ldr r1, _0202EFE0 ; =0x00000C54 + add r3, r2, r1 + mov r2, #0x6 + add r1, r4, #0x0 + mul r1, r2 + add r1, r3, r1 + blx sub_020CE3E0 +_0202EFD8: + pop {r3-r5, pc} + nop +_0202EFDC: .word 0x021C59E8 +_0202EFE0: .word 0x00000C54 + + thumb_func_start sub_0202EFE4 +sub_0202EFE4: ; 0x0202EFE4 + push {r4-r5} + ldr r2, _0202F034 ; =0x021C59E8 + mov r1, #0x0 + ldr r3, [r2, #0x8] + ldr r2, _0202F038 ; =0x00000C54 + add r2, r3, r2 + ldrb r3, [r0, #0x0] +_0202EFF2: + ldrb r4, [r2, #0x0] + cmp r4, r3 + bne _0202F026 + ldrb r5, [r2, #0x1] + ldrb r4, [r0, #0x1] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x2] + ldrb r4, [r0, #0x2] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x3] + ldrb r4, [r0, #0x3] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x4] + ldrb r4, [r0, #0x4] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x5] + ldrb r4, [r0, #0x5] + cmp r5, r4 + bne _0202F026 + mov r0, #0x1 + pop {r4-r5} + bx lr +_0202F026: + add r1, r1, #0x1 + add r2, r2, #0x6 + cmp r1, #0x8 + blt _0202EFF2 + mov r0, #0x0 + pop {r4-r5} + bx lr + .balign 4 +_0202F034: .word 0x021C59E8 +_0202F038: .word 0x00000C54 + + thumb_func_start sub_0202F03C +sub_0202F03C: ; 0x0202F03C + ldr r0, _0202F054 ; =0x021C59E8 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _0202F04E + ldr r0, _0202F058 ; =0x00000DAD + ldrb r0, [r1, r0] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + bx lr +_0202F04E: + mov r0, #0x0 + bx lr + nop +_0202F054: .word 0x021C59E8 +_0202F058: .word 0x00000DAD + + thumb_func_start sub_0202F05C +sub_0202F05C: ; 0x0202F05C + ldr r0, _0202F070 ; =0x021C59E8 + ldr r3, [r0, #0x8] + cmp r3, #0x0 + beq _0202F06E + ldr r1, _0202F074 ; =0x00000DAD + mov r0, #0x10 + ldrb r2, [r3, r1] + orr r0, r2 + strb r0, [r3, r1] +_0202F06E: + bx lr + .balign 4 +_0202F070: .word 0x021C59E8 +_0202F074: .word 0x00000DAD + + thumb_func_start sub_0202F078 +sub_0202F078: ; 0x0202F078 + ldr r1, _0202F088 ; =0x021C59E8 + ldr r3, _0202F08C ; =sub_020CE3E0 + ldr r2, [r1, #0x8] + ldr r1, _0202F090 ; =0x00000CA8 + add r1, r2, r1 + mov r2, #0x8 + bx r3 + nop +_0202F088: .word 0x021C59E8 +_0202F08C: .word sub_020CE3E0 +_0202F090: .word 0x00000CA8 + + thumb_func_start sub_0202F094 +sub_0202F094: ; 0x0202F094 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02023AC4 + ldr r1, _0202F0B0 ; =0x021C59E8 + add r2, r0, #0x0 + ldr r3, [r1, #0x8] + ldr r1, _0202F0B4 ; =0x00000CBC + add r0, r4, #0x0 + ldr r1, [r3, r1] + blx sub_020CE3E0 + pop {r4, pc} + nop +_0202F0B0: .word 0x021C59E8 +_0202F0B4: .word 0x00000CBC + + thumb_func_start sub_0202F0B8 +sub_0202F0B8: ; 0x0202F0B8 + push {r4, lr} + bl sub_0202EA9C + ldr r3, _0202F0D4 ; =0x021C59E8 + ldr r2, _0202F0D8 ; =0x00000CC4 + ldr r4, [r3, #0x8] + ldrh r3, [r3, #0x0] + add r0, r4, r2 + sub r2, r2, #0x4 + ldr r2, [r4, r2] + mov r1, #0x5c + bl sub_0202D240 + pop {r4, pc} + .balign 4 +_0202F0D4: .word 0x021C59E8 +_0202F0D8: .word 0x00000CC4 + + thumb_func_start sub_0202F0DC +sub_0202F0DC: ; 0x0202F0DC + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_0202F0E4: + add r0, r4, #0x0 + bl sub_0202EF44 + cmp r0, #0x0 + beq _0202F0F8 + ldrb r1, [r0, #0x4] + cmp r1, r6 + bne _0202F0F8 + ldrb r0, [r0, #0x6] + add r5, r5, r0 +_0202F0F8: + add r4, r4, #0x1 + cmp r4, #0x10 + blt _0202F0E4 + add r0, r5, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0202F104 +sub_0202F104: ; 0x0202F104 + ldr r3, _0202F108 ; =sub_0202D2D0 + bx r3 + .balign 4 +_0202F108: .word sub_0202D2D0 + 1 + + thumb_func_start sub_0202F10C +sub_0202F10C: ; 0x0202F10C + push {r3, lr} + ldr r1, _0202F120 ; =0x021C59E8 + mov r2, #0x54 + ldr r1, [r1, #0x8] + blx sub_020CE3E0 + bl sub_0202F0B8 + pop {r3, pc} + nop +_0202F120: .word 0x021C59E8 + + thumb_func_start sub_0202F124 +sub_0202F124: ; 0x0202F124 + ldr r1, _0202F148 ; =0x021C59E8 + ldr r3, [r1, #0x8] + cmp r3, #0x0 + beq _0202F144 + lsl r1, r0, #0x1 + add r2, r3, r1 + ldr r1, _0202F14C ; =0x00000C84 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202F144 + mov r1, #0xc0 + add r3, #0xa4 + mul r1, r0 + add r0, r3, r1 + add r0, #0x8 + bx lr +_0202F144: + mov r0, #0x0 + bx lr + .balign 4 +_0202F148: .word 0x021C59E8 +_0202F14C: .word 0x00000C84 + + thumb_func_start sub_0202F150 +sub_0202F150: ; 0x0202F150 + push {r4-r6, lr} + add r6, r1, #0x0 + mov r4, #0x0 + ldr r1, _0202F2BC ; =0x021C59F4 + cmp r0, #0x0 + strb r4, [r1, #0x0] + beq _0202F25C + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + add r5, r0, #0x1 + ldr r0, _0202F2BC ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202F178 + mov r0, #0x1 + pop {r4-r6, pc} +_0202F178: + mov r0, #0xf + bl sub_02031480 + ldr r1, _0202F2C0 ; =0x0000068C + mov r0, #0xf + bl sub_02016998 + ldr r1, _0202F2BC ; =0x021C59F4 + ldr r2, _0202F2C0 ; =0x0000068C + str r0, [r1, #0x4] + add r1, r4, #0x0 + blx sub_020CE34C + ldr r2, _0202F2BC ; =0x021C59F4 + ldr r1, _0202F2C4 ; =0x00000658 + ldr r0, [r2, #0x4] + add r6, #0x40 + str r6, [r0, r1] + add r0, r1, #0x0 + ldr r3, [r2, #0x4] + add r6, r4, #0x0 + add r0, #0x25 + strb r6, [r3, r0] + add r0, r1, #0x0 + ldr r3, [r2, #0x4] + mov r6, #0x1b + add r0, #0x26 + strb r6, [r3, r0] + ldr r2, [r2, #0x4] + mov r0, #0xf + ldr r1, [r2, r1] + lsl r1, r1, #0x1 + bl sub_02016998 + ldr r2, _0202F2BC ; =0x021C59F4 + ldr r1, _0202F2C8 ; =0x0000045C + ldr r3, [r2, #0x4] + str r0, [r3, r1] + ldr r2, [r2, #0x4] + ldr r1, _0202F2C4 ; =0x00000658 + mov r0, #0xf + ldr r1, [r2, r1] + bl sub_02016998 + ldr r2, _0202F2BC ; =0x021C59F4 + mov r1, #0x46 + ldr r3, [r2, #0x4] + lsl r1, r1, #0x4 + str r0, [r3, r1] + ldr r2, [r2, #0x4] + ldr r1, _0202F2C4 ; =0x00000658 + mov r0, #0xf + ldr r1, [r2, r1] + mul r1, r5 + bl sub_02016998 + ldr r2, _0202F2BC ; =0x021C59F4 + ldr r1, _0202F2CC ; =0x00000458 + ldr r3, [r2, #0x4] + str r0, [r3, r1] + ldr r2, [r2, #0x4] + ldr r1, _0202F2C4 ; =0x00000658 + mov r0, #0xf + ldr r1, [r2, r1] + mul r1, r5 + bl sub_02016998 + ldr r1, _0202F2BC ; =0x021C59F4 + ldr r2, [r1, #0x4] + ldr r1, _0202F2D0 ; =0x00000454 + str r0, [r2, r1] + bl sub_02033534 + cmp r0, #0xa + ldr r2, _0202F2D4 ; =0x0000054C + bne _0202F236 + ldr r0, _0202F2BC ; =0x021C59F4 + mov r1, #0x64 + ldr r3, [r0, #0x4] + add r0, r3, r2 + sub r2, #0xe8 + add r2, r3, r2 + bl sub_0202D7D8 + ldr r0, _0202F2BC ; =0x021C59F4 + mov r1, #0x32 + ldr r3, [r0, #0x4] + ldr r2, _0202F2D8 ; =0x0000056C + lsl r1, r1, #0x4 + add r0, r3, r2 + sub r2, #0x90 + add r2, r3, r2 + bl sub_0202D7D8 + b _0202F268 +_0202F236: + ldr r0, _0202F2BC ; =0x021C59F4 + mov r1, #0x14 + ldr r3, [r0, #0x4] + add r0, r3, r2 + sub r2, #0xe8 + add r2, r3, r2 + bl sub_0202D7D8 + ldr r0, _0202F2BC ; =0x021C59F4 + add r1, r6, #0x0 + ldr r3, [r0, #0x4] + ldr r2, _0202F2D8 ; =0x0000056C + add r1, #0xfd + add r0, r3, r2 + sub r2, #0x90 + add r2, r3, r2 + bl sub_0202D7D8 + b _0202F268 +_0202F25C: + ldr r0, [r1, #0x4] + mov r4, #0x1 + cmp r0, #0x0 + bne _0202F268 + bl sub_02020C2C +_0202F268: + ldr r2, _0202F2BC ; =0x021C59F4 + ldr r1, _0202F2DC ; =0x0000065C + ldr r3, [r2, #0x4] + mov r0, #0x0 + strh r0, [r3, r1] + mov r5, #0xff + add r1, #0x1b +_0202F276: + ldr r3, [r2, #0x4] + add r3, r3, r0 + add r0, r0, #0x1 + strb r5, [r3, r1] + cmp r0, #0x4 + blt _0202F276 + cmp r4, #0x0 + bne _0202F28A + bl sub_0202F2F0 +_0202F28A: + ldr r0, _0202F2BC ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202F2E0 ; =0x000005F8 + add r0, r1, r0 + bl sub_020312BC + cmp r4, #0x0 + bne _0202F2AC + mov r1, #0x0 + ldr r0, _0202F2E4 ; =sub_0202FB20 + add r2, r1, #0x0 + bl sub_0200CA60 + ldr r1, _0202F2BC ; =0x021C59F4 + ldr r2, [r1, #0x4] + ldr r1, _0202F2E8 ; =0x00000548 + str r0, [r2, r1] +_0202F2AC: + ldr r0, _0202F2BC ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202F2EC ; =0x00000687 + strb r2, [r1, r0] + mov r0, #0x1 + pop {r4-r6, pc} + nop +_0202F2BC: .word 0x021C59F4 +_0202F2C0: .word 0x0000068C +_0202F2C4: .word 0x00000658 +_0202F2C8: .word 0x0000045C +_0202F2CC: .word 0x00000458 +_0202F2D0: .word 0x00000454 +_0202F2D4: .word 0x0000054C +_0202F2D8: .word 0x0000056C +_0202F2DC: .word 0x0000065C +_0202F2E0: .word 0x000005F8 +_0202F2E4: .word sub_0202FB20 + 1 +_0202F2E8: .word 0x00000548 +_0202F2EC: .word 0x00000687 + + thumb_func_start sub_0202F2F0 +sub_0202F2F0: ; 0x0202F2F0 + push {r3-r7, lr} + ldr r3, _0202F54C ; =0x021C59F4 + ldr r2, _0202F550 ; =0x0000062C + ldr r1, [r3, #0x4] + mov r0, #0x0 + strb r0, [r1, r2] + ldr r4, [r3, #0x4] + add r1, r2, #0x1 + strb r0, [r4, r1] + add r1, r2, #0x0 + ldr r4, [r3, #0x4] + add r1, #0x53 + strb r0, [r4, r1] + ldr r1, [r3, #0x4] + add r2, #0x54 + strb r0, [r1, r2] + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + add r6, r0, #0x1 + ldr r0, _0202F54C ; =0x021C59F4 + ldr r2, _0202F554 ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F558 ; =0x00000458 + mov r1, #0x0 + ldr r0, [r3, r0] + ldr r3, [r3, r2] + add r2, r3, #0x0 + mul r2, r6 + blx sub_020CE34C + mov r4, #0x0 + cmp r6, #0x0 + ble _0202F360 + ldr r7, _0202F54C ; =0x021C59F4 + add r5, r4, #0x0 +_0202F33E: + ldr r3, [r7, #0x4] + ldr r0, _0202F554 ; =0x00000658 + ldr r1, _0202F558 ; =0x00000458 + ldr r2, [r3, r0] + ldr r0, _0202F55C ; =0x000004E8 + add r0, r3, r0 + ldr r3, [r3, r1] + add r1, r4, #0x0 + mul r1, r2 + add r0, r0, r5 + add r1, r3, r1 + bl sub_0202D394 + add r4, r4, #0x1 + add r5, #0xc + cmp r4, r6 + blt _0202F33E +_0202F360: + ldr r0, _0202F54C ; =0x021C59F4 + ldr r2, _0202F554 ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F560 ; =0x00000454 + mov r1, #0x0 + ldr r0, [r3, r0] + ldr r3, [r3, r2] + add r2, r3, #0x0 + mul r2, r6 + blx sub_020CE34C + mov r5, #0x0 + cmp r6, #0x0 + ble _0202F3A2 + ldr r7, _0202F54C ; =0x021C59F4 + add r4, r5, #0x0 +_0202F380: + ldr r3, [r7, #0x4] + ldr r0, _0202F554 ; =0x00000658 + ldr r1, _0202F560 ; =0x00000454 + ldr r2, [r3, r0] + ldr r0, _0202F564 ; =0x0000047C + add r0, r3, r0 + ldr r3, [r3, r1] + add r1, r5, #0x0 + mul r1, r2 + add r0, r0, r4 + add r1, r3, r1 + bl sub_0202D394 + add r5, r5, #0x1 + add r4, #0xc + cmp r5, r6 + blt _0202F380 +_0202F3A2: + ldr r0, _0202F54C ; =0x021C59F4 + mov r2, #0x6 + ldr r1, [r0, #0x4] + mov r0, #0xb5 + lsl r0, r0, #0x2 + add r0, r1, r0 + mov r1, #0x0 + lsl r2, r2, #0x6 + blx sub_020CE34C + ldr r0, _0202F54C ; =0x021C59F4 + mov r1, #0xb5 + ldr r2, [r0, #0x4] + ldr r0, _0202F568 ; =0x000004DC + lsl r1, r1, #0x2 + add r0, r2, r0 + add r1, r2, r1 + mov r2, #0x6 + lsl r2, r2, #0x6 + bl sub_0202D394 + mov r0, #0xee + add r2, r0, #0x0 + mov r3, #0x85 + ldr r4, _0202F54C ; =0x021C59F4 + mov r1, #0x0 + add r2, #0x66 + lsl r3, r3, #0x2 +_0202F3DA: + ldr r5, [r4, #0x4] + add r5, r5, r1 + strb r0, [r5, r2] + ldr r5, [r4, #0x4] + add r5, r5, r1 + add r1, r1, #0x1 + strb r0, [r5, r3] + cmp r1, #0xc0 + blt _0202F3DA + ldr r0, _0202F54C ; =0x021C59F4 + mov r2, #0x42 + ldr r0, [r0, #0x4] + mov r1, #0x0 + add r0, #0x4c + lsl r2, r2, #0x2 + blx sub_020CE34C + ldr r0, _0202F54C ; =0x021C59F4 + mov r2, #0x42 + ldr r1, [r0, #0x4] + ldr r0, _0202F56C ; =0x00000464 + lsl r2, r2, #0x2 + add r0, r1, r0 + add r1, #0x4c + bl sub_0202D394 + ldr r1, _0202F54C ; =0x021C59F4 + mov r2, #0xff + ldr r0, [r1, #0x4] + mov r3, #0x1 + strb r2, [r0, #0x0] + ldr r0, [r1, #0x4] + add r0, #0x26 + strb r2, [r0, #0x0] + mov r2, #0xee +_0202F420: + ldr r0, [r1, #0x4] + strb r2, [r0, r3] + ldr r0, [r1, #0x4] + add r0, r0, r3 + add r0, #0x26 + add r3, r3, #0x1 + strb r2, [r0, #0x0] + cmp r3, #0x26 + blt _0202F420 + ldr r0, _0202F54C ; =0x021C59F4 + ldr r2, _0202F554 ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F570 ; =0x0000045C + ldr r2, [r3, r2] + ldr r0, [r3, r0] + mov r1, #0x0 + lsl r2, r2, #0x1 + blx sub_020CE34C + ldr r0, _0202F54C ; =0x021C59F4 + mov r1, #0x47 + ldr r3, [r0, #0x4] + ldr r2, _0202F554 ; =0x00000658 + lsl r1, r1, #0x4 + add r0, r3, r1 + sub r1, #0x14 + ldr r2, [r3, r2] + ldr r1, [r3, r1] + lsl r2, r2, #0x1 + bl sub_0202D394 + mov r2, #0x0 + ldr r0, _0202F54C ; =0x021C59F4 + ldr r1, _0202F574 ; =0x00000684 + ldr r3, [r0, #0x4] + mov r12, r2 + strb r2, [r3, r1] + ldr r3, [r0, #0x4] + add r1, r1, #0x1 + strb r2, [r3, r1] + add r1, r2, #0x0 + add r7, r2, #0x0 + add r6, r2, #0x0 +_0202F476: + ldr r3, [r0, #0x4] + add r4, r3, r2 + ldr r3, _0202F578 ; =0x0000065F + strb r6, [r4, r3] + ldr r3, [r0, #0x4] + ldr r4, _0202F57C ; =0x00000667 + add r5, r3, r2 + mov r3, #0x1 + strb r3, [r5, r4] + ldr r3, [r0, #0x4] + add r4, #0x8 + add r5, r3, r2 + mov r3, #0x1 + strb r3, [r5, r4] + ldr r4, [r0, #0x4] + mov r3, r12 + add r4, r4, r3 + mov r3, #0x61 + lsl r3, r3, #0x4 + strh r6, [r4, r3] + ldr r3, [r0, #0x4] + mov r4, #0xee + add r5, r3, r1 + ldr r3, _0202F580 ; =0x00000596 + add r2, r2, #0x1 + strb r4, [r5, r3] + ldr r3, [r0, #0x4] + ldr r4, _0202F584 ; =0x0000FFFF + add r5, r3, r1 + ldr r3, _0202F588 ; =0x00000594 + strh r4, [r5, r3] + ldr r3, [r0, #0x4] + add r4, r3, r1 + mov r3, #0x59 + lsl r3, r3, #0x4 + str r6, [r4, r3] + ldr r3, [r0, #0x4] + add r4, r3, r1 + ldr r3, _0202F58C ; =0x0000058C + add r1, #0xc + str r6, [r4, r3] + ldr r3, [r0, #0x4] + add r4, r3, r7 + ldr r3, _0202F590 ; =0x00000638 + add r7, r7, #0x4 + str r6, [r4, r3] + mov r3, r12 + add r3, r3, #0x2 + mov r12, r3 + cmp r2, #0x8 + blt _0202F476 + ldr r1, _0202F54C ; =0x021C59F4 + ldr r0, _0202F594 ; =0x00000634 + ldr r2, [r1, #0x4] + sub r3, r0, #0x4 + str r6, [r2, r0] + ldr r4, [r1, #0x4] + mov r2, #0x1 + str r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + sub r3, #0x3e + mov r2, #0xee + strb r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + ldr r2, _0202F584 ; =0x0000FFFF + sub r3, #0x40 + strh r2, [r4, r3] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + sub r2, #0x44 + str r6, [r3, r2] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + sub r2, #0x48 + str r6, [r3, r2] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0x4e + mov r2, #0x1 + strb r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0x4f + strb r2, [r4, r3] + ldr r2, _0202F598 ; =0x02105D58 + mov r3, #0x4 + strb r3, [r2, #0x1] + strb r3, [r2, #0x0] + ldr r1, [r1, #0x4] + sub r0, #0xe8 + add r0, r1, r0 + bl sub_0202D804 + ldr r0, _0202F54C ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202F59C ; =0x0000056C + add r0, r1, r0 + bl sub_0202D804 + ldr r0, _0202F54C ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202F5A0 ; =0x00000688 + strb r2, [r1, r0] + pop {r3-r7, pc} + .balign 4 +_0202F54C: .word 0x021C59F4 +_0202F550: .word 0x0000062C +_0202F554: .word 0x00000658 +_0202F558: .word 0x00000458 +_0202F55C: .word 0x000004E8 +_0202F560: .word 0x00000454 +_0202F564: .word 0x0000047C +_0202F568: .word 0x000004DC +_0202F56C: .word 0x00000464 +_0202F570: .word 0x0000045C +_0202F574: .word 0x00000684 +_0202F578: .word 0x0000065F +_0202F57C: .word 0x00000667 +_0202F580: .word 0x00000596 +_0202F584: .word 0x0000FFFF +_0202F588: .word 0x00000594 +_0202F58C: .word 0x0000058C +_0202F590: .word 0x00000638 +_0202F594: .word 0x00000634 +_0202F598: .word 0x02105D58 +_0202F59C: .word 0x0000056C +_0202F5A0: .word 0x00000688 + + thumb_func_start sub_0202F5A4 +sub_0202F5A4: ; 0x0202F5A4 + push {r3-r7, lr} + ldr r1, _0202F7D4 ; =0x021C59F4 + ldr r0, _0202F7D8 ; =0x0000062C + ldr r2, [r1, #0x4] + mov r3, #0x0 + strb r3, [r2, r0] + ldr r1, [r1, #0x4] + add r0, r0, #0x1 + strb r3, [r1, r0] + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + add r6, r0, #0x1 + ldr r0, _0202F7D4 ; =0x021C59F4 + ldr r2, _0202F7DC ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F7E0 ; =0x00000458 + mov r1, #0x0 + ldr r0, [r3, r0] + ldr r3, [r3, r2] + add r2, r3, #0x0 + mul r2, r6 + blx sub_020CE34C + mov r4, #0x0 + cmp r6, #0x0 + ble _0202F606 + ldr r7, _0202F7D4 ; =0x021C59F4 + add r5, r4, #0x0 +_0202F5E4: + ldr r3, [r7, #0x4] + ldr r0, _0202F7DC ; =0x00000658 + ldr r1, _0202F7E0 ; =0x00000458 + ldr r2, [r3, r0] + ldr r0, _0202F7E4 ; =0x000004E8 + add r0, r3, r0 + ldr r3, [r3, r1] + add r1, r4, #0x0 + mul r1, r2 + add r0, r0, r5 + add r1, r3, r1 + bl sub_0202D394 + add r4, r4, #0x1 + add r5, #0xc + cmp r4, r6 + blt _0202F5E4 +_0202F606: + ldr r0, _0202F7D4 ; =0x021C59F4 + ldr r2, _0202F7DC ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F7E8 ; =0x00000454 + mov r1, #0x0 + ldr r0, [r3, r0] + ldr r3, [r3, r2] + add r2, r3, #0x0 + mul r2, r6 + blx sub_020CE34C + mov r5, #0x0 + cmp r6, #0x0 + ble _0202F648 + ldr r7, _0202F7D4 ; =0x021C59F4 + add r4, r5, #0x0 +_0202F626: + ldr r3, [r7, #0x4] + ldr r0, _0202F7DC ; =0x00000658 + ldr r1, _0202F7E8 ; =0x00000454 + ldr r2, [r3, r0] + ldr r0, _0202F7EC ; =0x0000047C + add r0, r3, r0 + ldr r3, [r3, r1] + add r1, r5, #0x0 + mul r1, r2 + add r0, r0, r4 + add r1, r3, r1 + bl sub_0202D394 + add r5, r5, #0x1 + add r4, #0xc + cmp r5, r6 + blt _0202F626 +_0202F648: + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r2, #0x6 + ldr r1, [r0, #0x4] + mov r0, #0xb5 + lsl r0, r0, #0x2 + add r0, r1, r0 + mov r1, #0x0 + lsl r2, r2, #0x6 + blx sub_020CE34C + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r1, #0xb5 + ldr r2, [r0, #0x4] + ldr r0, _0202F7F0 ; =0x000004DC + lsl r1, r1, #0x2 + add r0, r2, r0 + add r1, r2, r1 + mov r2, #0x6 + lsl r2, r2, #0x6 + bl sub_0202D394 + mov r0, #0xee + add r2, r0, #0x0 + mov r3, #0x85 + ldr r4, _0202F7D4 ; =0x021C59F4 + mov r1, #0x0 + add r2, #0x66 + lsl r3, r3, #0x2 +_0202F680: + ldr r5, [r4, #0x4] + add r5, r5, r1 + strb r0, [r5, r2] + ldr r5, [r4, #0x4] + add r5, r5, r1 + add r1, r1, #0x1 + strb r0, [r5, r3] + cmp r1, #0xc0 + blt _0202F680 + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r2, #0x42 + ldr r0, [r0, #0x4] + mov r1, #0x0 + add r0, #0x4c + lsl r2, r2, #0x2 + blx sub_020CE34C + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r2, #0x42 + ldr r1, [r0, #0x4] + ldr r0, _0202F7F4 ; =0x00000464 + lsl r2, r2, #0x2 + add r0, r1, r0 + add r1, #0x4c + bl sub_0202D394 + ldr r1, _0202F7D4 ; =0x021C59F4 + mov r2, #0xff + ldr r0, [r1, #0x4] + mov r3, #0x1 + strb r2, [r0, #0x0] + ldr r0, [r1, #0x4] + add r0, #0x26 + strb r2, [r0, #0x0] + mov r2, #0xee +_0202F6C6: + ldr r0, [r1, #0x4] + strb r2, [r0, r3] + ldr r0, [r1, #0x4] + add r0, r0, r3 + add r0, #0x26 + add r3, r3, #0x1 + strb r2, [r0, #0x0] + cmp r3, #0x26 + blt _0202F6C6 + ldr r0, _0202F7D4 ; =0x021C59F4 + ldr r2, _0202F7DC ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F7F8 ; =0x0000045C + ldr r2, [r3, r2] + ldr r0, [r3, r0] + mov r1, #0x0 + lsl r2, r2, #0x1 + blx sub_020CE34C + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r1, #0x47 + ldr r3, [r0, #0x4] + ldr r2, _0202F7DC ; =0x00000658 + lsl r1, r1, #0x4 + add r0, r3, r1 + sub r1, #0x14 + ldr r2, [r3, r2] + ldr r1, [r3, r1] + lsl r2, r2, #0x1 + bl sub_0202D394 + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r3, #0x0 + ldr r2, [r0, #0x4] + ldr r1, _0202F7FC ; =0x00000684 + add r7, r3, #0x0 + strb r3, [r2, r1] + ldr r2, [r0, #0x4] + add r1, r1, #0x1 + strb r3, [r2, r1] + add r1, r3, #0x0 + add r2, r3, #0x0 +_0202F71A: + ldr r4, [r0, #0x4] + add r5, r4, r3 + ldr r4, _0202F800 ; =0x0000065F + strb r7, [r5, r4] + ldr r4, [r0, #0x4] + ldr r5, _0202F804 ; =0x00000667 + add r6, r4, r3 + mov r4, #0x1 + strb r4, [r6, r5] + ldr r4, [r0, #0x4] + add r5, #0x8 + add r6, r4, r3 + mov r4, #0x1 + strb r4, [r6, r5] + ldr r4, [r0, #0x4] + add r3, r3, #0x1 + add r5, r4, r1 + mov r4, #0x61 + lsl r4, r4, #0x4 + strh r7, [r5, r4] + ldr r4, [r0, #0x4] + ldr r5, _0202F808 ; =0x00000596 + add r6, r4, r2 + mov r4, #0xee + strb r4, [r6, r5] + ldr r4, [r0, #0x4] + ldr r5, _0202F80C ; =0x0000FFFF + add r6, r4, r2 + ldr r4, _0202F810 ; =0x00000594 + add r1, r1, #0x2 + strh r5, [r6, r4] + ldr r4, [r0, #0x4] + add r5, r4, r2 + mov r4, #0x59 + lsl r4, r4, #0x4 + str r7, [r5, r4] + ldr r4, [r0, #0x4] + add r5, r4, r2 + ldr r4, _0202F814 ; =0x0000058C + add r2, #0xc + str r7, [r5, r4] + cmp r3, #0x8 + blt _0202F71A + ldr r1, _0202F7D4 ; =0x021C59F4 + add r0, r4, #0x0 + ldr r3, [r1, #0x4] + add r0, #0xa4 + mov r2, #0x1 + str r2, [r3, r0] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + sub r3, #0x3a + mov r2, #0xee + strb r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + ldr r2, _0202F80C ; =0x0000FFFF + sub r3, #0x3c + strh r2, [r4, r3] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + sub r2, #0x40 + str r7, [r3, r2] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + sub r2, #0x44 + str r7, [r3, r2] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0x52 + mov r2, #0x1 + strb r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0x53 + strb r2, [r4, r3] + ldr r1, [r1, #0x4] + sub r0, #0xe4 + add r0, r1, r0 + bl sub_0202D804 + ldr r0, _0202F7D4 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202F818 ; =0x0000056C + add r0, r1, r0 + bl sub_0202D804 + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202F81C ; =0x00000688 + strb r2, [r1, r0] + pop {r3-r7, pc} + .balign 4 +_0202F7D4: .word 0x021C59F4 +_0202F7D8: .word 0x0000062C +_0202F7DC: .word 0x00000658 +_0202F7E0: .word 0x00000458 +_0202F7E4: .word 0x000004E8 +_0202F7E8: .word 0x00000454 +_0202F7EC: .word 0x0000047C +_0202F7F0: .word 0x000004DC +_0202F7F4: .word 0x00000464 +_0202F7F8: .word 0x0000045C +_0202F7FC: .word 0x00000684 +_0202F800: .word 0x0000065F +_0202F804: .word 0x00000667 +_0202F808: .word 0x00000596 +_0202F80C: .word 0x0000FFFF +_0202F810: .word 0x00000594 +_0202F814: .word 0x0000058C +_0202F818: .word 0x0000056C +_0202F81C: .word 0x00000688 + + thumb_func_start sub_0202F820 +sub_0202F820: ; 0x0202F820 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _0202F8B8 ; =0x021C59F4 + ldr r3, _0202F8BC ; =0x0000065F + ldr r1, [r0, #0x4] + mov r2, #0x0 + add r1, r1, r5 + strb r2, [r1, r3] + ldr r4, [r0, #0x4] + mov r1, #0x1 + add r6, r4, r5 + add r4, r3, #0x0 + add r4, #0x8 + strb r1, [r6, r4] + ldr r6, [r0, #0x4] + lsl r4, r5, #0x2 + add r6, r6, r4 + add r4, r3, #0x0 + sub r4, #0x27 + str r2, [r6, r4] + ldr r2, [r0, #0x4] + add r4, r2, r5 + add r2, r3, #0x0 + add r2, #0x10 + strb r1, [r4, r2] + ldr r1, [r0, #0x4] + sub r0, r3, #0x7 + ldr r2, [r1, r0] + ldr r3, _0202F8C0 ; =0x0000047C + mov r0, #0xc + add r4, r5, #0x0 + mul r4, r0 + add r0, r1, r3 + sub r3, #0x28 + ldr r3, [r1, r3] + add r1, r5, #0x0 + mul r1, r2 + add r0, r0, r4 + add r1, r3, r1 + bl sub_0202D394 + ldr r0, _0202F8B8 ; =0x021C59F4 + ldr r3, _0202F8C4 ; =0x000004E8 + ldr r1, [r0, #0x4] + ldr r0, _0202F8C8 ; =0x00000658 + ldr r2, [r1, r0] + add r0, r1, r3 + sub r3, #0x90 + ldr r3, [r1, r3] + add r1, r5, #0x0 + mul r1, r2 + add r0, r0, r4 + add r1, r3, r1 + bl sub_0202D394 + ldr r3, _0202F8B8 ; =0x021C59F4 + ldr r2, _0202F8CC ; =0x00000596 + ldr r0, [r3, #0x4] + mov r1, #0xee + add r0, r0, r4 + strb r1, [r0, r2] + ldr r0, [r3, #0x4] + ldr r5, _0202F8D0 ; =0x0000FFFF + add r1, r0, r4 + sub r0, r2, #0x2 + strh r5, [r1, r0] + ldr r1, [r3, #0x4] + mov r0, #0x0 + add r5, r1, r4 + sub r1, r2, #0x6 + str r0, [r5, r1] + ldr r1, [r3, #0x4] + sub r2, #0xa + add r1, r1, r4 + str r0, [r1, r2] + pop {r4-r6, pc} + .balign 4 +_0202F8B8: .word 0x021C59F4 +_0202F8BC: .word 0x0000065F +_0202F8C0: .word 0x0000047C +_0202F8C4: .word 0x000004E8 +_0202F8C8: .word 0x00000658 +_0202F8CC: .word 0x00000596 +_0202F8D0: .word 0x0000FFFF + + thumb_func_start sub_0202F8D4 +sub_0202F8D4: ; 0x0202F8D4 + push {r4-r6, lr} + ldr r4, _0202F908 ; =0x021C59F4 + ldr r6, _0202F90C ; =0x00000667 + mov r5, #0x1 +_0202F8DC: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + bne _0202F900 + ldr r0, [r4, #0x4] + add r0, r0, r5 + ldrb r0, [r0, r6] + cmp r0, #0x0 + bne _0202F900 + bl sub_02031280 + cmp r0, #0x0 + bne _0202F900 + add r0, r5, #0x0 + bl sub_0202F820 +_0202F900: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0202F8DC + pop {r4-r6, pc} + .balign 4 +_0202F908: .word 0x021C59F4 +_0202F90C: .word 0x00000667 + + thumb_func_start sub_0202F910 +sub_0202F910: ; 0x0202F910 + ldr r3, _0202F914 ; =sub_0202F820 + bx r3 + .balign 4 +_0202F914: .word sub_0202F820 + 1 + + thumb_func_start sub_0202F918 +sub_0202F918: ; 0x0202F918 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x0] + mov r4, #0x1 + bl sub_02033534 + cmp r0, #0x13 + bge _0202F93E + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0202E5F8 + add r4, r0, #0x0 + ldr r0, _0202F94C ; =sub_0202F910 + bl sub_0202D330 +_0202F93E: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_0202F150 + add r0, r4, #0x0 + pop {r3-r7, pc} + nop +_0202F94C: .word sub_0202F910 + 1 + + thumb_func_start sub_0202F950 +sub_0202F950: ; 0x0202F950 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + mov r4, #0x1 + bl sub_02033534 + cmp r0, #0x13 + bge _0202F96C + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0202E66C + add r4, r0, #0x0 +_0202F96C: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_0202F150 + ldr r0, _0202F980 ; =0x02105D58 + mov r1, #0x4 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + pop {r3-r7, pc} + nop +_0202F980: .word 0x02105D58 + + thumb_func_start sub_0202F984 +sub_0202F984: ; 0x0202F984 + push {r4, lr} + mov r4, #0x0 + bl sub_02031190 + cmp r0, #0x0 + bne _0202F99A + ldr r0, _0202F9D4 ; =0x02105D58 + ldrb r0, [r0, #0x1] + cmp r0, #0x4 + beq _0202F9A2 + pop {r4, pc} +_0202F99A: + ldr r0, _0202F9D4 ; =0x02105D58 + ldrb r0, [r0, #0x0] + cmp r0, #0x4 + bne _0202F9D0 +_0202F9A2: + ldr r0, _0202F9D8 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _0202F9DC ; =0x0000067D + ldrb r1, [r2, r0] + cmp r1, #0x2 + bne _0202F9B4 + mov r1, #0x0 + strb r1, [r2, r0] + mov r4, #0x1 +_0202F9B4: + ldr r0, _0202F9D8 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _0202F9DC ; =0x0000067D + ldrb r1, [r2, r0] + cmp r1, #0x3 + bne _0202F9C4 + mov r4, #0x1 + strb r4, [r2, r0] +_0202F9C4: + cmp r4, #0x0 + beq _0202F9CC + bl sub_0202F5A4 +_0202F9CC: + bl sub_02031088 +_0202F9D0: + pop {r4, pc} + nop +_0202F9D4: .word 0x02105D58 +_0202F9D8: .word 0x021C59F4 +_0202F9DC: .word 0x0000067D + + thumb_func_start sub_0202F9E0 +sub_0202F9E0: ; 0x0202F9E0 + ldr r1, _0202FA08 ; =0x021C59F4 + ldr r3, [r1, #0x4] + ldr r1, _0202FA0C ; =0x0000067D + ldrb r2, [r3, r1] + cmp r2, #0x0 + bne _0202F9F6 + cmp r0, #0x1 + bne _0202F9F6 + mov r0, #0x3 + strb r0, [r3, r1] + bx lr +_0202F9F6: + cmp r2, #0x1 + bne _0202FA04 + cmp r0, #0x0 + bne _0202FA04 + ldr r0, _0202FA0C ; =0x0000067D + mov r1, #0x2 + strb r1, [r3, r0] +_0202FA04: + bx lr + nop +_0202FA08: .word 0x021C59F4 +_0202FA0C: .word 0x0000067D + + thumb_func_start sub_0202FA10 +sub_0202FA10: ; 0x0202FA10 + ldr r3, _0202FA18 ; =sub_0202F9E0 + mov r0, #0x1 + bx r3 + nop +_0202FA18: .word sub_0202F9E0 + 1 + + thumb_func_start sub_0202FA1C +sub_0202FA1C: ; 0x0202FA1C + ldr r3, _0202FA24 ; =sub_0202F9E0 + mov r0, #0x0 + bx r3 + nop +_0202FA24: .word sub_0202F9E0 + 1 + + thumb_func_start sub_0202FA28 +sub_0202FA28: ; 0x0202FA28 + ldr r0, _0202FA40 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FA44 ; =0x0000067D + ldrb r0, [r1, r0] + cmp r0, #0x2 + bne _0202FA38 + mov r0, #0x1 + bx lr +_0202FA38: + cmp r0, #0x3 + bne _0202FA3E + mov r0, #0x0 +_0202FA3E: + bx lr + .balign 4 +_0202FA40: .word 0x021C59F4 +_0202FA44: .word 0x0000067D + + thumb_func_start sub_0202FA48 +sub_0202FA48: ; 0x0202FA48 + push {r3, lr} + bl sub_0202FA28 + cmp r0, #0x1 + bne _0202FA56 + mov r0, #0x1 + pop {r3, pc} +_0202FA56: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202FA5C +sub_0202FA5C: ; 0x0202FA5C + push {r4, lr} + ldr r0, _0202FB00 ; =0x021C59F4 + mov r4, #0x0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202FA82 + bl sub_02033534 + cmp r0, #0x13 + blt _0202FA78 + bl sub_021D83C0 + mov r4, #0x1 + b _0202FA82 +_0202FA78: + bl sub_0202E784 + cmp r0, #0x0 + beq _0202FA82 + mov r4, #0x1 +_0202FA82: + cmp r4, #0x0 + beq _0202FAFE + bl sub_020314D0 + bl sub_0202DBA4 + ldr r0, _0202FB00 ; =0x021C59F4 + mov r1, #0x0 + strb r1, [r0, #0x0] + ldr r1, [r0, #0x4] + ldr r0, _0202FB04 ; =0x00000548 + ldr r0, [r1, r0] + bl sub_0200CAB4 + ldr r1, _0202FB00 ; =0x021C59F4 + ldr r0, _0202FB04 ; =0x00000548 + ldr r2, [r1, #0x4] + mov r3, #0x0 + str r3, [r2, r0] + ldr r1, [r1, #0x4] + sub r0, #0xec + ldr r0, [r1, r0] + bl sub_02016A18 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x46 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + bl sub_02016A18 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FB08 ; =0x00000458 + ldr r0, [r1, r0] + bl sub_02016A18 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FB0C ; =0x00000454 + ldr r0, [r1, r0] + bl sub_02016A18 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FB10 ; =0x0000056C + add r0, r1, r0 + bl sub_0202D824 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FB14 ; =0x0000054C + add r0, r1, r0 + bl sub_0202D824 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r0, [r0, #0x4] + bl sub_02016A18 + ldr r0, _0202FB00 ; =0x021C59F4 + mov r1, #0x0 + str r1, [r0, #0x4] +_0202FAFE: + pop {r4, pc} + .balign 4 +_0202FB00: .word 0x021C59F4 +_0202FB04: .word 0x00000548 +_0202FB08: .word 0x00000458 +_0202FB0C: .word 0x00000454 +_0202FB10: .word 0x0000056C +_0202FB14: .word 0x0000054C + + thumb_func_start sub_0202FB18 +sub_0202FB18: ; 0x0202FB18 + ldr r3, _0202FB1C ; =sub_0202E9E8 + bx r3 + .balign 4 +_0202FB1C: .word sub_0202E9E8 + 1 + + thumb_func_start sub_0202FB20 +sub_0202FB20: ; 0x0202FB20 + push {r3, lr} + ldr r0, _0202FB54 ; =0x021C59F4 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202FB52 + bl sub_0203050C + bl sub_02031190 + cmp r0, #0x0 + bne _0202FB40 + mov r0, #0x0 + bl sub_02030E7C + cmp r0, #0x0 + bne _0202FB48 +_0202FB40: + bl sub_02031280 + cmp r0, #0x0 + beq _0202FB4C +_0202FB48: + bl sub_0202FEEC +_0202FB4C: + ldr r0, _0202FB54 ; =0x021C59F4 + mov r1, #0x0 + strb r1, [r0, #0x0] +_0202FB52: + pop {r3, pc} + .balign 4 +_0202FB54: .word 0x021C59F4 + + thumb_func_start sub_0202FB58 +sub_0202FB58: ; 0x0202FB58 + push {r3, lr} + bl sub_0202F03C + cmp r0, #0x0 + beq _0202FB7C + bl sub_02031190 + cmp r0, #0x0 + bne _0202FB78 + bl sub_0202EE24 + cmp r0, #0x0 + bne _0202FB7C + bl sub_0202FA5C + pop {r3, pc} +_0202FB78: + bl sub_0202FA5C +_0202FB7C: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0202FB80 +sub_0202FB80: ; 0x0202FB80 + push {r4, lr} + bl sub_02031CDC + ldr r1, _0202FC48 ; =0x021C59F4 + ldr r2, [r1, #0x4] + cmp r2, #0x0 + beq _0202FC34 + ldr r0, _0202FC4C ; =0x0000068A + ldrb r0, [r2, r0] + cmp r0, #0x0 + bne _0202FC16 + mov r0, #0x0 + strb r0, [r1, #0x0] + bl sub_0202F984 + ldr r0, _0202FC48 ; =0x021C59F4 + ldr r1, _0202FC50 ; =0x021C48B8 + ldr r0, [r0, #0x4] + ldr r2, _0202FC54 ; =0x00000628 + ldr r3, [r1, #0x44] + ldr r1, _0202FC58 ; =0x00007FFF + ldrh r4, [r0, r2] + and r1, r3 + orr r1, r4 + strh r1, [r0, r2] + bl sub_02030674 + bl sub_0202FCCC + ldr r0, _0202FC48 ; =0x021C59F4 + ldr r1, _0202FC54 ; =0x00000628 + ldr r3, [r0, #0x4] + mov r0, #0x2 + ldrh r2, [r3, r1] + lsl r0, r0, #0xe + and r0, r2 + strh r0, [r3, r1] + bl sub_0202FA28 + cmp r0, #0x0 + bne _0202FBD6 + bl sub_02030DA4 +_0202FBD6: + bl sub_02031190 + cmp r0, #0x0 + bne _0202FBE8 + mov r0, #0x0 + bl sub_02030E7C + cmp r0, #0x0 + bne _0202FBF0 +_0202FBE8: + bl sub_02031280 + cmp r0, #0x0 + beq _0202FBF4 +_0202FBF0: + bl sub_02030074 +_0202FBF4: + bl sub_02031190 + cmp r0, #0x0 + beq _0202FC0C + bl sub_0202FA28 + cmp r0, #0x1 + beq _0202FC0C + bl sub_02031280 + cmp r0, #0x0 + beq _0202FC10 +_0202FC0C: + bl sub_02030DFC +_0202FC10: + ldr r0, _0202FC48 ; =0x021C59F4 + mov r1, #0x1 + strb r1, [r0, #0x0] +_0202FC16: + ldr r0, _0202FC48 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FC5C ; =0x0000065C + ldrh r0, [r1, r0] + bl sub_0202ED70 + bl sub_02031190 + cmp r0, #0x0 + bne _0202FC2E + bl sub_0202F8D4 +_0202FC2E: + bl sub_0202FB58 + b _0202FC3A +_0202FC34: + mov r0, #0x0 + bl sub_0202ED70 +_0202FC3A: + mov r0, #0x0 + bl sub_020335F4 + bl sub_020315A4 + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0202FC48: .word 0x021C59F4 +_0202FC4C: .word 0x0000068A +_0202FC50: .word 0x021C48B8 +_0202FC54: .word 0x00000628 +_0202FC58: .word 0x00007FFF +_0202FC5C: .word 0x0000065C + + thumb_func_start sub_0202FC60 +sub_0202FC60: ; 0x0202FC60 + push {r4, lr} + ldr r0, _0202FC7C ; =0x021C59F4 + mov r1, #0x0 + ldrb r4, [r0, #0x0] + strb r1, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202FC74 + bl sub_0202F2F0 +_0202FC74: + ldr r0, _0202FC7C ; =0x021C59F4 + strb r4, [r0, #0x0] + pop {r4, pc} + nop +_0202FC7C: .word 0x021C59F4 + + thumb_func_start sub_0202FC80 +sub_0202FC80: ; 0x0202FC80 + push {r4, lr} + ldr r0, _0202FCA0 ; =0x021C59F4 + mov r1, #0x0 + ldrb r4, [r0, #0x0] + strb r1, [r0, #0x0] + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _0202FC9A + ldr r0, _0202FCA4 ; =0x0000067D + mov r1, #0x1 + strb r1, [r2, r0] + bl sub_0202F2F0 +_0202FC9A: + ldr r0, _0202FCA0 ; =0x021C59F4 + strb r4, [r0, #0x0] + pop {r4, pc} + .balign 4 +_0202FCA0: .word 0x021C59F4 +_0202FCA4: .word 0x0000067D + + thumb_func_start sub_0202FCA8 +sub_0202FCA8: ; 0x0202FCA8 + push {r4, lr} + ldr r0, _0202FCC8 ; =0x021C59F4 + mov r1, #0x0 + ldrb r4, [r0, #0x0] + strb r1, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202FCC0 + bl sub_0202F2F0 + bl sub_0202E538 +_0202FCC0: + ldr r0, _0202FCC8 ; =0x021C59F4 + strb r4, [r0, #0x0] + pop {r4, pc} + nop +_0202FCC8: .word 0x021C59F4 + + thumb_func_start sub_0202FCCC +sub_0202FCCC: ; 0x0202FCCC + push {r3, lr} + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FE18 ; =0x00000683 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202FD40 + bl sub_02033534 + cmp r0, #0x13 + blt _0202FD06 + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r1, _0202FE1C ; =0x00000687 + ldr r0, [r0, #0x4] + ldrb r1, [r0, r1] + cmp r1, #0x0 + beq _0202FCF8 + mov r1, #0x26 + bl sub_021D78FC + cmp r0, #0x0 + bne _0202FCFA +_0202FCF8: + b _0202FE10 +_0202FCFA: + ldr r0, _0202FE14 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202FE18 ; =0x00000683 + strb r2, [r1, r0] + pop {r3, pc} +_0202FD06: + bl sub_0202CBD4 + cmp r0, #0x4 + bne _0202FD1A + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + bne _0202FD22 +_0202FD1A: + bl sub_02031280 + cmp r0, #0x0 + beq _0202FE10 +_0202FD22: + ldr r0, _0202FE20 ; =0x02105D58 + mov r1, #0x0 + strb r1, [r0, #0x0] + bl sub_0203050C + ldr r0, _0202FE20 ; =0x02105D58 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202FE10 + ldr r0, _0202FE14 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202FE18 ; =0x00000683 + strb r2, [r1, r0] + pop {r3, pc} +_0202FD40: + bl sub_02033534 + cmp r0, #0x13 + blt _0202FDB2 + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r2, _0202FE1C ; =0x00000687 + ldr r0, [r0, #0x4] + ldrb r1, [r0, r2] + cmp r1, #0x0 + beq _0202FE10 + add r1, r2, #0x0 + sub r1, #0x57 + ldr r1, [r0, r1] + cmp r1, #0x0 + beq _0202FD7A + sub r2, #0x53 + ldr r1, [r0, r2] + cmp r1, #0x3 + bgt _0202FE10 + ldr r1, _0202FE20 ; =0x02105D58 + ldrb r1, [r1, #0x0] + cmp r1, #0x4 + bne _0202FD90 + bl sub_02030930 + ldr r0, _0202FE20 ; =0x02105D58 + mov r1, #0x2 + strb r1, [r0, #0x0] + b _0202FD90 +_0202FD7A: + ldr r1, _0202FE20 ; =0x02105D58 + ldrb r1, [r1, #0x0] + cmp r1, #0x4 + bne _0202FD90 + bl sub_02030930 + cmp r0, #0x0 + beq _0202FE10 + ldr r0, _0202FE20 ; =0x02105D58 + mov r1, #0x2 + strb r1, [r0, #0x0] +_0202FD90: + ldr r0, _0202FE14 ; =0x021C59F4 + mov r1, #0x26 + ldr r0, [r0, #0x4] + bl sub_021D78FC + cmp r0, #0x0 + beq _0202FE10 + ldr r0, _0202FE20 ; =0x02105D58 + mov r1, #0x4 + strb r1, [r0, #0x0] + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _0202FE24 ; =0x00000634 + ldr r1, [r2, r0] + add r1, r1, #0x1 + str r1, [r2, r0] + pop {r3, pc} +_0202FDB2: + bl sub_0202CBD4 + cmp r0, #0x4 + bne _0202FDC6 + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + bne _0202FDCE +_0202FDC6: + bl sub_02031280 + cmp r0, #0x0 + beq _0202FE10 +_0202FDCE: + ldr r0, _0202FE20 ; =0x02105D58 + ldrb r0, [r0, #0x0] + cmp r0, #0x4 + bne _0202FE10 + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _0202FE24 ; =0x00000634 + ldr r1, [r2, r0] + cmp r1, #0x3 + bgt _0202FE10 + add r0, #0x4b + ldrb r1, [r2, r0] + mov r0, #0x26 + mul r0, r1 + add r0, r2, r0 + bl sub_02030930 + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _0202FE28 ; =0x0000067F + ldrb r1, [r2, r0] + mov r0, #0x1 + sub r1, r0, r1 + mov r0, #0x26 + mul r0, r1 + add r0, r2, r0 + bl sub_02030930 + ldr r0, _0202FE20 ; =0x02105D58 + mov r1, #0x0 + strb r1, [r0, #0x0] + bl sub_0203050C +_0202FE10: + pop {r3, pc} + nop +_0202FE14: .word 0x021C59F4 +_0202FE18: .word 0x00000683 +_0202FE1C: .word 0x00000687 +_0202FE20: .word 0x02105D58 +_0202FE24: .word 0x00000634 +_0202FE28: .word 0x0000067F + + thumb_func_start sub_0202FE2C +sub_0202FE2C: ; 0x0202FE2C + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02031228 + str r0, [sp, #0xc] + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + add r0, r0, #0x1 + mov r7, #0x0 + str r0, [sp, #0x8] + cmp r0, #0x0 + ble _0202FED0 + ldr r0, [sp, #0x0] + mov r1, #0xc0 + add r6, r0, #0x0 + add r4, r7, #0x0 + add r5, r7, #0x0 + mul r6, r1 +_0202FE66: + ldr r0, _0202FEE4 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FEE8 ; =0x0000047C + add r0, r1, r0 + add r0, r0, r4 + bl sub_0202D4BC + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + beq _0202FE90 + ldr r0, _0202FEE4 ; =0x021C59F4 + mov r1, #0xe + ldr r0, [r0, #0x4] + add r0, r6, r0 + add r2, r5, r0 + mov r0, #0x55 + lsl r0, r0, #0x2 + strb r1, [r2, r0] +_0202FE90: + ldr r0, _0202FEE4 ; =0x021C59F4 + mov r2, #0x55 + ldr r1, [r0, #0x4] + ldr r0, _0202FEE8 ; =0x0000047C + lsl r2, r2, #0x2 + add r0, r1, r0 + add r1, r1, r2 + add r1, r1, r6 + ldr r2, [sp, #0xc] + add r0, r0, r4 + add r1, r1, r5 + bl sub_0202D400 + ldr r0, _0202FEE4 ; =0x021C59F4 + ldr r0, [r0, #0x4] + add r0, r6, r0 + add r1, r5, r0 + mov r0, #0x55 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0xe + bne _0202FEC2 + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + str r0, [sp, #0x4] +_0202FEC2: + ldr r0, [sp, #0xc] + add r7, r7, #0x1 + add r5, r5, r0 + ldr r0, [sp, #0x8] + add r4, #0xc + cmp r7, r0 + blt _0202FE66 +_0202FED0: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + cmp r1, r0 + bne _0202FEDE + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0202FEDE: + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0202FEE4: .word 0x021C59F4 +_0202FEE8: .word 0x0000047C + + thumb_func_start sub_0202FEEC +sub_0202FEEC: ; 0x0202FEEC + push {r3-r7, lr} + ldr r0, _02030064 ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202FEFE + bl sub_02033534 + cmp r0, #0x13 + blt _0202FF00 +_0202FEFE: + b _02030062 +_0202FF00: + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02031228 + str r0, [sp, #0x0] + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + add r6, r0, #0x1 + ldr r0, _02030068 ; =0x02105D58 + ldrb r1, [r0, #0x1] + cmp r1, #0x2 + beq _0202FF2C + ldrb r0, [r0, #0x1] + cmp r0, #0x0 + beq _0202FF2C + b _02030062 +_0202FF2C: + ldr r0, _02030068 ; =0x02105D58 + ldrb r1, [r0, #0x1] + add r1, r1, #0x1 + strb r1, [r0, #0x1] + bl sub_0202FA28 + cmp r0, #0x1 + bne _0202FF4A + ldr r0, _02030064 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x1a + lsl r0, r0, #0x6 + ldrb r0, [r1, r0] + bl sub_0202FE2C +_0202FF4A: + bl sub_0202CBD4 + cmp r0, #0x4 + bne _0202FF86 + bl sub_02031280 + cmp r0, #0x0 + bne _0202FF86 + ldr r0, _02030064 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x55 + lsl r0, r0, #0x2 + add r3, r1, r0 + mov r0, #0x1a + lsl r0, r0, #0x6 + ldrb r0, [r1, r0] + mov r1, #0xc0 + add r2, r0, #0x0 + mul r2, r1 + add r0, r3, r2 + ldr r3, _0203006C ; =sub_020304F0 + mov r2, #0xe + bl sub_0202D0D0 + cmp r0, #0x0 + bne _0202FF86 + ldr r0, _02030068 ; =0x02105D58 + ldrb r1, [r0, #0x1] + sub r1, r1, #0x1 + strb r1, [r0, #0x1] +_0202FF86: + ldr r0, _02030068 ; =0x02105D58 + ldrb r1, [r0, #0x1] + cmp r1, #0x1 + beq _0202FF94 + ldrb r0, [r0, #0x1] + cmp r0, #0x3 + bne _0203000A +_0202FF94: + mov r4, #0x0 + cmp r6, #0x0 + ble _0202FFDC + ldr r7, _02030064 ; =0x021C59F4 + add r5, r4, #0x0 +_0202FF9E: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + beq _0202FFBA + ldr r0, [r7, #0x4] + ldr r1, _02030070 ; =0x00000638 + add r0, r0, r5 + ldr r1, [r0, r1] + add r2, r1, #0x1 + ldr r1, _02030070 ; =0x00000638 + str r2, [r0, r1] + b _0202FFD4 +_0202FFBA: + bl sub_02031280 + cmp r0, #0x0 + beq _0202FFD4 + cmp r4, #0x0 + bne _0202FFD4 + ldr r0, [r7, #0x4] + ldr r1, _02030070 ; =0x00000638 + add r0, r0, r5 + ldr r1, [r0, r1] + add r2, r1, #0x1 + ldr r1, _02030070 ; =0x00000638 + str r2, [r0, r1] +_0202FFD4: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r6 + blt _0202FF9E +_0202FFDC: + ldr r0, _02030064 ; =0x021C59F4 + mov r1, #0x55 + ldr r2, [r0, #0x4] + lsl r1, r1, #0x2 + add r4, r2, r1 + mov r1, #0x1a + lsl r1, r1, #0x6 + ldrb r1, [r2, r1] + mov r2, #0xc0 + mov r0, #0x0 + add r3, r1, #0x0 + mul r3, r2 + add r1, r4, r3 + bl sub_0203026C + ldr r0, _02030064 ; =0x021C59F4 + mov r1, #0x1a + ldr r3, [r0, #0x4] + lsl r1, r1, #0x6 + ldrb r2, [r3, r1] + mov r0, #0x1 + sub r0, r0, r2 + strb r0, [r3, r1] +_0203000A: + mov r5, #0x0 + cmp r6, #0x0 + ble _0203004A + add r4, r5, #0x0 + mov r7, #0xff +_02030014: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + bne _02030040 + bl sub_0202FA28 + cmp r0, #0x1 + bne _02030040 + ldr r0, _02030064 ; =0x021C59F4 + mov r1, #0x1a + ldr r0, [r0, #0x4] + lsl r1, r1, #0x6 + ldrb r2, [r0, r1] + mov r1, #0xc0 + mul r1, r2 + add r0, r0, r1 + add r1, r4, r0 + mov r0, #0x55 + lsl r0, r0, #0x2 + strb r7, [r1, r0] +_02030040: + ldr r0, [sp, #0x0] + add r5, r5, #0x1 + add r4, r4, r0 + cmp r5, r6 + blt _02030014 +_0203004A: + bl sub_0202CBD4 + cmp r0, #0x4 + bne _0203005A + bl sub_02031280 + cmp r0, #0x0 + beq _02030062 +_0203005A: + ldr r0, _02030068 ; =0x02105D58 + ldrb r1, [r0, #0x1] + add r1, r1, #0x1 + strb r1, [r0, #0x1] +_02030062: + pop {r3-r7, pc} + .balign 4 +_02030064: .word 0x021C59F4 +_02030068: .word 0x02105D58 +_0203006C: .word sub_020304F0 + 1 +_02030070: .word 0x00000638 + + thumb_func_start sub_02030074 +sub_02030074: ; 0x02030074 + push {r3-r7, lr} + ldr r0, _02030228 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0203022C ; =0x00000683 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _020300DC + bl sub_02033534 + cmp r0, #0x13 + blt _020300B4 + mov r0, #0x0 + bl sub_02030E7C + cmp r0, #0x0 + beq _020300DC + ldr r0, _02030228 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x55 + lsl r0, r0, #0x2 + add r0, r1, r0 + mov r1, #0x4c + bl sub_021D79B4 + cmp r0, #0x0 + beq _020300DC + ldr r0, _02030228 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0203022C ; =0x00000683 + strb r2, [r1, r0] + pop {r3-r7, pc} +_020300B4: + bl sub_0202CBD4 + cmp r0, #0x4 + beq _020300C4 + bl sub_02031280 + cmp r0, #0x0 + beq _020300DC +_020300C4: + bl sub_0202FEEC + ldr r0, _02030230 ; =0x02105D58 + ldrb r0, [r0, #0x1] + cmp r0, #0x2 + bne _020300DC + ldr r0, _02030228 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0203022C ; =0x00000683 + strb r2, [r1, r0] + pop {r3-r7, pc} +_020300DC: + bl sub_02033534 + cmp r0, #0x13 + blt _02030184 + mov r0, #0x0 + bl sub_02030E7C + cmp r0, #0x0 + bne _020300F0 + b _02030224 +_020300F0: + ldr r0, _02030228 ; =0x021C59F4 + mov r1, #0x63 + ldr r2, [r0, #0x4] + lsl r1, r1, #0x4 + ldr r0, [r2, r1] + cmp r0, #0x0 + beq _02030130 + add r0, r1, #0x0 + add r0, #0xc + ldr r0, [r2, r0] + cmp r0, #0x3 + bgt _02030110 + add r1, #0x8 + ldr r0, [r2, r1] + cmp r0, #0x3 + ble _02030112 +_02030110: + b _02030224 +_02030112: + ldr r0, _02030230 ; =0x02105D58 + ldrb r0, [r0, #0x1] + cmp r0, #0x4 + bne _02030150 + bl sub_0202FA28 + cmp r0, #0x1 + bne _02030128 + mov r0, #0x0 + bl sub_0202FE2C +_02030128: + ldr r0, _02030230 ; =0x02105D58 + mov r1, #0x2 + strb r1, [r0, #0x1] + b _02030150 +_02030130: + ldr r0, _02030230 ; =0x02105D58 + ldrb r0, [r0, #0x1] + cmp r0, #0x4 + bne _0203014A + bl sub_0202FA28 + cmp r0, #0x1 + bne _0203014A + mov r0, #0x0 + bl sub_0202FE2C + cmp r0, #0x0 + beq _02030224 +_0203014A: + ldr r0, _02030230 ; =0x02105D58 + mov r1, #0x2 + strb r1, [r0, #0x1] +_02030150: + ldr r0, _02030228 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x55 + lsl r0, r0, #0x2 + add r0, r1, r0 + mov r1, #0x4c + bl sub_021D79B4 + cmp r0, #0x0 + beq _02030224 + ldr r0, _02030230 ; =0x02105D58 + mov r1, #0x4 + strb r1, [r0, #0x1] + ldr r1, _02030228 ; =0x021C59F4 + ldr r0, _02030234 ; =0x00000638 + ldr r3, [r1, #0x4] + ldr r2, [r3, r0] + add r2, r2, #0x1 + str r2, [r3, r0] + ldr r2, [r1, #0x4] + add r1, r0, #0x4 + ldr r1, [r2, r1] + add r0, r0, #0x4 + add r1, r1, #0x1 + str r1, [r2, r0] + pop {r3-r7, pc} +_02030184: + bl sub_0202CBD4 + cmp r0, #0x4 + beq _02030194 + bl sub_02031280 + cmp r0, #0x0 + beq _02030224 +_02030194: + ldr r0, _02030230 ; =0x02105D58 + ldrb r0, [r0, #0x1] + cmp r0, #0x4 + bne _02030224 + ldr r6, _02030228 ; =0x021C59F4 + ldr r7, _02030234 ; =0x00000638 + mov r4, #0x1 + mov r5, #0x4 +_020301A4: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + beq _020301BC + ldr r0, [r6, #0x4] + add r0, r0, r5 + ldr r0, [r0, r7] + cmp r0, #0x3 + ble _020301D2 + pop {r3-r7, pc} +_020301BC: + cmp r4, #0x0 + bne _020301D2 + bl sub_02031280 + cmp r0, #0x0 + beq _020301D2 + ldr r1, [r6, #0x4] + ldr r0, _02030234 ; =0x00000638 + ldr r0, [r1, r0] + cmp r0, #0x3 + bgt _02030224 +_020301D2: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x8 + blt _020301A4 + bl sub_0202FA28 + cmp r0, #0x0 + bne _0203021A + ldr r0, _02030228 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x55 + lsl r0, r0, #0x2 + add r2, r1, r0 + mov r0, #0x1a + lsl r0, r0, #0x6 + ldrb r1, [r1, r0] + mov r0, #0xc0 + mul r0, r1 + add r0, r2, r0 + bl sub_02030A00 + ldr r0, _02030228 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x55 + lsl r0, r0, #0x2 + add r2, r1, r0 + mov r0, #0x1a + lsl r0, r0, #0x6 + ldrb r1, [r1, r0] + mov r0, #0x1 + sub r1, r0, r1 + mov r0, #0xc0 + mul r0, r1 + add r0, r2, r0 + bl sub_02030A00 +_0203021A: + ldr r0, _02030230 ; =0x02105D58 + mov r1, #0x0 + strb r1, [r0, #0x1] + bl sub_0202FEEC +_02030224: + pop {r3-r7, pc} + nop +_02030228: .word 0x021C59F4 +_0203022C: .word 0x00000683 +_02030230: .word 0x02105D58 +_02030234: .word 0x00000638 + + thumb_func_start sub_02030238 +sub_02030238: ; 0x02030238 + push {r4-r6, lr} + ldr r4, _02030264 ; =0x021C59F4 + ldr r3, _02030268 ; =0x0000066F + ldr r5, [r4, #0x4] + ldrb r6, [r5, r3] + cmp r6, #0x0 + beq _0203025C + add r0, r3, #0x0 + sub r0, #0x3b + ldr r0, [r5, r0] + sub r1, r0, #0x1 + add r0, r3, #0x0 + sub r0, #0x3b + str r1, [r5, r0] + ldr r0, [r4, #0x4] + mov r1, #0x0 + strb r1, [r0, r3] + pop {r4-r6, pc} +_0203025C: + bl sub_0203026C + pop {r4-r6, pc} + nop +_02030264: .word 0x021C59F4 +_02030268: .word 0x0000066F + + thumb_func_start sub_0203026C +sub_0203026C: ; 0x0203026C + push {r3-r7, lr} + sub sp, #0x8 + ldr r0, _020303A0 ; =0x021C59F4 + add r5, r1, #0x0 + ldr r2, [r0, #0x4] + ldr r0, _020303A4 ; =0x00000634 + ldr r1, [r2, r0] + sub r1, r1, #0x1 + str r1, [r2, r0] + cmp r5, #0x0 + beq _02030290 + ldrb r0, [r5, #0x0] + cmp r0, #0xb + bne _02030296 + bl sub_0202FA28 + cmp r0, #0x1 + bne _02030292 +_02030290: + b _0203039C +_02030292: + add r5, r5, #0x1 + b _0203029E +_02030296: + bl sub_0202FA28 + cmp r0, #0x0 + beq _0203039C +_0203029E: + ldr r0, _020303A0 ; =0x021C59F4 + ldr r1, _020303A8 ; =0x00000682 + ldr r0, [r0, #0x4] + ldrb r1, [r0, r1] + cmp r1, #0x0 + beq _020302B2 + ldrb r2, [r5, #0x0] + mov r1, #0x1 + tst r1, r2 + bne _0203039C +_020302B2: + ldr r1, _020303A8 ; =0x00000682 + mov r2, #0x0 + strb r2, [r0, r1] + bl sub_0202FA28 + cmp r0, #0x1 + bne _0203036E + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02031228 + add r6, r0, #0x0 + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + add r0, r0, #0x1 + mov r4, #0x0 + str r0, [sp, #0x4] + cmp r0, #0x0 + ble _0203039C + sub r0, r6, #0x1 + add r7, r4, #0x0 + str r0, [sp, #0x0] +_020302EA: + ldrb r0, [r5, #0x0] + cmp r0, #0xff + bne _02030302 + ldr r0, _020303A0 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _020303AC ; =0x0000065C + lsl r2, r4 + ldrh r0, [r1, r0] + mvn r2, r2 + and r2, r0 + b _02030310 +_02030302: + ldr r0, _020303A0 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _020303AC ; =0x0000065C + lsl r2, r4 + ldrh r0, [r1, r0] + orr r2, r0 +_02030310: + ldr r0, _020303AC ; =0x0000065C + strh r2, [r1, r0] + ldrb r2, [r5, #0x0] + cmp r2, #0xff + bne _0203031E + add r5, r5, r6 + b _02030360 +_0203031E: + cmp r2, #0xe + bne _02030326 + add r5, r5, r6 + b _02030360 +_02030326: + ldr r0, _020303A0 ; =0x021C59F4 + ldr r3, [r0, #0x4] + ldr r0, _020303B0 ; =0x00000667 + add r1, r3, r4 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0203033E + mov r0, #0x1 + tst r0, r2 + beq _0203033E + add r5, r5, r6 + b _02030360 +_0203033E: + ldr r0, _020303B4 ; =0x000004E8 + add r5, r5, #0x1 + add r0, r3, r0 + ldr r2, [sp, #0x0] + ldr r3, _020303B8 ; =0x000005E6 + add r0, r0, r7 + add r1, r5, #0x0 + bl sub_0202D3A4 + ldr r0, [sp, #0x0] + mov r1, #0x0 + add r5, r5, r0 + ldr r0, _020303A0 ; =0x021C59F4 + ldr r0, [r0, #0x4] + add r2, r0, r4 + ldr r0, _020303B0 ; =0x00000667 + strb r1, [r2, r0] +_02030360: + ldr r0, [sp, #0x4] + add r4, r4, #0x1 + add r7, #0xc + cmp r4, r0 + blt _020302EA + add sp, #0x8 + pop {r3-r7, pc} +_0203036E: + ldr r0, _020303A0 ; =0x021C59F4 + ldrb r2, [r5, #0x1] + ldr r1, [r0, #0x4] + ldr r3, _020303AC ; =0x0000065C + strh r2, [r1, r3] + ldr r2, [r0, #0x4] + ldrh r1, [r2, r3] + lsl r1, r1, #0x8 + strh r1, [r2, r3] + ldr r4, [r0, #0x4] + ldrb r1, [r5, #0x2] + ldrh r2, [r4, r3] + add r1, r2, r1 + strh r1, [r4, r3] + ldr r1, [r0, #0x4] + mov r0, #0x47 + lsl r0, r0, #0x4 + add r0, r1, r0 + ldrb r2, [r5, #0x3] + add r1, r5, #0x4 + sub r3, #0x5d + bl sub_0202D3A4 +_0203039C: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020303A0: .word 0x021C59F4 +_020303A4: .word 0x00000634 +_020303A8: .word 0x00000682 +_020303AC: .word 0x0000065C +_020303B0: .word 0x00000667 +_020303B4: .word 0x000004E8 +_020303B8: .word 0x000005E6 + + thumb_func_start sub_020303BC +sub_020303BC: ; 0x020303BC + push {r4-r6, lr} + ldr r3, _020303EC ; =0x021C59F4 + ldr r6, _020303F0 ; =0x0000066F + ldr r5, [r3, #0x4] + add r4, r5, r0 + ldrb r4, [r4, r6] + cmp r4, #0x0 + beq _020303E4 + add r1, r6, #0x0 + sub r1, #0x37 + add r4, r5, r1 + lsl r2, r0, #0x2 + ldr r1, [r4, r2] + sub r1, r1, #0x1 + str r1, [r4, r2] + ldr r1, [r3, #0x4] + mov r2, #0x0 + add r0, r1, r0 + strb r2, [r0, r6] + pop {r4-r6, pc} +_020303E4: + bl sub_020303F4 + pop {r4-r6, pc} + nop +_020303EC: .word 0x021C59F4 +_020303F0: .word 0x0000066F + + thumb_func_start sub_020303F4 +sub_020303F4: ; 0x020303F4 + push {r4-r6, lr} + ldr r3, _020304B8 ; =0x021C59F4 + add r5, r0, #0x0 + ldr r0, [r3, #0x4] + ldr r2, _020304BC ; =0x00000638 + add r4, r1, #0x0 + add r1, r0, r2 + lsl r0, r5, #0x2 + ldr r6, [r1, r0] + sub r6, r6, #0x1 + str r6, [r1, r0] + cmp r4, #0x0 + beq _020304B4 + ldr r0, [r3, #0x4] + add r2, #0x2f + add r0, r0, r2 + ldrb r1, [r0, r5] + cmp r1, #0x0 + beq _02030422 + ldrb r2, [r4, #0x0] + mov r1, #0x1 + tst r1, r2 + bne _020304B4 +_02030422: + mov r1, #0x0 + strb r1, [r0, r5] + bl sub_0202FA28 + cmp r0, #0x1 + bne _02030478 + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02031228 + add r6, r0, #0x0 + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + ldrb r1, [r4, #0x0] + mov r0, #0x2 + tst r0, r1 + bne _02030468 + ldr r0, _020304B8 ; =0x021C59F4 + ldr r3, _020304C0 ; =0x0000065E + ldr r1, [r0, #0x4] + ldr r0, _020304C4 ; =0x0000047C + add r2, r6, #0x0 + add r1, r1, r0 + mov r0, #0xc + mul r0, r5 + add r0, r1, r0 + add r1, r4, #0x0 + bl sub_0202D3A4 +_02030468: + ldr r0, _020304B8 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _020304C8 ; =0x0000065F + add r1, r1, r0 + ldrb r0, [r1, r5] + add r0, r0, #0x1 + strb r0, [r1, r5] + pop {r4-r6, pc} +_02030478: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_020307E4 + ldrb r1, [r4, #0x0] + mov r0, #0x2 + tst r0, r1 + bne _020304B4 + mov r0, #0xc + add r6, r5, #0x0 + mul r6, r0 + ldr r0, _020304B8 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _020304CC ; =0x000004E8 + add r0, r1, r0 + add r0, r0, r6 + bl sub_0202D498 + cmp r0, #0xb + blt _020304B4 + ldr r0, _020304B8 ; =0x021C59F4 + ldr r3, _020304D0 ; =0x0000066E + ldr r1, [r0, #0x4] + ldr r0, _020304CC ; =0x000004E8 + mov r2, #0xb + add r0, r1, r0 + add r0, r0, r6 + add r1, r4, #0x1 + bl sub_0202D3A4 +_020304B4: + pop {r4-r6, pc} + nop +_020304B8: .word 0x021C59F4 +_020304BC: .word 0x00000638 +_020304C0: .word 0x0000065E +_020304C4: .word 0x0000047C +_020304C8: .word 0x0000065F +_020304CC: .word 0x000004E8 +_020304D0: .word 0x0000066E + + thumb_func_start sub_020304D4 +sub_020304D4: ; 0x020304D4 + push {r3, lr} + cmp r0, #0x0 + beq _020304E4 + ldr r0, _020304EC ; =0x02105D58 + ldrb r1, [r0, #0x0] + add r1, r1, #0x1 + strb r1, [r0, #0x0] + pop {r3, pc} +_020304E4: + bl sub_02020C2C + pop {r3, pc} + nop +_020304EC: .word 0x02105D58 + + thumb_func_start sub_020304F0 +sub_020304F0: ; 0x020304F0 + push {r3, lr} + cmp r0, #0x0 + beq _02030500 + ldr r0, _02030508 ; =0x02105D58 + ldrb r1, [r0, #0x1] + add r1, r1, #0x1 + strb r1, [r0, #0x1] + pop {r3, pc} +_02030500: + bl sub_02020C2C + pop {r3, pc} + nop +_02030508: .word 0x02105D58 + + thumb_func_start sub_0203050C +sub_0203050C: ; 0x0203050C + push {r4, lr} + ldr r0, _02030660 ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0203051E + bl sub_02033534 + cmp r0, #0x13 + blt _02030520 +_0203051E: + b _0203065E +_02030520: + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02031228 + add r4, r0, #0x0 + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + bl sub_02031280 + cmp r0, #0x0 + beq _02030594 + ldr r0, _02030664 ; =0x02105D58 + ldrb r1, [r0, #0x0] + cmp r1, #0x2 + beq _02030550 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02030594 +_02030550: + ldr r0, _02030664 ; =0x02105D58 + ldrb r1, [r0, #0x0] + add r1, r1, #0x1 + strb r1, [r0, #0x0] + mov r0, #0x1 + bl sub_020304D4 + ldr r0, _02030660 ; =0x021C59F4 + ldr r1, _02030668 ; =0x0000067F + ldr r3, [r0, #0x4] + mov r0, #0x0 + ldrb r2, [r3, r1] + mov r1, #0x26 + mul r1, r2 + lsl r2, r4, #0x10 + add r1, r3, r1 + lsr r2, r2, #0x10 + bl sub_020303F4 + ldr r2, _02030660 ; =0x021C59F4 + ldr r1, _02030668 ; =0x0000067F + ldr r4, [r2, #0x4] + mov r0, #0x1 + ldrb r3, [r4, r1] + sub r0, r0, r3 + strb r0, [r4, r1] + add r0, r1, #0x0 + ldr r2, [r2, #0x4] + sub r0, #0x4b + ldr r0, [r2, r0] + sub r1, #0x4b + add r0, r0, #0x1 + str r0, [r2, r1] + pop {r4, pc} +_02030594: + bl sub_0202CBD4 + cmp r0, #0x4 + bne _0203065E + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + bne _020305AE + bl sub_02031190 + pop {r4, pc} +_020305AE: + ldr r0, _02030664 ; =0x02105D58 + ldrb r1, [r0, #0x0] + cmp r1, #0x2 + beq _020305BC + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0203065E +_020305BC: + bl sub_02031190 + cmp r0, #0x0 + beq _02030612 + ldr r0, _02030664 ; =0x02105D58 + ldr r3, _0203066C ; =sub_020304D4 + ldrb r1, [r0, #0x0] + add r1, r1, #0x1 + strb r1, [r0, #0x0] + ldr r0, _02030660 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _02030668 ; =0x0000067F + ldrb r1, [r2, r0] + mov r0, #0x26 + mul r0, r1 + lsl r1, r4, #0x10 + add r0, r2, r0 + lsr r1, r1, #0x10 + mov r2, #0xe + bl sub_0202D0D0 + cmp r0, #0x0 + bne _020305F4 + ldr r0, _02030664 ; =0x02105D58 + ldrb r1, [r0, #0x0] + sub r1, r1, #0x1 + strb r1, [r0, #0x0] + pop {r4, pc} +_020305F4: + ldr r2, _02030660 ; =0x021C59F4 + ldr r1, _02030668 ; =0x0000067F + ldr r4, [r2, #0x4] + mov r0, #0x1 + ldrb r3, [r4, r1] + sub r0, r0, r3 + strb r0, [r4, r1] + add r0, r1, #0x0 + ldr r2, [r2, #0x4] + sub r0, #0x4b + ldr r0, [r2, r0] + sub r1, #0x4b + add r0, r0, #0x1 + str r0, [r2, r1] + pop {r4, pc} +_02030612: + bl sub_0202CB8C + ldr r1, _02030670 ; =0x0000FFFE + tst r0, r1 + beq _0203065E + ldr r0, _02030664 ; =0x02105D58 + ldrb r1, [r0, #0x0] + add r1, r1, #0x1 + strb r1, [r0, #0x0] + mov r0, #0x1 + bl sub_020304D4 + ldr r0, _02030660 ; =0x021C59F4 + ldr r1, _02030668 ; =0x0000067F + ldr r3, [r0, #0x4] + mov r0, #0x0 + ldrb r2, [r3, r1] + mov r1, #0x26 + mul r1, r2 + lsl r2, r4, #0x10 + add r1, r3, r1 + lsr r2, r2, #0x10 + bl sub_020303F4 + ldr r2, _02030660 ; =0x021C59F4 + ldr r1, _02030668 ; =0x0000067F + ldr r4, [r2, #0x4] + mov r0, #0x1 + ldrb r3, [r4, r1] + sub r0, r0, r3 + strb r0, [r4, r1] + add r0, r1, #0x0 + ldr r2, [r2, #0x4] + sub r0, #0x4b + ldr r0, [r2, r0] + sub r1, #0x4b + add r0, r0, #0x1 + str r0, [r2, r1] +_0203065E: + pop {r4, pc} + .balign 4 +_02030660: .word 0x021C59F4 +_02030664: .word 0x02105D58 +_02030668: .word 0x0000067F +_0203066C: .word sub_020304D4 + 1 +_02030670: .word 0x0000FFFE + + thumb_func_start sub_02030674 +sub_02030674: ; 0x02030674 + push {r3-r7, lr} + ldr r7, _02030798 ; =0x021C59F4 + mov r6, #0x0 + ldr r5, [r7, #0x4] + ldr r2, _0203079C ; =0x0000062C + add r4, r6, #0x0 + ldrb r0, [r5, r2] + cmp r0, #0x0 + beq _02030690 + sub r1, r2, #0x4 + ldrh r1, [r5, r1] + mov r3, #0xf0 + tst r3, r1 + bne _02030692 +_02030690: + b _02030794 +_02030692: + cmp r0, #0x2 + bne _020306D0 + mov r0, #0x20 + tst r0, r1 + beq _020306A4 + mov r0, #0x10 + orr r0, r6 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020306A4: + mov r0, #0x10 + tst r0, r1 + beq _020306B2 + mov r0, #0x20 + orr r0, r4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020306B2: + mov r0, #0x40 + tst r0, r1 + beq _020306C0 + mov r0, #0x80 + orr r0, r4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020306C0: + mov r0, #0x80 + tst r0, r1 + beq _0203077E + mov r0, #0x40 + orr r0, r4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203077E +_020306D0: + add r0, r2, #0x2 + ldrh r0, [r5, r0] + cmp r0, #0x0 + beq _020306F2 + add r4, r0, #0x0 + add r0, r2, #0x1 + ldrsb r0, [r5, r0] + sub r1, r0, #0x1 + add r0, r2, #0x1 + strb r1, [r5, r0] + ldr r1, [r7, #0x4] + ldrsb r0, [r1, r0] + cmp r0, #0x0 + bge _0203077E + add r0, r2, #0x2 + strh r6, [r1, r0] + b _0203077E +_020306F2: + add r0, r2, #0x0 + sub r0, #0x34 + add r6, r5, r0 + sub r2, #0x34 + ldr r0, [r6, #0x8] + ldr r1, [r6, #0xc] + ldr r2, [r5, r2] + ldr r3, [r6, #0x4] + blx sub_020EBC30 + add r3, r0, #0x0 + add r2, r1, #0x0 + ldr r0, [r6, #0x10] + ldr r1, [r6, #0x14] + add r0, r0, r3 + adc r1, r2 + ldr r2, _020307A0 ; =0x000005F8 + str r0, [r5, r2] + mov r2, #0x0 + str r1, [r6, #0x4] + lsr r0, r1, #0x1e + lsl r1, r2, #0x2 + orr r1, r0 + cmp r1, #0x3 + bhi _02030746 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + mov r4, #0x20 + b _02030746 +_0203073C: + .byte 0x10, 0x24, 0x02, 0xE0 + .byte 0x40, 0x24, 0x00, 0xE0, 0x80, 0x24 +_02030746: + ldr r0, _02030798 ; =0x021C59F4 + ldr r5, [r0, #0x4] + ldr r0, _020307A0 ; =0x000005F8 + add r6, r5, r0 + ldr r0, [r6, #0x8] + ldr r1, [r6, #0xc] + ldr r2, [r6, #0x0] + ldr r3, [r6, #0x4] + blx sub_020EBC30 + ldr r3, [r6, #0x10] + ldr r2, [r6, #0x14] + add r0, r3, r0 + adc r2, r1 + ldr r1, _020307A0 ; =0x000005F8 + mov r3, #0x0 + str r0, [r5, r1] + str r2, [r6, #0x4] + lsr r0, r2, #0x1c + lsl r2, r3, #0x4 + orr r2, r0 + add r0, r1, #0x0 + add r0, #0x35 + strb r2, [r5, r0] + ldr r0, _02030798 ; =0x021C59F4 + add r1, #0x36 + ldr r0, [r0, #0x4] + strh r4, [r0, r1] +_0203077E: + ldr r2, _02030798 ; =0x021C59F4 + ldr r1, _020307A4 ; =0x00000628 + ldr r5, [r2, #0x4] + mov r0, #0xf0 + ldrh r3, [r5, r1] + bic r3, r0 + strh r3, [r5, r1] + ldr r2, [r2, #0x4] + ldrh r0, [r2, r1] + add r0, r0, r4 + strh r0, [r2, r1] +_02030794: + pop {r3-r7, pc} + nop +_02030798: .word 0x021C59F4 +_0203079C: .word 0x0000062C +_020307A0: .word 0x000005F8 +_020307A4: .word 0x00000628 + + thumb_func_start sub_020307A8 +sub_020307A8: ; 0x020307A8 + ldr r0, _020307B4 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _020307B8 ; =0x0000062C + strb r2, [r1, r0] + bx lr + .balign 4 +_020307B4: .word 0x021C59F4 +_020307B8: .word 0x0000062C + + thumb_func_start sub_020307BC +sub_020307BC: ; 0x020307BC + ldr r0, _020307C8 ; =0x021C59F4 + mov r2, #0x2 + ldr r1, [r0, #0x4] + ldr r0, _020307CC ; =0x0000062C + strb r2, [r1, r0] + bx lr + .balign 4 +_020307C8: .word 0x021C59F4 +_020307CC: .word 0x0000062C + + thumb_func_start sub_020307D0 +sub_020307D0: ; 0x020307D0 + ldr r0, _020307DC ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _020307E0 ; =0x0000062C + strb r2, [r1, r0] + bx lr + .balign 4 +_020307DC: .word 0x021C59F4 +_020307E0: .word 0x0000062C + + thumb_func_start sub_020307E4 +sub_020307E4: ; 0x020307E4 + push {r4-r7} + ldr r4, _02030868 ; =0x021C59F4 + lsl r6, r1, #0x1 + ldr r2, [r4, #0x4] + mov r5, #0x0 + add r3, r2, r6 + mov r2, #0x61 + lsl r2, r2, #0x4 + strh r5, [r3, r2] + ldrb r5, [r0, #0x0] + mov r3, #0x10 + add r7, r5, #0x0 + and r7, r3 + cmp r7, #0x10 + bne _02030860 + mov r7, #0xc + and r5, r7 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + bne _0203081A + ldr r3, [r4, #0x4] + add r4, r3, r2 + ldrh r3, [r4, r6] + mov r2, #0x40 + orr r2, r3 + strh r2, [r4, r6] + b _0203084C +_0203081A: + cmp r5, #0x4 + bne _0203082C + ldr r3, [r4, #0x4] + add r4, r3, r2 + ldrh r3, [r4, r6] + mov r2, #0x80 + orr r2, r3 + strh r2, [r4, r6] + b _0203084C +_0203082C: + cmp r5, #0x8 + bne _0203083E + ldr r3, [r4, #0x4] + add r4, r3, r2 + ldrh r3, [r4, r6] + mov r2, #0x20 + orr r2, r3 + strh r2, [r4, r6] + b _0203084C +_0203083E: + cmp r5, #0xc + bne _0203084C + ldr r4, [r4, #0x4] + add r4, r4, r2 + ldrh r2, [r4, r6] + orr r2, r3 + strh r2, [r4, r6] +_0203084C: + ldrb r0, [r0, #0x0] + asr r2, r0, #0x5 + mov r0, #0x7 + and r2, r0 + ldr r0, _02030868 ; =0x021C59F4 + ldr r0, [r0, #0x4] + add r1, r0, r1 + mov r0, #0x62 + lsl r0, r0, #0x4 + strb r2, [r1, r0] +_02030860: + mov r0, #0x1 + pop {r4-r7} + bx lr + nop +_02030868: .word 0x021C59F4 + + thumb_func_start sub_0203086C +sub_0203086C: ; 0x0203086C + bx lr + .balign 4 + + thumb_func_start sub_02030870 +sub_02030870: ; 0x02030870 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0203091C ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02030920 ; =0x0000062A + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _02030884 + mov r0, #0x0 + pop {r4, pc} +_02030884: + bl sub_02030FE0 + cmp r0, #0x0 + bne _02030890 + mov r0, #0x0 + pop {r4, pc} +_02030890: + ldr r0, _0203091C ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _02030924 ; =0x00000681 + ldrb r1, [r2, r0] + cmp r1, #0x0 + beq _020308A0 + sub r1, r1, #0x1 + strb r1, [r2, r0] +_020308A0: + ldr r1, _0203091C ; =0x021C59F4 + ldr r0, _02030928 ; =0x00000628 + ldr r2, [r1, #0x4] + mov r3, #0x40 + ldrh r2, [r2, r0] + tst r3, r2 + beq _020308C0 + ldrb r3, [r4, #0x0] + mov r2, #0x10 + add r0, #0x59 + orr r2, r3 + strb r2, [r4, #0x0] + ldr r1, [r1, #0x4] + mov r2, #0x8 + strb r2, [r1, r0] + b _02030906 +_020308C0: + mov r3, #0x80 + tst r3, r2 + beq _020308D8 + ldrb r3, [r4, #0x0] + mov r2, #0x14 + add r0, #0x59 + orr r2, r3 + strb r2, [r4, #0x0] + ldr r1, [r1, #0x4] + mov r2, #0x8 + strb r2, [r1, r0] + b _02030906 +_020308D8: + mov r3, #0x20 + tst r3, r2 + beq _020308F0 + ldrb r3, [r4, #0x0] + mov r2, #0x18 + add r0, #0x59 + orr r2, r3 + strb r2, [r4, #0x0] + ldr r1, [r1, #0x4] + mov r2, #0x8 + strb r2, [r1, r0] + b _02030906 +_020308F0: + mov r3, #0x10 + tst r2, r3 + beq _02030906 + ldrb r3, [r4, #0x0] + mov r2, #0x1c + add r0, #0x59 + orr r2, r3 + strb r2, [r4, #0x0] + ldr r1, [r1, #0x4] + mov r2, #0x8 + strb r2, [r1, r0] +_02030906: + ldr r0, _0203091C ; =0x021C59F4 + ldrb r2, [r4, #0x0] + ldr r1, [r0, #0x4] + ldr r0, _0203092C ; =0x0000062B + ldrb r0, [r1, r0] + lsl r0, r0, #0x5 + orr r0, r2 + strb r0, [r4, #0x0] + mov r0, #0x0 + pop {r4, pc} + nop +_0203091C: .word 0x021C59F4 +_02030920: .word 0x0000062A +_02030924: .word 0x00000681 +_02030928: .word 0x00000628 +_0203092C: .word 0x0000062B + + thumb_func_start sub_02030930 +sub_02030930: ; 0x02030930 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02031228 + add r5, r0, #0x0 + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + ldr r0, _020309F0 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _020309F4 ; =0x00000684 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02030960 + mov r0, #0x0 + b _02030962 +_02030960: + mov r0, #0x1 +_02030962: + strb r0, [r4, #0x0] + bl sub_0202FA28 + cmp r0, #0x0 + bne _02030972 + add r0, r4, #0x0 + bl sub_02030870 +_02030972: + ldr r1, _020309F0 ; =0x021C59F4 + ldr r0, _020309F4 ; =0x00000684 + ldr r2, [r1, #0x4] + mov r3, #0x0 + strb r3, [r2, r0] + ldr r1, [r1, #0x4] + ldr r0, _020309F8 ; =0x0000054C + add r0, r1, r0 + bl sub_0202D4E4 + cmp r0, #0x0 + beq _0203099E + ldrb r1, [r4, #0x0] + mov r0, #0x2 + orr r0, r1 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x0] + cmp r0, #0x2 + bne _020309E8 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_0203099E: + sub r0, r5, #0x1 + str r0, [sp, #0x4] + add r0, r4, #0x1 + str r0, [sp, #0x0] + ldr r0, _020309F0 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _020309F8 ; =0x0000054C + add r0, r1, r0 + add r1, sp, #0x0 + bl sub_0202D760 + cmp r0, #0x0 + bne _020309C4 + ldr r0, _020309F0 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _020309F4 ; =0x00000684 + strb r2, [r1, r0] +_020309C4: + bl sub_0202FA28 + cmp r0, #0x1 + bne _020309E8 + ldr r2, _020309F0 ; =0x021C59F4 + ldr r1, _020309FC ; =0x0000065E + ldr r3, [r2, #0x4] + ldrb r0, [r3, r1] + add r0, r0, #0x1 + strb r0, [r3, r1] + ldr r2, [r2, #0x4] + ldrb r0, [r4, #0x0] + ldrb r1, [r2, r1] + lsl r2, r1, #0x4 + mov r1, #0xf0 + and r1, r2 + orr r0, r1 + strb r0, [r4, #0x0] +_020309E8: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + nop +_020309F0: .word 0x021C59F4 +_020309F4: .word 0x00000684 +_020309F8: .word 0x0000054C +_020309FC: .word 0x0000065E + + thumb_func_start sub_02030A00 +sub_02030A00: ; 0x02030A00 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + mov r0, #0xb + strb r0, [r4, #0x0] + ldr r0, _02030A6C ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02030A70 ; =0x00000685 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02030A1A + mov r0, #0x0 + b _02030A1C +_02030A1A: + mov r0, #0x1 +_02030A1C: + strb r0, [r4, #0x1] + bl sub_0202CB8C + asr r1, r0, #0x8 + strb r1, [r4, #0x2] + strb r0, [r4, #0x3] + mov r0, #0xbb + str r0, [sp, #0x4] + add r0, r4, #0x5 + str r0, [sp, #0x0] + ldr r0, _02030A6C ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030A74 ; =0x0000056C + add r0, r1, r0 + add r1, sp, #0x0 + bl sub_0202D760 + cmp r0, #0x0 + beq _02030A5A + ldr r0, _02030A6C ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030A70 ; =0x00000685 + strb r2, [r1, r0] + ldr r1, [sp, #0x4] + mov r0, #0xbb + sub r0, r0, r1 + add sp, #0x8 + strb r0, [r4, #0x4] + pop {r4, pc} +_02030A5A: + ldr r0, _02030A6C ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _02030A70 ; =0x00000685 + strb r2, [r1, r0] + mov r0, #0xbb + strb r0, [r4, #0x4] + add sp, #0x8 + pop {r4, pc} + .balign 4 +_02030A6C: .word 0x021C59F4 +_02030A70: .word 0x00000685 +_02030A74: .word 0x0000056C + + thumb_func_start sub_02030A78 +sub_02030A78: ; 0x02030A78 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + bne _02030A9C + bl sub_02031280 + cmp r0, #0x0 + bne _02030A9C + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030A9C: + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, _02030AD4 ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030AD8 ; =0x0000054C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl sub_0202D684 + cmp r0, #0x0 + beq _02030AC0 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_02030AC0: + bl sub_02033534 + cmp r0, #0xa + bne _02030ACC + bl sub_02031454 +_02030ACC: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + nop +_02030AD4: .word 0x021C59F4 +_02030AD8: .word 0x0000054C + + thumb_func_start sub_02030ADC +sub_02030ADC: ; 0x02030ADC + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + bne _02030B00 + bl sub_02031280 + cmp r0, #0x0 + bne _02030B00 + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030B00: + mov r0, #0x1 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, _02030B34 ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030B38 ; =0x0000054C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl sub_0202D684 + cmp r0, #0x0 + beq _02030B22 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_02030B22: + bl sub_02033534 + cmp r0, #0xa + bne _02030B2E + bl sub_02031454 +_02030B2E: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_02030B34: .word 0x021C59F4 +_02030B38: .word 0x0000054C + + thumb_func_start sub_02030B3C +sub_02030B3C: ; 0x02030B3C + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02031190 + cmp r0, #0x0 + beq _02030B58 + bl sub_02020C2C + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030B58: + mov r0, #0x0 + bl sub_02030E7C + cmp r0, #0x0 + bne _02030B70 + bl sub_02031280 + cmp r0, #0x0 + bne _02030B70 + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030B70: + bl sub_0202FA28 + cmp r0, #0x1 + bne _02030B86 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02030A78 + add sp, #0x8 + pop {r4-r6, pc} +_02030B86: + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, _02030BBC ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030BC0 ; =0x0000056C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl sub_0202D684 + cmp r0, #0x0 + beq _02030BAA + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_02030BAA: + bl sub_02033534 + cmp r0, #0xa + bne _02030BB6 + bl sub_02031454 +_02030BB6: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_02030BBC: .word 0x021C59F4 +_02030BC0: .word 0x0000056C + + thumb_func_start sub_02030BC4 +sub_02030BC4: ; 0x02030BC4 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02031190 + cmp r0, #0x0 + beq _02030BE0 + bl sub_02031454 + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030BE0: + mov r0, #0x0 + bl sub_02030E7C + cmp r0, #0x0 + bne _02030BF8 + bl sub_02031280 + cmp r0, #0x0 + bne _02030BF8 + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030BF8: + bl sub_0202FA28 + cmp r0, #0x1 + bne _02030C0E + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02030ADC + add sp, #0x8 + pop {r4-r6, pc} +_02030C0E: + mov r0, #0x1 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, _02030C44 ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030C48 ; =0x0000056C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl sub_0202D684 + cmp r0, #0x0 + beq _02030C30 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_02030C30: + bl sub_02033534 + cmp r0, #0xa + bne _02030C3C + bl sub_02031454 +_02030C3C: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + nop +_02030C44: .word 0x021C59F4 +_02030C48: .word 0x0000056C + + thumb_func_start sub_02030C4C +sub_02030C4C: ; 0x02030C4C + ldr r3, _02030C54 ; =sub_02030BC4 + mov r2, #0x0 + bx r3 + nop +_02030C54: .word sub_02030BC4 + 1 + + thumb_func_start sub_02030C58 +sub_02030C58: ; 0x02030C58 + ldr r0, _02030C64 ; =0x021C59F4 + ldr r3, _02030C68 ; =sub_0202D498 + ldr r1, [r0, #0x4] + ldr r0, _02030C6C ; =0x00000464 + add r0, r1, r0 + bx r3 + .balign 4 +_02030C64: .word 0x021C59F4 +_02030C68: .word sub_0202D498 + 1 +_02030C6C: .word 0x00000464 + + thumb_func_start sub_02030C70 +sub_02030C70: ; 0x02030C70 + push {r4, lr} + ldr r4, [sp, #0x8] + bl sub_0202D934 + mov r0, #0xee + strb r0, [r4, #0xa] + ldr r0, _02030C88 ; =0x0000FFFF + strh r0, [r4, #0x8] + mov r0, #0x0 + str r0, [r4, #0x4] + str r0, [r4, #0x0] + pop {r4, pc} + .balign 4 +_02030C88: .word 0x0000FFFF + + thumb_func_start sub_02030C8C +sub_02030C8C: ; 0x02030C8C + push {r4-r7, lr} + sub sp, #0x14 + add r6, r0, #0x0 + str r1, [sp, #0x4] + str r2, [sp, #0x8] + ldr r5, [sp, #0x28] + bl sub_0202D478 + cmp r0, #0x0 + beq _02030D94 +_02030CA0: + ldrb r7, [r5, #0xa] + cmp r7, #0xee + bne _02030CB2 + add r0, r6, #0x0 + bl sub_0202D41C + add r7, r0, #0x0 + cmp r7, #0xee + beq _02030D8A +_02030CB2: + mov r0, #0x4 + ldrsh r0, [r6, r0] + strb r7, [r5, #0xa] + ldrh r4, [r5, #0x8] + str r0, [sp, #0x10] + ldr r0, _02030D98 ; =0x0000FFFF + cmp r4, r0 + bne _02030D06 + add r0, r7, #0x0 + bl sub_0202D9A0 + add r4, r0, #0x0 + ldr r0, _02030D9C ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02030DA0 ; =0x00000689 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02030D94 + ldr r0, _02030D98 ; =0x0000FFFF + cmp r4, r0 + bne _02030D04 + add r0, r6, #0x0 + bl sub_0202D478 + cmp r0, #0x1 + bge _02030CEE + ldr r0, [sp, #0x10] + add sp, #0x14 + strh r0, [r6, #0x4] + pop {r4-r7, pc} +_02030CEE: + add r0, r6, #0x0 + bl sub_0202D41C + lsl r4, r0, #0x8 + add r0, r6, #0x0 + bl sub_0202D41C + add r4, r4, r0 + mov r0, #0x4 + ldrsh r0, [r6, r0] + str r0, [sp, #0x10] +_02030D04: + strh r4, [r5, #0x8] +_02030D06: + add r0, r7, #0x0 + bl sub_0202DA04 + cmp r0, #0x0 + beq _02030D5E + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _02030D22 + ldrh r2, [r5, #0x8] + ldr r1, [sp, #0x4] + add r0, r7, #0x0 + bl sub_0202DA40 + str r0, [r5, #0x4] +_02030D22: + ldr r2, [r5, #0x0] + ldr r1, [sp, #0x8] + add r0, r6, #0x0 + sub r2, r4, r2 + bl sub_0202D400 + ldr r2, [r5, #0x4] + str r0, [sp, #0xc] + cmp r2, #0x0 + beq _02030D42 + ldr r1, [r5, #0x0] + ldr r0, [sp, #0x8] + add r1, r2, r1 + ldr r2, [sp, #0xc] + blx sub_020CE3E0 +_02030D42: + ldr r1, [r5, #0x0] + ldr r0, [sp, #0xc] + add r0, r1, r0 + str r0, [r5, #0x0] + cmp r0, r4 + blt _02030D8A + str r5, [sp, #0x0] + ldr r0, [sp, #0x4] + ldr r3, [r5, #0x4] + add r1, r7, #0x0 + add r2, r4, #0x0 + bl sub_02030C70 + b _02030D8A +_02030D5E: + add r0, r6, #0x0 + bl sub_0202D478 + cmp r0, r4 + blt _02030D82 + ldr r1, [sp, #0x8] + add r0, r6, #0x0 + add r2, r4, #0x0 + bl sub_0202D400 + ldr r0, [sp, #0x4] + ldr r3, [sp, #0x8] + add r1, r7, #0x0 + add r2, r4, #0x0 + str r5, [sp, #0x0] + bl sub_02030C70 + b _02030D8A +_02030D82: + ldr r0, [sp, #0x10] + add sp, #0x14 + strh r0, [r6, #0x4] + pop {r4-r7, pc} +_02030D8A: + add r0, r6, #0x0 + bl sub_0202D478 + cmp r0, #0x0 + bne _02030CA0 +_02030D94: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02030D98: .word 0x0000FFFF +_02030D9C: .word 0x021C59F4 +_02030DA0: .word 0x00000689 + + thumb_func_start sub_02030DA4 +sub_02030DA4: ; 0x02030DA4 + push {r3, lr} + ldr r0, _02030DF0 ; =0x021C59F4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _02030DEE + ldr r0, _02030DF4 ; =0x0000068B + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02030DEE + mov r0, #0x47 + lsl r0, r0, #0x4 + add r0, r1, r0 + bl sub_0202D4BC + ldr r0, _02030DF0 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x47 + lsl r0, r0, #0x4 + add r0, r1, r0 + bl sub_0202D478 + cmp r0, #0x0 + ble _02030DEE + ldr r0, _02030DF0 ; =0x021C59F4 + mov r2, #0x47 + ldr r3, [r0, #0x4] + ldr r0, _02030DF8 ; =0x000005EC + lsl r2, r2, #0x4 + add r0, r3, r0 + str r0, [sp, #0x0] + add r0, r3, r2 + sub r2, #0x10 + ldr r2, [r3, r2] + mov r1, #0x0 + mov r3, #0x1 + bl sub_02030C8C +_02030DEE: + pop {r3, pc} + .balign 4 +_02030DF0: .word 0x021C59F4 +_02030DF4: .word 0x0000068B +_02030DF8: .word 0x000005EC + + thumb_func_start sub_02030DFC +sub_02030DFC: ; 0x02030DFC + push {r3-r7, lr} + ldr r0, _02030E6C ; =0x021C59F4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _02030E68 + ldr r0, _02030E70 ; =0x0000068B + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02030E68 + bl sub_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + add r7, r0, #0x1 + mov r4, #0x0 + cmp r7, #0x0 + ble _02030E68 + ldr r6, _02030E6C ; =0x021C59F4 + add r5, r4, #0x0 +_02030E26: + ldr r1, [r6, #0x4] + ldr r0, _02030E74 ; =0x000004E8 + add r0, r1, r0 + add r0, r0, r5 + bl sub_0202D4BC + ldr r1, [r6, #0x4] + ldr r0, _02030E74 ; =0x000004E8 + add r0, r1, r0 + add r0, r0, r5 + bl sub_0202D478 + cmp r0, #0x0 + ble _02030E60 + ldr r3, [r6, #0x4] + ldr r0, _02030E78 ; =0x0000058C + mov r2, #0x46 + add r0, r3, r0 + add r0, r0, r5 + str r0, [sp, #0x0] + ldr r0, _02030E74 ; =0x000004E8 + lsl r2, r2, #0x4 + add r0, r3, r0 + ldr r2, [r3, r2] + add r0, r0, r5 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_02030C8C +_02030E60: + add r4, r4, #0x1 + add r5, #0xc + cmp r4, r7 + blt _02030E26 +_02030E68: + pop {r3-r7, pc} + nop +_02030E6C: .word 0x021C59F4 +_02030E70: .word 0x0000068B +_02030E74: .word 0x000004E8 +_02030E78: .word 0x0000058C + + thumb_func_start sub_02030E7C +sub_02030E7C: ; 0x02030E7C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02030F14 ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + bne _02030E8C + mov r0, #0x0 + pop {r4, pc} +_02030E8C: + bl sub_02033534 + cmp r0, #0x13 + blt _02030EC0 + ldr r0, _02030F14 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02030F18 ; =0x00000687 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _02030EBC + bl sub_021D8018 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02030EBC + cmp r4, #0x0 + bne _02030EB4 + mov r0, #0x1 + pop {r4, pc} +_02030EB4: + cmp r4, #0x1 + bne _02030EBC + mov r0, #0x1 + pop {r4, pc} +_02030EBC: + mov r0, #0x0 + pop {r4, pc} +_02030EC0: + bl sub_02030F40 + cmp r0, #0x0 + bne _02030ECC + mov r0, #0x0 + pop {r4, pc} +_02030ECC: + bl sub_0202CBD4 + cmp r0, #0x4 + beq _02030ED8 + mov r0, #0x0 + pop {r4, pc} +_02030ED8: + bl sub_02031190 + cmp r4, r0 + bne _02030EE4 + mov r0, #0x1 + pop {r4, pc} +_02030EE4: + bl sub_02031190 + cmp r0, #0x0 + bne _02030EFE + bl sub_0202CB8C + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r4 + tst r0, r2 + beq _02030F10 + add r0, r1, #0x0 + pop {r4, pc} +_02030EFE: + ldr r0, _02030F14 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02030F1C ; =0x0000065C + ldrh r2, [r1, r0] + mov r0, #0x1 + add r1, r0, #0x0 + lsl r1, r4 + tst r1, r2 + bne _02030F12 +_02030F10: + mov r0, #0x0 +_02030F12: + pop {r4, pc} + .balign 4 +_02030F14: .word 0x021C59F4 +_02030F18: .word 0x00000687 +_02030F1C: .word 0x0000065C + + thumb_func_start sub_02030F20 +sub_02030F20: ; 0x02030F20 + push {r3-r5, lr} + mov r4, #0x0 + add r5, r4, #0x0 +_02030F26: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + beq _02030F34 + add r4, r4, #0x1 +_02030F34: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _02030F26 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02030F40 +sub_02030F40: ; 0x02030F40 + push {r3, lr} + ldr r0, _02030F5C ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _02030F56 + bl sub_02033534 + cmp r0, #0x13 + blt _02030F56 + mov r0, #0x1 + pop {r3, pc} +_02030F56: + bl sub_0202EDF8 + pop {r3, pc} + .balign 4 +_02030F5C: .word 0x021C59F4 + + thumb_func_start sub_02030F60 +sub_02030F60: ; 0x02030F60 + ldr r1, _02030F6C ; =0x021C59F4 + ldr r2, [r1, #0x4] + ldr r1, _02030F70 ; =0x0000062B + strb r0, [r2, r1] + bx lr + nop +_02030F6C: .word 0x021C59F4 +_02030F70: .word 0x0000062B + + thumb_func_start sub_02030F74 +sub_02030F74: ; 0x02030F74 + ldr r1, _02030F84 ; =0x021C59F4 + ldr r1, [r1, #0x4] + add r1, r1, r0 + mov r0, #0x62 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + bx lr + nop +_02030F84: .word 0x021C59F4 + + thumb_func_start sub_02030F88 +sub_02030F88: ; 0x02030F88 + ldr r1, _02030FA4 ; =0x021C59F4 + ldr r2, [r1, #0x4] + cmp r2, #0x0 + bne _02030F94 + mov r0, #0x0 + bx lr +_02030F94: + mov r1, #0x61 + lsl r1, r1, #0x4 + add r3, r2, r1 + lsl r2, r0, #0x1 + ldrh r0, [r3, r2] + mov r1, #0x0 + strh r1, [r3, r2] + bx lr + .balign 4 +_02030FA4: .word 0x021C59F4 + + thumb_func_start sub_02030FA8 +sub_02030FA8: ; 0x02030FA8 + ldr r0, _02030FC0 ; =0x021C59F4 + ldr r3, [r0, #0x4] + cmp r3, #0x0 + beq _02030FBC + ldr r1, _02030FC4 ; =0x00000628 + mov r0, #0x2 + ldrh r2, [r3, r1] + lsl r0, r0, #0xe + orr r0, r2 + strh r0, [r3, r1] +_02030FBC: + bx lr + nop +_02030FC0: .word 0x021C59F4 +_02030FC4: .word 0x00000628 +_02030FC8: + .byte 0x03, 0x48, 0x42, 0x68, 0x00, 0x2A, 0x02, 0xD0 + .byte 0x02, 0x48, 0x00, 0x21, 0x11, 0x52, 0x70, 0x47, 0xF4, 0x59, 0x1C, 0x02, 0x28, 0x06, 0x00, 0x00 + + thumb_func_start sub_02030FE0 +sub_02030FE0: ; 0x02030FE0 + ldr r0, _02030FF8 ; =0x021C59F4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _02030FF4 + ldr r0, _02030FFC ; =0x00000628 + ldrh r1, [r1, r0] + mov r0, #0x2 + lsl r0, r0, #0xe + and r0, r1 + bx lr +_02030FF4: + mov r0, #0x1 + bx lr + .balign 4 +_02030FF8: .word 0x021C59F4 +_02030FFC: .word 0x00000628 + + thumb_func_start sub_02031000 +sub_02031000: ; 0x02031000 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_0202FA28 + cmp r0, #0x1 + bne _02031030 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, _02031050 ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02031054 ; =0x0000054C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl sub_0202D684 + add sp, #0x8 + pop {r4-r6, pc} +_02031030: + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, _02031050 ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02031058 ; =0x0000056C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl sub_0202D684 + add sp, #0x8 + pop {r4-r6, pc} + nop +_02031050: .word 0x021C59F4 +_02031054: .word 0x0000054C +_02031058: .word 0x0000056C + + thumb_func_start sub_0203105C +sub_0203105C: ; 0x0203105C + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, _02031080 ; =0x021C59F4 + add r4, r1, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02031084 ; =0x0000054C + add r3, r2, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_0202D684 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02031080: .word 0x021C59F4 +_02031084: .word 0x0000054C + + thumb_func_start sub_02031088 +sub_02031088: ; 0x02031088 + push {r3, lr} + ldr r0, _02031100 ; =0x021C59F4 + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _020310FC + ldr r1, _02031104 ; =0x0000067B + ldrb r0, [r2, r1] + cmp r0, #0x1 + beq _020310A0 + cmp r0, #0x3 + beq _020310D8 + pop {r3, pc} +_020310A0: + bl sub_0202FA28 + cmp r0, #0x1 + bne _020310B8 + ldr r1, _02031100 ; =0x021C59F4 + mov r0, #0xb + ldr r2, [r1, #0x4] + ldr r1, _02031108 ; =0x0000067C + add r1, r2, r1 + bl sub_020311D0 + b _020310C8 +_020310B8: + ldr r1, _02031100 ; =0x021C59F4 + mov r0, #0xb + ldr r2, [r1, #0x4] + ldr r1, _02031108 ; =0x0000067C + add r1, r2, r1 + mov r2, #0x1 + bl sub_02030BC4 +_020310C8: + cmp r0, #0x0 + beq _020310FC + ldr r0, _02031100 ; =0x021C59F4 + mov r2, #0x2 + ldr r1, [r0, #0x4] + ldr r0, _02031104 ; =0x0000067B + strb r2, [r1, r0] + pop {r3, pc} +_020310D8: + add r1, r1, #0x1 + mov r0, #0xc + add r1, r2, r1 + bl sub_020311D0 + cmp r0, #0x0 + beq _020310FC + ldr r0, _02031100 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02031108 ; =0x0000067C + ldrb r0, [r1, r0] + bl sub_0202F9E0 + ldr r0, _02031100 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02031104 ; =0x0000067B + strb r2, [r1, r0] +_020310FC: + pop {r3, pc} + nop +_02031100: .word 0x021C59F4 +_02031104: .word 0x0000067B +_02031108: .word 0x0000067C + + thumb_func_start sub_0203110C +sub_0203110C: ; 0x0203110C + push {r4, lr} + add r4, r2, #0x0 + bl sub_02031190 + cmp r0, #0x0 + bne _0203112A + ldr r1, _0203112C ; =0x021C59F4 + ldr r0, _02031130 ; =0x0000067B + ldr r2, [r1, #0x4] + mov r3, #0x1 + strb r3, [r2, r0] + ldrb r2, [r4, #0x0] + ldr r1, [r1, #0x4] + add r0, r0, #0x1 + strb r2, [r1, r0] +_0203112A: + pop {r4, pc} + .balign 4 +_0203112C: .word 0x021C59F4 +_02031130: .word 0x0000067B + + thumb_func_start sub_02031134 +sub_02031134: ; 0x02031134 + push {r4, lr} + add r4, r2, #0x0 + bl sub_02031190 + cmp r0, #0x0 + beq _02031152 + ldr r1, _02031154 ; =0x021C59F4 + ldrb r3, [r4, #0x0] + ldr r2, [r1, #0x4] + ldr r0, _02031158 ; =0x0000067C + strb r3, [r2, r0] + ldr r1, [r1, #0x4] + mov r2, #0x3 + sub r0, r0, #0x1 + strb r2, [r1, r0] +_02031152: + pop {r4, pc} + .balign 4 +_02031154: .word 0x021C59F4 +_02031158: .word 0x0000067C + + thumb_func_start sub_0203115C +sub_0203115C: ; 0x0203115C + push {r4, lr} + add r4, r2, #0x0 + bl sub_02031190 + cmp r0, #0x0 + bne _02031184 + ldr r0, _02031188 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0203118C ; =0x0000067B + ldrb r0, [r1, r0] + cmp r0, #0x2 + bne _02031184 + ldrb r0, [r4, #0x0] + bl sub_0202F9E0 + ldr r0, _02031188 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0203118C ; =0x0000067B + strb r2, [r1, r0] +_02031184: + pop {r4, pc} + nop +_02031188: .word 0x021C59F4 +_0203118C: .word 0x0000067B + + thumb_func_start sub_02031190 +sub_02031190: ; 0x02031190 + push {r3, lr} + ldr r0, _020311CC ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _020311C6 + bl sub_02033534 + cmp r0, #0x13 + blt _020311B4 + bl sub_021D8018 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _020311C6 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r3, pc} +_020311B4: + bl sub_02031280 + cmp r0, #0x0 + beq _020311C0 + mov r0, #0x0 + pop {r3, pc} +_020311C0: + bl sub_0202D19C + pop {r3, pc} +_020311C6: + mov r0, #0x0 + pop {r3, pc} + nop +_020311CC: .word 0x021C59F4 + + thumb_func_start sub_020311D0 +sub_020311D0: ; 0x020311D0 + ldr r3, _020311D8 ; =sub_02030ADC + mov r2, #0x0 + bx r3 + nop +_020311D8: .word sub_02030ADC + 1 + + thumb_func_start sub_020311DC +sub_020311DC: ; 0x020311DC + ldr r3, _020311E4 ; =sub_02030ADC + mov r1, #0x0 + add r2, r1, #0x0 + bx r3 + .balign 4 +_020311E4: .word sub_02030ADC + 1 + + thumb_func_start sub_020311E8 +sub_020311E8: ; 0x020311E8 + ldr r3, _020311EC ; =sub_0202EE24 + bx r3 + .balign 4 +_020311EC: .word sub_0202EE24 + 1 + + thumb_func_start sub_020311F0 +sub_020311F0: ; 0x020311F0 + push {r3, lr} + bl sub_02031280 + cmp r0, #0x0 + beq _020311FE + mov r0, #0x0 + pop {r3, pc} +_020311FE: + ldr r0, _02031220 ; =0x021C59F4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0203121A + ldr r0, _02031224 ; =0x00000689 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0203121A + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_020334E8 + mov r0, #0x1 + pop {r3, pc} +_0203121A: + bl sub_0202EE60 + pop {r3, pc} + .balign 4 +_02031220: .word 0x021C59F4 +_02031224: .word 0x00000689 + + thumb_func_start sub_02031228 +sub_02031228: ; 0x02031228 + push {r3, lr} + bl sub_0202D858 + cmp r0, #0x5 + blo _02031236 + mov r0, #0xc + pop {r3, pc} +_02031236: + bl sub_0202FA28 + cmp r0, #0x0 + bne _02031242 + mov r0, #0xc + pop {r3, pc} +_02031242: + mov r0, #0x26 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02031248 +sub_02031248: ; 0x02031248 + push {r3, lr} + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D858 + add r0, r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02031258 +sub_02031258: ; 0x02031258 + push {r3, lr} + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0202D884 + add r0, r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02031268 +sub_02031268: ; 0x02031268 + ldr r1, _02031278 ; =0x021C59F4 + ldr r2, [r1, #0x4] + cmp r2, #0x0 + beq _02031274 + ldr r1, _0203127C ; =0x00000686 + strb r0, [r2, r1] +_02031274: + bx lr + nop +_02031278: .word 0x021C59F4 +_0203127C: .word 0x00000686 + + thumb_func_start sub_02031280 +sub_02031280: ; 0x02031280 + ldr r0, _02031294 ; =0x021C59F4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0203128E + ldr r0, _02031298 ; =0x00000686 + ldrb r0, [r1, r0] + bx lr +_0203128E: + mov r0, #0x0 + bx lr + nop +_02031294: .word 0x021C59F4 +_02031298: .word 0x00000686 + + thumb_func_start sub_0203129C +sub_0203129C: ; 0x0203129C + push {r3, lr} + bl sub_0202F03C + cmp r0, #0x0 + bne _020312B6 + bl sub_02031190 + cmp r0, #0x0 + bne _020312B6 + mov r0, #0x2 + add r1, sp, #0x0 + bl sub_02030C4C +_020312B6: + bl sub_0202F05C + pop {r3, pc} + + thumb_func_start sub_020312BC +sub_020312BC: ; 0x020312BC + push {r3-r7, lr} + sub sp, #0x20 + add r4, r0, #0x0 + add r0, sp, #0x10 + add r1, sp, #0x4 + bl sub_0201265C + ldr r0, _02031340 ; =0x021C48B8 + ldr r6, [sp, #0x10] + mov r5, #0x0 + lsr r7, r6, #0x1c + lsl r5, r5, #0x4 + ldr r1, [sp, #0xc] + ldr r0, [r0, #0x2c] + lsl r6, r6, #0x4 + add r3, r1, r0 + ldr r0, [sp, #0x18] + orr r5, r7 + str r0, [sp, #0x0] + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x4] + add r6, r0, r6 + ldr r0, _02031344 ; =0x00000000 + ldr r2, [sp, #0x8] + adc r0, r5 + lsr r5, r6, #0x1b + lsl r0, r0, #0x5 + orr r0, r5 + ldr r5, [sp, #0x0] + lsl r6, r6, #0x5 + add r6, r5, r6 + ldr r5, _02031344 ; =0x00000000 + adc r5, r0 + lsr r0, r6, #0x1b + lsl r5, r5, #0x5 + orr r5, r0 + lsl r0, r6, #0x5 + add r6, r1, r0 + ldr r1, _02031344 ; =0x00000000 + adc r1, r5 + lsr r0, r6, #0x1a + lsl r1, r1, #0x6 + orr r1, r0 + lsl r0, r6, #0x6 + add r5, r2, r0 + ldr r2, _02031344 ; =0x00000000 + adc r2, r1 + lsr r0, r5, #0x1a + lsl r1, r2, #0x6 + orr r1, r0 + lsl r0, r5, #0x6 + add r2, r3, r0 + ldr r0, _02031344 ; =0x00000000 + str r2, [r4, #0x0] + adc r0, r1 + str r0, [r4, #0x4] + ldr r1, _02031348 ; =0x6C078965 + ldr r0, _0203134C ; =0x5D588B65 + str r1, [r4, #0x8] + str r0, [r4, #0xc] + ldr r0, _02031350 ; =0x00269EC3 + str r0, [r4, #0x10] + mov r0, #0x0 + str r0, [r4, #0x14] + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 +_02031340: .word 0x021C48B8 +_02031344: .word 0x00000000 +_02031348: .word 0x6C078965 +_0203134C: .word 0x5D588B65 +_02031350: .word 0x00269EC3 + + thumb_func_start sub_02031354 +sub_02031354: ; 0x02031354 + add r1, r0, #0x0 + ldr r0, _02031364 ; =0x021C59F4 + ldr r3, _02031368 ; =sub_0202D830 + ldr r2, [r0, #0x4] + ldr r0, _0203136C ; =0x0000056C + add r0, r2, r0 + bx r3 + nop +_02031364: .word 0x021C59F4 +_02031368: .word sub_0202D830 + 1 +_0203136C: .word 0x0000056C + + thumb_func_start sub_02031370 +sub_02031370: ; 0x02031370 + ldr r0, _0203137C ; =0x021C59F4 + ldr r3, _02031380 ; =sub_0202D4E4 + ldr r1, [r0, #0x4] + ldr r0, _02031384 ; =0x0000056C + add r0, r1, r0 + bx r3 + .balign 4 +_0203137C: .word 0x021C59F4 +_02031380: .word sub_0202D4E4 + 1 +_02031384: .word 0x0000056C + + thumb_func_start sub_02031388 +sub_02031388: ; 0x02031388 + ldr r0, _02031394 ; =0x021C59F4 + ldr r3, _02031398 ; =sub_0202D4E4 + ldr r1, [r0, #0x4] + ldr r0, _0203139C ; =0x0000054C + add r0, r1, r0 + bx r3 + .balign 4 +_02031394: .word 0x021C59F4 +_02031398: .word sub_0202D4E4 + 1 +_0203139C: .word 0x0000054C + + thumb_func_start sub_020313A0 +sub_020313A0: ; 0x020313A0 + ldr r1, _020313AC ; =0x021C59F4 + ldr r2, [r1, #0x4] + ldr r1, _020313B0 ; =0x00000687 + strb r0, [r2, r1] + bx lr + nop +_020313AC: .word 0x021C59F4 +_020313B0: .word 0x00000687 + + thumb_func_start sub_020313B4 +sub_020313B4: ; 0x020313B4 + ldr r2, _020313C4 ; =0x021C59F4 + ldr r2, [r2, #0x4] + cmp r2, #0x0 + beq _020313C2 + add r2, r2, r1 + ldr r1, _020313C8 ; =0x00000677 + strb r0, [r2, r1] +_020313C2: + bx lr + .balign 4 +_020313C4: .word 0x021C59F4 +_020313C8: .word 0x00000677 + + thumb_func_start sub_020313CC +sub_020313CC: ; 0x020313CC + ldr r1, _020313E4 ; =0x021C59F4 + ldr r1, [r1, #0x4] + cmp r1, #0x0 + beq _020313E0 + add r2, r1, r0 + ldr r1, _020313E8 ; =0x00000677 + ldrb r1, [r2, r1] + cmp r1, #0xff + beq _020313E0 + add r0, r1, #0x0 +_020313E0: + bx lr + nop +_020313E4: .word 0x021C59F4 +_020313E8: .word 0x00000677 + + thumb_func_start sub_020313EC +sub_020313EC: ; 0x020313EC + push {r3, lr} + bl sub_02033534 + cmp r0, #0x13 + bge _020313FA + mov r0, #0x0 + pop {r3, pc} +_020313FA: + bl sub_021D8624 + pop {r3, pc} + + thumb_func_start sub_02031400 +sub_02031400: ; 0x02031400 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02033534 + cmp r0, #0x13 + blt _02031430 + ldr r2, _02031434 ; =0x021C59F4 + mov r1, #0x63 + ldr r0, [r2, #0x4] + lsl r1, r1, #0x4 + str r4, [r0, r1] + cmp r4, #0x0 + beq _02031430 + ldr r3, [r2, #0x4] + mov r4, #0x0 + add r0, r1, #0x4 + str r4, [r3, r0] + add r0, r1, #0x0 + ldr r3, [r2, #0x4] + add r0, #0x8 + str r4, [r3, r0] + ldr r0, [r2, #0x4] + add r1, #0xc + str r4, [r0, r1] +_02031430: + pop {r4, pc} + nop +_02031434: .word 0x021C59F4 + + thumb_func_start sub_02031438 +sub_02031438: ; 0x02031438 + ldr r0, _0203144C ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02031450 ; =0x00000681 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _02031448 + mov r0, #0x1 + bx lr +_02031448: + mov r0, #0x0 + bx lr + .balign 4 +_0203144C: .word 0x021C59F4 +_02031450: .word 0x00000681 + + thumb_func_start sub_02031454 +sub_02031454: ; 0x02031454 + ldr r0, _02031460 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _02031464 ; =0x00000689 + strb r2, [r1, r0] + bx lr + .balign 4 +_02031460: .word 0x021C59F4 +_02031464: .word 0x00000689 + + thumb_func_start sub_02031468 +sub_02031468: ; 0x02031468 + ldr r0, _02031478 ; =0x021C59F4 + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _02031476 + ldr r0, _0203147C ; =0x0000068A + mov r1, #0x1 + strb r1, [r2, r0] +_02031476: + bx lr + .balign 4 +_02031478: .word 0x021C59F4 +_0203147C: .word 0x0000068A + + thumb_func_start sub_02031480 +sub_02031480: ; 0x02031480 + push {r4, lr} + ldr r1, _020314C8 ; =0x021C59FC + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _0203149C + ldr r1, _020314CC ; =0x00000253 + bl sub_02016998 + ldr r1, _020314C8 ; =0x021C59FC + ldr r2, _020314CC ; =0x00000253 + str r0, [r1, #0x0] + mov r1, #0x0 + blx sub_020CE34C +_0203149C: + ldr r1, _020314C8 ; =0x021C59FC + mov r3, #0x0 + mov r0, #0xff +_020314A2: + ldr r2, [r1, #0x0] + add r2, r2, r3 + add r3, r3, #0x1 + strb r0, [r2, #0x10] + cmp r3, #0x8 + blt _020314A2 + ldr r3, _020314C8 ; =0x021C59FC + mov r1, #0x25 + ldr r2, [r3, #0x0] + lsl r1, r1, #0x4 + strb r0, [r2, r1] + ldr r4, [r3, #0x0] + add r2, r1, #0x1 + strb r0, [r4, r2] + ldr r2, [r3, #0x0] + mov r4, #0x0 + add r0, r1, #0x2 + strb r4, [r2, r0] + pop {r4, pc} + .balign 4 +_020314C8: .word 0x021C59FC +_020314CC: .word 0x00000253 + + thumb_func_start sub_020314D0 +sub_020314D0: ; 0x020314D0 + push {r3, lr} + ldr r0, _020314E4 ; =0x021C59FC + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _020314E4 ; =0x021C59FC + mov r1, #0x0 + str r1, [r0, #0x0] + pop {r3, pc} + nop +_020314E4: .word 0x021C59FC + + thumb_func_start sub_020314E8 +sub_020314E8: ; 0x020314E8 + ldr r0, _020314F8 ; =0x021C59FC + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020314F4 + mov r0, #0x1 + bx lr +_020314F4: + mov r0, #0x0 + bx lr + .balign 4 +_020314F8: .word 0x021C59FC + + thumb_func_start sub_020314FC +sub_020314FC: ; 0x020314FC + push {r3-r6, lr} + sub sp, #0x4 + ldrb r1, [r2, #0x0] + add r5, r0, #0x0 + add r0, sp, #0x0 + strb r1, [r0, #0x0] + bl sub_02031190 + cmp r0, #0x0 + bne _02031556 + add r0, sp, #0x0 + strb r5, [r0, #0x1] + ldrb r1, [r0, #0x0] + strb r1, [r0, #0x2] + add r1, sp, #0x0 + mov r0, #0x12 + add r1, #0x1 + bl sub_02030C4C + ldr r6, _0203155C ; =0x021C59FC + add r4, sp, #0x0 + ldr r0, [r6, #0x0] + ldrb r1, [r4, #0x0] + add r0, r0, r5 + mov r5, #0x0 + strb r1, [r0, #0x10] +_02031530: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + beq _02031548 + ldr r0, [r6, #0x0] + ldrb r1, [r4, #0x0] + add r0, r0, r5 + ldrb r0, [r0, #0x10] + cmp r1, r0 + bne _02031556 +_02031548: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _02031530 + mov r0, #0x11 + add r1, sp, #0x0 + bl sub_02030C4C +_02031556: + add sp, #0x4 + pop {r3-r6, pc} + nop +_0203155C: .word 0x021C59FC + + thumb_func_start sub_02031560 +sub_02031560: ; 0x02031560 + ldr r0, _02031570 ; =0x021C59FC + ldrb r3, [r2, #0x1] + ldr r1, [r0, #0x0] + ldrb r0, [r2, #0x0] + add r0, r1, r0 + strb r3, [r0, #0x10] + bx lr + nop +_02031570: .word 0x021C59FC + + thumb_func_start sub_02031574 +sub_02031574: ; 0x02031574 + ldr r0, _02031584 ; =0x021C59FC + ldrb r2, [r2, #0x0] + ldr r1, [r0, #0x0] + mov r0, #0x25 + lsl r0, r0, #0x4 + strb r2, [r1, r0] + bx lr + nop +_02031584: .word 0x021C59FC + + thumb_func_start sub_02031588 +sub_02031588: ; 0x02031588 + ldr r2, _0203159C ; =0x021C59FC + ldr r1, _020315A0 ; =0x00000251 + ldr r3, [r2, #0x0] + strb r0, [r3, r1] + ldr r2, [r2, #0x0] + mov r3, #0x1 + add r0, r1, #0x1 + strb r3, [r2, r0] + bx lr + nop +_0203159C: .word 0x021C59FC +_020315A0: .word 0x00000251 + + thumb_func_start sub_020315A4 +sub_020315A4: ; 0x020315A4 + push {r3, lr} + ldr r0, _020315D0 ; =0x021C59FC + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020315CE + ldr r1, _020315D4 ; =0x00000252 + ldrb r0, [r2, r1] + cmp r0, #0x0 + beq _020315CE + sub r1, r1, #0x1 + mov r0, #0x10 + add r1, r2, r1 + bl sub_020311D0 + cmp r0, #0x0 + beq _020315CE + ldr r0, _020315D0 ; =0x021C59FC + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, _020315D4 ; =0x00000252 + strb r2, [r1, r0] +_020315CE: + pop {r3, pc} + .balign 4 +_020315D0: .word 0x021C59FC +_020315D4: .word 0x00000252 + + thumb_func_start sub_020315D8 +sub_020315D8: ; 0x020315D8 + ldr r1, _020315F8 ; =0x021C59FC + ldr r2, [r1, #0x0] + cmp r2, #0x0 + bne _020315E4 + mov r0, #0x1 + bx lr +_020315E4: + mov r1, #0x25 + lsl r1, r1, #0x4 + ldrb r1, [r2, r1] + cmp r1, r0 + bne _020315F2 + mov r0, #0x1 + bx lr +_020315F2: + mov r0, #0x0 + bx lr + nop +_020315F8: .word 0x021C59FC + + thumb_func_start sub_020315FC +sub_020315FC: ; 0x020315FC + ldr r1, _02031608 ; =0x021C59FC + ldr r1, [r1, #0x0] + add r0, r1, r0 + ldrb r0, [r0, #0x10] + bx lr + nop +_02031608: .word 0x021C59FC + + thumb_func_start sub_0203160C +sub_0203160C: ; 0x0203160C + push {r3-r4} + lsl r4, r0, #0x1 + ldr r0, _02031624 ; =0x021C59FC + ldrb r3, [r2, #0x0] + ldr r1, [r0, #0x0] + strb r3, [r1, r4] + ldr r0, [r0, #0x0] + ldrb r1, [r2, #0x1] + add r0, r0, r4 + strb r1, [r0, #0x1] + pop {r3-r4} + bx lr + .balign 4 +_02031624: .word 0x021C59FC + + thumb_func_start sub_02031628 +sub_02031628: ; 0x02031628 + mov r0, #0x2 + bx lr + + thumb_func_start sub_0203162C +sub_0203162C: ; 0x0203162C + push {r3, lr} + add r2, sp, #0x0 + strb r0, [r2, #0x0] + strb r1, [r2, #0x1] + mov r0, #0x13 + add r1, sp, #0x0 + bl sub_020311D0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02031640 +sub_02031640: ; 0x02031640 + ldr r2, _02031664 ; =0x021C59FC + ldr r3, [r2, #0x0] + cmp r3, #0x0 + bne _0203164E + mov r0, #0x0 + mvn r0, r0 + bx lr +_0203164E: + lsl r2, r0, #0x1 + ldrb r0, [r3, r2] + cmp r1, r0 + bne _0203165C + add r0, r3, r2 + ldrb r0, [r0, #0x1] + bx lr +_0203165C: + mov r0, #0x0 + mvn r0, r0 + bx lr + nop +_02031664: .word 0x021C59FC + + thumb_func_start sub_02031668 +sub_02031668: ; 0x02031668 + push {r3-r7, lr} + mov r4, #0x0 + ldr r6, _02031688 ; =0x021C59FC + add r5, r4, #0x0 + add r7, r4, #0x0 +_02031672: + ldr r0, [r6, #0x0] + add r1, r7, #0x0 + add r0, r0, r5 + mov r2, #0x2 + blx sub_020CE34C + add r4, r4, #0x1 + add r5, r5, #0x2 + cmp r4, #0x8 + blt _02031672 + pop {r3-r7, pc} + .balign 4 +_02031688: .word 0x021C59FC + + thumb_func_start sub_0203168C +sub_0203168C: ; 0x0203168C + push {r3-r4} + mov r4, #0x0 + mov r0, #0x92 + ldr r1, _020316A8 ; =0x021C59FC + add r3, r4, #0x0 + lsl r0, r0, #0x2 +_02031698: + ldr r2, [r1, #0x0] + add r2, r2, r4 + add r4, r4, #0x1 + strb r3, [r2, r0] + cmp r4, #0x8 + blt _02031698 + pop {r3-r4} + bx lr + .balign 4 +_020316A8: .word 0x021C59FC + + thumb_func_start sub_020316AC +sub_020316AC: ; 0x020316AC + push {r4, lr} + ldr r2, _020316DC ; =0x021C59FC + ldr r3, [r2, #0x0] + cmp r3, #0x0 + beq _020316D8 + add r4, r0, #0x0 + mov r2, #0x46 + mul r4, r2 + add r3, #0x18 + add r0, r1, #0x0 + add r1, r3, r4 + blx sub_020CE3E0 + ldr r1, _020316DC ; =0x021C59FC + mov r0, #0x14 + ldr r1, [r1, #0x0] + add r1, #0x18 + add r1, r1, r4 + bl sub_020311D0 + mov r0, #0x1 + pop {r4, pc} +_020316D8: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_020316DC: .word 0x021C59FC + + thumb_func_start sub_020316E0 +sub_020316E0: ; 0x020316E0 + ldr r1, _02031700 ; =0x021C59FC + ldr r3, [r1, #0x0] + mov r1, #0x92 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _020316FA + mov r1, #0x46 + add r3, #0x18 + mul r1, r0 + add r0, r3, r1 + bx lr +_020316FA: + mov r0, #0x0 + bx lr + nop +_02031700: .word 0x021C59FC + + thumb_func_start sub_02031704 +sub_02031704: ; 0x02031704 + push {r3-r5, lr} + ldr r3, _0203172C ; =0x021C59FC + add r1, r0, #0x0 + ldr r0, [r3, #0x0] + mov r5, #0x1 + add r4, r0, r1 + mov r0, #0x92 + lsl r0, r0, #0x2 + strb r5, [r4, r0] + ldr r4, [r3, #0x0] + add r0, r2, #0x0 + mov r2, #0x46 + add r3, r1, #0x0 + add r4, #0x18 + mul r3, r2 + add r1, r4, r3 + blx sub_020CE3E0 + pop {r3-r5, pc} + nop +_0203172C: .word 0x021C59FC + + thumb_func_start sub_02031730 +sub_02031730: ; 0x02031730 + mov r0, #0x46 + bx lr + + thumb_func_start sub_02031734 +sub_02031734: ; 0x02031734 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _020317BC ; =0x021C5A00 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020317B8 + bl sub_0202E49C + mov r0, #0xf + mov r1, #0x50 + bl sub_02016998 + ldr r1, _020317BC ; =0x021C5A00 + mov r2, #0x50 + str r0, [r1, #0x0] + mov r1, #0x0 + blx sub_020CE34C + ldr r0, _020317BC ; =0x021C5A00 + mov r2, #0x32 + ldr r1, [r0, #0x0] + strh r2, [r1, #0x3a] + ldr r1, [r0, #0x0] + mov r2, #0x1 + add r1, #0x43 + strb r2, [r1, #0x0] + ldr r0, [r0, #0x0] + str r5, [r0, #0x28] + add r0, r5, #0x0 + bl sub_020238F4 + ldr r1, _020317BC ; =0x021C5A00 + ldr r2, [r1, #0x0] + str r0, [r2, #0x2c] + ldr r0, [r1, #0x0] + mov r2, #0x2 + add r0, #0x3c + strb r2, [r0, #0x0] + ldr r0, [r1, #0x0] + mov r2, #0x0 + add r0, #0x3d + strb r2, [r0, #0x0] + ldr r0, [r1, #0x0] + add r0, #0x48 + strb r2, [r0, #0x0] + ldr r0, [r1, #0x0] + add r0, #0x3f + strb r4, [r0, #0x0] + ldr r0, [r1, #0x0] + add r0, #0xc + bl sub_020312BC + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + bl sub_0202D8D0 + cmp r4, #0x9 + beq _020317B8 + cmp r4, #0x11 + beq _020317B8 + cmp r4, #0xf + beq _020317B8 + bl sub_02033E74 +_020317B8: + pop {r3-r5, pc} + nop +_020317BC: .word 0x021C5A00 + + thumb_func_start sub_020317C0 +sub_020317C0: ; 0x020317C0 + push {r3, lr} + ldr r0, _0203180C ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0203180A + bl sub_0202D918 + ldr r0, _0203180C ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020317DC + bl sub_02016A18 +_020317DC: + ldr r0, _0203180C ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3f + ldrb r0, [r0, #0x0] + cmp r0, #0x13 + blo _020317EE + mov r0, #0x31 + bl sub_020168D0 +_020317EE: + bl sub_02033ED0 + bl sub_0202E4F0 + ldr r0, _0203180C ; =0x021C5A00 + ldr r0, [r0, #0x0] + bl sub_02016A18 + mov r0, #0xf + bl sub_020168D0 + ldr r0, _0203180C ; =0x021C5A00 + mov r1, #0x0 + str r1, [r0, #0x0] +_0203180A: + pop {r3, pc} + .balign 4 +_0203180C: .word 0x021C5A00 + + thumb_func_start sub_02031810 +sub_02031810: ; 0x02031810 + ldr r0, _02031820 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0203181C + mov r0, #0x1 + bx lr +_0203181C: + mov r0, #0x0 + bx lr + .balign 4 +_02031820: .word 0x021C5A00 + + thumb_func_start sub_02031824 +sub_02031824: ; 0x02031824 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02031858 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031856 + mov r2, #0xe + mov r0, #0x3 + mov r1, #0xf + lsl r2, r2, #0xc + bl sub_02016828 + add r0, r4, #0x0 + mov r1, #0xa + bl sub_02031734 + ldr r0, _02031858 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x40 + strb r1, [r0, #0x0] + ldr r0, _0203185C ; =sub_02031D30 + mov r1, #0x32 + bl sub_02031D20 +_02031856: + pop {r4, pc} + .balign 4 +_02031858: .word 0x021C5A00 +_0203185C: .word sub_02031D30 + 1 + + thumb_func_start sub_02031860 +sub_02031860: ; 0x02031860 + push {r3, lr} + ldr r0, _02031878 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031876 + bl sub_02031468 + ldr r0, _0203187C ; =sub_020323CC + mov r1, #0x0 + bl sub_02031D20 +_02031876: + pop {r3, pc} + .balign 4 +_02031878: .word 0x021C5A00 +_0203187C: .word sub_020323CC + 1 + + thumb_func_start sub_02031880 +sub_02031880: ; 0x02031880 + push {r3, lr} + bl sub_0202FC60 + bl sub_02031190 + ldr r1, _0203189C ; =0x021C5A00 + ldr r1, [r1, #0x0] + strh r0, [r1, #0x38] + ldr r0, _020318A0 ; =sub_020321B8 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + nop +_0203189C: .word 0x021C5A00 +_020318A0: .word sub_020321B8 + 1 + + thumb_func_start sub_020318A4 +sub_020318A4: ; 0x020318A4 + ldr r1, _020318B0 ; =0x021C5A00 + ldr r1, [r1, #0x0] + add r1, #0x4f + strb r0, [r1, #0x0] + bx lr + nop +_020318B0: .word 0x021C5A00 + + thumb_func_start sub_020318B4 +sub_020318B4: ; 0x020318B4 + ldr r3, _020318BC ; =sub_02031D20 + ldr r0, _020318C0 ; =sub_02032028 + mov r1, #0x0 + bx r3 + .balign 4 +_020318BC: .word sub_02031D20 + 1 +_020318C0: .word sub_02032028 + 1 + + thumb_func_start sub_020318C4 +sub_020318C4: ; 0x020318C4 + push {r4} + sub sp, #0xc + ldr r4, _0203190C ; =0x020EEC50 + add r3, sp, #0x0 + ldmia r4!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r3, #0x0] + ldr r0, _02031910 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x24] + cmp r0, #0x0 + bne _020318E8 + add sp, #0xc + mov r0, #0x0 + pop {r4} + bx lr +_020318E8: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _02031904 +_020318EE: + ldr r0, [r2, #0x0] + cmp r1, r0 + bne _020318FC + add sp, #0xc + mov r0, #0x1 + pop {r4} + bx lr +_020318FC: + add r2, r2, #0x4 + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _020318EE +_02031904: + mov r0, #0x0 + add sp, #0xc + pop {r4} + bx lr + .balign 4 +_0203190C: .word 0x020EEC50 +_02031910: .word 0x021C5A00 + + thumb_func_start sub_02031914 +sub_02031914: ; 0x02031914 + ldr r3, _0203191C ; =sub_02031D20 + ldr r0, _02031920 ; =sub_02032178 + mov r1, #0x0 + bx r3 + .balign 4 +_0203191C: .word sub_02031D20 + 1 +_02031920: .word sub_02032178 + 1 + + thumb_func_start sub_02031924 +sub_02031924: ; 0x02031924 + ldr r0, _02031930 ; =0x021C5A00 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x4c + strb r1, [r0, #0x0] + bx lr + .balign 4 +_02031930: .word 0x021C5A00 + + thumb_func_start sub_02031934 +sub_02031934: ; 0x02031934 + push {r3, lr} + bl sub_0202E49C + ldr r0, _02031944 ; =sub_02032194 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_02031944: .word sub_02032194 + 1 + + thumb_func_start sub_02031948 +sub_02031948: ; 0x02031948 + push {r3-r7, lr} + add r6, r0, #0x0 + add r7, r1, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + bne _02031980 + ldr r2, _02031984 ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl sub_02016828 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_02031734 + ldr r0, _02031988 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r1, #0x40 + strb r5, [r1, #0x0] + ldr r0, [r0, #0x0] + mov r1, #0x0 + str r4, [r0, #0x30] + ldr r0, _0203198C ; =sub_020321D0 + bl sub_02031D20 +_02031980: + pop {r3-r7, pc} + nop +_02031984: .word 0x00007080 +_02031988: .word 0x021C5A00 +_0203198C: .word sub_020321D0 + 1 + + thumb_func_start sub_02031990 +sub_02031990: ; 0x02031990 + push {r3-r7, lr} + add r6, r0, #0x0 + add r7, r1, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + bne _020319C8 + ldr r2, _020319CC ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl sub_02016828 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_02031734 + ldr r0, _020319D0 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r1, #0x40 + strb r5, [r1, #0x0] + ldr r0, [r0, #0x0] + mov r1, #0x0 + str r4, [r0, #0x30] + ldr r0, _020319D4 ; =sub_0203224C + bl sub_02031D20 +_020319C8: + pop {r3-r7, pc} + nop +_020319CC: .word 0x00007080 +_020319D0: .word 0x021C5A00 +_020319D4: .word sub_0203224C + 1 + + thumb_func_start sub_020319D8 +sub_020319D8: ; 0x020319D8 + ldr r1, _020319E8 ; =0x021C5A00 + ldr r3, _020319EC ; =sub_02031D20 + ldr r1, [r1, #0x0] + add r1, #0x3e + strb r0, [r1, #0x0] + ldr r0, _020319F0 ; =sub_02032298 + mov r1, #0x0 + bx r3 + .balign 4 +_020319E8: .word 0x021C5A00 +_020319EC: .word sub_02031D20 + 1 +_020319F0: .word sub_02032298 + 1 + + thumb_func_start sub_020319F4 +sub_020319F4: ; 0x020319F4 + push {r3, lr} + bl sub_0202FCA8 + ldr r0, _02031A04 ; =sub_02032364 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_02031A04: .word sub_02032364 + 1 + + thumb_func_start sub_02031A08 +sub_02031A08: ; 0x02031A08 + push {r3, lr} + ldr r0, _02031A1C ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031A1A + ldr r0, _02031A20 ; =sub_02032440 + mov r1, #0x5 + bl sub_02031D20 +_02031A1A: + pop {r3, pc} + .balign 4 +_02031A1C: .word 0x021C5A00 +_02031A20: .word sub_02032440 + 1 + + thumb_func_start sub_02031A24 +sub_02031A24: ; 0x02031A24 + ldr r3, _02031A28 ; =sub_0202D298 + bx r3 + .balign 4 +_02031A28: .word sub_0202D298 + 1 + + thumb_func_start sub_02031A2C +sub_02031A2C: ; 0x02031A2C + push {r4} + sub sp, #0xc + ldr r4, _02031A74 ; =0x020EEC5C + add r3, sp, #0x0 + ldmia r4!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r3, #0x0] + ldr r0, _02031A78 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x24] + cmp r0, #0x0 + bne _02031A50 + add sp, #0xc + mov r0, #0x0 + pop {r4} + bx lr +_02031A50: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _02031A6C +_02031A56: + ldr r0, [r2, #0x0] + cmp r1, r0 + bne _02031A64 + add sp, #0xc + mov r0, #0x1 + pop {r4} + bx lr +_02031A64: + add r2, r2, #0x4 + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _02031A56 +_02031A6C: + mov r0, #0x0 + add sp, #0xc + pop {r4} + bx lr + .balign 4 +_02031A74: .word 0x020EEC5C +_02031A78: .word 0x021C5A00 + + thumb_func_start sub_02031A7C +sub_02031A7C: ; 0x02031A7C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02031ABC ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031ABA + ldr r2, _02031AC0 ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl sub_02016828 + cmp r0, #0x0 + bne _02031A9A + bl sub_020335E0 +_02031A9A: + add r0, r4, #0x0 + mov r1, #0x9 + bl sub_02031734 + ldr r0, _02031ABC ; =0x021C5A00 + mov r2, #0x9 + ldr r1, [r0, #0x0] + add r1, #0x3f + strb r2, [r1, #0x0] + ldr r0, [r0, #0x0] + mov r1, #0x0 + add r0, #0x40 + strb r1, [r0, #0x0] + ldr r0, _02031AC4 ; =sub_02032478 + bl sub_02031D20 +_02031ABA: + pop {r4, pc} + .balign 4 +_02031ABC: .word 0x021C5A00 +_02031AC0: .word 0x00007080 +_02031AC4: .word sub_02032478 + 1 + + thumb_func_start sub_02031AC8 +sub_02031AC8: ; 0x02031AC8 + push {r3, lr} + ldr r1, _02031AEC ; =0x021C5A00 + ldr r2, [r1, #0x0] + add r2, #0x3e + strb r0, [r2, #0x0] + ldr r0, [r1, #0x0] + mov r2, #0x3 + strh r2, [r0, #0x38] + mov r0, #0x1 + bl sub_0202D344 + bl sub_02033E74 + ldr r0, _02031AF0 ; =sub_02032628 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_02031AEC: .word 0x021C5A00 +_02031AF0: .word sub_02032628 + 1 + + thumb_func_start sub_02031AF4 +sub_02031AF4: ; 0x02031AF4 + ldr r0, _02031B20 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031B02 + mov r0, #0x0 + mvn r0, r0 + bx lr +_02031B02: + ldr r1, [r0, #0x24] + ldr r0, _02031B24 ; =sub_0203279C + cmp r1, r0 + bne _02031B0E + mov r0, #0x1 + bx lr +_02031B0E: + ldr r0, _02031B28 ; =sub_020327B4 + cmp r1, r0 + bne _02031B18 + mov r0, #0x1 + b _02031B1A +_02031B18: + mov r0, #0x0 +_02031B1A: + neg r0, r0 + bx lr + nop +_02031B20: .word 0x021C5A00 +_02031B24: .word sub_0203279C + 1 +_02031B28: .word sub_020327B4 + 1 + + thumb_func_start sub_02031B2C +sub_02031B2C: ; 0x02031B2C + ldr r0, _02031B48 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031B38 + mov r0, #0x0 + bx lr +_02031B38: + ldr r1, [r0, #0x24] + ldr r0, _02031B4C ; =sub_020327FC + cmp r1, r0 + bne _02031B44 + mov r0, #0x1 + bx lr +_02031B44: + mov r0, #0x0 + bx lr + .balign 4 +_02031B48: .word 0x021C5A00 +_02031B4C: .word sub_020327FC + 1 + + thumb_func_start sub_02031B50 +sub_02031B50: ; 0x02031B50 + push {r3, lr} + mov r0, #0x0 + bl sub_0202D344 + ldr r0, _02031BC4 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x44 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02031B78 + add r0, r1, #0x0 + add r0, #0x45 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02031B78 + add r1, #0x3f + ldrb r0, [r1, #0x0] + cmp r0, #0x9 + bne _02031B80 +_02031B78: + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_020334E8 +_02031B80: + bl sub_02033ED0 + ldr r0, _02031BC4 ; =0x021C5A00 + mov r2, #0x9 + ldr r1, [r0, #0x0] + add r1, #0x3f + strb r2, [r1, #0x0] + ldr r1, [r0, #0x0] + mov r2, #0x0 + add r1, #0x48 + strb r2, [r1, #0x0] + ldr r0, [r0, #0x0] + add r0, #0x3c + ldrb r0, [r0, #0x0] + bl sub_0202D1B0 + bl sub_02031190 + cmp r0, #0x0 + bne _02031BB8 + mov r0, #0x1 + bl sub_0202D36C + ldr r0, _02031BC8 ; =sub_020323DC + mov r1, #0xf + bl sub_02031D20 + pop {r3, pc} +_02031BB8: + ldr r0, _02031BCC ; =sub_02032424 + mov r1, #0x5 + bl sub_02031D20 + pop {r3, pc} + nop +_02031BC4: .word 0x021C5A00 +_02031BC8: .word sub_020323DC + 1 +_02031BCC: .word sub_02032424 + 1 + + thumb_func_start sub_02031BD0 +sub_02031BD0: ; 0x02031BD0 + ldr r0, _02031BEC ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031BDC + mov r0, #0x1 + bx lr +_02031BDC: + ldr r1, [r0, #0x24] + ldr r0, _02031BF0 ; =sub_020324F8 + cmp r1, r0 + beq _02031BE8 + mov r0, #0x1 + bx lr +_02031BE8: + mov r0, #0x0 + bx lr + .balign 4 +_02031BEC: .word 0x021C5A00 +_02031BF0: .word sub_020324F8 + 1 + + thumb_func_start sub_02031BF4 +sub_02031BF4: ; 0x02031BF4 + push {r3, lr} + ldr r0, _02031C08 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031C06 + ldr r0, _02031C0C ; =sub_02032440 + mov r1, #0x5 + bl sub_02031D20 +_02031C06: + pop {r3, pc} + .balign 4 +_02031C08: .word 0x021C5A00 +_02031C0C: .word sub_02032440 + 1 + + thumb_func_start sub_02031C10 +sub_02031C10: ; 0x02031C10 + push {r3, lr} + ldr r0, _02031C28 ; =0x021C5A00 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02031C24 + mov r0, #0x1 + add r1, #0x48 + strb r0, [r1, #0x0] + bl sub_0202D344 +_02031C24: + pop {r3, pc} + nop +_02031C28: .word 0x021C5A00 + + thumb_func_start sub_02031C2C +sub_02031C2C: ; 0x02031C2C + push {r3, lr} + ldr r0, _02031C4C ; =0x021C5A00 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02031C48 + mov r0, #0x1 + add r1, #0x48 + strb r0, [r1, #0x0] + bl sub_0202D344 + ldr r0, _02031C50 ; =sub_02032850 + mov r1, #0x0 + bl sub_02031D20 +_02031C48: + pop {r3, pc} + nop +_02031C4C: .word 0x021C5A00 +_02031C50: .word sub_02032850 + 1 + + thumb_func_start sub_02031C54 +sub_02031C54: ; 0x02031C54 + ldr r0, _02031C60 ; =0x021C5A00 + mov r1, #0x12 + ldr r0, [r0, #0x0] + add r0, #0x3f + strb r1, [r0, #0x0] + bx lr + .balign 4 +_02031C60: .word 0x021C5A00 + + thumb_func_start sub_02031C64 +sub_02031C64: ; 0x02031C64 + ldr r0, _02031C70 ; =0x021C5A00 + mov r1, #0x9 + ldr r0, [r0, #0x0] + add r0, #0x3f + strb r1, [r0, #0x0] + bx lr + .balign 4 +_02031C70: .word 0x021C5A00 + + thumb_func_start sub_02031C74 +sub_02031C74: ; 0x02031C74 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + bne _02031C9C + ldr r2, _02031CA0 ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl sub_02016828 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02031734 + ldr r0, _02031CA4 ; =sub_02032E00 + mov r1, #0x0 + bl sub_02031D20 +_02031C9C: + pop {r3-r5, pc} + nop +_02031CA0: .word 0x00007080 +_02031CA4: .word sub_02032E00 + 1 + + thumb_func_start sub_02031CA8 +sub_02031CA8: ; 0x02031CA8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + bne _02031CD0 + ldr r2, _02031CD4 ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl sub_02016828 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02031734 + ldr r0, _02031CD8 ; =sub_02032E48 + mov r1, #0x0 + bl sub_02031D20 +_02031CD0: + pop {r3-r5, pc} + nop +_02031CD4: .word 0x00007080 +_02031CD8: .word sub_02032E48 + 1 + + thumb_func_start sub_02031CDC +sub_02031CDC: ; 0x02031CDC + push {r3, lr} + ldr r0, _02031D1C ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031CEE + ldr r0, [r0, #0x24] + cmp r0, #0x0 + beq _02031CEE + blx r0 +_02031CEE: + bl sub_02033590 + cmp r0, #0x0 + beq _02031D04 + blx sub_021DDB08 + mov r1, #0x3 + sub r0, r1, r0 + bl sub_02033EEC + pop {r3, pc} +_02031D04: + bl sub_0202EDF8 + cmp r0, #0x0 + beq _02031D18 + blx sub_020D8B94 + mov r1, #0x3 + sub r0, r1, r0 + bl sub_02033EEC +_02031D18: + pop {r3, pc} + nop +_02031D1C: .word 0x021C5A00 + + thumb_func_start sub_02031D20 +sub_02031D20: ; 0x02031D20 + ldr r2, _02031D2C ; =0x021C5A00 + ldr r3, [r2, #0x0] + str r0, [r3, #0x24] + ldr r0, [r2, #0x0] + strh r1, [r0, #0x3a] + bx lr + .balign 4 +_02031D2C: .word 0x021C5A00 + + thumb_func_start sub_02031D30 +sub_02031D30: ; 0x02031D30 + push {r3-r5, lr} + ldr r0, _02031DF8 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02031D42 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3-r5, pc} +_02031D42: + bl sub_0202E4C8 + cmp r0, #0x0 + beq _02031DF6 + ldr r0, _02031DF8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl sub_0202E29C + ldr r0, _02031DF8 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl sub_0202DB14 + mov r0, #0x1 + bl sub_02031268 + bl sub_02030FA8 + ldr r0, _02031DF8 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x4a + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031DC8 + add r1, #0x43 + ldrb r1, [r1, #0x0] + mov r0, #0x1 + mov r2, #0x7d + lsl r2, r2, #0x2 + add r3, r0, #0x0 + bl sub_0202F918 + cmp r0, #0x0 + beq _02031DF6 + ldr r0, _02031DF8 ; =0x021C5A00 + ldr r5, [r0, #0x0] + add r4, r5, #0x0 + add r4, #0xc + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r5, #0xc] + ldr r3, [r4, #0x4] + blx sub_020EBC30 + ldr r2, [r4, #0x10] + ldr r3, [r4, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r5, #0xc] + str r3, [r4, #0x4] + add r0, r3, #0x0 + mov r1, #0x0 + mov r2, #0x14 + mov r3, #0x0 + blx sub_020EBC30 + mov r0, #0x0 + add r5, #0x43 + strb r0, [r5, #0x0] + ldr r0, _02031DFC ; =sub_020320C4 + add r1, #0x14 + bl sub_02031D20 + pop {r3-r5, pc} +_02031DC8: + mov r0, #0x1 + mov r2, #0x7d + add r1, r0, #0x0 + lsl r2, r2, #0x2 + bl sub_0202F950 + cmp r0, #0x0 + beq _02031DF6 + ldr r0, _02031DF8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x4c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031DEE + ldr r0, _02031E00 ; =sub_020323B8 + mov r1, #0x0 + bl sub_02031D20 + pop {r3-r5, pc} +_02031DEE: + ldr r0, _02031E04 ; =sub_02031EE0 + mov r1, #0x40 + bl sub_02031D20 +_02031DF6: + pop {r3-r5, pc} + .balign 4 +_02031DF8: .word 0x021C5A00 +_02031DFC: .word sub_020320C4 + 1 +_02031E00: .word sub_020323B8 + 1 +_02031E04: .word sub_02031EE0 + 1 + + thumb_func_start sub_02031E08 +sub_02031E08: ; 0x02031E08 + push {r3-r5, lr} + bl sub_0202EE0C + cmp r0, #0x0 + beq _02031E7C + mov r0, #0x1 + bl sub_02031268 + bl sub_02030FA8 + ldr r0, _02031E80 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x4a + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031E32 + ldr r0, _02031E84 ; =sub_02032058 + mov r1, #0x0 + bl sub_02031D20 + pop {r3-r5, pc} +_02031E32: + mov r2, #0x7d + mov r0, #0x0 + mov r1, #0x1 + lsl r2, r2, #0x2 + bl sub_0202F950 + cmp r0, #0x0 + beq _02031E7C + ldr r0, _02031E80 ; =0x021C5A00 + ldr r5, [r0, #0x0] + add r4, r5, #0x0 + add r4, #0xc + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r5, #0xc] + ldr r3, [r4, #0x4] + blx sub_020EBC30 + ldr r2, [r4, #0x10] + ldr r3, [r4, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r5, #0xc] + mov r1, #0x0 + str r3, [r4, #0x4] + lsr r0, r3, #0x1a + lsl r1, r1, #0x6 + orr r1, r0 + ldrh r0, [r5, #0x38] + cmp r0, #0x0 + beq _02031E76 + lsl r1, r0, #0x6 + mov r0, #0x0 + strh r0, [r5, #0x38] +_02031E76: + ldr r0, _02031E88 ; =sub_02031EE0 + bl sub_02031D20 +_02031E7C: + pop {r3-r5, pc} + nop +_02031E80: .word 0x021C5A00 +_02031E84: .word sub_02032058 + 1 +_02031E88: .word sub_02031EE0 + 1 + + thumb_func_start sub_02031E8C +sub_02031E8C: ; 0x02031E8C + push {r3-r5, lr} + bl sub_0202EE0C + cmp r0, #0x0 + beq _02031ED6 + mov r0, #0x0 + mov r2, #0x7d + add r1, r0, #0x0 + lsl r2, r2, #0x2 + bl sub_0202F950 + cmp r0, #0x0 + beq _02031ED6 + ldr r0, _02031ED8 ; =0x021C5A00 + ldr r4, [r0, #0x0] + add r5, r4, #0x0 + add r5, #0xc + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + ldr r2, [r4, #0xc] + ldr r3, [r5, #0x4] + blx sub_020EBC30 + ldr r2, [r5, #0x10] + ldr r3, [r5, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r4, #0xc] + mov r1, #0x0 + lsr r2, r3, #0x1b + lsl r1, r1, #0x5 + orr r1, r2 + ldr r0, _02031EDC ; =sub_02031EE0 + add r1, #0x10 + str r3, [r5, #0x4] + bl sub_02031D20 +_02031ED6: + pop {r3-r5, pc} + .balign 4 +_02031ED8: .word 0x021C5A00 +_02031EDC: .word sub_02031EE0 + 1 + + thumb_func_start sub_02031EE0 +sub_02031EE0: ; 0x02031EE0 + push {r3, lr} + bl sub_0202EA54 + ldr r0, _02031F54 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x4f + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031F50 + add r1, #0x4b + ldrb r0, [r1, #0x0] + cmp r0, #0x0 + bne _02031F50 + bl sub_0202E8F4 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02031F1A + ldr r1, _02031F54 ; =0x021C5A00 + ldr r1, [r1, #0x0] + add r1, #0x3e + strb r0, [r1, #0x0] + ldr r0, _02031F58 ; =sub_02031F60 + mov r1, #0x20 + bl sub_02031D20 + pop {r3, pc} +_02031F1A: + ldr r0, _02031F54 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02031F2A + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02031F2A: + bl sub_0202E950 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02031F48 + ldr r1, _02031F54 ; =0x021C5A00 + ldr r1, [r1, #0x0] + add r1, #0x3e + strb r0, [r1, #0x0] + ldr r0, _02031F58 ; =sub_02031F60 + mov r1, #0x20 + bl sub_02031D20 + pop {r3, pc} +_02031F48: + ldr r0, _02031F5C ; =sub_02032028 + mov r1, #0x0 + bl sub_02031D20 +_02031F50: + pop {r3, pc} + nop +_02031F54: .word 0x021C5A00 +_02031F58: .word sub_02031F60 + 1 +_02031F5C: .word sub_02032028 + 1 + + thumb_func_start sub_02031F60 +sub_02031F60: ; 0x02031F60 + push {r3, lr} + bl sub_0202EA54 + ldr r0, _02031FBC ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl sub_0202E8A0 + cmp r0, #0x0 + beq _02031F90 + ldr r0, _02031FBC ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl sub_0202FB18 + cmp r0, #0x0 + beq _02031F90 + ldr r0, _02031FC0 ; =sub_02031FC8 + mov r1, #0x64 + bl sub_02031D20 + pop {r3, pc} +_02031F90: + bl sub_020311F0 + cmp r0, #0x0 + beq _02031FA2 + ldr r0, _02031FC4 ; =sub_02032028 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_02031FA2: + ldr r0, _02031FBC ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02031FB2 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02031FB2: + ldr r0, _02031FC4 ; =sub_02032028 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_02031FBC: .word 0x021C5A00 +_02031FC0: .word sub_02031FC8 + 1 +_02031FC4: .word sub_02032028 + 1 + + thumb_func_start sub_02031FC8 +sub_02031FC8: ; 0x02031FC8 + push {r3, lr} + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + beq _02031FEE + bl sub_0202FC60 + mov r0, #0x0 + bl sub_02031268 + bl sub_02030FA8 + ldr r0, _0203201C ; =sub_0203213C + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_02031FEE: + bl sub_020311F0 + cmp r0, #0x0 + beq _02032000 + ldr r0, _02032020 ; =sub_02032028 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_02032000: + ldr r0, _02032024 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02032010 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02032010: + ldr r0, _02032020 ; =sub_02032028 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + nop +_0203201C: .word sub_0203213C + 1 +_02032020: .word sub_02032028 + 1 +_02032024: .word 0x021C5A00 + + thumb_func_start sub_02032028 +sub_02032028: ; 0x02032028 + push {r3, lr} + bl sub_0202E6F0 + cmp r0, #0x0 + beq _0203203A + ldr r0, _0203203C ; =sub_02032058 + mov r1, #0x0 + bl sub_02031D20 +_0203203A: + pop {r3, pc} + .balign 4 +_0203203C: .word sub_02032058 + 1 + + thumb_func_start sub_02032040 +sub_02032040: ; 0x02032040 + push {r3, lr} + bl sub_0202E6F0 + cmp r0, #0x0 + beq _02032052 + ldr r0, _02032054 ; =sub_02031E8C + mov r1, #0x0 + bl sub_02031D20 +_02032052: + pop {r3, pc} + .balign 4 +_02032054: .word sub_02031E8C + 1 + + thumb_func_start sub_02032058 +sub_02032058: ; 0x02032058 + push {r3-r5, lr} + bl sub_0202EE0C + cmp r0, #0x0 + beq _020320BA + mov r0, #0x1 + bl sub_02031268 + ldr r1, _020320BC ; =0x021C5A00 + mov r2, #0x7d + ldr r1, [r1, #0x0] + mov r0, #0x0 + add r1, #0x43 + ldrb r1, [r1, #0x0] + lsl r2, r2, #0x2 + mov r3, #0x1 + bl sub_0202F918 + cmp r0, #0x0 + beq _020320BA + ldr r0, _020320BC ; =0x021C5A00 + ldr r5, [r0, #0x0] + add r4, r5, #0x0 + add r4, #0xc + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r5, #0xc] + ldr r3, [r4, #0x4] + blx sub_020EBC30 + ldr r2, [r4, #0x10] + ldr r3, [r4, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r5, #0xc] + str r3, [r4, #0x4] + add r0, r3, #0x0 + mov r1, #0x0 + mov r2, #0x14 + mov r3, #0x0 + blx sub_020EBC30 + mov r0, #0x0 + add r5, #0x43 + strb r0, [r5, #0x0] + ldr r0, _020320C0 ; =sub_020320C4 + add r1, #0x14 + bl sub_02031D20 +_020320BA: + pop {r3-r5, pc} + .balign 4 +_020320BC: .word 0x021C5A00 +_020320C0: .word sub_020320C4 + 1 + + thumb_func_start sub_020320C4 +sub_020320C4: ; 0x020320C4 + push {r3, lr} + bl sub_020311E8 + cmp r0, #0x0 + beq _020320E2 + ldr r0, _0203210C ; =0x021C5A00 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x43 + strb r1, [r0, #0x0] + ldr r0, _02032110 ; =sub_02032118 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_020320E2: + ldr r0, _0203210C ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _020320F2 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_020320F2: + add r1, #0x4a + ldrb r0, [r1, #0x0] + cmp r0, #0x0 + bne _0203210A + bl sub_0202E6F0 + cmp r0, #0x0 + beq _0203210A + ldr r0, _02032114 ; =sub_02032040 + mov r1, #0x2 + bl sub_02031D20 +_0203210A: + pop {r3, pc} + .balign 4 +_0203210C: .word 0x021C5A00 +_02032110: .word sub_02032118 + 1 +_02032114: .word sub_02032040 + 1 + + thumb_func_start sub_02032118 +sub_02032118: ; 0x02032118 + push {r3, lr} + mov r0, #0x0 + bl sub_02031268 + mov r0, #0x1 + bl sub_0202EE84 + bl sub_02030FA8 + ldr r0, _02032134 ; =sub_02032138 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_02032134: .word sub_02032138 + 1 + + thumb_func_start sub_02032138 +sub_02032138: ; 0x02032138 + bx lr + .balign 4 + + thumb_func_start sub_0203213C +sub_0203213C: ; 0x0203213C + bx lr + .balign 4 + + thumb_func_start sub_02032140 +sub_02032140: ; 0x02032140 + push {r3, lr} + ldr r0, _02032170 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3f + ldrb r0, [r0, #0x0] + cmp r0, #0x13 + bhs _02032166 + bl sub_0202EE0C + cmp r0, #0x0 + beq _0203216E + mov r0, #0x1 + bl sub_02031268 + bl sub_02030FA8 + mov r0, #0x1 + bl sub_0202E7B0 +_02032166: + ldr r0, _02032174 ; =sub_020323B8 + mov r1, #0x0 + bl sub_02031D20 +_0203216E: + pop {r3, pc} + .balign 4 +_02032170: .word 0x021C5A00 +_02032174: .word sub_020323B8 + 1 + + thumb_func_start sub_02032178 +sub_02032178: ; 0x02032178 + push {r3, lr} + bl sub_0202E6F0 + cmp r0, #0x0 + beq _0203218E + bl sub_0202FC60 + ldr r0, _02032190 ; =sub_02032140 + mov r1, #0x0 + bl sub_02031D20 +_0203218E: + pop {r3, pc} + .balign 4 +_02032190: .word sub_02032140 + 1 + + thumb_func_start sub_02032194 +sub_02032194: ; 0x02032194 + push {r3, lr} + bl sub_0202E4C8 + cmp r0, #0x0 + beq _020321B0 + mov r0, #0x0 + bl sub_0202E7B0 + bl sub_0202FC60 + ldr r0, _020321B4 ; =sub_02031E08 + mov r1, #0x0 + bl sub_02031D20 +_020321B0: + pop {r3, pc} + nop +_020321B4: .word sub_02031E08 + 1 + + thumb_func_start sub_020321B8 +sub_020321B8: ; 0x020321B8 + push {r3, lr} + bl sub_0202E6F0 + cmp r0, #0x0 + beq _020321CA + ldr r0, _020321CC ; =sub_02031E08 + mov r1, #0x0 + bl sub_02031D20 +_020321CA: + pop {r3, pc} + .balign 4 +_020321CC: .word sub_02031E08 + 1 + + thumb_func_start sub_020321D0 +sub_020321D0: ; 0x020321D0 + push {r3, lr} + bl sub_0202E4C8 + cmp r0, #0x0 + beq _0203220C + ldr r0, _02032210 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl sub_0202E29C + ldr r0, _02032210 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x28] + ldr r1, [r1, #0x30] + bl sub_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + add r3, r0, #0x0 + bl sub_0202F918 + cmp r0, #0x0 + beq _0203220C + bl sub_0202FA10 + ldr r0, _02032214 ; =sub_02032218 + mov r1, #0x0 + bl sub_02031D20 +_0203220C: + pop {r3, pc} + nop +_02032210: .word 0x021C5A00 +_02032214: .word sub_02032218 + 1 + + thumb_func_start sub_02032218 +sub_02032218: ; 0x02032218 + push {r3, lr} + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + beq _0203222E + ldr r0, _02032230 ; =sub_02032234 + mov r1, #0x0 + bl sub_02031D20 +_0203222E: + pop {r3, pc} + .balign 4 +_02032230: .word sub_02032234 + 1 + + thumb_func_start sub_02032234 +sub_02032234: ; 0x02032234 + push {r3, lr} + bl sub_02030F40 + cmp r0, #0x0 + bne _02032246 + ldr r0, _02032248 ; =sub_020323BC + mov r1, #0x0 + bl sub_02031D20 +_02032246: + pop {r3, pc} + .balign 4 +_02032248: .word sub_020323BC + 1 + + thumb_func_start sub_0203224C +sub_0203224C: ; 0x0203224C + push {r3, lr} + bl sub_0202E4C8 + cmp r0, #0x0 + beq _02032286 + ldr r0, _02032288 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl sub_0202E29C + ldr r0, _02032288 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x28] + ldr r1, [r1, #0x30] + bl sub_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + bl sub_0202F950 + cmp r0, #0x0 + beq _02032286 + bl sub_0202FA10 + ldr r0, _0203228C ; =sub_02032290 + mov r1, #0x0 + bl sub_02031D20 +_02032286: + pop {r3, pc} + .balign 4 +_02032288: .word 0x021C5A00 +_0203228C: .word sub_02032290 + 1 + + thumb_func_start sub_02032290 +sub_02032290: ; 0x02032290 + ldr r3, _02032294 ; =sub_0202EA54 + bx r3 + .balign 4 +_02032294: .word sub_0202EA54 + 1 + + thumb_func_start sub_02032298 +sub_02032298: ; 0x02032298 + push {r3, lr} + bl sub_0202EA54 + ldr r0, _020322B8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl sub_0202FB18 + cmp r0, #0x0 + beq _020322B6 + ldr r0, _020322BC ; =sub_020322C0 + mov r1, #0xa + bl sub_02031D20 +_020322B6: + pop {r3, pc} + .balign 4 +_020322B8: .word 0x021C5A00 +_020322BC: .word sub_020322C0 + 1 + + thumb_func_start sub_020322C0 +sub_020322C0: ; 0x020322C0 + push {r3, lr} + bl sub_020311F0 + cmp r0, #0x0 + beq _020322D2 + ldr r0, _020322F0 ; =sub_020322F8 + mov r1, #0x0 + bl sub_02031D20 +_020322D2: + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + beq _020322EE + bl sub_02031190 + cmp r0, #0x0 + beq _020322EE + ldr r0, _020322F4 ; =sub_0203234C + mov r1, #0x0 + bl sub_02031D20 +_020322EE: + pop {r3, pc} + .balign 4 +_020322F0: .word sub_020322F8 + 1 +_020322F4: .word sub_0203234C + 1 + + thumb_func_start sub_020322F8 +sub_020322F8: ; 0x020322F8 + push {r3, lr} + bl sub_0202E6F0 + ldr r0, _02032308 ; =sub_0203230C + mov r1, #0x2 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_02032308: .word sub_0203230C + 1 + + thumb_func_start sub_0203230C +sub_0203230C: ; 0x0203230C + push {r3, lr} + ldr r0, _02032344 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _0203231E + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_0203231E: + bl sub_0202EE0C + cmp r0, #0x0 + beq _02032340 + mov r1, #0x1 + mov r0, #0x0 + lsl r2, r1, #0x9 + bl sub_0202F950 + cmp r0, #0x0 + beq _02032340 + bl sub_0202FA10 + ldr r0, _02032348 ; =sub_02032298 + mov r1, #0xa + bl sub_02031D20 +_02032340: + pop {r3, pc} + nop +_02032344: .word 0x021C5A00 +_02032348: .word sub_02032298 + 1 + + thumb_func_start sub_0203234C +sub_0203234C: ; 0x0203234C + push {r3, lr} + bl sub_02030F40 + cmp r0, #0x0 + bne _0203235E + ldr r0, _02032360 ; =sub_020323BC + mov r1, #0x0 + bl sub_02031D20 +_0203235E: + pop {r3, pc} + .balign 4 +_02032360: .word sub_020323BC + 1 + + thumb_func_start sub_02032364 +sub_02032364: ; 0x02032364 + push {r3, lr} + bl sub_0202E6F0 + ldr r0, _02032374 ; =sub_02032378 + mov r1, #0x2 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_02032374: .word sub_02032378 + 1 + + thumb_func_start sub_02032378 +sub_02032378: ; 0x02032378 + push {r3, lr} + ldr r0, _020323B0 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _0203238A + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_0203238A: + bl sub_0202EE0C + cmp r0, #0x0 + beq _020323AC + mov r1, #0x1 + mov r0, #0x0 + lsl r2, r1, #0x9 + bl sub_0202F950 + cmp r0, #0x0 + beq _020323AC + bl sub_0202FA10 + ldr r0, _020323B4 ; =sub_02032290 + mov r1, #0xa + bl sub_02031D20 +_020323AC: + pop {r3, pc} + nop +_020323B0: .word 0x021C5A00 +_020323B4: .word sub_02032290 + 1 + + thumb_func_start sub_020323B8 +sub_020323B8: ; 0x020323B8 + bx lr + .balign 4 + + thumb_func_start sub_020323BC +sub_020323BC: ; 0x020323BC + push {r3, lr} + bl sub_02030F40 + cmp r0, #0x0 + bne _020323CA + bl sub_020317C0 +_020323CA: + pop {r3, pc} + + thumb_func_start sub_020323CC +sub_020323CC: ; 0x020323CC + ldr r3, _020323D4 ; =sub_02031D20 + ldr r0, _020323D8 ; =sub_02032440 + mov r1, #0x5 + bx r3 + .balign 4 +_020323D4: .word sub_02031D20 + 1 +_020323D8: .word sub_02032440 + 1 + + thumb_func_start sub_020323DC +sub_020323DC: ; 0x020323DC + push {r3, lr} + bl sub_02030F20 + cmp r0, #0x1 + bgt _020323F8 + mov r0, #0x0 + bl sub_0202D36C + bl sub_0202FC80 + ldr r0, _0203241C ; =sub_020324F8 + mov r1, #0x0 + bl sub_02031D20 +_020323F8: + ldr r0, _02032420 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02032408 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02032408: + mov r0, #0x0 + bl sub_0202D36C + bl sub_0202FC80 + ldr r0, _0203241C ; =sub_020324F8 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_0203241C: .word sub_020324F8 + 1 +_02032420: .word 0x021C5A00 + + thumb_func_start sub_02032424 +sub_02032424: ; 0x02032424 + push {r3, lr} + bl sub_0202E6F0 + cmp r0, #0x0 + beq _0203243A + bl sub_0202FC60 + ldr r0, _0203243C ; =sub_020324F8 + mov r1, #0x0 + bl sub_02031D20 +_0203243A: + pop {r3, pc} + .balign 4 +_0203243C: .word sub_020324F8 + 1 + + thumb_func_start sub_02032440 +sub_02032440: ; 0x02032440 + push {r3, lr} + ldr r0, _02032470 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02032450 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] +_02032450: + bl sub_0202E6F0 + cmp r0, #0x0 + beq _0203246E + ldr r0, _02032470 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x3a] + cmp r0, #0x0 + bne _0203246E + bl sub_0202FA5C + ldr r0, _02032474 ; =sub_020323BC + mov r1, #0x0 + bl sub_02031D20 +_0203246E: + pop {r3, pc} + .balign 4 +_02032470: .word 0x021C5A00 +_02032474: .word sub_020323BC + 1 + + thumb_func_start sub_02032478 +sub_02032478: ; 0x02032478 + push {r3, lr} + bl sub_0202E4C8 + cmp r0, #0x0 + beq _020324BE + ldr r0, _020324C0 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl sub_0202E29C + ldr r0, _020324C0 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3c + ldrb r0, [r0, #0x0] + bl sub_0202D1B0 + ldr r0, _020324C0 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl sub_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + bl sub_0202F950 + cmp r0, #0x0 + beq _020324BE + bl sub_0202FA10 + ldr r0, _020324C4 ; =sub_020324C8 + mov r1, #0x40 + bl sub_02031D20 +_020324BE: + pop {r3, pc} + .balign 4 +_020324C0: .word 0x021C5A00 +_020324C4: .word sub_020324C8 + 1 + + thumb_func_start sub_020324C8 +sub_020324C8: ; 0x020324C8 + push {r3, lr} + bl sub_0202EA54 + ldr r0, _020324F0 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _020324DE + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_020324DE: + bl sub_0202E6F0 + cmp r0, #0x0 + beq _020324EE + ldr r0, _020324F4 ; =sub_02032510 + mov r1, #0x0 + bl sub_02031D20 +_020324EE: + pop {r3, pc} + .balign 4 +_020324F0: .word 0x021C5A00 +_020324F4: .word sub_02032510 + 1 + + thumb_func_start sub_020324F8 +sub_020324F8: ; 0x020324F8 + push {r3, lr} + bl sub_0202E6F0 + cmp r0, #0x0 + beq _0203250A + ldr r0, _0203250C ; =sub_02032510 + mov r1, #0x0 + bl sub_02031D20 +_0203250A: + pop {r3, pc} + .balign 4 +_0203250C: .word sub_02032510 + 1 + + thumb_func_start sub_02032510 +sub_02032510: ; 0x02032510 + push {r3-r5, lr} + bl sub_0202EE0C + cmp r0, #0x0 + beq _02032568 + ldr r1, _0203256C ; =0x021C5A00 + mov r2, #0x2 + ldr r1, [r1, #0x0] + mov r0, #0x0 + add r1, #0x43 + ldrb r1, [r1, #0x0] + lsl r2, r2, #0x8 + mov r3, #0x1 + bl sub_0202F918 + cmp r0, #0x0 + beq _02032568 + ldr r0, _0203256C ; =0x021C5A00 + ldr r4, [r0, #0x0] + add r5, r4, #0x0 + add r5, #0xc + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + ldr r2, [r4, #0xc] + ldr r3, [r5, #0x4] + blx sub_020EBC30 + ldr r2, [r5, #0x10] + ldr r3, [r5, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r4, #0xc] + str r3, [r5, #0x4] + bl sub_0202FA10 + ldr r0, _0203256C ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x43 + strb r1, [r0, #0x0] + ldr r0, _02032570 ; =sub_02032578 + ldr r1, _02032574 ; =0x00002710 + bl sub_02031D20 +_02032568: + pop {r3-r5, pc} + nop +_0203256C: .word 0x021C5A00 +_02032570: .word sub_02032578 + 1 +_02032574: .word 0x00002710 + + thumb_func_start sub_02032578 +sub_02032578: ; 0x02032578 + push {r3, lr} + bl sub_0202F104 + cmp r0, #0x0 + bne _020325B2 + bl sub_020311E8 + cmp r0, #0x0 + beq _020325A2 + ldr r0, _020325C4 ; =0x021C5A00 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x43 + strb r1, [r0, #0x0] + bl sub_02033E74 + ldr r0, _020325C8 ; =sub_020327FC + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_020325A2: + ldr r0, _020325C4 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _020325B2 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_020325B2: + bl sub_0202E6F0 + cmp r0, #0x0 + beq _020325C2 + ldr r0, _020325CC ; =sub_020325D0 + mov r1, #0x0 + bl sub_02031D20 +_020325C2: + pop {r3, pc} + .balign 4 +_020325C4: .word 0x021C5A00 +_020325C8: .word sub_020327FC + 1 +_020325CC: .word sub_020325D0 + 1 + + thumb_func_start sub_020325D0 +sub_020325D0: ; 0x020325D0 + push {r3-r5, lr} + bl sub_0202EE0C + cmp r0, #0x0 + beq _0203261C + mov r0, #0x0 + mov r2, #0x2 + add r1, r0, #0x0 + lsl r2, r2, #0x8 + bl sub_0202F950 + cmp r0, #0x0 + beq _0203261C + bl sub_0202FA10 + ldr r0, _02032620 ; =0x021C5A00 + ldr r4, [r0, #0x0] + add r5, r4, #0x0 + add r5, #0xc + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + ldr r2, [r4, #0xc] + ldr r3, [r5, #0x4] + blx sub_020EBC30 + ldr r2, [r5, #0x10] + ldr r3, [r5, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r4, #0xc] + mov r1, #0x0 + ldr r0, _02032624 ; =sub_020324C8 + lsr r2, r3, #0x1b + lsl r1, r1, #0x5 + orr r1, r2 + str r3, [r5, #0x4] + bl sub_02031D20 +_0203261C: + pop {r3-r5, pc} + nop +_02032620: .word 0x021C5A00 +_02032624: .word sub_020324C8 + 1 + + thumb_func_start sub_02032628 +sub_02032628: ; 0x02032628 + push {r3, lr} + bl sub_0202E6F0 + cmp r0, #0x0 + beq _0203263A + ldr r0, _0203263C ; =sub_02032640 + mov r1, #0x0 + bl sub_02031D20 +_0203263A: + pop {r3, pc} + .balign 4 +_0203263C: .word sub_02032640 + 1 + + thumb_func_start sub_02032640 +sub_02032640: ; 0x02032640 + push {r3, lr} + bl sub_0202EE0C + cmp r0, #0x0 + beq _02032666 + mov r0, #0x0 + mov r2, #0x2 + add r1, r0, #0x0 + lsl r2, r2, #0x8 + bl sub_0202F950 + cmp r0, #0x0 + beq _02032666 + bl sub_0202FA10 + ldr r0, _02032668 ; =sub_0203266C + mov r1, #0x64 + bl sub_02031D20 +_02032666: + pop {r3, pc} + .balign 4 +_02032668: .word sub_0203266C + 1 + + thumb_func_start sub_0203266C +sub_0203266C: ; 0x0203266C + push {r3, lr} + ldr r0, _020326C4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl sub_0202E8A0 + cmp r0, #0x0 + beq _02032698 + ldr r0, _020326C4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl sub_0202FB18 + cmp r0, #0x0 + beq _02032698 + ldr r0, _020326C8 ; =sub_020326D0 + mov r1, #0x64 + bl sub_02031D20 + pop {r3, pc} +_02032698: + bl sub_020311F0 + cmp r0, #0x0 + beq _020326AA + ldr r0, _020326CC ; =sub_020327B8 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_020326AA: + ldr r0, _020326C4 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _020326BA + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_020326BA: + ldr r0, _020326CC ; =sub_020327B8 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_020326C4: .word 0x021C5A00 +_020326C8: .word sub_020326D0 + 1 +_020326CC: .word sub_020327B8 + 1 + + thumb_func_start sub_020326D0 +sub_020326D0: ; 0x020326D0 + push {r3, lr} + bl sub_020311F0 + cmp r0, #0x0 + beq _020326E4 + ldr r0, _02032728 ; =sub_020327B8 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_020326E4: + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + beq _0203270C + ldr r0, _0203272C ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x3d + strb r1, [r0, #0x0] + ldr r1, _02032730 ; =0x02105D5C + mov r0, #0x6 + bl sub_020311D0 + ldr r0, _02032734 ; =sub_02032738 + mov r1, #0x78 + bl sub_02031D20 + pop {r3, pc} +_0203270C: + ldr r0, _0203272C ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _0203271C + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_0203271C: + ldr r0, _02032728 ; =sub_020327B8 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + nop +_02032728: .word sub_020327B8 + 1 +_0203272C: .word 0x021C5A00 +_02032730: .word 0x02105D5C +_02032734: .word sub_02032738 + 1 + + thumb_func_start sub_02032738 +sub_02032738: ; 0x02032738 + push {r3, lr} + bl sub_020311F0 + cmp r0, #0x0 + beq _0203274C + ldr r0, _0203278C ; =sub_020327B8 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_0203274C: + ldr r0, _02032790 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x3d + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _02032764 + ldr r0, _02032794 ; =sub_020327B4 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_02032764: + cmp r0, #0x1 + bne _02032776 + bl sub_0202DBE0 + ldr r0, _02032798 ; =sub_0203279C + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_02032776: + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02032782 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02032782: + ldr r0, _0203278C ; =sub_020327B8 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_0203278C: .word sub_020327B8 + 1 +_02032790: .word 0x021C5A00 +_02032794: .word sub_020327B4 + 1 +_02032798: .word sub_0203279C + 1 + + thumb_func_start sub_0203279C +sub_0203279C: ; 0x0203279C + push {r3, lr} + bl sub_020311F0 + cmp r0, #0x0 + beq _020327AE + ldr r0, _020327B0 ; =sub_020327B8 + mov r1, #0x0 + bl sub_02031D20 +_020327AE: + pop {r3, pc} + .balign 4 +_020327B0: .word sub_020327B8 + 1 + + thumb_func_start sub_020327B4 +sub_020327B4: ; 0x020327B4 + bx lr + .balign 4 + + thumb_func_start sub_020327B8 +sub_020327B8: ; 0x020327B8 + push {r3, lr} + ldr r0, _020327F0 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x3d + strb r1, [r0, #0x0] + bl sub_0202E6F0 + cmp r0, #0x0 + beq _020327EC + ldr r0, _020327F0 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x38] + cmp r0, #0x0 + beq _020327E4 + sub r0, r0, #0x1 + strh r0, [r1, #0x38] + ldr r0, _020327F4 ; =sub_02032640 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_020327E4: + ldr r0, _020327F8 ; =sub_020327B4 + mov r1, #0x0 + bl sub_02031D20 +_020327EC: + pop {r3, pc} + nop +_020327F0: .word 0x021C5A00 +_020327F4: .word sub_02032640 + 1 +_020327F8: .word sub_020327B4 + 1 + + thumb_func_start sub_020327FC +sub_020327FC: ; 0x020327FC + push {r3, lr} + bl sub_020311E8 + cmp r0, #0x0 + bne _02032820 + bl sub_02033510 + cmp r0, #0x0 + bne _0203282C + bl sub_0202E6F0 + cmp r0, #0x0 + beq _0203282C + ldr r0, _02032848 ; =sub_020325D0 + mov r1, #0x0 + bl sub_02031D20 + b _0203282C +_02032820: + bl sub_02031190 + cmp r0, #0x0 + bne _0203282C + bl sub_0202DDE8 +_0203282C: + bl sub_020311F0 + cmp r0, #0x0 + beq _02032844 + bl sub_02033510 + cmp r0, #0x0 + bne _02032844 + ldr r0, _0203284C ; =sub_020327B8 + mov r1, #0x0 + bl sub_02031D20 +_02032844: + pop {r3, pc} + nop +_02032848: .word sub_020325D0 + 1 +_0203284C: .word sub_020327B8 + 1 + + thumb_func_start sub_02032850 +sub_02032850: ; 0x02032850 + push {r3, lr} + bl sub_0202EE0C + cmp r0, #0x0 + beq _0203287E + ldr r1, _02032880 ; =0x021C5A00 + mov r0, #0x0 + ldr r1, [r1, #0x0] + mov r2, #0x2 + add r1, #0x43 + ldrb r1, [r1, #0x0] + lsl r2, r2, #0x8 + add r3, r0, #0x0 + bl sub_0202F918 + cmp r0, #0x0 + beq _0203287E + bl sub_0202FA10 + ldr r0, _02032884 ; =sub_020323B8 + mov r1, #0x0 + bl sub_02031D20 +_0203287E: + pop {r3, pc} + .balign 4 +_02032880: .word 0x021C5A00 +_02032884: .word sub_020323B8 + 1 + + thumb_func_start sub_02032888 +sub_02032888: ; 0x02032888 + push {r3, lr} + ldr r0, _020328BC ; =0x021C5A00 + mov r1, #0xd + ldr r0, [r0, #0x0] + add r0, #0x3f + strb r1, [r0, #0x0] + bl sub_02031190 + cmp r0, #0x0 + add r0, sp, #0x0 + bne _020328AE + mov r1, #0x0 + strb r1, [r0, #0x1] + add r1, sp, #0x0 + mov r0, #0xa + add r1, #0x1 + bl sub_020311D0 + pop {r3, pc} +_020328AE: + mov r1, #0x0 + strb r1, [r0, #0x0] + mov r0, #0xa + add r1, sp, #0x0 + bl sub_020311D0 + pop {r3, pc} + .balign 4 +_020328BC: .word 0x021C5A00 + + thumb_func_start sub_020328C0 +sub_020328C0: ; 0x020328C0 + ldr r1, _020328D8 ; =0x021C5A00 + ldr r3, _020328DC ; =sub_02031D20 + ldr r2, [r1, #0x0] + add r2, #0x3e + strb r0, [r2, #0x0] + ldr r0, [r1, #0x0] + mov r2, #0x3 + strh r2, [r0, #0x38] + ldr r0, _020328E0 ; =sub_02032924 + mov r1, #0x0 + bx r3 + nop +_020328D8: .word 0x021C5A00 +_020328DC: .word sub_02031D20 + 1 +_020328E0: .word sub_02032924 + 1 + + thumb_func_start sub_020328E4 +sub_020328E4: ; 0x020328E4 + ldr r0, _020328F0 ; =0x021C5A00 + mov r1, #0x7 + ldr r0, [r0, #0x0] + add r0, #0x3f + strb r1, [r0, #0x0] + bx lr + .balign 4 +_020328F0: .word 0x021C5A00 + + thumb_func_start sub_020328F4 +sub_020328F4: ; 0x020328F4 + push {r3, lr} + ldr r1, _0203291C ; =0x021C5A00 + ldr r2, [r1, #0x0] + add r2, #0x3e + strb r0, [r2, #0x0] + ldr r0, [r1, #0x0] + mov r2, #0x7 + add r0, #0x3f + strb r2, [r0, #0x0] + ldr r0, [r1, #0x0] + mov r2, #0x3 + strh r2, [r0, #0x38] + bl sub_02033E74 + ldr r0, _02032920 ; =sub_02032628 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + nop +_0203291C: .word 0x021C5A00 +_02032920: .word sub_02032628 + 1 + + thumb_func_start sub_02032924 +sub_02032924: ; 0x02032924 + push {r3, lr} + bl sub_0202E6F0 + cmp r0, #0x0 + beq _02032936 + ldr r0, _02032938 ; =sub_0203293C + mov r1, #0x0 + bl sub_02031D20 +_02032936: + pop {r3, pc} + .balign 4 +_02032938: .word sub_0203293C + 1 + + thumb_func_start sub_0203293C +sub_0203293C: ; 0x0203293C + push {r3, lr} + bl sub_0202EE0C + cmp r0, #0x0 + beq _0203296C + ldr r0, _02032970 ; =0x021C5A00 + mov r2, #0x2 + ldr r0, [r0, #0x0] + mov r1, #0xd + add r0, #0x3f + strb r1, [r0, #0x0] + mov r0, #0x0 + add r1, r0, #0x0 + lsl r2, r2, #0x8 + bl sub_0202F950 + cmp r0, #0x0 + beq _0203296C + bl sub_0202FA1C + ldr r0, _02032974 ; =sub_02032978 + mov r1, #0x64 + bl sub_02031D20 +_0203296C: + pop {r3, pc} + nop +_02032970: .word 0x021C5A00 +_02032974: .word sub_02032978 + 1 + + thumb_func_start sub_02032978 +sub_02032978: ; 0x02032978 + push {r3, lr} + ldr r0, _020329E4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl sub_0202E8A0 + cmp r0, #0x0 + beq _020329A4 + ldr r0, _020329E4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl sub_0202FB18 + cmp r0, #0x0 + beq _020329A4 + ldr r0, _020329E8 ; =sub_020329F4 + mov r1, #0x64 + bl sub_02031D20 + pop {r3, pc} +_020329A4: + bl sub_020311F0 + cmp r0, #0x0 + bne _020329B6 + ldr r0, _020329E4 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + bne _020329DC +_020329B6: + ldr r0, _020329E4 ; =0x021C5A00 + ldr r2, [r0, #0x0] + ldrh r1, [r2, #0x38] + sub r1, r1, #0x1 + strh r1, [r2, #0x38] + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x38] + cmp r0, #0x0 + bne _020329D2 + ldr r0, _020329EC ; =sub_020327B4 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_020329D2: + ldr r0, _020329F0 ; =sub_02032924 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_020329DC: + beq _020329E2 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] +_020329E2: + pop {r3, pc} + .balign 4 +_020329E4: .word 0x021C5A00 +_020329E8: .word sub_020329F4 + 1 +_020329EC: .word sub_020327B4 + 1 +_020329F0: .word sub_02032924 + 1 + + thumb_func_start sub_020329F4 +sub_020329F4: ; 0x020329F4 + push {r3, lr} + ldr r0, _02032A7C ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x5a + bls _02032A06 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02032A06: + bl sub_020311F0 + cmp r0, #0x0 + beq _02032A34 + ldr r0, _02032A7C ; =0x021C5A00 + ldr r2, [r0, #0x0] + ldrh r1, [r2, #0x38] + sub r1, r1, #0x1 + strh r1, [r2, #0x38] + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x38] + cmp r0, #0x0 + bne _02032A2A + ldr r0, _02032A80 ; =sub_020327B4 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_02032A2A: + ldr r0, _02032A84 ; =sub_02032924 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_02032A34: + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + beq _02032A4A + ldr r0, _02032A88 ; =sub_0203279C + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_02032A4A: + ldr r0, _02032A7C ; =0x021C5A00 + ldr r2, [r0, #0x0] + ldrh r1, [r2, #0x3a] + cmp r1, #0x0 + beq _02032A5A + sub r0, r1, #0x1 + strh r0, [r2, #0x3a] + pop {r3, pc} +_02032A5A: + ldrh r1, [r2, #0x38] + sub r1, r1, #0x1 + strh r1, [r2, #0x38] + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x38] + cmp r0, #0x0 + bne _02032A72 + ldr r0, _02032A80 ; =sub_020327B4 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} +_02032A72: + ldr r0, _02032A84 ; =sub_02032924 + mov r1, #0x0 + bl sub_02031D20 + pop {r3, pc} + .balign 4 +_02032A7C: .word 0x021C5A00 +_02032A80: .word sub_020327B4 + 1 +_02032A84: .word sub_02032924 + 1 +_02032A88: .word sub_0203279C + 1 + + thumb_func_start sub_02032A8C +sub_02032A8C: ; 0x02032A8C + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl sub_02031190 + cmp r0, #0x0 + bne _02032ADA + ldr r6, _02032ADC ; =0x02105D5C + mov r3, #0x1 + mov r2, #0x0 +_02032AA0: + ldrb r1, [r6, #0x0] + ldrb r0, [r4, r2] + cmp r1, r0 + beq _02032AAC + mov r3, #0x0 + b _02032AB4 +_02032AAC: + add r2, r2, #0x1 + add r6, r6, #0x1 + cmp r2, #0x6 + blo _02032AA0 +_02032AB4: + cmp r3, #0x0 + beq _02032AD0 + ldr r0, _02032AE0 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02032AD0 + ldr r1, _02032AE4 ; =0x02105D6C + mov r0, #0x7 + strb r5, [r1, #0x0] + bl sub_02030C4C + pop {r4-r6, pc} +_02032AD0: + ldr r1, _02032AE8 ; =0x02105D64 + mov r0, #0x7 + strb r5, [r1, #0x0] + bl sub_02030C4C +_02032ADA: + pop {r4-r6, pc} + .balign 4 +_02032ADC: .word 0x02105D5C +_02032AE0: .word 0x021C5A00 +_02032AE4: .word 0x02105D6C +_02032AE8: .word 0x02105D64 + + thumb_func_start sub_02032AEC +sub_02032AEC: ; 0x02032AEC + push {r3-r5, lr} + mov r4, #0x1 + ldr r5, _02032B5C ; =0x02105D6D + add r3, r4, #0x0 +_02032AF4: + ldrb r1, [r5, #0x0] + ldrb r0, [r2, r3] + cmp r1, r0 + beq _02032B00 + mov r4, #0x0 + b _02032B08 +_02032B00: + add r3, r3, #0x1 + add r5, r5, #0x1 + cmp r3, #0x6 + blo _02032AF4 +_02032B08: + cmp r4, #0x0 + beq _02032B22 + ldrb r4, [r2, #0x0] + bl sub_02031190 + cmp r4, r0 + bne _02032B58 + ldr r0, _02032B60 ; =0x021C5A00 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x3d + strb r1, [r0, #0x0] + pop {r3-r5, pc} +_02032B22: + mov r4, #0x1 + ldr r3, _02032B64 ; =0x02105D65 + add r5, r4, #0x0 +_02032B28: + ldrb r1, [r3, #0x0] + ldrb r0, [r2, r5] + cmp r1, r0 + beq _02032B34 + mov r4, #0x0 + b _02032B3C +_02032B34: + add r5, r5, #0x1 + add r3, r3, #0x1 + cmp r5, #0x6 + blo _02032B28 +_02032B3C: + cmp r4, #0x0 + beq _02032B58 + ldrb r4, [r2, #0x0] + bl sub_02031190 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r4, r0 + bne _02032B58 + ldr r0, _02032B60 ; =0x021C5A00 + mov r1, #0x2 + ldr r0, [r0, #0x0] + add r0, #0x3d + strb r1, [r0, #0x0] +_02032B58: + pop {r3-r5, pc} + nop +_02032B5C: .word 0x02105D6D +_02032B60: .word 0x021C5A00 +_02032B64: .word 0x02105D65 + + thumb_func_start sub_02032B68 +sub_02032B68: ; 0x02032B68 + mov r0, #0x6 + bx lr + + thumb_func_start sub_02032B6C +sub_02032B6C: ; 0x02032B6C + push {r3, lr} + ldr r1, _02032B80 ; =0x021C5A00 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _02032B7E + add r1, #0x3c + strb r0, [r1, #0x0] + bl sub_0202D1B0 +_02032B7E: + pop {r3, pc} + .balign 4 +_02032B80: .word 0x021C5A00 + + thumb_func_start sub_02032B84 +sub_02032B84: ; 0x02032B84 + ldr r3, _02032B88 ; =sub_0202EA54 + bx r3 + .balign 4 +_02032B88: .word sub_0202EA54 + 1 + + thumb_func_start sub_02032B8C +sub_02032B8C: ; 0x02032B8C + push {r3, lr} + bl sub_0202E4C8 + cmp r0, #0x0 + beq _02032BC6 + ldr r0, _02032BC8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl sub_0202E29C + ldr r0, _02032BC8 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl sub_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + mov r2, #0x20 + bl sub_0202F950 + cmp r0, #0x0 + beq _02032BC6 + bl sub_0202FA10 + ldr r0, _02032BCC ; =sub_02032B84 + mov r1, #0x0 + bl sub_02031D20 +_02032BC6: + pop {r3, pc} + .balign 4 +_02032BC8: .word 0x021C5A00 +_02032BCC: .word sub_02032B84 + 1 + + thumb_func_start sub_02032BD0 +sub_02032BD0: ; 0x02032BD0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + bne _02032C00 + mov r2, #0x7 + mov r0, #0x3 + mov r1, #0xf + lsl r2, r2, #0xc + bl sub_02016828 + add r0, r4, #0x0 + mov r1, #0xe + bl sub_02031734 + ldr r0, _02032C04 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x40 + strb r1, [r0, #0x0] + ldr r0, _02032C08 ; =sub_02032B8C + bl sub_02031D20 +_02032C00: + pop {r4, pc} + nop +_02032C04: .word 0x021C5A00 +_02032C08: .word sub_02032B8C + 1 + + thumb_func_start sub_02032C0C +sub_02032C0C: ; 0x02032C0C + push {r3, lr} + ldr r0, _02032C20 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02032C1E + ldr r0, _02032C24 ; =sub_02032440 + mov r1, #0x5 + bl sub_02031D20 +_02032C1E: + pop {r3, pc} + .balign 4 +_02032C20: .word 0x021C5A00 +_02032C24: .word sub_02032440 + 1 + + thumb_func_start sub_02032C28 +sub_02032C28: ; 0x02032C28 + sub sp, #0x8 + ldr r1, _02032C64 ; =0x020EEC48 + add r0, sp, #0x0 + ldr r2, [r1, #0x0] + ldr r1, [r1, #0x4] + str r2, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, _02032C68 ; =0x021C5A00 + ldr r1, [r1, #0x0] + ldr r3, [r1, #0x24] + cmp r1, #0x0 + bne _02032C46 + mov r0, #0x0 + add sp, #0x8 + bx lr +_02032C46: + cmp r2, #0x0 + beq _02032C5E +_02032C4A: + ldr r1, [r0, #0x0] + cmp r3, r1 + bne _02032C56 + mov r0, #0x1 + add sp, #0x8 + bx lr +_02032C56: + add r0, r0, #0x4 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + bne _02032C4A +_02032C5E: + mov r0, #0x0 + add sp, #0x8 + bx lr + .balign 4 +_02032C64: .word 0x020EEC48 +_02032C68: .word 0x021C5A00 + + thumb_func_start sub_02032C6C +sub_02032C6C: ; 0x02032C6C + ldr r2, _02032CE4 ; =0x00400131 + cmp r0, r2 + bhi _02032C7C + bhs _02032CBA + ldr r2, _02032CE8 ; =0x00000333 + cmp r0, r2 + beq _02032C8E + bx lr +_02032C7C: + ldr r1, _02032CEC ; =0x00400286 + cmp r0, r1 + bhi _02032C86 + beq _02032CCE + bx lr +_02032C86: + add r1, #0x92 + cmp r0, r1 + beq _02032CA6 + bx lr +_02032C8E: + cmp r1, #0xf + bne _02032CE0 + ldr r0, _02032CF0 ; =0x021C5A00 + ldr r2, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x49 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + add r2, #0x49 + orr r0, r1 + strb r0, [r2, #0x0] + bx lr +_02032CA6: + ldr r0, _02032CF0 ; =0x021C5A00 + ldr r2, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x49 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + add r2, #0x49 + orr r0, r1 + strb r0, [r2, #0x0] + bx lr +_02032CBA: + ldr r0, _02032CF0 ; =0x021C5A00 + ldr r2, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x49 + ldrb r1, [r0, #0x0] + mov r0, #0x2 + add r2, #0x49 + orr r0, r1 + strb r0, [r2, #0x0] + bx lr +_02032CCE: + ldr r0, _02032CF0 ; =0x021C5A00 + ldr r2, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x49 + ldrb r1, [r0, #0x0] + mov r0, #0x4 + add r2, #0x49 + orr r0, r1 + strb r0, [r2, #0x0] +_02032CE0: + bx lr + nop +_02032CE4: .word 0x00400131 +_02032CE8: .word 0x00000333 +_02032CEC: .word 0x00400286 +_02032CF0: .word 0x021C5A00 + + thumb_func_start sub_02032CF4 +sub_02032CF4: ; 0x02032CF4 + push {r3, lr} + bl sub_0202E4C8 + cmp r0, #0x0 + beq _02032D34 + ldr r0, _02032D38 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl sub_0202E29C + ldr r0, _02032D38 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl sub_0202DB14 + ldr r0, _02032D3C ; =sub_02032C6C + bl sub_0202D308 + mov r0, #0x1 + add r1, r0, #0x0 + mov r2, #0x20 + bl sub_0202F950 + cmp r0, #0x0 + beq _02032D34 + bl sub_0202FA10 + ldr r0, _02032D40 ; =sub_02032B84 + mov r1, #0x0 + bl sub_02031D20 +_02032D34: + pop {r3, pc} + nop +_02032D38: .word 0x021C5A00 +_02032D3C: .word sub_02032C6C + 1 +_02032D40: .word sub_02032B84 + 1 + + thumb_func_start sub_02032D44 +sub_02032D44: ; 0x02032D44 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + bne _02032D74 + mov r2, #0x7 + mov r0, #0x3 + mov r1, #0xf + lsl r2, r2, #0xc + bl sub_02016828 + add r0, r4, #0x0 + mov r1, #0x11 + bl sub_02031734 + ldr r0, _02032D78 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x40 + strb r1, [r0, #0x0] + ldr r0, _02032D7C ; =sub_02032CF4 + bl sub_02031D20 +_02032D74: + pop {r4, pc} + nop +_02032D78: .word 0x021C5A00 +_02032D7C: .word sub_02032CF4 + 1 + + thumb_func_start sub_02032D80 +sub_02032D80: ; 0x02032D80 + push {r3, lr} + ldr r0, _02032D94 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02032D92 + ldr r0, _02032D98 ; =sub_02032440 + mov r1, #0x5 + bl sub_02031D20 +_02032D92: + pop {r3, pc} + .balign 4 +_02032D94: .word 0x021C5A00 +_02032D98: .word sub_02032440 + 1 + + thumb_func_start sub_02032D9C +sub_02032D9C: ; 0x02032D9C + ldr r0, _02032DA8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x49 + ldrb r0, [r0, #0x0] + bx lr + nop +_02032DA8: .word 0x021C5A00 + + thumb_func_start sub_02032DAC +sub_02032DAC: ; 0x02032DAC + push {r3, lr} + bl sub_02031468 + ldr r0, _02032DF4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02032DBE + mov r0, #0x1 + pop {r3, pc} +_02032DBE: + add r0, #0x3f + ldrb r0, [r0, #0x0] + add r0, #0xe8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bhi _02032DD4 + bl sub_021D83C0 + mov r0, #0x1 + pop {r3, pc} +_02032DD4: + bl sub_02033590 + cmp r0, #0x0 + beq _02032DE6 + ldr r0, _02032DF8 ; =sub_0203318C + mov r1, #0x0 + bl sub_02031D20 + b _02032DEE +_02032DE6: + ldr r0, _02032DFC ; =sub_02032178 + mov r1, #0x0 + bl sub_02031D20 +_02032DEE: + mov r0, #0x0 + pop {r3, pc} + nop +_02032DF4: .word 0x021C5A00 +_02032DF8: .word sub_0203318C + 1 +_02032DFC: .word sub_02032178 + 1 + + thumb_func_start sub_02032E00 +sub_02032E00: ; 0x02032E00 + push {r3, lr} + bl sub_0202E4C8 + cmp r0, #0x0 + beq _02032E3C + ldr r0, _02032E40 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl sub_0202E29C + ldr r0, _02032E40 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl sub_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + add r3, r0, #0x0 + bl sub_0202F918 + cmp r0, #0x0 + beq _02032E3C + bl sub_0202FA10 + ldr r0, _02032E44 ; =sub_02032218 + mov r1, #0x0 + bl sub_02031D20 +_02032E3C: + pop {r3, pc} + nop +_02032E40: .word 0x021C5A00 +_02032E44: .word sub_02032218 + 1 + + thumb_func_start sub_02032E48 +sub_02032E48: ; 0x02032E48 + push {r3, lr} + bl sub_0202E4C8 + cmp r0, #0x0 + beq _02032E82 + ldr r0, _02032E84 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl sub_0202E29C + ldr r0, _02032E84 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl sub_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + bl sub_0202F950 + cmp r0, #0x0 + beq _02032E82 + bl sub_0202FA10 + ldr r0, _02032E88 ; =sub_02032290 + mov r1, #0x0 + bl sub_02031D20 +_02032E82: + pop {r3, pc} + .balign 4 +_02032E84: .word 0x021C5A00 +_02032E88: .word sub_02032290 + 1 + + thumb_func_start sub_02032E8C +sub_02032E8C: ; 0x02032E8C + bx lr + .balign 4 +_02032E90: + .byte 0x08, 0xB5, 0xA5, 0xF1, 0x7B, 0xF8, 0x00, 0x28, 0x03, 0xDA, 0x02, 0x48, 0x00, 0x21, 0xFE, 0xF7 + .byte 0x3F, 0xFF, 0x08, 0xBD, 0x8D, 0x2E, 0x03, 0x02, 0x70, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00 + .byte 0x08, 0xB5, 0x01, 0x20, 0xFE, 0xF7, 0x74, 0xFA, 0xA5, 0xF1, 0x68, 0xF8, 0x0A, 0x28, 0x04, 0xDB + .byte 0x12, 0x48, 0x00, 0x21, 0xFE, 0xF7, 0x2C, 0xFF, 0x08, 0xBD, 0x00, 0x28, 0x04, 0xDA, 0x10, 0x48 + .byte 0x00, 0x21, 0xFE, 0xF7, 0x25, 0xFF, 0x08, 0xBD, 0x01, 0x28, 0x04, 0xD1, 0x0D, 0x48, 0x00, 0x21 + .byte 0xFE, 0xF7, 0x1E, 0xFF, 0x08, 0xBD, 0x02, 0x28, 0x0E, 0xD1, 0x0B, 0x48, 0x00, 0x68, 0x44, 0x30 + .byte 0x00, 0x78, 0x00, 0x28, 0x04, 0xD0, 0x06, 0x48, 0x00, 0x21, 0xFE, 0xF7, 0x11, 0xFF, 0x08, 0xBD + .byte 0x06, 0x48, 0x00, 0x21, 0xFE, 0xF7, 0x0C, 0xFF, 0x08, 0xBD, 0xC0, 0x46, 0xAD, 0x2E, 0x03, 0x02 + .byte 0x8D, 0x2E, 0x03, 0x02, 0x91, 0x2E, 0x03, 0x02, 0x00, 0x5A, 0x1C, 0x02, 0xA9, 0x2E, 0x03, 0x02 + .byte 0x81, 0x1C, 0x01, 0x29, 0x00, 0xD9, 0x40, 0x42, 0x01, 0x49, 0x09, 0x68, 0x48, 0x63, 0x70, 0x47 + .byte 0x00, 0x5A, 0x1C, 0x02, 0x08, 0xB5, 0x00, 0x20, 0xA4, 0xF1, 0x62, 0xFC, 0x0A, 0x28, 0x04, 0xDB + .byte 0x11, 0x48, 0x00, 0x21, 0xFE, 0xF7, 0xEC, 0xFE, 0x08, 0xBD, 0x00, 0x28, 0x06, 0xDA, 0xFF, 0xF7 + .byte 0xE7, 0xFF, 0x0E, 0x48, 0x00, 0x21, 0xFE, 0xF7, 0xE3, 0xFE, 0x08, 0xBD, 0x01, 0x28, 0x04, 0xD1 + .byte 0x0B, 0x48, 0x00, 0x21, 0xFE, 0xF7, 0xDC, 0xFE, 0x08, 0xBD, 0x02, 0x28, 0x04, 0xD1, 0x09, 0x48 + .byte 0x00, 0x21, 0xFE, 0xF7, 0xD5, 0xFE, 0x08, 0xBD, 0x03, 0x28, 0x03, 0xD1, 0x02, 0x48, 0x00, 0x21 + .byte 0xFE, 0xF7, 0xCE, 0xFE, 0x08, 0xBD, 0xC0, 0x46, 0xAD, 0x2E, 0x03, 0x02, 0x8D, 0x2E, 0x03, 0x02 + .byte 0xB1, 0x2E, 0x03, 0x02, 0xA9, 0x2E, 0x03, 0x02, 0x08, 0xB5, 0x01, 0x20, 0xA4, 0xF1, 0x30, 0xFC + .byte 0x00, 0x28, 0x06, 0xDA, 0xFF, 0xF7, 0xBC, 0xFF, 0x09, 0x48, 0x00, 0x21, 0xFE, 0xF7, 0xB8, 0xFE + .byte 0x08, 0xBD, 0x08, 0x48, 0x00, 0x68, 0x42, 0x30, 0x00, 0x78, 0xA5, 0xF1, 0x6B, 0xFA, 0x00, 0x28 + .byte 0x05, 0xD0, 0xFC, 0xF7, 0x4D, 0xFE, 0x04, 0x48, 0x00, 0x21, 0xFE, 0xF7, 0xA9, 0xFE, 0x08, 0xBD + .byte 0x8D, 0x2E, 0x03, 0x02, 0x00, 0x5A, 0x1C, 0x02, 0x35, 0x2F, 0x03, 0x02, 0x10, 0xB5, 0x04, 0x1C + .byte 0x06, 0x48, 0x07, 0x49, 0xA4, 0xF1, 0xEE, 0xFB, 0x06, 0x48, 0x00, 0x21, 0x00, 0x68, 0x42, 0x30 + .byte 0x04, 0x70, 0x05, 0x48, 0xFE, 0xF7, 0x94, 0xFE, 0x01, 0x20, 0x10, 0xBD, 0xBD, 0x03, 0x03, 0x02 + .byte 0x39, 0x02, 0x03, 0x02, 0x00, 0x5A, 0x1C, 0x02, 0x99, 0x2F, 0x03, 0x02, 0x0E, 0x48, 0x00, 0x68 + .byte 0x41, 0x6A, 0x0E, 0x48, 0x81, 0x42, 0x01, 0xD1, 0x00, 0x20, 0x70, 0x47, 0x0C, 0x48, 0x81, 0x42 + .byte 0x01, 0xD1, 0x01, 0x20, 0x70, 0x47, 0x0B, 0x48, 0x81, 0x42, 0x01, 0xD1, 0x03, 0x20, 0x70, 0x47 + .byte 0x09, 0x48, 0x81, 0x42, 0x01, 0xD1, 0x04, 0x20, 0x70, 0x47, 0x08, 0x48, 0x81, 0x42, 0x01, 0xD1 + .byte 0x05, 0x20, 0x70, 0x47, 0x02, 0x20, 0x70, 0x47, 0x00, 0x5A, 0x1C, 0x02, 0x35, 0x2F, 0x03, 0x02 + .byte 0xB1, 0x2E, 0x03, 0x02, 0x91, 0x2E, 0x03, 0x02, 0xA9, 0x2E, 0x03, 0x02, 0xAD, 0x2E, 0x03, 0x02 + .byte 0x08, 0xB5, 0x0B, 0x48, 0x0B, 0x49, 0xA4, 0xF1, 0xAD, 0xFB, 0x00, 0x20, 0xC0, 0x43, 0xA5, 0xF1 + .byte 0x11, 0xFA, 0x00, 0x28, 0x0A, 0xD0, 0x08, 0x48, 0x00, 0x21, 0x00, 0x68, 0x4D, 0x30, 0x01, 0x70 + .byte 0xFC, 0xF7, 0xEE, 0xFD, 0x05, 0x48, 0x00, 0x21, 0xFE, 0xF7, 0x4A, 0xFE, 0x08, 0xBD, 0xC0, 0x46 + .byte 0xBD, 0x03, 0x03, 0x02, 0x39, 0x02, 0x03, 0x02, 0x00, 0x5A, 0x1C, 0x02, 0x35, 0x2F, 0x03, 0x02 + .byte 0x08, 0xB5, 0x00, 0x20, 0xFE, 0xF7, 0x7C, 0xF9, 0x0B, 0x48, 0x00, 0x68, 0x41, 0x30, 0x00, 0x78 + .byte 0xA5, 0xF1, 0x04, 0xF9, 0x00, 0x28, 0x06, 0xD0, 0xA5, 0xF1, 0x58, 0xF9, 0x07, 0x48, 0x00, 0x21 + .byte 0xFE, 0xF7, 0x2E, 0xFE, 0x08, 0xBD, 0xA4, 0xF1, 0x61, 0xFF, 0x00, 0x28, 0x03, 0xDA, 0x04, 0x48 + .byte 0x00, 0x21, 0xFE, 0xF7, 0x25, 0xFE, 0x08, 0xBD, 0x00, 0x5A, 0x1C, 0x02, 0x61, 0x30, 0x03, 0x02 + .byte 0x8D, 0x2E, 0x03, 0x02, 0x08, 0xB5, 0xFE, 0xF7, 0x53, 0xF8, 0x00, 0x28, 0x08, 0xD1, 0x0C, 0x48 + .byte 0x00, 0x21, 0x00, 0x68, 0x41, 0x30, 0x01, 0x70, 0x0A, 0x48, 0xFE, 0xF7, 0x11, 0xFE, 0x08, 0xE0 + .byte 0x07, 0x48, 0x01, 0x21, 0x00, 0x68, 0x41, 0x30, 0x01, 0x70, 0x06, 0x48, 0x00, 0x21, 0xFE, 0xF7 + .byte 0x07, 0xFE, 0x03, 0x48, 0x01, 0x21, 0x00, 0x68, 0x4D, 0x30, 0x01, 0x70, 0x08, 0xBD, 0xC0, 0x46 + .byte 0x00, 0x5A, 0x1C, 0x02, 0xA1, 0x30, 0x03, 0x02, 0x02, 0x48, 0x00, 0x68, 0x4D, 0x30, 0x00, 0x78 + .byte 0x70, 0x47, 0xC0, 0x46, 0x00, 0x5A, 0x1C, 0x02, 0x04, 0x48, 0x00, 0x68, 0x41, 0x6A, 0x04, 0x48 + .byte 0x81, 0x42, 0x01, 0xD1, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x00, 0x5A, 0x1C, 0x02 + .byte 0x61, 0x30, 0x03, 0x02, 0x07, 0x48, 0x00, 0x68, 0x41, 0x6A, 0x07, 0x48, 0x81, 0x42, 0x01, 0xD1 + .byte 0x01, 0x20, 0x70, 0x47, 0x05, 0x48, 0x81, 0x42, 0x01, 0xD1, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20 + .byte 0x70, 0x47, 0xC0, 0x46, 0x00, 0x5A, 0x1C, 0x02, 0x35, 0x2F, 0x03, 0x02, 0x61, 0x30, 0x03, 0x02 + .byte 0x01, 0x48, 0x00, 0x68, 0x40, 0x6B, 0x70, 0x47, 0x00, 0x5A, 0x1C, 0x02 + + thumb_func_start sub_0203318C +sub_0203318C: ; 0x0203318C + push {r3, lr} + mov r0, #0x0 + bl sub_020313A0 + mov r0, #0x0 + bl sub_021D82BC + cmp r0, #0x0 + beq _020331AA + bl sub_021D836C + ldr r0, _020331BC ; =sub_02032440 + mov r1, #0x0 + bl sub_02031D20 +_020331AA: + bl sub_021D7F8C + cmp r0, #0x0 + bge _020331BA + ldr r0, _020331C0 ; =sub_02032E8C + mov r1, #0x0 + bl sub_02031D20 +_020331BA: + pop {r3, pc} + .balign 4 +_020331BC: .word sub_02032440 + 1 +_020331C0: .word sub_02032E8C + 1 + + thumb_func_start sub_020331C4 +sub_020331C4: ; 0x020331C4 + push {r3, lr} + ldr r0, _020331E0 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020331DC + mov r0, #0x1 + bl sub_020166B8 + ldr r0, _020331E4 ; =sub_02032440 + mov r1, #0x5 + bl sub_02031D20 +_020331DC: + pop {r3, pc} + nop +_020331E0: .word 0x021C5A00 +_020331E4: .word sub_02032440 + 1 + + thumb_func_start sub_020331E8 +sub_020331E8: ; 0x020331E8 + push {r3, lr} + ldr r0, _02033200 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020331FE + mov r1, #0x0 + add r0, #0x41 + strb r1, [r0, #0x0] + ldr r0, _02033204 ; =0x020330A1 + bl sub_02031D20 +_020331FE: + pop {r3, pc} + .balign 4 +_02033200: .word 0x021C5A00 +_02033204: .word 0x020330A1 + + thumb_func_start sub_02033208 +sub_02033208: ; 0x02033208 + push {r3, lr} + ldr r0, _02033234 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033232 + bl sub_02031190 + cmp r0, #0x0 + bne _02033220 + mov r1, #0x0 + ldr r0, _02033234 ; =0x021C5A00 + b _02033224 +_02033220: + ldr r0, _02033234 ; =0x021C5A00 + mov r1, #0x1 +_02033224: + ldr r0, [r0, #0x0] + add r0, #0x41 + strb r1, [r0, #0x0] + ldr r0, _02033238 ; =0x020330A1 + mov r1, #0x0 + bl sub_02031D20 +_02033232: + pop {r3, pc} + .balign 4 +_02033234: .word 0x021C5A00 +_02033238: .word 0x020330A1 + + thumb_func_start sub_0203323C +sub_0203323C: ; 0x0203323C + push {r3, lr} + bl sub_02031190 + add r1, sp, #0x0 + strb r0, [r1, #0x0] + mov r0, #0x15 + add r1, sp, #0x0 + bl sub_020311D0 + pop {r3, pc} + + thumb_func_start sub_02033250 +sub_02033250: ; 0x02033250 + ldr r0, _0203327C ; =0x021C5A00 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _02033276 + ldr r1, [r2, #0x24] + ldr r0, _02033280 ; =sub_02032E8C + cmp r1, r0 + bne _02033264 + mov r0, #0x1 + bx lr +_02033264: + ldr r0, _02033284 ; =0x02032E91 + cmp r1, r0 + bne _02033276 + add r2, #0x44 + ldrb r0, [r2, #0x0] + cmp r0, #0x0 + beq _02033276 + mov r0, #0x1 + bx lr +_02033276: + mov r0, #0x0 + bx lr + nop +_0203327C: .word 0x021C5A00 +_02033280: .word sub_02032E8C + 1 +_02033284: .word 0x02032E91 + + thumb_func_start sub_02033288 +sub_02033288: ; 0x02033288 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020332D8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020332D6 + mov r1, #0xf + add r2, r1, #0x0 + mov r0, #0x3 + add r2, #0xf1 + bl sub_02016828 + mov r0, #0xf + mov r1, #0x50 + bl sub_02016998 + ldr r1, _020332D8 ; =0x021C5A00 + mov r2, #0x50 + str r0, [r1, #0x0] + mov r1, #0x0 + blx sub_020CE34C + ldr r0, _020332D8 ; =0x021C5A00 + mov r2, #0x18 + ldr r1, [r0, #0x0] + add r1, #0x3f + strb r2, [r1, #0x0] + ldr r2, [r0, #0x0] + mov r1, #0x1 + add r2, #0x46 + strb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + str r4, [r0, #0x28] + mov r0, #0x0 + bl sub_020334E8 + mov r0, #0x1 + bl sub_020166A8 +_020332D6: + pop {r4, pc} + .balign 4 +_020332D8: .word 0x021C5A00 + + thumb_func_start sub_020332DC +sub_020332DC: ; 0x020332DC + push {r3, lr} + ldr r0, _0203330C ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033308 + mov r0, #0x1 + bl sub_020166B8 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_020334E8 + ldr r0, _0203330C ; =0x021C5A00 + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _0203330C ; =0x021C5A00 + mov r1, #0x0 + str r1, [r0, #0x0] + mov r0, #0xf + bl sub_020168D0 +_02033308: + pop {r3, pc} + nop +_0203330C: .word 0x021C5A00 + + thumb_func_start sub_02033310 +sub_02033310: ; 0x02033310 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02033360 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0203335E + mov r1, #0xf + add r2, r1, #0x0 + mov r0, #0x3 + add r2, #0xf1 + bl sub_02016828 + mov r0, #0xf + mov r1, #0x50 + bl sub_02016998 + ldr r1, _02033360 ; =0x021C5A00 + mov r2, #0x50 + str r0, [r1, #0x0] + mov r1, #0x0 + blx sub_020CE34C + ldr r0, _02033360 ; =0x021C5A00 + mov r2, #0x19 + ldr r1, [r0, #0x0] + add r1, #0x3f + strb r2, [r1, #0x0] + ldr r2, [r0, #0x0] + mov r1, #0x1 + add r2, #0x46 + strb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + str r4, [r0, #0x28] + mov r0, #0x0 + bl sub_020334E8 + mov r0, #0x1 + bl sub_020166A8 +_0203335E: + pop {r4, pc} + .balign 4 +_02033360: .word 0x021C5A00 + + thumb_func_start sub_02033364 +sub_02033364: ; 0x02033364 + push {r3, lr} + ldr r0, _02033394 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033390 + mov r0, #0x1 + bl sub_020166B8 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_020334E8 + ldr r0, _02033394 ; =0x021C5A00 + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _02033394 ; =0x021C5A00 + mov r1, #0x0 + str r1, [r0, #0x0] + mov r0, #0xf + bl sub_020168D0 +_02033390: + pop {r3, pc} + nop +_02033394: .word 0x021C5A00 + + thumb_func_start sub_02033398 +sub_02033398: ; 0x02033398 + push {r3, lr} + sub sp, #0x8 + ldr r0, _020333EC ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020333AA + add sp, #0x8 + mov r0, #0x0 + pop {r3, pc} +_020333AA: + add r0, #0x3f + ldrb r0, [r0, #0x0] + cmp r0, #0x18 + bne _020333C8 + add r0, sp, #0x4 + add r1, sp, #0x0 + blx sub_021DD718 + cmp r0, #0x0 + beq _020333E4 + blx sub_021DD6F0 + add sp, #0x8 + mov r0, #0x1 + pop {r3, pc} +_020333C8: + cmp r0, #0x19 + bne _020333E4 + add r0, sp, #0x4 + add r1, sp, #0x0 + blx sub_021DD718 + cmp r0, #0x0 + beq _020333E4 + ldr r0, [sp, #0x0] + cmp r0, #0x7 + bne _020333E4 + add sp, #0x8 + mov r0, #0x1 + pop {r3, pc} +_020333E4: + mov r0, #0x0 + add sp, #0x8 + pop {r3, pc} + nop +_020333EC: .word 0x021C5A00 +_020333F0: + .byte 0x08, 0xB5, 0xA4, 0xF1, 0x5B, 0xF9, 0x00, 0x28, 0x06, 0xDA, 0xFF, 0xF7, 0x91, 0xFD, 0x05, 0x48 + .byte 0x00, 0x21, 0xFE, 0xF7, 0x8D, 0xFC, 0x08, 0xBD, 0x03, 0xDD, 0x03, 0x48, 0x00, 0x21, 0xFE, 0xF7 + .byte 0x87, 0xFC, 0x08, 0xBD, 0x8D, 0x2E, 0x03, 0x02, 0x61, 0x30, 0x03, 0x02, 0x08, 0xB5, 0xFB, 0xF7 + .byte 0x53, 0xF8, 0x00, 0x28, 0x1B, 0xD0, 0x31, 0x21, 0x03, 0x20, 0x0A, 0x03, 0xE3, 0xF7, 0xFC, 0xF9 + .byte 0x01, 0x20, 0x01, 0x1C, 0x42, 0x02, 0x03, 0x1C, 0xFC, 0xF7, 0x6E, 0xFA, 0x00, 0x28, 0x0E, 0xD0 + .byte 0x07, 0x48, 0x31, 0x21, 0x00, 0x68, 0x80, 0x6A, 0xA4, 0xF1, 0x4A, 0xF8, 0x05, 0x48, 0xA4, 0xF1 + .byte 0xAB, 0xFF, 0xFC, 0xF7, 0xDD, 0xFA, 0x04, 0x48, 0x00, 0x21, 0xFE, 0xF7, 0x61, 0xFC, 0x08, 0xBD + .byte 0x00, 0x5A, 0x1C, 0x02, 0xD1, 0x35, 0x03, 0x02, 0xF1, 0x33, 0x03, 0x02, 0x38, 0xB5, 0x05, 0x1C + .byte 0x0C, 0x1C, 0xF0, 0xF7, 0x3F, 0xFA, 0xFD, 0xF7, 0x63, 0xFD, 0x00, 0x28, 0x01, 0xD0, 0x00, 0x20 + .byte 0x38, 0xBD, 0x01, 0x20, 0xE3, 0xF7, 0x10, 0xF9, 0x11, 0x4A, 0x03, 0x20, 0x0F, 0x21, 0xE3, 0xF7 + .byte 0xCB, 0xF9, 0x28, 0x1C, 0x17, 0x21, 0xFE, 0xF7, 0x4D, 0xF9, 0x0F, 0x20, 0x21, 0x1C, 0xE3, 0xF7 + .byte 0x7B, 0xFA, 0x0C, 0x49, 0x0A, 0x68, 0x10, 0x60, 0x08, 0x68, 0x00, 0x21, 0x00, 0x68, 0x22, 0x1C + .byte 0x9A, 0xF0, 0x4C, 0xEF, 0x07, 0x48, 0x00, 0x21, 0x02, 0x68, 0x40, 0x32, 0x11, 0x70, 0x00, 0x68 + .byte 0x85, 0x62, 0x05, 0x48, 0xFE, 0xF7, 0x2C, 0xFC, 0x02, 0x48, 0x00, 0x68, 0x00, 0x68, 0x38, 0xBD + .byte 0x80, 0x70, 0x00, 0x00, 0x00, 0x5A, 0x1C, 0x02, 0x1D, 0x34, 0x03, 0x02, 0x01, 0x48, 0x00, 0x68 + .byte 0x00, 0x68, 0x70, 0x47, 0x00, 0x5A, 0x1C, 0x02 + + thumb_func_start sub_020334E8 +sub_020334E8: ; 0x020334E8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0203350C ; =0x021C5A00 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020334FE + add r2, #0x44 + strb r4, [r2, #0x0] + ldr r0, [r0, #0x0] + add r0, #0x45 + strb r1, [r0, #0x0] +_020334FE: + add r0, r4, #0x0 + bl sub_0202EE84 + add r0, r4, #0x0 + bl sub_0202EEB0 + pop {r4, pc} + .balign 4 +_0203350C: .word 0x021C5A00 + + thumb_func_start sub_02033510 +sub_02033510: ; 0x02033510 + ldr r0, _02033530 ; =0x021C5A00 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0203352C + add r0, r1, #0x0 + add r0, #0x4e + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033526 + mov r0, #0x1 + bx lr +_02033526: + add r1, #0x45 + ldrb r0, [r1, #0x0] + bx lr +_0203352C: + mov r0, #0x0 + bx lr + .balign 4 +_02033530: .word 0x021C5A00 + + thumb_func_start sub_02033534 +sub_02033534: ; 0x02033534 + ldr r0, _02033548 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033542 + add r0, #0x3f + ldrb r0, [r0, #0x0] + bx lr +_02033542: + mov r0, #0x1 + bx lr + nop +_02033548: .word 0x021C5A00 + + thumb_func_start sub_0203354C +sub_0203354C: ; 0x0203354C + ldr r0, _02033560 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0203355A + add r0, #0x40 + ldrb r0, [r0, #0x0] + bx lr +_0203355A: + mov r0, #0x0 + bx lr + nop +_02033560: .word 0x021C5A00 + + thumb_func_start sub_02033564 +sub_02033564: ; 0x02033564 + ldr r1, _02033570 ; =0x021C5A00 + ldr r3, _02033574 ; =sub_020CE3E0 + ldr r1, [r1, #0x0] + mov r2, #0x6 + add r1, r1, #0x4 + bx r3 + .balign 4 +_02033570: .word 0x021C5A00 +_02033574: .word sub_020CE3E0 + + thumb_func_start sub_02033578 +sub_02033578: ; 0x02033578 + add r1, r0, #0x0 + ldr r0, _02033588 ; =0x021C5A00 + ldr r3, _0203358C ; =sub_020CE3E0 + ldr r0, [r0, #0x0] + mov r2, #0x6 + add r0, r0, #0x4 + bx r3 + nop +_02033588: .word 0x021C5A00 +_0203358C: .word sub_020CE3E0 + + thumb_func_start sub_02033590 +sub_02033590: ; 0x02033590 + push {r3, lr} + bl sub_02033534 + cmp r0, #0x13 + blt _0203359E + mov r0, #0x1 + pop {r3, pc} +_0203359E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020335A4 +sub_020335A4: ; 0x020335A4 + ldr r1, _020335B4 ; =0x021C5A00 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _020335B0 + add r1, #0x47 + strb r0, [r1, #0x0] +_020335B0: + bx lr + nop +_020335B4: .word 0x021C5A00 + + thumb_func_start sub_020335B8 +sub_020335B8: ; 0x020335B8 + ldr r0, _020335CC ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020335C6 + add r0, #0x47 + ldrb r0, [r0, #0x0] + bx lr +_020335C6: + mov r0, #0x0 + bx lr + nop +_020335CC: .word 0x021C5A00 + + thumb_func_start sub_020335D0 +sub_020335D0: ; 0x020335D0 + push {r3, lr} + add r2, r0, #0x0 + mov r0, #0x0 + mov r1, #0x1 + bl sub_02033F70 +_020335DC: + b _020335DC + .balign 4 + + thumb_func_start sub_020335E0 +sub_020335E0: ; 0x020335E0 + push {r3, lr} + mov r0, #0x0 + mov r1, #0x4 + add r2, r0, #0x0 + bl sub_02033F70 +_020335EC: + b _020335EC + .balign 4 + + thumb_func_start sub_020335F0 +sub_020335F0: ; 0x020335F0 + bx lr + .balign 4 + + thumb_func_start sub_020335F4 +sub_020335F4: ; 0x020335F4 + push {r3, lr} + bl sub_02033510 + cmp r0, #0x0 + beq _0203366C + bl sub_020311F0 + cmp r0, #0x0 + bne _02033622 + bl sub_02033250 + cmp r0, #0x0 + bne _02033622 + bl sub_02033398 + cmp r0, #0x0 + bne _02033622 + ldr r0, _02033670 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x4e + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0203366C +_02033622: + bl sub_020335B8 + cmp r0, #0x0 + bne _0203366C + bl sub_0200541C + ldr r0, _02033670 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl sub_0202287C + ldr r1, _02033674 ; =0x021C4918 + mov r0, #0x1 + strb r0, [r1, #0x4] + ldr r1, _02033670 ; =0x021C5A00 + ldr r2, [r1, #0x0] + add r1, r2, #0x0 + add r1, #0x4e + ldrb r1, [r1, #0x0] + cmp r1, #0x3 + bne _02033654 + mov r0, #0x3 + bl sub_020335A4 + pop {r3, pc} +_02033654: + add r2, #0x3f + ldrb r1, [r2, #0x0] + cmp r1, #0x19 + beq _02033660 + cmp r1, #0xf + bne _02033668 +_02033660: + mov r0, #0x2 + bl sub_020335A4 + pop {r3, pc} +_02033668: + bl sub_020335A4 +_0203366C: + pop {r3, pc} + nop +_02033670: .word 0x021C5A00 +_02033674: .word 0x021C4918 + + thumb_func_start sub_02033678 +sub_02033678: ; 0x02033678 + push {r3, lr} + bl sub_0202EDD8 + cmp r0, #0x0 + bne _0203368A + bl sub_02031810 + cmp r0, #0x0 + bne _0203368E +_0203368A: + mov r0, #0x1 + pop {r3, pc} +_0203368E: + bl sub_0202E344 + cmp r0, #0x0 + bne _0203369A + mov r0, #0x1 + pop {r3, pc} +_0203369A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020336A0 +sub_020336A0: ; 0x020336A0 + push {r3, lr} + ldr r1, _020336BC ; =0x021C5A00 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _020336B6 + add r1, #0x4e + strb r0, [r1, #0x0] + bl sub_02031468 + mov r0, #0x1 + pop {r3, pc} +_020336B6: + mov r0, #0x0 + pop {r3, pc} + nop +_020336BC: .word 0x021C5A00 + + thumb_func_start sub_020336C0 +sub_020336C0: ; 0x020336C0 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020336C8 +sub_020336C8: ; 0x020336C8 + push {r4-r6, lr} + add r4, r2, #0x0 + add r6, r1, #0x0 + ldr r1, [r4, #0x0] + add r5, r0, #0x0 + cmp r1, #0x6 + bhi _02033774 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0 + lsl r0, r3, #0 + lsl r0, r6, #0 + lsl r6, r2, #0x1 + lsl r6, r4, #0x1 + lsl r6, r0, #0x2 + lsl r4, r1, #0x2 + mov r0, #0x6f + bl sub_02031588 + mov r0, #0x1 + str r0, [r4, #0x0] + b _02033774 +_020336FC: + .byte 0x6F, 0x20, 0xFD, 0xF7 + .byte 0x6B, 0xFF, 0x00, 0x28, 0x36, 0xD0, 0x28, 0x1C, 0x31, 0x1C, 0xEF, 0xF7, 0x99, 0xF8, 0x02, 0x20 + .byte 0x20, 0x60, 0x2F, 0xE0, 0xEF, 0xF7, 0x9E, 0xF8, 0x05, 0x1C, 0x02, 0x2D, 0x01, 0xD1, 0xED, 0xF7 + .byte 0x85, 0xFA, 0x03, 0x2D, 0x01, 0xD1, 0xED, 0xF7, 0x81, 0xFA, 0x01, 0x2D, 0x22, 0xD1, 0x03, 0x20 + .byte 0x20, 0x60, 0x70, 0x20, 0xFD, 0xF7, 0x28, 0xFF, 0x1C, 0xE0, 0x70, 0x20, 0xFD, 0xF7, 0x4C, 0xFF + .byte 0x00, 0x28, 0x17, 0xD0, 0x04, 0x20, 0x20, 0x60, 0x14, 0xE0, 0xEF, 0xF7, 0x83, 0xF8, 0x05, 0x1C + .byte 0x03, 0x2D, 0x01, 0xD1, 0xED, 0xF7, 0x6A, 0xFA, 0x01, 0x2D, 0x01, 0xD1, 0xED, 0xF7, 0x66, 0xFA + .byte 0x02, 0x2D, 0x07, 0xD1, 0x05, 0x20, 0x20, 0x60, 0x04, 0xE0, 0x06, 0x20, 0x20, 0x60, 0x01, 0xE0 + .byte 0x01, 0x20, 0x70, 0xBD +_02033774: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02033778 +sub_02033778: ; 0x02033778 + push {r3-r7, lr} + str r0, [sp, #0x0] + bl sub_02030F20 + add r7, r0, #0x0 + mov r0, #0x0 + bl sub_0202DFA4 + cmp r0, #0x0 + beq _020337C6 + mov r5, #0x0 + cmp r7, #0x0 + ble _020337C6 +_02033792: + bl sub_02031190 + cmp r5, r0 + beq _020337C0 + add r0, r5, #0x0 + bl sub_0202E020 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0202E044 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0202DFA4 + bl sub_02023A70 + add r3, r0, #0x0 + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020337C8 +_020337C0: + add r5, r5, #0x1 + cmp r5, r7 + blt _02033792 +_020337C6: + pop {r3-r7, pc} + + thumb_func_start sub_020337C8 +sub_020337C8: ; 0x020337C8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02029B40 + cmp r0, #0x0 + bne _020337E4 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + mov r3, #0x1 + bl sub_02029B90 +_020337E4: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020337E8 +sub_020337E8: ; 0x020337E8 + push {r3-r5, lr} + mov r1, #0x72 + lsl r1, r1, #0x4 + bl sub_02016998 + add r4, r0, #0x0 + add r0, #0x1f + mov r1, #0x1f + bic r0, r1 + blx sub_02096B14 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203380C +sub_0203380C: ; 0x0203380C + push {r4, lr} + bl sub_02028228 + add r4, r0, #0x0 + blx sub_02096FB0 + cmp r0, #0x0 + bne _0203382A + ldr r1, _0203382C ; =0x4144414A + add r0, r4, #0x0 + blx sub_02096FF4 + add r0, r4, #0x0 + blx sub_02096E90 +_0203382A: + pop {r4, pc} + .balign 4 +_0203382C: .word 0x4144414A + + thumb_func_start sub_02033830 +sub_02033830: ; 0x02033830 + push {r3-r4, lr} + sub sp, #0xc + bl sub_02028228 + add r4, r0, #0x0 + add r1, sp, #0x0 + blx sub_02096CCC + add r0, r4, #0x0 + add r1, sp, #0x0 + blx sub_02096DA0 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_0203384C +sub_0203384C: ; 0x0203384C + push {r4, lr} + bl sub_020286EC + bl sub_02028228 + add r4, r0, #0x0 + blx sub_02096F80 + cmp r0, #0x0 + beq _0203386E + add r0, r4, #0x0 + blx sub_02096F18 + cmp r0, #0x0 + beq _0203386E + mov r0, #0x1 + pop {r4, pc} +_0203386E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02033874 +sub_02033874: ; 0x02033874 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r5, r1, #0x0 + str r2, [sp, #0x0] + bl sub_020286EC + bl sub_02028228 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020286EC + mov r1, #0x0 + bl sub_0202838C + add r4, r0, #0x0 + mov r1, #0x0 + ldr r0, [sp, #0x0] + mvn r1, r1 + str r1, [r0, #0x0] + add r0, r5, #0x0 + blx sub_0209700C + cmp r0, #0x0 + bne _020338AE + add sp, #0x8 + mov r0, #0x3 + pop {r3-r7, pc} +_020338AE: + mov r7, #0x0 +_020338B0: + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_02096B78 + cmp r0, #0x0 + beq _020338C6 + ldr r0, [sp, #0x0] + add sp, #0x8 + str r7, [r0, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} +_020338C6: + add r0, r6, #0x0 + add r1, r5, #0x0 + blx sub_02096DA0 + cmp r0, #0x0 + ble _020338F4 + add r0, r6, #0x0 + add r1, r5, #0x0 + blx sub_02096DA0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + add r1, r4, #0x0 + blx sub_02096DA0 + ldr r1, [sp, #0x4] + cmp r1, r0 + bne _020338F4 + ldr r0, [sp, #0x0] + add sp, #0x8 + str r7, [r0, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} +_020338F4: + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bge _0203390A + add r0, r4, #0x0 + blx sub_0209700C + cmp r0, #0x0 + bne _0203390A + ldr r0, [sp, #0x0] + str r7, [r0, #0x0] +_0203390A: + add r7, r7, #0x1 + add r4, #0xc + cmp r7, #0x20 + blt _020338B0 + mov r0, #0x2 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02033918 +sub_02033918: ; 0x02033918 + push {r3-r7, lr} + sub sp, #0x18 + add r4, r0, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r6, r3, #0x0 + bl sub_020286EC + bl sub_02028228 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_020286EC + mov r1, #0x0 + bl sub_0202838C + add r5, r0, #0x0 + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, r7, #0x0 + blx sub_020973B4 + cmp r0, #0x0 + bne _02033950 + add sp, #0x18 + mov r0, #0x3 + pop {r3-r7, pc} +_02033950: + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, sp, #0xc + blx sub_02096D2C + add r0, r7, #0x0 + add r1, sp, #0xc + blx sub_02096DA0 + cmp r0, #0x0 + bgt _0203396C + add sp, #0x18 + mov r0, #0x3 + pop {r3-r7, pc} +_0203396C: + mov r0, #0x0 + mvn r0, r0 + str r0, [r6, #0x0] + mov r4, #0x0 +_02033974: + add r0, r7, #0x0 + add r1, sp, #0xc + blx sub_02096DA0 + str r0, [sp, #0x8] + add r0, r7, #0x0 + add r1, r5, #0x0 + blx sub_02096DA0 + ldr r1, [sp, #0x8] + cmp r1, r0 + bne _02033994 + add sp, #0x18 + str r4, [r6, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} +_02033994: + ldr r0, [r6, #0x0] + cmp r0, #0x0 + bge _020339A6 + add r0, r5, #0x0 + blx sub_0209700C + cmp r0, #0x0 + bne _020339A6 + str r4, [r6, #0x0] +_020339A6: + add r4, r4, #0x1 + add r5, #0xc + cmp r4, #0x20 + blt _02033974 + mov r0, #0x2 + add sp, #0x18 + pop {r3-r7, pc} + + thumb_func_start sub_020339B4 +sub_020339B4: ; 0x020339B4 + push {r4-r7, lr} + sub sp, #0x14 + add r6, r1, #0x0 + mov r1, #0x0 + add r5, r0, #0x0 + str r2, [sp, #0x4] + str r1, [sp, #0xc] + bl sub_020286EC + mov r1, #0x0 + bl sub_0202838C + str r0, [sp, #0x8] + mov r4, #0x0 + bl sub_02030F20 + cmp r0, #0x0 + ble _02033A68 +_020339D8: + bl sub_02031190 + cmp r4, r0 + beq _02033A5C + add r0, r4, #0x0 + bl sub_0202DFD8 + add r7, r0, #0x0 + beq _02033A5C + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, sp, #0x10 + bl sub_02033874 + str r0, [r6, #0x0] + cmp r0, #0x3 + bne _020339FE + bl sub_02020C2C +_020339FE: + ldr r0, [r6, #0x0] + cmp r0, #0x0 + bne _02033A1C + mov r0, #0x2 + str r0, [sp, #0x0] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02033A70 + add r0, r5, #0x0 + bl sub_0202E1BC + b _02033A5C +_02033A1C: + cmp r0, #0x1 + bne _02033A54 + bl sub_02033590 + cmp r0, #0x0 + bne _02033A5C + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02033A70 + ldr r2, [sp, #0x10] + mov r1, #0xc + add r3, r2, #0x0 + mul r3, r1 + ldr r1, [sp, #0x8] + add r0, r7, #0x0 + add r1, r1, r3 + mov r2, #0xc + blx sub_020CE3E0 + add r0, r5, #0x0 + bl sub_0202E1BC + b _02033A5C +_02033A54: + cmp r0, #0x2 + bne _02033A5C + mov r0, #0x1 + str r0, [sp, #0xc] +_02033A5C: + add r6, r6, #0x4 + add r4, r4, #0x1 + bl sub_02030F20 + cmp r4, r0 + blt _020339D8 +_02033A68: + ldr r0, [sp, #0xc] + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02033A70 +sub_02033A70: ; 0x02033A70 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r2, #0x0 + str r0, [sp, #0x0] + add r7, r1, #0x0 + str r3, [sp, #0x4] + bl sub_020286EC + add r1, r5, #0x0 + add r4, r0, #0x0 + bl sub_0202838C + str r0, [sp, #0x8] + add r0, r7, #0x0 + bl sub_0202DFA4 + add r6, r0, #0x0 + ldr r0, [sp, #0x28] + cmp r0, #0x2 + beq _02033AA6 + add r0, r7, #0x0 + bl sub_0202DFD8 + ldr r1, [sp, #0x8] + mov r2, #0xc + blx sub_020CE3E0 +_02033AA6: + ldr r0, [sp, #0x28] + cmp r0, #0x0 + bne _02033AEC + ldr r1, [sp, #0x4] + add r0, r6, #0x0 + bl sub_020239A0 + str r0, [sp, #0xc] + ldr r2, [sp, #0xc] + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_020283C0 + ldr r0, [sp, #0xc] + bl sub_02021A20 + add r0, r6, #0x0 + bl sub_020239CC + add r3, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x8 + bl sub_020282E8 + add r0, r6, #0x0 + bl sub_020239BC + add r3, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x0 + bl sub_020282E8 + b _02033B22 +_02033AEC: + cmp r0, #0x1 + bne _02033B22 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x8 + bl sub_0202822C + cmp r0, #0x2 + bne _02033B22 + add r0, r6, #0x0 + bl sub_020239CC + add r3, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x8 + bl sub_020282E8 + add r0, r6, #0x0 + bl sub_020239BC + add r3, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x0 + bl sub_020282E8 +_02033B22: + ldr r1, [sp, #0x4] + mov r0, #0x78 + bl sub_020219F4 + str r0, [sp, #0x10] + add r0, r7, #0x0 + bl sub_0202DFFC + add r1, r0, #0x0 + ldr r0, [sp, #0x10] + bl sub_02021E28 + ldr r2, [sp, #0x10] + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02028404 + ldr r0, [sp, #0x10] + bl sub_02021A20 + add r0, r6, #0x0 + bl sub_02023A28 + add r3, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x7 + bl sub_020282E8 + ldr r0, [sp, #0x0] + bl sub_0202E1BC + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02033B68 +sub_02033B68: ; 0x02033B68 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r2, #0x0 + mov r2, #0x7 + add r6, r3, #0x0 + ldr r1, [sp, #0x10] + mov r0, #0x1 + lsl r2, r2, #0x6 + add r3, r4, #0x0 + bl sub_02033D3C + ldr r1, [sp, #0x10] + mov r0, #0x1 + add r2, r4, #0x0 + bl sub_02033D9C + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_020169D8 + add r4, r0, #0x0 + ldr r0, _02033BC4 ; =sub_02033BC8 + add r1, r4, #0x0 + mov r2, #0x5 + bl sub_0200CA98 + str r0, [r4, #0x18] + strh r5, [r4, #0xc] + strh r6, [r4, #0xe] + mov r1, #0x0 + str r1, [r4, #0x0] + mov r0, #0x3 + str r0, [r4, #0x4] + ldr r0, [sp, #0x14] + str r0, [r4, #0x14] + ldr r0, [sp, #0x10] + str r1, [r4, #0x8] + strb r0, [r4, #0x10] + strb r1, [r4, #0x12] + mov r0, #0x7 + strb r1, [r4, #0x11] + lsl r0, r0, #0x18 + str r0, [r4, #0x1c] + add r0, r4, #0x0 + pop {r4-r6, pc} + nop +_02033BC4: .word sub_02033BC8 + 1 + + thumb_func_start sub_02033BC8 +sub_02033BC8: ; 0x02033BC8 + push {r3-r7, lr} + add r5, r1, #0x0 + ldrb r0, [r5, #0x11] + cmp r0, #0x1 + beq _02033BD8 + cmp r0, #0x2 + beq _02033BEE + b _02033C04 +_02033BD8: + ldr r0, _02033CB0 ; =0x04000304 + ldrh r1, [r0, #0x0] + lsr r0, r0, #0xb + and r0, r1 + asr r0, r0, #0xf + cmp r0, #0x1 + bne _02033BEA + mov r6, #0x1 + b _02033C06 +_02033BEA: + mov r6, #0x2 + b _02033C06 +_02033BEE: + ldr r0, _02033CB0 ; =0x04000304 + ldrh r1, [r0, #0x0] + lsr r0, r0, #0xb + and r0, r1 + asr r0, r0, #0xf + cmp r0, #0x1 + bne _02033C00 + mov r6, #0x2 + b _02033C06 +_02033C00: + mov r6, #0x1 + b _02033C06 +_02033C04: + mov r6, #0x1 +_02033C06: + ldr r4, [r5, #0x4] + cmp r6, #0x1 + bne _02033C1E + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + ldr r0, _02033CB4 ; =0x00300010 + add r7, r1, #0x0 + and r7, r0 + blx sub_020C5DBC + b _02033C2C +_02033C1E: + ldr r0, _02033CB8 ; =0x04001000 + ldr r1, [r0, #0x0] + ldr r0, _02033CB4 ; =0x00300010 + add r7, r1, #0x0 + and r7, r0 + blx sub_020C5D4C +_02033C2C: + cmp r7, #0x10 + beq _02033C38 + ldr r1, _02033CBC ; =0x00200010 + cmp r7, r1 + beq _02033C54 + b _02033C6C +_02033C38: + cmp r0, #0x40 + beq _02033C40 + cmp r0, #0x20 + bne _02033C4A +_02033C40: + mov r0, #0x1f + lsl r1, r4, #0x2 + lsl r0, r0, #0x4 + add r1, r1, r0 + b _02033C74 +_02033C4A: + mov r0, #0x3f + lsl r1, r4, #0x2 + lsl r0, r0, #0x4 + add r1, r1, r0 + b _02033C74 +_02033C54: + cmp r0, #0x30 + beq _02033C5C + cmp r0, #0x50 + bne _02033C64 +_02033C5C: + mov r0, #0x9f + lsl r0, r0, #0x2 + add r1, r4, r0 + b _02033C74 +_02033C64: + mov r0, #0xff + lsl r0, r0, #0x2 + add r1, r4, r0 + b _02033C74 +_02033C6C: + mov r0, #0xfe + lsl r1, r4, #0x1 + lsl r0, r0, #0x2 + add r1, r1, r0 +_02033C74: + cmp r6, #0x1 + bne _02033C7E + mov r2, #0x7 + lsl r2, r2, #0x18 + b _02033C80 +_02033C7E: + ldr r2, _02033CC0 ; =0x07000400 +_02033C80: + ldrh r3, [r5, #0xe] + ldrh r0, [r5, #0xc] + lsl r3, r3, #0x18 + lsr r4, r3, #0x18 + mov r3, #0x1 + lsl r0, r0, #0x17 + lsl r3, r3, #0x1e + lsr r0, r0, #0x7 + orr r3, r4 + orr r0, r3 + str r0, [r2, #0x0] + mov r0, #0xe + lsl r0, r0, #0xc + orr r0, r1 + strh r0, [r2, #0x4] + ldr r1, [r5, #0x1c] + cmp r2, r1 + beq _02033CAE + ldr r0, _02033CC4 ; =0x40000200 + str r0, [r1, #0x0] + mov r0, #0x0 + strh r0, [r1, #0x4] + str r2, [r5, #0x1c] +_02033CAE: + pop {r3-r7, pc} + .balign 4 +_02033CB0: .word 0x04000304 +_02033CB4: .word 0x00300010 +_02033CB8: .word 0x04001000 +_02033CBC: .word 0x00200010 +_02033CC0: .word 0x07000400 +_02033CC4: .word 0x40000200 + + thumb_func_start sub_02033CC8 +sub_02033CC8: ; 0x02033CC8 + cmp r1, #0x4 + bge _02033CD2 + str r1, [r0, #0x4] + mov r1, #0x0 + str r1, [r0, #0x8] +_02033CD2: + bx lr + + thumb_func_start sub_02033CD4 +sub_02033CD4: ; 0x02033CD4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x18] + bl sub_0200CAB4 + mov r0, #0x7 + ldr r2, _02033D00 ; =0x40000200 + lsl r0, r0, #0x18 + str r2, [r0, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x4] + ldrb r0, [r4, #0x12] + cmp r0, #0x0 + beq _02033CF6 + ldr r0, _02033D04 ; =0x07000400 + str r2, [r0, #0x0] + strh r1, [r0, #0x4] +_02033CF6: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + nop +_02033D00: .word 0x40000200 +_02033D04: .word 0x07000400 + + thumb_func_start sub_02033D08 +sub_02033D08: ; 0x02033D08 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r2, #0x7 + ldrb r1, [r5, #0x10] + mov r0, #0x2 + lsl r2, r2, #0x6 + add r3, r6, #0x0 + bl sub_02033D3C + ldrb r1, [r5, #0x10] + mov r0, #0x2 + add r2, r6, #0x0 + bl sub_02033D9C + cmp r4, #0x0 + beq _02033D30 + mov r0, #0x1 + b _02033D32 +_02033D30: + mov r0, #0x2 +_02033D32: + strb r0, [r5, #0x11] + mov r0, #0x1 + strb r0, [r5, #0x12] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02033D3C +sub_02033D3C: ; 0x02033D3C + push {r3-r5, lr} + sub sp, #0x8 + mov r1, #0x96 + add r5, r0, #0x0 + add r0, r3, #0x0 + lsl r1, r1, #0x2 + add r4, r2, #0x0 + bl sub_020169D8 + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _02033D92 + ldr r0, _02033D98 ; =0x02105D88 + add r1, sp, #0x4 + bl sub_020161F8 + mov r1, #0x96 + ldr r0, [sp, #0x4] + lsl r1, r1, #0x2 + blx sub_020CC15C + ldr r0, [sp, #0x4] + add r1, sp, #0x0 + blx sub_020B0138 + cmp r5, #0x1 + bne _02033D80 + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0xc] + mov r2, #0x20 + blx sub_020C9480 + b _02033D8C +_02033D80: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0xc] + mov r2, #0x20 + blx sub_020C9418 +_02033D8C: + ldr r0, [sp, #0x4] + bl sub_02016A18 +_02033D92: + add sp, #0x8 + pop {r3-r5, pc} + nop +_02033D98: .word 0x02105D88 + + thumb_func_start sub_02033D9C +sub_02033D9C: ; 0x02033D9C + push {r3-r5, lr} + sub sp, #0x8 + add r4, r1, #0x0 + mov r1, #0x96 + add r5, r0, #0x0 + add r0, r2, #0x0 + lsl r1, r1, #0x2 + bl sub_020169D8 + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _02033E58 + cmp r4, #0x0 + add r1, sp, #0x4 + beq _02033DC2 + ldr r0, _02033E5C ; =0x02105D98 + bl sub_020161F8 + b _02033DC8 +_02033DC2: + ldr r0, _02033E60 ; =0x02105DA8 + bl sub_020161F8 +_02033DC8: + mov r1, #0x96 + ldr r0, [sp, #0x4] + lsl r1, r1, #0x2 + blx sub_020CC15C + ldr r0, [sp, #0x4] + add r1, sp, #0x0 + blx sub_020B0088 + cmp r5, #0x1 + bne _02033DF0 + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + ldr r0, _02033E64 ; =0x00300010 + add r4, r1, #0x0 + and r4, r0 + blx sub_020C5DBC + b _02033E00 +_02033DF0: + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + ldr r0, _02033E64 ; =0x00300010 + add r4, r1, #0x0 + and r4, r0 + blx sub_020C5DBC +_02033E00: + cmp r4, #0x10 + beq _02033E0C + ldr r1, _02033E68 ; =0x00200010 + cmp r4, r1 + beq _02033E20 + b _02033E30 +_02033E0C: + cmp r0, #0x40 + beq _02033E14 + cmp r0, #0x20 + bne _02033E1A +_02033E14: + mov r1, #0x3e + lsl r1, r1, #0x8 + b _02033E34 +_02033E1A: + mov r1, #0x7e + lsl r1, r1, #0x8 + b _02033E34 +_02033E20: + cmp r0, #0x30 + beq _02033E28 + cmp r0, #0x50 + bne _02033E2C +_02033E28: + ldr r1, _02033E6C ; =0x00013E00 + b _02033E34 +_02033E2C: + ldr r1, _02033E70 ; =0x0001FE00 + b _02033E34 +_02033E30: + mov r1, #0xfe + lsl r1, r1, #0x8 +_02033E34: + cmp r5, #0x1 + bne _02033E46 + ldr r0, [sp, #0x0] + mov r2, #0x2 + ldr r0, [r0, #0x14] + lsl r2, r2, #0x8 + blx sub_020C92F4 + b _02033E52 +_02033E46: + ldr r0, [sp, #0x0] + mov r2, #0x2 + ldr r0, [r0, #0x14] + lsl r2, r2, #0x8 + blx sub_020C9294 +_02033E52: + ldr r0, [sp, #0x4] + bl sub_02016A18 +_02033E58: + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02033E5C: .word 0x02105D98 +_02033E60: .word 0x02105DA8 +_02033E64: .word 0x00300010 +_02033E68: .word 0x00200010 +_02033E6C: .word 0x00013E00 +_02033E70: .word 0x0001FE00 + + thumb_func_start sub_02033E74 +sub_02033E74: ; 0x02033E74 + push {r4, lr} + mov r4, #0x0 + bl sub_02033590 + cmp r0, #0x0 + beq _02033E82 + mov r4, #0x1 +_02033E82: + mov r0, #0xf0 + mov r1, #0x0 + add r2, r4, #0x0 + bl sub_02033E90 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02033E90 +sub_02033E90: ; 0x02033E90 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + bl sub_0202E4DC + cmp r0, #0x0 + beq _02033EC4 + ldr r0, _02033EC8 ; =0x021C5A04 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033EAE + bl sub_02033ED0 +_02033EAE: + ldr r0, _02033ECC ; =0x02105D74 + str r4, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x5b + add r2, r5, #0x0 + add r3, r6, #0x0 + bl sub_02033B68 + ldr r1, _02033EC8 ; =0x021C5A04 + str r0, [r1, #0x0] +_02033EC4: + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_02033EC8: .word 0x021C5A04 +_02033ECC: .word 0x02105D74 + + thumb_func_start sub_02033ED0 +sub_02033ED0: ; 0x02033ED0 + push {r3, lr} + ldr r0, _02033EE8 ; =0x021C5A04 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033EE4 + bl sub_02033CD4 + ldr r0, _02033EE8 ; =0x021C5A04 + mov r1, #0x0 + str r1, [r0, #0x0] +_02033EE4: + pop {r3, pc} + nop +_02033EE8: .word 0x021C5A04 + + thumb_func_start sub_02033EEC +sub_02033EEC: ; 0x02033EEC + push {r3, lr} + add r1, r0, #0x0 + ldr r0, _02033F00 ; =0x021C5A04 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033EFC + bl sub_02033CC8 +_02033EFC: + pop {r3, pc} + nop +_02033F00: .word 0x021C5A04 + + thumb_func_start sub_02033F04 +sub_02033F04: ; 0x02033F04 + push {r3, lr} + add r3, r0, #0x0 + ldr r0, _02033F1C ; =0x021C5A04 + add r2, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033F18 + add r1, r3, #0x0 + bl sub_02033D08 +_02033F18: + pop {r3, pc} + nop +_02033F1C: .word 0x021C5A04 + + thumb_func_start sub_02033F20 +sub_02033F20: ; 0x02033F20 + push {r3, lr} + bl sub_02030F40 + cmp r0, #0x0 + beq _02033F40 + bl sub_02030F20 + cmp r0, #0x1 + bgt _02033F3A + bl sub_02033590 + cmp r0, #0x0 + beq _02033F4C +_02033F3A: + bl sub_02033E74 + pop {r3, pc} +_02033F40: + bl sub_02033590 + cmp r0, #0x0 + beq _02033F4C + bl sub_02033E74 +_02033F4C: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02033F50 +sub_02033F50: ; 0x02033F50 + ldr r3, _02033F64 ; =0x027E0000 + ldr r1, _02033F68 ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + ldr r3, _02033F6C ; =sub_020CDA1C + mov r0, #0x3 + bx r3 + nop +_02033F64: .word 0x027E0000 +_02033F68: .word 0x00003FF8 +_02033F6C: .word sub_020CDA1C + + thumb_func_start sub_02033F70 +sub_02033F70: ; 0x02033F70 + push {r3-r7, lr} + sub sp, #0x28 + add r4, r0, #0x0 + str r2, [sp, #0xc] + cmp r1, #0x4 + bhi _02033F92 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r4, r1, #0 + lsl r0, r2, #0 + lsl r4, r2, #0 + lsl r0, r3, #0 +_02033F92: + mov r5, #0x1 + b _02033FA4 +_02033F96: + .byte 0x02, 0x25, 0x04, 0xE0, 0x03, 0x25, 0x02, 0xE0, 0x04, 0x25 + .byte 0x00, 0xE0, 0x05, 0x25 +_02033FA4: + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + blx sub_020C9E14 + ldr r1, _02034154 ; =sub_02033F50 + mov r0, #0x1 + blx sub_020C9FEC + mov r0, #0x1 + blx sub_020C9E5C + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F34 + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02034158 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _0203415C ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + ldr r0, _02034160 ; =0x021C4918 + mov r1, #0x0 + strb r1, [r0, #0x5] + bl sub_0201E7A0 + ldr r3, _02034164 ; =0x04000050 + mov r1, #0x0 + strh r1, [r3, #0x0] + ldr r0, _02034168 ; =0x04001050 + sub r3, #0x50 + strh r1, [r0, #0x0] + ldr r2, [r3, #0x0] + ldr r1, _0203416C ; =0xFFFF1FFF + sub r0, #0x50 + and r2, r1 + str r2, [r3, #0x0] + ldr r2, [r0, #0x0] + and r1, r2 + str r1, [r0, #0x0] + ldr r0, _02034170 ; =0x020EECD0 + bl sub_0201E66C + add r0, r4, #0x0 + bl sub_02016B94 + add r6, r0, #0x0 + ldr r0, _02034174 ; =0x020EECA4 + bl sub_02016BBC + mov r1, #0x0 + ldr r2, _02034178 ; =0x020EECB4 + add r0, r6, #0x0 + add r3, r1, #0x0 + bl sub_02016C18 + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_02018744 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r2, _0203417C ; =0x000001F7 + add r0, r6, #0x0 + mov r3, #0x2 + str r4, [sp, #0x4] + bl sub_0200CB00 + mov r0, #0x0 + mov r1, #0x20 + add r2, r4, #0x0 + bl sub_02002ED0 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + add r3, r4, #0x0 + bl sub_02017F18 + ldr r1, _02034180 ; =0x00006C21 + mov r0, #0x0 + bl sub_02017FE4 + ldr r1, _02034180 ; =0x00006C21 + mov r0, #0x4 + bl sub_02017FE4 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xc8 + add r3, r4, #0x0 + bl sub_0200A86C + str r0, [sp, #0x10] + mov r0, #0x6 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + bl sub_020219F4 + add r7, r0, #0x0 + mov r0, #0x6 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + bl sub_020219F4 + str r0, [sp, #0x14] + bl sub_0201BD5C + add r0, r4, #0x0 + bl sub_0200AA80 + add r4, r0, #0x0 + ldr r2, _02034184 ; =0x020EEC9C + add r0, r6, #0x0 + add r1, sp, #0x18 + bl sub_02019150 + mov r0, #0xd0 + str r0, [sp, #0x0] + mov r0, #0x90 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x18 + mov r1, #0xf + add r3, r2, #0x0 + bl sub_020196F4 + ldr r2, _0203417C ; =0x000001F7 + add r0, sp, #0x18 + mov r1, #0x0 + mov r3, #0x2 + bl sub_0200CCA4 + mov r0, #0x2 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r2, [sp, #0xc] + add r0, r4, #0x0 + mov r1, #0x0 + mov r3, #0x5 + bl sub_0200AD38 + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x14] + add r1, r5, #0x0 + bl sub_0200A8E0 + ldr r2, [sp, #0x14] + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_0200B7B8 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + add r0, sp, #0x18 + add r2, r7, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl sub_0201BD84 + add r0, r7, #0x0 + bl sub_02021A20 + bl sub_0201E788 + mov r0, #0x0 + bl sub_0200E394 + mov r0, #0x1 + bl sub_0200E394 + mov r0, #0x0 + mov r1, #0x3f + mov r2, #0x3 + bl sub_0200A274 + add r0, sp, #0x18 + bl sub_02019178 + ldr r0, [sp, #0x10] + bl sub_0200A8B8 + add r0, r4, #0x0 + bl sub_0200AB18 + add r0, r6, #0x0 + bl sub_02016A18 + add sp, #0x28 + pop {r3-r7, pc} + nop +_02034154: .word sub_02033F50 + 1 +_02034158: .word 0xFFFFE0FF +_0203415C: .word 0x04001000 +_02034160: .word 0x021C4918 +_02034164: .word 0x04000050 +_02034168: .word 0x04001050 +_0203416C: .word 0xFFFF1FFF +_02034170: .word 0x020EECD0 +_02034174: .word 0x020EECA4 +_02034178: .word 0x020EECB4 +_0203417C: .word 0x000001F7 +_02034180: .word 0x00006C21 +_02034184: .word 0x020EEC9C + + thumb_func_start sub_02034188 +sub_02034188: ; 0x02034188 + push {r4-r7, lr} + sub sp, #0x24 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0200E3A0 + bl sub_02015EF4 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F34 + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02034368 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _0203436C ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + ldr r0, _02034370 ; =0x021C4918 + mov r1, #0x0 + strb r1, [r0, #0x5] + bl sub_0201E7A0 + ldr r3, _02034374 ; =0x04000050 + mov r0, #0x0 + strh r0, [r3, #0x0] + ldr r2, _02034378 ; =0x04001050 + sub r3, #0x50 + strh r0, [r2, #0x0] + ldr r1, [r3, #0x0] + ldr r0, _0203437C ; =0xFFFF1FFF + sub r2, #0x50 + and r1, r0 + str r1, [r3, #0x0] + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + ldr r0, _02034380 ; =0x020EED2C + bl sub_0201E66C + add r0, r4, #0x0 + bl sub_02016B94 + str r0, [sp, #0x10] + ldr r0, _02034384 ; =0x020EED00 + bl sub_02016BBC + mov r1, #0x0 + ldr r0, [sp, #0x10] + ldr r2, _02034388 ; =0x020EED10 + add r3, r1, #0x0 + bl sub_02016C18 + ldr r0, [sp, #0x10] + mov r1, #0x0 + bl sub_02018744 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, [sp, #0x10] + ldr r2, _0203438C ; =0x000001F7 + mov r3, #0x2 + str r4, [sp, #0x4] + bl sub_0200CB00 + mov r0, #0x0 + mov r1, #0x20 + add r2, r4, #0x0 + bl sub_02002ED0 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + add r3, r4, #0x0 + bl sub_02017F18 + ldr r1, _02034390 ; =0x00006C21 + mov r0, #0x0 + bl sub_02017FE4 + ldr r1, _02034390 ; =0x00006C21 + mov r0, #0x4 + bl sub_02017FE4 + ldr r2, _02034394 ; =0x00000265 + mov r0, #0x1 + mov r1, #0x1a + add r3, r4, #0x0 + bl sub_0200A86C + str r0, [sp, #0xc] + mov r0, #0x6 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + bl sub_020219F4 + add r4, r0, #0x0 + bl sub_0201BD5C + ldr r0, [sp, #0x10] + ldr r2, _02034398 ; =0x020EECF8 + add r1, sp, #0x14 + bl sub_02019150 + mov r0, #0xd0 + str r0, [sp, #0x0] + mov r0, #0x90 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x14 + mov r1, #0xf + add r3, r2, #0x0 + bl sub_020196F4 + ldr r2, _0203438C ; =0x000001F7 + add r0, sp, #0x14 + mov r1, #0x0 + mov r3, #0x2 + bl sub_0200CCA4 + ldr r0, [sp, #0xc] + mov r1, #0xf + add r2, r4, #0x0 + bl sub_0200A8E0 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + add r0, sp, #0x14 + add r2, r4, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl sub_0201BD84 + add r0, r4, #0x0 + bl sub_02021A20 + bl sub_0201E788 + mov r0, #0x0 + bl sub_0200E394 + mov r0, #0x1 + bl sub_0200E394 + mov r0, #0x0 + mov r1, #0x3f + mov r2, #0x3 + bl sub_0200A274 + ldr r4, _0203439C ; =0x04000130 + ldr r6, _020343A0 ; =0x027FFFA8 + mov r7, #0x1 +_020342E4: + ldrh r1, [r4, #0x0] + ldrh r0, [r6, #0x0] + orr r1, r0 + ldr r0, _020343A4 ; =0x00002FFF + eor r1, r0 + and r0, r1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + bl sub_02000FE8 + add r0, r5, #0x0 + tst r0, r7 + bne _02034308 + mov r0, #0x1 + add r1, r0, #0x0 + blx sub_020C9C0C + b _020342E4 +_02034308: + add r0, sp, #0x14 + bl sub_02019178 + ldr r0, [sp, #0xc] + bl sub_0200A8B8 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0201797C + mov r0, #0x1 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x2 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x3 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x4 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x5 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x6 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x7 + mov r1, #0x0 + bl sub_0201797C + ldr r0, [sp, #0x10] + mov r1, #0x0 + bl sub_020178A0 + ldr r0, [sp, #0x10] + bl sub_02016A18 + add sp, #0x24 + pop {r4-r7, pc} + nop +_02034368: .word 0xFFFFE0FF +_0203436C: .word 0x04001000 +_02034370: .word 0x021C4918 +_02034374: .word 0x04000050 +_02034378: .word 0x04001050 +_0203437C: .word 0xFFFF1FFF +_02034380: .word 0x020EED2C +_02034384: .word 0x020EED00 +_02034388: .word 0x020EED10 +_0203438C: .word 0x000001F7 +_02034390: .word 0x00006C21 +_02034394: .word 0x00000265 +_02034398: .word 0x020EECF8 +_0203439C: .word 0x04000130 +_020343A0: .word 0x027FFFA8 +_020343A4: .word 0x00002FFF + + thumb_func_start sub_020343A8 +sub_020343A8: ; 0x020343A8 + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + str r2, [sp, #0x0] + mov r2, #0x0 + strb r2, [r4, #0x1] + mov r0, #0xe1 + ldr r7, _02034488 ; =0x0000070A + ldr r6, _0203448C ; =0x00000A8E + mov r12, r1 + strb r2, [r4, #0x0] + add r3, r4, #0x0 + add r5, r2, #0x0 + lsl r0, r0, #0x2 +_020343C4: + add r1, r4, r2 + strh r5, [r3, #0x2] + strb r5, [r1, r7] + strh r5, [r3, r6] + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, r0 + blt _020343C4 + ldr r0, _02034490 ; =0x00001196 + mov r2, #0x0 +_020343D8: + add r1, r4, r5 + add r5, r5, #0x1 + strb r2, [r1, r0] + cmp r5, #0x10 + blt _020343D8 + mov r0, #0x29 + mov r1, r12 + mov r2, #0xb + bl sub_02006528 + add r6, r0, #0x0 + ldrb r0, [r6, #0x0] + add r5, r6, #0x5 + strb r0, [r4, #0x1] + ldrb r0, [r6, #0x1] + strb r0, [r4, #0x0] + ldrb r0, [r6, #0x2] + str r0, [sp, #0x8] + ldrb r0, [r6, #0x3] + str r0, [sp, #0x4] + ldrb r7, [r6, #0x4] + cmp r7, #0x10 + bls _0203440A + bl sub_02020C2C +_0203440A: + ldr r1, _02034490 ; =0x00001196 + add r0, r5, #0x0 + add r1, r4, r1 + add r2, r7, #0x0 + blx sub_020CE3E0 + ldr r0, [sp, #0x8] + add r5, r5, r7 + cmp r0, #0x0 + beq _0203443A + ldrb r3, [r4, #0x1] + ldrb r2, [r4, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x2 + mul r2, r3 + lsl r2, r2, #0x1 + blx sub_020CE3E0 + ldrb r1, [r4, #0x1] + ldrb r0, [r4, #0x0] + mul r0, r1 + lsl r0, r0, #0x1 + add r5, r5, r0 + b _0203444E +_0203443A: + ldrb r3, [r4, #0x1] + ldrb r2, [r4, #0x0] + ldr r0, [sp, #0x0] + add r1, r4, #0x2 + lsl r0, r0, #0x10 + mul r2, r3 + lsr r0, r0, #0x10 + lsl r2, r2, #0x1 + blx sub_020CE1C8 +_0203444E: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _0203446C + ldrb r3, [r4, #0x1] + ldrb r2, [r4, #0x0] + ldr r1, _02034488 ; =0x0000070A + add r0, r5, #0x0 + add r1, r4, r1 + mul r2, r3 + blx sub_020CE3E0 + ldrb r1, [r4, #0x1] + ldrb r0, [r4, #0x0] + mul r0, r1 + add r5, r5, r0 +_0203446C: + ldrb r3, [r4, #0x1] + ldrb r2, [r4, #0x0] + ldr r1, _0203448C ; =0x00000A8E + add r0, r5, #0x0 + mul r2, r3 + add r1, r4, r1 + lsl r2, r2, #0x1 + blx sub_020CE3E0 + add r0, r6, #0x0 + bl sub_02016A18 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02034488: .word 0x0000070A +_0203448C: .word 0x00000A8E +_02034490: .word 0x00001196 + + thumb_func_start sub_02034494 +sub_02034494: ; 0x02034494 + push {r3, lr} + ldr r1, _020344A8 ; =0x000011AA + mov r0, #0xb + bl sub_02016998 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + pop {r3, pc} + .balign 4 +_020344A8: .word 0x000011AA + + thumb_func_start sub_020344AC +sub_020344AC: ; 0x020344AC + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0203474C + add r6, r0, #0x0 + add r0, r4, #0x4 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_020343A8 + strb r6, [r4, #0x2] + ldrb r0, [r4, #0x4] + strb r0, [r4, #0x1] + ldrb r0, [r4, #0x5] + strb r0, [r4, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020344D0 +sub_020344D0: ; 0x020344D0 + ldr r3, _020344D4 ; =sub_02016A18 + bx r3 + .balign 4 +_020344D4: .word sub_02016A18 + 1 + + thumb_func_start sub_020344D8 +sub_020344D8: ; 0x020344D8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldrb r1, [r4, #0x0] + ldrb r0, [r4, #0x1] + mul r0, r1 + cmp r5, r0 + blt _020344EC + bl sub_02020C2C +_020344EC: + lsl r0, r5, #0x1 + add r1, r4, r0 + ldr r0, _020344F8 ; =0x00000A92 + ldrh r0, [r1, r0] + pop {r3-r5, pc} + nop +_020344F8: .word 0x00000A92 + + thumb_func_start sub_020344FC +sub_020344FC: ; 0x020344FC + push {r4, lr} + add r4, r0, #0x0 + bne _02034506 + bl sub_02020C2C +_02034506: + ldrb r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203450C +sub_0203450C: ; 0x0203450C + push {r4, lr} + add r4, r0, #0x0 + bne _02034516 + bl sub_02020C2C +_02034516: + ldrb r0, [r4, #0x1] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203451C +sub_0203451C: ; 0x0203451C + push {r3-r7, lr} + add r7, r0, #0x0 + ldrb r0, [r7, #0x1] + add r5, r1, #0x0 + add r4, r2, #0x0 + ldrb r6, [r7, #0x0] + str r0, [sp, #0x0] + cmp r5, #0x0 + blt _02034532 + cmp r5, r6 + blt _02034536 +_02034532: + bl sub_02020C2C +_02034536: + cmp r4, #0x0 + blt _02034540 + ldr r0, [sp, #0x0] + cmp r4, r0 + blt _02034544 +_02034540: + bl sub_02020C2C +_02034544: + add r0, r4, #0x0 + mul r0, r6 + add r0, r5, r0 + lsl r0, r0, #0x1 + add r0, r7, r0 + ldrh r0, [r0, #0x6] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02034554 +sub_02034554: ; 0x02034554 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldrb r1, [r5, #0x0] + ldrb r0, [r5, #0x1] + mul r0, r1 + cmp r4, #0x0 + blt _02034568 + cmp r4, r0 + blt _0203456C +_02034568: + bl sub_02020C2C +_0203456C: + lsl r0, r4, #0x1 + add r0, r5, r0 + ldrh r0, [r0, #0x6] + pop {r3-r5, pc} + + thumb_func_start sub_02034574 +sub_02034574: ; 0x02034574 + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start sub_02034578 +sub_02034578: ; 0x02034578 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [sp, #0x10] + add r4, r2, #0x0 + add r6, r3, #0x0 + cmp r4, r0 + blt _0203458A + bl sub_02020C2C +_0203458A: + ldr r0, [sp, #0x10] + mul r0, r6 + add r4, r4, r0 + mov r0, #0xe1 + lsl r0, r0, #0x2 + cmp r4, r0 + blt _0203459C + bl sub_02020C2C +_0203459C: + ldr r0, _020345A4 ; =0x0000070E + add r1, r5, r4 + ldrb r0, [r1, r0] + pop {r4-r6, pc} + .balign 4 +_020345A4: .word 0x0000070E + + thumb_func_start sub_020345A8 +sub_020345A8: ; 0x020345A8 + push {r3-r5, lr} + ldr r1, _020345D8 ; =0x00000708 + add r4, r0, #0x0 + bl sub_02016998 + add r5, r0, #0x0 + mov r0, #0x29 + mov r1, #0x0 + add r2, r4, #0x0 + bl sub_02006528 + add r4, r0, #0x0 + ldrb r1, [r4, #0x4] + add r0, r4, #0x5 + ldr r2, _020345D8 ; =0x00000708 + add r0, r0, r1 + add r1, r5, #0x0 + blx sub_020CE3E0 + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 +_020345D8: .word 0x00000708 + + thumb_func_start sub_020345DC +sub_020345DC: ; 0x020345DC + push {r4, lr} + add r4, r0, #0x0 + bne _020345E6 + bl sub_02020C2C +_020345E6: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020345F0 +sub_020345F0: ; 0x020345F0 + mov r3, #0x1e + mul r3, r2 + add r1, r1, r3 + lsl r1, r1, #0x1 + ldrh r0, [r0, r1] + bx lr + + thumb_func_start sub_020345FC +sub_020345FC: ; 0x020345FC + push {r3-r5, lr} + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1c8 + add r3, r0, #0x0 + add r5, r1, #0x0 + lsl r1, r3, #0x10 + add r4, r2, #0x0 + add r0, sp, #0x0 + lsr r1, r1, #0x10 + mov r2, #0x0 + bl sub_020343A8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + cmp r5, r0 + blt _0203462E + bl sub_02020C2C +_0203462E: + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r4, r0 + blt _0203463A + bl sub_02020C2C +_0203463A: + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + mul r0, r4 + add r0, r5, r0 + lsl r1, r0, #0x1 + add r0, sp, #0x0 + add r0, #0x2 + ldrh r0, [r0, r1] + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1c8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02034660 +sub_02034660: ; 0x02034660 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bne _0203466C + bl sub_02020C2C +_0203466C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020344D8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02034678 +sub_02034678: ; 0x02034678 + push {r4-r7} + ldr r1, _020346C4 ; =0x00000A92 + ldrb r7, [r0, #0x0] + add r2, r0, r1 + ldr r1, _020346C8 ; =0x0000070E + add r1, r0, r1 + ldrb r0, [r0, #0x2] + cmp r0, #0x0 + bne _020346BE + mov r0, #0x15 + add r6, r7, #0x0 + mul r6, r0 + add r5, r6, #0x0 + add r5, #0x17 + mov r4, #0xb0 + lsl r0, r5, #0x1 + add r6, #0x18 + strh r4, [r2, r0] + lsl r0, r6, #0x1 + strh r4, [r2, r0] + mov r0, #0x16 + add r3, r7, #0x0 + mul r3, r0 + add r0, r3, #0x0 + add r0, #0x17 + lsl r7, r0, #0x1 + add r3, #0x18 + strh r4, [r2, r7] + lsl r7, r3, #0x1 + strh r4, [r2, r7] + mov r2, #0x2 + strb r2, [r1, r5] + strb r2, [r1, r6] + strb r2, [r1, r0] + strb r2, [r1, r3] +_020346BE: + pop {r4-r7} + bx lr + nop +_020346C4: .word 0x00000A92 +_020346C8: .word 0x0000070E + + thumb_func_start sub_020346CC +sub_020346CC: ; 0x020346CC + push {r3-r4} + ldr r1, _0203470C ; =0x00000A92 + add r2, r0, r1 + ldrb r1, [r0, #0x0] + ldrb r0, [r0, #0x2] + cmp r0, #0x0 + bne _02034706 + mov r0, #0xf + mul r0, r1 + add r0, #0x1c + mov r3, #0x77 + lsl r0, r0, #0x1 + strh r3, [r2, r0] + lsl r0, r1, #0x4 + add r3, r0, #0x0 + add r3, #0x1b + mov r4, #0x78 + lsl r3, r3, #0x1 + strh r4, [r2, r3] + add r3, r0, #0x0 + add r3, #0x1c + add r0, r1, r0 + add r0, #0x1b + mov r4, #0x79 + lsl r3, r3, #0x1 + strh r4, [r2, r3] + mov r3, #0x7a + lsl r0, r0, #0x1 + strh r3, [r2, r0] +_02034706: + pop {r3-r4} + bx lr + nop +_0203470C: .word 0x00000A92 + + thumb_func_start sub_02034710 +sub_02034710: ; 0x02034710 + push {r3, lr} + ldr r1, _02034720 ; =0x0000022F + cmp r0, r1 + blo _0203471E + bl sub_02020C2C + mov r0, #0x3 +_0203471E: + pop {r3, pc} + .balign 4 +_02034720: .word 0x0000022F + + thumb_func_start sub_02034724 +sub_02034724: ; 0x02034724 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034734 ; =0x020EEDBC + ldrb r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034734: .word 0x020EEDBC + + thumb_func_start sub_02034738 +sub_02034738: ; 0x02034738 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034748 ; =0x020EEDBD + ldrb r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034748: .word 0x020EEDBD + + thumb_func_start sub_0203474C +sub_0203474C: ; 0x0203474C + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _0203476C ; =0x020EEDBE + ldrh r0, [r0, r1] + cmp r0, #0x16 + bne _02034768 + ldr r1, _02034770 ; =0x020ECAC0 + ldrb r1, [r1, #0x0] + cmp r1, #0xb + bne _02034768 + mov r0, #0x17 +_02034768: + pop {r3, pc} + nop +_0203476C: .word 0x020EEDBE +_02034770: .word 0x020ECAC0 + + thumb_func_start sub_02034774 +sub_02034774: ; 0x02034774 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034784 ; =0x020EEDC4 + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034784: .word 0x020EEDC4 + + thumb_func_start sub_02034788 +sub_02034788: ; 0x02034788 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034798 ; =0x020EEDC0 + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034798: .word 0x020EEDC0 + + thumb_func_start sub_0203479C +sub_0203479C: ; 0x0203479C + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020347AC ; =0x020EEDC2 + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_020347AC: .word 0x020EEDC2 + + thumb_func_start sub_020347B0 +sub_020347B0: ; 0x020347B0 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020347C0 ; =0x020EEDC6 + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_020347C0: .word 0x020EEDC6 + + thumb_func_start sub_020347C4 +sub_020347C4: ; 0x020347C4 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020347D4 ; =0x020EEDC8 + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_020347D4: .word 0x020EEDC8 + + thumb_func_start sub_020347D8 +sub_020347D8: ; 0x020347D8 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020347F4 ; =0x020EEDCA + ldrh r1, [r0, r1] + ldr r0, _020347F8 ; =0x0000FFFF + cmp r1, r0 + beq _020347F0 + mov r0, #0x1 + pop {r3, pc} +_020347F0: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_020347F4: .word 0x020EEDCA +_020347F8: .word 0x0000FFFF + + thumb_func_start sub_020347FC +sub_020347FC: ; 0x020347FC + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _0203480C ; =0x020EEDCA + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_0203480C: .word 0x020EEDCA + + thumb_func_start sub_02034810 +sub_02034810: ; 0x02034810 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034820 ; =0x020EEDCC + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034820: .word 0x020EEDCC + + thumb_func_start sub_02034824 +sub_02034824: ; 0x02034824 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034834 ; =0x020EEDCE + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034834: .word 0x020EEDCE + + thumb_func_start sub_02034838 +sub_02034838: ; 0x02034838 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034848 ; =0x020EEDD0 + ldrb r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034848: .word 0x020EEDD0 + + thumb_func_start sub_0203484C +sub_0203484C: ; 0x0203484C + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _0203485C ; =0x020EEDD1 + ldrb r0, [r0, r1] + pop {r3, pc} + .balign 4 +_0203485C: .word 0x020EEDD1 + + thumb_func_start sub_02034860 +sub_02034860: ; 0x02034860 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034878 ; =0x020EEDBC + add r0, r0, r1 + ldrb r0, [r0, #0x17] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + pop {r3, pc} + nop +_02034878: .word 0x020EEDBC + + thumb_func_start sub_0203487C +sub_0203487C: ; 0x0203487C + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034894 ; =0x020EEDBC + add r0, r0, r1 + ldrb r0, [r0, #0x17] + lsl r0, r0, #0x19 + lsr r0, r0, #0x1f + pop {r3, pc} + nop +_02034894: .word 0x020EEDBC + + thumb_func_start sub_02034898 +sub_02034898: ; 0x02034898 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020348B0 ; =0x020EEDBC + add r0, r0, r1 + ldrb r0, [r0, #0x17] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + pop {r3, pc} + nop +_020348B0: .word 0x020EEDBC + + thumb_func_start sub_020348B4 +sub_020348B4: ; 0x020348B4 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020348CC ; =0x020EEDBC + add r0, r0, r1 + ldrb r0, [r0, #0x17] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + pop {r3, pc} + nop +_020348CC: .word 0x020EEDBC + + thumb_func_start sub_020348D0 +sub_020348D0: ; 0x020348D0 + push {r3, lr} + bl sub_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020348E0 ; =0x020EEDD2 + ldrb r0, [r0, r1] + pop {r3, pc} + .balign 4 +_020348E0: .word 0x020EEDD2 + + thumb_func_start sub_020348E4 +sub_020348E4: ; 0x020348E4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02034898 + cmp r0, #0x0 + bne _020348F4 + mov r0, #0x0 + pop {r4, pc} +_020348F4: + add r0, r4, #0x0 + bl sub_020348D0 + cmp r0, #0x1 + beq _02034902 + mov r0, #0x1 + pop {r4, pc} +_02034902: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02034908 +sub_02034908: ; 0x02034908 + push {r3, lr} + bl sub_0203474C + cmp r0, #0x0 + bne _02034916 + mov r0, #0x1 + pop {r3, pc} +_02034916: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203491C +sub_0203491C: ; 0x0203491C + push {r3, lr} + bl sub_020348D0 + cmp r0, #0x5 + bne _0203492A + mov r0, #0x1 + pop {r3, pc} +_0203492A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02034930 +sub_02034930: ; 0x02034930 + push {r3, lr} + bl sub_020348D0 + cmp r0, #0x3 + bne _0203493E + mov r0, #0x1 + pop {r3, pc} +_0203493E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02034944 +sub_02034944: ; 0x02034944 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020348D0 + cmp r0, #0x4 + beq _0203495A + add r0, r4, #0x0 + bl sub_020348D0 + cmp r0, #0x5 + bne _0203495E +_0203495A: + mov r0, #0x1 + pop {r4, pc} +_0203495E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02034964 +sub_02034964: ; 0x02034964 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020348D0 + cmp r0, #0x1 + beq _0203497A + add r0, r4, #0x0 + bl sub_020348D0 + cmp r0, #0x2 + bne _0203497E +_0203497A: + mov r0, #0x1 + pop {r4, pc} +_0203497E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02034984 +sub_02034984: ; 0x02034984 + push {r3, lr} + bl sub_0203491C + cmp r0, #0x0 + beq _02034992 + mov r0, #0x1 + pop {r3, pc} +_02034992: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02034998 +sub_02034998: ; 0x02034998 + ldr r1, _020349A8 ; =0x000001D2 + cmp r0, r1 + bne _020349A2 + mov r0, #0x1 + bx lr +_020349A2: + mov r0, #0x0 + bx lr + nop +_020349A8: .word 0x000001D2 + + thumb_func_start sub_020349AC +sub_020349AC: ; 0x020349AC + cmp r0, #0xdb + bne _020349B4 + mov r0, #0x1 + bx lr +_020349B4: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020349B8 +sub_020349B8: ; 0x020349B8 + ldr r1, _020349C8 ; =0x0000011F + cmp r0, r1 + bne _020349C2 + mov r0, #0x1 + bx lr +_020349C2: + mov r0, #0x0 + bx lr + nop +_020349C8: .word 0x0000011F + + thumb_func_start sub_020349CC +sub_020349CC: ; 0x020349CC + cmp r0, #0xfd + bne _020349D4 + mov r0, #0x1 + bx lr +_020349D4: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020349D8 +sub_020349D8: ; 0x020349D8 + cmp r0, #0xdc + bne _020349E0 + mov r0, #0x1 + bx lr +_020349E0: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020349E4 +sub_020349E4: ; 0x020349E4 + ldr r3, _02034A00 ; =0x020EED54 + mov r2, #0x0 +_020349E8: + ldrh r1, [r3, #0x0] + cmp r0, r1 + bne _020349F2 + mov r0, #0x1 + bx lr +_020349F2: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0x12 + blo _020349E8 + mov r0, #0x0 + bx lr + nop +_02034A00: .word 0x020EED54 + + thumb_func_start sub_02034A04 +sub_02034A04: ; 0x02034A04 + ldr r3, _02034A24 ; =0x020EED78 + mov r2, #0x0 +_02034A08: + ldrh r1, [r3, #0x0] + cmp r0, r1 + bne _02034A18 + add r0, r2, #0x1 + lsl r1, r0, #0x1 + ldr r0, _02034A24 ; =0x020EED78 + ldrh r0, [r0, r1] + bx lr +_02034A18: + add r2, r2, #0x2 + add r3, r3, #0x4 + cmp r2, #0x22 + blo _02034A08 + mov r0, #0x0 + bx lr + .balign 4 +_02034A24: .word 0x020EED78 + + thumb_func_start sub_02034A28 +sub_02034A28: ; 0x02034A28 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x14] + add r4, r1, #0x0 + cmp r0, #0x0 + beq _02034A38 + bl sub_02020C2C +_02034A38: + ldr r1, _02034A44 ; =0x00000AC8 + add r0, r4, #0x0 + bl sub_02016998 + str r0, [r5, #0x14] + pop {r3-r5, pc} + .balign 4 +_02034A44: .word 0x00000AC8 + + thumb_func_start sub_02034A48 +sub_02034A48: ; 0x02034A48 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x14] + cmp r0, #0x0 + bne _02034A56 + bl sub_02020C2C +_02034A56: + ldr r0, [r4, #0x14] + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02034A60 +sub_02034A60: ; 0x02034A60 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x14] + add r4, r1, #0x0 + cmp r0, #0x0 + bne _02034A70 + bl sub_02020C2C +_02034A70: + ldr r0, [r5, #0x14] + add r1, r4, #0x0 + bl sub_02034A98 + ldr r0, [r5, #0x14] + bl sub_02034C50 + mov r0, #0x92 + ldr r1, [r5, #0x14] + lsl r0, r0, #0x4 + add r0, r1, r0 + add r1, r4, #0x0 + bl sub_02034CB4 + ldr r0, [r5, #0x14] + add r1, r4, #0x0 + bl sub_02034CEC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02034A98 +sub_02034A98: ; 0x02034A98 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02034810 + add r4, r0, #0x0 + mov r0, #0x20 + add r1, r4, #0x0 + bl sub_020065A4 + mov r1, #0x2 + lsl r1, r1, #0xa + cmp r0, r1 + blo _02034AB8 + bl sub_02020C2C +_02034AB8: + add r5, #0x20 + add r0, r5, #0x0 + mov r1, #0x20 + add r2, r4, #0x0 + bl sub_020064F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02034AC8 +sub_02034AC8: ; 0x02034AC8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x14] + ldr r4, [r0, #0x4] + cmp r0, #0x0 + bne _02034AD8 + bl sub_02020C2C +_02034AD8: + cmp r4, #0x0 + beq _02034AEC + ldr r1, [r5, #0x1c] + ldr r3, [r5, #0x14] + ldr r0, [r5, #0x34] + ldr r1, [r1, #0x0] + ldr r3, [r3, #0x14] + add r2, r4, #0x0 + bl sub_02057BAC +_02034AEC: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02034AF0 +sub_02034AF0: ; 0x02034AF0 + ldr r0, [r0, #0x14] + ldr r0, [r0, #0x10] + bx lr + .balign 4 + + thumb_func_start sub_02034AF8 +sub_02034AF8: ; 0x02034AF8 + ldr r0, [r0, #0x14] + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02034B00 +sub_02034B00: ; 0x02034B00 + ldr r2, [r0, #0x14] + ldr r0, [r2, #0x8] + cmp r1, r0 + blo _02034B0C + mov r0, #0x0 + bx lr +_02034B0C: + mov r0, #0xc + ldr r2, [r2, #0x18] + mul r0, r1 + add r0, r2, r0 + bx lr + .balign 4 + + thumb_func_start sub_02034B18 +sub_02034B18: ; 0x02034B18 + push {r4-r7} + ldr r5, [r0, #0x14] + mov r3, #0x0 + ldr r0, [r5, #0x8] + cmp r0, #0x0 + bls _02034B4A + ldr r6, [r5, #0x18] + add r4, r3, #0x0 + add r0, r6, #0x0 +_02034B2A: + ldrh r7, [r0, #0x0] + cmp r1, r7 + bne _02034B3E + add r7, r6, r4 + ldrh r7, [r7, #0x2] + cmp r2, r7 + bne _02034B3E + add r0, r3, #0x0 + pop {r4-r7} + bx lr +_02034B3E: + ldr r7, [r5, #0x8] + add r3, r3, #0x1 + add r0, #0xc + add r4, #0xc + cmp r3, r7 + blo _02034B2A +_02034B4A: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_02034B54 +sub_02034B54: ; 0x02034B54 + ldr r0, [r0, #0x14] + ldr r0, [r0, #0xc] + bx lr + .balign 4 + + thumb_func_start sub_02034B5C +sub_02034B5C: ; 0x02034B5C + ldr r0, [r0, #0x14] + ldr r0, [r0, #0x1c] + bx lr + .balign 4 + + thumb_func_start sub_02034B64 +sub_02034B64: ; 0x02034B64 + ldr r0, [r0, #0x14] + ldr r0, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start sub_02034B6C +sub_02034B6C: ; 0x02034B6C + ldr r0, [r0, #0x14] + ldr r0, [r0, #0x14] + bx lr + .balign 4 + + thumb_func_start sub_02034B74 +sub_02034B74: ; 0x02034B74 + push {r3-r7, lr} + ldr r0, [r0, #0x14] + add r4, r1, #0x0 + ldr r5, [r0, #0x4] + add r7, r2, #0x0 + add r1, r3, #0x0 + mov r2, #0x0 + ldr r3, [r0, #0x14] + cmp r5, #0x0 + bls _02034BA4 + add r6, r3, #0x0 +_02034B8A: + ldrh r0, [r6, #0x0] + cmp r4, r0 + bne _02034B9C + lsl r0, r2, #0x5 + add r0, r3, r0 + strh r7, [r0, #0x18] + strh r1, [r0, #0x1a] + mov r0, #0x1 + pop {r3-r7, pc} +_02034B9C: + add r2, r2, #0x1 + add r6, #0x20 + cmp r2, r5 + blo _02034B8A +_02034BA4: + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02034BAC +sub_02034BAC: ; 0x02034BAC + push {r4-r6, lr} + ldr r0, [r0, #0x14] + mov r3, #0x0 + ldr r5, [r0, #0x4] + ldr r4, [r0, #0x14] + cmp r5, #0x0 + bls _02034BD4 + add r6, r4, #0x0 +_02034BBC: + ldrh r0, [r6, #0x0] + cmp r1, r0 + bne _02034BCC + lsl r0, r3, #0x5 + add r0, r4, r0 + strh r2, [r0, #0xc] + mov r0, #0x1 + pop {r4-r6, pc} +_02034BCC: + add r3, r3, #0x1 + add r6, #0x20 + cmp r3, r5 + blo _02034BBC +_02034BD4: + bl sub_02020C2C + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02034BDC +sub_02034BDC: ; 0x02034BDC + push {r4-r6, lr} + ldr r0, [r0, #0x14] + mov r3, #0x0 + ldr r5, [r0, #0x4] + ldr r4, [r0, #0x14] + cmp r5, #0x0 + bls _02034C04 + add r6, r4, #0x0 +_02034BEC: + ldrh r0, [r6, #0x0] + cmp r1, r0 + bne _02034BFC + lsl r0, r3, #0x5 + add r0, r4, r0 + strh r2, [r0, #0x4] + mov r0, #0x1 + pop {r4-r6, pc} +_02034BFC: + add r3, r3, #0x1 + add r6, #0x20 + cmp r3, r5 + blo _02034BEC +_02034C04: + bl sub_02020C2C + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02034C0C +sub_02034C0C: ; 0x02034C0C + push {r3-r4} + ldr r0, [r0, #0x14] + ldr r4, [r0, #0x18] + mov r0, #0xc + mul r0, r1 + strh r2, [r4, r0] + add r0, r4, r0 + strh r3, [r0, #0x2] + mov r0, #0x1 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_02034C24 +sub_02034C24: ; 0x02034C24 + ldr r0, [r0, #0x14] + ldr r3, [r0, #0x18] + mov r0, #0xc + mul r0, r1 + add r0, r3, r0 + strh r2, [r0, #0x4] + mov r0, #0x1 + bx lr + + thumb_func_start sub_02034C34 +sub_02034C34: ; 0x02034C34 + push {r4-r6, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02034AF0 + mov r1, #0x14 + mul r1, r5 + add r0, r0, r1 + str r4, [r0, #0x4] + str r6, [r0, #0x8] + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02034C50 +sub_02034C50: ; 0x02034C50 + add r1, r0, #0x0 + ldr r2, [r0, #0x20] + add r1, #0x20 + add r1, r1, #0x4 + str r2, [r0, #0x0] + cmp r2, #0x0 + beq _02034C62 + str r1, [r0, #0x10] + b _02034C66 +_02034C62: + mov r2, #0x0 + str r2, [r0, #0x10] +_02034C66: + ldr r3, [r0, #0x0] + mov r2, #0x14 + mul r2, r3 + add r3, r1, r2 + ldr r2, [r1, r2] + add r1, r3, #0x4 + str r2, [r0, #0x4] + cmp r2, #0x0 + beq _02034C7C + str r1, [r0, #0x14] + b _02034C80 +_02034C7C: + mov r2, #0x0 + str r2, [r0, #0x14] +_02034C80: + ldr r2, [r0, #0x4] + lsl r2, r2, #0x5 + add r3, r1, r2 + ldr r2, [r1, r2] + add r1, r3, #0x4 + str r2, [r0, #0x8] + cmp r2, #0x0 + beq _02034C94 + str r1, [r0, #0x18] + b _02034C98 +_02034C94: + mov r2, #0x0 + str r2, [r0, #0x18] +_02034C98: + ldr r3, [r0, #0x8] + mov r2, #0xc + mul r2, r3 + add r3, r1, r2 + ldr r1, [r1, r2] + str r1, [r0, #0xc] + cmp r1, #0x0 + beq _02034CAE + add r1, r3, #0x4 + str r1, [r0, #0x1c] + bx lr +_02034CAE: + mov r1, #0x0 + str r1, [r0, #0x1c] + bx lr + + thumb_func_start sub_02034CB4 +sub_02034CB4: ; 0x02034CB4 + push {r3-r5, lr} + mov r2, #0x6a + add r4, r1, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x2 + add r5, r0, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + bl sub_020347D8 + cmp r0, #0x0 + beq _02034CDE + add r0, r4, #0x0 + bl sub_020347FC + add r2, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x25 + bl sub_020064F0 +_02034CDE: + pop {r3-r5, pc} + + thumb_func_start sub_02034CE0 +sub_02034CE0: ; 0x02034CE0 + ldr r1, [r0, #0x14] + mov r0, #0x92 + lsl r0, r0, #0x4 + add r0, r1, r0 + bx lr + .balign 4 + + thumb_func_start sub_02034CEC +sub_02034CEC: ; 0x02034CEC + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_0203479C + mov r1, #0x82 + lsl r1, r1, #0x4 + mov r2, #0x1 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r5, r1 + lsl r2, r2, #0x8 + blx sub_020CE240 + mov r0, #0xa + add r1, r4, #0x0 + bl sub_020065A4 + mov r1, #0x1 + lsl r1, r1, #0x8 + cmp r0, r1 + blo _02034D1C + bl sub_02020C2C +_02034D1C: + mov r0, #0x82 + lsl r0, r0, #0x4 + add r0, r5, r0 + mov r1, #0xa + add r2, r4, #0x0 + bl sub_020064F0 + pop {r3-r5, pc} + + thumb_func_start sub_02034D2C +sub_02034D2C: ; 0x02034D2C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x14] + cmp r0, #0x0 + bne _02034D3A + bl sub_02020C2C +_02034D3A: + mov r0, #0x82 + ldr r1, [r4, #0x14] + lsl r0, r0, #0x4 + add r0, r1, r0 + pop {r4, pc} + + thumb_func_start sub_02034D44 +sub_02034D44: ; 0x02034D44 + push {r4-r7} + ldr r0, [r0, #0x14] + mov r3, #0x0 + ldr r4, [r0, #0x4] + cmp r4, #0x0 + bls _02034D76 + ldr r6, [r0, #0x14] + add r5, r3, #0x0 + add r4, r6, #0x0 +_02034D56: + ldrh r7, [r4, #0x18] + cmp r1, r7 + bne _02034D6A + add r7, r6, r5 + ldrh r7, [r7, #0x1a] + cmp r2, r7 + bne _02034D6A + mov r0, #0x0 + pop {r4-r7} + bx lr +_02034D6A: + ldr r7, [r0, #0x4] + add r3, r3, #0x1 + add r4, #0x20 + add r5, #0x20 + cmp r3, r7 + blo _02034D56 +_02034D76: + mov r0, #0x1 + pop {r4-r7} + bx lr + + thumb_func_start sub_02034D7C +sub_02034D7C: ; 0x02034D7C + mov r0, #0xa0 + bx lr + + thumb_func_start sub_02034D80 +sub_02034D80: ; 0x02034D80 + mov r0, #0x5 + lsl r0, r0, #0xa + bx lr + .balign 4 + + thumb_func_start sub_02034D88 +sub_02034D88: ; 0x02034D88 + ldr r3, _02034D94 ; =sub_020CE1FC + mov r2, #0x5 + add r1, r0, #0x0 + mov r0, #0x0 + lsl r2, r2, #0xa + bx r3 + .balign 4 +_02034D94: .word sub_020CE1FC + + thumb_func_start sub_02034D98 +sub_02034D98: ; 0x02034D98 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0xa0 + blx sub_020DF4A4 + add r0, r4, #0x0 + add r0, #0x6c + bl sub_0204ADE0 + add r0, r4, #0x0 + add r0, #0x8c + bl sub_02055468 + bl sub_02034E8C + add r4, #0x68 + strh r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02034DC0 +sub_02034DC0: ; 0x02034DC0 + bx lr + .balign 4 + + thumb_func_start sub_02034DC4 +sub_02034DC4: ; 0x02034DC4 + add r0, #0x14 + bx lr + + thumb_func_start sub_02034DC8 +sub_02034DC8: ; 0x02034DC8 + add r0, #0x28 + bx lr + + thumb_func_start sub_02034DCC +sub_02034DCC: ; 0x02034DCC + add r0, #0x50 + bx lr + + thumb_func_start sub_02034DD0 +sub_02034DD0: ; 0x02034DD0 + add r0, #0x3c + bx lr + + thumb_func_start sub_02034DD4 +sub_02034DD4: ; 0x02034DD4 + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x3c + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_02034DE8 +sub_02034DE8: ; 0x02034DE8 + add r0, #0x64 + bx lr + + thumb_func_start sub_02034DEC +sub_02034DEC: ; 0x02034DEC + add r0, #0x66 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02034DF4 +sub_02034DF4: ; 0x02034DF4 + add r0, #0x66 + strh r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02034DFC +sub_02034DFC: ; 0x02034DFC + add r0, #0x68 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02034E04 +sub_02034E04: ; 0x02034E04 + add r0, #0x68 + strh r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02034E0C +sub_02034E0C: ; 0x02034E0C + add r0, #0x6c + bx lr + + thumb_func_start sub_02034E10 +sub_02034E10: ; 0x02034E10 + add r0, #0x6a + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02034E18 +sub_02034E18: ; 0x02034E18 + add r0, #0x6a + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02034E20 +sub_02034E20: ; 0x02034E20 + add r0, #0x8c + bx lr + + thumb_func_start sub_02034E24 +sub_02034E24: ; 0x02034E24 + add r0, #0x98 + bx lr + + thumb_func_start sub_02034E28 +sub_02034E28: ; 0x02034E28 + add r0, #0x96 + bx lr + + thumb_func_start sub_02034E2C +sub_02034E2C: ; 0x02034E2C + add r0, #0x94 + bx lr + + thumb_func_start sub_02034E30 +sub_02034E30: ; 0x02034E30 + ldr r3, _02034E38 ; =sub_02022610 + mov r1, #0x6 + bx r3 + nop +_02034E38: .word sub_02022610 + 1 + + thumb_func_start sub_02034E3C +sub_02034E3C: ; 0x02034E3C + ldr r3, _02034E44 ; =sub_02022610 + mov r1, #0xb + bx r3 + nop +_02034E44: .word sub_02022610 + 1 + + thumb_func_start sub_02034E48 +sub_02034E48: ; 0x02034E48 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02034E3C + add r2, r0, #0x0 + ldr r1, [r4, #0x34] + add r0, r4, #0x0 + mov r3, #0x40 + bl sub_02057800 + pop {r4, pc} + + thumb_func_start sub_02034E60 +sub_02034E60: ; 0x02034E60 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02034E3C + add r1, r0, #0x0 + ldr r0, [r4, #0x34] + mov r2, #0x40 + bl sub_0205785C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02034E78 +sub_02034E78: ; 0x02034E78 + push {r3, lr} + cmp r0, #0x0 + ble _02034E82 + cmp r0, #0x14 + bls _02034E88 +_02034E82: + bl sub_02020C2C + mov r0, #0x1 +_02034E88: + sub r0, r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_02034E8C +sub_02034E8C: ; 0x02034E8C + mov r0, #0x1 + bx lr + + thumb_func_start sub_02034E90 +sub_02034E90: ; 0x02034E90 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02034E78 + lsl r1, r0, #0x4 + ldr r0, _02034EB8 ; =0x020F222A + ldrh r0, [r0, r1] + str r0, [r4, #0x0] + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x4] + ldr r0, _02034EBC ; =0x020F222C + ldrh r0, [r0, r1] + str r0, [r4, #0x8] + ldr r0, _02034EC0 ; =0x020F222E + ldrh r0, [r0, r1] + str r0, [r4, #0xc] + mov r0, #0x1 + str r0, [r4, #0x10] + pop {r4, pc} + .balign 4 +_02034EB8: .word 0x020F222A +_02034EBC: .word 0x020F222C +_02034EC0: .word 0x020F222E + + thumb_func_start sub_02034EC4 +sub_02034EC4: ; 0x02034EC4 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02034E78 + lsl r1, r0, #0x4 + ldr r0, _02034EEC ; =0x020F2224 + ldrh r0, [r0, r1] + str r0, [r4, #0x0] + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x4] + ldr r0, _02034EF0 ; =0x020F2226 + ldrh r0, [r0, r1] + str r0, [r4, #0x8] + ldr r0, _02034EF4 ; =0x020F2228 + ldrh r0, [r0, r1] + str r0, [r4, #0xc] + mov r0, #0x0 + str r0, [r4, #0x10] + pop {r4, pc} + .balign 4 +_02034EEC: .word 0x020F2224 +_02034EF0: .word 0x020F2226 +_02034EF4: .word 0x020F2228 + + thumb_func_start sub_02034EF8 +sub_02034EF8: ; 0x02034EF8 + ldr r3, _02034F18 ; =0x020F2224 + mov r2, #0x0 +_02034EFC: + ldrh r1, [r3, #0x0] + cmp r0, r1 + bne _02034F0C + ldrb r1, [r3, #0xc] + cmp r1, #0x0 + beq _02034F0C + add r0, r2, #0x1 + bx lr +_02034F0C: + add r2, r2, #0x1 + add r3, #0x10 + cmp r2, #0x14 + blo _02034EFC + mov r0, #0x0 + bx lr + .balign 4 +_02034F18: .word 0x020F2224 + + thumb_func_start sub_02034F1C +sub_02034F1C: ; 0x02034F1C + ldr r3, _02034F3C ; =0x020F2224 + mov r2, #0x0 +_02034F20: + ldrh r1, [r3, #0x6] + cmp r0, r1 + bne _02034F30 + ldrb r1, [r3, #0xc] + cmp r1, #0x0 + beq _02034F30 + add r0, r2, #0x1 + bx lr +_02034F30: + add r2, r2, #0x1 + add r3, #0x10 + cmp r2, #0x14 + blo _02034F20 + mov r0, #0x0 + bx lr + .balign 4 +_02034F3C: .word 0x020F2224 + + thumb_func_start sub_02034F40 +sub_02034F40: ; 0x02034F40 + push {r3-r6} + asr r3, r1, #0x4 + lsr r3, r3, #0x1b + add r3, r1, r3 + asr r1, r2, #0x4 + lsr r1, r1, #0x1b + add r1, r2, r1 + mov r4, #0x0 + asr r2, r1, #0x5 + ldr r5, _02034F84 ; =0x020F2224 + asr r3, r3, #0x5 + add r1, r4, #0x0 +_02034F58: + ldrh r6, [r5, #0x6] + cmp r0, r6 + bne _02034F76 + ldrh r6, [r5, #0x8] + add r4, r1, #0x1 + lsr r6, r6, #0x5 + cmp r3, r6 + bne _02034F76 + ldrh r6, [r5, #0xa] + lsr r6, r6, #0x5 + cmp r2, r6 + bne _02034F76 + add r0, r4, #0x0 + pop {r3-r6} + bx lr +_02034F76: + add r1, r1, #0x1 + add r5, #0x10 + cmp r1, #0x14 + blo _02034F58 + add r0, r4, #0x0 + pop {r3-r6} + bx lr + .balign 4 +_02034F84: .word 0x020F2224 + + thumb_func_start sub_02034F88 +sub_02034F88: ; 0x02034F88 + push {r4, lr} + ldr r3, _02034FB8 ; =0x020F2224 + mov r4, #0x0 +_02034F8E: + ldrh r2, [r3, #0x6] + cmp r1, r2 + bne _02034FAE + ldrb r2, [r3, #0xd] + cmp r2, #0x0 + beq _02034FAE + ldr r0, [r0, #0xc] + bl sub_020462AC + ldr r2, _02034FBC ; =0x020F2232 + lsl r3, r4, #0x4 + ldrh r2, [r2, r3] + mov r1, #0x1 + bl sub_0205F2E4 + pop {r4, pc} +_02034FAE: + add r4, r4, #0x1 + add r3, #0x10 + cmp r4, #0x14 + blo _02034F8E + pop {r4, pc} + .balign 4 +_02034FB8: .word 0x020F2224 +_02034FBC: .word 0x020F2232 + + thumb_func_start sub_02034FC0 +sub_02034FC0: ; 0x02034FC0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02034E78 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020462AC + ldr r2, _02034FE0 ; =0x020F2232 + lsl r3, r4, #0x4 + ldrh r2, [r2, r3] + mov r1, #0x2 + bl sub_0205F2E4 + pop {r3-r5, pc} + .balign 4 +_02034FE0: .word 0x020F2232 + + thumb_func_start sub_02034FE4 +sub_02034FE4: ; 0x02034FE4 + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, r1, #0x0 + bl sub_02034838 + add r4, r0, #0x0 + cmp r4, #0x18 + blt _0203505C + ldr r0, [r7, #0xc] + bl sub_02023794 + add r6, r0, #0x0 + add r0, r6, #0x4 + bl sub_02012710 + sub r5, r0, #0x1 + bmi _0203500C + ldr r0, _02035060 ; =0x0000016E + cmp r5, r0 + blt _02035010 +_0203500C: + bl sub_02020C2C +_02035010: + ldr r0, [r6, #0x8] + cmp r0, #0x2 + bls _02035044 + ldr r6, [r6, #0x4] + mov r0, #0x3 + tst r0, r6 + bne _0203502A + add r0, r6, #0x0 + mov r1, #0x64 + blx sub_020EBE8C + cmp r1, #0x0 + bne _02035038 +_0203502A: + mov r1, #0x19 + add r0, r6, #0x0 + lsl r1, r1, #0x4 + blx sub_020EBE8C + cmp r1, #0x0 + bne _0203503C +_02035038: + mov r0, #0x1 + b _0203503E +_0203503C: + mov r0, #0x0 +_0203503E: + cmp r0, #0x0 + bne _02035044 + add r5, r5, #0x1 +_02035044: + add r0, r7, #0x0 + bl sub_0204B33C + cmp r0, #0x0 + beq _02035050 + mov r5, #0x1 +_02035050: + lsl r0, r5, #0x2 + sub r4, #0x18 + add r0, r5, r0 + add r1, r4, r0 + ldr r0, _02035064 ; =0x020F2364 + ldrb r0, [r0, r1] +_0203505C: + pop {r3-r7, pc} + nop +_02035060: .word 0x0000016E +_02035064: .word 0x020F2364 + + thumb_func_start sub_02035068 +sub_02035068: ; 0x02035068 + push {r3, lr} + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034824 + cmp r0, #0x0 + beq _0203507A + mov r0, #0x1 + pop {r3, pc} +_0203507A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02035080 +sub_02035080: ; 0x02035080 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02035254 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x1 + bne _020350A6 + add r0, r5, #0x0 + bl sub_020352C4 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _020350E6 +_020350A6: + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205F244 + cmp r0, #0x1 + bne _020350C2 + add r0, r5, #0x0 + bl sub_020352C8 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _020350E6 +_020350C2: + add r0, r5, #0x0 + bl sub_02060144 + cmp r0, #0x1 + bne _020350DA + add r0, r5, #0x0 + bl sub_020352CC + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _020350E6 +_020350DA: + add r0, r5, #0x0 + bl sub_02035270 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] +_020350E6: + mov r0, #0x71 + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r4, r0] + ldr r0, [r5, #0x38] + bl sub_02055B30 + cmp r0, #0x1 + bne _02035106 + ldr r0, [r5, #0x38] + bl sub_020552F8 + add r1, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_02055B8C +_02035106: + ldr r1, _02035114 ; =sub_020352E4 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020463CC + pop {r3-r5, pc} + nop +_02035114: .word sub_020352E4 + 1 + + thumb_func_start sub_02035118 +sub_02035118: ; 0x02035118 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02035254 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020352D4 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + mov r2, #0x1 + add r0, r1, #0x4 + str r2, [r4, r0] + ldr r0, [r5, #0x38] + bl sub_02055B30 + cmp r0, #0x1 + bne _0203514C + ldr r0, [r5, #0x38] + bl sub_020552F8 + add r1, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_02055B8C +_0203514C: + ldr r1, _02035158 ; =sub_020352E4 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020463CC + pop {r3-r5, pc} + .balign 4 +_02035158: .word sub_020352E4 + 1 + + thumb_func_start sub_0203515C +sub_0203515C: ; 0x0203515C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02035254 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020352DC + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + mov r2, #0x0 + add r0, r1, #0x4 + str r2, [r4, r0] + ldr r0, [r5, #0x38] + bl sub_02055B30 + cmp r0, #0x1 + bne _02035190 + ldr r0, [r5, #0x38] + bl sub_020552F8 + add r1, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_02055B8C +_02035190: + ldr r1, _0203519C ; =sub_020352E4 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020463CC + pop {r3-r5, pc} + .balign 4 +_0203519C: .word sub_020352E4 + 1 + + thumb_func_start sub_020351A0 +sub_020351A0: ; 0x020351A0 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0203524C ; =0x000005FD + bl sub_020054C8 + bl sub_02035254 + add r4, r0, #0x0 + mov r0, #0x71 + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r4, r0] + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x1 + bne _020351D4 + add r0, r5, #0x0 + bl sub_020352C4 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _02035240 +_020351D4: + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205F244 + cmp r0, #0x1 + bne _020351F0 + add r0, r5, #0x0 + bl sub_020352C8 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _02035240 +_020351F0: + add r0, r5, #0x0 + bl sub_02060144 + cmp r0, #0x1 + bne _02035208 + add r0, r5, #0x0 + bl sub_020352CC + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _02035240 +_02035208: + ldr r0, [r5, #0x6c] + cmp r0, #0x3 + bne _0203521C + add r0, r5, #0x0 + bl sub_020352DC + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _02035240 +_0203521C: + cmp r0, #0x2 + bne _02035234 + add r0, r5, #0x0 + bl sub_020352D4 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + mov r2, #0x1 + add r0, r1, #0x4 + str r2, [r4, r0] + b _02035240 +_02035234: + add r0, r5, #0x0 + bl sub_02035270 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] +_02035240: + ldr r0, [r5, #0x10] + ldr r1, _02035250 ; =sub_020352E4 + add r2, r4, #0x0 + bl sub_020463EC + pop {r3-r5, pc} + .balign 4 +_0203524C: .word 0x000005FD +_02035250: .word sub_020352E4 + 1 + + thumb_func_start sub_02035254 +sub_02035254: ; 0x02035254 + push {r3, lr} + mov r1, #0x2 + mov r0, #0xb + lsl r1, r1, #0x8 + bl sub_02016998 + mov r2, #0x0 + strh r2, [r0, #0x2a] + mov r1, #0x7e + strh r2, [r0, #0x28] + lsl r1, r1, #0x2 + str r2, [r0, r1] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02035270 +sub_02035270: ; 0x02035270 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r4, #0x0 + bl sub_02024DA0 + bl sub_02024D64 + cmp r0, #0x0 + bne _02035288 + mov r0, #0x1 + orr r4, r0 +_02035288: + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205F388 + cmp r0, #0x0 + bne _0203529A + mov r0, #0x2 + orr r4, r0 +_0203529A: + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205ECE0 + cmp r0, #0x0 + bne _020352AC + mov r0, #0x4 + orr r4, r0 +_020352AC: + ldr r0, [r5, #0x1c] + ldr r0, [r0, #0x0] + bl sub_020349CC + cmp r0, #0x1 + bne _020352BC + mov r0, #0x6 + orr r4, r0 +_020352BC: + mov r0, #0x6 + lsl r0, r0, #0x6 + orr r0, r4 + pop {r3-r5, pc} + + thumb_func_start sub_020352C4 +sub_020352C4: ; 0x020352C4 + mov r0, #0x90 + bx lr + + thumb_func_start sub_020352C8 +sub_020352C8: ; 0x020352C8 + mov r0, #0x94 + bx lr + + thumb_func_start sub_020352CC +sub_020352CC: ; 0x020352CC + ldr r0, _020352D0 ; =0x00000195 + bx lr + .balign 4 +_020352D0: .word 0x00000195 + + thumb_func_start sub_020352D4 +sub_020352D4: ; 0x020352D4 + mov r0, #0x11 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_020352DC +sub_020352DC: ; 0x020352DC + ldr r0, _020352E0 ; =0x00000191 + bx lr + .balign 4 +_020352E0: .word 0x00000191 + + thumb_func_start sub_020352E4 +sub_020352E4: ; 0x020352E4 + push {r4-r6, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldrh r1, [r4, #0x2a] + cmp r1, #0xf + bhi _02035362 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r3, #0 + lsl r6, r1, #0x1 + lsl r6, r3, #0x1 + lsl r6, r4, #0x1 + lsl r6, r5, #0x1 + lsl r6, r6, #0x1 + lsl r6, r7, #0x1 + lsl r6, r0, #0x2 + lsl r6, r6, #0x2 + lsl r4, r1, #0x3 + lsl r4, r5, #0x3 + lsl r0, r1, #0x4 + lsl r6, r1, #0x2 + lsl r6, r6, #0x4 + lsl r6, r5, #0x5 + lsl r0, r5, #0x4 + ldr r0, [r5, #0x34] + bl sub_02058780 + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_0205CE80 + mov r1, #0x7a + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02063964 + add r0, r6, #0x0 + bl sub_0203549C + add r0, r6, #0x0 + bl sub_02035734 + mov r0, #0x1 + strh r0, [r4, #0x2a] + b _02035484 +_02035358: + .byte 0x30, 0x1C, 0x00, 0xF0, 0xC3, 0xFA, 0x00, 0x28 + .byte 0x00, 0xD0 +_02035362: + b _02035484 +_02035364: + .byte 0x00, 0x20, 0x70, 0xBD, 0x30, 0x1C, 0x00, 0xF0, 0x99, 0xFC, 0x89, 0xE0 + .byte 0x30, 0x1C, 0x00, 0xF0, 0xB3, 0xFC, 0x85, 0xE0, 0x30, 0x1C, 0x01, 0xF0, 0x39, 0xF9, 0x81, 0xE0 + .byte 0x30, 0x1C, 0x01, 0xF0, 0x5F, 0xF9, 0x7D, 0xE0, 0x30, 0x1C, 0x01, 0xF0, 0x3D, 0xFD, 0x79, 0xE0 + .byte 0x30, 0x1C, 0x01, 0xF0, 0xC3, 0xFD, 0x75, 0xE0, 0x28, 0x1C, 0x11, 0xF0, 0x83, 0xF8, 0x00, 0x28 + .byte 0x70, 0xD0, 0x68, 0x6B, 0x23, 0xF0, 0xEC, 0xF9, 0x30, 0x1C, 0x00, 0xF0, 0x77, 0xF8, 0x30, 0x1C + .byte 0x00, 0xF0, 0xC0, 0xF9, 0x01, 0x20, 0xA2, 0xF1, 0x75, 0xFC, 0x0E, 0x20, 0x60, 0x85, 0x61, 0xE0 + .byte 0x28, 0x1C, 0x11, 0xF0, 0x6F, 0xF8, 0x00, 0x28, 0x5C, 0xD0, 0x01, 0x20, 0xA2, 0xF1, 0x6A, 0xFC + .byte 0x09, 0x20, 0x60, 0x85, 0x56, 0xE0, 0xD8, 0xF7, 0x97, 0xFF, 0x00, 0x28, 0x52, 0xD0, 0x20, 0x1C + .byte 0x29, 0x1C, 0x00, 0xF0, 0xD3, 0xFA, 0x20, 0x1C, 0xE1, 0xF7, 0x16, 0xFB, 0x68, 0x6B, 0x23, 0xF0 + .byte 0xDF, 0xF9, 0x01, 0x20, 0x70, 0xBD, 0x28, 0x1C, 0x11, 0xF0, 0x54, 0xF8, 0x00, 0x28, 0x41, 0xD0 + .byte 0x68, 0x6B, 0x23, 0xF0, 0xBD, 0xF9, 0x01, 0x20, 0xA2, 0xF1, 0x4C, 0xFC, 0x0B, 0x20, 0x60, 0x85 + .byte 0x38, 0xE0, 0xD8, 0xF7, 0x79, 0xFF, 0x00, 0x28, 0x34, 0xD0, 0x72, 0x22, 0x92, 0x00, 0xA1, 0x58 + .byte 0x30, 0x32, 0xA2, 0x58, 0x30, 0x1C, 0x10, 0xF0, 0xE1, 0xFF, 0x20, 0x1C, 0xE1, 0xF7, 0xF4, 0xFA + .byte 0x28, 0xE0, 0xE1, 0xF7, 0xF1, 0xFA, 0x68, 0x6B, 0x23, 0xF0, 0xBA, 0xF9, 0x01, 0x20, 0x70, 0xBD + .byte 0x29, 0x1C, 0x00, 0xF0, 0xA3, 0xFA, 0x20, 0x1C, 0x00, 0xF0, 0x66, 0xF9, 0x20, 0x1C, 0x01, 0x21 + .byte 0xD7, 0xF7, 0x52, 0xFC, 0x20, 0x1C, 0xE3, 0xF7, 0x8F, 0xFE, 0x30, 0x1C, 0x00, 0xF0, 0x20, 0xFA + .byte 0xA8, 0x68, 0x03, 0x21, 0xE5, 0xF7, 0x00, 0xFC, 0x20, 0x1C, 0xE1, 0xF7, 0xD5, 0xFA, 0x68, 0x6B + .byte 0x23, 0xF0, 0x9E, 0xF9, 0x01, 0x20, 0x70, 0xBD, 0xD8, 0xF7, 0x46, 0xFF, 0x00, 0x28, 0x01, 0xD0 + .byte 0x01, 0x20, 0x60, 0x85 +_02035484: + ldr r0, [r4, #0x20] + cmp r0, #0x0 + beq _02035496 + add r0, r4, #0x0 + bl sub_02035BB0 + ldr r0, [r4, #0x38] + bl sub_0201FDEC +_02035496: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203549C +sub_0203549C: ; 0x0203549C + push {r3-r7, lr} + sub sp, #0x30 + add r4, r0, #0x0 + bl sub_02046528 + str r0, [sp, #0x1c] + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x30 + bl sub_0203566C + str r0, [sp, #0x14] + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0xb + str r0, [sp, #0x4] + ldr r0, [sp, #0x14] + mov r2, #0x3 + lsl r1, r0, #0x1 + add r0, r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, _02035658 ; =0x0000023B + add r1, r4, #0x0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x1c] + mov r3, #0x14 + ldr r0, [r0, #0x8] + bl sub_02019064 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r3, #0xb + ldr r0, [sp, #0x1c] + str r3, [sp, #0x4] + ldr r0, [r0, #0x8] + ldr r2, _0203565C ; =0x000003D9 + mov r1, #0x3 + bl sub_0200CB00 + ldr r2, _0203565C ; =0x000003D9 + add r0, r4, #0x0 + mov r1, #0x1 + mov r3, #0xb + bl sub_0200CCA4 + ldr r2, _02035660 ; =0x00000143 + mov r0, #0x0 + mov r1, #0x1a + mov r3, #0xb + bl sub_0200A86C + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + mov r1, #0xb + bl sub_02012838 + str r0, [r4, #0x24] + mov r5, #0x0 + ldr r0, [sp, #0x14] + strh r5, [r4, #0x28] + cmp r0, #0x0 + bls _020355BC +_02035526: + add r0, r4, r5 + add r0, #0x30 + ldrb r3, [r0, #0x0] + cmp r3, #0x3 + bne _02035594 + mov r0, #0xb + bl sub_0200AA80 + add r6, r0, #0x0 + mov r0, #0x8 + mov r1, #0xb + bl sub_020219F4 + add r1, r4, r5 + add r1, #0x30 + ldrb r1, [r1, #0x0] + add r7, r0, #0x0 + ldr r0, [sp, #0x18] + lsl r2, r1, #0x3 + ldr r1, _02035664 ; =0x020F2ACC + ldr r1, [r1, r2] + bl sub_0200A914 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + ldr r0, [r0, #0xc] + bl sub_020238F4 + add r2, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_0200ABC0 + ldr r2, [sp, #0x20] + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_0200B7B8 + add r2, r4, r5 + add r2, #0x30 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x24] + add r1, r7, #0x0 + bl sub_020128A0 + ldr r0, [sp, #0x20] + bl sub_02021A20 + add r0, r7, #0x0 + bl sub_02021A20 + add r0, r6, #0x0 + bl sub_0200AB18 + b _020355A2 +_02035594: + ldr r2, _02035664 ; =0x020F2ACC + lsl r6, r3, #0x3 + ldr r0, [r4, #0x24] + ldr r1, [sp, #0x18] + ldr r2, [r2, r6] + bl sub_02012880 +_020355A2: + ldr r0, [sp, #0x1c] + add r0, #0x8c + ldr r1, [r0, #0x0] + add r0, r4, r5 + add r0, #0x30 + ldrb r0, [r0, #0x0] + cmp r1, r0 + bne _020355B4 + strh r5, [r4, #0x28] +_020355B4: + ldr r0, [sp, #0x14] + add r5, r5, #0x1 + cmp r5, r0 + blo _02035526 +_020355BC: + ldrh r0, [r4, #0x28] + add r0, r4, r0 + add r0, #0x30 + ldrb r1, [r0, #0x0] + ldr r0, [sp, #0x1c] + add r0, #0x8c + str r1, [r0, #0x0] + ldr r0, [sp, #0x18] + bl sub_0200A8B8 + ldr r0, [r4, #0x24] + mov r1, #0x1 + str r0, [sp, #0x24] + str r4, [sp, #0x28] + add r0, sp, #0x24 + strb r1, [r0, #0x8] + strb r1, [r0, #0x9] + ldr r1, [sp, #0x14] + strb r1, [r0, #0xa] + ldrb r2, [r0, #0xb] + mov r1, #0xf + bic r2, r1 + mov r1, #0x8 + orr r1, r2 + strb r1, [r0, #0xb] + ldrb r2, [r0, #0xb] + mov r1, #0x30 + bic r2, r1 + mov r1, #0x10 + orr r1, r2 + strb r1, [r0, #0xb] + ldr r1, [sp, #0x14] + ldrb r2, [r0, #0xb] + cmp r1, #0x4 + blo _0203560E + mov r1, #0xc0 + bic r2, r1 + mov r1, #0x40 + orr r1, r2 + strb r1, [r0, #0xb] + b _02035614 +_0203560E: + mov r1, #0xc0 + bic r2, r1 + strb r2, [r0, #0xb] +_02035614: + mov r0, #0xb + str r0, [sp, #0x0] + ldr r0, _02035668 ; =0x00000402 + mov r1, #0x1c + str r0, [sp, #0x4] + ldrh r3, [r4, #0x28] + add r0, sp, #0x24 + mov r2, #0x4 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl sub_02001B8C + str r0, [r4, #0x20] + add r0, r4, #0x0 + bl sub_02019220 + ldr r0, [sp, #0x1c] + ldr r0, [r0, #0xc] + bl sub_020238F4 + bl sub_020239CC + add r3, r0, #0x0 + add r0, r4, #0x0 + add r4, #0x30 + lsl r3, r3, #0x18 + ldr r2, [sp, #0x14] + add r1, r4, #0x0 + lsr r3, r3, #0x18 + bl sub_020359B8 + add sp, #0x30 + pop {r3-r7, pc} + nop +_02035658: .word 0x0000023B +_0203565C: .word 0x000003D9 +_02035660: .word 0x00000143 +_02035664: .word 0x020F2ACC +_02035668: .word 0x00000402 + + thumb_func_start sub_0203566C +sub_0203566C: ; 0x0203566C + push {r3-r4} + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + sub r3, #0xc0 + mov r2, #0x0 + tst r3, r4 + bne _02035682 + mov r3, #0x8 + strb r3, [r1, #0x0] + add r2, r2, #0x1 +_02035682: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x80 + tst r3, r4 + bne _02035694 + mov r3, #0x7 + strb r3, [r1, r2] + add r2, r2, #0x1 +_02035694: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x1 + tst r3, r4 + bne _020356A6 + mov r3, #0x0 + strb r3, [r1, r2] + add r2, r2, #0x1 +_020356A6: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x2 + tst r3, r4 + bne _020356B8 + mov r3, #0x1 + strb r3, [r1, r2] + add r2, r2, #0x1 +_020356B8: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x4 + tst r3, r4 + bne _020356CA + mov r3, #0x2 + strb r3, [r1, r2] + add r2, r2, #0x1 +_020356CA: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x8 + tst r3, r4 + bne _020356DC + mov r3, #0x3 + strb r3, [r1, r2] + add r2, r2, #0x1 +_020356DC: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x10 + tst r3, r4 + bne _020356EE + mov r3, #0x4 + strb r3, [r1, r2] + add r2, r2, #0x1 +_020356EE: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x20 + tst r3, r4 + bne _02035700 + mov r3, #0x5 + strb r3, [r1, r2] + add r2, r2, #0x1 +_02035700: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r3, [r0, r3] + mov r0, #0x40 + tst r0, r3 + bne _02035712 + mov r0, #0x6 + strb r0, [r1, r2] + add r2, r2, #0x1 +_02035712: + add r0, r2, #0x0 + pop {r3-r4} + bx lr + + thumb_func_start sub_02035718 +sub_02035718: ; 0x02035718 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02035B78 + ldr r0, [r4, #0x20] + mov r1, #0x0 + bl sub_02001C5C + ldr r0, [r4, #0x24] + bl sub_02012870 + mov r0, #0x0 + str r0, [r4, #0x20] + pop {r4, pc} + + thumb_func_start sub_02035734 +sub_02035734: ; 0x02035734 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x1 + bne _0203575A + mov r6, #0x0 + b _0203576C +_0203575A: + ldr r0, [r4, #0xc] + bl sub_020462AC + bl sub_0205F244 + cmp r0, #0x1 + beq _0203576A + b _0203588E +_0203576A: + mov r6, #0x1 +_0203576C: + mov r3, #0x1 + str r3, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _02035894 ; =0x0000032D + add r1, r5, #0x0 + str r0, [sp, #0x10] + ldr r0, [r4, #0x8] + add r1, #0x10 + mov r2, #0x3 + bl sub_02019064 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r3, #0xb + str r3, [sp, #0x4] + ldr r0, [r4, #0x8] + ldr r2, _02035898 ; =0x000003D9 + mov r1, #0x3 + bl sub_0200CB00 + add r0, r5, #0x0 + ldr r2, _02035898 ; =0x000003D9 + add r0, #0x10 + mov r1, #0x1 + mov r3, #0xb + bl sub_0200CCA4 + add r0, r5, #0x0 + add r0, #0x10 + mov r1, #0xf + bl sub_02019620 + ldr r2, _0203589C ; =0x00000143 + mov r0, #0x0 + mov r1, #0x1a + mov r3, #0xb + bl sub_0200A86C + str r0, [sp, #0x1c] + cmp r6, #0x0 + bne _020357D0 + mov r1, #0x9 + bl sub_0200A914 + b _020357D6 +_020357D0: + mov r1, #0xa + bl sub_0200A914 +_020357D6: + mov r1, #0x0 + add r7, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r0, #0x10 + add r2, r7, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl sub_0201BD84 + add r0, r7, #0x0 + bl sub_02021A20 + mov r0, #0xb + bl sub_0200AA80 + add r7, r0, #0x0 + mov r0, #0x20 + mov r1, #0xb + bl sub_020219F4 + str r0, [sp, #0x18] + ldr r0, [sp, #0x1c] + mov r1, #0xb + bl sub_0200A914 + str r0, [sp, #0x14] + cmp r6, #0x0 + bne _02035834 + ldr r0, [r4, #0xc] + bl sub_02034E30 + bl sub_02034E24 + mov r1, #0x0 + add r2, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldrh r2, [r2, #0x0] + add r0, r7, #0x0 + mov r3, #0x2 + bl sub_0200AD38 + b _0203584C +_02035834: + add r0, r4, #0x0 + bl sub_0204BAB0 + mov r1, #0x0 + add r2, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r7, #0x0 + mov r3, #0x2 + bl sub_0200AD38 +_0203584C: + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x14] + add r0, r7, #0x0 + bl sub_0200B7B8 + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + mov r1, #0x0 + add r0, r5, #0x0 + ldr r2, [sp, #0x18] + add r0, #0x10 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl sub_0201BD84 + ldr r0, [sp, #0x18] + bl sub_02021A20 + ldr r0, [sp, #0x14] + bl sub_02021A20 + add r0, r7, #0x0 + bl sub_0200AB18 + ldr r0, [sp, #0x1c] + bl sub_0200A8B8 + add r5, #0x10 + add r0, r5, #0x0 + bl sub_02019220 +_0203588E: + add sp, #0x20 + pop {r3-r7, pc} + nop +_02035894: .word 0x0000032D +_02035898: .word 0x000003D9 +_0203589C: .word 0x00000143 + + thumb_func_start sub_020358A0 +sub_020358A0: ; 0x020358A0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x0 + bne _020358CE + ldr r0, [r4, #0xc] + bl sub_020462AC + bl sub_0205F244 + cmp r0, #0x0 + beq _020358E0 +_020358CE: + add r0, r5, #0x0 + add r0, #0x10 + mov r1, #0x1 + bl sub_0200CCF8 + add r5, #0x10 + add r0, r5, #0x0 + bl sub_02019178 +_020358E0: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020358E4 +sub_020358E4: ; 0x020358E4 + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + bl sub_02001E5C + add r6, r0, #0x0 + mov r1, #0x5e + ldr r0, [r5, #0x20] + lsl r1, r1, #0x4 + bl sub_02001D2C + str r0, [r5, #0x2c] + ldr r0, [r5, #0x20] + bl sub_02001E5C + strh r0, [r5, #0x28] + ldrh r1, [r5, #0x28] + cmp r6, r1 + beq _0203593A + mov r0, #0x67 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r0, [r0, #0x0] + bl sub_02035BE8 + ldrh r2, [r5, #0x28] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02035C44 + ldrh r0, [r5, #0x28] + add r4, #0x8c + add r0, r5, r0 + add r0, #0x30 + ldrb r0, [r0, #0x0] + str r0, [r4, #0x0] +_0203593A: + ldrh r0, [r5, #0x28] + add r0, r0, #0x1 + lsl r0, r0, #0x2 + add r1, r5, r0 + mov r0, #0x67 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + ldr r0, [r0, #0x0] + bl sub_02035C78 + mov r1, #0x1 + ldr r2, [r5, #0x2c] + mvn r1, r1 + cmp r2, r1 + beq _02035960 + add r0, r1, #0x1 + cmp r2, r0 + beq _02035982 + b _02035966 +_02035960: + mov r0, #0xd + strh r0, [r5, #0x2a] + b _02035982 +_02035966: + ldr r0, _02035988 ; =0x020F2AD0 + lsl r2, r2, #0x3 + ldr r2, [r0, r2] + cmp r2, r1 + bne _02035976 + mov r0, #0xd + strh r0, [r5, #0x2a] + b _02035982 +_02035976: + add r0, r1, #0x1 + cmp r2, r0 + beq _02035982 + add r0, r7, #0x0 + blx r2 + pop {r3-r7, pc} +_02035982: + mov r0, #0x1 + pop {r3-r7, pc} + nop +_02035988: .word 0x020F2AD0 + + thumb_func_start sub_0203598C +sub_0203598C: ; 0x0203598C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0202EDF8 + cmp r0, #0x0 + beq _020359B4 + mov r0, #0x71 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + cmp r0, #0x0 + beq _020359B4 + ldr r0, [r4, #0x7c] + bl sub_02052F74 + bl sub_02031B50 + mov r0, #0x0 + bl sub_02052B74 +_020359B4: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020359B8 +sub_020359B8: ; 0x020359B8 + push {r4-r7, lr} + sub sp, #0xb4 + ldr r4, _02035B60 ; =0x020F2AB4 + str r3, [sp, #0x18] + add r3, sp, #0x9c + str r2, [sp, #0x14] + str r0, [sp, #0xc] + str r1, [sp, #0x10] + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [sp, #0xc] + add r1, r2, #0x0 + add r0, #0x38 + mov r2, #0x8 + mov r3, #0xb + bl sub_021D959C + mov r0, #0x2 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, _02035B64 ; =0x000034D8 + mov r1, #0x42 + str r0, [sp, #0x8] + ldr r0, [sp, #0xc] + mov r2, #0x5 + add r0, #0x38 + mov r3, #0x0 + bl sub_021D967C + ldr r0, _02035B64 ; =0x000034D8 + mov r1, #0x42 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + mov r2, #0x1 + add r0, #0x38 + mov r3, #0x0 + bl sub_021D96F4 + ldr r0, _02035B64 ; =0x000034D8 + mov r2, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + mov r1, #0x42 + add r0, #0x38 + add r3, r2, #0x0 + bl sub_021D9708 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, _02035B64 ; =0x000034D8 + mov r1, #0x42 + str r0, [sp, #0x4] + ldr r0, [sp, #0xc] + mov r2, #0x2 + add r0, #0x38 + mov r3, #0x0 + bl sub_021D971C + ldr r0, [sp, #0xc] + ldr r1, _02035B68 ; =0x020F2B14 + add r0, #0x38 + bl sub_021D9820 + mov r2, #0x67 + ldr r1, [sp, #0xc] + lsl r2, r2, #0x2 + str r0, [r1, r2] + add r0, r1, #0x0 + ldr r0, [r0, r2] + ldrh r1, [r1, #0x28] + ldr r0, [r0, #0x0] + bl sub_02035BE8 + ldr r0, _02035B6C ; =0x000034D9 + mov r1, #0x42 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + mov r2, #0x4 + add r0, #0x38 + mov r3, #0x0 + bl sub_021D96F4 + ldr r0, _02035B6C ; =0x000034D9 + mov r1, #0x42 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + mov r2, #0x3 + add r0, #0x38 + mov r3, #0x0 + bl sub_021D9708 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, _02035B6C ; =0x000034D9 + mov r1, #0x42 + str r0, [sp, #0x4] + ldr r0, [sp, #0xc] + mov r2, #0x6 + add r0, #0x38 + mov r3, #0x0 + bl sub_021D971C + ldr r0, [sp, #0x14] + mov r4, #0x0 + cmp r0, #0x0 + bls _02035B2C + ldr r5, [sp, #0xc] + ldr r3, _02035B70 ; =0x020F2B48 + add r7, r4, #0x0 + add r2, sp, #0x28 + mov r6, #0x6 +_02035AA2: + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + sub r6, r6, #0x1 + bne _02035AA2 + ldr r0, [r3, #0x0] + ldr r3, _02035B74 ; =0x020F2AA8 + str r0, [r2, #0x0] + ldmia r3!, {r0-r1} + add r2, sp, #0x1c + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] +_02035ABA: + add r6, sp, #0x28 + add r3, sp, #0x68 + mov r2, #0x6 +_02035AC0: + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02035AC0 + ldr r0, [r6, #0x0] + add r1, sp, #0x68 + str r0, [r3, #0x0] + mov r0, #0x2 + ldrsh r0, [r1, r0] + add r0, r0, r7 + strh r0, [r1, #0x2] + ldr r0, [sp, #0x10] + ldrb r2, [r0, r4] + cmp r2, #0x2 + bne _02035AEA + ldr r0, [sp, #0x18] + cmp r0, #0x1 + bne _02035AEA + mov r0, #0x1b + strh r0, [r1, #0x6] + b _02035AF2 +_02035AEA: + lsl r0, r2, #0x1 + add r1, r2, r0 + add r0, sp, #0x68 + strh r1, [r0, #0x6] +_02035AF2: + ldr r0, [sp, #0xc] + add r1, sp, #0x68 + add r0, #0x38 + bl sub_021D9820 + mov r1, #0x1a + lsl r1, r1, #0x4 + add r2, sp, #0x5c + add r3, sp, #0x1c + str r0, [r5, r1] + ldmia r3!, {r0-r1} + add r6, r2, #0x0 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r1, r6, #0x0 + str r0, [r2, #0x0] + mov r0, #0x1a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r2, #0x1 + ldr r0, [r0, #0x0] + bl sub_02020074 + ldr r0, [sp, #0x14] + add r4, r4, #0x1 + add r7, #0x18 + add r5, r5, #0x4 + cmp r4, r0 + blo _02035ABA +_02035B2C: + ldr r0, [sp, #0xc] + mov r2, #0x1 + ldrh r0, [r0, #0x28] + add r0, r0, #0x1 + lsl r1, r0, #0x2 + ldr r0, [sp, #0xc] + add r1, r0, r1 + mov r0, #0x67 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + mov r1, #0x2 + ldr r0, [r0, #0x0] + bl sub_02035C18 + ldr r0, [sp, #0x14] + mov r1, #0x6f + add r2, r0, #0x1 + ldr r0, [sp, #0xc] + lsl r1, r1, #0x2 + str r2, [r0, r1] + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E6E4 + add sp, #0xb4 + pop {r4-r7, pc} + .balign 4 +_02035B60: .word 0x020F2AB4 +_02035B64: .word 0x000034D8 +_02035B68: .word 0x020F2B14 +_02035B6C: .word 0x000034D9 +_02035B70: .word 0x020F2B48 +_02035B74: .word 0x020F2AA8 + + thumb_func_start sub_02035B78 +sub_02035B78: ; 0x02035B78 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x6f + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r4, #0x0 + cmp r0, #0x0 + bls _02035BA6 + mov r7, #0x67 + lsl r7, r7, #0x2 + add r6, r7, #0x0 + add r6, #0x20 +_02035B90: + lsl r0, r4, #0x2 + add r0, r5, r0 + ldr r0, [r0, r7] + bl sub_0200C3DC + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [r5, r6] + cmp r4, r0 + blo _02035B90 +_02035BA6: + add r5, #0x38 + add r0, r5, #0x0 + bl sub_021D99F8 + pop {r3-r7, pc} + + thumb_func_start sub_02035BB0 +sub_02035BB0: ; 0x02035BB0 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x6f + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r4, #0x0 + cmp r0, #0x0 + bls _02035BE4 + mov r7, #0x67 + lsl r7, r7, #0x2 + add r6, r7, #0x0 + add r6, #0x20 +_02035BC8: + lsl r0, r4, #0x2 + add r0, r5, r0 + ldr r0, [r0, r7] + mov r1, #0x1 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xc + bl sub_020201E4 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [r5, r6] + cmp r4, r0 + blo _02035BC8 +_02035BE4: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02035BE8 +sub_02035BE8: ; 0x02035BE8 + push {r3-r6, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0202011C + add r6, r0, #0x0 + add r3, sp, #0x0 + ldmia r6!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r6, #0x0] + add r1, r2, #0x0 + str r0, [r3, #0x0] + mov r0, #0x18 + mul r0, r4 + add r0, #0x14 + lsl r0, r0, #0xc + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02020044 + add sp, #0xc + pop {r3-r6, pc} + + thumb_func_start sub_02035C18 +sub_02035C18: ; 0x02035C18 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_020201DC + mov r1, #0x3 + blx sub_020EBE8C + add r2, r0, #0x0 + lsl r1, r2, #0x1 + add r1, r2, r1 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02020130 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0202027C + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02035C44 +sub_02035C44: ; 0x02035C44 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x1 + lsl r0, r0, #0x2 + add r1, r5, r0 + mov r0, #0x67 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + mov r1, #0x0 + add r4, r2, #0x0 + ldr r0, [r0, #0x0] + add r2, r1, #0x0 + bl sub_02035C18 + add r0, r4, #0x1 + lsl r0, r0, #0x2 + add r1, r5, r0 + mov r0, #0x67 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r2, r1, #0x0 + bl sub_02035C18 + pop {r3-r5, pc} + + thumb_func_start sub_02035C78 +sub_02035C78: ; 0x02035C78 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020201DC + mov r1, #0x3 + blx sub_020EBE8C + cmp r1, #0x1 + bne _02035C9E + add r0, r4, #0x0 + bl sub_02020388 + cmp r0, #0x0 + bne _02035C9E + add r0, r4, #0x0 + mov r1, #0x2 + mov r2, #0x1 + bl sub_02035C18 +_02035C9E: + pop {r4, pc} + + thumb_func_start sub_02035CA0 +sub_02035CA0: ; 0x02035CA0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0200E308 + cmp r0, #0x0 + beq _02035CD8 + add r0, r5, #0x0 + bl sub_02046528 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + bl sub_02035718 + add r0, r4, #0x0 + bl sub_02019178 + add r0, r5, #0x0 + bl sub_020358A0 + mov r1, #0x72 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + blx r1 + mov r0, #0x3 + strh r0, [r4, #0x2a] +_02035CD8: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02035CDC +sub_02035CDC: ; 0x02035CDC + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204647C + cmp r0, #0x0 + bne _02035D02 + mov r1, #0x72 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + blx r1 +_02035D02: + pop {r4-r6, pc} + + thumb_func_start sub_02035D04 +sub_02035D04: ; 0x02035D04 + mov r2, #0x72 + lsl r2, r2, #0x2 + str r1, [r0, r2] + mov r1, #0x3 + strh r1, [r0, #0x2a] + bx lr + + thumb_func_start sub_02035D10 +sub_02035D10: ; 0x02035D10 + push {r4, lr} + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl sub_021D7CA4 + mov r0, #0x72 + ldr r1, _02035D30 ; =sub_02035D34 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_02035D30: .word sub_02035D34 + 1 + + thumb_func_start sub_02035D34 +sub_02035D34: ; 0x02035D34 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r6, r0, #0x0 + mov r0, #0xb + mov r1, #0x20 + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02024DA0 + str r0, [sp, #0x0] + ldr r0, [r5, #0xc] + bl sub_020238F4 + str r0, [sp, #0x4] + ldr r0, [r5, #0xc] + bl sub_020462AC + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + str r0, [r4, #0x0] + ldr r0, [sp, #0x4] + str r0, [r4, #0x4] + add r0, r5, #0x0 + bl sub_0204B2A4 + str r0, [r4, #0x8] + add r0, r7, #0x0 + mov r1, #0x0 + bl sub_0205F524 + str r0, [r4, #0xc] + add r0, r7, #0x0 + mov r1, #0x1 + bl sub_0205F524 + str r0, [r4, #0x10] + add r0, r7, #0x0 + mov r1, #0x2 + bl sub_0205F524 + str r0, [r4, #0x14] + add r0, r7, #0x0 + mov r1, #0x3 + bl sub_0205F524 + str r0, [r4, #0x18] + add r0, r5, #0x0 + add r0, #0xb0 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + str r0, [r4, #0x1c] + add r0, r5, #0x0 + bl sub_02038690 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r4, [r6, r0] + ldr r1, _02035DC4 ; =sub_02035DC8 + sub r0, #0x30 + str r1, [r6, r0] + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02035DC4: .word sub_02035DC8 + 1 + + thumb_func_start sub_02035DC8 +sub_02035DC8: ; 0x02035DC8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + cmp r1, #0x0 + beq _02035DF0 + mov r0, #0xb + bl sub_02016A8C +_02035DF0: + mov r0, #0xc + strh r0, [r4, #0x2a] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02035DF8 +sub_02035DF8: ; 0x02035DF8 + push {r4, lr} + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl sub_021D7CA4 + mov r0, #0x72 + ldr r1, _02035E18 ; =sub_02035E1C + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_02035E18: .word sub_02035E1C + 1 + + thumb_func_start sub_02035E1C +sub_02035E1C: ; 0x02035E1C + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + mov r1, #0x7a + add r4, r0, #0x0 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + mov r2, #0x0 + bl sub_020379C8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, _02035E4C ; =sub_02035E50 + sub r1, #0x30 + str r0, [r4, r1] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02035E4C: .word sub_02035E50 + 1 + + thumb_func_start sub_02035E50 +sub_02035E50: ; 0x02035E50 + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x40 + bl sub_02016998 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r2, #0x40 + add r6, r0, #0x0 + blx sub_020DF438 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + add r0, r6, #0x0 + add r0, #0x23 + ldrb r0, [r0, #0x0] + cmp r0, #0x17 + bls _02035E90 + b _020361E6 +_02035E90: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0xd + lsl r6, r5, #0 + lsl r0, r1, #0xd + lsl r4, r1, #0x9 + lsl r4, r5, #0x2 + lsl r2, r6, #0x4 + lsl r0, r7, #0x6 + lsl r6, r1, #0x8 + lsl r6, r4, #0xa + lsl r2, r2, #0xb + lsl r4, r5, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + lsl r6, r0, #0xc + mov r0, #0xb + mov r1, #0x30 + bl sub_02016998 + add r7, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + str r0, [r7, #0x0] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r7, #0x4] + mov r0, #0x1 + strb r0, [r7, #0x11] + add r0, r6, #0x0 + add r0, #0x22 + ldrb r0, [r0, #0x0] + strb r0, [r7, #0x14] + ldr r0, [r7, #0x0] + bl sub_0206B9AC + strb r0, [r7, #0x13] + mov r0, #0x0 + strh r0, [r7, #0x18] + strb r0, [r7, #0x12] + ldr r0, [r5, #0xc] + bl sub_0202A918 + str r0, [r7, #0x20] + ldr r0, [r5, #0xc] + bl sub_0206BB28 + str r0, [r7, #0x1c] + ldr r0, [r5, #0xc] + bl sub_02079C70 + str r0, [r7, #0x2c] + mov r0, #0x0 + str r0, [r7, #0x28] + ldr r1, _0203626C ; =0x020F2A9C + add r0, r7, #0x0 + bl sub_0207B000 + ldr r0, [r5, #0xc] + bl sub_020238F4 + add r1, r0, #0x0 + add r0, r7, #0x0 + bl sub_0207C2A4 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_0203796C + mov r0, #0x7e + lsl r0, r0, #0x2 + str r7, [r4, r0] + ldr r1, _02036270 ; =sub_0203684C + add r0, r4, #0x0 + bl sub_02035D04 + b _0203625E +_02035F4A: + .byte 0x0B, 0x20, 0x30, 0x21, 0xE0, 0xF7 + .byte 0x23, 0xFD, 0x07, 0x1C, 0xE8, 0x68, 0x35, 0xF0, 0xE1, 0xFD, 0x38, 0x60, 0xE8, 0x68, 0xED, 0xF7 + .byte 0xCF, 0xFC, 0x78, 0x60, 0x01, 0x21, 0x30, 0x1C, 0x79, 0x74, 0x22, 0x30, 0x00, 0x78, 0x38, 0x75 + .byte 0xF9, 0x74, 0xF0, 0x8C, 0x38, 0x83, 0x02, 0x20, 0xB8, 0x74, 0xE8, 0x68, 0x35, 0xF0, 0xD4, 0xFD + .byte 0xF8, 0x61, 0xE8, 0x68, 0x43, 0xF0, 0x74, 0xFE, 0xF8, 0x62, 0x00, 0x20, 0xB8, 0x62, 0xB9, 0x49 + .byte 0x38, 0x1C, 0x45, 0xF0, 0x35, 0xF8, 0xE8, 0x68, 0xED, 0xF7, 0xAC, 0xFC, 0x01, 0x1C, 0x38, 0x1C + .byte 0x46, 0xF0, 0x80, 0xF9, 0x28, 0x1C, 0x39, 0x1C, 0x01, 0xF0, 0xE0, 0xFC, 0x0B, 0x20, 0x04, 0x21 + .byte 0xE0, 0xF7, 0xF2, 0xFC, 0xB1, 0x8C, 0x01, 0x80, 0x00, 0x21, 0x41, 0x80, 0x7F, 0x21, 0x89, 0x00 + .byte 0x60, 0x50, 0x08, 0x1F, 0x27, 0x50, 0xAA, 0x49, 0x20, 0x1C, 0xFF, 0xF7, 0x9B, 0xFE, 0x46, 0xE1 + .byte 0x0B, 0x20, 0x30, 0x21, 0xE0, 0xF7, 0xE0, 0xFC, 0x07, 0x1C, 0xE8, 0x68, 0x35, 0xF0, 0x9E, 0xFD + .byte 0x38, 0x60, 0xE8, 0x68, 0xED, 0xF7, 0x8C, 0xFC, 0x78, 0x60, 0x01, 0x21, 0x30, 0x1C, 0x79, 0x74 + .byte 0x22, 0x30, 0x00, 0x78, 0x38, 0x75, 0xF9, 0x74, 0xF0, 0x8C, 0x38, 0x83, 0x02, 0x20, 0xB8, 0x74 + .byte 0xE8, 0x68, 0x35, 0xF0, 0x91, 0xFD, 0xF8, 0x61, 0xE8, 0x68, 0x43, 0xF0, 0x31, 0xFE, 0xF8, 0x62 + .byte 0x00, 0x20, 0xB8, 0x62, 0x97, 0x49, 0x38, 0x1C, 0x44, 0xF0, 0xF2, 0xFF, 0xE8, 0x68, 0xED, 0xF7 + .byte 0x69, 0xFC, 0x01, 0x1C, 0x38, 0x1C, 0x46, 0xF0, 0x3D, 0xF9, 0x28, 0x1C, 0x39, 0x1C, 0x01, 0xF0 + .byte 0x9D, 0xFC, 0x0B, 0x20, 0x04, 0x21, 0xE0, 0xF7, 0xAF, 0xFC, 0x00, 0x21, 0x01, 0x80, 0x71, 0x6B + .byte 0x41, 0x80, 0x7F, 0x21, 0x89, 0x00, 0x60, 0x50, 0x08, 0x1F, 0x27, 0x50, 0x88, 0x49, 0x20, 0x1C + .byte 0xFF, 0xF7, 0x58, 0xFE, 0x03, 0xE1, 0xB0, 0x8C, 0x38, 0xF0, 0x2E, 0xFD, 0x03, 0x1C, 0x0B, 0x20 + .byte 0x32, 0x1C, 0x00, 0x90, 0x22, 0x32, 0x12, 0x78, 0x28, 0x1C, 0x02, 0x21, 0x01, 0xF0, 0x5E, 0xFF + .byte 0x7E, 0x21, 0x89, 0x00, 0x60, 0x50, 0x30, 0x1C, 0x20, 0x30, 0x00, 0x78, 0x0A, 0x28, 0xB0, 0x8C + .byte 0x06, 0xD1, 0x32, 0x1C, 0x22, 0x32, 0x12, 0x78, 0x00, 0x21, 0x00, 0xF0, 0x9B, 0xFD, 0x05, 0xE0 + .byte 0x32, 0x1C, 0x22, 0x32, 0x12, 0x78, 0x01, 0x21, 0x00, 0xF0, 0x94, 0xFD, 0x7F, 0x21, 0x89, 0x00 + .byte 0x60, 0x50, 0x75, 0x49, 0x20, 0x1C, 0xFF, 0xF7, 0x2D, 0xFE, 0xD8, 0xE0, 0xE8, 0x68, 0x35, 0xF0 + .byte 0x35, 0xFD, 0x31, 0x1C, 0x22, 0x31, 0x09, 0x78, 0x35, 0xF0, 0x7A, 0xFC, 0x01, 0x1C, 0x28, 0x1C + .byte 0x0B, 0x22, 0x01, 0xF0, 0x65, 0xFF, 0x7E, 0x21, 0x89, 0x00, 0x60, 0x50, 0x32, 0x1C, 0x22, 0x32 + .byte 0xB0, 0x8C, 0x12, 0x78, 0x02, 0x21, 0x00, 0xF0, 0x75, 0xFD, 0x7F, 0x21, 0x89, 0x00, 0x60, 0x50 + .byte 0x65, 0x49, 0x20, 0x1C, 0xFF, 0xF7, 0x0E, 0xFE, 0xB9, 0xE0, 0x0B, 0x20, 0x04, 0x21, 0xE0, 0xF7 + .byte 0x53, 0xFC, 0x31, 0x1C, 0x22, 0x31, 0x09, 0x78, 0x01, 0x60, 0x7F, 0x21, 0x89, 0x00, 0x60, 0x50 + .byte 0xE8, 0x68, 0x39, 0xF0, 0x29, 0xF8, 0x07, 0x1C, 0xE8, 0x68, 0xED, 0xF7, 0xF3, 0xFB, 0x5B, 0x49 + .byte 0x38, 0x1C, 0x0B, 0x22, 0x38, 0xF0, 0x6A, 0xFF, 0x7E, 0x21, 0x89, 0x00, 0x2B, 0x1C, 0x60, 0x50 + .byte 0x94, 0x33, 0x60, 0x58, 0xE9, 0x68, 0x1B, 0x68, 0x01, 0x22, 0x38, 0xF0, 0xF3, 0xF8, 0x7E, 0x21 + .byte 0x89, 0x00, 0x61, 0x58, 0x28, 0x1C, 0x01, 0xF0, 0x71, 0xFB, 0x51, 0x49, 0x20, 0x1C, 0xFF, 0xF7 + .byte 0xE1, 0xFD, 0x8C, 0xE0, 0x0B, 0x20, 0x0C, 0x21, 0xE0, 0xF7, 0x26, 0xFC, 0xB1, 0x8C, 0x41, 0x80 + .byte 0x03, 0x21, 0x41, 0x70, 0x31, 0x1C, 0x22, 0x31, 0x09, 0x78, 0x01, 0x70, 0x31, 0x8F, 0x81, 0x80 + .byte 0xF1, 0x6B, 0x81, 0x60, 0x7E, 0x21, 0x89, 0x00, 0x60, 0x50, 0x06, 0x20, 0x60, 0x85, 0x76, 0xE0 + .byte 0x0B, 0x20, 0x0C, 0x21, 0xE0, 0xF7, 0x10, 0xFC, 0x07, 0x1C, 0xE8, 0x69, 0x00, 0x68, 0xFE, 0xF7 + .byte 0x41, 0xFC, 0x78, 0x80, 0x00, 0x20, 0x78, 0x70, 0x30, 0x1C, 0x22, 0x30, 0x00, 0x78, 0x38, 0x70 + .byte 0x30, 0x8F, 0xB8, 0x80, 0xF0, 0x6B, 0xB8, 0x60, 0x7E, 0x20, 0x80, 0x00, 0x27, 0x50, 0x06, 0x20 + .byte 0x60, 0x85, 0x5C, 0xE0, 0x0B, 0x38, 0x01, 0xA9, 0xC8, 0x80, 0x30, 0x1C, 0x22, 0x30, 0x00, 0x78 + .byte 0x88, 0x80, 0x01, 0x97, 0xC9, 0x88, 0x00, 0x20, 0x2D, 0xF0, 0xC6, 0xFB, 0x7A, 0x21, 0x89, 0x00 + .byte 0x02, 0x1C, 0x01, 0xA8, 0x61, 0x18, 0x90, 0x47, 0x49, 0xE0, 0x73, 0x21, 0x89, 0x00, 0x28, 0x1C + .byte 0x61, 0x18, 0x01, 0xF0, 0x37, 0xFB, 0x7E, 0x21, 0x89, 0x00, 0x60, 0x50, 0x28, 0x49, 0x20, 0x1C + .byte 0xFF, 0xF7, 0x90, 0xFD, 0x3B, 0xE0 +_020361E6: + add r0, r6, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x5 + beq _02036200 + cmp r0, #0x6 + beq _02036200 + cmp r0, #0x7 + beq _02036200 + cmp r0, #0x10 + beq _02036200 + cmp r0, #0x8 + bne _02036234 +_02036200: + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02037844 + mov r2, #0x7e + lsl r2, r2, #0x2 + str r0, [r4, r2] + add r0, r6, #0x0 + add r0, #0x22 + ldrb r1, [r0, #0x0] + ldr r0, [r4, r2] + cmp r1, #0x6 + blo _02036226 + mov r1, #0x0 + bl sub_0206E358 + b _0203622A +_02036226: + bl sub_0206E358 +_0203622A: + ldr r1, _02036280 ; =sub_020362E4 + add r0, r4, #0x0 + bl sub_02035D04 + b _0203625E +_02036234: + cmp r0, #0x9 + bne _02036254 + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036280 ; =sub_020362E4 + add r0, r4, #0x0 + bl sub_02035D04 + b _0203625E +_02036254: + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0xc + strh r0, [r4, #0x2a] +_0203625E: + add r0, r6, #0x0 + bl sub_02016A18 + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + nop +_0203626C: .word 0x020F2A9C +_02036270: .word sub_0203684C + 1 +_02036274: + .byte 0x8C, 0x2A, 0x0F, 0x02, 0xDD, 0x6B, 0x03, 0x02, 0x90, 0x2A, 0x0F, 0x02 +_02036280: .word sub_020362E4 + 1 + + thumb_func_start sub_02036284 +sub_02036284: ; 0x02036284 + push {r4, lr} + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl sub_021D7CA4 + mov r0, #0x72 + ldr r1, _020362A4 ; =sub_020362A8 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_020362A4: .word sub_020362A8 + 1 + + thumb_func_start sub_020362A8 +sub_020362A8: ; 0x020362A8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + mov r1, #0x73 + add r4, r0, #0x0 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0x0 + bl sub_0206E358 + mov r0, #0x72 + ldr r1, _020362E0 ; =sub_020362E4 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_020362E0: .word sub_020362E4 + 1 + + thumb_func_start sub_020362E4 +sub_020362E4: ; 0x020362E4 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0xb + bl sub_0206E2F0 + str r0, [sp, #0x8] + bl sub_0206E308 + mov r1, #0x7e + lsl r1, r1, #0x2 + add r2, r0, #0x0 + ldr r0, [sp, #0x8] + ldr r1, [r4, r1] + blx sub_020DF438 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + ldr r0, [sp, #0x8] + bl sub_0206E384 + cmp r0, #0x5 + bls _02036328 + b _020364EE +_02036328: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r4, r0, #0x1 + lsl r4, r2, #0x1 + lsl r0, r7, #0x6 + lsl r0, r0, #0x3 + lsl r0, r7, #0x6 + ldr r0, [sp, #0x8] + bl sub_0206E37C + add r1, sp, #0x10 + strh r0, [r1, #0x4] + ldr r0, [sp, #0x8] + bl sub_0206E38C + add r1, sp, #0x10 + strb r0, [r1, #0x6] + str r5, [sp, #0x10] + ldrh r0, [r1, #0x4] + mov r1, #0x6 + mov r2, #0xb + bl sub_0206E7B8 + add r1, r0, #0x0 + lsl r1, r1, #0x10 + mov r0, #0x0 + lsr r1, r1, #0x10 + bl sub_0205CE48 + mov r1, #0x73 + lsl r1, r1, #0x2 + add r2, r0, #0x0 + add r0, sp, #0x10 + add r1, r4, r1 + blx r2 + b _020364F8 +_0203637A: + .byte 0x02, 0x98, 0x37, 0xF0, 0xFE, 0xFF + .byte 0x01, 0x1C, 0x28, 0x1C, 0x00, 0xF0, 0xEA, 0xFA, 0xB6, 0xE0, 0x0B, 0x20, 0x40, 0x21, 0xE0, 0xF7 + .byte 0x03, 0xFB, 0x00, 0x21, 0x40, 0x22, 0x05, 0x1C, 0xA9, 0xF0, 0x84, 0xE8, 0xF0, 0x68, 0x35, 0xF0 + .byte 0xBD, 0xFB, 0x28, 0x60, 0xF0, 0x68, 0x38, 0xF0, 0xD7, 0xFE, 0x68, 0x60, 0xF0, 0x68, 0xEF, 0xF7 + .byte 0x43, 0xFA, 0xA8, 0x60, 0xF0, 0x68, 0xED, 0xF7, 0xA3, 0xFA, 0xE8, 0x60, 0x7A, 0x20, 0x80, 0x00 + .byte 0x20, 0x18, 0xA8, 0x61, 0x28, 0x1C, 0x00, 0x21, 0x21, 0x30, 0x01, 0x70, 0x28, 0x1C, 0x09, 0x21 + .byte 0x20, 0x30, 0x01, 0x70, 0x02, 0x98, 0x37, 0xF0, 0xD1, 0xFF, 0xA8, 0x84, 0x49, 0x49, 0x30, 0x1C + .byte 0x2A, 0x1C, 0x00, 0xF0, 0xF7, 0xFF, 0x7E, 0x20, 0x80, 0x00, 0x25, 0x50, 0x46, 0x49, 0x20, 0x1C + .byte 0xFF, 0xF7, 0x88, 0xFC, 0x80, 0xE0, 0xF0, 0x68, 0x35, 0xF0, 0x90, 0xFB, 0x01, 0x90, 0x7F, 0x20 + .byte 0x80, 0x00, 0x20, 0x58, 0x07, 0x68, 0x02, 0x98, 0x37, 0xF0, 0xB8, 0xFF, 0x05, 0x1C, 0x01, 0x98 + .byte 0x39, 0x1C, 0x35, 0xF0, 0xCD, 0xFA, 0x03, 0x90, 0x7F, 0x20, 0x80, 0x00, 0x20, 0x58, 0xE0, 0xF7 + .byte 0xFB, 0xFA, 0x28, 0x1C, 0x38, 0xF0, 0x38, 0xFB, 0x01, 0x28, 0x23, 0xD1, 0x03, 0x98, 0x06, 0x21 + .byte 0x00, 0x22, 0x30, 0xF0, 0xC3, 0xFE, 0x00, 0x28, 0x1C, 0xD1, 0x28, 0x1C, 0x38, 0xF0, 0x3C, 0xFB + .byte 0x03, 0x1C, 0x0B, 0x20, 0x3A, 0x06, 0x00, 0x90, 0x30, 0x1C, 0x02, 0x21, 0x12, 0x0E, 0x01, 0xF0 + .byte 0x6D, 0xFD, 0x7E, 0x21, 0x89, 0x00, 0x60, 0x50, 0x3A, 0x06, 0x28, 0x1C, 0x00, 0x21, 0x12, 0x0E + .byte 0x00, 0xF0, 0xB0, 0xFB, 0x7F, 0x21, 0x89, 0x00, 0x60, 0x50, 0x28, 0x49, 0x20, 0x1C, 0xFF, 0xF7 + .byte 0x49, 0xFC, 0x41, 0xE0, 0x0B, 0x20, 0x40, 0x21, 0xE0, 0xF7, 0x8E, 0xFA, 0x00, 0x21, 0x40, 0x22 + .byte 0x05, 0x1C, 0xA9, 0xF0, 0x10, 0xE8, 0x01, 0x98, 0x28, 0x60, 0xF0, 0x68, 0x38, 0xF0, 0x64, 0xFE + .byte 0x68, 0x60, 0xF0, 0x68, 0xEF, 0xF7, 0xD0, 0xF9, 0xA8, 0x60, 0xF0, 0x68, 0xED, 0xF7, 0x30, 0xFA + .byte 0xE8, 0x60, 0x7A, 0x20, 0x80, 0x00, 0x20, 0x18, 0xA8, 0x61, 0x28, 0x1C, 0x00, 0x21, 0x21, 0x30 + .byte 0x01, 0x70, 0x02, 0x98, 0x37, 0xF0, 0x62, 0xFF, 0xA8, 0x84, 0x28, 0x1C, 0x22, 0x30, 0x07, 0x70 + .byte 0xEE, 0x61, 0xA8, 0x8C, 0x00, 0x28, 0x01, 0xD1, 0x00, 0x21, 0x00, 0xE0, 0x0A, 0x21, 0x28, 0x1C + .byte 0x20, 0x30, 0x01, 0x70, 0x0B, 0x49, 0x30, 0x1C, 0x2A, 0x1C, 0x00, 0xF0, 0x7B, 0xFF, 0x7E, 0x20 + .byte 0x80, 0x00, 0x25, 0x50, 0x08, 0x49, 0x20, 0x1C, 0xFF, 0xF7, 0x0C, 0xFC, 0x04, 0xE0 +_020364EE: + add r0, r6, #0x0 + bl sub_0204649C + mov r0, #0xc + strh r0, [r4, #0x2a] +_020364F8: + ldr r0, [sp, #0x8] + bl sub_02016A18 + mov r0, #0x0 + add sp, #0x18 + pop {r3-r7, pc} +_02036504: + .byte 0xDC, 0x96, 0x0F, 0x02, 0x51, 0x5E, 0x03, 0x02, 0xDD, 0x6B, 0x03, 0x02 + + thumb_func_start sub_02036510 +sub_02036510: ; 0x02036510 + push {r4, lr} + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl sub_021D7CA4 + mov r0, #0x72 + ldr r1, _02036530 ; =sub_02036534 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_02036530: .word sub_02036534 + 1 + + thumb_func_start sub_02036534 +sub_02036534: ; 0x02036534 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0xb + bl sub_02065054 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + str r5, [sp, #0x0] + ldr r0, [r4, r1] + mov r2, #0x0 + str r0, [sp, #0x4] + mov r0, #0x1 + add r1, r0, #0x0 + mov r3, #0xff + bl sub_02064E90 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02038680 + mov r0, #0x72 + ldr r1, _02036580 ; =sub_02036584 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02036580: .word sub_02036584 + 1 + + thumb_func_start sub_02036584 +sub_02036584: ; 0x02036584 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + mov r1, #0x7e + add r4, r0, #0x0 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02065314 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02065070 + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0xc + strh r0, [r4, #0x2a] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020365BC +sub_020365BC: ; 0x020365BC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + bl sub_02035718 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0200CCF8 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl sub_0201AC68 + add r0, r4, #0x0 + bl sub_02019178 + add r0, r5, #0x0 + bl sub_020358A0 + mov r0, #0x4 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020365F0 +sub_020365F0: ; 0x020365F0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + ldr r0, [r0, #0xc] + bl sub_0202280C + cmp r0, #0x0 + beq _02036618 + mov r2, #0x0 + ldr r1, _0203663C ; =0x000007F2 + add r0, r5, #0x0 + add r3, r2, #0x0 + bl sub_02038CD8 + b _02036636 +_02036618: + mov r0, #0x20 + mov r1, #0x8 + bl sub_02016998 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r3, [r4, r1] + mov r2, #0x0 + strh r2, [r3, #0x4] + ldr r1, _02036640 ; =0x000007D5 + add r0, r5, #0x0 + add r3, r3, #0x4 + bl sub_02038CD8 +_02036636: + mov r0, #0x5 + strh r0, [r4, #0x2a] + pop {r3-r5, pc} + .balign 4 +_0203663C: .word 0x000007F2 +_02036640: .word 0x000007D5 + + thumb_func_start sub_02036644 +sub_02036644: ; 0x02036644 + push {r4-r6, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r5, [r4, r0] + ldr r0, [r6, #0xc] + bl sub_0202280C + cmp r0, #0x0 + beq _0203666C + mov r0, #0x0 + strh r0, [r4, #0x2a] + pop {r4-r6, pc} +_0203666C: + ldrh r0, [r5, #0x4] + cmp r0, #0x0 + bne _02036676 + mov r0, #0x0 + b _02036678 +_02036676: + mov r0, #0xf +_02036678: + strh r0, [r4, #0x2a] + add r0, r5, #0x0 + bl sub_02016A18 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02036684 +sub_02036684: ; 0x02036684 + push {r4, lr} + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl sub_021D7CA4 + mov r0, #0x72 + ldr r1, _020366A4 ; =sub_020366A8 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_020366A4: .word sub_020366A8 + 1 + + thumb_func_start sub_020366A8 +sub_020366A8: ; 0x020366A8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02037EF8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, _020366D0 ; =sub_020366D4 + sub r1, #0x30 + str r0, [r4, r1] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_020366D0: .word sub_020366D4 + 1 + + thumb_func_start sub_020366D4 +sub_020366D4: ; 0x020366D4 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0xc + strh r0, [r4, #0x2a] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02036700 +sub_02036700: ; 0x02036700 + push {r4, lr} + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl sub_021D7CA4 + mov r0, #0x72 + ldr r1, _02036720 ; =sub_02036724 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_02036720: .word sub_02036724 + 1 + + thumb_func_start sub_02036724 +sub_02036724: ; 0x02036724 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r2, [r5, #0xc] + mov r0, #0x2 + mov r1, #0x0 + mov r3, #0xb + bl sub_02085338 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, sp, #0x0 + mov r1, #0x4 + bl sub_0201373C + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r1, sp, #0x0 + bl sub_020853BC + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02037E80 + mov r0, #0x72 + ldr r1, _02036778 ; =sub_0203677C + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02036778: .word sub_0203677C + 1 + + thumb_func_start sub_0203677C +sub_0203677C: ; 0x0203677C + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_020853E4 + cmp r0, #0x0 + bne _020367C6 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r1, sp, #0x0 + bl sub_020853FC + bl sub_0202EDF8 + cmp r0, #0x0 + beq _020367C0 + add r0, sp, #0x0 + bl sub_02052DE8 + ldr r0, [r4, #0x78] + add r1, sp, #0x0 + bl sub_02052CD8 +_020367C0: + mov r0, #0x8 + strh r0, [r5, #0x2a] + b _020367CA +_020367C6: + mov r0, #0xc + strh r0, [r5, #0x2a] +_020367CA: + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_020853A8 + add r0, r4, #0x0 + bl sub_0204649C + ldr r0, [r4, #0x7c] + bl sub_02052F74 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020367E8 +sub_020367E8: ; 0x020367E8 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + bl sub_02035718 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0200CCF8 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl sub_0201AC68 + add r0, r4, #0x0 + bl sub_02019178 + add r0, r5, #0x0 + bl sub_020358A0 + ldr r0, [r6, #0xc] + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x1 + bne _02036834 + ldr r1, _02036848 ; =0x00002275 + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02038D10 + b _0203683E +_02036834: + add r0, r5, #0x0 + mov r1, #0x4 + mov r2, #0x0 + bl sub_02038D10 +_0203683E: + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_02036848: .word 0x00002275 + + thumb_func_start sub_0203684C +sub_0203684C: ; 0x0203684C + push {r3-r7, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x30 + bl sub_02016998 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r2, #0x30 + add r7, r0, #0x0 + blx sub_020DF438 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + ldrb r0, [r7, #0x12] + cmp r0, #0x2 + bne _0203692E + mov r0, #0xb + mov r1, #0x40 + bl sub_02016998 + mov r1, #0x7f + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r2, #0x40 + str r1, [sp, #0x0] + mov r1, #0x0 + add r5, r0, #0x0 + blx sub_020DF4A4 + ldr r0, [r6, #0xc] + bl sub_0206BB1C + str r0, [r5, #0x0] + ldr r0, [r6, #0xc] + bl sub_0206F158 + str r0, [r5, #0x4] + ldr r0, [r6, #0xc] + bl sub_02025838 + str r0, [r5, #0x8] + ldr r0, [r6, #0xc] + bl sub_02023900 + str r0, [r5, #0xc] + mov r0, #0x7a + lsl r0, r0, #0x2 + add r0, r4, r0 + add r1, r5, #0x0 + str r0, [r5, #0x18] + mov r0, #0x0 + add r1, #0x21 + strb r0, [r1, #0x0] + ldr r1, [sp, #0x0] + str r6, [r5, #0x1c] + ldrh r1, [r1, #0x0] + cmp r1, #0x0 + beq _020368E2 + add r1, r5, #0x0 + mov r2, #0x7 + add r1, #0x20 + strb r2, [r1, #0x0] + b _020368EE +_020368E2: + add r0, r5, #0x0 + mov r1, #0x8 + add r0, #0x20 + strb r1, [r0, #0x0] + ldr r0, [sp, #0x0] + ldrh r0, [r0, #0x2] +_020368EE: + str r0, [r5, #0x34] + ldr r0, [sp, #0x0] + add r2, r5, #0x0 + ldrh r0, [r0, #0x0] + strh r0, [r5, #0x24] + add r0, r5, #0x0 + ldrb r1, [r7, #0x14] + add r0, #0x22 + strb r1, [r0, #0x0] + ldrh r0, [r7, #0x18] + strh r0, [r5, #0x26] + add r0, r5, #0x0 + ldrb r1, [r7, #0x16] + add r0, #0x28 + strb r1, [r0, #0x0] + ldr r1, _02036954 ; =0x020F96DC + add r0, r6, #0x0 + bl sub_020373D4 + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r5, [r4, r0] + ldr r1, _02036958 ; =sub_02035E50 + add r0, r4, #0x0 + bl sub_02035D04 + b _0203694A +_0203692E: + mov r1, #0x7a + lsl r1, r1, #0x2 + ldrb r2, [r7, #0x14] + add r0, r6, #0x0 + add r1, r4, r1 + bl sub_020379C8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036958 ; =sub_02035E50 + add r0, r4, #0x0 + bl sub_02035D04 +_0203694A: + add r0, r7, #0x0 + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02036954: .word 0x020F96DC +_02036958: .word sub_02035E50 + 1 + + thumb_func_start sub_0203695C +sub_0203695C: ; 0x0203695C + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02046528 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_0204652C + add r6, r0, #0x0 + mov r0, #0xb + bl sub_020851B8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r6, r1] + ldr r0, [sp, #0x4] + ldr r0, [r0, #0xc] + bl sub_0206F158 + str r0, [sp, #0x0] + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_020851DC + mov r5, #0x0 + add r4, r5, #0x0 +_0203699A: + add r0, r4, #0x0 + bl sub_0206EB1C + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + mov r2, #0x1 + mov r3, #0xb + bl sub_0206EE50 + cmp r0, #0x1 + bne _020369C6 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_020851DC + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 +_020369C6: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x40 + blo _0203699A + ldr r0, [sp, #0x4] + add r3, sp, #0x8 + add r0, #0x94 + ldr r0, [r0, #0x0] + mov r1, #0x4 + add r2, sp, #0x8 + add r3, #0x1 + bl sub_0206F17C + mov r0, #0x7e + add r2, sp, #0x8 + lsl r0, r0, #0x2 + ldrb r1, [r2, #0x1] + add r3, r5, #0x3 + lsl r3, r3, #0x18 + ldrb r2, [r2, #0x0] + ldr r0, [r6, r0] + lsr r3, r3, #0x18 + bl sub_020851F8 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r0, [sp, #0x4] + ldr r1, [r6, r1] + bl sub_0203791C + ldr r1, _02036A10 ; =sub_02036A14 + add r0, r6, #0x0 + bl sub_02035D04 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02036A10: .word sub_02036A14 + 1 + + thumb_func_start sub_02036A14 +sub_02036A14: ; 0x02036A14 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + add r1, sp, #0x0 + ldr r0, [r4, r0] + add r1, #0x1 + add r2, sp, #0x0 + bl sub_0208524C + add r0, r5, #0x0 + add r3, sp, #0x0 + add r0, #0x94 + ldrb r2, [r3, #0x0] + ldrb r3, [r3, #0x1] + ldr r0, [r0, #0x0] + mov r1, #0x4 + bl sub_0206F190 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r0, #0xb + bl sub_02016A8C + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036A74 ; =sub_020362E4 + add r0, r4, #0x0 + bl sub_02035D04 + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02036A74: .word sub_020362E4 + 1 + + thumb_func_start sub_02036A78 +sub_02036A78: ; 0x02036A78 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + mov r1, #0x7e + add r4, r0, #0x0 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r0, #0xb + bl sub_02016A8C + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036AB4 ; =sub_020362E4 + add r0, r4, #0x0 + bl sub_02035D04 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02036AB4: .word sub_020362E4 + 1 + + thumb_func_start sub_02036AB8 +sub_02036AB8: ; 0x02036AB8 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + mov r0, #0xb + ldr r7, [r1, #0x0] + bl sub_02016A8C + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r5, [r4, r0] + ldr r0, [r5, #0x10] + cmp r0, #0x0 + bne _02036B0E + mov r0, #0xb + add r1, r5, #0x0 + bl sub_02016A8C + mov r1, #0x7a + lsl r1, r1, #0x2 + lsl r2, r7, #0x18 + add r0, r6, #0x0 + add r1, r4, r1 + lsr r2, r2, #0x18 + bl sub_020379C8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036B88 ; =sub_02035E50 + add r0, r4, #0x0 + bl sub_02035D04 + b _02036B82 +_02036B0E: + ldr r0, [r6, #0xc] + bl sub_0206BB1C + add r1, r7, #0x0 + bl sub_0206B9B0 + add r2, r0, #0x0 + ldr r0, [r5, #0x14] + add r1, r6, #0x0 + lsl r0, r0, #0x5 + add r0, #0x10 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + lsl r0, r0, #0x5 + add r0, #0x10 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp, #0x4] + ldr r3, [r5, #0x1c] + mov r0, #0xb + lsl r3, r3, #0x10 + lsr r3, r3, #0x10 + bl sub_02063888 + ldr r1, [r5, #0x1c] + add r7, r0, #0x0 + lsl r1, r1, #0x10 + mov r0, #0x1 + lsr r1, r1, #0x10 + mov r2, #0xb + bl sub_0202914C + add r1, r0, #0x0 + add r0, r6, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + mov r2, #0x1 + bl sub_02028AD4 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r0, #0xb + bl sub_02016A8C + add r0, r6, #0x0 + bl sub_0204649C + mov r0, #0x72 + ldr r1, _02036B8C ; =sub_020638BC + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r7, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] +_02036B82: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02036B88: .word sub_02035E50 + 1 +_02036B8C: .word sub_020638BC + 1 + + thumb_func_start sub_02036B90 +sub_02036B90: ; 0x02036B90 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + mov r1, #0x73 + add r4, r0, #0x0 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036BC0 ; =sub_020362E4 + add r0, r4, #0x0 + bl sub_02035D04 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02036BC0: .word sub_020362E4 + 1 + + thumb_func_start sub_02036BC4 +sub_02036BC4: ; 0x02036BC4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0xb + mov r1, #0x4 + add r6, r2, #0x0 + bl sub_02016998 + strh r5, [r0, #0x0] + strb r6, [r0, #0x2] + strb r4, [r0, #0x3] + pop {r4-r6, pc} + + thumb_func_start sub_02036BDC +sub_02036BDC: ; 0x02036BDC + push {r4-r6, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r6, [r4, r0] + ldrb r1, [r6, #0x3] + cmp r1, #0x3 + bhi _02036CD4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r2, #0x1 + lsl r0, r2, #0x2 + lsl r2, r5, #0 + lsl r6, r0, #0 + sub r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_0208562C + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036CE4 ; =sub_020362E4 + add r0, r4, #0x0 + bl sub_02035D04 + b _02036CD4 +_02036C32: + .byte 0x00, 0x1F, 0x20, 0x58, 0x4E, 0xF0, 0xF9, 0xFC, 0x7A, 0x21, 0x89, 0x00, 0xB2, 0x78 + .byte 0x28, 0x1C, 0x61, 0x18, 0x00, 0xF0, 0xC0, 0xFE, 0x7E, 0x21, 0x89, 0x00, 0x60, 0x50, 0x26, 0x49 + .byte 0x20, 0x1C, 0xFF, 0xF7, 0x57, 0xF8, 0x3D, 0xE0, 0x00, 0x1F, 0x20, 0x58, 0x4E, 0xF0, 0xC2, 0xFC + .byte 0x01, 0x28, 0x05, 0xD1, 0x28, 0x1C, 0x21, 0x1C, 0x0C, 0x22, 0x00, 0xF0, 0x3F, 0xF8, 0x31, 0xE0 + .byte 0x7E, 0x20, 0x80, 0x00, 0x20, 0x58, 0x4E, 0xF0, 0xD9, 0xFC, 0x7A, 0x21, 0x89, 0x00, 0xB2, 0x78 + .byte 0x28, 0x1C, 0x61, 0x18, 0x00, 0xF0, 0xA0, 0xFE, 0x7E, 0x21, 0x89, 0x00, 0x60, 0x50, 0x16, 0x49 + .byte 0x20, 0x1C, 0xFF, 0xF7, 0x37, 0xF8, 0x1D, 0xE0, 0x00, 0x1F, 0x20, 0x58, 0x4E, 0xF0, 0xA2, 0xFC + .byte 0x01, 0x28, 0x05, 0xD1, 0x28, 0x1C, 0x21, 0x1C, 0x0B, 0x22, 0x00, 0xF0, 0x1F, 0xF8, 0x11, 0xE0 + .byte 0x7E, 0x20, 0x80, 0x00, 0x20, 0x58, 0x4E, 0xF0, 0xB9, 0xFC, 0x73, 0x21, 0x89, 0x00, 0x28, 0x1C + .byte 0x61, 0x18, 0x00, 0xF0, 0xBF, 0xFD, 0x7E, 0x21, 0x89, 0x00, 0x60, 0x50, 0x05, 0x49, 0x20, 0x1C + .byte 0xFF, 0xF7, 0x18, 0xF8 +_02036CD4: + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + mov r0, #0x0 + pop {r4-r6, pc} + nop +_02036CE4: .word sub_020362E4 + 1 +_02036CE8: + .byte 0x51, 0x5E, 0x03, 0x02 + + thumb_func_start sub_02036CEC +sub_02036CEC: ; 0x02036CEC + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x7f + add r6, r1, #0x0 + str r2, [sp, #0x0] + lsl r0, r0, #0x2 + ldr r7, [r6, r0] + mov r0, #0xb + mov r1, #0x40 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x40 + add r4, r0, #0x0 + blx sub_020DF4A4 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl sub_0206F158 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl sub_02025838 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0xc] + mov r0, #0x7a + lsl r0, r0, #0x2 + add r0, r6, r0 + str r0, [r4, #0x18] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + ldrh r0, [r7, #0x0] + strh r0, [r4, #0x24] + add r0, r4, #0x0 + ldrb r1, [r7, #0x2] + add r0, #0x22 + strb r1, [r0, #0x0] + add r1, r4, #0x0 + ldr r0, [sp, #0x0] + add r1, #0x20 + strb r0, [r1, #0x0] + str r5, [r4, #0x1c] + ldrb r1, [r7, #0x2] + ldr r0, [r4, #0x0] + bl sub_0206B9B0 + add r1, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + bl sub_0208560C + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + bl sub_0208562C + ldr r1, _02036D8C ; =0x020F96DC + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r4, [r6, r0] + ldr r1, _02036D90 ; =sub_02035E50 + add r0, r6, #0x0 + bl sub_02035D04 + pop {r3-r7, pc} + nop +_02036D8C: .word 0x020F96DC +_02036D90: .word sub_02035E50 + 1 + + thumb_func_start sub_02036D94 +sub_02036D94: ; 0x02036D94 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02087E14 + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036DD0 ; =sub_020362E4 + add r0, r4, #0x0 + bl sub_02035D04 + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02036DD0: .word sub_020362E4 + 1 + + thumb_func_start sub_02036DD4 +sub_02036DD4: ; 0x02036DD4 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + mov r1, #0x73 + add r4, r0, #0x0 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036E04 ; =sub_020362E4 + add r0, r4, #0x0 + bl sub_02035D04 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02036E04: .word sub_020362E4 + 1 + + thumb_func_start sub_02036E08 +sub_02036E08: ; 0x02036E08 + push {r3-r7, lr} + sub sp, #0x48 + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r6, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r5, [r6, r0] + bl sub_0200541C + mov r0, #0x3 + mov r1, #0x49 + lsl r2, r0, #0x10 + bl sub_0201681C + ldr r0, [r4, #0xc] + bl sub_0206BB1C + ldrb r1, [r5, #0x0] + str r0, [sp, #0x20] + bl sub_0206B9B0 + str r0, [sp, #0x24] + ldrb r0, [r5, #0x1] + cmp r0, #0x0 + ldr r0, [r4, #0xc] + bne _02036E9E + bl sub_02023900 + str r0, [sp, #0x28] + ldr r0, [r4, #0xc] + bl sub_02079C70 + add r7, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02024DA0 + str r0, [sp, #0x2c] + ldr r0, [r4, #0xc] + bl sub_0206F158 + str r0, [sp, #0x30] + ldr r0, [r4, #0xc] + bl sub_02029FC8 + str r0, [sp, #0x34] + ldr r0, [r4, #0xc] + bl sub_0204C1A8 + ldr r1, [sp, #0x2c] + str r7, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [sp, #0x30] + ldr r3, [sp, #0x28] + str r1, [sp, #0x8] + ldr r1, [sp, #0x34] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x8] + ldr r1, [sp, #0x24] + str r0, [sp, #0x14] + mov r0, #0x1 + str r0, [sp, #0x18] + mov r0, #0x49 + str r0, [sp, #0x1c] + ldrh r2, [r5, #0x4] + ldr r0, [sp, #0x20] + bl sub_0206C700 + b _02036EF2 +_02036E9E: + bl sub_02023900 + str r0, [sp, #0x38] + ldr r0, [r4, #0xc] + bl sub_02079C70 + add r7, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02024DA0 + str r0, [sp, #0x3c] + ldr r0, [r4, #0xc] + bl sub_0206F158 + str r0, [sp, #0x40] + ldr r0, [r4, #0xc] + bl sub_02029FC8 + str r0, [sp, #0x44] + ldr r0, [r4, #0xc] + bl sub_0204C1A8 + ldr r1, [sp, #0x3c] + str r7, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [sp, #0x40] + ldr r3, [sp, #0x38] + str r1, [sp, #0x8] + ldr r1, [sp, #0x44] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x8] + ldr r1, [sp, #0x24] + str r0, [sp, #0x14] + mov r0, #0x0 + str r0, [sp, #0x18] + mov r0, #0x49 + str r0, [sp, #0x1c] + ldrh r2, [r5, #0x4] + ldr r0, [sp, #0x20] + bl sub_0206C700 +_02036EF2: + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x4 + bl sub_02016998 + ldrb r1, [r5, #0x0] + str r1, [r0, #0x0] + mov r1, #0x7f + lsl r1, r1, #0x2 + str r0, [r6, r1] + sub r0, r1, #0x4 + ldr r0, [r6, r0] + bl sub_02016A18 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r4, [r6, r0] + mov r0, #0x7 + strh r0, [r6, #0x2a] + add sp, #0x48 + pop {r3-r7, pc} + + thumb_func_start sub_02036F1C +sub_02036F1C: ; 0x02036F1C + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0206C91C + cmp r0, #0x1 + bne _02036F98 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0206C92C + mov r0, #0x49 + bl sub_020168D0 + ldr r0, _02036F9C ; =0x00000475 + mov r1, #0x0 + bl sub_02005350 + mov r0, #0x0 + bl sub_0200415C + ldr r1, [r5, #0x1c] + add r0, r5, #0x0 + ldr r1, [r1, #0x0] + bl sub_0204ADBC + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl sub_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + ldr r1, [r1, #0x0] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_0206E358 + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + ldr r1, _02036FA0 ; =sub_020362E4 + add r0, r4, #0x0 + bl sub_02035D04 +_02036F98: + pop {r3-r5, pc} + nop +_02036F9C: .word 0x00000475 +_02036FA0: .word sub_020362E4 + 1 + + thumb_func_start sub_02036FA4 +sub_02036FA4: ; 0x02036FA4 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x38] + add r4, r1, #0x0 + add r5, r2, #0x0 + bl sub_020552F8 + add r7, r0, #0x0 + ldr r0, [r6, #0x38] + bl sub_02055320 + str r0, [r4, #0x0] + ldr r0, [r6, #0x38] + bl sub_0205532C + str r0, [r5, #0x0] + cmp r7, #0x3 + bhi _02036FFA + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + ldr r0, [r5, #0x0] + sub r0, r0, #0x1 + str r0, [r5, #0x0] + b _02036FFA +_02036FE4: + .byte 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60, 0x06, 0xE0, 0x20, 0x68, 0x40, 0x1E + .byte 0x20, 0x60, 0x02, 0xE0, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60 +_02036FFA: + add r0, r7, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02037000 +sub_02037000: ; 0x02037000 + push {r3-r5, lr} + add r5, r1, #0x0 + bl sub_020553A0 + bl sub_02058BE4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058BE4 + cmp r4, r0 + bne _0203701C + mov r0, #0x1 + b _0203701E +_0203701C: + mov r0, #0x0 +_0203701E: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3-r5, pc} + + thumb_func_start sub_02037024 +sub_02037024: ; 0x02037024 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r1, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + add r5, r0, #0x0 + bl sub_02036FA4 + add r4, r0, #0x0 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + bl sub_0204A6E0 + bl sub_020547A4 + cmp r0, #0x1 + bne _0203707E + cmp r4, #0x3 + bhi _0203707E + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + ldr r0, [sp, #0x0] + sub r0, r0, #0x1 + str r0, [sp, #0x0] + b _0203707E +_02037068: + .byte 0x00, 0x98, 0x40, 0x1C, 0x00, 0x90, 0x06, 0xE0 + .byte 0x01, 0x98, 0x40, 0x1E, 0x01, 0x90, 0x02, 0xE0, 0x01, 0x98, 0x40, 0x1C, 0x01, 0x90 +_0203707E: + ldr r0, [r5, #0x34] + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + bl sub_02058D74 + str r0, [r6, #0x0] + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02037090 +sub_02037090: ; 0x02037090 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + bl sub_02037024 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020370B8 + bl sub_020588D4 + cmp r0, #0x1 + bne _020370B8 + ldr r0, [r5, #0x38] + ldr r1, [r4, #0x0] + bl sub_02037000 + cmp r0, #0x1 + bne _020370B8 + mov r0, #0x1 + pop {r3-r5, pc} +_020370B8: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_020370BC +sub_020370BC: ; 0x020370BC + push {r3-r7, lr} + sub sp, #0x10 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r1, sp, #0xc + add r2, sp, #0x8 + add r6, r0, #0x0 + bl sub_02036FA4 + ldr r0, [sp, #0x4] + mov r7, #0x0 + cmp r0, #0x0 + ble _02037130 + ldr r4, [sp, #0x0] + add r5, r4, #0x0 +_020370DA: + ldr r1, [sp, #0xc] + ldr r0, [r4, #0x4] + cmp r1, r0 + bne _02037124 + ldr r1, [sp, #0x8] + ldr r0, [r4, #0x8] + cmp r1, r0 + bne _02037124 + ldrh r0, [r4, #0x2] + cmp r0, #0x2 + bne _0203710A + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0203713C + cmp r0, #0x1 + bne _02037124 + mov r0, #0x14 + add r1, r7, #0x0 + mul r1, r0 + ldr r0, [sp, #0x0] + add sp, #0x10 + ldrh r0, [r0, r1] + pop {r3-r7, pc} +_0203710A: + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_02037168 + cmp r0, #0x1 + bne _02037124 + mov r0, #0x14 + add r1, r7, #0x0 + mul r1, r0 + ldr r0, [sp, #0x0] + add sp, #0x10 + ldrh r0, [r0, r1] + pop {r3-r7, pc} +_02037124: + ldr r0, [sp, #0x4] + add r7, r7, #0x1 + add r4, #0x14 + add r5, #0x14 + cmp r7, r0 + blt _020370DA +_02037130: + ldr r0, _02037138 ; =0x0000FFFF + add sp, #0x10 + pop {r3-r7, pc} + nop +_02037138: .word 0x0000FFFF + + thumb_func_start sub_0203713C +sub_0203713C: ; 0x0203713C + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r1, #0x2] + cmp r0, #0x2 + beq _0203714A + mov r0, #0x0 + pop {r4, pc} +_0203714A: + ldrh r0, [r1, #0x0] + bl sub_02039694 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02039528 + cmp r0, #0x1 + beq _02037160 + mov r0, #0x1 + b _02037162 +_02037160: + mov r0, #0x0 +_02037162: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r4, pc} + + thumb_func_start sub_02037168 +sub_02037168: ; 0x02037168 + push {r4, lr} + add r4, r1, #0x0 + ldrh r1, [r4, #0x10] + cmp r1, #0x4 + bne _02037176 + mov r0, #0x1 + pop {r4, pc} +_02037176: + ldr r0, [r0, #0x38] + bl sub_020552F8 + cmp r0, #0x3 + bhi _020371CC + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r2, #0 + lsl r2, r4, #0 + lsl r0, r6, #0 + ldrh r0, [r4, #0x10] + cmp r0, #0x0 + beq _0203719E + cmp r0, #0x6 + bne _020371CC +_0203719E: + mov r0, #0x1 + pop {r4, pc} +_020371A2: + .byte 0x20, 0x8A, 0x03, 0x28, 0x01, 0xD0, 0x06, 0x28, 0x0F, 0xD1, 0x01, 0x20, 0x10, 0xBD + .byte 0x20, 0x8A, 0x02, 0x28, 0x01, 0xD0, 0x05, 0x28, 0x08, 0xD1, 0x01, 0x20, 0x10, 0xBD, 0x20, 0x8A + .byte 0x01, 0x28, 0x01, 0xD0, 0x05, 0x28, 0x01, 0xD1, 0x01, 0x20, 0x10, 0xBD +_020371CC: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_020371D0 +sub_020371D0: ; 0x020371D0 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, [r5, #0x38] + add r6, r1, #0x0 + add r4, r2, #0x0 + bl sub_020552F8 + cmp r0, #0x0 + beq _020371EA + add sp, #0x8 + ldr r0, _0203722C ; =0x0000FFFF + pop {r4-r6, pc} +_020371EA: + add r0, r5, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + bl sub_02036FA4 + mov r0, #0x0 + cmp r4, #0x0 + ble _02037224 + ldr r2, [sp, #0x4] + ldr r3, [sp, #0x0] + add r1, r6, #0x0 +_02037200: + ldr r5, [r1, #0x4] + cmp r2, r5 + bne _0203721C + ldr r5, [r1, #0x8] + cmp r3, r5 + bne _0203721C + ldrh r5, [r1, #0x2] + cmp r5, #0x1 + bne _0203721C + mov r1, #0x14 + mul r1, r0 + add sp, #0x8 + ldrh r0, [r6, r1] + pop {r4-r6, pc} +_0203721C: + add r0, r0, #0x1 + add r1, #0x14 + cmp r0, r4 + blt _02037200 +_02037224: + ldr r0, _0203722C ; =0x0000FFFF + add sp, #0x8 + pop {r4-r6, pc} + nop +_0203722C: .word 0x0000FFFF + + thumb_func_start sub_02037230 +sub_02037230: ; 0x02037230 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x38] + add r4, r1, #0x0 + bl sub_020552F8 + cmp r0, #0x0 + beq _02037244 + mov r0, #0x0 + pop {r3-r5, pc} +_02037244: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02037090 + cmp r0, #0x1 + bne _02037260 + ldr r0, [r4, #0x0] + bl sub_02058458 + sub r0, #0x5b + cmp r0, #0x5 + bhi _02037260 + mov r0, #0x1 + pop {r3-r5, pc} +_02037260: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02037264 +sub_02037264: ; 0x02037264 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + ldr r0, [r0, #0x38] + str r1, [sp, #0x4] + str r2, [sp, #0x8] + bl sub_02055320 + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x38] + bl sub_0205532C + add r4, r0, #0x0 + ldr r0, [sp, #0x8] + mov r7, #0x0 + cmp r0, #0x0 + ble _020372C8 + ldr r5, [sp, #0x4] +_0203728A: + ldrh r1, [r5, #0x2] + cmp r6, r1 + blt _020372BE + ldrh r0, [r5, #0x6] + add r0, r1, r0 + cmp r6, r0 + bge _020372BE + ldrh r1, [r5, #0x4] + cmp r4, r1 + blt _020372BE + ldrh r0, [r5, #0x8] + add r0, r1, r0 + cmp r4, r0 + bge _020372BE + ldrh r1, [r5, #0xe] + ldr r0, [sp, #0x0] + bl sub_020394F0 + ldrh r1, [r5, #0xc] + cmp r1, r0 + bne _020372BE + ldr r0, [sp, #0x4] + lsl r1, r7, #0x4 + add sp, #0xc + ldrh r0, [r0, r1] + pop {r4-r7, pc} +_020372BE: + ldr r0, [sp, #0x8] + add r7, r7, #0x1 + add r5, #0x10 + cmp r7, r0 + blt _0203728A +_020372C8: + ldr r0, _020372D0 ; =0x0000FFFF + add sp, #0xc + pop {r4-r7, pc} + nop +_020372D0: .word 0x0000FFFF + + thumb_func_start sub_020372D4 +sub_020372D4: ; 0x020372D4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0200628C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02037400 + ldr r1, _02037300 ; =0x021C5A08 + str r0, [r1, #0x0] + ldr r1, [r4, #0x4] + cmp r1, #0x0 + beq _020372F4 + bl sub_02048FC8 + b _020372F8 +_020372F4: + bl sub_02048EC8 +_020372F8: + mov r0, #0x0 + str r0, [r4, #0x4] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_02037300: .word 0x021C5A08 + + thumb_func_start sub_02037304 +sub_02037304: ; 0x02037304 + push {r3, lr} + bl sub_02037400 + ldr r1, _02037318 ; =0x021C5A08 + str r0, [r1, #0x0] + bl sub_02048D90 + mov r0, #0x1 + pop {r3, pc} + nop +_02037318: .word 0x021C5A08 + + thumb_func_start sub_0203731C +sub_0203731C: ; 0x0203731C + push {r3, lr} + bl sub_02006278 + bl sub_02037524 + cmp r0, #0x0 + beq _0203732E + mov r0, #0x1 + pop {r3, pc} +_0203732E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02037334 +sub_02037334: ; 0x02037334 + push {r3, lr} + bl sub_020374B0 + ldr r0, _02037348 ; =0x0000003F + ldr r1, _0203734C ; =0x021DBAB8 + bl sub_02000E7C + mov r0, #0x1 + pop {r3, pc} + nop +_02037348: .word 0x0000003F +_0203734C: .word 0x021DBAB8 + + thumb_func_start sub_02037350 +sub_02037350: ; 0x02037350 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _02037360 + bl sub_02020C2C +_02037360: + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0203736C + bl sub_02020C2C +_0203736C: + ldr r0, _0203738C ; =0x00000005 + mov r1, #0x2 + bl sub_02005FDC + mov r1, #0x0 + str r1, [r4, #0x64] + ldr r0, [r4, #0x0] + mov r2, #0xb + str r1, [r0, #0x8] + ldr r0, _02037390 ; =0x021F64C8 + add r1, r4, #0x0 + bl sub_02006234 + ldr r1, [r4, #0x0] + str r0, [r1, #0x0] + pop {r4, pc} + .balign 4 +_0203738C: .word 0x00000005 +_02037390: .word 0x021F64C8 + + thumb_func_start sub_02037394 +sub_02037394: ; 0x02037394 + mov r1, #0x0 + str r1, [r0, #0x64] + bx lr + .balign 4 + + thumb_func_start sub_0203739C +sub_0203739C: ; 0x0203739C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020373A8 + mov r0, #0x1 + bx lr +_020373A8: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020373AC +sub_020373AC: ; 0x020373AC + ldr r1, [r0, #0x0] + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _020373BE + ldr r0, [r0, #0x64] + cmp r0, #0x0 + beq _020373BE + mov r0, #0x1 + bx lr +_020373BE: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_020373C4 +sub_020373C4: ; 0x020373C4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _020373D0 + mov r0, #0x1 + bx lr +_020373D0: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020373D4 +sub_020373D4: ; 0x020373D4 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r4, r1, #0x0 + ldr r0, [r0, #0x4] + add r6, r2, #0x0 + cmp r0, #0x0 + beq _020373E8 + bl sub_02020C2C +_020373E8: + add r0, r5, #0x0 + bl sub_02037394 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r2, #0xb + bl sub_02006234 + ldr r1, [r5, #0x0] + str r0, [r1, #0x4] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02037400 +sub_02037400: ; 0x02037400 + push {r3-r5, lr} + mov r2, #0x7 + add r5, r0, #0x0 + mov r0, #0x3 + mov r1, #0xb + lsl r2, r2, #0xe + bl sub_0201681C + mov r1, #0x20 + mov r0, #0x3 + lsl r2, r1, #0x9 + bl sub_0201681C + mov r2, #0x3 + mov r0, #0x0 + mov r1, #0x5b + lsl r2, r2, #0x8 + bl sub_0201681C + add r0, r5, #0x0 + mov r1, #0xb8 + mov r2, #0xb + bl sub_02006268 + mov r1, #0x0 + mov r2, #0xb8 + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0xb + mov r1, #0x10 + bl sub_02016998 + str r0, [r4, #0x0] + mov r1, #0x0 + str r1, [r0, #0x0] + ldr r0, [r4, #0x0] + str r1, [r0, #0x4] + ldr r0, [r4, #0x0] + str r1, [r0, #0x8] + ldr r0, [r4, #0x0] + str r1, [r0, #0xc] + add r0, r5, #0x0 + bl sub_0200628C + ldr r0, [r0, #0x8] + str r0, [r4, #0xc] + mov r0, #0x0 + str r0, [r4, #0x10] + ldr r0, [r4, #0xc] + bl sub_02034E30 + bl sub_02034DC0 + str r0, [r4, #0x1c] + bl sub_02034494 + str r0, [r4, #0x28] + add r0, r4, #0x0 + mov r1, #0xb + bl sub_02034A28 + mov r0, #0xb + bl sub_0206F164 + add r1, r4, #0x0 + add r1, #0x94 + str r0, [r1, #0x0] + mov r0, #0xb + bl sub_0205DD18 + add r1, r4, #0x0 + add r1, #0x90 + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + bl sub_0205DD40 + mov r0, #0xb + bl sub_0208A300 + add r1, r4, #0x0 + add r1, #0xb0 + str r0, [r1, #0x0] + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020374B0 +sub_020374B0: ; 0x020374B0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02006278 + add r4, r0, #0x0 + ldr r0, [r4, #0x28] + bl sub_020344D0 + add r0, r4, #0x0 + bl sub_02034A48 + add r0, r4, #0x0 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + bl sub_0205DD38 + add r0, r4, #0x0 + add r0, #0xb0 + ldr r0, [r0, #0x0] + bl sub_0208A320 + ldr r0, [r4, #0x0] + bl sub_02016A18 + add r0, r5, #0x0 + bl sub_0200627C + mov r0, #0x5b + bl sub_020168D0 + mov r0, #0xb + bl sub_020168D0 + mov r0, #0x20 + bl sub_020168D0 + pop {r3-r5, pc} + + thumb_func_start sub_02037504 +sub_02037504: ; 0x02037504 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02037520 + bl sub_02006290 + cmp r0, #0x0 + beq _02037520 + ldr r0, [r4, #0x0] + bl sub_02006260 + mov r0, #0x0 + str r0, [r4, #0x0] +_02037520: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02037524 +sub_02037524: ; 0x02037524 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02037594 + add r0, r4, #0x0 + bl sub_02046420 + cmp r0, #0x1 + bne _02037546 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _02037546 + mov r1, #0x0 + add r0, r4, #0x0 + add r2, r1, #0x0 + bl sub_021EFA9C +_02037546: + ldr r0, [r4, #0x0] + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02037562 + bl sub_02037504 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0203756E + ldr r0, _02037590 ; =0x00000005 + bl sub_02005F60 + b _0203756E +_02037562: + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0203756E + add r0, r0, #0x4 + bl sub_02037504 +_0203756E: + ldr r1, [r4, #0x0] + ldr r0, [r1, #0xc] + cmp r0, #0x0 + beq _0203758C + ldr r0, [r4, #0x10] + cmp r0, #0x0 + bne _0203758C + ldr r0, [r1, #0x0] + cmp r0, #0x0 + bne _0203758C + ldr r0, [r1, #0x4] + cmp r0, #0x0 + bne _0203758C + mov r0, #0x1 + pop {r4, pc} +_0203758C: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_02037590: .word 0x00000005 + + thumb_func_start sub_02037594 +sub_02037594: ; 0x02037594 + push {r3-r5, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + mov r5, #0x0 + ldr r1, [r1, #0x8] + cmp r1, #0x0 + bne _020375B4 + ldr r1, [r4, #0x64] + cmp r1, #0x0 + beq _020375B4 + bl sub_0204646C + cmp r0, #0x0 + bne _020375B4 + mov r5, #0x1 +_020375B4: + cmp r5, #0x0 + beq _020375D4 + ldr r0, [r4, #0x38] + bl sub_02055A38 + ldr r3, _02037758 ; =0x021C48B8 + add r0, sp, #0x8 + ldr r2, [r3, #0x48] + ldr r3, [r3, #0x44] + lsl r2, r2, #0x10 + lsl r3, r3, #0x10 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + bl sub_021D8164 +_020375D4: + ldr r0, [r4, #0x1c] + ldr r2, [r4, #0x6c] + ldr r1, [r0, #0x0] + ldr r0, _0203775C ; =0x00000146 + cmp r1, r0 + bne _020375E2 + mov r2, #0x0 +_020375E2: + cmp r2, #0x4 + bhi _020376E2 + add r0, r2, r2 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r5, #0x3 + lsl r0, r1, #0 + lsl r2, r2, #0x1 + lsl r0, r5, #0 + lsl r6, r7, #0x1 + cmp r5, #0x0 + beq _02037610 + bl sub_0204E2FC + cmp r0, #0x0 + beq _02037610 + add r0, sp, #0x8 + add r1, r4, #0x0 + bl sub_021D85FC +_02037610: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0204D6C0 + add sp, #0x10 + pop {r3-r5, pc} +_0203761C: + .byte 0x00, 0x2D, 0x0C, 0xD0 + .byte 0x16, 0xF0, 0x6C, 0xFE, 0x00, 0x28, 0x07, 0xD0, 0x02, 0xA8, 0x21, 0x1C, 0xA1, 0xF1, 0x16, 0xF8 + .byte 0x01, 0x28, 0x02, 0xD1, 0x00, 0x25, 0x00, 0xE0, 0x00, 0x25, 0x20, 0x1C, 0x29, 0x1C, 0x16, 0xF0 + .byte 0x3F, 0xF8, 0x04, 0xB0, 0x38, 0xBD, 0x00, 0x2D, 0x00, 0xD1, 0x83, 0xE0, 0x02, 0xA8, 0x21, 0x1C + .byte 0xA1, 0xF1, 0x82, 0xF8, 0x01, 0x28, 0x7D, 0xD0, 0x02, 0xAB, 0xD8, 0x88, 0x00, 0x22, 0x00, 0x90 + .byte 0x01, 0x92, 0x9B, 0x88, 0xA0, 0x6B, 0x61, 0x6A, 0x52, 0x1E, 0x1E, 0xF0, 0xC3, 0xF8, 0x04, 0xB0 + .byte 0x38, 0xBD, 0x00, 0x2D, 0x6E, 0xD0, 0x02, 0xA8, 0x21, 0x1C, 0xA1, 0xF1, 0xD1, 0xF8, 0x01, 0x28 + .byte 0x11, 0xD1, 0x60, 0x68, 0x80, 0x68, 0xAB, 0xF1, 0x33, 0xFE, 0x20, 0x1C, 0x04, 0x21, 0xB0, 0xF1 + .byte 0x95, 0xFD, 0xA0, 0x6B, 0xAF, 0xF1, 0x50, 0xFD, 0x20, 0x1C, 0x00, 0x21, 0x01, 0x22, 0xB8, 0xF1 + .byte 0xFD, 0xF9, 0x04, 0xB0, 0x38, 0xBD, 0x2C, 0x48, 0x81, 0x6C, 0x01, 0x20, 0x08, 0x42, 0x03, 0xD0 + .byte 0x60, 0x68, 0x80, 0x68, 0xAB, 0xF1, 0x1C, 0xFE, 0x00, 0x25, 0x00, 0xF0, 0x69, 0xF8, 0x00, 0x28 + .byte 0x02, 0xD0, 0x1A, 0xF2, 0x37, 0xFF, 0x05, 0x1C, 0x02, 0xAB, 0xD8, 0x88, 0x00, 0x22, 0xD2, 0x43 + .byte 0x00, 0x90, 0x01, 0x95, 0x9B, 0x88, 0xA0, 0x6B, 0x61, 0x6A, 0x1E, 0xF0, 0x8B, 0xF8, 0x04, 0xB0 + .byte 0x38, 0xBD +_020376E2: + cmp r5, #0x0 + beq _02037754 + add r0, sp, #0x8 + add r1, r4, #0x0 + bl sub_021D8320 + cmp r0, #0x1 + bne _0203771C + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x8] + bl sub_021E32F0 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_021E81BC + ldr r0, [r4, #0x38] + bl sub_02055B14 + ldr r0, [r4, #0x38] + bl sub_021E7138 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x1 + bl sub_021EFA9C + add sp, #0x10 + pop {r3-r5, pc} +_0203771C: + ldr r0, _02037758 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x1 + tst r0, r1 + beq _0203772E + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x8] + bl sub_021E32F0 +_0203772E: + mov r5, #0x0 + bl sub_02037790 + cmp r0, #0x0 + beq _0203773E + bl sub_02252534 + add r5, r0, #0x0 +_0203773E: + add r3, sp, #0x8 + ldrh r0, [r3, #0x6] + mov r2, #0x0 + mvn r2, r2 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldrh r3, [r3, #0x4] + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x24] + bl sub_020557F4 +_02037754: + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 +_02037758: .word 0x021C48B8 +_0203775C: .word 0x00000146 + + thumb_func_start sub_02037760 +sub_02037760: ; 0x02037760 + ldr r0, _02037770 ; =0x021C5A08 + ldr r3, _02037774 ; =0x02030FC9 + ldr r0, [r0, #0x0] + mov r1, #0x1 + ldr r0, [r0, #0x0] + str r1, [r0, #0x8] + bx r3 + nop +_02037770: .word 0x021C5A08 +_02037774: .word 0x02030FC9 + + thumb_func_start sub_02037778 +sub_02037778: ; 0x02037778 + ldr r0, _02037788 ; =0x021C5A08 + ldr r3, _0203778C ; =sub_02030FA8 + ldr r0, [r0, #0x0] + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x8] + bx r3 + nop +_02037788: .word 0x021C5A08 +_0203778C: .word sub_02030FA8 + 1 + + thumb_func_start sub_02037790 +sub_02037790: ; 0x02037790 + ldr r0, _020377A4 ; =0x021C5A08 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + bne _0203779E + mov r0, #0x0 + bx lr +_0203779E: + ldr r0, [r0, #0x14] + bx lr + nop +_020377A4: .word 0x021C5A08 + + thumb_func_start sub_020377A8 +sub_020377A8: ; 0x020377A8 + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start sub_020377AC +sub_020377AC: ; 0x020377AC + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_020377B0 +sub_020377B0: ; 0x020377B0 + ldr r2, _020377C4 ; =0x020F2B9C + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + nop +_020377C4: .word 0x020F2B9C + + thumb_func_start sub_020377C8 +sub_020377C8: ; 0x020377C8 + ldr r2, _020377DC ; =0x020F2BB0 + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + nop +_020377DC: .word 0x020F2BB0 + + thumb_func_start sub_020377E0 +sub_020377E0: ; 0x020377E0 + push {r3, lr} + bl sub_02034E30 + bl sub_02034DC0 + bl sub_020377B0 + pop {r3, pc} + + thumb_func_start sub_020377F0 +sub_020377F0: ; 0x020377F0 + mov r0, #0x1 + bx lr +_020377F4: + .byte 0x08, 0xB5, 0xF5, 0xF1, 0xE3, 0xFE, 0x00, 0x28, 0x01, 0xD0, 0x01, 0x20 + .byte 0x08, 0xBD, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x00, 0x01, 0x20, 0x70, 0x47 + + thumb_func_start sub_0203780C +sub_0203780C: ; 0x0203780C + ldr r3, _02037814 ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _02037818 ; =0x020F2D94 + bx r3 + .balign 4 +_02037814: .word sub_020373D4 + 1 +_02037818: .word 0x020F2D94 + + thumb_func_start sub_0203781C +sub_0203781C: ; 0x0203781C + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _02037840 ; =0x020F2D74 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl sub_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02037840: .word 0x020F2D74 + + thumb_func_start sub_02037844 +sub_02037844: ; 0x02037844 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r6, r1, #0x0 + bl sub_0206F158 + ldr r1, _02037898 ; =0x020F2BDC + mov r2, #0xb + bl sub_0206EFEC + add r3, r5, #0x0 + add r3, #0x94 + ldr r1, [r5, #0xc] + ldr r3, [r3, #0x0] + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_0206E314 + ldr r1, [r5, #0x6c] + add r0, r4, #0x0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_0206E360 + ldr r0, [r5, #0x38] + bl sub_020553C4 + cmp r0, #0x1 + bne _02037884 + add r0, r4, #0x0 + bl sub_0206E340 +_02037884: + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_0206E354 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0203781C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02037898: .word 0x020F2BDC + + thumb_func_start sub_0203789C +sub_0203789C: ; 0x0203789C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_0206F158 + add r6, r0, #0x0 + cmp r4, #0x0 + beq _020378B4 + cmp r4, #0x1 + beq _020378BC + b _020378C4 +_020378B4: + ldr r1, _020378F0 ; =0x020F2BC8 + ldr r0, _020378F4 ; =0x02105DB8 + str r1, [r0, #0x0] + b _020378C8 +_020378BC: + ldr r1, _020378F8 ; =0x020F2BC4 + ldr r0, _020378F4 ; =0x02105DB8 + str r1, [r0, #0x0] + b _020378C8 +_020378C4: + bl sub_02020C2C +_020378C8: + ldr r1, _020378F4 ; =0x02105DB8 + add r0, r6, #0x0 + ldr r1, [r1, #0x0] + mov r2, #0x20 + bl sub_0206EFEC + add r3, r5, #0x0 + add r3, #0x94 + ldr r1, [r5, #0xc] + ldr r3, [r3, #0x0] + add r4, r0, #0x0 + mov r2, #0x3 + bl sub_0206E314 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0203781C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_020378F0: .word 0x020F2BC8 +_020378F4: .word 0x02105DB8 +_020378F8: .word 0x020F2BC4 + + thumb_func_start sub_020378FC +sub_020378FC: ; 0x020378FC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0206E37C + add r4, r0, #0x0 + beq _02037916 + add r0, r5, #0x0 + bl sub_0206E384 + cmp r0, #0x5 + bne _02037916 + bl sub_02020C2C +_02037916: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203791C +sub_0203791C: ; 0x0203791C + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _02037940 ; =0x020F2D44 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl sub_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02037940: .word 0x020F2D44 + + thumb_func_start sub_02037944 +sub_02037944: ; 0x02037944 + push {r3-r5, lr} + sub sp, #0x10 + ldr r4, _02037968 ; =0x020F2D24 + add r3, sp, #0x0 + add r5, r0, #0x0 + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + add r1, r2, #0x0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + bl sub_020373D4 + add sp, #0x10 + pop {r3-r5, pc} + nop +_02037968: .word 0x020F2D24 + + thumb_func_start sub_0203796C +sub_0203796C: ; 0x0203796C + ldr r3, _02037974 ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _02037978 ; =0x020FA6E8 + bx r3 + .balign 4 +_02037974: .word sub_020373D4 + 1 +_02037978: .word 0x020FA6E8 + + thumb_func_start sub_0203797C +sub_0203797C: ; 0x0203797C + push {r3-r7, lr} + add r5, r1, #0x0 + mov r1, #0x40 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x40 + blx sub_020CE240 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl sub_0206F158 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl sub_02025838 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0xc] + add r0, r4, #0x0 + add r0, #0x21 + strb r6, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x20 + strb r7, [r0, #0x0] + str r5, [r4, #0x1c] + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_020379C8 +sub_020379C8: ; 0x020379C8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r2, #0x0 + mov r2, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + add r1, r5, #0x0 + add r3, r2, #0x0 + bl sub_0203797C + add r4, r0, #0x0 + str r6, [r4, #0x18] + add r0, #0x22 + strb r7, [r0, #0x0] + ldr r1, _020379F4 ; =0x020F96DC + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + nop +_020379F4: .word 0x020F96DC + + thumb_func_start sub_020379F8 +sub_020379F8: ; 0x020379F8 + push {r3-r5, lr} + mov r0, #0xb + mov r2, #0x0 + mov r3, #0x3 + add r5, r1, #0x0 + bl sub_0203797C + add r4, r0, #0x0 + ldr r1, _02037A18 ; =0x020F96DC + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_02037A18: .word 0x020F96DC + + thumb_func_start sub_02037A1C +sub_02037A1C: ; 0x02037A1C + push {r3-r5, lr} + mov r0, #0xb + mov r2, #0x0 + mov r3, #0x13 + add r5, r1, #0x0 + bl sub_0203797C + add r4, r0, #0x0 + ldr r1, _02037A3C ; =0x020F96DC + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_02037A3C: .word 0x020F96DC + + thumb_func_start sub_02037A40 +sub_02037A40: ; 0x02037A40 + add r0, #0x22 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02037A48 +sub_02037A48: ; 0x02037A48 + push {r4-r6, lr} + add r4, r2, #0x0 + mov r0, #0xb + mov r2, #0x0 + mov r3, #0x12 + add r5, r1, #0x0 + bl sub_0203797C + add r6, r0, #0x0 + add r0, #0x22 + strb r4, [r0, #0x0] + ldr r1, _02037A6C ; =0x020F96DC + add r0, r5, #0x0 + add r2, r6, #0x0 + bl sub_020373D4 + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 +_02037A6C: .word 0x020F96DC + + thumb_func_start sub_02037A70 +sub_02037A70: ; 0x02037A70 + add r0, #0x23 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02037A78 +sub_02037A78: ; 0x02037A78 + ldrb r0, [r0, #0x14] + bx lr + + thumb_func_start sub_02037A7C +sub_02037A7C: ; 0x02037A7C + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046530 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x4 + bhi _02037B3A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r0, r3, #0 + lsl r6, r1, #0x1 + lsl r0, r6, #0x1 + lsl r6, r0, #0x2 + ldr r1, _02037B40 ; =0x020F96DC + ldr r2, [r4, #0x4] + add r0, r6, #0x0 + bl sub_020373D4 + mov r0, #0x1 + str r0, [r5, #0x0] + b _02037B3A +_02037AC2: + .byte 0x30, 0x1C, 0x0E, 0xF0, 0xDA, 0xFC, 0x00, 0x28, 0x36, 0xD1, 0x60, 0x68, 0x22, 0x30 + .byte 0x00, 0x78, 0x06, 0x28, 0x07, 0xD0, 0x07, 0x28, 0x0B, 0xD1, 0x02, 0x20, 0x1A, 0xF0, 0x7C, 0xFE + .byte 0x04, 0x20, 0x28, 0x60, 0x29, 0xE0, 0x01, 0x20, 0x1A, 0xF0, 0x76, 0xFE, 0x04, 0x20, 0x28, 0x60 + .byte 0x23, 0xE0, 0x02, 0x20, 0x28, 0x60, 0x20, 0xE0, 0x21, 0x68, 0x30, 0x1C, 0x00, 0x22, 0x00, 0xF0 + .byte 0xBD, 0xF8, 0xA0, 0x60, 0x61, 0x68, 0x22, 0x31, 0x09, 0x78, 0x01, 0x75, 0xA1, 0x68, 0x30, 0x1C + .byte 0xFF, 0xF7, 0x2C, 0xFF, 0x03, 0x20, 0x28, 0x60, 0x0F, 0xE0, 0x30, 0x1C, 0x0E, 0xF0, 0xAE, 0xFC + .byte 0x00, 0x28, 0x0A, 0xD1, 0xA0, 0x68, 0xDE, 0xF7, 0x77, 0xFF, 0x00, 0x20, 0x28, 0x60, 0x04, 0xE0 + .byte 0x20, 0x1C, 0xDE, 0xF7, 0x71, 0xFF, 0x01, 0x20, 0x70, 0xBD +_02037B3A: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_02037B40: .word 0x020F96DC + + thumb_func_start sub_02037B44 +sub_02037B44: ; 0x02037B44 + push {r3-r7, lr} + add r5, r1, #0x0 + add r7, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xc + bl sub_02016998 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r2, #0x0 + mov r3, #0x2 + str r5, [r4, #0x0] + bl sub_0203797C + add r5, r0, #0x0 + add r0, #0x32 + ldrb r1, [r0, #0x0] + mov r0, #0xf + add r2, r4, #0x0 + bic r1, r0 + mov r0, #0x2 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x32 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x32 + ldrb r1, [r0, #0x0] + mov r0, #0xf0 + bic r1, r0 + mov r0, #0x20 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x32 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x1e + add r0, #0x33 + strb r1, [r0, #0x0] + mov r0, #0x0 + str r0, [r5, #0x14] + ldr r1, _02037BAC ; =sub_02037A7C + add r0, r7, #0x0 + str r5, [r4, #0x4] + bl sub_0204640C + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_02037BAC: .word sub_02037A7C + 1 + + thumb_func_start sub_02037BB0 +sub_02037BB0: ; 0x02037BB0 + push {r3-r7, lr} + add r5, r2, #0x0 + add r6, r3, #0x0 + mov r0, #0xb + mov r2, #0x0 + mov r3, #0xd + add r7, r1, #0x0 + bl sub_0203797C + add r4, r0, #0x0 + ldr r1, [sp, #0x1c] + add r0, #0x22 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x2 + add r0, #0x29 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x2a + strb r5, [r0, #0x0] + ldr r0, [sp, #0x18] + cmp r0, #0x0 + bne _02037BE6 + add r0, r4, #0x0 + add r0, #0x2b + strb r6, [r0, #0x0] + b _02037BEE +_02037BE6: + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x2b + strb r1, [r0, #0x0] +_02037BEE: + ldr r1, _02037BFC ; =0x020F96DC + add r0, r7, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_02037BFC: .word 0x020F96DC + + thumb_func_start sub_02037C00 +sub_02037C00: ; 0x02037C00 + push {r4-r6, lr} + add r5, r1, #0x0 + mov r0, #0xb + mov r1, #0x30 + add r6, r2, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0x4] + mov r0, #0x1 + strb r0, [r4, #0x11] + strb r6, [r4, #0x14] + ldr r0, [r4, #0x0] + bl sub_0206B9AC + strb r0, [r4, #0x13] + mov r0, #0x0 + strh r0, [r4, #0x18] + strb r0, [r4, #0x12] + ldr r0, [r5, #0xc] + bl sub_0202A918 + str r0, [r4, #0x20] + ldr r0, [r5, #0xc] + bl sub_0206BB28 + str r0, [r4, #0x1c] + ldr r0, [r5, #0xc] + bl sub_02079C70 + str r0, [r4, #0x2c] + mov r0, #0x0 + str r0, [r4, #0x28] + ldr r1, _02037C74 ; =0x020F2A9C + add r0, r4, #0x0 + bl sub_0207B000 + ldr r0, [r5, #0xc] + bl sub_020238F4 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0207C2A4 + ldr r1, _02037C78 ; =0x020FA6E8 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02037C74: .word 0x020F2A9C +_02037C78: .word 0x020FA6E8 + + thumb_func_start sub_02037C7C +sub_02037C7C: ; 0x02037C7C + push {r4-r6, lr} + ldr r5, [r0, #0xc] + add r0, r1, #0x0 + mov r1, #0x30 + add r6, r2, #0x0 + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x30 + add r4, r0, #0x0 + blx sub_020CE34C + add r0, r5, #0x0 + bl sub_02023900 + str r0, [r4, #0x4] + add r0, r5, #0x0 + bl sub_0206BB1C + str r0, [r4, #0x0] + mov r0, #0x1 + strb r0, [r4, #0x11] + mov r0, #0x0 + strb r0, [r4, #0x14] + ldr r0, [r4, #0x0] + bl sub_0206B9AC + strb r0, [r4, #0x13] + mov r0, #0x0 + strh r0, [r4, #0x18] + strb r6, [r4, #0x12] + add r0, r5, #0x0 + bl sub_0206BB28 + str r0, [r4, #0x1c] + add r0, r5, #0x0 + bl sub_02079C70 + str r0, [r4, #0x2c] + add r0, r5, #0x0 + bl sub_0202A918 + str r0, [r4, #0x20] + ldr r1, _02037CEC ; =0x020F2BD0 + add r0, r4, #0x0 + bl sub_0207B000 + add r0, r5, #0x0 + bl sub_020238F4 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0207C2A4 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02037CEC: .word 0x020F2BD0 + + thumb_func_start sub_02037CF0 +sub_02037CF0: ; 0x02037CF0 + push {r4-r6, lr} + add r5, r1, #0x0 + mov r1, #0x30 + add r6, r2, #0x0 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x30 + add r4, r0, #0x0 + blx sub_020DF4A4 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0x4] + mov r0, #0x1 + strb r0, [r4, #0x11] + strb r6, [r4, #0x14] + strb r0, [r4, #0x13] + mov r0, #0x0 + strh r0, [r4, #0x18] + mov r0, #0x2 + strb r0, [r4, #0x12] + ldr r0, [r5, #0xc] + bl sub_0206BB28 + str r0, [r4, #0x1c] + ldr r0, [r5, #0xc] + bl sub_02079C70 + str r0, [r4, #0x2c] + ldr r1, _02037D58 ; =0x020F2BCC + add r0, r4, #0x0 + bl sub_0207B000 + ldr r0, [r5, #0xc] + bl sub_020238F4 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0207C2A4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0203796C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02037D58: .word 0x020F2BCC + + thumb_func_start sub_02037D5C +sub_02037D5C: ; 0x02037D5C + ldrb r0, [r0, #0x16] + bx lr + + thumb_func_start sub_02037D60 +sub_02037D60: ; 0x02037D60 + ldr r3, _02037D68 ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _02037D6C ; =0x020F2CF4 + bx r3 + .balign 4 +_02037D68: .word sub_020373D4 + 1 +_02037D6C: .word 0x020F2CF4 + + thumb_func_start sub_02037D70 +sub_02037D70: ; 0x02037D70 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r0, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02046528 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02037D9A + cmp r1, #0x1 + beq _02037DA8 + cmp r1, #0x2 + beq _02037DB8 + b _02037E12 +_02037D9A: + ldr r1, [r5, #0xc] + bl sub_02037E80 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02037E12 +_02037DA8: + bl sub_0204647C + cmp r0, #0x0 + bne _02037E12 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02037E12 +_02037DB8: + ldr r0, [r5, #0xc] + bl sub_020853E4 + cmp r0, #0x0 + bne _02037DCC + ldr r0, [r5, #0xc] + bl sub_020853E8 + cmp r0, #0x0 + bne _02037DD4 +_02037DCC: + ldr r0, [r5, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x0] + b _02037E00 +_02037DD4: + ldr r0, [r5, #0x0] + mov r1, #0x1 + strh r1, [r0, #0x0] + ldr r0, [r5, #0x8] + cmp r0, #0x0 + ldr r0, [r5, #0xc] + bne _02037DEC + bl sub_020853EC + ldr r1, [r5, #0x4] + strh r0, [r1, #0x0] + b _02037E00 +_02037DEC: + add r1, sp, #0x0 + bl sub_020853F0 + add r0, sp, #0x0 + ldrh r2, [r0, #0x0] + ldr r1, [r5, #0x4] + strh r2, [r1, #0x0] + ldrh r1, [r0, #0x2] + ldr r0, [r5, #0x8] + strh r1, [r0, #0x0] +_02037E00: + ldr r0, [r5, #0xc] + bl sub_020853A8 + add r0, r5, #0x0 + bl sub_02016A18 + add sp, #0x4 + mov r0, #0x1 + pop {r3-r6, pc} +_02037E12: + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + + thumb_func_start sub_02037E18 +sub_02037E18: ; 0x02037E18 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + add r5, r2, #0x0 + add r6, r3, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + mov r0, #0x20 + mov r1, #0x10 + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [sp, #0x4] + cmp r6, #0x0 + str r0, [r4, #0x0] + str r5, [r4, #0x4] + str r6, [r4, #0x8] + bne _02037E56 + mov r0, #0x0 + ldr r2, [r7, #0xc] + add r1, r0, #0x0 + mov r3, #0x20 + bl sub_02085338 + str r0, [r4, #0xc] + ldrh r1, [r5, #0x0] + bl sub_020853B0 + b _02037E6C +_02037E56: + ldr r2, [r7, #0xc] + mov r0, #0x1 + mov r1, #0x0 + mov r3, #0x20 + bl sub_02085338 + str r0, [r4, #0xc] + ldrh r1, [r5, #0x0] + ldrh r2, [r6, #0x0] + bl sub_020853B4 +_02037E6C: + ldr r0, [sp, #0x0] + ldr r1, _02037E7C ; =sub_02037D70 + add r2, r4, #0x0 + bl sub_0204640C + add sp, #0x8 + pop {r3-r7, pc} + nop +_02037E7C: .word sub_02037D70 + 1 + + thumb_func_start sub_02037E80 +sub_02037E80: ; 0x02037E80 + ldr r3, _02037E88 ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _02037E8C ; =0x020F2CE4 + bx r3 + .balign 4 +_02037E88: .word sub_020373D4 + 1 +_02037E8C: .word 0x020F2CE4 + + thumb_func_start sub_02037E90 +sub_02037E90: ; 0x02037E90 + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _02037EB4 ; =0x020F2CD4 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl sub_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02037EB4: .word 0x020F2CD4 + + thumb_func_start sub_02037EB8 +sub_02037EB8: ; 0x02037EB8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034E0C + mov r1, #0x5 + mov r0, #0xb + lsl r1, r1, #0x6 + bl sub_020169D8 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_0205F7A0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02037E90 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02037EE8 +sub_02037EE8: ; 0x02037EE8 + ldr r3, _02037EF0 ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _02037EF4 ; =0x020F2CC4 + bx r3 + .balign 4 +_02037EF0: .word sub_020373D4 + 1 +_02037EF4: .word 0x020F2CC4 + + thumb_func_start sub_02037EF8 +sub_02037EF8: ; 0x02037EF8 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0xb + mov r1, #0x2 + bl sub_020169D8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020377AC + bl sub_02023900 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02037EE8 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02037F1C +sub_02037F1C: ; 0x02037F1C + ldr r3, _02037F24 ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _02037F28 ; =0x020FCAC8 + bx r3 + .balign 4 +_02037F24: .word sub_020373D4 + 1 +_02037F28: .word 0x020FCAC8 + + thumb_func_start sub_02037F2C +sub_02037F2C: ; 0x02037F2C + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_020377AC + mov r1, #0xb + str r1, [sp, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl sub_020854E0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02037F1C + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02037F58 +sub_02037F58: ; 0x02037F58 + push {r3-r7, lr} + add r5, r1, #0x0 + add r7, r0, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + cmp r5, #0x3 + bne _02037F74 + bl sub_020377AC + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020855B0 + b _02037F82 +_02037F74: + bl sub_020377AC + add r1, r5, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_02085538 +_02037F82: + add r4, r0, #0x0 + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_02037F1C + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02037F90 +sub_02037F90: ; 0x02037F90 + push {r4-r6, lr} + add r4, r1, #0x0 + add r6, r2, #0x0 + add r5, r0, #0x0 + bl sub_020377AC + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02085578 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02037F1C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02037FB4 +sub_02037FB4: ; 0x02037FB4 + ldr r3, _02037FBC ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _02037FC0 ; =0x020FD1B0 + bx r3 + .balign 4 +_02037FBC: .word sub_020373D4 + 1 +_02037FC0: .word 0x020FD1B0 + + thumb_func_start sub_02037FC4 +sub_02037FC4: ; 0x02037FC4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + bl sub_020377AC + add r1, r5, #0x0 + bl sub_02087D00 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02037FB4 + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02037FE4 +sub_02037FE4: ; 0x02037FE4 + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _02038008 ; =0x020F2CB4 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl sub_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02038008: .word 0x020F2CB4 + + thumb_func_start sub_0203800C +sub_0203800C: ; 0x0203800C + push {r3-r7, lr} + add r5, r1, #0x0 + mov r1, #0x20 + add r7, r2, #0x0 + add r6, r3, #0x0 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x20 + add r4, r0, #0x0 + blx sub_020DF4A4 + add r0, r5, #0x0 + bl sub_0206BB1C + add r1, r7, #0x0 + bl sub_0206B9B0 + str r0, [r4, #0x0] + add r0, r5, #0x0 + bl sub_02027E24 + str r0, [sp, #0x0] + mov r1, #0x0 + bl sub_02027008 + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_0202708C + str r7, [r4, #0x4] + str r0, [r4, #0x8] + add r0, r5, #0x0 + bl sub_02023900 + str r0, [r4, #0xc] + add r0, r5, #0x0 + bl sub_02029FC8 + str r0, [r4, #0x10] + add r0, r5, #0x0 + bl sub_020238F4 + str r0, [r4, #0x14] + ldr r0, [sp, #0x18] + str r6, [r4, #0x18] + str r0, [r4, #0x1c] + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02038070 +sub_02038070: ; 0x02038070 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _0203808E + cmp r0, #0x1 + beq _0203809E + b _020380C8 +_0203808E: + ldr r1, [r5, #0xc] + add r0, r4, #0x0 + bl sub_0203811C + ldr r0, [r5, #0x0] + add r0, r0, #0x1 + str r0, [r5, #0x0] + b _020380C8 +_0203809E: + add r0, r4, #0x0 + bl sub_0204647C + cmp r0, #0x0 + bne _020380C8 + ldr r0, [r5, #0x8] + cmp r0, #0x1 + bne _020380B2 + mov r1, #0x1 + b _020380B4 +_020380B2: + mov r1, #0x0 +_020380B4: + ldr r0, [r5, #0x4] + strh r1, [r0, #0x0] + ldr r0, [r5, #0xc] + bl sub_02016A18 + add r0, r5, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_020380C8: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_020380CC +sub_020380CC: ; 0x020380CC + push {r3-r7, lr} + sub sp, #0x8 + add r6, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x20 + mov r1, #0x10 + add r7, r2, #0x0 + str r3, [sp, #0x4] + bl sub_02016998 + add r4, r0, #0x0 + add r2, r4, #0x0 + mov r1, #0x10 + mov r0, #0x0 +_020380E8: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _020380E8 + add r0, sp, #0x10 + ldrh r0, [r0, #0x10] + add r3, r4, #0x0 + add r1, r7, #0x0 + str r0, [sp, #0x0] + ldr r2, [sp, #0x4] + mov r0, #0x20 + add r3, #0x8 + bl sub_0203800C + str r0, [r4, #0xc] + ldr r1, _02038118 ; =sub_02038070 + add r0, r6, #0x0 + add r2, r4, #0x0 + str r5, [r4, #0x4] + bl sub_0204640C + add sp, #0x8 + pop {r3-r7, pc} + nop +_02038118: .word sub_02038070 + 1 + + thumb_func_start sub_0203811C +sub_0203811C: ; 0x0203811C + push {r3, lr} + add r2, r1, #0x0 + ldr r1, _0203812C ; =0x02105DDC + bl sub_020373D4 + mov r0, #0x1 + pop {r3, pc} + nop +_0203812C: .word 0x02105DDC + + thumb_func_start sub_02038130 +sub_02038130: ; 0x02038130 + push {r3, lr} + add r2, r1, #0x0 + ldr r1, _02038140 ; =0x02105DCC + bl sub_020373D4 + mov r0, #0x1 + pop {r3, pc} + nop +_02038140: .word 0x02105DCC + + thumb_func_start sub_02038144 +sub_02038144: ; 0x02038144 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020238F4 + str r0, [r5, #0x4] + ldr r0, [r4, #0xc] + bl sub_0206BB1C + str r0, [r5, #0x8] + ldr r0, [r4, #0xc] + mov r1, #0x9 + bl sub_02022610 + str r0, [r5, #0xc] + ldr r0, [r4, #0xc] + bl sub_02029AFC + str r0, [r5, #0x14] + ldr r0, [r4, #0xc] + bl sub_02023900 + str r0, [r5, #0x18] + ldr r0, [r4, #0xc] + bl sub_02024DA0 + str r0, [r5, #0x24] + ldr r0, [r4, #0xc] + bl sub_0206BB28 + str r0, [r5, #0x30] + ldr r0, [r4, #0xc] + str r0, [r5, #0x10] + add r0, r4, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + str r0, [r5, #0x1c] + ldr r0, [r4, #0xc] + bl sub_02029FC8 + str r0, [r5, #0x20] + bl sub_02023924 + add r1, r0, #0x0 + mov r0, #0x20 + bl sub_02016998 + str r0, [r5, #0x38] + bl sub_020690C4 + add r1, r0, #0x0 + mov r0, #0x20 + bl sub_02016998 + str r0, [r5, #0x3c] + bl sub_020690C4 + add r1, r0, #0x0 + mov r0, #0x20 + bl sub_02016998 + str r0, [r5, #0x40] + str r4, [r5, #0x0] + mov r0, #0x0 + str r0, [r5, #0x34] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020381CC +sub_020381CC: ; 0x020381CC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x38] + cmp r0, #0x0 + beq _020381DE + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x38] +_020381DE: + ldr r0, [r4, #0x3c] + cmp r0, #0x0 + beq _020381EC + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x3c] +_020381EC: + ldr r0, [r4, #0x40] + cmp r0, #0x0 + beq _020381FA + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x40] +_020381FA: + pop {r4, pc} + + thumb_func_start sub_020381FC +sub_020381FC: ; 0x020381FC + push {r4-r7, lr} + sub sp, #0x34 + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x7 + bls _02038218 + b _020383C8 +_02038218: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r1, #0 + lsl r4, r4, #0 + lsl r2, r6, #0 + lsl r4, r0, #0x1 + lsl r2, r4, #0x1 + lsl r0, r2, #0x3 + lsl r0, r4, #0x5 + lsl r4, r1, #0x6 + bl sub_02033590 + cmp r0, #0x0 + bne _02038242 + add r0, r6, #0x0 + bl sub_0204AF3C +_02038242: + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020383C8 +_0203824A: + .byte 0x20, 0x1D, 0x29, 0x1C, 0xFF, 0xF7 + .byte 0x79, 0xFF, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x5D, 0x49, 0x30, 0x1C, 0x22, 0x1D, 0x0E, 0xF0 + .byte 0x4F, 0xF9, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0xAE, 0xE0, 0xE1, 0x6A, 0x00, 0x29, 0x08, 0xD1 + .byte 0x20, 0x1D, 0xFF, 0xF7, 0xAB, 0xFF, 0x20, 0x1C, 0xDE, 0xF7, 0xCE, 0xFB, 0x0D, 0xB0, 0x01, 0x20 + .byte 0xF0, 0xBD, 0x40, 0x1C, 0x20, 0x60, 0x9F, 0xE0, 0xE0, 0x6B, 0x20, 0x65, 0x20, 0x6C, 0x30, 0xF0 + .byte 0x29, 0xFF, 0xA0, 0x64, 0x60, 0x6C, 0x30, 0xF0, 0x25, 0xFF, 0xE0, 0x64, 0xE8, 0x68, 0xEB, 0xF7 + .byte 0x2F, 0xFB, 0xE0, 0x65, 0x01, 0x20, 0xA0, 0x65, 0x28, 0x1C, 0x12, 0xF0, 0xFB, 0xFF, 0x04, 0x28 + .byte 0x0A, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x08, 0x00 + .byte 0x08, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0x20, 0x60, 0x65, 0x04, 0xE0, 0x01, 0x20 + .byte 0x60, 0x65, 0x01, 0xE0, 0x02, 0x20, 0x60, 0x65, 0xFB, 0xF7, 0x5A, 0xF9, 0x00, 0x28, 0x01, 0xD0 + .byte 0x03, 0x20, 0x60, 0x65, 0x22, 0x1C, 0x3B, 0x49, 0x30, 0x1C, 0x48, 0x32, 0x0E, 0xF0, 0x08, 0xF9 + .byte 0x05, 0x20, 0x20, 0x60, 0x68, 0xE0, 0x60, 0x6C, 0x06, 0x21, 0x00, 0x22, 0x2E, 0xF0, 0x5E, 0xFF + .byte 0x03, 0x1C, 0x0C, 0xA8, 0x00, 0x90, 0x1B, 0x04, 0x61, 0x6C, 0x00, 0x20, 0x01, 0x22, 0x1B, 0x0C + .byte 0x30, 0xF0, 0x2A, 0xFF, 0x08, 0x90, 0x00, 0x28, 0x32, 0xD0, 0x03, 0x20, 0x1A, 0x21, 0x02, 0x04 + .byte 0xDE, 0xF7, 0x7C, 0xFA, 0xE8, 0x68, 0xEB, 0xF7, 0xEB, 0xFA, 0x09, 0x90, 0xE8, 0x68, 0x41, 0xF0 + .byte 0x9F, 0xFC, 0x06, 0x1C, 0xE8, 0x68, 0xEC, 0xF7, 0x33, 0xFD, 0x07, 0x1C, 0xE8, 0x68, 0x36, 0xF0 + .byte 0x0B, 0xFF, 0x0A, 0x90, 0xE8, 0x68, 0xF1, 0xF7, 0x3F, 0xFE, 0x0B, 0x90, 0xE8, 0x68, 0x13, 0xF0 + .byte 0x2B, 0xFF, 0x00, 0x96, 0x0A, 0x99, 0x01, 0x97, 0x02, 0x91, 0x0B, 0x99, 0x08, 0x9A, 0x03, 0x91 + .byte 0x04, 0x90, 0x0C, 0x98, 0x09, 0x9B, 0x05, 0x90, 0x04, 0x20, 0x06, 0x90, 0x1A, 0x20, 0x07, 0x90 + .byte 0x61, 0x6C, 0x00, 0x20, 0x34, 0xF0, 0xC4, 0xF9, 0x20, 0x66, 0x06, 0x20, 0x20, 0x60, 0x23, 0xE0 + .byte 0x07, 0x20, 0x20, 0x60, 0x20, 0xE0, 0x20, 0x6E, 0x34, 0xF0, 0xC8, 0xFA, 0x00, 0x28, 0x1B, 0xD0 + .byte 0xE0, 0x68, 0x21, 0x6B, 0x33, 0xF0, 0x0C, 0xFB, 0x01, 0x1C, 0x60, 0x6C, 0x31, 0xF0, 0xF4, 0xFB + .byte 0x20, 0x6E, 0x34, 0xF0, 0xC3, 0xFA, 0x1A, 0x20, 0xDE, 0xF7, 0x92, 0xFA, 0x07, 0x20, 0x20, 0x60 + .byte 0x0A, 0xE0, 0xA0, 0x6B, 0x40, 0x1C, 0xA0, 0x63, 0x02, 0x20, 0x20, 0x60, 0xE8, 0x68, 0xF1, 0xF7 + .byte 0x03, 0xFE, 0x10, 0x21, 0xF1, 0xF7, 0xD4, 0xFE +_020383C8: + mov r0, #0x0 + add sp, #0x34 + pop {r4-r7, pc} + nop +_020383D0: + .byte 0xBC, 0x5D, 0x10, 0x02, 0xA4, 0x2C, 0x0F, 0x02 + + thumb_func_start sub_020383D8 +sub_020383D8: ; 0x020383D8 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x20 + mov r1, #0x68 + bl sub_02016998 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + ldr r1, _020383F4 ; =sub_020381FC + add r0, r4, #0x0 + bl sub_0204640C + pop {r4, pc} + .balign 4 +_020383F4: .word sub_020381FC + 1 + + thumb_func_start sub_020383F8 +sub_020383F8: ; 0x020383F8 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x20 + mov r1, #0xc + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [r5, #0x7c] + str r0, [r4, #0x0] + add r0, r5, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0x8] + ldr r1, _02038428 ; =0x020F2C94 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + pop {r3-r5, pc} + nop +_02038428: .word 0x020F2C94 + + thumb_func_start sub_0203842C +sub_0203842C: ; 0x0203842C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0xb + mov r1, #0x14 + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + str r0, [r4, #0x0] + ldr r0, [r5, #0x7c] + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl sub_02029FC8 + str r0, [r4, #0xc] + add r0, r5, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + ldr r1, _02038468 ; =0x020F2D04 + str r0, [r4, #0x10] + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02038468: .word 0x020F2D04 + + thumb_func_start sub_0203846C +sub_0203846C: ; 0x0203846C + ldr r3, _02038474 ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _02038478 ; =0x020F2D54 + bx r3 + .balign 4 +_02038474: .word sub_020373D4 + 1 +_02038478: .word 0x020F2D54 + + thumb_func_start sub_0203847C +sub_0203847C: ; 0x0203847C + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x3 + bhi _02038544 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r2, #0 + lsl r6, r4, #0 + lsl r4, r6, #0 + add r0, r5, #0x0 + bl sub_0204AF3C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02038544 +_020384B6: + .byte 0x24, 0x49, 0xE2, 0x68, 0x28, 0x1C, 0x0E, 0xF0, 0x20, 0xF8 + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x3D, 0xE0, 0x28, 0x1C, 0x12, 0xF0, 0x5B, 0xFD, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x36, 0xE0, 0xE1, 0x68, 0x08, 0x68, 0x01, 0x28, 0x09, 0xD1, 0x88, 0x69 + .byte 0x21, 0x69, 0xE9, 0xF7, 0xFD, 0xFB, 0x00, 0x28, 0x14, 0xD1, 0xE0, 0x68, 0x01, 0x21, 0x41, 0x61 + .byte 0x10, 0xE0, 0x05, 0x28, 0x0E, 0xD1, 0x88, 0x69, 0xE9, 0xF7, 0x18, 0xFD, 0x07, 0x1C, 0xF0, 0x68 + .byte 0xF0, 0xF7, 0x8C, 0xF9, 0x39, 0x1C, 0xF0, 0xF7, 0xA5, 0xF9, 0x00, 0x28, 0x02, 0xD0, 0xE0, 0x68 + .byte 0x02, 0x21, 0x41, 0x61, 0xE0, 0x68, 0x40, 0x69, 0x00, 0x28, 0x02, 0xD1, 0x28, 0x1C, 0x00, 0xF0 + .byte 0x15, 0xF8, 0xA1, 0x68, 0x00, 0x29, 0x02, 0xD0, 0xE0, 0x68, 0x40, 0x69, 0x08, 0x80, 0xE0, 0x68 + .byte 0x3F, 0xF0, 0xC8, 0xFA, 0x20, 0x69, 0xE9, 0xF7, 0x73, 0xFA, 0x20, 0x1C, 0xDE, 0xF7, 0x6C, 0xFA + .byte 0x01, 0x20, 0xF8, 0xBD +_02038544: + mov r0, #0x0 + pop {r3-r7, pc} +_02038548: + .byte 0xFC, 0xA5, 0x0F, 0x02 + + thumb_func_start sub_0203854C +sub_0203854C: ; 0x0203854C + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x0] + cmp r0, #0x6 + bhi _020385CA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r4, r3, #0 + lsl r6, r2, #0x1 + lsl r6, r2, #0x1 + lsl r6, r2, #0x1 + lsl r4, r6, #0 + lsl r0, r1, #0x1 + ldr r0, [r5, #0xc] + bl sub_020238F4 + ldr r1, [r4, #0xc] + add r1, #0x1c + bl sub_0202395C + pop {r3-r5, pc} +_02038590: + .byte 0xE8, 0x68, 0x33, 0xF0, 0xC3, 0xFA, 0x61, 0x68, 0x33, 0xF0, 0x0A, 0xFA, 0xE2, 0x68, 0x75, 0x21 + .byte 0x1C, 0x32, 0x2F, 0xF0, 0x45, 0xF9, 0x38, 0xBD, 0xE8, 0x68, 0xF0, 0xF7, 0x37, 0xF9, 0xE3, 0x68 + .byte 0x00, 0x21, 0x9B, 0x69, 0x0A, 0x1C, 0xF0, 0xF7, 0x03, 0xF9, 0x38, 0xBD, 0xE8, 0x68, 0xEC, 0xF7 + .byte 0x79, 0xFC, 0xE1, 0x68, 0x89, 0x69, 0xEC, 0xF7, 0xA7, 0xFC +_020385CA: + pop {r3-r5, pc} + + thumb_func_start sub_020385CC +sub_020385CC: ; 0x020385CC + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x4] + add r6, r1, #0x0 + str r2, [sp, #0x8] + str r3, [sp, #0xc] + ldr r5, [sp, #0x2c] + bl sub_02046528 + add r7, r0, #0x0 + mov r0, #0xb + mov r1, #0x14 + bl sub_020169D8 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [r4, #0x0] + ldr r0, [sp, #0x28] + str r0, [r4, #0x4] + ldr r0, [sp, #0x30] + str r0, [r4, #0x8] + ldr r0, [r7, #0xc] + bl sub_02023900 + str r0, [sp, #0x0] + ldr r2, [sp, #0x8] + ldr r3, [sp, #0xc] + mov r0, #0xb + add r1, r6, #0x0 + bl sub_02077A84 + str r0, [r4, #0xc] + mov r0, #0xc + mov r1, #0xb + bl sub_020219F4 + str r0, [r4, #0x10] + cmp r6, #0x1 + beq _02038620 + cmp r6, #0x5 + beq _02038656 + b _02038660 +_02038620: + ldr r0, [r7, #0xc] + bl sub_0206BB1C + ldr r1, [r4, #0x4] + bl sub_0206B9B0 + mov r1, #0x6f + mov r2, #0x0 + add r6, r0, #0x0 + bl sub_020671BC + ldr r1, [r4, #0xc] + mov r2, #0x0 + str r0, [r1, #0x10] + add r0, r6, #0x0 + mov r1, #0x70 + bl sub_020671BC + ldr r1, [r4, #0xc] + cmp r5, #0x0 + str r0, [r1, #0x8] + beq _0203866E + ldr r0, [r4, #0x10] + add r1, r5, #0x0 + bl sub_02021E28 + b _0203866E +_02038656: + ldr r0, [r4, #0x10] + add r1, r5, #0x0 + bl sub_02021E28 + b _0203866E +_02038660: + cmp r5, #0x0 + beq _0203866E + ldr r0, [r4, #0xc] + add r1, r5, #0x0 + ldr r0, [r0, #0x18] + bl sub_02021E28 +_0203866E: + ldr r0, [sp, #0x4] + ldr r1, _0203867C ; =sub_0203847C + add r2, r4, #0x0 + bl sub_0204640C + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0203867C: .word sub_0203847C + 1 + + thumb_func_start sub_02038680 +sub_02038680: ; 0x02038680 + ldr r3, _02038688 ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _0203868C ; =0x020F2C54 + bx r3 + .balign 4 +_02038688: .word sub_020373D4 + 1 +_0203868C: .word 0x020F2C54 + + thumb_func_start sub_02038690 +sub_02038690: ; 0x02038690 + push {r3, lr} + add r2, r1, #0x0 + ldr r1, _020386A0 ; =0x020F2C44 + bl sub_020373D4 + mov r0, #0x1 + pop {r3, pc} + nop +_020386A0: .word 0x020F2C44 + + thumb_func_start sub_020386A4 +sub_020386A4: ; 0x020386A4 + ldr r3, _020386AC ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _020386B0 ; =0x020F2C34 + bx r3 + .balign 4 +_020386AC: .word sub_020373D4 + 1 +_020386B0: .word 0x020F2C34 + + thumb_func_start sub_020386B4 +sub_020386B4: ; 0x020386B4 + push {r3-r5, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02029ABC + ldr r5, _020386DC ; =0x020F2C24 + add r3, sp, #0x0 + add r2, r3, #0x0 + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + add r1, r2, #0x0 + ldr r2, [r4, #0xc] + add r0, r4, #0x0 + bl sub_020373D4 + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 +_020386DC: .word 0x020F2C24 + + thumb_func_start sub_020386E0 +sub_020386E0: ; 0x020386E0 + push {r4-r6, lr} + sub sp, #0x10 + ldr r3, _0203878C ; =0x020F2C64 + add r2, sp, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0xb + mov r1, #0x44 + bl sub_020169D8 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0202ABBC + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl sub_02023788 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + mov r1, #0x2 + bl sub_02022610 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl sub_02022510 + str r0, [r4, #0xc] + ldr r0, [r5, #0xc] + bl sub_02024DA0 + str r0, [r4, #0x10] + ldr r0, [r5, #0xc] + bl sub_020286EC + str r0, [r4, #0x14] + ldr r0, [r5, #0xc] + bl sub_02029AFC + str r0, [r4, #0x18] + ldr r0, [r5, #0xc] + bl sub_020238F4 + str r0, [r4, #0x1c] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0x24] + ldr r0, [r5, #0xc] + bl sub_02029FC8 + str r0, [r4, #0x28] + add r0, r5, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + str r0, [r4, #0x2c] + ldr r0, [r5, #0xc] + bl sub_02079C70 + str r0, [r4, #0x3c] + ldr r0, [r5, #0xc] + str r0, [r4, #0x20] + ldr r0, [r5, #0xc] + bl sub_0206BB28 + str r0, [r4, #0x34] + ldr r0, [r4, #0x14] + bl sub_02033830 + str r0, [r4, #0x38] + ldr r0, [r5, #0xc] + bl sub_0206F158 + str r0, [r4, #0x30] + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, r4, #0x0 + str r6, [r4, #0x40] + bl sub_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_0203878C: .word 0x020F2C64 + + thumb_func_start sub_02038790 +sub_02038790: ; 0x02038790 + push {r3-r7, lr} + sub sp, #0x10 + ldr r3, _02038800 ; =0x020F2C74 + add r7, r2, #0x0 + add r2, sp, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0xb + mov r1, #0x28 + bl sub_020169D8 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0202A8D8 + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl sub_0202A8E4 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl sub_02023788 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0x10] + ldr r0, [r5, #0xc] + bl sub_020286EC + bl sub_02028228 + str r0, [r4, #0x14] + ldr r0, [r5, #0xc] + str r0, [r4, #0xc] + ldr r0, [r5, #0xc] + bl sub_020286EC + bl sub_02033830 + str r0, [r4, #0x1c] + str r6, [r4, #0x18] + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, r4, #0x0 + str r7, [r4, #0x24] + bl sub_020373D4 + add r0, r4, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02038800: .word 0x020F2C74 + + thumb_func_start sub_02038804 +sub_02038804: ; 0x02038804 + ldr r3, _0203880C ; =sub_020373D4 + ldr r1, _02038810 ; =0x020F2D14 + ldr r2, [r0, #0xc] + bx r3 + .balign 4 +_0203880C: .word sub_020373D4 + 1 +_02038810: .word 0x020F2D14 + + thumb_func_start sub_02038814 +sub_02038814: ; 0x02038814 + ldr r3, _0203881C ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _02038820 ; =0x020F2D64 + bx r3 + .balign 4 +_0203881C: .word sub_020373D4 + 1 +_02038820: .word 0x020F2D64 + + thumb_func_start sub_02038824 +sub_02038824: ; 0x02038824 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r1, #0xb + add r2, sp, #0x0 + bl sub_02022534 + ldr r1, [sp, #0x0] + add r4, r0, #0x0 + cmp r1, #0x2 + bne _02038842 + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r5, pc} +_02038842: + ldr r1, _02038850 ; =0x020F2BF4 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02038850: .word 0x020F2BF4 + + thumb_func_start sub_02038854 +sub_02038854: ; 0x02038854 + ldr r3, _0203885C ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _02038860 ; =0x020F2C04 + bx r3 + .balign 4 +_0203885C: .word sub_020373D4 + 1 +_02038860: .word 0x020F2C04 + + thumb_func_start sub_02038864 +sub_02038864: ; 0x02038864 + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _02038888 ; =0x020F2C84 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl sub_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02038888: .word 0x020F2C84 + + thumb_func_start sub_0203888C +sub_0203888C: ; 0x0203888C + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _020388B0 ; =0x020F2D84 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl sub_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_020388B0: .word 0x020F2D84 + + thumb_func_start sub_020388B4 +sub_020388B4: ; 0x020388B4 + push {r3-r5, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206BB1C + bl sub_021ED49C + add r5, r0, #0x0 + bne _020388CC + bl sub_02020C2C +_020388CC: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_020613CC + str r5, [sp, #0x0] + ldr r0, [r4, #0xc] + bl sub_02023900 + str r0, [sp, #0x4] + ldr r0, [r4, #0xc] + bl sub_020238F4 + str r0, [sp, #0x8] + ldr r1, [r4, #0x1c] + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + bl sub_0204AB58 + add r1, sp, #0x0 + strh r0, [r1, #0xc] + ldr r0, [r4, #0x10] + add r1, sp, #0x0 + bl sub_020863DC + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_02038900 +sub_02038900: ; 0x02038900 + push {r3, lr} + add r2, r1, #0x0 + ldr r1, _02038910 ; =0x020F2C14 + bl sub_020373D4 + mov r0, #0x1 + pop {r3, pc} + nop +_02038910: .word 0x020F2C14 + + thumb_func_start sub_02038914 +sub_02038914: ; 0x02038914 + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020462AC + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02046530 + add r6, r0, #0x0 + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _02038944 + cmp r0, #0x1 + beq _02038956 + b _020389C6 +_02038944: + add r5, #0xc + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02038900 + ldr r0, [r6, #0x0] + add r0, r0, #0x1 + str r0, [r6, #0x0] + b _020389C6 +_02038956: + add r0, r4, #0x0 + bl sub_0204647C + cmp r0, #0x0 + bne _020389C6 + ldr r0, [r4, #0xc] + bl sub_0202390C + str r0, [sp, #0x0] + bl sub_020126FC + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + add r6, r1, #0x0 + bl sub_02028930 + str r0, [sp, #0x8] + ldr r0, [r5, #0x4] + ldr r1, [r5, #0x8] + ldr r2, [sp, #0x4] + add r3, r6, #0x0 + bl sub_020127C0 + mov r2, #0x3c + mov r3, #0x0 + blx sub_020EBA38 + add r3, r0, #0x0 + ldr r1, [sp, #0x8] + ldr r2, [r5, #0x0] + add r0, r4, #0x0 + bl sub_02061A8C + ldr r0, [r4, #0xc] + bl sub_0202390C + ldr r1, [r5, #0x0] + bl sub_02028918 + add r0, r7, #0x0 + bl sub_0205F6C8 + ldr r1, [r5, #0x18] + cmp r1, r0 + ble _020389BA + lsl r1, r1, #0x10 + add r0, r7, #0x0 + lsr r1, r1, #0x10 + bl sub_0205F6D8 +_020389BA: + add r0, r5, #0x0 + bl sub_02016A18 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_020389C6: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_020389CC +sub_020389CC: ; 0x020389CC + push {r3-r7, lr} + add r7, r0, #0x0 + add r6, r1, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [sp, #0x0] + mov r0, #0x20 + add r1, r0, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + str r4, [r4, #0xc] + ldr r0, [r5, #0xc] + bl sub_0202390C + bl sub_02028930 + str r0, [r4, #0x0] + bl sub_020126FC + str r0, [r4, #0x4] + str r1, [r4, #0x8] + ldr r0, [r5, #0xc] + bl sub_02029FC8 + str r0, [r4, #0x14] + mov r0, #0x0 + str r0, [r4, #0x18] + ldr r0, [sp, #0x0] + bl sub_02025084 + str r0, [r4, #0x1c] + lsl r1, r6, #0x18 + ldr r0, [r5, #0xc] + lsr r1, r1, #0x18 + bl sub_02038A3C + str r0, [r4, #0x10] + ldr r0, [r5, #0xc] + bl sub_02029FC8 + mov r1, #0x5 + bl sub_0202A170 + ldr r1, _02038A38 ; =sub_02038914 + add r0, r7, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + .balign 4 +_02038A38: .word sub_02038914 + 1 + + thumb_func_start sub_02038A3C +sub_02038A3C: ; 0x02038A3C + push {r4-r7, lr} + sub sp, #0x14 + str r1, [sp, #0x0] + bl sub_0202881C + add r4, r0, #0x0 + bl sub_0201B9D4 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_020287A4 + bl sub_0201B9E0 + ldr r0, _02038AAC ; =0x020F2BE8 + add r1, sp, #0x8 + mov r2, #0xc + blx sub_020CE3E0 + mov r4, #0x0 + mov r7, #0xc + add r6, sp, #0x8 +_02038A68: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0xc + bhs _02038A92 +_02038A72: + bl sub_0201B9EC + add r1, r7, #0x0 + blx sub_020EBC80 + lsl r0, r1, #0x18 + lsr r2, r0, #0x18 + ldrb r1, [r6, r4] + ldrb r0, [r6, r2] + strb r0, [r6, r4] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + strb r1, [r6, r2] + cmp r5, #0xc + blo _02038A72 +_02038A92: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xc + blo _02038A68 + ldr r0, [sp, #0x4] + bl sub_0201B9E0 + ldr r0, [sp, #0x0] + add r1, sp, #0x8 + ldrb r0, [r1, r0] + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02038AAC: .word 0x020F2BE8 + + thumb_func_start sub_02038AB0 +sub_02038AB0: ; 0x02038AB0 + push {r4, lr} + bl sub_0204652C + add r4, r0, #0x0 + bl sub_0224D79C + cmp r0, #0x1 + bne _02038ACA + add r0, r4, #0x0 + bl sub_0224D76C + mov r0, #0x1 + pop {r4, pc} +_02038ACA: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02038AD0 +sub_02038AD0: ; 0x02038AD0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r2, r0, #0x0 + ldr r1, [r2, #0xc] + ldr r2, [r2, #0x8] + mov r0, #0x4 + bl sub_0224D70C + add r2, r0, #0x0 + ldr r1, _02038AF0 ; =sub_02038AB0 + add r0, r4, #0x0 + bl sub_0204640C + pop {r4, pc} + .balign 4 +_02038AF0: .word sub_02038AB0 + 1 + + thumb_func_start sub_02038AF4 +sub_02038AF4: ; 0x02038AF4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x8 + add r6, r2, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + str r6, [r4, #0x4] + ldr r0, [r5, #0xc] + ldr r1, _02038B18 ; =0x020F2DA4 + str r0, [r4, #0x0] + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02038B18: .word 0x020F2DA4 + + thumb_func_start sub_02038B1C +sub_02038B1C: ; 0x02038B1C + push {r3-r4} + mov r3, #0x0 + strb r3, [r0, #0x1] + str r3, [r0, #0x8] + strb r3, [r0, #0x0] + str r3, [r0, #0x4] + str r1, [r0, #0x5c] + str r2, [r0, #0x60] + add r1, r0, #0x0 + add r4, r3, #0x0 +_02038B30: + add r3, r3, #0x1 + str r4, [r1, #0x64] + add r1, r1, #0x4 + cmp r3, #0x4 + blo _02038B30 + add r2, r0, #0x0 + mov r1, #0x0 +_02038B3E: + add r4, r4, #0x1 + str r1, [r2, #0xc] + add r2, r2, #0x4 + cmp r4, #0x14 + blo _02038B3E + str r1, [r0, #0x74] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_02038B50 +sub_02038B50: ; 0x02038B50 + str r1, [r0, #0x8] + mov r1, #0x1 + strb r1, [r0, #0x1] + add r0, r1, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02038B5C +sub_02038B5C: ; 0x02038B5C + mov r2, #0x2 + strb r2, [r0, #0x1] + str r1, [r0, #0x4] + bx lr + + thumb_func_start sub_02038B64 +sub_02038B64: ; 0x02038B64 + mov r1, #0x0 + strb r1, [r0, #0x1] + str r1, [r0, #0x8] + bx lr + + thumb_func_start sub_02038B6C +sub_02038B6C: ; 0x02038B6C + str r1, [r0, #0x74] + bx lr + + thumb_func_start sub_02038B70 +sub_02038B70: ; 0x02038B70 + push {r4, lr} + add r4, r0, #0x0 + ldrb r1, [r4, #0x1] + cmp r1, #0x0 + bne _02038B7E + mov r0, #0x0 + pop {r4, pc} +_02038B7E: + beq _02038B8A + cmp r1, #0x1 + beq _02038BA6 + cmp r1, #0x2 + beq _02038B8E + b _02038BD8 +_02038B8A: + mov r0, #0x0 + pop {r4, pc} +_02038B8E: + ldr r1, [r4, #0x4] + cmp r1, #0x0 + beq _02038BA2 + blx r1 + cmp r0, #0x1 + bne _02038B9E + mov r0, #0x1 + strb r0, [r4, #0x1] +_02038B9E: + mov r0, #0x1 + pop {r4, pc} +_02038BA2: + mov r0, #0x1 + strb r0, [r4, #0x1] +_02038BA6: + ldr r0, [r4, #0x8] + cmp r0, #0x0 + bne _02038BB2 + mov r0, #0x0 + strb r0, [r4, #0x1] + pop {r4, pc} +_02038BB2: + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + ldr r0, [r4, #0x60] + cmp r1, r0 + blo _02038BCA + bl sub_02020C2C + mov r0, #0x0 + strb r0, [r4, #0x1] + pop {r4, pc} +_02038BCA: + ldr r2, [r4, #0x5c] + lsl r1, r1, #0x2 + ldr r1, [r2, r1] + add r0, r4, #0x0 + blx r1 + cmp r0, #0x1 + bne _02038BA6 +_02038BD8: + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_02038BDC +sub_02038BDC: ; 0x02038BDC + ldrb r3, [r0, #0x0] + add r2, r3, #0x1 + cmp r2, #0x14 + blt _02038BE8 + mov r0, #0x1 + bx lr +_02038BE8: + lsl r2, r3, #0x2 + add r2, r0, r2 + str r1, [r2, #0xc] + ldrb r1, [r0, #0x0] + add r1, r1, #0x1 + strb r1, [r0, #0x0] + mov r0, #0x0 + bx lr + + thumb_func_start sub_02038BF8 +sub_02038BF8: ; 0x02038BF8 + ldrb r1, [r0, #0x0] + cmp r1, #0x0 + bne _02038C02 + mov r0, #0x0 + bx lr +_02038C02: + sub r1, r1, #0x1 + strb r1, [r0, #0x0] + ldrb r1, [r0, #0x0] + lsl r1, r1, #0x2 + add r0, r0, r1 + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_02038C10 +sub_02038C10: ; 0x02038C10 + str r1, [r0, #0x8] + bx lr + + thumb_func_start sub_02038C14 +sub_02038C14: ; 0x02038C14 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x8] + bl sub_02038BDC + str r4, [r5, #0x8] + pop {r3-r5, pc} + + thumb_func_start sub_02038C24 +sub_02038C24: ; 0x02038C24 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038BF8 + str r0, [r4, #0x8] + pop {r4, pc} + + thumb_func_start sub_02038C30 +sub_02038C30: ; 0x02038C30 + ldr r1, [r0, #0x8] + add r3, r1, #0x1 + str r3, [r0, #0x8] + ldrb r2, [r1, #0x0] + add r1, r3, #0x1 + str r1, [r0, #0x8] + ldrb r0, [r3, #0x0] + lsl r0, r0, #0x8 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + + thumb_func_start sub_02038C48 +sub_02038C48: ; 0x02038C48 + push {r4-r5} + ldr r1, [r0, #0x8] + add r2, r1, #0x1 + str r2, [r0, #0x8] + ldrb r3, [r1, #0x0] + add r1, r2, #0x1 + add r5, r1, #0x1 + str r1, [r0, #0x8] + ldrb r2, [r2, #0x0] + add r4, r5, #0x1 + str r5, [r0, #0x8] + ldrb r1, [r1, #0x0] + str r4, [r0, #0x8] + ldrb r0, [r5, #0x0] + mov r4, #0x0 + add r0, r4, r0 + lsl r0, r0, #0x8 + add r0, r0, r1 + lsl r0, r0, #0x8 + add r0, r0, r2 + lsl r0, r0, #0x8 + add r0, r0, r3 + pop {r4-r5} + bx lr + + thumb_func_start sub_02038C78 +sub_02038C78: ; 0x02038C78 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_02038E20 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl sub_02038E60 + ldr r1, _02038CA4 ; =sub_02038D48 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020463CC + pop {r3-r7, pc} + nop +_02038CA4: .word sub_02038D48 + 1 + + thumb_func_start sub_02038CA8 +sub_02038CA8: ; 0x02038CA8 + push {r4-r6, lr} + ldr r0, [r0, #0x10] + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_0204652C + ldr r2, [sp, #0x1c] + mov r1, #0x1c + add r3, r2, #0x0 + add r0, #0x50 + mul r3, r1 + add r1, r0, r3 + str r4, [r0, r3] + ldr r0, [sp, #0x10] + str r6, [r1, #0x4] + str r0, [r1, #0x8] + ldr r0, [sp, #0x14] + str r0, [r1, #0xc] + ldr r0, [sp, #0x18] + str r0, [r1, #0x10] + str r5, [r1, #0x14] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02038CD8 +sub_02038CD8: ; 0x02038CD8 + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + add r7, r1, #0x0 + str r2, [sp, #0x4] + add r5, r3, #0x0 + bl sub_02046528 + str r0, [sp, #0x8] + bl sub_02038E20 + add r4, r0, #0x0 + ldr r0, [sp, #0x8] + ldr r3, [sp, #0x4] + add r1, r4, #0x0 + add r2, r7, #0x0 + str r5, [sp, #0x0] + bl sub_02038E60 + ldr r1, _02038D0C ; =sub_02038D48 + add r0, r6, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02038D0C: .word sub_02038D48 + 1 + + thumb_func_start sub_02038D10 +sub_02038D10: ; 0x02038D10 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_02046528 + str r0, [sp, #0x4] + bl sub_02038E20 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl sub_02038E60 + ldr r1, _02038D44 ; =sub_02038D48 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020463EC + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02038D44: .word sub_02038D48 + 1 + + thumb_func_start sub_02038D48 +sub_02038D48: ; 0x02038D48 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + ldrb r1, [r4, #0x4] + str r0, [sp, #0x0] + cmp r1, #0x0 + beq _02038D68 + cmp r1, #0x1 + beq _02038D9E + b _02038E1A +_02038D68: + ldrh r1, [r4, #0xa] + bl sub_02038EB0 + str r0, [r4, #0x38] + mov r0, #0x1 + strb r0, [r4, #0x9] + mov r0, #0x8 + mov r1, #0x40 + mov r2, #0xb + bl sub_0200AA90 + str r0, [r4, #0x40] + mov r0, #0x1 + lsl r0, r0, #0xa + mov r1, #0xb + bl sub_020219F4 + str r0, [r4, #0x44] + mov r0, #0x1 + lsl r0, r0, #0xa + mov r1, #0xb + bl sub_020219F4 + str r0, [r4, #0x48] + ldrb r0, [r4, #0x4] + add r0, r0, #0x1 + strb r0, [r4, #0x4] +_02038D9E: + mov r0, #0x0 + add r7, r4, #0x0 + str r0, [sp, #0x4] + add r5, r4, #0x0 + add r7, #0x9 +_02038DA8: + ldr r6, [r5, #0x38] + cmp r6, #0x0 + beq _02038DD2 + add r0, r6, #0x0 + bl sub_02038B70 + cmp r0, #0x0 + bne _02038DD2 + add r0, r6, #0x0 + bl sub_02038E48 + ldrb r0, [r4, #0x9] + cmp r0, #0x0 + bne _02038DC8 + bl sub_02020C2C +_02038DC8: + mov r0, #0x0 + str r0, [r5, #0x38] + ldrb r0, [r7, #0x0] + sub r0, r0, #0x1 + strb r0, [r7, #0x0] +_02038DD2: + ldr r0, [sp, #0x4] + add r5, r5, #0x4 + add r0, r0, #0x1 + str r0, [sp, #0x4] + cmp r0, #0x2 + blt _02038DA8 + ldrb r0, [r4, #0x9] + cmp r0, #0x0 + bne _02038E1A + add r0, r4, #0x0 + add r0, #0xa4 + ldr r5, [r0, #0x0] + ldr r0, [r4, #0x40] + bl sub_0200AB18 + ldr r0, [r4, #0x44] + bl sub_02021A20 + ldr r0, [r4, #0x48] + bl sub_02021A20 + mov r0, #0x0 + str r0, [r4, #0x0] + add r0, r4, #0x0 + bl sub_02016A18 + cmp r5, #0x0 + beq _02038E14 + ldr r0, [sp, #0x0] + blx r5 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_02038E14: + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_02038E1A: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02038E20 +sub_02038E20: ; 0x02038E20 + push {r4, lr} + mov r0, #0xb + mov r1, #0xdc + bl sub_02016998 + add r4, r0, #0x0 + bne _02038E32 + bl sub_02020C2C +_02038E32: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0xdc + blx sub_020DF4A4 + ldr r0, _02038E44 ; =0x0003643F + str r0, [r4, #0x0] + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02038E44: .word 0x0003643F + + thumb_func_start sub_02038E48 +sub_02038E48: ; 0x02038E48 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x78] + bl sub_0200A8B8 + ldr r0, [r4, #0x7c] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02038E60 +sub_02038E60: ; 0x02038E60 + push {r3-r7, lr} + add r5, r1, #0x0 + add r7, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x36 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02039300 + str r0, [sp, #0x0] + ldr r0, [r7, #0x38] + bl sub_020552F8 + str r0, [r5, #0x28] + str r6, [r5, #0x2c] + ldr r0, [sp, #0x18] + strh r4, [r5, #0xa] + str r0, [r5, #0x34] + cmp r6, #0x0 + beq _02038E92 + add r0, r6, #0x0 + bl sub_02058448 + ldr r1, [sp, #0x0] + strh r0, [r1, #0x0] +_02038E92: + mov r0, #0x7d + lsl r0, r0, #0x6 + cmp r4, r0 + blo _02038EA8 + ldr r0, _02038EAC ; =0x0000225F + cmp r4, r0 + bhi _02038EA8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020396E8 +_02038EA8: + pop {r3-r7, pc} + nop +_02038EAC: .word 0x0000225F + + thumb_func_start sub_02038EB0 +sub_02038EB0: ; 0x02038EB0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + mov r1, #0x84 + bl sub_02016998 + add r4, r0, #0x0 + bne _02038EC6 + bl sub_02020C2C +_02038EC6: + ldr r2, _02038EE4 ; =0x020F34DC + ldr r1, _02038EE8 ; =0x020F355C + ldr r2, [r2, #0x0] + add r0, r4, #0x0 + bl sub_02038B1C + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + mov r3, #0x0 + bl sub_02038EEC + add r0, r4, #0x0 + pop {r4-r6, pc} + nop +_02038EE4: .word 0x020F34DC +_02038EE8: .word 0x020F355C + + thumb_func_start sub_02038EEC +sub_02038EEC: ; 0x02038EEC + push {r4-r6, lr} + add r4, r1, #0x0 + add r3, r4, #0x0 + add r5, r0, #0x0 + add r3, #0x80 + str r5, [r3, #0x0] + bl sub_02038F18 + add r6, r0, #0x0 + ldr r1, [r4, #0x7c] + add r0, r4, #0x0 + bl sub_02038B50 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_02039484 + ldr r1, [r5, #0x10] + add r0, r4, #0x0 + bl sub_02038B6C + pop {r4-r6, pc} + + thumb_func_start sub_02038F18 +sub_02038F18: ; 0x02038F18 + push {r3-r5, lr} + ldr r3, _02039210 ; =0x0000283C + add r4, r2, #0x0 + cmp r4, r3 + blo _02038F36 + mov r3, #0x1f + ldr r2, _02039214 ; =0x000003D1 + lsl r3, r3, #0x4 + bl sub_020392B4 + ldr r0, _02039210 ; =0x0000283C + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02038F36: + add r2, r3, #0x0 + sub r2, #0x64 + cmp r4, r2 + blo _02038F52 + ldr r2, _02039218 ; =0x00000175 + add r3, r2, #0x0 + sub r3, #0x29 + bl sub_020392B4 + ldr r0, _0203921C ; =0x000027D8 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02038F52: + add r2, r3, #0x0 + sub r2, #0x96 + cmp r4, r2 + blo _02038F6C + ldr r2, _02039220 ; =0x00000412 + ldr r3, _02039224 ; =0x00000232 + bl sub_020392B4 + ldr r0, _02039228 ; =0x000027A6 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02038F6C: + sub r3, #0xc8 + cmp r4, r3 + blo _02038F84 + ldr r2, _0203922C ; =0x00000411 + ldr r3, _02039230 ; =0x00000233 + bl sub_020392B4 + ldr r0, _02039234 ; =0x00002774 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02038F84: + ldr r3, _02039238 ; =0x00002710 + cmp r4, r3 + blo _02038F9E + ldr r2, _0203923C ; =0x00000177 + add r3, r2, #0x0 + sub r3, #0x29 + bl sub_020392B4 + ldr r0, _02039238 ; =0x00002710 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02038F9E: + add r2, r3, #0x0 + sub r2, #0x32 + cmp r4, r2 + blo _02038FBC + mov r2, #0x5e + lsl r2, r2, #0x2 + add r3, r2, #0x0 + sub r3, #0x29 + bl sub_020392B4 + ldr r0, _02039240 ; =0x000026DE + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02038FBC: + add r2, r3, #0x0 + sub r2, #0x64 + cmp r4, r2 + blo _02038FD6 + ldr r2, _02039244 ; =0x0000016D + mov r3, #0xc7 + bl sub_020392B4 + ldr r0, _02039248 ; =0x000026AC + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02038FD6: + add r2, r3, #0x0 + sub r2, #0xc8 + cmp r4, r2 + blo _02038FF0 + mov r2, #0xce + mov r3, #0xcb + bl sub_020392B4 + ldr r0, _0203924C ; =0x00002648 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02038FF0: + ldr r5, _02039250 ; =0x000025E4 + cmp r4, r5 + blo _0203900A + ldr r2, _02039254 ; =0x00000183 + add r3, r2, #0x0 + sub r3, #0x9 + bl sub_020392B4 + add r0, r5, #0x0 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_0203900A: + add r2, r5, #0x0 + sub r2, #0x64 + cmp r4, r2 + blo _02039026 + ldr r2, _02039258 ; =0x00000179 + mov r3, #0xc7 + bl sub_020392B4 + add r0, r5, #0x0 + sub r0, #0x64 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02039026: + sub r5, #0xc8 + cmp r4, r5 + blo _02039042 + mov r2, #0x1d + lsl r2, r2, #0x4 + add r3, r2, #0x0 + add r3, #0x1c + bl sub_020392B4 + ldr r0, _0203925C ; =0x0000251C + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02039042: + ldr r5, _02039260 ; =0x000024B8 + cmp r4, r5 + blo _0203905C + ldr r2, _02039264 ; =0x00000187 + add r3, r2, #0x0 + sub r3, #0xa + bl sub_020392B4 + add r0, r5, #0x0 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_0203905C: + add r2, r5, #0x0 + sub r2, #0x64 + cmp r4, r2 + blo _0203907C + mov r2, #0x5d + lsl r2, r2, #0x2 + add r3, r2, #0x0 + sub r3, #0x2b + bl sub_020392B4 + add r0, r5, #0x0 + sub r0, #0x64 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_0203907C: + sub r5, #0xc8 + cmp r4, r5 + blo _02039098 + mov r2, #0x61 + lsl r2, r2, #0x2 + add r3, r2, #0x0 + sub r3, #0x9 + bl sub_020392B4 + ldr r0, _02039268 ; =0x000023F0 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02039098: + ldr r2, _0203926C ; =0x0000238C + cmp r4, r2 + blo _020390B0 + mov r2, #0x0 + mov r3, #0x9 + bl sub_020392B4 + ldr r0, _0203926C ; =0x0000238C + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_020390B0: + add r5, r2, #0x0 + sub r5, #0x64 + cmp r4, r5 + blo _020390CA + mov r2, #0xcf + add r3, r2, #0x0 + bl sub_020392B4 + ldr r0, _02039270 ; =0x00002328 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_020390CA: + add r5, r2, #0x0 + sub r5, #0x82 + cmp r4, r5 + blo _020390E4 + ldr r2, _02039274 ; =0x00000186 + mov r3, #0x7 + bl sub_020392B4 + ldr r0, _02039278 ; =0x0000230A + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_020390E4: + add r5, r2, #0x0 + sub r5, #0x96 + cmp r4, r5 + blo _02039100 + ldr r2, _0203927C ; =0x000001CF + add r3, r2, #0x0 + add r3, #0x17 + bl sub_020392B4 + ldr r0, _02039280 ; =0x000022F6 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02039100: + sub r2, #0xc8 + cmp r4, r2 + blo _0203911A + ldr r2, _02039284 ; =0x00000185 + add r3, r2, #0x0 + sub r3, #0x9 + bl sub_020392B4 + ldr r0, _02039288 ; =0x000022C4 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_0203911A: + ldr r2, _0203928C ; =0x00002260 + cmp r4, r2 + blo _02039134 + ldr r2, _02039290 ; =0x000001CE + add r3, r2, #0x0 + add r3, #0x17 + bl sub_020392B4 + ldr r0, _0203928C ; =0x00002260 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02039134: + mov r2, #0x7d + lsl r2, r2, #0x6 + cmp r4, r2 + blo _02039152 + ldr r2, _02039294 ; =0x00000176 + add r3, r2, #0x0 + sub r3, #0x29 + bl sub_020392B4 + mov r0, #0x7d + lsl r0, r0, #0x6 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02039152: + ldr r5, _02039298 ; =0x00001B58 + cmp r4, r5 + blo _0203916C + ldr r2, _0203929C ; =0x00000172 + add r3, r2, #0x0 + sub r3, #0x2d + bl sub_020392B4 + add r0, r5, #0x0 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_0203916C: + lsr r5, r3, #0x1 + cmp r4, r5 + blo _02039186 + mov r2, #0x41 + lsl r2, r2, #0x4 + mov r3, #0xc7 + bl sub_020392B4 + ldr r0, _020392A0 ; =0x00001388 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_02039186: + ldr r5, _020392A4 ; =0x00000BB8 + cmp r4, r5 + blo _020391A0 + mov r2, #0x41 + lsl r2, r2, #0x4 + mov r3, #0xc7 + bl sub_020392B4 + add r0, r5, #0x0 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_020391A0: + sub r5, #0xc8 + cmp r4, r5 + blo _020391BC + ldr r2, _020392A8 ; =0x0000017A + add r3, r2, #0x0 + sub r3, #0x1c + bl sub_020392B4 + mov r0, #0xaf + lsl r0, r0, #0x4 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_020391BC: + lsr r3, r3, #0x2 + cmp r4, r3 + blo _020391D4 + mov r2, #0x1 + mov r3, #0xd + bl sub_020392B4 + ldr r0, _020392AC ; =0x000009C4 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_020391D4: + lsr r2, r2, #0x2 + cmp r4, r2 + blo _020391EE + mov r2, #0xcd + mov r3, #0xc7 + bl sub_020392B4 + mov r0, #0x7d + lsl r0, r0, #0x4 + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_020391EE: + cmp r4, #0x1 + blo _020391FE + bl sub_020392D8 + sub r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203920A +_020391FE: + ldr r2, _020392B0 ; =0x00000171 + add r3, r2, #0x0 + sub r3, #0x34 + bl sub_020392B4 + mov r4, #0x0 +_0203920A: + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_02039210: .word 0x0000283C +_02039214: .word 0x000003D1 +_02039218: .word 0x00000175 +_0203921C: .word 0x000027D8 +_02039220: .word 0x00000412 +_02039224: .word 0x00000232 +_02039228: .word 0x000027A6 +_0203922C: .word 0x00000411 +_02039230: .word 0x00000233 +_02039234: .word 0x00002774 +_02039238: .word 0x00002710 +_0203923C: .word 0x00000177 +_02039240: .word 0x000026DE +_02039244: .word 0x0000016D +_02039248: .word 0x000026AC +_0203924C: .word 0x00002648 +_02039250: .word 0x000025E4 +_02039254: .word 0x00000183 +_02039258: .word 0x00000179 +_0203925C: .word 0x0000251C +_02039260: .word 0x000024B8 +_02039264: .word 0x00000187 +_02039268: .word 0x000023F0 +_0203926C: .word 0x0000238C +_02039270: .word 0x00002328 +_02039274: .word 0x00000186 +_02039278: .word 0x0000230A +_0203927C: .word 0x000001CF +_02039280: .word 0x000022F6 +_02039284: .word 0x00000185 +_02039288: .word 0x000022C4 +_0203928C: .word 0x00002260 +_02039290: .word 0x000001CE +_02039294: .word 0x00000176 +_02039298: .word 0x00001B58 +_0203929C: .word 0x00000172 +_020392A0: .word 0x00001388 +_020392A4: .word 0x00000BB8 +_020392A8: .word 0x0000017A +_020392AC: .word 0x000009C4 +_020392B0: .word 0x00000171 + + thumb_func_start sub_020392B4 +sub_020392B4: ; 0x020392B4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r1, r2, #0x0 + add r4, r3, #0x0 + mov r0, #0xa + mov r2, #0xb + bl sub_0200650C + str r0, [r5, #0x7c] + mov r0, #0x1 + mov r1, #0x1a + add r2, r4, #0x0 + mov r3, #0xb + bl sub_0200A86C + str r0, [r5, #0x78] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020392D8 +sub_020392D8: ; 0x020392D8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x1c] + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + bl sub_0203949C + str r0, [r4, #0x7c] + ldr r0, [r5, #0x1c] + ldr r0, [r0, #0x0] + bl sub_020394B0 + add r2, r0, #0x0 + mov r0, #0x1 + mov r1, #0x1a + mov r3, #0xb + bl sub_0200A86C + str r0, [r4, #0x78] + pop {r3-r5, pc} + + thumb_func_start sub_02039300 +sub_02039300: ; 0x02039300 + push {r3, lr} + cmp r1, #0x36 + bls _02039308 + b _02039430 +_02039308: + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r4, r5, #0x1 + lsl r0, r6, #0x1 + lsl r4, r6, #0x1 + lsl r0, r7, #0x1 + lsl r4, r7, #0x1 + lsl r0, r0, #0x2 + lsl r4, r0, #0x2 + lsl r0, r1, #0x2 + lsl r4, r1, #0x2 + lsl r0, r2, #0x2 + lsl r4, r2, #0x2 + lsl r0, r3, #0x2 + lsl r4, r3, #0x2 + lsl r0, r4, #0x2 + lsl r4, r4, #0x2 + lsl r0, r5, #0x2 + lsl r4, r5, #0x2 + lsl r0, r6, #0x2 + lsl r4, r6, #0x2 + lsl r0, r7, #0x2 + lsl r4, r7, #0x2 + lsl r0, r0, #0x3 + lsl r4, r0, #0x3 + lsl r0, r1, #0x3 + lsl r4, r1, #0x3 + lsl r0, r2, #0x3 + lsl r4, r2, #0x3 + lsl r0, r3, #0x3 + lsl r4, r3, #0x3 + lsl r0, r4, #0x3 + lsl r4, r4, #0x3 + lsl r0, r5, #0x3 + lsl r4, r5, #0x3 + lsl r0, r6, #0x3 + lsl r4, r6, #0x3 + lsl r0, r7, #0x3 + lsl r4, r7, #0x3 + lsl r0, r0, #0x4 + lsl r4, r0, #0x4 + lsl r0, r1, #0x4 + lsl r4, r1, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + lsl r0, r2, #0x4 + add r0, #0x10 + pop {r3, pc} +_02039386: + .byte 0x14, 0x30, 0x08, 0xBD, 0x24, 0x30, 0x08, 0xBD, 0x40, 0x1D + .byte 0x08, 0xBD, 0x80, 0x1D, 0x08, 0xBD, 0xC0, 0x1D, 0x08, 0xBD, 0x08, 0x30, 0x08, 0xBD, 0x09, 0x30 + .byte 0x08, 0xBD, 0x0A, 0x30, 0x08, 0xBD, 0x28, 0x30, 0x08, 0xBD, 0x2C, 0x30, 0x08, 0xBD, 0x30, 0x30 + .byte 0x08, 0xBD, 0x34, 0x30, 0x08, 0xBD, 0x38, 0x30, 0x08, 0xBD, 0x3C, 0x30, 0x08, 0xBD, 0x40, 0x30 + .byte 0x08, 0xBD, 0x44, 0x30, 0x08, 0xBD, 0x48, 0x30, 0x08, 0xBD, 0x4C, 0x30, 0x08, 0xBD, 0xA8, 0x30 + .byte 0x08, 0xBD, 0xAC, 0x30, 0x08, 0xBD, 0xB0, 0x30, 0x08, 0xBD, 0xB4, 0x30, 0x08, 0xBD, 0x0C, 0x30 + .byte 0x08, 0xBD, 0x50, 0x30, 0x08, 0xBD, 0x54, 0x30, 0x08, 0xBD, 0x58, 0x30, 0x08, 0xBD, 0x5C, 0x30 + .byte 0x08, 0xBD, 0x60, 0x30, 0x08, 0xBD, 0x64, 0x30, 0x08, 0xBD, 0x68, 0x30, 0x08, 0xBD, 0x6C, 0x30 + .byte 0x08, 0xBD, 0x70, 0x30, 0x08, 0xBD, 0x74, 0x30, 0x08, 0xBD, 0x78, 0x30, 0x08, 0xBD, 0x7C, 0x30 + .byte 0x08, 0xBD, 0x80, 0x30, 0x08, 0xBD, 0x84, 0x30, 0x08, 0xBD, 0xB8, 0x30, 0x08, 0xBD, 0xC8, 0x30 + .byte 0x08, 0xBD, 0xD8, 0x30, 0x08, 0xBD, 0x29, 0x39, 0x88, 0x30, 0x49, 0x00, 0x40, 0x18, 0x08, 0xBD +_02039430: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02039438 +sub_02039438: ; 0x02039438 + push {r3-r5, lr} + ldr r0, [r0, #0x10] + add r5, r1, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _0203945C ; =0x0003643F + cmp r1, r0 + beq _02039450 + bl sub_02020C2C +_02039450: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02039300 + pop {r3-r5, pc} + nop +_0203945C: .word 0x0003643F + + thumb_func_start sub_02039460 +sub_02039460: ; 0x02039460 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x10] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02035068 + cmp r0, #0x1 + bne _0203947C + ldr r0, _02039480 ; =sub_020351A0 + add r4, #0xa4 + str r0, [r4, #0x0] +_0203947C: + pop {r3-r5, pc} + nop +_02039480: .word sub_020351A0 + 1 + + thumb_func_start sub_02039484 +sub_02039484: ; 0x02039484 + push {r4, lr} + add r4, r0, #0x0 + ldr r2, [r4, #0x8] + lsl r1, r1, #0x2 + add r1, r2, r1 + str r1, [r4, #0x8] + bl sub_02038C48 + ldr r1, [r4, #0x8] + add r0, r1, r0 + str r0, [r4, #0x8] + pop {r4, pc} + + thumb_func_start sub_0203949C +sub_0203949C: ; 0x0203949C + push {r3, lr} + bl sub_02034788 + add r1, r0, #0x0 + mov r0, #0xa + mov r2, #0xb + bl sub_0200650C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020394B0 +sub_020394B0: ; 0x020394B0 + ldr r3, _020394B4 ; =sub_02034774 + bx r3 + .balign 4 +_020394B4: .word sub_02034774 + 1 + + thumb_func_start sub_020394B8 +sub_020394B8: ; 0x020394B8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_020462AC + mov r1, #0x1 + lsl r1, r1, #0xe + cmp r4, r1 + bhs _020394D0 + mov r0, #0x0 + pop {r3-r5, pc} +_020394D0: + lsl r1, r1, #0x1 + cmp r4, r1 + bhs _020394DE + add r1, r4, #0x0 + bl sub_02046380 + pop {r3-r5, pc} +_020394DE: + ldr r1, _020394EC ; =0x00007FD7 + add r0, r5, #0x0 + sub r1, r4, r1 + bl sub_02039438 + pop {r3-r5, pc} + nop +_020394EC: .word 0x00007FD7 + + thumb_func_start sub_020394F0 +sub_020394F0: ; 0x020394F0 + push {r4, lr} + add r4, r1, #0x0 + bl sub_020394B8 + cmp r0, #0x0 + beq _020394FE + ldrh r4, [r0, #0x0] +_020394FE: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02039504 +sub_02039504: ; 0x02039504 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x10 + blo _02039512 + bl sub_02020C2C +_02039512: + ldr r1, _02039524 ; =0x00004020 + add r0, r5, #0x0 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_020394F0 + pop {r3-r5, pc} + nop +_02039524: .word 0x00004020 + + thumb_func_start sub_02039528 +sub_02039528: ; 0x02039528 + push {r4, lr} + ldr r0, [r0, #0xc] + add r4, r1, #0x0 + bl sub_020462AC + add r1, r4, #0x0 + bl sub_020462B8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203953C +sub_0203953C: ; 0x0203953C + push {r4, lr} + ldr r0, [r0, #0xc] + add r4, r1, #0x0 + bl sub_020462AC + add r1, r4, #0x0 + bl sub_020462E4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02039550 +sub_02039550: ; 0x02039550 + push {r4, lr} + ldr r0, [r0, #0xc] + add r4, r1, #0x0 + bl sub_020462AC + add r1, r4, #0x0 + bl sub_0204630C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02039564 +sub_02039564: ; 0x02039564 + push {r4, lr} + ldr r0, [r0, #0xc] + bl sub_020462AC + mov r1, #0x1 + add r4, r0, #0x0 + bl sub_02046338 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + strb r1, [r0, #0x4] + strb r1, [r0, #0x5] + strb r1, [r0, #0x6] + strb r1, [r0, #0x7] + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0xe + bl sub_02046380 + mov r1, #0x0 + mov r2, #0x40 + blx sub_020DF4A4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203959C +sub_0203959C: ; 0x0203959C + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_020462AC + mov r1, #0xaa + lsl r1, r1, #0x4 + bl sub_02046338 + mov r2, #0x18 + mov r1, #0x0 +_020395B0: + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _020395B0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020395BC +sub_020395BC: ; 0x020395BC + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r1, #0x29 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02039438 + strh r4, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x2a + bl sub_02039438 + strh r6, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x2b + bl sub_02039438 + strh r7, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x2c + bl sub_02039438 + add r1, sp, #0x8 + ldrh r1, [r1, #0x10] + strh r1, [r0, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020395F4 +sub_020395F4: ; 0x020395F4 + ldr r1, _02039610 ; =0x00001388 + cmp r0, r1 + bhs _02039604 + ldr r1, _02039614 ; =0x00000BB7 + sub r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr +_02039604: + sub r1, r1, #0x1 + sub r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + nop +_02039610: .word 0x00001388 +_02039614: .word 0x00000BB7 + + thumb_func_start sub_02039618 +sub_02039618: ; 0x02039618 + ldr r1, _02039628 ; =0x00001388 + cmp r0, r1 + blo _02039622 + mov r0, #0x1 + bx lr +_02039622: + mov r0, #0x0 + bx lr + nop +_02039628: .word 0x00001388 + + thumb_func_start sub_0203962C +sub_0203962C: ; 0x0203962C + push {r3, lr} + mov r1, #0x9 + bl sub_0206AC74 + cmp r0, #0x0 + beq _0203963C + mov r0, #0x1 + pop {r3, pc} +_0203963C: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02039640 +sub_02039640: ; 0x02039640 + push {r4, lr} + ldr r0, [r0, #0xc] + add r4, r1, #0x0 + bl sub_020462AC + mov r1, #0x55 + lsl r1, r1, #0x4 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_020462B8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203965C +sub_0203965C: ; 0x0203965C + push {r4, lr} + ldr r0, [r0, #0xc] + add r4, r1, #0x0 + bl sub_020462AC + mov r1, #0x55 + lsl r1, r1, #0x4 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_020462E4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02039678 +sub_02039678: ; 0x02039678 + push {r4, lr} + ldr r0, [r0, #0xc] + add r4, r1, #0x0 + bl sub_020462AC + mov r1, #0x55 + lsl r1, r1, #0x4 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_0204630C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02039694 +sub_02039694: ; 0x02039694 + ldr r1, _020396A0 ; =0x00001C66 + sub r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + nop +_020396A0: .word 0x00001C66 + + thumb_func_start sub_020396A4 +sub_020396A4: ; 0x020396A4 + mov r1, #0x7d + lsl r1, r1, #0x6 + sub r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + + thumb_func_start sub_020396B0 +sub_020396B0: ; 0x020396B0 + push {r4, lr} + ldr r4, _020396E4 ; =0x020F2DB4 + bl sub_020396A4 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + mov r1, #0x0 + add r2, r4, #0x0 +_020396C0: + ldrh r0, [r2, #0x6] + cmp r3, r0 + beq _020396CE + add r1, r1, #0x1 + add r2, #0x8 + cmp r1, #0xe5 + blo _020396C0 +_020396CE: + cmp r1, #0xe5 + blo _020396DA + bl sub_02020C2C + mov r0, #0x0 + pop {r4, pc} +_020396DA: + lsl r0, r1, #0x3 + add r0, r4, r0 + ldrb r0, [r0, #0x3] + pop {r4, pc} + nop +_020396E4: .word 0x020F2DB4 + + thumb_func_start sub_020396E8 +sub_020396E8: ; 0x020396E8 + push {r3-r7, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + mov r1, #0x29 + bl sub_02039300 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x2a + bl sub_02039300 + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x2b + bl sub_02039300 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020396A4 + lsl r0, r0, #0x18 + ldr r2, _02039750 ; =0x020F2DB4 + lsr r3, r0, #0x18 + mov r1, #0x0 +_02039718: + ldrh r0, [r2, #0x6] + cmp r3, r0 + beq _02039726 + add r1, r1, #0x1 + add r2, #0x8 + cmp r1, #0xe5 + blo _02039718 +_02039726: + cmp r1, #0xe5 + blo _02039732 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} +_02039732: + lsl r0, r1, #0x3 + ldr r1, _02039750 ; =0x020F2DB4 + ldrh r1, [r1, r0] + strh r1, [r7, #0x0] + ldr r1, _02039750 ; =0x020F2DB4 + add r0, r1, r0 + ldrb r0, [r0, #0x2] + strh r0, [r6, #0x0] + add r0, r5, #0x0 + bl sub_02039694 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} + nop +_02039750: .word 0x020F2DB4 + + thumb_func_start sub_02039754 +sub_02039754: ; 0x02039754 + push {r4-r7, lr} + sub sp, #0x24 + str r0, [sp, #0x0] + add r4, r1, #0x0 + mov r6, #0x0 + bl sub_02034AF8 + add r5, r0, #0x0 + add r2, r5, #0x1 + mov r1, #0x6 + add r0, r4, #0x0 + mul r1, r2 + bl sub_02016998 + str r0, [sp, #0x1c] + cmp r5, #0x0 + bne _02039786 + mov r2, #0xff + add r1, r0, #0x0 + strb r2, [r1, #0x4] + ldr r2, _02039870 ; =0x0000FFFF + add sp, #0x24 + strh r2, [r1, #0x0] + strh r2, [r1, #0x2] + pop {r4-r7, pc} +_02039786: + ldr r0, [sp, #0x0] + bl sub_02034AF0 + add r4, r0, #0x0 + bne _020397A0 + ldr r0, [sp, #0x1c] + mov r1, #0xff + strb r1, [r0, #0x4] + ldr r1, _02039870 ; =0x0000FFFF + add sp, #0x24 + strh r1, [r0, #0x0] + strh r1, [r0, #0x2] + pop {r4-r7, pc} +_020397A0: + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x38] + bl sub_02055320 + str r0, [sp, #0x18] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x38] + bl sub_0205532C + str r0, [sp, #0x14] + ldr r0, [sp, #0x18] + sub r0, r0, #0x7 + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + add r0, r0, #0x7 + str r0, [sp, #0xc] + ldr r0, [sp, #0x14] + sub r0, r0, #0x7 + str r0, [sp, #0x8] + ldr r0, [sp, #0x14] + add r0, r0, #0x6 + str r0, [sp, #0x4] + ldr r0, [sp, #0x10] + cmp r0, #0x0 + bge _020397D6 + add r0, r6, #0x0 + str r0, [sp, #0x10] +_020397D6: + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bge _020397E0 + mov r0, #0x0 + str r0, [sp, #0x8] +_020397E0: + add r0, r5, #0x1 + mov r7, #0x0 + str r0, [sp, #0x20] + cmp r0, #0x0 + ble _02039856 + ldr r5, [sp, #0x1c] +_020397EC: + ldrh r0, [r4, #0x2] + cmp r0, #0x2 + bne _0203984C + ldrh r0, [r4, #0x0] + bl sub_02039694 + add r1, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02039528 + cmp r0, #0x0 + bne _0203984C + ldr r1, [r4, #0x4] + ldr r0, [sp, #0x10] + cmp r1, r0 + blt _0203984C + ldr r0, [sp, #0xc] + cmp r1, r0 + bgt _0203984C + ldr r1, [r4, #0x8] + ldr r0, [sp, #0x8] + cmp r1, r0 + blt _0203984C + ldr r0, [sp, #0x4] + cmp r1, r0 + bgt _0203984C + ldrh r0, [r4, #0x0] + bl sub_020396B0 + strb r0, [r5, #0x4] + ldr r1, [r4, #0x4] + ldr r0, [sp, #0x18] + sub r1, r0, r1 + mov r0, #0x7 + sub r0, r0, r1 + blx sub_020DE3F0 + strh r0, [r5, #0x0] + ldr r1, [r4, #0x8] + ldr r0, [sp, #0x14] + sub r1, r0, r1 + mov r0, #0x7 + sub r0, r0, r1 + blx sub_020DE3F0 + strh r0, [r5, #0x2] + add r5, r5, #0x6 + add r6, r6, #0x1 +_0203984C: + ldr r0, [sp, #0x20] + add r7, r7, #0x1 + add r4, #0x14 + cmp r7, r0 + blt _020397EC +_02039856: + mov r0, #0x6 + add r3, r6, #0x0 + mul r3, r0 + ldr r0, [sp, #0x1c] + mov r1, #0xff + add r2, r0, r3 + strb r1, [r2, #0x4] + ldr r1, _02039870 ; =0x0000FFFF + strh r1, [r0, r3] + strh r1, [r2, #0x2] + add sp, #0x24 + pop {r4-r7, pc} + nop +_02039870: .word 0x0000FFFF + + thumb_func_start sub_02039874 +sub_02039874: ; 0x02039874 + ldr r3, _0203987C ; =sub_02039880 + mov r1, #0x96 + lsl r1, r1, #0x6 + bx r3 + .balign 4 +_0203987C: .word sub_02039880 + 1 + + thumb_func_start sub_02039880 +sub_02039880: ; 0x02039880 + push {r4, lr} + bl sub_02038EB0 + add r4, r0, #0x0 +_02039888: + add r0, r4, #0x0 + bl sub_02038B70 + cmp r0, #0x1 + beq _02039888 + add r0, r4, #0x0 + bl sub_02038E48 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203989C +sub_0203989C: ; 0x0203989C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02034D2C + add r1, r0, #0x0 + bne _020398AE + mov r0, #0x0 + pop {r3-r5, pc} +_020398AE: + cmp r4, #0x1 + bne _020398BC + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_02039914 + b _020398C2 +_020398BC: + add r1, r4, #0x0 + bl _020398EC +_020398C2: + add r1, r0, #0x0 + ldr r0, _020398E8 ; =0x0000FFFF + cmp r1, r0 + bne _020398CE + mov r0, #0x0 + pop {r3-r5, pc} +_020398CE: + cmp r4, #0x1 + bne _020398DC + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02038C78 + b _020398E2 +_020398DC: + add r0, r5, #0x0 + bl sub_02039880 +_020398E2: + mov r0, #0x1 + pop {r3-r5, pc} + nop +_020398E8: .word 0x0000FFFF +_020398EC: + ldrb r2, [r0, #0x0] + cmp r2, #0x0 + bne _020398F6 + ldr r0, _02039910 ; =0x0000FFFF + bx lr +_020398F6: + cmp r2, r1 + bne _02039908 + ldrb r1, [r0, #0x1] + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x8 + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr +_02039908: + add r0, r0, #0x5 + b _020398EC + + thumb_func_start sub_0203990C +sub_0203990C: ; 0x0203990C + bx lr + nop +_02039910: .word 0x0000FFFF + + thumb_func_start sub_02039914 +sub_02039914: ; 0x02039914 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 +_0203991A: + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _02039924 + ldr r0, _0203999C ; =0x0000FFFF + pop {r3-r7, pc} +_02039924: + cmp r0, r2 + bne _02039940 + ldrb r0, [r4, #0x4] + ldrb r2, [r4, #0x2] + ldrb r3, [r4, #0x1] + lsl r1, r0, #0x18 + ldrb r0, [r4, #0x3] + lsl r2, r2, #0x8 + add r2, r3, r2 + lsl r0, r0, #0x10 + add r0, r0, r2 + add r1, r1, r0 + add r0, r4, #0x5 + b _02039944 +_02039940: + add r4, r4, #0x5 + b _0203991A +_02039944: + cmp r1, #0x0 + bne _0203994C + ldr r0, _0203999C ; =0x0000FFFF + pop {r3-r7, pc} +_0203994C: + add r4, r0, r1 +_0203994E: + ldrb r1, [r4, #0x0] + cmp r1, #0x0 + bne _02039958 + ldr r0, _0203999C ; =0x0000FFFF + pop {r3-r7, pc} +_02039958: + ldrb r0, [r4, #0x1] + lsl r0, r0, #0x8 + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + bne _02039968 + ldr r0, _0203999C ; =0x0000FFFF + pop {r3-r7, pc} +_02039968: + ldrb r0, [r4, #0x3] + ldrb r2, [r4, #0x2] + lsl r0, r0, #0x8 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r5, #0x0 + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020394F0 + cmp r7, r0 + bne _02039996 + ldrb r0, [r4, #0x5] + ldrb r1, [r4, #0x4] + lsl r0, r0, #0x8 + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r3-r7, pc} +_02039996: + add r4, r4, #0x6 + b _0203994E + + non_word_aligned_thumb_func_start sub_0203999A +sub_0203999A: ; 0x0203999A + pop {r3-r7, pc} + .balign 4 +_0203999C: .word 0x0000FFFF + + thumb_func_start sub_020399A0 +sub_020399A0: ; 0x020399A0 + mov r0, #0x0 + bx lr + + thumb_func_start sub_020399A4 +sub_020399A4: ; 0x020399A4 + mov r0, #0x0 + bx lr + + thumb_func_start sub_020399A8 +sub_020399A8: ; 0x020399A8 + push {r3, lr} + bl sub_02038B64 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020399B4 +sub_020399B4: ; 0x020399B4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r6, [r1, #0x0] + bl sub_02038C30 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_020394B8 + strh r7, [r0, #0x0] + ldr r1, _020399E4 ; =sub_020399E8 + add r0, r5, #0x0 + str r4, [r5, #0x64] + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_020399E4: .word sub_020399E8 + 1 + + thumb_func_start sub_020399E8 +sub_020399E8: ; 0x020399E8 + push {r3, lr} + add r1, r0, #0x0 + ldr r1, [r1, #0x64] + add r0, #0x80 + lsl r1, r1, #0x10 + ldr r0, [r0, #0x0] + lsr r1, r1, #0x10 + bl sub_020394B8 + ldrh r1, [r0, #0x0] + sub r1, r1, #0x1 + strh r1, [r0, #0x0] + ldrh r0, [r0, #0x0] + cmp r0, #0x0 + bne _02039A0A + mov r0, #0x1 + pop {r3, pc} +_02039A0A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02039A10 +sub_02039A10: ; 0x02039A10 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02039A28 +sub_02039A28: ; 0x02039A28 + ldr r1, [r0, #0x8] + add r2, r1, #0x1 + str r2, [r0, #0x8] + ldrb r3, [r1, #0x0] + add r1, r2, #0x1 + str r1, [r0, #0x8] + ldrb r2, [r2, #0x0] + lsl r1, r3, #0x2 + add r0, r0, r1 + str r2, [r0, #0x64] + mov r0, #0x0 + bx lr + + thumb_func_start sub_02039A40 +sub_02039A40: ; 0x02039A40 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r2, [r4, #0x8] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r5, [r2, #0x0] + bl sub_02038C48 + lsl r1, r5, #0x2 + add r1, r4, r1 + str r0, [r1, #0x64] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02039A5C +sub_02039A5C: ; 0x02039A5C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r4, [r2, #0x0] + bl sub_02038C48 + ldrb r1, [r0, #0x0] + lsl r0, r4, #0x2 + add r0, r5, r0 + str r1, [r0, #0x64] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02039A78 +sub_02039A78: ; 0x02039A78 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C48 + ldr r2, [r4, #0x8] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r1, [r2, #0x0] + strb r1, [r0, #0x0] + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02039A90 +sub_02039A90: ; 0x02039A90 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C48 + ldr r2, [r4, #0x8] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r1, [r2, #0x0] + lsl r1, r1, #0x2 + add r1, r4, r1 + ldr r1, [r1, #0x64] + strb r1, [r0, #0x0] + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02039AAC +sub_02039AAC: ; 0x02039AAC + ldr r1, [r0, #0x8] + add r2, r1, #0x1 + str r2, [r0, #0x8] + ldrb r3, [r1, #0x0] + add r1, r2, #0x1 + str r1, [r0, #0x8] + ldrb r1, [r2, #0x0] + lsl r1, r1, #0x2 + add r1, r0, r1 + ldr r2, [r1, #0x64] + lsl r1, r3, #0x2 + add r0, r0, r1 + str r2, [r0, #0x64] + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02039ACC +sub_02039ACC: ; 0x02039ACC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C48 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C48 + ldrb r0, [r0, #0x0] + strb r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02039AE4 +sub_02039AE4: ; 0x02039AE4 + cmp r0, r1 + bhs _02039AEC + mov r0, #0x0 + bx lr +_02039AEC: + cmp r0, r1 + bne _02039AF4 + mov r0, #0x1 + bx lr +_02039AF4: + mov r0, #0x2 + bx lr + + thumb_func_start sub_02039AF8 +sub_02039AF8: ; 0x02039AF8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x8] + add r1, r0, #0x1 + str r1, [r4, #0x8] + ldrb r0, [r0, #0x0] + add r2, r1, #0x1 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x64] + str r2, [r4, #0x8] + ldrb r1, [r1, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r1, r1, #0x2 + add r1, r4, r1 + ldr r1, [r1, #0x64] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_02039AE4 + strb r0, [r4, #0x2] + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02039B28 +sub_02039B28: ; 0x02039B28 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x8] + add r1, r0, #0x1 + str r1, [r4, #0x8] + ldrb r0, [r0, #0x0] + add r2, r1, #0x1 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x64] + str r2, [r4, #0x8] + ldrb r1, [r1, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02039AE4 + strb r0, [r4, #0x2] + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02039B50 +sub_02039B50: ; 0x02039B50 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r2, [r4, #0x8] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r1, [r2, #0x0] + lsl r1, r1, #0x2 + add r1, r4, r1 + ldr r1, [r1, #0x64] + lsl r1, r1, #0x18 + lsr r5, r1, #0x18 + bl sub_02038C48 + ldrb r1, [r0, #0x0] + add r0, r5, #0x0 + bl sub_02039AE4 + strb r0, [r4, #0x2] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02039B78 +sub_02039B78: ; 0x02039B78 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C48 + ldr r2, [r4, #0x8] + ldrb r0, [r0, #0x0] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r1, [r2, #0x0] + lsl r1, r1, #0x2 + add r1, r4, r1 + ldr r1, [r1, #0x64] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_02039AE4 + strb r0, [r4, #0x2] + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02039BA0 +sub_02039BA0: ; 0x02039BA0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C48 + ldr r2, [r4, #0x8] + ldrb r0, [r0, #0x0] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r1, [r2, #0x0] + bl sub_02039AE4 + strb r0, [r4, #0x2] + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02039BBC +sub_02039BBC: ; 0x02039BBC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C48 + ldrb r4, [r0, #0x0] + add r0, r5, #0x0 + bl sub_02038C48 + ldrb r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_02039AE4 + strb r0, [r5, #0x2] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02039BDC +sub_02039BDC: ; 0x02039BDC + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + ldrh r5, [r0, #0x0] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02039AE4 + strb r0, [r4, #0x2] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02039C08 +sub_02039C08: ; 0x02039C08 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r1, r0, #0x0 + ldrh r0, [r4, #0x0] + ldrh r1, [r1, #0x0] + bl sub_02039AE4 + strb r0, [r5, #0x2] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02039C40 +sub_02039C40: ; 0x02039C40 + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, #0x80 + ldr r5, [r0, #0x0] + mov r1, #0x7 + add r0, r5, #0x0 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xe + bl sub_02039438 + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038EB0 + str r0, [r6, #0x0] + ldrb r0, [r4, #0x0] + add r0, r0, #0x1 + strb r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02039C78 +sub_02039C78: ; 0x02039C78 + push {r3-r7, lr} + str r0, [sp, #0x0] + add r0, #0x80 + ldr r5, [r0, #0x0] + mov r1, #0x5 + add r0, r5, #0x0 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x7 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xe + bl sub_02039438 + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + mov r0, #0x1 + strb r0, [r6, #0x0] + add r0, r5, #0x0 + bl sub_02038EB0 + str r0, [r7, #0x0] + ldrb r0, [r4, #0x0] + ldr r1, _02039CC4 ; =sub_02039CC8 + add r0, r0, #0x1 + strb r0, [r4, #0x0] + ldr r0, [sp, #0x0] + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_02039CC4: .word sub_02039CC8 + 1 + + thumb_func_start sub_02039CC8 +sub_02039CC8: ; 0x02039CC8 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x5 + bl sub_02039438 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02039CDE + mov r0, #0x1 + pop {r3, pc} +_02039CDE: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02039CE4 +sub_02039CE4: ; 0x02039CE4 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x5 + bl sub_02039438 + mov r1, #0x0 + strb r1, [r0, #0x0] + add r0, r1, #0x0 + pop {r3, pc} + + thumb_func_start sub_02039CF8 +sub_02039CF8: ; 0x02039CF8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C48 + add r2, r0, #0x0 + ldr r1, [r4, #0x8] + add r0, r4, #0x0 + add r1, r1, r2 + bl sub_02038C10 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02039D10 +sub_02039D10: ; 0x02039D10 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xa + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C48 + add r7, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_02058448 + cmp r4, r0 + bne _02039D44 + ldr r1, [r5, #0x8] + add r0, r5, #0x0 + add r1, r1, r7 + bl sub_02038C10 +_02039D44: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02039D48 +sub_02039D48: ; 0x02039D48 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x74] + bl sub_02046534 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + ldrb r4, [r1, #0x0] + add r0, r5, #0x0 + bl sub_02038C48 + add r2, r0, #0x0 + cmp r6, r4 + bne _02039D72 + ldr r1, [r5, #0x8] + add r0, r5, #0x0 + add r1, r1, r2 + bl sub_02038C10 +_02039D72: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02039D78 +sub_02039D78: ; 0x02039D78 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x9 + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + ldrb r4, [r1, #0x0] + add r0, r5, #0x0 + bl sub_02038C48 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + cmp r0, r4 + bne _02039DA8 + ldr r1, [r5, #0x8] + add r0, r5, #0x0 + add r1, r1, r2 + bl sub_02038C10 +_02039DA8: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02039DAC +sub_02039DAC: ; 0x02039DAC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C48 + add r2, r0, #0x0 + ldr r1, [r4, #0x8] + add r0, r4, #0x0 + add r1, r1, r2 + bl sub_02038C14 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02039DC4 +sub_02039DC4: ; 0x02039DC4 + push {r3, lr} + bl sub_02038C24 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02039DD0 +sub_02039DD0: ; 0x02039DD0 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r4, [r2, #0x0] + bl sub_02038C48 + add r1, r0, #0x0 + lsl r0, r4, #0x1 + add r3, r4, r0 + ldr r0, _02039E00 ; =0x020F34E8 + ldrb r2, [r5, #0x2] + add r0, r0, r3 + ldrb r0, [r2, r0] + cmp r0, #0x1 + bne _02039DFC + ldr r2, [r5, #0x8] + add r0, r5, #0x0 + add r1, r2, r1 + bl sub_02038C10 +_02039DFC: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02039E00: .word 0x020F34E8 + + thumb_func_start sub_02039E04 +sub_02039E04: ; 0x02039E04 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r4, [r2, #0x0] + bl sub_02038C48 + add r1, r0, #0x0 + lsl r0, r4, #0x1 + add r3, r4, r0 + ldr r0, _02039E34 ; =0x020F34E8 + ldrb r2, [r5, #0x2] + add r0, r0, r3 + ldrb r0, [r2, r0] + cmp r0, #0x1 + bne _02039E30 + ldr r2, [r5, #0x8] + add r0, r5, #0x0 + add r1, r2, r1 + bl sub_02038C14 +_02039E30: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02039E34: .word 0x020F34E8 + + thumb_func_start sub_02039E38 +sub_02039E38: ; 0x02039E38 + push {r4, lr} + add r1, r0, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0203953C + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02039E50 +sub_02039E50: ; 0x02039E50 + push {r4, lr} + add r1, r0, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02039550 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02039E68 +sub_02039E68: ; 0x02039E68 + push {r3-r5, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02039528 + strb r0, [r4, #0x2] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02039E84 +sub_02039E84: ; 0x02039E84 + push {r4-r6, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldrh r1, [r6, #0x0] + add r0, r5, #0x0 + bl sub_02039528 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02039EC0 +sub_02039EC0: ; 0x02039EC0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r1, r0, #0x0 + ldrh r1, [r1, #0x0] + add r0, r4, #0x0 + bl sub_0203953C + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02039EE8 +sub_02039EE8: ; 0x02039EE8 + push {r3-r5, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0203965C + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02039F0C +sub_02039F0C: ; 0x02039F0C + push {r3-r5, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02039678 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02039F30 +sub_02039F30: ; 0x02039F30 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02039640 + strb r0, [r5, #0x2] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02039F58 +sub_02039F58: ; 0x02039F58 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + ldrh r1, [r4, #0x0] + add r0, r1, r0 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02039F88 +sub_02039F88: ; 0x02039F88 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + ldrh r1, [r4, #0x0] + sub r0, r1, r0 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02039FB8 +sub_02039FB8: ; 0x02039FB8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02039FDC +sub_02039FDC: ; 0x02039FDC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + ldrh r0, [r0, #0x0] + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203A00C +sub_0203A00C: ; 0x0203A00C + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203A038 +sub_0203A038: ; 0x0203A038 + push {r3, lr} + ldr r2, [r0, #0x8] + add r1, r2, #0x1 + str r1, [r0, #0x8] + ldrb r2, [r2, #0x0] + ldr r1, [r0, #0x78] + bl sub_021E2C24 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0203A04C +sub_0203A04C: ; 0x0203A04C + push {r4-r6, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + mov r0, #0x1 + mov r1, #0x1a + add r2, r5, #0x0 + mov r3, #0x20 + bl sub_0200A86C + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl sub_021E2C24 + add r0, r5, #0x0 + bl sub_0200A8B8 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0203A098 +sub_0203A098: ; 0x0203A098 + push {r3-r6, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + mov r0, #0x1 + mov r1, #0x1a + add r2, r5, #0x0 + mov r3, #0x20 + bl sub_0200A86C + add r5, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + mov r3, #0x1 + bl sub_021E2BD0 + add r0, r5, #0x0 + bl sub_0200A8B8 + ldr r1, _0203A0F8 ; =sub_0203A2F0 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x4 + pop {r3-r6, pc} + nop +_0203A0F8: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A0FC +sub_0203A0FC: ; 0x0203A0FC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02038C30 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl sub_021E2C58 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203A13C +sub_0203A13C: ; 0x0203A13C + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02038C30 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl sub_021E2C58 + ldr r1, _0203A184 ; =sub_0203A2F0 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0203A184: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A188 +sub_0203A188: ; 0x0203A188 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + add r1, r5, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + ldrb r3, [r2, #0x0] + add r1, #0xa8 + ldr r2, [r1, #0x0] + cmp r2, #0x0 + bne _0203A1AA + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_0203A1AA: + lsl r1, r3, #0x4 + add r1, r3, r1 + add r2, #0x90 + lsl r1, r1, #0x4 + add r4, r2, r1 + ldrh r1, [r2, r1] + ldr r2, _0203A204 ; =0x0000FFFF + cmp r1, r2 + bne _0203A1E2 + ldr r2, _0203A208 ; =0x0000022B + mov r0, #0x1 + mov r1, #0x1a + mov r3, #0x20 + bl sub_0200A86C + add r6, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + ldrh r2, [r4, #0x2] + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r3, #0x1 + bl sub_021E2BD0 + add r0, r6, #0x0 + bl sub_0200A8B8 + b _0203A1F4 +_0203A1E2: + mov r2, #0x6 + ldrsh r2, [r4, r2] + str r2, [sp, #0x0] + mov r2, #0x1 + str r2, [sp, #0x4] + ldrh r2, [r4, #0x2] + ldrh r3, [r4, #0x4] + bl sub_021E2C58 +_0203A1F4: + ldr r1, _0203A20C ; =sub_0203A2F0 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x8 + pop {r4-r6, pc} + nop +_0203A204: .word 0x0000FFFF +_0203A208: .word 0x0000022B +_0203A20C: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A210 +sub_0203A210: ; 0x0203A210 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r2, [r5, #0x8] + ldr r6, [r1, #0x0] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r4, [r2, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + ldr r1, [r5, #0x8] + add r2, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + ldrb r3, [r1, #0x0] + mov r1, #0x0 + add r0, sp, #0x4 + strb r1, [r0, #0x0] + add r0, sp, #0x4 + str r0, [sp, #0x0] + ldr r0, [r6, #0xc] + add r1, r7, #0x0 + bl sub_02244210 + add r6, r0, #0x0 + add r2, sp, #0x4 + ldrb r2, [r2, #0x0] + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, r2 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r3, #0x1 + bl sub_021E2CBC + add r0, r6, #0x0 + bl sub_0200AB18 + ldr r1, _0203A284 ; =sub_0203A2F0 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0203A284: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A288 +sub_0203A288: ; 0x0203A288 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02038C30 + add r4, r0, #0x0 + add r0, sp, #0x4 + add r1, r5, #0x0 + bl sub_021E2BB8 + mov r1, #0x3 + add r0, sp, #0x4 + strb r1, [r0, #0x2] + add r0, sp, #0x4 + str r0, [sp, #0x0] + ldr r1, [r5, #0x78] + add r0, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x0 + bl sub_021E2BD0 + ldr r1, _0203A2C0 ; =sub_0203A2F0 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_0203A2C0: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A2C4 +sub_0203A2C4: ; 0x0203A2C4 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldr r2, [r4, #0x8] + mov r3, #0x1 + add r1, r2, #0x1 + str r1, [r4, #0x8] + mov r1, #0x0 + str r1, [sp, #0x0] + ldrb r2, [r2, #0x0] + ldr r1, [r4, #0x78] + bl sub_021E2BD0 + ldr r1, _0203A2EC ; =sub_0203A2F0 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0203A2EC: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A2F0 +sub_0203A2F0: ; 0x0203A2F0 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x3 + bl sub_02039438 + ldrb r0, [r0, #0x0] + bl sub_020546C8 + pop {r3, pc} + + thumb_func_start sub_0203A304 +sub_0203A304: ; 0x0203A304 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + lsl r2, r2, #0x18 + ldr r1, [r4, #0x78] + add r0, r4, #0x0 + lsr r2, r2, #0x18 + mov r3, #0x1 + bl sub_021E2BD0 + ldr r1, _0203A33C ; =sub_0203A2F0 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0203A33C: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A340 +sub_0203A340: ; 0x0203A340 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, sp, #0x4 + add r1, r5, #0x0 + bl sub_021E2BB8 + lsl r2, r4, #0x18 + mov r3, #0x1 + add r0, sp, #0x4 + strb r3, [r0, #0x1] + add r0, sp, #0x4 + str r0, [sp, #0x0] + ldr r1, [r5, #0x78] + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_021E2BD0 + ldr r1, _0203A384 ; =sub_0203A2F0 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_0203A384: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A388 +sub_0203A388: ; 0x0203A388 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + mov r3, #0x0 + str r3, [sp, #0x0] + lsl r2, r2, #0x18 + ldr r1, [r4, #0x78] + add r0, r4, #0x0 + lsr r2, r2, #0x18 + bl sub_021E2BD0 + ldr r1, _0203A3C0 ; =sub_0203A2F0 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x4 + pop {r3-r4, pc} + nop +_0203A3C0: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A3C4 +sub_0203A3C4: ; 0x0203A3C4 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xa + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_02058488 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r1, [r4, #0x78] + add r0, r4, #0x0 + mov r3, #0x1 + bl sub_021E2BD0 + ldr r1, _0203A3FC ; =sub_0203A2F0 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x4 + pop {r3-r4, pc} + nop +_0203A3FC: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A400 +sub_0203A400: ; 0x0203A400 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r1, [r5, #0x8] + add r0, r1, #0x1 + str r0, [r5, #0x8] + ldrb r4, [r1, #0x0] + bl sub_02030F40 + cmp r0, #0x0 + bne _0203A428 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r1, [r5, #0x78] + add r0, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x1 + bl sub_021E2BD0 + b _0203A448 +_0203A428: + add r0, sp, #0x4 + add r1, r5, #0x0 + bl sub_021E2BB8 + mov r1, #0x1 + add r0, sp, #0x4 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + add r0, sp, #0x4 + str r0, [sp, #0x0] + ldr r1, [r5, #0x78] + add r0, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x0 + bl sub_021E2BD0 +_0203A448: + ldr r1, _0203A458 ; =sub_0203A2F0 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + nop +_0203A458: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203A45C +sub_0203A45C: ; 0x0203A45C + push {r3, lr} + ldr r1, _0203A468 ; =sub_0203A46C + bl sub_02038B5C + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0203A468: .word sub_0203A46C + 1 + + thumb_func_start sub_0203A46C +sub_0203A46C: ; 0x0203A46C + ldr r0, _0203A480 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _0203A47A + mov r0, #0x1 + bx lr +_0203A47A: + mov r0, #0x0 + bx lr + nop +_0203A480: .word 0x021C48B8 + + thumb_func_start sub_0203A484 +sub_0203A484: ; 0x0203A484 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [r4, #0x64] + ldr r1, _0203A4A8 ; =sub_0203A4AC + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0203A4A8: .word sub_0203A4AC + 1 + + thumb_func_start sub_0203A4AC +sub_0203A4AC: ; 0x0203A4AC + ldr r1, _0203A4CC ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #0x3 + tst r1, r2 + beq _0203A4BA + mov r0, #0x1 + bx lr +_0203A4BA: + ldr r1, [r0, #0x64] + sub r1, r1, #0x1 + str r1, [r0, #0x64] + bne _0203A4C6 + mov r0, #0x1 + bx lr +_0203A4C6: + mov r0, #0x0 + bx lr + nop +_0203A4CC: .word 0x021C48B8 + + thumb_func_start sub_0203A4D0 +sub_0203A4D0: ; 0x0203A4D0 + push {r3, lr} + ldr r1, _0203A4DC ; =sub_0203A4E0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0203A4DC: .word sub_0203A4E0 + 1 + + thumb_func_start sub_0203A4E0 +sub_0203A4E0: ; 0x0203A4E0 + push {r4, lr} + ldr r1, _0203A55C ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #0x3 + add r3, r2, #0x0 + tst r3, r1 + beq _0203A4F2 + mov r0, #0x1 + pop {r4, pc} +_0203A4F2: + mov r3, #0x40 + tst r3, r2 + beq _0203A506 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + ldr r0, [r0, #0x38] + bl sub_02055304 + b _0203A556 +_0203A506: + mov r3, #0x80 + tst r3, r2 + beq _0203A51A + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x1 + ldr r0, [r0, #0x38] + bl sub_02055304 + b _0203A556 +_0203A51A: + mov r3, #0x20 + tst r3, r2 + beq _0203A52E + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x2 + ldr r0, [r0, #0x38] + bl sub_02055304 + b _0203A556 +_0203A52E: + mov r3, #0x10 + add r4, r2, #0x0 + tst r4, r3 + beq _0203A542 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_02055304 + b _0203A556 +_0203A542: + lsl r1, r3, #0x6 + tst r1, r2 + beq _0203A552 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02039460 + b _0203A556 +_0203A552: + mov r0, #0x0 + pop {r4, pc} +_0203A556: + mov r0, #0x1 + pop {r4, pc} + nop +_0203A55C: .word 0x021C48B8 + + thumb_func_start sub_0203A560 +sub_0203A560: ; 0x0203A560 + push {r3, lr} + ldr r1, _0203A56C ; =sub_0203A570 + bl sub_02038B5C + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0203A56C: .word sub_0203A570 + 1 + + thumb_func_start sub_0203A570 +sub_0203A570: ; 0x0203A570 + ldr r0, _0203A58C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _0203A57E + mov r0, #0x1 + bx lr +_0203A57E: + mov r0, #0xf0 + tst r0, r1 + beq _0203A588 + mov r0, #0x1 + bx lr +_0203A588: + mov r0, #0x0 + bx lr + .balign 4 +_0203A58C: .word 0x021C48B8 + + thumb_func_start sub_0203A590 +sub_0203A590: ; 0x0203A590 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0x6 + add r0, r4, #0x0 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02039438 + add r1, r0, #0x0 + ldr r0, [r4, #0x8] + mov r2, #0x3 + bl sub_020545B8 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02039438 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023900 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02054608 + mov r0, #0x1 + strb r0, [r6, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0203A5D8 +sub_0203A5D8: ; 0x0203A5D8 + push {r3-r5, lr} + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0x1 + add r0, r4, #0x0 + bl sub_02039438 + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x6 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0200D0E0 + add r0, r5, #0x0 + bl sub_02019178 + mov r0, #0x0 + strb r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203A608 +sub_0203A608: ; 0x0203A608 + push {r3-r5, lr} + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0x1 + add r0, r4, #0x0 + bl sub_02039438 + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x6 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02019178 + mov r0, #0x0 + strb r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203A630 +sub_0203A630: ; 0x0203A630 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0x31 + add r0, r4, #0x0 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x2d + bl sub_02039438 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x32 + bl sub_02039438 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0x33 + bl sub_02039438 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0x2e + bl sub_02039438 + str r0, [sp, #0x8] + add r0, r4, #0x0 + mov r1, #0x34 + bl sub_02039438 + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r1, [r2, #0x0] + strh r1, [r6, #0x0] + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r1, [r2, #0x0] + strh r1, [r7, #0x0] + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r2, [r2, #0x0] + ldr r1, [sp, #0x0] + strh r2, [r1, #0x0] + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r2, [r2, #0x0] + ldr r1, [sp, #0x4] + strh r2, [r1, #0x0] + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r2, [r2, #0x0] + ldr r1, [sp, #0x8] + strh r2, [r1, #0x0] + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r1, [r2, #0x0] + strh r1, [r0, #0x0] + ldr r1, _0203A6C4 ; =sub_0203A6C8 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0203A6C4: .word sub_0203A6C8 + 1 + + thumb_func_start sub_0203A6C8 +sub_0203A6C8: ; 0x0203A6C8 + push {r4-r7, lr} + sub sp, #0xc + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0x31 + add r0, r4, #0x0 + bl sub_02039438 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x32 + bl sub_02039438 + str r0, [sp, #0x8] + add r0, r4, #0x0 + mov r1, #0x33 + bl sub_02039438 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0x34 + bl sub_02039438 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0x2d + bl sub_02039438 + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x2e + bl sub_02039438 + add r5, r0, #0x0 + ldrh r0, [r6, #0x0] + cmp r0, #0x0 + bne _0203A71E + ldrh r0, [r5, #0x0] + cmp r0, #0x0 + bne _0203A71E + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0203A71E: + ldrh r3, [r7, #0x0] + cmp r3, #0x0 + beq _0203A740 + ldr r0, [sp, #0x8] + ldrh r0, [r0, #0x0] + cmp r0, #0x0 + ldr r0, [r4, #0x8] + bne _0203A738 + mov r1, #0x3 + mov r2, #0x1 + bl sub_020179E0 + b _0203A740 +_0203A738: + mov r1, #0x3 + mov r2, #0x2 + bl sub_020179E0 +_0203A740: + ldr r0, [sp, #0x4] + ldrh r3, [r0, #0x0] + cmp r3, #0x0 + beq _0203A764 + ldr r0, [sp, #0x0] + ldrh r0, [r0, #0x0] + cmp r0, #0x0 + ldr r0, [r4, #0x8] + bne _0203A75C + mov r1, #0x3 + mov r2, #0x4 + bl sub_020179E0 + b _0203A764 +_0203A75C: + mov r1, #0x3 + mov r2, #0x5 + bl sub_020179E0 +_0203A764: + ldrh r0, [r6, #0x0] + cmp r0, #0x0 + beq _0203A76E + sub r0, r0, #0x1 + strh r0, [r6, #0x0] +_0203A76E: + ldrh r0, [r5, #0x0] + cmp r0, #0x0 + beq _0203A778 + sub r0, r0, #0x1 + strh r0, [r5, #0x0] +_0203A778: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0203A780 +sub_0203A780: ; 0x0203A780 + push {r4-r7, lr} + sub sp, #0x1c + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0x11 + add r0, r4, #0x0 + bl sub_02039438 + str r0, [sp, #0x18] + add r0, r4, #0x0 + mov r1, #0x10 + bl sub_02039438 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0xf + bl sub_02039438 + str r0, [sp, #0x14] + ldr r0, [r5, #0x8] + add r1, r0, #0x1 + str r1, [r5, #0x8] + ldrb r0, [r0, #0x0] + str r0, [sp, #0xc] + add r0, r1, #0x1 + str r0, [r5, #0x8] + ldrb r0, [r1, #0x0] + str r0, [sp, #0x10] + add r0, r5, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + cmp r6, #0x0 + bne _0203A7E0 + add r0, r4, #0x0 + mov r1, #0xa + bl sub_02039438 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02058510 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 +_0203A7E0: + ldr r0, [r4, #0x60] + ldr r1, [sp, #0x10] + add r2, r6, #0x0 + bl sub_021E8128 + ldr r0, [r4, #0x60] + mov r1, #0x1 + bl sub_021E8130 + add r0, r4, #0x0 + bl sub_021E8158 + ldr r2, [sp, #0x18] + ldr r0, [r5, #0x78] + ldr r1, [sp, #0xc] + ldr r2, [r2, #0x0] + bl sub_0200A8E0 + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x18] + ldr r0, [r0, #0x0] + ldr r1, [r7, #0x0] + ldr r2, [r2, #0x0] + bl sub_0200B7B8 + ldr r0, [r4, #0x60] + bl sub_021E8140 + mov r3, #0x0 + str r3, [sp, #0x0] + str r3, [sp, #0x4] + str r3, [sp, #0x8] + ldr r2, [r7, #0x0] + mov r1, #0x1 + bl sub_0201BD84 + mov r0, #0x1 + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0203A830 +sub_0203A830: ; 0x0203A830 + push {r3-r5, lr} + add r1, r0, #0x0 + add r1, #0x80 + ldr r2, [r0, #0x8] + ldr r4, [r1, #0x0] + add r1, r2, #0x1 + str r1, [r0, #0x8] + ldrb r5, [r2, #0x0] + bl sub_02038C30 + add r2, r0, #0x0 + ldr r0, [r4, #0x60] + add r1, r5, #0x0 + bl sub_021E8128 + ldr r0, [r4, #0x60] + mov r1, #0x1 + bl sub_021E8130 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203A85C +sub_0203A85C: ; 0x0203A85C + push {r3, lr} + add r1, r0, #0x0 + add r1, #0x80 + ldr r2, [r0, #0x8] + ldr r3, [r1, #0x0] + add r1, r2, #0x1 + str r1, [r0, #0x8] + ldrb r1, [r2, #0x0] + ldr r0, [r3, #0x60] + bl sub_021E8130 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203A878 +sub_0203A878: ; 0x0203A878 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x60] + bl sub_021E8148 + cmp r0, #0x1 + bne _0203A88E + mov r0, #0x0 + pop {r4, pc} +_0203A88E: + ldr r1, _0203A89C ; =sub_0203A8A0 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0203A89C: .word sub_0203A8A0 + 1 + + thumb_func_start sub_0203A8A0 +sub_0203A8A0: ; 0x0203A8A0 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x60] + bl sub_021E8148 + cmp r0, #0x1 + bne _0203A8B4 + mov r0, #0x1 + pop {r3, pc} +_0203A8B4: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0203A8B8 +sub_0203A8B8: ; 0x0203A8B8 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0x3 + add r0, r4, #0x0 + bl sub_02039438 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0x11 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x10 + bl sub_02039438 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + str r0, [sp, #0x8] + add r0, r1, #0x1 + str r0, [r5, #0x8] + ldrb r0, [r1, #0x0] + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02038C30 + str r0, [sp, #0xc] + ldr r0, [r5, #0x78] + ldr r1, [sp, #0x0] + ldr r2, [r6, #0x0] + bl sub_0200A8E0 + ldr r0, [sp, #0x8] + ldr r1, [r7, #0x0] + ldr r0, [r0, #0x0] + ldr r2, [r6, #0x0] + bl sub_0200B7B8 + ldr r0, [r4, #0x60] + bl sub_021E8140 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023900 + add r2, r0, #0x0 + ldr r1, [r7, #0x0] + add r0, r4, #0x0 + mov r3, #0x1 + bl sub_02054658 + ldr r1, [sp, #0x4] + strb r0, [r1, #0x0] + ldr r0, [sp, #0xc] + ldr r1, _0203A948 ; =sub_0203A94C + str r0, [r5, #0x64] + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0203A948: .word sub_0203A94C + 1 + + thumb_func_start sub_0203A94C +sub_0203A94C: ; 0x0203A94C + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, #0x80 + ldr r5, [r0, #0x0] + mov r1, #0x3 + add r0, r5, #0x0 + bl sub_02039438 + ldr r1, [r7, #0x64] + add r6, r0, #0x0 + lsl r1, r1, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r5, #0x60] + bl sub_021E8144 + ldrb r0, [r6, #0x0] + ldr r5, _0203A9E8 ; =0x0000FFFF + bl sub_020546C8 + cmp r0, #0x1 + bne _0203A986 + mov r0, #0x2 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} +_0203A986: + ldr r0, _0203A9EC ; =0x021C48B8 + mov r1, #0x40 + ldr r0, [r0, #0x48] + tst r1, r0 + beq _0203A994 + mov r5, #0x0 + b _0203A9B0 +_0203A994: + mov r1, #0x80 + tst r1, r0 + beq _0203A99E + mov r5, #0x1 + b _0203A9B0 +_0203A99E: + mov r1, #0x20 + tst r1, r0 + beq _0203A9A8 + mov r5, #0x2 + b _0203A9B0 +_0203A9A8: + mov r1, #0x10 + tst r1, r0 + beq _0203A9B0 + mov r5, #0x3 +_0203A9B0: + ldr r1, _0203A9E8 ; =0x0000FFFF + cmp r5, r1 + beq _0203A9D0 + ldrb r0, [r6, #0x0] + bl sub_0201BD7C + add r7, #0x80 + ldr r0, [r7, #0x0] + add r1, r5, #0x0 + ldr r0, [r0, #0x38] + bl sub_02055304 + mov r0, #0x0 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} +_0203A9D0: + mov r1, #0x1 + lsl r1, r1, #0xa + tst r0, r1 + beq _0203A9E4 + ldrb r0, [r6, #0x0] + bl sub_0201BD7C + mov r0, #0x1 + strh r0, [r4, #0x0] + pop {r3-r7, pc} +_0203A9E4: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0203A9E8: .word 0x0000FFFF +_0203A9EC: .word 0x021C48B8 + + thumb_func_start sub_0203A9F0 +sub_0203A9F0: ; 0x0203A9F0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + str r0, [r4, #0x64] + ldr r1, _0203AA08 ; =sub_0203AA0C + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0203AA08: .word sub_0203AA0C + 1 + + thumb_func_start sub_0203AA0C +sub_0203AA0C: ; 0x0203AA0C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r1, [r5, #0x64] + add r0, #0x80 + lsl r1, r1, #0x10 + ldr r0, [r0, #0x0] + lsr r1, r1, #0x10 + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, _0203AA88 ; =0x021C48B8 + ldr r1, _0203AA8C ; =0x0000FFFF + ldr r2, [r0, #0x48] + mov r0, #0x3 + add r3, r2, #0x0 + tst r3, r0 + beq _0203AA36 + mov r0, #0x0 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} +_0203AA36: + mov r3, #0x40 + tst r3, r2 + beq _0203AA40 + mov r1, #0x0 + b _0203AA5C +_0203AA40: + mov r3, #0x80 + tst r3, r2 + beq _0203AA4A + mov r1, #0x1 + b _0203AA5C +_0203AA4A: + mov r3, #0x20 + tst r3, r2 + beq _0203AA54 + mov r1, #0x2 + b _0203AA5C +_0203AA54: + mov r3, #0x10 + tst r3, r2 + beq _0203AA5C + add r1, r0, #0x0 +_0203AA5C: + ldr r0, _0203AA8C ; =0x0000FFFF + cmp r1, r0 + beq _0203AA74 + add r5, #0x80 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x38] + bl sub_02055304 + mov r0, #0x0 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} +_0203AA74: + mov r0, #0x1 + lsl r0, r0, #0xa + tst r0, r2 + beq _0203AA82 + mov r0, #0x1 + strh r0, [r4, #0x0] + pop {r3-r5, pc} +_0203AA82: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0203AA88: .word 0x021C48B8 +_0203AA8C: .word 0x0000FFFF + + thumb_func_start sub_0203AA90 +sub_0203AA90: ; 0x0203AA90 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02039460 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203AAA0 +sub_0203AAA0: ; 0x0203AAA0 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0x2 + add r0, r4, #0x0 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r7, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x4 + str r0, [sp, #0x4] + ldr r0, [r4, #0x8] + ldr r2, _0203AAF4 ; =0x000003D9 + mov r1, #0x3 + mov r3, #0xb + bl sub_0200CB00 + mov r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [r4, #0x8] + ldr r1, _0203AAF8 ; =0x020F34E0 + ldr r2, _0203AAF4 ; =0x000003D9 + mov r3, #0xb + bl sub_02002198 + str r0, [r6, #0x0] + ldr r1, _0203AAFC ; =sub_0203AB00 + add r0, r5, #0x0 + str r7, [r5, #0x64] + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0203AAF4: .word 0x000003D9 +_0203AAF8: .word 0x020F34E0 +_0203AAFC: .word sub_0203AB00 + 1 + + thumb_func_start sub_0203AB00 +sub_0203AB00: ; 0x0203AB00 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r6, [r0, #0x0] + mov r1, #0x2 + add r0, r6, #0x0 + bl sub_02039438 + ldr r1, [r5, #0x64] + add r4, r0, #0x0 + lsl r1, r1, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x4 + bl sub_020021AC + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + bne _0203AB34 + mov r0, #0x0 + pop {r4-r6, pc} +_0203AB34: + cmp r0, #0x0 + bne _0203AB3C + mov r0, #0x0 + b _0203AB3E +_0203AB3C: + mov r0, #0x1 +_0203AB3E: + strh r0, [r5, #0x0] + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_0203AB44 +sub_0203AB44: ; 0x0203AB44 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_02039438 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0x12 + bl sub_02039438 + add r5, r0, #0x0 + ldr r1, _0203AB70 ; =0x000003E2 + add r0, r4, #0x0 + bl sub_0200D858 + str r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0203AB70: .word 0x000003E2 + + thumb_func_start sub_0203AB74 +sub_0203AB74: ; 0x0203AB74 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x12 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_0200DBFC + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203AB8C +sub_0203AB8C: ; 0x0203AB8C + push {r4-r7, lr} + sub sp, #0x2c + add r5, r0, #0x0 + add r0, #0x80 + ldr r6, [r0, #0x0] + mov r1, #0x0 + add r0, r6, #0x0 + bl sub_02039438 + str r0, [sp, #0x1c] + add r0, r6, #0x0 + mov r1, #0xf + bl sub_02039438 + str r0, [sp, #0x20] + ldr r0, [r5, #0x8] + add r1, r0, #0x1 + str r1, [r5, #0x8] + ldrb r0, [r0, #0x0] + add r2, r1, #0x1 + str r0, [sp, #0x18] + str r2, [r5, #0x8] + ldrb r0, [r1, #0x0] + add r1, r2, #0x1 + str r0, [sp, #0x14] + str r1, [r5, #0x8] + ldrb r7, [r2, #0x0] + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + str r0, [sp, #0x24] + ldr r1, [sp, #0x24] + add r0, r6, #0x0 + bl sub_020394B8 + str r0, [sp, #0x28] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_02039438 + ldr r1, [sp, #0x28] + str r4, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [sp, #0x20] + add r3, r7, #0x0 + ldr r1, [r1, #0x0] + str r1, [sp, #0x8] + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x14] + add r0, r6, #0x0 + bl sub_021E1BF8 + ldr r1, [sp, #0x1c] + str r0, [r1, #0x0] + ldr r0, [sp, #0x24] + str r0, [r5, #0x64] + mov r0, #0x1 + add sp, #0x2c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0203AC14 +sub_0203AC14: ; 0x0203AC14 + push {r4-r7, lr} + sub sp, #0x2c + add r5, r0, #0x0 + add r0, #0x80 + ldr r6, [r0, #0x0] + mov r1, #0x0 + add r0, r6, #0x0 + bl sub_02039438 + str r0, [sp, #0x1c] + add r0, r6, #0x0 + mov r1, #0xf + bl sub_02039438 + str r0, [sp, #0x20] + ldr r0, [r5, #0x8] + add r1, r0, #0x1 + str r1, [r5, #0x8] + ldrb r0, [r0, #0x0] + add r2, r1, #0x1 + str r0, [sp, #0x18] + str r2, [r5, #0x8] + ldrb r0, [r1, #0x0] + add r1, r2, #0x1 + str r0, [sp, #0x14] + str r1, [r5, #0x8] + ldrb r7, [r2, #0x0] + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + str r0, [sp, #0x24] + ldr r1, [sp, #0x24] + add r0, r6, #0x0 + bl sub_020394B8 + str r0, [sp, #0x28] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_02039438 + ldr r1, [sp, #0x28] + str r4, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [sp, #0x20] + add r3, r7, #0x0 + ldr r1, [r1, #0x0] + str r1, [sp, #0x8] + str r0, [sp, #0xc] + ldr r0, [r5, #0x78] + str r0, [sp, #0x10] + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x14] + add r0, r6, #0x0 + bl sub_021E1BF8 + ldr r1, [sp, #0x1c] + str r0, [r1, #0x0] + ldr r0, [sp, #0x24] + str r0, [r5, #0x64] + mov r0, #0x1 + add sp, #0x2c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0203AC9C +sub_0203AC9C: ; 0x0203AC9C + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02039438 + ldr r1, [r4, #0x8] + add r3, r1, #0x1 + str r3, [r4, #0x8] + ldrb r1, [r1, #0x0] + add r2, r3, #0x1 + str r2, [r4, #0x8] + ldrb r2, [r3, #0x0] + ldr r0, [r0, #0x0] + bl sub_021E1C4C + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203ACC4 +sub_0203ACC4: ; 0x0203ACC4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + add r1, r6, #0x0 + bl sub_021E1C4C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203AD08 +sub_0203AD08: ; 0x0203AD08 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_021E1C54 + ldr r1, _0203AD28 ; =sub_0203AD2C + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0203AD28: .word sub_0203AD2C + 1 + + thumb_func_start sub_0203AD2C +sub_0203AD2C: ; 0x0203AD2C + push {r3, lr} + add r1, r0, #0x0 + ldr r1, [r1, #0x64] + add r0, #0x80 + lsl r1, r1, #0x10 + ldr r0, [r0, #0x0] + lsr r1, r1, #0x10 + bl sub_020394B8 + ldrh r1, [r0, #0x0] + ldr r0, _0203AD50 ; =0x0000EEEE + cmp r1, r0 + beq _0203AD4A + mov r0, #0x1 + pop {r3, pc} +_0203AD4A: + mov r0, #0x0 + pop {r3, pc} + nop +_0203AD50: .word 0x0000EEEE + + thumb_func_start sub_0203AD54 +sub_0203AD54: ; 0x0203AD54 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_021E1C54 + ldr r1, _0203AD74 ; =sub_0203AD78 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0203AD74: .word sub_0203AD78 + 1 + + thumb_func_start sub_0203AD78 +sub_0203AD78: ; 0x0203AD78 + push {r4-r6, lr} + add r1, r0, #0x0 + add r0, #0x80 + ldr r1, [r1, #0x64] + ldr r5, [r0, #0x0] + lsl r1, r1, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02039438 + add r6, r0, #0x0 + ldrh r1, [r4, #0x0] + ldr r0, _0203ADC0 ; =0x0000EEEE + cmp r1, r0 + bne _0203ADBC + ldr r0, [r5, #0x78] + bl sub_02052714 + cmp r0, #0x0 + beq _0203ADB8 + mov r0, #0x8 + strh r0, [r4, #0x0] + ldr r0, [r6, #0x0] + bl sub_021E1ECC + mov r0, #0x1 + pop {r4-r6, pc} +_0203ADB8: + mov r0, #0x0 + pop {r4-r6, pc} +_0203ADBC: + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0203ADC0: .word 0x0000EEEE + + thumb_func_start sub_0203ADC4 +sub_0203ADC4: ; 0x0203ADC4 + push {r4-r7, lr} + sub sp, #0x2c + add r5, r0, #0x0 + add r0, #0x80 + ldr r6, [r0, #0x0] + mov r1, #0x0 + add r0, r6, #0x0 + bl sub_02039438 + str r0, [sp, #0x1c] + add r0, r6, #0x0 + mov r1, #0xf + bl sub_02039438 + str r0, [sp, #0x20] + ldr r0, [r5, #0x8] + add r1, r0, #0x1 + str r1, [r5, #0x8] + ldrb r0, [r0, #0x0] + add r2, r1, #0x1 + str r0, [sp, #0x18] + str r2, [r5, #0x8] + ldrb r0, [r1, #0x0] + add r1, r2, #0x1 + str r0, [sp, #0x14] + str r1, [r5, #0x8] + ldrb r7, [r2, #0x0] + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + str r0, [sp, #0x24] + ldr r1, [sp, #0x24] + add r0, r6, #0x0 + bl sub_020394B8 + str r0, [sp, #0x28] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_02039438 + ldr r1, [sp, #0x28] + str r4, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [sp, #0x20] + add r3, r7, #0x0 + ldr r1, [r1, #0x0] + str r1, [sp, #0x8] + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x14] + add r0, r6, #0x0 + bl sub_021E1F34 + ldr r1, [sp, #0x1c] + str r0, [r1, #0x0] + ldr r0, [sp, #0x24] + str r0, [r5, #0x64] + mov r0, #0x1 + add sp, #0x2c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0203AE4C +sub_0203AE4C: ; 0x0203AE4C + push {r4-r7, lr} + sub sp, #0x2c + add r5, r0, #0x0 + add r0, #0x80 + ldr r6, [r0, #0x0] + mov r1, #0x0 + add r0, r6, #0x0 + bl sub_02039438 + str r0, [sp, #0x1c] + add r0, r6, #0x0 + mov r1, #0xf + bl sub_02039438 + str r0, [sp, #0x20] + ldr r0, [r5, #0x8] + add r1, r0, #0x1 + str r1, [r5, #0x8] + ldrb r0, [r0, #0x0] + add r2, r1, #0x1 + str r0, [sp, #0x18] + str r2, [r5, #0x8] + ldrb r0, [r1, #0x0] + add r1, r2, #0x1 + str r0, [sp, #0x14] + str r1, [r5, #0x8] + ldrb r7, [r2, #0x0] + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + str r0, [sp, #0x24] + ldr r1, [sp, #0x24] + add r0, r6, #0x0 + bl sub_020394B8 + str r0, [sp, #0x28] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_02039438 + ldr r1, [sp, #0x28] + str r4, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [sp, #0x20] + add r3, r7, #0x0 + ldr r1, [r1, #0x0] + str r1, [sp, #0x8] + str r0, [sp, #0xc] + ldr r0, [r5, #0x78] + str r0, [sp, #0x10] + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x14] + add r0, r6, #0x0 + bl sub_021E1F34 + ldr r1, [sp, #0x1c] + str r0, [r1, #0x0] + ldr r0, [sp, #0x24] + str r0, [r5, #0x64] + mov r0, #0x1 + add sp, #0x2c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0203AED4 +sub_0203AED4: ; 0x0203AED4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r3, r0, #0x0 + lsl r1, r6, #0x18 + lsl r2, r7, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r4, #0x0] + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_021E1F58 + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0203AF34 +sub_0203AF34: ; 0x0203AF34 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_021E1F60 + ldr r1, _0203AF54 ; =sub_0203AD2C + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0203AF54: .word sub_0203AD2C + 1 + + thumb_func_start sub_0203AF58 +sub_0203AF58: ; 0x0203AF58 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02039438 + ldr r2, [r4, #0x8] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + bl sub_021E26CC + ldr r1, _0203AF80 ; =sub_0203AD2C + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0203AF80: .word sub_0203AD2C + 1 + + thumb_func_start sub_0203AF84 +sub_0203AF84: ; 0x0203AF84 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02039438 + ldr r2, [r4, #0x8] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + bl sub_021E2B80 + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0203AFA4 +sub_0203AFA4: ; 0x0203AFA4 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02039438 + ldr r2, [r4, #0x8] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + bl sub_021E2B9C + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0203AFC4 +sub_0203AFC4: ; 0x0203AFC4 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C48 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r1, r6, #0x0 + bl sub_0203B120 + add r6, r0, #0x0 + bne _0203AFF6 + bl sub_02020C2C +_0203AFF6: + ldr r1, [r5, #0x8] + add r0, r6, #0x0 + add r1, r1, r4 + bl sub_0205AEA4 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x4 + bl sub_02039438 + ldrb r1, [r0, #0x0] + add r5, #0x80 + mov r2, #0x0 + add r1, r1, #0x1 + strb r1, [r0, #0x0] + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + bl sub_0203B174 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0203B024 +sub_0203B024: ; 0x0203B024 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + bl sub_0203B120 + str r0, [sp, #0x4] + cmp r0, #0x0 + bne _0203B07A + bl sub_02020C2C +_0203B07A: + mov r0, #0x4 + add r1, r0, #0x0 + add r1, #0xfc + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [sp, #0x4] + bl sub_02058B2C + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + ldr r0, [sp, #0x4] + bl sub_02058B4C + lsl r0, r0, #0x10 + ldr r2, [sp, #0x0] + lsr r0, r0, #0x10 + mov r1, #0x0 + cmp r6, r2 + bhs _0203B0B0 + mov r2, #0xf + strh r2, [r4, #0x0] + ldr r2, [sp, #0x0] + add r1, r1, #0x1 + sub r2, r2, r6 + strh r2, [r4, #0x2] + b _0203B0C0 +_0203B0B0: + cmp r6, r2 + bls _0203B0C0 + mov r2, #0xe + strh r2, [r4, #0x0] + ldr r2, [sp, #0x0] + add r1, r1, #0x1 + sub r2, r6, r2 + strh r2, [r4, #0x2] +_0203B0C0: + cmp r0, r7 + bhs _0203B0D4 + lsl r2, r1, #0x2 + mov r3, #0xc + strh r3, [r4, r2] + sub r3, r7, r0 + add r0, r4, r2 + strh r3, [r0, #0x2] + add r1, r1, #0x1 + b _0203B0E6 +_0203B0D4: + cmp r0, r7 + bls _0203B0E6 + lsl r2, r1, #0x2 + mov r3, #0xd + strh r3, [r4, r2] + sub r3, r0, r7 + add r0, r4, r2 + strh r3, [r0, #0x2] + add r1, r1, #0x1 +_0203B0E6: + lsl r2, r1, #0x2 + mov r0, #0xfe + strh r0, [r4, r2] + mov r1, #0x0 + add r0, r4, r2 + strh r1, [r0, #0x2] + ldr r0, [sp, #0x4] + add r1, r4, #0x0 + bl sub_0205AEA4 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x4 + bl sub_02039438 + ldrb r1, [r0, #0x0] + add r5, #0x80 + add r2, r4, #0x0 + add r1, r1, #0x1 + strb r1, [r0, #0x0] + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + bl sub_0203B174 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0203B120 +sub_0203B120: ; 0x0203B120 + push {r3, lr} + cmp r1, #0xf2 + bne _0203B130 + ldr r0, [r0, #0x34] + mov r1, #0x30 + bl sub_020580B4 + pop {r3, pc} +_0203B130: + cmp r1, #0xf1 + bne _0203B13E + mov r1, #0xb + bl sub_02039438 + ldr r0, [r0, #0x0] + pop {r3, pc} +_0203B13E: + ldr r0, [r0, #0x34] + bl sub_02058060 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203B148 +sub_0203B148: ; 0x0203B148 + push {r3, lr} + ldr r1, _0203B154 ; =sub_0203B158 + bl sub_02038B5C + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0203B154: .word sub_0203B158 + 1 + + thumb_func_start sub_0203B158 +sub_0203B158: ; 0x0203B158 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x4 + bl sub_02039438 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0203B16E + mov r0, #0x1 + pop {r3, pc} +_0203B16E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203B174 +sub_0203B174: ; 0x0203B174 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0x4 + mov r1, #0x10 + add r7, r2, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + bne _0203B18E + bl sub_02020C2C + pop {r3-r7, pc} +_0203B18E: + str r5, [r4, #0xc] + str r6, [r4, #0x4] + ldr r0, _0203B1A4 ; =sub_0203B1A8 + add r1, r4, #0x0 + mov r2, #0x0 + str r7, [r4, #0x8] + bl sub_0200CA44 + str r0, [r4, #0x0] + pop {r3-r7, pc} + nop +_0203B1A4: .word sub_0203B1A8 + 1 + + thumb_func_start sub_0203B1A8 +sub_0203B1A8: ; 0x0203B1A8 + push {r3-r5, lr} + add r5, r1, #0x0 + ldr r0, [r5, #0xc] + mov r1, #0x4 + bl sub_02039438 + add r4, r0, #0x0 + ldr r0, [r5, #0x4] + bl sub_0205AEF0 + cmp r0, #0x1 + bne _0203B1EC + ldr r0, [r5, #0x4] + bl sub_0205AEFC + ldr r0, [r5, #0x0] + bl sub_0200CAB4 + ldr r0, [r5, #0x8] + cmp r0, #0x0 + beq _0203B1D6 + bl sub_02016A18 +_0203B1D6: + add r0, r5, #0x0 + bl sub_02016A18 + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _0203B1E8 + bl sub_02020C2C + pop {r3-r5, pc} +_0203B1E8: + sub r0, r0, #0x1 + strb r0, [r4, #0x0] +_0203B1EC: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203B1F0 +sub_0203B1F0: ; 0x0203B1F0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0xa + add r0, r4, #0x0 + bl sub_02039438 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0203B20E + ldr r0, [r4, #0x34] + bl sub_02058780 + b _0203B214 +_0203B20E: + add r0, r5, #0x0 + bl sub_0203B2E0 +_0203B214: + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0203B218 +sub_0203B218: ; 0x0203B218 + push {r4-r6, lr} + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0xa + add r0, r4, #0x0 + bl sub_02039438 + add r5, r0, #0x0 + ldr r0, [r4, #0x38] + bl sub_020553A0 + ldr r1, _0203B2DC ; =0x021C5A0C + add r6, r0, #0x0 + ldrb r2, [r1, #0x0] + mov r1, #0x1 + tst r1, r2 + beq _0203B252 + bl sub_0205AE28 + cmp r0, #0x1 + bne _0203B252 + add r0, r6, #0x0 + bl sub_02058908 + ldr r1, _0203B2DC ; =0x021C5A0C + mov r0, #0xfe + ldrb r2, [r1, #0x0] + and r0, r2 + strb r0, [r1, #0x0] +_0203B252: + ldr r0, _0203B2DC ; =0x021C5A0C + ldrb r1, [r0, #0x0] + mov r0, #0x4 + tst r0, r1 + beq _0203B276 + ldr r0, [r5, #0x0] + bl sub_02058854 + cmp r0, #0x0 + bne _0203B276 + ldr r0, [r5, #0x0] + bl sub_02058908 + ldr r1, _0203B2DC ; =0x021C5A0C + mov r0, #0xfb + ldrb r2, [r1, #0x0] + and r0, r2 + strb r0, [r1, #0x0] +_0203B276: + ldr r0, _0203B2DC ; =0x021C5A0C + ldrb r1, [r0, #0x0] + mov r0, #0x2 + tst r0, r1 + beq _0203B2A2 + ldr r0, [r4, #0x34] + mov r1, #0x30 + bl sub_020580B4 + add r4, r0, #0x0 + bl sub_02058854 + cmp r0, #0x0 + bne _0203B2A2 + add r0, r4, #0x0 + bl sub_02058908 + ldr r1, _0203B2DC ; =0x021C5A0C + mov r0, #0xfd + ldrb r2, [r1, #0x0] + and r0, r2 + strb r0, [r1, #0x0] +_0203B2A2: + ldr r0, _0203B2DC ; =0x021C5A0C + ldrb r1, [r0, #0x0] + mov r0, #0x8 + tst r0, r1 + beq _0203B2CC + ldr r0, [r5, #0x0] + bl sub_0205E7C4 + add r4, r0, #0x0 + bl sub_02058854 + cmp r0, #0x0 + bne _0203B2CC + add r0, r4, #0x0 + bl sub_02058908 + ldr r1, _0203B2DC ; =0x021C5A0C + mov r0, #0xf7 + ldrb r2, [r1, #0x0] + and r0, r2 + strb r0, [r1, #0x0] +_0203B2CC: + ldr r0, _0203B2DC ; =0x021C5A0C + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0203B2D8 + mov r0, #0x1 + pop {r4-r6, pc} +_0203B2D8: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_0203B2DC: .word 0x021C5A0C + + thumb_func_start sub_0203B2E0 +sub_0203B2E0: ; 0x0203B2E0 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0xa + add r0, r4, #0x0 + bl sub_02039438 + add r5, r0, #0x0 + ldr r0, [r4, #0x38] + bl sub_020553A0 + str r0, [sp, #0x4] + ldr r0, [r4, #0x34] + mov r1, #0x30 + bl sub_020580B4 + add r7, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0205E7C4 + add r6, r0, #0x0 + ldr r0, [r4, #0x34] + ldr r1, _0203B3A8 ; =0x021C5A0C + mov r2, #0x0 + strb r2, [r1, #0x0] + bl sub_02058780 + ldr r0, [sp, #0x4] + bl sub_0205AE28 + cmp r0, #0x0 + bne _0203B334 + ldr r1, _0203B3A8 ; =0x021C5A0C + mov r0, #0x1 + ldrb r2, [r1, #0x0] + orr r0, r2 + strb r0, [r1, #0x0] + ldr r0, [sp, #0x4] + bl sub_02058914 +_0203B334: + ldr r0, [r5, #0x0] + bl sub_02058854 + cmp r0, #0x0 + beq _0203B34E + ldr r1, _0203B3A8 ; =0x021C5A0C + mov r0, #0x4 + ldrb r2, [r1, #0x0] + orr r0, r2 + strb r0, [r1, #0x0] + ldr r0, [r5, #0x0] + bl sub_02058914 +_0203B34E: + cmp r7, #0x0 + beq _0203B37A + ldr r0, [r4, #0xc] + bl sub_020462AC + bl sub_0205ED3C + cmp r0, #0x1 + bne _0203B37A + add r0, r7, #0x0 + bl sub_02058854 + cmp r0, #0x0 + beq _0203B37A + ldr r1, _0203B3A8 ; =0x021C5A0C + mov r0, #0x2 + ldrb r2, [r1, #0x0] + orr r0, r2 + strb r0, [r1, #0x0] + add r0, r7, #0x0 + bl sub_02058914 +_0203B37A: + cmp r6, #0x0 + beq _0203B398 + add r0, r6, #0x0 + bl sub_02058854 + cmp r0, #0x0 + beq _0203B398 + ldr r1, _0203B3A8 ; =0x021C5A0C + mov r0, #0x8 + ldrb r2, [r1, #0x0] + orr r0, r2 + strb r0, [r1, #0x0] + add r0, r6, #0x0 + bl sub_02058914 +_0203B398: + ldr r0, [sp, #0x0] + ldr r1, _0203B3AC ; =sub_0203B218 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0203B3A8: .word 0x021C5A0C +_0203B3AC: .word sub_0203B218 + 1 + + thumb_func_start sub_0203B3B0 +sub_0203B3B0: ; 0x0203B3B0 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x34] + bl sub_020587B0 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203B3C0 +sub_0203B3C0: ; 0x0203B3C0 + push {r4, lr} + add r1, r0, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + ldr r0, [r4, #0x34] + bl sub_02058060 + bl sub_02058908 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0203B3DC +sub_0203B3DC: ; 0x0203B3DC + push {r4, lr} + add r1, r0, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + ldr r0, [r4, #0x34] + bl sub_02058060 + bl sub_02058914 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0203B3F8 +sub_0203B3F8: ; 0x0203B3F8 + push {r3-r6, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02034B64 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02034B6C + str r0, [sp, #0x0] + ldr r3, [r5, #0x1c] + ldr r0, [r5, #0x34] + ldr r3, [r3, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020575D4 + cmp r0, #0x0 + bne _0203B43A + bl sub_02020C2C +_0203B43A: + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + + thumb_func_start sub_0203B440 +sub_0203B440: ; 0x0203B440 + push {r3-r5, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + ldr r0, [r5, #0x34] + bl sub_02058060 + bl sub_02057688 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203B468 +sub_0203B468: ; 0x0203B468 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xb + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + mov r1, #0x2 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xc + str r1, [sp, #0x0] + mov r3, #0x0 + str r3, [sp, #0x4] + ldr r1, [r0, #0x1c] + add r2, r7, #0x0 + ldr r1, [r1, #0x0] + str r1, [sp, #0x8] + ldr r0, [r0, #0x34] + add r1, r6, #0x0 + bl sub_0205753C + str r0, [r4, #0x0] + bl sub_02059D1C + ldr r0, [r4, #0x0] + mov r1, #0x1 + bl sub_0205889C + ldr r0, [r4, #0x0] + mov r1, #0x0 + bl sub_020588B8 + ldr r0, [r4, #0x0] + bl sub_02058B7C + add r1, r5, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + add r4, r0, #0x0 + ldr r1, [r1, #0x24] + bl sub_021EF5E0 + add r5, #0x80 + ldr r1, [r5, #0x0] + add r0, r4, #0x0 + ldr r1, [r1, #0x20] + bl sub_0201EC68 + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0203B500 +sub_0203B500: ; 0x0203B500 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xb + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_02057654 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xff + ldr r0, [r0, #0x34] + bl sub_02058060 + bl sub_02058B7C + add r1, r5, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + add r4, r0, #0x0 + ldr r1, [r1, #0x24] + bl sub_021EF5E0 + add r5, #0x80 + ldr r1, [r5, #0x0] + add r0, r4, #0x0 + ldr r1, [r1, #0x20] + bl sub_0201EC68 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203B544 +sub_0203B544: ; 0x0203B544 + push {r3-r5, lr} + add r0, #0x80 + ldr r5, [r0, #0x0] + ldr r0, [r5, #0x38] + bl sub_020552F8 + bl sub_02059E74 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xa + bl sub_02039438 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0203B568 + mov r0, #0x0 + pop {r3-r5, pc} +_0203B568: + add r1, r4, #0x0 + bl sub_021F1EC0 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203B574 +sub_0203B574: ; 0x0203B574 + push {r4-r6, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_02055320 + strh r0, [r6, #0x0] + ldr r0, [r5, #0x38] + bl sub_0205532C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203B5B8 +sub_0203B5B8: ; 0x0203B5B8 + push {r4-r6, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + ldr r0, [r5, #0x34] + bl sub_02058060 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B2C + strh r0, [r6, #0x0] + add r0, r5, #0x0 + bl sub_02058B4C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203B618 +sub_0203B618: ; 0x0203B618 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x38] + bl sub_020552F8 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203B640 +sub_0203B640: ; 0x0203B640 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + cmp r7, #0x0 + beq _0203B696 + lsl r0, r7, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _0203B6A4 +_0203B696: + lsl r0, r7, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_0203B6A4: + blx sub_020EB4C0 + str r0, [sp, #0x0] + cmp r6, #0x0 + beq _0203B6C0 + lsl r0, r6, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _0203B6CE +_0203B6C0: + lsl r0, r6, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_0203B6CE: + blx sub_020EB4C0 + str r0, [sp, #0x4] + cmp r4, #0x0 + beq _0203B6EA + lsl r0, r4, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _0203B6F8 +_0203B6EA: + lsl r0, r4, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_0203B6F8: + blx sub_020EB4C0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_020553A0 + add r1, sp, #0x0 + bl sub_02058BB4 + add r5, #0x80 + ldr r1, [r5, #0x0] + add r0, sp, #0x0 + ldr r1, [r1, #0x20] + bl sub_0201EF70 + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0203B724 +sub_0203B724: ; 0x0203B724 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x34] + bl sub_02058060 + ldr r2, [r4, #0x8] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r1, [r2, #0x0] + bl sub_02058994 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203B758 +sub_0203B758: ; 0x0203B758 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x34] + bl sub_02058060 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058E90 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203B790 +sub_0203B790: ; 0x0203B790 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + mov r0, #0x0 + strh r0, [r4, #0x0] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x34] + bl sub_02058060 + cmp r0, #0x0 + beq _0203B7D2 + bl sub_02058480 + strh r0, [r4, #0x0] +_0203B7D2: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203B7D8 +sub_0203B7D8: ; 0x0203B7D8 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x30 + ldr r0, [r0, #0x34] + bl sub_020580B4 + mov r1, #0xfe + bl sub_02058EB0 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0203B7F0 +sub_0203B7F0: ; 0x0203B7F0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029C80 + bl sub_02029E0C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203B81C +sub_0203B81C: ; 0x0203B81C + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029C80 + add r1, r6, #0x0 + bl sub_02029E2C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0203B85C +sub_0203B85C: ; 0x0203B85C + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029C80 + lsl r2, r4, #0x10 + add r1, r6, #0x0 + asr r2, r2, #0x10 + bl sub_02029D44 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203B8A0 +sub_0203B8A0: ; 0x0203B8A0 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + bl sub_020690CC + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0203B8E4 +sub_0203B8E4: ; 0x0203B8E4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r1, r5, #0x0 + add r1, #0x80 + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + mov r0, #0x20 + bl sub_020379F8 + str r0, [r4, #0x0] + ldr r1, _0203B910 ; =sub_0203BC04 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r5, pc} + nop +_0203B910: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203B914 +sub_0203B914: ; 0x0203B914 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r1, r5, #0x0 + add r1, #0x80 + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + mov r0, #0x20 + bl sub_02037A1C + str r0, [r4, #0x0] + ldr r1, _0203B940 ; =sub_0203BC04 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r5, pc} + nop +_0203B940: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203B944 +sub_0203B944: ; 0x0203B944 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0x20 + ldr r0, [r0, #0x10] + bl sub_02037B44 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203B968 +sub_0203B968: ; 0x0203B968 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _0203B994 + bl sub_02020C2C +_0203B994: + ldr r0, [r4, #0x0] + bl sub_02037A40 + strh r0, [r5, #0x0] + ldrh r0, [r5, #0x0] + cmp r0, #0x7 + bne _0203B9A6 + mov r0, #0xff + strh r0, [r5, #0x0] +_0203B9A6: + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203B9B4 +sub_0203B9B4: ; 0x0203B9B4 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + add r1, r5, #0x0 + str r6, [sp, #0x4] + add r1, #0x80 + ldr r1, [r1, #0x0] + ldr r2, [sp, #0x8] + mov r0, #0x20 + add r3, r7, #0x0 + bl sub_02037BB0 + str r0, [r4, #0x0] + ldr r1, _0203BA38 ; =sub_0203BC04 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0203BA38: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203BA3C +sub_0203BA3C: ; 0x0203BA3C + push {r4-r6, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _0203BA7C + bl sub_02020C2C +_0203BA7C: + ldr r0, [r4, #0x0] + bl sub_02037A40 + strh r0, [r6, #0x0] + ldrh r0, [r6, #0x0] + cmp r0, #0x7 + bne _0203BA8E + mov r0, #0xff + strh r0, [r6, #0x0] +_0203BA8E: + ldr r0, [r4, #0x0] + bl sub_02037A70 + strh r0, [r5, #0x0] + ldrh r0, [r5, #0x0] + cmp r0, #0x1 + bne _0203BAA0 + mov r0, #0x1 + b _0203BAA2 +_0203BAA0: + mov r0, #0x0 +_0203BAA2: + strh r0, [r5, #0x0] + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r4-r6, pc} + + thumb_func_start sub_0203BAB0 +sub_0203BAB0: ; 0x0203BAB0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r1, r5, #0x0 + add r1, #0x80 + add r2, r0, #0x0 + ldr r1, [r1, #0x0] + mov r0, #0x20 + bl sub_02037C00 + str r0, [r4, #0x0] + ldr r1, _0203BAF0 ; =sub_0203BC04 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r5, pc} + nop +_0203BAF0: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203BAF4 +sub_0203BAF4: ; 0x0203BAF4 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _0203BB20 + bl sub_02020C2C +_0203BB20: + ldr r0, [r4, #0x0] + bl sub_02037A78 + strh r0, [r5, #0x0] + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0203BB34 +sub_0203BB34: ; 0x0203BB34 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xa + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r1, [r4, #0x0] + add r2, r7, #0x0 + bl sub_021E1858 + strh r0, [r6, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203BB80 +sub_0203BB80: ; 0x0203BB80 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0203BB84 +sub_0203BB84: ; 0x0203BB84 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0203BB88 +sub_0203BB88: ; 0x0203BB88 + mov r0, #0x1 + bx lr + + thumb_func_start sub_0203BB8C +sub_0203BB8C: ; 0x0203BB8C + mov r0, #0x0 + bx lr + + thumb_func_start sub_0203BB90 +sub_0203BB90: ; 0x0203BB90 + push {r3-r5, lr} + add r0, #0x80 + ldr r5, [r0, #0x0] + mov r1, #0x13 + add r0, r5, #0x0 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204647C + cmp r0, #0x0 + beq _0203BBAE + mov r0, #0x0 + pop {r3-r5, pc} +_0203BBAE: + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0203BBBC +sub_0203BBBC: ; 0x0203BBBC + push {r4-r6, lr} + add r0, #0x80 + ldr r5, [r0, #0x0] + mov r1, #0x13 + add r0, r5, #0x0 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + ldr r6, [r4, #0x0] + bl sub_0204647C + cmp r0, #0x0 + beq _0203BBDC + mov r0, #0x0 + pop {r4-r6, pc} +_0203BBDC: + ldr r0, [r6, #0x8] + cmp r0, #0x1 + bne _0203BBF4 + mov r0, #0xb + bl sub_02029048 + add r5, #0x98 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + mov r2, #0x1 + bl sub_02028AD4 +_0203BBF4: + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203BC04 +sub_0203BC04: ; 0x0203BC04 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_0204647C + cmp r0, #0x0 + bne _0203BC16 + mov r0, #0x1 + pop {r3, pc} +_0203BC16: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203BC1C +sub_0203BC1C: ; 0x0203BC1C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x10] + bl sub_0204AF84 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203BC2C +sub_0203BC2C: ; 0x0203BC2C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x10] + bl sub_0204AF3C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203BC3C +sub_0203BC3C: ; 0x0203BC3C + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_02027E24 + cmp r5, #0x0 + bne _0203BC5A + add r1, r4, #0x0 + bl sub_02027098 + cmp r0, #0x0 + bne _0203BC68 + mov r0, #0x0 + pop {r3-r5, pc} +_0203BC5A: + add r1, r4, #0x0 + bl sub_020270B4 + cmp r0, #0x0 + bne _0203BC68 + mov r0, #0x0 + pop {r3-r5, pc} +_0203BC68: + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0203BC6C +sub_0203BC6C: ; 0x0203BC6C + push {r3-r7, lr} + add r5, r1, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0xc] + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02027E24 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0203BC3C + cmp r0, #0x0 + bne _0203BC90 + mov r0, #0x0 + pop {r3-r7, pc} +_0203BC90: + ldr r0, [sp, #0x0] + mov r1, #0xc + bl sub_02016998 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + strb r1, [r0, #0x4] + strb r1, [r0, #0x5] + strb r1, [r0, #0x6] + strb r1, [r0, #0x7] + strb r1, [r0, #0x8] + strb r1, [r0, #0x9] + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + str r7, [r0, #0x0] + str r4, [r0, #0x8] + str r6, [r0, #0x4] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203BCBC +sub_0203BCBC: ; 0x0203BCBC + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_021F02C4 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203BCCC +sub_0203BCCC: ; 0x0203BCCC + push {r3, lr} + ldr r0, [r0, #0x74] + bl sub_0206F3B8 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203BCD8 +sub_0203BCD8: ; 0x0203BCD8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + ldr r1, [r4, #0x0] + ldr r1, [r1, #0x4] + strh r1, [r0, #0x0] + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203BD08 +sub_0203BD08: ; 0x0203BD08 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + bl sub_02031190 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203BD28 +sub_0203BD28: ; 0x0203BD28 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x4 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r2, _0203BDB4 ; =0x000003D9 + ldr r0, [r0, #0x8] + mov r1, #0x3 + mov r3, #0xb + bl sub_0200CB00 + mov r0, #0xb + str r0, [sp, #0x0] + ldr r0, _0203BDB4 ; =0x000003D9 + mov r1, #0x3 + str r0, [sp, #0x4] + lsl r0, r7, #0x18 + str r4, [sp, #0x8] + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + mov r0, #0x4 + str r0, [sp, #0x10] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r2, #0xa + ldr r0, [r0, #0x8] + mov r3, #0x5 + bl sub_0200DC4C + add r5, #0x80 + str r0, [r6, #0x0] + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + bl sub_0203ED2C + mov r0, #0x0 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_0203BDB4: .word 0x000003D9 + + thumb_func_start sub_0203BDB8 +sub_0203BDB8: ; 0x0203BDB8 + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r4, #0x0 + bl sub_0206B9B0 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x4 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r2, _0203BE4C ; =0x000003D9 + ldr r0, [r0, #0x8] + mov r1, #0x3 + mov r3, #0xb + bl sub_0200CB00 + mov r0, #0xb + str r0, [sp, #0x0] + ldr r0, _0203BE4C ; =0x000003D9 + mov r1, #0x3 + str r0, [sp, #0x4] + str r4, [sp, #0x8] + mov r0, #0x4 + str r0, [sp, #0xc] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r2, #0xa + ldr r0, [r0, #0x8] + mov r3, #0x5 + bl sub_0200DCA4 + str r0, [r6, #0x0] + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + add r1, r0, #0x0 + add r5, #0x80 + lsl r1, r1, #0x10 + ldr r0, [r5, #0x0] + lsr r1, r1, #0x10 + bl sub_0203ED2C + mov r0, #0x0 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_0203BE4C: .word 0x000003D9 + + thumb_func_start sub_0203BE50 +sub_0203BE50: ; 0x0203BE50 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + ldr r0, [r0, #0x0] + mov r1, #0x1 + strb r1, [r0, #0x0] + add r0, r1, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203BE68 +sub_0203BE68: ; 0x0203BE68 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + ldr r0, [r0, #0x0] + mov r1, #0x2 + strb r1, [r0, #0x0] + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203BE80 +sub_0203BE80: ; 0x0203BE80 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + str r0, [r4, #0x64] + ldr r1, _0203BE98 ; =sub_0203BE9C + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0203BE98: .word sub_0203BE9C + 1 + + thumb_func_start sub_0203BE9C +sub_0203BE9C: ; 0x0203BE9C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + ldr r1, [r5, #0x64] + add r0, #0x80 + lsl r1, r1, #0x10 + ldr r0, [r0, #0x0] + lsr r1, r1, #0x10 + bl sub_020394B8 + ldr r0, [r4, #0x0] + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + beq _0203BEC8 + mov r0, #0x1 + pop {r3-r5, pc} +_0203BEC8: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203BECC +sub_0203BECC: ; 0x0203BECC + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r1, r6, #0x0 + bl sub_020394B8 + add r2, r0, #0x0 + ldr r0, [r5, #0x74] + ldr r1, [r4, #0x0] + bl sub_021E1374 + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203BF00 +sub_0203BF00: ; 0x0203BF00 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xa + bl sub_02039438 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0203BF1C + add r4, #0x80 + ldr r0, [r4, #0x0] + bl sub_021E1994 +_0203BF1C: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0203BF20 +sub_0203BF20: ; 0x0203BF20 + push {r3, lr} + ldr r0, [r0, #0x74] + bl sub_0208A338 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203BF2C +sub_0203BF2C: ; 0x0203BF2C + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + ldr r2, [r5, #0x0] + add r1, r6, #0x0 + str r0, [sp, #0x0] + ldr r0, [r2, #0x10] + ldr r2, [r2, #0xc] + add r3, r4, #0x0 + bl sub_020380CC + mov r0, #0x1 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_0203BF84 +sub_0203BF84: ; 0x0203BF84 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r1, r5, #0x0 + add r1, #0x80 + add r6, r0, #0x0 + ldr r1, [r1, #0x0] + mov r0, #0xb + mov r2, #0x0 + add r3, r7, #0x0 + bl sub_0203BC6C + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _0203BFCC + mov r0, #0x1 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_0203BFCC: + mov r0, #0x0 + strh r0, [r6, #0x0] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x0] + bl sub_02038130 + ldr r1, _0203BFE8 ; =sub_0203BB90 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_0203BFE8: .word sub_0203BB90 + 1 + + thumb_func_start sub_0203BFEC +sub_0203BFEC: ; 0x0203BFEC + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r1, r5, #0x0 + add r1, #0x80 + add r6, r0, #0x0 + ldr r1, [r1, #0x0] + mov r0, #0xb + mov r2, #0x1 + add r3, r7, #0x0 + bl sub_0203BC6C + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _0203C034 + mov r0, #0x1 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_0203C034: + mov r0, #0x0 + strh r0, [r6, #0x0] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x0] + bl sub_02038130 + ldr r1, _0203C050 ; =sub_0203BB90 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_0203C050: .word sub_0203BB90 + 1 + + thumb_func_start sub_0203C054 +sub_0203C054: ; 0x0203C054 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_0203BC3C + cmp r0, #0x1 + bne _0203C088 + mov r0, #0x1 + strh r0, [r4, #0x0] + pop {r4-r6, pc} +_0203C088: + mov r0, #0x0 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_0203C090 +sub_0203C090: ; 0x0203C090 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0x1 + add r2, r6, #0x0 + bl sub_0203BC3C + cmp r0, #0x1 + bne _0203C0C4 + mov r0, #0x1 + strh r0, [r4, #0x0] + pop {r4-r6, pc} +_0203C0C4: + mov r0, #0x0 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_0203C0CC +sub_0203C0CC: ; 0x0203C0CC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02027E24 + mov r1, #0x0 + bl sub_02027008 + add r1, r4, #0x0 + bl sub_02027478 + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0203C0FC +sub_0203C0FC: ; 0x0203C0FC + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02038804 + ldr r1, _0203C114 ; =sub_0203BC04 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0203C114: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203C118 +sub_0203C118: ; 0x0203C118 + push {r3, lr} + add r1, r0, #0x0 + ldr r0, [r1, #0x74] + add r1, #0x80 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0xc] + bl sub_02085F48 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203C12C +sub_0203C12C: ; 0x0203C12C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + mov r1, #0x5 + add r4, r0, #0x0 + mov r0, #0xb + lsl r1, r1, #0x6 + bl sub_02016998 + str r0, [r4, #0x0] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x0] + mov r2, #0x2 + bl sub_0205F7A0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x0] + bl sub_02037E90 + ldr r1, _0203C170 ; =sub_0203BB90 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r5, pc} + nop +_0203C170: .word sub_0203BB90 + 1 + + thumb_func_start sub_0203C174 +sub_0203C174: ; 0x0203C174 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r2, #0xb + bl sub_02088960 + str r0, [r4, #0x0] + ldr r1, _0203C1A8 ; =sub_0203BB90 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0203C1A8: .word sub_0203BB90 + 1 + + thumb_func_start sub_0203C1AC +sub_0203C1AC: ; 0x0203C1AC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206F158 + mov r1, #0x4 + bl sub_0206EE64 + cmp r0, #0x0 + bne _0203C1E0 + mov r0, #0x1 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} +_0203C1E0: + add r5, #0x80 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02028048 + bl sub_020281B8 + cmp r0, #0x64 + blo _0203C1FA + mov r0, #0x2 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} +_0203C1FA: + mov r0, #0x0 + strh r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0203C200 +sub_0203C200: ; 0x0203C200 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r6, r0, #0x0 + mov r0, #0xb + mov r1, #0x8 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x8 + str r0, [r6, #0x0] + add r4, r0, #0x0 + blx sub_020CE34C + ldr r0, [sp, #0x0] + strh r7, [r4, #0x4] + strh r0, [r4, #0x6] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + str r0, [r4, #0x0] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r1, [r6, #0x0] + bl sub_02037FE4 + ldr r1, _0203C274 ; =sub_0203BB90 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_0203C274: .word sub_0203BB90 + 1 + + thumb_func_start sub_0203C278 +sub_0203C278: ; 0x0203C278 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0xc + bl sub_02016998 + add r1, r5, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0xc] + str r1, [r0, #0x0] + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r1, [r2, #0x0] + str r1, [r0, #0x4] + str r0, [r4, #0x0] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x0] + bl sub_02037D60 + ldr r1, _0203C2C0 ; =sub_0203BBBC + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r5, pc} + nop +_0203C2C0: .word sub_0203BBBC + 1 + + thumb_func_start sub_0203C2C4 +sub_0203C2C4: ; 0x0203C2C4 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020383F8 + ldr r1, _0203C2DC ; =sub_0203BC04 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0203C2DC: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203C2E0 +sub_0203C2E0: ; 0x0203C2E0 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02065344 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203C2F0 +sub_0203C2F0: ; 0x0203C2F0 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x10] + bl sub_020383D8 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203C300 +sub_0203C300: ; 0x0203C300 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_0203842C + str r0, [r4, #0x0] + ldr r1, _0203C328 ; =sub_0203BB90 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0203C328: .word sub_0203BB90 + 1 + + thumb_func_start sub_0203C32C +sub_0203C32C: ; 0x0203C32C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x10] + bl sub_02048694 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203C33C +sub_0203C33C: ; 0x0203C33C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02038824 + str r0, [r4, #0x0] + ldr r1, _0203C364 ; =sub_0203BB90 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0203C364: .word sub_0203BB90 + 1 + + thumb_func_start sub_0203C368 +sub_0203C368: ; 0x0203C368 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0203384C + cmp r0, #0x0 + beq _0203C3BC + mov r0, #0x1 + strh r0, [r4, #0x0] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r1, r6, #0x0 + bl sub_020386E0 + ldr r1, _0203C3C4 ; =sub_0203BC04 + add r0, r5, #0x0 + bl sub_02038B5C + b _0203C3C0 +_0203C3BC: + mov r0, #0x0 + strh r0, [r4, #0x0] +_0203C3C0: + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0203C3C4: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203C3C8 +sub_0203C3C8: ; 0x0203C3C8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r1, r0, #0x0 + ldr r0, [r4, #0x74] + bl sub_0206F3D8 + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0203C3E8 +sub_0203C3E8: ; 0x0203C3E8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x8 + bl sub_02016998 + str r0, [r4, #0x0] + add r6, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023900 + str r0, [r6, #0x4] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x0] + bl sub_020386A4 + ldr r1, _0203C42C ; =sub_0203BC04 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4-r6, pc} + nop +_0203C42C: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203C430 +sub_0203C430: ; 0x0203C430 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + ldr r1, [r4, #0x0] + ldr r1, [r1, #0x0] + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_0205F378 + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203C460 +sub_0203C460: ; 0x0203C460 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r1, [r5, #0x8] + add r0, r1, #0x1 + str r0, [r5, #0x8] + ldrb r0, [r1, #0x0] + cmp r0, #0x0 + beq _0203C474 + mov r0, #0x1 + b _0203C476 +_0203C474: + mov r0, #0x0 +_0203C476: + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r6, r0, #0x0 + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _0203C492 + bl sub_02020C2C +_0203C492: + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + bl sub_0203789C + str r0, [r6, #0x0] + ldr r1, _0203C4AC ; =sub_0203BC04 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0203C4AC: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203C4B0 +sub_0203C4B0: ; 0x0203C4B0 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _0203C4DC + bl sub_02020C2C +_0203C4DC: + ldr r0, [r4, #0x0] + bl sub_020378FC + strh r0, [r5, #0x0] + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0203C4F0 +sub_0203C4F0: ; 0x0203C4F0 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [r4, #0x74] + add r2, r1, #0x0 + mov r3, #0x7 + bl sub_020385CC + mov r0, #0x1 + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0203C520 +sub_0203C520: ; 0x0203C520 + push {r4-r7, lr} + sub sp, #0x34 + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + mov r1, #0x74 + add r2, sp, #0xc + add r7, r0, #0x0 + bl sub_020671BC + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r7, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + str r6, [sp, #0x0] + add r0, sp, #0xc + str r0, [sp, #0x4] + str r4, [sp, #0x8] + ldr r0, [r5, #0x74] + mov r1, #0x1 + mov r3, #0xa + bl sub_020385CC + mov r0, #0x1 + add sp, #0x34 + pop {r4-r7, pc} + + thumb_func_start sub_0203C58C +sub_0203C58C: ; 0x0203C58C + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + mov r2, #0x0 + str r2, [sp, #0x0] + str r2, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [r4, #0x74] + mov r1, #0x6 + mov r3, #0xa + bl sub_020385CC + mov r0, #0x1 + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0203C5BC +sub_0203C5BC: ; 0x0203C5BC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r2, r0, #0x0 + ldr r0, _0203C610 ; =0x0000FFFF + add r5, #0x80 + strh r0, [r2, #0x0] + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0x10] + mov r3, #0x0 + bl sub_02037E18 + mov r0, #0x1 + pop {r3-r5, pc} + nop +_0203C610: .word 0x0000FFFF + + thumb_func_start sub_0203C614 +sub_0203C614: ; 0x0203C614 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r3, r0, #0x0 + ldr r0, _0203C67C ; =0x0000FFFF + add r5, #0x80 + strh r0, [r4, #0x0] + strh r0, [r3, #0x0] + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + ldr r0, [r0, #0x10] + add r2, r4, #0x0 + bl sub_02037E18 + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0203C67C: .word 0x0000FFFF + + thumb_func_start sub_0203C680 +sub_0203C680: ; 0x0203C680 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + add r1, r6, #0x0 + bl sub_0200B518 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203C6C4 +sub_0203C6C4: ; 0x0203C6C4 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + bl sub_02038C30 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + str r4, [sp, #0x0] + add r3, r0, #0x0 + str r6, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + mov r0, #0x0 + add r1, r7, #0x0 + add r2, r7, #0x0 + bl sub_0200E1D0 + mov r0, #0x0 + bl sub_0200E388 + mov r0, #0x1 + bl sub_0200E388 + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0203C70C +sub_0203C70C: ; 0x0203C70C + push {r3, lr} + ldr r1, _0203C718 ; =sub_0203C71C + bl sub_02038B5C + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0203C718: .word sub_0203C71C + 1 + + thumb_func_start sub_0203C71C +sub_0203C71C: ; 0x0203C71C + push {r3, lr} + bl sub_0200E308 + cmp r0, #0x1 + bne _0203C72A + mov r0, #0x1 + pop {r3, pc} +_0203C72A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203C730 +sub_0203C730: ; 0x0203C730 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + str r4, [sp, #0x0] + str r0, [sp, #0x4] + mov r2, #0x0 + ldr r0, [r5, #0x74] + add r1, r6, #0x0 + mvn r2, r2 + add r3, r7, #0x0 + bl sub_02049240 + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0203C788 +sub_0203C788: ; 0x0203C788 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + str r4, [sp, #0x0] + mov r2, #0x0 + add r5, #0x80 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + ldr r0, [r0, #0x10] + mvn r2, r2 + add r3, r7, #0x0 + bl sub_02049F98 + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0203C7E4 +sub_0203C7E4: ; 0x0203C7E4 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x10] + bl sub_02049FFC + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203C7F4 +sub_0203C7F4: ; 0x0203C7F4 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + bl sub_02034DC8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + ldr r1, [r5, #0x0] + strh r1, [r0, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203C820 +sub_0203C820: ; 0x0203C820 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + ldr r1, [r4, #0x0] + ldr r1, [r1, #0x1c] + ldr r1, [r1, #0x0] + strh r1, [r0, #0x0] + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203C844 +sub_0203C844: ; 0x0203C844 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_020552F8 + add r1, r0, #0x0 + ldr r0, [r5, #0x74] + add r2, r4, #0x0 + bl sub_021E6990 + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0203C874 +sub_0203C874: ; 0x0203C874 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r0, #0x90 + ldr r0, [r0, #0x0] + bl sub_0205DD40 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_020552F8 + add r1, r0, #0x0 + ldr r0, [r5, #0x74] + add r2, r4, #0x0 + bl sub_021E6410 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203C8B4 +sub_0203C8B4: ; 0x0203C8B4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_020552F8 + add r1, r0, #0x0 + ldr r0, [r5, #0x74] + add r2, r4, #0x0 + bl sub_021E6BF4 + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0203C8E4 +sub_0203C8E4: ; 0x0203C8E4 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02038C30 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + mov r2, #0x1 + str r2, [sp, #0x4] + add r5, #0x80 + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + sub r2, r2, #0x2 + add r3, r6, #0x0 + bl sub_02049274 + mov r0, #0x1 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_0203C930 +sub_0203C930: ; 0x0203C930 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + add r5, r0, #0x0 + mov r1, #0x0 + bl sub_02034DF4 + add r0, r5, #0x0 + bl sub_02034DEC + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x4] + ldr r0, [r0, #0xc] + bl sub_021DC174 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203C960 +sub_0203C960: ; 0x0203C960 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + add r5, r0, #0x0 + mov r1, #0x0 + bl sub_02034DF4 + add r0, r5, #0x0 + bl sub_02034DEC + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x4] + ldr r0, [r0, #0xc] + bl sub_021DC174 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203C990 +sub_0203C990: ; 0x0203C990 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_020553E8 + add r3, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_0224666C + str r0, [r4, #0x0] + ldr r1, _0203C9F4 ; =sub_0203C9F8 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4-r6, pc} + nop +_0203C9F4: .word sub_0203C9F8 + 1 + + thumb_func_start sub_0203C9F8 +sub_0203C9F8: ; 0x0203C9F8 + push {r4, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_022466A0 + cmp r0, #0x1 + bne _0203CA1A + ldr r0, [r4, #0x0] + bl sub_022466AC + mov r0, #0x1 + pop {r4, pc} +_0203CA1A: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203CA20 +sub_0203CA20: ; 0x0203CA20 + push {r3, lr} + ldr r0, [r0, #0x74] + bl sub_021E7030 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203CA2C +sub_0203CA2C: ; 0x0203CA2C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x38] + bl sub_020553C4 + cmp r0, #0x1 + bne _0203CA54 + mov r0, #0x1 + b _0203CA56 +_0203CA54: + mov r0, #0x0 +_0203CA56: + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203CA5C +sub_0203CA5C: ; 0x0203CA5C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x8] + add r0, r1, #0x1 + str r0, [r4, #0x8] + ldrb r0, [r1, #0x0] + cmp r0, #0x1 + bne _0203CAA4 + add r0, r4, #0x0 + add r0, #0x80 + mov r1, #0x12 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x6 + bl sub_0204AB20 + add r0, r4, #0x0 + add r0, #0x80 + mov r1, #0x12 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x6 + mov r2, #0x1 + bl sub_0204ABDC + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x2 + ldr r0, [r0, #0x38] + bl sub_021E5FD8 + add r4, #0x80 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x38] + bl sub_021E5FE0 + b _0203CAE4 +_0203CAA4: + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x1 + ldr r0, [r0, #0x38] + bl sub_021E5FD8 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_021E5FE0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_0204AB20 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x1c] + ldr r1, [r1, #0x0] + bl sub_0204AB58 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + mov r2, #0x1 + bl sub_0204ABDC +_0203CAE4: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0203CAE8 +sub_0203CAE8: ; 0x0203CAE8 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x2 + ldr r0, [r0, #0x38] + bl sub_021E5FD8 + add r4, #0x80 + mov r1, #0x12 + ldr r0, [r4, #0x0] + lsl r1, r1, #0x6 + bl sub_0204AB20 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0203CB08 +sub_0203CB08: ; 0x0203CB08 + push {r3, lr} + ldr r2, [r0, #0x8] + add r1, r2, #0x1 + str r1, [r0, #0x8] + add r0, #0x80 + ldr r0, [r0, #0x0] + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x38] + bl sub_02055720 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0203CB20 +sub_0203CB20: ; 0x0203CB20 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x38] + bl sub_020553C4 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203CB48 +sub_0203CB48: ; 0x0203CB48 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x38] + bl sub_020553D4 + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0203CB60 +sub_0203CB60: ; 0x0203CB60 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl sub_021E5FE0 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0203CB70 +sub_0203CB70: ; 0x0203CB70 + push {r4-r6, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0202A9B0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0202A990 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_02245910 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203CBBC +sub_0203CBBC: ; 0x0203CBBC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F388 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203CBE8 +sub_0203CBE8: ; 0x0203CBE8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0x8 + add r0, r4, #0x0 + bl sub_02039438 + add r0, r4, #0x0 + mov r1, #0x10 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x6 + bl sub_02039438 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_02039438 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r2, [r6, #0x0] + mov r3, #0xb + bl sub_0206AD4C + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02039438 + mov r1, #0xf + bl sub_02019620 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023900 + add r2, r0, #0x0 + ldr r1, [r6, #0x0] + add r0, r4, #0x0 + mov r3, #0x1 + bl sub_02054658 + strb r0, [r7, #0x0] + ldr r1, _0203CC84 ; =sub_0203A2F0 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_0203CC84: .word sub_0203A2F0 + 1 + + thumb_func_start sub_0203CC88 +sub_0203CC88: ; 0x0203CC88 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + ldr r2, [sp, #0x0] + ldr r3, [sp, #0x4] + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_02240790 + ldr r1, _0203CCF4 ; =sub_0203CCF8 + add r0, r5, #0x0 + str r6, [r5, #0x64] + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0203CCF4: .word sub_0203CCF8 + 1 + + thumb_func_start sub_0203CCF8 +sub_0203CCF8: ; 0x0203CCF8 + push {r4, lr} + add r1, r0, #0x0 + ldr r1, [r1, #0x64] + add r0, #0x80 + lsl r1, r1, #0x10 + ldr r0, [r0, #0x0] + lsr r1, r1, #0x10 + bl sub_020394B8 + add r4, r0, #0x0 + bl sub_022407DC + cmp r0, #0x0 + bne _0203CD18 + mov r0, #0x0 + pop {r4, pc} +_0203CD18: + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203CD20 +sub_0203CD20: ; 0x0203CD20 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + ldr r2, [sp, #0x0] + ldr r3, [sp, #0x4] + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_022407F8 + ldr r1, _0203CD8C ; =sub_0203CD90 + add r0, r5, #0x0 + str r6, [r5, #0x64] + bl sub_02038B5C + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0203CD8C: .word sub_0203CD90 + 1 + + thumb_func_start sub_0203CD90 +sub_0203CD90: ; 0x0203CD90 + push {r4, lr} + add r1, r0, #0x0 + ldr r1, [r1, #0x64] + add r0, #0x80 + lsl r1, r1, #0x10 + ldr r0, [r0, #0x0] + lsr r1, r1, #0x10 + bl sub_020394B8 + add r4, r0, #0x0 + bl sub_02240844 + cmp r0, #0x0 + bne _0203CDB0 + mov r0, #0x0 + pop {r4, pc} +_0203CDB0: + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203CDB8 +sub_0203CDB8: ; 0x0203CDB8 + push {r3, lr} + bl sub_02038C30 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203CDC4 +sub_0203CDC4: ; 0x0203CDC4 + push {r3, lr} + bl sub_02038C30 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203CDD0 +sub_0203CDD0: ; 0x0203CDD0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r6, r0, #0x0 + add r5, #0x80 + ldr r4, [r6, #0x0] + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0x10] + add r1, #0x2c + mov r2, #0x5 + bl sub_02047174 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x0 + str r0, [r6, #0x0] + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_0203CE00 +sub_0203CE00: ; 0x0203CE00 + push {r3, lr} + ldr r0, [r0, #0x74] + bl sub_02080C38 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203CE0C +sub_0203CE0C: ; 0x0203CE0C + push {r3-r4, lr} + sub sp, #0x14 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0xc] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, #0x80 + str r0, [sp, #0x10] + ldr r0, [r4, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + add r1, sp, #0x0 + bl sub_02034DD4 + mov r0, #0x0 + add sp, #0x14 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0203CE8C +sub_0203CE8C: ; 0x0203CE8C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + bl sub_02034DD0 + ldr r0, [r0, #0x0] + bl sub_021E2608 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203CEBC +sub_0203CEBC: ; 0x0203CEBC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + str r0, [sp, #0x4] + bl sub_02039438 + add r7, r0, #0x0 + ldr r0, [r5, #0x8] + add r1, r0, #0x1 + str r1, [r5, #0x8] + ldrb r6, [r0, #0x0] + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r3, r0, #0x0 + ldr r0, [r7, #0x0] + add r1, r6, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + add r2, r4, #0x0 + bl sub_021E2464 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0203CF04 +sub_0203CF04: ; 0x0203CF04 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020244A4 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203CF34 +sub_0203CF34: ; 0x0203CF34 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0202445C + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203CF64 +sub_0203CF64: ; 0x0203CF64 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02024404 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203CF94 +sub_0203CF94: ; 0x0203CF94 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020243C8 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203CFC4 +sub_0203CFC4: ; 0x0203CFC4 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0203CFC8 +sub_0203CFC8: ; 0x0203CFC8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020238F4 + ldr r1, [r5, #0x8] + str r0, [sp, #0x0] + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r6, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + cmp r6, #0x0 + bne _0203D02E + add r0, r7, #0x0 + bl sub_02024550 + add r5, #0x80 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + mov r1, #0x2 + mov r2, #0xa + bl sub_0205F2E4 + add r1, r0, #0x0 + lsl r1, r1, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_02054CC8 + b _0203D048 +_0203D02E: + add r0, r7, #0x0 + bl sub_02024518 + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_020239CC + add r1, r0, #0x0 + lsl r1, r1, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + bl sub_02054D1C +_0203D048: + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203D050 +sub_0203D050: ; 0x0203D050 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x17 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + lsl r2, r2, #0x18 + ldr r0, [r5, #0x74] + add r1, r6, #0x0 + lsr r2, r2, #0x18 + add r3, r4, #0x0 + bl sub_02046E18 + mov r0, #0x1 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_0203D0A4 +sub_0203D0A4: ; 0x0203D0A4 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x17 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + lsl r2, r2, #0x18 + ldr r0, [r5, #0x74] + add r1, r6, #0x0 + lsr r2, r2, #0x18 + add r3, r4, #0x0 + bl sub_02046E18 + mov r0, #0x1 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_0203D0F8 +sub_0203D0F8: ; 0x0203D0F8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + lsl r2, r2, #0x18 + ldr r0, [r5, #0x74] + add r1, r4, #0x0 + lsr r2, r2, #0x18 + bl sub_02046FA0 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D134 +sub_0203D134: ; 0x0203D134 + push {r3, lr} + ldr r0, [r0, #0x74] + bl sub_020470AC + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203D140 +sub_0203D140: ; 0x0203D140 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_021F4DC8 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203D150 +sub_0203D150: ; 0x0203D150 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_021F4D80 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D178 +sub_0203D178: ; 0x0203D178 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x17 + bl sub_02039438 + add r1, r0, #0x0 + ldr r0, [r4, #0x74] + bl sub_02046DB4 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203D194 +sub_0203D194: ; 0x0203D194 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_021F4E7C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203D1A4 +sub_0203D1A4: ; 0x0203D1A4 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020386B4 + ldr r1, _0203D1BC ; =sub_0203BC04 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0203D1BC: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203D1C0 +sub_0203D1C0: ; 0x0203D1C0 + push {r3-r5, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + ldr r5, [r1, #0xc] + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0202280C + cmp r0, #0x0 + beq _0203D1EC + mov r0, #0x0 + strh r0, [r4, #0x0] + b _0203D210 +_0203D1EC: + add r0, r5, #0x0 + bl sub_02022804 + cmp r0, #0x0 + bne _0203D1FC + mov r0, #0x1 + strh r0, [r4, #0x0] + b _0203D210 +_0203D1FC: + add r0, r5, #0x0 + bl sub_0202282C + cmp r0, #0x0 + beq _0203D20C + mov r0, #0x2 + strh r0, [r4, #0x0] + b _0203D210 +_0203D20C: + mov r0, #0x3 + strh r0, [r4, #0x0] +_0203D210: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203D214 +sub_0203D214: ; 0x0203D214 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_021E85FC + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D23C +sub_0203D23C: ; 0x0203D23C + push {r3, lr} + ldr r0, [r0, #0x74] + bl sub_021E3424 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203D248 +sub_0203D248: ; 0x0203D248 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0204C1A8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204BEC8 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D278 +sub_0203D278: ; 0x0203D278 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0204C1A8 + add r1, r5, #0x0 + bl sub_0204BED8 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D2A4 +sub_0203D2A4: ; 0x0203D2A4 + push {r4-r6, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0204C1A8 + add r1, r6, #0x0 + bl sub_0204BED0 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0203D2E4 +sub_0203D2E4: ; 0x0203D2E4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [r4, #0x64] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02031588 + ldr r1, _0203D310 ; =sub_0203D314 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0203D310: .word sub_0203D314 + 1 + + thumb_func_start sub_0203D314 +sub_0203D314: ; 0x0203D314 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030F20 + cmp r0, #0x2 + bge _0203D324 + mov r0, #0x1 + pop {r4, pc} +_0203D324: + ldr r0, [r4, #0x64] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_020315D8 + pop {r4, pc} + + thumb_func_start sub_0203D330 +sub_0203D330: ; 0x0203D330 + push {r3, lr} + bl sub_0203168C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203D33C +sub_0203D33C: ; 0x0203D33C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0205296C + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D36C +sub_0203D36C: ; 0x0203D36C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r1, r0, #0x0 + add r5, #0x80 + ldr r0, [r5, #0x0] + ldr r1, [r1, #0x0] + ldr r0, [r0, #0x78] + bl sub_02052C0C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D3A4 +sub_0203D3A4: ; 0x0203D3A4 + push {r4, lr} + bl sub_02038C30 + add r4, r0, #0x0 + cmp r4, #0x5 + beq _0203D3BC + cmp r4, #0x7 + beq _0203D3BC + cmp r4, #0x9 + beq _0203D3BC + cmp r4, #0x6 + bne _0203D3C2 +_0203D3BC: + bl sub_02031C54 + b _0203D3CA +_0203D3C2: + cmp r4, #0xb + bne _0203D3CA + bl sub_02031C64 +_0203D3CA: + bl sub_02031190 + cmp r0, #0x0 + bne _0203D3D8 + add r0, r4, #0x0 + bl sub_02052B74 +_0203D3D8: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0203D3DC +sub_0203D3DC: ; 0x0203D3DC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xa + bl sub_02039438 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020377AC + bl sub_020238F4 + add r5, #0x80 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + bl sub_020377AC + bl sub_02013B5C + add r5, r0, #0x0 + cmp r4, #0x0 + bne _0203D432 + ldr r0, [r7, #0x0] + bl sub_02058448 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + b _0203D434 +_0203D432: + mov r2, #0x0 +_0203D434: + str r5, [sp, #0x0] + ldr r0, [r6, #0x0] + ldr r3, [sp, #0x4] + add r1, r4, #0x0 + bl sub_02052D08 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203D448 +sub_0203D448: ; 0x0203D448 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_0208881C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203D458 +sub_0203D458: ; 0x0203D458 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x7c] + bl sub_02052F74 + bl sub_02031B50 + ldr r1, _0203D478 ; =sub_0203D47C + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0203D478: .word sub_0203D47C + 1 + + thumb_func_start sub_0203D47C +sub_0203D47C: ; 0x0203D47C + push {r3, lr} + bl sub_02030F20 + cmp r0, #0x2 + bge _0203D48A + mov r0, #0x1 + pop {r3, pc} +_0203D48A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203D490 +sub_0203D490: ; 0x0203D490 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xa + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r7, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02058448 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r2, [sp, #0x0] + ldr r0, [r0, #0x78] + ldr r3, [r7, #0x0] + bl sub_02052A10 + strh r0, [r6, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203D4E8 +sub_0203D4E8: ; 0x0203D4E8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x78] + bl sub_020527A8 + strh r0, [r4, #0x0] + ldrh r0, [r4, #0x0] + cmp r0, #0x0 + beq _0203D522 + add r5, #0x80 + ldr r0, [r5, #0x0] + mov r1, #0x13 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_02016A18 +_0203D522: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D528 +sub_0203D528: ; 0x0203D528 + push {r4-r6, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r5, [r0, #0x0] + mov r1, #0xa + add r0, r5, #0x0 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_02058448 + add r1, r0, #0x0 + ldr r0, [r5, #0x78] + bl sub_020524CC + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0203D560 +sub_0203D560: ; 0x0203D560 + push {r3-r7, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r5, [r0, #0x0] + mov r1, #0xa + add r0, r5, #0x0 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_02058448 + add r1, r0, #0x0 + ldr r0, [r5, #0x78] + add r2, r7, #0x0 + bl sub_02052544 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203D5B0 +sub_0203D5B0: ; 0x0203D5B0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + str r0, [r4, #0x64] + ldr r1, _0203D5C8 ; =sub_0203D5CC + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0203D5C8: .word sub_0203D5CC + 1 + + thumb_func_start sub_0203D5CC +sub_0203D5CC: ; 0x0203D5CC + push {r4-r6, lr} + add r6, r0, #0x0 + add r0, #0x80 + ldr r5, [r0, #0x0] + ldr r0, [r5, #0x78] + bl sub_02052604 + ldr r1, [r6, #0x64] + add r4, r0, #0x0 + lsl r1, r1, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + bl sub_020394B8 + cmp r4, #0x0 + bne _0203D5F0 + mov r0, #0x0 + pop {r4-r6, pc} +_0203D5F0: + strh r4, [r0, #0x0] + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203D5F8 +sub_0203D5F8: ; 0x0203D5F8 + push {r3, lr} + add r0, #0x80 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x34] + ldr r1, [r1, #0x7c] + bl sub_020534DC + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203D60C +sub_0203D60C: ; 0x0203D60C + push {r3, lr} + mov r0, #0x4 + bl sub_02052B74 + bl sub_02031C2C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0203D61C +sub_0203D61C: ; 0x0203D61C + push {r3, lr} + bl sub_02031C64 + bl sub_02031B50 + mov r0, #0x0 + bl sub_02052B74 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0203D630 +sub_0203D630: ; 0x0203D630 + push {r4-r6, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r4, #0x78] + add r1, r6, #0x0 + bl sub_0205265C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203D66C +sub_0203D66C: ; 0x0203D66C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + str r0, [r4, #0x64] + ldr r1, _0203D684 ; =sub_0203D688 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0203D684: .word sub_0203D688 + 1 + + thumb_func_start sub_0203D688 +sub_0203D688: ; 0x0203D688 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r1, [r5, #0x64] + add r0, #0x80 + lsl r1, r1, #0x10 + ldr r0, [r0, #0x0] + lsr r1, r1, #0x10 + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x78] + bl sub_02052608 + cmp r0, #0x1 + blo _0203D6BC + add r5, #0x80 + strh r0, [r4, #0x0] + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x78] + bl sub_02052E10 + mov r0, #0x1 + pop {r3-r5, pc} +_0203D6BC: + mov r0, #0x0 + strh r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D6C4 +sub_0203D6C4: ; 0x0203D6C4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + str r0, [r4, #0x64] + ldr r1, _0203D6DC ; =sub_0203D6E0 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0203D6DC: .word sub_0203D6E0 + 1 + + thumb_func_start sub_0203D6E0 +sub_0203D6E0: ; 0x0203D6E0 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r1, [r5, #0x64] + add r0, #0x80 + lsl r1, r1, #0x10 + ldr r0, [r0, #0x0] + lsr r1, r1, #0x10 + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x78] + bl sub_02052648 + ldr r1, _0203D724 ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #0x2 + tst r1, r2 + beq _0203D716 + add r5, #0x80 + ldr r0, [r5, #0x0] + mov r1, #0x8 + ldr r0, [r0, #0x78] + bl sub_02052718 +_0203D716: + cmp r0, #0x0 + beq _0203D720 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} +_0203D720: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0203D724: .word 0x021C48B8 + + thumb_func_start sub_0203D728 +sub_0203D728: ; 0x0203D728 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x10] + bl sub_02049EA4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203D738 +sub_0203D738: ; 0x0203D738 + push {r4-r6, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020377AC + bl sub_020238F4 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0xf + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020239BC + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_020239CC + add r1, r0, #0x0 + ldr r2, [r4, #0x0] + add r0, r6, #0x0 + bl sub_0205363C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203D774 +sub_0203D774: ; 0x0203D774 + push {r3-r7, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020377AC + bl sub_020238F4 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020239BC + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_020239CC + add r1, r0, #0x0 + add r0, r6, #0x0 + add r2, r7, #0x0 + bl sub_02053678 + strh r0, [r4, #0x0] + add r0, r5, #0x0 + bl sub_020239CC + ldrh r1, [r4, #0x0] + mov r2, #0x2 + bl sub_020536D0 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203D7DC +sub_0203D7DC: ; 0x0203D7DC + push {r3-r7, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020377AC + bl sub_020238F4 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020239BC + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_020239CC + add r1, r0, #0x0 + add r0, r6, #0x0 + add r2, r7, #0x0 + bl sub_02053678 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203D834 +sub_0203D834: ; 0x0203D834 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020377AC + bl sub_020238F4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + lsl r1, r1, #0x18 + add r0, r4, #0x0 + lsr r1, r1, #0x18 + bl sub_02023A2C + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D868 +sub_0203D868: ; 0x0203D868 + push {r3, lr} + ldr r0, [r0, #0x74] + bl sub_02048498 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203D874 +sub_0203D874: ; 0x0203D874 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + add r1, r4, #0x0 + bl sub_02034E04 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203D8A0 +sub_0203D8A0: ; 0x0203D8A0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020377AC + bl sub_020238F4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020239CC + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203D8D0 +sub_0203D8D0: ; 0x0203D8D0 + push {r3, lr} + ldr r0, [r0, #0x74] + bl sub_02046528 + ldr r0, [r0, #0xc] + bl sub_0206BB1C + bl sub_02085140 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203D8E8 +sub_0203D8E8: ; 0x0203D8E8 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0203D8EC +sub_0203D8EC: ; 0x0203D8EC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02050024 + ldr r1, _0203D900 ; =sub_0203D904 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0203D900: .word sub_0203D904 + 1 + + thumb_func_start sub_0203D904 +sub_0203D904: ; 0x0203D904 + push {r3, lr} + bl sub_02031810 + cmp r0, #0x1 + beq _0203D91A + bl sub_0202EDF8 + cmp r0, #0x1 + beq _0203D91A + mov r0, #0x1 + pop {r3, pc} +_0203D91A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203D920 +sub_0203D920: ; 0x0203D920 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02050048 + ldr r1, _0203D934 ; =sub_0203D904 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0203D934: .word sub_0203D904 + 1 + + thumb_func_start sub_0203D938 +sub_0203D938: ; 0x0203D938 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_0204FF5C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203D948 +sub_0203D948: ; 0x0203D948 + push {r3, lr} + bl sub_02038C30 + bl sub_0204F6DC + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203D958 +sub_0203D958: ; 0x0203D958 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206F158 + add r1, r6, #0x0 + bl sub_0206EE64 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0203D998 +sub_0203D998: ; 0x0203D998 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r3, r0, #0x0 + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02034B74 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203D9E8 +sub_0203D9E8: ; 0x0203D9E8 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + ldr r0, [r0, #0x34] + bl sub_02058060 + ldr r2, [sp, #0x4] + ldr r3, [sp, #0x8] + add r5, r0, #0x0 + add r1, r7, #0x0 + str r4, [sp, #0x0] + bl sub_02058E28 + add r0, r5, #0x0 + bl sub_02059D1C + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0203DA78 +sub_0203DA78: ; 0x0203DA78 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r2, r0, #0x0 + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + bl sub_02034BDC + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203DAB0 +sub_0203DAB0: ; 0x0203DAB0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r2, r0, #0x0 + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + bl sub_02034BAC + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203DAE8 +sub_0203DAE8: ; 0x0203DAE8 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r3, r0, #0x0 + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02034C0C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203DB38 +sub_0203DB38: ; 0x0203DB38 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r3, r0, #0x0 + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02034C34 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203DB88 +sub_0203DB88: ; 0x0203DB88 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + ldr r0, [r0, #0x34] + bl sub_02058060 + add r5, r0, #0x0 + bne _0203DBC6 + bl sub_02020C2C +_0203DBC6: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_021F1EC0 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203DBD4 +sub_0203DBD4: ; 0x0203DBD4 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xc + bl sub_02039438 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + ldr r1, [r5, #0x0] + cmp r1, #0x0 + beq _0203DBFC + strh r0, [r1, #0x0] +_0203DBFC: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203DC00 +sub_0203DC00: ; 0x0203DC00 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + lsl r1, r4, #0x5 + ldr r3, [r5, #0x8] + add r2, r0, #0x0 + add r0, r3, #0x1 + str r0, [r5, #0x8] + add r5, #0x80 + lsl r4, r6, #0x5 + ldrb r3, [r3, #0x0] + ldr r0, [r5, #0x0] + add r1, r7, r1 + add r2, r2, r4 + bl sub_021DAE40 + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203DC58 +sub_0203DC58: ; 0x0203DC58 + push {r3, lr} + ldr r2, [r0, #0x8] + add r1, r2, #0x1 + str r1, [r0, #0x8] + add r0, #0x80 + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + bl sub_021DAF78 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DC70 +sub_0203DC70: ; 0x0203DC70 + push {r3, lr} + ldr r2, [r0, #0x8] + add r1, r2, #0x1 + str r1, [r0, #0x8] + add r0, #0x80 + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + bl sub_021DAF98 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DC88 +sub_0203DC88: ; 0x0203DC88 + push {r3, lr} + ldr r2, [r0, #0x8] + add r1, r2, #0x1 + str r1, [r0, #0x8] + add r0, #0x80 + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + bl sub_021DAED4 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DCA0 +sub_0203DCA0: ; 0x0203DCA0 + push {r3, lr} + ldr r2, [r0, #0x8] + add r1, r2, #0x1 + str r1, [r0, #0x8] + add r0, #0x80 + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + bl sub_021DAF28 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DCB8 +sub_0203DCB8: ; 0x0203DCB8 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02064CA8 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DCC8 +sub_0203DCC8: ; 0x0203DCC8 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02241230 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DCD8 +sub_0203DCD8: ; 0x0203DCD8 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02064CC8 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DCE8 +sub_0203DCE8: ; 0x0203DCE8 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02241914 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DCF8 +sub_0203DCF8: ; 0x0203DCF8 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02064D10 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DD08 +sub_0203DD08: ; 0x0203DD08 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02064D4C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DD18 +sub_0203DD18: ; 0x0203DD18 + push {r3, lr} + add r1, r0, #0x0 + add r1, #0x80 + ldr r2, [r0, #0x8] + ldr r3, [r1, #0x0] + add r1, r2, #0x1 + str r1, [r0, #0x8] + ldrb r1, [r2, #0x0] + add r0, r3, #0x0 + bl sub_02064D88 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DD34 +sub_0203DD34: ; 0x0203DD34 + push {r3, lr} + add r1, r0, #0x0 + add r1, #0x80 + ldr r2, [r0, #0x8] + ldr r3, [r1, #0x0] + add r1, r2, #0x1 + str r1, [r0, #0x8] + ldrb r1, [r2, #0x0] + add r0, r3, #0x0 + bl sub_02242A38 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DD50 +sub_0203DD50: ; 0x0203DD50 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020388B4 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203DD60 +sub_0203DD60: ; 0x0203DD60 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xa + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + str r0, [r5, #0x64] + ldr r0, [r6, #0x0] + bl sub_02058448 + add r1, r5, #0x0 + add r1, #0x80 + add r2, r0, #0x0 + ldr r1, [r1, #0x0] + add r0, r7, #0x0 + bl sub_0224CA54 + str r0, [r4, #0x0] + ldr r1, _0203DDBC ; =sub_0203DDC0 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_0203DDBC: .word sub_0203DDC0 + 1 + + thumb_func_start sub_0203DDC0 +sub_0203DDC0: ; 0x0203DDC0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + ldr r1, [r5, #0x64] + add r0, #0x80 + lsl r1, r1, #0x10 + ldr r0, [r0, #0x0] + lsr r1, r1, #0x10 + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0224CA2C + strh r0, [r5, #0x0] + ldrh r1, [r5, #0x0] + ldr r0, _0203DDFC ; =0x0000FFFE + cmp r1, r0 + beq _0203DDF6 + mov r0, #0x1 + pop {r3-r5, pc} +_0203DDF6: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0203DDFC: .word 0x0000FFFE + + thumb_func_start sub_0203DE00 +sub_0203DE00: ; 0x0203DE00 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x3 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + bl sub_0224CA58 + strb r0, [r4, #0x0] + ldr r1, _0203DE34 ; =sub_0203DE38 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0203DE34: .word sub_0203DE38 + 1 + + thumb_func_start sub_0203DE38 +sub_0203DE38: ; 0x0203DE38 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x3 + bl sub_02039438 + ldrb r0, [r0, #0x0] + bl sub_020546C8 + pop {r3, pc} +_0203DE4C: + .byte 0x08, 0xB5, 0x0E, 0xF2 + .byte 0x21, 0xFE, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x04, 0x1C, 0xA2, 0x68, 0x51, 0x1C + .byte 0xA1, 0x60, 0x15, 0x78, 0xFA, 0xF7, 0xE4, 0xFE, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xFB, 0xF7 + .byte 0x3F, 0xFB, 0x01, 0x1C, 0x28, 0x1C, 0x0E, 0xF2, 0x13, 0xFE, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00 + .byte 0x38, 0xB5, 0x04, 0x1C, 0xA2, 0x68, 0x51, 0x1C, 0xA1, 0x60, 0x15, 0x78, 0xFA, 0xF7, 0xD0, 0xFE + .byte 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xFB, 0xF7, 0x2B, 0xFB, 0x01, 0x1C, 0x28, 0x1C, 0x0E, 0xF2 + .byte 0x09, 0xFE, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0x82, 0xB0, 0x00, 0x23, 0x00, 0x93 + .byte 0x01, 0x93, 0x01, 0x21, 0x40, 0x6F, 0x0A, 0x1C, 0x04, 0xF2, 0x92, 0xFE, 0x01, 0x20, 0x02, 0xB0 + .byte 0x08, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x04, 0x1C, 0x21, 0x1C, 0x80, 0x31, 0x0D, 0x68, 0xFA, 0xF7 + .byte 0xAF, 0xFE, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xFB, 0xF7, 0x0A, 0xFB, 0x01, 0x1C, 0x68, 0x6B + .byte 0x1A, 0xF0, 0xBE, 0xF8, 0x04, 0x1C, 0x01, 0xD1, 0xE2, 0xF7, 0xA0, 0xFE, 0x20, 0x1C, 0x00, 0x21 + .byte 0x1A, 0xF0, 0xD4, 0xFC, 0x00, 0x20, 0x38, 0xBD, 0x38, 0xB5, 0x04, 0x1C, 0x21, 0x1C, 0x80, 0x31 + .byte 0x0D, 0x68, 0xFA, 0xF7, 0x95, 0xFE, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xFB, 0xF7, 0xF0, 0xFA + .byte 0x01, 0x1C, 0x68, 0x6B, 0x1A, 0xF0, 0xA4, 0xF8, 0x04, 0x1C, 0x01, 0xD1, 0xE2, 0xF7, 0x86, 0xFE + .byte 0x20, 0x1C, 0x01, 0x21, 0x1A, 0xF0, 0xBA, 0xFC, 0x00, 0x20, 0x38, 0xBD, 0x08, 0xB5, 0x40, 0x6F + .byte 0x28, 0xF0, 0x72, 0xFC, 0x01, 0x20, 0x08, 0xBD, 0x38, 0xB5, 0x05, 0x1C, 0x29, 0x1C, 0x80, 0x31 + .byte 0x0C, 0x68, 0xFA, 0xF7, 0x75, 0xFE, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xFB, 0xF7, 0xB4, 0xFA + .byte 0x05, 0x1C, 0xE0, 0x68, 0xE7, 0xF7, 0x70, 0xFC, 0x00, 0x21, 0xE7, 0xF7, 0x9F, 0xFC, 0x28, 0x80 + .byte 0x00, 0x20, 0x38, 0xBD, 0x10, 0xB5, 0x04, 0x1C, 0xFA, 0xF7, 0x62, 0xFE, 0x01, 0x1C, 0x20, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0xBC, 0xFA, 0x01, 0x1C, 0x60, 0x6F, 0x25, 0xF0, 0x68, 0xFB + .byte 0x01, 0x20, 0x10, 0xBD, 0x38, 0xB5, 0x04, 0x1C, 0xFA, 0xF7, 0x52, 0xFE, 0x01, 0x1C, 0x20, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0x90, 0xFA, 0x80, 0x34, 0x05, 0x1C, 0x20, 0x68, 0x0D, 0xF0 + .byte 0x81, 0xF9, 0x28, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x38, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0x40, 0xFE + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0x7E, 0xFA, 0x04, 0x1C, 0x28, 0x1C + .byte 0xFA, 0xF7, 0x36, 0xFE, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xFB, 0xF7, 0x91, 0xFA, 0x05, 0x1C + .byte 0xDD, 0xF7, 0x0C, 0xFD, 0x29, 0x1C, 0xAD, 0xF0, 0x54, 0xEE, 0x21, 0x80, 0x01, 0x20, 0x38, 0xBD + .byte 0x38, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0x24, 0xFE, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFB, 0xF7, 0x62, 0xFA, 0x04, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x1A, 0xFE, 0x80, 0x35, 0x01, 0x1C + .byte 0x28, 0x68, 0xFB, 0xF7, 0x75, 0xFA, 0x05, 0x1C, 0xDD, 0xF7, 0xF0, 0xFC, 0x29, 0x1C, 0xAD, 0xF0 + .byte 0x38, 0xEE, 0x21, 0x80, 0x01, 0x20, 0x38, 0xBD, 0x70, 0xB5, 0x05, 0x1C, 0x29, 0x1C, 0x80, 0x31 + .byte 0x0C, 0x68, 0xFA, 0xF7, 0x05, 0xFE, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7 + .byte 0x43, 0xFA, 0x06, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xFB, 0xFD, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68 + .byte 0xFB, 0xF7, 0x56, 0xFA, 0x01, 0x1C, 0x20, 0x1C, 0xB5, 0xF1, 0xE6, 0xFC, 0x30, 0x80, 0x00, 0x20 + .byte 0x70, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x04, 0x1C, 0x21, 0x1C, 0x80, 0x31, 0x0D, 0x68, 0xFA, 0xF7 + .byte 0xE7, 0xFD, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xFB, 0xF7, 0x42, 0xFA, 0x01, 0x1C, 0x28, 0x1C + .byte 0xB5, 0xF1, 0x20, 0xFD, 0x00, 0x20, 0x38, 0xBD, 0xF8, 0xB5, 0x05, 0x1C, 0x29, 0x1C, 0x80, 0x31 + .byte 0x0C, 0x68, 0xFA, 0xF7, 0xD5, 0xFD, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7 + .byte 0x2F, 0xFA, 0x06, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xCB, 0xFD, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xFB, 0xF7, 0x25, 0xFA, 0x07, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xC1, 0xFD, 0x80, 0x35 + .byte 0x01, 0x1C, 0x28, 0x68, 0xFB, 0xF7, 0x1C, 0xFA, 0x31, 0x06, 0x3A, 0x06, 0x03, 0x1C, 0x20, 0x1C + .byte 0x09, 0x0E, 0x12, 0x0E, 0xB5, 0xF1, 0x5A, 0xFD, 0x00, 0x20, 0xF8, 0xBD, 0xF8, 0xB5, 0x05, 0x1C + .byte 0x29, 0x1C, 0x80, 0x31, 0x0C, 0x68, 0xFA, 0xF7, 0xAB, 0xFD, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xFB, 0xF7, 0x05, 0xFA, 0x06, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xA1, 0xFD, 0x01, 0x1C + .byte 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0xFB, 0xF9, 0x07, 0x1C, 0x28, 0x1C, 0xFA, 0xF7 + .byte 0x97, 0xFD, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xFB, 0xF7, 0xF2, 0xF9, 0x31, 0x06, 0x3A, 0x06 + .byte 0x03, 0x1C, 0x20, 0x1C, 0x09, 0x0E, 0x12, 0x0E, 0xB5, 0xF1, 0x18, 0xFD, 0x00, 0x20, 0xF8, 0xBD + .byte 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0x08, 0xF0, 0xC0, 0xF8, 0x82, 0x21, 0x09, 0x02 + .byte 0x21, 0xF0, 0x62, 0xF9, 0x00, 0x20, 0x08, 0xBD, 0x10, 0xB5, 0x80, 0x30, 0x04, 0x68, 0xE0, 0x68 + .byte 0x08, 0xF0, 0xB4, 0xF8, 0x01, 0x21, 0x21, 0xF0, 0xC5, 0xF8, 0xE0, 0x68, 0xEA, 0xF7, 0x2A, 0xFC + .byte 0x01, 0x21, 0xEA, 0xF7, 0x2D, 0xFC, 0x21, 0x1C, 0x98, 0x31, 0x08, 0x60, 0x20, 0x1C, 0x0A, 0xF0 + .byte 0x7B, 0xFD, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x04, 0x1C, 0xFA, 0xF7, 0x60, 0xFD + .byte 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0xBA, 0xF9, 0x07, 0x1C, 0x20, 0x1C + .byte 0xFA, 0xF7, 0x56, 0xFD, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0xB0, 0xF9 + .byte 0x00, 0x90, 0x20, 0x1C, 0xFA, 0xF7, 0x4C, 0xFD, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFB, 0xF7, 0xA6, 0xF9, 0x20, 0x1C, 0xFA, 0xF7, 0x43, 0xFD, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xFB, 0xF7, 0x9D, 0xF9, 0x20, 0x1C, 0xFA, 0xF7, 0x3A, 0xFD, 0x01, 0x1C, 0x20, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0x94, 0xF9, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x14, 0x21 + .byte 0xFB, 0xF7, 0x32, 0xF9, 0x05, 0x1C, 0x38, 0x1C, 0x10, 0x38, 0x0A, 0x28, 0x2D, 0xD8, 0x00, 0x18 + .byte 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x14, 0x00, 0x20, 0x00, 0x2C, 0x00 + .byte 0x3A, 0x00, 0x4E, 0x00, 0x3A, 0x00, 0x3A, 0x00, 0x3A, 0x00, 0x3A, 0x00, 0x3A, 0x00, 0x3A, 0x00 + .byte 0x04, 0x20, 0x01, 0x26, 0xEA, 0xF7, 0x8C, 0xFF, 0x28, 0x60, 0x18, 0xE0, 0x04, 0x20, 0x01, 0x26 + .byte 0xEA, 0xF7, 0x8C, 0xFF, 0x28, 0x60, 0x12, 0xE0, 0x00, 0x98, 0x04, 0x21, 0x01, 0x26, 0xEA, 0xF7 + .byte 0x8B, 0xFF, 0x28, 0x60, 0x0B, 0xE0, 0x13, 0x3F, 0x38, 0x06, 0x00, 0x99, 0x00, 0x0E, 0x04, 0x22 + .byte 0x01, 0x26, 0xEA, 0xF7, 0x8B, 0xFF, 0x28, 0x60, 0x01, 0xE0, 0x01, 0x20, 0xF8, 0xBD, 0x80, 0x34 + .byte 0x20, 0x68, 0x29, 0x68, 0x98, 0x30, 0x00, 0x68, 0x32, 0x1C, 0xEA, 0xF7, 0x43, 0xFC, 0x01, 0x20 + .byte 0xF8, 0xBD, 0x00, 0x00, 0x00, 0x20, 0x70, 0x47, 0x70, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0xE8, 0xFC + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0x42, 0xF9, 0x04, 0x1C, 0x28, 0x1C + .byte 0xFA, 0xF7, 0xDE, 0xFC, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0x38, 0xF9 + .byte 0x80, 0x35, 0x06, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0xE9, 0xF7, 0xCC, 0xFD, 0xE8, 0xF7, 0xFE, 0xFE + .byte 0x21, 0x1C, 0x32, 0x1C, 0xE8, 0xF7, 0x86, 0xFF, 0x00, 0x20, 0x70, 0xBD, 0xF8, 0xB5, 0x05, 0x1C + .byte 0xFA, 0xF7, 0xC6, 0xFC, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0x20, 0xF9 + .byte 0x06, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xBC, 0xFC, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFB, 0xF7, 0x16, 0xF9, 0x07, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xB2, 0xFC, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0xF0, 0xF8, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68 + .byte 0xE9, 0xF7, 0xA0, 0xFD, 0xE8, 0xF7, 0xD2, 0xFE, 0x31, 0x1C, 0x3A, 0x1C, 0xE8, 0xF7, 0xF4, 0xFE + .byte 0x20, 0x80, 0x00, 0x20, 0xF8, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0x98, 0xFC + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0xF2, 0xF8, 0x07, 0x1C, 0x28, 0x1C + .byte 0xFA, 0xF7, 0x8E, 0xFC, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0xE8, 0xF8 + .byte 0x06, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x84, 0xFC, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFB, 0xF7, 0xC2, 0xF8, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0xE9, 0xF7, 0x72, 0xFD + .byte 0xE8, 0xF7, 0xA4, 0xFE, 0x39, 0x1C, 0xE8, 0xF7, 0xE5, 0xFE, 0x86, 0x42, 0x01, 0xD8, 0x01, 0x20 + .byte 0x00, 0xE0, 0x00, 0x20, 0x20, 0x80, 0x00, 0x20, 0xF8, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C + .byte 0xFA, 0xF7, 0x66, 0xFC, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0xC0, 0xF8 + .byte 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0xE9, 0xF7, 0x54, 0xFD, 0xE8, 0xF7, 0x86, 0xFE + .byte 0x21, 0x1C, 0xE8, 0xF7, 0x6F, 0xFF, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C + .byte 0xFA, 0xF7, 0x4E, 0xFC, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFB, 0xF7, 0xA8, 0xF8 + .byte 0x06, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x44, 0xFC, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFB, 0xF7, 0x82, 0xF8, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0xE9, 0xF7, 0x32, 0xFD + .byte 0xE8, 0xF7, 0x64, 0xFE, 0x31, 0x1C, 0xE8, 0xF7, 0x9B, 0xFE, 0x20, 0x80, 0x00, 0x20, 0x70, 0xBD + .byte 0x38, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xE6, 0xF7, 0xE1, 0xFC, 0x05, 0x1C + .byte 0x20, 0x1C, 0xFA, 0xF7, 0x25, 0xFC, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xFB, 0xF7, 0x64, 0xF8 + .byte 0x04, 0x1C, 0x00, 0x20, 0x20, 0x80, 0x28, 0x1C, 0xE6, 0xF7, 0x84, 0xF8, 0x01, 0x28, 0x01, 0xD1 + .byte 0x01, 0x20, 0x20, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x38, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xC0, 0x68, 0xE6, 0xF7, 0xC5, 0xFC, 0x05, 0x1C, 0x20, 0x1C, 0xFA, 0xF7, 0x09, 0xFC, 0x80, 0x34 + .byte 0x01, 0x1C, 0x20, 0x68, 0xFB, 0xF7, 0x48, 0xF8, 0x04, 0x1C, 0x00, 0x20, 0x20, 0x80, 0x28, 0x1C + .byte 0xE6, 0xF7, 0x5C, 0xF8, 0x01, 0x28, 0x01, 0xD1, 0x01, 0x20, 0x20, 0x80, 0x00, 0x20, 0x38, 0xBD + .byte 0x38, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x13, 0x21, 0xFA, 0xF7, 0xF5, 0xFF, 0x04, 0x1C + .byte 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x20, 0x21, 0x00, 0x22, 0xFA, 0xF7, 0x4B, 0xFB, 0x20, 0x60 + .byte 0x02, 0x49, 0x28, 0x1C, 0xFA, 0xF7, 0x7A, 0xFB, 0x01, 0x20, 0x38, 0xBD, 0x91, 0xBB, 0x03, 0x02 + .byte 0x38, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x13, 0x21, 0xFA, 0xF7, 0xDD, 0xFF, 0x04, 0x1C + .byte 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x20, 0x21, 0x01, 0x22, 0xFA, 0xF7, 0x33, 0xFB, 0x20, 0x60 + .byte 0x02, 0x49, 0x28, 0x1C, 0xFA, 0xF7, 0x62, 0xFB, 0x01, 0x20, 0x38, 0xBD, 0x91, 0xBB, 0x03, 0x02 + .byte 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0x0E, 0xF2, 0x82, 0xFB, 0x00, 0x20, 0x08, 0xBD + .byte 0x38, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0xBC, 0xFB, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFA, 0xF7, 0xFA, 0xFF, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0x0E, 0xF2, 0xAA, 0xFB + .byte 0x20, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x10, 0xB5, 0x04, 0x1C, 0xFA, 0xF7, 0xA8, 0xFB + .byte 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xFA, 0xF7, 0xE7, 0xFF, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00 + .byte 0x38, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0x9C, 0xFB, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68 + .byte 0xEB, 0xF7, 0x62, 0xFD, 0x21, 0x1C, 0xEB, 0xF7, 0xEF, 0xFD, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00 + .byte 0xF8, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0x8C, 0xFB, 0x07, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x88, 0xFB + .byte 0x04, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x84, 0xFB, 0x06, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0x21, 0x1C, 0xFA, 0xF7, 0xC1, 0xFF, 0x04, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x31, 0x1C + .byte 0xFA, 0xF7, 0xBA, 0xFF, 0x80, 0x35, 0x06, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0xEB, 0xF7, 0x3C, 0xFD + .byte 0x39, 0x1C, 0xEB, 0xF7, 0xFD, 0xFD, 0x03, 0x49, 0x01, 0x40, 0x09, 0x0C, 0x21, 0x80, 0x30, 0x80 + .byte 0x00, 0x20, 0xF8, 0xBD, 0x00, 0x00, 0xFF, 0xFF, 0x70, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0x60, 0xFB + .byte 0x06, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x5C, 0xFB, 0x04, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x58, 0xFB + .byte 0xA9, 0x68, 0x4A, 0x1C, 0xAA, 0x60, 0x22, 0x04, 0x14, 0x1C, 0x04, 0x43, 0x08, 0x78, 0x00, 0x28 + .byte 0x04, 0xD0, 0x01, 0x28, 0x0C, 0xD0, 0x02, 0x28, 0x14, 0xD0, 0x1C, 0xE0, 0x80, 0x35, 0x28, 0x68 + .byte 0xC0, 0x68, 0xEB, 0xF7, 0x11, 0xFD, 0x31, 0x1C, 0x22, 0x1C, 0xEB, 0xF7, 0xB7, 0xFD, 0x12, 0xE0 + .byte 0x80, 0x35, 0x28, 0x68, 0xC0, 0x68, 0xEB, 0xF7, 0x07, 0xFD, 0x31, 0x1C, 0x22, 0x1C, 0xEB, 0xF7 + .byte 0x5D, 0xFD, 0x08, 0xE0, 0x80, 0x35, 0x28, 0x68, 0xC0, 0x68, 0xEB, 0xF7, 0xFD, 0xFC, 0x31, 0x1C + .byte 0x22, 0x1C, 0xEB, 0xF7, 0x69, 0xFD, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x82, 0xB0 + .byte 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xF6, 0xF7, 0x22, 0xFC, 0x07, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0x07, 0xF0, 0x59, 0xFE, 0x00, 0x90, 0x28, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xC0, 0x68, 0xE3, 0xF7, 0x7E, 0xFF, 0xA9, 0x68, 0x01, 0x90, 0x48, 0x1C, 0xA8, 0x60 + .byte 0x0C, 0x78, 0x38, 0x1C, 0xF6, 0xF7, 0x06, 0xFC, 0x06, 0x1C, 0x38, 0x1C, 0xF6, 0xF7, 0x04, 0xFC + .byte 0x07, 0x1C, 0x00, 0x2C, 0x02, 0xD0, 0x01, 0x2C, 0x0B, 0xD0, 0x20, 0xE0, 0x00, 0x98, 0x20, 0xF0 + .byte 0xE1, 0xFD, 0x01, 0x98, 0x22, 0xF0, 0xCC, 0xFC, 0x1E, 0x20, 0x30, 0x80, 0x00, 0x20, 0x38, 0x80 + .byte 0x15, 0xE0, 0x00, 0x98, 0x20, 0xF0, 0xDE, 0xFD, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x22, 0xF0 + .byte 0x91, 0xFF, 0x04, 0x20, 0xEA, 0xF7, 0x6A, 0xFD, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0x01, 0x22 + .byte 0x98, 0x30, 0x00, 0x68, 0xEA, 0xF7, 0x36, 0xFA, 0x00, 0x20, 0x30, 0x80, 0x38, 0x80, 0x00, 0x20 + .byte 0x02, 0xB0, 0xF8, 0xBD, 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0x21, 0xF0, 0x6F, 0xFD, 0x01, 0x20 + .byte 0x08, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C, 0xAA, 0x68, 0x51, 0x1C, 0xA9, 0x60, 0x14, 0x78 + .byte 0xFA, 0xF7, 0xCE, 0xFA, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0x0C, 0xFF + .byte 0x80, 0x35, 0x06, 0x1C, 0x28, 0x68, 0x21, 0x1C, 0x07, 0xF2, 0x1E, 0xF8, 0x30, 0x80, 0x01, 0x20 + .byte 0x70, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0x26, 0xF0, 0xB1, 0xFB, 0x00, 0x20 + .byte 0x08, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0xB2, 0xFA, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0xF0, 0xFE, 0x04, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xA8, 0xFA + .byte 0x00, 0x21, 0x06, 0x1C, 0x41, 0x20, 0x0A, 0x1C, 0xC5, 0xF7, 0x28, 0xFE, 0x80, 0x35, 0x21, 0x88 + .byte 0x28, 0x68, 0x32, 0x1C, 0x06, 0xF2, 0xB2, 0xFD, 0x01, 0x20, 0x70, 0xBD, 0x70, 0xB5, 0x05, 0x1C + .byte 0xFA, 0xF7, 0x96, 0xFA, 0x06, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x92, 0xFA, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0xD0, 0xFE, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0x31, 0x1C + .byte 0x06, 0xF2, 0x0E, 0xFE, 0x20, 0x80, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0x82, 0x68 + .byte 0x51, 0x1C, 0x81, 0x60, 0x80, 0x30, 0x00, 0x68, 0x11, 0x78, 0x80, 0x6B, 0x16, 0xF0, 0x10, 0xFF + .byte 0x01, 0x20, 0x08, 0xBD, 0x38, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0x07, 0xF0 + .byte 0xAD, 0xFD, 0x04, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x6B, 0xFA, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68 + .byte 0xFA, 0xF7, 0xAA, 0xFE, 0x05, 0x1C, 0x20, 0x1C, 0x20, 0xF0, 0x8E, 0xFF, 0x28, 0x80, 0x00, 0x20 + .byte 0x38, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xE6, 0xF7 + .byte 0x0F, 0xFB, 0x07, 0x1C, 0x20, 0x1C, 0xFA, 0xF7, 0x53, 0xFA, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68 + .byte 0xFA, 0xF7, 0x92, 0xFE, 0x00, 0x90, 0x38, 0x1C, 0xE5, 0xF7, 0x84, 0xFE, 0x04, 0x1C, 0xDD, 0xF7 + .byte 0x25, 0xF9, 0x21, 0x1C, 0xAD, 0xF0, 0x6C, 0xEA, 0x08, 0x04, 0x06, 0x0C, 0x00, 0x98, 0x19, 0x21 + .byte 0x01, 0x80, 0x01, 0x24, 0x00, 0x25, 0x38, 0x1C, 0x21, 0x1C, 0xE5, 0xF7, 0x19, 0xFF, 0x01, 0x28 + .byte 0x0C, 0xD1, 0x20, 0x1C, 0x2B, 0xF0, 0xBC, 0xF9, 0x00, 0x28, 0x07, 0xD0, 0xB5, 0x42, 0x02, 0xD1 + .byte 0x00, 0x98, 0x04, 0x80, 0x08, 0xE0, 0x68, 0x1C, 0x00, 0x04, 0x05, 0x0C, 0x60, 0x1C, 0x00, 0x04 + .byte 0x04, 0x0C, 0x02, 0x48, 0x84, 0x42, 0xE6, 0xD9, 0x00, 0x20, 0xF8, 0xBD, 0xED, 0x01, 0x00, 0x00 + .byte 0x38, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0x1C, 0xFA, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFA, 0xF7, 0x76, 0xFE, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0x07, 0xF0, 0x4E, 0xFD + .byte 0x21, 0x1C, 0x20, 0xF0, 0xC7, 0xFE, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C + .byte 0xFA, 0xF7, 0x06, 0xFA, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0x44, 0xFE + .byte 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0x07, 0xF0, 0x38, 0xFD, 0x20, 0xF0, 0xAA, 0xFE + .byte 0x20, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68 + .byte 0xEC, 0xF7, 0xD6, 0xF8, 0x00, 0x20, 0x08, 0xBD, 0x08, 0xB5, 0x82, 0x68, 0x51, 0x1C, 0x81, 0x60 + .byte 0x80, 0x30, 0x00, 0x68, 0x11, 0x78, 0xC0, 0x68, 0x21, 0xF0, 0x12, 0xFE, 0x00, 0x20, 0x08, 0xBD + .byte 0x38, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x14, 0x21, 0xFA, 0xF7, 0xDD, 0xFD, 0xA9, 0x68 + .byte 0x04, 0x1C, 0x48, 0x1C, 0xA8, 0x60, 0x09, 0x78, 0x0B, 0x20, 0x09, 0xF2, 0xDF, 0xFF, 0x20, 0x60 + .byte 0x00, 0x20, 0x38, 0xBD, 0x38, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x14, 0x21, 0xFA, 0xF7 + .byte 0xCB, 0xFD, 0x04, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xC3, 0xF9, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68 + .byte 0xFA, 0xF7, 0x02, 0xFE, 0x05, 0x1C, 0x20, 0x68, 0x0A, 0xF2, 0x18, 0xF8, 0x28, 0x80, 0x00, 0x20 + .byte 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x14, 0x21, 0xFA, 0xF7 + .byte 0xB3, 0xFD, 0x04, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xAB, 0xF9, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68 + .byte 0xFA, 0xF7, 0xEA, 0xFD, 0x05, 0x1C, 0x20, 0x68, 0x0A, 0xF2, 0x04, 0xF8, 0x28, 0x80, 0x00, 0x20 + .byte 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x14, 0x21, 0xFA, 0xF7 + .byte 0x9B, 0xFD, 0x04, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x93, 0xF9, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xFA, 0xF7, 0xED, 0xFD, 0x02, 0x1C, 0x68, 0x6F, 0x21, 0x68, 0x0B, 0x23, 0x21, 0xF0 + .byte 0x37, 0xFF, 0x01, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0x14, 0x21 + .byte 0xFA, 0xF7, 0x82, 0xFD, 0x00, 0x68, 0x09, 0xF2, 0xC9, 0xFF, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x00 + .byte 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xE6, 0xF7, 0x2A, 0xFA, 0xE6, 0xF7, 0xFE, 0xF9 + .byte 0x00, 0x20, 0x08, 0xBD, 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xE6, 0xF7, 0x20, 0xFA + .byte 0xE6, 0xF7, 0xBE, 0xF9, 0x00, 0x20, 0x08, 0xBD, 0x70, 0xB5, 0x05, 0x1C, 0xAA, 0x68, 0x51, 0x1C + .byte 0xA9, 0x60, 0x14, 0x78, 0xFA, 0xF7, 0x5C, 0xF9, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFA, 0xF7, 0x9A, 0xFD, 0x06, 0x1C, 0x00, 0x20, 0x30, 0x80, 0x01, 0x2C, 0x0F, 0xD1, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xE6, 0xF7, 0x03, 0xFA, 0xE6, 0xF7, 0x73, 0xF9, 0x80, 0x35 + .byte 0x28, 0x68, 0xC0, 0x68, 0xE4, 0xF7, 0xA6, 0xFF, 0xE5, 0xF7, 0x72, 0xF8, 0x0C, 0xE0, 0x02, 0x2C + .byte 0x08, 0xD1, 0x80, 0x35, 0x28, 0x68, 0xC0, 0x68, 0xE6, 0xF7, 0xF2, 0xF9, 0xE6, 0xF7, 0x72, 0xF9 + .byte 0x30, 0x80, 0x01, 0xE0, 0xE2, 0xF7, 0x32, 0xF9, 0x00, 0x20, 0x70, 0xBD, 0xF0, 0xB5, 0x83, 0xB0 + .byte 0x05, 0x1C, 0xFA, 0xF7, 0x2D, 0xF9, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7 + .byte 0x6B, 0xFD, 0x00, 0x90, 0x28, 0x1C, 0xFA, 0xF7, 0x23, 0xF9, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xFA, 0xF7, 0x7D, 0xFD, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0x2D, 0xF0 + .byte 0x8D, 0xF8, 0x21, 0x1C, 0x2C, 0xF0, 0xD4, 0xFF, 0x05, 0x1C, 0x0D, 0x21, 0x00, 0x22, 0x28, 0xF0 + .byte 0xD5, 0xFB, 0x04, 0x1C, 0x28, 0x1C, 0x0E, 0x21, 0x00, 0x22, 0x28, 0xF0, 0xCF, 0xFB, 0x06, 0x1C + .byte 0x28, 0x1C, 0x0F, 0x21, 0x00, 0x22, 0x28, 0xF0, 0xC9, 0xFB, 0x07, 0x1C, 0x28, 0x1C, 0x10, 0x21 + .byte 0x00, 0x22, 0x28, 0xF0, 0xC3, 0xFB, 0x01, 0x90, 0x28, 0x1C, 0x11, 0x21, 0x00, 0x22, 0x28, 0xF0 + .byte 0xBD, 0xFB, 0x02, 0x90, 0x28, 0x1C, 0x12, 0x21, 0x00, 0x22, 0x28, 0xF0, 0xB7, 0xFB, 0xA1, 0x19 + .byte 0x7A, 0x18, 0x01, 0x99, 0x8A, 0x18, 0x02, 0x99, 0x89, 0x18, 0x41, 0x18, 0x00, 0x98, 0x01, 0x80 + .byte 0x00, 0x20, 0x03, 0xB0, 0xF0, 0xBD, 0x00, 0x00, 0x10, 0xB5, 0x84, 0xB0, 0x04, 0x1C, 0xFA, 0xF7 + .byte 0xDF, 0xF8, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xFA, 0xF7, 0x1E, 0xFD, 0x04, 0x1C, 0x00, 0xA8 + .byte 0xD3, 0xF7, 0x18, 0xFE, 0x03, 0x98, 0x20, 0x80, 0x00, 0x20, 0x04, 0xB0, 0x10, 0xBD, 0x00, 0x00 + .byte 0x10, 0xB5, 0x04, 0x1C, 0xFA, 0xF7, 0xCC, 0xF8, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFA, 0xF7, 0x0A, 0xFD, 0x01, 0x1C, 0x60, 0x6F, 0x02, 0xF2, 0xA4, 0xFB, 0x01, 0x20, 0x10, 0xBD + .byte 0xF8, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0xBC, 0xF8, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFA, 0xF7, 0xFA, 0xFC, 0x04, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xB2, 0xF8, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0xF0, 0xFC, 0x06, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0xA8, 0xF8 + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0x02, 0xFD, 0x80, 0x35, 0x07, 0x1C + .byte 0x28, 0x68, 0xC0, 0x68, 0x2D, 0xF0, 0x12, 0xF8, 0x39, 0x1C, 0x2C, 0xF0, 0x59, 0xFF, 0x05, 0x21 + .byte 0x00, 0x22, 0x28, 0xF0, 0x5B, 0xFB, 0x00, 0x04, 0x05, 0x0C, 0x28, 0x1C, 0xB7, 0xF1, 0x6C, 0xFB + .byte 0x20, 0x80, 0x28, 0x1C, 0xB7, 0xF1, 0x62, 0xFB, 0x30, 0x80, 0x00, 0x20, 0xF8, 0xBD, 0x00, 0x00 + .byte 0x10, 0xB5, 0x04, 0x1C, 0xFA, 0xF7, 0x84, 0xF8, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFA, 0xF7, 0xDE, 0xFC, 0x01, 0x1C, 0x80, 0x34, 0x09, 0x06, 0x20, 0x68, 0x09, 0x0E, 0x0D, 0xF2 + .byte 0x9D, 0xFB, 0x01, 0x20, 0x10, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0xFA, 0xF7, 0x70, 0xF8 + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0xCA, 0xFC, 0x04, 0x1C, 0x28, 0x1C + .byte 0xFA, 0xF7, 0x66, 0xF8, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0xC0, 0xFC + .byte 0x02, 0x1C, 0x80, 0x35, 0x21, 0x06, 0x12, 0x06, 0x28, 0x68, 0x09, 0x0E, 0x12, 0x0E, 0x0D, 0xF2 + .byte 0xCF, 0xFC, 0x01, 0x20, 0x38, 0xBD, 0x00, 0x00, 0xF0, 0xB5, 0x83, 0xB0, 0x05, 0x1C, 0xA9, 0x68 + .byte 0x4A, 0x1C, 0xAA, 0x60, 0x0E, 0x78, 0x51, 0x1C, 0xA9, 0x60, 0x14, 0x78, 0xFA, 0xF7, 0x48, 0xF8 + .byte 0x02, 0x90, 0x28, 0x1C, 0xFA, 0xF7, 0x44, 0xF8, 0x07, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x40, 0xF8 + .byte 0x00, 0x97, 0x80, 0x35, 0x01, 0x90, 0x28, 0x68, 0x02, 0x9B, 0x31, 0x1C, 0x22, 0x1C, 0x21, 0xF0 + .byte 0x09, 0xFE, 0x01, 0x20, 0x03, 0xB0, 0xF0, 0xBD, 0x10, 0xB5, 0x04, 0x1C, 0xFA, 0xF7, 0x30, 0xF8 + .byte 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xFA, 0xF7, 0x6F, 0xFC, 0x0A, 0x21, 0x01, 0x80, 0x00, 0x20 + .byte 0x10, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x84, 0xB0, 0x05, 0x1C, 0x80, 0x30, 0x06, 0x68, 0x30, 0x1C + .byte 0xF8, 0xF7, 0xDC, 0xFD, 0xE4, 0xF7, 0x7E, 0xFE, 0x01, 0x90, 0x28, 0x1C, 0xFA, 0xF7, 0x18, 0xF8 + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0x56, 0xFC, 0x04, 0x1C, 0xF0, 0x68 + .byte 0xE3, 0xF7, 0x7E, 0xFC, 0x06, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x0A, 0xF8, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0x64, 0xFC, 0x07, 0x1C, 0x28, 0x1C, 0xFA, 0xF7, 0x00, 0xF8 + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0x5A, 0xFC, 0x02, 0x90, 0x28, 0x1C + .byte 0xF9, 0xF7, 0xF6, 0xFF, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFA, 0xF7, 0x50, 0xFC + .byte 0x03, 0x90, 0x28, 0x1C, 0xF9, 0xF7, 0xEC, 0xFF, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xFA, 0xF7 + .byte 0x47, 0xFC, 0x00, 0x90, 0x01, 0x98, 0x02, 0x9A, 0x03, 0x9B, 0x39, 0x1C, 0x0E, 0xF2, 0x6E, 0xFA + .byte 0x05, 0x1C, 0x00, 0x20, 0xC0, 0x43, 0x85, 0x42, 0x01, 0xD0, 0x07, 0x2D, 0x04, 0xDD, 0xFF, 0x20 + .byte 0x20, 0x80, 0x04, 0xB0, 0x00, 0x20, 0xF8, 0xBD, 0x30, 0x1C, 0x29, 0x1C, 0x2C, 0xF0, 0xDA, 0xFC + .byte 0x00, 0x28, 0x01, 0xD0, 0x00, 0x20, 0x04, 0xE0, 0x30, 0x1C, 0x29, 0x1C, 0x2C, 0xF0, 0xC0, 0xFC + .byte 0x68, 0x1C, 0x20, 0x80, 0x00, 0x20, 0x04, 0xB0, 0xF8, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C + .byte 0x29, 0x1C, 0x80, 0x31, 0x09, 0x68, 0xCC, 0x68, 0xF9, 0xF7, 0xBA, 0xFF, 0x80, 0x35, 0x01, 0x1C + .byte 0x28, 0x68, 0xFA, 0xF7, 0xF9, 0xFB, 0x05, 0x1C, 0x20, 0x1C, 0xE7, 0xF7, 0xF3, 0xFF, 0xE7, 0xF7 + .byte 0x7D, 0xFE, 0x28, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x08, 0xB5, 0x01, 0x1C, 0x80, 0x31, 0x82, 0x68 + .byte 0x0B, 0x68, 0x51, 0x1C, 0x81, 0x60, 0x11, 0x78, 0x18, 0x1C, 0x0D, 0xF2, 0xC5, 0xFC, 0x00, 0x20 + .byte 0x08, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0x01, 0x1C, 0x80, 0x31, 0x82, 0x68, 0x0B, 0x68, 0x51, 0x1C + .byte 0x81, 0x60, 0x11, 0x78, 0x18, 0x1C, 0x0D, 0xF2, 0xEF, 0xFC, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x00 + .byte 0x08, 0xB5, 0x01, 0x1C, 0x80, 0x31, 0x82, 0x68, 0x0B, 0x68, 0x51, 0x1C, 0x81, 0x60, 0x11, 0x78 + .byte 0x18, 0x1C, 0x0D, 0xF2, 0xE7, 0xFC, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x00 + + thumb_func_start sub_0203ED2C +sub_0203ED2C: ; 0x0203ED2C + push {r4-r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024DA0 + add r6, r0, #0x0 + mov r0, #0x20 + bl sub_020669C0 + add r4, r0, #0x0 + bl sub_02066978 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r0, [sp, #0xc] + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x32 + mov r3, #0x20 + bl sub_02066ACC + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0202498C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203ED70 +sub_0203ED70: ; 0x0203ED70 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02022510 + bl sub_0206B3E4 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + mov r0, #0x87 + lsl r0, r0, #0x2 + sub r0, r0, r1 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203EDA4 +sub_0203EDA4: ; 0x0203EDA4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x16 + bl sub_02039438 + add r4, r0, #0x0 + mov r0, #0x0 + add r5, #0x80 + str r0, [r4, #0x0] + ldr r0, [r5, #0x0] + bl sub_021E7184 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203EDC8 +sub_0203EDC8: ; 0x0203EDC8 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x16 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_021E71E8 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203EDE0 +sub_0203EDE0: ; 0x0203EDE0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + add r4, #0x80 + lsl r1, r1, #0x18 + ldr r0, [r4, #0x0] + lsr r1, r1, #0x18 + bl sub_0224E554 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203EE08 +sub_0203EE08: ; 0x0203EE08 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_0206486C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203EE18 +sub_0203EE18: ; 0x0203EE18 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020649D4 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203EE28 +sub_0203EE28: ; 0x0203EE28 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020649B0 + cmp r0, #0x0 + beq _0203EE4E + mov r0, #0x1 + b _0203EE50 +_0203EE4E: + mov r0, #0x0 +_0203EE50: + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203EE58 +sub_0203EE58: ; 0x0203EE58 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_0224E764 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203EE68 +sub_0203EE68: ; 0x0203EE68 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_0224E7C4 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203EE78 +sub_0203EE78: ; 0x0203EE78 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029FC8 + add r1, r4, #0x0 + bl sub_0202A170 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203EE98 +sub_0203EE98: ; 0x0203EE98 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206BAE4 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_0203EED8 +sub_0203EED8: ; 0x0203EED8 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r1, sp, #0x4 + strh r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + str r0, [sp, #0x0] + bl sub_0206B9AC + add r4, #0x80 + add r6, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + add r7, r0, #0x0 + mov r5, #0x0 + cmp r6, #0x0 + ble _0203EF4E +_0203EF18: + ldr r0, [sp, #0x0] + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + ldr r1, _0203EF54 ; =0x00000182 + cmp r0, r1 + bne _0203EF48 + add r0, r4, #0x0 + mov r1, #0x70 + add r2, sp, #0x4 + bl sub_02067830 + add r0, r4, #0x0 + bl sub_02066ED8 + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_02024AF0 +_0203EF48: + add r5, r5, #0x1 + cmp r5, r6 + blt _0203EF18 +_0203EF4E: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0203EF54: .word 0x00000182 + + thumb_func_start sub_0203EF58 +sub_0203EF58: ; 0x0203EF58 + push {r3-r7, lr} + sub sp, #0x30 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + str r0, [sp, #0xc] + bl sub_0206B9AC + add r2, sp, #0x18 + mov r4, #0x0 + ldr r3, _0203F008 ; =0x020F34FC + str r0, [sp, #0x8] + add r7, r2, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [sp, #0x8] + str r4, [sp, #0x4] + cmp r0, #0x0 + ble _0203EFFC + mov r5, #0x1 + str r7, [sp, #0x14] +_0203EFA2: + ldr r0, [sp, #0xc] + add r1, r4, #0x0 + bl sub_0206B9B0 + add r6, r0, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x10] + add r0, r6, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + add r3, r0, #0x0 + mov r0, #0x67 + ldr r1, [sp, #0x10] + lsl r0, r0, #0x2 + cmp r1, r0 + bne _0203EFF2 + mov r2, #0x0 + add r1, r2, #0x0 + str r3, [r7, #0x0] + cmp r4, #0x0 + ble _0203EFE8 + ldr r6, [sp, #0x14] +_0203EFD8: + ldr r0, [r6, #0x0] + cmp r3, r0 + bne _0203EFE0 + add r2, r5, #0x0 +_0203EFE0: + add r1, r1, #0x1 + add r6, r6, #0x4 + cmp r1, r4 + blt _0203EFD8 +_0203EFE8: + cmp r2, #0x0 + bne _0203EFF2 + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + str r0, [sp, #0x4] +_0203EFF2: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r7, r7, #0x4 + cmp r4, r0 + blt _0203EFA2 +_0203EFFC: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x0] + strh r1, [r0, #0x0] + mov r0, #0x1 + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_0203F008: .word 0x020F34FC + + thumb_func_start sub_0203F00C +sub_0203F00C: ; 0x0203F00C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F1C4 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0203F020 +sub_0203F020: ; 0x0203F020 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F1D4 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0203F034 +sub_0203F034: ; 0x0203F034 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x10] + bl sub_020389CC + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0203F058 +sub_0203F058: ; 0x0203F058 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204B2D8 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203F07C +sub_0203F07C: ; 0x0203F07C + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0xc] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, #0x34] + bl sub_02058060 + add r7, r0, #0x0 + bne _0203F0FA + bl sub_02020C2C +_0203F0FA: + str r6, [sp, #0x0] + str r4, [sp, #0x4] + ldr r0, [r5, #0x74] + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x8] + add r1, r7, #0x0 + bl sub_02054F50 + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start sub_0203F110 +sub_0203F110: ; 0x0203F110 + push {r3-r7, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r1, r5, #0x0 + ldr r0, [r0, #0x34] + bl sub_02058060 + add r5, r0, #0x0 + bne _0203F164 + bl sub_02020C2C +_0203F164: + ldr r0, [r4, #0x74] + add r1, r5, #0x0 + add r2, r7, #0x0 + add r3, r6, #0x0 + bl sub_0205502C + mov r0, #0x1 + pop {r3-r7, pc} + + thumb_func_start sub_0203F174 +sub_0203F174: ; 0x0203F174 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02054E30 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F19C +sub_0203F19C: ; 0x0203F19C + push {r4-r7, lr} + sub sp, #0x24 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r0, [r0, #0xc] + bl sub_02027E24 + bl sub_0202708C + mov r6, #0x0 + add r7, r0, #0x0 + add r4, r6, #0x0 + add r5, sp, #0x4 +_0203F1CA: + add r1, r4, #0x0 + add r0, r7, #0x0 + add r1, #0x22 + mov r2, #0x1 + bl sub_020270D8 + cmp r0, #0x1 + bne _0203F1E0 + mov r0, #0x1 + strh r0, [r5, #0x0] + add r6, r6, #0x1 +_0203F1E0: + add r4, r4, #0x1 + add r5, r5, #0x2 + cmp r4, #0x10 + blt _0203F1CA + cmp r6, #0x0 + bne _0203F1F8 + ldr r0, [sp, #0x0] + ldr r1, _0203F230 ; =0x0000FFFF + add sp, #0x24 + strh r1, [r0, #0x0] + mov r0, #0x0 + pop {r4-r7, pc} +_0203F1F8: + bl sub_0201B9EC + add r1, r6, #0x0 + blx sub_020EBC80 + mov r4, #0x0 + add r2, sp, #0x4 +_0203F206: + ldrh r0, [r2, #0x0] + cmp r0, #0x1 + bne _0203F212 + cmp r1, #0x0 + beq _0203F21A + sub r1, r1, #0x1 +_0203F212: + add r4, r4, #0x1 + add r2, r2, #0x2 + cmp r4, #0x10 + blt _0203F206 +_0203F21A: + cmp r4, #0x10 + blt _0203F222 + bl sub_02020C2C +_0203F222: + ldr r0, [sp, #0x0] + add r4, #0x22 + strh r4, [r0, #0x0] + mov r0, #0x0 + add sp, #0x24 + pop {r4-r7, pc} + nop +_0203F230: .word 0x0000FFFF + + thumb_func_start sub_0203F234 +sub_0203F234: ; 0x0203F234 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + ldr r1, _0203F250 ; =0x021C4918 + ldrb r1, [r1, #0x6] + strh r1, [r0, #0x0] + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0203F250: .word 0x021C4918 + + thumb_func_start sub_0203F254 +sub_0203F254: ; 0x0203F254 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + mov r1, #0x0 + bl sub_0205F698 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203F26C +sub_0203F26C: ; 0x0203F26C + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r5, #0x80 + ldr r0, [r5, #0x0] + ldrb r4, [r1, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + cmp r4, #0x0 + beq _0203F2A0 + add r1, r6, #0x0 + bl sub_0205F4E4 + b _0203F2A6 +_0203F2A0: + add r1, r6, #0x0 + bl sub_0205F50C +_0203F2A6: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203F2AC +sub_0203F2AC: ; 0x0203F2AC + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B6D0 + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0203F2E4 +sub_0203F2E4: ; 0x0203F2E4 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205F6C8 + cmp r0, #0xa + blo _0203F314 + mov r0, #0x1 + b _0203F316 +_0203F314: + mov r0, #0x0 +_0203F316: + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203F31C +sub_0203F31C: ; 0x0203F31C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F648 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F348 +sub_0203F348: ; 0x0203F348 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02027E24 + bl sub_0202708C + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02027210 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0203F38C +sub_0203F38C: ; 0x0203F38C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02046030 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203F39C +sub_0203F39C: ; 0x0203F39C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0205F668 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0203F3AC +sub_0203F3AC: ; 0x0203F3AC + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r5, #0x80 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02013B5C + bl sub_02013B74 + cmp r0, #0x20 + bne _0203F3FE + ldr r0, _0203F414 ; =0x0000FFFF + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} +_0203F3FE: + strh r0, [r4, #0x0] + bl sub_02013BE4 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r7, #0x0 + bl sub_0200B518 + mov r0, #0x0 + pop {r3-r7, pc} + nop +_0203F414: .word 0x0000FFFF + + thumb_func_start sub_0203F418 +sub_0203F418: ; 0x0203F418 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02013B5C + bl sub_02013BC8 + cmp r0, #0x1 + bne _0203F444 + mov r0, #0x1 + b _0203F446 +_0203F444: + mov r0, #0x0 +_0203F446: + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203F44C +sub_0203F44C: ; 0x0203F44C + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205F710 + cmp r0, #0x5 + blo _0203F47C + mov r0, #0x1 + b _0203F47E +_0203F47C: + mov r0, #0x0 +_0203F47E: + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203F484 +sub_0203F484: ; 0x0203F484 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + ldr r5, [r5, #0x0] + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02023788 + add r7, r0, #0x0 + bl sub_02023818 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204B2B4 + cmp r6, r0 + bne _0203F4CE + add r0, r7, #0x0 + bl sub_0202381C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204B2C0 + cmp r6, r0 + bne _0203F4CE + mov r0, #0x1 + strh r0, [r4, #0x0] + b _0203F4D2 +_0203F4CE: + mov r0, #0x0 + strh r0, [r4, #0x0] +_0203F4D2: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0203F4D8 +sub_0203F4D8: ; 0x0203F4D8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0202471C + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F508 +sub_0203F508: ; 0x0203F508 + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r6, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r6, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r1, r6, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + ldr r2, [r1, #0x1c] + ldr r1, [r2, #0x8] + lsl r1, r1, #0x10 + lsr r5, r1, #0x10 + ldr r1, [r2, #0xc] + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r7, #0x3 + blo _0203F54C + ldr r7, _0203F5C8 ; =0x0000010E + b _0203F582 +_0203F54C: + cmp r0, #0x1e + blo _0203F556 + mov r7, #0x43 + lsl r7, r7, #0x2 + b _0203F582 +_0203F556: + bl sub_0201B9EC + mov r1, #0x64 + blx sub_020EBC80 + cmp r1, #0x19 + bge _0203F568 + ldr r7, _0203F5CC ; =0x0000010D + b _0203F582 +_0203F568: + bl sub_0201B9EC + mov r1, #0x6 + blx sub_020EBC80 + lsl r0, r1, #0x10 + lsr r1, r0, #0x10 + mov r0, #0x6 + mul r0, r7 + add r0, r1, r0 + lsl r1, r0, #0x1 + ldr r0, _0203F5D0 ; =0x020F3538 + ldrh r7, [r0, r1] +_0203F582: + cmp r5, #0xb + bne _0203F59A + cmp r4, #0x1 + bne _0203F58E + mov r4, #0x0 + b _0203F5A4 +_0203F58E: + cmp r4, #0x14 + bne _0203F596 + mov r4, #0x2 + b _0203F5A4 +_0203F596: + mov r4, #0x5 + b _0203F5A4 +_0203F59A: + cmp r5, #0x14 + bne _0203F5A2 + mov r4, #0x1 + b _0203F5A4 +_0203F5A2: + mov r4, #0x3 +_0203F5A4: + mov r5, #0x0 +_0203F5A6: + cmp r5, r4 + beq _0203F5B8 + add r0, r6, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r1, r5, #0x0 + add r2, r7, #0x0 + bl sub_02034C24 +_0203F5B8: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x4 + blo _0203F5A6 + mov r0, #0x0 + pop {r3-r7, pc} + nop +_0203F5C8: .word 0x0000010E +_0203F5CC: .word 0x0000010D +_0203F5D0: .word 0x020F3538 + + thumb_func_start sub_0203F5D4 +sub_0203F5D4: ; 0x0203F5D4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F720 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F604 +sub_0203F604: ; 0x0203F604 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F740 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F634 +sub_0203F634: ; 0x0203F634 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F760 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F664 +sub_0203F664: ; 0x0203F664 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x0 + add r3, sp, #0x0 + add r0, #0x8 +_0203F684: + ldr r6, [r0, #0x0] + ldr r1, [r5, #0x8] + add r6, r6, #0x1 + str r6, [r0, #0x0] + ldrb r1, [r1, #0x0] + add r2, r2, #0x1 + strb r1, [r3, #0x0] + add r3, r3, #0x1 + cmp r2, #0x5 + blt _0203F684 + ldr r1, [r0, #0x0] + ldr r2, [r5, #0x8] + add r1, r1, #0x1 + str r1, [r0, #0x0] + ldrb r6, [r2, #0x0] + mov r0, #0x4 + bl sub_02027E5C + add r1, sp, #0x0 + add r2, r6, #0x0 + mov r3, #0x0 + add r7, r0, #0x0 + bl sub_02027F04 + add r5, #0x80 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02028048 + add r1, r7, #0x0 + bl sub_02028094 + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_02016A18 + ldr r0, _0203F6E0 ; =0x0000FFFF + cmp r5, r0 + bne _0203F6D8 + strh r0, [r4, #0x0] + b _0203F6DA +_0203F6D8: + strh r6, [r4, #0x0] +_0203F6DA: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0203F6E0: .word 0x0000FFFF + + thumb_func_start sub_0203F6E4 +sub_0203F6E4: ; 0x0203F6E4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02028048 + bl sub_02028074 + ldr r1, _0203F71C ; =0x0000FFFF + cmp r0, r1 + bne _0203F712 + mov r0, #0x0 + b _0203F714 +_0203F712: + mov r0, #0x1 +_0203F714: + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0203F71C: .word 0x0000FFFF + + thumb_func_start sub_0203F720 +sub_0203F720: ; 0x0203F720 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r4, [r2, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + add r5, r0, #0x0 + cmp r4, #0x3 + bls _0203F752 + bl sub_02020C2C +_0203F752: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205F4A0 + strh r0, [r6, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0203F760 +sub_0203F760: ; 0x0203F760 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x20 + ldr r0, [r0, #0xc] + add r2, sp, #0x0 + bl sub_02022534 + ldr r1, [sp, #0x0] + add r4, r0, #0x0 + cmp r1, #0x0 + bne _0203F798 + mov r1, #0x0 + strh r1, [r5, #0x0] + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_0203F798: + cmp r1, #0x1 + bne _0203F7AE + mov r1, #0x0 + bl sub_0202B21C + strh r0, [r5, #0x0] + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_0203F7AE: + cmp r1, #0x2 + bne _0203F7BE + mov r1, #0x0 + strh r1, [r5, #0x0] + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_0203F7BE: + mov r0, #0x0 + strh r0, [r5, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F7C8 +sub_0203F7C8: ; 0x0203F7C8 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r1, r5, #0x0 + add r1, #0x80 + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + mov r0, #0x20 + add r2, r6, #0x0 + bl sub_02037A48 + str r0, [r4, #0x0] + ldr r1, _0203F808 ; =sub_0203BC04 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0203F808: .word sub_0203BC04 + 1 + + thumb_func_start sub_0203F80C +sub_0203F80C: ; 0x0203F80C + push {r4-r6, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _0203F84C + bl sub_02020C2C +_0203F84C: + ldr r0, [r4, #0x0] + bl sub_02037A40 + strh r0, [r6, #0x0] + ldrh r0, [r6, #0x0] + cmp r0, #0x7 + bne _0203F85E + mov r0, #0xff + strh r0, [r6, #0x0] +_0203F85E: + ldr r0, [r4, #0x0] + bl sub_02037A70 + strh r0, [r5, #0x0] + ldrh r0, [r5, #0x0] + cmp r0, #0x1 + bne _0203F870 + mov r0, #0x1 + b _0203F872 +_0203F870: + mov r0, #0x0 +_0203F872: + strh r0, [r5, #0x0] + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r4-r6, pc} + + thumb_func_start sub_0203F880 +sub_0203F880: ; 0x0203F880 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r4, [r2, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + cmp r4, #0x64 + bls _0203F8A2 + mov r4, #0x64 +_0203F8A2: + bl sub_0201B9EC + mov r1, #0x65 + blx sub_020EBC80 + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + cmp r0, r4 + bgt _0203F8B8 + mov r0, #0x1 + b _0203F8BA +_0203F8B8: + mov r0, #0x0 +_0203F8BA: + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203F8C0 +sub_0203F8C0: ; 0x0203F8C0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r4, #0x0 + beq _0203F8FC + cmp r4, #0x1 + beq _0203F906 + cmp r4, #0x2 + beq _0203F910 + b _0203F91A +_0203F8FC: + mov r2, #0x0 + mov r3, #0x20 + bl sub_0224F12C + b _0203F91E +_0203F906: + mov r2, #0x1 + mov r3, #0x20 + bl sub_0224F12C + b _0203F91E +_0203F910: + mov r2, #0x2 + mov r3, #0x20 + bl sub_0224F12C + b _0203F91E +_0203F91A: + bl sub_02020C2C +_0203F91E: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F924 +sub_0203F924: ; 0x0203F924 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F6A8 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F954 +sub_0203F954: ; 0x0203F954 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + cmp r0, #0x0 + bne _0203F978 + add r4, #0x80 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x10] + bl sub_02239944 + b _0203F982 +_0203F978: + add r4, #0x80 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x10] + bl sub_02239AAC +_0203F982: + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0203F988 +sub_0203F988: ; 0x0203F988 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0203384C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F9B0 +sub_0203F9B0: ; 0x0203F9B0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020286EC + bl sub_02028448 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203F9DC +sub_0203F9DC: ; 0x0203F9DC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02026CC4 + ldr r1, _0203FA10 ; =0x0000FF79 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, #0x1 + bhi _0203FA0C + bl sub_02025C30 +_0203FA0C: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0203FA10: .word 0x0000FF79 + + thumb_func_start sub_0203FA14 +sub_0203FA14: ; 0x0203FA14 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + mov r1, #0x0 + strh r1, [r0, #0x0] + ldr r1, _0203FA54 ; =0x0000012A + cmp r4, r1 + blo _0203FA4E + add r1, #0xf + cmp r4, r1 + bhi _0203FA4E + mov r1, #0x1 + strh r1, [r0, #0x0] +_0203FA4E: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0203FA54: .word 0x0000012A + + thumb_func_start sub_0203FA58 +sub_0203FA58: ; 0x0203FA58 + push {r3-r7, lr} + sub sp, #0x10 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0xc] + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + mov r0, #0x20 + bl sub_0200AA80 + add r4, r0, #0x0 + ldr r2, _0203FB48 ; =0x00000147 + mov r0, #0x0 + mov r1, #0x1a + mov r3, #0x20 + bl sub_0200A86C + add r5, r0, #0x0 + ldr r2, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0200B518 + ldr r2, [sp, #0x8] + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0200B518 + ldr r2, [sp, #0xc] + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_0200B518 + add r0, r4, #0x0 + mov r1, #0x3 + add r2, r7, #0x0 + bl sub_0200B518 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x1 + mov r3, #0x20 + bl sub_0200A9C4 + add r7, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0200A914 + str r0, [sp, #0x0] + ldr r1, [sp, #0x0] + add r0, r7, #0x0 + bl sub_02021CE0 + cmp r0, #0x0 + bne _0203FB24 + mov r0, #0x1 + b _0203FB26 +_0203FB24: + mov r0, #0x0 +_0203FB26: + strh r0, [r6, #0x0] + add r0, r7, #0x0 + bl sub_02021A20 + ldr r0, [sp, #0x0] + bl sub_02021A20 + add r0, r5, #0x0 + bl sub_0200A8B8 + add r0, r4, #0x0 + bl sub_0200AB18 + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + nop +_0203FB48: .word 0x00000147 + + thumb_func_start sub_0203FB4C +sub_0203FB4C: ; 0x0203FB4C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023788 + mov r1, #0x1 + bl sub_02023828 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203FB64 +sub_0203FB64: ; 0x0203FB64 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0xf + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_0205296C + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203FB94 +sub_0203FB94: ; 0x0203FB94 + push {r3, lr} + bl sub_02033E74 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203FBA0 +sub_0203FBA0: ; 0x0203FBA0 + push {r3, lr} + bl sub_02033ED0 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203FBAC +sub_0203FBAC: ; 0x0203FBAC + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_02034E48 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203FBBC +sub_0203FBBC: ; 0x0203FBBC + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r7, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + bl sub_02034DCC + str r4, [r0, #0x0] + str r6, [r0, #0x8] + mov r1, #0x0 + str r7, [r0, #0xc] + mvn r1, r1 + str r1, [r0, #0x4] + mov r1, #0x1 + str r1, [r0, #0x10] + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0203FC1C +sub_0203FC1C: ; 0x0203FC1C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + ldr r2, [r5, #0x8] + add r1, r0, #0x0 + add r0, r2, #0x1 + str r0, [r5, #0x8] + add r5, #0x80 + ldr r0, [r5, #0x0] + ldrb r4, [r2, #0x0] + ldr r0, [r0, #0x34] + bl sub_02058060 + add r5, r0, #0x0 + bne _0203FC4C + bl sub_02020C2C +_0203FC4C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020588B8 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203FC58 +sub_0203FC58: ; 0x0203FC58 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02065078 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203FC80 +sub_0203FC80: ; 0x0203FC80 + push {r3-r5, lr} + add r0, #0x80 + ldr r5, [r0, #0x0] + mov r1, #0x28 + add r0, r5, #0x0 + bl sub_02039438 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0202280C + cmp r0, #0x0 + bne _0203FCAA + add r0, r5, #0x0 + mov r1, #0x4 + mov r2, #0x3 + bl sub_021E8588 + str r0, [r4, #0x0] + bl sub_021E84F4 +_0203FCAA: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203FCB0 +sub_0203FCB0: ; 0x0203FCB0 + push {r3-r5, lr} + add r0, #0x80 + ldr r5, [r0, #0x0] + mov r1, #0x28 + add r0, r5, #0x0 + bl sub_02039438 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0202280C + cmp r0, #0x0 + bne _0203FCD6 + ldr r0, [r4, #0x0] + bl sub_021E856C + ldr r0, [r4, #0x0] + bl sub_021E85E4 +_0203FCD6: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0203FCDC +sub_0203FCDC: ; 0x0203FCDC + push {r3, lr} + ldr r2, [r0, #0x8] + add r1, r2, #0x1 + str r1, [r0, #0x8] + add r0, #0x80 + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + bl sub_0206367C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0203FCF4 +sub_0203FCF4: ; 0x0203FCF4 + push {r4-r7, lr} + sub sp, #0x84 + add r7, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r7, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + mov r4, #0x0 + add r6, r4, #0x0 + add r5, r4, #0x0 +_0203FD10: + add r0, r7, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020238F4 + add r1, r5, #0x0 + bl sub_020239D0 + cmp r0, #0x1 + bne _0203FD2C + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 +_0203FD2C: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x8 + blo _0203FD10 + cmp r6, #0x8 + bhi _0203FD70 + add r0, r6, r6 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r2, #0 + lsl r4, r2, #0 + lsl r4, r2, #0 + lsl r0, r3, #0 + lsl r0, r3, #0 + lsl r4, r3, #0 + lsl r4, r3, #0 + lsl r0, r4, #0 + lsl r4, r4, #0 + mov r1, #0x1 + b _0203FD72 +_0203FD5C: + .byte 0x02, 0x21, 0x08, 0xE0 + .byte 0x03, 0x21, 0x06, 0xE0, 0x04, 0x21, 0x04, 0xE0, 0x05, 0x21, 0x02, 0xE0, 0x06, 0x21, 0x00, 0xE0 +_0203FD70: + mov r1, #0x1 +_0203FD72: + ldr r0, _0203FDB4 ; =0x020F4218 + mov r2, #0x0 + add r6, sp, #0x4 +_0203FD78: + lsl r3, r2, #0x2 + add r5, r0, r3 + ldrh r3, [r5, #0x2] + cmp r1, r3 + blt _0203FD8E + ldrh r5, [r5, #0x0] + lsl r3, r4, #0x1 + strh r5, [r6, r3] + add r3, r4, #0x1 + lsl r3, r3, #0x18 + lsr r4, r3, #0x18 +_0203FD8E: + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + cmp r2, #0x13 + blo _0203FD78 + ldr r1, _0203FDB8 ; =0x0000FFFF + lsl r0, r4, #0x1 + add r2, sp, #0x4 + strh r1, [r2, r0] + mov r3, #0x0 + str r3, [sp, #0x0] + ldr r0, [r7, #0x74] + add r7, #0x80 + ldr r1, [r7, #0x0] + bl sub_0223D3D0 + mov r0, #0x1 + add sp, #0x84 + pop {r4-r7, pc} + .balign 4 +_0203FDB4: .word 0x020F4218 +_0203FDB8: .word 0x0000FFFF + + thumb_func_start sub_0203FDBC +sub_0203FDBC: ; 0x0203FDBC + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, _0203FE00 ; =0x0000FFF8 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x5 + bhi _0203FDE4 + mov r0, #0x1 + b _0203FDE6 +_0203FDE4: + mov r0, #0x0 +_0203FDE6: + lsl r3, r2, #0x2 + str r0, [sp, #0x0] + ldr r2, _0203FE04 ; =0x02105E10 + ldr r0, [r4, #0x74] + add r4, #0x80 + ldr r2, [r2, r3] + ldr r1, [r4, #0x0] + mov r3, #0x0 + bl sub_0223D3D0 + mov r0, #0x1 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0203FE00: .word 0x0000FFF8 +_0203FE04: .word 0x02105E10 + + thumb_func_start sub_0203FE08 +sub_0203FE08: ; 0x0203FE08 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + cmp r2, #0x1 + bhi _0203FE28 + mov r0, #0x1 + b _0203FE2A +_0203FE28: + mov r0, #0x0 +_0203FE2A: + lsl r3, r2, #0x2 + str r0, [sp, #0x0] + ldr r2, _0203FE44 ; =0x02105DEC + ldr r0, [r4, #0x74] + add r4, #0x80 + ldr r2, [r2, r3] + ldr r1, [r4, #0x0] + mov r3, #0x1 + bl sub_0223D3D0 + mov r0, #0x1 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0203FE44: .word 0x02105DEC + + thumb_func_start sub_0203FE48 +sub_0203FE48: ; 0x0203FE48 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + mov r0, #0x0 + lsl r3, r2, #0x2 + str r0, [sp, #0x0] + ldr r2, _0203FE7C ; =0x02105DF4 + ldr r0, [r4, #0x74] + add r4, #0x80 + ldr r2, [r2, r3] + ldr r1, [r4, #0x0] + mov r3, #0x2 + bl sub_0223D3D0 + mov r0, #0x1 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0203FE7C: .word 0x02105DF4 + + thumb_func_start sub_0203FE80 +sub_0203FE80: ; 0x0203FE80 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x10] + bl sub_02038AD0 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0203FE90 +sub_0203FE90: ; 0x0203FE90 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + lsl r1, r1, #0x18 + ldr r0, [r4, #0x0] + lsr r1, r1, #0x18 + bl sub_02082140 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0203FEC0 +sub_0203FEC0: ; 0x0203FEC0 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [r4, #0x64] + ldr r1, _0203FEF0 ; =sub_0203FEF4 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0203FEF0: .word sub_0203FEF4 + 1 + + thumb_func_start sub_0203FEF4 +sub_0203FEF4: ; 0x0203FEF4 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + ldr r1, [r4, #0x64] + ldr r0, [r0, #0x0] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_02082158 + pop {r4, pc} + + thumb_func_start sub_0203FF10 +sub_0203FF10: ; 0x0203FF10 + push {r3-r7, lr} + sub sp, #0x38 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020377AC + bl sub_020238F4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0xc] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + str r0, [sp, #0x10] + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_020239A0 + add r7, r0, #0x0 + ldr r1, [sp, #0x8] + add r0, sp, #0x14 + strb r1, [r0, #0x0] + ldr r1, [sp, #0x4] + strb r1, [r0, #0x1] + ldr r1, [sp, #0xc] + strb r1, [r0, #0x2] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED0C + add r1, sp, #0x14 + strb r0, [r1, #0x3] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + bl sub_02024CA4 + add r1, sp, #0x14 + strb r0, [r1, #0x4] + strb r6, [r1, #0x5] + ldr r0, [sp, #0x10] + str r7, [sp, #0x20] + str r0, [sp, #0x1c] + add r0, r5, #0x0 + str r4, [sp, #0x24] + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02027E24 + str r0, [sp, #0x28] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023900 + str r0, [sp, #0x2c] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r5, #0x80 + ldr r0, [r0, #0xc] + str r0, [sp, #0x30] + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029EF8 + str r0, [sp, #0x34] + add r0, sp, #0x14 + bl sub_02081214 + ldr r1, [sp, #0x0] + str r0, [r1, #0x0] + add r0, r7, #0x0 + bl sub_02021A20 + mov r0, #0x0 + add sp, #0x38 + pop {r3-r7, pc} + + thumb_func_start sub_02040028 +sub_02040028: ; 0x02040028 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034824 + add r5, #0x80 + ldr r3, [r5, #0x0] + add r2, r0, #0x0 + ldr r1, [r3, #0xc] + add r3, #0x98 + ldr r0, [r4, #0x0] + ldr r3, [r3, #0x0] + bl sub_02082630 + ldr r0, [r4, #0x0] + bl sub_020814E8 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02040074 +sub_02040074: ; 0x02040074 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r3, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r2, [r6, #0x0] + add r1, r7, #0x0 + bl sub_0208201C + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020400C8 +sub_020400C8: ; 0x020400C8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r3, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r2, [r6, #0x0] + add r1, r7, #0x0 + bl sub_02082034 + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204011C +sub_0204011C: ; 0x0204011C + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r3, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r2, [r6, #0x0] + add r1, r7, #0x0 + bl sub_0208206C + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02040170 +sub_02040170: ; 0x02040170 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r3, #0x1 + str r3, [sp, #0x4] + ldr r0, [r4, #0x0] + add r2, r6, #0x0 + bl sub_0200AD38 + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020401CC +sub_020401CC: ; 0x020401CC + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_02081DC4 + ldr r1, _020401EC ; =sub_020401F0 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_020401EC: .word sub_020401F0 + 1 + + thumb_func_start sub_020401F0 +sub_020401F0: ; 0x020401F0 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_02081EB8 + pop {r3, pc} + + thumb_func_start sub_02040204 +sub_02040204: ; 0x02040204 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r1, r0, #0x0 + ldr r0, [r4, #0x74] + ldr r1, [r1, #0x0] + bl sub_02080E0C + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_02040220 +sub_02040220: ; 0x02040220 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r6, #0x0] + bl sub_02082090 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0204025C +sub_0204025C: ; 0x0204025C + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r6, #0x0] + bl sub_020820B8 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02040298 +sub_02040298: ; 0x02040298 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r6, #0x0] + bl sub_020820DC + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020402D4 +sub_020402D4: ; 0x020402D4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0208213C + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02040304 +sub_02040304: ; 0x02040304 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r6, #0x0] + bl sub_0208210C + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02040340 +sub_02040340: ; 0x02040340 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0208217C + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02040370 +sub_02040370: ; 0x02040370 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02082190 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020403A0 +sub_020403A0: ; 0x020403A0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020821B4 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020403D0 +sub_020403D0: ; 0x020403D0 + push {r4-r6, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + bl sub_020821C4 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02040414 +sub_02040414: ; 0x02040414 + push {r4-r6, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + bl sub_020821DC + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02040458 +sub_02040458: ; 0x02040458 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020821F0 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02040488 +sub_02040488: ; 0x02040488 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r3, [sp, #0x4] + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02082214 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020404FC +sub_020404FC: ; 0x020404FC + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02082254 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204052C +sub_0204052C: ; 0x0204052C + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r6, #0x0] + mov r3, #0xb + bl sub_02082284 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204056C +sub_0204056C: ; 0x0204056C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020822F0 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204059C +sub_0204059C: ; 0x0204059C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_0208223C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020405B4 +sub_020405B4: ; 0x020405B4 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_0208224C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020405CC +sub_020405CC: ; 0x020405CC + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02082444 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_020405F8 +sub_020405F8: ; 0x020405F8 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + ldr r1, _02040614 ; =sub_02040618 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_02040614: .word sub_02040618 + 1 + + thumb_func_start sub_02040618 +sub_02040618: ; 0x02040618 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + ldr r0, [r0, #0x0] + bl sub_02082508 + cmp r0, #0x1 + bne _02040632 + mov r0, #0x1 + pop {r3, pc} +_02040632: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02040638 +sub_02040638: ; 0x02040638 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + ldr r0, [r0, #0x1c] + bl sub_021F4608 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204064C +sub_0204064C: ; 0x0204064C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + ldr r0, [r0, #0x1c] + bl sub_021F45E8 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02040660 +sub_02040660: ; 0x02040660 + push {r4-r5, lr} + sub sp, #0x1c + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x14 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + ldr r0, [r4, #0x0] + add r1, sp, #0x18 + add r2, sp, #0x14 + add r3, sp, #0x10 + bl sub_020825A0 + ldr r0, [sp, #0x14] + cmp r0, #0x1 + beq _020406B0 + ldr r0, [sp, #0x10] + cmp r0, #0x1 + beq _020406B0 + ldr r0, [sp, #0xc] + cmp r0, #0x1 + beq _020406B0 + ldr r0, [sp, #0x8] + cmp r0, #0x1 + bne _020406B6 +_020406B0: + mov r0, #0x1 + strh r0, [r5, #0x0] + b _020406BA +_020406B6: + mov r0, #0x0 + strh r0, [r5, #0x0] +_020406BA: + mov r0, #0x0 + add sp, #0x1c + pop {r4-r5, pc} + + thumb_func_start sub_020406C0 +sub_020406C0: ; 0x020406C0 + push {r3, lr} + ldr r0, [r0, #0x74] + bl sub_0224D3E8 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_020406CC +sub_020406CC: ; 0x020406CC + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r6, [r0, #0x0] + mov r1, #0xf + add r0, r6, #0x0 + bl sub_02039438 + ldr r1, [r5, #0x8] + add r4, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + ldrb r5, [r1, #0x0] + add r0, r6, #0x0 + bl sub_020377AC + bl sub_020238F4 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + add r1, r5, #0x0 + bl sub_0200ABC0 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040700 +sub_02040700: ; 0x02040700 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0xf + add r0, r4, #0x0 + bl sub_02039438 + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + ldr r2, [r4, #0xc] + bl sub_0200ABE4 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02040724 +sub_02040724: ; 0x02040724 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0xf + add r0, r4, #0x0 + bl sub_02039438 + ldr r2, [r5, #0x8] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + ldr r2, [r4, #0xc] + bl sub_0200AC0C + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02040748 +sub_02040748: ; 0x02040748 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r6, [r0, #0x0] + mov r1, #0xf + add r0, r6, #0x0 + bl sub_02039438 + ldr r1, [r5, #0x8] + add r7, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + ldr r0, [r6, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + add r2, r0, #0x0 + ldr r0, [r7, #0x0] + add r1, r4, #0x0 + bl sub_0200AC60 + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02040790 +sub_02040790: ; 0x02040790 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200AE38 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020407C8 +sub_020407C8: ; 0x020407C8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200AEE0 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040800 +sub_02040800: ; 0x02040800 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + bl sub_0206EA30 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200AD5C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204083C +sub_0204083C: ; 0x0204083C + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200AD5C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040874 +sub_02040874: ; 0x02040874 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + bl sub_02054C14 + add r3, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + add r2, r5, #0x0 + bl sub_0200AD38 + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_020408BC +sub_020408BC: ; 0x020408BC + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r7, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r6, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x8] + ldr r1, [r5, #0x8] + add r2, r1, #0x1 + str r2, [r5, #0x8] + ldrb r4, [r1, #0x0] + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r3, [r2, #0x0] + cmp r4, #0x0 + bne _02040904 + bl sub_02054C14 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 +_02040904: + str r4, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r7, #0x0] + ldr r2, [sp, #0x8] + add r1, r6, #0x0 + bl sub_0200AD38 + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0204091C +sub_0204091C: ; 0x0204091C + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r6, [r0, #0x0] + mov r1, #0xf + add r0, r6, #0x0 + bl sub_02039438 + ldr r1, [r5, #0x8] + add r7, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + ldr r0, [r6, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + add r2, r0, #0x0 + ldr r0, [r7, #0x0] + add r1, r4, #0x0 + bl sub_0200ACF8 + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02040964 +sub_02040964: ; 0x02040964 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + ldr r0, [r4, #0xc] + bl sub_02022510 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + mov r1, #0x1e + blx sub_020EBC80 + add r7, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x1e + blx sub_020EBC80 + add r2, r1, #0x0 + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + bl sub_0206B5E4 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200ACF8 + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_020409C0 +sub_020409C0: ; 0x020409C0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B02C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020409F8 +sub_020409F8: ; 0x020409F8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B064 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040A30 +sub_02040A30: ; 0x02040A30 + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, #0x80 + ldr r5, [r0, #0x0] + add r0, r5, #0x0 + bl sub_020377AC + bl sub_020238F4 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xf + bl sub_02039438 + ldr r1, [r7, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r7, #0x8] + add r0, r4, #0x0 + ldrb r5, [r1, #0x0] + bl sub_020239CC + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02023A28 + add r1, r0, #0x0 + add r0, r7, #0x0 + mov r2, #0x2 + bl sub_020536D0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r5, #0x0 + bl sub_0200B09C + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02040A7C +sub_02040A7C: ; 0x02040A7C + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r7, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + ldr r1, [r5, #0x8] + str r0, [sp, #0x8] + add r0, r1, #0x1 + str r0, [r5, #0x8] + ldrb r5, [r1, #0x0] + add r0, r6, #0x0 + mov r1, #0x4 + bl sub_02040AE4 + add r6, r0, #0x0 + str r5, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + ldr r0, [r7, #0x0] + ldr r3, [sp, #0x8] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0200ABB4 + add r0, r6, #0x0 + bl sub_02021A20 + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02040AE4 +sub_02040AE4: ; 0x02040AE4 + push {r3-r5, lr} + ldr r2, _02040B08 ; =0x0000016A + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r5, r0, #0x0 + add r1, r4, #0x0 + bl sub_0200A914 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0200A8B8 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02040B08: .word 0x0000016A + + thumb_func_start sub_02040B0C +sub_02040B0C: ; 0x02040B0C + push {r4-r6, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r4, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r4, #0x8] + add r4, #0x80 + ldr r0, [r4, #0x0] + ldrb r5, [r1, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F388 + mov r1, #0x4 + bl sub_02040AE4 + add r4, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + ldr r0, [r6, #0x0] + add r1, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x0 + bl sub_0200ABB4 + add r0, r4, #0x0 + bl sub_02021A20 + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02040B5C +sub_02040B5C: ; 0x02040B5C + push {r4-r6, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r4, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r4, #0x8] + add r4, #0x80 + ldr r0, [r4, #0x0] + ldrb r5, [r1, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F398 + mov r1, #0x4 + bl sub_02040AE4 + add r4, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + ldr r0, [r6, #0x0] + add r1, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x0 + bl sub_0200ABB4 + add r0, r4, #0x0 + bl sub_02021A20 + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02040BAC +sub_02040BAC: ; 0x02040BAC + push {r4-r6, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r4, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r4, #0x8] + add r4, #0x80 + ldr r0, [r4, #0x0] + ldrb r5, [r1, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F3C0 + mov r1, #0x4 + bl sub_02040AE4 + add r4, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + ldr r0, [r6, #0x0] + add r1, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x0 + bl sub_0200ABB4 + add r0, r4, #0x0 + bl sub_02021A20 + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02040BFC +sub_02040BFC: ; 0x02040BFC + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B350 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040C34 +sub_02040C34: ; 0x02040C34 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B1D4 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040C6C +sub_02040C6C: ; 0x02040C6C + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B164 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040CA4 +sub_02040CA4: ; 0x02040CA4 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + mov r0, #0x16 + mov r1, #0x4 + bl sub_020219F4 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r7, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r6, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + mov r1, #0x4 + add r2, r4, #0x0 + bl sub_02064E60 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + ldr r0, [r7, #0x0] + add r1, r6, #0x0 + add r2, r4, #0x0 + mov r3, #0x0 + bl sub_0200ABB4 + add r0, r4, #0x0 + bl sub_02021A20 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02040D04 +sub_02040D04: ; 0x02040D04 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r4, #0x8] + add r7, r0, #0x0 + add r0, r1, #0x1 + str r0, [r4, #0x8] + add r0, r4, #0x0 + ldrb r6, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + sub r5, #0x95 + add r4, r0, #0x0 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x20 + bl sub_020852E8 + add r5, r0, #0x0 + cmp r4, #0x2 + bhs _02040D5A + mov r0, #0x1 + b _02040D5C +_02040D5A: + mov r0, #0x0 +_02040D5C: + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + ldr r0, [r7, #0x0] + add r1, r6, #0x0 + add r2, r5, #0x0 + mov r3, #0x0 + bl sub_0200ABB4 + add r0, r5, #0x0 + bl sub_02021A20 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02040D7C +sub_02040D7C: ; 0x02040D7C + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200AE04 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040DB4 +sub_02040DB4: ; 0x02040DB4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B660 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040DEC +sub_02040DEC: ; 0x02040DEC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r7, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + mov r0, #0xb + ldrb r6, [r1, #0x0] + add r1, r0, #0x0 + bl sub_020219F4 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024EB4 + bl sub_02024F0C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02021E28 + ldr r0, _02040E48 ; =0x020ECAC4 + mov r3, #0x0 + ldrb r0, [r0, #0x0] + str r3, [sp, #0x0] + add r1, r6, #0x0 + str r0, [sp, #0x4] + ldr r0, [r7, #0x0] + add r2, r4, #0x0 + bl sub_0200ABB4 + add r0, r4, #0x0 + bl sub_02021A20 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + nop +_02040E48: .word 0x020ECAC4 + + thumb_func_start sub_02040E4C +sub_02040E4C: ; 0x02040E4C + push {r3-r7, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r6, [r0, #0x0] + mov r1, #0xf + add r0, r6, #0x0 + bl sub_02039438 + ldr r1, [r4, #0x8] + add r7, r0, #0x0 + add r0, r1, #0x1 + str r0, [r4, #0x8] + add r0, r4, #0x0 + ldrb r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + ldr r0, [r6, #0xc] + bl sub_0206BB1C + ldr r1, [sp, #0x0] + bl sub_0206B9B0 + add r4, #0x36 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + ldr r0, [r7, #0x0] + add r1, r5, #0x0 + bl sub_0200AD5C + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02040EB4 +sub_02040EB4: ; 0x02040EB4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x3 + bl sub_0207FC5C + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200AD94 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040EF8 +sub_02040EF8: ; 0x02040EF8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + sub r2, r2, #0x1 + lsl r2, r2, #0x10 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + lsr r2, r2, #0x10 + bl sub_0200B534 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02040F34 +sub_02040F34: ; 0x02040F34 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200AE70 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040F6C +sub_02040F6C: ; 0x02040F6C + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200AEA8 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040FA4 +sub_02040FA4: ; 0x02040FA4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B388 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02040FDC +sub_02040FDC: ; 0x02040FDC + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B20C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02041014 +sub_02041014: ; 0x02041014 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B19C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204104C +sub_0204104C: ; 0x0204104C + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + ldr r0, [r5, #0x8] + add r1, r4, #0x0 + add r0, r0, #0x1 + str r0, [r5, #0x8] + ldr r0, [r6, #0x0] + add r2, r7, #0x0 + bl sub_0200ACC0 + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02041094 +sub_02041094: ; 0x02041094 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r5, #0x80 + ldr r0, [r5, #0x0] + ldrb r4, [r1, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F3C0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200ACC0 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020410C8 +sub_020410C8: ; 0x020410C8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B698 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02041100 +sub_02041100: ; 0x02041100 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + bl sub_0200B09C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02041138 +sub_02041138: ; 0x02041138 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r1, [r5, #0x8] + add r6, r0, #0x0 + add r0, r1, #0x1 + str r0, [r5, #0x8] + add r0, r5, #0x0 + ldrb r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + sub r2, r2, #0x1 + lsl r2, r2, #0x10 + ldr r0, [r6, #0x0] + add r1, r4, #0x0 + lsr r2, r2, #0x10 + bl sub_0200B568 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02041174 +sub_02041174: ; 0x02041174 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + ldr r2, [r4, #0x8] + add r1, r2, #0x1 + str r1, [r4, #0x8] + ldrb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + bl sub_0200B7A8 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02041194 +sub_02041194: ; 0x02041194 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F5D8 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020411C4 +sub_020411C4: ; 0x020411C4 + push {r4-r7, lr} + sub sp, #0x24 + add r4, r0, #0x0 + add r0, #0x80 + ldr r7, [r0, #0x0] + ldr r0, [r7, #0xc] + bl sub_02022510 + str r0, [sp, #0x20] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0xc] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + ldr r0, [r7, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + ldr r0, _0204133C ; =0x00000000 + str r0, [sp, #0x1c] + str r0, [sp, #0x18] + ldr r5, [sp, #0x1c] + beq _02041286 +_0204123C: + ldr r0, [r7, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _0204127C + add r0, r4, #0x0 + mov r1, #0x7 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + lsl r1, r1, #0x10 + ldr r0, [sp, #0x0] + lsr r1, r1, #0x10 + bl sub_02041354 + cmp r0, #0x0 + beq _0204127C + ldr r1, [sp, #0x1c] + cmp r1, r0 + bge _0204127C + str r0, [sp, #0x1c] + str r5, [sp, #0x18] +_0204127C: + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, r6 + blo _0204123C +_02041286: + mov r6, #0x0 + str r6, [sp, #0x14] + str r6, [sp, #0x10] + add r7, r6, #0x0 +_0204128E: + mov r5, #0x0 +_02041290: + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x10] + add r2, r5, #0x0 + bl sub_0206B5E4 + mov r1, #0x5 + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020672BC + cmp r0, #0x0 + beq _020412E0 + add r0, r4, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020672BC + cmp r0, #0x0 + bne _020412E0 + add r0, r4, #0x0 + mov r1, #0x7 + mov r2, #0x0 + bl sub_020672BC + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + lsl r1, r1, #0x10 + ldr r0, [sp, #0x0] + lsr r1, r1, #0x10 + bl sub_02041354 + cmp r0, #0x0 + beq _020412E0 + cmp r6, r0 + bge _020412E0 + add r6, r0, #0x0 + add r0, r5, r7 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x14] +_020412E0: + add r5, r5, #0x1 + cmp r5, #0x1e + blo _02041290 + ldr r0, [sp, #0x10] + add r7, #0x1e + add r0, r0, #0x1 + str r0, [sp, #0x10] + cmp r0, #0x12 + blo _0204128E + ldr r0, [sp, #0x1c] + cmp r0, #0x0 + bne _0204130C + cmp r6, #0x0 + bne _0204130C + ldr r0, [sp, #0xc] + mov r1, #0x0 + strh r1, [r0, #0x0] + ldr r0, [sp, #0x8] + strh r1, [r0, #0x0] + ldr r0, [sp, #0x4] + strh r1, [r0, #0x0] + b _02041336 +_0204130C: + ldr r0, [sp, #0x1c] + cmp r0, r6 + blo _02041326 + ldr r1, [sp, #0x18] + ldr r0, [sp, #0xc] + strh r1, [r0, #0x0] + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x8] + strh r1, [r0, #0x0] + ldr r0, [sp, #0x4] + mov r1, #0x0 + strh r1, [r0, #0x0] + b _02041336 +_02041326: + ldr r1, [sp, #0x14] + ldr r0, [sp, #0xc] + strh r1, [r0, #0x0] + ldr r0, [sp, #0x8] + mov r1, #0x1 + strh r6, [r0, #0x0] + ldr r0, [sp, #0x4] + strh r1, [r0, #0x0] +_02041336: + mov r0, #0x0 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 +_0204133C: .word 0x00000000 + + thumb_func_start sub_02041340 +sub_02041340: ; 0x02041340 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F5FC + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02041354 +sub_02041354: ; 0x02041354 + push {r4-r7, lr} + sub sp, #0xc + mov r6, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r7, r6, #0x0 +_02041360: + add r0, r5, #0x0 + mov r1, #0xa + blx sub_020EBC80 + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + str r1, [sp, #0x0] + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0xa + blx sub_020EBC80 + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x8] + ldr r0, [sp, #0x0] + cmp r0, r1 + bne _020413AC + add r0, r5, #0x0 + mov r1, #0xa + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0x0 + mov r1, #0xa + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + add r0, r7, #0x1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + cmp r7, #0x5 + blo _02041360 +_020413AC: + ldr r1, _020413BC ; =0x021C5A10 + ldr r0, [sp, #0x8] + strh r0, [r1, #0x2] + ldr r0, [sp, #0x4] + strh r0, [r1, #0x0] + add r0, r6, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_020413BC: .word 0x021C5A10 + + thumb_func_start sub_020413C0 +sub_020413C0: ; 0x020413C0 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02005410 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_020413E8 +sub_020413E8: ; 0x020413E8 + push {r3, lr} + bl sub_02038C30 + bl sub_0200521C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020413F8 +sub_020413F8: ; 0x020413F8 + push {r3, lr} + bl sub_02038C30 + bl sub_02004124 + mov r1, #0x0 + bl sub_02005350 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0204140C +sub_0204140C: ; 0x0204140C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x1c] + ldr r1, [r1, #0x0] + bl sub_0204ABA8 + bl sub_0200521C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02041424 +sub_02041424: ; 0x02041424 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204AB20 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0204143C +sub_0204143C: ; 0x0204143C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_020053CC + ldr r1, _02041460 ; =sub_02041464 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_02041460: .word sub_02041464 + 1 + + thumb_func_start sub_02041464 +sub_02041464: ; 0x02041464 + push {r3, lr} + bl sub_02005404 + cmp r0, #0x0 + bne _02041472 + mov r0, #0x1 + pop {r3, pc} +_02041472: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02041478 +sub_02041478: ; 0x02041478 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + mov r0, #0x7f + mov r2, #0x0 + bl sub_0200538C + ldr r1, _02041498 ; =sub_02041464 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_02041498: .word sub_02041464 + 1 + + thumb_func_start sub_0204149C +sub_0204149C: ; 0x0204149C + push {r3, lr} + ldr r1, [r0, #0x8] + add r3, r1, #0x1 + str r3, [r0, #0x8] + ldrb r2, [r1, #0x0] + add r1, r3, #0x1 + str r1, [r0, #0x8] + ldrb r1, [r3, #0x0] + add r0, r2, #0x0 + bl sub_020047C8 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020414B8 +sub_020414B8: ; 0x020414B8 + push {r3, lr} + bl sub_02038C30 + add r1, r0, #0x0 + mov r0, #0x4 + bl sub_02005308 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020414CC +sub_020414CC: ; 0x020414CC + push {r3, lr} + ldr r2, [r0, #0x8] + add r1, r2, #0x1 + str r1, [r0, #0x8] + ldrb r0, [r2, #0x0] + bl sub_020040F4 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020414E0 +sub_020414E0: ; 0x020414E0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + bl sub_020054C8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020414FC +sub_020414FC: ; 0x020414FC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + mov r1, #0x0 + bl sub_020054F0 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02041518 +sub_02041518: ; 0x02041518 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [r4, #0x64] + ldr r1, _0204153C ; =sub_02041540 + add r0, r4, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4, pc} + nop +_0204153C: .word sub_02041540 + 1 + + thumb_func_start sub_02041540 +sub_02041540: ; 0x02041540 + push {r3, lr} + ldr r0, [r0, #0x64] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02005508 + cmp r0, #0x0 + bne _02041554 + mov r0, #0x1 + pop {r3, pc} +_02041554: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02041558 +sub_02041558: ; 0x02041558 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r0, r5, #0x0 + bl sub_02005578 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02041588 +sub_02041588: ; 0x02041588 + push {r3, lr} + ldr r1, _02041594 ; =sub_02041598 + bl sub_02038B5C + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_02041594: .word sub_02041598 + 1 + + thumb_func_start sub_02041598 +sub_02041598: ; 0x02041598 + push {r3, lr} + bl sub_02005670 + cmp r0, #0x0 + bne _020415A6 + mov r0, #0x1 + pop {r3, pc} +_020415A6: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020415AC +sub_020415AC: ; 0x020415AC + push {r3, lr} + bl sub_02038C30 + bl sub_02005C28 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020415BC +sub_020415BC: ; 0x020415BC + push {r3, lr} + ldr r1, _020415C8 ; =sub_020415CC + bl sub_02038B5C + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_020415C8: .word sub_020415CC + 1 + + thumb_func_start sub_020415CC +sub_020415CC: ; 0x020415CC + push {r3, lr} + bl sub_02005CBC + cmp r0, #0x0 + bne _020415DA + mov r0, #0x1 + pop {r3, pc} +_020415DA: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020415E0 +sub_020415E0: ; 0x020415E0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029EF8 + bl sub_02005D20 + cmp r0, #0x1 + bne _02041610 + mov r0, #0x1 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} +_02041610: + mov r0, #0x0 + strh r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02041618 +sub_02041618: ; 0x02041618 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + bl sub_02005E28 + cmp r0, #0x0 + bne _0204163C + mov r0, #0x1 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4, pc} +_0204163C: + mov r0, #0x0 + strh r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02041644 +sub_02041644: ; 0x02041644 + push {r3, lr} + bl sub_02005E64 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02041650 +sub_02041650: ; 0x02041650 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029EF8 + bl sub_02005E6C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_02041664 +sub_02041664: ; 0x02041664 + push {r3, lr} + mov r1, #0x0 + mov r0, #0x3f + add r2, r1, #0x0 + bl sub_0200433C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_02041674 +sub_02041674: ; 0x02041674 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0200488C + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020416A8 +sub_020416A8: ; 0x020416A8 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + bne _02041708 + add r0, r4, #0x0 + mov r1, #0x18 + bl sub_02039438 + str r0, [sp, #0x14] + add r0, r4, #0x0 + mov r1, #0x19 + bl sub_02039438 + str r0, [sp, #0xc] + add r0, r4, #0x0 + mov r1, #0x1a + bl sub_02039438 + add r0, r4, #0x0 + mov r1, #0x1b + bl sub_02039438 + add r0, r4, #0x0 + mov r1, #0x1c + bl sub_02039438 + str r0, [sp, #0x10] + add r0, r4, #0x0 + mov r1, #0x1d + bl sub_02039438 + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x1e + bl sub_02039438 + b _02041748 +_02041708: + add r0, r4, #0x0 + mov r1, #0x1f + bl sub_02039438 + str r0, [sp, #0x14] + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_02039438 + str r0, [sp, #0xc] + add r0, r4, #0x0 + mov r1, #0x21 + bl sub_02039438 + add r0, r4, #0x0 + mov r1, #0x22 + bl sub_02039438 + add r0, r4, #0x0 + mov r1, #0x23 + bl sub_02039438 + str r0, [sp, #0x10] + add r0, r4, #0x0 + mov r1, #0x24 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x25 + bl sub_02039438 +_02041748: + add r7, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x10] + ldr r2, [sp, #0xc] + ldr r0, [r0, #0x0] + ldr r3, [sp, #0x14] + str r0, [sp, #0x4] + str r5, [sp, #0x8] + ldr r0, [r6, #0x0] + ldr r1, [r4, #0x38] + ldr r2, [r2, #0x0] + ldr r3, [r3, #0x0] + bl sub_0205CA4C + str r0, [r7, #0x0] + mov r0, #0x0 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02041770 +sub_02041770: ; 0x02041770 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + mov r0, #0x0 + strh r0, [r4, #0x0] + cmp r6, #0x0 + bne _020417AE + add r5, #0x80 + ldr r0, [r5, #0x0] + mov r1, #0x1e + bl sub_02039438 + b _020417B8 +_020417AE: + add r5, #0x80 + ldr r0, [r5, #0x0] + mov r1, #0x25 + bl sub_02039438 +_020417B8: + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x0 + bne _020417C6 + mov r0, #0x1 + strh r0, [r4, #0x0] + pop {r4-r6, pc} +_020417C6: + bl sub_0205CA64 + cmp r0, #0x1 + bne _020417DC + ldr r0, [r5, #0x0] + bl sub_0205CA78 + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x1 + strh r0, [r4, #0x0] +_020417DC: + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_020417E0 +sub_020417E0: ; 0x020417E0 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x1c + bl sub_02039438 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + ldrh r1, [r5, #0x0] + strh r1, [r0, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02041808 +sub_02041808: ; 0x02041808 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x1b + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x22 + bl sub_02039438 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + cmp r7, #0x0 + bne _02041852 + ldrh r1, [r4, #0x0] + b _02041854 +_02041852: + ldrh r1, [r6, #0x0] +_02041854: + strh r1, [r0, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204185C +sub_0204185C: ; 0x0204185C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x8 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldrh r0, [r4, #0x0] + bl sub_020395F4 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204188C +sub_0204188C: ; 0x0204188C + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + mov r1, #0x8 + add r0, r4, #0x0 + bl sub_02039438 + add r0, r4, #0x0 + mov r1, #0x17 + bl sub_02039438 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0xc] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r6, #0x0 + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED3C + cmp r0, #0x1 + bne _020418F2 + ldr r0, [r4, #0xc] + bl sub_020462AC + bl sub_0205F368 + add r6, r0, #0x0 +_020418F2: + mov r0, #0xb + str r0, [sp, #0x0] + str r7, [sp, #0x4] + ldr r0, [r5, #0x74] + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x8] + add r3, r6, #0x0 + bl sub_020470E8 + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204190C +sub_0204190C: ; 0x0204190C + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x17 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r2, r0, #0x0 + mov r0, #0xb + str r0, [sp, #0x0] + str r4, [sp, #0x4] + ldr r0, [r5, #0x74] + add r1, r7, #0x0 + add r3, r6, #0x0 + bl sub_020470E8 + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02041970 +sub_02041970: ; 0x02041970 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x8 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldrh r0, [r4, #0x0] + bl sub_020395F4 + bl sub_0203962C + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bne _020419D2 + mov r0, #0x0 + mov r1, #0x2 + add r2, r0, #0x0 + b _020419EC +_020419D2: + ldrh r0, [r4, #0x0] + bl sub_02039618 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bne _020419E6 + mov r0, #0x3 + mov r1, #0x5 + mov r2, #0x6 + b _020419EC +_020419E6: + mov r0, #0x7 + mov r1, #0x9 + mov r2, #0xa +_020419EC: + strh r0, [r7, #0x0] + strh r1, [r6, #0x0] + strh r2, [r5, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020419F8 +sub_020419F8: ; 0x020419F8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x8 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldrh r0, [r4, #0x0] + bl sub_020395F4 + bl sub_0203962C + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bne _02041A5A + mov r1, #0x0 + mov r0, #0x11 + add r2, r1, #0x0 + b _02041A74 +_02041A5A: + ldrh r0, [r4, #0x0] + bl sub_02039618 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bne _02041A6E + mov r0, #0x12 + mov r1, #0x0 + mov r2, #0x6 + b _02041A74 +_02041A6E: + mov r0, #0x13 + mov r1, #0x0 + mov r2, #0xa +_02041A74: + strh r0, [r7, #0x0] + strh r1, [r6, #0x0] + strh r2, [r5, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02041A80 +sub_02041A80: ; 0x02041A80 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x8 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldrh r0, [r4, #0x0] + bl sub_020395F4 + bl sub_0203962C + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02041AB4 +sub_02041AB4: ; 0x02041AB4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + bl sub_0204AD0C + bl sub_02004724 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02041AD4 +sub_02041AD4: ; 0x02041AD4 + push {r3, lr} + ldr r0, [r0, #0x74] + bl sub_02048498 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_02041AE0 +sub_02041AE0: ; 0x02041AE0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x17 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020480B8 + strh r0, [r5, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02041B10 +sub_02041B10: ; 0x02041B10 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x17 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020480C8 + strh r0, [r5, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02041B40 +sub_02041B40: ; 0x02041B40 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x17 + bl sub_02039438 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020480D8 + strh r0, [r5, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02041B70 +sub_02041B70: ; 0x02041B70 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + bl sub_0204A248 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02041B9C +sub_02041B9C: ; 0x02041B9C + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x17 + bl sub_02039438 + mov r1, #0xb + str r1, [sp, #0x0] + str r0, [sp, #0x4] + mov r2, #0x0 + ldr r0, [r4, #0x74] + mov r1, #0x1 + add r3, r2, #0x0 + bl sub_020470E8 + mov r0, #0x1 + add sp, #0x8 + pop {r4, pc} + + thumb_func_start sub_02041BC4 +sub_02041BC4: ; 0x02041BC4 + push {r3-r5, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xa + bl sub_02039438 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02058738 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02058448 + add r1, r0, #0x0 + lsl r1, r1, #0x10 + add r0, r4, #0x0 + lsr r1, r1, #0x10 + bl sub_0203965C + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02041BF0 +sub_02041BF0: ; 0x02041BF0 + push {r3-r7, lr} + add r6, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xa + bl sub_02039438 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02038C48 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02058738 + add r7, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02058448 + add r1, r0, #0x0 + lsl r1, r1, #0x10 + add r0, r7, #0x0 + lsr r1, r1, #0x10 + bl sub_02039640 + cmp r0, #0x1 + bne _02041C34 + ldr r1, [r6, #0x8] + add r0, r6, #0x0 + add r1, r1, r4 + bl sub_02038C10 + mov r0, #0x1 + pop {r3-r7, pc} +_02041C34: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02041C38 +sub_02041C38: ; 0x02041C38 + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0xf + bl sub_02039438 + add r6, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0202881C + add r5, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r7, [r0, #0xc] + add r0, r4, #0x0 + bl sub_02038C30 + cmp r0, #0x6 + bls _02041C6C + b _02041E38 +_02041C6C: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r2, r0, #0x1 + lsl r0, r7, #0x1 + lsl r6, r5, #0x2 + lsl r4, r4, #0x3 + lsl r2, r3, #0x4 + lsl r4, r2, #0x5 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02028828 + strh r0, [r4, #0x0] + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_02041CBC: + .byte 0x20, 0x1C, 0xF6, 0xF7 + .byte 0xB7, 0xFF, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0x11, 0xFC, 0x06, 0x1C + .byte 0x20, 0x1C, 0xF6, 0xF7, 0xAD, 0xFF, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xF7, 0xF7, 0xEC, 0xFB + .byte 0x04, 0x1C, 0x28, 0x1C, 0x31, 0x1C, 0xE6, 0xF7, 0xAB, 0xFD, 0x20, 0x80, 0x03, 0xB0, 0x00, 0x20 + .byte 0xF0, 0xBD, 0x20, 0x1C, 0xF6, 0xF7, 0x9C, 0xFF, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF7, 0xF7, 0xF6, 0xFB, 0x05, 0x1C, 0x20, 0x1C, 0xF6, 0xF7, 0x92, 0xFF, 0x80, 0x34, 0x01, 0x1C + .byte 0x20, 0x68, 0xF7, 0xF7, 0xED, 0xFB, 0x03, 0x1C, 0x00, 0x20, 0x00, 0x90, 0x30, 0x68, 0x39, 0x1C + .byte 0x2A, 0x1C, 0xC9, 0xF7, 0xF1, 0xFC, 0x87, 0xE0, 0x20, 0x1C, 0xF6, 0xF7, 0x81, 0xFF, 0x01, 0x1C + .byte 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0xDB, 0xFB, 0x05, 0x1C, 0x20, 0x1C, 0xF6, 0xF7 + .byte 0x77, 0xFF, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xF7, 0xF7, 0xD2, 0xFB, 0x03, 0x1C, 0x01, 0x20 + .byte 0x00, 0x90, 0x30, 0x68, 0x39, 0x1C, 0x2A, 0x1C, 0xC9, 0xF7, 0xD6, 0xFC, 0x6C, 0xE0, 0x00, 0x21 + .byte 0x28, 0x1C, 0x0A, 0x1C, 0xE6, 0xF7, 0x20, 0xFD, 0x05, 0x1C, 0x20, 0x1C, 0xF6, 0xF7, 0x60, 0xFF + .byte 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0x9E, 0xFB, 0x00, 0x22, 0x00, 0x92 + .byte 0x01, 0x95, 0x02, 0x90, 0x60, 0x6F, 0x05, 0x21, 0x07, 0x23, 0xF6, 0xF7, 0x1F, 0xFC, 0x03, 0xB0 + .byte 0x01, 0x20, 0xF0, 0xBD, 0x20, 0x1C, 0xF6, 0xF7, 0x4B, 0xFF, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xF7, 0xF7, 0xA5, 0xFB, 0x07, 0x1C, 0x28, 0x1C, 0x01, 0x21, 0xE6, 0xF7, 0x3C, 0xFD + .byte 0x06, 0x1C, 0x28, 0x1C, 0x39, 0x1C, 0x01, 0x22, 0xE6, 0xF7, 0xA2, 0xFC, 0x00, 0x2E, 0x03, 0xD0 + .byte 0x80, 0x34, 0x20, 0x68, 0x1F, 0xF0, 0x98, 0xFA, 0x03, 0xB0, 0x00, 0x20, 0xF0, 0xBD, 0x40, 0x20 + .byte 0x20, 0x21, 0xDF, 0xF7, 0x0F, 0xFE, 0x06, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68 + .byte 0xE1, 0xF7, 0x88, 0xFD, 0x31, 0x1C, 0x07, 0x1C, 0xE1, 0xF7, 0xD2, 0xFD, 0x28, 0x1C, 0x00, 0x21 + .byte 0x01, 0x22, 0x33, 0x1C, 0xE6, 0xF7, 0xE4, 0xFC, 0x38, 0x1C, 0xE1, 0xF7, 0xE7, 0xFD, 0x02, 0x1C + .byte 0x28, 0x1C, 0x00, 0x21, 0xE6, 0xF7, 0xF2, 0xFC, 0x28, 0x1C, 0x00, 0x21, 0x02, 0x22, 0xE6, 0xF7 + .byte 0xFF, 0xFC, 0xD9, 0xF7, 0x25, 0xFE, 0x02, 0x1C, 0x28, 0x1C, 0x00, 0x21, 0xE6, 0xF7, 0xB4, 0xFC + .byte 0x30, 0x1C, 0xDF, 0xF7, 0xFD, 0xFD, 0x28, 0x1C, 0x00, 0x21, 0x01, 0x22, 0xE6, 0xF7, 0x68, 0xFC + .byte 0x80, 0x34, 0x20, 0x68, 0x1F, 0xF0, 0x5A, 0xFA +_02041E38: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02041E40 +sub_02041E40: ; 0x02041E40 + push {r3-r7, lr} + add r4, r0, #0x0 + bl sub_02038C30 + cmp r0, #0x6 + bls _02041E4E + b _02041FD2 +_02041E4E: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r4, r5, #0 + lsl r0, r1, #0x3 + lsl r6, r5, #0x1 + lsl r2, r2, #0x3 + lsl r4, r1, #0x4 + lsl r0, r3, #0x5 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02248CD0 + strh r0, [r5, #0x0] + b _02041FD2 +_02041E88: + .byte 0x20, 0x1C, 0xF6, 0xF7, 0xD1, 0xFE, 0x07, 0x1C + .byte 0x20, 0x1C, 0xF6, 0xF7, 0xCD, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7 + .byte 0x0B, 0xFB, 0x05, 0x1C, 0x20, 0x1C, 0xF6, 0xF7, 0xC3, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xF7, 0xF7, 0x01, 0xFB, 0x06, 0x1C, 0x47, 0x48, 0x80, 0x34, 0x28, 0x80, 0x20, 0x68 + .byte 0x39, 0x1C, 0x07, 0xF2, 0xB9, 0xF8, 0x30, 0x80, 0x83, 0xE0, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0x0F, 0x21, 0xF7, 0xF7, 0xB1, 0xFA, 0x05, 0x1C, 0x20, 0x1C, 0xF6, 0xF7, 0xA9, 0xFE, 0x01, 0x1C + .byte 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0x03, 0xFB, 0x06, 0x1C, 0x20, 0x1C, 0xF6, 0xF7 + .byte 0x9F, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0xDD, 0xFA, 0x07, 0x1C + .byte 0x20, 0x1C, 0xF6, 0xF7, 0x95, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7 + .byte 0xD3, 0xFA, 0x00, 0x90, 0x80, 0x34, 0x20, 0x68, 0x29, 0x68, 0x32, 0x1C, 0x3B, 0x1C, 0x07, 0xF2 + .byte 0xBF, 0xF8, 0x56, 0xE0, 0x80, 0x34, 0x20, 0x68, 0x06, 0xF2, 0xCA, 0xFE, 0x51, 0xE0, 0x20, 0x1C + .byte 0xF6, 0xF7, 0x7E, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0xBC, 0xFA + .byte 0x05, 0x1C, 0x20, 0x1C, 0xF6, 0xF7, 0x74, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF7, 0xF7, 0xB2, 0xFA, 0x06, 0x1C, 0x8D, 0x20, 0x80, 0x00, 0x80, 0x34, 0x28, 0x80, 0x20, 0x68 + .byte 0x07, 0xF2, 0x4C, 0xF9, 0x30, 0x80, 0x34, 0xE0, 0x20, 0x1C, 0xF6, 0xF7, 0x61, 0xFE, 0x01, 0x1C + .byte 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0xBB, 0xFA, 0x06, 0x1C, 0x20, 0x1C, 0xF6, 0xF7 + .byte 0x57, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0xB1, 0xFA, 0x07, 0x1C + .byte 0x20, 0x1C, 0xF6, 0xF7, 0x4D, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7 + .byte 0x8B, 0xFA, 0x80, 0x34, 0x05, 0x1C, 0x20, 0x68, 0x31, 0x1C, 0x3A, 0x1C, 0x06, 0xF2, 0xE0, 0xFF + .byte 0x28, 0x80, 0x0E, 0xE0, 0x20, 0x1C, 0xF6, 0xF7, 0x3B, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xF7, 0xF7, 0x79, 0xFA, 0x80, 0x34, 0x05, 0x1C, 0x20, 0x68, 0x07, 0xF2, 0x08, 0xF8 + .byte 0x28, 0x80 +_02041FD2: + mov r0, #0x0 + pop {r3-r7, pc} + nop +_02041FD8: + .byte 0x33, 0x02, 0x00, 0x00, 0x10, 0xB5, 0x04, 0x1C + .byte 0xF6, 0xF7, 0x26, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0x80, 0xFA + .byte 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0x1F, 0xF0, 0xBD, 0xF9, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00 + .byte 0x38, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0x29, 0xF0, 0x87, 0xFD, 0x04, 0x1C + .byte 0x28, 0x1C, 0xF6, 0xF7, 0x0D, 0xFE, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7 + .byte 0x67, 0xFA, 0x01, 0x1C, 0x20, 0x1C, 0x29, 0xF0, 0xC3, 0xFC, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68 + .byte 0x1F, 0xF0, 0x16, 0xFA, 0x00, 0x20, 0x38, 0xBD, 0xF8, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0x0F, 0x21, 0xF7, 0xF7, 0xF9, 0xF9, 0x04, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0xF1, 0xFD, 0x00, 0x28 + .byte 0x02, 0xD0, 0x01, 0x28, 0x28, 0xD0, 0x56, 0xE0, 0x28, 0x1C, 0xF6, 0xF7, 0xE9, 0xFD, 0x01, 0x1C + .byte 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0x43, 0xFA, 0x00, 0x90, 0x28, 0x1C, 0xF6, 0xF7 + .byte 0xDF, 0xFD, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0x1D, 0xFA, 0x06, 0x1C + .byte 0x28, 0x1C, 0xF6, 0xF7, 0xD5, 0xFD, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7 + .byte 0x13, 0xFA, 0x07, 0x1C, 0x1D, 0x48, 0x80, 0x35, 0x30, 0x80, 0x00, 0x98, 0x29, 0x68, 0x22, 0x68 + .byte 0x00, 0xF0, 0xA6, 0xF8, 0x38, 0x80, 0x2E, 0xE0, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68 + .byte 0xE7, 0xF7, 0x8A, 0xFF, 0x04, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0xBA, 0xFD, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0x14, 0xFA, 0x06, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0xB0, 0xFD + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0x0A, 0xFA, 0x07, 0x1C, 0x28, 0x1C + .byte 0xF6, 0xF7, 0xA6, 0xFD, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0x00, 0xFA + .byte 0x80, 0x35, 0x03, 0x1C, 0x28, 0x68, 0x31, 0x1C, 0x3A, 0x1C, 0x00, 0xF0, 0x6D, 0xF8, 0x20, 0x1C + .byte 0x03, 0x21, 0xE8, 0xF7, 0x35, 0xF8, 0x00, 0x20, 0xF8, 0xBD, 0xC0, 0x46, 0x32, 0x02, 0x00, 0x00 + .byte 0x70, 0xB5, 0x05, 0x1C, 0xF6, 0xF7, 0x8C, 0xFD, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF7, 0xF7, 0xE6, 0xF9, 0x06, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0x82, 0xFD, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0xC0, 0xF9, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0x31, 0x1C + .byte 0x00, 0xF0, 0x68, 0xF8, 0x20, 0x80, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xE0, 0xF7, 0xD5, 0xF9, 0x04, 0x1C, 0x28, 0x1C, 0xF6, 0xF7 + .byte 0x67, 0xFD, 0x00, 0x28, 0x04, 0xD0, 0x01, 0x28, 0x1B, 0xD0, 0x02, 0x28, 0x26, 0xD0, 0x31, 0xE0 + .byte 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0x29, 0xF0, 0xD0, 0xFC, 0x06, 0x1C, 0x28, 0x1C + .byte 0xF6, 0xF7, 0x56, 0xFD, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF7, 0xF7, 0xB1, 0xF9, 0x01, 0x1C + .byte 0x30, 0x1C, 0x29, 0xF0, 0x0D, 0xFC, 0x01, 0x1C, 0x20, 0x1C, 0x04, 0x22, 0x1E, 0xF0, 0xCE, 0xFE + .byte 0x18, 0xE0, 0x28, 0x1C, 0xF6, 0xF7, 0x44, 0xFD, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF7, 0xF7 + .byte 0x9F, 0xF9, 0x01, 0x1C, 0x20, 0x1C, 0x1E, 0xF0, 0xF1, 0xFE, 0x0B, 0xE0, 0x28, 0x1C, 0xF6, 0xF7 + .byte 0x37, 0xFD, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF7, 0xF7, 0x92, 0xF9, 0x01, 0x1C, 0x20, 0x1C + .byte 0x1E, 0xF0, 0xDA, 0xFE, 0x00, 0x20, 0x70, 0xBD, 0x08, 0xB5, 0x49, 0x1E, 0x0B, 0x01, 0x03, 0x49 + .byte 0xCB, 0x58, 0x00, 0x2B, 0x01, 0xD0, 0x11, 0x1C, 0x98, 0x47, 0x08, 0xBD, 0x64, 0x42, 0x0F, 0x02 + .byte 0x10, 0xB5, 0x40, 0x1E, 0x04, 0x01, 0x05, 0x48, 0x03, 0x59, 0x00, 0x2B, 0x02, 0xD0, 0x08, 0x1C + .byte 0x11, 0x1C, 0x98, 0x47, 0x02, 0x48, 0x00, 0x59, 0x10, 0xBD, 0xC0, 0x46, 0x68, 0x42, 0x0F, 0x02 + .byte 0x70, 0x42, 0x0F, 0x02, 0x38, 0xB5, 0x04, 0x1C, 0xE0, 0x68, 0x0D, 0x1C, 0xE0, 0xF7, 0x72, 0xF9 + .byte 0x01, 0x21, 0x2A, 0x1C, 0xE9, 0xF7, 0x74, 0xFA, 0x00, 0x28, 0x01, 0xD1, 0x00, 0x20, 0x38, 0xBD + .byte 0x68, 0x1E, 0x01, 0x01, 0x04, 0x48, 0x41, 0x58, 0x00, 0x29, 0x01, 0xD1, 0x01, 0x20, 0x38, 0xBD + .byte 0x20, 0x1C, 0x88, 0x47, 0x38, 0xBD, 0xC0, 0x46, 0x6C, 0x42, 0x0F, 0x02, 0xF0, 0xB5, 0x83, 0xB0 + .byte 0x05, 0x1C, 0x0E, 0x1C, 0x17, 0x1C, 0x40, 0x20, 0x04, 0x21, 0x02, 0x93, 0xDF, 0xF7, 0xCA, 0xFB + .byte 0x39, 0x1C, 0x04, 0x1C, 0xDF, 0xF7, 0xE0, 0xFD, 0x09, 0x98, 0x02, 0x9B, 0x00, 0x90, 0x08, 0x98 + .byte 0x31, 0x1C, 0x01, 0x90, 0x28, 0x1C, 0x22, 0x1C, 0xC8, 0xF7, 0x9C, 0xFC, 0x20, 0x1C, 0xDF, 0xF7 + .byte 0xCF, 0xFB, 0x03, 0xB0, 0xF0, 0xBD, 0x00, 0x00, 0x10, 0xB5, 0xC0, 0x68, 0x0C, 0x1C, 0x29, 0xF0 + .byte 0x45, 0xFC, 0x07, 0xF0, 0xBB, 0xFF, 0x26, 0xF0, 0x25, 0xFF, 0x02, 0x1C, 0x20, 0x1C, 0x00, 0x21 + .byte 0xC8, 0xF7, 0xDE, 0xFC, 0x10, 0xBD, 0x00, 0x00, 0x10, 0xB5, 0x40, 0x68, 0x0C, 0x1C, 0x40, 0x69 + .byte 0x10, 0xF2, 0x42, 0xF9, 0x02, 0x1C, 0x20, 0x1C, 0x00, 0x21, 0xC8, 0xF7, 0xB7, 0xFE, 0x10, 0xBD + .byte 0x10, 0xB5, 0x88, 0xB0, 0xC0, 0x68, 0x0C, 0x1C, 0xE0, 0xF7, 0x1C, 0xF9, 0xE9, 0xF7, 0xBA, 0xFA + .byte 0x40, 0x88, 0x04, 0x21, 0x02, 0xAA, 0xC8, 0xF7, 0x61, 0xFB, 0x02, 0x20, 0x00, 0x90, 0x01, 0x20 + .byte 0x00, 0x21, 0x01, 0x90, 0x20, 0x1C, 0x02, 0xAA, 0x0B, 0x1C, 0xFF, 0xF7, 0xAF, 0xFF, 0x08, 0xB0 + .byte 0x10, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0xC0, 0x68, 0xE0, 0xF7, 0x04, 0xF9, 0xE9, 0xF7, 0xAE, 0xFA + .byte 0x00, 0x78, 0x08, 0xBD, 0x08, 0xB5, 0xC0, 0x68, 0x09, 0xF0, 0x4E, 0xFF, 0x09, 0xF0, 0xDC, 0xFD + .byte 0x08, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0xC0, 0x68, 0xE0, 0xF7, 0xF4, 0xF8, 0xE9, 0xF7, 0x8C, 0xFA + .byte 0x00, 0x78, 0x08, 0xBD, 0x08, 0xB5, 0xC0, 0x68, 0xE5, 0xF7, 0x7C, 0xFD, 0x00, 0x21, 0xE4, 0xF7 + .byte 0xB3, 0xFE, 0x08, 0xBD, 0x08, 0xB5, 0xC0, 0x68, 0xE0, 0xF7, 0xE4, 0xF8, 0xE9, 0xF7, 0x88, 0xFA + .byte 0x00, 0x78, 0x08, 0xBD, 0x08, 0xB5, 0xC0, 0x68, 0xE0, 0xF7, 0xDC, 0xF8, 0xE9, 0xF7, 0x7A, 0xFA + .byte 0x00, 0x78, 0x08, 0xBD, 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0xA8, 0x30, 0x01, 0xF2, 0xAE, 0xF8 + .byte 0x00, 0x20, 0x08, 0xBD, 0x70, 0xB5, 0x05, 0x1C, 0xF6, 0xF7, 0x62, 0xFC, 0x04, 0x1C, 0x28, 0x1C + .byte 0xF6, 0xF7, 0x5E, 0xFC, 0x06, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x16, 0xFA + .byte 0x21, 0x1C, 0x32, 0x1C, 0x01, 0xF2, 0xA4, 0xF8, 0x80, 0x35, 0x29, 0x68, 0xA8, 0x31, 0x08, 0x60 + .byte 0x00, 0x20, 0x70, 0xBD, 0x10, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xA8, 0x30, 0x00, 0x68 + .byte 0x01, 0xF2, 0x78, 0xF9, 0x80, 0x34, 0x21, 0x68, 0x00, 0x20, 0xA8, 0x31, 0x08, 0x60, 0x10, 0xBD + .byte 0xF8, 0xB5, 0x82, 0xB0, 0x07, 0x1C, 0xF6, 0xF7, 0x3B, 0xFC, 0x00, 0x90, 0x38, 0x1C, 0xF6, 0xF7 + .byte 0x37, 0xFC, 0x01, 0x1C, 0x38, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF7, 0xF7, 0x91, 0xF8, 0x06, 0x1C + .byte 0x38, 0x1C, 0xF6, 0xF7, 0x2D, 0xFC, 0x01, 0x90, 0x38, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x01, 0x99 + .byte 0xF7, 0xF7, 0x6A, 0xF8, 0x04, 0x1C, 0x38, 0x1C, 0x80, 0x30, 0x01, 0x68, 0x08, 0x1C, 0xA8, 0x30 + .byte 0x05, 0x68, 0x00, 0x98, 0x64, 0x28, 0x00, 0xD9, 0x7D, 0xE1, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88 + .byte 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0xC8, 0x00, 0xD2, 0x00, 0xEE, 0x00, 0xF4, 0x00, 0x00, 0x01 + .byte 0x0E, 0x01, 0x16, 0x01, 0xEE, 0x02, 0x1E, 0x01, 0x2A, 0x01, 0x38, 0x01, 0x46, 0x01, 0x52, 0x01 + .byte 0xEE, 0x02, 0x5C, 0x01, 0x66, 0x01, 0x70, 0x01, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02 + .byte 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02 + .byte 0xEE, 0x02, 0x82, 0x01, 0x9A, 0x01, 0xB4, 0x01, 0xC0, 0x01, 0xCA, 0x01, 0xD4, 0x01, 0xDE, 0x01 + .byte 0xE8, 0x01, 0xF0, 0x01, 0xF8, 0x01, 0x00, 0x02, 0x12, 0x02, 0x1E, 0x02, 0x3A, 0x02, 0x44, 0x02 + .byte 0x4E, 0x02, 0x58, 0x02, 0x62, 0x02, 0x6C, 0x02, 0x78, 0x02, 0x84, 0x02, 0x98, 0x02, 0xA2, 0x02 + .byte 0xAC, 0x02, 0xB6, 0x02, 0xC4, 0x02, 0x0A, 0x02, 0xD2, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02 + .byte 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02 + .byte 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02 + .byte 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02 + .byte 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02 + .byte 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xEE, 0x02, 0xDE, 0x02 + .byte 0x30, 0x1C, 0x00, 0xF2, 0x2B, 0xFE, 0x20, 0x80, 0x0F, 0xE1, 0x00, 0x2E, 0x05, 0xD1, 0xA8, 0x7B + .byte 0xC9, 0x68, 0x00, 0xF2, 0xFF, 0xFE, 0x20, 0x80, 0x07, 0xE1, 0xC9, 0x68, 0x30, 0x1C, 0x00, 0xF2 + .byte 0xF9, 0xFE, 0x20, 0x80, 0x01, 0xE1, 0x00, 0xF2, 0x51, 0xFF, 0xFE, 0xE0, 0xC8, 0x68, 0xE8, 0xF7 + .byte 0xE5, 0xF9, 0x00, 0xF2, 0x51, 0xFF, 0xF8, 0xE0, 0xC8, 0x68, 0xE8, 0xF7, 0xDF, 0xF9, 0x00, 0xF2 + .byte 0x4F, 0xFF, 0x20, 0x80, 0xF1, 0xE0, 0x08, 0x1C, 0x00, 0xF2, 0x4E, 0xFF, 0xED, 0xE0, 0x08, 0x1C + .byte 0x00, 0xF2, 0x6A, 0xFF, 0xE9, 0xE0, 0xC8, 0x68, 0x31, 0x1C, 0x00, 0xF2, 0x6D, 0xFF, 0x20, 0x80 + .byte 0xE3, 0xE0, 0xC9, 0x68, 0x00, 0x20, 0x02, 0x22, 0x01, 0xF2, 0x9C, 0xFC, 0x20, 0x80, 0xDC, 0xE0 + .byte 0x00, 0x20, 0xC9, 0x68, 0x02, 0x1C, 0x01, 0xF2, 0x95, 0xFC, 0x20, 0x80, 0xD5, 0xE0, 0xC8, 0x68 + .byte 0x31, 0x06, 0x09, 0x0E, 0x00, 0xF2, 0x68, 0xFF, 0xCF, 0xE0, 0xC8, 0x68, 0x00, 0xF2, 0x74, 0xFF + .byte 0x20, 0x80, 0xCA, 0xE0, 0xC8, 0x68, 0x00, 0xF2, 0x79, 0xFF, 0x20, 0x80, 0xC5, 0xE0, 0xC8, 0x68 + .byte 0x00, 0xF2, 0x9C, 0xFF, 0x20, 0x80, 0xC0, 0xE0, 0x23, 0x88, 0x78, 0x6F, 0x01, 0x9A, 0x31, 0x1C + .byte 0x1D, 0xF0, 0xDA, 0xFB, 0x02, 0xB0, 0x01, 0x20, 0xF8, 0xBD, 0x08, 0x1C, 0x13, 0x21, 0xF6, 0xF7 + .byte 0x53, 0xFF, 0x02, 0x1C, 0x79, 0x6F, 0x28, 0x1C, 0x01, 0xF2, 0x96, 0xF8, 0x02, 0xB0, 0x01, 0x20 + .byte 0xF8, 0xBD, 0x08, 0x1C, 0x13, 0x21, 0xF6, 0xF7, 0x47, 0xFF, 0x80, 0x37, 0x3A, 0x68, 0x01, 0x1C + .byte 0xD2, 0x68, 0x28, 0x1C, 0x01, 0xF2, 0x98, 0xF8, 0x20, 0x80, 0x9E, 0xE0, 0xC9, 0x68, 0x28, 0x1C + .byte 0x01, 0xF2, 0xDE, 0xF8, 0x20, 0x80, 0x98, 0xE0, 0x28, 0x1C, 0x01, 0xF2, 0x87, 0xF9, 0x20, 0x80 + .byte 0x93, 0xE0, 0x28, 0x1C, 0x01, 0xF2, 0x84, 0xF9, 0x20, 0x80, 0x8E, 0xE0, 0x28, 0x1C, 0x01, 0xF2 + .byte 0x8D, 0xF9, 0x20, 0x80, 0x89, 0xE0, 0x28, 0x1C, 0x01, 0xF2, 0x9A, 0xF9, 0x20, 0x80, 0x84, 0xE0 + .byte 0x28, 0x1C, 0x01, 0xF2, 0x01, 0xFA, 0x80, 0xE0, 0x28, 0x1C, 0x01, 0xF2, 0x6D, 0xFA, 0x7C, 0xE0 + .byte 0x28, 0x1C, 0x01, 0xF2, 0xD1, 0xFA, 0x78, 0xE0, 0xC9, 0x68, 0x28, 0x1C, 0x01, 0xF2, 0x26, 0xFB + .byte 0x73, 0xE0, 0x28, 0x1C, 0x01, 0xF2, 0x92, 0xFB, 0x6F, 0xE0, 0x28, 0x1C, 0x31, 0x1C, 0x01, 0xF2 + .byte 0xBF, 0xFB, 0x20, 0x80, 0x69, 0xE0, 0x08, 0x1C, 0x17, 0x21, 0xF6, 0xF7, 0x05, 0xFF, 0x80, 0x37 + .byte 0x02, 0x1C, 0x38, 0x68, 0x29, 0x1C, 0x00, 0x69, 0x01, 0xF2, 0xBE, 0xFB, 0x02, 0xB0, 0x01, 0x20 + .byte 0xF8, 0xBD, 0x28, 0x1C, 0x01, 0xF2, 0xBC, 0xFB, 0x20, 0x80, 0x56, 0xE0, 0x28, 0x1C, 0x31, 0x1C + .byte 0x01, 0xF2, 0xB8, 0xFB, 0x51, 0xE0, 0x28, 0x1C, 0x01, 0xF2, 0xBE, 0xFB, 0x20, 0x80, 0x4C, 0xE0 + .byte 0x28, 0x1C, 0x01, 0xF2, 0xBD, 0xFB, 0x20, 0x80, 0x47, 0xE0, 0xC9, 0x68, 0x28, 0x1C, 0x01, 0xF2 + .byte 0xE1, 0xFB, 0x42, 0xE0, 0xC9, 0x68, 0x28, 0x1C, 0x01, 0xF2, 0x4E, 0xFC, 0x20, 0x80, 0x3C, 0xE0 + .byte 0xC9, 0x68, 0x28, 0x1C, 0x01, 0xF2, 0x64, 0xFC, 0x20, 0x80, 0x36, 0xE0, 0x29, 0x7C, 0xE0, 0x20 + .byte 0x81, 0x43, 0x30, 0x06, 0x00, 0x0E, 0x40, 0x07, 0x00, 0x0E, 0x08, 0x43, 0x28, 0x74, 0x2C, 0xE0 + .byte 0x28, 0x7C, 0x00, 0x06, 0x40, 0x0F, 0x20, 0x80, 0x27, 0xE0, 0xC9, 0x68, 0x28, 0x1C, 0x01, 0xF2 + .byte 0xC3, 0xF8, 0x22, 0xE0, 0xA8, 0x19, 0x2A, 0x30, 0x00, 0x78, 0x20, 0x80, 0x1D, 0xE0, 0xC9, 0x68 + .byte 0x28, 0x1C, 0x01, 0x22, 0x01, 0xF2, 0xD6, 0xFB, 0x20, 0x80, 0x16, 0xE0, 0x31, 0x06, 0x28, 0x1C + .byte 0x09, 0x0E, 0x00, 0xF0, 0x1B, 0xF9, 0x20, 0x80, 0x0F, 0xE0, 0xC9, 0x68, 0x28, 0x1C, 0x01, 0xF2 + .byte 0x5D, 0xFC, 0x20, 0x80, 0x09, 0xE0, 0x00, 0x2D, 0x02, 0xD1, 0x01, 0x20, 0x20, 0x80, 0x04, 0xE0 + .byte 0x00, 0x20, 0x20, 0x80, 0x01, 0xE0, 0x00, 0x20, 0x20, 0x80, 0x00, 0x20, 0x02, 0xB0, 0xF8, 0xBD + .byte 0xF8, 0xB5, 0x05, 0x1C, 0x29, 0x1C, 0x80, 0x31, 0x09, 0x68, 0xA8, 0x31, 0x0C, 0x68, 0xF6, 0xF7 + .byte 0x8F, 0xFA, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0xE9, 0xFE, 0x06, 0x1C + .byte 0x28, 0x1C, 0xF6, 0xF7, 0x85, 0xFA, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7 + .byte 0xDF, 0xFE, 0x07, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0x7B, 0xFA, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xF6, 0xF7, 0xB9, 0xFE, 0x00, 0x90, 0x28, 0x1C, 0xF6, 0xF7, 0x71, 0xFA, 0x80, 0x35 + .byte 0x01, 0x1C, 0x28, 0x68, 0xF6, 0xF7, 0xB0, 0xFE, 0x32, 0x01, 0xB2, 0x18, 0x38, 0x21, 0x12, 0x01 + .byte 0x79, 0x43, 0xA2, 0x18, 0x53, 0x18, 0xB2, 0x22, 0x92, 0x00, 0x99, 0x5A, 0x49, 0x05, 0x4C, 0x0D + .byte 0x00, 0x99, 0x0C, 0x80, 0x11, 0x1D, 0x59, 0x5A, 0x01, 0x80, 0x00, 0x20, 0xF8, 0xBD, 0x00, 0x00 + .byte 0x38, 0xB5, 0x05, 0x1C, 0xF6, 0xF7, 0x54, 0xFA, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF6, 0xF7, 0x92, 0xFE, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0x1D, 0xF0, 0x38, 0xFB + .byte 0x20, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0xF6, 0xF7, 0x40, 0xFA + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0x7E, 0xFE, 0x80, 0x35, 0x04, 0x1C + .byte 0x28, 0x68, 0xC0, 0x68, 0x1D, 0xF0, 0xCA, 0xFB, 0x20, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00 + .byte 0xF8, 0xB5, 0x05, 0x1C, 0xF6, 0xF7, 0x2C, 0xFA, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF6, 0xF7, 0x86, 0xFE, 0x04, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0x22, 0xFA, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0x7C, 0xFE, 0x07, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0x00, 0x21, 0xA8, 0x30, 0x06, 0x68, 0x15, 0x48, 0x46, 0x22, 0x30, 0x18, 0x8B, 0xF0, 0x9E, 0xED + .byte 0x00, 0x2C, 0x04, 0xD0, 0x01, 0x2C, 0x0B, 0xD0, 0x02, 0x2C, 0x10, 0xD0, 0x16, 0xE0, 0x80, 0x35 + .byte 0x29, 0x68, 0x08, 0x1C, 0xA8, 0x30, 0x00, 0x68, 0xC9, 0x68, 0x01, 0xF2, 0x67, 0xFF, 0x0D, 0xE0 + .byte 0x80, 0x35, 0x28, 0x68, 0xA8, 0x30, 0x00, 0x68, 0x01, 0xF2, 0x8E, 0xFF, 0x06, 0xE0, 0x80, 0x35 + .byte 0x28, 0x68, 0x39, 0x1C, 0xA8, 0x30, 0x00, 0x68, 0x01, 0xF2, 0x92, 0xFF, 0xEE, 0xF7, 0xA0, 0xFC + .byte 0x03, 0x49, 0x71, 0x18, 0xEE, 0xF7, 0x2A, 0xFF, 0x00, 0x20, 0xF8, 0xBD, 0x84, 0x08, 0x00, 0x00 + .byte 0x3E, 0x08, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0xF6, 0xF7, 0xE2, 0xF9, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0x3C, 0xFE, 0x04, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0xD8, 0xF9 + .byte 0x80, 0x35, 0x02, 0x1C, 0x28, 0x68, 0x21, 0x1C, 0x00, 0x69, 0x1D, 0xF0, 0xA7, 0xFA, 0x01, 0x20 + .byte 0x38, 0xBD, 0x00, 0x00, 0x78, 0xB5, 0x81, 0xB0, 0x05, 0x1C, 0xF6, 0xF7, 0xC9, 0xF9, 0x01, 0x1C + .byte 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0x07, 0xFE, 0x04, 0x1C, 0x28, 0x1C, 0xF6, 0xF7 + .byte 0xBF, 0xF9, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0xFD, 0xFD, 0x80, 0x35 + .byte 0x06, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0xE8, 0xF7, 0x0D, 0xF8, 0x00, 0xA9, 0xE7, 0xF7, 0xCA, 0xFF + .byte 0x00, 0xA8, 0x01, 0x78, 0x21, 0x80, 0x40, 0x78, 0x30, 0x80, 0x00, 0x20, 0x01, 0xB0, 0x78, 0xBD + .byte 0x38, 0xB5, 0x05, 0x1C, 0xF6, 0xF7, 0xA4, 0xF9, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF6, 0xF7, 0xE2, 0xFD, 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0xE7, 0xF7, 0xF2, 0xFF + .byte 0xE7, 0xF7, 0x24, 0xFF, 0x20, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x02, 0x29, 0x03, 0xD1 + .byte 0x00, 0x7C, 0x00, 0x06, 0x40, 0x0F, 0x70, 0x47, 0x01, 0x29, 0x10, 0xD1, 0xC1, 0x7B, 0x02, 0x29 + .byte 0x06, 0xD1, 0x00, 0x7C, 0x00, 0x06, 0x40, 0x0F, 0x41, 0x00, 0x08, 0x48, 0x40, 0x5A, 0x70, 0x47 + .byte 0x80, 0x7C, 0x00, 0x28, 0x01, 0xD0, 0x61, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x40, 0x7C + .byte 0x00, 0x28, 0x01, 0xD0, 0x61, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x34, 0x43, 0x0F, 0x02 + .byte 0xF8, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0xA9, 0x68, 0x00, 0x68, 0x4A, 0x1C, 0xAA, 0x60, 0x0E, 0x78 + .byte 0x51, 0x1C, 0xA9, 0x60, 0x14, 0x78, 0x26, 0x21, 0xF6, 0xF7, 0x66, 0xFD, 0x80, 0x35, 0x07, 0x1C + .byte 0x28, 0x68, 0x31, 0x1C, 0x22, 0x1C, 0xA0, 0xF1, 0x7B, 0xF8, 0x38, 0x60, 0x00, 0x20, 0xF8, 0xBD + .byte 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0x26, 0x21, 0xF6, 0xF7, 0x56, 0xFD, 0x00, 0x68, 0xA0, 0xF1 + .byte 0x11, 0xF8, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x00, 0x10, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0x26, 0x21, 0xF6, 0xF7, 0x49, 0xFD, 0x01, 0x1C, 0x80, 0x34, 0x20, 0x68, 0x09, 0x68, 0xA0, 0xF1 + .byte 0x91, 0xF8, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0x29, 0x1C, 0x80, 0x31 + .byte 0x09, 0x68, 0xCC, 0x68, 0xF6, 0xF7, 0x34, 0xF9, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF6, 0xF7 + .byte 0x73, 0xFD, 0x05, 0x1C, 0x20, 0x1C, 0xE7, 0xF7, 0x7F, 0xFF, 0x00, 0x21, 0x0A, 0x1C, 0xE7, 0xF7 + .byte 0xE9, 0xFC, 0x28, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x38, 0xB5, 0x05, 0x1C, 0x29, 0x1C, 0x80, 0x31 + .byte 0x09, 0x68, 0xCC, 0x68, 0xF6, 0xF7, 0x1C, 0xF9, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF6, 0xF7 + .byte 0x77, 0xFD, 0x05, 0x1C, 0x20, 0x1C, 0xE7, 0xF7, 0x67, 0xFF, 0x29, 0x1C, 0x05, 0x22, 0xE7, 0xF7 + .byte 0xD1, 0xFC, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0x29, 0x1C, 0x80, 0x31 + .byte 0x09, 0x68, 0xCC, 0x68, 0xF6, 0xF7, 0x04, 0xF9, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF6, 0xF7 + .byte 0x5F, 0xFD, 0x05, 0x1C, 0x20, 0x1C, 0xE7, 0xF7, 0x4F, 0xFF, 0x29, 0x1C, 0x06, 0x22, 0xE7, 0xF7 + .byte 0xB9, 0xFC, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x04, 0x1C, 0x21, 0x1C, 0x80, 0x31 + .byte 0x09, 0x68, 0xCD, 0x68, 0xF6, 0xF7, 0xEC, 0xF8, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF6, 0xF7, 0x46, 0xFD, 0x06, 0x1C, 0x20, 0x1C, 0xF6, 0xF7, 0xE2, 0xF8, 0x80, 0x34, 0x01, 0x1C + .byte 0x20, 0x68, 0xF6, 0xF7, 0x21, 0xFD, 0x04, 0x1C, 0x28, 0x1C, 0xE7, 0xF7, 0x2D, 0xFF, 0x00, 0x21 + .byte 0x0A, 0x1C, 0xE7, 0xF7, 0x97, 0xFC, 0xB0, 0x42, 0x01, 0xD2, 0x00, 0x20, 0x00, 0xE0, 0x01, 0x20 + .byte 0x20, 0x80, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x05, 0x1C, 0xF6, 0xF7, 0xC8, 0xF8 + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0x22, 0xFD, 0x07, 0x1C, 0x28, 0x1C + .byte 0xF6, 0xF7, 0xBE, 0xF8, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0x18, 0xFD + .byte 0x06, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0xB4, 0xF8, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF6, 0xF7, 0xF2, 0xFC, 0x04, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0xAA, 0xF8, 0x80, 0x35, 0x01, 0x1C + .byte 0x28, 0x68, 0xF6, 0xF7, 0xE9, 0xFC, 0x01, 0x2F, 0x01, 0xD1, 0x1A, 0x21, 0x00, 0xE0, 0x00, 0x21 + .byte 0x89, 0x19, 0x8A, 0x00, 0x03, 0x49, 0x89, 0x5A, 0x21, 0x80, 0x03, 0x49, 0x89, 0x5A, 0x01, 0x80 + .byte 0x00, 0x20, 0xF8, 0xBD, 0x3E, 0x43, 0x0F, 0x02, 0x40, 0x43, 0x0F, 0x02, 0x38, 0xB5, 0x05, 0x1C + .byte 0xF6, 0xF7, 0x8E, 0xF8, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0xCC, 0xFC + .byte 0x04, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x0A, 0x21, 0xF6, 0xF7, 0x85, 0xFC, 0x01, 0x1C + .byte 0x80, 0x35, 0x28, 0x68, 0x09, 0x68, 0x08, 0xF0, 0x61, 0xFD, 0x20, 0x80, 0x00, 0x20, 0x38, 0xBD + .byte 0x70, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x0A, 0x21, 0xF6, 0xF7, 0x75, 0xFC, 0x04, 0x1C + .byte 0x28, 0x1C, 0xF6, 0xF7, 0x6D, 0xF8, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7 + .byte 0xAB, 0xFC, 0x80, 0x35, 0x06, 0x1C, 0x28, 0x68, 0x21, 0x68, 0x08, 0xF0, 0x67, 0xFD, 0x30, 0x80 + .byte 0x00, 0x20, 0x70, 0xBD, 0x70, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x0A, 0x21, 0xF6, 0xF7 + .byte 0x5B, 0xFC, 0x04, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0x53, 0xF8, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xF6, 0xF7, 0x91, 0xFC, 0x80, 0x35, 0x06, 0x1C, 0x28, 0x68, 0x21, 0x68, 0x08, 0xF0 + .byte 0x5F, 0xFD, 0x30, 0x80, 0x00, 0x20, 0x70, 0xBD, 0x70, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0x0A, 0x21, 0xF6, 0xF7, 0x41, 0xFC, 0x04, 0x1C, 0x28, 0x1C, 0xF6, 0xF7, 0x39, 0xF8, 0x01, 0x1C + .byte 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0x77, 0xFC, 0x80, 0x35, 0x06, 0x1C, 0x28, 0x68 + .byte 0x21, 0x68, 0x08, 0xF0, 0x57, 0xFD, 0x30, 0x80, 0x00, 0x20, 0x70, 0xBD, 0x70, 0xB5, 0x05, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0x0A, 0x21, 0xF6, 0xF7, 0x27, 0xFC, 0x04, 0x1C, 0x28, 0x1C, 0xF6, 0xF7 + .byte 0x1F, 0xF8, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0x5D, 0xFC, 0x80, 0x35 + .byte 0x06, 0x1C, 0x28, 0x68, 0x21, 0x68, 0x08, 0xF0, 0x4D, 0xFD, 0x30, 0x80, 0x00, 0x20, 0x70, 0xBD + .byte 0x38, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x0A, 0x21, 0xF6, 0xF7, 0x0D, 0xFC, 0x04, 0x1C + .byte 0x28, 0x1C, 0xF6, 0xF7, 0x05, 0xF8, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7 + .byte 0x5F, 0xFC, 0x80, 0x35, 0x02, 0x1C, 0x28, 0x68, 0x21, 0x68, 0x08, 0xF0, 0x9F, 0xFC, 0x00, 0x20 + .byte 0x38, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x0A, 0x21, 0xF6, 0xF7 + .byte 0xF3, 0xFB, 0x04, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xE7, 0xF7, 0xB4, 0xF9 + .byte 0x06, 0x1C, 0x28, 0x1C, 0xF5, 0xF7, 0xE4, 0xFF, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF6, 0xF7, 0x3E, 0xFC, 0x80, 0x35, 0x02, 0x1C, 0x28, 0x68, 0x21, 0x68, 0x08, 0xF0, 0x94, 0xFC + .byte 0x30, 0x1C, 0x03, 0x21, 0xE7, 0xF7, 0x30, 0xFA, 0x00, 0x20, 0x70, 0xBD, 0x10, 0xB5, 0x04, 0x1C + .byte 0xF5, 0xF7, 0xCE, 0xFF, 0x00, 0x28, 0x02, 0xD0, 0x01, 0x28, 0x05, 0xD0, 0x09, 0xE0, 0x80, 0x34 + .byte 0x20, 0x68, 0x08, 0xF0, 0x7D, 0xFE, 0x06, 0xE0, 0x80, 0x34, 0x20, 0x68, 0x08, 0xF0, 0x8E, 0xFE + .byte 0x01, 0xE0, 0xDD, 0xF7, 0xBB, 0xFF, 0x01, 0x20, 0x10, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xE7, 0xF7, 0x7F, 0xF9, 0x04, 0x1C, 0x28, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0x0A, 0x21, 0xF6, 0xF7, 0xB0, 0xFB, 0x01, 0x1C, 0x80, 0x35, 0x28, 0x68, 0x09, 0x68 + .byte 0x08, 0xF0, 0x0C, 0xFC, 0x20, 0x1C, 0x00, 0x21, 0xE7, 0xF7, 0x42, 0xFA, 0x00, 0x20, 0x38, 0xBD + .byte 0x01, 0x60, 0x42, 0x60, 0x83, 0x60, 0x70, 0x47, 0x08, 0xB5, 0xE8, 0xF7, 0x4F, 0xF9, 0xE8, 0xF7 + .byte 0x5F, 0xF9, 0x08, 0xBD, 0x08, 0xB5, 0xE8, 0xF7, 0x49, 0xF9, 0xE8, 0xF7, 0x77, 0xF9, 0x08, 0xBD + .byte 0x08, 0xB5, 0xE8, 0xF7, 0x43, 0xF9, 0xE8, 0xF7, 0x83, 0xF9, 0x08, 0xBD, 0xF8, 0xB5, 0x88, 0xB0 + .byte 0x04, 0x1C, 0xF5, 0xF7, 0x85, 0xFF, 0x08, 0x28, 0x00, 0xD9, 0xEB, 0xE0, 0x00, 0x18, 0x78, 0x44 + .byte 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x10, 0x00, 0x3A, 0x00, 0x66, 0x00, 0x86, 0x00 + .byte 0xC2, 0x00, 0xF4, 0x00, 0x60, 0x01, 0x1E, 0x00, 0x2C, 0x00, 0x80, 0x34, 0x20, 0x68, 0x20, 0x21 + .byte 0xC0, 0x68, 0xE8, 0xF7, 0x0D, 0xF9, 0xD5, 0xE0, 0x80, 0x34, 0x20, 0x68, 0x00, 0x21, 0xC0, 0x68 + .byte 0xE8, 0xF7, 0x12, 0xF9, 0xCE, 0xE0, 0x80, 0x34, 0x20, 0x68, 0x01, 0x21, 0xC0, 0x68, 0xE8, 0xF7 + .byte 0x0B, 0xF9, 0xC7, 0xE0, 0x20, 0x1C, 0xF5, 0xF7, 0x5B, 0xFF, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xF6, 0xF7, 0x99, 0xFB, 0x80, 0x34, 0x05, 0x1C, 0x20, 0x68, 0xFF, 0xF7, 0xB4, 0xFF + .byte 0x00, 0x28, 0x02, 0xD0, 0x01, 0x20, 0x28, 0x80, 0xB4, 0xE0, 0x00, 0x20, 0x28, 0x80, 0xB1, 0xE0 + .byte 0x20, 0x1C, 0xF5, 0xF7, 0x45, 0xFF, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7 + .byte 0x83, 0xFB, 0x80, 0x34, 0x05, 0x1C, 0x20, 0x68, 0xFF, 0xF7, 0x9E, 0xFF, 0x28, 0x80, 0xA1, 0xE0 + .byte 0x20, 0x1C, 0xF5, 0xF7, 0x35, 0xFF, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7 + .byte 0x73, 0xFB, 0x06, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFF, 0xF7, 0x8D, 0xFF, 0x40, 0x1E + .byte 0x05, 0x01, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x48, 0x4F, 0xFF, 0xF7, 0x8B, 0xFF, 0x80, 0x34 + .byte 0x01, 0x1C, 0x20, 0x68, 0x7A, 0x59, 0x90, 0x47, 0x30, 0x80, 0x83, 0xE0, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xFF, 0xF7, 0x79, 0xFF, 0x40, 0x1E, 0x40, 0x49, 0x00, 0x01, 0x0D, 0x18, 0x20, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xFF, 0xF7, 0x76, 0xFF, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0x6A, 0x68, 0x90, 0x47, 0x80, 0x34, 0x20, 0x68, 0xFF, 0xF7, 0x72, 0xFF, 0x6A, 0xE0, 0x20, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xFF, 0xF7, 0x60, 0xFF, 0x40, 0x1E, 0x34, 0x49, 0x00, 0x01, 0x0D, 0x18 + .byte 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x0F, 0x21, 0xF6, 0xF7, 0xF6, 0xFA, 0x06, 0x1C, 0x20, 0x1C + .byte 0xF5, 0xF7, 0xEE, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0x2C, 0xFB + .byte 0x07, 0x1C, 0x20, 0x1C, 0xF5, 0xF7, 0xE4, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF6, 0xF7, 0x22, 0xFB, 0x00, 0x90, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFF, 0xF7, 0x42, 0xFF + .byte 0x80, 0x34, 0x03, 0x1C, 0x21, 0x68, 0x32, 0x68, 0x05, 0xA8, 0xFF, 0xF7, 0x31, 0xFF, 0x00, 0x9A + .byte 0xAB, 0x68, 0x05, 0xA8, 0x39, 0x1C, 0x98, 0x47, 0x34, 0xE0, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xFF, 0xF7, 0x2A, 0xFF, 0x40, 0x1E, 0x19, 0x49, 0x00, 0x01, 0x0D, 0x18, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0x0F, 0x21, 0xF6, 0xF7, 0xC0, 0xFA, 0x06, 0x1C, 0x20, 0x1C, 0xF5, 0xF7, 0xB8, 0xFE + .byte 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0xF6, 0xFA, 0x07, 0x1C, 0x20, 0x1C + .byte 0xF5, 0xF7, 0xAE, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF6, 0xF7, 0xEC, 0xFA + .byte 0x01, 0x90, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xFF, 0xF7, 0x0C, 0xFF, 0x80, 0x34, 0x03, 0x1C + .byte 0x21, 0x68, 0x32, 0x68, 0x02, 0xA8, 0xFF, 0xF7, 0xFB, 0xFE, 0x01, 0x9A, 0xEB, 0x68, 0x02, 0xA8 + .byte 0x39, 0x1C, 0x98, 0x47, 0x00, 0x20, 0x08, 0xB0, 0xF8, 0xBD, 0xC0, 0x46, 0xE4, 0x43, 0x0F, 0x02 + .byte 0x08, 0xB5, 0xC0, 0x68, 0x28, 0xF0, 0x02, 0xFE, 0x28, 0xF0, 0x48, 0xFD, 0x06, 0x28, 0x01, 0xDA + .byte 0x01, 0x20, 0x08, 0xBD, 0x00, 0x20, 0x08, 0xBD, 0x08, 0xB5, 0x82, 0xB0, 0x01, 0x1C, 0x02, 0x20 + .byte 0x00, 0x90, 0x01, 0x23, 0x01, 0x93, 0xC9, 0x68, 0x02, 0x4A, 0x20, 0x20, 0x07, 0xF0, 0xC4, 0xF8 + .byte 0x02, 0xB0, 0x08, 0xBD, 0xEA, 0x01, 0x00, 0x00, 0x10, 0xB5, 0x04, 0x1C, 0x53, 0x20, 0x80, 0x00 + .byte 0x08, 0x80, 0x0D, 0x20, 0x10, 0x80, 0x20, 0x68, 0xC0, 0x68, 0xE0, 0xF7, 0xCB, 0xFC, 0x02, 0x1C + .byte 0x60, 0x68, 0x00, 0x21, 0xC7, 0xF7, 0x2C, 0xFE, 0x10, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x8E, 0xB0 + .byte 0x01, 0x90, 0xFF, 0xF7, 0xC7, 0xFE, 0x04, 0x90, 0x01, 0x98, 0xC0, 0x68, 0xE0, 0xF7, 0xBA, 0xFC + .byte 0x03, 0x90, 0x04, 0x98, 0x00, 0x27, 0x05, 0x1C, 0x04, 0x1D, 0x20, 0x1C, 0x97, 0x21, 0x3A, 0x1C + .byte 0xF0, 0x35, 0x24, 0xF0, 0x13, 0xF9, 0x39, 0x1C, 0x02, 0x90, 0x20, 0x1C, 0x0A, 0x1C, 0x24, 0xF0 + .byte 0x0D, 0xF9, 0x05, 0x90, 0x20, 0x1C, 0x07, 0x21, 0x3A, 0x1C, 0x24, 0xF0, 0x07, 0xF9, 0x06, 0x1C + .byte 0x89, 0xF0, 0x34, 0xEE, 0xD8, 0xF7, 0x2C, 0xFD, 0x01, 0x1C, 0x05, 0x98, 0x0D, 0x91, 0x00, 0x28 + .byte 0x12, 0xD0, 0x01, 0x28, 0x0F, 0xD1, 0x30, 0x1C, 0x25, 0xF0, 0x70, 0xFD, 0x00, 0x28, 0x0B, 0xD0 + .byte 0x0D, 0x98, 0xD8, 0xF7, 0x1D, 0xFD, 0x01, 0x1C, 0x30, 0x1C, 0x0D, 0x91, 0x25, 0xF0, 0x66, 0xFD + .byte 0x00, 0x28, 0xF5, 0xD1, 0x00, 0xE0, 0x0D, 0x90, 0x0D, 0x99, 0x20, 0x1C, 0x27, 0xF0, 0x26, 0xF9 + .byte 0x20, 0x1C, 0x25, 0xF0, 0xF5, 0xFC, 0x0C, 0x90, 0x20, 0x1C, 0x6F, 0x21, 0x0C, 0xAA, 0x24, 0xF0 + .byte 0x17, 0xFC, 0x20, 0x1C, 0x4B, 0x21, 0x00, 0x22, 0x24, 0xF0, 0xD8, 0xF8, 0x06, 0x90, 0x20, 0x1C + .byte 0x4A, 0x21, 0x00, 0x22, 0x24, 0xF0, 0xD2, 0xF8, 0x07, 0x90, 0x20, 0x1C, 0x49, 0x21, 0x00, 0x22 + .byte 0x24, 0xF0, 0xCC, 0xF8, 0x08, 0x90, 0x20, 0x1C, 0x48, 0x21, 0x00, 0x22, 0x24, 0xF0, 0xC6, 0xF8 + .byte 0x09, 0x90, 0x20, 0x1C, 0x46, 0x21, 0x00, 0x22, 0x24, 0xF0, 0xC0, 0xF8, 0x06, 0x1C, 0x20, 0x1C + .byte 0x47, 0x21, 0x00, 0x22, 0x24, 0xF0, 0xBA, 0xF8, 0x31, 0x18, 0x09, 0x98, 0x41, 0x18, 0x08, 0x98 + .byte 0x41, 0x18, 0x07, 0x98, 0x41, 0x18, 0x06, 0x98, 0x40, 0x18, 0x0C, 0x90, 0x3D, 0xD1, 0xD8, 0xF7 + .byte 0xC5, 0xFC, 0x06, 0x1C, 0x1F, 0x20, 0x30, 0x40, 0x0D, 0x90, 0x20, 0x1C, 0x46, 0x21, 0x0D, 0xAA + .byte 0x24, 0xF0, 0xDE, 0xFB, 0x3E, 0x20, 0x00, 0x01, 0x30, 0x40, 0x40, 0x09, 0x0D, 0x90, 0x20, 0x1C + .byte 0x47, 0x21, 0x0D, 0xAA, 0x24, 0xF0, 0xD4, 0xFB, 0x1F, 0x20, 0x80, 0x02, 0x30, 0x40, 0x80, 0x0A + .byte 0x0D, 0x90, 0x20, 0x1C, 0x48, 0x21, 0x0D, 0xAA, 0x24, 0xF0, 0xCA, 0xFB, 0xD8, 0xF7, 0xA6, 0xFC + .byte 0x06, 0x1C, 0x1F, 0x20, 0x30, 0x40, 0x0D, 0x90, 0x20, 0x1C, 0x49, 0x21, 0x0D, 0xAA, 0x24, 0xF0 + .byte 0xBF, 0xFB, 0x3E, 0x20, 0x00, 0x01, 0x30, 0x40, 0x40, 0x09, 0x0D, 0x90, 0x20, 0x1C, 0x4A, 0x21 + .byte 0x0D, 0xAA, 0x24, 0xF0, 0xB5, 0xFB, 0x1F, 0x20, 0x80, 0x02, 0x30, 0x40, 0x80, 0x0A, 0x0D, 0x90 + .byte 0x20, 0x1C, 0x4B, 0x21, 0x0D, 0xAA, 0x24, 0xF0, 0xAB, 0xFB, 0x01, 0x98, 0xC0, 0x68, 0xE7, 0xF7 + .byte 0x1B, 0xFC, 0x06, 0x1C, 0x20, 0x1C, 0x2E, 0x21, 0x00, 0x22, 0x24, 0xF0, 0x67, 0xF8, 0x00, 0x28 + .byte 0x04, 0xD0, 0x49, 0x20, 0x3C, 0xF0, 0xF4, 0xFD, 0x29, 0x78, 0x31, 0x54, 0x20, 0x1C, 0x2F, 0x21 + .byte 0x00, 0x22, 0x24, 0xF0, 0x5B, 0xF8, 0x00, 0x28, 0x04, 0xD0, 0x4A, 0x20, 0x3C, 0xF0, 0xE8, 0xFD + .byte 0x69, 0x78, 0x31, 0x54, 0x20, 0x1C, 0x30, 0x21, 0x00, 0x22, 0x24, 0xF0, 0x4F, 0xF8, 0x00, 0x28 + .byte 0x04, 0xD0, 0x4B, 0x20, 0x3C, 0xF0, 0xDC, 0xFD, 0xA9, 0x78, 0x31, 0x54, 0x20, 0x1C, 0x31, 0x21 + .byte 0x00, 0x22, 0x24, 0xF0, 0x43, 0xF8, 0x00, 0x28, 0x04, 0xD0, 0x4C, 0x20, 0x3C, 0xF0, 0xD0, 0xFD + .byte 0xE9, 0x78, 0x31, 0x54, 0x20, 0x1C, 0x32, 0x21, 0x00, 0x22, 0x24, 0xF0, 0x37, 0xF8, 0x00, 0x28 + .byte 0x04, 0xD0, 0x4D, 0x20, 0x3C, 0xF0, 0xC4, 0xFD, 0x29, 0x79, 0x31, 0x54, 0x20, 0x1C, 0x33, 0x21 + .byte 0x00, 0x22, 0x24, 0xF0, 0x2B, 0xF8, 0x00, 0x28, 0x04, 0xD0, 0x4E, 0x20, 0x3C, 0xF0, 0xB8, 0xFD + .byte 0x69, 0x79, 0x31, 0x54, 0x20, 0x1C, 0x34, 0x21, 0x00, 0x22, 0x24, 0xF0, 0x1F, 0xF8, 0x00, 0x28 + .byte 0x04, 0xD0, 0x4F, 0x20, 0x3C, 0xF0, 0xAC, 0xFD, 0xA9, 0x79, 0x31, 0x54, 0x20, 0x1C, 0x67, 0x21 + .byte 0x00, 0x22, 0x24, 0xF0, 0x13, 0xF8, 0x00, 0x28, 0x04, 0xD0, 0x19, 0x20, 0x3C, 0xF0, 0xA0, 0xFD + .byte 0xE9, 0x79, 0x31, 0x54, 0x20, 0x1C, 0x68, 0x21, 0x00, 0x22, 0x24, 0xF0, 0x07, 0xF8, 0x00, 0x28 + .byte 0x04, 0xD0, 0x1A, 0x20, 0x3C, 0xF0, 0x94, 0xFD, 0x29, 0x7A, 0x31, 0x54, 0x20, 0x1C, 0x69, 0x21 + .byte 0x00, 0x22, 0x23, 0xF0, 0xFB, 0xFF, 0x00, 0x28, 0x04, 0xD0, 0x1B, 0x20, 0x3C, 0xF0, 0x88, 0xFD + .byte 0x69, 0x7A, 0x31, 0x54, 0x04, 0x98, 0x00, 0x68, 0x00, 0x28, 0x27, 0xD1, 0x03, 0x98, 0x20, 0x21 + .byte 0xE0, 0xF7, 0xDE, 0xFB, 0x05, 0x1C, 0x03, 0x98, 0xE0, 0xF7, 0xE8, 0xFB, 0x0B, 0x90, 0x03, 0x98 + .byte 0xE0, 0xF7, 0xEC, 0xFB, 0x0A, 0x90, 0x20, 0x20, 0x23, 0xF0, 0xE2, 0xFB, 0x07, 0x1C, 0x20, 0x1C + .byte 0x39, 0x1C, 0x26, 0xF0, 0xC1, 0xFC, 0x38, 0x1C, 0x90, 0x21, 0x2A, 0x1C, 0x24, 0xF0, 0x10, 0xFB + .byte 0x38, 0x1C, 0x07, 0x21, 0x0B, 0xAA, 0x24, 0xF0, 0x0B, 0xFB, 0x38, 0x1C, 0x9C, 0x21, 0x0A, 0xAA + .byte 0x24, 0xF0, 0x06, 0xFB, 0x28, 0x1C, 0x3C, 0x1C, 0xDE, 0xF7, 0xFA, 0xFB, 0x02, 0x99, 0x02, 0x20 + .byte 0xD2, 0xF7, 0x62, 0xFD, 0x03, 0x1C, 0x20, 0x20, 0x00, 0x90, 0x03, 0x99, 0x20, 0x1C, 0x04, 0x22 + .byte 0x3D, 0xF0, 0x2C, 0xFB, 0x20, 0x1C, 0x23, 0xF0, 0x47, 0xFE, 0x01, 0x98, 0xC0, 0x68, 0x28, 0xF0 + .byte 0x65, 0xFC, 0x21, 0x1C, 0x28, 0xF0, 0x54, 0xFB, 0x00, 0x28, 0x04, 0xD0, 0x01, 0x98, 0x21, 0x1C + .byte 0xC0, 0x68, 0xE8, 0xF7, 0x6F, 0xFF, 0x00, 0x2F, 0x02, 0xD0, 0x38, 0x1C, 0xD3, 0xF7, 0xD4, 0xFB + .byte 0x0E, 0xB0, 0xF8, 0xBD, 0xF8, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C, 0x16, 0x1C, 0xFF, 0xF7 + .byte 0x41, 0xFD, 0x07, 0x1C, 0x53, 0x20, 0x80, 0x00, 0x20, 0x80, 0x07, 0x20, 0x30, 0x80, 0x28, 0x68 + .byte 0xC0, 0x68, 0xE0, 0xF7, 0x2F, 0xFB, 0x02, 0x1C, 0x68, 0x68, 0x00, 0x21, 0xC7, 0xF7, 0x90, 0xFC + .byte 0x38, 0x1D, 0x25, 0xF0, 0x1F, 0xFF, 0x02, 0x1C, 0x68, 0x68, 0x01, 0x21, 0xC7, 0xF7, 0xFA, 0xFC + .byte 0xF8, 0xBD, 0x00, 0x00, 0x53, 0x20, 0x80, 0x00, 0x08, 0x80, 0x04, 0x20, 0x10, 0x80, 0x70, 0x47 + .byte 0x00, 0x4B, 0x18, 0x47, 0x6D, 0x2F, 0x04, 0x02, 0xF8, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C + .byte 0x16, 0x1C, 0xFF, 0xF7, 0x17, 0xFD, 0x07, 0x1C, 0x53, 0x20, 0x80, 0x00, 0x20, 0x80, 0x08, 0x20 + .byte 0x30, 0x80, 0x28, 0x68, 0xC0, 0x68, 0xE0, 0xF7, 0x05, 0xFB, 0x02, 0x1C, 0x68, 0x68, 0x00, 0x21 + .byte 0xC7, 0xF7, 0x66, 0xFC, 0x38, 0x1D, 0x25, 0xF0, 0xF5, 0xFE, 0x02, 0x1C, 0x68, 0x68, 0x01, 0x21 + .byte 0xC7, 0xF7, 0xAE, 0xFC, 0xF8, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0xE8, 0x68, 0x2B, 0xF0 + .byte 0x23, 0xFF, 0x04, 0x1C, 0x28, 0x1C, 0xFF, 0xF7, 0xF5, 0xFC, 0x01, 0x1C, 0x09, 0x68, 0x20, 0x1C + .byte 0x09, 0x04, 0x09, 0x0C, 0x01, 0x22, 0x20, 0x23, 0x2B, 0xF0, 0xFC, 0xFC, 0x38, 0xBD, 0x00, 0x00 + .byte 0x38, 0xB5, 0x05, 0x1C, 0xE8, 0x68, 0x2B, 0xF0, 0x0F, 0xFF, 0x04, 0x1C, 0x28, 0x1C, 0xFF, 0xF7 + .byte 0xE1, 0xFC, 0x01, 0x1C, 0x09, 0x68, 0x20, 0x1C, 0x09, 0x04, 0x09, 0x0C, 0x01, 0x22, 0x20, 0x23 + .byte 0x2B, 0xF0, 0xF2, 0xFC, 0x38, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C + .byte 0x16, 0x1C, 0xFF, 0xF7, 0xCF, 0xFC, 0x00, 0x68, 0x00, 0x04, 0x07, 0x0C, 0x53, 0x20, 0x80, 0x00 + .byte 0x20, 0x80, 0x09, 0x20, 0x30, 0x80, 0x28, 0x68, 0xC0, 0x68, 0xE0, 0xF7, 0xBB, 0xFA, 0x02, 0x1C + .byte 0x68, 0x68, 0x00, 0x21, 0xC7, 0xF7, 0x1C, 0xFC, 0x68, 0x68, 0x01, 0x21, 0x3A, 0x1C, 0xC7, 0xF7 + .byte 0x53, 0xFD, 0xF8, 0xBD, 0x70, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C, 0xC0, 0x68, 0x16, 0x1C + .byte 0x2B, 0xF0, 0xDA, 0xFE, 0x28, 0x68, 0xFF, 0xF7, 0xAD, 0xFC, 0x00, 0x68, 0x00, 0x21, 0x00, 0x04 + .byte 0x02, 0x0C, 0x53, 0x20, 0x80, 0x00, 0x20, 0x80, 0x05, 0x20, 0x30, 0x80, 0x68, 0x68, 0xC7, 0xF7 + .byte 0x3B, 0xFD, 0x70, 0xBD, 0x01, 0x20, 0x70, 0x47, 0x10, 0xB5, 0x04, 0x1C, 0xFF, 0xF7, 0x9A, 0xFC + .byte 0x01, 0x1C, 0xE0, 0x68, 0xE0, 0xF7, 0xFE, 0xFB, 0x10, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x82, 0xB0 + .byte 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C, 0x16, 0x1C, 0xFF, 0xF7, 0x8C, 0xFC, 0x07, 0x1C, 0x53, 0x20 + .byte 0x80, 0x00, 0x20, 0x80, 0x0A, 0x20, 0x30, 0x80, 0x28, 0x68, 0xC0, 0x68, 0xE0, 0xF7, 0x7A, 0xFA + .byte 0x02, 0x1C, 0x68, 0x68, 0x00, 0x21, 0xC7, 0xF7, 0xDB, 0xFB, 0x38, 0x1C, 0x20, 0x21, 0xE0, 0xF7 + .byte 0x71, 0xFB, 0x04, 0x1C, 0x01, 0x21, 0x00, 0x91, 0x02, 0x20, 0x01, 0x90, 0x68, 0x68, 0x22, 0x1C + .byte 0x00, 0x23, 0xC7, 0xF7, 0xC7, 0xFB, 0x20, 0x1C, 0xDE, 0xF7, 0xFA, 0xFA, 0x02, 0xB0, 0xF8, 0xBD + .byte 0x53, 0x20, 0x80, 0x00, 0x08, 0x80, 0x06, 0x20, 0x10, 0x80, 0x70, 0x47, 0x08, 0xB5, 0xC0, 0x68 + .byte 0xE3, 0xF7, 0x40, 0xFC, 0xE2, 0xF7, 0xB4, 0xFC, 0xC8, 0x28, 0x01, 0xDA, 0x01, 0x20, 0x08, 0xBD + .byte 0x00, 0x20, 0x08, 0xBD, 0x38, 0xB5, 0x05, 0x1C, 0xFF, 0xF7, 0x54, 0xFC, 0x04, 0x1C, 0xE8, 0x68 + .byte 0xE3, 0xF7, 0x30, 0xFC, 0x21, 0x68, 0xE2, 0xF7, 0x81, 0xFC, 0x38, 0xBD, 0xF8, 0xB5, 0x05, 0x1C + .byte 0x28, 0x68, 0x0C, 0x1C, 0x16, 0x1C, 0xFF, 0xF7, 0x45, 0xFC, 0x07, 0x68, 0x53, 0x20, 0x80, 0x00 + .byte 0x20, 0x80, 0x0B, 0x20, 0x30, 0x80, 0x28, 0x68, 0xC0, 0x68, 0xE0, 0xF7, 0x33, 0xFA, 0x02, 0x1C + .byte 0x68, 0x68, 0x00, 0x21, 0xC7, 0xF7, 0x94, 0xFB, 0x68, 0x68, 0x01, 0x21, 0x3A, 0x1C, 0xC7, 0xF7 + .byte 0x57, 0xFF, 0xF8, 0xBD, 0x53, 0x20, 0x80, 0x00, 0x08, 0x80, 0x06, 0x20, 0x10, 0x80, 0x70, 0x47 + .byte 0x38, 0xB5, 0x05, 0x1C, 0xFF, 0xF7, 0x26, 0xFC, 0x44, 0x68, 0x00, 0x68, 0x01, 0x28, 0x04, 0xD0 + .byte 0x02, 0x28, 0x0A, 0xD0, 0x03, 0x28, 0x0A, 0xD0, 0x0B, 0xE0, 0xE8, 0x68, 0xE6, 0xF7, 0xD8, 0xFB + .byte 0x21, 0x1C, 0x01, 0x22, 0xE6, 0xF7, 0x7E, 0xFC, 0x38, 0xBD, 0x01, 0x20, 0x38, 0xBD, 0x01, 0x20 + .byte 0x38, 0xBD, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0xFF, 0xF7, 0x0A, 0xFC + .byte 0x44, 0x68, 0x00, 0x68, 0x01, 0x28, 0x04, 0xD0, 0x02, 0x28, 0x0A, 0xD0, 0x03, 0x28, 0x12, 0xD0 + .byte 0x38, 0xBD, 0xE8, 0x68, 0xE6, 0xF7, 0xBC, 0xFB, 0x21, 0x1C, 0x01, 0x22, 0xE6, 0xF7, 0x1A, 0xFC + .byte 0x38, 0xBD, 0xE8, 0x68, 0xE4, 0xF7, 0x86, 0xFC, 0xE3, 0xF7, 0xB8, 0xFD, 0x21, 0x1C, 0x01, 0x22 + .byte 0xE3, 0xF7, 0x40, 0xFE, 0x38, 0xBD, 0xE8, 0x68, 0xE4, 0xF7, 0x7C, 0xFC, 0xE3, 0xF7, 0xAE, 0xFD + .byte 0x21, 0x1C, 0xE3, 0xF7, 0x97, 0xFE, 0x38, 0xBD, 0x70, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C + .byte 0x16, 0x1C, 0xFF, 0xF7, 0xDF, 0xFB, 0x42, 0x68, 0x00, 0x68, 0x01, 0x28, 0x04, 0xD0, 0x02, 0x28 + .byte 0x07, 0xD0, 0x03, 0x28, 0x0A, 0xD0, 0x0D, 0xE0, 0x68, 0x68, 0x01, 0x21, 0xC7, 0xF7, 0xEA, 0xFF + .byte 0x08, 0xE0, 0x68, 0x68, 0x01, 0x21, 0xC8, 0xF7, 0x7B, 0xF8, 0x03, 0xE0, 0x68, 0x68, 0x01, 0x21 + .byte 0xC8, 0xF7, 0xAE, 0xF8, 0x53, 0x20, 0x80, 0x00, 0x20, 0x80, 0x0C, 0x20, 0x30, 0x80, 0x28, 0x68 + .byte 0xC0, 0x68, 0xE0, 0xF7, 0xB7, 0xF9, 0x02, 0x1C, 0x68, 0x68, 0x00, 0x21, 0xC7, 0xF7, 0x18, 0xFB + .byte 0x70, 0xBD, 0x00, 0x00, 0x53, 0x20, 0x80, 0x00, 0x08, 0x80, 0x06, 0x20, 0x10, 0x80, 0x70, 0x47 + .byte 0x38, 0xB5, 0x05, 0x1C, 0xE8, 0x68, 0x2B, 0xF0, 0xD7, 0xFD, 0x04, 0x1C, 0x28, 0x1C, 0xFF, 0xF7 + .byte 0xA9, 0xFB, 0x03, 0x49, 0x20, 0x1C, 0x01, 0x22, 0x20, 0x23, 0x2B, 0xF0, 0xB3, 0xFB, 0x38, 0xBD + .byte 0xC6, 0x01, 0x00, 0x00, 0x38, 0xB5, 0x04, 0x1C, 0xE0, 0x68, 0x2B, 0xF0, 0xC5, 0xFD, 0x05, 0x1C + .byte 0x20, 0x1C, 0xFF, 0xF7, 0x97, 0xFB, 0xE0, 0x68, 0x02, 0xF0, 0x68, 0xFE, 0x04, 0x1C, 0x05, 0x49 + .byte 0x28, 0x1C, 0x01, 0x22, 0x20, 0x23, 0x2B, 0xF0, 0xA7, 0xFB, 0x20, 0x1C, 0x00, 0x21, 0x1B, 0xF0 + .byte 0x43, 0xFF, 0x38, 0xBD, 0xC6, 0x01, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C + .byte 0x16, 0x1C, 0xFF, 0xF7, 0x7F, 0xFB, 0x53, 0x20, 0x80, 0x00, 0x20, 0x80, 0x0E, 0x20, 0x30, 0x80 + .byte 0x28, 0x68, 0xC0, 0x68, 0xE0, 0xF7, 0x6E, 0xF9, 0x02, 0x1C, 0x68, 0x68, 0x00, 0x21, 0xC7, 0xF7 + .byte 0xCF, 0xFA, 0x68, 0x68, 0x02, 0x4A, 0x01, 0x21, 0xC7, 0xF7, 0x06, 0xFC, 0x70, 0xBD, 0xC0, 0x46 + .byte 0xC6, 0x01, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C, 0xC0, 0x68, 0x16, 0x1C + .byte 0x2B, 0xF0, 0x8A, 0xFD, 0x28, 0x68, 0xFF, 0xF7, 0x5D, 0xFB, 0x53, 0x22, 0x92, 0x00, 0x22, 0x80 + .byte 0x05, 0x20, 0x30, 0x80, 0x68, 0x68, 0x00, 0x21, 0x7A, 0x32, 0xC7, 0xF7, 0xED, 0xFB, 0x70, 0xBD + .byte 0x38, 0xB5, 0x05, 0x1C, 0xE8, 0x68, 0x2B, 0xF0, 0x77, 0xFD, 0x04, 0x1C, 0x28, 0x1C, 0xFF, 0xF7 + .byte 0x49, 0xFB, 0x71, 0x21, 0x20, 0x1C, 0x89, 0x00, 0x01, 0x22, 0x20, 0x23, 0x2B, 0xF0, 0x52, 0xFB + .byte 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x04, 0x1C, 0xE0, 0x68, 0x2B, 0xF0, 0x65, 0xFD, 0x05, 0x1C + .byte 0x20, 0x1C, 0xFF, 0xF7, 0x37, 0xFB, 0xE0, 0x68, 0x02, 0xF0, 0x08, 0xFE, 0x71, 0x21, 0x04, 0x1C + .byte 0x28, 0x1C, 0x89, 0x00, 0x01, 0x22, 0x20, 0x23, 0x2B, 0xF0, 0x46, 0xFB, 0x20, 0x1C, 0x01, 0x21 + .byte 0x1B, 0xF0, 0xE2, 0xFE, 0x38, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C + .byte 0x16, 0x1C, 0xFF, 0xF7, 0x1F, 0xFB, 0x53, 0x20, 0x80, 0x00, 0x20, 0x80, 0x0F, 0x20, 0x30, 0x80 + .byte 0x28, 0x68, 0xC0, 0x68, 0xE0, 0xF7, 0x0E, 0xF9, 0x02, 0x1C, 0x68, 0x68, 0x00, 0x21, 0xC7, 0xF7 + .byte 0x6F, 0xFA, 0x71, 0x22, 0x68, 0x68, 0x01, 0x21, 0x92, 0x00, 0xC7, 0xF7, 0xA5, 0xFB, 0x70, 0xBD + .byte 0x70, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C, 0xC0, 0x68, 0x16, 0x1C, 0x2B, 0xF0, 0x2C, 0xFD + .byte 0x28, 0x68, 0xFF, 0xF7, 0xFF, 0xFA, 0x53, 0x22, 0x92, 0x00, 0x22, 0x80, 0x05, 0x20, 0x30, 0x80 + .byte 0x68, 0x68, 0x00, 0x21, 0x78, 0x32, 0xC7, 0xF7, 0x8F, 0xFB, 0x70, 0xBD, 0x38, 0xB5, 0x05, 0x1C + .byte 0xE8, 0x68, 0x2B, 0xF0, 0x19, 0xFD, 0x04, 0x1C, 0x28, 0x1C, 0xFF, 0xF7, 0xEB, 0xFA, 0x03, 0x49 + .byte 0x20, 0x1C, 0x01, 0x22, 0x20, 0x23, 0x2B, 0xF0, 0xF5, 0xFA, 0x38, 0xBD, 0xC7, 0x01, 0x00, 0x00 + .byte 0x38, 0xB5, 0x04, 0x1C, 0xE0, 0x68, 0x2B, 0xF0, 0x07, 0xFD, 0x05, 0x1C, 0x20, 0x1C, 0xFF, 0xF7 + .byte 0xD9, 0xFA, 0xE0, 0x68, 0x02, 0xF0, 0xAA, 0xFD, 0x04, 0x1C, 0x05, 0x49, 0x28, 0x1C, 0x01, 0x22 + .byte 0x20, 0x23, 0x2B, 0xF0, 0xE9, 0xFA, 0x20, 0x1C, 0x02, 0x21, 0x1B, 0xF0, 0x85, 0xFE, 0x38, 0xBD + .byte 0xC7, 0x01, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C, 0x16, 0x1C, 0xFF, 0xF7 + .byte 0xC1, 0xFA, 0x53, 0x20, 0x80, 0x00, 0x20, 0x80, 0x10, 0x20, 0x30, 0x80, 0x28, 0x68, 0xC0, 0x68 + .byte 0xE0, 0xF7, 0xB0, 0xF8, 0x02, 0x1C, 0x68, 0x68, 0x00, 0x21, 0xC7, 0xF7, 0x11, 0xFA, 0x68, 0x68 + .byte 0x02, 0x4A, 0x01, 0x21, 0xC7, 0xF7, 0x48, 0xFB, 0x70, 0xBD, 0xC0, 0x46, 0xC7, 0x01, 0x00, 0x00 + .byte 0x70, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C, 0xC0, 0x68, 0x16, 0x1C, 0x2B, 0xF0, 0xCC, 0xFC + .byte 0x28, 0x68, 0xFF, 0xF7, 0x9F, 0xFA, 0x53, 0x22, 0x92, 0x00, 0x22, 0x80, 0x05, 0x20, 0x30, 0x80 + .byte 0x68, 0x68, 0x00, 0x21, 0x7B, 0x32, 0xC7, 0xF7, 0x2F, 0xFB, 0x70, 0xBD, 0x38, 0xB5, 0x05, 0x1C + .byte 0xE8, 0x68, 0x08, 0xF0, 0xE1, 0xFC, 0x04, 0x1C, 0x28, 0x1C, 0xFF, 0xF7, 0x8B, 0xFA, 0x20, 0x1C + .byte 0x08, 0xF0, 0x6A, 0xFB, 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0xE8, 0x68, 0x08, 0xF0 + .byte 0xD3, 0xFC, 0x04, 0x1C, 0x28, 0x1C, 0xFF, 0xF7, 0x7D, 0xFA, 0x01, 0x1C, 0x09, 0x68, 0x20, 0x1C + .byte 0x08, 0xF0, 0x62, 0xFB, 0x38, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C + .byte 0x16, 0x1C, 0xFF, 0xF7, 0x6F, 0xFA, 0x07, 0x1C, 0x53, 0x20, 0x80, 0x00, 0x20, 0x80, 0x12, 0x20 + .byte 0x30, 0x80, 0x28, 0x68, 0xC0, 0x68, 0xE0, 0xF7, 0x5D, 0xF8, 0x02, 0x1C, 0x68, 0x68, 0x00, 0x21 + .byte 0xC7, 0xF7, 0xBE, 0xF9, 0x68, 0x68, 0x3A, 0x68, 0x01, 0x21, 0xC7, 0xF7, 0xEF, 0xFB, 0xF8, 0xBD + .byte 0x70, 0xB5, 0x05, 0x1C, 0x28, 0x68, 0x0C, 0x1C, 0x16, 0x1C, 0xFF, 0xF7, 0x53, 0xFA, 0x53, 0x20 + .byte 0x80, 0x00, 0x20, 0x80, 0x13, 0x20, 0x30, 0x80, 0x28, 0x68, 0xC0, 0x68, 0xE0, 0xF7, 0x42, 0xF8 + .byte 0x02, 0x1C, 0x68, 0x68, 0x00, 0x21, 0xC7, 0xF7, 0xA3, 0xF9, 0x70, 0xBD, 0x38, 0xB5, 0x05, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0x02, 0xF0, 0x11, 0xFD, 0x04, 0x1C, 0x28, 0x1C, 0xF5, 0xF7 + .byte 0xCF, 0xF9, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x29, 0xFE, 0x00, 0x28 + .byte 0x07, 0xD1, 0x20, 0x1C, 0x1B, 0xF0, 0xBE, 0xFC, 0x80, 0x35, 0x28, 0x68, 0x08, 0xF0, 0x9E, 0xF8 + .byte 0x0B, 0xE0, 0x01, 0x28, 0x07, 0xD1, 0x20, 0x1C, 0x1B, 0xF0, 0xBC, 0xFC, 0x80, 0x35, 0x28, 0x68 + .byte 0x08, 0xF0, 0xAC, 0xF8, 0x01, 0xE0, 0xDD, 0xF7, 0xB1, 0xF9, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00 + .byte 0x70, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xDE, 0xF7, 0x25, 0xFE, 0x06, 0x1C + .byte 0x20, 0x20, 0x23, 0xF0, 0x6D, 0xF8, 0x05, 0x1C, 0x20, 0x1C, 0xF5, 0xF7, 0xA1, 0xF9, 0x80, 0x34 + .byte 0x01, 0x1C, 0x20, 0x68, 0xF5, 0xF7, 0xE0, 0xFD, 0x04, 0x1C, 0x30, 0x1C, 0xE8, 0xF7, 0x80, 0xFB + .byte 0x06, 0x28, 0x01, 0xD1, 0x01, 0x20, 0x00, 0xE0, 0x00, 0x20, 0x20, 0x80, 0x28, 0x1C, 0xD3, 0xF7 + .byte 0x83, 0xF8, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x00, 0xF0, 0xB5, 0x83, 0xB0, 0x06, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xC0, 0x68, 0xDE, 0xF7, 0x00, 0xFE, 0x07, 0x1C, 0x30, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xC0, 0x68, 0xDE, 0xF7, 0xED, 0xFD, 0x02, 0x90, 0x20, 0x20, 0x23, 0xF0, 0x41, 0xF8, 0x04, 0x1C + .byte 0x30, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xDF, 0xF7, 0xD4, 0xFF, 0x01, 0x90, 0x30, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xE1, 0xF7, 0x23, 0xFA, 0x00, 0x25, 0x38, 0x1C, 0x29, 0x1C + .byte 0x22, 0x1C, 0xE8, 0xF7, 0x39, 0xFB, 0x20, 0x20, 0x00, 0x90, 0x01, 0x99, 0x20, 0x1C, 0x02, 0x22 + .byte 0x00, 0x23, 0x3C, 0xF0, 0x93, 0xFF, 0x20, 0x1C, 0x25, 0xF0, 0xB4, 0xFB, 0x01, 0x1C, 0x02, 0x98 + .byte 0x27, 0xF0, 0x44, 0xFC, 0x00, 0x28, 0x01, 0xD1, 0xDD, 0xF7, 0x50, 0xF9, 0x30, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0x21, 0x1C, 0xC0, 0x68, 0xE8, 0xF7, 0xD5, 0xFB, 0x6D, 0x1C, 0x06, 0x2D, 0xDD, 0xDB + .byte 0x20, 0x1C, 0xD3, 0xF7, 0x39, 0xF8, 0x38, 0x1C, 0xE8, 0xF7, 0x98, 0xFA, 0x00, 0x20, 0x03, 0xB0 + .byte 0xF0, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x04, 0x1C, 0xF5, 0xF7, 0x3A, 0xF9, 0x01, 0x1C, 0x20, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x94, 0xFD, 0x06, 0x1C, 0x20, 0x1C, 0xF5, 0xF7, 0x30, 0xF9 + .byte 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x6E, 0xFD, 0x05, 0x1C, 0x03, 0x2E + .byte 0x2E, 0xD8, 0xB0, 0x19, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x06, 0x00 + .byte 0x12, 0x00, 0x1E, 0x00, 0x2A, 0x00, 0x80, 0x34, 0x20, 0x68, 0x08, 0xF0, 0x63, 0xF8, 0x28, 0x80 + .byte 0x1E, 0xE0, 0x80, 0x34, 0x20, 0x68, 0x08, 0xF0, 0x65, 0xF8, 0x28, 0x80, 0x18, 0xE0, 0x80, 0x34 + .byte 0x20, 0x68, 0x08, 0xF0, 0x67, 0xF8, 0x28, 0x80, 0x12, 0xE0, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0x08, 0xF0, 0x58, 0xF8, 0x06, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x08, 0xF0, 0x4A, 0xF8 + .byte 0x80, 0x34, 0x07, 0x1C, 0x20, 0x68, 0x08, 0xF0, 0x55, 0xF8, 0x38, 0x18, 0x30, 0x18, 0x28, 0x80 + .byte 0x00, 0x20, 0xF8, 0xBD, 0xF8, 0xB5, 0x04, 0x1C, 0x21, 0x1C, 0x80, 0x31, 0x0D, 0x68, 0xF5, 0xF7 + .byte 0xEF, 0xF8, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x49, 0xFD, 0x06, 0x1C + .byte 0x20, 0x1C, 0xF5, 0xF7, 0xE5, 0xF8, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7 + .byte 0x3F, 0xFD, 0x07, 0x1C, 0x28, 0x1C, 0x26, 0x21, 0xF5, 0xF7, 0xDE, 0xFC, 0x31, 0x06, 0x3A, 0x06 + .byte 0x80, 0x34, 0x05, 0x1C, 0x20, 0x68, 0x09, 0x0E, 0x12, 0x0E, 0x9E, 0xF1, 0x61, 0xFF, 0x28, 0x60 + .byte 0x00, 0x20, 0xF8, 0xBD, 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0x26, 0x21, 0xF5, 0xF7, 0xCC, 0xFC + .byte 0x00, 0x68, 0x9E, 0xF1, 0x87, 0xFF, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x00, 0x10, 0xB5, 0x04, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0x26, 0x21, 0xF5, 0xF7, 0xBF, 0xFC, 0x01, 0x1C, 0x80, 0x34, 0x20, 0x68 + .byte 0x09, 0x68, 0x9E, 0xF1, 0x81, 0xFF, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xDF, 0xF7, 0x19, 0xFF, 0x04, 0x1C, 0x28, 0x1C, 0xF5, 0xF7 + .byte 0xA7, 0xF8, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF5, 0xF7, 0xE6, 0xFC, 0x05, 0x1C, 0x20, 0x1C + .byte 0xE4, 0xF7, 0x1E, 0xFF, 0x28, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x04, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xDF, 0xF7, 0x01, 0xFF, 0x05, 0x1C, 0x20, 0x1C, 0xF5, 0xF7 + .byte 0x8F, 0xF8, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xF5, 0xF7, 0xEA, 0xFC, 0x01, 0x1C, 0x28, 0x1C + .byte 0xE4, 0xF7, 0x08, 0xFF, 0x00, 0x20, 0x38, 0xBD, 0x38, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xC0, 0x68, 0xDF, 0xF7, 0xEB, 0xFE, 0x05, 0x1C, 0x20, 0x1C, 0xF5, 0xF7, 0x79, 0xF8, 0x80, 0x34 + .byte 0x01, 0x1C, 0x20, 0x68, 0xF5, 0xF7, 0xD4, 0xFC, 0x01, 0x1C, 0x28, 0x1C, 0xE4, 0xF7, 0x0E, 0xFF + .byte 0x00, 0x20, 0x38, 0xBD, 0x38, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68, 0xDF, 0xF7 + .byte 0xD5, 0xFE, 0x04, 0x1C, 0x28, 0x1C, 0xF5, 0xF7, 0x63, 0xF8, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68 + .byte 0xF5, 0xF7, 0xA2, 0xFC, 0x01, 0x1C, 0x09, 0x88, 0x20, 0x1C, 0xE4, 0xF7, 0xF7, 0xFE, 0x00, 0x20 + .byte 0x38, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x05, 0x68, 0x28, 0x1C, 0xF3, 0xF7 + .byte 0x0D, 0xFE, 0xDF, 0xF7, 0xAF, 0xFE, 0xE8, 0x68, 0xDF, 0xF7, 0xB8, 0xFE, 0x06, 0x1C, 0x20, 0x1C + .byte 0xF5, 0xF7, 0x46, 0xF8, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x84, 0xFC + .byte 0x05, 0x1C, 0x20, 0x1C, 0xF5, 0xF7, 0x48, 0xF8, 0x04, 0x1C, 0x30, 0x1C, 0xE4, 0xF7, 0xB8, 0xFE + .byte 0xA0, 0x42, 0x01, 0xD2, 0x00, 0x20, 0x00, 0xE0, 0x01, 0x20, 0x28, 0x80, 0x00, 0x20, 0x70, 0xBD + .byte 0x70, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x04, 0x68, 0x20, 0x1C, 0xF3, 0xF7, 0xE7, 0xFD, 0xDF, 0xF7 + .byte 0x89, 0xFE, 0xE0, 0x68, 0xDF, 0xF7, 0x92, 0xFE, 0x06, 0x1C, 0x28, 0x1C, 0xF5, 0xF7, 0x20, 0xF8 + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x5E, 0xFC, 0x04, 0x1C, 0x28, 0x1C + .byte 0xF5, 0xF7, 0x16, 0xF8, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF5, 0xF7, 0x55, 0xFC, 0x05, 0x88 + .byte 0x30, 0x1C, 0xE4, 0xF7, 0x8D, 0xFE, 0xA8, 0x42, 0x01, 0xD2, 0x00, 0x20, 0x00, 0xE0, 0x01, 0x20 + .byte 0x20, 0x80, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xC0, 0x68, 0xDF, 0xF7, 0x6B, 0xFE, 0x06, 0x1C, 0x28, 0x1C, 0xF4, 0xF7, 0xF9, 0xFF, 0x01, 0x1C + .byte 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x37, 0xFC, 0x04, 0x1C, 0x28, 0x1C, 0xF4, 0xF7 + .byte 0xEF, 0xFF, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF5, 0xF7, 0x4A, 0xFC, 0x01, 0x1C, 0x30, 0x1C + .byte 0xE4, 0xF7, 0x78, 0xFE, 0x20, 0x80, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x04, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xF3, 0xF7, 0x9A, 0xFD, 0xDF, 0xF7, 0x3C, 0xFE, 0x05, 0x1C, 0x20, 0x1C + .byte 0xF4, 0xF7, 0xE2, 0xFF, 0x01, 0x1C, 0x28, 0x1C, 0xDF, 0xF7, 0xD2, 0xFE, 0x00, 0x20, 0x38, 0xBD + .byte 0x38, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF3, 0xF7, 0x88, 0xFD, 0xDF, 0xF7, 0x2A, 0xFE + .byte 0x05, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0xD0, 0xFF, 0x01, 0x1C, 0x28, 0x1C, 0xDF, 0xF7, 0xD2, 0xFE + .byte 0x00, 0x20, 0x38, 0xBD, 0x38, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF3, 0xF7, 0x76, 0xFD + .byte 0xDF, 0xF7, 0x18, 0xFE, 0x05, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0xB2, 0xFF, 0x80, 0x34, 0x01, 0x1C + .byte 0x20, 0x68, 0xF5, 0xF7, 0x0D, 0xFC, 0x01, 0x1C, 0x28, 0x1C, 0xDF, 0xF7, 0xBB, 0xFE, 0x00, 0x20 + .byte 0x38, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF3, 0xF7, 0x5E, 0xFD + .byte 0xDF, 0xF7, 0x00, 0xFE, 0x06, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0x9A, 0xFF, 0x01, 0x1C, 0x20, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0xD8, 0xFB, 0x05, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0x9C, 0xFF + .byte 0x04, 0x1C, 0x30, 0x1C, 0xDF, 0xF7, 0x7C, 0xFE, 0xA0, 0x42, 0x01, 0xD2, 0x00, 0x20, 0x00, 0xE0 + .byte 0x01, 0x20, 0x28, 0x80, 0x00, 0x20, 0x70, 0xBD, 0x70, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF3, 0xF7, 0x3C, 0xFD, 0xDF, 0xF7, 0xDE, 0xFD, 0x06, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0x78, 0xFF + .byte 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0xB6, 0xFB, 0x05, 0x1C, 0x20, 0x1C + .byte 0xF4, 0xF7, 0x6E, 0xFF, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xF5, 0xF7, 0xC9, 0xFB, 0x04, 0x1C + .byte 0x30, 0x1C, 0xDF, 0xF7, 0x55, 0xFE, 0xA0, 0x42, 0x01, 0xD2, 0x00, 0x20, 0x00, 0xE0, 0x01, 0x20 + .byte 0x28, 0x80, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x04, 0x1C, 0x21, 0x1C, 0x80, 0x31 + .byte 0x0D, 0x68, 0xF4, 0xF7, 0x55, 0xFF, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7 + .byte 0xAF, 0xFB, 0x06, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0x4B, 0xFF, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xF5, 0xF7, 0xA5, 0xFB, 0x07, 0x1C, 0x28, 0x1C, 0x27, 0x21, 0xF5, 0xF7, 0x44, 0xFB + .byte 0x31, 0x06, 0x3A, 0x06, 0x80, 0x34, 0x05, 0x1C, 0x20, 0x68, 0x09, 0x0E, 0x12, 0x0E, 0x9E, 0xF1 + .byte 0x13, 0xFD, 0x28, 0x60, 0x00, 0x20, 0xF8, 0xBD, 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0x27, 0x21 + .byte 0xF5, 0xF7, 0x32, 0xFB, 0x00, 0x68, 0x9E, 0xF1, 0x59, 0xFD, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x00 + .byte 0x10, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x27, 0x21, 0xF5, 0xF7, 0x25, 0xFB, 0x01, 0x1C + .byte 0x80, 0x34, 0x20, 0x68, 0x09, 0x68, 0x9E, 0xF1, 0x53, 0xFD, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00 + .byte 0x38, 0xB5, 0x80, 0x30, 0x00, 0x68, 0x0F, 0x21, 0xC5, 0x68, 0xF5, 0xF7, 0x15, 0xFB, 0x04, 0x1C + .byte 0x28, 0x1C, 0xDF, 0xF7, 0xA1, 0xFF, 0x21, 0x68, 0xA9, 0xF1, 0x62, 0xFB, 0x00, 0x20, 0x38, 0xBD + .byte 0x38, 0xB5, 0x05, 0x1C, 0x29, 0x1C, 0x80, 0x31, 0x09, 0x68, 0xCC, 0x68, 0xF4, 0xF7, 0x00, 0xFF + .byte 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF5, 0xF7, 0x3F, 0xFB, 0x05, 0x1C, 0x20, 0x1C, 0x08, 0x21 + .byte 0xDE, 0xF7, 0xE6, 0xFB, 0xA9, 0xF1, 0xD2, 0xFB, 0x28, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00 + .byte 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0x08, 0x21, 0xC0, 0x68, 0xDE, 0xF7, 0xD9, 0xFB, 0xA8, 0xF1 + .byte 0x81, 0xFF, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x05, 0x68 + .byte 0x08, 0x21, 0xE8, 0x68, 0xDE, 0xF7, 0xCC, 0xFB, 0x06, 0x1C, 0xE8, 0x68, 0x27, 0xF0, 0x4E, 0xFE + .byte 0x80, 0x34, 0x05, 0x1C, 0x20, 0x68, 0xF3, 0xF7, 0x91, 0xFC, 0xDF, 0xF7, 0x33, 0xFD, 0x02, 0x1C + .byte 0x30, 0x1C, 0x29, 0x1C, 0xA9, 0xF1, 0x1A, 0xF9, 0x00, 0x20, 0x70, 0xBD, 0xF8, 0xB5, 0x04, 0x1C + .byte 0x80, 0x30, 0x05, 0x68, 0x0F, 0x21, 0x28, 0x1C, 0xF5, 0xF7, 0xC6, 0xFA, 0x07, 0x1C, 0x20, 0x1C + .byte 0xEE, 0x68, 0xF4, 0xF7, 0xBD, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7 + .byte 0xFB, 0xFA, 0x00, 0x90, 0x20, 0x1C, 0xF4, 0xF7, 0xB3, 0xFE, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68 + .byte 0xF5, 0xF7, 0x0E, 0xFB, 0x04, 0x1C, 0x30, 0x1C, 0x08, 0x21, 0xDE, 0xF7, 0x99, 0xFB, 0x06, 0x1C + .byte 0xE8, 0x68, 0x27, 0xF0, 0x1B, 0xFE, 0x23, 0x06, 0x39, 0x68, 0x32, 0x1C, 0x1B, 0x0E, 0xA8, 0xF1 + .byte 0x15, 0xFC, 0x00, 0x99, 0x08, 0x80, 0x00, 0x20, 0xF8, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x04, 0x1C + .byte 0x80, 0x30, 0x05, 0x68, 0x0F, 0x21, 0x28, 0x1C, 0xF5, 0xF7, 0x96, 0xFA, 0x07, 0x1C, 0x20, 0x1C + .byte 0xED, 0x68, 0xF4, 0xF7, 0x8D, 0xFE, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7 + .byte 0xCB, 0xFA, 0x06, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0x83, 0xFE, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68 + .byte 0xF5, 0xF7, 0xDE, 0xFA, 0x04, 0x1C, 0x28, 0x1C, 0x08, 0x21, 0xDE, 0xF7, 0x69, 0xFB, 0x21, 0x06 + .byte 0x3A, 0x68, 0x09, 0x0E, 0xA8, 0xF1, 0x86, 0xFC, 0x30, 0x80, 0x00, 0x20, 0xF8, 0xBD, 0x00, 0x00 + .byte 0xF8, 0xB5, 0x05, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x0F, 0x21, 0xC4, 0x68, 0xF5, 0xF7, 0x6C, 0xFA + .byte 0x06, 0x1C, 0x28, 0x1C, 0xF4, 0xF7, 0x64, 0xFE, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF5, 0xF7, 0xA2, 0xFA, 0x07, 0x1C, 0x28, 0x1C, 0xF4, 0xF7, 0x5A, 0xFE, 0x80, 0x35, 0x01, 0x1C + .byte 0x28, 0x68, 0xF5, 0xF7, 0xB5, 0xFA, 0x05, 0x1C, 0x20, 0x1C, 0x08, 0x21, 0xDE, 0xF7, 0x40, 0xFB + .byte 0x32, 0x68, 0x29, 0x1C, 0xA8, 0xF1, 0x66, 0xFC, 0x38, 0x80, 0x00, 0x20, 0xF8, 0xBD, 0x00, 0x00 + .byte 0xF8, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x05, 0x68, 0x0F, 0x21, 0x28, 0x1C, 0xF5, 0xF7, 0x44, 0xFA + .byte 0x06, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0x3C, 0xFE, 0x20, 0x1C, 0xF4, 0xF7, 0x39, 0xFE, 0x01, 0x1C + .byte 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x93, 0xFA, 0x07, 0x1C, 0x20, 0x1C, 0xF4, 0xF7 + .byte 0x2F, 0xFE, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xF5, 0xF7, 0x6E, 0xFA, 0x04, 0x1C, 0xE8, 0x68 + .byte 0x27, 0xF0, 0x9C, 0xFD, 0x32, 0x68, 0x39, 0x1C, 0xA9, 0xF1, 0xEC, 0xFA, 0x20, 0x80, 0x00, 0x20 + .byte 0xF8, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x06, 0x1C, 0x31, 0x1C, 0x80, 0x31, 0x0C, 0x68, 0xE5, 0x68 + .byte 0xF4, 0xF7, 0x16, 0xFE, 0x80, 0x36, 0x01, 0x1C, 0x30, 0x68, 0xF5, 0xF7, 0x71, 0xFA, 0x06, 0x1C + .byte 0xE0, 0x68, 0x27, 0xF0, 0x83, 0xFD, 0x04, 0x1C, 0x28, 0x1C, 0x08, 0x21, 0xDE, 0xF7, 0xF8, 0xFA + .byte 0x31, 0x06, 0x02, 0x1C, 0x20, 0x1C, 0x09, 0x0E, 0x2B, 0x1C, 0xA8, 0xF1, 0xA7, 0xFA, 0x00, 0x20 + .byte 0x70, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x84, 0xB0, 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68, 0x0F, 0x21 + .byte 0xC5, 0x68, 0xF5, 0xF7, 0xF9, 0xF9, 0x06, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0xF1, 0xFD, 0x01, 0x1C + .byte 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x4B, 0xFA, 0x07, 0x1C, 0x20, 0x1C, 0xF4, 0xF7 + .byte 0xE7, 0xFD, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x41, 0xFA, 0x02, 0x90 + .byte 0x20, 0x1C, 0xF4, 0xF7, 0xDD, 0xFD, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7 + .byte 0x37, 0xFA, 0x03, 0x90, 0x20, 0x1C, 0xF4, 0xF7, 0xD3, 0xFD, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68 + .byte 0xF5, 0xF7, 0x2E, 0xFA, 0x04, 0x1C, 0x28, 0x1C, 0xDF, 0xF7, 0x5E, 0xFE, 0x21, 0x06, 0x09, 0x0E + .byte 0x00, 0x91, 0x31, 0x68, 0x02, 0x9A, 0x03, 0x9B, 0x01, 0x91, 0x39, 0x06, 0x12, 0x06, 0x1B, 0x06 + .byte 0x09, 0x0E, 0x12, 0x0E, 0x1B, 0x0E, 0xA9, 0xF1, 0x39, 0xFA, 0x00, 0x20, 0x04, 0xB0, 0xF8, 0xBD + .byte 0x38, 0xB5, 0x05, 0x1C, 0x29, 0x1C, 0x80, 0x31, 0x09, 0x68, 0xCC, 0x68, 0xF4, 0xF7, 0xB0, 0xFD + .byte 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF5, 0xF7, 0xEF, 0xF9, 0x05, 0x1C, 0x20, 0x1C, 0x08, 0x21 + .byte 0xDE, 0xF7, 0x96, 0xFA, 0xA9, 0xF1, 0xAE, 0xFA, 0x28, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00 + .byte 0x38, 0xB5, 0x05, 0x1C, 0x29, 0x1C, 0x80, 0x31, 0x09, 0x68, 0xCC, 0x68, 0xF4, 0xF7, 0x98, 0xFD + .byte 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF5, 0xF7, 0xD7, 0xF9, 0x05, 0x1C, 0x20, 0x1C, 0x08, 0x21 + .byte 0xDE, 0xF7, 0x7E, 0xFA, 0xDF, 0xF7, 0xBC, 0xFD, 0x28, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00 + .byte 0x10, 0xB5, 0x04, 0x1C, 0xF4, 0xF7, 0x84, 0xFD, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xF5, 0xF7 + .byte 0xC3, 0xF9, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00, 0x00, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47 + .byte 0x10, 0xB5, 0x04, 0x1C, 0xF4, 0xF7, 0x74, 0xFD, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xF5, 0xF7 + .byte 0xB3, 0xF9, 0x00, 0x20, 0x10, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x68 + .byte 0x02, 0xF0, 0xA4, 0xF8, 0x1B, 0xF0, 0xF2, 0xF9, 0x00, 0x20, 0x08, 0xBD, 0x38, 0xB5, 0x05, 0x1C + .byte 0xF4, 0xF7, 0x5E, 0xFD, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x9C, 0xF9 + .byte 0x80, 0x35, 0x04, 0x1C, 0x28, 0x68, 0xC0, 0x68, 0x02, 0xF0, 0x90, 0xF8, 0x1B, 0xF0, 0xE6, 0xF9 + .byte 0x20, 0x80, 0x00, 0x20, 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0xF4, 0xF7, 0x48, 0xFD + .byte 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x86, 0xF9, 0x04, 0x1C, 0x28, 0x1C + .byte 0xF4, 0xF7, 0x3E, 0xFD, 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF5, 0xF7, 0x99, 0xF9, 0x05, 0x1C + .byte 0xD7, 0xF7, 0x14, 0xFC, 0x64, 0x21, 0xA7, 0xF0, 0x5C, 0xED, 0x08, 0x04, 0x00, 0x0C, 0x0F, 0x28 + .byte 0x01, 0xD2, 0x00, 0x20, 0x20, 0xE0, 0x1E, 0x28, 0x01, 0xD2, 0x01, 0x20, 0x1C, 0xE0, 0x2D, 0x28 + .byte 0x01, 0xD2, 0x02, 0x20, 0x18, 0xE0, 0x3C, 0x28, 0x01, 0xD2, 0x03, 0x20, 0x14, 0xE0, 0x46, 0x28 + .byte 0x01, 0xD2, 0x04, 0x20, 0x10, 0xE0, 0x50, 0x28, 0x01, 0xD2, 0x05, 0x20, 0x0C, 0xE0, 0x58, 0x28 + .byte 0x01, 0xD2, 0x06, 0x20, 0x08, 0xE0, 0x5D, 0x28, 0x01, 0xD2, 0x07, 0x20, 0x04, 0xE0, 0x62, 0x28 + .byte 0x01, 0xD2, 0x08, 0x20, 0x00, 0xE0, 0x09, 0x20, 0x26, 0x4A, 0x95, 0x42, 0x12, 0xDC, 0x37, 0xDA + .byte 0x27, 0x2D, 0x08, 0xDC, 0x23, 0x2D, 0x03, 0xDB, 0x2C, 0xD0, 0x27, 0x2D, 0x30, 0xD0, 0x35, 0xE0 + .byte 0x19, 0x2D, 0x2F, 0xD0, 0x32, 0xE0, 0x36, 0x2D, 0x01, 0xDC, 0x27, 0xD0, 0x2E, 0xE0, 0xFF, 0x2D + .byte 0x22, 0xD0, 0x2B, 0xE0, 0x11, 0x1C, 0x8C, 0x31, 0x8D, 0x42, 0x0F, 0xDC, 0x11, 0x1C, 0x8C, 0x31 + .byte 0x8D, 0x42, 0x19, 0xDA, 0x11, 0x1C, 0x0F, 0x31, 0x8D, 0x42, 0x03, 0xDC, 0x0F, 0x32, 0x95, 0x42 + .byte 0x10, 0xD0, 0x1B, 0xE0, 0x84, 0x32, 0x95, 0x42, 0x10, 0xD0, 0x17, 0xE0, 0x11, 0x1C, 0x8E, 0x31 + .byte 0x8D, 0x42, 0x03, 0xDC, 0x8E, 0x32, 0x95, 0x42, 0x0E, 0xD0, 0x0F, 0xE0, 0x9B, 0x32, 0x95, 0x42 + .byte 0x0A, 0xD0, 0x0B, 0xE0, 0x00, 0x22, 0x0A, 0xE0, 0x01, 0x22, 0x08, 0xE0, 0x02, 0x22, 0x06, 0xE0 + .byte 0x03, 0x22, 0x04, 0xE0, 0x04, 0x22, 0x02, 0xE0, 0x05, 0x22, 0x00, 0xE0, 0x00, 0x22, 0x13, 0x1C + .byte 0x14, 0x21, 0x4B, 0x43, 0x04, 0x4A, 0x41, 0x00, 0xD0, 0x18, 0x08, 0x5A, 0x20, 0x80, 0x00, 0x20 + .byte 0x38, 0xBD, 0xC0, 0x46, 0x1D, 0x01, 0x00, 0x00, 0x94, 0x44, 0x0F, 0x02, 0xF0, 0xB5, 0x85, 0xB0 + .byte 0x04, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xC0, 0x69, 0x00, 0x68, 0xF0, 0xF7, 0xAB, 0xFA, 0x06, 0x1C + .byte 0x20, 0x1C, 0x80, 0x30, 0x05, 0x68, 0x20, 0x1C, 0xF4, 0xF7, 0xAA, 0xFC, 0x01, 0x1C, 0x20, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x04, 0xF9, 0x03, 0x90, 0x20, 0x1C, 0xF4, 0xF7, 0xA0, 0xFC + .byte 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0xFA, 0xF8, 0x07, 0x1C, 0x20, 0x1C + .byte 0xF4, 0xF7, 0x96, 0xFC, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0xF0, 0xF8 + .byte 0x04, 0x90, 0x20, 0x1C, 0xF4, 0xF7, 0x8C, 0xFC, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xF5, 0xF7 + .byte 0xCB, 0xF8, 0x04, 0x1C, 0xE8, 0x68, 0x27, 0xF0, 0xF9, 0xFB, 0x04, 0x98, 0x3B, 0x06, 0x00, 0x90 + .byte 0x01, 0x96, 0x0C, 0x20, 0x02, 0x90, 0xE9, 0x68, 0x03, 0x9A, 0x0B, 0x20, 0x1B, 0x0E, 0x05, 0xF0 + .byte 0x83, 0xFE, 0x20, 0x80, 0x00, 0x20, 0x05, 0xB0, 0xF0, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x04, 0x1C + .byte 0x21, 0x1C, 0x80, 0x31, 0x0D, 0x68, 0xF4, 0xF7, 0x6B, 0xFC, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xF5, 0xF7, 0xA9, 0xF8, 0x06, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0x61, 0xFC, 0x80, 0x34 + .byte 0x01, 0x1C, 0x20, 0x68, 0xF5, 0xF7, 0xA0, 0xF8, 0x04, 0x1C, 0xE8, 0x68, 0x27, 0xF0, 0xCE, 0xFB + .byte 0x31, 0x88, 0x27, 0xF0, 0x15, 0xFB, 0x4C, 0x21, 0x00, 0x22, 0x05, 0x1C, 0x22, 0xF0, 0x16, 0xFF + .byte 0x00, 0x28, 0x05, 0xD1, 0x28, 0x1C, 0x05, 0x21, 0x00, 0x22, 0x22, 0xF0, 0x0F, 0xFF, 0x00, 0xE0 + .byte 0x00, 0x20, 0x20, 0x80, 0x00, 0x20, 0x70, 0xBD, 0xF8, 0xB5, 0x04, 0x1C, 0x80, 0x30, 0x05, 0x68 + .byte 0x28, 0x1C, 0xF3, 0xF7, 0xFB, 0xF9, 0xDF, 0xF7, 0x9D, 0xFA, 0x07, 0x1C, 0x20, 0x1C, 0xF4, 0xF7 + .byte 0x37, 0xFC, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x75, 0xF8, 0x06, 0x1C + .byte 0x20, 0x1C, 0xF4, 0xF7, 0x2D, 0xFC, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68, 0xF5, 0xF7, 0x6C, 0xF8 + .byte 0x04, 0x1C, 0xE8, 0x68, 0x27, 0xF0, 0x9A, 0xFB, 0x31, 0x88, 0x27, 0xF0, 0xE1, 0xFA, 0x07, 0x21 + .byte 0x00, 0x22, 0x22, 0xF0, 0xE3, 0xFE, 0x00, 0x04, 0x05, 0x0C, 0x38, 0x1C, 0xDF, 0xF7, 0xDE, 0xFA + .byte 0x00, 0x04, 0x00, 0x0C, 0x85, 0x42, 0x01, 0xD1, 0x00, 0x20, 0x00, 0xE0, 0x01, 0x20, 0x20, 0x80 + .byte 0x00, 0x20, 0xF8, 0xBD, 0xF0, 0xB5, 0x83, 0xB0, 0x05, 0x1C, 0x80, 0x30, 0x04, 0x68, 0xE0, 0x68 + .byte 0xDF, 0xF7, 0x68, 0xFA, 0x07, 0x1C, 0x28, 0x1C, 0xF4, 0xF7, 0x02, 0xFC, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x5C, 0xF8, 0x02, 0x90, 0x28, 0x1C, 0xF4, 0xF7, 0xF8, 0xFB + .byte 0x80, 0x35, 0x01, 0x1C, 0x28, 0x68, 0xF5, 0xF7, 0x53, 0xF8, 0x05, 0x1C, 0xE0, 0x68, 0x27, 0xF0 + .byte 0x65, 0xFB, 0x06, 0x1C, 0x27, 0xF0, 0xAA, 0xFA, 0x00, 0x06, 0x00, 0x0E, 0x06, 0x28, 0x19, 0xD2 + .byte 0x0B, 0x20, 0x22, 0xF0, 0xAD, 0xFA, 0x04, 0x1C, 0x22, 0xF0, 0x86, 0xFA, 0x01, 0x20, 0x29, 0x1C + .byte 0xD1, 0xF7, 0x42, 0xFC, 0x03, 0x21, 0x00, 0x91, 0x01, 0x90, 0x02, 0x99, 0x20, 0x1C, 0x01, 0x22 + .byte 0x3B, 0x1C, 0xA8, 0xF1, 0x47, 0xFD, 0x30, 0x1C, 0x21, 0x1C, 0x27, 0xF0, 0x39, 0xFA, 0x20, 0x1C + .byte 0xD2, 0xF7, 0xC2, 0xFA, 0x00, 0x20, 0x03, 0xB0, 0xF0, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x05, 0x1C + .byte 0xF4, 0xF7, 0xC6, 0xFB, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x20, 0xF8 + .byte 0x04, 0x1C, 0x28, 0x1C, 0xF4, 0xF7, 0xBC, 0xFB, 0x01, 0x1C, 0x28, 0x1C, 0x80, 0x30, 0x00, 0x68 + .byte 0xF5, 0xF7, 0x16, 0xF8, 0x06, 0x1C, 0x28, 0x1C, 0xF4, 0xF7, 0xB2, 0xFB, 0x01, 0x1C, 0x28, 0x1C + .byte 0x80, 0x30, 0x00, 0x68, 0xF5, 0xF7, 0x0C, 0xF8, 0x80, 0x35, 0x07, 0x1C, 0x28, 0x68, 0xC0, 0x68 + .byte 0x27, 0xF0, 0x1C, 0xFB, 0x21, 0x1C, 0x32, 0x1C, 0x3B, 0x1C, 0x05, 0xF0, 0x19, 0xFE, 0x00, 0x20 + .byte 0xF8, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x04, 0x1C, 0x21, 0x1C, 0x80, 0x31, 0x0F, 0x68, 0xF4, 0xF7 + .byte 0x97, 0xFB, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF4, 0xF7, 0xD5, 0xFF, 0x06, 0x1C + .byte 0x20, 0x1C, 0xF4, 0xF7, 0x8D, 0xFB, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x68, 0xF4, 0xF7 + .byte 0xE7, 0xFF, 0x05, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0x83, 0xFB, 0x80, 0x34, 0x01, 0x1C, 0x20, 0x68 + .byte 0xF4, 0xF7, 0xDE, 0xFF, 0x04, 0x1C, 0xF8, 0x68, 0x27, 0xF0, 0xF0, 0xFA, 0x21, 0x1C, 0x27, 0xF0 + .byte 0x37, 0xFA, 0x00, 0x22, 0x4C, 0x21, 0x04, 0x1C, 0x32, 0x80, 0x22, 0xF0, 0x37, 0xFE, 0x00, 0x28 + .byte 0x01, 0xD0, 0x00, 0x20, 0xF8, 0xBD, 0x20, 0x1C, 0x36, 0x21, 0x00, 0x22, 0x22, 0xF0, 0x2E, 0xFE + .byte 0x85, 0x42, 0x14, 0xD0, 0x20, 0x1C, 0x37, 0x21, 0x00, 0x22, 0x22, 0xF0, 0x27, 0xFE, 0x85, 0x42 + .byte 0x0D, 0xD0, 0x20, 0x1C, 0x38, 0x21, 0x00, 0x22, 0x22, 0xF0, 0x20, 0xFE, 0x85, 0x42, 0x06, 0xD0 + .byte 0x20, 0x1C, 0x39, 0x21, 0x00, 0x22, 0x22, 0xF0, 0x19, 0xFE, 0x85, 0x42, 0x01, 0xD1, 0x01, 0x20 + .byte 0x30, 0x80, 0x00, 0x20, 0xF8, 0xBD, 0x00, 0x00, 0xF8, 0xB5, 0x82, 0xB0, 0x04, 0x1C, 0x21, 0x1C + .byte 0x80, 0x31, 0x09, 0x68, 0x01, 0x91, 0xF4, 0xF7, 0x43, 0xFB, 0x01, 0x1C, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x68, 0xF4, 0xF7, 0x81, 0xFF, 0x00, 0x90, 0x20, 0x1C, 0xF4, 0xF7, 0x39, 0xFB, 0x80, 0x34 + .byte 0x01, 0x1C, 0x20, 0x68, 0xF4, 0xF7, 0x94, 0xFF, 0x05, 0x1C, 0x01, 0x98, 0xC0, 0x68, 0x27, 0xF0 + .byte 0xA5, 0xFA, 0x27, 0xF0, 0xEB, 0xF9, 0x00, 0x06, 0x07, 0x0E, 0x1D, 0x49, 0x00, 0x98, 0x1D, 0x4E + .byte 0x01, 0x80, 0x31, 0xD0, 0x01, 0x98, 0xC0, 0x68, 0x27, 0xF0, 0x98, 0xFA, 0x31, 0x1C, 0x27, 0xF0 + .byte 0xDF, 0xF9, 0x4C, 0x21, 0x00, 0x22, 0x04, 0x1C, 0x22, 0xF0, 0xE0, 0xFD, 0x00, 0x28, 0x1E, 0xD1 + .byte 0x20, 0x1C, 0x36, 0x21, 0x00, 0x22, 0x22, 0xF0, 0xD9, 0xFD, 0x85, 0x42, 0x14, 0xD0, 0x20, 0x1C + .byte 0x37, 0x21, 0x00, 0x22, 0x22, 0xF0, 0xD2, 0xFD, 0x85, 0x42, 0x0D, 0xD0, 0x20, 0x1C, 0x38, 0x21 + .byte 0x00, 0x22, 0x22, 0xF0, 0xCB, 0xFD, 0x85, 0x42, 0x06, 0xD0, 0x20, 0x1C, 0x39, 0x21, 0x00, 0x22 + .byte 0x22, 0xF0, 0xC4, 0xFD, 0x85, 0x42, 0x02, 0xD1, 0x00, 0x98, 0x06, 0x80, 0x04, 0xE0, 0x70, 0x1C + .byte 0x00, 0x06, 0x06, 0x0E, 0xBE, 0x42, 0xCD, 0xD3, 0x00, 0x20, 0x02, 0xB0, 0xF8, 0xBD, 0xC0, 0x46 + .byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + thumb_func_start sub_02044658 +sub_02044658: ; 0x02044658 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + bl sub_0204A32C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0204469C +sub_0204469C: ; 0x0204469C + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r7, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + ldr r0, [r7, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + mov r4, #0x0 + ldr r0, [sp, #0x4] + add r5, r4, #0x0 + strh r4, [r0, #0x0] + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bls _02044726 +_020446EA: + ldr r0, [r7, #0xc] + bl sub_0206BB1C + add r1, r4, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r6, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _0204471A + add r0, r6, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0x0] + cmp r0, r1 + bhi _0204471A + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 +_0204471A: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x8] + cmp r4, r0 + blo _020446EA +_02044726: + ldr r0, [sp, #0x4] + strh r5, [r0, #0x0] + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02044730 +sub_02044730: ; 0x02044730 + push {r4-r6, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r6, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + ldr r0, [r6, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r2, #0x0 + mov r1, #0x4c + add r5, r0, #0x0 + strh r2, [r4, #0x0] + bl sub_020671BC + cmp r0, #0x0 + bne _02044786 + add r0, r5, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r4, #0x0] +_02044786: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204478C +sub_0204478C: ; 0x0204478C + push {r4-r6, lr} + add r6, r0, #0x0 + add r1, r6, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r6, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02038C30 + add r6, #0x80 + add r1, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r6, r0 + blt _020447D2 + mov r0, #0x0 + strh r0, [r4, #0x0] + pop {r4-r6, pc} +_020447D2: + ldr r0, [r5, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _020447F2 + mov r0, #0x0 + strh r0, [r4, #0x0] + pop {r4-r6, pc} +_020447F2: + add r0, r5, #0x0 + bl sub_02068854 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02044800 +sub_02044800: ; 0x02044800 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r7, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + ldr r0, [r7, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r1, _02044884 ; =0x000000FF + ldr r0, [sp, #0x4] + ldr r5, _02044888 ; =0x00000000 + strh r1, [r0, #0x0] + beq _0204487E +_02044848: + ldr r0, [r7, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _02044874 + add r0, r4, #0x0 + bl sub_02068854 + ldr r1, [sp, #0x0] + cmp r1, r0 + bne _02044874 + ldr r0, [sp, #0x4] + strh r5, [r0, #0x0] + b _0204487E +_02044874: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _02044848 +_0204487E: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02044884: .word 0x000000FF +_02044888: .word 0x00000000 + + thumb_func_start sub_0204488C +sub_0204488C: ; 0x0204488C + push {r4-r6, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x9 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r6, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020448D4 +sub_020448D4: ; 0x020448D4 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r6, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + str r0, [sp, #0x0] + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034824 + add r7, r0, #0x0 + ldr r0, [r6, #0xc] + bl sub_0206BB1C + ldr r1, [sp, #0x0] + bl sub_0206B9B0 + mov r1, #0x9 + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020671BC + add r1, sp, #0x4 + strh r0, [r1, #0x0] + cmp r4, #0x0 + beq _02044982 + add r0, r5, #0x0 + mov r1, #0x6 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x1 + mov r2, #0xb + bl sub_0206E7B8 + cmp r0, #0x34 + bne _0204495A + mov r0, #0x96 + mul r0, r4 + mov r1, #0x64 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_0204495A: + add r0, r5, #0x0 + mov r1, #0x9a + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0xb + bne _0204496E + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_0204496E: + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + cmp r7, r0 + bne _02044982 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_02044982: + add r0, sp, #0x4 + ldrh r1, [r0, #0x0] + add r1, r1, r4 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + cmp r1, #0xff + bls _02044994 + mov r1, #0xff + strh r1, [r0, #0x0] +_02044994: + add r0, r5, #0x0 + mov r1, #0x9 + add r2, sp, #0x4 + bl sub_02067830 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_020449A4 +sub_020449A4: ; 0x020449A4 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r6, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + ldr r0, [r6, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x9 + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020671BC + add r1, sp, #0x0 + strh r0, [r1, #0x0] + ldrh r0, [r1, #0x0] + cmp r4, r0 + bls _020449F8 + mov r0, #0x0 + b _020449FA +_020449F8: + sub r0, r0, r4 +_020449FA: + strh r0, [r1, #0x0] + add r0, r5, #0x0 + mov r1, #0x9 + add r2, sp, #0x0 + bl sub_02067830 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + + thumb_func_start sub_02044A0C +sub_02044A0C: ; 0x02044A0C + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r7, #0x0 + bl sub_0206B9B0 + add r4, #0x13 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r6, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02044A6C +sub_02044A6C: ; 0x02044A6C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02054DEC + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02044A94 +sub_02044A94: ; 0x02044A94 + push {r3-r7, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + add r4, r0, #0x0 + mov r1, #0xb0 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r6, #0x0] + add r0, r4, #0x0 + mov r1, #0xb1 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r7, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02044B00 +sub_02044B00: ; 0x02044B00 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02044B2C +sub_02044B2C: ; 0x02044B2C + push {r3-r7, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r6, [r1, #0x0] + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + str r0, [sp, #0x0] + ldr r0, [r6, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + mov r5, #0x0 + add r7, r0, #0x0 + add r4, r5, #0x0 + cmp r7, #0x0 + ble _02044B7A +_02044B5A: + ldr r0, [r6, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _02044B74 + add r4, r4, #0x1 +_02044B74: + add r5, r5, #0x1 + cmp r5, r7 + blt _02044B5A +_02044B7A: + ldr r0, [sp, #0x0] + strh r4, [r0, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02044B84 +sub_02044B84: ; 0x02044B84 + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r7, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + ldr r0, [r7, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + mov r5, #0x0 + add r4, r5, #0x0 + str r0, [sp, #0x8] + cmp r0, #0x0 + ble _02044C00 +_02044BC8: + ldr r0, [sp, #0x0] + cmp r5, r0 + beq _02044BF8 + ldr r0, [r7, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r6, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _02044BF8 + add r0, r6, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02044BF8 + add r4, r4, #0x1 +_02044BF8: + ldr r0, [sp, #0x8] + add r5, r5, #0x1 + cmp r5, r0 + blt _02044BC8 +_02044C00: + ldr r0, [sp, #0x4] + strh r4, [r0, #0x0] + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02044C0C +sub_02044C0C: ; 0x02044C0C + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r7, [r1, #0x0] + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + str r0, [sp, #0x0] + ldr r0, [r7, #0xc] + bl sub_02022510 + str r0, [sp, #0x4] + ldr r0, [r7, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + mov r5, #0x0 + add r4, r5, #0x0 + str r0, [sp, #0x8] + cmp r0, #0x0 + ble _02044C76 +_02044C44: + ldr r0, [r7, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r6, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _02044C6E + add r0, r6, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02044C6E + add r4, r4, #0x1 +_02044C6E: + ldr r0, [sp, #0x8] + add r5, r5, #0x1 + cmp r5, r0 + blt _02044C44 +_02044C76: + ldr r0, [sp, #0x4] + bl sub_0206B57C + add r1, r4, r0 + ldr r0, [sp, #0x0] + strh r1, [r0, #0x0] + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02044C88 +sub_02044C88: ; 0x02044C88 + push {r3-r7, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r6, [r1, #0x0] + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + str r0, [sp, #0x0] + ldr r0, [r6, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + mov r5, #0x0 + add r7, r0, #0x0 + add r4, r5, #0x0 + cmp r7, #0x0 + ble _02044CD6 +_02044CB6: + ldr r0, [r6, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02044CD0 + add r4, r4, #0x1 +_02044CD0: + add r5, r5, #0x1 + cmp r5, r7 + blt _02044CB6 +_02044CD6: + ldr r0, [sp, #0x0] + strh r4, [r0, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02044CE0 +sub_02044CE0: ; 0x02044CE0 + push {r3-r7, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + str r0, [sp, #0x0] + ldr r0, [r5, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + ldr r4, _02044D40 ; =0x00000000 + ldr r0, [sp, #0x0] + strh r4, [r0, #0x0] + beq _02044D3C + mov r7, #0x99 +_02044D12: + ldr r0, [r5, #0xc] + bl sub_0206BB1C + add r1, r4, #0x0 + bl sub_0206B9B0 + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02044D32 + ldr r0, [sp, #0x0] + mov r1, #0x1 + strh r1, [r0, #0x0] + b _02044D3C +_02044D32: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r6 + blo _02044D12 +_02044D3C: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02044D40: .word 0x00000000 + + thumb_func_start sub_02044D44 +sub_02044D44: ; 0x02044D44 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + mov r1, #0x6f + mov r2, #0x0 + bl sub_020671BC + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02044D8C +sub_02044D8C: ; 0x02044D8C + push {r4-r6, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r6, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + ldr r0, [r6, #0xc] + bl sub_0206BB1C + add r1, r4, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r6, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02044DDA + mov r0, #0x0 + strh r0, [r5, #0x0] + pop {r4-r6, pc} +_02044DDA: + mov r4, #0x0 + add r0, r6, #0x0 + mov r1, #0x36 + add r2, r4, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02044DF0 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_02044DF0: + add r0, r6, #0x0 + mov r1, #0x37 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02044E04 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_02044E04: + add r0, r6, #0x0 + mov r1, #0x38 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02044E18 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_02044E18: + add r0, r6, #0x0 + mov r1, #0x39 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02044E2C + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_02044E2C: + strh r4, [r5, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02044E34 +sub_02044E34: ; 0x02044E34 + push {r4-r6, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + add r1, r4, #0x0 + bl sub_020699A4 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02044E78 +sub_02044E78: ; 0x02044E78 + push {r3-r7, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + add r1, r7, #0x0 + bl sub_0206B9B0 + add r4, #0x36 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r6, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02044ED8 +sub_02044ED8: ; 0x02044ED8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x6 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r6, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02044F20 +sub_02044F20: ; 0x02044F20 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r4, [r1, #0x0] + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r2, #0x0 + add r1, sp, #0x0 + strh r2, [r1, #0x0] + mov r1, #0x6 + add r2, sp, #0x0 + bl sub_02067830 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02044F58 +sub_02044F58: ; 0x02044F58 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r7, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + ldr r0, [r7, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r5, _02044FE4 ; =0x00000000 + ldr r0, [sp, #0x4] + strh r5, [r0, #0x0] + beq _02044FDE +_02044F9E: + ldr r0, [r7, #0xc] + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _02044FD4 + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, [sp, #0x0] + cmp r0, r1 + bne _02044FD4 + ldr r0, [sp, #0x4] + mov r1, #0x1 + strh r1, [r0, #0x0] + b _02044FDE +_02044FD4: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _02044F9E +_02044FDE: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02044FE4: .word 0x00000000 + + thumb_func_start sub_02044FE8 +sub_02044FE8: ; 0x02044FE8 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r4, #0x0 + bl sub_0206B9B0 + mov r4, #0x0 + add r6, r0, #0x0 + add r5, r4, #0x0 + add r7, r4, #0x0 +_0204502A: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + add r1, r7, #0x0 + bl sub_0207FC5C + add r1, r0, #0x0 + add r0, r6, #0x0 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02045048 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +_02045048: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x50 + blo _0204502A + ldr r0, [sp, #0x0] + strh r5, [r0, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204505C +sub_0204505C: ; 0x0204505C + push {r3-r7, lr} + sub sp, #0x10 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + lsl r0, r0, #0x10 + add r4, #0x80 + lsr r6, r0, #0x10 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x8] + str r0, [sp, #0x4] +_0204509A: + mov r5, #0x0 + cmp r6, #0x0 + bls _020450E8 + ldr r0, [sp, #0x8] + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +_020450A6: + ldr r0, [sp, #0xc] + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _020450E8 + add r0, r7, #0x0 + mov r1, #0x0 + bl sub_0207FC5C + add r1, r0, #0x0 + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _020450DE + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + b _020450E8 +_020450DE: + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, r6 + blo _020450A6 +_020450E8: + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x8] + cmp r0, #0x50 + blo _0204509A + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x0] + strh r1, [r0, #0x0] + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02045104 +sub_02045104: ; 0x02045104 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r7, #0x0 + bl sub_0206B9B0 + add r5, r0, #0x0 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x0 + bl sub_0207FC5C + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02045170 +sub_02045170: ; 0x02045170 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + mov r1, #0x1 + add r0, sp, #0x0 + add r5, #0x80 + strb r1, [r0, #0x0] + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + add r5, r0, #0x0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x0 + bl sub_0207FC5C + add r1, r0, #0x0 + add r0, r5, #0x0 + add r2, sp, #0x0 + bl sub_02067830 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_020451D0 +sub_020451D0: ; 0x020451D0 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + bl sub_0206B9AC + lsl r0, r0, #0x10 + add r4, #0x80 + lsr r6, r0, #0x10 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r7, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x4] +_0204520C: + mov r5, #0x0 + cmp r6, #0x0 + bls _0204524C +_02045212: + add r0, r7, #0x0 + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02045242 + add r0, r4, #0x0 + mov r1, #0x3 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02045242 + ldr r0, [sp, #0x0] + mov r1, #0x1 + strh r1, [r0, #0x0] + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_02045242: + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, r6 + blo _02045212 +_0204524C: + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + cmp r0, #0x50 + blo _0204520C + ldr r1, [sp, #0x0] + mov r0, #0x0 + strh r0, [r1, #0x0] + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02045264 +sub_02045264: ; 0x02045264 + mov r0, #0x0 + bx lr + + thumb_func_start sub_02045268 +sub_02045268: ; 0x02045268 + push {r3-r7, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r6, [r1, #0x0] + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r4, #0x0 + ldr r7, _020452B0 ; =0x020F450C + str r0, [sp, #0x0] + add r5, r4, #0x0 +_02045288: + ldr r0, [r6, #0xc] + bl sub_0206F158 + lsl r1, r4, #0x2 + ldrh r1, [r7, r1] + mov r2, #0x4 + bl sub_0206EEF8 + add r0, r5, r0 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x7 + blo _02045288 + ldr r0, [sp, #0x0] + strh r5, [r0, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_020452B0: .word 0x020F450C + + thumb_func_start sub_020452B4 +sub_020452B4: ; 0x020452B4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394F0 + mov r5, #0x0 + ldr r2, _02045300 ; =0x020F450C + strh r5, [r4, #0x0] +_020452E0: + lsl r3, r5, #0x2 + ldrh r1, [r2, r3] + cmp r0, r1 + bne _020452F0 + ldr r0, _02045304 ; =0x020F450E + ldrh r0, [r0, r3] + strh r0, [r4, #0x0] + b _020452FA +_020452F0: + add r1, r5, #0x1 + lsl r1, r1, #0x10 + lsr r5, r1, #0x10 + cmp r5, #0x7 + blo _020452E0 +_020452FA: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02045300: .word 0x020F450C +_02045304: .word 0x020F450E + + thumb_func_start sub_02045308 +sub_02045308: ; 0x02045308 + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r7, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394F0 + str r0, [sp, #0x0] + mov r4, #0x0 + ldr r0, [sp, #0x8] + add r6, r4, #0x0 + strh r4, [r0, #0x0] + ldr r0, [sp, #0x4] + strh r4, [r0, #0x0] +_02045358: + ldr r0, [r7, #0xc] + lsl r5, r4, #0x2 + bl sub_0206F158 + ldr r1, _02045394 ; =0x020F450C + mov r2, #0x4 + ldrh r1, [r1, r5] + bl sub_0206EEF8 + add r0, r6, r0 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + ldr r0, [sp, #0x0] + cmp r6, r0 + blo _02045384 + ldr r0, _02045394 ; =0x020F450C + ldrh r1, [r0, r5] + ldr r0, [sp, #0x8] + strh r1, [r0, #0x0] + ldr r0, [sp, #0x4] + strh r4, [r0, #0x0] + b _0204538E +_02045384: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x7 + blo _02045358 +_0204538E: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02045394: .word 0x020F450C + + thumb_func_start sub_02045398 +sub_02045398: ; 0x02045398 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0204539C +sub_0204539C: ; 0x0204539C + mov r0, #0x0 + bx lr + + thumb_func_start sub_020453A0 +sub_020453A0: ; 0x020453A0 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + ldr r1, _020453EC ; =0x020F4528 + lsl r2, r4, #0x2 + ldrh r1, [r1, r2] + strh r1, [r6, #0x0] + ldr r1, _020453F0 ; =0x020F452A + ldrh r1, [r1, r2] + strh r1, [r0, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_020453EC: .word 0x020F4528 +_020453F0: .word 0x020F452A + + thumb_func_start sub_020453F4 +sub_020453F4: ; 0x020453F4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02024D64 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02045424 +sub_02045424: ; 0x02045424 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + bl sub_02024D80 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02045438 +sub_02045438: ; 0x02045438 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + bl sub_02034E20 + bl sub_02055474 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02045468 +sub_02045468: ; 0x02045468 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + bl sub_02034E20 + mov r1, #0x1 + bl sub_02055488 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02045484 +sub_02045484: ; 0x02045484 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r6, r0, #0x0 + cmp r4, #0x8 + blo _020454B6 + bl sub_02020C2C +_020454B6: + add r5, #0x80 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020238F4 + add r1, r4, #0x0 + bl sub_020239D0 + strh r0, [r6, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020454CC +sub_020454CC: ; 0x020454CC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + cmp r4, #0x8 + blo _020454EA + bl sub_02020C2C +_020454EA: + add r5, #0x80 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020238F4 + add r1, r4, #0x0 + bl sub_020239E4 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02045500 +sub_02045500: ; 0x02045500 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ECE0 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204552C +sub_0204552C: ; 0x0204552C + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r6, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + mov r4, #0x0 + ldr r7, _02045578 ; =0x020F4574 + str r0, [sp, #0x0] + add r5, r4, #0x0 +_02045548: + add r0, r6, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020238F4 + ldrb r1, [r7, r4] + bl sub_020239D0 + cmp r0, #0x1 + bne _02045564 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +_02045564: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x8 + blo _02045548 + ldr r0, [sp, #0x0] + strh r5, [r0, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + nop +_02045578: .word 0x020F4574 + + thumb_func_start sub_0204557C +sub_0204557C: ; 0x0204557C + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ECD4 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02045590 +sub_02045590: ; 0x02045590 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED3C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020455BC +sub_020455BC: ; 0x020455BC + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED1C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_020455D0 +sub_020455D0: ; 0x020455D0 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED2C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_020455E4 +sub_020455E4: ; 0x020455E4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED6C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02045610 +sub_02045610: ; 0x02045610 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED4C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02045624 +sub_02045624: ; 0x02045624 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED5C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02045638 +sub_02045638: ; 0x02045638 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r5, #0x80 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED0C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02045664 +sub_02045664: ; 0x02045664 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ECFC + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02045678 +sub_02045678: ; 0x02045678 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + ldr r2, [r5, #0x8] + add r4, r0, #0x0 + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r1, [r2, #0x0] + cmp r1, #0x0 + beq _020456A6 + cmp r1, #0x1 + beq _0204569E + cmp r1, #0x2 + beq _020456AE + b _020456CC +_0204569E: + mov r1, #0x1 + bl sub_0205F264 + b _020456D0 +_020456A6: + mov r1, #0x0 + bl sub_0205F264 + b _020456D0 +_020456AE: + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_0205F264 + strh r0, [r5, #0x0] + b _020456D0 +_020456CC: + bl sub_02020C2C +_020456D0: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_020456D4 +sub_020456D4: ; 0x020456D4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + ldr r2, [r5, #0x8] + add r4, r0, #0x0 + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r1, [r2, #0x0] + cmp r1, #0x0 + beq _02045700 + cmp r1, #0x1 + beq _020456FA + cmp r1, #0x2 + beq _02045706 + b _02045722 +_020456FA: + bl sub_0205F274 + b _02045726 +_02045700: + bl sub_0205F284 + b _02045726 +_02045706: + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F294 + strh r0, [r5, #0x0] + b _02045726 +_02045722: + bl sub_02020C2C +_02045726: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204572C +sub_0204572C: ; 0x0204572C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_020462AC + ldr r2, [r5, #0x8] + add r4, r0, #0x0 + add r1, r2, #0x1 + str r1, [r5, #0x8] + ldrb r1, [r2, #0x0] + cmp r1, #0x0 + beq _02045758 + cmp r1, #0x1 + beq _02045752 + cmp r1, #0x2 + beq _0204575E + b _0204577A +_02045752: + bl sub_0205F2A4 + b _0204577E +_02045758: + bl sub_0205F2B4 + b _0204577E +_0204575E: + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F2C4 + strh r0, [r5, #0x0] + b _0204577E +_0204577A: + bl sub_02020C2C +_0204577E: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02045784 +sub_02045784: ; 0x02045784 + push {r3-r7, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206F158 + add r1, r6, #0x0 + add r2, r7, #0x0 + mov r3, #0x4 + bl sub_0206ED38 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_020457DC +sub_020457DC: ; 0x020457DC + push {r3-r7, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206F158 + add r1, r6, #0x0 + add r2, r7, #0x0 + mov r3, #0x4 + bl sub_0206EDD4 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02045834 +sub_02045834: ; 0x02045834 + push {r3-r7, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206F158 + add r1, r6, #0x0 + add r2, r7, #0x0 + mov r3, #0x4 + bl sub_0206ED24 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0204588C +sub_0204588C: ; 0x0204588C + push {r3-r7, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r5, [r1, #0x0] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206F158 + add r1, r6, #0x0 + add r2, r7, #0x0 + mov r3, #0xb + bl sub_0206EE50 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_020458E4 +sub_020458E4: ; 0x020458E4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02054CB0 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02045918 +sub_02045918: ; 0x02045918 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0xb + bl sub_0206E7B8 + strh r0, [r5, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02045950 +sub_02045950: ; 0x02045950 + mov r0, #0x0 + bx lr + + thumb_func_start sub_02045954 +sub_02045954: ; 0x02045954 + mov r0, #0x0 + bx lr + + thumb_func_start sub_02045958 +sub_02045958: ; 0x02045958 + push {r4-r6, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + ldr r5, [r1, #0xc] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02026CC4 + add r1, r6, #0x0 + bl sub_02025D6C + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020459AC +sub_020459AC: ; 0x020459AC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020459E8 +sub_020459E8: ; 0x020459E8 + push {r4-r6, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + ldr r5, [r1, #0xc] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02026CC4 + add r1, r6, #0x0 + bl sub_02025D94 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02045A3C +sub_02045A3C: ; 0x02045A3C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02045A78 +sub_02045A78: ; 0x02045A78 + push {r4-r6, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + ldr r5, [r1, #0xc] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02026CC4 + add r1, r6, #0x0 + bl sub_02026298 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02045ACC +sub_02045ACC: ; 0x02045ACC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02045B08 +sub_02045B08: ; 0x02045B08 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02045B44 +sub_02045B44: ; 0x02045B44 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02045B80 +sub_02045B80: ; 0x02045B80 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + ldr r4, [r1, #0xc] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r5, #0x0 + bl sub_02038C30 + add r5, #0x80 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_020394B8 + add r0, r4, #0x0 + bl sub_02026CC4 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02045BC8 +sub_02045BC8: ; 0x02045BC8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02045C04 +sub_02045C04: ; 0x02045C04 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02045C40 +sub_02045C40: ; 0x02045C40 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02045C7C +sub_02045C7C: ; 0x02045C7C + push {r3-r7, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + ldr r5, [r1, #0xc] + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02026CC4 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_020260C4 + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02045CD4 +sub_02045CD4: ; 0x02045CD4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02045D10 +sub_02045D10: ; 0x02045D10 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02045D4C +sub_02045D4C: ; 0x02045D4C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r0, r4, #0x0 + bl sub_02038C30 + add r4, #0x80 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_020394B8 + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02045D88 +sub_02045D88: ; 0x02045D88 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r1, r5, #0x0 + add r1, #0x80 + lsl r2, r4, #0x18 + add r6, r0, #0x0 + ldr r1, [r1, #0x0] + mov r0, #0x20 + lsr r2, r2, #0x18 + bl sub_02037CF0 + str r0, [r6, #0x0] + ldr r1, _02045DCC ; =sub_0203BC04 + add r0, r5, #0x0 + bl sub_02038B5C + mov r0, #0x1 + pop {r4-r6, pc} + nop +_02045DCC: .word sub_0203BC04 + 1 + + thumb_func_start sub_02045DD0 +sub_02045DD0: ; 0x02045DD0 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl sub_02039438 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _02045DFC + bl sub_02020C2C +_02045DFC: + ldr r0, [r4, #0x0] + bl sub_02037D5C + strh r0, [r5, #0x0] + ldrh r0, [r5, #0x0] + cmp r0, #0x4 + bne _02045E0E + mov r0, #0xff + strh r0, [r5, #0x0] +_02045E0E: + ldr r0, [r4, #0x0] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02045E1C +sub_02045E1C: ; 0x02045E1C + mov r0, #0x0 + bx lr + + thumb_func_start sub_02045E20 +sub_02045E20: ; 0x02045E20 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r5, #0x80 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + mov r1, #0x20 + bl sub_02088DF8 + add r5, r0, #0x0 + bl sub_02088EF8 + strh r0, [r4, #0x0] + add r0, r5, #0x0 + bl sub_02016A18 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02045E74 +sub_02045E74: ; 0x02045E74 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, #0x80 + add r7, r1, #0x0 + ldr r0, [r0, #0x0] + mov r1, #0x13 + str r2, [sp, #0x0] + add r6, r3, #0x0 + bl sub_02039438 + str r0, [sp, #0x4] + mov r0, #0x20 + bl sub_02088DD8 + add r4, r0, #0x0 + ldr r0, [sp, #0x4] + str r4, [r0, #0x0] + ldr r0, [sp, #0x0] + str r0, [r4, #0x0] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020377AC + bl sub_020238F4 + str r0, [r4, #0x4] + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023900 + str r0, [r4, #0x8] + str r6, [r4, #0xc] + add r0, r5, #0x0 + strb r7, [r4, #0x15] + add r0, #0x80 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + bl sub_02038864 + ldr r1, _02045EDC ; =sub_0203BC04 + add r0, r5, #0x0 + bl sub_02038B5C + add r0, r6, #0x0 + bl sub_02016A18 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02045EDC: .word sub_0203BC04 + 1 + + thumb_func_start sub_02045EE0 +sub_02045EE0: ; 0x02045EE0 + mov r0, #0x1 + bx lr + + thumb_func_start sub_02045EE4 +sub_02045EE4: ; 0x02045EE4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r4, #0x0 + bl sub_0206B9B0 + add r4, r0, #0x0 + mov r1, #0x20 + bl sub_02088DF8 + add r3, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x1 + add r2, r4, #0x0 + bl sub_02045E74 + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_02045F24 +sub_02045F24: ; 0x02045F24 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394F0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + add r1, r6, #0x0 + bl sub_0206B9B0 + add r6, r0, #0x0 + mov r0, #0x20 + mov r1, #0x4 + bl sub_02016998 + add r3, r0, #0x0 + ldr r0, _02045F80 ; =0x0000FFFF + strh r4, [r3, #0x0] + strh r0, [r3, #0x2] + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02045E74 + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_02045F80: .word 0x0000FFFF + + thumb_func_start sub_02045F84 +sub_02045F84: ; 0x02045F84 + mov r0, #0x0 + bx lr + + thumb_func_start sub_02045F88 +sub_02045F88: ; 0x02045F88 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl sub_02039438 + ldr r4, [r0, #0x0] + cmp r4, #0x0 + bne _02045FB2 + bl sub_02020C2C +_02045FB2: + ldrb r0, [r4, #0x16] + cmp r0, #0x0 + bne _02045FBC + mov r0, #0x0 + b _02045FBE +_02045FBC: + mov r0, #0xff +_02045FBE: + strh r0, [r5, #0x0] + add r0, r4, #0x0 + bl sub_02088DF0 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02045FCC +sub_02045FCC: ; 0x02045FCC + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02038C30 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl sub_020394B8 + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl sub_02039438 + ldr r4, [r0, #0x0] + cmp r4, #0x0 + bne _02045FF6 + bl sub_02020C2C +_02045FF6: + ldrb r0, [r4, #0x16] + cmp r0, #0x0 + bne _02046000 + mov r0, #0x0 + b _02046002 +_02046000: + mov r0, #0xff +_02046002: + strh r0, [r5, #0x0] + add r0, r4, #0x0 + bl sub_02088DF0 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02046010 +sub_02046010: ; 0x02046010 + push {r3, lr} + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204601C +sub_0204601C: ; 0x0204601C + push {r3, lr} + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02046028 +sub_02046028: ; 0x02046028 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0204602C +sub_0204602C: ; 0x0204602C + mov r0, #0x0 + bx lr + + thumb_func_start sub_02046030 +sub_02046030: ; 0x02046030 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0xc + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + strb r0, [r2, #0x0] + strb r0, [r2, #0x1] + strb r0, [r2, #0x2] + strb r0, [r2, #0x3] + strb r0, [r2, #0x4] + strb r0, [r2, #0x5] + strb r0, [r2, #0x6] + strb r0, [r2, #0x7] + strb r0, [r2, #0x8] + strb r0, [r2, #0x9] + strb r0, [r2, #0xa] + strb r0, [r2, #0xb] + ldr r0, [r4, #0x10] + ldr r1, _02046064 ; =sub_02046068 + bl sub_0204640C + pop {r4, pc} + nop +_02046064: .word sub_02046068 + 1 + + thumb_func_start sub_02046068 +sub_02046068: ; 0x02046068 + push {r4-r6, lr} + sub sp, #0x38 + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020462AC + ldrb r1, [r4, #0x8] + cmp r1, #0xb + bls _0204608A + b _020461F8 +_0204608A: + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r6, r2, #0 + lsl r4, r7, #0 + lsl r2, r1, #0x1 + lsl r2, r6, #0x1 + lsl r0, r0, #0x2 + lsl r0, r7, #0x2 + lsl r0, r1, #0x3 + lsl r2, r6, #0x3 + lsl r0, r0, #0x4 + lsl r0, r5, #0x4 + lsl r6, r6, #0x4 + lsl r4, r1, #0x5 + ldr r0, [r5, #0x38] + bl sub_02055320 + strh r0, [r4, #0x4] + ldr r0, [r5, #0x38] + bl sub_0205532C + strh r0, [r4, #0x6] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0206367C + add r0, r6, #0x0 + bl sub_0204AFC8 + ldrb r0, [r4, #0x8] + add r0, r0, #0x1 + strb r0, [r4, #0x8] + b _020461F8 +_020460D4: + .byte 0x30, 0x1C, 0x04, 0xF0, 0x31, 0xFF, 0x20, 0x7A, 0x40, 0x1C, 0x20, 0x72 + .byte 0x8A, 0xE0, 0x19, 0xF0, 0x6F, 0xF8, 0xAC, 0x20, 0x09, 0x90, 0xAD, 0x38, 0x0A, 0x90, 0x44, 0x48 + .byte 0x09, 0xA9, 0x0B, 0x90, 0x43, 0x48, 0x0C, 0x90, 0x01, 0x20, 0x0D, 0x90, 0x30, 0x1C, 0x03, 0xF0 + .byte 0x2F, 0xF8, 0x20, 0x7A, 0x40, 0x1C, 0x20, 0x72, 0x76, 0xE0, 0x30, 0x1C, 0x04, 0xF0, 0x3A, 0xFF + .byte 0x20, 0x7A, 0x40, 0x1C, 0x20, 0x72, 0x6F, 0xE0, 0xA8, 0x6B, 0x01, 0x21, 0x00, 0xF0, 0x7A, 0xF8 + .byte 0x28, 0x1C, 0x00, 0xF0, 0x7F, 0xF8, 0x00, 0x20, 0x00, 0x90, 0x06, 0x20, 0x01, 0x90, 0x01, 0x20 + .byte 0x02, 0x90, 0x0B, 0x20, 0x03, 0x90, 0x34, 0x4B, 0x30, 0x1C, 0x03, 0x21, 0x11, 0x22, 0x06, 0xF0 + .byte 0x39, 0xF8, 0x32, 0x48, 0xBF, 0xF7, 0xC0, 0xF9, 0x20, 0x7A, 0x40, 0x1C, 0x20, 0x72, 0x53, 0xE0 + .byte 0x2F, 0x48, 0x82, 0x6C, 0x03, 0x20, 0x10, 0x42, 0x4E, 0xD0, 0x48, 0x1C, 0x20, 0x72, 0x4B, 0xE0 + .byte 0x00, 0x20, 0x00, 0x90, 0x06, 0x20, 0x01, 0x90, 0x01, 0x20, 0x02, 0x90, 0x0B, 0x20, 0x03, 0x90 + .byte 0x25, 0x4B, 0x30, 0x1C, 0x03, 0x21, 0x10, 0x22, 0x06, 0xF0, 0x1C, 0xF8, 0x23, 0x48, 0xBF, 0xF7 + .byte 0xA3, 0xF9, 0x20, 0x7A, 0x40, 0x1C, 0x20, 0x72, 0x36, 0xE0, 0x30, 0x1C, 0x04, 0xF0, 0xD6, 0xFE + .byte 0x20, 0x7A, 0x40, 0x1C, 0x20, 0x72, 0x2F, 0xE0, 0x19, 0xF0, 0x1C, 0xF8, 0xE2, 0x88, 0xA1, 0x88 + .byte 0xA4, 0x20, 0x04, 0x90, 0xA5, 0x38, 0x05, 0x90, 0x00, 0x20, 0x06, 0x91, 0x08, 0x90, 0x07, 0x92 + .byte 0x30, 0x1C, 0x04, 0xA9, 0x02, 0xF0, 0xD4, 0xFF, 0x20, 0x7A, 0x40, 0x1C, 0x20, 0x72, 0x1B, 0xE0 + .byte 0x30, 0x1C, 0x04, 0xF0, 0xDF, 0xFE, 0x20, 0x7A, 0x40, 0x1C, 0x20, 0x72, 0x14, 0xE0, 0xA8, 0x6B + .byte 0x00, 0x21, 0x00, 0xF0, 0x1F, 0xF8, 0x30, 0x1C, 0x04, 0xF0, 0x18, 0xFF, 0x20, 0x7A, 0x40, 0x1C + .byte 0x20, 0x72, 0x09, 0xE0, 0x20, 0x1C, 0xD0, 0xF7, 0x17, 0xFC, 0x28, 0x1C, 0x00, 0x21, 0x1D, 0xF0 + .byte 0x45, 0xFA, 0x0E, 0xB0, 0x01, 0x20, 0x70, 0xBD +_020461F8: + mov r0, #0x0 + add sp, #0x38 + pop {r4-r6, pc} + nop +_02046200: + .byte 0x4F, 0x03, 0x00, 0x00, 0x31, 0x02, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x79, 0x06, 0x00, 0x00 + .byte 0xB8, 0x48, 0x1C, 0x02 + + thumb_func_start sub_02046214 +sub_02046214: ; 0x02046214 + push {r4, lr} + add r4, r1, #0x0 + bl sub_020553A0 + add r1, r4, #0x0 + bl sub_0205889C + pop {r4, pc} + + thumb_func_start sub_02046224 +sub_02046224: ; 0x02046224 + push {r3-r4, lr} + sub sp, #0x14 + add r4, r0, #0x0 + ldr r0, _02046278 ; =0x000008C1 + ldr r1, [r4, #0x20] + bl sub_0201EEF0 + ldr r0, _0204627C ; =0x000F81B8 + ldr r1, [r4, #0x20] + bl sub_0201EFE0 + ldr r0, _02046280 ; =0x0350523D + str r0, [sp, #0x8] + ldr r0, _02046284 ; =0x0015EDB7 + str r0, [sp, #0xc] + ldr r0, _02046288 ; =0x023DA40E + str r0, [sp, #0x10] + ldr r1, [r4, #0x20] + add r0, sp, #0x8 + bl sub_0201F04C + ldr r1, _0204628C ; =0x00000823 + add r0, sp, #0x0 + strh r1, [r0, #0x0] + mov r1, #0x52 + lsl r1, r1, #0x4 + strh r1, [r0, #0x2] + mov r1, #0x0 + strh r1, [r0, #0x4] + ldr r1, [r4, #0x20] + add r0, sp, #0x0 + bl sub_0201EF90 + mov r0, #0x3 + ldr r1, _02046290 ; =0x0061C000 + ldr r2, [r4, #0x20] + lsl r0, r0, #0xe + bl sub_0201EC94 + add sp, #0x14 + pop {r3-r4, pc} + nop +_02046278: .word 0x000008C1 +_0204627C: .word 0x000F81B8 +_02046280: .word 0x0350523D +_02046284: .word 0x0015EDB7 +_02046288: .word 0x023DA40E +_0204628C: .word 0x00000823 +_02046290: .word 0x0061C000 + + thumb_func_start sub_02046294 +sub_02046294: ; 0x02046294 + mov r0, #0xeb + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start sub_0204629C +sub_0204629C: ; 0x0204629C + ldr r3, _020462A8 ; =sub_020DF4A4 + mov r2, #0xeb + mov r1, #0x0 + lsl r2, r2, #0x2 + bx r3 + nop +_020462A8: .word sub_020DF4A4 + + thumb_func_start sub_020462AC +sub_020462AC: ; 0x020462AC + ldr r3, _020462B4 ; =sub_02022610 + mov r1, #0x4 + bx r3 + nop +_020462B4: .word sub_02022610 + 1 + + thumb_func_start sub_020462B8 +sub_020462B8: ; 0x020462B8 + push {r3-r5, lr} + add r4, r1, #0x0 + bl sub_02046338 + cmp r0, #0x0 + beq _020462DE + lsr r3, r4, #0x1f + lsl r2, r4, #0x1d + ldrb r5, [r0, #0x0] + sub r2, r2, r3 + mov r1, #0x1d + ror r2, r1 + mov r0, #0x1 + add r1, r3, r2 + add r2, r0, #0x0 + lsl r2, r1 + add r1, r5, #0x0 + tst r1, r2 + bne _020462E0 +_020462DE: + mov r0, #0x0 +_020462E0: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020462E4 +sub_020462E4: ; 0x020462E4 + push {r4-r6, lr} + add r4, r1, #0x0 + bl sub_02046338 + cmp r0, #0x0 + beq _02046308 + lsr r5, r4, #0x1f + lsl r3, r4, #0x1d + sub r3, r3, r5 + mov r2, #0x1d + ror r3, r2 + mov r6, #0x1 + add r2, r5, r3 + add r3, r6, #0x0 + ldrb r1, [r0, #0x0] + lsl r3, r2 + orr r1, r3 + strb r1, [r0, #0x0] +_02046308: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204630C +sub_0204630C: ; 0x0204630C + push {r4-r6, lr} + add r4, r1, #0x0 + bl sub_02046338 + cmp r0, #0x0 + beq _02046334 + lsr r5, r4, #0x1f + lsl r3, r4, #0x1d + sub r3, r3, r5 + mov r2, #0x1d + ror r3, r2 + mov r6, #0x1 + add r2, r5, r3 + add r3, r6, #0x0 + lsl r3, r2 + mov r2, #0xff + ldrb r1, [r0, #0x0] + eor r2, r3 + and r1, r2 + strb r1, [r0, #0x0] +_02046334: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02046338 +sub_02046338: ; 0x02046338 + push {r3-r5, lr} + add r5, r0, #0x0 + cmp r1, #0x0 + bne _02046344 + mov r0, #0x0 + pop {r3-r5, pc} +_02046344: + mov r0, #0x1 + lsl r0, r0, #0xe + cmp r1, r0 + bhs _02046364 + mov r0, #0x5b + lsr r4, r1, #0x3 + lsl r0, r0, #0x2 + cmp r4, r0 + blt _0204635A + bl sub_02020C2C +_0204635A: + mov r0, #0x9 + lsl r0, r0, #0x6 + add r0, r5, r0 + add r0, r0, r4 + pop {r3-r5, pc} +_02046364: + sub r1, r1, r0 + asr r0, r1, #0x2 + lsr r0, r0, #0x1d + add r0, r1, r0 + asr r4, r0, #0x3 + cmp r4, #0x8 + blt _02046376 + bl sub_02020C2C +_02046376: + ldr r0, _0204637C ; =0x021C5A14 + add r0, r0, r4 + pop {r3-r5, pc} + .balign 4 +_0204637C: .word 0x021C5A14 + + thumb_func_start sub_02046380 +sub_02046380: ; 0x02046380 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x1 + lsl r0, r0, #0xe + sub r4, r1, r0 + mov r0, #0x12 + lsl r0, r0, #0x4 + cmp r4, r0 + blt _02046396 + bl sub_02020C2C +_02046396: + lsl r0, r4, #0x1 + add r0, r5, r0 + pop {r3-r5, pc} + + thumb_func_start sub_0204639C +sub_0204639C: ; 0x0204639C + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x20 + add r6, r1, #0x0 + add r1, r0, #0x0 + add r7, r2, #0x0 + bl sub_020169D8 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [r4, #0x0] + str r6, [r4, #0x4] + str r0, [r4, #0x8] + str r7, [r4, #0xc] + str r0, [r4, #0x10] + str r0, [r4, #0x14] + mov r0, #0x20 + mov r1, #0x4 + str r5, [r4, #0x18] + bl sub_020169D8 + str r0, [r4, #0x1c] + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_020463CC +sub_020463CC: ; 0x020463CC + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x10] + add r4, r1, #0x0 + add r6, r2, #0x0 + cmp r0, #0x0 + beq _020463DE + bl sub_02020C2C +_020463DE: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0204639C + str r0, [r5, #0x10] + pop {r4-r6, pc} + + thumb_func_start sub_020463EC +sub_020463EC: ; 0x020463EC + push {r4, lr} + add r4, r0, #0x0 + str r1, [r4, #0x4] + mov r0, #0x0 + str r0, [r4, #0x8] + str r2, [r4, #0xc] + ldr r0, [r4, #0x14] + cmp r0, #0x0 + bne _02046400 + beq _0204640A +_02046400: + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x10] + str r0, [r4, #0x14] +_0204640A: + pop {r4, pc} + + thumb_func_start sub_0204640C +sub_0204640C: ; 0x0204640C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x18] + bl sub_0204639C + str r4, [r0, #0x0] + ldr r1, [r4, #0x18] + str r0, [r1, #0x10] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02046420 +sub_02046420: ; 0x02046420 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x10] + cmp r0, #0x0 + bne _0204642E + mov r0, #0x0 + pop {r3-r5, pc} +_0204642E: + ldr r1, [r0, #0x4] + blx r1 + cmp r0, #0x1 + bne _02046466 +_02046436: + ldr r0, [r5, #0x10] + ldr r4, [r0, #0x0] + ldr r0, [r0, #0x14] + cmp r0, #0x0 + beq _02046444 + bl sub_02016A18 +_02046444: + ldr r0, [r5, #0x10] + ldr r0, [r0, #0x1c] + bl sub_02016A18 + ldr r0, [r5, #0x10] + bl sub_02016A18 + str r4, [r5, #0x10] + cmp r4, #0x0 + bne _0204645C + mov r0, #0x1 + pop {r3-r5, pc} +_0204645C: + ldr r0, [r5, #0x10] + ldr r1, [r0, #0x4] + blx r1 + cmp r0, #0x1 + beq _02046436 +_02046466: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204646C +sub_0204646C: ; 0x0204646C + ldr r0, [r0, #0x10] + cmp r0, #0x0 + beq _02046476 + mov r0, #0x1 + bx lr +_02046476: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0204647C +sub_0204647C: ; 0x0204647C + push {r4, lr} + add r4, r0, #0x0 + bl sub_0203739C + cmp r0, #0x0 + bne _02046492 + add r0, r4, #0x0 + bl sub_020373C4 + cmp r0, #0x0 + beq _02046496 +_02046492: + mov r0, #0x1 + pop {r4, pc} +_02046496: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0204649C +sub_0204649C: ; 0x0204649C + ldr r3, _020464A0 ; =sub_02037350 + bx r3 + .balign 4 +_020464A0: .word sub_02037350 + 1 + + thumb_func_start sub_020464A4 +sub_020464A4: ; 0x020464A4 + push {r3, lr} + bl sub_020373AC + cmp r0, #0x0 + beq _020464B2 + mov r0, #0x1 + pop {r3, pc} +_020464B2: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020464B8 +sub_020464B8: ; 0x020464B8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020464D6 + cmp r0, #0x1 + beq _020464E8 + b _020464FC +_020464D6: + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x8] + add r0, r5, #0x0 + bl sub_020373D4 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020464FC +_020464E8: + add r0, r5, #0x0 + bl sub_0204647C + cmp r0, #0x0 + bne _020464FC + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_020464FC: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02046500 +sub_02046500: ; 0x02046500 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x20 + mov r1, #0xc + add r4, r2, #0x0 + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + str r5, [r2, #0x4] + ldr r1, _02046524 ; =sub_020464B8 + add r0, r6, #0x0 + str r4, [r2, #0x8] + bl sub_0204640C + pop {r4-r6, pc} + .balign 4 +_02046524: .word sub_020464B8 + 1 + + thumb_func_start sub_02046528 +sub_02046528: ; 0x02046528 + ldr r0, [r0, #0x18] + bx lr + + thumb_func_start sub_0204652C +sub_0204652C: ; 0x0204652C + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_02046530 +sub_02046530: ; 0x02046530 + add r0, #0x8 + bx lr + + thumb_func_start sub_02046534 +sub_02046534: ; 0x02046534 + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0204653C +sub_0204653C: ; 0x0204653C + push {r4-r6, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02046562 + cmp r0, #0x1 + beq _02046572 + b _02046580 +_02046562: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0203780C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02046580 +_02046572: + add r0, r5, #0x0 + bl sub_0204647C + cmp r0, #0x0 + bne _02046580 + mov r0, #0x1 + pop {r4-r6, pc} +_02046580: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02046584 +sub_02046584: ; 0x02046584 + ldr r3, _0204658C ; =sub_0204640C + add r2, r1, #0x0 + ldr r1, _02046590 ; =sub_0204653C + bx r3 + .balign 4 +_0204658C: .word sub_0204640C + 1 +_02046590: .word sub_0204653C + 1 + + thumb_func_start sub_02046594 +sub_02046594: ; 0x02046594 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + mov r1, #0x14 + add r7, r2, #0x0 + add r4, r3, #0x0 + bl sub_020169D8 + str r4, [r0, #0x0] + cmp r4, #0x0 + beq _020465B0 + mov r1, #0x0 + str r1, [r4, #0x0] +_020465B0: + str r6, [r0, #0x4] + str r7, [r0, #0x8] + str r5, [r0, #0x10] + pop {r3-r7, pc} + + thumb_func_start sub_020465B8 +sub_020465B8: ; 0x020465B8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x10] + bl sub_02047964 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020465CC +sub_020465CC: ; 0x020465CC + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020465D8 + ldr r1, [r0, #0x10] + ldr r1, [r1, #0x14] + str r1, [r2, #0x0] +_020465D8: + ldr r0, [r0, #0x10] + ldr r3, _020465E0 ; =sub_020480B8 + ldr r0, [r0, #0x14] + bx r3 + .balign 4 +_020465E0: .word sub_020480B8 + 1 + + thumb_func_start sub_020465E4 +sub_020465E4: ; 0x020465E4 + push {r3, lr} + mov r2, #0x2 + ldr r3, [r0, #0x0] + lsl r2, r2, #0x1e + tst r2, r3 + bne _020465F4 + bl sub_02047F38 +_020465F4: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020465F8 +sub_020465F8: ; 0x020465F8 + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x5 + bhi _020466F8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r2, r4, #0 + lsl r0, r6, #0 + lsl r0, r0, #0x1 + lsl r4, r6, #0x2 + lsl r0, r1, #0x3 + ldr r0, [r6, #0x34] + bl sub_02058780 + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + add r0, r7, #0x0 + bl sub_0204AEF8 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020466F8 +_02046648: + .byte 0x38, 0x1C, 0x04, 0xF0, 0x77, 0xFC, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x50, 0xE0, 0x29, 0x69, 0x38, 0x1C, 0xFF, 0xF7, 0x93, 0xFF, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x48, 0xE0, 0x28, 0x69, 0x31, 0x1C, 0xFF, 0xF7, 0xBB, 0xFF, 0x2A, 0x69 + .byte 0x11, 0x68, 0x00, 0x29, 0x05, 0xD0, 0x01, 0x20, 0x00, 0x02, 0x81, 0x42, 0x01, 0xD0, 0x4A, 0x29 + .byte 0x06, 0xD1, 0x4D, 0x21, 0x89, 0x00, 0x51, 0x58, 0x52, 0x69, 0x30, 0x1C, 0x1A, 0xF0, 0xF8, 0xFC + .byte 0x28, 0x1C, 0xFF, 0xF7, 0x9B, 0xFF, 0x00, 0x28, 0x04, 0xD1, 0x28, 0x1C, 0xFF, 0xF7, 0x8C, 0xFF + .byte 0x01, 0x20, 0xF8, 0xBD, 0xF0, 0x68, 0xFF, 0xF7, 0x01, 0xFE, 0x18, 0xF0, 0x47, 0xFB, 0x00, 0x28 + .byte 0x04, 0xD0, 0xF0, 0x68, 0x25, 0xF0, 0x32, 0xFA, 0x3E, 0xF0, 0x42, 0xFD, 0x29, 0x69, 0x30, 0x1C + .byte 0x00, 0xF0, 0x18, 0xFE, 0x29, 0x69, 0x30, 0x1C, 0x00, 0xF0, 0x80, 0xFE, 0x38, 0x1C, 0x04, 0xF0 + .byte 0x59, 0xFC, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x0E, 0xE0, 0x70, 0x6B, 0x12, 0xF0, 0x68, 0xF8 + .byte 0x38, 0x1C, 0x04, 0xF0, 0x93, 0xFC, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x04, 0xE0, 0x28, 0x1C + .byte 0xFF, 0xF7, 0x62, 0xFF, 0x01, 0x20, 0xF8, 0xBD +_020466F8: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_020466FC +sub_020466FC: ; 0x020466FC + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + add r2, r3, #0x0 + ldr r3, [sp, #0x8] + bl sub_02046594 + add r2, r0, #0x0 + ldr r1, _02046718 ; =sub_020465F8 + add r0, r4, #0x0 + bl sub_0204640C + pop {r4, pc} + .balign 4 +_02046718: .word sub_020465F8 + 1 + + thumb_func_start sub_0204671C +sub_0204671C: ; 0x0204671C + push {r3, lr} + mov r2, #0xf + and r0, r2 + cmp r0, #0x6 + bhi _02046754 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r4, #0 + lsl r4, r1, #0 + lsl r6, r2, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r6, r2, #0 + lsl r4, r1, #0 + ldr r0, [r1, #0xc] + mov r1, #0x1 + bl sub_0202E25C + pop {r3, pc} +_0204674A: + .byte 0xC8, 0x68, 0x10, 0x3A, 0x11, 0x1C + .byte 0xE7, 0xF7, 0x84, 0xFD +_02046754: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02046758 +sub_02046758: ; 0x02046758 + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x5 + bhi _020467F6 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r4, r3, #0 + lsl r2, r5, #0 + lsl r2, r7, #0 + lsl r6, r4, #0x1 + lsl r6, r4, #0x1 + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + add r0, r6, #0x0 + bl sub_0204AEF8 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020467F6 +_020467A2: + .byte 0x30, 0x1C, 0x04, 0xF0, 0xCA, 0xFB, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x22, 0xE0 + .byte 0x29, 0x69, 0x30, 0x1C, 0xFF, 0xF7, 0xE6, 0xFE, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x1A, 0xE0 + .byte 0x28, 0x69, 0x39, 0x1C, 0x40, 0x69, 0xFF, 0xF7, 0xA9, 0xFF, 0x28, 0x69, 0x39, 0x1C, 0x01, 0xF0 + .byte 0xE9, 0xFB, 0xF8, 0x68, 0xE3, 0xF7, 0xF8, 0xFB, 0x15, 0x21, 0xE3, 0xF7, 0xC9, 0xFC, 0x30, 0x1C + .byte 0x04, 0xF0, 0xD0, 0xFB, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x04, 0xE0, 0x28, 0x1C, 0xFF, 0xF7 + .byte 0xE3, 0xFE, 0x01, 0x20, 0xF8, 0xBD +_020467F6: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020467FC +sub_020467FC: ; 0x020467FC + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02046826 + cmp r0, #0x1 + beq _02046844 + cmp r0, #0x2 + beq _0204686A + b _02046874 +_02046826: + ldr r1, [r5, #0x8] + mov r0, #0x5 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + mov r2, #0x1 + bl sub_0200433C + ldr r1, [r5, #0x10] + add r0, r7, #0x0 + bl sub_02046584 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02046874 +_02046844: + ldr r0, [r5, #0x10] + add r1, r6, #0x0 + ldr r0, [r0, #0x14] + bl sub_0204671C + ldr r0, [r5, #0x10] + add r1, r6, #0x0 + bl sub_02047FA4 + ldr r0, [r6, #0xc] + bl sub_02029FC8 + mov r1, #0x15 + bl sub_0202A170 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02046874 +_0204686A: + add r0, r5, #0x0 + bl sub_020465B8 + mov r0, #0x1 + pop {r3-r7, pc} +_02046874: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02046878 +sub_02046878: ; 0x02046878 + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x5 + bhi _02046922 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r4, r3, #0 + lsl r2, r5, #0 + lsl r2, r7, #0 + lsl r4, r4, #0x1 + lsl r2, r6, #0x1 + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + add r0, r6, #0x0 + bl sub_0204AEF8 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02046922 +_020468C2: + .byte 0x30, 0x1C, 0x04, 0xF0, 0x3A, 0xFB, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x28, 0xE0 + .byte 0x29, 0x69, 0x30, 0x1C, 0xFF, 0xF7, 0x56, 0xFE, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x20, 0xE0 + .byte 0x28, 0x69, 0x39, 0x1C, 0x01, 0xF0, 0x5E, 0xFB, 0x4E, 0x21, 0x2A, 0x69, 0x89, 0x00, 0x38, 0x1C + .byte 0x51, 0x18, 0x19, 0xF0, 0xA7, 0xFB, 0x28, 0x1C, 0xFF, 0xF7, 0x68, 0xFE, 0x30, 0x1C, 0x04, 0xF0 + .byte 0x41, 0xFB, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x0B, 0xE0, 0x30, 0x1C, 0x04, 0xF0, 0x7E, 0xFB + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x04, 0xE0, 0x28, 0x1C, 0xFF, 0xF7, 0x4D, 0xFE, 0x01, 0x20 + .byte 0xF8, 0xBD +_02046922: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02046928 +sub_02046928: ; 0x02046928 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + add r2, r3, #0x0 + ldr r3, [sp, #0x8] + bl sub_02046594 + add r2, r0, #0x0 + ldr r1, _02046944 ; =sub_02046878 + add r0, r4, #0x0 + bl sub_0204640C + pop {r4, pc} + .balign 4 +_02046944: .word sub_02046878 + 1 + + thumb_func_start sub_02046948 +sub_02046948: ; 0x02046948 + push {r3-r7, lr} + add r4, r1, #0x0 + add r7, r0, #0x0 + add r5, r2, #0x0 + bl sub_02046528 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02244558 + add r4, r0, #0x0 + bl sub_020475A0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + str r5, [sp, #0x0] + bl sub_02046928 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204697C +sub_0204697C: ; 0x0204697C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + mov r1, #0x14 + add r7, r2, #0x0 + add r4, r3, #0x0 + bl sub_020169D8 + str r4, [r0, #0xc] + cmp r4, #0x0 + beq _02046998 + mov r1, #0x0 + str r1, [r4, #0x0] +_02046998: + str r6, [r0, #0x4] + str r7, [r0, #0x8] + str r5, [r0, #0x10] + mov r1, #0x0 + str r1, [r0, #0x0] + pop {r3-r7, pc} + + thumb_func_start sub_020469A4 +sub_020469A4: ; 0x020469A4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x10] + bl sub_02047964 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020469B8 +sub_020469B8: ; 0x020469B8 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x0 + beq _020469F2 + add r0, r4, #0x0 + bl sub_020475A0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_02046594 + add r2, r0, #0x0 + ldr r1, _02046A18 ; =sub_02046C1C + add r0, r5, #0x0 + bl sub_020463CC + pop {r4-r6, pc} +_020469F2: + add r0, r4, #0x0 + bl sub_020475A0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_0204697C + add r2, r0, #0x0 + ldr r1, _02046A1C ; =sub_02046A88 + add r0, r5, #0x0 + bl sub_020463CC + pop {r4-r6, pc} + .balign 4 +_02046A18: .word sub_02046C1C + 1 +_02046A1C: .word sub_02046A88 + 1 + + thumb_func_start sub_02046A20 +sub_02046A20: ; 0x02046A20 + push {r4-r6, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x0 + beq _02046A5A + add r0, r4, #0x0 + bl sub_020475A0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_02046594 + add r2, r0, #0x0 + ldr r1, _02046A80 ; =sub_02046C1C + add r0, r5, #0x0 + bl sub_020463EC + pop {r4-r6, pc} +_02046A5A: + add r0, r4, #0x0 + bl sub_020475A0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_0204697C + add r2, r0, #0x0 + ldr r1, _02046A84 ; =sub_02046A88 + add r0, r5, #0x0 + bl sub_020463EC + pop {r4-r6, pc} + .balign 4 +_02046A80: .word sub_02046C1C + 1 +_02046A84: .word sub_02046A88 + 1 + + thumb_func_start sub_02046A88 +sub_02046A88: ; 0x02046A88 + push {r4-r6, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x6 + bls _02046AA2 + b _02046C12 +_02046AA2: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r0, r6, #0 + lsl r6, r7, #0 + lsl r6, r1, #0x1 + lsl r6, r7, #0x3 + lsl r4, r2, #0x4 + lsl r4, r0, #0x5 + ldr r0, [r5, #0x34] + bl sub_02058780 + ldr r0, [r5, #0xc] + bl sub_02029FC8 + mov r1, #0x7 + bl sub_0202A0E8 + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x8] + add r0, r6, #0x0 + bl sub_0204AEF8 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02046C12 +_02046AE0: + .byte 0x30, 0x1C, 0x04, 0xF0, 0x2B, 0xFA, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x91, 0xE0, 0x21, 0x69 + .byte 0x30, 0x1C, 0xFF, 0xF7, 0x47, 0xFD, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x89, 0xE0, 0x20, 0x69 + .byte 0x29, 0x1C, 0xFF, 0xF7, 0x6F, 0xFD, 0x4D, 0x21, 0x22, 0x69, 0x89, 0x00, 0x51, 0x58, 0x52, 0x69 + .byte 0x28, 0x1C, 0x1A, 0xF0, 0xB5, 0xFA, 0x20, 0x69, 0x40, 0x69, 0x01, 0xF0, 0xCD, 0xFA, 0x00, 0x28 + .byte 0x0D, 0xD1, 0x20, 0x1C, 0xFF, 0xF7, 0x3E, 0xFF, 0x90, 0x35, 0x28, 0x68, 0x17, 0xF0, 0x08, 0xF9 + .byte 0x39, 0x49, 0x30, 0x1C, 0x00, 0x22, 0xFF, 0xF7, 0x59, 0xFC, 0x00, 0x20, 0x70, 0xBD, 0xE8, 0x68 + .byte 0xFF, 0xF7, 0xB4, 0xFB, 0x18, 0xF0, 0xFA, 0xF8, 0x00, 0x28, 0x04, 0xD0, 0xE8, 0x68, 0x24, 0xF0 + .byte 0xE5, 0xFF, 0x3E, 0xF0, 0xF5, 0xFA, 0x21, 0x69, 0x28, 0x1C, 0x00, 0xF0, 0xCB, 0xFB, 0x21, 0x69 + .byte 0x28, 0x1C, 0x00, 0xF0, 0x33, 0xFC, 0x28, 0x1C, 0x90, 0x30, 0x00, 0x68, 0x17, 0xF0, 0xDC, 0xFA + .byte 0x00, 0x28, 0x15, 0xD0, 0x28, 0x1C, 0x90, 0x30, 0x00, 0x68, 0x17, 0xF0, 0x93, 0xFA, 0x00, 0x28 + .byte 0x0A, 0xD0, 0x20, 0x69, 0x40, 0x69, 0x01, 0x28, 0x0A, 0xD0, 0x04, 0x28, 0x08, 0xD0, 0x90, 0x35 + .byte 0x28, 0x68, 0x17, 0xF0, 0xD5, 0xF8, 0x03, 0xE0, 0x90, 0x35, 0x28, 0x68, 0x17, 0xF0, 0xD0, 0xF8 + .byte 0x30, 0x1C, 0x04, 0xF0, 0xEF, 0xF9, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x31, 0xE0, 0x21, 0x69 + .byte 0x28, 0x1C, 0x01, 0xF2, 0xB7, 0xFD, 0x30, 0x1C, 0x04, 0xF0, 0x28, 0xFA, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x26, 0xE0, 0x28, 0x1C, 0x90, 0x30, 0x00, 0x68, 0x17, 0xF0, 0xAD, 0xFA, 0x00, 0x28 + .byte 0x0C, 0xD0, 0x21, 0x69, 0x2A, 0x1C, 0x90, 0x32, 0x49, 0x69, 0x12, 0x68, 0x28, 0x1C, 0x17, 0xF0 + .byte 0x79, 0xF9, 0x28, 0x1C, 0x90, 0x35, 0x29, 0x68, 0x17, 0xF0, 0xAC, 0xF9, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x0E, 0xE0, 0x28, 0x1C, 0x90, 0x30, 0x00, 0x68, 0x17, 0xF0, 0xCF, 0xF9, 0x00, 0x28 + .byte 0x07, 0xD0, 0x68, 0x6B, 0x11, 0xF0, 0xD4, 0xFD, 0x20, 0x1C, 0xFF, 0xF7, 0xCB, 0xFE, 0x01, 0x20 + .byte 0x70, 0xBD +_02046C12: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_02046C18: + .byte 0x7D, 0x83, 0x04, 0x02 + + thumb_func_start sub_02046C1C +sub_02046C1C: ; 0x02046C1C + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r6, #0xc] + bl sub_02034E30 + bl sub_02034E24 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + cmp r0, #0x7 + bls _02046C4C + b _02046DA0 +_02046C4C: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r2, r6, #0 + lsl r0, r0, #0x1 + lsl r0, r2, #0x1 + lsl r4, r6, #0x2 + lsl r2, r0, #0x3 + lsl r6, r2, #0x3 + lsl r2, r7, #0x4 + ldr r0, [r6, #0x34] + bl sub_02058780 + ldr r0, [r6, #0xc] + bl sub_02029FC8 + mov r1, #0x7 + bl sub_0202A0E8 + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + add r0, r7, #0x0 + bl sub_0204AEF8 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02046DA0 +_02046C8C: + .byte 0x38, 0x1C, 0x04, 0xF0 + .byte 0x55, 0xF9, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x82, 0xE0, 0x29, 0x69, 0x38, 0x1C, 0xFF, 0xF7 + .byte 0x71, 0xFC, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x7A, 0xE0, 0x28, 0x69, 0x31, 0x1C, 0xFF, 0xF7 + .byte 0x99, 0xFC, 0x28, 0x69, 0x40, 0x69, 0x04, 0x28, 0x0C, 0xD1, 0xF0, 0x68, 0xDB, 0xF7, 0x22, 0xFC + .byte 0x01, 0x90, 0x28, 0x69, 0x00, 0x21, 0x80, 0x68, 0x24, 0xF0, 0x72, 0xFE, 0x01, 0x1C, 0x01, 0x98 + .byte 0x1A, 0xF0, 0x86, 0xF9, 0x29, 0x69, 0x30, 0x1C, 0x00, 0xF0, 0x0C, 0xFB, 0x00, 0x98, 0x00, 0x88 + .byte 0x00, 0x28, 0x0C, 0xD1, 0x28, 0x69, 0x40, 0x69, 0x04, 0x28, 0x08, 0xD0, 0xF0, 0x68, 0xEE, 0xF7 + .byte 0x9F, 0xF8, 0xEE, 0xF7, 0x6D, 0xF8, 0x01, 0x1C, 0x38, 0x1C, 0x02, 0xF0, 0x31, 0xFA, 0x29, 0x69 + .byte 0x30, 0x1C, 0x00, 0xF0, 0x63, 0xFB, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x48, 0xE0, 0x38, 0x1C + .byte 0x04, 0xF0, 0x38, 0xF9, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x41, 0xE0, 0x70, 0x6B, 0x11, 0xF0 + .byte 0x47, 0xFD, 0x38, 0x1C, 0x04, 0xF0, 0x72, 0xF9, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x37, 0xE0 + .byte 0x00, 0x98, 0x00, 0x88, 0x00, 0x28, 0x11, 0xD1, 0x28, 0x69, 0x40, 0x69, 0x04, 0x28, 0x06, 0xD1 + .byte 0x00, 0x22, 0x19, 0x49, 0x38, 0x1C, 0x13, 0x1C, 0xF1, 0xF7, 0xC6, 0xFF, 0x1E, 0xE0, 0x00, 0x22 + .byte 0x16, 0x49, 0x38, 0x1C, 0x13, 0x1C, 0xF1, 0xF7, 0xBF, 0xFF, 0x17, 0xE0, 0xF0, 0x68, 0xDB, 0xF7 + .byte 0xD7, 0xFB, 0x02, 0x90, 0xF0, 0x68, 0x24, 0xF0, 0xD9, 0xFE, 0x05, 0x1C, 0x02, 0x98, 0x24, 0xF0 + .byte 0xE1, 0xFA, 0x12, 0x28, 0x0A, 0xD1, 0x28, 0x1C, 0x24, 0xF0, 0x18, 0xFE, 0x06, 0x28, 0x05, 0xD1 + .byte 0x00, 0x22, 0x0B, 0x49, 0x38, 0x1C, 0x13, 0x1C, 0xF1, 0xF7, 0xA6, 0xFF, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x05, 0xE0, 0x28, 0x1C, 0xFF, 0xF7, 0x0F, 0xFC, 0x03, 0xB0, 0x01, 0x20, 0xF0, 0xBD +_02046DA0: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + nop +_02046DA8: + .byte 0x62, 0x22, 0x00, 0x00, 0x69, 0x22, 0x00, 0x00 + .byte 0x76, 0x22, 0x00, 0x00 + + thumb_func_start sub_02046DB4 +sub_02046DB4: ; 0x02046DB4 + push {r3-r7, lr} + add r7, r0, #0x0 + add r6, r1, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + bl sub_0205DD40 + mov r0, #0xb + mov r1, #0x0 + bl sub_020476CC + add r1, r5, #0x0 + add r4, r0, #0x0 + bl sub_02047BB0 + mov r0, #0x15 + mov r1, #0x0 + lsl r0, r0, #0x4 + str r1, [r4, r0] + add r0, r0, #0x4 + str r1, [r4, r0] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0223CCDC + ldr r0, [r5, #0xc] + bl sub_02029FC8 + mov r1, #0x7 + bl sub_0202A0E8 + add r0, r4, #0x0 + bl sub_020475A0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r4, #0x0 + add r2, r5, #0x0 + str r6, [sp, #0x0] + bl sub_020466FC + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02046E18 +sub_02046E18: ; 0x02046E18 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x4] + add r7, r1, #0x0 + str r2, [sp, #0x8] + add r6, r3, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + bl sub_0205DD40 + mov r0, #0xb + mov r1, #0x0 + bl sub_020476CC + add r1, r5, #0x0 + add r4, r0, #0x0 + bl sub_02047BB0 + ldr r2, [sp, #0x8] + add r0, r5, #0x0 + add r1, r7, #0x0 + add r3, r4, #0x0 + bl sub_0223CD7C + ldr r0, [sp, #0x20] + cmp r0, #0x0 + beq _02046E60 + mov r1, #0x63 + lsl r1, r1, #0x2 + ldr r2, [r4, r1] + mov r0, #0x8 + orr r0, r2 + str r0, [r4, r1] +_02046E60: + ldr r0, [r5, #0xc] + bl sub_02029FC8 + mov r1, #0x7 + bl sub_0202A0E8 + add r0, r4, #0x0 + bl sub_020475A0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r3, r0, #0x0 + ldr r0, [sp, #0x4] + add r1, r4, #0x0 + add r2, r5, #0x0 + str r6, [sp, #0x0] + bl sub_020466FC + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02046E8C +sub_02046E8C: ; 0x02046E8C + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x6 + bhi _02046F6C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r0, r6, #0 + lsl r6, r7, #0 + lsl r6, r1, #0x1 + lsl r6, r5, #0x1 + lsl r4, r7, #0x1 + lsl r0, r2, #0x2 + ldr r0, [r6, #0x34] + bl sub_02058780 + ldr r0, [r6, #0xc] + bl sub_02029FC8 + mov r1, #0x7 + bl sub_0202A0E8 + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + add r0, r7, #0x0 + bl sub_0204AEF8 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02046F6C +_02046EEA: + .byte 0x38, 0x1C, 0x04, 0xF0, 0x26, 0xF8 + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x39, 0xE0, 0x29, 0x69, 0x38, 0x1C, 0xFF, 0xF7, 0x42, 0xFB + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x31, 0xE0, 0x28, 0x69, 0x31, 0x1C, 0xFF, 0xF7, 0x6A, 0xFB + .byte 0x29, 0x69, 0x30, 0x1C, 0x04, 0xF0, 0xC4, 0xFD, 0x29, 0x69, 0x30, 0x1C, 0x00, 0xF0, 0xEA, 0xF9 + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x21, 0xE0, 0x38, 0x1C, 0x04, 0xF0, 0x2B, 0xF8, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x1A, 0xE0, 0x70, 0x6B, 0x11, 0xF0, 0x3A, 0xFC, 0x38, 0x1C, 0x04, 0xF0 + .byte 0x65, 0xF8, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x10, 0xE0, 0x28, 0x1C, 0xFF, 0xF7, 0x34, 0xFB + .byte 0x30, 0x1C, 0x04, 0xF0, 0xAD, 0xFD, 0x00, 0x28, 0x06, 0xD1, 0x38, 0x1C, 0x03, 0x21, 0x00, 0x22 + .byte 0xF1, 0xF7, 0xD6, 0xFE, 0x00, 0x20, 0xF8, 0xBD, 0x01, 0x20, 0xF8, 0xBD +_02046F6C: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02046F70 +sub_02046F70: ; 0x02046F70 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475A0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_02046594 + add r2, r0, #0x0 + ldr r1, _02046F9C ; =sub_02046E8C + add r0, r5, #0x0 + bl sub_020463CC + pop {r4-r6, pc} + .balign 4 +_02046F9C: .word sub_02046E8C + 1 + + thumb_func_start sub_02046FA0 +sub_02046FA0: ; 0x02046FA0 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x4] + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + mov r0, #0xb + mov r1, #0x0 + bl sub_020476CC + add r4, r0, #0x0 + add r1, r5, #0x0 + bl sub_02047BB0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + add r3, r4, #0x0 + bl sub_0223CD7C + mov r0, #0x63 + mov r1, #0x1 + lsl r0, r0, #0x2 + str r1, [r4, r0] + ldr r0, [r5, #0xc] + bl sub_02029FC8 + mov r1, #0x7 + bl sub_0202A0E8 + add r0, r4, #0x0 + bl sub_020475A0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r3, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + add r1, r4, #0x0 + add r2, r5, #0x0 + bl sub_020466FC + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02047004 +sub_02047004: ; 0x02047004 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_0204652C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x6 + bhi _020470A6 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0 + lsl r4, r4, #0 + lsl r2, r6, #0 + lsl r2, r0, #0x1 + lsl r0, r1, #0x1 + lsl r6, r2, #0x1 + lsl r2, r5, #0x1 + ldr r0, [r7, #0x34] + bl sub_02058780 + ldr r1, [r6, #0x4] + ldr r2, [r6, #0x8] + add r0, r5, #0x0 + bl sub_0204AEF8 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020470A6 +_02047056: + .byte 0x28, 0x1C, 0x03, 0xF0, 0x70, 0xFF, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x20, 0xE0, 0x31, 0x69, 0x28, 0x1C, 0xFF, 0xF7, 0x8C, 0xFA, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x18, 0xE0, 0x40, 0x1C, 0x20, 0x60, 0x15, 0xE0, 0x28, 0x1C, 0x03, 0xF0, 0x82, 0xFF + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x0E, 0xE0, 0x78, 0x6B, 0x11, 0xF0, 0x91, 0xFB, 0x28, 0x1C + .byte 0x03, 0xF0, 0xBC, 0xFF, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x04, 0xE0, 0x30, 0x1C, 0xFF, 0xF7 + .byte 0x8B, 0xFA, 0x01, 0x20, 0xF8, 0xBD +_020470A6: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020470AC +sub_020470AC: ; 0x020470AC + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r1, r0, #0x0 + mov r0, #0xb + bl sub_02047814 + add r4, r0, #0x0 + bl sub_020475A0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_02046594 + add r2, r0, #0x0 + ldr r1, _020470E4 ; =sub_02047004 + add r0, r5, #0x0 + bl sub_0204640C + pop {r4-r6, pc} + nop +_020470E4: .word sub_02047004 + 1 + + thumb_func_start sub_020470E8 +sub_020470E8: ; 0x020470E8 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x4] + add r6, r1, #0x0 + add r5, r2, #0x0 + str r3, [sp, #0x8] + bl sub_02046528 + add r7, r0, #0x0 + cmp r5, #0x0 + beq _02047110 + cmp r6, r5 + beq _02047110 + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bne _0204710C + mov r4, #0x13 + b _0204711A +_0204710C: + mov r4, #0x4b + b _0204711A +_02047110: + cmp r6, r5 + bne _02047118 + mov r4, #0x3 + b _0204711A +_02047118: + mov r4, #0x1 +_0204711A: + add r0, r7, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + bl sub_0205DD40 + mov r0, #0xb + add r1, r4, #0x0 + bl sub_020476CC + add r4, r0, #0x0 + add r1, r7, #0x0 + bl sub_02047BB0 + str r6, [r4, #0x1c] + ldr r0, [sp, #0x8] + str r5, [r4, #0x24] + str r0, [r4, #0x20] + ldr r1, [r7, #0xc] + ldr r2, [sp, #0x20] + add r0, r4, #0x0 + bl sub_0206ABC4 + ldr r0, [r7, #0xc] + bl sub_02029FC8 + mov r1, #0x8 + bl sub_0202A0E8 + add r0, r4, #0x0 + bl sub_020475A0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r3, r0, #0x0 + ldr r0, [sp, #0x24] + add r1, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + add r2, r5, #0x0 + bl sub_020466FC + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02047174 +sub_02047174: ; 0x02047174 + push {r3-r7, lr} + add r5, r2, #0x0 + add r7, r0, #0x0 + add r4, r1, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + mov r0, #0xb + add r1, r5, #0x0 + bl sub_020476CC + add r5, r0, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_02047F1C + add r0, r5, #0x0 + bl sub_020475A0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020475B0 + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_02046594 + add r2, r0, #0x0 + ldr r1, _020471BC ; =sub_02046758 + add r0, r7, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + nop +_020471BC: .word sub_02046758 + 1 + + thumb_func_start sub_020471C0 +sub_020471C0: ; 0x020471C0 + push {r3-r7, lr} + str r0, [sp, #0x0] + add r5, r1, #0x0 + add r6, r2, #0x0 + add r4, r3, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + cmp r4, #0x0 + beq _020471DE + mov r0, #0xb + mov r1, #0x5 + bl sub_020476CC + b _020471E6 +_020471DE: + mov r0, #0xb + mov r1, #0x7 + bl sub_020476CC +_020471E6: + add r4, r0, #0x0 + add r0, r4, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_02047BC0 + add r0, r4, #0x0 + bl sub_020475A0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_02046594 + add r2, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r1, _0204721C ; =sub_020467FC + str r5, [r2, #0xc] + bl sub_0204640C + pop {r3-r7, pc} + nop +_0204721C: .word sub_020467FC + 1 + + thumb_func_start sub_02047220 +sub_02047220: ; 0x02047220 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02047246 + cmp r0, #0x1 + beq _02047258 + b _02047262 +_02047246: + ldr r1, _02047268 ; =sub_02046758 + add r0, r5, #0x0 + add r2, r7, #0x0 + bl sub_0204640C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02047262 +_02047258: + add r0, r6, #0x0 + bl sub_0204FF5C + mov r0, #0x1 + pop {r3-r7, pc} +_02047262: + mov r0, #0x0 + pop {r3-r7, pc} + nop +_02047268: .word sub_02046758 + 1 + + thumb_func_start sub_0204726C +sub_0204726C: ; 0x0204726C + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + add r1, r2, #0x0 + bl sub_020476CC + add r4, r0, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl sub_02047F1C + add r0, r4, #0x0 + bl sub_020475A0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_02046594 + add r2, r0, #0x0 + ldr r1, _020472AC ; =sub_02047220 + add r0, r5, #0x0 + bl sub_020463CC + pop {r4-r6, pc} + nop +_020472AC: .word sub_02047220 + 1 + + thumb_func_start sub_020472B0 +sub_020472B0: ; 0x020472B0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + add r1, r2, #0x0 + bl sub_020476CC + add r4, r0, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + mov r3, #0x0 + bl sub_02047D48 + add r0, r4, #0x0 + bl sub_020475A0 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_020475B0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0x0 + bl sub_02046594 + add r2, r0, #0x0 + ldr r1, _020472F0 ; =sub_02047220 + add r0, r5, #0x0 + bl sub_020463CC + pop {r4-r6, pc} + .balign 4 +_020472F0: .word sub_02047220 + 1 + + thumb_func_start sub_020472F4 +sub_020472F4: ; 0x020472F4 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r1, #0x0] + mov r3, #0x4 + ldr r2, [r1, #0x14] + tst r3, r0 + bne _020473C8 + mov r3, #0x80 + add r5, r0, #0x0 + tst r5, r3 + bne _020473C8 + cmp r0, #0x0 + beq _02047318 + add r3, #0x80 + cmp r0, r3 + beq _02047318 + cmp r0, #0x4a + bne _02047364 +_02047318: + cmp r2, #0x1 + bne _0204732A + ldr r0, [r4, #0xc] + bl sub_02029FC8 + mov r1, #0x8 + bl sub_0202A170 + pop {r3-r5, pc} +_0204732A: + cmp r2, #0x4 + bne _020473C8 + ldr r0, [r1, #0x8] + mov r1, #0x0 + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + add r1, r0, #0x0 + mov r0, #0x0 + bl sub_0206BB48 + cmp r0, #0x0 + ldr r0, [r4, #0xc] + beq _02047358 + bl sub_02029FC8 + mov r1, #0x9 + bl sub_0202A170 + pop {r3-r5, pc} +_02047358: + bl sub_02029FC8 + mov r1, #0xa + bl sub_0202A170 + pop {r3-r5, pc} +_02047364: + mov r3, #0x1 + tst r3, r0 + bne _02047370 + mov r3, #0x10 + tst r3, r0 + beq _02047382 +_02047370: + cmp r2, #0x1 + bne _020473C8 + ldr r0, [r4, #0xc] + bl sub_02029FC8 + mov r1, #0xb + bl sub_0202A170 + pop {r3-r5, pc} +_02047382: + mov r3, #0x20 + add r5, r0, #0x0 + tst r5, r3 + bne _02047390 + lsl r3, r3, #0x4 + tst r0, r3 + beq _020473C8 +_02047390: + cmp r2, #0x4 + bne _020473C8 + ldr r0, [r1, #0x8] + mov r1, #0x0 + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + add r1, r0, #0x0 + mov r0, #0x0 + bl sub_0206BB48 + cmp r0, #0x0 + ldr r0, [r4, #0xc] + beq _020473BE + bl sub_02029FC8 + mov r1, #0x9 + bl sub_0202A170 + pop {r3-r5, pc} +_020473BE: + bl sub_02029FC8 + mov r1, #0xa + bl sub_0202A170 +_020473C8: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020473CC +sub_020473CC: ; 0x020473CC + push {r4-r7, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r2, #0x4 + ldr r1, [r4, #0x14] + tst r2, r0 + bne _020473EC + mov r3, #0x80 + add r2, r0, #0x0 + tst r2, r3 + bne _020473EC + lsl r2, r3, #0x2 + tst r2, r0 + beq _020473EE +_020473EC: + b _020474FC +_020473EE: + cmp r0, #0x0 + beq _02047400 + add r3, #0x80 + cmp r0, r3 + beq _02047400 + cmp r0, #0x4a + beq _02047400 + cmp r0, #0x20 + bne _020474D2 +_02047400: + cmp r1, #0x1 + bne _02047470 + add r0, r5, #0x0 + add r0, #0x76 + ldrh r0, [r0, #0x0] + add r1, r0, #0x1 + add r0, r5, #0x0 + add r0, #0x76 + strh r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x76 + ldrh r0, [r0, #0x0] + cmp r0, #0x5 + blo _020474FC + ldr r0, [r4, #0x8] + mov r1, #0x0 + bl sub_0206B9B0 + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02023918 + str r0, [sp, #0x4] + add r0, r6, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + add r7, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x6f + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r3, #0xb + str r3, [sp, #0x0] + lsl r3, r3, #0x5 + ldr r3, [r4, r3] + lsl r1, r7, #0x10 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x4] + lsr r1, r1, #0x10 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_0202920C + add r5, #0x98 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + mov r2, #0x2 + bl sub_02028AD4 + add sp, #0xc + pop {r4-r7, pc} +_02047470: + cmp r1, #0x4 + bne _020474FC + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x4] + bl sub_0206B9B0 + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02023918 + str r0, [sp, #0x8] + add r0, r6, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + add r7, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x6f + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r3, #0xb + str r3, [sp, #0x0] + lsl r3, r3, #0x5 + ldr r3, [r4, r3] + lsl r1, r7, #0x10 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x8] + lsr r1, r1, #0x10 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_0202918C + add r5, #0x98 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + mov r2, #0x2 + bl sub_02028AD4 + add sp, #0xc + pop {r4-r7, pc} +_020474D2: + mov r2, #0x1 + tst r2, r0 + bne _020474DE + mov r2, #0x10 + tst r0, r2 + beq _020474FC +_020474DE: + cmp r1, #0x1 + bne _020474FC + ldr r1, [r5, #0x1c] + add r0, r5, #0x0 + ldr r1, [r1, #0x0] + ldr r2, [r4, #0x1c] + add r0, #0x98 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0, #0x0] + lsr r1, r1, #0x10 + lsr r2, r2, #0x10 + mov r3, #0xb + bl sub_020299DC +_020474FC: + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02047500 +sub_02047500: ; 0x02047500 + push {r4, lr} + ldr r4, [r0, #0x0] + mov r1, #0x1 + tst r1, r4 + beq _02047546 + add r0, #0x5d + ldrb r0, [r0, #0x0] + bl sub_020475C0 + mov r1, #0x80 + tst r1, r4 + beq _0204752A + cmp r0, #0x1c + beq _02047558 + mov r0, #0x2 + tst r0, r4 + beq _02047526 + mov r0, #0x1a + pop {r4, pc} +_02047526: + mov r0, #0x18 + pop {r4, pc} +_0204752A: + add r1, r0, #0x0 + sub r1, #0x15 + cmp r1, #0x2 + bls _02047558 + mov r1, #0x2 + tst r1, r4 + beq _0204753C + mov r0, #0x1a + pop {r4, pc} +_0204753C: + mov r1, #0x4 + tst r1, r4 + beq _02047558 + mov r0, #0x19 + pop {r4, pc} +_02047546: + ldr r0, [r0, #0x8] + bl sub_02047668 + cmp r0, #0x1e + blo _02047558 + mov r1, #0x2 + tst r1, r4 + beq _02047558 + mov r0, #0x1b +_02047558: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0204755C +sub_0204755C: ; 0x0204755C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x1f + blo _0204756A + bl sub_02020C2C +_0204756A: + ldr r0, _02047580 ; =0x020F457C + lsl r1, r5, #0x2 + ldrh r0, [r0, r1] + ldr r1, _02047584 ; =0x0000FFFF + cmp r0, r1 + bne _0204757C + add r0, r4, #0x0 + bl sub_021E495C +_0204757C: + pop {r3-r5, pc} + nop +_02047580: .word 0x020F457C +_02047584: .word 0x0000FFFF + + thumb_func_start sub_02047588 +sub_02047588: ; 0x02047588 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x1f + blo _02047594 + bl sub_02020C2C +_02047594: + ldr r0, _0204759C ; =0x020F457E + lsl r1, r4, #0x2 + ldrh r0, [r0, r1] + pop {r4, pc} + .balign 4 +_0204759C: .word 0x020F457E + + thumb_func_start sub_020475A0 +sub_020475A0: ; 0x020475A0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02047500 + add r1, r4, #0x0 + bl sub_0204755C + pop {r4, pc} + + thumb_func_start sub_020475B0 +sub_020475B0: ; 0x020475B0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02047500 + add r1, r4, #0x0 + bl sub_02047588 + pop {r4, pc} + + thumb_func_start sub_020475C0 +sub_020475C0: ; 0x020475C0 + sub r0, #0x3e + mov r1, #0x1d + cmp r0, #0x23 + bhi _02047662 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0x1 + lsl r2, r7, #0x1 + lsl r6, r3, #0x1 + lsl r6, r4, #0x1 + lsl r2, r5, #0x1 + lsl r6, r5, #0x1 + lsl r2, r6, #0x1 + lsl r6, r6, #0x1 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r2, r0, #0x2 + lsl r6, r0, #0x2 + lsl r2, r1, #0x1 + lsl r6, r1, #0x1 + lsl r2, r2, #0x1 + lsl r6, r2, #0x1 + lsl r2, r3, #0x1 + lsl r2, r4, #0x1 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r6, r7, #0x1 + lsl r2, r0, #0x2 + lsl r2, r0, #0x2 + lsl r6, r0, #0x2 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r4, r1, #0x2 + lsl r2, r1, #0x2 + mov r1, #0x0 + b _02047662 +_02047620: + .byte 0x01, 0x21, 0x1E, 0xE0, 0x02, 0x21, 0x1C, 0xE0, 0x03, 0x21, 0x1A, 0xE0, 0x04, 0x21, 0x18, 0xE0 + .byte 0x05, 0x21, 0x16, 0xE0, 0x06, 0x21, 0x14, 0xE0, 0x07, 0x21, 0x12, 0xE0, 0x08, 0x21, 0x10, 0xE0 + .byte 0x09, 0x21, 0x0E, 0xE0, 0x0A, 0x21, 0x0C, 0xE0, 0x0B, 0x21, 0x0A, 0xE0, 0x0C, 0x21, 0x08, 0xE0 + .byte 0x0D, 0x21, 0x06, 0xE0, 0x17, 0x21, 0x04, 0xE0, 0x16, 0x21, 0x02, 0xE0, 0x15, 0x21, 0x00, 0xE0 + .byte 0x1C, 0x21 +_02047662: + add r0, r1, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02047668 +sub_02047668: ; 0x02047668 + push {r4, lr} + mov r4, #0x1e + bl sub_0204A1D8 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020476C8 ; =0x000001DF + sub r0, r0, r1 + cmp r0, #0xe + bhi _020476C4 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r4, #0 + lsl r4, r5, #0 + lsl r0, r5, #0 + lsl r4, r5, #0 + lsl r0, r6, #0 + lsl r0, r6, #0 + lsl r4, r4, #0 + lsl r4, r4, #0 + lsl r4, r4, #0 + lsl r0, r4, #0 + lsl r6, r6, #0 + lsl r6, r6, #0 + lsl r4, r4, #0 + lsl r4, r3, #0 + lsl r4, r6, #0 + mov r4, #0xe + b _020476C4 +_020476AE: + .byte 0x14, 0x24 + .byte 0x08, 0xE0, 0x13, 0x24, 0x06, 0xE0, 0x11, 0x24, 0x04, 0xE0, 0x10, 0x24, 0x02, 0xE0, 0x0F, 0x24 + .byte 0x00, 0xE0, 0x12, 0x24 +_020476C4: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_020476C8: .word 0x000001DF + + thumb_func_start sub_020476CC +sub_020476CC: ; 0x020476CC + push {r3-r7, lr} + add r4, r1, #0x0 + mov r1, #0x67 + lsl r1, r1, #0x2 + add r5, r0, #0x0 + bl sub_02016998 + mov r2, #0x67 + mov r1, #0x0 + lsl r2, r2, #0x2 + add r7, r0, #0x0 + blx sub_020CE34C + mov r1, #0x63 + str r4, [r7, #0x0] + mov r0, #0x0 + lsl r1, r1, #0x2 + str r0, [r7, r1] + add r4, r7, #0x0 + str r0, [sp, #0x0] + str r0, [r7, #0x14] + add r6, r7, #0x0 + add r4, #0x28 +_020476FA: + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x34 + str r0, [r6, #0x18] + blx sub_020CE1FC + ldr r0, [sp, #0x0] + add r6, r6, #0x4 + add r0, r0, #0x1 + add r4, #0x34 + str r0, [sp, #0x0] + cmp r0, #0x4 + blt _020476FA + mov r0, #0x15 + lsl r0, r0, #0x4 + mov r6, #0x0 + str r6, [r7, r0] + mov r2, #0xc + add r1, r0, #0x4 + str r2, [r7, r1] + add r1, r0, #0x0 + add r1, #0x8 + str r6, [r7, r1] + add r1, r0, #0x0 + add r1, #0x10 + str r6, [r7, r1] + add r1, r0, #0x0 + add r1, #0x14 + str r6, [r7, r1] + add r1, r0, #0x0 + mov r2, #0x1 + add r1, #0x18 + str r2, [r7, r1] + add r1, r0, #0x0 + add r1, #0x1c + str r2, [r7, r1] + add r0, #0x24 + str r6, [r7, r0] + add r4, r7, #0x0 +_02047748: + add r0, r5, #0x0 + bl sub_0206B8AC + str r0, [r4, #0x4] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, #0x4 + blt _02047748 + mov r6, #0x0 + add r4, r7, #0x0 +_0204775C: + add r0, r5, #0x0 + bl sub_02023928 + add r1, r4, #0x0 + add r1, #0xf8 + add r6, r6, #0x1 + add r4, r4, #0x4 + str r0, [r1, #0x0] + cmp r6, #0x4 + blt _0204775C + mov r6, #0x0 + add r4, r7, #0x0 +_02047774: + add r0, r5, #0x0 + bl sub_02029EE4 + mov r1, #0x46 + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, #0x4 + blt _02047774 + add r0, r5, #0x0 + bl sub_0206EB88 + mov r1, #0x42 + lsl r1, r1, #0x2 + str r0, [r7, r1] + add r0, r5, #0x0 + bl sub_02023D6C + mov r1, #0x11 + lsl r1, r1, #0x4 + str r0, [r7, r1] + add r0, r5, #0x0 + bl sub_02024F30 + mov r1, #0x13 + lsl r1, r1, #0x4 + str r0, [r7, r1] + add r0, r5, #0x0 + bl sub_02061008 + mov r2, #0x4d + lsl r2, r2, #0x2 + str r0, [r7, r2] + add r0, r2, #0x0 + mov r1, #0x0 + sub r0, #0x28 + str r1, [r7, r0] + add r0, r2, #0x0 + add r0, #0x5c + str r1, [r7, r0] + add r0, r2, #0x0 + sub r0, #0x8 + str r1, [r7, r0] + add r0, r2, #0x0 + add r0, #0x10 + str r1, [r7, r0] + add r0, r2, #0x0 + add r0, #0x14 + str r1, [r7, r0] + add r0, r2, #0x0 + add r0, #0x60 + str r1, [r7, r0] + add r0, r2, #0x4 + add r0, r7, r0 + mov r2, #0xc + blx sub_020CE34C + add r0, r7, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_020477EC +sub_020477EC: ; 0x020477EC + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x20 + bl sub_020476CC + mov r1, #0x19 + lsl r1, r1, #0x4 + str r4, [r0, r1] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02047800 +sub_02047800: ; 0x02047800 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x2 + lsl r1, r1, #0x8 + bl sub_020476CC + mov r1, #0x19 + lsl r1, r1, #0x4 + str r4, [r0, r1] + pop {r4, pc} + + thumb_func_start sub_02047814 +sub_02047814: ; 0x02047814 + push {r4-r7, lr} + sub sp, #0x1c + add r5, r1, #0x0 + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020238F4 + str r0, [sp, #0x10] + ldr r0, [r5, #0xc] + bl sub_02023900 + mov r1, #0x1 + str r0, [sp, #0x14] + add r0, r6, #0x0 + lsl r1, r1, #0xa + bl sub_020476CC + add r4, r0, #0x0 + ldr r2, _0204795C ; =0x000001F1 + mov r0, #0x1 + mov r1, #0x1a + add r3, r6, #0x0 + bl sub_0200A86C + str r0, [sp, #0x18] + mov r0, #0x8 + add r1, r6, #0x0 + bl sub_020219F4 + add r7, r0, #0x0 + ldr r0, [sp, #0x10] + bl sub_020239CC + add r2, r0, #0x0 + mov r1, #0x1 + eor r1, r2 + ldr r0, [sp, #0x18] + add r2, r7, #0x0 + bl sub_0200A8E0 + add r0, r7, #0x0 + bl sub_02021F2C + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bl sub_0202395C + add r0, r7, #0x0 + bl sub_02021A20 + ldr r0, [sp, #0x18] + bl sub_0200A8B8 + ldr r0, [sp, #0x10] + bl sub_020239CC + add r2, r0, #0x0 + add r0, r4, #0x0 + add r0, #0xf8 + mov r1, #0x1 + ldr r0, [r0, #0x0] + eor r1, r2 + bl sub_020239C8 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0204806C + mov r1, #0x13 + lsl r1, r1, #0x4 + ldr r0, [sp, #0x14] + ldr r1, [r4, r1] + bl sub_02024F44 + add r0, r5, #0x0 + bl sub_0204B2A4 + mov r1, #0x16 + lsl r1, r1, #0x4 + str r0, [r4, r1] + sub r1, #0x58 + ldr r0, [r4, r1] + mov r1, #0x4 + mov r2, #0x14 + add r3, r6, #0x0 + bl sub_0206ED38 + add r0, r6, #0x0 + bl sub_020669C0 + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205F3C0 + mov r2, #0x0 + str r2, [sp, #0x0] + add r1, r0, #0x0 + str r2, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + str r2, [sp, #0xc] + add r0, r6, #0x0 + mov r2, #0x5 + mov r3, #0x20 + bl sub_02066ACC + ldr r0, [r4, #0x4] + add r1, r6, #0x0 + bl sub_0206B900 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r2, #0x2 + str r2, [sp, #0x8] + str r0, [sp, #0xc] + ldr r1, _02047960 ; =0x0000018F + add r0, r6, #0x0 + mov r3, #0x20 + bl sub_02066ACC + ldr r0, [r4, #0x8] + add r1, r6, #0x0 + bl sub_0206B900 + add r0, r6, #0x0 + bl sub_02016A18 + ldr r0, [r5, #0xc] + bl sub_02022510 + mov r1, #0x45 + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, r5, #0x0 + add r0, #0x94 + ldr r0, [r0, #0x0] + sub r1, #0x8 + str r0, [r4, r1] + ldr r0, [r5, #0xc] + bl sub_02029FC8 + mov r1, #0x51 + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, r5, #0x0 + add r0, #0x98 + ldr r2, [r0, #0x0] + add r0, r1, #0x4 + str r2, [r4, r0] + ldr r0, [r5, #0x1c] + add r1, #0x18 + ldr r0, [r0, #0x0] + str r0, [r4, r1] + add r0, r4, #0x0 + bl sub_020480E4 + add r0, r4, #0x0 + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 +_0204795C: .word 0x000001F1 +_02047960: .word 0x0000018F + + thumb_func_start sub_02047964 +sub_02047964: ; 0x02047964 + push {r3-r7, lr} + add r7, r0, #0x0 + mov r4, #0x0 + add r5, r7, #0x0 +_0204796C: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _02047976 + bl sub_02020C2C +_02047976: + ldr r0, [r5, #0x4] + bl sub_02016A18 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x4 + blt _0204796C + mov r5, #0x0 + add r4, r7, #0x0 +_02047988: + add r0, r4, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02047996 + bl sub_02020C2C +_02047996: + add r0, r4, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bl sub_02016A18 + add r5, r5, #0x1 + add r4, r4, #0x4 + cmp r5, #0x4 + blt _02047988 + mov r6, #0x46 + mov r5, #0x0 + add r4, r7, #0x0 + lsl r6, r6, #0x2 +_020479B0: + ldr r0, [r4, r6] + cmp r0, #0x0 + bne _020479BA + bl sub_02020C2C +_020479BA: + mov r0, #0x46 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + add r5, r5, #0x1 + add r4, r4, #0x4 + cmp r5, #0x4 + blt _020479B0 + mov r0, #0x42 + lsl r0, r0, #0x2 + ldr r0, [r7, r0] + bl sub_02016A18 + mov r0, #0x11 + lsl r0, r0, #0x4 + ldr r0, [r7, r0] + bl sub_02016A18 + mov r0, #0x13 + lsl r0, r0, #0x4 + ldr r0, [r7, r0] + bl sub_02016A18 + mov r0, #0x4d + lsl r0, r0, #0x2 + ldr r0, [r7, r0] + bl sub_02061020 + add r0, r7, #0x0 + bl sub_02016A18 + pop {r3-r7, pc} + + thumb_func_start sub_020479FC +sub_020479FC: ; 0x020479FC + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + cmp r4, #0x4 + blt _02047A0C + bl sub_02020C2C +_02047A0C: + lsl r0, r4, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x4] + add r1, r6, #0x0 + bl sub_0206B900 + cmp r0, #0x0 + bne _02047A20 + bl sub_02020C2C +_02047A20: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02047A24 +sub_02047A24: ; 0x02047A24 + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + cmp r4, #0x4 + blt _02047A34 + bl sub_02020C2C +_02047A34: + lsl r1, r4, #0x2 + add r1, r5, r1 + ldr r1, [r1, #0x4] + add r0, r6, #0x0 + bl sub_0206BAD0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02047A44 +sub_02047A44: ; 0x02047A44 + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + cmp r4, #0x4 + blt _02047A54 + bl sub_02020C2C +_02047A54: + lsl r1, r4, #0x2 + add r1, r5, r1 + add r1, #0xf8 + ldr r1, [r1, #0x0] + add r0, r6, #0x0 + bl sub_0202393C + pop {r4-r6, pc} + + thumb_func_start sub_02047A64 +sub_02047A64: ; 0x02047A64 + lsl r2, r2, #0x2 + add r2, r0, r2 + mov r0, #0x46 + lsl r0, r0, #0x2 + ldr r3, _02047A74 ; =sub_02029F9C + ldr r0, [r2, r0] + bx r3 + nop +_02047A74: .word sub_02029F9C + 1 + + thumb_func_start sub_02047A78 +sub_02047A78: ; 0x02047A78 + push {r4-r7, lr} + sub sp, #0x14 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020238F4 + add r6, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206BB1C + add r7, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206F158 + str r0, [sp, #0x0] + ldr r0, [r4, #0xc] + bl sub_02024DA0 + str r0, [sp, #0x4] + ldr r0, [r4, #0xc] + bl sub_02029EF8 + str r0, [sp, #0x8] + ldr r0, [r4, #0xc] + bl sub_02023900 + str r0, [sp, #0xc] + ldr r0, [r4, #0xc] + bl sub_02034E30 + str r0, [sp, #0x10] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0204806C + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r2, #0x0 + bl sub_02047A44 + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_02047A24 + mov r1, #0x42 + lsl r1, r1, #0x2 + ldr r0, [sp, #0x0] + ldr r1, [r5, r1] + bl sub_0206EBB4 + mov r1, #0x11 + lsl r1, r1, #0x4 + ldr r0, [sp, #0x4] + ldr r1, [r5, r1] + bl sub_02023D80 + mov r1, #0x13 + lsl r1, r1, #0x4 + ldr r0, [sp, #0xc] + ldr r1, [r5, r1] + bl sub_02024F44 + ldr r1, [sp, #0x8] + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02047A64 + ldr r0, [r4, #0xc] + bl sub_02022510 + mov r1, #0x45 + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034824 + mov r1, #0x56 + lsl r1, r1, #0x2 + str r0, [r5, r1] + add r0, r4, #0x0 + bl sub_0204B2A4 + mov r1, #0x16 + lsl r1, r1, #0x4 + str r0, [r5, r1] + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034A04 + mov r1, #0x59 + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [r4, #0xc] + bl sub_02079C70 + mov r1, #0x5a + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [r4, #0xc] + bl sub_020462AC + bl sub_0205F1B4 + mov r1, #0x5b + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [sp, #0x10] + bl sub_02034DEC + mov r1, #0x5d + lsl r1, r1, #0x2 + str r0, [r5, r1] + add r0, r4, #0x0 + add r0, #0x94 + ldr r0, [r0, #0x0] + sub r1, #0x68 + str r0, [r5, r1] + ldr r0, [r4, #0xc] + bl sub_0204C1A8 + mov r1, #0x4a + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [r4, #0xc] + bl sub_02029AFC + mov r1, #0x4b + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [r4, #0xc] + bl sub_02029FC8 + mov r1, #0x51 + lsl r1, r1, #0x2 + str r0, [r5, r1] + add r0, r4, #0x0 + add r0, #0x98 + ldr r2, [r0, #0x0] + add r0, r1, #0x4 + str r2, [r5, r0] + ldr r0, [r4, #0xc] + bl sub_020254C0 + mov r1, #0x53 + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [r4, #0x1c] + add r1, #0x10 + ldr r0, [r0, #0x0] + str r0, [r5, r1] + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02047BB0 +sub_02047BB0: ; 0x02047BB0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02047A78 + add r0, r4, #0x0 + bl sub_020480E4 + pop {r4, pc} + + thumb_func_start sub_02047BC0 +sub_02047BC0: ; 0x02047BC0 + push {r4-r7, lr} + sub sp, #0x1c + add r6, r0, #0x0 + add r0, r1, #0x0 + ldr r0, [r0, #0xc] + str r1, [sp, #0x0] + add r7, r2, #0x0 + bl sub_020238F4 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206BB1C + str r0, [sp, #0x14] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206F158 + str r0, [sp, #0x10] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029EF8 + str r0, [sp, #0x8] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023900 + str r0, [sp, #0x4] + mov r0, #0x15 + mov r1, #0x6 + lsl r0, r0, #0x4 + str r1, [r6, r0] + mov r1, #0x9 + add r0, r0, #0x4 + str r1, [r6, r0] + add r0, r6, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_02047A44 + mov r0, #0xb + bl sub_020669C0 + add r5, r0, #0x0 + ldr r0, [sp, #0x14] + bl sub_0206B9AC + add r1, r0, #0x0 + ldr r0, [r6, #0x4] + bl sub_0206B8CC + ldr r0, [sp, #0x14] + mov r4, #0x0 + bl sub_0206B9AC + cmp r0, #0x0 + ble _02047C98 +_02047C40: + ldr r0, [sp, #0x14] + add r1, r4, #0x0 + bl sub_0206B9B0 + add r1, r5, #0x0 + bl sub_02069B88 + add r0, r5, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + cmp r7, r0 + beq _02047C82 + cmp r7, #0x0 + beq _02047C82 + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + add r1, r7, #0x0 + bl sub_02068758 + str r0, [sp, #0x18] + add r0, r5, #0x0 + mov r1, #0x8 + add r2, sp, #0x18 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02066ED8 +_02047C82: + add r0, r6, #0x0 + add r1, r5, #0x0 + mov r2, #0x0 + bl sub_020479FC + ldr r0, [sp, #0x14] + add r4, r4, #0x1 + bl sub_0206B9AC + cmp r4, r0 + blt _02047C40 +_02047C98: + add r0, r5, #0x0 + bl sub_02016A18 + mov r1, #0x42 + lsl r1, r1, #0x2 + ldr r0, [sp, #0x10] + ldr r1, [r6, r1] + bl sub_0206EBB4 + mov r1, #0x11 + lsl r1, r1, #0x4 + ldr r0, [sp, #0xc] + ldr r1, [r6, r1] + bl sub_02023D80 + mov r1, #0x13 + lsl r1, r1, #0x4 + ldr r0, [sp, #0x4] + ldr r1, [r6, r1] + bl sub_02024F44 + ldr r1, [sp, #0x8] + add r0, r6, #0x0 + mov r2, #0x0 + bl sub_02047A64 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02022510 + mov r1, #0x45 + lsl r1, r1, #0x2 + str r0, [r6, r1] + ldr r0, [sp, #0x0] + bl sub_0204B2A4 + mov r1, #0x16 + lsl r1, r1, #0x4 + str r0, [r6, r1] + ldr r0, [sp, #0x0] + sub r1, #0x54 + add r0, #0x94 + ldr r0, [r0, #0x0] + str r0, [r6, r1] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_0204C1A8 + mov r1, #0x4a + lsl r1, r1, #0x2 + str r0, [r6, r1] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029AFC + mov r1, #0x4b + lsl r1, r1, #0x2 + str r0, [r6, r1] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029FC8 + mov r1, #0x51 + lsl r1, r1, #0x2 + str r0, [r6, r1] + ldr r0, [sp, #0x0] + add r0, #0x98 + ldr r2, [r0, #0x0] + add r0, r1, #0x4 + str r2, [r6, r0] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_020254C0 + mov r1, #0x53 + lsl r1, r1, #0x2 + str r0, [r6, r1] + ldr r0, [sp, #0x0] + add r1, #0x10 + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x0] + str r0, [r6, r1] + add r0, r6, #0x0 + bl sub_020480E4 + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02047D48 +sub_02047D48: ; 0x02047D48 + push {r4-r7, lr} + sub sp, #0x24 + add r5, r0, #0x0 + add r0, r1, #0x0 + ldr r0, [r0, #0xc] + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r7, r3, #0x0 + bl sub_020238F4 + str r0, [sp, #0x20] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206F158 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029EF8 + str r0, [sp, #0x14] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023900 + str r0, [sp, #0x10] + ldr r0, [sp, #0x0] + mov r1, #0x6 + add r0, #0xac + ldr r0, [r0, #0x0] + mov r2, #0x0 + str r0, [sp, #0xc] + mov r0, #0x15 + lsl r0, r0, #0x4 + str r1, [r5, r0] + mov r1, #0x9 + add r0, r0, #0x4 + str r1, [r5, r0] + ldr r1, [sp, #0x20] + add r0, r5, #0x0 + bl sub_02047A44 + cmp r7, #0x0 + bne _02047DB6 + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02047A24 + b _02047E14 +_02047DB6: + mov r4, #0x0 + add r1, r4, #0x0 +_02047DBA: + ldrb r0, [r7, r1] + cmp r0, #0x0 + beq _02047DC2 + add r4, r4, #0x1 +_02047DC2: + add r1, r1, #0x1 + cmp r1, #0x6 + blt _02047DBA + cmp r4, #0x0 + bne _02047DD8 + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02047A24 + b _02047E14 +_02047DD8: + mov r0, #0xb + bl sub_020669C0 + str r0, [sp, #0x8] + ldr r0, [r5, #0x4] + add r1, r4, #0x0 + bl sub_0206B8CC + mov r6, #0x0 + cmp r4, #0x0 + ble _02047E0E +_02047DEE: + ldrb r1, [r7, r6] + ldr r0, [sp, #0x4] + sub r1, r1, #0x1 + bl sub_0206B9B0 + ldr r1, [sp, #0x8] + bl sub_02069B88 + ldr r1, [sp, #0x8] + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_020479FC + add r6, r6, #0x1 + cmp r6, r4 + blt _02047DEE +_02047E0E: + ldr r0, [sp, #0x8] + bl sub_02016A18 +_02047E14: + ldr r0, [sp, #0xc] + cmp r0, #0x0 + beq _02047E2C + mov r1, #0xc + bl sub_02023B0C + cmp r0, #0x0 + beq _02047E2C + mov r0, #0x65 + mov r1, #0x1 + lsl r0, r0, #0x2 + str r1, [r5, r0] +_02047E2C: + mov r1, #0x42 + lsl r1, r1, #0x2 + ldr r0, [sp, #0x1c] + ldr r1, [r5, r1] + bl sub_0206EBB4 + mov r1, #0x11 + lsl r1, r1, #0x4 + ldr r0, [sp, #0x18] + ldr r1, [r5, r1] + bl sub_02023D80 + mov r1, #0x13 + lsl r1, r1, #0x4 + ldr r0, [sp, #0x10] + ldr r1, [r5, r1] + bl sub_02024F44 + ldr r1, [sp, #0x14] + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02047A64 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02022510 + mov r1, #0x45 + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [sp, #0x0] + bl sub_0204B2A4 + mov r1, #0x16 + lsl r1, r1, #0x4 + str r0, [r5, r1] + ldr r0, [sp, #0x0] + sub r1, #0x54 + add r0, #0x94 + ldr r0, [r0, #0x0] + str r0, [r5, r1] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029AFC + mov r1, #0x4b + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02029FC8 + mov r1, #0x51 + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [sp, #0x0] + add r0, #0x98 + ldr r2, [r0, #0x0] + add r0, r1, #0x4 + str r2, [r5, r0] + ldr r0, [sp, #0x0] + add r1, #0x18 + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x0] + str r0, [r5, r1] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_020254C0 + mov r1, #0x53 + lsl r1, r1, #0x2 + str r0, [r5, r1] + bl sub_02033534 + bl sub_0202D8B0 + cmp r0, #0x0 + beq _02047F10 + ldr r0, [sp, #0x20] + bl sub_02023A28 + add r4, r0, #0x0 + ldr r0, [sp, #0x20] + bl sub_020239CC + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_020536D0 + add r1, r5, #0x0 + add r1, #0x29 + strb r0, [r1, #0x0] + add r0, r5, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bl sub_0202398C + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x3c + bl sub_02002248 + add r3, r5, #0x0 + add r3, #0x28 + add r5, #0x90 + mov r2, #0x6 +_02047F00: + ldmia r3!, {r0-r1} + stmia r5!, {r0-r1} + sub r2, r2, #0x1 + bne _02047F00 + ldr r0, [r3, #0x0] + add sp, #0x24 + str r0, [r5, #0x0] + pop {r4-r7, pc} +_02047F10: + add r0, r5, #0x0 + bl sub_020480E4 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02047F1C +sub_02047F1C: ; 0x02047F1C + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + add r6, r2, #0x0 + bl sub_0206BB1C + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r3, r6, #0x0 + bl sub_02047D48 + pop {r4-r6, pc} + + thumb_func_start sub_02047F38 +sub_02047F38: ; 0x02047F38 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020238F4 + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + add r7, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0206F158 + str r0, [sp, #0x0] + ldr r0, [r5, #0xc] + bl sub_02024DA0 + str r0, [sp, #0x4] + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034E24 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + add r1, r6, #0x0 + bl sub_0202393C + ldr r0, [r4, #0x4] + add r1, r7, #0x0 + bl sub_0206BAD0 + mov r0, #0x42 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldr r1, [sp, #0x0] + bl sub_0206EBB4 + mov r0, #0x11 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + ldr r1, [sp, #0x4] + bl sub_02023D80 + mov r0, #0x19 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + strh r0, [r5, #0x0] + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02047FA4 +sub_02047FA4: ; 0x02047FA4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020238F4 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + ldr r0, [r5, #0xc] + bl sub_0206F158 + ldr r0, [r5, #0xc] + bl sub_02024DA0 + add r1, r0, #0x0 + mov r0, #0x11 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_02023D80 + pop {r3-r5, pc} + + thumb_func_start sub_02047FD0 +sub_02047FD0: ; 0x02047FD0 + push {r3-r5, lr} + ldr r2, [r0, #0x1c] + add r4, r1, #0x0 + ldr r1, [r2, #0x8] + ldr r2, [r2, #0xc] + bl sub_0204A6E0 + add r5, r0, #0x0 + bl sub_020548F0 + cmp r0, #0x0 + beq _02047FEC + mov r0, #0x8 + pop {r3-r5, pc} +_02047FEC: + add r0, r5, #0x0 + bl sub_0205478C + cmp r0, #0x0 + bne _02048000 + add r0, r5, #0x0 + bl sub_02054798 + cmp r0, #0x0 + beq _02048004 +_02048000: + mov r0, #0x2 + pop {r3-r5, pc} +_02048004: + add r0, r5, #0x0 + bl sub_02054830 + cmp r0, #0x0 + beq _02048012 + mov r0, #0x1 + pop {r3-r5, pc} +_02048012: + add r0, r5, #0x0 + bl sub_020549AC + cmp r0, #0x0 + beq _02048020 + mov r0, #0x6 + pop {r3-r5, pc} +_02048020: + add r0, r5, #0x0 + bl sub_02054974 + cmp r0, #0x0 + bne _02048034 + add r0, r5, #0x0 + bl sub_02054990 + cmp r0, #0x0 + beq _02048038 +_02048034: + mov r0, #0xa + pop {r3-r5, pc} +_02048038: + add r0, r5, #0x0 + bl sub_02054A3C + cmp r0, #0x0 + beq _02048046 + mov r0, #0x5 + pop {r3-r5, pc} +_02048046: + add r0, r5, #0x0 + bl sub_0205481C + cmp r0, #0x0 + beq _02048054 + mov r0, #0x7 + pop {r3-r5, pc} +_02048054: + cmp r4, #0xc + bhs _02048060 + ldr r0, _02048068 ; =0x020F45F8 + lsl r1, r4, #0x2 + ldr r0, [r0, r1] + pop {r3-r5, pc} +_02048060: + bl sub_02020C2C + mov r0, #0xc + pop {r3-r5, pc} + .balign 4 +_02048068: .word 0x020F45F8 + + thumb_func_start sub_0204806C +sub_0204806C: ; 0x0204806C + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02034E30 + bl sub_02034E20 + add r6, r0, #0x0 + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034860 + mov r1, #0x15 + lsl r1, r1, #0x4 + str r0, [r5, r1] + ldr r0, [r6, #0x4] + cmp r0, #0x2 + bne _02048096 + mov r0, #0x1 + str r0, [r5, r1] +_02048096: + mov r1, #0x15 + lsl r1, r1, #0x4 + ldr r1, [r5, r1] + add r0, r4, #0x0 + bl sub_02047FD0 + mov r1, #0x55 + lsl r1, r1, #0x2 + str r0, [r5, r1] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020480AC +sub_020480AC: ; 0x020480AC + mov r1, #0x55 + mov r2, #0x7 + lsl r1, r1, #0x2 + str r2, [r0, r1] + bx lr + .balign 4 + + thumb_func_start sub_020480B8 +sub_020480B8: ; 0x020480B8 + cmp r0, #0x2 + beq _020480C0 + cmp r0, #0x3 + bne _020480C4 +_020480C0: + mov r0, #0x0 + bx lr +_020480C4: + mov r0, #0x1 + bx lr + + thumb_func_start sub_020480C8 +sub_020480C8: ; 0x020480C8 + cmp r0, #0x1 + beq _020480D0 + cmp r0, #0x4 + bne _020480D4 +_020480D0: + mov r0, #0x0 + bx lr +_020480D4: + mov r0, #0x1 + bx lr + + thumb_func_start sub_020480D8 +sub_020480D8: ; 0x020480D8 + cmp r0, #0x4 + bne _020480E0 + mov r0, #0x0 + bx lr +_020480E0: + mov r0, #0x1 + bx lr + + thumb_func_start sub_020480E4 +sub_020480E4: ; 0x020480E4 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bl sub_020239CC + add r1, r4, #0x0 + add r1, #0x29 + strb r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bl sub_0202398C + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x3c + bl sub_02002248 + add r3, r4, #0x0 + add r3, #0x28 + add r4, #0x90 + mov r2, #0x6 +_02048112: + ldmia r3!, {r0-r1} + stmia r4!, {r0-r1} + sub r2, r2, #0x1 + bne _02048112 + ldr r0, [r3, #0x0] + str r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start sub_02048120 +sub_02048120: ; 0x02048120 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + ldr r0, _02048158 ; =0x020F465C + bl sub_0201E66C + ldr r0, _0204815C ; =0x020F4630 + bl sub_02016BBC + ldr r2, _02048160 ; =0x020F4640 + add r0, r4, #0x0 + mov r1, #0x3 + mov r3, #0x0 + bl sub_02016C18 + mov r0, #0x20 + str r0, [sp, #0x0] + mov r0, #0xb + mov r3, #0x1a + str r0, [sp, #0x4] + mov r0, #0xe + mov r1, #0x6 + mov r2, #0x0 + lsl r3, r3, #0x4 + bl sub_02006930 + add sp, #0x8 + pop {r4, pc} + .balign 4 +_02048158: .word 0x020F465C +_0204815C: .word 0x020F4630 +_02048160: .word 0x020F4640 + + thumb_func_start sub_02048164 +sub_02048164: ; 0x02048164 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + mov r1, #0x24 + bl sub_02016998 + add r4, r0, #0x0 + bne _0204817A + bl sub_02020C2C +_0204817A: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x24 + blx sub_020DF4A4 + mov r0, #0x0 + str r0, [r4, #0x0] + str r5, [r4, #0x4] + mov r0, #0xb + bl sub_02016B94 + str r0, [r4, #0x8] + bl sub_02048120 + mov r2, #0x52 + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + mov r3, #0xb + bl sub_0200A86C + str r0, [r4, #0x1c] + mov r0, #0xb + bl sub_0200AA80 + str r0, [r4, #0x20] + add r1, r4, #0x0 + ldr r0, [r4, #0x8] + ldr r2, _02048208 ; =0x020F4628 + add r1, #0xc + bl sub_02019150 + add r0, r5, #0x0 + bl sub_020377AC + bl sub_020238F4 + add r2, r0, #0x0 + ldr r0, [r4, #0x20] + mov r1, #0x0 + bl sub_0200ABC0 + ldr r0, [r5, #0x1c] + ldr r1, [r0, #0x0] + ldr r0, _0204820C ; =0x0000019E + cmp r1, r0 + bne _020481E6 + mov r2, #0x0 + add r0, r4, #0x0 + mov r1, #0x4 + add r3, r2, #0x0 + bl sub_020482F4 + b _020481F2 +_020481E6: + mov r2, #0x0 + add r0, r4, #0x0 + mov r1, #0x3 + add r3, r2, #0x0 + bl sub_020482F4 +_020481F2: + add r0, r4, #0x0 + add r0, #0xc + bl sub_020191D0 + ldr r1, _02048210 ; =sub_02048214 + add r0, r6, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r4-r6, pc} + nop +_02048208: .word 0x020F4628 +_0204820C: .word 0x0000019E +_02048210: .word sub_02048214 + 1 + + thumb_func_start sub_02048214 +sub_02048214: ; 0x02048214 + push {r3-r4, lr} + sub sp, #0xc + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x4 + bhi _020482EA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r6, r4, #0 + lsl r6, r6, #0 + lsl r6, r4, #0x1 + lsl r0, r0, #0x2 + mov r0, #0x8 + str r0, [sp, #0x0] + mov r1, #0x1 + str r1, [sp, #0x4] + mov r0, #0x20 + str r0, [sp, #0x8] + mov r0, #0x3 + mov r2, #0x2a + mov r3, #0x0 + bl sub_0200E1D0 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020482EA +_02048258: + .byte 0xC6, 0xF7, 0x56, 0xF8, 0x00, 0x28, 0x44, 0xD0 + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x40, 0xE0, 0x21, 0x48, 0x81, 0x6C, 0x01, 0x20, 0x08, 0x42 + .byte 0x02, 0xD1, 0x02, 0x20, 0x08, 0x42, 0x38, 0xD0, 0x08, 0x20, 0x00, 0x90, 0x01, 0x20, 0x01, 0x90 + .byte 0x20, 0x20, 0x02, 0x90, 0x00, 0x20, 0x01, 0x1C, 0x02, 0x1C, 0x03, 0x1C, 0xC5, 0xF7, 0xA0, 0xFF + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x28, 0xE0, 0xC6, 0xF7, 0x36, 0xF8, 0x00, 0x28, 0x24, 0xD0 + .byte 0x20, 0x1C, 0x0C, 0x30, 0x00, 0x21, 0xD1, 0xF7, 0xBB, 0xF9, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60 + .byte 0x1B, 0xE0, 0x20, 0x1C, 0x0C, 0x30, 0x00, 0x21, 0xC4, 0xF7, 0x12, 0xFF, 0x20, 0x1C, 0x0C, 0x30 + .byte 0xD0, 0xF7, 0x5A, 0xFF, 0x20, 0x6A, 0xC2, 0xF7, 0x27, 0xFC, 0xE0, 0x69, 0xC2, 0xF7, 0xF4, 0xFA + .byte 0xA0, 0x68, 0x03, 0x21, 0xCF, 0xF7, 0xE4, 0xFA, 0xA0, 0x68, 0xCE, 0xF7, 0x9D, 0xFB, 0x20, 0x1C + .byte 0xCE, 0xF7, 0x9A, 0xFB, 0x03, 0xB0, 0x01, 0x20, 0x18, 0xBD +_020482EA: + mov r0, #0x0 + add sp, #0xc + pop {r3-r4, pc} +_020482F0: + .byte 0xB8, 0x48, 0x1C, 0x02 + + thumb_func_start sub_020482F4 +sub_020482F4: ; 0x020482F4 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + mov r0, #0x1 + str r1, [sp, #0x10] + lsl r0, r0, #0xa + mov r1, #0xb + add r7, r3, #0x0 + bl sub_020219F4 + add r6, r0, #0x0 + mov r0, #0x1 + lsl r0, r0, #0xa + mov r1, #0xb + bl sub_020219F4 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0xc + mov r1, #0x0 + bl sub_02019620 + ldr r0, [r5, #0x1c] + ldr r1, [sp, #0x10] + add r2, r6, #0x0 + bl sub_0200A8E0 + ldr r0, [r5, #0x20] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0200B7B8 + mov r0, #0x0 + add r1, r4, #0x0 + add r2, r0, #0x0 + bl sub_02002F08 + add r3, r0, #0x0 + str r7, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _02048378 ; =0x000F0200 + mov r1, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + str r1, [sp, #0xc] + ldrb r5, [r5, #0x13] + add r0, #0xc + add r2, r4, #0x0 + lsl r5, r5, #0x3 + sub r3, r5, r3 + lsl r3, r3, #0x18 + lsr r3, r3, #0x19 + sub r3, r3, #0x4 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl sub_0201BDE0 + add r0, r6, #0x0 + bl sub_02021A20 + add r0, r4, #0x0 + bl sub_02021A20 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02048378: .word 0x000F0200 + + thumb_func_start sub_0204837C +sub_0204837C: ; 0x0204837C + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x6 + bhi _02048488 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r4, r0, #0x1 + lsl r4, r2, #0x1 + lsl r0, r5, #0x1 + lsl r0, r2, #0x2 + lsl r6, r3, #0x2 + lsl r6, r3, #0x3 + ldr r0, [r6, #0xc] + bl sub_02034E30 + add r7, r0, #0x0 + bl sub_02034DFC + add r1, sp, #0x4 + str r0, [sp, #0x0] + bl sub_02034EC4 + add r0, r7, #0x0 + bl sub_02034DCC + add r1, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02034E90 + add r0, r5, #0x0 + add r1, sp, #0x4 + bl sub_02049160 + add r0, r6, #0x0 + bl sub_020637F0 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02048488 +_020483E8: + .byte 0x00, 0x20, 0x14, 0x21, 0xBC, 0xF7, 0xEE, 0xFF + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x47, 0xE0, 0xBD, 0xF7, 0x04, 0xF8, 0x00, 0x28, 0x43, 0xD1 + .byte 0x02, 0xF0, 0x84, 0xFB, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x3D, 0xE0, 0x0F, 0x20, 0xC0, 0x43 + .byte 0x37, 0x21, 0x01, 0x22, 0xC1, 0xF7, 0x2E, 0xFF, 0x0F, 0x20, 0xC0, 0x43, 0x3F, 0x21, 0x02, 0x22 + .byte 0xC1, 0xF7, 0x28, 0xFF, 0x30, 0x1C, 0x29, 0x1C, 0xFF, 0xF7, 0x9C, 0xFE, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x29, 0xE0, 0x28, 0x1C, 0x02, 0xF0, 0xA5, 0xFD, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60 + .byte 0x22, 0xE0, 0x00, 0x20, 0x3F, 0x21, 0x03, 0x22, 0xC1, 0xF7, 0x14, 0xFF, 0xEC, 0xF7, 0x1E, 0xFD + .byte 0x07, 0x1C, 0xF0, 0x68, 0xEC, 0xF7, 0xEC, 0xFC, 0xEC, 0xF7, 0xD0, 0xFC, 0x87, 0x42, 0x06, 0xD1 + .byte 0x00, 0x22, 0x0B, 0x49, 0x28, 0x1C, 0x13, 0x1C, 0xF0, 0xF7, 0x36, 0xFC, 0x05, 0xE0, 0x00, 0x22 + .byte 0x08, 0x49, 0x28, 0x1C, 0x13, 0x1C, 0xF0, 0xF7, 0x2F, 0xFC, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60 + .byte 0x02, 0xE0, 0x06, 0xB0, 0x01, 0x20, 0xF8, 0xBD +_02048488: + mov r0, #0x0 + add sp, #0x18 + pop {r3-r7, pc} + nop +_02048490: + .byte 0xE4, 0x07, 0x00, 0x00, 0xE5, 0x07, 0x00, 0x00 + + thumb_func_start sub_02048498 +sub_02048498: ; 0x02048498 + ldr r3, _020484A0 ; =sub_0204640C + ldr r1, _020484A4 ; =sub_0204837C + mov r2, #0x0 + bx r3 + .balign 4 +_020484A0: .word sub_0204640C + 1 +_020484A4: .word sub_0204837C + 1 + + thumb_func_start sub_020484A8 +sub_020484A8: ; 0x020484A8 + push {r3-r6, lr} + sub sp, #0x14 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r6, r1, #0x0 + mov r1, #0xb + add r2, sp, #0x0 + bl sub_02022534 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + cmp r0, #0x1 + bne _020484C6 + cmp r6, #0x0 + bne _020484CC +_020484C6: + add r0, r4, #0x0 + bl sub_0202B03C +_020484CC: + ldr r0, [r5, #0xc] + bl sub_0206BB1C + add r6, r0, #0x0 + add r0, sp, #0x4 + bl sub_020126B4 + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, sp, #0x4 + bl sub_0202B050 + ldr r0, [r5, #0xc] + add r1, r4, #0x0 + bl sub_02022540 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x14 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_020484F8 +sub_020484F8: ; 0x020484F8 + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x9 + bhi _02048554 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r2, #0 + lsl r2, r4, #0 + lsl r6, r3, #0x1 + lsl r6, r0, #0x2 + lsl r0, r3, #0x2 + lsl r6, r1, #0x3 + lsl r2, r5, #0x3 + lsl r4, r7, #0x3 + lsl r4, r3, #0x4 + lsl r6, r7, #0x4 + add r0, r6, #0x0 + add r1, r5, #0x4 + bl sub_02038814 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02048688 +_0204854A: + .byte 0x30, 0x1C, 0xFD, 0xF7, 0x96, 0xFF + .byte 0x00, 0x28, 0x00, 0xD0 +_02048554: + b _02048688 +_02048556: + .byte 0x04, 0x21, 0x03, 0x20, 0xCA, 0x03, 0xCE, 0xF7, 0x5E, 0xF9 + .byte 0x30, 0x1C, 0x29, 0x1C, 0x00, 0xF0, 0xFE, 0xF8, 0x08, 0x20, 0x00, 0x90, 0x01, 0x21, 0x01, 0x91 + .byte 0x20, 0x20, 0x02, 0x90, 0x03, 0x20, 0x0A, 0x1C, 0x00, 0x23, 0xC5, 0xF7, 0x29, 0xFE, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x80, 0xE0, 0xC5, 0xF7, 0xBF, 0xFE, 0x00, 0x28, 0x7C, 0xD0, 0xF0, 0x68 + .byte 0xDA, 0xF7, 0x3C, 0xF9, 0x00, 0x28, 0x07, 0xD1, 0x30, 0x1C, 0x29, 0x1C, 0x00, 0xF0, 0x22, 0xF9 + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x6F, 0xE0, 0x07, 0x20, 0x20, 0x60, 0x6C, 0xE0, 0x28, 0x1C + .byte 0x00, 0xF0, 0x42, 0xF9, 0x00, 0x28, 0x67, 0xD0, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x63, 0xE0 + .byte 0xF0, 0x68, 0x23, 0xF0, 0xAB, 0xFA, 0x3C, 0xF0, 0xBB, 0xFD, 0xDA, 0xF7, 0x31, 0xF9, 0xF0, 0x68 + .byte 0xDA, 0xF7, 0xA6, 0xF8, 0x07, 0x1C, 0x29, 0x68, 0x30, 0x1C, 0xFF, 0xF7, 0x65, 0xFF, 0x28, 0x1C + .byte 0x00, 0xF0, 0x32, 0xF9, 0x30, 0x1C, 0x29, 0x1C, 0x3A, 0x1C, 0x00, 0xF0, 0x3B, 0xF9, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x48, 0xE0, 0x28, 0x1C, 0x00, 0xF0, 0x1E, 0xF9, 0x00, 0x28, 0x43, 0xD0 + .byte 0x23, 0x48, 0xBC, 0xF7, 0x61, 0xFF, 0x12, 0x20, 0xA8, 0x63, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60 + .byte 0x3A, 0xE0, 0xA9, 0x6B, 0x00, 0x29, 0x02, 0xD0, 0x48, 0x1E, 0xA8, 0x63, 0x34, 0xE0, 0x40, 0x1C + .byte 0x20, 0x60, 0x31, 0xE0, 0x08, 0x20, 0x00, 0x90, 0x00, 0x21, 0x01, 0x20, 0x01, 0x90, 0x20, 0x20 + .byte 0x02, 0x90, 0x03, 0x20, 0x0A, 0x1C, 0x0B, 0x1C, 0xC5, 0xF7, 0xCA, 0xFD, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x21, 0xE0, 0xC5, 0xF7, 0x60, 0xFE, 0x00, 0x28, 0x1D, 0xD0, 0x30, 0x1C, 0x29, 0x1C + .byte 0x00, 0xF0, 0x40, 0xF9, 0x10, 0x35, 0x30, 0x1C, 0x29, 0x1C, 0xF0, 0xF7, 0xFB, 0xF8, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x10, 0xE0, 0x30, 0x1C, 0xFD, 0xF7, 0x08, 0xFF, 0x00, 0x28, 0x0B, 0xD1 + .byte 0x28, 0x1C, 0xCE, 0xF7, 0xD1, 0xF9, 0x04, 0x20, 0xCE, 0xF7, 0x2A, 0xF9, 0x00, 0x20, 0x84, 0xF0 + .byte 0x9A, 0xEE, 0x03, 0xB0, 0x01, 0x20, 0xF0, 0xBD +_02048688: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + nop +_02048690: + .byte 0x1B, 0x06, 0x00, 0x00 + + thumb_func_start sub_02048694 +sub_02048694: ; 0x02048694 + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + mov r0, #0x20 + mov r1, #0x3c + bl sub_02016998 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020462AC + add r6, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020238F4 + str r0, [sp, #0x0] + ldr r0, [r4, #0xc] + bl sub_02034E30 + bl sub_02034DD0 + str r0, [sp, #0x8] + ldr r0, [r4, #0xc] + bl sub_02034E30 + bl sub_02034DCC + str r0, [sp, #0x4] + add r0, r6, #0x0 + bl sub_0205ED0C + str r0, [r5, #0x0] + ldr r0, [r4, #0xc] + bl sub_020238F4 + str r0, [r5, #0x4] + ldr r0, [r4, #0xc] + bl sub_0206BB1C + str r0, [r5, #0x8] + ldr r0, [r4, #0xc] + bl sub_02023918 + str r0, [r5, #0xc] + ldr r0, [r4, #0xc] + bl sub_020238F4 + bl sub_020239CC + str r0, [r5, #0x10] + add r0, r6, #0x0 + bl sub_0205ED0C + str r0, [r5, #0x14] + ldr r0, [r4, #0xc] + bl sub_02024DA0 + str r0, [r5, #0x18] + add r0, r6, #0x0 + bl sub_0205ED0C + cmp r0, #0x0 + bne _0204871E + add r0, r4, #0x0 + bl sub_0204B328 +_0204871E: + ldr r0, [r4, #0xc] + bl sub_0206BB1C + bl sub_0204A25C + ldr r0, [sp, #0x8] + bl sub_020377B0 + ldr r0, [sp, #0x4] + bl sub_020377C8 + add r0, r6, #0x0 + bl sub_0205F154 + add r0, r6, #0x0 + bl sub_0205ECFC + ldr r0, [sp, #0x0] + bl sub_02023A78 + ldr r0, [r4, #0xc] + bl sub_02029FC8 + mov r1, #0x2e + bl sub_0202A0E8 + ldr r1, _02048760 ; =sub_020484F8 + add r0, r7, #0x0 + add r2, r5, #0x0 + bl sub_0204640C + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02048760: .word sub_020484F8 + 1 + + thumb_func_start sub_02048764 +sub_02048764: ; 0x02048764 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [r1, #0x2c] + str r0, [r1, #0x30] + add r1, #0x1c + add r0, r1, #0x0 + bl sub_0201901C + ldr r0, _020487D4 ; =0x020F46B0 + bl sub_0201E66C + ldr r2, _020487D8 ; =0x04000304 + ldrh r1, [r2, #0x0] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, _020487DC ; =0x020F4684 + bl sub_02016BBC + mov r0, #0x3 + mov r1, #0x0 + bl sub_02017FE4 + ldr r0, [r4, #0x8] + ldr r2, _020487E0 ; =0x020F4694 + mov r1, #0x3 + mov r3, #0x0 + bl sub_02016C18 + mov r1, #0x20 + mov r0, #0x3 + mov r2, #0x0 + add r3, r1, #0x0 + bl sub_02017F18 + mov r2, #0x0 + str r2, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r4, #0x8] + mov r1, #0x3 + add r3, r2, #0x0 + bl sub_02018540 + ldr r0, [r4, #0x8] + mov r1, #0x3 + bl sub_02017CD0 + add sp, #0x10 + pop {r4, pc} + nop +_020487D4: .word 0x020F46B0 +_020487D8: .word 0x04000304 +_020487DC: .word 0x020F4684 +_020487E0: .word 0x020F4694 + + thumb_func_start sub_020487E4 +sub_020487E4: ; 0x020487E4 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_02023900 + add r6, r0, #0x0 + mov r0, #0x1a + mov r1, #0xc7 + mov r2, #0xf + mov r3, #0x20 + bl sub_0200A738 + str r0, [r4, #0x2c] + add r1, r4, #0x0 + ldr r0, [r5, #0x8] + add r1, #0x1c + mov r2, #0x3 + bl sub_020545B8 + add r0, r4, #0x0 + add r0, #0x1c + add r1, r6, #0x0 + bl sub_02054608 + add r0, r4, #0x0 + ldr r1, [r4, #0x2c] + add r0, #0x1c + add r2, r6, #0x0 + mov r3, #0x1 + bl sub_02054658 + str r0, [r4, #0x34] + add r0, r4, #0x0 + ldr r1, _02048834 ; =0x000003E2 + add r0, #0x1c + bl sub_0200D858 + str r0, [r4, #0x30] + pop {r4-r6, pc} + .balign 4 +_02048834: .word 0x000003E2 + + thumb_func_start sub_02048838 +sub_02048838: ; 0x02048838 + ldr r0, [r0, #0x34] + ldr r3, _02048844 ; =sub_020546C8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx r3 + nop +_02048844: .word sub_020546C8 + 1 + + thumb_func_start sub_02048848 +sub_02048848: ; 0x02048848 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x2c] + bl sub_02021A20 + ldr r0, [r4, #0x30] + bl sub_0200DBFC + add r4, #0x1c + add r0, r4, #0x0 + bl sub_0205464C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02048864 +sub_02048864: ; 0x02048864 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xc7 + mov r3, #0x4 + bl sub_0200A86C + add r7, r0, #0x0 + cmp r6, #0x2 + bne _020488AC + mov r0, #0x4 + bl sub_0200AA80 + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020238F4 + add r2, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_0200ABC0 + add r0, r6, #0x0 + add r1, r7, #0x0 + mov r2, #0x10 + mov r3, #0x4 + bl sub_0200A9C4 + str r0, [r4, #0x2c] + add r0, r6, #0x0 + bl sub_0200AB18 + b _020488B4 +_020488AC: + mov r1, #0x12 + bl sub_0200A914 + str r0, [r4, #0x2c] +_020488B4: + add r0, r7, #0x0 + bl sub_0200A8B8 + ldr r0, [r5, #0xc] + bl sub_02023900 + add r2, r0, #0x0 + add r0, r4, #0x0 + ldr r1, [r4, #0x2c] + add r0, #0x1c + mov r3, #0x1 + bl sub_02054658 + str r0, [r4, #0x34] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020488D4 +sub_020488D4: ; 0x020488D4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x2c] + cmp r0, #0x0 + beq _020488E4 + bl sub_02021A20 +_020488E4: + add r0, r4, #0x0 + add r0, #0x1c + bl sub_02019048 + cmp r0, #0x0 + beq _020488F8 + add r4, #0x1c + add r0, r4, #0x0 + bl sub_02019178 +_020488F8: + ldr r0, [r5, #0x8] + mov r1, #0x3 + bl sub_020178A0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02048904 +sub_02048904: ; 0x02048904 + ldr r1, [r0, #0x1c] + ldr r2, _02048950 ; =0x0000014B + ldr r1, [r1, #0x0] + cmp r1, r2 + bgt _0204892C + sub r2, r2, #0x5 + sub r2, r1, r2 + bmi _02048936 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 +_0204892C: + ldr r2, _02048954 ; =0x000001ED + cmp r1, r2 + bne _02048936 + mov r2, #0x1 + b _02048938 +_02048936: + mov r2, #0x0 +_02048938: + cmp r2, #0x0 + bne _02048946 + ldr r1, [r0, #0x6c] + cmp r1, #0x4 + bne _02048946 + mov r1, #0x0 + str r1, [r0, #0x6c] +_02048946: + cmp r2, #0x0 + beq _0204894E + mov r1, #0x4 + str r1, [r0, #0x6c] +_0204894E: + bx lr + .balign 4 +_02048950: .word 0x0000014B +_02048954: .word 0x000001ED + + thumb_func_start sub_02048958 +sub_02048958: ; 0x02048958 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_02034E30 + add r6, r0, #0x0 + bl sub_02034DC8 + add r2, r0, #0x0 + cmp r4, #0x0 + beq _0204898C + ldr r3, [r5, #0x1c] + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldr r2, [r5, #0x1c] + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r2, #0x0] +_0204898C: + ldr r1, [r5, #0x1c] + add r0, r5, #0x0 + ldr r1, [r1, #0x0] + bl sub_02034A60 + ldr r0, [r5, #0x1c] + ldr r1, [r0, #0x4] + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + beq _020489DA + add r0, r5, #0x0 + bl sub_02034B00 + ldrh r2, [r0, #0x0] + ldr r1, [r5, #0x1c] + str r2, [r1, #0x8] + ldrh r2, [r0, #0x2] + ldr r1, [r5, #0x1c] + str r2, [r1, #0xc] + ldrh r1, [r0, #0x6] + mov r0, #0x1 + lsl r0, r0, #0x8 + cmp r1, r0 + bne _020489DA + add r0, r6, #0x0 + bl sub_02034DD0 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02034DC4 + add r2, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r4, #0x0] +_020489DA: + pop {r4-r6, pc} + + thumb_func_start sub_020489DC +sub_020489DC: ; 0x020489DC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x6c] + cmp r0, #0x5 + blt _020489EA + bl sub_02020C2C +_020489EA: + ldr r0, [r4, #0x70] + ldr r0, [r0, #0x0] + lsl r0, r0, #0x10 + lsr r1, r0, #0x1c + ldr r0, _020489F8 ; =0x021C4918 + strb r1, [r0, #0x5] + pop {r4, pc} + .balign 4 +_020489F8: .word 0x021C4918 + + thumb_func_start sub_020489FC +sub_020489FC: ; 0x020489FC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, [r5, #0x1c] + add r4, r1, #0x0 + ldr r7, [r0, #0x0] + ldr r0, [r5, #0xc] + bl sub_02034E30 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_0204AB44 + add r0, r5, #0x0 + bl sub_02039564 + cmp r4, #0x0 + bne _02048A28 + add r0, r5, #0x0 + bl sub_020636DC + b _02048A2E +_02048A28: + add r0, r5, #0x0 + bl sub_02063684 +_02048A2E: + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205F408 + cmp r4, #0x0 + bne _02048A42 + add r0, r5, #0x0 + bl sub_0204B0F8 +_02048A42: + cmp r4, #0x0 + bne _02048A50 + ldr r0, [r5, #0xc] + bl sub_02024ED8 + bl sub_02025484 +_02048A50: + ldr r0, [r5, #0xc] + bl sub_020462AC + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02034FE4 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r6, #0xe + bne _02048A72 + ldr r0, [sp, #0x0] + bl sub_0205F2C4 + cmp r0, #0x1 + beq _02048A80 +_02048A72: + cmp r6, #0x10 + bne _02048A82 + ldr r0, [sp, #0x0] + bl sub_0205F294 + cmp r0, #0x1 + bne _02048A82 +_02048A80: + mov r6, #0x0 +_02048A82: + ldr r0, [sp, #0x4] + add r1, r6, #0x0 + bl sub_02034DF4 + cmp r4, #0x0 + beq _02048AA6 + ldr r0, [sp, #0x4] + bl sub_02034E10 + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_0203484C + cmp r6, r0 + beq _02048AB4 + bl sub_02020C2C + b _02048AB4 +_02048AA6: + add r0, r7, #0x0 + bl sub_0203484C + add r1, r0, #0x0 + ldr r0, [sp, #0x4] + bl sub_02034E18 +_02048AB4: + cmp r4, #0x0 + bne _02048ACA + add r0, r7, #0x0 + bl sub_02034EF8 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + beq _02048ACA + ldr r0, [sp, #0x4] + bl sub_02034E04 +_02048ACA: + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0203989C + add r0, r5, #0x0 + mov r1, #0x0 + add r0, #0x74 + strh r1, [r0, #0x0] + add r5, #0x76 + strh r1, [r5, #0x0] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02048AE4 +sub_02048AE4: ; 0x02048AE4 + push {r4-r5, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r1, #0x40 + mov r2, #0x5 + bl sub_02057380 + str r0, [r5, #0x34] + ldr r0, [r5, #0xc] + bl sub_020238F4 + bl sub_020239CC + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034E20 + ldr r3, [r5, #0x1c] + ldr r1, [r0, #0x4] + str r1, [sp, #0x0] + str r4, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [r5, #0x34] + ldr r1, [r3, #0x8] + ldr r2, [r3, #0xc] + ldr r3, [r3, #0x10] + bl sub_02055068 + str r0, [r5, #0x38] + add r0, r5, #0x0 + bl sub_02034AC8 + ldr r0, [r5, #0x34] + bl sub_02058768 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_02048B34 +sub_02048B34: ; 0x02048B34 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204CC48 + ldr r0, [r4, #0x38] + bl sub_02055160 + ldr r0, [r4, #0x34] + bl sub_0205771C + ldr r0, [r4, #0x34] + bl sub_020573AC + pop {r4, pc} + + thumb_func_start sub_02048B50 +sub_02048B50: ; 0x02048B50 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0x40 + mov r2, #0x5 + bl sub_02057380 + str r0, [r5, #0x34] + add r0, r5, #0x0 + bl sub_02034E60 + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034E20 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020238F4 + bl sub_020239CC + add r2, r0, #0x0 + ldr r0, [r5, #0x34] + add r1, r4, #0x0 + bl sub_020550A4 + str r0, [r5, #0x38] + ldr r0, [r5, #0x34] + bl sub_02058768 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02048B90 +sub_02048B90: ; 0x02048B90 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02048904 + ldr r0, [r4, #0x58] + cmp r0, #0x0 + beq _02048BA2 + bl sub_02020C2C +_02048BA2: + ldr r0, [r4, #0x1c] + ldr r1, [r4, #0x28] + ldr r0, [r0, #0x0] + bl sub_020344AC + ldr r0, [r4, #0xc] + bl sub_020462AC + mov r1, #0x3 + bl sub_0205F524 + cmp r0, #0x0 + beq _02048BC2 + ldr r0, [r4, #0x28] + bl sub_020346CC +_02048BC2: + ldr r0, [r4, #0xc] + bl sub_020462AC + mov r1, #0x2 + bl sub_0205F524 + cmp r0, #0x0 + bne _02048BD8 + ldr r0, [r4, #0x28] + bl sub_02034678 +_02048BD8: + ldr r0, [r4, #0x6c] + cmp r0, #0x5 + blt _02048BE2 + bl sub_02020C2C +_02048BE2: + ldr r0, [r4, #0x6c] + ldr r1, _02048C28 ; =0x020F46E0 + lsl r0, r0, #0x3 + add r0, r1, r0 + str r0, [r4, #0x70] + ldr r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + str r0, [r4, #0x5c] + ldr r0, [r4, #0x70] + ldr r0, [r0, #0x0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + str r0, [r4, #0x18] + ldr r1, [r4, #0x70] + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + add r0, #0x58 + lsl r1, r1, #0x14 + lsr r1, r1, #0x1c + bl sub_0204A690 + ldr r0, [r4, #0x70] + ldr r1, [r0, #0x0] + lsl r0, r1, #0xc + lsr r0, r0, #0x1c + beq _02048C24 + lsr r1, r1, #0x18 + lsl r1, r1, #0x18 + add r0, r4, #0x0 + lsr r1, r1, #0x18 + bl sub_0204A368 +_02048C24: + pop {r4, pc} + nop +_02048C28: .word 0x020F46E0 + + thumb_func_start sub_02048C2C +sub_02048C2C: ; 0x02048C2C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x58] + cmp r0, #0x0 + bne _02048C3A + bl sub_02020C2C +_02048C3A: + mov r0, #0x0 + str r0, [r4, #0x58] + mov r0, #0x5 + str r0, [r4, #0x18] + ldr r0, [r4, #0x70] + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + lsr r0, r0, #0x1c + beq _02048C52 + add r0, r4, #0x0 + bl sub_0204A390 +_02048C52: + mov r0, #0x0 + str r0, [r4, #0x70] + pop {r4, pc} + + thumb_func_start sub_02048C58 +sub_02048C58: ; 0x02048C58 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02048C7E + ldr r0, [r4, #0x1c] + mov r1, #0xb + ldr r0, [r0, #0x0] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02028FA4 + add r4, #0x98 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + mov r2, #0x0 + bl sub_02028AD4 +_02048C7E: + pop {r4, pc} + + thumb_func_start sub_02048C80 +sub_02048C80: ; 0x02048C80 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02048CAE + ldr r0, [r4, #0xc] + bl sub_02034E30 + bl sub_02034DD0 + ldr r0, [r0, #0x0] + mov r1, #0xb + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02028FA4 + add r4, #0x98 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + mov r2, #0x0 + bl sub_02028AD4 +_02048CAE: + pop {r4, pc} + + thumb_func_start sub_02048CB0 +sub_02048CB0: ; 0x02048CB0 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x38] + bl sub_0205532C + add r6, r0, #0x0 + ldr r0, [r4, #0x38] + bl sub_02055320 + ldr r1, [r4, #0x1c] + ldr r1, [r1, #0x0] + str r1, [r5, #0x0] + mov r1, #0x0 + mvn r1, r1 + str r1, [r5, #0x4] + str r0, [r5, #0x8] + str r6, [r5, #0xc] + mov r0, #0x1 + str r0, [r5, #0x10] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02048CDC +sub_02048CDC: ; 0x02048CDC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0x0] + bl sub_020349E4 + cmp r0, #0x0 + beq _02048CFE + ldr r1, [r4, #0x1c] + ldr r0, [r1, #0x8] + cmp r0, #0x7 + bne _02048CFE + ldr r0, [r1, #0xc] + cmp r0, #0x6 + bne _02048CFE + mov r0, #0x1 + pop {r4, pc} +_02048CFE: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02048D04 +sub_02048D04: ; 0x02048D04 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034DD0 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020462AC + ldr r0, [r5, #0x1c] + ldr r0, [r0, #0x0] + str r0, [r4, #0x0] + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x4] + mov r0, #0x8 + str r0, [r4, #0x8] + mov r0, #0x2 + str r0, [r4, #0xc] + mov r0, #0x1 + str r0, [r4, #0x10] + pop {r3-r5, pc} + + thumb_func_start sub_02048D34 +sub_02048D34: ; 0x02048D34 + push {r4-r6, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02048D56 + cmp r0, #0x1 + beq _02048D7A + cmp r0, #0x2 + beq _02048D88 + b _02048D8C +_02048D56: + ldr r1, [r5, #0x1c] + add r0, r5, #0x0 + bl sub_02048958 + add r0, r5, #0x0 + bl sub_02048B90 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020489FC + add r0, r5, #0x0 + bl sub_02048AE4 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02048D8C +_02048D7A: + add r0, r6, #0x0 + bl sub_0204B0E8 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02048D8C +_02048D88: + mov r0, #0x1 + pop {r4-r6, pc} +_02048D8C: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02048D90 +sub_02048D90: ; 0x02048D90 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + str r1, [r4, #0x6c] + bl sub_02039874 + ldr r1, _02048DA8 ; =sub_02048D34 + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_020463CC + pop {r4, pc} + .balign 4 +_02048DA8: .word sub_02048D34 + 1 + + thumb_func_start sub_02048DAC +sub_02048DAC: ; 0x02048DAC + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020462AC + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_02046530 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x4 + bhi _02048EC2 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r6, r6, #0 + lsl r2, r1, #0x3 + lsl r6, r2, #0x3 + lsl r2, r3, #0x3 + ldr r0, [r4, #0xc] + bl sub_02025B94 + add r0, r6, #0x0 + mov r1, #0x2 + bl sub_0205F2D4 + add r7, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020289A4 + add r1, r7, #0x0 + bl sub_02028A20 + cmp r0, #0x0 + beq _02048E10 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02037944 + mov r0, #0x4 + str r0, [r5, #0x0] + b _02048EC2 +_02048E10: + add r0, r6, #0x0 + mov r1, #0x2 + bl sub_0205F2D4 + add r7, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020289A4 + add r1, r7, #0x0 + bl sub_020289B0 + add r1, r4, #0x0 + add r1, #0x98 + str r0, [r1, #0x0] + add r0, r6, #0x0 + bl sub_0205F174 + cmp r0, #0x0 + beq _02048E78 + ldr r0, [r4, #0xc] + bl sub_02034E30 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02048CDC + cmp r0, #0x0 + beq _02048E4E + add r0, r4, #0x0 + bl sub_02048D04 +_02048E4E: + add r0, r6, #0x0 + bl sub_0205F164 + add r0, r7, #0x0 + bl sub_02034DD0 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02048958 + add r0, r4, #0x0 + bl sub_02048B90 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020489FC + add r0, r4, #0x0 + bl sub_02048AE4 + b _02048E92 +_02048E78: + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02048958 + add r0, r4, #0x0 + bl sub_02048B90 + add r0, r4, #0x0 + bl sub_0204B0F8 + add r0, r4, #0x0 + bl sub_02048B50 +_02048E92: + add r0, r4, #0x0 + bl sub_02048C58 + add r0, r4, #0x0 + bl sub_02063808 + mov r0, #0x2 + str r0, [r5, #0x0] + b _02048EC2 +_02048EA4: + .byte 0x38, 0x1C, 0x02, 0xF0, 0x1F, 0xF9, 0x03, 0x20, 0x28, 0x60, 0x08, 0xE0 + .byte 0x01, 0x20, 0xF8, 0xBD, 0x20, 0x1C, 0xFD, 0xF7, 0xE1, 0xFA, 0x00, 0x28, 0x01, 0xD1, 0x01, 0x20 + .byte 0x28, 0x60 +_02048EC2: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02048EC8 +sub_02048EC8: ; 0x02048EC8 + ldr r3, _02048ED4 ; =sub_020463CC + mov r2, #0x0 + str r2, [r0, #0x6c] + ldr r1, _02048ED8 ; =sub_02048DAC + bx r3 + nop +_02048ED4: .word sub_020463CC + 1 +_02048ED8: .word sub_02048DAC + 1 + + thumb_func_start sub_02048EDC +sub_02048EDC: ; 0x02048EDC + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r6, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020462AC + str r0, [sp, #0x0] + add r0, r7, #0x0 + bl sub_02046530 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x5 + bhi _02048FC4 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r1, #0 + lsl r2, r0, #0x1 + lsl r4, r5, #0x1 + lsl r0, r1, #0x2 + lsl r4, r3, #0x2 + lsl r0, r5, #0x2 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0200E3A0 + ldr r0, [r4, #0xc] + bl sub_02025B94 + ldr r0, [sp, #0x0] + mov r1, #0x2 + bl sub_0205F2D4 + add r6, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020289A4 + add r1, r6, #0x0 + bl sub_020289B0 + add r4, #0x98 + str r0, [r4, #0x0] + ldr r0, [r5, #0x0] + add r0, r0, #0x1 + str r0, [r5, #0x0] + b _02048FC4 +_02048F54: + .byte 0x20, 0x1C, 0x31, 0x1D, 0xFF, 0xF7, 0xFE, 0xFC, 0x20, 0x1C, 0xFF, 0xF7 + .byte 0x17, 0xFE, 0x20, 0x1C, 0x00, 0x21, 0xFF, 0xF7, 0x49, 0xFD, 0x20, 0x1C, 0xFF, 0xF7, 0xBA, 0xFD + .byte 0x20, 0x1C, 0xFF, 0xF7, 0x85, 0xFE, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60, 0x22, 0xE0, 0x20, 0x1C + .byte 0x09, 0xF0, 0x94, 0xF8, 0xA0, 0x67, 0x09, 0xF0, 0xAF, 0xFF, 0xE0, 0x67, 0x38, 0x1C, 0x01, 0xF0 + .byte 0xF9, 0xFF, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60, 0x14, 0xE0, 0x00, 0x21, 0x31, 0x60, 0x20, 0x1C + .byte 0x32, 0x1C, 0x9E, 0xF1, 0xD5, 0xFB, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60, 0x0A, 0xE0, 0x31, 0x68 + .byte 0x00, 0x29, 0x07, 0xD0, 0x40, 0x1C, 0x28, 0x60, 0x04, 0xE0, 0x30, 0x1C, 0xCD, 0xF7, 0x2C, 0xFD + .byte 0x01, 0x20, 0xF8, 0xBD +_02048FC4: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02048FC8 +sub_02048FC8: ; 0x02048FC8 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034998 + cmp r0, #0x0 + bne _02049000 + add r0, r4, #0x0 + bl sub_02048CDC + cmp r0, #0x0 + beq _02048FF8 + ldr r0, [r4, #0xc] + bl sub_020462AC + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02048D04 + add r0, r5, #0x0 + bl sub_0205F154 + b _02049000 +_02048FF8: + add r0, r4, #0x0 + bl sub_02048EC8 + pop {r3-r5, pc} +_02049000: + mov r0, #0xb + mov r1, #0x18 + bl sub_020169D8 + add r2, r0, #0x0 + mov r1, #0x0 + ldr r0, _02049030 ; =0x000001D2 + str r1, [r2, #0x0] + str r0, [r2, #0x4] + sub r0, r1, #0x1 + str r0, [r2, #0x8] + mov r0, #0x8 + str r0, [r2, #0xc] + mov r0, #0xe + str r0, [r2, #0x10] + str r1, [r2, #0x14] + mov r0, #0x2 + str r0, [r4, #0x6c] + ldr r1, _02049034 ; =sub_02048EDC + add r0, r4, #0x0 + bl sub_020463CC + pop {r3-r5, pc} + nop +_02049030: .word 0x000001D2 +_02049034: .word sub_02048EDC + 1 + + thumb_func_start sub_02049038 +sub_02049038: ; 0x02049038 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + cmp r1, #0x3 + bhi _020490B6 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r2, r4, #0 + lsl r2, r6, #0 + lsl r0, r2, #0x1 + ldr r0, _020490BC ; =0x00000603 + bl sub_020054C8 + ldr r1, [r4, #0x4] + add r0, r6, #0x0 + bl sub_0204AD60 + add r0, r5, #0x0 + bl sub_0204B090 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020490B6 +_02049080: + .byte 0x28, 0x1C, 0x21, 0x1D, 0x00, 0xF0, 0x6C, 0xF8, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x12, 0xE0 + .byte 0xBC, 0xF7, 0xB8, 0xF9, 0x00, 0x28, 0x0E, 0xD1, 0x61, 0x68, 0x30, 0x1C, 0x01, 0xF0, 0x76, 0xFE + .byte 0x28, 0x1C, 0x02, 0xF0, 0x21, 0xF8, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x03, 0xE0, 0xCD, 0xF7 + .byte 0xB3, 0xFC, 0x01, 0x20, 0x70, 0xBD +_020490B6: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_020490BC: .word 0x00000603 + + thumb_func_start sub_020490C0 +sub_020490C0: ; 0x020490C0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0xb + mov r1, #0x1c + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + ldmia r4!, {r0-r1} + add r3, r2, #0x4 + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r4, #0x0] + ldr r1, _020490EC ; =sub_02049038 + str r0, [r3, #0x0] + add r0, r5, #0x0 + bl sub_0204640C + pop {r3-r5, pc} + .balign 4 +_020490EC: .word sub_02049038 + 1 + + thumb_func_start sub_020490F0 +sub_020490F0: ; 0x020490F0 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02049112 + cmp r0, #0x1 + beq _02049126 + cmp r0, #0x2 + beq _0204914C + b _0204915C +_02049112: + add r0, r5, #0x0 + bl sub_02048B34 + add r0, r5, #0x0 + bl sub_02048C2C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204915C +_02049126: + add r0, r5, #0x0 + add r1, r4, #0x4 + bl sub_02048958 + add r0, r5, #0x0 + bl sub_02048B90 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020489FC + add r5, #0x90 + ldr r0, [r5, #0x0] + bl sub_0205DD40 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204915C +_0204914C: + add r0, r5, #0x0 + bl sub_02048AE4 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_0204915C: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02049160 +sub_02049160: ; 0x02049160 + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + mov r0, #0xb + mov r1, #0x18 + bl sub_020169D8 + add r4, r0, #0x0 + add r0, r7, #0x0 + bl sub_0203739C + cmp r0, #0x0 + beq _02049186 + bl sub_02020C2C + pop {r3-r7, pc} +_02049186: + mov r0, #0x0 + str r0, [r4, #0x0] + ldmia r5!, {r0-r1} + add r2, r4, #0x4 + stmia r2!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r5, #0x0] + ldr r1, _020491A4 ; =sub_020490F0 + str r0, [r2, #0x0] + add r0, r6, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + .balign 4 +_020491A4: .word sub_020490F0 + 1 + + thumb_func_start sub_020491A8 +sub_020491A8: ; 0x020491A8 + push {lr} + sub sp, #0x14 + str r1, [sp, #0x0] + ldr r1, [sp, #0x18] + str r2, [sp, #0x4] + str r1, [sp, #0xc] + ldr r1, [sp, #0x1c] + str r3, [sp, #0x8] + str r1, [sp, #0x10] + add r1, sp, #0x0 + bl sub_02049160 + add sp, #0x14 + pop {pc} + + thumb_func_start sub_020491C4 +sub_020491C4: ; 0x020491C4 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + cmp r1, #0x3 + bhi _0204923C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r4, r3, #0 + lsl r4, r5, #0 + lsl r2, r1, #0x1 + ldr r1, [r4, #0x4] + add r0, r6, #0x0 + bl sub_0204AD60 + add r0, r5, #0x0 + bl sub_0204AF3C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204923C +_02049206: + .byte 0x28, 0x1C, 0x21, 0x1D, 0xFF, 0xF7, 0xA9, 0xFF, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x12, 0xE0, 0xBC, 0xF7, 0xF5, 0xF8, 0x00, 0x28, 0x0E, 0xD1, 0x61, 0x68 + .byte 0x30, 0x1C, 0x01, 0xF0, 0xB3, 0xFD, 0x28, 0x1C, 0x01, 0xF0, 0xAC, 0xFE, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x03, 0xE0, 0xCD, 0xF7, 0xF0, 0xFB, 0x01, 0x20, 0x70, 0xBD +_0204923C: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02049240 +sub_02049240: ; 0x02049240 + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0xb + mov r1, #0x18 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + str r5, [r2, #0x4] + str r4, [r2, #0x8] + ldr r0, [sp, #0x18] + str r6, [r2, #0xc] + str r0, [r2, #0x10] + ldr r0, [sp, #0x1c] + ldr r1, _02049270 ; =sub_020491C4 + str r0, [r2, #0x14] + add r0, r7, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + .balign 4 +_02049270: .word sub_020491C4 + 1 + + thumb_func_start sub_02049274 +sub_02049274: ; 0x02049274 + push {r4-r5, lr} + sub sp, #0x14 + add r4, r0, #0x0 + ldr r0, [sp, #0x20] + str r1, [sp, #0x0] + str r0, [sp, #0xc] + ldr r0, [sp, #0x24] + mov r1, #0x20 + str r0, [sp, #0x10] + mov r0, #0xb + str r2, [sp, #0x4] + str r3, [sp, #0x8] + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + add r3, r2, #0x0 + add r5, sp, #0x0 + str r0, [r2, #0x4] + ldmia r5!, {r0-r1} + add r3, #0x8 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + ldr r1, _020492B8 ; =sub_02049304 + str r0, [r3, #0x0] + add r0, r4, #0x0 + bl sub_020463CC + add sp, #0x14 + pop {r4-r5, pc} + nop +_020492B8: .word sub_02049304 + 1 + + thumb_func_start sub_020492BC +sub_020492BC: ; 0x020492BC + push {r4-r5, lr} + sub sp, #0x14 + add r4, r0, #0x0 + ldr r0, [sp, #0x20] + str r1, [sp, #0x0] + str r0, [sp, #0xc] + ldr r0, [sp, #0x24] + mov r1, #0x20 + str r0, [sp, #0x10] + mov r0, #0xb + str r2, [sp, #0x4] + str r3, [sp, #0x8] + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + add r3, r2, #0x0 + add r5, sp, #0x0 + str r0, [r2, #0x4] + ldmia r5!, {r0-r1} + add r3, #0x8 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + ldr r1, _02049300 ; =sub_02049304 + str r0, [r3, #0x0] + add r0, r4, #0x0 + bl sub_020463EC + add sp, #0x14 + pop {r4-r5, pc} + nop +_02049300: .word sub_02049304 + 1 + + thumb_func_start sub_02049304 +sub_02049304: ; 0x02049304 + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r5, r4, #0x0 + ldr r1, [r4, #0x0] + add r5, #0x8 + cmp r1, #0x3 + bhi _02049390 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r4, r3, #0 + lsl r6, r6, #0 + lsl r2, r3, #0x1 + ldr r1, [r5, #0x0] + add r0, r6, #0x0 + bl sub_0204AD60 + add r0, r7, #0x0 + bl sub_02049394 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02049390 +_0204934A: + .byte 0xB0, 0x6B, 0x00, 0x21, 0x0C, 0xF0 + .byte 0x2B, 0xF8, 0x21, 0x1C, 0x38, 0x1C, 0x08, 0x31, 0xFF, 0xF7, 0x02, 0xFF, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x15, 0xE0, 0xBC, 0xF7, 0x4E, 0xF8, 0x00, 0x28, 0x11, 0xD1, 0x29, 0x68, 0x30, 0x1C + .byte 0x01, 0xF0, 0x0C, 0xFD, 0x30, 0x1C, 0x1A, 0xF0, 0x17, 0xFA, 0x38, 0x1C, 0x00, 0xF0, 0x28, 0xF8 + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x03, 0xE0, 0xCD, 0xF7, 0x46, 0xFB, 0x01, 0x20, 0xF8, 0xBD +_02049390: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02049394 +sub_02049394: ; 0x02049394 + ldr r3, _0204939C ; =sub_0204640C + ldr r1, _020493A0 ; =sub_020493A4 + mov r2, #0x0 + bx r3 + .balign 4 +_0204939C: .word sub_0204640C + 1 +_020493A0: .word sub_020493A4 + 1 + + thumb_func_start sub_020493A4 +sub_020493A4: ; 0x020493A4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020493BA + cmp r0, #0x1 + beq _020493C8 + b _020493CC +_020493BA: + add r0, r5, #0x0 + bl sub_0204AF3C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020493CC +_020493C8: + mov r0, #0x1 + pop {r3-r5, pc} +_020493CC: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_020493D0 +sub_020493D0: ; 0x020493D0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204652C + add r2, r0, #0x0 + ldr r1, _020493E4 ; =sub_020493E8 + add r0, r4, #0x0 + bl sub_0204640C + pop {r4, pc} + .balign 4 +_020493E4: .word sub_020493E8 + 1 + + thumb_func_start sub_020493E8 +sub_020493E8: ; 0x020493E8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02049408 + cmp r1, #0x1 + beq _02049416 + cmp r1, #0x2 + beq _02049428 + b _0204942C +_02049408: + add r0, r5, #0x0 + bl sub_0204AF84 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204942C +_02049416: + bl sub_021E331C + add r0, r5, #0x0 + bl sub_02049430 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204942C +_02049428: + mov r0, #0x1 + pop {r3-r5, pc} +_0204942C: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02049430 +sub_02049430: ; 0x02049430 + push {r4-r6, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0203739C + cmp r0, #0x0 + bne _02049452 + bl sub_02020C2C + pop {r4-r6, pc} +_02049452: + ldr r0, [r5, #0x38] + bl sub_020553E8 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_022483BC + str r0, [r4, #0x4] + ldr r1, _02049470 ; =sub_02049474 + add r0, r6, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r4-r6, pc} + nop +_02049470: .word sub_02049474 + 1 + + thumb_func_start sub_02049474 +sub_02049474: ; 0x02049474 + push {r4, lr} + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + bl sub_022483E0 + cmp r0, #0x1 + bne _02049490 + ldr r0, [r4, #0x4] + bl sub_022483EC + mov r0, #0x1 + pop {r4, pc} +_02049490: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02049494 +sub_02049494: ; 0x02049494 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0xb + mov r1, #0x20 + add r4, r2, #0x0 + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + str r4, [r2, #0x4] + str r0, [r2, #0x8] + add r3, r2, #0x0 + ldmia r5!, {r0-r1} + add r3, #0xc + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + ldr r1, _020494C8 ; =sub_020494CC + str r0, [r3, #0x0] + add r0, r6, #0x0 + bl sub_020463EC + pop {r4-r6, pc} + .balign 4 +_020494C8: .word sub_020494CC + 1 + + thumb_func_start sub_020494CC +sub_020494CC: ; 0x020494CC + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r6, r4, #0x0 + ldr r1, [r4, #0x0] + add r6, #0xc + cmp r1, #0x3 + bhi _02049570 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r4, r3, #0 + lsl r6, r6, #0 + lsl r2, r6, #0x1 + ldr r1, [r6, #0x0] + add r0, r5, #0x0 + bl sub_0204AD60 + add r0, r7, #0x0 + bl sub_02049574 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02049570 +_02049512: + .byte 0xA8, 0x6B, 0x00, 0x21, 0x0B, 0xF0, 0x47, 0xFF, 0x21, 0x1C, 0x38, 0x1C, 0x0C, 0x31 + .byte 0xFF, 0xF7, 0x1E, 0xFE, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x21, 0xE0, 0xBB, 0xF7, 0x6A, 0xFF + .byte 0x00, 0x28, 0x1D, 0xD1, 0x31, 0x68, 0x28, 0x1C, 0x01, 0xF0, 0x28, 0xFC, 0x60, 0x68, 0x02, 0x28 + .byte 0x03, 0xD1, 0x28, 0x1C, 0x1A, 0xF0, 0x3E, 0xF9, 0x07, 0xE0, 0x01, 0x28, 0x03, 0xD8, 0x28, 0x1C + .byte 0x1A, 0xF0, 0x46, 0xF9, 0x01, 0xE0, 0xD7, 0xF7, 0x69, 0xFB, 0x38, 0x1C, 0x00, 0xF0, 0x28, 0xF8 + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x03, 0xE0, 0xCD, 0xF7, 0x56, 0xFA, 0x01, 0x20, 0xF8, 0xBD +_02049570: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02049574 +sub_02049574: ; 0x02049574 + ldr r3, _0204957C ; =sub_0204640C + ldr r1, _02049580 ; =sub_02049584 + mov r2, #0x0 + bx r3 + .balign 4 +_0204957C: .word sub_0204640C + 1 +_02049580: .word sub_02049584 + 1 + + thumb_func_start sub_02049584 +sub_02049584: ; 0x02049584 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0204959A + cmp r0, #0x1 + beq _020495A8 + b _020495AC +_0204959A: + add r0, r5, #0x0 + bl sub_0204AF3C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020495AC +_020495A8: + mov r0, #0x1 + pop {r3-r5, pc} +_020495AC: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_020495B0 +sub_020495B0: ; 0x020495B0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204652C + add r2, r0, #0x0 + ldr r1, _020495C4 ; =sub_020495C8 + add r0, r4, #0x0 + bl sub_0204640C + pop {r4, pc} + .balign 4 +_020495C4: .word sub_020495C8 + 1 + + thumb_func_start sub_020495C8 +sub_020495C8: ; 0x020495C8 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020495F0 + cmp r0, #0x1 + beq _020495FE + cmp r0, #0x2 + beq _02049612 + b _02049616 +_020495F0: + add r0, r5, #0x0 + bl sub_0204AF84 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02049616 +_020495FE: + add r0, r6, #0x0 + bl sub_021E331C + add r0, r5, #0x0 + bl sub_0204961C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02049616 +_02049612: + mov r0, #0x1 + pop {r4-r6, pc} +_02049616: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204961C +sub_0204961C: ; 0x0204961C + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0203739C + cmp r0, #0x0 + bne _0204963E + bl sub_02020C2C + pop {r4-r6, pc} +_0204963E: + ldr r2, [r6, #0x4] + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_0224C8C8 + add r2, r0, #0x0 + ldr r1, _02049654 ; =0x0224C8E9 + add r0, r5, #0x0 + bl sub_0204640C + pop {r4-r6, pc} + .balign 4 +_02049654: .word 0x0224C8E9 + + thumb_func_start sub_02049658 +sub_02049658: ; 0x02049658 + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r5, r4, #0x0 + ldr r1, [r4, #0x0] + add r5, #0x8 + cmp r1, #0x6 + bhi _02049712 + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r4, r1, #0 + lsl r6, r3, #0 + lsl r2, r7, #0 + lsl r2, r1, #0x1 + lsl r0, r5, #0x1 + lsl r4, r7, #0x1 + lsl r0, r1, #0x2 + add r0, r7, #0x0 + mov r1, #0x1 + add r2, r4, #0x4 + bl sub_021E7750 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02049712 +_020496A0: + .byte 0x60, 0x68, 0x00, 0x28, 0x35, 0xD0, 0x29, 0x68, 0x38, 0x1C, 0x01, 0xF0, 0x59, 0xFB, 0x30, 0x1C + .byte 0x01, 0xF0, 0x44, 0xFC, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x2A, 0xE0, 0x30, 0x1C, 0x29, 0x1C + .byte 0xFF, 0xF7, 0x4E, 0xFD, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x22, 0xE0, 0xBB, 0xF7, 0x9A, 0xFE + .byte 0x00, 0x28, 0x1E, 0xD1, 0x29, 0x68, 0x38, 0x1C, 0x01, 0xF0, 0x58, 0xFB, 0x30, 0x1C, 0x01, 0xF0 + .byte 0x51, 0xFC, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x13, 0xE0, 0x00, 0x21, 0x61, 0x60, 0x38, 0x1C + .byte 0x22, 0x1D, 0x9E, 0xF1, 0x2D, 0xF8, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x09, 0xE0, 0x60, 0x68 + .byte 0x00, 0x28, 0x06, 0xD0, 0x48, 0x1C, 0x20, 0x60, 0x03, 0xE0, 0xCD, 0xF7, 0x85, 0xF9, 0x01, 0x20 + .byte 0xF8, 0xBD +_02049712: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02049718 +sub_02049718: ; 0x02049718 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0xb + mov r1, #0x1c + add r6, r2, #0x0 + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x1c + add r7, r0, #0x0 + blx sub_020CE34C + ldr r0, [r5, #0x38] + bl sub_020552F8 + mov r1, #0x0 + add r2, r7, #0x0 + str r4, [sp, #0x0] + str r6, [sp, #0x4] + add r3, sp, #0x0 + str r1, [sp, #0x8] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldmia r3!, {r0-r1} + add r2, #0x8 + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + ldr r1, _02049768 ; =sub_02049658 + str r0, [r2, #0x0] + add r0, r5, #0x0 + add r2, r7, #0x0 + bl sub_020463CC + add sp, #0x14 + pop {r4-r7, pc} + nop +_02049768: .word sub_02049658 + 1 + + thumb_func_start sub_0204976C +sub_0204976C: ; 0x0204976C + push {r4-r6, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0xc] + bl sub_02034E30 + bl sub_02034DD0 + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x40 + bl sub_020169D8 + add r5, r0, #0x0 + mov r1, #0x0 + str r1, [r5, #0x0] + str r1, [r5, #0x4] + ldr r0, [r6, #0x6c] + cmp r0, #0x1 + bne _020497A4 + ldr r0, [r4, #0x0] + str r0, [r5, #0x8] + sub r0, r1, #0x1 + str r0, [r5, #0xc] + ldr r0, [r4, #0x8] + str r0, [r5, #0x10] + ldr r0, [r4, #0xc] + str r0, [r5, #0x14] + b _02049820 +_020497A4: + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_02048CB0 + mov r0, #0x2 + str r0, [r5, #0x8] + sub r0, r0, #0x3 + str r0, [r5, #0xc] + ldr r1, [r4, #0x8] + asr r0, r1, #0x4 + lsr r0, r0, #0x1b + add r0, r1, r0 + asr r0, r0, #0x5 + ldr r1, [r4, #0xc] + sub r6, r0, #0x1 + asr r0, r1, #0x4 + lsr r0, r0, #0x1b + add r0, r1, r0 + asr r0, r0, #0x5 + sub r4, r0, #0x6 + cmp r6, #0x0 + bge _020497D4 + bl sub_02020C2C +_020497D4: + cmp r4, #0x0 + bge _020497DC + bl sub_02020C2C +_020497DC: + lsr r2, r6, #0x1f + lsl r1, r6, #0x1f + sub r1, r1, r2 + mov r0, #0x1f + ror r1, r0 + add r0, r2, r1 + bne _020497EE + mov r0, #0x8 + b _020497F0 +_020497EE: + mov r0, #0x17 +_020497F0: + lsr r3, r4, #0x1f + lsl r2, r4, #0x1f + sub r2, r2, r3 + mov r1, #0x1f + ror r2, r1 + add r1, r3, r2 + bne _02049802 + mov r1, #0x8 + b _02049804 +_02049802: + mov r1, #0x17 +_02049804: + lsr r2, r6, #0x1f + add r2, r6, r2 + asr r2, r2, #0x1 + add r6, r2, #0x1 + lsr r2, r4, #0x1f + add r2, r4, r2 + asr r2, r2, #0x1 + add r3, r2, #0x3 + lsl r2, r6, #0x5 + add r0, r0, r2 + str r0, [r5, #0x10] + lsl r0, r3, #0x5 + add r0, r1, r0 + str r0, [r5, #0x14] +_02049820: + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02049824 +sub_02049824: ; 0x02049824 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0204976C + add r4, r0, #0x0 + beq _02049840 + add r0, r5, #0x0 + bl sub_02049BE8 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020463CC +_02049840: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02049844 +sub_02049844: ; 0x02049844 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0xc + bhi _0204992C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r3, #0 + lsl r0, r6, #0x1 + lsl r4, r5, #0x2 + lsl r2, r6, #0x3 + lsl r6, r6, #0x4 + lsl r4, r4, #0x5 + lsl r6, r6, #0x5 + lsl r6, r0, #0x6 + lsl r2, r3, #0x6 + lsl r0, r5, #0x6 + lsl r6, r2, #0x7 + lsl r0, r7, #0x7 + lsl r2, r5, #0x8 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xcf + mov r3, #0xb + bl sub_0200A86C + add r6, r0, #0x0 + mov r1, #0x7c + bl sub_0200A914 + str r0, [r4, #0x34] + add r0, r6, #0x0 + bl sub_0200A8B8 + add r1, r4, #0x0 + ldr r0, [r5, #0x8] + add r1, #0x24 + mov r2, #0x3 + bl sub_020545B8 + ldr r0, [r5, #0xc] + bl sub_02023900 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x24 + bl sub_02054608 + ldr r0, [r5, #0xc] + bl sub_02023900 + add r2, r0, #0x0 + add r0, r4, #0x0 + ldr r1, [r4, #0x34] + add r0, #0x24 + mov r3, #0x1 + bl sub_02054658 + add r1, r4, #0x0 + add r1, #0x38 + strb r0, [r1, #0x0] + mov r0, #0x1 + str r0, [r4, #0x0] + b _02049AB2 +_020498DC: + .byte 0x20, 0x1C, 0x38, 0x30 + .byte 0x00, 0x78, 0x0A, 0xF0, 0xF1, 0xFE, 0x01, 0x28, 0x20, 0xD1, 0x60, 0x6B, 0xD8, 0xF7, 0x98, 0xF8 + .byte 0x00, 0x20, 0x00, 0x90, 0x0B, 0x23, 0x01, 0x93, 0xA8, 0x68, 0x6F, 0x4A, 0x03, 0x21, 0xC3, 0xF7 + .byte 0xFF, 0xF8, 0x0B, 0x23, 0x00, 0x93, 0xA8, 0x68, 0x6C, 0x49, 0x6B, 0x4A, 0xB8, 0xF7, 0x44, 0xFC + .byte 0xE0, 0x63, 0x02, 0x20, 0x20, 0x60, 0xCC, 0xE0, 0xE0, 0x6B, 0x0B, 0x21, 0xB8, 0xF7, 0x46, 0xFC + .byte 0x00, 0x28, 0x04, 0xD0, 0x01, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x0C, 0xD0 +_0204992C: + b _02049AB2 +_0204992E: + .byte 0x20, 0x1C + .byte 0x24, 0x30, 0x00, 0x21, 0xC3, 0xF7, 0xD4, 0xFB, 0x20, 0x1C, 0x24, 0x30, 0xCF, 0xF7, 0x1C, 0xFC + .byte 0x03, 0x20, 0x20, 0x60, 0xB5, 0xE0, 0x20, 0x1C, 0x24, 0x30, 0x00, 0x21, 0xC3, 0xF7, 0xC8, 0xFB + .byte 0x20, 0x1C, 0x24, 0x30, 0xCF, 0xF7, 0x10, 0xFC, 0x05, 0x20, 0x20, 0x60, 0xA9, 0xE0, 0xE8, 0x68 + .byte 0xD8, 0xF7, 0x54, 0xFF, 0x00, 0x28, 0x06, 0xD0, 0x00, 0x22, 0x55, 0x49, 0x30, 0x1C, 0x13, 0x1C + .byte 0xEF, 0xF7, 0xB2, 0xF9, 0x12, 0xE0, 0xE8, 0x68, 0xDC, 0xF7, 0x36, 0xF9, 0x28, 0x1C, 0x0B, 0x21 + .byte 0x03, 0x22, 0x9E, 0xF1, 0x01, 0xFE, 0x20, 0x62, 0x9E, 0xF1, 0xB4, 0xFD, 0x23, 0x1C, 0x00, 0x22 + .byte 0x4C, 0x49, 0x30, 0x1C, 0x1C, 0x33, 0xA2, 0x83, 0xEF, 0xF7, 0x9E, 0xF9, 0x04, 0x20, 0x20, 0x60 + .byte 0x87, 0xE0, 0xE8, 0x68, 0xD8, 0xF7, 0x32, 0xFF, 0x00, 0x28, 0x02, 0xD0, 0x05, 0x20, 0x20, 0x60 + .byte 0x7F, 0xE0, 0x20, 0x6A, 0x9E, 0xF1, 0xDA, 0xFD, 0x20, 0x6A, 0x9E, 0xF1, 0x13, 0xFE, 0xA0, 0x8B + .byte 0x00, 0x28, 0x02, 0xD1, 0x05, 0x20, 0x20, 0x60, 0x73, 0xE0, 0x06, 0x20, 0x20, 0x60, 0x70, 0xE0 + .byte 0x68, 0x6B, 0x0E, 0xF0, 0xED, 0xFE, 0x20, 0x1C, 0xCD, 0xF7, 0x1E, 0xF8, 0x02, 0xB0, 0x01, 0x20 + .byte 0x70, 0xBD, 0x00, 0x20, 0x1E, 0x21, 0xBB, 0xF7, 0xF1, 0xFC, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60 + .byte 0x5F, 0xE0, 0x30, 0x1C, 0x00, 0x21, 0x00, 0xF0, 0x09, 0xF9, 0x00, 0x28, 0x59, 0xD0, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x55, 0xE0, 0x30, 0x1C, 0x01, 0xF0, 0x98, 0xFA, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x4E, 0xE0, 0x01, 0x20, 0xE8, 0x66, 0x2B, 0x48, 0x02, 0x21, 0xBC, 0xF7, 0xDE, 0xFA + .byte 0x28, 0x1C, 0x06, 0xF0, 0x1B, 0xF9, 0x60, 0x69, 0x01, 0x22, 0x00, 0x90, 0x01, 0x92, 0xA1, 0x68 + .byte 0x23, 0x69, 0x30, 0x1C, 0x92, 0x1E, 0xFF, 0xF7, 0xB7, 0xFB, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60 + .byte 0x37, 0xE0, 0xBB, 0xF7, 0xDF, 0xFC, 0x00, 0x28, 0x33, 0xD1, 0x00, 0x20, 0xBA, 0xF7, 0x86, 0xFB + .byte 0x28, 0x1C, 0x01, 0xF0, 0x77, 0xF8, 0x30, 0x1C, 0x01, 0xF0, 0x94, 0xFA, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x26, 0xE0, 0x30, 0x1C, 0x01, 0x21, 0x00, 0xF0, 0xD0, 0xF8, 0x00, 0x28, 0x20, 0xD0 + .byte 0x06, 0xF0, 0x16, 0xF9, 0x28, 0x1C, 0xFA, 0xF1, 0xD5, 0xFE, 0x00, 0x21, 0xA8, 0x66, 0x02, 0x20 + .byte 0x0A, 0x1C, 0x00, 0x90, 0x1E, 0x20, 0x10, 0x3A, 0x19, 0x23, 0xC0, 0xF7, 0xBD, 0xFB, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x0D, 0xE0, 0x02, 0x20, 0xC0, 0xF7, 0x54, 0xFC, 0x00, 0x28, 0x08, 0xD0 + .byte 0x01, 0x20, 0xFD, 0xF1, 0x65, 0xFF, 0x20, 0x1C, 0xCC, 0xF7, 0xB6, 0xFF, 0x02, 0xB0, 0x01, 0x20 + .byte 0x70, 0xBD +_02049AB2: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} +_02049AB8: + .byte 0xD9, 0x03, 0x00, 0x00, 0xD8, 0x46, 0x0F, 0x02 + .byte 0xF2, 0x07, 0x00, 0x00, 0xD5, 0x07, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x70, 0xB5, 0x82, 0xB0 + .byte 0x06, 0x1C, 0xFC, 0xF7, 0x29, 0xFD, 0x05, 0x1C, 0x30, 0x1C, 0xFC, 0xF7, 0x27, 0xFD, 0x04, 0x1C + .byte 0x21, 0x68, 0x07, 0x29, 0x7A, 0xD8, 0x49, 0x18, 0x79, 0x44, 0xC9, 0x88, 0x09, 0x04, 0x09, 0x14 + .byte 0x8F, 0x44, 0x0E, 0x00, 0x38, 0x00, 0x60, 0x00, 0x74, 0x00, 0x82, 0x00, 0xA8, 0x00, 0xCA, 0x00 + .byte 0xDE, 0x00, 0x00, 0x20, 0xFD, 0xF1, 0x34, 0xFF, 0x06, 0xF0, 0xE6, 0xF8, 0xA8, 0x6E, 0xFA, 0xF1 + .byte 0x9D, 0xFE, 0x02, 0x20, 0x00, 0x90, 0x1E, 0x20, 0x01, 0x1C, 0x2E, 0x39, 0x00, 0x22, 0x01, 0x23 + .byte 0xC0, 0xF7, 0x72, 0xFB, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x57, 0xE0, 0x02, 0x20, 0xC0, 0xF7 + .byte 0x09, 0xFC, 0x00, 0x28, 0x52, 0xD0, 0xA8, 0x6E, 0x00, 0x28, 0x4F, 0xD1, 0xE7, 0xF7, 0x00, 0xFA + .byte 0x00, 0x28, 0x4B, 0xD1, 0x00, 0x20, 0x1E, 0x21, 0xBB, 0xF7, 0x40, 0xFC, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x43, 0xE0, 0x30, 0x1C, 0x02, 0x21, 0x00, 0xF0, 0x58, 0xF8, 0x00, 0x28, 0x3D, 0xD0 + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x39, 0xE0, 0x30, 0x1C, 0x01, 0xF0, 0xE7, 0xF9, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x32, 0xE0, 0x00, 0x20, 0xE8, 0x66, 0x1A, 0x48, 0xBC, 0xF7, 0xF0, 0xF9 + .byte 0x60, 0x69, 0x01, 0x22, 0x00, 0x90, 0x01, 0x92, 0xA1, 0x68, 0x23, 0x69, 0x30, 0x1C, 0x92, 0x1E + .byte 0xFF, 0xF7, 0x0A, 0xFB, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x1F, 0xE0, 0xBB, 0xF7, 0x32, 0xFC + .byte 0x00, 0x28, 0x1B, 0xD1, 0x00, 0x20, 0xBA, 0xF7, 0xD9, 0xFA, 0x28, 0x1C, 0x00, 0xF0, 0xCA, 0xFF + .byte 0x30, 0x1C, 0x01, 0xF0, 0xE7, 0xF9, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x0E, 0xE0, 0x30, 0x1C + .byte 0x03, 0x21, 0x00, 0xF0, 0x23, 0xF8, 0x00, 0x28, 0x08, 0xD0, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60 + .byte 0x04, 0xE0, 0xCC, 0xF7, 0x21, 0xFF, 0x02, 0xB0, 0x01, 0x20, 0x70, 0xBD, 0x00, 0x20, 0x02, 0xB0 + .byte 0x70, 0xBD, 0xC0, 0x46, 0x12, 0x00, 0x00, 0x00 + + thumb_func_start sub_02049BE8 +sub_02049BE8: ; 0x02049BE8 + push {r3, lr} + ldr r0, [r0, #0x6c] + cmp r0, #0x0 + bne _02049BF4 + ldr r0, _02049C04 ; =sub_02049844 + pop {r3, pc} +_02049BF4: + cmp r0, #0x1 + bne _02049BFC + ldr r0, _02049C08 ; =0x02049ACD + pop {r3, pc} +_02049BFC: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_02049C04: .word sub_02049844 + 1 +_02049C08: .word 0x02049ACD + + thumb_func_start sub_02049C0C +sub_02049C0C: ; 0x02049C0C + push {r3-r7, lr} + add r4, r0, #0x0 + add r6, r1, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + mov r5, #0x0 + cmp r0, #0x0 + beq _02049C2E + cmp r0, #0x1 + beq _02049C44 + b _02049C4E +_02049C2E: + add r2, r4, #0x0 + str r5, [r4, #0x18] + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, #0x18 + bl sub_02053C98 + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _02049C4E +_02049C44: + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02049C4E + str r5, [r4, #0x4] + mov r5, #0x1 +_02049C4E: + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02049C54 +sub_02049C54: ; 0x02049C54 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02049C76 + cmp r0, #0x1 + beq _02049C84 + cmp r0, #0x2 + beq _02049C9C + b _02049CAC +_02049C76: + add r0, r5, #0x0 + bl sub_02048B34 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02049CAC +_02049C84: + add r0, r5, #0x0 + add r1, r4, #0x4 + bl sub_02048958 + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0203989C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02049CAC +_02049C9C: + add r0, r5, #0x0 + bl sub_02048AE4 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_02049CAC: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02049CB0 +sub_02049CB0: ; 0x02049CB0 + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + mov r0, #0xb + mov r1, #0x18 + bl sub_020169D8 + add r4, r0, #0x0 + add r0, r7, #0x0 + bl sub_0203739C + cmp r0, #0x0 + beq _02049CD6 + bl sub_02020C2C + pop {r3-r7, pc} +_02049CD6: + mov r0, #0x0 + str r0, [r4, #0x0] + ldmia r5!, {r0-r1} + add r2, r4, #0x4 + stmia r2!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r5, #0x0] + ldr r1, _02049CF4 ; =sub_02049C54 + str r0, [r2, #0x0] + add r0, r6, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + .balign 4 +_02049CF4: .word sub_02049C54 + 1 + + thumb_func_start sub_02049CF8 +sub_02049CF8: ; 0x02049CF8 + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x5 + bhi _02049D98 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r6, r4, #0 + lsl r2, r7, #0 + lsl r4, r1, #0x1 + lsl r2, r3, #0x1 + lsl r0, r5, #0x1 + ldr r1, [r5, #0x8] + add r0, r7, #0x0 + mov r2, #0x0 + bl sub_0204ACA8 + add r0, r7, #0x0 + mov r1, #0x1 + add r2, r5, #0x4 + bl sub_021E7750 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02049D98 +_02049D4C: + .byte 0x68, 0x68, 0x00, 0x28 + .byte 0x22, 0xD0, 0x30, 0x1C, 0x01, 0xF0, 0xF2, 0xF8, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x1B, 0xE0 + .byte 0x08, 0x35, 0x30, 0x1C, 0x29, 0x1C, 0xFF, 0xF7, 0xFB, 0xF9, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60 + .byte 0x12, 0xE0, 0x30, 0x1C, 0x01, 0xF0, 0x06, 0xF9, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x0B, 0xE0 + .byte 0x30, 0x1C, 0x01, 0xF0, 0x43, 0xF9, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x04, 0xE0, 0x28, 0x1C + .byte 0xCC, 0xF7, 0x42, 0xFE, 0x01, 0x20, 0xF8, 0xBD +_02049D98: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02049D9C +sub_02049D9C: ; 0x02049D9C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034DD0 + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x1c + bl sub_020169D8 + add r6, r0, #0x0 + mov r1, #0x0 + mov r2, #0x1c + blx sub_020CE34C + add r2, r6, #0x0 + ldmia r4!, {r0-r1} + add r2, #0x8 + stmia r2!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r2, #0x0] + add r0, r5, #0x0 + bl sub_020520F8 + ldr r0, [r5, #0x7c] + bl sub_02052FA4 + mov r0, #0x0 + str r0, [r5, #0x6c] + ldr r1, _02049DF0 ; =sub_02049CF8 + add r0, r5, #0x0 + add r2, r6, #0x0 + bl sub_020463CC + mov r0, #0x0 + str r0, [r5, #0x78] + pop {r4-r6, pc} + nop +_02049DF0: .word sub_02049CF8 + 1 + + thumb_func_start sub_02049DF4 +sub_02049DF4: ; 0x02049DF4 + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x6 + bhi _02049E9E + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0 + lsl r4, r4, #0 + lsl r2, r6, #0 + lsl r4, r0, #0x1 + lsl r2, r2, #0x1 + lsl r6, r4, #0x1 + lsl r2, r6, #0x1 + ldr r1, [r5, #0x8] + add r0, r7, #0x0 + mov r2, #0x0 + bl sub_0204ACA8 + add r0, r6, #0x0 + bl sub_0204AFC8 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02049E9E +_02049E46: + .byte 0x30, 0x1C, 0x01, 0xF0, 0x78, 0xF8, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x24, 0xE0, 0x08, 0x35, 0x30, 0x1C, 0x29, 0x1C, 0xFF, 0xF7, 0x81, 0xF9, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x1B, 0xE0, 0x30, 0x1C, 0x01, 0xF0, 0x8C, 0xF8, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x14, 0xE0, 0x00, 0x21, 0x69, 0x60, 0x38, 0x1C, 0x2A, 0x1D, 0x9D, 0xF1, 0x68, 0xFC + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x0A, 0xE0, 0x69, 0x68, 0x00, 0x29, 0x07, 0xD0, 0x40, 0x1C + .byte 0x20, 0x60, 0x04, 0xE0, 0x28, 0x1C, 0xCC, 0xF7, 0xBF, 0xFD, 0x01, 0x20, 0xF8, 0xBD +_02049E9E: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02049EA4 +sub_02049EA4: ; 0x02049EA4 + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034DD0 + add r7, r0, #0x0 + mov r0, #0xb + mov r1, #0x1c + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x1c + add r4, r0, #0x0 + blx sub_020CE34C + add r0, r7, #0x0 + add r1, r5, #0x0 + bl sub_02048CB0 + ldr r0, _02049F08 ; =0x000001D2 + str r0, [r4, #0x8] + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0xc] + mov r0, #0x8 + str r0, [r4, #0x10] + mov r0, #0xe + str r0, [r4, #0x14] + mov r0, #0x0 + str r0, [r4, #0x18] + add r0, r5, #0x0 + bl sub_020520AC + str r0, [r5, #0x78] + bl sub_02052EE8 + str r0, [r5, #0x7c] + mov r0, #0x2 + str r0, [r5, #0x6c] + ldr r1, _02049F0C ; =sub_02049DF4 + add r0, r6, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + .balign 4 +_02049F08: .word 0x000001D2 +_02049F0C: .word sub_02049DF4 + 1 + + thumb_func_start sub_02049F10 +sub_02049F10: ; 0x02049F10 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + cmp r1, #0x3 + bhi _02049F8E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r2, r4, #0 + lsl r2, r6, #0 + lsl r0, r2, #0x1 + ldr r0, _02049F94 ; =0x00000603 + bl sub_020054C8 + ldr r1, [r4, #0x4] + add r0, r6, #0x0 + bl sub_0204AD60 + add r0, r5, #0x0 + bl sub_0204B090 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02049F8E +_02049F58: + .byte 0x28, 0x1C, 0x21, 0x1D, 0xFF, 0xF7, 0x00, 0xF9 + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x12, 0xE0, 0xBB, 0xF7, 0x4C, 0xFA, 0x00, 0x28, 0x0E, 0xD1 + .byte 0x61, 0x68, 0x30, 0x1C, 0x00, 0xF0, 0x0A, 0xFF, 0x28, 0x1C, 0x01, 0xF0, 0x03, 0xF8, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x03, 0xE0, 0xCC, 0xF7, 0x47, 0xFD, 0x01, 0x20, 0x70, 0xBD +_02049F8E: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_02049F94: .word 0x00000603 + + thumb_func_start sub_02049F98 +sub_02049F98: ; 0x02049F98 + push {r3-r7, lr} + sub sp, #0x18 + str r0, [sp, #0x0] + add r5, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02034E30 + bl sub_02034DD0 + add r1, r4, #0x0 + bl sub_02048CB0 + mov r0, #0x3 + str r0, [r4, #0x6c] + mov r0, #0xb + mov r1, #0x1c + bl sub_020169D8 + add r2, r0, #0x0 + ldr r0, [sp, #0x30] + str r5, [sp, #0x4] + str r0, [sp, #0x10] + ldr r0, [sp, #0x34] + str r6, [sp, #0x8] + str r0, [sp, #0x14] + mov r0, #0x0 + str r7, [sp, #0xc] + add r4, sp, #0x4 + str r0, [r2, #0x0] + ldmia r4!, {r0-r1} + add r3, r2, #0x4 + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r4, #0x0] + ldr r1, _02049FF8 ; =sub_02049F10 + str r0, [r3, #0x0] + ldr r0, [sp, #0x0] + bl sub_0204640C + add sp, #0x18 + pop {r3-r7, pc} + nop +_02049FF8: .word sub_02049F10 + 1 + + thumb_func_start sub_02049FFC +sub_02049FFC: ; 0x02049FFC + push {r4, lr} + bl sub_02046528 + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02034E30 + bl sub_02034DD0 + add r1, r0, #0x0 + mov r0, #0x0 + str r0, [r4, #0x6c] + ldr r0, [r4, #0x10] + bl sub_020490C0 + pop {r4, pc} + + thumb_func_start sub_0204A01C +sub_0204A01C: ; 0x0204A01C + push {r4, lr} + mov r1, #0xa2 + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _0204A030 + mov r0, #0x0 + pop {r4, pc} +_0204A030: + add r0, r4, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _0204A042 + mov r0, #0x1 + pop {r4, pc} +_0204A042: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0204A048 +sub_0204A048: ; 0x0204A048 + push {r3-r7, lr} + sub sp, #0x20 + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x10] + bl sub_020238F4 + str r0, [sp, #0x14] + add r0, r6, #0x0 + bl sub_0206BB1C + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl sub_020669C0 + add r4, r0, #0x0 + bl sub_02066978 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r0, [sp, #0xc] + ldr r2, [sp, #0x10] + add r0, r4, #0x0 + add r1, r7, #0x0 + mov r3, #0x20 + bl sub_02066ACC + ldr r0, [sp, #0x40] + ldr r1, [sp, #0x14] + str r0, [sp, #0x0] + ldr r3, [sp, #0x3c] + add r0, r4, #0x0 + mov r2, #0x4 + str r5, [sp, #0x4] + bl sub_0206A014 + add r0, sp, #0x28 + ldrh r0, [r0, #0x10] + mov r1, #0x6 + add r2, sp, #0x1c + str r0, [sp, #0x1c] + add r0, r4, #0x0 + bl sub_02067830 + ldr r0, [sp, #0x18] + add r1, r4, #0x0 + bl sub_0206B900 + add r5, r0, #0x0 + beq _0204A0BC + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0202C144 +_0204A0BC: + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_0204A0C8 +sub_0204A0C8: ; 0x0204A0C8 + push {r4-r7, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r0, r4, #0x0 + add r5, r2, #0x0 + add r7, r3, #0x0 + bl sub_020238F4 + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl sub_0206BB1C + add r6, r0, #0x0 + mov r0, #0x20 + bl sub_020669C0 + add r4, r0, #0x0 + bl sub_02066978 + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x24] + bl sub_02015CF8 + mov r1, #0x4 + str r1, [sp, #0x0] + str r0, [sp, #0x4] + ldr r3, [sp, #0x8] + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r7, #0x0 + bl sub_021ECF14 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0206B900 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0204A120 +sub_0204A120: ; 0x0204A120 + push {r3-r5, lr} + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_0206B9B0 + lsl r2, r5, #0x18 + add r1, r4, #0x0 + lsr r2, r2, #0x18 + bl sub_020697CC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204A138 +sub_0204A138: ; 0x0204A138 + push {r3-r7, lr} + str r0, [sp, #0x0] + add r5, r1, #0x0 + bl sub_0206B9AC + add r7, r0, #0x0 + mov r6, #0x0 + cmp r7, #0x0 + ble _0204A1A2 +_0204A14A: + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _0204A19C + add r0, r4, #0x0 + mov r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + cmp r5, r0 + beq _0204A198 + add r0, r4, #0x0 + mov r1, #0x37 + mov r2, #0x0 + bl sub_020671BC + cmp r5, r0 + beq _0204A198 + add r0, r4, #0x0 + mov r1, #0x38 + mov r2, #0x0 + bl sub_020671BC + cmp r5, r0 + beq _0204A198 + add r0, r4, #0x0 + mov r1, #0x39 + mov r2, #0x0 + bl sub_020671BC + cmp r5, r0 + bne _0204A19C +_0204A198: + add r0, r6, #0x0 + pop {r3-r7, pc} +_0204A19C: + add r6, r6, #0x1 + cmp r6, r7 + blt _0204A14A +_0204A1A2: + mov r0, #0xff + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204A1A8 +sub_0204A1A8: ; 0x0204A1A8 + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_0206B9AC + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 + cmp r6, #0x0 + ble _0204A1D2 +_0204A1BA: + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_0206B9B0 + bl sub_0204A01C + cmp r0, #0x0 + beq _0204A1CC + add r5, r5, #0x1 +_0204A1CC: + add r4, r4, #0x1 + cmp r4, r6 + blt _0204A1BA +_0204A1D2: + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204A1D8 +sub_0204A1D8: ; 0x0204A1D8 + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_0206B9AC + add r5, r0, #0x0 + mov r4, #0x0 + cmp r5, #0x0 + ble _0204A204 +_0204A1E8: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0206B9B0 + add r7, r0, #0x0 + bl sub_0204A01C + cmp r0, #0x0 + beq _0204A1FE + add r0, r7, #0x0 + pop {r3-r7, pc} +_0204A1FE: + add r4, r4, #0x1 + cmp r4, r5 + blt _0204A1E8 +_0204A204: + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0204A20C +sub_0204A20C: ; 0x0204A20C + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_0206B9AC + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + ldr r4, _0204A244 ; =0x00000000 + beq _0204A240 +_0204A21C: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r7, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _0204A236 + add r0, r7, #0x0 + pop {r3-r7, pc} +_0204A236: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r5 + blo _0204A21C +_0204A240: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0204A244: .word 0x00000000 + + thumb_func_start sub_0204A248 +sub_0204A248: ; 0x0204A248 + push {r3, lr} + bl sub_0204A1A8 + cmp r0, #0x2 + blt _0204A256 + mov r0, #0x1 + pop {r3, pc} +_0204A256: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204A25C +sub_0204A25C: ; 0x0204A25C + push {r3-r7, lr} + mov r2, #0x1 + add r1, sp, #0x0 + add r7, r0, #0x0 + strb r2, [r1, #0x0] + bl sub_0206B9AC + add r6, r0, #0x0 + mov r5, #0x0 + cmp r6, #0x0 + ble _0204A298 +_0204A272: + add r0, r7, #0x0 + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x4c + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _0204A292 + add r0, r4, #0x0 + mov r1, #0x19 + add r2, sp, #0x0 + bl sub_02067830 +_0204A292: + add r5, r5, #0x1 + cmp r5, r6 + blt _0204A272 +_0204A298: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204A29C +sub_0204A29C: ; 0x0204A29C + push {r3-r7, lr} + sub sp, #0x10 + mov r7, #0x0 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + add r6, r7, #0x0 + bl sub_0206B9AC + add r4, r7, #0x0 + str r0, [sp, #0x8] + cmp r0, #0x0 + ble _0204A310 +_0204A2B4: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl sub_0206B9B0 + add r5, r0, #0x0 + bl sub_0204A01C + cmp r0, #0x0 + beq _0204A308 + add r0, r5, #0x0 + mov r1, #0x9f + mov r2, #0x0 + bl sub_020671BC + mov r1, #0x88 + tst r0, r1 + beq _0204A308 + add r0, r5, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0xc] + cmp r0, #0x1 + bls _0204A2EA + sub r0, r0, #0x1 + str r0, [sp, #0xc] +_0204A2EA: + add r0, r5, #0x0 + mov r1, #0xa2 + add r2, sp, #0xc + bl sub_02067830 + ldr r0, [sp, #0xc] + cmp r0, #0x1 + bne _0204A306 + ldr r2, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x7 + add r6, r6, #0x1 + bl sub_020688E8 +_0204A306: + add r7, r7, #0x1 +_0204A308: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + cmp r4, r0 + blt _0204A2B4 +_0204A310: + cmp r6, #0x0 + beq _0204A31A + add sp, #0x10 + mov r0, #0x2 + pop {r3-r7, pc} +_0204A31A: + cmp r7, #0x0 + beq _0204A324 + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204A324: + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204A32C +sub_0204A32C: ; 0x0204A32C + push {r3-r4, lr} + sub sp, #0x4 + mov r1, #0x9f + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + mov r1, #0x88 + tst r0, r1 + beq _0204A362 + add r0, r4, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x1 + bne _0204A362 + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0x9f + add r2, sp, #0x0 + bl sub_02067830 + add sp, #0x4 + mov r0, #0x1 + pop {r3-r4, pc} +_0204A362: + mov r0, #0x0 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_0204A368 +sub_0204A368: ; 0x0204A368 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x54] + add r4, r1, #0x0 + cmp r0, #0x0 + bne _0204A388 + ldr r1, _0204A38C ; =0x000080E2 + mov r0, #0xb + bl sub_02016998 + str r0, [r5, #0x54] + ldr r0, [r5, #0x28] + ldr r1, [r5, #0x54] + add r2, r4, #0x0 + bl sub_0204A3B0 +_0204A388: + pop {r3-r5, pc} + nop +_0204A38C: .word 0x000080E2 + + thumb_func_start sub_0204A390 +sub_0204A390: ; 0x0204A390 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x54] + cmp r0, #0x0 + beq _0204A3A2 + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x54] +_0204A3A2: + pop {r4, pc} + + thumb_func_start sub_0204A3A4 +sub_0204A3A4: ; 0x0204A3A4 + ldrb r0, [r1, r0] + add r2, r1, #0x0 + add r2, #0xe2 + lsl r0, r0, #0xb + add r0, r2, r0 + bx lr + + thumb_func_start sub_0204A3B0 +sub_0204A3B0: ; 0x0204A3B0 + push {r4-r7, lr} + sub sp, #0x3c + str r1, [sp, #0x8] + str r2, [sp, #0xc] + str r0, [sp, #0x4] + mov r2, #0x0 + add r1, sp, #0x18 + strb r2, [r1, #0x0] + bl sub_020344FC + add r6, r0, #0x0 + ldr r0, [sp, #0x4] + bl sub_0203450C + str r0, [sp, #0x10] + mov r0, #0x0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + cmp r0, #0x0 + ble _0204A410 + ldr r7, [sp, #0x14] +_0204A3DA: + mov r5, #0x0 + cmp r6, #0x0 + ble _0204A402 +_0204A3E0: + add r0, r5, r7 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r1, [sp, #0x4] + add r0, r4, #0x0 + bl sub_020344D8 + add r1, sp, #0x18 + add r1, #0x2 + add r2, sp, #0x18 + bl sub_0204A45C + ldr r1, [sp, #0x8] + add r5, r5, #0x1 + strb r0, [r1, r4] + cmp r5, r6 + blt _0204A3E0 +_0204A402: + ldr r0, [sp, #0x14] + add r7, r7, r6 + add r1, r0, #0x1 + ldr r0, [sp, #0x10] + str r1, [sp, #0x14] + cmp r1, r0 + blt _0204A3DA +_0204A410: + mov r0, #0x43 + mov r1, #0xb + bl sub_02006670 + add r7, r0, #0x0 + ldr r0, [sp, #0xc] + mov r6, #0x0 + cmp r0, #0x0 + ble _0204A452 + ldr r0, [sp, #0x8] + add r4, sp, #0x18 + add r0, #0xe2 + add r4, #0x2 + add r5, r6, #0x0 + str r0, [sp, #0x8] +_0204A42E: + ldr r0, [sp, #0x8] + lsl r1, r5, #0x1 + add r0, r0, r1 + str r0, [sp, #0x0] + ldrh r1, [r4, #0x0] + mov r2, #0x10 + add r0, r7, #0x0 + lsl r3, r2, #0x7 + bl sub_02006814 + mov r0, #0x1 + lsl r0, r0, #0xa + add r5, r5, r0 + ldr r0, [sp, #0xc] + add r6, r6, #0x1 + add r4, r4, #0x2 + cmp r6, r0 + blt _0204A42E +_0204A452: + add r0, r7, #0x0 + bl sub_020066F4 + add sp, #0x3c + pop {r4-r7, pc} + + thumb_func_start sub_0204A45C +sub_0204A45C: ; 0x0204A45C + push {r3-r7, lr} + add r7, r2, #0x0 + add r5, r0, #0x0 + ldrb r0, [r7, #0x0] + add r6, r1, #0x0 + mov r4, #0x0 + cmp r0, #0x0 + bls _0204A482 +_0204A46C: + lsl r1, r4, #0x1 + ldrh r1, [r6, r1] + cmp r5, r1 + bne _0204A478 + add r0, r4, #0x0 + pop {r3-r7, pc} +_0204A478: + add r1, r4, #0x1 + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + cmp r4, r0 + blo _0204A46C +_0204A482: + cmp r4, #0x10 + blo _0204A48A + bl sub_02020C2C +_0204A48A: + lsl r0, r4, #0x1 + strh r5, [r6, r0] + ldrb r0, [r7, #0x0] + add r0, r0, #0x1 + strb r0, [r7, #0x0] + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0204A498 +sub_0204A498: ; 0x0204A498 + cmp r0, r1 + blt _0204A4A0 + sub r0, r0, r1 + bx lr +_0204A4A0: + sub r0, r1, r0 + bx lr + + thumb_func_start sub_0204A4A4 +sub_0204A4A4: ; 0x0204A4A4 + push {r3-r7, lr} + sub sp, #0x38 + add r4, r2, #0x0 + add r6, r3, #0x0 + add r5, r0, #0x0 + mov r0, #0x0 + str r4, [sp, #0x2c] + str r6, [sp, #0x34] + str r0, [sp, #0x10] + str r0, [sp, #0x30] + ldr r0, [r5, #0x24] + str r1, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [r5, #0x28] + bl sub_020344FC + str r0, [sp, #0x24] + lsl r0, r0, #0x5 + str r0, [sp, #0xc] + asr r0, r4, #0xf + lsr r0, r0, #0x10 + add r0, r4, r0 + asr r7, r0, #0x10 + asr r0, r6, #0xf + lsr r0, r0, #0x10 + add r0, r6, r0 + asr r0, r0, #0x10 + str r0, [sp, #0x1c] + add r2, r5, #0x0 + add r2, #0x9c + ldr r1, [sp, #0x1c] + ldr r2, [r2, #0x0] + add r0, r7, #0x0 + add r3, sp, #0x28 + bl sub_021F4520 + str r0, [sp, #0x20] + lsr r0, r7, #0x5 + str r0, [sp, #0x18] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x1c] + lsr r0, r0, #0x5 + str r0, [sp, #0x14] + ldr r0, [sp, #0x18] + lsl r0, r0, #0x5 + add r0, #0x10 + lsl r0, r0, #0x10 + sub r0, r4, r0 + str r0, [sp, #0x2c] + ldr r0, [sp, #0x14] + lsl r0, r0, #0x5 + add r0, #0x10 + lsl r0, r0, #0x10 + sub r0, r6, r0 + str r0, [sp, #0x34] + ldr r0, [sp, #0xc] + mul r0, r1 + ldr r1, [sp, #0xc] + add r0, r7, r0 + bl sub_021EF620 + ldr r2, [sp, #0x14] + add r1, r0, #0x0 + add r3, r2, #0x0 + ldr r0, [sp, #0x24] + ldr r2, [sp, #0x8] + mul r3, r0 + ldr r0, [sp, #0x18] + add r0, r0, r3 + bl sub_021EF654 + add r1, r0, #0x0 + cmp r1, #0x3 + bls _0204A53C + mov r4, #0x0 + b _0204A558 +_0204A53C: + lsl r1, r1, #0x18 + ldr r0, [sp, #0x8] + lsr r1, r1, #0x18 + bl sub_021EF8C8 + add r3, r0, #0x0 + add r0, sp, #0x30 + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x34] + bl sub_021F3DA4 + add r4, r0, #0x0 +_0204A558: + ldr r0, [sp, #0x20] + cmp r0, #0x0 + beq _0204A5A4 + add r0, sp, #0x28 + add r5, #0x9c + ldrb r0, [r0, #0x0] + ldr r1, [r5, #0x0] + bl sub_021F4568 + add r5, r0, #0x0 + cmp r4, #0x0 + beq _0204A59E + ldr r0, [sp, #0x30] + str r0, [sp, #0x10] + cmp r5, r0 + bgt _0204A57C + mov r1, #0x1 + b _0204A5B2 +_0204A57C: + ldr r1, [sp, #0x4] + bl sub_0204A498 + add r4, r0, #0x0 + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + bl sub_0204A498 + cmp r4, r0 + bgt _0204A598 + ldr r0, [sp, #0x30] + mov r1, #0x1 + str r0, [sp, #0x10] + b _0204A5B2 +_0204A598: + str r5, [sp, #0x10] + mov r1, #0x2 + b _0204A5B2 +_0204A59E: + mov r1, #0x2 + str r5, [sp, #0x10] + b _0204A5B2 +_0204A5A4: + cmp r4, #0x0 + beq _0204A5B0 + ldr r0, [sp, #0x30] + mov r1, #0x1 + str r0, [sp, #0x10] + b _0204A5B2 +_0204A5B0: + mov r1, #0x0 +_0204A5B2: + ldr r0, [sp, #0x50] + cmp r0, #0x0 + beq _0204A5BA + strb r1, [r0, #0x0] +_0204A5BA: + ldr r0, [sp, #0x10] + add sp, #0x38 + pop {r3-r7, pc} + + thumb_func_start sub_0204A5C0 +sub_0204A5C0: ; 0x0204A5C0 + push {r3, lr} + asr r1, r2, #0xf + lsr r1, r1, #0x10 + add r1, r2, r1 + asr r2, r3, #0xf + lsr r2, r2, #0x10 + add r2, r3, r2 + ldr r0, [r0, #0x24] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + mov r3, #0x0 + bl sub_021EF844 + ldr r1, [sp, #0x8] + cmp r1, #0x0 + beq _0204A5EE + cmp r0, #0x0 + beq _0204A5E8 + mov r1, #0x1 + b _0204A5EA +_0204A5E8: + mov r1, #0x0 +_0204A5EA: + ldr r0, [sp, #0x8] + strb r1, [r0, #0x0] +_0204A5EE: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204A5F4 +sub_0204A5F4: ; 0x0204A5F4 + push {r3-r7, lr} + ldr r7, [r0, #0x24] + add r4, r3, #0x0 + add r0, r7, #0x0 + add r3, sp, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_021EF844 + cmp r0, #0x0 + bne _0204A612 + mov r0, #0xff + strh r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} +_0204A612: + add r1, sp, #0x0 + ldrb r1, [r1, #0x0] + add r0, r7, #0x0 + bl sub_021EF8DC + lsr r2, r5, #0x1f + lsl r1, r5, #0x1b + sub r1, r1, r2 + mov r3, #0x1b + ror r1, r3 + add r1, r2, r1 + lsr r5, r6, #0x1f + lsl r2, r6, #0x1b + sub r2, r2, r5 + ror r2, r3 + add r2, r5, r2 + lsl r2, r2, #0x5 + add r1, r1, r2 + lsl r1, r1, #0x1 + ldrh r0, [r0, r1] + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} + + thumb_func_start sub_0204A640 +sub_0204A640: ; 0x0204A640 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x28] + add r4, r2, #0x0 + add r5, r1, #0x0 + add r7, r3, #0x0 + bl sub_020344FC + asr r2, r4, #0x4 + asr r1, r5, #0x4 + lsr r2, r2, #0x1b + lsr r1, r1, #0x1b + add r2, r4, r2 + add r1, r5, r1 + asr r2, r2, #0x5 + asr r1, r1, #0x5 + mul r0, r2 + add r0, r1, r0 + ldr r1, [r6, #0x54] + bl sub_0204A3A4 + lsr r2, r5, #0x1f + lsl r1, r5, #0x1b + sub r1, r1, r2 + mov r3, #0x1b + ror r1, r3 + add r1, r2, r1 + lsr r5, r4, #0x1f + lsl r2, r4, #0x1b + sub r2, r2, r5 + ror r2, r3 + add r2, r5, r2 + lsl r2, r2, #0x5 + add r1, r1, r2 + lsl r1, r1, #0x1 + ldrh r0, [r0, r1] + strh r0, [r7, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204A690 +sub_0204A690: ; 0x0204A690 + push {r3, lr} + cmp r1, #0x0 + bne _0204A69C + ldr r1, _0204A6AC ; =0x020F4708 + str r1, [r0, #0x0] + pop {r3, pc} +_0204A69C: + cmp r1, #0x1 + bne _0204A6A6 + ldr r1, _0204A6B0 ; =0x020F4710 + str r1, [r0, #0x0] + pop {r3, pc} +_0204A6A6: + bl sub_02020C2C + pop {r3, pc} + .balign 4 +_0204A6AC: .word 0x020F4708 +_0204A6B0: .word 0x020F4710 + + thumb_func_start sub_0204A6B4 +sub_0204A6B4: ; 0x0204A6B4 + push {r3-r4, lr} + sub sp, #0x4 + ldr r4, [r0, #0x58] + add r3, sp, #0x0 + ldr r4, [r4, #0x4] + blx r4 + cmp r0, #0x0 + beq _0204A6DA + add r0, sp, #0x0 + ldrh r0, [r0, #0x0] + asr r0, r0, #0xf + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x1 + and r1, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #0x1 + beq _0204A6DC +_0204A6DA: + mov r0, #0x0 +_0204A6DC: + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_0204A6E0 +sub_0204A6E0: ; 0x0204A6E0 + push {r3-r4, lr} + sub sp, #0x4 + ldr r4, [r0, #0x58] + add r3, sp, #0x0 + ldr r4, [r4, #0x4] + blx r4 + cmp r0, #0x0 + beq _0204A700 + add r0, sp, #0x0 + ldrh r0, [r0, #0x0] + add sp, #0x4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3-r4, pc} +_0204A700: + mov r0, #0xff + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0204A708 +sub_0204A708: ; 0x0204A708 + push {r3-r4, lr} + sub sp, #0x4 + ldr r4, [sp, #0x10] + str r4, [sp, #0x0] + ldr r4, [r0, #0x58] + ldr r4, [r4, #0x0] + blx r4 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0204A71C +sub_0204A71C: ; 0x0204A71C + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, [sp, #0x10] + mov r5, #0x2 + str r1, [sp, #0x0] + ldr r1, [r4, #0x4] + lsl r2, r2, #0x10 + lsl r5, r5, #0xe + lsl r3, r3, #0x10 + add r2, r2, r5 + add r3, r3, r5 + bl sub_0204A708 + ldr r1, [r4, #0x4] + cmp r0, r1 + bge _0204A744 + mov r4, #0x0 + add r2, r1, #0x0 + mvn r4, r4 + b _0204A754 +_0204A744: + cmp r0, r1 + ble _0204A750 + add r2, r0, #0x0 + add r0, r1, #0x0 + mov r4, #0x1 + b _0204A754 +_0204A750: + mov r0, #0x0 + pop {r3-r5, pc} +_0204A754: + sub r1, r2, r0 + mov r0, #0x5 + lsl r0, r0, #0xe + cmp r1, r0 + blt _0204A768 + cmp r4, #0x0 + bne _0204A76A + bl sub_02020C2C + b _0204A76A +_0204A768: + mov r4, #0x0 +_0204A76A: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204A770 +sub_0204A770: ; 0x0204A770 + push {r3-r7, lr} + sub sp, #0x8 + add r6, sp, #0x4 + add r5, r0, #0x0 + add r4, r2, #0x0 + add r7, r3, #0x0 + str r6, [sp, #0x0] + bl sub_0204A71C + ldr r1, [sp, #0x20] + cmp r1, #0x0 + beq _0204A78A + strb r0, [r1, #0x0] +_0204A78A: + cmp r0, #0x0 + bne _0204A7C2 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_0204A6B4 + add r6, r0, #0x0 + bne _0204A7BC + add r0, sp, #0x4 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0204A7BC + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_0204A6E0 + bl sub_020548B4 + cmp r0, #0x0 + beq _0204A7BC + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_0204A7BC: + add sp, #0x8 + add r0, r6, #0x0 + pop {r3-r7, pc} +_0204A7C2: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0204A7C8 +sub_0204A7C8: ; 0x0204A7C8 + push {r3-r7, lr} + sub sp, #0x10 + add r6, sp, #0x8 + add r5, r0, #0x0 + str r1, [sp, #0x4] + add r4, r2, #0x0 + add r7, r3, #0x0 + str r6, [sp, #0x0] + bl sub_0204A71C + ldr r1, [sp, #0x28] + cmp r1, #0x0 + beq _0204A7E4 + strb r0, [r1, #0x0] +_0204A7E4: + cmp r0, #0x0 + bne _0204A83A + add r0, sp, #0xc + str r0, [sp, #0x0] + ldr r3, [sp, #0x4] + add r0, r5, #0x0 + ldr r3, [r3, #0x4] + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_0205CE00 + cmp r0, #0x0 + bne _0204A834 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_0204A6B4 + str r0, [sp, #0xc] + cmp r0, #0x0 + bne _0204A82E + add r0, sp, #0x8 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0204A82E + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_0204A6E0 + bl sub_020548B4 + cmp r0, #0x0 + beq _0204A82E + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204A82E: + ldr r0, [sp, #0xc] + add sp, #0x10 + pop {r3-r7, pc} +_0204A834: + ldr r0, [sp, #0xc] + add sp, #0x10 + pop {r3-r7, pc} +_0204A83A: + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start sub_0204A840 +sub_0204A840: ; 0x0204A840 + push {r3-r7, lr} + add r6, r0, r2 + ldr r0, [sp, #0x18] + add r4, r1, r3 + add r0, r6, r0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x1c] + ldr r5, [sp, #0x20] + add r7, r4, r0 + cmp r6, #0x0 + blt _0204A864 + cmp r4, #0x0 + blt _0204A864 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + blt _0204A864 + cmp r7, #0x0 + bge _0204A868 +_0204A864: + bl sub_02020C2C +_0204A868: + lsl r0, r6, #0x10 + str r0, [r5, #0x0] + lsl r0, r4, #0x10 + str r0, [r5, #0x4] + ldr r0, [sp, #0x0] + lsl r0, r0, #0x10 + str r0, [r5, #0x8] + lsl r0, r7, #0x10 + str r0, [r5, #0xc] + pop {r3-r7, pc} + + thumb_func_start sub_0204A87C +sub_0204A87C: ; 0x0204A87C + push {r4-r5, lr} + sub sp, #0xc + add r3, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + add r0, sp, #0x0 + add r1, r3, #0x0 + bl sub_021E7EA0 + ldr r1, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r2, [sp, #0x8] + add r0, r1, r0 + str r0, [sp, #0x0] + ldr r1, [r4, #0x8] + add r2, r2, r1 + str r2, [sp, #0x8] + ldr r1, [r5, #0x0] + cmp r1, r0 + bgt _0204A8BC + ldr r1, [r5, #0x8] + cmp r0, r1 + bgt _0204A8BC + ldr r0, [r5, #0x4] + cmp r0, r2 + bgt _0204A8BC + ldr r0, [r5, #0xc] + cmp r2, r0 + bgt _0204A8BC + add sp, #0xc + mov r0, #0x1 + pop {r4-r5, pc} +_0204A8BC: + mov r0, #0x0 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_0204A8C4 +sub_0204A8C4: ; 0x0204A8C4 + push {r4-r7, lr} + sub sp, #0x1c + str r0, [sp, #0x0] + mov r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x4] + str r0, [sp, #0x8] +_0204A8D4: + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [r1, #0x24] + add r2, sp, #0xc + bl sub_021EF604 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x8] + ldr r0, [r0, #0x24] + bl sub_021EF824 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x28] + bl sub_020344FC + add r1, r0, #0x0 + add r0, r4, #0x0 + add r2, sp, #0x10 + bl sub_0204AAD4 + mov r5, #0x0 +_0204A900: + ldr r0, [sp, #0xc] + add r1, r5, #0x0 + bl sub_021E7ED0 + add r1, r7, #0x0 + add r2, sp, #0x10 + add r4, r0, #0x0 + bl sub_0204A87C + cmp r0, #0x0 + beq _0204A92E + add r0, r4, #0x0 + bl sub_021E7EC4 + cmp r0, r6 + bne _0204A92E + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _0204A928 + str r4, [r0, #0x0] +_0204A928: + add sp, #0x1c + mov r0, #0x1 + pop {r4-r7, pc} +_0204A92E: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x20 + blo _0204A900 + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + cmp r0, #0x4 + blo _0204A8D4 + mov r0, #0x0 + add sp, #0x1c + pop {r4-r7, pc} + + thumb_func_start sub_0204A94C +sub_0204A94C: ; 0x0204A94C + push {r4-r7, lr} + sub sp, #0x1c + str r0, [sp, #0x0] + mov r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + str r3, [sp, #0x4] + str r0, [sp, #0x8] +_0204A95C: + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [r1, #0x24] + add r2, sp, #0xc + bl sub_021EF604 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x8] + ldr r0, [r0, #0x24] + bl sub_021EF824 + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x28] + bl sub_020344FC + add r1, r0, #0x0 + add r0, r6, #0x0 + add r2, sp, #0x10 + bl sub_0204AAD4 + mov r6, #0x0 +_0204A988: + ldr r0, [sp, #0xc] + add r1, r6, #0x0 + bl sub_021E7ED0 + ldr r1, [sp, #0x4] + add r2, sp, #0x10 + add r7, r0, #0x0 + bl sub_0204A87C + cmp r0, #0x0 + beq _0204A9D2 + add r0, r7, #0x0 + bl sub_021E7EC4 + mov r1, #0x0 + cmp r4, #0x0 + bls _0204A9D2 +_0204A9AA: + lsl r2, r1, #0x2 + ldr r2, [r5, r2] + cmp r0, r2 + bne _0204A9C8 + ldr r1, [sp, #0x30] + cmp r1, #0x0 + beq _0204A9BA + str r7, [r1, #0x0] +_0204A9BA: + ldr r1, [sp, #0x34] + cmp r1, #0x0 + beq _0204A9C2 + str r0, [r1, #0x0] +_0204A9C2: + add sp, #0x1c + mov r0, #0x1 + pop {r4-r7, pc} +_0204A9C8: + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, r4 + blo _0204A9AA +_0204A9D2: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x20 + blo _0204A988 + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + cmp r0, #0x4 + blo _0204A95C + mov r0, #0x0 + add sp, #0x1c + pop {r4-r7, pc} + + thumb_func_start sub_0204A9F0 +sub_0204A9F0: ; 0x0204A9F0 + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x0] + add r5, r1, #0x0 + str r2, [sp, #0x4] + str r3, [sp, #0x8] + mov r7, #0x0 +_0204A9FE: + ldr r1, [sp, #0x0] + add r0, r7, #0x0 + ldr r1, [r1, #0x24] + add r2, sp, #0xc + bl sub_021EF604 + mov r4, #0x0 +_0204AA0C: + ldr r0, [sp, #0xc] + add r1, r4, #0x0 + bl sub_021E7ED0 + add r6, r0, #0x0 + bl sub_021E7EC4 + cmp r0, r5 + bne _0204AA40 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _0204AA26 + str r6, [r0, #0x0] +_0204AA26: + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _0204AA3A + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, #0x24] + bl sub_021EF824 + ldr r1, [sp, #0x8] + str r0, [r1, #0x0] +_0204AA3A: + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204AA40: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x20 + blo _0204AA0C + add r0, r7, #0x1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + cmp r7, #0x4 + blo _0204A9FE + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204AA5C +sub_0204AA5C: ; 0x0204AA5C + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x0] + mov r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + str r3, [sp, #0x4] + str r0, [sp, #0x8] +_0204AA6C: + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [r1, #0x24] + add r2, sp, #0xc + bl sub_021EF604 + mov r6, #0x0 +_0204AA7A: + ldr r0, [sp, #0xc] + add r1, r6, #0x0 + bl sub_021E7ED0 + add r7, r0, #0x0 + bl sub_021E7EC4 + mov r1, #0x0 + cmp r4, #0x0 + bls _0204AAB6 +_0204AA8E: + lsl r2, r1, #0x2 + ldr r2, [r5, r2] + cmp r0, r2 + bne _0204AAAC + ldr r1, [sp, #0x4] + cmp r1, #0x0 + beq _0204AA9E + str r7, [r1, #0x0] +_0204AA9E: + ldr r1, [sp, #0x28] + cmp r1, #0x0 + beq _0204AAA6 + str r0, [r1, #0x0] +_0204AAA6: + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204AAAC: + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, r4 + blo _0204AA8E +_0204AAB6: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x20 + blo _0204AA7A + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + cmp r0, #0x4 + blo _0204AA6C + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start sub_0204AAD4 +sub_0204AAD4: ; 0x0204AAD4 + push {r4-r6, lr} + add r4, r2, #0x0 + mov r2, #0x1 + lsl r2, r2, #0x14 + str r2, [r4, #0x0] + add r5, r0, #0x0 + add r6, r1, #0x0 + str r2, [r4, #0x8] + blx sub_020EBC80 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + ldr r0, [r4, #0x0] + lsl r1, r1, #0x15 + add r0, r0, r1 + str r0, [r4, #0x0] + add r0, r5, #0x0 + add r1, r6, #0x0 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + ldr r1, [r4, #0x8] + lsl r0, r0, #0x15 + add r0, r1, r0 + str r0, [r4, #0x8] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204AB0C +sub_0204AB0C: ; 0x0204AB0C + push {r3, lr} + bl sub_0200541C + bl sub_02004810 + mov r0, #0x0 + bl sub_0200415C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204AB20 +sub_0204AB20: ; 0x0204AB20 + push {r4, lr} + ldr r0, [r0, #0xc] + add r4, r1, #0x0 + bl sub_02034E30 + bl sub_02034DE8 + strh r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0204AB34 +sub_0204AB34: ; 0x0204AB34 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_02034E30 + bl sub_02034DE8 + ldrh r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start sub_0204AB44 +sub_0204AB44: ; 0x0204AB44 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_02034E30 + bl sub_02034DE8 + mov r1, #0x0 + strh r1, [r0, #0x0] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204AB58 +sub_0204AB58: ; 0x0204AB58 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x38] + add r4, r1, #0x0 + bl sub_020553C4 + cmp r0, #0x2 + bne _0204AB6C + ldr r0, _0204ABA0 ; =0x0000047F + pop {r3-r5, pc} +_0204AB6C: + add r0, r5, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + bl sub_0205E128 + cmp r0, #0x1 + bne _0204AB7E + ldr r0, _0204ABA4 ; =0x0000047E + pop {r3-r5, pc} +_0204AB7E: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0204ABA8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204AB34 + cmp r0, #0x0 + beq _0204AB9A + add r0, r5, #0x0 + bl sub_0204AB34 + add r4, r0, #0x0 +_0204AB9A: + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_0204ABA0: .word 0x0000047F +_0204ABA4: .word 0x0000047E + + thumb_func_start sub_0204ABA8 +sub_0204ABA8: ; 0x0204ABA8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0201277C + cmp r0, #0x0 + bne _0204ABBE + add r0, r4, #0x0 + bl sub_020347B0 + b _0204ABC4 +_0204ABBE: + add r0, r4, #0x0 + bl sub_020347C4 +_0204ABC4: + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020462AC + add r1, r4, #0x0 + bl sub_0205EF20 + cmp r0, #0x0 + beq _0204ABD8 + add r6, r0, #0x0 +_0204ABD8: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0204ABDC +sub_0204ABDC: ; 0x0204ABDC + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + ldr r0, [r5, #0x38] + add r4, r1, #0x0 + add r7, r2, #0x0 + bl sub_020553C4 + add r6, r0, #0x0 + bl sub_02004104 + cmp r0, #0x1 + bne _0204ABFC + add sp, #0x14 + mov r0, #0x0 + pop {r4-r7, pc} +_0204ABFC: + add r0, r5, #0x0 + bl sub_02004124 + cmp r4, r0 + bne _0204AC0C + add sp, #0x14 + mov r0, #0x0 + pop {r4-r7, pc} +_0204AC0C: + bl sub_02004810 + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, sp, #0x10 + add r3, sp, #0xc + bl sub_0204ACCC + cmp r6, #0x1 + beq _0204AC22 + bne _0204AC3A +_0204AC22: + mov r0, #0x1e + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + mov r0, #0x4 + add r1, r4, #0x0 + bl sub_02004E08 + b _0204AC4C +_0204AC3A: + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + mov r0, #0x4 + add r1, r4, #0x0 + bl sub_02004DCC +_0204AC4C: + mov r0, #0x1 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0204AC54 +sub_0204AC54: ; 0x0204AC54 + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02004104 + cmp r0, #0x1 + bne _0204AC6C + add sp, #0x10 + mov r0, #0x0 + pop {r4-r6, pc} +_0204AC6C: + add r0, r5, #0x0 + bl sub_02004124 + cmp r4, r0 + bne _0204AC7C + add sp, #0x10 + mov r0, #0x0 + pop {r4-r6, pc} +_0204AC7C: + bl sub_02004810 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, sp, #0xc + add r3, sp, #0x8 + bl sub_0204ACCC + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x8] + mov r0, #0x4 + add r1, r4, #0x0 + bl sub_02004DCC + mov r0, #0x1 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204ACA8 +sub_0204ACA8: ; 0x0204ACA8 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + bl sub_0204AB58 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204AD44 + bl sub_0200414C + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_0204AC54 + pop {r3-r7, pc} + + thumb_func_start sub_0204ACCC +sub_0204ACCC: ; 0x0204ACCC + cmp r1, #0x3 + bhi _0204AD0A + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r2, #0 + lsl r2, r3, #0 + lsl r4, r4, #0 + mov r0, #0x1e + str r0, [r2, #0x0] + mov r0, #0x0 + str r0, [r3, #0x0] + bx lr +_0204ACEE: + .byte 0x3C, 0x20 + .byte 0x10, 0x60, 0x00, 0x20, 0x18, 0x60, 0x70, 0x47, 0x3C, 0x20, 0x10, 0x60, 0x0F, 0x20, 0x18, 0x60 + .byte 0x70, 0x47, 0x3C, 0x20, 0x10, 0x60, 0x00, 0x20, 0x18, 0x60 +_0204AD0A: + bx lr + + thumb_func_start sub_0204AD0C +sub_0204AD0C: ; 0x0204AD0C + push {r3-r5, lr} + mov r1, #0x1 + bl sub_0206AC74 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r0, _0204AD38 ; =0x0000044D + ldr r2, _0204AD3C ; =0x020F4718 + mov r4, #0x0 +_0204AD1E: + lsl r3, r4, #0x2 + ldrh r1, [r2, r3] + cmp r5, r1 + bne _0204AD2C + ldr r0, _0204AD40 ; =0x020F471A + ldrh r0, [r0, r3] + pop {r3-r5, pc} +_0204AD2C: + add r1, r4, #0x1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r4, #0x4e + blo _0204AD1E + pop {r3-r5, pc} + .balign 4 +_0204AD38: .word 0x0000044D +_0204AD3C: .word 0x020F4718 +_0204AD40: .word 0x020F471A + + thumb_func_start sub_0204AD44 +sub_0204AD44: ; 0x0204AD44 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0201277C + cmp r0, #0x0 + bne _0204AD58 + add r0, r4, #0x0 + bl sub_020347B0 + pop {r4, pc} +_0204AD58: + add r0, r4, #0x0 + bl sub_020347C4 + pop {r4, pc} + + thumb_func_start sub_0204AD60 +sub_0204AD60: ; 0x0204AD60 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl sub_02004104 + cmp r0, #0x1 + beq _0204AD88 + bl sub_02004124 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0204ABA8 + cmp r4, r0 + beq _0204AD88 + mov r0, #0x0 + mov r1, #0x28 + bl sub_020053CC +_0204AD88: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204AD8C +sub_0204AD8C: ; 0x0204AD8C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02004104 + cmp r0, #0x1 + beq _0204ADB8 + mov r0, #0x0 + bl sub_0200415C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0204ABA8 + add r4, r0, #0x0 + bl sub_0200414C + mov r0, #0x4 + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_0200433C +_0204ADB8: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204ADBC +sub_0204ADBC: ; 0x0204ADBC + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0204AB58 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0204ABA8 + bl sub_0200414C + mov r0, #0x4 + add r1, r6, #0x0 + mov r2, #0x1 + bl sub_0200433C + pop {r4-r6, pc} + + thumb_func_start sub_0204ADE0 +sub_0204ADE0: ; 0x0204ADE0 + mov r3, #0x0 + add r2, r3, #0x0 +_0204ADE4: + lsl r1, r3, #0x2 + add r1, r0, r1 + strb r2, [r1, #0x6] + strb r2, [r1, #0x7] + strb r2, [r1, #0x8] + strb r2, [r1, #0x9] + add r1, r3, #0x1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0x6 + blo _0204ADE4 + str r2, [r0, #0x0] + strb r2, [r0, #0x4] + strb r2, [r0, #0x5] + bx lr + .balign 4 + + thumb_func_start sub_0204AE04 +sub_0204AE04: ; 0x0204AE04 + push {r4, lr} + add r4, r0, #0x0 + asr r0, r1, #0x4 + lsr r0, r0, #0x1b + add r0, r1, r0 + asr r1, r2, #0x4 + lsr r1, r1, #0x1b + add r1, r2, r1 + lsl r0, r0, #0x13 + lsl r1, r1, #0x13 + ldrb r2, [r4, #0x4] + lsr r0, r0, #0x18 + lsr r1, r1, #0x18 + cmp r0, r2 + bne _0204AE28 + ldrb r2, [r4, #0x5] + cmp r1, r2 + beq _0204AE58 +_0204AE28: + ldr r2, [r4, #0x0] + lsl r2, r2, #0x2 + add r2, r4, r2 + strb r0, [r2, #0x6] + ldr r0, [r4, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + strb r1, [r0, #0x7] + ldr r0, [r4, #0x0] + mov r1, #0xff + lsl r0, r0, #0x2 + add r0, r4, r0 + strb r1, [r0, #0x8] + ldr r0, [r4, #0x0] + mov r1, #0x1 + lsl r0, r0, #0x2 + add r0, r4, r0 + strb r1, [r0, #0x9] + ldr r0, [r4, #0x0] + mov r1, #0x6 + add r0, r0, #0x1 + blx sub_020EBC80 + str r1, [r4, #0x0] +_0204AE58: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0204AE5C +sub_0204AE5C: ; 0x0204AE5C + push {r4, lr} + add r4, r0, #0x0 + lsl r0, r1, #0x18 + lsl r1, r2, #0x18 + ldrb r2, [r4, #0x4] + lsr r0, r0, #0x18 + lsr r1, r1, #0x18 + cmp r0, r2 + bne _0204AE74 + ldrb r2, [r4, #0x5] + cmp r1, r2 + beq _0204AEA6 +_0204AE74: + ldr r2, [r4, #0x0] + lsl r2, r2, #0x2 + add r2, r4, r2 + strb r0, [r2, #0x6] + ldr r2, [r4, #0x0] + lsl r2, r2, #0x2 + add r2, r4, r2 + strb r1, [r2, #0x7] + ldr r2, [r4, #0x0] + lsl r2, r2, #0x2 + add r2, r4, r2 + strb r3, [r2, #0x8] + ldr r2, [r4, #0x0] + mov r3, #0x1 + lsl r2, r2, #0x2 + add r2, r4, r2 + strb r3, [r2, #0x9] + strb r0, [r4, #0x4] + strb r1, [r4, #0x5] + ldr r0, [r4, #0x0] + mov r1, #0x6 + add r0, r0, #0x1 + blx sub_020EBC80 + str r1, [r4, #0x0] +_0204AEA6: + pop {r4, pc} + + thumb_func_start sub_0204AEA8 +sub_0204AEA8: ; 0x0204AEA8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _0204AEC6 + cmp r1, #0x1 + beq _0204AEE6 + b _0204AEF4 +_0204AEC6: + ldr r0, [r4, #0x8] + add r1, r5, #0x0 + add r2, r4, #0x4 + bl sub_021E3444 + ldr r1, [r4, #0xc] + mov r0, #0x5 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + mov r2, #0x1 + bl sub_0200433C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204AEF4 +_0204AEE6: + ldr r1, [r4, #0x4] + cmp r1, #0x1 + bne _0204AEF4 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_0204AEF4: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0204AEF8 +sub_0204AEF8: ; 0x0204AEF8 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0xb + mov r1, #0x10 + add r4, r2, #0x0 + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + str r0, [r2, #0x4] + str r5, [r2, #0x8] + ldr r1, _0204AF20 ; =sub_0204AEA8 + add r0, r6, #0x0 + str r4, [r2, #0xc] + bl sub_0204640C + pop {r4-r6, pc} + nop +_0204AF20: .word sub_0204AEA8 + 1 + + thumb_func_start sub_0204AF24 +sub_0204AF24: ; 0x0204AF24 + push {r3, lr} + bl sub_02046528 + bl sub_0203739C + cmp r0, #0x0 + bne _0204AF36 + mov r0, #0x1 + pop {r3, pc} +_0204AF36: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204AF3C +sub_0204AF3C: ; 0x0204AF3C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + bl sub_0203739C + cmp r0, #0x0 + bne _0204AF54 + bl sub_02020C2C + pop {r3-r5, pc} +_0204AF54: + add r0, r4, #0x0 + bl sub_02037394 + ldr r1, _0204AF68 ; =sub_0204AF24 + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_0204640C + pop {r3-r5, pc} + nop +_0204AF68: .word sub_0204AF24 + 1 + + thumb_func_start sub_0204AF6C +sub_0204AF6C: ; 0x0204AF6C + push {r3, lr} + bl sub_02046528 + bl sub_020464A4 + cmp r0, #0x0 + beq _0204AF7E + mov r0, #0x1 + pop {r3, pc} +_0204AF7E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204AF84 +sub_0204AF84: ; 0x0204AF84 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + bl sub_0203739C + cmp r0, #0x0 + beq _0204AF9C + bl sub_02020C2C + pop {r3-r5, pc} +_0204AF9C: + add r0, r4, #0x0 + bl sub_0204649C + ldr r1, _0204AFB0 ; =sub_0204AF6C + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_0204640C + pop {r3-r5, pc} + nop +_0204AFB0: .word sub_0204AF6C + 1 + + thumb_func_start sub_0204AFB4 +sub_0204AFB4: ; 0x0204AFB4 + push {r3, lr} + bl sub_0200E308 + cmp r0, #0x0 + beq _0204AFC2 + mov r0, #0x1 + pop {r3, pc} +_0204AFC2: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204AFC8 +sub_0204AFC8: ; 0x0204AFC8 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + bl sub_02046528 + bl sub_0203739C + cmp r0, #0x0 + bne _0204AFE2 + bl sub_02020C2C + add sp, #0xc + pop {r3-r4, pc} +_0204AFE2: + mov r0, #0x6 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + bl sub_0200E1D0 + ldr r1, _0204B008 ; =sub_0204AFB4 + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_0204640C + add sp, #0xc + pop {r3-r4, pc} + .balign 4 +_0204B008: .word sub_0204AFB4 + 1 + + thumb_func_start sub_0204B00C +sub_0204B00C: ; 0x0204B00C + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + bl sub_02046528 + bl sub_0203739C + cmp r0, #0x0 + bne _0204B026 + bl sub_02020C2C + add sp, #0xc + pop {r3-r4, pc} +_0204B026: + mov r0, #0x6 + str r0, [sp, #0x0] + mov r1, #0x1 + str r1, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + mov r0, #0x0 + add r2, r1, #0x0 + add r3, r0, #0x0 + bl sub_0200E1D0 + ldr r1, _0204B04C ; =sub_0204AFB4 + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_0204640C + add sp, #0xc + pop {r3-r4, pc} + nop +_0204B04C: .word sub_0204AFB4 + 1 + + thumb_func_start sub_0204B050 +sub_0204B050: ; 0x0204B050 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0204B06A + cmp r0, #0x1 + beq _0204B078 + cmp r0, #0x2 + beq _0204B086 + b _0204B08A +_0204B06A: + add r0, r5, #0x0 + bl sub_0204AFC8 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204B08A +_0204B078: + add r0, r5, #0x0 + bl sub_0204AF3C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204B08A +_0204B086: + mov r0, #0x1 + pop {r3-r5, pc} +_0204B08A: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204B090 +sub_0204B090: ; 0x0204B090 + ldr r3, _0204B098 ; =sub_0204640C + ldr r1, _0204B09C ; =sub_0204B050 + mov r2, #0x0 + bx r3 + .balign 4 +_0204B098: .word sub_0204640C + 1 +_0204B09C: .word sub_0204B050 + 1 + + thumb_func_start sub_0204B0A0 +sub_0204B0A0: ; 0x0204B0A0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046530 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _0204B0C0 + cmp r1, #0x1 + beq _0204B0CE + cmp r1, #0x2 + beq _0204B0E0 + b _0204B0E4 +_0204B0C0: + add r0, r5, #0x0 + bl sub_0204AF84 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204B0E4 +_0204B0CE: + bl sub_021E331C + add r0, r5, #0x0 + bl sub_0204B00C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204B0E4 +_0204B0E0: + mov r0, #0x1 + pop {r3-r5, pc} +_0204B0E4: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0204B0E8 +sub_0204B0E8: ; 0x0204B0E8 + ldr r3, _0204B0F0 ; =sub_0204640C + ldr r1, _0204B0F4 ; =sub_0204B0A0 + mov r2, #0x0 + bx r3 + .balign 4 +_0204B0F0: .word sub_0204640C + 1 +_0204B0F4: .word sub_0204B0A0 + 1 + + thumb_func_start sub_0204B0F8 +sub_0204B0F8: ; 0x0204B0F8 + push {r4-r5, lr} + sub sp, #0x1c + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02023794 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0204B12A + add r0, sp, #0xc + add r1, sp, #0x0 + bl sub_0201265C + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, sp, #0xc + bl sub_0204B130 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, sp, #0xc + add r3, sp, #0x0 + bl sub_0204B158 +_0204B12A: + add sp, #0x1c + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_0204B130 +sub_0204B130: ; 0x0204B130 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r0, r2, #0x0 + blx sub_020D660C + ldr r1, [r5, #0x20] + add r4, r0, #0x0 + cmp r4, r1 + bhs _0204B148 + str r4, [r5, #0x20] + pop {r4-r6, pc} +_0204B148: + cmp r4, r1 + bls _0204B156 + add r0, r6, #0x0 + sub r1, r4, r1 + bl sub_0204B1DC + str r4, [r5, #0x20] +_0204B156: + pop {r4-r6, pc} + + thumb_func_start sub_0204B158 +sub_0204B158: ; 0x0204B158 + push {r4-r7, lr} + sub sp, #0xc + add r4, r2, #0x0 + str r0, [sp, #0x0] + add r6, r3, #0x0 + add r5, r1, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + blx sub_020D6578 + str r1, [sp, #0x8] + add r1, r5, #0x0 + add r7, r0, #0x0 + add r0, r5, #0x4 + add r1, #0x14 + blx sub_020D6578 + add r2, r1, #0x0 + sub r1, r7, r0 + ldr r1, [sp, #0x8] + sbc r1, r2 + bge _0204B19C + add r2, r5, #0x4 + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r6!, {r0-r1} + add r5, #0x14 + stmia r5!, {r0-r1} + ldr r0, [r6, #0x0] + add sp, #0xc + str r0, [r5, #0x0] + pop {r4-r7, pc} +_0204B19C: + ldr r1, [sp, #0x8] + sub r0, r7, r0 + sbc r1, r2 + mov r2, #0x3c + mov r3, #0x0 + str r1, [sp, #0x8] + blx sub_020EBA38 + add r7, r0, #0x0 + cmp r7, #0x0 + ble _0204B1D8 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02023884 + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_0204B270 + add r2, r5, #0x4 + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r6!, {r0-r1} + add r5, #0x14 + stmia r5!, {r0-r1} + ldr r0, [r6, #0x0] + str r0, [r5, #0x0] +_0204B1D8: + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0204B1DC +sub_0204B1DC: ; 0x0204B1DC + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + bl sub_020377AC + add r1, r4, #0x0 + bl sub_02025A60 + add r0, r5, #0x0 + bl sub_0203959C + ldr r0, [r5, #0xc] + add r1, r4, #0x0 + bl sub_02060344 + ldr r0, [r5, #0xc] + bl sub_0202881C + add r1, r4, #0x0 + bl sub_02028754 + ldr r0, [r5, #0xc] + bl sub_0202A9B0 + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0202881C + bl sub_020287A4 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl sub_0202A988 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + add r1, r4, #0x0 + bl sub_02069D50 + ldr r0, [r5, #0xc] + bl sub_020462AC + add r6, r0, #0x0 + bl sub_0205F594 + cmp r0, r4 + ble _0204B244 + sub r0, r0, r4 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + b _0204B246 +_0204B244: + mov r1, #0x0 +_0204B246: + add r0, r6, #0x0 + bl sub_0205F5A4 + lsl r1, r4, #0x10 + ldr r0, [r5, #0xc] + lsr r1, r1, #0x10 + bl sub_0205F618 + ldr r0, [r5, #0xc] + bl sub_0205F668 + ldr r0, [r5, #0xc] + bl sub_0206007C + ldr r0, [r5, #0xc] + bl sub_02029AFC + bl sub_02029C08 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204B270 +sub_0204B270: ; 0x0204B270 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_0204B3D0 + ldr r0, [r5, #0xc] + add r1, r4, #0x0 + bl sub_0202A9D0 + add r0, r5, #0x0 + bl sub_0204B33C + add r2, r0, #0x0 + ldr r0, [r5, #0xc] + add r1, r4, #0x0 + bl sub_02025B60 + ldr r0, [r5, #0xc] + bl sub_02022504 + ldr r2, [r6, #0x4] + add r1, r4, #0x0 + bl sub_0202B3C4 + pop {r4-r6, pc} + + thumb_func_start sub_0204B2A4 +sub_0204B2A4: ; 0x0204B2A4 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_02023794 + ldr r0, [r0, #0x14] + bl sub_020127A8 + pop {r3, pc} + + thumb_func_start sub_0204B2B4 +sub_0204B2B4: ; 0x0204B2B4 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_02023794 + ldr r0, [r0, #0x8] + pop {r3, pc} + + thumb_func_start sub_0204B2C0 +sub_0204B2C0: ; 0x0204B2C0 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_02023794 + ldr r0, [r0, #0xc] + pop {r3, pc} + + thumb_func_start sub_0204B2CC +sub_0204B2CC: ; 0x0204B2CC + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_02023794 + ldr r0, [r0, #0x10] + pop {r3, pc} + + thumb_func_start sub_0204B2D8 +sub_0204B2D8: ; 0x0204B2D8 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_02023794 + ldr r0, [r0, #0x14] + pop {r3, pc} + + thumb_func_start sub_0204B2E4 +sub_0204B2E4: ; 0x0204B2E4 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_02023794 + ldr r0, [r0, #0x18] + pop {r3, pc} + + thumb_func_start sub_0204B2F0 +sub_0204B2F0: ; 0x0204B2F0 + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_02023794 + add r3, r0, #0x0 + ldr r2, [r3, #0x24] + ldr r3, [r3, #0x28] + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_020D6320 + pop {r3-r5, pc} + + thumb_func_start sub_0204B30C +sub_0204B30C: ; 0x0204B30C + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_02023794 + add r3, r0, #0x0 + ldr r2, [r3, #0x2c] + ldr r3, [r3, #0x30] + add r0, r5, #0x0 + add r1, r4, #0x0 + blx sub_020D6320 + pop {r3-r5, pc} + + thumb_func_start sub_0204B328 +sub_0204B328: ; 0x0204B328 + push {r4, lr} + ldr r0, [r0, #0xc] + bl sub_02023794 + add r4, r0, #0x0 + bl sub_020126FC + str r0, [r4, #0x2c] + str r1, [r4, #0x30] + pop {r4, pc} + + thumb_func_start sub_0204B33C +sub_0204B33C: ; 0x0204B33C + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_02023794 + bl sub_02023874 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204B34C +sub_0204B34C: ; 0x0204B34C + cmp r0, #0x0 + bne _0204B354 + mov r0, #0x0 + bx lr +_0204B354: + add r0, #0x94 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + + thumb_func_start sub_0204B35C +sub_0204B35C: ; 0x0204B35C + cmp r0, #0x0 + bne _0204B364 + mov r0, #0x0 + bx lr +_0204B364: + sub r0, #0x94 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + + thumb_func_start sub_0204B36C +sub_0204B36C: ; 0x0204B36C + cmp r0, #0x0 + bne _0204B374 + mov r0, #0x0 + bx lr +_0204B374: + add r0, #0x5e + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + + thumb_func_start sub_0204B37C +sub_0204B37C: ; 0x0204B37C + cmp r0, #0x0 + bne _0204B384 + mov r0, #0x0 + bx lr +_0204B384: + sub r0, #0x5e + bx lr + + thumb_func_start sub_0204B388 +sub_0204B388: ; 0x0204B388 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x64 + bl sub_02016998 + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x64 + blx sub_020CE34C + str r6, [r4, #0x0] + add r0, r6, #0x0 + bl sub_02025128 + str r0, [r4, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0204B410 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204B3B8 +sub_0204B3B8: ; 0x0204B3B8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204B444 + ldr r0, [r4, #0x4] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0204B3D0 +sub_0204B3D0: ; 0x0204B3D0 + push {r4-r6, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + add r6, r1, #0x0 + cmp r0, #0x0 + bne _0204B3FA + mov r0, #0xb + bl sub_02025128 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_02024ECC + add r1, r5, #0x0 + add r2, r6, #0x0 + bl sub_020253E0 + add r0, r5, #0x0 + bl sub_02016A18 + pop {r4-r6, pc} +_0204B3FA: + ldr r0, [r0, #0x18] + ldr r5, [r0, #0x4] + ldr r0, [r4, #0xc] + bl sub_02024ECC + add r1, r5, #0x0 + add r2, r6, #0x0 + bl sub_020253E0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204B410 +sub_0204B410: ; 0x0204B410 + push {r3-r5, lr} + ldr r4, [r0, #0x3c] + add r5, r1, #0x0 + add r0, r4, #0x0 + mov r1, #0x11 + bl sub_021E4C54 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02016998 + str r0, [r5, #0x60] + ldr r2, [r5, #0x60] + add r0, r4, #0x0 + mov r1, #0x11 + bl sub_021E4C60 + add r0, r5, #0x0 + add r1, r5, #0x0 + add r5, #0x60 + add r0, #0x8 + add r1, #0x5c + add r2, r5, #0x0 + bl sub_0201B234 + pop {r3-r5, pc} + + thumb_func_start sub_0204B444 +sub_0204B444: ; 0x0204B444 + ldr r3, _0204B44C ; =0x021E4C01 + ldr r0, [r0, #0x60] + bx r3 + nop +_0204B44C: .word 0x021E4C01 + + thumb_func_start sub_0204B450 +sub_0204B450: ; 0x0204B450 + push {r3-r5, lr} + sub sp, #0x30 + ldr r3, _0204B48C ; =0x020F4860 + add r5, r0, #0x0 + add r4, r1, #0x0 + ldmia r3!, {r0-r1} + add r2, sp, #0x24 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + add r0, sp, #0x0 + blx sub_020C3F14 + ldr r0, [r5, #0x4] + add r1, r4, #0x0 + ldr r0, [r0, #0x18] + add r2, sp, #0x0 + ldr r0, [r0, #0x5c] + add r3, sp, #0x24 + bl sub_0201B6D0 + cmp r0, #0x0 + beq _0204B484 + add sp, #0x30 + mov r0, #0x1 + pop {r3-r5, pc} +_0204B484: + mov r0, #0x0 + add sp, #0x30 + pop {r3-r5, pc} + nop +_0204B48C: .word 0x020F4860 + + thumb_func_start sub_0204B490 +sub_0204B490: ; 0x0204B490 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, [r5, #0xc] + bl sub_02024ECC + add r4, r0, #0x0 + ldr r0, [r5, #0x34] + add r1, sp, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x1 + bne _0204B4F8 + mov r6, #0x0 + mov r7, #0x1 +_0204B4B6: + ldr r0, [sp, #0x0] + bl sub_02058458 + bl sub_0205C334 + cmp r0, #0x1 + bne _0204B4E8 + ldr r0, [sp, #0x0] + bl sub_02058B7C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204B450 + cmp r0, #0x0 + beq _0204B4E8 + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl sub_02058510 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r2, r7, #0x0 + bl sub_020252C4 +_0204B4E8: + ldr r0, [r5, #0x34] + add r1, sp, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x1 + beq _0204B4B6 +_0204B4F8: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0204B4FC +sub_0204B4FC: ; 0x0204B4FC + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r7, r1, #0x0 + bl sub_02024ECC + add r4, r0, #0x0 + add r0, r7, #0x0 + mov r1, #0x0 + bl sub_02058510 + str r0, [sp, #0x0] + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02025244 + str r0, [sp, #0x4] + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + bl sub_020252E8 + add r6, r0, #0x0 + ldr r0, [sp, #0x4] + bl sub_0204B34C + str r0, [sp, #0x8] + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02025268 + add r2, r0, #0x0 + lsl r2, r2, #0x18 + lsl r3, r6, #0x10 + ldr r1, [sp, #0x8] + add r0, r5, #0x0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x10 + bl sub_020616A4 + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + bl sub_020252F4 + add r0, r7, #0x0 + bl sub_0205C374 + ldr r0, [r5, #0xc] + bl sub_0206F158 + add r4, r0, #0x0 + ldr r0, [sp, #0x4] + bl sub_0204B34C + lsl r2, r6, #0x10 + add r1, r0, #0x0 + add r0, r4, #0x0 + lsr r2, r2, #0x10 + mov r3, #0x4 + bl sub_0206ED38 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0204B57C +sub_0204B57C: ; 0x0204B57C + push {r4-r6, lr} + ldr r0, [r0, #0xc] + add r4, r1, #0x0 + add r5, r2, #0x0 + bl sub_02024ECC + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058510 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204B37C + add r2, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_020252DC + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204B5A8 +sub_0204B5A8: ; 0x0204B5A8 + push {r3-r7, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_02024ECC + add r7, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204B35C + ldr r2, [r4, #0x4] + add r3, r0, #0x0 + ldr r2, [r2, #0x18] + add r0, r7, #0x0 + ldr r2, [r2, #0x4] + add r1, r5, #0x0 + bl sub_02025274 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204B5DC +sub_0204B5DC: ; 0x0204B5DC + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024ECC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_020252AC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204B5FC +sub_0204B5FC: ; 0x0204B5FC + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024ECC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02025238 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204B61C +sub_0204B61C: ; 0x0204B61C + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024ECC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02025244 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204B63C +sub_0204B63C: ; 0x0204B63C + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024ECC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02025244 + bl sub_0204B34C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204B660 +sub_0204B660: ; 0x0204B660 + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024ECC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_020252D0 + bl sub_0204B36C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204B684 +sub_0204B684: ; 0x0204B684 + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024ECC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0202524C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204B6A4 +sub_0204B6A4: ; 0x0204B6A4 + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024ECC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_020252E8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204B6C4 +sub_0204B6C4: ; 0x0204B6C4 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + ldr r4, _0204B708 ; =0x00000000 + beq _0204B6D8 + add r0, r5, #0x0 + bl sub_02058458 + cmp r0, #0x64 + beq _0204B6DC +_0204B6D8: + mov r0, #0x0 + pop {r4-r6, pc} +_0204B6DC: + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0204B5FC + cmp r0, #0x0 + bne _0204B6FE + mov r0, #0x1 + orr r4, r0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0204B660 + cmp r0, #0x0 + bne _0204B702 + mov r0, #0x2 + orr r4, r0 + b _0204B702 +_0204B6FE: + mov r0, #0x4 + orr r4, r0 +_0204B702: + add r0, r4, #0x0 + pop {r4-r6, pc} + nop +_0204B708: .word 0x00000000 + + thumb_func_start sub_0204B70C +sub_0204B70C: ; 0x0204B70C + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, [r7, #0x38] + add r5, r2, #0x0 + bl sub_02055320 + add r6, r0, #0x0 + ldr r0, [r7, #0x38] + bl sub_0205532C + add r4, r0, #0x0 + cmp r5, #0x2 + bne _0204B72A + sub r6, r6, #0x1 + b _0204B746 +_0204B72A: + cmp r5, #0x3 + bne _0204B732 + add r6, r6, #0x1 + b _0204B746 +_0204B732: + cmp r5, #0x0 + bne _0204B73A + sub r4, r4, #0x1 + b _0204B746 +_0204B73A: + cmp r5, #0x1 + bne _0204B742 + add r4, r4, #0x1 + b _0204B746 +_0204B742: + bl sub_02020C2C +_0204B746: + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_0204A6B4 + cmp r0, #0x0 + beq _0204B758 + mov r0, #0x1 + pop {r3-r7, pc} +_0204B758: + ldr r0, [r7, #0x34] + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_02058D74 + cmp r0, #0x0 + beq _0204B76A + mov r0, #0x1 + pop {r3-r7, pc} +_0204B76A: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204B770 +sub_0204B770: ; 0x0204B770 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x38] + add r6, r1, #0x0 + bl sub_02055320 + add r4, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_0205532C + add r2, r0, #0x0 + cmp r6, #0x2 + bne _0204B78E + sub r4, r4, #0x1 + b _0204B794 +_0204B78E: + cmp r6, #0x3 + bne _0204B794 + add r4, r4, #0x1 +_0204B794: + ldr r0, [r5, #0x34] + add r1, r4, #0x0 + sub r2, r2, #0x1 + bl sub_02058D74 + pop {r4-r6, pc} + + thumb_func_start sub_0204B7A0 +sub_0204B7A0: ; 0x0204B7A0 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x38] + add r6, r1, #0x0 + bl sub_02055320 + add r7, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_0205532C + add r4, r0, #0x0 + ldr r0, [r6, #0x4] + cmp r0, #0x0 + bne _0204B7C0 + sub r4, r4, #0x1 + b _0204B7CC +_0204B7C0: + cmp r0, #0x1 + bne _0204B7C8 + add r4, r4, #0x1 + b _0204B7CC +_0204B7C8: + bl sub_02020C2C +_0204B7CC: + ldr r0, [r5, #0x34] + add r1, r7, #0x0 + add r2, r4, #0x0 + bl sub_02058D74 + pop {r3-r7, pc} + + thumb_func_start sub_0204B7D8 +sub_0204B7D8: ; 0x0204B7D8 + push {r3, lr} + bl sub_02058458 + cmp r0, #0x64 + bne _0204B7E6 + mov r0, #0x1 + pop {r3, pc} +_0204B7E6: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204B7EC +sub_0204B7EC: ; 0x0204B7EC + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204B7A0 + add r1, r0, #0x0 + beq _0204B7FE + add r0, r4, #0x0 + bl sub_0204B5DC +_0204B7FE: + pop {r4, pc} + + thumb_func_start sub_0204B800 +sub_0204B800: ; 0x0204B800 + push {r3-r5, lr} + ldr r0, [r0, #0x38] + add r4, r2, #0x0 + add r5, r1, #0x0 + bl sub_020553A0 + add r1, r4, #0x0 + bl sub_0205AEA4 + str r0, [r5, #0xc] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204B818 +sub_0204B818: ; 0x0204B818 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x4 + bls _0204B832 + b _0204B98E +_0204B832: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r6, r4, #0 + lsl r6, r6, #0 + lsl r2, r7, #0x3 + lsl r2, r6, #0x4 + ldr r0, [r5, #0x38] + mov r1, #0x10 + bl sub_021E5FD8 + ldr r0, [r5, #0x38] + bl sub_021E5FE0 + ldr r0, [r5, #0x38] + bl sub_020553A0 + bl sub_02058914 + mov r0, #0x1 + str r0, [r4, #0x0] + b _0204B98E +_0204B866: + .byte 0x28, 0x1C, 0x21, 0x1C, 0xFF, 0xF7, 0xBF, 0xFF, 0x00, 0x20 + .byte 0xA0, 0x60, 0x02, 0x20, 0x20, 0x60, 0x47, 0x48, 0x20, 0x21, 0x40, 0x6C, 0x01, 0x42, 0x1B, 0xD0 + .byte 0x28, 0x1C, 0x02, 0x21, 0xFF, 0xF7, 0x74, 0xFF, 0x00, 0x28, 0x03, 0xD0, 0xFF, 0xF7, 0xA4, 0xFF + .byte 0x00, 0x28, 0x02, 0xD1, 0x04, 0x20, 0x20, 0x60, 0x79, 0xE0, 0x28, 0x1C, 0x21, 0x1C, 0x02, 0x22 + .byte 0xFF, 0xF7, 0x34, 0xFF, 0x00, 0x28, 0x3C, 0xD1, 0x3B, 0x4A, 0x28, 0x1C, 0x21, 0x1C, 0xFF, 0xF7 + .byte 0xA7, 0xFF, 0x03, 0x20, 0x20, 0x60, 0x6A, 0xE0, 0x10, 0x21, 0x01, 0x42, 0x1B, 0xD0, 0x28, 0x1C + .byte 0x03, 0x21, 0xFF, 0xF7, 0x55, 0xFF, 0x00, 0x28, 0x03, 0xD0, 0xFF, 0xF7, 0x85, 0xFF, 0x00, 0x28 + .byte 0x02, 0xD1, 0x04, 0x20, 0x20, 0x60, 0x5A, 0xE0, 0x28, 0x1C, 0x21, 0x1C, 0x03, 0x22, 0xFF, 0xF7 + .byte 0x15, 0xFF, 0x00, 0x28, 0x1D, 0xD1, 0x2D, 0x4A, 0x28, 0x1C, 0x21, 0x1C, 0xFF, 0xF7, 0x88, 0xFF + .byte 0x03, 0x20, 0x20, 0x60, 0x4B, 0xE0, 0x40, 0x21, 0x01, 0x42, 0x09, 0xD0, 0x61, 0x68, 0x01, 0x29 + .byte 0x06, 0xD1, 0xA8, 0x6B, 0x00, 0x21, 0x09, 0xF0, 0xFD, 0xFC, 0x04, 0x20, 0x20, 0x60, 0x3E, 0xE0 + .byte 0x80, 0x21, 0x08, 0x42, 0x05, 0xD0, 0x60, 0x68, 0x00, 0x28, 0x02, 0xD1, 0x04, 0x20, 0x20, 0x60 + .byte 0x35, 0xE0, 0xA0, 0x68, 0x40, 0x1C, 0xA0, 0x60, 0x5A, 0x28, 0x30, 0xDD, 0xA8, 0x6B, 0x61, 0x68 + .byte 0x09, 0xF0, 0xE8, 0xFC, 0x04, 0x20, 0x20, 0x60, 0x29, 0xE0, 0xE0, 0x68, 0x0F, 0xF0, 0xD8, 0xFA + .byte 0x00, 0x28, 0x24, 0xD0, 0xE0, 0x68, 0x0F, 0xF0, 0xD9, 0xFA, 0x28, 0x1C, 0x21, 0x1C, 0xFF, 0xF7 + .byte 0x27, 0xFF, 0x00, 0x28, 0x06, 0xD0, 0xFF, 0xF7, 0x3F, 0xFF, 0x00, 0x28, 0x02, 0xD0, 0x01, 0x20 + .byte 0x20, 0x60, 0x14, 0xE0, 0xA8, 0x6B, 0x61, 0x68, 0x09, 0xF0, 0xCC, 0xFC, 0x04, 0x20, 0x20, 0x60 + .byte 0x0D, 0xE0, 0xA8, 0x6B, 0x61, 0x68, 0x09, 0xF0, 0xC5, 0xFC, 0xA8, 0x6B, 0x09, 0xF0, 0x10, 0xFD + .byte 0x0C, 0xF0, 0xC2, 0xFF, 0x20, 0x1C, 0xCB, 0xF7, 0x47, 0xF8, 0x01, 0x20, 0x38, 0xBD +_0204B98E: + mov r0, #0x0 + pop {r3-r5, pc} + nop + + thumb_func_start sub_0204B994 +sub_0204B994: ; 0x0204B994 + ldr r0, _0204BC78 ; =0x28063108 + lsl r4, r3, #0x8 + ldr r0, _0204BADC ; =0x0204BE11 + lsl r7, r1, #0x8 + ldr r0, _0204BB00 ; =0xD9014285 + lsl r7, r1, #0x8 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x20 + mov r1, #0x10 + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [r4, #0x0] + str r0, [r4, #0xc] + ldr r0, [r5, #0x38] + bl sub_020552F8 + str r0, [r4, #0x4] + ldr r0, [r5, #0x10] + ldr r1, _0204B9C8 ; =sub_0204B818 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r5, pc} + .balign 4 +_0204B9C8: .word sub_0204B818 + 1 + + thumb_func_start sub_0204B9CC +sub_0204B9CC: ; 0x0204B9CC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x38] + bl sub_020553C4 + bl sub_02055648 + add r1, r0, #0x0 + ldr r0, [r4, #0x38] + bl sub_021E5FD8 + ldr r0, [r4, #0x38] + bl sub_021E5FE0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0204B9EC +sub_0204B9EC: ; 0x0204B9EC + push {r4, lr} + ldr r1, _0204BA14 ; =0x021C5A1C + add r4, r0, #0x0 + mov r0, #0x0 + mov r2, #0x4c + blx sub_020CE240 + ldr r1, _0204BA14 ; =0x021C5A1C + add r0, r4, #0x0 + bl sub_0204BB20 + ldr r0, _0204BA14 ; =0x021C5A1C + bl sub_0204BBC4 + bl sub_020126FC + ldr r2, _0204BA18 ; =0x021C5A1C + str r0, [r2, #0x40] + str r1, [r2, #0x44] + pop {r4, pc} + .balign 4 +_0204BA14: .word 0x021C5A1C +_0204BA18: .word 0x021C5A1C + + thumb_func_start sub_0204BA1C +sub_0204BA1C: ; 0x0204BA1C + push {r3-r5, lr} + ldr r0, [r0, #0xc] + ldr r4, _0204BA60 ; =0x021C5A1C + bl sub_02029FC8 + add r5, r0, #0x0 + bl sub_020126FC + add r3, r1, #0x0 + ldr r1, _0204BA64 ; =0x021C5A1C + add r2, r0, #0x0 + ldr r0, [r1, #0x40] + ldr r1, [r1, #0x44] + bl sub_020127C0 + mov r2, #0xfa + mov r3, #0x0 + lsl r2, r2, #0x2 + sub r2, r0, r2 + sbc r1, r3 + bge _0204BA50 + mov r1, #0xfa + lsl r1, r1, #0x2 + sub r0, r1, r0 + lsl r0, r0, #0x1 + b _0204BA52 +_0204BA50: + mov r0, #0x0 +_0204BA52: + str r0, [r4, #0x48] + add r0, r5, #0x0 + mov r1, #0x11 + bl sub_0202A170 + pop {r3-r5, pc} + nop +_0204BA60: .word 0x021C5A1C +_0204BA64: .word 0x021C5A1C + + thumb_func_start sub_0204BA68 +sub_0204BA68: ; 0x0204BA68 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _0204BA8C ; =0x021C5A1C + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_0204BBE8 + cmp r0, #0x1 + bne _0204BA88 + ldr r1, _0204BA8C ; =0x021C5A1C + add r0, r5, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_0204BC48 + pop {r4-r6, pc} +_0204BA88: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_0204BA8C: .word 0x021C5A1C + + thumb_func_start sub_0204BA90 +sub_0204BA90: ; 0x0204BA90 + ldr r3, _0204BA98 ; =sub_0204BD40 + ldr r1, _0204BA9C ; =0x021C5A1C + bx r3 + nop +_0204BA98: .word sub_0204BD40 + 1 +_0204BA9C: .word 0x021C5A1C + + thumb_func_start sub_0204BAA0 +sub_0204BAA0: ; 0x0204BAA0 + ldr r3, _0204BAA8 ; =sub_0204BD18 + ldr r2, _0204BAAC ; =0x021C5A1C + bx r3 + nop +_0204BAA8: .word sub_0204BD18 + 1 +_0204BAAC: .word 0x021C5A1C + + thumb_func_start sub_0204BAB0 +sub_0204BAB0: ; 0x0204BAB0 + push {r3, lr} + ldr r0, _0204BAC0 ; =0x021C5A1C + bl sub_0204BBA8 + mov r1, #0x6 + sub r0, r1, r0 + pop {r3, pc} + nop +_0204BAC0: .word 0x021C5A1C + + thumb_func_start sub_0204BAC4 +sub_0204BAC4: ; 0x0204BAC4 + ldr r3, _0204BACC ; =0x0204BD8D + ldr r0, _0204BAD0 ; =0x021C5A1C + bx r3 + nop +_0204BACC: .word 0x0204BD8D +_0204BAD0: .word 0x021C5A1C + + thumb_func_start sub_0204BAD4 +sub_0204BAD4: ; 0x0204BAD4 + ldr r3, _0204BADC ; =0x0204BE11 + ldr r0, _0204BAE0 ; =0x021C5A1C + bx r3 + nop +_0204BADC: .word 0x0204BE11 +_0204BAE0: .word 0x021C5A1C + + thumb_func_start sub_0204BAE4 +sub_0204BAE4: ; 0x0204BAE4 + ldr r3, _0204BAEC ; =sub_0204BDA0 + ldr r0, _0204BAF0 ; =0x021C5A1C + bx r3 + nop +_0204BAEC: .word sub_0204BDA0 + 1 +_0204BAF0: .word 0x021C5A1C + + thumb_func_start sub_0204BAF4 +sub_0204BAF4: ; 0x0204BAF4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + beq _0204BB04 + ldr r0, _0204BB1C ; =0x000001ED + .balign 4 +_0204BB00: .word 0xD9014285 +_0204BB04: + bl sub_02020C2C +_0204BB08: + mov r3, #0x6 + add r0, r4, #0x0 + sub r4, r5, #0x1 + str r3, [sp, #0x0] + mov r1, #0x83 + mov r2, #0x0 + mul r3, r4 + bl sub_02006548 + pop {r3-r5, pc} + .balign 4 +_0204BB1C: .word 0x000001ED + + thumb_func_start sub_0204BB20 +sub_0204BB20: ; 0x0204BB20 + push {r3-r7, lr} + sub sp, #0x10 + ldr r0, [r0, #0xc] + str r1, [sp, #0x0] + bl sub_02022528 + str r0, [sp, #0x4] + mov r0, #0x4 + bl sub_020669C0 + ldr r5, [sp, #0x0] + add r4, r0, #0x0 + mov r6, #0x0 + add r7, sp, #0x8 +_0204BB3C: + ldr r0, [sp, #0x0] + add r2, r4, #0x0 + add r1, r0, r6 + add r1, #0x30 + mov r0, #0x0 + strb r0, [r1, #0x0] + ldr r0, [sp, #0x4] + add r1, r6, #0x0 + bl sub_0202BFD8 + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + strh r0, [r5, #0x0] + add r1, sp, #0x8 + bl sub_0204BAF4 + ldrb r0, [r7, #0x0] + cmp r0, #0x0 + beq _0204BB6E + b _0204BB72 +_0204BB6E: + ldrb r0, [r7, #0x1] + add r0, r0, #0x4 +_0204BB72: + strb r0, [r5, #0x2] + ldrb r0, [r7, #0x3] + mov r1, #0xb0 + mov r2, #0x0 + strb r0, [r5, #0x3] + ldrb r0, [r7, #0x2] + strh r0, [r5, #0x4] + add r0, r4, #0x0 + bl sub_020671BC + strb r0, [r5, #0x6] + add r0, r4, #0x0 + mov r1, #0xb1 + mov r2, #0x0 + bl sub_020671BC + strb r0, [r5, #0x7] + add r6, r6, #0x1 + add r5, #0x8 + cmp r6, #0x6 + blt _0204BB3C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204BBA8 +sub_0204BBA8: ; 0x0204BBA8 + mov r3, #0x0 + add r2, r3, #0x0 +_0204BBAC: + add r1, r0, r2 + add r1, #0x30 + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204BBB8 + add r3, r3, #0x1 +_0204BBB8: + add r2, r2, #0x1 + cmp r2, #0x6 + blt _0204BBAC + add r0, r3, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0204BBC4 +sub_0204BBC4: ; 0x0204BBC4 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_0201B9EC + ldr r1, _0204BBE4 ; =0x0000199A + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0xa + blo _0204BBDE + bl sub_02020C2C +_0204BBDE: + add r0, r5, #0x5 + str r0, [r4, #0x38] + pop {r3-r5, pc} + .balign 4 +_0204BBE4: .word 0x0000199A + + thumb_func_start sub_0204BBE8 +sub_0204BBE8: ; 0x0204BBE8 + push {r3, lr} + ldr r1, [r0, #0x38] + sub r1, r1, #0x1 + str r1, [r0, #0x38] + bne _0204BBFA + bl sub_0204BBC4 + mov r0, #0x1 + pop {r3, pc} +_0204BBFA: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204BC00 +sub_0204BC00: ; 0x0204BC00 + push {r4-r6, lr} + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_0204A6E0 + add r4, r0, #0x0 + cmp r5, #0x20 + blt _0204BC14 + mov r5, #0x1 + b _0204BC16 +_0204BC14: + mov r5, #0x0 +_0204BC16: + cmp r6, #0x20 + bge _0204BC1E + mov r0, #0x0 + b _0204BC20 +_0204BC1E: + mov r0, #0x2 +_0204BC20: + add r5, r5, r0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_0205478C + cmp r0, #0x0 + beq _0204BC32 + add r0, r5, #0x1 + pop {r4-r6, pc} +_0204BC32: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_0205481C + cmp r0, #0x0 + beq _0204BC42 + add r0, r5, #0x5 + pop {r4-r6, pc} +_0204BC42: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204BC48 +sub_0204BC48: ; 0x0204BC48 + push {r3-r7, lr} + add r5, r1, #0x0 + add r1, r2, #0x0 + add r2, r3, #0x0 + mov r6, #0x0 + bl sub_0204BC00 + add r7, r0, #0x0 + bne _0204BC5E + add r0, r6, #0x0 + pop {r3-r7, pc} +_0204BC5E: + add r0, r6, #0x0 + add r1, r5, #0x0 +_0204BC62: + add r2, r5, r0 + add r2, #0x30 + ldrb r2, [r2, #0x0] + cmp r2, #0x0 + bne _0204BC76 + ldrb r2, [r1, #0x2] + cmp r7, r2 + bne _0204BC76 + ldrb r2, [r1, #0x3] + add r6, r6, r2 +_0204BC76: + add r0, r0, #0x1 + .balign 4 +_0204BC78: .word 0x28063108 +_0204BC7C: + .byte 0xF1, 0xDB, 0x00, 0x2E + .byte 0x01, 0xD1, 0x00, 0x20, 0xF8, 0xBD +_0204BC86: + add r0, r6, #0x0 + add r0, #0x14 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bne _0204BC94 + bl sub_02020C2C +_0204BC94: + add r0, r6, #0x0 + add r0, #0x14 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x1 + bhi _0204BCA4 + mov r4, #0x0 + b _0204BCD8 +_0204BCA4: + bl sub_0201B9EC + add r1, r6, #0x0 + add r1, #0x14 + add r4, r0, #0x0 + lsl r1, r1, #0x10 + ldr r0, _0204BD14 ; =0x0000FFFF + lsr r1, r1, #0x10 + blx sub_020EBC80 + add r1, r0, #0x0 + add r1, r1, #0x1 + lsl r1, r1, #0x10 + add r0, r4, #0x0 + lsr r1, r1, #0x10 + blx sub_020EBC80 + lsl r0, r0, #0x10 + add r6, #0x14 + lsr r4, r0, #0x10 + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + cmp r4, r0 + blo _0204BCD8 + bl sub_02020C2C +_0204BCD8: + cmp r4, #0x14 + bge _0204BCE0 + mov r0, #0x0 + pop {r3-r7, pc} +_0204BCE0: + sub r4, #0x14 + mov r1, #0x0 + add r0, r5, #0x0 +_0204BCE6: + add r2, r5, r1 + add r2, #0x30 + ldrb r2, [r2, #0x0] + cmp r2, #0x0 + bne _0204BD04 + ldrb r2, [r0, #0x2] + cmp r7, r2 + bne _0204BD04 + ldrb r2, [r0, #0x3] + cmp r4, r2 + bge _0204BD02 + str r1, [r5, #0x3c] + mov r0, #0x1 + pop {r3-r7, pc} +_0204BD02: + sub r4, r4, r2 +_0204BD04: + add r1, r1, #0x1 + add r0, #0x8 + cmp r1, #0x6 + blt _0204BCE6 + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0204BD14: .word 0x0000FFFF + + thumb_func_start sub_0204BD18 +sub_0204BD18: ; 0x0204BD18 + push {r4, lr} + ldr r0, [r1, #0x14] + add r4, r2, #0x0 + cmp r0, #0x4 + beq _0204BD28 + cmp r0, #0x5 + beq _0204BD3E + b _0204BD3A +_0204BD28: + add r0, r4, #0x0 + bl sub_0204BBA8 + add r1, r0, #0x1 + ldr r0, [r4, #0x3c] + add r0, r4, r0 + add r0, #0x30 + strb r1, [r0, #0x0] + pop {r4, pc} +_0204BD3A: + bl sub_02020C2C +_0204BD3E: + pop {r4, pc} + + thumb_func_start sub_0204BD40 +sub_0204BD40: ; 0x0204BD40 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x20 + add r6, r1, #0x0 + bl sub_020669C0 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02022528 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_0204BAB0 + add r1, r0, #0x0 + mov r0, #0xb + bl sub_02047800 + add r1, r5, #0x0 + add r7, r0, #0x0 + bl sub_02047BB0 + ldr r0, [sp, #0x0] + ldr r1, [r6, #0x3c] + add r2, r4, #0x0 + bl sub_0202BFD8 + add r0, r7, #0x0 + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_020479FC + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r7, #0x0 + pop {r3-r7, pc} + .balign 4 +_0204BD8C: + .byte 0x00, 0x23, 0x1A, 0x1C + .byte 0x81, 0x88, 0x52, 0x1C, 0x08, 0x30, 0x5B, 0x18, 0x06, 0x2A, 0xF9, 0xDB, 0x18, 0x1C, 0x70, 0x47 + + thumb_func_start sub_0204BDA0 +sub_0204BDA0: ; 0x0204BDA0 + push {r4-r7} + mov r3, #0x0 + add r5, r0, #0x0 + add r4, r3, #0x0 + mov r0, #0x1 +_0204BDAA: + mov r1, #0x0 +_0204BDAC: + add r2, r5, r1 + add r2, #0x30 + ldrb r2, [r2, #0x0] + cmp r0, r2 + bne _0204BDEC + lsl r1, r1, #0x3 + add r2, r5, r1 + ldrb r1, [r2, #0x6] + ldrb r2, [r2, #0x7] + cmp r0, #0x1 + beq _0204BDD8 + mov r6, r12 + cmp r6, r1 + beq _0204BDD8 + mov r6, r12 + cmp r6, r2 + beq _0204BDD8 + cmp r7, r1 + beq _0204BDD8 + cmp r7, r2 + beq _0204BDD8 + add r4, #0xc8 +_0204BDD8: + mov r6, #0x1 + mov r12, r1 + lsl r6, r1 + add r1, r3, #0x0 + mov r3, #0x1 + lsl r3, r2 + orr r1, r6 + add r7, r2, #0x0 + orr r3, r1 + b _0204BDF2 +_0204BDEC: + add r1, r1, #0x1 + cmp r1, #0x6 + blt _0204BDAC +_0204BDF2: + add r0, r0, #0x1 + cmp r0, #0x7 + blt _0204BDAA + cmp r3, #0x0 + beq _0204BE0A + mov r0, #0x1 +_0204BDFE: + add r1, r3, #0x0 + tst r1, r0 + beq _0204BE06 + add r4, #0x32 +_0204BE06: + lsr r3, r3, #0x1 + bne _0204BDFE +_0204BE0A: + add r0, r4, #0x0 + pop {r4-r7} + bx lr +_0204BE10: + .byte 0x80, 0x6C, 0x70, 0x47 + + thumb_func_start sub_0204BE14 +sub_0204BE14: ; 0x0204BE14 + mov r0, #0xe8 + bx lr + + thumb_func_start sub_0204BE18 +sub_0204BE18: ; 0x0204BE18 + push {r3-r5, lr} + mov r2, #0x0 + add r3, r2, #0x0 +_0204BE1E: + add r1, r0, r2 + add r2, r2, #0x1 + strb r3, [r1, #0x3] + cmp r2, #0x20 + blt _0204BE1E + strb r3, [r0, #0x1] + strb r3, [r0, #0x2] + ldrb r1, [r0, #0x0] + mov r2, #0x1 + bic r1, r2 + strb r1, [r0, #0x0] + ldrb r4, [r0, #0x0] + mov r1, #0x38 + bic r4, r1 + strb r4, [r0, #0x0] + ldrb r4, [r0, #0x0] + mov r1, #0x2 + bic r4, r1 + strb r4, [r0, #0x0] + str r3, [r0, #0x24] + ldrh r1, [r0, #0x28] + bic r1, r2 + strh r1, [r0, #0x28] + ldrh r2, [r0, #0x28] + mov r1, #0x3e + bic r2, r1 + strh r2, [r0, #0x28] + ldrh r2, [r0, #0x28] + ldr r1, _0204BEB0 ; =0xFFFFF03F + and r1, r2 + strh r1, [r0, #0x28] + add r1, r0, #0x0 + mov r2, #0x1 + add r1, #0xa8 + strb r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0xa4 + str r3, [r1, #0x0] + ldr r1, _0204BEB4 ; =0x020F486C + add r2, r0, #0x0 +_0204BE6E: + ldrb r5, [r1, #0x0] + add r4, r2, #0x0 + add r4, #0xa9 + strb r5, [r4, #0x0] + add r4, r2, #0x0 + ldrb r5, [r1, #0x1] + add r4, #0xaa + add r3, r3, #0x1 + strb r5, [r4, #0x0] + add r1, r1, #0x2 + add r2, r2, #0x2 + cmp r3, #0x6 + blt _0204BE6E + mov r4, #0x0 + add r3, r0, #0x0 + add r1, r4, #0x0 +_0204BE8E: + add r2, r3, #0x0 + add r2, #0xb6 + strh r1, [r2, #0x0] + add r2, r3, #0x0 + add r2, #0xb8 + add r4, r4, #0x1 + add r3, r3, #0x4 + strh r1, [r2, #0x0] + cmp r4, #0xc + blt _0204BE8E + ldrb r3, [r0, #0x0] + mov r2, #0x4 + bic r3, r2 + strb r3, [r0, #0x0] + bl sub_0204BED8 + pop {r3-r5, pc} + .balign 4 +_0204BEB0: .word 0xFFFFF03F +_0204BEB4: .word 0x020F486C + + thumb_func_start sub_0204BEB8 +sub_0204BEB8: ; 0x0204BEB8 + ldrb r2, [r0, #0x0] + mov r1, #0x1 + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0204BEC8 +sub_0204BEC8: ; 0x0204BEC8 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bx lr + + thumb_func_start sub_0204BED0 +sub_0204BED0: ; 0x0204BED0 + add r0, r0, r1 + ldrb r0, [r0, #0x3] + bx lr + .balign 4 + + thumb_func_start sub_0204BED8 +sub_0204BED8: ; 0x0204BED8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bmi _0204BEE4 + cmp r4, #0x19 + blt _0204BEE8 +_0204BEE4: + bl sub_02020C2C +_0204BEE8: + mov r0, #0x1 + ldrsb r1, [r5, r0] + cmp r1, #0x19 + bge _0204BF10 + add r2, r5, #0x3 + ldrb r1, [r2, r4] + cmp r1, #0x0 + bne _0204BF10 + strb r0, [r2, r4] + ldrsb r0, [r5, r0] + add r0, r0, #0x1 + strb r0, [r5, #0x1] + cmp r4, #0x3 + bne _0204BF0C + ldrb r1, [r5, #0x0] + mov r0, #0x2 + orr r0, r1 + strb r0, [r5, #0x0] +_0204BF0C: + mov r0, #0x1 + pop {r3-r5, pc} +_0204BF10: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0204BF14 +sub_0204BF14: ; 0x0204BF14 + mov r1, #0x2 + ldrsb r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start sub_0204BF1C +sub_0204BF1C: ; 0x0204BF1C + push {r3-r4} + mov r1, #0x2 + ldrsb r3, [r0, r1] + mov r2, #0x0 + add r4, r3, #0x0 +_0204BF26: + add r3, r3, #0x1 + cmp r3, #0x19 + blt _0204BF2E + add r3, r2, #0x0 +_0204BF2E: + cmp r3, r4 + beq _0204BF3A + add r1, r0, r3 + ldrb r1, [r1, #0x3] + cmp r1, #0x0 + beq _0204BF26 +_0204BF3A: + mov r1, #0x2 + strb r3, [r0, #0x2] + ldrsb r0, [r0, r1] + pop {r3-r4} + bx lr + + thumb_func_start sub_0204BF44 +sub_0204BF44: ; 0x0204BF44 + push {r4, lr} + add r4, r0, #0x0 + bne _0204BF4E + bl sub_02020C2C +_0204BF4E: + ldrb r0, [r4, #0x0] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1d + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0204BF58 +sub_0204BF58: ; 0x0204BF58 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0204BF66 + bl sub_02020C2C +_0204BF66: + cmp r4, #0x8 + blo _0204BF6E + bl sub_02020C2C +_0204BF6E: + ldrb r1, [r5, #0x0] + mov r0, #0x38 + bic r1, r0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1d + lsr r0, r0, #0x1a + orr r0, r1 + strb r0, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204BF84 +sub_0204BF84: ; 0x0204BF84 + ldr r0, [r0, #0x24] + bx lr + + thumb_func_start sub_0204BF88 +sub_0204BF88: ; 0x0204BF88 + ldrb r2, [r0, #0x0] + lsl r2, r2, #0x1e + lsr r2, r2, #0x1f + beq _0204BF92 + str r1, [r0, #0x24] +_0204BF92: + bx lr + + thumb_func_start sub_0204BF94 +sub_0204BF94: ; 0x0204BF94 + ldrh r0, [r0, #0x28] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bx lr + + thumb_func_start sub_0204BF9C +sub_0204BF9C: ; 0x0204BF9C + ldrh r3, [r0, #0x28] + lsl r3, r3, #0x1a + lsr r3, r3, #0x1b + str r3, [r1, #0x0] + ldrh r0, [r0, #0x28] + lsl r0, r0, #0x14 + lsr r0, r0, #0x1a + str r0, [r2, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0204BFB0 +sub_0204BFB0: ; 0x0204BFB0 + push {r4-r5} + ldrh r4, [r0, #0x28] + mov r5, #0x1 + lsl r1, r1, #0x10 + bic r4, r5 + lsr r5, r1, #0x10 + mov r1, #0x1 + and r1, r5 + orr r1, r4 + strh r1, [r0, #0x28] + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + lsl r2, r2, #0x1b + ldrh r1, [r0, #0x28] + mov r4, #0x3e + lsr r2, r2, #0x1a + bic r1, r4 + orr r1, r2 + strh r1, [r0, #0x28] + ldrh r2, [r0, #0x28] + ldr r1, _0204BFEC ; =0xFFFFF03F + and r2, r1 + lsl r1, r3, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1a + lsr r1, r1, #0x14 + orr r1, r2 + strh r1, [r0, #0x28] + pop {r4-r5} + bx lr + .balign 4 +_0204BFEC: .word 0xFFFFF03F + + thumb_func_start sub_0204BFF0 +sub_0204BFF0: ; 0x0204BFF0 + push {r3-r4} + add r3, r0, #0x0 + add r3, #0xa8 + ldrb r3, [r3, #0x0] + cmp r3, r1 + bne _0204C016 + add r1, r0, #0x0 + add r1, #0xa4 + ldr r4, [r1, #0x0] + mov r3, #0x1 + sub r1, r2, #0x1 + add r2, r3, #0x0 + lsl r2, r1 + add r1, r4, #0x0 + orr r1, r2 + add r0, #0xa4 + str r1, [r0, #0x0] + pop {r3-r4} + bx lr +_0204C016: + add r3, r0, #0x0 + add r3, #0xa8 + strb r1, [r3, #0x0] + mov r3, #0x1 + sub r1, r2, #0x1 + add r2, r3, #0x0 + lsl r2, r1 + add r0, #0xa4 + str r2, [r0, #0x0] + pop {r3-r4} + bx lr + + thumb_func_start sub_0204C02C +sub_0204C02C: ; 0x0204C02C + push {r3-r4} + add r3, r0, #0x0 + add r3, #0xa8 + ldrb r3, [r3, #0x0] + cmp r3, r1 + bne _0204C052 + add r1, r0, #0x0 + add r1, #0xa4 + ldr r4, [r1, #0x0] + mov r3, #0x1 + sub r1, r2, #0x1 + add r2, r3, #0x0 + lsl r2, r1 + mvn r1, r2 + and r1, r4 + add r0, #0xa4 + str r1, [r0, #0x0] + pop {r3-r4} + bx lr +_0204C052: + add r2, r0, #0x0 + add r2, #0xa8 + strb r1, [r2, #0x0] + mov r1, #0x0 + add r0, #0xa4 + str r1, [r0, #0x0] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_0204C064 +sub_0204C064: ; 0x0204C064 + add r3, r0, #0x0 + add r3, #0xa8 + ldrb r3, [r3, #0x0] + cmp r3, r1 + bne _0204C07C + add r0, #0xa4 + ldr r1, [r0, #0x0] + sub r0, r2, #0x1 + lsr r1, r0 + mov r0, #0x1 + and r0, r1 + bx lr +_0204C07C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0204C080 +sub_0204C080: ; 0x0204C080 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r4, #0x6 + blt _0204C092 + bl sub_02020C2C +_0204C092: + lsl r1, r4, #0x1 + add r0, r5, r1 + add r0, #0xa9 + strb r6, [r0, #0x0] + add r0, r5, r1 + add r0, #0xaa + strb r7, [r0, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204C0A4 +sub_0204C0A4: ; 0x0204C0A4 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r4, #0x6 + blt _0204C0B6 + bl sub_02020C2C +_0204C0B6: + lsl r1, r4, #0x1 + add r0, r5, r1 + add r0, #0xa9 + ldrb r0, [r0, #0x0] + strb r0, [r6, #0x0] + add r0, r5, r1 + add r0, #0xaa + ldrb r0, [r0, #0x0] + strb r0, [r7, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204C0CC +sub_0204C0CC: ; 0x0204C0CC + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1d + lsr r0, r0, #0x1f + bx lr + + thumb_func_start sub_0204C0D4 +sub_0204C0D4: ; 0x0204C0D4 + push {r3, lr} + ldrb r2, [r0, #0x0] + lsl r2, r2, #0x1d + lsr r2, r2, #0x1f + beq _0204C0E6 + add r0, #0x2a + mov r2, #0x78 + blx sub_020CE3E0 +_0204C0E6: + pop {r3, pc} + + thumb_func_start sub_0204C0E8 +sub_0204C0E8: ; 0x0204C0E8 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + add r1, r4, #0x0 + add r1, #0x2a + mov r2, #0x78 + blx sub_020CE3E0 + ldrb r1, [r4, #0x0] + mov r0, #0x4 + orr r0, r1 + strb r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0204C104 +sub_0204C104: ; 0x0204C104 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl sub_0204C158 + cmp r0, #0xc + blt _0204C138 + mov r0, #0x0 + add r1, r5, #0x0 +_0204C116: + add r2, r1, #0x0 + add r2, #0xba + ldrh r3, [r2, #0x0] + add r2, r1, #0x0 + add r2, #0xb6 + strh r3, [r2, #0x0] + add r2, r1, #0x0 + add r2, #0xbc + ldrh r3, [r2, #0x0] + add r2, r1, #0x0 + add r2, #0xb8 + add r0, r0, #0x1 + add r1, r1, #0x4 + strh r3, [r2, #0x0] + cmp r0, #0xb + blt _0204C116 + mov r0, #0xb +_0204C138: + lsl r4, r0, #0x2 + add r0, r6, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + add r1, r5, r4 + add r1, #0xb6 + strh r0, [r1, #0x0] + add r0, r6, #0x0 + bl sub_0206B754 + add r1, r5, r4 + add r1, #0xb8 + strh r0, [r1, #0x0] + pop {r4-r6, pc} + + thumb_func_start sub_0204C158 +sub_0204C158: ; 0x0204C158 + mov r2, #0x0 +_0204C15A: + add r1, r0, #0x0 + add r1, #0xb6 + ldrh r1, [r1, #0x0] + cmp r1, #0x0 + bne _0204C168 + add r0, r2, #0x0 + bx lr +_0204C168: + add r2, r2, #0x1 + add r0, r0, #0x4 + cmp r2, #0xc + blt _0204C15A + add r0, r2, #0x0 + bx lr + + thumb_func_start sub_0204C174 +sub_0204C174: ; 0x0204C174 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x0] + cmp r4, #0xc + blt _0204C186 + bl sub_02020C2C +_0204C186: + add r6, r5, #0x0 + lsl r4, r4, #0x2 + add r6, #0xb6 + ldrh r0, [r6, r4] + cmp r0, #0x0 + bne _0204C196 + bl sub_02020C2C +_0204C196: + ldrh r0, [r6, r4] + str r0, [r7, #0x0] + add r0, r5, r4 + add r0, #0xb8 + ldrh r1, [r0, #0x0] + ldr r0, [sp, #0x0] + str r1, [r0, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0204C1A8 +sub_0204C1A8: ; 0x0204C1A8 + ldr r3, _0204C1B0 ; =sub_02022610 + mov r1, #0x5 + bx r3 + nop +_0204C1B0: .word sub_02022610 + 1 + + thumb_func_start sub_0204C1B4 +sub_0204C1B4: ; 0x0204C1B4 + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + ldr r0, [sp, #0x24] + mov r1, #0x20 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02016998 + add r2, r0, #0x0 + str r5, [r2, #0x4] + str r4, [r2, #0x8] + str r6, [r2, #0xc] + add r0, sp, #0x8 + ldrh r0, [r0, #0x10] + ldr r1, _0204C1F0 ; =sub_0204C1F4 + strh r0, [r2, #0x10] + ldr r0, [sp, #0x1c] + str r0, [r2, #0x14] + ldr r0, [sp, #0x20] + str r0, [r2, #0x18] + ldr r0, [sp, #0x24] + str r0, [r2, #0x1c] + mov r0, #0x0 + str r0, [r2, #0x0] + add r0, r7, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + nop +_0204C1F0: .word sub_0204C1F4 + 1 + + thumb_func_start sub_0204C1F4 +sub_0204C1F4: ; 0x0204C1F4 + push {r4-r5, lr} + sub sp, #0xc + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0204C214 + cmp r0, #0x1 + beq _0204C23C + b _0204C258 +_0204C214: + ldr r0, [r5, #0x4] + ldr r0, [r0, #0x1c] + bl sub_021F4608 + ldr r0, [r4, #0x14] + str r0, [sp, #0x0] + ldr r0, [r4, #0x18] + str r0, [sp, #0x4] + ldr r0, [r4, #0x1c] + str r0, [sp, #0x8] + ldrh r3, [r4, #0x10] + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x8] + ldr r2, [r4, #0xc] + bl sub_0200E1D0 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204C258 +_0204C23C: + bl sub_0200E308 + cmp r0, #0x0 + beq _0204C258 + ldr r0, [r5, #0x4] + ldr r0, [r0, #0x1c] + bl sub_021F45E8 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0xc + mov r0, #0x1 + pop {r4-r5, pc} +_0204C258: + mov r0, #0x0 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_0204C260 +sub_0204C260: ; 0x0204C260 + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0xb + mov r1, #0x24 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + str r0, [r2, #0x4] + str r5, [r2, #0x8] + str r4, [r2, #0xc] + ldr r0, [sp, #0x18] + str r6, [r2, #0x10] + str r0, [r2, #0x14] + ldr r0, [sp, #0x1c] + ldr r1, _0204C298 ; =sub_0204C380 + str r0, [r2, #0x18] + ldr r0, [sp, #0x20] + str r0, [r2, #0x20] + add r0, r7, #0x0 + bl sub_020463CC + pop {r3-r7, pc} + nop +_0204C298: .word sub_0204C380 + 1 + + thumb_func_start sub_0204C29C +sub_0204C29C: ; 0x0204C29C + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0xb + mov r1, #0x24 + str r2, [sp, #0x0] + str r3, [sp, #0x4] + bl sub_020169D8 + add r6, r0, #0x0 + mov r4, #0x0 + str r4, [r6, #0x0] + str r4, [r6, #0x4] + ldr r0, [sp, #0x0] + str r5, [r6, #0x8] + str r0, [r6, #0xc] + ldr r0, [sp, #0x4] + str r0, [r6, #0x10] + ldr r0, [sp, #0x20] + str r0, [r6, #0x14] + ldr r0, [sp, #0x24] + str r0, [r6, #0x18] + ldr r0, [r7, #0x1c] + ldr r0, [r0, #0x0] + str r0, [sp, #0x8] + bl sub_02034930 + cmp r0, #0x0 + beq _0204C308 + add r0, r5, #0x0 + bl sub_02034930 + cmp r0, #0x0 + beq _0204C2E6 + mov r4, #0x6 + b _0204C36A +_0204C2E6: + add r0, r5, #0x0 + bl sub_02034964 + cmp r0, #0x0 + beq _0204C2F4 + mov r4, #0x5 + b _0204C36A +_0204C2F4: + add r0, r5, #0x0 + bl sub_02034944 + cmp r0, #0x0 + beq _0204C302 + mov r4, #0x6 + b _0204C36A +_0204C302: + bl sub_02020C2C + b _0204C36A +_0204C308: + ldr r0, [sp, #0x8] + bl sub_02034964 + cmp r0, #0x0 + beq _0204C334 + add r0, r5, #0x0 + bl sub_02034930 + cmp r0, #0x0 + beq _0204C320 + mov r4, #0x4 + b _0204C36A +_0204C320: + add r0, r5, #0x0 + bl sub_02034944 + cmp r0, #0x0 + beq _0204C32E + mov r4, #0x6 + b _0204C36A +_0204C32E: + bl sub_02020C2C + b _0204C36A +_0204C334: + ldr r0, [sp, #0x8] + bl sub_02034944 + cmp r0, #0x0 + beq _0204C366 + add r0, r5, #0x0 + bl sub_02034964 + cmp r0, #0x0 + bne _0204C36A + add r0, r5, #0x0 + bl sub_02034944 + cmp r0, #0x0 + beq _0204C356 + mov r4, #0x6 + b _0204C36A +_0204C356: + add r0, r5, #0x0 + bl sub_02034930 + cmp r0, #0x0 + bne _0204C36A + bl sub_02020C2C + b _0204C36A +_0204C366: + bl sub_02020C2C +_0204C36A: + ldr r1, _0204C37C ; =sub_0204C380 + add r0, r7, #0x0 + add r2, r6, #0x0 + str r4, [r6, #0x20] + bl sub_020463CC + add sp, #0xc + pop {r4-r7, pc} + nop +_0204C37C: .word sub_0204C380 + 1 + + thumb_func_start sub_0204C380 +sub_0204C380: ; 0x0204C380 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r6, r4, #0x0 + ldr r1, [r4, #0x0] + add r6, #0x8 + cmp r1, #0x6 + bhi _0204C458 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0 + lsl r0, r6, #0 + lsl r6, r7, #0 + lsl r6, r1, #0x1 + lsl r4, r3, #0x1 + lsl r4, r6, #0x1 + lsl r6, r4, #0x2 + mov r0, #0x0 + str r0, [r4, #0x4] + ldr r1, [r6, #0x0] + add r0, r7, #0x0 + bl sub_0204AD60 + ldr r1, [r4, #0x20] + add r0, r5, #0x0 + lsl r2, r1, #0x2 + ldr r1, _0204C45C ; =0x020F4894 + ldr r1, [r1, r2] + add r2, r4, #0x0 + bl sub_0204640C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _0204C458 +_0204C3DA: + .byte 0x28, 0x1C, 0xFE, 0xF7, 0xAE, 0xFD + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x37, 0xE0, 0x28, 0x1C, 0x31, 0x1C, 0xFC, 0xF7, 0xB8, 0xFE + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x2F, 0xE0, 0x28, 0x1C, 0xFE, 0xF7, 0xC3, 0xFD, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x28, 0xE0, 0x20, 0x6A, 0x81, 0x00, 0x15, 0x48, 0x41, 0x58, 0x00, 0x29 + .byte 0x01, 0xD0, 0x38, 0x1C, 0x88, 0x47, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x1C, 0xE0, 0xB8, 0xF7 + .byte 0xF1, 0xFF, 0x00, 0x28, 0x18, 0xD1, 0x31, 0x68, 0x38, 0x1C, 0xFE, 0xF7, 0xAF, 0xFC, 0x38, 0x1C + .byte 0x96, 0xF1, 0x74, 0xFF, 0x00, 0x20, 0x60, 0x60, 0x21, 0x6A, 0x28, 0x1C, 0x8A, 0x00, 0x09, 0x49 + .byte 0x89, 0x58, 0x22, 0x1C, 0xF9, 0xF7, 0xE2, 0xFF, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x03, 0xE0 + .byte 0xCA, 0xF7, 0xE2, 0xFA, 0x01, 0x20, 0xF8, 0xBD +_0204C458: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0204C45C: .word 0x020F4894 +_0204C460: + .byte 0xB0, 0x48, 0x0F, 0x02, 0x78, 0x48, 0x0F, 0x02 + + thumb_func_start sub_0204C468 +sub_0204C468: ; 0x0204C468 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _0204C484 + cmp r0, #0x1 + beq _0204C498 + b _0204C49C +_0204C484: + ldr r0, _0204C4A0 ; =0x00000603 + bl sub_020054C8 + add r0, r5, #0x0 + bl sub_0204AFC8 + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _0204C49C +_0204C498: + mov r0, #0x1 + pop {r3-r5, pc} +_0204C49C: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0204C4A0: .word 0x00000603 + + thumb_func_start sub_0204C4A4 +sub_0204C4A4: ; 0x0204C4A4 + push {r4-r6, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x3 + bhi _0204C522 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r5, #0 + lsl r6, r0, #0x1 + lsl r4, r2, #0x1 + bl sub_021DA5B8 + str r0, [r4, #0x1c] + ldr r0, [r5, #0x38] + bl sub_02055320 + add r6, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_0205532C + add r1, r0, #0x0 + ldr r2, [r4, #0x1c] + add r0, r6, #0x0 + bl sub_021DA5D0 + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _0204C522 +_0204C4F6: + .byte 0xE1, 0x69, 0x28, 0x1C, 0x8E, 0xF1, 0x6D, 0xF8, 0x00, 0x28 + .byte 0x0F, 0xD0, 0xE0, 0x69, 0x8E, 0xF1, 0x60, 0xF8, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x08, 0xE0 + .byte 0x30, 0x1C, 0xFE, 0xF7, 0x59, 0xFD, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x01, 0xE0, 0x01, 0x20 + .byte 0x70, 0xBD +_0204C522: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0204C528 +sub_0204C528: ; 0x0204C528 + push {r4-r6, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _0204C54A + cmp r0, #0x1 + beq _0204C570 + cmp r0, #0x2 + beq _0204C598 + b _0204C59C +_0204C54A: + bl sub_021DA5B8 + str r0, [r4, #0x1c] + ldr r0, [r5, #0x38] + bl sub_02055320 + add r6, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_0205532C + add r1, r0, #0x0 + ldr r2, [r4, #0x1c] + add r0, r6, #0x0 + bl sub_021DA5D0 + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _0204C59C +_0204C570: + ldr r0, [r5, #0x38] + ldr r6, [r4, #0x1c] + bl sub_020552F8 + add r2, r0, #0x0 + lsl r2, r2, #0x18 + add r0, r5, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x18 + bl sub_021DAC70 + cmp r0, #0x0 + beq _0204C59C + ldr r0, [r4, #0x1c] + bl sub_021DA5C8 + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _0204C59C +_0204C598: + mov r0, #0x1 + pop {r4-r6, pc} +_0204C59C: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0204C5A0 +sub_0204C5A0: ; 0x0204C5A0 + push {r4-r6, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x3 + bhi _0204C63C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r7, #0 + lsl r6, r2, #0x1 + lsl r2, r5, #0x1 + ldr r0, [r5, #0x38] + bl sub_020552F8 + add r6, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_020553A0 + cmp r6, #0x2 + bne _0204C5E6 + mov r1, #0xa + bl sub_0205ADDC + b _0204C5F6 +_0204C5E6: + cmp r6, #0x3 + bne _0204C5F2 + mov r1, #0xb + bl sub_0205ADDC + b _0204C5F6 +_0204C5F2: + bl sub_02020C2C +_0204C5F6: + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _0204C63C +_0204C5FE: + .byte 0xA8, 0x6B + .byte 0x08, 0xF0, 0xCE, 0xFE, 0x05, 0x1C, 0x0E, 0xF0, 0x0F, 0xFC, 0x01, 0x28, 0x16, 0xD1, 0x28, 0x1C + .byte 0x0E, 0xF0, 0x1E, 0xFC, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x0F, 0xE0, 0x08, 0x48, 0xB8, 0xF7 + .byte 0x53, 0xFF, 0x00, 0x20, 0x8B, 0xF1, 0x3E, 0xFB, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x05, 0xE0 + .byte 0xC1, 0xF7, 0x6A, 0xFE, 0x00, 0x28, 0x01, 0xD0, 0x01, 0x20, 0x70, 0xBD +_0204C63C: + mov r0, #0x0 + pop {r4-r6, pc} +_0204C640: + .byte 0x03, 0x06, 0x00, 0x00 + + thumb_func_start sub_0204C644 +sub_0204C644: ; 0x0204C644 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r6, #0x38] + bl sub_020553A0 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _0204C668 + cmp r0, #0x1 + beq _0204C67E + b _0204C682 +_0204C668: + bl sub_021DB030 + add r2, r0, #0x0 + ldr r1, _0204C688 ; =0x021DB1D1 + add r0, r5, #0x0 + bl sub_0204640C + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _0204C682 +_0204C67E: + mov r0, #0x1 + pop {r4-r6, pc} +_0204C682: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_0204C688: .word 0x021DB1D1 + + thumb_func_start sub_0204C68C +sub_0204C68C: ; 0x0204C68C + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r6, #0x38] + bl sub_020553A0 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _0204C6B0 + cmp r0, #0x1 + beq _0204C6C6 + b _0204C6CA +_0204C6B0: + bl sub_021DB030 + add r2, r0, #0x0 + ldr r1, _0204C6D0 ; =0x021DB145 + add r0, r5, #0x0 + bl sub_0204640C + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _0204C6CA +_0204C6C6: + mov r0, #0x1 + pop {r4-r6, pc} +_0204C6CA: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_0204C6D0: .word 0x021DB145 + + thumb_func_start sub_0204C6D4 +sub_0204C6D4: ; 0x0204C6D4 + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + cmp r0, #0x3 + bhi _0204C798 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r2, #0x1 + lsl r6, r6, #0x1 + lsl r2, r3, #0x2 + ldr r0, [r4, #0x38] + bl sub_020553A0 + add r7, r0, #0x0 + ldr r0, [r4, #0x38] + bl sub_02055320 + str r0, [sp, #0x0] + ldr r0, [r4, #0x38] + bl sub_0205532C + add r2, r0, #0x0 + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + bl sub_0204A6E0 + bl sub_020547B0 + cmp r0, #0x0 + beq _0204C736 + add r0, r7, #0x0 + mov r1, #0x1 + bl sub_0205889C + mov r0, #0x1 + str r0, [r5, #0x4] + b _0204C798 +_0204C736: + bl sub_021DB030 + add r2, r0, #0x0 + ldr r1, _0204C79C ; =0x021DB251 + add r0, r6, #0x0 + bl sub_0204640C + mov r0, #0x3 + str r0, [r5, #0x4] + b _0204C798 +_0204C74A: + .byte 0x8D, 0xF1, 0x35, 0xFF, 0xE8, 0x61 + .byte 0xA0, 0x6B, 0x08, 0xF0, 0xE5, 0xFD, 0x06, 0x1C, 0xA0, 0x6B, 0x08, 0xF0, 0xE7, 0xFD, 0x01, 0x1C + .byte 0xEA, 0x69, 0x30, 0x1C, 0x8D, 0xF1, 0x34, 0xFF, 0x68, 0x68, 0x40, 0x1C, 0x68, 0x60, 0x13, 0xE0 + .byte 0xED, 0x69, 0x20, 0x1C, 0x29, 0x1C, 0x8E, 0xF1, 0x1D, 0xF8, 0x00, 0x28, 0x0C, 0xD0, 0x28, 0x1C + .byte 0x8D, 0xF1, 0x22, 0xFF, 0xA0, 0x6B, 0x08, 0xF0, 0x0B, 0xFE, 0x00, 0x21, 0x0C, 0xF0, 0x86, 0xF8 + .byte 0x01, 0x20, 0xF8, 0xBD, 0x01, 0x20, 0xF8, 0xBD +_0204C798: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0204C79C: .word 0x021DB251 +_0204C7A0: + .byte 0xF8, 0xB5, 0x06, 0x1C, 0xF9, 0xF7, 0xC0, 0xFE, 0x05, 0x1C, 0x30, 0x1C, 0xF9, 0xF7, 0xBE, 0xFE + .byte 0x04, 0x1C, 0x60, 0x68, 0x00, 0x28, 0x02, 0xD0, 0x01, 0x28, 0x2B, 0xD0, 0x2C, 0xE0, 0xA8, 0x6B + .byte 0x08, 0xF0, 0xEE, 0xFD, 0x07, 0x1C, 0xA8, 0x6B, 0x08, 0xF0, 0xAA, 0xFD, 0x00, 0x90, 0xA8, 0x6B + .byte 0x08, 0xF0, 0xAC, 0xFD, 0x02, 0x1C, 0x00, 0x99, 0x28, 0x1C, 0xFD, 0xF7, 0x81, 0xFF, 0x07, 0xF0 + .byte 0xE7, 0xFF, 0x00, 0x28, 0x0B, 0xD0, 0x38, 0x1C, 0x01, 0x21, 0x0C, 0xF0, 0x57, 0xF8, 0x01, 0x20 + .byte 0x60, 0x60, 0x0A, 0x49, 0x30, 0x1C, 0x22, 0x1C, 0xF9, 0xF7, 0xF8, 0xFD, 0x0C, 0xE0, 0x8E, 0xF1 + .byte 0x17, 0xFC, 0x02, 0x1C, 0x06, 0x49, 0x30, 0x1C, 0xF9, 0xF7, 0x00, 0xFE, 0x60, 0x68, 0x40, 0x1C + .byte 0x60, 0x60, 0x01, 0xE0, 0x01, 0x20, 0xF8, 0xBD, 0x00, 0x20, 0xF8, 0xBD, 0xD5, 0xC6, 0x04, 0x02 + .byte 0x81, 0xB3, 0x1D, 0x02, 0x70, 0xB5, 0x04, 0x1C, 0xF9, 0xF7, 0x7E, 0xFE, 0x05, 0x1C, 0x20, 0x1C + .byte 0xF9, 0xF7, 0x7C, 0xFE, 0x04, 0x1C, 0x60, 0x68, 0x00, 0x28, 0x04, 0xD0, 0x01, 0x28, 0x15, 0xD0 + .byte 0x02, 0x28, 0x27, 0xD0, 0x28, 0xE0, 0x8D, 0xF1, 0xB7, 0xFE, 0xE0, 0x61, 0xA8, 0x6B, 0x08, 0xF0 + .byte 0x67, 0xFD, 0x06, 0x1C, 0xA8, 0x6B, 0x08, 0xF0, 0x69, 0xFD, 0x01, 0x1C, 0xE2, 0x69, 0x30, 0x1C + .byte 0x8D, 0xF1, 0xB6, 0xFE, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x15, 0xE0, 0xA8, 0x6B, 0xE6, 0x69 + .byte 0x08, 0xF0, 0x42, 0xFD, 0x02, 0x1C, 0x12, 0x06, 0x28, 0x1C, 0x31, 0x1C, 0x12, 0x0E, 0x8E, 0xF1 + .byte 0x11, 0xF9, 0x00, 0x28, 0x08, 0xD0, 0xE0, 0x69, 0x8D, 0xF1, 0x9E, 0xFE, 0x60, 0x68, 0x40, 0x1C + .byte 0x60, 0x60, 0x01, 0xE0, 0x01, 0x20, 0x70, 0xBD, 0x00, 0x20, 0x70, 0xBD, 0x70, 0xB5, 0x04, 0x1C + .byte 0xF9, 0xF7, 0x42, 0xFE, 0x05, 0x1C, 0x20, 0x1C, 0xF9, 0xF7, 0x40, 0xFE, 0x04, 0x1C, 0x60, 0x68 + .byte 0x03, 0x28, 0x40, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44 + .byte 0x06, 0x00, 0x42, 0x00, 0x60, 0x00, 0x70, 0x00, 0x01, 0x20, 0x8B, 0xF1, 0xEB, 0xF9, 0xA8, 0x6B + .byte 0x08, 0xF0, 0x66, 0xFD, 0x06, 0x1C, 0xA8, 0x6B, 0x08, 0xF0, 0x0E, 0xFD, 0x02, 0x28, 0x04, 0xD1 + .byte 0x30, 0x1C, 0x0A, 0x21, 0x0E, 0xF0, 0x7A, 0xFA, 0x08, 0xE0, 0x03, 0x28, 0x04, 0xD1, 0x30, 0x1C + .byte 0x0B, 0x21, 0x0E, 0xF0, 0x73, 0xFA, 0x01, 0xE0, 0xD4, 0xF7, 0x98, 0xF9, 0x60, 0x68, 0x40, 0x1C + .byte 0x60, 0x60, 0x18, 0xE0, 0xA8, 0x6B, 0x08, 0xF0, 0x4B, 0xFD, 0x05, 0x1C, 0x0E, 0xF0, 0x8C, 0xFA + .byte 0x01, 0x28, 0x10, 0xD1, 0x28, 0x1C, 0x0E, 0xF0, 0x9B, 0xFA, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60 + .byte 0x09, 0xE0, 0xC1, 0xF7, 0xF1, 0xFC, 0x00, 0x28, 0x05, 0xD0, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60 + .byte 0x01, 0xE0, 0x01, 0x20, 0x70, 0xBD, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x05, 0x1C + .byte 0xF9, 0xF7, 0xF2, 0xFD, 0x06, 0x1C, 0x28, 0x1C, 0xF9, 0xF7, 0xF0, 0xFD, 0x04, 0x1C, 0xB0, 0x6B + .byte 0x08, 0xF0, 0x26, 0xFD, 0x60, 0x68, 0x00, 0x28, 0x02, 0xD0, 0x01, 0x28, 0x0B, 0xD0, 0x0C, 0xE0 + .byte 0x8E, 0xF1, 0x66, 0xFB, 0x02, 0x1C, 0x06, 0x49, 0x28, 0x1C, 0xF9, 0xF7, 0x4F, 0xFD, 0x60, 0x68 + .byte 0x40, 0x1C, 0x60, 0x60, 0x01, 0xE0, 0x01, 0x20, 0x70, 0xBD, 0x00, 0x20, 0x70, 0xBD, 0xC0, 0x46 + .byte 0x41, 0xB0, 0x1D, 0x02, 0x38, 0xB5, 0x84, 0xB0, 0x05, 0x1C, 0xA8, 0x6B, 0x08, 0xF0, 0xB4, 0xFC + .byte 0x04, 0x1C, 0xA8, 0x6B, 0x01, 0xA9, 0x08, 0xF0, 0xDB, 0xFC, 0x03, 0x2C, 0x05, 0xD1, 0x01, 0x20 + .byte 0x01, 0x99, 0x00, 0x04, 0x08, 0x1A, 0x01, 0x90, 0x04, 0xE0, 0x01, 0x20, 0x01, 0x99, 0x00, 0x04 + .byte 0x08, 0x18, 0x01, 0x90, 0x00, 0x20, 0x00, 0x90, 0x02, 0x99, 0x01, 0x9A, 0x03, 0x9B, 0x28, 0x1C + .byte 0xFD, 0xF7, 0xA2, 0xFE, 0x02, 0x90, 0xA8, 0x6B, 0x01, 0xA9, 0x22, 0x1C, 0x08, 0xF0, 0x8E, 0xFD + .byte 0xA8, 0x6B, 0x08, 0xF0, 0xC5, 0xFC, 0x29, 0x6A, 0xD2, 0xF7, 0x08, 0xFB, 0xA8, 0x6B, 0x08, 0xF0 + .byte 0xBF, 0xFC, 0x29, 0x6A, 0xD2, 0xF7, 0x40, 0xF9, 0x04, 0xB0, 0x38, 0xBD, 0x70, 0xB5, 0x84, 0xB0 + .byte 0x05, 0x1C, 0xA8, 0x6B, 0x08, 0xF0, 0x80, 0xFC, 0x04, 0x1C, 0xA8, 0x6B, 0x01, 0xA9, 0x08, 0xF0 + .byte 0xA7, 0xFC, 0xA8, 0x6B, 0x08, 0xF0, 0x8C, 0xFC, 0x06, 0x1C, 0xA8, 0x6B, 0x08, 0xF0, 0x8E, 0xFC + .byte 0x02, 0x1C, 0x28, 0x1C, 0x31, 0x1C, 0xFD, 0xF7, 0x63, 0xFE, 0x06, 0x1C, 0x07, 0xF0, 0x5C, 0xFF + .byte 0x00, 0x28, 0x06, 0xD0, 0x01, 0x20, 0x01, 0x99, 0x00, 0x04, 0x08, 0x18, 0x01, 0x90, 0x02, 0x24 + .byte 0x0A, 0xE0, 0x30, 0x1C, 0x07, 0xF0, 0x56, 0xFF, 0x00, 0x28, 0x05, 0xD0, 0x01, 0x20, 0x01, 0x99 + .byte 0x00, 0x04, 0x08, 0x1A, 0x01, 0x90, 0x03, 0x24, 0x00, 0x20, 0x00, 0x90, 0x02, 0x99, 0x01, 0x9A + .byte 0x03, 0x9B, 0x28, 0x1C, 0xFD, 0xF7, 0x58, 0xFE, 0x02, 0x90, 0xA8, 0x6B, 0x01, 0xA9, 0x22, 0x1C + .byte 0x08, 0xF0, 0x44, 0xFD, 0xA8, 0x6B, 0x08, 0xF0, 0x7B, 0xFC, 0x29, 0x6A, 0xD2, 0xF7, 0xBE, 0xFA + .byte 0xA8, 0x6B, 0x08, 0xF0, 0x75, 0xFC, 0x29, 0x6A, 0xD2, 0xF7, 0xF6, 0xF8, 0x04, 0xB0, 0x70, 0xBD + .byte 0x1C, 0x21, 0x41, 0x43, 0x01, 0x48, 0x40, 0x5C, 0x70, 0x47, 0xC0, 0x46, 0xCC, 0x48, 0x0F, 0x02 + .byte 0x1C, 0x21, 0x41, 0x43, 0x01, 0x48, 0x40, 0x5C, 0x70, 0x47, 0xC0, 0x46, 0xCD, 0x48, 0x0F, 0x02 + .byte 0x1C, 0x21, 0x02, 0x4A, 0x41, 0x43, 0x50, 0x18, 0x80, 0x1C, 0x70, 0x47, 0xCC, 0x48, 0x0F, 0x02 + .byte 0x1C, 0x21, 0x41, 0x43, 0x01, 0x48, 0x40, 0x5C, 0x70, 0x47, 0xC0, 0x46, 0xD7, 0x48, 0x0F, 0x02 + .byte 0x1C, 0x21, 0x41, 0x43, 0x01, 0x48, 0x40, 0x5C, 0x70, 0x47, 0xC0, 0x46, 0xD8, 0x48, 0x0F, 0x02 + .byte 0x1C, 0x21, 0x41, 0x43, 0x01, 0x48, 0x40, 0x5C, 0x70, 0x47, 0xC0, 0x46, 0xD9, 0x48, 0x0F, 0x02 + .byte 0x1C, 0x21, 0x41, 0x43, 0x01, 0x48, 0x40, 0x58, 0x70, 0x47, 0xC0, 0x46, 0xDC, 0x48, 0x0F, 0x02 + .byte 0x1C, 0x21, 0x41, 0x43, 0x01, 0x48, 0x40, 0x58, 0x70, 0x47, 0xC0, 0x46, 0xE0, 0x48, 0x0F, 0x02 + .byte 0x1C, 0x21, 0x41, 0x43, 0x01, 0x48, 0x40, 0x5C, 0x70, 0x47, 0xC0, 0x46, 0xE4, 0x48, 0x0F, 0x02 + .byte 0x1C, 0x21, 0x41, 0x43, 0x01, 0x48, 0x40, 0x5C, 0x70, 0x47, 0xC0, 0x46, 0xE5, 0x48, 0x0F, 0x02 + .byte 0xF8, 0xB5, 0x0C, 0x1C, 0x43, 0x49, 0x15, 0x1C, 0x0A, 0x68, 0x00, 0x2A, 0x01, 0xD0, 0x00, 0x20 + .byte 0xF8, 0xBD, 0x05, 0xD1, 0xB1, 0x22, 0x08, 0x60, 0x00, 0x21, 0x92, 0x00, 0x81, 0xF0, 0x06, 0xEC + .byte 0x3C, 0x49, 0x3D, 0x48, 0x0A, 0x68, 0x15, 0x54, 0x00, 0x22, 0x08, 0x68, 0x00, 0x2D, 0x42, 0x60 + .byte 0x0C, 0xD0, 0xF8, 0xF1, 0xE3, 0xF8, 0x01, 0x1C, 0x0F, 0x20, 0xC9, 0xF7, 0x1D, 0xFF, 0x35, 0x49 + .byte 0x0A, 0x68, 0x50, 0x60, 0x08, 0x68, 0x40, 0x68, 0xF8, 0xF1, 0xDA, 0xF8, 0x31, 0x48, 0x33, 0x4F + .byte 0x01, 0x68, 0x4C, 0x65, 0x00, 0x21, 0x0A, 0x1C, 0x0B, 0x1C, 0x04, 0x68, 0xA5, 0x18, 0x00, 0x24 + .byte 0xA6, 0x35, 0xE4, 0x43, 0x2C, 0x70, 0x04, 0x68, 0xA4, 0x18, 0xA2, 0x34, 0x27, 0x80, 0x04, 0x68 + .byte 0xA4, 0x18, 0xA4, 0x34, 0x27, 0x80, 0x04, 0x68, 0xA5, 0x18, 0xA7, 0x35, 0x02, 0x24, 0x2C, 0x70 + .byte 0x04, 0x68, 0xA5, 0x18, 0x00, 0x24, 0x66, 0x35, 0xE4, 0x43, 0x2C, 0x70, 0x04, 0x68, 0xA4, 0x18 + .byte 0x62, 0x34, 0x27, 0x80, 0x04, 0x68, 0xA4, 0x18, 0x64, 0x34, 0x27, 0x80, 0x04, 0x68, 0xA5, 0x18 + .byte 0x67, 0x35, 0x02, 0x24, 0x2C, 0x70, 0x04, 0x68, 0x1D, 0x4D, 0x66, 0x18, 0x00, 0x24, 0xE4, 0x43 + .byte 0x74, 0x55, 0x04, 0x68, 0x08, 0x32, 0x65, 0x18, 0xE2, 0x35, 0x00, 0x24, 0x2C, 0x70, 0x04, 0x68 + .byte 0x65, 0x18, 0xEA, 0x35, 0x01, 0x24, 0x2C, 0x70, 0x04, 0x68, 0x65, 0x18, 0xF2, 0x35, 0x00, 0x24 + .byte 0x2C, 0x70, 0x04, 0x68, 0xFF, 0x25, 0xE6, 0x18, 0x2C, 0x1C, 0x6B, 0x34, 0x49, 0x1C, 0x22, 0x33 + .byte 0x35, 0x53, 0x08, 0x29, 0xB9, 0xDB, 0x0B, 0x4A, 0xAF, 0x21, 0x13, 0x68, 0x89, 0x00, 0x00, 0x20 + .byte 0x58, 0x54, 0x12, 0x68, 0xC9, 0x1C, 0x50, 0x54, 0x0A, 0x48, 0x00, 0x21, 0xC8, 0x22, 0xBF, 0xF7 + .byte 0x11, 0xFF, 0x04, 0x49, 0x09, 0x68, 0x08, 0x65, 0xE4, 0xF7, 0xBE, 0xF9, 0x00, 0xF0, 0x98, 0xF9 + .byte 0x01, 0x20, 0xF8, 0xBD, 0x68, 0x5A, 0x1C, 0x02, 0xBE, 0x02, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 + .byte 0x02, 0x01, 0x00, 0x00, 0xF1, 0xD4, 0x04, 0x02 + + thumb_func_start sub_0204CC48 +sub_0204CC48: ; 0x0204CC48 + push {r3-r7, lr} + ldr r4, _0204CC94 ; =0x021C5A68 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0204CC92 + ldr r6, _0204CC98 ; =0x000002BE + mov r5, #0x0 + mov r7, #0x1 +_0204CC58: + ldr r0, [r4, #0x0] + ldrb r0, [r0, r6] + cmp r0, #0x0 + beq _0204CC6E + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_0204D43C + b _0204CC7A +_0204CC6E: + lsl r0, r5, #0x18 + mov r1, #0x1 + lsr r0, r0, #0x18 + add r2, r1, #0x0 + bl sub_0204D43C +_0204CC7A: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0204CC58 + ldr r0, _0204CC94 ; =0x021C5A68 + ldr r2, [r0, #0x0] + ldr r0, _0204CC98 ; =0x000002BE + ldrb r1, [r2, r0] + cmp r1, #0x0 + beq _0204CC92 + mov r1, #0x1 + sub r0, r0, #0x1 + strb r1, [r2, r0] +_0204CC92: + pop {r3-r7, pc} + .balign 4 +_0204CC94: .word 0x021C5A68 +_0204CC98: .word 0x000002BE + + thumb_func_start sub_0204CC9C +sub_0204CC9C: ; 0x0204CC9C + push {r3, lr} + ldr r1, _0204CCD8 ; =0x021C5A68 + ldr r3, [r1, #0x0] + cmp r3, #0x0 + beq _0204CCD6 + ldr r0, _0204CCDC ; =0x000002BB + mov r2, #0x1 + strb r2, [r3, r0] + ldr r1, [r1, #0x0] + mov r2, #0x0 + add r0, r0, #0x2 + strb r2, [r1, r0] + bl sub_0204CF60 + mov r0, #0x1 + bl sub_0204D168 + ldr r0, _0204CCD8 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_02055320 + ldr r0, _0204CCD8 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_0205532C +_0204CCD6: + pop {r3, pc} + .balign 4 +_0204CCD8: .word 0x021C5A68 +_0204CCDC: .word 0x000002BB + + thumb_func_start sub_0204CCE0 +sub_0204CCE0: ; 0x0204CCE0 + push {r3-r7, lr} + ldr r7, _0204CD70 ; =0x021C5A68 + add r6, r0, #0x0 + ldr r0, [r7, #0x0] + cmp r0, #0x0 + beq _0204CD6E + mov r4, #0x0 + add r5, r4, #0x0 +_0204CCF0: + ldr r0, [r7, #0x0] + add r1, r0, r5 + mov r0, #0x9f + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0204CD0E + bl sub_02016A18 + ldr r0, [r7, #0x0] + mov r1, #0x0 + add r2, r0, r5 + mov r0, #0x9f + lsl r0, r0, #0x2 + str r1, [r2, r0] +_0204CD0E: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x5 + blt _0204CCF0 + ldr r0, _0204CD70 ; =0x021C5A68 + ldr r2, [r0, #0x0] + ldr r0, _0204CD74 ; =0x000002B2 + ldrh r1, [r2, r0] + cmp r1, #0x5 + blo _0204CD28 + ldr r0, [r2, #0x54] + bl sub_02061B64 +_0204CD28: + mov r4, #0x0 + add r5, r4, #0x0 +_0204CD2C: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl sub_0204D43C + add r4, r4, #0x1 + cmp r4, #0x8 + blt _0204CD2C + ldr r0, _0204CD70 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x50] + bl sub_0200CAB4 + ldr r0, _0204CD70 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0204CD60 + bl sub_02244D3C + ldr r0, _0204CD70 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl sub_02016A18 +_0204CD60: + ldr r0, _0204CD70 ; =0x021C5A68 + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _0204CD70 ; =0x021C5A68 + mov r1, #0x0 + str r1, [r0, #0x0] +_0204CD6E: + pop {r3-r7, pc} + .balign 4 +_0204CD70: .word 0x021C5A68 +_0204CD74: .word 0x000002B2 + + thumb_func_start sub_0204CD78 +sub_0204CD78: ; 0x0204CD78 + push {r4, lr} + lsl r4, r0, #0x2 + ldr r0, _0204CDB0 ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x28] + cmp r0, #0x0 + beq _0204CDAC + bl sub_020646A0 + cmp r0, #0x0 + beq _0204CD9E + ldr r0, _0204CDB0 ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x28] + bl sub_02064520 + b _0204CDA2 +_0204CD9E: + bl sub_02020C2C +_0204CDA2: + ldr r0, _0204CDB0 ; =0x021C5A68 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + str r1, [r0, #0x28] +_0204CDAC: + pop {r4, pc} + nop +_0204CDB0: .word 0x021C5A68 + + thumb_func_start sub_0204CDB4 +sub_0204CDB4: ; 0x0204CDB4 + push {r3-r7, lr} + mov r4, #0x0 + ldr r6, _0204CED4 ; =0x021C5A68 + add r7, r4, #0x0 + add r5, r4, #0x0 +_0204CDBE: + add r0, r4, #0x0 + bl sub_0204E778 + add r0, r4, #0x0 + bl sub_0204CD78 + cmp r4, #0x0 + beq _0204CDD4 + add r0, r4, #0x0 + bl sub_0204ED9C +_0204CDD4: + ldr r1, [r6, #0x0] + add r0, r1, r7 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0204CDFA + ldr r2, [r1, #0x54] + ldr r2, [r2, #0x38] + cmp r2, r0 + beq _0204CDF2 + ldr r2, _0204CED8 ; =0x000002BE + ldrb r1, [r1, r2] + cmp r1, #0x0 + beq _0204CDF2 + bl sub_02055168 +_0204CDF2: + ldr r0, [r6, #0x0] + add r1, r0, r7 + mov r0, #0x0 + str r0, [r1, #0x8] +_0204CDFA: + ldr r0, [r6, #0x0] + add r7, r7, #0x4 + add r1, r0, r4 + add r1, #0x48 + mov r0, #0x0 + strb r0, [r1, #0x0] + ldr r0, [r6, #0x0] + add r1, r0, r5 + mov r0, #0x0 + add r1, #0xa6 + mvn r0, r0 + strb r0, [r1, #0x0] + ldr r0, [r6, #0x0] + add r1, r0, r5 + ldr r0, _0204CEDC ; =0x0000FFFF + add r1, #0xa2 + strh r0, [r1, #0x0] + ldr r0, [r6, #0x0] + add r1, r0, r5 + ldr r0, _0204CEDC ; =0x0000FFFF + add r1, #0xa4 + strh r0, [r1, #0x0] + ldr r0, [r6, #0x0] + add r1, r0, r5 + add r1, #0xa7 + mov r0, #0x2 + strb r0, [r1, #0x0] + ldr r0, [r6, #0x0] + add r1, r0, r5 + mov r0, #0x0 + add r1, #0x66 + mvn r0, r0 + strb r0, [r1, #0x0] + ldr r0, [r6, #0x0] + add r1, r0, r5 + ldr r0, _0204CEDC ; =0x0000FFFF + add r1, #0x62 + strh r0, [r1, #0x0] + ldr r0, [r6, #0x0] + add r1, r0, r5 + ldr r0, _0204CEDC ; =0x0000FFFF + add r1, #0x64 + strh r0, [r1, #0x0] + ldr r0, [r6, #0x0] + add r1, r0, r5 + add r1, #0x67 + mov r0, #0x2 + strb r0, [r1, #0x0] + ldr r0, [r6, #0x0] + mov r1, #0x0 + add r2, r0, r4 + ldr r0, _0204CEE0 ; =0x00000102 + mvn r1, r1 + strb r1, [r2, r0] + ldr r0, [r6, #0x0] + mov r1, #0x0 + add r2, r0, r4 + ldr r0, _0204CEE4 ; =0x0000010A + add r5, #0x8 + strb r1, [r2, r0] + ldr r0, [r6, #0x0] + add r1, r0, r4 + add r1, #0xe2 + mov r0, #0x0 + strb r0, [r1, #0x0] + ldr r0, [r6, #0x0] + add r1, r0, r4 + add r1, #0xea + mov r0, #0x1 + strb r0, [r1, #0x0] + ldr r0, [r6, #0x0] + add r1, r0, r4 + add r1, #0xf2 + mov r0, #0x0 + strb r0, [r1, #0x0] + ldr r0, [r6, #0x0] + mov r1, #0x0 + add r2, r0, r4 + ldr r0, _0204CEE8 ; =0x0000013A + strb r1, [r2, r0] + ldr r0, [r6, #0x0] + add r2, r0, r4 + ldr r0, _0204CEEC ; =0x00000142 + add r4, r4, #0x1 + strb r1, [r2, r0] + cmp r4, #0x8 + blt _0204CDBE + ldr r0, _0204CED4 ; =0x021C5A68 + ldr r1, _0204CEF0 ; =0x000002BF + ldr r2, [r0, #0x0] + mov r0, #0x0 + strb r0, [r2, r1] + bl sub_0204CF60 + ldr r0, _0204CED4 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x50] + cmp r0, #0x0 + bne _0204CED0 + ldr r0, _0204CEF4 ; =sub_0204D4F0 + mov r1, #0x0 + mov r2, #0xc8 + bl sub_0200CA44 + ldr r1, _0204CED4 ; =0x021C5A68 + ldr r1, [r1, #0x0] + str r0, [r1, #0x50] +_0204CED0: + pop {r3-r7, pc} + nop +_0204CED4: .word 0x021C5A68 +_0204CED8: .word 0x000002BE +_0204CEDC: .word 0x0000FFFF +_0204CEE0: .word 0x00000102 +_0204CEE4: .word 0x0000010A +_0204CEE8: .word 0x0000013A +_0204CEEC: .word 0x00000142 +_0204CEF0: .word 0x000002BF +_0204CEF4: .word sub_0204D4F0 + 1 + + thumb_func_start sub_0204CEF8 +sub_0204CEF8: ; 0x0204CEF8 + push {r3, lr} + ldr r0, _0204CF20 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x50] + cmp r0, #0x0 + beq _0204CF16 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0204D4F0 + ldr r0, _0204CF20 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x50] + bl sub_0200CAB4 +_0204CF16: + ldr r0, _0204CF20 ; =0x021C5A68 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x50] + pop {r3, pc} + .balign 4 +_0204CF20: .word 0x021C5A68 + + thumb_func_start sub_0204CF24 +sub_0204CF24: ; 0x0204CF24 + push {r3-r5, lr} + ldr r0, _0204CF58 ; =0x021C5A68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0204CF54 + mov r5, #0x0 + add r4, r5, #0x0 +_0204CF32: + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + add r1, r4, #0x0 + add r2, r4, #0x0 + bl sub_0204D43C + add r0, r5, #0x0 + bl sub_0204F69C + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0204CF32 + ldr r0, _0204CF58 ; =0x021C5A68 + mov r2, #0x1 + ldr r1, [r0, #0x0] + ldr r0, _0204CF5C ; =0x000002BD + strb r2, [r1, r0] +_0204CF54: + pop {r3-r5, pc} + nop +_0204CF58: .word 0x021C5A68 +_0204CF5C: .word 0x000002BD + + thumb_func_start sub_0204CF60 +sub_0204CF60: ; 0x0204CF60 + push {r4, lr} + bl sub_02031190 + ldr r1, _0204D03C ; =0x021C5A68 + lsl r0, r0, #0x2 + ldr r2, [r1, #0x0] + ldr r1, [r2, #0x54] + add r0, r2, r0 + ldr r1, [r1, #0x38] + str r1, [r0, #0x8] + bl sub_02031190 + ldr r1, _0204D03C ; =0x021C5A68 + mov r2, #0x1 + ldr r1, [r1, #0x0] + add r0, r1, r0 + add r0, #0x48 + strb r2, [r0, #0x0] + bl sub_02031190 + add r4, r0, #0x0 + ldr r0, _0204D03C ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_02055320 + ldr r1, _0204D03C ; =0x021C5A68 + ldr r2, [r1, #0x0] + lsl r1, r4, #0x3 + add r1, r2, r1 + add r1, #0xa2 + strh r0, [r1, #0x0] + bl sub_02031190 + add r4, r0, #0x0 + ldr r0, _0204D03C ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_0205532C + ldr r1, _0204D03C ; =0x021C5A68 + ldr r2, [r1, #0x0] + lsl r1, r4, #0x3 + add r1, r2, r1 + add r1, #0xa4 + strh r0, [r1, #0x0] + bl sub_02031190 + add r4, r0, #0x0 + ldr r0, _0204D03C ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_020552F8 + ldr r1, _0204D03C ; =0x021C5A68 + ldr r2, [r1, #0x0] + lsl r1, r4, #0x3 + add r1, r2, r1 + add r1, #0xa6 + strb r0, [r1, #0x0] + bl sub_02031190 + add r4, r0, #0x0 + ldr r0, _0204D03C ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_02055320 + ldr r1, _0204D03C ; =0x021C5A68 + ldr r2, [r1, #0x0] + lsl r1, r4, #0x3 + add r1, r2, r1 + add r1, #0x62 + strh r0, [r1, #0x0] + bl sub_02031190 + add r4, r0, #0x0 + ldr r0, _0204D03C ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_0205532C + ldr r1, _0204D03C ; =0x021C5A68 + ldr r2, [r1, #0x0] + lsl r1, r4, #0x3 + add r1, r2, r1 + add r1, #0x64 + strh r0, [r1, #0x0] + bl sub_02031190 + add r4, r0, #0x0 + ldr r0, _0204D03C ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_020552F8 + ldr r1, _0204D03C ; =0x021C5A68 + ldr r2, [r1, #0x0] + lsl r1, r4, #0x3 + add r1, r2, r1 + add r1, #0x66 + strb r0, [r1, #0x0] + pop {r4, pc} + nop +_0204D03C: .word 0x021C5A68 + + thumb_func_start sub_0204D040 +sub_0204D040: ; 0x0204D040 + push {r3-r7, lr} + str r0, [sp, #0x0] + ldr r0, _0204D110 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, _0204D114 ; =0x000002BF + strb r2, [r1, r0] + bl sub_02031190 + ldr r2, _0204D110 ; =0x021C5A68 + add r1, r0, #0x0 + ldr r4, [r2, #0x0] + lsl r6, r1, #0x2 + ldr r0, [r4, #0x54] + ldr r3, [r0, #0x38] + add r0, r4, r6 + str r3, [r0, #0x8] + ldr r0, [r2, #0x0] + mov r3, #0x1 + add r0, r0, r1 + add r0, #0x48 + strb r3, [r0, #0x0] + ldr r0, [sp, #0x0] + ldr r3, [r2, #0x0] + lsl r5, r0, #0x3 + add r0, r3, r5 + add r0, #0xa2 + lsl r4, r1, #0x3 + add r3, r3, r4 + ldrh r0, [r0, #0x0] + add r3, #0xa2 + strh r0, [r3, #0x0] + ldr r3, [r2, #0x0] + add r0, r3, r5 + add r0, #0xa4 + add r3, r3, r4 + ldrh r0, [r0, #0x0] + add r3, #0xa4 + strh r0, [r3, #0x0] + ldr r7, [r2, #0x0] + mov r0, #0xa6 + add r3, r7, r5 + ldrsb r0, [r3, r0] + add r3, r7, r4 + add r3, #0xa6 + strb r0, [r3, #0x0] + ldr r3, [r2, #0x0] + mov r7, #0x29 + add r0, r3, r5 + add r0, #0x62 + add r3, r3, r4 + ldrh r0, [r0, #0x0] + add r3, #0x62 + lsl r7, r7, #0x4 + strh r0, [r3, #0x0] + ldr r3, [r2, #0x0] + add r0, r3, r5 + add r0, #0x64 + add r3, r3, r4 + ldrh r0, [r0, #0x0] + add r3, #0x64 + strh r0, [r3, #0x0] + ldr r0, [r2, #0x0] + mov r3, #0x66 + add r5, r0, r5 + add r0, r0, r4 + ldrsb r5, [r5, r3] + add r0, #0x66 + strb r5, [r0, #0x0] + ldr r0, [sp, #0x0] + ldr r4, [r2, #0x0] + lsl r5, r0, #0x2 + add r0, r4, r5 + ldr r0, [r0, r7] + add r4, r4, r6 + str r0, [r4, r7] + ldr r0, [r2, #0x0] + mov r4, #0x0 + add r0, r0, r5 + str r4, [r0, r7] + ldr r2, [r2, #0x0] + add r0, r2, r6 + ldr r0, [r0, r7] + cmp r0, #0x0 + beq _0204D0F8 + add r3, #0xe4 + add r3, r2, r3 + mov r2, #0x22 + mul r2, r1 + add r1, r3, r2 + bl sub_0202393C +_0204D0F8: + ldr r1, _0204D110 ; =0x021C5A68 + mov r0, #0xff + ldr r3, [r1, #0x0] + ldr r1, [sp, #0x0] + mov r2, #0x22 + mul r2, r1 + add r1, r0, #0x0 + add r2, r3, r2 + add r1, #0x6b + strh r0, [r2, r1] + pop {r3-r7, pc} + nop +_0204D110: .word 0x021C5A68 +_0204D114: .word 0x000002BF + + thumb_func_start sub_0204D118 +sub_0204D118: ; 0x0204D118 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, _0204D160 ; =0x021C5A68 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_020552F8 + add r1, sp, #0x0 + strb r4, [r1, #0x0] + asr r2, r4, #0x8 + strb r2, [r1, #0x1] + asr r2, r6, #0x8 + strb r6, [r1, #0x2] + strb r2, [r1, #0x3] + strb r0, [r1, #0x4] + cmp r5, #0x0 + beq _0204D14A + ldrb r2, [r1, #0x4] + mov r0, #0x80 + orr r0, r2 + strb r0, [r1, #0x4] +_0204D14A: + mov r0, #0x16 + add r1, sp, #0x0 + bl sub_020311D0 + ldr r0, _0204D160 ; =0x021C5A68 + mov r2, #0x1 + ldr r1, [r0, #0x0] + ldr r0, _0204D164 ; =0x000002BB + strb r2, [r1, r0] + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_0204D160: .word 0x021C5A68 +_0204D164: .word 0x000002BB + + thumb_func_start sub_0204D168 +sub_0204D168: ; 0x0204D168 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0204D194 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_02055320 + add r4, r0, #0x0 + ldr r0, _0204D194 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_0205532C + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0204D118 + pop {r3-r5, pc} + nop +_0204D194: .word 0x021C5A68 + + thumb_func_start sub_0204D198 +sub_0204D198: ; 0x0204D198 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02031190 + ldr r1, _0204D1C8 ; =0x021C5A68 + lsl r0, r0, #0x3 + ldr r1, [r1, #0x0] + add r0, r1, r0 + add r0, #0x62 + ldrh r4, [r0, #0x0] + bl sub_02031190 + ldr r1, _0204D1C8 ; =0x021C5A68 + lsl r0, r0, #0x3 + ldr r1, [r1, #0x0] + add r0, r1, r0 + add r0, #0x64 + ldrh r2, [r0, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0204D118 + pop {r3-r5, pc} + nop +_0204D1C8: .word 0x021C5A68 + + thumb_func_start sub_0204D1CC +sub_0204D1CC: ; 0x0204D1CC + push {r3-r5, lr} + sub sp, #0x8 + ldrh r2, [r1, #0x0] + mov r4, #0xf + lsl r4, r4, #0xc + ldrh r3, [r1, #0x2] + cmp r2, r4 + blo _0204D1DE + sub r2, r4, #0x1 +_0204D1DE: + mov r4, #0xf + lsl r4, r4, #0xc + cmp r3, r4 + blo _0204D1E8 + sub r3, r4, #0x1 +_0204D1E8: + mov r4, #0xf + and r0, r4 + add r4, sp, #0x0 + strb r0, [r4, #0x0] + strb r2, [r4, #0x1] + asr r2, r2, #0x8 + add r5, r2, #0x0 + mov r0, #0x1 + and r5, r0 + asr r2, r3, #0x7 + mov r0, #0x2 + and r0, r2 + add r0, r5, r0 + strb r0, [r4, #0x2] + strb r3, [r4, #0x3] + ldrb r0, [r1, #0x7] + cmp r0, #0x0 + beq _0204D214 + ldrb r2, [r4, #0x2] + mov r0, #0x80 + orr r0, r2 + strb r0, [r4, #0x2] +_0204D214: + mov r2, #0x4 + ldrsb r2, [r1, r2] + add r5, sp, #0x0 + ldrb r0, [r5, #0x0] + lsr r4, r2, #0x1f + lsl r3, r2, #0x1e + sub r3, r3, r4 + mov r2, #0x1e + ror r3, r2 + add r2, r4, r3 + lsl r2, r2, #0x4 + add r0, r0, r2 + strb r0, [r5, #0x0] + ldrb r0, [r1, #0x5] + ldrb r2, [r5, #0x0] + add r1, sp, #0x0 + lsl r0, r0, #0x6 + add r0, r2, r0 + strb r0, [r5, #0x0] + mov r0, #0x17 + mov r2, #0x0 + bl sub_02030BC4 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0204D248 +sub_0204D248: ; 0x0204D248 + push {r3-r5, lr} + ldr r0, _0204D2A8 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_02055370 + add r4, r0, #0x0 + ldr r0, _0204D2A8 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_02055378 + add r5, r0, #0x0 + cmp r4, #0x0 + bne _0204D292 + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + beq _0204D292 + ldr r0, _0204D2A8 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204D2AC ; =0x000002BA + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0204D292 + mov r0, #0x1 + bl sub_0204D168 + ldr r0, _0204D2A8 ; =0x021C5A68 + mov r2, #0x1 + ldr r1, [r0, #0x0] + ldr r0, _0204D2AC ; =0x000002BA + strb r2, [r1, r0] +_0204D292: + cmp r4, #0x1 + bne _0204D2A4 + cmp r5, #0x1 + bne _0204D2A4 + ldr r0, _0204D2A8 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, _0204D2AC ; =0x000002BA + strb r2, [r1, r0] +_0204D2A4: + pop {r3-r5, pc} + nop +_0204D2A8: .word 0x021C5A68 +_0204D2AC: .word 0x000002BA + + thumb_func_start sub_0204D2B0 +sub_0204D2B0: ; 0x0204D2B0 + push {r3-r7, lr} + mov r4, #0x0 + ldr r7, _0204D2FC ; =0x021C5A68 + add r5, r4, #0x0 + add r6, r4, #0x0 +_0204D2BA: + ldr r0, [r7, #0x0] + add r2, r0, r4 + add r1, r2, #0x0 + add r1, #0x48 + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204D2E8 + ldr r3, _0204D300 ; =0x00000132 + add r1, r0, #0x0 + ldrb r3, [r2, r3] + add r1, #0x62 + cmp r3, #0x0 + bne _0204D2DC + ldr r3, _0204D304 ; =0x000002BB + ldrb r0, [r0, r3] + cmp r0, #0x0 + beq _0204D2E8 +_0204D2DC: + ldr r0, _0204D300 ; =0x00000132 + add r1, r1, r5 + strb r6, [r2, r0] + add r0, r4, #0x0 + bl sub_0204D1CC +_0204D2E8: + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, #0x8 + blt _0204D2BA + ldr r0, _0204D2FC ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, _0204D304 ; =0x000002BB + strb r2, [r1, r0] + pop {r3-r7, pc} + .balign 4 +_0204D2FC: .word 0x021C5A68 +_0204D300: .word 0x00000132 +_0204D304: .word 0x000002BB + + thumb_func_start sub_0204D308 +sub_0204D308: ; 0x0204D308 + ldr r0, _0204D31C ; =0x021C5A68 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _0204D318 + mov r0, #0xae + mov r1, #0x0 + lsl r0, r0, #0x2 + strb r1, [r2, r0] +_0204D318: + bx lr + nop +_0204D31C: .word 0x021C5A68 + + thumb_func_start sub_0204D320 +sub_0204D320: ; 0x0204D320 + mov r0, #0xb1 + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start sub_0204D328 +sub_0204D328: ; 0x0204D328 + push {r3-r7, lr} + sub sp, #0x10 + ldr r1, _0204D430 ; =0x021C5A68 + add r5, r0, #0x0 + ldr r2, [r1, #0x0] + lsl r6, r5, #0x2 + add r1, r2, r6 + ldr r1, [r1, #0x8] + cmp r1, #0x0 + bne _0204D42A + ldr r1, _0204D434 ; =0x000002BD + ldrb r1, [r2, r1] + cmp r1, #0x0 + bne _0204D42A + bl sub_0202DFA4 + str r0, [sp, #0xc] + cmp r0, #0x0 + beq _0204D42A + ldr r0, _0204D430 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204D438 ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0204D37C + bl sub_02031190 + cmp r5, r0 + beq _0204D37C + ldr r0, _0204D430 ; =0x021C5A68 + mov r1, #0x1 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x8 + ldr r0, [r0, #0x54] + add r1, r5, r1 + ldr r0, [r0, #0x34] + bl sub_02058060 + cmp r0, #0x0 + beq _0204D37C + bl sub_02057654 +_0204D37C: + ldr r0, _0204D430 ; =0x021C5A68 + lsl r4, r5, #0x3 + ldr r7, [r0, #0x0] + ldr r0, [sp, #0xc] + bl sub_020239CC + mov r1, #0x0 + str r1, [sp, #0x0] + str r0, [sp, #0x4] + str r1, [sp, #0x8] + ldr r0, [r7, #0x54] + add r7, r7, r4 + add r1, r7, #0x0 + add r2, r7, #0x0 + add r1, #0xa2 + add r2, #0xa4 + mov r3, #0xa6 + ldrh r1, [r1, #0x0] + ldrh r2, [r2, #0x0] + ldrsb r3, [r7, r3] + ldr r0, [r0, #0x34] + bl sub_02055068 + add r7, r0, #0x0 + bne _0204D3B2 + bl sub_02020C2C +_0204D3B2: + ldr r0, _0204D430 ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r0, r0, r6 + str r7, [r0, #0x8] + add r0, r7, #0x0 + bl sub_020553A0 + mov r1, #0x1 + lsl r1, r1, #0x8 + add r1, r5, r1 + bl sub_02058444 + ldr r0, _0204D430 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204D438 ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204D3DC + add r0, r5, #0x0 + bl sub_0223E4D4 +_0204D3DC: + ldr r0, _0204D430 ; =0x021C5A68 + ldr r1, _0204D438 ; =0x000002BE + ldr r3, [r0, #0x0] + ldrb r2, [r3, r1] + cmp r2, #0x0 + beq _0204D41E + add r0, r3, r5 + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204D41E + sub r0, r1, #0x1 + ldrb r0, [r3, r0] + cmp r0, #0x0 + bne _0204D40E + add r1, r3, r4 + ldr r0, [r3, #0x54] + add r3, r3, r4 + add r1, #0xa2 + add r3, #0xa4 + ldrh r1, [r1, #0x0] + ldrh r3, [r3, #0x0] + mov r2, #0x0 + bl sub_021E5B30 +_0204D40E: + ldr r0, _0204D430 ; =0x021C5A68 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add sp, #0x10 + add r0, r0, r5 + add r0, #0x48 + strb r1, [r0, #0x0] + pop {r3-r7, pc} +_0204D41E: + cmp r2, #0x0 + bne _0204D42A + add r0, r3, r5 + mov r1, #0x1 + add r0, #0x48 + strb r1, [r0, #0x0] +_0204D42A: + add sp, #0x10 + pop {r3-r7, pc} + nop +_0204D430: .word 0x021C5A68 +_0204D434: .word 0x000002BD +_0204D438: .word 0x000002BE + + thumb_func_start sub_0204D43C +sub_0204D43C: ; 0x0204D43C + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _0204D4CC ; =0x021C5A68 + add r6, r1, #0x0 + ldr r0, [r0, #0x0] + add r7, r2, #0x0 + cmp r0, #0x0 + beq _0204D4C8 + add r0, #0x5a + mov r1, #0x0 + mov r2, #0x8 + blx sub_020CE34C + add r0, r5, #0x0 + bl sub_0204CD78 + ldr r0, _0204D4CC ; =0x021C5A68 + lsl r4, r5, #0x2 + ldr r1, [r0, #0x0] + add r0, r1, r4 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0204D492 + ldr r2, [r1, #0x54] + ldr r2, [r2, #0x38] + cmp r2, r0 + beq _0204D488 + ldr r2, _0204D4D0 ; =0x000002BE + ldrb r1, [r1, r2] + cmp r1, #0x0 + bne _0204D47E + cmp r7, #0x0 + beq _0204D484 +_0204D47E: + bl sub_02055168 + b _0204D488 +_0204D484: + bl sub_02055160 +_0204D488: + ldr r0, _0204D4CC ; =0x021C5A68 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + str r1, [r0, #0x8] +_0204D492: + ldr r0, _0204D4CC ; =0x021C5A68 + ldr r1, [r0, #0x0] + add r1, #0x48 + ldrb r0, [r1, r5] + cmp r0, #0x0 + beq _0204D4A6 + cmp r6, #0x0 + bne _0204D4A6 + mov r0, #0x0 + strb r0, [r1, r5] +_0204D4A6: + ldr r0, _0204D4CC ; =0x021C5A68 + mov r2, #0x1 + ldr r0, [r0, #0x0] + add r1, r0, r5 + ldr r0, _0204D4D4 ; =0x00000132 + cmp r6, #0x0 + strb r2, [r1, r0] + bne _0204D4C8 + add r0, r5, #0x0 + bl sub_0204ED9C + ldr r0, _0204D4CC ; =0x021C5A68 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r5 + add r0, #0xfa + strb r1, [r0, #0x0] +_0204D4C8: + pop {r3-r7, pc} + nop +_0204D4CC: .word 0x021C5A68 +_0204D4D0: .word 0x000002BE +_0204D4D4: .word 0x00000132 + + thumb_func_start sub_0204D4D8 +sub_0204D4D8: ; 0x0204D4D8 + ldr r1, _0204D4E8 ; =0x021C48B8 + mov r0, #0x2 + ldr r1, [r1, #0x44] + tst r1, r0 + beq _0204D4E4 + mov r0, #0x1 +_0204D4E4: + ldr r3, _0204D4EC ; =sub_02030F60 + bx r3 + .balign 4 +_0204D4E8: .word 0x021C48B8 +_0204D4EC: .word sub_02030F60 + 1 + + thumb_func_start sub_0204D4F0 +sub_0204D4F0: ; 0x0204D4F0 + push {r4-r6, lr} + add r4, r1, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + beq _0204D530 + bl sub_0204D4D8 + bl sub_02031190 + cmp r0, #0x0 + bne _0204D524 + add r0, r4, #0x0 + bl sub_0204D2B0 + add r0, r4, #0x0 + bl sub_0204D248 + ldr r0, _0204D560 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0204D52A + bl sub_02244D58 + b _0204D52A +_0204D524: + add r0, r4, #0x0 + bl sub_0204D248 +_0204D52A: + add r0, r4, #0x0 + bl sub_0204D568 +_0204D530: + ldr r4, _0204D560 ; =0x021C5A68 + ldr r6, _0204D564 ; =0x000002BE + mov r5, #0x0 +_0204D536: + ldr r0, [r4, #0x0] + ldrb r0, [r0, r6] + cmp r0, #0x0 + beq _0204D556 + bl sub_02031190 + cmp r0, #0x0 + bne _0204D556 + add r0, r5, #0x0 + bl sub_0202DFA4 + cmp r0, #0x0 + bne _0204D556 + add r0, r5, #0x0 + bl sub_02245358 +_0204D556: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0204D536 + pop {r4-r6, pc} + nop +_0204D560: .word 0x021C5A68 +_0204D564: .word 0x000002BE + + thumb_func_start sub_0204D568 +sub_0204D568: ; 0x0204D568 + push {r3-r7, lr} + ldr r4, _0204D608 ; =0x021C5A68 + ldr r7, _0204D60C ; =0x000002BE + mov r5, #0x0 + add r6, sp, #0x0 +_0204D572: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + bne _0204D5A0 + bl sub_02031280 + cmp r0, #0x0 + beq _0204D58A + cmp r5, #0x0 + beq _0204D5A0 +_0204D58A: + bl sub_02031190 + cmp r0, #0x0 + bne _0204D5A0 + ldr r0, [r4, #0x0] + ldrb r0, [r0, r7] + cmp r0, #0x0 + beq _0204D5A0 + add r0, r5, #0x0 + bl sub_02247614 +_0204D5A0: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl sub_02030E7C + cmp r0, #0x0 + bne _0204D5B8 + bl sub_02031280 + cmp r0, #0x0 + beq _0204D5C6 + cmp r5, #0x0 + bne _0204D5C6 +_0204D5B8: + add r0, r5, #0x0 + bl sub_0204DE30 + add r0, r5, #0x0 + bl sub_0204EFCC + b _0204D600 +_0204D5C6: + ldr r0, [r4, #0x0] + add r0, r0, r5 + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0204D600 + bl sub_02031190 + cmp r0, #0x0 + bne _0204D5F0 + ldr r1, [r4, #0x0] + ldr r0, _0204D60C ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204D5F0 + add r0, r5, #0x0 + bl sub_0223EB8C + add r0, r5, #0x0 + bl sub_0223CB08 +_0204D5F0: + strb r5, [r6, #0x0] + ldr r3, [r4, #0x0] + mov r0, #0x0 + ldr r3, [r3, #0x54] + mov r1, #0x1 + add r2, sp, #0x0 + bl sub_0204DBCC +_0204D600: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0204D572 + pop {r3-r7, pc} + .balign 4 +_0204D608: .word 0x021C5A68 +_0204D60C: .word 0x000002BE + + thumb_func_start sub_0204D610 +sub_0204D610: ; 0x0204D610 + ldr r0, _0204D624 ; =0x021C5A68 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0204D620 + mov r0, #0xaf + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + bx lr +_0204D620: + mov r0, #0x0 + bx lr + .balign 4 +_0204D624: .word 0x021C5A68 + + thumb_func_start sub_0204D628 +sub_0204D628: ; 0x0204D628 + push {r3, lr} + ldr r1, _0204D650 ; =0x021C5A68 + ldr r3, [r1, #0x0] + cmp r3, #0x0 + beq _0204D64E + mov r1, #0xaf + lsl r1, r1, #0x2 + ldrb r2, [r3, r1] + cmp r2, r0 + beq _0204D63E + strb r0, [r3, r1] +_0204D63E: + ldr r1, _0204D650 ; =0x021C5A68 + mov r0, #0x3e + ldr r2, [r1, #0x0] + mov r1, #0xaf + lsl r1, r1, #0x2 + add r1, r2, r1 + bl sub_020311D0 +_0204D64E: + pop {r3, pc} + .balign 4 +_0204D650: .word 0x021C5A68 + + thumb_func_start sub_0204D654 +sub_0204D654: ; 0x0204D654 + push {r4, lr} + ldr r2, _0204D678 ; =0x021C5A68 + ldr r4, [r2, #0x0] + cmp r4, #0x0 + beq _0204D674 + mov r1, #0xaf + lsl r1, r1, #0x2 + ldrb r3, [r4, r1] + cmp r3, r0 + beq _0204D674 + strb r0, [r4, r1] + ldr r2, [r2, #0x0] + mov r0, #0x3e + add r1, r2, r1 + bl sub_020311D0 +_0204D674: + pop {r4, pc} + nop +_0204D678: .word 0x021C5A68 + + thumb_func_start sub_0204D67C +sub_0204D67C: ; 0x0204D67C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0204D6BC ; =0x021C5A68 + add r4, r2, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0204D6B8 + cmp r1, #0x1 + beq _0204D692 + bl sub_02020C2C +_0204D692: + cmp r5, #0x8 + blt _0204D69A + bl sub_02020C2C +_0204D69A: + ldrb r0, [r4, #0x0] + mov r1, #0x1 + cmp r0, #0x1 + beq _0204D6A8 + cmp r0, #0x0 + beq _0204D6A8 + mov r1, #0x0 +_0204D6A8: + cmp r1, #0x0 + bne _0204D6B0 + bl sub_02020C2C +_0204D6B0: + ldrb r1, [r4, #0x0] + add r0, r5, #0x0 + bl sub_0204EAD8 +_0204D6B8: + pop {r3-r5, pc} + nop +_0204D6BC: .word 0x021C5A68 + + thumb_func_start sub_0204D6C0 +sub_0204D6C0: ; 0x0204D6C0 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0204D734 ; =0x021C5A68 + add r4, r1, #0x0 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0204D732 + ldr r0, _0204D738 ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0204D6E4 + add r0, r4, #0x0 + bl sub_0204D654 + ldr r0, _0204D734 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204D73C ; =0x000002C1 + strb r4, [r1, r0] +_0204D6E4: + ldr r4, [r5, #0x38] + cmp r4, #0x0 + beq _0204D6F8 + bl sub_02031190 + ldr r1, _0204D734 ; =0x021C5A68 + lsl r0, r0, #0x2 + ldr r1, [r1, #0x0] + add r0, r1, r0 + str r4, [r0, #0x8] +_0204D6F8: + bl sub_02030F40 + cmp r0, #0x0 + beq _0204D712 + bl sub_02031190 + cmp r0, #0x0 + bne _0204D712 + ldr r1, _0204D734 ; =0x021C5A68 + mov r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_0204D89C +_0204D712: + bl sub_02030F40 + cmp r0, #0x0 + beq _0204D732 + bl sub_02031190 + cmp r0, #0x0 + bne _0204D732 + ldr r0, _0204D734 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204D738 ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0204D732 + bl sub_0204EC28 +_0204D732: + pop {r3-r5, pc} + .balign 4 +_0204D734: .word 0x021C5A68 +_0204D738: .word 0x000002BE +_0204D73C: .word 0x000002C1 + + thumb_func_start sub_0204D740 +sub_0204D740: ; 0x0204D740 + mov r0, #0x20 + tst r0, r1 + beq _0204D74A + mov r0, #0x2 + bx lr +_0204D74A: + mov r0, #0x10 + tst r0, r1 + beq _0204D754 + mov r0, #0x3 + bx lr +_0204D754: + mov r0, #0x40 + tst r0, r1 + beq _0204D75E + mov r0, #0x0 + bx lr +_0204D75E: + mov r0, #0x80 + tst r1, r0 + beq _0204D768 + mov r0, #0x1 + bx lr +_0204D768: + sub r0, #0x81 + bx lr + + thumb_func_start sub_0204D76C +sub_0204D76C: ; 0x0204D76C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _0204D7AC ; =0x021C5A68 + add r6, r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + bl sub_02034B64 + add r4, r0, #0x0 + ldr r0, _0204D7AC ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + bl sub_02034B6C + mov r2, #0x0 + cmp r4, #0x0 + ble _0204D7A6 +_0204D78E: + ldrh r1, [r0, #0x18] + cmp r5, r1 + bne _0204D79E + ldrh r1, [r0, #0x1a] + cmp r6, r1 + bne _0204D79E + mov r0, #0x1 + pop {r4-r6, pc} +_0204D79E: + add r2, r2, #0x1 + add r0, #0x20 + cmp r2, r4 + blt _0204D78E +_0204D7A6: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_0204D7AC: .word 0x021C5A68 + + thumb_func_start sub_0204D7B0 +sub_0204D7B0: ; 0x0204D7B0 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _0204D824 ; =0x0000FFFF + add r6, r1, #0x0 + add r7, r2, #0x0 + cmp r5, r0 + beq _0204D812 + cmp r6, r0 + beq _0204D812 + mov r4, #0x0 +_0204D7C4: + cmp r4, r7 + beq _0204D7E0 + add r0, r4, #0x0 + bl sub_0204E544 + cmp r5, r0 + bne _0204D7E0 + add r0, r4, #0x0 + bl sub_0204E598 + cmp r6, r0 + bne _0204D7E0 + mov r0, #0x1 + pop {r3-r7, pc} +_0204D7E0: + add r4, r4, #0x1 + cmp r4, #0x8 + blt _0204D7C4 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0204D76C + cmp r0, #0x0 + beq _0204D7F6 + mov r0, #0x1 + pop {r3-r7, pc} +_0204D7F6: + ldr r0, _0204D828 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204D82C ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204D812 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02246F1C + cmp r0, #0x0 + bne _0204D812 + mov r0, #0x1 + pop {r3-r7, pc} +_0204D812: + ldr r0, _0204D828 ; =0x021C5A68 + add r1, r5, #0x0 + ldr r0, [r0, #0x0] + add r2, r6, #0x0 + ldr r0, [r0, #0x54] + bl sub_0204A6B4 + pop {r3-r7, pc} + nop +_0204D824: .word 0x0000FFFF +_0204D828: .word 0x021C5A68 +_0204D82C: .word 0x000002BE + + thumb_func_start sub_0204D830 +sub_0204D830: ; 0x0204D830 + push {r3, lr} + add r1, r0, #0x0 + ldr r0, _0204D858 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0204D852 + bl sub_02244D40 + bl sub_02244DA0 + cmp r0, #0x0 + bne _0204D84E + mov r0, #0x1 + pop {r3, pc} +_0204D84E: + mov r0, #0x0 + pop {r3, pc} +_0204D852: + mov r0, #0x0 + pop {r3, pc} + nop +_0204D858: .word 0x021C5A68 + + thumb_func_start sub_0204D85C +sub_0204D85C: ; 0x0204D85C + cmp r0, #0x5 + bge _0204D864 + mov r0, #0x8 + bx lr +_0204D864: + cmp r0, #0xa + bge _0204D86C + mov r0, #0x4 + bx lr +_0204D86C: + mov r0, #0x2 + bx lr + + thumb_func_start sub_0204D870 +sub_0204D870: ; 0x0204D870 + push {r3-r4, lr} + sub sp, #0x14 + ldr r3, _0204D898 ; =0x020F5824 + add r4, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, sp, #0x0 + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + cmp r4, #0x5 + str r0, [r2, #0x0] + blt _0204D88E + bl sub_02020C2C +_0204D88E: + lsl r1, r4, #0x2 + add r0, sp, #0x0 + ldr r0, [r0, r1] + add sp, #0x14 + pop {r3-r4, pc} + .balign 4 +_0204D898: .word 0x020F5824 + + thumb_func_start sub_0204D89C +sub_0204D89C: ; 0x0204D89C + push {r3-r7, lr} + sub sp, #0x18 + mov r5, #0x0 + add r0, r5, #0x0 + ldr r6, _0204DAF4 ; =0x021C5A68 + str r5, [sp, #0x4] + str r0, [sp, #0x0] +_0204D8AA: + ldr r0, [r6, #0x0] + add r1, r0, r5 + add r1, #0x48 + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204D976 + add r1, r0, r5 + add r1, #0xe2 + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204D976 + add r1, r0, r5 + add r1, #0xea + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204D976 + add r2, r0, #0x0 + ldr r1, [sp, #0x0] + add r2, #0x62 + ldr r0, [r0, #0x4] + add r4, r2, r1 + cmp r0, #0x0 + beq _0204D8E0 + add r1, r5, #0x0 + bl sub_02244D40 + str r0, [sp, #0x4] +_0204D8E0: + ldr r1, [r6, #0x0] + ldr r0, _0204DAF8 ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204D8F4 + add r0, r5, #0x0 + bl sub_02245F4C + cmp r0, #0x0 + bne _0204D976 +_0204D8F4: + ldr r0, [r6, #0x0] + ldr r1, _0204DAFC ; =0x0000013A + add r0, r0, r5 + ldrb r1, [r0, r1] + cmp r1, #0x0 + beq _0204D90A + ldr r1, _0204DAFC ; =0x0000013A + ldrb r1, [r0, r1] + sub r2, r1, #0x1 + ldr r1, _0204DAFC ; =0x0000013A + strb r2, [r0, r1] +_0204D90A: + ldr r0, [r6, #0x0] + ldr r1, _0204DAFC ; =0x0000013A + add r2, r0, r5 + ldrb r1, [r2, r1] + cmp r1, #0x0 + bne _0204D93C + ldr r1, _0204DAF8 ; =0x000002BE + ldrb r0, [r0, r1] + cmp r0, #0x0 + beq _0204D93C + add r0, r5, #0x0 + bl sub_0223F8D8 + cmp r0, #0x0 + bne _0204D976 + add r0, r5, #0x0 + bl sub_0204D830 + cmp r0, #0x0 + bne _0204D93C + add r0, r5, #0x0 + bl sub_02247544 + cmp r0, #0x0 + bne _0204D976 +_0204D93C: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _0204D94A + bl sub_02244DB0 + cmp r0, #0x0 + beq _0204D976 +_0204D94A: + ldr r0, [r6, #0x0] + add r0, r0, r5 + add r0, #0xf2 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0204D95A + mov r7, #0x0 + b _0204D962 +_0204D95A: + add r0, r5, #0x0 + bl sub_02030F88 + add r7, r0, #0x0 +_0204D962: + add r0, r5, #0x0 + bl sub_02030F74 + strb r0, [r4, #0x5] + ldr r0, [r6, #0x0] + add r1, r0, r5 + ldr r0, _0204DAFC ; =0x0000013A + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204D978 +_0204D976: + b _0204DAE2 +_0204D978: + ldr r0, _0204DB00 ; =0x0000010A + ldr r2, _0204DB04 ; =0x0000012A + ldrb r0, [r1, r0] + ldrb r1, [r1, r2] + bl sub_0204D85C + str r0, [sp, #0x10] + ldr r1, [sp, #0x10] + add r0, r5, #0x0 + bl sub_0204E084 + cmp r0, #0x0 + beq _0204D9A8 + ldr r0, [r6, #0x0] + ldr r1, [sp, #0x10] + add r2, r0, r5 + ldr r0, _0204DAFC ; =0x0000013A + strb r1, [r2, r0] + ldr r0, [r6, #0x0] + mov r1, #0x1 + add r2, r0, r5 + ldr r0, _0204DB08 ; =0x00000132 + strb r1, [r2, r0] + b _0204DAE2 +_0204D9A8: + ldrb r0, [r4, #0x7] + cmp r0, #0x1 + bne _0204D9B8 + ldr r0, [r6, #0x0] + mov r1, #0x1 + add r2, r0, r5 + ldr r0, _0204DB08 ; =0x00000132 + strb r1, [r2, r0] +_0204D9B8: + mov r0, #0x0 + strb r0, [r4, #0x7] + ldr r0, [r6, #0x0] + ldr r1, _0204DB0C ; =0x00000122 + add r0, r0, r5 + ldrb r1, [r0, r1] + cmp r1, #0x2 + bne _0204D9DE + add r1, sp, #0x14 + strb r5, [r1, #0x1] + ldr r1, _0204DB0C ; =0x00000122 + mov r2, #0x1 + strb r2, [r0, r1] + add r1, sp, #0x14 + mov r0, #0x28 + add r1, #0x1 + bl sub_02030C4C + b _0204DAE2 +_0204D9DE: + add r0, r7, #0x0 + add r1, r7, #0x0 + bl sub_0204D740 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204E62C + str r0, [sp, #0xc] + add r0, r5, #0x0 + bl sub_0204E664 + str r0, [sp, #0x8] + ldr r1, [sp, #0xc] + ldr r0, _0204DB10 ; =0x0000FFFF + cmp r1, r0 + beq _0204DAE2 + ldr r1, [sp, #0x8] + cmp r1, r0 + beq _0204DAE2 + mov r0, #0x0 + mvn r0, r0 + cmp r7, r0 + beq _0204DAE2 + mov r0, #0x4 + ldrsb r0, [r4, r0] + cmp r0, r7 + beq _0204DA44 + strb r7, [r4, #0x4] + ldr r0, [r6, #0x0] + mov r1, #0x4 + add r2, r0, r5 + ldr r0, _0204DAFC ; =0x0000013A + strb r1, [r2, r0] + ldr r0, [r6, #0x0] + mov r1, #0x1 + add r2, r0, r5 + ldr r0, _0204DB08 ; =0x00000132 + strb r1, [r2, r0] + ldr r0, [r6, #0x0] + ldr r1, _0204DB0C ; =0x00000122 + add r0, r0, r5 + ldrb r1, [r0, r1] + cmp r1, #0x2 + bls _0204DAE2 + ldr r1, _0204DB0C ; =0x00000122 + ldrb r1, [r0, r1] + sub r2, r1, #0x1 + ldr r1, _0204DB0C ; =0x00000122 + strb r2, [r0, r1] + b _0204DAE2 +_0204DA44: + ldr r0, [r6, #0x0] + ldr r1, _0204DB0C ; =0x00000122 + add r2, r0, r5 + ldrb r1, [r2, r1] + cmp r1, #0x0 + bne _0204DAE2 + ldr r1, _0204DAF8 ; =0x000002BE + ldrb r0, [r0, r1] + cmp r0, #0x0 + beq _0204DA66 + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x8] + add r0, r5, #0x0 + bl sub_0224566C + cmp r0, #0x1 + beq _0204DAE2 +_0204DA66: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x8] + add r2, r5, #0x0 + bl sub_0204D7B0 + cmp r0, #0x0 + beq _0204DA8E + mov r0, #0x1 + strb r0, [r4, #0x7] + ldr r0, [r6, #0x0] + mov r1, #0x1 + add r2, r0, r5 + ldr r0, _0204DB08 ; =0x00000132 + strb r1, [r2, r0] + ldr r0, [r6, #0x0] + mov r1, #0x4 + add r2, r0, r5 + ldr r0, _0204DAFC ; =0x0000013A + strb r1, [r2, r0] + b _0204DAE2 +_0204DA8E: + ldr r0, [r6, #0x0] + mov r1, #0x1 + add r2, r0, r5 + ldr r0, _0204DB08 ; =0x00000132 + strb r1, [r2, r0] + ldr r0, [sp, #0xc] + strh r0, [r4, #0x0] + ldr r0, [sp, #0x8] + strh r0, [r4, #0x2] + strb r7, [r4, #0x4] + ldrb r0, [r4, #0x5] + bl sub_0204D870 + ldr r1, [r6, #0x0] + add r2, r1, r5 + ldr r1, _0204DAFC ; =0x0000013A + strb r0, [r2, r1] + ldr r0, [r6, #0x0] + sub r1, #0x20 + add r0, r0, r5 + ldrb r1, [r0, r1] + cmp r1, #0x0 + beq _0204DAE2 + ldr r1, _0204DB14 ; =0x0000011A + ldrb r1, [r0, r1] + sub r2, r1, #0x1 + ldr r1, _0204DB14 ; =0x0000011A + strb r2, [r0, r1] + ldr r0, [r6, #0x0] + add r1, r0, r5 + ldr r0, _0204DB14 ; =0x0000011A + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0204DAE2 + mov r1, #0x1 + add r0, sp, #0x14 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r2, sp, #0x14 + mov r3, #0x0 + bl sub_0224089C +_0204DAE2: + ldr r0, [sp, #0x0] + add r5, r5, #0x1 + add r0, #0x8 + str r0, [sp, #0x0] + cmp r5, #0x8 + bge _0204DAF0 + b _0204D8AA +_0204DAF0: + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_0204DAF4: .word 0x021C5A68 +_0204DAF8: .word 0x000002BE +_0204DAFC: .word 0x0000013A +_0204DB00: .word 0x0000010A +_0204DB04: .word 0x0000012A +_0204DB08: .word 0x00000132 +_0204DB0C: .word 0x00000122 +_0204DB10: .word 0x0000FFFF +_0204DB14: .word 0x0000011A + + thumb_func_start sub_0204DB18 +sub_0204DB18: ; 0x0204DB18 + push {r3-r7, lr} + ldr r5, _0204DBC0 ; =0x021C5A68 + add r7, r0, #0x0 + ldr r0, [r5, #0x0] + add r3, r2, #0x0 + cmp r0, #0x0 + beq _0204DBBC + add r2, r0, #0x0 + ldrb r4, [r3, #0x4] + add r2, #0x62 + lsl r1, r7, #0x3 + add r2, r2, r1 + mov r1, #0x80 + tst r1, r4 + beq _0204DB3E + ldr r1, _0204DBC4 ; =0x000002BB + mov r2, #0x1 + strb r2, [r0, r1] + pop {r3-r7, pc} +_0204DB3E: + mov r0, #0x4 + ldrsb r1, [r2, r0] + sub r0, r0, #0x5 + cmp r1, r0 + bne _0204DB5A + ldr r4, _0204DBC8 ; =0x00000132 + mov r1, #0x0 + mov r0, #0x1 +_0204DB4E: + ldr r6, [r5, #0x0] + add r6, r6, r1 + add r1, r1, #0x1 + strb r0, [r6, r4] + cmp r1, #0x8 + blt _0204DB4E +_0204DB5A: + mov r0, #0x0 + strh r0, [r2, #0x0] + strh r0, [r2, #0x2] + ldrh r1, [r2, #0x0] + ldrb r0, [r3, #0x0] + add r0, r1, r0 + strh r0, [r2, #0x0] + ldrb r1, [r3, #0x1] + ldrh r0, [r2, #0x0] + lsl r4, r1, #0x8 + mov r1, #0xff + lsl r1, r1, #0x8 + and r4, r1 + add r0, r0, r4 + strh r0, [r2, #0x0] + ldrh r4, [r2, #0x2] + ldrb r0, [r3, #0x2] + add r0, r4, r0 + strh r0, [r2, #0x2] + ldrb r4, [r3, #0x3] + ldrh r0, [r2, #0x2] + lsl r4, r4, #0x8 + and r1, r4 + add r0, r0, r1 + strh r0, [r2, #0x2] + ldrb r1, [r3, #0x4] + mov r0, #0xf + ldr r3, _0204DBC0 ; =0x021C5A68 + and r0, r1 + strb r0, [r2, #0x4] + ldr r1, [r3, #0x0] + mov r0, #0x1 + add r1, r1, r7 + add r1, #0x48 + strb r0, [r1, #0x0] + ldr r1, [r3, #0x0] + add r4, r1, r7 + ldr r1, _0204DBC8 ; =0x00000132 + strb r0, [r4, r1] + ldr r0, [r3, #0x0] + ldrh r1, [r2, #0x0] + ldrh r2, [r2, #0x2] + ldr r0, [r0, #0x54] + bl sub_0204A6B4 + cmp r0, #0x0 + beq _0204DBBC + bl sub_02020C2C +_0204DBBC: + pop {r3-r7, pc} + nop +_0204DBC0: .word 0x021C5A68 +_0204DBC4: .word 0x000002BB +_0204DBC8: .word 0x00000132 + + thumb_func_start sub_0204DBCC +sub_0204DBCC: ; 0x0204DBCC + push {r3-r5, lr} + ldr r0, _0204DC28 ; =0x021C5A68 + ldrb r4, [r2, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0204DC24 + bl sub_02031190 + cmp r4, r0 + beq _0204DC24 + ldr r0, _0204DC28 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204DC2C ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204DC14 + add r0, r4, #0x0 + bl sub_0223E554 + ldr r0, _0204DC28 ; =0x021C5A68 + ldr r3, [r0, #0x0] + ldr r0, _0204DC30 ; =0x000002BD + ldrb r0, [r3, r0] + cmp r0, #0x0 + bne _0204DC14 + lsl r5, r4, #0x3 + add r1, r3, r5 + ldr r0, [r3, #0x54] + add r3, r3, r5 + add r1, #0xa2 + add r3, #0xa4 + ldrh r1, [r1, #0x0] + ldrh r3, [r3, #0x0] + mov r2, #0x0 + bl sub_021E5B30 +_0204DC14: + mov r1, #0x0 + add r0, r4, #0x0 + add r2, r1, #0x0 + bl sub_0204D43C + add r0, r4, #0x0 + bl sub_0202DE78 +_0204DC24: + pop {r3-r5, pc} + nop +_0204DC28: .word 0x021C5A68 +_0204DC2C: .word 0x000002BE +_0204DC30: .word 0x000002BD + + thumb_func_start sub_0204DC34 +sub_0204DC34: ; 0x0204DC34 + mov r0, #0x5 + bx lr + + thumb_func_start sub_0204DC38 +sub_0204DC38: ; 0x0204DC38 + push {r3-r5, lr} + ldrb r1, [r2, #0x0] + mov r0, #0xf + add r3, r1, #0x0 + and r3, r0 + ldr r0, _0204DCB0 ; =0x021C5A68 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0204DCAC + ldrb r4, [r2, #0x2] + add r1, #0xa2 + lsl r0, r3, #0x3 + add r1, r1, r0 + mov r0, #0x80 + tst r0, r4 + beq _0204DC5C + mov r0, #0x1 + b _0204DC5E +_0204DC5C: + mov r0, #0x0 +_0204DC5E: + strb r0, [r1, #0x7] + mov r0, #0x0 + strh r0, [r1, #0x0] + strh r0, [r1, #0x2] + ldrh r4, [r1, #0x0] + ldrb r0, [r2, #0x1] + add r0, r4, r0 + strh r0, [r1, #0x0] + ldrb r4, [r2, #0x2] + ldrh r0, [r1, #0x0] + lsl r5, r4, #0x8 + mov r4, #0x1 + lsl r4, r4, #0x8 + and r5, r4 + add r0, r0, r5 + strh r0, [r1, #0x0] + ldrh r5, [r1, #0x2] + ldrb r0, [r2, #0x3] + add r0, r5, r0 + strh r0, [r1, #0x2] + ldrb r5, [r2, #0x2] + ldrh r0, [r1, #0x2] + lsl r5, r5, #0x7 + and r4, r5 + add r0, r0, r4 + strh r0, [r1, #0x2] + ldrb r0, [r2, #0x0] + asr r4, r0, #0x4 + mov r0, #0x3 + and r4, r0 + strb r4, [r1, #0x4] + ldrb r2, [r2, #0x0] + asr r2, r2, #0x6 + and r0, r2 + strb r0, [r1, #0x5] + lsl r0, r3, #0x18 + lsr r0, r0, #0x18 + bl sub_0204D328 +_0204DCAC: + pop {r3-r5, pc} + nop +_0204DCB0: .word 0x021C5A68 + + thumb_func_start sub_0204DCB4 +sub_0204DCB4: ; 0x0204DCB4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0204DD10 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + bl sub_020377AC + bl sub_02026CC4 + add r4, r0, #0x0 + ldr r0, _0204DD10 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + bl sub_020377AC + bl sub_02026CB4 + ldr r0, _0204DD10 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204DD14 ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204DD0C + bl sub_02031190 + cmp r5, r0 + bne _0204DD0C + add r0, r4, #0x0 + bl sub_020266B0 + add r0, r4, #0x0 + bl sub_020266C8 + cmp r0, #0x32 + bne _0204DD0C + ldr r0, _0204DD10 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0xc] + bl sub_02029FC8 + mov r1, #0x25 + bl sub_0202A170 +_0204DD0C: + pop {r3-r5, pc} + nop +_0204DD10: .word 0x021C5A68 +_0204DD14: .word 0x000002BE + + thumb_func_start sub_0204DD18 +sub_0204DD18: ; 0x0204DD18 + push {r3-r7, lr} + sub sp, #0x10 + ldr r4, _0204DE24 ; =0x020F5808 + add r6, r3, #0x0 + add r5, r0, #0x0 + add r3, sp, #0x4 + mov r2, #0xc +_0204DD26: + ldrb r0, [r4, #0x0] + add r4, r4, #0x1 + strb r0, [r3, #0x0] + add r3, r3, #0x1 + sub r2, r2, #0x1 + bne _0204DD26 + ldr r0, _0204DE28 ; =0x021C5A68 + ldr r2, _0204DE2C ; =0x00000102 + ldr r0, [r0, #0x0] + add r3, r0, r5 + ldrsb r3, [r3, r2] + mov r2, #0x0 + mvn r2, r2 + cmp r3, r2 + beq _0204DD4E + lsl r7, r5, #0x2 + add r0, r0, r7 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _0204DD54 +_0204DD4E: + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0204DD54: + cmp r1, #0x0 + bne _0204DD5E + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204DD5E: + bl sub_020553A0 + add r4, r0, #0x0 + ldr r0, _0204DE28 ; =0x021C5A68 + ldr r1, [r0, #0x0] + add r0, r7, #0x0 + add r0, r1, r0 + ldr r0, [r0, #0x8] + bl sub_020552F8 + str r0, [sp, #0x0] + ldr r0, _0204DE28 ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r1, r0, r5 + ldr r0, _0204DE2C ; =0x00000102 + ldrsb r0, [r1, r0] + bl sub_0204F610 + ldr r1, [sp, #0x0] + cmp r1, r0 + beq _0204DDB4 + add r0, r4, #0x0 + mov r1, #0x80 + bl sub_02058418 + ldr r0, _0204DE28 ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r1, r0, r5 + ldr r0, _0204DE2C ; =0x00000102 + ldrsb r0, [r1, r0] + bl sub_0204F610 + add r1, r0, #0x0 + ldr r0, _0204DE28 ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r0, r0, r7 + ldr r0, [r0, #0x8] + bl sub_02055304 + add r0, r4, #0x0 + mov r1, #0x80 + bl sub_02058410 +_0204DDB4: + add r0, r4, #0x0 + bl sub_0205AE28 + add r0, r4, #0x0 + bl sub_0205AD98 + cmp r0, #0x1 + bne _0204DE1C + add r0, r5, #0x0 + bl sub_0204DCB4 + cmp r6, #0x0 + beq _0204DDD8 + cmp r6, #0x1 + beq _0204DDEE + cmp r6, #0x2 + beq _0204DE06 + b _0204DE1C +_0204DDD8: + ldr r1, _0204DE28 ; =0x021C5A68 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + add r2, r1, r5 + ldr r1, _0204DE2C ; =0x00000102 + ldrsb r2, [r2, r1] + add r1, sp, #0x4 + ldrb r1, [r1, r2] + bl sub_0205ADDC + b _0204DE1C +_0204DDEE: + ldr r1, _0204DE28 ; =0x021C5A68 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + add r2, r1, r5 + ldr r1, _0204DE2C ; =0x00000102 + ldrsb r1, [r2, r1] + add r2, r1, #0x4 + add r1, sp, #0x4 + ldrb r1, [r1, r2] + bl sub_0205ADDC + b _0204DE1C +_0204DE06: + ldr r1, _0204DE28 ; =0x021C5A68 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + add r2, r1, r5 + ldr r1, _0204DE2C ; =0x00000102 + ldrsb r2, [r2, r1] + add r1, sp, #0x4 + add r2, #0x8 + ldrb r1, [r1, r2] + bl sub_0205ADDC +_0204DE1C: + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + nop +_0204DE24: .word 0x020F5808 +_0204DE28: .word 0x021C5A68 +_0204DE2C: .word 0x00000102 + + thumb_func_start sub_0204DE30 +sub_0204DE30: ; 0x0204DE30 + push {r4-r7, lr} + sub sp, #0x1c + add r4, r0, #0x0 + ldr r0, _0204E06C ; =0x021C5A68 + lsl r1, r4, #0x3 + ldr r0, [r0, #0x0] + add r2, r0, #0x0 + add r2, #0xa2 + add r5, r2, r1 + ldr r1, _0204E070 ; =0x00000142 + add r2, r0, r1 + ldrb r1, [r2, r4] + cmp r1, #0x0 + beq _0204DE54 + sub r0, r1, #0x1 + add sp, #0x1c + strb r0, [r2, r4] + pop {r4-r7, pc} +_0204DE54: + ldrh r2, [r5, #0x0] + ldr r1, _0204E074 ; =0x0000FFFF + cmp r2, r1 + beq _0204DF08 + ldrh r2, [r5, #0x2] + cmp r2, r1 + beq _0204DF08 + ldr r1, _0204E078 ; =0x000002BD + ldrb r2, [r0, r1] + cmp r2, #0x0 + bne _0204DF08 + add r1, r1, #0x1 + ldrb r0, [r0, r1] + cmp r0, #0x0 + bne _0204DE86 + bl sub_02031190 + cmp r4, r0 + bne _0204DE86 + ldr r0, _0204E06C ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204E07C ; =0x000002C1 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204DF08 +_0204DE86: + ldr r0, _0204E06C ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x2 + add r0, r1, r0 + ldr r0, [r0, #0x8] + str r0, [sp, #0x18] + cmp r0, #0x0 + bne _0204DE98 + b _0204E068 +_0204DE98: + bl sub_02055320 + ldrh r1, [r5, #0x0] + sub r0, r0, r1 + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + bl sub_0205532C + ldrh r1, [r5, #0x2] + sub r7, r0, r1 + ldr r0, [sp, #0x18] + bl sub_020552F8 + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + cmp r0, #0x0 + bne _0204DEC2 + cmp r7, #0x0 + bne _0204DEC2 + mov r6, #0x0 + b _0204DEEC +_0204DEC2: + ldr r0, [sp, #0x10] + blx sub_020DE3F0 + add r6, r0, #0x0 + add r0, r7, #0x0 + blx sub_020DE3F0 + cmp r6, r0 + ble _0204DEE2 + ldr r0, [sp, #0x10] + cmp r0, #0x0 + ble _0204DEDE + mov r6, #0x20 + b _0204DEEC +_0204DEDE: + mov r6, #0x10 + b _0204DEEC +_0204DEE2: + cmp r7, #0x0 + ble _0204DEEA + mov r6, #0x40 + b _0204DEEC +_0204DEEA: + mov r6, #0x80 +_0204DEEC: + add r0, r7, #0x0 + blx sub_020DE3F0 + ldr r0, [sp, #0x10] + blx sub_020DE3F0 + ldrb r3, [r5, #0x5] + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r6, #0x0 + bl sub_0204DD18 + cmp r0, #0x0 + beq _0204DF0A +_0204DF08: + b _0204E068 +_0204DF0A: + ldrb r0, [r5, #0x5] + mov r7, #0xff + str r0, [sp, #0x14] + cmp r0, #0x3 + bhi _0204DF46 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r1, #0 + lsl r2, r3, #0 + lsl r0, r4, #0 + mov r0, #0x5 + str r0, [sp, #0x8] + b _0204DF46 +_0204DF2E: + .byte 0x04, 0x20 + .byte 0x02, 0x90, 0x02, 0x20, 0x30, 0x43, 0x00, 0x04, 0x06, 0x0C, 0x04, 0xE0, 0x02, 0x20, 0x02, 0x90 + .byte 0x01, 0xE0, 0x01, 0x20, 0x02, 0x90 +_0204DF46: + ldr r0, _0204E06C ; =0x021C5A68 + ldr r1, [r0, #0x0] + mov r0, #0xb + lsl r0, r0, #0x6 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204DF6C + bl sub_02031190 + cmp r4, r0 + bne _0204DF6C + ldr r0, _0204E06C ; =0x021C5A68 + ldr r2, [r0, #0x0] + mov r0, #0xb + lsl r0, r0, #0x6 + ldrb r1, [r2, r0] + sub r1, r1, #0x1 + strb r1, [r2, r0] + b _0204E00C +_0204DF6C: + bl sub_02030FE0 + cmp r0, #0x0 + bne _0204DFA0 + ldr r0, _0204E06C ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204E080 ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204DFA0 + bl sub_02031190 + cmp r4, r0 + bne _0204DFA0 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x18] + ldr r3, [sp, #0x8] + add r1, r6, #0x0 + add r2, r6, #0x0 + bl sub_02057194 + add r7, r0, #0x0 + b _0204E00C +_0204DFA0: + mov r0, #0x2 + add r1, r6, #0x0 + bic r1, r0 + bne _0204DFDE + ldrb r0, [r5, #0x7] + cmp r0, #0x0 + beq _0204DFDE + mov r0, #0x3 + str r0, [sp, #0x14] + mov r0, #0x4 + ldrsb r0, [r5, r0] + cmp r0, #0x3 + bhi _0204DFD2 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + mov r7, #0x1c + b _0204E00C +_0204DFD2: + mov r7, #0x1d + b _0204E00C +_0204DFD6: + .byte 0x1E, 0x27, 0x18, 0xE0, 0x1F, 0x27, 0x16, 0xE0 +_0204DFDE: + cmp r1, #0x0 + bne _0204DFF6 + mov r0, #0x4 + ldrsb r0, [r5, r0] + ldr r1, [sp, #0xc] + cmp r0, r1 + beq _0204DFF6 + mov r1, #0x24 + bl sub_0205AFDC + add r7, r0, #0x0 + b _0204E00C +_0204DFF6: + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x18] + ldr r3, [sp, #0x8] + add r1, r6, #0x0 + add r2, r6, #0x0 + bl sub_02057194 + add r7, r0, #0x0 +_0204E00C: + ldr r0, [sp, #0x18] + bl sub_02057254 + cmp r0, #0x0 + bne _0204E020 + ldr r0, [sp, #0x18] + bl sub_020570C4 + cmp r0, #0x0 + beq _0204E068 +_0204E020: + cmp r7, #0xff + beq _0204E068 + ldr r0, [sp, #0x18] + add r1, r7, #0x0 + bl sub_02057260 + mov r0, #0x2 + bic r6, r0 + beq _0204E068 + ldr r0, _0204E06C ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r1, r0, r4 + ldr r0, _0204E070 ; =0x00000142 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0204E050 + ldr r0, [sp, #0x14] + bl sub_0204D870 + ldr r1, _0204E06C ; =0x021C5A68 + ldr r1, [r1, #0x0] + add r2, r1, r4 + ldr r1, _0204E070 ; =0x00000142 + strb r0, [r2, r1] +_0204E050: + ldr r0, _0204E06C ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204E070 ; =0x00000142 + add r1, r1, r0 + ldrb r0, [r1, r4] + cmp r0, #0x0 + beq _0204E062 + sub r0, r0, #0x1 + strb r0, [r1, r4] +_0204E062: + add r0, r4, #0x0 + bl sub_0204DCB4 +_0204E068: + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 +_0204E06C: .word 0x021C5A68 +_0204E070: .word 0x00000142 +_0204E074: .word 0x0000FFFF +_0204E078: .word 0x000002BD +_0204E07C: .word 0x000002C1 +_0204E080: .word 0x000002BE + + thumb_func_start sub_0204E084 +sub_0204E084: ; 0x0204E084 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r1, #0x0 + ldr r1, _0204E16C ; =0x021C5A68 + add r5, r0, #0x0 + ldr r2, [r1, #0x0] + ldr r1, _0204E170 ; =0x0000010A + add r2, r2, r1 + ldrb r1, [r2, r5] + cmp r1, #0x0 + bne _0204E0A0 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0204E0A0: + cmp r1, #0xff + bne _0204E0AA + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_0204E0AA: + sub r1, r1, #0x1 + strb r1, [r2, r5] + cmp r4, #0x1 + bne _0204E0B8 + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_0204E0B8: + bl sub_0204E544 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204E598 + str r0, [sp, #0x0] + ldr r0, _0204E16C ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r1, r0, r5 + ldr r0, _0204E174 ; =0x00000112 + ldrb r0, [r1, r0] + bl sub_02059BF4 + add r7, r6, r0 + ldr r0, _0204E16C ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r1, r0, r5 + ldr r0, _0204E174 ; =0x00000112 + ldrb r0, [r1, r0] + bl sub_02059C00 + ldr r1, [sp, #0x0] + add r6, r1, r0 + ldr r0, _0204E16C ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r1, r0, r5 + ldr r0, _0204E170 ; =0x0000010A + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204E110 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_0204D7B0 + cmp r0, #0x0 + beq _0204E110 + ldr r1, _0204E16C ; =0x021C5A68 + mov r0, #0x1 + ldr r1, [r1, #0x0] + add r2, r1, r5 + ldr r1, _0204E170 ; =0x0000010A + strb r0, [r2, r1] +_0204E110: + ldr r0, _0204E16C ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204E170 ; =0x0000010A + add r2, r1, r5 + ldrb r0, [r2, r0] + cmp r0, #0x1 + bne _0204E124 + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_0204E124: + cmp r0, #0x0 + bne _0204E13E + mov r1, #0x1 + add r0, sp, #0x4 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r2, sp, #0x4 + mov r3, #0x0 + bl sub_0224089C + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_0204E13E: + add r1, #0x62 + lsl r2, r5, #0x3 + add r0, r1, r2 + strh r7, [r1, r2] + strh r6, [r0, #0x2] + cmp r4, #0x2 + beq _0204E156 + cmp r4, #0x4 + beq _0204E15C + cmp r4, #0x8 + beq _0204E162 + b _0204E166 +_0204E156: + mov r1, #0x0 + strb r1, [r0, #0x5] + b _0204E166 +_0204E15C: + mov r1, #0x1 + strb r1, [r0, #0x5] + b _0204E166 +_0204E162: + mov r1, #0x2 + strb r1, [r0, #0x5] +_0204E166: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0204E16C: .word 0x021C5A68 +_0204E170: .word 0x0000010A +_0204E174: .word 0x00000112 + + thumb_func_start sub_0204E178 +sub_0204E178: ; 0x0204E178 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _0204E1DC ; =0x021C5A68 + add r4, r1, #0x0 + ldr r1, [r0, #0x0] + lsl r0, r5, #0x3 + add r1, #0x62 + add r6, r1, r0 + add r0, r4, #0x0 + add r7, r2, #0x0 + bl sub_0204F610 + ldr r1, _0204E1DC ; =0x021C5A68 + strb r0, [r6, #0x4] + ldr r0, [r1, #0x0] + add r2, r0, r5 + ldr r0, _0204E1E0 ; =0x00000112 + cmp r7, #0x0 + strb r4, [r2, r0] + beq _0204E1B6 + ldr r2, [r1, #0x0] + mov r3, #0x1 + add r2, r2, r5 + add r0, #0x18 + strb r3, [r2, r0] + ldr r0, [r1, #0x0] + mov r2, #0x2d + add r1, r0, r5 + add r0, r2, #0x0 + add r0, #0xdd + b _0204E1CA +_0204E1B6: + ldr r2, [r1, #0x0] + mov r3, #0x0 + add r2, r2, r5 + add r0, #0x18 + strb r3, [r2, r0] + ldr r0, [r1, #0x0] + mov r2, #0x1b + add r1, r0, r5 + add r0, r2, #0x0 + add r0, #0xef +_0204E1CA: + strb r2, [r1, r0] + ldr r0, _0204E1DC ; =0x021C5A68 + mov r2, #0x1 + ldr r0, [r0, #0x0] + add r1, r0, r5 + ldr r0, _0204E1E4 ; =0x00000132 + strb r2, [r1, r0] + pop {r3-r7, pc} + nop +_0204E1DC: .word 0x021C5A68 +_0204E1E0: .word 0x00000112 +_0204E1E4: .word 0x00000132 + + thumb_func_start sub_0204E1E8 +sub_0204E1E8: ; 0x0204E1E8 + ldr r1, _0204E1F8 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r1, #0x0] + add r1, r1, r0 + ldr r0, _0204E1FC ; =0x0000010A + strb r2, [r1, r0] + bx lr + nop +_0204E1F8: .word 0x021C5A68 +_0204E1FC: .word 0x0000010A + + thumb_func_start sub_0204E200 +sub_0204E200: ; 0x0204E200 + ldr r1, _0204E210 ; =0x021C5A68 + mov r2, #0xff + ldr r1, [r1, #0x0] + add r1, r1, r0 + add r0, r2, #0x0 + add r0, #0xb + strb r2, [r1, r0] + bx lr + .balign 4 +_0204E210: .word 0x021C5A68 + + thumb_func_start sub_0204E214 +sub_0204E214: ; 0x0204E214 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _0204E24C ; =0x021C5A68 + add r4, r1, #0x0 + ldr r1, [r0, #0x0] + lsl r0, r5, #0x2 + add r0, r1, r0 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0204E248 + bl sub_020553A0 + mov r1, #0x80 + add r6, r0, #0x0 + bl sub_02058410 + mov r1, #0x1 + add r0, r6, #0x0 + lsl r1, r1, #0x8 + bl sub_02058410 + ldr r0, _0204E24C ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r1, r0, r5 + ldr r0, _0204E250 ; =0x00000102 + strb r4, [r1, r0] +_0204E248: + pop {r4-r6, pc} + nop +_0204E24C: .word 0x021C5A68 +_0204E250: .word 0x00000102 + + thumb_func_start sub_0204E254 +sub_0204E254: ; 0x0204E254 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, _0204E2A0 ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x2 + add r0, r1, r0 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0204E29E + add r2, r1, r4 + ldr r1, _0204E2A4 ; =0x00000102 + ldrsb r2, [r2, r1] + mov r1, #0x0 + mvn r1, r1 + cmp r2, r1 + beq _0204E29E + bl sub_020553A0 + add r5, r0, #0x0 + bl sub_0205AE50 + add r0, r5, #0x0 + mov r1, #0x80 + bl sub_02058418 + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0x8 + bl sub_02058418 + ldr r0, _0204E2A0 ; =0x021C5A68 + mov r2, #0x0 + ldr r0, [r0, #0x0] + mvn r2, r2 + add r1, r0, r4 + ldr r0, _0204E2A4 ; =0x00000102 + strb r2, [r1, r0] +_0204E29E: + pop {r3-r5, pc} + .balign 4 +_0204E2A0: .word 0x021C5A68 +_0204E2A4: .word 0x00000102 + + thumb_func_start sub_0204E2A8 +sub_0204E2A8: ; 0x0204E2A8 + mov r0, #0x4 + bx lr + + thumb_func_start sub_0204E2AC +sub_0204E2AC: ; 0x0204E2AC + ldr r3, _0204E2B0 ; =sub_0204F7FC + bx r3 + .balign 4 +_0204E2B0: .word sub_0204F7FC + 1 + + thumb_func_start sub_0204E2B4 +sub_0204E2B4: ; 0x0204E2B4 + ldr r3, _0204E2B8 ; =sub_0204F7FC + bx r3 + .balign 4 +_0204E2B8: .word sub_0204F7FC + 1 + + thumb_func_start sub_0204E2BC +sub_0204E2BC: ; 0x0204E2BC + ldr r3, _0204E2C4 ; =sub_0204F774 + mov r0, #0x2 + bx r3 + nop +_0204E2C4: .word sub_0204F774 + 1 + + thumb_func_start sub_0204E2C8 +sub_0204E2C8: ; 0x0204E2C8 + ldr r3, _0204E2D0 ; =sub_0204F774 + mov r0, #0x20 + bx r3 + nop +_0204E2D0: .word sub_0204F774 + 1 + + thumb_func_start sub_0204E2D4 +sub_0204E2D4: ; 0x0204E2D4 + ldr r3, _0204E2DC ; =sub_0204F774 + mov r0, #0x1 + bx r3 + nop +_0204E2DC: .word sub_0204F774 + 1 + + thumb_func_start sub_0204E2E0 +sub_0204E2E0: ; 0x0204E2E0 + push {r3, lr} + add r1, sp, #0x0 + strb r0, [r1, #0x0] + mov r0, #0x1a + add r1, sp, #0x0 + bl sub_02030C4C + pop {r3, pc} + + thumb_func_start sub_0204E2F0 +sub_0204E2F0: ; 0x0204E2F0 + ldr r3, _0204E2F8 ; =0x0223E4BD + ldrb r0, [r2, #0x0] + bx r3 + nop +_0204E2F8: .word 0x0223E4BD + + thumb_func_start sub_0204E2FC +sub_0204E2FC: ; 0x0204E2FC + push {r3, lr} + bl sub_02031280 + cmp r0, #0x0 + beq _0204E30A + mov r0, #0x1 + pop {r3, pc} +_0204E30A: + ldr r0, _0204E344 ; =0x021C5A68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E316 + mov r0, #0x0 + pop {r3, pc} +_0204E316: + bl sub_02031190 + bl sub_02030E7C + cmp r0, #0x0 + bne _0204E326 + mov r0, #0x0 + pop {r3, pc} +_0204E326: + ldr r0, _0204E344 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204E348 ; =0x000002BE + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204E33E + bl sub_0204FE5C + cmp r0, #0x0 + bne _0204E33E + mov r0, #0x0 + pop {r3, pc} +_0204E33E: + mov r0, #0x1 + pop {r3, pc} + nop +_0204E344: .word 0x021C5A68 +_0204E348: .word 0x000002BE + + thumb_func_start sub_0204E34C +sub_0204E34C: ; 0x0204E34C + ldr r1, _0204E358 ; =0x021C5A68 + ldr r1, [r1, #0x0] + add r0, r1, r0 + add r0, #0x48 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 +_0204E358: .word 0x021C5A68 + + thumb_func_start sub_0204E35C +sub_0204E35C: ; 0x0204E35C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0204E39C ; =0x021C5A68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E36C + ldr r0, _0204E3A0 ; =0x0000FFFF + pop {r4, pc} +_0204E36C: + bl sub_02031190 + cmp r4, r0 + bne _0204E382 + ldr r0, _0204E39C ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0xa2 + ldrh r0, [r0, #0x0] + pop {r4, pc} +_0204E382: + bl sub_0204E2FC + cmp r0, #0x0 + beq _0204E398 + ldr r0, _0204E39C ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0xa2 + ldrh r0, [r0, #0x0] + pop {r4, pc} +_0204E398: + ldr r0, _0204E3A0 ; =0x0000FFFF + pop {r4, pc} + .balign 4 +_0204E39C: .word 0x021C5A68 +_0204E3A0: .word 0x0000FFFF + + thumb_func_start sub_0204E3A4 +sub_0204E3A4: ; 0x0204E3A4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0204E3E4 ; =0x021C5A68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E3B4 + ldr r0, _0204E3E8 ; =0x0000FFFF + pop {r4, pc} +_0204E3B4: + bl sub_02031190 + cmp r4, r0 + bne _0204E3CA + ldr r0, _0204E3E4 ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0xa4 + ldrh r0, [r0, #0x0] + pop {r4, pc} +_0204E3CA: + bl sub_0204E2FC + cmp r0, #0x0 + beq _0204E3E0 + ldr r0, _0204E3E4 ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0xa4 + ldrh r0, [r0, #0x0] + pop {r4, pc} +_0204E3E0: + ldr r0, _0204E3E8 ; =0x0000FFFF + pop {r4, pc} + .balign 4 +_0204E3E4: .word 0x021C5A68 +_0204E3E8: .word 0x0000FFFF + + thumb_func_start sub_0204E3EC +sub_0204E3EC: ; 0x0204E3EC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0204E438 ; =0x021C5A68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E3FC + ldr r0, _0204E43C ; =0x0000FFFF + pop {r4, pc} +_0204E3FC: + bl sub_02031190 + cmp r4, r0 + bne _0204E412 + ldr r0, _0204E438 ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0xa2 + ldrh r0, [r0, #0x0] + pop {r4, pc} +_0204E412: + bl sub_0204E2FC + cmp r0, #0x0 + beq _0204E428 + ldr r0, _0204E438 ; =0x021C5A68 + ldr r1, [r0, #0x0] + add r0, r1, r4 + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E42C +_0204E428: + ldr r0, _0204E43C ; =0x0000FFFF + pop {r4, pc} +_0204E42C: + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0xa2 + ldrh r0, [r0, #0x0] + pop {r4, pc} + nop +_0204E438: .word 0x021C5A68 +_0204E43C: .word 0x0000FFFF + + thumb_func_start sub_0204E440 +sub_0204E440: ; 0x0204E440 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0204E48C ; =0x021C5A68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E450 + ldr r0, _0204E490 ; =0x0000FFFF + pop {r4, pc} +_0204E450: + bl sub_02031190 + cmp r4, r0 + bne _0204E466 + ldr r0, _0204E48C ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0xa4 + ldrh r0, [r0, #0x0] + pop {r4, pc} +_0204E466: + bl sub_0204E2FC + cmp r0, #0x0 + beq _0204E47C + ldr r0, _0204E48C ; =0x021C5A68 + ldr r1, [r0, #0x0] + add r0, r1, r4 + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E480 +_0204E47C: + ldr r0, _0204E490 ; =0x0000FFFF + pop {r4, pc} +_0204E480: + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0xa4 + ldrh r0, [r0, #0x0] + pop {r4, pc} + nop +_0204E48C: .word 0x021C5A68 +_0204E490: .word 0x0000FFFF + + thumb_func_start sub_0204E494 +sub_0204E494: ; 0x0204E494 + ldr r1, _0204E4AC ; =0x021C5A68 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204E4A6 + lsl r0, r0, #0x3 + add r0, r1, r0 + add r0, #0xa2 + ldrh r0, [r0, #0x0] + bx lr +_0204E4A6: + ldr r0, _0204E4B0 ; =0x0000FFFF + bx lr + nop +_0204E4AC: .word 0x021C5A68 +_0204E4B0: .word 0x0000FFFF + + thumb_func_start sub_0204E4B4 +sub_0204E4B4: ; 0x0204E4B4 + ldr r1, _0204E4CC ; =0x021C5A68 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204E4C6 + lsl r0, r0, #0x3 + add r0, r1, r0 + add r0, #0xa4 + ldrh r0, [r0, #0x0] + bx lr +_0204E4C6: + ldr r0, _0204E4D0 ; =0x0000FFFF + bx lr + nop +_0204E4CC: .word 0x021C5A68 +_0204E4D0: .word 0x0000FFFF + + thumb_func_start sub_0204E4D4 +sub_0204E4D4: ; 0x0204E4D4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204E3EC + ldr r1, _0204E504 ; =0x0000FFFF + cmp r0, r1 + bne _0204E4E6 + add r0, r1, #0x0 + pop {r4, pc} +_0204E4E6: + ldr r0, _0204E508 ; =0x021C5A68 + lsl r4, r4, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r4 + mov r0, #0xa6 + ldrsb r0, [r1, r0] + bl sub_02059BF4 + ldr r1, _0204E508 ; =0x021C5A68 + ldr r1, [r1, #0x0] + add r1, r1, r4 + add r1, #0xa2 + ldrh r1, [r1, #0x0] + add r0, r1, r0 + pop {r4, pc} + .balign 4 +_0204E504: .word 0x0000FFFF +_0204E508: .word 0x021C5A68 + + thumb_func_start sub_0204E50C +sub_0204E50C: ; 0x0204E50C + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204E440 + ldr r1, _0204E53C ; =0x0000FFFF + cmp r0, r1 + bne _0204E51E + add r0, r1, #0x0 + pop {r4, pc} +_0204E51E: + ldr r0, _0204E540 ; =0x021C5A68 + lsl r4, r4, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r4 + mov r0, #0xa6 + ldrsb r0, [r1, r0] + bl sub_02059C00 + ldr r1, _0204E540 ; =0x021C5A68 + ldr r1, [r1, #0x0] + add r1, r1, r4 + add r1, #0xa4 + ldrh r1, [r1, #0x0] + add r0, r1, r0 + pop {r4, pc} + .balign 4 +_0204E53C: .word 0x0000FFFF +_0204E540: .word 0x021C5A68 + + thumb_func_start sub_0204E544 +sub_0204E544: ; 0x0204E544 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0204E590 ; =0x021C5A68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E554 + ldr r0, _0204E594 ; =0x0000FFFF + pop {r4, pc} +_0204E554: + bl sub_02031190 + cmp r4, r0 + bne _0204E56A + ldr r0, _0204E590 ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0x62 + ldrh r0, [r0, #0x0] + pop {r4, pc} +_0204E56A: + bl sub_0204E2FC + cmp r0, #0x0 + beq _0204E580 + ldr r0, _0204E590 ; =0x021C5A68 + ldr r1, [r0, #0x0] + add r0, r1, r4 + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E584 +_0204E580: + ldr r0, _0204E594 ; =0x0000FFFF + pop {r4, pc} +_0204E584: + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0x62 + ldrh r0, [r0, #0x0] + pop {r4, pc} + nop +_0204E590: .word 0x021C5A68 +_0204E594: .word 0x0000FFFF + + thumb_func_start sub_0204E598 +sub_0204E598: ; 0x0204E598 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0204E5E4 ; =0x021C5A68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E5A8 + ldr r0, _0204E5E8 ; =0x0000FFFF + pop {r4, pc} +_0204E5A8: + bl sub_02031190 + cmp r4, r0 + bne _0204E5BE + ldr r0, _0204E5E4 ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0x64 + ldrh r0, [r0, #0x0] + pop {r4, pc} +_0204E5BE: + bl sub_0204E2FC + cmp r0, #0x0 + beq _0204E5D4 + ldr r0, _0204E5E4 ; =0x021C5A68 + ldr r1, [r0, #0x0] + add r0, r1, r4 + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E5D8 +_0204E5D4: + ldr r0, _0204E5E8 ; =0x0000FFFF + pop {r4, pc} +_0204E5D8: + lsl r0, r4, #0x3 + add r0, r1, r0 + add r0, #0x64 + ldrh r0, [r0, #0x0] + pop {r4, pc} + nop +_0204E5E4: .word 0x021C5A68 +_0204E5E8: .word 0x0000FFFF + + thumb_func_start sub_0204E5EC +sub_0204E5EC: ; 0x0204E5EC + ldr r1, _0204E604 ; =0x021C5A68 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204E5FE + lsl r0, r0, #0x3 + add r0, r1, r0 + add r0, #0x62 + ldrh r0, [r0, #0x0] + bx lr +_0204E5FE: + ldr r0, _0204E608 ; =0x0000FFFF + bx lr + nop +_0204E604: .word 0x021C5A68 +_0204E608: .word 0x0000FFFF + + thumb_func_start sub_0204E60C +sub_0204E60C: ; 0x0204E60C + ldr r1, _0204E624 ; =0x021C5A68 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204E61E + lsl r0, r0, #0x3 + add r0, r1, r0 + add r0, #0x64 + ldrh r0, [r0, #0x0] + bx lr +_0204E61E: + ldr r0, _0204E628 ; =0x0000FFFF + bx lr + nop +_0204E624: .word 0x021C5A68 +_0204E628: .word 0x0000FFFF + + thumb_func_start sub_0204E62C +sub_0204E62C: ; 0x0204E62C + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204E544 + ldr r1, _0204E65C ; =0x0000FFFF + cmp r0, r1 + bne _0204E63E + add r0, r1, #0x0 + pop {r4, pc} +_0204E63E: + ldr r0, _0204E660 ; =0x021C5A68 + lsl r4, r4, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r4 + mov r0, #0x66 + ldrsb r0, [r1, r0] + bl sub_02059BF4 + ldr r1, _0204E660 ; =0x021C5A68 + ldr r1, [r1, #0x0] + add r1, r1, r4 + add r1, #0x62 + ldrh r1, [r1, #0x0] + add r0, r1, r0 + pop {r4, pc} + .balign 4 +_0204E65C: .word 0x0000FFFF +_0204E660: .word 0x021C5A68 + + thumb_func_start sub_0204E664 +sub_0204E664: ; 0x0204E664 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204E598 + ldr r1, _0204E694 ; =0x0000FFFF + cmp r0, r1 + bne _0204E676 + add r0, r1, #0x0 + pop {r4, pc} +_0204E676: + ldr r0, _0204E698 ; =0x021C5A68 + lsl r4, r4, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r4 + mov r0, #0x66 + ldrsb r0, [r1, r0] + bl sub_02059C00 + ldr r1, _0204E698 ; =0x021C5A68 + ldr r1, [r1, #0x0] + add r1, r1, r4 + add r1, #0x64 + ldrh r1, [r1, #0x0] + add r0, r1, r0 + pop {r4, pc} + .balign 4 +_0204E694: .word 0x0000FFFF +_0204E698: .word 0x021C5A68 + + thumb_func_start sub_0204E69C +sub_0204E69C: ; 0x0204E69C + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204E2FC + cmp r0, #0x0 + beq _0204E6B6 + ldr r0, _0204E6C8 ; =0x021C5A68 + ldr r1, [r0, #0x0] + add r0, r1, r4 + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E6BC +_0204E6B6: + mov r0, #0x0 + mvn r0, r0 + pop {r4, pc} +_0204E6BC: + lsl r0, r4, #0x3 + add r1, r1, r0 + mov r0, #0xa6 + ldrsb r0, [r1, r0] + pop {r4, pc} + nop +_0204E6C8: .word 0x021C5A68 + + thumb_func_start sub_0204E6CC +sub_0204E6CC: ; 0x0204E6CC + push {r4, lr} + add r4, r0, #0x0 + bl sub_0204E2FC + cmp r0, #0x0 + beq _0204E6E6 + ldr r0, _0204E6F8 ; =0x021C5A68 + ldr r1, [r0, #0x0] + add r0, r1, r4 + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204E6EC +_0204E6E6: + mov r0, #0x0 + mvn r0, r0 + pop {r4, pc} +_0204E6EC: + lsl r0, r4, #0x3 + add r1, r1, r0 + mov r0, #0x66 + ldrsb r0, [r1, r0] + pop {r4, pc} + nop +_0204E6F8: .word 0x021C5A68 + + thumb_func_start sub_0204E6FC +sub_0204E6FC: ; 0x0204E6FC + push {r4, lr} + add r4, r1, #0x0 + ldr r1, _0204E728 ; =0x021C5A68 + lsl r0, r0, #0x3 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0x66 + ldrsb r0, [r1, r0] + bl sub_0204F610 + ldr r2, _0204E728 ; =0x021C5A68 + lsl r1, r4, #0x3 + ldr r3, [r2, #0x0] + add r1, r3, r1 + add r1, #0x66 + strb r0, [r1, #0x0] + ldr r0, [r2, #0x0] + mov r3, #0x1 + add r1, r0, r4 + ldr r0, _0204E72C ; =0x00000132 + strb r3, [r1, r0] + pop {r4, pc} + .balign 4 +_0204E728: .word 0x021C5A68 +_0204E72C: .word 0x00000132 + + thumb_func_start sub_0204E730 +sub_0204E730: ; 0x0204E730 + push {r4, lr} + add r4, r1, #0x0 + ldr r1, _0204E754 ; =0x021C5A68 + lsl r0, r0, #0x3 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0xa6 + ldrsb r0, [r1, r0] + bl sub_0204F610 + ldr r1, _0204E754 ; =0x021C5A68 + ldr r2, [r1, #0x0] + lsl r1, r4, #0x3 + add r1, r2, r1 + add r1, #0xa6 + strb r0, [r1, #0x0] + pop {r4, pc} + nop +_0204E754: .word 0x021C5A68 + + thumb_func_start sub_0204E758 +sub_0204E758: ; 0x0204E758 + push {r4, lr} + add r2, r0, #0x0 + ldr r0, _0204E774 ; =0x021C5A68 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + add r1, r2, #0x0 + ldr r0, [r0, #0x4] + bl sub_02244D40 + add r1, r4, #0x0 + bl sub_02244D98 + pop {r4, pc} + nop +_0204E774: .word 0x021C5A68 + + thumb_func_start sub_0204E778 +sub_0204E778: ; 0x0204E778 + push {r3, lr} + add r1, r0, #0x0 + ldr r0, _0204E790 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl sub_02244D40 + mov r1, #0x0 + bl sub_02244D98 + pop {r3, pc} + nop +_0204E790: .word 0x021C5A68 + + thumb_func_start sub_0204E794 +sub_0204E794: ; 0x0204E794 + push {r3-r7, lr} + sub sp, #0x8 + str r1, [sp, #0x0] + ldr r1, _0204E7C8 ; =0x021C5A68 + add r6, r3, #0x0 + ldr r4, [r1, #0x0] + lsl r7, r0, #0x3 + add r4, #0x62 + add r0, r6, #0x0 + str r2, [sp, #0x4] + add r5, r4, r7 + bl sub_02059BF4 + ldr r1, [sp, #0x0] + add r0, r1, r0 + strh r0, [r4, r7] + add r0, r6, #0x0 + bl sub_02059C00 + ldr r1, [sp, #0x4] + add r0, r1, r0 + strh r0, [r5, #0x2] + strb r6, [r5, #0x4] + add sp, #0x8 + pop {r3-r7, pc} + nop +_0204E7C8: .word 0x021C5A68 + + thumb_func_start sub_0204E7CC +sub_0204E7CC: ; 0x0204E7CC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _0204E848 ; =0x021C5A68 + add r6, r1, #0x0 + ldr r0, [r0, #0x0] + add r7, r2, #0x0 + str r3, [sp, #0x0] + cmp r0, #0x0 + beq _0204E844 + add r2, r0, #0x0 + add r2, #0xa2 + lsl r1, r5, #0x3 + add r4, r2, r1 + ldr r1, _0204E84C ; =0x000002BD + ldrb r1, [r0, r1] + cmp r1, #0x0 + bne _0204E7FA + ldrh r1, [r4, #0x0] + ldrh r3, [r4, #0x2] + ldr r0, [r0, #0x54] + mov r2, #0x0 + bl sub_021E5B30 +_0204E7FA: + strh r6, [r4, #0x0] + ldr r0, [sp, #0x0] + strh r7, [r4, #0x2] + strb r0, [r4, #0x4] + ldr r0, _0204E848 ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r5, #0x2 + add r0, r1, r0 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0204E81A + ldr r3, [sp, #0x0] + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02055514 +_0204E81A: + ldr r0, _0204E848 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204E84C ; =0x000002BD + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0204E832 + ldr r0, [r1, #0x54] + ldrh r1, [r4, #0x0] + ldrh r3, [r4, #0x2] + mov r2, #0x0 + bl sub_021E5B30 +_0204E832: + ldr r0, _0204E848 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204E84C ; =0x000002BD + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0204E844 + add r0, r5, #0x0 + bl sub_0204F0A8 +_0204E844: + pop {r3-r7, pc} + nop +_0204E848: .word 0x021C5A68 +_0204E84C: .word 0x000002BD + + thumb_func_start sub_0204E850 +sub_0204E850: ; 0x0204E850 + push {r3-r4, lr} + sub sp, #0x4 + mov r2, #0x2 + add r1, sp, #0x0 + add r4, r0, #0x0 + strb r2, [r1, #0x0] + strb r4, [r1, #0x1] + ldr r1, _0204E8AC ; =0x021C5A68 + ldr r1, [r1, #0x0] + add r1, r1, r4 + add r1, #0xe2 + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204E88A + bl sub_0204D830 + cmp r0, #0x0 + bne _0204E88A + add r0, r4, #0x0 + bl sub_0204EE9C + cmp r0, #0x0 + add r0, sp, #0x0 + beq _0204E886 + mov r1, #0x3 + strb r1, [r0, #0x0] + b _0204E88A +_0204E886: + mov r1, #0x1 + strb r1, [r0, #0x0] +_0204E88A: + mov r0, #0x1d + add r1, sp, #0x0 + mov r2, #0x2 + bl sub_02030BC4 + cmp r0, #0x0 + beq _0204E8A8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + beq _0204E8A8 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0204EAD8 +_0204E8A8: + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0204E8AC: .word 0x021C5A68 + + thumb_func_start sub_0204E8B0 +sub_0204E8B0: ; 0x0204E8B0 + push {r3-r6} + ldr r2, _0204E8F8 ; =0x021C5A68 + ldr r3, [r2, #0x0] + cmp r3, #0x0 + bne _0204E8C0 + mov r0, #0xff + pop {r3-r6} + bx lr +_0204E8C0: + mov r2, #0x0 + add r4, r3, #0x0 +_0204E8C4: + add r5, r3, #0x0 + add r5, #0x48 + ldrb r5, [r5, #0x0] + cmp r5, #0x0 + beq _0204E8E8 + add r5, r4, #0x0 + add r5, #0x64 + ldrh r6, [r5, #0x0] + add r5, r4, #0x0 + add r5, #0x62 + ldrh r5, [r5, #0x0] + cmp r0, r5 + bne _0204E8E8 + cmp r1, r6 + bne _0204E8E8 + add r0, r2, #0x0 + pop {r3-r6} + bx lr +_0204E8E8: + add r2, r2, #0x1 + add r3, r3, #0x1 + add r4, #0x8 + cmp r2, #0x8 + blt _0204E8C4 + mov r0, #0xff + pop {r3-r6} + bx lr + .balign 4 +_0204E8F8: .word 0x021C5A68 + + thumb_func_start sub_0204E8FC +sub_0204E8FC: ; 0x0204E8FC + push {r4, lr} + add r4, r2, #0x0 + bl sub_02030FE0 + cmp r0, #0x0 + beq _0204E962 + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _0204E936 + bl sub_02031190 + ldrb r1, [r4, #0x1] + cmp r1, r0 + bne _0204E936 + ldr r1, _0204E964 ; =0x021C5A68 + mov r0, #0xae + ldr r3, [r1, #0x0] + lsl r0, r0, #0x2 + ldrb r2, [r3, r0] + cmp r2, #0x0 + bne _0204E962 + mov r2, #0x1 + strb r2, [r3, r0] + ldr r1, [r1, #0x0] + ldr r0, _0204E968 ; =sub_0204D308 + ldr r1, [r1, #0x54] + bl sub_022494C8 + pop {r4, pc} +_0204E936: + ldrb r0, [r4, #0x0] + cmp r0, #0x3 + bne _0204E962 + bl sub_02031190 + ldrb r1, [r4, #0x1] + cmp r1, r0 + bne _0204E962 + ldr r1, _0204E964 ; =0x021C5A68 + mov r0, #0xae + ldr r3, [r1, #0x0] + lsl r0, r0, #0x2 + ldrb r2, [r3, r0] + cmp r2, #0x0 + bne _0204E962 + mov r2, #0x1 + strb r2, [r3, r0] + ldr r1, [r1, #0x0] + ldr r0, _0204E968 ; =sub_0204D308 + ldr r1, [r1, #0x54] + bl sub_0224A7C8 +_0204E962: + pop {r4, pc} + .balign 4 +_0204E964: .word 0x021C5A68 +_0204E968: .word sub_0204D308 + 1 + + thumb_func_start sub_0204E96C +sub_0204E96C: ; 0x0204E96C + push {r4-r6, lr} + ldr r0, _0204EACC ; =0x021C5A68 + add r5, r2, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0xc] + bl sub_020462AC + add r6, r0, #0x0 + ldrb r0, [r5, #0x1] + cmp r0, #0x8 + blo _0204E988 + bl sub_02020C2C +_0204E988: + ldrb r0, [r5, #0x0] + cmp r0, #0x4 + bne _0204E9AA + bl sub_02031190 + ldrb r1, [r5, #0x1] + cmp r1, r0 + bne _0204E9AA + bl sub_0204F7E4 + bl sub_0223D638 + ldr r3, _0204EAD0 ; =sub_0204E2AC + mov r1, #0x48 + mov r2, #0x1 + bl sub_0224DCB8 +_0204E9AA: + ldrb r0, [r5, #0x0] + cmp r0, #0x1 + bne _0204E9B8 + ldrb r0, [r5, #0x1] + ldrb r1, [r5, #0x2] + bl sub_0204E730 +_0204E9B8: + ldrb r0, [r5, #0x0] + cmp r0, #0x1 + bne _0204EA7C + bl sub_02031190 + ldrb r1, [r5, #0x1] + cmp r1, r0 + bne _0204EA7C + ldr r2, _0204EACC ; =0x021C5A68 + ldrb r0, [r5, #0x2] + ldr r2, [r2, #0x0] + ldr r1, _0204EAD4 ; =sub_0204D308 + ldr r2, [r2, #0x54] + bl sub_02247A34 + ldr r0, _0204EACC ; =0x021C5A68 + ldrb r4, [r5, #0x1] + ldr r2, [r0, #0x0] + mov r3, #0xf + add r1, r2, #0x0 + add r1, #0x58 + ldrb r1, [r1, #0x0] + add r2, #0x58 + bic r1, r3 + mov r3, #0xf + and r3, r4 + orr r1, r3 + strb r1, [r2, #0x0] + ldr r2, [r0, #0x0] + mov r3, #0xf0 + add r1, r2, #0x0 + add r1, #0x58 + ldrb r1, [r1, #0x0] + add r2, #0x58 + bic r1, r3 + ldrb r3, [r5, #0x2] + lsl r3, r3, #0x1c + lsr r3, r3, #0x18 + orr r1, r3 + strb r1, [r2, #0x0] + ldr r3, [r0, #0x0] + add r1, r3, #0x0 + add r1, #0x59 + ldrb r2, [r1, #0x0] + mov r1, #0x1 + add r3, #0x59 + bic r2, r1 + strb r2, [r3, #0x0] + ldr r3, [r0, #0x0] + add r1, r3, #0x0 + add r1, #0x59 + ldrb r2, [r1, #0x0] + mov r1, #0x2 + add r3, #0x59 + bic r2, r1 + strb r2, [r3, #0x0] + ldrb r4, [r5, #0x2] + ldr r1, [r0, #0x0] + add r0, r1, r4 + add r0, #0x5a + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204EA7C + ldr r0, [r1, #0x54] + bl sub_020377AC + bl sub_02026CB4 + add r1, r4, #0x0 + bl sub_02026908 + add r0, r6, #0x0 + bl sub_0205F688 + add r1, r0, #0x0 + add r1, r1, #0x1 + lsl r1, r1, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_0205F698 + add r0, r6, #0x0 + bl sub_0205F6A8 + add r1, r0, #0x0 + add r1, r1, #0x1 + lsl r1, r1, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_0205F6B8 + ldr r0, _0204EACC ; =0x021C5A68 + ldrb r1, [r5, #0x2] + ldr r2, [r0, #0x0] + add r2, #0x5a + ldrb r0, [r2, r1] + add r0, r0, #0x1 + strb r0, [r2, r1] +_0204EA7C: + ldrb r0, [r5, #0x0] + cmp r0, #0x1 + bne _0204EA9A + ldrb r4, [r5, #0x2] + bl sub_02031190 + cmp r4, r0 + bne _0204EA9A + ldr r2, _0204EACC ; =0x021C5A68 + ldrb r1, [r5, #0x1] + ldr r2, [r2, #0x0] + add r0, r4, #0x0 + ldr r2, [r2, #0x54] + bl sub_02248DF8 +_0204EA9A: + ldrb r0, [r5, #0x0] + cmp r0, #0x2 + bne _0204EABC + bl sub_02031190 + ldrb r1, [r5, #0x1] + cmp r1, r0 + bne _0204EABC + bl sub_0204F7E4 + bl sub_0223D638 + ldr r3, _0204EAD0 ; =sub_0204E2AC + mov r1, #0x2 + mov r2, #0x1 + bl sub_0224DCB8 +_0204EABC: + ldrb r0, [r5, #0x0] + cmp r0, #0x1 + bne _0204EACA + ldrb r0, [r5, #0x1] + ldrb r1, [r5, #0x2] + bl sub_0223E4A8 +_0204EACA: + pop {r4-r6, pc} + .balign 4 +_0204EACC: .word 0x021C5A68 +_0204EAD0: .word sub_0204E2AC + 1 +_0204EAD4: .word sub_0204D308 + 1 + + thumb_func_start sub_0204EAD8 +sub_0204EAD8: ; 0x0204EAD8 + push {r3-r4} + ldr r3, _0204EB0C ; =0x021C5A68 + ldr r4, [r3, #0x0] + add r4, #0xe2 + ldrb r2, [r4, r0] + cmp r1, r2 + beq _0204EB08 + strb r1, [r4, r0] + ldr r2, [r3, #0x0] + lsl r1, r0, #0x3 + add r2, r2, r1 + mov r4, #0x0 + add r2, #0x69 + strb r4, [r2, #0x0] + ldr r2, [r3, #0x0] + mov r4, #0x1 + add r2, r2, r0 + ldr r0, _0204EB10 ; =0x00000132 + strb r4, [r2, r0] + ldr r0, [r3, #0x0] + mov r2, #0x2 + add r0, r0, r1 + add r0, #0x67 + strb r2, [r0, #0x0] +_0204EB08: + pop {r3-r4} + bx lr + .balign 4 +_0204EB0C: .word 0x021C5A68 +_0204EB10: .word 0x00000132 + + thumb_func_start sub_0204EB14 +sub_0204EB14: ; 0x0204EB14 + ldr r1, _0204EB3C ; =0x021C5A68 + ldr r2, [r1, #0x0] + ldr r1, _0204EB40 ; =0x000002C2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0204EB24 + mov r0, #0x0 + bx lr +_0204EB24: + add r1, r2, r0 + add r1, #0xea + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + beq _0204EB36 + add r0, r2, r0 + add r0, #0xe2 + ldrb r0, [r0, #0x0] + bx lr +_0204EB36: + mov r0, #0x0 + bx lr + nop +_0204EB3C: .word 0x021C5A68 +_0204EB40: .word 0x000002C2 + + thumb_func_start sub_0204EB44 +sub_0204EB44: ; 0x0204EB44 + push {r3-r7, lr} + sub sp, #0x30 + ldr r1, _0204EBF8 ; =0x020F5800 + add r0, sp, #0x8 + ldrh r2, [r1, #0x0] + ldr r3, _0204EBFC ; =0x020F5814 + strh r2, [r0, #0x0] + ldrh r2, [r1, #0x2] + strh r2, [r0, #0x2] + ldrh r2, [r1, #0x4] + ldrh r1, [r1, #0x6] + strh r2, [r0, #0x4] + strh r1, [r0, #0x6] + add r2, sp, #0x20 + mov r1, #0x8 +_0204EB62: + ldrh r0, [r3, #0x0] + add r3, r3, #0x2 + strh r0, [r2, #0x0] + add r2, r2, #0x2 + sub r1, r1, #0x1 + bne _0204EB62 + bl sub_02033534 + bl sub_02031248 + add r6, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x4] + str r0, [sp, #0x0] + cmp r6, #0x2 + bne _0204EB86 + add r5, sp, #0x8 + b _0204EB88 +_0204EB86: + add r5, sp, #0x20 +_0204EB88: + mov r7, #0x0 + cmp r6, #0x0 + ble _0204EBD4 +_0204EB8E: + mov r4, #0x0 + cmp r6, #0x0 + ble _0204EBCC +_0204EB94: + add r0, r4, #0x0 + bl sub_0204E3EC + ldrh r1, [r5, #0x0] + cmp r1, r0 + bne _0204EBC6 + add r0, r4, #0x0 + bl sub_0204E440 + ldrh r1, [r5, #0x2] + cmp r1, r0 + bne _0204EBC6 + ldr r0, [sp, #0x4] + lsl r1, r4, #0x2 + add r0, r0, #0x1 + str r0, [sp, #0x4] + add r0, sp, #0x10 + str r7, [r0, r1] + bl sub_02031190 + cmp r4, r0 + bne _0204EBCC + mov r0, #0x1 + str r0, [sp, #0x0] + b _0204EBCC +_0204EBC6: + add r4, r4, #0x1 + cmp r4, r6 + blt _0204EB94 +_0204EBCC: + add r7, r7, #0x1 + add r5, r5, #0x4 + cmp r7, r6 + blt _0204EB8E +_0204EBD4: + ldr r0, [sp, #0x4] + cmp r0, r6 + bne _0204EBF2 + mov r5, #0x0 + cmp r6, #0x0 + ble _0204EBF2 + add r4, sp, #0x10 +_0204EBE2: + ldr r0, [r4, #0x0] + add r1, r5, #0x0 + bl sub_020313B4 + add r5, r5, #0x1 + add r4, r4, #0x4 + cmp r5, r6 + blt _0204EBE2 +_0204EBF2: + ldr r0, [sp, #0x0] + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_0204EBF8: .word 0x020F5800 +_0204EBFC: .word 0x020F5814 + + thumb_func_start sub_0204EC00 +sub_0204EC00: ; 0x0204EC00 + ldrb r2, [r2, #0x0] + cmp r2, #0x3 + bne _0204EC14 + ldr r1, _0204EC24 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r1, #0x0] + add r0, r1, r0 + add r0, #0xf2 + strb r2, [r0, #0x0] + bx lr +_0204EC14: + ldr r1, _0204EC24 ; =0x021C5A68 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0xad + lsl r0, r0, #0x2 + strb r2, [r1, r0] + bx lr + nop +_0204EC24: .word 0x021C5A68 + + thumb_func_start sub_0204EC28 +sub_0204EC28: ; 0x0204EC28 + push {r3-r7, lr} + sub sp, #0x8 + bl sub_02033534 + bl sub_02031248 + add r7, r0, #0x0 + cmp r7, #0x2 + bne _0204EC40 + ldr r0, _0204ECB4 ; =0x02105E5C + str r0, [sp, #0x0] + b _0204EC44 +_0204EC40: + ldr r0, _0204ECB8 ; =0x02105E64 + str r0, [sp, #0x0] +_0204EC44: + mov r1, #0x0 + add r0, sp, #0x4 + strb r1, [r0, #0x0] + cmp r7, #0x0 + ble _0204ECAE +_0204EC4E: + ldr r0, _0204ECBC ; =0x021C5A68 + add r6, sp, #0x4 + ldr r1, [r0, #0x0] + ldrb r0, [r6, #0x0] + add r1, r1, r0 + mov r0, #0xad + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0204ECA0 + mov r4, #0x0 + cmp r7, #0x0 + ble _0204ECA0 + ldr r5, [sp, #0x0] +_0204EC6A: + ldrb r0, [r6, #0x0] + bl sub_0204E544 + ldrh r1, [r5, #0x0] + cmp r1, r0 + bne _0204EC98 + ldrb r0, [r6, #0x0] + bl sub_0204E598 + ldrh r1, [r5, #0x2] + cmp r1, r0 + bne _0204EC98 + ldr r0, _0204ECBC ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldrb r0, [r6, #0x0] + add r1, r1, r0 + add r1, #0xf2 + mov r0, #0x1 + strb r0, [r1, #0x0] + mov r0, #0x5f + add r1, sp, #0x4 + bl sub_02030C4C +_0204EC98: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r7 + blt _0204EC6A +_0204ECA0: + add r0, sp, #0x4 + ldrb r1, [r0, #0x0] + add r1, r1, #0x1 + strb r1, [r0, #0x0] + ldrb r0, [r0, #0x0] + cmp r0, r7 + blt _0204EC4E +_0204ECAE: + add sp, #0x8 + pop {r3-r7, pc} + nop +_0204ECB4: .word 0x02105E5C +_0204ECB8: .word 0x02105E64 +_0204ECBC: .word 0x021C5A68 + + thumb_func_start sub_0204ECC0 +sub_0204ECC0: ; 0x0204ECC0 + push {r4, lr} + bl sub_02031190 + add r4, r0, #0x0 + bl sub_0204E3EC + cmp r0, #0x8 + ble _0204ECE0 + mov r0, #0x2 + bl sub_0204F6DC + mov r0, #0x2 + mov r1, #0x24 + bl sub_0205AFDC + b _0204ECEE +_0204ECE0: + mov r0, #0x3 + bl sub_0204F6DC + mov r0, #0x3 + mov r1, #0x24 + bl sub_0205AFDC +_0204ECEE: + add r1, r0, #0x0 + ldr r0, _0204ED04 ; =0x021C5A68 + ldr r2, [r0, #0x0] + lsl r0, r4, #0x2 + add r0, r2, r0 + ldr r0, [r0, #0x8] + bl sub_02057260 + bl sub_0204FB14 + pop {r4, pc} + .balign 4 +_0204ED04: .word 0x021C5A68 + + thumb_func_start sub_0204ED08 +sub_0204ED08: ; 0x0204ED08 + push {r3-r7, lr} + sub sp, #0x8 + bl sub_02033534 + bl sub_02031248 + mov r3, #0x0 + str r0, [sp, #0x0] + cmp r0, #0x0 + ble _0204ED3C + ldr r0, _0204ED94 ; =0x021C5A68 + mov r1, #0x66 + add r2, r1, #0x0 + ldr r4, [r0, #0x0] + sub r2, #0x67 +_0204ED26: + ldrsb r0, [r4, r1] + cmp r0, r2 + bne _0204ED32 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0204ED32: + ldr r0, [sp, #0x0] + add r3, r3, #0x1 + add r4, #0x8 + cmp r3, r0 + blt _0204ED26 +_0204ED3C: + ldr r0, [sp, #0x0] + mov r5, #0x0 + cmp r0, #0x0 + ble _0204ED8E + add r4, r5, #0x0 +_0204ED46: + ldr r0, _0204ED94 ; =0x021C5A68 + ldr r7, [r0, #0x0] + mov r0, #0x4 + add r7, #0x62 + add r6, r7, r4 + ldrsb r0, [r6, r0] + bl sub_0204F610 + str r0, [sp, #0x4] + bl sub_02059BF4 + ldrh r1, [r7, r4] + add r0, r1, r0 + strh r0, [r7, r4] + ldr r0, [sp, #0x4] + bl sub_02059C00 + ldrh r1, [r6, #0x2] + add r0, r1, r0 + strh r0, [r6, #0x2] + mov r0, #0x2 + strb r0, [r6, #0x5] + ldr r0, _0204ED94 ; =0x021C5A68 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r2, r0, r5 + ldr r0, _0204ED98 ; =0x00000132 + strb r1, [r2, r0] + add r0, r5, #0x0 + bl sub_0204EAD8 + ldr r0, [sp, #0x0] + add r5, r5, #0x1 + add r4, #0x8 + cmp r5, r0 + blt _0204ED46 +_0204ED8E: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0204ED94: .word 0x021C5A68 +_0204ED98: .word 0x00000132 + + thumb_func_start sub_0204ED9C +sub_0204ED9C: ; 0x0204ED9C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0204EDE8 ; =0x021C5A68 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x2 + add r1, r1, r0 + mov r0, #0x29 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0204EDE2 + bl sub_02016A18 + ldr r2, _0204EDE8 ; =0x021C5A68 + lsl r1, r4, #0x2 + ldr r3, [r2, #0x0] + mov r0, #0x0 + add r3, r3, r1 + mov r1, #0x29 + lsl r1, r1, #0x4 + str r0, [r3, r1] + ldr r1, [r2, #0x0] + mov r3, #0xff + add r1, r1, r4 + add r1, #0xfa + strb r0, [r1, #0x0] + mov r0, #0x22 + ldr r1, [r2, #0x0] + mul r0, r4 + add r1, r1, r0 + add r0, r3, #0x0 + add r0, #0x6b + strh r3, [r1, r0] + mov r0, #0x1 + pop {r4, pc} +_0204EDE2: + mov r0, #0x0 + pop {r4, pc} + nop +_0204EDE8: .word 0x021C5A68 + + thumb_func_start sub_0204EDEC +sub_0204EDEC: ; 0x0204EDEC + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02031190 + cmp r7, r0 + bne _0204EE90 + ldr r0, _0204EE98 ; =0x021C5A68 + ldr r2, [r0, #0x0] + lsl r0, r7, #0x2 + add r1, r2, r0 + mov r0, #0x29 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0204EE96 + ldr r0, [r2, #0x54] + ldr r0, [r0, #0xc] + bl sub_02029FC8 + mov r1, #0x1c + bl sub_0202A170 + ldr r0, _0204EE98 ; =0x021C5A68 + ldr r1, [r0, #0x0] + mov r0, #0xa3 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0204EE2A + bl sub_02016A18 +_0204EE2A: + mov r0, #0x9e + lsl r0, r0, #0x2 + ldr r2, _0204EE98 ; =0x021C5A68 + mov r5, #0x4 + mov r6, #0x10 + add r1, r0, #0x4 +_0204EE36: + ldr r3, [r2, #0x0] + sub r5, r5, #0x1 + add r4, r3, r6 + ldr r3, [r4, r0] + sub r6, r6, #0x4 + str r3, [r4, r1] + cmp r5, #0x1 + bge _0204EE36 + ldr r1, _0204EE98 ; =0x021C5A68 + mov r0, #0x29 + ldr r3, [r1, #0x0] + lsl r4, r7, #0x2 + add r2, r3, r4 + lsl r0, r0, #0x4 + ldr r2, [r2, r0] + sub r0, #0x14 + str r2, [r3, r0] + ldr r5, [r1, #0x0] + ldr r0, [r5, #0x54] + bl sub_020377AC + bl sub_02026CC4 + mov r1, #0x29 + add r2, r5, r4 + lsl r1, r1, #0x4 + ldr r1, [r2, r1] + bl sub_02025C40 + ldr r1, _0204EE98 ; =0x021C5A68 + mov r3, #0x0 + ldr r0, [r1, #0x0] + add r2, r0, r4 + mov r0, #0x29 + lsl r0, r0, #0x4 + str r3, [r2, r0] + mov r0, #0x22 + ldr r1, [r1, #0x0] + mul r0, r7 + mov r2, #0xff + add r1, r1, r0 + add r0, r2, #0x0 + add r0, #0x6b + strh r2, [r1, r0] + pop {r3-r7, pc} +_0204EE90: + add r0, r7, #0x0 + bl sub_0204ED9C +_0204EE96: + pop {r3-r7, pc} + .balign 4 +_0204EE98: .word 0x021C5A68 + + thumb_func_start sub_0204EE9C +sub_0204EE9C: ; 0x0204EE9C + ldr r1, _0204EEB8 ; =0x021C5A68 + lsl r0, r0, #0x2 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0x29 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0204EEB2 + mov r0, #0x1 + bx lr +_0204EEB2: + mov r0, #0x0 + bx lr + nop +_0204EEB8: .word 0x021C5A68 + + thumb_func_start sub_0204EEBC +sub_0204EEBC: ; 0x0204EEBC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _0204EF48 ; =0x021C5A68 + add r6, r1, #0x0 + ldr r1, [r0, #0x0] + lsl r0, r5, #0x2 + add r1, r1, r0 + mov r0, #0x29 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + bne _0204EF44 + add r0, r6, #0x0 + bl sub_0202DFA4 + add r7, r0, #0x0 + beq _0204EF44 + mov r0, #0xf + lsl r4, r5, #0x2 + bl sub_02023928 + mov r3, #0x29 + ldr r1, _0204EF48 ; =0x021C5A68 + add r2, r0, #0x0 + ldr r0, [r1, #0x0] + lsl r3, r3, #0x4 + add r0, r0, r4 + str r2, [r0, r3] + ldr r1, [r1, #0x0] + add r0, r7, #0x0 + add r1, r1, r4 + ldr r1, [r1, r3] + bl sub_0202393C + ldr r1, _0204EF48 ; =0x021C5A68 + mov r2, #0x1 + ldr r0, [r1, #0x0] + ldr r3, _0204EF4C ; =0x0000016A + add r0, r0, r5 + add r0, #0xfa + strb r2, [r0, #0x0] + mov r0, #0x22 + add r2, r5, #0x0 + mul r2, r0 + ldr r0, [r1, #0x0] + add r0, r0, r2 + strh r5, [r0, r3] + ldr r1, [r1, #0x0] + sub r3, #0x20 + add r1, r1, r3 + add r0, r7, #0x0 + add r1, r1, r2 + bl sub_0202393C + bl sub_02031190 + cmp r6, r0 + bne _0204EF40 + ldr r0, _0204EF48 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0xc] + bl sub_02026CB4 + bl sub_02026BC8 +_0204EF40: + mov r0, #0x1 + pop {r3-r7, pc} +_0204EF44: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0204EF48: .word 0x021C5A68 +_0204EF4C: .word 0x0000016A + + thumb_func_start sub_0204EF50 +sub_0204EF50: ; 0x0204EF50 + push {r3-r7, lr} + ldr r4, _0204EFC4 ; =0x021C5A68 + mov r7, #0x29 + ldr r6, [r4, #0x0] + add r3, r0, #0x0 + lsl r7, r7, #0x4 + add r5, r6, r7 + lsl r0, r3, #0x2 + add r2, r1, #0x0 + ldr r1, [r5, r0] + cmp r1, #0x0 + bne _0204EFBE + lsl r1, r2, #0x2 + add r6, r6, r1 + ldr r6, [r6, r7] + cmp r6, #0x0 + beq _0204EFBE + str r6, [r5, r0] + ldr r5, [r4, #0x0] + mov r6, #0x0 + add r1, r5, r1 + str r6, [r1, r7] + ldr r1, [r4, #0x0] + mov r5, #0x1 + add r1, r1, r3 + add r1, #0xfa + strb r5, [r1, #0x0] + ldr r1, [r4, #0x0] + add r1, r1, r2 + add r1, #0xfa + strb r6, [r1, #0x0] + mov r1, #0x22 + ldr r5, [r4, #0x0] + mul r1, r3 + add r6, r5, r1 + ldr r5, _0204EFC8 ; =0x0000016A + strh r3, [r6, r5] + mov r6, #0x22 + mov r5, #0xff + mul r6, r2 + ldr r3, [r4, #0x0] + add r2, r5, #0x0 + add r3, r3, r6 + add r2, #0x6b + strh r5, [r3, r2] + ldr r2, [r4, #0x0] + add r5, #0x4b + add r0, r2, r0 + add r2, r2, r5 + ldr r0, [r0, r7] + add r1, r2, r1 + bl sub_0202393C + mov r0, #0x1 + pop {r3-r7, pc} +_0204EFBE: + mov r0, #0x0 + pop {r3-r7, pc} + nop +_0204EFC4: .word 0x021C5A68 +_0204EFC8: .word 0x0000016A + + thumb_func_start sub_0204EFCC +sub_0204EFCC: ; 0x0204EFCC + push {r4, lr} + ldr r1, _0204F06C ; =0x021C5A68 + add r4, r0, #0x0 + ldr r3, [r1, #0x0] + ldr r1, _0204F070 ; =0x000002BD + ldrb r1, [r3, r1] + cmp r1, #0x0 + bne _0204F068 + lsl r1, r4, #0x2 + add r2, r3, r1 + ldr r1, [r2, #0x8] + cmp r1, #0x0 + beq _0204F068 + add r3, r3, r4 + add r3, #0xfa + ldrb r3, [r3, #0x0] + cmp r3, #0x3 + bhi _0204F068 + add r3, r3, r3 + add r3, pc + ldrh r3, [r3, #0x6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 + lsl r6, r4, #0x1 + lsl r2, r1, #0x1 + lsl r6, r5, #0 + lsl r6, r0, #0 + ldr r0, [r2, #0x28] + cmp r0, #0x0 + bne _0204F01E + add r0, r1, #0x0 + bl sub_020553A0 + bl sub_021E5970 + ldr r1, _0204F06C ; =0x021C5A68 + ldr r2, [r1, #0x0] + lsl r1, r4, #0x2 + add r1, r2, r1 + str r0, [r1, #0x28] +_0204F01E: + ldr r0, _0204F06C ; =0x021C5A68 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0xfa + strb r1, [r0, #0x0] + pop {r4, pc} +_0204F02C: + .byte 0x90, 0x6A, 0x00, 0x28 + .byte 0x1A, 0xD1, 0x08, 0x1C, 0x06, 0xF0, 0xB4, 0xF9, 0x96, 0xF1, 0xCC, 0xFB, 0x0B, 0x49, 0x0A, 0x68 + .byte 0xA1, 0x00, 0x51, 0x18, 0x88, 0x62, 0x10, 0xBD, 0x90, 0x6A, 0x00, 0x28, 0x0C, 0xD1, 0x08, 0x1C + .byte 0x06, 0xF0, 0xA6, 0xF9, 0x96, 0xF1, 0xDE, 0xFA, 0x04, 0x49, 0x0A, 0x68, 0xA1, 0x00, 0x51, 0x18 + .byte 0x88, 0x62, 0x10, 0xBD, 0xFD, 0xF7, 0x88, 0xFE +_0204F068: + pop {r4, pc} + nop +_0204F06C: .word 0x021C5A68 +_0204F070: .word 0x000002BD + + thumb_func_start sub_0204F074 +sub_0204F074: ; 0x0204F074 + ldr r1, _0204F088 ; =0x021C5A68 + ldr r2, [r1, #0x0] + add r2, #0xfa + ldrb r1, [r2, r0] + cmp r1, #0x1 + beq _0204F084 + mov r1, #0x2 + strb r1, [r2, r0] +_0204F084: + bx lr + nop +_0204F088: .word 0x021C5A68 + + thumb_func_start sub_0204F08C +sub_0204F08C: ; 0x0204F08C + ldr r1, _0204F0A0 ; =0x021C5A68 + ldr r2, [r1, #0x0] + add r2, #0xfa + ldrb r1, [r2, r0] + cmp r1, #0x1 + beq _0204F09C + mov r1, #0x3 + strb r1, [r2, r0] +_0204F09C: + ldr r3, _0204F0A4 ; =sub_0204CD78 + bx r3 + .balign 4 +_0204F0A0: .word 0x021C5A68 +_0204F0A4: .word sub_0204CD78 + 1 + + thumb_func_start sub_0204F0A8 +sub_0204F0A8: ; 0x0204F0A8 + ldr r1, _0204F0BC ; =0x021C5A68 + ldr r2, [r1, #0x0] + add r2, #0xfa + ldrb r1, [r2, r0] + cmp r1, #0x1 + beq _0204F0B8 + mov r1, #0x0 + strb r1, [r2, r0] +_0204F0B8: + ldr r3, _0204F0C0 ; =sub_0204CD78 + bx r3 + .balign 4 +_0204F0BC: .word 0x021C5A68 +_0204F0C0: .word sub_0204CD78 + 1 + + thumb_func_start sub_0204F0C4 +sub_0204F0C4: ; 0x0204F0C4 + mov r0, #0x3 + bx lr + + thumb_func_start sub_0204F0C8 +sub_0204F0C8: ; 0x0204F0C8 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r0, sp, #0x0 + strb r4, [r0, #0x1] + ldrb r1, [r2, #0x0] + cmp r1, #0x0 + beq _0204F0E0 + cmp r1, #0x3 + beq _0204F0F0 + add sp, #0x4 + pop {r3-r4, pc} +_0204F0E0: + mov r1, #0x0 + strb r1, [r0, #0x0] + mov r0, #0x55 + add r1, sp, #0x0 + bl sub_02030C4C + add sp, #0x4 + pop {r3-r4, pc} +_0204F0F0: + mov r1, #0x3 + strb r1, [r0, #0x0] + mov r0, #0x55 + add r1, sp, #0x0 + bl sub_02030C4C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0204EAD8 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_0204F108 +sub_0204F108: ; 0x0204F108 + push {r3, lr} + bl sub_02031190 + bl sub_0204F0A8 + bl sub_0223D648 + bl sub_0224DD94 + mov r0, #0x4 + bl sub_0204F774 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204F124 +sub_0204F124: ; 0x0204F124 + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + ldr r0, [r5, #0x4] + mov r4, #0x0 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + add r0, r7, #0x0 + bl sub_02030E7C + cmp r0, #0x0 + bne _0204F14A + add r0, r5, #0x0 + bl sub_02016A18 + add r0, r6, #0x0 + bl sub_0200CAB4 + pop {r3-r7, pc} +_0204F14A: + ldr r0, [r5, #0x0] + add r0, r0, #0x1 + str r0, [r5, #0x0] + cmp r0, #0x3c + ble _0204F156 + mov r4, #0x1 +_0204F156: + cmp r4, #0x0 + beq _0204F172 + ldr r0, _0204F174 ; =0x021C5A68 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, r0, r7 + add r0, #0xea + strb r1, [r0, #0x0] + add r0, r5, #0x0 + bl sub_02016A18 + add r0, r6, #0x0 + bl sub_0200CAB4 +_0204F172: + pop {r3-r7, pc} + .balign 4 +_0204F174: .word 0x021C5A68 + + thumb_func_start sub_0204F178 +sub_0204F178: ; 0x0204F178 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x8 + bl sub_02016998 + add r1, r0, #0x0 + mov r2, #0x0 + str r2, [r1, #0x0] + ldr r0, _0204F1A8 ; =0x021C5A68 + str r4, [r1, #0x4] + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0xea + strb r2, [r0, #0x0] + ldr r0, _0204F1AC ; =sub_0204F124 + mov r2, #0x64 + bl sub_0200CA44 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0204EAD8 + pop {r4, pc} + .balign 4 +_0204F1A8: .word 0x021C5A68 +_0204F1AC: .word sub_0204F124 + 1 + + thumb_func_start sub_0204F1B0 +sub_0204F1B0: ; 0x0204F1B0 + push {r3-r5, lr} + add r4, r1, #0x0 + mov r1, #0x1 + add r5, r0, #0x0 + tst r1, r2 + beq _0204F1C4 + mov r1, #0xb + add r0, sp, #0x0 + strb r1, [r0, #0x0] + b _0204F1F6 +_0204F1C4: + bl sub_0204EE9C + cmp r0, #0x0 + beq _0204F1D4 + mov r1, #0xb + add r0, sp, #0x0 + strb r1, [r0, #0x0] + b _0204F1F6 +_0204F1D4: + cmp r4, #0xff + bne _0204F1DC + mov r0, #0x0 + pop {r3-r5, pc} +_0204F1DC: + add r0, r4, #0x0 + bl sub_0204EE9C + cmp r0, #0x0 + bne _0204F1EA + mov r0, #0x0 + pop {r3-r5, pc} +_0204F1EA: + mov r1, #0x5 + add r0, sp, #0x0 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_0204F178 +_0204F1F6: + add r0, sp, #0x0 + strb r5, [r0, #0x1] + strb r4, [r0, #0x2] + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0204EAD8 + mov r0, #0x55 + add r1, sp, #0x0 + bl sub_02030C4C + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0204F210 +sub_0204F210: ; 0x0204F210 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_0204EE9C + cmp r0, #0x0 + beq _0204F226 + mov r1, #0xc + add r0, sp, #0x0 + strb r1, [r0, #0x0] + b _0204F22C +_0204F226: + add sp, #0x4 + mov r0, #0x0 + pop {r3-r4, pc} +_0204F22C: + strb r4, [r0, #0x1] + mov r0, #0x55 + add r1, sp, #0x0 + bl sub_02030C4C + mov r0, #0x1 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_0204F23C +sub_0204F23C: ; 0x0204F23C + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0223E6B8 + mov r0, #0x0 + bl sub_0204D628 + mov r0, #0x4 + bl sub_0204F74C + bl sub_0223D648 + add r6, r0, #0x0 + ldrb r0, [r5, #0x1] + bl sub_0202DFA4 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl sub_0224DDB8 + cmp r4, #0x0 + beq _0204F29C + bl sub_02031190 + ldr r1, _0204F2C8 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r1, #0x0] + add r0, r1, r0 + add r0, #0xfa + strb r2, [r0, #0x0] + bl sub_02031190 + bl sub_0204F0A8 + bl sub_02031190 + bl sub_0204F074 + bl sub_0223D648 + ldr r3, _0204F2CC ; =sub_0204F108 + mov r1, #0xa + mov r2, #0x1 + bl sub_0224DCB8 + b _0204F2AA +_0204F29C: + bl sub_0223D648 + ldr r3, _0204F2CC ; =sub_0204F108 + mov r1, #0xb + mov r2, #0x1 + bl sub_0224DCB8 +_0204F2AA: + mov r0, #0xff + str r0, [sp, #0x0] + mov r3, #0x0 + ldr r1, _0204F2D0 ; =0x00000424 + mov r0, #0x4 + mov r2, #0x3c + str r3, [sp, #0x4] + bl sub_02004DCC + ldr r0, _0204F2D4 ; =0x000005F6 + bl sub_020054C8 + add sp, #0x8 + pop {r4-r6, pc} + nop +_0204F2C8: .word 0x021C5A68 +_0204F2CC: .word sub_0204F108 + 1 +_0204F2D0: .word 0x00000424 +_0204F2D4: .word 0x000005F6 + + thumb_func_start sub_0204F2D8 +sub_0204F2D8: ; 0x0204F2D8 + push {r4-r5, lr} + sub sp, #0xc + ldr r0, _0204F5E0 ; =0x021C5A68 + add r5, r2, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + bl sub_020377AC + bl sub_02026CB4 + add r4, r0, #0x0 + ldrb r0, [r5, #0x0] + cmp r0, #0x5 + bgt _0204F308 + cmp r0, #0x0 + blt _0204F346 + beq _0204F31E + cmp r0, #0x3 + bne _0204F300 + b _0204F4D2 +_0204F300: + cmp r0, #0x5 + beq _0204F370 + add sp, #0xc + pop {r4-r5, pc} +_0204F308: + cmp r0, #0xc + bgt _0204F346 + cmp r0, #0xb + blt _0204F346 + bne _0204F314 + b _0204F48C +_0204F314: + cmp r0, #0xc + bne _0204F31A + b _0204F4AE +_0204F31A: + add sp, #0xc + pop {r4-r5, pc} +_0204F31E: + ldr r1, _0204F5E0 ; =0x021C5A68 + ldrb r0, [r5, #0x1] + ldr r2, [r1, #0x0] + lsl r1, r0, #0x2 + add r2, r2, r1 + mov r1, #0x29 + lsl r1, r1, #0x4 + ldr r1, [r2, r1] + cmp r1, #0x0 + beq _0204F346 + bl sub_0204ED9C + ldrb r0, [r5, #0x1] + bl sub_0204F0A8 + bl sub_02031190 + ldrb r1, [r5, #0x1] + cmp r1, r0 + beq _0204F348 +_0204F346: + b _0204F5DA +_0204F348: + bl sub_0204F7E4 + bl sub_0223D648 + ldr r3, _0204F5E4 ; =sub_0204E2B4 + mov r1, #0x2 + mov r2, #0x1 + bl sub_0224DCB8 + mov r0, #0xff + str r0, [sp, #0x0] + mov r3, #0x0 + ldr r1, _0204F5E8 ; =0x00000424 + mov r0, #0x4 + mov r2, #0x3c + str r3, [sp, #0x4] + bl sub_02004DCC + add sp, #0xc + pop {r4-r5, pc} +_0204F370: + ldrb r0, [r5, #0x1] + bl sub_0202DFA4 + cmp r0, #0x0 + bne _0204F384 + ldrb r0, [r5, #0x2] + bl sub_0204ED9C + add sp, #0xc + pop {r4-r5, pc} +_0204F384: + ldr r0, _0204F5E0 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldrb r0, [r5, #0x2] + lsl r0, r0, #0x2 + add r1, r1, r0 + mov r0, #0x29 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + bne _0204F3AC + bl sub_02031190 + ldrb r1, [r5, #0x1] + cmp r1, r0 + beq _0204F3A4 + b _0204F5DA +_0204F3A4: + bl sub_0204F7FC + add sp, #0xc + pop {r4-r5, pc} +_0204F3AC: + ldrb r0, [r5, #0x1] + bl sub_0202DFA4 + add r1, r0, #0x0 + ldr r0, _0204F5E0 ; =0x021C5A68 + ldr r2, [r0, #0x0] + ldrb r0, [r5, #0x2] + lsl r0, r0, #0x2 + add r2, r2, r0 + mov r0, #0x29 + lsl r0, r0, #0x4 + ldr r0, [r2, r0] + bl sub_02023AA4 + cmp r0, #0x1 + bne _0204F41A + ldrb r0, [r5, #0x2] + bl sub_0204ED9C + bl sub_02031190 + ldrb r1, [r5, #0x1] + cmp r1, r0 + bne _0204F3FC + add r0, r4, #0x0 + bl sub_02026C00 + bl sub_0204F7E4 + bl sub_0223D648 + ldr r3, _0204F5EC ; =sub_0204E2AC + mov r1, #0xd + mov r2, #0x1 + bl sub_0224DCB8 + ldr r0, _0204F5F0 ; =0x00000625 + bl sub_020054C8 + b _0204F410 +_0204F3FC: + bl sub_02031190 + ldrb r1, [r5, #0x2] + cmp r1, r0 + bne _0204F410 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 + bl sub_0204F23C +_0204F410: + ldrb r0, [r5, #0x1] + bl sub_022472AC + add sp, #0xc + pop {r4-r5, pc} +_0204F41A: + ldrb r0, [r5, #0x1] + ldrb r1, [r5, #0x2] + bl sub_0204EF50 + cmp r0, #0x0 + beq _0204F4B8 + bl sub_02031190 + ldrb r1, [r5, #0x1] + cmp r1, r0 + bne _0204F46C + add r0, r4, #0x0 + bl sub_02026970 + mov r0, #0x1 + bl sub_0204F74C + bl sub_0223D648 + add r4, r0, #0x0 + ldrb r0, [r5, #0x2] + bl sub_0202DFA4 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0224DDB8 + bl sub_0223D648 + ldr r3, _0204F5F4 ; =sub_0204E2D4 + mov r1, #0xc + mov r2, #0x1 + bl sub_0224DCB8 + ldr r0, _0204F5F8 ; =0x00000425 + bl sub_0200521C + ldr r0, _0204F5F0 ; =0x00000625 + bl sub_020054C8 + b _0204F480 +_0204F46C: + bl sub_02031190 + ldrb r1, [r5, #0x2] + cmp r1, r0 + bne _0204F480 + add r0, r5, #0x0 + mov r1, #0x1 + add r2, r4, #0x0 + bl sub_0204F23C +_0204F480: + ldrb r0, [r5, #0x1] + ldrb r1, [r5, #0x2] + bl sub_02247294 + add sp, #0xc + pop {r4-r5, pc} +_0204F48C: + bl sub_02031190 + ldrb r1, [r5, #0x1] + cmp r1, r0 + bne _0204F4B8 + mov r0, #0x2 + bl sub_0204F74C + bl sub_0223D648 + ldr r3, _0204F5FC ; =sub_0204E2BC + mov r1, #0x6 + mov r2, #0x1 + bl sub_0224DCB8 + add sp, #0xc + pop {r4-r5, pc} +_0204F4AE: + bl sub_02031190 + ldrb r1, [r5, #0x1] + cmp r1, r0 + beq _0204F4BA +_0204F4B8: + b _0204F5DA +_0204F4BA: + mov r0, #0x20 + bl sub_0204F74C + bl sub_0223D648 + ldr r3, _0204F600 ; =sub_0204E2C8 + mov r1, #0x5 + mov r2, #0x1 + bl sub_0224DCB8 + add sp, #0xc + pop {r4-r5, pc} +_0204F4D2: + ldr r0, _0204F5E0 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldrb r0, [r5, #0x1] + add r0, r1, r0 + add r0, #0xfa + strb r2, [r0, #0x0] + ldrb r0, [r5, #0x1] + bl sub_0204F0A8 + bl sub_02031190 + ldrb r1, [r5, #0x1] + cmp r1, r0 + bne _0204F58C + ldr r0, _0204F5E0 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + bl sub_020377AC + bl sub_02026CB4 + add r4, r0, #0x0 + bl sub_020269A0 + add r1, sp, #0x8 + strb r0, [r1, #0x0] + add r0, r4, #0x0 + bl sub_020269D4 + ldr r0, _0204F5E0 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205EDF8 + ldr r0, _0204F5E0 ; =0x021C5A68 + ldrb r1, [r5, #0x1] + ldr r0, [r0, #0x0] + lsl r1, r1, #0x2 + add r2, r0, r1 + mov r1, #0x29 + lsl r1, r1, #0x4 + ldr r1, [r2, r1] + cmp r1, #0x0 + beq _0204F54A + ldr r0, [r0, #0x54] + bl sub_0206189C + ldr r0, _0204F5E0 ; =0x021C5A68 + ldr r1, _0204F604 ; =0x0000FFFF + ldr r3, [r0, #0x0] + ldr r0, _0204F608 ; =0x000002B2 + ldrh r2, [r3, r0] + cmp r2, r1 + beq _0204F54A + add r1, r2, #0x1 + strh r1, [r3, r0] +_0204F54A: + bl sub_0204F7E4 + ldr r0, _0204F60C ; =0x0000062B + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_020269A0 + add r1, sp, #0x8 + ldrb r1, [r1, #0x0] + cmp r1, r0 + bne _0204F572 + bl sub_0223D648 + ldr r3, _0204F5EC ; =sub_0204E2AC + mov r1, #0x7 + mov r2, #0x1 + bl sub_0224DCB8 + b _0204F57A +_0204F572: + mov r0, #0x60 + add r1, sp, #0x8 + bl sub_020311D0 +_0204F57A: + mov r0, #0xff + str r0, [sp, #0x0] + mov r3, #0x0 + ldr r1, _0204F5E8 ; =0x00000424 + mov r0, #0x4 + mov r2, #0x3c + str r3, [sp, #0x4] + bl sub_02004DCC +_0204F58C: + ldr r0, _0204F5E0 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldrb r0, [r5, #0x1] + lsl r0, r0, #0x2 + add r1, r1, r0 + mov r0, #0x29 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0204F5D4 + bl sub_02031190 + bl sub_0202DFA4 + add r1, r0, #0x0 + ldr r0, _0204F5E0 ; =0x021C5A68 + ldr r2, [r0, #0x0] + ldrb r0, [r5, #0x1] + lsl r0, r0, #0x2 + add r2, r2, r0 + mov r0, #0x29 + lsl r0, r0, #0x4 + ldr r0, [r2, r0] + bl sub_02023AA4 + cmp r0, #0x1 + bne _0204F5D4 + ldrb r0, [r5, #0x1] + bl sub_0202DFA4 + add r1, r0, #0x0 + ldr r0, _0204F5E0 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + bl sub_020618B8 +_0204F5D4: + ldrb r0, [r5, #0x1] + bl sub_0204EDEC +_0204F5DA: + add sp, #0xc + pop {r4-r5, pc} + nop +_0204F5E0: .word 0x021C5A68 +_0204F5E4: .word sub_0204E2B4 + 1 +_0204F5E8: .word 0x00000424 +_0204F5EC: .word sub_0204E2AC + 1 +_0204F5F0: .word 0x00000625 +_0204F5F4: .word sub_0204E2D4 + 1 +_0204F5F8: .word 0x00000425 +_0204F5FC: .word sub_0204E2BC + 1 +_0204F600: .word sub_0204E2C8 + 1 +_0204F604: .word 0x0000FFFF +_0204F608: .word 0x000002B2 +_0204F60C: .word 0x0000062B + + thumb_func_start sub_0204F610 +sub_0204F610: ; 0x0204F610 + push {r3, lr} + cmp r0, #0x0 + bne _0204F61A + mov r0, #0x1 + pop {r3, pc} +_0204F61A: + cmp r0, #0x1 + bne _0204F622 + mov r0, #0x0 + pop {r3, pc} +_0204F622: + cmp r0, #0x2 + bne _0204F62A + mov r0, #0x3 + pop {r3, pc} +_0204F62A: + cmp r0, #0x3 + bne _0204F632 + mov r0, #0x2 + pop {r3, pc} +_0204F632: + bl sub_02020C2C + mov r0, #0x2 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204F63C +sub_0204F63C: ; 0x0204F63C + push {r3-r4} + ldr r3, _0204F658 ; =0x021C5A68 + ldr r2, [r3, #0x0] + add r4, r2, r0 + ldr r2, _0204F65C ; =0x0000011A + strb r1, [r4, r2] + ldr r1, [r3, #0x0] + mov r4, #0xf + add r0, r1, r0 + add r2, #0x20 + strb r4, [r0, r2] + pop {r3-r4} + bx lr + nop +_0204F658: .word 0x021C5A68 +_0204F65C: .word 0x0000011A + + thumb_func_start sub_0204F660 +sub_0204F660: ; 0x0204F660 + ldr r1, _0204F670 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r1, #0x0] + add r1, r1, r0 + ldr r0, _0204F674 ; =0x0000011A + strb r2, [r1, r0] + bx lr + nop +_0204F670: .word 0x021C5A68 +_0204F674: .word 0x0000011A + + thumb_func_start sub_0204F678 +sub_0204F678: ; 0x0204F678 + push {r3-r4} + ldr r3, _0204F694 ; =0x021C5A68 + ldr r2, [r3, #0x0] + add r4, r2, r0 + ldr r2, _0204F698 ; =0x00000122 + strb r1, [r4, r2] + ldr r1, [r3, #0x0] + mov r4, #0xf + add r0, r1, r0 + add r2, #0x18 + strb r4, [r0, r2] + pop {r3-r4} + bx lr + nop +_0204F694: .word 0x021C5A68 +_0204F698: .word 0x00000122 + + thumb_func_start sub_0204F69C +sub_0204F69C: ; 0x0204F69C + ldr r1, _0204F6AC ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r1, #0x0] + add r1, r1, r0 + ldr r0, _0204F6B0 ; =0x00000122 + strb r2, [r1, r0] + bx lr + nop +_0204F6AC: .word 0x021C5A68 +_0204F6B0: .word 0x00000122 + + thumb_func_start sub_0204F6B4 +sub_0204F6B4: ; 0x0204F6B4 + ldr r1, _0204F6C0 ; =0x021C5A68 + ldr r1, [r1, #0x0] + add r1, r1, r0 + ldr r0, _0204F6C4 ; =0x00000142 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_0204F6C0: .word 0x021C5A68 +_0204F6C4: .word 0x00000142 + + thumb_func_start sub_0204F6C8 +sub_0204F6C8: ; 0x0204F6C8 + ldr r1, _0204F6D4 ; =0x021C5A68 + ldr r1, [r1, #0x0] + add r1, r1, r0 + ldr r0, _0204F6D8 ; =0x0000013A + ldrb r0, [r1, r0] + bx lr + .balign 4 +_0204F6D4: .word 0x021C5A68 +_0204F6D8: .word 0x0000013A + + thumb_func_start sub_0204F6DC +sub_0204F6DC: ; 0x0204F6DC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0204F708 ; =0x021C5A68 + add r1, r4, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x54] + ldr r0, [r0, #0x38] + bl sub_02055304 + bl sub_02031190 + ldr r1, _0204F708 ; =0x021C5A68 + lsl r0, r0, #0x3 + ldr r1, [r1, #0x0] + add r0, r1, r0 + add r0, #0xa6 + strb r4, [r0, #0x0] + mov r0, #0x0 + bl sub_0204D168 + pop {r4, pc} + nop +_0204F708: .word 0x021C5A68 + + thumb_func_start sub_0204F70C +sub_0204F70C: ; 0x0204F70C + push {r4, lr} + ldr r3, _0204F728 ; =0x021C5A68 + lsl r2, r0, #0x3 + ldr r4, [r3, #0x0] + lsl r0, r0, #0x2 + add r2, r4, r2 + add r2, #0xa6 + strb r1, [r2, #0x0] + ldr r2, [r3, #0x0] + add r0, r2, r0 + ldr r0, [r0, #0x8] + bl sub_02055304 + pop {r4, pc} + .balign 4 +_0204F728: .word 0x021C5A68 + + thumb_func_start sub_0204F72C +sub_0204F72C: ; 0x0204F72C + push {r3, lr} + ldr r1, _0204F748 ; =0x021C5A68 + lsl r0, r0, #0x2 + ldr r1, [r1, #0x0] + add r0, r1, r0 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0204F742 + bl sub_020552F8 + pop {r3, pc} +_0204F742: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + .balign 4 +_0204F748: .word 0x021C5A68 + + thumb_func_start sub_0204F74C +sub_0204F74C: ; 0x0204F74C + push {r3, lr} + cmp r0, #0x0 + beq _0204F75C + ldr r1, _0204F770 ; =0x021C5A68 + ldr r2, [r1, #0x0] + ldr r1, [r2, #0x0] + orr r0, r1 + str r0, [r2, #0x0] +_0204F75C: + bl sub_02037760 + ldr r0, _0204F770 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r0, #0x0] + mov r0, #0xaf + lsl r0, r0, #0x2 + strb r2, [r1, r0] + pop {r3, pc} + nop +_0204F770: .word 0x021C5A68 + + thumb_func_start sub_0204F774 +sub_0204F774: ; 0x0204F774 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + beq _0204F788 + ldr r0, _0204F7D0 ; =0x021C5A68 + ldr r2, [r0, #0x0] + mvn r0, r4 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] +_0204F788: + ldr r0, _0204F7D0 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x10 + bne _0204F7A0 + mov r1, #0x1 + add r0, sp, #0x0 + strb r1, [r0, #0x0] + mov r0, #0x3e + add r1, sp, #0x0 + bl sub_020311D0 +_0204F7A0: + ldr r0, _0204F7D0 ; =0x021C5A68 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0204F7CC + cmp r4, #0x10 + beq _0204F7BC + bl sub_02037778 + mov r0, #0x1 + bl sub_0204D628 + add sp, #0x4 + pop {r3-r4, pc} +_0204F7BC: + bl sub_02037778 + ldr r0, _0204F7D0 ; =0x021C5A68 + mov r2, #0x1 + ldr r1, [r0, #0x0] + mov r0, #0xaf + lsl r0, r0, #0x2 + strb r2, [r1, r0] +_0204F7CC: + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0204F7D0: .word 0x021C5A68 + + thumb_func_start sub_0204F7D4 +sub_0204F7D4: ; 0x0204F7D4 + ldr r0, _0204F7E0 ; =0x021C5A68 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x0] + bx lr + nop +_0204F7E0: .word 0x021C5A68 + + thumb_func_start sub_0204F7E4 +sub_0204F7E4: ; 0x0204F7E4 + push {r3, lr} + bl sub_02037760 + ldr r0, _0204F7F8 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r0, #0x0] + mov r0, #0xaf + lsl r0, r0, #0x2 + strb r2, [r1, r0] + pop {r3, pc} + .balign 4 +_0204F7F8: .word 0x021C5A68 + + thumb_func_start sub_0204F7FC +sub_0204F7FC: ; 0x0204F7FC + push {r3, lr} + bl sub_02037778 + mov r0, #0x1 + bl sub_0204D628 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0204F80C +sub_0204F80C: ; 0x0204F80C + push {r3, lr} + ldr r0, _0204F850 ; =0x021C5A68 + ldr r2, [r0, #0x0] + ldr r0, _0204F854 ; =0x000002BF + ldrb r1, [r2, r0] + cmp r1, #0x0 + bne _0204F84C + sub r0, r0, #0x1 + ldrb r0, [r2, r0] + cmp r0, #0x0 + bne _0204F832 + bl sub_0204F7FC + ldr r0, _0204F850 ; =0x021C5A68 + mov r2, #0x1 + ldr r1, [r0, #0x0] + ldr r0, _0204F854 ; =0x000002BF + strb r2, [r1, r0] + pop {r3, pc} +_0204F832: + bl sub_02031190 + bl sub_0223E734 + cmp r0, #0x0 + beq _0204F84C + bl sub_0204F7FC + ldr r0, _0204F850 ; =0x021C5A68 + mov r2, #0x1 + ldr r1, [r0, #0x0] + ldr r0, _0204F854 ; =0x000002BF + strb r2, [r1, r0] +_0204F84C: + pop {r3, pc} + nop +_0204F850: .word 0x021C5A68 +_0204F854: .word 0x000002BF + + thumb_func_start sub_0204F858 +sub_0204F858: ; 0x0204F858 + push {r3, lr} + ldr r0, _0204F884 ; =0x021C5A68 + ldr r2, [r0, #0x0] + ldr r0, _0204F888 ; =0x000002BF + ldrb r1, [r2, r0] + cmp r1, #0x0 + bne _0204F880 + sub r0, r0, #0x1 + ldrb r0, [r2, r0] + cmp r0, #0x0 + beq _0204F880 + bl sub_02031190 + bl sub_0223E734 + cmp r0, #0x0 + bne _0204F880 + mov r0, #0x0 + bl sub_0204D628 +_0204F880: + pop {r3, pc} + nop +_0204F884: .word 0x021C5A68 +_0204F888: .word 0x000002BF + + thumb_func_start sub_0204F88C +sub_0204F88C: ; 0x0204F88C + push {r3-r7, lr} + sub sp, #0x10 + ldr r0, _0204F908 ; =0x021C5A68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0204F902 + mov r6, #0x0 + add r4, r6, #0x0 + add r5, r6, #0x0 +_0204F89E: + ldr r0, _0204F908 ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0204F8F8 + bl sub_02031190 + cmp r6, r0 + beq _0204F8F8 + ldr r0, _0204F908 ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x8] + bl sub_020553A0 + ldr r1, _0204F908 ; =0x021C5A68 + str r0, [sp, #0xc] + ldr r1, [r1, #0x0] + add r1, r1, r5 + add r2, r1, #0x0 + add r2, #0xa2 + ldrh r2, [r2, #0x0] + str r2, [sp, #0x8] + add r2, r1, #0x0 + add r2, #0xa4 + ldrh r7, [r2, #0x0] + mov r2, #0xa6 + ldrsb r1, [r1, r2] + str r1, [sp, #0x4] + ldr r1, [sp, #0x8] + bl sub_02058B30 + ldr r0, [sp, #0xc] + add r1, r7, #0x0 + bl sub_02058B50 + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + mov r2, #0x0 + add r3, r7, #0x0 + bl sub_02058E28 +_0204F8F8: + add r6, r6, #0x1 + add r4, r4, #0x4 + add r5, #0x8 + cmp r6, #0x8 + blt _0204F89E +_0204F902: + add sp, #0x10 + pop {r3-r7, pc} + nop +_0204F908: .word 0x021C5A68 + + thumb_func_start sub_0204F90C +sub_0204F90C: ; 0x0204F90C + push {r4-r5} + mov r3, #0xff + mov r4, #0x0 + add r0, r3, #0x0 + ldr r1, _0204F92C ; =0x021C5A68 + add r5, r4, #0x0 + add r0, #0x6b +_0204F91A: + ldr r2, [r1, #0x0] + add r4, r4, #0x1 + add r2, r2, r5 + add r5, #0x22 + strh r3, [r2, r0] + cmp r4, #0x8 + blt _0204F91A + pop {r4-r5} + bx lr + .balign 4 +_0204F92C: .word 0x021C5A68 + + thumb_func_start sub_0204F930 +sub_0204F930: ; 0x0204F930 + push {r3-r5, lr} + ldr r0, _0204F9B0 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, _0204F9B4 ; =0x000002B9 + strb r2, [r1, r0] + bl sub_02031190 + ldr r1, _0204F9B0 ; =0x021C5A68 + lsl r0, r0, #0x2 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0x29 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0204F96E + bl sub_02031190 + ldr r1, _0204F9B0 ; =0x021C5A68 + add r3, r0, #0x0 + ldr r2, [r1, #0x0] + lsl r1, r3, #0x2 + add r2, r2, r1 + mov r1, #0x29 + lsl r1, r1, #0x4 + ldr r1, [r2, r1] + mov r0, #0x5b + bl sub_020311D0 + pop {r3-r5, pc} +_0204F96E: + mov r0, #0xf + bl sub_02023928 + add r4, r0, #0x0 + mov r0, #0x14 + mov r1, #0xf + bl sub_020219F4 + add r5, r0, #0x0 + cmp r4, #0x0 + bne _0204F988 + bl sub_02020C2C +_0204F988: + cmp r5, #0x0 + bne _0204F990 + bl sub_02020C2C +_0204F990: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0202397C + mov r0, #0x5b + add r1, r4, #0x0 + bl sub_020311D0 + add r0, r5, #0x0 + bl sub_02021A20 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r3-r5, pc} + nop +_0204F9B0: .word 0x021C5A68 +_0204F9B4: .word 0x000002B9 + + thumb_func_start sub_0204F9B8 +sub_0204F9B8: ; 0x0204F9B8 + mov r0, #0x20 + bx lr + + thumb_func_start sub_0204F9BC +sub_0204F9BC: ; 0x0204F9BC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, sp, #0x4 + strb r5, [r0, #0x0] + ldr r0, _0204FA54 ; =0x021C5A68 + add r6, r2, #0x0 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _0204FA4C + ldr r1, _0204FA58 ; =0x0000014A + mov r0, #0x22 + add r4, r5, #0x0 + mul r4, r0 + add r1, r2, r1 + add r0, r6, #0x0 + add r1, r1, r4 + bl sub_0202393C + add r0, r6, #0x0 + mov r1, #0xf + bl sub_020239A0 + str r0, [sp, #0x0] + bl sub_02021D3C + cmp r0, #0x0 + beq _0204F9FE + ldr r0, _0204FA54 ; =0x021C5A68 + ldr r0, [r0, #0x0] + add r1, r0, r4 + ldr r0, _0204FA5C ; =0x0000016A + strh r5, [r1, r0] +_0204F9FE: + mov r4, #0x0 + ldr r6, _0204FA54 ; =0x021C5A68 + ldr r7, _0204FA5C ; =0x0000016A + add r5, r4, #0x0 +_0204FA06: + ldr r0, [r6, #0x0] + add r1, r0, r5 + ldrh r0, [r1, r7] + cmp r0, #0xff + beq _0204FA26 + ldr r0, _0204FA5C ; =0x0000016A + strh r4, [r1, r0] + mov r0, #0x5c + add r1, r0, #0x0 + ldr r2, [r6, #0x0] + add r1, #0xee + add r1, r2, r1 + add r1, r1, r5 + mov r2, #0x22 + bl sub_02030B3C +_0204FA26: + add r4, r4, #0x1 + add r5, #0x22 + cmp r4, #0x8 + blt _0204FA06 + mov r0, #0x5d + add r1, sp, #0x4 + mov r2, #0x1 + bl sub_02030BC4 + ldr r0, [sp, #0x0] + bl sub_02021A20 + ldr r0, _0204FA54 ; =0x021C5A68 + mov r2, #0x1 + ldr r1, [r0, #0x0] + ldr r0, _0204FA60 ; =0x000002C2 + add sp, #0x8 + strb r2, [r1, r0] + pop {r3-r7, pc} +_0204FA4C: + bl sub_02020C2C + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0204FA54: .word 0x021C5A68 +_0204FA58: .word 0x0000014A +_0204FA5C: .word 0x0000016A +_0204FA60: .word 0x000002C2 + + thumb_func_start sub_0204FA64 +sub_0204FA64: ; 0x0204FA64 + ldr r0, _0204FA70 ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204FA74 ; =0x0000025A + add r0, r1, r0 + bx lr + nop +_0204FA70: .word 0x021C5A68 +_0204FA74: .word 0x0000025A + + thumb_func_start sub_0204FA78 +sub_0204FA78: ; 0x0204FA78 + push {r4-r6, lr} + ldr r0, _0204FAC8 ; =0x021C5A68 + add r6, r2, #0x0 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0204FAC4 + ldrh r5, [r6, #0x20] + lsl r0, r5, #0x2 + add r1, r1, r0 + mov r0, #0x29 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0204FA98 + bl sub_02016A18 +_0204FA98: + mov r0, #0xf + lsl r4, r5, #0x2 + bl sub_02023928 + ldr r2, _0204FAC8 ; =0x021C5A68 + ldr r1, [r2, #0x0] + add r3, r1, r4 + mov r1, #0x29 + lsl r1, r1, #0x4 + str r0, [r3, r1] + ldr r2, [r2, #0x0] + add r0, r6, #0x0 + add r2, r2, r4 + ldr r1, [r2, r1] + bl sub_0202393C + ldr r0, _0204FAC8 ; =0x021C5A68 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, r0, r5 + add r0, #0xfa + strb r1, [r0, #0x0] +_0204FAC4: + pop {r4-r6, pc} + nop +_0204FAC8: .word 0x021C5A68 + + thumb_func_start sub_0204FACC +sub_0204FACC: ; 0x0204FACC + mov r0, #0x22 + bx lr + + thumb_func_start sub_0204FAD0 +sub_0204FAD0: ; 0x0204FAD0 + push {r4, lr} + add r4, r2, #0x0 + bl sub_02031190 + ldrb r1, [r4, #0x0] + cmp r1, r0 + bne _0204FAE8 + ldr r0, _0204FAF4 ; =0x021C5A68 + mov r2, #0x1 + ldr r1, [r0, #0x0] + ldr r0, _0204FAF8 ; =0x000002B9 + strb r2, [r1, r0] +_0204FAE8: + ldr r0, _0204FAF4 ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, _0204FAFC ; =0x000002C2 + strb r2, [r1, r0] + pop {r4, pc} + .balign 4 +_0204FAF4: .word 0x021C5A68 +_0204FAF8: .word 0x000002B9 +_0204FAFC: .word 0x000002C2 + + thumb_func_start sub_0204FB00 +sub_0204FB00: ; 0x0204FB00 + ldr r0, _0204FB0C ; =0x021C5A68 + ldr r1, [r0, #0x0] + ldr r0, _0204FB10 ; =0x000002B9 + ldrb r0, [r1, r0] + bx lr + nop +_0204FB0C: .word 0x021C5A68 +_0204FB10: .word 0x000002B9 + + thumb_func_start sub_0204FB14 +sub_0204FB14: ; 0x0204FB14 + ldr r0, _0204FB24 ; =0x021C5A68 + mov r2, #0x8 + ldr r1, [r0, #0x0] + mov r0, #0xb + lsl r0, r0, #0x6 + strb r2, [r1, r0] + bx lr + nop +_0204FB24: .word 0x021C5A68 + + thumb_func_start sub_0204FB28 +sub_0204FB28: ; 0x0204FB28 + push {r3-r5, lr} + mov r4, #0x0 + bl sub_02031190 + ldr r2, _0204FB9C ; =0x021C5A68 + lsl r1, r0, #0x2 + ldr r3, [r2, #0x0] + add r5, r3, r1 + mov r1, #0x29 + lsl r1, r1, #0x4 + ldr r3, [r5, r1] + cmp r3, #0x0 + beq _0204FB60 + add r4, r3, #0x0 + mov r3, #0x0 + str r3, [r5, r1] + ldr r1, [r2, #0x0] + add r1, r1, r0 + add r1, #0xfa + strb r3, [r1, #0x0] + ldr r3, [r2, #0x0] + mov r2, #0x22 + mul r2, r0 + mov r1, #0xff + add r0, r1, #0x0 + add r2, r3, r2 + add r0, #0x6b + strh r1, [r2, r0] +_0204FB60: + mov r5, #0x0 +_0204FB62: + add r0, r5, #0x0 + bl sub_0204ED9C + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0204FB62 + cmp r4, #0x0 + beq _0204FB9A + ldr r1, _0204FB9C ; =0x021C5A68 + mov r0, #0x29 + ldr r2, [r1, #0x0] + lsl r0, r0, #0x4 + str r4, [r2, r0] + ldr r0, [r1, #0x0] + mov r2, #0x1 + add r0, #0xfa + strb r2, [r0, #0x0] + ldr r2, [r1, #0x0] + ldr r1, _0204FBA0 ; =0x0000014A + add r0, r4, #0x0 + add r1, r2, r1 + bl sub_0202393C + ldr r0, _0204FB9C ; =0x021C5A68 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, _0204FBA4 ; =0x0000016A + strh r2, [r1, r0] +_0204FB9A: + pop {r3-r5, pc} + .balign 4 +_0204FB9C: .word 0x021C5A68 +_0204FBA0: .word 0x0000014A +_0204FBA4: .word 0x0000016A + + thumb_func_start sub_0204FBA8 +sub_0204FBA8: ; 0x0204FBA8 + bx lr + .balign 4 + + thumb_func_start sub_0204FBAC +sub_0204FBAC: ; 0x0204FBAC + bx lr + .balign 4 + + thumb_func_start sub_0204FBB0 +sub_0204FBB0: ; 0x0204FBB0 + push {r4, lr} + ldr r1, _0204FC08 ; =0x021C5A6C + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _0204FC04 + bl sub_0208881C + mov r0, #0xf + mov r1, #0x48 + bl sub_02016998 + ldr r1, _0204FC08 ; =0x021C5A6C + mov r2, #0x48 + str r0, [r1, #0x0] + mov r1, #0x0 + blx sub_020CE34C + ldr r0, _0204FC08 ; =0x021C5A6C + mov r1, #0x32 + ldr r0, [r0, #0x0] + mov r2, #0xa + strh r1, [r0, #0x3c] + ldr r0, _0204FC0C ; =sub_0205006C + mov r1, #0x0 + bl sub_0200CA44 + ldr r1, _0204FC08 ; =0x021C5A6C + ldr r2, [r1, #0x0] + str r0, [r2, #0x38] + ldr r0, [r1, #0x0] + mov r2, #0x0 + str r4, [r0, #0x18] + ldr r0, [r1, #0x0] + str r2, [r0, #0x44] + bl sub_0204FBA8 + ldr r0, _0204FC08 ; =0x021C5A6C + ldr r0, [r0, #0x0] + add r0, #0x1c + bl sub_020312BC +_0204FC04: + pop {r4, pc} + nop +_0204FC08: .word 0x021C5A6C +_0204FC0C: .word sub_0205006C + 1 + + thumb_func_start sub_0204FC10 +sub_0204FC10: ; 0x0204FC10 + push {r4-r6, lr} + ldr r0, _0204FC58 ; =0x021C5A6C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0204FC56 + ldr r0, [r0, #0x38] + bl sub_0200CAB4 + mov r4, #0x0 + ldr r6, _0204FC58 ; =0x021C5A6C + add r5, r4, #0x0 +_0204FC26: + ldr r0, [r6, #0x0] + ldr r0, [r0, r5] + cmp r0, #0x0 + beq _0204FC32 + bl sub_02016A18 +_0204FC32: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x4 + blt _0204FC26 + ldr r0, _0204FC58 ; =0x021C5A6C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x44] + cmp r0, #0x0 + beq _0204FC48 + bl sub_02016A18 +_0204FC48: + ldr r0, _0204FC58 ; =0x021C5A6C + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, _0204FC58 ; =0x021C5A6C + mov r1, #0x0 + str r1, [r0, #0x0] +_0204FC56: + pop {r4-r6, pc} + .balign 4 +_0204FC58: .word 0x021C5A6C + + thumb_func_start sub_0204FC5C +sub_0204FC5C: ; 0x0204FC5C + push {r4, lr} + ldr r1, _0204FC9C ; =0x021C5A6C + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _0204FC9A + bl sub_020377AC + bl sub_02031824 + add r0, r4, #0x0 + bl sub_0204FBB0 + mov r2, #0x3a + mov r0, #0x3 + mov r1, #0x21 + lsl r2, r2, #0xa + bl sub_0201681C + ldr r0, _0204FC9C ; =0x021C5A6C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x18] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F194 + cmp r0, #0x0 + bne _0204FC9A + bl sub_02031924 +_0204FC9A: + pop {r4, pc} + .balign 4 +_0204FC9C: .word 0x021C5A6C + + thumb_func_start sub_0204FCA0 +sub_0204FCA0: ; 0x0204FCA0 + push {r3, lr} + ldr r0, _0204FCD0 ; =0x021C5A6C + mov r2, #0x1 + ldr r1, [r0, #0x0] + add r1, #0x41 + strb r2, [r1, #0x0] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x18] + ldr r0, [r0, #0xc] + bl sub_02029FC8 + mov r1, #0x24 + bl sub_0202A170 + ldr r0, _0204FCD0 ; =0x021C5A6C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x18] + bl sub_0223E060 + ldr r0, _0204FCD4 ; =sub_020500A4 + mov r1, #0x0 + bl sub_02050094 + pop {r3, pc} + .balign 4 +_0204FCD0: .word 0x021C5A6C +_0204FCD4: .word sub_020500A4 + 1 + + thumb_func_start sub_0204FCD8 +sub_0204FCD8: ; 0x0204FCD8 + push {r3, lr} + ldr r0, _0204FCEC ; =0x021C5A6C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0204FCEA + ldr r0, _0204FCF0 ; =0x02050D55 + mov r1, #0x3 + bl sub_02050094 +_0204FCEA: + pop {r3, pc} + .balign 4 +_0204FCEC: .word 0x021C5A6C +_0204FCF0: .word 0x02050D55 + + thumb_func_start sub_0204FCF4 +sub_0204FCF4: ; 0x0204FCF4 + push {r3, lr} + bl sub_02031914 + ldr r0, _0204FD04 ; =0x020504D9 + mov r1, #0x0 + bl sub_02050094 + pop {r3, pc} + .balign 4 +_0204FD04: .word 0x020504D9 + + thumb_func_start sub_0204FD08 +sub_0204FD08: ; 0x0204FD08 + push {r3, lr} + bl sub_0202EDD8 + cmp r0, #0x0 + bne _0204FD1E + bl sub_02245F1C + ldr r0, _0204FD20 ; =sub_020500A4 + mov r1, #0x0 + bl sub_02050094 +_0204FD1E: + pop {r3, pc} + .balign 4 +_0204FD20: .word sub_020500A4 + 1 + + thumb_func_start sub_0204FD24 +sub_0204FD24: ; 0x0204FD24 + push {r3, lr} + bl sub_02031934 + ldr r0, _0204FD34 ; =sub_0204FD08 + mov r1, #0x0 + bl sub_02050094 + pop {r3, pc} + .balign 4 +_0204FD34: .word sub_0204FD08 + 1 + + thumb_func_start sub_0204FD38 +sub_0204FD38: ; 0x0204FD38 + push {r3-r7, lr} + sub sp, #0x10 + ldr r0, _0204FDBC ; =0x021C5A6C + add r2, sp, #0x0 + ldr r0, [r0, #0x0] + ldr r3, _0204FDC0 ; =0x020F5838 + ldr r5, [r0, #0x34] + add r6, r2, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, _0204FDC4 ; =0x020502AD + ldr r4, _0204FDC8 ; =0x02050549 + ldr r7, _0204FDCC ; =0x02050169 + cmp r5, r0 + bne _0204FD68 + ldr r0, _0204FDD0 ; =0x0205031D + mov r1, #0x0 + bl sub_02050094 + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204FD68: + cmp r4, r5 + bne _0204FD7A + ldr r0, _0204FDD4 ; =0x02050579 + mov r1, #0x0 + bl sub_02050094 + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204FD7A: + cmp r7, r5 + bne _0204FD8C + ldr r0, _0204FDD8 ; =0x020505E1 + mov r1, #0x0 + bl sub_02050094 + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204FD8C: + ldr r0, _0204FDDC ; =0x020504D1 + cmp r0, r5 + bne _0204FDA0 + ldr r0, _0204FDE0 ; =0x02050611 + mov r1, #0x0 + bl sub_02050094 + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204FDA0: + mov r1, #0x0 +_0204FDA2: + ldr r0, [r6, #0x0] + cmp r5, r0 + bne _0204FDAE + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204FDAE: + add r1, r1, #0x1 + add r6, r6, #0x4 + cmp r1, #0x4 + blo _0204FDA2 + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0204FDBC: .word 0x021C5A6C +_0204FDC0: .word 0x020F5838 +_0204FDC4: .word 0x020502AD +_0204FDC8: .word 0x02050549 +_0204FDCC: .word 0x02050169 +_0204FDD0: .word 0x0205031D +_0204FDD4: .word 0x02050579 +_0204FDD8: .word 0x020505E1 +_0204FDDC: .word 0x020504D1 +_0204FDE0: .word 0x02050611 + + thumb_func_start sub_0204FDE4 +sub_0204FDE4: ; 0x0204FDE4 + push {r4, lr} + ldr r0, _0204FE38 ; =0x021C5A6C + ldr r3, _0204FE3C ; =0x0205058D + ldr r0, [r0, #0x0] + ldr r2, _0204FE40 ; =0x020505F5 + ldr r4, [r0, #0x34] + ldr r0, _0204FE44 ; =0x02050331 + ldr r1, _0204FE48 ; =0x02050625 + cmp r4, r0 + bne _0204FE04 + ldr r0, _0204FE4C ; =0x02050339 + mov r1, #0x0 + bl sub_02050094 + mov r0, #0x1 + pop {r4, pc} +_0204FE04: + cmp r3, r4 + bne _0204FE14 + ldr r0, _0204FE50 ; =0x02050595 + mov r1, #0x0 + bl sub_02050094 + mov r0, #0x1 + pop {r4, pc} +_0204FE14: + cmp r2, r4 + bne _0204FE24 + ldr r0, _0204FE54 ; =0x020505F9 + mov r1, #0x0 + bl sub_02050094 + mov r0, #0x1 + pop {r4, pc} +_0204FE24: + cmp r1, r4 + bne _0204FE34 + ldr r0, _0204FE58 ; =0x02050629 + mov r1, #0x0 + bl sub_02050094 + mov r0, #0x1 + pop {r4, pc} +_0204FE34: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0204FE38: .word 0x021C5A6C +_0204FE3C: .word 0x0205058D +_0204FE40: .word 0x020505F5 +_0204FE44: .word 0x02050331 +_0204FE48: .word 0x02050625 +_0204FE4C: .word 0x02050339 +_0204FE50: .word 0x02050595 +_0204FE54: .word 0x020505F9 +_0204FE58: .word 0x02050629 + + thumb_func_start sub_0204FE5C +sub_0204FE5C: ; 0x0204FE5C + push {r3-r4} + sub sp, #0x38 + ldr r4, _0204FEA8 ; =0x020F5848 + add r3, sp, #0x0 + mov r2, #0x7 +_0204FE66: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0204FE66 + ldr r0, _0204FEAC ; =0x021C5A6C + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x34] + cmp r0, #0x0 + bne _0204FE80 + add sp, #0x38 + mov r0, #0x0 + pop {r3-r4} + bx lr +_0204FE80: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _0204FE9E + add r2, sp, #0x0 +_0204FE88: + ldr r0, [r2, #0x0] + cmp r1, r0 + bne _0204FE96 + add sp, #0x38 + mov r0, #0x1 + pop {r3-r4} + bx lr +_0204FE96: + add r2, r2, #0x4 + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _0204FE88 +_0204FE9E: + mov r0, #0x0 + add sp, #0x38 + pop {r3-r4} + bx lr + nop +_0204FEA8: .word 0x020F5848 +_0204FEAC: .word 0x021C5A6C + + thumb_func_start sub_0204FEB0 +sub_0204FEB0: ; 0x0204FEB0 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + bne _0204FEE8 + add r0, r5, #0x0 + bl sub_020377AC + mov r1, #0x0 + add r3, r5, #0x0 + str r1, [sp, #0x0] + add r3, #0xac + ldr r3, [r3, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02031948 + add r0, r5, #0x0 + bl sub_0204FBB0 + ldr r0, _0204FEEC ; =0x02050641 + mov r1, #0x0 + bl sub_02050094 +_0204FEE8: + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_0204FEEC: .word 0x02050641 + + thumb_func_start sub_0204FEF0 +sub_0204FEF0: ; 0x0204FEF0 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + bne _0204FF28 + add r0, r5, #0x0 + bl sub_020377AC + mov r1, #0x0 + add r3, r5, #0x0 + str r1, [sp, #0x0] + add r3, #0xac + ldr r3, [r3, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02031990 + add r0, r5, #0x0 + bl sub_0204FBB0 + ldr r0, _0204FF2C ; =0x02050669 + mov r1, #0x0 + bl sub_02050094 +_0204FF28: + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_0204FF2C: .word 0x02050669 + + thumb_func_start sub_0204FF30 +sub_0204FF30: ; 0x0204FF30 + ldr r1, _0204FF40 ; =0x021C5A6C + ldr r3, _0204FF44 ; =sub_02050094 + ldr r1, [r1, #0x0] + add r1, #0x3e + strb r0, [r1, #0x0] + ldr r0, _0204FF48 ; =0x02050689 + mov r1, #0x0 + bx r3 + .balign 4 +_0204FF40: .word 0x021C5A6C +_0204FF44: .word sub_02050094 + 1 +_0204FF48: .word 0x02050689 + + thumb_func_start sub_0204FF4C +sub_0204FF4C: ; 0x0204FF4C + ldr r3, _0204FF54 ; =sub_02050094 + ldr r0, _0204FF58 ; =0x02050BBD + mov r1, #0x0 + bx r3 + .balign 4 +_0204FF54: .word sub_02050094 + 1 +_0204FF58: .word 0x02050BBD + + thumb_func_start sub_0204FF5C +sub_0204FF5C: ; 0x0204FF5C + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0200E3BC + mov r0, #0x1 + mov r1, #0x0 + bl sub_0200E3BC + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_020334E8 + bl sub_02031810 + cmp r0, #0x0 + beq _02050014 + ldr r0, _02050018 ; =0x021C5A6C + ldr r1, [r0, #0x0] + cmp r1, #0x0 + bne _0204FF9C + add r0, r4, #0x0 + bl sub_0204FBB0 + ldr r0, _02050018 ; =0x021C5A6C + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x42 + strb r1, [r0, #0x0] + b _0204FFA2 +_0204FF9C: + mov r0, #0x0 + add r1, #0x42 + strb r0, [r1, #0x0] +_0204FFA2: + ldr r0, _02050018 ; =0x021C5A6C + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x43 + strb r1, [r0, #0x0] + bl sub_02031190 + str r0, [sp, #0x8] + bl sub_02031190 + bl sub_0202DFA4 + mov r4, #0x0 + bl sub_02030F20 + cmp r0, #0x0 + ble _0204FFEA + ldr r6, _02050018 ; =0x021C5A6C + add r5, r4, #0x0 + add r7, r4, #0x0 +_0204FFCA: + ldr r0, [r6, #0x0] + ldr r0, [r0, r5] + cmp r0, #0x0 + bne _0204FFDE + ldr r1, _0205001C ; =0x0000066C + add r0, r7, #0x0 + bl sub_02016998 + ldr r1, [r6, #0x0] + str r0, [r1, r5] +_0204FFDE: + add r5, r5, #0x4 + add r4, r4, #0x1 + bl sub_02030F20 + cmp r4, r0 + blt _0204FFCA +_0204FFEA: + ldr r0, _02050018 ; =0x021C5A6C + mov r3, #0xff + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x18] + str r0, [sp, #0x0] + ldr r0, [sp, #0x8] + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + str r0, [sp, #0x4] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + bl sub_02064E90 + mov r0, #0x5f + bl sub_02031588 + ldr r0, _02050020 ; =0x02050C15 + mov r1, #0x0 + bl sub_02050094 +_02050014: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02050018: .word 0x021C5A6C +_0205001C: .word 0x0000066C +_02050020: .word 0x02050C15 + + thumb_func_start sub_02050024 +sub_02050024: ; 0x02050024 + push {r3, lr} + ldr r0, _02050040 ; =0x021C5A6C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0205003E + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_020334E8 + ldr r0, _02050044 ; =0x02050DB1 + mov r1, #0x5 + bl sub_02050094 +_0205003E: + pop {r3, pc} + .balign 4 +_02050040: .word 0x021C5A6C +_02050044: .word 0x02050DB1 + + thumb_func_start sub_02050048 +sub_02050048: ; 0x02050048 + push {r3, lr} + ldr r0, _02050064 ; =0x021C5A6C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02050060 + mov r0, #0x5b + bl sub_02031588 + ldr r0, _02050068 ; =0x02050D89 + mov r1, #0x5 + bl sub_02050094 +_02050060: + pop {r3, pc} + nop +_02050064: .word 0x021C5A6C +_02050068: .word 0x02050D89 + + thumb_func_start sub_0205006C +sub_0205006C: ; 0x0205006C + push {r3, lr} + ldr r1, _02050090 ; =0x021C5A6C + ldr r2, [r1, #0x0] + cmp r2, #0x0 + bne _0205007C + bl sub_0200CAB4 + pop {r3, pc} +_0205007C: + ldr r1, [r2, #0x34] + cmp r1, #0x0 + beq _0205008C + add r2, #0x40 + ldrb r0, [r2, #0x0] + cmp r0, #0x0 + bne _0205008C + blx r1 +_0205008C: + pop {r3, pc} + nop +_02050090: .word 0x021C5A6C + + thumb_func_start sub_02050094 +sub_02050094: ; 0x02050094 + ldr r2, _020500A0 ; =0x021C5A6C + ldr r3, [r2, #0x0] + str r0, [r3, #0x34] + ldr r0, [r2, #0x0] + strh r1, [r0, #0x3c] + bx lr + .balign 4 +_020500A0: .word 0x021C5A6C + + thumb_func_start sub_020500A4 +sub_020500A4: ; 0x020500A4 + push {r3, lr} + ldr r0, _02050108 ; =0x021C5A6C + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3c] + cmp r0, #0x0 + beq _020500B6 + sub r0, r0, #0x1 + strh r0, [r1, #0x3c] + pop {r3, pc} +_020500B6: + bl sub_02030F40 + cmp r0, #0x0 + beq _02050104 + ldr r0, _02050108 ; =0x021C5A6C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x18] + bl sub_0223E1E0 + bl sub_0202DBE0 + mov r0, #0x0 + bl sub_0204D168 + bl sub_0223EF7C + bl sub_02245FA0 + ldr r0, _02050108 ; =0x021C5A6C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x18] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F194 + cmp r0, #0x0 + bne _020500F8 + ldr r0, _0205010C ; =sub_02050114 + mov r1, #0x0 + bl sub_02050094 + pop {r3, pc} +_020500F8: + bl sub_0204F80C + ldr r0, _02050110 ; =sub_02050144 + mov r1, #0x18 + bl sub_02050094 +_02050104: + pop {r3, pc} + nop +_02050108: .word 0x021C5A6C +_0205010C: .word sub_02050114 + 1 +_02050110: .word sub_02050144 + 1 + + thumb_func_start sub_02050114 +sub_02050114: ; 0x02050114 + push {r3, lr} + ldr r0, _0205013C ; =0x021C5A6C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x18] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F194 + cmp r0, #0x0 + beq _0205013A + bl sub_02031880 + bl sub_0204F80C + ldr r0, _02050140 ; =0x02050169 + mov r1, #0x18 + bl sub_02050094 +_0205013A: + pop {r3, pc} + .balign 4 +_0205013C: .word 0x021C5A6C +_02050140: .word 0x02050169 + + thumb_func_start sub_02050144 +sub_02050144: ; 0x02050144 + push {r3, lr} + ldr r0, _02050160 ; =0x021C5A6C + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3c] + cmp r0, #0x0 + beq _02050156 + sub r0, r0, #0x1 + strh r0, [r1, #0x3c] + pop {r3, pc} +_02050156: + ldr r0, _02050164 ; =0x02050169 + mov r1, #0x18 + bl sub_02050094 + pop {r3, pc} + .balign 4 +_02050160: .word 0x021C5A6C +_02050164: .word 0x02050169 +_02050168: + .byte 0x08, 0xB5, 0xED, 0xF1, 0x23, 0xFF, 0xFF, 0xF7 + .byte 0x4D, 0xFB, 0xE1, 0xF7, 0xA7, 0xFB, 0x00, 0x28, 0x0E, 0xD0, 0xE1, 0xF7, 0x09, 0xF8, 0x00, 0x28 + .byte 0x06, 0xD1, 0xF5, 0xF1, 0xCF, 0xF8, 0x05, 0x48, 0x3C, 0x21, 0xFF, 0xF7, 0x83, 0xFF, 0x08, 0xBD + .byte 0x03, 0x48, 0x78, 0x21, 0xFF, 0xF7, 0x7E, 0xFF, 0x08, 0xBD, 0xC0, 0x46, 0x4D, 0x02, 0x05, 0x02 + .byte 0xA5, 0x01, 0x05, 0x02, 0x08, 0xB5, 0x26, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x01, 0xD0 + .byte 0x40, 0x1E, 0x88, 0x87, 0xDE, 0xF7, 0x46, 0xFE, 0x00, 0x28, 0x08, 0xD1, 0xE1, 0xF7, 0x18, 0xF8 + .byte 0x00, 0x28, 0x04, 0xD1, 0x1E, 0x48, 0x00, 0x68, 0x80, 0x8F, 0x00, 0x28, 0x06, 0xD1, 0xE1, 0xF7 + .byte 0x57, 0xFB, 0x1C, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x5D, 0xFF, 0x08, 0xBD, 0xE0, 0xF7, 0xD8, 0xFF + .byte 0xE0, 0xF7, 0x4C, 0xFE, 0x00, 0x28, 0x29, 0xD0, 0x15, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28 + .byte 0x07, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0xE0, 0xF7, 0x2F, 0xFD, 0x42, 0x21, 0x89, 0x00, 0x88, 0x42 + .byte 0x1C, 0xD1, 0xEE, 0xF1, 0x59, 0xFA, 0x00, 0x20, 0xFC, 0xF7, 0x1A, 0xFF, 0x00, 0x20, 0x01, 0x1C + .byte 0x02, 0x1C, 0x03, 0x1C, 0xF0, 0xF1, 0x72, 0xFB, 0x00, 0x20, 0x01, 0x21, 0xEF, 0xF1, 0x64, 0xFD + .byte 0x00, 0x20, 0xDD, 0xF7, 0x29, 0xFE, 0x00, 0x20, 0x01, 0x1C, 0x02, 0x1C, 0xFD, 0xF7, 0x06, 0xF9 + .byte 0xFF, 0xF7, 0x12, 0xFB, 0x04, 0x48, 0x0A, 0x21, 0xFF, 0xF7, 0x2C, 0xFF, 0x08, 0xBD, 0xC0, 0x46 + .byte 0x6C, 0x5A, 0x1C, 0x02, 0xA5, 0x04, 0x05, 0x02, 0x51, 0x03, 0x05, 0x02, 0x08, 0xB5, 0xED, 0xF1 + .byte 0xB1, 0xFE, 0x13, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x01, 0xD0, 0x40, 0x1E, 0x88, 0x87 + .byte 0xE0, 0xF7, 0xC2, 0xFF, 0x00, 0x28, 0x04, 0xD1, 0x0D, 0x48, 0x00, 0x68, 0x80, 0x8F, 0x00, 0x28 + .byte 0x15, 0xD1, 0xEE, 0xF1, 0x21, 0xFA, 0x00, 0x28, 0x01, 0xD0, 0xFF, 0xF7, 0xBF, 0xFA, 0x09, 0x48 + .byte 0xFF, 0xF7, 0x94, 0xFC, 0x00, 0x20, 0xFC, 0xF7, 0x6F, 0xFF, 0xFF, 0xF7, 0x51, 0xFB, 0xF5, 0xF1 + .byte 0x87, 0xFE, 0xEE, 0xF1, 0xB3, 0xFA, 0x04, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0xFB, 0xFE, 0x08, 0xBD + .byte 0x6C, 0x5A, 0x1C, 0x02, 0x74, 0x5E, 0x10, 0x02, 0xAD, 0x02, 0x05, 0x02, 0x08, 0xB5, 0xED, 0xF1 + .byte 0x81, 0xFE, 0x18, 0x48, 0x00, 0x68, 0x80, 0x69, 0x00, 0x69, 0x00, 0x28, 0x28, 0xD1, 0xE0, 0xF7 + .byte 0x97, 0xFF, 0x00, 0x28, 0x0D, 0xD1, 0xDE, 0xF7, 0xAD, 0xFD, 0x00, 0x28, 0x09, 0xD0, 0xE0, 0xF7 + .byte 0x5F, 0xFF, 0xE0, 0xF7, 0xD3, 0xFD, 0x00, 0x28, 0x1A, 0xD1, 0xE0, 0xF7, 0xD1, 0xFF, 0x00, 0x28 + .byte 0x16, 0xD1, 0x00, 0x20, 0xF5, 0xF1, 0x38, 0xF8, 0xFF, 0xF7, 0x10, 0xFB, 0xF7, 0xF1, 0x8C, 0xFA + .byte 0x2B, 0x20, 0xE0, 0xF7, 0x73, 0xFF, 0xE0, 0xF7, 0x4B, 0xFF, 0x01, 0x21, 0xEF, 0xF1, 0xF4, 0xFC + .byte 0xEE, 0xF1, 0xDA, 0xF9, 0xE1, 0xF7, 0xD6, 0xFA, 0x03, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0xC2, 0xFE + .byte 0x08, 0xBD, 0xC0, 0x46, 0x6C, 0x5A, 0x1C, 0x02, 0x59, 0x04, 0x05, 0x02, 0x08, 0xB5, 0xFC, 0xF7 + .byte 0x93, 0xFC, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0xB5, 0xFE, 0x08, 0xBD, 0x31, 0x03, 0x05, 0x02 + .byte 0x00, 0x4B, 0x18, 0x47, 0xB5, 0xDF, 0x23, 0x02, 0x08, 0xB5, 0xF5, 0xF1, 0xEF, 0xFD, 0xFC, 0xF7 + .byte 0xAD, 0xFC, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0xA5, 0xFE, 0x08, 0xBD, 0xAD, 0x02, 0x05, 0x02 + .byte 0x08, 0xB5, 0x15, 0x48, 0x00, 0x68, 0x80, 0x8F, 0x09, 0x28, 0x03, 0xD1, 0xDD, 0xF7, 0x40, 0xFC + .byte 0xEE, 0xF1, 0x4C, 0xFA, 0x10, 0x48, 0x00, 0x68, 0x80, 0x8F, 0x01, 0x28, 0x02, 0xD1, 0x00, 0x20 + .byte 0xFC, 0xF7, 0x12, 0xFF, 0x0C, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E + .byte 0x88, 0x87, 0x08, 0xBD, 0xDD, 0xF7, 0xB8, 0xFC, 0x00, 0x28, 0x09, 0xD0, 0x07, 0x48, 0xFF, 0xF7 + .byte 0x0D, 0xFC, 0xFF, 0xF7, 0xCD, 0xFA, 0x06, 0x48, 0xC8, 0x21, 0xFF, 0xF7, 0x7B, 0xFE, 0x08, 0xBD + .byte 0x00, 0xF0, 0xD2, 0xF8, 0x08, 0xBD, 0xC0, 0x46, 0x6C, 0x5A, 0x1C, 0x02, 0x80, 0x5E, 0x10, 0x02 + .byte 0xB5, 0x03, 0x05, 0x02, 0x08, 0xB5, 0xFF, 0xF7, 0xA3, 0xFB, 0x00, 0x28, 0x06, 0xD0, 0xEE, 0xF1 + .byte 0xDD, 0xFD, 0x09, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x65, 0xFE, 0x08, 0xBD, 0x00, 0xF0, 0xBC, 0xF8 + .byte 0x06, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD + .byte 0x00, 0xF0, 0x96, 0xF8, 0x08, 0xBD, 0xC0, 0x46, 0xF1, 0x03, 0x05, 0x02, 0x6C, 0x5A, 0x1C, 0x02 + .byte 0x08, 0xB5, 0xEF, 0xF1, 0x71, 0xF8, 0x00, 0x28, 0x0B, 0xD0, 0x07, 0x48, 0xFF, 0xF7, 0xD6, 0xFB + .byte 0xEF, 0xF1, 0x78, 0xF8, 0xF5, 0xF1, 0xCC, 0xFD, 0x04, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x42, 0xFE + .byte 0x08, 0xBD, 0x00, 0xF0, 0x99, 0xF8, 0x08, 0xBD, 0x94, 0x5E, 0x10, 0x02, 0x21, 0x04, 0x05, 0x02 + .byte 0x08, 0xB5, 0xF5, 0xF1, 0xBF, 0xFE, 0x00, 0x28, 0x0F, 0xD0, 0x09, 0x48, 0xFF, 0xF7, 0xBE, 0xFB + .byte 0xF5, 0xF1, 0xC2, 0xFE, 0x01, 0x20, 0xFC, 0xF7, 0x97, 0xFE, 0x1F, 0x20, 0xE0, 0xF7, 0xCE, 0xFE + .byte 0x04, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x26, 0xFE, 0x08, 0xBD, 0x00, 0xF0, 0x7D, 0xF8, 0x08, 0xBD + .byte 0xB0, 0x5E, 0x10, 0x02, 0x49, 0x05, 0x05, 0x02, 0x08, 0xB5, 0xE0, 0xF7, 0x11, 0xFF, 0x00, 0x28 + .byte 0x07, 0xD0, 0x00, 0x20, 0x01, 0x1C, 0xFE, 0xF7, 0x37, 0xFB, 0x02, 0x48, 0x1E, 0x21, 0xFF, 0xF7 + .byte 0x11, 0xFE, 0x08, 0xBD, 0x79, 0x04, 0x05, 0x02, 0x08, 0xB5, 0x08, 0x48, 0x01, 0x68, 0x88, 0x8F + .byte 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD, 0xE0, 0xF7, 0x81, 0xFE, 0x00, 0x28 + .byte 0x03, 0xD1, 0x03, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0xFD, 0xFD, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02 + .byte 0xA5, 0x00, 0x05, 0x02, 0x08, 0xB5, 0x08, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0 + .byte 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD, 0xE0, 0xF7, 0x6B, 0xFE, 0x00, 0x28, 0x03, 0xD1, 0x03, 0x48 + .byte 0x00, 0x21, 0xFF, 0xF7, 0xE7, 0xFD, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0xA5, 0x00, 0x05, 0x02 + .byte 0x00, 0x4B, 0x18, 0x47, 0xB5, 0xDF, 0x23, 0x02, 0x08, 0xB5, 0xE0, 0xF7, 0x59, 0xFE, 0x00, 0x28 + .byte 0x11, 0xD1, 0x09, 0x48, 0x00, 0x68, 0x80, 0x69, 0xED, 0xF1, 0x7A, 0xFE, 0xDD, 0xF7, 0x78, 0xFB + .byte 0x00, 0x20, 0xFC, 0xF7, 0x39, 0xFE, 0xEE, 0xF1, 0x41, 0xFD, 0xF5, 0xF1, 0x51, 0xFD, 0x03, 0x48 + .byte 0x00, 0x21, 0xFF, 0xF7, 0xC7, 0xFD, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0xD1, 0x04, 0x05, 0x02 + .byte 0x08, 0xB5, 0xE0, 0xF7, 0x3D, 0xFE, 0x01, 0x21, 0xEF, 0xF1, 0xE6, 0xFB, 0xE0, 0xF7, 0x38, 0xFE + .byte 0x01, 0x21, 0xF7, 0xF1, 0x01, 0xF9, 0xEC, 0xF1, 0xD1, 0xFA, 0xFC, 0xF7, 0xE5, 0xFC, 0xEE, 0xF1 + .byte 0xC3, 0xF8, 0xE1, 0xF7, 0xA5, 0xF9, 0xFF, 0xF7, 0xF7, 0xFA, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7 + .byte 0xA9, 0xFD, 0x08, 0xBD, 0xA5, 0x04, 0x05, 0x02, 0x08, 0xB5, 0xED, 0xF1, 0x33, 0xFD, 0xFF, 0xF7 + .byte 0x5D, 0xF9, 0x08, 0x48, 0x00, 0x68, 0x80, 0x69, 0x00, 0x69, 0x00, 0x28, 0x09, 0xD1, 0xDE, 0xF7 + .byte 0x71, 0xFC, 0x00, 0x28, 0x03, 0xD1, 0xE0, 0xF7, 0x43, 0xFE, 0x00, 0x28, 0x01, 0xD0, 0xFF, 0xF7 + .byte 0xCF, 0xFF, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0x08, 0xB5, 0xFC, 0xF7, 0x65, 0xFB, 0x02, 0x48 + .byte 0x00, 0x21, 0xFF, 0xF7, 0x87, 0xFD, 0x08, 0xBD, 0x8D, 0x05, 0x05, 0x02, 0x00, 0x4B, 0x18, 0x47 + .byte 0x31, 0x78, 0x24, 0x02, 0x08, 0xB5, 0xF5, 0xF1, 0xC1, 0xFC, 0xFC, 0xF7, 0x7F, 0xFB, 0xDE, 0xF7 + .byte 0x51, 0xFC, 0x00, 0x28, 0x03, 0xD1, 0xE0, 0xF7, 0x23, 0xFE, 0x00, 0x28, 0x0E, 0xD0, 0xF4, 0xF1 + .byte 0x79, 0xFE, 0xFC, 0xF7, 0xA1, 0xFC, 0xEE, 0xF1, 0x7F, 0xF8, 0xE1, 0xF7, 0x61, 0xF9, 0xFF, 0xF7 + .byte 0xB3, 0xFA, 0x05, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x65, 0xFD, 0x08, 0xBD, 0x03, 0x48, 0x00, 0x21 + .byte 0xFF, 0xF7, 0x60, 0xFD, 0x08, 0xBD, 0xC0, 0x46, 0xA5, 0x04, 0x05, 0x02, 0x49, 0x05, 0x05, 0x02 + .byte 0x08, 0xB5, 0xFC, 0xF7, 0x31, 0xFB, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x53, 0xFD, 0x08, 0xBD + .byte 0xF5, 0x05, 0x05, 0x02, 0x70, 0x47, 0x00, 0x00, 0x08, 0xB5, 0xF5, 0xF1, 0x8F, 0xFC, 0xFC, 0xF7 + .byte 0x4D, 0xFB, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x45, 0xFD, 0x08, 0xBD, 0x69, 0x01, 0x05, 0x02 + .byte 0x08, 0xB5, 0xFC, 0xF7, 0x87, 0xFC, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x3B, 0xFD, 0x08, 0xBD + .byte 0x25, 0x06, 0x05, 0x02, 0x70, 0x47, 0x00, 0x00, 0x08, 0xB5, 0xF5, 0xF1, 0x77, 0xFC, 0xFC, 0xF7 + .byte 0x35, 0xFB, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x2D, 0xFD, 0x08, 0xBD, 0xD1, 0x04, 0x05, 0x02 + .byte 0x08, 0xB5, 0xE0, 0xF7, 0xA5, 0xFD, 0xE0, 0xF7, 0x19, 0xFC, 0x00, 0x28, 0x07, 0xD0, 0xF0, 0xF1 + .byte 0xF1, 0xF8, 0xDD, 0xF7, 0xC5, 0xFA, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x1B, 0xFD, 0x08, 0xBD + .byte 0x65, 0x06, 0x05, 0x02, 0x70, 0x47, 0x00, 0x00, 0x08, 0xB5, 0xDD, 0xF7, 0x2D, 0xFF, 0x00, 0x28 + .byte 0x05, 0xD0, 0xF0, 0xF1, 0xAB, 0xF8, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x0B, 0xFD, 0x08, 0xBD + .byte 0x85, 0x06, 0x05, 0x02, 0x70, 0x47, 0x00, 0x00, 0x08, 0xB5, 0x05, 0x48, 0x00, 0x68, 0x3E, 0x30 + .byte 0x00, 0x78, 0xE1, 0xF7, 0xA1, 0xF9, 0x03, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0xFB, 0xFC, 0x08, 0xBD + .byte 0x6C, 0x5A, 0x1C, 0x02, 0xA9, 0x06, 0x05, 0x02, 0x08, 0xB5, 0xE1, 0xF7, 0xBF, 0xF9, 0x00, 0x28 + .byte 0x05, 0xD0, 0xDD, 0xF7, 0x95, 0xFA, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0xEB, 0xFC, 0x08, 0xBD + .byte 0xC5, 0x06, 0x05, 0x02, 0x70, 0x47, 0x00, 0x00, 0x08, 0xB5, 0x62, 0x20, 0xE0, 0xF7, 0x84, 0xFF + .byte 0x00, 0x28, 0x17, 0xD0, 0xFC, 0xF7, 0x24, 0xFE, 0x01, 0x1C, 0x0F, 0x20, 0xC6, 0xF7, 0x5C, 0xF9 + .byte 0x0F, 0x49, 0x00, 0x22, 0x09, 0x68, 0x89, 0x69, 0xFC, 0xF7, 0x1A, 0xFA, 0xFF, 0xF7, 0x8E, 0xF8 + .byte 0xE0, 0xF7, 0x6A, 0xFC, 0x5C, 0x20, 0xE0, 0xF7, 0x47, 0xFF, 0x0A, 0x48, 0x00, 0x21, 0xFF, 0xF7 + .byte 0xC9, 0xFC, 0x08, 0xBD, 0x06, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E + .byte 0x88, 0x87, 0x08, 0xBD, 0x1E, 0x20, 0x88, 0x87, 0x62, 0x20, 0xE0, 0xF7, 0x35, 0xFF, 0x08, 0xBD + .byte 0x6C, 0x5A, 0x1C, 0x02, 0x29, 0x07, 0x05, 0x02, 0x00, 0xB5, 0x83, 0xB0, 0xE0, 0xF7, 0x30, 0xFD + .byte 0x00, 0x28, 0x01, 0xD1, 0xDD, 0xF7, 0x58, 0xFB, 0x5C, 0x20, 0xE0, 0xF7, 0x4D, 0xFF, 0x00, 0x28 + .byte 0x19, 0xD0, 0x06, 0x20, 0x00, 0x90, 0x01, 0x21, 0x01, 0x91, 0x04, 0x20, 0x02, 0x90, 0x00, 0x20 + .byte 0x0A, 0x1C, 0x03, 0x1C, 0xBD, 0xF7, 0x3C, 0xFD, 0x00, 0x20, 0xBD, 0xF7, 0x15, 0xFE, 0x01, 0x20 + .byte 0xBD, 0xF7, 0x12, 0xFE, 0xFC, 0xF7, 0x9A, 0xFA, 0x00, 0x20, 0xFC, 0xF7, 0xFD, 0xFC, 0x03, 0x48 + .byte 0x01, 0x21, 0xFF, 0xF7, 0x8F, 0xFC, 0x03, 0xB0, 0x00, 0xBD, 0xC0, 0x46, 0xB5, 0x07, 0x05, 0x02 + .byte 0x08, 0xB5, 0x0A, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E, 0x88, 0x87 + .byte 0x08, 0xBD, 0x1E, 0x20, 0xE0, 0xF7, 0x20, 0xFF, 0x00, 0x28, 0x05, 0xD0, 0xE0, 0xF7, 0x04, 0xFC + .byte 0x03, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x76, 0xFC, 0x08, 0xBD, 0xC0, 0x46, 0x6C, 0x5A, 0x1C, 0x02 + .byte 0x31, 0x09, 0x05, 0x02, 0x08, 0xB5, 0x0E, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0 + .byte 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD, 0xE0, 0xF7, 0xE3, 0xFC, 0x00, 0x28, 0x07, 0xD1, 0xFE, 0xF7 + .byte 0x9B, 0xFA, 0x00, 0x28, 0x0A, 0xD0, 0x1E, 0x20, 0xE0, 0xF7, 0xD6, 0xFE, 0x02, 0xE0, 0x1E, 0x20 + .byte 0xE0, 0xF7, 0xD2, 0xFE, 0x03, 0x48, 0x14, 0x21, 0xFF, 0xF7, 0x54, 0xFC, 0x08, 0xBD, 0xC0, 0x46 + .byte 0x6C, 0x5A, 0x1C, 0x02, 0x81, 0x07, 0x05, 0x02, 0x08, 0xB5, 0x62, 0x20, 0xE0, 0xF7, 0xEC, 0xFE + .byte 0x00, 0x28, 0x15, 0xD0, 0xFC, 0xF7, 0x8C, 0xFD, 0x01, 0x1C, 0x0F, 0x20, 0xC6, 0xF7, 0xC4, 0xF8 + .byte 0x0E, 0x49, 0x00, 0x22, 0x09, 0x68, 0x89, 0x69, 0xFC, 0xF7, 0x82, 0xF9, 0xFE, 0xF7, 0xF6, 0xFF + .byte 0x5C, 0x20, 0xE0, 0xF7, 0xB1, 0xFE, 0x0A, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x33, 0xFC, 0x08, 0xBD + .byte 0x06, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD + .byte 0x1E, 0x20, 0x88, 0x87, 0x62, 0x20, 0xE0, 0xF7, 0x9F, 0xFE, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02 + .byte 0x55, 0x08, 0x05, 0x02, 0x08, 0xB5, 0x84, 0xB0, 0xE0, 0xF7, 0x9A, 0xFC, 0x00, 0x28, 0x01, 0xD1 + .byte 0xDD, 0xF7, 0xC2, 0xFA, 0x5C, 0x20, 0xE0, 0xF7, 0xB7, 0xFE, 0x00, 0x28, 0x20, 0xD0, 0xFC, 0xF7 + .byte 0x15, 0xFA, 0x00, 0x20, 0xFC, 0xF7, 0x78, 0xFC, 0x01, 0x21, 0x03, 0xA8, 0x01, 0x70, 0x5E, 0x20 + .byte 0x03, 0xA9, 0xE0, 0xF7, 0xA5, 0xFC, 0x06, 0x20, 0x00, 0x90, 0x01, 0x21, 0x01, 0x91, 0x04, 0x20 + .byte 0x02, 0x90, 0x00, 0x20, 0x0A, 0x1C, 0x03, 0x1C, 0xBD, 0xF7, 0x9A, 0xFC, 0x00, 0x20, 0xBD, 0xF7 + .byte 0x73, 0xFD, 0x01, 0x20, 0xBD, 0xF7, 0x70, 0xFD, 0x02, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0xF2, 0xFB + .byte 0x04, 0xB0, 0x08, 0xBD, 0x15, 0x0A, 0x05, 0x02, 0xF8, 0xB5, 0x00, 0x27, 0xE0, 0xF7, 0x30, 0xFB + .byte 0x00, 0x28, 0x28, 0xDD, 0x18, 0x4E, 0xE0, 0xF7, 0x63, 0xFC, 0x87, 0x42, 0x1E, 0xD0, 0x38, 0x1C + .byte 0xE0, 0xF7, 0x94, 0xFE, 0x5E, 0x28, 0x19, 0xD1, 0x30, 0x68, 0x80, 0x69, 0x00, 0x69, 0x00, 0x28 + .byte 0x14, 0xD1, 0x00, 0x24, 0x25, 0x1C, 0x30, 0x68, 0x40, 0x59, 0x00, 0x28, 0x04, 0xD0, 0xC6, 0xF7 + .byte 0x93, 0xF8, 0x31, 0x68, 0x00, 0x20, 0x48, 0x51, 0x64, 0x1C, 0x2D, 0x1D, 0x04, 0x2C, 0xF2, 0xDB + .byte 0x30, 0x68, 0x0A, 0x49, 0x80, 0x69, 0x00, 0x22, 0xE8, 0xF7, 0xB6, 0xF9, 0x7F, 0x1C, 0xE0, 0xF7 + .byte 0x07, 0xFB, 0x87, 0x42, 0xD7, 0xDB, 0x04, 0x49, 0x04, 0x20, 0x09, 0x68, 0x89, 0x69, 0x89, 0x68 + .byte 0xE2, 0xF7, 0x66, 0xFE, 0xF8, 0xBD, 0xC0, 0x46, 0x6C, 0x5A, 0x1C, 0x02, 0x8E, 0x23, 0x00, 0x00 + .byte 0x08, 0xB5, 0xFE, 0xF7, 0x07, 0xF9, 0x00, 0x28, 0x0F, 0xD1, 0x09, 0x48, 0x00, 0x21, 0x00, 0x68 + .byte 0x43, 0x30, 0x01, 0x70, 0x01, 0x21, 0x00, 0xA8, 0x01, 0x70, 0x5E, 0x20, 0x00, 0xA9, 0xE0, 0xF7 + .byte 0x3F, 0xFC, 0x04, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x9D, 0xFB, 0xFF, 0xF7, 0xAD, 0xFF, 0x08, 0xBD + .byte 0x6C, 0x5A, 0x1C, 0x02, 0x15, 0x0A, 0x05, 0x02, 0x38, 0xB5, 0x05, 0x1C, 0x0C, 0x1C, 0x0A, 0xD0 + .byte 0x0B, 0x20, 0x1A, 0xF0, 0x9B, 0xFF, 0x0D, 0x49, 0x0A, 0x68, 0x50, 0x64, 0x09, 0x68, 0x20, 0x1C + .byte 0x49, 0x6C, 0x1B, 0xF0, 0xA5, 0xF8, 0x00, 0x2D, 0x04, 0xD0, 0x09, 0x48, 0x03, 0x21, 0xFF, 0xF7 + .byte 0x81, 0xFB, 0x38, 0xBD, 0x03, 0x21, 0x00, 0xA8, 0x01, 0x70, 0x5E, 0x20, 0x00, 0xA9, 0xE0, 0xF7 + .byte 0x17, 0xFC, 0x04, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x75, 0xFB, 0x38, 0xBD, 0x6C, 0x5A, 0x1C, 0x02 + .byte 0x8D, 0x0B, 0x05, 0x02, 0x31, 0x09, 0x05, 0x02, 0x01, 0x4B, 0x02, 0x48, 0x00, 0x21, 0x18, 0x47 + .byte 0x95, 0x00, 0x05, 0x02, 0x31, 0x09, 0x05, 0x02, 0x08, 0xB5, 0xE0, 0xF7, 0x35, 0xFD, 0x00, 0x28 + .byte 0x19, 0xD1, 0xE0, 0xF7, 0xDD, 0xFB, 0xFE, 0xF7, 0x6D, 0xFE, 0x00, 0x28, 0x13, 0xD1, 0x0A, 0x48 + .byte 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD, 0xFE, 0xF7 + .byte 0xF9, 0xFE, 0x05, 0x48, 0x05, 0x49, 0x00, 0x68, 0x80, 0x69, 0x00, 0xF0, 0x41, 0xFF, 0x04, 0x48 + .byte 0x00, 0x21, 0xFF, 0xF7, 0x47, 0xFB, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0x69, 0x09, 0x05, 0x02 + .byte 0xB9, 0x09, 0x05, 0x02, 0x08, 0xB5, 0x0A, 0x48, 0x00, 0x68, 0x43, 0x30, 0x00, 0x78, 0x00, 0x28 + .byte 0x0A, 0xD0, 0x08, 0x48, 0x05, 0x21, 0xFF, 0xF7, 0x35, 0xFB, 0x00, 0x21, 0x00, 0xA8, 0x01, 0x70 + .byte 0x5E, 0x20, 0x00, 0xA9, 0xE0, 0xF7, 0xCC, 0xFB, 0xFF, 0xF7, 0x3E, 0xFF, 0x08, 0xBD, 0xC0, 0x46 + .byte 0x6C, 0x5A, 0x1C, 0x02, 0xC9, 0x09, 0x05, 0x02, 0x10, 0xB5, 0x14, 0x1C, 0xE0, 0xF7, 0xA0, 0xFB + .byte 0x21, 0x78, 0x81, 0x42, 0x04, 0xD1, 0x03, 0x48, 0x01, 0x21, 0x00, 0x68, 0x43, 0x30, 0x01, 0x70 + .byte 0x10, 0xBD, 0xC0, 0x46, 0x6C, 0x5A, 0x1C, 0x02, 0x07, 0x48, 0x00, 0x68, 0x00, 0x28, 0x08, 0xD0 + .byte 0x41, 0x6B, 0x06, 0x48, 0x81, 0x42, 0x02, 0xD0, 0x05, 0x48, 0x81, 0x42, 0x01, 0xD1, 0x01, 0x20 + .byte 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0xC0, 0x46, 0x6C, 0x5A, 0x1C, 0x02, 0x15, 0x0A, 0x05, 0x02 + .byte 0x31, 0x09, 0x05, 0x02, 0x10, 0xB5, 0x82, 0xB0, 0x19, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28 + .byte 0x03, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0x02, 0xB0, 0x10, 0xBD, 0x05, 0x24, 0xE2, 0xF7, 0x42, 0xFD + .byte 0x02, 0x28, 0x05, 0xD0, 0x04, 0x28, 0x01, 0xD0, 0x05, 0x28, 0x02, 0xD1, 0x0F, 0x24, 0x00, 0xE0 + .byte 0x07, 0x24, 0x00, 0xA8, 0xE2, 0xF7, 0x58, 0xFD, 0x0D, 0x48, 0x00, 0x68, 0x41, 0x6C, 0x80, 0x69 + .byte 0x00, 0x29, 0x04, 0xD1, 0x00, 0xA9, 0x22, 0x1C, 0xF6, 0xF7, 0xC8, 0xFB, 0x0B, 0xE0, 0x22, 0x1C + .byte 0xF6, 0xF7, 0xE6, 0xFB, 0x06, 0x48, 0x00, 0x68, 0x40, 0x6C, 0xC5, 0xF7, 0x95, 0xFF, 0x04, 0x48 + .byte 0x00, 0x21, 0x00, 0x68, 0x41, 0x64, 0xFF, 0xF7, 0x8B, 0xF8, 0x02, 0xB0, 0x10, 0xBD, 0xC0, 0x46 + .byte 0x6C, 0x5A, 0x1C, 0x02, 0x08, 0xB5, 0xDE, 0xF7, 0x9F, 0xFF, 0x00, 0x28, 0x17, 0xD0, 0x0C, 0x48 + .byte 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x01, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0x08, 0x48, 0x00, 0x68 + .byte 0x80, 0x8F, 0x5A, 0x28, 0x02, 0xD1, 0x04, 0x20, 0xE0, 0xF7, 0x2E, 0xFD, 0x04, 0x20, 0xE0, 0xF7 + .byte 0x53, 0xFD, 0x00, 0x28, 0x03, 0xD0, 0x03, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0xAB, 0xFA, 0x08, 0xBD + .byte 0x6C, 0x5A, 0x1C, 0x02, 0x95, 0x0A, 0x05, 0x02, 0x08, 0xB5, 0x07, 0x48, 0x01, 0x68, 0x88, 0x8F + .byte 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD, 0xDE, 0xF7, 0x59, 0xFF, 0x03, 0x48 + .byte 0x78, 0x21, 0xFF, 0xF7, 0x97, 0xFA, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0x05, 0x0B, 0x05, 0x02 + .byte 0x08, 0xB5, 0x03, 0x20, 0xE0, 0xF7, 0x30, 0xFD, 0x00, 0x28, 0x03, 0xD0, 0x02, 0x48, 0x02, 0x21 + .byte 0xFF, 0xF7, 0x88, 0xFA, 0x08, 0xBD, 0xC0, 0x46, 0x49, 0x0B, 0x05, 0x02, 0x08, 0xB5, 0x09, 0x48 + .byte 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD, 0x00, 0x20 + .byte 0xFC, 0xF7, 0x9E, 0xF8, 0x03, 0x20, 0xE0, 0xF7, 0xEF, 0xFC, 0x03, 0x48, 0x00, 0x21, 0xFF, 0xF7 + .byte 0x71, 0xFA, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0x71, 0x0B, 0x05, 0x02, 0x08, 0xB5, 0xE0, 0xF7 + .byte 0x19, 0xFF, 0x02, 0x48, 0x02, 0x21, 0xFF, 0xF7, 0x65, 0xFA, 0x08, 0xBD, 0xD1, 0x0B, 0x05, 0x02 + .byte 0x08, 0xB5, 0xDE, 0xF7, 0x1B, 0xF9, 0x00, 0x28, 0x03, 0xD0, 0x02, 0x48, 0x0A, 0x21, 0xFF, 0xF7 + .byte 0x59, 0xFA, 0x08, 0xBD, 0xA9, 0x06, 0x05, 0x02, 0x02, 0x49, 0x01, 0x22, 0x09, 0x68, 0x08, 0x18 + .byte 0x02, 0x74, 0x70, 0x47, 0x6C, 0x5A, 0x1C, 0x02, 0x10, 0xB5, 0x04, 0x1C, 0x04, 0x2C, 0x01, 0xDB + .byte 0xD0, 0xF7, 0x14, 0xF8, 0x02, 0x48, 0x01, 0x68, 0xA0, 0x00, 0x08, 0x58, 0x10, 0xBD, 0xC0, 0x46 + .byte 0x6C, 0x5A, 0x1C, 0x02, 0x10, 0xB5, 0xE0, 0xF7, 0xBB, 0xFA, 0x04, 0x1C, 0x5F, 0x20, 0xE0, 0xF7 + .byte 0xDB, 0xFC, 0x00, 0x28, 0x0B, 0xD0, 0x06, 0x49, 0x58, 0x20, 0x0A, 0x68, 0xA1, 0x00, 0x51, 0x58 + .byte 0x04, 0x4A, 0xDF, 0xF7, 0x21, 0xFF, 0x04, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x2B, 0xFA, 0x10, 0xBD + .byte 0x6C, 0x5A, 0x1C, 0x02, 0x6C, 0x06, 0x00, 0x00, 0x4D, 0x0C, 0x05, 0x02, 0x38, 0xB5, 0x00, 0x24 + .byte 0xE0, 0xF7, 0x66, 0xF9, 0x00, 0x28, 0x0A, 0xDD, 0x09, 0x4D, 0x28, 0x68, 0x00, 0x19, 0x00, 0x7C + .byte 0x00, 0x28, 0x0B, 0xD0, 0x64, 0x1C, 0xE0, 0xF7, 0x5B, 0xF9, 0x84, 0x42, 0xF5, 0xDB, 0x61, 0x20 + .byte 0xE0, 0xF7, 0x8A, 0xFC, 0x03, 0x48, 0x00, 0x21, 0xFF, 0xF7, 0x0C, 0xFA, 0x38, 0xBD, 0xC0, 0x46 + .byte 0x6C, 0x5A, 0x1C, 0x02, 0xF5, 0x0C, 0x05, 0x02, 0x08, 0xB5, 0xDE, 0xF7, 0xDD, 0xFE, 0x00, 0x28 + .byte 0x17, 0xD1, 0x0C, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x01, 0xD0, 0x40, 0x1E, 0x88, 0x87 + .byte 0x08, 0x48, 0x00, 0x68, 0x80, 0x8F, 0x5A, 0x28, 0x02, 0xD1, 0x05, 0x20, 0xE0, 0xF7, 0x6C, 0xFC + .byte 0x05, 0x20, 0xE0, 0xF7, 0x91, 0xFC, 0x00, 0x28, 0x03, 0xD0, 0x03, 0x48, 0x00, 0x21, 0xFF, 0xF7 + .byte 0xE9, 0xF9, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0x11, 0x0D, 0x05, 0x02, 0x08, 0xB5, 0x07, 0x48 + .byte 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD, 0xDE, 0xF7 + .byte 0x9D, 0xFE, 0x03, 0x48, 0x78, 0x21, 0xFF, 0xF7, 0xD5, 0xF9, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02 + .byte 0x89, 0x0C, 0x05, 0x02, 0x08, 0xB5, 0x61, 0x20, 0xE0, 0xF7, 0x6E, 0xFC, 0x00, 0x28, 0x03, 0xD0 + .byte 0x02, 0x48, 0x02, 0x21, 0xFF, 0xF7, 0xC6, 0xF9, 0x08, 0xBD, 0xC0, 0x46, 0xCD, 0x0C, 0x05, 0x02 + .byte 0x08, 0xB5, 0x0D, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E, 0x88, 0x87 + .byte 0x08, 0xBD, 0x62, 0x20, 0xE0, 0xF7, 0x30, 0xFC, 0x07, 0x48, 0x00, 0x68, 0x42, 0x30, 0x00, 0x78 + .byte 0x00, 0x28, 0x04, 0xD0, 0x05, 0x48, 0x1E, 0x21, 0xFF, 0xF7, 0xAC, 0xF9, 0x08, 0xBD, 0x04, 0x48 + .byte 0x1E, 0x21, 0xFF, 0xF7, 0xA7, 0xF9, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0xC9, 0x06, 0x05, 0x02 + .byte 0xF9, 0x07, 0x05, 0x02, 0x08, 0xB5, 0x0B, 0x48, 0x01, 0x68, 0x88, 0x8F, 0x00, 0x28, 0x02, 0xD0 + .byte 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD, 0xED, 0xF1, 0x1D, 0xFA, 0xE0, 0xF7, 0x79, 0xFD, 0x21, 0x20 + .byte 0xC5, 0xF7, 0xAE, 0xFD, 0x03, 0x48, 0x00, 0x21, 0x00, 0x68, 0x41, 0x30, 0x01, 0x70, 0xFE, 0xF7 + .byte 0x47, 0xFF, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0x08, 0xB5, 0x5B, 0x20, 0xE0, 0xF7, 0x24, 0xFC + .byte 0x00, 0x28, 0x0A, 0xD0, 0x00, 0x20, 0x01, 0x1C, 0xE2, 0xF7, 0xA6, 0xFB, 0x01, 0x20, 0xFB, 0xF7 + .byte 0x9F, 0xFF, 0x02, 0x48, 0x05, 0x21, 0xFF, 0xF7, 0x75, 0xF9, 0x08, 0xBD, 0xC9, 0x0D, 0x05, 0x02 + .byte 0x08, 0xB5, 0x01, 0x20, 0xFB, 0xF7, 0x94, 0xFF, 0x02, 0x48, 0x05, 0x21, 0xFF, 0xF7, 0x6A, 0xF9 + .byte 0x08, 0xBD, 0xC0, 0x46, 0xC9, 0x0D, 0x05, 0x02, 0x08, 0xB5, 0x07, 0x48, 0x01, 0x68, 0x88, 0x8F + .byte 0x00, 0x28, 0x02, 0xD0, 0x40, 0x1E, 0x88, 0x87, 0x08, 0xBD, 0xE0, 0xF7, 0x15, 0xFE, 0x03, 0x48 + .byte 0x00, 0x21, 0xFF, 0xF7, 0x57, 0xF9, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0x11, 0xFC, 0x04, 0x02 + .byte 0x08, 0xB5, 0x06, 0x49, 0x09, 0x68, 0x00, 0x29, 0x03, 0xD0, 0x41, 0x31, 0x09, 0x78, 0x00, 0x29 + .byte 0x01, 0xD1, 0x00, 0x20, 0x08, 0xBD, 0xED, 0xF1, 0x51, 0xFA, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02 + .byte 0x08, 0xB5, 0x05, 0x48, 0x00, 0x68, 0x00, 0x28, 0x05, 0xD0, 0x41, 0x30, 0x00, 0x78, 0x00, 0x28 + .byte 0x01, 0xD0, 0xED, 0xF1, 0x79, 0xF9, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0x08, 0xB5, 0x05, 0x48 + .byte 0x00, 0x68, 0x00, 0x28, 0x05, 0xD0, 0x41, 0x30, 0x00, 0x78, 0x00, 0x28, 0x01, 0xD0, 0xED, 0xF1 + .byte 0x89, 0xF9, 0x08, 0xBD, 0x6C, 0x5A, 0x1C, 0x02, 0xF8, 0xB5, 0x82, 0xB0, 0x07, 0x1C, 0x0D, 0x1C + .byte 0x09, 0x98, 0x30, 0x21, 0x00, 0x92, 0x01, 0x93, 0xEE, 0x68, 0xC5, 0xF7, 0xBD, 0xFD, 0x00, 0x21 + .byte 0x30, 0x22, 0x04, 0x1C, 0x7D, 0xF0, 0x72, 0xEA, 0xE8, 0x68, 0xD2, 0xF7, 0x43, 0xFD, 0x01, 0x1C + .byte 0x20, 0x1C, 0x2B, 0xF0, 0x17, 0xFA, 0x30, 0x1C, 0x1A, 0xF0, 0x56, 0xFE, 0xE0, 0x61, 0x30, 0x1C + .byte 0x28, 0xF0, 0xF6, 0xFE, 0xE0, 0x62, 0x30, 0x1C, 0xD2, 0xF7, 0x3A, 0xFD, 0x60, 0x60, 0x00, 0x98 + .byte 0x20, 0x60, 0x01, 0x20, 0x60, 0x74, 0x01, 0x98, 0x20, 0x75, 0x20, 0x68, 0x1A, 0xF0, 0x86, 0xFD + .byte 0xE0, 0x74, 0x00, 0x20, 0x20, 0x83, 0x08, 0x98, 0xA0, 0x74, 0x30, 0x1C, 0xD9, 0xF7, 0x34, 0xFD + .byte 0x20, 0x62, 0x06, 0x49, 0x20, 0x1C, 0x2A, 0xF0, 0xA3, 0xF8, 0x05, 0x49, 0x28, 0x1C, 0x22, 0x1C + .byte 0xE6, 0xF7, 0x88, 0xFA, 0x3C, 0x60, 0x02, 0xB0, 0xF8, 0xBD, 0xC0, 0x46, 0x80, 0x58, 0x0F, 0x02 + .byte 0xE8, 0xA6, 0x0F, 0x02, 0x38, 0xB5, 0x05, 0x1C, 0x08, 0x1C, 0x40, 0x21, 0xC5, 0xF7, 0x5C, 0xFD + .byte 0x00, 0x21, 0x40, 0x22, 0x04, 0x1C, 0x7D, 0xF0, 0x32, 0xEA, 0x68, 0x6A, 0xC0, 0x68, 0xD2, 0xF7 + .byte 0x07, 0xFD, 0xE0, 0x60, 0x68, 0x6A, 0xAC, 0x30, 0x00, 0x68, 0x60, 0x61, 0x68, 0x6A, 0xC0, 0x68 + .byte 0x1A, 0xF0, 0x0C, 0xFE, 0x20, 0x60, 0x68, 0x6A, 0xC0, 0x68, 0x1E, 0xF0, 0x25, 0xF9, 0x60, 0x60 + .byte 0x20, 0x1C, 0x00, 0x21, 0x21, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x02, 0x21, 0x20, 0x30, 0x01, 0x70 + .byte 0x68, 0x6A, 0xAC, 0x30, 0x00, 0x68, 0x00, 0x28, 0x1C, 0xD0, 0x01, 0x21, 0xD2, 0xF7, 0xEE, 0xFD + .byte 0x21, 0x1C, 0x32, 0x31, 0x09, 0x78, 0x0F, 0x22, 0x00, 0x06, 0x91, 0x43, 0x02, 0x0E, 0x0F, 0x20 + .byte 0x10, 0x40, 0x01, 0x43, 0x20, 0x1C, 0x32, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x32, 0x30, 0x00, 0x78 + .byte 0xF0, 0x21, 0x88, 0x43, 0x21, 0x1C, 0x32, 0x31, 0x09, 0x78, 0x09, 0x07, 0x09, 0x0F, 0x09, 0x07 + .byte 0x09, 0x0E, 0x0F, 0xE0, 0x20, 0x1C, 0x32, 0x30, 0x01, 0x78, 0x0F, 0x20, 0x81, 0x43, 0x03, 0x20 + .byte 0x01, 0x43, 0x20, 0x1C, 0x32, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x32, 0x30, 0x01, 0x78, 0xF0, 0x20 + .byte 0x81, 0x43, 0x30, 0x20, 0x01, 0x43, 0x20, 0x1C, 0x32, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x21 + .byte 0x33, 0x30, 0x01, 0x70, 0x28, 0x1C, 0x3C, 0x30, 0x01, 0x78, 0x20, 0x1C, 0x22, 0x30, 0x01, 0x70 + .byte 0x00, 0x22, 0xA8, 0x18, 0x3D, 0x30, 0x01, 0x78, 0xA0, 0x18, 0x2C, 0x30, 0x52, 0x1C, 0x01, 0x70 + .byte 0x06, 0x2A, 0xF6, 0xDB, 0x68, 0x6A, 0x03, 0x49, 0x22, 0x1C, 0xE6, 0xF7, 0x0B, 0xFA, 0x6C, 0x60 + .byte 0x38, 0xBD, 0xC0, 0x46, 0xDC, 0x96, 0x0F, 0x02, 0x10, 0xB5, 0x04, 0x1C, 0x08, 0x1C, 0xF5, 0xF7 + .byte 0x55, 0xFA, 0x00, 0x28, 0x01, 0xD0, 0x00, 0x20, 0x10, 0xBD, 0x60, 0x68, 0x21, 0x1C, 0x2C, 0x30 + .byte 0x3D, 0x31, 0x06, 0x22, 0x7D, 0xF0, 0xFC, 0xE9, 0x60, 0x68, 0x22, 0x30, 0x00, 0x78, 0x06, 0x28 + .byte 0x04, 0xD0, 0x07, 0x28, 0x05, 0xD1, 0x00, 0x20, 0xA0, 0x63, 0x04, 0xE0, 0x01, 0x20, 0xA0, 0x63 + .byte 0x01, 0xE0, 0x02, 0x20, 0xA0, 0x63, 0x60, 0x68, 0x22, 0x30, 0x01, 0x78, 0x20, 0x1C, 0x3C, 0x30 + .byte 0x01, 0x70, 0x60, 0x68, 0xC5, 0xF7, 0x00, 0xFD, 0x00, 0x20, 0x60, 0x60, 0x01, 0x20, 0x10, 0xBD + .byte 0x10, 0xB5, 0x04, 0x1C, 0x08, 0x1C, 0xF5, 0xF7, 0x29, 0xFA, 0x00, 0x28, 0x01, 0xD0, 0x00, 0x20 + .byte 0x10, 0xBD, 0x20, 0x68, 0x01, 0x7D, 0x20, 0x1C, 0x3C, 0x30, 0x01, 0x70, 0x20, 0x68, 0xC5, 0xF7 + .byte 0xEB, 0xFC, 0x00, 0x20, 0x20, 0x60, 0x01, 0x20, 0x10, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0x40, 0x6A + .byte 0xF5, 0xF7, 0x28, 0xFA, 0x00, 0x28, 0x06, 0xD0, 0x01, 0x20, 0x86, 0xF1, 0x23, 0xFE, 0xFB, 0xF7 + .byte 0x1D, 0xFE, 0x01, 0x20, 0x08, 0xBD, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0xDF, 0xF7 + .byte 0x57, 0xFF, 0x05, 0x1C, 0x00, 0x24, 0x00, 0x2D, 0x09, 0xDD, 0x20, 0x1C, 0xE0, 0xF7, 0xBE, 0xFA + .byte 0x5E, 0x28, 0x01, 0xD1, 0x01, 0x20, 0x38, 0xBD, 0x64, 0x1C, 0xAC, 0x42, 0xF5, 0xDB, 0x00, 0x20 + .byte 0x38, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x82, 0xB0, 0x05, 0x1C, 0xF5, 0xF7, 0x47, 0xFA, 0x04, 0x1C + .byte 0x28, 0x1C, 0xF5, 0xF7, 0x41, 0xFA, 0x61, 0x6B, 0x2C, 0x29, 0x00, 0xD9, 0x84, 0xE3, 0x49, 0x18 + .byte 0x79, 0x44, 0xC9, 0x88, 0x09, 0x04, 0x09, 0x14, 0x8F, 0x44, 0x58, 0x00, 0x7A, 0x00, 0x94, 0x00 + .byte 0xAE, 0x00, 0xEA, 0x00, 0x3A, 0x01, 0xFC, 0x06, 0x28, 0x01, 0x50, 0x01, 0x76, 0x01, 0x82, 0x01 + .byte 0xAE, 0x01, 0xCC, 0x01, 0xE0, 0x01, 0xEC, 0x01, 0x0E, 0x02, 0x24, 0x02, 0x52, 0x02, 0x78, 0x02 + .byte 0x8A, 0x02, 0xCE, 0x02, 0xAE, 0x02, 0xEA, 0x02, 0xFA, 0x02, 0x18, 0x03, 0x36, 0x03, 0x4A, 0x03 + .byte 0xB6, 0x03, 0xEC, 0x03, 0x02, 0x04, 0x4C, 0x04, 0x84, 0x04, 0xAA, 0x04, 0xCA, 0x05, 0xFA, 0x05 + .byte 0x12, 0x06, 0xFE, 0x04, 0x3C, 0x05, 0x58, 0x05, 0x22, 0x06, 0xFC, 0x06, 0x46, 0x06, 0x88, 0x06 + .byte 0xAA, 0x06, 0xDC, 0x06, 0x20, 0x1C, 0x43, 0x30, 0x00, 0x78, 0x41, 0x1E, 0x20, 0x1C, 0x43, 0x30 + .byte 0x01, 0x70, 0x20, 0x1C, 0x43, 0x30, 0x00, 0x78, 0x00, 0x28, 0x57, 0xD1, 0x01, 0x20, 0x60, 0x63 + .byte 0xFD, 0xF7, 0xC6, 0xFD, 0x40, 0xE3, 0xE0, 0x6A, 0xE2, 0x68, 0x01, 0x21, 0xB9, 0xF7, 0xD0, 0xFB + .byte 0xE1, 0x68, 0x20, 0x1C, 0x00, 0xF0, 0x3C, 0xFB, 0x20, 0x63, 0x02, 0x20, 0x60, 0x63, 0x33, 0xE3 + .byte 0x20, 0x6B, 0x00, 0x06, 0x00, 0x0E, 0x03, 0xF0, 0xB7, 0xFA, 0x00, 0x28, 0x3E, 0xD0, 0x5D, 0x20 + .byte 0xE0, 0xF7, 0x12, 0xFA, 0x03, 0x20, 0x60, 0x63, 0x26, 0xE3, 0x5D, 0x20, 0xE0, 0xF7, 0x34, 0xFA + .byte 0x00, 0x28, 0x0A, 0xD0, 0x07, 0x20, 0x60, 0x63, 0x60, 0x6A, 0x40, 0x6B, 0x07, 0xF0, 0xF4, 0xFA + .byte 0x21, 0x6D, 0xA2, 0x68, 0x01, 0x20, 0x90, 0x47, 0x16, 0xE3, 0xC6, 0x48, 0x81, 0x6C, 0x02, 0x20 + .byte 0x08, 0x42, 0x23, 0xD0, 0x04, 0x20, 0x60, 0x63, 0x5C, 0x20, 0xE0, 0xF7, 0xF5, 0xF9, 0x05, 0x20 + .byte 0x43, 0x34, 0x20, 0x70, 0x08, 0xE3, 0x5D, 0x20, 0xE0, 0xF7, 0x16, 0xFA, 0x00, 0x28, 0x09, 0xD0 + .byte 0x07, 0x20, 0x60, 0x63, 0x60, 0x6A, 0x40, 0x6B, 0x07, 0xF0, 0xD6, 0xFA, 0x21, 0x6D, 0xA2, 0x68 + .byte 0x01, 0x20, 0x90, 0x47, 0x20, 0x1C, 0x43, 0x30, 0x00, 0x78, 0x41, 0x1E, 0x20, 0x1C, 0x43, 0x30 + .byte 0x01, 0x70, 0x20, 0x1C, 0x43, 0x30, 0x00, 0x78, 0x00, 0x28, 0x00, 0xD0, 0xEC, 0xE2, 0x08, 0x20 + .byte 0x60, 0x63, 0xE9, 0xE2, 0x20, 0x1C, 0x00, 0xF0, 0xD7, 0xFB, 0x20, 0x1C, 0xC5, 0xF7, 0x14, 0xFC + .byte 0x02, 0xB0, 0x01, 0x20, 0x38, 0xBD, 0x20, 0x1C, 0x00, 0xF0, 0xCE, 0xFB, 0x20, 0x1C, 0xC5, 0xF7 + .byte 0x0B, 0xFC, 0xFE, 0xF7, 0xFB, 0xFA, 0x02, 0xB0, 0x01, 0x20, 0x38, 0xBD, 0x5D, 0x20, 0xE0, 0xF7 + .byte 0xE3, 0xF9, 0x00, 0x28, 0x06, 0xD0, 0x05, 0x20, 0x60, 0x63, 0x21, 0x6D, 0xA2, 0x68, 0x01, 0x20 + .byte 0x90, 0x47, 0xC9, 0xE2, 0x21, 0x6D, 0xA2, 0x68, 0x00, 0x20, 0x90, 0x47, 0x05, 0x20, 0x60, 0x63 + .byte 0xC2, 0xE2, 0x0A, 0x20, 0x60, 0x63, 0x05, 0x20, 0x44, 0x34, 0x20, 0x70, 0xBC, 0xE2, 0x21, 0x1C + .byte 0x44, 0x31, 0x09, 0x78, 0x00, 0x29, 0x06, 0xD0, 0x20, 0x1C, 0x44, 0x30, 0x00, 0x78, 0x44, 0x34 + .byte 0x40, 0x1E, 0x20, 0x70, 0xB0, 0xE2, 0x80, 0x6B, 0x04, 0xF0, 0xA2, 0xF8, 0x09, 0xF0, 0xE4, 0xFD + .byte 0x00, 0x28, 0x4A, 0xD0, 0x0B, 0x20, 0x60, 0x63, 0xA6, 0xE2, 0xFD, 0xF7, 0x29, 0xFD, 0xE0, 0x6A + .byte 0xE2, 0x68, 0x0D, 0x21, 0xB9, 0xF7, 0x34, 0xFB, 0xE1, 0x68, 0x20, 0x1C, 0x00, 0xF0, 0xA0, 0xFA + .byte 0x20, 0x63, 0x0C, 0x20, 0x60, 0x63, 0x97, 0xE2, 0x20, 0x6B, 0x00, 0x06, 0x00, 0x0E, 0x03, 0xF0 + .byte 0x1B, 0xFA, 0x00, 0x28, 0x31, 0xD0, 0x0D, 0x20, 0x60, 0x63, 0x8D, 0xE2, 0x00, 0x20, 0x86, 0xF1 + .byte 0x01, 0xFD, 0x0E, 0x20, 0x60, 0x63, 0x87, 0xE2, 0x20, 0x1C, 0x43, 0x30, 0x00, 0x78, 0x41, 0x1E + .byte 0x20, 0x1C, 0x43, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x43, 0x30, 0x00, 0x78, 0x00, 0x28, 0x1C, 0xD1 + .byte 0xFD, 0xF7, 0xFE, 0xFC, 0x0F, 0x20, 0x60, 0x63, 0x76, 0xE2, 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0 + .byte 0x9F, 0xFA, 0x20, 0x1C, 0x0B, 0x21, 0xFF, 0xF7, 0xFD, 0xFD, 0x10, 0x20, 0x60, 0x63, 0x6B, 0xE2 + .byte 0x61, 0x6A, 0x20, 0x1C, 0xFF, 0xF7, 0x70, 0xFE, 0x00, 0x28, 0x06, 0xD0, 0xA0, 0x6B, 0x00, 0x28 + .byte 0x04, 0xD0, 0x01, 0x28, 0x05, 0xD0, 0x02, 0x28, 0x06, 0xD0, 0x5D, 0xE2, 0x14, 0x20, 0x60, 0x63 + .byte 0x5A, 0xE2, 0x13, 0x20, 0x60, 0x63, 0x57, 0xE2, 0x11, 0x20, 0x60, 0x63, 0x54, 0xE2, 0x60, 0x6A + .byte 0xC0, 0x68, 0x1A, 0xF0, 0x03, 0xFC, 0x02, 0x1C, 0x00, 0x20, 0x00, 0x90, 0x0B, 0x20, 0x01, 0x90 + .byte 0x23, 0x1C, 0x3C, 0x33, 0x1B, 0x78, 0x61, 0x6A, 0x20, 0x1C, 0xFF, 0xF7, 0x8D, 0xFD, 0x12, 0x20 + .byte 0x60, 0x63, 0x41, 0xE2, 0x61, 0x6A, 0x20, 0x1C, 0xFF, 0xF7, 0x72, 0xFE, 0x00, 0x28, 0x67, 0xD0 + .byte 0x0F, 0x20, 0x60, 0x63, 0x38, 0xE2, 0x60, 0x6A, 0xF5, 0xF7, 0xA8, 0xF8, 0x20, 0x1C, 0x88, 0x30 + .byte 0x00, 0x78, 0x03, 0x28, 0x06, 0xD0, 0x20, 0x1C, 0x05, 0x21, 0x43, 0x30, 0x01, 0x70, 0x15, 0x20 + .byte 0x60, 0x63, 0x29, 0xE2, 0x1A, 0x20, 0x60, 0x63, 0x26, 0xE2, 0x20, 0x1C, 0x3D, 0x30, 0xE2, 0xF7 + .byte 0xF9, 0xF8, 0x20, 0x1C, 0xFF, 0xF7, 0x6A, 0xFE, 0x00, 0x28, 0x49, 0xD0, 0x20, 0x1C, 0x05, 0x21 + .byte 0x43, 0x30, 0x01, 0x70, 0x00, 0x20, 0x60, 0x63, 0x16, 0xE2, 0x60, 0x6A, 0xF5, 0xF7, 0x86, 0xF8 + .byte 0x20, 0x1C, 0x88, 0x30, 0x00, 0x78, 0x03, 0x28, 0x02, 0xD0, 0x16, 0x20, 0x60, 0x63, 0x0B, 0xE2 + .byte 0x1A, 0x20, 0x60, 0x63, 0x08, 0xE2, 0x20, 0x1C, 0xFF, 0xF7, 0x50, 0xFE, 0x00, 0x28, 0x2F, 0xD0 + .byte 0x08, 0x20, 0x60, 0x63, 0x00, 0xE2, 0x20, 0x1C, 0x44, 0x30, 0x00, 0x78, 0x41, 0x1E, 0x20, 0x1C + .byte 0x44, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x44, 0x30, 0x00, 0x78, 0x00, 0x28, 0x20, 0xD1, 0x18, 0x20 + .byte 0x60, 0x63, 0xF1, 0xE1, 0xFD, 0xF7, 0x74, 0xFC, 0xE0, 0x6A, 0xE2, 0x68, 0x13, 0x21, 0xB9, 0xF7 + .byte 0x7F, 0xFA, 0xE1, 0x68, 0x20, 0x1C, 0x00, 0xF0, 0xEB, 0xF9, 0x20, 0x63, 0x19, 0x20, 0x60, 0x63 + .byte 0xE2, 0xE1, 0x20, 0x6B, 0x00, 0x06, 0x00, 0x0E, 0x03, 0xF0, 0x66, 0xF9, 0x00, 0x28, 0x07, 0xD0 + .byte 0x0D, 0x20, 0x60, 0x63, 0xD8, 0xE1, 0x20, 0x1C, 0xFF, 0xF7, 0x20, 0xFE, 0x00, 0x28, 0x00, 0xD1 + .byte 0xD2, 0xE1, 0xFF, 0xF7, 0x2B, 0xFE, 0x00, 0x28, 0x02, 0xD0, 0x05, 0x20, 0x60, 0x63, 0xCB, 0xE1 + .byte 0xA0, 0x6B, 0x00, 0x28, 0x01, 0xD0, 0x01, 0x21, 0x00, 0xE0, 0x00, 0x21, 0x20, 0x1C, 0x82, 0x30 + .byte 0x01, 0x70, 0x21, 0x1C, 0x82, 0x31, 0x09, 0x78, 0x20, 0x1C, 0x00, 0xF0, 0xD9, 0xFA, 0x00, 0x20 + .byte 0xE0, 0xF7, 0xA2, 0xF8, 0xA0, 0x6A, 0x62, 0x6F, 0x00, 0x21, 0xB9, 0xF7, 0xB9, 0xFB, 0xE0, 0x6A + .byte 0xE2, 0x68, 0x0E, 0x21, 0xB9, 0xF7, 0x44, 0xFA, 0xA0, 0x6A, 0x21, 0x69, 0xE2, 0x68, 0xBA, 0xF7 + .byte 0xAB, 0xF9, 0x21, 0x69, 0x20, 0x1C, 0x00, 0xF0, 0xAB, 0xF9, 0x20, 0x63, 0x1B, 0x20, 0x60, 0x63 + .byte 0xA2, 0xE1, 0x20, 0x6B, 0x00, 0x06, 0x00, 0x0E, 0x03, 0xF0, 0x26, 0xF9, 0x00, 0x28, 0x79, 0xD0 + .byte 0xFF, 0xF7, 0xF4, 0xFD, 0x00, 0x28, 0x02, 0xD0, 0x05, 0x20, 0x60, 0x63, 0x94, 0xE1, 0x00, 0x20 + .byte 0xE0, 0xF7, 0xA2, 0xF8, 0x00, 0x28, 0x6D, 0xD0, 0x20, 0x1C, 0x00, 0xF0, 0xCD, 0xFA, 0x1C, 0x20 + .byte 0x60, 0x63, 0x89, 0xE1, 0xB8, 0x48, 0x1C, 0x02, 0x20, 0x1C, 0x00, 0xF0, 0xE9, 0xFA, 0x00, 0x28 + .byte 0x60, 0xD0, 0x01, 0x20, 0xE0, 0xF7, 0x68, 0xF8, 0x1D, 0x20, 0x60, 0x63, 0x7C, 0xE1, 0x01, 0x20 + .byte 0xE0, 0xF7, 0x8A, 0xF8, 0x00, 0x28, 0x55, 0xD0, 0x20, 0x1C, 0x00, 0xF0, 0xE1, 0xFA, 0x21, 0x1C + .byte 0x83, 0x31, 0x08, 0x70, 0x20, 0x1C, 0x82, 0x30, 0x00, 0x78, 0x00, 0x28, 0x11, 0xD0, 0x20, 0x1C + .byte 0x83, 0x30, 0x00, 0x78, 0x00, 0x28, 0x0C, 0xD0, 0xE0, 0x6A, 0xE2, 0x68, 0x14, 0x21, 0xB9, 0xF7 + .byte 0xF7, 0xF9, 0xE1, 0x68, 0x20, 0x1C, 0x00, 0xF0, 0x63, 0xF9, 0x20, 0x63, 0x1E, 0x20, 0x60, 0x63 + .byte 0x5A, 0xE1, 0x2A, 0x20, 0x60, 0x63, 0x57, 0xE1, 0x20, 0x6B, 0x00, 0x06, 0x00, 0x0E, 0x03, 0xF0 + .byte 0xDB, 0xF8, 0x00, 0x28, 0x2E, 0xD0, 0x20, 0x1C, 0x00, 0x21, 0x89, 0x30, 0x01, 0x70, 0xE0, 0x6A + .byte 0xE2, 0x68, 0x11, 0x21, 0xB9, 0xF7, 0xDC, 0xF9, 0xE1, 0x68, 0x20, 0x1C, 0x00, 0xF0, 0x48, 0xF9 + .byte 0x20, 0x63, 0x20, 0x1C, 0x00, 0x21, 0x84, 0x30, 0x01, 0x70, 0x1F, 0x20, 0x60, 0x63, 0x3B, 0xE1 + .byte 0x20, 0x6B, 0x00, 0x06, 0x00, 0x0E, 0x03, 0xF0, 0xBF, 0xF8, 0x00, 0x28, 0x12, 0xD0, 0x20, 0x1C + .byte 0x00, 0xF0, 0xCE, 0xFA, 0x21, 0x1C, 0x84, 0x31, 0x09, 0x78, 0x20, 0x1C, 0x00, 0xF0, 0x04, 0xFB + .byte 0x20, 0x20, 0x60, 0x63, 0x28, 0xE1, 0x20, 0x1C, 0x00, 0xF0, 0xF4, 0xFB, 0x01, 0x28, 0x02, 0xD0 + .byte 0x02, 0x28, 0x0B, 0xD0, 0x20, 0xE1, 0x20, 0x1C, 0x00, 0xF0, 0x54, 0xFC, 0x81, 0x20, 0x21, 0x56 + .byte 0x20, 0x1C, 0x84, 0x30, 0x01, 0x70, 0x24, 0x20, 0x60, 0x63, 0x15, 0xE1, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x49, 0xFC, 0x20, 0x1C, 0xFF, 0x21, 0x84, 0x30, 0x01, 0x70, 0xE0, 0x6A, 0xE2, 0x68, 0x0F, 0x21 + .byte 0xB9, 0xF7, 0x9E, 0xF9, 0xE1, 0x68, 0x20, 0x1C, 0x00, 0xF0, 0x0A, 0xF9, 0x20, 0x63, 0x02, 0x20 + .byte 0xDF, 0xF7, 0xEA, 0xFF, 0x27, 0x20, 0x60, 0x63, 0xFE, 0xE0, 0x21, 0x1C, 0x84, 0x31, 0x09, 0x78 + .byte 0x20, 0x6D, 0x1A, 0xF0, 0xF5, 0xF9, 0x17, 0xF0, 0x8D, 0xFD, 0x02, 0x1C, 0xA0, 0x6A, 0x01, 0x21 + .byte 0xB9, 0xF7, 0x46, 0xFB, 0xE0, 0x6A, 0xE2, 0x68, 0x12, 0x21, 0xB9, 0xF7, 0x81, 0xF9, 0xA0, 0x6A + .byte 0x21, 0x69, 0xE2, 0x68, 0xBA, 0xF7, 0xE8, 0xF8, 0x21, 0x69, 0x20, 0x1C, 0x00, 0xF0, 0xE8, 0xF8 + .byte 0x20, 0x63, 0x25, 0x20, 0x60, 0x63, 0xDF, 0xE0, 0x20, 0x6B, 0x00, 0x06, 0x00, 0x0E, 0x03, 0xF0 + .byte 0x63, 0xF8, 0x00, 0x28, 0x43, 0xD0, 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0, 0x3D, 0xFB, 0x26, 0x20 + .byte 0x60, 0x63, 0xD1, 0xE0, 0x20, 0x1C, 0x00, 0xF0, 0x9D, 0xFB, 0x01, 0x28, 0x11, 0xD0, 0x02, 0x28 + .byte 0x35, 0xD1, 0x20, 0x1C, 0x00, 0xF0, 0xFE, 0xFB, 0xE0, 0x6A, 0xE2, 0x68, 0x11, 0x21, 0xB9, 0xF7 + .byte 0x57, 0xF9, 0xE1, 0x68, 0x20, 0x1C, 0x00, 0xF0, 0xC3, 0xF8, 0x20, 0x63, 0x1F, 0x20, 0x60, 0x63 + .byte 0xBA, 0xE0, 0x81, 0x20, 0x20, 0x56, 0x01, 0x28, 0x17, 0xD1, 0x20, 0x1C, 0x00, 0xF0, 0xEA, 0xFB + .byte 0xE0, 0x6A, 0xE2, 0x68, 0x0E, 0x21, 0xB9, 0xF7, 0x43, 0xF9, 0xA0, 0x6A, 0x21, 0x69, 0xE2, 0x68 + .byte 0xBA, 0xF7, 0xAA, 0xF8, 0x21, 0x69, 0x20, 0x1C, 0x00, 0xF0, 0xAA, 0xF8, 0x20, 0x63, 0x02, 0x20 + .byte 0xDF, 0xF7, 0x8A, 0xFF, 0x27, 0x20, 0x60, 0x63, 0x9E, 0xE0, 0x00, 0x20, 0x86, 0xF1, 0x12, 0xFB + .byte 0x21, 0x20, 0x60, 0x63, 0x98, 0xE0, 0xBC, 0xF7, 0x3F, 0xFE, 0x00, 0x28, 0x00, 0xD1, 0x93, 0xE0 + .byte 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0, 0xBC, 0xF8, 0x01, 0x20, 0x00, 0x90, 0x0B, 0x20, 0x01, 0x90 + .byte 0x23, 0x1C, 0x84, 0x33, 0x1B, 0x78, 0x61, 0x6A, 0x22, 0x6D, 0x20, 0x1C, 0xFF, 0xF7, 0xCC, 0xFB + .byte 0x22, 0x20, 0x60, 0x63, 0x80, 0xE0, 0x61, 0x6A, 0x20, 0x1C, 0xFF, 0xF7, 0xB1, 0xFC, 0x00, 0x28 + .byte 0x7A, 0xD0, 0x60, 0x6A, 0xF4, 0xF7, 0xEA, 0xFE, 0x23, 0x20, 0x60, 0x63, 0x74, 0xE0, 0x20, 0x1C + .byte 0xFF, 0xF7, 0xBC, 0xFC, 0x00, 0x28, 0x6F, 0xD0, 0x24, 0x20, 0x60, 0x63, 0x6C, 0xE0, 0x20, 0x6B + .byte 0x00, 0x06, 0x00, 0x0E, 0x02, 0xF0, 0xF0, 0xFF, 0x00, 0x28, 0x65, 0xD0, 0x02, 0x20, 0xDF, 0xF7 + .byte 0x73, 0xFF, 0x00, 0x28, 0x60, 0xD0, 0x20, 0x1C, 0x00, 0xF0, 0xD4, 0xF9, 0x29, 0x20, 0x60, 0x63 + .byte 0x5A, 0xE0, 0x20, 0x1C, 0x00, 0xF0, 0xEC, 0xF9, 0x00, 0x28, 0x55, 0xD0, 0x20, 0x1C, 0x84, 0x30 + .byte 0x00, 0x78, 0xFF, 0x28, 0x05, 0xD1, 0x04, 0x20, 0xDF, 0xF7, 0x36, 0xFF, 0x2C, 0x20, 0x60, 0x63 + .byte 0x4A, 0xE0, 0x20, 0x1C, 0x85, 0x30, 0x00, 0x78, 0xFF, 0x28, 0x02, 0xD1, 0x2A, 0x20, 0x60, 0x63 + .byte 0x42, 0xE0, 0x20, 0x1C, 0x00, 0xF0, 0xF2, 0xF9, 0x5D, 0x20, 0xDF, 0xF7, 0x25, 0xFF, 0x02, 0x20 + .byte 0x60, 0x63, 0x39, 0xE0, 0xE0, 0x6A, 0xE2, 0x68, 0x0F, 0x21, 0xB9, 0xF7, 0xC9, 0xF8, 0xE1, 0x68 + .byte 0x20, 0x1C, 0x00, 0xF0, 0x35, 0xF8, 0x20, 0x63, 0x20, 0x1C, 0x00, 0x21, 0x43, 0x30, 0x01, 0x70 + .byte 0x2B, 0x20, 0x60, 0x63, 0x28, 0xE0, 0x20, 0x6B, 0x00, 0x06, 0x00, 0x0E, 0x02, 0xF0, 0xAC, 0xFF + .byte 0x00, 0x28, 0x21, 0xD0, 0x20, 0x1C, 0x43, 0x30, 0x00, 0x78, 0x41, 0x1C, 0x20, 0x1C, 0x43, 0x30 + .byte 0x01, 0x70, 0x20, 0x1C, 0x43, 0x30, 0x00, 0x78, 0x3C, 0x28, 0x15, 0xD9, 0x04, 0x20, 0xDF, 0xF7 + .byte 0xFB, 0xFE, 0x2C, 0x20, 0x60, 0x63, 0x0F, 0xE0, 0x04, 0x20, 0xDF, 0xF7, 0x1D, 0xFF, 0x00, 0x28 + .byte 0x0A, 0xD0, 0x20, 0x1C, 0x14, 0x30, 0x00, 0x21, 0xBB, 0xF7, 0x9A, 0xFC, 0x00, 0x20, 0xA2, 0x68 + .byte 0x01, 0x1C, 0x90, 0x47, 0x05, 0x20, 0x60, 0x63, 0x00, 0x20, 0x02, 0xB0, 0x38, 0xBD, 0x00, 0x00 + .byte 0x70, 0xB5, 0x05, 0x1C, 0x2C, 0x1C, 0x14, 0x34, 0x20, 0x1C, 0x0E, 0x1C, 0xC7, 0xF7, 0x3C, 0xFC + .byte 0x00, 0x28, 0x0E, 0xD1, 0x68, 0x6A, 0x21, 0x1C, 0x80, 0x68, 0x03, 0x22, 0x02, 0xF0, 0xEC, 0xFE + .byte 0x68, 0x6A, 0xC0, 0x68, 0xD2, 0xF7, 0x8C, 0xF8, 0x01, 0x1C, 0x20, 0x1C, 0x02, 0xF0, 0x0C, 0xFF + .byte 0x02, 0xE0, 0x20, 0x1C, 0x02, 0xF0, 0x2A, 0xFF, 0x68, 0x6A, 0xC0, 0x68, 0xD2, 0xF7, 0x80, 0xF8 + .byte 0x02, 0x1C, 0x20, 0x1C, 0x31, 0x1C, 0x01, 0x23, 0x02, 0xF0, 0x26, 0xFF, 0x70, 0xBD, 0x00, 0x00 + .byte 0x38, 0xB5, 0x05, 0x1C, 0x14, 0x30, 0x0C, 0x1C, 0xC7, 0xF7, 0x16, 0xFC, 0x00, 0x28, 0x12, 0xD0 + .byte 0x00, 0x2C, 0x08, 0xD0, 0x28, 0x1C, 0x14, 0x30, 0x00, 0x21, 0xBB, 0xF7, 0x59, 0xFC, 0x28, 0x1C + .byte 0x14, 0x30, 0xC7, 0xF7, 0x9D, 0xFE, 0x28, 0x1C, 0x14, 0x30, 0xC7, 0xF7, 0x9D, 0xFC, 0x28, 0x1C + .byte 0x14, 0x30, 0xC7, 0xF7, 0xEB, 0xFB, 0x28, 0x1C, 0x54, 0x30, 0xC7, 0xF7, 0xFD, 0xFB, 0x00, 0x28 + .byte 0x07, 0xD0, 0x28, 0x1C, 0x54, 0x30, 0xC7, 0xF7, 0x8F, 0xFC, 0x28, 0x1C, 0x54, 0x30, 0xC7, 0xF7 + .byte 0xDD, 0xFB, 0x28, 0x1C, 0x64, 0x30, 0xC7, 0xF7, 0xEF, 0xFB, 0x00, 0x28, 0x07, 0xD0, 0x28, 0x1C + .byte 0x64, 0x30, 0xC7, 0xF7, 0x81, 0xFC, 0x64, 0x35, 0x28, 0x1C, 0xC7, 0xF7, 0xCF, 0xFB, 0x38, 0xBD + .byte 0x70, 0xB5, 0x05, 0x1C, 0x28, 0x69, 0x0E, 0x1C, 0x00, 0x28, 0x00, 0xD0, 0x81, 0xE0, 0x0B, 0x20 + .byte 0x8C, 0x21, 0xC5, 0xF7, 0xA1, 0xF8, 0x04, 0x1C, 0x00, 0x21, 0x8C, 0x22, 0x7C, 0xF0, 0x56, 0xED + .byte 0x20, 0x1C, 0x05, 0x21, 0x43, 0x30, 0x01, 0x70, 0x65, 0x62, 0xA6, 0x60, 0x0B, 0x20, 0xB9, 0xF7 + .byte 0xE7, 0xF8, 0xA0, 0x62, 0x00, 0x20, 0x1A, 0x21, 0x09, 0x22, 0x0B, 0x23, 0xB8, 0xF7, 0xD6, 0xFF + .byte 0xE0, 0x62, 0xC8, 0x20, 0x0B, 0x21, 0xD0, 0xF7, 0x95, 0xF8, 0xE0, 0x60, 0xC8, 0x20, 0x0B, 0x21 + .byte 0xD0, 0xF7, 0x90, 0xF8, 0x20, 0x61, 0x20, 0x1C, 0x14, 0x30, 0xC7, 0xF7, 0x9F, 0xFB, 0x20, 0x1C + .byte 0x54, 0x30, 0xC7, 0xF7, 0x9B, 0xFB, 0x20, 0x1C, 0x64, 0x30, 0xC7, 0xF7, 0x97, 0xFB, 0x0B, 0x20 + .byte 0xC1, 0xF7, 0xCE, 0xFE, 0xA0, 0x67, 0xE1, 0xF7, 0x1D, 0xFE, 0x21, 0x1C, 0x88, 0x31, 0x08, 0x70 + .byte 0x00, 0x21, 0xE1, 0x64, 0xA1, 0x64, 0x20, 0x1C, 0x21, 0x65, 0x89, 0x30, 0x01, 0x70, 0xDF, 0xF7 + .byte 0x3F, 0xFC, 0x21, 0x1C, 0x86, 0x31, 0x08, 0x80, 0x20, 0x1C, 0x86, 0x30, 0x01, 0x88, 0x01, 0x20 + .byte 0x48, 0x40, 0xDC, 0xF7, 0x3F, 0xFB, 0x60, 0x67, 0x20, 0x1C, 0x88, 0x30, 0x00, 0x78, 0x03, 0x28 + .byte 0x02, 0xD0, 0x04, 0x28, 0x1B, 0xD0, 0x1D, 0xE0, 0x00, 0xF0, 0x8C, 0xFA, 0x06, 0x1C, 0x0B, 0x20 + .byte 0x31, 0x1C, 0xC5, 0xF7, 0x49, 0xF8, 0xE0, 0x64, 0x0B, 0x20, 0x31, 0x1C, 0xC5, 0xF7, 0x44, 0xF8 + .byte 0xA0, 0x64, 0x0B, 0x20, 0x19, 0xF0, 0xAA, 0xFF, 0x03, 0x21, 0x20, 0x65, 0x19, 0xF0, 0xB6, 0xFF + .byte 0x20, 0x1C, 0x05, 0x21, 0x44, 0x30, 0x01, 0x70, 0x17, 0x20, 0x60, 0x63, 0x0C, 0xE0, 0x09, 0x20 + .byte 0x60, 0x63, 0x09, 0xE0, 0x60, 0x6A, 0xAC, 0x30, 0x00, 0x68, 0x00, 0x28, 0x02, 0xD0, 0x09, 0x20 + .byte 0x60, 0x63, 0x01, 0xE0, 0x00, 0x20, 0x60, 0x63, 0x02, 0x49, 0x28, 0x1C, 0x22, 0x1C, 0xF4, 0xF7 + .byte 0x1D, 0xFD, 0x70, 0xBD, 0x95, 0x10, 0x05, 0x02, 0x10, 0xB5, 0x04, 0x1C, 0x20, 0x6D, 0x00, 0x28 + .byte 0x01, 0xD0, 0xC5, 0xF7, 0x39, 0xF8, 0xE0, 0x6C, 0x00, 0x28, 0x01, 0xD0, 0xC5, 0xF7, 0x34, 0xF8 + .byte 0xA0, 0x6C, 0x00, 0x28, 0x01, 0xD0, 0xC5, 0xF7, 0x2F, 0xF8, 0xE0, 0x6A, 0xB8, 0xF7, 0x7C, 0xFF + .byte 0xA0, 0x6A, 0xB9, 0xF7, 0xA9, 0xF8, 0xE0, 0x68, 0xD0, 0xF7, 0x2A, 0xF8, 0x20, 0x69, 0xD0, 0xF7 + .byte 0x27, 0xF8, 0xA0, 0x6F, 0xC1, 0xF7, 0x74, 0xFE, 0x20, 0x1C, 0x01, 0x21, 0xFF, 0xF7, 0x18, 0xFF + .byte 0x10, 0xBD, 0x00, 0x00, 0x01, 0x4B, 0x00, 0x69, 0x18, 0x47, 0xC0, 0x46, 0x2D, 0x65, 0x04, 0x02 + .byte 0xF8, 0xB5, 0x07, 0x1C, 0x78, 0x6A, 0x0D, 0x1C, 0xC0, 0x68, 0x1A, 0xF0, 0x8F, 0xF8, 0x00, 0x90 + .byte 0xFC, 0x6C, 0x17, 0xF0, 0x5F, 0xFB, 0x06, 0x1C, 0x70, 0x00, 0x30, 0x18, 0x25, 0x50, 0x20, 0x58 + .byte 0x00, 0x28, 0x0F, 0xD0, 0x00, 0x25, 0x79, 0x19, 0x3D, 0x31, 0x09, 0x78, 0x00, 0x98, 0x49, 0x1E + .byte 0x19, 0xF0, 0xC6, 0xFF, 0x21, 0x1C, 0x32, 0x1C, 0x7C, 0xF0, 0xDA, 0xEC, 0x6D, 0x1C, 0xA4, 0x19 + .byte 0x03, 0x2D, 0xF0, 0xDB, 0xF8, 0xBD, 0x00, 0x00, 0x38, 0xB5, 0x05, 0x1C, 0x89, 0x30, 0x01, 0x78 + .byte 0x01, 0x20, 0x01, 0x42, 0x1A, 0xD1, 0xEC, 0x6C, 0x00, 0xF0, 0x04, 0xFA, 0x02, 0x1C, 0x28, 0x1C + .byte 0x86, 0x30, 0x00, 0x88, 0x00, 0x28, 0x04, 0xD1, 0x6A, 0x20, 0x21, 0x1C, 0xDF, 0xF7, 0x6E, 0xF8 + .byte 0x03, 0xE0, 0x6A, 0x20, 0x21, 0x1C, 0xDF, 0xF7, 0x07, 0xF8, 0x00, 0x28, 0x06, 0xD0, 0x29, 0x1C + .byte 0x89, 0x31, 0x0A, 0x78, 0x01, 0x21, 0x89, 0x35, 0x11, 0x43, 0x29, 0x70, 0x38, 0xBD, 0x00, 0x00 + .byte 0x89, 0x30, 0x00, 0x78, 0x03, 0x28, 0x01, 0xD1, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47 + .byte 0x10, 0xB5, 0x04, 0x1C, 0x17, 0xF0, 0x16, 0xFB, 0x41, 0x00, 0xA2, 0x6C, 0x40, 0x18, 0x10, 0x58 + .byte 0x10, 0xBD, 0x00, 0x00, 0x10, 0xB5, 0x04, 0x1C, 0x86, 0x30, 0x00, 0x88, 0x00, 0x28, 0x06, 0xD1 + .byte 0x21, 0x1C, 0x6B, 0x20, 0x84, 0x31, 0x01, 0x22, 0xDF, 0xF7, 0x84, 0xF8, 0x05, 0xE0, 0x21, 0x1C + .byte 0x6B, 0x20, 0x84, 0x31, 0x01, 0x22, 0xDF, 0xF7, 0x09, 0xF8, 0x00, 0x28, 0x06, 0xD0, 0x21, 0x1C + .byte 0x89, 0x31, 0x0A, 0x78, 0x01, 0x21, 0x89, 0x34, 0x11, 0x43, 0x21, 0x70, 0x10, 0xBD, 0x00, 0x00 + .byte 0x89, 0x30, 0x00, 0x78, 0x03, 0x28, 0x01, 0xD1, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47 + .byte 0x70, 0xB5, 0x05, 0x1C, 0x17, 0xF0, 0xE6, 0xFA, 0x06, 0x1C, 0x28, 0x6D, 0x03, 0x21, 0x19, 0xF0 + .byte 0xE5, 0xFE, 0x00, 0x24, 0x21, 0x1C, 0xAA, 0x6C, 0x71, 0x43, 0x28, 0x6D, 0x51, 0x18, 0x19, 0xF0 + .byte 0xF7, 0xFE, 0x64, 0x1C, 0x03, 0x2C, 0xF5, 0xDB, 0x70, 0xBD, 0x00, 0x00, 0x70, 0xB5, 0x06, 0x1C + .byte 0x17, 0xF0, 0xD0, 0xFA, 0x04, 0x1C, 0x30, 0x1C, 0x84, 0x30, 0x00, 0x78, 0xB2, 0x6C, 0xF3, 0x6C + .byte 0x01, 0x1C, 0x61, 0x43, 0x50, 0x18, 0x31, 0x1C, 0x85, 0x31, 0x09, 0x78, 0x0A, 0x1C, 0x62, 0x43 + .byte 0x99, 0x18, 0x22, 0x1C, 0x7C, 0xF0, 0x4C, 0xEC, 0x30, 0x6D, 0x03, 0x21, 0x19, 0xF0, 0xBE, 0xFE + .byte 0x00, 0x25, 0x29, 0x1C, 0xF2, 0x6C, 0x61, 0x43, 0x30, 0x6D, 0x51, 0x18, 0x19, 0xF0, 0xD0, 0xFE + .byte 0x6D, 0x1C, 0x03, 0x2D, 0xF5, 0xDB, 0x70, 0xBD, 0xF0, 0xB5, 0x89, 0xB0, 0x05, 0x1C, 0x08, 0x90 + .byte 0x54, 0x30, 0x05, 0x91, 0x08, 0x90, 0xC7, 0xF7, 0x67, 0xFA, 0x00, 0x28, 0x5A, 0xD1, 0x41, 0x4A + .byte 0x01, 0x20, 0x1A, 0x21, 0x04, 0x23, 0xB8, 0xF7, 0x71, 0xFE, 0x06, 0x90, 0x17, 0xF0, 0x9A, 0xFA + .byte 0x07, 0x90, 0x09, 0x20, 0x00, 0x90, 0x0A, 0x21, 0x01, 0x91, 0x08, 0x20, 0x02, 0x90, 0x0D, 0x20 + .byte 0x03, 0x90, 0x04, 0x91, 0x68, 0x6A, 0x08, 0x99, 0x80, 0x68, 0x03, 0x22, 0x15, 0x23, 0xC7, 0xF7 + .byte 0x59, 0xFA, 0x00, 0x20, 0x00, 0x90, 0x04, 0x20, 0x01, 0x90, 0x68, 0x6A, 0x03, 0x21, 0x80, 0x68 + .byte 0x01, 0x22, 0x0B, 0x23, 0xBA, 0xF7, 0x9C, 0xFF, 0x08, 0x98, 0x0F, 0x21, 0xC7, 0xF7, 0x28, 0xFD + .byte 0x00, 0x27, 0x3E, 0x1C, 0x3C, 0x1C, 0xA8, 0x6C, 0x05, 0x21, 0x80, 0x19, 0x00, 0x22, 0x15, 0xF0 + .byte 0xED, 0xFA, 0x01, 0x1C, 0x06, 0x98, 0xEA, 0x68, 0xB8, 0xF7, 0x7A, 0xFE, 0x00, 0x94, 0xFF, 0x20 + .byte 0x01, 0x90, 0x00, 0x20, 0x02, 0x90, 0x08, 0x98, 0xEA, 0x68, 0x00, 0x21, 0x10, 0x23, 0xCA, 0xF7 + .byte 0xC1, 0xF8, 0x07, 0x98, 0x7F, 0x1C, 0x36, 0x18, 0x10, 0x34, 0x03, 0x2F, 0xE3, 0xDB, 0xE8, 0x6A + .byte 0xEA, 0x68, 0x15, 0x21, 0xB8, 0xF7, 0x64, 0xFE, 0x38, 0x01, 0x00, 0x90, 0xFF, 0x20, 0x01, 0x90 + .byte 0x00, 0x21, 0x02, 0x91, 0x08, 0x98, 0xEA, 0x68, 0x10, 0x23, 0xCA, 0xF7, 0xAB, 0xF8, 0x06, 0x98 + .byte 0xB8, 0xF7, 0x42, 0xFE, 0x10, 0x20, 0x00, 0x90, 0x08, 0x98, 0x00, 0x22, 0x00, 0x7A, 0x0F, 0x21 + .byte 0x13, 0x1C, 0xC0, 0x04, 0x00, 0x0C, 0x01, 0x90, 0x08, 0x98, 0xC7, 0xF7, 0x53, 0xFD, 0x05, 0x9B + .byte 0x29, 0x1C, 0xA8, 0x6F, 0x54, 0x31, 0x00, 0x22, 0x1B, 0x01, 0xC1, 0xF7, 0x4D, 0xFD, 0x28, 0x1C + .byte 0x54, 0x30, 0x00, 0x21, 0x01, 0x22, 0x0B, 0x23, 0xBB, 0xF7, 0x1C, 0xF8, 0x29, 0x1C, 0x05, 0x98 + .byte 0x81, 0x31, 0x08, 0x70, 0x28, 0x1C, 0x04, 0x21, 0x80, 0x30, 0x01, 0x70, 0x08, 0x98, 0xE8, 0x67 + .byte 0x09, 0xB0, 0xF0, 0xBD, 0x6A, 0x01, 0x00, 0x00, 0xF8, 0xB5, 0x86, 0xB0, 0x05, 0x1C, 0x2F, 0x1C + .byte 0x64, 0x37, 0x38, 0x1C, 0x05, 0x91, 0xC7, 0xF7, 0xD7, 0xF9, 0x00, 0x28, 0x35, 0xD1, 0x0B, 0x20 + .byte 0x00, 0x90, 0x01, 0x90, 0x06, 0x20, 0x02, 0x90, 0x0D, 0x20, 0x03, 0x90, 0x5A, 0x20, 0x04, 0x90 + .byte 0x68, 0x6A, 0x39, 0x1C, 0x80, 0x68, 0x03, 0x22, 0x14, 0x23, 0xC7, 0xF7, 0xD3, 0xF9, 0x00, 0x20 + .byte 0x00, 0x90, 0x04, 0x20, 0x01, 0x90, 0x68, 0x6A, 0x03, 0x21, 0x80, 0x68, 0x01, 0x22, 0x0B, 0x23 + .byte 0xBA, 0xF7, 0x16, 0xFF, 0x38, 0x1C, 0x0F, 0x21, 0xC7, 0xF7, 0xA2, 0xFC, 0x00, 0x26, 0x34, 0x1C + .byte 0x31, 0x1C, 0xE8, 0x6A, 0xEA, 0x68, 0x16, 0x31, 0xB8, 0xF7, 0xFA, 0xFD, 0x00, 0x94, 0xFF, 0x20 + .byte 0x01, 0x90, 0x00, 0x20, 0x02, 0x90, 0xEA, 0x68, 0x38, 0x1C, 0x00, 0x21, 0x10, 0x23, 0xCA, 0xF7 + .byte 0x41, 0xF8, 0x76, 0x1C, 0x10, 0x34, 0x03, 0x2E, 0xEA, 0xDB, 0x28, 0x1C, 0x03, 0x21, 0x80, 0x30 + .byte 0x01, 0x70, 0x29, 0x1C, 0x05, 0x98, 0xEF, 0x67, 0x81, 0x31, 0x08, 0x70, 0x10, 0x20, 0x00, 0x90 + .byte 0x38, 0x7A, 0x00, 0x22, 0x0F, 0x21, 0xC0, 0x04, 0x00, 0x0C, 0x01, 0x90, 0x38, 0x1C, 0x13, 0x1C + .byte 0xC7, 0xF7, 0xE0, 0xFC, 0x05, 0x9B, 0xA8, 0x6F, 0xE9, 0x6F, 0x00, 0x22, 0x1B, 0x01, 0xC1, 0xF7 + .byte 0xDB, 0xFC, 0xE8, 0x6F, 0x00, 0x21, 0x01, 0x22, 0x0B, 0x23, 0xBA, 0xF7, 0xAB, 0xFF, 0x06, 0xB0 + .byte 0xF8, 0xBD, 0x00, 0x00, 0x10, 0xB5, 0x82, 0xB0, 0x04, 0x1C, 0x30, 0x48, 0x40, 0x21, 0x80, 0x6C + .byte 0x01, 0x42, 0x0C, 0xD0, 0x81, 0x20, 0x20, 0x56, 0x00, 0x28, 0x03, 0xD1, 0x20, 0x1C, 0x80, 0x30 + .byte 0x00, 0x78, 0xFF, 0xE7, 0x41, 0x1E, 0x20, 0x1C, 0x81, 0x30, 0x01, 0x70, 0x30, 0xE0, 0x80, 0x21 + .byte 0x01, 0x42, 0x0E, 0xD0, 0x81, 0x20, 0x21, 0x56, 0x20, 0x1C, 0x80, 0x30, 0x00, 0x78, 0x40, 0x1E + .byte 0x81, 0x42, 0x01, 0xD1, 0x00, 0x21, 0x00, 0xE0, 0x49, 0x1C, 0x20, 0x1C, 0x81, 0x30, 0x01, 0x70 + .byte 0x1E, 0xE0, 0x01, 0x21, 0x01, 0x42, 0x0F, 0xD0, 0x1D, 0x48, 0xB3, 0xF7, 0x8D, 0xFB, 0x81, 0x20 + .byte 0x21, 0x56, 0x80, 0x34, 0x20, 0x78, 0x40, 0x1E, 0x81, 0x42, 0x02, 0xDA, 0x02, 0xB0, 0x01, 0x20 + .byte 0x10, 0xBD, 0x02, 0xB0, 0x02, 0x20, 0x10, 0xBD, 0x02, 0x21, 0x08, 0x42, 0x05, 0xD0, 0x14, 0x48 + .byte 0xB3, 0xF7, 0x7A, 0xFB, 0x02, 0xB0, 0x02, 0x20, 0x10, 0xBD, 0x02, 0xB0, 0x00, 0x20, 0x10, 0xBD + .byte 0x0F, 0x48, 0xB3, 0xF7, 0x71, 0xFB, 0xE0, 0x6F, 0x10, 0x21, 0x00, 0x91, 0x01, 0x7A, 0x00, 0x22 + .byte 0x13, 0x1C, 0xC9, 0x04, 0x09, 0x0C, 0x01, 0x91, 0x0F, 0x21, 0xC7, 0xF7, 0x7B, 0xFC, 0x81, 0x23 + .byte 0xE3, 0x56, 0xA0, 0x6F, 0xE1, 0x6F, 0x00, 0x22, 0x1B, 0x01, 0xC1, 0xF7, 0x75, 0xFC, 0xE0, 0x6F + .byte 0xC7, 0xF7, 0x9A, 0xFB, 0x00, 0x20, 0x02, 0xB0, 0x10, 0xBD, 0xC0, 0x46, 0xB8, 0x48, 0x1C, 0x02 + .byte 0xDC, 0x05, 0x00, 0x00, 0x01, 0x4B, 0xC0, 0x6F, 0x01, 0x21, 0x18, 0x47, 0xF9, 0xCC, 0x00, 0x02 + .byte 0x10, 0xB5, 0x04, 0x1C, 0x18, 0x1C, 0xFF, 0xF7, 0xD5, 0xFD, 0x01, 0x1C, 0x86, 0x31, 0x09, 0x88 + .byte 0xA1, 0x42, 0x06, 0xD0, 0x01, 0x1C, 0x89, 0x31, 0x0A, 0x78, 0x02, 0x21, 0x89, 0x30, 0x11, 0x43 + .byte 0x01, 0x70, 0x10, 0xBD, 0x08, 0xB5, 0x17, 0xF0, 0x35, 0xF9, 0x41, 0x00, 0x40, 0x18, 0x00, 0x1D + .byte 0x08, 0xBD, 0x00, 0x00, 0x10, 0xB5, 0x04, 0x1C, 0x08, 0x1C, 0xFF, 0xF7, 0xBB, 0xFD, 0x01, 0x1C + .byte 0x86, 0x31, 0x09, 0x88, 0xA1, 0x42, 0x01, 0xD0, 0x80, 0x6C, 0x10, 0xBD, 0x00, 0x20, 0x10, 0xBD + .byte 0x38, 0xB5, 0x05, 0x1C, 0x18, 0x1C, 0x14, 0x1C, 0xFF, 0xF7, 0xAC, 0xFD, 0x01, 0x1C, 0x86, 0x31 + .byte 0x09, 0x88, 0xA9, 0x42, 0x0A, 0xD0, 0x22, 0x78, 0x01, 0x1C, 0x85, 0x31, 0x0A, 0x70, 0x01, 0x1C + .byte 0x89, 0x31, 0x0A, 0x78, 0x02, 0x21, 0x89, 0x30, 0x11, 0x43, 0x01, 0x70, 0x38, 0xBD, 0x00, 0x00 + .byte 0x70, 0xB5, 0x04, 0x1C, 0xF4, 0xF7, 0x38, 0xFB, 0x05, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0x36, 0xFB + .byte 0x04, 0x1C, 0x00, 0x21, 0x60, 0x6A, 0x0A, 0x1C, 0xFE, 0xF7, 0x96, 0xFE, 0x06, 0x1C, 0xA0, 0x6A + .byte 0x07, 0x28, 0x00, 0xD9, 0xAF, 0xE0, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14 + .byte 0x87, 0x44, 0x0E, 0x00, 0x98, 0x00, 0xE8, 0x00, 0xF8, 0x00, 0x08, 0x01, 0x1A, 0x01, 0x28, 0x01 + .byte 0x44, 0x01, 0x04, 0x20, 0xB8, 0xF7, 0xC4, 0xFD, 0xA0, 0x61, 0x00, 0x20, 0x1A, 0x21, 0x09, 0x22 + .byte 0x04, 0x23, 0xB8, 0xF7, 0xB3, 0xFC, 0xE0, 0x61, 0xC8, 0x20, 0x04, 0x21, 0xCF, 0xF7, 0x72, 0xFD + .byte 0x20, 0x60, 0xC8, 0x20, 0x04, 0x21, 0xCF, 0xF7, 0x6D, 0xFD, 0x60, 0x60, 0xF1, 0x78, 0xE0, 0x69 + .byte 0x22, 0x68, 0x89, 0x1C, 0xB8, 0xF7, 0xDC, 0xFC, 0x60, 0x6A, 0xDC, 0xF7, 0x3B, 0xF8, 0x02, 0x1C + .byte 0xA0, 0x69, 0x00, 0x21, 0xB8, 0xF7, 0x44, 0xFE, 0xA0, 0x69, 0x61, 0x68, 0x22, 0x68, 0xB9, 0xF7 + .byte 0x3B, 0xFC, 0x21, 0x1C, 0xA8, 0x68, 0x08, 0x31, 0x03, 0x22, 0x02, 0xF0, 0x35, 0xFB, 0xE8, 0x68 + .byte 0xD1, 0xF7, 0xD6, 0xFC, 0x01, 0x1C, 0x20, 0x1C, 0x08, 0x30, 0x02, 0xF0, 0x55, 0xFB, 0xE8, 0x68 + .byte 0xD1, 0xF7, 0xCE, 0xFC, 0x02, 0x1C, 0x20, 0x1C, 0x61, 0x68, 0x08, 0x30, 0x01, 0x23, 0x02, 0xF0 + .byte 0x73, 0xFB, 0x20, 0x62, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x5E, 0xE0, 0x20, 0x6A, 0x00, 0x06 + .byte 0x00, 0x0E, 0x02, 0xF0, 0xA1, 0xFB, 0x00, 0x28, 0x57, 0xD0, 0x2D, 0x48, 0x81, 0x6C, 0x01, 0x20 + .byte 0x08, 0x42, 0x52, 0xD0, 0xE0, 0x69, 0xB8, 0xF7, 0x8F, 0xFC, 0xA0, 0x69, 0xB8, 0xF7, 0xBC, 0xFD + .byte 0x20, 0x68, 0xCF, 0xF7, 0x3D, 0xFD, 0x60, 0x68, 0xCF, 0xF7, 0x3A, 0xFD, 0x20, 0x1C, 0x08, 0x30 + .byte 0x00, 0x21, 0xBB, 0xF7, 0x95, 0xF8, 0x20, 0x1C, 0x08, 0x30, 0xC7, 0xF7, 0xDD, 0xF8, 0x00, 0x20 + .byte 0x85, 0xF1, 0x70, 0xFE, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x36, 0xE0, 0xBC, 0xF7, 0x9C, 0xF9 + .byte 0x00, 0x28, 0x32, 0xD0, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x2E, 0xE0, 0x28, 0x1C, 0x31, 0x1C + .byte 0xE6, 0xF7, 0x4E, 0xFB, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x26, 0xE0, 0x28, 0x1C, 0xF4, 0xF7 + .byte 0x45, 0xFA, 0x00, 0x28, 0x21, 0xD1, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x1D, 0xE0, 0x28, 0x1C + .byte 0xF4, 0xF7, 0x4C, 0xFA, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x16, 0xE0, 0x28, 0x1C, 0xF4, 0xF7 + .byte 0x49, 0xFA, 0x00, 0x28, 0x11, 0xD1, 0x01, 0x20, 0x85, 0xF1, 0x44, 0xFE, 0xFA, 0xF7, 0x3E, 0xFE + .byte 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x08, 0xE0, 0xFD, 0xF7, 0xE8, 0xFB, 0x20, 0x1C, 0xC4, 0xF7 + .byte 0xF3, 0xFC, 0x01, 0x20, 0x70, 0xBD, 0x01, 0x20, 0x70, 0xBD, 0x00, 0x20, 0x70, 0xBD, 0xC0, 0x46 + .byte 0xB8, 0x48, 0x1C, 0x02, 0xF8, 0xB5, 0x00, 0x90, 0xDF, 0xF7, 0xA2, 0xF8, 0x05, 0x1C, 0xFC, 0xF7 + .byte 0x41, 0xFA, 0x07, 0x1C, 0x28, 0x1C, 0xFC, 0xF7, 0x59, 0xFA, 0x06, 0x1C, 0x00, 0x24, 0xDE, 0xF7 + .byte 0x5F, 0xFF, 0x00, 0x28, 0x1F, 0xDD, 0xAC, 0x42, 0x18, 0xD0, 0x20, 0x1C, 0xFC, 0xF7, 0xBE, 0xF9 + .byte 0x87, 0x42, 0x13, 0xD1, 0x20, 0x1C, 0xFC, 0xF7, 0xE3, 0xF9, 0x86, 0x42, 0x0E, 0xD1, 0x0B, 0x20 + .byte 0x2C, 0x21, 0xC4, 0xF7, 0xA9, 0xFC, 0x02, 0x1C, 0x54, 0x62, 0x00, 0x20, 0x90, 0x62, 0x00, 0x98 + .byte 0x05, 0x49, 0xF4, 0xF7, 0x9B, 0xF9, 0xE5, 0xF7, 0x63, 0xFB, 0xF8, 0xBD, 0x64, 0x1C, 0xDE, 0xF7 + .byte 0x3F, 0xFF, 0x84, 0x42, 0xDF, 0xDB, 0xF8, 0xBD, 0xB1, 0x1E, 0x05, 0x02 + + thumb_func_start sub_020520AC +sub_020520AC: ; 0x020520AC + push {r3-r5, lr} + add r4, r0, #0x0 + bne _020520B6 + bl sub_02020C2C +_020520B6: + ldr r0, [r4, #0x78] + cmp r0, #0x0 + beq _020520C0 + mov r0, #0x0 + pop {r3-r5, pc} +_020520C0: + mov r2, #0x2a + mov r0, #0x3 + mov r1, #0x1f + lsl r2, r2, #0x6 + bl sub_02016828 + add r0, r4, #0x0 + bl sub_02052110 + add r5, r0, #0x0 + bne _020520D8 + ldr r5, [r4, #0x78] +_020520D8: + add r0, r4, #0x0 + bl sub_0208881C + mov r0, #0x2 + bl sub_02032B6C + ldr r1, _020520F4 ; =sub_02052178 + add r0, r5, #0x0 + mov r2, #0x28 + bl sub_02052300 + add r0, r5, #0x0 + pop {r3-r5, pc} + nop +_020520F4: .word sub_02052178 + 1 + + thumb_func_start sub_020520F8 +sub_020520F8: ; 0x020520F8 + push {r3, lr} + ldr r0, [r0, #0x78] + cmp r0, #0x0 + beq _02052108 + ldr r1, _0205210C ; =sub_02052348 + mov r2, #0x5 + bl sub_02052300 +_02052108: + pop {r3, pc} + nop +_0205210C: .word sub_02052348 + 1 + + thumb_func_start sub_02052110 +sub_02052110: ; 0x02052110 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r1, [r5, #0x78] + cmp r1, #0x0 + beq _0205211E + mov r0, #0x0 + pop {r4-r6, pc} +_0205211E: + bl sub_020377AC + add r6, r0, #0x0 + bl sub_02031A7C + mov r1, #0x19 + mov r0, #0x1f + lsl r1, r1, #0x4 + bl sub_02016998 + mov r2, #0x19 + mov r1, #0x0 + lsl r2, r2, #0x4 + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0x0 + str r0, [r4, #0x10] + mov r0, #0x28 + str r0, [r4, #0x14] + ldr r0, _02052174 ; =sub_02052308 + add r1, r4, #0x0 + mov r2, #0xa + bl sub_0200CA44 + str r0, [r4, #0xc] + str r5, [r4, #0x0] + str r6, [r4, #0x4] + add r0, r6, #0x0 + bl sub_020238F4 + str r0, [r4, #0x8] + add r0, r4, #0x0 + bl sub_02052E1C + mov r0, #0x15 + lsl r0, r0, #0x4 + add r0, r4, r0 + bl sub_020312BC + add r0, r4, #0x0 + pop {r4-r6, pc} + nop +_02052174: .word sub_02052308 + 1 + + thumb_func_start sub_02052178 +sub_02052178: ; 0x02052178 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_0202EDF8 + cmp r0, #0x0 + beq _020521A4 + add r0, sp, #0x0 + bl sub_02013754 + add r0, sp, #0x0 + bl sub_02052DE8 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02052CD8 + ldr r1, _020521A8 ; =sub_020521AC + add r0, r4, #0x0 + mov r2, #0x28 + bl sub_02052300 +_020521A4: + add sp, #0x8 + pop {r4, pc} + .balign 4 +_020521A8: .word sub_020521AC + 1 + + thumb_func_start sub_020521AC +sub_020521AC: ; 0x020521AC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02031B2C + cmp r0, #0x0 + beq _020521C8 + ldr r0, _02052208 ; =0x021C5A70 + mov r2, #0x0 + str r2, [r0, #0x0] + ldr r1, _0205220C ; =sub_0205225C + add r0, r4, #0x0 + bl sub_02052300 + pop {r4, pc} +_020521C8: + ldr r0, [r4, #0x20] + cmp r0, #0x0 + beq _02052206 + mov r0, #0x2 + str r0, [r4, #0x28] + ldr r0, [r4, #0x20] + cmp r0, #0x1 + bne _020521EC + ldr r0, [r4, #0x30] + cmp r0, #0x5 + ldr r0, [r4, #0x18] + bne _020521E6 + bl sub_020328F4 + b _020521FC +_020521E6: + bl sub_02031AC8 + b _020521FC +_020521EC: + cmp r0, #0x2 + bne _020521FC + mov r0, #0x0 + bl sub_02083D48 + ldr r0, [r4, #0x18] + bl sub_020328C0 +_020521FC: + ldr r1, _02052210 ; =sub_02052380 + add r0, r4, #0x0 + mov r2, #0xc + bl sub_02052300 +_02052206: + pop {r4, pc} + .balign 4 +_02052208: .word 0x021C5A70 +_0205220C: .word sub_0205225C + 1 +_02052210: .word sub_02052380 + 1 + + thumb_func_start sub_02052214 +sub_02052214: ; 0x02052214 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02031BD0 + cmp r0, #0x1 + bne _02052230 + ldr r0, [r4, #0x0] + bl sub_0208881C + ldr r1, _02052234 ; =sub_020521AC + add r0, r4, #0x0 + mov r2, #0x2 + bl sub_02052300 +_02052230: + pop {r4, pc} + nop +_02052234: .word sub_020521AC + 1 + + thumb_func_start sub_02052238 +sub_02052238: ; 0x02052238 + push {r3-r5, lr} + mov r5, #0x0 + mov r4, #0x1 +_0205223E: + add r0, r4, #0x0 + bl sub_0202DFA4 + cmp r0, #0x0 + beq _0205224A + add r5, r5, #0x1 +_0205224A: + add r4, r4, #0x1 + cmp r4, #0x5 + blt _0205223E + cmp r5, #0x1 + blt _02052258 + mov r0, #0x1 + pop {r3-r5, pc} +_02052258: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205225C +sub_0205225C: ; 0x0205225C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x14] + cmp r0, #0x0 + ble _0205226C + sub r0, r0, #0x1 + str r0, [r4, #0x14] + pop {r4, pc} +_0205226C: + ldr r0, _020522C4 ; =0x021C5A70 + ldr r1, [r0, #0x0] + add r1, r1, #0x1 + str r1, [r0, #0x0] + bl sub_020311E8 + cmp r0, #0x0 + beq _020522A0 + bl sub_02052238 + cmp r0, #0x1 + bne _020522A0 + bl sub_0202DBE0 + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_020334E8 + mov r0, #0xb + bl sub_02052B74 + ldr r1, _020522C8 ; =sub_020522D0 + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_02052300 +_020522A0: + bl sub_02031B2C + cmp r0, #0x0 + bne _020522C2 + bl sub_02031B50 + add r0, r4, #0x0 + bl sub_02052E1C + mov r0, #0x0 + bl sub_02052B74 + ldr r1, _020522CC ; =sub_02052214 + add r0, r4, #0x0 + mov r2, #0x2 + bl sub_02052300 +_020522C2: + pop {r4, pc} + .balign 4 +_020522C4: .word 0x021C5A70 +_020522C8: .word sub_020522D0 + 1 +_020522CC: .word sub_02052214 + 1 + + thumb_func_start sub_020522D0 +sub_020522D0: ; 0x020522D0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020311E8 + bl sub_020311E8 + cmp r0, #0x0 + bne _020522FA + bl sub_02031B50 + add r0, r4, #0x0 + bl sub_02052E1C + mov r0, #0x0 + bl sub_02052B74 + ldr r1, _020522FC ; =sub_02052214 + add r0, r4, #0x0 + mov r2, #0x2 + bl sub_02052300 +_020522FA: + pop {r4, pc} + .balign 4 +_020522FC: .word sub_02052214 + 1 + + thumb_func_start sub_02052300 +sub_02052300: ; 0x02052300 + str r1, [r0, #0x10] + str r2, [r0, #0x14] + bx lr + .balign 4 + + thumb_func_start sub_02052308 +sub_02052308: ; 0x02052308 + push {r3-r7, lr} + str r1, [sp, #0x0] + cmp r1, #0x0 + bne _02052316 + bl sub_0200CAB4 + pop {r3-r7, pc} +_02052316: + mov r7, #0x11 + ldr r5, _02052344 ; =0x021C5A7C + mov r6, #0x0 + add r4, r1, #0x0 + lsl r7, r7, #0x4 +_02052320: + add r0, r6, #0x0 + bl sub_0202EF18 + mov r1, #0x11 + lsl r1, r1, #0x4 + str r0, [r4, r1] + ldr r0, [r4, r7] + add r6, r6, #0x1 + add r4, r4, #0x4 + stmia r5!, {r0} + cmp r6, #0x10 + blt _02052320 + ldr r0, [sp, #0x0] + ldr r1, [r0, #0x10] + cmp r1, #0x0 + beq _02052342 + blx r1 +_02052342: + pop {r3-r7, pc} + .balign 4 +_02052344: .word 0x021C5A7C + + thumb_func_start sub_02052348 +sub_02052348: ; 0x02052348 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x14] + cmp r0, #0x0 + beq _02052358 + sub r0, r0, #0x1 + str r0, [r4, #0x14] + pop {r4, pc} +_02052358: + bl sub_02031BF4 + ldr r1, _02052368 ; =sub_0205236C + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_02052300 + pop {r4, pc} + .balign 4 +_02052368: .word sub_0205236C + 1 + + thumb_func_start sub_0205236C +sub_0205236C: ; 0x0205236C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + bne _0205237E + add r0, r4, #0x0 + bl sub_020524A0 +_0205237E: + pop {r4, pc} + + thumb_func_start sub_02052380 +sub_02052380: ; 0x02052380 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02031AF4 + cmp r0, #0x1 + bne _0205239C + bl sub_0202DBE0 + ldr r1, _020523D4 ; =sub_02052410 + add r0, r4, #0x0 + mov r2, #0x3 + bl sub_02052300 + pop {r4, pc} +_0205239C: + bl sub_020311E8 + cmp r0, #0x0 + beq _020523B4 + mov r2, #0x0 + str r2, [r4, #0x20] + mov r0, #0x3 + str r0, [r4, #0x1c] + ldr r1, _020523D8 ; =sub_0205225C + add r0, r4, #0x0 + bl sub_02052300 +_020523B4: + bl sub_02031AF4 + cmp r0, #0x0 + beq _020523D2 + ldr r1, _020523DC ; =sub_020523E0 + add r0, r4, #0x0 + mov r2, #0x2 + bl sub_02052300 + mov r1, #0x0 + str r1, [r4, #0x24] + mov r0, #0x2 + str r0, [r4, #0x1c] + str r1, [r4, #0x20] + str r1, [r4, #0x44] +_020523D2: + pop {r4, pc} + .balign 4 +_020523D4: .word sub_02052410 + 1 +_020523D8: .word sub_0205225C + 1 +_020523DC: .word sub_020523E0 + 1 + + thumb_func_start sub_020523E0 +sub_020523E0: ; 0x020523E0 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204646C + cmp r0, #0x0 + bne _02052408 + bl sub_02031B50 + add r0, r4, #0x0 + bl sub_02052E1C + mov r0, #0x0 + bl sub_02052B74 + ldr r1, _0205240C ; =sub_02052214 + add r0, r4, #0x0 + mov r2, #0x2 + bl sub_02052300 +_02052408: + pop {r4, pc} + nop +_0205240C: .word sub_02052214 + 1 + + thumb_func_start sub_02052410 +sub_02052410: ; 0x02052410 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02031AF4 + cmp r0, #0x1 + bne _02052444 + bl sub_02031190 + bl sub_0202DFA4 + cmp r0, #0x0 + beq _0205246C + mov r1, #0x0 + str r1, [r4, #0x20] + mov r0, #0x1 + str r0, [r4, #0x1c] + str r1, [r4, #0x44] + add r1, r0, #0x0 + bl sub_020334E8 + ldr r1, _02052470 ; =sub_02052478 + add r0, r4, #0x0 + mov r2, #0x3 + bl sub_02052300 + pop {r4, pc} +_02052444: + bl sub_02031AF4 + cmp r0, #0x0 + bne _0205246C + bl sub_02031B50 + add r0, r4, #0x0 + bl sub_02052E1C + ldr r1, _02052474 ; =sub_02052214 + add r0, r4, #0x0 + mov r2, #0x2 + bl sub_02052300 + mov r1, #0x0 + str r1, [r4, #0x24] + mov r0, #0x2 + str r0, [r4, #0x1c] + str r1, [r4, #0x20] + str r1, [r4, #0x44] +_0205246C: + pop {r4, pc} + nop +_02052470: .word sub_02052478 + 1 +_02052474: .word sub_02052214 + 1 + + thumb_func_start sub_02052478 +sub_02052478: ; 0x02052478 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02031AF4 + cmp r0, #0x0 + bne _02052498 + bl sub_02031B50 + add r0, r4, #0x0 + bl sub_02052E1C + ldr r1, _0205249C ; =sub_02052214 + add r0, r4, #0x0 + mov r2, #0x2 + bl sub_02052300 +_02052498: + pop {r4, pc} + nop +_0205249C: .word sub_02052214 + 1 + + thumb_func_start sub_020524A0 +sub_020524A0: ; 0x020524A0 + push {r4, lr} + add r4, r0, #0x0 + beq _020524B8 + ldr r0, [r4, #0xc] + bl sub_0200CAB4 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1f + bl sub_020168D0 +_020524B8: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020524BC +sub_020524BC: ; 0x020524BC + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_020524C0 +sub_020524C0: ; 0x020524C0 + lsl r1, r1, #0x2 + add r1, r0, r1 + mov r0, #0x11 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + bx lr + + thumb_func_start sub_020524CC +sub_020524CC: ; 0x020524CC + push {r4-r6, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + sub r0, r5, #0x1 + bl sub_0202EF84 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02052E10 + cmp r6, #0x0 + bne _020524E8 + mov r0, #0x5 + pop {r4-r6, pc} +_020524E8: + sub r0, r5, #0x1 + lsl r0, r0, #0x2 + add r1, r4, r0 + mov r0, #0x11 + lsl r0, r0, #0x4 + ldr r1, [r1, r0] + ldr r0, _02052540 ; =0x021C5A70 + add r1, #0x50 + add r1, #0x30 + str r1, [r0, #0x4] + ldrb r0, [r1, #0x1c] + cmp r0, #0xb + bhi _0205253A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r2, #0 + lsl r2, r3, #0 + lsl r6, r3, #0 + lsl r2, r4, #0 + lsl r6, r4, #0 + lsl r6, r4, #0 + lsl r6, r4, #0 + lsl r6, r4, #0 + lsl r6, r4, #0 + lsl r2, r5, #0 + lsl r2, r5, #0 + lsl r6, r4, #0 + mov r0, #0x1 + pop {r4-r6, pc} +_0205252A: + .byte 0x02, 0x20, 0x70, 0xBD, 0x03, 0x20 + .byte 0x70, 0xBD, 0x04, 0x20, 0x70, 0xBD, 0x05, 0x20, 0x70, 0xBD +_0205253A: + mov r0, #0x5 + pop {r4-r6, pc} + nop +_02052540: .word 0x021C5A70 + + thumb_func_start sub_02052544 +sub_02052544: ; 0x02052544 + push {r4-r6, lr} + add r6, r1, #0x0 + add r4, r0, #0x0 + sub r0, r6, #0x1 + add r5, r2, #0x0 + bl sub_0202EF84 + sub r0, r6, #0x1 + lsl r1, r0, #0x2 + add r2, r4, r1 + mov r1, #0x11 + lsl r1, r1, #0x4 + ldr r2, [r2, r1] + ldr r1, _02052600 ; =0x021C5A70 + add r2, #0x50 + add r2, #0x30 + str r2, [r1, #0x4] + ldrb r1, [r2, #0x1c] + cmp r1, #0xb + bhi _020525F8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0x1 + lsl r2, r4, #0x1 + lsl r2, r6, #0 + lsl r6, r2, #0 + lsl r2, r7, #0x1 + lsl r2, r7, #0x1 + lsl r2, r7, #0x1 + lsl r2, r7, #0x1 + lsl r2, r7, #0x1 + lsl r6, r7, #0x1 + lsl r6, r7, #0x1 + lsl r2, r7, #0x1 + cmp r5, #0x4 + beq _02052598 + mov r0, #0x5 + pop {r4-r6, pc} +_02052598: + mov r1, #0x6 + str r1, [r4, #0x30] + str r0, [r4, #0x18] + mov r0, #0x2 + str r0, [r4, #0x20] + mov r0, #0x0 + str r0, [r4, #0x24] + str r0, [r4, #0x1c] + mov r0, #0x1 + pop {r4-r6, pc} +_020525AC: + .byte 0x03, 0x2D, 0x01, 0xD0 + .byte 0x05, 0x20, 0x70, 0xBD, 0x05, 0x21, 0x21, 0x63, 0xA0, 0x61, 0x01, 0x20, 0x20, 0x62, 0x00, 0x21 + .byte 0x61, 0x62, 0xE1, 0x61, 0x70, 0xBD, 0x01, 0x2D, 0x01, 0xD0, 0x05, 0x20, 0x70, 0xBD, 0xA0, 0x61 + .byte 0x01, 0x20, 0x20, 0x62, 0x00, 0x21, 0x61, 0x62, 0xE1, 0x61, 0x70, 0xBD, 0x02, 0x2D, 0x01, 0xD0 + .byte 0x05, 0x20, 0x70, 0xBD, 0xA0, 0x61, 0x02, 0x20, 0x20, 0x62, 0x00, 0x20, 0x60, 0x62, 0xE0, 0x61 + .byte 0x01, 0x20, 0x70, 0xBD, 0x05, 0x20, 0x70, 0xBD +_020525F8: + bl sub_02020C2C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_02052600: .word 0x021C5A70 + + thumb_func_start sub_02052604 +sub_02052604: ; 0x02052604 + ldr r0, [r0, #0x1c] + bx lr + + thumb_func_start sub_02052608 +sub_02052608: ; 0x02052608 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x44] + cmp r0, #0x0 + beq _02052616 + mov r0, #0x7 + pop {r4, pc} +_02052616: + bl sub_02030F20 + cmp r0, #0x2 + bge _02052622 + mov r0, #0x7 + pop {r4, pc} +_02052622: + bl sub_02031190 + cmp r0, #0x0 + bne _02052636 + bl sub_02031B2C + cmp r0, #0x1 + bne _02052642 + ldr r0, [r4, #0x40] + pop {r4, pc} +_02052636: + bl sub_02031AF4 + cmp r0, #0x1 + bne _02052642 + ldr r0, [r4, #0x40] + pop {r4, pc} +_02052642: + mov r0, #0x7 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02052648 +sub_02052648: ; 0x02052648 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02031B2C + cmp r0, #0x1 + bne _02052658 + ldr r0, [r4, #0x30] + pop {r4, pc} +_02052658: + mov r0, #0x7 + pop {r4, pc} + + thumb_func_start sub_0205265C +sub_0205265C: ; 0x0205265C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + add r0, sp, #0x0 + strb r4, [r0, #0x2] + cmp r1, #0x0 + beq _02052670 + cmp r1, #0x1 + beq _02052688 + pop {r3-r5, pc} +_02052670: + ldr r1, [r5, #0x44] + cmp r1, #0x0 + bne _020526B0 + ldrb r0, [r0, #0x2] + add r1, sp, #0x0 + add r1, #0x2 + str r0, [r5, #0x34] + mov r0, #0x63 + mov r2, #0x1 + bl sub_02030ADC + pop {r3-r5, pc} +_02052688: + cmp r4, #0x0 + bne _020526A0 + ldr r1, [r5, #0x30] + mov r2, #0x1 + strb r1, [r0, #0x1] + add r1, sp, #0x0 + mov r0, #0x67 + add r1, #0x1 + bl sub_02030BC4 + str r4, [r5, #0x3c] + pop {r3-r5, pc} +_020526A0: + mov r1, #0x7 + strb r1, [r0, #0x0] + mov r0, #0x67 + add r1, sp, #0x0 + mov r2, #0x1 + bl sub_02030BC4 + str r4, [r5, #0x3c] +_020526B0: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020526B4 +sub_020526B4: ; 0x020526B4 + bx lr + .balign 4 + + thumb_func_start sub_020526B8 +sub_020526B8: ; 0x020526B8 + bx lr + .balign 4 + + thumb_func_start sub_020526BC +sub_020526BC: ; 0x020526BC + push {r4, lr} + add r4, r3, #0x0 + ldr r0, [r4, #0x78] + ldr r1, _020526D4 ; =sub_020521AC + mov r2, #0x2 + bl sub_02052300 + ldr r0, [r4, #0x78] + bl sub_02052E1C + pop {r4, pc} + nop +_020526D4: .word sub_020521AC + 1 + + thumb_func_start sub_020526D8 +sub_020526D8: ; 0x020526D8 + ldr r1, [r3, #0x78] + ldr r0, [r1, #0x44] + cmp r0, #0x0 + bne _020526EA + ldrb r0, [r2, #0x0] + str r0, [r1, #0x30] + ldrb r1, [r2, #0x0] + ldr r0, _020526EC ; =0x021C5A70 + str r1, [r0, #0x8] +_020526EA: + bx lr + .balign 4 +_020526EC: .word 0x021C5A70 + + thumb_func_start sub_020526F0 +sub_020526F0: ; 0x020526F0 + push {r3, lr} + ldr r0, [r3, #0x78] + mov r1, #0x1 + str r1, [r0, #0x2c] + ldrb r1, [r2, #0x0] + ldr r0, [r3, #0x78] + str r1, [r0, #0x40] + ldrb r0, [r2, #0x0] + cmp r0, #0x4 + bne _02052708 + bl sub_02032888 +_02052708: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205270C +sub_0205270C: ; 0x0205270C + ldr r0, [r3, #0x78] + mov r1, #0x1 + str r1, [r0, #0x44] + bx lr + + thumb_func_start sub_02052714 +sub_02052714: ; 0x02052714 + ldr r0, [r0, #0x44] + bx lr + + thumb_func_start sub_02052718 +sub_02052718: ; 0x02052718 + push {r4, lr} + ldr r0, [r0, #0x30] + add r4, r1, #0x0 + cmp r0, #0x0 + bne _02052730 + mov r1, #0x0 + mov r0, #0x68 + add r2, r1, #0x0 + bl sub_02030ADC + add r0, r4, #0x0 + pop {r4, pc} +_02052730: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02052734 +sub_02052734: ; 0x02052734 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r3, #0x0 + bl sub_02031190 + mov r1, #0x1 + eor r0, r1 + bl sub_0202DFA4 + add r7, r0, #0x0 + ldr r0, _02052784 ; =0x0000066A + mov r1, #0x1 + strh r1, [r6, r0] + bl sub_02031190 + cmp r5, r0 + beq _02052780 + add r0, r7, #0x0 + bl sub_0202398C + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_020239CC + add r1, r0, #0x0 + lsl r1, r1, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + mov r2, #0x1f + bl sub_0202942C + add r4, #0x98 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + mov r2, #0x4 + bl sub_02028AD4 +_02052780: + pop {r3-r7, pc} + nop +_02052784: .word 0x0000066A + + thumb_func_start sub_02052788 +sub_02052788: ; 0x02052788 + ldr r1, [r1, #0x78] + lsl r0, r0, #0x2 + add r1, r1, r0 + mov r0, #0x62 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start sub_02052798 +sub_02052798: ; 0x02052798 + ldr r1, [r3, #0x78] + ldrb r2, [r2, #0x0] + add r1, r1, r0 + ldr r0, _020527A4 ; =0x00000176 + strb r2, [r1, r0] + bx lr + .balign 4 +_020527A4: .word 0x00000176 + + thumb_func_start sub_020527A8 +sub_020527A8: ; 0x020527A8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02031190 + ldr r2, _020527D4 ; =0x00000176 + add r1, r4, r0 + ldrb r1, [r1, r2] + cmp r1, #0x2 + bne _020527BE + mov r0, #0x1 + pop {r4, pc} +_020527BE: + mov r1, #0x1 + eor r0, r1 + add r0, r4, r0 + ldrb r0, [r0, r2] + cmp r0, #0x2 + bne _020527CE + mov r0, #0x2 + pop {r4, pc} +_020527CE: + mov r0, #0x0 + pop {r4, pc} + nop +_020527D4: .word 0x00000176 + + thumb_func_start sub_020527D8 +sub_020527D8: ; 0x020527D8 + push {r3, lr} + add r1, sp, #0x0 + strb r0, [r1, #0x0] + mov r0, #0x65 + add r1, sp, #0x0 + mov r2, #0x1 + bl sub_02030ADC + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020527EC +sub_020527EC: ; 0x020527EC + ldr r3, _02052810 ; =0x020F58D4 + mov r2, #0x0 +_020527F0: + ldrh r1, [r3, #0x0] + cmp r1, r0 + bgt _02052800 + add r1, r1, #0x4 + cmp r1, r0 + ble _02052800 + add r0, r2, #0x0 + bx lr +_02052800: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0xa + blt _020527F0 + mov r0, #0x0 + mvn r0, r0 + bx lr + nop +_02052810: .word 0x020F58D4 + + thumb_func_start sub_02052814 +sub_02052814: ; 0x02052814 + push {r4-r6, lr} + add r4, r1, #0x0 + add r6, r0, #0x0 + cmp r4, #0x9 + ble _02052834 + add r0, r4, #0x0 + bl sub_020527EC + add r5, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _02052836 + bl sub_02020C2C + b _02052836 +_02052834: + add r5, r4, #0x0 +_02052836: + add r0, r5, #0x0 + bl sub_0202EF84 + lsl r1, r5, #0x2 + add r2, r6, r1 + mov r1, #0x11 + lsl r1, r1, #0x4 + ldr r5, [r2, r1] + add r5, #0x50 + add r5, #0x30 + cmp r0, #0x0 + bne _02052852 + mov r0, #0x28 + pop {r4-r6, pc} +_02052852: + cmp r4, #0x9 + ble _0205286C + sub r4, #0xa + lsr r2, r4, #0x1f + lsl r1, r4, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + add r0, r5, r0 + ldrb r0, [r0, #0x18] + asr r4, r0, #0x7 + b _02052872 +_0205286C: + bl sub_020239CC + add r4, r0, #0x0 +_02052872: + ldrb r0, [r5, #0x1c] + cmp r0, #0xb + bhi _0205294C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0x3 + lsl r2, r6, #0x1 + lsl r6, r1, #0x2 + lsl r2, r5, #0x2 + lsl r6, r2, #0 + lsl r6, r3, #0 + lsl r2, r7, #0 + lsl r6, r2, #0x1 + lsl r2, r6, #0x1 + lsl r6, r1, #0x2 + lsl r2, r5, #0x2 + lsl r6, r2, #0 + ldr r0, _02052950 ; =0x020F5894 + lsl r1, r4, #0x2 + ldr r0, [r0, r1] + pop {r4-r6, pc} +_020528A4: + .byte 0xC9, 0xF7, 0xA2, 0xF8, 0xC2, 0x0F, 0xC1, 0x07, 0x89, 0x1A, 0x1F, 0x20 + .byte 0xC1, 0x41, 0x50, 0x18, 0xC2, 0x00, 0x27, 0x48, 0xA1, 0x00, 0x80, 0x18, 0x08, 0x58, 0x70, 0xBD + .byte 0xC9, 0xF7, 0x94, 0xF8, 0xC2, 0x0F, 0x81, 0x07, 0x89, 0x1A, 0x1E, 0x20, 0xC1, 0x41, 0x50, 0x18 + .byte 0xC2, 0x00, 0x21, 0x48, 0xA1, 0x00, 0x80, 0x18, 0x08, 0x58, 0x70, 0xBD, 0xC9, 0xF7, 0x86, 0xF8 + .byte 0xC2, 0x0F, 0xC1, 0x07, 0x89, 0x1A, 0x1F, 0x20, 0xC1, 0x41, 0x50, 0x18, 0xC2, 0x00, 0x1B, 0x48 + .byte 0xA1, 0x00, 0x80, 0x18, 0x08, 0x58, 0x70, 0xBD, 0xC9, 0xF7, 0x78, 0xF8, 0xC2, 0x0F, 0x81, 0x07 + .byte 0x89, 0x1A, 0x1E, 0x20, 0xC1, 0x41, 0x50, 0x18, 0xC2, 0x00, 0x15, 0x48, 0xA1, 0x00, 0x80, 0x18 + .byte 0x08, 0x58, 0x70, 0xBD, 0xC9, 0xF7, 0x6A, 0xF8, 0xC2, 0x0F, 0x81, 0x07, 0x89, 0x1A, 0x1E, 0x20 + .byte 0xC1, 0x41, 0x50, 0x18, 0xC2, 0x00, 0x0F, 0x48, 0xA1, 0x00, 0x80, 0x18, 0x08, 0x58, 0x70, 0xBD + .byte 0xC9, 0xF7, 0x5C, 0xF8, 0xC2, 0x0F, 0x81, 0x07, 0x89, 0x1A, 0x1E, 0x20, 0xC1, 0x41, 0x50, 0x18 + .byte 0xC2, 0x00, 0x09, 0x48, 0xA1, 0x00, 0x80, 0x18, 0x08, 0x58, 0x70, 0xBD +_0205294C: + mov r0, #0x28 + pop {r4-r6, pc} + .balign 4 +_02052950: .word 0x020F5894 +_02052954: + .byte 0xC4, 0x58, 0x0F, 0x02, 0x84, 0x59, 0x0F, 0x02, 0xB4, 0x58, 0x0F, 0x02 + .byte 0x64, 0x59, 0x0F, 0x02, 0xA4, 0x59, 0x0F, 0x02, 0xC4, 0x59, 0x0F, 0x02 + + thumb_func_start sub_0205296C +sub_0205296C: ; 0x0205296C + push {r3-r7, lr} + str r0, [sp, #0x0] + bl sub_02031190 + bl sub_0202E020 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + bl sub_02031190 + mov r1, #0x1 + eor r0, r1 + bl sub_0202E020 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + bl sub_02031190 + bl sub_0202E044 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + bl sub_02031190 + mov r1, #0x1 + eor r0, r1 + bl sub_0202E044 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r4, #0x0 + bne _020529B0 + mov r0, #0xf + pop {r3-r7, pc} +_020529B0: + beq _020529CC + ldr r0, [sp, #0x0] + mov r1, #0x3 + add r2, r4, #0x0 + bl sub_0200B4A0 + cmp r5, #0x0 + beq _020529CC + ldr r0, [sp, #0x0] + mov r1, #0x4 + add r2, r4, #0x0 + add r3, r5, #0x0 + bl sub_0200B4D8 +_020529CC: + cmp r7, r4 + beq _020529E4 + cmp r5, #0x0 + bne _020529D8 + mov r0, #0xd + pop {r3-r7, pc} +_020529D8: + cmp r6, r5 + bne _020529E0 + mov r0, #0xd + pop {r3-r7, pc} +_020529E0: + mov r0, #0xc + pop {r3-r7, pc} +_020529E4: + cmp r6, r5 + beq _020529EC + mov r0, #0xe + pop {r3-r7, pc} +_020529EC: + mov r0, #0xf + pop {r3-r7, pc} + + thumb_func_start sub_020529F0 +sub_020529F0: ; 0x020529F0 + push {r3, lr} + cmp r0, #0x0 + beq _02052A02 + lsl r2, r0, #0x3 + ldr r0, _02052A0C ; =0x020F5A14 + lsl r1, r1, #0x2 + add r0, r0, r2 + ldr r0, [r1, r0] + pop {r3, pc} +_02052A02: + add r0, r2, #0x0 + bl sub_0205296C + pop {r3, pc} + nop +_02052A0C: .word 0x020F5A14 + + thumb_func_start sub_02052A10 +sub_02052A10: ; 0x02052A10 + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r3, #0x0 + cmp r4, #0x0 + bne _02052A24 + sub r1, r1, #0x1 + bl sub_02052814 + pop {r4-r6, pc} +_02052A24: + sub r0, r1, #0x1 + bl sub_0202EF84 + bl sub_020239CC + add r1, r0, #0x0 + cmp r4, #0x18 + bhi _02052AFA + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r7, #0x2 + lsl r0, r6, #0 + lsl r4, r7, #0 + lsl r0, r5, #0x1 + lsl r0, r5, #0x1 + lsl r0, r5, #0x1 + lsl r0, r5, #0x1 + lsl r0, r5, #0x1 + lsl r0, r5, #0x1 + lsl r4, r0, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r6, r6, #0x1 + lsl r4, r0, #0x2 + lsl r4, r0, #0x2 + lsl r4, r0, #0x2 + lsl r2, r2, #0x2 + lsl r2, r2, #0x2 + lsl r2, r2, #0x2 + lsl r2, r3, #0x1 + lsl r2, r3, #0x1 + lsl r2, r3, #0x1 + lsl r0, r4, #0x2 + lsl r0, r5, #0x2 + lsl r0, r6, #0x2 + ldr r0, [r5, #0x34] + add r2, r6, #0x0 + sub r0, r0, #0x1 + bl sub_020529F0 + pop {r4-r6, pc} +_02052A7E: + .byte 0x21, 0x48 + .byte 0x89, 0x00, 0x40, 0x58, 0x70, 0xBD, 0x68, 0x6B, 0x00, 0x28, 0x01, 0xD1, 0x00, 0x20, 0x70, 0xBD + .byte 0xC2, 0x00, 0x1D, 0x48, 0x89, 0x00, 0x80, 0x18, 0x08, 0x58, 0x70, 0xBD, 0x13, 0x3C, 0x1B, 0x48 + .byte 0xE2, 0x00, 0x89, 0x00, 0x80, 0x18, 0x08, 0x58, 0x70, 0xBD, 0xE0, 0x1E, 0xC2, 0x00, 0x18, 0x48 + .byte 0x89, 0x00, 0x80, 0x18, 0x08, 0x58, 0x70, 0xBD, 0x0A, 0x3C, 0x16, 0x48, 0xE2, 0x00, 0x89, 0x00 + .byte 0x80, 0x18, 0x08, 0x58, 0x70, 0xBD, 0x0D, 0x3C, 0x13, 0x48, 0xE2, 0x00, 0x89, 0x00, 0x80, 0x18 + .byte 0x08, 0x58, 0x70, 0xBD, 0x10, 0x3C, 0x11, 0x48, 0xE2, 0x00, 0x89, 0x00, 0x80, 0x18, 0x08, 0x58 + .byte 0x70, 0xBD, 0x0F, 0x48, 0x89, 0x00, 0x40, 0x58, 0x70, 0xBD, 0x0E, 0x48, 0x89, 0x00, 0x40, 0x58 + .byte 0x70, 0xBD, 0x0D, 0x48, 0x89, 0x00, 0x40, 0x58, 0x70, 0xBD +_02052AFA: + bl sub_02020C2C + mov r0, #0x28 + pop {r4-r6, pc} + nop +_02052B04: + .byte 0xAC, 0x58, 0x0F, 0x02, 0xDC, 0x59, 0x0F, 0x02, 0xE8, 0x58, 0x0F, 0x02 + .byte 0x44, 0x5A, 0x0F, 0x02, 0x00, 0x59, 0x0F, 0x02, 0x18, 0x59, 0x0F, 0x02, 0x30, 0x59, 0x0F, 0x02 + .byte 0x8C, 0x58, 0x0F, 0x02, 0xA4, 0x58, 0x0F, 0x02, 0x9C, 0x58, 0x0F, 0x02 + + thumb_func_start sub_02052B2C +sub_02052B2C: ; 0x02052B2C + push {r3-r7, lr} + add r5, r0, #0x0 + mov r6, #0x1 +_02052B32: + add r0, r6, #0x0 + sub r4, r6, #0x1 + bl sub_0202DFA4 + add r7, r0, #0x0 + beq _02052B60 + bl sub_020239BC + lsl r1, r4, #0x2 + str r0, [r5, r1] + add r0, r7, #0x0 + bl sub_02023A28 + str r0, [sp, #0x0] + add r0, r7, #0x0 + bl sub_020239CC + lsl r1, r0, #0x7 + ldr r0, [sp, #0x0] + orr r1, r0 + add r0, r5, r4 + strb r1, [r0, #0x18] + b _02052B6A +_02052B60: + lsl r1, r4, #0x2 + mov r0, #0x0 + str r0, [r5, r1] + add r1, r5, r4 + strb r0, [r1, #0x18] +_02052B6A: + add r6, r6, #0x1 + cmp r6, #0x5 + blt _02052B32 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02052B74 +sub_02052B74: ; 0x02052B74 + push {r4, lr} + sub sp, #0x20 + add r4, r0, #0x0 + add r0, sp, #0x0 + mov r1, #0x0 + mov r2, #0x20 + blx sub_020CE34C + cmp r4, #0xb + bhi _02052BFA + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r4, #0x1 + lsl r4, r6, #0 + lsl r0, r1, #0x1 + lsl r4, r3, #0x1 + lsl r4, r4, #0x1 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r2, r5, #0 + lsl r6, r7, #0 + lsl r2, r2, #0x1 + lsl r6, r2, #0 + add r0, sp, #0x0 + mov r1, #0x2 + bl sub_02052B2C + b _02052BFA +_02052BB6: + .byte 0x00, 0xA8, 0x02, 0x21, 0xFF, 0xF7, 0xB7, 0xFF, 0x1C, 0xE0 + .byte 0x00, 0xA8, 0x05, 0x21, 0xFF, 0xF7, 0xB2, 0xFF, 0x17, 0xE0, 0x00, 0xA8, 0x04, 0x21, 0xFF, 0xF7 + .byte 0xAD, 0xFF, 0x12, 0xE0, 0x00, 0xA8, 0x05, 0x21, 0xFF, 0xF7, 0xA8, 0xFF, 0x0D, 0xE0, 0x00, 0xA8 + .byte 0x04, 0x21, 0xFF, 0xF7, 0xA3, 0xFF, 0x08, 0xE0, 0x00, 0xA8, 0x04, 0x21, 0xFF, 0xF7, 0x9E, 0xFF + .byte 0x03, 0xE0, 0x00, 0xA8, 0x04, 0x21, 0xFF, 0xF7, 0x99, 0xFF +_02052BFA: + add r0, sp, #0x0 + strb r4, [r0, #0x1c] + add r0, sp, #0x0 + bl sub_0202F094 + bl sub_0202F0B8 + add sp, #0x20 + pop {r4, pc} + + thumb_func_start sub_02052C0C +sub_02052C0C: ; 0x02052C0C + push {r4-r6, lr} + add r5, r0, #0x0 + mov r3, #0x0 + mov r0, #0x11 + add r6, r1, #0x0 + add r2, r3, #0x0 + add r4, r5, #0x0 + lsl r0, r0, #0x4 +_02052C1C: + ldr r1, [r4, r0] + cmp r1, #0x0 + beq _02052C24 + add r3, r3, #0x1 +_02052C24: + add r2, r2, #0x1 + add r4, r4, #0x4 + cmp r2, #0xa + blt _02052C1C + cmp r3, #0x0 + beq _02052C34 + mov r0, #0xa4 + pop {r4-r6, pc} +_02052C34: + mov r0, #0x5e + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_0201385C + cmp r0, #0x0 + bne _02052C46 + mov r0, #0xa5 + pop {r4-r6, pc} +_02052C46: + mov r0, #0x5e + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02013920 + cmp r0, #0x4 + beq _02052C78 + ldr r0, [r5, #0x8] + bl sub_02023A28 + add r4, r0, #0x0 + ldr r0, [r5, #0x8] + bl sub_020239CC + add r1, r4, #0x0 + mov r2, #0x2 + bl sub_020536D0 + add r2, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_0200B064 + mov r0, #0xa6 + pop {r4-r6, pc} +_02052C78: + mov r0, #0x5e + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02013924 + add r4, r0, #0x0 + cmp r4, #0x14 + blt _02052C8A + mov r4, #0x0 +_02052C8A: + mov r0, #0x5e + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x0 + bl sub_02013918 + add r2, r0, #0x0 + ldr r0, _02052CB0 ; =0x0000FFFF + cmp r2, r0 + beq _02052CA6 + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_0200B518 +_02052CA6: + ldr r0, _02052CB4 ; =0x020F5A74 + lsl r1, r4, #0x2 + ldr r0, [r0, r1] + pop {r4-r6, pc} + nop +_02052CB0: .word 0x0000FFFF +_02052CB4: .word 0x020F5A74 + + thumb_func_start sub_02052CB8 +sub_02052CB8: ; 0x02052CB8 + push {r3-r4} + mov r3, #0x0 + strb r3, [r0, #0x1c] + add r4, r0, #0x0 + add r2, r3, #0x0 +_02052CC2: + stmia r4!, {r2} + add r1, r0, r3 + strb r2, [r1, #0x18] + strb r2, [r1, #0x10] + add r3, r3, #0x1 + strb r2, [r1, #0x14] + cmp r3, #0x4 + blt _02052CC2 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_02052CD8 +sub_02052CD8: ; 0x02052CD8 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x5e + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02013960 + mov r0, #0x6 + mov r1, #0x1 + lsl r0, r0, #0x6 + str r1, [r4, r0] + pop {r4, pc} + + thumb_func_start sub_02052CF0 +sub_02052CF0: ; 0x02052CF0 + mov r1, #0x6 + lsl r1, r1, #0x6 + ldr r2, [r0, r1] + cmp r2, #0x0 + bne _02052CFE + mov r0, #0x0 + bx lr +_02052CFE: + mov r2, #0x0 + str r2, [r0, r1] + sub r1, #0x8 + add r0, r0, r1 + bx lr + + thumb_func_start sub_02052D08 +sub_02052D08: ; 0x02052D08 + push {r4-r7, lr} + sub sp, #0xc + add r6, r2, #0x0 + mov r2, #0x9 + add r5, r0, #0x0 + add r4, r1, #0x0 + str r3, [sp, #0x8] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x6 + mov r3, #0x4 + bl sub_0200A86C + add r7, r0, #0x0 + cmp r4, #0x0 + bne _02052D30 + sub r0, r6, #0x1 + bl sub_0202EF84 + b _02052D3C +_02052D30: + bl sub_02031190 + mov r1, #0x1 + eor r0, r1 + bl sub_0202DFA4 +_02052D3C: + add r4, r0, #0x0 + cmp r4, #0x0 + beq _02052DE0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 + bl sub_0200ABC0 + ldr r2, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200ABC0 + add r0, r4, #0x0 + bl sub_02023A70 + add r4, r0, #0x0 + cmp r4, #0x1 + blt _02052D80 + cmp r4, #0x7 + bgt _02052D80 + sub r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x7 + bhs _02052D80 + lsl r1, r0, #0x2 + ldr r0, _02052DE4 ; =0x020F5948 + ldr r1, [r0, r1] + cmp r1, #0x0 + blt _02052D80 + ldr r0, [sp, #0x20] + bl sub_02013C18 +_02052D80: + cmp r4, #0x7 + bhi _02052DB8 + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r4, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + lsl r6, r2, #0 + lsl r2, r3, #0 + lsl r6, r3, #0 + lsl r6, r4, #0 + lsl r2, r4, #0 + mov r1, #0xd1 + b _02052DBA +_02052DA4: + .byte 0xD2, 0x21, 0x08, 0xE0, 0xD3, 0x21, 0x06, 0xE0, 0xD4, 0x21, 0x04, 0xE0 + .byte 0xD5, 0x21, 0x02, 0xE0, 0xD6, 0x21, 0x00, 0xE0 +_02052DB8: + mov r1, #0xd7 +_02052DBA: + add r0, r7, #0x0 + bl sub_0200A914 + add r6, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0x2 + add r2, r6, #0x0 + mov r3, #0x0 + str r4, [sp, #0x4] + bl sub_0200ABB4 + add r0, r6, #0x0 + bl sub_02016A18 + add r0, r7, #0x0 + bl sub_0200A8B8 +_02052DE0: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02052DE4: .word 0x020F5948 + + thumb_func_start sub_02052DE8 +sub_02052DE8: ; 0x02052DE8 + push {r4, lr} + sub sp, #0x20 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl sub_02052CB8 + mov r1, #0x0 + add r0, sp, #0x0 + strb r1, [r0, #0x1c] + add r0, r4, #0x0 + bl sub_0202F078 + add r0, sp, #0x0 + bl sub_0202F094 + bl sub_0202F0B8 + add sp, #0x20 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02052E10 +sub_02052E10: ; 0x02052E10 + mov r1, #0x0 + str r1, [r0, #0x30] + str r1, [r0, #0x40] + str r1, [r0, #0x44] + bx lr + .balign 4 + + thumb_func_start sub_02052E1C +sub_02052E1C: ; 0x02052E1C + mov r2, #0x0 + str r2, [r0, #0x20] + str r2, [r0, #0x24] + str r2, [r0, #0x2c] + str r2, [r0, #0x30] + mov r1, #0x5d + str r2, [r0, #0x40] + lsl r1, r1, #0x2 + strh r2, [r0, r1] + add r1, #0xc + str r2, [r0, r1] + str r2, [r0, #0x44] + bx lr + .balign 4 + + thumb_func_start sub_02052E38 +sub_02052E38: ; 0x02052E38 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + mov r0, #0x0 + bl sub_02065054 + mov r1, #0x61 + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0x0 + bl sub_02065054 + mov r1, #0x62 + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0x0 + bl sub_02065054 + mov r1, #0x63 + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, #0x8] + bl sub_020239CC + add r5, r0, #0x0 + ldr r0, [r4, #0x8] + bl sub_02023A28 + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_020536D0 + add r3, r0, #0x0 + ldr r0, [r4, #0x0] + lsl r3, r3, #0x18 + str r0, [sp, #0x0] + mov r0, #0x61 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + lsr r3, r3, #0x18 + str r0, [sp, #0x4] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + bl sub_02064E90 + bl sub_02031190 + mov r1, #0x1 + eor r0, r1 + lsl r0, r0, #0x2 + add r1, r4, r0 + mov r0, #0x62 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + add sp, #0x8 + pop {r3-r5, pc} + + thumb_func_start sub_02052EAC +sub_02052EAC: ; 0x02052EAC + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x62 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + mov r0, #0x63 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + mov r0, #0x61 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02052ED0 +sub_02052ED0: ; 0x02052ED0 + mov r1, #0x61 + add r2, r0, #0x0 + lsl r1, r1, #0x2 + ldr r1, [r2, r1] + ldr r3, _02052EE0 ; =sub_02030A78 + mov r0, #0x69 + ldr r2, _02052EE4 ; =0x0000066C + bx r3 + .balign 4 +_02052EE0: .word sub_02030A78 + 1 +_02052EE4: .word 0x0000066C + + thumb_func_start sub_02052EE8 +sub_02052EE8: ; 0x02052EE8 + push {r3-r5, lr} + ldr r1, _02052F58 ; =0x000004E8 + add r5, r0, #0x0 + mov r0, #0x1f + bl sub_02016998 + add r4, r0, #0x0 + ldr r2, _02052F58 ; =0x000004E8 + mov r0, #0x0 + add r1, r4, #0x0 + blx sub_020CE240 + mov r0, #0x4e + str r5, [r4, #0x0] + mov r1, #0x1 + lsl r0, r0, #0x4 + str r1, [r4, r0] + ldr r0, _02052F5C ; =sub_02052FC8 + add r1, r4, #0x0 + mov r2, #0xb + bl sub_0200CA44 + str r0, [r4, #0x4] + add r0, r5, #0x0 + bl sub_020524BC + ldr r1, _02052F60 ; =0x000004D4 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0x9 + ldr r0, [r0, #0xc] + bl sub_02022610 + ldr r1, _02052F64 ; =0x000004D8 + ldr r2, _02052F68 ; =0x00002710 + str r0, [r4, r1] + sub r0, r1, #0x4 + ldr r0, [r4, r0] + mov r1, #0x59 + ldr r0, [r0, #0x38] + str r0, [r4, #0x8] + mov r0, #0xb + bl sub_02016828 + mov r0, #0x59 + bl sub_02053618 + ldr r1, _02052F6C ; =0x000004DC + str r0, [r4, r1] + add r0, r4, #0x0 + bl sub_02052F8C + ldr r0, _02052F70 ; =0x021C5ABC + str r4, [r0, #0x0] + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02052F58: .word 0x000004E8 +_02052F5C: .word sub_02052FC8 + 1 +_02052F60: .word 0x000004D4 +_02052F64: .word 0x000004D8 +_02052F68: .word 0x00002710 +_02052F6C: .word 0x000004DC +_02052F70: .word 0x021C5ABC + + thumb_func_start sub_02052F74 +sub_02052F74: ; 0x02052F74 + mov r3, #0x0 + mov r1, #0x3 +_02052F78: + ldrb r2, [r0, #0xd] + cmp r2, #0x0 + beq _02052F80 + strb r1, [r0, #0xc] +_02052F80: + add r3, r3, #0x1 + add r0, #0x18 + cmp r3, #0x33 + blt _02052F78 + bx lr + .balign 4 + + thumb_func_start sub_02052F8C +sub_02052F8C: ; 0x02052F8C + mov r2, #0x0 + add r1, r2, #0x0 +_02052F90: + strb r1, [r0, #0xc] + strb r1, [r0, #0xd] + strb r1, [r0, #0xe] + strb r1, [r0, #0xf] + add r2, r2, #0x1 + add r0, #0x18 + cmp r2, #0x33 + blt _02052F90 + bx lr + .balign 4 + + thumb_func_start sub_02052FA4 +sub_02052FA4: ; 0x02052FA4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + bl sub_0200CAB4 + ldr r0, _02052FC4 ; =0x000004DC + ldr r0, [r4, r0] + bl sub_0205362C + mov r0, #0x59 + bl sub_020168D0 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 +_02052FC4: .word 0x000004DC + + thumb_func_start sub_02052FC8 +sub_02052FC8: ; 0x02052FC8 + push {r3-r5, lr} + ldr r0, _02052FFC ; =0x000004D4 + add r5, r1, #0x0 + ldr r0, [r5, r0] + ldr r4, [r5, #0x0] + bl sub_0204646C + cmp r0, #0x0 + bne _02052FF8 + ldr r3, _02052FFC ; =0x000004D4 + add r0, r5, #0x0 + ldr r2, [r5, r3] + add r3, r3, #0x4 + ldr r2, [r2, #0x34] + ldr r3, [r5, r3] + add r1, r4, #0x0 + bl sub_0205312C + ldr r1, _02052FFC ; =0x000004D4 + add r0, r5, #0x0 + ldr r1, [r5, r1] + ldr r1, [r1, #0x34] + bl sub_020531E4 +_02052FF8: + pop {r3-r5, pc} + nop +_02052FFC: .word 0x000004D4 + + thumb_func_start sub_02053000 +sub_02053000: ; 0x02053000 + push {r4-r7, lr} + sub sp, #0x14 + mov r5, #0x0 + str r0, [sp, #0x0] + str r3, [sp, #0x4] + cmp r2, #0x0 + bne _02053034 + ldr r0, _02053100 ; =0x020F58D4 + lsl r1, r1, #0x1 + ldrh r4, [r0, r1] + ldr r0, [sp, #0x0] + mov r6, #0x3 + add r0, #0xc + str r0, [sp, #0x0] +_0205301C: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02053104 + add r5, r5, #0x1 + add r4, r4, #0x1 + cmp r5, #0x4 + blt _0205301C + add sp, #0x14 + mov r0, #0x0 + pop {r4-r7, pc} +_02053034: + add r0, r2, #0x0 + str r0, [sp, #0xc] + add r0, #0x50 + str r0, [sp, #0xc] + add r0, #0x30 + str r0, [sp, #0xc] + ldr r0, [r2, #0x50] + mov r2, #0x18 + add r3, r1, #0x0 + mul r3, r2 + ldr r2, [sp, #0x0] + add r2, r2, r3 + ldr r2, [r2, #0x18] + cmp r0, r2 + beq _02053078 + ldr r0, _02053100 ; =0x020F58D4 + lsl r1, r1, #0x1 + ldrh r4, [r0, r1] + ldr r0, [sp, #0x0] + mov r6, #0x3 + add r0, #0xc + str r0, [sp, #0x0] +_02053060: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02053104 + add r5, r5, #0x1 + add r4, r4, #0x1 + cmp r5, #0x4 + blt _02053060 + add sp, #0x14 + mov r0, #0x0 + pop {r4-r7, pc} +_02053078: + ldr r0, _02053100 ; =0x020F58D4 + lsl r1, r1, #0x1 + ldrh r7, [r0, r1] + ldr r0, [sp, #0xc] + add r6, r5, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x0] + str r0, [sp, #0x10] + add r0, #0xc + str r0, [sp, #0x10] +_0205308C: + mov r0, #0x18 + add r1, r7, #0x0 + mul r1, r0 + ldr r0, [sp, #0x0] + add r4, r0, r1 + ldrb r0, [r4, #0xd] + cmp r0, #0x0 + beq _020530A6 + cmp r0, #0x2 + beq _020530CC + cmp r0, #0x4 + beq _020530E6 + b _020530EA +_020530A6: + ldr r0, [sp, #0xc] + add r1, r0, r6 + ldrb r0, [r1, #0x18] + cmp r0, #0x0 + beq _020530EA + mov r0, #0x2 + strb r0, [r4, #0xc] + ldrb r1, [r1, #0x18] + mov r0, #0x7f + and r0, r1 + strb r0, [r4, #0x14] + ldr r1, [sp, #0x8] + ldr r0, [sp, #0x4] + ldr r1, [r1, #0x0] + bl sub_02025614 + strb r0, [r4, #0xe] + mov r5, #0x1 + b _020530EA +_020530CC: + ldr r0, [sp, #0xc] + add r0, r0, r6 + ldrb r0, [r0, #0x18] + cmp r0, #0x0 + bne _020530E2 + ldr r0, [sp, #0x10] + add r1, r7, #0x0 + mov r2, #0x3 + bl sub_02053104 + b _020530EA +_020530E2: + mov r5, #0x1 + b _020530EA +_020530E6: + mov r0, #0x0 + strb r0, [r4, #0xc] +_020530EA: + ldr r0, [sp, #0x8] + add r6, r6, #0x1 + add r0, r0, #0x4 + add r7, r7, #0x1 + str r0, [sp, #0x8] + cmp r6, #0x4 + blt _0205308C + add r0, r5, #0x0 + add sp, #0x14 + pop {r4-r7, pc} + nop +_02053100: .word 0x020F58D4 + + thumb_func_start sub_02053104 +sub_02053104: ; 0x02053104 + push {r4-r6, lr} + ldr r6, _02053124 ; =0x021C5ABC + mov r4, #0x18 + ldr r3, [r6, #0x0] + ldr r5, _02053128 ; =0x000004D4 + mul r4, r1 + ldr r3, [r3, r5] + strb r2, [r0, r4] + ldr r0, [r6, #0x0] + ldr r0, [r0, r5] + cmp r3, r0 + beq _02053120 + bl sub_02020C2C +_02053120: + pop {r4-r6, pc} + nop +_02053124: .word 0x021C5ABC +_02053128: .word 0x000004D4 + + thumb_func_start sub_0205312C +sub_0205312C: ; 0x0205312C + push {r4-r7, lr} + sub sp, #0x14 + str r0, [sp, #0x0] + add r5, r0, #0x0 + str r0, [sp, #0x10] + add r0, #0xc + str r1, [sp, #0x4] + str r3, [sp, #0x8] + mov r4, #0x0 + str r0, [sp, #0x10] +_02053140: + ldr r0, [sp, #0x4] + add r1, r4, #0x0 + bl sub_020524C0 + add r6, r0, #0x0 + add r7, r6, #0x0 + add r7, #0x50 + add r0, r7, #0x0 + str r0, [sp, #0xc] + add r0, #0x10 + str r0, [sp, #0xc] + ldrb r0, [r5, #0xd] + cmp r0, #0x0 + beq _02053166 + cmp r0, #0x2 + beq _020531A2 + cmp r0, #0x4 + beq _020531D4 + b _020531D8 +_02053166: + cmp r6, #0x0 + beq _020531D8 + ldr r0, [sp, #0xc] + bl sub_02023A28 + strb r0, [r5, #0x14] + ldr r0, [sp, #0xc] + bl sub_020239BC + add r1, r0, #0x0 + ldr r0, [sp, #0x8] + bl sub_02025614 + strb r0, [r5, #0xe] + ldr r0, [r7, #0x0] + ldr r3, [sp, #0x8] + str r0, [r5, #0x18] + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02053000 + cmp r0, #0x0 + beq _0205319C + mov r0, #0x2 + strb r0, [r5, #0xc] + b _020531D8 +_0205319C: + mov r0, #0x1 + strb r0, [r5, #0xc] + b _020531D8 +_020531A2: + cmp r6, #0x0 + beq _020531AE + ldr r1, [r7, #0x0] + ldr r0, [r5, #0x18] + cmp r1, r0 + beq _020531B8 +_020531AE: + ldr r0, [sp, #0x10] + add r1, r4, #0x0 + mov r2, #0x3 + bl sub_02053104 +_020531B8: + ldr r0, [sp, #0x0] + ldr r3, [sp, #0x8] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02053000 + cmp r0, #0x0 + beq _020531D8 + ldrb r0, [r5, #0x15] + cmp r0, #0x1 + bne _020531D8 + mov r0, #0x3 + strb r0, [r5, #0xc] + b _020531D8 +_020531D4: + mov r0, #0x0 + strb r0, [r5, #0xc] +_020531D8: + add r4, r4, #0x1 + add r5, #0x18 + cmp r4, #0xa + blt _02053140 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_020531E4 +sub_020531E4: ; 0x020531E4 + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x0] + ldr r0, [r0, #0x8] + str r1, [sp, #0x4] + bl sub_02055320 + str r0, [sp, #0xc] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x8] + bl sub_0205532C + ldr r4, [sp, #0x0] + str r0, [sp, #0x8] + add r6, r4, #0x0 + mov r7, #0x0 + add r6, #0xc +_02053206: + ldr r0, [sp, #0x4] + add r1, r7, #0x1 + bl sub_02058060 + add r5, r0, #0x0 + bne _02053216 + bl sub_02020C2C +_02053216: + ldrb r0, [r4, #0xd] + cmp r0, #0x4 + bhi _0205330A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r0, r5, #0 + lsl r0, r1, #0x2 + lsl r0, r6, #0x2 + lsl r4, r3, #0x3 + add r0, r5, #0x0 + bl sub_0205AD98 + cmp r0, #0x1 + bne _0205330A + ldrb r0, [r4, #0xc] + sub r0, r0, #0x1 + cmp r0, #0x1 + bhi _0205330A + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x8] + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0205339C + b _0205330A +_02053252: + .byte 0x28, 0x1C, 0x07, 0xF0, 0xA0, 0xFD, 0x01, 0x28, 0x56, 0xD1, 0x20, 0x7B, 0x03, 0x28 + .byte 0x07, 0xD1, 0x00, 0x20, 0x60, 0x73, 0x20, 0x73, 0x30, 0x1C, 0x01, 0x21, 0x00, 0xF0, 0x66, 0xF8 + .byte 0x4B, 0xE0, 0x28, 0x1C, 0x07, 0xF0, 0xEC, 0xFD, 0x28, 0x1C, 0x00, 0x21, 0x05, 0xF0, 0x36, 0xFB + .byte 0x20, 0x7B, 0x01, 0x28, 0x10, 0xD1, 0x60, 0x7D, 0x00, 0x28, 0x0D, 0xD1, 0x28, 0x1C, 0x03, 0x21 + .byte 0x05, 0xF0, 0xFE, 0xFD, 0x28, 0x1C, 0x01, 0x21, 0x05, 0xF0, 0x4C, 0xF9, 0x28, 0x1C, 0x01, 0x21 + .byte 0x05, 0xF0, 0x4C, 0xF9, 0x01, 0x20, 0x60, 0x75, 0x02, 0x20, 0x60, 0x73, 0x00, 0x20, 0x20, 0x73 + .byte 0x2B, 0xE0, 0x28, 0x1C, 0x07, 0xF0, 0x70, 0xFD, 0x01, 0x28, 0x26, 0xD1, 0x30, 0x1C, 0x29, 0x1C + .byte 0x00, 0xF0, 0xDA, 0xF8, 0x20, 0x7B, 0x03, 0x28, 0x03, 0xD1, 0x30, 0x1C, 0x29, 0x1C, 0x00, 0xF0 + .byte 0xB9, 0xF8, 0x30, 0x1C, 0x00, 0xF0, 0x50, 0xF8, 0x17, 0xE0, 0x28, 0x1C, 0x07, 0xF0, 0x5C, 0xFD + .byte 0x01, 0x28, 0x12, 0xD1, 0x28, 0x1C, 0x07, 0xF0, 0xB3, 0xFD, 0x04, 0x20, 0x60, 0x73, 0x00, 0x20 + .byte 0x20, 0x73, 0x60, 0x75, 0x28, 0x1C, 0x01, 0x21, 0x05, 0xF0, 0xD0, 0xFA, 0x28, 0x1C, 0x00, 0x21 + .byte 0x05, 0xF0, 0xDA, 0xFA, 0x01, 0xE0, 0x00, 0x20, 0x60, 0x73 +_0205330A: + add r7, r7, #0x1 + add r4, #0x18 + add r6, #0x18 + cmp r7, #0x32 + bge _02053316 + b _02053206 +_02053316: + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x8] + bl sub_020553A0 + add r1, r0, #0x0 + ldr r2, _02053338 ; =0x000004BC + ldr r0, [sp, #0x0] + add r0, r0, r2 + bl sub_02053478 + ldr r1, _02053338 ; =0x000004BC + ldr r0, [sp, #0x0] + add r0, r0, r1 + bl sub_02053378 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02053338: .word 0x000004BC + + thumb_func_start sub_0205333C +sub_0205333C: ; 0x0205333C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x10] + add r4, r1, #0x0 + cmp r0, #0x0 + beq _0205335A + bl sub_020646A0 + cmp r0, #0x0 + beq _02053356 + ldr r0, [r5, #0x10] + bl sub_02064520 +_02053356: + mov r0, #0x0 + str r0, [r5, #0x10] +_0205335A: + cmp r4, #0x0 + beq _02053376 + ldr r0, [r5, #0x14] + cmp r0, #0x0 + beq _02053376 + bl sub_020646A0 + cmp r0, #0x0 + beq _02053372 + ldr r0, [r5, #0x14] + bl sub_02064520 +_02053372: + mov r0, #0x0 + str r0, [r5, #0x14] +_02053376: + pop {r3-r5, pc} + + thumb_func_start sub_02053378 +sub_02053378: ; 0x02053378 + push {r4, lr} + add r4, r0, #0x0 + ldrb r1, [r4, #0x4] + cmp r1, #0x0 + beq _02053398 + ldrh r1, [r4, #0x6] + sub r1, r1, #0x1 + strh r1, [r4, #0x6] + ldrh r1, [r4, #0x6] + cmp r1, #0x0 + bne _02053398 + mov r1, #0x0 + bl sub_0205333C + mov r0, #0x0 + strb r0, [r4, #0x4] +_02053398: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205339C +sub_0205339C: ; 0x0205339C + push {r3-r7, lr} + sub sp, #0x10 + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + str r2, [sp, #0x4] + str r3, [sp, #0x8] + bl sub_02058AFC + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B04 + str r0, [sp, #0xc] + add r0, r4, #0x0 + bl sub_02058B0C + add r6, r0, #0x0 + ldr r0, [sp, #0x4] + cmp r7, r0 + bne _020533CC + ldr r0, [sp, #0x8] + cmp r6, r0 + beq _0205343C +_020533CC: + ldr r0, _02053440 ; =0x0000064F + bl sub_020054C8 + ldrb r1, [r5, #0x8] + add r0, r4, #0x0 + bl sub_02057634 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205333C + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r2, [sp, #0xc] + add r0, r4, #0x0 + add r1, r7, #0x0 + add r3, r6, #0x0 + bl sub_02058E28 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020584A4 + add r0, r4, #0x0 + mov r1, #0x44 + bl sub_0205ADDC + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0205889C + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020588B8 + mov r1, #0x1 + strb r1, [r5, #0x1] + ldrb r0, [r5, #0x2] + cmp r0, #0x0 + beq _0205343C + cmp r0, #0x1 + bne _0205342A + add r0, r4, #0x0 + bl sub_02249668 + str r0, [r5, #0x14] + b _02053438 +_0205342A: + cmp r0, #0x2 + blo _02053438 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02249668 + str r0, [r5, #0x14] +_02053438: + mov r0, #0x0 + strb r0, [r5, #0x2] +_0205343C: + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02053440: .word 0x0000064F + + thumb_func_start sub_02053444 +sub_02053444: ; 0x02053444 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x43 + bl sub_0205ADDC + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020588EC + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058E90 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0205333C + mov r0, #0x0 + strb r0, [r4, #0x4] + strh r0, [r4, #0x6] + mov r0, #0x3 + strb r0, [r4, #0x1] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02053478 +sub_02053478: ; 0x02053478 + push {r4, lr} + add r4, r0, #0x0 + ldrb r0, [r4, #0x3] + cmp r0, #0x1 + bne _0205349C + ldrb r0, [r4, #0x4] + cmp r0, #0x0 + bne _0205349C + add r0, r1, #0x0 + bl sub_021EDA48 + str r0, [r4, #0x10] + mov r0, #0x1e + strh r0, [r4, #0x6] + mov r0, #0x0 + strb r0, [r4, #0x3] + mov r0, #0x1 + strb r0, [r4, #0x4] +_0205349C: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020534A0 +sub_020534A0: ; 0x020534A0 + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r2, #0x0 + add r7, r0, #0x0 + cmp r5, r6 + bge _020534DA +_020534AC: + add r0, r7, #0x0 + add r1, r5, #0x0 + bl sub_02058060 + add r4, r0, #0x0 + bne _020534BC + bl sub_02020C2C +_020534BC: + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0205889C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020588B8 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020588EC + add r5, r5, #0x1 + cmp r5, r6 + blt _020534AC +_020534DA: + pop {r3-r7, pc} + + thumb_func_start sub_020534DC +sub_020534DC: ; 0x020534DC + push {r3-r7, lr} + add r5, r1, #0x0 + mov r1, #0x0 + add r7, r0, #0x0 + bl sub_02058060 + add r4, r0, #0x0 + bne _020534F0 + bl sub_02020C2C +_020534F0: + add r0, r4, #0x0 + bl sub_0205AD98 + cmp r0, #0x1 + bne _02053596 + bl sub_02031B2C + cmp r0, #0x0 + bne _0205350A + bl sub_02031AF4 + cmp r0, #0x0 + beq _0205358C +_0205350A: + mov r6, #0x0 + add r5, #0xc +_0205350E: + ldrb r0, [r5, #0x1] + cmp r0, #0x1 + bne _02053578 + add r0, r7, #0x0 + add r1, r6, #0x1 + bl sub_02058060 + add r4, r0, #0x0 + bne _02053524 + bl sub_02020C2C +_02053524: + ldrb r1, [r5, #0x8] + add r0, r4, #0x0 + bl sub_02057634 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020584A4 + add r0, r4, #0x0 + mov r1, #0x44 + bl sub_0205ADDC + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0205889C + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020588B8 + mov r0, #0x1 + strb r0, [r5, #0x1] + ldrb r0, [r5, #0x2] + cmp r0, #0x0 + beq _02053578 + cmp r0, #0x1 + bne _02053566 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02249668 + str r0, [r5, #0x14] + b _02053574 +_02053566: + cmp r0, #0x2 + blo _02053574 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02249668 + str r0, [r5, #0x14] +_02053574: + mov r0, #0x0 + strb r0, [r5, #0x2] +_02053578: + add r6, r6, #0x1 + add r5, #0x18 + cmp r6, #0xa + blt _0205350E + add r0, r7, #0x0 + mov r1, #0xb + mov r2, #0x33 + bl sub_020534A0 + pop {r3-r7, pc} +_0205358C: + add r0, r7, #0x0 + mov r1, #0x1 + mov r2, #0x33 + bl sub_020534A0 +_02053596: + pop {r3-r7, pc} + + thumb_func_start sub_02053598 +sub_02053598: ; 0x02053598 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x8 + mov r1, #0x59 + bl sub_020219F4 + str r0, [r4, #0x0] + mov r1, #0x0 + add r0, r4, #0x0 + str r1, [r4, #0x4] + add r0, #0x14 + str r1, [r4, #0x8] + bl sub_0201373C + mov r0, #0x0 + str r0, [r4, #0x10] + str r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_020535BC +sub_020535BC: ; 0x020535BC + push {r4-r6, lr} + add r6, r0, #0x0 + mov r4, #0x0 + add r5, r6, #0x0 +_020535C4: + add r0, r5, #0x0 + bl sub_02053598 + add r4, r4, #0x1 + add r5, #0x1c + cmp r4, #0x1e + blt _020535C4 + mov r0, #0xd2 + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r6, r0] + add r0, r0, #0x4 + str r1, [r6, r0] + pop {r4-r6, pc} + + thumb_func_start sub_020535E0 +sub_020535E0: ; 0x020535E0 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02016A18 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _020535F4 + bl sub_02021A20 +_020535F4: + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _020535FE + bl sub_02021A20 +_020535FE: + pop {r4, pc} + + thumb_func_start sub_02053600 +sub_02053600: ; 0x02053600 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_02053606: + add r0, r5, #0x0 + bl sub_020535E0 + add r4, r4, #0x1 + add r5, #0x1c + cmp r4, #0x1e + blt _02053606 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02053618 +sub_02053618: ; 0x02053618 + push {r4, lr} + mov r1, #0x35 + lsl r1, r1, #0x4 + bl sub_02016998 + add r4, r0, #0x0 + bl sub_020535BC + add r0, r4, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205362C +sub_0205362C: ; 0x0205362C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02053600 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_0205363C +sub_0205363C: ; 0x0205363C + push {r3-r7, lr} + add r7, r2, #0x0 + lsl r0, r0, #0x1d + ldr r2, _02053670 ; =0x020F5AC4 + lsr r0, r0, #0x19 + add r5, r2, r0 + lsl r2, r1, #0x3 + mov r1, #0xc + ldr r0, _02053674 ; =0x020F5B44 + mul r1, r2 + mov r4, #0x0 + add r6, r0, r1 +_02053654: + ldr r3, [r5, #0x0] + mov r2, #0xc + mul r2, r3 + add r2, r6, r2 + ldr r2, [r2, #0x4] + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_0200B064 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x4 + blt _02053654 + pop {r3-r7, pc} + .balign 4 +_02053670: .word 0x020F5AC4 +_02053674: .word 0x020F5B44 + + thumb_func_start sub_02053678 +sub_02053678: ; 0x02053678 + lsl r0, r0, #0x1d + lsr r3, r0, #0x19 + ldr r0, _02053694 ; =0x020F5AC4 + lsl r2, r2, #0x2 + add r0, r0, r3 + ldr r0, [r2, r0] + lsl r1, r1, #0x3 + add r1, r1, r0 + mov r0, #0xc + add r2, r1, #0x0 + mul r2, r0 + ldr r0, _02053698 ; =0x020F5B44 + ldr r0, [r0, r2] + bx lr + .balign 4 +_02053694: .word 0x020F5AC4 +_02053698: .word 0x020F5B44 + + thumb_func_start sub_0205369C +sub_0205369C: ; 0x0205369C + push {r3-r4} + lsl r4, r0, #0x3 + mov r0, #0xc + ldr r2, _020536C4 ; =0x020F5B44 + mul r0, r4 + mov r3, #0x0 + add r2, r2, r0 +_020536AA: + ldr r0, [r2, #0x0] + cmp r1, r0 + bne _020536B6 + add r0, r3, r4 + pop {r3-r4} + bx lr +_020536B6: + add r3, r3, #0x1 + add r2, #0xc + cmp r3, #0x8 + blt _020536AA + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 +_020536C4: .word 0x020F5B44 + + thumb_func_start sub_020536C8 +sub_020536C8: ; 0x020536C8 + ldr r3, _020536CC ; =sub_0205369C + bx r3 + .balign 4 +_020536CC: .word sub_0205369C + 1 + + thumb_func_start sub_020536D0 +sub_020536D0: ; 0x020536D0 + push {r4, lr} + add r4, r2, #0x0 + bl sub_0205369C + cmp r4, #0x0 + beq _020536FE + cmp r4, #0x1 + beq _020536EE + cmp r4, #0x2 + bne _020536F8 + mov r1, #0xc + mul r1, r0 + ldr r0, _02053700 ; =0x020F5B48 + ldr r0, [r0, r1] + pop {r4, pc} +_020536EE: + mov r1, #0xc + mul r1, r0 + ldr r0, _02053704 ; =0x020F5B4C + ldr r0, [r0, r1] + pop {r4, pc} +_020536F8: + bl sub_02020C2C + mov r0, #0x0 +_020536FE: + pop {r4, pc} + .balign 4 +_02053700: .word 0x020F5B48 +_02053704: .word 0x020F5B4C + + thumb_func_start sub_02053708 +sub_02053708: ; 0x02053708 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + mov r0, #0x56 + mov r1, #0x7 + add r2, sp, #0x0 + add r3, r5, #0x0 + bl sub_02006C08 + mov r1, #0x9 + add r4, r0, #0x0 + add r0, r5, #0x0 + lsl r1, r1, #0x6 + bl sub_02016998 + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + mov r2, #0x0 + ldr r3, [r0, #0xc] + mov r0, #0x1 + add r6, r5, #0x0 + lsl r0, r0, #0x8 +_02053734: + ldrh r1, [r3, #0x0] + add r2, r2, #0x1 + add r3, r3, #0x2 + strh r1, [r6, #0x0] + add r6, r6, #0x2 + cmp r2, r0 + blt _02053734 + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02053750 +sub_02053750: ; 0x02053750 + push {r3-r7, lr} + sub sp, #0x18 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _02053762 + bl sub_0201FDEC +_02053762: + mov r1, #0x6 + lsl r1, r1, #0x6 + ldr r0, [r4, r1] + cmp r0, #0x5 + bls _0205376E + b _020538B2 +_0205376E: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r6, r5, #0 + lsl r6, r3, #0x1 + lsl r0, r4, #0x3 + lsl r6, r6, #0x3 + lsl r6, r4, #0x4 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x38] + bl sub_020553A0 + bl sub_02058914 + ldr r0, [r4, #0x0] + mov r1, #0x0 + ldr r0, [r0, #0x38] + bl sub_0205537C + mov r0, #0x6 + lsl r0, r0, #0x6 + ldr r1, [r4, r0] + add sp, #0x18 + add r1, r1, #0x1 + str r1, [r4, r0] + pop {r3-r7, pc} +_020537AA: + .byte 0x24, 0x39, 0x20, 0x1C, 0x61, 0x18 + .byte 0x00, 0x22, 0x00, 0xF0, 0xC1, 0xFB, 0x5B, 0x21, 0x89, 0x00, 0x20, 0x1C, 0x61, 0x18, 0x01, 0x22 + .byte 0x00, 0xF0, 0xBA, 0xFB, 0x5F, 0x20, 0x02, 0x21, 0x80, 0x00, 0x21, 0x50, 0x01, 0x1D, 0x61, 0x58 + .byte 0x00, 0x1D, 0x49, 0x1C, 0x06, 0xB0, 0x21, 0x50, 0xF8, 0xBD, 0x00, 0x20, 0x03, 0x90, 0x08, 0x1F + .byte 0x20, 0x58, 0x00, 0x28, 0x14, 0xDD, 0x24, 0x39, 0x67, 0x18, 0x26, 0x1C, 0x04, 0xAD, 0x5A, 0x21 + .byte 0x89, 0x00, 0x71, 0x58, 0x38, 0x1C, 0x88, 0x47, 0x01, 0xC5, 0x03, 0x98, 0x10, 0x37, 0x40, 0x1C + .byte 0x03, 0x90, 0x5F, 0x20, 0x80, 0x00, 0x21, 0x58, 0x03, 0x98, 0x10, 0x36, 0x88, 0x42, 0xEE, 0xDB + .byte 0x04, 0x98, 0x02, 0x28, 0x0B, 0xD1, 0x06, 0x20, 0x00, 0x90, 0x01, 0x20, 0x01, 0x90, 0x04, 0x20 + .byte 0x02, 0x90, 0x00, 0x20, 0x01, 0x1C, 0x02, 0x1C, 0x03, 0x1C, 0xBA, 0xF7, 0xD1, 0xFC, 0x5F, 0x20 + .byte 0x80, 0x00, 0x22, 0x58, 0x00, 0x23, 0x00, 0x2A, 0x07, 0xDD, 0x04, 0xA9, 0x08, 0x68, 0x00, 0x28 + .byte 0x03, 0xD1, 0x5B, 0x1C, 0x09, 0x1D, 0x93, 0x42, 0xF8, 0xDB, 0x93, 0x42, 0x31, 0xD1, 0x06, 0x20 + .byte 0x80, 0x01, 0x21, 0x58, 0x06, 0xB0, 0x49, 0x1C, 0x21, 0x50, 0xF8, 0xBD, 0xBA, 0xF7, 0x54, 0xFD + .byte 0x00, 0x28, 0x26, 0xD0, 0x06, 0x20, 0x80, 0x01, 0x21, 0x58, 0x06, 0xB0, 0x49, 0x1C, 0x21, 0x50 + .byte 0xF8, 0xBD, 0x08, 0x1F, 0x20, 0x58, 0x00, 0x26, 0x00, 0x28, 0x0B, 0xDD, 0x24, 0x39, 0x5F, 0x27 + .byte 0x65, 0x18, 0xBF, 0x00, 0x28, 0x1C, 0x00, 0xF0, 0xF3, 0xFB, 0xE0, 0x59, 0x76, 0x1C, 0x10, 0x35 + .byte 0x86, 0x42, 0xF7, 0xDB, 0x06, 0x20, 0x80, 0x01, 0x21, 0x58, 0x06, 0xB0, 0x49, 0x1C, 0x21, 0x50 + .byte 0xF8, 0xBD, 0x08, 0x31, 0x60, 0x58, 0x01, 0x22, 0x02, 0x60, 0x28, 0x1C, 0x21, 0x1C, 0x00, 0xF0 + .byte 0x45, 0xFA +_020538B2: + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020538B8 +sub_020538B8: ; 0x020538B8 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r1, #0x0 + add r0, sp, #0xc + strh r1, [r0, #0x0] + mov r0, #0x6 + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + cmp r0, #0x5 + beq _020538D6 + ldr r0, [r4, #0x4] + bl sub_0201FDEC +_020538D6: + mov r1, #0x6 + lsl r1, r1, #0x6 + ldr r0, [r4, r1] + cmp r0, #0x5 + bls _020538E2 + b _020539EA +_020538E2: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r2, r4, #0 + lsl r6, r7, #0x1 + lsl r2, r6, #0x2 + lsl r4, r2, #0x3 + lsl r2, r5, #0x3 + ldr r0, [r4, #0x0] + mov r1, #0x0 + ldr r0, [r0, #0x38] + bl sub_0205537C + mov r0, #0x6 + lsl r0, r0, #0x6 + ldr r1, [r4, r0] + add sp, #0x10 + add r1, r1, #0x1 + str r1, [r4, r0] + pop {r3-r5, pc} +_02053912: + .byte 0x04, 0x20, 0x03, 0xA9, 0x02, 0x22, 0x00, 0x23, 0xC4, 0xF7, 0x4B, 0xFB, 0x01, 0x20 + .byte 0x00, 0x21, 0xCA, 0xF7, 0x13, 0xFF, 0x02, 0x20, 0x00, 0x21, 0xCA, 0xF7, 0x0F, 0xFF, 0x57, 0x21 + .byte 0x89, 0x00, 0x20, 0x1C, 0x61, 0x18, 0x02, 0x22, 0x00, 0xF0, 0xFE, 0xFA, 0x06, 0x20, 0x00, 0x90 + .byte 0x01, 0x21, 0x01, 0x91, 0x04, 0x20, 0x02, 0x90, 0x00, 0x20, 0x0A, 0x1C, 0x03, 0x1C, 0xBA, 0xF7 + .byte 0x3F, 0xFC, 0x27, 0x48, 0xB1, 0xF7, 0xB8, 0xFD, 0x5F, 0x20, 0x01, 0x21, 0x80, 0x00, 0x21, 0x50 + .byte 0x01, 0x1D, 0x61, 0x58, 0x00, 0x1D, 0x49, 0x1C, 0x04, 0xB0, 0x21, 0x50, 0x38, 0xBD, 0x08, 0x1C + .byte 0x18, 0x39, 0x24, 0x38, 0x61, 0x58, 0x20, 0x18, 0x88, 0x47, 0x00, 0x28, 0x35, 0xD1, 0xBA, 0xF7 + .byte 0xC3, 0xFC, 0x00, 0x28, 0x31, 0xD0, 0x1B, 0x48, 0xB1, 0xF7, 0x9E, 0xFD, 0x06, 0x20, 0x80, 0x01 + .byte 0x21, 0x58, 0x04, 0xB0, 0x49, 0x1C, 0x21, 0x50, 0xFE, 0x21, 0xC9, 0x43, 0x00, 0x1D, 0x21, 0x50 + .byte 0x38, 0xBD, 0x08, 0x1D, 0x22, 0x58, 0x10, 0x32, 0x22, 0x50, 0x20, 0x58, 0x00, 0x28, 0x1C, 0xDD + .byte 0x60, 0x58, 0x40, 0x1C, 0x60, 0x50, 0x20, 0x68, 0x01, 0x21, 0x80, 0x6B, 0x01, 0xF0, 0xDE, 0xFC + .byte 0x04, 0xB0, 0x38, 0xBD, 0x24, 0x39, 0x60, 0x18, 0x00, 0xF0, 0x52, 0xFB, 0x06, 0x20, 0x80, 0x01 + .byte 0x21, 0x58, 0x04, 0xB0, 0x49, 0x1C, 0x21, 0x50, 0x38, 0xBD, 0x08, 0x31, 0x60, 0x58, 0x01, 0x22 + .byte 0x02, 0x60, 0x28, 0x1C, 0x21, 0x1C, 0x00, 0xF0, 0xA9, 0xF9 +_020539EA: + add sp, #0x10 + pop {r3-r5, pc} + nop +_020539F0: + .byte 0x2F, 0x06, 0x00, 0x00, 0x31, 0x06, 0x00, 0x00 + + thumb_func_start sub_020539F8 +sub_020539F8: ; 0x020539F8 + push {r4-r5, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r0, #0x6 + add r4, r1, #0x0 + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + cmp r0, #0x6 + beq _02053A10 + ldr r0, [r4, #0x4] + bl sub_0201FDEC +_02053A10: + mov r1, #0x6 + lsl r1, r1, #0x6 + ldr r0, [r4, r1] + cmp r0, #0x6 + bls _02053A1C + b _02053B30 +_02053A1C: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r4, r4, #0 + lsl r6, r1, #0x1 + lsl r6, r6, #0x1 + lsl r0, r7, #0x2 + lsl r6, r2, #0x3 + lsl r4, r5, #0x3 + ldr r0, [r4, #0x0] + mov r1, #0x0 + ldr r0, [r0, #0x38] + bl sub_0205537C + mov r0, #0x6 + lsl r0, r0, #0x6 + ldr r1, [r4, r0] + add sp, #0xc + add r1, r1, #0x1 + str r1, [r4, r0] + pop {r4-r5, pc} +_02053A4E: + .byte 0x24, 0x39 + .byte 0x20, 0x1C, 0x61, 0x18, 0x03, 0x22, 0x00, 0xF0, 0x6F, 0xFA, 0x63, 0x20, 0x00, 0x01, 0xB1, 0xF7 + .byte 0x33, 0xFD, 0x5F, 0x20, 0x01, 0x21, 0x80, 0x00, 0x21, 0x50, 0x01, 0x1D, 0x61, 0x58, 0x00, 0x1D + .byte 0x49, 0x1C, 0x03, 0xB0, 0x21, 0x50, 0x30, 0xBD, 0x08, 0x1D, 0x22, 0x58, 0x20, 0x3A, 0x22, 0x50 + .byte 0x21, 0x58, 0xFE, 0x20, 0xC0, 0x43, 0x81, 0x42, 0x52, 0xDA, 0x01, 0x20, 0x00, 0x21, 0xCA, 0xF7 + .byte 0x5D, 0xFE, 0x06, 0x20, 0x80, 0x01, 0x21, 0x58, 0x03, 0xB0, 0x49, 0x1C, 0x21, 0x50, 0x30, 0xBD + .byte 0x08, 0x1C, 0x18, 0x39, 0x24, 0x38, 0x61, 0x58, 0x20, 0x18, 0x88, 0x47, 0x05, 0x1C, 0x02, 0x2D + .byte 0x0E, 0xD1, 0x61, 0x21, 0x00, 0x20, 0x89, 0x00, 0x60, 0x50, 0x06, 0x21, 0x00, 0x91, 0x01, 0x21 + .byte 0x01, 0x91, 0x04, 0x21, 0x02, 0x91, 0x1B, 0x4B, 0x01, 0x1C, 0x02, 0x1C, 0xBA, 0xF7, 0x80, 0xFB + .byte 0x00, 0x2D, 0x2D, 0xD1, 0x06, 0x20, 0x80, 0x01, 0x21, 0x58, 0x03, 0xB0, 0x49, 0x1C, 0x21, 0x50 + .byte 0x30, 0xBD, 0xBA, 0xF7, 0x11, 0xFC, 0x00, 0x28, 0x22, 0xD0, 0x61, 0x20, 0x00, 0x21, 0x80, 0x00 + .byte 0x21, 0x50, 0x01, 0x1F, 0x61, 0x58, 0x00, 0x1F, 0x49, 0x1C, 0x03, 0xB0, 0x21, 0x50, 0x30, 0xBD + .byte 0x24, 0x39, 0x60, 0x18, 0x00, 0xF0, 0xB4, 0xFA, 0x06, 0x20, 0x80, 0x01, 0x21, 0x58, 0x03, 0xB0 + .byte 0x49, 0x1C, 0x21, 0x50, 0x30, 0xBD, 0x02, 0x20, 0x00, 0x21, 0xCA, 0xF7, 0x17, 0xFE, 0x62, 0x20 + .byte 0x80, 0x00, 0x20, 0x58, 0x01, 0x21, 0x01, 0x60, 0x28, 0x1C, 0x21, 0x1C, 0x00, 0xF0, 0x06, 0xF9 +_02053B30: + add sp, #0xc + pop {r4-r5, pc} +_02053B34: + .byte 0xFF, 0x7F, 0x00, 0x00 + + thumb_func_start sub_02053B38 +sub_02053B38: ; 0x02053B38 + push {r4-r5, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r0, #0x6 + add r4, r1, #0x0 + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + cmp r0, #0x6 + beq _02053B50 + ldr r0, [r4, #0x4] + bl sub_0201FDEC +_02053B50: + mov r1, #0x6 + lsl r1, r1, #0x6 + ldr r0, [r4, r1] + cmp r0, #0x6 + bls _02053B5C + b _02053C8C +_02053B5C: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r0, r1, #0x1 + lsl r4, r5, #0x1 + lsl r0, r1, #0x2 + lsl r0, r7, #0x2 + lsl r4, r7, #0x3 + lsl r2, r2, #0x4 + ldr r0, [r4, #0x0] + mov r1, #0x0 + ldr r0, [r0, #0x38] + bl sub_0205537C + mov r1, #0x57 + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + mov r2, #0x4 + bl sub_02053F38 + mov r1, #0x5b + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + mov r2, #0x5 + bl sub_02053F38 + mov r0, #0x5f + mov r1, #0x2 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r1, r0, #0x4 + ldr r1, [r4, r1] + add r0, r0, #0x4 + add r1, r1, #0x1 + add sp, #0xc + str r1, [r4, r0] + pop {r4-r5, pc} +_02053BB2: + .byte 0x06, 0x20, 0x00, 0x90, 0x01, 0x21, 0x01, 0x91, 0x04, 0x20, 0x02, 0x90, 0x34, 0x4B + .byte 0x00, 0x20, 0x0A, 0x1C, 0xBA, 0xF7, 0x04, 0xFB, 0x06, 0x20, 0x80, 0x01, 0x21, 0x58, 0x03, 0xB0 + .byte 0x49, 0x1C, 0x21, 0x50, 0x30, 0xBD, 0xBA, 0xF7, 0x97, 0xFB, 0x00, 0x28, 0x56, 0xD0, 0x2D, 0x48 + .byte 0xB1, 0xF7, 0x72, 0xFC, 0x06, 0x20, 0x80, 0x01, 0x21, 0x58, 0x03, 0xB0, 0x49, 0x1C, 0x21, 0x50 + .byte 0x30, 0xBD, 0x08, 0x1C, 0x18, 0x39, 0x24, 0x38, 0x61, 0x58, 0x20, 0x18, 0x88, 0x47, 0x00, 0x28 + .byte 0x44, 0xD1, 0x20, 0x68, 0x01, 0x21, 0x80, 0x6B, 0x01, 0xF0, 0xB8, 0xFB, 0x61, 0x20, 0x06, 0x21 + .byte 0x80, 0x00, 0x21, 0x50, 0x01, 0x1F, 0x61, 0x58, 0x00, 0x1F, 0x49, 0x1C, 0x03, 0xB0, 0x21, 0x50 + .byte 0x30, 0xBD, 0x08, 0x1C, 0x08, 0x39, 0x14, 0x38, 0x61, 0x58, 0x20, 0x18, 0x88, 0x47, 0x05, 0x1C + .byte 0x61, 0x20, 0x80, 0x00, 0x21, 0x58, 0x00, 0x29, 0x0A, 0xDC, 0x0B, 0xD1, 0x28, 0x38, 0x20, 0x18 + .byte 0x00, 0xF0, 0x16, 0xFA, 0x61, 0x20, 0x80, 0x00, 0x21, 0x58, 0x49, 0x1E, 0x21, 0x50, 0x01, 0xE0 + .byte 0x49, 0x1E, 0x21, 0x50, 0x00, 0x2D, 0x19, 0xD1, 0x06, 0x20, 0x80, 0x01, 0x21, 0x58, 0x03, 0xB0 + .byte 0x49, 0x1C, 0x21, 0x50, 0x30, 0xBD, 0x14, 0x39, 0x60, 0x18, 0x00, 0xF0, 0x01, 0xFA, 0x06, 0x20 + .byte 0x80, 0x01, 0x21, 0x58, 0x03, 0xB0, 0x49, 0x1C, 0x21, 0x50, 0x30, 0xBD, 0x08, 0x31, 0x60, 0x58 + .byte 0x01, 0x22, 0x02, 0x60, 0x28, 0x1C, 0x21, 0x1C, 0x00, 0xF0, 0x58, 0xF8 +_02053C8C: + add sp, #0xc + pop {r4-r5, pc} +_02053C90: + .byte 0xFF, 0x7F, 0x00, 0x00, 0x32, 0x06, 0x00, 0x00 + + thumb_func_start sub_02053C98 +sub_02053C98: ; 0x02053C98 + push {r3-r5, lr} + add r3, r1, #0x0 + add r4, r0, #0x0 + add r5, r2, #0x0 + cmp r3, #0x3 + bhi _02053CEE + add r1, r3, r3 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r4, r2, #0 + lsl r2, r4, #0 + lsl r0, r6, #0 + ldr r2, _02053CF8 ; =0x020F5C04 + ldr r0, _02053CFC ; =sub_02053750 + ldrb r2, [r2, r3] + add r1, r4, #0x0 + bl sub_02053D0C + b _02053CEE +_02053CC6: + .byte 0x0C, 0x4A, 0x0D, 0x48, 0xD2, 0x5C, 0x21, 0x1C, 0x00, 0xF0 + .byte 0x1D, 0xF8, 0x0C, 0xE0, 0x08, 0x4A, 0x0B, 0x48, 0xD2, 0x5C, 0x21, 0x1C, 0x00, 0xF0, 0x16, 0xF8 + .byte 0x05, 0xE0, 0x05, 0x4A, 0x08, 0x48, 0xD2, 0x5C, 0x21, 0x1C, 0x00, 0xF0, 0x0F, 0xF8 +_02053CEE: + mov r1, #0x62 + lsl r1, r1, #0x2 + str r5, [r0, r1] + str r4, [r0, #0x0] + pop {r3-r5, pc} + .balign 4 +_02053CF8: .word 0x020F5C04 +_02053CFC: .word sub_02053750 + 1 +_02053D00: + .byte 0xB9, 0x38, 0x05, 0x02, 0xF9, 0x39, 0x05, 0x02, 0x39, 0x3B, 0x05, 0x02 + + thumb_func_start sub_02053D0C +sub_02053D0C: ; 0x02053D0C + push {r4-r6, lr} + add r5, r1, #0x0 + mov r1, #0x63 + add r6, r2, #0x0 + lsl r1, r1, #0x2 + mov r2, #0x5 + mov r3, #0x4 + bl sub_020061E8 + bl sub_0201B6C8 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020238F4 + bl sub_020239CC + add r1, r0, #0x0 + add r0, r4, #0x4 + add r2, r6, #0x0 + bl sub_02053D50 + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02053D3C +sub_02053D3C: ; 0x02053D3C + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x4 + bl sub_02053D68 + add r0, r4, #0x0 + bl sub_0200621C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02053D50 +sub_02053D50: ; 0x02053D50 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02053D70 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02053D94 + pop {r4-r6, pc} + + thumb_func_start sub_02053D68 +sub_02053D68: ; 0x02053D68 + ldr r3, _02053D6C ; =sub_02053EF0 + bx r3 + .balign 4 +_02053D6C: .word sub_02053EF0 + 1 + + thumb_func_start sub_02053D70 +sub_02053D70: ; 0x02053D70 + push {r4, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + mov r0, #0x2 + add r1, #0x30 + mov r2, #0x4 + bl sub_02008C9C + str r0, [r4, #0x0] + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E6E4 + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E74C + pop {r4, pc} + + thumb_func_start sub_02053D94 +sub_02053D94: ; 0x02053D94 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + str r1, [sp, #0x10] + add r7, r2, #0x0 + mov r6, #0x0 + add r4, r5, #0x0 +_02053DA2: + mov r0, #0x2 + add r1, r6, #0x0 + mov r2, #0x4 + bl sub_02008DEC + str r0, [r4, #0x8] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, #0x4 + blt _02053DA2 + ldr r0, [sp, #0x10] + add r1, r5, #0x0 + lsl r0, r0, #0x2 + str r0, [sp, #0x14] + ldr r3, _02053E78 ; =0x02105EC8 + ldr r2, [sp, #0x14] + ldr r0, [r5, #0x8] + ldr r2, [r3, r2] + add r1, #0x18 + bl sub_02053E8C + str r0, [r5, #0x20] + ldr r1, [r5, #0x18] + mov r6, #0x0 + ldr r0, [r1, #0x8] + cmp r0, #0x0 + ble _02053DF0 + add r4, r6, #0x0 +_02053DDA: + ldr r0, [r1, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, r4] + bl sub_02009630 + ldr r1, [r5, #0x18] + add r6, r6, #0x1 + ldr r0, [r1, #0x8] + add r4, r4, #0x4 + cmp r6, r0 + blt _02053DDA +_02053DF0: + ldr r3, _02053E7C ; =0x02105ED0 + ldr r2, [sp, #0x14] + add r1, r5, #0x0 + ldr r0, [r5, #0xc] + ldr r2, [r3, r2] + add r1, #0x1c + bl sub_02053E8C + str r0, [r5, #0x24] + ldr r1, [r5, #0x1c] + mov r6, #0x0 + ldr r0, [r1, #0x8] + cmp r0, #0x0 + ble _02053E24 + add r4, r6, #0x0 +_02053E0E: + ldr r0, [r1, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, r4] + bl sub_02009630 + ldr r1, [r5, #0x1c] + add r6, r6, #0x1 + ldr r0, [r1, #0x8] + add r4, r4, #0x4 + cmp r6, r0 + blt _02053E0E +_02053E24: + ldr r0, [r5, #0x10] + ldr r2, _02053E80 ; =0x02105F48 + mov r1, #0x0 + bl sub_02053E8C + str r0, [r5, #0x28] + ldr r0, [r5, #0x14] + ldr r2, _02053E84 ; =0x02105F64 + mov r1, #0x0 + bl sub_02053E8C + str r0, [r5, #0x2c] + ldr r0, [r5, #0x18] + bl sub_02009B44 + ldr r0, [r5, #0x1c] + bl sub_02009DAC + ldr r1, _02053E88 ; =0x02105F80 + mov r0, #0x4 + bl sub_020161A4 + ldr r1, [r5, #0x10] + add r4, r0, #0x0 + str r1, [sp, #0x0] + ldr r1, [r5, #0x14] + str r1, [sp, #0x4] + mov r1, #0x0 + str r1, [sp, #0x8] + str r1, [sp, #0xc] + ldr r2, [r5, #0x8] + ldr r3, [r5, #0xc] + mov r1, #0x4 + bl sub_02008BE0 + str r0, [r5, #0x4] + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + pop {r3-r7, pc} + nop +_02053E78: .word 0x02105EC8 +_02053E7C: .word 0x02105ED0 +_02053E80: .word 0x02105F48 +_02053E84: .word 0x02105F64 +_02053E88: .word 0x02105F80 + + thumb_func_start sub_02053E8C +sub_02053E8C: ; 0x02053E8C + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_0200965C + add r1, r0, #0x0 + mov r0, #0x4 + bl sub_020169D8 + add r4, r0, #0x0 + mov r0, #0x4 + add r1, r6, #0x0 + bl sub_020161A4 + add r6, r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x4 + bl sub_02009668 + add r0, r6, #0x0 + bl sub_02016A18 + cmp r5, #0x0 + beq _02053ED0 + add r0, r4, #0x0 + bl sub_020096CC + mov r1, #0x4 + bl sub_02009424 + str r0, [r5, #0x0] + add r2, r0, #0x0 + b _02053ED2 +_02053ED0: + mov r2, #0x0 +_02053ED2: + add r0, r7, #0x0 + add r1, r4, #0x0 + mov r3, #0x4 + bl sub_020093A8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020096B4 + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02053EF0 +sub_02053EF0: ; 0x02053EF0 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0201FD58 + mov r0, #0x0 + str r0, [r5, #0x0] + ldr r0, [r5, #0x4] + bl sub_02008C80 + mov r0, #0x0 + str r0, [r5, #0x4] + ldr r0, [r5, #0x18] + bl sub_02009C30 + ldr r0, [r5, #0x1c] + bl sub_02009E28 + mov r6, #0x0 + add r4, r5, #0x0 +_02053F18: + ldr r0, [r4, #0x18] + bl sub_02009448 + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, #0x2 + blt _02053F18 + mov r4, #0x0 +_02053F28: + ldr r0, [r5, #0x8] + bl sub_02008E2C + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x4 + blt _02053F28 + pop {r4-r6, pc} + + thumb_func_start sub_02053F38 +sub_02053F38: ; 0x02053F38 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r4, #0x10 + mov r3, #0x0 +_02053F40: + strb r3, [r5, #0x0] + add r5, r5, #0x1 + sub r4, r4, #0x1 + bne _02053F40 + cmp r2, #0x5 + bhi _02053FB6 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r2, r1, #0 + lsl r0, r3, #0 + lsl r6, r4, #0 + lsl r4, r6, #0 + lsl r2, r0, #0x1 + lsl r0, r2, #0x1 + ldr r2, _02053FC0 ; =sub_02054088 + str r2, [r1, #0x4] + ldr r2, _02053FC4 ; =sub_020540C8 + str r2, [r1, #0x8] + ldr r2, _02053FC8 ; =sub_020540E8 + str r2, [r1, #0xc] + b _02053FB6 +_02053F72: + .byte 0x16, 0x4A, 0x4A, 0x60, 0x16, 0x4A, 0x8A, 0x60, 0x16, 0x4A, 0xCA, 0x60, 0x1A, 0xE0 + .byte 0x15, 0x4A, 0x4A, 0x60, 0x15, 0x4A, 0x8A, 0x60, 0x15, 0x4A, 0xCA, 0x60, 0x13, 0xE0, 0x15, 0x4A + .byte 0x4A, 0x60, 0x15, 0x4A, 0x8A, 0x60, 0x15, 0x4A, 0xCA, 0x60, 0x0C, 0xE0, 0x14, 0x4A, 0x4A, 0x60 + .byte 0x14, 0x4A, 0x8A, 0x60, 0x14, 0x4A, 0xCA, 0x60, 0x05, 0xE0, 0x14, 0x4A, 0x4A, 0x60, 0x14, 0x4A + .byte 0x8A, 0x60, 0x14, 0x4A, 0xCA, 0x60 +_02053FB6: + ldr r2, [r1, #0x4] + add r0, r0, #0x4 + blx r2 + pop {r3-r5, pc} + nop +_02053FC0: .word sub_02054088 + 1 +_02053FC4: .word sub_020540C8 + 1 +_02053FC8: .word sub_020540E8 + 1 +_02053FCC: + .byte 0x69, 0x41, 0x05, 0x02 + .byte 0xA5, 0x41, 0x05, 0x02, 0xC5, 0x41, 0x05, 0x02, 0xE9, 0x41, 0x05, 0x02, 0x29, 0x42, 0x05, 0x02 + .byte 0x49, 0x42, 0x05, 0x02, 0xA5, 0x42, 0x05, 0x02, 0xE9, 0x42, 0x05, 0x02, 0x09, 0x43, 0x05, 0x02 + .byte 0xD9, 0x43, 0x05, 0x02, 0x2D, 0x44, 0x05, 0x02, 0x4D, 0x44, 0x05, 0x02, 0x09, 0x45, 0x05, 0x02 + .byte 0x4D, 0x45, 0x05, 0x02, 0x6D, 0x45, 0x05, 0x02 + + thumb_func_start sub_02054008 +sub_02054008: ; 0x02054008 + push {r3-r7, lr} + sub sp, #0x30 + add r5, r0, #0x0 + add r7, sp, #0x0 + add r6, r3, #0x0 + mov r0, #0x0 + add r4, r1, #0x0 + add r3, r7, #0x0 + add r1, r0, #0x0 + stmia r3!, {r0-r1} + stmia r3!, {r0-r1} + stmia r3!, {r0-r1} + stmia r3!, {r0-r1} + stmia r3!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + add r3, sp, #0x8 + str r0, [sp, #0x0] + ldr r0, [r5, #0x4] + ldr r1, [r0, #0x0] + mov r0, #0x24 + mul r0, r4 + add r0, r1, r0 + str r0, [sp, #0x4] + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + add r2, sp, #0x14 + str r0, [r3, #0x0] + ldr r3, _0205406C ; =0x020F5C08 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldr r0, [sp, #0x48] + str r6, [sp, #0x24] + str r0, [sp, #0x28] + mov r0, #0x4 + str r0, [sp, #0x2c] + add r0, r7, #0x0 + bl sub_0201FE94 + add r4, r0, #0x0 + bne _02054064 + bl sub_02020C2C +_02054064: + add r0, r4, #0x0 + add sp, #0x30 + pop {r3-r7, pc} + nop +_0205406C: .word 0x020F5C08 + + thumb_func_start sub_02054070 +sub_02054070: ; 0x02054070 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x8] + blx r1 + mov r1, #0x10 + mov r0, #0x0 +_0205407C: + strb r0, [r4, #0x0] + add r4, r4, #0x1 + sub r1, r1, #0x1 + bne _0205407C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02054088 +sub_02054088: ; 0x02054088 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x4 + mov r1, #0x14 + bl sub_02016998 + str r0, [r5, #0x0] + mov r2, #0x14 + mov r1, #0x0 +_0205409C: + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _0205409C + ldr r5, [r5, #0x0] + mov r0, #0x7 + lsl r0, r0, #0x10 + str r0, [r5, #0x0] + mov r0, #0x45 + lsl r0, r0, #0xc + str r0, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r2, r5, #0x0 + add r3, r1, #0x0 + bl sub_02054008 + str r0, [r5, #0xc] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020540C8 +sub_020540C8: ; 0x020540C8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020540E4 + ldr r0, [r0, #0xc] + bl sub_0201FFC8 + ldr r1, [r4, #0x0] + mov r0, #0x4 + bl sub_02016A8C + mov r0, #0x0 + str r0, [r4, #0x0] +_020540E4: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020540E8 +sub_020540E8: ; 0x020540E8 + push {r3-r6, lr} + sub sp, #0xc + ldr r4, [r0, #0x0] + mov r2, #0x2 + ldr r0, [r4, #0x10] + lsl r2, r2, #0xe + cmp r0, r2 + bgt _0205415E + add r6, r4, #0x0 + ldmia r6!, {r0-r1} + add r5, sp, #0x0 + add r3, r5, #0x0 + stmia r5!, {r0-r1} + ldr r0, [r6, #0x0] + lsr r2, r2, #0x4 + str r0, [r5, #0x0] + ldr r0, [r4, #0x10] + ldr r1, [sp, #0x4] + asr r0, r0, #0x4 + lsl r5, r0, #0x2 + ldr r0, _02054164 ; =0x020FFA38 + ldrsh r5, [r0, r5] + asr r0, r5, #0x1f + lsr r6, r5, #0x10 + lsl r0, r0, #0x10 + orr r0, r6 + lsl r6, r5, #0x10 + mov r5, #0x0 + add r2, r6, r2 + adc r0, r5 + lsl r0, r0, #0x14 + lsr r2, r2, #0xc + orr r2, r0 + sub r0, r1, r2 + str r0, [sp, #0x4] + ldr r0, [r4, #0xc] + add r1, r3, #0x0 + bl sub_02020044 + mov r1, #0x2 + ldr r0, [r4, #0x10] + lsl r1, r1, #0xa + add r0, r0, r1 + str r0, [r4, #0x10] + ldr r0, [r4, #0xc] + lsl r1, r1, #0x1 + bl sub_020201E4 + mov r0, #0x2 + ldr r1, [r4, #0x10] + lsl r0, r0, #0xe + cmp r1, r0 + bne _02054158 + add sp, #0xc + mov r0, #0x2 + pop {r3-r6, pc} +_02054158: + add sp, #0xc + mov r0, #0x1 + pop {r3-r6, pc} +_0205415E: + mov r0, #0x0 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 +_02054164: .word 0x020FFA38 + + thumb_func_start sub_02054168 +sub_02054168: ; 0x02054168 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x4 + mov r1, #0x14 + bl sub_02016998 + str r0, [r5, #0x0] + mov r2, #0x14 + mov r1, #0x0 +_0205417C: + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _0205417C + ldr r5, [r5, #0x0] + mov r0, #0x7 + lsl r0, r0, #0x10 + str r0, [r5, #0x0] + mov r0, #0x6 + lsl r0, r0, #0x10 + mov r1, #0x1 + str r0, [r5, #0x4] + add r0, r4, #0x0 + add r2, r5, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x0] + bl sub_02054008 + str r0, [r5, #0xc] + pop {r3-r5, pc} + + thumb_func_start sub_020541A4 +sub_020541A4: ; 0x020541A4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020541C0 + ldr r0, [r0, #0xc] + bl sub_0201FFC8 + ldr r1, [r4, #0x0] + mov r0, #0x4 + bl sub_02016A8C + mov r0, #0x0 + str r0, [r4, #0x0] +_020541C0: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020541C4 +sub_020541C4: ; 0x020541C4 + push {r4, lr} + ldr r4, [r0, #0x0] + ldr r0, [r4, #0x10] + cmp r0, #0x7 + bge _020541E2 + mov r1, #0x1 + ldr r0, [r4, #0xc] + lsl r1, r1, #0xc + bl sub_020201E4 + ldr r0, [r4, #0x10] + add r0, r0, #0x1 + str r0, [r4, #0x10] + mov r0, #0x1 + pop {r4, pc} +_020541E2: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020541E8 +sub_020541E8: ; 0x020541E8 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x4 + mov r1, #0x14 + bl sub_02016998 + str r0, [r5, #0x0] + mov r2, #0x14 + mov r1, #0x0 +_020541FC: + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _020541FC + ldr r5, [r5, #0x0] + mov r0, #0x7 + lsl r0, r0, #0x10 + str r0, [r5, #0x0] + mov r0, #0x3 + lsl r0, r0, #0x12 + str r0, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r2, r5, #0x0 + add r3, r1, #0x0 + bl sub_02054008 + str r0, [r5, #0xc] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02054228 +sub_02054228: ; 0x02054228 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02054244 + ldr r0, [r0, #0xc] + bl sub_0201FFC8 + ldr r1, [r4, #0x0] + mov r0, #0x4 + bl sub_02016A8C + mov r0, #0x0 + str r0, [r4, #0x0] +_02054244: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02054248 +sub_02054248: ; 0x02054248 + push {r4, lr} + ldr r4, [r0, #0x0] + mov r0, #0x2 + ldr r1, [r4, #0x4] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [r4, #0x4] + ldr r0, [r4, #0xc] + add r1, r4, #0x0 + bl sub_02020044 + mov r1, #0x1 + ldr r0, [r4, #0xc] + lsl r1, r1, #0xc + bl sub_020201E4 + ldr r0, [r4, #0x10] + ldr r1, [r4, #0x4] + cmp r0, #0x0 + bne _02054284 + mov r0, #0x6 + lsl r0, r0, #0x12 + cmp r1, r0 + blt _0205429A + ldr r0, _020542A0 ; =0xFFFE0000 + str r0, [r4, #0x4] + ldr r0, [r4, #0x10] + add r0, r0, #0x1 + str r0, [r4, #0x10] + b _0205429A +_02054284: + mov r0, #0x45 + lsl r0, r0, #0xc + cmp r1, r0 + blt _0205429A + str r0, [r4, #0x4] + ldr r0, [r4, #0xc] + add r1, r4, #0x0 + bl sub_02020044 + mov r0, #0x0 + pop {r4, pc} +_0205429A: + mov r0, #0x1 + pop {r4, pc} + nop +_020542A0: .word 0xFFFE0000 + + thumb_func_start sub_020542A4 +sub_020542A4: ; 0x020542A4 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x4 + mov r1, #0x18 + bl sub_02016998 + str r0, [r5, #0x0] + mov r2, #0x18 + mov r1, #0x0 +_020542B8: + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _020542B8 + ldr r5, [r5, #0x0] + mov r0, #0x7 + lsl r0, r0, #0x10 + str r0, [r5, #0x0] + mov r0, #0x45 + lsl r0, r0, #0xc + str r0, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r2, r5, #0x0 + add r3, r1, #0x0 + bl sub_02054008 + mov r1, #0x1 + str r0, [r5, #0xc] + bl sub_02020130 + pop {r3-r5, pc} + + thumb_func_start sub_020542E8 +sub_020542E8: ; 0x020542E8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02054304 + ldr r0, [r0, #0xc] + bl sub_0201FFC8 + ldr r1, [r4, #0x0] + mov r0, #0x4 + bl sub_02016A8C + mov r0, #0x0 + str r0, [r4, #0x0] +_02054304: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02054308 +sub_02054308: ; 0x02054308 + push {r3-r5, lr} + ldr r4, [r0, #0x0] + mov r5, #0x1 + ldr r0, [r4, #0x10] + cmp r0, #0x4 + bhi _020543CC + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0 + lsl r6, r4, #0 + lsl r4, r2, #0x1 + lsl r0, r0, #0x2 + lsl r0, r5, #0x2 + ldr r1, [r4, #0x14] + ldr r0, _020543D0 ; =0x00000333 + add r1, r1, r0 + str r1, [r4, #0x14] + ldr r0, [r4, #0xc] + bl sub_020201E4 + ldr r1, [r4, #0x14] + lsl r0, r5, #0xd + cmp r1, r0 + blt _020543CC + ldr r0, [r4, #0x10] + add r0, r0, #0x1 + str r0, [r4, #0x10] + b _020543CC +_02054348: + .byte 0x61, 0x68, 0x22, 0x48, 0x81, 0x42, 0x0B, 0xDD + .byte 0xE8, 0x03, 0x08, 0x1A, 0x60, 0x60, 0xE0, 0x68, 0x21, 0x1C, 0xCB, 0xF7, 0x73, 0xFE, 0xE0, 0x68 + .byte 0x61, 0x69, 0xCB, 0xF7, 0x3F, 0xFF, 0x31, 0xE0, 0x06, 0x20, 0x80, 0x04, 0x60, 0x60, 0x20, 0x69 + .byte 0x40, 0x1C, 0x20, 0x61, 0x2A, 0xE0, 0x61, 0x68, 0xE8, 0x03, 0x08, 0x1A, 0x60, 0x60, 0xE0, 0x68 + .byte 0x21, 0x1C, 0xCB, 0xF7, 0x5F, 0xFE, 0xE0, 0x68, 0x61, 0x69, 0xCB, 0xF7, 0x2B, 0xFF, 0x4B, 0x20 + .byte 0x61, 0x68, 0x80, 0x03, 0x81, 0x42, 0x19, 0xDA, 0x20, 0x69, 0x02, 0x25, 0x40, 0x1C, 0x20, 0x61 + .byte 0x14, 0xE0, 0x03, 0x21, 0x62, 0x68, 0x89, 0x04, 0x8A, 0x42, 0x0B, 0xDD, 0xE8, 0x03, 0x10, 0x1A + .byte 0x60, 0x60, 0xE0, 0x68, 0x21, 0x1C, 0xCB, 0xF7, 0x45, 0xFE, 0xE0, 0x68, 0x61, 0x69, 0xCB, 0xF7 + .byte 0x11, 0xFF, 0x03, 0xE0, 0x40, 0x1C, 0x20, 0x61, 0x00, 0xE0, 0x00, 0x25 +_020543CC: + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 +_020543D0: .word 0x00000333 +_020543D4: + .byte 0x00, 0x00, 0xFE, 0xFF + + thumb_func_start sub_020543D8 +sub_020543D8: ; 0x020543D8 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x4 + mov r1, #0x18 + bl sub_02016998 + str r0, [r5, #0x0] + mov r2, #0x18 + mov r1, #0x0 +_020543EC: + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _020543EC + ldr r5, [r5, #0x0] + mov r0, #0x7 + lsl r0, r0, #0x10 + str r0, [r5, #0x0] + mov r0, #0x45 + lsl r0, r0, #0xc + str r0, [r5, #0x4] + mov r0, #0x1 + mov r1, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r2, r5, #0x0 + add r3, r1, #0x0 + bl sub_02054008 + mov r1, #0x1 + str r0, [r5, #0xc] + bl sub_02020130 + mov r0, #0x2 + lsl r0, r0, #0xc + str r0, [r5, #0x14] + ldr r0, [r5, #0xc] + mov r1, #0x0 + bl sub_020200A0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205442C +sub_0205442C: ; 0x0205442C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02054448 + ldr r0, [r0, #0xc] + bl sub_0201FFC8 + ldr r1, [r4, #0x0] + mov r0, #0x4 + bl sub_02016A8C + mov r0, #0x0 + str r0, [r4, #0x0] +_02054448: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205444C +sub_0205444C: ; 0x0205444C + push {r4-r7, lr} + sub sp, #0xc + ldr r4, [r0, #0x0] + mov r5, #0x1 + ldr r0, [r4, #0x10] + cmp r0, #0x3 + bhi _020544F8 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r6, r2, #0 + lsl r2, r6, #0x1 + lsl r6, r1, #0x2 + ldr r0, [r4, #0xc] + add r1, r5, #0x0 + bl sub_020200A0 + ldr r0, [r4, #0x10] + add r0, r0, #0x1 + str r0, [r4, #0x10] + b _020544F8 +_0205447E: + .byte 0x62, 0x69 + .byte 0xE9, 0x03, 0x8A, 0x42, 0x26, 0xDC, 0x26, 0x1C, 0x03, 0xCE, 0x00, 0xAB, 0x1A, 0x1C, 0x03, 0xC3 + .byte 0x30, 0x68, 0x00, 0x27, 0x18, 0x60, 0x60, 0x69, 0x01, 0x9E, 0x00, 0x11, 0x81, 0x00, 0x18, 0x48 + .byte 0x40, 0x5E, 0xC3, 0x17, 0xC1, 0x0B, 0x5B, 0x04, 0x0B, 0x43, 0x41, 0x04, 0xE8, 0x02, 0x08, 0x18 + .byte 0x7B, 0x41, 0x19, 0x05, 0x00, 0x0B, 0x08, 0x43, 0x30, 0x1A, 0x01, 0x90, 0xE0, 0x68, 0x11, 0x1C + .byte 0xCB, 0xF7, 0xC0, 0xFD, 0x60, 0x69, 0x29, 0x03, 0x40, 0x18, 0x60, 0x61, 0xE0, 0x68, 0xCB, 0xF7 + .byte 0x89, 0xFE, 0x11, 0xE0, 0x40, 0x1C, 0x20, 0x61, 0x0E, 0xE0, 0x61, 0x69, 0x09, 0x48, 0x09, 0x1A + .byte 0x61, 0x61, 0xE0, 0x68, 0xCB, 0xF7, 0x7E, 0xFE, 0x60, 0x69, 0x00, 0x28, 0x04, 0xDC, 0x20, 0x69 + .byte 0x40, 0x1C, 0x20, 0x61, 0x00, 0xE0, 0x00, 0x25 +_020544F8: + add r0, r5, #0x0 + add sp, #0xc + pop {r4-r7, pc} + nop +_02054500: + .byte 0x38, 0xFA, 0x0F, 0x02, 0x66, 0x06, 0x00, 0x00 + + thumb_func_start sub_02054508 +sub_02054508: ; 0x02054508 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x4 + mov r1, #0x14 + bl sub_02016998 + str r0, [r5, #0x0] + mov r2, #0x14 + mov r1, #0x0 +_0205451C: + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _0205451C + ldr r5, [r5, #0x0] + mov r0, #0x7 + lsl r0, r0, #0x10 + str r0, [r5, #0x0] + mov r0, #0x6 + lsl r0, r0, #0x10 + mov r1, #0x1 + str r0, [r5, #0x4] + add r0, r4, #0x0 + add r2, r5, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x0] + bl sub_02054008 + mov r1, #0x1 + str r0, [r5, #0xc] + bl sub_02020130 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205454C +sub_0205454C: ; 0x0205454C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02054568 + ldr r0, [r0, #0xc] + bl sub_0201FFC8 + ldr r1, [r4, #0x0] + mov r0, #0x4 + bl sub_02016A8C + mov r0, #0x0 + str r0, [r4, #0x0] +_02054568: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205456C +sub_0205456C: ; 0x0205456C + push {r4, lr} + ldr r4, [r0, #0x0] + ldr r0, [r4, #0x10] + cmp r0, #0x8 + bge _0205458A + mov r1, #0x1 + ldr r0, [r4, #0xc] + lsl r1, r1, #0xc + bl sub_020201E4 + ldr r0, [r4, #0x10] + add r0, r0, #0x1 + str r0, [r4, #0x10] + mov r0, #0x1 + pop {r4, pc} +_0205458A: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02054590 +sub_02054590: ; 0x02054590 + push {r4, lr} + add r4, r0, #0x0 + cmp r1, #0x1 + bne _0205459C + bl sub_0201BD5C +_0205459C: + mov r1, #0x1a + add r0, r4, #0x0 + lsl r1, r1, #0x4 + mov r2, #0x4 + bl sub_02002ED0 + mov r1, #0x6 + add r0, r4, #0x0 + lsl r1, r1, #0x6 + mov r2, #0x4 + bl sub_02002EEC + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020545B8 +sub_020545B8: ; 0x020545B8 + push {lr} + sub sp, #0x14 + cmp r2, #0x3 + bne _020545E0 + mov r2, #0x13 + str r2, [sp, #0x0] + mov r2, #0x1b + str r2, [sp, #0x4] + mov r2, #0x4 + str r2, [sp, #0x8] + mov r2, #0xc + str r2, [sp, #0xc] + ldr r2, _02054604 ; =0x0000032D + mov r3, #0x2 + str r2, [sp, #0x10] + mov r2, #0x3 + bl sub_02019064 + add sp, #0x14 + pop {pc} +_020545E0: + mov r2, #0x13 + str r2, [sp, #0x0] + mov r2, #0x1b + str r2, [sp, #0x4] + mov r2, #0x4 + str r2, [sp, #0x8] + mov r2, #0xc + str r2, [sp, #0xc] + mov r2, #0x65 + lsl r2, r2, #0x2 + str r2, [sp, #0x10] + mov r2, #0x7 + mov r3, #0x2 + bl sub_02019064 + add sp, #0x14 + pop {pc} + nop +_02054604: .word 0x0000032D + + thumb_func_start sub_02054608 +sub_02054608: ; 0x02054608 + push {r4-r6, lr} + sub sp, #0x8 + add r4, r1, #0x0 + add r5, r0, #0x0 + bl sub_0201AB08 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x4 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + ldr r2, _02054648 ; =0x000003E2 + add r1, r6, #0x0 + mov r3, #0xa + bl sub_0200CD68 + add r0, r5, #0x0 + bl sub_0205464C + ldr r2, _02054648 ; =0x000003E2 + add r0, r5, #0x0 + mov r1, #0x0 + mov r3, #0xa + bl sub_0200D0BC + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_02054648: .word 0x000003E2 + + thumb_func_start sub_0205464C +sub_0205464C: ; 0x0205464C + ldr r3, _02054654 ; =sub_02019620 + mov r1, #0xf + bx r3 + nop +_02054654: .word sub_02019620 + 1 + + thumb_func_start sub_02054658 +sub_02054658: ; 0x02054658 + push {r3-r6, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r0, r3, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02002B60 + mov r0, #0x0 + bl sub_02002B7C + mov r0, #0x0 + bl sub_02002BB8 + add r0, r6, #0x0 + bl sub_02024FF4 + mov r3, #0x0 + str r3, [sp, #0x0] + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x1 + add r2, r4, #0x0 + str r3, [sp, #0x8] + bl sub_0201BD84 + add sp, #0xc + pop {r3-r6, pc} + + thumb_func_start sub_02054690 +sub_02054690: ; 0x02054690 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + add r6, r1, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + bl sub_02002B60 + ldr r0, [sp, #0x24] + bl sub_02002B7C + mov r0, #0x0 + bl sub_02002BB8 + mov r3, #0x0 + str r3, [sp, #0x0] + str r4, [sp, #0x4] + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + str r3, [sp, #0x8] + bl sub_0201BD84 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_020546C8 +sub_020546C8: ; 0x020546C8 + push {r3, lr} + bl sub_0201BD70 + cmp r0, #0x0 + bne _020546D6 + mov r0, #0x1 + b _020546D8 +_020546D6: + mov r0, #0x0 +_020546D8: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020546E0 +sub_020546E0: ; 0x020546E0 + push {r4-r5, lr} + sub sp, #0x14 + cmp r2, #0x1 + bhi _020546EE + mov r4, #0x9 + mov r5, #0x14 + b _020546F2 +_020546EE: + mov r4, #0x2 + mov r5, #0x1b +_020546F2: + cmp r3, #0x3 + bne _0205471A + mov r2, #0x13 + str r2, [sp, #0x0] + lsl r2, r5, #0x18 + lsr r2, r2, #0x18 + str r2, [sp, #0x4] + mov r2, #0x4 + str r2, [sp, #0x8] + mov r2, #0x9 + str r2, [sp, #0xc] + ldr r2, _02054740 ; =0x0000032D + lsl r3, r4, #0x18 + str r2, [sp, #0x10] + mov r2, #0x3 + lsr r3, r3, #0x18 + bl sub_02019064 + add sp, #0x14 + pop {r4-r5, pc} +_0205471A: + mov r2, #0x13 + str r2, [sp, #0x0] + lsl r2, r5, #0x18 + lsr r2, r2, #0x18 + str r2, [sp, #0x4] + mov r2, #0x4 + str r2, [sp, #0x8] + mov r2, #0x9 + str r2, [sp, #0xc] + mov r2, #0x65 + lsl r2, r2, #0x2 + lsl r3, r4, #0x18 + str r2, [sp, #0x10] + mov r2, #0x7 + lsr r3, r3, #0x18 + bl sub_02019064 + add sp, #0x14 + pop {r4-r5, pc} + .balign 4 +_02054740: .word 0x0000032D + + thumb_func_start sub_02054744 +sub_02054744: ; 0x02054744 + push {r3-r6, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + bl sub_0201AB08 + add r1, r0, #0x0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + str r6, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + ldr r0, [r5, #0x0] + ldr r2, _02054788 ; =0x00000399 + mov r3, #0x9 + bl sub_0200D300 + add r0, r5, #0x0 + mov r1, #0xf + bl sub_02019620 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r2, _02054788 ; =0x00000399 + add r0, r5, #0x0 + mov r1, #0x0 + mov r3, #0x9 + bl sub_0200D6F8 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 +_02054788: .word 0x00000399 + + thumb_func_start sub_0205478C +sub_0205478C: ; 0x0205478C + cmp r0, #0x2 + bne _02054794 + mov r0, #0x1 + bx lr +_02054794: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054798 +sub_02054798: ; 0x02054798 + cmp r0, #0x3 + bne _020547A0 + mov r0, #0x1 + bx lr +_020547A0: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020547A4 +sub_020547A4: ; 0x020547A4 + cmp r0, #0x80 + bne _020547AC + mov r0, #0x1 + bx lr +_020547AC: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020547B0 +sub_020547B0: ; 0x020547B0 + cmp r0, #0x69 + bne _020547B8 + mov r0, #0x1 + bx lr +_020547B8: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020547BC +sub_020547BC: ; 0x020547BC + cmp r0, #0x62 + bne _020547C4 + mov r0, #0x1 + bx lr +_020547C4: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020547C8 +sub_020547C8: ; 0x020547C8 + cmp r0, #0x63 + bne _020547D0 + mov r0, #0x1 + bx lr +_020547D0: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020547D4 +sub_020547D4: ; 0x020547D4 + cmp r0, #0x64 + bne _020547DC + mov r0, #0x1 + bx lr +_020547DC: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020547E0 +sub_020547E0: ; 0x020547E0 + cmp r0, #0x65 + bne _020547E8 + mov r0, #0x1 + bx lr +_020547E8: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020547EC +sub_020547EC: ; 0x020547EC + cmp r0, #0x6c + bne _020547F4 + mov r0, #0x1 + bx lr +_020547F4: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020547F8 +sub_020547F8: ; 0x020547F8 + cmp r0, #0x6d + bne _02054800 + mov r0, #0x1 + bx lr +_02054800: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054804 +sub_02054804: ; 0x02054804 + cmp r0, #0x6e + bne _0205480C + mov r0, #0x1 + bx lr +_0205480C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054810 +sub_02054810: ; 0x02054810 + cmp r0, #0x6f + bne _02054818 + mov r0, #0x1 + bx lr +_02054818: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205481C +sub_0205481C: ; 0x0205481C + ldr r1, _0205482C ; =0x020F5C14 + ldrb r1, [r1, r0] + mov r0, #0x1 + tst r1, r0 + bne _02054828 + mov r0, #0x0 +_02054828: + bx lr + nop +_0205482C: .word 0x020F5C14 + + thumb_func_start sub_02054830 +sub_02054830: ; 0x02054830 + cmp r0, #0x21 + bne _02054838 + mov r0, #0x1 + bx lr +_02054838: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205483C +sub_0205483C: ; 0x0205483C + cmp r0, #0x17 + bne _02054844 + mov r0, #0x1 + bx lr +_02054844: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054848 +sub_02054848: ; 0x02054848 + cmp r0, #0x3a + bne _02054850 + mov r0, #0x1 + bx lr +_02054850: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054854 +sub_02054854: ; 0x02054854 + cmp r0, #0x3b + bne _0205485C + mov r0, #0x1 + bx lr +_0205485C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054860 +sub_02054860: ; 0x02054860 + cmp r0, #0x39 + bne _02054868 + mov r0, #0x1 + bx lr +_02054868: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205486C +sub_0205486C: ; 0x0205486C + cmp r0, #0x38 + bne _02054874 + mov r0, #0x1 + bx lr +_02054874: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054878 +sub_02054878: ; 0x02054878 + cmp r0, #0x83 + bne _02054880 + mov r0, #0x1 + bx lr +_02054880: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054884 +sub_02054884: ; 0x02054884 + cmp r0, #0x85 + bne _0205488C + mov r0, #0x1 + bx lr +_0205488C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054890 +sub_02054890: ; 0x02054890 + cmp r0, #0x56 + bne _02054898 + mov r0, #0x1 + bx lr +_02054898: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205489C +sub_0205489C: ; 0x0205489C + cmp r0, #0x57 + bne _020548A4 + mov r0, #0x1 + bx lr +_020548A4: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020548A8 +sub_020548A8: ; 0x020548A8 + cmp r0, #0x58 + bne _020548B0 + mov r0, #0x1 + bx lr +_020548B0: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020548B4 +sub_020548B4: ; 0x020548B4 + cmp r0, #0x59 + bne _020548BC + mov r0, #0x1 + bx lr +_020548BC: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020548C0 +sub_020548C0: ; 0x020548C0 + cmp r0, #0x6a + bne _020548C8 + mov r0, #0x1 + bx lr +_020548C8: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020548CC +sub_020548CC: ; 0x020548CC + cmp r0, #0x6b + bne _020548D4 + mov r0, #0x1 + bx lr +_020548D4: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020548D8 +sub_020548D8: ; 0x020548D8 + cmp r0, #0x5e + bne _020548E0 + mov r0, #0x1 + bx lr +_020548E0: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020548E4 +sub_020548E4: ; 0x020548E4 + cmp r0, #0x5f + bne _020548EC + mov r0, #0x1 + bx lr +_020548EC: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020548F0 +sub_020548F0: ; 0x020548F0 + cmp r0, #0x20 + bne _020548F8 + mov r0, #0x1 + bx lr +_020548F8: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020548FC +sub_020548FC: ; 0x020548FC + cmp r0, #0x4b + bne _02054904 + mov r0, #0x1 + bx lr +_02054904: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054908 +sub_02054908: ; 0x02054908 + cmp r0, #0x4c + bne _02054910 + mov r0, #0x1 + bx lr +_02054910: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054914 +sub_02054914: ; 0x02054914 + cmp r0, #0xe0 + bne _0205491C + mov r0, #0x1 + bx lr +_0205491C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054920 +sub_02054920: ; 0x02054920 + cmp r0, #0xea + bne _02054928 + mov r0, #0x1 + bx lr +_02054928: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205492C +sub_0205492C: ; 0x0205492C + cmp r0, #0xe1 + bne _02054934 + mov r0, #0x1 + bx lr +_02054934: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054938 +sub_02054938: ; 0x02054938 + cmp r0, #0xe2 + bne _02054940 + mov r0, #0x1 + bx lr +_02054940: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054944 +sub_02054944: ; 0x02054944 + cmp r0, #0xe4 + bne _0205494C + mov r0, #0x1 + bx lr +_0205494C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054950 +sub_02054950: ; 0x02054950 + cmp r0, #0xe5 + bne _02054958 + mov r0, #0x1 + bx lr +_02054958: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205495C +sub_0205495C: ; 0x0205495C + cmp r0, #0xeb + bne _02054964 + mov r0, #0x1 + bx lr +_02054964: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054968 +sub_02054968: ; 0x02054968 + cmp r0, #0xec + bne _02054970 + mov r0, #0x1 + bx lr +_02054970: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054974 +sub_02054974: ; 0x02054974 + cmp r0, #0xa4 + beq _0205497C + cmp r0, #0xa5 + bne _02054980 +_0205497C: + mov r0, #0x1 + bx lr +_02054980: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054984 +sub_02054984: ; 0x02054984 + cmp r0, #0xa5 + bne _0205498C + mov r0, #0x1 + bx lr +_0205498C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054990 +sub_02054990: ; 0x02054990 + cmp r0, #0xa6 + beq _02054998 + cmp r0, #0xa7 + bne _0205499C +_02054998: + mov r0, #0x1 + bx lr +_0205499C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020549A0 +sub_020549A0: ; 0x020549A0 + cmp r0, #0xa7 + bne _020549A8 + mov r0, #0x1 + bx lr +_020549A8: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020549AC +sub_020549AC: ; 0x020549AC + add r0, #0x5f + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r3, #0x0 + cmp r0, #0x7 + bhi _020549C6 + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r0 + mov r0, #0x87 + tst r0, r2 + beq _020549C6 + add r3, r1, #0x0 +_020549C6: + add r0, r3, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_020549CC +sub_020549CC: ; 0x020549CC + cmp r0, #0xa8 + bne _020549D4 + mov r0, #0x1 + bx lr +_020549D4: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020549D8 +sub_020549D8: ; 0x020549D8 + cmp r0, #0xa1 + bne _020549E0 + mov r0, #0x1 + bx lr +_020549E0: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020549E4 +sub_020549E4: ; 0x020549E4 + cmp r0, #0xa2 + bne _020549EC + mov r0, #0x1 + bx lr +_020549EC: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020549F0 +sub_020549F0: ; 0x020549F0 + cmp r0, #0xa3 + bne _020549F8 + mov r0, #0x1 + bx lr +_020549F8: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020549FC +sub_020549FC: ; 0x020549FC + cmp r0, #0xd9 + beq _02054A04 + cmp r0, #0xda + bne _02054A08 +_02054A04: + mov r0, #0x1 + bx lr +_02054A08: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054A0C +sub_02054A0C: ; 0x02054A0C + cmp r0, #0xd9 + bne _02054A14 + mov r0, #0x1 + bx lr +_02054A14: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054A18 +sub_02054A18: ; 0x02054A18 + cmp r0, #0xda + bne _02054A20 + mov r0, #0x1 + bx lr +_02054A20: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054A24 +sub_02054A24: ; 0x02054A24 + cmp r0, #0xd7 + bne _02054A2C + mov r0, #0x1 + bx lr +_02054A2C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054A30 +sub_02054A30: ; 0x02054A30 + cmp r0, #0xd8 + bne _02054A38 + mov r0, #0x1 + bx lr +_02054A38: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054A3C +sub_02054A3C: ; 0x02054A3C + cmp r0, #0x8 + bne _02054A44 + mov r0, #0x1 + bx lr +_02054A44: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054A48 +sub_02054A48: ; 0x02054A48 + cmp r0, #0x13 + bne _02054A50 + mov r0, #0x1 + bx lr +_02054A50: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054A54 +sub_02054A54: ; 0x02054A54 + cmp r0, #0xdb + bne _02054A5C + mov r0, #0x1 + bx lr +_02054A5C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054A60 +sub_02054A60: ; 0x02054A60 + add r0, #0xce + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r3, #0x0 + cmp r0, #0x17 + bhi _02054A7A + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r0 + ldr r0, _02054A80 ; =0x0080000D + tst r0, r2 + beq _02054A7A + add r3, r1, #0x0 +_02054A7A: + add r0, r3, #0x0 + bx lr + nop +_02054A80: .word 0x0080000D + + thumb_func_start sub_02054A84 +sub_02054A84: ; 0x02054A84 + add r0, #0xcd + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r3, #0x0 + cmp r0, #0x16 + bhi _02054A9E + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r0 + ldr r0, _02054AA4 ; =0x00400019 + tst r0, r2 + beq _02054A9E + add r3, r1, #0x0 +_02054A9E: + add r0, r3, #0x0 + bx lr + nop +_02054AA4: .word 0x00400019 + + thumb_func_start sub_02054AA8 +sub_02054AA8: ; 0x02054AA8 + add r0, #0xcf + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r3, #0x0 + cmp r0, #0x19 + bhi _02054AC2 + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r0 + ldr r0, _02054AC8 ; =0x02000051 + tst r0, r2 + beq _02054AC2 + add r3, r1, #0x0 +_02054AC2: + add r0, r3, #0x0 + bx lr + nop +_02054AC8: .word 0x02000051 + + thumb_func_start sub_02054ACC +sub_02054ACC: ; 0x02054ACC + add r0, #0xd0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r3, #0x0 + cmp r0, #0x1a + bhi _02054AE6 + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r0 + ldr r0, _02054AEC ; =0x04000051 + tst r0, r2 + beq _02054AE6 + add r3, r1, #0x0 +_02054AE6: + add r0, r3, #0x0 + bx lr + nop +_02054AEC: .word 0x04000051 + + thumb_func_start sub_02054AF0 +sub_02054AF0: ; 0x02054AF0 + cmp r0, #0x16 + bne _02054AF8 + mov r0, #0x1 + bx lr +_02054AF8: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054AFC +sub_02054AFC: ; 0x02054AFC + ldr r1, _02054B10 ; =0x020F5C14 + ldrb r1, [r1, r0] + mov r0, #0x2 + tst r0, r1 + beq _02054B0A + mov r0, #0x1 + bx lr +_02054B0A: + mov r0, #0x0 + bx lr + nop +_02054B10: .word 0x020F5C14 + + thumb_func_start sub_02054B14 +sub_02054B14: ; 0x02054B14 + cmp r0, #0x86 + bne _02054B1C + mov r0, #0x1 + bx lr +_02054B1C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054B20 +sub_02054B20: ; 0x02054B20 + cmp r0, #0x16 + beq _02054B28 + cmp r0, #0x10 + bne _02054B2C +_02054B28: + mov r0, #0x1 + bx lr +_02054B2C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054B30 +sub_02054B30: ; 0x02054B30 + cmp r0, #0x40 + bne _02054B38 + mov r0, #0x1 + bx lr +_02054B38: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054B3C +sub_02054B3C: ; 0x02054B3C + cmp r0, #0x41 + bne _02054B44 + mov r0, #0x1 + bx lr +_02054B44: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054B48 +sub_02054B48: ; 0x02054B48 + cmp r0, #0x42 + bne _02054B50 + mov r0, #0x1 + bx lr +_02054B50: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054B54 +sub_02054B54: ; 0x02054B54 + cmp r0, #0x43 + bne _02054B5C + mov r0, #0x1 + bx lr +_02054B5C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054B60 +sub_02054B60: ; 0x02054B60 + cmp r0, #0x67 + bne _02054B68 + mov r0, #0x1 + bx lr +_02054B68: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054B6C +sub_02054B6C: ; 0x02054B6C + cmp r0, #0x70 + bne _02054B74 + mov r0, #0x1 + bx lr +_02054B74: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054B78 +sub_02054B78: ; 0x02054B78 + add r0, #0x8f + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0xc + bhi _02054B86 + mov r0, #0x1 + bx lr +_02054B86: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02054B8C +sub_02054B8C: ; 0x02054B8C + add r0, #0x8d + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r3, #0x0 + cmp r0, #0x9 + bhi _02054BA6 + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r0 + ldr r0, _02054BAC ; =0x00000221 + tst r0, r2 + beq _02054BA6 + add r3, r1, #0x0 +_02054BA6: + add r0, r3, #0x0 + bx lr + nop +_02054BAC: .word 0x00000221 + + thumb_func_start sub_02054BB0 +sub_02054BB0: ; 0x02054BB0 + add r0, #0x8c + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r3, #0x0 + cmp r0, #0x9 + bhi _02054BCA + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r0 + ldr r0, _02054BD0 ; =0x00000221 + tst r0, r2 + beq _02054BCA + add r3, r1, #0x0 +_02054BCA: + add r0, r3, #0x0 + bx lr + nop +_02054BD0: .word 0x00000221 + + thumb_func_start sub_02054BD4 +sub_02054BD4: ; 0x02054BD4 + cmp r0, #0x75 + bne _02054BDC + mov r0, #0x1 + bx lr +_02054BDC: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054BE0 +sub_02054BE0: ; 0x02054BE0 + add r0, #0x8a + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x3 + bhi _02054BEE + mov r0, #0x1 + bx lr +_02054BEE: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02054BF4 +sub_02054BF4: ; 0x02054BF4 + add r0, #0x86 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x3 + bhi _02054C02 + mov r0, #0x1 + bx lr +_02054C02: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02054C08 +sub_02054C08: ; 0x02054C08 + cmp r0, #0xff + bne _02054C10 + mov r0, #0x1 + bx lr +_02054C10: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02054C14 +sub_02054C14: ; 0x02054C14 + push {r4, lr} + mov r1, #0xa + add r4, r0, #0x0 + blx sub_020EBE8C + cmp r0, #0x0 + bne _02054C26 + mov r0, #0x1 + pop {r4, pc} +_02054C26: + add r0, r4, #0x0 + mov r1, #0x64 + blx sub_020EBE8C + cmp r0, #0x0 + bne _02054C36 + mov r0, #0x2 + pop {r4, pc} +_02054C36: + mov r1, #0xfa + add r0, r4, #0x0 + lsl r1, r1, #0x2 + blx sub_020EBE8C + cmp r0, #0x0 + bne _02054C48 + mov r0, #0x3 + pop {r4, pc} +_02054C48: + ldr r1, _02054C9C ; =0x00002710 + add r0, r4, #0x0 + blx sub_020EBE8C + cmp r0, #0x0 + bne _02054C58 + mov r0, #0x4 + pop {r4, pc} +_02054C58: + ldr r1, _02054CA0 ; =0x000186A0 + add r0, r4, #0x0 + blx sub_020EBE8C + cmp r0, #0x0 + bne _02054C68 + mov r0, #0x5 + pop {r4, pc} +_02054C68: + ldr r1, _02054CA4 ; =0x000F4240 + add r0, r4, #0x0 + blx sub_020EBE8C + cmp r0, #0x0 + bne _02054C78 + mov r0, #0x6 + pop {r4, pc} +_02054C78: + ldr r1, _02054CA8 ; =0x00989680 + add r0, r4, #0x0 + blx sub_020EBE8C + cmp r0, #0x0 + bne _02054C88 + mov r0, #0x7 + pop {r4, pc} +_02054C88: + ldr r1, _02054CAC ; =0x05F5E100 + add r0, r4, #0x0 + blx sub_020EBE8C + cmp r0, #0x0 + bne _02054C98 + mov r0, #0x8 + pop {r4, pc} +_02054C98: + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_02054C9C: .word 0x00002710 +_02054CA0: .word 0x000186A0 +_02054CA4: .word 0x000F4240 +_02054CA8: .word 0x00989680 +_02054CAC: .word 0x05F5E100 + + thumb_func_start sub_02054CB0 +sub_02054CB0: ; 0x02054CB0 + mov r1, #0x52 + lsl r1, r1, #0x2 + cmp r0, r1 + blo _02054CC2 + add r1, #0x63 + cmp r0, r1 + bhi _02054CC2 + mov r0, #0x1 + bx lr +_02054CC2: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02054CC8 +sub_02054CC8: ; 0x02054CC8 + cmp r0, #0xe + bhi _02054CD0 + mov r0, #0x6 + bx lr +_02054CD0: + cmp r0, #0x18 + bhi _02054CD8 + mov r0, #0x7 + bx lr +_02054CD8: + cmp r0, #0x27 + bhi _02054CE0 + mov r0, #0x8 + bx lr +_02054CE0: + cmp r0, #0x3b + bhi _02054CE8 + mov r0, #0x9 + bx lr +_02054CE8: + cmp r0, #0x59 + bhi _02054CF0 + mov r0, #0xa + bx lr +_02054CF0: + cmp r0, #0x72 + bhi _02054CF8 + mov r0, #0xb + bx lr +_02054CF8: + cmp r0, #0x86 + bhi _02054D00 + mov r0, #0xc + bx lr +_02054D00: + cmp r0, #0x90 + bhi _02054D08 + mov r0, #0xd + bx lr +_02054D08: + cmp r0, #0x95 + bhi _02054D10 + mov r0, #0xe + bx lr +_02054D10: + cmp r1, #0x0 + beq _02054D18 + mov r0, #0x4 + bx lr +_02054D18: + mov r0, #0x5 + bx lr + + thumb_func_start sub_02054D1C +sub_02054D1C: ; 0x02054D1C + cmp r0, #0x27 + bhi _02054D24 + mov r0, #0x13 + bx lr +_02054D24: + cmp r0, #0x3b + bhi _02054D2C + mov r0, #0x14 + bx lr +_02054D2C: + cmp r0, #0x59 + bhi _02054D34 + mov r0, #0x15 + bx lr +_02054D34: + cmp r0, #0x77 + bhi _02054D3C + mov r0, #0x16 + bx lr +_02054D3C: + cmp r0, #0x95 + bhi _02054D44 + mov r0, #0x17 + bx lr +_02054D44: + cmp r0, #0xbd + bhi _02054D4C + mov r0, #0x18 + bx lr +_02054D4C: + cmp r0, #0xe5 + bhi _02054D54 + mov r0, #0x19 + bx lr +_02054D54: + ldr r2, _02054DE8 ; =0x0000010D + cmp r0, r2 + bhi _02054D5E + mov r0, #0x1a + bx lr +_02054D5E: + add r3, r2, #0x0 + add r3, #0x28 + cmp r0, r3 + bhi _02054D6A + mov r0, #0x1b + bx lr +_02054D6A: + add r3, r2, #0x0 + add r3, #0x50 + cmp r0, r3 + bhi _02054D76 + mov r0, #0x1c + bx lr +_02054D76: + add r3, r2, #0x0 + add r3, #0x6e + cmp r0, r3 + bhi _02054D82 + mov r0, #0x1d + bx lr +_02054D82: + add r3, r2, #0x0 + add r3, #0x8c + cmp r0, r3 + bhi _02054D8E + mov r0, #0x1e + bx lr +_02054D8E: + add r3, r2, #0x0 + add r3, #0xa0 + cmp r0, r3 + bhi _02054DA2 + cmp r1, #0x0 + beq _02054D9E + mov r0, #0x20 + bx lr +_02054D9E: + mov r0, #0x1f + bx lr +_02054DA2: + add r3, r2, #0x0 + add r3, #0xb4 + cmp r0, r3 + bhi _02054DAE + mov r0, #0x21 + bx lr +_02054DAE: + add r3, r2, #0x0 + add r3, #0xbe + cmp r0, r3 + bhi _02054DBA + mov r0, #0x22 + bx lr +_02054DBA: + add r3, r2, #0x0 + add r3, #0xc8 + cmp r0, r3 + bhi _02054DC6 + mov r0, #0x23 + bx lr +_02054DC6: + add r3, r2, #0x0 + add r3, #0xce + cmp r0, r3 + bhi _02054DD2 + mov r0, #0x24 + bx lr +_02054DD2: + add r2, #0xd4 + cmp r0, r2 + bhi _02054DDC + mov r0, #0x25 + bx lr +_02054DDC: + cmp r1, #0x0 + beq _02054DE4 + mov r0, #0x27 + bx lr +_02054DE4: + mov r0, #0x26 + bx lr + .balign 4 +_02054DE8: .word 0x0000010D + + thumb_func_start sub_02054DEC +sub_02054DEC: ; 0x02054DEC + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_0206BB1C + bl sub_0206B9AC + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + ldr r4, _02054E2C ; =0x00000000 + beq _02054E28 + mov r7, #0x4c +_02054E02: + add r0, r6, #0x0 + bl sub_0206BB1C + add r1, r4, #0x0 + bl sub_0206B9B0 + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _02054E1E + add r0, r4, #0x0 + pop {r3-r7, pc} +_02054E1E: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r5 + blo _02054E02 +_02054E28: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02054E2C: .word 0x00000000 + + thumb_func_start sub_02054E30 +sub_02054E30: ; 0x02054E30 + push {r3-r7, lr} + sub sp, #0x10 + mov r7, #0x0 + bl sub_0206BB1C + str r0, [sp, #0x0] + bl sub_0206B9AC + add r4, r0, #0x0 + add r6, r7, #0x0 + cmp r4, #0x0 + ble _02054E64 + add r5, sp, #0x4 +_02054E4A: + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x0] + add r6, r6, #0x1 + add r5, r5, #0x2 + cmp r6, r4 + blt _02054E4A +_02054E64: + ldr r2, _02054E9C ; =0x020F5D14 + mov r6, #0x0 +_02054E68: + mov r1, #0x0 + cmp r4, #0x0 + ble _02054E84 + ldrh r5, [r2, #0x0] + add r3, sp, #0x4 +_02054E72: + ldrh r0, [r3, #0x0] + cmp r0, r5 + bne _02054E7C + add r7, r7, #0x1 + b _02054E84 +_02054E7C: + add r1, r1, #0x1 + add r3, r3, #0x2 + cmp r1, r4 + blt _02054E72 +_02054E84: + add r6, r6, #0x1 + add r2, r2, #0x2 + cmp r6, #0x3 + blt _02054E68 + cmp r7, #0x3 + bne _02054E96 + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_02054E96: + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02054E9C: .word 0x020F5D14 + + thumb_func_start sub_02054EA0 +sub_02054EA0: ; 0x02054EA0 + push {r4-r5, lr} + sub sp, #0xc + add r4, r0, #0x0 + bl sub_02046528 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0x2 + lsl r0, r0, #0xe + str r0, [sp, #0x0] + str r0, [sp, #0x8] + ldrh r0, [r4, #0xe] + ldr r5, [r4, #0x4] + bl sub_0201B93C + asr r1, r0, #0x1f + asr r3, r5, #0x1f + add r2, r5, #0x0 + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [sp, #0x0] + ldrh r0, [r4, #0xe] + ldr r5, [r4, #0x8] + bl sub_0201B93C + asr r1, r0, #0x1f + asr r3, r5, #0x1f + add r2, r5, #0x0 + blx sub_020EBC30 + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [sp, #0x8] + str r3, [sp, #0x4] + ldr r0, [r4, #0x0] + add r1, sp, #0x0 + bl sub_02058BB4 + ldrh r1, [r4, #0xe] + ldrh r0, [r4, #0x10] + add r0, r1, r0 + strh r0, [r4, #0xe] + mov r0, #0x5a + ldrh r1, [r4, #0xe] + lsl r0, r0, #0x2 + cmp r1, r0 + blo _02054F28 + mov r0, #0x0 + strh r0, [r4, #0xe] + ldrh r0, [r4, #0xc] + sub r0, r0, #0x1 + strh r0, [r4, #0xc] +_02054F28: + ldrh r0, [r4, #0xc] + cmp r0, #0x0 + bne _02054F4A + mov r0, #0x0 + str r0, [sp, #0x8] + str r0, [sp, #0x4] + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + add r1, sp, #0x0 + bl sub_02058BB4 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0xc + mov r0, #0x1 + pop {r4-r5, pc} +_02054F4A: + mov r0, #0x0 + add sp, #0xc + pop {r4-r5, pc} + + thumb_func_start sub_02054F50 +sub_02054F50: ; 0x02054F50 + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02046528 + str r0, [sp, #0x0] + mov r0, #0xb + mov r1, #0x14 + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x14 + add r4, r0, #0x0 + blx sub_020CE34C + add r0, sp, #0x8 + ldrh r0, [r0, #0x10] + cmp r0, #0x0 + beq _02054F8A + lsl r0, r0, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _02054F98 +_02054F8A: + lsl r0, r0, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_02054F98: + blx sub_020EB4C0 + str r0, [r4, #0x4] + add r0, sp, #0x8 + ldrh r0, [r0, #0x14] + cmp r0, #0x0 + beq _02054FB8 + lsl r0, r0, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _02054FC6 +_02054FB8: + lsl r0, r0, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_02054FC6: + blx sub_020EB4C0 + str r0, [r4, #0x8] + strh r6, [r4, #0xc] + strh r7, [r4, #0x10] + ldr r0, [sp, #0x0] + str r5, [r4, #0x0] + ldr r0, [r0, #0x10] + ldr r1, _02054FE0 ; =sub_02054EA0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + .balign 4 +_02054FE0: .word sub_02054EA0 + 1 + + thumb_func_start sub_02054FE4 +sub_02054FE4: ; 0x02054FE4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldrb r1, [r4, #0x9] + ldr r0, [r4, #0x0] + bl sub_0205889C + ldrb r1, [r4, #0x8] + add r0, r1, #0x1 + strb r0, [r4, #0x8] + ldrh r0, [r4, #0x6] + cmp r1, r0 + blt _02055028 + ldrb r1, [r4, #0x9] + mov r0, #0x1 + eor r0, r1 + strb r0, [r4, #0x9] + mov r0, #0x0 + strb r0, [r4, #0x8] + ldrh r1, [r4, #0x4] + sub r0, r1, #0x1 + strh r0, [r4, #0x4] + cmp r1, #0x0 + bne _02055028 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r4, pc} +_02055028: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205502C +sub_0205502C: ; 0x0205502C + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02046528 + str r0, [sp, #0x0] + mov r0, #0xb + mov r1, #0xc + bl sub_020169D8 + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0xc + blx sub_020CE34C + strh r6, [r4, #0x4] + strh r7, [r4, #0x6] + str r5, [r4, #0x0] + mov r0, #0x0 + strb r0, [r4, #0x9] + ldr r0, [sp, #0x0] + ldr r1, _02055064 ; =sub_02054FE4 + ldr r0, [r0, #0x10] + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + .balign 4 +_02055064: .word sub_02054FE4 + 1 + + thumb_func_start sub_02055068 +sub_02055068: ; 0x02055068 + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + str r3, [sp, #0x8] + bl sub_0205517C + ldr r1, [sp, #0x20] + ldr r2, [sp, #0x24] + ldr r3, [sp, #0x28] + add r6, r0, #0x0 + bl sub_0205519C + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x24] + bl sub_020555A0 + add r2, r0, #0x0 + str r5, [sp, #0x0] + ldr r3, [sp, #0x8] + add r0, r6, #0x0 + add r1, r7, #0x0 + str r4, [sp, #0x4] + bl sub_02055208 + add r0, r6, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_020550A4 +sub_020550A4: ; 0x020550A4 + push {r3-r7, lr} + add r4, r1, #0x0 + add r7, r0, #0x0 + add r6, r2, #0x0 + bl sub_0205517C + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020554C8 + str r0, [sp, #0x0] + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + add r2, r6, #0x0 + add r3, r4, #0x0 + bl sub_0205519C + add r0, r7, #0x0 + bl sub_020552E4 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl sub_020555A0 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058454 + mov r1, #0x9 + add r0, r4, #0x0 + lsl r1, r1, #0xa + bl sub_02058410 + mov r1, #0x6 + add r0, r4, #0x0 + lsl r1, r1, #0x6 + bl sub_02058418 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02058AC8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205539C + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02055108 +sub_02055108: ; 0x02055108 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + bne _02055118 + bl sub_02020C2C +_02055118: + add r0, r4, #0x0 + bl sub_02058578 + add r0, r5, #0x0 + bl sub_021EDBC8 + add r0, r5, #0x0 + bl sub_020553C4 + cmp r0, #0x2 + bne _0205515C + add r0, r5, #0x0 + bl sub_02055320 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205532C + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_020552F8 + add r3, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_0224ABAC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02055450 +_0205515C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02055160 +sub_02055160: ; 0x02055160 + ldr r3, _02055164 ; =sub_02016A18 + bx r3 + .balign 4 +_02055164: .word sub_02016A18 + 1 + + thumb_func_start sub_02055168 +sub_02055168: ; 0x02055168 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020553A0 + bl sub_02057654 + add r0, r4, #0x0 + bl sub_02055160 + pop {r4, pc} + + thumb_func_start sub_0205517C +sub_0205517C: ; 0x0205517C + push {r4, lr} + mov r0, #0xb + mov r1, #0x3c + bl sub_02016998 + add r4, r0, #0x0 + bne _0205518E + bl sub_02020C2C +_0205518E: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x3c + blx sub_020DF4A4 + add r0, r4, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205519C +sub_0205519C: ; 0x0205519C + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r1, r3, #0x0 + add r6, r2, #0x0 + bl sub_02055458 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205536C + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02055374 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020553A8 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020553E4 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020553DC + add r0, r5, #0x0 + bl sub_02055410 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + bl sub_0205542C + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + bl sub_02055434 + add r0, r5, #0x0 + mov r1, #0xff + bl sub_02055460 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020556C8 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205574C + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02055208 +sub_02055208: ; 0x02055208 + push {r4-r5, lr} + sub sp, #0xc + add r4, r0, #0x0 + str r2, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + add r0, r1, #0x0 + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x1c] + bl sub_0205753C + add r5, r0, #0x0 + bne _02055228 + bl sub_02020C2C +_02055228: + add r0, r5, #0x0 + mov r1, #0xff + bl sub_02058444 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058484 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205848C + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058494 + mov r1, #0x0 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_020584EC + add r0, r5, #0x0 + mov r1, #0x0 + mov r2, #0x1 + bl sub_020584EC + add r0, r5, #0x0 + mov r1, #0x0 + mov r2, #0x2 + bl sub_020584EC + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + bl sub_02058534 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + bl sub_0205853C + mov r1, #0x9 + add r0, r5, #0x0 + lsl r1, r1, #0xa + bl sub_02058410 + mov r1, #0x6 + add r0, r5, #0x0 + lsl r1, r1, #0x6 + bl sub_02058418 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02058AC8 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0205539C + add sp, #0xc + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_020552A4 +sub_020552A4: ; 0x020552A4 + push {r3-r7, lr} + sub sp, #0x8 + mov r1, #0x0 + str r1, [sp, #0x4] + str r1, [sp, #0x0] + add r1, sp, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + add r5, r0, #0x0 + bl sub_020580F4 + cmp r0, #0x0 + beq _020552DE + add r4, sp, #0x0 + add r6, sp, #0x4 + mov r7, #0x1 +_020552C4: + ldr r0, [sp, #0x0] + bl sub_02058480 + cmp r0, #0x1 + beq _020552DE + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl sub_020580F4 + cmp r0, #0x0 + bne _020552C4 +_020552DE: + ldr r0, [sp, #0x0] + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_020552E4 +sub_020552E4: ; 0x020552E4 + push {r4, lr} + bl sub_020552A4 + add r4, r0, #0x0 + bne _020552F2 + bl sub_02020C2C +_020552F2: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020552F8 +sub_020552F8: ; 0x020552F8 + push {r3, lr} + bl sub_020553A0 + bl sub_020584C4 + pop {r3, pc} + + thumb_func_start sub_02055304 +sub_02055304: ; 0x02055304 + push {r4, lr} + add r4, r1, #0x0 + bl sub_020553A0 + add r1, r4, #0x0 + bl sub_020584AC + pop {r4, pc} + + thumb_func_start sub_02055314 +sub_02055314: ; 0x02055314 + push {r3, lr} + bl sub_020553A0 + bl sub_020584D4 + pop {r3, pc} + + thumb_func_start sub_02055320 +sub_02055320: ; 0x02055320 + push {r3, lr} + bl sub_020553A0 + bl sub_02058B2C + pop {r3, pc} + + thumb_func_start sub_0205532C +sub_0205532C: ; 0x0205532C + push {r3, lr} + bl sub_020553A0 + bl sub_02058B4C + pop {r3, pc} + + thumb_func_start sub_02055338 +sub_02055338: ; 0x02055338 + push {r3, lr} + bl sub_020553A0 + bl sub_02058B14 + pop {r3, pc} + + thumb_func_start sub_02055344 +sub_02055344: ; 0x02055344 + push {r3, lr} + bl sub_020553A0 + bl sub_02058B24 + pop {r3, pc} + + thumb_func_start sub_02055350 +sub_02055350: ; 0x02055350 + push {r4, lr} + add r4, r1, #0x0 + bl sub_020553A0 + add r1, r4, #0x0 + bl sub_02058B5C + pop {r4, pc} + + thumb_func_start sub_02055360 +sub_02055360: ; 0x02055360 + push {r3, lr} + bl sub_020553A4 + bl sub_02058B7C + pop {r3, pc} + + thumb_func_start sub_0205536C +sub_0205536C: ; 0x0205536C + str r1, [r0, #0x10] + bx lr + + thumb_func_start sub_02055370 +sub_02055370: ; 0x02055370 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start sub_02055374 +sub_02055374: ; 0x02055374 + str r1, [r0, #0x14] + bx lr + + thumb_func_start sub_02055378 +sub_02055378: ; 0x02055378 + ldr r0, [r0, #0x14] + bx lr + + thumb_func_start sub_0205537C +sub_0205537C: ; 0x0205537C + push {r4, lr} + add r4, r1, #0x0 + bl sub_020553A0 + cmp r4, #0x1 + bne _02055392 + mov r1, #0x2 + lsl r1, r1, #0x8 + bl sub_02058418 + pop {r4, pc} +_02055392: + mov r1, #0x2 + lsl r1, r1, #0x8 + bl sub_02058410 + pop {r4, pc} + + thumb_func_start sub_0205539C +sub_0205539C: ; 0x0205539C + str r1, [r0, #0x2c] + bx lr + + thumb_func_start sub_020553A0 +sub_020553A0: ; 0x020553A0 + ldr r0, [r0, #0x2c] + bx lr + + thumb_func_start sub_020553A4 +sub_020553A4: ; 0x020553A4 + ldr r0, [r0, #0x2c] + bx lr + + thumb_func_start sub_020553A8 +sub_020553A8: ; 0x020553A8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blt _020553B6 + bl sub_02020C2C +_020553B6: + add r0, r5, #0x0 + add r1, r4, #0x0 + str r4, [r5, #0x18] + bl sub_020554DC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020553C4 +sub_020553C4: ; 0x020553C4 + push {r4, lr} + add r4, r0, #0x0 + bne _020553CE + bl sub_02020C2C +_020553CE: + ldr r0, [r4, #0x18] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020553D4 +sub_020553D4: ; 0x020553D4 + ldr r2, [r0, #0x4] + orr r1, r2 + str r1, [r0, #0x4] + bx lr + + thumb_func_start sub_020553DC +sub_020553DC: ; 0x020553DC + str r1, [r0, #0x4] + bx lr + + thumb_func_start sub_020553E0 +sub_020553E0: ; 0x020553E0 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_020553E4 +sub_020553E4: ; 0x020553E4 + str r1, [r0, #0x1c] + bx lr + + thumb_func_start sub_020553E8 +sub_020553E8: ; 0x020553E8 + ldr r0, [r0, #0x1c] + bx lr + + thumb_func_start sub_020553EC +sub_020553EC: ; 0x020553EC + ldr r2, [r0, #0x0] + orr r1, r2 + str r1, [r0, #0x0] + bx lr + + thumb_func_start sub_020553F4 +sub_020553F4: ; 0x020553F4 + ldr r2, [r0, #0x0] + mvn r1, r1 + and r1, r2 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02055400 +sub_02055400: ; 0x02055400 + ldr r0, [r0, #0x0] + and r0, r1 + bx lr + .balign 4 + + thumb_func_start sub_02055408 +sub_02055408: ; 0x02055408 + ldr r0, [r0, #0x20] + bx lr + + thumb_func_start sub_0205540C +sub_0205540C: ; 0x0205540C + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_02055410 +sub_02055410: ; 0x02055410 + ldr r3, _02055418 ; =sub_020556F4 + mov r1, #0x0 + str r1, [r0, #0x20] + bx r3 + .balign 4 +_02055418: .word sub_020556F4 + 1 + + thumb_func_start sub_0205541C +sub_0205541C: ; 0x0205541C + ldr r3, [r0, #0x20] + add r1, r3, r1 + str r1, [r0, #0x20] + cmp r1, r2 + ble _02055428 + str r2, [r0, #0x20] +_02055428: + ldr r0, [r0, #0x20] + bx lr + + thumb_func_start sub_0205542C +sub_0205542C: ; 0x0205542C + str r1, [r0, #0x24] + bx lr + + thumb_func_start sub_02055430 +sub_02055430: ; 0x02055430 + ldr r0, [r0, #0x24] + bx lr + + thumb_func_start sub_02055434 +sub_02055434: ; 0x02055434 + str r1, [r0, #0x28] + bx lr + + thumb_func_start sub_02055438 +sub_02055438: ; 0x02055438 + ldr r0, [r0, #0x28] + bx lr + + thumb_func_start sub_0205543C +sub_0205543C: ; 0x0205543C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl sub_0205542C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02055434 + pop {r3-r5, pc} + + thumb_func_start sub_02055450 +sub_02055450: ; 0x02055450 + str r1, [r0, #0x30] + bx lr + + thumb_func_start sub_02055454 +sub_02055454: ; 0x02055454 + ldr r0, [r0, #0x30] + bx lr + + thumb_func_start sub_02055458 +sub_02055458: ; 0x02055458 + str r1, [r0, #0x34] + bx lr + + thumb_func_start sub_0205545C +sub_0205545C: ; 0x0205545C + ldr r0, [r0, #0x34] + bx lr + + thumb_func_start sub_02055460 +sub_02055460: ; 0x02055460 + str r1, [r0, #0x8] + bx lr + + thumb_func_start sub_02055464 +sub_02055464: ; 0x02055464 + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start sub_02055468 +sub_02055468: ; 0x02055468 + mov r1, #0x0 + strh r1, [r0, #0x0] + strh r1, [r0, #0x2] + str r1, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start sub_02055474 +sub_02055474: ; 0x02055474 + cmp r0, #0x0 + beq _02055482 + ldrh r0, [r0, #0x2] + cmp r0, #0x1 + bne _02055482 + mov r0, #0x1 + bx lr +_02055482: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02055488 +sub_02055488: ; 0x02055488 + cmp r1, #0x1 + bne _02055492 + mov r1, #0x1 + strh r1, [r0, #0x2] + bx lr +_02055492: + mov r1, #0x0 + strh r1, [r0, #0x2] + bx lr + + thumb_func_start sub_02055498 +sub_02055498: ; 0x02055498 + cmp r0, #0x0 + bne _020554A0 + mov r0, #0x0 + bx lr +_020554A0: + ldrh r0, [r0, #0x0] + bx lr + + thumb_func_start sub_020554A4 +sub_020554A4: ; 0x020554A4 + cmp r0, #0x0 + beq _020554AA + strh r1, [r0, #0x0] +_020554AA: + bx lr + + thumb_func_start sub_020554AC +sub_020554AC: ; 0x020554AC + push {r4, lr} + add r4, r1, #0x0 + bl sub_0205545C + add r1, r4, #0x0 + bl sub_020554A4 + pop {r4, pc} + + thumb_func_start sub_020554BC +sub_020554BC: ; 0x020554BC + push {r3, lr} + bl sub_0205545C + bl sub_02055498 + pop {r3, pc} + + thumb_func_start sub_020554C8 +sub_020554C8: ; 0x020554C8 + cmp r0, #0x0 + beq _020554D0 + ldr r0, [r0, #0x4] + bx lr +_020554D0: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020554D4 +sub_020554D4: ; 0x020554D4 + cmp r0, #0x0 + beq _020554DA + str r1, [r0, #0x4] +_020554DA: + bx lr + + thumb_func_start sub_020554DC +sub_020554DC: ; 0x020554DC + push {r4, lr} + add r4, r1, #0x0 + bl sub_0205545C + add r1, r4, #0x0 + bl sub_020554D4 + pop {r4, pc} + + thumb_func_start sub_020554EC +sub_020554EC: ; 0x020554EC + push {r4-r6, lr} + add r4, r1, #0x0 + add r6, r2, #0x0 + add r5, r0, #0x0 + bl sub_020553A0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02058DBC + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205536C + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02055374 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02055514 +sub_02055514: ; 0x02055514 + push {r3-r7, lr} + add r6, r1, #0x0 + add r7, r2, #0x0 + add r5, r0, #0x0 + add r4, r3, #0x0 + bl sub_020553A0 + add r1, r6, #0x0 + mov r2, #0x0 + add r3, r7, #0x0 + str r4, [sp, #0x0] + bl sub_02058E28 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205536C + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02055374 + pop {r3-r7, pc} + + thumb_func_start sub_02055540 +sub_02055540: ; 0x02055540 + push {r4-r5, lr} + sub sp, #0xc + add r5, r1, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + add r1, sp, #0x0 + bl sub_02058B5C + add r0, r4, #0x0 + add r1, sp, #0x0 + str r5, [sp, #0x4] + bl sub_02058B6C + add sp, #0xc + pop {r4-r5, pc} + + thumb_func_start sub_02055560 +sub_02055560: ; 0x02055560 + push {r4, lr} + add r4, r1, #0x0 + bl sub_020553A0 + cmp r4, #0x1 + bne _02055574 + mov r1, #0x0 + bl sub_02058960 + pop {r4, pc} +_02055574: + mov r1, #0x1 + bl sub_02058960 + pop {r4, pc} + + thumb_func_start sub_0205557C +sub_0205557C: ; 0x0205557C + push {r3-r5, lr} + add r5, r1, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + cmp r5, #0x1 + bne _02055598 + mov r1, #0x0 + bl sub_02058960 + add r0, r4, #0x0 + bl sub_02059D1C + pop {r3-r5, pc} +_02055598: + mov r1, #0x1 + bl sub_02058960 + pop {r3-r5, pc} + + thumb_func_start sub_020555A0 +sub_020555A0: ; 0x020555A0 + push {r3, lr} + cmp r1, #0x0 + bne _020555F2 + cmp r0, #0x9 + bhi _0205563E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r2, #0 + lsl r6, r2, #0 + lsl r2, r3, #0 + lsl r6, r3, #0 + lsl r2, r4, #0 + lsl r6, r4, #0 + lsl r2, r5, #0 + lsl r6, r5, #0 + lsl r2, r6, #0 + lsl r6, r6, #0 + mov r0, #0x0 + pop {r3, pc} +_020555CE: + .byte 0x15, 0x20 + .byte 0x08, 0xBD, 0xB2, 0x20, 0x08, 0xBD, 0xB0, 0x20, 0x08, 0xBD, 0xB4, 0x20, 0x08, 0xBD, 0xBA, 0x20 + .byte 0x08, 0xBD, 0xBC, 0x20, 0x08, 0xBD, 0xC4, 0x20, 0x08, 0xBD, 0xC6, 0x20, 0x08, 0xBD, 0xC8, 0x20 + .byte 0x08, 0xBD +_020555F2: + cmp r0, #0x9 + bhi _0205563E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r2, #0 + lsl r6, r2, #0 + lsl r2, r3, #0 + lsl r6, r3, #0 + lsl r2, r4, #0 + lsl r6, r4, #0 + lsl r2, r5, #0 + lsl r6, r5, #0 + lsl r2, r6, #0 + lsl r6, r6, #0 + mov r0, #0x61 + pop {r3, pc} +_0205561A: + .byte 0x62, 0x20, 0x08, 0xBD, 0xB3, 0x20 + .byte 0x08, 0xBD, 0xB1, 0x20, 0x08, 0xBD, 0xB5, 0x20, 0x08, 0xBD, 0xBB, 0x20, 0x08, 0xBD, 0xBD, 0x20 + .byte 0x08, 0xBD, 0xC5, 0x20, 0x08, 0xBD, 0xC7, 0x20, 0x08, 0xBD, 0xC9, 0x20, 0x08, 0xBD +_0205563E: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02055648 +sub_02055648: ; 0x02055648 + push {r3, lr} + cmp r0, #0x9 + bhi _02055690 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r2, #0 + lsl r6, r2, #0 + lsl r2, r3, #0 + lsl r4, r6, #0 + lsl r6, r3, #0 + lsl r4, r6, #0 + lsl r2, r4, #0 + lsl r6, r4, #0 + lsl r2, r5, #0 + lsl r6, r5, #0 + mov r0, #0x1 + pop {r3, pc} +_02055672: + .byte 0x02, 0x20, 0x08, 0xBD, 0x04, 0x20, 0x08, 0xBD, 0x10, 0x20, 0x08, 0xBD, 0x20, 0x20 + .byte 0x08, 0xBD, 0x40, 0x20, 0x08, 0xBD, 0x80, 0x20, 0x08, 0xBD, 0x01, 0x20, 0x00, 0x02, 0x08, 0xBD +_02055690: + bl sub_02020C2C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_02055698 +sub_02055698: ; 0x02055698 + ldr r0, [r0, #0x38] + bx lr + + thumb_func_start sub_0205569C +sub_0205569C: ; 0x0205569C + push {r3, lr} + cmp r1, #0x1 + bne _020556AA + mov r1, #0x1 + bl sub_020553EC + pop {r3, pc} +_020556AA: + mov r1, #0x1 + bl sub_020553F4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020556B4 +sub_020556B4: ; 0x020556B4 + push {r3, lr} + mov r1, #0x1 + bl sub_02055400 + cmp r0, #0x0 + beq _020556C4 + mov r0, #0x1 + pop {r3, pc} +_020556C4: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_020556C8 +sub_020556C8: ; 0x020556C8 + push {r3, lr} + cmp r1, #0x1 + bne _020556D6 + mov r1, #0x2 + bl sub_020553EC + pop {r3, pc} +_020556D6: + mov r1, #0x2 + bl sub_020553F4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020556E0 +sub_020556E0: ; 0x020556E0 + push {r3, lr} + mov r1, #0x2 + bl sub_02055400 + cmp r0, #0x0 + beq _020556F0 + mov r0, #0x1 + pop {r3, pc} +_020556F0: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_020556F4 +sub_020556F4: ; 0x020556F4 + push {r3, lr} + cmp r1, #0x1 + bne _02055702 + mov r1, #0x4 + bl sub_020553EC + pop {r3, pc} +_02055702: + mov r1, #0x4 + bl sub_020553F4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205570C +sub_0205570C: ; 0x0205570C + push {r3, lr} + mov r1, #0x4 + bl sub_02055400 + cmp r0, #0x0 + beq _0205571C + mov r0, #0x1 + pop {r3, pc} +_0205571C: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02055720 +sub_02055720: ; 0x02055720 + push {r3, lr} + cmp r1, #0x1 + bne _0205572E + mov r1, #0x8 + bl sub_020553EC + pop {r3, pc} +_0205572E: + mov r1, #0x8 + bl sub_020553F4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02055738 +sub_02055738: ; 0x02055738 + push {r3, lr} + mov r1, #0x8 + bl sub_02055400 + cmp r0, #0x0 + beq _02055748 + mov r0, #0x1 + pop {r3, pc} +_02055748: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0205574C +sub_0205574C: ; 0x0205574C + push {r3, lr} + cmp r1, #0x1 + bne _0205575A + mov r1, #0x10 + bl sub_020553EC + pop {r3, pc} +_0205575A: + mov r1, #0x10 + bl sub_020553F4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02055764 +sub_02055764: ; 0x02055764 + push {r3, lr} + mov r1, #0x10 + bl sub_02055400 + cmp r0, #0x0 + beq _02055774 + mov r0, #0x1 + pop {r3, pc} +_02055774: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02055778 +sub_02055778: ; 0x02055778 + push {r3, lr} + cmp r1, #0x1 + bne _02055786 + mov r1, #0x20 + bl sub_020553EC + pop {r3, pc} +_02055786: + mov r1, #0x20 + bl sub_020553F4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02055790 +sub_02055790: ; 0x02055790 + push {r3, lr} + mov r1, #0x20 + bl sub_02055400 + cmp r0, #0x0 + beq _020557A0 + mov r0, #0x1 + pop {r3, pc} +_020557A0: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_020557A4 +sub_020557A4: ; 0x020557A4 + ldr r3, _020557AC ; =sub_020553EC + mov r1, #0x40 + bx r3 + nop +_020557AC: .word sub_020553EC + 1 + + thumb_func_start sub_020557B0 +sub_020557B0: ; 0x020557B0 + ldr r3, _020557B8 ; =sub_020553F4 + mov r1, #0x40 + bx r3 + nop +_020557B8: .word sub_020553F4 + 1 + + thumb_func_start sub_020557BC +sub_020557BC: ; 0x020557BC + push {r3, lr} + mov r1, #0x40 + bl sub_02055400 + cmp r0, #0x0 + beq _020557CC + mov r0, #0x1 + pop {r3, pc} +_020557CC: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_020557D0 +sub_020557D0: ; 0x020557D0 + push {r3, lr} + cmp r1, #0x1 + bne _020557DE + mov r1, #0x80 + bl sub_020553EC + pop {r3, pc} +_020557DE: + mov r1, #0x80 + bl sub_020553F4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020557E8 +sub_020557E8: ; 0x020557E8 + ldr r3, _020557F0 ; =sub_02055400 + mov r1, #0x80 + bx r3 + nop +_020557F0: .word sub_02055400 + 1 + + thumb_func_start sub_020557F4 +sub_020557F4: ; 0x020557F4 + push {r3-r7, lr} + add r7, r1, #0x0 + mov r1, #0x0 + add r4, r2, #0x0 + mvn r1, r1 + add r5, r0, #0x0 + add r6, r3, #0x0 + cmp r4, r1 + bne _02055812 + add r2, sp, #0x8 + ldrh r2, [r2, #0x10] + add r1, r6, #0x0 + bl sub_02057060 + add r4, r0, #0x0 +_02055812: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020563F0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020558A0 + cmp r0, #0x0 + beq _02055896 + add r3, sp, #0x8 + ldrh r3, [r3, #0x10] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02055900 + add r0, r5, #0x0 + bl sub_021E5FE0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02055BD4 + cmp r0, #0x1 + bne _0205584E + add r0, r5, #0x0 + bl sub_021E7138 + pop {r3-r7, pc} +_0205584E: + add r0, r5, #0x0 + bl sub_020553C4 + cmp r0, #0x0 + bne _02055878 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020561D0 + cmp r0, #0x0 + beq _0205586C + add r0, r5, #0x0 + bl sub_021E7138 + b _02055878 +_0205586C: + ldr r0, [sp, #0x1c] + cmp r0, #0x1 + bne _02055878 + add r0, r5, #0x0 + bl sub_021E70F0 +_02055878: + add r0, sp, #0x8 + ldrh r0, [r0, #0x10] + add r1, r7, #0x0 + add r2, r4, #0x0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r3, r6, #0x0 + bl sub_02056110 + add r0, r5, #0x0 + bl sub_02055928 + add r0, r5, #0x0 + bl sub_02055968 +_02055896: + pop {r3-r7, pc} + + thumb_func_start sub_02055898 +sub_02055898: ; 0x02055898 + ldr r3, _0205589C ; =sub_020558A0 + bx r3 + .balign 4 +_0205589C: .word sub_020558A0 + 1 + + thumb_func_start sub_020558A0 +sub_020558A0: ; 0x020558A0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020553A0 + add r6, r0, #0x0 + bl sub_0205AD98 + cmp r0, #0x1 + bne _020558B8 + mov r0, #0x1 + pop {r4-r6, pc} +_020558B8: + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _020558C4 + mov r0, #0x0 + pop {r4-r6, pc} +_020558C4: + add r0, r6, #0x0 + bl sub_020586F0 + bl sub_020570F0 + cmp r0, #0x1 + bne _020558FA + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_02056B74 + cmp r0, #0x0 + bne _020558E4 + mov r0, #0x1 + pop {r4-r6, pc} +_020558E4: + cmp r0, #0x20 + bne _020558F6 + add r0, r5, #0x0 + bl sub_020553C4 + cmp r0, #0x2 + bne _020558F6 + mov r0, #0x1 + pop {r4-r6, pc} +_020558F6: + mov r0, #0x0 + pop {r4-r6, pc} +_020558FA: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02055900 +sub_02055900: ; 0x02055900 + push {r4-r6, lr} + add r6, r3, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02057028 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02057044 + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205543C + add r0, r5, #0x0 + bl sub_020557B0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02055928 +sub_02055928: ; 0x02055928 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020557BC + cmp r0, #0x1 + bne _02055964 + add r0, r4, #0x0 + bl sub_02055370 + cmp r0, #0x1 + bne _02055964 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020556C8 + add r0, r4, #0x0 + bl sub_02055764 + cmp r0, #0x1 + bne _02055964 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0205574C + add r0, r4, #0x0 + bl sub_020553A0 + mov r1, #0x0 + bl sub_02058A18 +_02055964: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02055968 +sub_02055968: ; 0x02055968 + push {r4-r6, lr} + add r4, r0, #0x0 + bl sub_02055370 + cmp r0, #0x1 + bne _02055A20 + add r0, r4, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + bl sub_02058720 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r4, #0x0 + bl sub_020586F0 + bl sub_0205B020 + add r1, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + bne _0205599C + add r6, r5, #0x0 + b _020559A6 +_0205599C: + add r0, r4, #0x0 + bl sub_02059C90 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 +_020559A6: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02059B2C + cmp r0, #0x1 + bne _020559B8 + ldr r0, _02055A24 ; =0x0000061F + bl sub_020054C8 +_020559B8: + add r0, r5, #0x0 + bl sub_02054AF0 + cmp r0, #0x1 + bne _020559C8 + ldr r0, _02055A28 ; =0x00000641 + bl sub_020054C8 +_020559C8: + add r0, r5, #0x0 + bl sub_0205483C + cmp r0, #0x1 + bne _020559D8 + ldr r0, _02055A2C ; =0x00000642 + bl sub_020054C8 +_020559D8: + add r0, r5, #0x0 + bl sub_02054830 + add r0, r5, #0x0 + bl sub_02054974 + cmp r0, #0x1 + bne _020559F8 + add r0, r5, #0x0 + bl sub_02054984 + cmp r0, #0x1 + beq _020559F8 + ldr r0, _02055A30 ; =0x00000655 + bl sub_020054C8 +_020559F8: + add r0, r4, #0x0 + bl sub_020586F0 + bl sub_020570F0 + cmp r0, #0x0 + bne _02055A20 + add r0, r5, #0x0 + bl sub_02054798 + cmp r0, #0x1 + beq _02055A1A + add r0, r6, #0x0 + bl sub_02054798 + cmp r0, #0x1 + bne _02055A20 +_02055A1A: + ldr r0, _02055A34 ; =0x00000653 + bl sub_020054C8 +_02055A20: + pop {r4-r6, pc} + nop +_02055A24: .word 0x0000061F +_02055A28: .word 0x00000641 +_02055A2C: .word 0x00000642 +_02055A30: .word 0x00000655 +_02055A34: .word 0x00000653 + + thumb_func_start sub_02055A38 +sub_02055A38: ; 0x02055A38 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02055370 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02055378 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020553A0 + add r7, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02055374 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + bl sub_02055BEC + cmp r0, #0x0 + beq _02055A76 + cmp r0, #0x5 + beq _02055A76 + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_02055374 + pop {r3-r7, pc} +_02055A76: + add r0, r7, #0x0 + bl sub_0205AD98 + cmp r0, #0x0 + bne _02055AC2 + cmp r6, #0x0 + beq _02055B10 + cmp r6, #0x1 + beq _02055A8E + cmp r6, #0x2 + beq _02055AB8 + pop {r3-r7, pc} +_02055A8E: + add r0, r7, #0x0 + bl sub_020586F0 + bl sub_020570F0 + cmp r0, #0x1 + beq _02055B10 + cmp r4, #0x0 + beq _02055AA4 + cmp r4, #0x3 + bne _02055AAE +_02055AA4: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02055374 + pop {r3-r7, pc} +_02055AAE: + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_02055374 + pop {r3-r7, pc} +_02055AB8: + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_02055374 + pop {r3-r7, pc} +_02055AC2: + add r0, r7, #0x0 + bl sub_0205AE28 + cmp r0, #0x1 + bne _02055B10 + cmp r6, #0x0 + beq _02055B10 + cmp r6, #0x1 + beq _02055ADA + cmp r6, #0x2 + beq _02055AF6 + pop {r3-r7, pc} +_02055ADA: + cmp r4, #0x0 + beq _02055B10 + cmp r4, #0x3 + bne _02055AEC + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02055374 + pop {r3-r7, pc} +_02055AEC: + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_02055374 + pop {r3-r7, pc} +_02055AF6: + cmp r4, #0x0 + beq _02055B10 + cmp r4, #0x3 + bne _02055B08 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02055374 + pop {r3-r7, pc} +_02055B08: + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_02055374 +_02055B10: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02055B14 +sub_02055B14: ; 0x02055B14 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + bl sub_0205536C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02055374 + add r0, r4, #0x0 + bl sub_02055410 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02055B30 +sub_02055B30: ; 0x02055B30 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02055370 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02055378 + cmp r4, #0x0 + bne _02055B48 + mov r0, #0x1 + pop {r3-r5, pc} +_02055B48: + cmp r4, #0x2 + bne _02055B50 + mov r0, #0x1 + pop {r3-r5, pc} +_02055B50: + cmp r4, #0x1 + bne _02055B86 + cmp r0, #0x0 + beq _02055B5C + cmp r0, #0x3 + bne _02055B60 +_02055B5C: + mov r0, #0x1 + pop {r3-r5, pc} +_02055B60: + add r0, r5, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + bl sub_0205AD98 + cmp r0, #0x1 + bne _02055B74 + mov r0, #0x1 + pop {r3-r5, pc} +_02055B74: + add r0, r4, #0x0 + bl sub_020586F0 + bl sub_020570F0 + cmp r0, #0x1 + bne _02055B86 + mov r0, #0x1 + pop {r3-r5, pc} +_02055B86: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02055B8C +sub_02055B8C: ; 0x02055B8C + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + mov r1, #0x0 + bl sub_0205536C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02055374 + add r0, r4, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + add r1, r5, #0x0 + bl sub_020584AC + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02059C60 + add r0, r4, #0x0 + bl sub_0205AE80 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205AFDC + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205ADDC + pop {r3-r5, pc} + + thumb_func_start sub_02055BD4 +sub_02055BD4: ; 0x02055BD4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02055BEC + add r1, r0, #0x0 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_02055C4C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02055BEC +sub_02055BEC: ; 0x02055BEC + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r4, #0x0 + bl sub_020553A0 + bl sub_02058720 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_0205733C + cmp r0, #0x1 + bne _02055C10 + mov r0, #0x5 + pop {r3-r7, pc} +_02055C10: + add r0, r5, #0x0 + bl sub_020556E0 + cmp r0, #0x1 + bne _02055C1E + add r0, r4, #0x0 + pop {r3-r7, pc} +_02055C1E: + lsl r0, r7, #0x18 + ldr r5, _02055C44 ; =0x020F5D34 + lsr r6, r0, #0x18 +_02055C24: + ldr r1, [r5, #0x0] + add r0, r6, #0x0 + blx r1 + cmp r0, #0x1 + bne _02055C36 + ldr r0, _02055C48 ; =0x020F5D38 + lsl r1, r4, #0x3 + ldr r0, [r0, r1] + pop {r3-r7, pc} +_02055C36: + add r5, #0x8 + ldr r0, [r5, #0x0] + add r4, r4, #0x1 + cmp r0, #0x0 + bne _02055C24 + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02055C44: .word 0x020F5D34 +_02055C48: .word 0x020F5D38 + + thumb_func_start sub_02055C4C +sub_02055C4C: ; 0x02055C4C + push {r3, lr} + add r3, r1, #0x0 + add r1, r2, #0x0 + ldr r2, _02055C68 ; =0x020F5D1C + lsl r3, r3, #0x2 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0x1 + bne _02055C62 + mov r0, #0x1 + pop {r3, pc} +_02055C62: + mov r0, #0x0 + pop {r3, pc} + nop +_02055C68: .word 0x020F5D1C + + thumb_func_start sub_02055C6C +sub_02055C6C: ; 0x02055C6C + push {r3, lr} + bl sub_02055FFC + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02055C78 +sub_02055C78: ; 0x02055C78 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + bl sub_020584D4 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02056040 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02056B74 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205569C + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _02055D28 + add r0, r5, #0x0 + bl sub_02055FFC + cmp r7, #0x1 + beq _02055CCA + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020556C8 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205536C + mov r0, #0x0 + pop {r3-r7, pc} +_02055CCA: + add r0, r6, #0x0 + bl sub_02059E74 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02056B74 + cmp r0, #0x0 + beq _02055CE4 + mov r0, #0x0 + pop {r3-r7, pc} +_02055CE4: + mov r1, #0x6 + add r0, r4, #0x0 + lsl r1, r1, #0x6 + bl sub_02058410 + add r0, r6, #0x0 + mov r1, #0x8 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056B5C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020556C8 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205569C + mov r1, #0x0 + mvn r1, r1 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_0205543C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + mov r0, #0x1 + pop {r3-r7, pc} +_02055D28: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_020560A0 + cmp r0, #0x0 + bne _02055D8E + add r0, r5, #0x0 + bl sub_02055FFC + add r0, r6, #0x0 + bl sub_02059E74 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02056B74 + cmp r0, #0x0 + beq _02055D54 + mov r0, #0x0 + pop {r3-r7, pc} +_02055D54: + mov r1, #0x6 + add r0, r4, #0x0 + lsl r1, r1, #0x6 + bl sub_02058410 + add r0, r6, #0x0 + mov r1, #0x8 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056B5C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020556C8 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205569C + mov r1, #0x0 + mvn r1, r1 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_0205543C + b _02055DA0 +_02055D8E: + mov r1, #0x6 + add r0, r4, #0x0 + lsl r1, r1, #0x6 + bl sub_02058410 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020560D0 +_02055DA0: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + mov r0, #0x1 + pop {r3-r7, pc} + + thumb_func_start sub_02055DAC +sub_02055DAC: ; 0x02055DAC + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + bl sub_020553A0 + add r6, r0, #0x0 + bl sub_020584D4 + add r4, r0, #0x0 + ldr r0, _02055EF4 ; =0x00000654 + bl sub_020054C8 + cmp r4, #0x0 + bne _02055E62 + add r0, r5, #0x0 + bl sub_020553C4 + cmp r0, #0x1 + bne _02055DFE + add r0, r5, #0x0 + bl sub_02055408 + cmp r0, #0x3 + blt _02055DFE + cmp r7, #0x0 + bne _02055DFE + add r0, r4, #0x0 + mov r1, #0x15 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02056B5C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + mov r0, #0x1 + pop {r3-r7, pc} +_02055DFE: + add r0, r4, #0x0 + bl sub_02059E74 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_02056B74 + cmp r0, #0x0 + beq _02055E18 + mov r0, #0x0 + pop {r3-r7, pc} +_02055E18: + mov r1, #0x6 + add r0, r6, #0x0 + lsl r1, r1, #0x6 + bl sub_02058410 + add r0, r4, #0x0 + mov r1, #0x8 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02056B5C + add r0, r5, #0x0 + bl sub_02055410 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205569C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02055778 + mov r1, #0x0 + mvn r1, r1 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_0205543C + mov r0, #0x1 + pop {r3-r7, pc} +_02055E62: + cmp r4, #0x1 + bne _02055EF0 + add r0, r5, #0x0 + bl sub_02055790 + cmp r0, #0x0 + bne _02055EAC + add r0, r4, #0x0 + mov r1, #0x15 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02056B5C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + add r0, r5, #0x0 + bl sub_020554BC + cmp r0, #0x1 + bne _02055E9C + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_0205540C +_02055E9C: + mov r1, #0x0 + mvn r1, r1 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_0205543C + mov r0, #0x1 + pop {r3-r7, pc} +_02055EAC: + mov r1, #0x6 + add r0, r6, #0x0 + lsl r1, r1, #0x6 + bl sub_02058410 + add r0, r4, #0x0 + mov r1, #0x8 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02056B5C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205569C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02055778 + mov r1, #0x0 + mvn r1, r1 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_0205543C + mov r0, #0x1 + pop {r3-r7, pc} +_02055EF0: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02055EF4: .word 0x00000654 + + thumb_func_start sub_02055EF8 +sub_02055EF8: ; 0x02055EF8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + bl sub_020584D4 + add r0, r5, #0x0 + bl sub_020554BC + cmp r0, #0x1 + bne _02055F22 + ldr r0, _02055F40 ; =0x00000656 + bl sub_020054C8 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x5f + bl sub_02056B5C + b _02055F2C +_02055F22: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x5d + bl sub_02056B5C +_02055F2C: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205569C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020557D0 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_02055F40: .word 0x00000656 + + thumb_func_start sub_02055F44 +sub_02055F44: ; 0x02055F44 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + bl sub_020584D4 + add r0, r5, #0x0 + bl sub_020554BC + cmp r0, #0x1 + bne _02055F6E + ldr r0, _02055F8C ; =0x00000656 + bl sub_020054C8 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x5e + bl sub_02056B5C + b _02055F78 +_02055F6E: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x5c + bl sub_02056B5C +_02055F78: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205569C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020557D0 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_02055F8C: .word 0x00000656 + + thumb_func_start sub_02055F90 +sub_02055F90: ; 0x02055F90 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_02056B74 + cmp r0, #0x0 + bne _02055FCE + mov r0, #0x1 + mov r1, #0x14 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056B5C + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_0205540C + mov r0, #0x1 + pop {r3-r5, pc} +_02055FCE: + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056B5C + add r0, r5, #0x0 + bl sub_02055410 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205536C + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020556F4 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02055FFC +sub_02055FFC: ; 0x02055FFC + push {r4, lr} + add r4, r0, #0x0 + bl sub_020556B4 + cmp r0, #0x1 + bne _0205603E + add r0, r4, #0x0 + bl sub_020553A0 + mov r1, #0x6 + lsl r1, r1, #0x6 + bl sub_02058418 + add r0, r4, #0x0 + bl sub_020557E8 + cmp r0, #0x0 + bne _02056026 + add r0, r4, #0x0 + bl sub_02055410 +_02056026: + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0205569C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020557D0 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02055778 +_0205603E: + pop {r4, pc} + + thumb_func_start sub_02056040 +sub_02056040: ; 0x02056040 + push {r4-r6, lr} + sub sp, #0x18 + add r5, r1, #0x0 + bl sub_020553A0 + add r4, r0, #0x0 + bl sub_02058738 + add r6, r0, #0x0 + add r0, r4, #0x0 + add r1, sp, #0xc + bl sub_02058B5C + add r4, sp, #0xc + add r3, sp, #0x0 + ldmia r4!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r4, #0x0] + add r1, r2, #0x0 + mov r2, #0x1 + str r0, [r3, #0x0] + add r0, r5, #0x0 + lsl r2, r2, #0xe + bl sub_02059E28 + add r0, r6, #0x0 + add r1, sp, #0x0 + bl sub_02059E9C + cmp r0, #0x0 + beq _02056088 + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x10] + cmp r0, r1 + bne _0205608E +_02056088: + add sp, #0x18 + mov r0, #0x0 + pop {r4-r6, pc} +_0205608E: + cmp r0, r1 + ble _02056098 + add sp, #0x18 + mov r0, #0x2 + pop {r4-r6, pc} +_02056098: + mov r0, #0x1 + add sp, #0x18 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020560A0 +sub_020560A0: ; 0x020560A0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02055408 + add r1, r0, #0x0 + cmp r4, #0x1 + bne _020560B8 + sub r1, r1, #0x1 + bpl _020560C4 + mov r0, #0x0 + pop {r3-r5, pc} +_020560B8: + cmp r4, #0x2 + bne _020560C4 + add r1, r1, #0x1 + cmp r1, #0x3 + ble _020560C4 + mov r1, #0x3 +_020560C4: + add r0, r5, #0x0 + bl sub_0205540C + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020560D0 +sub_020560D0: ; 0x020560D0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl sub_020553A0 + add r7, r0, #0x0 + add r0, r5, #0x0 + mov r4, #0x10 + bl sub_02055408 + cmp r0, #0x1 + beq _020560F2 + cmp r0, #0x2 + beq _020560F6 + cmp r0, #0x3 + beq _020560FA + b _020560FC +_020560F2: + mov r4, #0x50 + b _020560FC +_020560F6: + mov r4, #0x14 + b _020560FC +_020560FA: + mov r4, #0x14 +_020560FC: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02056B5C + pop {r3-r7, pc} + + thumb_func_start sub_02056110 +sub_02056110: ; 0x02056110 + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + add r7, r1, #0x0 + str r2, [sp, #0x8] + add r5, r3, #0x0 + bl sub_020553C4 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_020553A0 + add r1, r0, #0x0 + cmp r4, #0x0 + beq _02056136 + cmp r4, #0x1 + beq _0205614C + cmp r4, #0x2 + bne _02056162 +_02056136: + str r5, [sp, #0x0] + add r0, sp, #0x10 + ldrh r0, [r0, #0x10] + ldr r3, [sp, #0x8] + add r2, r7, #0x0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + bl sub_0205616C + add sp, #0xc + pop {r4-r7, pc} +_0205614C: + str r5, [sp, #0x0] + add r0, sp, #0x10 + ldrh r0, [r0, #0x10] + ldr r3, [sp, #0x8] + add r2, r7, #0x0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + bl sub_020563A8 + add sp, #0xc + pop {r4-r7, pc} +_02056162: + bl sub_02020C2C + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0205616C +sub_0205616C: ; 0x0205616C + push {r3-r6, lr} + sub sp, #0x4 + add r6, r3, #0x0 + add r4, r1, #0x0 + add r1, r6, #0x0 + add r5, r0, #0x0 + bl sub_020561D0 + cmp r0, #0x0 + beq _0205618C + cmp r0, #0x1 + beq _020561A2 + cmp r0, #0x2 + beq _020561B8 + add sp, #0x4 + pop {r3-r6, pc} +_0205618C: + add r3, sp, #0x8 + ldrh r0, [r3, #0x14] + add r1, r4, #0x0 + add r2, r6, #0x0 + str r0, [sp, #0x0] + ldrh r3, [r3, #0x10] + add r0, r5, #0x0 + bl sub_02056288 + add sp, #0x4 + pop {r3-r6, pc} +_020561A2: + add r3, sp, #0x8 + ldrh r0, [r3, #0x14] + add r1, r4, #0x0 + add r2, r6, #0x0 + str r0, [sp, #0x0] + ldrh r3, [r3, #0x10] + add r0, r5, #0x0 + bl sub_020562A8 + add sp, #0x4 + pop {r3-r6, pc} +_020561B8: + add r3, sp, #0x8 + ldrh r0, [r3, #0x14] + add r1, r4, #0x0 + add r2, r6, #0x0 + str r0, [sp, #0x0] + ldrh r3, [r3, #0x10] + add r0, r5, #0x0 + bl sub_02056384 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_020561D0 +sub_020561D0: ; 0x020561D0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02056244 + add r4, r0, #0x0 + bl sub_020561EC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205536C + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020561EC +sub_020561EC: ; 0x020561EC + push {r3, lr} + cmp r0, #0x0 + beq _020561FC + cmp r0, #0x1 + beq _02056200 + cmp r0, #0x2 + beq _02056204 + b _02056208 +_020561FC: + mov r0, #0x0 + pop {r3, pc} +_02056200: + mov r0, #0x1 + pop {r3, pc} +_02056204: + mov r0, #0x2 + pop {r3, pc} +_02056208: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02056210 +sub_02056210: ; 0x02056210 + push {r3-r5, lr} + add r5, r1, #0x0 + add r0, r5, #0x0 + add r4, r2, #0x0 + bl sub_020549F0 + cmp r0, #0x1 + bne _02056224 + mov r0, #0x4 + pop {r3-r5, pc} +_02056224: + add r0, r5, #0x0 + bl sub_020549E4 + cmp r0, #0x1 + bne _02056232 + mov r0, #0x8 + pop {r3-r5, pc} +_02056232: + add r0, r5, #0x0 + bl sub_020549D8 + cmp r0, #0x1 + bne _0205623E + mov r4, #0xc +_0205623E: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02056244 +sub_02056244: ; 0x02056244 + push {r3-r5, lr} + add r4, r1, #0x0 + mov r1, #0x0 + mvn r1, r1 + add r5, r0, #0x0 + cmp r4, r1 + bne _0205625C + mov r1, #0x0 + bl sub_0205536C + mov r0, #0x0 + pop {r3-r5, pc} +_0205625C: + bl sub_020552F8 + cmp r0, r4 + beq _0205627A + add r0, r5, #0x0 + bl sub_02055370 + cmp r0, #0x1 + beq _0205627A + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0205536C + mov r0, #0x2 + pop {r3-r5, pc} +_0205627A: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02056288 +sub_02056288: ; 0x02056288 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020584C4 + mov r1, #0x0 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056B5C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020562A8 +sub_020562A8: ; 0x020562A8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + str r2, [sp, #0x0] + bl sub_02056B74 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020553C4 + cmp r0, #0x2 + beq _0205632A + mov r0, #0x4 + tst r0, r4 + beq _020562CA + mov r7, #0x38 + b _0205636C +_020562CA: + cmp r4, #0x0 + beq _020562E6 + mov r0, #0x8 + mov r7, #0x1c + tst r0, r4 + bne _020562DC + ldr r0, _02056380 ; =0x00000601 + bl sub_020054C8 +_020562DC: + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl sub_020584CC + b _0205636C +_020562E6: + add r0, r5, #0x0 + mov r4, #0xc + bl sub_0205545C + bl sub_02055474 + cmp r0, #0x1 + bne _02056306 + add r1, sp, #0x8 + ldrh r1, [r1, #0x10] + add r0, r5, #0x0 + bl sub_02057114 + cmp r0, #0x1 + bne _02056306 + mov r4, #0x58 +_02056306: + add r0, r6, #0x0 + bl sub_02058720 + add r1, r0, #0x0 + lsl r1, r1, #0x18 + add r0, r6, #0x0 + lsr r1, r1, #0x18 + add r2, r4, #0x0 + bl sub_02056210 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_020572D4 + add r0, r5, #0x0 + bl sub_020557A4 + b _0205636C +_0205632A: + cmp r4, #0x0 + beq _02056332 + cmp r4, #0x20 + bne _02056356 +_02056332: + add r0, r6, #0x0 + bl sub_02058720 + add r1, r0, #0x0 + lsl r1, r1, #0x18 + add r0, r6, #0x0 + lsr r1, r1, #0x18 + mov r2, #0xc + bl sub_02056210 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_020572D4 + add r0, r5, #0x0 + bl sub_020557A4 + b _0205636C +_02056356: + mov r0, #0x8 + mov r7, #0x1c + tst r0, r4 + bne _02056364 + ldr r0, _02056380 ; =0x00000601 + bl sub_020054C8 +_02056364: + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl sub_020584CC +_0205636C: + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02056B5C + pop {r3-r7, pc} + .balign 4 +_02056380: .word 0x00000601 + + thumb_func_start sub_02056384 +sub_02056384: ; 0x02056384 + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, r6, #0x0 + mov r1, #0x28 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056B5C + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_020584CC + pop {r4-r6, pc} + + thumb_func_start sub_020563A8 +sub_020563A8: ; 0x020563A8 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_020554BC + cmp r0, #0x1 + add r0, sp, #0x10 + bne _020563D6 + ldrh r1, [r0, #0x10] + add r2, r6, #0x0 + add r3, r7, #0x0 + str r1, [sp, #0x0] + ldrh r0, [r0, #0x14] + add r1, r4, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_020567E4 + add sp, #0x8 + pop {r3-r7, pc} +_020563D6: + ldrh r1, [r0, #0x10] + add r2, r6, #0x0 + add r3, r7, #0x0 + str r1, [sp, #0x0] + ldrh r0, [r0, #0x14] + add r1, r4, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_020564C8 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020563F0 +sub_020563F0: ; 0x020563F0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020553C4 + cmp r0, #0x1 + bne _0205642C + mov r0, #0x2 + tst r0, r4 + beq _0205642C + add r0, r5, #0x0 + mov r4, #0x1 + bl sub_020554BC + cmp r0, #0x1 + bne _02056412 + mov r4, #0x0 +_02056412: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020554AC + cmp r4, #0x0 + bne _02056426 + ldr r0, _02056430 ; =0x0000061C + bl sub_020054C8 + pop {r3-r5, pc} +_02056426: + ldr r0, _02056434 ; =0x00000619 + bl sub_020054C8 +_0205642C: + pop {r3-r5, pc} + nop +_02056430: .word 0x0000061C +_02056434: .word 0x00000619 + + thumb_func_start sub_02056438 +sub_02056438: ; 0x02056438 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r4, #0x4c + bl sub_02055408 + cmp r0, #0x1 + beq _02056450 + cmp r0, #0x2 + beq _02056454 + cmp r0, #0x3 + beq _02056458 + b _0205645A +_02056450: + mov r4, #0x10 + b _0205645A +_02056454: + mov r4, #0x50 + b _0205645A +_02056458: + mov r4, #0x14 +_0205645A: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205AFDC + pop {r3-r5, pc} + + thumb_func_start sub_02056464 +sub_02056464: ; 0x02056464 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + bl sub_0205541C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205570C + cmp r0, #0x0 + bne _02056488 + cmp r4, #0x2 + blt _02056488 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020556F4 +_02056488: + cmp r4, #0x3 + bne _02056490 + mov r0, #0x1 + pop {r3-r5, pc} +_02056490: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02056494 +sub_02056494: ; 0x02056494 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r6, #0x1 + bl sub_02055408 + sub r4, r0, #0x1 + bpl _020564A6 + mov r4, #0x0 + add r6, r4, #0x0 +_020564A6: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205540C + add r0, r5, #0x0 + bl sub_0205570C + cmp r0, #0x1 + bne _020564C4 + cmp r4, #0x0 + bne _020564C4 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020556F4 +_020564C4: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020564C8 +sub_020564C8: ; 0x020564C8 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r1, #0x0 + add r1, r3, #0x0 + add r6, r0, #0x0 + str r3, [sp, #0x4] + ldr r5, [sp, #0x20] + ldr r4, [sp, #0x24] + bl sub_0205653C + cmp r0, #0x3 + bhi _02056538 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r3, #0 + lsl r2, r5, #0 + lsl r4, r7, #0 + ldr r2, [sp, #0x4] + add r0, r6, #0x0 + add r1, r7, #0x0 + add r3, r5, #0x0 + str r4, [sp, #0x0] + bl sub_020565F0 + add sp, #0x8 + pop {r3-r7, pc} +_02056506: + .byte 0x01, 0x9A, 0x30, 0x1C, 0x39, 0x1C, 0x2B, 0x1C, 0x00, 0x94 + .byte 0x00, 0xF0, 0x80, 0xF8, 0x02, 0xB0, 0xF8, 0xBD, 0x01, 0x9A, 0x30, 0x1C, 0x39, 0x1C, 0x2B, 0x1C + .byte 0x00, 0x94, 0x00, 0xF0, 0xEF, 0xF8, 0x02, 0xB0, 0xF8, 0xBD, 0x01, 0x9A, 0x30, 0x1C, 0x39, 0x1C + .byte 0x2B, 0x1C, 0x00, 0x94, 0x00, 0xF0, 0x04, 0xF9 +_02056538: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0205653C +sub_0205653C: ; 0x0205653C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0205658C + add r4, r0, #0x0 + bl sub_02056558 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205536C + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02056558 +sub_02056558: ; 0x02056558 + push {r3, lr} + cmp r0, #0x3 + bhi _02056582 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + mov r0, #0x0 + pop {r3, pc} +_02056576: + .byte 0x01, 0x20, 0x08, 0xBD, 0x02, 0x20, 0x08, 0xBD, 0x01, 0x20 + .byte 0x08, 0xBD +_02056582: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205658C +sub_0205658C: ; 0x0205658C + push {r4-r6, lr} + add r4, r1, #0x0 + mov r1, #0x0 + mvn r1, r1 + add r5, r0, #0x0 + cmp r4, r1 + bne _020565BA + bl sub_0205570C + cmp r0, #0x1 + bne _020565AE + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + mov r0, #0x3 + pop {r4-r6, pc} +_020565AE: + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205536C + mov r0, #0x0 + pop {r4-r6, pc} +_020565BA: + bl sub_020552F8 + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020556F4 + cmp r6, r4 + beq _020565E2 + add r0, r5, #0x0 + bl sub_02055370 + cmp r0, #0x1 + beq _020565E2 + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0205536C + mov r0, #0x2 + pop {r4-r6, pc} +_020565E2: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020565F0 +sub_020565F0: ; 0x020565F0 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020584C4 + mov r1, #0x0 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056B5C + add r0, r5, #0x0 + bl sub_02055410 + pop {r3-r5, pc} + + thumb_func_start sub_02056614 +sub_02056614: ; 0x02056614 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + str r2, [sp, #0x0] + bl sub_02056B74 + add r4, r0, #0x0 + mov r0, #0x4 + tst r0, r4 + beq _02056638 + add r0, r5, #0x0 + mov r7, #0x38 + bl sub_020572D4 + add r0, r5, #0x0 + bl sub_020557A4 + b _020566EA +_02056638: + mov r0, #0x10 + tst r0, r4 + beq _02056656 + add r0, r5, #0x0 + mov r7, #0x50 + bl sub_020572D4 + add r0, r5, #0x0 + bl sub_020557A4 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205569C + b _020566EA +_02056656: + mov r0, #0x40 + tst r0, r4 + beq _02056680 + add r0, r6, #0x0 + mov r7, #0x0 + bl sub_020584D4 + str r0, [sp, #0x0] + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 + sub r1, r7, #0x1 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_0205543C + b _020566EA +_02056680: + cmp r4, #0x0 + beq _020566D4 + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020572EC + cmp r0, #0x0 + bne _020566B0 + mov r0, #0x8 + mov r7, #0x1c + tst r0, r4 + bne _020566A0 + ldr r0, _02056700 ; =0x00000601 + bl sub_020054C8 +_020566A0: + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 + b _020566EA +_020566B0: + add r0, r6, #0x0 + mov r7, #0x0 + bl sub_020584D4 + str r0, [sp, #0x0] + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 + sub r1, r7, #0x1 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_0205543C + b _020566EA +_020566D4: + add r0, r5, #0x0 + mov r7, #0x50 + bl sub_020572D4 + add r0, r5, #0x0 + bl sub_020557A4 + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0205540C +_020566EA: + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02056B5C + pop {r3-r7, pc} + nop +_02056700: .word 0x00000601 + + thumb_func_start sub_02056704 +sub_02056704: ; 0x02056704 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02055410 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020572EC + cmp r0, #0x1 + beq _0205673E + add r0, r6, #0x0 + mov r1, #0x28 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056B5C + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 +_0205673E: + pop {r4-r6, pc} + + thumb_func_start sub_02056740 +sub_02056740: ; 0x02056740 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r7, r1, #0x0 + bl sub_02056494 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02055314 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_02056B74 + add r4, r0, #0x0 + mov r0, #0x4 + tst r0, r4 + beq _02056774 + add r0, r6, #0x0 + mov r1, #0x38 + bl sub_0205AFDC + str r0, [sp, #0x4] + b _020567C4 +_02056774: + mov r0, #0x40 + tst r0, r4 + beq _0205678C + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_0205AFDC + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02055410 + b _020567C4 +_0205678C: + cmp r4, #0x0 + beq _020567BA + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, r6, #0x0 + mov r1, #0x1c + bl sub_0205AFDC + str r0, [sp, #0x4] + mov r0, #0x8 + tst r0, r4 + bne _020567AA + ldr r0, _020567E0 ; =0x00000601 + bl sub_020054C8 +_020567AA: + add r0, r7, #0x0 + add r1, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 + b _020567C4 +_020567BA: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02056438 + str r0, [sp, #0x4] +_020567C4: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _020567D2 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020556F4 +_020567D2: + ldr r2, [sp, #0x4] + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02056B5C + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020567E0: .word 0x00000601 + + thumb_func_start sub_020567E4 +sub_020567E4: ; 0x020567E4 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r1, #0x0 + add r1, r3, #0x0 + add r6, r0, #0x0 + str r3, [sp, #0x4] + ldr r5, [sp, #0x20] + ldr r4, [sp, #0x24] + bl sub_02056858 + cmp r0, #0x3 + bhi _02056854 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r3, #0 + lsl r2, r5, #0 + lsl r4, r7, #0 + ldr r2, [sp, #0x4] + add r0, r6, #0x0 + add r1, r7, #0x0 + add r3, r5, #0x0 + str r4, [sp, #0x0] + bl sub_02056914 + add sp, #0x8 + pop {r3-r7, pc} +_02056822: + .byte 0x01, 0x9A, 0x30, 0x1C, 0x39, 0x1C, 0x2B, 0x1C, 0x00, 0x94, 0x00, 0xF0, 0x84, 0xF8 + .byte 0x02, 0xB0, 0xF8, 0xBD, 0x01, 0x9A, 0x30, 0x1C, 0x39, 0x1C, 0x2B, 0x1C, 0x00, 0x94, 0x00, 0xF0 + .byte 0x1D, 0xF9, 0x02, 0xB0, 0xF8, 0xBD, 0x01, 0x9A, 0x30, 0x1C, 0x39, 0x1C, 0x2B, 0x1C, 0x00, 0x94 + .byte 0x00, 0xF0, 0x32, 0xF9 +_02056854: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02056858 +sub_02056858: ; 0x02056858 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020568A8 + add r4, r0, #0x0 + bl sub_02056874 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205536C + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02056874 +sub_02056874: ; 0x02056874 + push {r3, lr} + cmp r0, #0x3 + bhi _0205689E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + mov r0, #0x0 + pop {r3, pc} +_02056892: + .byte 0x01, 0x20, 0x08, 0xBD, 0x02, 0x20, 0x08, 0xBD, 0x01, 0x20, 0x08, 0xBD +_0205689E: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020568A8 +sub_020568A8: ; 0x020568A8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02055408 + add r6, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _020568D8 + cmp r6, #0x2 + bge _020568CC + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205536C + mov r0, #0x0 + pop {r4-r6, pc} +_020568CC: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + mov r0, #0x3 + pop {r4-r6, pc} +_020568D8: + add r0, r5, #0x0 + bl sub_020552F8 + cmp r0, r4 + beq _02056908 + add r0, r5, #0x0 + bl sub_02055370 + cmp r0, #0x1 + beq _02056908 + cmp r6, #0x2 + bge _020568FC + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0205536C + mov r0, #0x2 + pop {r4-r6, pc} +_020568FC: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + mov r0, #0x3 + pop {r4-r6, pc} +_02056908: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205536C + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_02056914 +sub_02056914: ; 0x02056914 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020584C4 + mov r1, #0x0 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056B5C + add r0, r5, #0x0 + bl sub_02055410 + pop {r3-r5, pc} + + thumb_func_start sub_02056938 +sub_02056938: ; 0x02056938 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_02056B74 + add r4, r0, #0x0 + mov r0, #0x4 + tst r0, r4 + beq _0205696A + add r0, r7, #0x0 + mov r1, #0x38 + bl sub_0205AFDC + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02056464 + add r0, r5, #0x0 + bl sub_020572D4 + add r0, r5, #0x0 + bl sub_020557A4 + b _02056A6C +_0205696A: + mov r0, #0x10 + tst r0, r4 + beq _020569BA + add r0, r5, #0x0 + bl sub_02055408 + cmp r0, #0x3 + blt _02056994 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02056438 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_020557A4 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205569C + b _02056A6C +_02056994: + add r0, r7, #0x0 + mov r1, #0x1c + bl sub_0205AFDC + str r0, [sp, #0x0] + mov r0, #0x8 + tst r0, r4 + bne _020569AA + ldr r0, _02056A78 ; =0x00000601 + bl sub_020054C8 +_020569AA: + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 + b _02056A6C +_020569BA: + mov r0, #0x40 + tst r0, r4 + beq _020569EC + add r0, r6, #0x0 + bl sub_020584D4 + add r4, r0, #0x0 + mov r1, #0x0 + bl sub_0205AFDC + str r0, [sp, #0x0] + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 + mov r1, #0x0 + mvn r1, r1 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_0205543C + b _02056A6C +_020569EC: + cmp r4, #0x0 + beq _02056A50 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_020572EC + cmp r0, #0x0 + bne _02056A24 + add r0, r7, #0x0 + mov r1, #0x1c + bl sub_0205AFDC + str r0, [sp, #0x0] + mov r0, #0x8 + tst r0, r4 + bne _02056A14 + ldr r0, _02056A78 ; =0x00000601 + bl sub_020054C8 +_02056A14: + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 + b _02056A6C +_02056A24: + add r0, r6, #0x0 + bl sub_020584D4 + add r4, r0, #0x0 + mov r1, #0x0 + bl sub_0205AFDC + str r0, [sp, #0x0] + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 + mov r1, #0x0 + mvn r1, r1 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_0205543C + b _02056A6C +_02056A50: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02056438 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02056464 + add r0, r5, #0x0 + bl sub_020572D4 + add r0, r5, #0x0 + bl sub_020557A4 +_02056A6C: + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02056B5C + pop {r3-r7, pc} + .balign 4 +_02056A78: .word 0x00000601 + + thumb_func_start sub_02056A7C +sub_02056A7C: ; 0x02056A7C + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02055410 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020572EC + cmp r0, #0x1 + beq _02056AB6 + add r0, r6, #0x0 + mov r1, #0x28 + bl sub_0205AFDC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056B5C + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 +_02056AB6: + pop {r4-r6, pc} + + thumb_func_start sub_02056AB8 +sub_02056AB8: ; 0x02056AB8 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r7, r1, #0x0 + bl sub_02056494 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02055314 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_02056B74 + add r4, r0, #0x0 + mov r0, #0x4 + tst r0, r4 + beq _02056AEC + add r0, r6, #0x0 + mov r1, #0x38 + bl sub_0205AFDC + str r0, [sp, #0x4] + b _02056B3C +_02056AEC: + mov r0, #0x40 + tst r0, r4 + beq _02056B04 + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_0205AFDC + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02055410 + b _02056B3C +_02056B04: + cmp r4, #0x0 + beq _02056B32 + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, r6, #0x0 + mov r1, #0x1c + bl sub_0205AFDC + str r0, [sp, #0x4] + mov r0, #0x8 + tst r0, r4 + bne _02056B22 + ldr r0, _02056B58 ; =0x00000601 + bl sub_020054C8 +_02056B22: + add r0, r7, #0x0 + add r1, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_02055410 + b _02056B3C +_02056B32: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02056438 + str r0, [sp, #0x4] +_02056B3C: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _02056B4A + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020556F4 +_02056B4A: + ldr r2, [sp, #0x4] + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02056B5C + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02056B58: .word 0x00000601 + + thumb_func_start sub_02056B5C +sub_02056B5C: ; 0x02056B5C + push {r3-r5, lr} + add r4, r2, #0x0 + add r5, r1, #0x0 + add r1, r4, #0x0 + bl sub_02055460 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205ADDC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02056B74 +sub_02056B74: ; 0x02056B74 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + mov r4, #0x0 + bl sub_02056C0C + mov r1, #0xa + str r0, [sp, #0x0] + tst r0, r1 + beq _02056BA0 + mov r0, #0x1 + orr r4, r0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02056D58 + cmp r0, #0x0 + beq _02056BA0 + mov r0, #0x8 + orr r4, r0 +_02056BA0: + ldr r0, [sp, #0x0] + mov r1, #0x4 + tst r0, r1 + beq _02056BAC + mov r0, #0x2 + orr r4, r0 +_02056BAC: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02056CCC + cmp r0, #0x0 + beq _02056BBE + mov r0, #0x4 + orr r4, r0 +_02056BBE: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02056E04 + cmp r0, #0x1 + bne _02056BD0 + mov r0, #0x10 + orr r4, r0 +_02056BD0: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02056E6C + cmp r0, #0x1 + bne _02056BE2 + mov r0, #0x20 + orr r4, r0 +_02056BE2: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02056EC8 + cmp r0, #0x1 + bne _02056BF4 + mov r0, #0x41 + orr r4, r0 +_02056BF4: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02056F78 + cmp r0, #0x1 + bne _02056C06 + mov r0, #0x1 + orr r4, r0 +_02056C06: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02056C0C +sub_02056C0C: ; 0x02056C0C + push {r3-r7, lr} + sub sp, #0x28 + add r5, r1, #0x0 + str r2, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02058B2C + add r7, r0, #0x0 + ldr r0, [sp, #0x4] + bl sub_02059BF4 + str r0, [sp, #0x14] + add r0, r5, #0x0 + bl sub_02058B3C + str r0, [sp, #0x8] + add r0, r5, #0x0 + bl sub_02058B4C + str r0, [sp, #0xc] + ldr r0, [sp, #0x4] + bl sub_02059C00 + str r0, [sp, #0x10] + add r0, r5, #0x0 + add r1, sp, #0x1c + bl sub_02058B5C + ldr r1, [sp, #0x14] + ldr r6, [sp, #0xc] + ldr r3, [sp, #0x10] + ldr r2, [sp, #0x8] + add r0, r5, #0x0 + add r1, r7, r1 + add r3, r6, r3 + mov r4, #0x0 + bl sub_02059A08 + cmp r0, #0x1 + bne _02056C60 + mov r0, #0x1 + orr r4, r0 +_02056C60: + add r0, r5, #0x0 + bl sub_02058738 + ldr r2, [sp, #0x14] + add r1, sp, #0x18 + str r1, [sp, #0x0] + ldr r6, [sp, #0xc] + ldr r3, [sp, #0x10] + add r1, sp, #0x1c + add r2, r7, r2 + add r3, r6, r3 + bl sub_0204A7C8 + cmp r0, #0x1 + bne _02056C90 + mov r0, #0x2 + orr r4, r0 + add r1, sp, #0x18 + mov r0, #0x0 + ldrsb r0, [r1, r0] + cmp r0, #0x0 + beq _02056C90 + mov r0, #0x8 + orr r4, r0 +_02056C90: + ldr r3, [sp, #0xc] + ldr r2, [sp, #0x10] + ldr r1, [sp, #0x14] + add r2, r3, r2 + ldr r3, [sp, #0x4] + add r0, r5, #0x0 + add r1, r7, r1 + bl sub_02059A60 + cmp r0, #0x1 + bne _02056CAA + mov r0, #0x2 + orr r4, r0 +_02056CAA: + add r0, r5, #0x0 + ldr r1, [sp, #0x14] + ldr r5, [sp, #0xc] + ldr r3, [sp, #0x10] + ldr r2, [sp, #0x8] + add r1, r7, r1 + add r3, r5, r3 + bl sub_0205995C + cmp r0, #0x1 + bne _02056CC4 + mov r0, #0x4 + orr r4, r0 +_02056CC4: + add r0, r4, #0x0 + add sp, #0x28 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02056CCC +sub_02056CCC: ; 0x02056CCC + push {r3-r7, lr} + mov r0, #0x0 + add r4, r2, #0x0 + mvn r0, r0 + add r5, r1, #0x0 + cmp r4, r0 + beq _02056D54 + add r0, r5, #0x0 + bl sub_02058738 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02058B2C + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02059BF4 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B4C + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02059C00 + add r2, r0, #0x0 + ldr r0, [sp, #0x0] + add r1, r6, r7 + add r2, r5, r2 + bl sub_0204A6E0 + cmp r4, #0x3 + bhi _02056D54 + add r1, r4, r4 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r2, r2, #0 + lsl r6, r3, #0 + lsl r2, r5, #0 + bl sub_02054848 + cmp r0, #0x1 + bne _02056D54 + mov r0, #0x1 + pop {r3-r7, pc} +_02056D30: + .byte 0xFD, 0xF7, 0x90, 0xFD, 0x01, 0x28, 0x0D, 0xD1, 0x01, 0x20, 0xF8, 0xBD, 0xFD, 0xF7, 0x90, 0xFD + .byte 0x01, 0x28, 0x07, 0xD1, 0x01, 0x20, 0xF8, 0xBD, 0xFD, 0xF7, 0x90, 0xFD, 0x01, 0x28, 0x01, 0xD1 + .byte 0x01, 0x20, 0xF8, 0xBD +_02056D54: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02056D58 +sub_02056D58: ; 0x02056D58 + push {r3-r7, lr} + mov r0, #0x0 + add r4, r2, #0x0 + mvn r0, r0 + add r5, r1, #0x0 + cmp r4, r0 + beq _02056E00 + add r0, r5, #0x0 + bl sub_02058738 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B2C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B4C + str r0, [sp, #0x0] + ldr r2, [sp, #0x0] + add r0, r7, #0x0 + add r1, r6, #0x0 + bl sub_0204A6E0 + add r5, r0, #0x0 + cmp r4, #0x3 + bhi _02056DD8 + add r1, r4, r4 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r2, r2, #0 + lsl r0, r4, #0 + lsl r6, r5, #0 + bl sub_020547D4 + cmp r0, #0x1 + bne _02056DAE + mov r0, #0x1 + pop {r3-r7, pc} +_02056DAE: + add r0, r5, #0x0 + bl sub_020547E0 + cmp r0, #0x1 + bne _02056DBC + mov r0, #0x1 + pop {r3-r7, pc} +_02056DBC: + add r0, r5, #0x0 + bl sub_020547C8 + cmp r0, #0x1 + bne _02056DCA + mov r0, #0x1 + pop {r3-r7, pc} +_02056DCA: + add r0, r5, #0x0 + bl sub_020547BC + cmp r0, #0x1 + bne _02056DD8 + mov r0, #0x1 + pop {r3-r7, pc} +_02056DD8: + add r0, r4, #0x0 + bl sub_02059BF4 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02059C00 + add r3, r0, #0x0 + ldr r2, [sp, #0x0] + add r0, r7, #0x0 + add r1, r6, r5 + add r2, r2, r3 + bl sub_0204A6E0 + bl sub_020547B0 + cmp r0, #0x1 + bne _02056E00 + mov r0, #0x1 + pop {r3-r7, pc} +_02056E00: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02056E04 +sub_02056E04: ; 0x02056E04 + push {r3-r7, lr} + mov r0, #0x0 + add r5, r2, #0x0 + mvn r0, r0 + add r4, r1, #0x0 + cmp r5, r0 + beq _02056E68 + add r0, r4, #0x0 + bl sub_02058738 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02058B2C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02059BF4 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B4C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02059C00 + add r2, r0, #0x0 + ldr r0, [sp, #0x0] + add r1, r6, r7 + add r2, r4, r2 + bl sub_0204A6E0 + add r4, r0, #0x0 + cmp r5, #0x3 + bne _02056E56 + bl sub_02054A24 + cmp r0, #0x0 + beq _02056E56 + mov r0, #0x1 + pop {r3-r7, pc} +_02056E56: + cmp r5, #0x2 + bne _02056E68 + add r0, r4, #0x0 + bl sub_02054A30 + cmp r0, #0x0 + beq _02056E68 + mov r0, #0x1 + pop {r3-r7, pc} +_02056E68: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02056E6C +sub_02056E6C: ; 0x02056E6C + push {r3-r7, lr} + sub sp, #0x8 + mov r0, #0x0 + add r4, r2, #0x0 + mvn r0, r0 + add r5, r1, #0x0 + cmp r4, r0 + beq _02056EC2 + add r0, r5, #0x0 + bl sub_02058738 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02058B2C + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02059BF4 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B4C + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02059C00 + add r3, r0, #0x0 + ldr r2, [sp, #0x4] + ldr r0, [sp, #0x0] + add r1, r6, r7 + add r2, r2, r3 + bl sub_0204A6E0 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02059AC4 + cmp r0, #0x0 + beq _02056EC2 + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_02056EC2: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02056EC8 +sub_02056EC8: ; 0x02056EC8 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + mov r0, #0x0 + add r4, r2, #0x0 + mvn r0, r0 + add r5, r1, #0x0 + cmp r4, r0 + beq _02056F72 + add r0, r5, #0x0 + bl sub_02058738 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02058B2C + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02059BF4 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B4C + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl sub_02059C00 + add r2, r0, #0x0 + ldr r3, [sp, #0x8] + ldr r0, [sp, #0x4] + add r1, r6, r7 + add r2, r3, r2 + bl sub_0204A6E0 + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_020553C4 + cmp r0, #0x1 + bne _02056F54 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02059BB4 + cmp r0, #0x1 + bne _02056F36 + cmp r4, #0x1 + bls _02056F30 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_02056F30: + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_02056F36: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02059BD4 + cmp r0, #0x1 + bne _02056F72 + sub r0, r4, #0x2 + cmp r0, #0x1 + bls _02056F4E + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_02056F4E: + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_02056F54: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02059BB4 + cmp r0, #0x1 + beq _02056F6C + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02059BD4 + cmp r0, #0x1 + bne _02056F72 +_02056F6C: + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_02056F72: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02056F78 +sub_02056F78: ; 0x02056F78 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + mov r1, #0x0 + add r4, r2, #0x0 + mvn r1, r1 + cmp r4, r1 + beq _0205701A + bl sub_020553C4 + cmp r0, #0x1 + bne _0205701A + add r0, r5, #0x0 + bl sub_02058738 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02058B2C + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02059BF4 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B4C + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02059C00 + add r3, r0, #0x0 + ldr r2, [sp, #0x4] + ldr r0, [sp, #0x0] + add r1, r6, r7 + add r2, r2, r3 + bl sub_0204A6E0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059AC4 + cmp r0, #0x0 + beq _02056FD8 + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_02056FD8: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059B2C + cmp r0, #0x0 + beq _02056FEA + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_02056FEA: + add r0, r4, #0x0 + bl sub_02054798 + cmp r0, #0x0 + beq _02056FFA + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_02056FFA: + add r0, r4, #0x0 + bl sub_02054974 + cmp r0, #0x0 + beq _0205700A + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_0205700A: + add r0, r4, #0x0 + bl sub_02054990 + cmp r0, #0x0 + beq _0205701A + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_0205701A: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02057020 +sub_02057020: ; 0x02057020 + ldr r3, _02057024 ; =sub_02057060 + bx r3 + .balign 4 +_02057024: .word sub_02057060 + 1 + + thumb_func_start sub_02057028 +sub_02057028: ; 0x02057028 + mov r1, #0x20 + tst r1, r0 + beq _02057032 + mov r0, #0x2 + bx lr +_02057032: + mov r1, #0x10 + tst r0, r1 + beq _0205703C + mov r1, #0x3 + b _0205703E +_0205703C: + sub r1, #0x11 +_0205703E: + add r0, r1, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02057044 +sub_02057044: ; 0x02057044 + mov r1, #0x40 + tst r1, r0 + beq _0205704E + mov r0, #0x0 + bx lr +_0205704E: + mov r1, #0x80 + tst r0, r1 + beq _02057058 + mov r1, #0x1 + b _0205705A +_02057058: + sub r1, #0x81 +_0205705A: + add r0, r1, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02057060 +sub_02057060: ; 0x02057060 + push {r3-r7, lr} + add r5, r2, #0x0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02057028 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02057044 + mov r1, #0x0 + mvn r1, r1 + add r5, r0, #0x0 + cmp r4, r1 + beq _020570C0 + cmp r5, r1 + bne _02057086 + add r0, r4, #0x0 + pop {r3-r7, pc} +_02057086: + add r0, r6, #0x0 + bl sub_02055314 + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_02055430 + str r0, [sp, #0x0] + add r0, r6, #0x0 + bl sub_02055438 + mov r1, #0x0 + mvn r1, r1 + cmp r7, r1 + beq _020570BE + ldr r1, [sp, #0x0] + cmp r4, r1 + bne _020570B2 + cmp r5, r0 + bne _020570B2 + add r0, r7, #0x0 + pop {r3-r7, pc} +_020570B2: + cmp r5, r0 + beq _020570BA + add r0, r5, #0x0 + pop {r3-r7, pc} +_020570BA: + add r0, r4, #0x0 + pop {r3-r7, pc} +_020570BE: + add r0, r5, #0x0 +_020570C0: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020570C4 +sub_020570C4: ; 0x020570C4 + push {r4, lr} + bl sub_020553A0 + add r4, r0, #0x0 + bl sub_0205AD98 + cmp r0, #0x1 + bne _020570D8 + mov r0, #0x1 + pop {r4, pc} +_020570D8: + add r0, r4, #0x0 + bl sub_020586F0 + bl sub_020570F0 + cmp r0, #0x1 + bne _020570EA + mov r0, #0x1 + pop {r4, pc} +_020570EA: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020570F0 +sub_020570F0: ; 0x020570F0 + sub r0, #0x1c + cmp r0, #0x3 + bhi _0205710E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r0, #0 + lsl r6, r0, #0 + lsl r6, r0, #0 + mov r0, #0x1 + bx lr +_0205710E: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02057114 +sub_02057114: ; 0x02057114 + mov r0, #0x2 + tst r0, r1 + beq _0205711E + mov r0, #0x1 + bx lr +_0205711E: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02057124 +sub_02057124: ; 0x02057124 + push {r3, lr} + bl sub_02055464 + sub r0, #0x58 + cmp r0, #0x3 + bhi _02057148 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r0, #0 + lsl r6, r0, #0 + lsl r6, r0, #0 + mov r0, #0x1 + pop {r3, pc} +_02057148: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0205714C +sub_0205714C: ; 0x0205714C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020553C4 + cmp r0, #0x0 + beq _02057162 + cmp r0, #0x1 + beq _02057172 + cmp r0, #0x2 + bne _02057188 +_02057162: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02056244 + bl sub_020561EC + add r4, r0, #0x0 + b _0205718E +_02057172: + add r0, r5, #0x0 + bl sub_020554BC + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020568A8 + bl sub_02056874 + add r4, r0, #0x0 + b _0205718E +_02057188: + mov r4, #0x0 + bl sub_02020C2C +_0205718E: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02057194 +sub_02057194: ; 0x02057194 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r2, #0x0 + add r6, r3, #0x0 + bl sub_02057060 + str r0, [sp, #0x0] + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + bl sub_0205714C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205536C + cmp r4, #0x0 + bne _020571C6 + add r0, r5, #0x0 + bl sub_020552F8 + mov r1, #0x0 + bl sub_0205AFDC + pop {r3-r7, pc} +_020571C6: + cmp r4, #0x2 + bne _020571D4 + ldr r0, [sp, #0x0] + mov r1, #0x28 + bl sub_0205AFDC + pop {r3-r7, pc} +_020571D4: + add r0, r5, #0x0 + bl sub_020553A0 + ldr r0, [sp, #0x1c] + mov r4, #0x4 + add r1, r0, #0x0 + tst r1, r4 + beq _020571E8 + mov r4, #0x38 + b _02057244 +_020571E8: + cmp r0, #0x0 + beq _020571FC + mov r1, #0x8 + mov r4, #0x1c + tst r0, r1 + bne _02057244 + ldr r0, _02057250 ; =0x00000601 + bl sub_020054C8 + b _02057244 +_020571FC: + cmp r6, #0x5 + bhi _0205722E + add r0, r6, r6 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r4, r1, #0 + lsl r0, r2, #0 + lsl r4, r2, #0 + lsl r0, r3, #0 + lsl r4, r3, #0 + b _02057230 +_0205721A: + .byte 0x08, 0x24, 0x08, 0xE0, 0x0C, 0x24 + .byte 0x06, 0xE0, 0x4C, 0x24, 0x04, 0xE0, 0x10, 0x24, 0x02, 0xE0, 0x14, 0x24, 0x00, 0xE0 +_0205722E: + mov r4, #0x4 +_02057230: + ldr r0, [sp, #0x18] + cmp r0, #0x1 + bne _02057244 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02057114 + cmp r0, #0x1 + bne _02057244 + mov r4, #0x58 +_02057244: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl sub_0205AFDC + pop {r3-r7, pc} + nop +_02057250: .word 0x00000601 + + thumb_func_start sub_02057254 +sub_02057254: ; 0x02057254 + push {r3, lr} + bl sub_020553A0 + bl sub_0205AD98 + pop {r3, pc} + + thumb_func_start sub_02057260 +sub_02057260: ; 0x02057260 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020553A0 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_02056B5C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02057278 +sub_02057278: ; 0x02057278 + push {r4, lr} + add r4, r1, #0x0 + bl sub_020553A0 + add r1, r4, #0x0 + bl sub_02059C90 + pop {r4, pc} + + thumb_func_start sub_02057288 +sub_02057288: ; 0x02057288 + push {r3-r7, lr} + add r5, r1, #0x0 + str r0, [sp, #0x0] + add r4, r2, #0x0 + add r7, r3, #0x0 + bl sub_02055320 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02059BF4 + add r0, r6, r0 + str r0, [r4, #0x0] + ldr r0, [sp, #0x0] + bl sub_0205532C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02059C00 + add r0, r4, r0 + str r0, [r7, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020572B8 +sub_020572B8: ; 0x020572B8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_020552F8 + add r1, r0, #0x0 + add r0, r5, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_02057288 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020572D4 +sub_020572D4: ; 0x020572D4 + push {r3, lr} + bl sub_020553A0 + bl sub_02058738 + ldr r0, [r0, #0xc] + bl sub_02029FC8 + mov r1, #0x5 + bl sub_0202A0E8 + pop {r3, pc} + + thumb_func_start sub_020572EC +sub_020572EC: ; 0x020572EC + push {r4-r6, lr} + mov r0, #0x0 + add r4, r2, #0x0 + mvn r0, r0 + add r5, r1, #0x0 + cmp r4, r0 + beq _02057336 + add r0, r5, #0x0 + bl sub_02058720 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02059BB4 + cmp r0, #0x1 + bne _0205731C + cmp r4, #0x1 + bls _02057318 + mov r0, #0x1 + pop {r4-r6, pc} +_02057318: + mov r0, #0x0 + pop {r4-r6, pc} +_0205731C: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02059BD4 + cmp r0, #0x1 + bne _02057336 + sub r0, r4, #0x2 + cmp r0, #0x1 + bls _02057332 + mov r0, #0x1 + pop {r4-r6, pc} +_02057332: + mov r0, #0x0 + pop {r4-r6, pc} +_02057336: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0205733C +sub_0205733C: ; 0x0205733C + push {r3-r5, lr} + add r4, r1, #0x0 + mov r1, #0x0 + mvn r1, r1 + add r5, r0, #0x0 + cmp r2, r1 + beq _0205734E + mov r0, #0x0 + pop {r3-r5, pc} +_0205734E: + bl sub_020553C4 + cmp r0, #0x1 + beq _0205735A + mov r0, #0x0 + pop {r3-r5, pc} +_0205735A: + add r0, r5, #0x0 + bl sub_02055738 + cmp r0, #0x0 + bne _02057368 + mov r0, #0x0 + pop {r3-r5, pc} +_02057368: + add r0, r5, #0x0 + bl sub_020553A0 + add r1, r4, #0x0 + bl sub_02059B94 + cmp r0, #0x1 + bne _0205737C + mov r0, #0x1 + pop {r3-r5, pc} +_0205737C: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02057380 +sub_02057380: ; 0x02057380 + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r7, r2, #0x0 + bl sub_02057444 + add r4, r0, #0x0 + add r1, r6, #0x0 + bl sub_020583E0 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058364 + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_02058398 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020573AC +sub_020573AC: ; 0x020573AC + push {r4, lr} + add r4, r0, #0x0 + bl sub_020583CC + add r1, r0, #0x0 + mov r0, #0xb + bl sub_02016A8C + mov r0, #0xb + add r1, r4, #0x0 + bl sub_02016A8C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020573C8 +sub_020573C8: ; 0x020573C8 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + add r5, r2, #0x0 + str r3, [sp, #0x4] + ldr r7, [sp, #0x20] + bl sub_02058368 + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_020583CC + add r4, r0, #0x0 + cmp r6, #0x0 + beq _02057430 +_020573E6: + add r0, r4, #0x0 + bl sub_02058830 + cmp r0, #0x1 + bne _02057426 + ldr r2, [sp, #0x4] + add r0, r4, #0x0 + add r1, r5, #0x0 + add r3, r7, #0x0 + bl sub_02057F90 + cmp r0, #0x0 + beq _02057408 + cmp r0, #0x1 + beq _02057426 + cmp r0, #0x2 + b _02057426 +_02057408: + add r0, r4, #0x0 + bl sub_02058450 + cmp r5, r0 + beq _02057426 + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0xa + bl sub_0205842C + cmp r0, #0x0 + bne _02057426 + add r0, r4, #0x0 + bl sub_02057654 +_02057426: + mov r0, #0x4a + lsl r0, r0, #0x2 + add r4, r4, r0 + sub r6, r6, #0x1 + bne _020573E6 +_02057430: + ldr r0, [sp, #0x0] + bl sub_020583A0 + add r1, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_021F2AF4 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02057444 +sub_02057444: ; 0x02057444 + push {r4-r6, lr} + mov r1, #0x4b + add r4, r0, #0x0 + mov r0, #0xb + lsl r1, r1, #0x2 + bl sub_02016998 + add r5, r0, #0x0 + bne _0205745A + bl sub_02020C2C +_0205745A: + mov r2, #0x4b + add r0, r5, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x2 + blx sub_020DF4A4 + mov r0, #0x4a + lsl r0, r0, #0x2 + add r6, r4, #0x0 + mul r6, r0 + mov r0, #0xb + add r1, r6, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + bne _0205747E + bl sub_02020C2C +_0205747E: + add r0, r4, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + blx sub_020DF4A4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020583B4 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02057494 +sub_02057494: ; 0x02057494 + push {r3-r7, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + add r7, r2, #0x0 + bl sub_02058BFC + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02058CE0 + cmp r0, #0x0 + bne _020574C8 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_02057C98 + add r4, r0, #0x0 + beq _020574E8 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02058214 + add r0, r4, #0x0 + pop {r3-r7, pc} +_020574C8: + add r0, r6, #0x0 + bl sub_02058CFC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02058010 + add r4, r0, #0x0 + beq _020574E8 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_02058258 + add r0, r4, #0x0 + pop {r3-r7, pc} +_020574E8: + add r0, r5, #0x0 + bl sub_02057C64 + add r4, r0, #0x0 + beq _0205753A + add r0, r5, #0x0 + bl sub_020583E8 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_02057D2C + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02057E90 + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_0205844C + add r0, r4, #0x0 + bl sub_020581A4 + add r0, r4, #0x0 + bl sub_020581B4 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_02058410 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02057CF0 + add r0, r5, #0x0 + bl sub_02058360 + bl sub_0205836C + add r0, r4, #0x0 +_0205753A: + pop {r3-r7, pc} + + thumb_func_start sub_0205753C +sub_0205753C: ; 0x0205753C + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, sp, #0x0 + mov r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02058BF8 + ldr r1, [sp, #0x38] + add r0, sp, #0x0 + bl sub_02058C00 + ldr r1, [sp, #0x3c] + add r0, sp, #0x0 + bl sub_02058C08 + add r0, sp, #0x0 + mov r1, #0x0 + bl sub_02058C10 + add r0, sp, #0x0 + mov r1, #0x0 + bl sub_02058C18 + add r0, sp, #0x0 + mov r1, #0x0 + bl sub_02058C20 + add r0, sp, #0x0 + add r1, r7, #0x0 + bl sub_02058C28 + mov r1, #0x0 + add r0, sp, #0x0 + add r2, r1, #0x0 + bl sub_02058C34 + add r0, sp, #0x0 + mov r1, #0x0 + mov r2, #0x1 + bl sub_02058C34 + add r0, sp, #0x0 + mov r1, #0x0 + mov r2, #0x2 + bl sub_02058C34 + add r0, sp, #0x0 + mov r1, #0x0 + bl sub_02058C7C + add r0, sp, #0x0 + mov r1, #0x0 + bl sub_02058C88 + add r0, sp, #0x0 + add r1, r4, #0x0 + bl sub_02058C94 + add r0, sp, #0x0 + add r1, r6, #0x0 + bl sub_02058CA4 + add r0, sp, #0x0 + mov r1, #0x0 + bl sub_02058C9C + ldr r2, [sp, #0x40] + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_02057494 + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start sub_020575D4 +sub_020575D4: ; 0x020575D4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + ldr r2, [sp, #0x18] + add r7, r3, #0x0 + mov r4, #0x0 + bl sub_02058CAC + str r0, [sp, #0x0] + cmp r0, #0x0 + beq _02057610 + bl sub_02058C1C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_020583E8 + lsl r1, r6, #0x10 + lsr r1, r1, #0x10 + bl sub_02039528 + cmp r0, #0x0 + bne _02057610 + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + add r2, r7, #0x0 + bl sub_02057494 + add r4, r0, #0x0 +_02057610: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02057614 +sub_02057614: ; 0x02057614 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058454 + add r0, r4, #0x0 + bl sub_02058148 + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0xe + bl sub_02058418 + add r0, r4, #0x0 + bl sub_020581B4 + pop {r4, pc} + + thumb_func_start sub_02057634 +sub_02057634: ; 0x02057634 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02058934 + cmp r0, #0x1 + bne _02057648 + add r0, r5, #0x0 + bl sub_020576A8 +_02057648: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02057614 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02057654 +sub_02057654: ; 0x02057654 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058578 + bl sub_020587E0 + cmp r0, #0x1 + bne _0205766A + add r0, r4, #0x0 + bl sub_020586B4 +_0205766A: + add r0, r4, #0x0 + bl sub_02058660 + add r0, r4, #0x0 + bl sub_02058564 + add r0, r4, #0x0 + bl sub_02058580 + bl sub_02058374 + add r0, r4, #0x0 + bl sub_02057F80 + pop {r4, pc} + + thumb_func_start sub_02057688 +sub_02057688: ; 0x02057688 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02058490 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058738 + lsl r1, r5, #0x10 + lsr r1, r1, #0x10 + bl sub_0203953C + add r0, r4, #0x0 + bl sub_02057654 + pop {r3-r5, pc} + + thumb_func_start sub_020576A8 +sub_020576A8: ; 0x020576A8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058578 + bl sub_020587E0 + cmp r0, #0x1 + bne _020576D6 + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0xe + bl sub_02058424 + cmp r0, #0x0 + beq _020576CC + add r0, r4, #0x0 + bl sub_020586B4 +_020576CC: + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0xe + bl sub_02058418 +_020576D6: + ldr r1, _02057708 ; =0x0000FFFF + add r0, r4, #0x0 + bl sub_02058454 + ldr r1, _0205770C ; =sub_02058ED8 + add r0, r4, #0x0 + bl sub_02058684 + ldr r1, _02057710 ; =sub_02058EDC + add r0, r4, #0x0 + bl sub_02058698 + ldr r1, _02057710 ; =sub_02058EDC + add r0, r4, #0x0 + bl sub_020586AC + ldr r1, _02057714 ; =sub_02058EE0 + add r0, r4, #0x0 + bl sub_020586C0 + ldr r1, _02057718 ; =sub_02058EE4 + add r0, r4, #0x0 + bl sub_020586D4 + pop {r4, pc} + .balign 4 +_02057708: .word 0x0000FFFF +_0205770C: .word sub_02058ED8 + 1 +_02057710: .word sub_02058EDC + 1 +_02057714: .word sub_02058EE0 + 1 +_02057718: .word sub_02058EE4 + 1 + + thumb_func_start sub_0205771C +sub_0205771C: ; 0x0205771C + push {r3-r7, lr} + add r5, r0, #0x0 + mov r4, #0x0 + bl sub_02058368 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_020583CC + mov r7, #0x4a + add r5, r0, #0x0 + lsl r7, r7, #0x2 +_02057734: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02058424 + cmp r0, #0x0 + beq _02057746 + add r0, r5, #0x0 + bl sub_02057654 +_02057746: + add r4, r4, #0x1 + add r5, r5, r7 + cmp r4, r6 + blt _02057734 + pop {r3-r7, pc} + + thumb_func_start sub_02057750 +sub_02057750: ; 0x02057750 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020587E0 + cmp r0, #0x1 + beq _02057760 + bl sub_02020C2C +_02057760: + add r0, r5, #0x0 + mov r4, #0x0 + bl sub_02058368 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_020583CC + mov r7, #0x4a + add r5, r0, #0x0 + lsl r7, r7, #0x2 +_02057776: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02058424 + cmp r0, #0x0 + beq _0205779C + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0xe + bl sub_02058424 + cmp r0, #0x0 + beq _0205779C + add r0, r5, #0x0 + bl sub_020586C8 + add r0, r5, #0x0 + bl sub_0205816C +_0205779C: + add r4, r4, #0x1 + add r5, r5, r7 + cmp r4, r6 + blt _02057776 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020577A8 +sub_020577A8: ; 0x020577A8 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020587E0 + cmp r0, #0x1 + beq _020577B8 + bl sub_02020C2C +_020577B8: + add r0, r5, #0x0 + mov r4, #0x0 + bl sub_02058368 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_020583CC + mov r7, #0x4a + add r5, r0, #0x0 + lsl r7, r7, #0x2 +_020577CE: + add r0, r5, #0x0 + bl sub_02058830 + cmp r0, #0x1 + bne _020577F6 + add r0, r5, #0x0 + bl sub_02058884 + cmp r0, #0x1 + bne _020577EA + add r0, r5, #0x0 + bl sub_020586DC + b _020577F0 +_020577EA: + add r0, r5, #0x0 + bl sub_020581B4 +_020577F0: + add r0, r5, #0x0 + bl sub_02058148 +_020577F6: + add r4, r4, #0x1 + add r5, r5, r7 + cmp r4, r6 + blt _020577CE + pop {r3-r7, pc} + + thumb_func_start sub_02057800 +sub_02057800: ; 0x02057800 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + add r1, sp, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x0 + beq _02057846 +_02057820: + ldr r1, [sp, #0x0] + add r0, r7, #0x0 + add r2, r5, #0x0 + bl sub_02057894 + sub r4, r4, #0x1 + add r5, #0x50 + cmp r4, #0x0 + bgt _02057836 + bl sub_02020C2C +_02057836: + add r0, r6, #0x0 + add r1, sp, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x0 + bne _02057820 +_02057846: + cmp r4, #0x0 + beq _02057856 + mov r2, #0x50 + add r0, r5, #0x0 + mov r1, #0x0 + mul r2, r4 + blx sub_020DF4A4 +_02057856: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205785C +sub_0205785C: ; 0x0205785C + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r7, r2, #0x0 + beq _02057892 +_02057866: + ldr r1, [r5, #0x0] + mov r0, #0x1 + tst r0, r1 + beq _0205788C + add r0, r6, #0x0 + bl sub_02057C64 + add r4, r0, #0x0 + bne _0205787C + bl sub_02020C2C +_0205787C: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_020579C4 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02057AEC +_0205788C: + add r5, #0x50 + sub r7, r7, #0x1 + bne _02057866 +_02057892: + pop {r3-r7, pc} + + thumb_func_start sub_02057894 +sub_02057894: ; 0x02057894 + push {r3-r6, lr} + sub sp, #0xc + add r5, r1, #0x0 + add r6, r0, #0x0 + add r4, r2, #0x0 + add r0, r5, #0x0 + bl sub_0205840C + str r0, [r4, #0x0] + add r0, r5, #0x0 + bl sub_02058440 + str r0, [r4, #0x4] + add r0, r5, #0x0 + bl sub_02058448 + strb r0, [r4, #0x8] + add r0, r5, #0x0 + bl sub_02058450 + strh r0, [r4, #0x10] + add r0, r5, #0x0 + bl sub_02058458 + strh r0, [r4, #0x12] + add r0, r5, #0x0 + bl sub_02058480 + strb r0, [r4, #0x9] + add r0, r5, #0x0 + bl sub_02058488 + strh r0, [r4, #0x14] + add r0, r5, #0x0 + bl sub_02058490 + strh r0, [r4, #0x16] + add r0, r5, #0x0 + bl sub_02058498 + strh r0, [r4, #0x18] + add r0, r5, #0x0 + bl sub_020584A0 + strb r0, [r4, #0xc] + add r0, r5, #0x0 + bl sub_020584C4 + strb r0, [r4, #0xd] + add r0, r5, #0x0 + bl sub_020584D4 + strb r0, [r4, #0xe] + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + strh r0, [r4, #0x1a] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02058510 + strh r0, [r4, #0x1c] + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_02058510 + strh r0, [r4, #0x1e] + add r0, r5, #0x0 + bl sub_02058538 + strb r0, [r4, #0xa] + add r0, r5, #0x0 + bl sub_02058540 + strb r0, [r4, #0xb] + add r0, r5, #0x0 + bl sub_02058AFC + strh r0, [r4, #0x20] + add r0, r5, #0x0 + bl sub_02058B04 + strh r0, [r4, #0x22] + add r0, r5, #0x0 + bl sub_02058B0C + strh r0, [r4, #0x24] + add r0, r5, #0x0 + bl sub_02058B2C + strh r0, [r4, #0x26] + add r0, r5, #0x0 + bl sub_02058B3C + strh r0, [r4, #0x28] + add r0, r5, #0x0 + bl sub_02058B4C + strh r0, [r4, #0x2a] + mov r0, #0x26 + mov r1, #0x2a + ldrsh r0, [r4, r0] + ldrsh r1, [r4, r1] + add r2, sp, #0x0 + bl sub_02059E60 + add r0, r5, #0x0 + bl sub_02058B80 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02058AE4 + add r2, r0, #0x0 + add r0, r6, #0x0 + add r1, sp, #0x0 + bl sub_02059EC8 + cmp r0, #0x0 + bne _0205798E + add r0, r5, #0x0 + bl sub_02058B80 + b _02057990 +_0205798E: + ldr r0, [sp, #0x4] +_02057990: + str r0, [r4, #0x2c] + add r0, r5, #0x0 + bl sub_020585B0 + add r3, r4, #0x0 + add r3, #0x30 + mov r2, #0x10 +_0205799E: + ldrb r1, [r0, #0x0] + add r0, r0, #0x1 + strb r1, [r3, #0x0] + add r3, r3, #0x1 + sub r2, r2, #0x1 + bne _0205799E + add r0, r5, #0x0 + bl sub_020585D8 + add r4, #0x40 + mov r2, #0x10 +_020579B4: + ldrb r1, [r0, #0x0] + add r0, r0, #0x1 + strb r1, [r4, #0x0] + add r4, r4, #0x1 + sub r2, r2, #0x1 + bne _020579B4 + add sp, #0xc + pop {r3-r6, pc} + + thumb_func_start sub_020579C4 +sub_020579C4: ; 0x020579C4 + push {r4-r5, lr} + sub sp, #0xc + add r4, r1, #0x0 + ldr r1, [r4, #0x0] + add r5, r0, #0x0 + bl sub_02058408 + ldr r1, [r4, #0x4] + add r0, r5, #0x0 + bl sub_0205843C + ldrb r1, [r4, #0x8] + add r0, r5, #0x0 + bl sub_02058444 + ldrh r1, [r4, #0x10] + add r0, r5, #0x0 + bl sub_0205844C + ldrh r1, [r4, #0x12] + add r0, r5, #0x0 + bl sub_02058454 + ldrb r1, [r4, #0x9] + add r0, r5, #0x0 + bl sub_0205847C + ldrh r1, [r4, #0x14] + add r0, r5, #0x0 + bl sub_02058484 + ldrh r1, [r4, #0x16] + add r0, r5, #0x0 + bl sub_0205848C + ldrh r1, [r4, #0x18] + add r0, r5, #0x0 + bl sub_02058494 + mov r1, #0xc + ldrsb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_0205849C + mov r1, #0xd + ldrsb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_020584A4 + mov r1, #0xe + ldrsb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_020584CC + mov r1, #0x1a + ldrsh r1, [r4, r1] + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_020584EC + mov r1, #0x1c + ldrsh r1, [r4, r1] + add r0, r5, #0x0 + mov r2, #0x1 + bl sub_020584EC + mov r1, #0x1e + ldrsh r1, [r4, r1] + add r0, r5, #0x0 + mov r2, #0x2 + bl sub_020584EC + mov r1, #0xa + ldrsb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02058534 + mov r1, #0xb + ldrsb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_0205853C + mov r1, #0x20 + ldrsh r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02058B00 + mov r1, #0x22 + ldrsh r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02058B08 + mov r1, #0x24 + ldrsh r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02058B10 + mov r1, #0x26 + ldrsh r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02058B30 + mov r1, #0x28 + ldrsh r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02058B40 + mov r1, #0x2a + ldrsh r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02058B50 + add r1, sp, #0x0 + mov r0, #0x0 + str r0, [r1, #0x0] + str r0, [r1, #0x4] + str r0, [r1, #0x8] + ldr r0, [r4, #0x2c] + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02058B6C + add r0, r5, #0x0 + bl sub_020585B0 + add r3, r4, #0x0 + add r3, #0x30 + mov r2, #0x10 +_02057AC4: + ldrb r1, [r3, #0x0] + add r3, r3, #0x1 + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _02057AC4 + add r0, r5, #0x0 + bl sub_020585D8 + add r4, #0x40 + mov r2, #0x10 +_02057ADA: + ldrb r1, [r4, #0x0] + add r4, r4, #0x1 + strb r1, [r0, #0x0] + add r0, r0, #0x1 + sub r2, r2, #0x1 + bne _02057ADA + add sp, #0xc + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_02057AEC +sub_02057AEC: ; 0x02057AEC + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02057B34 + add r0, r4, #0x0 + bl sub_02057B54 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058570 + add r0, r4, #0x0 + bl sub_02057EE0 + add r0, r4, #0x0 + bl sub_0205AE80 + add r0, r4, #0x0 + bl sub_020581B4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02057CF0 + add r0, r4, #0x0 + bl sub_0205866C + add r0, r5, #0x0 + bl sub_02058360 + bl sub_0205836C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02057B34 +sub_02057B34: ; 0x02057B34 + push {r4, lr} + mov r1, #0x5 + add r4, r0, #0x0 + bl sub_02058410 + ldr r1, _02057B50 ; =0x00EF4248 + add r0, r4, #0x0 + bl sub_02058418 + add r0, r4, #0x0 + bl sub_0205815C + pop {r4, pc} + nop +_02057B50: .word 0x00EF4248 + + thumb_func_start sub_02057B54 +sub_02057B54: ; 0x02057B54 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r1, sp, #0x0 + bl sub_02058B5C + add r0, r4, #0x0 + bl sub_02058B2C + add r1, r0, #0x0 + mov r0, #0x2 + lsl r2, r1, #0x10 + lsl r0, r0, #0xe + add r0, r2, r0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02058B18 + add r0, r4, #0x0 + bl sub_02058B3C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B20 + add r0, r4, #0x0 + bl sub_02058B4C + add r1, r0, #0x0 + mov r0, #0x2 + lsl r2, r1, #0x10 + lsl r0, r0, #0xe + add r0, r2, r0 + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl sub_02058B28 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02058B6C + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02057BAC +sub_02057BAC: ; 0x02057BAC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r2, #0x0 + add r7, r0, #0x0 + add r4, r3, #0x0 + str r1, [sp, #0x0] + cmp r5, #0x0 + bne _02057BC0 + bl sub_02020C2C +_02057BC0: + lsl r0, r5, #0x5 + str r0, [sp, #0x4] + ldr r1, [sp, #0x4] + mov r0, #0xb + bl sub_020169D8 + add r6, r0, #0x0 + bne _02057BD4 + bl sub_02020C2C +_02057BD4: + ldr r2, [sp, #0x4] + add r0, r6, #0x0 + add r1, r4, #0x0 + blx sub_020DF438 + mov r0, #0xb + mov r1, #0x14 + bl sub_020169D8 + add r4, r0, #0x0 + bne _02057BEE + bl sub_02020C2C +_02057BEE: + ldr r0, [sp, #0x0] + str r0, [r4, #0x0] + str r5, [r4, #0x4] + mov r0, #0x0 + str r0, [r4, #0x8] + str r7, [r4, #0xc] + add r0, r4, #0x0 + str r6, [r4, #0x10] + bl sub_02057C08 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02057C08 +sub_02057C08: ; 0x02057C08 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_020583E8 + add r6, r5, #0x0 + ldr r4, [r5, #0x10] + add r7, r0, #0x0 + add r6, #0x8 +_02057C1A: + add r0, r4, #0x0 + bl sub_02058CE0 + cmp r0, #0x1 + beq _02057C30 + ldrh r1, [r4, #0x8] + add r0, r7, #0x0 + bl sub_02039528 + cmp r0, #0x0 + bne _02057C42 +_02057C30: + ldr r0, [r5, #0xc] + ldr r2, [r5, #0x0] + add r1, r4, #0x0 + bl sub_02057494 + cmp r0, #0x0 + bne _02057C42 + bl sub_02020C2C +_02057C42: + ldr r0, [r6, #0x0] + add r4, #0x20 + add r0, r0, #0x1 + str r0, [r6, #0x0] + ldr r1, [r5, #0x8] + ldr r0, [r5, #0x4] + cmp r1, r0 + blt _02057C1A + ldr r1, [r5, #0x10] + mov r0, #0xb + bl sub_02016A8C + mov r0, #0xb + add r1, r5, #0x0 + bl sub_02016A8C + pop {r3-r7, pc} + + thumb_func_start sub_02057C64 +sub_02057C64: ; 0x02057C64 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r4, #0x0 + bl sub_02058368 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_020583CC + mov r7, #0x4a + add r5, r0, #0x0 + lsl r7, r7, #0x2 +_02057C7C: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02058424 + cmp r0, #0x0 + bne _02057C8C + add r0, r5, #0x0 + pop {r3-r7, pc} +_02057C8C: + add r4, r4, #0x1 + add r5, r5, r7 + cmp r4, r6 + blt _02057C7C + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02057C98 +sub_02057C98: ; 0x02057C98 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + mov r1, #0x0 + add r4, r2, #0x0 + str r1, [sp, #0x4] + add r1, sp, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + add r6, r0, #0x0 + bl sub_020580F4 + cmp r0, #0x1 + bne _02057CEA + add r7, sp, #0x0 +_02057CB6: + ldr r0, [sp, #0x0] + bl sub_020589CC + cmp r0, #0x1 + bne _02057CDA + ldr r0, [sp, #0x0] + bl sub_02058448 + cmp r5, r0 + bne _02057CDA + ldr r0, [sp, #0x0] + bl sub_02058750 + cmp r4, r0 + bne _02057CDA + ldr r0, [sp, #0x0] + add sp, #0x8 + pop {r3-r7, pc} +_02057CDA: + add r0, r6, #0x0 + add r1, r7, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x1 + beq _02057CB6 +_02057CEA: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02057CF0 +sub_02057CF0: ; 0x02057CF0 + push {r3-r5, lr} + add r4, r1, #0x0 + bl sub_0205839C + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058480 + cmp r0, #0x30 + beq _02057D08 + cmp r0, #0x32 + bne _02057D0A +_02057D08: + add r5, r5, #0x2 +_02057D0A: + ldr r0, _02057D28 ; =sub_0205832C + add r1, r4, #0x0 + add r2, r5, #0x0 + bl sub_0200CA44 + add r5, r0, #0x0 + bne _02057D1C + bl sub_02020C2C +_02057D1C: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058554 + pop {r3-r5, pc} + nop +_02057D28: .word sub_0205832C + 1 + + thumb_func_start sub_02057D2C +sub_02057D2C: ; 0x02057D2C + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r6, r2, #0x0 + bl sub_02058BFC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058444 + add r0, r4, #0x0 + bl sub_02058C04 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl sub_02058170 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058454 + add r0, r4, #0x0 + bl sub_02058C0C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205847C + add r0, r4, #0x0 + bl sub_02058C14 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058484 + add r0, r4, #0x0 + bl sub_02058C1C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205848C + add r0, r4, #0x0 + bl sub_02058C24 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058494 + add r0, r4, #0x0 + bl sub_02058C2C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205849C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058C58 + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_020584EC + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02058C58 + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x1 + bl sub_020584EC + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02058C58 + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x2 + bl sub_020584EC + add r0, r4, #0x0 + bl sub_02058C80 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058534 + add r0, r4, #0x0 + bl sub_02058C8C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205853C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02057DFC + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02057DFC +sub_02057DFC: ; 0x02057DFC + push {r3-r6, lr} + sub sp, #0xc + add r6, r1, #0x0 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02058C98 + add r5, r0, #0x0 + mov r0, #0x2 + lsl r1, r5, #0x10 + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058B00 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058B18 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058B30 + add r0, r6, #0x0 + bl sub_02058CA0 + asr r1, r0, #0x3 + str r0, [sp, #0x4] + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r5, r0, #0xc + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058B08 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058B20 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058B40 + add r0, r6, #0x0 + bl sub_02058CA8 + add r5, r0, #0x0 + mov r0, #0x2 + lsl r1, r5, #0x10 + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x8] + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058B10 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058B28 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02058B50 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02058B6C + add sp, #0xc + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02057E90 +sub_02057E90: ; 0x02057E90 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, _02057EDC ; =0x00001801 + add r5, r0, #0x0 + bl sub_02058410 + add r0, r5, #0x0 + bl sub_020581F8 + cmp r0, #0x1 + bne _02057EAE + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020589B0 +_02057EAE: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02058570 + add r0, r5, #0x0 + bl sub_020584A0 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_020584A4 + add r0, r5, #0x0 + bl sub_020584A0 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_0205AE80 + pop {r3-r5, pc} + nop +_02057EDC: .word 0x00001801 + + thumb_func_start sub_02057EE0 +sub_02057EE0: ; 0x02057EE0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02058480 + bl sub_02058D14 + add r4, r0, #0x0 + bl sub_02058D2C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058630 + add r0, r4, #0x0 + bl sub_02058D30 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058644 + add r0, r4, #0x0 + bl sub_02058D34 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058658 + pop {r3-r5, pc} + + thumb_func_start sub_02057F18 +sub_02057F18: ; 0x02057F18 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02058458 + mov r1, #0x2 + lsl r1, r1, #0xc + cmp r0, r1 + bne _02057F2C + ldr r5, _02057F7C ; =0x021F9080 + b _02057F32 +_02057F2C: + bl sub_02058D4C + add r5, r0, #0x0 +_02057F32: + add r0, r5, #0x0 + bl sub_02058D38 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058684 + add r0, r5, #0x0 + bl sub_02058D3C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058698 + add r0, r5, #0x0 + bl sub_02058D40 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_020586AC + add r0, r5, #0x0 + bl sub_02058D44 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_020586C0 + add r0, r5, #0x0 + bl sub_02058D48 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_020586D4 + pop {r3-r5, pc} + nop +_02057F7C: .word 0x021F9080 + + thumb_func_start sub_02057F80 +sub_02057F80: ; 0x02057F80 + ldr r3, _02057F8C ; =sub_020DF4A4 + mov r2, #0x4a + mov r1, #0x0 + lsl r2, r2, #0x2 + bx r3 + nop +_02057F8C: .word sub_020DF4A4 + + thumb_func_start sub_02057F90 +sub_02057F90: ; 0x02057F90 + push {r3-r7, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + add r4, r3, #0x0 + str r1, [sp, #0x0] + cmp r6, #0x0 + beq _0205800A +_02057F9E: + add r0, r4, #0x0 + bl sub_02058BFC + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058448 + cmp r7, r0 + bne _02058002 + add r0, r4, #0x0 + bl sub_02058CE0 + cmp r0, #0x1 + bne _02057FE8 + add r0, r4, #0x0 + bl sub_02058CFC + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_020589CC + cmp r0, #0x1 + bne _02057FDA + add r0, r5, #0x0 + bl sub_02058750 + cmp r7, r0 + bne _02058002 + mov r0, #0x1 + pop {r3-r7, pc} +_02057FDA: + add r0, r5, #0x0 + bl sub_02058450 + cmp r7, r0 + bne _02058002 + mov r0, #0x2 + pop {r3-r7, pc} +_02057FE8: + add r0, r5, #0x0 + bl sub_020589CC + cmp r0, #0x1 + bne _02058002 + add r0, r5, #0x0 + bl sub_02058750 + ldr r1, [sp, #0x0] + cmp r1, r0 + bne _02058002 + mov r0, #0x2 + pop {r3-r7, pc} +_02058002: + sub r6, r6, #0x1 + add r4, #0x20 + cmp r6, #0x0 + bne _02057F9E +_0205800A: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02058010 +sub_02058010: ; 0x02058010 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + mov r1, #0x0 + add r4, r2, #0x0 + str r1, [sp, #0x4] + add r1, sp, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + add r6, r0, #0x0 + bl sub_020580F4 + cmp r0, #0x1 + bne _02058058 + add r7, sp, #0x0 +_0205802E: + ldr r0, [sp, #0x0] + bl sub_02058448 + cmp r5, r0 + bne _02058048 + ldr r0, [sp, #0x0] + bl sub_02058450 + cmp r4, r0 + bne _02058048 + ldr r0, [sp, #0x0] + add sp, #0x8 + pop {r3-r7, pc} +_02058048: + add r0, r6, #0x0 + add r1, r7, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x1 + beq _0205802E +_02058058: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02058060 +sub_02058060: ; 0x02058060 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + cmp r5, #0x0 + bne _0205806E + bl sub_02020C2C +_0205806E: + add r0, r5, #0x0 + bl sub_02058368 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020583C4 + mov r7, #0x4a + add r5, r0, #0x0 + lsl r7, r7, #0x2 +_02058082: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205842C + cmp r0, #0x1 + bne _020580A6 + add r0, r5, #0x0 + bl sub_020589CC + cmp r0, #0x0 + bne _020580A6 + add r0, r5, #0x0 + bl sub_02058448 + cmp r6, r0 + bne _020580A6 + add r0, r5, #0x0 + pop {r3-r7, pc} +_020580A6: + sub r4, r4, #0x1 + add r5, r5, r7 + cmp r4, #0x0 + bgt _02058082 + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020580B4 +sub_020580B4: ; 0x020580B4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl sub_02058368 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020583C4 + mov r7, #0x4a + add r5, r0, #0x0 + lsl r7, r7, #0x2 +_020580CC: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205842C + cmp r0, #0x1 + bne _020580E6 + add r0, r5, #0x0 + bl sub_02058480 + cmp r6, r0 + bne _020580E6 + add r0, r5, #0x0 + pop {r3-r7, pc} +_020580E6: + sub r4, r4, #0x1 + add r5, r5, r7 + cmp r4, #0x0 + bgt _020580CC + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020580F4 +sub_020580F4: ; 0x020580F4 + push {r3-r7, lr} + add r5, r2, #0x0 + add r4, r0, #0x0 + str r1, [sp, #0x0] + add r6, r3, #0x0 + bl sub_02058368 + add r7, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, r7 + blt _0205810E + mov r0, #0x0 + pop {r3-r7, pc} +_0205810E: + add r0, r4, #0x0 + bl sub_020583C4 + mov r1, #0x4a + ldr r2, [r5, #0x0] + lsl r1, r1, #0x2 + mul r1, r2 + add r4, r0, r1 +_0205811E: + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + add r0, r0, #0x1 + str r0, [r5, #0x0] + add r0, r4, #0x0 + bl sub_02058424 + cmp r6, r0 + bne _02058138 + ldr r0, [sp, #0x0] + str r4, [r0, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} +_02058138: + mov r0, #0x4a + lsl r0, r0, #0x2 + add r4, r4, r0 + ldr r0, [r5, #0x0] + cmp r0, r7 + blt _0205811E + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02058148 +sub_02058148: ; 0x02058148 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x4 + bl sub_02058410 + add r0, r4, #0x0 + bl sub_0205815C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205815C +sub_0205815C: ; 0x0205815C + ldr r3, _02058164 ; =sub_02058418 + ldr r1, _02058168 ; =0x05108000 + bx r3 + nop +_02058164: .word sub_02058418 + 1 +_02058168: .word 0x05108000 + + thumb_func_start sub_0205816C +sub_0205816C: ; 0x0205816C + bx lr + .balign 4 + + thumb_func_start sub_02058170 +sub_02058170: ; 0x02058170 + push {r3, lr} + cmp r1, #0x65 + blt _02058186 + cmp r1, #0x75 + bgt _02058186 + sub r1, #0x65 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_02039504 + add r1, r0, #0x0 +_02058186: + add r0, r1, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205818C +sub_0205818C: ; 0x0205818C + push {r4, lr} + mov r1, #0x1 + lsl r1, r1, #0xc + add r4, r0, #0x0 + bl sub_02058424 + cmp r0, #0x0 + beq _020581A2 + add r0, r4, #0x0 + bl sub_02059D1C +_020581A2: + pop {r4, pc} + + thumb_func_start sub_020581A4 +sub_020581A4: ; 0x020581A4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02057EE0 + add r0, r4, #0x0 + bl sub_02058EE8 + pop {r4, pc} + + thumb_func_start sub_020581B4 +sub_020581B4: ; 0x020581B4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058578 + bl sub_020587E0 + cmp r0, #0x0 + beq _020581F6 + add r0, r4, #0x0 + bl sub_0205818C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_021F2E0C + add r0, r4, #0x0 + bl sub_02058884 + cmp r0, #0x0 + bne _020581F6 + add r0, r4, #0x0 + bl sub_02057F18 + add r0, r4, #0x0 + bl sub_0205868C + add r0, r4, #0x0 + bl sub_02058878 +_020581F6: + pop {r4, pc} + + thumb_func_start sub_020581F8 +sub_020581F8: ; 0x020581F8 + push {r3, lr} + bl sub_02058498 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, _02058210 ; =0x0000FFFF + cmp r1, r0 + bne _0205820C + mov r0, #0x1 + pop {r3, pc} +_0205820C: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_02058210: .word 0x0000FFFF + + thumb_func_start sub_02058214 +sub_02058214: ; 0x02058214 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_020589CC + cmp r0, #0x1 + beq _02058228 + bl sub_02020C2C +_02058228: + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020589B0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0205844C + add r0, r4, #0x0 + bl sub_02058C24 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058494 + add r0, r4, #0x0 + bl sub_02058C1C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205848C + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02058258 +sub_02058258: ; 0x02058258 + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + add r4, r1, #0x0 + bl sub_02058CE0 + cmp r0, #0x1 + beq _0205826E + bl sub_02020C2C +_0205826E: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_020589B0 + add r0, r6, #0x0 + bl sub_02058C24 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058494 + add r0, r6, #0x0 + bl sub_02058CFC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205848C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205844C + pop {r4-r6, pc} + + thumb_func_start sub_0205829C +sub_0205829C: ; 0x0205829C + push {r4, lr} + add r4, r1, #0x0 + bl sub_02058744 + add r0, r0, r4 + pop {r4, pc} + + thumb_func_start sub_020582A8 +sub_020582A8: ; 0x020582A8 + push {r4-r6, lr} + add r6, r1, #0x0 + mov r1, #0x1 + add r5, r0, #0x0 + add r4, r2, #0x0 + bl sub_0205842C + cmp r0, #0x0 + bne _020582BE + mov r0, #0x0 + pop {r4-r6, pc} +_020582BE: + add r0, r5, #0x0 + bl sub_02058448 + cmp r6, r0 + beq _020582CC + mov r0, #0x0 + pop {r4-r6, pc} +_020582CC: + add r0, r5, #0x0 + bl sub_02058450 + cmp r4, r0 + beq _020582F2 + add r0, r5, #0x0 + bl sub_020589CC + cmp r0, #0x0 + bne _020582E4 + mov r0, #0x0 + pop {r4-r6, pc} +_020582E4: + add r0, r5, #0x0 + bl sub_02058750 + cmp r4, r0 + beq _020582F2 + mov r0, #0x0 + pop {r4-r6, pc} +_020582F2: + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020582F8 +sub_020582F8: ; 0x020582F8 + push {r3-r7, lr} + add r4, r1, #0x0 + mov r1, #0x1 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_0205842C + cmp r0, #0x0 + bne _02058310 + mov r0, #0x0 + pop {r3-r7, pc} +_02058310: + add r0, r5, #0x0 + bl sub_0205845C + cmp r0, r4 + beq _0205831E + mov r0, #0x0 + pop {r3-r7, pc} +_0205831E: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_020582A8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205832C +sub_0205832C: ; 0x0205832C + push {r4, lr} + add r4, r1, #0x0 + add r0, r4, #0x0 + bl sub_02058EF8 + add r0, r4, #0x0 + bl sub_02058830 + cmp r0, #0x0 + beq _02058346 + add r0, r4, #0x0 + bl sub_02058348 +_02058346: + pop {r4, pc} + + thumb_func_start sub_02058348 +sub_02058348: ; 0x02058348 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058578 + bl sub_020587E0 + cmp r0, #0x1 + bne _0205835E + add r0, r4, #0x0 + bl sub_021F1D8C +_0205835E: + pop {r4, pc} + + thumb_func_start sub_02058360 +sub_02058360: ; 0x02058360 + bx lr + .balign 4 + + thumb_func_start sub_02058364 +sub_02058364: ; 0x02058364 + str r1, [r0, #0x4] + bx lr + + thumb_func_start sub_02058368 +sub_02058368: ; 0x02058368 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_0205836C +sub_0205836C: ; 0x0205836C + ldr r1, [r0, #0x8] + add r1, r1, #0x1 + str r1, [r0, #0x8] + bx lr + + thumb_func_start sub_02058374 +sub_02058374: ; 0x02058374 + ldr r1, [r0, #0x8] + sub r1, r1, #0x1 + str r1, [r0, #0x8] + bx lr + + thumb_func_start sub_0205837C +sub_0205837C: ; 0x0205837C + ldr r2, [r0, #0x0] + orr r1, r2 + str r1, [r0, #0x0] + bx lr + + thumb_func_start sub_02058384 +sub_02058384: ; 0x02058384 + ldr r2, [r0, #0x0] + mvn r1, r1 + and r1, r2 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058390 +sub_02058390: ; 0x02058390 + ldr r0, [r0, #0x0] + and r0, r1 + bx lr + .balign 4 + + thumb_func_start sub_02058398 +sub_02058398: ; 0x02058398 + str r1, [r0, #0xc] + bx lr + + thumb_func_start sub_0205839C +sub_0205839C: ; 0x0205839C + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_020583A0 +sub_020583A0: ; 0x020583A0 + add r0, #0x18 + bx lr + + thumb_func_start sub_020583A4 +sub_020583A4: ; 0x020583A4 + mov r2, #0x12 + lsl r2, r2, #0x4 + str r1, [r0, r2] + bx lr + + thumb_func_start sub_020583AC +sub_020583AC: ; 0x020583AC + mov r1, #0x12 + lsl r1, r1, #0x4 + ldr r0, [r0, r1] + bx lr + + thumb_func_start sub_020583B4 +sub_020583B4: ; 0x020583B4 + mov r2, #0x49 + lsl r2, r2, #0x2 + str r1, [r0, r2] + bx lr + + thumb_func_start sub_020583BC +sub_020583BC: ; 0x020583BC + mov r1, #0x49 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + bx lr + + thumb_func_start sub_020583C4 +sub_020583C4: ; 0x020583C4 + mov r1, #0x49 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + bx lr + + thumb_func_start sub_020583CC +sub_020583CC: ; 0x020583CC + mov r1, #0x49 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + bx lr + + thumb_func_start sub_020583D4 +sub_020583D4: ; 0x020583D4 + mov r1, #0x4a + ldr r2, [r0, #0x0] + lsl r1, r1, #0x2 + add r1, r2, r1 + str r1, [r0, #0x0] + bx lr + + thumb_func_start sub_020583E0 +sub_020583E0: ; 0x020583E0 + mov r2, #0x4a + lsl r2, r2, #0x2 + str r1, [r0, r2] + bx lr + + thumb_func_start sub_020583E8 +sub_020583E8: ; 0x020583E8 + mov r1, #0x4a + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + bx lr + + thumb_func_start sub_020583F0 +sub_020583F0: ; 0x020583F0 + str r1, [r0, #0x14] + bx lr + + thumb_func_start sub_020583F4 +sub_020583F4: ; 0x020583F4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x14] + cmp r0, #0x0 + bne _02058402 + bl sub_02020C2C +_02058402: + ldr r0, [r4, #0x14] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02058408 +sub_02058408: ; 0x02058408 + str r1, [r0, #0x0] + bx lr + + thumb_func_start sub_0205840C +sub_0205840C: ; 0x0205840C + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02058410 +sub_02058410: ; 0x02058410 + ldr r2, [r0, #0x0] + orr r1, r2 + str r1, [r0, #0x0] + bx lr + + thumb_func_start sub_02058418 +sub_02058418: ; 0x02058418 + ldr r2, [r0, #0x0] + mvn r1, r1 + and r1, r2 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058424 +sub_02058424: ; 0x02058424 + ldr r0, [r0, #0x0] + and r0, r1 + bx lr + .balign 4 + + thumb_func_start sub_0205842C +sub_0205842C: ; 0x0205842C + ldr r0, [r0, #0x0] + tst r0, r1 + beq _02058436 + mov r0, #0x1 + bx lr +_02058436: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0205843C +sub_0205843C: ; 0x0205843C + str r1, [r0, #0x4] + bx lr + + thumb_func_start sub_02058440 +sub_02058440: ; 0x02058440 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_02058444 +sub_02058444: ; 0x02058444 + str r1, [r0, #0x8] + bx lr + + thumb_func_start sub_02058448 +sub_02058448: ; 0x02058448 + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start sub_0205844C +sub_0205844C: ; 0x0205844C + str r1, [r0, #0xc] + bx lr + + thumb_func_start sub_02058450 +sub_02058450: ; 0x02058450 + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_02058454 +sub_02058454: ; 0x02058454 + str r1, [r0, #0x10] + bx lr + + thumb_func_start sub_02058458 +sub_02058458: ; 0x02058458 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start sub_0205845C +sub_0205845C: ; 0x0205845C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02058458 + add r4, r0, #0x0 + bl sub_0205C334 + cmp r0, #0x1 + bne _02058476 + add r0, r5, #0x0 + bl sub_0205C340 + add r4, r0, #0x0 +_02058476: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205847C +sub_0205847C: ; 0x0205847C + str r1, [r0, #0x14] + bx lr + + thumb_func_start sub_02058480 +sub_02058480: ; 0x02058480 + ldr r0, [r0, #0x14] + bx lr + + thumb_func_start sub_02058484 +sub_02058484: ; 0x02058484 + str r1, [r0, #0x18] + bx lr + + thumb_func_start sub_02058488 +sub_02058488: ; 0x02058488 + ldr r0, [r0, #0x18] + bx lr + + thumb_func_start sub_0205848C +sub_0205848C: ; 0x0205848C + str r1, [r0, #0x1c] + bx lr + + thumb_func_start sub_02058490 +sub_02058490: ; 0x02058490 + ldr r0, [r0, #0x1c] + bx lr + + thumb_func_start sub_02058494 +sub_02058494: ; 0x02058494 + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_02058498 +sub_02058498: ; 0x02058498 + ldr r0, [r0, #0x20] + bx lr + + thumb_func_start sub_0205849C +sub_0205849C: ; 0x0205849C + str r1, [r0, #0x24] + bx lr + + thumb_func_start sub_020584A0 +sub_020584A0: ; 0x020584A0 + ldr r0, [r0, #0x24] + bx lr + + thumb_func_start sub_020584A4 +sub_020584A4: ; 0x020584A4 + ldr r2, [r0, #0x28] + str r2, [r0, #0x30] + str r1, [r0, #0x28] + bx lr + + thumb_func_start sub_020584AC +sub_020584AC: ; 0x020584AC + push {r3-r5, lr} + add r4, r1, #0x0 + mov r1, #0x80 + add r5, r0, #0x0 + bl sub_02058424 + cmp r0, #0x0 + bne _020584C2 + ldr r0, [r5, #0x28] + str r0, [r5, #0x30] + str r4, [r5, #0x28] +_020584C2: + pop {r3-r5, pc} + + thumb_func_start sub_020584C4 +sub_020584C4: ; 0x020584C4 + ldr r0, [r0, #0x28] + bx lr + + thumb_func_start sub_020584C8 +sub_020584C8: ; 0x020584C8 + ldr r0, [r0, #0x30] + bx lr + + thumb_func_start sub_020584CC +sub_020584CC: ; 0x020584CC + ldr r2, [r0, #0x2c] + str r2, [r0, #0x34] + str r1, [r0, #0x2c] + bx lr + + thumb_func_start sub_020584D4 +sub_020584D4: ; 0x020584D4 + ldr r0, [r0, #0x2c] + bx lr + + thumb_func_start sub_020584D8 +sub_020584D8: ; 0x020584D8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020584AC + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020584CC + pop {r3-r5, pc} + + thumb_func_start sub_020584EC +sub_020584EC: ; 0x020584EC + push {r3, lr} + cmp r2, #0x0 + beq _020584FC + cmp r2, #0x1 + beq _02058500 + cmp r2, #0x2 + beq _02058504 + b _02058508 +_020584FC: + str r1, [r0, #0x38] + pop {r3, pc} +_02058500: + str r1, [r0, #0x3c] + pop {r3, pc} +_02058504: + str r1, [r0, #0x40] + pop {r3, pc} +_02058508: + bl sub_02020C2C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058510 +sub_02058510: ; 0x02058510 + push {r3, lr} + cmp r1, #0x0 + beq _02058520 + cmp r1, #0x1 + beq _02058524 + cmp r1, #0x2 + beq _02058528 + b _0205852C +_02058520: + ldr r0, [r0, #0x38] + pop {r3, pc} +_02058524: + ldr r0, [r0, #0x3c] + pop {r3, pc} +_02058528: + ldr r0, [r0, #0x40] + pop {r3, pc} +_0205852C: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02058534 +sub_02058534: ; 0x02058534 + str r1, [r0, #0x44] + bx lr + + thumb_func_start sub_02058538 +sub_02058538: ; 0x02058538 + ldr r0, [r0, #0x44] + bx lr + + thumb_func_start sub_0205853C +sub_0205853C: ; 0x0205853C + str r1, [r0, #0x48] + bx lr + + thumb_func_start sub_02058540 +sub_02058540: ; 0x02058540 + ldr r0, [r0, #0x48] + bx lr + + thumb_func_start sub_02058544 +sub_02058544: ; 0x02058544 + add r0, #0xa0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0205854C +sub_0205854C: ; 0x0205854C + add r0, #0xa0 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058554 +sub_02058554: ; 0x02058554 + add r0, #0xb0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0205855C +sub_0205855C: ; 0x0205855C + add r0, #0xb0 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058564 +sub_02058564: ; 0x02058564 + push {r3, lr} + bl sub_0205855C + bl sub_0200CAB4 + pop {r3, pc} + + thumb_func_start sub_02058570 +sub_02058570: ; 0x02058570 + add r0, #0xb4 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058578 +sub_02058578: ; 0x02058578 + add r0, #0xb4 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058580 +sub_02058580: ; 0x02058580 + ldr r3, _02058588 ; =sub_02058360 + add r0, #0xb4 + ldr r0, [r0, #0x0] + bx r3 + .balign 4 +_02058588: .word sub_02058360 + 1 + + thumb_func_start sub_0205858C +sub_0205858C: ; 0x0205858C + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x10 + ble _0205859A + bl sub_02020C2C +_0205859A: + add r0, r4, #0x0 + bl sub_020585B0 + mov r1, #0x0 + add r2, r5, #0x0 + add r4, r0, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020585B0 +sub_020585B0: ; 0x020585B0 + add r0, #0xd8 + bx lr + + thumb_func_start sub_020585B4 +sub_020585B4: ; 0x020585B4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x10 + ble _020585C2 + bl sub_02020C2C +_020585C2: + add r0, r4, #0x0 + bl sub_020585D8 + mov r1, #0x0 + add r2, r5, #0x0 + add r4, r0, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020585D8 +sub_020585D8: ; 0x020585D8 + add r0, #0xe8 + bx lr + + thumb_func_start sub_020585DC +sub_020585DC: ; 0x020585DC + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x10 + ble _020585EA + bl sub_02020C2C +_020585EA: + add r0, r4, #0x0 + bl sub_02058600 + mov r1, #0x0 + add r2, r5, #0x0 + add r4, r0, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02058600 +sub_02058600: ; 0x02058600 + add r0, #0xf8 + bx lr + + thumb_func_start sub_02058604 +sub_02058604: ; 0x02058604 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x20 + ble _02058612 + bl sub_02020C2C +_02058612: + add r0, r4, #0x0 + bl sub_02058628 + mov r1, #0x0 + add r2, r5, #0x0 + add r4, r0, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02058628 +sub_02058628: ; 0x02058628 + mov r1, #0x42 + lsl r1, r1, #0x2 + add r0, r0, r1 + bx lr + + thumb_func_start sub_02058630 +sub_02058630: ; 0x02058630 + add r0, #0xb8 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058638 +sub_02058638: ; 0x02058638 + push {r3, lr} + add r1, r0, #0x0 + add r1, #0xb8 + ldr r1, [r1, #0x0] + blx r1 + pop {r3, pc} + + thumb_func_start sub_02058644 +sub_02058644: ; 0x02058644 + add r0, #0xbc + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0205864C +sub_0205864C: ; 0x0205864C + push {r3, lr} + add r1, r0, #0x0 + add r1, #0xbc + ldr r1, [r1, #0x0] + blx r1 + pop {r3, pc} + + thumb_func_start sub_02058658 +sub_02058658: ; 0x02058658 + add r0, #0xc0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058660 +sub_02058660: ; 0x02058660 + push {r3, lr} + add r1, r0, #0x0 + add r1, #0xc0 + ldr r1, [r1, #0x0] + blx r1 + pop {r3, pc} + + thumb_func_start sub_0205866C +sub_0205866C: ; 0x0205866C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058480 + bl sub_02058D14 + add r1, r0, #0x0 + ldr r1, [r1, #0x10] + add r0, r4, #0x0 + blx r1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02058684 +sub_02058684: ; 0x02058684 + add r0, #0xc4 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0205868C +sub_0205868C: ; 0x0205868C + push {r3, lr} + add r1, r0, #0x0 + add r1, #0xc4 + ldr r1, [r1, #0x0] + blx r1 + pop {r3, pc} + + thumb_func_start sub_02058698 +sub_02058698: ; 0x02058698 + add r0, #0xc8 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020586A0 +sub_020586A0: ; 0x020586A0 + push {r3, lr} + add r1, r0, #0x0 + add r1, #0xc8 + ldr r1, [r1, #0x0] + blx r1 + pop {r3, pc} + + thumb_func_start sub_020586AC +sub_020586AC: ; 0x020586AC + add r0, #0xcc + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020586B4 +sub_020586B4: ; 0x020586B4 + push {r3, lr} + add r1, r0, #0x0 + add r1, #0xcc + ldr r1, [r1, #0x0] + blx r1 + pop {r3, pc} + + thumb_func_start sub_020586C0 +sub_020586C0: ; 0x020586C0 + add r0, #0xd0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020586C8 +sub_020586C8: ; 0x020586C8 + push {r3, lr} + add r1, r0, #0x0 + add r1, #0xd0 + ldr r1, [r1, #0x0] + blx r1 + pop {r3, pc} + + thumb_func_start sub_020586D4 +sub_020586D4: ; 0x020586D4 + add r0, #0xd4 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020586DC +sub_020586DC: ; 0x020586DC + push {r3, lr} + add r1, r0, #0x0 + add r1, #0xd4 + ldr r1, [r1, #0x0] + blx r1 + pop {r3, pc} + + thumb_func_start sub_020586E8 +sub_020586E8: ; 0x020586E8 + add r0, #0xa4 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020586F0 +sub_020586F0: ; 0x020586F0 + add r0, #0xa4 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020586F8 +sub_020586F8: ; 0x020586F8 + add r0, #0xa8 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058700 +sub_02058700: ; 0x02058700 + add r1, r0, #0x0 + add r1, #0xa8 + ldr r1, [r1, #0x0] + add r0, #0xa8 + add r1, r1, #0x1 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058710 +sub_02058710: ; 0x02058710 + add r0, #0xa8 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058718 +sub_02058718: ; 0x02058718 + add r0, #0xac + strh r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058720 +sub_02058720: ; 0x02058720 + add r0, #0xac + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058728 +sub_02058728: ; 0x02058728 + add r0, #0xae + strh r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058730 +sub_02058730: ; 0x02058730 + add r0, #0xae + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02058738 +sub_02058738: ; 0x02058738 + push {r3, lr} + bl sub_02058580 + bl sub_020583E8 + pop {r3, pc} + + thumb_func_start sub_02058744 +sub_02058744: ; 0x02058744 + push {r3, lr} + bl sub_02058578 + bl sub_0205839C + pop {r3, pc} + + thumb_func_start sub_02058750 +sub_02058750: ; 0x02058750 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020589CC + cmp r0, #0x1 + beq _02058760 + bl sub_02020C2C +_02058760: + add r0, r4, #0x0 + bl sub_02058490 + pop {r4, pc} + + thumb_func_start sub_02058768 +sub_02058768: ; 0x02058768 + ldr r3, _02058770 ; =sub_0205837C + mov r1, #0x6 + bx r3 + nop +_02058770: .word sub_0205837C + 1 + + thumb_func_start sub_02058774 +sub_02058774: ; 0x02058774 + ldr r3, _0205877C ; =sub_02058384 + mov r1, #0x6 + bx r3 + nop +_0205877C: .word sub_02058384 + 1 + + thumb_func_start sub_02058780 +sub_02058780: ; 0x02058780 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02058368 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020583CC + mov r6, #0x4a + add r5, r0, #0x0 + lsl r6, r6, #0x2 +_02058796: + add r0, r5, #0x0 + bl sub_02058830 + cmp r0, #0x0 + beq _020587A6 + add r0, r5, #0x0 + bl sub_02058908 +_020587A6: + add r5, r5, r6 + sub r4, r4, #0x1 + bne _02058796 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020587B0 +sub_020587B0: ; 0x020587B0 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02058368 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020583CC + mov r6, #0x4a + add r5, r0, #0x0 + lsl r6, r6, #0x2 +_020587C6: + add r0, r5, #0x0 + bl sub_02058830 + cmp r0, #0x0 + beq _020587D6 + add r0, r5, #0x0 + bl sub_02058914 +_020587D6: + add r5, r5, r6 + sub r4, r4, #0x1 + bne _020587C6 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020587E0 +sub_020587E0: ; 0x020587E0 + push {r3, lr} + mov r1, #0x1 + bl sub_02058390 + cmp r0, #0x0 + beq _020587F0 + mov r0, #0x1 + pop {r3, pc} +_020587F0: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_020587F4 +sub_020587F4: ; 0x020587F4 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02058578 + add r1, r4, #0x0 + bl sub_02058390 + pop {r4, pc} + + thumb_func_start sub_02058804 +sub_02058804: ; 0x02058804 + push {r3, lr} + cmp r1, #0x0 + bne _02058812 + mov r1, #0x8 + bl sub_0205837C + pop {r3, pc} +_02058812: + mov r1, #0x8 + bl sub_02058384 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205881C +sub_0205881C: ; 0x0205881C + push {r3, lr} + mov r1, #0x8 + bl sub_02058390 + cmp r0, #0x0 + bne _0205882C + mov r0, #0x1 + pop {r3, pc} +_0205882C: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02058830 +sub_02058830: ; 0x02058830 + ldr r3, _02058838 ; =sub_0205842C + mov r1, #0x1 + bx r3 + nop +_02058838: .word sub_0205842C + 1 + + thumb_func_start sub_0205883C +sub_0205883C: ; 0x0205883C + ldr r3, _02058844 ; =sub_02058410 + mov r1, #0x2 + bx r3 + nop +_02058844: .word sub_02058410 + 1 + + thumb_func_start sub_02058848 +sub_02058848: ; 0x02058848 + ldr r3, _02058850 ; =sub_02058418 + mov r1, #0x2 + bx r3 + nop +_02058850: .word sub_02058418 + 1 + + thumb_func_start sub_02058854 +sub_02058854: ; 0x02058854 + ldr r3, _0205885C ; =sub_0205842C + mov r1, #0x2 + bx r3 + nop +_0205885C: .word sub_0205842C + 1 + + thumb_func_start sub_02058860 +sub_02058860: ; 0x02058860 + ldr r3, _02058868 ; =sub_02058410 + mov r1, #0x4 + bx r3 + nop +_02058868: .word sub_02058410 + 1 + + thumb_func_start sub_0205886C +sub_0205886C: ; 0x0205886C + ldr r3, _02058874 ; =sub_02058418 + mov r1, #0x8 + bx r3 + nop +_02058874: .word sub_02058418 + 1 + + thumb_func_start sub_02058878 +sub_02058878: ; 0x02058878 + ldr r3, _02058880 ; =sub_02058410 + mov r1, #0x1 + lsl r1, r1, #0xe + bx r3 + .balign 4 +_02058880: .word sub_02058410 + 1 + + thumb_func_start sub_02058884 +sub_02058884: ; 0x02058884 + ldr r3, _0205888C ; =sub_0205842C + mov r1, #0x1 + lsl r1, r1, #0xe + bx r3 + .balign 4 +_0205888C: .word sub_0205842C + 1 + + thumb_func_start sub_02058890 +sub_02058890: ; 0x02058890 + ldr r3, _02058898 ; =sub_0205842C + mov r1, #0x2 + lsl r1, r1, #0x8 + bx r3 + .balign 4 +_02058898: .word sub_0205842C + 1 + + thumb_func_start sub_0205889C +sub_0205889C: ; 0x0205889C + push {r3, lr} + cmp r1, #0x1 + bne _020588AC + mov r1, #0x2 + lsl r1, r1, #0x8 + bl sub_02058410 + pop {r3, pc} +_020588AC: + mov r1, #0x2 + lsl r1, r1, #0x8 + bl sub_02058418 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020588B8 +sub_020588B8: ; 0x020588B8 + push {r3, lr} + cmp r1, #0x1 + bne _020588C8 + mov r1, #0x1 + lsl r1, r1, #0x12 + bl sub_02058418 + pop {r3, pc} +_020588C8: + mov r1, #0x1 + lsl r1, r1, #0x12 + bl sub_02058410 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020588D4 +sub_020588D4: ; 0x020588D4 + push {r3, lr} + mov r1, #0x2 + lsl r1, r1, #0x12 + bl sub_0205842C + cmp r0, #0x1 + beq _020588E6 + mov r0, #0x1 + pop {r3, pc} +_020588E6: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020588EC +sub_020588EC: ; 0x020588EC + push {r3, lr} + cmp r1, #0x1 + bne _020588FC + mov r1, #0x2 + lsl r1, r1, #0x12 + bl sub_02058410 + pop {r3, pc} +_020588FC: + mov r1, #0x2 + lsl r1, r1, #0x12 + bl sub_02058418 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058908 +sub_02058908: ; 0x02058908 + ldr r3, _02058910 ; =sub_02058410 + mov r1, #0x40 + bx r3 + nop +_02058910: .word sub_02058410 + 1 + + thumb_func_start sub_02058914 +sub_02058914: ; 0x02058914 + ldr r3, _0205891C ; =sub_02058418 + mov r1, #0x40 + bx r3 + nop +_0205891C: .word sub_02058418 + 1 + + thumb_func_start sub_02058920 +sub_02058920: ; 0x02058920 + push {r3, lr} + mov r1, #0x40 + bl sub_0205842C + cmp r0, #0x1 + bne _02058930 + mov r0, #0x1 + pop {r3, pc} +_02058930: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02058934 +sub_02058934: ; 0x02058934 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058578 + bl sub_020587E0 + cmp r0, #0x0 + bne _02058948 + mov r0, #0x0 + pop {r4, pc} +_02058948: + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0xe + bl sub_02058424 + cmp r0, #0x0 + beq _0205895A + mov r0, #0x1 + pop {r4, pc} +_0205895A: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02058960 +sub_02058960: ; 0x02058960 + push {r3, lr} + cmp r1, #0x1 + bne _02058970 + mov r1, #0x2 + lsl r1, r1, #0x16 + bl sub_02058410 + pop {r3, pc} +_02058970: + mov r1, #0x2 + lsl r1, r1, #0x16 + bl sub_02058418 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205897C +sub_0205897C: ; 0x0205897C + push {r3, lr} + mov r1, #0x2 + lsl r1, r1, #0x16 + bl sub_02058424 + cmp r0, #0x0 + beq _0205898E + mov r0, #0x1 + pop {r3, pc} +_0205898E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058994 +sub_02058994: ; 0x02058994 + push {r3, lr} + cmp r1, #0x1 + bne _020589A4 + mov r1, #0x1 + lsl r1, r1, #0xa + bl sub_02058410 + pop {r3, pc} +_020589A4: + mov r1, #0x1 + lsl r1, r1, #0xa + bl sub_02058418 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020589B0 +sub_020589B0: ; 0x020589B0 + push {r3, lr} + cmp r1, #0x1 + bne _020589C0 + mov r1, #0x2 + lsl r1, r1, #0x18 + bl sub_02058410 + pop {r3, pc} +_020589C0: + mov r1, #0x2 + lsl r1, r1, #0x18 + bl sub_02058418 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020589CC +sub_020589CC: ; 0x020589CC + push {r3, lr} + mov r1, #0x2 + lsl r1, r1, #0x18 + bl sub_02058424 + cmp r0, #0x0 + beq _020589DE + mov r0, #0x1 + pop {r3, pc} +_020589DE: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020589E4 +sub_020589E4: ; 0x020589E4 + push {r3, lr} + cmp r1, #0x1 + bne _020589F4 + mov r1, #0x1 + lsl r1, r1, #0x1a + bl sub_02058410 + pop {r3, pc} +_020589F4: + mov r1, #0x1 + lsl r1, r1, #0x1a + bl sub_02058418 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058A00 +sub_02058A00: ; 0x02058A00 + push {r3, lr} + mov r1, #0x1 + lsl r1, r1, #0x1a + bl sub_02058424 + cmp r0, #0x0 + beq _02058A12 + mov r0, #0x1 + pop {r3, pc} +_02058A12: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058A18 +sub_02058A18: ; 0x02058A18 + push {r3, lr} + cmp r1, #0x1 + bne _02058A28 + mov r1, #0x2 + lsl r1, r1, #0x1a + bl sub_02058410 + pop {r3, pc} +_02058A28: + mov r1, #0x2 + lsl r1, r1, #0x1a + bl sub_02058418 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058A34 +sub_02058A34: ; 0x02058A34 + push {r3, lr} + mov r1, #0x2 + lsl r1, r1, #0x1a + bl sub_02058424 + cmp r0, #0x0 + beq _02058A46 + mov r0, #0x1 + pop {r3, pc} +_02058A46: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058A4C +sub_02058A4C: ; 0x02058A4C + push {r3, lr} + cmp r1, #0x1 + bne _02058A5C + mov r1, #0x1 + lsl r1, r1, #0x1c + bl sub_02058410 + pop {r3, pc} +_02058A5C: + mov r1, #0x1 + lsl r1, r1, #0x1c + bl sub_02058418 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058A68 +sub_02058A68: ; 0x02058A68 + push {r3, lr} + mov r1, #0x1 + lsl r1, r1, #0x1c + bl sub_02058424 + cmp r0, #0x0 + beq _02058A7A + mov r0, #0x1 + pop {r3, pc} +_02058A7A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058A80 +sub_02058A80: ; 0x02058A80 + push {r3, lr} + cmp r1, #0x1 + bne _02058A90 + mov r1, #0x1 + lsl r1, r1, #0x18 + bl sub_02058410 + pop {r3, pc} +_02058A90: + mov r1, #0x1 + lsl r1, r1, #0x18 + bl sub_02058418 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058A9C +sub_02058A9C: ; 0x02058A9C + push {r3, lr} + mov r1, #0x1 + lsl r1, r1, #0x18 + bl sub_02058424 + cmp r0, #0x0 + beq _02058AAE + mov r0, #0x1 + pop {r3, pc} +_02058AAE: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058AB4 +sub_02058AB4: ; 0x02058AB4 + push {r3, lr} + mov r1, #0x10 + bl sub_02058424 + cmp r0, #0x0 + beq _02058AC4 + mov r0, #0x1 + pop {r3, pc} +_02058AC4: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02058AC8 +sub_02058AC8: ; 0x02058AC8 + push {r3, lr} + cmp r1, #0x1 + bne _02058AD8 + mov r1, #0x2 + lsl r1, r1, #0x1c + bl sub_02058410 + pop {r3, pc} +_02058AD8: + mov r1, #0x2 + lsl r1, r1, #0x1c + bl sub_02058418 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058AE4 +sub_02058AE4: ; 0x02058AE4 + push {r3, lr} + mov r1, #0x2 + lsl r1, r1, #0x1c + bl sub_02058424 + cmp r0, #0x0 + beq _02058AF6 + mov r0, #0x1 + pop {r3, pc} +_02058AF6: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058AFC +sub_02058AFC: ; 0x02058AFC + ldr r0, [r0, #0x4c] + bx lr + + thumb_func_start sub_02058B00 +sub_02058B00: ; 0x02058B00 + str r1, [r0, #0x4c] + bx lr + + thumb_func_start sub_02058B04 +sub_02058B04: ; 0x02058B04 + ldr r0, [r0, #0x50] + bx lr + + thumb_func_start sub_02058B08 +sub_02058B08: ; 0x02058B08 + str r1, [r0, #0x50] + bx lr + + thumb_func_start sub_02058B0C +sub_02058B0C: ; 0x02058B0C + ldr r0, [r0, #0x54] + bx lr + + thumb_func_start sub_02058B10 +sub_02058B10: ; 0x02058B10 + str r1, [r0, #0x54] + bx lr + + thumb_func_start sub_02058B14 +sub_02058B14: ; 0x02058B14 + ldr r0, [r0, #0x58] + bx lr + + thumb_func_start sub_02058B18 +sub_02058B18: ; 0x02058B18 + str r1, [r0, #0x58] + bx lr + + thumb_func_start sub_02058B1C +sub_02058B1C: ; 0x02058B1C + ldr r0, [r0, #0x5c] + bx lr + + thumb_func_start sub_02058B20 +sub_02058B20: ; 0x02058B20 + str r1, [r0, #0x5c] + bx lr + + thumb_func_start sub_02058B24 +sub_02058B24: ; 0x02058B24 + ldr r0, [r0, #0x60] + bx lr + + thumb_func_start sub_02058B28 +sub_02058B28: ; 0x02058B28 + str r1, [r0, #0x60] + bx lr + + thumb_func_start sub_02058B2C +sub_02058B2C: ; 0x02058B2C + ldr r0, [r0, #0x64] + bx lr + + thumb_func_start sub_02058B30 +sub_02058B30: ; 0x02058B30 + str r1, [r0, #0x64] + bx lr + + thumb_func_start sub_02058B34 +sub_02058B34: ; 0x02058B34 + ldr r2, [r0, #0x64] + add r1, r2, r1 + str r1, [r0, #0x64] + bx lr + + thumb_func_start sub_02058B3C +sub_02058B3C: ; 0x02058B3C + ldr r0, [r0, #0x68] + bx lr + + thumb_func_start sub_02058B40 +sub_02058B40: ; 0x02058B40 + str r1, [r0, #0x68] + bx lr + + thumb_func_start sub_02058B44 +sub_02058B44: ; 0x02058B44 + ldr r2, [r0, #0x68] + add r1, r2, r1 + str r1, [r0, #0x68] + bx lr + + thumb_func_start sub_02058B4C +sub_02058B4C: ; 0x02058B4C + ldr r0, [r0, #0x6c] + bx lr + + thumb_func_start sub_02058B50 +sub_02058B50: ; 0x02058B50 + str r1, [r0, #0x6c] + bx lr + + thumb_func_start sub_02058B54 +sub_02058B54: ; 0x02058B54 + ldr r2, [r0, #0x6c] + add r1, r2, r1 + str r1, [r0, #0x6c] + bx lr + + thumb_func_start sub_02058B5C +sub_02058B5C: ; 0x02058B5C + add r2, r0, #0x0 + add r2, #0x70 + add r3, r1, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + + thumb_func_start sub_02058B6C +sub_02058B6C: ; 0x02058B6C + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x70 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_02058B7C +sub_02058B7C: ; 0x02058B7C + add r0, #0x70 + bx lr + + thumb_func_start sub_02058B80 +sub_02058B80: ; 0x02058B80 + ldr r0, [r0, #0x74] + bx lr + + thumb_func_start sub_02058B84 +sub_02058B84: ; 0x02058B84 + add r2, r0, #0x0 + add r2, #0x7c + add r3, r1, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + + thumb_func_start sub_02058B94 +sub_02058B94: ; 0x02058B94 + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x7c + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_02058BA4 +sub_02058BA4: ; 0x02058BA4 + add r2, r0, #0x0 + add r2, #0x88 + add r3, r1, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + + thumb_func_start sub_02058BB4 +sub_02058BB4: ; 0x02058BB4 + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x88 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_02058BC4 +sub_02058BC4: ; 0x02058BC4 + add r2, r0, #0x0 + add r2, #0x94 + add r3, r1, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + + thumb_func_start sub_02058BD4 +sub_02058BD4: ; 0x02058BD4 + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x94 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_02058BE4 +sub_02058BE4: ; 0x02058BE4 + push {r3, lr} + bl sub_02058B80 + asr r1, r0, #0x3 + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058BF8 +sub_02058BF8: ; 0x02058BF8 + strh r1, [r0, #0x0] + bx lr + + thumb_func_start sub_02058BFC +sub_02058BFC: ; 0x02058BFC + ldrh r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02058C00 +sub_02058C00: ; 0x02058C00 + strh r1, [r0, #0x2] + bx lr + + thumb_func_start sub_02058C04 +sub_02058C04: ; 0x02058C04 + ldrh r0, [r0, #0x2] + bx lr + + thumb_func_start sub_02058C08 +sub_02058C08: ; 0x02058C08 + strh r1, [r0, #0x4] + bx lr + + thumb_func_start sub_02058C0C +sub_02058C0C: ; 0x02058C0C + ldrh r0, [r0, #0x4] + bx lr + + thumb_func_start sub_02058C10 +sub_02058C10: ; 0x02058C10 + strh r1, [r0, #0x6] + bx lr + + thumb_func_start sub_02058C14 +sub_02058C14: ; 0x02058C14 + ldrh r0, [r0, #0x6] + bx lr + + thumb_func_start sub_02058C18 +sub_02058C18: ; 0x02058C18 + strh r1, [r0, #0x8] + bx lr + + thumb_func_start sub_02058C1C +sub_02058C1C: ; 0x02058C1C + ldrh r0, [r0, #0x8] + bx lr + + thumb_func_start sub_02058C20 +sub_02058C20: ; 0x02058C20 + strh r1, [r0, #0xa] + bx lr + + thumb_func_start sub_02058C24 +sub_02058C24: ; 0x02058C24 + ldrh r0, [r0, #0xa] + bx lr + + thumb_func_start sub_02058C28 +sub_02058C28: ; 0x02058C28 + strh r1, [r0, #0xc] + bx lr + + thumb_func_start sub_02058C2C +sub_02058C2C: ; 0x02058C2C + mov r1, #0xc + ldrsh r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start sub_02058C34 +sub_02058C34: ; 0x02058C34 + push {r3, lr} + cmp r2, #0x0 + beq _02058C44 + cmp r2, #0x1 + beq _02058C48 + cmp r2, #0x2 + beq _02058C4C + b _02058C50 +_02058C44: + strh r1, [r0, #0xe] + pop {r3, pc} +_02058C48: + strh r1, [r0, #0x10] + pop {r3, pc} +_02058C4C: + strh r1, [r0, #0x12] + pop {r3, pc} +_02058C50: + bl sub_02020C2C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02058C58 +sub_02058C58: ; 0x02058C58 + push {r3, lr} + cmp r1, #0x0 + beq _02058C68 + cmp r1, #0x1 + beq _02058C6C + cmp r1, #0x2 + beq _02058C70 + b _02058C74 +_02058C68: + ldrh r0, [r0, #0xe] + pop {r3, pc} +_02058C6C: + ldrh r0, [r0, #0x10] + pop {r3, pc} +_02058C70: + ldrh r0, [r0, #0x12] + pop {r3, pc} +_02058C74: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02058C7C +sub_02058C7C: ; 0x02058C7C + strh r1, [r0, #0x14] + bx lr + + thumb_func_start sub_02058C80 +sub_02058C80: ; 0x02058C80 + mov r1, #0x14 + ldrsh r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start sub_02058C88 +sub_02058C88: ; 0x02058C88 + strh r1, [r0, #0x16] + bx lr + + thumb_func_start sub_02058C8C +sub_02058C8C: ; 0x02058C8C + mov r1, #0x16 + ldrsh r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start sub_02058C94 +sub_02058C94: ; 0x02058C94 + strh r1, [r0, #0x18] + bx lr + + thumb_func_start sub_02058C98 +sub_02058C98: ; 0x02058C98 + ldrh r0, [r0, #0x18] + bx lr + + thumb_func_start sub_02058C9C +sub_02058C9C: ; 0x02058C9C + str r1, [r0, #0x1c] + bx lr + + thumb_func_start sub_02058CA0 +sub_02058CA0: ; 0x02058CA0 + ldr r0, [r0, #0x1c] + bx lr + + thumb_func_start sub_02058CA4 +sub_02058CA4: ; 0x02058CA4 + strh r1, [r0, #0x1a] + bx lr + + thumb_func_start sub_02058CA8 +sub_02058CA8: ; 0x02058CA8 + ldrh r0, [r0, #0x1a] + bx lr + + thumb_func_start sub_02058CAC +sub_02058CAC: ; 0x02058CAC + push {r3-r7, lr} + add r6, r0, #0x0 + add r7, r1, #0x0 + str r2, [sp, #0x0] + mov r4, #0x0 + add r5, r2, #0x0 +_02058CB8: + add r0, r5, #0x0 + bl sub_02058CE0 + cmp r0, #0x0 + bne _02058CD4 + add r0, r5, #0x0 + bl sub_02058BFC + cmp r6, r0 + bne _02058CD4 + ldr r0, [sp, #0x0] + lsl r1, r4, #0x5 + add r0, r0, r1 + pop {r3-r7, pc} +_02058CD4: + add r4, r4, #0x1 + add r5, #0x20 + cmp r4, r7 + blt _02058CB8 + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02058CE0 +sub_02058CE0: ; 0x02058CE0 + push {r3, lr} + bl sub_02058C24 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, _02058CF8 ; =0x0000FFFF + cmp r1, r0 + bne _02058CF4 + mov r0, #0x1 + pop {r3, pc} +_02058CF4: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_02058CF8: .word 0x0000FFFF + + thumb_func_start sub_02058CFC +sub_02058CFC: ; 0x02058CFC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058CE0 + cmp r0, #0x1 + beq _02058D0C + bl sub_02020C2C +_02058D0C: + add r0, r4, #0x0 + bl sub_02058C1C + pop {r4, pc} + + thumb_func_start sub_02058D14 +sub_02058D14: ; 0x02058D14 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x37 + blo _02058D20 + bl sub_02020C2C +_02058D20: + ldr r0, _02058D28 ; =0x020F6364 + lsl r1, r4, #0x2 + ldr r0, [r0, r1] + pop {r4, pc} + .balign 4 +_02058D28: .word 0x020F6364 + + thumb_func_start sub_02058D2C +sub_02058D2C: ; 0x02058D2C + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_02058D30 +sub_02058D30: ; 0x02058D30 + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start sub_02058D34 +sub_02058D34: ; 0x02058D34 + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_02058D38 +sub_02058D38: ; 0x02058D38 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02058D3C +sub_02058D3C: ; 0x02058D3C + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_02058D40 +sub_02058D40: ; 0x02058D40 + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start sub_02058D44 +sub_02058D44: ; 0x02058D44 + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_02058D48 +sub_02058D48: ; 0x02058D48 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start sub_02058D4C +sub_02058D4C: ; 0x02058D4C + push {r3, lr} + ldr r3, _02058D6C ; =0x021F9494 + ldr r1, _02058D70 ; =0x0000FFFF +_02058D52: + ldr r2, [r3, #0x0] + cmp r2, r0 + bne _02058D5C + ldr r0, [r3, #0x4] + pop {r3, pc} +_02058D5C: + add r3, #0x8 + ldr r2, [r3, #0x0] + cmp r2, r1 + bne _02058D52 + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_02058D6C: .word 0x021F9494 +_02058D70: .word 0x0000FFFF + + thumb_func_start sub_02058D74 +sub_02058D74: ; 0x02058D74 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_02058368 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020583CC + add r5, r0, #0x0 +_02058D8A: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02058424 + cmp r0, #0x0 + beq _02058DAE + add r0, r5, #0x0 + bl sub_02058B2C + cmp r6, r0 + bne _02058DAE + add r0, r5, #0x0 + bl sub_02058B4C + cmp r7, r0 + bne _02058DAE + add r0, r5, #0x0 + pop {r3-r7, pc} +_02058DAE: + mov r0, #0x4a + lsl r0, r0, #0x2 + add r5, r5, r0 + sub r4, r4, #0x1 + bne _02058D8A + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02058DBC +sub_02058DBC: ; 0x02058DBC + push {r4-r6, lr} + add r4, r1, #0x0 + ldr r1, [r4, #0x0] + add r6, r2, #0x0 + asr r2, r1, #0x4 + asr r1, r2, #0xb + lsr r1, r1, #0x14 + add r1, r2, r1 + asr r1, r1, #0xc + add r5, r0, #0x0 + bl sub_02058B30 + ldr r1, [r4, #0x4] + add r0, r5, #0x0 + asr r2, r1, #0x3 + asr r1, r2, #0xb + lsr r1, r1, #0x14 + add r1, r2, r1 + asr r1, r1, #0xc + bl sub_02058B40 + ldr r1, [r4, #0x8] + add r0, r5, #0x0 + asr r2, r1, #0x4 + asr r1, r2, #0xb + lsr r1, r1, #0x14 + add r1, r2, r1 + asr r1, r1, #0xc + bl sub_02058B50 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02058B6C + add r0, r5, #0x0 + bl sub_02059C60 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020584A4 + add r0, r5, #0x0 + bl sub_0205AE80 + add r0, r5, #0x0 + mov r1, #0x4 + bl sub_02058410 + add r0, r5, #0x0 + mov r1, #0xa + bl sub_02058418 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02058E28 +sub_02058E28: ; 0x02058E28 + push {r3-r6, lr} + sub sp, #0xc + add r4, r2, #0x0 + mov r2, #0x2 + add r6, r3, #0x0 + lsl r3, r1, #0x10 + lsl r2, r2, #0xe + add r2, r3, r2 + add r5, r0, #0x0 + str r2, [sp, #0x0] + bl sub_02058B30 + lsl r0, r4, #0xf + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02058B40 + mov r0, #0x2 + lsl r1, r6, #0x10 + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02058B50 + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_02058B6C + add r0, r5, #0x0 + bl sub_02059C60 + ldr r1, [sp, #0x20] + add r0, r5, #0x0 + bl sub_020584A4 + add r0, r5, #0x0 + mov r1, #0x4 + bl sub_02058410 + add r0, r5, #0x0 + mov r1, #0xa + bl sub_02058418 + add r0, r5, #0x0 + bl sub_0205AE80 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02058E90 +sub_02058E90: ; 0x02058E90 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02058660 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205847C + add r0, r5, #0x0 + bl sub_02057EE0 + add r0, r5, #0x0 + bl sub_02058EE8 + pop {r3-r5, pc} + + thumb_func_start sub_02058EB0 +sub_02058EB0: ; 0x02058EB0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058444 + add r0, r4, #0x0 + bl sub_02058860 + add r0, r4, #0x0 + bl sub_0205815C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02058EC8 +sub_02058EC8: ; 0x02058EC8 + bx lr + .balign 4 + + thumb_func_start sub_02058ECC +sub_02058ECC: ; 0x02058ECC + bx lr + .balign 4 + + thumb_func_start sub_02058ED0 +sub_02058ED0: ; 0x02058ED0 + bx lr + .balign 4 + + thumb_func_start sub_02058ED4 +sub_02058ED4: ; 0x02058ED4 + bx lr + .balign 4 + + thumb_func_start sub_02058ED8 +sub_02058ED8: ; 0x02058ED8 + bx lr + .balign 4 + + thumb_func_start sub_02058EDC +sub_02058EDC: ; 0x02058EDC + bx lr + .balign 4 + + thumb_func_start sub_02058EE0 +sub_02058EE0: ; 0x02058EE0 + bx lr + .balign 4 + + thumb_func_start sub_02058EE4 +sub_02058EE4: ; 0x02058EE4 + bx lr + .balign 4 + + thumb_func_start sub_02058EE8 +sub_02058EE8: ; 0x02058EE8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058638 + add r0, r4, #0x0 + bl sub_0205BEF8 + pop {r4, pc} + + thumb_func_start sub_02058EF8 +sub_02058EF8: ; 0x02058EF8 + push {r4, lr} + mov r1, #0x2 + add r4, r0, #0x0 + bl sub_020587F4 + cmp r0, #0x0 + bne _02058F5C + add r0, r4, #0x0 + bl sub_02058F94 + add r0, r4, #0x0 + bl sub_02058FAC + add r0, r4, #0x0 + bl sub_02058FD0 + add r0, r4, #0x0 + mov r1, #0x10 + bl sub_02058424 + cmp r0, #0x0 + beq _02058F2C + add r0, r4, #0x0 + bl sub_0205B058 + b _02058F50 +_02058F2C: + add r0, r4, #0x0 + bl sub_02058920 + cmp r0, #0x0 + bne _02058F50 + add r0, r4, #0x0 + bl sub_02058F60 + cmp r0, #0x1 + bne _02058F50 + add r0, r4, #0x0 + bl sub_0205BF00 + cmp r0, #0x0 + bne _02058F50 + add r0, r4, #0x0 + bl sub_0205864C +_02058F50: + add r0, r4, #0x0 + bl sub_02058FF4 + add r0, r4, #0x0 + bl sub_0205902C +_02058F5C: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02058F60 +sub_02058F60: ; 0x02058F60 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058854 + cmp r0, #0x1 + bne _02058F70 + mov r0, #0x1 + pop {r4, pc} +_02058F70: + mov r1, #0x6 + add r0, r4, #0x0 + lsl r1, r1, #0xa + bl sub_02058424 + cmp r0, #0x0 + bne _02058F82 + mov r0, #0x1 + pop {r4, pc} +_02058F82: + add r0, r4, #0x0 + bl sub_02058480 + cmp r0, #0x32 + bne _02058F90 + mov r0, #0x1 + pop {r4, pc} +_02058F90: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02058F94 +sub_02058F94: ; 0x02058F94 + push {r4, lr} + mov r1, #0x1 + lsl r1, r1, #0xc + add r4, r0, #0x0 + bl sub_02058424 + cmp r0, #0x0 + beq _02058FAA + add r0, r4, #0x0 + bl sub_02059D1C +_02058FAA: + pop {r4, pc} + + thumb_func_start sub_02058FAC +sub_02058FAC: ; 0x02058FAC + push {r4, lr} + mov r1, #0x2 + lsl r1, r1, #0xa + add r4, r0, #0x0 + bl sub_02058424 + cmp r0, #0x0 + beq _02058FCC + add r0, r4, #0x0 + bl sub_02059DB4 + cmp r0, #0x1 + bne _02058FCC + add r0, r4, #0x0 + bl sub_02058860 +_02058FCC: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02058FD0 +sub_02058FD0: ; 0x02058FD0 + push {r4, lr} + mov r1, #0x4 + add r4, r0, #0x0 + bl sub_02058424 + cmp r0, #0x0 + beq _02058FE4 + add r0, r4, #0x0 + bl sub_02059064 +_02058FE4: + ldr r1, _02058FF0 ; =0x00010004 + add r0, r4, #0x0 + bl sub_02058418 + pop {r4, pc} + nop +_02058FF0: .word 0x00010004 + + thumb_func_start sub_02058FF4 +sub_02058FF4: ; 0x02058FF4 + push {r4, lr} + mov r1, #0x1 + lsl r1, r1, #0x10 + add r4, r0, #0x0 + bl sub_02058424 + cmp r0, #0x0 + beq _0205900C + add r0, r4, #0x0 + bl sub_020591A8 + b _0205901E +_0205900C: + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_02058424 + cmp r0, #0x0 + beq _0205901E + add r0, r4, #0x0 + bl sub_020590F4 +_0205901E: + ldr r1, _02059028 ; =0x00010004 + add r0, r4, #0x0 + bl sub_02058418 + pop {r4, pc} + .balign 4 +_02059028: .word 0x00010004 + + thumb_func_start sub_0205902C +sub_0205902C: ; 0x0205902C + push {r4, lr} + mov r1, #0x2 + lsl r1, r1, #0x10 + add r4, r0, #0x0 + bl sub_02058424 + cmp r0, #0x0 + beq _02059044 + add r0, r4, #0x0 + bl sub_0205928C + b _02059056 +_02059044: + add r0, r4, #0x0 + mov r1, #0x8 + bl sub_02058424 + cmp r0, #0x0 + beq _02059056 + add r0, r4, #0x0 + bl sub_02059214 +_02059056: + ldr r1, _02059060 ; =0x00020008 + add r0, r4, #0x0 + bl sub_02058418 + pop {r4, pc} + .balign 4 +_02059060: .word 0x00020008 + + thumb_func_start sub_02059064 +sub_02059064: ; 0x02059064 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02059DB4 + add r0, r5, #0x0 + bl sub_02058934 + cmp r0, #0x1 + bne _020590F2 + add r0, r5, #0x0 + bl sub_02058720 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + add r0, r5, #0x0 + bl sub_02058730 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r0, r5, #0x0 + bl sub_021F1DC8 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059838 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_0205941C + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020594C0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059500 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_0205931C + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059678 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020596A8 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020597A8 +_020590F2: + pop {r3-r7, pc} + + thumb_func_start sub_020590F4 +sub_020590F4: ; 0x020590F4 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02059DB4 + add r0, r5, #0x0 + bl sub_02058934 + cmp r0, #0x1 + bne _020591A6 + add r0, r5, #0x0 + bl sub_02058720 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + add r0, r5, #0x0 + bl sub_02058730 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r0, r5, #0x0 + bl sub_021F1DC8 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059838 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059434 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_0205944C + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020594C0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059508 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059690 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020596C0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020596D8 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059740 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020597A8 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059870 +_020591A6: + pop {r3-r7, pc} + + thumb_func_start sub_020591A8 +sub_020591A8: ; 0x020591A8 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02059DB4 + add r0, r5, #0x0 + bl sub_02058934 + cmp r0, #0x1 + bne _02059212 + add r0, r5, #0x0 + bl sub_02058720 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + add r0, r5, #0x0 + bl sub_02058730 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r0, r5, #0x0 + bl sub_021F1DC8 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059838 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059508 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020597A8 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020594F4 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059870 +_02059212: + pop {r3-r7, pc} + + thumb_func_start sub_02059214 +sub_02059214: ; 0x02059214 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02059DB4 + add r0, r5, #0x0 + bl sub_02058934 + cmp r0, #0x1 + bne _0205928A + add r0, r5, #0x0 + bl sub_02058720 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + add r0, r5, #0x0 + bl sub_02058730 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r0, r5, #0x0 + bl sub_021F1DC8 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_0205931C + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_0205970C + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059774 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020594C0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059804 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020595A4 +_0205928A: + pop {r3-r7, pc} + + thumb_func_start sub_0205928C +sub_0205928C: ; 0x0205928C + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02059DB4 + add r0, r5, #0x0 + bl sub_02058934 + cmp r0, #0x1 + bne _0205931A + add r0, r5, #0x0 + bl sub_02058720 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + add r0, r5, #0x0 + bl sub_02058730 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r0, r5, #0x0 + bl sub_021F1DC8 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_0205931C + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_0205970C + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059774 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020594C0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059804 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020595A4 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_02059434 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_0205962C +_0205931A: + pop {r3-r7, pc} + + thumb_func_start sub_0205931C +sub_0205931C: ; 0x0205931C + push {r3-r5, lr} + sub sp, #0x48 + add r4, r0, #0x0 + add r5, r1, #0x0 + bl sub_02058A34 + cmp r0, #0x0 + bne _020593F4 + add r0, r5, #0x0 + bl sub_02054984 + cmp r0, #0x1 + beq _02059340 + add r0, r5, #0x0 + bl sub_020549A0 + cmp r0, #0x1 + bne _0205935A +_02059340: + ldr r5, _02059408 ; =0x020F65FC + add r3, sp, #0x3c + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + add r1, r2, #0x0 + str r0, [r3, #0x0] + add r0, r4, #0x0 + bl sub_02058BD4 + add sp, #0x48 + pop {r3-r5, pc} +_0205935A: + add r0, r5, #0x0 + bl sub_02054974 + cmp r0, #0x1 + beq _0205936E + add r0, r5, #0x0 + bl sub_02054990 + cmp r0, #0x1 + bne _02059388 +_0205936E: + ldr r5, _0205940C ; =0x020F6608 + add r3, sp, #0x30 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + add r1, r2, #0x0 + str r0, [r3, #0x0] + add r0, r4, #0x0 + bl sub_02058BD4 + add sp, #0x48 + pop {r3-r5, pc} +_02059388: + add r0, r5, #0x0 + bl sub_020549F0 + cmp r0, #0x1 + bne _020593AC + ldr r5, _02059410 ; =0x020F65E4 + add r3, sp, #0x24 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + add r1, r2, #0x0 + str r0, [r3, #0x0] + add r0, r4, #0x0 + bl sub_02058BD4 + add sp, #0x48 + pop {r3-r5, pc} +_020593AC: + add r0, r5, #0x0 + bl sub_020549E4 + cmp r0, #0x1 + bne _020593D0 + ldr r5, _02059414 ; =0x020F65F0 + add r3, sp, #0x18 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + add r1, r2, #0x0 + str r0, [r3, #0x0] + add r0, r4, #0x0 + bl sub_02058BD4 + add sp, #0x48 + pop {r3-r5, pc} +_020593D0: + add r0, r5, #0x0 + bl sub_020549D8 + cmp r0, #0x1 + bne _020593F4 + ldr r5, _02059418 ; =0x020F6614 + add r3, sp, #0xc + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + add r1, r2, #0x0 + str r0, [r3, #0x0] + add r0, r4, #0x0 + bl sub_02058BD4 + add sp, #0x48 + pop {r3-r5, pc} +_020593F4: + add r1, sp, #0x0 + mov r0, #0x0 + str r0, [r1, #0x0] + str r0, [r1, #0x4] + str r0, [r1, #0x8] + add r0, r4, #0x0 + bl sub_02058BD4 + add sp, #0x48 + pop {r3-r5, pc} + .balign 4 +_02059408: .word 0x020F65FC +_0205940C: .word 0x020F6608 +_02059410: .word 0x020F65E4 +_02059414: .word 0x020F65F0 +_02059418: .word 0x020F6614 + + thumb_func_start sub_0205941C +sub_0205941C: ; 0x0205941C + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_0205478C + cmp r0, #0x1 + bne _02059432 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0224B568 +_02059432: + pop {r4, pc} + + thumb_func_start sub_02059434 +sub_02059434: ; 0x02059434 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_0205478C + cmp r0, #0x1 + bne _0205944A + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0224B568 +_0205944A: + pop {r4, pc} + + thumb_func_start sub_0205944C +sub_0205944C: ; 0x0205944C + push {r4-r6, lr} + add r6, r3, #0x0 + ldr r1, [r6, #0x4] + add r5, r0, #0x0 + lsl r1, r1, #0x16 + add r4, r2, #0x0 + lsr r1, r1, #0x1c + beq _020594BC + add r1, r4, #0x0 + bl sub_02059AF8 + cmp r0, #0x1 + bne _02059484 + ldr r0, [r6, #0x4] + lsl r0, r0, #0x16 + lsr r0, r0, #0x1c + cmp r0, #0x1 + bne _02059478 + add r0, r5, #0x0 + bl sub_02249E6C + pop {r4-r6, pc} +_02059478: + cmp r0, #0x2 + bne _020594BC + add r0, r5, #0x0 + bl sub_02249E78 + pop {r4-r6, pc} +_02059484: + add r0, r4, #0x0 + bl sub_020549E4 + cmp r0, #0x1 + beq _020594A2 + add r0, r4, #0x0 + bl sub_020549F0 + cmp r0, #0x1 + beq _020594A2 + add r0, r4, #0x0 + bl sub_020549D8 + cmp r0, #0x0 + beq _020594AA +_020594A2: + add r0, r5, #0x0 + bl sub_02249E90 + pop {r4-r6, pc} +_020594AA: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059B60 + cmp r0, #0x1 + bne _020594BC + add r0, r5, #0x0 + bl sub_02249E84 +_020594BC: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020594C0 +sub_020594C0: ; 0x020594C0 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_0205483C + cmp r0, #0x1 + bne _020594EA + add r0, r4, #0x0 + bl sub_02058A00 + cmp r0, #0x0 + bne _020594F2 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0224B9E0 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020589E4 + pop {r4, pc} +_020594EA: + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020589E4 +_020594F2: + pop {r4, pc} + + thumb_func_start sub_020594F4 +sub_020594F4: ; 0x020594F4 + ldr r3, _020594FC ; =sub_020589E4 + mov r1, #0x0 + bx r3 + nop +_020594FC: .word sub_020589E4 + 1 + + thumb_func_start sub_02059500 +sub_02059500: ; 0x02059500 + push {r3, lr} + bl sub_02059508 + pop {r3, pc} + + thumb_func_start sub_02059508 +sub_02059508: ; 0x02059508 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r3, #0x0 + bl sub_02058578 + bl sub_0205881C + cmp r0, #0x0 + beq _020595A2 + ldr r0, [r6, #0x4] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1e + beq _020595A2 + add r0, r4, #0x0 + bl sub_0205478C + cmp r0, #0x1 + beq _02059578 + add r0, r4, #0x0 + bl sub_02054798 + cmp r0, #0x1 + beq _02059578 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059AC4 + cmp r0, #0x1 + beq _02059578 + add r0, r4, #0x0 + bl sub_02054AF0 + cmp r0, #0x1 + beq _02059578 + add r0, r4, #0x0 + bl sub_0205483C + cmp r0, #0x1 + beq _02059578 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059B2C + cmp r0, #0x1 + beq _02059578 + add r0, r4, #0x0 + bl sub_02054974 + cmp r0, #0x1 + beq _02059578 + add r0, r4, #0x0 + bl sub_02054990 + cmp r0, #0x1 + bne _02059584 +_02059578: + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0x14 + bl sub_02058410 + pop {r4-r6, pc} +_02059584: + mov r1, #0x2 + add r0, r5, #0x0 + lsl r1, r1, #0xe + bl sub_02058424 + cmp r0, #0x0 + bne _020595A2 + add r0, r5, #0x0 + bl sub_02249508 + mov r1, #0x2 + add r0, r5, #0x0 + lsl r1, r1, #0xe + bl sub_02058410 +_020595A2: + pop {r4-r6, pc} + + thumb_func_start sub_020595A4 +sub_020595A4: ; 0x020595A4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r3, #0x0 + bl sub_02058578 + bl sub_0205881C + cmp r0, #0x0 + beq _0205962A + ldr r0, [r6, #0x4] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1e + beq _0205962A + add r0, r4, #0x0 + bl sub_0205478C + cmp r0, #0x1 + beq _02059614 + add r0, r4, #0x0 + bl sub_02054798 + cmp r0, #0x1 + beq _02059614 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059AC4 + cmp r0, #0x1 + beq _02059614 + add r0, r4, #0x0 + bl sub_02054AF0 + cmp r0, #0x1 + beq _02059614 + add r0, r4, #0x0 + bl sub_0205483C + cmp r0, #0x1 + beq _02059614 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059B2C + cmp r0, #0x1 + beq _02059614 + add r0, r4, #0x0 + bl sub_02054974 + cmp r0, #0x1 + beq _02059614 + add r0, r4, #0x0 + bl sub_02054990 + cmp r0, #0x1 + bne _02059620 +_02059614: + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0x14 + bl sub_02058410 + pop {r4-r6, pc} +_02059620: + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0x14 + bl sub_02058418 +_0205962A: + pop {r4-r6, pc} + + thumb_func_start sub_0205962C +sub_0205962C: ; 0x0205962C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02059AC4 + cmp r0, #0x1 + beq _02059674 + add r0, r4, #0x0 + bl sub_0205483C + cmp r0, #0x1 + beq _02059674 + add r0, r4, #0x0 + bl sub_020548F0 + cmp r0, #0x1 + beq _02059674 + add r0, r4, #0x0 + bl sub_02054974 + cmp r0, #0x1 + beq _02059674 + add r0, r4, #0x0 + bl sub_02054990 + cmp r0, #0x1 + beq _02059674 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059B2C + cmp r0, #0x1 + beq _02059674 + add r0, r5, #0x0 + bl sub_0224BBEC +_02059674: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02059678 +sub_02059678: ; 0x02059678 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02054798 + cmp r0, #0x1 + bne _0205968E + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0224BD90 +_0205968E: + pop {r4, pc} + + thumb_func_start sub_02059690 +sub_02059690: ; 0x02059690 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02054798 + cmp r0, #0x1 + bne _020596A6 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0224BD90 +_020596A6: + pop {r4, pc} + + thumb_func_start sub_020596A8 +sub_020596A8: ; 0x020596A8 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02054990 + cmp r0, #0x1 + bne _020596BE + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0224C038 +_020596BE: + pop {r4, pc} + + thumb_func_start sub_020596C0 +sub_020596C0: ; 0x020596C0 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_02054990 + cmp r0, #0x1 + bne _020596D6 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0224C038 +_020596D6: + pop {r4, pc} + + thumb_func_start sub_020596D8 +sub_020596D8: ; 0x020596D8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + bl sub_02054AF0 + cmp r0, #0x1 + bne _02059708 + add r0, r5, #0x0 + bl sub_02058B14 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B1C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B24 + add r3, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0224B124 +_02059708: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0205970C +sub_0205970C: ; 0x0205970C + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02054AF0 + cmp r0, #0x1 + bne _0205973C + add r0, r5, #0x0 + bl sub_02058B2C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B3C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B4C + add r3, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0224B124 +_0205973C: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02059740 +sub_02059740: ; 0x02059740 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + bl sub_02054974 + cmp r0, #0x1 + bne _02059770 + add r0, r5, #0x0 + bl sub_02058B14 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B1C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B24 + add r3, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0224B2C4 +_02059770: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02059774 +sub_02059774: ; 0x02059774 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02054974 + cmp r0, #0x1 + bne _020597A4 + add r0, r5, #0x0 + bl sub_02058B2C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B3C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B4C + add r3, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0224B2C4 +_020597A4: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020597A8 +sub_020597A8: ; 0x020597A8 + push {r4-r6, lr} + add r6, r1, #0x0 + ldr r1, [r3, #0x4] + add r5, r0, #0x0 + lsl r1, r1, #0x14 + lsr r1, r1, #0x1e + beq _02059802 + mov r1, #0x1 + bl sub_02059C90 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r0, r5, #0x0 + bl sub_02058A9C + cmp r0, #0x0 + bne _02059802 + add r0, r4, #0x0 + bl sub_02054B20 + cmp r0, #0x1 + beq _020597DE + add r0, r6, #0x0 + bl sub_02054B20 + cmp r0, #0x1 + bne _02059802 +_020597DE: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02058A80 + add r0, r4, #0x0 + bl sub_02054AF0 + cmp r0, #0x1 + bne _020597FA + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_022497E8 + pop {r4-r6, pc} +_020597FA: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_022497E8 +_02059802: + pop {r4-r6, pc} + + thumb_func_start sub_02059804 +sub_02059804: ; 0x02059804 + push {r4, lr} + ldr r1, [r3, #0x4] + add r4, r0, #0x0 + lsl r1, r1, #0x14 + lsr r1, r1, #0x1e + beq _02059834 + bl sub_02058A9C + cmp r0, #0x0 + beq _02059834 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02059C90 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02054B20 + cmp r0, #0x0 + bne _02059834 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058A80 +_02059834: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02059838 +sub_02059838: ; 0x02059838 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02054B6C + cmp r0, #0x1 + bne _02059852 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02058A4C + pop {r3-r5, pc} +_02059852: + add r0, r5, #0x0 + bl sub_02058A68 + cmp r0, #0x1 + bne _0205986E + add r0, r4, #0x0 + bl sub_02054B78 + cmp r0, #0x0 + bne _0205986E + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058A4C +_0205986E: + pop {r3-r5, pc} + + thumb_func_start sub_02059870 +sub_02059870: ; 0x02059870 + bx lr + .balign 4 + + thumb_func_start sub_02059874 +sub_02059874: ; 0x02059874 + push {r3-r7, lr} + sub sp, #0x10 + ldr r7, [sp, #0x28] + add r5, r2, #0x0 + str r1, [sp, #0x4] + str r3, [sp, #0x8] + add r2, r3, #0x0 + add r1, r5, #0x0 + add r3, r7, #0x0 + add r6, r0, #0x0 + mov r4, #0x0 + bl sub_02059A08 + cmp r0, #0x1 + bne _02059896 + mov r0, #0x1 + orr r4, r0 +_02059896: + add r0, r6, #0x0 + bl sub_02058738 + add r1, sp, #0xc + str r1, [sp, #0x0] + ldr r1, [sp, #0x4] + add r2, r5, #0x0 + add r3, r7, #0x0 + bl sub_0204A770 + cmp r0, #0x1 + bne _020598C0 + mov r0, #0x2 + orr r4, r0 + add r1, sp, #0xc + mov r0, #0x0 + ldrsb r0, [r1, r0] + cmp r0, #0x0 + beq _020598C0 + mov r0, #0x8 + orr r4, r0 +_020598C0: + ldr r3, [sp, #0x2c] + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r7, #0x0 + bl sub_02059A60 + cmp r0, #0x1 + bne _020598D4 + mov r0, #0x2 + orr r4, r0 +_020598D4: + ldr r2, [sp, #0x8] + add r0, r6, #0x0 + add r1, r5, #0x0 + add r3, r7, #0x0 + bl sub_0205995C + cmp r0, #0x1 + bne _020598E8 + mov r0, #0x4 + orr r4, r0 +_020598E8: + add r0, r4, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020598F0 +sub_020598F0: ; 0x020598F0 + push {r4-r7, lr} + sub sp, #0x14 + add r6, r1, #0x0 + add r1, sp, #0x8 + add r5, r0, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + bl sub_02058B5C + ldr r0, [sp, #0x28] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, sp, #0x8 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl sub_02059874 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_02059918 +sub_02059918: ; 0x02059918 + push {r4-r7, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r5, r0, #0x0 + bl sub_02058B2C + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02059BF4 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B3C + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02058B4C + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl sub_02059C00 + str r4, [sp, #0x0] + add r3, r0, #0x0 + ldr r4, [sp, #0x8] + ldr r2, [sp, #0x4] + add r0, r5, #0x0 + add r1, r6, r7 + add r3, r4, r3 + bl sub_020598F0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0205995C +sub_0205995C: ; 0x0205995C + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02058578 + add r7, r0, #0x0 + bl sub_020583BC + str r0, [sp, #0x8] + add r0, r7, #0x0 + bl sub_02058368 + str r0, [sp, #0x4] +_0205997C: + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x0] + cmp r0, r1 + beq _020599F4 + mov r1, #0x1 + bl sub_02058424 + cmp r0, #0x0 + beq _020599F4 + mov r1, #0x1 + ldr r0, [sp, #0x8] + lsl r1, r1, #0x12 + bl sub_02058424 + cmp r0, #0x0 + bne _020599F4 + ldr r0, [sp, #0x8] + bl sub_02058B2C + add r7, r0, #0x0 + ldr r0, [sp, #0x8] + bl sub_02058B4C + cmp r7, r5 + bne _020599C8 + cmp r0, r6 + bne _020599C8 + ldr r0, [sp, #0x8] + bl sub_02058B3C + sub r0, r0, r4 + bpl _020599BE + neg r0, r0 +_020599BE: + cmp r0, #0x2 + bge _020599C8 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_020599C8: + ldr r0, [sp, #0x8] + bl sub_02058B14 + add r7, r0, #0x0 + ldr r0, [sp, #0x8] + bl sub_02058B24 + cmp r7, r5 + bne _020599F4 + cmp r0, r6 + bne _020599F4 + ldr r0, [sp, #0x8] + bl sub_02058B3C + sub r0, r0, r4 + bpl _020599EA + neg r0, r0 +_020599EA: + cmp r0, #0x2 + bge _020599F4 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_020599F4: + add r0, sp, #0x8 + bl sub_020583D4 + ldr r0, [sp, #0x4] + sub r0, r0, #0x1 + str r0, [sp, #0x4] + bne _0205997C + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02059A08 +sub_02059A08: ; 0x02059A08 + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r4, r3, #0x0 + bl sub_02058AFC + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_02058538 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02059A34 + add r1, r7, r0 + sub r0, r7, r0 + cmp r0, r5 + bgt _02059A30 + cmp r1, r5 + bge _02059A34 +_02059A30: + mov r0, #0x1 + pop {r3-r7, pc} +_02059A34: + add r0, r6, #0x0 + bl sub_02058B0C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02058540 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02059A5A + add r1, r5, r0 + sub r0, r5, r0 + cmp r0, r4 + bgt _02059A56 + cmp r1, r4 + bge _02059A5A +_02059A56: + mov r0, #0x1 + pop {r3-r7, pc} +_02059A5A: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02059A60 +sub_02059A60: ; 0x02059A60 + push {r3-r7, lr} + add r4, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + add r5, r3, #0x0 + bl sub_02058738 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02058720 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_0204A6E0 + add r6, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r5, r0 + bne _02059A92 + bl sub_02020C2C +_02059A92: + cmp r5, #0x4 + blt _02059A9A + bl sub_02020C2C +_02059A9A: + ldr r1, _02059ABC ; =0x020F6630 + lsl r5, r5, #0x2 + ldr r1, [r1, r5] + add r0, r4, #0x0 + blx r1 + cmp r0, #0x1 + beq _02059AB4 + ldr r1, _02059AC0 ; =0x020F6640 + add r0, r6, #0x0 + ldr r1, [r1, r5] + blx r1 + cmp r0, #0x1 + bne _02059AB8 +_02059AB4: + mov r0, #0x1 + pop {r3-r7, pc} +_02059AB8: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02059ABC: .word 0x020F6630 +_02059AC0: .word 0x020F6640 + + thumb_func_start sub_02059AC4 +sub_02059AC4: ; 0x02059AC4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_02054B8C + cmp r0, #0x0 + beq _02059AE4 + add r0, r5, #0x0 + bl sub_02058A68 + cmp r0, #0x0 + bne _02059AF4 + mov r0, #0x1 + pop {r3-r5, pc} +_02059AE4: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_0205481C + cmp r0, #0x0 + beq _02059AF4 + mov r0, #0x1 + pop {r3-r5, pc} +_02059AF4: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02059AF8 +sub_02059AF8: ; 0x02059AF8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_02054BB0 + cmp r0, #0x0 + beq _02059B18 + add r0, r5, #0x0 + bl sub_02058A68 + cmp r0, #0x0 + bne _02059B28 + mov r0, #0x1 + pop {r3-r5, pc} +_02059B18: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_02054830 + cmp r0, #0x0 + beq _02059B28 + mov r0, #0x1 + pop {r3-r5, pc} +_02059B28: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02059B2C +sub_02059B2C: ; 0x02059B2C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_02054BD4 + cmp r0, #0x0 + beq _02059B4C + add r0, r5, #0x0 + bl sub_02058A68 + cmp r0, #0x0 + bne _02059B5C + mov r0, #0x1 + pop {r3-r5, pc} +_02059B4C: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_020549AC + cmp r0, #0x0 + beq _02059B5C + mov r0, #0x1 + pop {r3-r5, pc} +_02059B5C: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02059B60 +sub_02059B60: ; 0x02059B60 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_02054BD4 + cmp r0, #0x0 + beq _02059B80 + add r0, r5, #0x0 + bl sub_02058A68 + cmp r0, #0x0 + bne _02059B90 + mov r0, #0x1 + pop {r3-r5, pc} +_02059B80: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_020549CC + cmp r0, #0x0 + beq _02059B90 + mov r0, #0x1 + pop {r3-r5, pc} +_02059B90: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02059B94 +sub_02059B94: ; 0x02059B94 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02058A68 + cmp r0, #0x1 + bne _02059BB0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_02054B78 + cmp r0, #0x1 + bne _02059BB0 + mov r0, #0x1 + pop {r4, pc} +_02059BB0: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02059BB4 +sub_02059BB4: ; 0x02059BB4 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02058A68 + cmp r0, #0x1 + bne _02059BD0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_02054BE0 + cmp r0, #0x1 + bne _02059BD0 + mov r0, #0x1 + pop {r4, pc} +_02059BD0: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02059BD4 +sub_02059BD4: ; 0x02059BD4 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02058A68 + cmp r0, #0x1 + bne _02059BF0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_02054BF4 + cmp r0, #0x1 + bne _02059BF0 + mov r0, #0x1 + pop {r4, pc} +_02059BF0: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02059BF4 +sub_02059BF4: ; 0x02059BF4 + lsl r1, r0, #0x2 + ldr r0, _02059BFC ; =0x020F6620 + ldr r0, [r0, r1] + bx lr + .balign 4 +_02059BFC: .word 0x020F6620 + + thumb_func_start sub_02059C00 +sub_02059C00: ; 0x02059C00 + lsl r1, r0, #0x2 + ldr r0, _02059C08 ; =0x020F6650 + ldr r0, [r0, r1] + bx lr + .balign 4 +_02059C08: .word 0x020F6650 + + thumb_func_start sub_02059C0C +sub_02059C0C: ; 0x02059C0C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02058B2C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B18 + add r0, r5, #0x0 + bl sub_02058B3C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B20 + add r0, r5, #0x0 + bl sub_02058B4C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B28 + add r0, r4, #0x0 + bl sub_02059BF4 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B34 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058B44 + add r0, r4, #0x0 + bl sub_02059C00 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B54 + pop {r3-r5, pc} + + thumb_func_start sub_02059C60 +sub_02059C60: ; 0x02059C60 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058B2C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B18 + add r0, r4, #0x0 + bl sub_02058B3C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B20 + add r0, r4, #0x0 + bl sub_02058B4C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B28 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02059C90 +sub_02059C90: ; 0x02059C90 + push {r3-r7, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + bl sub_02058B2C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02059BF4 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B4C + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02059C00 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058738 + ldr r2, [sp, #0x0] + add r1, r6, r7 + add r2, r2, r5 + bl sub_0204A6E0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02059CC8 +sub_02059CC8: ; 0x02059CC8 + push {r3-r6, lr} + sub sp, #0xc + add r5, r1, #0x0 + add r1, sp, #0x0 + add r6, r0, #0x0 + add r4, r2, #0x0 + bl sub_02058B5C + cmp r5, #0x3 + bhi _02059D0E + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + ldr r0, [sp, #0x8] + sub r0, r0, r4 + str r0, [sp, #0x8] + b _02059D0E +_02059CF8: + .byte 0x02, 0x98, 0x00, 0x19, 0x02, 0x90, 0x06, 0xE0 + .byte 0x00, 0x98, 0x00, 0x1B, 0x00, 0x90, 0x02, 0xE0, 0x00, 0x98, 0x00, 0x19, 0x00, 0x90 +_02059D0E: + add r0, r6, #0x0 + add r1, sp, #0x0 + bl sub_02058B6C + add sp, #0xc + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02059D1C +sub_02059D1C: ; 0x02059D1C + push {r3-r5, lr} + sub sp, #0x18 + add r1, sp, #0xc + add r5, r0, #0x0 + bl sub_02058B5C + add r3, sp, #0xc + ldmia r3!, {r0-r1} + add r2, sp, #0x0 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + add r0, r5, #0x0 + bl sub_0205897C + cmp r0, #0x1 + bne _02059D4E + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0xc + bl sub_02058418 + add sp, #0x18 + mov r0, #0x0 + pop {r3-r5, pc} +_02059D4E: + add r0, r5, #0x0 + bl sub_02058AE4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058738 + add r1, sp, #0x0 + add r2, r4, #0x0 + bl sub_02059EC8 + add r4, r0, #0x0 + cmp r4, #0x1 + bne _02059DA2 + ldr r0, [sp, #0x4] + add r1, sp, #0xc + str r0, [sp, #0x10] + add r0, r5, #0x0 + bl sub_02058B6C + add r0, r5, #0x0 + bl sub_02058B3C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B20 + ldr r1, [sp, #0x10] + add r0, r5, #0x0 + asr r2, r1, #0x3 + asr r1, r2, #0xb + lsr r1, r1, #0x14 + add r1, r2, r1 + asr r1, r1, #0xc + bl sub_02058B40 + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0xc + bl sub_02058418 + b _02059DAC +_02059DA2: + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0xc + bl sub_02058410 +_02059DAC: + add r0, r4, #0x0 + add sp, #0x18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02059DB4 +sub_02059DB4: ; 0x02059DB4 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02058B14 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B24 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058738 + add r1, r4, #0x0 + add r2, r6, #0x0 + add r7, r0, #0x0 + bl sub_0204A6E0 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058728 + add r0, r5, #0x0 + bl sub_02058B2C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B4C + add r2, r0, #0x0 + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_0204A6E0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02058718 + add r0, r4, #0x0 + bl sub_02054C08 + cmp r0, #0x1 + bne _02059E18 + mov r1, #0x2 + add r0, r5, #0x0 + lsl r1, r1, #0xa + bl sub_02058410 + mov r0, #0x0 + pop {r3-r7, pc} +_02059E18: + mov r1, #0x2 + add r0, r5, #0x0 + lsl r1, r1, #0xa + bl sub_02058418 + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02059E28 +sub_02059E28: ; 0x02059E28 + cmp r0, #0x3 + bhi _02059E5E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r1, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + ldr r0, [r1, #0x8] + sub r0, r0, r2 + str r0, [r1, #0x8] + bx lr +_02059E48: + .byte 0x88, 0x68, 0x80, 0x18, 0x88, 0x60, 0x70, 0x47 + .byte 0x08, 0x68, 0x80, 0x1A, 0x08, 0x60, 0x70, 0x47, 0x08, 0x68, 0x80, 0x18, 0x08, 0x60 +_02059E5E: + bx lr + + thumb_func_start sub_02059E60 +sub_02059E60: ; 0x02059E60 + lsl r3, r0, #0x10 + mov r0, #0x2 + lsl r0, r0, #0xe + add r3, r3, r0 + lsl r1, r1, #0x10 + str r3, [r2, #0x0] + add r0, r1, r0 + str r0, [r2, #0x8] + bx lr + .balign 4 + + thumb_func_start sub_02059E74 +sub_02059E74: ; 0x02059E74 + lsl r1, r0, #0x2 + ldr r0, _02059E7C ; =0x020F6660 + ldr r0, [r0, r1] + bx lr + .balign 4 +_02059E7C: .word 0x020F6660 + + thumb_func_start sub_02059E80 +sub_02059E80: ; 0x02059E80 + cmp r0, r2 + ble _02059E88 + mov r0, #0x2 + bx lr +_02059E88: + cmp r0, r2 + bge _02059E90 + mov r0, #0x3 + bx lr +_02059E90: + cmp r1, r3 + bgt _02059E98 + mov r0, #0x1 + bx lr +_02059E98: + mov r0, #0x0 + bx lr + + thumb_func_start sub_02059E9C +sub_02059E9C: ; 0x02059E9C + push {r4, lr} + sub sp, #0x8 + add r4, r1, #0x0 + add r1, sp, #0x4 + str r1, [sp, #0x0] + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x0] + ldr r3, [r4, #0x8] + bl sub_0204A708 + add r1, sp, #0x4 + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + bne _02059EBE + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_02059EBE: + str r0, [r4, #0x4] + mov r0, #0x1 + add sp, #0x8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02059EC8 +sub_02059EC8: ; 0x02059EC8 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r1, #0x0 + add r1, sp, #0x4 + str r1, [sp, #0x0] + add r4, r2, #0x0 + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x0] + ldr r3, [r5, #0x8] + bl sub_0204A708 + add r1, sp, #0x4 + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + bne _02059EEC + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_02059EEC: + cmp r1, #0x2 + bne _02059EFA + cmp r4, #0x0 + bne _02059EFA + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_02059EFA: + str r0, [r5, #0x4] + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02059F04 +sub_02059F04: ; 0x02059F04 + push {r4-r6, lr} + add r6, r1, #0x0 + mov r1, #0x8 + add r5, r0, #0x0 + bl sub_0205858C + add r4, r0, #0x0 + mov r1, #0x0 + ldr r0, _02059F30 ; =0x020F693C + mvn r1, r1 + bl sub_0205AAB0 + strh r0, [r4, #0x2] + add r0, r5, #0x0 + mov r1, #0x0 + str r6, [r4, #0x4] + bl sub_02058544 + add r0, r5, #0x0 + bl sub_02058848 + pop {r4-r6, pc} + .balign 4 +_02059F30: .word 0x020F693C + + thumb_func_start sub_02059F34 +sub_02059F34: ; 0x02059F34 + ldr r3, _02059F3C ; =sub_02059F04 + mov r1, #0x0 + bx r3 + nop +_02059F3C: .word sub_02059F04 + 1 + + thumb_func_start sub_02059F40 +sub_02059F40: ; 0x02059F40 + ldr r3, _02059F48 ; =sub_02059F04 + mov r1, #0x1 + bx r3 + nop +_02059F48: .word sub_02059F04 + 1 + + thumb_func_start sub_02059F4C +sub_02059F4C: ; 0x02059F4C + ldr r3, _02059F54 ; =sub_02059F04 + mov r1, #0x2 + bx r3 + nop +_02059F54: .word sub_02059F04 + 1 + + thumb_func_start sub_02059F58 +sub_02059F58: ; 0x02059F58 + ldr r3, _02059F60 ; =sub_02059F04 + mov r1, #0x3 + bx r3 + nop +_02059F60: .word sub_02059F04 + 1 + + thumb_func_start sub_02059F64 +sub_02059F64: ; 0x02059F64 + ldr r3, _02059F6C ; =sub_02059F04 + mov r1, #0x4 + bx r3 + nop +_02059F6C: .word sub_02059F04 + 1 + + thumb_func_start sub_02059F70 +sub_02059F70: ; 0x02059F70 + ldr r3, _02059F78 ; =sub_02059F04 + mov r1, #0x5 + bx r3 + nop +_02059F78: .word sub_02059F04 + 1 + + thumb_func_start sub_02059F7C +sub_02059F7C: ; 0x02059F7C + ldr r3, _02059F84 ; =sub_02059F04 + mov r1, #0x6 + bx r3 + nop +_02059F84: .word sub_02059F04 + 1 + + thumb_func_start sub_02059F88 +sub_02059F88: ; 0x02059F88 + ldr r3, _02059F90 ; =sub_02059F04 + mov r1, #0x7 + bx r3 + nop +_02059F90: .word sub_02059F04 + 1 + + thumb_func_start sub_02059F94 +sub_02059F94: ; 0x02059F94 + ldr r3, _02059F9C ; =sub_02059F04 + mov r1, #0x8 + bx r3 + nop +_02059F9C: .word sub_02059F04 + 1 + + thumb_func_start sub_02059FA0 +sub_02059FA0: ; 0x02059FA0 + ldr r3, _02059FA8 ; =sub_02059F04 + mov r1, #0x9 + bx r3 + nop +_02059FA8: .word sub_02059F04 + 1 + + thumb_func_start sub_02059FAC +sub_02059FAC: ; 0x02059FAC + ldr r3, _02059FB4 ; =sub_02059F04 + mov r1, #0xa + bx r3 + nop +_02059FB4: .word sub_02059F04 + 1 + + thumb_func_start sub_02059FB8 +sub_02059FB8: ; 0x02059FB8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020585B0 + add r4, r0, #0x0 + mov r2, #0x0 + ldr r1, [r4, #0x4] + add r0, r5, #0x0 + mvn r2, r2 + bl sub_0205ABEC + mov r2, #0x0 + add r1, r0, #0x0 + mvn r2, r2 + cmp r1, r2 + beq _02059FE0 + add r0, r5, #0x0 + bl sub_020584AC + b _0205A010 +_02059FE0: + ldrh r0, [r4, #0x0] + cmp r0, #0x0 + bne _0205A010 + mov r0, #0x2 + ldrsh r1, [r4, r0] + sub r1, r1, #0x1 + strh r1, [r4, #0x2] + ldrsh r0, [r4, r0] + cmp r0, #0x0 + bgt _0205A010 + ldr r0, _0205A018 ; =0x020F693C + add r1, r2, #0x0 + bl sub_0205AAB0 + strh r0, [r4, #0x2] + mov r1, #0x0 + ldr r0, [r4, #0x4] + mvn r1, r1 + bl sub_0205AAD4 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_020584AC +_0205A010: + add r0, r5, #0x0 + bl sub_02059C60 + pop {r3-r5, pc} + .balign 4 +_0205A018: .word 0x020F693C + + thumb_func_start sub_0205A01C +sub_0205A01C: ; 0x0205A01C + bx lr + .balign 4 + + thumb_func_start sub_0205A020 +sub_0205A020: ; 0x0205A020 + push {r3, lr} + mov r1, #0xc + mov r2, #0xb + mov r3, #0x0 + bl sub_0205A050 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A030 +sub_0205A030: ; 0x0205A030 + push {r3, lr} + mov r1, #0xc + add r2, r1, #0x0 + mov r3, #0x0 + bl sub_0205A050 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A040 +sub_0205A040: ; 0x0205A040 + push {r3, lr} + mov r1, #0xc + mov r2, #0xd + mov r3, #0x0 + bl sub_0205A050 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A050 +sub_0205A050: ; 0x0205A050 + push {r3-r7, lr} + add r4, r1, #0x0 + add r7, r3, #0x0 + mov r1, #0x10 + add r5, r0, #0x0 + add r6, r2, #0x0 + bl sub_0205858C + str r7, [r0, #0x4] + str r4, [r0, #0x8] + str r6, [r0, #0xc] + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + bl sub_02058848 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205A078 +sub_0205A078: ; 0x0205A078 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_020585B0 + add r4, r0, #0x0 + mov r0, #0x0 + ldrsh r0, [r4, r0] + cmp r0, #0x4 + bhi _0205A16E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r2, r6, #0 + lsl r0, r2, #0x1 + lsl r6, r4, #0x1 + lsl r2, r0, #0x3 + add r0, r5, #0x0 + bl sub_02058848 + add r0, r5, #0x0 + bl sub_0205886C + add r0, r5, #0x0 + bl sub_020584C4 + mov r1, #0x0 + bl sub_0205AFDC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205AE0C + mov r0, #0x0 + ldrsh r0, [r4, r0] + add r0, r0, #0x1 + strh r0, [r4, #0x0] + pop {r4-r6, pc} +_0205A0CA: + .byte 0x28, 0x1C, 0x00, 0xF0, 0xD8, 0xFF + .byte 0x00, 0x28, 0x4C, 0xD0, 0x00, 0x21, 0x26, 0x48, 0xC9, 0x43, 0x00, 0xF0, 0xE9, 0xFC, 0x60, 0x80 + .byte 0x00, 0x20, 0x20, 0x5E, 0x40, 0x1C, 0x20, 0x80, 0x02, 0x20, 0x21, 0x5E, 0x49, 0x1E, 0x61, 0x80 + .byte 0x20, 0x5E, 0x00, 0x28, 0x3B, 0xD1, 0x00, 0x20, 0x20, 0x5E, 0x40, 0x1C, 0x20, 0x80, 0x00, 0x21 + .byte 0xE0, 0x68, 0xC9, 0x43, 0x00, 0xF0, 0xE6, 0xFC, 0x06, 0x1C, 0x28, 0x1C, 0x31, 0x1C, 0xFE, 0xF7 + .byte 0xE3, 0xF9, 0x60, 0x68, 0x01, 0x28, 0x08, 0xD1, 0x28, 0x1C, 0x31, 0x1C, 0x00, 0xF0, 0xA8, 0xF8 + .byte 0x00, 0x28, 0x02, 0xD1, 0x00, 0x20, 0x20, 0x80, 0x70, 0xBD, 0x28, 0x1C, 0x31, 0x1C, 0xFF, 0xF7 + .byte 0xF3, 0xFB, 0x00, 0x28, 0x02, 0xD0, 0x00, 0x20, 0x20, 0x80, 0x70, 0xBD, 0xA1, 0x68, 0x30, 0x1C + .byte 0x00, 0xF0, 0x4C, 0xFF, 0x01, 0x1C, 0x28, 0x1C, 0x00, 0xF0, 0x60, 0xFE, 0x28, 0x1C, 0xFE, 0xF7 + .byte 0x75, 0xFB, 0x00, 0x20, 0x20, 0x5E, 0x40, 0x1C, 0x20, 0x80, 0x28, 0x1C, 0x00, 0xF0, 0x90, 0xFF + .byte 0x00, 0x28, 0x04, 0xD0, 0x28, 0x1C, 0xFE, 0xF7, 0x6F, 0xFB, 0x00, 0x20, 0x20, 0x80 +_0205A16E: + pop {r4-r6, pc} +_0205A170: + .byte 0x3C, 0x69, 0x0F, 0x02 + + thumb_func_start sub_0205A174 +sub_0205A174: ; 0x0205A174 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + add r4, r1, #0x0 + bl sub_02058AFC + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02058B0C + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02058538 + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02058540 + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + bl sub_02058480 + cmp r0, #0xd + bhi _0205A268 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r6, #0x2 + lsl r6, r6, #0x2 + lsl r6, r6, #0x2 + lsl r6, r6, #0x2 + lsl r6, r6, #0x2 + lsl r6, r6, #0x2 + lsl r2, r3, #0 + lsl r4, r5, #0 + lsl r6, r7, #0 + lsl r0, r2, #0x1 + lsl r2, r4, #0x1 + lsl r0, r7, #0x1 + lsl r6, r1, #0x2 + lsl r2, r4, #0x2 + sub r0, r6, r7 + str r0, [r4, #0x0] + ldr r0, [sp, #0x4] + str r6, [r4, #0x8] + sub r0, r5, r0 + str r0, [r4, #0x4] + add sp, #0x8 + str r5, [r4, #0xc] + pop {r3-r7, pc} +_0205A1DE: + .byte 0x26, 0x60 + .byte 0xF0, 0x19, 0xA0, 0x60, 0x01, 0x98, 0x02, 0xB0, 0x28, 0x1A, 0x60, 0x60, 0xE5, 0x60, 0xF8, 0xBD + .byte 0xF0, 0x1B, 0x20, 0x60, 0x01, 0x98, 0xA6, 0x60, 0x65, 0x60, 0x28, 0x18, 0x02, 0xB0, 0xE0, 0x60 + .byte 0xF8, 0xBD, 0x26, 0x60, 0xF0, 0x19, 0xA0, 0x60, 0x01, 0x98, 0x65, 0x60, 0x28, 0x18, 0x02, 0xB0 + .byte 0xE0, 0x60, 0xF8, 0xBD, 0xF0, 0x1B, 0x20, 0x60, 0x01, 0x98, 0xA6, 0x60, 0x28, 0x1A, 0x60, 0x60 + .byte 0x01, 0x98, 0x02, 0xB0, 0x28, 0x18, 0xE0, 0x60, 0xF8, 0xBD, 0x26, 0x60, 0xF0, 0x19, 0xA0, 0x60 + .byte 0x01, 0x98, 0x28, 0x1A, 0x60, 0x60, 0x01, 0x98, 0x02, 0xB0, 0x28, 0x18, 0xE0, 0x60, 0xF8, 0xBD + .byte 0xF0, 0x1B, 0x20, 0x60, 0xF0, 0x19, 0xA0, 0x60, 0x01, 0x98, 0x02, 0xB0, 0x28, 0x1A, 0x60, 0x60 + .byte 0xE5, 0x60, 0xF8, 0xBD, 0xF0, 0x1B, 0x20, 0x60, 0xF0, 0x19, 0xA0, 0x60, 0x01, 0x98, 0x65, 0x60 + .byte 0x28, 0x18, 0x02, 0xB0, 0xE0, 0x60, 0xF8, 0xBD +_0205A268: + bl sub_02020C2C + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0205A270 +sub_0205A270: ; 0x0205A270 + push {r4-r6, lr} + sub sp, #0x10 + add r6, r1, #0x0 + add r5, r0, #0x0 + add r1, sp, #0x0 + bl sub_0205A174 + add r0, r5, #0x0 + bl sub_02058B2C + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02059BF4 + add r4, r4, r0 + add r0, r5, #0x0 + bl sub_02058B4C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_02059C00 + add r1, r5, r0 + ldr r0, [sp, #0x0] + cmp r0, r4 + bgt _0205A2AA + ldr r0, [sp, #0x8] + cmp r0, r4 + bge _0205A2B0 +_0205A2AA: + add sp, #0x10 + mov r0, #0x0 + pop {r4-r6, pc} +_0205A2B0: + ldr r0, [sp, #0x4] + cmp r0, r1 + bgt _0205A2BC + ldr r0, [sp, #0xc] + cmp r0, r1 + bge _0205A2C2 +_0205A2BC: + add sp, #0x10 + mov r0, #0x0 + pop {r4-r6, pc} +_0205A2C2: + mov r0, #0x1 + add sp, #0x10 + pop {r4-r6, pc} + + thumb_func_start sub_0205A2C8 +sub_0205A2C8: ; 0x0205A2C8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r1, #0x8 + bl sub_0205858C + str r4, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + bl sub_02058848 + add r0, r5, #0x0 + bl sub_02059C60 + pop {r3-r5, pc} + + thumb_func_start sub_0205A2EC +sub_0205A2EC: ; 0x0205A2EC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020585B0 + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _0205A300 + cmp r0, #0x1 + pop {r3-r5, pc} +_0205A300: + ldr r1, [r4, #0x0] + add r0, r5, #0x0 + bl sub_020584AC + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + pop {r3-r5, pc} + + thumb_func_start sub_0205A310 +sub_0205A310: ; 0x0205A310 + ldr r3, _0205A318 ; =sub_0205A2C8 + mov r1, #0x0 + bx r3 + nop +_0205A318: .word sub_0205A2C8 + 1 + + thumb_func_start sub_0205A31C +sub_0205A31C: ; 0x0205A31C + ldr r3, _0205A324 ; =sub_0205A2C8 + mov r1, #0x1 + bx r3 + nop +_0205A324: .word sub_0205A2C8 + 1 + + thumb_func_start sub_0205A328 +sub_0205A328: ; 0x0205A328 + ldr r3, _0205A330 ; =sub_0205A2C8 + mov r1, #0x2 + bx r3 + nop +_0205A330: .word sub_0205A2C8 + 1 + + thumb_func_start sub_0205A334 +sub_0205A334: ; 0x0205A334 + ldr r3, _0205A33C ; =sub_0205A2C8 + mov r1, #0x3 + bx r3 + nop +_0205A33C: .word sub_0205A2C8 + 1 + + thumb_func_start sub_0205A340 +sub_0205A340: ; 0x0205A340 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r1, #0x8 + bl sub_0205858C + strb r4, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + bl sub_02058848 + add r0, r5, #0x0 + bl sub_02059C60 + pop {r3-r5, pc} + + thumb_func_start sub_0205A364 +sub_0205A364: ; 0x0205A364 + ldr r3, _0205A36C ; =sub_0205A340 + mov r1, #0x2 + bx r3 + nop +_0205A36C: .word sub_0205A340 + 1 + + thumb_func_start sub_0205A370 +sub_0205A370: ; 0x0205A370 + ldr r3, _0205A378 ; =sub_0205A340 + mov r1, #0x3 + bx r3 + nop +_0205A378: .word sub_0205A340 + 1 + + thumb_func_start sub_0205A37C +sub_0205A37C: ; 0x0205A37C + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020585B0 + ldr r6, _0205A39C ; =0x020F6754 + add r4, r0, #0x0 + mov r7, #0x2 +_0205A38A: + ldrsb r2, [r4, r7] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + ldr r2, [r6, r2] + blx r2 + cmp r0, #0x1 + beq _0205A38A + pop {r3-r7, pc} + .balign 4 +_0205A39C: .word 0x020F6754 + + thumb_func_start sub_0205A3A0 +sub_0205A3A0: ; 0x0205A3A0 + push {r3-r5, lr} + add r4, r1, #0x0 + mov r1, #0x26 + add r2, r1, #0x0 + sub r2, #0x27 + add r5, r0, #0x0 + bl sub_0205ABEC + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + bne _0205A3BE + add r0, r5, #0x0 + bl sub_020584C4 +_0205A3BE: + mov r1, #0x0 + bl sub_0205AFDC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205AE0C + mov r0, #0x1 + strb r0, [r4, #0x2] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205A3D4 +sub_0205A3D4: ; 0x0205A3D4 + push {r4, lr} + add r4, r1, #0x0 + bl sub_0205B080 + cmp r0, #0x0 + bne _0205A3E4 + mov r0, #0x0 + pop {r4, pc} +_0205A3E4: + mov r0, #0x0 + str r0, [r4, #0x4] + mov r0, #0x2 + strb r0, [r4, #0x2] + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0205A3F0 +sub_0205A3F0: ; 0x0205A3F0 + push {r4, lr} + add r4, r1, #0x0 + ldr r1, [r4, #0x4] + cmp r1, #0x0 + beq _0205A414 + mov r1, #0x26 + add r2, r1, #0x0 + sub r2, #0x27 + bl sub_0205ABEC + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _0205A414 + mov r0, #0x0 + strb r0, [r4, #0x2] + mov r0, #0x1 + pop {r4, pc} +_0205A414: + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + cmp r0, #0x18 + bge _0205A422 + mov r0, #0x0 + pop {r4, pc} +_0205A422: + mov r0, #0x3 + strb r0, [r4, #0x2] + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205A42C +sub_0205A42C: ; 0x0205A42C + push {r3-r7, lr} + sub sp, #0x28 + ldr r3, _0205A4BC ; =0x020F68D8 + add r2, sp, #0x14 + add r7, r0, #0x0 + add r6, r1, #0x0 + ldmia r3!, {r0-r1} + add r5, r2, #0x0 + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + ldr r4, _0205A4C0 ; =0x020F68EC + str r0, [r2, #0x0] + add r3, sp, #0x0 + ldmia r4!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r3, #0x0] + mov r0, #0x0 + ldrsb r0, [r6, r0] + cmp r0, #0x2 + beq _0205A462 + add r5, r2, #0x0 +_0205A462: + add r0, r7, #0x0 + bl sub_020584C4 + mov r4, #0x0 + ldr r2, [r5, #0x0] + sub r1, r4, #0x1 + cmp r2, r1 + beq _0205A486 + add r1, r5, #0x0 + sub r2, r4, #0x1 +_0205A476: + ldr r3, [r1, #0x0] + cmp r0, r3 + beq _0205A486 + add r1, r1, #0x4 + ldr r3, [r1, #0x0] + add r4, r4, #0x1 + cmp r3, r2 + bne _0205A476 +_0205A486: + lsl r0, r4, #0x2 + ldr r1, [r5, r0] + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + bne _0205A496 + bl sub_02020C2C +_0205A496: + add r4, r4, #0x1 + lsl r0, r4, #0x2 + ldr r1, [r5, r0] + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + bne _0205A4A6 + mov r4, #0x0 +_0205A4A6: + lsl r1, r4, #0x2 + ldr r1, [r5, r1] + add r0, r7, #0x0 + bl sub_020584AC + mov r0, #0x0 + strb r0, [r6, #0x2] + mov r0, #0x1 + add sp, #0x28 + pop {r3-r7, pc} + nop +_0205A4BC: .word 0x020F68D8 +_0205A4C0: .word 0x020F68EC + + thumb_func_start sub_0205A4C4 +sub_0205A4C4: ; 0x0205A4C4 + ldr r3, _0205A4CC ; =sub_0205A340 + mov r1, #0x3 + bx r3 + nop +_0205A4CC: .word sub_0205A340 + 1 + + thumb_func_start sub_0205A4D0 +sub_0205A4D0: ; 0x0205A4D0 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020585B0 + ldr r6, _0205A4F0 ; =0x020F6724 + add r4, r0, #0x0 + mov r7, #0x2 +_0205A4DE: + ldrsb r2, [r4, r7] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + ldr r2, [r6, r2] + blx r2 + cmp r0, #0x1 + beq _0205A4DE + pop {r3-r7, pc} + .balign 4 +_0205A4F0: .word 0x020F6724 + + thumb_func_start sub_0205A4F4 +sub_0205A4F4: ; 0x0205A4F4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020584C4 + mov r1, #0x0 + bl sub_0205AFDC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205AE0C + mov r0, #0x1 + strb r0, [r4, #0x2] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205A514 +sub_0205A514: ; 0x0205A514 + push {r4, lr} + add r4, r1, #0x0 + bl sub_0205B080 + cmp r0, #0x0 + bne _0205A524 + mov r0, #0x0 + pop {r4, pc} +_0205A524: + mov r0, #0x0 + str r0, [r4, #0x4] + mov r0, #0x2 + strb r0, [r4, #0x2] + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0205A530 +sub_0205A530: ; 0x0205A530 + ldr r0, [r1, #0x4] + add r0, r0, #0x1 + str r0, [r1, #0x4] + cmp r0, #0x18 + bge _0205A53E + mov r0, #0x0 + bx lr +_0205A53E: + mov r0, #0x3 + strb r0, [r1, #0x2] + mov r0, #0x1 + bx lr + .balign 4 + + thumb_func_start sub_0205A548 +sub_0205A548: ; 0x0205A548 + push {r3-r7, lr} + sub sp, #0x28 + ldr r3, _0205A5F4 ; =0x020F6900 + add r2, sp, #0x14 + add r7, r0, #0x0 + add r6, r1, #0x0 + ldmia r3!, {r0-r1} + add r5, r2, #0x0 + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + ldr r3, _0205A5F8 ; =0x020F6928 + str r0, [r2, #0x0] + add r2, sp, #0x0 + ldmia r3!, {r0-r1} + add r4, r2, #0x0 + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + mov r0, #0x0 + ldrsb r0, [r6, r0] + cmp r0, #0x2 + beq _0205A57E + add r5, r4, #0x0 +_0205A57E: + add r0, r7, #0x0 + bl sub_020584C4 + mov r4, #0x0 + ldr r2, [r5, #0x0] + sub r1, r4, #0x1 + cmp r2, r1 + beq _0205A5A2 + add r1, r5, #0x0 + sub r2, r4, #0x1 +_0205A592: + ldr r3, [r1, #0x0] + cmp r0, r3 + beq _0205A5A2 + add r1, r1, #0x4 + ldr r3, [r1, #0x0] + add r4, r4, #0x1 + cmp r3, r2 + bne _0205A592 +_0205A5A2: + lsl r0, r4, #0x2 + ldr r1, [r5, r0] + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + bne _0205A5B2 + bl sub_02020C2C +_0205A5B2: + add r4, r4, #0x1 + lsl r0, r4, #0x2 + ldr r1, [r5, r0] + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + bne _0205A5C2 + mov r4, #0x0 +_0205A5C2: + lsl r1, r4, #0x2 + ldr r1, [r5, r1] + add r0, r7, #0x0 + bl sub_020584AC + add r0, r7, #0x0 + bl sub_020584C4 + add r4, r0, #0x0 + add r0, r7, #0x0 + bl sub_020584A0 + cmp r4, r0 + bne _0205A5E8 + mov r0, #0x0 + ldrsb r0, [r6, r0] + bl sub_02059E74 + strb r0, [r6, #0x0] +_0205A5E8: + mov r0, #0x0 + strb r0, [r6, #0x2] + mov r0, #0x1 + add sp, #0x28 + pop {r3-r7, pc} + nop +_0205A5F4: .word 0x020F6900 +_0205A5F8: .word 0x020F6928 + + thumb_func_start sub_0205A5FC +sub_0205A5FC: ; 0x0205A5FC + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0x8 + bl sub_0205858C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205ACE0 + cmp r0, #0x1 + bne _0205A61A + add r0, r5, #0x0 + add r1, r4, #0x4 + bl sub_0205ACF4 +_0205A61A: + pop {r3-r5, pc} + + thumb_func_start sub_0205A61C +sub_0205A61C: ; 0x0205A61C + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020585B0 + ldr r6, _0205A63C ; =0x020F66CC + add r4, r0, #0x0 + mov r7, #0x0 +_0205A62A: + ldrsh r2, [r4, r7] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + ldr r2, [r6, r2] + blx r2 + cmp r0, #0x1 + beq _0205A62A + pop {r3-r7, pc} + .balign 4 +_0205A63C: .word 0x020F66CC + + thumb_func_start sub_0205A640 +sub_0205A640: ; 0x0205A640 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020584A0 + mov r1, #0x2 + ldrsh r1, [r4, r1] + add r6, r0, #0x0 + cmp r1, #0x1 + bne _0205A65A + bl sub_02059E74 + add r6, r0, #0x0 +_0205A65A: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_0205ACE0 + cmp r0, #0x0 + bne _0205A674 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020584AC +_0205A674: + mov r0, #0x1 + strh r0, [r4, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0205A67C +sub_0205A67C: ; 0x0205A67C + push {r3-r7, lr} + add r4, r1, #0x0 + mov r1, #0x2 + ldrsh r1, [r4, r1] + add r5, r0, #0x0 + cmp r1, #0x0 + beq _0205A6DA + bl sub_02058AFC + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B0C + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B2C + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02058B4C + ldr r1, [sp, #0x0] + cmp r6, r1 + bne _0205A6DA + cmp r7, r0 + bne _0205A6DA + add r0, r5, #0x0 + bl sub_020584D4 + bl sub_02059E74 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_0205ACE0 + cmp r0, #0x0 + bne _0205A6D6 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020584AC +_0205A6D6: + mov r0, #0x0 + strh r0, [r4, #0x2] +_0205A6DA: + add r0, r5, #0x0 + bl sub_020584D4 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02059918 + mov r1, #0x1 + add r2, r0, #0x0 + tst r2, r1 + beq _0205A704 + add r0, r6, #0x0 + strh r1, [r4, #0x2] + bl sub_02059E74 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02059918 +_0205A704: + mov r1, #0xc + cmp r0, #0x0 + beq _0205A70C + mov r1, #0x20 +_0205A70C: + add r0, r6, #0x0 + bl sub_0205AFDC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205AE0C + add r0, r5, #0x0 + bl sub_0205ACE0 + cmp r0, #0x1 + bne _0205A72C + add r0, r5, #0x0 + add r1, r4, #0x4 + bl sub_0205AD0C +_0205A72C: + add r0, r5, #0x0 + bl sub_0205883C + mov r0, #0x2 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205A73C +sub_0205A73C: ; 0x0205A73C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0205B080 + cmp r0, #0x1 + bne _0205A766 + add r0, r5, #0x0 + bl sub_02058848 + add r0, r5, #0x0 + bl sub_0205ACE0 + cmp r0, #0x1 + bne _0205A762 + add r0, r5, #0x0 + add r1, r4, #0x4 + bl sub_0205AD88 +_0205A762: + mov r0, #0x0 + strh r0, [r4, #0x0] +_0205A766: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205A76C +sub_0205A76C: ; 0x0205A76C + push {r3-r7, lr} + add r6, r1, #0x0 + mov r1, #0x10 + add r5, r0, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x0] + bl sub_0205858C + add r4, r0, #0x0 + strh r6, [r4, #0x4] + ldr r0, [sp, #0x0] + strh r7, [r4, #0x6] + str r0, [r4, #0x8] + add r0, r5, #0x0 + bl sub_0205ACE0 + cmp r0, #0x1 + bne _0205A79A + add r4, #0xc + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205ACF4 +_0205A79A: + pop {r3-r7, pc} + + thumb_func_start sub_0205A79C +sub_0205A79C: ; 0x0205A79C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0xe + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A7AC +sub_0205A7AC: ; 0x0205A7AC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0xf + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A7BC +sub_0205A7BC: ; 0x0205A7BC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x10 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A7CC +sub_0205A7CC: ; 0x0205A7CC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x11 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A7DC +sub_0205A7DC: ; 0x0205A7DC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x12 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A7EC +sub_0205A7EC: ; 0x0205A7EC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x13 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A7FC +sub_0205A7FC: ; 0x0205A7FC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x14 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A80C +sub_0205A80C: ; 0x0205A80C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x15 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A81C +sub_0205A81C: ; 0x0205A81C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x16 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A82C +sub_0205A82C: ; 0x0205A82C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x17 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A83C +sub_0205A83C: ; 0x0205A83C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x18 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A84C +sub_0205A84C: ; 0x0205A84C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x19 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A85C +sub_0205A85C: ; 0x0205A85C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x1a + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A86C +sub_0205A86C: ; 0x0205A86C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x1b + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A87C +sub_0205A87C: ; 0x0205A87C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x1c + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A88C +sub_0205A88C: ; 0x0205A88C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x1d + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A89C +sub_0205A89C: ; 0x0205A89C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x1e + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A8AC +sub_0205A8AC: ; 0x0205A8AC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x1f + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A8BC +sub_0205A8BC: ; 0x0205A8BC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x20 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A8CC +sub_0205A8CC: ; 0x0205A8CC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x21 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A8DC +sub_0205A8DC: ; 0x0205A8DC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x22 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A8EC +sub_0205A8EC: ; 0x0205A8EC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x23 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A8FC +sub_0205A8FC: ; 0x0205A8FC + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x24 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A90C +sub_0205A90C: ; 0x0205A90C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x25 + bl sub_0205A76C + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205A91C +sub_0205A91C: ; 0x0205A91C + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020585B0 + ldr r6, _0205A93C ; =0x020F6670 + add r4, r0, #0x0 + mov r7, #0x0 +_0205A92A: + ldrsh r2, [r4, r7] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + ldr r2, [r6, r2] + blx r2 + cmp r0, #0x1 + beq _0205A92A + pop {r3-r7, pc} + .balign 4 +_0205A93C: .word 0x020F6670 + + thumb_func_start sub_0205A940 +sub_0205A940: ; 0x0205A940 + push {r3-r7, lr} + add r4, r1, #0x0 + mov r1, #0x2 + ldrsh r2, [r4, r1] + mov r1, #0x4 + ldrsh r1, [r4, r1] + add r5, r0, #0x0 + cmp r2, r1 + bne _0205A98C + mov r1, #0x6 + ldrsh r1, [r4, r1] + cmp r1, #0x0 + bne _0205A974 + bl sub_02058AFC + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B2C + cmp r6, r0 + bne _0205A98C + mov r0, #0x2 + ldrsh r0, [r4, r0] + add r0, r0, #0x1 + strh r0, [r4, #0x2] + b _0205A98C +_0205A974: + bl sub_02058B0C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B4C + cmp r6, r0 + bne _0205A98C + mov r0, #0x2 + ldrsh r0, [r4, r0] + add r0, r0, #0x1 + strh r0, [r4, #0x2] +_0205A98C: + mov r0, #0x2 + ldrsh r0, [r4, r0] + cmp r0, #0x3 + bne _0205A9C0 + add r0, r5, #0x0 + bl sub_02058AFC + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B0C + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B2C + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02058B4C + ldr r1, [sp, #0x0] + cmp r6, r1 + bne _0205A9C0 + cmp r7, r0 + bne _0205A9C0 + mov r0, #0x0 + strh r0, [r4, #0x2] +_0205A9C0: + ldr r0, [r4, #0x8] + bl sub_0205AAFC + add r7, r0, #0x0 + mov r0, #0x2 + ldrsh r0, [r4, r0] + lsl r0, r0, #0x2 + ldr r6, [r7, r0] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_0205ACE0 + cmp r0, #0x0 + bne _0205A9EA + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020584AC +_0205A9EA: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02059918 + mov r1, #0x1 + tst r1, r0 + beq _0205AA28 + mov r0, #0x2 + ldrsh r1, [r4, r0] + add r1, r1, #0x1 + strh r1, [r4, #0x2] + ldrsh r0, [r4, r0] + lsl r0, r0, #0x2 + ldr r6, [r7, r0] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020584CC + add r0, r5, #0x0 + bl sub_0205ACE0 + cmp r0, #0x0 + bne _0205AA20 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020584AC +_0205AA20: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02059918 +_0205AA28: + mov r1, #0xc + cmp r0, #0x0 + beq _0205AA30 + mov r1, #0x20 +_0205AA30: + add r0, r6, #0x0 + bl sub_0205AFDC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205AE0C + add r0, r5, #0x0 + bl sub_0205ACE0 + cmp r0, #0x1 + bne _0205AA52 + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0xc + bl sub_0205AD0C +_0205AA52: + add r0, r5, #0x0 + bl sub_0205883C + mov r0, #0x1 + strh r0, [r4, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205AA60 +sub_0205AA60: ; 0x0205AA60 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0205B080 + cmp r0, #0x1 + bne _0205AA8C + add r0, r5, #0x0 + bl sub_02058848 + add r0, r5, #0x0 + bl sub_0205ACE0 + cmp r0, #0x1 + bne _0205AA88 + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0xc + bl sub_0205AD88 +_0205AA88: + mov r0, #0x0 + strh r0, [r4, #0x0] +_0205AA8C: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205AA90 +sub_0205AA90: ; 0x0205AA90 + push {r4, lr} + ldr r2, [r0, #0x0] + mov r4, #0x0 + cmp r1, r2 + beq _0205AAA4 +_0205AA9A: + add r0, r0, #0x4 + ldr r2, [r0, #0x0] + add r4, r4, #0x1 + cmp r1, r2 + bne _0205AA9A +_0205AAA4: + cmp r4, #0x0 + bne _0205AAAC + bl sub_02020C2C +_0205AAAC: + add r0, r4, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205AAB0 +sub_0205AAB0: ; 0x0205AAB0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0201B9EC + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205AA90 + add r1, r0, #0x0 + add r0, r6, #0x0 + blx sub_020EBC80 + lsl r0, r1, #0x2 + ldr r0, [r5, r0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0205AAD4 +sub_0205AAD4: ; 0x0205AAD4 + push {r4-r6, lr} + add r5, r1, #0x0 + bl sub_0205AAFC + add r4, r0, #0x0 + bl sub_0201B9EC + add r6, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0205AA90 + add r1, r0, #0x0 + add r0, r6, #0x0 + blx sub_020EBC80 + lsl r0, r1, #0x2 + ldr r0, [r4, r0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0205AAFC +sub_0205AAFC: ; 0x0205AAFC + push {r3, lr} + ldr r1, _0205AB1C ; =0x020F69BC + mov r2, #0x0 +_0205AB02: + cmp r2, r0 + bne _0205AB0A + ldr r0, [r1, #0x4] + pop {r3, pc} +_0205AB0A: + add r1, #0x8 + ldr r2, [r1, #0x0] + cmp r2, #0x27 + bne _0205AB02 + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + nop +_0205AB1C: .word 0x020F69BC + + thumb_func_start sub_0205AB20 +sub_0205AB20: ; 0x0205AB20 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02058488 + cmp r0, #0x1 + beq _0205AB36 + cmp r0, #0x2 + beq _0205AB36 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0205AB36: + add r0, r5, #0x0 + bl sub_02058738 + bl sub_02055698 + add r6, r0, #0x0 + bl sub_02057124 + cmp r0, #0x0 + bne _0205AB50 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0205AB50: + add r0, r5, #0x0 + mov r4, #0x0 + bl sub_02058480 + ldr r1, _0205ABE8 ; =0x020F6984 +_0205AB5A: + lsl r2, r4, #0x2 + ldr r2, [r1, r2] + add r4, r4, #0x1 + cmp r2, r0 + beq _0205AB68 + cmp r2, #0xff + bne _0205AB5A +_0205AB68: + cmp r0, r2 + beq _0205AB72 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0205AB72: + add r0, r6, #0x0 + bl sub_020553A0 + bl sub_02058BE4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058BE4 + cmp r4, r0 + beq _0205AB8E + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0205AB8E: + add r0, r6, #0x0 + bl sub_02055320 + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_0205532C + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02058B2C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B4C + add r3, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r5, [sp, #0x0] + sub r2, r6, r0 + add r1, r6, r0 + sub r5, r3, r5 + add r0, r3, r0 + cmp r5, r4 + bgt _0205ABE2 + cmp r0, r4 + blt _0205ABE2 + cmp r2, r7 + bgt _0205ABE2 + cmp r1, r7 + blt _0205ABE2 + add r1, r3, #0x0 + add r0, r6, #0x0 + add r2, r7, #0x0 + add r3, r4, #0x0 + bl sub_02059E80 + pop {r3-r7, pc} +_0205ABE2: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + .balign 4 +_0205ABE8: .word 0x020F6984 + + thumb_func_start sub_0205ABEC +sub_0205ABEC: ; 0x0205ABEC + push {r4-r7, lr} + sub sp, #0x14 + str r0, [sp, #0x0] + add r4, r2, #0x0 + add r0, r1, #0x0 + bl sub_0205AAFC + add r1, r4, #0x0 + add r5, r0, #0x0 + bl sub_0205AA90 + add r4, r0, #0x0 + cmp r4, #0x1 + bne _0205AC10 + mov r0, #0x0 + add sp, #0x14 + mvn r0, r0 + pop {r4-r7, pc} +_0205AC10: + ldr r0, [sp, #0x0] + bl sub_0205AB20 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _0205ACDA + mov r2, #0x0 + add r3, r5, #0x0 +_0205AC22: + ldr r1, [r3, #0x0] + cmp r0, r1 + beq _0205ACDA + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, r4 + blt _0205AC22 + mov r7, #0x0 + mvn r7, r7 + ldr r0, [sp, #0x0] + add r6, r7, #0x0 + bl sub_02058B2C + str r0, [sp, #0x8] + ldr r0, [sp, #0x0] + bl sub_02058B4C + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + bl sub_02058738 + bl sub_02055698 + str r0, [sp, #0xc] + bl sub_02055320 + str r0, [sp, #0x10] + ldr r0, [sp, #0xc] + bl sub_0205532C + ldr r2, [sp, #0x8] + ldr r1, [sp, #0x10] + cmp r2, r1 + ble _0205AC6A + mov r7, #0x2 + b _0205AC70 +_0205AC6A: + cmp r2, r1 + bge _0205AC70 + mov r7, #0x3 +_0205AC70: + ldr r1, [sp, #0x4] + cmp r1, r0 + ble _0205AC7A + mov r6, #0x0 + b _0205AC80 +_0205AC7A: + cmp r1, r0 + bge _0205AC80 + mov r6, #0x1 +_0205AC80: + mov r0, #0x0 + sub r1, r0, #0x1 + cmp r7, r1 + bne _0205AC9E +_0205AC88: + ldr r1, [r5, #0x0] + cmp r6, r1 + bne _0205AC94 + add sp, #0x14 + add r0, r6, #0x0 + pop {r4-r7, pc} +_0205AC94: + add r0, r0, #0x1 + add r5, r5, #0x4 + cmp r0, r4 + blt _0205AC88 + b _0205ACD6 +_0205AC9E: + cmp r6, r1 + bne _0205ACB8 +_0205ACA2: + ldr r1, [r5, #0x0] + cmp r7, r1 + bne _0205ACAE + add sp, #0x14 + add r0, r7, #0x0 + pop {r4-r7, pc} +_0205ACAE: + add r0, r0, #0x1 + add r5, r5, #0x4 + cmp r0, r4 + blt _0205ACA2 + b _0205ACD6 +_0205ACB8: + ldr r1, [r5, #0x0] + cmp r7, r1 + bne _0205ACC4 + add sp, #0x14 + add r0, r7, #0x0 + pop {r4-r7, pc} +_0205ACC4: + cmp r6, r1 + bne _0205ACCE + add sp, #0x14 + add r0, r6, #0x0 + pop {r4-r7, pc} +_0205ACCE: + add r0, r0, #0x1 + add r5, r5, #0x4 + cmp r0, r4 + blt _0205ACB8 +_0205ACD6: + mov r0, #0x0 + mvn r0, r0 +_0205ACDA: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0205ACE0 +sub_0205ACE0: ; 0x0205ACE0 + push {r3, lr} + bl sub_02058488 + sub r0, r0, #0x7 + cmp r0, #0x1 + bhi _0205ACF0 + mov r0, #0x1 + pop {r3, pc} +_0205ACF0: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0205ACF4 +sub_0205ACF4: ; 0x0205ACF4 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02058488 + cmp r0, #0x7 + bne _0205AD06 + mov r0, #0x0 + strb r0, [r4, #0x1] + pop {r4, pc} +_0205AD06: + mov r0, #0x1 + strb r0, [r4, #0x1] + pop {r4, pc} + + thumb_func_start sub_0205AD0C +sub_0205AD0C: ; 0x0205AD0C + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + bl sub_020584C4 + mov r4, #0x0 + add r6, r0, #0x0 + add r1, r4, #0x0 + ldr r0, _0205AD84 ; =0x020F6964 + mov r2, #0x1 + b _0205AD26 +_0205AD22: + add r1, r1, #0x4 + add r4, r4, #0x1 +_0205AD26: + cmp r4, #0x4 + bge _0205AD36 + ldrsb r3, [r5, r2] + lsl r3, r3, #0x4 + add r3, r0, r3 + ldr r3, [r1, r3] + cmp r6, r3 + bne _0205AD22 +_0205AD36: + cmp r4, #0x4 + blt _0205AD3E + bl sub_02020C2C +_0205AD3E: + add r0, r4, #0x1 + lsr r2, r0, #0x1f + lsl r1, r0, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + strb r6, [r5, #0x0] + mov r0, #0x1 + add r1, r2, r1 + ldrsb r0, [r5, r0] + lsl r1, r1, #0x2 + lsl r2, r0, #0x4 + ldr r0, _0205AD84 ; =0x020F6964 + add r0, r0, r2 + ldr r4, [r1, r0] + add r0, r7, #0x0 + mov r1, #0x80 + bl sub_02058424 + cmp r0, #0x0 + beq _0205AD6C + mov r0, #0x1 + b _0205AD6E +_0205AD6C: + mov r0, #0x0 +_0205AD6E: + strb r0, [r5, #0x2] + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_020584AC + add r0, r7, #0x0 + mov r1, #0x80 + bl sub_02058410 + pop {r3-r7, pc} + nop +_0205AD84: .word 0x020F6964 + + thumb_func_start sub_0205AD88 +sub_0205AD88: ; 0x0205AD88 + push {r3, lr} + ldrb r1, [r1, #0x2] + cmp r1, #0x0 + bne _0205AD96 + mov r1, #0x80 + bl sub_02058418 +_0205AD96: + pop {r3, pc} + + thumb_func_start sub_0205AD98 +sub_0205AD98: ; 0x0205AD98 + push {r4, lr} + mov r1, #0x1 + add r4, r0, #0x0 + bl sub_0205842C + cmp r0, #0x0 + bne _0205ADAA + mov r0, #0x0 + pop {r4, pc} +_0205ADAA: + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_0205842C + cmp r0, #0x1 + bne _0205ADBA + mov r0, #0x0 + pop {r4, pc} +_0205ADBA: + add r0, r4, #0x0 + mov r1, #0x10 + bl sub_0205842C + cmp r0, #0x1 + bne _0205ADD6 + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_0205842C + cmp r0, #0x0 + bne _0205ADD6 + mov r0, #0x0 + pop {r4, pc} +_0205ADD6: + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205ADDC +sub_0205ADDC: ; 0x0205ADDC + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x69 + blt _0205ADEA + bl sub_02020C2C +_0205ADEA: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020586E8 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020586F8 + add r0, r5, #0x0 + mov r1, #0x10 + bl sub_02058410 + add r0, r5, #0x0 + mov r1, #0x20 + bl sub_02058418 + pop {r3-r5, pc} + + thumb_func_start sub_0205AE0C +sub_0205AE0C: ; 0x0205AE0C + push {r4, lr} + add r4, r0, #0x0 + bl sub_020586E8 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020586F8 + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_02058418 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205AE28 +sub_0205AE28: ; 0x0205AE28 + push {r4, lr} + mov r1, #0x10 + add r4, r0, #0x0 + bl sub_0205842C + cmp r0, #0x0 + bne _0205AE3A + mov r0, #0x1 + pop {r4, pc} +_0205AE3A: + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_0205842C + cmp r0, #0x0 + beq _0205AE4A + mov r0, #0x1 + pop {r4, pc} +_0205AE4A: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205AE50 +sub_0205AE50: ; 0x0205AE50 + push {r4, lr} + mov r1, #0x10 + add r4, r0, #0x0 + bl sub_0205842C + cmp r0, #0x0 + bne _0205AE62 + mov r0, #0x1 + pop {r4, pc} +_0205AE62: + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_0205842C + cmp r0, #0x0 + bne _0205AE72 + mov r0, #0x0 + pop {r4, pc} +_0205AE72: + add r0, r4, #0x0 + mov r1, #0x30 + bl sub_02058418 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205AE80 +sub_0205AE80: ; 0x0205AE80 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x10 + bl sub_02058418 + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_02058410 + add r0, r4, #0x0 + mov r1, #0xff + bl sub_020586E8 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020586F8 + pop {r4, pc} + + thumb_func_start sub_0205AEA4 +sub_0205AEA4: ; 0x0205AEA4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0x4 + mov r1, #0x14 + bl sub_020169D8 + add r4, r0, #0x0 + bne _0205AEBA + bl sub_02020C2C +_0205AEBA: + add r2, r4, #0x0 + mov r1, #0x14 + mov r0, #0x0 +_0205AEC0: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0205AEC0 + add r0, r5, #0x0 + bl sub_02058578 + bl sub_0205839C + sub r2, r0, #0x1 + ldr r0, _0205AEEC ; =sub_0205AF2C + add r1, r4, #0x0 + bl sub_0200CA44 + add r7, r0, #0x0 + bne _0205AEE4 + bl sub_02020C2C +_0205AEE4: + str r5, [r4, #0xc] + str r6, [r4, #0x10] + add r0, r7, #0x0 + pop {r3-r7, pc} + .balign 4 +_0205AEEC: .word sub_0205AF2C + 1 + + thumb_func_start sub_0205AEF0 +sub_0205AEF0: ; 0x0205AEF0 + push {r3, lr} + bl sub_0201B6C8 + ldr r0, [r0, #0x4] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205AEFC +sub_0205AEFC: ; 0x0205AEFC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0201B6C8 + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0205AE28 + cmp r0, #0x1 + beq _0205AF14 + bl sub_02020C2C +_0205AF14: + ldr r0, [r4, #0xc] + bl sub_0205AE50 + mov r0, #0x4 + add r1, r4, #0x0 + bl sub_02016A8C + add r0, r5, #0x0 + bl sub_0200CAB4 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205AF2C +sub_0205AF2C: ; 0x0205AF2C + push {r3-r5, lr} + ldr r4, _0205AF44 ; =0x020F6C54 + add r5, r1, #0x0 +_0205AF32: + ldr r1, [r5, #0x0] + add r0, r5, #0x0 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + blx r1 + cmp r0, #0x1 + beq _0205AF32 + pop {r3-r5, pc} + nop +_0205AF44: .word 0x020F6C54 + + thumb_func_start sub_0205AF48 +sub_0205AF48: ; 0x0205AF48 + mov r1, #0x0 + str r1, [r0, #0x8] + mov r1, #0x1 + str r1, [r0, #0x0] + add r0, r1, #0x0 + bx lr + + thumb_func_start sub_0205AF54 +sub_0205AF54: ; 0x0205AF54 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0205AD98 + cmp r0, #0x0 + bne _0205AF66 + mov r0, #0x0 + pop {r4, pc} +_0205AF66: + mov r0, #0x2 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205AF70 +sub_0205AF70: ; 0x0205AF70 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x10] + ldr r0, [r4, #0xc] + ldrh r1, [r1, #0x0] + bl sub_0205ADDC + mov r0, #0x3 + str r0, [r4, #0x0] + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205AF88 +sub_0205AF88: ; 0x0205AF88 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0205AE28 + cmp r0, #0x0 + bne _0205AF9A + mov r0, #0x0 + pop {r4, pc} +_0205AF9A: + mov r0, #0x4 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205AFA4 +sub_0205AFA4: ; 0x0205AFA4 + ldr r1, [r0, #0x8] + ldr r3, [r0, #0x10] + add r2, r1, #0x1 + str r2, [r0, #0x8] + ldrh r1, [r3, #0x2] + cmp r2, r1 + bge _0205AFBA + mov r1, #0x1 + str r1, [r0, #0x0] + add r0, r1, #0x0 + bx lr +_0205AFBA: + add r1, r3, #0x4 + str r1, [r0, #0x10] + ldrh r1, [r3, #0x4] + cmp r1, #0xfe + beq _0205AFCC + mov r1, #0x0 + str r1, [r0, #0x0] + mov r0, #0x1 + bx lr +_0205AFCC: + mov r1, #0x1 + str r1, [r0, #0x4] + mov r1, #0x5 + str r1, [r0, #0x0] + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205AFD8 +sub_0205AFD8: ; 0x0205AFD8 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205AFDC +sub_0205AFDC: ; 0x0205AFDC + push {r3-r7, lr} + add r7, r0, #0x0 + add r4, r1, #0x0 + cmp r7, #0x4 + blt _0205AFEA + bl sub_02020C2C +_0205AFEA: + ldr r3, _0205B01C ; =0x020F6308 + ldr r6, [r3, #0x0] + cmp r6, #0x0 + beq _0205B014 + mov r1, #0x0 +_0205AFF4: + add r2, r1, #0x0 + add r5, r6, #0x0 +_0205AFF8: + ldr r0, [r5, #0x0] + cmp r4, r0 + bne _0205B004 + lsl r0, r7, #0x2 + ldr r0, [r6, r0] + pop {r3-r7, pc} +_0205B004: + add r2, r2, #0x1 + add r5, r5, #0x4 + cmp r2, #0x4 + blt _0205AFF8 + add r3, r3, #0x4 + ldr r6, [r3, #0x0] + cmp r6, #0x0 + bne _0205AFF4 +_0205B014: + bl sub_02020C2C + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_0205B01C: .word 0x020F6308 + + thumb_func_start sub_0205B020 +sub_0205B020: ; 0x0205B020 + push {r4-r5} + ldr r4, _0205B054 ; =0x020F6308 + ldr r5, [r4, #0x0] + cmp r5, #0x0 + beq _0205B04A + mov r2, #0x0 +_0205B02C: + add r3, r2, #0x0 +_0205B02E: + ldr r1, [r5, #0x0] + cmp r0, r1 + bne _0205B03A + add r0, r3, #0x0 + pop {r4-r5} + bx lr +_0205B03A: + add r3, r3, #0x1 + add r5, r5, #0x4 + cmp r3, #0x4 + blt _0205B02E + add r4, r4, #0x4 + ldr r5, [r4, #0x0] + cmp r5, #0x0 + bne _0205B02C +_0205B04A: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r5} + bx lr + nop +_0205B054: .word 0x020F6308 + + thumb_func_start sub_0205B058 +sub_0205B058: ; 0x0205B058 + push {r3-r5, lr} + add r5, r0, #0x0 +_0205B05C: + add r0, r5, #0x0 + bl sub_020586F0 + add r4, r0, #0x0 + cmp r4, #0xff + beq _0205B07C + add r0, r5, #0x0 + bl sub_02058710 + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205B0B4 + cmp r0, #0x0 + bne _0205B05C +_0205B07C: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205B080 +sub_0205B080: ; 0x0205B080 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0205B058 + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_0205842C + cmp r0, #0x0 + bne _0205B098 + mov r0, #0x0 + pop {r4, pc} +_0205B098: + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_02058418 + add r0, r4, #0x0 + mov r1, #0xff + bl sub_020586E8 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020586F8 + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0205B0B4 +sub_0205B0B4: ; 0x0205B0B4 + push {r3, lr} + lsl r3, r1, #0x2 + ldr r1, _0205B0C4 ; =0x020F6440 + ldr r3, [r1, r3] + lsl r1, r2, #0x2 + ldr r1, [r3, r1] + blx r1 + pop {r3, pc} + .balign 4 +_0205B0C4: .word 0x020F6440 + + thumb_func_start sub_0205B0C8 +sub_0205B0C8: ; 0x0205B0C8 + push {r3, lr} + mov r1, #0x20 + bl sub_02058410 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0205B0D4 +sub_0205B0D4: ; 0x0205B0D4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020584AC + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02059C60 + add r0, r4, #0x0 + bl sub_02058700 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205B0F4 +sub_0205B0F4: ; 0x0205B0F4 + push {r3, lr} + mov r1, #0x0 + bl sub_0205B0D4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B100 +sub_0205B100: ; 0x0205B100 + push {r3, lr} + mov r1, #0x1 + bl sub_0205B0D4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B10C +sub_0205B10C: ; 0x0205B10C + push {r3, lr} + mov r1, #0x2 + bl sub_0205B0D4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B118 +sub_0205B118: ; 0x0205B118 + push {r3, lr} + mov r1, #0x3 + bl sub_0205B0D4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B124 +sub_0205B124: ; 0x0205B124 + push {r3-r7, lr} + add r4, r1, #0x0 + mov r1, #0xc + add r5, r0, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_020585DC + add r1, sp, #0x8 + ldrh r1, [r1, #0x10] + strh r1, [r0, #0x0] + strh r7, [r0, #0x2] + str r4, [r0, #0x4] + str r6, [r0, #0x8] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059C0C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020584D8 + add r1, sp, #0x8 + ldrh r1, [r1, #0x10] + add r0, r5, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + mov r1, #0x4 + bl sub_02058410 + add r0, r5, #0x0 + bl sub_02058700 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205B16C +sub_0205B16C: ; 0x0205B16C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02058600 + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x8] + add r0, r5, #0x0 + bl sub_02059CC8 + add r0, r5, #0x0 + bl sub_02059D1C + mov r0, #0x2 + ldrsh r1, [r4, r0] + sub r1, r1, #0x1 + strh r1, [r4, #0x2] + ldrsh r0, [r4, r0] + cmp r0, #0x0 + ble _0205B198 + mov r0, #0x0 + pop {r3-r5, pc} +_0205B198: + add r0, r5, #0x0 + mov r1, #0x28 + bl sub_02058410 + add r0, r5, #0x0 + bl sub_02059C60 + add r0, r5, #0x0 + bl sub_020586A0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205B1C0 +sub_0205B1C0: ; 0x0205B1C0 + push {r3, lr} + mov r2, #0x1 + str r2, [sp, #0x0] + mov r1, #0x0 + lsl r2, r2, #0xb + mov r3, #0x20 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B1D4 +sub_0205B1D4: ; 0x0205B1D4 + push {r3, lr} + mov r1, #0x1 + lsl r2, r1, #0xb + mov r3, #0x20 + str r1, [sp, #0x0] + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B1E8 +sub_0205B1E8: ; 0x0205B1E8 + push {r3, lr} + mov r1, #0x1 + str r1, [sp, #0x0] + mov r1, #0x2 + lsl r2, r1, #0xa + mov r3, #0x20 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B1FC +sub_0205B1FC: ; 0x0205B1FC + push {r3, lr} + mov r2, #0x1 + str r2, [sp, #0x0] + mov r1, #0x3 + lsl r2, r2, #0xb + mov r3, #0x20 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B210 +sub_0205B210: ; 0x0205B210 + push {r3, lr} + mov r2, #0x2 + str r2, [sp, #0x0] + mov r1, #0x0 + lsl r2, r2, #0xb + mov r3, #0x10 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B224 +sub_0205B224: ; 0x0205B224 + push {r3, lr} + mov r1, #0x2 + str r1, [sp, #0x0] + mov r1, #0x1 + lsl r2, r1, #0xc + mov r3, #0x10 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B238 +sub_0205B238: ; 0x0205B238 + push {r3, lr} + mov r1, #0x2 + lsl r2, r1, #0xb + mov r3, #0x10 + str r1, [sp, #0x0] + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B24C +sub_0205B24C: ; 0x0205B24C + push {r3, lr} + mov r2, #0x2 + str r2, [sp, #0x0] + mov r1, #0x3 + lsl r2, r2, #0xb + mov r3, #0x10 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B260 +sub_0205B260: ; 0x0205B260 + push {r3, lr} + mov r1, #0x3 + mov r2, #0x2 + str r1, [sp, #0x0] + mov r1, #0x0 + lsl r2, r2, #0xc + mov r3, #0x8 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B278 +sub_0205B278: ; 0x0205B278 + push {r3, lr} + mov r1, #0x3 + str r1, [sp, #0x0] + mov r1, #0x1 + lsl r2, r1, #0xd + mov r3, #0x8 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B28C +sub_0205B28C: ; 0x0205B28C + push {r3, lr} + mov r1, #0x3 + str r1, [sp, #0x0] + mov r1, #0x2 + lsl r2, r1, #0xc + mov r3, #0x8 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B2A0 +sub_0205B2A0: ; 0x0205B2A0 + push {r3, lr} + mov r2, #0x2 + mov r1, #0x3 + lsl r2, r2, #0xc + mov r3, #0x8 + str r1, [sp, #0x0] + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B2B4 +sub_0205B2B4: ; 0x0205B2B4 + push {r3, lr} + mov r3, #0x4 + mov r1, #0x0 + lsl r2, r3, #0xc + str r3, [sp, #0x0] + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B2C8 +sub_0205B2C8: ; 0x0205B2C8 + push {r3, lr} + mov r1, #0x1 + mov r3, #0x4 + lsl r2, r1, #0xe + str r3, [sp, #0x0] + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B2DC +sub_0205B2DC: ; 0x0205B2DC + push {r3, lr} + mov r1, #0x2 + mov r3, #0x4 + lsl r2, r1, #0xd + str r3, [sp, #0x0] + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B2F0 +sub_0205B2F0: ; 0x0205B2F0 + push {r3, lr} + mov r3, #0x4 + mov r1, #0x3 + lsl r2, r3, #0xc + str r3, [sp, #0x0] + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B304 +sub_0205B304: ; 0x0205B304 + push {r3, lr} + mov r1, #0x5 + mov r2, #0x2 + str r1, [sp, #0x0] + mov r1, #0x0 + lsl r2, r2, #0xe + mov r3, #0x2 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B31C +sub_0205B31C: ; 0x0205B31C + push {r3, lr} + mov r1, #0x5 + str r1, [sp, #0x0] + mov r1, #0x1 + lsl r2, r1, #0xf + mov r3, #0x2 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B330 +sub_0205B330: ; 0x0205B330 + push {r3, lr} + mov r1, #0x5 + str r1, [sp, #0x0] + mov r1, #0x2 + lsl r2, r1, #0xe + add r3, r1, #0x0 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B344 +sub_0205B344: ; 0x0205B344 + push {r3, lr} + mov r1, #0x5 + mov r2, #0x2 + str r1, [sp, #0x0] + mov r1, #0x3 + lsl r2, r2, #0xe + mov r3, #0x2 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B35C +sub_0205B35C: ; 0x0205B35C + push {r3, lr} + mov r2, #0x1 + mov r1, #0x0 + lsl r2, r2, #0x10 + mov r3, #0x1 + str r1, [sp, #0x0] + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B370 +sub_0205B370: ; 0x0205B370 + push {r3, lr} + mov r1, #0x0 + str r1, [sp, #0x0] + mov r1, #0x1 + lsl r2, r1, #0x10 + add r3, r1, #0x0 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B384 +sub_0205B384: ; 0x0205B384 + push {r3, lr} + mov r1, #0x0 + str r1, [sp, #0x0] + mov r1, #0x2 + lsl r2, r1, #0xf + mov r3, #0x1 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B398 +sub_0205B398: ; 0x0205B398 + push {r3, lr} + mov r1, #0x0 + mov r2, #0x1 + str r1, [sp, #0x0] + mov r1, #0x3 + lsl r2, r2, #0x10 + mov r3, #0x1 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B3B0 +sub_0205B3B0: ; 0x0205B3B0 + push {r3, lr} + mov r1, #0x9 + mov r2, #0x1 + str r1, [sp, #0x0] + mov r1, #0x0 + lsl r2, r2, #0xe + mov r3, #0x4 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B3C8 +sub_0205B3C8: ; 0x0205B3C8 + push {r3, lr} + mov r1, #0x9 + str r1, [sp, #0x0] + mov r1, #0x1 + lsl r2, r1, #0xe + mov r3, #0x4 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B3DC +sub_0205B3DC: ; 0x0205B3DC + push {r3, lr} + mov r1, #0x9 + str r1, [sp, #0x0] + mov r1, #0x2 + lsl r2, r1, #0xd + mov r3, #0x4 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B3F0 +sub_0205B3F0: ; 0x0205B3F0 + push {r3, lr} + mov r1, #0x9 + mov r2, #0x1 + str r1, [sp, #0x0] + mov r1, #0x3 + lsl r2, r2, #0xe + mov r3, #0x4 + bl sub_0205B124 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205B408 +sub_0205B408: ; 0x0205B408 + push {r3-r7, lr} + add r7, r1, #0x0 + add r6, r2, #0x0 + add r4, r3, #0x0 + mov r1, #0xc + add r5, r0, #0x0 + bl sub_020585DC + strh r4, [r0, #0x0] + add r1, r6, #0x1 + strh r1, [r0, #0x2] + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_020584AC + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + bl sub_02059C60 + add r0, r5, #0x0 + bl sub_02058700 + pop {r3-r7, pc} + + thumb_func_start sub_0205B43C +sub_0205B43C: ; 0x0205B43C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058600 + mov r1, #0x2 + ldrsh r2, [r0, r1] + sub r2, r2, #0x1 + strh r2, [r0, #0x2] + ldrsh r0, [r0, r1] + cmp r0, #0x0 + ble _0205B456 + mov r0, #0x0 + pop {r4, pc} +_0205B456: + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_02058410 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0205B470 +sub_0205B470: ; 0x0205B470 + push {r3, lr} + mov r1, #0x0 + mov r2, #0x20 + mov r3, #0x1 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B480 +sub_0205B480: ; 0x0205B480 + push {r3, lr} + mov r1, #0x1 + mov r2, #0x20 + add r3, r1, #0x0 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B490 +sub_0205B490: ; 0x0205B490 + push {r3, lr} + mov r1, #0x2 + mov r2, #0x20 + mov r3, #0x1 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B4A0 +sub_0205B4A0: ; 0x0205B4A0 + push {r3, lr} + mov r1, #0x3 + mov r2, #0x20 + mov r3, #0x1 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B4B0 +sub_0205B4B0: ; 0x0205B4B0 + push {r3, lr} + mov r1, #0x0 + mov r2, #0x10 + mov r3, #0x2 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B4C0 +sub_0205B4C0: ; 0x0205B4C0 + push {r3, lr} + mov r1, #0x1 + mov r2, #0x10 + mov r3, #0x2 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B4D0 +sub_0205B4D0: ; 0x0205B4D0 + push {r3, lr} + mov r1, #0x2 + mov r2, #0x10 + add r3, r1, #0x0 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B4E0 +sub_0205B4E0: ; 0x0205B4E0 + push {r3, lr} + mov r1, #0x3 + mov r2, #0x10 + mov r3, #0x2 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B4F0 +sub_0205B4F0: ; 0x0205B4F0 + push {r3, lr} + mov r1, #0x0 + mov r2, #0x8 + mov r3, #0x3 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B500 +sub_0205B500: ; 0x0205B500 + push {r3, lr} + mov r1, #0x1 + mov r2, #0x8 + mov r3, #0x3 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B510 +sub_0205B510: ; 0x0205B510 + push {r3, lr} + mov r1, #0x2 + mov r2, #0x8 + mov r3, #0x3 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B520 +sub_0205B520: ; 0x0205B520 + push {r3, lr} + mov r1, #0x3 + mov r2, #0x8 + add r3, r1, #0x0 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B530 +sub_0205B530: ; 0x0205B530 + push {r3, lr} + mov r2, #0x4 + mov r1, #0x0 + add r3, r2, #0x0 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B540 +sub_0205B540: ; 0x0205B540 + push {r3, lr} + mov r2, #0x4 + mov r1, #0x1 + add r3, r2, #0x0 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B550 +sub_0205B550: ; 0x0205B550 + push {r3, lr} + mov r2, #0x4 + mov r1, #0x2 + add r3, r2, #0x0 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B560 +sub_0205B560: ; 0x0205B560 + push {r3, lr} + mov r2, #0x4 + mov r1, #0x3 + add r3, r2, #0x0 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B570 +sub_0205B570: ; 0x0205B570 + push {r3, lr} + mov r1, #0x0 + mov r2, #0x2 + mov r3, #0x5 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B580 +sub_0205B580: ; 0x0205B580 + push {r3, lr} + mov r1, #0x1 + mov r2, #0x2 + mov r3, #0x5 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B590 +sub_0205B590: ; 0x0205B590 + push {r3, lr} + mov r1, #0x2 + add r2, r1, #0x0 + mov r3, #0x5 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B5A0 +sub_0205B5A0: ; 0x0205B5A0 + push {r3, lr} + mov r1, #0x3 + mov r2, #0x2 + mov r3, #0x5 + bl sub_0205B408 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B5B0 +sub_0205B5B0: ; 0x0205B5B0 + push {r3-r7, lr} + add r4, r1, #0x0 + mov r1, #0x10 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_020585DC + strb r4, [r0, #0xc] + str r6, [r0, #0x0] + strb r7, [r0, #0xd] + add r2, sp, #0x8 + ldrh r1, [r2, #0x10] + strb r1, [r0, #0xe] + mov r1, #0x14 + ldrsh r1, [r2, r1] + cmp r6, #0x0 + strb r1, [r0, #0xf] + ldrh r1, [r2, #0x18] + strh r1, [r0, #0x8] + bne _0205B5E2 + add r0, r5, #0x0 + bl sub_02059C60 + b _0205B5EA +_0205B5E2: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059C0C +_0205B5EA: + ldr r1, _0205B614 ; =0x00010004 + add r0, r5, #0x0 + bl sub_02058410 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020584D8 + add r1, sp, #0x8 + ldrh r1, [r1, #0x10] + add r0, r5, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + bl sub_02058700 + ldr r0, _0205B618 ; =0x0000060B + bl sub_020054C8 + pop {r3-r7, pc} + nop +_0205B614: .word 0x00010004 +_0205B618: .word 0x0000060B + + thumb_func_start sub_0205B61C +sub_0205B61C: ; 0x0205B61C + push {r3-r5, lr} + sub sp, #0x18 + add r5, r0, #0x0 + bl sub_02058600 + add r4, r0, #0x0 + ldr r2, [r4, #0x0] + cmp r2, #0x0 + beq _0205B66C + mov r1, #0xc + ldrsb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02059CC8 + add r0, r5, #0x0 + bl sub_02059D1C + mov r0, #0x1 + ldr r1, [r4, #0x4] + lsl r0, r0, #0x10 + cmp r1, r0 + blt _0205B65E + mov r0, #0x0 + str r0, [r4, #0x4] + mov r1, #0xc + ldrsb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02059C0C + add r0, r5, #0x0 + mov r1, #0x4 + bl sub_02058410 +_0205B65E: + ldr r1, [r4, #0x0] + cmp r1, #0x0 + bge _0205B666 + neg r1, r1 +_0205B666: + ldr r0, [r4, #0x4] + add r0, r0, r1 + str r0, [r4, #0x4] +_0205B66C: + ldrh r1, [r4, #0xa] + ldrh r0, [r4, #0x8] + add r0, r1, r0 + strh r0, [r4, #0xa] + mov r0, #0xf + ldrh r1, [r4, #0xa] + lsl r0, r0, #0x8 + cmp r1, r0 + bls _0205B680 + strh r0, [r4, #0xa] +_0205B680: + mov r1, #0xf + ldrsb r1, [r4, r1] + ldrh r0, [r4, #0xa] + lsl r2, r1, #0x2 + ldr r1, _0205B6F8 ; =0x02105F9C + lsr r0, r0, #0x8 + lsl r0, r0, #0x10 + ldr r2, [r1, r2] + mov r1, #0x0 + str r1, [sp, #0xc] + lsr r0, r0, #0xe + ldr r0, [r2, r0] + str r0, [sp, #0x10] + str r1, [sp, #0x14] + add r0, r5, #0x0 + add r1, sp, #0xc + bl sub_02058B94 + mov r0, #0xd + ldrsb r1, [r4, r0] + sub r1, r1, #0x1 + strb r1, [r4, #0xd] + ldrsb r0, [r4, r0] + cmp r0, #0x0 + ble _0205B6B8 + add sp, #0x18 + mov r0, #0x0 + pop {r3-r5, pc} +_0205B6B8: + add r1, sp, #0x0 + mov r0, #0x0 + str r0, [r1, #0x0] + str r0, [r1, #0x4] + str r0, [r1, #0x8] + add r0, r5, #0x0 + bl sub_02058B94 + ldr r1, _0205B6FC ; =0x00020028 + add r0, r5, #0x0 + bl sub_02058410 + add r0, r5, #0x0 + bl sub_02059C60 + add r0, r5, #0x0 + bl sub_020586A0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + bl sub_02058700 + ldr r0, _0205B700 ; =0x00000647 + bl sub_020054C8 + mov r0, #0x1 + add sp, #0x18 + pop {r3-r5, pc} + nop +_0205B6F8: .word 0x02105F9C +_0205B6FC: .word 0x00020028 +_0205B700: .word 0x00000647 + + thumb_func_start sub_0205B704 +sub_0205B704: ; 0x0205B704 + push {lr} + sub sp, #0xc + mov r2, #0x2 + str r2, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x4] + add r2, #0xfe + str r2, [sp, #0x8] + add r2, r1, #0x0 + mov r3, #0x10 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_0205B724 +sub_0205B724: ; 0x0205B724 + push {lr} + sub sp, #0xc + mov r1, #0x2 + str r1, [sp, #0x0] + mov r2, #0x0 + str r2, [sp, #0x4] + add r1, #0xfe + str r1, [sp, #0x8] + mov r1, #0x1 + mov r3, #0x10 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_0205B744 +sub_0205B744: ; 0x0205B744 + push {lr} + sub sp, #0xc + mov r1, #0x2 + add r3, r1, #0x0 + str r1, [sp, #0x0] + mov r2, #0x0 + str r2, [sp, #0x4] + add r3, #0xfe + str r3, [sp, #0x8] + mov r3, #0x10 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_0205B764 +sub_0205B764: ; 0x0205B764 + push {lr} + sub sp, #0xc + mov r1, #0x2 + str r1, [sp, #0x0] + mov r2, #0x0 + str r2, [sp, #0x4] + add r1, #0xfe + str r1, [sp, #0x8] + mov r1, #0x3 + mov r3, #0x10 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_0205B784 +sub_0205B784: ; 0x0205B784 + push {lr} + sub sp, #0xc + mov r1, #0x3 + str r1, [sp, #0x0] + mov r1, #0x0 + mov r2, #0x2 + str r1, [sp, #0x4] + lsl r2, r2, #0x8 + str r2, [sp, #0x8] + add r2, r1, #0x0 + mov r3, #0x8 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0205B7A4 +sub_0205B7A4: ; 0x0205B7A4 + push {lr} + sub sp, #0xc + mov r1, #0x3 + str r1, [sp, #0x0] + mov r2, #0x0 + mov r1, #0x2 + str r2, [sp, #0x4] + lsl r1, r1, #0x8 + str r1, [sp, #0x8] + mov r1, #0x1 + mov r3, #0x8 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0205B7C4 +sub_0205B7C4: ; 0x0205B7C4 + push {lr} + sub sp, #0xc + mov r1, #0x3 + str r1, [sp, #0x0] + mov r2, #0x0 + mov r1, #0x2 + str r2, [sp, #0x4] + lsl r1, r1, #0x8 + str r1, [sp, #0x8] + mov r1, #0x2 + mov r3, #0x8 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0205B7E4 +sub_0205B7E4: ; 0x0205B7E4 + push {lr} + sub sp, #0xc + mov r1, #0x3 + mov r3, #0x2 + str r1, [sp, #0x0] + mov r2, #0x0 + str r2, [sp, #0x4] + lsl r3, r3, #0x8 + str r3, [sp, #0x8] + mov r3, #0x8 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_0205B804 +sub_0205B804: ; 0x0205B804 + push {lr} + sub sp, #0xc + mov r1, #0x3 + str r1, [sp, #0x0] + mov r1, #0x0 + mov r2, #0x2 + str r1, [sp, #0x4] + lsl r2, r2, #0x8 + str r2, [sp, #0x8] + lsl r2, r2, #0x4 + mov r3, #0x8 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0205B824 +sub_0205B824: ; 0x0205B824 + push {lr} + sub sp, #0xc + mov r1, #0x3 + str r1, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x4] + mov r1, #0x2 + lsl r1, r1, #0x8 + str r1, [sp, #0x8] + mov r1, #0x1 + lsl r2, r1, #0xd + mov r3, #0x8 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_0205B848 +sub_0205B848: ; 0x0205B848 + push {lr} + sub sp, #0xc + mov r1, #0x3 + str r1, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x4] + mov r1, #0x2 + lsl r1, r1, #0x8 + str r1, [sp, #0x8] + mov r1, #0x2 + lsl r2, r1, #0xc + mov r3, #0x8 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_0205B86C +sub_0205B86C: ; 0x0205B86C + push {lr} + sub sp, #0xc + mov r1, #0x3 + str r1, [sp, #0x0] + mov r2, #0x0 + str r2, [sp, #0x4] + mov r2, #0x2 + lsl r2, r2, #0x8 + str r2, [sp, #0x8] + lsl r2, r2, #0x4 + mov r3, #0x8 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0205B88C +sub_0205B88C: ; 0x0205B88C + push {lr} + sub sp, #0xc + mov r2, #0x3 + str r2, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x4] + add r2, #0xfd + str r2, [sp, #0x8] + mov r2, #0x2 + lsl r2, r2, #0xc + mov r3, #0x10 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0205B8AC +sub_0205B8AC: ; 0x0205B8AC + push {lr} + sub sp, #0xc + mov r2, #0x3 + str r2, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x4] + add r2, #0xfd + mov r1, #0x1 + str r2, [sp, #0x8] + lsl r2, r1, #0xd + mov r3, #0x10 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0205B8CC +sub_0205B8CC: ; 0x0205B8CC + push {lr} + sub sp, #0xc + mov r2, #0x3 + str r2, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x4] + add r2, #0xfd + mov r1, #0x2 + str r2, [sp, #0x8] + lsl r2, r1, #0xc + mov r3, #0x10 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0205B8EC +sub_0205B8EC: ; 0x0205B8EC + push {lr} + sub sp, #0xc + mov r1, #0x3 + str r1, [sp, #0x0] + mov r2, #0x0 + str r2, [sp, #0x4] + add r2, r1, #0x0 + add r2, #0xfd + str r2, [sp, #0x8] + mov r2, #0x2 + lsl r2, r2, #0xc + mov r3, #0x10 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_0205B910 +sub_0205B910: ; 0x0205B910 + push {lr} + sub sp, #0xc + mov r1, #0xa + str r1, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x4] + mov r1, #0xf0 + str r1, [sp, #0x8] + mov r1, #0x2 + lsl r2, r1, #0xb + mov r3, #0x10 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0205B930 +sub_0205B930: ; 0x0205B930 + push {lr} + sub sp, #0xc + mov r1, #0xa + str r1, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x4] + mov r1, #0xf0 + mov r2, #0x1 + str r1, [sp, #0x8] + mov r1, #0x3 + lsl r2, r2, #0xc + mov r3, #0x10 + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_0205B954 +sub_0205B954: ; 0x0205B954 + push {lr} + sub sp, #0xc + mov r1, #0xb + str r1, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x4] + mov r1, #0x5 + lsl r1, r1, #0x6 + str r1, [sp, #0x8] + mov r1, #0x2 + lsl r2, r1, #0xd + mov r3, #0xc + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_0205B978 +sub_0205B978: ; 0x0205B978 + push {lr} + sub sp, #0xc + mov r1, #0xb + str r1, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x4] + mov r1, #0x5 + lsl r1, r1, #0x6 + mov r2, #0x1 + str r1, [sp, #0x8] + mov r1, #0x3 + lsl r2, r2, #0xe + mov r3, #0xc + bl sub_0205B5B0 + mov r0, #0x1 + add sp, #0xc + pop {pc} + + thumb_func_start sub_0205B99C +sub_0205B99C: ; 0x0205B99C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r1, #0x4 + bl sub_020585DC + str r4, [r0, #0x0] + add r0, r5, #0x0 + bl sub_02058700 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205B9B4 +sub_0205B9B4: ; 0x0205B9B4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058600 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0205B9CA + sub r1, r1, #0x1 + str r1, [r0, #0x0] + mov r0, #0x0 + pop {r4, pc} +_0205B9CA: + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0205B9D4 +sub_0205B9D4: ; 0x0205B9D4 + push {r3, lr} + mov r1, #0x1 + bl sub_0205B99C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B9E0 +sub_0205B9E0: ; 0x0205B9E0 + push {r3, lr} + mov r1, #0x2 + bl sub_0205B99C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B9EC +sub_0205B9EC: ; 0x0205B9EC + push {r3, lr} + mov r1, #0x4 + bl sub_0205B99C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205B9F8 +sub_0205B9F8: ; 0x0205B9F8 + push {r3, lr} + mov r1, #0x8 + bl sub_0205B99C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BA04 +sub_0205BA04: ; 0x0205BA04 + push {r3, lr} + mov r1, #0xf + bl sub_0205B99C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BA10 +sub_0205BA10: ; 0x0205BA10 + push {r3, lr} + mov r1, #0x10 + bl sub_0205B99C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BA1C +sub_0205BA1C: ; 0x0205BA1C + push {r3, lr} + mov r1, #0x20 + bl sub_0205B99C + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BA28 +sub_0205BA28: ; 0x0205BA28 + push {r4, lr} + mov r1, #0x8 + add r4, r0, #0x0 + bl sub_020585DC + mov r1, #0x1 + lsl r1, r1, #0x10 + str r1, [r0, #0x4] + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205BA4C +sub_0205BA4C: ; 0x0205BA4C + push {r4-r5, lr} + sub sp, #0xc + add r5, r0, #0x0 + bl sub_02058600 + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, [r4, #0x4] + add r0, r1, r0 + str r0, [r4, #0x0] + add r1, sp, #0x0 + mov r0, #0x0 + str r0, [r1, #0x0] + str r0, [r1, #0x4] + str r0, [r1, #0x8] + ldr r0, [r4, #0x0] + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02058B94 + ldr r1, [r4, #0x0] + asr r0, r1, #0xe + lsr r0, r0, #0x11 + add r0, r1, r0 + asr r0, r0, #0xf + cmp r0, #0x28 + bge _0205BA88 + add sp, #0xc + mov r0, #0x0 + pop {r4-r5, pc} +_0205BA88: + add r0, r5, #0x0 + bl sub_02058700 + mov r0, #0x1 + add sp, #0xc + pop {r4-r5, pc} + + thumb_func_start sub_0205BA94 +sub_0205BA94: ; 0x0205BA94 + push {r4, lr} + mov r1, #0x8 + add r4, r0, #0x0 + bl sub_020585DC + mov r1, #0x5 + lsl r1, r1, #0x12 + str r1, [r0, #0x0] + ldr r1, _0205BABC ; =0xFFFF0000 + str r1, [r0, #0x4] + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + nop +_0205BABC: .word 0xFFFF0000 + + thumb_func_start sub_0205BAC0 +sub_0205BAC0: ; 0x0205BAC0 + push {r4-r5, lr} + sub sp, #0xc + add r5, r0, #0x0 + bl sub_02058600 + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, [r4, #0x4] + add r0, r1, r0 + str r0, [r4, #0x0] + bpl _0205BADA + mov r0, #0x0 + str r0, [r4, #0x0] +_0205BADA: + add r1, sp, #0x0 + mov r0, #0x0 + str r0, [r1, #0x0] + str r0, [r1, #0x4] + str r0, [r1, #0x8] + ldr r0, [r4, #0x0] + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02058B94 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + ble _0205BAFA + add sp, #0xc + mov r0, #0x0 + pop {r4-r5, pc} +_0205BAFA: + add r0, r5, #0x0 + bl sub_02058700 + mov r0, #0x1 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_0205BB08 +sub_0205BB08: ; 0x0205BB08 + push {r4, lr} + mov r1, #0x2 + add r4, r0, #0x0 + lsl r1, r1, #0x8 + bl sub_02058410 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205BB20 +sub_0205BB20: ; 0x0205BB20 + push {r4, lr} + mov r1, #0x2 + add r4, r0, #0x0 + lsl r1, r1, #0x8 + bl sub_02058418 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205BB38 +sub_0205BB38: ; 0x0205BB38 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x80 + bl sub_02058410 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0205BB4C +sub_0205BB4C: ; 0x0205BB4C + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x80 + bl sub_02058418 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0205BB60 +sub_0205BB60: ; 0x0205BB60 + push {r4, lr} + mov r1, #0x1 + add r4, r0, #0x0 + lsl r1, r1, #0x8 + bl sub_02058410 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205BB78 +sub_0205BB78: ; 0x0205BB78 + push {r4, lr} + mov r1, #0x1 + add r4, r0, #0x0 + lsl r1, r1, #0x8 + bl sub_02058418 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205BB90 +sub_0205BB90: ; 0x0205BB90 + push {r4-r6, lr} + add r6, r1, #0x0 + mov r1, #0x8 + add r5, r0, #0x0 + bl sub_020585DC + add r4, r0, #0x0 + str r6, [r4, #0x0] + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r2, #0x1 + bl sub_021E7AC0 + str r0, [r4, #0x4] + add r0, r5, #0x0 + bl sub_02058700 + pop {r4-r6, pc} + + thumb_func_start sub_0205BBB4 +sub_0205BBB4: ; 0x0205BBB4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02058600 + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + bl sub_021E799C + cmp r0, #0x1 + bne _0205BBD8 + ldr r0, [r4, #0x4] + bl sub_02064520 + add r0, r5, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r3-r5, pc} +_0205BBD8: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205BBDC +sub_0205BBDC: ; 0x0205BBDC + push {r3, lr} + mov r1, #0x0 + bl sub_0205BB90 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0205BBE8 +sub_0205BBE8: ; 0x0205BBE8 + push {r3, lr} + mov r1, #0x1 + bl sub_0205BB90 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0205BBF4 +sub_0205BBF4: ; 0x0205BBF4 + push {r3-r7, lr} + add r4, r1, #0x0 + mov r1, #0x8 + add r5, r0, #0x0 + add r7, r2, #0x0 + add r6, r3, #0x0 + bl sub_020585DC + strh r4, [r0, #0x0] + strh r6, [r0, #0x2] + strh r7, [r0, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02059C0C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020584D8 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + mov r1, #0x4 + bl sub_02058410 + add r0, r5, #0x0 + bl sub_02058700 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205BC34 +sub_0205BC34: ; 0x0205BC34 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl sub_02058600 + add r4, r0, #0x0 + mov r2, #0x6 + ldrsh r2, [r4, r2] + mov r1, #0x0 + ldrsh r1, [r4, r1] + lsl r2, r2, #0x2 + ldr r2, [r6, r2] + add r0, r5, #0x0 + bl sub_02059CC8 + add r0, r5, #0x0 + bl sub_02059D1C + mov r0, #0x6 + ldrsh r1, [r4, r0] + add r1, r1, #0x1 + strh r1, [r4, #0x6] + ldrsh r1, [r4, r0] + mov r0, #0x4 + ldrsh r0, [r4, r0] + cmp r1, r0 + bge _0205BC6E + mov r0, #0x0 + pop {r4-r6, pc} +_0205BC6E: + add r0, r5, #0x0 + mov r1, #0x28 + bl sub_02058410 + add r0, r5, #0x0 + bl sub_02059C60 + add r0, r5, #0x0 + bl sub_020586A0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_0205BC94 +sub_0205BC94: ; 0x0205BC94 + push {r3, lr} + mov r2, #0x6 + mov r1, #0x0 + add r3, r2, #0x0 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BCA4 +sub_0205BCA4: ; 0x0205BCA4 + push {r3, lr} + mov r2, #0x6 + mov r1, #0x1 + add r3, r2, #0x0 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BCB4 +sub_0205BCB4: ; 0x0205BCB4 + push {r3, lr} + mov r2, #0x6 + mov r1, #0x2 + add r3, r2, #0x0 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BCC4 +sub_0205BCC4: ; 0x0205BCC4 + push {r3, lr} + mov r2, #0x6 + mov r1, #0x3 + add r3, r2, #0x0 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BCD4 +sub_0205BCD4: ; 0x0205BCD4 + push {r3, lr} + ldr r1, _0205BCE8 ; =0x020F6C6C + bl sub_0205BC34 + cmp r0, #0x1 + bne _0205BCE4 + mov r0, #0x1 + pop {r3, pc} +_0205BCE4: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0205BCE8: .word 0x020F6C6C + + thumb_func_start sub_0205BCEC +sub_0205BCEC: ; 0x0205BCEC + push {r3, lr} + mov r1, #0x0 + mov r2, #0x3 + mov r3, #0x7 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BCFC +sub_0205BCFC: ; 0x0205BCFC + push {r3, lr} + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x7 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BD0C +sub_0205BD0C: ; 0x0205BD0C + push {r3, lr} + mov r1, #0x2 + mov r2, #0x3 + mov r3, #0x7 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BD1C +sub_0205BD1C: ; 0x0205BD1C + push {r3, lr} + mov r1, #0x3 + add r2, r1, #0x0 + mov r3, #0x7 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BD2C +sub_0205BD2C: ; 0x0205BD2C + push {r3, lr} + ldr r1, _0205BD40 ; =0x020F6C48 + bl sub_0205BC34 + cmp r0, #0x1 + bne _0205BD3C + mov r0, #0x1 + pop {r3, pc} +_0205BD3C: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0205BD40: .word 0x020F6C48 + + thumb_func_start sub_0205BD44 +sub_0205BD44: ; 0x0205BD44 + push {r3, lr} + mov r1, #0x0 + mov r2, #0x7 + mov r3, #0x8 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BD54 +sub_0205BD54: ; 0x0205BD54 + push {r3, lr} + mov r1, #0x1 + mov r2, #0x7 + mov r3, #0x8 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BD64 +sub_0205BD64: ; 0x0205BD64 + push {r3, lr} + mov r1, #0x2 + mov r2, #0x7 + mov r3, #0x8 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BD74 +sub_0205BD74: ; 0x0205BD74 + push {r3, lr} + mov r1, #0x3 + mov r2, #0x7 + mov r3, #0x8 + bl sub_0205BBF4 + mov r0, #0x1 + pop {r3, pc} + + thumb_func_start sub_0205BD84 +sub_0205BD84: ; 0x0205BD84 + push {r3, lr} + ldr r1, _0205BD98 ; =0x020F6C84 + bl sub_0205BC34 + cmp r0, #0x1 + bne _0205BD94 + mov r0, #0x1 + pop {r3, pc} +_0205BD94: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0205BD98: .word 0x020F6C84 + + thumb_func_start sub_0205BD9C +sub_0205BD9C: ; 0x0205BD9C + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x4 + bl sub_020585DC + add r0, r4, #0x0 + mov r1, #0x9 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205BDB8 +sub_0205BDB8: ; 0x0205BDB8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058600 + ldr r1, [r0, #0x0] + add r1, r1, #0x1 + str r1, [r0, #0x0] + cmp r1, #0x8 + blt _0205BDE0 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020584AC + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02058700 +_0205BDE0: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205BDE4 +sub_0205BDE4: ; 0x0205BDE4 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + mov r1, #0x4 + bl sub_020585DC + add r0, r4, #0x0 + bl sub_0205EB20 + cmp r0, #0x0 + beq _0205BDFE + bl sub_02064520 +_0205BDFE: + add r1, sp, #0x0 + mov r0, #0x0 + str r0, [r1, #0x0] + str r0, [r1, #0x4] + str r0, [r1, #0x8] + add r0, r4, #0x0 + bl sub_02058B94 + add r0, r4, #0x0 + bl sub_0224D2E0 + ldr r1, _0205BE34 ; =0x00010004 + add r0, r4, #0x0 + bl sub_02058410 + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0x14 + bl sub_02058418 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x0 + add sp, #0xc + pop {r3-r4, pc} + nop +_0205BE34: .word 0x00010004 + + thumb_func_start sub_0205BE38 +sub_0205BE38: ; 0x0205BE38 + push {r4-r5, lr} + sub sp, #0xc + add r5, r0, #0x0 + bl sub_02058600 + add r4, r0, #0x0 + ldr r0, _0205BE98 ; =0x02105F9C + add r1, sp, #0x0 + ldr r2, [r0, #0x0] + mov r0, #0x0 + str r0, [r1, #0x0] + str r0, [r1, #0x4] + str r0, [r1, #0x8] + ldr r0, [r4, #0x0] + lsl r0, r0, #0x2 + ldr r0, [r2, r0] + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02058B94 + ldr r0, [r4, #0x0] + add r0, r0, #0x2 + str r0, [r4, #0x0] + cmp r0, #0x10 + bhs _0205BE70 + add sp, #0xc + mov r0, #0x0 + pop {r4-r5, pc} +_0205BE70: + mov r0, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_02058B94 + ldr r1, _0205BE9C ; =0x00020028 + add r0, r5, #0x0 + bl sub_02058410 + add r0, r5, #0x0 + bl sub_0205EB2C + add r0, r5, #0x0 + bl sub_02058700 + mov r0, #0x1 + add sp, #0xc + pop {r4-r5, pc} + nop +_0205BE98: .word 0x02105F9C +_0205BE9C: .word 0x00020028 + + thumb_func_start sub_0205BEA0 +sub_0205BEA0: ; 0x0205BEA0 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x4 + bl sub_020585DC + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205BEBC +sub_0205BEBC: ; 0x0205BEBC + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x4 + bl sub_020585DC + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205BED8 +sub_0205BED8: ; 0x0205BED8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058600 + ldr r1, [r0, #0x0] + add r1, r1, #0x1 + str r1, [r0, #0x0] + cmp r1, #0x15 + bhs _0205BEEE + mov r0, #0x0 + pop {r4, pc} +_0205BEEE: + add r0, r4, #0x0 + bl sub_02058700 + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0205BEF8 +sub_0205BEF8: ; 0x0205BEF8 + ldr r3, _0205BEFC ; =sub_0205BF24 + bx r3 + .balign 4 +_0205BEFC: .word sub_0205BF24 + 1 + + thumb_func_start sub_0205BF00 +sub_0205BF00: ; 0x0205BF00 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0205BF40 + cmp r0, #0x0 + bne _0205BF10 + mov r0, #0x0 + pop {r4, pc} +_0205BF10: + add r0, r4, #0x0 + bl sub_0205BF5C + cmp r0, #0x0 + beq _0205BF1E + mov r0, #0x1 + pop {r4, pc} +_0205BF1E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205BF24 +sub_0205BF24: ; 0x0205BF24 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058488 + add r1, r0, #0x0 + lsl r2, r1, #0x2 + ldr r1, _0205BF3C ; =0x020F7118 + add r0, r4, #0x0 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0205BF3C: .word 0x020F7118 + + thumb_func_start sub_0205BF40 +sub_0205BF40: ; 0x0205BF40 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058488 + add r1, r0, #0x0 + lsl r2, r1, #0x2 + ldr r1, _0205BF58 ; =0x020F7148 + add r0, r4, #0x0 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0205BF58: .word 0x020F7148 + + thumb_func_start sub_0205BF5C +sub_0205BF5C: ; 0x0205BF5C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058488 + add r1, r0, #0x0 + lsl r2, r1, #0x2 + ldr r1, _0205BF74 ; =0x020F7178 + add r0, r4, #0x0 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0205BF74: .word 0x020F7178 + + thumb_func_start sub_0205BF78 +sub_0205BF78: ; 0x0205BF78 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02058B2C + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B14 + cmp r5, r0 + beq _0205BF90 + mov r0, #0x1 + pop {r3-r5, pc} +_0205BF90: + add r0, r4, #0x0 + bl sub_02058B4C + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B24 + cmp r5, r0 + beq _0205BFA6 + mov r0, #0x1 + pop {r3-r5, pc} +_0205BFA6: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205BFAC +sub_0205BFAC: ; 0x0205BFAC + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02058B2C + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B14 + cmp r5, r0 + beq _0205BFC4 + mov r0, #0x0 + pop {r3-r5, pc} +_0205BFC4: + add r0, r4, #0x0 + bl sub_02058B4C + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B24 + cmp r5, r0 + bne _0205BFDA + mov r0, #0x1 + pop {r3-r5, pc} +_0205BFDA: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205BFE0 +sub_0205BFE0: ; 0x0205BFE0 + bx lr + .balign 4 + + thumb_func_start sub_0205BFE4 +sub_0205BFE4: ; 0x0205BFE4 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205BFE8 +sub_0205BFE8: ; 0x0205BFE8 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205BFEC +sub_0205BFEC: ; 0x0205BFEC + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0x9 + bl sub_020585B4 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02058510 + strb r0, [r4, #0x3] + pop {r3-r5, pc} + + thumb_func_start sub_0205C004 +sub_0205C004: ; 0x0205C004 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020585D8 + add r4, r0, #0x0 + ldrb r0, [r4, #0x0] + cmp r0, #0x3 + bhi _0205C07C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r3, #0 + lsl r0, r0, #0x1 + lsl r6, r2, #0x1 + add r0, r5, #0x0 + bl sub_0205BF78 + cmp r0, #0x1 + bne _0205C07C + ldrb r0, [r4, #0x0] + add r0, r0, #0x1 + strb r0, [r4, #0x0] + b _0205C07C +_0205C03A: + .byte 0x28, 0x1C, 0xFF, 0xF7, 0xB6, 0xFF + .byte 0x00, 0x28, 0x1B, 0xD0, 0x02, 0x20, 0x21, 0x56, 0x49, 0x1C, 0xA1, 0x70, 0x21, 0x56, 0x03, 0x20 + .byte 0x20, 0x56, 0x81, 0x42, 0x02, 0xDA, 0x00, 0x20, 0x20, 0x70, 0x0F, 0xE0, 0x20, 0x78, 0x40, 0x1C + .byte 0x20, 0x70, 0x28, 0x1C, 0xFC, 0xF7, 0xF6, 0xFB, 0x01, 0x28, 0x07, 0xD0, 0x20, 0x78, 0x40, 0x1C + .byte 0x20, 0x70, 0x00, 0x20, 0xA0, 0x70, 0x60, 0x70, 0x01, 0x20, 0x38, 0xBD +_0205C07C: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205C080 +sub_0205C080: ; 0x0205C080 + push {r4-r6, lr} + sub sp, #0x20 + add r5, r0, #0x0 + bl sub_020585D8 + add r4, r0, #0x0 + ldrb r0, [r4, #0x1] + cmp r0, #0x3 + bhi _0205C15E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r5, #0 + lsl r2, r3, #0x1 + lsl r0, r6, #0x1 + ldr r3, _0205C164 ; =0x020F70D8 + add r2, sp, #0x10 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + add r0, r5, #0x0 + bl sub_020584C4 + strb r0, [r4, #0x4] + lsl r1, r0, #0x2 + add r0, sp, #0x10 + ldr r0, [r0, r1] + strb r0, [r4, #0x5] + ldrb r0, [r4, #0x1] + add r0, r0, #0x1 + strb r0, [r4, #0x1] + ldr r6, _0205C168 ; =0x020F70E8 + add r3, sp, #0x0 + add r2, r3, #0x0 + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + mov r0, #0x5 + ldrsb r0, [r4, r0] + lsl r3, r0, #0x3 + mov r0, #0x6 + ldrsb r0, [r4, r0] + lsl r1, r0, #0x2 + add r0, r2, r3 + ldr r0, [r1, r0] + mov r1, #0x0 + bl sub_0205AFDC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205AE0C + ldrb r0, [r4, #0x1] + add r0, r0, #0x1 + strb r0, [r4, #0x1] + add r0, r5, #0x0 + bl sub_0205B080 + cmp r0, #0x0 + bne _0205C10A + add sp, #0x20 + mov r0, #0x1 + pop {r4-r6, pc} +_0205C10A: + ldrb r0, [r4, #0x1] + add r0, r0, #0x1 + strb r0, [r4, #0x1] + mov r0, #0x8 + ldrsb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, #0x8] + ldrsb r0, [r4, r0] + cmp r0, #0x8 + bge _0205C124 + add sp, #0x20 + mov r0, #0x1 + pop {r4-r6, pc} +_0205C124: + mov r0, #0x0 + strb r0, [r4, #0x8] + mov r0, #0x7 + ldrsb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, #0x7] + ldrsb r0, [r4, r0] + cmp r0, #0x4 + bge _0205C148 + mov r0, #0x6 + ldrsb r0, [r4, r0] + add sp, #0x20 + add r1, r0, #0x1 + mov r0, #0x1 + and r1, r0 + strb r1, [r4, #0x6] + strb r0, [r4, #0x1] + pop {r4-r6, pc} +_0205C148: + mov r1, #0x4 + ldrsb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_020584AC + ldrb r0, [r4, #0x1] + add r0, r0, #0x1 + strb r0, [r4, #0x1] + mov r0, #0x0 + strb r0, [r4, #0x7] + strb r0, [r4, #0x0] +_0205C15E: + mov r0, #0x0 + add sp, #0x20 + pop {r4-r6, pc} + .balign 4 +_0205C164: .word 0x020F70D8 +_0205C168: .word 0x020F70E8 + + thumb_func_start sub_0205C16C +sub_0205C16C: ; 0x0205C16C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0x9 + bl sub_020585B4 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02058510 + strb r0, [r4, #0x3] + add r0, r5, #0x0 + bl sub_02058488 + cmp r0, #0x5 + beq _0205C190 + mov r0, #0x1 + b _0205C192 +_0205C190: + mov r0, #0x0 +_0205C192: + strb r0, [r4, #0x5] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205C198 +sub_0205C198: ; 0x0205C198 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020585D8 + add r4, r0, #0x0 + ldrb r0, [r4, #0x0] + cmp r0, #0x3 + bhi _0205C210 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r0, r3, #0 + lsl r0, r0, #0x1 + lsl r6, r2, #0x1 + add r0, r5, #0x0 + bl sub_0205BF78 + cmp r0, #0x1 + bne _0205C210 + ldrb r0, [r4, #0x0] + add r0, r0, #0x1 + strb r0, [r4, #0x0] + b _0205C210 +_0205C1CE: + .byte 0x28, 0x1C + .byte 0xFF, 0xF7, 0xEC, 0xFE, 0x00, 0x28, 0x1B, 0xD0, 0x02, 0x20, 0x21, 0x56, 0x49, 0x1C, 0xA1, 0x70 + .byte 0x21, 0x56, 0x03, 0x20, 0x20, 0x56, 0x81, 0x42, 0x02, 0xDA, 0x00, 0x20, 0x20, 0x70, 0x0F, 0xE0 + .byte 0x20, 0x78, 0x40, 0x1C, 0x20, 0x70, 0x28, 0x1C, 0xFC, 0xF7, 0x2C, 0xFB, 0x01, 0x28, 0x07, 0xD0 + .byte 0x20, 0x78, 0x40, 0x1C, 0x20, 0x70, 0x00, 0x20, 0xA0, 0x70, 0x60, 0x70, 0x01, 0x20, 0x38, 0xBD +_0205C210: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205C214 +sub_0205C214: ; 0x0205C214 + push {r3-r7, lr} + sub sp, #0x20 + ldr r3, _0205C330 ; =0x020F70F8 + add r2, sp, #0x0 + add r7, r0, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + add r0, r7, #0x0 + bl sub_020585D8 + add r4, r0, #0x0 + ldrb r0, [r4, #0x1] + cmp r0, #0x3 + bhi _0205C32A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r1, #0x1 + lsl r2, r6, #0x1 + lsl r0, r1, #0x2 + add r0, r7, #0x0 + bl sub_020584C4 + mov r5, #0x0 + add r6, r0, #0x0 + add r1, r5, #0x0 + add r0, sp, #0x0 + mov r2, #0x5 + b _0205C266 +_0205C262: + add r1, r1, #0x4 + add r5, r5, #0x1 +_0205C266: + cmp r5, #0x4 + bge _0205C276 + ldrsb r3, [r4, r2] + lsl r3, r3, #0x4 + add r3, r0, r3 + ldr r3, [r1, r3] + cmp r6, r3 + bne _0205C262 +_0205C276: + cmp r5, #0x4 + blt _0205C27E + bl sub_02020C2C +_0205C27E: + add r0, r5, #0x1 + lsr r2, r0, #0x1f + lsl r1, r0, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + strb r6, [r4, #0x4] + add r0, r2, r1 + strb r0, [r4, #0x6] + ldrb r0, [r4, #0x1] + add r0, r0, #0x1 + strb r0, [r4, #0x1] + mov r0, #0x5 + ldrsb r0, [r4, r0] + add r2, sp, #0x0 + lsl r3, r0, #0x4 + mov r0, #0x6 + ldrsb r0, [r4, r0] + lsl r1, r0, #0x2 + add r0, r2, r3 + ldr r0, [r1, r0] + mov r1, #0x0 + bl sub_0205AFDC + add r1, r0, #0x0 + add r0, r7, #0x0 + bl sub_0205AE0C + ldrb r0, [r4, #0x1] + add r0, r0, #0x1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + bl sub_0205B080 + cmp r0, #0x0 + bne _0205C2CC + add sp, #0x20 + mov r0, #0x1 + pop {r3-r7, pc} +_0205C2CC: + ldrb r0, [r4, #0x1] + add r0, r0, #0x1 + strb r0, [r4, #0x1] + mov r0, #0x8 + ldrsb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, #0x8] + ldrsb r0, [r4, r0] + cmp r0, #0x8 + bge _0205C2E6 + add sp, #0x20 + mov r0, #0x1 + pop {r3-r7, pc} +_0205C2E6: + mov r0, #0x0 + strb r0, [r4, #0x8] + mov r0, #0x7 + ldrsb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, #0x7] + ldrsb r0, [r4, r0] + cmp r0, #0x4 + bge _0205C314 + mov r0, #0x6 + ldrsb r0, [r4, r0] + add sp, #0x20 + add r0, r0, #0x1 + lsr r2, r0, #0x1f + lsl r1, r0, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + strb r0, [r4, #0x6] + mov r0, #0x1 + strb r0, [r4, #0x1] + pop {r3-r7, pc} +_0205C314: + mov r1, #0x4 + ldrsb r1, [r4, r1] + add r0, r7, #0x0 + bl sub_020584AC + ldrb r0, [r4, #0x1] + add r0, r0, #0x1 + strb r0, [r4, #0x1] + mov r0, #0x0 + strb r0, [r4, #0x7] + strb r0, [r4, #0x0] +_0205C32A: + mov r0, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 +_0205C330: .word 0x020F70F8 + + thumb_func_start sub_0205C334 +sub_0205C334: ; 0x0205C334 + cmp r0, #0x64 + bne _0205C33C + mov r0, #0x1 + bx lr +_0205C33C: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205C340 +sub_0205C340: ; 0x0205C340 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020585B0 + ldrh r0, [r0, #0x0] + cmp r0, #0x0 + bne _0205C352 + ldr r0, _0205C370 ; =0x0000FFFF + pop {r4, pc} +_0205C352: + add r0, r4, #0x0 + bl sub_02058934 + cmp r0, #0x1 + bne _0205C36C + add r0, r4, #0x0 + bl sub_02058628 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0205C36C + ldr r0, [r0, #0x0] + pop {r4, pc} +_0205C36C: + ldr r0, _0205C370 ; =0x0000FFFF + pop {r4, pc} + .balign 4 +_0205C370: .word 0x0000FFFF + + thumb_func_start sub_0205C374 +sub_0205C374: ; 0x0205C374 + push {r3, lr} + bl sub_020585B0 + mov r1, #0x1 + strh r1, [r0, #0x2] + pop {r3, pc} + + thumb_func_start sub_0205C380 +sub_0205C380: ; 0x0205C380 + push {r3, lr} + mov r1, #0x4 + bl sub_0205858C + mov r1, #0x0 + strh r1, [r0, #0x0] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205C390 +sub_0205C390: ; 0x0205C390 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020585B0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058738 + add r1, r5, #0x0 + bl sub_0204B5FC + strh r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205C3AC +sub_0205C3AC: ; 0x0205C3AC + bx lr + .balign 4 + + thumb_func_start sub_0205C3B0 +sub_0205C3B0: ; 0x0205C3B0 + push {r4, lr} + mov r1, #0x18 + add r4, r0, #0x0 + bl sub_02058604 + ldr r1, _0205C3CC ; =0x0000FFFF + str r1, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] + add r0, r4, #0x0 + bl sub_0224A310 + pop {r4, pc} + nop +_0205C3CC: .word 0x0000FFFF + + thumb_func_start sub_0205C3D0 +sub_0205C3D0: ; 0x0205C3D0 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020585B0 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058628 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058738 + add r1, r5, #0x0 + bl sub_0204B5FC + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_021F2E28 + cmp r0, #0x1 + beq _0205C488 + ldr r0, [r4, #0x4] + cmp r6, r0 + beq _0205C454 + add r1, r4, #0x0 + ldr r2, [r4, #0x0] + add r0, r5, #0x0 + add r1, #0x8 + bl sub_021F2094 + add r0, r5, #0x0 + bl sub_02058738 + add r1, r5, #0x0 + bl sub_0204B61C + add r1, r6, #0x0 + bl sub_0205C53C + ldr r1, _0205C48C ; =0x0000FFFF + str r0, [r4, #0x0] + cmp r0, r1 + ldr r0, [r4, #0x4] + beq _0205C440 + cmp r0, #0x0 + beq _0205C432 + add r0, r5, #0x0 + bl sub_0224A528 +_0205C432: + add r1, r4, #0x0 + ldr r2, [r4, #0x0] + add r0, r5, #0x0 + add r1, #0x8 + bl sub_021F1F78 + b _0205C450 +_0205C440: + cmp r0, #0x0 + beq _0205C450 + ldrh r0, [r7, #0x2] + cmp r0, #0x0 + bne _0205C450 + add r0, r5, #0x0 + bl sub_0224A528 +_0205C450: + mov r0, #0x0 + strh r0, [r7, #0x2] +_0205C454: + add r0, r5, #0x0 + str r6, [r4, #0x4] + bl sub_021F2E28 + cmp r0, #0x1 + beq _0205C488 + ldr r1, [r4, #0x8] + cmp r1, #0x0 + beq _0205C488 + add r0, r5, #0x0 + bl sub_021F2F48 + add r0, r5, #0x0 + bl sub_021F1DFC + cmp r0, #0x0 + bne _0205C480 + mov r1, #0x1 + ldr r0, [r4, #0x8] + lsl r1, r1, #0xc + bl sub_0201F854 +_0205C480: + ldr r1, [r4, #0x8] + add r0, r5, #0x0 + bl sub_021F2F6C +_0205C488: + pop {r3-r7, pc} + nop +_0205C48C: .word 0x0000FFFF + + thumb_func_start sub_0205C490 +sub_0205C490: ; 0x0205C490 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02058628 + add r2, r0, #0x0 + add r1, r2, #0x0 + ldr r2, [r2, #0x0] + add r0, r4, #0x0 + add r1, #0x8 + bl sub_021F2094 + pop {r4, pc} + + thumb_func_start sub_0205C4A8 +sub_0205C4A8: ; 0x0205C4A8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02058628 + add r4, r0, #0x0 + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _0205C4C0 + add r1, r4, #0x0 + add r1, #0xc + bl sub_021F20D8 +_0205C4C0: + add r1, r4, #0x0 + ldr r2, [r4, #0x0] + add r0, r5, #0x0 + add r1, #0x8 + bl sub_021F2094 + mov r1, #0x2 + add r0, r5, #0x0 + lsl r1, r1, #0x14 + bl sub_02058410 + pop {r3-r5, pc} + + thumb_func_start sub_0205C4D8 +sub_0205C4D8: ; 0x0205C4D8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02058628 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_021F2E28 + cmp r0, #0x1 + beq _0205C536 + ldr r0, [r4, #0x8] + cmp r0, #0x0 + bne _0205C516 + ldr r2, [r4, #0x0] + ldr r0, _0205C538 ; =0x0000FFFF + cmp r2, r0 + beq _0205C506 + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x8 + bl sub_021F1F78 + b _0205C510 +_0205C506: + mov r1, #0x2 + add r0, r5, #0x0 + lsl r1, r1, #0x14 + bl sub_02058418 +_0205C510: + add r0, r5, #0x0 + bl sub_0224A310 +_0205C516: + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _0205C536 + add r1, r4, #0x0 + add r1, #0xc + bl sub_021F20F8 + ldr r1, [r4, #0x8] + add r0, r5, #0x0 + bl sub_021F2F48 + mov r1, #0x2 + add r0, r5, #0x0 + lsl r1, r1, #0x14 + bl sub_02058418 +_0205C536: + pop {r3-r5, pc} + .balign 4 +_0205C538: .word 0x0000FFFF + + thumb_func_start sub_0205C53C +sub_0205C53C: ; 0x0205C53C + push {r3, lr} + cmp r1, #0x0 + beq _0205C548 + cmp r1, #0x1 + beq _0205C54C + b _0205C550 +_0205C548: + ldr r0, _0205C590 ; =0x0000FFFF + pop {r3, pc} +_0205C54C: + ldr r0, _0205C590 ; =0x0000FFFF + pop {r3, pc} +_0205C550: + sub r2, r0, #0x1 + mov r0, #0xc + ldr r3, _0205C594 ; =0x021F9194 + mul r0, r2 + add r2, r3, r0 + cmp r1, #0x5 + bhi _0205C588 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r3, #0 + lsl r4, r3, #0 + lsl r2, r1, #0 + lsl r0, r2, #0 + lsl r4, r2, #0 + lsl r0, r3, #0 + mov r0, #0x1 + lsl r0, r0, #0xc + pop {r3, pc} +_0205C57C: + .byte 0x10, 0x68, 0x08, 0xBD + .byte 0x50, 0x68, 0x08, 0xBD, 0x90, 0x68, 0x08, 0xBD +_0205C588: + bl sub_02020C2C + ldr r0, _0205C590 ; =0x0000FFFF + pop {r3, pc} + .balign 4 +_0205C590: .word 0x0000FFFF +_0205C594: .word 0x021F9194 + + thumb_func_start sub_0205C598 +sub_0205C598: ; 0x0205C598 + push {r3-r7, lr} + sub sp, #0x58 + add r5, r0, #0x0 + ldr r7, [r5, #0x38] + add r4, r1, #0x0 + ldr r6, [r5, #0x34] + add r1, sp, #0x40 + str r1, [sp, #0x0] + add r1, r6, #0x0 + add r2, r7, #0x0 + mov r3, #0x0 + bl sub_0205C6BC + cmp r0, #0x0 + bne _0205C5BC + add sp, #0x58 + mov r0, #0x0 + pop {r3-r7, pc} +_0205C5BC: + ldr r0, [sp, #0x50] + cmp r0, #0x0 + bne _0205C642 + ldr r1, _0205C6B8 ; =0x00000F0A + ldr r2, [sp, #0x54] + add r0, r5, #0x0 + bl sub_02038C78 + cmp r4, #0x0 + beq _0205C5E4 + add r0, sp, #0x28 + str r0, [sp, #0x0] + ldr r3, [sp, #0x54] + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_0205C6BC + cmp r0, #0x0 + bne _0205C604 +_0205C5E4: + ldr r0, [sp, #0x48] + str r0, [sp, #0x0] + ldr r0, [sp, #0x4c] + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + str r0, [sp, #0xc] + ldr r1, [sp, #0x54] + ldr r2, [sp, #0x40] + ldr r3, [sp, #0x44] + add r0, r5, #0x0 + bl sub_02038CA8 + add sp, #0x58 + mov r0, #0x1 + pop {r3-r7, pc} +_0205C604: + ldr r0, [sp, #0x48] + str r0, [sp, #0x0] + ldr r0, [sp, #0x4c] + str r0, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + ldr r1, [sp, #0x54] + ldr r2, [sp, #0x40] + ldr r3, [sp, #0x44] + add r0, r5, #0x0 + bl sub_02038CA8 + ldr r0, [sp, #0x30] + str r0, [sp, #0x0] + ldr r0, [sp, #0x34] + str r0, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + mov r0, #0x1 + str r0, [sp, #0xc] + ldr r1, [sp, #0x3c] + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x2c] + add r0, r5, #0x0 + bl sub_02038CA8 + add sp, #0x58 + mov r0, #0x1 + pop {r3-r7, pc} +_0205C642: + cmp r0, #0x1 + bne _0205C6AE + cmp r4, #0x0 + bne _0205C650 + add sp, #0x58 + mov r0, #0x0 + pop {r3-r7, pc} +_0205C650: + ldr r2, [sp, #0x54] + ldr r3, [sp, #0x4c] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0205C9F0 + add r1, r0, #0x0 + ldr r2, [sp, #0x40] + ldr r3, [sp, #0x44] + add r0, sp, #0x10 + bl sub_0205C73C + ldr r1, _0205C6B8 ; =0x00000F0A + ldr r2, [sp, #0x54] + add r0, r5, #0x0 + bl sub_02038C78 + ldr r0, [sp, #0x48] + str r0, [sp, #0x0] + ldr r0, [sp, #0x4c] + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + ldr r1, [sp, #0x54] + ldr r2, [sp, #0x40] + ldr r3, [sp, #0x44] + add r0, r5, #0x0 + bl sub_02038CA8 + ldr r0, [sp, #0x18] + str r0, [sp, #0x0] + ldr r0, [sp, #0x1c] + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + str r0, [sp, #0xc] + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + add r0, r5, #0x0 + bl sub_02038CA8 + add sp, #0x58 + mov r0, #0x1 + pop {r3-r7, pc} +_0205C6AE: + bl sub_02020C2C + mov r0, #0x0 + add sp, #0x58 + pop {r3-r7, pc} + .balign 4 +_0205C6B8: .word 0x00000F0A + + thumb_func_start sub_0205C6BC +sub_0205C6BC: ; 0x0205C6BC + push {r3-r7, lr} + sub sp, #0x10 + add r6, r0, #0x0 + mov r0, #0x0 + add r5, r1, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + str r0, [sp, #0xc] + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, sp, #0x4 + add r2, sp, #0xc + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x0 + beq _0205C734 +_0205C6DE: + cmp r4, #0x0 + beq _0205C6E8 + ldr r0, [sp, #0x4] + cmp r4, r0 + beq _0205C724 +_0205C6E8: + ldr r0, [sp, #0x4] + add r1, r7, #0x0 + add r2, sp, #0x8 + bl sub_0205C794 + mov r1, #0x0 + mvn r1, r1 + str r0, [sp, #0x0] + cmp r0, r1 + beq _0205C724 + ldr r0, [sp, #0x4] + bl sub_0205C9D8 + add r1, r0, #0x0 + lsl r1, r1, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl sub_02039640 + cmp r0, #0x0 + bne _0205C724 + ldr r0, [sp, #0x28] + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + ldr r3, [sp, #0x8] + bl sub_0205C73C + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0205C724: + add r0, r5, #0x0 + add r1, sp, #0x4 + add r2, sp, #0xc + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x0 + bne _0205C6DE +_0205C734: + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205C73C +sub_0205C73C: ; 0x0205C73C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + str r2, [r5, #0x0] + str r3, [r5, #0x4] + add r0, r4, #0x0 + bl sub_02058498 + str r0, [r5, #0x8] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_020395F4 + str r0, [r5, #0xc] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0203962C + str r0, [r5, #0x10] + str r4, [r5, #0x14] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205C768 +sub_0205C768: ; 0x0205C768 + push {r3, lr} + bl sub_02058488 + cmp r0, #0x8 + bhi _0205C792 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r2, #0 + lsl r2, r2, #0 + lsl r2, r2, #0 + lsl r2, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + mov r0, #0x1 +_0205C792: + pop {r3, pc} + + thumb_func_start sub_0205C794 +sub_0205C794: ; 0x0205C794 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + add r4, r1, #0x0 + str r2, [sp, #0x8] + bl sub_0205C768 + cmp r0, #0x1 + bne _0205C802 + add r0, r4, #0x0 + bl sub_02055320 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205532C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_020584C4 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + add r2, r0, #0x0 + str r6, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r3, r7, #0x0 + bl sub_0205C86C + add r6, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r6, r0 + beq _0205C7FA + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0205C938 + cmp r0, #0x0 + bne _0205C7FA + ldr r0, [sp, #0x8] + add sp, #0x14 + str r4, [r0, #0x0] + add r0, r6, #0x0 + pop {r4-r7, pc} +_0205C7FA: + mov r0, #0x0 + add sp, #0x14 + mvn r0, r0 + pop {r4-r7, pc} +_0205C802: + cmp r0, #0x2 + bne _0205C864 + add r0, r4, #0x0 + bl sub_02055320 + str r0, [sp, #0x10] + add r0, r4, #0x0 + bl sub_0205532C + add r7, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058510 + str r0, [sp, #0xc] + mov r4, #0x0 +_0205C822: + str r7, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x10] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205C86C + add r6, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r6, r0 + beq _0205C856 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0205C938 + cmp r0, #0x0 + bne _0205C856 + ldr r0, [sp, #0x8] + add sp, #0x14 + str r4, [r0, #0x0] + add r0, r6, #0x0 + pop {r4-r7, pc} +_0205C856: + add r4, r4, #0x1 + cmp r4, #0x4 + blt _0205C822 + mov r0, #0x0 + add sp, #0x14 + mvn r0, r0 + pop {r4-r7, pc} +_0205C864: + mov r0, #0x0 + mvn r0, r0 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_0205C86C +sub_0205C86C: ; 0x0205C86C + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, [sp, #0x14] + lsl r5, r4, #0x2 + ldr r4, _0205C884 ; =0x020F71A8 + str r1, [sp, #0x0] + add r1, r2, #0x0 + add r2, r3, #0x0 + ldr r3, [sp, #0x10] + ldr r4, [r4, r5] + blx r4 + pop {r3-r5, pc} + .balign 4 +_0205C884: .word 0x020F71A8 + + thumb_func_start sub_0205C888 +sub_0205C888: ; 0x0205C888 + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + add r4, r3, #0x0 + bl sub_02058B2C + cmp r0, r6 + bne _0205C8AE + add r0, r7, #0x0 + bl sub_02058B4C + cmp r4, r0 + bge _0205C8AE + sub r1, r0, r5 + cmp r4, r1 + blt _0205C8AE + sub r0, r0, r4 + pop {r3-r7, pc} +_0205C8AE: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + + thumb_func_start sub_0205C8B4 +sub_0205C8B4: ; 0x0205C8B4 + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + add r4, r3, #0x0 + bl sub_02058B2C + cmp r0, r6 + bne _0205C8DA + add r0, r7, #0x0 + bl sub_02058B4C + cmp r4, r0 + ble _0205C8DA + add r1, r0, r5 + cmp r4, r1 + bgt _0205C8DA + sub r0, r4, r0 + pop {r3-r7, pc} +_0205C8DA: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + + thumb_func_start sub_0205C8E0 +sub_0205C8E0: ; 0x0205C8E0 + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02058B4C + cmp r0, r6 + bne _0205C906 + add r0, r7, #0x0 + bl sub_02058B2C + cmp r4, r0 + bge _0205C906 + sub r1, r0, r5 + cmp r4, r1 + blt _0205C906 + sub r0, r0, r4 + pop {r3-r7, pc} +_0205C906: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + + thumb_func_start sub_0205C90C +sub_0205C90C: ; 0x0205C90C + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02058B4C + cmp r0, r6 + bne _0205C932 + add r0, r7, #0x0 + bl sub_02058B2C + cmp r4, r0 + ble _0205C932 + add r1, r0, r5 + cmp r4, r1 + bgt _0205C932 + sub r0, r4, r0 + pop {r3-r7, pc} +_0205C932: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + + thumb_func_start sub_0205C938 +sub_0205C938: ; 0x0205C938 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r1, #0x0 + str r0, [sp, #0x4] + str r2, [sp, #0x8] + cmp r2, #0x0 + bne _0205C94C + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_0205C94C: + bl sub_02058B2C + add r4, r0, #0x0 + ldr r0, [sp, #0x4] + bl sub_02058B4C + add r7, r0, #0x0 + ldr r0, [sp, #0x4] + bl sub_02058B3C + str r0, [sp, #0xc] + add r0, r5, #0x0 + bl sub_02059BF4 + add r6, r4, r0 + add r0, r5, #0x0 + bl sub_02059C00 + add r4, r7, r0 + ldr r0, [sp, #0x8] + mov r7, #0x0 + sub r0, r0, #0x1 + str r0, [sp, #0x10] + cmp r0, #0x0 + ble _0205C9B4 + mov r0, #0x1 + str r0, [sp, #0x14] +_0205C982: + ldr r0, [sp, #0x4] + ldr r2, [sp, #0xc] + add r1, r6, #0x0 + add r3, r4, #0x0 + str r5, [sp, #0x0] + bl sub_020598F0 + ldr r1, [sp, #0x14] + bic r0, r1 + beq _0205C99C + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_0205C99C: + add r0, r5, #0x0 + bl sub_02059BF4 + add r6, r6, r0 + add r0, r5, #0x0 + bl sub_02059C00 + add r4, r4, r0 + ldr r0, [sp, #0x10] + add r7, r7, #0x1 + cmp r7, r0 + blt _0205C982 +_0205C9B4: + ldr r0, [sp, #0x4] + ldr r2, [sp, #0xc] + add r1, r6, #0x0 + add r3, r4, #0x0 + str r5, [sp, #0x0] + bl sub_020598F0 + mov r1, #0x1 + bic r0, r1 + cmp r0, #0x4 + bne _0205C9D0 + add sp, #0x18 + mov r0, #0x0 + pop {r3-r7, pc} +_0205C9D0: + mov r0, #0x1 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205C9D8 +sub_0205C9D8: ; 0x0205C9D8 + push {r3, lr} + bl sub_02058498 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_020395F4 + pop {r3, pc} + + thumb_func_start sub_0205C9E8 +sub_0205C9E8: ; 0x0205C9E8 + ldr r3, _0205C9EC ; =sub_0205C9D8 + bx r3 + .balign 4 +_0205C9EC: .word sub_0205C9D8 + 1 + + thumb_func_start sub_0205C9F0 +sub_0205C9F0: ; 0x0205C9F0 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + mov r0, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x0 + beq _0205CA40 + add r7, sp, #0x0 +_0205CA10: + ldr r0, [sp, #0x0] + cmp r0, r4 + beq _0205CA30 + bl sub_0205C768 + sub r0, r0, #0x1 + cmp r0, #0x1 + bhi _0205CA30 + ldr r0, [sp, #0x0] + bl sub_0205C9D8 + cmp r6, r0 + bne _0205CA30 + ldr r0, [sp, #0x0] + add sp, #0x8 + pop {r3-r7, pc} +_0205CA30: + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, sp, #0x4 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x0 + bne _0205CA10 +_0205CA40: + bl sub_02020C2C + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205CA4C +sub_0205CA4C: ; 0x0205CA4C + push {r3-r4, lr} + sub sp, #0xc + ldr r4, [sp, #0x18] + str r4, [sp, #0x0] + ldr r4, [sp, #0x1c] + str r4, [sp, #0x4] + ldr r4, [sp, #0x20] + str r4, [sp, #0x8] + bl sub_0205CA80 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_0205CA64 +sub_0205CA64: ; 0x0205CA64 + push {r4, lr} + add r4, r0, #0x0 + bne _0205CA6E + bl sub_02020C2C +_0205CA6E: + add r0, r4, #0x0 + bl sub_0205CAD4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205CA78 +sub_0205CA78: ; 0x0205CA78 + ldr r3, _0205CA7C ; =sub_0205CAE0 + bx r3 + .balign 4 +_0205CA7C: .word sub_0205CAE0 + 1 + + thumb_func_start sub_0205CA80 +sub_0205CA80: ; 0x0205CA80 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0x4 + mov r1, #0x2c + add r7, r2, #0x0 + str r3, [sp, #0x0] + bl sub_020169D8 + add r4, r0, #0x0 + bne _0205CA9A + bl sub_02020C2C +_0205CA9A: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x2c + blx sub_020DF4A4 + ldr r0, [sp, #0x0] + str r7, [r4, #0x8] + str r0, [r4, #0xc] + ldr r0, [sp, #0x18] + add r1, r4, #0x0 + str r0, [r4, #0x10] + ldr r0, [sp, #0x1c] + mov r2, #0xff + str r0, [r4, #0x14] + ldr r0, [sp, #0x20] + str r0, [r4, #0x18] + str r5, [r4, #0x24] + ldr r0, _0205CAD0 ; =sub_0205CAF8 + str r6, [r4, #0x28] + bl sub_0200CA44 + add r4, r0, #0x0 + bne _0205CACC + bl sub_02020C2C +_0205CACC: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_0205CAD0: .word sub_0205CAF8 + 1 + + thumb_func_start sub_0205CAD4 +sub_0205CAD4: ; 0x0205CAD4 + push {r3, lr} + bl sub_0201B6C8 + ldr r0, [r0, #0x4] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205CAE0 +sub_0205CAE0: ; 0x0205CAE0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0201B6C8 + add r1, r0, #0x0 + mov r0, #0x4 + bl sub_02016A8C + add r0, r4, #0x0 + bl sub_0200CAB4 + pop {r4, pc} + + thumb_func_start sub_0205CAF8 +sub_0205CAF8: ; 0x0205CAF8 + push {r3-r5, lr} + ldr r4, _0205CB10 ; =0x020F71B8 + add r5, r1, #0x0 +_0205CAFE: + ldr r1, [r5, #0x0] + add r0, r5, #0x0 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + blx r1 + cmp r0, #0x1 + beq _0205CAFE + pop {r3-r5, pc} + nop +_0205CB10: .word 0x020F71B8 + + thumb_func_start sub_0205CB14 +sub_0205CB14: ; 0x0205CB14 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r4, [r5, #0x24] + add r0, r4, #0x0 + bl sub_02058854 + cmp r0, #0x1 + bne _0205CB2A + add r0, r4, #0x0 + bl sub_02058914 +_0205CB2A: + mov r0, #0x1 + str r0, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_0205CB30 +sub_0205CB30: ; 0x0205CB30 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r5, [r4, #0x24] + add r0, r5, #0x0 + bl sub_02058854 + cmp r0, #0x1 + bne _0205CB44 + mov r0, #0x0 + pop {r3-r5, pc} +_0205CB44: + ldr r0, [r4, #0x24] + ldr r1, [r4, #0x8] + bl sub_021F1EC0 + add r0, r5, #0x0 + mov r1, #0x40 + bl sub_02058410 + mov r0, #0x2 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0205CB5C +sub_0205CB5C: ; 0x0205CB5C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x28] + bl sub_020553A0 + bl sub_0205AE28 + cmp r0, #0x0 + bne _0205CB72 + mov r0, #0x0 + pop {r4, pc} +_0205CB72: + ldr r0, [r4, #0x24] + bl sub_02058480 + sub r0, #0x33 + cmp r0, #0x3 + bhi _0205CB9A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r0, #0 + lsl r6, r0, #0 + lsl r6, r0, #0 + mov r0, #0x7 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} +_0205CB9A: + mov r0, #0x3 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205CBA4 +sub_0205CBA4: ; 0x0205CBA4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x24] + bl sub_0205AD98 + cmp r0, #0x0 + bne _0205CBB6 + mov r0, #0x0 + pop {r4, pc} +_0205CBB6: + mov r0, #0x0 + ldr r1, [r4, #0x8] + mvn r0, r0 + cmp r1, r0 + bne _0205CBC4 + bl sub_02020C2C +_0205CBC4: + ldr r0, [r4, #0x8] + mov r1, #0x0 + bl sub_0205AFDC + add r1, r0, #0x0 + ldr r0, [r4, #0x24] + bl sub_0205ADDC + mov r0, #0x4 + str r0, [r4, #0x0] + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205CBDC +sub_0205CBDC: ; 0x0205CBDC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x24] + bl sub_0205AE28 + cmp r0, #0x0 + bne _0205CBEE + mov r0, #0x0 + pop {r4, pc} +_0205CBEE: + mov r0, #0x5 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205CBF8 +sub_0205CBF8: ; 0x0205CBF8 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + ldr r0, [r4, #0x24] + add r2, r1, #0x0 + bl sub_021E7AC0 + str r0, [r4, #0x20] + mov r0, #0x6 + str r0, [r4, #0x0] + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205CC10 +sub_0205CC10: ; 0x0205CC10 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x20] + bl sub_021E799C + cmp r0, #0x1 + bne _0205CC28 + ldr r0, [r4, #0x20] + bl sub_02064520 + mov r0, #0x9 + str r0, [r4, #0x0] +_0205CC28: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205CC2C +sub_0205CC2C: ; 0x0205CC2C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x24] + mov r1, #0x65 + bl sub_0205ADDC + mov r0, #0x8 + str r0, [r4, #0x0] + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_0205CC40 +sub_0205CC40: ; 0x0205CC40 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x24] + bl sub_0205AE28 + cmp r0, #0x1 + bne _0205CC52 + mov r0, #0x9 + str r0, [r4, #0x0] +_0205CC52: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205CC58 +sub_0205CC58: ; 0x0205CC58 + ldr r1, [r0, #0x1c] + add r1, r1, #0x1 + str r1, [r0, #0x1c] + cmp r1, #0x1e + blt _0205CC6A + mov r1, #0x0 + str r1, [r0, #0x1c] + mov r1, #0xa + str r1, [r0, #0x0] +_0205CC6A: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0205CC70 +sub_0205CC70: ; 0x0205CC70 + ldr r1, [r0, #0xc] + cmp r1, #0x1 + bgt _0205CC7E + mov r1, #0xd + str r1, [r0, #0x0] + mov r0, #0x1 + bx lr +_0205CC7E: + mov r1, #0xb + str r1, [r0, #0x0] + mov r0, #0x1 + bx lr + .balign 4 + + thumb_func_start sub_0205CC88 +sub_0205CC88: ; 0x0205CC88 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x24] + bl sub_0205AD98 + cmp r0, #0x1 + bne _0205CCAA + ldr r0, [r4, #0x8] + mov r1, #0xc + bl sub_0205AFDC + add r1, r0, #0x0 + ldr r0, [r4, #0x24] + bl sub_0205ADDC + mov r0, #0xc + str r0, [r4, #0x0] +_0205CCAA: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205CCB0 +sub_0205CCB0: ; 0x0205CCB0 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x24] + bl sub_0205AE28 + cmp r0, #0x0 + bne _0205CCC2 + mov r0, #0x0 + pop {r4, pc} +_0205CCC2: + ldr r0, [r4, #0xc] + sub r0, r0, #0x1 + str r0, [r4, #0xc] + mov r0, #0xa + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0205CCD0 +sub_0205CCD0: ; 0x0205CCD0 + ldr r1, [r0, #0x1c] + add r1, r1, #0x1 + str r1, [r0, #0x1c] + cmp r1, #0x8 + bge _0205CCDE + mov r0, #0x0 + bx lr +_0205CCDE: + mov r1, #0x0 + str r1, [r0, #0x1c] + mov r1, #0xe + str r1, [r0, #0x0] + mov r0, #0x1 + bx lr + .balign 4 + + thumb_func_start sub_0205CCEC +sub_0205CCEC: ; 0x0205CCEC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x28] + bl sub_020553A0 + add r4, r0, #0x0 + bl sub_02058B2C + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058B4C + add r7, r0, #0x0 + ldr r0, [r5, #0x24] + bl sub_02058B2C + str r0, [sp, #0x0] + ldr r0, [r5, #0x24] + bl sub_02058B4C + add r3, r0, #0x0 + ldr r2, [sp, #0x0] + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_02059E80 + add r6, r0, #0x0 + ldr r0, [r5, #0x28] + bl sub_020552F8 + cmp r6, r0 + beq _0205CD60 + ldr r0, [r5, #0x18] + cmp r0, #0x0 + beq _0205CD38 + ldr r0, [r5, #0x14] + cmp r0, #0x2 + bne _0205CD60 +_0205CD38: + add r0, r4, #0x0 + bl sub_0205AD98 + cmp r0, #0x1 + bne _0205CD64 + add r0, r4, #0x0 + mov r1, #0x80 + bl sub_02058418 + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_0205AFDC + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205ADDC + mov r0, #0xf + str r0, [r5, #0x0] + b _0205CD64 +_0205CD60: + mov r0, #0x10 + str r0, [r5, #0x0] +_0205CD64: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0205CD68 +sub_0205CD68: ; 0x0205CD68 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x28] + bl sub_020553A0 + add r5, r0, #0x0 + bl sub_0205AE28 + cmp r0, #0x0 + bne _0205CD80 + mov r0, #0x0 + pop {r3-r5, pc} +_0205CD80: + add r0, r5, #0x0 + bl sub_0205AE50 + mov r0, #0x10 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205CD90 +sub_0205CD90: ; 0x0205CD90 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x24] + bl sub_0205AE50 + ldr r0, [r4, #0x24] + mov r1, #0x0 + bl sub_02058E90 + mov r0, #0x11 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205CDAC +sub_0205CDAC: ; 0x0205CDAC + mov r1, #0x1 + str r1, [r0, #0x4] + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205CDB4 +sub_0205CDB4: ; 0x0205CDB4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020377AC + bl sub_02024ED8 + bl sub_020254B4 + add r1, r0, #0x0 + beq _0205CDD2 + lsl r2, r1, #0x2 + ldr r1, _0205CDD4 ; =0x020F7220 + add r0, r4, #0x0 + ldr r1, [r1, r2] + blx r1 +_0205CDD2: + pop {r4, pc} + .balign 4 +_0205CDD4: .word 0x020F7220 + + thumb_func_start sub_0205CDD8 +sub_0205CDD8: ; 0x0205CDD8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_020377AC + bl sub_02024ED8 + bl sub_020254B4 + cmp r0, #0x0 + beq _0205CDFA + lsl r1, r0, #0x2 + ldr r0, _0205CDFC ; =0x020F7200 + ldr r1, [r0, r1] + cmp r1, #0x0 + beq _0205CDFA + add r0, r4, #0x0 + blx r1 +_0205CDFA: + pop {r4, pc} + .balign 4 +_0205CDFC: .word 0x020F7200 + + thumb_func_start sub_0205CE00 +sub_0205CE00: ; 0x0205CE00 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x4] + bl sub_020377AC + bl sub_02024ED8 + bl sub_020254B4 + cmp r0, #0x0 + bne _0205CE22 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0205CE22: + lsl r1, r0, #0x2 + ldr r0, _0205CE44 ; =0x020F7240 + ldr r6, [r0, r1] + cmp r6, #0x0 + beq _0205CE3E + ldr r0, [sp, #0x20] + ldr r3, [sp, #0x4] + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + blx r6 + add sp, #0x8 + pop {r3-r7, pc} +_0205CE3E: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0205CE44: .word 0x020F7240 + + thumb_func_start sub_0205CE48 +sub_0205CE48: ; 0x0205CE48 + cmp r0, #0x0 + bne _0205CE58 + mov r0, #0xc + add r2, r1, #0x0 + mul r2, r0 + ldr r0, _0205CE74 ; =0x020F7260 + ldr r0, [r0, r2] + bx lr +_0205CE58: + cmp r0, #0x1 + bne _0205CE68 + mov r0, #0xc + add r2, r1, #0x0 + mul r2, r0 + ldr r0, _0205CE78 ; =0x020F7264 + ldr r0, [r0, r2] + bx lr +_0205CE68: + mov r0, #0xc + add r2, r1, #0x0 + mul r2, r0 + ldr r0, _0205CE7C ; =0x020F7268 + ldr r0, [r0, r2] + bx lr + .balign 4 +_0205CE74: .word 0x020F7260 +_0205CE78: .word 0x020F7264 +_0205CE7C: .word 0x020F7268 + + thumb_func_start sub_0205CE80 +sub_0205CE80: ; 0x0205CE80 + push {r3-r7, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + str r4, [r5, #0x18] + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0x0] + str r0, [r5, #0x0] + ldr r0, [r4, #0xc] + bl sub_020462AC + bl sub_0205ED3C + str r0, [r5, #0x4] + ldr r0, [r4, #0x38] + bl sub_020553C4 + str r0, [r5, #0x8] + ldr r0, [r4, #0x38] + bl sub_02055320 + add r6, r0, #0x0 + ldr r0, [r4, #0x38] + bl sub_0205532C + add r7, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_0204A6E0 + strh r0, [r5, #0xe] + ldr r0, [r4, #0x38] + bl sub_020552F8 + cmp r0, #0x3 + bhi _0205CEEA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r2, r2, #0 + lsl r6, r1, #0 + sub r7, r7, #0x1 + b _0205CEEA +_0205CEE0: + .byte 0x7F, 0x1C, 0x02, 0xE0, 0x76, 0x1C, 0x00, 0xE0, 0x76, 0x1E +_0205CEEA: + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_0204A6E0 + strh r0, [r5, #0xc] + add r0, r4, #0x0 + add r1, sp, #0x0 + bl sub_02037024 + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + bl sub_0204B6C4 + strh r0, [r5, #0x10] + ldr r0, [r4, #0x38] + str r0, [r5, #0x14] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205CF10 +sub_0205CF10: ; 0x0205CF10 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x20 + mov r1, #0xc + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02016998 + str r5, [r0, #0x0] + strh r4, [r0, #0x4] + strh r6, [r0, #0x6] + strh r7, [r0, #0x8] + add r1, sp, #0x8 + ldrh r1, [r1, #0x10] + strh r1, [r0, #0xa] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205CF34 +sub_0205CF34: ; 0x0205CF34 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r2, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204649C + mov r0, #0x72 + mov r2, #0x0 + ldr r1, _0205CF74 ; =sub_0205CFA0 + lsl r0, r0, #0x2 + str r1, [r4, r0] + str r2, [sp, #0x0] + ldrh r1, [r5, #0x4] + add r0, r6, #0x0 + add r3, r2, #0x0 + bl sub_0205CF10 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r3-r7, pc} + nop +_0205CF74: .word sub_0205CFA0 + 1 + + thumb_func_start sub_0205CF78 +sub_0205CF78: ; 0x0205CF78 + push {r3-r4, lr} + sub sp, #0x4 + mov r2, #0x0 + add r4, r0, #0x0 + str r2, [sp, #0x0] + add r0, r1, #0x0 + ldrh r1, [r4, #0x28] + add r3, r2, #0x0 + bl sub_0205CF10 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, _0205CF9C ; =sub_0205CFA0 + bl sub_020463CC + add sp, #0x4 + pop {r3-r4, pc} + nop +_0205CF9C: .word sub_0205CFA0 + 1 + + thumb_func_start sub_0205CFA0 +sub_0205CFA0: ; 0x0205CFA0 + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r7, #0x0 + bl sub_02046530 + add r6, r0, #0x0 + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _0205CFC6 + cmp r0, #0x1 + beq _0205D016 + b _0205D020 +_0205CFC6: + add r0, r5, #0x0 + add r1, sp, #0x0 + bl sub_02037024 + ldr r1, [r4, #0x0] + ldr r2, [sp, #0x0] + lsl r1, r1, #0x10 + add r0, r7, #0x0 + lsr r1, r1, #0x10 + mov r3, #0x0 + bl sub_02038CD8 + add r0, r5, #0x0 + mov r1, #0x29 + bl sub_02039438 + ldrh r1, [r4, #0x4] + strh r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x2a + bl sub_02039438 + ldrh r1, [r4, #0x6] + strh r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x2b + bl sub_02039438 + ldrh r1, [r4, #0x8] + strh r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x2c + bl sub_02039438 + ldrh r1, [r4, #0xa] + strh r1, [r0, #0x0] + ldr r0, [r6, #0x0] + add r0, r0, #0x1 + str r0, [r6, #0x0] + b _0205D020 +_0205D016: + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r7, pc} +_0205D020: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0205D024 +sub_0205D024: ; 0x0205D024 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_0204652C + add r7, r0, #0x0 + mov r0, #0xb + mov r1, #0x40 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x40 + add r4, r0, #0x0 + blx sub_020DF4A4 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl sub_0206F158 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl sub_02025838 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0xc] + ldr r0, [r5, #0xc] + bl sub_02022504 + str r0, [r4, #0x10] + mov r0, #0x7a + lsl r0, r0, #0x2 + add r0, r7, r0 + str r0, [r4, #0x18] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x5 + add r0, #0x20 + strb r1, [r0, #0x0] + str r5, [r4, #0x1c] + ldrh r0, [r6, #0x4] + add r2, r4, #0x0 + strh r0, [r4, #0x24] + add r0, r4, #0x0 + ldrb r1, [r6, #0x6] + add r0, #0x22 + strb r1, [r0, #0x0] + ldr r1, _0205D0B4 ; =0x020F96DC + add r0, r5, #0x0 + bl sub_020373D4 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r4, [r7, r0] + ldr r1, _0205D0B8 ; =sub_02035E50 + add r0, r7, #0x0 + bl sub_02035D04 + pop {r3-r7, pc} + nop +_0205D0B4: .word 0x020F96DC +_0205D0B8: .word sub_02035E50 + 1 + + thumb_func_start sub_0205D0BC +sub_0205D0BC: ; 0x0205D0BC + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02037EB8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _0205D0E8 ; =sub_02036A78 + add r0, r4, #0x0 + bl sub_02035D04 + pop {r3-r5, pc} + nop +_0205D0E8: .word sub_02036A78 + 1 + + thumb_func_start sub_0205D0EC +sub_0205D0EC: ; 0x0205D0EC + push {r3, lr} + ldr r1, _0205D0F8 ; =sub_0205D0FC + bl sub_0205DD04 + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0205D0F8: .word sub_0205D0FC + 1 + + thumb_func_start sub_0205D0FC +sub_0205D0FC: ; 0x0205D0FC + ldr r3, _0205D100 ; =sub_02037EB8 + bx r3 + .balign 4 +_0205D100: .word sub_02037EB8 + 1 + + thumb_func_start sub_0205D104 +sub_0205D104: ; 0x0205D104 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0x72 + ldr r1, _0205D140 ; =sub_02049844 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, r5, #0x0 + bl sub_0204976C + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0xa + strh r0, [r4, #0x2a] + mov r0, #0x0 + add r5, #0x8c + str r0, [r5, #0x0] + pop {r3-r5, pc} + nop +_0205D140: .word sub_02049844 + 1 + + thumb_func_start sub_0205D144 +sub_0205D144: ; 0x0205D144 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0204976C + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x34] + bl sub_02058780 + ldr r0, [r5, #0x0] + ldr r1, _0205D16C ; =sub_02049844 + add r2, r4, #0x0 + bl sub_020463CC + ldr r1, [r5, #0x0] + mov r0, #0x0 + add r1, #0x8c + str r0, [r1, #0x0] + pop {r3-r5, pc} + .balign 4 +_0205D16C: .word sub_02049844 + 1 + + thumb_func_start sub_0205D170 +sub_0205D170: ; 0x0205D170 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02034824 + cmp r0, #0x0 + bne _0205D184 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205D184: + ldr r0, [r5, #0x0] + bl sub_02034908 + cmp r0, #0x0 + bne _0205D194 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205D194: + ldr r0, [r5, #0x14] + bl sub_02055738 + cmp r0, #0x1 + bne _0205D1A4 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205D1A4: + ldr r0, [r5, #0x18] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x1 + beq _0205D1C4 + ldr r0, [r5, #0x18] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F244 + cmp r0, #0x1 + bne _0205D1CA +_0205D1C4: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205D1CA: + ldr r0, [r5, #0x14] + bl sub_020553C4 + cmp r0, #0x2 + bne _0205D1DA + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205D1DA: + ldrh r0, [r5, #0xe] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02054B78 + cmp r0, #0x1 + bne _0205D1EE + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205D1EE: + ldr r0, [r5, #0x18] + ldr r0, [r0, #0x38] + bl sub_02055320 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [r5, #0x18] + ldr r0, [r0, #0x38] + bl sub_0205532C + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + ldr r0, [r5, #0x18] + add r1, r4, #0x0 + bl sub_02034D44 + cmp r0, #0x0 + bne _0205D218 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205D218: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205D21C +sub_0205D21C: ; 0x0205D21C + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0x72 + ldr r1, _0205D24C ; =sub_0205D264 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r1, #0x0 + add r0, #0x30 + str r1, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r3-r5, pc} + nop +_0205D24C: .word sub_0205D264 + 1 + + thumb_func_start sub_0205D250 +sub_0205D250: ; 0x0205D250 + push {r3, lr} + ldr r0, [r0, #0x0] + ldr r1, _0205D260 ; =sub_0205D264 + mov r2, #0x0 + bl sub_020463CC + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0205D260: .word sub_0205D264 + 1 + + thumb_func_start sub_0205D264 +sub_0205D264: ; 0x0205D264 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046530 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x3 + bhi _0205D324 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r4, r1, #0 + lsl r2, r1, #0x2 + lsl r0, r2, #0x2 + add r0, r0, #0x1 + str r0, [r5, #0x0] + b _0205D324 +_0205D296: + .byte 0xA0, 0x6B, 0xF8, 0xF7, 0x94, 0xF8, 0x01, 0x28, 0x1A, 0xD1 + .byte 0xA0, 0x6B, 0xF8, 0xF7, 0x7D, 0xF8, 0xFB, 0xF7, 0x35, 0xFB, 0xA0, 0x6B, 0x01, 0x21, 0x88, 0xF1 + .byte 0x93, 0xFE, 0xA0, 0x6B, 0x88, 0xF1, 0x94, 0xFE, 0x20, 0x1C, 0x00, 0x21, 0xED, 0xF7, 0x30, 0xFC + .byte 0xE1, 0x69, 0x20, 0x1C, 0x09, 0x68, 0xED, 0xF7, 0x47, 0xFC, 0x01, 0x1C, 0x20, 0x1C, 0x01, 0x22 + .byte 0xED, 0xF7, 0x84, 0xFC, 0x1A, 0xE0, 0x12, 0x21, 0x20, 0x1C, 0x89, 0x01, 0xED, 0xF7, 0x20, 0xFC + .byte 0x12, 0x21, 0x20, 0x1C, 0x89, 0x01, 0x01, 0x22, 0xED, 0xF7, 0x78, 0xFC, 0xA0, 0x6B, 0xF8, 0xF7 + .byte 0x57, 0xF8, 0xFB, 0xF7, 0x0F, 0xFB, 0xA0, 0x6B, 0x02, 0x21, 0x88, 0xF1, 0x6D, 0xFE, 0xA0, 0x6B + .byte 0x88, 0xF1, 0x6E, 0xFE, 0x90, 0x34, 0x20, 0x68, 0x00, 0xF0, 0x1A, 0xFD, 0x28, 0x68, 0x40, 0x1C + .byte 0x28, 0x60, 0x07, 0xE0, 0x40, 0x1C, 0x28, 0x60, 0x04, 0xE0, 0x60, 0x6B, 0xFB, 0xF7, 0x48, 0xFA + .byte 0x01, 0x20, 0x38, 0xBD +_0205D324: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205D328 +sub_0205D328: ; 0x0205D328 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x1 + bne _0205D336 + mov r0, #0x2 + pop {r3-r5, pc} +_0205D336: + ldr r0, [r4, #0x14] + bl sub_02055738 + cmp r0, #0x1 + bne _0205D344 + mov r0, #0x1 + pop {r3-r5, pc} +_0205D344: + ldr r0, [r4, #0x14] + bl sub_020553A0 + ldrh r1, [r4, #0xe] + add r5, r0, #0x0 + bl sub_02059BB4 + cmp r0, #0x1 + beq _0205D362 + ldrh r1, [r4, #0xe] + add r0, r5, #0x0 + bl sub_02059BD4 + cmp r0, #0x1 + bne _0205D366 +_0205D362: + mov r0, #0x1 + pop {r3-r5, pc} +_0205D366: + ldrh r0, [r4, #0xe] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02054798 + cmp r0, #0x1 + beq _0205D390 + ldrh r0, [r4, #0xe] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02054974 + cmp r0, #0x1 + beq _0205D390 + ldrh r0, [r4, #0xe] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02054990 + cmp r0, #0x1 + bne _0205D396 +_0205D390: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205D396: + ldr r0, [r4, #0x0] + bl sub_020348B4 + cmp r0, #0x0 + bne _0205D3A6 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205D3A6: + ldr r0, [r4, #0x8] + cmp r0, #0x2 + bne _0205D3B2 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205D3B2: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205D3B8 +sub_0205D3B8: ; 0x0205D3B8 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02037944 + ldr r1, _0205D3E0 ; =sub_02036B90 + add r0, r4, #0x0 + bl sub_02035D04 + pop {r3-r5, pc} + nop +_0205D3E0: .word sub_02036B90 + 1 + + thumb_func_start sub_0205D3E4 +sub_0205D3E4: ; 0x0205D3E4 + push {r3, lr} + ldr r1, _0205D3F0 ; =sub_0205D3F4 + bl sub_0205DD04 + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0205D3F0: .word sub_0205D3F4 + 1 + + thumb_func_start sub_0205D3F4 +sub_0205D3F4: ; 0x0205D3F4 + push {r3, lr} + mov r1, #0x0 + bl sub_02037944 + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0205D400 +sub_0205D400: ; 0x0205D400 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_0204652C + add r7, r0, #0x0 + mov r0, #0xb + mov r1, #0x40 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x40 + add r4, r0, #0x0 + blx sub_020DF4A4 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl sub_0206F158 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl sub_02025838 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0xc] + mov r0, #0x7a + lsl r0, r0, #0x2 + add r0, r7, r0 + str r0, [r4, #0x18] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x6 + add r0, #0x20 + strb r1, [r0, #0x0] + str r5, [r4, #0x1c] + ldrh r0, [r6, #0x4] + strh r0, [r4, #0x24] + add r0, r4, #0x0 + ldrb r1, [r6, #0x6] + add r0, #0x22 + strb r1, [r0, #0x0] + ldrh r0, [r6, #0x4] + bl sub_0206EA30 + strh r0, [r4, #0x26] + ldr r1, _0205D490 ; =0x020F96DC + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r4, [r7, r0] + ldr r1, _0205D494 ; =sub_02035E50 + add r0, r7, #0x0 + bl sub_02035D04 + pop {r3-r7, pc} + nop +_0205D490: .word 0x020F96DC +_0205D494: .word sub_02035E50 + 1 + + thumb_func_start sub_0205D498 +sub_0205D498: ; 0x0205D498 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02046528 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + ldrh r0, [r5, #0x4] + bl sub_0206EAB8 + add r2, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x3 + mov r3, #0xb + bl sub_02037F58 + add r6, r0, #0x0 + ldrh r0, [r5, #0x4] + mov r1, #0x3 + mov r2, #0x0 + bl sub_02036BC4 + mov r1, #0x7f + lsl r1, r1, #0x2 + str r0, [r4, r1] + sub r0, r1, #0x4 + str r6, [r4, r0] + ldr r1, _0205D4E0 ; =sub_02036BDC + add r0, r4, #0x0 + bl sub_02035D04 + pop {r4-r6, pc} + nop +_0205D4E0: .word sub_02036BDC + 1 + + thumb_func_start sub_0205D4E4 +sub_0205D4E4: ; 0x0205D4E4 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0205D4E8 +sub_0205D4E8: ; 0x0205D4E8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r4, r1, #0x0 + bl sub_02046528 + ldr r0, [r5, #0x0] + bl sub_0204652C + ldrh r1, [r4, #0x10] + mov r0, #0x1 + tst r0, r1 + beq _0205D50E + ldr r2, _0205D518 ; =0x00000AF1 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205CF34 + pop {r3-r5, pc} +_0205D50E: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205D024 + pop {r3-r5, pc} + .balign 4 +_0205D518: .word 0x00000AF1 + + thumb_func_start sub_0205D51C +sub_0205D51C: ; 0x0205D51C + ldrh r1, [r0, #0x10] + mov r0, #0x1 + tst r1, r0 + bne _0205D526 + mov r0, #0x0 +_0205D526: + bx lr + + thumb_func_start sub_0205D528 +sub_0205D528: ; 0x0205D528 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xb + bl sub_02037FC4 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _0205D554 ; =sub_02036D94 + add r0, r4, #0x0 + bl sub_02035D04 + pop {r3-r5, pc} + .balign 4 +_0205D554: .word sub_02036D94 + 1 + + thumb_func_start sub_0205D558 +sub_0205D558: ; 0x0205D558 + push {r3, lr} + ldr r1, _0205D564 ; =sub_0205D568 + bl sub_0205DD04 + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0205D564: .word sub_0205D568 + 1 + + thumb_func_start sub_0205D568 +sub_0205D568: ; 0x0205D568 + ldr r3, _0205D570 ; =sub_02037FC4 + mov r1, #0xb + bx r3 + nop +_0205D570: .word sub_02037FC4 + 1 + + thumb_func_start sub_0205D574 +sub_0205D574: ; 0x0205D574 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r5, #0xc] + add r0, r5, #0x0 + bl sub_0203846C + mov r0, #0x7e + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r4, r0] + ldr r1, _0205D5A4 ; =sub_02036DD4 + add r0, r4, #0x0 + bl sub_02035D04 + pop {r3-r5, pc} + nop +_0205D5A4: .word sub_02036DD4 + 1 + + thumb_func_start sub_0205D5A8 +sub_0205D5A8: ; 0x0205D5A8 + push {r3, lr} + ldr r1, _0205D5B4 ; =sub_0205D5B8 + bl sub_0205DD04 + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0205D5B4: .word sub_0205D5B8 + 1 + + thumb_func_start sub_0205D5B8 +sub_0205D5B8: ; 0x0205D5B8 + push {r3, lr} + ldr r1, [r0, #0xc] + bl sub_0203846C + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0205D5C4 +sub_0205D5C4: ; 0x0205D5C4 + push {r4-r6, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02046528 + add r6, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204652C + add r5, r0, #0x0 + mov r0, #0xb + mov r1, #0x4 + bl sub_020169D8 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [r4, #0x0] + add r0, r6, #0x0 + bl sub_0204649C + mov r0, #0x72 + ldr r1, _0205D600 ; =sub_0205E30C + lsl r0, r0, #0x2 + str r1, [r5, r0] + add r0, #0x30 + str r4, [r5, r0] + mov r0, #0xa + strh r0, [r5, #0x2a] + pop {r4-r6, pc} + nop +_0205D600: .word sub_0205E30C + 1 + + thumb_func_start sub_0205D604 +sub_0205D604: ; 0x0205D604 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x4 + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + ldr r0, [r4, #0x0] + ldr r1, _0205D624 ; =sub_0205E30C + bl sub_020463CC + mov r0, #0x0 + pop {r4, pc} + nop +_0205D624: .word sub_0205E30C + 1 + + thumb_func_start sub_0205D628 +sub_0205D628: ; 0x0205D628 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x1 + bne _0205D636 + mov r0, #0x2 + pop {r4, pc} +_0205D636: + ldr r0, [r4, #0x18] + ldr r0, [r0, #0x38] + bl sub_020553C4 + cmp r0, #0x1 + bne _0205D648 + mov r0, #0x0 + mvn r0, r0 + pop {r4, pc} +_0205D648: + ldrh r0, [r4, #0xe] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_0205478C + cmp r0, #0x0 + beq _0205D65A + mov r0, #0x0 + pop {r4, pc} +_0205D65A: + mov r0, #0x0 + mvn r0, r0 + pop {r4, pc} + + thumb_func_start sub_0205D660 +sub_0205D660: ; 0x0205D660 + ldr r3, _0205D668 ; =sub_0205CF34 + ldr r2, _0205D66C ; =0x00000AF2 + bx r3 + nop +_0205D668: .word sub_0205CF34 + 1 +_0205D66C: .word 0x00000AF2 + + thumb_func_start sub_0205D670 +sub_0205D670: ; 0x0205D670 + push {r3, lr} + ldr r1, _0205D67C ; =0x00000AF2 + bl sub_0205CF78 + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0205D67C: .word 0x00000AF2 + + thumb_func_start sub_0205D680 +sub_0205D680: ; 0x0205D680 + ldr r1, [r0, #0x4] + cmp r1, #0x1 + bne _0205D68A + mov r0, #0x2 + bx lr +_0205D68A: + ldrh r1, [r0, #0x10] + mov r0, #0x4 + tst r1, r0 + beq _0205D696 + mov r0, #0x0 + bx lr +_0205D696: + sub r0, r0, #0x5 + bx lr + .balign 4 + + thumb_func_start sub_0205D69C +sub_0205D69C: ; 0x0205D69C + ldr r3, _0205D6A4 ; =sub_0205CF34 + ldr r2, _0205D6A8 ; =0x00000AF3 + bx r3 + nop +_0205D6A4: .word sub_0205CF34 + 1 +_0205D6A8: .word 0x00000AF3 + + thumb_func_start sub_0205D6AC +sub_0205D6AC: ; 0x0205D6AC + ldrh r1, [r0, #0x10] + mov r0, #0x2 + tst r1, r0 + beq _0205D6B8 + mov r0, #0x0 + bx lr +_0205D6B8: + sub r0, r0, #0x3 + bx lr + + thumb_func_start sub_0205D6BC +sub_0205D6BC: ; 0x0205D6BC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02046528 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204649C + bl sub_021F57EC + str r0, [sp, #0x0] + ldr r1, [sp, #0x0] + mov r0, #0xb + bl sub_020169D8 + ldr r2, [sp, #0x0] + mov r1, #0x0 + add r7, r0, #0x0 + blx sub_020DF4A4 + mov r0, #0x72 + ldr r1, _0205D710 ; =0x021F57F1 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r7, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + ldr r0, [r6, #0xc] + bl sub_0206F158 + ldrh r1, [r5, #0x4] + mov r2, #0x1 + mov r3, #0xb + bl sub_0206EDD4 + pop {r3-r7, pc} + .balign 4 +_0205D710: .word 0x021F57F1 + + thumb_func_start sub_0205D714 +sub_0205D714: ; 0x0205D714 + ldr r3, _0205D71C ; =sub_0205CF34 + ldr r2, _0205D720 ; =0x000022F6 + bx r3 + nop +_0205D71C: .word sub_0205CF34 + 1 +_0205D720: .word 0x000022F6 + + thumb_func_start sub_0205D724 +sub_0205D724: ; 0x0205D724 + push {r3, lr} + ldr r1, _0205D730 ; =0x000022F6 + bl sub_0205CF78 + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0205D730: .word 0x000022F6 + + thumb_func_start sub_0205D734 +sub_0205D734: ; 0x0205D734 + push {r3, lr} + ldr r0, [r0, #0x0] + bl sub_02034908 + cmp r0, #0x0 + beq _0205D744 + mov r0, #0x0 + pop {r3, pc} +_0205D744: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205D74C +sub_0205D74C: ; 0x0205D74C + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0x72 + ldr r1, _0205D784 ; =0x021F5C71 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, r5, #0x0 + mov r1, #0xb + mov r2, #0x0 + bl sub_021F5C44 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r3-r5, pc} + .balign 4 +_0205D784: .word 0x021F5C71 + + thumb_func_start sub_0205D788 +sub_0205D788: ; 0x0205D788 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x4 + mov r2, #0x0 + bl sub_021F5C44 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, _0205D7A4 ; =0x021F5C71 + bl sub_020463CC + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0205D7A4: .word 0x021F5C71 + + thumb_func_start sub_0205D7A8 +sub_0205D7A8: ; 0x0205D7A8 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0x72 + ldr r1, _0205D7E0 ; =0x021F5C71 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, r5, #0x0 + mov r1, #0xb + mov r2, #0x1 + bl sub_021F5C44 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r3-r5, pc} + .balign 4 +_0205D7E0: .word 0x021F5C71 + + thumb_func_start sub_0205D7E4 +sub_0205D7E4: ; 0x0205D7E4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x4 + mov r2, #0x1 + bl sub_021F5C44 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, _0205D800 ; =0x021F5C71 + bl sub_020463CC + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0205D800: .word 0x021F5C71 + + thumb_func_start sub_0205D804 +sub_0205D804: ; 0x0205D804 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0x72 + ldr r1, _0205D83C ; =0x021F5C71 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, r5, #0x0 + mov r1, #0xb + mov r2, #0x2 + bl sub_021F5C44 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r3-r5, pc} + .balign 4 +_0205D83C: .word 0x021F5C71 + + thumb_func_start sub_0205D840 +sub_0205D840: ; 0x0205D840 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x4 + mov r2, #0x2 + bl sub_021F5C44 + add r2, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, _0205D85C ; =0x021F5C71 + bl sub_020463CC + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0205D85C: .word 0x021F5C71 + + thumb_func_start sub_0205D860 +sub_0205D860: ; 0x0205D860 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x1 + bne _0205D86E + mov r0, #0x2 + pop {r4, pc} +_0205D86E: + ldrh r0, [r4, #0xc] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_0205481C + cmp r0, #0x1 + bne _0205D8B0 + ldrh r0, [r4, #0xe] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02054B78 + cmp r0, #0x1 + beq _0205D898 + ldrh r0, [r4, #0xe] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02054B6C + cmp r0, #0x1 + bne _0205D8AC +_0205D898: + ldr r0, [r4, #0x14] + bl sub_020553A0 + bl sub_02058A68 + cmp r0, #0x1 + bne _0205D8AC + mov r0, #0x0 + mvn r0, r0 + pop {r4, pc} +_0205D8AC: + mov r0, #0x0 + pop {r4, pc} +_0205D8B0: + mov r0, #0x0 + mvn r0, r0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205D8B8 +sub_0205D8B8: ; 0x0205D8B8 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0xb + mov r1, #0x18 + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x0 + strh r0, [r4, #0x16] + mov r0, #0x80 + mov r1, #0xb + bl sub_020219F4 + str r0, [r4, #0x10] + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_0206F158 + bl sub_0206EBC4 + add r2, r0, #0x0 + ldr r0, [r5, #0x0] + lsl r2, r2, #0x10 + ldr r0, [r0, #0xc] + ldr r1, [r4, #0x10] + lsr r2, r2, #0x10 + mov r3, #0xb + bl sub_0206E3F8 + ldr r0, [r5, #0x0] + ldr r1, _0205D900 ; =sub_0205D904 + add r2, r4, #0x0 + bl sub_020463CC + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0205D900: .word sub_0205D904 + 1 + + thumb_func_start sub_0205D904 +sub_0205D904: ; 0x0205D904 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldrh r0, [r4, #0x16] + cmp r0, #0x0 + beq _0205D926 + cmp r0, #0x1 + beq _0205D95C + cmp r0, #0x2 + beq _0205D984 + b _0205D9A0 +_0205D926: + ldr r0, [r5, #0x34] + bl sub_02058780 + ldr r0, [r5, #0x8] + add r1, r4, #0x0 + mov r2, #0x3 + bl sub_020545B8 + ldr r0, [r5, #0xc] + bl sub_02023900 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02054608 + ldr r1, [r4, #0x10] + add r0, r4, #0x0 + add r2, r5, #0x0 + mov r3, #0x1 + bl sub_02054658 + strh r0, [r4, #0x14] + ldrh r0, [r4, #0x16] + add r0, r0, #0x1 + strh r0, [r4, #0x16] + b _0205D9A0 +_0205D95C: + ldrh r0, [r4, #0x14] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_020546C8 + cmp r0, #0x1 + bne _0205D9A0 + ldr r0, _0205D9A4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0xf3 + tst r0, r1 + beq _0205D9A0 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0200D0E0 + ldrh r0, [r4, #0x16] + add r0, r0, #0x1 + strh r0, [r4, #0x16] + b _0205D9A0 +_0205D984: + ldr r0, [r5, #0x34] + bl sub_020587B0 + add r0, r4, #0x0 + bl sub_02019178 + ldr r0, [r4, #0x10] + bl sub_02021A20 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_0205D9A0: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0205D9A4: .word 0x021C48B8 + + thumb_func_start sub_0205D9A8 +sub_0205D9A8: ; 0x0205D9A8 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_0204652C + add r7, r0, #0x0 + mov r0, #0xb + mov r1, #0x40 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x40 + add r4, r0, #0x0 + blx sub_020DF4A4 + ldr r0, [r5, #0xc] + bl sub_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl sub_0206F158 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl sub_02025838 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl sub_02023900 + str r0, [r4, #0xc] + ldr r0, [r5, #0xc] + bl sub_02022504 + str r0, [r4, #0x10] + mov r0, #0x7a + lsl r0, r0, #0x2 + add r0, r7, r0 + str r0, [r4, #0x18] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x10 + add r0, #0x20 + strb r1, [r0, #0x0] + ldrh r0, [r6, #0x4] + add r2, r4, #0x0 + strh r0, [r4, #0x24] + add r0, r4, #0x0 + ldrb r1, [r6, #0x6] + add r0, #0x22 + strb r1, [r0, #0x0] + ldr r1, _0205DA34 ; =0x020F96DC + add r0, r5, #0x0 + bl sub_020373D4 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r4, [r7, r0] + ldr r1, _0205DA38 ; =sub_02035E50 + add r0, r7, #0x0 + bl sub_02035D04 + pop {r3-r7, pc} + .balign 4 +_0205DA34: .word 0x020F96DC +_0205DA38: .word sub_02035E50 + 1 + + thumb_func_start sub_0205DA3C +sub_0205DA3C: ; 0x0205DA3C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02046528 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204649C + mov r0, #0x72 + ldr r1, _0205DA7C ; =sub_0205DAAC + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r1, #0x0 + add r0, #0x30 + str r1, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + ldr r0, [r6, #0xc] + bl sub_0206F158 + ldrh r1, [r5, #0x4] + mov r2, #0x1 + mov r3, #0xb + bl sub_0206EDD4 + pop {r4-r6, pc} + nop +_0205DA7C: .word sub_0205DAAC + 1 + + thumb_func_start sub_0205DA80 +sub_0205DA80: ; 0x0205DA80 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x1 + bne _0205DA8E + mov r0, #0x2 + pop {r4, pc} +_0205DA8E: + ldr r0, [r4, #0x0] + bl sub_02034930 + cmp r0, #0x1 + bne _0205DAA6 + ldr r0, [r4, #0x0] + bl sub_0203487C + cmp r0, #0x1 + bne _0205DAA6 + mov r0, #0x0 + pop {r4, pc} +_0205DAA6: + mov r0, #0x0 + mvn r0, r0 + pop {r4, pc} + + thumb_func_start sub_0205DAAC +sub_0205DAAC: ; 0x0205DAAC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02046528 + mov r1, #0xb + bl sub_0224C700 + add r2, r0, #0x0 + ldr r1, _0205DAC8 ; =0x0224C721 + add r0, r4, #0x0 + bl sub_020463EC + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0205DAC8: .word 0x0224C721 + + thumb_func_start sub_0205DACC +sub_0205DACC: ; 0x0205DACC + ldr r3, _0205DAD4 ; =sub_0205CF34 + ldr r2, _0205DAD8 ; =0x000007F7 + bx r3 + nop +_0205DAD4: .word sub_0205CF34 + 1 +_0205DAD8: .word 0x000007F7 + + thumb_func_start sub_0205DADC +sub_0205DADC: ; 0x0205DADC + push {r3, lr} + ldr r1, _0205DAE8 ; =0x000007F7 + bl sub_0205CF78 + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0205DAE8: .word 0x000007F7 + + thumb_func_start sub_0205DAEC +sub_0205DAEC: ; 0x0205DAEC + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x18] + ldr r0, [r0, #0xc] + bl sub_020462AC + add r5, r0, #0x0 + bl sub_0205ED0C + cmp r0, #0x0 + bne _0205DB08 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205DB08: + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0205F4A0 + cmp r0, #0x0 + bne _0205DB1A + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205DB1A: + ldr r0, [r4, #0x18] + ldr r0, [r0, #0xc] + bl sub_02024DA0 + bl sub_02024CA4 + cmp r0, #0x0 + bne _0205DB30 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0205DB30: + ldr r0, [r4, #0x0] + bl sub_020349D8 + cmp r0, #0x0 + beq _0205DB3E + mov r0, #0x0 + pop {r3-r5, pc} +_0205DB3E: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} + + thumb_func_start sub_0205DB44 +sub_0205DB44: ; 0x0205DB44 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02060144 + cmp r0, #0x1 + bne _0205DB54 + mov r0, #0x0 + pop {r3-r7, pc} +_0205DB54: + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205F244 + cmp r0, #0x1 + bne _0205DB66 + mov r0, #0x0 + pop {r3-r7, pc} +_0205DB66: + ldr r0, [r5, #0xc] + bl sub_0206F158 + bl sub_0206EBC4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x6 + mov r2, #0xb + str r0, [sp, #0x0] + bl sub_0206E7B8 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + mov r0, #0x2 + add r1, r4, #0x0 + bl sub_0205CE48 + add r6, r0, #0x0 + mov r0, #0x1 + add r1, r4, #0x0 + bl sub_0205CE48 + add r7, r0, #0x0 + bne _0205DB9C + mov r0, #0x0 + pop {r3-r7, pc} +_0205DB9C: + mov r0, #0xb + mov r1, #0x2c + bl sub_02016998 + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x2c + blx sub_020DF4A4 + str r5, [r4, #0x0] + ldr r0, [sp, #0x0] + add r1, r4, #0x4 + strh r0, [r4, #0x28] + add r0, r5, #0x0 + bl sub_0205CE80 + mov r5, #0x0 + cmp r6, #0x0 + bne _0205DBCA + add r0, r4, #0x0 + blx r7 + add r5, r0, #0x0 + b _0205DBE0 +_0205DBCA: + add r0, r4, #0x4 + blx r6 + add r1, r0, #0x0 + bne _0205DBDA + add r0, r4, #0x0 + blx r7 + add r5, r0, #0x0 + b _0205DBE0 +_0205DBDA: + add r0, r4, #0x0 + bl sub_0205DBF0 +_0205DBE0: + cmp r5, #0x0 + bne _0205DBEA + add r0, r4, #0x0 + bl sub_02016A18 +_0205DBEA: + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205DBF0 +sub_0205DBF0: ; 0x0205DBF0 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + mov r1, #0x18 + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x0 + strh r0, [r4, #0x16] + mov r0, #0x80 + mov r1, #0xb + bl sub_020219F4 + str r0, [r4, #0x10] + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_020238F4 + mov r1, #0xb + str r1, [sp, #0x0] + ldrh r2, [r5, #0x28] + ldr r1, [r4, #0x10] + add r3, r6, #0x0 + bl sub_0206E51C + ldr r0, [r5, #0x0] + ldr r1, _0205DC34 ; =sub_0205D904 + add r2, r4, #0x0 + bl sub_020463CC + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_0205DC34: .word sub_0205D904 + 1 + + thumb_func_start sub_0205DC38 +sub_0205DC38: ; 0x0205DC38 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, #0x2a + ldrb r0, [r0, #0x0] + cmp r0, #0x4 + bhi _0205DCFA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r4, r3, #0 + lsl r4, r6, #0 + lsl r4, r4, #0x1 + lsl r2, r0, #0x2 + ldr r0, [r5, #0x34] + bl sub_02058780 + mov r0, #0x0 + bl sub_021D7CA4 + mov r0, #0x1 + add r4, #0x2a + strb r0, [r4, #0x0] + b _0205DCFA +_0205DC7C: + .byte 0xB0, 0xF7, 0x44, 0xFB + .byte 0x00, 0x28, 0x3A, 0xD0, 0x21, 0x6A, 0x28, 0x1C, 0x88, 0x47, 0x60, 0x62, 0x02, 0x20, 0x2A, 0x34 + .byte 0x20, 0x70, 0x32, 0xE0, 0x28, 0x1C, 0xE8, 0xF7, 0xF1, 0xFB, 0x00, 0x28, 0x2D, 0xD1, 0x60, 0x6A + .byte 0x00, 0x28, 0x08, 0xD0, 0x22, 0x6A, 0x16, 0x49, 0x8A, 0x42, 0x02, 0xD1, 0x2A, 0xF0, 0xB2, 0xF8 + .byte 0x01, 0xE0, 0xB8, 0xF7, 0xB1, 0xFE, 0x28, 0x1C, 0xE8, 0xF7, 0xF0, 0xFB, 0x03, 0x20, 0x2A, 0x34 + .byte 0x20, 0x70, 0x1A, 0xE0, 0x28, 0x1C, 0xE8, 0xF7, 0xED, 0xFB, 0x00, 0x28, 0x15, 0xD0, 0x68, 0x6B + .byte 0xFA, 0xF7, 0x56, 0xFD, 0x01, 0x20, 0x79, 0xF1, 0xE5, 0xFF, 0x04, 0x20, 0x2A, 0x34, 0x20, 0x70 + .byte 0x0B, 0xE0, 0xB0, 0xF7, 0x11, 0xFB, 0x00, 0x28, 0x07, 0xD0, 0x68, 0x6B, 0xFA, 0xF7, 0x60, 0xFD + .byte 0x20, 0x1C, 0xB8, 0xF7, 0x91, 0xFE, 0x01, 0x20, 0x38, 0xBD +_0205DCFA: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0205DD00: + .byte 0x69, 0xD5, 0x05, 0x02 + + thumb_func_start sub_0205DD04 +sub_0205DD04: ; 0x0205DD04 + add r2, r0, #0x0 + str r1, [r2, #0x20] + ldr r3, _0205DD10 ; =sub_020463CC + ldr r0, [r2, #0x0] + ldr r1, _0205DD14 ; =sub_0205DC38 + bx r3 + .balign 4 +_0205DD10: .word sub_020463CC + 1 +_0205DD14: .word sub_0205DC38 + 1 + + thumb_func_start sub_0205DD18 +sub_0205DD18: ; 0x0205DD18 + push {r4, lr} + mov r1, #0xd4 + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x1 + lsl r0, r0, #0x10 + add r3, r4, #0x0 + lsr r1, r0, #0x1 + add r2, r0, #0x0 + add r3, #0xbc + bl sub_0201B7DC + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205DD38 +sub_0205DD38: ; 0x0205DD38 + ldr r3, _0205DD3C ; =sub_02016A18 + bx r3 + .balign 4 +_0205DD3C: .word sub_02016A18 + 1 + + thumb_func_start sub_0205DD40 +sub_0205DD40: ; 0x0205DD40 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + str r1, [r4, #0x4] + str r1, [r4, #0x0] + str r1, [r4, #0x8] + str r1, [r4, #0xc] + str r1, [r4, #0x10] + add r0, #0xd0 + strb r1, [r0, #0x0] + mov r0, #0x1 + str r0, [r4, #0x14] + add r0, r4, #0x0 + add r0, #0x1c + mov r2, #0xa0 + str r1, [r4, #0x18] + blx sub_020CE34C + mov r3, #0x0 + add r2, r3, #0x0 + mov r0, #0x28 +_0205DD6A: + add r1, r3, #0x0 + mul r1, r0 + add r1, r4, r1 + str r2, [r1, #0x28] + add r1, r3, #0x1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0x4 + blo _0205DD6A + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205DD80 +sub_0205DD80: ; 0x0205DD80 + push {r4-r7, lr} + sub sp, #0x2c + str r1, [sp, #0x10] + ldr r1, _0205DECC ; =0x020F7374 + str r2, [sp, #0x14] + ldrb r2, [r1, #0x4] + str r0, [sp, #0xc] + add r0, sp, #0x28 + strb r2, [r0, #0x0] + ldrb r2, [r1, #0x5] + str r3, [sp, #0x18] + strb r2, [r0, #0x1] + ldrb r2, [r1, #0x6] + ldrb r1, [r1, #0x7] + strb r2, [r0, #0x2] + strb r1, [r0, #0x3] + ldr r0, [sp, #0xc] + ldr r0, [r0, #0x38] + bl sub_02055360 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + mov r5, #0x0 + str r0, [sp, #0x24] + add r0, #0x1c + str r5, [sp, #0x20] + str r0, [sp, #0x24] +_0205DDB6: + add r0, sp, #0x28 + ldrb r4, [r0, r5] + cmp r4, #0x0 + bne _0205DDC2 + bl sub_02020C2C +_0205DDC2: + cmp r4, #0x1 + bhi _0205DDCA + mov r6, #0x0 + b _0205DDF2 +_0205DDCA: + bl sub_0201B9EC + add r6, r0, #0x0 + ldr r0, _0205DED0 ; =0x0000FFFF + add r1, r4, #0x0 + blx sub_020EBC80 + add r1, r0, #0x0 + add r1, r1, #0x1 + lsl r1, r1, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r6, r4 + blo _0205DDF2 + bl sub_02020C2C +_0205DDF2: + lsl r1, r5, #0x1 + mov r0, #0x9 + sub r0, r0, r1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + lsl r0, r6, #0x18 + lsr r6, r0, #0x18 + add r0, r6, #0x0 + add r1, r4, #0x0 + blx sub_020EBC80 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bne _0205DE1C + add r0, r6, #0x0 + add r1, r4, #0x0 + blx sub_020EBC80 + add r1, r5, r1 + add r0, r5, #0x0 + b _0205DE5C +_0205DE1C: + cmp r0, #0x1 + bne _0205DE30 + add r0, r6, #0x0 + add r1, r4, #0x0 + blx sub_020EBC80 + add r0, r5, r4 + add r1, r5, r1 + sub r0, r0, #0x1 + b _0205DE5C +_0205DE30: + lsl r7, r4, #0x1 + cmp r6, r7 + bge _0205DE3A + bl sub_02020C2C +_0205DE3A: + sub r0, r6, r7 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + lsr r3, r1, #0x1f + lsl r2, r1, #0x1f + lsr r0, r1, #0x1 + add r0, r5, r0 + sub r2, r2, r3 + mov r1, #0x1f + ror r2, r1 + add r0, r0, #0x1 + add r1, r3, r2 + bne _0205DE58 + add r1, r5, #0x0 + b _0205DE5C +_0205DE58: + add r1, r5, r4 + sub r1, r1, #0x1 +_0205DE5C: + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r0, #0x18 + str r1, [sp, #0x0] + lsr r0, r0, #0x18 + str r0, [sp, #0x4] + mov r0, #0x28 + add r1, r5, #0x0 + mul r1, r0 + ldr r0, [sp, #0x24] + ldr r2, [sp, #0x10] + add r0, r0, r1 + str r0, [sp, #0x8] + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0xc] + ldr r1, [r1, #0x4] + ldr r3, [sp, #0x14] + bl sub_0205E12C + cmp r0, #0x0 + beq _0205DE90 + ldr r0, [sp, #0x20] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x20] +_0205DE90: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x4 + blo _0205DDB6 + ldr r0, [sp, #0x20] + cmp r0, #0x0 + bne _0205DEBE + ldr r0, [sp, #0x18] + bl sub_0205DD40 + ldr r0, [sp, #0xc] + add r1, r0, #0x0 + ldr r1, [r1, #0x1c] + ldr r1, [r1, #0x0] + bl sub_0204AB58 + add r1, r0, #0x0 + ldr r0, [sp, #0xc] + mov r2, #0x1 + bl sub_0204ABDC + b _0205DEC4 +_0205DEBE: + ldr r0, [sp, #0x18] + mov r1, #0x1 + str r1, [r0, #0x10] +_0205DEC4: + ldr r0, [sp, #0x18] + ldr r0, [r0, #0x10] + add sp, #0x2c + pop {r4-r7, pc} + .balign 4 +_0205DECC: .word 0x020F7374 +_0205DED0: .word 0x0000FFFF + + thumb_func_start sub_0205DED4 +sub_0205DED4: ; 0x0205DED4 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + add r6, r2, #0x0 + mov r4, #0x0 +_0205DEE0: + mov r0, #0x28 + mul r0, r4 + add r5, r6, r0 + ldr r0, [r5, #0x28] + cmp r0, #0x0 + beq _0205DF36 + ldr r1, [sp, #0x4] + add r0, r4, #0x0 + bl sub_0205E2A0 + str r0, [r5, #0x2c] + cmp r0, #0x0 + bne _0205DF24 + bl sub_0201B9EC + mov r1, #0x29 + lsl r1, r1, #0x4 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + cmp r7, #0x64 + blo _0205DF12 + bl sub_02020C2C +_0205DF12: + cmp r7, #0x32 + bhs _0205DF1A + mov r0, #0x0 + b _0205DF1C +_0205DF1A: + mov r0, #0x1 +_0205DF1C: + str r0, [r5, #0x24] + mov r0, #0x0 + str r0, [r5, #0x30] + b _0205DF36 +_0205DF24: + ldr r0, [r6, #0x0] + str r0, [r5, #0x24] + ldr r0, [sp, #0x0] + add r0, #0x90 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl sub_0205E40C + str r0, [r5, #0x30] +_0205DF36: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + blo _0205DEE0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0205DF44 +sub_0205DF44: ; 0x0205DF44 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + mov r6, #0x0 +_0205DF4C: + mov r0, #0x28 + mul r0, r6 + add r4, r7, r0 + ldr r0, [r4, #0x28] + cmp r0, #0x0 + beq _0205DF8C + ldr r0, [r4, #0x30] + ldr r1, [r4, #0x1c] + ldr r2, [r4, #0x20] + cmp r0, #0x0 + beq _0205DF6E + add r0, r5, #0x0 + mov r3, #0x2 + bl sub_0224B818 + str r0, [r4, #0x34] + b _0205DF90 +_0205DF6E: + ldr r0, [r4, #0x24] + cmp r0, #0x0 + bne _0205DF80 + add r0, r5, #0x0 + mov r3, #0x0 + bl sub_0224B818 + str r0, [r4, #0x34] + b _0205DF90 +_0205DF80: + add r0, r5, #0x0 + mov r3, #0x1 + bl sub_0224B818 + str r0, [r4, #0x34] + b _0205DF90 +_0205DF8C: + mov r0, #0x0 + str r0, [r4, #0x34] +_0205DF90: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x4 + blo _0205DF4C + pop {r3-r7, pc} + + thumb_func_start sub_0205DF9C +sub_0205DF9C: ; 0x0205DF9C + push {r3-r7, lr} + mov r4, #0x0 + add r7, r0, #0x0 + add r6, r4, #0x0 +_0205DFA4: + mov r0, #0x28 + mul r0, r6 + add r5, r7, r0 + ldr r0, [r5, #0x34] + cmp r0, #0x0 + beq _0205DFCA + bl sub_0224B86C + cmp r0, #0x0 + beq _0205DFD0 + ldr r0, [r5, #0x34] + bl sub_02064520 + mov r0, #0x0 + str r0, [r5, #0x34] + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + b _0205DFD0 +_0205DFCA: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_0205DFD0: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x4 + blo _0205DFA4 + cmp r4, #0x4 + blo _0205DFE2 + mov r0, #0x1 + pop {r3-r7, pc} +_0205DFE2: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205DFE8 +sub_0205DFE8: ; 0x0205DFE8 + push {r3-r7, lr} + sub sp, #0x8 + ldr r7, [sp, #0x24] + add r6, r0, #0x0 + mov r12, r1 + ldr r0, [sp, #0x28] + mov r1, #0x0 + add r4, r3, #0x0 + str r1, [r7, #0x0] + str r2, [sp, #0x0] + str r1, [r0, #0x0] + str r0, [sp, #0x28] + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r2, r12 + add r3, sp, #0x4 + ldr r5, [sp, #0x20] + bl sub_0205E1B8 + cmp r0, #0x0 + bne _0205E018 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0205E018: + mov r0, #0x1 + str r0, [r4, #0x18] + add r0, sp, #0x4 + ldrb r1, [r0, #0x0] + mov r0, #0x28 + mul r0, r1 + add r0, r4, r0 + ldr r1, [r0, #0x2c] + ldr r6, [r0, #0x24] + ldr r0, [r4, #0x14] + cmp r0, #0x0 + bne _0205E062 + cmp r1, #0x0 + beq _0205E05E + add r0, r4, #0x4 + bl sub_0205E4D8 + str r6, [r5, #0x0] + mov r0, #0x1 + str r0, [r7, #0x0] + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl sub_0205E1F0 + add r0, sp, #0x4 + ldrb r1, [r0, #0x0] + mov r0, #0x28 + mul r0, r1 + add r0, r4, r0 + ldr r1, [r0, #0x30] + ldr r0, [sp, #0x28] + add sp, #0x8 + str r1, [r0, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} +_0205E05E: + str r6, [r5, #0x0] + b _0205E074 +_0205E062: + str r6, [r5, #0x0] + mov r0, #0x0 + str r0, [r4, #0x14] + ldr r0, [sp, #0x0] + bl sub_0205E258 + add r1, r4, #0x0 + add r1, #0xd0 + strb r0, [r1, #0x0] +_0205E074: + ldr r0, [r5, #0x0] + str r0, [r4, #0x0] + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205E080 +sub_0205E080: ; 0x0205E080 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x0 + bne _0205E090 + bl sub_02020C2C +_0205E090: + str r4, [r5, #0x8] + str r6, [r5, #0xc] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0205E098 +sub_0205E098: ; 0x0205E098 + ldr r3, [r0, #0x8] + str r3, [r1, #0x0] + ldr r0, [r0, #0xc] + str r0, [r2, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0205E0A4 +sub_0205E0A4: ; 0x0205E0A4 + ldr r0, [r0, #0x18] + bx lr + + thumb_func_start sub_0205E0A8 +sub_0205E0A8: ; 0x0205E0A8 + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x10] + cmp r0, #0x0 + beq _0205E126 + ldr r0, [r7, #0x10] + cmp r0, #0x0 + bne _0205E126 + mov r6, #0x0 + add r5, r6, #0x0 +_0205E0C0: + add r0, r7, #0x0 + add r0, #0x90 + ldr r1, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x1c + add r4, r0, r5 + add r0, r4, #0x0 + add r0, #0x1c + add r1, #0xbc + bl sub_0201B76C + ldr r1, [r4, #0xc] + cmp r1, #0x0 + beq _0205E0E4 + cmp r0, #0x0 + bne _0205E0E4 + mov r0, #0x0 + str r0, [r4, #0xc] +_0205E0E4: + add r6, r6, #0x1 + add r5, #0x28 + cmp r6, #0x4 + blt _0205E0C0 + add r0, r7, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + mov r2, #0x0 + add r3, r0, #0x0 + add r4, r2, #0x0 + add r3, #0x1c +_0205E0FA: + ldr r1, [r3, #0xc] + cmp r1, #0x0 + bne _0205E102 + add r2, r2, #0x1 +_0205E102: + add r4, r4, #0x1 + add r3, #0x28 + cmp r4, #0x4 + blt _0205E0FA + cmp r2, #0x4 + bne _0205E126 + bl sub_0205DD40 + ldr r1, [r7, #0x1c] + add r0, r7, #0x0 + ldr r1, [r1, #0x0] + bl sub_0204AB58 + add r1, r0, #0x0 + add r0, r7, #0x0 + mov r2, #0x1 + bl sub_0204ABDC +_0205E126: + pop {r3-r7, pc} + + thumb_func_start sub_0205E128 +sub_0205E128: ; 0x0205E128 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start sub_0205E12C +sub_0205E12C: ; 0x0205E12C + push {r4-r7, lr} + sub sp, #0xc + str r1, [sp, #0x4] + add r1, sp, #0x10 + sub r4, r2, #0x4 + ldrb r2, [r1, #0x10] + ldrb r1, [r1, #0x14] + ldr r5, [sp, #0x28] + add r4, r4, r2 + sub r2, r3, #0x4 + add r6, r2, r1 + str r4, [r5, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + add r7, r0, #0x0 + str r6, [r5, #0x4] + bl sub_0204A6E0 + bl sub_0205478C + cmp r0, #0x0 + beq _0205E1AE + lsl r0, r4, #0x10 + str r0, [r5, #0x1c] + lsl r0, r6, #0x10 + str r0, [r5, #0x24] + add r0, sp, #0x8 + str r0, [sp, #0x0] + ldr r2, [r5, #0x1c] + ldr r3, [r5, #0x24] + add r0, r7, #0x0 + mov r1, #0x0 + bl sub_0204A708 + ldr r1, [sp, #0x4] + str r0, [r5, #0x20] + cmp r1, r0 + beq _0205E180 + mov r0, #0x0 + add sp, #0xc + str r0, [r5, #0xc] + pop {r4-r7, pc} +_0205E180: + asr r1, r4, #0x4 + asr r2, r6, #0x4 + lsr r1, r1, #0x1b + lsr r2, r2, #0x1b + add r1, r4, r1 + add r2, r6, r2 + ldr r0, [r7, #0x28] + asr r1, r1, #0x5 + asr r2, r2, #0x5 + bl sub_0203451C + ldr r1, [r7, #0x1c] + ldr r1, [r1, #0x0] + cmp r1, r0 + beq _0205E1A6 + mov r0, #0x0 + add sp, #0xc + str r0, [r5, #0xc] + pop {r4-r7, pc} +_0205E1A6: + mov r0, #0x1 + add sp, #0xc + str r0, [r5, #0xc] + pop {r4-r7, pc} +_0205E1AE: + mov r0, #0x0 + str r0, [r5, #0xc] + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0205E1B8 +sub_0205E1B8: ; 0x0205E1B8 + push {r4-r7} + mov r5, #0x0 + mov r6, #0x28 +_0205E1BE: + add r4, r5, #0x0 + mul r4, r6 + add r4, r0, r4 + ldr r7, [r4, #0x28] + cmp r7, #0x0 + beq _0205E1DE + ldr r7, [r4, #0x1c] + cmp r1, r7 + bne _0205E1DE + ldr r4, [r4, #0x20] + cmp r2, r4 + bne _0205E1DE + strb r5, [r3, #0x0] + mov r0, #0x1 + pop {r4-r7} + bx lr +_0205E1DE: + add r4, r5, #0x1 + lsl r4, r4, #0x18 + lsr r5, r4, #0x18 + cmp r5, #0x4 + blo _0205E1BE + mov r0, #0x0 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_0205E1F0 +sub_0205E1F0: ; 0x0205E1F0 + push {r4-r6, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_0202A9B0 + bl sub_0202A9AC + add r3, r5, #0x0 + add r3, #0xd0 + ldrb r3, [r3, #0x0] + add r4, r0, #0x0 + add r1, r4, #0x2 + lsl r6, r3, #0x2 + ldrh r3, [r1, r6] + ldr r2, [r5, #0x4] + cmp r3, r2 + bge _0205E256 + strh r2, [r1, r6] + add r1, r5, #0x0 + add r1, #0xd0 + ldrb r1, [r1, #0x0] + ldr r2, [r5, #0x8] + lsl r1, r1, #0x2 + strh r2, [r4, r1] + bl sub_02245844 + add r0, r5, #0x0 + add r0, #0xd0 + ldrb r0, [r0, #0x0] + ldr r2, [r5, #0x4] + lsl r0, r0, #0x2 + add r0, r4, r0 + ldrh r0, [r0, #0x2] + cmp r0, r2 + bgt _0205E256 + mov r1, #0x0 + mov r3, #0x2 +_0205E23A: + sub r0, r3, r1 + lsl r6, r0, #0x2 + add r6, r4, r6 + ldrh r6, [r6, #0x2] + cmp r2, r6 + bne _0205E24C + add r5, #0xd0 + strb r0, [r5, #0x0] + pop {r4-r6, pc} +_0205E24C: + add r1, r1, #0x1 + cmp r1, #0x3 + blt _0205E23A + bl sub_02020C2C +_0205E256: + pop {r4-r6, pc} + + thumb_func_start sub_0205E258 +sub_0205E258: ; 0x0205E258 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_0202A9B0 + bl sub_0202A9AC + mov r2, #0x0 +_0205E266: + lsl r1, r2, #0x2 + ldrh r1, [r0, r1] + cmp r1, #0x0 + bne _0205E272 + add r0, r2, #0x0 + pop {r3, pc} +_0205E272: + add r1, r2, #0x1 + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + cmp r2, #0x3 + blo _0205E266 + ldrh r2, [r0, #0x2] + ldrh r1, [r0, #0x6] + cmp r2, r1 + blo _0205E288 + mov r1, #0x1 + b _0205E28A +_0205E288: + mov r1, #0x0 +_0205E28A: + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + lsl r1, r2, #0x2 + add r1, r0, r1 + ldrh r1, [r1, #0x2] + ldrh r0, [r0, #0xa] + cmp r1, r0 + blo _0205E29C + mov r2, #0x2 +_0205E29C: + add r0, r2, #0x0 + pop {r3, pc} + + thumb_func_start sub_0205E2A0 +sub_0205E2A0: ; 0x0205E2A0 + push {r3-r7, lr} + sub sp, #0x8 + ldr r3, _0205E308 ; =0x020F7374 + add r5, r0, #0x0 + ldrb r4, [r3, #0x0] + add r2, sp, #0x0 + add r0, sp, #0x4 + strb r4, [r2, #0x4] + ldrb r4, [r3, #0x1] + add r7, sp, #0x0 + cmp r1, #0x1 + strb r4, [r2, #0x5] + ldrb r4, [r3, #0x2] + strb r4, [r2, #0x6] + ldrb r4, [r3, #0x3] + strb r4, [r2, #0x7] + ldrb r4, [r3, #0x8] + strb r4, [r2, #0x0] + ldrb r4, [r3, #0x9] + strb r4, [r2, #0x1] + ldrb r4, [r3, #0xa] + strb r4, [r2, #0x2] + ldrb r3, [r3, #0xb] + strb r3, [r2, #0x3] + bne _0205E2D6 + add r6, r0, #0x0 + b _0205E2DC +_0205E2D6: + cmp r1, #0x4 + bne _0205E2DC + add r6, r7, #0x0 +_0205E2DC: + bl sub_0201B9EC + mov r1, #0x29 + lsl r1, r1, #0x4 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x64 + blo _0205E2F4 + bl sub_02020C2C +_0205E2F4: + ldrb r0, [r6, r5] + cmp r4, r0 + bge _0205E300 + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_0205E300: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0205E308: .word 0x020F7374 + + thumb_func_start sub_0205E30C +sub_0205E30C: ; 0x0205E30C + push {r3-r7, lr} + add r7, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + ldr r1, [r5, #0x0] + cmp r1, #0x4 + bhi _0205E3FC + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0 + lsl r6, r1, #0x2 + lsl r2, r3, #0x2 + lsl r2, r7, #0x2 + lsl r4, r5, #0x2 + ldr r0, [r4, #0x34] + bl sub_02058780 + ldr r0, [r4, #0xc] + bl sub_0202A9B0 + bl sub_0202AB40 + add r6, r0, #0x0 + ldrb r0, [r6, #0x0] + cmp r0, #0x32 + bhs _0205E374 + mov r2, #0x0 + ldr r1, _0205E400 ; =0x0000230A + add r0, r7, #0x0 + add r3, r2, #0x0 + bl sub_02038CD8 + add r0, r4, #0x0 + mov r1, #0x29 + bl sub_02039438 + ldrb r2, [r6, #0x0] + mov r1, #0x32 + sub r1, r1, r2 + strh r1, [r0, #0x0] + mov r0, #0x4 + str r0, [r5, #0x0] + b _0205E3FC +_0205E374: + mov r0, #0x0 + strb r0, [r6, #0x0] + ldr r0, [r4, #0x38] + bl sub_02055320 + add r6, r0, #0x0 + ldr r0, [r4, #0x38] + bl sub_0205532C + add r3, r4, #0x0 + add r3, #0x90 + add r2, r0, #0x0 + ldr r3, [r3, #0x0] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_0205DD80 + add r0, r4, #0x0 + add r0, #0x90 + ldr r2, [r0, #0x0] + ldr r0, [r2, #0x10] + cmp r0, #0x0 + beq _0205E3BA + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0205DED4 + add r0, r4, #0x0 + add r4, #0x90 + ldr r1, [r4, #0x0] + bl sub_0205DF44 + mov r0, #0x1 + str r0, [r5, #0x0] + b _0205E3FC +_0205E3BA: + mov r0, #0x3 + str r0, [r5, #0x0] + b _0205E3FC +_0205E3C0: + .byte 0x10, 0x48, 0xA6, 0xF7, 0x2B, 0xFF, 0x02, 0x20, 0x28, 0x60, 0x17, 0xE0, 0x90, 0x34, 0x20, 0x68 + .byte 0xFF, 0xF7, 0xE4, 0xFD, 0x00, 0x28, 0x11, 0xD0, 0x04, 0x20, 0x28, 0x60, 0x0E, 0xE0, 0xB8, 0xF7 + .byte 0x1B, 0xFB, 0x60, 0x6B, 0xFA, 0xF7, 0xE4, 0xF9, 0x01, 0x20, 0xF8, 0xBD, 0x00, 0x22, 0x06, 0x49 + .byte 0x38, 0x1C, 0x13, 0x1C, 0xDA, 0xF7, 0x70, 0xFC, 0x04, 0x20, 0x28, 0x60 +_0205E3FC: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0205E400: .word 0x0000230A +_0205E404: + .byte 0x7E, 0x04, 0x00, 0x00, 0x0B, 0x23, 0x00, 0x00 + + thumb_func_start sub_0205E40C +sub_0205E40C: ; 0x0205E40C + push {r3-r5, lr} + cmp r0, #0x0 + bne _0205E416 + mov r0, #0x0 + pop {r3-r5, pc} +_0205E416: + add r2, r0, #0x0 + mov r1, #0xc8 + ldr r0, _0205E478 ; =0x00002008 + mul r2, r1 + sub r5, r0, r2 + cmp r5, #0xc8 + bge _0205E426 + add r5, r1, #0x0 +_0205E426: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bne _0205E430 + bl sub_02020C2C +_0205E430: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x1 + bhi _0205E43C + mov r4, #0x0 + b _0205E46A +_0205E43C: + bl sub_0201B9EC + add r4, r0, #0x0 + lsl r1, r5, #0x10 + ldr r0, _0205E47C ; =0x0000FFFF + lsr r1, r1, #0x10 + blx sub_020EBC80 + add r1, r0, #0x0 + add r1, r1, #0x1 + lsl r1, r1, #0x10 + add r0, r4, #0x0 + lsr r1, r1, #0x10 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + cmp r4, r0 + blo _0205E46A + bl sub_02020C2C +_0205E46A: + cmp r4, #0x0 + bne _0205E472 + mov r0, #0x1 + pop {r3-r5, pc} +_0205E472: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0205E478: .word 0x00002008 +_0205E47C: .word 0x0000FFFF + + thumb_func_start sub_0205E480 +sub_0205E480: ; 0x0205E480 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + add r0, r0, #0x4 + bl sub_0205E4D8 + add r0, r4, #0x0 + add r4, #0x90 + ldr r1, [r4, #0x0] + bl sub_0205E1F0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205E49C +sub_0205E49C: ; 0x0205E49C + add r0, #0x90 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_0205E4A4 +sub_0205E4A4: ; 0x0205E4A4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206F158 + ldr r1, _0205E4D4 ; =0x000001AF + mov r2, #0x1 + mov r3, #0x4 + bl sub_0206EE50 + cmp r0, #0x1 + bne _0205E4D0 + ldr r0, [r4, #0xc] + bl sub_0202A9B0 + bl sub_0202AB40 + ldrb r1, [r0, #0x0] + cmp r1, #0x32 + bhs _0205E4D0 + add r1, r1, #0x1 + strb r1, [r0, #0x0] +_0205E4D0: + pop {r4, pc} + nop +_0205E4D4: .word 0x000001AF + + thumb_func_start sub_0205E4D8 +sub_0205E4D8: ; 0x0205E4D8 + ldr r1, [r0, #0x0] + add r2, r1, #0x1 + ldr r1, _0205E4E8 ; =0x000003E7 + str r2, [r0, #0x0] + cmp r2, r1 + ble _0205E4E6 + str r1, [r0, #0x0] +_0205E4E6: + bx lr + .balign 4 +_0205E4E8: .word 0x000003E7 + + thumb_func_start sub_0205E4EC +sub_0205E4EC: ; 0x0205E4EC + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x8 + bl sub_0205858C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205E5B4 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02058848 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020588B8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205E518 +sub_0205E518: ; 0x0205E518 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_020585B0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205E5B4 + cmp r0, #0x0 + beq _0205E548 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_020588B8 + ldr r6, _0205E54C ; =0x020F7388 +_0205E538: + ldrb r2, [r4, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + ldr r2, [r6, r2] + blx r2 + cmp r0, #0x1 + beq _0205E538 +_0205E548: + pop {r4-r6, pc} + nop +_0205E54C: .word 0x020F7388 + + thumb_func_start sub_0205E550 +sub_0205E550: ; 0x0205E550 + bx lr + .balign 4 + + thumb_func_start sub_0205E554 +sub_0205E554: ; 0x0205E554 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02058848 + add r0, r5, #0x0 + bl sub_0205886C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205E608 + cmp r0, #0x1 + bne _0205E592 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205E63C + add r0, r5, #0x0 + bl sub_0205E698 + cmp r0, #0x1 + bne _0205E592 + add r0, r5, #0x0 + bl sub_0205883C + ldrb r0, [r4, #0x0] + add r0, r0, #0x1 + strb r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} +_0205E592: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205E598 +sub_0205E598: ; 0x0205E598 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0205B080 + cmp r0, #0x1 + bne _0205E5B0 + add r0, r5, #0x0 + bl sub_02058848 + mov r0, #0x0 + strb r0, [r4, #0x0] +_0205E5B0: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205E5B4 +sub_0205E5B4: ; 0x0205E5B4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02058578 + bl sub_020552A4 + cmp r0, #0x0 + bne _0205E5CC + mov r0, #0x0 + strb r0, [r4, #0x1] + pop {r3-r5, pc} +_0205E5CC: + ldrb r0, [r4, #0x1] + cmp r0, #0x0 + bne _0205E5DA + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205E5E0 +_0205E5DA: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205E5E0 +sub_0205E5E0: ; 0x0205E5E0 + push {r3-r5, lr} + add r5, r1, #0x0 + bl sub_02058738 + bl sub_02055698 + mov r1, #0x1 + add r4, r0, #0x0 + strb r1, [r5, #0x1] + bl sub_02055320 + strh r0, [r5, #0x2] + add r0, r4, #0x0 + bl sub_0205532C + strh r0, [r5, #0x4] + mov r0, #0xff + strh r0, [r5, #0x6] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205E608 +sub_0205E608: ; 0x0205E608 + push {r4-r6, lr} + add r5, r1, #0x0 + bl sub_02058738 + bl sub_02055698 + add r6, r0, #0x0 + beq _0205E638 + bl sub_02055320 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0205532C + mov r1, #0x2 + ldrsh r1, [r5, r1] + cmp r4, r1 + bne _0205E634 + mov r1, #0x4 + ldrsh r1, [r5, r1] + cmp r0, r1 + beq _0205E638 +_0205E634: + mov r0, #0x1 + pop {r4-r6, pc} +_0205E638: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0205E63C +sub_0205E63C: ; 0x0205E63C + push {r3-r5, lr} + add r5, r1, #0x0 + bl sub_02058738 + bl sub_02055698 + add r4, r0, #0x0 + bl sub_02055320 + strh r0, [r5, #0x2] + add r0, r4, #0x0 + bl sub_0205532C + strh r0, [r5, #0x4] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205E65C +sub_0205E65C: ; 0x0205E65C + push {r3, lr} + bl sub_02058738 + bl sub_02055698 + bl sub_02055464 + add r1, r0, #0x0 + sub r1, #0x58 + cmp r1, #0x3 + bhi _0205E694 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + mov r0, #0x10 + pop {r3, pc} +_0205E68A: + .byte 0x11, 0x20, 0x08, 0xBD, 0x12, 0x20 + .byte 0x08, 0xBD, 0x13, 0x20 +_0205E694: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205E698 +sub_0205E698: ; 0x0205E698 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02058738 + bl sub_02055698 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B2C + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02058B4C + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_02055338 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02055344 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + cmp r0, r6 + bne _0205E6D2 + cmp r7, r4 + beq _0205E6FA +_0205E6D2: + add r0, r5, #0x0 + bl sub_0205E65C + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + add r2, r6, #0x0 + add r3, r4, #0x0 + bl sub_02059E80 + ldr r1, [sp, #0x4] + bl sub_0205AFDC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205AE0C + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_0205E6FA: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0205E700 +sub_0205E700: ; 0x0205E700 + push {r3-r5, lr} + mov r1, #0xc + add r5, r0, #0x0 + bl sub_0205858C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205E854 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r5, #0x0 + bl sub_02058848 + mov r0, #0x0 + strb r0, [r4, #0x1] + pop {r3-r5, pc} + + thumb_func_start sub_0205E728 +sub_0205E728: ; 0x0205E728 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_020585B0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205E854 + cmp r0, #0x0 + beq _0205E750 + ldr r6, _0205E754 ; =0x020F7390 +_0205E740: + ldrb r2, [r4, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + ldr r2, [r6, r2] + blx r2 + cmp r0, #0x1 + beq _0205E740 +_0205E750: + pop {r4-r6, pc} + nop +_0205E754: .word 0x020F7390 + + thumb_func_start sub_0205E758 +sub_0205E758: ; 0x0205E758 + bx lr + .balign 4 + + thumb_func_start sub_0205E75C +sub_0205E75C: ; 0x0205E75C + push {r3, lr} + bl sub_020585B0 + mov r1, #0x0 + strb r1, [r0, #0x1] + pop {r3, pc} + + thumb_func_start sub_0205E768 +sub_0205E768: ; 0x0205E768 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02058848 + add r0, r5, #0x0 + bl sub_0205886C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205E8F4 + cmp r0, #0x1 + bne _0205E7A0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0205E940 + cmp r0, #0x1 + bne _0205E7A0 + add r0, r5, #0x0 + bl sub_0205883C + ldrb r0, [r4, #0x0] + add r0, r0, #0x1 + strb r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} +_0205E7A0: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205E7A4 +sub_0205E7A4: ; 0x0205E7A4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0205B080 + cmp r0, #0x0 + bne _0205E7B6 + mov r0, #0x0 + pop {r3-r5, pc} +_0205E7B6: + add r0, r5, #0x0 + bl sub_02058848 + mov r0, #0x0 + strb r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205E7C4 +sub_0205E7C4: ; 0x0205E7C4 + push {r4-r7, lr} + sub sp, #0xc + mov r1, #0x0 + add r4, r0, #0x0 + str r1, [sp, #0x8] + bl sub_02058488 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02058450 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205C9E8 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02058578 + ldr r1, [sp, #0x0] + add r7, r0, #0x0 + cmp r1, #0x8 + bhi _0205E84C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0x1 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + add r1, sp, #0x4 + add r2, sp, #0x8 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x1 + bne _0205E84C +_0205E81E: + ldr r0, [sp, #0x4] + cmp r4, r0 + beq _0205E83C + bl sub_02058450 + cmp r6, r0 + bne _0205E83C + ldr r0, [sp, #0x4] + bl sub_0205C9E8 + cmp r5, r0 + bne _0205E83C + ldr r0, [sp, #0x4] + add sp, #0xc + pop {r4-r7, pc} +_0205E83C: + add r0, r7, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x8 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x1 + beq _0205E81E +_0205E84C: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0205E854 +sub_0205E854: ; 0x0205E854 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + str r1, [sp, #0x0] + bl sub_02058578 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + bl sub_02058450 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205C9E8 + add r6, r0, #0x0 + add r0, r4, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x8 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x1 + bne _0205E8C6 +_0205E886: + ldr r0, [sp, #0x4] + cmp r5, r0 + beq _0205E8B6 + bl sub_02058450 + cmp r7, r0 + bne _0205E8B6 + ldr r0, [sp, #0x4] + bl sub_0205C9E8 + cmp r6, r0 + bne _0205E8B6 + ldr r0, [sp, #0x0] + ldrb r0, [r0, #0x1] + cmp r0, #0x0 + bne _0205E8B0 + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, r5, #0x0 + bl sub_0205E8D0 +_0205E8B0: + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0205E8B6: + add r0, r4, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x8 + mov r3, #0x1 + bl sub_020580F4 + cmp r0, #0x1 + beq _0205E886 +_0205E8C6: + ldr r1, [sp, #0x0] + mov r0, #0x0 + strb r0, [r1, #0x1] + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0205E8D0 +sub_0205E8D0: ; 0x0205E8D0 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r0, #0x1 + add r4, r2, #0x0 + strb r0, [r5, #0x1] + add r0, r4, #0x0 + bl sub_02058B2C + strh r0, [r5, #0x2] + add r0, r4, #0x0 + bl sub_02058B4C + strh r0, [r5, #0x4] + mov r0, #0xff + strh r0, [r5, #0x6] + str r4, [r5, #0x8] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205E8F4 +sub_0205E8F4: ; 0x0205E8F4 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r5, [r1, #0x8] + bl sub_02058B2C + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02058B4C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B14 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_02058B24 + cmp r4, r7 + bne _0205E91E + cmp r6, r0 + beq _0205E93A +_0205E91E: + add r0, r5, #0x0 + bl sub_02058854 + cmp r0, #0x1 + beq _0205E936 + mov r1, #0x61 + add r0, r5, #0x0 + lsl r1, r1, #0x6 + bl sub_02058424 + cmp r0, #0x0 + bne _0205E93A +_0205E936: + mov r0, #0x1 + pop {r3-r7, pc} +_0205E93A: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0205E940 +sub_0205E940: ; 0x0205E940 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + add r5, r1, #0x0 + bl sub_02058B2C + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02058B4C + add r6, r0, #0x0 + ldr r0, [r5, #0x8] + bl sub_02058B2C + str r0, [sp, #0x8] + ldr r0, [r5, #0x8] + bl sub_02058B4C + add r7, r0, #0x0 + ldr r0, [r5, #0x8] + bl sub_02058B14 + str r0, [sp, #0x4] + ldr r0, [r5, #0x8] + bl sub_02058B24 + add r3, r0, #0x0 + ldr r0, [sp, #0x8] + cmp r4, r0 + bne _0205E986 + cmp r6, r7 + bne _0205E986 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0205E986: + ldr r2, [sp, #0x4] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_02059E80 + add r5, r0, #0x0 + bl sub_02059BF4 + add r4, r4, r0 + add r0, r5, #0x0 + bl sub_02059C00 + add r1, r6, r0 + ldr r0, [sp, #0x8] + cmp r4, r0 + bne _0205E9AA + cmp r1, r7 + beq _0205E9C0 +_0205E9AA: + add r0, r5, #0x0 + mov r1, #0xc + bl sub_0205AFDC + add r1, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_0205AE0C + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0205E9C0: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0205E9C8 +sub_0205E9C8: ; 0x0205E9C8 + push {r4-r5, lr} + sub sp, #0xc + add r5, r1, #0x0 + add r4, r0, #0x0 + mov r1, #0x8 + bl sub_0205858C + strb r5, [r0, #0x1] + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02058544 + add r0, r4, #0x0 + bl sub_02058848 + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0x14 + bl sub_02058410 + ldr r5, _0205EA0C ; =0x020F7398 + add r3, sp, #0x0 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + add r1, r2, #0x0 + str r0, [r3, #0x0] + add r0, r4, #0x0 + bl sub_02058B94 + add sp, #0xc + pop {r4-r5, pc} + nop +_0205EA0C: .word 0x020F7398 + + thumb_func_start sub_0205EA10 +sub_0205EA10: ; 0x0205EA10 + ldr r3, _0205EA18 ; =sub_0205E9C8 + mov r1, #0x0 + bx r3 + nop +_0205EA18: .word sub_0205E9C8 + 1 + + thumb_func_start sub_0205EA1C +sub_0205EA1C: ; 0x0205EA1C + ldr r3, _0205EA24 ; =sub_0205E9C8 + mov r1, #0x1 + bx r3 + nop +_0205EA24: .word sub_0205E9C8 + 1 + + thumb_func_start sub_0205EA28 +sub_0205EA28: ; 0x0205EA28 + ldr r3, _0205EA30 ; =sub_0205E9C8 + mov r1, #0x2 + bx r3 + nop +_0205EA30: .word sub_0205E9C8 + 1 + + thumb_func_start sub_0205EA34 +sub_0205EA34: ; 0x0205EA34 + ldr r3, _0205EA3C ; =sub_0205E9C8 + mov r1, #0x3 + bx r3 + nop +_0205EA3C: .word sub_0205E9C8 + 1 + + thumb_func_start sub_0205EA40 +sub_0205EA40: ; 0x0205EA40 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_020585B0 + ldr r6, _0205EA60 ; =0x020F7380 + add r4, r0, #0x0 +_0205EA4C: + ldrb r2, [r4, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + ldr r2, [r6, r2] + blx r2 + cmp r0, #0x1 + beq _0205EA4C + pop {r4-r6, pc} + nop +_0205EA60: .word 0x020F7380 + + thumb_func_start sub_0205EA64 +sub_0205EA64: ; 0x0205EA64 + push {r3, lr} + bl sub_0205EB20 + cmp r0, #0x0 + beq _0205EA72 + bl sub_021E4DE4 +_0205EA72: + pop {r3, pc} + + thumb_func_start sub_0205EA74 +sub_0205EA74: ; 0x0205EA74 + push {r4-r5, lr} + sub sp, #0xc + add r4, r0, #0x0 + bl sub_020585B0 + add r5, r0, #0x0 + mov r1, #0x0 + strb r1, [r5, #0x0] + add r0, r4, #0x0 + bl sub_0205EB14 + ldrb r0, [r5, #0x2] + cmp r0, #0x0 + bne _0205EAA6 + ldr r5, _0205EAAC ; =0x020F73A4 + add r3, sp, #0x0 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + add r1, r2, #0x0 + str r0, [r3, #0x0] + add r0, r4, #0x0 + bl sub_02058B94 +_0205EAA6: + add sp, #0xc + pop {r4-r5, pc} + nop +_0205EAAC: .word 0x020F73A4 + + thumb_func_start sub_0205EAB0 +sub_0205EAB0: ; 0x0205EAB0 + push {r3-r5, lr} + add r4, r1, #0x0 + ldrb r1, [r4, #0x2] + add r5, r0, #0x0 + cmp r1, #0x0 + bne _0205EACA + ldrb r1, [r4, #0x1] + bl sub_0224CECC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205EB14 +_0205EACA: + add r0, r5, #0x0 + bl sub_02058848 + add r0, r5, #0x0 + bl sub_0205886C + ldrb r0, [r4, #0x0] + add r0, r0, #0x1 + strb r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205EAE0 +sub_0205EAE0: ; 0x0205EAE0 + push {r3-r5, lr} + add r4, r1, #0x0 + ldrb r1, [r4, #0x2] + add r5, r0, #0x0 + cmp r1, #0x0 + bne _0205EB0E + bl sub_0205EB20 + cmp r0, #0x0 + bne _0205EB0E + add r0, r5, #0x0 + bl sub_02058934 + cmp r0, #0x1 + bne _0205EB0E + ldrb r1, [r4, #0x1] + add r0, r5, #0x0 + bl sub_0224CECC + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_0205EB14 +_0205EB0E: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205EB14 +sub_0205EB14: ; 0x0205EB14 + push {r4, lr} + add r4, r1, #0x0 + bl sub_020585B0 + str r4, [r0, #0x4] + pop {r4, pc} + + thumb_func_start sub_0205EB20 +sub_0205EB20: ; 0x0205EB20 + push {r3, lr} + bl sub_020585B0 + ldr r0, [r0, #0x4] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205EB2C +sub_0205EB2C: ; 0x0205EB2C + push {r3, lr} + bl sub_020585B0 + mov r1, #0x1 + strb r1, [r0, #0x2] + pop {r3, pc} + + thumb_func_start sub_0205EB38 +sub_0205EB38: ; 0x0205EB38 + push {r4-r7, lr} + sub sp, #0x24 + ldr r3, _0205EBE0 ; =0x020F73B0 + add r2, sp, #0xc + add r4, r0, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r1, #0x5b + add r0, r4, #0x0 + lsl r1, r1, #0x2 + bl sub_02016998 + mov r2, #0x5b + add r7, r0, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x2 + blx sub_020CE34C + add r0, r7, #0x0 + add r1, sp, #0xc + mov r2, #0x2 + mov r3, #0xb + bl sub_021D959C + mov r0, #0x2 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, _0205EBE4 ; =0x000034D8 + mov r2, #0x0 + str r0, [sp, #0x8] + add r0, r7, #0x0 + mov r1, #0x55 + add r3, r2, #0x0 + bl sub_021D967C + ldr r0, _0205EBE4 ; =0x000034D8 + mov r1, #0x55 + str r0, [sp, #0x0] + add r0, r7, #0x0 + mov r2, #0x2 + mov r3, #0x0 + bl sub_021D96F4 + ldr r0, _0205EBE4 ; =0x000034D8 + mov r1, #0x55 + str r0, [sp, #0x0] + add r0, r7, #0x0 + mov r2, #0x3 + mov r3, #0x0 + bl sub_021D9708 + mov r2, #0x1 + ldr r0, _0205EBE4 ; =0x000034D8 + str r2, [sp, #0x0] + str r0, [sp, #0x4] + add r0, r7, #0x0 + mov r1, #0x55 + mov r3, #0x0 + bl sub_021D971C + ldr r4, _0205EBE8 ; =0x020F73C8 + mov r6, #0x0 + add r5, r7, #0x0 +_0205EBC0: + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_021D9820 + mov r1, #0x59 + lsl r1, r1, #0x2 + str r0, [r5, r1] + add r6, r6, #0x1 + add r4, #0x34 + add r5, r5, #0x4 + cmp r6, #0x2 + blo _0205EBC0 + add r0, r7, #0x0 + add sp, #0x24 + pop {r4-r7, pc} + nop +_0205EBE0: .word 0x020F73B0 +_0205EBE4: .word 0x000034D8 +_0205EBE8: .word 0x020F73C8 + + thumb_func_start sub_0205EBEC +sub_0205EBEC: ; 0x0205EBEC + push {r3-r7, lr} + add r7, r0, #0x0 + mov r6, #0x59 + mov r4, #0x0 + add r5, r7, #0x0 + lsl r6, r6, #0x2 +_0205EBF8: + ldr r0, [r5, r6] + cmp r0, #0x0 + beq _0205EC02 + bl sub_0200C3DC +_0205EC02: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x2 + blt _0205EBF8 + add r0, r7, #0x0 + bl sub_021D99F8 + add r0, r7, #0x0 + bl sub_02016A18 + pop {r3-r7, pc} + + thumb_func_start sub_0205EC18 +sub_0205EC18: ; 0x0205EC18 + push {r3-r7, lr} + mov r7, #0x1 + mov r6, #0x59 + str r0, [sp, #0x0] + mov r4, #0x0 + add r5, r0, #0x0 + lsl r7, r7, #0xc + lsl r6, r6, #0x2 +_0205EC28: + ldr r0, [r5, r6] + cmp r0, #0x0 + beq _0205EC36 + ldr r0, [r0, #0x0] + add r1, r7, #0x0 + bl sub_020201E4 +_0205EC36: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x2 + blt _0205EC28 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x0] + bl sub_0201FDEC + pop {r3-r7, pc} + + thumb_func_start sub_0205EC48 +sub_0205EC48: ; 0x0205EC48 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0x59 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r4, r1, #0x0 + add r6, r3, #0x0 + bl sub_0200C714 + mov r0, #0x5a + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0200C714 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0205EC6C +sub_0205EC6C: ; 0x0205EC6C + push {r3, lr} + cmp r1, #0x2 + bhs _0205EC82 + lsl r1, r1, #0x2 + add r1, r0, r1 + mov r0, #0x59 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + add r1, r2, #0x0 + bl sub_0200C644 +_0205EC82: + pop {r3, pc} + + thumb_func_start sub_0205EC84 +sub_0205EC84: ; 0x0205EC84 + ldr r3, _0205EC88 ; =sub_020462E4 + bx r3 + .balign 4 +_0205EC88: .word sub_020462E4 + 1 + + thumb_func_start sub_0205EC8C +sub_0205EC8C: ; 0x0205EC8C + ldr r3, _0205EC90 ; =sub_0204630C + bx r3 + .balign 4 +_0205EC90: .word sub_0204630C + 1 + + thumb_func_start sub_0205EC94 +sub_0205EC94: ; 0x0205EC94 + ldr r3, _0205EC98 ; =sub_020462B8 + bx r3 + .balign 4 +_0205EC98: .word sub_020462B8 + 1 + + thumb_func_start sub_0205EC9C +sub_0205EC9C: ; 0x0205EC9C + push {r3, lr} + cmp r1, #0x0 + beq _0205ECB6 + cmp r1, #0x1 + beq _0205ECAC + cmp r1, #0x2 + beq _0205ECC0 + b _0205ECCA +_0205ECAC: + lsl r1, r2, #0x10 + lsr r1, r1, #0x10 + bl sub_0205EC84 + b _0205ECCE +_0205ECB6: + lsl r1, r2, #0x10 + lsr r1, r1, #0x10 + bl sub_0205EC8C + b _0205ECCE +_0205ECC0: + lsl r1, r2, #0x10 + lsr r1, r1, #0x10 + bl sub_0205EC94 + pop {r3, pc} +_0205ECCA: + bl sub_02020C2C +_0205ECCE: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205ECD4 +sub_0205ECD4: ; 0x0205ECD4 + ldr r3, _0205ECDC ; =sub_0205EC84 + mov r1, #0x96 + lsl r1, r1, #0x4 + bx r3 + .balign 4 +_0205ECDC: .word sub_0205EC84 + 1 + + thumb_func_start sub_0205ECE0 +sub_0205ECE0: ; 0x0205ECE0 + ldr r3, _0205ECE8 ; =sub_0205EC94 + mov r1, #0x96 + lsl r1, r1, #0x4 + bx r3 + .balign 4 +_0205ECE8: .word sub_0205EC94 + 1 + + thumb_func_start sub_0205ECEC +sub_0205ECEC: ; 0x0205ECEC + ldr r3, _0205ECF4 ; =sub_0205EC94 + ldr r1, _0205ECF8 ; =0x0000098D + bx r3 + nop +_0205ECF4: .word sub_0205EC94 + 1 +_0205ECF8: .word 0x0000098D + + thumb_func_start sub_0205ECFC +sub_0205ECFC: ; 0x0205ECFC + ldr r3, _0205ED04 ; =sub_0205EC84 + ldr r1, _0205ED08 ; =0x00000964 + bx r3 + nop +_0205ED04: .word sub_0205EC84 + 1 +_0205ED08: .word 0x00000964 + + thumb_func_start sub_0205ED0C +sub_0205ED0C: ; 0x0205ED0C + ldr r3, _0205ED14 ; =sub_0205EC94 + ldr r1, _0205ED18 ; =0x00000964 + bx r3 + nop +_0205ED14: .word sub_0205EC94 + 1 +_0205ED18: .word 0x00000964 + + thumb_func_start sub_0205ED1C +sub_0205ED1C: ; 0x0205ED1C + ldr r3, _0205ED24 ; =sub_0205EC84 + ldr r1, _0205ED28 ; =0x00000961 + bx r3 + nop +_0205ED24: .word sub_0205EC84 + 1 +_0205ED28: .word 0x00000961 + + thumb_func_start sub_0205ED2C +sub_0205ED2C: ; 0x0205ED2C + ldr r3, _0205ED34 ; =sub_0205EC8C + ldr r1, _0205ED38 ; =0x00000961 + bx r3 + nop +_0205ED34: .word sub_0205EC8C + 1 +_0205ED38: .word 0x00000961 + + thumb_func_start sub_0205ED3C +sub_0205ED3C: ; 0x0205ED3C + ldr r3, _0205ED44 ; =sub_0205EC94 + ldr r1, _0205ED48 ; =0x00000961 + bx r3 + nop +_0205ED44: .word sub_0205EC94 + 1 +_0205ED48: .word 0x00000961 + + thumb_func_start sub_0205ED4C +sub_0205ED4C: ; 0x0205ED4C + ldr r3, _0205ED54 ; =sub_0205EC84 + ldr r1, _0205ED58 ; =0x00000965 + bx r3 + nop +_0205ED54: .word sub_0205EC84 + 1 +_0205ED58: .word 0x00000965 + + thumb_func_start sub_0205ED5C +sub_0205ED5C: ; 0x0205ED5C + ldr r3, _0205ED64 ; =sub_0205EC8C + ldr r1, _0205ED68 ; =0x00000965 + bx r3 + nop +_0205ED64: .word sub_0205EC8C + 1 +_0205ED68: .word 0x00000965 + + thumb_func_start sub_0205ED6C +sub_0205ED6C: ; 0x0205ED6C + ldr r3, _0205ED74 ; =sub_0205EC94 + ldr r1, _0205ED78 ; =0x00000965 + bx r3 + nop +_0205ED74: .word sub_0205EC94 + 1 +_0205ED78: .word 0x00000965 + + thumb_func_start sub_0205ED7C +sub_0205ED7C: ; 0x0205ED7C + ldr r3, _0205ED84 ; =sub_0205EC84 + ldr r1, _0205ED88 ; =0x0000096D + bx r3 + nop +_0205ED84: .word sub_0205EC84 + 1 +_0205ED88: .word 0x0000096D + + thumb_func_start sub_0205ED8C +sub_0205ED8C: ; 0x0205ED8C + ldr r3, _0205ED94 ; =sub_0205EC8C + ldr r1, _0205ED98 ; =0x0000096D + bx r3 + nop +_0205ED94: .word sub_0205EC8C + 1 +_0205ED98: .word 0x0000096D + + thumb_func_start sub_0205ED9C +sub_0205ED9C: ; 0x0205ED9C + ldr r3, _0205EDA4 ; =sub_0205EC94 + ldr r1, _0205EDA8 ; =0x0000096D + bx r3 + nop +_0205EDA4: .word sub_0205EC94 + 1 +_0205EDA8: .word 0x0000096D + + thumb_func_start sub_0205EDAC +sub_0205EDAC: ; 0x0205EDAC + ldr r3, _0205EDB4 ; =sub_0205EC84 + ldr r1, _0205EDB8 ; =0x0000096E + bx r3 + nop +_0205EDB4: .word sub_0205EC84 + 1 +_0205EDB8: .word 0x0000096E + + thumb_func_start sub_0205EDBC +sub_0205EDBC: ; 0x0205EDBC + ldr r3, _0205EDC4 ; =sub_0205EC84 + ldr r1, _0205EDC8 ; =0x0000096F + bx r3 + nop +_0205EDC4: .word sub_0205EC84 + 1 +_0205EDC8: .word 0x0000096F + + thumb_func_start sub_0205EDCC +sub_0205EDCC: ; 0x0205EDCC + ldr r3, _0205EDD4 ; =sub_0205EC84 + mov r1, #0x97 + lsl r1, r1, #0x4 + bx r3 + .balign 4 +_0205EDD4: .word sub_0205EC84 + 1 + + thumb_func_start sub_0205EDD8 +sub_0205EDD8: ; 0x0205EDD8 + ldr r3, _0205EDE0 ; =sub_0205EC84 + ldr r1, _0205EDE4 ; =0x00000971 + bx r3 + nop +_0205EDE0: .word sub_0205EC84 + 1 +_0205EDE4: .word 0x00000971 + + thumb_func_start sub_0205EDE8 +sub_0205EDE8: ; 0x0205EDE8 + ldr r3, _0205EDF0 ; =sub_0205EC84 + ldr r1, _0205EDF4 ; =0x00000972 + bx r3 + nop +_0205EDF0: .word sub_0205EC84 + 1 +_0205EDF4: .word 0x00000972 + + thumb_func_start sub_0205EDF8 +sub_0205EDF8: ; 0x0205EDF8 + ldr r3, _0205EE00 ; =sub_0205EC84 + ldr r1, _0205EE04 ; =0x00000973 + bx r3 + nop +_0205EE00: .word sub_0205EC84 + 1 +_0205EE04: .word 0x00000973 + + thumb_func_start sub_0205EE08 +sub_0205EE08: ; 0x0205EE08 + push {r3, lr} + cmp r1, #0x4 + bhi _0205EE4A + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0 + lsl r0, r2, #0 + lsl r0, r3, #0 + lsl r0, r4, #0 + lsl r0, r5, #0 + ldr r1, _0205EE4C ; =0x00000968 + bl sub_0205EC84 + pop {r3, pc} +_0205EE2C: + .byte 0x08, 0x49, 0xFF, 0xF7 + .byte 0x29, 0xFF, 0x08, 0xBD, 0x07, 0x49, 0xFF, 0xF7, 0x25, 0xFF, 0x08, 0xBD, 0x06, 0x49, 0xFF, 0xF7 + .byte 0x21, 0xFF, 0x08, 0xBD, 0x05, 0x49, 0xFF, 0xF7, 0x1D, 0xFF +_0205EE4A: + pop {r3, pc} + .balign 4 +_0205EE4C: .word 0x00000968 +_0205EE50: + .byte 0x69, 0x09, 0x00, 0x00, 0x6A, 0x09, 0x00, 0x00, 0x6B, 0x09, 0x00, 0x00, 0x6C, 0x09, 0x00, 0x00 + + thumb_func_start sub_0205EE60 +sub_0205EE60: ; 0x0205EE60 + push {r3, lr} + cmp r1, #0x4 + bhi _0205EEA2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0 + lsl r0, r2, #0 + lsl r0, r3, #0 + lsl r0, r4, #0 + lsl r0, r5, #0 + ldr r1, _0205EEA4 ; =0x00000968 + bl sub_0205EC94 + pop {r3, pc} +_0205EE84: + .byte 0x08, 0x49, 0xFF, 0xF7, 0x05, 0xFF, 0x08, 0xBD, 0x07, 0x49, 0xFF, 0xF7 + .byte 0x01, 0xFF, 0x08, 0xBD, 0x06, 0x49, 0xFF, 0xF7, 0xFD, 0xFE, 0x08, 0xBD, 0x05, 0x49, 0xFF, 0xF7 + .byte 0xF9, 0xFE +_0205EEA2: + pop {r3, pc} + .balign 4 +_0205EEA4: .word 0x00000968 +_0205EEA8: + .byte 0x69, 0x09, 0x00, 0x00, 0x6A, 0x09, 0x00, 0x00 + .byte 0x6B, 0x09, 0x00, 0x00, 0x6C, 0x09, 0x00, 0x00 + + thumb_func_start sub_0205EEB8 +sub_0205EEB8: ; 0x0205EEB8 + push {r3, lr} + mov r2, #0x0 + cmp r1, #0x5 + bhi _0205EF0A + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r7, #0 + lsl r2, r1, #0 + lsl r4, r2, #0 + lsl r0, r4, #0 + lsl r2, r5, #0 + lsl r4, r6, #0 + ldr r1, _0205EF10 ; =0x0000097F + bl sub_0205EC94 + add r2, r0, #0x0 + b _0205EF0A +_0205EEE2: + .byte 0x26, 0x21, 0x89, 0x01, 0xFF, 0xF7, 0xD5, 0xFE, 0x02, 0x1C, 0x0D, 0xE0, 0x09, 0x49 + .byte 0xFF, 0xF7, 0xD0, 0xFE, 0x02, 0x1C, 0x08, 0xE0, 0x07, 0x49, 0xFF, 0xF7, 0xCB, 0xFE, 0x02, 0x1C + .byte 0x03, 0xE0, 0x06, 0x49, 0xFF, 0xF7, 0xC6, 0xFE, 0x02, 0x1C +_0205EF0A: + add r0, r2, #0x0 + pop {r3, pc} + nop +_0205EF10: .word 0x0000097F +_0205EF14: + .byte 0x81, 0x09, 0x00, 0x00, 0x82, 0x09, 0x00, 0x00, 0x83, 0x09, 0x00, 0x00 + + thumb_func_start sub_0205EF20 +sub_0205EF20: ; 0x0205EF20 + push {r4-r6, lr} + add r4, r1, #0x0 + ldr r1, _0205F0E4 ; =0x00000132 + add r6, r0, #0x0 + mov r5, #0x0 + cmp r4, r1 + bgt _0205EF7E + blt _0205EF32 + b _0205F036 +_0205EF32: + cmp r4, #0xc9 + bgt _0205EF60 + blt _0205EF3A + b _0205F084 +_0205EF3A: + cmp r4, #0x4b + bgt _0205EF58 + add r1, r4, #0x0 + sub r1, #0x48 + bmi _0205EF5E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r3, #0x4 + lsl r0, r3, #0x4 + lsl r0, r3, #0x4 + lsl r0, r3, #0x4 +_0205EF58: + cmp r4, #0xb9 + bne _0205EF5E + b _0205F0D2 +_0205EF5E: + b _0205F0E0 +_0205EF60: + add r2, r1, #0x0 + sub r2, #0x32 + cmp r4, r2 + bgt _0205EF76 + sub r1, #0x32 + cmp r4, r1 + blt _0205EF70 + b _0205F09E +_0205EF70: + cmp r4, #0xfb + beq _0205F018 + b _0205F0E0 +_0205EF76: + sub r0, r1, #0x1 + cmp r4, r0 + beq _0205F036 + b _0205F0E0 +_0205EF7E: + add r2, r1, #0x0 + add r2, #0x5d + cmp r4, r2 + bgt _0205EFC8 + add r2, r1, #0x0 + add r2, #0x5d + cmp r4, r2 + blt _0205EF90 + b _0205F0B8 +_0205EF90: + add r2, r1, #0x1 + cmp r4, r2 + bgt _0205EF9E + add r0, r2, #0x0 + cmp r4, r0 + beq _0205F036 + b _0205F0E0 +_0205EF9E: + add r1, r1, #0x2 + sub r1, r4, r1 + cmp r1, #0xa + bhi _0205EFD6 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r0, #0x2 + lsl r2, r0, #0x2 + lsl r2, r0, #0x2 + lsl r4, r5, #0x4 + lsl r0, r1, #0x1 + lsl r4, r5, #0x4 + lsl r4, r5, #0 + lsl r4, r5, #0x4 + lsl r2, r7, #0 + lsl r4, r5, #0x4 + lsl r6, r2, #0x1 +_0205EFC8: + ldr r0, _0205F0E8 ; =0x000001EE + cmp r4, r0 + bgt _0205EFD8 + bge _0205F036 + sub r0, #0x48 + cmp r4, r0 + beq _0205F026 +_0205EFD6: + b _0205F0E0 +_0205EFD8: + add r0, r0, #0x3 + cmp r4, r0 + beq _0205F036 + b _0205F0E0 +_0205EFE0: + .byte 0x42, 0x49, 0xFF, 0xF7, 0x57, 0xFE, 0x01, 0x28, 0x7A, 0xD1, 0x41, 0x4D, 0x78, 0xE0, 0x3F, 0x49 + .byte 0xFF, 0xF7, 0x50, 0xFE, 0x01, 0x28, 0x73, 0xD1, 0x3E, 0x4D, 0x71, 0xE0, 0x3E, 0x49, 0xFF, 0xF7 + .byte 0x49, 0xFE, 0x01, 0x28, 0x6C, 0xD1, 0x3A, 0x4D, 0x6A, 0xE0, 0x3C, 0x49, 0xFF, 0xF7, 0x42, 0xFE + .byte 0x01, 0x28, 0x65, 0xD1, 0x36, 0x4D, 0x63, 0xE0 +_0205F018: + ldr r1, _0205F100 ; =0x00000995 + bl sub_0205EC94 + cmp r0, #0x1 + bne _0205F0E0 + ldr r5, _0205F104 ; =0x0000042D + b _0205F0E0 +_0205F026: + ldr r1, _0205F108 ; =0x00000993 + add r0, r6, #0x0 + bl sub_0205EC94 + cmp r0, #0x1 + bne _0205F0E0 + ldr r5, _0205F10C ; =0x0000044A + b _0205F0E0 +_0205F036: + ldr r1, _0205F110 ; =0x00000985 + add r0, r6, #0x0 + bl sub_0205EC94 + cmp r0, #0x1 + bne _0205F054 + bl sub_0201277C + cmp r0, #0x0 + bne _0205F050 + mov r5, #0xfe + lsl r5, r5, #0x2 + b _0205F0E0 +_0205F050: + ldr r5, _0205F114 ; =0x00000415 + b _0205F0E0 +_0205F054: + ldr r0, _0205F118 ; =0x00000131 + cmp r4, r0 + bne _0205F0E0 + ldr r1, _0205F11C ; =0x00000986 + add r0, r6, #0x0 + bl sub_0205EC94 + cmp r0, #0x1 + bne _0205F0E0 + ldr r5, _0205F120 ; =0x0000042B + b _0205F0E0 +_0205F06A: + .byte 0x2E, 0x49, 0xFF, 0xF7, 0x12, 0xFE + .byte 0x01, 0x28, 0x35, 0xD1, 0xB3, 0xF7, 0x82, 0xFB, 0x00, 0x28, 0x01, 0xD1, 0x2A, 0x4D, 0x2F, 0xE0 + .byte 0x2A, 0x4D, 0x2D, 0xE0 +_0205F084: + ldr r1, _0205F130 ; =0x00000988 + bl sub_0205EC94 + cmp r0, #0x1 + bne _0205F0E0 + bl sub_0201277C + cmp r0, #0x0 + bne _0205F09A + ldr r5, _0205F134 ; =0x000003FF + b _0205F0E0 +_0205F09A: + ldr r5, _0205F138 ; =0x0000041C + b _0205F0E0 +_0205F09E: + ldr r1, _0205F13C ; =0x00000989 + bl sub_0205EC94 + cmp r0, #0x1 + bne _0205F0E0 + bl sub_0201277C + cmp r0, #0x0 + bne _0205F0B4 + ldr r5, _0205F140 ; =0x000003EE + b _0205F0E0 +_0205F0B4: + ldr r5, _0205F144 ; =0x0000040B + b _0205F0E0 +_0205F0B8: + ldr r1, _0205F148 ; =0x0000098A + bl sub_0205EC94 + cmp r0, #0x1 + bne _0205F0E0 + bl sub_0201277C + cmp r0, #0x0 + bne _0205F0CE + ldr r5, _0205F140 ; =0x000003EE + b _0205F0E0 +_0205F0CE: + ldr r5, _0205F144 ; =0x0000040B + b _0205F0E0 +_0205F0D2: + ldr r1, _0205F14C ; =0x0000098B + add r0, r6, #0x0 + bl sub_0205EC94 + cmp r0, #0x1 + bne _0205F0E0 + ldr r5, _0205F150 ; =0x000003E9 +_0205F0E0: + add r0, r5, #0x0 + pop {r4-r6, pc} + .balign 4 +_0205F0E4: .word 0x00000132 +_0205F0E8: .word 0x000001EE +_0205F0EC: + .byte 0x84, 0x09, 0x00, 0x00 + .byte 0x2E, 0x04, 0x00, 0x00, 0x29, 0x04, 0x00, 0x00, 0x8E, 0x09, 0x00, 0x00, 0x8F, 0x09, 0x00, 0x00 +_0205F100: .word 0x00000995 +_0205F104: .word 0x0000042D +_0205F108: .word 0x00000993 +_0205F10C: .word 0x0000044A +_0205F110: .word 0x00000985 +_0205F114: .word 0x00000415 +_0205F118: .word 0x00000131 +_0205F11C: .word 0x00000986 +_0205F120: .word 0x0000042B +_0205F124: + .byte 0x87, 0x09, 0x00, 0x00, 0xF5, 0x03, 0x00, 0x00, 0x12, 0x04, 0x00, 0x00 +_0205F130: .word 0x00000988 +_0205F134: .word 0x000003FF +_0205F138: .word 0x0000041C +_0205F13C: .word 0x00000989 +_0205F140: .word 0x000003EE +_0205F144: .word 0x0000040B +_0205F148: .word 0x0000098A +_0205F14C: .word 0x0000098B +_0205F150: .word 0x000003E9 + + thumb_func_start sub_0205F154 +sub_0205F154: ; 0x0205F154 + ldr r3, _0205F15C ; =sub_0205EC84 + ldr r1, _0205F160 ; =0x00000966 + bx r3 + nop +_0205F15C: .word sub_0205EC84 + 1 +_0205F160: .word 0x00000966 + + thumb_func_start sub_0205F164 +sub_0205F164: ; 0x0205F164 + ldr r3, _0205F16C ; =sub_0205EC8C + ldr r1, _0205F170 ; =0x00000966 + bx r3 + nop +_0205F16C: .word sub_0205EC8C + 1 +_0205F170: .word 0x00000966 + + thumb_func_start sub_0205F174 +sub_0205F174: ; 0x0205F174 + ldr r3, _0205F17C ; =sub_0205EC94 + ldr r1, _0205F180 ; =0x00000966 + bx r3 + nop +_0205F17C: .word sub_0205EC94 + 1 +_0205F180: .word 0x00000966 + + thumb_func_start sub_0205F184 +sub_0205F184: ; 0x0205F184 + ldr r3, _0205F18C ; =sub_0205EC94 + ldr r1, _0205F190 ; =0x00000978 + bx r3 + nop +_0205F18C: .word sub_0205EC94 + 1 +_0205F190: .word 0x00000978 + + thumb_func_start sub_0205F194 +sub_0205F194: ; 0x0205F194 + ldr r3, _0205F19C ; =sub_0205EC94 + ldr r1, _0205F1A0 ; =0x00000992 + bx r3 + nop +_0205F19C: .word sub_0205EC94 + 1 +_0205F1A0: .word 0x00000992 + + thumb_func_start sub_0205F1A4 +sub_0205F1A4: ; 0x0205F1A4 + ldr r3, _0205F1AC ; =sub_0205EC94 + ldr r1, _0205F1B0 ; =0x0000097D + bx r3 + nop +_0205F1AC: .word sub_0205EC94 + 1 +_0205F1B0: .word 0x0000097D + + thumb_func_start sub_0205F1B4 +sub_0205F1B4: ; 0x0205F1B4 + ldr r3, _0205F1BC ; =sub_0205EC94 + ldr r1, _0205F1C0 ; =0x0000097E + bx r3 + nop +_0205F1BC: .word sub_0205EC94 + 1 +_0205F1C0: .word 0x0000097E + + thumb_func_start sub_0205F1C4 +sub_0205F1C4: ; 0x0205F1C4 + ldr r3, _0205F1CC ; =sub_0205EC84 + ldr r1, _0205F1D0 ; =0x0000097C + bx r3 + nop +_0205F1CC: .word sub_0205EC84 + 1 +_0205F1D0: .word 0x0000097C + + thumb_func_start sub_0205F1D4 +sub_0205F1D4: ; 0x0205F1D4 + ldr r3, _0205F1DC ; =sub_0205EC8C + ldr r1, _0205F1E0 ; =0x0000097C + bx r3 + nop +_0205F1DC: .word sub_0205EC8C + 1 +_0205F1E0: .word 0x0000097C + + thumb_func_start sub_0205F1E4 +sub_0205F1E4: ; 0x0205F1E4 + ldr r3, _0205F1EC ; =sub_0205EC94 + ldr r1, _0205F1F0 ; =0x0000097C + bx r3 + nop +_0205F1EC: .word sub_0205EC94 + 1 +_0205F1F0: .word 0x0000097C + + thumb_func_start sub_0205F1F4 +sub_0205F1F4: ; 0x0205F1F4 + ldr r3, _0205F1FC ; =sub_0205EC84 + ldr r1, _0205F200 ; =0x00000967 + bx r3 + nop +_0205F1FC: .word sub_0205EC84 + 1 +_0205F200: .word 0x00000967 + + thumb_func_start sub_0205F204 +sub_0205F204: ; 0x0205F204 + ldr r3, _0205F20C ; =sub_0205EC8C + ldr r1, _0205F210 ; =0x00000967 + bx r3 + nop +_0205F20C: .word sub_0205EC8C + 1 +_0205F210: .word 0x00000967 + + thumb_func_start sub_0205F214 +sub_0205F214: ; 0x0205F214 + ldr r3, _0205F21C ; =sub_0205EC94 + ldr r1, _0205F220 ; =0x00000967 + bx r3 + nop +_0205F21C: .word sub_0205EC94 + 1 +_0205F220: .word 0x00000967 + + thumb_func_start sub_0205F224 +sub_0205F224: ; 0x0205F224 + ldr r3, _0205F22C ; =sub_0205EC84 + ldr r1, _0205F230 ; =0x00000979 + bx r3 + nop +_0205F22C: .word sub_0205EC84 + 1 +_0205F230: .word 0x00000979 + + thumb_func_start sub_0205F234 +sub_0205F234: ; 0x0205F234 + ldr r3, _0205F23C ; =sub_0205EC8C + ldr r1, _0205F240 ; =0x00000979 + bx r3 + nop +_0205F23C: .word sub_0205EC8C + 1 +_0205F240: .word 0x00000979 + + thumb_func_start sub_0205F244 +sub_0205F244: ; 0x0205F244 + ldr r3, _0205F24C ; =sub_0205EC94 + ldr r1, _0205F250 ; =0x00000979 + bx r3 + nop +_0205F24C: .word sub_0205EC94 + 1 +_0205F250: .word 0x00000979 + + thumb_func_start sub_0205F254 +sub_0205F254: ; 0x0205F254 + ldr r3, _0205F25C ; =sub_0205EC8C + ldr r1, _0205F260 ; =0x00000994 + bx r3 + nop +_0205F25C: .word sub_0205EC8C + 1 +_0205F260: .word 0x00000994 + + thumb_func_start sub_0205F264 +sub_0205F264: ; 0x0205F264 + ldr r3, _0205F26C ; =sub_0205EC9C + ldr r2, _0205F270 ; =0x00000962 + bx r3 + nop +_0205F26C: .word sub_0205EC9C + 1 +_0205F270: .word 0x00000962 + + thumb_func_start sub_0205F274 +sub_0205F274: ; 0x0205F274 + ldr r3, _0205F27C ; =sub_0205EC84 + ldr r1, _0205F280 ; =0x0000097A + bx r3 + nop +_0205F27C: .word sub_0205EC84 + 1 +_0205F280: .word 0x0000097A + + thumb_func_start sub_0205F284 +sub_0205F284: ; 0x0205F284 + ldr r3, _0205F28C ; =sub_0205EC8C + ldr r1, _0205F290 ; =0x0000097A + bx r3 + nop +_0205F28C: .word sub_0205EC8C + 1 +_0205F290: .word 0x0000097A + + thumb_func_start sub_0205F294 +sub_0205F294: ; 0x0205F294 + ldr r3, _0205F29C ; =sub_0205EC94 + ldr r1, _0205F2A0 ; =0x0000097A + bx r3 + nop +_0205F29C: .word sub_0205EC94 + 1 +_0205F2A0: .word 0x0000097A + + thumb_func_start sub_0205F2A4 +sub_0205F2A4: ; 0x0205F2A4 + ldr r3, _0205F2AC ; =sub_0205EC84 + ldr r1, _0205F2B0 ; =0x0000097B + bx r3 + nop +_0205F2AC: .word sub_0205EC84 + 1 +_0205F2B0: .word 0x0000097B + + thumb_func_start sub_0205F2B4 +sub_0205F2B4: ; 0x0205F2B4 + ldr r3, _0205F2BC ; =sub_0205EC8C + ldr r1, _0205F2C0 ; =0x0000097B + bx r3 + nop +_0205F2BC: .word sub_0205EC8C + 1 +_0205F2C0: .word 0x0000097B + + thumb_func_start sub_0205F2C4 +sub_0205F2C4: ; 0x0205F2C4 + ldr r3, _0205F2CC ; =sub_0205EC94 + ldr r1, _0205F2D0 ; =0x0000097B + bx r3 + nop +_0205F2CC: .word sub_0205EC94 + 1 +_0205F2D0: .word 0x0000097B + + thumb_func_start sub_0205F2D4 +sub_0205F2D4: ; 0x0205F2D4 + ldr r3, _0205F2DC ; =sub_0205EC9C + ldr r2, _0205F2E0 ; =0x00000963 + bx r3 + nop +_0205F2DC: .word sub_0205EC9C + 1 +_0205F2E0: .word 0x00000963 + + thumb_func_start sub_0205F2E4 +sub_0205F2E4: ; 0x0205F2E4 + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + cmp r4, #0x45 + blo _0205F2F4 + bl sub_02020C2C +_0205F2F4: + mov r2, #0x9b + lsl r2, r2, #0x4 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, r2 + bl sub_0205EC9C + pop {r4-r6, pc} + + thumb_func_start sub_0205F304 +sub_0205F304: ; 0x0205F304 + ldr r3, _0205F30C ; =sub_0205EC84 + ldr r1, _0205F310 ; =0x0000098C + bx r3 + nop +_0205F30C: .word sub_0205EC84 + 1 +_0205F310: .word 0x0000098C + + thumb_func_start sub_0205F314 +sub_0205F314: ; 0x0205F314 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_02046380 + mov r1, #0x1 + lsl r1, r1, #0xe + cmp r5, r1 + blo _0205F32C + lsl r1, r1, #0x1 + cmp r5, r1 + bls _0205F334 +_0205F32C: + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r5, pc} +_0205F334: + cmp r0, #0x0 + bne _0205F33C + mov r0, #0x0 + pop {r3-r5, pc} +_0205F33C: + strh r4, [r0, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205F344 +sub_0205F344: ; 0x0205F344 + push {r3, lr} + bl sub_02046380 + cmp r0, #0x0 + bne _0205F352 + mov r0, #0x0 + pop {r3, pc} +_0205F352: + ldrh r0, [r0, #0x0] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0205F358 +sub_0205F358: ; 0x0205F358 + ldr r3, _0205F360 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F364 ; =0x0000403F + bx r3 + .balign 4 +_0205F360: .word sub_0205F314 + 1 +_0205F364: .word 0x0000403F + + thumb_func_start sub_0205F368 +sub_0205F368: ; 0x0205F368 + ldr r3, _0205F370 ; =sub_0205F344 + ldr r1, _0205F374 ; =0x0000403F + bx r3 + nop +_0205F370: .word sub_0205F344 + 1 +_0205F374: .word 0x0000403F + + thumb_func_start sub_0205F378 +sub_0205F378: ; 0x0205F378 + ldr r3, _0205F380 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F384 ; =0x00004030 + bx r3 + .balign 4 +_0205F380: .word sub_0205F314 + 1 +_0205F384: .word 0x00004030 + + thumb_func_start sub_0205F388 +sub_0205F388: ; 0x0205F388 + ldr r3, _0205F390 ; =sub_0205F344 + ldr r1, _0205F394 ; =0x00004030 + bx r3 + nop +_0205F390: .word sub_0205F344 + 1 +_0205F394: .word 0x00004030 + + thumb_func_start sub_0205F398 +sub_0205F398: ; 0x0205F398 + push {r3, lr} + ldr r1, _0205F3B8 ; =0x00004030 + bl sub_0205F344 + ldr r2, _0205F3BC ; =0x00000183 + cmp r0, r2 + bne _0205F3AA + add r2, r2, #0x3 + b _0205F3B2 +_0205F3AA: + add r1, r2, #0x3 + cmp r0, r1 + bne _0205F3B2 + add r2, r2, #0x6 +_0205F3B2: + add r0, r2, #0x0 + pop {r3, pc} + nop +_0205F3B8: .word 0x00004030 +_0205F3BC: .word 0x00000183 + + thumb_func_start sub_0205F3C0 +sub_0205F3C0: ; 0x0205F3C0 + push {r3, lr} + ldr r1, _0205F3E0 ; =0x00004030 + bl sub_0205F344 + ldr r2, _0205F3E4 ; =0x00000183 + cmp r0, r2 + bne _0205F3D2 + add r2, r2, #0x6 + b _0205F3DA +_0205F3D2: + add r1, r2, #0x3 + cmp r0, r1 + beq _0205F3DA + add r2, r2, #0x3 +_0205F3DA: + add r0, r2, #0x0 + pop {r3, pc} + nop +_0205F3E0: .word 0x00004030 +_0205F3E4: .word 0x00000183 + + thumb_func_start sub_0205F3E8 +sub_0205F3E8: ; 0x0205F3E8 + ldr r3, _0205F3F0 ; =sub_0205F344 + ldr r1, _0205F3F4 ; =0x00004035 + bx r3 + nop +_0205F3F0: .word sub_0205F344 + 1 +_0205F3F4: .word 0x00004035 + + thumb_func_start sub_0205F3F8 +sub_0205F3F8: ; 0x0205F3F8 + ldr r3, _0205F400 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F404 ; =0x00004035 + bx r3 + .balign 4 +_0205F400: .word sub_0205F314 + 1 +_0205F404: .word 0x00004035 + + thumb_func_start sub_0205F408 +sub_0205F408: ; 0x0205F408 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0205ED8C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0205F44C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205F41C +sub_0205F41C: ; 0x0205F41C + ldr r3, _0205F424 ; =sub_0205F344 + ldr r1, _0205F428 ; =0x00004033 + bx r3 + nop +_0205F424: .word sub_0205F344 + 1 +_0205F428: .word 0x00004033 + + thumb_func_start sub_0205F42C +sub_0205F42C: ; 0x0205F42C + ldr r3, _0205F434 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F438 ; =0x00004033 + bx r3 + .balign 4 +_0205F434: .word sub_0205F314 + 1 +_0205F438: .word 0x00004033 + + thumb_func_start sub_0205F43C +sub_0205F43C: ; 0x0205F43C + ldr r3, _0205F444 ; =sub_0205F344 + ldr r1, _0205F448 ; =0x00004034 + bx r3 + nop +_0205F444: .word sub_0205F344 + 1 +_0205F448: .word 0x00004034 + + thumb_func_start sub_0205F44C +sub_0205F44C: ; 0x0205F44C + ldr r3, _0205F454 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F458 ; =0x00004034 + bx r3 + .balign 4 +_0205F454: .word sub_0205F314 + 1 +_0205F458: .word 0x00004034 + + thumb_func_start sub_0205F45C +sub_0205F45C: ; 0x0205F45C + push {r4, lr} + add r4, r0, #0x0 + bmi _0205F466 + cmp r4, #0x3 + blo _0205F46A +_0205F466: + bl sub_02020C2C +_0205F46A: + ldr r0, _0205F474 ; =0x020F7430 + lsl r1, r4, #0x1 + ldrh r0, [r0, r1] + pop {r4, pc} + nop +_0205F474: .word 0x020F7430 + + thumb_func_start sub_0205F478 +sub_0205F478: ; 0x0205F478 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F45C + add r2, r0, #0x0 + ldr r1, _0205F49C ; =0x00004043 + lsl r2, r2, #0x10 + add r1, r4, r1 + lsl r1, r1, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + lsr r2, r2, #0x10 + bl sub_0205F314 + pop {r3-r5, pc} + nop +_0205F49C: .word 0x00004043 + + thumb_func_start sub_0205F4A0 +sub_0205F4A0: ; 0x0205F4A0 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, _0205F4C4 ; =0x00004043 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_0205F344 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F45C + cmp r5, r0 + bne _0205F4C0 + mov r0, #0x1 + pop {r3-r5, pc} +_0205F4C0: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0205F4C4: .word 0x00004043 + + thumb_func_start sub_0205F4C8 +sub_0205F4C8: ; 0x0205F4C8 + push {r4, lr} + add r4, r0, #0x0 + bmi _0205F4D2 + cmp r4, #0x4 + blt _0205F4D6 +_0205F4D2: + bl sub_02020C2C +_0205F4D6: + ldr r0, _0205F4E0 ; =0x020F7436 + lsl r1, r4, #0x1 + ldrh r0, [r0, r1] + pop {r4, pc} + nop +_0205F4E0: .word 0x020F7436 + + thumb_func_start sub_0205F4E4 +sub_0205F4E4: ; 0x0205F4E4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F4C8 + add r2, r0, #0x0 + ldr r1, _0205F508 ; =0x00004036 + lsl r2, r2, #0x10 + add r1, r4, r1 + lsl r1, r1, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + lsr r2, r2, #0x10 + bl sub_0205F314 + pop {r3-r5, pc} + nop +_0205F508: .word 0x00004036 + + thumb_func_start sub_0205F50C +sub_0205F50C: ; 0x0205F50C + ldr r2, _0205F51C ; =0x00004036 + ldr r3, _0205F520 ; =sub_0205F314 + add r1, r1, r2 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + mov r2, #0x0 + bx r3 + nop +_0205F51C: .word 0x00004036 +_0205F520: .word sub_0205F314 + 1 + + thumb_func_start sub_0205F524 +sub_0205F524: ; 0x0205F524 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, _0205F548 ; =0x00004036 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_0205F344 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0205F4C8 + cmp r5, r0 + bne _0205F544 + mov r0, #0x1 + pop {r3-r5, pc} +_0205F544: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0205F548: .word 0x00004036 + + thumb_func_start sub_0205F54C +sub_0205F54C: ; 0x0205F54C + ldr r3, _0205F554 ; =sub_0205F314 + ldr r1, _0205F558 ; =0x0000403A + mov r2, #0x0 + bx r3 + .balign 4 +_0205F554: .word sub_0205F314 + 1 +_0205F558: .word 0x0000403A + + thumb_func_start sub_0205F55C +sub_0205F55C: ; 0x0205F55C + ldr r3, _0205F564 ; =sub_0205F344 + ldr r1, _0205F568 ; =0x0000403A + bx r3 + nop +_0205F564: .word sub_0205F344 + 1 +_0205F568: .word 0x0000403A + + thumb_func_start sub_0205F56C +sub_0205F56C: ; 0x0205F56C + push {r4, lr} + ldr r1, _0205F58C ; =0x0000403A + add r4, r0, #0x0 + bl sub_0205F344 + ldr r2, _0205F590 ; =0x00002710 + cmp r0, r2 + bhs _0205F582 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 +_0205F582: + ldr r1, _0205F58C ; =0x0000403A + add r0, r4, #0x0 + bl sub_0205F314 + pop {r4, pc} + .balign 4 +_0205F58C: .word 0x0000403A +_0205F590: .word 0x00002710 + + thumb_func_start sub_0205F594 +sub_0205F594: ; 0x0205F594 + ldr r3, _0205F59C ; =sub_0205F344 + ldr r1, _0205F5A0 ; =0x0000403B + bx r3 + nop +_0205F59C: .word sub_0205F344 + 1 +_0205F5A0: .word 0x0000403B + + thumb_func_start sub_0205F5A4 +sub_0205F5A4: ; 0x0205F5A4 + ldr r3, _0205F5AC ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F5B0 ; =0x0000403B + bx r3 + .balign 4 +_0205F5AC: .word sub_0205F314 + 1 +_0205F5B0: .word 0x0000403B + + thumb_func_start sub_0205F5B4 +sub_0205F5B4: ; 0x0205F5B4 + push {r3-r5, lr} + add r4, r1, #0x0 + lsl r2, r4, #0x10 + ldr r1, _0205F5D4 ; =0x0000403C + lsr r2, r2, #0x10 + add r5, r0, #0x0 + bl sub_0205F314 + lsr r2, r4, #0x10 + lsl r2, r2, #0x10 + ldr r1, _0205F5D4 ; =0x0000403C + add r0, r5, #0x0 + lsr r2, r2, #0x10 + bl sub_0205F314 + pop {r3-r5, pc} + .balign 4 +_0205F5D4: .word 0x0000403C + + thumb_func_start sub_0205F5D8 +sub_0205F5D8: ; 0x0205F5D8 + push {r3-r5, lr} + ldr r1, _0205F5F4 ; =0x0000403C + add r5, r0, #0x0 + bl sub_0205F344 + add r4, r0, #0x0 + ldr r1, _0205F5F8 ; =0x0000403D + add r0, r5, #0x0 + bl sub_0205F344 + lsl r0, r0, #0x10 + orr r0, r4 + pop {r3-r5, pc} + nop +_0205F5F4: .word 0x0000403C +_0205F5F8: .word 0x0000403D + + thumb_func_start sub_0205F5FC +sub_0205F5FC: ; 0x0205F5FC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0201B9EC + add r4, r0, #0x0 + bl sub_0201B9EC + add r1, r0, #0x0 + lsl r1, r1, #0x10 + add r0, r5, #0x0 + orr r1, r4 + bl sub_0205F5B4 + pop {r3-r5, pc} + + thumb_func_start sub_0205F618 +sub_0205F618: ; 0x0205F618 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020462AC + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0202881C + bl sub_020287A4 + add r2, r0, #0x0 + ldr r1, _0205F640 ; =0x41C64E6D + add r0, r4, #0x0 + mul r2, r1 + ldr r1, _0205F644 ; =0x00003039 + add r1, r2, r1 + bl sub_0205F5B4 + pop {r3-r5, pc} + nop +_0205F640: .word 0x41C64E6D +_0205F644: .word 0x00003039 + + thumb_func_start sub_0205F648 +sub_0205F648: ; 0x0205F648 + ldr r3, _0205F650 ; =sub_0205F344 + ldr r1, _0205F654 ; =0x00004041 + bx r3 + nop +_0205F650: .word sub_0205F344 + 1 +_0205F654: .word 0x00004041 + + thumb_func_start sub_0205F658 +sub_0205F658: ; 0x0205F658 + ldr r3, _0205F660 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F664 ; =0x00004041 + bx r3 + .balign 4 +_0205F660: .word sub_0205F314 + 1 +_0205F664: .word 0x00004041 + + thumb_func_start sub_0205F668 +sub_0205F668: ; 0x0205F668 + push {r4, lr} + bl sub_020462AC + add r4, r0, #0x0 + bl sub_0201B9EC + mov r1, #0x62 + blx sub_020EBC80 + add r1, r1, #0x2 + lsl r1, r1, #0x10 + add r0, r4, #0x0 + lsr r1, r1, #0x10 + bl sub_0205F658 + pop {r4, pc} + + thumb_func_start sub_0205F688 +sub_0205F688: ; 0x0205F688 + ldr r3, _0205F690 ; =sub_0205F344 + ldr r1, _0205F694 ; =0x0000403E + bx r3 + nop +_0205F690: .word sub_0205F344 + 1 +_0205F694: .word 0x0000403E + + thumb_func_start sub_0205F698 +sub_0205F698: ; 0x0205F698 + ldr r3, _0205F6A0 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F6A4 ; =0x0000403E + bx r3 + .balign 4 +_0205F6A0: .word sub_0205F314 + 1 +_0205F6A4: .word 0x0000403E + + thumb_func_start sub_0205F6A8 +sub_0205F6A8: ; 0x0205F6A8 + ldr r3, _0205F6B0 ; =sub_0205F344 + ldr r1, _0205F6B4 ; =0x00004049 + bx r3 + nop +_0205F6B0: .word sub_0205F344 + 1 +_0205F6B4: .word 0x00004049 + + thumb_func_start sub_0205F6B8 +sub_0205F6B8: ; 0x0205F6B8 + ldr r3, _0205F6C0 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F6C4 ; =0x00004049 + bx r3 + .balign 4 +_0205F6C0: .word sub_0205F314 + 1 +_0205F6C4: .word 0x00004049 + + thumb_func_start sub_0205F6C8 +sub_0205F6C8: ; 0x0205F6C8 + ldr r3, _0205F6D0 ; =sub_0205F344 + ldr r1, _0205F6D4 ; =0x00004040 + bx r3 + nop +_0205F6D0: .word sub_0205F344 + 1 +_0205F6D4: .word 0x00004040 + + thumb_func_start sub_0205F6D8 +sub_0205F6D8: ; 0x0205F6D8 + ldr r3, _0205F6E0 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F6E4 ; =0x00004040 + bx r3 + .balign 4 +_0205F6E0: .word sub_0205F314 + 1 +_0205F6E4: .word 0x00004040 + + thumb_func_start sub_0205F6E8 +sub_0205F6E8: ; 0x0205F6E8 + push {r4, lr} + ldr r1, _0205F708 ; =0x00004042 + add r4, r0, #0x0 + bl sub_0205F344 + ldr r2, _0205F70C ; =0x00002710 + cmp r0, r2 + bhs _0205F6FE + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 +_0205F6FE: + ldr r1, _0205F708 ; =0x00004042 + add r0, r4, #0x0 + bl sub_0205F314 + pop {r4, pc} + .balign 4 +_0205F708: .word 0x00004042 +_0205F70C: .word 0x00002710 + + thumb_func_start sub_0205F710 +sub_0205F710: ; 0x0205F710 + ldr r3, _0205F718 ; =sub_0205F344 + ldr r1, _0205F71C ; =0x00004042 + bx r3 + nop +_0205F718: .word sub_0205F344 + 1 +_0205F71C: .word 0x00004042 + + thumb_func_start sub_0205F720 +sub_0205F720: ; 0x0205F720 + ldr r3, _0205F728 ; =sub_0205F344 + ldr r1, _0205F72C ; =0x00004046 + bx r3 + nop +_0205F728: .word sub_0205F344 + 1 +_0205F72C: .word 0x00004046 + + thumb_func_start sub_0205F730 +sub_0205F730: ; 0x0205F730 + ldr r3, _0205F738 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F73C ; =0x00004046 + bx r3 + .balign 4 +_0205F738: .word sub_0205F314 + 1 +_0205F73C: .word 0x00004046 + + thumb_func_start sub_0205F740 +sub_0205F740: ; 0x0205F740 + ldr r3, _0205F748 ; =sub_0205F344 + ldr r1, _0205F74C ; =0x00004047 + bx r3 + nop +_0205F748: .word sub_0205F344 + 1 +_0205F74C: .word 0x00004047 + + thumb_func_start sub_0205F750 +sub_0205F750: ; 0x0205F750 + ldr r3, _0205F758 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F75C ; =0x00004047 + bx r3 + .balign 4 +_0205F758: .word sub_0205F314 + 1 +_0205F75C: .word 0x00004047 + + thumb_func_start sub_0205F760 +sub_0205F760: ; 0x0205F760 + ldr r3, _0205F768 ; =sub_0205F344 + ldr r1, _0205F76C ; =0x00004048 + bx r3 + nop +_0205F768: .word sub_0205F344 + 1 +_0205F76C: .word 0x00004048 + + thumb_func_start sub_0205F770 +sub_0205F770: ; 0x0205F770 + ldr r3, _0205F778 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F77C ; =0x00004048 + bx r3 + .balign 4 +_0205F778: .word sub_0205F314 + 1 +_0205F77C: .word 0x00004048 + + thumb_func_start sub_0205F780 +sub_0205F780: ; 0x0205F780 + ldr r3, _0205F788 ; =sub_0205F344 + ldr r1, _0205F78C ; =0x0000404A + bx r3 + nop +_0205F788: .word sub_0205F344 + 1 +_0205F78C: .word 0x0000404A + + thumb_func_start sub_0205F790 +sub_0205F790: ; 0x0205F790 + ldr r3, _0205F798 ; =sub_0205F314 + add r2, r1, #0x0 + ldr r1, _0205F79C ; =0x0000404A + bx r3 + .balign 4 +_0205F798: .word sub_0205F314 + 1 +_0205F79C: .word 0x0000404A + + thumb_func_start sub_0205F7A0 +sub_0205F7A0: ; 0x0205F7A0 + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x0] + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + str r2, [sp, #0x4] + bl sub_020462AC + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + bl sub_02034DCC + mov r2, #0x5 + str r0, [sp, #0xc] + add r0, r5, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x6 + blx sub_020DF4A4 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x38] + bl sub_02055320 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x38] + bl sub_0205532C + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + asr r1, r4, #0x4 + asr r2, r6, #0x4 + lsr r1, r1, #0x1b + lsr r2, r2, #0x1b + add r1, r4, r1 + add r2, r6, r2 + ldr r0, [r0, #0x28] + asr r1, r1, #0x5 + asr r2, r2, #0x5 + bl sub_0203451C + bl sub_02034908 + cmp r0, #0x0 + beq _0205F806 + str r4, [r5, #0x0] + str r6, [r5, #0x4] + b _0205F812 +_0205F806: + ldr r0, [sp, #0xc] + ldr r0, [r0, #0x8] + str r0, [r5, #0x0] + ldr r0, [sp, #0xc] + ldr r0, [r0, #0xc] + str r0, [r5, #0x4] +_0205F812: + ldr r0, [sp, #0x0] + bl sub_020377AC + bl sub_020238F4 + bl sub_020239CC + str r0, [r5, #0xc] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0xc] + bl sub_02034E30 + bl sub_02034E0C + str r0, [sp, #0x8] + ldr r0, [r0, #0x0] + mov r1, #0x6 + add r0, r0, #0x4 + blx sub_020EBC80 + mov r6, #0x0 + add r4, r5, #0x0 +_0205F83E: + ldr r0, [sp, #0x8] + lsl r2, r1, #0x2 + add r0, r0, r2 + ldrb r2, [r0, #0x6] + str r2, [r4, #0x20] + ldrb r2, [r0, #0x7] + str r2, [r4, #0x24] + ldrb r2, [r0, #0x9] + strh r2, [r4, #0x2a] + ldrb r0, [r0, #0x8] + cmp r0, #0x3 + bls _0205F85A + mov r0, #0x4 + b _0205F85A +_0205F85A: + strh r0, [r4, #0x28] + add r0, r1, #0x5 + mov r1, #0x6 + blx sub_020EBC80 + add r6, r6, #0x1 + add r4, #0xc + cmp r6, #0x5 + blt _0205F83E + mov r6, #0x4f + mov r4, #0x0 + lsl r6, r6, #0x2 +_0205F872: + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_0205F524 + cmp r0, #0x0 + beq _0205F888 + mov r0, #0x1 + ldrh r1, [r5, r6] + lsl r0, r4 + orr r0, r1 + strh r0, [r5, r6] +_0205F888: + add r4, r4, #0x1 + cmp r4, #0x4 + blt _0205F872 + ldr r6, _0205F8C0 ; =0x020F7440 + mov r4, #0x0 +_0205F892: + ldrb r2, [r6, #0x0] + add r0, r7, #0x0 + mov r1, #0x2 + bl sub_0205F2E4 + mov r1, #0x49 + add r2, r5, r4 + lsl r1, r1, #0x2 + add r4, r4, #0x1 + add r6, r6, #0x1 + strb r0, [r2, r1] + cmp r4, #0x14 + blt _0205F892 + ldr r0, [sp, #0x0] + ldr r2, _0205F8C4 ; =0x02105FA8 + add r1, r5, #0x0 + bl sub_0205F8CC + ldr r1, _0205F8C8 ; =0x00000139 + ldr r0, [sp, #0x4] + strb r0, [r5, r1] + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0205F8C0: .word 0x020F7440 +_0205F8C4: .word 0x02105FA8 +_0205F8C8: .word 0x00000139 + + thumb_func_start sub_0205F8CC +sub_0205F8CC: ; 0x0205F8CC + push {r3-r7, lr} + sub sp, #0x70 + add r7, r0, #0x0 + ldr r0, [r7, #0xc] + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_020462AC + str r0, [sp, #0x0] + add r0, sp, #0x28 + blx sub_020D1C94 + add r0, sp, #0x28 + add r1, r4, #0x0 + blx sub_020D1944 + cmp r0, #0x0 + bne _0205F8F8 + bl sub_02020C2C + add sp, #0x70 + pop {r3-r7, pc} +_0205F8F8: + add r0, sp, #0x28 + add r1, sp, #0x24 + mov r2, #0x4 + blx sub_020D180C + cmp r0, #0x0 + bge _0205F90A + bl sub_02020C2C +_0205F90A: + mov r0, #0xb + mov r1, #0x4 + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x4 + add r6, r0, #0x0 + blx sub_020CE34C + ldr r1, [sp, #0x24] + ldr r0, _0205FA28 ; =0x0000013A + mov r4, #0x0 + strb r1, [r5, r0] + ldr r0, [sp, #0x24] + cmp r0, #0x0 + ble _0205FA16 + mov r0, #0xc + str r0, [sp, #0x10] + mov r0, #0x3 + str r0, [sp, #0xc] + mov r0, #0xc + str r0, [sp, #0x8] + mov r0, #0x3 + str r0, [sp, #0x4] + mov r0, #0xc0 + str r0, [sp, #0x20] + mov r0, #0x30 + str r0, [sp, #0x1c] + mov r0, #0xc0 + str r0, [sp, #0x18] + mov r0, #0x30 + add r5, #0x5c + str r0, [sp, #0x14] +_0205F94C: + add r0, sp, #0x28 + add r1, r6, #0x0 + mov r2, #0x4 + blx sub_020D180C + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + beq _0205F962 + cmp r0, #0x2 + beq _0205F98C + b _0205F9B2 +_0205F962: + ldrb r2, [r6, #0x1] + ldr r0, [sp, #0x0] + mov r1, #0x2 + bl sub_0205F2E4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1e + ldrb r1, [r5, r4] + ldr r2, [sp, #0x8] + lsr r0, r0, #0x1c + bic r1, r2 + orr r0, r1 + strb r0, [r5, r4] + ldrb r1, [r5, r4] + ldr r0, [sp, #0x4] + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strb r0, [r5, r4] + b _0205F9B2 +_0205F98C: + ldrb r1, [r6, #0x1] + add r0, r7, #0x0 + bl sub_02039528 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1e + ldrb r1, [r5, r4] + ldr r2, [sp, #0x10] + lsr r0, r0, #0x1c + bic r1, r2 + orr r0, r1 + strb r0, [r5, r4] + ldrb r1, [r5, r4] + ldr r0, [sp, #0xc] + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strb r0, [r5, r4] +_0205F9B2: + ldrb r0, [r6, #0x2] + cmp r0, #0x1 + beq _0205F9BE + cmp r0, #0x2 + beq _0205F9E8 + b _0205FA0E +_0205F9BE: + ldrb r2, [r6, #0x3] + ldr r0, [sp, #0x0] + mov r1, #0x2 + bl sub_0205F2E4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1e + ldrb r1, [r5, r4] + ldr r2, [sp, #0x18] + lsr r0, r0, #0x18 + bic r1, r2 + orr r0, r1 + strb r0, [r5, r4] + ldrb r1, [r5, r4] + ldr r0, [sp, #0x14] + bic r1, r0 + mov r0, #0x10 + orr r0, r1 + strb r0, [r5, r4] + b _0205FA0E +_0205F9E8: + ldrb r1, [r6, #0x3] + add r0, r7, #0x0 + bl sub_02039528 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1e + ldrb r1, [r5, r4] + ldr r2, [sp, #0x20] + lsr r0, r0, #0x18 + bic r1, r2 + orr r0, r1 + strb r0, [r5, r4] + ldrb r1, [r5, r4] + ldr r0, [sp, #0x1c] + bic r1, r0 + mov r0, #0x10 + orr r0, r1 + strb r0, [r5, r4] +_0205FA0E: + ldr r0, [sp, #0x24] + add r4, r4, #0x1 + cmp r4, r0 + blt _0205F94C +_0205FA16: + add r0, sp, #0x28 + blx sub_020D18FC + add r0, r6, #0x0 + bl sub_02016A18 + add sp, #0x70 + pop {r3-r7, pc} + nop +_0205FA28: .word 0x0000013A + + thumb_func_start sub_0205FA2C +sub_0205FA2C: ; 0x0205FA2C + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x40 + bl sub_020169D8 + ldr r6, [r7, #0xc] + mov r1, #0x0 + mov r2, #0x40 + add r4, r0, #0x0 + blx sub_020CE34C + add r0, r6, #0x0 + bl sub_02023900 + str r0, [r4, #0xc] + add r0, r6, #0x0 + bl sub_0206BB1C + str r0, [r4, #0x0] + add r0, r6, #0x0 + bl sub_0206F158 + str r0, [r4, #0x4] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + ldrb r2, [r5, #0x8] + add r0, #0x20 + strb r2, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x32 + ldrb r0, [r0, #0x0] + mov r2, #0xf + ldrb r3, [r5, #0xa] + bic r0, r2 + mov r2, #0xf + and r2, r3 + orr r2, r0 + add r0, r4, #0x0 + add r0, #0x32 + strb r2, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x32 + ldrb r0, [r0, #0x0] + mov r2, #0xf0 + bic r0, r2 + ldrb r2, [r5, #0xb] + lsl r2, r2, #0x1c + lsr r2, r2, #0x18 + orr r2, r0 + add r0, r4, #0x0 + add r0, #0x32 + strb r2, [r0, #0x0] + add r0, r4, #0x0 + ldrb r2, [r5, #0xc] + add r0, #0x33 + strb r2, [r0, #0x0] + add r0, r4, #0x0 + ldrb r2, [r5, #0xd] + add r0, #0x22 + strb r2, [r0, #0x0] +_0205FAAE: + add r0, r5, r1 + ldrb r2, [r0, #0xe] + add r0, r4, r1 + add r0, #0x2c + strb r2, [r0, #0x0] + add r0, r1, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x6 + blo _0205FAAE + ldr r1, _0205FAD4 ; =0x020F96DC + add r0, r7, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + ldr r0, [r5, #0x14] + str r4, [r0, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_0205FAD4: .word 0x020F96DC + + thumb_func_start sub_0205FAD8 +sub_0205FAD8: ; 0x0205FAD8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_0204647C + cmp r0, #0x0 + beq _0205FAEA + mov r0, #0x1 + pop {r3-r5, pc} +_0205FAEA: + ldr r0, [r5, #0x14] + ldr r4, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x22 + ldrb r0, [r0, #0x0] + cmp r0, #0x6 + beq _0205FB04 + cmp r0, #0x7 + bne _0205FB0C + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x4 + pop {r3-r5, pc} +_0205FB04: + mov r0, #0x1 + str r0, [r5, #0x0] + mov r0, #0x4 + pop {r3-r5, pc} +_0205FB0C: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r0, #0x2c + add r1, #0xe + mov r2, #0x6 + blx sub_020CE3E0 + add r0, r4, #0x0 + add r0, #0x22 + ldrb r0, [r0, #0x0] + strb r0, [r5, #0xd] + add r0, r4, #0x0 + bl sub_02016A18 + ldr r0, [r5, #0x14] + mov r1, #0x0 + str r1, [r0, #0x0] + mov r0, #0x2 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205FB34 +sub_0205FB34: ; 0x0205FB34 + push {r3-r7, lr} + add r7, r1, #0x0 + add r6, r0, #0x0 + ldr r5, [r7, #0xc] + add r0, r2, #0x0 + mov r1, #0x30 + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x30 + add r4, r0, #0x0 + blx sub_020CE34C + add r0, r5, #0x0 + bl sub_02023900 + str r0, [r4, #0x4] + add r0, r5, #0x0 + bl sub_0206BB1C + str r0, [r4, #0x0] + add r0, r5, #0x0 + bl sub_0206BB28 + str r0, [r4, #0x1c] + add r0, r5, #0x0 + bl sub_02079C70 + str r0, [r4, #0x2c] + mov r0, #0x1 + strb r0, [r4, #0x11] + ldrb r0, [r6, #0xd] + strb r0, [r4, #0x14] + ldr r0, [r4, #0x0] + bl sub_0206B9AC + strb r0, [r4, #0x13] + mov r0, #0x0 + strh r0, [r4, #0x18] + ldrb r0, [r6, #0x9] + strb r0, [r4, #0x12] + add r0, r5, #0x0 + bl sub_0202A918 + str r0, [r4, #0x20] + ldr r1, _0205FBB8 ; =0x020F7454 + add r0, r4, #0x0 + bl sub_0207B000 + add r0, r5, #0x0 + bl sub_020238F4 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_0207C2A4 + ldr r1, _0205FBBC ; =0x020FA6E8 + add r0, r7, #0x0 + add r2, r4, #0x0 + bl sub_020373D4 + ldr r0, [r6, #0x14] + str r4, [r0, #0x0] + mov r0, #0x3 + pop {r3-r7, pc} + nop +_0205FBB8: .word 0x020F7454 +_0205FBBC: .word 0x020FA6E8 + + thumb_func_start sub_0205FBC0 +sub_0205FBC0: ; 0x0205FBC0 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_0204647C + cmp r0, #0x0 + beq _0205FBD2 + mov r0, #0x3 + pop {r4, pc} +_0205FBD2: + ldr r0, [r4, #0x14] + ldr r0, [r0, #0x0] + ldrb r1, [r0, #0x14] + strb r1, [r4, #0xd] + bl sub_02016A18 + ldr r1, [r4, #0x14] + mov r0, #0x0 + str r0, [r1, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205FBE8 +sub_0205FBE8: ; 0x0205FBE8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + cmp r1, #0x4 + bhi _0205FC4A + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0 + lsl r4, r2, #0 + lsl r6, r3, #0 + lsl r2, r5, #0 + lsl r4, r6, #0 + add r1, r5, #0x0 + mov r2, #0xb + bl sub_0205FA2C + str r0, [r4, #0x4] + b _0205FC4A +_0205FC22: + .byte 0x29, 0x1C, 0xFF, 0xF7, 0x58, 0xFF, 0x60, 0x60, 0x0E, 0xE0, 0x29, 0x1C, 0x0B, 0x22 + .byte 0xFF, 0xF7, 0x80, 0xFF, 0x60, 0x60, 0x08, 0xE0, 0x29, 0x1C, 0xFF, 0xF7, 0xC1, 0xFF, 0x60, 0x60 + .byte 0x03, 0xE0, 0xB6, 0xF7, 0xE9, 0xFE, 0x01, 0x20, 0x38, 0xBD +_0205FC4A: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0205FC50 +sub_0205FC50: ; 0x0205FC50 + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02046528 + str r0, [sp, #0x0] + mov r0, #0xb + mov r1, #0x18 + bl sub_02016998 + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + blx sub_020CE34C + strb r6, [r4, #0x8] + strb r7, [r4, #0x9] + add r0, sp, #0x8 + ldrb r1, [r0, #0x10] + add r2, r4, #0x0 + strb r1, [r4, #0xa] + ldrb r1, [r0, #0x14] + strb r1, [r4, #0xb] + ldrb r1, [r0, #0x18] + strb r1, [r4, #0xc] + ldrb r0, [r0, #0x1c] + ldr r1, _0205FC98 ; =sub_0205FBE8 + strb r0, [r4, #0xd] + ldr r0, [sp, #0x0] + str r5, [r4, #0x14] + ldr r0, [r0, #0x10] + bl sub_0204640C + pop {r3-r7, pc} + nop +_0205FC98: .word sub_0205FBE8 + 1 + + thumb_func_start sub_0205FC9C +sub_0205FC9C: ; 0x0205FC9C + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_0203384C + cmp r0, #0x0 + beq _0205FCBC + ldrh r1, [r4, #0x12] + ldrh r2, [r4, #0x14] + add r0, r5, #0x0 + bl sub_02038790 + str r0, [r4, #0x8] + mov r0, #0x1 + pop {r3-r5, pc} +_0205FCBC: + mov r0, #0x1 + str r0, [r4, #0x0] + mov r0, #0x2 + pop {r3-r5, pc} + + thumb_func_start sub_0205FCC4 +sub_0205FCC4: ; 0x0205FCC4 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_0204647C + cmp r0, #0x0 + beq _0205FCD6 + mov r0, #0x1 + pop {r4, pc} +_0205FCD6: + ldr r0, [r4, #0x8] + ldr r0, [r0, #0x20] + str r0, [r4, #0x0] + ldr r0, [r4, #0x8] + bl sub_02016A18 + mov r0, #0x2 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0205FCE8 +sub_0205FCE8: ; 0x0205FCE8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + cmp r1, #0x0 + beq _0205FD0A + cmp r1, #0x1 + beq _0205FD14 + cmp r1, #0x2 + beq _0205FD1E + b _0205FD34 +_0205FD0A: + add r1, r5, #0x0 + bl sub_0205FC9C + str r0, [r4, #0x4] + b _0205FD34 +_0205FD14: + add r1, r5, #0x0 + bl sub_0205FCC4 + str r0, [r4, #0x4] + b _0205FD34 +_0205FD1E: + ldrh r1, [r4, #0x10] + add r0, r5, #0x0 + bl sub_020394B8 + ldr r1, [r4, #0x0] + strh r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_0205FD34: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0205FD38 +sub_0205FD38: ; 0x0205FD38 + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_02046528 + str r0, [sp, #0x0] + mov r0, #0xb + mov r1, #0x18 + bl sub_02016998 + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + blx sub_020CE34C + strh r5, [r4, #0x12] + strh r7, [r4, #0x14] + ldr r0, [sp, #0x0] + strh r6, [r4, #0x10] + ldr r0, [r0, #0x10] + ldr r1, _0205FD6C ; =sub_0205FCE8 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + .balign 4 +_0205FD6C: .word sub_0205FCE8 + 1 + + thumb_func_start sub_0205FD70 +sub_0205FD70: ; 0x0205FD70 + push {r3-r7, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + bl sub_02031190 + mov r1, #0x1 + sub r0, r1, r0 + bl sub_020316E0 + add r7, r0, #0x0 + bne _0205FD96 + mov r0, #0x0 + pop {r3-r7, pc} +_0205FD96: + ldrh r1, [r5, #0x2] + add r0, r6, #0x0 + bl sub_020394B8 + add r4, r0, #0x0 + ldrh r0, [r5, #0x0] + cmp r0, #0x0 + beq _0205FDB0 + cmp r0, #0x1 + beq _0205FDBC + cmp r0, #0x2 + beq _0205FDC8 + b _0205FDD2 +_0205FDB0: + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_02244660 + strh r0, [r4, #0x0] + b _0205FDD2 +_0205FDBC: + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_022446BC + strh r0, [r4, #0x0] + b _0205FDD2 +_0205FDC8: + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_022446E0 + strh r0, [r4, #0x0] +_0205FDD2: + add r0, r5, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r7, pc} + + thumb_func_start sub_0205FDDC +sub_0205FDDC: ; 0x0205FDDC + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + mov r0, #0xb + mov r1, #0x4 + bl sub_02016998 + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x4 + blx sub_020CE34C + strh r5, [r4, #0x0] + strh r6, [r4, #0x2] + ldr r0, [r7, #0x10] + ldr r1, _0205FE0C ; =sub_0205FD70 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + nop +_0205FE0C: .word sub_0205FD70 + 1 + + thumb_func_start sub_0205FE10 +sub_0205FE10: ; 0x0205FE10 + push {r4-r7, lr} + sub sp, #0x14 + str r0, [sp, #0x0] + bl sub_02029FC8 + mov r1, #0x35 + bl sub_0202A150 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + cmp r0, #0x14 + bhs _0205FE30 + add sp, #0x14 + mov r0, #0x0 + pop {r4-r7, pc} +_0205FE30: + ldr r0, [sp, #0x0] + bl sub_0202A8D8 + mov r1, #0xd + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + mov r1, #0x0 + lsr r7, r0, #0x18 + add r0, r4, #0x0 + add r2, r1, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + add r0, r4, #0x0 + mov r1, #0x1 + mov r2, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r4, #0x0 + mov r1, #0xe + mov r2, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + add r0, r4, #0x0 + mov r1, #0x2 + mov r2, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + add r0, r4, #0x0 + mov r1, #0x3 + mov r2, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4] + cmp r7, #0x0 + beq _0205FEA2 + cmp r6, #0x0 + beq _0205FEA2 + cmp r5, #0x0 + beq _0205FEA2 + add sp, #0x14 + mov r0, #0x0 + pop {r4-r7, pc} +_0205FEA2: + ldr r0, [sp, #0x0] + bl sub_02026CC4 + cmp r7, #0x0 + bne _0205FEDC + mov r1, #0x55 + bl sub_02025D94 + cmp r0, #0x0 + beq _0205FEC6 + add r0, r4, #0x0 + mov r1, #0xd + mov r2, #0x1 + bl sub_0202A578 + add sp, #0x14 + mov r0, #0x1 + pop {r4-r7, pc} +_0205FEC6: + ldr r0, [sp, #0xc] + cmp r0, #0x0 + bne _0205FED6 + add r0, r4, #0x0 + mov r1, #0xe + mov r2, #0x1 + bl sub_0202A578 +_0205FED6: + add sp, #0x14 + mov r0, #0x4 + pop {r4-r7, pc} +_0205FEDC: + ldr r1, [sp, #0x10] + cmp r1, #0x32 + bhs _0205FEE8 + add sp, #0x14 + mov r0, #0x0 + pop {r4-r7, pc} +_0205FEE8: + cmp r6, #0x0 + bne _0205FF1C + mov r1, #0x56 + bl sub_02025D94 + cmp r0, #0x0 + beq _0205FF06 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x1 + bl sub_0202A578 + add sp, #0x14 + mov r0, #0x2 + pop {r4-r7, pc} +_0205FF06: + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bne _0205FF16 + add r0, r4, #0x0 + mov r1, #0x2 + mov r2, #0x1 + bl sub_0202A578 +_0205FF16: + add sp, #0x14 + mov r0, #0x4 + pop {r4-r7, pc} +_0205FF1C: + cmp r1, #0x64 + blo _0205FF24 + cmp r5, #0x0 + beq _0205FF2A +_0205FF24: + add sp, #0x14 + mov r0, #0x0 + pop {r4-r7, pc} +_0205FF2A: + mov r1, #0x57 + bl sub_02025D94 + cmp r0, #0x0 + beq _0205FF44 + mov r1, #0x1 + add r0, r4, #0x0 + add r2, r1, #0x0 + bl sub_0202A578 + add sp, #0x14 + mov r0, #0x3 + pop {r4-r7, pc} +_0205FF44: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _0205FF54 + add r0, r4, #0x0 + mov r1, #0x3 + mov r2, #0x1 + bl sub_0202A578 +_0205FF54: + mov r0, #0x4 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0205FF5C +sub_0205FF5C: ; 0x0205FF5C + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + bl sub_02029FC8 + mov r1, #0x35 + bl sub_0202A150 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + cmp r7, #0x14 + bhs _0205FF7A + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0205FF7A: + add r0, r4, #0x0 + bl sub_0202A8D8 + mov r1, #0xd + mov r2, #0x0 + str r0, [sp, #0x8] + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + mov r1, #0x0 + ldr r0, [sp, #0x8] + add r2, r1, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x8] + mov r1, #0x1 + mov r2, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r0, [sp, #0x8] + mov r1, #0xe + mov r2, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4] + ldr r0, [sp, #0x8] + mov r1, #0x2 + mov r2, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r0, [sp, #0x8] + mov r1, #0x3 + mov r2, #0x0 + bl sub_0202A578 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r6, #0x0 + beq _0205FFEA + cmp r4, #0x0 + beq _0205FFEA + cmp r5, #0x0 + beq _0205FFEA + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0205FFEA: + cmp r6, #0x0 + bne _02060000 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _0205FFFA + add sp, #0xc + mov r0, #0x4 + pop {r4-r7, pc} +_0205FFFA: + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_02060000: + cmp r7, #0x32 + bhs _0206000A + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0206000A: + cmp r4, #0x0 + bne _02060020 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _0206001A + add sp, #0xc + mov r0, #0x5 + pop {r4-r7, pc} +_0206001A: + add sp, #0xc + mov r0, #0x2 + pop {r4-r7, pc} +_02060020: + cmp r7, #0x64 + bhs _0206002A + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0206002A: + cmp r5, #0x0 + beq _02060034 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_02060034: + cmp r0, #0x0 + beq _0206003E + add sp, #0xc + mov r0, #0x6 + pop {r4-r7, pc} +_0206003E: + mov r0, #0x3 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02060044 +sub_02060044: ; 0x02060044 + add r0, #0xa8 + ldr r0, [r0, #0x0] + ldr r2, [r1, #0x0] + ldrh r3, [r0, #0x24] + add r2, r3, r2 + strh r2, [r0, #0x24] + ldrh r3, [r0, #0x28] + ldr r2, [r1, #0x4] + add r2, r3, r2 + strh r2, [r0, #0x28] + ldrh r2, [r0, #0x26] + ldr r1, [r1, #0x8] + add r1, r2, r1 + strh r1, [r0, #0x26] + bx lr + .balign 4 + + thumb_func_start sub_02060064 +sub_02060064: ; 0x02060064 + ldr r1, _0206006C ; =0x02E90EDD + mul r1, r0 + add r0, r1, #0x1 + bx lr + .balign 4 +_0206006C: .word 0x02E90EDD + + thumb_func_start sub_02060070 +sub_02060070: ; 0x02060070 + ldr r1, _02060078 ; =0x5D588B65 + mul r1, r0 + add r0, r1, #0x1 + bx lr + .balign 4 +_02060078: .word 0x5D588B65 + + thumb_func_start sub_0206007C +sub_0206007C: ; 0x0206007C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0202881C + bl sub_020287A4 + bl sub_02060070 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0202A8D8 + add r1, r4, #0x0 + bl sub_0202A5CC + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020600A0 +sub_020600A0: ; 0x020600A0 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_0202A8D8 + add r6, r0, #0x0 + bl sub_0202A5D0 + bl sub_02060070 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0202A5CC + add r0, r4, #0x0 + bl sub_02060064 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_0202A8CC + mov r1, #0xa + add r2, sp, #0x0 + bl sub_0202A2C4 + ldr r0, [sp, #0x0] + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_020600DC +sub_020600DC: ; 0x020600DC + push {r3-r6, lr} + sub sp, #0x4 + add r6, r0, #0x0 + bl sub_0202A8D8 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0202A8CC + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0202A5D0 + bl sub_02060064 + mov r1, #0x0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_0202A240 + add r1, r0, #0x0 + lsl r1, r1, #0x10 + add r0, r4, #0x0 + lsr r1, r1, #0x10 + mov r2, #0x0 + bl sub_0202A538 + mov r1, #0x18 + add r5, r0, #0x0 + mul r5, r1 + mov r4, #0x0 + cmp r5, #0x0 + ble _0206012E + ldr r0, [sp, #0x0] +_02060122: + bl sub_02060064 + add r4, r4, #0x1 + str r0, [sp, #0x0] + cmp r4, r5 + blt _02060122 +_0206012E: + add r0, r6, #0x0 + bl sub_0202A8CC + mov r1, #0xa + add r2, sp, #0x0 + bl sub_0202A2C4 + ldr r0, [sp, #0x0] + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02060144 +sub_02060144: ; 0x02060144 + ldr r0, [r0, #0x1c] + ldr r1, [r0, #0x0] + ldr r0, _02060158 ; =0x000001ED + cmp r1, r0 + bne _02060152 + mov r0, #0x1 + bx lr +_02060152: + mov r0, #0x0 + bx lr + nop +_02060158: .word 0x000001ED + + thumb_func_start sub_0206015C +sub_0206015C: ; 0x0206015C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0xb + mov r1, #0x10 + bl sub_020169D8 + add r4, r0, #0x0 + mov r0, #0xb + bl sub_02244DB0 + str r0, [r4, #0x0] + mov r0, #0xb + add r1, r5, #0x0 + bl sub_02245114 + str r0, [r4, #0x4] + mov r0, #0x0 + strb r0, [r4, #0xc] + strb r0, [r4, #0xd] + ldr r0, [r5, #0x10] + ldr r1, _02060190 ; =sub_02060194 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r5, pc} + nop +_02060190: .word sub_02060194 + 1 + + thumb_func_start sub_02060194 +sub_02060194: ; 0x02060194 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldrb r0, [r4, #0xc] + cmp r0, #0x8 + bls _020601B0 + b _02060332 +_020601B0: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r2, #0 + lsl r4, r6, #0 + lsl r0, r0, #0x1 + lsl r0, r5, #0x1 + lsl r4, r6, #0x1 + lsl r4, r4, #0x3 + lsl r2, r6, #0x4 + lsl r6, r7, #0x4 + lsl r4, r2, #0x5 + add r0, r6, #0x0 + mov r1, #0x1 + bl sub_0206367C + ldrb r0, [r4, #0xd] + ldr r1, [r4, #0x4] + bl sub_02245198 + ldr r0, [r4, #0x4] + bl sub_022451F0 + str r0, [r4, #0x8] + add r0, r5, #0x0 + bl sub_0204AFC8 + mov r0, #0x1 + strb r0, [r4, #0xc] + b _02060332 +_020601F2: + .byte 0x28, 0x1C, 0xEA, 0xF7, 0xA2, 0xFE, 0x02, 0x20, 0x20, 0x73, 0x99, 0xE0, 0xF0, 0x68 + .byte 0xE6, 0xF7, 0x54, 0xF8, 0x61, 0x7B, 0x00, 0x29, 0x02, 0xD1, 0xFE, 0xF7, 0xDB, 0xFF, 0x03, 0xE0 + .byte 0x05, 0x29, 0x01, 0xD1, 0xFE, 0xF7, 0xDE, 0xFF, 0xA1, 0x68, 0x28, 0x1C, 0xE8, 0xF7, 0xA0, 0xFF + .byte 0x03, 0x20, 0x20, 0x73, 0x85, 0xE0, 0x28, 0x1C, 0xEA, 0xF7, 0xAC, 0xFE, 0x04, 0x20, 0x20, 0x73 + .byte 0x7F, 0xE0, 0xB0, 0x6B, 0xF5, 0xF7, 0xB4, 0xF8, 0x61, 0x7B, 0x07, 0x1C, 0x49, 0x1C, 0x61, 0x73 + .byte 0x61, 0x7B, 0x05, 0x29, 0x24, 0xD8, 0x30, 0x1C, 0xE4, 0xF1, 0x1E, 0xFF, 0x06, 0x1C, 0x38, 0x1C + .byte 0x01, 0x21, 0xF8, 0xF7, 0x23, 0xFB, 0x20, 0x68, 0x31, 0x1C, 0xE4, 0xF1, 0xB3, 0xFD, 0x20, 0x68 + .byte 0xE4, 0xF1, 0x4A, 0xFE, 0x00, 0x20, 0xA0, 0x73, 0x33, 0x48, 0xA5, 0xF7, 0x2D, 0xF9, 0x00, 0x20 + .byte 0x00, 0x90, 0x06, 0x20, 0x01, 0x90, 0x01, 0x20, 0x02, 0x90, 0x0B, 0x20, 0x03, 0x90, 0x2F, 0x4B + .byte 0x28, 0x1C, 0x03, 0x21, 0x11, 0x22, 0xEB, 0xF7, 0x95, 0xFF, 0x05, 0x20, 0x20, 0x73, 0x50, 0xE0 + .byte 0x00, 0x21, 0xF8, 0xF7, 0x03, 0xFB, 0x28, 0x1C, 0xEA, 0xF7, 0xB8, 0xFE, 0x08, 0x20, 0x20, 0x73 + .byte 0x47, 0xE0, 0xA0, 0x7B, 0x40, 0x1C, 0xA0, 0x73, 0xA0, 0x7B, 0x3C, 0x28, 0x04, 0xD2, 0x24, 0x48 + .byte 0x81, 0x6C, 0x01, 0x20, 0x08, 0x42, 0x3C, 0xD0, 0x60, 0x7B, 0x61, 0x68, 0xE4, 0xF1, 0x6C, 0xFF + .byte 0x60, 0x68, 0xE4, 0xF1, 0x95, 0xFF, 0xA0, 0x60, 0x1B, 0x48, 0xA5, 0xF7, 0xFD, 0xF8, 0x00, 0x20 + .byte 0x00, 0x90, 0x06, 0x20, 0x01, 0x90, 0x01, 0x20, 0x02, 0x90, 0x0B, 0x20, 0x03, 0x90, 0x17, 0x4B + .byte 0x28, 0x1C, 0x03, 0x21, 0x10, 0x22, 0xEB, 0xF7, 0x65, 0xFF, 0x06, 0x20, 0x20, 0x73, 0x20, 0xE0 + .byte 0x20, 0x68, 0xE4, 0xF1, 0x11, 0xFE, 0x07, 0x20, 0x20, 0x73, 0x1A, 0xE0, 0x20, 0x68, 0xE4, 0xF1 + .byte 0x11, 0xFE, 0x00, 0x28, 0x15, 0xD0, 0x20, 0x68, 0xE4, 0xF1, 0x10, 0xFE, 0x01, 0x20, 0x20, 0x73 + .byte 0x0F, 0xE0, 0x30, 0x1C, 0x00, 0x21, 0x03, 0xF0, 0xB1, 0xF9, 0x60, 0x68, 0xE4, 0xF1, 0x38, 0xFF + .byte 0x20, 0x68, 0xE4, 0xF1, 0x4B, 0xFD, 0x20, 0x1C, 0xB6, 0xF7, 0x76, 0xFB, 0x04, 0xB0, 0x01, 0x20 + .byte 0xF8, 0xBD +_02060332: + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} +_02060338: + .byte 0x79, 0x06, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 + .byte 0xB8, 0x48, 0x1C, 0x02 + + thumb_func_start sub_02060344 +sub_02060344: ; 0x02060344 + push {r3-r7, lr} + add r5, r0, #0x0 + str r1, [sp, #0x0] + cmp r1, #0x0 + ble _020603AE + bl sub_02029ABC + bl sub_02029ACC + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020238F4 + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + mov r1, #0xa + add r6, r0, #0x0 + mov r5, #0x0 + mul r6, r1 +_0206036A: + add r0, r7, #0x0 + add r1, r5, #0x0 + bl sub_020239D0 + cmp r0, #0x0 + beq _020603A4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02029AD0 + add r1, r0, #0x0 + cmp r1, #0x0 + ble _0206038C + cmp r1, #0xc8 + bge _0206038C + sub r1, r1, r6 + b _02060396 +_0206038C: + cmp r1, #0xc8 + blt _02060394 + bl sub_02020C2C +_02060394: + mov r1, #0x0 +_02060396: + cmp r1, #0x0 + bge _0206039C + mov r1, #0x0 +_0206039C: + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_02029AD8 +_020603A4: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x8 + blo _0206036A +_020603AE: + pop {r3-r7, pc} + + thumb_func_start sub_020603B0 +sub_020603B0: ; 0x020603B0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0202AA38 + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02060588 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020603C8 +sub_020603C8: ; 0x020603C8 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r5, #0x0 +_020603CE: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0202AA74 + cmp r0, #0x0 + beq _020603E2 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_020603B0 +_020603E2: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x3 + blo _020603CE + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020603F0 +sub_020603F0: ; 0x020603F0 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_020603F6: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0202AA74 + cmp r0, #0x0 + beq _02060430 + bl sub_0201B9EC + lsl r0, r0, #0x4 + lsr r6, r0, #0x10 + cmp r6, #0x10 + blo _02060412 + bl sub_02020C2C +_02060412: + cmp r6, #0x0 + bne _02060420 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020603B0 + b _02060430 +_02060420: + add r0, r5, #0x0 + bl sub_0202AA38 + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020605D8 +_02060430: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x3 + blo _020603F6 + pop {r4-r6, pc} + + thumb_func_start sub_0206043C +sub_0206043C: ; 0x0206043C + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x1d + blo _02060448 + bl sub_02020C2C +_02060448: + ldr r0, _02060450 ; =0x020F7460 + lsl r1, r4, #0x2 + ldr r0, [r0, r1] + pop {r4, pc} + .balign 4 +_02060450: .word 0x020F7460 + + thumb_func_start sub_02060454 +sub_02060454: ; 0x02060454 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r5, #0x0 +_0206045A: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0202AA74 + cmp r0, #0x0 + beq _0206046A + mov r0, #0x1 + pop {r3-r5, pc} +_0206046A: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x3 + blo _0206045A + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02060478 +sub_02060478: ; 0x02060478 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02060454 + cmp r0, #0x0 + beq _0206048E + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0202AA20 +_0206048E: + pop {r3-r5, pc} + + thumb_func_start sub_02060490 +sub_02060490: ; 0x02060490 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r1, #0x0 + str r0, [sp, #0x10] + bl sub_0202A9B0 + add r1, r5, #0x0 + str r0, [sp, #0x14] + bl sub_0202AAA0 + add r4, r0, #0x0 + cmp r5, #0x0 + beq _020604B4 + cmp r5, #0x1 + beq _020604BA + cmp r5, #0x2 + beq _020604C2 + b _020604C8 +_020604B4: + ldr r7, _02060580 ; =0x000001E1 + mov r6, #0x32 + b _020604D0 +_020604BA: + mov r7, #0x7a + lsl r7, r7, #0x2 + mov r6, #0x32 + b _020604D0 +_020604C2: + ldr r7, _02060584 ; =0x000001EB + mov r6, #0x28 + b _020604D0 +_020604C8: + bl sub_02020C2C + add sp, #0x20 + pop {r3-r7, pc} +_020604D0: + add r0, r4, #0x0 + mov r1, #0x4 + add r2, r7, #0x0 + bl sub_0202AAFC + add r0, r4, #0x0 + mov r1, #0x6 + add r2, r6, #0x0 + bl sub_0202AAFC + ldr r0, [sp, #0x10] + bl sub_020238F4 + str r0, [sp, #0x18] + mov r0, #0x4 + bl sub_020669C0 + str r0, [sp, #0x1c] + bl sub_02066978 + ldr r0, [sp, #0x18] + bl sub_020239C0 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + mov r1, #0x1 + str r1, [sp, #0x8] + str r0, [sp, #0xc] + ldr r0, [sp, #0x1c] + add r1, r7, #0x0 + add r2, r6, #0x0 + mov r3, #0x20 + bl sub_02066ACC + add r0, r4, #0x0 + mov r1, #0x7 + mov r2, #0x0 + bl sub_0202AAFC + add r0, r4, #0x0 + mov r1, #0x8 + mov r2, #0x1 + bl sub_0202AAFC + ldr r0, [sp, #0x1c] + mov r1, #0xae + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_0202AAFC + mov r1, #0x0 + ldr r0, [sp, #0x1c] + add r2, r1, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_0202AAFC + ldr r0, [sp, #0x1c] + mov r1, #0xa3 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x5 + bl sub_0202AAFC + ldr r0, [sp, #0x1c] + bl sub_02016A18 + ldr r0, [sp, #0x14] + bl sub_0202AA38 + add r2, r0, #0x0 + ldr r0, [sp, #0x14] + add r1, r5, #0x0 + bl sub_02060588 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 +_02060580: .word 0x000001E1 +_02060584: .word 0x000001EB + + thumb_func_start sub_02060588 +sub_02060588: ; 0x02060588 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + add r6, r2, #0x0 + bl sub_0202AA40 + ldr r7, _020605D0 ; =0x020F7460 + lsl r0, r0, #0x2 + ldr r4, [r7, r0] +_0206059C: + bl sub_0201B9EC + ldr r1, _020605D4 ; =0x000008D4 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x1d + blo _020605B2 + bl sub_02020C2C +_020605B2: + lsl r0, r5, #0x18 + lsr r2, r0, #0x18 + lsl r0, r2, #0x2 + ldr r3, [r7, r0] + cmp r3, r6 + beq _0206059C + cmp r3, r4 + beq _0206059C + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + bl sub_02060688 + add sp, #0x8 + pop {r3-r7, pc} + nop +_020605D0: .word 0x020F7460 +_020605D4: .word 0x000008D4 + + thumb_func_start sub_020605D8 +sub_020605D8: ; 0x020605D8 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + add r7, r2, #0x0 + bl sub_0202AA40 + mov r1, #0xc + ldr r2, _0206067C ; =0x020F74D4 + mul r1, r0 + ldrh r0, [r2, r1] + add r4, r2, r1 + cmp r0, #0x1 + bne _0206061E + ldrh r0, [r4, #0x2] + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + ldr r0, _02060680 ; =0x020F7460 + lsl r1, r2, #0x2 + ldr r3, [r0, r1] + cmp r3, r7 + bne _02060612 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r2, r7, #0x0 + bl sub_02060588 + add sp, #0x8 + pop {r3-r7, pc} +_02060612: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + bl sub_02060688 + add sp, #0x8 + pop {r3-r7, pc} +_0206061E: + ldrh r5, [r4, #0x0] + cmp r5, #0x0 + bne _02060628 + bl sub_02020C2C +_02060628: + cmp r5, #0x1 + bhi _02060630 + mov r6, #0x0 + b _02060658 +_02060630: + bl sub_0201B9EC + add r6, r0, #0x0 + ldr r0, _02060684 ; =0x0000FFFF + add r1, r5, #0x0 + blx sub_020EBC80 + add r1, r0, #0x0 + add r1, r1, #0x1 + lsl r1, r1, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r6, r5 + blo _02060658 + bl sub_02020C2C +_02060658: + lsl r0, r6, #0x18 + lsr r0, r0, #0x17 + add r0, r4, r0 + ldrh r0, [r0, #0x2] + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + ldr r0, _02060680 ; =0x020F7460 + lsl r1, r2, #0x2 + ldr r3, [r0, r1] + cmp r3, r7 + beq _0206061E + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + bl sub_02060688 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0206067C: .word 0x020F74D4 +_02060680: .word 0x020F7460 +_02060684: .word 0x0000FFFF + + thumb_func_start sub_02060688 +sub_02060688: ; 0x02060688 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_0202AAA0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0202AA58 + ldr r0, [sp, #0x0] + mov r1, #0x1 + add r2, r7, #0x0 + bl sub_0202AAFC + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020606B0 +sub_020606B0: ; 0x020606B0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r0, r4, #0x0 + bl sub_0204652C + add r2, r0, #0x0 + ldr r1, _020606CC ; =0x020F7630 + add r0, r4, #0x0 + add r2, #0xc + bl sub_02046500 + pop {r4, pc} + .balign 4 +_020606CC: .word 0x020F7630 + + thumb_func_start sub_020606D0 +sub_020606D0: ; 0x020606D0 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x6 + bhi _0206078A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r4, r6, #0 + lsl r2, r0, #0x1 + lsl r0, r2, #0x1 + lsl r6, r3, #0x1 + lsl r4, r5, #0x1 + lsl r2, r7, #0x1 + ldr r0, [r4, #0x24] + add r3, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x28] + add r3, #0xc + str r0, [sp, #0x4] + ldr r1, [r4, #0x0] + ldr r2, [r4, #0x8] + add r0, r6, #0x0 + bl sub_0224891C + ldr r1, [r4, #0x0] + ldr r2, [r4, #0x8] + add r0, r6, #0x0 + bl sub_022488FC + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _0206078A +_0206072C: + .byte 0x28, 0x1C, 0xEA, 0xF7 + .byte 0x4B, 0xFC, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x27, 0xE0, 0x28, 0x1C, 0xEA, 0xF7, 0xFE, 0xFB + .byte 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x20, 0xE0, 0x28, 0x1C, 0xFF, 0xF7, 0xB1, 0xFF, 0x60, 0x68 + .byte 0x40, 0x1C, 0x60, 0x60, 0x19, 0xE0, 0x28, 0x1C, 0xEA, 0xF7, 0x14, 0xFC, 0x60, 0x68, 0x40, 0x1C + .byte 0x60, 0x60, 0x12, 0xE0, 0x28, 0x1C, 0xEA, 0xF7, 0x51, 0xFC, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60 + .byte 0x0B, 0xE0, 0x60, 0x6A, 0xB6, 0xF7, 0x50, 0xF9, 0xA0, 0x6A, 0xB6, 0xF7, 0x4D, 0xF9, 0x20, 0x1C + .byte 0xB6, 0xF7, 0x4A, 0xF9, 0x02, 0xB0, 0x01, 0x20, 0x70, 0xBD +_0206078A: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02060790 +sub_02060790: ; 0x02060790 + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + add r0, r3, #0x0 + mov r1, #0x2c + add r6, r2, #0x0 + str r3, [sp, #0x0] + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x2c + add r4, r0, #0x0 + blx sub_020DF4A4 + mov r0, #0x0 + str r0, [r4, #0x4] + str r5, [r4, #0x0] + ldr r0, [sp, #0x0] + str r6, [r4, #0x8] + bl sub_020669C0 + str r0, [r4, #0x24] + ldr r0, [sp, #0x0] + bl sub_020669C0 + str r0, [r4, #0x28] + ldr r1, _020607D0 ; =sub_020606D0 + add r0, r7, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r7, pc} + .balign 4 +_020607D0: .word sub_020606D0 + 1 + + thumb_func_start sub_020607D4 +sub_020607D4: ; 0x020607D4 + push {r3-r7, lr} + sub sp, #0x28 + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + mov r1, #0x80 + add r7, r2, #0x0 + str r3, [sp, #0xc] + bl sub_020169D8 + add r4, r0, #0x0 + strb r6, [r4, #0x1] + strb r7, [r4, #0x4] + ldr r0, [sp, #0xc] + add r2, r4, #0x0 + str r0, [r4, #0x18] + ldr r0, [sp, #0x40] + add r2, #0x34 + str r0, [r4, #0x1c] + ldr r0, [sp, #0x44] + mov r7, #0x9 + str r0, [r4, #0x20] + ldr r3, [r5, #0x40] +_02060802: + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + sub r7, r7, #0x1 + bne _02060802 + mov r7, #0x0 + sub r0, r7, #0x1 + str r0, [r4, #0x10] + strb r7, [r4, #0x5] + mov r0, #0x40 + add r1, r7, #0x0 + add r2, r7, #0x0 + str r7, [r4, #0x8] + bl sub_0200433C + cmp r6, #0x3 + bne _0206085C + mov r0, #0x22 + str r0, [sp, #0x14] + ldr r0, [r5, #0x38] + bl sub_02055320 + add r6, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_0205532C + add r1, r0, #0x0 + mov r0, #0x3 + str r0, [sp, #0x0] + mov r0, #0x6 + str r0, [sp, #0x4] + add r0, sp, #0x18 + mov r2, #0x1 + str r0, [sp, #0x8] + add r0, r6, #0x0 + sub r3, r2, #0x4 + bl sub_0204A840 + mov r0, #0x19 + lsl r0, r0, #0x10 + str r0, [sp, #0x10] + mov r0, #0xe + lsl r0, r0, #0x10 + mov r7, #0x1 + str r0, [r4, #0x10] + b _02060892 +_0206085C: + cmp r6, #0x2 + bne _02060892 + ldr r0, _02060918 ; =0x000001C1 + str r0, [sp, #0x14] + ldr r0, [r5, #0x38] + bl sub_02055320 + add r6, r0, #0x0 + ldr r0, [r5, #0x38] + bl sub_0205532C + add r1, r0, #0x0 + mov r0, #0x6 + str r0, [sp, #0x0] + mov r2, #0x3 + str r2, [sp, #0x4] + add r0, sp, #0x18 + str r0, [sp, #0x8] + add r0, r6, #0x0 + sub r2, r2, #0x5 + mov r3, #0x2 + bl sub_0204A840 + mov r0, #0x3 + lsl r0, r0, #0x12 + mov r7, #0x1 + str r0, [sp, #0x10] +_02060892: + cmp r7, #0x0 + beq _02060906 + add r3, r4, #0x0 + ldr r1, [sp, #0x14] + add r0, r5, #0x0 + add r2, sp, #0x18 + add r3, #0x30 + bl sub_0204A8C4 + cmp r0, #0x0 + beq _020608F8 + ldr r0, [sp, #0x10] + add r1, r4, #0x0 + str r0, [r4, #0xc] + mov r0, #0x0 + str r0, [r4, #0x14] + strb r0, [r4, #0x3] + mov r0, #0x1 + lsl r0, r0, #0xa + str r0, [r4, #0x7c] + ldr r0, [r5, #0x38] + add r1, #0x24 + bl sub_02055350 + ldr r0, [r5, #0x20] + bl sub_0201EC88 + add r0, r4, #0x0 + ldr r1, [r5, #0x20] + add r0, #0x24 + bl sub_0201EC68 + mov r0, #0x0 + ldr r1, [r4, #0x10] + mvn r0, r0 + cmp r1, r0 + beq _020608EC + mov r0, #0x0 + strb r0, [r4, #0x2] + mov r0, #0x1 + strb r0, [r4, #0x0] + add r0, r5, #0x0 + bl sub_02060BDC + b _020608F0 +_020608EC: + mov r0, #0x0 + strb r0, [r4, #0x0] +_020608F0: + ldr r0, _0206091C ; =0x000006DD + bl sub_020054C8 + b _0206090A +_020608F8: + bl sub_02020C2C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x28 + pop {r3-r7, pc} +_02060906: + mov r0, #0x2 + strb r0, [r4, #0x0] +_0206090A: + ldr r0, [r5, #0x10] + ldr r1, _02060920 ; =sub_020609A0 + add r2, r4, #0x0 + bl sub_0204640C + add sp, #0x28 + pop {r3-r7, pc} + .balign 4 +_02060918: .word 0x000001C1 +_0206091C: .word 0x000006DD +_02060920: .word sub_020609A0 + 1 + + thumb_func_start sub_02060924 +sub_02060924: ; 0x02060924 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0xb + mov r1, #0x8 + add r6, r2, #0x0 + bl sub_020169D8 + add r2, r0, #0x0 + str r6, [r2, #0x4] + strb r4, [r2, #0x0] + ldr r0, [r5, #0x10] + ldr r1, _02060944 ; =sub_02060948 + bl sub_0204640C + pop {r4-r6, pc} + .balign 4 +_02060944: .word sub_02060948 + 1 + + thumb_func_start sub_02060948 +sub_02060948: ; 0x02060948 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046530 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _02060972 + cmp r0, #0x1 + beq _0206097C + cmp r0, #0x2 + beq _0206098A + b _02060994 +_02060972: + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_0203888C + b _02060994 +_0206097C: + add r0, r4, #0x0 + bl sub_0204647C + cmp r0, #0x0 + beq _02060994 + mov r0, #0x0 + pop {r4-r6, pc} +_0206098A: + add r0, r6, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r4-r6, pc} +_02060994: + ldr r0, [r5, #0x0] + add r0, r0, #0x1 + str r0, [r5, #0x0] + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020609A0 +sub_020609A0: ; 0x020609A0 + push {r3-r6, lr} + sub sp, #0xc + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldrb r1, [r4, #0x0] + cmp r1, #0x7 + bhi _020609E4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r1, #0 + lsl r4, r4, #0 + lsl r6, r0, #0x2 + lsl r4, r5, #0x2 + lsl r4, r5, #0x3 + lsl r6, r7, #0x3 + lsl r2, r3, #0x4 + lsl r6, r5, #0x4 + bl sub_02060C80 + add r0, r4, #0x0 + bl sub_02060B0C + cmp r0, #0x0 + bne _020609E6 +_020609E4: + b _02060B00 +_020609E6: + mov r0, #0x2 + strb r0, [r4, #0x0] + b _02060B00 +_020609EC: + .byte 0x00, 0xF0, 0x48, 0xF9 + .byte 0x20, 0x1C, 0x00, 0xF0, 0x8B, 0xF8, 0x06, 0x1C, 0xA0, 0x78, 0x00, 0x28, 0x16, 0xD1, 0x20, 0x1C + .byte 0x21, 0x1C, 0x10, 0x30, 0x14, 0x31, 0xA2, 0x1C, 0x00, 0xF0, 0xDE, 0xF8, 0x00, 0x28, 0x77, 0xD0 + .byte 0x28, 0x6D, 0x01, 0x21, 0x00, 0x22, 0x79, 0xF1, 0x69, 0xFD, 0x28, 0x6D, 0x02, 0x21, 0x00, 0x22 + .byte 0x79, 0xF1, 0x64, 0xFD, 0x38, 0x48, 0xA4, 0xF7, 0x4F, 0xFD, 0x69, 0xE0, 0x28, 0x6D, 0x01, 0x21 + .byte 0x79, 0xF1, 0xAC, 0xFD, 0x00, 0x28, 0x63, 0xD0, 0x28, 0x6D, 0x02, 0x21, 0x79, 0xF1, 0xA6, 0xFD + .byte 0x00, 0x28, 0x5D, 0xD0, 0x00, 0x2E, 0x5B, 0xD0, 0x02, 0x20, 0x20, 0x70, 0x58, 0xE0, 0x06, 0x20 + .byte 0x00, 0x90, 0x01, 0x20, 0x01, 0x90, 0x0B, 0x20, 0x02, 0x90, 0x00, 0x20, 0x01, 0x1C, 0x02, 0x1C + .byte 0x03, 0x1C, 0xAD, 0xF7, 0xB5, 0xFB, 0x00, 0x20, 0x06, 0x21, 0xA4, 0xF7, 0xAF, 0xFC, 0x03, 0x20 + .byte 0x20, 0x70, 0x45, 0xE0, 0xAD, 0xF7, 0x48, 0xFC, 0x00, 0x28, 0x03, 0xD0, 0xA4, 0xF7, 0xC2, 0xFC + .byte 0x00, 0x28, 0x02, 0xD0, 0x03, 0xB0, 0x00, 0x20, 0x78, 0xBD, 0x00, 0x20, 0x21, 0x69, 0xC0, 0x43 + .byte 0x81, 0x42, 0x09, 0xD0, 0xE8, 0x6C, 0x29, 0x6D, 0x01, 0x22, 0x79, 0xF1, 0x57, 0xFD, 0xE8, 0x6C + .byte 0x29, 0x6D, 0x02, 0x22, 0x79, 0xF1, 0x52, 0xFD, 0x30, 0x1C, 0xEA, 0xF7, 0x47, 0xFA, 0x04, 0x20 + .byte 0x20, 0x70, 0x25, 0xE0, 0x61, 0x78, 0x22, 0x1C, 0x28, 0x1C, 0x34, 0x32, 0xFF, 0xF7, 0x32, 0xFF + .byte 0x05, 0x20, 0x20, 0x70, 0x1C, 0xE0, 0x20, 0x6A, 0x00, 0x22, 0x00, 0x90, 0x20, 0x79, 0xD2, 0x43 + .byte 0x01, 0x90, 0xA1, 0x69, 0xE3, 0x69, 0x30, 0x1C, 0xE8, 0xF7, 0x66, 0xFB, 0x06, 0x20, 0x20, 0x70 + .byte 0x0E, 0xE0, 0xA1, 0x69, 0x28, 0x1C, 0xEA, 0xF7, 0x51, 0xF9, 0x30, 0x1C, 0xEA, 0xF7, 0xFC, 0xFA + .byte 0x07, 0x20, 0x20, 0x70, 0x04, 0xE0, 0xB5, 0xF7, 0x8F, 0xFF, 0x03, 0xB0, 0x01, 0x20, 0x78, 0xBD +_02060B00: + mov r0, #0x0 + add sp, #0xc + pop {r3-r6, pc} + nop +_02060B08: + .byte 0xDE, 0x06, 0x00, 0x00 + + thumb_func_start sub_02060B0C +sub_02060B0C: ; 0x02060B0C + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r1, [r4, #0x30] + add r0, sp, #0x0 + bl sub_021E7EA0 + ldrb r0, [r4, #0x1] + cmp r0, #0x3 + bhi _02060B7C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r7, #0 + lsl r2, r5, #0 + lsl r0, r3, #0 + ldr r1, [sp, #0x8] + ldr r0, [r4, #0x7c] + add r0, r1, r0 + str r0, [sp, #0x8] + ldr r1, [r4, #0x2c] + ldr r0, [r4, #0x7c] + add r0, r1, r0 + str r0, [r4, #0x2c] + b _02060B86 +_02060B46: + .byte 0x02, 0x99, 0xE0, 0x6F, 0x08, 0x1A, 0x02, 0x90, 0xE1, 0x6A + .byte 0xE0, 0x6F, 0x08, 0x1A, 0xE0, 0x62, 0x16, 0xE0, 0x00, 0x99, 0xE0, 0x6F, 0x08, 0x18, 0x00, 0x90 + .byte 0x61, 0x6A, 0xE0, 0x6F, 0x08, 0x18, 0x60, 0x62, 0x0D, 0xE0, 0x00, 0x99, 0xE0, 0x6F, 0x08, 0x1A + .byte 0x00, 0x90, 0x61, 0x6A, 0xE0, 0x6F, 0x08, 0x1A, 0x60, 0x62, 0x04, 0xE0 +_02060B7C: + bl sub_02020C2C + add sp, #0xc + mov r0, #0x1 + pop {r3-r4, pc} +_02060B86: + mov r0, #0x1 + ldr r1, [r4, #0x7c] + lsl r0, r0, #0xc + cmp r1, r0 + bge _02060BA6 + ldrb r1, [r4, #0x3] + add r1, r1, #0x1 + strb r1, [r4, #0x3] + ldrb r1, [r4, #0x3] + cmp r1, #0x18 + blo _02060BA6 + ldr r1, [r4, #0x7c] + add r0, r1, r0 + str r0, [r4, #0x7c] + mov r0, #0x0 + strb r0, [r4, #0x3] +_02060BA6: + ldr r0, [r4, #0x30] + add r1, sp, #0x0 + bl sub_021E7EB0 + ldr r1, [r4, #0x14] + ldr r0, [r4, #0x7c] + add r1, r1, r0 + str r1, [r4, #0x14] + ldr r0, [r4, #0xc] + cmp r0, r1 + bgt _02060BC2 + add sp, #0xc + mov r0, #0x1 + pop {r3-r4, pc} +_02060BC2: + mov r0, #0x0 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_02060BC8 +sub_02060BC8: ; 0x02060BC8 + ldr r3, [r0, #0x0] + ldr r0, [r1, #0x0] + cmp r3, r0 + bgt _02060BD6 + mov r0, #0x1 + strb r0, [r2, #0x0] + bx lr +_02060BD6: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02060BDC +sub_02060BDC: ; 0x02060BDC + push {r4-r7, lr} + sub sp, #0x34 + add r5, r0, #0x0 + ldr r0, _02060C7C ; =0x020F7640 + mov r6, #0x0 + ldr r2, [r0, #0x0] + ldr r1, [r0, #0x4] + str r2, [sp, #0x2c] + str r1, [sp, #0x30] + ldr r1, [r0, #0x8] + ldr r0, [r0, #0xc] + str r1, [sp, #0x24] + str r0, [sp, #0x28] +_02060BF6: + lsl r7, r6, #0x2 + add r0, sp, #0x2c + ldr r4, [r0, r7] + mov r2, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r3, r2, #0x0 + bl sub_0204A9F0 + cmp r0, #0x0 + beq _02060C6A + ldr r1, [r5, #0x2c] + add r0, r4, #0x0 + bl sub_021F4BD0 + ldr r0, [r0, #0x0] + blx sub_020BC13C + ldrh r1, [r0, #0xe] + add r2, sp, #0x20 + mov r3, #0x0 + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [sp, #0x18] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0204A9F0 + cmp r0, #0x0 + bne _02060C38 + bl sub_02020C2C +_02060C38: + ldr r0, [sp, #0x20] + bl sub_021E7EC8 + str r0, [sp, #0x1c] + ldr r0, [r5, #0x2c] + bl sub_021F4C88 + ldr r1, [sp, #0x1c] + add r2, sp, #0x24 + str r1, [sp, #0x0] + ldr r1, [sp, #0x18] + ldr r2, [r2, r7] + str r1, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x1 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r0, #0x0 + str r0, [sp, #0x14] + ldr r0, [r5, #0x4c] + ldr r1, [r5, #0x50] + add r3, r4, #0x0 + bl sub_021DA464 + b _02060C6E +_02060C6A: + bl sub_02020C2C +_02060C6E: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x2 + blo _02060BF6 + add sp, #0x34 + pop {r4-r7, pc} + .balign 4 +_02060C7C: .word 0x020F7640 + + thumb_func_start sub_02060C80 +sub_02060C80: ; 0x02060C80 + push {r3, lr} + ldrb r1, [r0, #0x1] + cmp r1, #0x2 + beq _02060CA8 + cmp r1, #0x3 + bne _02060CC4 + mov r2, #0x2 + ldr r1, [r0, #0x8] + lsl r2, r2, #0x10 + cmp r1, r2 + bge _02060CC8 + ldr r3, [r0, #0x24] + lsr r1, r2, #0x5 + add r1, r3, r1 + str r1, [r0, #0x24] + ldr r3, [r0, #0x8] + lsr r1, r2, #0x5 + add r1, r3, r1 + str r1, [r0, #0x8] + pop {r3, pc} +_02060CA8: + mov r1, #0x3 + ldr r2, [r0, #0x8] + lsl r1, r1, #0x10 + cmp r2, r1 + bge _02060CC8 + mov r1, #0x2 + ldr r2, [r0, #0x2c] + lsl r1, r1, #0xa + add r2, r2, r1 + str r2, [r0, #0x2c] + ldr r2, [r0, #0x8] + add r1, r2, r1 + str r1, [r0, #0x8] + pop {r3, pc} +_02060CC4: + bl sub_02020C2C +_02060CC8: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02060CCC +sub_02060CCC: ; 0x02060CCC + push {r4-r6, lr} + add r5, r0, #0x0 + cmp r5, #0x0 + ble _02060CD8 + cmp r5, #0x5 + blt _02060CDC +_02060CD8: + bl sub_02020C2C +_02060CDC: + sub r1, r5, #0x1 + ldr r6, _02060CF4 ; =0x020F767C + mov r0, #0xc + add r4, r1, #0x0 + mul r4, r0 + ldr r0, [r6, r4] + cmp r0, r5 + beq _02060CF0 + bl sub_02020C2C +_02060CF0: + add r0, r6, r4 + pop {r4-r6, pc} + .balign 4 +_02060CF4: .word 0x020F767C + + thumb_func_start sub_02060CF8 +sub_02060CF8: ; 0x02060CF8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02248B6C + add r4, r0, #0x0 + cmp r4, #0x0 + ble _02060D0E + ldrh r0, [r5, #0x6] + cmp r4, r0 + blt _02060D12 +_02060D0E: + bl sub_02020C2C +_02060D12: + sub r0, r4, #0x1 + ldr r1, [r5, #0x8] + lsl r0, r0, #0x3 + add r0, r1, r0 + pop {r3-r5, pc} + + thumb_func_start sub_02060D1C +sub_02060D1C: ; 0x02060D1C + push {r3-r7, lr} + add r6, r1, #0x0 + add r7, r2, #0x0 + add r5, r3, #0x0 + bl sub_02060CCC + ldrh r2, [r0, #0x4] + ldr r1, [sp, #0x18] + strh r2, [r1, #0x0] + add r1, r5, #0x0 + bl sub_02060CF8 + ldr r4, [r0, #0x0] + cmp r4, #0x0 + bne _02060D3E + bl sub_02020C2C +_02060D3E: + add r0, r6, #0x0 + add r1, r7, #0x0 + add r2, r5, #0x0 + blx r4 + pop {r3-r7, pc} + + thumb_func_start sub_02060D48 +sub_02060D48: ; 0x02060D48 + push {r3-r5, lr} + add r4, r2, #0x0 + add r5, r1, #0x0 + bl sub_02060CCC + add r1, r4, #0x0 + bl sub_02060CF8 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + bne _02060D62 + mov r0, #0x0 + pop {r3-r5, pc} +_02060D62: + ldr r2, [r0, #0x4] + cmp r2, #0x0 + bne _02060D6C + mov r0, #0x1 + pop {r3-r5, pc} +_02060D6C: + add r0, r5, #0x0 + add r1, r4, #0x0 + blx r2 + pop {r3-r5, pc} + + thumb_func_start sub_02060D74 +sub_02060D74: ; 0x02060D74 + push {r4-r6, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_02022504 + add r1, r5, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_0202B4B0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02060D90 +sub_02060D90: ; 0x02060D90 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + mov r0, #0x40 + mov r1, #0x4 + str r3, [sp, #0x8] + bl sub_020219F4 + add r1, r7, #0x0 + add r4, r0, #0x0 + bl sub_02021E28 + ldr r0, [sp, #0x24] + ldr r3, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [sp, #0x20] + add r1, r6, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_0200ABB4 + add r0, r4, #0x0 + bl sub_02021A20 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02060DCC +sub_02060DCC: ; 0x02060DCC + push {r4-r7, lr} + sub sp, #0xc + add r6, r2, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + add r4, r1, #0x0 + bl sub_02248B5C + add r7, r0, #0x0 + add r0, r6, #0x0 + bl sub_02248B54 + str r0, [sp, #0x8] + add r0, r6, #0x0 + bl sub_02248B58 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r3, [sp, #0x8] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_02060D90 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02060E04 +sub_02060E04: ; 0x02060E04 + push {r4-r6, lr} + add r3, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x40 + add r1, r3, #0x0 + add r6, r2, #0x0 + bl sub_020219F4 + add r4, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x76 + add r2, r4, #0x0 + bl sub_020671BC + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0xb + bl sub_02021EF0 + add r0, r4, #0x0 + bl sub_02021A20 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02060E34 +sub_02060E34: ; 0x02060E34 + push {r3-r7, lr} + add r4, r1, #0x0 + add r6, r2, #0x0 + add r5, r0, #0x0 + mov r1, #0x5 + mov r2, #0x0 + add r7, r3, #0x0 + bl sub_020671BC + strh r0, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x6f + mov r2, #0x0 + bl sub_020671BC + strb r0, [r6, #0x0] + add r0, r5, #0x0 + mov r1, #0xc + mov r2, #0x0 + bl sub_020671BC + strb r0, [r7, #0x0] + add r0, r5, #0x0 + mov r1, #0x79 + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0x18] + strb r0, [r1, #0x0] + pop {r3-r7, pc} + + thumb_func_start sub_02060E70 +sub_02060E70: ; 0x02060E70 + push {r4-r6, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x4 + add r2, sp, #0x8 + add r6, r3, #0x0 + bl sub_0200A99C + add r0, sp, #0x20 + ldrb r0, [r0, #0x10] + add r1, r4, #0x0 + add r2, sp, #0x8 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r3, r6, #0x0 + bl sub_02060D90 + add sp, #0x20 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02060EA0 +sub_02060EA0: ; 0x02060EA0 + push {r3-r5, lr} + sub sp, #0x20 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x4 + add r2, sp, #0x8 + bl sub_0200A99C + mov r0, #0x2 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, sp, #0x8 + mov r3, #0x0 + bl sub_02060D90 + add sp, #0x20 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02060ECC +sub_02060ECC: ; 0x02060ECC + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + add r4, r2, #0x0 + add r0, r5, #0x0 + mov r1, #0x4d + mov r2, #0x0 + add r7, r3, #0x0 + bl sub_020671BC + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + beq _02060F0C + mov r0, #0x40 + add r1, r6, #0x0 + bl sub_020219F4 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x76 + add r2, r4, #0x0 + bl sub_020671BC + add r0, r4, #0x0 + add r1, r7, #0x0 + mov r2, #0xb + bl sub_02021EF0 + add r0, r4, #0x0 + bl sub_02021A20 +_02060F0C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02060F10 +sub_02060F10: ; 0x02060F10 + push {r3-r7, lr} + add r7, r1, #0x0 + add r5, r2, #0x0 + add r6, r3, #0x0 + bl sub_0202B838 + add r4, r0, #0x0 + mov r0, #0x1 + strb r0, [r4, #0x0] + add r0, r4, #0x6 + str r0, [sp, #0x0] + add r0, r7, #0x0 + add r1, r4, #0x2 + add r2, r4, #0x4 + add r3, r4, #0x5 + bl sub_02060E34 + strb r5, [r4, #0x8] + ldr r0, [sp, #0x18] + strb r6, [r4, #0x7] + strb r0, [r4, #0x9] + pop {r3-r7, pc} + + thumb_func_start sub_02060F3C +sub_02060F3C: ; 0x02060F3C + push {r3-r6, lr} + sub sp, #0x4 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_0202B844 + add r4, r0, #0x0 + mov r0, #0x1 + strb r0, [r4, #0x0] + mov r0, #0x0 + strb r0, [r4, #0x1f] + add r0, r5, #0x0 + bl sub_02068854 + strb r0, [r4, #0x1e] + add r0, r4, #0x6 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x2 + add r2, r4, #0x4 + add r3, r4, #0x5 + bl sub_02060E34 + add r0, r5, #0x0 + mov r1, #0x4d + mov r2, #0x0 + bl sub_020671BC + strb r0, [r4, #0x7] + add r2, r4, #0x7 + add r4, #0x8 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r3, r4, #0x0 + bl sub_02060ECC + add sp, #0x4 + pop {r3-r6, pc} + + thumb_func_start sub_02060F88 +sub_02060F88: ; 0x02060F88 + push {r4, lr} + add r4, r1, #0x0 + bl sub_0202B844 + mov r1, #0x2 + strb r1, [r0, #0x1f] + add r0, #0x20 + strb r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02060F9C +sub_02060F9C: ; 0x02060F9C + push {r4, lr} + add r4, r1, #0x0 + bl sub_0202B844 + mov r1, #0x1 + strb r1, [r0, #0x1f] + strh r4, [r0, #0x22] + pop {r4, pc} + + thumb_func_start sub_02060FAC +sub_02060FAC: ; 0x02060FAC + push {r4, lr} + add r4, r1, #0x0 + bl sub_0202B850 + mov r1, #0x1 + strb r1, [r0, #0x0] + strb r4, [r0, #0x1] + pop {r4, pc} + + thumb_func_start sub_02060FBC +sub_02060FBC: ; 0x02060FBC + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl sub_0202B85C + mov r1, #0x1 + strb r1, [r0, #0x0] + strb r5, [r0, #0x1] + strh r4, [r0, #0x2] + pop {r3-r5, pc} + + thumb_func_start sub_02060FD0 +sub_02060FD0: ; 0x02060FD0 + push {r3, lr} + bl sub_0202B868 + mov r1, #0x1 + strb r1, [r0, #0x0] + mov r1, #0x0 + strb r1, [r0, #0x7] + pop {r3, pc} + + thumb_func_start sub_02060FE0 +sub_02060FE0: ; 0x02060FE0 + push {r3-r5, lr} + add r5, r1, #0x0 + bl sub_0202B868 + add r4, r0, #0x0 + ldrb r0, [r4, #0x7] + cmp r0, #0x0 + bne _02061000 + add r0, r4, #0x6 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x2 + add r2, r4, #0x4 + add r3, r4, #0x5 + bl sub_02060E34 +_02061000: + ldrb r0, [r4, #0x7] + add r0, r0, #0x1 + strb r0, [r4, #0x7] + pop {r3-r5, pc} + + thumb_func_start sub_02061008 +sub_02061008: ; 0x02061008 + push {r4, lr} + mov r1, #0x24 + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x24 + blx sub_020CE240 + add r0, r4, #0x0 + pop {r4, pc} + + thumb_func_start sub_02061020 +sub_02061020: ; 0x02061020 + ldr r3, _02061024 ; =sub_02016A18 + bx r3 + .balign 4 +_02061024: .word sub_02016A18 + 1 + + thumb_func_start sub_02061028 +sub_02061028: ; 0x02061028 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r0, #0x0 + add r1, r5, #0x0 + mov r2, #0x24 + add r7, r3, #0x0 + blx sub_020CE1FC + str r6, [r5, #0x0] + add r0, r5, #0x0 + add r2, r5, #0x0 + add r3, r5, #0x0 + strh r7, [r5, #0x4] + add r0, #0xa + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r1, r5, #0x6 + add r2, #0x8 + add r3, #0x9 + bl sub_02060E34 + add r0, r4, #0x0 + mov r1, #0x9a + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x22] + ldrh r0, [r5, #0x22] + cmp r0, #0x0 + bne _0206106C + bl sub_02020C2C +_0206106C: + add r2, r5, #0x0 + add r5, #0xc + ldr r0, [sp, #0x18] + add r1, r4, #0x0 + add r2, #0xb + add r3, r5, #0x0 + bl sub_02060ECC + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02061080 +sub_02061080: ; 0x02061080 + push {r3-r7, lr} + sub sp, #0x28 + add r7, sp, #0x0 + add r5, r2, #0x0 + add r6, r0, #0x0 + add r3, r1, #0x0 + add r4, r7, #0x0 + mov r2, #0x4 +_02061090: + ldmia r3!, {r0-r1} + stmia r4!, {r0-r1} + sub r2, r2, #0x1 + bne _02061090 + ldr r0, [r3, #0x0] + str r0, [r4, #0x0] + str r5, [sp, #0x0] + add r0, sp, #0x0 + ldrh r0, [r0, #0x4] + cmp r0, #0x0 + beq _020610F0 + ldrh r1, [r7, #0x4] + ldr r0, _020610F4 ; =0x000003E7 + cmp r1, r0 + bls _020610B0 + strh r0, [r7, #0x4] +_020610B0: + cmp r5, #0x6 + bhi _020610F0 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r5, #0 + lsl r4, r3, #0 + lsl r6, r5, #0 + lsl r6, r5, #0 + lsl r4, r1, #0 + lsl r4, r3, #0 + lsl r4, r3, #0 + add r0, r6, #0x0 + mov r1, #0x2 + mov r2, #0x1 + add r3, r7, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r3-r7, pc} +_020610DE: + .byte 0xB8, 0x88 + .byte 0x02, 0x28, 0x05, 0xD9, 0x02, 0x21, 0x30, 0x1C, 0x0A, 0x1C, 0x3B, 0x1C, 0xFF, 0xF7, 0x42, 0xFE +_020610F0: + add sp, #0x28 + pop {r3-r7, pc} + .balign 4 +_020610F4: .word 0x000003E7 + + thumb_func_start sub_020610F8 +sub_020610F8: ; 0x020610F8 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r0, r6, #0x0 + add r5, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldrb r0, [r4, #0xb] + cmp r0, #0x0 + beq _02061166 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x9] + mov r1, #0x1 + str r0, [sp, #0x0] + ldrb r0, [r4, #0xa] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x6] + ldrb r3, [r4, #0x8] + add r0, r5, #0x0 + bl sub_02060E70 + ldrh r2, [r4, #0x22] + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0200AE38 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r1, #0x3 + ldrh r2, [r4, #0x4] + add r0, r5, #0x0 + add r3, r1, #0x0 + bl sub_0200AD38 + ldrb r0, [r4, #0x9] + add r2, r4, #0x0 + mov r1, #0x4 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldrb r3, [r4, #0x8] + add r0, r5, #0x0 + add r2, #0xc + bl sub_02060D90 + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02061166: + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x9] + mov r1, #0x1 + str r0, [sp, #0x0] + ldrb r0, [r4, #0xa] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x6] + ldrb r3, [r4, #0x8] + add r0, r5, #0x0 + bl sub_02060E70 + ldrh r2, [r4, #0x22] + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0200AE38 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r1, #0x3 + ldrh r2, [r4, #0x4] + add r0, r5, #0x0 + add r3, r1, #0x0 + bl sub_0200AD38 + mov r0, #0x1 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_020611A8 +sub_020611A8: ; 0x020611A8 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + mov r0, #0x0 + str r0, [sp, #0x0] + mov r1, #0x1 + str r1, [sp, #0x4] + ldrh r2, [r4, #0x4] + add r0, r5, #0x0 + mov r3, #0x3 + bl sub_0200AD38 + ldr r0, [r4, #0x0] + cmp r0, #0x1 + bne _020611E0 + add sp, #0x8 + mov r0, #0x2 + pop {r4-r6, pc} +_020611E0: + mov r0, #0x3 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020611E8 +sub_020611E8: ; 0x020611E8 + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024DA0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02248B60 + add r1, r0, #0x0 + ldrh r1, [r1, #0x6] + add r0, r4, #0x0 + bl sub_020245F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061208 +sub_02061208: ; 0x02061208 + push {r4-r7, lr} + sub sp, #0x2c + add r5, r1, #0x0 + add r7, r0, #0x0 + add r4, r2, #0x0 + add r6, sp, #0x4 + cmp r5, #0x0 + beq _02061228 + add r0, r6, #0x4 + str r0, [sp, #0x0] + add r0, r3, #0x0 + add r1, r6, #0x0 + add r2, r6, #0x2 + add r3, r6, #0x3 + bl sub_02060E34 +_02061228: + strh r4, [r6, #0x6] + add r0, r7, #0x0 + mov r1, #0x2 + mov r2, #0x3 + add r3, r6, #0x0 + str r5, [r6, #0x8] + bl sub_02060D74 + add sp, #0x2c + pop {r4-r7, pc} + + thumb_func_start sub_0206123C +sub_0206123C: ; 0x0206123C + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _02061280 + ldrh r2, [r4, #0x6] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200AE38 + ldrb r0, [r4, #0x3] + mov r1, #0x2 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x4] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x0] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060E70 + add sp, #0x8 + mov r0, #0x4 + pop {r4-r6, pc} +_02061280: + mov r0, #0x5 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061288 +sub_02061288: ; 0x02061288 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldr r0, [r4, #0x8] + cmp r0, #0x0 + bne _0206129E + mov r0, #0x1 + pop {r3-r5, pc} +_0206129E: + ldr r0, [r5, #0xc] + bl sub_02024DA0 + ldrh r1, [r4, #0x0] + bl sub_020245F0 + pop {r3-r5, pc} + + thumb_func_start sub_020612AC +sub_020612AC: ; 0x020612AC + push {r4-r6, lr} + sub sp, #0x28 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_0202881C + add r6, r0, #0x0 + mov r0, #0x0 + add r1, sp, #0x0 + mov r2, #0x28 + blx sub_020CE240 + add r0, r6, #0x0 + mov r1, #0x1 + mov r2, #0x0 + bl sub_020287A8 + add r1, r0, #0x0 + add r0, sp, #0x0 + mov r2, #0xb + bl sub_02002268 + add r0, r5, #0x0 + mov r1, #0x2 + add r2, r4, #0x0 + add r3, sp, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020612EC +sub_020612EC: ; 0x020612EC + ldr r3, _020612F4 ; =sub_020612AC + mov r1, #0x14 + bx r3 + nop +_020612F4: .word sub_020612AC + 1 + + thumb_func_start sub_020612F8 +sub_020612F8: ; 0x020612F8 + ldr r3, _02061300 ; =sub_020612AC + mov r1, #0x4 + bx r3 + nop +_02061300: .word sub_020612AC + 1 + + thumb_func_start sub_02061304 +sub_02061304: ; 0x02061304 + push {r4-r6, lr} + sub sp, #0x8 + add r4, r2, #0x0 + add r0, r4, #0x0 + add r5, r1, #0x0 + bl sub_02248B60 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02248B58 + str r0, [sp, #0x0] + mov r1, #0x1 + add r0, r5, #0x0 + add r2, r6, #0x0 + mov r3, #0x0 + str r1, [sp, #0x4] + bl sub_02060D90 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 + bl sub_02060DCC + mov r0, #0x6 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0206133C +sub_0206133C: ; 0x0206133C + push {r4-r6, lr} + sub sp, #0x8 + add r4, r2, #0x0 + add r0, r4, #0x0 + add r5, r1, #0x0 + bl sub_02248B60 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02248B58 + str r0, [sp, #0x0] + mov r1, #0x1 + add r0, r5, #0x0 + add r2, r6, #0x0 + mov r3, #0x0 + str r1, [sp, #0x4] + bl sub_02060D90 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 + bl sub_02060DCC + mov r0, #0x20 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061374 +sub_02061374: ; 0x02061374 + push {r4, lr} + sub sp, #0x28 + add r4, r0, #0x0 + add r0, sp, #0x0 + strh r1, [r0, #0x0] + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034824 + add r1, sp, #0x0 + strh r0, [r1, #0x2] + add r0, r4, #0x0 + mov r1, #0x2 + mov r2, #0x6 + add r3, sp, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206139C +sub_0206139C: ; 0x0206139C + push {r4-r6, lr} + add r6, r2, #0x0 + add r0, r6, #0x0 + add r5, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldrh r2, [r4, #0x2] + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0200AFF4 + add r0, r5, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl sub_02060DCC + ldrh r2, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0200AE38 + mov r0, #0xa + pop {r4-r6, pc} + + thumb_func_start sub_020613CC +sub_020613CC: ; 0x020613CC + push {r3-r4, lr} + sub sp, #0x2c + add r4, r0, #0x0 + add r0, sp, #0x8 + add r2, sp, #0x4 + add r3, sp, #0x4 + str r0, [sp, #0x0] + add r0, r1, #0x0 + add r1, sp, #0x4 + add r2, #0x2 + add r3, #0x3 + bl sub_02060E34 + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034824 + add r1, sp, #0x4 + strh r0, [r1, #0x6] + add r0, r4, #0x0 + mov r1, #0x2 + mov r2, #0x8 + add r3, sp, #0x4 + bl sub_02060D74 + add sp, #0x2c + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02061404 +sub_02061404: ; 0x02061404 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r0, r6, #0x0 + add r5, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldrh r2, [r4, #0x6] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200AFF4 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x3] + mov r1, #0x2 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x4] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x0] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060E70 + mov r0, #0xc + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061444 +sub_02061444: ; 0x02061444 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02024DA0 + ldrh r1, [r4, #0x0] + bl sub_020245F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061460 +sub_02061460: ; 0x02061460 + push {r4-r5, lr} + sub sp, #0x2c + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, sp, #0x8 + add r2, sp, #0x4 + add r3, sp, #0x4 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r1, sp, #0x4 + add r2, #0x2 + add r3, #0x3 + bl sub_02060E34 + add r1, sp, #0x8 + mov r0, #0x4 + add r1, #0x2 + add r2, r4, #0x0 + bl sub_02060E04 + add r0, r5, #0x0 + mov r1, #0x2 + mov r2, #0xa + add r3, sp, #0x4 + bl sub_02060D74 + add sp, #0x2c + pop {r4-r5, pc} + + thumb_func_start sub_02061498 +sub_02061498: ; 0x02061498 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x3] + mov r1, #0x1 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x4] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x0] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060E70 + ldrb r0, [r4, #0x3] + mov r1, #0x2 + add r2, r4, #0x6 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060D90 + bl sub_0201B9EC + ldr r1, _020614F8 ; =0x00003334 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x5 + blo _020614F0 + bl sub_02020C2C +_020614F0: + add r4, #0x11 + add r0, r4, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_020614F8: .word 0x00003334 + + thumb_func_start sub_020614FC +sub_020614FC: ; 0x020614FC + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024DA0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02248B60 + add r1, r0, #0x0 + ldrh r1, [r1, #0x0] + add r0, r4, #0x0 + bl sub_020245F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0206151C +sub_0206151C: ; 0x0206151C + push {r3, lr} + sub sp, #0x28 + add r3, sp, #0x0 + strh r1, [r3, #0x0] + strh r2, [r3, #0x2] + mov r1, #0x2 + mov r2, #0xd + add r3, sp, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r3, pc} + + thumb_func_start sub_02061534 +sub_02061534: ; 0x02061534 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrh r2, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200B164 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldrh r2, [r4, #0x2] + add r0, r5, #0x0 + mov r1, #0x2 + mov r3, #0x3 + bl sub_0200AD38 + mov r0, #0x18 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061574 +sub_02061574: ; 0x02061574 + push {r3-r5, lr} + sub sp, #0x28 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, sp, #0x0 + bl sub_02022504 + bl sub_0202B868 + ldrb r1, [r0, #0x7] + cmp r1, #0x0 + beq _020615AC + ldrh r1, [r0, #0x2] + mov r2, #0xf + add r3, r4, #0x0 + strh r1, [r4, #0x0] + ldrb r1, [r0, #0x4] + strb r1, [r4, #0x2] + ldrb r1, [r0, #0x5] + strb r1, [r4, #0x3] + ldrb r1, [r0, #0x6] + strb r1, [r4, #0x4] + ldrb r0, [r0, #0x7] + mov r1, #0x2 + strb r0, [r4, #0x5] + add r0, r5, #0x0 + bl sub_02060D74 +_020615AC: + add sp, #0x28 + pop {r3-r5, pc} + + thumb_func_start sub_020615B0 +sub_020615B0: ; 0x020615B0 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x3] + mov r1, #0x1 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x4] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x0] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060E70 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r1, #0x2 + ldrb r2, [r4, #0x5] + add r0, r5, #0x0 + add r3, r1, #0x0 + bl sub_0200AD38 + mov r0, #0x1a + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_020615F8 +sub_020615F8: ; 0x020615F8 + push {r3-r5, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02024DA0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02248B60 + add r1, r0, #0x0 + ldrh r1, [r1, #0x0] + add r0, r4, #0x0 + bl sub_020245F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061618 +sub_02061618: ; 0x02061618 + push {r4-r5, lr} + sub sp, #0x2c + add r5, r0, #0x0 + add r4, r2, #0x0 + add r0, sp, #0x8 + add r2, sp, #0x4 + add r3, sp, #0x4 + str r0, [sp, #0x0] + add r0, r1, #0x0 + add r1, sp, #0x4 + add r2, #0x2 + add r3, #0x3 + bl sub_02060E34 + add r0, sp, #0x4 + strh r4, [r0, #0x6] + add r0, r5, #0x0 + mov r1, #0x2 + mov r2, #0x11 + add r3, sp, #0x4 + bl sub_0202B4B0 + add sp, #0x2c + pop {r4-r5, pc} + + thumb_func_start sub_02061648 +sub_02061648: ; 0x02061648 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x3] + mov r1, #0x1 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x4] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x0] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060E70 + ldrh r2, [r4, #0x6] + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0200AE38 + mov r0, #0x1d + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061688 +sub_02061688: ; 0x02061688 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02024DA0 + ldrh r1, [r4, #0x0] + bl sub_020245F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020616A4 +sub_020616A4: ; 0x020616A4 + push {r3-r5, lr} + sub sp, #0x28 + add r4, sp, #0x0 + strh r1, [r4, #0x0] + strb r2, [r4, #0x2] + add r5, sp, #0x0 + strh r3, [r4, #0x4] + cmp r2, #0x5 + bne _020616C4 + mov r1, #0x3 + mov r2, #0x6 + add r3, r5, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r3-r5, pc} +_020616C4: + cmp r2, #0x4 + bne _020616D6 + mov r1, #0x2 + mov r2, #0x12 + add r3, r5, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r3-r5, pc} +_020616D6: + cmp r2, #0x0 + bne _020616E4 + mov r1, #0x2 + mov r2, #0x13 + add r3, r5, #0x0 + bl sub_02060D74 +_020616E4: + add sp, #0x28 + pop {r3-r5, pc} + + thumb_func_start sub_020616E8 +sub_020616E8: ; 0x020616E8 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrh r2, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200AE38 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r1, #0x2 + ldrh r2, [r4, #0x4] + add r0, r5, #0x0 + add r3, r1, #0x0 + bl sub_0200AD38 + mov r0, #0x1e + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061728 +sub_02061728: ; 0x02061728 + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrh r2, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200AE38 + mov r0, #0x1f + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061750 +sub_02061750: ; 0x02061750 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrh r0, [r4, #0x0] + mov r1, #0x4 + sub r0, #0x95 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_020852E8 + add r4, r0, #0x0 + mov r1, #0x1 + str r1, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x0 + bl sub_0200ABB4 + add r0, r4, #0x0 + bl sub_02021A20 + mov r0, #0x5 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02061798 +sub_02061798: ; 0x02061798 + push {r4-r5, lr} + sub sp, #0x2c + add r5, r0, #0x0 + add r0, sp, #0x4 + add r4, r1, #0x0 + strb r2, [r0, #0x6] + bl sub_0201BA60 + mov r1, #0x3 + blx sub_020EBE8C + add r0, sp, #0x4 + strb r1, [r0, #0x5] + add r0, sp, #0x8 + add r2, sp, #0x4 + add r3, sp, #0x4 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r1, sp, #0x4 + add r2, #0x2 + add r3, #0x3 + bl sub_02060E34 + add r0, r5, #0x0 + mov r1, #0x2 + mov r2, #0x15 + add r3, sp, #0x4 + bl sub_0202B4B0 + add sp, #0x2c + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_020617D8 +sub_020617D8: ; 0x020617D8 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r2, [r4, #0x6] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200B534 + ldrb r0, [r4, #0x3] + mov r1, #0x2 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x4] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x0] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060E70 + bl sub_0201B9EC + ldr r1, _02061830 ; =0x00005556 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x3 + blo _02061826 + bl sub_02020C2C +_02061826: + add r4, #0x21 + add r0, r4, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + nop +_02061830: .word 0x00005556 + + thumb_func_start sub_02061834 +sub_02061834: ; 0x02061834 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02024DA0 + ldrh r1, [r4, #0x0] + bl sub_020245F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061850 +sub_02061850: ; 0x02061850 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02023924 + str r0, [r5, #0x0] + add r0, r4, #0x0 + add r1, r5, #0x4 + bl sub_0202393C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061868 +sub_02061868: ; 0x02061868 + push {r4-r6, lr} + add r6, r2, #0x0 + add r0, r6, #0x0 + add r5, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + bl sub_02023924 + ldr r1, [r4, #0x0] + cmp r1, r0 + beq _02061884 + bl sub_02020C2C +_02061884: + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + add r0, r5, #0x0 + mov r1, #0x1 + add r2, r4, #0x4 + bl sub_0200ABC0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0206189C +sub_0206189C: ; 0x0206189C + push {r4, lr} + sub sp, #0x28 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl sub_02061850 + add r0, r4, #0x0 + mov r1, #0x2 + mov r2, #0x16 + add r3, sp, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r4, pc} + + thumb_func_start sub_020618B8 +sub_020618B8: ; 0x020618B8 + push {r4, lr} + sub sp, #0x28 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl sub_02061850 + add r0, r4, #0x0 + mov r1, #0x2 + mov r2, #0x17 + add r3, sp, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r4, pc} + + thumb_func_start sub_020618D4 +sub_020618D4: ; 0x020618D4 + push {r3, lr} + bl sub_02061868 + mov r0, #0x24 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020618E0 +sub_020618E0: ; 0x020618E0 + push {r3, lr} + bl sub_02061868 + mov r0, #0x25 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020618EC +sub_020618EC: ; 0x020618EC + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_0206F158 + mov r1, #0x6b + lsl r1, r1, #0x2 + mov r2, #0x1 + mov r3, #0x20 + bl sub_0206EE50 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02061904 +sub_02061904: ; 0x02061904 + push {r3-r6, lr} + sub sp, #0x2c + add r6, r0, #0x0 + add r0, sp, #0x8 + add r5, r1, #0x0 + add r4, r3, #0x0 + add r0, #0x2 + add r1, sp, #0x4 + add r3, sp, #0x8 + str r0, [sp, #0x0] + add r0, r2, #0x0 + add r1, #0x2 + add r2, sp, #0x8 + add r3, #0x1 + bl sub_02060E34 + add r0, sp, #0x4 + strh r5, [r0, #0x0] + strb r4, [r0, #0x7] + add r0, r6, #0x0 + mov r1, #0x3 + mov r2, #0x1 + add r3, sp, #0x4 + bl sub_02060D74 + add sp, #0x2c + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_0206193C +sub_0206193C: ; 0x0206193C + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x5] + mov r1, #0x1 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x6] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x2] + ldrb r3, [r4, #0x4] + add r0, r5, #0x0 + bl sub_02060E70 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldrh r2, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x2 + mov r3, #0x4 + bl sub_0200AD38 + ldrb r0, [r4, #0x7] + cmp r0, #0x0 + bne _0206198A + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_0206198A: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02061990 +sub_02061990: ; 0x02061990 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02024DA0 + ldrh r1, [r4, #0x2] + bl sub_020245F0 + cmp r0, #0x0 + bne _020619B0 + mov r0, #0x0 + pop {r3-r5, pc} +_020619B0: + ldr r0, [r5, #0xc] + bl sub_020462AC + mov r1, #0x2 + mov r2, #0x11 + bl sub_0205F2E4 + pop {r3-r5, pc} + + thumb_func_start sub_020619C0 +sub_020619C0: ; 0x020619C0 + push {r4-r5, lr} + sub sp, #0x2c + add r5, r0, #0x0 + add r0, sp, #0x8 + str r0, [sp, #0x0] + add r0, r2, #0x0 + add r2, sp, #0x4 + add r3, sp, #0x4 + add r4, r1, #0x0 + add r1, sp, #0x4 + add r2, #0x2 + add r3, #0x3 + bl sub_02060E34 + mov r1, #0x3 + add r0, r5, #0x0 + add r2, r1, #0x0 + add r3, sp, #0x4 + str r4, [sp, #0xc] + bl sub_02060D74 + add sp, #0x2c + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_020619F0 +sub_020619F0: ; 0x020619F0 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x3] + mov r1, #0x1 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x4] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x0] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060E70 + mov r0, #0xfa + ldr r1, [r4, #0x8] + lsl r0, r0, #0x2 + mul r0, r1 + mov r1, #0xfe + blx sub_020EBE8C + add r0, r0, #0x5 + mov r1, #0xa + blx sub_020EBE8C + mov r1, #0xa + add r4, r0, #0x0 + blx sub_020EBE8C + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x2 + mov r3, #0x3 + bl sub_0200AD38 + add r0, r4, #0x0 + mov r1, #0xa + blx sub_020EBE8C + mov r0, #0x0 + add r2, r1, #0x0 + str r0, [sp, #0x0] + mov r3, #0x1 + add r0, r5, #0x0 + mov r1, #0x3 + str r3, [sp, #0x4] + bl sub_0200AD38 + mov r0, #0x2 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02061A70 +sub_02061A70: ; 0x02061A70 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02024DA0 + ldrh r1, [r4, #0x0] + bl sub_020245F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061A8C +sub_02061A8C: ; 0x02061A8C + push {r3-r5, lr} + sub sp, #0x28 + mov r4, #0xfa + lsl r4, r4, #0x2 + add r4, r1, r4 + add r5, sp, #0x0 + cmp r2, r4 + blo _02061AAC + str r1, [r5, #0x0] + str r2, [r5, #0x4] + str r3, [r5, #0x8] + mov r1, #0x3 + mov r2, #0x4 + add r3, r5, #0x0 + bl sub_02060D74 +_02061AAC: + add sp, #0x28 + pop {r3-r5, pc} + + thumb_func_start sub_02061AB0 +sub_02061AB0: ; 0x02061AB0 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + mov r0, #0x0 + str r0, [sp, #0x0] + mov r1, #0x1 + str r1, [sp, #0x4] + ldr r2, [r4, #0x8] + add r0, r5, #0x0 + mov r3, #0xa + bl sub_0200AD38 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r2, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x2 + mov r3, #0x6 + bl sub_0200AD38 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r2, [r4, #0x4] + add r0, r5, #0x0 + mov r1, #0x3 + mov r3, #0x6 + bl sub_0200AD38 + mov r0, #0x3 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061B0C +sub_02061B0C: ; 0x02061B0C + push {r3, lr} + sub sp, #0x28 + add r3, sp, #0x0 + strh r1, [r3, #0x0] + strh r2, [r3, #0x2] + mov r1, #0x3 + mov r2, #0x8 + add r3, sp, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r3, pc} + + thumb_func_start sub_02061B24 +sub_02061B24: ; 0x02061B24 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrh r2, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200B1D4 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldrh r2, [r4, #0x2] + add r0, r5, #0x0 + mov r1, #0x2 + mov r3, #0x3 + bl sub_0200AD38 + mov r0, #0x7 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061B64 +sub_02061B64: ; 0x02061B64 + push {r3, lr} + sub sp, #0x28 + add r2, sp, #0x0 + add r3, sp, #0x0 + strh r1, [r2, #0x0] + cmp r1, #0x1 + bls _02061B7A + mov r1, #0x3 + mov r2, #0x9 + bl sub_02060D74 +_02061B7A: + add sp, #0x28 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02061B80 +sub_02061B80: ; 0x02061B80 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + mov r0, #0x0 + str r0, [sp, #0x0] + mov r1, #0x1 + str r1, [sp, #0x4] + ldrh r2, [r4, #0x0] + add r0, r5, #0x0 + mov r3, #0x3 + bl sub_0200AD38 + mov r0, #0x8 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061BB4 +sub_02061BB4: ; 0x02061BB4 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_0206F158 + mov r1, #0x6b + lsl r1, r1, #0x2 + mov r2, #0x1 + mov r3, #0x20 + bl sub_0206EE50 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02061BCC +sub_02061BCC: ; 0x02061BCC + push {r3-r5, lr} + sub sp, #0x28 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_02022504 + bl sub_0202B85C + ldrh r2, [r0, #0x0] + add r1, sp, #0x0 + add r3, sp, #0x0 + strh r2, [r1, #0x0] + ldrh r2, [r0, #0x2] + strh r2, [r1, #0x2] + mov r2, #0x0 + strb r2, [r0, #0x0] + strh r4, [r1, #0x4] + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0x2 + bl sub_02060D74 + add sp, #0x28 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061C00 +sub_02061C00: ; 0x02061C00 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r0, r6, #0x0 + add r5, r1, #0x0 + bl sub_02248B60 + mov r1, #0x0 + add r4, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldrh r2, [r4, #0x2] + add r0, r5, #0x0 + mov r3, #0x4 + bl sub_0200AD38 + add r0, r5, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl sub_02060DCC + ldrh r2, [r4, #0x4] + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0200B518 + ldrb r0, [r4, #0x1] + cmp r0, #0x1 + bne _02061C42 + add sp, #0x8 + mov r0, #0x8 + pop {r4-r6, pc} +_02061C42: + mov r0, #0x9 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02061C48 +sub_02061C48: ; 0x02061C48 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_020462AC + mov r1, #0x2 + mov r2, #0x11 + bl sub_0205F2E4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02061C5C +sub_02061C5C: ; 0x02061C5C + push {r3-r6, lr} + sub sp, #0x2c + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_0206BB1C + bl sub_0204A20C + add r1, sp, #0x8 + add r2, sp, #0x4 + add r3, sp, #0x4 + str r1, [sp, #0x0] + add r1, sp, #0x4 + add r2, #0x2 + add r3, #0x3 + add r6, r0, #0x0 + bl sub_02060E34 + add r2, sp, #0x8 + add r3, sp, #0x8 + mov r0, #0x20 + add r1, r6, #0x0 + add r2, #0x1 + add r3, #0x2 + bl sub_02060ECC + add r0, sp, #0x4 + strh r4, [r0, #0x1c] + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0x4 + add r3, sp, #0x4 + bl sub_02060D74 + add sp, #0x2c + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02061CA8 +sub_02061CA8: ; 0x02061CA8 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r0, r6, #0x0 + add r5, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldrb r0, [r4, #0x5] + cmp r0, #0x0 + beq _02061D00 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x3] + mov r1, #0x1 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x4] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x0] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060E70 + ldrb r0, [r4, #0x3] + mov r1, #0x2 + add r2, r4, #0x6 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060D90 + ldrh r2, [r4, #0x1c] + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_0200B518 + add sp, #0x8 + mov r0, #0xa + pop {r4-r6, pc} +_02061D00: + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x3] + mov r1, #0x1 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x4] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x0] + ldrb r3, [r4, #0x2] + add r0, r5, #0x0 + bl sub_02060E70 + ldrh r2, [r4, #0x1c] + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_0200B518 + mov r0, #0xb + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061D30 +sub_02061D30: ; 0x02061D30 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02024DA0 + ldrh r1, [r4, #0x0] + bl sub_020245F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061D4C +sub_02061D4C: ; 0x02061D4C + push {r3-r5, lr} + sub sp, #0x28 + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + add r4, r1, #0x0 + ldr r0, [r0, #0x14] + bl sub_02252538 + str r0, [sp, #0x0] + add r0, sp, #0x0 + strh r4, [r0, #0x4] + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0x6 + add r3, sp, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061D74 +sub_02061D74: ; 0x02061D74 + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldr r2, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200B02C + ldrh r2, [r4, #0x4] + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0200B518 + mov r0, #0x10 + pop {r4-r6, pc} + + thumb_func_start sub_02061DA4 +sub_02061DA4: ; 0x02061DA4 + push {r3-r5, lr} + sub sp, #0x28 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_02022504 + bl sub_0202B838 + ldrh r2, [r0, #0x0] + add r1, sp, #0x0 + add r3, sp, #0x0 + strh r2, [r1, #0x0] + ldrh r2, [r0, #0x2] + strh r2, [r1, #0x2] + ldrh r2, [r0, #0x4] + strh r2, [r1, #0x4] + ldrh r2, [r0, #0x6] + strh r2, [r1, #0x6] + ldrh r2, [r0, #0x8] + strh r2, [r1, #0x8] + mov r2, #0x0 + strb r2, [r0, #0x0] + strh r4, [r1, #0xa] + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0x7 + bl sub_02060D74 + add sp, #0x28 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061DE4 +sub_02061DE4: ; 0x02061DE4 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r0, r6, #0x0 + add r5, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldrb r0, [r4, #0x5] + mov r1, #0x0 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x6] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x2] + ldrb r3, [r4, #0x4] + add r0, r5, #0x0 + bl sub_02060E70 + ldrb r0, [r4, #0x8] + bl sub_02083298 + add r2, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0200B2AC + ldrb r0, [r4, #0x7] + bl sub_02083268 + add r2, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0200B278 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r3, #0x1 + str r3, [sp, #0x4] + ldrb r2, [r4, #0x9] + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_0200AD38 + add r0, r5, #0x0 + mov r1, #0x4 + add r2, r6, #0x0 + bl sub_02060DCC + ldrh r2, [r4, #0xa] + add r0, r5, #0x0 + mov r1, #0x5 + bl sub_0200B518 + ldrb r0, [r4, #0x9] + cmp r0, #0x1 + bne _02061E5A + add sp, #0x8 + mov r0, #0x12 + pop {r4-r6, pc} +_02061E5A: + mov r0, #0x11 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02061E60 +sub_02061E60: ; 0x02061E60 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02024DA0 + ldrh r1, [r4, #0x2] + bl sub_020245F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061E7C +sub_02061E7C: ; 0x02061E7C + push {r4, lr} + sub sp, #0x28 + add r4, r0, #0x0 + add r0, sp, #0x0 + strh r1, [r0, #0x2] + ldr r0, [r4, #0xc] + bl sub_02027E24 + mov r1, #0x0 + bl sub_02027008 + bl sub_020275D8 + add r1, sp, #0x0 + strh r0, [r1, #0x0] + add r0, r4, #0x0 + mov r1, #0x1 + mov r2, #0x9 + add r3, sp, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02061EAC +sub_02061EAC: ; 0x02061EAC + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrh r2, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02060EA0 + ldrh r2, [r4, #0x2] + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0200B518 + mov r0, #0x14 + pop {r4-r6, pc} + + thumb_func_start sub_02061EDC +sub_02061EDC: ; 0x02061EDC + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02024DA0 + ldrh r1, [r4, #0x0] + bl sub_020245F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061EF8 +sub_02061EF8: ; 0x02061EF8 + push {r3, lr} + sub sp, #0x28 + str r1, [sp, #0x0] + mov r1, #0x1 + mov r2, #0xa + add r3, sp, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r3, pc} + + thumb_func_start sub_02061F0C +sub_02061F0C: ; 0x02061F0C + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldr r0, [r4, #0x0] + add r0, #0x14 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02061F2C +sub_02061F2C: ; 0x02061F2C + push {r3-r5, lr} + sub sp, #0x28 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_02022504 + bl sub_0202B850 + ldrb r2, [r0, #0x0] + add r1, sp, #0x0 + add r3, sp, #0x0 + strb r2, [r1, #0x0] + ldrb r2, [r0, #0x1] + strb r2, [r1, #0x1] + strh r4, [r1, #0x2] + mov r1, #0x0 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0xb + bl sub_02060D74 + add sp, #0x28 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02061F60 +sub_02061F60: ; 0x02061F60 + push {r3-r7, lr} + add r7, r2, #0x0 + add r0, r7, #0x0 + add r5, r1, #0x0 + bl sub_02248B60 + add r6, r0, #0x0 + ldrb r4, [r6, #0x1] + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r7, #0x0 + bl sub_02060DCC + add r0, r5, #0x0 + mov r1, #0x1 + add r2, r4, #0x0 + bl sub_0200B628 + ldrh r2, [r6, #0x2] + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0200B518 + sub r4, #0x19 + cmp r4, #0x3 + bhi _02061FB8 + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + mov r0, #0x27 + pop {r3-r7, pc} +_02061FAC: + .byte 0x28, 0x20, 0xF8, 0xBD + .byte 0x29, 0x20, 0xF8, 0xBD, 0x2A, 0x20, 0xF8, 0xBD +_02061FB8: + mov r0, #0x26 + pop {r3-r7, pc} + + thumb_func_start sub_02061FBC +sub_02061FBC: ; 0x02061FBC + push {r4-r6, lr} + sub sp, #0x28 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl sub_02022504 + bl sub_0202B844 + add r6, r0, #0x0 + add r3, sp, #0x0 + mov r2, #0x12 +_02061FD4: + ldrh r1, [r6, #0x0] + add r6, r6, #0x2 + strh r1, [r3, #0x0] + add r3, r3, #0x2 + sub r2, r2, #0x1 + bne _02061FD4 + add r1, sp, #0x0 + strh r4, [r1, #0x24] + mov r1, #0x0 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0xd + add r3, sp, #0x0 + bl sub_02060D74 + add sp, #0x28 + pop {r4-r6, pc} + + thumb_func_start sub_02061FF8 +sub_02061FF8: ; 0x02061FF8 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r2, #0x0 + add r5, r1, #0x0 + add r0, r6, #0x0 + bl sub_02248B60 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + bl sub_02060DCC + ldrb r0, [r4, #0x5] + mov r1, #0x1 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x6] + str r0, [sp, #0x4] + ldrh r2, [r4, #0x2] + ldrb r3, [r4, #0x4] + add r0, r5, #0x0 + bl sub_02060E70 + ldrb r2, [r4, #0x1e] + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0200AE04 + ldrh r2, [r4, #0x24] + add r0, r5, #0x0 + mov r1, #0x5 + bl sub_0200B518 + ldrb r0, [r4, #0x1f] + cmp r0, #0x0 + beq _0206204A + cmp r0, #0x1 + beq _02062062 + cmp r0, #0x2 + beq _02062050 + b _02062072 +_0206204A: + add sp, #0x8 + mov r0, #0x2d + pop {r4-r6, pc} +_02062050: + add r4, #0x20 + ldrb r2, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_0200B660 + add sp, #0x8 + mov r0, #0x2c + pop {r4-r6, pc} +_02062062: + ldrh r2, [r4, #0x22] + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_0200AE38 + add sp, #0x8 + mov r0, #0x2e + pop {r4-r6, pc} +_02062072: + mov r0, #0x2d + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02062078 +sub_02062078: ; 0x02062078 + push {r3-r7, lr} + mov r6, #0x0 + ldr r5, _0206209C ; =0x020F7650 + add r7, r0, #0x0 + add r4, r6, #0x0 +_02062082: + ldrb r1, [r5, #0x0] + add r0, r7, #0x0 + bl sub_02028828 + cmp r0, #0x0 + beq _02062090 + add r4, r4, #0x1 +_02062090: + add r6, r6, #0x1 + add r5, r5, #0x1 + cmp r6, #0x5 + blo _02062082 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_0206209C: .word 0x020F7650 + + thumb_func_start sub_020620A0 +sub_020620A0: ; 0x020620A0 + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x4] + ldr r0, [r0, #0xc] + str r1, [sp, #0x8] + bl sub_0202881C + add r7, r0, #0x0 + bl sub_02062078 + add r4, r0, #0x0 + cmp r4, #0x0 + bgt _020620BE + bl sub_02020C2C +_020620BE: + cmp r4, #0x1 + ble _020620D0 + bl sub_0201BA60 + add r1, r4, #0x0 + blx sub_020EBE8C + add r5, r1, #0x0 + b _020620D2 +_020620D0: + mov r5, #0x0 +_020620D2: + ldr r4, _02062154 ; =0x020F7650 + mov r6, #0x0 +_020620D6: + ldrb r1, [r4, #0x0] + add r0, r7, #0x0 + bl sub_02028828 + cmp r0, #0x0 + beq _020620F0 + cmp r5, #0x0 + bne _020620EE + ldr r0, _02062154 ; =0x020F7650 + ldrb r0, [r0, r6] + str r0, [sp, #0xc] + b _020620F8 +_020620EE: + sub r5, r5, #0x1 +_020620F0: + add r6, r6, #0x1 + add r4, r4, #0x1 + cmp r6, #0x5 + blo _020620D6 +_020620F8: + cmp r5, #0x0 + beq _02062100 + bl sub_02020C2C +_02062100: + bl sub_0201B9EC + mov r1, #0xf1 + lsl r1, r1, #0x4 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x11 + blo _02062118 + bl sub_02020C2C +_02062118: + cmp r4, #0x9 + blt _0206211E + add r4, r4, #0x1 +_0206211E: + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + ldr r1, [r1, #0xc] + ldr r2, [sp, #0xc] + mov r3, #0x0 + bl sub_0200B708 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + ldr r1, [r1, #0xc] + ldr r2, [sp, #0xc] + mov r3, #0x1 + bl sub_0200B708 + ldr r0, [sp, #0x8] + mov r1, #0x2 + add r2, r4, #0x0 + bl sub_0200AF18 + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + nop +_02062154: .word 0x020F7650 + + thumb_func_start sub_02062158 +sub_02062158: ; 0x02062158 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_0202881C + bl sub_02062078 + cmp r0, #0x0 + beq _0206216C + mov r0, #0x1 + pop {r3, pc} +_0206216C: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02062170 +sub_02062170: ; 0x02062170 + push {r3-r7, lr} + add r6, r0, #0x0 + add r7, r1, #0x0 + bl sub_0201B9EC + ldr r1, _02062234 ; =0x00003334 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x5 + blo _0206218C + bl sub_02020C2C +_0206218C: + ldr r0, _02062238 ; =0x02105FBC + lsl r1, r4, #0x1 + ldrh r5, [r0, r1] + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_02034FE4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02034824 + add r2, r0, #0x0 + add r0, r7, #0x0 + mov r1, #0x0 + bl sub_0200AFF4 + cmp r4, #0xb + bhi _0206222C + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r2, #0 + lsl r6, r1, #0x1 + lsl r2, r2, #0x1 + lsl r6, r2, #0x1 + lsl r6, r4, #0x1 + lsl r2, r3, #0x1 + lsl r6, r3, #0x1 + lsl r2, r4, #0x1 + lsl r6, r5, #0x1 + lsl r6, r5, #0x1 + lsl r6, r5, #0x1 + lsl r2, r5, #0x1 + bl sub_0201B9EC + lsl r0, r0, #0x2 + lsr r4, r0, #0x10 + cmp r4, #0x4 + blo _020621E4 + bl sub_02020C2C +_020621E4: + cmp r4, #0x3 + bhi _0206220C + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + mov r0, #0x1 + pop {r3-r7, pc} +_02062200: + .byte 0x02, 0x20, 0xF8, 0xBD, 0x03, 0x20, 0xF8, 0xBD, 0x04, 0x20, 0xF8, 0xBD +_0206220C: + mov r0, #0x5 + pop {r3-r7, pc} +_02062210: + .byte 0x06, 0x20, 0xF8, 0xBD, 0x07, 0x20, 0xF8, 0xBD, 0x08, 0x20, 0xF8, 0xBD, 0x09, 0x20, 0xF8, 0xBD + .byte 0x0A, 0x20, 0xF8, 0xBD, 0x0B, 0x20, 0xF8, 0xBD, 0x0C, 0x20, 0xF8, 0xBD +_0206222C: + bl sub_02020C2C + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_02062234: .word 0x00003334 +_02062238: .word 0x02105FBC + + thumb_func_start sub_0206223C +sub_0206223C: ; 0x0206223C + mov r0, #0x1 + bx lr + + thumb_func_start sub_02062240 +sub_02062240: ; 0x02062240 + push {r3-r4, lr} + sub sp, #0x4 + ldr r0, [r0, #0xc] + add r4, r1, #0x0 + bl sub_0202A9B0 + mov r1, #0x2 + bl sub_0202A990 + add r1, sp, #0x0 + add r1, #0x2 + add r2, sp, #0x0 + bl sub_02245910 + add r0, sp, #0x0 + ldrh r0, [r0, #0x2] + bl sub_02034824 + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0200AFF4 + add r2, sp, #0x0 + ldrh r2, [r2, #0x0] + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02060EA0 + mov r0, #0x1c + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_02062280 +sub_02062280: ; 0x02062280 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_0202A9B0 + bl sub_0202AA14 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02062290 +sub_02062290: ; 0x02062290 + push {r3-r4} + ldr r4, _020622BC ; =0x020F78A4 + mov r3, #0x0 +_02062296: + ldrb r2, [r4, #0x0] + cmp r0, r2 + bne _020622AE + ldrb r2, [r4, #0x1] + cmp r1, r2 + bne _020622AE + lsl r0, r3, #0x1 + add r1, r3, r0 + ldr r0, _020622C0 ; =0x020F78A6 + ldrb r0, [r0, r1] + pop {r3-r4} + bx lr +_020622AE: + add r3, r3, #0x1 + add r4, r4, #0x3 + cmp r3, #0x6e + blo _02062296 + mov r0, #0x3 + pop {r3-r4} + bx lr + .balign 4 +_020622BC: .word 0x020F78A4 +_020622C0: .word 0x020F78A6 + + thumb_func_start sub_020622C4 +sub_020622C4: ; 0x020622C4 + push {r4-r6, lr} + add r6, r1, #0x0 + bl sub_0201B9EC + mov r1, #0xf1 + lsl r1, r1, #0x4 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x11 + blo _020622E0 + bl sub_02020C2C +_020622E0: + cmp r5, #0x9 + blt _020622E6 + add r5, r5, #0x1 +_020622E6: + bl sub_0201B9EC + mov r1, #0xf1 + lsl r1, r1, #0x4 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x11 + blo _020622FE + bl sub_02020C2C +_020622FE: + cmp r4, #0x9 + blt _02062304 + add r4, r4, #0x1 +_02062304: + add r0, r6, #0x0 + mov r1, #0x0 + add r2, r5, #0x0 + bl sub_0200AF18 + add r0, r6, #0x0 + mov r1, #0x1 + add r2, r4, #0x0 + bl sub_0200AF18 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02062290 + cmp r0, #0x3 + bhi _0206233C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r2, #0 + lsl r6, r1, #0 + lsl r6, r0, #0 + lsl r2, r1, #0 + mov r0, #0x1e + pop {r4-r6, pc} +_0206233C: + mov r0, #0x1f + pop {r4-r6, pc} + + thumb_func_start sub_02062340 +sub_02062340: ; 0x02062340 + mov r0, #0x20 + pop {r4-r6, pc} + + thumb_func_start sub_02062344 +sub_02062344: ; 0x02062344 + mov r0, #0x21 + pop {r4-r6, pc} + + thumb_func_start sub_02062348 +sub_02062348: ; 0x02062348 + mov r0, #0x1 + bx lr + + thumb_func_start sub_0206234C +sub_0206234C: ; 0x0206234C + push {r3-r7, lr} + sub sp, #0x88 + ldr r0, [r0, #0xc] + bl sub_020462AC + ldr r4, _020623E8 ; =0x020F7658 + add r7, r0, #0x0 + mov r6, #0x0 + add r5, sp, #0x0 +_0206235E: + ldrh r2, [r4, #0x0] + add r0, r7, #0x0 + mov r1, #0x2 + bl sub_0205F2E4 + strb r0, [r5, #0x0] + add r6, r6, #0x1 + add r4, r4, #0x2 + add r5, r5, #0x1 + cmp r6, #0x12 + blo _0206235E + mov r3, #0x0 + add r2, sp, #0x10 + ldr r0, _020623EC ; =0x020F79EE + add r4, r3, #0x0 + add r1, r3, #0x0 + add r2, #0x2 + add r6, sp, #0x0 +_02062382: + lsl r5, r1, #0x1 + ldrh r5, [r0, r5] + ldrb r5, [r6, r5] + cmp r5, #0x0 + beq _02062392 + strb r3, [r2, #0x0] + add r2, r2, #0x1 + add r4, r4, #0x1 +_02062392: + add r3, r3, #0x1 + add r1, r1, #0x2 + cmp r3, #0x76 + blo _02062382 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bne _020623A4 + bl sub_02020C2C +_020623A4: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x1 + bhi _020623B0 + mov r5, #0x0 + b _020623DE +_020623B0: + bl sub_0201B9EC + add r5, r0, #0x0 + lsl r1, r4, #0x10 + ldr r0, _020623F0 ; =0x0000FFFF + lsr r1, r1, #0x10 + blx sub_020EBC80 + add r1, r0, #0x0 + add r1, r1, #0x1 + lsl r1, r1, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + cmp r5, r0 + blo _020623DE + bl sub_02020C2C +_020623DE: + add r0, sp, #0x10 + add r0, #0x2 + ldrb r0, [r0, r5] + add sp, #0x88 + pop {r3-r7, pc} + .balign 4 +_020623E8: .word 0x020F7658 +_020623EC: .word 0x020F79EE +_020623F0: .word 0x0000FFFF + + thumb_func_start sub_020623F4 +sub_020623F4: ; 0x020623F4 + push {r4-r6, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + add r5, r1, #0x0 + bl sub_02024ECC + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0206234C + add r4, r0, #0x0 + lsl r0, r4, #0x1 + add r0, r0, #0x1 + lsl r1, r0, #0x1 + ldr r0, _0206245C ; =0x020F79EE + ldrh r0, [r0, r1] + bl sub_02034824 + add r2, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0200AFF4 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02025238 + cmp r0, #0x5 + bhi _02062456 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r3, #0 + lsl r2, r3, #0 + lsl r6, r2, #0 + lsl r2, r2, #0 + lsl r6, r1, #0 + lsl r2, r1, #0 + mov r0, #0x23 + pop {r4-r6, pc} +_0206244A: + .byte 0x24, 0x20, 0x70, 0xBD, 0x25, 0x20 + .byte 0x70, 0xBD, 0x26, 0x20, 0x70, 0xBD +_02062456: + mov r0, #0x27 + pop {r4-r6, pc} + nop +_0206245C: .word 0x020F79EE + + thumb_func_start sub_02062460 +sub_02062460: ; 0x02062460 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_020462AC + mov r1, #0x2 + mov r2, #0x9 + bl sub_0205F2E4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02062474 +sub_02062474: ; 0x02062474 + push {r3-r6, lr} + sub sp, #0xc + mov r0, #0x4 + add r6, r1, #0x0 + str r0, [sp, #0x0] + add r0, sp, #0x8 + mov r1, #0x7e + mov r2, #0x2 + mov r3, #0x0 + bl sub_02006548 + ldr r0, [sp, #0x8] + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + bne _02062496 + bl sub_02020C2C +_02062496: + cmp r4, #0x1 + bhi _0206249E + mov r5, #0x0 + b _020624C6 +_0206249E: + bl sub_0201B9EC + add r5, r0, #0x0 + ldr r0, _02062504 ; =0x0000FFFF + add r1, r4, #0x0 + blx sub_020EBC80 + add r1, r0, #0x0 + add r1, r1, #0x1 + lsl r1, r1, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, r4 + blo _020624C6 + bl sub_02020C2C +_020624C6: + lsl r4, r5, #0x2 + add r0, sp, #0x4 + mov r2, #0x2 + add r0, #0x2 + mov r1, #0x7e + add r3, r4, #0x4 + str r2, [sp, #0x0] + bl sub_02006548 + mov r2, #0x2 + add r0, sp, #0x4 + mov r1, #0x7e + add r3, r4, #0x6 + str r2, [sp, #0x0] + bl sub_02006548 + add r2, sp, #0x4 + ldrh r2, [r2, #0x2] + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_02060EA0 + add r2, sp, #0x4 + ldrh r2, [r2, #0x0] + add r0, r6, #0x0 + mov r1, #0x1 + bl sub_0200AE38 + mov r0, #0x2a + add sp, #0xc + pop {r3-r6, pc} + .balign 4 +_02062504: .word 0x0000FFFF + + thumb_func_start sub_02062508 +sub_02062508: ; 0x02062508 + mov r0, #0x1 + bx lr + + thumb_func_start sub_0206250C +sub_0206250C: ; 0x0206250C + push {r4-r6, lr} + mov r4, #0x0 + add r6, r0, #0x0 + add r5, r4, #0x0 +_02062514: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02027098 + cmp r0, #0x1 + bne _02062522 + add r5, r5, #0x1 +_02062522: + add r4, r4, #0x1 + cmp r4, #0xb + blt _02062514 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0206252C +sub_0206252C: ; 0x0206252C + push {r4-r7, lr} + sub sp, #0xc + ldr r0, [r0, #0xc] + add r7, r1, #0x0 + bl sub_02027E24 + add r6, r0, #0x0 + bl sub_0206250C + add r4, r0, #0x0 + cmp r4, #0x1 + ble _02062552 + bl sub_0201BA60 + add r1, r4, #0x0 + blx sub_020EBE8C + add r5, r1, #0x0 + b _02062554 +_02062552: + mov r5, #0x0 +_02062554: + mov r4, #0x0 +_02062556: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02027098 + cmp r0, #0x1 + bne _0206256C + cmp r5, #0x0 + bne _0206256A + str r4, [sp, #0x8] + b _02062572 +_0206256A: + sub r5, r5, #0x1 +_0206256C: + add r4, r4, #0x1 + cmp r4, #0xb + blt _02062556 +_02062572: + cmp r4, #0xb + blt _0206257A + bl sub_02020C2C +_0206257A: + ldr r1, [sp, #0x8] + add r0, r6, #0x0 + bl sub_02027008 + add r5, r0, #0x0 + mov r0, #0x8 + mov r1, #0x4 + bl sub_020219F4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0202763C + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02027608 + add r0, r5, #0x0 + bl sub_020276A8 + mov r1, #0x1 + str r1, [sp, #0x0] + str r0, [sp, #0x4] + add r0, r7, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_0200ABB4 + add r0, r4, #0x0 + bl sub_02021A20 + add r0, r5, #0x0 + bl sub_0202769C + add r2, r0, #0x0 + add r0, r7, #0x0 + mov r1, #0x1 + bl sub_0200B518 + mov r0, #0x32 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_020625D4 +sub_020625D4: ; 0x020625D4 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_02027E24 + bl sub_0206250C + cmp r0, #0x0 + beq _020625E8 + mov r0, #0x1 + pop {r3, pc} +_020625E8: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_020625EC +sub_020625EC: ; 0x020625EC + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + str r2, [sp, #0x0] + mov r0, #0x3 + mov r1, #0x50 + lsl r2, r0, #0xd + ldr r6, [r5, #0xc] + bl sub_0201681C + mov r1, #0x2d + mov r0, #0x50 + lsl r1, r1, #0x4 + bl sub_02016998 + mov r2, #0x2d + mov r1, #0x0 + lsl r2, r2, #0x4 + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0x50 + str r0, [r4, #0x0] + ldr r0, [sp, #0x0] + mov r1, #0x3 + blx sub_020EBC80 + strb r1, [r4, #0x16] + ldr r0, [sp, #0x0] + mov r1, #0x3 + blx sub_020EBC80 + strb r0, [r4, #0x17] + ldrb r0, [r4, #0x16] + bl sub_0202B870 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0x16] + bl sub_0202B87C + strb r0, [r4, #0x19] + add r0, r4, #0x0 + add r0, #0xcc + str r5, [r0, #0x0] + add r0, r4, #0x0 + ldr r1, [r5, #0x8] + add r0, #0xd0 + str r1, [r0, #0x0] + add r0, r6, #0x0 + bl sub_0202B8E4 + mov r1, #0x2a + lsl r1, r1, #0x4 + str r0, [r4, r1] + add r0, r6, #0x0 + bl sub_02023900 + bl sub_02024FF4 + strh r0, [r4, #0x1a] + add r0, r6, #0x0 + bl sub_02023900 + bl sub_02025084 + strh r0, [r4, #0x1c] + str r4, [r7, #0x8] + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02062678 +sub_02062678: ; 0x02062678 + push {r3-r7, lr} + sub sp, #0x8 + ldr r4, [r0, #0x8] + mov r0, #0x0 + str r0, [sp, #0x4] + ldrb r0, [r4, #0x18] + cmp r0, #0x0 + ble _020626FE + ldr r0, [sp, #0x4] + str r0, [sp, #0x0] +_0206268C: + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r2, [r4, r0] + ldr r0, [sp, #0x0] + mov r6, #0x0 + add r1, r2, r0 + ldr r0, [r2, r0] + add r7, r6, #0x0 + cmp r0, #0x0 + ble _020626EC + add r5, r6, #0x0 +_020626A2: + add r0, r1, #0x4 + add r1, r0, r5 + ldrb r0, [r1, #0x6] + mov r12, r0 + cmp r0, #0xff + beq _020626D6 + ldrh r0, [r1, #0x4] + cmp r0, #0x0 + bne _020626D6 + ldrb r2, [r4, #0x17] + ldrb r3, [r4, #0x19] + mov r1, #0xd + mul r1, r2 + add r2, r3, r1 + ldr r1, [sp, #0x4] + mov r0, #0x2a + add r1, r1, r2 + mov r2, r12 + lsl r0, r0, #0x4 + sub r2, r2, r6 + lsl r2, r2, #0x18 + ldr r0, [r4, r0] + lsr r2, r2, #0x18 + bl sub_0202B8F0 + add r6, r6, #0x1 +_020626D6: + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x0] + add r1, r1, r0 + ldr r0, [r2, r0] + add r7, r7, #0x1 + add r5, #0x8 + cmp r7, r0 + blt _020626A2 +_020626EC: + ldr r0, [sp, #0x0] + ldrb r1, [r4, #0x18] + add r0, #0x3c + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + str r0, [sp, #0x4] + cmp r0, r1 + blt _0206268C +_020626FE: + add r0, r4, #0x0 + ldr r5, [r4, #0x0] + bl sub_02016A18 + mov r2, #0x2d + add r0, r4, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x4 + blx sub_020CE34C + add r0, r5, #0x0 + bl sub_020168D0 + mov r0, #0xc + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02062720 +sub_02062720: ; 0x02062720 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02062A70 + add r0, r4, #0x0 + bl sub_02062C80 + add r0, r4, #0x0 + bl sub_02062DB0 + add r0, r4, #0x0 + bl sub_02062F3C + mov r0, #0x2 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02062740 +sub_02062740: ; 0x02062740 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02062FFC + add r0, r4, #0x0 + bl sub_02062EC4 + add r0, r4, #0x0 + bl sub_02062D38 + add r0, r4, #0x0 + bl sub_02062C4C + mov r0, #0xb + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02062760 +sub_02062760: ; 0x02062760 + push {r3, lr} + ldrh r1, [r0, #0x22] + ldrh r2, [r0, #0x24] + bl sub_02063028 + mov r0, #0x3 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02062770 +sub_02062770: ; 0x02062770 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0xc0 + ldr r0, [r0, #0x0] + bl sub_02001204 + ldr r1, _020627C8 ; =0x021C48B8 + ldr r3, [r1, #0x48] + mov r1, #0x2 + tst r1, r3 + beq _02062790 + add r0, r4, #0x0 + bl sub_02063178 + mov r0, #0xa + pop {r4, pc} +_02062790: + mov r2, #0x1 + add r1, r3, #0x0 + tst r1, r2 + bne _0206279C + mov r0, #0x3 + pop {r4, pc} +_0206279C: + sub r1, r2, #0x3 + cmp r0, r1 + beq _020627AE + sub r1, r2, #0x2 + cmp r0, r1 + beq _020627AE + ldr r1, _020627CC ; =0x0000FFFF + cmp r0, r1 + bne _020627B8 +_020627AE: + add r0, r4, #0x0 + bl sub_02063178 + mov r0, #0xa + pop {r4, pc} +_020627B8: + strb r0, [r4, #0x1f] + mov r0, #0x0 + strh r0, [r4, #0x28] + add r0, r4, #0x0 + bl sub_02063178 + mov r0, #0x4 + pop {r4, pc} + .balign 4 +_020627C8: .word 0x021C48B8 +_020627CC: .word 0x0000FFFF + + thumb_func_start sub_020627D0 +sub_020627D0: ; 0x020627D0 + push {r3, lr} + ldrh r1, [r0, #0x28] + bl sub_02063430 + mov r0, #0x5 + pop {r3, pc} + + thumb_func_start sub_020627DC +sub_020627DC: ; 0x020627DC + push {r3, lr} + ldr r1, _02062804 ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #0x3 + tst r1, r2 + beq _020627F0 + bl sub_020634DC + mov r0, #0x2 + pop {r3, pc} +_020627F0: + mov r1, #0x4 + tst r1, r2 + beq _020627FE + bl sub_02063238 + mov r0, #0x6 + pop {r3, pc} +_020627FE: + mov r0, #0x5 + pop {r3, pc} + nop +_02062804: .word 0x021C48B8 + + thumb_func_start sub_02062808 +sub_02062808: ; 0x02062808 + push {r4, lr} + ldr r1, _020628B8 ; =0x021C48B8 + mov r2, #0x2 + ldr r1, [r1, #0x48] + add r4, r0, #0x0 + tst r2, r1 + beq _0206281E + bl sub_02063264 + mov r0, #0x5 + pop {r4, pc} +_0206281E: + mov r0, #0x1 + tst r0, r1 + beq _0206285C + mov r0, #0x0 + str r0, [r4, #0xc] + mov r0, #0xb + lsl r0, r0, #0x6 + ldrb r2, [r4, #0x1f] + mov r1, #0x3c + ldr r3, [r4, r0] + mul r1, r2 + add r1, r3, r1 + add r3, r1, #0x4 + ldrh r1, [r4, #0x28] + add r2, r4, r1 + add r1, r0, #0x0 + add r1, #0x8 + ldrb r1, [r2, r1] + lsl r1, r1, #0x3 + add r2, r3, r1 + add r1, r0, #0x4 + str r2, [r4, r1] + add r0, r0, #0x4 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x6] + cmp r0, #0xff + bne _02062858 + mov r0, #0x8 + pop {r4, pc} +_02062858: + mov r0, #0x7 + pop {r4, pc} +_0206285C: + mov r0, #0x40 + tst r0, r1 + beq _02062882 + ldrh r0, [r4, #0x28] + cmp r0, #0x0 + beq _02062882 + sub r0, r0, #0x1 + strh r0, [r4, #0x28] + ldrh r2, [r4, #0x28] + mov r0, #0xa6 + lsl r0, r0, #0x2 + lsl r2, r2, #0x4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r4, r0] + mov r1, #0x7e + asr r2, r2, #0x10 + bl sub_0200C714 +_02062882: + ldr r0, _020628B8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x80 + tst r0, r1 + beq _020628B4 + add r0, r4, #0x0 + add r0, #0x21 + ldrb r0, [r0, #0x0] + ldrh r1, [r4, #0x28] + sub r0, r0, #0x1 + cmp r1, r0 + bge _020628B4 + add r0, r1, #0x1 + strh r0, [r4, #0x28] + ldrh r2, [r4, #0x28] + mov r0, #0xa6 + lsl r0, r0, #0x2 + lsl r2, r2, #0x4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r4, r0] + mov r1, #0x7e + asr r2, r2, #0x10 + bl sub_0200C714 +_020628B4: + mov r0, #0x6 + pop {r4, pc} + .balign 4 +_020628B8: .word 0x021C48B8 + + thumb_func_start sub_020628BC +sub_020628BC: ; 0x020628BC + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, _020628E0 ; =0x020F7BC8 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + ldr r2, _020628E4 ; =0x000003D9 + mov r3, #0xb + bl sub_02002198 + add r4, #0xc8 + str r0, [r4, #0x0] + add sp, #0x4 + pop {r3-r4, pc} + nop +_020628E0: .word 0x020F7BC8 +_020628E4: .word 0x000003D9 + + thumb_func_start sub_020628E8 +sub_020628E8: ; 0x020628E8 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x3 + bgt _0206290C + cmp r1, #0x0 + blt _020629CE + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r4, r1, #0 + lsl r0, r1, #0x1 + lsl r0, r4, #0x1 + lsl r6, r0, #0x2 +_0206290C: + cmp r1, #0xff + beq _020629B2 + b _020629CE +_02062912: + .byte 0xE4, 0x30, 0xFF, 0x21, 0xB6, 0xF7, 0x83, 0xFE, 0x00, 0x23, 0x00, 0x93, 0x60, 0x8B + .byte 0x22, 0x1C, 0x98, 0x32, 0x01, 0x90, 0x2B, 0x48, 0x01, 0x21, 0x02, 0x90, 0x03, 0x93, 0x20, 0x1C + .byte 0x12, 0x68, 0xE4, 0x30, 0xB9, 0xF7, 0x54, 0xFA, 0xA0, 0x77, 0xA6, 0x20, 0x80, 0x00, 0x20, 0x58 + .byte 0x02, 0x21, 0xA9, 0xF7, 0x93, 0xFE, 0xE0, 0x68, 0x40, 0x1C, 0xE0, 0x60, 0x3F, 0xE0, 0xA0, 0x7F + .byte 0xB9, 0xF7, 0x0E, 0xFA, 0x00, 0x28, 0x3A, 0xD1, 0x20, 0x1C, 0xFF, 0xF7, 0xAF, 0xFF, 0xE0, 0x68 + .byte 0x40, 0x1C, 0xE0, 0x60, 0x33, 0xE0, 0xC8, 0x30, 0x00, 0x68, 0x21, 0x68, 0x9F, 0xF7, 0x1E, 0xFC + .byte 0x00, 0x28, 0x04, 0xD0, 0x01, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x04, 0xD0, 0x27, 0xE0, 0xE0, 0x68 + .byte 0x40, 0x1C, 0xE0, 0x60, 0x23, 0xE0, 0xFF, 0x20, 0xE0, 0x60, 0x20, 0xE0, 0xB1, 0x21, 0x89, 0x00 + .byte 0x61, 0x58, 0x00, 0x22, 0x8A, 0x80, 0x01, 0x21, 0x00, 0xF0, 0x84, 0xFC, 0xA6, 0x20, 0x80, 0x00 + .byte 0x20, 0x58, 0x01, 0x21, 0xA9, 0xF7, 0x62, 0xFE, 0x00, 0x20, 0xE0, 0x60, 0x04, 0xB0, 0x06, 0x20 + .byte 0x10, 0xBD +_020629B2: + add r0, r4, #0x0 + bl sub_02063208 + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_0200C66C + mov r0, #0x0 + str r0, [r4, #0xc] + add sp, #0x10 + mov r0, #0x6 + pop {r4, pc} +_020629CE: + mov r0, #0x7 + add sp, #0x10 + pop {r4, pc} +_020629D4: + .byte 0x0F, 0x02, 0x01, 0x00 + + thumb_func_start sub_020629D8 +sub_020629D8: ; 0x020629D8 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + beq _020629EE + cmp r1, #0x1 + beq _02062A2A + cmp r1, #0x2 + beq _02062A3C + b _02062A60 +_020629EE: + add r0, #0xe4 + mov r1, #0xff + bl sub_02019620 + mov r3, #0x0 + str r3, [sp, #0x0] + ldrh r0, [r4, #0x1a] + add r2, r4, #0x0 + add r2, #0x9c + str r0, [sp, #0x4] + ldr r0, _02062A68 ; =0x0001020F + mov r1, #0x1 + str r0, [sp, #0x8] + str r3, [sp, #0xc] + add r0, r4, #0x0 + ldr r2, [r2, #0x0] + add r0, #0xe4 + bl sub_0201BDE0 + strb r0, [r4, #0x1e] + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x2 + bl sub_0200C66C + ldr r0, [r4, #0xc] + add r0, r0, #0x1 + str r0, [r4, #0xc] + b _02062A60 +_02062A2A: + ldrb r0, [r4, #0x1e] + bl sub_0201BD70 + cmp r0, #0x0 + bne _02062A60 + ldr r0, [r4, #0xc] + add r0, r0, #0x1 + str r0, [r4, #0xc] + b _02062A60 +_02062A3C: + ldr r1, _02062A6C ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #0x3 + tst r1, r2 + beq _02062A60 + bl sub_02063208 + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_0200C66C + mov r0, #0x0 + str r0, [r4, #0xc] + add sp, #0x10 + mov r0, #0x6 + pop {r4, pc} +_02062A60: + mov r0, #0x8 + add sp, #0x10 + pop {r4, pc} + nop +_02062A68: .word 0x0001020F +_02062A6C: .word 0x021C48B8 + + thumb_func_start sub_02062A70 +sub_02062A70: ; 0x02062A70 + push {r4-r7, lr} + sub sp, #0x14 + add r4, r0, #0x0 + ldrb r2, [r4, #0x18] + add r5, r1, #0x0 + mov r1, #0x3c + ldr r0, [r4, #0x0] + mul r1, r2 + bl sub_02016998 + mov r1, #0xb + lsl r1, r1, #0x6 + str r0, [r4, r1] + ldr r0, [r4, r1] + ldrb r3, [r4, #0x18] + mov r2, #0x3c + mov r1, #0x0 + mul r2, r3 + blx sub_020CE34C + ldrb r1, [r4, #0x16] + ldr r2, [r4, #0x0] + add r0, r5, #0x0 + bl sub_0202BD6C + mov r1, #0xa9 + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0x0 + str r0, [sp, #0x10] + ldrb r0, [r4, #0x18] + cmp r0, #0x0 + bgt _02062AB4 + b _02062C48 +_02062AB4: + ldr r0, [sp, #0x10] + str r4, [sp, #0x8] + str r0, [sp, #0x4] + add r5, r0, #0x0 +_02062ABC: + ldrb r2, [r4, #0x17] + ldrb r3, [r4, #0x19] + mov r1, #0xd + mul r1, r2 + mov r0, #0x2a + add r2, r3, r1 + ldr r1, [sp, #0x10] + lsl r0, r0, #0x4 + add r1, r1, r2 + ldr r0, [r4, r0] + ldr r2, [r4, #0x0] + bl sub_0202BDF0 + mov r1, #0xaa + mov r3, #0x0 + ldr r2, [sp, #0x8] + lsl r1, r1, #0x2 + str r0, [r2, r1] + add r0, r2, #0x0 + ldr r0, [r0, r1] + mov r12, r3 + str r0, [sp, #0xc] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02062B22 + sub r0, r1, #0x4 + ldr r0, [r4, r0] + add r3, r1, #0x0 + add r2, r0, #0x4 + ldr r0, [sp, #0x4] + add r3, #0x18 + add r2, r2, r0 + add r0, r1, #0x0 + add r0, #0x18 + ldr r0, [r4, r0] + add r0, r0, r5 + str r2, [r0, #0x4] + add r0, r1, #0x0 + add r0, #0x18 + ldr r0, [r4, r0] + mov r2, #0x1 + add r0, r0, r5 + strh r2, [r0, #0x8] + ldr r3, [r4, r3] + mov r0, #0xff + add r3, r3, r5 + add r1, #0x18 + strb r0, [r3, #0xa] + ldr r0, [r4, r1] + str r2, [r0, r5] + b _02062C2C +_02062B22: + add r2, r3, #0x0 + cmp r0, #0x0 + ble _02062BE4 + ldr r0, [sp, #0xc] + str r0, [sp, #0x0] + add r7, r0, #0x4 +_02062B2E: + mov r0, r12 + cmp r0, #0x0 + bne _02062BA8 + mov r0, #0xa9 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldr r1, [sp, #0x4] + add r1, r1, r0 + ldr r6, [r1, #0x8] + ldr r1, [sp, #0x0] + ldr r1, [r1, #0x8] + cmp r6, r1 + blo _02062BA8 + add r6, r0, #0x4 + ldr r0, [sp, #0x4] + lsl r1, r3, #0x3 + add r0, r6, r0 + mov r6, #0xb + lsl r6, r6, #0x6 + ldr r6, [r4, r6] + add r3, r3, #0x1 + add r6, r5, r6 + add r6, r1, r6 + str r0, [r6, #0x4] + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + add r0, r5, r0 + add r6, r1, r0 + mov r0, #0x1 + strh r0, [r6, #0x8] + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + lsl r6, r3, #0x3 + add r0, r5, r0 + add r1, r1, r0 + mov r0, #0xff + strb r0, [r1, #0xa] + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + add r0, r5, r0 + add r0, r6, r0 + str r7, [r0, #0x4] + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + add r0, r5, r0 + add r1, r6, r0 + mov r0, #0x1 + strh r0, [r1, #0x8] + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + add r0, r5, r0 + add r0, r6, r0 + strb r2, [r0, #0xa] + mov r0, #0x1 + mov r12, r0 + b _02062BD0 +_02062BA8: + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + lsl r6, r3, #0x3 + add r0, r5, r0 + add r0, r6, r0 + str r7, [r0, #0x4] + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + add r0, r5, r0 + add r1, r6, r0 + mov r0, #0x1 + strh r0, [r1, #0x8] + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + add r0, r5, r0 + add r0, r6, r0 + strb r2, [r0, #0xa] +_02062BD0: + ldr r0, [sp, #0x0] + add r2, r2, #0x1 + add r0, #0xc + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + add r3, r3, #0x1 + ldr r0, [r0, #0x0] + add r7, #0xc + cmp r2, r0 + blt _02062B2E +_02062BE4: + mov r0, r12 + cmp r0, #0x0 + bne _02062C1E + mov r0, #0xa9 + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + lsl r2, r3, #0x3 + add r3, r1, #0x4 + ldr r1, [sp, #0x4] + add r1, r3, r1 + add r3, r0, #0x0 + add r3, #0x1c + ldr r3, [r4, r3] + add r3, r3, r5 + add r3, r2, r3 + str r1, [r3, #0x4] + add r3, r0, #0x0 + add r3, #0x1c + ldr r3, [r4, r3] + mov r1, #0x1 + add r3, r3, r5 + add r3, r2, r3 + strh r1, [r3, #0x8] + add r0, #0x1c + ldr r0, [r4, r0] + mov r1, #0xff + add r0, r0, r5 + add r0, r2, r0 + strb r1, [r0, #0xa] +_02062C1E: + ldr r0, [sp, #0xc] + ldr r0, [r0, #0x0] + add r1, r0, #0x1 + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + str r1, [r0, r5] +_02062C2C: + ldr r0, [sp, #0x8] + ldrb r1, [r4, #0x18] + add r0, r0, #0x4 + str r0, [sp, #0x8] + ldr r0, [sp, #0x4] + add r5, #0x3c + add r0, #0xc + str r0, [sp, #0x4] + ldr r0, [sp, #0x10] + add r0, r0, #0x1 + str r0, [sp, #0x10] + cmp r0, r1 + bge _02062C48 + b _02062ABC +_02062C48: + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_02062C4C +sub_02062C4C: ; 0x02062C4C + push {r3-r7, lr} + add r6, r0, #0x0 + ldrb r0, [r6, #0x18] + mov r4, #0x0 + add r0, r0, #0x1 + cmp r0, #0x0 + ble _02062C72 + mov r7, #0xa9 + add r5, r6, #0x0 + lsl r7, r7, #0x2 +_02062C60: + ldr r0, [r5, r7] + bl sub_0202BE6C + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + add r5, r5, #0x4 + add r0, r0, #0x1 + cmp r4, r0 + blt _02062C60 +_02062C72: + mov r0, #0xb + lsl r0, r0, #0x6 + ldr r0, [r6, r0] + bl sub_02016A18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02062C80 +sub_02062C80: ; 0x02062C80 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r2, _02062D34 ; =0x000001E1 + ldr r3, [r5, #0x0] + mov r0, #0x0 + mov r1, #0x1a + bl sub_0200A86C + str r0, [r5, #0x2c] + ldr r2, [r5, #0x0] + mov r0, #0x2 + mov r1, #0x4c + bl sub_0200AA90 + str r0, [r5, #0x30] + ldr r1, [r5, #0x0] + mov r0, #0x4c + bl sub_020219F4 + str r0, [r5, #0x34] + ldr r0, [r5, #0x2c] + mov r1, #0xd + bl sub_0200A914 + str r0, [r5, #0x38] + ldr r0, [r5, #0x2c] + mov r1, #0x16 + bl sub_0200A914 + str r0, [r5, #0x3c] + ldr r0, [r5, #0x2c] + mov r1, #0x24 + bl sub_0200A914 + str r0, [r5, #0x40] + ldr r0, [r5, #0x2c] + mov r1, #0xe + bl sub_0200A914 + str r0, [r5, #0x44] + ldrb r0, [r5, #0x18] + mov r4, #0x0 + cmp r0, #0x0 + ble _02062CFE + add r6, r5, #0x0 +_02062CDA: + ldrb r1, [r5, #0x19] + ldr r0, [r5, #0x2c] + add r1, r1, r4 + bl sub_0200A914 + str r0, [r6, #0x64] + ldrb r1, [r5, #0x19] + ldr r0, [r5, #0x2c] + add r1, #0x17 + add r1, r1, r4 + bl sub_0200A914 + str r0, [r6, #0x7c] + ldrb r0, [r5, #0x18] + add r4, r4, #0x1 + add r6, r6, #0x4 + cmp r4, r0 + blt _02062CDA +_02062CFE: + mov r4, #0x0 + add r6, r5, #0x0 +_02062D02: + add r1, r4, #0x0 + ldr r0, [r5, #0x2c] + add r1, #0xf + bl sub_0200A914 + str r0, [r6, #0x48] + add r4, r4, #0x1 + add r6, r6, #0x4 + cmp r4, #0x7 + blt _02062D02 + mov r4, #0x0 + add r6, r5, #0x0 +_02062D1A: + add r1, r4, #0x0 + ldr r0, [r5, #0x2c] + add r1, #0x25 + bl sub_0200A914 + add r1, r6, #0x0 + add r1, #0x94 + add r4, r4, #0x1 + add r6, r6, #0x4 + str r0, [r1, #0x0] + cmp r4, #0x3 + blt _02062D1A + pop {r4-r6, pc} + .balign 4 +_02062D34: .word 0x000001E1 + + thumb_func_start sub_02062D38 +sub_02062D38: ; 0x02062D38 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r4, #0x0 + add r5, r6, #0x0 +_02062D40: + add r0, r5, #0x0 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl sub_02021A20 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x3 + blt _02062D40 + mov r5, #0x0 + add r4, r6, #0x0 +_02062D56: + ldr r0, [r4, #0x48] + bl sub_02021A20 + add r5, r5, #0x1 + add r4, r4, #0x4 + cmp r5, #0x7 + blt _02062D56 + ldrb r0, [r6, #0x18] + mov r5, #0x0 + cmp r0, #0x0 + ble _02062D84 + add r4, r6, #0x0 +_02062D6E: + ldr r0, [r4, #0x64] + bl sub_02021A20 + ldr r0, [r4, #0x7c] + bl sub_02021A20 + ldrb r0, [r6, #0x18] + add r5, r5, #0x1 + add r4, r4, #0x4 + cmp r5, r0 + blt _02062D6E +_02062D84: + ldr r0, [r6, #0x44] + bl sub_02021A20 + ldr r0, [r6, #0x40] + bl sub_02021A20 + ldr r0, [r6, #0x3c] + bl sub_02021A20 + ldr r0, [r6, #0x38] + bl sub_02021A20 + ldr r0, [r6, #0x34] + bl sub_02021A20 + ldr r0, [r6, #0x30] + bl sub_0200AB18 + ldr r0, [r6, #0x2c] + bl sub_0200A8B8 + pop {r4-r6, pc} + + thumb_func_start sub_02062DB0 +sub_02062DB0: ; 0x02062DB0 + push {r3-r4, lr} + sub sp, #0x14 + add r4, r0, #0x0 + mov r1, #0xad + ldr r3, [r4, #0x0] + mov r0, #0x1 + lsl r1, r1, #0x6 + mov r2, #0x0 + bl sub_02017F18 + mov r2, #0x0 + str r2, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x11 + str r0, [sp, #0xc] + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + mov r1, #0x1 + add r3, r2, #0x0 + bl sub_02018540 + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_0201AC68 + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_0201797C + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02018884 + strh r0, [r4, #0x10] + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_02018884 + strh r0, [r4, #0x12] + mov r0, #0x0 + mov r1, #0x2 + bl sub_020178BC + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_020178BC + ldrh r0, [r4, #0x1c] + ldr r2, _02062EB8 ; =0x000003E2 + mov r1, #0x3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + mov r3, #0xa + str r0, [sp, #0x4] + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + bl sub_0200CD68 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r2, _02062EBC ; =0x000003D9 + str r0, [sp, #0x4] + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + mov r1, #0x3 + mov r3, #0xb + bl sub_0200CB00 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r2, _02062EBC ; =0x000003D9 + str r0, [sp, #0x4] + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + mov r1, #0x1 + mov r3, #0xb + bl sub_0200CB00 + mov r1, #0x1a + ldr r2, [r4, #0x0] + mov r0, #0x0 + lsl r1, r1, #0x4 + bl sub_02002ED0 + mov r1, #0x6 + ldr r2, [r4, #0x0] + mov r0, #0x0 + lsl r1, r1, #0x6 + bl sub_02002EEC + mov r0, #0x13 + str r0, [sp, #0x0] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, _02062EC0 ; =0x0000036D + add r1, r4, #0x0 + str r0, [sp, #0x10] + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + add r1, #0xe4 + mov r2, #0x3 + mov r3, #0x2 + bl sub_02019064 + add r4, #0xe4 + add r0, r4, #0x0 + mov r1, #0xff + bl sub_02019620 + add sp, #0x14 + pop {r3-r4, pc} + .balign 4 +_02062EB8: .word 0x000003E2 +_02062EBC: .word 0x000003D9 +_02062EC0: .word 0x0000036D + + thumb_func_start sub_02062EC4 +sub_02062EC4: ; 0x02062EC4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r0, #0xe4 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r4, #0x0 + add r0, #0xe4 + bl sub_02019570 + add r0, r4, #0x0 + add r0, #0xe4 + bl sub_02019178 + mov r1, #0xad + ldr r3, [r4, #0x0] + mov r0, #0x1 + lsl r1, r1, #0x6 + mov r2, #0x0 + bl sub_02017F18 + mov r2, #0x0 + str r2, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x11 + str r0, [sp, #0xc] + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + mov r1, #0x1 + add r3, r2, #0x0 + bl sub_02018540 + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_0201AC68 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0201797C + ldrh r1, [r4, #0x10] + mov r0, #0x0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_020178BC + ldrh r1, [r4, #0x12] + mov r0, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_020178BC + add sp, #0x10 + pop {r4, pc} + + thumb_func_start sub_02062F3C +sub_02062F3C: ; 0x02062F3C + push {r4-r7, lr} + sub sp, #0x24 + ldr r4, _02062FF0 ; =0x020F7BDC + add r3, sp, #0xc + add r6, r0, #0x0 + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + mov r0, #0x4d + lsl r0, r0, #0x2 + add r1, r2, #0x0 + ldr r3, [r6, #0x0] + add r0, r6, r0 + mov r2, #0x2 + bl sub_021D959C + mov r0, #0x3 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, _02062FF4 ; =0x000034D8 + mov r2, #0x0 + str r0, [sp, #0x8] + mov r0, #0x4d + lsl r0, r0, #0x2 + add r0, r6, r0 + mov r1, #0x82 + add r3, r2, #0x0 + bl sub_021D967C + ldr r0, _02062FF4 ; =0x000034D8 + mov r1, #0x82 + str r0, [sp, #0x0] + mov r0, #0x4d + lsl r0, r0, #0x2 + add r0, r6, r0 + mov r2, #0x2 + mov r3, #0x0 + bl sub_021D96F4 + ldr r0, _02062FF4 ; =0x000034D8 + mov r1, #0x82 + str r0, [sp, #0x0] + mov r0, #0x4d + lsl r0, r0, #0x2 + add r0, r6, r0 + mov r2, #0x3 + mov r3, #0x0 + bl sub_021D9708 + mov r2, #0x1 + ldr r0, _02062FF4 ; =0x000034D8 + str r2, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x4d + lsl r0, r0, #0x2 + add r0, r6, r0 + mov r1, #0x82 + mov r3, #0x0 + bl sub_021D971C + ldr r4, _02062FF8 ; =0x020F7C7C + mov r7, #0x0 + add r5, r6, #0x0 +_02062FC4: + mov r0, #0x4d + lsl r0, r0, #0x2 + add r0, r6, r0 + add r1, r4, #0x0 + bl sub_021D9820 + mov r1, #0xa6 + lsl r1, r1, #0x2 + str r0, [r5, r1] + add r7, r7, #0x1 + add r4, #0x34 + add r5, r5, #0x4 + cmp r7, #0x2 + blt _02062FC4 + add r0, r1, #0x4 + ldr r0, [r6, r0] + mov r1, #0x0 + bl sub_0200C644 + add sp, #0x24 + pop {r4-r7, pc} + nop +_02062FF0: .word 0x020F7BDC +_02062FF4: .word 0x000034D8 +_02062FF8: .word 0x020F7C7C + + thumb_func_start sub_02062FFC +sub_02062FFC: ; 0x02062FFC + push {r3-r7, lr} + add r7, r0, #0x0 + mov r6, #0xa6 + mov r4, #0x0 + add r5, r7, #0x0 + lsl r6, r6, #0x2 +_02063008: + ldr r0, [r5, r6] + cmp r0, #0x0 + beq _02063012 + bl sub_0200C3DC +_02063012: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x2 + blt _02063008 + mov r0, #0x4d + lsl r0, r0, #0x2 + add r0, r7, r0 + bl sub_021D99F8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02063028 +sub_02063028: ; 0x02063028 + push {r4-r7, lr} + sub sp, #0x1c + str r1, [sp, #0x14] + add r5, r0, #0x0 + str r2, [sp, #0x18] + ldrb r0, [r5, #0x18] + ldr r1, [r5, #0x0] + add r7, r0, #0x1 + add r0, r7, #0x0 + bl sub_02012838 + add r1, r5, #0x0 + add r1, #0xc4 + str r0, [r1, #0x0] + mov r2, #0x1 + add r1, r5, #0x0 + str r2, [sp, #0x0] + mov r0, #0x18 + str r0, [sp, #0x4] + lsl r0, r7, #0x19 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + mov r0, #0xd + str r0, [sp, #0xc] + add r0, r5, #0x0 + str r2, [sp, #0x10] + add r0, #0xd0 + ldr r0, [r0, #0x0] + add r1, #0xd4 + mov r3, #0x4 + bl sub_02019064 + add r0, r5, #0x0 + add r0, #0xd4 + mov r1, #0xff + bl sub_02019620 + ldrb r0, [r5, #0x18] + mov r6, #0x0 + cmp r0, #0x0 + ble _02063094 + add r4, r5, #0x0 +_0206307C: + add r0, r5, #0x0 + add r0, #0xc4 + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x64] + add r2, r6, #0x0 + bl sub_020128A0 + ldrb r0, [r5, #0x18] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _0206307C +_02063094: + add r0, r5, #0x0 + add r0, #0xc4 + ldr r0, [r0, #0x0] + ldr r1, [r5, #0x38] + ldr r2, _02063160 ; =0x0000FFFF + bl sub_020128A0 + add r1, r5, #0x0 + ldr r0, _02063164 ; =0x020F7C2C + add r1, #0xa0 + mov r2, #0x20 + blx sub_020CE3E0 + add r1, r5, #0x0 + add r0, r5, #0x0 + add r1, #0xd4 + add r0, #0xac + str r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0xc4 + ldr r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0xa0 + str r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0xbc + str r5, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0xb0 + strh r7, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0xb7 + ldrb r1, [r0, #0x0] + mov r0, #0xf + bic r1, r0 + add r0, r5, #0x0 + add r0, #0xb7 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + ldr r1, _02063168 ; =sub_020631C8 + add r0, #0xa4 + str r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x0 + add r0, #0xa8 + str r1, [r0, #0x0] + ldr r3, [r5, #0x0] + add r0, r5, #0x0 + lsl r3, r3, #0x18 + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x18] + add r0, #0xa0 + lsr r3, r3, #0x18 + bl sub_020010A8 + add r1, r5, #0x0 + add r1, #0xc0 + str r0, [r1, #0x0] + add r0, r5, #0x0 + ldr r2, _0206316C ; =0x000003D9 + add r0, #0xd4 + mov r1, #0x0 + mov r3, #0xb + bl sub_0200CCA4 + add r0, r5, #0x0 + ldr r2, _02063170 ; =0x000003E2 + add r0, #0xe4 + mov r1, #0x1 + mov r3, #0xa + bl sub_0200D0BC + add r0, r5, #0x0 + add r0, #0xe4 + mov r1, #0xff + bl sub_02019620 + mov r3, #0x0 + str r3, [sp, #0x0] + ldr r0, _02063174 ; =0x0001020F + str r3, [sp, #0x4] + str r0, [sp, #0x8] + str r3, [sp, #0xc] + add r0, r5, #0x0 + ldr r2, [r5, #0x3c] + add r0, #0xe4 + mov r1, #0x1 + bl sub_0201BDE0 + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x1 + bl sub_0200C644 + add r5, #0xd0 + ldr r0, [r5, #0x0] + mov r1, #0x3 + bl sub_0201AC68 + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 +_02063160: .word 0x0000FFFF +_02063164: .word 0x020F7C2C +_02063168: .word sub_020631C8 + 1 +_0206316C: .word 0x000003D9 +_02063170: .word 0x000003E2 +_02063174: .word 0x0001020F + + thumb_func_start sub_02063178 +sub_02063178: ; 0x02063178 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0xc0 + add r1, r4, #0x0 + add r2, r4, #0x0 + ldr r0, [r0, #0x0] + add r1, #0x22 + add r2, #0x24 + bl sub_02001300 + add r0, r4, #0x0 + add r0, #0xc4 + ldr r0, [r0, #0x0] + bl sub_02012870 + add r0, r4, #0x0 + add r0, #0xd4 + bl sub_02019570 + add r0, r4, #0x0 + add r0, #0xd4 + mov r1, #0x0 + bl sub_0200CCF8 + add r0, r4, #0x0 + add r0, #0xd4 + bl sub_02019178 + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200C644 + add r4, #0xd0 + ldr r0, [r4, #0x0] + mov r1, #0x3 + bl sub_0201AC68 + pop {r4, pc} + + thumb_func_start sub_020631C8 +sub_020631C8: ; 0x020631C8 + push {r3-r5, lr} + mov r1, #0x13 + add r5, r0, #0x0 + bl sub_02001470 + add r1, sp, #0x0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + add r2, sp, #0x0 + bl sub_02001448 + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_02001470 + add r2, sp, #0x0 + ldrh r3, [r2, #0x0] + ldrh r2, [r2, #0x2] + mov r0, #0xa6 + lsl r0, r0, #0x2 + add r2, r3, r2 + lsl r2, r2, #0x4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r4, r0] + mov r1, #0x7e + asr r2, r2, #0x10 + bl sub_0200C714 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02063208 +sub_02063208: ; 0x02063208 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r0, #0xe4 + mov r1, #0xff + bl sub_02019620 + mov r3, #0x0 + str r3, [sp, #0x0] + ldr r0, _02063234 ; =0x0001020F + str r3, [sp, #0x4] + str r0, [sp, #0x8] + add r0, r4, #0x0 + str r3, [sp, #0xc] + add r4, #0x94 + ldr r2, [r4, #0x0] + add r0, #0xe4 + mov r1, #0x1 + bl sub_0201BDE0 + add sp, #0x10 + pop {r4, pc} + .balign 4 +_02063234: .word 0x0001020F + + thumb_func_start sub_02063238 +sub_02063238: ; 0x02063238 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02063208 + ldrh r2, [r4, #0x28] + mov r0, #0xa6 + lsl r0, r0, #0x2 + lsl r2, r2, #0x4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r4, r0] + mov r1, #0x7e + asr r2, r2, #0x10 + bl sub_0200C714 + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_0200C644 + pop {r4, pc} + + thumb_func_start sub_02063264 +sub_02063264: ; 0x02063264 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r0, #0xe4 + mov r1, #0xff + bl sub_02019620 + mov r3, #0x0 + str r3, [sp, #0x0] + ldr r0, _020632A0 ; =0x0001020F + str r3, [sp, #0x4] + str r0, [sp, #0x8] + str r3, [sp, #0xc] + ldrb r2, [r4, #0x1f] + add r0, r4, #0x0 + add r0, #0xe4 + lsl r2, r2, #0x2 + add r2, r4, r2 + ldr r2, [r2, #0x7c] + mov r1, #0x1 + bl sub_0201BDE0 + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200C644 + add sp, #0x10 + pop {r4, pc} + .balign 4 +_020632A0: .word 0x0001020F + + thumb_func_start sub_020632A4 +sub_020632A4: ; 0x020632A4 + push {r4-r7, lr} + sub sp, #0x34 + str r1, [sp, #0x10] + mov r1, #0xb + add r4, r0, #0x0 + lsl r1, r1, #0x6 + ldr r1, [r4, r1] + ldrb r0, [r4, #0x1f] + str r1, [sp, #0x24] + mov r1, #0x3c + mul r1, r0 + str r1, [sp, #0x28] + ldrb r1, [r4, #0x16] + lsl r0, r0, #0x3 + lsl r2, r1, #0x2 + ldr r1, _02063428 ; =0x020F7BD0 + ldr r1, [r1, r2] + add r0, r1, r0 + str r0, [sp, #0x14] + add r0, r4, #0x0 + add r0, #0xd4 + mov r1, #0xff + bl sub_02019620 + mov r0, #0x1 + str r0, [sp, #0x1c] + mov r0, #0x0 + add r1, r0, #0x0 + str r1, [sp, #0x20] + ldr r2, [sp, #0x24] + ldr r1, [sp, #0x28] + str r0, [sp, #0x18] + ldr r1, [r2, r1] + cmp r1, #0x0 + ble _020633EA + ldr r1, [sp, #0x28] + add r7, r2, r1 + add r1, r0, #0x0 + str r1, [sp, #0x30] + add r1, r4, #0x0 + str r1, [sp, #0x2c] + add r1, #0xd4 + str r1, [sp, #0x2c] +_020632FA: + ldrh r1, [r7, #0x8] + cmp r1, #0x0 + beq _020633D6 + ldr r1, [r7, #0x4] + ldr r5, [r1, #0x4] + ldr r1, [sp, #0x14] + ldr r1, [r1, #0x0] + cmp r5, r1 + bls _0206330E + add r5, r1, #0x0 +_0206330E: + cmp r5, r0 + bge _02063318 + ldr r0, [sp, #0x1c] + add r0, r0, #0x1 + str r0, [sp, #0x1c] +_02063318: + mov r0, #0x1 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [r4, #0x30] + ldr r2, [sp, #0x1c] + mov r1, #0x0 + mov r3, #0x1 + bl sub_0200AD38 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + ldr r2, [r7, #0x4] + ldr r0, [r4, #0x30] + ldr r2, [r2, #0x8] + mov r1, #0x1 + mov r3, #0x2 + bl sub_0200ABB4 + ldr r0, [r4, #0x30] + ldr r1, [r4, #0x34] + ldr r2, [r4, #0x44] + bl sub_0200B7B8 + ldr r0, [sp, #0x30] + mov r1, #0x0 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0206342C ; =0x0001020F + mov r3, #0x8 + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x2c] + ldr r2, [r4, #0x34] + bl sub_0201BDE0 + mov r0, #0x1 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r3, [sp, #0x14] + ldr r0, [r4, #0x30] + ldrh r3, [r3, #0x4] + mov r1, #0x0 + add r2, r5, #0x0 + bl sub_0200AD38 + ldr r2, [sp, #0x14] + ldr r0, [r4, #0x30] + ldrh r2, [r2, #0x6] + ldr r1, [r4, #0x34] + lsl r2, r2, #0x2 + add r2, r4, r2 + ldr r2, [r2, #0xc] + bl sub_0200B7B8 + mov r0, #0x0 + ldr r1, [r4, #0x34] + add r2, r0, #0x0 + bl sub_02002E14 + mov r12, r0 + ldr r0, [sp, #0x30] + mov r3, #0xb8 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0206342C ; =0x0001020F + mov r6, r12 + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x2c] + ldr r2, [r4, #0x34] + mov r1, #0x0 + sub r3, r3, r6 + bl sub_0201BDE0 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x20] + add r2, r4, r0 + mov r0, #0xb2 + lsl r0, r0, #0x2 + strb r1, [r2, r0] + ldr r1, [sp, #0x30] + add r0, r5, #0x0 + add r1, #0x10 + str r1, [sp, #0x30] + ldr r1, [sp, #0x18] + add r1, r1, #0x1 + str r1, [sp, #0x18] + cmp r1, #0x6 + bge _020633EA +_020633D6: + ldr r1, [sp, #0x20] + ldr r2, [sp, #0x24] + add r1, r1, #0x1 + str r1, [sp, #0x20] + ldr r1, [sp, #0x28] + add r7, #0x8 + ldr r2, [r2, r1] + ldr r1, [sp, #0x20] + cmp r1, r2 + blt _020632FA +_020633EA: + add r0, r4, #0x0 + add r0, #0xd4 + bl sub_020191D0 + add r1, r4, #0x0 + ldr r0, [sp, #0x18] + add r1, #0x21 + strb r0, [r1, #0x0] + ldrh r1, [r4, #0x28] + cmp r1, #0x0 + beq _0206340E + add r0, r4, #0x0 + add r0, #0x21 + ldrb r0, [r0, #0x0] + cmp r1, r0 + blt _0206340E + sub r0, r1, #0x1 + strh r0, [r4, #0x28] +_0206340E: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + beq _0206341E + add r0, r4, #0x0 + bl sub_02063238 + add sp, #0x34 + pop {r4-r7, pc} +_0206341E: + add r0, r4, #0x0 + bl sub_02063264 + add sp, #0x34 + pop {r4-r7, pc} + .balign 4 +_02063428: .word 0x020F7BD0 +_0206342C: .word 0x0001020F + + thumb_func_start sub_02063430 +sub_02063430: ; 0x02063430 + push {r3-r4, lr} + sub sp, #0x14 + mov r2, #0x1 + add r4, r0, #0x0 + str r2, [sp, #0x0] + mov r0, #0x18 + str r0, [sp, #0x4] + mov r0, #0xc + str r0, [sp, #0x8] + mov r0, #0xd + str r0, [sp, #0xc] + add r0, r4, #0x0 + add r1, r4, #0x0 + str r2, [sp, #0x10] + add r0, #0xd0 + ldr r0, [r0, #0x0] + add r1, #0xd4 + mov r3, #0x4 + bl sub_02019064 + add r0, r4, #0x0 + ldr r2, _020634D0 ; =0x000003D9 + add r0, #0xd4 + mov r1, #0x1 + mov r3, #0xb + bl sub_0200CCA4 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020632A4 + mov r0, #0xa7 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_0200C644 + mov r0, #0xe + str r0, [sp, #0x0] + mov r3, #0x8 + add r1, r4, #0x0 + str r3, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _020634D4 ; =0x00000345 + add r1, #0xf4 + str r0, [sp, #0x10] + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + mov r2, #0x3 + bl sub_02019064 + add r0, r4, #0x0 + add r0, #0xf4 + mov r1, #0x0 + bl sub_02019620 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, _020634D8 ; =0x00010200 + str r1, [sp, #0x4] + str r0, [sp, #0x8] + str r1, [sp, #0xc] + add r0, r4, #0x0 + ldr r2, [r4, #0x40] + add r0, #0xf4 + add r3, r1, #0x0 + bl sub_0201BDE0 + add r4, #0xd0 + ldr r0, [r4, #0x0] + mov r1, #0x3 + bl sub_0201AC68 + add sp, #0x14 + pop {r3-r4, pc} + nop +_020634D0: .word 0x000003D9 +_020634D4: .word 0x00000345 +_020634D8: .word 0x00010200 + + thumb_func_start sub_020634DC +sub_020634DC: ; 0x020634DC + push {r4, lr} + add r4, r0, #0x0 + add r0, #0xd4 + bl sub_02019570 + add r0, r4, #0x0 + add r0, #0xd4 + mov r1, #0x0 + bl sub_0200CCF8 + add r0, r4, #0x0 + add r0, #0xd4 + bl sub_02019178 + add r0, r4, #0x0 + add r0, #0xf4 + bl sub_02019570 + add r0, r4, #0x0 + add r0, #0xf4 + bl sub_02019178 + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200C644 + mov r0, #0xa7 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200C644 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02063524 +sub_02063524: ; 0x02063524 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r2, [r4, #0x0] + ldr r1, [r4, #0x8] + cmp r2, #0xc + bls _02063540 + b _02063646 +_02063540: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r0, r3, #0 + lsl r4, r4, #0 + lsl r0, r6, #0 + lsl r6, r0, #0x1 + lsl r4, r3, #0x1 + lsl r2, r6, #0x1 + lsl r0, r1, #0x2 + lsl r6, r3, #0x2 + lsl r4, r6, #0x2 + lsl r2, r1, #0x3 + lsl r6, r3, #0x3 + lsl r0, r5, #0x3 + lsl r0, r6, #0x3 + ldrh r2, [r4, #0x4] + add r1, r5, #0x0 + bl sub_020625EC + str r0, [r4, #0x0] + b _02063646 +_02063572: + .byte 0x08, 0x1C, 0xE9, 0x68, 0xFF, 0xF7, 0xD3, 0xF8, 0x20, 0x60, 0x63, 0xE0, 0x08, 0x1C + .byte 0xFF, 0xF7, 0xEE, 0xF8, 0x20, 0x60, 0x4D, 0x20, 0xA1, 0x68, 0x80, 0x00, 0x08, 0x58, 0xBC, 0xF7 + .byte 0x2D, 0xFC, 0x58, 0xE0, 0x08, 0x1C, 0xFF, 0xF7, 0xEB, 0xF8, 0x20, 0x60, 0x4D, 0x20, 0xA1, 0x68 + .byte 0x80, 0x00, 0x08, 0x58, 0xBC, 0xF7, 0x22, 0xFC, 0x4D, 0xE0, 0x08, 0x1C, 0xFF, 0xF7, 0x10, 0xF9 + .byte 0x20, 0x60, 0x4D, 0x20, 0xA1, 0x68, 0x80, 0x00, 0x08, 0x58, 0xBC, 0xF7, 0x17, 0xFC, 0x42, 0xE0 + .byte 0x08, 0x1C, 0xFF, 0xF7, 0x0B, 0xF9, 0x20, 0x60, 0x4D, 0x20, 0xA1, 0x68, 0x80, 0x00, 0x08, 0x58 + .byte 0xBC, 0xF7, 0x0C, 0xFC, 0x37, 0xE0, 0x08, 0x1C, 0xFF, 0xF7, 0x16, 0xF9, 0x20, 0x60, 0x4D, 0x20 + .byte 0xA1, 0x68, 0x80, 0x00, 0x08, 0x58, 0xBC, 0xF7, 0x01, 0xFC, 0x2C, 0xE0, 0x08, 0x1C, 0xFF, 0xF7 + .byte 0x7B, 0xF9, 0x20, 0x60, 0x4D, 0x20, 0xA1, 0x68, 0x80, 0x00, 0x08, 0x58, 0xBC, 0xF7, 0xF6, 0xFB + .byte 0x21, 0xE0, 0x08, 0x1C, 0xFF, 0xF7, 0xE8, 0xF9, 0x20, 0x60, 0x4D, 0x20, 0xA1, 0x68, 0x80, 0x00 + .byte 0x08, 0x58, 0xBC, 0xF7, 0xEB, 0xFB, 0x16, 0xE0, 0x0C, 0x48, 0x81, 0x6C, 0x01, 0x20, 0x08, 0x42 + .byte 0x01, 0xD1, 0x00, 0x20, 0x38, 0xBD, 0x0A, 0x20, 0x20, 0x60, 0x0C, 0xE0, 0x08, 0x1C, 0xFF, 0xF7 + .byte 0x87, 0xF8, 0x20, 0x60, 0x07, 0xE0, 0xFF, 0xF7, 0x1F, 0xF8, 0x20, 0x60, 0x03, 0xE0, 0xB3, 0xF7 + .byte 0xEB, 0xF9, 0x01, 0x20, 0x38, 0xBD +_02063646: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0206364C: + .byte 0xB8, 0x48, 0x1C, 0x02 + + thumb_func_start sub_02063650 +sub_02063650: ; 0x02063650 + push {r3-r5, lr} + add r5, r1, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0xc + bl sub_02016998 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + strh r5, [r2, #0x4] + str r0, [r2, #0x8] + ldr r0, [r4, #0x10] + ldr r1, _02063678 ; =sub_02063524 + bl sub_0204640C + pop {r3-r5, pc} + nop +_02063678: .word sub_02063524 + 1 + + thumb_func_start sub_0206367C +sub_0206367C: ; 0x0206367C + add r0, #0xb4 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02063684 +sub_02063684: ; 0x02063684 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02063818 + ldr r0, [r5, #0xc] + bl sub_020462AC + mov r1, #0x0 + bl sub_0205F264 + ldr r1, [r5, #0x1c] + add r0, r5, #0x0 + ldr r1, [r1, #0x0] + bl sub_02034F88 + ldr r0, [r5, #0xc] + bl sub_0202A9B0 + mov r1, #0x0 + bl sub_0202AB68 + add r0, r5, #0x0 + mov r1, #0x0 + add r0, #0x74 + strh r1, [r0, #0x0] + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x0 + bne _020636DA + ldr r0, [r5, #0xc] + bl sub_0202A9B0 + ldr r1, [r5, #0x1c] + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_02060478 + add r0, r4, #0x0 + bl sub_020603F0 +_020636DA: + pop {r3-r5, pc} + + thumb_func_start sub_020636DC +sub_020636DC: ; 0x020636DC + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0xb4 + ldr r1, [r1, #0x0] + cmp r1, #0x1 + beq _020637A6 + bl sub_02063818 + cmp r0, #0x0 + bne _020636F8 + add r0, r5, #0x0 + bl sub_0206384C +_020636F8: + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205F254 + ldr r0, [r5, #0xc] + bl sub_020462AC + mov r1, #0x0 + bl sub_0205F264 + ldr r1, [r5, #0x1c] + add r0, r5, #0x0 + ldr r1, [r1, #0x0] + bl sub_02034F88 + ldr r0, [r5, #0xc] + bl sub_0202A9B0 + mov r1, #0x0 + bl sub_0202AB68 + add r0, r5, #0x0 + mov r1, #0x0 + add r0, #0x74 + strh r1, [r0, #0x0] + ldr r0, [r5, #0xc] + bl sub_0202A9B0 + ldr r1, [r5, #0x1c] + ldr r1, [r1, #0x0] + bl sub_02060478 + ldr r0, [r5, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034930 + cmp r0, #0x0 + bne _02063758 + ldr r0, [r5, #0xc] + bl sub_020462AC + add r4, r0, #0x0 + bl sub_0205F284 + add r0, r4, #0x0 + bl sub_0205F2B4 +_02063758: + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034E20 + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x1 + bne _0206377C + ldr r0, [r5, #0x1c] + ldr r0, [r0, #0x0] + bl sub_020348B4 + cmp r0, #0x0 + bne _0206377C + mov r0, #0x0 + str r0, [r4, #0x4] + b _02063786 +_0206377C: + ldr r0, [r4, #0x4] + cmp r0, #0x2 + bne _02063786 + mov r0, #0x0 + str r0, [r4, #0x4] +_02063786: + ldr r0, [r5, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034908 + cmp r0, #0x0 + beq _020637A6 + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034E0C + ldr r2, [r5, #0x1c] + ldr r1, [r2, #0x8] + ldr r2, [r2, #0xc] + bl sub_0204AE04 +_020637A6: + pop {r3-r5, pc} + + thumb_func_start sub_020637A8 +sub_020637A8: ; 0x020637A8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020462AC + bl sub_0205F204 + ldr r0, [r4, #0xc] + bl sub_0202A9B0 + bl sub_020603C8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020637C4 +sub_020637C4: ; 0x020637C4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_020462AC + bl sub_0205F204 + ldr r0, [r4, #0xc] + bl sub_0202A9B0 + bl sub_020603C8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020637E0 +sub_020637E0: ; 0x020637E0 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F204 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020637F0 +sub_020637F0: ; 0x020637F0 + push {r4, lr} + ldr r0, [r0, #0xc] + bl sub_020462AC + add r4, r0, #0x0 + bl sub_0205ED2C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0205F358 + pop {r4, pc} + + thumb_func_start sub_02063808 +sub_02063808: ; 0x02063808 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_0202A9B0 + bl sub_020603C8 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02063818 +sub_02063818: ; 0x02063818 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034F1C + add r1, r0, #0x0 + beq _02063846 + add r0, r4, #0x0 + bl sub_02034FC0 + cmp r0, #0x0 + bne _02063846 + add r0, r4, #0x0 + ldr r1, [r4, #0x1c] + add r0, #0x98 + ldr r0, [r0, #0x0] + ldr r1, [r1, #0x0] + mov r2, #0x20 + bl sub_020299C0 + mov r0, #0x1 + pop {r4, pc} +_02063846: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206384C +sub_0206384C: ; 0x0206384C + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034DC8 + ldr r1, [r5, #0x1c] + ldr r6, [r0, #0x0] + ldr r4, [r1, #0x0] + cmp r6, r4 + beq _02063882 + ldr r0, [r5, #0xc] + bl sub_020238F4 + mov r1, #0x20 + add r5, #0x98 + str r1, [sp, #0x0] + ldr r1, [r5, #0x0] + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_02029880 + add sp, #0x4 + mov r0, #0x1 + pop {r3-r6, pc} +_02063882: + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + + thumb_func_start sub_02063888 +sub_02063888: ; 0x02063888 + push {r4-r6, lr} + add r5, r1, #0x0 + mov r1, #0x18 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_020169D8 + add r3, r0, #0x0 + mov r2, #0x18 + mov r1, #0x0 +_0206389C: + strb r1, [r3, #0x0] + add r3, r3, #0x1 + sub r2, r2, #0x1 + bne _0206389C + str r5, [r0, #0x0] + str r4, [r0, #0x10] + strh r6, [r0, #0x8] + add r2, sp, #0x0 + mov r1, #0x10 + ldrsh r1, [r2, r1] + strh r1, [r0, #0xa] + mov r1, #0x14 + ldrsh r1, [r2, r1] + strh r1, [r0, #0xc] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020638BC +sub_020638BC: ; 0x020638BC + push {r3-r6, lr} + sub sp, #0x1c + add r5, r0, #0x0 + bl sub_02046528 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _020638DA + cmp r0, #0x1 + beq _020638F8 + b _02063942 +_020638DA: + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x38] + bl sub_020553E8 + add r3, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r2, [r4, #0x10] + mov r1, #0x1 + bl sub_0224666C + str r0, [r4, #0x14] + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _02063942 +_020638F8: + ldr r0, [r4, #0x14] + bl sub_022466A0 + cmp r0, #0x0 + beq _02063942 + ldr r0, [r4, #0x14] + bl sub_022466AC + mov r1, #0xa + mov r2, #0xc + ldrh r0, [r4, #0x8] + ldrsh r1, [r4, r1] + ldrsh r2, [r4, r2] + bl sub_02034F40 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + bne _02063920 + bl sub_02020C2C +_02063920: + add r0, r6, #0x0 + add r1, sp, #0x8 + bl sub_02034E90 + ldr r0, [sp, #0x14] + mov r2, #0x1 + str r0, [sp, #0x0] + str r2, [sp, #0x4] + ldr r1, [sp, #0x8] + ldr r3, [sp, #0x10] + add r0, r5, #0x0 + sub r2, r2, #0x2 + bl sub_020492BC + add r0, r4, #0x0 + bl sub_02016A18 +_02063942: + mov r0, #0x0 + add sp, #0x1c + pop {r3-r6, pc} + + thumb_func_start sub_02063948 +sub_02063948: ; 0x02063948 + cmp r0, #0x0 + bne _02063954 + ldr r0, _0206395C ; =0x020F7CE4 + lsl r1, r1, #0x3 + ldr r0, [r0, r1] + bx lr +_02063954: + ldr r0, _02063960 ; =0x020F7CE8 + lsl r1, r1, #0x3 + ldr r0, [r0, r1] + bx lr + .balign 4 +_0206395C: .word 0x020F7CE4 +_02063960: .word 0x020F7CE8 + + thumb_func_start sub_02063964 +sub_02063964: ; 0x02063964 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + str r5, [r4, #0x4] + ldr r1, [r5, #0x1c] + ldr r1, [r1, #0x0] + str r1, [r4, #0x0] + mov r1, #0x0 + strh r1, [r4, #0xc] + add r1, sp, #0x8 + bl sub_02037024 + ldr r0, [sp, #0x8] + str r0, [r4, #0x8] + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _020639B6 + bl sub_02058458 + cmp r0, #0x54 + beq _0206399A + cmp r0, #0x55 + beq _020639A4 + cmp r0, #0x56 + beq _020639AE + b _020639B6 +_0206399A: + ldrh r1, [r4, #0xc] + mov r0, #0x8 + orr r0, r1 + strh r0, [r4, #0xc] + b _020639B6 +_020639A4: + ldrh r1, [r4, #0xc] + mov r0, #0x20 + orr r0, r1 + strh r0, [r4, #0xc] + b _020639B6 +_020639AE: + ldrh r1, [r4, #0xc] + mov r0, #0x1 + orr r0, r1 + strh r0, [r4, #0xc] +_020639B6: + ldr r0, [r5, #0x38] + bl sub_02055320 + str r0, [sp, #0x4] + ldr r0, [r5, #0x38] + bl sub_0205532C + add r2, r0, #0x0 + ldr r1, [sp, #0x4] + str r2, [sp, #0x0] + add r0, r5, #0x0 + bl sub_0204A6E0 + add r7, r0, #0x0 + ldr r0, [r5, #0x38] + add r1, sp, #0x4 + add r2, sp, #0x0 + bl sub_020572B8 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + bl sub_0204A6E0 + add r6, r0, #0x0 + ldr r0, [r5, #0x38] + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_021E643C + cmp r0, #0x0 + beq _020639FE + ldrh r1, [r4, #0xc] + mov r0, #0x4 + orr r0, r1 + strh r0, [r4, #0xc] +_020639FE: + ldr r0, [r5, #0x38] + bl sub_020552F8 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl sub_021E69BC + cmp r0, #0x0 + beq _02063A18 + ldrh r1, [r4, #0xc] + mov r0, #0x80 + orr r0, r1 + strh r0, [r4, #0xc] +_02063A18: + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + bl sub_02054A48 + cmp r0, #0x0 + beq _02063A2C + ldrh r1, [r4, #0xc] + mov r0, #0x40 + orr r0, r1 + strh r0, [r4, #0xc] +_02063A2C: + ldr r0, [r5, #0xc] + bl sub_02034E30 + bl sub_02034DEC + cmp r0, #0xe + beq _02063A42 + cmp r0, #0x10 + beq _02063A4E + add sp, #0xc + pop {r4-r7, pc} +_02063A42: + ldrh r1, [r4, #0xc] + mov r0, #0x10 + add sp, #0xc + orr r0, r1 + strh r0, [r4, #0xc] + pop {r4-r7, pc} +_02063A4E: + ldrh r1, [r4, #0xc] + mov r0, #0x1 + lsl r0, r0, #0x8 + orr r0, r1 + strh r0, [r4, #0xc] + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02063A5C +sub_02063A5C: ; 0x02063A5C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x20 + mov r1, #0x10 + bl sub_02016998 + ldr r1, _02063A7C ; =0x19740205 + str r1, [r0, #0x0] + ldr r1, [r4, #0x8] + str r1, [r0, #0x4] + ldr r2, [r5, #0x0] + ldr r1, [r5, #0x4] + str r2, [r0, #0x8] + str r1, [r0, #0xc] + pop {r3-r5, pc} + .balign 4 +_02063A7C: .word 0x19740205 + + thumb_func_start sub_02063A80 +sub_02063A80: ; 0x02063A80 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02063A98 ; =0x19740205 + cmp r1, r0 + beq _02063A90 + bl sub_02020C2C +_02063A90: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 +_02063A98: .word 0x19740205 + + thumb_func_start sub_02063A9C +sub_02063A9C: ; 0x02063A9C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + ldr r0, [r1, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _02063AAE + mov r0, #0x1 + pop {r4, pc} +_02063AAE: + ldr r0, [r1, #0xc] + bl sub_020238F4 + mov r1, #0x1 + bl sub_020239D0 + cmp r0, #0x0 + bne _02063AC2 + mov r0, #0x2 + pop {r4, pc} +_02063AC2: + ldrh r1, [r4, #0xc] + mov r0, #0x1 + tst r1, r0 + beq _02063ACC + mov r0, #0x0 +_02063ACC: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02063AD0 +sub_02063AD0: ; 0x02063AD0 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02063A5C + add r5, r0, #0x0 + ldr r0, [r6, #0x4] + bl sub_0204649C + mov r0, #0x72 + ldr r1, _02063B00 ; =sub_02063B04 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r5, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r4-r6, pc} + .balign 4 +_02063B00: .word sub_02063B04 + 1 + + thumb_func_start sub_02063B04 +sub_02063B04: ; 0x02063B04 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + ldr r1, _02063B3C ; =0x00002718 + ldr r2, [r4, #0x4] + add r0, r5, #0x0 + bl sub_02038D10 + mov r2, #0x0 + str r2, [sp, #0x0] + ldrh r1, [r4, #0xc] + add r0, r6, #0x0 + add r3, r2, #0x0 + bl sub_020395BC + add r0, r4, #0x0 + bl sub_02063A80 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02063B3C: .word 0x00002718 + + thumb_func_start sub_02063B40 +sub_02063B40: ; 0x02063B40 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + ldr r0, [r1, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _02063B52 + mov r0, #0x1 + pop {r4, pc} +_02063B52: + ldr r0, [r1, #0xc] + bl sub_020238F4 + mov r1, #0x2 + bl sub_020239D0 + cmp r0, #0x0 + bne _02063B66 + mov r0, #0x2 + pop {r4, pc} +_02063B66: + ldr r0, [r4, #0x0] + bl sub_02034898 + cmp r0, #0x0 + bne _02063B74 + mov r0, #0x1 + pop {r4, pc} +_02063B74: + ldr r0, [r4, #0x4] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED3C + cmp r0, #0x1 + bne _02063B88 + mov r0, #0x3 + pop {r4, pc} +_02063B88: + ldr r0, [r4, #0x4] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x1 + beq _02063BA8 + ldr r0, [r4, #0x4] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F244 + cmp r0, #0x1 + bne _02063BAC +_02063BA8: + mov r0, #0x1 + b _02063BAE +_02063BAC: + mov r0, #0x0 +_02063BAE: + cmp r0, #0x1 + bne _02063BB6 + mov r0, #0x1 + pop {r4, pc} +_02063BB6: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02063BBC +sub_02063BBC: ; 0x02063BBC + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02046528 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x4 + bl sub_02016998 + ldrh r1, [r5, #0x4] + str r1, [r0, #0x0] + mov r1, #0x7f + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0xb + sub r1, #0xbc + bl sub_02016998 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, [r4, r1] + add r0, r6, #0x0 + mov r2, #0x1 + bl sub_0205F7A0 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r6, #0x0 + bl sub_02037E90 + ldr r1, _02063C10 ; =sub_02036AB8 + add r0, r4, #0x0 + bl sub_02035D04 + pop {r4-r6, pc} + .balign 4 +_02063C10: .word sub_02036AB8 + 1 + + thumb_func_start sub_02063C14 +sub_02063C14: ; 0x02063C14 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + ldr r0, [r1, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _02063C26 + mov r0, #0x1 + pop {r4, pc} +_02063C26: + ldr r0, [r1, #0xc] + bl sub_020238F4 + mov r1, #0x4 + bl sub_020239D0 + cmp r0, #0x0 + bne _02063C3A + mov r0, #0x2 + pop {r4, pc} +_02063C3A: + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x38] + bl sub_020553C4 + cmp r0, #0x2 + bne _02063C4A + mov r0, #0x4 + pop {r4, pc} +_02063C4A: + ldrh r1, [r4, #0xc] + mov r0, #0x4 + tst r0, r1 + bne _02063C56 + mov r0, #0x1 + pop {r4, pc} +_02063C56: + ldr r0, [r4, #0x4] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED3C + cmp r0, #0x1 + bne _02063C6A + mov r0, #0x3 + pop {r4, pc} +_02063C6A: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02063C70 +sub_02063C70: ; 0x02063C70 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02063A5C + add r5, r0, #0x0 + ldr r0, [r6, #0x4] + bl sub_0204649C + mov r0, #0x72 + ldr r1, _02063CA0 ; =sub_02063CA4 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r5, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r4-r6, pc} + .balign 4 +_02063CA0: .word sub_02063CA4 + 1 + + thumb_func_start sub_02063CA4 +sub_02063CA4: ; 0x02063CA4 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + ldr r1, _02063CDC ; =0x0000271C + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02038D10 + mov r2, #0x0 + str r2, [sp, #0x0] + ldrh r1, [r4, #0xc] + add r0, r6, #0x0 + add r3, r2, #0x0 + bl sub_020395BC + add r0, r4, #0x0 + bl sub_02063A80 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02063CDC: .word 0x0000271C + + thumb_func_start sub_02063CE0 +sub_02063CE0: ; 0x02063CE0 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + ldr r0, [r1, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _02063CF2 + mov r0, #0x1 + pop {r4, pc} +_02063CF2: + ldr r0, [r1, #0xc] + bl sub_020238F4 + mov r1, #0x5 + bl sub_020239D0 + cmp r0, #0x0 + bne _02063D06 + mov r0, #0x2 + pop {r4, pc} +_02063D06: + ldrh r1, [r4, #0xc] + mov r0, #0x8 + tst r0, r1 + beq _02063D12 + mov r0, #0x0 + pop {r4, pc} +_02063D12: + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02063D18 +sub_02063D18: ; 0x02063D18 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02063A5C + add r5, r0, #0x0 + ldr r0, [r6, #0x4] + bl sub_0204649C + mov r0, #0x72 + ldr r1, _02063D48 ; =sub_02063D4C + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r5, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r4-r6, pc} + .balign 4 +_02063D48: .word sub_02063D4C + 1 + + thumb_func_start sub_02063D4C +sub_02063D4C: ; 0x02063D4C + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + ldr r1, _02063D84 ; =0x0000271A + ldr r2, [r4, #0x4] + add r0, r5, #0x0 + bl sub_02038D10 + mov r2, #0x0 + str r2, [sp, #0x0] + ldrh r1, [r4, #0xc] + add r0, r6, #0x0 + add r3, r2, #0x0 + bl sub_020395BC + add r0, r4, #0x0 + bl sub_02063A80 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02063D84: .word 0x0000271A + + thumb_func_start sub_02063D88 +sub_02063D88: ; 0x02063D88 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + ldr r0, [r1, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _02063D9A + mov r0, #0x1 + pop {r4, pc} +_02063D9A: + ldr r0, [r1, #0xc] + bl sub_020238F4 + mov r1, #0x3 + bl sub_020239D0 + cmp r0, #0x0 + bne _02063DAE + mov r0, #0x2 + pop {r4, pc} +_02063DAE: + ldrh r1, [r4, #0xc] + mov r0, #0x10 + tst r0, r1 + beq _02063DBA + mov r0, #0x0 + pop {r4, pc} +_02063DBA: + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02063DC0 +sub_02063DC0: ; 0x02063DC0 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02063A5C + add r5, r0, #0x0 + ldr r0, [r6, #0x4] + bl sub_0204649C + mov r0, #0x72 + ldr r1, _02063DF0 ; =sub_02063DF4 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r5, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r4-r6, pc} + .balign 4 +_02063DF0: .word sub_02063DF4 + 1 + + thumb_func_start sub_02063DF4 +sub_02063DF4: ; 0x02063DF4 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + ldr r1, _02063E2C ; =0x0000271E + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02038D10 + mov r2, #0x0 + str r2, [sp, #0x0] + ldrh r1, [r4, #0xc] + add r0, r6, #0x0 + add r3, r2, #0x0 + bl sub_020395BC + add r0, r4, #0x0 + bl sub_02063A80 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02063E2C: .word 0x0000271E + + thumb_func_start sub_02063E30 +sub_02063E30: ; 0x02063E30 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + ldr r0, [r1, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _02063E42 + mov r0, #0x1 + pop {r4, pc} +_02063E42: + ldr r0, [r1, #0xc] + bl sub_020238F4 + mov r1, #0x0 + bl sub_020239D0 + cmp r0, #0x0 + bne _02063E56 + mov r0, #0x2 + pop {r4, pc} +_02063E56: + ldrh r1, [r4, #0xc] + mov r0, #0x20 + tst r0, r1 + beq _02063E62 + mov r0, #0x0 + pop {r4, pc} +_02063E62: + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02063E68 +sub_02063E68: ; 0x02063E68 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02063A5C + add r5, r0, #0x0 + ldr r0, [r6, #0x4] + bl sub_0204649C + mov r0, #0x72 + ldr r1, _02063E98 ; =sub_02063E9C + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r5, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r4-r6, pc} + .balign 4 +_02063E98: .word sub_02063E9C + 1 + + thumb_func_start sub_02063E9C +sub_02063E9C: ; 0x02063E9C + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + ldr r1, _02063ED4 ; =0x00002719 + ldr r2, [r4, #0x4] + add r0, r5, #0x0 + bl sub_02038D10 + mov r2, #0x0 + str r2, [sp, #0x0] + ldrh r1, [r4, #0xc] + add r0, r6, #0x0 + add r3, r2, #0x0 + bl sub_020395BC + add r0, r4, #0x0 + bl sub_02063A80 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02063ED4: .word 0x00002719 + + thumb_func_start sub_02063ED8 +sub_02063ED8: ; 0x02063ED8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + ldr r0, [r1, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _02063EEA + mov r0, #0x1 + pop {r4, pc} +_02063EEA: + ldr r0, [r1, #0xc] + bl sub_020238F4 + mov r1, #0x7 + bl sub_020239D0 + cmp r0, #0x0 + bne _02063EFE + mov r0, #0x2 + pop {r4, pc} +_02063EFE: + ldrh r1, [r4, #0xc] + mov r0, #0x40 + tst r0, r1 + beq _02063F0A + mov r0, #0x0 + pop {r4, pc} +_02063F0A: + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02063F10 +sub_02063F10: ; 0x02063F10 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02063A5C + add r5, r0, #0x0 + ldr r0, [r6, #0x4] + bl sub_0204649C + mov r0, #0x72 + ldr r1, _02063F40 ; =sub_02063F44 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r5, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r4-r6, pc} + .balign 4 +_02063F40: .word sub_02063F44 + 1 + + thumb_func_start sub_02063F44 +sub_02063F44: ; 0x02063F44 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + ldr r1, _02063F7C ; =0x0000271D + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02038D10 + mov r2, #0x0 + str r2, [sp, #0x0] + ldrh r1, [r4, #0xc] + add r0, r6, #0x0 + add r3, r2, #0x0 + bl sub_020395BC + add r0, r4, #0x0 + bl sub_02063A80 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02063F7C: .word 0x0000271D + + thumb_func_start sub_02063F80 +sub_02063F80: ; 0x02063F80 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + ldr r0, [r1, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _02063F92 + mov r0, #0x1 + pop {r4, pc} +_02063F92: + ldr r0, [r1, #0xc] + bl sub_020238F4 + mov r1, #0x6 + bl sub_020239D0 + cmp r0, #0x0 + bne _02063FA6 + mov r0, #0x2 + pop {r4, pc} +_02063FA6: + ldrh r1, [r4, #0xc] + mov r0, #0x80 + tst r0, r1 + bne _02063FB2 + mov r0, #0x1 + pop {r4, pc} +_02063FB2: + ldr r0, [r4, #0x4] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED3C + cmp r0, #0x1 + bne _02063FC6 + mov r0, #0x3 + pop {r4, pc} +_02063FC6: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02063FCC +sub_02063FCC: ; 0x02063FCC + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02063A5C + add r5, r0, #0x0 + ldr r0, [r6, #0x4] + bl sub_0204649C + mov r0, #0x72 + ldr r1, _02063FFC ; =sub_02064000 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r5, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r4-r6, pc} + .balign 4 +_02063FFC: .word sub_02064000 + 1 + + thumb_func_start sub_02064000 +sub_02064000: ; 0x02064000 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + ldr r1, _02064038 ; =0x0000271B + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02038D10 + mov r2, #0x0 + str r2, [sp, #0x0] + ldrh r1, [r4, #0xc] + add r0, r6, #0x0 + add r3, r2, #0x0 + bl sub_020395BC + add r0, r4, #0x0 + bl sub_02063A80 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02064038: .word 0x0000271B + + thumb_func_start sub_0206403C +sub_0206403C: ; 0x0206403C + ldr r1, [r0, #0x4] + ldr r1, [r1, #0x6c] + sub r1, r1, #0x2 + cmp r1, #0x1 + bhi _0206404A + mov r0, #0x1 + bx lr +_0206404A: + ldrh r1, [r0, #0xc] + mov r0, #0x1 + lsl r0, r0, #0x8 + tst r0, r1 + beq _02064058 + mov r0, #0x0 + bx lr +_02064058: + mov r0, #0x1 + bx lr + + thumb_func_start sub_0206405C +sub_0206405C: ; 0x0206405C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02063A5C + add r5, r0, #0x0 + ldr r0, [r6, #0x4] + bl sub_0204649C + mov r0, #0x72 + ldr r1, _0206408C ; =sub_02064090 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r5, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r4-r6, pc} + .balign 4 +_0206408C: .word sub_02064090 + 1 + + thumb_func_start sub_02064090 +sub_02064090: ; 0x02064090 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + ldr r1, _020640C8 ; =0x0000271F + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02038D10 + mov r2, #0x0 + str r2, [sp, #0x0] + ldrh r1, [r4, #0xc] + add r0, r6, #0x0 + add r3, r2, #0x0 + bl sub_020395BC + add r0, r4, #0x0 + bl sub_02063A80 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_020640C8: .word 0x0000271F + + thumb_func_start sub_020640CC +sub_020640CC: ; 0x020640CC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _020640DE + mov r0, #0x1 + pop {r4, pc} +_020640DE: + ldr r0, [r4, #0x0] + bl sub_020348E4 + cmp r0, #0x0 + bne _020640EC + mov r0, #0x1 + pop {r4, pc} +_020640EC: + ldr r0, [r4, #0x4] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED3C + cmp r0, #0x1 + bne _02064100 + mov r0, #0x3 + pop {r4, pc} +_02064100: + ldr r0, [r4, #0x4] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F214 + cmp r0, #0x1 + beq _02064120 + ldr r0, [r4, #0x4] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205F244 + cmp r0, #0x1 + bne _02064124 +_02064120: + mov r0, #0x1 + b _02064126 +_02064124: + mov r0, #0x0 +_02064126: + cmp r0, #0x1 + bne _0206412E + mov r0, #0x1 + pop {r4, pc} +_0206412E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02064134 +sub_02064134: ; 0x02064134 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02046528 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204649C + ldrh r1, [r5, #0x4] + ldr r2, [r6, #0xc] + mov r0, #0xb + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_0206439C + mov r1, #0x72 + ldr r2, _02064170 ; =sub_02064174 + lsl r1, r1, #0x2 + str r2, [r4, r1] + add r1, #0x30 + str r0, [r4, r1] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r4-r6, pc} + nop +_02064170: .word sub_02064174 + 1 + + thumb_func_start sub_02064174 +sub_02064174: ; 0x02064174 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + add r0, r6, #0x0 + mov r2, #0x4 + bl sub_0224CB30 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_02016A18 + ldr r1, _020641A8 ; =0x0224CB55 + add r0, r5, #0x0 + add r2, r6, #0x0 + bl sub_020463EC + mov r0, #0x0 + pop {r4-r6, pc} + nop +_020641A8: .word 0x0224CB55 + + thumb_func_start sub_020641AC +sub_020641AC: ; 0x020641AC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _020641BE + mov r0, #0x1 + pop {r4, pc} +_020641BE: + ldr r0, [r4, #0x0] + bl sub_02034930 + cmp r0, #0x1 + bne _020641D2 + ldr r0, [r4, #0x0] + bl sub_0203487C + cmp r0, #0x1 + beq _020641D6 +_020641D2: + mov r0, #0x1 + pop {r4, pc} +_020641D6: + ldr r0, [r4, #0x4] + ldr r0, [r0, #0xc] + bl sub_020462AC + bl sub_0205ED3C + cmp r0, #0x1 + bne _020641EA + mov r0, #0x3 + pop {r4, pc} +_020641EA: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020641F0 +sub_020641F0: ; 0x020641F0 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02046528 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204649C + ldrh r1, [r5, #0x4] + ldr r2, [r6, #0xc] + mov r0, #0xb + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_0206439C + mov r1, #0x72 + ldr r2, _0206422C ; =sub_02064230 + lsl r1, r1, #0x2 + str r2, [r4, r1] + add r1, #0x30 + str r0, [r4, r1] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r4-r6, pc} + nop +_0206422C: .word sub_02064230 + 1 + + thumb_func_start sub_02064230 +sub_02064230: ; 0x02064230 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r6, r0, #0x0 + ldr r1, [r6, #0x0] + add r0, r4, #0x0 + mov r2, #0xb + bl sub_0224CA88 + ldr r1, [r4, #0x1c] + add r7, r0, #0x0 + ldr r1, [r1, #0x0] + mov r0, #0xa + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + mov r2, #0x4 + bl sub_0202914C + add r4, #0x98 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + mov r2, #0x1 + bl sub_02028AD4 + add r0, r6, #0x0 + bl sub_02016A18 + ldr r1, _02064280 ; =0x0224CAAD + add r0, r5, #0x0 + add r2, r7, #0x0 + bl sub_020463EC + mov r0, #0x0 + pop {r3-r7, pc} + nop +_02064280: .word 0x0224CAAD + + thumb_func_start sub_02064284 +sub_02064284: ; 0x02064284 + push {r3, lr} + ldr r1, [r0, #0x4] + ldr r0, [r1, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _02064294 + mov r0, #0x1 + pop {r3, pc} +_02064294: + ldr r0, [r1, #0xc] + bl sub_020462AC + bl sub_0205F244 + cmp r0, #0x1 + bne _020642A6 + mov r0, #0x1 + b _020642A8 +_020642A6: + mov r0, #0x0 +_020642A8: + cmp r0, #0x1 + bne _020642B0 + mov r0, #0x1 + pop {r3, pc} +_020642B0: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_020642B4 +sub_020642B4: ; 0x020642B4 + push {r4-r6, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_02046528 + add r5, r0, #0x0 + ldr r0, [r6, #0x0] + bl sub_0204652C + ldrh r1, [r6, #0x4] + add r4, r0, #0x0 + ldr r2, [r5, #0xc] + lsl r1, r1, #0x18 + mov r0, #0xb + lsr r1, r1, #0x18 + bl sub_0206439C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0x72 + ldr r1, _0206430C ; =0x021F6361 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r6, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + ldr r1, [r5, #0x1c] + mov r0, #0xb + ldr r1, [r1, #0x0] + add r2, r0, #0x0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_0202914C + add r5, #0x98 + add r1, r0, #0x0 + ldr r0, [r5, #0x0] + mov r2, #0x1 + bl sub_02028AD4 + pop {r4-r6, pc} + .balign 4 +_0206430C: .word 0x021F6361 + + thumb_func_start sub_02064310 +sub_02064310: ; 0x02064310 + ldr r0, [r0, #0x4] + ldr r0, [r0, #0x6c] + sub r0, r0, #0x2 + cmp r0, #0x1 + bhi _0206431E + mov r0, #0x1 + bx lr +_0206431E: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02064324 +sub_02064324: ; 0x02064324 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r6, r1, #0x0 + bl sub_02046528 + add r7, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02063A5C + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_0204649C + mov r0, #0x72 + ldr r1, _0206435C ; =sub_02064360 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r5, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] + pop {r3-r7, pc} + .balign 4 +_0206435C: .word sub_02064360 + 1 + + thumb_func_start sub_02064360 +sub_02064360: ; 0x02064360 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + ldr r1, _02064398 ; =0x000022C4 + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_02038D10 + mov r2, #0x0 + str r2, [sp, #0x0] + ldrh r1, [r4, #0xc] + add r0, r6, #0x0 + add r3, r2, #0x0 + bl sub_020395BC + add r0, r4, #0x0 + bl sub_02063A80 + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02064398: .word 0x000022C4 + + thumb_func_start sub_0206439C +sub_0206439C: ; 0x0206439C + push {r4-r6, lr} + add r5, r1, #0x0 + add r6, r2, #0x0 + mov r1, #0x8 + bl sub_020169D8 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0206BB1C + add r1, r5, #0x0 + bl sub_0206B9B0 + str r0, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020643C0 +sub_020643C0: ; 0x020643C0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl sub_020645DC + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0206460C + str r0, [r4, #0xc] + str r6, [r4, #0x0] + str r5, [r4, #0x8] + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020643E0 +sub_020643E0: ; 0x020643E0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02064630 + add r0, r4, #0x0 + bl sub_02064600 + pop {r4, pc} + + thumb_func_start sub_020643F0 +sub_020643F0: ; 0x020643F0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02064558 + add r0, r4, #0x0 + bl sub_020643E0 + pop {r4, pc} + + thumb_func_start sub_02064400 +sub_02064400: ; 0x02064400 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + add r7, r1, #0x0 + str r2, [sp, #0x4] + str r3, [sp, #0x8] + mov r4, #0x0 + bl sub_02064698 + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_0206469C + add r5, r0, #0x0 +_0206441C: + add r0, r5, #0x0 + bl sub_020646A0 + cmp r0, #0x0 + beq _0206442E + add r4, r4, #0x1 + add r5, #0xc8 + cmp r4, r6 + blt _0206441C +_0206442E: + cmp r4, r6 + blt _02064438 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_02064438: + add r0, r5, #0x0 + bl sub_020646AC + ldr r1, [sp, #0x8] + add r0, r5, #0x0 + bl sub_02064750 + ldr r1, [sp, #0x20] + add r0, r5, #0x0 + bl sub_02064758 + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02064768 + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + bl sub_0206476C + ldr r1, [r7, #0x0] + add r0, r5, #0x0 + bl sub_0206473C + ldr r1, [r7, #0x4] + add r0, r5, #0x0 + bl sub_020646B8 + ldr r1, [r7, #0x8] + add r0, r5, #0x0 + bl sub_0206470C + ldr r1, [r7, #0xc] + add r0, r5, #0x0 + bl sub_020646D4 + ldr r1, [r7, #0x10] + add r0, r5, #0x0 + bl sub_020646F0 + ldr r1, [r7, #0x14] + add r0, r5, #0x0 + bl sub_02064728 + ldr r1, [r7, #0x18] + add r0, r5, #0x0 + bl sub_02064730 + ldr r1, [sp, #0x24] + add r0, r5, #0x0 + bl sub_020645B0 + add r4, r0, #0x0 + bne _020644AE + add r0, r5, #0x0 + bl sub_02064640 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_020644AE: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02064760 + add r0, r5, #0x0 + bl sub_020646C0 + cmp r0, #0x0 + bne _020644D2 + add r0, r4, #0x0 + bl sub_0200CAB4 + add r0, r5, #0x0 + bl sub_02064640 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_020644D2: + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x4] + add r1, r0, #0x1 + ldr r0, [sp, #0x0] + str r1, [r0, #0x4] + add r0, r5, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_020644E4 +sub_020644E4: ; 0x020644E4 + push {r4-r7, lr} + sub sp, #0x24 + add r5, r1, #0x0 + add r6, r0, #0x0 + add r4, sp, #0x8 + ldmia r5!, {r0-r1} + add r7, r4, #0x0 + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + str r0, [r4, #0x0] + ldr r0, _02064518 ; =sub_0206479C + str r0, [sp, #0x1c] + ldr r0, _0206451C ; =sub_020647A0 + str r0, [sp, #0x20] + ldr r0, [sp, #0x38] + str r0, [sp, #0x0] + ldr r0, [sp, #0x3c] + str r0, [sp, #0x4] + add r0, r6, #0x0 + bl sub_02064400 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 +_02064518: .word sub_0206479C + 1 +_0206451C: .word sub_020647A0 + 1 + + thumb_func_start sub_02064520 +sub_02064520: ; 0x02064520 + push {r4, lr} + add r4, r0, #0x0 + bne _0206452A + bl sub_02020C2C +_0206452A: + add r0, r4, #0x0 + bl sub_020646A0 + cmp r0, #0x0 + beq _02064556 + add r0, r4, #0x0 + bl sub_02064714 + ldr r1, [r4, #0x14] + ldr r0, [r1, #0x4] + sub r0, r0, #0x1 + str r0, [r1, #0x4] + add r0, r4, #0x0 + bl sub_02064764 + cmp r0, #0x0 + beq _02064550 + bl sub_0200CAB4 +_02064550: + add r0, r4, #0x0 + bl sub_02064640 +_02064556: + pop {r4, pc} + + thumb_func_start sub_02064558 +sub_02064558: ; 0x02064558 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02064698 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0206469C + add r5, r0, #0x0 +_0206456A: + add r0, r5, #0x0 + bl sub_020646A0 + cmp r0, #0x1 + bne _0206457A + add r0, r5, #0x0 + bl sub_02064520 +_0206457A: + add r5, #0xc8 + sub r4, r4, #0x1 + bne _0206456A + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02064584 +sub_02064584: ; 0x02064584 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02064698 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0206469C + add r5, r0, #0x0 +_02064596: + add r0, r5, #0x0 + bl sub_020646A0 + cmp r0, #0x1 + bne _020645A6 + add r0, r5, #0x0 + bl sub_020646F8 +_020645A6: + add r5, #0xc8 + sub r4, r4, #0x1 + bne _02064596 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020645B0 +sub_020645B0: ; 0x020645B0 + push {r4, lr} + add r3, r0, #0x0 + add r2, r1, #0x0 + ldr r0, _020645CC ; =sub_020645D0 + add r1, r3, #0x0 + bl sub_0200CA44 + add r4, r0, #0x0 + bne _020645C6 + bl sub_02020C2C +_020645C6: + add r0, r4, #0x0 + pop {r4, pc} + nop +_020645CC: .word sub_020645D0 + 1 + + thumb_func_start sub_020645D0 +sub_020645D0: ; 0x020645D0 + ldr r3, _020645D8 ; =sub_020646DC + add r0, r1, #0x0 + bx r3 + nop +_020645D8: .word sub_020646DC + 1 + + thumb_func_start sub_020645DC +sub_020645DC: ; 0x020645DC + push {r4, lr} + mov r1, #0x10 + bl sub_02016998 + add r4, r0, #0x0 + bne _020645EC + bl sub_02020C2C +_020645EC: + add r2, r4, #0x0 + mov r1, #0x10 + mov r0, #0x0 +_020645F2: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _020645F2 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02064600 +sub_02064600: ; 0x02064600 + ldr r3, _02064608 ; =sub_02016A8C + add r1, r0, #0x0 + ldr r0, [r1, #0x8] + bx r3 + .balign 4 +_02064608: .word sub_02016A8C + 1 + + thumb_func_start sub_0206460C +sub_0206460C: ; 0x0206460C + push {r3-r5, lr} + mov r2, #0xc8 + add r5, r1, #0x0 + mul r5, r2 + add r1, r5, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + bne _02064622 + bl sub_02020C2C +_02064622: + add r0, r4, #0x0 + mov r1, #0x0 + add r2, r5, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02064630 +sub_02064630: ; 0x02064630 + ldr r3, _0206463C ; =sub_02016A8C + add r1, r0, #0x0 + ldr r0, [r1, #0x8] + ldr r1, [r1, #0xc] + bx r3 + nop +_0206463C: .word sub_02016A8C + 1 + + thumb_func_start sub_02064640 +sub_02064640: ; 0x02064640 + push {r4, lr} + mov r1, #0x0 + mov r2, #0xc8 + add r4, r0, #0x0 + blx sub_020DF4A4 + ldr r1, _02064680 ; =sub_0206478C + add r0, r4, #0x0 + bl sub_020646B8 + ldr r1, _02064684 ; =sub_02064798 + add r0, r4, #0x0 + bl sub_0206470C + ldr r1, _02064688 ; =sub_02064790 + add r0, r4, #0x0 + bl sub_020646D4 + ldr r1, _0206468C ; =sub_02064794 + add r0, r4, #0x0 + bl sub_020646F0 + ldr r1, _02064690 ; =sub_0206479C + add r0, r4, #0x0 + bl sub_02064728 + ldr r1, _02064694 ; =sub_020647A0 + add r0, r4, #0x0 + bl sub_02064730 + pop {r4, pc} + nop +_02064680: .word sub_0206478C + 1 +_02064684: .word sub_02064798 + 1 +_02064688: .word sub_02064790 + 1 +_0206468C: .word sub_02064794 + 1 +_02064690: .word sub_0206479C + 1 +_02064694: .word sub_020647A0 + 1 + + thumb_func_start sub_02064698 +sub_02064698: ; 0x02064698 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_0206469C +sub_0206469C: ; 0x0206469C + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_020646A0 +sub_020646A0: ; 0x020646A0 + ldr r1, [r0, #0x0] + mov r0, #0x1 + tst r1, r0 + bne _020646AA + mov r0, #0x0 +_020646AA: + bx lr + + thumb_func_start sub_020646AC +sub_020646AC: ; 0x020646AC + ldr r2, [r0, #0x0] + mov r1, #0x1 + orr r1, r2 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020646B8 +sub_020646B8: ; 0x020646B8 + add r0, #0xb0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020646C0 +sub_020646C0: ; 0x020646C0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02064738 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r4, #0xb0 + ldr r2, [r4, #0x0] + blx r2 + pop {r4, pc} + + thumb_func_start sub_020646D4 +sub_020646D4: ; 0x020646D4 + add r0, #0xb4 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020646DC +sub_020646DC: ; 0x020646DC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02064738 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r4, #0xb4 + ldr r2, [r4, #0x0] + blx r2 + pop {r4, pc} + + thumb_func_start sub_020646F0 +sub_020646F0: ; 0x020646F0 + add r0, #0xb8 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_020646F8 +sub_020646F8: ; 0x020646F8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02064738 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r4, #0xb8 + ldr r2, [r4, #0x0] + blx r2 + pop {r4, pc} + + thumb_func_start sub_0206470C +sub_0206470C: ; 0x0206470C + add r0, #0xbc + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02064714 +sub_02064714: ; 0x02064714 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02064738 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r4, #0xbc + ldr r2, [r4, #0x0] + blx r2 + pop {r4, pc} + + thumb_func_start sub_02064728 +sub_02064728: ; 0x02064728 + add r0, #0xc0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02064730 +sub_02064730: ; 0x02064730 + add r0, #0xc4 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02064738 +sub_02064738: ; 0x02064738 + add r0, #0x30 + bx lr + + thumb_func_start sub_0206473C +sub_0206473C: ; 0x0206473C + push {r4, lr} + add r4, r1, #0x0 + bl sub_02064738 + mov r1, #0x0 + add r2, r4, #0x0 + blx sub_020DF4A4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02064750 +sub_02064750: ; 0x02064750 + str r1, [r0, #0x4] + bx lr + + thumb_func_start sub_02064754 +sub_02064754: ; 0x02064754 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_02064758 +sub_02064758: ; 0x02064758 + str r1, [r0, #0xc] + bx lr + + thumb_func_start sub_0206475C +sub_0206475C: ; 0x0206475C + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_02064760 +sub_02064760: ; 0x02064760 + str r1, [r0, #0x10] + bx lr + + thumb_func_start sub_02064764 +sub_02064764: ; 0x02064764 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start sub_02064768 +sub_02064768: ; 0x02064768 + str r1, [r0, #0x14] + bx lr + + thumb_func_start sub_0206476C +sub_0206476C: ; 0x0206476C + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x24 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start sub_0206477C +sub_0206477C: ; 0x0206477C + add r2, r0, #0x0 + add r2, #0x24 + add r3, r1, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + + thumb_func_start sub_0206478C +sub_0206478C: ; 0x0206478C + mov r0, #0x1 + bx lr + + thumb_func_start sub_02064790 +sub_02064790: ; 0x02064790 + bx lr + .balign 4 + + thumb_func_start sub_02064794 +sub_02064794: ; 0x02064794 + bx lr + .balign 4 + + thumb_func_start sub_02064798 +sub_02064798: ; 0x02064798 + bx lr + .balign 4 + + thumb_func_start sub_0206479C +sub_0206479C: ; 0x0206479C + bx lr + .balign 4 + + thumb_func_start sub_020647A0 +sub_020647A0: ; 0x020647A0 + bx lr + .balign 4 + + thumb_func_start sub_020647A4 +sub_020647A4: ; 0x020647A4 + push {r3-r7, lr} + sub sp, #0x30 + add r4, r0, #0x0 + bl sub_020377AC + bl sub_02024ED8 + mov r1, #0x7 + bl sub_020254A0 + ldrh r1, [r0, #0x2] + ldrh r0, [r0, #0x0] + ldr r3, _0206485C ; =0x020F7D70 + mov r7, #0x18 + add r2, r1, #0x0 + mul r2, r7 + add r6, r3, r2 + lsl r0, r0, #0x2 + ldr r5, [r6, r0] + ldr r0, [r6, #0x14] + cmp r0, #0x0 + beq _0206480A + ldr r3, _02064860 ; =0x020F7D64 + add r2, sp, #0x24 + ldmia r3!, {r0-r1} + mov r12, r2 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r7, #0xea + str r0, [r2, #0x0] + str r5, [sp, #0x28] + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x4c] + add r2, r7, #0x0 + str r0, [sp, #0x4] + add r0, r4, #0x0 + add r0, #0xa0 + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x2c] + mov r3, r12 + bl sub_021E7FBC + add r0, r4, #0x0 + add r0, #0xa0 + ldr r0, [r0, #0x0] + ldr r1, _02064864 ; =0x00000102 + bl sub_021E7ED8 + str r0, [sp, #0x14] + b _0206482C +_0206480A: + ldr r0, _02064868 ; =0x020F7D4C + add r1, sp, #0xc + ldr r2, [r0, #0x8] + ldr r0, [r0, #0xc] + str r2, [sp, #0xc] + str r0, [sp, #0x10] + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r2, #0x2 + add r3, sp, #0x14 + bl sub_0204AA5C + cmp r0, #0x0 + bne _0206482C + bl sub_02020C2C +_0206482C: + ldr r1, [sp, #0x14] + add r0, sp, #0x18 + bl sub_021E7EA0 + ldr r0, [sp, #0x14] + add r1, sp, #0x18 + str r5, [sp, #0x1c] + bl sub_021E7EB0 + mov r0, #0x2 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + add r4, #0x9c + ldr r0, [r4, #0x0] + mov r3, #0x3 + str r0, [sp, #0x8] + ldr r1, [r6, #0x8] + ldr r2, [r6, #0xc] + mov r0, #0x0 + bl sub_021F44D8 + add sp, #0x30 + pop {r3-r7, pc} + nop +_0206485C: .word 0x020F7D70 +_02064860: .word 0x020F7D64 +_02064864: .word 0x00000102 +_02064868: .word 0x020F7D4C + + thumb_func_start sub_0206486C +sub_0206486C: ; 0x0206486C + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_020377AC + bl sub_02024ED8 + add r5, r0, #0x0 + mov r1, #0x7 + bl sub_02025490 + add r0, r5, #0x0 + mov r1, #0x7 + bl sub_020254A0 + mov r3, #0x1 + str r3, [r0, #0x4] + mov r2, #0x0 + str r2, [r0, #0x8] + ldr r4, [r4, #0x1c] + ldr r5, _020649A8 ; =0x00000123 + ldr r1, [r4, #0x0] + cmp r1, r5 + bgt _020648C4 + bge _020648D6 + add r5, r1, #0x0 + sub r5, #0xb0 + cmp r5, #0x9 + bhi _020649A0 + add r5, r5, r5 + add r5, pc + ldrh r5, [r5, #0x6] + lsl r5, r5, #0x10 + asr r5, r5, #0x10 + add pc, r5 + lsl r6, r3, #0x1 + lsl r6, r5, #0x3 + lsl r6, r6, #0x1 + lsl r6, r5, #0x3 + lsl r6, r1, #0x2 + lsl r6, r5, #0x3 + lsl r6, r4, #0x2 + lsl r6, r5, #0x3 + lsl r6, r7, #0x2 + lsl r6, r2, #0x3 +_020648C4: + ldr r2, _020649AC ; =0x00000125 + cmp r1, r2 + bgt _020648CE + beq _020648E8 + b _020649A0 +_020648CE: + add r2, r2, #0x1 + cmp r1, r2 + beq _020648FC + b _020649A0 +_020648D6: + ldr r1, [r4, #0xc] + cmp r1, #0x1a + bne _020648E0 + strh r2, [r0, #0x0] + b _020648E2 +_020648E0: + strh r3, [r0, #0x0] +_020648E2: + mov r1, #0x0 + strh r1, [r0, #0x2] + pop {r3-r5, pc} +_020648E8: + ldr r1, [r4, #0xc] + cmp r1, #0x30 + bne _020648F2 + mov r1, #0x0 + b _020648F4 +_020648F2: + mov r1, #0x1 +_020648F4: + strh r1, [r0, #0x0] + mov r1, #0x1 + strh r1, [r0, #0x2] + pop {r3-r5, pc} +_020648FC: + ldr r1, [r4, #0xc] + cmp r1, #0xf + bne _02064906 + mov r1, #0x0 + b _02064908 +_02064906: + mov r1, #0x1 +_02064908: + strh r1, [r0, #0x0] + mov r1, #0x2 + strh r1, [r0, #0x2] + pop {r3-r5, pc} +_02064910: + .byte 0xE1, 0x68, 0x0F, 0x29, 0x01, 0xD1, 0x02, 0x80, 0x01, 0xE0, 0x03, 0x80, 0x42, 0x60, 0x03, 0x21 + .byte 0x41, 0x80, 0x01, 0x21, 0x81, 0x60, 0x38, 0xBD, 0xE1, 0x68, 0x0F, 0x29, 0x01, 0xD1, 0x02, 0x80 + .byte 0x01, 0xE0, 0x03, 0x80, 0x42, 0x60, 0x04, 0x21, 0x41, 0x80, 0x01, 0x21, 0x81, 0x60, 0x38, 0xBD + .byte 0xE1, 0x68, 0x0F, 0x29, 0x01, 0xD1, 0x02, 0x80, 0x01, 0xE0, 0x03, 0x80, 0x42, 0x60, 0x05, 0x21 + .byte 0x41, 0x80, 0x01, 0x21, 0x81, 0x60, 0x38, 0xBD, 0xE1, 0x68, 0x0F, 0x29, 0x01, 0xD1, 0x02, 0x80 + .byte 0x01, 0xE0, 0x03, 0x80, 0x42, 0x60, 0x06, 0x21, 0x41, 0x80, 0x01, 0x21, 0x81, 0x60, 0x38, 0xBD + .byte 0xE1, 0x68, 0x17, 0x29, 0x01, 0xD1, 0x02, 0x80, 0x01, 0xE0, 0x03, 0x80, 0x42, 0x60, 0x07, 0x21 + .byte 0x41, 0x80, 0x01, 0x21, 0x81, 0x60, 0x38, 0xBD, 0xE1, 0x68, 0x12, 0x29, 0x01, 0xD1, 0x02, 0x80 + .byte 0x01, 0xE0, 0x03, 0x80, 0x42, 0x60, 0x08, 0x21, 0x41, 0x80, 0x01, 0x21, 0x81, 0x60, 0x38, 0xBD +_020649A0: + bl sub_02020C2C + pop {r3-r5, pc} + nop +_020649A8: .word 0x00000123 +_020649AC: .word 0x00000125 + + thumb_func_start sub_020649B0 +sub_020649B0: ; 0x020649B0 + push {r3, lr} + bl sub_020377AC + bl sub_02024ED8 + mov r1, #0x7 + bl sub_020254A0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _020649CA + mov r0, #0x1 + b _020649CC +_020649CA: + mov r0, #0x0 +_020649CC: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020649D4 +sub_020649D4: ; 0x020649D4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020377AC + bl sub_02024ED8 + mov r1, #0x7 + bl sub_020254A0 + add r4, r0, #0x0 + ldrh r1, [r4, #0x2] + mov r0, #0x18 + add r2, r1, #0x0 + mul r2, r0 + ldr r0, _02064A58 ; =0x020F7D80 + ldr r0, [r0, r2] + cmp r0, #0x0 + beq _020649FE + ldrh r0, [r4, #0x0] + cmp r0, #0x1 + beq _02064A54 +_020649FE: + mov r0, #0xb + mov r1, #0x10 + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + ldrh r1, [r4, #0x2] + mov r0, #0x18 + add r3, r1, #0x0 + ldr r1, _02064A5C ; =0x020F7D84 + mul r3, r0 + ldr r1, [r1, r3] + str r1, [r2, #0x8] + ldr r1, [r4, #0x8] + str r1, [r2, #0xc] + ldrh r1, [r4, #0x0] + cmp r1, #0x0 + ldrh r1, [r4, #0x2] + bne _02064A3E + add r3, r1, #0x0 + mul r3, r0 + ldr r0, _02064A60 ; =0x020F7D74 + ldr r1, _02064A64 ; =sub_02064A70 + ldr r0, [r0, r3] + str r0, [r2, #0x4] + ldr r0, [r5, #0x10] + bl sub_0204640C + mov r0, #0x1 + strh r0, [r4, #0x0] + pop {r3-r5, pc} +_02064A3E: + add r3, r1, #0x0 + mul r3, r0 + ldr r0, _02064A68 ; =0x020F7D70 + ldr r1, _02064A6C ; =0x02064B71 + ldr r0, [r0, r3] + str r0, [r2, #0x4] + ldr r0, [r5, #0x10] + bl sub_0204640C + mov r0, #0x0 + strh r0, [r4, #0x0] +_02064A54: + pop {r3-r5, pc} + nop +_02064A58: .word 0x020F7D80 +_02064A5C: .word 0x020F7D84 +_02064A60: .word 0x020F7D74 +_02064A64: .word sub_02064A70 + 1 +_02064A68: .word 0x020F7D70 +_02064A6C: .word 0x02064B71 + + thumb_func_start sub_02064A70 +sub_02064A70: ; 0x02064A70 + push {r4-r5, lr} + sub sp, #0x1c + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + cmp r1, #0x3 + bhi _02064B5C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r4, r3, #0 + lsl r6, r2, #0x2 + lsl r2, r7, #0x2 + ldr r0, [r5, #0x38] + mov r1, #0x0 + bl sub_02055560 + ldr r0, [r4, #0xc] + bl sub_02064C64 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02064B5C +_02064AB4: + .byte 0xA0, 0x68, 0x00, 0x28, 0x07, 0xD0, 0x28, 0x1C, 0xA0, 0x30, 0x00, 0x68 + .byte 0x28, 0x49, 0x83, 0xF1, 0x09, 0xFA, 0x03, 0x90, 0x10, 0xE0, 0x27, 0x48, 0x01, 0xA9, 0x02, 0x68 + .byte 0x40, 0x68, 0x01, 0x92, 0x02, 0x90, 0x00, 0x20, 0x00, 0x90, 0x28, 0x1C, 0x02, 0x22, 0x03, 0xAB + .byte 0xE5, 0xF7, 0xBC, 0xFF, 0x00, 0x28, 0x01, 0xD1, 0xBC, 0xF7, 0xA0, 0xF8, 0x03, 0x99, 0x04, 0xA8 + .byte 0x83, 0xF1, 0xD6, 0xF9, 0xE0, 0x68, 0x00, 0x28, 0x01, 0xD1, 0x01, 0x21, 0x00, 0xE0, 0x02, 0x21 + .byte 0x05, 0x98, 0x09, 0x03, 0x41, 0x18, 0x05, 0x91, 0x60, 0x68, 0x81, 0x42, 0x06, 0xDB, 0x05, 0x90 + .byte 0xE0, 0x68, 0x00, 0xF0, 0xB7, 0xF8, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0xA8, 0x6B, 0x05, 0x99 + .byte 0xF0, 0xF7, 0x0E, 0xFD, 0x03, 0x98, 0x04, 0xA9, 0x83, 0xF1, 0xC2, 0xF9, 0x16, 0xE0, 0x2A, 0x1C + .byte 0x9C, 0x32, 0x61, 0x68, 0x12, 0x68, 0x00, 0x20, 0x8F, 0xF1, 0x2C, 0xFD, 0xA8, 0x6B, 0x01, 0x21 + .byte 0xF0, 0xF7, 0x1C, 0xFD, 0x09, 0x48, 0xA0, 0xF7, 0xBF, 0xFC, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60 + .byte 0x04, 0xE0, 0xB1, 0xF7, 0x61, 0xFF, 0x07, 0xB0, 0x01, 0x20, 0x30, 0xBD +_02064B5C: + mov r0, #0x0 + add sp, #0x1c + pop {r4-r5, pc} + nop +_02064B64: + .byte 0x02, 0x01, 0x00, 0x00, 0x4C, 0x7D, 0x0F, 0x02, 0x1A, 0x06, 0x00, 0x00 + .byte 0x30, 0xB5, 0x87, 0xB0, 0x04, 0x1C, 0xE1, 0xF7, 0xD7, 0xFC, 0x05, 0x1C, 0x20, 0x1C, 0xE1, 0xF7 + .byte 0xD5, 0xFC, 0x04, 0x1C, 0x21, 0x68, 0x03, 0x29, 0x63, 0xD8, 0x49, 0x18, 0x79, 0x44, 0xC9, 0x88 + .byte 0x09, 0x04, 0x09, 0x14, 0x8F, 0x44, 0x06, 0x00, 0x1C, 0x00, 0x8C, 0x00, 0xB0, 0x00, 0xA8, 0x6B + .byte 0x00, 0x21, 0xF0, 0xF7, 0xDD, 0xFC, 0xE0, 0x68, 0x00, 0xF0, 0x5C, 0xF8, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x4E, 0xE0, 0xA0, 0x68, 0x00, 0x28, 0x07, 0xD0, 0x28, 0x1C, 0xA0, 0x30, 0x00, 0x68 + .byte 0x25, 0x49, 0x83, 0xF1, 0x89, 0xF9, 0x03, 0x90, 0x10, 0xE0, 0x24, 0x48, 0x01, 0xA9, 0x02, 0x69 + .byte 0x40, 0x69, 0x01, 0x92, 0x02, 0x90, 0x00, 0x20, 0x00, 0x90, 0x28, 0x1C, 0x02, 0x22, 0x03, 0xAB + .byte 0xE5, 0xF7, 0x3C, 0xFF, 0x00, 0x28, 0x01, 0xD1, 0xBC, 0xF7, 0x20, 0xF8, 0x03, 0x99, 0x04, 0xA8 + .byte 0x83, 0xF1, 0x56, 0xF9, 0x01, 0x20, 0x05, 0x99, 0x00, 0x03, 0x09, 0x1A, 0x05, 0x91, 0x60, 0x68 + .byte 0x81, 0x42, 0x06, 0xDC, 0x05, 0x90, 0xE0, 0x68, 0x00, 0xF0, 0x3C, 0xF8, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0xA8, 0x6B, 0x05, 0x99, 0xF0, 0xF7, 0x93, 0xFC, 0x03, 0x98, 0x04, 0xA9, 0x83, 0xF1 + .byte 0x47, 0xF9, 0x16, 0xE0, 0x2A, 0x1C, 0x9C, 0x32, 0x61, 0x68, 0x12, 0x68, 0x00, 0x20, 0x8F, 0xF1 + .byte 0xB1, 0xFC, 0xA8, 0x6B, 0x01, 0x21, 0xF0, 0xF7, 0xA1, 0xFC, 0x09, 0x48, 0xA0, 0xF7, 0x44, 0xFC + .byte 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x04, 0xE0, 0xB1, 0xF7, 0xE6, 0xFE, 0x07, 0xB0, 0x01, 0x20 + .byte 0x30, 0xBD, 0x00, 0x20, 0x07, 0xB0, 0x30, 0xBD, 0x02, 0x01, 0x00, 0x00, 0x4C, 0x7D, 0x0F, 0x02 + .byte 0x1A, 0x06, 0x00, 0x00 + + thumb_func_start sub_02064C64 +sub_02064C64: ; 0x02064C64 + push {r3, lr} + cmp r0, #0x0 + bne _02064C72 + ldr r0, _02064C7C ; =0x00000611 + bl sub_020054C8 + pop {r3, pc} +_02064C72: + ldr r0, _02064C80 ; =0x00000614 + bl sub_020054C8 + pop {r3, pc} + nop +_02064C7C: .word 0x00000611 +_02064C80: .word 0x00000614 + + thumb_func_start sub_02064C84 +sub_02064C84: ; 0x02064C84 + push {r3, lr} + cmp r0, #0x0 + bne _02064C94 + ldr r0, _02064CA0 ; =0x00000611 + mov r1, #0x0 + bl sub_020054F0 + pop {r3, pc} +_02064C94: + ldr r0, _02064CA4 ; =0x00000614 + mov r1, #0x0 + bl sub_020054F0 + pop {r3, pc} + nop +_02064CA0: .word 0x00000611 +_02064CA4: .word 0x00000614 + + thumb_func_start sub_02064CA8 +sub_02064CA8: ; 0x02064CA8 + push {r4, lr} + bl sub_020377AC + bl sub_02024ED8 + add r4, r0, #0x0 + mov r1, #0x1 + bl sub_02025490 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020254A0 + mov r1, #0x1 + strb r1, [r0, #0x0] + pop {r4, pc} + + thumb_func_start sub_02064CC8 +sub_02064CC8: ; 0x02064CC8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020377AC + bl sub_02024ED8 + add r4, r0, #0x0 + mov r1, #0x2 + bl sub_02025490 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_020254A0 + add r4, r0, #0x0 + ldr r0, [r5, #0x1c] + ldr r0, [r0, #0xc] + cmp r0, #0x16 + bne _02064D08 + ldr r0, [r5, #0xc] + bl sub_020462AC + bl sub_0205ECEC + cmp r0, #0x0 + beq _02064D02 + mov r0, #0x0 + strb r0, [r4, #0x0] + pop {r3-r5, pc} +_02064D02: + mov r0, #0x1 + strb r0, [r4, #0x0] + pop {r3-r5, pc} +_02064D08: + mov r0, #0x1 + strb r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02064D10 +sub_02064D10: ; 0x02064D10 + push {r4-r6, lr} + bl sub_020377AC + bl sub_02024ED8 + add r4, r0, #0x0 + mov r1, #0x3 + bl sub_02025490 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_020254A0 + ldr r5, _02064D48 ; =0x020F7E54 + add r6, r0, #0x0 + mov r4, #0x0 +_02064D30: + ldrb r1, [r5, #0x0] + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + add r2, r6, #0x0 + bl sub_02064DEC + add r4, r4, #0x1 + add r5, r5, #0x1 + cmp r4, #0x18 + blt _02064D30 + pop {r4-r6, pc} + nop +_02064D48: .word 0x020F7E54 + + thumb_func_start sub_02064D4C +sub_02064D4C: ; 0x02064D4C + push {r4-r6, lr} + bl sub_020377AC + bl sub_02024ED8 + add r4, r0, #0x0 + mov r1, #0x4 + bl sub_02025490 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_020254A0 + ldr r5, _02064D84 ; =0x020F7E48 + add r6, r0, #0x0 + mov r4, #0x0 +_02064D6C: + ldrb r1, [r5, #0x0] + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + add r2, r6, #0x0 + bl sub_02064DEC + add r4, r4, #0x1 + add r5, r5, #0x1 + cmp r4, #0xc + blt _02064D6C + pop {r4-r6, pc} + nop +_02064D84: .word 0x020F7E48 + + thumb_func_start sub_02064D88 +sub_02064D88: ; 0x02064D88 + push {r3-r7, lr} + add r5, r1, #0x0 + add r7, r0, #0x0 + cmp r5, #0x3 + blo _02064D96 + bl sub_02020C2C +_02064D96: + add r0, r7, #0x0 + bl sub_020377AC + bl sub_02024ED8 + add r4, r0, #0x0 + mov r1, #0x5 + bl sub_02025490 + add r0, r4, #0x0 + mov r1, #0x5 + bl sub_020254A0 + add r4, r0, #0x0 + str r5, [r4, #0x4] + cmp r5, #0x0 + beq _02064DC2 + cmp r5, #0x1 + beq _02064DCA + cmp r5, #0x2 + beq _02064DD2 + b _02064DDA +_02064DC2: + mov r0, #0x2 + str r0, [r4, #0x0] + mov r6, #0xe + b _02064DDE +_02064DCA: + mov r0, #0x1 + str r0, [r4, #0x0] + mov r6, #0x15 + b _02064DDE +_02064DD2: + mov r0, #0x0 + str r0, [r4, #0x0] + mov r6, #0x19 + b _02064DDE +_02064DDA: + bl sub_02020C2C +_02064DDE: + ldr r0, [r7, #0x1c] + ldr r0, [r0, #0xc] + cmp r0, r6 + bne _02064DEA + mov r0, #0x0 + str r0, [r4, #0x0] +_02064DEA: + pop {r3-r7, pc} + + thumb_func_start sub_02064DEC +sub_02064DEC: ; 0x02064DEC + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x1 + bls _02064DFC + bl sub_02020C2C +_02064DFC: + mov r0, #0x0 + mvn r0, r0 + mov r1, #0x20 + ldr r2, [r6, #0x0] + sub r1, r1, r5 + add r3, r0, #0x0 + lsr r3, r1 + add r1, r2, #0x0 + and r1, r3 + add r3, r5, #0x1 + lsl r0, r3 + and r2, r0 + add r0, r4, #0x0 + lsl r0, r5 + orr r0, r2 + orr r0, r1 + str r0, [r6, #0x0] + pop {r4-r6, pc} + + thumb_func_start sub_02064E20 +sub_02064E20: ; 0x02064E20 + push {r4, lr} + bl sub_020377AC + bl sub_02024ED8 + add r4, r0, #0x0 + bl sub_020254B4 + cmp r0, #0x6 + beq _02064E48 + add r0, r4, #0x0 + mov r1, #0x6 + bl sub_02025490 + add r0, r4, #0x0 + mov r1, #0x6 + bl sub_020254A0 + mov r1, #0x2 + strh r1, [r0, #0x0] +_02064E48: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02064E4C +sub_02064E4C: ; 0x02064E4C + push {r4, lr} + add r4, r2, #0x0 + bl sub_0200A8E0 + mov r0, #0x0 + add r1, r4, #0x0 + add r2, r0, #0x0 + bl sub_02002E14 + pop {r4, pc} + + thumb_func_start sub_02064E60 +sub_02064E60: ; 0x02064E60 + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + add r3, r1, #0x0 + ldr r2, _02064E8C ; =0x0000017E + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02034824 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r2, r6, #0x0 + bl sub_02064E4C + add r0, r4, #0x0 + bl sub_0200A8B8 + pop {r4-r6, pc} + .balign 4 +_02064E8C: .word 0x0000017E + + thumb_func_start sub_02064E90 +sub_02064E90: ; 0x02064E90 + push {r3-r7, lr} + sub sp, #0xa0 + str r0, [sp, #0x10] + ldr r6, [sp, #0xb8] + str r1, [sp, #0x14] + str r2, [sp, #0x18] + add r0, r6, #0x0 + str r3, [sp, #0x1c] + ldr r5, [sp, #0xbc] + bl sub_020377AC + str r0, [sp, #0x20] + bl sub_020238F4 + add r7, r0, #0x0 + ldr r0, [sp, #0x20] + bl sub_02029FC8 + add r4, r0, #0x0 + ldr r0, [sp, #0x1c] + strb r0, [r5, #0x5] + add r0, r6, #0x0 + bl sub_02065078 + str r0, [sp, #0x24] + add r0, r7, #0x0 + bl sub_02023A70 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x24] + ldr r3, [sp, #0x18] + mov r1, #0xa + bl sub_02065154 + add r0, r7, #0x0 + bl sub_020239C0 + str r0, [sp, #0x28] + add r0, r7, #0x0 + bl sub_020239CC + str r0, [sp, #0x2c] + add r0, r7, #0x0 + bl sub_0202398C + str r0, [sp, #0x30] + add r0, r7, #0x0 + bl sub_02023A10 + str r0, [sp, #0x34] + ldr r0, [r6, #0xc] + bl sub_02024DA0 + bl sub_02024440 + str r0, [sp, #0x38] + ldr r0, [r6, #0xc] + bl sub_02024DA0 + bl sub_02024D64 + str r0, [sp, #0x3c] + add r0, r4, #0x0 + bl sub_0202A1B8 + ldr r1, [sp, #0x38] + ldr r2, [sp, #0x30] + str r1, [sp, #0x0] + ldr r1, [sp, #0x3c] + ldr r3, [sp, #0x34] + str r1, [sp, #0x4] + str r0, [sp, #0x8] + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x28] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r5, [sp, #0xc] + bl sub_02065178 + ldr r0, [sp, #0x20] + bl sub_02023918 + str r0, [sp, #0x40] + add r0, r6, #0x0 + add r1, sp, #0x90 + add r2, sp, #0x74 + bl sub_0204B2F0 + add r0, r6, #0x0 + add r1, sp, #0x80 + add r2, sp, #0x74 + bl sub_0204B30C + ldr r0, [r6, #0xc] + bl sub_020462AC + bl sub_0205ED0C + add r1, sp, #0x74 + str r1, [sp, #0x0] + ldr r1, [sp, #0x14] + lsl r0, r0, #0x18 + str r1, [sp, #0x4] + ldr r1, [sp, #0x40] + str r5, [sp, #0x8] + lsr r0, r0, #0x18 + add r2, sp, #0x90 + add r3, sp, #0x80 + bl sub_020651BC + ldr r0, [r6, #0xc] + bl sub_02029ABC + str r0, [sp, #0x44] + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_0202A150 + str r0, [sp, #0x48] + add r0, r4, #0x0 + mov r1, #0x19 + bl sub_0202A150 + str r0, [sp, #0x4c] + add r0, r4, #0x0 + mov r1, #0x14 + bl sub_0202A150 + str r0, [sp, #0x50] + add r0, r4, #0x0 + mov r1, #0x18 + bl sub_0202A150 + str r0, [sp, #0x54] + add r0, r4, #0x0 + mov r1, #0x40 + bl sub_0202A150 + str r0, [sp, #0x58] + add r0, r4, #0x0 + mov r1, #0x13 + bl sub_0202A150 + ldr r1, [sp, #0x58] + add r1, r1, r0 + ldr r0, [sp, #0x54] + add r1, r0, r1 + ldr r0, [sp, #0x50] + add r1, r0, r1 + ldr r0, [sp, #0x4c] + add r0, r0, r1 + str r0, [sp, #0x5c] + add r0, r4, #0x0 + mov r1, #0x15 + bl sub_0202A150 + str r0, [sp, #0x60] + add r0, r4, #0x0 + mov r1, #0x1a + bl sub_0202A150 + str r0, [sp, #0x64] + add r0, r4, #0x0 + mov r1, #0x16 + bl sub_0202A150 + str r0, [sp, #0x68] + add r0, r4, #0x0 + mov r1, #0x1b + bl sub_0202A150 + str r0, [sp, #0x6c] + add r0, r4, #0x0 + mov r1, #0x13 + bl sub_0202A150 + str r0, [sp, #0x70] + add r0, r4, #0x0 + mov r1, #0x18 + bl sub_0202A150 + add r4, r0, #0x0 + ldr r0, [sp, #0x44] + bl sub_02029AC8 + str r0, [sp, #0x0] + ldr r1, [sp, #0x48] + ldr r0, [sp, #0x5c] + ldr r2, [sp, #0x60] + add r0, r1, r0 + ldr r1, [sp, #0x64] + ldr r3, [sp, #0x68] + add r1, r2, r1 + ldr r2, [sp, #0x6c] + str r5, [sp, #0x4] + add r2, r3, r2 + ldr r3, [sp, #0x70] + add r3, r3, r4 + bl sub_02065260 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_020652AC + mov r3, #0x0 + ldr r0, _0206504C ; =0x0000066C + add r2, r3, #0x0 +_02065034: + ldrb r1, [r5, r2] + add r2, r2, #0x1 + eor r3, r1 + cmp r2, r0 + blo _02065034 + ldr r0, _02065050 ; =0x00000668 + mov r1, #0x0 + strh r3, [r5, r0] + add r0, r0, #0x2 + strh r1, [r5, r0] + add sp, #0xa0 + pop {r3-r7, pc} + .balign 4 +_0206504C: .word 0x0000066C +_02065050: .word 0x00000668 + + thumb_func_start sub_02065054 +sub_02065054: ; 0x02065054 + push {r4, lr} + ldr r1, _0206506C ; =0x0000066C + bl sub_02016998 + ldr r2, _0206506C ; =0x0000066C + mov r1, #0x0 + add r4, r0, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + pop {r4, pc} + nop +_0206506C: .word 0x0000066C + + thumb_func_start sub_02065070 +sub_02065070: ; 0x02065070 + ldr r3, _02065074 ; =sub_02016A18 + bx r3 + .balign 4 +_02065074: .word sub_02016A18 + 1 + + thumb_func_start sub_02065078 +sub_02065078: ; 0x02065078 + push {r3-r7, lr} + bl sub_020377AC + add r7, r0, #0x0 + bl sub_02029FC8 + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_020462AC + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_02026CB4 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r4, #0x0 + bl sub_0205ED0C + cmp r0, #0x0 + beq _020650A8 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_020650A8: + add r0, r7, #0x0 + bl sub_02024DA0 + bl sub_020244EC + cmp r0, #0x0 + beq _020650BC + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_020650BC: + add r0, r6, #0x0 + mov r1, #0x35 + bl sub_0202A150 + cmp r0, #0x64 + bhs _020650F8 + add r0, r6, #0x0 + mov r1, #0x37 + bl sub_0202A150 + cmp r0, #0x64 + bhs _020650F8 + add r0, r6, #0x0 + mov r1, #0x39 + bl sub_0202A150 + cmp r0, #0x64 + bhs _020650F8 + add r0, r6, #0x0 + mov r1, #0x3b + bl sub_0202A150 + cmp r0, #0x64 + bhs _020650F8 + add r0, r6, #0x0 + mov r1, #0x3d + bl sub_0202A150 + cmp r0, #0x64 + blo _020650FE +_020650F8: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_020650FE: + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0205EE60 + cmp r0, #0x0 + bne _0206513A + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0205EE60 + cmp r0, #0x0 + bne _0206513A + add r0, r5, #0x0 + mov r1, #0x3 + bl sub_0205EE60 + cmp r0, #0x0 + bne _0206513A + add r0, r5, #0x0 + mov r1, #0x4 + bl sub_0205EE60 + cmp r0, #0x0 + bne _0206513A + add r0, r5, #0x0 + mov r1, #0x2 + bl sub_0205EE60 + cmp r0, #0x0 + beq _02065140 +_0206513A: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_02065140: + ldr r0, [sp, #0x0] + bl sub_020268D4 + cmp r0, #0x1 + bne _02065150 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_02065150: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02065154 +sub_02065154: ; 0x02065154 + push {r3-r6} + ldr r5, [sp, #0x14] + mov r6, #0x1 + ldrb r4, [r5, #0x4] + bic r4, r6 + mov r6, #0x1 + and r0, r6 + orr r0, r4 + strb r0, [r5, #0x4] + strb r1, [r5, #0x0] + strb r2, [r5, #0x3] + add r0, sp, #0x0 + ldrb r0, [r0, #0x10] + strb r0, [r5, #0x1] + strb r3, [r5, #0x2] + pop {r3-r6} + bx lr + .balign 4 + + thumb_func_start sub_02065178 +sub_02065178: ; 0x02065178 + push {r4-r6, lr} + ldr r4, [sp, #0x1c] + add r6, r1, #0x0 + strh r0, [r4, #0x28] + ldrb r0, [r4, #0x4] + add r1, r2, #0x0 + mov r2, #0x4 + bic r0, r2 + lsl r2, r6, #0x1f + lsr r2, r2, #0x1d + orr r0, r2 + strb r0, [r4, #0x4] + add r0, r4, #0x0 + add r0, #0x8 + mov r2, #0x8 + add r5, r3, #0x0 + bl sub_02002268 + ldr r0, [sp, #0x10] + str r5, [r4, #0x1c] + str r0, [r4, #0x20] + ldrb r0, [r4, #0x4] + mov r1, #0x8 + bic r0, r1 + ldr r1, [sp, #0x14] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1f + lsr r1, r1, #0x1c + orr r0, r1 + strb r0, [r4, #0x4] + ldr r0, [sp, #0x18] + str r0, [r4, #0x24] + pop {r4-r6, pc} + + thumb_func_start sub_020651BC +sub_020651BC: ; 0x020651BC + push {r3-r7, lr} + sub sp, #0x8 + ldr r4, [sp, #0x28] + str r0, [sp, #0x0] + str r1, [sp, #0x4] + add r0, r1, #0x0 + add r5, r2, #0x0 + add r6, r3, #0x0 + ldr r7, [sp, #0x20] + bl sub_02029EBC + strh r0, [r4, #0x2a] + ldr r0, [sp, #0x4] + bl sub_02029EC0 + add r1, r4, #0x0 + add r1, #0x2e + strb r0, [r1, #0x0] + add r0, r4, #0x0 + ldr r1, [r5, #0x0] + add r0, #0x2f + strb r1, [r0, #0x0] + add r0, r4, #0x0 + ldr r1, [r5, #0x4] + add r0, #0x30 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + ldr r1, [r5, #0x8] + add r0, #0x31 + strb r1, [r0, #0x0] + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _0206521E + add r0, r4, #0x0 + ldr r1, [r6, #0x0] + add r0, #0x32 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + ldr r1, [r6, #0x4] + add r0, #0x33 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + ldr r1, [r6, #0x8] + add r0, #0x34 + strb r1, [r0, #0x0] + ldr r0, [r7, #0x0] + strh r0, [r4, #0x2c] + ldr r1, [r7, #0x4] + b _02065234 +_0206521E: + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x32 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x33 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x34 + strb r1, [r0, #0x0] + strh r1, [r4, #0x2c] +_02065234: + add r0, r4, #0x0 + add r0, #0x35 + strb r1, [r0, #0x0] + ldrb r2, [r4, #0x4] + mov r0, #0x2 + bic r2, r0 + add r0, sp, #0x10 + ldrb r0, [r0, #0x14] + lsl r1, r0, #0x1f + lsr r1, r1, #0x1e + orr r1, r2 + strb r1, [r4, #0x4] + cmp r0, #0x0 + beq _02065258 + ldr r0, [sp, #0x4] + add sp, #0x8 + str r0, [r4, #0x18] + pop {r3-r7, pc} +_02065258: + mov r0, #0x0 + str r0, [r4, #0x18] + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02065260 +sub_02065260: ; 0x02065260 + push {r3-r5, lr} + ldr r4, [sp, #0x14] + ldr r5, _020652A0 ; =0x000F423F + str r0, [r4, #0x38] + cmp r0, r5 + bls _0206526E + str r5, [r4, #0x38] +_0206526E: + str r1, [r4, #0x3c] + str r2, [r4, #0x40] + ldr r1, [r4, #0x3c] + ldr r0, _020652A4 ; =0x0000270F + cmp r1, r0 + bls _0206527C + str r0, [r4, #0x3c] +_0206527C: + ldr r1, [r4, #0x40] + ldr r0, _020652A4 ; =0x0000270F + cmp r1, r0 + bls _02065286 + str r0, [r4, #0x40] +_02065286: + ldr r0, _020652A8 ; =0x0001869F + str r3, [r4, #0x44] + cmp r3, r0 + bls _02065290 + str r0, [r4, #0x44] +_02065290: + add r4, #0x68 + mov r2, #0x6 + ldr r0, [sp, #0x10] + add r1, r4, #0x0 + lsl r2, r2, #0x8 + blx sub_020CE3E0 + pop {r3-r5, pc} + .balign 4 +_020652A0: .word 0x000F423F +_020652A4: .word 0x0000270F +_020652A8: .word 0x0001869F + + thumb_func_start sub_020652AC +sub_020652AC: ; 0x020652AC + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + ldr r0, [r1, #0xc] + add r5, r2, #0x0 + bl sub_02029ABC + bl sub_02029ACC + str r0, [sp, #0x4] + mov r0, #0x1 + mov r4, #0x0 + add r5, #0x48 + str r0, [sp, #0x8] + add r7, r0, #0x0 +_020652CA: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl sub_020239D0 + cmp r0, #0x0 + beq _020652E6 + lsl r0, r4, #0x2 + ldr r2, [r5, r0] + mov r1, #0x1 + bic r2, r7 + orr r1, r2 + add r6, r5, r0 + str r1, [r5, r0] + b _020652F2 +_020652E6: + lsl r2, r4, #0x2 + ldr r1, [r5, r2] + ldr r0, [sp, #0x8] + add r6, r5, r2 + bic r1, r0 + str r1, [r5, r2] +_020652F2: + ldr r1, [sp, #0x4] + add r0, r4, #0x0 + bl sub_02029AD0 + ldr r2, [r6, #0x0] + mov r1, #0x1 + and r1, r2 + lsl r0, r0, #0x1 + orr r0, r1 + str r0, [r6, #0x0] + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x8 + blo _020652CA + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_02065314 +sub_02065314: ; 0x02065314 + push {r4-r6, lr} + ldr r0, [r0, #0xc] + add r5, r1, #0x0 + bl sub_02029ABC + bl sub_02029ACC + add r6, r0, #0x0 + mov r4, #0x0 +_02065326: + lsl r1, r4, #0x2 + add r1, r5, r1 + ldr r1, [r1, #0x48] + add r0, r4, #0x0 + asr r1, r1, #0x1 + add r2, r6, #0x0 + bl sub_02029AD8 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x8 + blo _02065326 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02065344 +sub_02065344: ; 0x02065344 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0xb + mov r1, #0x8 + bl sub_020169D8 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [r4, #0x0] + ldr r0, [r5, #0x78] + bl sub_02052E38 + str r0, [r4, #0x4] + ldr r0, [r5, #0x10] + ldr r1, _0206536C ; =sub_02065370 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r5, pc} + nop +_0206536C: .word sub_02065370 + 1 + + thumb_func_start sub_02065370 +sub_02065370: ; 0x02065370 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0xa + bgt _0206539A + bge _020653BA + cmp r0, #0x1 + bgt _020653E2 + cmp r0, #0x0 + blt _020653E2 + beq _020653A0 + cmp r0, #0x1 + beq _020653AA + b _020653E2 +_0206539A: + cmp r0, #0xb + beq _020653C8 + b _020653E2 +_020653A0: + ldr r0, [r4, #0x78] + bl sub_02052ED0 + mov r0, #0x1 + str r0, [r5, #0x0] +_020653AA: + ldr r1, [r5, #0x4] + ldr r0, _020653E8 ; =0x0000066A + ldrh r0, [r1, r0] + cmp r0, #0x0 + beq _020653E2 + mov r0, #0xa + str r0, [r5, #0x0] + b _020653E2 +_020653BA: + ldr r1, [r5, #0x4] + add r0, r4, #0x0 + bl sub_02038680 + mov r0, #0xb + str r0, [r5, #0x0] + b _020653E2 +_020653C8: + add r0, r4, #0x0 + bl sub_0204647C + cmp r0, #0x0 + bne _020653E2 + ldr r0, [r4, #0x78] + bl sub_02052EAC + add r0, r5, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_020653E2: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_020653E8: .word 0x0000066A + + thumb_func_start sub_020653EC +sub_020653EC: ; 0x020653EC + push {r4-r6, lr} + mov r2, #0x5 + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0x3 + mov r1, #0x2b + lsl r2, r2, #0xc + bl sub_0201681C + mov r1, #0x6e + mov r0, #0x2b + lsl r1, r1, #0x2 + bl sub_02016998 + mov r2, #0x6e + mov r1, #0x0 + lsl r2, r2, #0x2 + add r4, r0, #0x0 + blx sub_020CE34C + add r0, r5, #0x0 + str r6, [r4, #0x4] + bl sub_020377AC + mov r1, #0x5b + lsl r1, r1, #0x2 + str r5, [r4, r1] + mov r1, #0x2b + str r1, [r4, #0x0] + mov r1, #0x0 + strb r1, [r4, #0x19] + mov r1, #0xff + add r6, r0, #0x0 + strb r1, [r4, #0x1a] + bl sub_02023900 + bl sub_02024FF4 + strb r0, [r4, #0x16] + add r0, r6, #0x0 + bl sub_02023900 + bl sub_02025084 + strh r0, [r4, #0x14] + add r0, r4, #0x0 + ldr r2, [r4, #0x0] + add r0, #0x1c + mov r1, #0x14 + bl sub_02066010 + ldr r2, [r4, #0x0] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_02066070 + add r0, r4, #0x0 + bl sub_02066270 + ldr r0, _02065470 ; =sub_020654B0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_0200CA44 + str r0, [r4, #0x8] + pop {r4-r6, pc} + .balign 4 +_02065470: .word sub_020654B0 + 1 + + thumb_func_start sub_02065474 +sub_02065474: ; 0x02065474 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x8] + bl sub_0200CAB4 + ldr r0, [r4, #0x4] + mov r1, #0x1 + str r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_020662E4 + add r0, r4, #0x0 + add r0, #0x1c + mov r1, #0x14 + bl sub_02066044 + add r0, r4, #0x0 + bl sub_02016A18 + ldr r0, [r4, #0x0] + bl sub_020168D0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020654A4 +sub_020654A4: ; 0x020654A4 + ldr r3, _020654AC ; =sub_02065474 + add r0, r1, #0x0 + bx r3 + nop +_020654AC: .word sub_02065474 + 1 + + thumb_func_start sub_020654B0 +sub_020654B0: ; 0x020654B0 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02066334 + add r0, r4, #0x0 + bl sub_02065AF4 + ldr r1, _020654CC ; =sub_020654D0 + add r0, r5, #0x0 + bl sub_0201B6C4 + pop {r3-r5, pc} + .balign 4 +_020654CC: .word sub_020654D0 + 1 + + thumb_func_start sub_020654D0 +sub_020654D0: ; 0x020654D0 + push {r3-r5, lr} + mov r0, #0x16 + add r5, r1, #0x0 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + bl sub_02001204 + add r4, r0, #0x0 + mov r0, #0x69 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + cmp r0, #0x0 + beq _020654EE + bl sub_0205EC18 +_020654EE: + ldr r0, _02065544 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x2 + tst r0, r1 + beq _0206550A + ldr r1, _02065548 ; =sub_02065658 + ldr r2, _0206554C ; =sub_020654A4 + add r0, r5, #0x0 + bl sub_02065FE4 + ldr r0, _02065550 ; =0x000005DC + bl sub_020054C8 + pop {r3-r5, pc} +_0206550A: + mov r0, #0x1 + tst r0, r1 + beq _02065542 + ldr r0, _02065550 ; =0x000005DC + bl sub_020054C8 + mov r1, #0x1 + mvn r1, r1 + cmp r4, r1 + beq _0206552A + add r0, r1, #0x1 + cmp r4, r0 + beq _0206552A + lsr r0, r1, #0x10 + cmp r4, r0 + bne _02065536 +_0206552A: + ldr r1, _02065548 ; =sub_02065658 + ldr r2, _0206554C ; =sub_020654A4 + add r0, r5, #0x0 + bl sub_02065FE4 + pop {r3-r5, pc} +_02065536: + ldr r1, _02065548 ; =sub_02065658 + ldr r2, _02065554 ; =sub_02065558 + add r0, r5, #0x0 + strb r4, [r5, #0x18] + bl sub_02065FE4 +_02065542: + pop {r3-r5, pc} + .balign 4 +_02065544: .word 0x021C48B8 +_02065548: .word sub_02065658 + 1 +_0206554C: .word sub_020654A4 + 1 +_02065550: .word 0x000005DC +_02065554: .word sub_02065558 + 1 + + thumb_func_start sub_02065558 +sub_02065558: ; 0x02065558 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldrh r0, [r4, #0x10] + cmp r0, #0x0 + beq _0206556A + cmp r0, #0x1 + beq _02065592 + pop {r3-r5, pc} +_0206556A: + add r0, r4, #0x0 + bl sub_02066334 + mov r1, #0x0 + add r0, r4, #0x0 + add r2, r1, #0x0 + bl sub_02065DD8 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r1, #0x0 + ldrb r2, [r4, #0x16] + add r0, r4, #0x0 + add r3, r1, #0x0 + bl sub_02066404 + ldrh r0, [r4, #0x10] + add r0, r0, #0x1 + strh r0, [r4, #0x10] + pop {r3-r5, pc} +_02065592: + add r0, r4, #0x0 + bl sub_020664F4 + cmp r0, #0x0 + beq _020655A8 + ldr r1, _020655AC ; =sub_020655B0 + add r0, r5, #0x0 + bl sub_0201B6C4 + mov r0, #0x0 + strh r0, [r4, #0x10] +_020655A8: + pop {r3-r5, pc} + nop +_020655AC: .word sub_020655B0 + 1 + + thumb_func_start sub_020655B0 +sub_020655B0: ; 0x020655B0 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r0, #0x16 + add r4, r1, #0x0 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_02001204 + add r5, r0, #0x0 + ldr r0, _02065638 ; =0x021C48B8 + mov r1, #0x2 + ldr r0, [r0, #0x48] + tst r1, r0 + beq _020655DE + ldr r1, _0206563C ; =sub_02065674 + ldr r2, _02065640 ; =sub_020654B0 + add r0, r4, #0x0 + bl sub_02065FE4 + ldr r0, _02065644 ; =0x000005DC + bl sub_020054C8 + pop {r4-r6, pc} +_020655DE: + mov r1, #0x1 + tst r0, r1 + beq _02065634 + ldr r0, _02065644 ; =0x000005DC + bl sub_020054C8 + add r0, r5, #0x2 + cmp r0, #0x5 + bhi _0206562C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r2, r1, #0 + lsl r6, r5, #0 + lsl r6, r2, #0 + lsl r2, r4, #0 + lsl r2, r1, #0 + ldr r1, _0206563C ; =sub_02065674 + ldr r2, _02065640 ; =sub_020654B0 + add r0, r4, #0x0 + bl sub_02065FE4 + pop {r4-r6, pc} +_02065614: + .byte 0x0C, 0x49, 0x20, 0x1C, 0x00, 0x22, 0x00, 0xF0, 0xE3, 0xFC, 0x70, 0xBD + .byte 0x0A, 0x49, 0x0B, 0x4A, 0x20, 0x1C, 0x00, 0xF0, 0xDD, 0xFC, 0x70, 0xBD +_0206562C: + ldr r1, _02065654 ; =sub_02065690 + add r0, r6, #0x0 + bl sub_0201B6C4 +_02065634: + pop {r4-r6, pc} + nop +_02065638: .word 0x021C48B8 +_0206563C: .word sub_02065674 + 1 +_02065640: .word sub_020654B0 + 1 +_02065644: .word 0x000005DC +_02065648: + .byte 0x11, 0x57, 0x06, 0x02, 0x95, 0x58, 0x06, 0x02 + .byte 0x39, 0x59, 0x06, 0x02 +_02065654: .word sub_02065690 + 1 + + thumb_func_start sub_02065658 +sub_02065658: ; 0x02065658 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02065EF8 + add r0, r4, #0x0 + bl sub_020663D4 + ldr r1, [r4, #0xc] + add r0, r5, #0x0 + bl sub_0201B6C4 + pop {r3-r5, pc} + + thumb_func_start sub_02065674 +sub_02065674: ; 0x02065674 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_02065F8C + add r0, r4, #0x0 + bl sub_020663D4 + ldr r1, [r4, #0xc] + add r0, r5, #0x0 + bl sub_0201B6C4 + pop {r3-r5, pc} + + thumb_func_start sub_02065690 +sub_02065690: ; 0x02065690 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldrh r0, [r4, #0x10] + cmp r0, #0x3 + bhi _02065704 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r3, #0 + lsl r0, r5, #0 + lsl r4, r6, #0 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02066578 + cmp r0, #0x0 + beq _0206570A + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02066634 + b _02065704 +_020656C6: + .byte 0x20, 0x1C, 0x01, 0xF0, 0x2E, 0xF8, 0x00, 0x28, 0x19, 0xD1 + .byte 0x38, 0xBD, 0x20, 0x1C, 0x00, 0xF0, 0x74, 0xFF, 0x00, 0x28, 0x13, 0xD1, 0x38, 0xBD, 0x20, 0x1C + .byte 0x01, 0x21, 0x00, 0xF0, 0x49, 0xFF, 0x00, 0x28, 0x0F, 0xD0, 0x20, 0x1C, 0x00, 0xF0, 0x22, 0xFE + .byte 0x20, 0x1C, 0x00, 0xF0, 0xFF, 0xF9, 0x00, 0x20, 0x20, 0x82, 0x04, 0x49, 0x28, 0x1C, 0xB5, 0xF7 + .byte 0xE1, 0xFF, 0x38, 0xBD +_02065704: + ldrh r0, [r4, #0x10] + add r0, r0, #0x1 + strh r0, [r4, #0x10] +_0206570A: + pop {r3-r5, pc} +_0206570C: + .byte 0xD1, 0x54, 0x06, 0x02 + + thumb_func_start sub_02065710 +sub_02065710: ; 0x02065710 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r1, #0x0 + ldrh r0, [r4, #0x10] + cmp r0, #0x5 + bhi _020657DA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r2, r3, #0 + lsl r4, r5, #0 + lsl r6, r2, #0x1 + lsl r6, r5, #0x1 + lsl r0, r0, #0x2 + mov r1, #0x1 + str r1, [sp, #0x0] + ldrb r2, [r4, #0x16] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02066404 + b _020657DA +_02065744: + .byte 0x20, 0x1C, 0x00, 0xF0, 0xD5, 0xFE, 0x00, 0x28, 0x48, 0xD0, 0x20, 0x1C + .byte 0x00, 0xF0, 0xE6, 0xFE, 0x41, 0xE0, 0x20, 0x1C, 0x00, 0xF0, 0xF8, 0xFE, 0x00, 0x28, 0x3F, 0xDB + .byte 0x0A, 0xD0, 0x00, 0x23, 0x00, 0x93, 0xA2, 0x7D, 0x20, 0x1C, 0x02, 0x21, 0x00, 0xF0, 0x4A, 0xFE + .byte 0x04, 0x20, 0x01, 0xB0, 0x20, 0x82, 0x18, 0xBD, 0x03, 0x20, 0x01, 0xB0, 0x20, 0x82, 0x18, 0xBD + .byte 0x20, 0x1C, 0x00, 0xF0, 0xA9, 0xFE, 0x17, 0x49, 0x17, 0x4A, 0x20, 0x1C, 0x00, 0xF0, 0x2A, 0xFC + .byte 0x00, 0x20, 0x01, 0xB0, 0x20, 0x82, 0x18, 0xBD, 0x20, 0x1C, 0x00, 0xF0, 0xAB, 0xFE, 0x00, 0x28 + .byte 0x1E, 0xD0, 0x20, 0x1C, 0x00, 0xF0, 0xBC, 0xFE, 0x17, 0xE0, 0x20, 0x1C, 0x00, 0xF0, 0xCE, 0xFE + .byte 0x00, 0x28, 0x15, 0xDB, 0x05, 0xD0, 0x0D, 0x49, 0x20, 0x1C, 0x00, 0x22, 0x00, 0xF0, 0x12, 0xFC + .byte 0x04, 0xE0, 0x0B, 0x49, 0x07, 0x4A, 0x20, 0x1C, 0x00, 0xF0, 0x0C, 0xFC, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x83, 0xFE, 0x00, 0x20, 0x01, 0xB0, 0x20, 0x82, 0x18, 0xBD +_020657DA: + ldrh r0, [r4, #0x10] + add r0, r0, #0x1 + strh r0, [r4, #0x10] + add sp, #0x4 + pop {r3-r4, pc} +_020657E4: + .byte 0x75, 0x56, 0x06, 0x02, 0xB1, 0x54, 0x06, 0x02, 0xB9, 0x59, 0x06, 0x02 + .byte 0xF5, 0x57, 0x06, 0x02 + + thumb_func_start sub_020657F4 +sub_020657F4: ; 0x020657F4 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r1, #0x0 + ldrh r0, [r4, #0x10] + cmp r0, #0x0 + beq _0206580A + cmp r0, #0x1 + beq _0206584E + cmp r0, #0x2 + beq _0206585C + b _0206587E +_0206580A: + ldr r0, [r4, #0xc] + cmp r0, #0x0 + bne _02065820 + add r0, r4, #0x0 + bl sub_02066334 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x1 + bl sub_02065DD8 +_02065820: + add r0, r4, #0x0 + bl sub_020661A0 + cmp r0, #0x0 + beq _0206583C + mov r0, #0x1 + str r0, [sp, #0x0] + ldrb r2, [r4, #0x16] + add r0, r4, #0x0 + mov r1, #0x3 + mov r3, #0x0 + bl sub_02066404 + b _0206587E +_0206583C: + mov r0, #0x1 + str r0, [sp, #0x0] + ldrb r2, [r4, #0x16] + add r0, r4, #0x0 + mov r1, #0x4 + mov r3, #0x0 + bl sub_02066404 + b _0206587E +_0206584E: + add r0, r4, #0x0 + bl sub_020664F4 + cmp r0, #0x0 + bne _0206587E + add sp, #0x4 + pop {r3-r4, pc} +_0206585C: + ldr r0, _02065888 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _02065884 + add r0, r4, #0x0 + bl sub_020664D8 + ldr r1, _0206588C ; =sub_02065674 + ldr r2, _02065890 ; =sub_020654B0 + add r0, r4, #0x0 + bl sub_02065FE4 + mov r0, #0x0 + add sp, #0x4 + strh r0, [r4, #0x10] + pop {r3-r4, pc} +_0206587E: + ldrh r0, [r4, #0x10] + add r0, r0, #0x1 + strh r0, [r4, #0x10] +_02065884: + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_02065888: .word 0x021C48B8 +_0206588C: .word sub_02065674 + 1 +_02065890: .word sub_020654B0 + 1 + + thumb_func_start sub_02065894 +sub_02065894: ; 0x02065894 + push {r3-r5, lr} + add r4, r1, #0x0 + ldrh r0, [r4, #0x10] + cmp r0, #0x3 + bhi _0206592C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r4, r3, #0 + lsl r2, r5, #0 + lsl r6, r6, #0 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02066578 + cmp r0, #0x0 + beq _02065932 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02066634 + b _0206592C +_020658C8: + .byte 0x20, 0x1C, 0x0E, 0x21, 0x00, 0xF0, 0xCA, 0xFE + .byte 0x00, 0x28, 0x2B, 0xD1, 0x38, 0xBD, 0x20, 0x1C, 0x00, 0xF0, 0x72, 0xFE, 0x00, 0x28, 0x25, 0xD1 + .byte 0x38, 0xBD, 0x20, 0x1C, 0x01, 0x21, 0x00, 0xF0, 0x47, 0xFE, 0x00, 0x28, 0x21, 0xD0, 0x6D, 0x20 + .byte 0x80, 0x00, 0x20, 0x58, 0x01, 0x1C, 0x22, 0x31, 0x0D, 0x78, 0xB1, 0xF7, 0x8D, 0xF8, 0x07, 0x2D + .byte 0x07, 0xD1, 0xE1, 0x68, 0x20, 0x1C, 0x00, 0x22, 0x00, 0xF0, 0x6C, 0xFB, 0x00, 0x20, 0x20, 0x82 + .byte 0x38, 0xBD, 0x20, 0x1C, 0x29, 0x1C, 0x00, 0x22, 0x00, 0xF0, 0x6E, 0xFC, 0x05, 0x49, 0x20, 0x1C + .byte 0x00, 0x22, 0x00, 0xF0, 0x5F, 0xFB, 0x00, 0x20, 0x20, 0x82, 0x38, 0xBD +_0206592C: + ldrh r0, [r4, #0x10] + add r0, r0, #0x1 + strh r0, [r4, #0x10] +_02065932: + pop {r3-r5, pc} +_02065934: + .byte 0xB1, 0x54, 0x06, 0x02 + + thumb_func_start sub_02065938 +sub_02065938: ; 0x02065938 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r1, #0x0 + ldrh r0, [r4, #0x10] + cmp r0, #0x0 + beq _0206594E + cmp r0, #0x1 + beq _02065970 + cmp r0, #0x2 + beq _0206597E + b _020659A0 +_0206594E: + add r0, r4, #0x0 + bl sub_02066334 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x2 + bl sub_02065DD8 + mov r0, #0x1 + str r0, [sp, #0x0] + ldrb r2, [r4, #0x16] + add r0, r4, #0x0 + mov r1, #0x5 + mov r3, #0x0 + bl sub_02066404 + b _020659A0 +_02065970: + add r0, r4, #0x0 + bl sub_020664F4 + cmp r0, #0x0 + bne _020659A0 + add sp, #0x4 + pop {r3-r4, pc} +_0206597E: + ldr r0, _020659AC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _020659A6 + add r0, r4, #0x0 + bl sub_020664D8 + ldr r1, _020659B0 ; =sub_02065674 + ldr r2, _020659B4 ; =sub_020654B0 + add r0, r4, #0x0 + bl sub_02065FE4 + mov r0, #0x0 + add sp, #0x4 + strh r0, [r4, #0x10] + pop {r3-r4, pc} +_020659A0: + ldrh r0, [r4, #0x10] + add r0, r0, #0x1 + strh r0, [r4, #0x10] +_020659A6: + add sp, #0x4 + pop {r3-r4, pc} + nop +_020659AC: .word 0x021C48B8 +_020659B0: .word sub_02065674 + 1 +_020659B4: .word sub_020654B0 + 1 + + thumb_func_start sub_020659B8 +sub_020659B8: ; 0x020659B8 + push {r4-r6, lr} + add r4, r1, #0x0 + ldrh r0, [r4, #0x10] + cmp r0, #0x5 + bls _020659C4 + b _02065AE0 +_020659C4: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r2, r2, #0x1 + lsl r6, r2, #0x2 + lsl r4, r6, #0x2 + lsl r6, r4, #0x3 + lsl r2, r6, #0x3 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02066578 + cmp r0, #0x0 + beq _02065AE6 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02066634 + mov r0, #0x1b + lsl r0, r0, #0x4 + ldrb r2, [r4, #0x18] + mov r1, #0xc + ldr r0, [r4, r0] + mul r1, r2 + add r1, r4, r1 + ldrh r1, [r1, #0x22] + ldr r2, [r4, #0x0] + bl sub_0206EEF8 + cmp r0, #0x0 + ldr r1, _02065AE8 ; =0x0000013B + beq _02065A1A + ldrb r2, [r4, r1] + mov r0, #0xc0 + bic r2, r0 + mov r0, #0x40 + orr r0, r2 + strb r0, [r4, r1] + b _02065AE0 +_02065A1A: + ldrb r2, [r4, r1] + mov r0, #0xc0 + bic r2, r0 + strb r2, [r4, r1] + b _02065AE0 +_02065A24: + .byte 0x20, 0x1C, 0x09, 0x21, 0x00, 0xF0, 0x1C, 0xFE, 0x00, 0x28, 0x5A, 0xD0 + .byte 0x6D, 0x20, 0x80, 0x00, 0x20, 0x58, 0x01, 0x1C, 0x22, 0x31, 0x0D, 0x78, 0x01, 0x1C, 0x23, 0x31 + .byte 0x0E, 0x78, 0xB0, 0xF7, 0xE9, 0xFF, 0x06, 0x2E, 0x01, 0xD1, 0x07, 0x2D, 0x04, 0xD1, 0x27, 0x48 + .byte 0xE0, 0x60, 0x04, 0x20, 0x20, 0x82, 0x70, 0xBD, 0xE5, 0x75, 0x21, 0x7E, 0x0C, 0x20, 0x00, 0x22 + .byte 0x48, 0x43, 0x20, 0x18, 0x42, 0x77, 0x3B, 0xE0, 0x20, 0x1C, 0x00, 0xF0, 0x5D, 0xFE, 0x00, 0x28 + .byte 0x39, 0xD0, 0x01, 0x28, 0x04, 0xD1, 0x1D, 0x48, 0xE0, 0x60, 0x04, 0x20, 0x20, 0x82, 0x70, 0xBD + .byte 0x1B, 0x48, 0xE0, 0x60, 0x2C, 0xE0, 0x20, 0x1C, 0x0B, 0x21, 0x00, 0xF0, 0xEB, 0xFD, 0x00, 0x28 + .byte 0x29, 0xD0, 0x6D, 0x20, 0x80, 0x00, 0x20, 0x58, 0xB0, 0xF7, 0xBE, 0xFF, 0x12, 0x4A, 0xE1, 0x7D + .byte 0xA2, 0x5C, 0x20, 0x1C, 0x12, 0x06, 0x92, 0x0F, 0x00, 0xF0, 0xA6, 0xFB, 0x0E, 0x49, 0xC0, 0x20 + .byte 0x62, 0x5C, 0x82, 0x43, 0x62, 0x54, 0x13, 0xE0, 0x20, 0x1C, 0x00, 0xF0, 0x81, 0xFD, 0x00, 0x28 + .byte 0x0E, 0xD1, 0x70, 0xBD, 0x20, 0x1C, 0x01, 0x21, 0x00, 0xF0, 0x56, 0xFD, 0x00, 0x28, 0x0A, 0xD0 + .byte 0xE1, 0x68, 0x20, 0x1C, 0x00, 0x22, 0x00, 0xF0, 0x85, 0xFA, 0x00, 0x20, 0x20, 0x82, 0x70, 0xBD +_02065AE0: + ldrh r0, [r4, #0x10] + add r0, r0, #0x1 + strh r0, [r4, #0x10] +_02065AE6: + pop {r4-r6, pc} + .balign 4 +_02065AE8: .word 0x0000013B +_02065AEC: + .byte 0xF5, 0x57, 0x06, 0x02 + .byte 0xB1, 0x54, 0x06, 0x02 + + thumb_func_start sub_02065AF4 +sub_02065AF4: ; 0x02065AF4 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + mov r6, #0x0 + bl sub_0205EB38 + mov r1, #0x69 + lsl r1, r1, #0x2 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #0xc8 + mov r2, #0xa + mov r3, #0x8a + bl sub_0205EC48 + mov r0, #0x69 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r1, r6, #0x0 + mov r2, #0x1 + bl sub_0205EC6C + mov r0, #0x69 + lsl r0, r0, #0x2 + mov r1, #0x1 + ldr r0, [r5, r0] + add r2, r1, #0x0 + bl sub_0205EC6C + mov r1, #0x17 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r2, _02065CD8 ; =0x020F7E7C + add r1, r5, r1 + bl sub_02019150 + mov r1, #0x17 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, #0x24 + ldr r2, _02065CDC ; =0x020F7E84 + add r1, r5, r1 + bl sub_02019150 + mov r0, #0x5d + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0xff + bl sub_02019620 + mov r0, #0x65 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0xff + bl sub_02019620 + ldrb r0, [r5, #0x1b] + ldr r1, [r5, #0x0] + add r0, r0, #0x1 + bl sub_02012838 + mov r1, #0x59 + lsl r1, r1, #0x2 + add r7, r5, #0x0 + str r0, [r5, r1] + add r4, r6, #0x0 + add r7, #0x1c +_02065B7E: + mov r0, #0xc + mul r0, r4 + add r2, r7, r0 + ldrb r0, [r2, #0x1] + cmp r0, #0x0 + beq _02065B9E + mov r0, #0x59 + lsl r0, r0, #0x2 + ldr r1, [r2, #0x8] + ldrb r2, [r2, #0x0] + ldr r0, [r5, r0] + bl sub_020128A0 + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 +_02065B9E: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x14 + blo _02065B7E + mov r1, #0x59 + lsl r1, r1, #0x2 + ldr r0, [r5, r1] + sub r1, #0x4c + ldr r1, [r5, r1] + ldr r2, _02065CE0 ; =0x0000FFFF + bl sub_020128A0 + add r0, r6, #0x1 + lsl r0, r0, #0x18 + mov r1, #0x5 + lsr r6, r0, #0x18 + lsl r1, r1, #0x6 + ldr r0, _02065CE4 ; =0x020F7E8C + add r1, r5, r1 + mov r2, #0x20 + blx sub_020CE3E0 + mov r1, #0x5d + lsl r1, r1, #0x2 + add r0, r1, #0x0 + add r2, r5, r1 + sub r0, #0x28 + str r2, [r5, r0] + add r0, r1, #0x0 + sub r0, #0x10 + ldr r2, [r5, r0] + add r0, r1, #0x0 + sub r0, #0x34 + str r2, [r5, r0] + add r0, r1, #0x0 + sub r0, #0x18 + str r5, [r5, r0] + add r0, r1, #0x0 + sub r0, #0x24 + strh r6, [r5, r0] + add r0, r1, #0x0 + sub r0, #0x1d + ldrb r2, [r5, r0] + mov r0, #0xf + bic r2, r0 + mov r0, #0x6 + orr r2, r0 + add r0, r1, #0x0 + sub r0, #0x1d + strb r2, [r5, r0] + add r0, r1, #0x0 + ldr r2, _02065CE8 ; =sub_02065D4C + sub r0, #0x30 + str r2, [r5, r0] + add r0, r1, #0x0 + ldr r2, _02065CEC ; =sub_02065CFC + sub r0, #0x2c + str r2, [r5, r0] + add r0, r1, #0x0 + sub r0, #0x39 + ldrb r0, [r5, r0] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1e + beq _02065C64 + add r0, r1, #0x0 + sub r0, #0x38 + ldrh r0, [r5, r0] + cmp r0, #0x0 + bne _02065C48 + add r0, r1, #0x0 + sub r0, #0x36 + ldrh r2, [r5, r0] + cmp r2, #0x0 + beq _02065C5A + sub r0, r6, #0x1 + cmp r2, r0 + blt _02065C5A + add r0, r1, #0x0 + sub r0, #0x36 + ldrh r0, [r5, r0] + sub r1, #0x36 + sub r0, r0, #0x1 + strh r0, [r5, r1] + b _02065C5A +_02065C48: + add r0, r0, #0x7 + cmp r0, r6 + blt _02065C5A + add r0, r1, #0x0 + sub r0, #0x38 + ldrh r0, [r5, r0] + sub r1, #0x38 + sub r0, r0, #0x1 + strh r0, [r5, r1] +_02065C5A: + ldr r1, _02065CF0 ; =0x0000013B + mov r0, #0x30 + ldrb r2, [r5, r1] + bic r2, r0 + strb r2, [r5, r1] +_02065C64: + mov r2, #0x5 + lsl r2, r2, #0x6 + sub r1, r2, #0x4 + add r0, r5, r2 + sub r2, r2, #0x2 + ldr r3, [r5, #0x0] + ldrh r1, [r5, r1] + lsl r3, r3, #0x18 + ldrh r2, [r5, r2] + lsr r3, r3, #0x18 + bl sub_020010A8 + mov r1, #0x16 + lsl r1, r1, #0x4 + str r0, [r5, r1] + add r1, #0x14 + add r0, r5, r1 + ldr r2, _02065CF4 ; =0x000003D9 + mov r1, #0x0 + mov r3, #0xb + bl sub_0200CCA4 + mov r1, #0x0 + str r1, [sp, #0x0] + mov r2, #0x65 + ldr r0, _02065CF8 ; =0x0001020F + str r1, [sp, #0x4] + str r0, [sp, #0x8] + lsl r2, r2, #0x2 + add r0, r5, r2 + str r1, [sp, #0xc] + sub r2, #0x78 + ldr r2, [r5, r2] + mov r3, #0x2 + bl sub_0201BDE0 + mov r0, #0x65 + lsl r0, r0, #0x2 + ldr r2, _02065CF4 ; =0x000003D9 + add r0, r5, r0 + mov r1, #0x0 + mov r3, #0xb + bl sub_0200CCA4 + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x3 + bl sub_0201AC68 + ldr r1, _02065CF0 ; =0x0000013B + mov r0, #0xf + ldrb r2, [r5, r1] + bic r2, r0 + strb r2, [r5, r1] + add sp, #0x10 + pop {r3-r7, pc} + nop +_02065CD8: .word 0x020F7E7C +_02065CDC: .word 0x020F7E84 +_02065CE0: .word 0x0000FFFF +_02065CE4: .word 0x020F7E8C +_02065CE8: .word sub_02065D4C + 1 +_02065CEC: .word sub_02065CFC + 1 +_02065CF0: .word 0x0000013B +_02065CF4: .word 0x000003D9 +_02065CF8: .word 0x0001020F + + thumb_func_start sub_02065CFC +sub_02065CFC: ; 0x02065CFC + push {r3-r5, lr} + add r4, r1, #0x0 + mov r1, #0x13 + add r5, r0, #0x0 + bl sub_02001470 + ldr r1, _02065D48 ; =0x0000FFFF + cmp r4, r1 + bne _02065D1C + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0xf + mov r3, #0x2 + bl sub_020013E8 + pop {r3-r5, pc} +_02065D1C: + mov r1, #0xc + mul r1, r4 + add r0, r0, r1 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02065D38 + add r0, r5, #0x0 + mov r1, #0x3 + mov r2, #0xf + mov r3, #0x4 + bl sub_020013E8 + pop {r3-r5, pc} +_02065D38: + add r0, r5, #0x0 + mov r1, #0x7 + mov r2, #0xf + mov r3, #0x8 + bl sub_020013E8 + pop {r3-r5, pc} + nop +_02065D48: .word 0x0000FFFF + + thumb_func_start sub_02065D4C +sub_02065D4C: ; 0x02065D4C + push {r3-r6, lr} + sub sp, #0x4 + mov r1, #0x13 + add r4, r0, #0x0 + add r6, r2, #0x0 + bl sub_02001470 + add r1, sp, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, #0x2 + add r2, sp, #0x0 + bl sub_02001448 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02001470 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r6, #0x0 + bne _02065D7E + ldr r0, _02065DD4 ; =0x000005DC + bl sub_020054C8 +_02065D7E: + add r0, sp, #0x0 + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + bne _02065D96 + mov r0, #0x69 + lsl r0, r0, #0x2 + mov r1, #0x0 + ldr r0, [r5, r0] + add r2, r1, #0x0 + bl sub_0205EC6C + b _02065DA4 +_02065D96: + mov r0, #0x69 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x0 + mov r2, #0x1 + bl sub_0205EC6C +_02065DA4: + add r0, sp, #0x0 + ldrh r1, [r0, #0x2] + sub r0, r4, #0x7 + cmp r1, r0 + bge _02065DC0 + mov r0, #0x69 + lsl r0, r0, #0x2 + mov r1, #0x1 + ldr r0, [r5, r0] + add r2, r1, #0x0 + bl sub_0205EC6C + add sp, #0x4 + pop {r3-r6, pc} +_02065DC0: + mov r0, #0x69 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x1 + mov r2, #0x0 + bl sub_0205EC6C + add sp, #0x4 + pop {r3-r6, pc} + nop +_02065DD4: .word 0x000005DC + + thumb_func_start sub_02065DD8 +sub_02065DD8: ; 0x02065DD8 + push {r3-r7, lr} + sub sp, #0x8 + str r1, [sp, #0x0] + add r5, r0, #0x0 + str r2, [sp, #0x4] + ldr r1, [r5, #0x0] + mov r0, #0x4 + bl sub_02012838 + mov r1, #0x59 + lsl r1, r1, #0x2 + str r0, [r5, r1] + add r0, r1, #0x0 + add r0, #0xc + add r1, #0x10 + ldr r0, [r5, r0] + ldr r2, _02065EC8 ; =0x020F7E74 + add r1, r5, r1 + bl sub_02019150 + mov r0, #0x5d + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0xff + bl sub_02019620 + mov r7, #0x43 + ldr r6, _02065ECC ; =0x020F7EAC + mov r4, #0x0 + lsl r7, r7, #0x2 +_02065E14: + lsl r2, r4, #0x3 + add r3, r6, r2 + mov r0, #0x59 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r1, [r5, r7] + ldr r2, [r6, r2] + ldr r3, [r3, #0x4] + bl sub_02012880 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + blo _02065E14 + mov r1, #0x5 + lsl r1, r1, #0x6 + ldr r0, _02065ED0 ; =0x020F7E8C + add r1, r5, r1 + mov r2, #0x20 + blx sub_020CE3E0 + mov r0, #0x5d + lsl r0, r0, #0x2 + add r1, r0, #0x0 + add r2, r5, r0 + sub r1, #0x28 + str r2, [r5, r1] + add r1, r0, #0x0 + sub r1, #0x10 + ldr r2, [r5, r1] + add r1, r0, #0x0 + sub r1, #0x34 + str r2, [r5, r1] + add r1, r0, #0x0 + sub r1, #0x18 + str r5, [r5, r1] + add r1, r0, #0x0 + mov r2, #0x4 + sub r1, #0x24 + strh r2, [r5, r1] + add r1, r0, #0x0 + sub r1, #0x22 + strh r2, [r5, r1] + add r1, r0, #0x0 + sub r1, #0x1a + ldrh r2, [r5, r1] + ldr r1, _02065ED4 ; =0xFFFFFE7F + and r2, r1 + add r1, r0, #0x0 + sub r1, #0x1a + strh r2, [r5, r1] + add r1, r0, #0x0 + sub r0, #0x34 + ldr r2, _02065ED8 ; =sub_02065EE4 + sub r1, #0x30 + str r2, [r5, r1] + ldr r3, [r5, #0x0] + ldr r1, [sp, #0x0] + lsl r3, r3, #0x18 + ldr r2, [sp, #0x4] + add r0, r5, r0 + lsr r3, r3, #0x18 + bl sub_020010A8 + mov r1, #0x16 + lsl r1, r1, #0x4 + str r0, [r5, r1] + add r1, #0x14 + add r0, r5, r1 + ldr r2, _02065EDC ; =0x000003D9 + mov r1, #0x0 + mov r3, #0xb + bl sub_0200CCA4 + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x3 + bl sub_0201AC68 + ldr r1, _02065EE0 ; =0x0000013B + mov r0, #0xf + ldrb r2, [r5, r1] + bic r2, r0 + mov r0, #0x1 + orr r0, r2 + strb r0, [r5, r1] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02065EC8: .word 0x020F7E74 +_02065ECC: .word 0x020F7EAC +_02065ED0: .word 0x020F7E8C +_02065ED4: .word 0xFFFFFE7F +_02065ED8: .word sub_02065EE4 + 1 +_02065EDC: .word 0x000003D9 +_02065EE0: .word 0x0000013B + + thumb_func_start sub_02065EE4 +sub_02065EE4: ; 0x02065EE4 + push {r3, lr} + cmp r2, #0x0 + bne _02065EF0 + ldr r0, _02065EF4 ; =0x000005DC + bl sub_020054C8 +_02065EF0: + pop {r3, pc} + nop +_02065EF4: .word 0x000005DC + + thumb_func_start sub_02065EF8 +sub_02065EF8: ; 0x02065EF8 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + mov r0, #0x16 + lsl r0, r0, #0x4 + add r1, sp, #0x0 + ldr r0, [r4, r0] + add r1, #0x2 + add r2, sp, #0x0 + bl sub_02001300 + mov r0, #0x59 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02012870 + mov r0, #0x65 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019570 + mov r0, #0x65 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x0 + bl sub_0200CCF8 + mov r0, #0x65 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019178 + mov r0, #0x5d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019570 + mov r0, #0x5d + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x0 + bl sub_0200CCF8 + mov r0, #0x5d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019178 + add r0, sp, #0x0 + mov r1, #0x4f + ldrh r2, [r0, #0x2] + lsl r1, r1, #0x2 + strh r2, [r4, r1] + ldrh r2, [r0, #0x0] + add r0, r1, #0x2 + add r1, #0x68 + strh r2, [r4, r0] + ldr r0, [r4, r1] + cmp r0, #0x0 + beq _02065F7C + bl sub_0205EBEC + mov r0, #0x69 + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r4, r0] +_02065F7C: + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x3 + bl sub_0201AC68 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_02065F8C +sub_02065F8C: ; 0x02065F8C + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + mov r0, #0x5d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019570 + mov r0, #0x5d + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x0 + bl sub_0200CCF8 + mov r0, #0x16 + lsl r0, r0, #0x4 + add r1, sp, #0x0 + ldr r0, [r4, r0] + add r1, #0x2 + add r2, sp, #0x0 + bl sub_02001300 + mov r0, #0x59 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02012870 + mov r0, #0x5d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019178 + add r0, r4, #0x0 + bl sub_020664D8 + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x3 + bl sub_0201AC68 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02065FE4 +sub_02065FE4: ; 0x02065FE4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x8] + add r4, r2, #0x0 + bl sub_0201B6C4 + mov r0, #0x0 + strh r0, [r5, #0x10] + str r4, [r5, #0xc] + pop {r3-r5, pc} + + thumb_func_start sub_02065FF8 +sub_02065FF8: ; 0x02065FF8 + push {r3, lr} + strb r1, [r0, #0x0] + mov r1, #0x0 + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0206600E + bl sub_02021A4C +_0206600E: + pop {r3, pc} + + thumb_func_start sub_02066010 +sub_02066010: ; 0x02066010 + push {r3-r7, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r7, r2, #0x0 + mov r4, #0x0 + cmp r6, #0x0 + bls _02066040 +_0206601E: + mov r0, #0x8 + add r1, r7, #0x0 + bl sub_020219F4 + mov r1, #0xc + mul r1, r4 + add r1, r5, r1 + str r0, [r1, #0x8] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02065FF8 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, r6 + blo _0206601E +_02066040: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02066044 +sub_02066044: ; 0x02066044 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + ldr r4, _0206606C ; =0x00000000 + beq _0206606A + mov r7, #0xc +_02066050: + add r0, r4, #0x0 + mul r0, r7 + add r0, r5, r0 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _02066060 + bl sub_02021A20 +_02066060: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, r6 + blo _02066050 +_0206606A: + pop {r3-r7, pc} + .balign 4 +_0206606C: .word 0x00000000 + + thumb_func_start sub_02066070 +sub_02066070: ; 0x02066070 + push {r4-r7, lr} + sub sp, #0x14 + add r4, r1, #0x0 + add r6, r0, #0x0 + add r0, r4, #0x0 + add r5, r2, #0x0 + bl sub_02025838 + mov r1, #0x6b + lsl r1, r1, #0x2 + str r0, [sp, #0x4] + str r0, [r6, r1] + add r0, r4, #0x0 + bl sub_0206F158 + mov r1, #0x1b + lsl r1, r1, #0x4 + str r0, [r6, r1] + add r0, r5, #0x0 + bl sub_020256BC + add r7, r0, #0x0 + add r0, r6, #0x0 + str r0, [sp, #0x10] + add r0, #0x1b + str r0, [sp, #0x10] + add r0, r6, #0x0 + str r0, [sp, #0x8] + add r0, #0x1c + mov r4, #0x0 + str r0, [sp, #0x8] +_020660AE: + ldr r0, [sp, #0x4] + mov r1, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl sub_020258D4 + mov r0, #0xc + mul r0, r4 + ldr r1, [sp, #0x8] + str r0, [sp, #0xc] + add r5, r1, r0 + ldrb r1, [r6, #0x19] + mov r0, #0xc + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [sp, #0x8] + add r1, r4, #0x0 + add r0, r0, r2 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02065FF8 + ldr r1, [sp, #0x8] + ldr r0, [sp, #0xc] + strb r4, [r1, r0] + add r0, r7, #0x0 + bl sub_020256AC + cmp r0, #0x0 + beq _02066134 + mov r0, #0x1 + strb r0, [r5, #0x1] + add r0, r7, #0x0 + bl sub_020257C8 + strb r0, [r5, #0x4] + add r0, r7, #0x0 + bl sub_020257CC + strb r0, [r5, #0x5] + ldrb r0, [r5, #0x5] + bl sub_0206EAD8 + strh r0, [r5, #0x6] + add r0, r7, #0x0 + bl sub_020257C4 + add r1, r0, #0x0 + ldr r0, [r5, #0x8] + bl sub_02021E28 + ldrb r0, [r6, #0x19] + strb r0, [r5, #0x2] + ldrb r1, [r5, #0x0] + ldr r0, [sp, #0x0] + strb r1, [r0, #0x3] + ldrb r0, [r5, #0x0] + strb r0, [r6, #0x19] + ldr r0, [sp, #0x10] + ldrb r0, [r0, #0x0] + add r1, r0, #0x1 + ldr r0, [sp, #0x10] + strb r1, [r0, #0x0] + ldrb r0, [r6, #0x1a] + cmp r0, #0xff + bne _02066134 + strb r4, [r6, #0x1a] +_02066134: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x14 + blo _020660AE + ldrb r1, [r6, #0x19] + ldrb r3, [r6, #0x1a] + mov r0, #0xc + add r2, r1, #0x0 + mul r2, r0 + add r1, r6, r2 + strb r3, [r1, #0x1f] + ldrb r1, [r6, #0x1a] + ldrb r2, [r6, #0x19] + mul r0, r1 + add r0, r6, r0 + strb r2, [r0, #0x1e] + add r0, r7, #0x0 + bl sub_02016A18 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_02066160 +sub_02066160: ; 0x02066160 + push {r3-r6} + add r2, r1, #0x0 + mov r3, #0xc + add r1, r0, #0x0 + mul r2, r3 + add r1, #0x1c + add r1, r1, r2 + ldrb r4, [r1, #0x2] + ldrb r6, [r1, #0x3] + add r5, r4, #0x0 + mul r5, r3 + add r4, r0, r5 + strb r6, [r4, #0x1f] + ldrb r4, [r1, #0x2] + ldrb r1, [r1, #0x3] + mul r3, r1 + add r1, r0, r3 + strb r4, [r1, #0x1e] + add r1, r0, r2 + mov r3, #0x0 + strb r3, [r1, #0x1d] + ldr r2, _0206619C ; =0x0000013B + mov r1, #0x30 + ldrb r3, [r0, r2] + bic r3, r1 + mov r1, #0x10 + orr r1, r3 + strb r1, [r0, r2] + pop {r3-r6} + bx lr + .balign 4 +_0206619C: .word 0x0000013B + + thumb_func_start sub_020661A0 +sub_020661A0: ; 0x020661A0 + push {r4-r6, lr} + add r5, r0, #0x0 + ldrb r1, [r5, #0x18] + add r2, r5, #0x0 + mov r0, #0xc + add r2, #0x1c + mul r0, r1 + add r4, r2, r0 + mov r0, #0x1b + lsl r0, r0, #0x4 + ldrh r1, [r4, #0x6] + ldr r0, [r5, r0] + ldr r3, [r5, #0x0] + mov r2, #0x1 + bl sub_0206ED24 + add r6, r0, #0x0 + beq _020661D4 + mov r0, #0x1b + lsl r0, r0, #0x4 + ldrh r1, [r4, #0x6] + ldr r0, [r5, r0] + ldr r3, [r5, #0x0] + mov r2, #0x1 + bl sub_0206ED38 +_020661D4: + mov r0, #0x6b + lsl r0, r0, #0x2 + ldrb r2, [r5, #0x18] + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_02025878 + ldrb r1, [r5, #0x18] + add r0, r5, #0x0 + bl sub_02066160 + ldrb r1, [r5, #0x18] + add r0, r4, #0x0 + bl sub_02065FF8 + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020661F8 +sub_020661F8: ; 0x020661F8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + ldrb r1, [r5, #0x18] + add r6, r2, #0x0 + add r2, r5, #0x0 + mov r0, #0xc + add r2, #0x1c + mul r0, r1 + add r4, r2, r0 + ldrb r0, [r4, #0x1] + cmp r0, #0x0 + beq _0206626E + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_020377AC + bl sub_0206BB1C + add r1, r7, #0x0 + bl sub_0206B9B0 + add r2, r0, #0x0 + mov r0, #0x6b + lsl r0, r0, #0x2 + ldrb r1, [r5, #0x18] + ldr r0, [r5, r0] + ldr r3, [r5, #0x0] + bl sub_020856A0 + cmp r6, #0x0 + beq _0206625E + mov r0, #0x1b + lsl r0, r0, #0x4 + ldrh r1, [r4, #0x6] + ldr r0, [r5, r0] + ldr r3, [r5, #0x0] + mov r2, #0x1 + bl sub_0206ED24 + cmp r0, #0x0 + beq _0206625E + mov r0, #0x1b + lsl r0, r0, #0x4 + ldrh r1, [r4, #0x6] + ldr r0, [r5, r0] + ldr r3, [r5, #0x0] + mov r2, #0x1 + bl sub_0206ED38 +_0206625E: + ldrb r1, [r5, #0x18] + add r0, r5, #0x0 + bl sub_02066160 + ldrb r1, [r5, #0x18] + add r0, r4, #0x0 + bl sub_02065FF8 +_0206626E: + pop {r3-r7, pc} + + thumb_func_start sub_02066270 +sub_02066270: ; 0x02066270 + push {r3-r7, lr} + add r6, r0, #0x0 + mov r2, #0x5a + ldr r3, [r6, #0x0] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + mov r1, #0x43 + lsl r1, r1, #0x2 + str r0, [r6, r1] + ldr r2, [r6, #0x0] + mov r0, #0x1 + mov r1, #0x80 + bl sub_0200AA90 + mov r1, #0x11 + lsl r1, r1, #0x4 + str r0, [r6, r1] + ldr r1, [r6, #0x0] + mov r0, #0x80 + bl sub_020219F4 + mov r1, #0x45 + lsl r1, r1, #0x2 + str r0, [r6, r1] + sub r1, #0x8 + ldr r0, [r6, r1] + mov r1, #0x4 + bl sub_0200A914 + mov r1, #0x46 + lsl r1, r1, #0x2 + str r0, [r6, r1] + sub r1, #0xc + ldr r0, [r6, r1] + mov r1, #0x0 + bl sub_0200A914 + mov r1, #0x47 + lsl r1, r1, #0x2 + str r0, [r6, r1] + mov r4, #0x0 + add r5, r6, #0x0 + add r7, r1, #0x4 +_020662CC: + mov r0, #0x43 + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + add r1, r4, #0x6 + bl sub_0200A914 + str r0, [r5, r7] + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x6 + blt _020662CC + pop {r3-r7, pc} + + thumb_func_start sub_020662E4 +sub_020662E4: ; 0x020662E4 + push {r3-r7, lr} + add r6, r0, #0x0 + mov r7, #0x12 + mov r4, #0x0 + add r5, r6, #0x0 + lsl r7, r7, #0x4 +_020662F0: + ldr r0, [r5, r7] + bl sub_02021A20 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x6 + blt _020662F0 + mov r0, #0x47 + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + bl sub_02021A20 + mov r0, #0x46 + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + bl sub_02021A20 + mov r0, #0x45 + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + bl sub_02021A20 + mov r0, #0x11 + lsl r0, r0, #0x4 + ldr r0, [r6, r0] + bl sub_0200AB18 + mov r0, #0x43 + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + bl sub_0200A8B8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02066334 +sub_02066334: ; 0x02066334 + push {r3-r4, lr} + sub sp, #0x14 + add r4, r0, #0x0 + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_020377A8 + mov r1, #0x17 + lsl r1, r1, #0x4 + str r0, [r4, r1] + ldrh r0, [r4, #0x14] + ldr r2, _020663C8 ; =0x000003E2 + mov r3, #0xa + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + str r0, [sp, #0x4] + ldr r0, [r4, r1] + mov r1, #0x3 + bl sub_0200CD68 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r2, _020663CC ; =0x000003D9 + str r0, [sp, #0x4] + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x3 + mov r3, #0xb + bl sub_0200CB00 + mov r1, #0x1a + ldr r2, [r4, #0x0] + mov r0, #0x0 + lsl r1, r1, #0x4 + bl sub_02002ED0 + mov r1, #0x6 + ldr r2, [r4, #0x0] + mov r0, #0x0 + lsl r1, r1, #0x6 + bl sub_02002EEC + mov r0, #0x13 + str r0, [sp, #0x0] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, _020663D0 ; =0x0000036D + mov r1, #0x17 + lsl r1, r1, #0x4 + str r0, [sp, #0x10] + ldr r0, [r4, r1] + add r1, #0x14 + add r1, r4, r1 + mov r2, #0x3 + mov r3, #0x2 + bl sub_02019064 + mov r0, #0x61 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x0 + bl sub_02019620 + add sp, #0x14 + pop {r3-r4, pc} + .balign 4 +_020663C8: .word 0x000003E2 +_020663CC: .word 0x000003D9 +_020663D0: .word 0x0000036D + + thumb_func_start sub_020663D4 +sub_020663D4: ; 0x020663D4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x61 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019570 + mov r0, #0x61 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019178 + mov r0, #0x61 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x0 + mov r2, #0x10 + blx sub_020CE34C + mov r0, #0x17 + mov r1, #0x0 + lsl r0, r0, #0x4 + str r1, [r4, r0] + pop {r4, pc} + + thumb_func_start sub_02066404 +sub_02066404: ; 0x02066404 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, [sp, #0x28] + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r0, #0x0 + beq _02066426 + mov r0, #0x61 + lsl r0, r0, #0x2 + ldr r2, _020664CC ; =0x000003E2 + add r0, r5, r0 + mov r1, #0x1 + mov r3, #0xa + bl sub_0200D0BC +_02066426: + mov r1, #0xd8 + str r1, [sp, #0x0] + mov r0, #0x20 + mov r2, #0x0 + add r1, #0xac + str r0, [sp, #0x4] + add r0, r5, r1 + mov r1, #0xff + add r3, r2, #0x0 + bl sub_020196F4 + mov r0, #0x1 + bl sub_02002B60 + mov r0, #0x0 + bl sub_02002B7C + cmp r4, #0x0 + bne _02066494 + mov r0, #0x45 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_02021A4C + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + mov r0, #0x11 + lsl r0, r0, #0x4 + ldrb r3, [r5, #0x18] + mov r2, #0xc + ldr r0, [r5, r0] + mul r2, r3 + add r2, r5, r2 + ldr r2, [r2, #0x24] + mov r1, #0x0 + mov r3, #0x2 + bl sub_0200ABB4 + mov r2, #0x11 + lsl r2, r2, #0x4 + lsl r3, r4, #0x2 + add r1, r2, #0x4 + ldr r0, [r5, r2] + add r3, r5, r3 + add r2, #0x10 + ldr r1, [r5, r1] + ldr r2, [r3, r2] + bl sub_0200B7B8 + mov r0, #0x45 + lsl r0, r0, #0x2 + ldr r2, [r5, r0] + b _0206649E +_02066494: + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x12 + lsl r0, r0, #0x4 + ldr r2, [r1, r0] +_0206649E: + mov r3, #0x0 + str r3, [sp, #0x0] + ldr r0, _020664D0 ; =0x0001020F + str r6, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x61 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + str r3, [sp, #0xc] + bl sub_0201BDE0 + mov r1, #0x4e + lsl r1, r1, #0x2 + strb r0, [r5, r1] + add r1, #0x4c + add r0, r5, r1 + bl sub_020191D0 + ldr r0, _020664D4 ; =0x00000139 + strb r7, [r5, r0] + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_020664CC: .word 0x000003E2 +_020664D0: .word 0x0001020F +_020664D4: .word 0x00000139 + + thumb_func_start sub_020664D8 +sub_020664D8: ; 0x020664D8 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x61 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + mov r0, #0x61 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019570 + pop {r4, pc} + + thumb_func_start sub_020664F4 +sub_020664F4: ; 0x020664F4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x4e + lsl r0, r0, #0x2 + ldrb r0, [r4, r0] + bl sub_0201BD70 + cmp r0, #0x0 + beq _0206650A + mov r0, #0x0 + pop {r4, pc} +_0206650A: + ldr r0, _0206651C ; =0x00000139 + ldrb r0, [r4, r0] + cmp r0, #0x0 + beq _02066518 + add r0, r4, #0x0 + bl sub_020664D8 +_02066518: + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0206651C: .word 0x00000139 + + thumb_func_start sub_02066520 +sub_02066520: ; 0x02066520 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, _02066544 ; =0x020F7E6C + str r0, [sp, #0x0] + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + ldr r2, _02066548 ; =0x000003D9 + mov r3, #0xb + bl sub_02002198 + mov r1, #0x5a + lsl r1, r1, #0x2 + str r0, [r4, r1] + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_02066544: .word 0x020F7E6C +_02066548: .word 0x000003D9 + + thumb_func_start sub_0206654C +sub_0206654C: ; 0x0206654C + push {r3, lr} + add r1, r0, #0x0 + mov r0, #0x5a + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + ldr r1, [r1, #0x0] + bl sub_020021AC + cmp r0, #0x0 + beq _0206656A + mov r1, #0x1 + mvn r1, r1 + cmp r0, r1 + beq _0206656E + b _02066572 +_0206656A: + mov r0, #0x1 + pop {r3, pc} +_0206656E: + mov r0, #0x0 + pop {r3, pc} +_02066572: + add r0, r1, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02066578 +sub_02066578: ; 0x02066578 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldrh r0, [r4, #0x12] + cmp r0, #0x0 + beq _0206658A + cmp r0, #0x1 + beq _020665A8 + b _020665BA +_0206658A: + mov r0, #0x6 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r4, #0x0] + add r2, r1, #0x0 + str r0, [sp, #0x8] + mov r0, #0x0 + add r3, r0, #0x0 + bl sub_0200E1D0 + ldrh r0, [r4, #0x12] + add r0, r0, #0x1 + strh r0, [r4, #0x12] + b _020665BA +_020665A8: + bl sub_0200E308 + cmp r0, #0x0 + beq _020665BA + mov r0, #0x0 + strh r0, [r4, #0x12] + add sp, #0xc + mov r0, #0x1 + pop {r3-r4, pc} +_020665BA: + mov r0, #0x0 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_020665C0 +sub_020665C0: ; 0x020665C0 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x12] + cmp r0, #0x0 + beq _020665D4 + cmp r0, #0x1 + beq _020665E6 + cmp r0, #0x2 + beq _02066614 + b _0206662E +_020665D4: + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0204649C + ldrh r0, [r4, #0x12] + add r0, r0, #0x1 + strh r0, [r4, #0x12] + b _0206662E +_020665E6: + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_020464A4 + cmp r0, #0x0 + beq _0206662E + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x5a + bl sub_0224C678 + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x5a + bl sub_0224C6E8 + ldrh r0, [r4, #0x12] + add r0, r0, #0x1 + strh r0, [r4, #0x12] + b _0206662E +_02066614: + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x5a + ldr r0, [r0, #0x50] + bl sub_021DA58C + cmp r0, #0x0 + beq _0206662E + mov r0, #0x0 + strh r0, [r4, #0x12] + mov r0, #0x1 + pop {r4, pc} +_0206662E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02066634 +sub_02066634: ; 0x02066634 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x5b + lsl r0, r0, #0x2 + add r4, r1, #0x0 + ldr r0, [r5, r0] + mov r1, #0x5a + bl sub_021DAF98 + cmp r4, #0x0 + bne _02066652 + add r0, r5, #0x0 + bl sub_02065EF8 + b _02066658 +_02066652: + add r0, r5, #0x0 + bl sub_02065F8C +_02066658: + add r0, r5, #0x0 + bl sub_020663D4 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02066664 +sub_02066664: ; 0x02066664 + push {r4-r6, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x12] + add r6, r1, #0x0 + cmp r0, #0x0 + beq _02066676 + cmp r0, #0x1 + beq _02066708 + b _0206671E +_02066676: + ldr r0, [r5, #0x0] + mov r1, #0x40 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x40 + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_020377AC + bl sub_0206BB1C + str r0, [r4, #0x0] + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_020377AC + bl sub_0206F158 + str r0, [r4, #0x4] + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_020377AC + bl sub_02023900 + str r0, [r4, #0xc] + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r0, [r0, #0xc] + bl sub_02025838 + str r0, [r4, #0x8] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x20 + strb r6, [r0, #0x0] + ldrb r1, [r5, #0x18] + mov r0, #0xc + mul r0, r1 + add r0, r5, r0 + ldrh r0, [r0, #0x22] + cmp r6, #0xb + strh r0, [r4, #0x24] + bne _020666EC + ldrb r1, [r5, #0x17] + add r0, r4, #0x0 + add r0, #0x22 + strb r1, [r0, #0x0] +_020666EC: + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r1, _02066724 ; =0x020F96DC + add r2, r4, #0x0 + bl sub_020373D4 + mov r0, #0x6d + lsl r0, r0, #0x2 + str r4, [r5, r0] + ldrh r0, [r5, #0x12] + add r0, r0, #0x1 + strh r0, [r5, #0x12] + b _0206671E +_02066708: + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_0204647C + cmp r0, #0x0 + bne _0206671E + mov r0, #0x0 + strh r0, [r5, #0x12] + mov r0, #0x1 + pop {r4-r6, pc} +_0206671E: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_02066724: .word 0x020F96DC + + thumb_func_start sub_02066728 +sub_02066728: ; 0x02066728 + push {r3-r5, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x12] + cmp r0, #0x0 + beq _02066738 + cmp r0, #0x1 + beq _0206677A + b _020667D0 +_02066738: + ldrb r2, [r4, #0x18] + mov r0, #0xc + mul r0, r2 + add r3, r4, r0 + ldrb r0, [r3, #0x1d] + cmp r0, #0x0 + beq _02066756 + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldr r3, [r4, #0x0] + mov r1, #0x0 + bl sub_02037F58 + b _0206676C +_02066756: + ldr r0, [r4, #0x0] + add r3, #0x21 + str r0, [sp, #0x0] + mov r0, #0x5b + lsl r0, r0, #0x2 + ldrb r2, [r4, #0x17] + ldrb r3, [r3, #0x0] + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02037F2C +_0206676C: + mov r1, #0x6a + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldrh r0, [r4, #0x12] + add r0, r0, #0x1 + strh r0, [r4, #0x12] + b _020667D0 +_0206677A: + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0204647C + cmp r0, #0x0 + bne _020667D0 + mov r0, #0x6a + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_020855E4 + cmp r0, #0x0 + beq _020667BC + ldrb r0, [r4, #0x18] + mov r2, #0xc + mov r3, #0x1 + add r1, r0, #0x0 + mul r1, r2 + add r0, r4, r1 + strb r3, [r0, #0x1d] + ldrb r3, [r4, #0x18] + mov r0, #0x6a + lsl r0, r0, #0x2 + mul r2, r3 + add r2, r4, r2 + ldrb r2, [r2, #0x1c] + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_020855E8 + mov r5, #0x2 + b _020667BE +_020667BC: + mov r5, #0x1 +_020667BE: + mov r0, #0x6a + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0208562C + mov r0, #0x0 + strh r0, [r4, #0x12] + add r0, r5, #0x0 + pop {r3-r5, pc} +_020667D0: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_020667D4 +sub_020667D4: ; 0x020667D4 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + cmp r1, #0x0 + beq _020667F2 + cmp r1, #0x1 + beq _02066802 + b _02066814 +_020667F2: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020653EC + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _02066814 +_02066802: + ldr r1, [r4, #0x0] + cmp r1, #0x0 + bne _0206680C + mov r0, #0x0 + pop {r3-r5, pc} +_0206680C: + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_02066814: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02066818 +sub_02066818: ; 0x02066818 + push {r4, lr} + bl sub_02046528 + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x8 + bl sub_020169D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + str r0, [r2, #0x4] + ldr r0, [r4, #0x10] + ldr r1, _0206683C ; =sub_020667D4 + bl sub_0204640C + pop {r4, pc} + nop +_0206683C: .word sub_020667D4 + 1 + + thumb_func_start sub_02066840 +sub_02066840: ; 0x02066840 + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + str r1, [sp, #0x0] + add r7, r2, #0x0 + bl sub_020238F4 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02029AFC + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0202A8D8 + str r0, [sp, #0x4] + add r0, r7, #0x0 + mov r1, #0x0 + mov r2, #0xe4 + blx sub_020CE34C + add r0, r4, #0x0 + bl sub_0202398C + add r1, r7, #0x0 + add r1, #0xa8 + mov r2, #0x10 + blx sub_020CE3E0 + add r0, r4, #0x0 + bl sub_020239BC + add r1, r7, #0x0 + add r1, #0xbc + str r0, [r1, #0x0] + ldr r0, _02066970 ; =0x020ECAC0 + ldrb r1, [r0, #0x0] + add r0, r7, #0x0 + add r0, #0xb8 + strb r1, [r0, #0x0] + ldr r0, _02066974 ; =0x020ECAC4 + ldrb r1, [r0, #0x0] + add r0, r7, #0x0 + add r0, #0xb9 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + bl sub_02029B38 + add r1, r7, #0x0 + add r1, #0xba + strb r0, [r1, #0x0] + add r0, r5, #0x0 + bl sub_02029B3C + add r1, r7, #0x0 + add r1, #0xbb + strb r0, [r1, #0x0] + add r0, r4, #0x0 + bl sub_020239CC + add r1, r7, #0x0 + add r1, #0xc8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1f + ldrb r1, [r1, #0x0] + mov r2, #0x2 + lsr r0, r0, #0x1e + bic r1, r2 + orr r1, r0 + add r0, r7, #0x0 + add r0, #0xc8 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_02023A28 + add r1, r0, #0x0 + add r0, r7, #0x0 + add r0, #0xc8 + ldrb r0, [r0, #0x0] + mov r2, #0x1 + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + bl sub_020536D0 + add r1, r7, #0x0 + add r1, #0xc9 + strb r0, [r1, #0x0] + add r0, r7, #0x0 + mov r4, #0x0 + str r0, [sp, #0x8] + add r0, #0xca + add r5, r4, #0x0 + str r0, [sp, #0x8] +_020668FC: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0202A5F4 + ldr r1, [sp, #0x8] + mov r2, #0x8 + add r1, r1, r5 + blx sub_020CE3E0 + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, #0x3 + blt _020668FC + add r0, r6, #0x0 + mov r1, #0x3 + bl sub_0202A5F4 + add r1, r7, #0x0 + add r1, #0xc0 + mov r2, #0x8 + blx sub_020CE3E0 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _02066956 + ldr r0, [sp, #0x4] + mov r1, #0x7 + mov r2, #0x0 + bl sub_0202A578 + add r1, r7, #0x0 + add r1, #0xe2 + strh r0, [r1, #0x0] + add r0, r7, #0x0 + add r0, #0xe2 + ldrh r0, [r0, #0x0] + cmp r0, #0x0 + beq _0206696C + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x0] + add r2, r7, #0x0 + bl sub_0202A498 + add sp, #0xc + pop {r4-r7, pc} +_02066956: + ldr r0, [sp, #0x4] + bl sub_0202A520 + add r1, r7, #0x0 + add r1, #0xe2 + strh r0, [r1, #0x0] + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x0] + add r2, r7, #0x0 + bl sub_0202A498 +_0206696C: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02066970: .word 0x020ECAC0 +_02066974: .word 0x020ECAC4 + + thumb_func_start sub_02066978 +sub_02066978: ; 0x02066978 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0xec + blx sub_020CE240 + add r0, r4, #0x0 + ldrh r2, [r4, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 + add r0, r4, #0x0 + ldr r2, [r4, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3A4 + pop {r4, pc} + + thumb_func_start sub_020669A0 +sub_020669A0: ; 0x020669A0 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x88 + blx sub_020CE240 + add r0, r4, #0x0 + ldrh r2, [r4, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 + pop {r4, pc} + + thumb_func_start sub_020669BC +sub_020669BC: ; 0x020669BC + mov r0, #0xec + bx lr + + thumb_func_start sub_020669C0 +sub_020669C0: ; 0x020669C0 + push {r4, lr} + mov r1, #0xec + bl sub_02016998 + add r4, r0, #0x0 + bl sub_02066978 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020669D4 +sub_020669D4: ; 0x020669D4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x4] + mov r4, #0x0 + lsl r1, r0, #0x1f + lsr r1, r1, #0x1f + bne _02066A1A + lsl r0, r0, #0x1e + mov r4, #0x1 + lsr r0, r0, #0x1f + beq _020669EE + bl sub_02020C2C +_020669EE: + ldrh r1, [r5, #0x4] + mov r0, #0x1 + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strh r0, [r5, #0x4] + ldrh r1, [r5, #0x4] + mov r0, #0x2 + orr r0, r1 + strh r0, [r5, #0x4] + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3D0 + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3D0 +_02066A1A: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02066A20 +sub_02066A20: ; 0x02066A20 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrh r2, [r5, #0x4] + mov r4, #0x0 + lsl r0, r2, #0x1f + lsr r0, r0, #0x1f + cmp r0, #0x1 + bne _02066A68 + cmp r1, #0x1 + bne _02066A68 + mov r0, #0x1 + bic r2, r0 + strh r2, [r5, #0x4] + ldrh r1, [r5, #0x4] + mov r0, #0x2 + mov r4, #0x1 + bic r1, r0 + strh r1, [r5, #0x4] + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3A4 + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3F8 + strh r0, [r5, #0x6] + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 +_02066A68: + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02066A6C +sub_02066A6C: ; 0x02066A6C + push {r4, lr} + add r2, r0, #0x0 + ldrh r1, [r2, #0x4] + mov r4, #0x0 + lsl r0, r1, #0x1e + lsr r0, r0, #0x1f + bne _02066A8E + mov r0, #0x2 + orr r0, r1 + strh r0, [r2, #0x4] + add r0, r2, #0x0 + ldrh r2, [r2, #0x6] + add r0, #0x8 + mov r1, #0x80 + mov r4, #0x1 + bl sub_0206A3D0 +_02066A8E: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02066A94 +sub_02066A94: ; 0x02066A94 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrh r2, [r5, #0x4] + mov r4, #0x0 + lsl r0, r2, #0x1e + lsr r0, r0, #0x1f + cmp r0, #0x1 + bne _02066AC8 + cmp r1, #0x1 + bne _02066AC8 + mov r0, #0x2 + bic r2, r0 + add r0, r5, #0x0 + strh r2, [r5, #0x4] + add r0, #0x8 + mov r1, #0x80 + mov r4, #0x1 + bl sub_0206A3F8 + strh r0, [r5, #0x6] + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 +_02066AC8: + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02066ACC +sub_02066ACC: ; 0x02066ACC + push {r0-r3} + push {r3-r6, lr} + sub sp, #0x2c + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r3, #0x0 + bl sub_02066978 + ldr r0, [sp, #0x50] + add r1, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x54] + add r3, r6, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x58] + str r0, [sp, #0x8] + ldr r0, [sp, #0x5c] + str r0, [sp, #0xc] + ldr r2, [sp, #0x48] + add r0, r5, #0x0 + bl sub_02066B64 + add r0, r5, #0x0 + add r0, #0x88 + mov r1, #0x64 + mov r2, #0x0 + bl sub_0206A3A4 + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3A4 + add r0, r5, #0x0 + mov r1, #0xa0 + add r2, sp, #0x48 + bl sub_02067830 + mov r0, #0x0 + bl sub_020256BC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xa9 + add r2, r4, #0x0 + bl sub_02067830 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x0 + str r0, [sp, #0x10] + add r0, r5, #0x0 + mov r1, #0xa1 + add r2, sp, #0x10 + bl sub_02067830 + mov r0, #0x0 + add r1, sp, #0x14 + mov r2, #0x18 + blx sub_020CE240 + add r0, r5, #0x0 + mov r1, #0xaa + add r2, sp, #0x14 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02066ED8 + add sp, #0x2c + pop {r3-r6} + pop {r3} + add sp, #0x10 + bx r3 + + thumb_func_start sub_02066B64 +sub_02066B64: ; 0x02066B64 + push {r0-r3} + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + bl sub_020669A0 + add r0, r5, #0x0 + bl sub_02066A6C + str r0, [sp, #0x0] + ldr r0, [sp, #0x30] + cmp r0, #0x0 + bne _02066B8E + bl sub_0201B9EC + add r4, r0, #0x0 + bl sub_0201B9EC + lsl r0, r0, #0x10 + orr r0, r4 + str r0, [sp, #0x34] +_02066B8E: + add r0, r5, #0x0 + mov r1, #0x0 + add r2, sp, #0x34 + bl sub_02067960 + ldr r0, [sp, #0x38] + cmp r0, #0x2 + bne _02066BD6 + ldr r7, _02066D84 ; =0xFFFF0000 + add r6, r7, #0x0 +_02066BA2: + bl sub_0201B9EC + add r4, r0, #0x0 + bl sub_0201B9EC + ldr r1, [sp, #0x34] + lsl r0, r0, #0x10 + add r3, r4, #0x0 + orr r3, r0 + lsl r0, r1, #0x10 + lsr r2, r0, #0x10 + add r0, r1, #0x0 + and r0, r7 + lsr r1, r0, #0x10 + add r0, r3, #0x0 + str r3, [sp, #0x3c] + and r0, r6 + lsl r3, r3, #0x10 + lsr r0, r0, #0x10 + lsr r3, r3, #0x10 + eor r0, r3 + eor r0, r1 + eor r0, r2 + cmp r0, #0x8 + blo _02066BA2 + b _02066BDE +_02066BD6: + cmp r0, #0x1 + beq _02066BDE + mov r0, #0x0 + str r0, [sp, #0x3c] +_02066BDE: + add r0, r5, #0x0 + mov r1, #0x7 + add r2, sp, #0x3c + bl sub_02067960 + ldr r2, _02066D88 ; =0x020ECAC4 + add r0, r5, #0x0 + mov r1, #0xc + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x5 + add r2, sp, #0x24 + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0xb2 + mov r2, #0x0 + bl sub_02067960 + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x28] + bl sub_02068758 + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0x8 + add r2, sp, #0x8 + bl sub_02067960 + ldr r0, [sp, #0x24] + mov r1, #0x14 + bl sub_02068678 + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0x9 + add r2, sp, #0x8 + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x9b + add r2, sp, #0x28 + bl sub_02067960 + ldr r2, _02066D8C ; =0x020ECAC0 + add r0, r5, #0x0 + mov r1, #0x79 + bl sub_02067960 + mov r0, #0x4 + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0x9a + add r2, sp, #0x8 + bl sub_02067960 + ldr r0, [sp, #0x2c] + cmp r0, #0x20 + bge _02066C94 + add r0, r5, #0x0 + mov r1, #0x46 + add r2, sp, #0x2c + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x47 + add r2, sp, #0x2c + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x48 + add r2, sp, #0x2c + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x49 + add r2, sp, #0x2c + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x4a + add r2, sp, #0x2c + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x4b + add r2, sp, #0x2c + bl sub_02067960 + b _02066D18 +_02066C94: + bl sub_0201B9EC + mov r1, #0x1f + str r0, [sp, #0x8] + and r0, r1 + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x46 + add r2, sp, #0x4 + bl sub_02067960 + mov r0, #0x3e + ldr r1, [sp, #0x8] + lsl r0, r0, #0x4 + and r0, r1 + lsr r0, r0, #0x5 + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x47 + add r2, sp, #0x4 + bl sub_02067960 + mov r0, #0x1f + ldr r1, [sp, #0x8] + lsl r0, r0, #0xa + and r0, r1 + lsr r0, r0, #0xa + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x48 + add r2, sp, #0x4 + bl sub_02067960 + bl sub_0201B9EC + mov r1, #0x1f + str r0, [sp, #0x8] + and r0, r1 + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x49 + add r2, sp, #0x4 + bl sub_02067960 + mov r0, #0x3e + ldr r1, [sp, #0x8] + lsl r0, r0, #0x4 + and r0, r1 + lsr r0, r0, #0x5 + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x4a + add r2, sp, #0x4 + bl sub_02067960 + mov r0, #0x1f + ldr r1, [sp, #0x8] + lsl r0, r0, #0xa + and r0, r1 + lsr r0, r0, #0xa + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x4b + add r2, sp, #0x4 + bl sub_02067960 +_02066D18: + ldr r0, [sp, #0x24] + mov r1, #0x18 + bl sub_02068678 + str r0, [sp, #0x8] + ldr r0, [sp, #0x24] + mov r1, #0x19 + bl sub_02068678 + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _02066D50 + ldr r1, [sp, #0x34] + mov r0, #0x1 + tst r0, r1 + beq _02066D44 + add r0, r5, #0x0 + mov r1, #0xa + add r2, sp, #0x4 + bl sub_02067960 + b _02066D5A +_02066D44: + add r0, r5, #0x0 + mov r1, #0xa + add r2, sp, #0x8 + bl sub_02067960 + b _02066D5A +_02066D50: + add r0, r5, #0x0 + mov r1, #0xa + add r2, sp, #0x8 + bl sub_02067960 +_02066D5A: + add r0, r5, #0x0 + bl sub_020689E8 + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0x6f + add r2, sp, #0x8 + bl sub_02067960 + add r0, r5, #0x0 + bl sub_020695F4 + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02066A94 + add sp, #0xc + pop {r4-r7} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4 +_02066D84: .word 0xFFFF0000 +_02066D88: .word 0x020ECAC4 +_02066D8C: .word 0x020ECAC0 + + thumb_func_start sub_02066D90 +sub_02066D90: ; 0x02066D90 + push {r3-r7, lr} + sub sp, #0x18 + str r2, [sp, #0x10] + str r3, [sp, #0x14] + ldr r4, [sp, #0x30] + add r6, r0, #0x0 + add r7, r1, #0x0 +_02066D9E: + bl sub_0201B9EC + add r5, r0, #0x0 + bl sub_0201B9EC + lsl r0, r0, #0x10 + orr r5, r0 + add r0, r5, #0x0 + bl sub_02068884 + cmp r4, r0 + bne _02066D9E + mov r0, #0x1 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + str r0, [sp, #0xc] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_02066ACC + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02066DD4 +sub_02066DD4: ; 0x02066DD4 + push {r4-r7, lr} + sub sp, #0x24 + str r1, [sp, #0x14] + str r2, [sp, #0x18] + str r3, [sp, #0x1c] + str r0, [sp, #0x10] + add r0, sp, #0x28 + ldrb r0, [r0, #0x18] + ldr r6, [sp, #0x38] + ldr r7, [sp, #0x3c] + cmp r0, #0x0 + beq _02066E4C + cmp r0, #0x1d + bhs _02066E4C + sub r0, r0, #0x1 + str r0, [sp, #0x20] +_02066DF4: + bl sub_0201B9EC + add r4, r0, #0x0 + bl sub_0201B9EC + lsl r0, r0, #0x10 + orr r4, r0 + mov r3, #0x3 + lsl r3, r3, #0x10 + and r3, r4 + mov r0, #0x3 + add r2, r4, #0x0 + and r2, r0 + lsl r0, r0, #0x8 + and r0, r4 + lsr r1, r0, #0x6 + mov r0, #0x3 + lsl r0, r0, #0x18 + and r0, r4 + lsr r0, r0, #0x12 + lsr r3, r3, #0xc + orr r0, r3 + orr r0, r1 + orr r0, r2 + mov r1, #0x1c + blx sub_020EBE8C + lsl r0, r1, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0x0 + bl sub_02068884 + cmp r7, r0 + bne _02066DF4 + ldr r0, [sp, #0x14] + add r1, r4, #0x0 + bl sub_02068A20 + cmp r6, r0 + bne _02066DF4 + ldr r0, [sp, #0x20] + cmp r5, r0 + bne _02066DF4 + b _02066E58 +_02066E4C: + ldr r0, [sp, #0x14] + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_02066E74 + add r4, r0, #0x0 +_02066E58: + mov r0, #0x1 + str r0, [sp, #0x0] + str r4, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x1c] + bl sub_02066ACC + add sp, #0x24 + pop {r4-r7, pc} + + thumb_func_start sub_02066E74 +sub_02066E74: ; 0x02066E74 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0x12 + add r4, r2, #0x0 + bl sub_02068678 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + beq _02066EA0 + cmp r0, #0xfe + beq _02066EA0 + cmp r0, #0xff + beq _02066EA0 + cmp r5, #0x0 + bne _02066EA0 + mov r1, #0x19 + blx sub_020EBC80 + add r1, r0, #0x1 + mov r0, #0x19 + mul r0, r1 + add r4, r0, r4 +_02066EA0: + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02066EA4 +sub_02066EA4: ; 0x02066EA4 + push {r0-r3} + push {r4, lr} + sub sp, #0x10 + mov r3, #0x1 + str r3, [sp, #0x0] + ldr r3, [sp, #0x28] + add r4, r0, #0x0 + str r3, [sp, #0x4] + mov r3, #0x0 + str r3, [sp, #0x8] + str r3, [sp, #0xc] + bl sub_02066ACC + add r0, r4, #0x0 + mov r1, #0xae + add r2, sp, #0x24 + bl sub_02067830 + add r0, r4, #0x0 + bl sub_02066ED8 + add sp, #0x10 + pop {r4} + pop {r3} + add sp, #0x10 + bx r3 + + thumb_func_start sub_02066ED8 +sub_02066ED8: ; 0x02066ED8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020669D4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_020687C0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0xa0 + add r2, sp, #0x0 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02066F04 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02066A20 + pop {r3-r5, pc} + + thumb_func_start sub_02066F04 +sub_02066F04: ; 0x02066F04 + push {r3-r7, lr} + sub sp, #0x58 + add r5, r0, #0x0 + bl sub_020669D4 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xa3 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x2c] + add r0, r5, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x54] + add r0, r5, #0x0 + mov r1, #0x46 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x30] + add r0, r5, #0x0 + mov r1, #0xd + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x34] + add r0, r5, #0x0 + mov r1, #0x47 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x28] + add r0, r5, #0x0 + mov r1, #0xe + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x14] + add r0, r5, #0x0 + mov r1, #0x48 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x24] + add r0, r5, #0x0 + mov r1, #0xf + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x10] + add r0, r5, #0x0 + mov r1, #0x49 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x20] + add r0, r5, #0x0 + mov r1, #0x10 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0xc] + add r0, r5, #0x0 + mov r1, #0x4a + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x1c] + add r0, r5, #0x0 + mov r1, #0x11 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0x4b + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x18] + add r0, r5, #0x0 + mov r1, #0x12 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x38] + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + add r7, r0, #0x0 + mov r0, #0x0 + mov r1, #0x2c + bl sub_02016998 + add r6, r0, #0x0 + ldr r1, [sp, #0x38] + add r0, r7, #0x0 + add r2, r6, #0x0 + bl sub_0206A380 + mov r0, #0x49 + lsl r0, r0, #0x2 + cmp r7, r0 + bne _02066FFC + mov r0, #0x1 + b _0206701E +_02066FFC: + ldr r0, [sp, #0x34] + asr r0, r0, #0x1 + lsr r1, r0, #0x1e + ldr r0, [sp, #0x34] + add r1, r0, r1 + asr r0, r1, #0x2 + ldrb r1, [r6, #0x0] + lsl r2, r1, #0x1 + ldr r1, [sp, #0x30] + add r1, r1, r2 + add r0, r0, r1 + mul r0, r4 + mov r1, #0x64 + blx sub_020EBC80 + add r0, r4, r0 + add r0, #0xa +_0206701E: + str r0, [sp, #0x50] + add r0, r5, #0x0 + mov r1, #0xa3 + add r2, sp, #0x50 + bl sub_02067830 + ldr r0, [sp, #0x14] + asr r0, r0, #0x1 + lsr r1, r0, #0x1e + ldr r0, [sp, #0x14] + add r1, r0, r1 + asr r0, r1, #0x2 + ldrb r1, [r6, #0x1] + lsl r2, r1, #0x1 + ldr r1, [sp, #0x28] + add r1, r1, r2 + add r0, r0, r1 + mul r0, r4 + mov r1, #0x64 + blx sub_020EBC80 + add r0, r0, #0x5 + str r0, [sp, #0x4c] + add r0, r5, #0x0 + bl sub_02068854 + ldr r1, [sp, #0x4c] + mov r2, #0x1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_02068894 + str r0, [sp, #0x4c] + add r0, r5, #0x0 + mov r1, #0xa4 + add r2, sp, #0x4c + bl sub_02067830 + ldr r0, [sp, #0x10] + asr r0, r0, #0x1 + lsr r1, r0, #0x1e + ldr r0, [sp, #0x10] + add r1, r0, r1 + asr r0, r1, #0x2 + ldrb r1, [r6, #0x2] + lsl r2, r1, #0x1 + ldr r1, [sp, #0x24] + add r1, r1, r2 + add r0, r0, r1 + mul r0, r4 + mov r1, #0x64 + blx sub_020EBC80 + add r0, r0, #0x5 + str r0, [sp, #0x48] + add r0, r5, #0x0 + bl sub_02068854 + ldr r1, [sp, #0x48] + mov r2, #0x2 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_02068894 + str r0, [sp, #0x48] + add r0, r5, #0x0 + mov r1, #0xa5 + add r2, sp, #0x48 + bl sub_02067830 + ldr r0, [sp, #0xc] + asr r0, r0, #0x1 + lsr r1, r0, #0x1e + ldr r0, [sp, #0xc] + add r1, r0, r1 + asr r0, r1, #0x2 + ldrb r1, [r6, #0x3] + lsl r2, r1, #0x1 + ldr r1, [sp, #0x20] + add r1, r1, r2 + add r0, r0, r1 + mul r0, r4 + mov r1, #0x64 + blx sub_020EBC80 + add r0, r0, #0x5 + str r0, [sp, #0x44] + add r0, r5, #0x0 + bl sub_02068854 + ldr r1, [sp, #0x44] + mov r2, #0x3 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_02068894 + str r0, [sp, #0x44] + add r0, r5, #0x0 + mov r1, #0xa6 + add r2, sp, #0x44 + bl sub_02067830 + ldr r0, [sp, #0x8] + asr r0, r0, #0x1 + lsr r1, r0, #0x1e + ldr r0, [sp, #0x8] + add r1, r0, r1 + asr r0, r1, #0x2 + ldrb r1, [r6, #0x4] + lsl r2, r1, #0x1 + ldr r1, [sp, #0x1c] + add r1, r1, r2 + add r0, r0, r1 + mul r0, r4 + mov r1, #0x64 + blx sub_020EBC80 + add r0, r0, #0x5 + str r0, [sp, #0x40] + add r0, r5, #0x0 + bl sub_02068854 + ldr r1, [sp, #0x40] + mov r2, #0x4 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_02068894 + str r0, [sp, #0x40] + add r0, r5, #0x0 + mov r1, #0xa7 + add r2, sp, #0x40 + bl sub_02067830 + ldr r0, [sp, #0x4] + asr r0, r0, #0x1 + lsr r1, r0, #0x1e + ldr r0, [sp, #0x4] + add r1, r0, r1 + asr r0, r1, #0x2 + ldrb r1, [r6, #0x5] + lsl r2, r1, #0x1 + ldr r1, [sp, #0x18] + add r1, r1, r2 + add r0, r0, r1 + mul r0, r4 + mov r1, #0x64 + blx sub_020EBC80 + add r0, r0, #0x5 + str r0, [sp, #0x3c] + add r0, r5, #0x0 + bl sub_02068854 + ldr r1, [sp, #0x3c] + mov r2, #0x5 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_02068894 + str r0, [sp, #0x3c] + add r0, r5, #0x0 + mov r1, #0xa8 + add r2, sp, #0x3c + bl sub_02067830 + add r0, r6, #0x0 + bl sub_02016A18 + ldr r1, [sp, #0x54] + cmp r1, #0x0 + bne _0206717C + ldr r0, [sp, #0x2c] + cmp r0, #0x0 + bne _020671A0 +_0206717C: + mov r0, #0x49 + lsl r0, r0, #0x2 + cmp r7, r0 + bne _0206718A + mov r0, #0x1 + str r0, [sp, #0x54] + b _020671A0 +_0206718A: + cmp r1, #0x0 + bne _02067194 + ldr r0, [sp, #0x50] + str r0, [sp, #0x54] + b _020671A0 +_02067194: + ldr r1, [sp, #0x50] + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0x54] + sub r0, r1, r0 + add r0, r2, r0 + str r0, [sp, #0x54] +_020671A0: + ldr r0, [sp, #0x54] + cmp r0, #0x0 + beq _020671B0 + add r0, r5, #0x0 + mov r1, #0xa2 + add r2, sp, #0x54 + bl sub_02067830 +_020671B0: + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02066A20 + add sp, #0x58 + pop {r3-r7, pc} + + thumb_func_start sub_020671BC +sub_020671BC: ; 0x020671BC + push {r4-r6, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bne _02067204 + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3D0 + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3D0 + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3F8 + ldrh r1, [r5, #0x6] + cmp r0, r1 + beq _02067204 + cmp r0, r1 + beq _020671FC + bl sub_02020C2C +_020671FC: + ldrh r1, [r5, #0x4] + mov r0, #0x4 + orr r0, r1 + strh r0, [r5, #0x4] +_02067204: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02067234 + add r4, r0, #0x0 + ldrh r0, [r5, #0x4] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bne _02067230 + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3A4 + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 +_02067230: + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02067234 +sub_02067234: ; 0x02067234 + push {r3, lr} + add r3, r1, #0x0 + sub r3, #0x9f + cmp r3, #0xb + bhi _020672B6 + add r3, r3, r3 + add r3, pc + ldrh r3, [r3, #0x6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 + lsl r6, r2, #0 + lsl r4, r3, #0 + lsl r2, r4, #0 + lsl r0, r5, #0 + lsl r6, r5, #0 + lsl r4, r6, #0 + lsl r2, r7, #0 + lsl r0, r0, #0x1 + lsl r6, r0, #0x1 + lsl r4, r1, #0x1 + lsl r2, r2, #0x1 + lsl r6, r3, #0x1 + add r0, #0x88 + ldr r0, [r0, #0x0] + pop {r3, pc} +_02067268: + .byte 0x8C, 0x30, 0x00, 0x78, 0x08, 0xBD, 0x8D, 0x30 + .byte 0x00, 0x78, 0x08, 0xBD, 0x8E, 0x30, 0x00, 0x88, 0x08, 0xBD, 0x90, 0x30, 0x00, 0x88, 0x08, 0xBD + .byte 0x92, 0x30, 0x00, 0x88, 0x08, 0xBD, 0x94, 0x30, 0x00, 0x88, 0x08, 0xBD, 0x96, 0x30, 0x00, 0x88 + .byte 0x08, 0xBD, 0x98, 0x30, 0x00, 0x88, 0x08, 0xBD, 0x9A, 0x30, 0x00, 0x88, 0x08, 0xBD, 0x9C, 0x30 + .byte 0x11, 0x1C, 0xBE, 0xF7, 0x15, 0xFA, 0x01, 0x20, 0x08, 0xBD, 0xD4, 0x30, 0x11, 0x1C, 0xC2, 0xF7 + .byte 0xE1, 0xFC, 0x01, 0x20, 0x08, 0xBD +_020672B6: + bl sub_0206731C + pop {r3, pc} + + thumb_func_start sub_020672BC +sub_020672BC: ; 0x020672BC + push {r4-r6, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + bne _020672F8 + ldrh r2, [r5, #0x6] + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3D0 + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3F8 + ldrh r1, [r5, #0x6] + cmp r0, r1 + beq _020672F8 + cmp r0, r1 + beq _020672F0 + bl sub_02020C2C +_020672F0: + ldrh r1, [r5, #0x4] + mov r0, #0x4 + orr r0, r1 + strh r0, [r5, #0x4] +_020672F8: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0206731C + add r4, r0, #0x0 + ldrh r0, [r5, #0x4] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + bne _02067318 + ldrh r2, [r5, #0x6] + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 +_02067318: + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0206731C +sub_0206731C: ; 0x0206731C + push {r4-r7, lr} + sub sp, #0xc + str r1, [sp, #0x4] + add r1, r0, #0x0 + mov r4, #0x0 + str r2, [sp, #0x8] + ldr r1, [r1, #0x0] + str r0, [sp, #0x0] + add r2, r4, #0x0 + bl sub_0206A418 + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + mov r2, #0x1 + add r1, r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_0206A418 + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + mov r2, #0x2 + add r1, r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_0206A418 + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + mov r2, #0x3 + add r1, r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_0206A418 + add r1, r0, #0x0 + ldr r0, [sp, #0x4] + cmp r0, #0xb2 + bls _02067366 + b _020674D8 +_02067366: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r5, #0x5 + lsl r6, r5, #0x5 + lsl r0, r7, #0x5 + lsl r2, r0, #0x6 + lsl r4, r1, #0x6 + lsl r0, r3, #0x7 + lsl r2, r5, #0x7 + lsl r6, r5, #0x7 + lsl r2, r6, #0x7 + lsl r6, r6, #0x7 + lsl r2, r7, #0x7 + lsl r6, r7, #0x7 + lsl r2, r0, #0x8 + lsl r6, r0, #0x8 + lsl r2, r1, #0x8 + lsl r6, r1, #0x8 + lsl r2, r2, #0x8 + lsl r6, r2, #0x8 + lsl r2, r3, #0x8 + lsl r6, r3, #0x8 + lsl r2, r4, #0x8 + lsl r6, r4, #0x8 + lsl r2, r5, #0x8 + lsl r6, r5, #0x8 + lsl r2, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r6, r6, #0x8 + lsl r4, r3, #0x9 + lsl r4, r3, #0x9 + lsl r4, r3, #0x9 + lsl r4, r3, #0x9 + lsl r0, r5, #0x9 + lsl r0, r5, #0x9 + lsl r0, r5, #0x9 + lsl r0, r5, #0x9 + lsl r4, r6, #0x9 + lsl r4, r6, #0x9 + lsl r4, r6, #0x9 + lsl r4, r6, #0x9 + lsl r0, r0, #0xa + lsl r0, r0, #0xa + lsl r0, r0, #0xa + lsl r0, r0, #0xa + lsl r0, r3, #0xa + lsl r0, r4, #0xa + lsl r0, r5, #0xa + lsl r0, r6, #0xa + lsl r0, r7, #0xa + lsl r0, r0, #0xb + lsl r0, r1, #0xb + lsl r2, r3, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r4, #0xb + lsl r0, r1, #0xc + lsl r0, r2, #0xc + lsl r0, r3, #0xc + lsl r0, r4, #0xc + lsl r4, r4, #0xc + lsl r4, r4, #0x5 + lsl r0, r5, #0xc + lsl r4, r4, #0x5 + lsl r4, r3, #0xd + lsl r0, r3, #0xd + lsl r2, r1, #0xe + lsl r6, r1, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r2, r2, #0xe + lsl r0, r7, #0xe + lsl r2, r2, #0xf + lsl r2, r3, #0xf + lsl r6, r3, #0xf + lsl r2, r4, #0xf + lsl r6, r4, #0xf + lsl r2, r5, #0xf + lsl r6, r5, #0xf + lsl r2, r6, #0xf + lsl r6, r6, #0xf + lsl r2, r7, #0xf + lsl r6, r7, #0xf + lsl r2, r0, #0x10 + lsl r2, r1, #0x10 + lsl r2, r2, #0x10 + lsl r6, r2, #0x10 + lsl r4, r4, #0x5 + lsl r4, r1, #0x7 + lsl r4, r4, #0x5 + lsl r4, r4, #0x5 + lsl r4, r4, #0x5 + lsl r4, r4, #0x5 + lsl r4, r4, #0x5 + lsl r4, r4, #0x5 + lsl r4, r4, #0x5 + lsl r4, r4, #0x5 + lsl r4, r4, #0x5 + lsl r4, r4, #0x5 + lsl r2, r2, #0x6 + lsl r4, r3, #0x6 + lsl r6, r5, #0x6 + lsl r2, r3, #0x10 + lsl r4, r1, #0x11 + lsl r4, r4, #0x11 + lsl r4, r4, #0x11 + lsl r4, r3, #0x12 +_020674D8: + mov r4, #0x0 + b _0206781A +_020674DC: + .byte 0x00, 0x98, 0x04, 0x68 + .byte 0x9B, 0xE1, 0x00, 0x98, 0x80, 0x88, 0xC0, 0x07, 0xC4, 0x0F, 0x96, 0xE1, 0x00, 0x98, 0x80, 0x88 + .byte 0x80, 0x07, 0xC4, 0x0F, 0x91, 0xE1, 0x00, 0x98, 0x80, 0x88, 0x40, 0x07, 0xC4, 0x0F, 0x8C, 0xE1 + .byte 0x00, 0x98, 0xC4, 0x88, 0x89, 0xE1, 0x28, 0x88, 0x00, 0x28, 0x16, 0xD0, 0x01, 0x24, 0x84, 0xE1 + .byte 0x00, 0x98, 0x80, 0x88, 0x40, 0x07, 0xC4, 0x0F, 0x0F, 0xD1, 0x30, 0x69, 0x40, 0x00, 0xC4, 0x0F + .byte 0x7B, 0xE1, 0x2C, 0x88, 0x00, 0x2C, 0x08, 0xD0, 0x30, 0x69, 0x40, 0x00, 0xC0, 0x0F, 0x05, 0xD1 + .byte 0x00, 0x98, 0x80, 0x88, 0x40, 0x07, 0xC0, 0x0F, 0x00, 0xD1, 0x6E, 0xE1, 0xB8, 0x4C, 0x6C, 0xE1 + .byte 0x28, 0x88, 0xA9, 0x68, 0x01, 0xF0, 0x5C, 0xF9, 0x04, 0x1C, 0x66, 0xE1, 0x00, 0x98, 0x80, 0x88 + .byte 0x40, 0x07, 0xC0, 0x0F, 0x01, 0xD0, 0xB2, 0x4C, 0x5F, 0xE1, 0x2C, 0x88, 0x5D, 0xE1, 0x6C, 0x88 + .byte 0x5B, 0xE1, 0x6C, 0x68, 0x59, 0xE1, 0xAC, 0x68, 0x57, 0xE1, 0x2C, 0x7B, 0x55, 0xE1, 0x6C, 0x7B + .byte 0x53, 0xE1, 0xAC, 0x7B, 0x51, 0xE1, 0xEC, 0x7B, 0x4F, 0xE1, 0x2C, 0x7C, 0x4D, 0xE1, 0x6C, 0x7C + .byte 0x4B, 0xE1, 0xAC, 0x7C, 0x49, 0xE1, 0xEC, 0x7C, 0x47, 0xE1, 0x2C, 0x7D, 0x45, 0xE1, 0x6C, 0x7D + .byte 0x43, 0xE1, 0xAC, 0x7D, 0x41, 0xE1, 0xEC, 0x7D, 0x3F, 0xE1, 0x2C, 0x7E, 0x3D, 0xE1, 0x6C, 0x7E + .byte 0x3B, 0xE1, 0xAC, 0x7E, 0x39, 0xE1, 0xEC, 0x7E, 0x37, 0xE1, 0x01, 0x9A, 0x01, 0x20, 0x19, 0x3A + .byte 0x21, 0x1C, 0x01, 0x92, 0x84, 0xF0, 0x4C, 0xEB, 0xEA, 0x69, 0x23, 0x1C, 0x0B, 0x40, 0x02, 0x40 + .byte 0x00, 0x21, 0x00, 0x20, 0x59, 0x40, 0x50, 0x40, 0x08, 0x43, 0x54, 0xD0, 0x01, 0x24, 0x24, 0xE1 + .byte 0x01, 0x98, 0x36, 0x38, 0x01, 0x90, 0x40, 0x00, 0x34, 0x5A, 0x1E, 0xE1, 0x01, 0x98, 0x3A, 0x38 + .byte 0x01, 0x90, 0x30, 0x18, 0x04, 0x7A, 0x18, 0xE1, 0x01, 0x98, 0x3E, 0x38, 0x01, 0x90, 0x30, 0x18 + .byte 0x04, 0x7B, 0x12, 0xE1, 0x01, 0x98, 0x42, 0x38, 0x01, 0x90, 0x01, 0x99, 0x40, 0x00, 0x71, 0x18 + .byte 0x30, 0x5A, 0x09, 0x7B, 0x03, 0xF0, 0x94, 0xFA, 0x04, 0x1C, 0x06, 0xE1, 0x30, 0x69, 0xC0, 0x06 + .byte 0xC4, 0x0E, 0x02, 0xE1, 0x30, 0x69, 0x80, 0x05, 0xC4, 0x0E, 0xFE, 0xE0, 0x30, 0x69, 0x40, 0x04 + .byte 0xC4, 0x0E, 0xFA, 0xE0, 0x30, 0x69, 0x00, 0x03, 0xC4, 0x0E, 0xF6, 0xE0, 0x30, 0x69, 0xC0, 0x01 + .byte 0xC4, 0x0E, 0xF2, 0xE0, 0x30, 0x69, 0x80, 0x00, 0xC4, 0x0E, 0xEE, 0xE0, 0x00, 0x98, 0x80, 0x88 + .byte 0x40, 0x07, 0xC4, 0x0F, 0x17, 0xD1, 0x30, 0x69, 0x40, 0x00, 0xC4, 0x0F, 0xE5, 0xE0, 0x30, 0x69 + .byte 0xC4, 0x0F, 0xE2, 0xE0, 0x01, 0x9A, 0x01, 0x20, 0x4E, 0x3A, 0x21, 0x1C, 0x01, 0x92, 0x84, 0xF0 + .byte 0xF8, 0xEA, 0x72, 0x69, 0x23, 0x1C, 0x0B, 0x40, 0x02, 0x40, 0x00, 0x21, 0x00, 0x20, 0x59, 0x40 + .byte 0x50, 0x40, 0x08, 0x43, 0x00, 0xD1, 0xD0, 0xE0, 0x01, 0x24, 0xCE, 0xE0, 0x30, 0x7E, 0xC0, 0x07 + .byte 0xC4, 0x0F, 0xCA, 0xE0, 0x30, 0x7E, 0x40, 0x07, 0x84, 0x0F, 0xC6, 0xE0, 0x30, 0x7E, 0x00, 0x06 + .byte 0xC4, 0x0E, 0xC2, 0xE0, 0x74, 0x7E, 0xC0, 0xE0, 0x74, 0x8B, 0xBE, 0xE0, 0x00, 0x98, 0x80, 0x88 + .byte 0x40, 0x07, 0xC0, 0x0F, 0x05, 0xD0, 0x5F, 0x48, 0x02, 0x9A, 0x21, 0x1C, 0xA3, 0xF7, 0x76, 0xF9 + .byte 0xB3, 0xE0, 0x02, 0x99, 0x38, 0x88, 0x64, 0x1C, 0xBF, 0x1C, 0x08, 0x80, 0x89, 0x1C, 0x0A, 0x2C + .byte 0xF8, 0xD3, 0x59, 0x4A, 0x02, 0x98, 0x61, 0x00, 0x42, 0x52, 0xA6, 0xE0, 0x30, 0x69, 0xC4, 0x0F + .byte 0x00, 0x98, 0x80, 0x88, 0x40, 0x07, 0xC0, 0x0F, 0x0C, 0xD0, 0x52, 0x48, 0x00, 0x21, 0xA3, 0xF7 + .byte 0xB7, 0xF9, 0x05, 0x1C, 0x02, 0x98, 0x29, 0x1C, 0xBA, 0xF7, 0xC4, 0xF9, 0x28, 0x1C, 0xBA, 0xF7 + .byte 0x97, 0xF9, 0x92, 0xE0, 0x02, 0x98, 0x39, 0x1C, 0xBA, 0xF7, 0x96, 0xFB, 0x8D, 0xE0, 0xBC, 0x7D + .byte 0x8B, 0xE0, 0xFC, 0x7D, 0x89, 0xE0, 0x01, 0x9A, 0x01, 0x20, 0x7A, 0x3A, 0x21, 0x1C, 0x01, 0x92 + .byte 0x84, 0xF0, 0x9E, 0xEA, 0xBB, 0x69, 0xFA, 0x69, 0x03, 0x40, 0x0A, 0x40, 0x00, 0x21, 0x00, 0x20 + .byte 0x51, 0x40, 0x58, 0x40, 0x08, 0x43, 0x78, 0xD0, 0x01, 0x24, 0x76, 0xE0, 0x02, 0x9A, 0x08, 0x88 + .byte 0x64, 0x1C, 0x89, 0x1C, 0x10, 0x80, 0x92, 0x1C, 0x07, 0x2C, 0xF8, 0xD3, 0x3A, 0x4A, 0x02, 0x98 + .byte 0x61, 0x00, 0x42, 0x52, 0x69, 0xE0, 0x02, 0x98, 0xBA, 0xF7, 0x6E, 0xFB, 0x65, 0xE0, 0x0C, 0x7C + .byte 0x63, 0xE0, 0x4C, 0x7C, 0x61, 0xE0, 0x8C, 0x7C, 0x5F, 0xE0, 0xCC, 0x7C, 0x5D, 0xE0, 0x0C, 0x7D + .byte 0x5B, 0xE0, 0x4C, 0x7D, 0x59, 0xE0, 0xCC, 0x8A, 0x57, 0xE0, 0x0C, 0x8B, 0x55, 0xE0, 0x8C, 0x7E + .byte 0x53, 0xE0, 0xCC, 0x7E, 0x51, 0xE0, 0x08, 0x7F, 0x40, 0x06, 0x44, 0x0E, 0x4D, 0xE0, 0x08, 0x7F + .byte 0x00, 0x06, 0xC4, 0x0F, 0x49, 0xE0, 0x4C, 0x7F, 0x47, 0xE0, 0xCC, 0x8B, 0x45, 0xE0, 0x34, 0x69 + .byte 0xA0, 0x00, 0xC0, 0x0E, 0x45, 0x06, 0xE0, 0x01, 0xC0, 0x0E, 0x03, 0x05, 0x20, 0x03, 0xC0, 0x0E + .byte 0xC2, 0x03, 0x60, 0x04, 0xC0, 0x0E, 0x81, 0x02, 0xE0, 0x06, 0xA4, 0x05, 0xE4, 0x0E, 0xC0, 0x0E + .byte 0x64, 0x01, 0x20, 0x43, 0x08, 0x43, 0x10, 0x43, 0x18, 0x43, 0x2C, 0x1C, 0x04, 0x43, 0x2C, 0xE0 + .byte 0x28, 0x88, 0x1D, 0x28, 0x01, 0xD0, 0x20, 0x28, 0x04, 0xD1, 0x30, 0x69, 0xC0, 0x0F, 0x01, 0xD1 + .byte 0x00, 0x24, 0x22, 0xE0, 0x01, 0x24, 0x20, 0xE0, 0x28, 0x88, 0x14, 0x49, 0x88, 0x42, 0x0D, 0xD1 + .byte 0x69, 0x7B, 0x79, 0x29, 0x0A, 0xD1, 0x68, 0x88, 0x01, 0x21, 0x22, 0x1C, 0x06, 0xF0, 0xE4, 0xFF + .byte 0x00, 0x04, 0x00, 0x0C, 0x02, 0xF0, 0x96, 0xFB, 0x04, 0x1C, 0x0E, 0xE0, 0x31, 0x7E, 0x01, 0x9A + .byte 0x09, 0x06, 0xAA, 0x3A, 0xC9, 0x0E, 0x01, 0x92, 0x00, 0xF0, 0x24, 0xFF, 0x04, 0x1C, 0x04, 0xE0 + .byte 0x28, 0x88, 0x02, 0x9A, 0x21, 0x1C, 0xA3, 0xF7, 0xC1, 0xF8 +_0206781A: + add r0, r4, #0x0 + add sp, #0xc + pop {r4-r7, pc} +_02067820: + .byte 0xEE, 0x01, 0x00, 0x00, 0xEF, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xED, 0x01, 0x00, 0x00 + + thumb_func_start sub_02067830 +sub_02067830: ; 0x02067830 + push {r4-r6, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bne _02067886 + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3D0 + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3D0 + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3F8 + ldrh r1, [r5, #0x6] + cmp r0, r1 + beq _02067886 + cmp r0, r1 + beq _02067870 + bl sub_02020C2C +_02067870: + ldrh r1, [r5, #0x4] + mov r0, #0x4 + orr r0, r1 + strh r0, [r5, #0x4] + ldrh r2, [r5, #0x6] + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 + pop {r4-r6, pc} +_02067886: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020678C0 + ldrh r0, [r5, #0x4] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bne _020678BC + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3A4 + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3F8 + strh r0, [r5, #0x6] + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 +_020678BC: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020678C0 +sub_020678C0: ; 0x020678C0 + push {r3, lr} + add r3, r0, #0x0 + add r0, r1, #0x0 + sub r0, #0x9f + cmp r0, #0xb + bhi _02067958 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r2, #0 + lsl r6, r3, #0 + lsl r6, r4, #0 + lsl r6, r5, #0 + lsl r6, r6, #0 + lsl r6, r7, #0 + lsl r6, r0, #0x1 + lsl r6, r1, #0x1 + lsl r6, r2, #0x1 + lsl r6, r3, #0x1 + lsl r6, r4, #0x1 + lsl r2, r6, #0x1 + ldr r0, [r2, #0x0] + add r3, #0x88 + str r0, [r3, #0x0] + pop {r3, pc} +_020678F8: + .byte 0x10, 0x78, 0x8C, 0x33, 0x18, 0x70, 0x08, 0xBD + .byte 0x10, 0x78, 0x8D, 0x33, 0x18, 0x70, 0x08, 0xBD, 0x10, 0x88, 0x8E, 0x33, 0x18, 0x80, 0x08, 0xBD + .byte 0x10, 0x88, 0x90, 0x33, 0x18, 0x80, 0x08, 0xBD, 0x10, 0x88, 0x92, 0x33, 0x18, 0x80, 0x08, 0xBD + .byte 0x10, 0x88, 0x94, 0x33, 0x18, 0x80, 0x08, 0xBD, 0x10, 0x88, 0x96, 0x33, 0x18, 0x80, 0x08, 0xBD + .byte 0x10, 0x88, 0x98, 0x33, 0x18, 0x80, 0x08, 0xBD, 0x10, 0x88, 0x9A, 0x33, 0x18, 0x80, 0x08, 0xBD + .byte 0x9C, 0x33, 0x10, 0x1C, 0x19, 0x1C, 0xBD, 0xF7, 0xC3, 0xFE, 0x08, 0xBD, 0xD4, 0x33, 0x10, 0x1C + .byte 0x19, 0x1C, 0xC2, 0xF7, 0x8F, 0xF9, 0x08, 0xBD +_02067958: + add r0, r3, #0x0 + bl sub_020679D8 + pop {r3, pc} + + thumb_func_start sub_02067960 +sub_02067960: ; 0x02067960 + push {r4-r6, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + bne _020679AA + ldrh r2, [r5, #0x6] + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3D0 + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3F8 + ldrh r1, [r5, #0x6] + cmp r0, r1 + beq _020679AA + cmp r0, r1 + beq _02067994 + bl sub_02020C2C +_02067994: + ldrh r1, [r5, #0x4] + mov r0, #0x4 + orr r0, r1 + strh r0, [r5, #0x4] + ldrh r2, [r5, #0x6] + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 + pop {r4-r6, pc} +_020679AA: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020679D8 + ldrh r0, [r5, #0x4] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + bne _020679D4 + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3F8 + strh r0, [r5, #0x6] + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 +_020679D4: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020679D8 +sub_020679D8: ; 0x020679D8 + push {r4-r7, lr} + sub sp, #0x4c + str r1, [sp, #0x4] + add r1, r0, #0x0 + add r4, r2, #0x0 + ldr r1, [r1, #0x0] + str r0, [sp, #0x0] + mov r2, #0x0 + bl sub_0206A418 + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + mov r2, #0x1 + add r1, r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_0206A418 + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + mov r2, #0x2 + add r1, r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_0206A418 + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + mov r2, #0x3 + add r1, r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_0206A418 + add r1, r0, #0x0 + ldr r0, [sp, #0x4] + cmp r0, #0xb2 + bls _02067A20 + b _02067FF6 +_02067A20: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r4, #0x5 + lsl r6, r5, #0x5 + lsl r4, r1, #0x6 + lsl r0, r5, #0x6 + lsl r0, r0, #0x7 + lsl r2, r1, #0x7 + lsl r2, r2, #0x7 + lsl r2, r3, #0x7 + lsl r2, r4, #0x7 + lsl r2, r5, #0x7 + lsl r2, r6, #0x7 + lsl r2, r7, #0x7 + lsl r2, r0, #0x8 + lsl r2, r1, #0x8 + lsl r2, r2, #0x8 + lsl r2, r3, #0x8 + lsl r2, r4, #0x8 + lsl r2, r5, #0x8 + lsl r2, r6, #0x8 + lsl r2, r7, #0x8 + lsl r2, r0, #0x9 + lsl r2, r1, #0x9 + lsl r2, r2, #0x9 + lsl r2, r3, #0x9 + lsl r2, r4, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r2, r5, #0x9 + lsl r0, r3, #0xa + lsl r0, r3, #0xa + lsl r0, r3, #0xa + lsl r0, r3, #0xa + lsl r0, r5, #0xa + lsl r0, r5, #0xa + lsl r0, r5, #0xa + lsl r0, r5, #0xa + lsl r0, r7, #0xa + lsl r0, r7, #0xa + lsl r0, r7, #0xa + lsl r0, r7, #0xa + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0xb + lsl r4, r3, #0xb + lsl r0, r6, #0xb + lsl r4, r0, #0xc + lsl r0, r3, #0xc + lsl r4, r5, #0xc + lsl r0, r0, #0xd + lsl r4, r2, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r6, r4, #0xd + lsl r4, r2, #0xe + lsl r0, r5, #0xe + lsl r4, r7, #0xe + lsl r0, r2, #0xf + lsl r0, r3, #0xf + lsl r0, r1, #0x17 + lsl r6, r7, #0xf + lsl r0, r4, #0xf + lsl r6, r7, #0x10 + lsl r2, r2, #0x10 + lsl r4, r1, #0x11 + lsl r4, r2, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r4, r3, #0x11 + lsl r0, r4, #0x12 + lsl r4, r6, #0x12 + lsl r0, r0, #0x13 + lsl r0, r1, #0x13 + lsl r0, r2, #0x13 + lsl r0, r3, #0x13 + lsl r0, r4, #0x13 + lsl r0, r5, #0x13 + lsl r0, r6, #0x13 + lsl r0, r7, #0x13 + lsl r0, r0, #0x14 + lsl r0, r1, #0x14 + lsl r0, r2, #0x14 + lsl r4, r4, #0x14 + lsl r0, r7, #0x14 + lsl r0, r0, #0x15 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x15 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r1, #0x17 + lsl r0, r6, #0x16 + ldr r0, [sp, #0x0] + ldr r1, [r4, #0x0] + add sp, #0x4c + str r1, [r0, #0x0] + pop {r4-r7, pc} +_02067B9C: + .byte 0xB9, 0xF7, 0x46, 0xF8 + .byte 0x00, 0x98, 0x21, 0x78, 0x82, 0x88, 0x01, 0x20, 0x82, 0x43, 0x01, 0x20, 0x08, 0x40, 0x11, 0x1C + .byte 0x01, 0x43, 0x00, 0x98, 0x13, 0xB0, 0x81, 0x80, 0xF0, 0xBD, 0xB9, 0xF7, 0x37, 0xF8, 0x00, 0x98 + .byte 0x81, 0x88, 0x02, 0x20, 0x81, 0x43, 0x20, 0x78, 0xC0, 0x07, 0x80, 0x0F, 0x01, 0x43, 0x00, 0x98 + .byte 0x13, 0xB0, 0x81, 0x80, 0xF0, 0xBD, 0x00, 0x98, 0x81, 0x88, 0x04, 0x20, 0x81, 0x43, 0x20, 0x78 + .byte 0xC0, 0x07, 0x40, 0x0F, 0x01, 0x43, 0x00, 0x98, 0x13, 0xB0, 0x81, 0x80, 0xF0, 0xBD, 0x21, 0x88 + .byte 0x00, 0x98, 0x13, 0xB0, 0xC1, 0x80, 0xF0, 0xBD, 0x20, 0x88, 0x13, 0xB0, 0x38, 0x80, 0xF0, 0xBD + .byte 0x20, 0x88, 0x13, 0xB0, 0x78, 0x80, 0xF0, 0xBD, 0x20, 0x68, 0x13, 0xB0, 0x78, 0x60, 0xF0, 0xBD + .byte 0x20, 0x68, 0x13, 0xB0, 0xB8, 0x60, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0x38, 0x73, 0xF0, 0xBD + .byte 0x20, 0x78, 0x13, 0xB0, 0x78, 0x73, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0xB8, 0x73, 0xF0, 0xBD + .byte 0x20, 0x78, 0x13, 0xB0, 0xF8, 0x73, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0x38, 0x74, 0xF0, 0xBD + .byte 0x20, 0x78, 0x13, 0xB0, 0x78, 0x74, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0xB8, 0x74, 0xF0, 0xBD + .byte 0x20, 0x78, 0x13, 0xB0, 0xF8, 0x74, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0x38, 0x75, 0xF0, 0xBD + .byte 0x20, 0x78, 0x13, 0xB0, 0x78, 0x75, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0xB8, 0x75, 0xF0, 0xBD + .byte 0x20, 0x78, 0x13, 0xB0, 0xF8, 0x75, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0x38, 0x76, 0xF0, 0xBD + .byte 0x20, 0x78, 0x13, 0xB0, 0x78, 0x76, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0xB8, 0x76, 0xF0, 0xBD + .byte 0x20, 0x78, 0x13, 0xB0, 0xF8, 0x76, 0xF0, 0xBD, 0x24, 0x78, 0x01, 0x9A, 0x00, 0x21, 0x19, 0x3A + .byte 0x20, 0x1C, 0x01, 0x92, 0x83, 0xF0, 0xD4, 0xEF, 0x00, 0x2C, 0x04, 0xD0, 0xF9, 0x69, 0x13, 0xB0 + .byte 0x08, 0x43, 0xF8, 0x61, 0xF0, 0xBD, 0x00, 0x21, 0x49, 0x1E, 0xFA, 0x69, 0x48, 0x40, 0x10, 0x40 + .byte 0x13, 0xB0, 0xF8, 0x61, 0xF0, 0xBD, 0x01, 0x98, 0x21, 0x88, 0x36, 0x38, 0x01, 0x90, 0x40, 0x00 + .byte 0x13, 0xB0, 0x29, 0x52, 0xF0, 0xBD, 0x01, 0x98, 0x21, 0x78, 0x3A, 0x38, 0x01, 0x90, 0x28, 0x18 + .byte 0x01, 0x72, 0x13, 0xB0, 0xF0, 0xBD, 0x01, 0x98, 0x21, 0x78, 0x3E, 0x38, 0x01, 0x90, 0x28, 0x18 + .byte 0x01, 0x73, 0x13, 0xB0, 0xF0, 0xBD, 0x2A, 0x69, 0x1F, 0x20, 0x82, 0x43, 0x21, 0x78, 0x1F, 0x20 + .byte 0x13, 0xB0, 0x08, 0x40, 0x10, 0x43, 0x28, 0x61, 0xF0, 0xBD, 0x29, 0x69, 0xBB, 0x48, 0x13, 0xB0 + .byte 0x01, 0x40, 0x20, 0x78, 0xC0, 0x06, 0x80, 0x0D, 0x08, 0x43, 0x28, 0x61, 0xF0, 0xBD, 0x29, 0x69 + .byte 0xB7, 0x48, 0x13, 0xB0, 0x01, 0x40, 0x20, 0x78, 0xC0, 0x06, 0x40, 0x0C, 0x08, 0x43, 0x28, 0x61 + .byte 0xF0, 0xBD, 0x29, 0x69, 0xB3, 0x48, 0x13, 0xB0, 0x01, 0x40, 0x20, 0x78, 0xC0, 0x06, 0x00, 0x0B + .byte 0x08, 0x43, 0x28, 0x61, 0xF0, 0xBD, 0x29, 0x69, 0xAF, 0x48, 0x13, 0xB0, 0x01, 0x40, 0x20, 0x78 + .byte 0xC0, 0x06, 0xC0, 0x09, 0x08, 0x43, 0x28, 0x61, 0xF0, 0xBD, 0x29, 0x69, 0xAB, 0x48, 0x13, 0xB0 + .byte 0x01, 0x40, 0x20, 0x78, 0xC0, 0x06, 0x80, 0x08, 0x08, 0x43, 0x28, 0x61, 0xF0, 0xBD, 0x29, 0x69 + .byte 0xA7, 0x48, 0x13, 0xB0, 0x01, 0x40, 0x20, 0x78, 0xC0, 0x07, 0x40, 0x08, 0x08, 0x43, 0x28, 0x61 + .byte 0xF0, 0xBD, 0x29, 0x69, 0xA3, 0x48, 0x13, 0xB0, 0x01, 0x40, 0x20, 0x78, 0xC0, 0x07, 0x08, 0x43 + .byte 0x28, 0x61, 0xF0, 0xBD, 0x24, 0x78, 0x01, 0x9A, 0x00, 0x21, 0x4E, 0x3A, 0x20, 0x1C, 0x01, 0x92 + .byte 0x83, 0xF0, 0x56, 0xEF, 0x00, 0x2C, 0x04, 0xD0, 0x69, 0x69, 0x13, 0xB0, 0x08, 0x43, 0x68, 0x61 + .byte 0xF0, 0xBD, 0x00, 0x21, 0x49, 0x1E, 0x6A, 0x69, 0x48, 0x40, 0x10, 0x40, 0x13, 0xB0, 0x68, 0x61 + .byte 0xF0, 0xBD, 0x2A, 0x7E, 0x21, 0x78, 0x01, 0x20, 0x82, 0x43, 0x01, 0x20, 0x08, 0x40, 0x10, 0x43 + .byte 0x13, 0xB0, 0x28, 0x76, 0xF0, 0xBD, 0x29, 0x7E, 0x06, 0x20, 0x13, 0xB0, 0x81, 0x43, 0x20, 0x78 + .byte 0x80, 0x07, 0x40, 0x0F, 0x08, 0x43, 0x28, 0x76, 0xF0, 0xBD, 0x29, 0x7E, 0xF8, 0x20, 0x13, 0xB0 + .byte 0x81, 0x43, 0x20, 0x78, 0xC0, 0x06, 0x00, 0x0E, 0x08, 0x43, 0x28, 0x76, 0xF0, 0xBD, 0x20, 0x78 + .byte 0x13, 0xB0, 0x68, 0x76, 0xF0, 0xBD, 0x20, 0x88, 0x13, 0xB0, 0x68, 0x83, 0xF0, 0xBD, 0x38, 0x88 + .byte 0x00, 0x21, 0x0D, 0xAA, 0xA2, 0xF7, 0xC2, 0xFD, 0x0D, 0xA8, 0x21, 0x1C, 0x9A, 0xF7, 0x42, 0xFA + .byte 0x2A, 0x69, 0x7C, 0x49, 0xC0, 0x07, 0x11, 0x40, 0x08, 0x43, 0x28, 0x61, 0x00, 0x21, 0x20, 0x88 + .byte 0x49, 0x1C, 0xA4, 0x1C, 0x30, 0x80, 0xB6, 0x1C, 0x0B, 0x29, 0xF8, 0xD3, 0x13, 0xB0, 0xF0, 0xBD + .byte 0x38, 0x88, 0x07, 0xAA, 0x00, 0x21, 0x02, 0x32, 0xA2, 0xF7, 0xA8, 0xFD, 0x20, 0x1C, 0x02, 0xA9 + .byte 0x0B, 0x22, 0xBA, 0xF7, 0x4D, 0xF8, 0x07, 0xA8, 0x02, 0x30, 0x02, 0xA9, 0x9A, 0xF7, 0x22, 0xFA + .byte 0x2A, 0x69, 0x6C, 0x49, 0xC0, 0x07, 0x11, 0x40, 0x08, 0x43, 0x28, 0x61, 0x20, 0x1C, 0x31, 0x1C + .byte 0x0B, 0x22, 0xBA, 0xF7, 0x3D, 0xF8, 0x13, 0xB0, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0xB0, 0x75 + .byte 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0xF0, 0x75, 0xF0, 0xBD, 0x24, 0x78, 0x01, 0x9A, 0x00, 0x21 + .byte 0x7A, 0x3A, 0x20, 0x1C, 0x01, 0x92, 0x83, 0xF0, 0xDC, 0xEE, 0x00, 0x2C, 0x09, 0xD0, 0x34, 0x1C + .byte 0x18, 0x34, 0xB3, 0x69, 0x62, 0x68, 0x18, 0x43, 0x11, 0x43, 0xB0, 0x61, 0x13, 0xB0, 0x61, 0x60 + .byte 0xF0, 0xBD, 0x34, 0x1C, 0x00, 0x25, 0xED, 0x43, 0x18, 0x34, 0xB3, 0x69, 0x68, 0x40, 0x62, 0x68 + .byte 0x69, 0x40, 0x18, 0x40, 0x11, 0x40, 0xB0, 0x61, 0x13, 0xB0, 0x61, 0x60, 0xF0, 0xBD, 0x00, 0x22 + .byte 0x20, 0x88, 0x52, 0x1C, 0xA4, 0x1C, 0x08, 0x80, 0x89, 0x1C, 0x08, 0x2A, 0xF8, 0xD3, 0x13, 0xB0 + .byte 0xF0, 0xBD, 0x20, 0x1C, 0x08, 0x22, 0xBA, 0xF7, 0x03, 0xF8, 0x13, 0xB0, 0xF0, 0xBD, 0x20, 0x78 + .byte 0x13, 0xB0, 0x08, 0x74, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0x48, 0x74, 0xF0, 0xBD, 0x20, 0x78 + .byte 0x13, 0xB0, 0x88, 0x74, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0xC8, 0x74, 0xF0, 0xBD, 0x20, 0x78 + .byte 0x13, 0xB0, 0x08, 0x75, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0x48, 0x75, 0xF0, 0xBD, 0x20, 0x88 + .byte 0x13, 0xB0, 0xC8, 0x82, 0xF0, 0xBD, 0x20, 0x88, 0x13, 0xB0, 0x08, 0x83, 0xF0, 0xBD, 0x20, 0x78 + .byte 0x13, 0xB0, 0x88, 0x76, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0xC8, 0x76, 0xF0, 0xBD, 0x0B, 0x7F + .byte 0x22, 0x78, 0x7F, 0x20, 0x83, 0x43, 0x7F, 0x20, 0x10, 0x40, 0x18, 0x43, 0x08, 0x77, 0x13, 0xB0 + .byte 0xF0, 0xBD, 0x0A, 0x7F, 0x80, 0x20, 0x13, 0xB0, 0x82, 0x43, 0x20, 0x78, 0xC0, 0x07, 0x00, 0x0E + .byte 0x10, 0x43, 0x08, 0x77, 0xF0, 0xBD, 0x20, 0x78, 0x13, 0xB0, 0x48, 0x77, 0xF0, 0xBD, 0x20, 0x88 + .byte 0x13, 0xB0, 0xC8, 0x83, 0xF0, 0xBD, 0x2A, 0x69, 0x1F, 0x20, 0x82, 0x43, 0x21, 0x68, 0x1F, 0x20 + .byte 0x01, 0x40, 0x08, 0x40, 0x11, 0x1C, 0x01, 0x43, 0x1C, 0x48, 0x29, 0x61, 0x01, 0x40, 0x20, 0x68 + .byte 0x13, 0xB0, 0x40, 0x09, 0xC0, 0x06, 0x80, 0x0D, 0x01, 0x43, 0x19, 0x48, 0x29, 0x61, 0x01, 0x40 + .byte 0x20, 0x68, 0x80, 0x0A, 0xC0, 0x06, 0x40, 0x0C, 0x01, 0x43, 0x16, 0x48, 0x29, 0x61, 0x01, 0x40 + .byte 0x20, 0x68, 0xC0, 0x0B, 0xC0, 0x06, 0x00, 0x0B, 0x01, 0x43, 0x13, 0x48, 0x29, 0x61, 0x01, 0x40 + .byte 0x20, 0x68, 0x00, 0x0D, 0xC0, 0x06, 0xC0, 0x09, 0x01, 0x43, 0x10, 0x48, 0x29, 0x61, 0x01, 0x40 + .byte 0x20, 0x68, 0x40, 0x0E, 0xC0, 0x06, 0x80, 0x08, 0x08, 0x43, 0x28, 0x61, 0xF0, 0xBD, 0x38, 0x88 + .byte 0x00, 0x21, 0xA2, 0xF7, 0x35, 0xFD, 0x04, 0x1C, 0x31, 0x1C, 0x0B, 0x22, 0xB9, 0xF7, 0x80, 0xFF + .byte 0x20, 0x1C, 0xB9, 0xF7, 0x15, 0xFD +_02067FF6: + add sp, #0x4c + pop {r4-r7, pc} + nop +_02067FFC: + .byte 0x1F, 0xFC, 0xFF, 0xFF + .byte 0xFF, 0x83, 0xFF, 0xFF, 0xFF, 0x7F, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0xC1 + .byte 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0x7F + + thumb_func_start sub_02068018 +sub_02068018: ; 0x02068018 + push {r4-r6, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x4] + add r4, r1, #0x0 + add r6, r2, #0x0 + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bne _02068066 + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3D0 + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3D0 + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3F8 + ldrh r1, [r5, #0x6] + cmp r0, r1 + beq _02068066 + cmp r0, r1 + beq _02068058 + bl sub_02020C2C +_02068058: + ldrh r2, [r5, #0x6] + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 + pop {r4-r6, pc} +_02068066: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020680A0 + ldrh r0, [r5, #0x4] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bne _0206809C + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3A4 + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3F8 + strh r0, [r5, #0x6] + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 +_0206809C: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020680A0 +sub_020680A0: ; 0x020680A0 + push {r3, lr} + add r3, r1, #0x0 + sub r3, #0x9f + cmp r3, #0xa + bhi _020680F8 + add r3, r3, r3 + add r3, pc + ldrh r3, [r3, #0x6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 + lsl r2, r7, #0 + lsl r2, r7, #0 + lsl r2, r7, #0 + lsl r4, r2, #0 + lsl r2, r7, #0 + lsl r2, r7, #0 + lsl r2, r7, #0 + lsl r2, r7, #0 + lsl r2, r7, #0 + lsl r2, r7, #0 + lsl r2, r7, #0 + add r1, r0, #0x0 + add r1, #0x90 + ldrh r3, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x8e + ldrh r1, [r1, #0x0] + add r1, r1, r2 + cmp r1, r3 + ble _020680E4 + add r0, #0x8e + strh r3, [r0, #0x0] + pop {r3, pc} +_020680E4: + add r1, r0, #0x0 + add r1, #0x8e + ldrh r1, [r1, #0x0] + add r0, #0x8e + add r1, r1, r2 + strh r1, [r0, #0x0] + pop {r3, pc} +_020680F2: + .byte 0xB8, 0xF7, 0x9B, 0xFD, 0x08, 0xBD +_020680F8: + bl sub_02068100 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02068100 +sub_02068100: ; 0x02068100 + push {r4-r7, lr} + sub sp, #0xc + add r7, r1, #0x0 + add r1, r0, #0x0 + add r6, r2, #0x0 + ldr r1, [r1, #0x0] + str r0, [sp, #0x0] + mov r2, #0x0 + bl sub_0206A418 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + mov r2, #0x1 + add r1, r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_0206A418 + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + mov r2, #0x2 + add r1, r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_0206A418 + ldr r0, [sp, #0x0] + mov r2, #0x3 + add r1, r0, #0x0 + ldr r1, [r1, #0x0] + bl sub_0206A418 + cmp r7, #0xb2 + bls _02068142 + b _02068500 +_02068142: + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r4, r4, #0x5 + lsl r0, r1, #0x6 + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r6, r3, #0x6 + lsl r0, r5, #0x6 + lsl r2, r6, #0x6 + lsl r4, r7, #0x6 + lsl r6, r0, #0x7 + lsl r0, r2, #0x7 + lsl r2, r3, #0x7 + lsl r0, r6, #0x7 + lsl r6, r0, #0x8 + lsl r4, r3, #0x8 + lsl r2, r6, #0x8 + lsl r0, r1, #0x9 + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r6, r3, #0x9 + lsl r6, r3, #0x9 + lsl r6, r3, #0x9 + lsl r6, r3, #0x9 + lsl r2, r3, #0xa + lsl r2, r3, #0xa + lsl r2, r3, #0xa + lsl r2, r3, #0xa + lsl r4, r6, #0xe + lsl r4, r6, #0xe + lsl r4, r6, #0xe + lsl r4, r6, #0xe + lsl r4, r6, #0xa + lsl r6, r3, #0xb + lsl r0, r1, #0xc + lsl r2, r6, #0xc + lsl r4, r3, #0xd + lsl r6, r0, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + lsl r0, r6, #0xe + ldrh r0, [r4, #0x0] + mov r1, #0x64 + bl sub_02068758 + ldr r1, [r4, #0x8] + add r1, r1, r6 + cmp r1, r0 + bls _020682D2 + ldrh r0, [r4, #0x0] + mov r1, #0x64 + bl sub_02068758 + add sp, #0xc + str r0, [r4, #0x8] + pop {r4-r7, pc} +_020682D2: + add sp, #0xc + str r1, [r4, #0x8] + pop {r4-r7, pc} +_020682D8: + .byte 0x20, 0x7B, 0x80, 0x19, 0xFF, 0x28, 0x03, 0xDD + .byte 0xFF, 0x20, 0x03, 0xB0, 0x20, 0x73, 0xF0, 0xBD, 0x03, 0xB0, 0x20, 0x73, 0xF0, 0xBD, 0x20, 0x7C + .byte 0x03, 0xB0, 0x80, 0x19, 0x20, 0x74, 0xF0, 0xBD, 0x60, 0x7C, 0x03, 0xB0, 0x80, 0x19, 0x60, 0x74 + .byte 0xF0, 0xBD, 0xA0, 0x7C, 0x03, 0xB0, 0x80, 0x19, 0xA0, 0x74, 0xF0, 0xBD, 0xE0, 0x7C, 0x03, 0xB0 + .byte 0x80, 0x19, 0xE0, 0x74, 0xF0, 0xBD, 0x20, 0x7D, 0x03, 0xB0, 0x80, 0x19, 0x20, 0x75, 0xF0, 0xBD + .byte 0x60, 0x7D, 0x03, 0xB0, 0x80, 0x19, 0x60, 0x75, 0xF0, 0xBD, 0xA0, 0x7D, 0x80, 0x19, 0xFF, 0x28 + .byte 0x03, 0xDD, 0xFF, 0x20, 0x03, 0xB0, 0xA0, 0x75, 0xF0, 0xBD, 0x03, 0xB0, 0xA0, 0x75, 0xF0, 0xBD + .byte 0xE0, 0x7D, 0x80, 0x19, 0xFF, 0x28, 0x03, 0xDD, 0xFF, 0x20, 0x03, 0xB0, 0xE0, 0x75, 0xF0, 0xBD + .byte 0x03, 0xB0, 0xE0, 0x75, 0xF0, 0xBD, 0x20, 0x7E, 0x80, 0x19, 0xFF, 0x28, 0x03, 0xDD, 0xFF, 0x20 + .byte 0x03, 0xB0, 0x20, 0x76, 0xF0, 0xBD, 0x03, 0xB0, 0x20, 0x76, 0xF0, 0xBD, 0x60, 0x7E, 0x80, 0x19 + .byte 0xFF, 0x28, 0x03, 0xDD, 0xFF, 0x20, 0x03, 0xB0, 0x60, 0x76, 0xF0, 0xBD, 0x03, 0xB0, 0x60, 0x76 + .byte 0xF0, 0xBD, 0xA0, 0x7E, 0x80, 0x19, 0xFF, 0x28, 0x03, 0xDD, 0xFF, 0x20, 0x03, 0xB0, 0xA0, 0x76 + .byte 0xF0, 0xBD, 0x03, 0xB0, 0xA0, 0x76, 0xF0, 0xBD, 0xE0, 0x7E, 0x80, 0x19, 0xFF, 0x28, 0x03, 0xDD + .byte 0xFF, 0x20, 0x03, 0xB0, 0xE0, 0x76, 0xF0, 0xBD, 0x03, 0xB0, 0xE0, 0x76, 0xF0, 0xBD, 0x28, 0x1C + .byte 0x01, 0x90, 0x0C, 0x30, 0x01, 0x90, 0x3A, 0x3F, 0x01, 0x99, 0x78, 0x00, 0x02, 0x90, 0x2C, 0x1C + .byte 0x28, 0x5A, 0xC9, 0x5D, 0x08, 0x34, 0x02, 0xF0, 0xB3, 0xFB, 0xE1, 0x5D, 0x71, 0x18, 0x81, 0x42 + .byte 0x08, 0xDD, 0x02, 0x98, 0x01, 0x99, 0x28, 0x5A, 0xC9, 0x5D, 0x02, 0xF0, 0xA9, 0xFB, 0x03, 0xB0 + .byte 0xE0, 0x55, 0xF0, 0xBD, 0x03, 0xB0, 0xE1, 0x55, 0xF0, 0xBD, 0x0C, 0x35, 0x3E, 0x3F, 0xE8, 0x5D + .byte 0x30, 0x18, 0x03, 0x28, 0x03, 0xDD, 0x03, 0x20, 0x03, 0xB0, 0xE8, 0x55, 0xF0, 0xBD, 0x03, 0xB0 + .byte 0xE8, 0x55, 0xF0, 0xBD, 0x29, 0x69, 0xC8, 0x06, 0xC0, 0x0E, 0x82, 0x19, 0x1F, 0x2A, 0x06, 0xD9 + .byte 0x1F, 0x20, 0x81, 0x43, 0x1F, 0x20, 0x08, 0x43, 0x03, 0xB0, 0x28, 0x61, 0xF0, 0xBD, 0x1F, 0x20 + .byte 0x81, 0x43, 0x1F, 0x20, 0x10, 0x40, 0x08, 0x43, 0x03, 0xB0, 0x28, 0x61, 0xF0, 0xBD, 0x29, 0x69 + .byte 0x88, 0x05, 0xC0, 0x0E, 0x82, 0x19, 0x1F, 0x2A, 0x33, 0x48, 0x06, 0xD9, 0x01, 0x40, 0x3E, 0x20 + .byte 0x00, 0x01, 0x08, 0x43, 0x03, 0xB0, 0x28, 0x61, 0xF0, 0xBD, 0x01, 0x40, 0xD0, 0x06, 0x80, 0x0D + .byte 0x08, 0x43, 0x03, 0xB0, 0x28, 0x61, 0xF0, 0xBD, 0x29, 0x69, 0x48, 0x04, 0xC0, 0x0E, 0x82, 0x19 + .byte 0x1F, 0x2A, 0x2A, 0x48, 0x06, 0xD9, 0x01, 0x40, 0x1F, 0x20, 0x80, 0x02, 0x08, 0x43, 0x03, 0xB0 + .byte 0x28, 0x61, 0xF0, 0xBD, 0x01, 0x40, 0xD0, 0x06, 0x40, 0x0C, 0x08, 0x43, 0x03, 0xB0, 0x28, 0x61 + .byte 0xF0, 0xBD, 0x29, 0x69, 0x08, 0x03, 0xC0, 0x0E, 0x82, 0x19, 0x1F, 0x2A, 0x20, 0x48, 0x06, 0xD9 + .byte 0x01, 0x40, 0x3E, 0x20, 0x80, 0x03, 0x08, 0x43, 0x03, 0xB0, 0x28, 0x61, 0xF0, 0xBD, 0x01, 0x40 + .byte 0xD0, 0x06, 0x00, 0x0B, 0x08, 0x43, 0x03, 0xB0, 0x28, 0x61, 0xF0, 0xBD, 0x29, 0x69, 0xC8, 0x01 + .byte 0xC0, 0x0E, 0x82, 0x19, 0x1F, 0x2A, 0x17, 0x48, 0x06, 0xD9, 0x01, 0x40, 0x1F, 0x20, 0x00, 0x05 + .byte 0x08, 0x43, 0x03, 0xB0, 0x28, 0x61, 0xF0, 0xBD, 0x01, 0x40, 0xD0, 0x06, 0xC0, 0x09, 0x08, 0x43 + .byte 0x03, 0xB0, 0x28, 0x61, 0xF0, 0xBD, 0x29, 0x69, 0x88, 0x00, 0xC0, 0x0E, 0x82, 0x19, 0x1F, 0x2A + .byte 0x0D, 0x48, 0x06, 0xD9, 0x01, 0x40, 0x3E, 0x20, 0x00, 0x06, 0x08, 0x43, 0x03, 0xB0, 0x28, 0x61 + .byte 0xF0, 0xBD, 0x01, 0x40, 0xD0, 0x06, 0x80, 0x08, 0x08, 0x43, 0x03, 0xB0, 0x28, 0x61, 0xF0, 0xBD +_02068500: + bl sub_02020C2C + add sp, #0xc + pop {r4-r7, pc} +_02068508: + .byte 0x1F, 0xFC, 0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF + .byte 0xFF, 0x7F, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0xC1 + + thumb_func_start sub_0206851C +sub_0206851C: ; 0x0206851C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x2c + bl sub_02016998 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0206A370 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02068538 +sub_02068538: ; 0x02068538 + push {r4-r6, lr} + add r4, r0, #0x0 + add r6, r1, #0x0 + cmp r4, #0x0 + bne _02068546 + bl sub_02020C2C +_02068546: + cmp r6, #0x20 + bhi _0206863A + add r0, r6, r6 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r0, #0x1 + lsl r4, r0, #0x1 + lsl r0, r1, #0x1 + lsl r4, r1, #0x1 + lsl r0, r2, #0x1 + lsl r4, r2, #0x1 + lsl r0, r3, #0x1 + lsl r4, r3, #0x1 + lsl r0, r4, #0x1 + lsl r4, r4, #0x1 + lsl r0, r5, #0x1 + lsl r0, r6, #0x1 + lsl r0, r7, #0x1 + lsl r0, r0, #0x2 + lsl r0, r1, #0x2 + lsl r0, r2, #0x2 + lsl r0, r3, #0x2 + lsl r4, r3, #0x2 + lsl r0, r4, #0x2 + lsl r4, r4, #0x2 + lsl r0, r5, #0x2 + lsl r4, r5, #0x2 + lsl r0, r6, #0x2 + lsl r4, r6, #0x2 + lsl r0, r7, #0x2 + lsl r4, r7, #0x2 + lsl r0, r0, #0x3 + lsl r4, r0, #0x3 + lsl r4, r1, #0x3 + lsl r4, r2, #0x3 + lsl r0, r3, #0x3 + lsl r4, r3, #0x3 + lsl r0, r4, #0x3 + ldrb r5, [r4, #0x0] + b _0206863A +_0206859C: + .byte 0x65, 0x78, 0x4C, 0xE0 + .byte 0xA5, 0x78, 0x4A, 0xE0, 0xE5, 0x78, 0x48, 0xE0, 0x25, 0x79, 0x46, 0xE0, 0x65, 0x79, 0x44, 0xE0 + .byte 0xA5, 0x79, 0x42, 0xE0, 0xE5, 0x79, 0x40, 0xE0, 0x25, 0x7A, 0x3E, 0xE0, 0x65, 0x7A, 0x3C, 0xE0 + .byte 0x60, 0x89, 0x80, 0x07, 0x85, 0x0F, 0x38, 0xE0, 0x60, 0x89, 0x00, 0x07, 0x85, 0x0F, 0x34, 0xE0 + .byte 0x60, 0x89, 0x80, 0x06, 0x85, 0x0F, 0x30, 0xE0, 0x60, 0x89, 0x00, 0x06, 0x85, 0x0F, 0x2C, 0xE0 + .byte 0x60, 0x89, 0x80, 0x05, 0x85, 0x0F, 0x28, 0xE0, 0x60, 0x89, 0x00, 0x05, 0x85, 0x0F, 0x24, 0xE0 + .byte 0xA5, 0x89, 0x22, 0xE0, 0xE5, 0x89, 0x20, 0xE0, 0x25, 0x7C, 0x1E, 0xE0, 0x65, 0x7C, 0x1C, 0xE0 + .byte 0xA5, 0x7C, 0x1A, 0xE0, 0xE5, 0x7C, 0x18, 0xE0, 0x25, 0x7D, 0x16, 0xE0, 0x65, 0x7D, 0x14, 0xE0 + .byte 0xA5, 0x7D, 0x12, 0xE0, 0xE5, 0x7D, 0x10, 0xE0, 0x25, 0x7E, 0x0E, 0xE0, 0x60, 0x7E, 0x40, 0x06 + .byte 0x45, 0x0E, 0x0A, 0xE0, 0x60, 0x7E, 0x00, 0x06, 0xC5, 0x0F, 0x06, 0xE0, 0xE5, 0x69, 0x04, 0xE0 + .byte 0x25, 0x6A, 0x02, 0xE0, 0x65, 0x6A, 0x00, 0xE0, 0xA5, 0x6A +_0206863A: + add r0, r5, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02068640 +sub_02068640: ; 0x02068640 + push {r4, lr} + add r4, r0, #0x0 + bne _0206864A + bl sub_02020C2C +_0206864A: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02068654 +sub_02068654: ; 0x02068654 + push {r3-r5, lr} + add r4, r2, #0x0 + bl sub_0206A8FC + mov r1, #0x0 + bl sub_0206851C + add r5, r0, #0x0 + add r1, r4, #0x0 + bl sub_02068538 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02068640 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02068678 +sub_02068678: ; 0x02068678 + push {r3-r5, lr} + add r4, r1, #0x0 + mov r1, #0x0 + bl sub_0206851C + add r5, r0, #0x0 + add r1, r4, #0x0 + bl sub_02068538 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02068640 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02068698 +sub_02068698: ; 0x02068698 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_020669D4 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r5, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_02068758 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r7, #0x1 + bl sub_02068758 + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x8 + mov r2, #0x0 + bl sub_020671BC + add r7, r0, #0x0 + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02066A20 + sub r1, r7, r4 + mov r0, #0x64 + mul r0, r1 + sub r1, r6, r4 + blx sub_020EBE8C + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3-r7, pc} + + thumb_func_start sub_020686F8 +sub_020686F8: ; 0x020686F8 + ldr r3, _020686FC ; =sub_02068700 + bx r3 + .balign 4 +_020686FC: .word sub_02068700 + 1 + + thumb_func_start sub_02068700 +sub_02068700: ; 0x02068700 + push {r4-r6, lr} + mov r1, #0x5 + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020672BC + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r4, #0x0 + bl sub_020687C8 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0x0 + mov r1, #0x8 + mov r2, #0x0 + bl sub_020672BC + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_02068758 + sub r0, r0, r4 + pop {r4-r6, pc} + + thumb_func_start sub_02068734 +sub_02068734: ; 0x02068734 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02068758 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02068758 +sub_02068758: ; 0x02068758 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x15 + bl sub_02068678 + add r1, r4, #0x0 + bl sub_02068788 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206876C +sub_0206876C: ; 0x0206876C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x8 + blt _0206877A + bl sub_02020C2C +_0206877A: + add r0, r4, #0x0 + mov r1, #0x3 + add r2, r5, #0x0 + bl sub_020064F0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02068788 +sub_02068788: ; 0x02068788 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + cmp r6, #0x8 + blt _02068796 + bl sub_02020C2C +_02068796: + cmp r5, #0x65 + ble _0206879E + bl sub_02020C2C +_0206879E: + mov r1, #0x65 + mov r0, #0x0 + lsl r1, r1, #0x2 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0206876C + lsl r0, r5, #0x2 + ldr r5, [r4, r0] + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_020687C0 +sub_020687C0: ; 0x020687C0 + ldr r3, _020687C4 ; =sub_020687C8 + bx r3 + .balign 4 +_020687C4: .word sub_020687C8 + 1 + + thumb_func_start sub_020687C8 +sub_020687C8: ; 0x020687C8 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02066A6C + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x8 + mov r2, #0x0 + bl sub_020672BC + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02066A94 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + add r1, r7, #0x0 + bl sub_02068800 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02068800 +sub_02068800: ; 0x02068800 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r1, #0x0 + bl sub_0206851C + add r6, r0, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02068824 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02068640 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02068824 +sub_02068824: ; 0x02068824 + push {r4, lr} + mov r1, #0x15 + add r4, r2, #0x0 + bl sub_02068538 + ldr r1, _0206884C ; =0x021C5AC0 + bl sub_0206876C + ldr r2, _02068850 ; =0x021C5AC4 + mov r1, #0x1 +_02068838: + ldr r0, [r2, #0x0] + cmp r0, r4 + bhi _02068846 + add r1, r1, #0x1 + add r2, r2, #0x4 + cmp r1, #0x65 + blt _02068838 +_02068846: + sub r0, r1, #0x1 + pop {r4, pc} + nop +_0206884C: .word 0x021C5AC0 +_02068850: .word 0x021C5AC4 + + thumb_func_start sub_02068854 +sub_02068854: ; 0x02068854 + ldr r3, _02068858 ; =sub_0206885C + bx r3 + .balign 4 +_02068858: .word sub_0206885C + 1 + + thumb_func_start sub_0206885C +sub_0206885C: ; 0x0206885C + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02066A6C + mov r1, #0x0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_020672BC + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02066A94 + add r0, r6, #0x0 + bl sub_02068884 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02068884 +sub_02068884: ; 0x02068884 + push {r3, lr} + mov r1, #0x19 + blx sub_020EBE8C + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02068894 +sub_02068894: ; 0x02068894 + push {r3, lr} + cmp r2, #0x1 + blo _0206889E + cmp r2, #0x5 + bls _020688A2 +_0206889E: + add r0, r1, #0x0 + pop {r3, pc} +_020688A2: + lsl r3, r0, #0x2 + add r3, r0, r3 + ldr r0, _020688E4 ; =0x020F7F93 + sub r2, r2, #0x1 + add r0, r0, r3 + ldrsb r2, [r2, r0] + mov r0, #0x0 + mvn r0, r0 + cmp r2, r0 + beq _020688CE + cmp r2, #0x1 + bne _020688E0 + mov r0, #0x6e + mul r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x64 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + b _020688E0 +_020688CE: + mov r0, #0x5a + mul r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x64 + blx sub_020EBC80 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 +_020688E0: + add r0, r1, #0x0 + pop {r3, pc} + .balign 4 +_020688E4: .word 0x020F7F93 + + thumb_func_start sub_020688E8 +sub_020688E8: ; 0x020688E8 + push {r3-r7, lr} + sub sp, #0x8 + add r6, r1, #0x0 + add r5, r0, #0x0 + str r2, [sp, #0x0] + cmp r6, #0x5 + bne _02068900 + bl sub_0201B9EC + mov r1, #0x1 + tst r0, r1 + bne _020689D4 +_02068900: + add r0, r5, #0x0 + mov r1, #0xad + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + beq _020689D4 + ldr r0, _020689D8 ; =0x000001EE + cmp r1, r0 + beq _020689D4 + add r0, r5, #0x0 + mov r1, #0x6 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x1 + mov r2, #0x0 + bl sub_0206E7B8 + lsl r0, r0, #0x18 + mov r4, #0x0 + lsr r7, r0, #0x18 + add r0, r5, #0x0 + mov r1, #0x9 + add r2, r4, #0x0 + bl sub_020671BC + add r1, sp, #0x4 + strh r0, [r1, #0x0] + add r0, r4, #0x0 + ldrsh r1, [r1, r0] + cmp r1, #0x64 + blt _0206894E + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_0206894E: + cmp r1, #0xc8 + blt _02068958 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_02068958: + lsl r0, r6, #0x1 + add r1, r6, r0 + ldr r0, _020689DC ; =0x020F7ED4 + add r0, r0, r1 + ldrsb r4, [r4, r0] + cmp r4, #0x0 + ble _0206897A + add r0, r5, #0x0 + mov r1, #0x9a + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0xb + bne _0206897A + add r0, r4, #0x1 + lsl r0, r0, #0x18 + asr r4, r0, #0x18 +_0206897A: + cmp r4, #0x0 + ble _02068994 + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0x0] + cmp r1, r0 + bne _02068994 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + asr r4, r0, #0x18 +_02068994: + cmp r4, #0x0 + ble _020689AA + cmp r7, #0x34 + bne _020689AA + mov r0, #0x96 + mul r0, r4 + mov r1, #0x64 + blx sub_020EBC80 + lsl r0, r0, #0x18 + asr r4, r0, #0x18 +_020689AA: + add r0, sp, #0x4 + mov r1, #0x0 + ldrsh r2, [r0, r1] + add r2, r2, r4 + strh r2, [r0, #0x0] + ldrsh r2, [r0, r1] + cmp r2, #0x0 + bge _020689BC + strh r1, [r0, #0x0] +_020689BC: + add r1, sp, #0x4 + mov r0, #0x0 + ldrsh r0, [r1, r0] + cmp r0, #0xff + ble _020689CA + mov r0, #0xff + strh r0, [r1, #0x0] +_020689CA: + add r0, r5, #0x0 + mov r1, #0x9 + add r2, sp, #0x4 + bl sub_02067830 +_020689D4: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020689D8: .word 0x000001EE +_020689DC: .word 0x020F7ED4 + + thumb_func_start sub_020689E0 +sub_020689E0: ; 0x020689E0 + ldr r3, _020689E4 ; =sub_020689E8 + bx r3 + .balign 4 +_020689E4: .word sub_020689E8 + 1 + + thumb_func_start sub_020689E8 +sub_020689E8: ; 0x020689E8 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02066A6C + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + lsl r0, r0, #0x10 + mov r1, #0x0 + lsr r4, r0, #0x10 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_020672BC + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02066A94 + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_02068A20 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02068A20 +sub_02068A20: ; 0x02068A20 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r1, #0x0 + bl sub_0206851C + add r6, r0, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02068A44 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02068640 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02068A44 +sub_02068A44: ; 0x02068A44 + push {r4, lr} + mov r1, #0x12 + add r4, r2, #0x0 + bl sub_02068538 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + beq _02068A5E + cmp r1, #0xfe + beq _02068A62 + cmp r1, #0xff + beq _02068A66 + b _02068A6A +_02068A5E: + mov r0, #0x0 + pop {r4, pc} +_02068A62: + mov r0, #0x1 + pop {r4, pc} +_02068A66: + mov r0, #0x2 + pop {r4, pc} +_02068A6A: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + cmp r1, r0 + bls _02068A76 + mov r0, #0x1 + b _02068A78 +_02068A76: + mov r0, #0x0 +_02068A78: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02068A80 +sub_02068A80: ; 0x02068A80 + ldr r3, _02068A84 ; =sub_02068A88 + bx r3 + .balign 4 +_02068A84: .word sub_02068A88 + 1 + + thumb_func_start sub_02068A88 +sub_02068A88: ; 0x02068A88 + push {r3-r5, lr} + mov r1, #0x7 + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020672BC + mov r1, #0x0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_020672BC + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02068AAC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02068AAC +sub_02068AAC: ; 0x02068AAC + ldr r3, _02068AD4 ; =0xFFFF0000 + lsl r2, r1, #0x10 + and r1, r3 + and r3, r0 + lsl r0, r0, #0x10 + lsr r3, r3, #0x10 + lsr r0, r0, #0x10 + lsr r1, r1, #0x10 + eor r0, r3 + lsr r2, r2, #0x10 + eor r0, r1 + eor r0, r2 + cmp r0, #0x8 + bhs _02068ACC + mov r0, #0x1 + b _02068ACE +_02068ACC: + mov r0, #0x0 +_02068ACE: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .balign 4 +_02068AD4: .word 0xFFFF0000 + + thumb_func_start sub_02068AD8 +sub_02068AD8: ; 0x02068AD8 + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _02068B64 ; =0xFFFF0000 + and r0, r7 + lsr r1, r0, #0x10 + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + eor r0, r1 + lsr r7, r0, #0x3 + bl sub_0201B9EC + mov r1, #0x7 + and r0, r1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + bl sub_0201B9EC + mov r1, #0x7 + and r0, r1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + mov r4, #0x0 +_02068B04: + add r0, r4, #0x0 + bl sub_0206A92C + tst r0, r7 + beq _02068B34 + bl sub_0201B9EC + mov r1, #0x1 + tst r0, r1 + beq _02068B26 + add r0, r4, #0x3 + bl sub_0206A92C + orr r0, r6 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + b _02068B56 +_02068B26: + add r0, r4, #0x3 + bl sub_0206A92C + orr r0, r5 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + b _02068B56 +_02068B34: + bl sub_0201B9EC + mov r1, #0x1 + tst r0, r1 + beq _02068B56 + add r0, r4, #0x3 + bl sub_0206A92C + orr r0, r6 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r4, #0x3 + bl sub_0206A92C + orr r0, r5 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +_02068B56: + add r4, r4, #0x1 + cmp r4, #0xd + blt _02068B04 + lsl r0, r5, #0x10 + orr r0, r6 + pop {r3-r7, pc} + nop +_02068B64: .word 0xFFFF0000 + + thumb_func_start sub_02068B68 +sub_02068B68: ; 0x02068B68 + ldr r3, _02068B6C ; =sub_02068B70 + bx r3 + .balign 4 +_02068B6C: .word sub_02068B70 + 1 + + thumb_func_start sub_02068B70 +sub_02068B70: ; 0x02068B70 + push {r4-r7, lr} + sub sp, #0x1c + add r5, r1, #0x0 + str r0, [sp, #0xc] + add r0, r5, #0x0 + str r2, [sp, #0x10] + bl sub_02066A6C + str r0, [sp, #0x18] + add r0, r5, #0x0 + mov r1, #0xad + mov r2, #0x0 + bl sub_020672BC + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r5, #0x0 + bl sub_020689E8 + str r0, [sp, #0x14] + add r0, r5, #0x0 + bl sub_02068A88 + mov r1, #0x0 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_020672BC + add r6, r0, #0x0 + ldr r0, _02068BF8 ; =0x000001EE + cmp r4, r0 + bne _02068BCA + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + ldr r1, _02068BFC ; =0x000001EA + cmp r0, r1 + bne _02068BC6 + mov r0, #0x1 + b _02068BD8 +_02068BC6: + mov r0, #0x0 + b _02068BD8 +_02068BCA: + add r0, r5, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020672BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 +_02068BD8: + str r7, [sp, #0x0] + str r0, [sp, #0x4] + str r6, [sp, #0x8] + ldr r0, [sp, #0xc] + ldr r2, [sp, #0x14] + ldr r3, [sp, #0x10] + add r1, r4, #0x0 + bl sub_02068C00 + ldr r1, [sp, #0x18] + add r0, r5, #0x0 + bl sub_02066A94 + add sp, #0x1c + pop {r4-r7, pc} + nop +_02068BF8: .word 0x000001EE +_02068BFC: .word 0x000001EA + + thumb_func_start sub_02068C00 +sub_02068C00: ; 0x02068C00 + push {r4-r7} + add r7, r2, #0x0 + add r5, r3, #0x0 + add r4, r0, #0x0 + add r0, r1, #0x0 + ldr r3, [sp, #0x10] + ldr r2, [sp, #0x14] + mov r1, #0x0 + strh r1, [r4, #0x6] + strb r1, [r4, #0x8] + str r1, [r4, #0xc] + ldr r1, _02068E0C ; =0x000001A5 + cmp r0, r1 + bgt _02068C68 + bge _02068D1E + add r6, r1, #0x0 + sub r6, #0x46 + cmp r0, r6 + bgt _02068C36 + sub r1, #0x46 + cmp r0, r1 + blt _02068C2E + b _02068D58 +_02068C2E: + cmp r0, #0xc9 + bne _02068C34 + b _02068D90 +_02068C34: + b _02068DD4 +_02068C36: + add r6, r1, #0x0 + sub r6, #0x23 + cmp r0, r6 + bgt _02068C48 + sub r1, #0x23 + cmp r0, r1 + bne _02068C46 + b _02068D76 +_02068C46: + b _02068DD4 +_02068C48: + add r6, r1, #0x0 + sub r6, #0x8 + cmp r0, r6 + bgt _02068C66 + add r6, r1, #0x0 + sub r6, #0x9 + cmp r0, r6 + blt _02068C66 + add r6, r1, #0x0 + sub r6, #0x9 + cmp r0, r6 + beq _02068CAA + sub r1, #0x8 + cmp r0, r1 + beq _02068CC8 +_02068C66: + b _02068DD4 +_02068C68: + add r6, r1, #0x0 + add r6, #0x48 + cmp r0, r6 + bgt _02068C8E + add r6, r1, #0x0 + add r6, #0x48 + cmp r0, r6 + bge _02068D3A + add r6, r1, #0x2 + cmp r0, r6 + bgt _02068C8C + add r6, r1, #0x1 + cmp r0, r6 + blt _02068C8C + beq _02068CE6 + add r1, r1, #0x2 + cmp r0, r1 + beq _02068D02 +_02068C8C: + b _02068DD4 +_02068C8E: + add r6, r1, #0x0 + add r6, #0x49 + cmp r0, r6 + bgt _02068CA0 + add r1, #0x49 + cmp r0, r1 + bne _02068C9E + b _02068DAC +_02068C9E: + b _02068DD4 +_02068CA0: + add r1, #0x4a + cmp r0, r1 + bne _02068CA8 + b _02068DC4 +_02068CA8: + b _02068DD4 +_02068CAA: + cmp r2, #0x2 + bls _02068CB0 + mov r2, #0x0 +_02068CB0: + mov r0, #0x75 + strh r0, [r4, #0x0] + lsr r0, r5, #0x1 + lsl r1, r2, #0x1 + add r0, #0x48 + add r0, r0, r1 + add r3, #0x92 + strh r0, [r4, #0x2] + add r0, r3, r1 + strh r0, [r4, #0x4] + pop {r4-r7} + bx lr +_02068CC8: + cmp r2, #0x2 + bls _02068CCE + mov r2, #0x0 +_02068CCE: + mov r0, #0x75 + strh r0, [r4, #0x0] + lsr r0, r5, #0x1 + lsl r1, r2, #0x1 + add r0, #0x4e + add r0, r0, r1 + add r3, #0x98 + strh r0, [r4, #0x2] + add r0, r3, r1 + strh r0, [r4, #0x4] + pop {r4-r7} + bx lr +_02068CE6: + cmp r2, #0x1 + bls _02068CEC + mov r2, #0x0 +_02068CEC: + mov r0, #0x75 + add r5, #0x54 + strh r0, [r4, #0x0] + add r0, r5, r2 + strh r0, [r4, #0x2] + add r3, #0x9e + lsl r0, r2, #0x1 + add r0, r3, r0 + strh r0, [r4, #0x4] + pop {r4-r7} + bx lr +_02068D02: + cmp r2, #0x1 + bls _02068D08 + mov r2, #0x0 +_02068D08: + mov r0, #0x75 + add r5, #0x58 + strh r0, [r4, #0x0] + add r0, r5, r2 + strh r0, [r4, #0x2] + add r3, #0xa2 + lsl r0, r2, #0x1 + add r0, r3, r0 + strh r0, [r4, #0x4] + pop {r4-r7} + bx lr +_02068D1E: + cmp r2, #0x1 + bls _02068D24 + mov r2, #0x0 +_02068D24: + mov r0, #0x75 + add r5, #0x5c + strh r0, [r4, #0x0] + add r0, r5, r2 + strh r0, [r4, #0x2] + lsl r0, r3, #0x1 + add r0, #0xa6 + add r0, r2, r0 + strh r0, [r4, #0x4] + pop {r4-r7} + bx lr +_02068D3A: + cmp r2, #0x11 + bls _02068D40 + mov r2, #0x0 +_02068D40: + mov r0, #0x75 + strh r0, [r4, #0x0] + lsr r0, r5, #0x1 + lsl r1, r2, #0x1 + add r0, #0x60 + add r0, r0, r1 + add r3, #0xaa + strh r0, [r4, #0x2] + add r0, r3, r1 + strh r0, [r4, #0x4] + pop {r4-r7} + bx lr +_02068D58: + cmp r2, #0x3 + bls _02068D5E + mov r2, #0x0 +_02068D5E: + mov r0, #0x75 + strh r0, [r4, #0x0] + lsl r0, r5, #0x1 + add r0, #0x40 + add r0, r2, r0 + strh r0, [r4, #0x2] + lsl r0, r3, #0x2 + add r0, #0x8a + add r0, r2, r0 + strh r0, [r4, #0x4] + pop {r4-r7} + bx lr +_02068D76: + cmp r2, #0x3 + bls _02068D7C + mov r2, #0x0 +_02068D7C: + mov r0, #0x75 + strh r0, [r4, #0x0] + lsr r1, r5, #0x1 + lsl r0, r2, #0x1 + add r0, r1, r0 + strh r0, [r4, #0x2] + add r3, #0x86 + strh r3, [r4, #0x4] + pop {r4-r7} + bx lr +_02068D90: + cmp r2, #0x1c + blo _02068D96 + mov r2, #0x0 +_02068D96: + mov r0, #0x75 + lsr r1, r5, #0x1 + strh r0, [r4, #0x0] + add r1, #0x8 + lsl r0, r2, #0x1 + add r0, r1, r0 + strh r0, [r4, #0x2] + add r3, #0x88 + strh r3, [r4, #0x4] + pop {r4-r7} + bx lr +_02068DAC: + cmp r2, #0x1 + bls _02068DB2 + mov r2, #0x0 +_02068DB2: + mov r0, #0x75 + strh r0, [r4, #0x0] + add r0, r2, #0x0 + add r0, #0x84 + strh r0, [r4, #0x2] + add r2, #0xce + strh r2, [r4, #0x4] + pop {r4-r7} + bx lr +_02068DC4: + mov r0, #0x75 + strh r0, [r4, #0x0] + mov r0, #0x84 + strh r0, [r4, #0x2] + mov r0, #0xce + strh r0, [r4, #0x4] + pop {r4-r7} + bx lr +_02068DD4: + mov r1, #0x4 + strh r1, [r4, #0x0] + cmp r7, #0x1 + beq _02068DE0 + mov r2, #0x1 + b _02068DE2 +_02068DE0: + mov r2, #0x0 +_02068DE2: + mov r1, #0x6 + mul r1, r0 + add r6, r5, r1 + add r2, r6, r2 + add r1, r1, #0x4 + strh r2, [r4, #0x2] + add r1, r3, r1 + strh r1, [r4, #0x4] + ldr r1, _02068E10 ; =0x00000147 + cmp r0, r1 + bne _02068E06 + cmp r5, #0x2 + bne _02068E06 + strh r1, [r4, #0x6] + mov r0, #0x0 + strb r0, [r4, #0x8] + ldr r0, [sp, #0x18] + str r0, [r4, #0xc] +_02068E06: + pop {r4-r7} + bx lr + nop +_02068E0C: .word 0x000001A5 +_02068E10: .word 0x00000147 + + thumb_func_start sub_02068E14 +sub_02068E14: ; 0x02068E14 + ldr r3, _02068E18 ; =sub_02068E1C + bx r3 + .balign 4 +_02068E18: .word sub_02068E1C + 1 + + thumb_func_start sub_02068E1C +sub_02068E1C: ; 0x02068E1C + push {r3-r7, lr} + sub sp, #0x8 + add r7, r1, #0x0 + mov r1, #0xad + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020672BC + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r5, #0x0 + bl sub_020689E8 + mov r1, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_020672BC + add r6, r0, #0x0 + ldr r0, _02068E80 ; =0x000001EE + cmp r4, r0 + bne _02068E62 + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + ldr r1, _02068E84 ; =0x000001EA + cmp r0, r1 + bne _02068E5E + mov r3, #0x1 + b _02068E70 +_02068E5E: + mov r3, #0x0 + b _02068E70 +_02068E62: + add r0, r5, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020672BC + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 +_02068E70: + str r6, [sp, #0x0] + ldr r1, [sp, #0x4] + add r0, r4, #0x0 + add r2, r7, #0x0 + bl sub_02068E88 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02068E80: .word 0x000001EE +_02068E84: .word 0x000001EA + + thumb_func_start sub_02068E88 +sub_02068E88: ; 0x02068E88 + push {r3-r5, lr} + ldr r4, _02068FDC ; =0x000001A5 + cmp r0, r4 + bgt _02068ED6 + bge _02068F54 + add r5, r4, #0x0 + sub r5, #0x46 + cmp r0, r5 + bgt _02068EA6 + sub r4, #0x46 + cmp r0, r4 + bge _02068F74 + cmp r0, #0xc9 + beq _02068F94 + b _02068FB8 +_02068EA6: + add r5, r4, #0x0 + sub r5, #0x23 + cmp r0, r5 + bgt _02068EB6 + sub r4, #0x23 + cmp r0, r4 + beq _02068F84 + b _02068FB8 +_02068EB6: + add r5, r4, #0x0 + sub r5, #0x8 + cmp r0, r5 + bgt _02068FB8 + add r5, r4, #0x0 + sub r5, #0x9 + cmp r0, r5 + blt _02068FB8 + add r5, r4, #0x0 + sub r5, #0x9 + cmp r0, r5 + beq _02068F14 + sub r4, #0x8 + cmp r0, r4 + beq _02068F26 + b _02068FB8 +_02068ED6: + add r5, r4, #0x0 + add r5, #0x48 + cmp r0, r5 + bgt _02068EFC + add r5, r4, #0x0 + add r5, #0x48 + cmp r0, r5 + bge _02068F62 + add r5, r4, #0x2 + cmp r0, r5 + bgt _02068FB8 + add r5, r4, #0x1 + cmp r0, r5 + blt _02068FB8 + beq _02068F38 + add r4, r4, #0x2 + cmp r0, r4 + beq _02068F46 + b _02068FB8 +_02068EFC: + add r5, r4, #0x0 + add r5, #0x49 + cmp r0, r5 + bgt _02068F0C + add r4, #0x49 + cmp r0, r4 + beq _02068FA6 + b _02068FB8 +_02068F0C: + add r4, #0x4a + cmp r0, r4 + beq _02068FB2 + b _02068FB8 +_02068F14: + cmp r3, #0x2 + bls _02068F1A + mov r3, #0x0 +_02068F1A: + lsr r1, r2, #0x1 + add r1, #0x48 + lsl r0, r3, #0x1 + mov r4, #0x79 + add r3, r1, r0 + b _02068FCA +_02068F26: + cmp r3, #0x2 + bls _02068F2C + mov r3, #0x0 +_02068F2C: + lsr r1, r2, #0x1 + add r1, #0x4e + lsl r0, r3, #0x1 + mov r4, #0x79 + add r3, r1, r0 + b _02068FCA +_02068F38: + cmp r3, #0x1 + bls _02068F3E + mov r3, #0x0 +_02068F3E: + add r2, #0x54 + mov r4, #0x79 + add r3, r2, r3 + b _02068FCA +_02068F46: + cmp r3, #0x1 + bls _02068F4C + mov r3, #0x0 +_02068F4C: + add r2, #0x58 + mov r4, #0x79 + add r3, r2, r3 + b _02068FCA +_02068F54: + cmp r3, #0x1 + bls _02068F5A + mov r3, #0x0 +_02068F5A: + add r2, #0x5c + mov r4, #0x79 + add r3, r2, r3 + b _02068FCA +_02068F62: + cmp r3, #0x11 + bls _02068F68 + mov r3, #0x0 +_02068F68: + lsr r1, r2, #0x1 + add r1, #0x60 + lsl r0, r3, #0x1 + mov r4, #0x79 + add r3, r1, r0 + b _02068FCA +_02068F74: + cmp r3, #0x3 + bls _02068F7A + mov r3, #0x0 +_02068F7A: + lsl r0, r2, #0x1 + add r0, #0x40 + mov r4, #0x79 + add r3, r3, r0 + b _02068FCA +_02068F84: + cmp r3, #0x3 + bls _02068F8A + mov r3, #0x0 +_02068F8A: + lsr r1, r2, #0x1 + lsl r0, r3, #0x1 + mov r4, #0x79 + add r3, r1, r0 + b _02068FCA +_02068F94: + cmp r3, #0x1c + blo _02068F9A + mov r3, #0x0 +_02068F9A: + lsr r1, r2, #0x1 + add r1, #0x8 + lsl r0, r3, #0x1 + mov r4, #0x79 + add r3, r1, r0 + b _02068FCA +_02068FA6: + cmp r3, #0x1 + bls _02068FAC + mov r3, #0x0 +_02068FAC: + mov r4, #0x79 + add r3, #0x84 + b _02068FCA +_02068FB2: + mov r4, #0x79 + mov r3, #0x84 + b _02068FCA +_02068FB8: + mov r4, #0x5 + cmp r1, #0x1 + beq _02068FC2 + mov r1, #0x1 + b _02068FC4 +_02068FC2: + mov r1, #0x0 +_02068FC4: + lsl r0, r0, #0x2 + add r0, r2, r0 + add r3, r0, r1 +_02068FCA: + add r0, sp, #0x0 + add r1, r4, #0x0 + add r2, r3, #0x0 + bl sub_020064F0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + pop {r3-r5, pc} + nop +_02068FDC: .word 0x000001A5 + + thumb_func_start sub_02068FE0 +sub_02068FE0: ; 0x02068FE0 + push {r4, lr} + add r4, r0, #0x0 + cmp r2, #0x2 + bne _02068FEE + mov r0, #0x3c + strh r0, [r4, #0x0] + b _02068FFC +_02068FEE: + mov r0, #0x6 + strh r0, [r4, #0x0] + add r0, r1, #0x0 + bl sub_0206AA30 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 +_02068FFC: + lsl r0, r1, #0x1 + strh r0, [r4, #0x2] + add r0, r0, #0x1 + strh r0, [r4, #0x4] + mov r0, #0x0 + strh r0, [r4, #0x6] + strb r0, [r4, #0x8] + str r0, [r4, #0xc] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02069010 +sub_02069010: ; 0x02069010 + push {r3-r5, lr} + sub sp, #0x20 + add r5, r1, #0x0 + mov r3, #0x1c + add r4, r0, #0x0 + str r3, [sp, #0x0] + add r0, sp, #0x4 + mov r1, #0x72 + mov r2, #0x0 + mul r3, r5 + bl sub_02006548 + add r0, sp, #0xc + add r1, r4, #0x0 + mov r2, #0x14 + blx sub_020CE3E0 + add sp, #0x20 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02069038 +sub_02069038: ; 0x02069038 + push {r3-r7, lr} + sub sp, #0x28 + add r4, r0, #0x0 + add r6, r2, #0x0 + add r5, r3, #0x0 + mov r3, #0x1c + add r0, sp, #0x8 + add r7, r1, #0x0 + str r3, [sp, #0x0] + add r0, #0x2 + mov r1, #0x72 + mov r2, #0x0 + mul r3, r6 + bl sub_02006548 + cmp r5, #0x2 + bne _0206906C + add r1, sp, #0x4 + mov r0, #0x6 + ldrsb r0, [r1, r0] + strh r0, [r1, #0x0] + ldrb r0, [r1, #0x7] + strh r0, [r1, #0x2] + ldr r0, [sp, #0x44] + strb r0, [r1, #0x4] + b _02069096 +_0206906C: + ldr r0, [sp, #0x40] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02014C3C + add r5, r0, #0x0 + cmp r5, #0x3 + blt _02069080 + bl sub_02020C2C +_02069080: + lsl r2, r5, #0x1 + add r0, sp, #0xc + ldrsb r1, [r0, r2] + add r0, sp, #0x4 + strh r1, [r0, #0x0] + add r1, sp, #0xc + add r1, #0x1 + ldrb r1, [r1, r2] + strh r1, [r0, #0x2] + ldr r1, [sp, #0x44] + strb r1, [r0, #0x4] +_02069096: + ldr r3, [sp, #0x48] + add r0, r4, #0x0 + lsl r3, r3, #0x18 + add r1, r7, #0x0 + add r2, sp, #0x4 + lsr r3, r3, #0x18 + bl sub_02014C54 + add sp, #0x28 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020690AC +sub_020690AC: ; 0x020690AC + mov r2, #0x3c + strh r2, [r0, #0x0] + lsl r1, r1, #0x1 + strh r1, [r0, #0x2] + add r1, r1, #0x1 + strh r1, [r0, #0x4] + mov r1, #0x0 + strh r1, [r0, #0x6] + strb r1, [r0, #0x8] + str r1, [r0, #0xc] + bx lr + .balign 4 + + thumb_func_start sub_020690C4 +sub_020690C4: ; 0x020690C4 + mov r0, #0xec + bx lr + + thumb_func_start sub_020690C8 +sub_020690C8: ; 0x020690C8 + mov r0, #0x88 + bx lr + + thumb_func_start sub_020690CC +sub_020690CC: ; 0x020690CC + ldr r3, _020690D0 ; =sub_020690D4 + bx r3 + .balign 4 +_020690D0: .word sub_020690D4 + 1 + + thumb_func_start sub_020690D4 +sub_020690D4: ; 0x020690D4 + push {r3, lr} + mov r1, #0x70 + mov r2, #0x0 + bl sub_020672BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + + thumb_func_start sub_020690E4 +sub_020690E4: ; 0x020690E4 + bx lr + .balign 4 + + thumb_func_start sub_020690E8 +sub_020690E8: ; 0x020690E8 + push {r3-r5, lr} + sub sp, #0x8 + mov r1, #0x5 + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + add r1, r0, #0x1 + add r0, sp, #0x0 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x8 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x15 + bl sub_02068678 + mov r1, #0x64 + add r5, r0, #0x0 + bl sub_02068788 + ldr r1, [sp, #0x4] + cmp r1, r0 + bls _02069138 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0x8 + add r2, sp, #0x4 + bl sub_02067830 +_02069138: + add r0, sp, #0x0 + ldrb r1, [r0, #0x0] + cmp r1, #0x64 + bls _02069146 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_02069146: + add r0, r5, #0x0 + bl sub_02068788 + ldr r1, [sp, #0x4] + cmp r1, r0 + blo _02069162 + add r0, r4, #0x0 + mov r1, #0xa0 + add r2, sp, #0x0 + bl sub_02067830 + add sp, #0x8 + mov r0, #0x1 + pop {r3-r5, pc} +_02069162: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + + thumb_func_start sub_02069168 +sub_02069168: ; 0x02069168 + push {r4-r7, lr} + sub sp, #0x44 + add r7, r1, #0x0 + str r0, [sp, #0x0] + mov r6, #0x0 + add r4, r2, #0x0 + add r0, r7, #0x0 + mov r1, #0x5 + add r2, r6, #0x0 + str r3, [sp, #0x4] + ldr r5, [sp, #0x58] + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x2c] + add r0, r7, #0x0 + mov r1, #0x6 + add r2, r6, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r6, #0x0 + str r0, [sp, #0x28] + add r0, r7, #0x0 + add r2, r1, #0x0 + bl sub_020671BC + str r0, [sp, #0x30] + add r0, r7, #0x0 + mov r1, #0x14 + add r2, r6, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x10] + ldr r1, _020694A0 ; =0xFFFF0000 + ldr r0, [sp, #0x30] + add r2, r6, #0x0 + and r0, r1 + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x28] + mov r1, #0x1 + bl sub_0206E7B8 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r0, [sp, #0x2c] + cmp r0, #0x40 + beq _020691E4 + cmp r1, #0x3f + bne _020691E4 + cmp r4, #0x3 + beq _020691E4 + add sp, #0x44 + add r0, r6, #0x0 + pop {r4-r7, pc} +_020691E4: + cmp r5, #0x0 + bne _020691EA + add r5, sp, #0x40 +_020691EA: + mov r0, #0x0 + mov r1, #0x2a + bl sub_02016998 + str r0, [sp, #0x18] + ldr r0, [sp, #0x2c] + ldr r1, [sp, #0x18] + bl sub_0206A394 + cmp r4, #0x3 + bls _02069202 + b _0206954A +_02069202: + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r6, #0x9 + lsl r6, r5, #0xa + lsl r6, r5, #0xa + add r0, r7, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x14] + add r0, r7, #0x0 + mov r1, #0x9 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x20] + mov r0, #0x0 + str r0, [sp, #0x24] + ldr r0, [sp, #0x1c] + mov r1, #0xa + ldr r4, [sp, #0x18] + blx sub_020EBC80 + str r1, [sp, #0x8] +_02069246: + ldrh r0, [r4, #0x0] + cmp r0, #0x1a + bls _0206924E + b _02069472 +_0206924E: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r2, #0x8 + lsl r4, r6, #0 + lsl r2, r0, #0x1 + lsl r0, r3, #0x1 + lsl r6, r5, #0x1 + lsl r6, r2, #0x8 + lsl r6, r2, #0x8 + lsl r6, r2, #0x8 + lsl r6, r7, #0x1 + lsl r2, r5, #0x2 + lsl r6, r2, #0x3 + lsl r2, r0, #0x4 + lsl r2, r3, #0x4 + lsl r0, r6, #0x4 + lsl r0, r0, #0x5 + lsl r6, r0, #0x5 + lsl r6, r2, #0x8 + lsl r6, r2, #0x8 + lsl r6, r2, #0x5 + lsl r6, r5, #0x5 + lsl r6, r0, #0x6 + lsl r2, r3, #0x6 + lsl r2, r6, #0x6 + lsl r0, r2, #0x7 + lsl r6, r5, #0x7 + lsl r4, r7, #0x7 + lsl r2, r1, #0x8 + ldr r0, [sp, #0x20] + cmp r0, #0xdc + blo _0206936C + ldrh r6, [r4, #0x4] + mov r0, #0x1 + str r0, [r5, #0x0] + b _02069472 +_0206929E: + .byte 0xA9, 0xF7 + .byte 0x6D, 0xFA, 0x00, 0x28, 0x62, 0xD1, 0x08, 0x98, 0xDC, 0x28, 0x5F, 0xD3, 0xA6, 0x88, 0x02, 0x20 + .byte 0x28, 0x60, 0xDE, 0xE0, 0xA9, 0xF7, 0x62, 0xFA, 0x01, 0x28, 0x57, 0xD1, 0x08, 0x98, 0xDC, 0x28 + .byte 0x54, 0xD3, 0xA6, 0x88, 0x03, 0x20, 0x28, 0x60, 0xD3, 0xE0, 0x61, 0x88, 0x05, 0x98, 0x81, 0x42 + .byte 0x4C, 0xDC, 0xA6, 0x88, 0x04, 0x20, 0x28, 0x60, 0xCB, 0xE0, 0x61, 0x88, 0x05, 0x98, 0x81, 0x42 + .byte 0x44, 0xDC, 0x38, 0x1C, 0xA4, 0x21, 0x00, 0x22, 0xFD, 0xF7, 0x68, 0xFF, 0x0D, 0x90, 0x38, 0x1C + .byte 0xA5, 0x21, 0x00, 0x22, 0xFD, 0xF7, 0x62, 0xFF, 0x0D, 0x99, 0x81, 0x42, 0x36, 0xD9, 0xA6, 0x88 + .byte 0x08, 0x20, 0x28, 0x60, 0xB5, 0xE0, 0x61, 0x88, 0x05, 0x98, 0x81, 0x42, 0x2E, 0xDC, 0x38, 0x1C + .byte 0xA4, 0x21, 0x00, 0x22, 0xFD, 0xF7, 0x52, 0xFF, 0x0E, 0x90, 0x38, 0x1C, 0xA5, 0x21, 0x00, 0x22 + .byte 0xFD, 0xF7, 0x4C, 0xFF, 0x0E, 0x99, 0x81, 0x42, 0x20, 0xD1, 0xA6, 0x88, 0x09, 0x20, 0x28, 0x60 + .byte 0x9F, 0xE0, 0x61, 0x88, 0x05, 0x98, 0x81, 0x42, 0x18, 0xDC, 0x38, 0x1C, 0xA4, 0x21, 0x00, 0x22 + .byte 0xFD, 0xF7, 0x3C, 0xFF, 0x0F, 0x90, 0x38, 0x1C, 0xA5, 0x21, 0x00, 0x22, 0xFD, 0xF7, 0x36, 0xFF + .byte 0x0F, 0x99, 0x81, 0x42, 0x0A, 0xD2, 0xA6, 0x88, 0x0A, 0x20, 0x28, 0x60, 0x89, 0xE0, 0x61, 0x88 + .byte 0x05, 0x98, 0x81, 0x42, 0x02, 0xDC, 0x02, 0x98, 0x05, 0x28, 0x00, 0xDB +_0206936C: + b _02069472 +_0206936E: + .byte 0xA6, 0x88 + .byte 0x0B, 0x20, 0x28, 0x60, 0x7D, 0xE0, 0x61, 0x88, 0x05, 0x98, 0x81, 0x42, 0x79, 0xDC, 0x02, 0x98 + .byte 0x05, 0x28, 0x76, 0xDB, 0xA6, 0x88, 0x0C, 0x20, 0x28, 0x60, 0x72, 0xE0, 0x61, 0x88, 0x05, 0x98 + .byte 0x81, 0x42, 0x6E, 0xDC, 0xA6, 0x88, 0x0D, 0x20, 0x28, 0x60, 0x6A, 0xE0, 0x0E, 0x20, 0x28, 0x60 + .byte 0x67, 0xE0, 0x61, 0x88, 0x04, 0x98, 0x81, 0x42, 0x63, 0xDC, 0xA6, 0x88, 0x0F, 0x20, 0x28, 0x60 + .byte 0x5F, 0xE0, 0xA9, 0xF7, 0xE3, 0xF9, 0x00, 0x28, 0x5B, 0xD1, 0x61, 0x88, 0x0A, 0x98, 0x88, 0x42 + .byte 0x57, 0xD1, 0xA6, 0x88, 0x12, 0x20, 0x28, 0x60, 0x53, 0xE0, 0xA9, 0xF7, 0xD7, 0xF9, 0x01, 0x28 + .byte 0x4F, 0xD1, 0x61, 0x88, 0x0A, 0x98, 0x88, 0x42, 0x4B, 0xD1, 0xA6, 0x88, 0x13, 0x20, 0x28, 0x60 + .byte 0x47, 0xE0, 0x61, 0x88, 0x38, 0x1C, 0x00, 0xF0, 0x27, 0xFB, 0x01, 0x28, 0x41, 0xD1, 0xA6, 0x88 + .byte 0x14, 0x20, 0x28, 0x60, 0x3D, 0xE0, 0x00, 0x98, 0x00, 0x28, 0x3A, 0xD0, 0x61, 0x88, 0x02, 0xF0 + .byte 0x71, 0xFB, 0x01, 0x28, 0x35, 0xD1, 0xA6, 0x88, 0x15, 0x20, 0x28, 0x60, 0x31, 0xE0, 0x38, 0x1C + .byte 0x6F, 0x21, 0x00, 0x22, 0xFD, 0xF7, 0xD2, 0xFE, 0x00, 0x28, 0x2A, 0xD1, 0x61, 0x88, 0x05, 0x98 + .byte 0x81, 0x42, 0x26, 0xDC, 0xA6, 0x88, 0x16, 0x20, 0x28, 0x60, 0x22, 0xE0, 0x38, 0x1C, 0x6F, 0x21 + .byte 0x00, 0x22, 0xFD, 0xF7, 0xC3, 0xFE, 0x01, 0x28, 0x1B, 0xD1, 0x61, 0x88, 0x05, 0x98, 0x81, 0x42 + .byte 0x17, 0xDC, 0xA6, 0x88, 0x17, 0x20, 0x28, 0x60, 0x13, 0xE0, 0x01, 0x99, 0x81, 0x42, 0x10, 0xD1 + .byte 0xA6, 0x88, 0x18, 0x20, 0x28, 0x60, 0x0C, 0xE0, 0x01, 0x99, 0x81, 0x42, 0x09, 0xD1, 0xA6, 0x88 + .byte 0x19, 0x20, 0x28, 0x60, 0x05, 0xE0, 0x01, 0x99, 0x81, 0x42, 0x02, 0xD1, 0xA6, 0x88, 0x1A, 0x20 + .byte 0x28, 0x60 +_02069472: + cmp r6, #0x0 + bne _0206954A + ldr r0, [sp, #0x24] + add r4, r4, #0x6 + add r0, r0, #0x1 + str r0, [sp, #0x24] + cmp r0, #0x7 + bge _02069484 + b _02069246 +_02069484: + b _0206954A +_02069486: + .byte 0x06, 0x9B, 0x00, 0x24, 0x06, 0x27, 0x05, 0x22, 0x18, 0x88 + .byte 0x05, 0x28, 0x02, 0xD0, 0x06, 0x28, 0x05, 0xD0, 0x0A, 0xE0, 0x9E, 0x88, 0x2A, 0x60, 0x07, 0xE0 +_020694A0: .word 0xFFFF0000 +_020694A4: + .byte 0x59, 0x88, 0x0A, 0x98, 0x88, 0x42, 0x01, 0xD1, 0x9E, 0x88, 0x2F, 0x60 + .byte 0x00, 0x2E, 0x4A, 0xD1, 0x64, 0x1C, 0x9B, 0x1D, 0x07, 0x2C, 0xE8, 0xDB, 0x45, 0xE0, 0x00, 0x20 + .byte 0x06, 0x9C, 0x03, 0x90, 0x22, 0x88, 0x07, 0x2A, 0x0C, 0xD1, 0x61, 0x88, 0x01, 0x98, 0x88, 0x42 + .byte 0x08, 0xD1, 0x03, 0x98, 0x06, 0x21, 0x41, 0x43, 0x06, 0x98, 0x40, 0x18, 0x86, 0x88, 0x00, 0x20 + .byte 0x28, 0x60, 0x32, 0xE0, 0x10, 0x2A, 0x13, 0xD1, 0x38, 0x1C, 0x6F, 0x21, 0x00, 0x22, 0xFD, 0xF7 + .byte 0x65, 0xFE, 0x00, 0x28, 0x0C, 0xD1, 0x61, 0x88, 0x01, 0x98, 0x88, 0x42, 0x08, 0xD1, 0x03, 0x98 + .byte 0x06, 0x21, 0x41, 0x43, 0x06, 0x98, 0x40, 0x18, 0x86, 0x88, 0x00, 0x20, 0x28, 0x60, 0x1C, 0xE0 + .byte 0x20, 0x88, 0x11, 0x28, 0x13, 0xD1, 0x38, 0x1C, 0x6F, 0x21, 0x00, 0x22, 0xFD, 0xF7, 0x4E, 0xFE + .byte 0x01, 0x28, 0x0C, 0xD1, 0x61, 0x88, 0x01, 0x98, 0x88, 0x42, 0x08, 0xD1, 0x03, 0x98, 0x06, 0x21 + .byte 0x41, 0x43, 0x06, 0x98, 0x40, 0x18, 0x86, 0x88, 0x00, 0x20, 0x28, 0x60, 0x05, 0xE0, 0x03, 0x98 + .byte 0xA4, 0x1D, 0x40, 0x1C, 0x03, 0x90, 0x07, 0x28, 0xBC, 0xDB +_0206954A: + ldr r0, [sp, #0x18] + bl sub_02016A18 + add r0, r6, #0x0 + add sp, #0x44 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02069558 +sub_02069558: ; 0x02069558 + push {r3-r4, lr} + sub sp, #0x4c + add r4, r0, #0x0 + mov r1, #0x0 + add r0, sp, #0x0 + strh r1, [r0, #0x0] + ldr r0, _020695A0 ; =0x000001EE + cmp r4, r0 + blo _0206956E + bl sub_02020C2C +_0206956E: + add r0, sp, #0x4 + blx sub_020D1C94 + ldr r1, _020695A4 ; =0x02105FC8 + add r0, sp, #0x4 + blx sub_020D1944 + add r0, sp, #0x4 + lsl r1, r4, #0x1 + mov r2, #0x0 + blx sub_020D17A0 + add r0, sp, #0x4 + add r1, sp, #0x0 + mov r2, #0x2 + blx sub_020D180C + add r0, sp, #0x4 + blx sub_020D18FC + add r0, sp, #0x0 + ldrh r0, [r0, #0x0] + add sp, #0x4c + pop {r3-r4, pc} + nop +_020695A0: .word 0x000001EE +_020695A4: .word 0x02105FC8 + + thumb_func_start sub_020695A8 +sub_020695A8: ; 0x020695A8 + push {r3, lr} + cmp r0, #0xb9 + bgt _020695CC + cmp r0, #0xb7 + blt _020695BA + beq _020695EC + cmp r0, #0xb9 + beq _020695EC + b _020695E8 +_020695BA: + cmp r0, #0x7a + bgt _020695C6 + bge _020695EC + cmp r0, #0x71 + beq _020695EC + b _020695E8 +_020695C6: + cmp r0, #0x8f + beq _020695EC + b _020695E8 +_020695CC: + cmp r0, #0xe2 + bgt _020695D8 + bge _020695EC + cmp r0, #0xca + beq _020695EC + b _020695E8 +_020695D8: + ldr r1, _020695F0 ; =0x0000013B + cmp r0, r1 + bgt _020695E2 + beq _020695EC + b _020695E8 +_020695E2: + add r1, #0x2b + cmp r0, r1 + beq _020695EC +_020695E8: + bl sub_02069558 +_020695EC: + pop {r3, pc} + nop +_020695F0: .word 0x0000013B + + thumb_func_start sub_020695F4 +sub_020695F4: ; 0x020695F4 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + mov r0, #0x0 + mov r1, #0x2c + bl sub_02016998 + str r0, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02066A6C + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r5, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020672BC + add r7, r0, #0x0 + add r0, r5, #0x0 + bl sub_020687C8 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r2, [sp, #0x0] + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_02069F9C + ldr r0, [sp, #0x0] + ldrh r1, [r0, #0x0] + ldr r0, _02069690 ; =0x0000FFFF + cmp r1, r0 + beq _0206967C + ldr r4, [sp, #0x0] + lsl r7, r6, #0x9 +_02069648: + ldrh r1, [r4, #0x0] + mov r0, #0xfe + lsl r0, r0, #0x8 + and r0, r1 + cmp r0, r7 + bgt _0206967C + ldr r0, _02069694 ; =0x000001FF + and r0, r1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020696A8 + ldr r1, _02069690 ; =0x0000FFFF + cmp r0, r1 + bne _02069672 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02069718 +_02069672: + add r4, r4, #0x2 + ldrh r1, [r4, #0x0] + ldr r0, _02069690 ; =0x0000FFFF + cmp r1, r0 + bne _02069648 +_0206967C: + ldr r0, [sp, #0x0] + bl sub_02016A18 + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02066A94 + add sp, #0x8 + pop {r3-r7, pc} + nop +_02069690: .word 0x0000FFFF +_02069694: .word 0x000001FF + + thumb_func_start sub_02069698 +sub_02069698: ; 0x02069698 + push {r4, lr} + add r4, r1, #0x0 + bl sub_020690E4 + add r1, r4, #0x0 + bl sub_020696A8 + pop {r4, pc} + + thumb_func_start sub_020696A8 +sub_020696A8: ; 0x020696A8 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + ldr r1, _02069700 ; =0x0000FFFF + add r6, r0, #0x0 + str r1, [sp, #0x4] + bl sub_02066A6C + mov r4, #0x0 + str r0, [sp, #0x0] + add r7, r4, #0x0 +_020696BE: + add r1, r4, #0x0 + add r0, r6, #0x0 + add r1, #0x36 + add r2, r7, #0x0 + bl sub_020672BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bne _020696E0 + lsl r2, r4, #0x18 + add r0, r6, #0x0 + add r1, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_020697D4 + str r5, [sp, #0x4] + b _020696F0 +_020696E0: + cmp r0, r5 + bne _020696EA + ldr r0, _02069704 ; =0x0000FFFE + str r0, [sp, #0x4] + b _020696F0 +_020696EA: + add r4, r4, #0x1 + cmp r4, #0x4 + blt _020696BE +_020696F0: + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl sub_02066A94 + ldr r0, [sp, #0x4] + add sp, #0x8 + pop {r3-r7, pc} + nop +_02069700: .word 0x0000FFFF +_02069704: .word 0x0000FFFE + + thumb_func_start sub_02069708 +sub_02069708: ; 0x02069708 + push {r4, lr} + add r4, r1, #0x0 + bl sub_020690E4 + add r1, r4, #0x0 + bl sub_02069718 + pop {r4, pc} + + thumb_func_start sub_02069718 +sub_02069718: ; 0x02069718 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + str r1, [sp, #0x0] + bl sub_02066A6C + str r0, [sp, #0xc] + add r0, sp, #0x18 + mov r4, #0x0 + str r0, [sp, #0x4] + add r7, sp, #0x14 + add r6, sp, #0x10 +_02069730: + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x37 + mov r2, #0x0 + bl sub_020672BC + ldr r1, [sp, #0x4] + mov r2, #0x0 + strh r0, [r1, #0x0] + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x3b + bl sub_020672BC + add r1, r4, #0x0 + strb r0, [r7, #0x0] + add r0, r5, #0x0 + add r1, #0x3f + mov r2, #0x0 + bl sub_020672BC + strb r0, [r6, #0x0] + ldr r0, [sp, #0x4] + add r4, r4, #0x1 + add r0, r0, #0x2 + str r0, [sp, #0x4] + add r7, r7, #0x1 + add r6, r6, #0x1 + cmp r4, #0x3 + blt _02069730 + ldr r0, [sp, #0x0] + add r1, sp, #0x10 + strh r0, [r1, #0xe] + ldr r0, [sp, #0x0] + mov r1, #0x5 + bl sub_0206AB18 + add r1, sp, #0x10 + strb r0, [r1, #0x7] + mov r4, #0x0 + add r0, sp, #0x18 + strb r4, [r1, #0x3] + str r0, [sp, #0x8] + add r7, sp, #0x14 + add r6, sp, #0x10 +_0206978A: + add r1, r4, #0x0 + ldr r2, [sp, #0x8] + add r0, r5, #0x0 + add r1, #0x36 + bl sub_02067960 + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x3a + add r2, r7, #0x0 + bl sub_02067960 + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x3e + add r2, r6, #0x0 + bl sub_02067960 + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r0, r0, #0x2 + str r0, [sp, #0x8] + add r7, r7, #0x1 + add r6, r6, #0x1 + cmp r4, #0x4 + blt _0206978A + ldr r1, [sp, #0xc] + add r0, r5, #0x0 + bl sub_02066A94 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020697CC +sub_020697CC: ; 0x020697CC + ldr r3, _020697D0 ; =sub_020697D4 + bx r3 + .balign 4 +_020697D0: .word sub_020697D4 + 1 + + thumb_func_start sub_020697D4 +sub_020697D4: ; 0x020697D4 + push {r0-r3} + push {r3-r5, lr} + add r4, r2, #0x0 + add r1, r4, #0x0 + add r1, #0x36 + add r2, sp, #0x14 + add r5, r0, #0x0 + bl sub_02067960 + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x3e + mov r2, #0x0 + bl sub_020672BC + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + add r0, sp, #0x10 + ldrh r0, [r0, #0x4] + bl sub_0206AB30 + add r1, sp, #0x0 + strb r0, [r1, #0x0] + add r4, #0x3a + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, sp, #0x0 + bl sub_02067960 + pop {r3-r5} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4 + + thumb_func_start sub_02069818 +sub_02069818: ; 0x02069818 + push {r3-r7, lr} + sub sp, #0x10 + add r7, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x0 + mov r1, #0x2c + str r2, [sp, #0x0] + str r0, [sp, #0x8] + bl sub_02016998 + add r4, r0, #0x0 + add r0, r7, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + add r0, r7, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0xc] + add r0, r7, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r0, [sp, #0x4] + ldr r1, [sp, #0xc] + add r2, r4, #0x0 + bl sub_02069F9C + ldr r0, [r5, #0x0] + lsl r0, r0, #0x1 + ldrh r2, [r4, r0] + ldr r0, _020698D8 ; =0x0000FFFF + cmp r2, r0 + bne _0206987A + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0206987A: + mov r0, #0xfe + lsl r0, r0, #0x8 + add r3, r2, #0x0 + and r3, r0 + lsl r6, r6, #0x9 + cmp r6, r3 + beq _020698AC + ldr r1, _020698D8 ; =0x0000FFFF +_0206988A: + ldr r2, [r5, #0x0] + add r2, r2, #0x1 + str r2, [r5, #0x0] + lsl r2, r2, #0x1 + ldrh r2, [r4, r2] + cmp r2, r1 + bne _020698A4 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_020698A4: + add r3, r2, #0x0 + and r3, r0 + cmp r6, r3 + bne _0206988A +_020698AC: + cmp r6, r3 + bne _020698CC + ldr r0, _020698DC ; =0x000001FF + add r1, r2, #0x0 + and r1, r0 + ldr r0, [sp, #0x0] + strh r1, [r0, #0x0] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x0] + add r0, r0, #0x1 + str r0, [r5, #0x0] + ldrh r1, [r1, #0x0] + add r0, r7, #0x0 + bl sub_02069698 + str r0, [sp, #0x8] +_020698CC: + add r0, r4, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x8] + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_020698D8: .word 0x0000FFFF +_020698DC: .word 0x000001FF + + thumb_func_start sub_020698E0 +sub_020698E0: ; 0x020698E0 + ldr r3, _020698E4 ; =sub_020698E8 + bx r3 + .balign 4 +_020698E4: .word sub_020698E8 + 1 + + thumb_func_start sub_020698E8 +sub_020698E8: ; 0x020698E8 + push {r4-r6, lr} + sub sp, #0x8 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r1, #0x36 + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020672BC + add r1, sp, #0x0 + strh r0, [r1, #0x4] + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x3a + mov r2, #0x0 + bl sub_020672BC + add r1, sp, #0x0 + strb r0, [r1, #0x2] + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x3e + mov r2, #0x0 + bl sub_020672BC + add r1, sp, #0x0 + strb r0, [r1, #0x0] + add r1, r6, #0x0 + add r0, r5, #0x0 + add r1, #0x36 + mov r2, #0x0 + bl sub_020672BC + add r1, sp, #0x0 + strh r0, [r1, #0x6] + add r1, r6, #0x0 + add r0, r5, #0x0 + add r1, #0x3a + mov r2, #0x0 + bl sub_020672BC + add r1, sp, #0x0 + strb r0, [r1, #0x3] + add r1, r6, #0x0 + add r0, r5, #0x0 + add r1, #0x3e + mov r2, #0x0 + bl sub_020672BC + add r1, sp, #0x0 + strb r0, [r1, #0x1] + add r1, r4, #0x0 + add r2, sp, #0x4 + add r0, r5, #0x0 + add r1, #0x36 + add r2, #0x2 + bl sub_02067960 + add r1, r4, #0x0 + add r2, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3a + add r2, #0x3 + bl sub_02067960 + add r4, #0x3e + add r2, sp, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, #0x1 + bl sub_02067960 + add r1, r6, #0x0 + add r0, r5, #0x0 + add r1, #0x36 + add r2, sp, #0x4 + bl sub_02067960 + add r1, r6, #0x0 + add r2, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3a + add r2, #0x2 + bl sub_02067960 + add r6, #0x3e + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, sp, #0x0 + bl sub_02067960 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020699A4 +sub_020699A4: ; 0x020699A4 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + bhs _02069A0A + mov r7, #0x0 + add r6, sp, #0x0 +_020699B2: + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x37 + add r2, r7, #0x0 + bl sub_020671BC + add r1, r4, #0x0 + strh r0, [r6, #0x2] + add r0, r5, #0x0 + add r1, #0x3b + mov r2, #0x0 + bl sub_020671BC + add r1, r4, #0x0 + strb r0, [r6, #0x1] + add r0, r5, #0x0 + add r1, #0x3f + mov r2, #0x0 + bl sub_020671BC + add r1, r4, #0x0 + add r2, sp, #0x0 + strb r0, [r6, #0x0] + add r0, r5, #0x0 + add r1, #0x36 + add r2, #0x2 + bl sub_02067830 + add r1, r4, #0x0 + add r2, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3a + add r2, #0x1 + bl sub_02067830 + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x3e + add r2, sp, #0x0 + bl sub_02067830 + add r4, r4, #0x1 + cmp r4, #0x3 + blo _020699B2 +_02069A0A: + mov r1, #0x0 + add r0, sp, #0x0 + strh r1, [r0, #0x2] + strb r1, [r0, #0x1] + strb r1, [r0, #0x0] + add r2, sp, #0x0 + add r0, r5, #0x0 + mov r1, #0x39 + add r2, #0x2 + bl sub_02067830 + add r2, sp, #0x0 + add r0, r5, #0x0 + mov r1, #0x3d + add r2, #0x1 + bl sub_02067830 + add r0, r5, #0x0 + mov r1, #0x41 + add r2, sp, #0x0 + bl sub_02067830 + pop {r3-r7, pc} + + thumb_func_start sub_02069A38 +sub_02069A38: ; 0x02069A38 + push {r3-r7, lr} + mov r4, #0x0 + add r6, r0, #0x0 + add r5, r1, #0x0 + add r7, r4, #0x0 +_02069A42: + add r1, r4, #0x0 + add r0, r6, #0x0 + add r1, #0x36 + add r2, r7, #0x0 + bl sub_020671BC + cmp r5, r0 + beq _02069A58 + add r4, r4, #0x1 + cmp r4, #0x4 + blt _02069A42 +_02069A58: + cmp r4, #0x4 + beq _02069A60 + mov r0, #0x1 + pop {r3-r7, pc} +_02069A60: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02069A64 +sub_02069A64: ; 0x02069A64 + push {r4-r5, lr} + sub sp, #0x1c + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + add r3, r4, #0x0 + mov r2, #0x11 +_02069A74: + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02069A74 + ldrh r1, [r4, #0x4] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1f + beq _02069A8E + mov r0, #0x1 + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strh r0, [r4, #0x4] +_02069A8E: + add r0, r4, #0x0 + mov r1, #0x9f + add r2, sp, #0x0 + bl sub_02067830 + add r0, r4, #0x0 + mov r1, #0xa2 + add r2, sp, #0x0 + bl sub_02067830 + add r0, r4, #0x0 + mov r1, #0xa3 + add r2, sp, #0x0 + bl sub_02067830 + mov r0, #0x0 + bl sub_020256BC + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0xa9 + add r2, r5, #0x0 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02016A18 + add r0, r4, #0x0 + mov r1, #0xa1 + add r2, sp, #0x0 + bl sub_02067830 + mov r0, #0x0 + add r1, sp, #0x4 + mov r2, #0x18 + blx sub_020CE240 + add r0, r4, #0x0 + mov r1, #0xaa + add r2, sp, #0x4 + bl sub_02067830 + add r0, r4, #0x0 + bl sub_02066ED8 + add sp, #0x1c + pop {r4-r5, pc} + + thumb_func_start sub_02069AEC +sub_02069AEC: ; 0x02069AEC + push {r3-r7, lr} + str r0, [sp, #0x0] + bl sub_0206B9AC + add r7, r0, #0x0 + mov r6, #0x1 + mov r5, #0x0 + cmp r7, #0x0 + ble _02069B3C +_02069AFE: + ldr r0, [sp, #0x0] + add r1, r5, #0x0 + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02069B36 + add r0, r4, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _02069B36 + add r0, r4, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, r6 + bls _02069B36 + add r6, r0, #0x0 +_02069B36: + add r5, r5, #0x1 + cmp r5, r7 + blt _02069AFE +_02069B3C: + add r0, r6, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02069B40 +sub_02069B40: ; 0x02069B40 + push {r3, lr} + sub sp, #0x8 + add r3, r0, #0x0 + mov r0, #0x2 + str r0, [sp, #0x0] + add r0, sp, #0x4 + mov r1, #0x6d + mov r2, #0x0 + lsl r3, r3, #0x1 + bl sub_02006548 + add r0, sp, #0x4 + ldrh r0, [r0, #0x0] + add sp, #0x8 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02069B60 +sub_02069B60: ; 0x02069B60 + push {r3, lr} + sub sp, #0x8 + add r3, r0, #0x0 + mov r2, #0x0 + add r0, sp, #0x4 + strh r2, [r0, #0x0] + cmp r3, #0x97 + bhi _02069B7E + mov r0, #0x2 + str r0, [sp, #0x0] + add r0, sp, #0x4 + mov r1, #0x91 + lsl r3, r3, #0x1 + bl sub_02006548 +_02069B7E: + add r0, sp, #0x4 + ldrh r0, [r0, #0x0] + add sp, #0x8 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02069B88 +sub_02069B88: ; 0x02069B88 + push {r3-r4} + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r2, #0x1d +_02069B90: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02069B90 + ldr r0, [r4, #0x0] + str r0, [r3, #0x0] + pop {r3-r4} + bx lr + + thumb_func_start sub_02069BA0 +sub_02069BA0: ; 0x02069BA0 + push {r3-r4} + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r2, #0x11 +_02069BA8: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02069BA8 + pop {r3-r4} + bx lr + + thumb_func_start sub_02069BB4 +sub_02069BB4: ; 0x02069BB4 + push {r3-r4} + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r2, #0x11 +_02069BBC: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02069BBC + pop {r3-r4} + bx lr + + thumb_func_start sub_02069BC8 +sub_02069BC8: ; 0x02069BC8 + ldr r3, _02069BCC ; =sub_02069BD0 + bx r3 + .balign 4 +_02069BCC: .word sub_02069BD0 + 1 + + thumb_func_start sub_02069BD0 +sub_02069BD0: ; 0x02069BD0 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x0 + add r2, r1, #0x0 + bl sub_020672BC + add r1, r4, #0x0 + bl sub_02069BE4 + pop {r4, pc} + + thumb_func_start sub_02069BE4 +sub_02069BE4: ; 0x02069BE4 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02068884 + lsl r1, r0, #0x2 + add r1, r0, r1 + ldr r0, _02069BF8 ; =0x020F7F16 + add r0, r0, r1 + ldrsb r0, [r4, r0] + pop {r4, pc} + .balign 4 +_02069BF8: .word 0x020F7F16 + + thumb_func_start sub_02069BFC +sub_02069BFC: ; 0x02069BFC + push {r3-r7, lr} + add r4, r0, #0x0 + add r7, r1, #0x0 + mov r0, #0x0 + mov r1, #0x2c + add r5, r2, #0x0 + bl sub_02016998 + add r6, r0, #0x0 + add r0, r4, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_02069F9C + ldrh r1, [r6, #0x0] + ldr r0, _02069C44 ; =0x0000FFFF + mov r4, #0x0 + cmp r1, r0 + beq _02069C3A + ldr r1, _02069C48 ; =0x000001FF + ldr r2, _02069C44 ; =0x0000FFFF + add r0, r6, #0x0 +_02069C28: + ldrh r3, [r0, #0x0] + add r0, r0, #0x2 + add r4, r4, #0x1 + and r3, r1 + strh r3, [r5, #0x0] + ldrh r3, [r0, #0x0] + add r5, r5, #0x2 + cmp r3, r2 + bne _02069C28 +_02069C3A: + add r0, r6, #0x0 + bl sub_02016A18 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_02069C44: .word 0x0000FFFF +_02069C48: .word 0x000001FF + + thumb_func_start sub_02069C4C +sub_02069C4C: ; 0x02069C4C + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_0206B9AC + add r6, r0, #0x0 + bl sub_0201B9EC + mov r1, #0x1 + lsl r1, r1, #0xe + cmp r0, r1 + beq _02069C70 + lsl r1, r1, #0x1 + cmp r0, r1 + beq _02069C70 + mov r1, #0x3 + lsl r1, r1, #0xe + cmp r0, r1 + bne _02069CF2 +_02069C70: + bl sub_0201B9EC + add r1, r6, #0x0 + blx sub_020EBC80 + add r0, r5, #0x0 + add r7, r1, #0x0 + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02069C70 + add r0, r4, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _02069C70 + add r0, r7, #0x0 + bl sub_0206A92C + add r1, r0, #0x0 + lsl r1, r1, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl sub_02069CF4 + cmp r0, #0x0 + bne _02069CF2 + add r5, sp, #0x0 + mov r6, #0x7 +_02069CB8: + bl sub_0201B9EC + strb r0, [r5, #0x0] + ldrb r2, [r5, #0x0] + add r1, r2, #0x0 + and r1, r6 + beq _02069CB8 + mov r0, #0xf0 + tst r0, r2 + beq _02069CD0 + add r0, sp, #0x0 + strb r1, [r0, #0x0] +_02069CD0: + add r1, sp, #0x0 + ldrb r2, [r1, #0x0] + lsl r0, r2, #0x4 + orr r0, r2 + strb r0, [r1, #0x0] + ldrb r2, [r1, #0x0] + mov r0, #0xf3 + and r0, r2 + strb r0, [r1, #0x0] + ldrb r0, [r1, #0x0] + add r2, sp, #0x0 + add r0, r0, #0x1 + strb r0, [r1, #0x0] + add r0, r4, #0x0 + mov r1, #0x99 + bl sub_02067830 +_02069CF2: + pop {r3-r7, pc} + + thumb_func_start sub_02069CF4 +sub_02069CF4: ; 0x02069CF4 + push {r3-r7, lr} + mov r6, #0x0 + add r5, r1, #0x0 + str r0, [sp, #0x0] + mov r4, #0x1 + add r7, r6, #0x0 + cmp r5, #0x0 + beq _02069D32 +_02069D04: + mov r0, #0x1 + tst r0, r5 + beq _02069D26 + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl sub_0206B9B0 + mov r1, #0x99 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02069D26 + add r0, r7, #0x0 + orr r0, r4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +_02069D26: + lsl r0, r5, #0x17 + add r6, r6, #0x1 + lsl r4, r4, #0x1 + lsr r5, r0, #0x18 + bne _02069D04 + b _02069D4A +_02069D32: + add r1, r6, #0x0 + bl sub_0206B9B0 + mov r1, #0x99 + add r2, r6, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02069D4A + add r0, r7, #0x1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +_02069D4A: + add r0, r7, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02069D50 +sub_02069D50: ; 0x02069D50 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + add r5, r1, #0x0 + bl sub_0206B9AC + mov r6, #0x0 + str r0, [sp, #0x4] + cmp r0, #0x0 + ble _02069DC2 + add r4, sp, #0x8 +_02069D66: + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + add r7, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02069DBA + add r0, r7, #0x0 + mov r1, #0x99 + mov r2, #0x0 + bl sub_020671BC + strb r0, [r4, #0x0] + ldrb r1, [r4, #0x0] + mov r0, #0xf + and r0, r1 + beq _02069DBA + cmp r0, r5 + blt _02069D98 + cmp r5, #0x4 + ble _02069DA2 +_02069D98: + ldrb r1, [r4, #0x0] + mov r0, #0xf0 + and r0, r1 + strb r0, [r4, #0x0] + b _02069DA6 +_02069DA2: + sub r0, r1, r5 + strb r0, [r4, #0x0] +_02069DA6: + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _02069DB0 + mov r0, #0x10 + strb r0, [r4, #0x0] +_02069DB0: + add r0, r7, #0x0 + mov r1, #0x99 + add r2, sp, #0x8 + bl sub_02067830 +_02069DBA: + ldr r0, [sp, #0x4] + add r6, r6, #0x1 + cmp r6, r0 + blt _02069D66 +_02069DC2: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02069DC8 +sub_02069DC8: ; 0x02069DC8 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_0206B9AC + add r7, r0, #0x0 + bl sub_0201B9EC + mov r1, #0x3 + blx sub_020EBC80 + cmp r1, #0x0 + bne _02069E70 + mov r4, #0x0 + cmp r7, #0x0 + ble _02069E70 + sub r0, r7, #0x1 + str r0, [sp, #0x0] +_02069DEC: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + add r6, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02069E6A + add r0, r6, #0x0 + mov r1, #0x99 + mov r2, #0x0 + bl sub_020671BC + add r1, sp, #0x4 + strb r0, [r1, #0x0] + add r0, r1, #0x0 + ldrb r1, [r0, #0x0] + mov r0, #0xf + tst r0, r1 + beq _02069E6A + cmp r4, #0x0 + beq _02069E40 + add r0, r5, #0x0 + sub r1, r4, #0x1 + bl sub_0206B9B0 + mov r1, #0x99 + mov r2, #0x0 + add r6, r0, #0x0 + bl sub_020671BC + mov r1, #0xf0 + tst r0, r1 + bne _02069E40 + add r0, r6, #0x0 + mov r1, #0x99 + add r2, sp, #0x4 + bl sub_02067830 +_02069E40: + ldr r0, [sp, #0x0] + cmp r4, r0 + bge _02069E6A + add r0, r5, #0x0 + add r1, r4, #0x1 + bl sub_0206B9B0 + mov r1, #0x99 + mov r2, #0x0 + add r6, r0, #0x0 + bl sub_020671BC + mov r1, #0xf0 + tst r0, r1 + bne _02069E6A + add r0, r6, #0x0 + mov r1, #0x99 + add r2, sp, #0x4 + bl sub_02067830 + add r4, r4, #0x1 +_02069E6A: + add r4, r4, #0x1 + cmp r4, r7 + blt _02069DEC +_02069E70: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02069E74 +sub_02069E74: ; 0x02069E74 + ldr r3, _02069E78 ; =sub_02069E7C + bx r3 + .balign 4 +_02069E78: .word sub_02069E7C + 1 + + thumb_func_start sub_02069E7C +sub_02069E7C: ; 0x02069E7C + push {r3, lr} + mov r1, #0x99 + mov r2, #0x0 + bl sub_020672BC + mov r1, #0xf + tst r0, r1 + beq _02069E90 + mov r0, #0x1 + pop {r3, pc} +_02069E90: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02069E94 +sub_02069E94: ; 0x02069E94 + ldr r3, _02069E98 ; =sub_02069E9C + bx r3 + .balign 4 +_02069E98: .word sub_02069E9C + 1 + + thumb_func_start sub_02069E9C +sub_02069E9C: ; 0x02069E9C + push {r3, lr} + mov r1, #0x99 + mov r2, #0x0 + bl sub_020672BC + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0xf + tst r0, r1 + beq _02069EB4 + mov r0, #0x0 + pop {r3, pc} +_02069EB4: + mov r0, #0xf0 + tst r0, r1 + beq _02069EBE + mov r0, #0x1 + pop {r3, pc} +_02069EBE: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02069EC4 +sub_02069EC4: ; 0x02069EC4 + ldr r3, _02069EC8 ; =sub_02069ECC + bx r3 + .balign 4 +_02069EC8: .word sub_02069ECC + 1 + + thumb_func_start sub_02069ECC +sub_02069ECC: ; 0x02069ECC + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xa + mov r2, #0x0 + bl sub_020672BC + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x6 + mov r2, #0x0 + bl sub_020672BC + ldr r1, _02069F20 ; =0x000001ED + cmp r4, r1 + bne _02069F1C + cmp r6, #0x79 + bne _02069F1C + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x1 + mov r2, #0x0 + bl sub_0206E7B8 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_02069F24 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0x70 + add r2, sp, #0x0 + bl sub_02067960 +_02069F1C: + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02069F20: .word 0x000001ED + + thumb_func_start sub_02069F24 +sub_02069F24: ; 0x02069F24 + sub r0, #0x7d + cmp r0, #0xf + bhi _02069F96 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r3, #0 + lsl r2, r4, #0 + lsl r6, r4, #0 + lsl r2, r5, #0 + lsl r6, r5, #0 + lsl r2, r6, #0 + lsl r6, r6, #0 + lsl r2, r7, #0 + lsl r6, r7, #0 + lsl r2, r0, #0x1 + lsl r6, r0, #0x1 + lsl r2, r1, #0x1 + lsl r6, r1, #0x1 + lsl r2, r2, #0x1 + lsl r6, r2, #0x1 + lsl r2, r3, #0x1 + mov r0, #0xa + bx lr +_02069F5A: + .byte 0x0B, 0x20, 0x70, 0x47, 0x0D, 0x20 + .byte 0x70, 0x47, 0x0C, 0x20, 0x70, 0x47, 0x0F, 0x20, 0x70, 0x47, 0x01, 0x20, 0x70, 0x47, 0x03, 0x20 + .byte 0x70, 0x47, 0x04, 0x20, 0x70, 0x47, 0x02, 0x20, 0x70, 0x47, 0x0E, 0x20, 0x70, 0x47, 0x06, 0x20 + .byte 0x70, 0x47, 0x05, 0x20, 0x70, 0x47, 0x07, 0x20, 0x70, 0x47, 0x10, 0x20, 0x70, 0x47, 0x11, 0x20 + .byte 0x70, 0x47, 0x08, 0x20, 0x70, 0x47 +_02069F96: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02069F9C +sub_02069F9C: ; 0x02069F9C + push {r4, lr} + add r4, r2, #0x0 + bl sub_0206A8FC + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x21 + bl sub_020064F0 + pop {r4, pc} + + thumb_func_start sub_02069FB0 +sub_02069FB0: ; 0x02069FB0 + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _0206A010 ; =0x000001B9 + add r4, r2, #0x0 + add r5, r1, #0x0 + add r6, r3, #0x0 + cmp r4, r0 + bne _02069FFC + add r0, r5, #0x0 + bl sub_02005F14 + cmp r0, #0x0 + bne _02069FE2 + mov r0, #0x1 + bl sub_02005E80 + ldr r0, [sp, #0x20] + ldr r3, [sp, #0x18] + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020056AC + pop {r3-r7, pc} +_02069FE2: + ldr r0, [sp, #0x1c] + cmp r0, #0x0 + beq _02069FEE + mov r0, #0x1 + bl sub_02005E80 +_02069FEE: + ldr r2, [sp, #0x18] + add r0, r7, #0x0 + mov r1, #0x0 + add r3, r6, #0x0 + bl sub_02005E90 + pop {r3-r7, pc} +_02069FFC: + ldr r0, [sp, #0x20] + ldr r3, [sp, #0x18] + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_020056AC + pop {r3-r7, pc} + nop +_0206A010: .word 0x000001B9 + + thumb_func_start sub_0206A014 +sub_0206A014: ; 0x0206A014 + push {r3-r6, lr} + sub sp, #0xc + ldr r6, [sp, #0x20] + add r5, r0, #0x0 + str r6, [sp, #0x0] + ldr r6, [sp, #0x24] + add r4, r2, #0x0 + str r6, [sp, #0x4] + bl sub_0206A054 + cmp r4, #0xe + bne _0206A050 + add r0, r5, #0x0 + mov r1, #0xa3 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0xa2 + add r2, sp, #0x8 + bl sub_02067830 + mov r0, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0x9f + add r2, sp, #0x8 + bl sub_02067830 +_0206A050: + add sp, #0xc + pop {r3-r6, pc} + + thumb_func_start sub_0206A054 +sub_0206A054: ; 0x0206A054 + push {r0-r3} + push {r3-r4, lr} + sub sp, #0x4 + ldr r2, [sp, #0x24] + add r4, r0, #0x0 + str r2, [sp, #0x0] + mov r2, #0x0 + bl sub_020808AC + ldr r2, _0206A090 ; =0x020ECAC0 + add r0, r4, #0x0 + mov r1, #0x79 + bl sub_02067960 + add r0, r4, #0x0 + mov r1, #0x9a + add r2, sp, #0x18 + bl sub_02067960 + add r0, r4, #0x0 + mov r1, #0x9d + add r2, sp, #0x20 + bl sub_02067960 + add sp, #0x4 + pop {r3-r4} + pop {r3} + add sp, #0x10 + bx r3 + nop +_0206A090: .word 0x020ECAC0 + + thumb_func_start sub_0206A094 +sub_0206A094: ; 0x0206A094 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + mov r0, #0x81 + add r7, r2, #0x0 + tst r0, r1 + bne _0206A12E + bl sub_0201B9EC + mov r1, #0x64 + blx sub_020EBC80 + add r4, r1, #0x0 + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r5, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + mov r2, #0x10 + bl sub_02068654 + add r1, sp, #0x4 + strh r0, [r1, #0x2] + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + mov r2, #0x11 + bl sub_02068654 + add r1, sp, #0x4 + strh r0, [r1, #0x0] + ldrh r2, [r1, #0x2] + ldrh r0, [r1, #0x0] + cmp r2, r0 + bne _0206A104 + cmp r2, #0x0 + beq _0206A104 + add r2, sp, #0x4 + add r0, r5, #0x0 + mov r1, #0x6 + add r2, #0x2 + bl sub_02067830 + add sp, #0x8 + pop {r3-r7, pc} +_0206A104: + ldr r0, _0206A134 ; =0x020F7ECC + lsl r1, r7, #0x2 + ldrh r0, [r0, r1] + cmp r4, r0 + blo _0206A12E + ldr r0, _0206A138 ; =0x020F7ECE + ldrh r0, [r0, r1] + cmp r4, r0 + add r2, sp, #0x4 + bhs _0206A126 + add r0, r5, #0x0 + mov r1, #0x6 + add r2, #0x2 + bl sub_02067830 + add sp, #0x8 + pop {r3-r7, pc} +_0206A126: + add r0, r5, #0x0 + mov r1, #0x6 + bl sub_02067830 +_0206A12E: + add sp, #0x8 + pop {r3-r7, pc} + nop +_0206A134: .word 0x020F7ECC +_0206A138: .word 0x020F7ECE + + thumb_func_start sub_0206A13C +sub_0206A13C: ; 0x0206A13C + ldr r3, _0206A140 ; =sub_0206A144 + bx r3 + .balign 4 +_0206A140: .word sub_0206A144 + 1 + + thumb_func_start sub_0206A144 +sub_0206A144: ; 0x0206A144 + push {r4-r6, lr} + add r6, r1, #0x0 + mov r1, #0xad + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020672BC + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r5, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020672BC + add r1, r0, #0x0 + add r0, r4, #0x0 + add r2, r6, #0x0 + bl sub_0206A16C + pop {r4-r6, pc} + + thumb_func_start sub_0206A16C +sub_0206A16C: ; 0x0206A16C + push {r4, lr} + ldr r3, _0206A1C0 ; =0x000001EE + cmp r0, r3 + bne _0206A178 + mov r0, #0x0 + pop {r4, pc} +_0206A178: + cmp r2, #0x20 + bhs _0206A186 + mov r3, #0x1 + add r4, r3, #0x0 + lsl r4, r2 + mov r2, #0x1d + b _0206A1B0 +_0206A186: + cmp r2, #0x40 + bhs _0206A196 + mov r3, #0x1 + sub r2, #0x20 + add r4, r3, #0x0 + lsl r4, r2 + mov r2, #0x1e + b _0206A1B0 +_0206A196: + cmp r2, #0x60 + bhs _0206A1A6 + mov r3, #0x1 + sub r2, #0x40 + add r4, r3, #0x0 + lsl r4, r2 + mov r2, #0x1f + b _0206A1B0 +_0206A1A6: + mov r3, #0x1 + sub r2, #0x60 + add r4, r3, #0x0 + lsl r4, r2 + mov r2, #0x20 +_0206A1B0: + bl sub_02068654 + tst r0, r4 + beq _0206A1BC + mov r0, #0x1 + pop {r4, pc} +_0206A1BC: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0206A1C0: .word 0x000001EE + + thumb_func_start sub_0206A1C4 +sub_0206A1C4: ; 0x0206A1C4 + ldr r3, _0206A1C8 ; =sub_0206A1CC + bx r3 + .balign 4 +_0206A1C8: .word sub_0206A1CC + 1 + + thumb_func_start sub_0206A1CC +sub_0206A1CC: ; 0x0206A1CC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02066A6C + add r7, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + mov r1, #0x0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r2, r1, #0x0 + bl sub_020672BC + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x18 + bl sub_02068678 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0x19 + bl sub_02068678 + str r0, [sp, #0x0] + cmp r0, #0x0 + beq _0206A226 + mov r0, #0x1 + tst r0, r6 + beq _0206A21A + add r0, r5, #0x0 + mov r1, #0xa + add r2, sp, #0x0 + bl sub_02067960 + b _0206A230 +_0206A21A: + add r0, r5, #0x0 + mov r1, #0xa + add r2, sp, #0x4 + bl sub_02067960 + b _0206A230 +_0206A226: + add r0, r5, #0x0 + mov r1, #0xa + add r2, sp, #0x4 + bl sub_02067960 +_0206A230: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02066A94 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0206A23C +sub_0206A23C: ; 0x0206A23C + push {r4-r7, lr} + sub sp, #0x1c + add r5, r0, #0x0 + mov r0, #0x0 + str r1, [sp, #0x0] + bl sub_020669C0 + str r0, [sp, #0x4] + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02069B88 + ldr r0, [sp, #0x4] + ldr r1, [r5, #0x0] + mov r2, #0x0 + bl sub_0206A418 + add r4, r0, #0x0 + ldr r0, [sp, #0x4] + ldr r1, [r5, #0x0] + mov r2, #0x1 + bl sub_0206A418 + add r6, r0, #0x0 + ldr r0, [sp, #0x4] + ldr r1, [r5, #0x0] + mov r2, #0x2 + bl sub_0206A418 + add r7, r0, #0x0 + ldr r0, [sp, #0x4] + ldr r1, [r5, #0x0] + mov r2, #0x3 + bl sub_0206A418 + str r0, [sp, #0x8] + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + mov r2, #0x0 + bl sub_0206A418 + str r0, [sp, #0xc] + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + mov r2, #0x1 + bl sub_0206A418 + str r0, [sp, #0x10] + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + mov r2, #0x2 + bl sub_0206A418 + str r0, [sp, #0x14] + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + mov r2, #0x3 + bl sub_0206A418 + ldr r2, [sp, #0x4] + str r0, [sp, #0x18] + ldr r0, [sp, #0x4] + ldrh r2, [r2, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3D0 + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3D0 + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3D0 + ldr r0, [sp, #0x0] + str r0, [r5, #0x0] + ldr r2, [sp, #0xc] + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0xc] + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0xc] + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0xc] + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0xc] + ldr r2, [sp, #0x10] + ldmia r6!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0x10] + ldmia r6!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0x10] + ldmia r6!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0x10] + ldmia r6!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0x10] + ldr r2, [sp, #0x14] + ldmia r7!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0x14] + ldmia r7!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0x14] + ldmia r7!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0x14] + ldmia r7!, {r0-r1} + stmia r2!, {r0-r1} + str r2, [sp, #0x14] + mov r0, #0x10 +_0206A32E: + ldr r1, [sp, #0x8] + ldrh r2, [r1, #0x0] + add r1, r1, #0x2 + str r1, [sp, #0x8] + ldr r1, [sp, #0x18] + strh r2, [r1, #0x0] + add r1, r1, #0x2 + str r1, [sp, #0x18] + sub r0, r0, #0x1 + bne _0206A32E + add r0, r5, #0x0 + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3F8 + strh r0, [r5, #0x6] + add r0, r5, #0x0 + ldrh r2, [r5, #0x6] + add r0, #0x8 + mov r1, #0x80 + bl sub_0206A3A4 + add r0, r5, #0x0 + ldr r2, [r5, #0x0] + add r0, #0x88 + mov r1, #0x64 + bl sub_0206A3A4 + ldr r0, [sp, #0x4] + bl sub_02016A18 + add sp, #0x1c + pop {r4-r7, pc} + + thumb_func_start sub_0206A370 +sub_0206A370: ; 0x0206A370 + ldr r3, _0206A37C ; =sub_020064F0 + add r2, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x2 + bx r3 + nop +_0206A37C: .word sub_020064F0 + 1 + + thumb_func_start sub_0206A380 +sub_0206A380: ; 0x0206A380 + push {r4, lr} + add r4, r2, #0x0 + bl sub_0206A8FC + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_020064F0 + pop {r4, pc} + + thumb_func_start sub_0206A394 +sub_0206A394: ; 0x0206A394 + ldr r3, _0206A3A0 ; =sub_020064F0 + add r2, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x22 + bx r3 + nop +_0206A3A0: .word sub_020064F0 + 1 + + thumb_func_start sub_0206A3A4 +sub_0206A3A4: ; 0x0206A3A4 + push {r0-r3} + push {r3-r7, lr} + add r5, r0, #0x0 + mov r4, #0x0 + lsr r6, r1, #0x1 + beq _0206A3C6 + add r7, sp, #0x20 +_0206A3B2: + add r0, r7, #0x0 + bl sub_0206A3D8 + ldrh r1, [r5, #0x0] + add r4, r4, #0x1 + eor r0, r1 + strh r0, [r5, #0x0] + add r5, r5, #0x2 + cmp r4, r6 + blo _0206A3B2 +_0206A3C6: + pop {r3-r7} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4 + + thumb_func_start sub_0206A3D0 +sub_0206A3D0: ; 0x0206A3D0 + ldr r3, _0206A3D4 ; =sub_0206A3A4 + bx r3 + .balign 4 +_0206A3D4: .word sub_0206A3A4 + 1 + + thumb_func_start sub_0206A3D8 +sub_0206A3D8: ; 0x0206A3D8 + ldr r2, [r0, #0x0] + ldr r1, _0206A3F0 ; =0x41C64E6D + add r3, r2, #0x0 + mul r3, r1 + ldr r1, _0206A3F4 ; =0x00006073 + add r1, r3, r1 + str r1, [r0, #0x0] + lsr r0, r1, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + nop +_0206A3F0: .word 0x41C64E6D +_0206A3F4: .word 0x00006073 + + thumb_func_start sub_0206A3F8 +sub_0206A3F8: ; 0x0206A3F8 + push {r3-r4} + mov r3, #0x0 + add r2, r3, #0x0 + lsr r4, r1, #0x1 + beq _0206A412 +_0206A402: + ldrh r1, [r0, #0x0] + add r2, r2, #0x1 + add r0, r0, #0x2 + add r1, r3, r1 + lsl r1, r1, #0x10 + lsr r3, r1, #0x10 + cmp r2, r4 + blo _0206A402 +_0206A412: + add r0, r3, #0x0 + pop {r3-r4} + bx lr + + thumb_func_start sub_0206A418 +sub_0206A418: ; 0x0206A418 + push {r3, lr} + mov r3, #0x3e + lsl r3, r3, #0xc + and r3, r1 + lsr r3, r3, #0xd + cmp r3, #0x1f + bhi _0206A478 + add r3, r3, r3 + add r3, pc + ldrh r3, [r3, #0x6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 + lsl r6, r7, #0 + lsl r0, r6, #0x1 + lsl r0, r4, #0x2 + lsl r0, r2, #0x3 + lsl r0, r0, #0x4 + lsl r0, r6, #0x4 + lsl r0, r4, #0x5 + lsl r2, r2, #0x6 + lsl r2, r0, #0x7 + lsl r2, r6, #0x7 + lsl r2, r4, #0x8 + lsl r2, r2, #0x9 + lsl r2, r0, #0xa + lsl r4, r6, #0xa + lsl r4, r4, #0xb + lsl r4, r2, #0xc + lsl r4, r0, #0xd + lsl r4, r6, #0xd + lsl r4, r4, #0xe + lsl r6, r2, #0xf + lsl r6, r0, #0x10 + lsl r6, r6, #0x10 + lsl r6, r4, #0x11 + lsl r6, r2, #0x12 + lsl r6, r7, #0 + lsl r0, r6, #0x1 + lsl r0, r4, #0x2 + lsl r0, r2, #0x3 + lsl r0, r0, #0x4 + lsl r0, r6, #0x4 + lsl r0, r4, #0x5 + lsl r2, r2, #0x6 + add r0, #0x8 + cmp r2, #0x3 + bls _0206A47A +_0206A478: + b _0206A8F8 +_0206A47A: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r0, r2, #0 + lsl r6, r2, #0 + add r1, r0, #0x0 + b _0206A8F8 +_0206A492: + .byte 0x01, 0x1C, 0x20, 0x31, 0x2F, 0xE2, 0x01, 0x1C, 0x40, 0x31, 0x2C, 0xE2, 0x01, 0x1C + .byte 0x60, 0x31, 0x29, 0xE2, 0x08, 0x30, 0x03, 0x2A, 0x77, 0xD8, 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88 + .byte 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x01, 0x1C + .byte 0x1A, 0xE2, 0x01, 0x1C, 0x20, 0x31, 0x17, 0xE2, 0x01, 0x1C, 0x60, 0x31, 0x14, 0xE2, 0x01, 0x1C + .byte 0x40, 0x31, 0x11, 0xE2, 0x08, 0x30, 0x03, 0x2A, 0x5F, 0xD8, 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88 + .byte 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x01, 0x1C + .byte 0x02, 0xE2, 0x01, 0x1C, 0x40, 0x31, 0xFF, 0xE1, 0x01, 0x1C, 0x20, 0x31, 0xFC, 0xE1, 0x01, 0x1C + .byte 0x60, 0x31, 0xF9, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x47, 0xD8, 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88 + .byte 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x01, 0x1C + .byte 0xEA, 0xE1, 0x01, 0x1C, 0x60, 0x31, 0xE7, 0xE1, 0x01, 0x1C, 0x20, 0x31, 0xE4, 0xE1, 0x01, 0x1C + .byte 0x40, 0x31, 0xE1, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x2F, 0xD8, 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88 + .byte 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x01, 0x1C + .byte 0xD2, 0xE1, 0x01, 0x1C, 0x40, 0x31, 0xCF, 0xE1, 0x01, 0x1C, 0x60, 0x31, 0xCC, 0xE1, 0x01, 0x1C + .byte 0x20, 0x31, 0xC9, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x17, 0xD8, 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88 + .byte 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x16, 0x00, 0x01, 0x1C + .byte 0xBA, 0xE1, 0x01, 0x1C, 0x60, 0x31, 0xB7, 0xE1, 0x01, 0x1C, 0x40, 0x31, 0xB4, 0xE1, 0x01, 0x1C + .byte 0x20, 0x31, 0xB1, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x00, 0xD9, 0xAD, 0xE1, 0x92, 0x18, 0x7A, 0x44 + .byte 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x16, 0x00 + .byte 0x01, 0x1C, 0x20, 0x31, 0xA0, 0xE1, 0x01, 0x1C, 0x9E, 0xE1, 0x01, 0x1C, 0x40, 0x31, 0x9B, 0xE1 + .byte 0x01, 0x1C, 0x60, 0x31, 0x98, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x77, 0xD8, 0x92, 0x18, 0x7A, 0x44 + .byte 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x16, 0x00 + .byte 0x01, 0x1C, 0x20, 0x31, 0x88, 0xE1, 0x01, 0x1C, 0x86, 0xE1, 0x01, 0x1C, 0x60, 0x31, 0x83, 0xE1 + .byte 0x01, 0x1C, 0x40, 0x31, 0x80, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x5F, 0xD8, 0x92, 0x18, 0x7A, 0x44 + .byte 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x16, 0x00 + .byte 0x01, 0x1C, 0x40, 0x31, 0x70, 0xE1, 0x01, 0x1C, 0x6E, 0xE1, 0x01, 0x1C, 0x20, 0x31, 0x6B, 0xE1 + .byte 0x01, 0x1C, 0x60, 0x31, 0x68, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x47, 0xD8, 0x92, 0x18, 0x7A, 0x44 + .byte 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x16, 0x00 + .byte 0x01, 0x1C, 0x60, 0x31, 0x58, 0xE1, 0x01, 0x1C, 0x56, 0xE1, 0x01, 0x1C, 0x20, 0x31, 0x53, 0xE1 + .byte 0x01, 0x1C, 0x40, 0x31, 0x50, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x2F, 0xD8, 0x92, 0x18, 0x7A, 0x44 + .byte 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x16, 0x00 + .byte 0x01, 0x1C, 0x40, 0x31, 0x40, 0xE1, 0x01, 0x1C, 0x3E, 0xE1, 0x01, 0x1C, 0x60, 0x31, 0x3B, 0xE1 + .byte 0x01, 0x1C, 0x20, 0x31, 0x38, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x17, 0xD8, 0x92, 0x18, 0x7A, 0x44 + .byte 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x16, 0x00 + .byte 0x01, 0x1C, 0x60, 0x31, 0x28, 0xE1, 0x01, 0x1C, 0x26, 0xE1, 0x01, 0x1C, 0x40, 0x31, 0x23, 0xE1 + .byte 0x01, 0x1C, 0x20, 0x31, 0x20, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x00, 0xD9, 0x1C, 0xE1, 0x92, 0x18 + .byte 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x12, 0x00 + .byte 0x16, 0x00, 0x01, 0x1C, 0x20, 0x31, 0x0F, 0xE1, 0x01, 0x1C, 0x40, 0x31, 0x0C, 0xE1, 0x01, 0x1C + .byte 0x0A, 0xE1, 0x01, 0x1C, 0x60, 0x31, 0x07, 0xE1, 0x08, 0x30, 0x03, 0x2A, 0x77, 0xD8, 0x92, 0x18 + .byte 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x12, 0x00 + .byte 0x16, 0x00, 0x01, 0x1C, 0x20, 0x31, 0xF7, 0xE0, 0x01, 0x1C, 0x60, 0x31, 0xF4, 0xE0, 0x01, 0x1C + .byte 0xF2, 0xE0, 0x01, 0x1C, 0x40, 0x31, 0xEF, 0xE0, 0x08, 0x30, 0x03, 0x2A, 0x5F, 0xD8, 0x92, 0x18 + .byte 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x12, 0x00 + .byte 0x16, 0x00, 0x01, 0x1C, 0x40, 0x31, 0xDF, 0xE0, 0x01, 0x1C, 0x20, 0x31, 0xDC, 0xE0, 0x01, 0x1C + .byte 0xDA, 0xE0, 0x01, 0x1C, 0x60, 0x31, 0xD7, 0xE0, 0x08, 0x30, 0x03, 0x2A, 0x47, 0xD8, 0x92, 0x18 + .byte 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x12, 0x00 + .byte 0x16, 0x00, 0x01, 0x1C, 0x60, 0x31, 0xC7, 0xE0, 0x01, 0x1C, 0x20, 0x31, 0xC4, 0xE0, 0x01, 0x1C + .byte 0xC2, 0xE0, 0x01, 0x1C, 0x40, 0x31, 0xBF, 0xE0, 0x08, 0x30, 0x03, 0x2A, 0x2F, 0xD8, 0x92, 0x18 + .byte 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x12, 0x00 + .byte 0x16, 0x00, 0x01, 0x1C, 0x40, 0x31, 0xAF, 0xE0, 0x01, 0x1C, 0x60, 0x31, 0xAC, 0xE0, 0x01, 0x1C + .byte 0xAA, 0xE0, 0x01, 0x1C, 0x20, 0x31, 0xA7, 0xE0, 0x08, 0x30, 0x03, 0x2A, 0x17, 0xD8, 0x92, 0x18 + .byte 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00, 0x12, 0x00 + .byte 0x16, 0x00, 0x01, 0x1C, 0x60, 0x31, 0x97, 0xE0, 0x01, 0x1C, 0x40, 0x31, 0x94, 0xE0, 0x01, 0x1C + .byte 0x92, 0xE0, 0x01, 0x1C, 0x20, 0x31, 0x8F, 0xE0, 0x08, 0x30, 0x03, 0x2A, 0x00, 0xD9, 0x8B, 0xE0 + .byte 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00 + .byte 0x12, 0x00, 0x18, 0x00, 0x01, 0x1C, 0x20, 0x31, 0x7E, 0xE0, 0x01, 0x1C, 0x40, 0x31, 0x7B, 0xE0 + .byte 0x01, 0x1C, 0x60, 0x31, 0x78, 0xE0, 0x01, 0x1C, 0x76, 0xE0, 0x08, 0x30, 0x03, 0x2A, 0x73, 0xD8 + .byte 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00 + .byte 0x12, 0x00, 0x18, 0x00, 0x01, 0x1C, 0x20, 0x31, 0x66, 0xE0, 0x01, 0x1C, 0x60, 0x31, 0x63, 0xE0 + .byte 0x01, 0x1C, 0x40, 0x31, 0x60, 0xE0, 0x01, 0x1C, 0x5E, 0xE0, 0x08, 0x30, 0x03, 0x2A, 0x5B, 0xD8 + .byte 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00 + .byte 0x12, 0x00, 0x18, 0x00, 0x01, 0x1C, 0x40, 0x31, 0x4E, 0xE0, 0x01, 0x1C, 0x20, 0x31, 0x4B, 0xE0 + .byte 0x01, 0x1C, 0x60, 0x31, 0x48, 0xE0, 0x01, 0x1C, 0x46, 0xE0, 0x08, 0x30, 0x03, 0x2A, 0x43, 0xD8 + .byte 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00 + .byte 0x12, 0x00, 0x18, 0x00, 0x01, 0x1C, 0x60, 0x31, 0x36, 0xE0, 0x01, 0x1C, 0x20, 0x31, 0x33, 0xE0 + .byte 0x01, 0x1C, 0x40, 0x31, 0x30, 0xE0, 0x01, 0x1C, 0x2E, 0xE0, 0x08, 0x30, 0x03, 0x2A, 0x2B, 0xD8 + .byte 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00 + .byte 0x12, 0x00, 0x18, 0x00, 0x01, 0x1C, 0x40, 0x31, 0x1E, 0xE0, 0x01, 0x1C, 0x60, 0x31, 0x1B, 0xE0 + .byte 0x01, 0x1C, 0x20, 0x31, 0x18, 0xE0, 0x01, 0x1C, 0x16, 0xE0, 0x08, 0x30, 0x03, 0x2A, 0x13, 0xD8 + .byte 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44, 0x06, 0x00, 0x0C, 0x00 + .byte 0x12, 0x00, 0x18, 0x00, 0x01, 0x1C, 0x60, 0x31, 0x06, 0xE0, 0x01, 0x1C, 0x40, 0x31, 0x03, 0xE0 + .byte 0x01, 0x1C, 0x20, 0x31, 0x00, 0xE0, 0x01, 0x1C +_0206A8F8: + add r0, r1, #0x0 + pop {r3, pc} + + thumb_func_start sub_0206A8FC +sub_0206A8FC: ; 0x0206A8FC + ldr r3, _0206A928 ; =0x00000182 + cmp r0, r3 + beq _0206A90C + add r2, r3, #0x0 + add r2, #0x1b + cmp r0, r2 + beq _0206A91A + bx lr +_0206A90C: + cmp r1, #0x0 + beq _0206A926 + cmp r1, #0x3 + bgt _0206A926 + add r3, #0x6d + add r0, r1, r3 + bx lr +_0206A91A: + cmp r1, #0x0 + beq _0206A926 + cmp r1, #0x2 + bgt _0206A926 + add r3, #0x70 + add r0, r1, r3 +_0206A926: + bx lr + .balign 4 +_0206A928: .word 0x00000182 + + thumb_func_start sub_0206A92C +sub_0206A92C: ; 0x0206A92C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x1 + cmp r5, #0x20 + blt _0206A93A + bl sub_02020C2C +_0206A93A: + mov r0, #0x0 + cmp r5, #0x0 + ble _0206A948 +_0206A940: + add r0, r0, #0x1 + lsl r4, r4, #0x1 + cmp r0, r5 + blt _0206A940 +_0206A948: + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0206A94C +sub_0206A94C: ; 0x0206A94C + mov r3, #0x1 + mov r2, #0x0 +_0206A950: + add r1, r0, #0x0 + tst r1, r3 + bne _0206A95E + add r2, r2, #0x1 + lsl r3, r3, #0x1 + cmp r2, #0x20 + blt _0206A950 +_0206A95E: + add r0, r2, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0206A964 +sub_0206A964: ; 0x0206A964 + ldr r3, _0206A980 ; =0x020F7EF2 + mov r2, #0x0 +_0206A968: + ldrh r1, [r3, #0x0] + cmp r0, r1 + bne _0206A972 + mov r0, #0x1 + bx lr +_0206A972: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0x12 + blo _0206A968 + mov r0, #0x0 + bx lr + nop +_0206A980: .word 0x020F7EF2 + + thumb_func_start sub_0206A984 +sub_0206A984: ; 0x0206A984 + cmp r0, #0x12 + blo _0206A98A + mov r0, #0x0 +_0206A98A: + lsl r1, r0, #0x1 + ldr r0, _0206A994 ; =0x020F7EF2 + ldrh r0, [r0, r1] + bx lr + nop +_0206A994: .word 0x020F7EF2 + + thumb_func_start sub_0206A998 +sub_0206A998: ; 0x0206A998 + push {r3, lr} + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0206A964 + pop {r3, pc} + + thumb_func_start sub_0206A9AC +sub_0206A9AC: ; 0x0206A9AC + push {r3-r7, lr} + sub sp, #0x10 + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r6, r2, #0x0 + bl sub_020239BC + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0x7 + mov r2, #0x0 + bl sub_020672BC + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_020239CC + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0x9c + mov r2, #0x0 + bl sub_020672BC + str r0, [sp, #0xc] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_020239A0 + add r7, r0, #0x0 + mov r0, #0x8 + add r1, r6, #0x0 + bl sub_020219F4 + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x90 + add r2, r6, #0x0 + mov r4, #0x0 + bl sub_020672BC + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x4] + cmp r1, r0 + bne _0206AA1C + ldr r1, [sp, #0x8] + ldr r0, [sp, #0xc] + cmp r1, r0 + bne _0206AA1C + add r0, r7, #0x0 + add r1, r6, #0x0 + bl sub_02021CE0 + cmp r0, #0x0 + bne _0206AA1C + mov r4, #0x1 +_0206AA1C: + add r0, r6, #0x0 + bl sub_02021A20 + add r0, r7, #0x0 + bl sub_02021A20 + add r0, r4, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206AA30 +sub_0206AA30: ; 0x0206AA30 + push {r3, lr} + cmp r0, #0x3f + bgt _0206AA48 + bge _0206AA6C + cmp r0, #0x1 + bgt _0206AA74 + cmp r0, #0x0 + blt _0206AA74 + beq _0206AA82 + cmp r0, #0x1 + beq _0206AA82 + b _0206AA74 +_0206AA48: + cmp r0, #0x5a + bgt _0206AA50 + beq _0206AA70 + b _0206AA74 +_0206AA50: + add r1, r0, #0x0 + sub r1, #0x5b + cmp r1, #0x3 + bhi _0206AA74 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r1, #0 + lsl r2, r1, #0 + lsl r2, r1, #0 + lsl r2, r1, #0 +_0206AA6C: + mov r0, #0x2 + pop {r3, pc} +_0206AA70: + sub r0, #0x57 + pop {r3, pc} +_0206AA74: + bl sub_0206AE00 + cmp r0, #0x1 + bne _0206AA80 + mov r0, #0x1 + pop {r3, pc} +_0206AA80: + mov r0, #0x0 +_0206AA82: + pop {r3, pc} + + thumb_func_start sub_0206AA84 +sub_0206AA84: ; 0x0206AA84 + push {r3-r4, lr} + sub sp, #0x1c + add r4, r0, #0x0 + mov r0, #0x0 + add r1, sp, #0x0 + strb r0, [r1, #0x0] + add r1, sp, #0x0 + add r1, #0x1 + mov r2, #0x18 + blx sub_020CE240 + add r0, r4, #0x0 + mov r1, #0xa1 + add r2, sp, #0x0 + bl sub_02067830 + add r2, sp, #0x0 + add r0, r4, #0x0 + mov r1, #0xaa + add r2, #0x1 + bl sub_02067830 + add sp, #0x1c + pop {r3-r4, pc} + + thumb_func_start sub_0206AAB4 +sub_0206AAB4: ; 0x0206AAB4 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_02066A6C + mov r4, #0x0 + str r0, [sp, #0x0] + add r7, r4, #0x0 + add r6, sp, #0x4 +_0206AAC6: + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x36 + add r2, r7, #0x0 + bl sub_020672BC + cmp r0, #0x0 + beq _0206AAF0 + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x42 + mov r2, #0x0 + bl sub_020672BC + add r1, r4, #0x0 + strb r0, [r6, #0x0] + add r0, r5, #0x0 + add r1, #0x3a + add r2, sp, #0x4 + bl sub_02067960 +_0206AAF0: + add r4, r4, #0x1 + cmp r4, #0x4 + blt _0206AAC6 + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + bl sub_02066A94 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206AB04 +sub_0206AB04: ; 0x0206AB04 + push {r3, lr} + mov r1, #0x75 + lsl r1, r1, #0x6 + mov r2, #0x0 + str r1, [sp, #0x0] + mov r1, #0x9 + add r3, r2, #0x0 + bl sub_02006548 + pop {r3, pc} + + thumb_func_start sub_0206AB18 +sub_0206AB18: ; 0x0206AB18 + push {r4, lr} + sub sp, #0x10 + add r4, r1, #0x0 + add r1, sp, #0x0 + bl sub_0206ABB4 + add r0, sp, #0x0 + add r1, r4, #0x0 + bl sub_0206AB58 + add sp, #0x10 + pop {r4, pc} + + thumb_func_start sub_0206AB30 +sub_0206AB30: ; 0x0206AB30 + push {r3-r5, lr} + add r5, r1, #0x0 + cmp r5, #0x3 + bls _0206AB3A + mov r5, #0x3 +_0206AB3A: + mov r1, #0x5 + bl sub_0206AB18 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + mov r0, #0x14 + mul r0, r4 + mul r0, r5 + mov r1, #0x64 + blx sub_020EBC80 + add r0, r4, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3-r5, pc} + + thumb_func_start sub_0206AB58 +sub_0206AB58: ; 0x0206AB58 + cmp r1, #0xb + bhi _0206ABB0 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r2, #0 + lsl r2, r3, #0 + lsl r6, r3, #0 + lsl r2, r4, #0 + lsl r6, r4, #0 + lsl r2, r5, #0 + lsl r6, r5, #0 + lsl r2, r6, #0 + lsl r6, r6, #0 + lsl r4, r7, #0 + lsl r0, r0, #0x1 + lsl r4, r0, #0x1 + ldrh r0, [r0, #0x0] + bx lr +_0206AB84: + .byte 0x80, 0x78, 0x70, 0x47, 0xC0, 0x78, 0x70, 0x47, 0x00, 0x79, 0x70, 0x47 + .byte 0x40, 0x79, 0x70, 0x47, 0x80, 0x79, 0x70, 0x47, 0xC0, 0x79, 0x70, 0x47, 0x00, 0x89, 0x70, 0x47 + .byte 0x0A, 0x21, 0x40, 0x56, 0x70, 0x47, 0xC0, 0x7A, 0x70, 0x47, 0x00, 0x7B, 0x70, 0x47, 0x40, 0x7B +_0206ABB0: + bx lr + .balign 4 + + thumb_func_start sub_0206ABB4 +sub_0206ABB4: ; 0x0206ABB4 + ldr r3, _0206ABC0 ; =sub_020064F0 + add r2, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x9 + bx r3 + nop +_0206ABC0: .word sub_020064F0 + 1 + + thumb_func_start sub_0206ABC4 +sub_0206ABC4: ; 0x0206ABC4 + push {r3-r7, lr} + sub sp, #0x48 + str r2, [sp, #0x4] + ldr r2, _0206AC70 ; =0x0000022F + str r0, [sp, #0x0] + add r4, r1, #0x0 + ldr r3, [sp, #0x4] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + str r0, [sp, #0x10] + add r0, r4, #0x0 + bl sub_02024EC0 + bl sub_02024EE8 + ldr r4, [sp, #0x0] + str r0, [sp, #0xc] + add r0, r4, #0x0 + add r5, r4, #0x0 + mov r7, #0x0 + str r0, [sp, #0x8] + add r5, #0x3c +_0206ABF4: + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _0206AC48 + add r1, sp, #0x14 + bl sub_0206ADE0 + ldr r3, [sp, #0x8] + add r6, sp, #0x14 + add r3, #0x28 + mov r2, #0x6 +_0206AC08: + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0206AC08 + ldr r0, [r6, #0x0] + str r0, [r3, #0x0] + add r0, sp, #0x14 + ldrb r0, [r0, #0x1] + cmp r0, #0x3f + bne _0206AC26 + ldr r1, [sp, #0xc] + add r0, r5, #0x0 + bl sub_02002248 + b _0206AC3E +_0206AC26: + ldr r0, [sp, #0x10] + ldr r1, [r4, #0x18] + bl sub_0200A914 + add r6, r0, #0x0 + add r1, r5, #0x0 + mov r2, #0x8 + bl sub_02021EF0 + add r0, r6, #0x0 + bl sub_02021A20 +_0206AC3E: + ldr r0, [sp, #0x0] + ldr r2, [sp, #0x4] + add r1, r7, #0x0 + bl sub_0206AE0C +_0206AC48: + ldr r0, [sp, #0x8] + add r7, r7, #0x1 + add r0, #0x34 + add r4, r4, #0x4 + add r5, #0x34 + str r0, [sp, #0x8] + cmp r7, #0x4 + blt _0206ABF4 + ldr r0, [sp, #0x0] + ldr r1, [r0, #0x0] + ldr r0, [sp, #0x24] + orr r1, r0 + ldr r0, [sp, #0x0] + str r1, [r0, #0x0] + ldr r0, [sp, #0x10] + bl sub_0200A8B8 + add sp, #0x48 + pop {r3-r7, pc} + nop +_0206AC70: .word 0x0000022F + + thumb_func_start sub_0206AC74 +sub_0206AC74: ; 0x0206AC74 + push {r4-r5, lr} + sub sp, #0x34 + add r5, r1, #0x0 + add r1, sp, #0x0 + bl sub_0206ADE0 + cmp r5, #0x9 + bhi _0206ACCC + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r2, #0 + lsl r0, r3, #0 + lsl r6, r3, #0 + lsl r4, r4, #0 + lsl r2, r5, #0 + lsl r2, r5, #0 + lsl r2, r5, #0 + lsl r2, r5, #0 + lsl r4, r6, #0 + lsl r0, r7, #0 + add r0, sp, #0x0 + ldrb r4, [r0, #0x0] + b _0206ACCC +_0206ACAA: + .byte 0x00, 0xA8, 0x44, 0x78, 0x0D, 0xE0 + .byte 0x00, 0xA8, 0x84, 0x78, 0x0A, 0xE0, 0x00, 0xA8, 0xC4, 0x78, 0x07, 0xE0, 0x28, 0x1F, 0x41, 0x00 + .byte 0x01, 0xA8, 0x44, 0x5A, 0x02, 0xE0, 0x03, 0x9C, 0x00, 0xE0, 0x04, 0x9C +_0206ACCC: + add r0, r4, #0x0 + add sp, #0x34 + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_0206ACD4 +sub_0206ACD4: ; 0x0206ACD4 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x4] + add r7, r1, #0x0 + ldr r1, [sp, #0x4] + mov r0, #0x3b + add r4, r2, #0x0 + bl sub_020065A4 + add r6, r0, #0x0 + mov r0, #0x2 + str r0, [sp, #0x0] + add r0, sp, #0xc + mov r1, #0x89 + mov r2, #0x0 + lsl r3, r5, #0x1 + bl sub_02006548 + mov r0, #0x3b + add r1, r4, #0x0 + bl sub_02006670 + add r4, sp, #0xc + ldrh r2, [r4, #0x0] + str r0, [sp, #0x8] + cmp r2, r6 + beq _0206AD40 +_0206AD0E: + add r0, sp, #0xc + add r0, #0x2 + str r0, [sp, #0x0] + ldr r0, [sp, #0x8] + mov r1, #0x0 + mov r3, #0x4 + bl sub_02006814 + ldrh r1, [r4, #0x2] + cmp r1, r5 + bne _0206AD30 + ldrh r0, [r4, #0x4] + cmp r0, r7 + bne _0206AD30 + mov r0, #0x1 + str r0, [sp, #0x4] + b _0206AD40 +_0206AD30: + cmp r1, r5 + bne _0206AD40 + ldrh r0, [r4, #0x0] + add r0, r0, #0x4 + strh r0, [r4, #0x0] + ldrh r2, [r4, #0x0] + cmp r2, r6 + bne _0206AD0E +_0206AD40: + ldr r0, [sp, #0x8] + bl sub_020066F4 + ldr r0, [sp, #0x4] + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_0206AD4C +sub_0206AD4C: ; 0x0206AD4C + push {r3-r7, lr} + sub sp, #0x18 + add r6, r0, #0x0 + add r7, r1, #0x0 + mov r0, #0x3b + mov r1, #0x0 + str r2, [sp, #0x4] + str r3, [sp, #0x8] + bl sub_020065A4 + add r5, r0, #0x0 + mov r0, #0x2 + str r0, [sp, #0x0] + add r0, sp, #0x10 + mov r1, #0x89 + mov r2, #0x0 + lsl r3, r6, #0x1 + bl sub_02006548 + ldr r1, [sp, #0x8] + mov r0, #0x3b + bl sub_02006670 + add r4, sp, #0x10 + ldrh r2, [r4, #0x0] + str r0, [sp, #0xc] + cmp r2, r5 + beq _0206ADC2 +_0206AD84: + add r0, sp, #0x10 + add r0, #0x2 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + mov r1, #0x0 + mov r3, #0x4 + bl sub_02006814 + ldrh r0, [r4, #0x2] + cmp r0, r6 + bne _0206ADB6 + ldrh r0, [r4, #0x4] + cmp r0, r7 + bne _0206ADB6 + ldr r0, [sp, #0x4] + add r2, sp, #0x10 + str r0, [sp, #0x0] + ldrh r2, [r2, #0x0] + ldr r1, _0206ADDC ; =0x0000022E + ldr r3, [sp, #0x8] + mov r0, #0x1a + lsr r2, r2, #0x2 + bl sub_0200A648 + b _0206ADC2 +_0206ADB6: + ldrh r0, [r4, #0x0] + add r0, r0, #0x4 + strh r0, [r4, #0x0] + ldrh r2, [r4, #0x0] + cmp r2, r5 + bne _0206AD84 +_0206ADC2: + ldr r0, [sp, #0xc] + bl sub_020066F4 + add r0, sp, #0x10 + ldrh r0, [r0, #0x0] + cmp r0, r5 + bne _0206ADD6 + ldr r0, [sp, #0x4] + bl sub_02021A4C +_0206ADD6: + add sp, #0x18 + pop {r3-r7, pc} + nop +_0206ADDC: .word 0x0000022E + + thumb_func_start sub_0206ADE0 +sub_0206ADE0: ; 0x0206ADE0 + ldr r3, _0206ADEC ; =sub_020064F0 + add r2, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x39 + bx r3 + nop +_0206ADEC: .word sub_020064F0 + 1 + + thumb_func_start sub_0206ADF0 +sub_0206ADF0: ; 0x0206ADF0 + ldr r3, _0206ADFC ; =sub_020064F0 + add r2, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x3a + bx r3 + nop +_0206ADFC: .word sub_020064F0 + 1 + + thumb_func_start sub_0206AE00 +sub_0206AE00: ; 0x0206AE00 + ldr r1, _0206AE08 ; =0x020F8010 + ldrb r0, [r1, r0] + bx lr + nop +_0206AE08: .word 0x020F8010 + + thumb_func_start sub_0206AE0C +sub_0206AE0C: ; 0x0206AE0C + push {r3-r7, lr} + sub sp, #0x50 + add r7, r1, #0x0 + add r4, r0, #0x0 + add r5, r2, #0x0 + bl sub_0201B9D4 + lsl r6, r7, #0x2 + str r0, [sp, #0x44] + add r0, r4, r6 + ldr r0, [r0, #0x4] + mov r1, #0x6 + bl sub_0206B8CC + add r0, r5, #0x0 + mov r1, #0x60 + bl sub_02016998 + str r0, [sp, #0x4c] + add r0, r5, #0x0 + bl sub_020669C0 + str r0, [sp, #0x40] + add r0, r4, r6 + ldr r0, [r0, #0x18] + ldr r1, [sp, #0x4c] + bl sub_0206ADF0 + mov r0, #0x34 + add r5, r7, #0x0 + mul r5, r0 + add r0, r4, r5 + add r0, #0x29 + ldrb r0, [r0, #0x0] + bl sub_0206AE00 + cmp r0, #0x1 + bne _0206AE5E + mov r0, #0x78 + str r0, [sp, #0x10] + b _0206AE62 +_0206AE5E: + mov r0, #0x88 + str r0, [sp, #0x10] +_0206AE62: + add r0, r4, r5 + add r0, #0x28 + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + bhi _0206AF26 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r5, #0x2 + lsl r6, r5, #0x5 + lsl r2, r2, #0x8 + mov r0, #0x0 + str r0, [sp, #0x48] + add r0, r4, r5 + add r0, #0x2b + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + ble _0206AF26 + ldr r0, [sp, #0x4c] + str r0, [sp, #0x28] + add r0, r4, r6 + str r0, [sp, #0x24] +_0206AE96: + ldr r0, [sp, #0x24] + ldr r2, [sp, #0x28] + ldr r1, [r0, #0x18] + ldr r0, [sp, #0x28] + ldrh r3, [r2, #0x0] + ldrh r2, [r2, #0x2] + ldrh r0, [r0, #0x4] + add r2, r3, r2 + add r0, r0, r2 + add r7, r1, r0 + add r0, r7, #0x0 + bl sub_0201B9E0 + add r0, r4, r5 + add r0, #0x29 + ldrb r0, [r0, #0x0] + mov r6, #0x0 + cmp r0, #0x0 + ble _0206AECE +_0206AEBC: + bl sub_0201B9EC + add r7, r0, #0x0 + add r0, r4, r5 + add r0, #0x29 + ldrb r0, [r0, #0x0] + add r6, r6, #0x1 + cmp r6, r0 + blt _0206AEBC +_0206AECE: + ldr r0, [sp, #0x10] + lsl r1, r7, #0x8 + add r6, r1, r0 + ldr r0, [sp, #0x28] + ldrh r1, [r0, #0x0] + mov r0, #0x1f + mul r0, r1 + mov r1, #0xff + blx sub_020EBC80 + add r3, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + lsl r3, r3, #0x18 + str r6, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x28] + ldrh r1, [r1, #0x4] + ldrh r2, [r2, #0x2] + ldr r0, [sp, #0x40] + lsr r3, r3, #0x18 + bl sub_02066ACC + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x40] + ldr r0, [r0, #0x4] + bl sub_0206B900 + ldr r0, [sp, #0x28] + add r0, r0, #0x6 + str r0, [sp, #0x28] + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] + add r0, r4, r5 + add r0, #0x2b + ldrb r1, [r0, #0x0] + ldr r0, [sp, #0x48] + cmp r0, r1 + blt _0206AE96 +_0206AF26: + b _0206B156 +_0206AF28: + .byte 0x00, 0x20, 0x06, 0x90, 0x60, 0x19, 0x2B, 0x30 + .byte 0x00, 0x78, 0x00, 0x28, 0x57, 0xDD, 0x13, 0x98, 0x0C, 0x90, 0xA0, 0x19, 0x0B, 0x90, 0x0B, 0x98 + .byte 0x0C, 0x9A, 0x81, 0x69, 0x0C, 0x98, 0x13, 0x88, 0x52, 0x88, 0x80, 0x88, 0x9A, 0x18, 0x80, 0x18 + .byte 0x0F, 0x18, 0x38, 0x1C, 0xB0, 0xF7, 0x44, 0xFD, 0x60, 0x19, 0x29, 0x30, 0x00, 0x78, 0x00, 0x26 + .byte 0x00, 0x28, 0x08, 0xDD, 0xB0, 0xF7, 0x42, 0xFD, 0x07, 0x1C, 0x60, 0x19, 0x29, 0x30, 0x00, 0x78 + .byte 0x76, 0x1C, 0x86, 0x42, 0xF6, 0xDB, 0x04, 0x98, 0x39, 0x02, 0x0E, 0x18, 0x0C, 0x98, 0x01, 0x88 + .byte 0x1F, 0x20, 0x48, 0x43, 0xFF, 0x21, 0x80, 0xF0, 0x7C, 0xEE, 0x03, 0x1C, 0x01, 0x20, 0x00, 0x90 + .byte 0x1B, 0x06, 0x01, 0x96, 0x02, 0x20, 0x02, 0x90, 0x00, 0x20, 0x03, 0x90, 0x0C, 0x99, 0x0C, 0x9A + .byte 0x89, 0x88, 0x52, 0x88, 0x10, 0x98, 0x1B, 0x0E, 0xFB, 0xF7, 0x90, 0xFD, 0x0C, 0x9F, 0x00, 0x26 + .byte 0xF9, 0x88, 0x32, 0x06, 0x10, 0x98, 0x12, 0x0E, 0xFE, 0xF7, 0x08, 0xFC, 0x76, 0x1C, 0xBF, 0x1C + .byte 0x04, 0x2E, 0xF5, 0xDB, 0x0B, 0x98, 0x10, 0x99, 0x40, 0x68, 0x00, 0xF0, 0x99, 0xFC, 0x0C, 0x98 + .byte 0x0E, 0x30, 0x0C, 0x90, 0x06, 0x98, 0x40, 0x1C, 0x06, 0x90, 0x60, 0x19, 0x2B, 0x30, 0x01, 0x78 + .byte 0x06, 0x98, 0x88, 0x42, 0xAB, 0xDB, 0xB6, 0xE0, 0x00, 0x20, 0x07, 0x90, 0x60, 0x19, 0x2B, 0x30 + .byte 0x00, 0x78, 0x00, 0x28, 0x49, 0xDD, 0xA0, 0x19, 0x13, 0x9F, 0x0D, 0x90, 0x0D, 0x98, 0x3B, 0x88 + .byte 0x7A, 0x88, 0x81, 0x69, 0xB8, 0x88, 0x9A, 0x18, 0x80, 0x18, 0x08, 0x18, 0x05, 0x90, 0xB0, 0xF7 + .byte 0xE7, 0xFC, 0x60, 0x19, 0x29, 0x30, 0x00, 0x78, 0x00, 0x26, 0x00, 0x28, 0x08, 0xDD, 0xB0, 0xF7 + .byte 0xE5, 0xFC, 0x05, 0x90, 0x60, 0x19, 0x29, 0x30, 0x00, 0x78, 0x76, 0x1C, 0x86, 0x42, 0xF6, 0xDB + .byte 0x05, 0x98, 0x01, 0x02, 0x04, 0x98, 0x0E, 0x18, 0x39, 0x88, 0x1F, 0x20, 0x48, 0x43, 0xFF, 0x21 + .byte 0x80, 0xF0, 0x1E, 0xEE, 0x03, 0x1C, 0x01, 0x20, 0x00, 0x90, 0x1B, 0x06, 0x01, 0x96, 0x02, 0x20 + .byte 0x02, 0x90, 0x00, 0x20, 0x03, 0x90, 0xB9, 0x88, 0x7A, 0x88, 0x10, 0x98, 0x1B, 0x0E, 0xFB, 0xF7 + .byte 0x35, 0xFD, 0x10, 0x98, 0x06, 0x21, 0xBA, 0x1D, 0xFC, 0xF7, 0xE2, 0xFB, 0x0D, 0x98, 0x10, 0x99 + .byte 0x40, 0x68, 0x00, 0xF0, 0x45, 0xFC, 0x07, 0x98, 0x08, 0x37, 0x40, 0x1C, 0x07, 0x90, 0x60, 0x19 + .byte 0x2B, 0x30, 0x01, 0x78, 0x07, 0x98, 0x88, 0x42, 0xB8, 0xDB, 0x64, 0xE0, 0x00, 0x20, 0x08, 0x90 + .byte 0x60, 0x19, 0x2B, 0x30, 0x00, 0x78, 0x00, 0x28, 0x5D, 0xDD, 0x13, 0x98, 0x0F, 0x90, 0xA0, 0x19 + .byte 0x0E, 0x90, 0x0E, 0x98, 0x0F, 0x9A, 0x81, 0x69, 0x0F, 0x98, 0x13, 0x88, 0x52, 0x88, 0x80, 0x88 + .byte 0x9A, 0x18, 0x80, 0x18, 0x0F, 0x18, 0x38, 0x1C, 0xB0, 0xF7, 0x92, 0xFC, 0x60, 0x19, 0x29, 0x30 + .byte 0x00, 0x78, 0x00, 0x26, 0x00, 0x28, 0x08, 0xDD, 0xB0, 0xF7, 0x90, 0xFC, 0x07, 0x1C, 0x60, 0x19 + .byte 0x29, 0x30, 0x00, 0x78, 0x76, 0x1C, 0x86, 0x42, 0xF6, 0xDB, 0x04, 0x98, 0x39, 0x02, 0x0E, 0x18 + .byte 0x0F, 0x98, 0x01, 0x88, 0x1F, 0x20, 0x48, 0x43, 0xFF, 0x21, 0x80, 0xF0, 0xCA, 0xED, 0x03, 0x1C + .byte 0x01, 0x20, 0x00, 0x90, 0x1B, 0x06, 0x01, 0x96, 0x02, 0x20, 0x02, 0x90, 0x00, 0x20, 0x03, 0x90 + .byte 0x0F, 0x99, 0x0F, 0x9A, 0x89, 0x88, 0x52, 0x88, 0x10, 0x98, 0x1B, 0x0E, 0xFB, 0xF7, 0xDE, 0xFC + .byte 0x0F, 0x9A, 0x10, 0x98, 0x06, 0x21, 0x92, 0x1D, 0xFC, 0xF7, 0x8A, 0xFB, 0x0F, 0x9F, 0x00, 0x26 + .byte 0x39, 0x89, 0x32, 0x06, 0x10, 0x98, 0x12, 0x0E, 0xFE, 0xF7, 0x50, 0xFB, 0x76, 0x1C, 0xBF, 0x1C + .byte 0x04, 0x2E, 0xF5, 0xDB, 0x0E, 0x98, 0x10, 0x99, 0x40, 0x68, 0x00, 0xF0, 0xE1, 0xFB, 0x0F, 0x98 + .byte 0x10, 0x30, 0x0F, 0x90, 0x08, 0x98, 0x40, 0x1C, 0x08, 0x90, 0x60, 0x19, 0x2B, 0x30, 0x01, 0x78 + .byte 0x08, 0x98, 0x88, 0x42, 0xA5, 0xDB +_0206B156: + ldr r0, [sp, #0x4c] + bl sub_02016A18 + ldr r0, [sp, #0x40] + bl sub_02016A18 + ldr r0, [sp, #0x44] + bl sub_0201B9E0 + add sp, #0x50 + pop {r3-r7, pc} + + thumb_func_start sub_0206B16C +sub_0206B16C: ; 0x0206B16C + push {r3, lr} + bl sub_0206B180 + bl sub_02022830 + pop {r3, pc} + + thumb_func_start sub_0206B178 +sub_0206B178: ; 0x0206B178 + ldr r0, _0206B17C ; =0x000121C8 + bx lr + .balign 4 +_0206B17C: .word 0x000121C8 + + thumb_func_start sub_0206B180 +sub_0206B180: ; 0x0206B180 + push {r3-r7, lr} + str r0, [sp, #0x0] + mov r7, #0x0 + add r6, r0, #0x4 +_0206B188: + mov r4, #0x0 + add r5, r6, #0x0 +_0206B18C: + add r0, r5, #0x0 + bl sub_020669A0 + add r4, r4, #0x1 + add r5, #0x88 + cmp r4, #0x1e + blo _0206B18C + mov r0, #0xff + lsl r0, r0, #0x4 + add r7, r7, #0x1 + add r6, r6, r0 + cmp r7, #0x12 + blo _0206B188 + mov r3, #0x0 + ldr r1, _0206B200 ; =0x000121B4 + add r4, r3, #0x0 + add r2, r3, #0x0 +_0206B1AE: + ldr r0, [sp, #0x0] + add r0, r0, r3 + strb r4, [r0, r1] + add r4, r4, #0x1 + cmp r4, #0x10 + blo _0206B1BC + add r4, r2, #0x0 +_0206B1BC: + add r3, r3, #0x1 + cmp r3, #0x12 + blo _0206B1AE + ldr r1, _0206B204 ; =0x000121C6 + ldr r0, [sp, #0x0] + mov r3, #0x0 + strb r3, [r0, r1] + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xe + bl sub_0200A86C + add r6, r0, #0x0 + beq _0206B1F8 + ldr r1, _0206B208 ; =0x00011EE4 + ldr r0, [sp, #0x0] + mov r5, #0x0 + add r4, r0, r1 +_0206B1E0: + add r0, r6, #0x0 + add r1, r5, #0x6 + add r2, r4, #0x0 + bl sub_0200A968 + add r5, r5, #0x1 + add r4, #0x28 + cmp r5, #0x12 + blo _0206B1E0 + add r0, r6, #0x0 + bl sub_0200A8B8 +_0206B1F8: + ldr r0, [sp, #0x0] + mov r1, #0x0 + str r1, [r0, #0x0] + pop {r3-r7, pc} + .balign 4 +_0206B200: .word 0x000121B4 +_0206B204: .word 0x000121C6 +_0206B208: .word 0x00011EE4 + + thumb_func_start sub_0206B20C +sub_0206B20C: ; 0x0206B20C + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r4, [r5, #0x0] + add r6, r1, #0x0 + mov r7, #0x0 +_0206B216: + add r0, r6, #0x0 + bl sub_0206AAB4 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_0206B244 + cmp r0, #0x0 + beq _0206B232 + bl sub_02022830 + mov r0, #0x1 + pop {r3-r7, pc} +_0206B232: + add r4, r4, #0x1 + cmp r4, #0x12 + blo _0206B23A + add r4, r7, #0x0 +_0206B23A: + ldr r0, [r5, #0x0] + cmp r4, r0 + bne _0206B216 + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0206B244 +sub_0206B244: ; 0x0206B244 + push {r3-r7, lr} + sub sp, #0x8 + add r6, r0, #0x0 + add r0, r2, #0x0 + add r5, r1, #0x0 + str r2, [sp, #0x0] + bl sub_0206AAB4 + mov r0, #0x0 + mvn r0, r0 + cmp r5, r0 + bne _0206B25E + ldr r5, [r6, #0x0] +_0206B25E: + mov r0, #0xff + lsl r0, r0, #0x4 + add r1, r6, #0x4 + mul r0, r5 + mov r4, #0x0 + add r5, r1, r0 + str r5, [sp, #0x4] + mov r6, #0x5 + add r7, r4, #0x0 +_0206B270: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_020672BC + cmp r0, #0x0 + bne _0206B2A0 + mov r0, #0x88 + add r1, r4, #0x0 + mul r1, r0 + ldr r0, [sp, #0x4] + mov r3, #0x11 + add r4, r0, r1 +_0206B28A: + ldr r2, [sp, #0x0] + sub r3, r3, #0x1 + ldmia r2!, {r0-r1} + str r2, [sp, #0x0] + stmia r4!, {r0-r1} + bne _0206B28A + bl sub_02022830 + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_0206B2A0: + add r4, r4, #0x1 + add r5, #0x88 + cmp r4, #0x1e + blo _0206B270 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206B2B0 +sub_0206B2B0: ; 0x0206B2B0 + push {r3-r7, lr} + add r7, r3, #0x0 + add r5, r0, #0x0 + add r0, r7, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_0206AAB4 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _0206B2CA + ldr r4, [r5, #0x0] +_0206B2CA: + cmp r4, #0x12 + bhs _0206B2F4 + cmp r6, #0x1e + bhs _0206B2F4 + mov r0, #0xff + lsl r0, r0, #0x4 + mul r0, r4 + add r1, r5, r0 + mov r0, #0x88 + mul r0, r6 + add r0, r1, r0 + add r3, r0, #0x4 + mov r2, #0x11 +_0206B2E4: + ldmia r7!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0206B2E4 + bl sub_02022830 + mov r0, #0x1 + pop {r3-r7, pc} +_0206B2F4: + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0206B2FC +sub_0206B2FC: ; 0x0206B2FC + push {r3, lr} + mov r3, #0x0 + mvn r3, r3 + cmp r1, r3 + bne _0206B308 + ldr r1, [r0, #0x0] +_0206B308: + cmp r2, #0x1e + bhs _0206B32A + cmp r1, #0x12 + bhs _0206B32A + add r3, r0, #0x4 + mov r0, #0xff + lsl r0, r0, #0x4 + mul r0, r1 + add r1, r3, r0 + mov r0, #0x88 + mul r0, r2 + add r0, r1, r0 + bl sub_020669A0 + bl sub_02022830 + pop {r3, pc} +_0206B32A: + bl sub_02020C2C + pop {r3, pc} + + thumb_func_start sub_0206B330 +sub_0206B330: ; 0x0206B330 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_0206B334 +sub_0206B334: ; 0x0206B334 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + ldr r6, [r0, #0x0] + add r0, r0, #0x4 + mov r7, #0xab + str r0, [sp, #0x4] +_0206B342: + mov r0, #0xff + lsl r0, r0, #0x4 + add r1, r6, #0x0 + mul r1, r0 + ldr r0, [sp, #0x4] + mov r4, #0x0 + add r5, r0, r1 +_0206B350: + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_020672BC + cmp r0, #0x0 + bne _0206B364 + add sp, #0x8 + add r0, r6, #0x0 + pop {r3-r7, pc} +_0206B364: + add r4, r4, #0x1 + add r5, #0x88 + cmp r4, #0x1e + blt _0206B350 + add r6, r6, #0x1 + cmp r6, #0x12 + blt _0206B374 + mov r6, #0x0 +_0206B374: + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x0] + cmp r6, r0 + bne _0206B342 + mov r0, #0x12 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206B384 +sub_0206B384: ; 0x0206B384 + push {r3-r7, lr} + add r6, r1, #0x0 + str r2, [sp, #0x0] + mov r1, #0x0 + ldr r2, [r6, #0x0] + mvn r1, r1 + cmp r2, r1 + bne _0206B398 + ldr r1, [r0, #0x0] + str r1, [r6, #0x0] +_0206B398: + ldr r1, [sp, #0x0] + ldr r4, [r6, #0x0] + ldr r5, [r1, #0x0] + add r7, r0, #0x4 + b _0206B3C8 +_0206B3A2: + mov r0, #0xff + lsl r0, r0, #0x4 + mul r0, r4 + add r1, r7, r0 + mov r0, #0x88 + mul r0, r5 + add r0, r1, r0 + mov r1, #0xab + mov r2, #0x0 + bl sub_020672BC + cmp r0, #0x0 + bne _0206B3C6 + ldr r0, [sp, #0x0] + str r4, [r6, #0x0] + str r5, [r0, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} +_0206B3C6: + add r5, r5, #0x1 +_0206B3C8: + cmp r5, #0x1e + blt _0206B3A2 + add r4, r4, #0x1 + cmp r4, #0x12 + blt _0206B3D4 + mov r4, #0x0 +_0206B3D4: + ldr r0, [r6, #0x0] + cmp r4, r0 + beq _0206B3DE + mov r5, #0x0 + b _0206B3C8 +_0206B3DE: + mov r0, #0x12 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206B3E4 +sub_0206B3E4: ; 0x0206B3E4 + push {r3-r7, lr} + sub sp, #0x8 + mov r6, #0x0 + add r0, r0, #0x4 + str r6, [sp, #0x4] + str r0, [sp, #0x0] + mov r7, #0xab +_0206B3F2: + ldr r5, [sp, #0x0] + mov r4, #0x0 +_0206B3F6: + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_020672BC + cmp r0, #0x0 + beq _0206B406 + add r6, r6, #0x1 +_0206B406: + add r4, r4, #0x1 + add r5, #0x88 + cmp r4, #0x1e + blt _0206B3F6 + mov r0, #0xff + ldr r1, [sp, #0x0] + lsl r0, r0, #0x4 + add r0, r1, r0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + str r0, [sp, #0x4] + cmp r0, #0x12 + blt _0206B3F2 + add r0, r6, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0206B428 +sub_0206B428: ; 0x0206B428 + push {r3, lr} + cmp r1, #0x12 + bhs _0206B436 + str r1, [r0, #0x0] + bl sub_02022830 + pop {r3, pc} +_0206B436: + bl sub_02020C2C + pop {r3, pc} + + thumb_func_start sub_0206B43C +sub_0206B43C: ; 0x0206B43C + push {r3, lr} + cmp r1, #0x12 + bhs _0206B44A + add r1, r0, r1 + ldr r0, _0206B454 ; =0x000121B4 + ldrb r0, [r1, r0] + pop {r3, pc} +_0206B44A: + bl sub_02020C2C + mov r0, #0x0 + pop {r3, pc} + nop +_0206B454: .word 0x000121B4 + + thumb_func_start sub_0206B458 +sub_0206B458: ; 0x0206B458 + push {r3, lr} + mov r3, #0x0 + mvn r3, r3 + cmp r1, r3 + bne _0206B464 + ldr r1, [r0, #0x0] +_0206B464: + cmp r1, #0x12 + bhs _0206B478 + cmp r2, #0x18 + bhs _0206B478 + add r1, r0, r1 + ldr r0, _0206B480 ; =0x000121B4 + strb r2, [r1, r0] + bl sub_02022830 + pop {r3, pc} +_0206B478: + bl sub_02020C2C + pop {r3, pc} + nop +_0206B480: .word 0x000121B4 + + thumb_func_start sub_0206B484 +sub_0206B484: ; 0x0206B484 + push {r3, lr} + add r3, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + bne _0206B492 + ldr r1, [r3, #0x0] +_0206B492: + cmp r1, #0x12 + bhs _0206B4A8 + add r0, r2, #0x0 + ldr r2, _0206B4B0 ; =0x00011EE4 + add r3, r3, r2 + mov r2, #0x28 + mul r2, r1 + add r1, r3, r2 + bl sub_02021E28 + pop {r3, pc} +_0206B4A8: + bl sub_02020C2C + pop {r3, pc} + nop +_0206B4B0: .word 0x00011EE4 + + thumb_func_start sub_0206B4B4 +sub_0206B4B4: ; 0x0206B4B4 + push {r3, lr} + add r3, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + bne _0206B4C2 + ldr r1, [r3, #0x0] +_0206B4C2: + cmp r1, #0x12 + bhs _0206B4DC + add r0, r2, #0x0 + ldr r2, _0206B4E0 ; =0x00011EE4 + add r3, r3, r2 + mov r2, #0x28 + mul r2, r1 + add r1, r3, r2 + mov r2, #0x14 + bl sub_02021EF0 + bl sub_02022830 +_0206B4DC: + pop {r3, pc} + nop +_0206B4E0: .word 0x00011EE4 + + thumb_func_start sub_0206B4E4 +sub_0206B4E4: ; 0x0206B4E4 + push {r3-r7, lr} + mov r2, #0x0 + mvn r2, r2 + cmp r1, r2 + bne _0206B4F0 + ldr r1, [r0, #0x0] +_0206B4F0: + cmp r1, #0x12 + bhs _0206B520 + add r2, r0, #0x4 + mov r0, #0xff + lsl r0, r0, #0x4 + mov r4, #0x0 + mul r0, r1 + add r6, r4, #0x0 + add r5, r2, r0 + mov r7, #0xab +_0206B504: + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_020672BC + cmp r0, #0x0 + beq _0206B514 + add r4, r4, #0x1 +_0206B514: + add r6, r6, #0x1 + add r5, #0x88 + cmp r6, #0x1e + blt _0206B504 + add r0, r4, #0x0 + pop {r3-r7, pc} +_0206B520: + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0206B528 +sub_0206B528: ; 0x0206B528 + push {r3-r7, lr} + mov r2, #0x0 + mvn r2, r2 + cmp r1, r2 + bne _0206B534 + ldr r1, [r0, #0x0] +_0206B534: + cmp r1, #0x12 + bhs _0206B572 + add r2, r0, #0x4 + mov r0, #0xff + lsl r0, r0, #0x4 + mov r4, #0x0 + mul r0, r1 + add r6, r4, #0x0 + add r5, r2, r0 + mov r7, #0xab +_0206B548: + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_020672BC + cmp r0, #0x0 + beq _0206B566 + add r0, r5, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020672BC + cmp r0, #0x0 + bne _0206B566 + add r4, r4, #0x1 +_0206B566: + add r6, r6, #0x1 + add r5, #0x88 + cmp r6, #0x1e + blt _0206B548 + add r0, r4, #0x0 + pop {r3-r7, pc} +_0206B572: + bl sub_02020C2C + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206B57C +sub_0206B57C: ; 0x0206B57C + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_0206B584: + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_0206B528 + add r5, r5, #0x1 + add r4, r4, r0 + cmp r5, #0x12 + blo _0206B584 + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0206B598 +sub_0206B598: ; 0x0206B598 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r4, #0x12 + blo _0206B5B2 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + beq _0206B5B2 + bl sub_02020C2C +_0206B5B2: + cmp r6, #0x1e + blo _0206B5BA + bl sub_02020C2C +_0206B5BA: + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _0206B5C4 + ldr r4, [r5, #0x0] +_0206B5C4: + mov r0, #0xff + lsl r0, r0, #0x4 + add r1, r5, #0x4 + mul r0, r4 + add r1, r1, r0 + mov r0, #0x88 + mul r0, r6 + add r0, r1, r0 + ldr r2, [sp, #0x18] + add r1, r7, #0x0 + bl sub_02067960 + bl sub_02022830 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206B5E4 +sub_0206B5E4: ; 0x0206B5E4 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x12 + blo _0206B5FC + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + beq _0206B5FC + bl sub_02020C2C +_0206B5FC: + cmp r6, #0x1e + blo _0206B604 + bl sub_02020C2C +_0206B604: + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _0206B60E + ldr r4, [r5, #0x0] +_0206B60E: + mov r0, #0xff + lsl r0, r0, #0x4 + add r1, r5, #0x4 + mul r0, r4 + add r1, r1, r0 + mov r0, #0x88 + mul r0, r6 + add r0, r1, r0 + pop {r4-r6, pc} + + thumb_func_start sub_0206B620 +sub_0206B620: ; 0x0206B620 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x8 + blo _0206B62E + bl sub_02020C2C +_0206B62E: + ldr r0, _0206B640 ; =0x000121C6 + mov r1, #0x1 + ldrb r2, [r5, r0] + lsl r1, r4 + orr r1, r2 + strb r1, [r5, r0] + bl sub_02022830 + pop {r3-r5, pc} + .balign 4 +_0206B640: .word 0x000121C6 + + thumb_func_start sub_0206B644 +sub_0206B644: ; 0x0206B644 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x8 + blo _0206B652 + bl sub_02020C2C +_0206B652: + ldr r0, _0206B664 ; =0x000121C6 + ldrb r2, [r5, r0] + mov r0, #0x1 + add r1, r0, #0x0 + lsl r1, r4 + tst r1, r2 + bne _0206B662 + mov r0, #0x0 +_0206B662: + pop {r3-r5, pc} + .balign 4 +_0206B664: .word 0x000121C6 + + thumb_func_start sub_0206B668 +sub_0206B668: ; 0x0206B668 + push {r4-r6, lr} + mov r4, #0x0 + add r6, r0, #0x0 + add r5, r4, #0x0 +_0206B670: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0206B644 + cmp r0, #0x0 + beq _0206B67E + add r5, r5, #0x1 +_0206B67E: + add r4, r4, #0x1 + cmp r4, #0x8 + blo _0206B670 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0206B688 +sub_0206B688: ; 0x0206B688 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02066A6C + add r7, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020672BC + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0206B754 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_0206B6D4 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02066A94 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0206B6C8 +sub_0206B6C8: ; 0x0206B6C8 + push {r3, lr} + bl sub_020690E4 + bl sub_0206B688 + pop {r3, pc} + + thumb_func_start sub_0206B6D4 +sub_0206B6D4: ; 0x0206B6D4 + cmp r1, #0x1 + bne _0206B6E8 + ldr r1, _0206B748 ; =0x000001EA + cmp r0, r1 + bne _0206B6E2 + add r1, #0xc + b _0206B6E4 +_0206B6E2: + add r1, #0xb +_0206B6E4: + add r0, r1, #0x0 + bx lr +_0206B6E8: + cmp r2, #0x0 + beq _0206B73A + ldr r3, _0206B74C ; =0x00000182 + cmp r0, r3 + bne _0206B6F8 + add r3, #0x74 + add r0, r2, r3 + bx lr +_0206B6F8: + cmp r0, #0xc9 + bne _0206B702 + add r3, #0x78 + add r0, r2, r3 + bx lr +_0206B702: + add r1, r3, #0x0 + add r1, #0x1a + cmp r0, r1 + bne _0206B710 + add r3, #0x93 + add r0, r2, r3 + bx lr +_0206B710: + add r1, r3, #0x0 + add r1, #0x1b + cmp r0, r1 + bne _0206B71E + add r3, #0x95 + add r0, r2, r3 + bx lr +_0206B71E: + add r1, r3, #0x0 + add r1, #0x24 + cmp r0, r1 + bne _0206B72C + add r3, #0x97 + add r0, r2, r3 + bx lr +_0206B72C: + add r1, r3, #0x0 + add r1, #0x25 + cmp r0, r1 + bne _0206B73A + add r3, #0x98 + add r0, r2, r3 + bx lr +_0206B73A: + ldr r1, _0206B750 ; =0x000001ED + cmp r0, r1 + bls _0206B742 + mov r0, #0x0 +_0206B742: + add r0, r0, #0x7 + bx lr + nop +_0206B748: .word 0x000001EA +_0206B74C: .word 0x00000182 +_0206B750: .word 0x000001ED + + thumb_func_start sub_0206B754 +sub_0206B754: ; 0x0206B754 + push {r4, lr} + mov r1, #0xad + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020672BC + ldr r2, _0206B7B8 ; =0x0000019D + cmp r0, r2 + bhi _0206B784 + sub r1, r2, #0x1 + cmp r0, r1 + blo _0206B774 + beq _0206B7A4 + cmp r0, r2 + beq _0206B7A4 + b _0206B7B4 +_0206B774: + cmp r0, #0xc9 + bhi _0206B77C + beq _0206B79C + b _0206B7B4 +_0206B77C: + sub r2, #0x1b + cmp r0, r2 + beq _0206B7A4 + b _0206B7B4 +_0206B784: + add r1, r2, #0x0 + add r1, #0x9 + cmp r0, r1 + bhi _0206B794 + add r2, #0x9 + cmp r0, r2 + beq _0206B7A4 + b _0206B7B4 +_0206B794: + add r2, #0xa + cmp r0, r2 + beq _0206B7A4 + b _0206B7B4 +_0206B79C: + add r0, r4, #0x0 + bl sub_020690D4 + pop {r4, pc} +_0206B7A4: + add r0, r4, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020672BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r4, pc} +_0206B7B4: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0206B7B8: .word 0x0000019D + + thumb_func_start sub_0206B7BC +sub_0206B7BC: ; 0x0206B7BC + cmp r2, #0x1 + bne _0206B7CE + ldr r1, _0206B830 ; =0x000001EA + cmp r0, r1 + bne _0206B7CA + add r0, r1, #0x5 + b _0206B82A +_0206B7CA: + add r0, r1, #0x4 + b _0206B82A +_0206B7CE: + ldr r3, _0206B834 ; =0x000001ED + cmp r0, r3 + bls _0206B7D8 + mov r0, #0x0 + b _0206B82A +_0206B7D8: + cmp r1, #0x0 + beq _0206B82A + add r2, r3, #0x0 + sub r2, #0x6b + cmp r0, r2 + bne _0206B7EA + add r0, r3, #0x2 + add r0, r1, r0 + b _0206B82A +_0206B7EA: + cmp r0, #0xc9 + bne _0206B7F4 + add r0, r3, #0x5 + add r0, r1, r0 + b _0206B82A +_0206B7F4: + add r2, r3, #0x0 + sub r2, #0x51 + cmp r0, r2 + bne _0206B802 + add r3, #0x21 + add r0, r1, r3 + b _0206B82A +_0206B802: + add r2, r3, #0x0 + sub r2, #0x50 + cmp r0, r2 + bne _0206B810 + add r3, #0x23 + add r0, r1, r3 + b _0206B82A +_0206B810: + add r2, r3, #0x0 + sub r2, #0x47 + cmp r0, r2 + bne _0206B81E + add r3, #0x25 + add r0, r1, r3 + b _0206B82A +_0206B81E: + add r2, r3, #0x0 + sub r2, #0x46 + cmp r0, r2 + bne _0206B82A + add r3, #0x26 + add r0, r1, r3 +_0206B82A: + ldr r1, _0206B838 ; =0x020F8074 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_0206B830: .word 0x000001EA +_0206B834: .word 0x000001ED +_0206B838: .word 0x020F8074 + + thumb_func_start sub_0206B83C +sub_0206B83C: ; 0x0206B83C + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02066A6C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0206B754 + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + add r7, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020672BC + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02066A94 + ldr r2, [sp, #0x0] + add r0, r7, #0x0 + add r1, r6, #0x0 + bl sub_0206B7BC + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206B87C +sub_0206B87C: ; 0x0206B87C + push {r3, lr} + bl sub_020690E4 + bl sub_0206B83C + pop {r3, pc} + + thumb_func_start sub_0206B888 +sub_0206B888: ; 0x0206B888 + mov r0, #0x0 + bx lr + + thumb_func_start sub_0206B88C +sub_0206B88C: ; 0x0206B88C + mov r0, #0x2 + bx lr + + thumb_func_start sub_0206B890 +sub_0206B890: ; 0x0206B890 + mov r0, #0x4 + bx lr + + thumb_func_start sub_0206B894 +sub_0206B894: ; 0x0206B894 + mov r0, #0x6 + bx lr + + thumb_func_start sub_0206B898 +sub_0206B898: ; 0x0206B898 + mov r0, #0x1 + bx lr + + thumb_func_start sub_0206B89C +sub_0206B89C: ; 0x0206B89C + mov r0, #0x3 + bx lr + + thumb_func_start sub_0206B8A0 +sub_0206B8A0: ; 0x0206B8A0 + mov r0, #0x5 + bx lr + + thumb_func_start sub_0206B8A4 +sub_0206B8A4: ; 0x0206B8A4 + mov r0, #0x59 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_0206B8AC +sub_0206B8AC: ; 0x0206B8AC + push {r4, lr} + mov r1, #0x59 + lsl r1, r1, #0x4 + bl sub_02016998 + add r4, r0, #0x0 + bl sub_0206B8C0 + add r0, r4, #0x0 + pop {r4, pc} + + thumb_func_start sub_0206B8C0 +sub_0206B8C0: ; 0x0206B8C0 + ldr r3, _0206B8C8 ; =sub_0206B8CC + mov r1, #0x6 + bx r3 + nop +_0206B8C8: .word sub_0206B8CC + 1 + + thumb_func_start sub_0206B8CC +sub_0206B8CC: ; 0x0206B8CC + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + cmp r6, #0x6 + ble _0206B8DA + bl sub_02020C2C +_0206B8DA: + mov r2, #0x59 + add r0, r5, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x4 + blx sub_020DF4A4 + mov r4, #0x0 + str r4, [r5, #0x4] + str r6, [r5, #0x0] + add r5, #0x8 +_0206B8EE: + add r0, r5, #0x0 + bl sub_02066978 + add r4, r4, #0x1 + add r5, #0xec + cmp r4, #0x6 + blt _0206B8EE + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0206B900 +sub_0206B900: ; 0x0206B900 + push {r4-r5} + add r3, r0, #0x0 + add r2, r1, #0x0 + ldr r1, [r3, #0x4] + ldr r0, [r3, #0x0] + cmp r1, r0 + blt _0206B914 + mov r0, #0x0 + pop {r4-r5} + bx lr +_0206B914: + mov r0, #0xec + mul r0, r1 + add r5, r3, r0 + add r5, #0x8 + mov r4, #0x1d +_0206B91E: + ldmia r2!, {r0-r1} + stmia r5!, {r0-r1} + sub r4, r4, #0x1 + bne _0206B91E + ldr r0, [r2, #0x0] + str r0, [r5, #0x0] + ldr r0, [r3, #0x4] + add r0, r0, #0x1 + str r0, [r3, #0x4] + mov r0, #0x1 + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start sub_0206B938 +sub_0206B938: ; 0x0206B938 + push {r3-r7, lr} + add r7, r0, #0x0 + add r4, r1, #0x0 + bpl _0206B944 + bl sub_02020C2C +_0206B944: + ldr r0, [r7, #0x4] + cmp r4, r0 + blt _0206B94E + bl sub_02020C2C +_0206B94E: + ldr r0, [r7, #0x0] + cmp r4, r0 + blt _0206B958 + bl sub_02020C2C +_0206B958: + ldr r0, [r7, #0x4] + cmp r0, #0x0 + bgt _0206B962 + bl sub_02020C2C +_0206B962: + ldr r0, [r7, #0x4] + sub r0, r0, #0x1 + cmp r4, r0 + bge _0206B992 + mov r0, #0xec + mul r0, r4 + add r6, r7, r0 +_0206B970: + add r5, r6, #0x0 + add r3, r6, #0x0 + add r5, #0xf4 + add r3, #0x8 + mov r2, #0x1d +_0206B97A: + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0206B97A + ldr r0, [r5, #0x0] + add r4, r4, #0x1 + str r0, [r3, #0x0] + ldr r0, [r7, #0x4] + add r6, #0xec + sub r0, r0, #0x1 + cmp r4, r0 + blt _0206B970 +_0206B992: + add r1, r7, #0x0 + mov r0, #0xec + add r1, #0x8 + mul r0, r4 + add r0, r1, r0 + bl sub_02066978 + ldr r0, [r7, #0x4] + sub r0, r0, #0x1 + str r0, [r7, #0x4] + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206B9AC +sub_0206B9AC: ; 0x0206B9AC + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_0206B9B0 +sub_0206B9B0: ; 0x0206B9B0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bpl _0206B9BC + bl sub_02020C2C +_0206B9BC: + ldr r0, [r5, #0x4] + cmp r4, r0 + blt _0206B9C6 + bl sub_02020C2C +_0206B9C6: + ldr r0, [r5, #0x0] + cmp r4, r0 + blt _0206B9D0 + bl sub_02020C2C +_0206B9D0: + mov r0, #0xec + add r5, #0x8 + mul r0, r4 + add r0, r5, r0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0206B9DC +sub_0206B9DC: ; 0x0206B9DC + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x0 + bge _0206B9EC + bl sub_02020C2C +_0206B9EC: + ldr r0, [r5, #0x4] + cmp r4, r0 + blt _0206B9F6 + bl sub_02020C2C +_0206B9F6: + ldr r0, [r5, #0x0] + cmp r4, r0 + blt _0206BA00 + bl sub_02020C2C +_0206BA00: + add r1, r5, #0x0 + mov r0, #0xec + add r1, #0x8 + mul r0, r4 + add r4, r1, r0 + add r0, r4, #0x0 + mov r1, #0xab + mov r2, #0x0 + bl sub_020671BC + add r7, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0xab + mov r2, #0x0 + bl sub_020671BC + sub r2, r7, r0 + mov r3, #0x1d +_0206BA24: + ldmia r6!, {r0-r1} + stmia r4!, {r0-r1} + sub r3, r3, #0x1 + bne _0206BA24 + ldr r0, [r6, #0x0] + str r0, [r4, #0x0] + ldr r0, [r5, #0x4] + add r0, r0, r2 + str r0, [r5, #0x4] + pop {r3-r7, pc} + + thumb_func_start sub_0206BA38 +sub_0206BA38: ; 0x0206BA38 + push {r3-r7, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + add r6, r2, #0x0 + cmp r5, #0x0 + bge _0206BA48 + bl sub_02020C2C +_0206BA48: + ldr r0, [r4, #0x4] + cmp r5, r0 + blt _0206BA52 + bl sub_02020C2C +_0206BA52: + ldr r0, [r4, #0x0] + cmp r5, r0 + blt _0206BA5C + bl sub_02020C2C +_0206BA5C: + cmp r6, #0x0 + bge _0206BA64 + bl sub_02020C2C +_0206BA64: + ldr r0, [r4, #0x4] + cmp r6, r0 + blt _0206BA6E + bl sub_02020C2C +_0206BA6E: + ldr r0, [r4, #0x0] + cmp r6, r0 + blt _0206BA78 + bl sub_02020C2C +_0206BA78: + mov r0, #0x0 + mov r1, #0xec + bl sub_02016998 + mov r12, r0 + add r1, r4, #0x0 + mov r0, #0xec + add r1, #0x8 + mul r0, r5 + add r3, r1, r0 + add r5, r3, #0x0 + mov r2, r12 + mov r7, #0x1d +_0206BA92: + ldmia r5!, {r0-r1} + stmia r2!, {r0-r1} + sub r7, r7, #0x1 + bne _0206BA92 + ldr r0, [r5, #0x0] + add r4, #0x8 + str r0, [r2, #0x0] + mov r0, #0xec + mul r0, r6 + add r2, r4, r0 + add r5, r2, #0x0 + mov r4, #0x1d +_0206BAAA: + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + sub r4, r4, #0x1 + bne _0206BAAA + ldr r0, [r5, #0x0] + mov r4, r12 + str r0, [r3, #0x0] + mov r3, #0x1d +_0206BABA: + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + sub r3, r3, #0x1 + bne _0206BABA + ldr r0, [r4, #0x0] + str r0, [r2, #0x0] + mov r0, r12 + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0206BAD0 +sub_0206BAD0: ; 0x0206BAD0 + push {r3-r4} + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r2, #0xb2 +_0206BAD8: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0206BAD8 + pop {r3-r4} + bx lr + + thumb_func_start sub_0206BAE4 +sub_0206BAE4: ; 0x0206BAE4 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x4] + add r7, r1, #0x0 + mov r4, #0x0 + cmp r0, #0x0 + ble _0206BB0E + add r5, r6, #0x0 + add r5, #0x8 +_0206BAF6: + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + cmp r7, r0 + beq _0206BB0E + ldr r0, [r6, #0x4] + add r4, r4, #0x1 + add r5, #0xec + cmp r4, r0 + blt _0206BAF6 +_0206BB0E: + ldr r0, [r6, #0x4] + cmp r4, r0 + beq _0206BB18 + mov r0, #0x1 + pop {r3-r7, pc} +_0206BB18: + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0206BB1C +sub_0206BB1C: ; 0x0206BB1C + ldr r3, _0206BB24 ; =sub_02022610 + mov r1, #0x2 + bx r3 + nop +_0206BB24: .word sub_02022610 + 1 + + thumb_func_start sub_0206BB28 +sub_0206BB28: ; 0x0206BB28 + push {r3, lr} + bl sub_02024DA0 + bl sub_0206BB34 + pop {r3, pc} + + thumb_func_start sub_0206BB34 +sub_0206BB34: ; 0x0206BB34 + push {r3, lr} + bl sub_02024CA4 + cmp r0, #0x1 + bne _0206BB42 + mov r0, #0x1 + pop {r3, pc} +_0206BB42: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0206BB48 +sub_0206BB48: ; 0x0206BB48 + push {r3, lr} + cmp r0, #0x0 + bne _0206BB58 + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + bl sub_02069B40 + add r1, r0, #0x0 +_0206BB58: + add r0, r1, #0x0 + pop {r3, pc} + + thumb_func_start sub_0206BB5C +sub_0206BB5C: ; 0x0206BB5C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02087A6C + mov r1, #0x0 + add r2, r5, #0x0 + add r4, r0, #0x0 + bl sub_02087A98 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0206BB74 +sub_0206BB74: ; 0x0206BB74 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02087B0C + add r0, r4, #0x0 + bl sub_02087A84 + pop {r4, pc} + + thumb_func_start sub_0206BB84 +sub_0206BB84: ; 0x0206BB84 + push {r3-r7, lr} + add r7, r1, #0x0 + add r4, r0, #0x0 + str r2, [sp, #0x0] + add r0, r7, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r4, #0x0 + bne _0206BBA2 + mov r0, #0x1 + pop {r3-r7, pc} +_0206BBA2: + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02023B0C + add r5, r0, #0x0 + add r0, r7, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + cmp r0, r5 + bls _0206BBBE + mov r0, #0x0 + pop {r3-r7, pc} +_0206BBBE: + add r0, r7, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _0206BBD0 + mov r0, #0x0 + pop {r3-r7, pc} +_0206BBD0: + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_02023B0C + cmp r0, #0x0 + bne _0206BBEA + add r0, r6, #0x0 + bl sub_020695A8 + cmp r6, r0 + beq _0206BBEA + mov r0, #0x0 + pop {r3-r7, pc} +_0206BBEA: + add r0, r4, #0x0 + mov r1, #0x5 + bl sub_02023B0C + add r5, r0, #0x0 + beq _0206BC14 + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl sub_02087B58 + cmp r5, #0x0 + ble _0206BC0A + cmp r0, r5 + bge _0206BC14 + mov r0, #0x0 + pop {r3-r7, pc} +_0206BC0A: + neg r1, r5 + cmp r0, r1 + ble _0206BC14 + mov r0, #0x0 + pop {r3-r7, pc} +_0206BC14: + add r0, r4, #0x0 + mov r1, #0x7 + bl sub_02023B0C + mov r1, #0xa + add r5, r0, #0x0 + mul r5, r1 + beq _0206BC42 + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl sub_02087B78 + cmp r5, #0x0 + ble _0206BC38 + cmp r0, r5 + bge _0206BC42 + mov r0, #0x0 + pop {r3-r7, pc} +_0206BC38: + neg r1, r5 + cmp r0, r1 + ble _0206BC42 + mov r0, #0x0 + pop {r3-r7, pc} +_0206BC42: + add r0, r4, #0x0 + mov r1, #0xb + bl sub_02023B0C + cmp r0, #0x0 + bne _0206BC5C + add r0, r7, #0x0 + bl sub_0206A998 + cmp r0, #0x0 + beq _0206BC5C + mov r0, #0x0 + pop {r3-r7, pc} +_0206BC5C: + mov r0, #0x1 + pop {r3-r7, pc} + + thumb_func_start sub_0206BC60 +sub_0206BC60: ; 0x0206BC60 + push {r3-r7, lr} + sub sp, #0x30 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x14] + str r0, [sp, #0x10] + ldr r0, [sp, #0x0] + str r1, [sp, #0x4] + str r2, [sp, #0x8] + str r3, [sp, #0xc] + cmp r0, #0x0 + bne _0206BC7E + ldr r0, [sp, #0x14] + add sp, #0x30 + pop {r3-r7, pc} +_0206BC7E: + ldr r1, [sp, #0x14] + add r2, sp, #0x24 + add r3, sp, #0x18 + mov r0, #0x0 +_0206BC86: + ldr r4, [sp, #0xc] + strh r0, [r2, #0x0] + strh r0, [r3, #0x0] + ldrb r4, [r4, r1] + cmp r4, #0x0 + beq _0206BC98 + ldr r4, [sp, #0x14] + add r4, r4, #0x1 + str r4, [sp, #0x14] +_0206BC98: + add r1, r1, #0x1 + add r2, r2, #0x2 + add r3, r3, #0x2 + cmp r1, #0x6 + blt _0206BC86 + ldr r0, [sp, #0x0] + mov r1, #0x1 + bl sub_02023B0C + ldr r1, [sp, #0x14] + cmp r1, r0 + beq _0206BCB6 + add sp, #0x30 + mov r0, #0x4 + pop {r3-r7, pc} +_0206BCB6: + mov r5, #0x0 + add r7, sp, #0x24 + add r6, sp, #0x18 +_0206BCBC: + ldr r0, [sp, #0xc] + ldrb r1, [r0, r5] + cmp r1, #0x0 + beq _0206BD0A + ldr r0, [sp, #0x4] + sub r1, r1, #0x1 + bl sub_0206B9B0 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r2, [sp, #0x8] + add r1, r4, #0x0 + bl sub_0206BB84 + cmp r0, #0x0 + bne _0206BCE2 + add sp, #0x30 + mov r0, #0x5 + pop {r3-r7, pc} +_0206BCE2: + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r7, #0x0] + add r0, r4, #0x0 + mov r1, #0x6 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r6, #0x0] + add r0, r4, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0x10] + add r0, r1, r0 + str r0, [sp, #0x10] +_0206BD0A: + add r5, r5, #0x1 + add r7, r7, #0x2 + add r6, r6, #0x2 + cmp r5, #0x6 + blt _0206BCBC + ldr r0, [sp, #0x0] + mov r1, #0x3 + bl sub_02023B0C + ldr r1, [sp, #0x10] + cmp r1, r0 + ble _0206BD2C + cmp r0, #0x0 + beq _0206BD2C + add sp, #0x30 + mov r0, #0x1 + pop {r3-r7, pc} +_0206BD2C: + ldr r0, [sp, #0x0] + mov r1, #0xa + bl sub_02023B0C + cmp r0, #0x0 + bne _0206BD70 + ldr r0, [sp, #0x14] + cmp r0, #0x1 + ble _0206BD70 + add r4, sp, #0x24 + mov r0, #0x0 + add r2, r4, #0x0 +_0206BD44: + add r3, r0, #0x1 + cmp r3, #0x6 + bge _0206BD68 + ldrh r6, [r4, #0x0] + lsl r1, r3, #0x1 + add r5, r2, r1 +_0206BD50: + ldrh r1, [r5, #0x0] + cmp r6, r1 + bne _0206BD60 + cmp r6, #0x0 + beq _0206BD60 + add sp, #0x30 + mov r0, #0x2 + pop {r3-r7, pc} +_0206BD60: + add r3, r3, #0x1 + add r5, r5, #0x2 + cmp r3, #0x6 + blt _0206BD50 +_0206BD68: + add r0, r0, #0x1 + add r4, r4, #0x2 + cmp r0, #0x5 + blt _0206BD44 +_0206BD70: + ldr r0, [sp, #0x0] + mov r1, #0x9 + bl sub_02023B0C + cmp r0, #0x0 + bne _0206BDC0 + ldr r0, [sp, #0x14] + cmp r0, #0x1 + ble _0206BDC0 + add r2, sp, #0x18 + mov r5, #0x0 + add r7, sp, #0x24 + mov r12, r2 +_0206BD8A: + add r6, r5, #0x1 + cmp r6, #0x6 + bge _0206BDB6 + lsl r1, r6, #0x1 + mov r0, r12 + add r3, r0, r1 + ldrh r4, [r2, #0x0] + ldrh r0, [r7, #0x0] +_0206BD9A: + ldrh r1, [r3, #0x0] + cmp r4, r1 + bne _0206BDAE + cmp r0, #0x0 + beq _0206BDAE + cmp r4, #0x0 + beq _0206BDAE + add sp, #0x30 + mov r0, #0x3 + pop {r3-r7, pc} +_0206BDAE: + add r6, r6, #0x1 + add r3, r3, #0x2 + cmp r6, #0x6 + blt _0206BD9A +_0206BDB6: + add r5, r5, #0x1 + add r2, r2, #0x2 + add r7, r7, #0x2 + cmp r5, #0x5 + blt _0206BD8A +_0206BDC0: + mov r0, #0x0 + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206BDC8 +sub_0206BDC8: ; 0x0206BDC8 + push {r4-r7, lr} + sub sp, #0x1c + str r0, [sp, #0xc] + ldr r0, [sp, #0x30] + str r1, [sp, #0x10] + lsl r0, r0, #0x1 + ldr r1, [sp, #0xc] + str r0, [sp, #0x18] + ldrh r0, [r1, r0] + add r6, r2, #0x0 + str r3, [sp, #0x14] + ldr r5, [sp, #0x38] + ldr r7, [sp, #0x34] + cmp r0, #0x0 + beq _0206BE12 + ldr r0, [sp, #0x18] + ldrh r0, [r6, r0] + cmp r0, #0x0 + bne _0206BE12 + ldr r1, [sp, #0x10] + ldr r0, [sp, #0x18] + ldrh r1, [r1, r0] + add r0, r3, #0x0 + sub r0, r0, r1 + str r0, [sp, #0x14] + bpl _0206BE02 + add sp, #0x1c + mov r0, #0x0 + pop {r4-r7, pc} +_0206BE02: + sub r7, r7, #0x1 + bne _0206BE0C + add sp, #0x1c + mov r0, #0x1 + pop {r4-r7, pc} +_0206BE0C: + ldr r0, [sp, #0x18] + mov r1, #0x1 + strh r1, [r6, r0] +_0206BE12: + ldr r0, [sp, #0x30] + add r4, r0, #0x1 + cmp r4, r5 + bge _0206BE3C +_0206BE1A: + str r4, [sp, #0x0] + str r7, [sp, #0x4] + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + ldr r3, [sp, #0x14] + add r2, r6, #0x0 + str r5, [sp, #0x8] + bl sub_0206BDC8 + cmp r0, #0x0 + beq _0206BE36 + add sp, #0x1c + mov r0, #0x1 + pop {r4-r7, pc} +_0206BE36: + add r4, r4, #0x1 + cmp r4, r5 + blt _0206BE1A +_0206BE3C: + ldr r1, [sp, #0x18] + mov r0, #0x0 + strh r0, [r6, r1] + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0206BE48 +sub_0206BE48: ; 0x0206BE48 + push {r4-r7, lr} + sub sp, #0x54 + str r0, [sp, #0xc] + add r0, r1, #0x0 + str r1, [sp, #0x10] + str r2, [sp, #0x14] + bl sub_0206B9AC + str r0, [sp, #0x20] + add r6, r0, #0x0 + add r0, sp, #0x30 + mov r1, #0x0 + mov r2, #0xc + blx sub_020CE34C + ldr r0, [sp, #0x20] + mov r7, #0x0 + cmp r0, #0x0 + ble _0206BEB2 + add r4, sp, #0x48 + add r5, sp, #0x3c +_0206BE72: + ldr r0, [sp, #0x10] + add r1, r7, #0x0 + bl sub_0206B9B0 + str r0, [sp, #0x24] + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r4, #0x0] + ldr r0, [sp, #0x24] + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x0] + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x14] + bl sub_0206BB84 + cmp r0, #0x0 + bne _0206BEA6 + mov r0, #0x0 + strh r0, [r4, #0x0] + sub r6, r6, #0x1 +_0206BEA6: + ldr r0, [sp, #0x20] + add r7, r7, #0x1 + add r4, r4, #0x2 + add r5, r5, #0x2 + cmp r7, r0 + blt _0206BE72 +_0206BEB2: + ldr r0, [sp, #0xc] + mov r1, #0xa + bl sub_02023B0C + cmp r0, #0x0 + bne _0206BF32 + ldr r0, [sp, #0x20] + cmp r0, #0x1 + ble _0206BF32 + mov r0, #0x0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x20] + sub r0, r0, #0x1 + str r0, [sp, #0x28] + cmp r0, #0x0 + ble _0206BF32 + add r0, sp, #0x3c + add r3, sp, #0x48 + str r0, [sp, #0x1c] + str r3, [sp, #0x2c] + mov r12, r0 +_0206BEDC: + ldr r0, [sp, #0x18] + add r2, r0, #0x1 + ldr r0, [sp, #0x20] + cmp r2, r0 + bge _0206BF1E + ldr r1, [sp, #0x2c] + lsl r0, r2, #0x1 + add r4, r1, r0 + mov r1, r12 + add r5, r1, r0 + ldr r0, [sp, #0x1c] + ldrh r7, [r0, #0x0] +_0206BEF4: + ldrh r1, [r3, #0x0] + ldrh r0, [r4, #0x0] + cmp r1, r0 + bne _0206BF12 + cmp r1, #0x0 + beq _0206BF12 + ldrh r0, [r5, #0x0] + cmp r7, r0 + bls _0206BF0C + mov r0, #0x0 + strh r0, [r3, #0x0] + b _0206BF10 +_0206BF0C: + mov r0, #0x0 + strh r0, [r4, #0x0] +_0206BF10: + sub r6, r6, #0x1 +_0206BF12: + ldr r0, [sp, #0x20] + add r2, r2, #0x1 + add r4, r4, #0x2 + add r5, r5, #0x2 + cmp r2, r0 + blt _0206BEF4 +_0206BF1E: + ldr r0, [sp, #0x1c] + add r3, r3, #0x2 + add r0, r0, #0x2 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + add r1, r0, #0x1 + ldr r0, [sp, #0x28] + str r1, [sp, #0x18] + cmp r1, r0 + blt _0206BEDC +_0206BF32: + ldr r0, [sp, #0xc] + mov r1, #0x1 + bl sub_02023B0C + add r7, r0, #0x0 + cmp r6, r7 + bge _0206BF46 + add sp, #0x54 + mov r0, #0x4 + pop {r4-r7, pc} +_0206BF46: + ldr r0, [sp, #0xc] + mov r1, #0x3 + bl sub_02023B0C + add r5, r0, #0x0 + bne _0206BF58 + add sp, #0x54 + mov r0, #0x0 + pop {r4-r7, pc} +_0206BF58: + ldr r0, [sp, #0x20] + mov r4, #0x0 + cmp r0, #0x0 + ble _0206BF88 + add r6, sp, #0x48 +_0206BF62: + str r4, [sp, #0x0] + ldr r0, [sp, #0x20] + str r7, [sp, #0x4] + str r0, [sp, #0x8] + add r0, r6, #0x0 + add r1, sp, #0x3c + add r2, sp, #0x30 + add r3, r5, #0x0 + bl sub_0206BDC8 + cmp r0, #0x0 + beq _0206BF80 + add sp, #0x54 + mov r0, #0x0 + pop {r4-r7, pc} +_0206BF80: + ldr r0, [sp, #0x20] + add r4, r4, #0x1 + cmp r4, r0 + blt _0206BF62 +_0206BF88: + mov r0, #0x1 + add sp, #0x54 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0206BF90 +sub_0206BF90: ; 0x0206BF90 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0x5 + mov r1, #0x8 + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x5 + mov r1, #0x8 + bl sub_02016998 + add r6, r0, #0x0 + ldr r0, _0206BFE4 ; =0x020F828C + mov r1, #0xc + add r2, r5, #0x0 + bl sub_0202D8D0 + str r5, [r4, #0x0] + mov r0, #0x0 + strb r0, [r4, #0x4] + str r5, [r6, #0x0] + strb r0, [r6, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x4 + bl sub_02231344 + add r0, r5, #0x0 + add r1, r6, #0x4 + bl sub_02231350 + ldr r0, _0206BFE8 ; =sub_0206C550 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_0200CA44 + ldr r0, _0206BFEC ; =sub_0206C5DC + add r1, r6, #0x0 + mov r2, #0x0 + bl sub_0200CA44 + pop {r4-r6, pc} + nop +_0206BFE4: .word 0x020F828C +_0206BFE8: .word sub_0206C550 + 1 +_0206BFEC: .word sub_0206C5DC + 1 + + thumb_func_start sub_0206BFF0 +sub_0206BFF0: ; 0x0206BFF0 + ldr r3, _0206BFFC ; =sub_0202D8D0 + add r2, r0, #0x0 + ldr r0, _0206C000 ; =0x020F828C + mov r1, #0xc + bx r3 + nop +_0206BFFC: .word sub_0202D8D0 + 1 +_0206C000: .word 0x020F828C + + thumb_func_start sub_0206C004 +sub_0206C004: ; 0x0206C004 + mov r0, #0x4 + bx lr + + thumb_func_start sub_0206C008 +sub_0206C008: ; 0x0206C008 + ldr r3, _0206C00C ; =sub_02023924 + bx r3 + .balign 4 +_0206C00C: .word sub_02023924 + 1 + + thumb_func_start sub_0206C010 +sub_0206C010: ; 0x0206C010 + ldr r3, _0206C014 ; =sub_0206B8A4 + bx r3 + .balign 4 +_0206C014: .word sub_0206B8A4 + 1 + + thumb_func_start sub_0206C018 +sub_0206C018: ; 0x0206C018 + mov r0, #0xfa + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start sub_0206C020 +sub_0206C020: ; 0x0206C020 + mov r0, #0x34 + bx lr + + thumb_func_start sub_0206C024 +sub_0206C024: ; 0x0206C024 + ldr r3, [r1, #0x0] + mov r1, #0x80 + ldr r2, [r3, #0x0] + tst r1, r2 + beq _0206C038 + lsl r0, r0, #0x3 + add r0, r3, r0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bx lr +_0206C038: + lsl r0, r0, #0x2 + add r0, r3, r0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0206C044 +sub_0206C044: ; 0x0206C044 + ldr r1, [r1, #0x0] + mov r2, #0x80 + ldr r3, [r1, #0x0] + tst r2, r3 + beq _0206C05A + lsl r2, r0, #0x1 + mov r0, #0x34 + add r1, #0x28 + mul r0, r2 + add r0, r1, r0 + bx lr +_0206C05A: + mov r2, #0x34 + add r1, #0x28 + mul r2, r0 + add r0, r1, r2 + bx lr + + thumb_func_start sub_0206C064 +sub_0206C064: ; 0x0206C064 + ldr r3, [r1, #0x0] + mov r1, #0x80 + ldr r2, [r3, #0x0] + tst r1, r2 + beq _0206C076 + lsl r0, r0, #0x3 + add r0, r3, r0 + ldr r0, [r0, #0x4] + bx lr +_0206C076: + lsl r0, r0, #0x2 + add r0, r3, r0 + ldr r0, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start sub_0206C080 +sub_0206C080: ; 0x0206C080 + ldr r3, [r1, #0x0] + mov r1, #0x80 + ldr r2, [r3, #0x0] + tst r2, r1 + beq _0206C094 + lsl r0, r0, #0x3 + add r0, r3, r0 + add r1, #0x98 + ldr r0, [r0, r1] + bx lr +_0206C094: + lsl r0, r0, #0x2 + add r0, r3, r0 + add r1, #0x98 + ldr r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start sub_0206C0A0 +sub_0206C0A0: ; 0x0206C0A0 + ldr r0, [r1, #0x0] + add r0, #0x5c + bx lr + .balign 4 + + thumb_func_start sub_0206C0A8 +sub_0206C0A8: ; 0x0206C0A8 + ldr r0, [r1, #0x0] + add r0, #0xc4 + bx lr + .balign 4 + + thumb_func_start sub_0206C0B0 +sub_0206C0B0: ; 0x0206C0B0 + ldr r0, [r1, #0x0] + ldr r0, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start sub_0206C0B8 +sub_0206C0B8: ; 0x0206C0B8 + ldr r0, [r1, #0x0] + ldr r0, [r0, #0x10] + bx lr + .balign 4 + + thumb_func_start sub_0206C0C0 +sub_0206C0C0: ; 0x0206C0C0 + lsl r0, r0, #0x2 + add r0, r1, r0 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start sub_0206C0C8 +sub_0206C0C8: ; 0x0206C0C8 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + str r1, [sp, #0x4] + mov r0, #0x5 + mov r1, #0x4 + str r2, [sp, #0x8] + add r7, r3, #0x0 + bl sub_02016998 + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_022300D4 + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_022300F4 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02230100 + mov r12, r0 + add r0, sp, #0x10 + ldrh r3, [r4, #0x0] + ldrb r0, [r0, #0x10] + add r1, r3, #0x5 + add r2, r1, r0 + mov r1, #0x1 + lsl r1, r1, #0xc + cmp r2, r1 + bls _0206C110 + mov r1, r12 + strh r3, [r1, #0x0] + mov r1, #0x0 + strh r1, [r4, #0x0] +_0206C110: + ldr r1, [sp, #0x4] + mov r3, #0x0 + strb r1, [r6, #0x0] + ldr r1, [sp, #0x8] + strb r1, [r6, #0x1] + add r1, sp, #0x10 + ldrb r1, [r1, #0x10] + strh r1, [r6, #0x2] +_0206C120: + ldrb r2, [r6, r3] + ldrh r1, [r4, #0x0] + add r3, r3, #0x1 + strb r2, [r5, r1] + ldrh r1, [r4, #0x0] + add r1, r1, #0x1 + strh r1, [r4, #0x0] + cmp r3, #0x4 + blo _0206C120 + mov r3, #0x0 + cmp r0, #0x0 + ble _0206C14A +_0206C138: + ldrb r2, [r7, r3] + ldrh r1, [r4, #0x0] + add r3, r3, #0x1 + strb r2, [r5, r1] + ldrh r1, [r4, #0x0] + add r1, r1, #0x1 + strh r1, [r4, #0x0] + cmp r3, r0 + blt _0206C138 +_0206C14A: + add r0, r6, #0x0 + bl sub_02016A18 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0206C154 +sub_0206C154: ; 0x0206C154 + push {r3-r7, lr} + str r3, [sp, #0x0] + add r0, r3, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl sub_022300DC + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02230118 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + bl sub_02230124 + ldrh r1, [r4, #0x0] + add r2, r1, r5 + add r3, r2, #0x1 + mov r2, #0x1 + lsl r2, r2, #0xc + cmp r3, r2 + ble _0206C186 + strh r1, [r0, #0x0] + mov r0, #0x0 + strh r0, [r4, #0x0] +_0206C186: + mov r0, #0x0 + cmp r5, #0x0 + ble _0206C19E +_0206C18C: + ldrb r2, [r6, r0] + ldrh r1, [r4, #0x0] + add r0, r0, #0x1 + strb r2, [r7, r1] + ldrh r1, [r4, #0x0] + add r1, r1, #0x1 + strh r1, [r4, #0x0] + cmp r0, r5 + blt _0206C18C +_0206C19E: + pop {r3-r7, pc} + + thumb_func_start sub_0206C1A0 +sub_0206C1A0: ; 0x0206C1A0 + push {r0-r3} + push {r3, lr} + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C1BA + mov r0, #0x0 + pop {r3} + pop {r3} + add sp, #0x10 + bx r3 +_0206C1BA: + mov r0, #0x33 + bl sub_020315D8 + cmp r0, #0x0 + bne _0206C1CE + mov r0, #0x0 + pop {r3} + pop {r3} + add sp, #0x10 + bx r3 +_0206C1CE: + mov r0, #0x18 + add r1, sp, #0xc + mov r2, #0x4 + bl sub_02030ADC + pop {r3} + pop {r3} + add sp, #0x10 + bx r3 + + thumb_func_start sub_0206C1E0 +sub_0206C1E0: ; 0x0206C1E0 + ldr r1, [r3, #0x0] + lsl r0, r0, #0x2 + add r1, r1, r0 + mov r0, #0x5f + ldr r2, [r2, #0x0] + lsl r0, r0, #0x2 + str r2, [r1, r0] + ldr r0, _0206C1F8 ; =0x00001020 + ldrb r1, [r3, r0] + add r1, r1, #0x1 + strb r1, [r3, r0] + bx lr + .balign 4 +_0206C1F8: .word 0x00001020 + + thumb_func_start sub_0206C1FC +sub_0206C1FC: ; 0x0206C1FC + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C210 + mov r0, #0x0 + pop {r4, pc} +_0206C210: + ldr r0, [r4, #0x0] + add r4, #0x20 + add r0, #0xf8 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + bl sub_0202393C + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206C224 +sub_0206C224: ; 0x0206C224 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C238 + mov r0, #0x0 + pop {r4, pc} +_0206C238: + mov r0, #0x34 + bl sub_020315D8 + cmp r0, #0x0 + bne _0206C246 + mov r0, #0x0 + pop {r4, pc} +_0206C246: + bl sub_02023924 + add r4, #0x20 + add r2, r0, #0x0 + mov r0, #0x19 + add r1, r4, #0x0 + bl sub_02030A78 + pop {r4, pc} + + thumb_func_start sub_0206C258 +sub_0206C258: ; 0x0206C258 + ldr r0, _0206C264 ; =0x00001020 + ldrb r1, [r3, r0] + add r1, r1, #0x1 + strb r1, [r3, r0] + bx lr + nop +_0206C264: .word 0x00001020 + + thumb_func_start sub_0206C268 +sub_0206C268: ; 0x0206C268 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C27C + mov r0, #0x0 + pop {r4, pc} +_0206C27C: + ldr r3, [r4, #0x0] + add r4, #0x20 + add r3, #0x28 + mov r2, #0x6 +_0206C284: + ldmia r3!, {r0-r1} + stmia r4!, {r0-r1} + sub r2, r2, #0x1 + bne _0206C284 + ldr r0, [r3, #0x0] + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0206C294 +sub_0206C294: ; 0x0206C294 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C2A8 + mov r0, #0x0 + pop {r4, pc} +_0206C2A8: + mov r0, #0x35 + bl sub_020315D8 + cmp r0, #0x0 + bne _0206C2B6 + mov r0, #0x0 + pop {r4, pc} +_0206C2B6: + add r4, #0x20 + mov r0, #0x1a + add r1, r4, #0x0 + mov r2, #0x34 + bl sub_02030A78 + pop {r4, pc} + + thumb_func_start sub_0206C2C4 +sub_0206C2C4: ; 0x0206C2C4 + ldr r0, _0206C2D0 ; =0x00001020 + ldrb r1, [r3, r0] + add r1, r1, #0x1 + strb r1, [r3, r0] + bx lr + nop +_0206C2D0: .word 0x00001020 + + thumb_func_start sub_0206C2D4 +sub_0206C2D4: ; 0x0206C2D4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C2E8 + mov r0, #0x0 + pop {r4, pc} +_0206C2E8: + ldr r0, [r4, #0x0] + add r4, #0x20 + ldr r0, [r0, #0x4] + add r1, r4, #0x0 + bl sub_0206BAD0 + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0206C2F8 +sub_0206C2F8: ; 0x0206C2F8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C30C + mov r0, #0x0 + pop {r4, pc} +_0206C30C: + mov r0, #0x36 + bl sub_020315D8 + cmp r0, #0x0 + bne _0206C31A + mov r0, #0x0 + pop {r4, pc} +_0206C31A: + bl sub_0206B8A4 + add r4, #0x20 + add r2, r0, #0x0 + mov r0, #0x1b + add r1, r4, #0x0 + bl sub_02030A78 + pop {r4, pc} + + thumb_func_start sub_0206C32C +sub_0206C32C: ; 0x0206C32C + ldr r0, _0206C338 ; =0x00001020 + ldrb r1, [r3, r0] + add r1, r1, #0x1 + strb r1, [r3, r0] + bx lr + nop +_0206C338: .word 0x00001020 + + thumb_func_start sub_0206C33C +sub_0206C33C: ; 0x0206C33C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C350 + mov r0, #0x0 + pop {r4, pc} +_0206C350: + ldr r2, [r4, #0x0] + add r1, #0x10 + add r0, r4, #0x0 + ldr r1, [r2, r1] + add r0, #0x20 + bl sub_02029F9C + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206C364 +sub_0206C364: ; 0x0206C364 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C378 + mov r0, #0x0 + pop {r4, pc} +_0206C378: + mov r0, #0x37 + bl sub_020315D8 + cmp r0, #0x0 + bne _0206C386 + mov r0, #0x0 + pop {r4, pc} +_0206C386: + add r4, #0x20 + mov r2, #0xfa + mov r0, #0x1c + add r1, r4, #0x0 + lsl r2, r2, #0x2 + bl sub_02030A78 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206C398 +sub_0206C398: ; 0x0206C398 + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C3AC + mov r0, #0x0 + pop {r3-r7, pc} +_0206C3AC: + ldr r4, [r5, #0x0] + mov r0, #0x80 + ldr r1, [r4, #0x0] + tst r0, r1 + beq _0206C3BE + bl sub_02031190 + lsl r0, r0, #0x3 + b _0206C3C4 +_0206C3BE: + bl sub_02031190 + lsl r0, r0, #0x2 +_0206C3C4: + add r0, r4, r0 + mov r1, #0x53 + add r0, #0xf8 + lsl r1, r1, #0x2 + add r2, r5, #0x0 + ldr r0, [r0, #0x0] + ldr r1, [r4, r1] + add r2, #0x20 + bl sub_0206C66C + mov r4, #0x0 + mov r6, #0x5 + mov r7, #0x88 +_0206C3DE: + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_02016998 + str r0, [r5, #0x10] + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x4 + blt _0206C3DE + mov r0, #0x1 + pop {r3-r7, pc} + + thumb_func_start sub_0206C3F4 +sub_0206C3F4: ; 0x0206C3F4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C408 + mov r0, #0x0 + pop {r4, pc} +_0206C408: + mov r0, #0x38 + bl sub_020315D8 + cmp r0, #0x0 + bne _0206C416 + mov r0, #0x0 + pop {r4, pc} +_0206C416: + add r4, #0x20 + mov r2, #0xfa + mov r0, #0x21 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + bl sub_02030A78 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206C428 +sub_0206C428: ; 0x0206C428 + ldr r0, _0206C434 ; =0x00001020 + ldrb r1, [r3, r0] + add r1, r1, #0x1 + strb r1, [r3, r0] + bx lr + nop +_0206C434: .word 0x00001020 + + thumb_func_start sub_0206C438 +sub_0206C438: ; 0x0206C438 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C44E + mov r0, #0x0 + pop {r3-r5, pc} +_0206C44E: + ldr r1, [r5, #0x0] + mov r0, #0x34 + mul r0, r4 + add r3, r1, r0 + add r3, #0x28 + add r5, #0x20 + mov r2, #0x6 +_0206C45C: + ldmia r3!, {r0-r1} + stmia r5!, {r0-r1} + sub r2, r2, #0x1 + bne _0206C45C + ldr r0, [r3, #0x0] + str r0, [r5, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0206C46C +sub_0206C46C: ; 0x0206C46C + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C484 + mov r0, #0x0 + pop {r4-r6, pc} +_0206C484: + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + bl sub_020315D8 + cmp r0, #0x0 + bne _0206C494 + mov r0, #0x0 + pop {r4-r6, pc} +_0206C494: + cmp r4, #0x1 + bne _0206C4A6 + add r5, #0x20 + mov r0, #0x1d + add r1, r5, #0x0 + mov r2, #0x34 + bl sub_02030A78 + pop {r4-r6, pc} +_0206C4A6: + add r5, #0x20 + mov r0, #0x1e + add r1, r5, #0x0 + mov r2, #0x34 + bl sub_02030A78 + pop {r4-r6, pc} + + thumb_func_start sub_0206C4B4 +sub_0206C4B4: ; 0x0206C4B4 + ldr r0, _0206C4C0 ; =0x00001020 + ldrb r1, [r3, r0] + add r1, r1, #0x1 + strb r1, [r3, r0] + bx lr + nop +_0206C4C0: .word 0x00001020 + + thumb_func_start sub_0206C4C4 +sub_0206C4C4: ; 0x0206C4C4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C4DA + mov r0, #0x0 + pop {r3-r5, pc} +_0206C4DA: + ldr r1, [r5, #0x0] + lsl r0, r4, #0x2 + add r0, r1, r0 + add r5, #0x20 + ldr r0, [r0, #0x4] + add r1, r5, #0x0 + bl sub_0206BAD0 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0206C4F0 +sub_0206C4F0: ; 0x0206C4F0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _0206C508 + mov r0, #0x0 + pop {r4-r6, pc} +_0206C508: + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + bl sub_020315D8 + cmp r0, #0x0 + bne _0206C518 + mov r0, #0x0 + pop {r4-r6, pc} +_0206C518: + cmp r4, #0x1 + bne _0206C52E + bl sub_0206B8A4 + add r5, #0x20 + add r2, r0, #0x0 + mov r0, #0x1f + add r1, r5, #0x0 + bl sub_02030A78 + pop {r4-r6, pc} +_0206C52E: + bl sub_0206B8A4 + add r5, #0x20 + add r2, r0, #0x0 + mov r0, #0x20 + add r1, r5, #0x0 + bl sub_02030A78 + pop {r4-r6, pc} + + thumb_func_start sub_0206C540 +sub_0206C540: ; 0x0206C540 + ldr r0, _0206C54C ; =0x00001020 + ldrb r1, [r3, r0] + add r1, r1, #0x1 + strb r1, [r3, r0] + bx lr + nop +_0206C54C: .word 0x00001020 + + thumb_func_start sub_0206C550 +sub_0206C550: ; 0x0206C550 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x0] + bl sub_022300D4 + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_022300E8 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_022300F4 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + bl sub_02230100 + add r7, r0, #0x0 + ldrb r0, [r5, #0x4] + cmp r0, #0x0 + beq _0206C582 + cmp r0, #0xff + b _0206C5CC +_0206C582: + bl sub_02030C58 + mov r1, #0x42 + lsl r1, r1, #0x2 + cmp r0, r1 + bne _0206C5D8 + ldr r0, [sp, #0x4] + ldrh r1, [r4, #0x0] + ldrh r0, [r0, #0x0] + cmp r1, r0 + beq _0206C5D8 + ldrh r0, [r7, #0x0] + cmp r1, r0 + bne _0206C5A4 + mov r0, #0x0 + strh r0, [r4, #0x0] + strh r0, [r7, #0x0] +_0206C5A4: + ldrh r1, [r4, #0x0] + add r0, r1, #0x2 + ldrb r2, [r6, r0] + add r0, r1, #0x3 + ldrb r0, [r6, r0] + add r1, r6, r1 + lsl r0, r0, #0x8 + orr r0, r2 + add r5, r0, #0x4 + mov r0, #0x17 + add r2, r5, #0x0 + bl sub_02030ADC + cmp r0, #0x1 + bne _0206C5D8 + ldrh r0, [r4, #0x0] + add sp, #0x8 + add r0, r0, r5 + strh r0, [r4, #0x0] + pop {r3-r7, pc} +_0206C5CC: + add r0, r5, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x0] + bl sub_0200CAB4 +_0206C5D8: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0206C5DC +sub_0206C5DC: ; 0x0206C5DC + push {r3-r7, lr} + add r5, r1, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x0] + bl sub_022300DC + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_0223010C + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02230118 + add r7, r0, #0x0 + ldr r0, [r5, #0x0] + bl sub_02230124 + ldrb r1, [r5, #0x4] + cmp r1, #0x0 + beq _0206C60A + cmp r1, #0xff + b _0206C63E +_0206C60A: + ldrh r1, [r4, #0x0] + ldrh r2, [r7, #0x0] + cmp r1, r2 + beq _0206C64A + ldrh r2, [r0, #0x0] + cmp r1, r2 + bne _0206C61E + mov r1, #0x0 + strh r1, [r4, #0x0] + strh r1, [r0, #0x0] +_0206C61E: + ldrh r1, [r4, #0x0] + ldr r0, [r5, #0x0] + add r1, r6, r1 + bl sub_022567E0 + ldrh r0, [r4, #0x0] + add r1, r0, #0x2 + ldrb r2, [r6, r1] + add r1, r0, #0x3 + ldrb r1, [r6, r1] + lsl r1, r1, #0x8 + orr r1, r2 + add r1, r1, #0x4 + add r0, r0, r1 + strh r0, [r4, #0x0] + pop {r3-r7, pc} +_0206C63E: + add r0, r5, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x0] + bl sub_0200CAB4 +_0206C64A: + pop {r3-r7, pc} + + thumb_func_start sub_0206C64C +sub_0206C64C: ; 0x0206C64C + push {r4, lr} + add r4, r3, #0x0 + add r0, r4, #0x0 + mov r1, #0xff + bl sub_0223135C + add r0, r4, #0x0 + mov r1, #0xff + bl sub_02231368 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02231374 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206C66C +sub_0206C66C: ; 0x0206C66C + push {r4-r6, lr} + add r4, r2, #0x0 + add r6, r0, #0x0 + add r5, r1, #0x0 + bl sub_0202398C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02002248 + add r0, r6, #0x0 + bl sub_020239BC + str r0, [r4, #0x10] + add r0, r6, #0x0 + bl sub_02023A70 + strb r0, [r4, #0x14] + add r0, r6, #0x0 + bl sub_02023A68 + strb r0, [r4, #0x15] + add r0, r6, #0x0 + bl sub_020239CC + strb r0, [r4, #0x16] + mov r0, #0x0 + add r1, r4, #0x0 +_0206C6A4: + ldr r2, [r5, #0x10] + str r2, [r1, #0x18] + ldrb r3, [r5, #0x15] + add r2, r4, r0 + add r2, #0x58 + strb r3, [r2, #0x0] + add r2, r4, r0 + ldrb r3, [r5, #0x14] + add r2, #0x68 + add r1, r1, #0x4 + strb r3, [r2, #0x0] + add r2, r4, r0 + ldrb r3, [r5, #0x16] + add r2, #0x78 + add r0, r0, #0x1 + add r5, #0x88 + strb r3, [r2, #0x0] + cmp r0, #0x10 + blt _0206C6A4 + pop {r4-r6, pc} + + thumb_func_start sub_0206C6CC +sub_0206C6CC: ; 0x0206C6CC + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r4, r3, #0x0 + bl sub_02031190 + cmp r5, r0 + beq _0206C6EE + mov r0, #0x53 + ldr r1, [r4, #0x0] + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + add r1, r6, #0x0 + mov r2, #0x1 + mov r3, #0x5 + bl sub_02025520 +_0206C6EE: + ldr r0, _0206C6F8 ; =0x00001020 + ldrb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, r0] + pop {r4-r6, pc} + .balign 4 +_0206C6F8: .word 0x00001020 + + thumb_func_start sub_0206C6FC +sub_0206C6FC: ; 0x0206C6FC + mov r0, #0x88 + bx lr + + thumb_func_start sub_0206C700 +sub_0206C700: ; 0x0206C700 + push {r4-r7, lr} + sub sp, #0x24 + ldr r5, [sp, #0x54] + add r6, r0, #0x0 + str r1, [sp, #0x14] + add r0, r5, #0x0 + mov r1, #0x80 + add r7, r2, #0x0 + str r3, [sp, #0x18] + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x80 + blx sub_020CE240 + bl sub_020222F0 + str r0, [sp, #0x1c] + bl sub_020222E8 + add r1, r0, #0x0 + ldr r2, [sp, #0x1c] + mov r0, #0x0 + blx sub_020CE1C8 + bl sub_02022300 + str r0, [sp, #0x20] + bl sub_020222F8 + add r1, r0, #0x0 + ldr r2, [sp, #0x20] + mov r0, #0x0 + blx sub_020CE1C8 + ldr r0, [sp, #0x14] + str r6, [r4, #0x24] + mov r1, #0x5 + mov r2, #0x0 + str r0, [r4, #0x28] + bl sub_020671BC + add r1, r4, #0x0 + add r1, #0x60 + strh r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x62 + strh r7, [r0, #0x0] + str r5, [r4, #0x5c] + add r0, r5, #0x0 + bl sub_02002FD0 + str r0, [r4, #0x14] + mov r1, #0x1 + bl sub_020038F0 + mov r2, #0x2 + ldr r0, [r4, #0x14] + mov r1, #0x0 + lsl r2, r2, #0x8 + add r3, r5, #0x0 + bl sub_02003008 + mov r1, #0x1 + ldr r0, [r4, #0x14] + lsl r2, r1, #0x9 + add r3, r5, #0x0 + bl sub_02003008 + mov r2, #0x7 + ldr r0, [r4, #0x14] + mov r1, #0x2 + lsl r2, r2, #0x6 + add r3, r5, #0x0 + bl sub_02003008 + mov r2, #0x2 + ldr r0, [r4, #0x14] + mov r1, #0x3 + lsl r2, r2, #0x8 + add r3, r5, #0x0 + bl sub_02003008 + add r0, r5, #0x0 + bl sub_02016B94 + str r0, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02018FF4 + str r0, [r4, #0x4] + ldr r0, [sp, #0x18] + str r0, [r4, #0x2c] + add r0, r5, #0x0 + bl sub_0206DE78 + str r0, [r4, #0x34] + bl sub_0206DE24 + bl sub_0206DE4C + bl sub_0206DF18 + ldr r1, [r4, #0x0] + add r0, r4, #0x0 + bl sub_0206D9B4 + mov r0, #0x13 + str r0, [sp, #0x0] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + mov r0, #0xb + str r0, [sp, #0xc] + mov r0, #0x1f + str r0, [sp, #0x10] + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + mov r2, #0x1 + mov r3, #0x2 + bl sub_02019064 + ldr r0, [r4, #0x4] + mov r1, #0xff + bl sub_02019620 + ldr r0, [r4, #0x4] + mov r1, #0x0 + mov r2, #0x1 + mov r3, #0xa + bl sub_0200D0BC + add r0, r5, #0x0 + bl sub_02006D98 + str r0, [r4, #0x18] + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0x0 + bl sub_02014BF4 + str r0, [r4, #0x44] + add r0, r4, #0x0 + mov r2, #0x51 + mov r1, #0x0 + add r0, #0x67 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x2 + add r0, #0x66 + strb r1, [r0, #0x0] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + add r3, r5, #0x0 + bl sub_0200A86C + str r0, [r4, #0x8] + add r0, r5, #0x0 + bl sub_0200AA80 + str r0, [r4, #0xc] + mov r0, #0x5 + lsl r0, r0, #0x6 + add r1, r5, #0x0 + bl sub_020219F4 + str r0, [r4, #0x10] + add r0, r5, #0x0 + mov r1, #0x30 + bl sub_02016998 + str r0, [r4, #0x3c] + ldr r1, [r4, #0x3c] + mov r0, #0x0 + mov r2, #0x30 + blx sub_020CE240 + ldr r1, [sp, #0x38] + ldr r0, [r4, #0x3c] + str r1, [r0, #0x2c] + ldr r0, [sp, #0x3c] + str r0, [r4, #0x48] + ldr r0, [sp, #0x40] + str r0, [r4, #0x4c] + ldr r0, [sp, #0x44] + str r0, [r4, #0x50] + ldr r0, [sp, #0x48] + str r0, [r4, #0x54] + ldr r0, [sp, #0x4c] + str r0, [r4, #0x78] + ldr r0, [sp, #0x50] + str r0, [r4, #0x7c] + add r0, r4, #0x0 + bl sub_0206DC80 + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [r4, #0x14] + ldr r2, _0206C8E4 ; =0x0000FFFF + mov r1, #0xf + mov r3, #0x1 + bl sub_02003210 + mov r2, #0x0 + str r2, [sp, #0x0] + ldr r0, [r4, #0x18] + mov r1, #0x10 + add r3, r2, #0x0 + bl sub_02007E98 + ldr r0, [r4, #0x14] + mov r1, #0x0 + mov r2, #0xb + add r3, r5, #0x0 + bl sub_020142EC + mov r1, #0x1 + str r0, [r4, #0x58] + bl sub_020143A8 + ldr r0, _0206C8E8 ; =sub_0206C8EC + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_0200CA44 + mov r0, #0x1 + bl sub_02002B60 + bl sub_02033E74 + add r0, r4, #0x0 + add sp, #0x24 + pop {r4-r7, pc} + nop +_0206C8E4: .word 0x0000FFFF +_0206C8E8: .word sub_0206C8EC + 1 + + thumb_func_start sub_0206C8EC +sub_0206C8EC: ; 0x0206C8EC + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0206C9C0 + ldr r0, [r5, #0x18] + bl sub_02006ED4 + bl sub_0206DF58 + mov r0, #0x1 + mov r1, #0x0 + bl sub_020222B4 + add r5, #0x67 + ldrb r0, [r5, #0x0] + cmp r0, #0x0 + beq _0206C918 + add r0, r4, #0x0 + bl sub_0200CAB4 +_0206C918: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0206C91C +sub_0206C91C: ; 0x0206C91C + add r0, #0x67 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0206C928 + mov r0, #0x1 + bx lr +_0206C928: + mov r0, #0x0 + bx lr + + thumb_func_start sub_0206C92C +sub_0206C92C: ; 0x0206C92C + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0200E3A0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + ldr r0, [r4, #0x4] + mov r1, #0x1 + bl sub_020191A4 + ldr r0, [r4, #0x14] + mov r1, #0x0 + bl sub_02003038 + ldr r0, [r4, #0x14] + mov r1, #0x1 + bl sub_02003038 + ldr r0, [r4, #0x14] + mov r1, #0x2 + bl sub_02003038 + ldr r0, [r4, #0x14] + mov r1, #0x3 + bl sub_02003038 + ldr r0, [r4, #0x14] + bl sub_02002FEC + ldr r0, [r4, #0x18] + bl sub_020072E8 + ldr r0, [r4, #0x44] + bl sub_02014C28 + ldr r0, [r4, #0x34] + bl sub_020223BC + ldr r0, [r4, #0x0] + bl sub_0206DC48 + ldr r0, [r4, #0x8] + bl sub_0200A8B8 + ldr r0, [r4, #0xc] + bl sub_0200AB18 + ldr r0, [r4, #0x10] + bl sub_02016A18 + ldr r0, [r4, #0x3c] + bl sub_02016A18 + ldr r0, [r4, #0x58] + bl sub_020143D0 + ldr r0, [r4, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x0 + bl sub_02002B60 + pop {r4, pc} + + thumb_func_start sub_0206C9C0 +sub_0206C9C0: ; 0x0206C9C0 + push {r3-r4, lr} + sub sp, #0x54 + add r4, r0, #0x0 + add r0, #0x70 + ldrb r1, [r0, #0x0] + cmp r1, #0x0 + beq _0206CA9C + mov r0, #0x1 + tst r0, r1 + ldr r0, [r4, #0x1c] + bne _0206CA2E + add r2, r4, #0x0 + add r2, #0x71 + ldrb r2, [r2, #0x0] + mov r1, #0xc + neg r2, r2 + bl sub_020079E0 + add r2, r4, #0x0 + add r2, #0x71 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x1c] + mov r1, #0xd + neg r2, r2 + bl sub_020079E0 + add r2, r4, #0x0 + add r2, #0x71 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x20] + mov r1, #0xc + bl sub_020079E0 + add r2, r4, #0x0 + add r2, #0x71 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x20] + mov r1, #0xd + bl sub_020079E0 + ldr r0, [r4, #0x1c] + mov r1, #0xc + bl sub_0200782C + cmp r0, #0x0 + bne _0206CA9C + add r0, r4, #0x0 + add r0, #0x70 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + eor r1, r0 + add r0, r4, #0x0 + add r0, #0x70 + strb r1, [r0, #0x0] + b _0206CA9C +_0206CA2E: + add r2, r4, #0x0 + add r2, #0x71 + ldrb r2, [r2, #0x0] + mov r1, #0xc + bl sub_020079E0 + add r2, r4, #0x0 + add r2, #0x71 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x1c] + mov r1, #0xd + bl sub_020079E0 + add r2, r4, #0x0 + add r2, #0x71 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x20] + mov r1, #0xc + neg r2, r2 + bl sub_020079E0 + add r2, r4, #0x0 + add r2, #0x71 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x20] + mov r1, #0xd + neg r2, r2 + bl sub_020079E0 + ldr r0, [r4, #0x20] + mov r1, #0xc + bl sub_0200782C + cmp r0, #0x0 + bne _0206CA9C + add r0, r4, #0x0 + add r0, #0x70 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + eor r1, r0 + add r0, r4, #0x0 + add r0, #0x70 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x71 + ldrb r0, [r0, #0x0] + cmp r0, #0x40 + bhs _0206CA9C + add r0, r4, #0x0 + add r0, #0x71 + ldrb r0, [r0, #0x0] + lsl r1, r0, #0x1 + add r0, r4, #0x0 + add r0, #0x71 + strb r1, [r0, #0x0] +_0206CA9C: + ldr r1, [r4, #0x7c] + mov r0, #0x1 + tst r0, r1 + beq _0206CAD6 + add r0, r4, #0x0 + add r0, #0x64 + ldrb r0, [r0, #0x0] + cmp r0, #0x8 + bne _0206CAD6 + ldr r0, _0206CE0C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x2 + tst r0, r1 + beq _0206CAD6 + mov r3, #0x0 + str r3, [sp, #0x0] + mov r0, #0x10 + str r0, [sp, #0x4] + ldr r0, _0206CE10 ; =0x00007FFF + ldr r2, _0206CE14 ; =0x0000F3FF + str r0, [sp, #0x8] + ldr r0, [r4, #0x14] + mov r1, #0xf + bl sub_02003210 + add r0, r4, #0x0 + mov r1, #0x29 + add r0, #0x64 + strb r1, [r0, #0x0] +_0206CAD6: + add r0, r4, #0x0 + add r0, #0x64 + ldrb r0, [r0, #0x0] + cmp r0, #0x2d + bhi _0206CBA8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r3, #0x1 + lsl r2, r0, #0x2 + lsl r0, r6, #0x2 + lsl r6, r3, #0x3 + lsl r6, r6, #0x3 + lsl r0, r7, #0x5 + lsl r4, r0, #0x7 + lsl r6, r0, #0x9 + lsl r2, r3, #0xb + lsl r4, r3, #0xe + lsl r2, r5, #0x10 + lsl r0, r2, #0x12 + lsl r4, r1, #0x14 + lsl r0, r0, #0x16 + lsl r2, r7, #0x17 + lsl r2, r3, #0x1a + lsl r6, r7, #0x18 + lsl r2, r3, #0x1a + lsl r4, r6, #0x19 + lsl r2, r3, #0x1a + lsl r2, r2, #0x1b + lsl r0, r4, #0x1c + lsl r2, r6, #0x1d + lsl r4, r6, #0x1f + lsr r2, r6, #0x1 + lsr r2, r2, #0x6 + lsl r2, r3, #0x1a + lsr r0, r7, #0x6 + lsl r2, r3, #0x1a + lsr r2, r1, #0x8 + lsl r2, r3, #0x1a + lsr r0, r6, #0x8 + lsr r2, r5, #0x2 + lsl r2, r3, #0x1a + lsr r6, r3, #0x3 + lsr r0, r0, #0x4 + lsr r0, r4, #0x5 + lsr r4, r7, #0xa + lsr r2, r3, #0xb + lsr r6, r0, #0xc + lsr r2, r7, #0xc + lsr r2, r3, #0xd + lsr r0, r0, #0x10 + lsr r2, r3, #0x11 + lsr r6, r5, #0x12 + lsr r0, r1, #0x14 + add r0, r4, #0x0 + add r0, #0x66 + ldrb r0, [r0, #0x0] + sub r1, r0, #0x1 + add r0, r4, #0x0 + add r0, #0x66 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x66 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0206CBA8 + add r0, r4, #0x0 + add r0, #0x64 + ldrb r0, [r0, #0x0] + add r4, #0x64 + add sp, #0x54 + add r0, r0, #0x1 + strb r0, [r4, #0x0] + pop {r3-r4, pc} +_0206CB70: + .byte 0x00, 0x20, 0xA1, 0xF7, 0x0F, 0xFC, 0x01, 0x20, 0xA1, 0xF7, 0x0C, 0xFC, 0xA0, 0x6D, 0x00, 0x21 + .byte 0xA7, 0xF7, 0x12, 0xFC, 0xE1, 0x6F, 0x02, 0x20, 0x01, 0x42, 0x03, 0xD0, 0x64, 0x34, 0x15, 0xB0 + .byte 0x20, 0x70, 0x18, 0xBD, 0x04, 0x20, 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD, 0x60, 0x69 + .byte 0x96, 0xF7, 0xA0, 0xFE, 0x00, 0x28, 0x01, 0xD0 +_0206CBA8: + bl sub_0206D806 + mov r1, #0xe5 + add r0, r4, #0x0 + lsl r1, r1, #0x2 + bl sub_0206DD6C + add r1, r4, #0x0 + add r1, #0x65 + strb r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x64 + ldrb r0, [r0, #0x0] + add r4, #0x64 + add sp, #0x54 + add r0, r0, #0x1 + strb r0, [r4, #0x0] + pop {r3-r4, pc} +_0206CBCC: + .byte 0x20, 0x1C, 0x65, 0x30 + .byte 0x00, 0x78, 0xAF, 0xF7, 0xCD, 0xF8, 0x00, 0x28, 0x77, 0xD1, 0x04, 0x20, 0x64, 0x34, 0x15, 0xB0 + .byte 0x20, 0x70, 0x18, 0xBD, 0x60, 0x69, 0x96, 0xF7, 0x7D, 0xFE, 0x00, 0x28, 0x6D, 0xD1, 0x00, 0x20 + .byte 0x00, 0x90, 0x01, 0x90, 0x02, 0x90, 0x22, 0x1C, 0x60, 0x32, 0x12, 0x88, 0x60, 0x6C, 0xE1, 0x69 + .byte 0x02, 0x23, 0xFC, 0xF7, 0x19, 0xFA, 0x21, 0x1C, 0x60, 0x31, 0x09, 0x88, 0x10, 0xA8, 0xFC, 0xF7 + .byte 0xFF, 0xF9, 0xE0, 0x69, 0x10, 0xA9, 0x9A, 0xF7, 0xB1, 0xFB, 0xE0, 0x69, 0x00, 0x21, 0x9A, 0xF7 + .byte 0x79, 0xFB, 0x20, 0x1C, 0x60, 0x30, 0x00, 0x88, 0x98, 0xF7, 0xA6, 0xFC, 0xA0, 0x6A, 0xFC, 0xF7 + .byte 0x59, 0xFA, 0x02, 0x1C, 0xE0, 0x68, 0x00, 0x21, 0x9E, 0xF7, 0x5E, 0xF8, 0xE1, 0x6F, 0x02, 0x20 + .byte 0x08, 0x42, 0x04, 0xD0, 0x74, 0x49, 0x20, 0x1C, 0x01, 0xF0, 0x90, 0xF8, 0x03, 0xE0, 0x73, 0x49 + .byte 0x20, 0x1C, 0x01, 0xF0, 0x8B, 0xF8, 0x21, 0x1C, 0x65, 0x31, 0x08, 0x70, 0x05, 0x20, 0x64, 0x34 + .byte 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x1C, 0x65, 0x30, 0x00, 0x78, 0xAF, 0xF7, 0x80, 0xF8 + .byte 0x00, 0x28, 0x2A, 0xD1, 0x98, 0xF7, 0xFC, 0xFC, 0x00, 0x28, 0x26, 0xD1, 0x60, 0x6C, 0x00, 0x21 + .byte 0xA8, 0xF7, 0x7C, 0xF8, 0x01, 0x28, 0x20, 0xD1, 0xE0, 0x69, 0x9A, 0xF7, 0x81, 0xFB, 0x00, 0x28 + .byte 0x1B, 0xD1, 0xA0, 0x6D, 0x01, 0x21, 0xA7, 0xF7, 0x87, 0xFB, 0x61, 0x48, 0x98, 0xF7, 0xAA, 0xFA + .byte 0x20, 0x1C, 0x14, 0x21, 0x66, 0x30, 0x01, 0x70, 0x06, 0x20, 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70 + .byte 0x18, 0xBD, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78, 0x41, 0x1E, 0x20, 0x1C, 0x66, 0x30, 0x01, 0x70 + .byte 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78, 0x00, 0x28, 0x01, 0xD0, 0x00, 0xF0, 0x9C, 0xFD, 0xE0, 0x6D + .byte 0x04, 0x90, 0x00, 0x20, 0x05, 0x90, 0x04, 0xA8, 0x01, 0xF0, 0xD0, 0xF9, 0x00, 0x21, 0x20, 0x63 + .byte 0x01, 0xF0, 0xE4, 0xF9, 0x4A, 0x48, 0x00, 0x21, 0x00, 0x90, 0xE0, 0x69, 0x10, 0x22, 0x04, 0x23 + .byte 0x9B, 0xF7, 0xBA, 0xF8, 0x46, 0x48, 0x00, 0x21, 0x00, 0x90, 0x20, 0x6A, 0x10, 0x22, 0x04, 0x23 + .byte 0x9B, 0xF7, 0xB2, 0xF8, 0xE0, 0x6D, 0xA9, 0xF7, 0xF7, 0xFE, 0x02, 0x21, 0x89, 0x03, 0x88, 0x42 + .byte 0x01, 0xD8, 0xB3, 0xF7, 0x8B, 0xFF, 0x43, 0x48, 0x98, 0xF7, 0xD6, 0xFB, 0x20, 0x1C, 0x28, 0x21 + .byte 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C + .byte 0x20, 0x70, 0x18, 0xBD, 0x20, 0x1C, 0x73, 0x30, 0x00, 0x78, 0x28, 0x28, 0x0D, 0xD2, 0x20, 0x1C + .byte 0x73, 0x30, 0x00, 0x78, 0x81, 0x1C, 0x20, 0x1C, 0x73, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x75, 0x30 + .byte 0x00, 0x78, 0x81, 0x1E, 0x20, 0x1C, 0x75, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78 + .byte 0x41, 0x1E, 0x20, 0x1C, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78, 0x00, 0x28 + .byte 0x2F, 0xD1, 0x20, 0x6B, 0x01, 0x21, 0x01, 0xF0, 0x99, 0xF9, 0x20, 0x6B, 0x02, 0x21, 0x01, 0xF0 + .byte 0x95, 0xF9, 0x20, 0x6B, 0x07, 0x21, 0x01, 0xF0, 0x91, 0xF9, 0x20, 0x6B, 0x08, 0x21, 0x01, 0xF0 + .byte 0x8D, 0xF9, 0x20, 0x6B, 0x09, 0x21, 0x01, 0xF0, 0x89, 0xF9, 0x20, 0x6B, 0x0B, 0x21, 0x01, 0xF0 + .byte 0x85, 0xF9, 0x21, 0x48, 0x98, 0xF7, 0x90, 0xFB, 0x20, 0x1C, 0x10, 0x21, 0x70, 0x30, 0x01, 0x70 + .byte 0x20, 0x1C, 0x08, 0x21, 0x71, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34 + .byte 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x6B, 0x01, 0xF0, 0x7D, 0xF9, 0x00, 0x28 + .byte 0x01, 0xD0, 0x00, 0xF0, 0x18, 0xFD, 0x20, 0x6B, 0x03, 0x21, 0x01, 0xF0, 0x67, 0xF9, 0x20, 0x6B + .byte 0x04, 0x21, 0x01, 0xF0, 0x63, 0xF9, 0x20, 0x6B, 0x05, 0x21, 0x01, 0xF0, 0x5F, 0xF9, 0x20, 0x6B + .byte 0x06, 0x21, 0x01, 0xF0, 0x5B, 0xF9, 0x20, 0x6B, 0x0A, 0x21, 0x01, 0xF0, 0x57, 0xF9, 0x00, 0x20 + .byte 0x00, 0x90, 0x10, 0x20, 0x01, 0x90, 0x02, 0x48, 0x02, 0x4A, 0x0F, 0xE0 +_0206CE0C: .word 0x021C48B8 +_0206CE10: .word 0x00007FFF +_0206CE14: .word 0x0000F3FF +_0206CE18: + .byte 0x95, 0x03, 0x00, 0x00, 0x93, 0x03, 0x00, 0x00 + .byte 0x75, 0x04, 0x00, 0x00, 0xF9, 0x05, 0x00, 0x00, 0xFA, 0x05, 0x00, 0x00, 0x02, 0x90, 0x60, 0x69 + .byte 0x0F, 0x21, 0x02, 0x23, 0x96, 0xF7, 0xEC, 0xF9, 0xE0, 0x69, 0x0C, 0x21, 0x00, 0x22, 0x9A, 0xF7 + .byte 0x8B, 0xFB, 0xE0, 0x69, 0x0D, 0x21, 0x00, 0x22, 0x9A, 0xF7, 0x86, 0xFB, 0x0C, 0x21, 0x0A, 0x1C + .byte 0x20, 0x6A, 0xF4, 0x32, 0x9A, 0xF7, 0x80, 0xFB, 0x0D, 0x21, 0x0A, 0x1C, 0x20, 0x6A, 0xF3, 0x32 + .byte 0x9A, 0xF7, 0x7A, 0xFB, 0xD8, 0x48, 0x98, 0xF7, 0x2F, 0xFB, 0x20, 0x1C, 0x00, 0x21, 0x70, 0x30 + .byte 0x01, 0x70, 0x20, 0x1C, 0x08, 0x21, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78 + .byte 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x1C, 0x73, 0x30, 0x00, 0x78 + .byte 0x00, 0x28, 0x0D, 0xD0, 0x20, 0x1C, 0x73, 0x30, 0x00, 0x78, 0x81, 0x1E, 0x20, 0x1C, 0x73, 0x30 + .byte 0x01, 0x70, 0x20, 0x1C, 0x75, 0x30, 0x00, 0x78, 0x81, 0x1C, 0x20, 0x1C, 0x75, 0x30, 0x01, 0x70 + .byte 0x60, 0x69, 0x96, 0xF7, 0x17, 0xFD, 0x00, 0x28, 0x38, 0xD1, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78 + .byte 0x41, 0x1E, 0x20, 0x1C, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78, 0x00, 0x28 + .byte 0x2C, 0xD1, 0x20, 0x6B, 0x0C, 0x21, 0x01, 0xF0, 0xE9, 0xF8, 0x10, 0x20, 0x00, 0x90, 0x00, 0x20 + .byte 0x01, 0x90, 0xBA, 0x48, 0xBA, 0x4A, 0x02, 0x90, 0x60, 0x69, 0x0F, 0x21, 0x04, 0x23, 0x96, 0xF7 + .byte 0x8F, 0xF9, 0xB6, 0x48, 0x10, 0x21, 0x00, 0x90, 0xA0, 0x69, 0x00, 0x22, 0x03, 0x23, 0x9A, 0xF7 + .byte 0xCB, 0xFF, 0xB4, 0x48, 0x98, 0xF7, 0xE0, 0xFA, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34 + .byte 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x60, 0x69, 0x96, 0xF7, 0xE3, 0xFC, 0x00, 0x28 + .byte 0x04, 0xD1, 0x20, 0x6B, 0x01, 0xF0, 0xD0, 0xF8, 0x00, 0x28, 0x01, 0xD0, 0x00, 0xF0, 0x6B, 0xFC + .byte 0x00, 0x20, 0x00, 0x90, 0x01, 0x90, 0x02, 0x90, 0x22, 0x1C, 0x62, 0x32, 0x12, 0x88, 0x60, 0x6C + .byte 0x21, 0x6A, 0x02, 0x23, 0xFC, 0xF7, 0x78, 0xF8, 0x21, 0x1C, 0x62, 0x31, 0x09, 0x88, 0x0B, 0xA8 + .byte 0xFC, 0xF7, 0x5E, 0xF8, 0x20, 0x6A, 0x0B, 0xA9, 0x9A, 0xF7, 0x10, 0xFA, 0x20, 0x6A, 0x00, 0x21 + .byte 0x9A, 0xF7, 0xD8, 0xF9, 0x20, 0x1C, 0x62, 0x30, 0x00, 0x88, 0x98, 0xF7, 0x05, 0xFB, 0x20, 0x1C + .byte 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x98, 0xF7 + .byte 0x77, 0xFB, 0x00, 0x28, 0x7E, 0xD1, 0x60, 0x6C, 0x00, 0x21, 0xA7, 0xF7, 0xF7, 0xFE, 0x01, 0x28 + .byte 0x78, 0xD1, 0x20, 0x6A, 0x9A, 0xF7, 0xFC, 0xF9, 0x00, 0x28, 0x73, 0xD1, 0x22, 0x1C, 0xA0, 0x6A + .byte 0x05, 0x21, 0x62, 0x32, 0xFA, 0xF7, 0x44, 0xFC, 0xA0, 0x6A, 0xFD, 0xF7, 0x0B, 0xF9, 0xA0, 0x6A + .byte 0xF9, 0xF7, 0x92, 0xFF, 0xA0, 0x6A, 0xFC, 0xF7, 0x95, 0xF8, 0x02, 0x1C, 0xE0, 0x68, 0x00, 0x21 + .byte 0x9D, 0xF7, 0x9A, 0xFE, 0xA0, 0x6A, 0xFC, 0xF7, 0x8D, 0xF8, 0x02, 0x1C, 0xE0, 0x68, 0x01, 0x21 + .byte 0x9D, 0xF7, 0x46, 0xFE, 0x80, 0x49, 0x20, 0x1C, 0x00, 0xF0, 0xC8, 0xFE, 0x21, 0x1C, 0x65, 0x31 + .byte 0x08, 0x70, 0x20, 0x1C, 0x28, 0x21, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78 + .byte 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x1C, 0x65, 0x30, 0x00, 0x78 + .byte 0xAE, 0xF7, 0xB6, 0xFE, 0x00, 0x28, 0x3D, 0xD1, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78, 0x41, 0x1E + .byte 0x20, 0x1C, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78, 0x00, 0x28, 0x31, 0xD1 + .byte 0xA0, 0x6C, 0xA1, 0x6A, 0xB7, 0xF7, 0x64, 0xFD, 0x20, 0x6D, 0x0C, 0x21, 0xBD, 0xF7, 0x5C, 0xF8 + .byte 0x20, 0x6D, 0x16, 0x21, 0xBD, 0xF7, 0x9C, 0xF8, 0xA0, 0x6A, 0xFC, 0xF7, 0x53, 0xF8, 0x01, 0x1C + .byte 0x60, 0x6D, 0xDF, 0xF7, 0x5F, 0xF8, 0xA0, 0x6A, 0x4D, 0x21, 0x00, 0x22, 0xFA, 0xF7, 0xB6, 0xF8 + .byte 0x00, 0x28, 0x04, 0xD1, 0xA0, 0x6A, 0xB2, 0x21, 0x00, 0x22, 0xFA, 0xF7, 0xE9, 0xFB, 0x20, 0x1C + .byte 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x21, 0x1C + .byte 0xA0, 0x6A, 0x68, 0x31, 0x03, 0xAA, 0xFC, 0xF7, 0xCF, 0xFB, 0x00, 0x28, 0x07, 0xD0, 0x57, 0x49 + .byte 0x88, 0x42, 0x00, 0xD1, 0xBF, 0xE3, 0x49, 0x1C, 0x88, 0x42, 0x05, 0xD0, 0x0E, 0xE0, 0x27, 0x20 + .byte 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD, 0x03, 0xA8, 0x01, 0x88, 0x20, 0x1C, 0x6C, 0x30 + .byte 0x01, 0x80, 0x0E, 0x20, 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD, 0xA0, 0x6A, 0xFC, 0xF7 + .byte 0x19, 0xF8, 0x02, 0x1C, 0xE0, 0x68, 0x00, 0x21, 0x9D, 0xF7, 0x1E, 0xFE, 0x03, 0xAA, 0x12, 0x88 + .byte 0xE0, 0x68, 0x01, 0x21, 0x9D, 0xF7, 0x4A, 0xFE, 0x20, 0x1C, 0x04, 0x21, 0x00, 0xF0, 0x4E, 0xFE + .byte 0x21, 0x1C, 0x65, 0x31, 0x08, 0x70, 0x20, 0x1C, 0x14, 0x21, 0x66, 0x30, 0x01, 0x70, 0x25, 0x20 + .byte 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD, 0xA0, 0x6A, 0xFB, 0xF7, 0xFB, 0xFF, 0x02, 0x1C + .byte 0xE0, 0x68, 0x00, 0x21, 0x9D, 0xF7, 0x00, 0xFE, 0x22, 0x1C, 0x6C, 0x32, 0x12, 0x88, 0xE0, 0x68 + .byte 0x01, 0x21, 0x9D, 0xF7, 0x2B, 0xFE, 0x36, 0x49, 0x20, 0x1C, 0x00, 0xF0, 0x2F, 0xFE, 0x21, 0x1C + .byte 0x65, 0x31, 0x08, 0x70, 0x20, 0x1C, 0x14, 0x21, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30 + .byte 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0xA0, 0x6A, 0xFB, 0xF7 + .byte 0xD9, 0xFF, 0x02, 0x1C, 0xE0, 0x68, 0x00, 0x21, 0x9D, 0xF7, 0xDE, 0xFD, 0x29, 0x49, 0x20, 0x1C + .byte 0x00, 0xF0, 0x14, 0xFE, 0x21, 0x1C, 0x65, 0x31, 0x08, 0x70, 0x20, 0x1C, 0x14, 0x21, 0x66, 0x30 + .byte 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70 + .byte 0x18, 0xBD, 0x21, 0x49, 0x20, 0x1C, 0x00, 0xF0, 0x01, 0xFE, 0x21, 0x1C, 0x65, 0x31, 0x08, 0x70 + .byte 0x20, 0x1C, 0x01, 0x21, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34 + .byte 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x1C, 0x65, 0x30, 0x00, 0x78, 0xAE, 0xF7 + .byte 0xEF, 0xFD, 0x00, 0x28, 0x0B, 0xD1, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78, 0x41, 0x1E, 0x20, 0x1C + .byte 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78, 0x00, 0x28, 0x00, 0xD0, 0x2A, 0xE3 + .byte 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD + .byte 0xE0, 0x6D, 0x0A, 0x49, 0x14, 0xE0, 0xC0, 0x46, 0xFB, 0x05, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00 + .byte 0xFF, 0xF3, 0x00, 0x00, 0xFC, 0x05, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00 + .byte 0xA9, 0x04, 0x00, 0x00, 0xAA, 0x04, 0x00, 0x00, 0xAB, 0x04, 0x00, 0x00, 0x20, 0x83, 0x0F, 0x02 + .byte 0x00, 0x90, 0x20, 0x68, 0x01, 0x22, 0x08, 0x23, 0x94, 0xF7, 0xCE, 0xFF, 0x20, 0x64, 0x20, 0x1C + .byte 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x6C + .byte 0xE1, 0x6D, 0x94, 0xF7, 0xCB, 0xFF, 0x00, 0x28, 0x05, 0xD0, 0x01, 0x21, 0xC9, 0x43, 0x88, 0x42 + .byte 0x19, 0xD0, 0x15, 0xB0, 0x18, 0xBD, 0x20, 0x1C, 0x16, 0x21, 0x64, 0x30, 0x01, 0x70, 0x00, 0x21 + .byte 0x00, 0x91, 0x10, 0x20, 0x01, 0x90, 0x02, 0x91, 0x60, 0x69, 0xC1, 0x4A, 0x0F, 0x21, 0x01, 0x23 + .byte 0x95, 0xF7, 0xE6, 0xFF, 0x00, 0x21, 0x00, 0x91, 0xA0, 0x69, 0x10, 0x22, 0x0B, 0x1C, 0x9A, 0xF7 + .byte 0x23, 0xFE, 0x15, 0xB0, 0x18, 0xBD, 0x20, 0x20, 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD + .byte 0x60, 0x69, 0x96, 0xF7, 0x3F, 0xFB, 0x00, 0x28, 0x40, 0xD1, 0x00, 0x20, 0x01, 0x1C, 0xA1, 0xF7 + .byte 0x97, 0xF8, 0x01, 0x20, 0x00, 0x21, 0xA1, 0xF7, 0x93, 0xF8, 0x20, 0x68, 0x00, 0xF0, 0xE4, 0xFC + .byte 0xE0, 0x69, 0x06, 0x21, 0x01, 0x22, 0x9A, 0xF7, 0x67, 0xF9, 0x20, 0x6A, 0x06, 0x21, 0x01, 0x22 + .byte 0x9A, 0xF7, 0x62, 0xF9, 0xA1, 0x6A, 0xE0, 0x6B, 0x01, 0x22, 0x01, 0x60, 0xE1, 0x6A, 0xE0, 0x6B + .byte 0x41, 0x60, 0xE1, 0x6B, 0x00, 0x20, 0x48, 0x74, 0xE1, 0x6B, 0x08, 0x75, 0xE1, 0x6B, 0xCA, 0x74 + .byte 0x21, 0x1C, 0x6C, 0x31, 0x0A, 0x88, 0xE1, 0x6B, 0x0A, 0x83, 0xE1, 0x6B, 0x02, 0x22, 0x8A, 0x74 + .byte 0xE1, 0x6B, 0x88, 0x62, 0xE0, 0x6B, 0x9F, 0x49, 0x0D, 0xF0, 0x9A, 0xFE, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x9D, 0xFD, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70 + .byte 0x18, 0xBD, 0xA0, 0x6B, 0x98, 0xF7, 0xD4, 0xFF, 0x00, 0x28, 0x00, 0xD1, 0x8B, 0xE2, 0xA0, 0x6B + .byte 0x98, 0xF7, 0xB6, 0xFF, 0x21, 0x68, 0x20, 0x1C, 0x00, 0xF0, 0x5C, 0xFB, 0x60, 0x68, 0x00, 0x21 + .byte 0x01, 0x22, 0x0A, 0x23, 0x9F, 0xF7, 0xDA, 0xFE, 0xE0, 0x69, 0x06, 0x21, 0x00, 0x22, 0x9A, 0xF7 + .byte 0x23, 0xF9, 0x20, 0x6A, 0x06, 0x21, 0x00, 0x22, 0x9A, 0xF7, 0x1E, 0xF9, 0xE0, 0x69, 0x9A, 0xF7 + .byte 0xD7, 0xFE, 0x20, 0x6A, 0x9A, 0xF7, 0xD4, 0xFE, 0x10, 0x20, 0x00, 0x90, 0x00, 0x20, 0x01, 0x90 + .byte 0x02, 0x90, 0x60, 0x69, 0x82, 0x4A, 0x0F, 0x21, 0x01, 0x23, 0x95, 0xF7, 0x69, 0xFF, 0x00, 0x22 + .byte 0x00, 0x92, 0xA0, 0x69, 0x10, 0x21, 0x13, 0x1C, 0x9A, 0xF7, 0xA6, 0xFD, 0xC6, 0xF7, 0x92, 0xFD + .byte 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD + .byte 0x00, 0x20, 0xA1, 0xF7, 0x17, 0xF8, 0x01, 0x20, 0xA1, 0xF7, 0x14, 0xF8, 0x60, 0x69, 0x96, 0xF7 + .byte 0xB9, 0xFA, 0x00, 0x28, 0x7E, 0xD1, 0xE0, 0x6B, 0x81, 0x7D, 0x04, 0x29, 0x04, 0xD1, 0x20, 0x20 + .byte 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x1C, 0x6E, 0x30, 0x01, 0x70, 0x19, 0x20 + .byte 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD, 0x22, 0x1C, 0x6C, 0x32, 0x12, 0x88, 0xE0, 0x68 + .byte 0x00, 0x21, 0x9D, 0xF7, 0xDB, 0xFC, 0x68, 0x49, 0x20, 0x1C, 0x00, 0xF0, 0xDF, 0xFC, 0x21, 0x1C + .byte 0x65, 0x31, 0x08, 0x70, 0x20, 0x1C, 0x01, 0x21, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30 + .byte 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0xE0, 0x6D, 0x5F, 0x49 + .byte 0x00, 0x90, 0x20, 0x68, 0x01, 0x22, 0x08, 0x23, 0x94, 0xF7, 0xDE, 0xFE, 0x20, 0x64, 0x20, 0x1C + .byte 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x6C + .byte 0xE1, 0x6D, 0x94, 0xF7, 0xDB, 0xFE, 0x00, 0x28, 0x05, 0xD0, 0x01, 0x21, 0xC9, 0x43, 0x88, 0x42 + .byte 0x20, 0xD0, 0x15, 0xB0, 0x18, 0xBD, 0xA0, 0x6A, 0xFB, 0xF7, 0x6C, 0xFE, 0x02, 0x1C, 0xE0, 0x68 + .byte 0x00, 0x21, 0x9D, 0xF7, 0x71, 0xFC, 0x22, 0x1C, 0x6C, 0x32, 0x12, 0x88, 0xE0, 0x68, 0x01, 0x21 + .byte 0x9D, 0xF7, 0x9C, 0xFC, 0x4A, 0x49, 0x20, 0x1C, 0x00, 0xF0, 0xA0, 0xFC, 0x21, 0x1C, 0x65, 0x31 + .byte 0x08, 0x70, 0x20, 0x1C, 0x14, 0x21, 0x66, 0x30, 0x01, 0x70, 0x24, 0x20, 0x64, 0x34, 0x15, 0xB0 + .byte 0x20, 0x70, 0x18, 0xBD, 0x0E, 0x20, 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x1C + .byte 0x65, 0x30, 0x00, 0x78, 0xAE, 0xF7, 0x8C, 0xFC, 0x00, 0x28, 0x0B, 0xD1, 0x20, 0x1C, 0x66, 0x30 + .byte 0x00, 0x78, 0x41, 0x1E, 0x20, 0x1C, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78 + .byte 0x00, 0x28, 0x00, 0xD0, 0xC7, 0xE1, 0x0D, 0x20, 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD + .byte 0x34, 0x49, 0x20, 0x1C, 0x00, 0xF0, 0x72, 0xFC, 0x21, 0x1C, 0x65, 0x31, 0x08, 0x70, 0x20, 0x1C + .byte 0x14, 0x21, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0 + .byte 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0xA0, 0x6A, 0xFB, 0xF7, 0x1C, 0xFE, 0x02, 0x1C, 0xE0, 0x68 + .byte 0x00, 0x21, 0x9D, 0xF7, 0x21, 0xFC, 0x21, 0x1C, 0x6E, 0x31, 0x09, 0x78, 0xA0, 0x6A, 0x00, 0x22 + .byte 0x36, 0x31, 0xF9, 0xF7, 0x7B, 0xFE, 0x02, 0x1C, 0xE0, 0x68, 0x01, 0x21, 0x9D, 0xF7, 0x46, 0xFC + .byte 0x4B, 0x21, 0x20, 0x1C, 0x09, 0x01, 0x00, 0xF0, 0x49, 0xFC, 0x21, 0x1C, 0x65, 0x31, 0x08, 0x70 + .byte 0x20, 0x1C, 0x14, 0x21, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34 + .byte 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x17, 0x49, 0x20, 0x1C, 0x00, 0xF0, 0x36, 0xFC + .byte 0x21, 0x1C, 0x65, 0x31, 0x08, 0x70, 0x20, 0x1C, 0x14, 0x21, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C + .byte 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0xA0, 0x6A + .byte 0xFB, 0xF7, 0xE0, 0xFD, 0x02, 0x1C, 0xE0, 0x68, 0x00, 0x21, 0x9D, 0xF7, 0xE5, 0xFB, 0x22, 0x1C + .byte 0x6C, 0x32, 0x12, 0x88, 0xE0, 0x68, 0x01, 0x21, 0x9D, 0xF7, 0x10, 0xFC, 0x07, 0x49, 0x0F, 0xE0 + .byte 0xFF, 0xFF, 0x00, 0x00, 0x1C, 0x83, 0x0F, 0x02, 0xAD, 0x04, 0x00, 0x00, 0x20, 0x83, 0x0F, 0x02 + .byte 0xAE, 0x04, 0x00, 0x00, 0xAF, 0x04, 0x00, 0x00, 0xB1, 0x04, 0x00, 0x00, 0xB2, 0x04, 0x00, 0x00 + .byte 0x20, 0x1C, 0x00, 0xF0, 0x03, 0xFC, 0x21, 0x1C, 0x65, 0x31, 0x08, 0x70, 0x20, 0x1C, 0x22, 0x1C + .byte 0x00, 0x21, 0x66, 0x30, 0x01, 0x70, 0x21, 0x1C, 0x6E, 0x31, 0x09, 0x78, 0xA0, 0x6A, 0x66, 0x32 + .byte 0x3E, 0x31, 0xFA, 0xF7, 0x55, 0xF9, 0x21, 0x1C, 0x22, 0x1C, 0x6C, 0x31, 0x6E, 0x32, 0x09, 0x88 + .byte 0x12, 0x78, 0xA0, 0x6A, 0xFC, 0xF7, 0x1A, 0xF9, 0x20, 0x1C, 0x14, 0x21, 0x66, 0x30, 0x01, 0x70 + .byte 0x25, 0x20, 0x64, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x1C, 0x65, 0x30, 0x00, 0x78 + .byte 0xAE, 0xF7, 0xDE, 0xFB, 0x00, 0x28, 0x17, 0xD1, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34 + .byte 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x98, 0xF7, 0x78, 0xFB, 0x00, 0x28, 0x0B, 0xD1 + .byte 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78, 0x41, 0x1E, 0x20, 0x1C, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C + .byte 0x66, 0x30, 0x00, 0x78, 0x00, 0x28, 0x00, 0xD0, 0x0D, 0xE1, 0x0D, 0x20, 0x64, 0x34, 0x15, 0xB0 + .byte 0x20, 0x70, 0x18, 0xBD, 0x00, 0x21, 0x00, 0x91, 0x10, 0x20, 0x01, 0x90, 0x02, 0x91, 0x60, 0x69 + .byte 0x82, 0x4A, 0x0F, 0x21, 0x01, 0x23, 0x95, 0xF7, 0x03, 0xFE, 0x00, 0x21, 0x00, 0x91, 0xA0, 0x69 + .byte 0x10, 0x22, 0x0B, 0x1C, 0x9A, 0xF7, 0x40, 0xFC, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34 + .byte 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x60, 0x69, 0x96, 0xF7, 0x5B, 0xF9, 0x00, 0x28 + .byte 0x62, 0xD1, 0x20, 0x6B, 0x00, 0xF0, 0x52, 0xFD, 0x20, 0x1C, 0x00, 0xF0, 0xF1, 0xF8, 0x01, 0x20 + .byte 0x67, 0x34, 0x15, 0xB0, 0x20, 0x70, 0x18, 0xBD, 0x60, 0x69, 0x96, 0xF7, 0x4B, 0xF9, 0x00, 0x28 + .byte 0x52, 0xD1, 0x0C, 0x21, 0x0A, 0x1C, 0xE0, 0x69, 0xF4, 0x32, 0x99, 0xF7, 0x7D, 0xFF, 0x0D, 0x21 + .byte 0x0A, 0x1C, 0xE0, 0x69, 0xF3, 0x32, 0x99, 0xF7, 0x77, 0xFF, 0x20, 0x6A, 0x0C, 0x21, 0x00, 0x22 + .byte 0x99, 0xF7, 0x72, 0xFF, 0x20, 0x6A, 0x0D, 0x21, 0x00, 0x22, 0x99, 0xF7, 0x6D, 0xFF, 0x20, 0x6A + .byte 0x06, 0x21, 0x01, 0x22, 0x99, 0xF7, 0x68, 0xFF, 0x10, 0x20, 0x00, 0x90, 0x00, 0x23, 0x60, 0x48 + .byte 0x01, 0x93, 0x02, 0x90, 0x60, 0x69, 0x5F, 0x4A, 0x0F, 0x21, 0x95, 0xF7, 0xB9, 0xFD, 0x5C, 0x48 + .byte 0x00, 0x22, 0x00, 0x90, 0xA0, 0x69, 0x10, 0x21, 0x13, 0x1C, 0x9A, 0xF7, 0xF5, 0xFB, 0x20, 0x1C + .byte 0x00, 0x21, 0x72, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x73, 0x30, 0x01, 0x70, 0x20, 0x1C, 0xFF, 0x22 + .byte 0x74, 0x30, 0x02, 0x70, 0x20, 0x1C, 0xA0, 0x22, 0x75, 0x30, 0x02, 0x70, 0x20, 0x1C, 0x70, 0x30 + .byte 0x01, 0x70, 0x51, 0x48, 0x97, 0xF7, 0x3C, 0xFE, 0x20, 0x6B, 0x00, 0xF0, 0xFF, 0xFC, 0x20, 0x1C + .byte 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x60, 0x69 + .byte 0x96, 0xF7, 0xF8, 0xF8, 0x00, 0x28, 0x00, 0xD0, 0x85, 0xE0, 0x00, 0x20, 0x00, 0x90, 0x01, 0x90 + .byte 0x02, 0x90, 0x22, 0x1C, 0x60, 0x32, 0x12, 0x88, 0x60, 0x6C, 0xE1, 0x69, 0x02, 0x23, 0xFB, 0xF7 + .byte 0x93, 0xFC, 0x21, 0x1C, 0x60, 0x31, 0x09, 0x88, 0x06, 0xA8, 0xFB, 0xF7, 0x79, 0xFC, 0xE0, 0x69 + .byte 0x06, 0xA9, 0x99, 0xF7, 0x2B, 0xFE, 0xE0, 0x69, 0x00, 0x21, 0x99, 0xF7, 0xF3, 0xFD, 0x20, 0x1C + .byte 0x60, 0x30, 0x00, 0x88, 0x97, 0xF7, 0x20, 0xFF, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34 + .byte 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x97, 0xF7, 0x92, 0xFF, 0x00, 0x28, 0x5A, 0xD1 + .byte 0x60, 0x6C, 0x00, 0x21, 0xA7, 0xF7, 0x12, 0xFB, 0x01, 0x28, 0x54, 0xD1, 0xE0, 0x69, 0x99, 0xF7 + .byte 0x17, 0xFE, 0x00, 0x28, 0x4F, 0xD1, 0xA0, 0x6A, 0xFB, 0xF7, 0xBC, 0xFC, 0x02, 0x1C, 0xE0, 0x68 + .byte 0x00, 0x21, 0x9D, 0xF7, 0xC1, 0xFA, 0x29, 0x49, 0x20, 0x1C, 0x00, 0xF0, 0xF7, 0xFA, 0x21, 0x1C + .byte 0x65, 0x31, 0x08, 0x70, 0x20, 0x1C, 0x14, 0x21, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x64, 0x30 + .byte 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0, 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x20, 0x1C, 0x65, 0x30 + .byte 0x00, 0x78, 0xAE, 0xF7, 0xE5, 0xFA, 0x00, 0x28, 0x2D, 0xD1, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78 + .byte 0x41, 0x1E, 0x20, 0x1C, 0x66, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x66, 0x30, 0x00, 0x78, 0x00, 0x28 + .byte 0x21, 0xD1, 0x00, 0x21, 0x00, 0x91, 0x10, 0x20, 0x01, 0x90, 0x02, 0x91, 0x60, 0x69, 0x0F, 0x4A + .byte 0x0F, 0x21, 0x01, 0x23, 0x95, 0xF7, 0x1C, 0xFD, 0x00, 0x21, 0x00, 0x91, 0xA0, 0x69, 0x10, 0x22 + .byte 0x0B, 0x1C, 0x9A, 0xF7, 0x59, 0xFB, 0x20, 0x1C, 0x64, 0x30, 0x00, 0x78, 0x64, 0x34, 0x15, 0xB0 + .byte 0x40, 0x1C, 0x20, 0x70, 0x18, 0xBD, 0x60, 0x69, 0x96, 0xF7, 0x74, 0xF8, 0x00, 0x28, 0x02, 0xD1 + .byte 0x01, 0x20, 0x67, 0x34, 0x20, 0x70 + + non_word_aligned_thumb_func_start sub_0206D806 +sub_0206D806: ; 0x0206D806 + add sp, #0x54 + pop {r3-r4, pc} + nop +_0206D80C: + .byte 0xFF, 0xFF, 0x00, 0x00 + .byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xF3, 0x00, 0x00, 0x75, 0x04, 0x00, 0x00, 0x97, 0x03, 0x00, 0x00 + + thumb_func_start sub_0206D820 +sub_0206D820: ; 0x0206D820 + push {r4-r6, lr} + sub sp, #0x20 + add r4, r0, #0x0 + ldr r0, [r4, #0x78] + cmp r0, #0x6 + bgt _0206D834 + bne _0206D830 + b _0206D9A0 +_0206D830: + add sp, #0x20 + pop {r4-r6, pc} +_0206D834: + sub r0, #0xd + cmp r0, #0x6 + bhi _0206D86C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r4, r1, #0 + lsl r6, r4, #0x5 + lsl r6, r4, #0x5 + lsl r6, r4, #0x5 + lsl r0, r3, #0x5 + lsl r0, r3, #0x5 + ldr r0, [r4, #0x4c] + ldr r2, [r4, #0x5c] + mov r1, #0x4 + bl sub_0206EEF8 + cmp r0, #0x0 + beq _0206D86C + ldr r0, [r4, #0x24] + bl sub_0206B9AC + cmp r0, #0x6 + blt _0206D86E +_0206D86C: + b _0206D9AE +_0206D86E: + ldr r0, [r4, #0x5c] + bl sub_020669C0 + add r5, r0, #0x0 + ldr r0, [r4, #0x28] + add r1, r5, #0x0 + bl sub_02069B88 + mov r0, #0x49 + lsl r0, r0, #0x2 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0x5 + add r2, sp, #0x0 + bl sub_02067830 + mov r0, #0x4 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0x9a + add r2, sp, #0x0 + bl sub_02067830 + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0x6 + add r2, sp, #0x0 + bl sub_02067830 + add r0, r5, #0x0 + mov r1, #0xb + add r2, sp, #0x0 + bl sub_02067830 + mov r1, #0x19 + str r1, [sp, #0x4] + add r6, sp, #0x0 +_0206D8BA: + add r0, r5, #0x0 + add r2, r6, #0x0 + bl sub_02067830 + ldr r0, [sp, #0x4] + add r1, r0, #0x1 + str r1, [sp, #0x4] + cmp r1, #0x36 + blt _0206D8BA + mov r1, #0x4e + str r1, [sp, #0x4] + add r6, sp, #0x0 +_0206D8D2: + add r0, r5, #0x0 + add r2, r6, #0x0 + bl sub_02067830 + ldr r0, [sp, #0x4] + add r1, r0, #0x1 + str r1, [sp, #0x4] + cmp r1, #0x6e + blt _0206D8D2 + mov r1, #0x7a + str r1, [sp, #0x4] + add r6, sp, #0x0 +_0206D8EA: + add r0, r5, #0x0 + add r2, r6, #0x0 + bl sub_02067830 + ldr r0, [sp, #0x4] + add r1, r0, #0x1 + str r1, [sp, #0x4] + cmp r1, #0x8f + blt _0206D8EA + add r0, r5, #0x0 + mov r1, #0xb2 + mov r2, #0x0 + bl sub_02067830 + add r0, r5, #0x0 + mov r1, #0x4d + add r2, sp, #0x0 + bl sub_02067830 + add r0, r5, #0x0 + mov r1, #0x9f + add r2, sp, #0x0 + bl sub_02067830 + ldr r0, [r4, #0x5c] + bl sub_020256BC + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xa9 + add r2, r6, #0x0 + bl sub_02067830 + add r0, r6, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + mov r1, #0xa1 + add r2, sp, #0x0 + bl sub_02067830 + mov r0, #0x0 + add r1, sp, #0x8 + mov r2, #0x18 + blx sub_020CE240 + add r0, r5, #0x0 + mov r1, #0xaa + add r2, sp, #0x8 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_0206A1C4 + add r0, r5, #0x0 + bl sub_02066ED8 + ldr r0, [r4, #0x24] + add r1, r5, #0x0 + bl sub_0206B900 + ldr r0, [r4, #0x48] + add r1, r5, #0x0 + bl sub_02024AF0 + ldr r0, [r4, #0x50] + mov r1, #0xc + bl sub_0202A0E8 + ldr r0, [r4, #0x50] + mov r1, #0x16 + bl sub_0202A170 + add r0, r5, #0x0 + bl sub_020690E4 + add r1, r0, #0x0 + ldr r0, [r4, #0x54] + bl sub_0204C104 + add r0, r5, #0x0 + bl sub_02016A18 + ldr r0, [r4, #0x4c] + ldr r3, [r4, #0x5c] + mov r1, #0x4 + mov r2, #0x1 + bl sub_0206EDD4 + add sp, #0x20 + pop {r4-r6, pc} +_0206D9A0: + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, [r4, #0x28] + mov r1, #0x6 + add r2, sp, #0x4 + bl sub_02067830 +_0206D9AE: + add sp, #0x20 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0206D9B4 +sub_0206D9B4: ; 0x0206D9B4 + push {r4-r6, lr} + sub sp, #0xb8 + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0201E6D8 + ldr r6, _0206DC28 ; =0x020F8354 + add r3, sp, #0x3c + mov r2, #0x5 +_0206D9C6: + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0206D9C6 + add r0, sp, #0x3c + bl sub_0201E66C + mov r1, #0x6 + mov r2, #0x2 + mov r0, #0x0 + lsl r1, r1, #0x18 + lsl r2, r2, #0x12 + blx sub_020CE1FC + mov r1, #0x62 + mov r2, #0x2 + mov r0, #0x0 + lsl r1, r1, #0x14 + lsl r2, r2, #0x10 + blx sub_020CE1FC + mov r1, #0x19 + mov r2, #0x1 + mov r0, #0x0 + lsl r1, r1, #0x16 + lsl r2, r2, #0x12 + blx sub_020CE1FC + mov r1, #0x66 + mov r2, #0x2 + mov r0, #0x0 + lsl r1, r1, #0x14 + lsl r2, r2, #0x10 + blx sub_020CE1FC + ldr r6, _0206DC2C ; =0x020F8328 + add r3, sp, #0x2c + add r2, r3, #0x0 + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + bl sub_02016BBC + ldr r6, _0206DC30 ; =0x020F837C + add r3, sp, #0x64 + mov r2, #0xa +_0206DA26: + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0206DA26 + ldr r0, [r6, #0x0] + mov r1, #0x1 + str r0, [r3, #0x0] + add r0, r4, #0x0 + add r2, sp, #0x64 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02018744 + add r0, r4, #0x0 + mov r1, #0x2 + add r2, sp, #0x80 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02018744 + add r0, r4, #0x0 + mov r1, #0x3 + add r2, sp, #0x9c + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_02018744 + ldr r1, _0206DC34 ; =0x04000008 + mov r0, #0x3 + ldrh r2, [r1, #0x0] + bic r2, r0 + mov r0, #0x1 + orr r2, r0 + strh r2, [r1, #0x0] + add r1, r0, #0x0 + bl sub_0201E6E4 + ldr r6, _0206DC38 ; =0x020F8338 + add r3, sp, #0x10 + ldmia r6!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r6, #0x0] + mov r1, #0x4 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_02018744 + ldr r0, [r5, #0x2c] + bl sub_02025084 + add r6, r0, #0x0 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r0, [r5, #0x5c] + mov r1, #0x1 + str r0, [sp, #0x4] + add r0, r4, #0x0 + add r2, r1, #0x0 + mov r3, #0xa + bl sub_0200D274 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + ldr r0, [r5, #0x5c] + add r2, r4, #0x0 + str r0, [sp, #0xc] + mov r0, #0x76 + mov r3, #0x3 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r1, #0x1 + str r1, [sp, #0x8] + ldr r0, [r5, #0x5c] + add r2, r4, #0x0 + str r0, [sp, #0xc] + mov r0, #0x76 + mov r3, #0x3 + bl sub_020068C8 + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0x40 + str r0, [sp, #0x4] + str r1, [sp, #0x8] + ldr r0, [r5, #0x14] + ldr r3, [r5, #0x5c] + mov r1, #0x76 + mov r2, #0x8 + bl sub_020030E8 + add r0, r6, #0x0 + bl sub_0200CD64 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + mov r0, #0xa0 + str r0, [sp, #0x8] + ldr r0, [r5, #0x14] + ldr r3, [r5, #0x5c] + mov r1, #0x26 + bl sub_020030E8 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + mov r0, #0xb0 + str r0, [sp, #0x8] + ldr r0, [r5, #0x14] + ldr r3, [r5, #0x5c] + mov r1, #0xe + mov r2, #0x7 + bl sub_020030E8 + ldr r0, [r5, #0x5c] + mov r1, #0x2 + str r0, [sp, #0x0] + ldr r0, [r5, #0x0] + mov r2, #0x1 + mov r3, #0x0 + bl sub_0200CABC + bl sub_0200CAFC + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + mov r0, #0x80 + str r0, [sp, #0x8] + ldr r0, [r5, #0x14] + ldr r3, [r5, #0x5c] + mov r1, #0x26 + bl sub_020030E8 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + ldr r0, [r5, #0x5c] + mov r1, #0xa + str r0, [sp, #0xc] + mov r0, #0xc + add r2, r4, #0x0 + mov r3, #0x4 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + ldr r0, [r5, #0x5c] + mov r1, #0xb + str r0, [sp, #0xc] + mov r0, #0xc + add r2, r4, #0x0 + mov r3, #0x4 + bl sub_020068C8 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + mov r1, #0xc + ldr r0, [r5, #0x14] + ldr r3, [r5, #0x5c] + add r2, r1, #0x0 + bl sub_020030E8 + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + ldr r2, _0206DC3C ; =0xFFFF1FFF + add r3, r1, #0x0 + and r3, r2 + lsr r1, r0, #0xd + orr r1, r3 + ldr r3, _0206DC40 ; =0x04001000 + str r1, [r0, #0x0] + ldr r1, [r3, #0x0] + and r1, r2 + str r1, [r3, #0x0] + add r3, r0, #0x0 + add r3, #0x48 + ldrh r4, [r3, #0x0] + mov r2, #0x3f + mov r1, #0x1f + bic r4, r2 + orr r1, r4 + strh r1, [r3, #0x0] + add r0, #0x4a + ldrh r3, [r0, #0x0] + mov r1, #0x12 + bic r3, r2 + orr r1, r3 + strh r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x0 + add r0, #0x72 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x73 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0xff + add r0, #0x74 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0xa0 + add r0, #0x75 + strb r1, [r0, #0x0] + bl sub_0201E788 + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E6E4 + ldr r0, _0206DC44 ; =sub_0206DD08 + add r1, r5, #0x0 + bl sub_02015F10 + add sp, #0xb8 + pop {r4-r6, pc} + .balign 4 +_0206DC28: .word 0x020F8354 +_0206DC2C: .word 0x020F8328 +_0206DC30: .word 0x020F837C +_0206DC34: .word 0x04000008 +_0206DC38: .word 0x020F8338 +_0206DC3C: .word 0xFFFF1FFF +_0206DC40: .word 0x04001000 +_0206DC44: .word sub_0206DD08 + 1 + + thumb_func_start sub_0206DC48 +sub_0206DC48: ; 0x0206DC48 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0201E6E4 + mov r0, #0x2 + mov r1, #0x0 + bl sub_0201E6E4 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_020178A0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206DC80 +sub_0206DC80: ; 0x0206DC80 + push {r3-r5, lr} + sub sp, #0x20 + add r4, r0, #0x0 + ldr r1, [r4, #0x28] + add r0, sp, #0x10 + mov r2, #0x2 + bl sub_02068B68 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r0, [sp, #0xc] + ldr r0, [r4, #0x18] + add r1, sp, #0x10 + mov r2, #0x80 + mov r3, #0x50 + bl sub_020073A0 + str r0, [r4, #0x1c] + ldr r0, [r4, #0x5c] + bl sub_020669C0 + add r5, r0, #0x0 + ldr r0, [r4, #0x28] + add r1, r5, #0x0 + bl sub_02069B88 + add r2, r4, #0x0 + add r0, r5, #0x0 + mov r1, #0x5 + add r2, #0x62 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02066ED8 + add r0, sp, #0x10 + add r1, r5, #0x0 + mov r2, #0x2 + bl sub_02068B68 + add r0, r5, #0x0 + bl sub_02016A18 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r0, [sp, #0xc] + ldr r0, [r4, #0x18] + add r1, sp, #0x10 + mov r2, #0x80 + mov r3, #0x50 + bl sub_020073A0 + str r0, [r4, #0x20] + mov r1, #0xc + mov r2, #0x0 + bl sub_02007558 + ldr r0, [r4, #0x20] + mov r1, #0xd + mov r2, #0x0 + bl sub_02007558 + add sp, #0x20 + pop {r3-r5, pc} + + thumb_func_start sub_0206DD08 +sub_0206DD08: ; 0x0206DD08 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0x75 + ldrb r2, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x73 + ldrb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x72 + ldrb r0, [r0, #0x0] + mov r3, #0xff + lsl r3, r3, #0x8 + lsl r0, r0, #0x8 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x74 + lsl r1, r1, #0x8 + and r1, r3 + ldrb r0, [r0, #0x0] + and r5, r3 + orr r1, r2 + orr r5, r0 + ldr r0, _0206DD60 ; =0x04000040 + strh r5, [r0, #0x0] + strh r1, [r0, #0x4] + ldr r0, [r4, #0x18] + bl sub_020081C4 + bl sub_0201C30C + ldr r0, [r4, #0x14] + bl sub_0200372C + ldr r0, [r4, #0x0] + bl sub_0201AB60 + ldr r3, _0206DD64 ; =0x027E0000 + ldr r1, _0206DD68 ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3-r5, pc} + nop +_0206DD60: .word 0x04000040 +_0206DD64: .word 0x027E0000 +_0206DD68: .word 0x00003FF8 + + thumb_func_start sub_0206DD6C +sub_0206DD6C: ; 0x0206DD6C + push {r4-r5, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r0, [r4, #0x8] + bl sub_0200A914 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + add r2, r5, #0x0 + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02016A18 + ldr r0, [r4, #0x4] + mov r1, #0xff + bl sub_02019620 + ldr r0, [r4, #0x2c] + bl sub_02024FF4 + mov r3, #0x0 + str r3, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, _0206DDB0 ; =sub_0206DDB4 + mov r1, #0x1 + str r0, [sp, #0x8] + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x10] + bl sub_0201BD84 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 +_0206DDB0: .word sub_0206DDB4 + 1 + + thumb_func_start sub_0206DDB4 +sub_0206DDB4: ; 0x0206DDB4 + push {r4, lr} + mov r4, #0x0 + cmp r1, #0x5 + bhi _0206DDFA + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r6, #0 + lsl r2, r1, #0 + lsl r2, r2, #0 + lsl r2, r3, #0 + lsl r2, r4, #0 + lsl r2, r5, #0 + bl sub_02005514 + add r4, r0, #0x0 + b _0206DDFA +_0206DDDC: + .byte 0x97, 0xF7, 0x6E, 0xFF + .byte 0x04, 0x1C, 0x0A, 0xE0, 0x06, 0x48, 0x97, 0xF7, 0x1F, 0xFF, 0x06, 0xE0, 0x05, 0x48, 0x97, 0xF7 + .byte 0x6B, 0xFB, 0x02, 0xE0, 0x04, 0x48, 0x97, 0xF7, 0x17, 0xFF +_0206DDFA: + add r0, r4, #0x0 + pop {r4, pc} + nop +_0206DE00: + .byte 0x84, 0x04, 0x00, 0x00, 0xE6, 0x05, 0x00, 0x00, 0x83, 0x04, 0x00, 0x00 + + thumb_func_start sub_0206DE0C +sub_0206DE0C: ; 0x0206DE0C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0206DE20 ; =0x020FA6E8 + ldr r1, [r4, #0x3c] + ldr r2, [r4, #0x5c] + bl sub_02006234 + str r0, [r4, #0x38] + pop {r4, pc} + nop +_0206DE20: .word 0x020FA6E8 + + thumb_func_start sub_0206DE24 +sub_0206DE24: ; 0x0206DE24 + push {r3, lr} + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _0206DE44 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _0206DE48 ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + pop {r3, pc} + .balign 4 +_0206DE44: .word 0xFFFFE0FF +_0206DE48: .word 0x04001000 + + thumb_func_start sub_0206DE4C +sub_0206DE4C: ; 0x0206DE4C + push {r3, lr} + mov r0, #0x7 + str r0, [sp, #0x0] + ldr r0, _0206DE70 ; =0x04000050 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0xb + blx sub_020C74DC + mov r0, #0x8 + str r0, [sp, #0x0] + ldr r0, _0206DE74 ; =0x04001050 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0x7 + blx sub_020C74DC + pop {r3, pc} + .balign 4 +_0206DE70: .word 0x04000050 +_0206DE74: .word 0x04001050 + + thumb_func_start sub_0206DE78 +sub_0206DE78: ; 0x0206DE78 + push {r3, lr} + sub sp, #0x8 + mov r2, #0x2 + ldr r1, _0206DE90 ; =sub_0206DE94 + str r2, [sp, #0x0] + str r1, [sp, #0x4] + mov r1, #0x0 + add r3, r1, #0x0 + bl sub_02022318 + add sp, #0x8 + pop {r3, pc} + .balign 4 +_0206DE90: .word sub_0206DE94 + 1 + + thumb_func_start sub_0206DE94 +sub_0206DE94: ; 0x0206DE94 + push {r3, lr} + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_0201E6E4 + ldr r0, _0206DF00 ; =0x04000008 + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strh r1, [r0, #0x0] + add r0, #0x58 + ldrh r2, [r0, #0x0] + ldr r1, _0206DF04 ; =0xFFFFCFFD + and r2, r1 + strh r2, [r0, #0x0] + add r2, r1, #0x2 + ldrh r3, [r0, #0x0] + add r1, r1, #0x2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0, #0x0] + ldrh r3, [r0, #0x0] + ldr r2, _0206DF08 ; =0x0000CFFB + and r3, r2 + strh r3, [r0, #0x0] + ldrh r3, [r0, #0x0] + sub r2, #0x1c + and r3, r1 + mov r1, #0x8 + orr r1, r3 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + and r1, r2 + strh r1, [r0, #0x0] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + blx sub_020C7C28 + mov r0, #0x0 + ldr r2, _0206DF0C ; =0x00007FFF + add r1, r0, #0x0 + mov r3, #0x3f + str r0, [sp, #0x0] + blx sub_020C7B3C + ldr r1, _0206DF10 ; =0xBFFF0000 + ldr r0, _0206DF14 ; =0x04000580 + str r1, [r0, #0x0] + pop {r3, pc} + .balign 4 +_0206DF00: .word 0x04000008 +_0206DF04: .word 0xFFFFCFFD +_0206DF08: .word 0x0000CFFB +_0206DF0C: .word 0x00007FFF +_0206DF10: .word 0xBFFF0000 +_0206DF14: .word 0x04000580 + + thumb_func_start sub_0206DF18 +sub_0206DF18: ; 0x0206DF18 + push {r3-r5, lr} + ldr r3, _0206DF50 ; =0x021064B8 + mov r0, #0x2 + mov r1, #0x0 + ldr r3, [r3, #0x0] + lsl r0, r0, #0xe + add r2, r1, #0x0 + blx r3 + ldr r3, _0206DF54 ; =0x021064C0 + mov r1, #0x0 + add r4, r0, #0x0 + ldr r3, [r3, #0x0] + mov r0, #0xa0 + add r2, r1, #0x0 + blx r3 + add r5, r0, #0x0 + cmp r4, #0x0 + bne _0206DF40 + bl sub_02020C2C +_0206DF40: + cmp r5, #0x0 + bne _0206DF48 + bl sub_02020C2C +_0206DF48: + bl sub_02012CC8 + pop {r3-r5, pc} + nop +_0206DF50: .word 0x021064B8 +_0206DF54: .word 0x021064C0 + + thumb_func_start sub_0206DF58 +sub_0206DF58: ; 0x0206DF58 + push {r3, lr} + bl sub_020222AC + bl sub_02013364 + cmp r0, #0x0 + ble _0206DF6E + bl sub_020222AC + blx sub_020B02C8 +_0206DF6E: + bl sub_02013388 + mov r0, #0x1 + mov r1, #0x0 + bl sub_020222B4 + pop {r3, pc} + + thumb_func_start sub_0206DF7C +sub_0206DF7C: ; 0x0206DF7C + push {r4, lr} + ldr r3, _0206DF94 ; =0x021064B8 + mov r2, #0x0 + ldr r3, [r3, #0x0] + blx r3 + add r4, r0, #0x0 + bl sub_0201327C + lsl r0, r4, #0x10 + lsr r0, r0, #0xd + pop {r4, pc} + nop +_0206DF94: .word 0x021064B8 + + thumb_func_start sub_0206DF98 +sub_0206DF98: ; 0x0206DF98 + push {r4, lr} + ldr r3, _0206DFB0 ; =0x021064C0 + mov r2, #0x0 + ldr r3, [r3, #0x0] + blx r3 + add r4, r0, #0x0 + bl sub_020132BC + lsl r0, r4, #0x10 + lsr r0, r0, #0xd + pop {r4, pc} + nop +_0206DFB0: .word 0x021064C0 + + thumb_func_start sub_0206DFB4 +sub_0206DFB4: ; 0x0206DFB4 + push {r4, lr} + sub sp, #0x8 + mov r1, #0x12 + lsl r1, r1, #0xa + add r4, r0, #0x0 + bl sub_02016998 + add r2, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r3, #0x12 + ldr r0, _0206DFF4 ; =sub_0206DF7C + ldr r1, _0206DFF8 ; =sub_0206DF98 + lsl r3, r3, #0xa + str r4, [sp, #0x4] + bl sub_02012CDC + add r4, r0, #0x0 + bl sub_0201343C + add r2, r0, #0x0 + beq _0206DFEC + mov r0, #0x1 + mov r1, #0xe1 + lsl r0, r0, #0xc + lsl r1, r1, #0xe + bl sub_0201EC94 +_0206DFEC: + add r0, r4, #0x0 + add sp, #0x8 + pop {r4, pc} + nop +_0206DFF4: .word sub_0206DF7C + 1 +_0206DFF8: .word sub_0206DF98 + 1 + + thumb_func_start sub_0206DFFC +sub_0206DFFC: ; 0x0206DFFC + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_0206DFB4 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r7, #0x0 + add r2, r5, #0x0 + bl sub_0201318C + add r1, r0, #0x0 + add r0, r4, #0x0 + mov r2, #0xa + mov r3, #0x1 + bl sub_02013194 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0206E024 +sub_0206E024: ; 0x0206E024 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020133E8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02012DE4 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r3-r5, pc} + + thumb_func_start sub_0206E03C +sub_0206E03C: ; 0x0206E03C + push {r3} + sub sp, #0xc + add r1, sp, #0x0 + mov r2, #0x0 + str r2, [r1, #0x0] + str r2, [r1, #0x4] + str r2, [r1, #0x8] + mov r1, #0x56 + lsl r1, r1, #0x4 + str r2, [sp, #0x0] + str r2, [sp, #0x8] + str r1, [sp, #0x4] + ldr r1, [r0, #0x20] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x4] + add r1, r2, r1 + str r1, [r0, #0x28] + ldr r1, [r0, #0x20] + ldr r2, [sp, #0x4] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x8] + add r1, r2, r1 + str r1, [r0, #0x2c] + ldr r1, [r0, #0x20] + ldr r2, [sp, #0x8] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0xc] + add r1, r2, r1 + str r1, [r0, #0x30] + add sp, #0xc + pop {r3} + bx lr + + thumb_func_start sub_0206E07C +sub_0206E07C: ; 0x0206E07C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0x10 + bl sub_02016998 + add r4, r0, #0x0 + bne _0206E090 + bl sub_02020C2C +_0206E090: + ldr r0, [r5, #0x0] + ldr r2, [r5, #0x4] + mov r1, #0x7c + str r0, [r4, #0x0] + str r2, [r4, #0x4] + ldr r0, [r4, #0x0] + bl sub_0206DFFC + mov r1, #0x1 + str r0, [r4, #0xc] + bl sub_02013440 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_0206E0AC +sub_0206E0AC: ; 0x0206E0AC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + ldr r2, _0206E0C4 ; =sub_0206E03C + add r3, r4, #0x0 + bl sub_020133AC + ldr r0, [r4, #0xc] + mov r1, #0x1 + bl sub_02013440 + pop {r4, pc} + .balign 4 +_0206E0C4: .word sub_0206E03C + 1 + + thumb_func_start sub_0206E0C8 +sub_0206E0C8: ; 0x0206E0C8 + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_020133C8 + cmp r0, #0x0 + beq _0206E0D8 + mov r0, #0x1 + pop {r3, pc} +_0206E0D8: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0206E0DC +sub_0206E0DC: ; 0x0206E0DC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl sub_0206E024 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206E0F0 +sub_0206E0F0: ; 0x0206E0F0 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x17 + blo _0206E0FC + bl sub_02020C2C +_0206E0FC: + ldr r0, _0206E104 ; =0x020F83E0 + lsl r1, r4, #0x2 + ldr r0, [r0, r1] + pop {r4, pc} + .balign 4 +_0206E104: .word 0x020F83E0 + + thumb_func_start sub_0206E108 +sub_0206E108: ; 0x0206E108 + mov r0, #0x26 + bx lr + + thumb_func_start sub_0206E10C +sub_0206E10C: ; 0x0206E10C + mov r0, #0xb2 + bx lr + + thumb_func_start sub_0206E110 +sub_0206E110: ; 0x0206E110 + mov r0, #0xb3 + bx lr + + thumb_func_start sub_0206E114 +sub_0206E114: ; 0x0206E114 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x17 + blo _0206E120 + bl sub_02020C2C +_0206E120: + ldr r0, _0206E128 ; =0x020F843C + ldrb r0, [r0, r4] + pop {r4, pc} + nop +_0206E128: .word 0x020F843C + + thumb_func_start sub_0206E12C +sub_0206E12C: ; 0x0206E12C + mov r0, #0x1b + bx lr + + thumb_func_start sub_0206E130 +sub_0206E130: ; 0x0206E130 + push {r3-r7, lr} + sub sp, #0x10 + add r7, r3, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + bl sub_0206E12C + str r0, [sp, #0xc] + add r0, r7, #0x0 + bl sub_0206E0F0 + add r3, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, [sp, #0x28] + str r4, [sp, #0x4] + str r0, [sp, #0x8] + ldr r2, [sp, #0xc] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0200C00C + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206E164 +sub_0206E164: ; 0x0206E164 + push {r4-r7, lr} + sub sp, #0x14 + add r6, r0, #0x0 + add r7, r1, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_0206E12C + str r0, [sp, #0x10] + bl sub_0206E108 + add r3, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x3 + str r0, [sp, #0x4] + str r5, [sp, #0x8] + ldr r2, [sp, #0x10] + add r0, r6, #0x0 + add r1, r7, #0x0 + str r4, [sp, #0xc] + bl sub_0200C06C + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0206E198 +sub_0206E198: ; 0x0206E198 + push {r4-r7, lr} + sub sp, #0x1c + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x18] + bl sub_0206E12C + add r4, r0, #0x0 + bl sub_0206E108 + str r4, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + mov r0, #0x3 + str r0, [sp, #0xc] + ldr r0, [sp, #0x30] + ldr r3, [sp, #0x18] + str r0, [sp, #0x10] + ldr r0, [sp, #0x34] + add r1, r6, #0x0 + str r0, [sp, #0x14] + add r0, r5, #0x0 + add r2, r7, #0x0 + bl sub_0200C0DC + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0206E1D4 +sub_0206E1D4: ; 0x0206E1D4 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl sub_0206E12C + str r0, [sp, #0x8] + bl sub_0206E10C + add r3, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r2, [sp, #0x8] + add r0, r5, #0x0 + add r1, r4, #0x0 + str r6, [sp, #0x4] + bl sub_0200C124 + bl sub_0206E12C + add r6, r0, #0x0 + bl sub_0206E110 + add r3, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + str r7, [sp, #0x4] + bl sub_0200C13C + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0206E21C +sub_0206E21C: ; 0x0206E21C + ldr r3, _0206E220 ; =sub_0200C358 + bx r3 + .balign 4 +_0206E220: .word sub_0200C358 + 1 + + thumb_func_start sub_0206E224 +sub_0206E224: ; 0x0206E224 + ldr r3, _0206E228 ; =sub_0200C368 + bx r3 + .balign 4 +_0206E228: .word sub_0200C368 + 1 + + thumb_func_start sub_0206E22C +sub_0206E22C: ; 0x0206E22C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl sub_0200C378 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0200C388 + pop {r3-r5, pc} + + thumb_func_start sub_0206E240 +sub_0206E240: ; 0x0206E240 + push {r4-r7, lr} + sub sp, #0x34 + add r6, r3, #0x0 + add r4, r0, #0x0 + add r7, r1, #0x0 + add r5, sp, #0x0 + mov r3, #0x6 +_0206E24E: + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + sub r3, r3, #0x1 + bne _0206E24E + ldr r0, [r6, #0x0] + str r0, [r5, #0x0] + add r0, r2, #0x0 + bl sub_0206E114 + str r0, [sp, #0xc] + add r0, r4, #0x0 + add r1, r7, #0x0 + add r2, sp, #0x0 + bl sub_0200C154 + add sp, #0x34 + pop {r4-r7, pc} + + thumb_func_start sub_0206E270 +sub_0206E270: ; 0x0206E270 + ldr r3, _0206E274 ; =sub_0200C3DC + bx r3 + .balign 4 +_0206E274: .word sub_0200C3DC + 1 + + thumb_func_start sub_0206E278 +sub_0206E278: ; 0x0206E278 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x3 + blo _0206E284 + bl sub_02020C2C +_0206E284: + ldr r0, _0206E28C ; =0x020F83D4 + lsl r1, r4, #0x2 + ldr r0, [r0, r1] + pop {r4, pc} + .balign 4 +_0206E28C: .word 0x020F83D4 + + thumb_func_start sub_0206E290 +sub_0206E290: ; 0x0206E290 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x3 + blo _0206E29C + bl sub_02020C2C +_0206E29C: + ldr r0, _0206E2A4 ; =0x020F83D0 + ldrb r0, [r0, r4] + pop {r4, pc} + nop +_0206E2A4: .word 0x020F83D0 + + thumb_func_start sub_0206E2A8 +sub_0206E2A8: ; 0x0206E2A8 + mov r0, #0x1b + bx lr + + thumb_func_start sub_0206E2AC +sub_0206E2AC: ; 0x0206E2AC + push {r3-r7, lr} + sub sp, #0x10 + add r7, r3, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + bl sub_0206E2A8 + str r0, [sp, #0xc] + add r0, r7, #0x0 + bl sub_0206E278 + add r3, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, [sp, #0x28] + str r4, [sp, #0x4] + str r0, [sp, #0x8] + ldr r2, [sp, #0xc] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0200C00C + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206E2E0 +sub_0206E2E0: ; 0x0206E2E0 + ldr r3, _0206E2E4 ; =sub_0200C358 + bx r3 + .balign 4 +_0206E2E4: .word sub_0200C358 + 1 + + thumb_func_start sub_0206E2E8 +sub_0206E2E8: ; 0x0206E2E8 + ldr r3, _0206E2EC ; =sub_0200C3DC + bx r3 + .balign 4 +_0206E2EC: .word sub_0200C3DC + 1 + + thumb_func_start sub_0206E2F0 +sub_0206E2F0: ; 0x0206E2F0 + push {r4, lr} + mov r1, #0x78 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x78 + add r4, r0, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206E308 +sub_0206E308: ; 0x0206E308 + mov r0, #0x78 + bx lr + + thumb_func_start sub_0206E30C +sub_0206E30C: ; 0x0206E30C + add r0, #0x65 + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0206E314 +sub_0206E314: ; 0x0206E314 + push {r4-r6, lr} + add r4, r1, #0x0 + add r1, r2, #0x0 + add r5, r0, #0x0 + add r6, r3, #0x0 + bl sub_0206E30C + str r4, [r5, #0x0] + str r6, [r5, #0x6c] + mov r0, #0x0 + add r5, #0x66 + strh r0, [r5, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0206E330 +sub_0206E330: ; 0x0206E330 + push {r3-r4} + mov r4, #0xc + mul r4, r3 + add r0, r0, r4 + str r1, [r0, #0x4] + strb r2, [r0, #0xc] + pop {r3-r4} + bx lr + + thumb_func_start sub_0206E340 +sub_0206E340: ; 0x0206E340 + add r1, r0, #0x0 + add r1, #0x76 + ldrh r2, [r1, #0x0] + mov r1, #0x1 + add r0, #0x76 + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strh r1, [r0, #0x0] + bx lr + + thumb_func_start sub_0206E354 +sub_0206E354: ; 0x0206E354 + str r1, [r0, #0x70] + bx lr + + thumb_func_start sub_0206E358 +sub_0206E358: ; 0x0206E358 + add r0, #0x74 + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0206E360 +sub_0206E360: ; 0x0206E360 + add r2, r0, #0x0 + add r2, #0x76 + ldrh r3, [r2, #0x0] + ldr r2, _0206E378 ; =0xFFFF0001 + lsl r1, r1, #0x11 + and r2, r3 + lsr r1, r1, #0x10 + orr r1, r2 + add r0, #0x76 + strh r1, [r0, #0x0] + bx lr + nop +_0206E378: .word 0xFFFF0001 + + thumb_func_start sub_0206E37C +sub_0206E37C: ; 0x0206E37C + add r0, #0x66 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0206E384 +sub_0206E384: ; 0x0206E384 + add r0, #0x68 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0206E38C +sub_0206E38C: ; 0x0206E38C + add r0, #0x74 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0206E394 +sub_0206E394: ; 0x0206E394 + add r0, #0x75 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_0206E39C +sub_0206E39C: ; 0x0206E39C + push {r3, lr} + bl sub_0202390C + bl sub_02028930 + pop {r3, pc} + + thumb_func_start sub_0206E3A8 +sub_0206E3A8: ; 0x0206E3A8 + push {r4-r6, lr} + bl sub_02029C80 + add r6, r0, #0x0 + mov r5, #0x0 + mov r4, #0x1 +_0206E3B4: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02029E2C + add r4, r4, #0x1 + add r5, r5, r0 + cmp r4, #0x50 + bls _0206E3B4 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_0206E3C8 +sub_0206E3C8: ; 0x0206E3C8 + push {r3, lr} + bl sub_02027E24 + bl sub_0202708C + bl sub_02027168 + pop {r3, pc} + + thumb_func_start sub_0206E3D8 +sub_0206E3D8: ; 0x0206E3D8 + push {r3, lr} + bl sub_02027E24 + bl sub_0202708C + bl sub_02027184 + pop {r3, pc} + + thumb_func_start sub_0206E3E8 +sub_0206E3E8: ; 0x0206E3E8 + push {r3, lr} + bl sub_0202A8D8 + mov r1, #0x0 + add r2, r1, #0x0 + bl sub_0202A3B4 + pop {r3, pc} + + thumb_func_start sub_0206E3F8 +sub_0206E3F8: ; 0x0206E3F8 + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + str r1, [sp, #0x8] + add r5, r2, #0x0 + add r4, r3, #0x0 + mov r0, #0x0 + mov r1, #0x1a + mov r2, #0x7 + bl sub_0200A86C + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0200AA80 + add r4, r0, #0x0 + cmp r5, #0x0 + bne _0206E428 + add r0, r6, #0x0 + mov r1, #0x63 + bl sub_0200A914 + add r5, r0, #0x0 + b _0206E4FA +_0206E428: + mov r1, #0x1b + lsl r1, r1, #0x4 + cmp r5, r1 + bne _0206E454 + add r0, r6, #0x0 + mov r1, #0x61 + bl sub_0200A914 + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_0206E3E8 + mov r1, #0x0 + add r2, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r3, #0x4 + bl sub_0200AD38 + b _0206E4FA +_0206E454: + add r2, r1, #0x2 + cmp r5, r2 + bne _0206E47E + add r0, r6, #0x0 + mov r1, #0x5c + bl sub_0200A914 + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_0206E3A8 + mov r1, #0x0 + add r2, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r3, #0x4 + bl sub_0200AD38 + b _0206E4FA +_0206E47E: + add r2, r1, #0x3 + cmp r5, r2 + bne _0206E4C0 + add r0, r6, #0x0 + mov r1, #0x5d + bl sub_0200A914 + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_0206E3C8 + mov r1, #0x0 + add r2, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r3, #0x3 + bl sub_0200AD38 + add r0, r7, #0x0 + bl sub_0206E3D8 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r1, #0x1 + add r0, r4, #0x0 + mov r3, #0x2 + str r1, [sp, #0x4] + bl sub_0200AD38 + b _0206E4FA +_0206E4C0: + add r1, #0xc + cmp r5, r1 + bne _0206E4EA + add r0, r6, #0x0 + mov r1, #0x39 + bl sub_0200A914 + add r5, r0, #0x0 + add r0, r7, #0x0 + bl sub_0206E39C + mov r1, #0x0 + add r2, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r3, #0x5 + bl sub_0200AD38 + b _0206E4FA +_0206E4EA: + bl sub_0200AB18 + add r0, r6, #0x0 + bl sub_0200A8B8 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0206E4FA: + ldr r1, [sp, #0x8] + add r0, r4, #0x0 + add r2, r5, #0x0 + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02021A20 + add r0, r4, #0x0 + bl sub_0200AB18 + add r0, r6, #0x0 + bl sub_0200A8B8 + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0206E51C +sub_0206E51C: ; 0x0206E51C + push {r3-r7, lr} + add r5, r1, #0x0 + str r0, [sp, #0x0] + ldr r4, [sp, #0x18] + cmp r3, #0x1 + beq _0206E52E + cmp r3, #0x2 + beq _0206E54C + b _0206E56A +_0206E52E: + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0x7 + add r3, r4, #0x0 + bl sub_0200A86C + add r4, r0, #0x0 + mov r1, #0x38 + add r2, r5, #0x0 + bl sub_0200A8E0 + add r0, r4, #0x0 + bl sub_0200A8B8 + pop {r3-r7, pc} +_0206E54C: + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0x7 + add r3, r4, #0x0 + bl sub_0200A86C + add r4, r0, #0x0 + mov r1, #0x6f + add r2, r5, #0x0 + bl sub_0200A8E0 + add r0, r4, #0x0 + bl sub_0200A8B8 + pop {r3-r7, pc} +_0206E56A: + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xc7 + add r3, r4, #0x0 + bl sub_0200A86C + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_0200AA80 + add r4, r0, #0x0 + add r0, r7, #0x0 + mov r1, #0x24 + bl sub_0200A914 + add r6, r0, #0x0 + ldr r2, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0200ABC0 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl sub_0200B7B8 + add r0, r6, #0x0 + bl sub_02021A20 + add r0, r4, #0x0 + bl sub_0200AB18 + add r0, r7, #0x0 + bl sub_0200A8B8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0206E5B4 +sub_0206E5B4: ; 0x0206E5B4 + push {r3-r6} + add r3, r0, #0x0 + add r0, r2, #0x0 + cmp r1, r0 + beq _0206E63A + lsl r2, r1, #0x2 + ldrh r4, [r3, r2] + add r5, r3, r2 + add r2, sp, #0x0 + strh r4, [r2, #0x0] + ldrh r4, [r5, #0x2] + strh r4, [r2, #0x2] + cmp r0, r1 + bls _0206E600 + sub r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r1, r1, #0x10 + lsl r2, r0, #0x10 + asr r1, r1, #0x10 + asr r5, r2, #0x10 + cmp r1, r5 + bge _0206E62C + lsl r2, r1, #0x2 + add r2, r3, r2 + add r4, r2, #0x0 +_0206E5E8: + ldrh r6, [r2, #0x4] + add r1, r1, #0x1 + lsl r1, r1, #0x10 + strh r6, [r4, #0x0] + ldrh r6, [r2, #0x6] + asr r1, r1, #0x10 + add r2, r2, #0x4 + strh r6, [r4, #0x2] + add r4, r4, #0x4 + cmp r1, r5 + blt _0206E5E8 + b _0206E62C +_0206E600: + lsl r1, r1, #0x10 + asr r5, r1, #0x10 + lsl r1, r0, #0x10 + asr r4, r1, #0x10 + cmp r5, r4 + ble _0206E62C + lsl r1, r5, #0x2 + add r1, r3, r1 + add r2, r1, #0x0 +_0206E612: + sub r6, r1, #0x4 + ldrh r6, [r6, #0x0] + sub r5, r5, #0x1 + lsl r5, r5, #0x10 + strh r6, [r2, #0x0] + sub r6, r1, #0x2 + ldrh r6, [r6, #0x0] + asr r5, r5, #0x10 + sub r1, r1, #0x4 + strh r6, [r2, #0x2] + sub r2, r2, #0x4 + cmp r5, r4 + bgt _0206E612 +_0206E62C: + lsl r4, r0, #0x2 + add r0, sp, #0x0 + ldrh r1, [r0, #0x0] + add r2, r3, r4 + strh r1, [r3, r4] + ldrh r0, [r0, #0x2] + strh r0, [r2, #0x2] +_0206E63A: + pop {r3-r6} + bx lr + .balign 4 + + thumb_func_start sub_0206E640 +sub_0206E640: ; 0x0206E640 + cmp r1, #0x3 + bhi _0206E6B2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r0, r3, #0 + lsl r2, r6, #0 + lsl r6, r1, #0x1 + cmp r0, #0x0 + beq _0206E6B2 + ldr r1, _0206E6B8 ; =0x0000FFFF + cmp r0, r1 + beq _0206E6B2 + lsl r1, r0, #0x3 + ldr r0, _0206E6BC ; =0x020F85B4 + ldrh r0, [r0, r1] + bx lr +_0206E66A: + .byte 0x00, 0x28, 0x01, 0xD1, 0x14, 0x48 + .byte 0x70, 0x47, 0x11, 0x49, 0x88, 0x42, 0x01, 0xD1, 0x12, 0x48, 0x70, 0x47, 0xC1, 0x00, 0x12, 0x48 + .byte 0x40, 0x5A, 0x70, 0x47, 0x00, 0x28, 0x02, 0xD1, 0xAF, 0x20, 0x80, 0x00, 0x70, 0x47, 0x0A, 0x49 + .byte 0x88, 0x42, 0x01, 0xD1, 0x0D, 0x48, 0x70, 0x47, 0xC1, 0x00, 0x0D, 0x48, 0x40, 0x5A, 0x70, 0x47 + .byte 0x00, 0x28, 0x06, 0xD0, 0x04, 0x49, 0x88, 0x42, 0x03, 0xD0, 0xC1, 0x00, 0x09, 0x48, 0x40, 0x5A + .byte 0x70, 0x47 +_0206E6B2: + mov r0, #0x0 + bx lr + nop +_0206E6B8: .word 0x0000FFFF +_0206E6BC: .word 0x020F85B4 +_0206E6C0: + .byte 0xBB, 0x02, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0xB6, 0x85, 0x0F, 0x02, 0xBE, 0x02, 0x00, 0x00 + .byte 0xB8, 0x85, 0x0F, 0x02, 0xBA, 0x85, 0x0F, 0x02 + + thumb_func_start sub_0206E6D8 +sub_0206E6D8: ; 0x0206E6D8 + push {r3-r4} + mov r2, #0x1d + ldr r3, _0206E704 ; =0x020F85B4 + mov r4, #0x1 + lsl r2, r2, #0x4 +_0206E6E2: + lsl r1, r4, #0x3 + add r1, r3, r1 + ldrh r1, [r1, #0x6] + cmp r0, r1 + bne _0206E6F2 + add r0, r4, #0x0 + pop {r3-r4} + bx lr +_0206E6F2: + add r1, r4, #0x1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r4, r2 + bls _0206E6E2 + mov r0, #0x0 + pop {r3-r4} + bx lr + nop +_0206E704: .word 0x020F85B4 + + thumb_func_start sub_0206E708 +sub_0206E708: ; 0x0206E708 + mov r0, #0x1 + bx lr + + thumb_func_start sub_0206E70C +sub_0206E70C: ; 0x0206E70C + mov r0, #0x0 + bx lr + + thumb_func_start sub_0206E710 +sub_0206E710: ; 0x0206E710 + push {r3, lr} + add r3, r0, #0x0 + mov r0, #0x1d + lsl r0, r0, #0x4 + cmp r3, r0 + bls _0206E71E + mov r3, #0x0 +_0206E71E: + cmp r1, #0x0 + beq _0206E72C + cmp r1, #0x1 + beq _0206E73A + cmp r1, #0x2 + beq _0206E748 + b _0206E756 +_0206E72C: + ldr r1, _0206E75C ; =0x020F85B4 + lsl r3, r3, #0x3 + ldrh r1, [r1, r3] + mov r0, #0xf + bl sub_0200650C + pop {r3, pc} +_0206E73A: + ldr r1, _0206E760 ; =0x020F85B6 + lsl r3, r3, #0x3 + ldrh r1, [r1, r3] + mov r0, #0x10 + bl sub_0200650C + pop {r3, pc} +_0206E748: + ldr r1, _0206E764 ; =0x020F85B8 + lsl r3, r3, #0x3 + ldrh r1, [r1, r3] + mov r0, #0x10 + bl sub_0200650C + pop {r3, pc} +_0206E756: + mov r0, #0x0 + pop {r3, pc} + nop +_0206E75C: .word 0x020F85B4 +_0206E760: .word 0x020F85B6 +_0206E764: .word 0x020F85B8 + + thumb_func_start sub_0206E768 +sub_0206E768: ; 0x0206E768 + push {r4-r6, lr} + add r3, r2, #0x0 + mov r2, #0x56 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r6, r0, #0x0 + add r1, r4, #0x0 + add r2, r5, #0x0 + bl sub_0200A8E0 + add r0, r6, #0x0 + bl sub_0200A8B8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0206E790 +sub_0206E790: ; 0x0206E790 + push {r4-r6, lr} + add r3, r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r2, _0206E7B4 ; =0x00000157 + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r6, r0, #0x0 + add r1, r4, #0x0 + add r2, r5, #0x0 + bl sub_0200A8E0 + add r0, r6, #0x0 + bl sub_0200A8B8 + pop {r4-r6, pc} + .balign 4 +_0206E7B4: .word 0x00000157 + + thumb_func_start sub_0206E7B8 +sub_0206E7B8: ; 0x0206E7B8 + push {r4-r6, lr} + add r4, r1, #0x0 + mov r1, #0x0 + add r5, r2, #0x0 + bl sub_0206E710 + add r6, r0, #0x0 + add r1, r4, #0x0 + bl sub_0206E7DC + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02016A8C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0206E7DC +sub_0206E7DC: ; 0x0206E7DC + push {r3, lr} + cmp r1, #0xe + bhi _0206E85C + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r4, r3, #0 + lsl r0, r4, #0 + lsl r4, r4, #0 + lsl r0, r5, #0 + lsl r0, r6, #0 + lsl r0, r7, #0 + lsl r0, r0, #0x1 + lsl r4, r0, #0x1 + lsl r0, r1, #0x1 + lsl r4, r1, #0x1 + lsl r0, r2, #0x1 + lsl r4, r2, #0x1 + lsl r0, r3, #0x1 + lsl r0, r4, #0x1 + lsl r0, r5, #0x1 + ldrh r0, [r0, #0x0] + pop {r3, pc} +_0206E810: + .byte 0x80, 0x78, 0x08, 0xBD, 0xC0, 0x78, 0x08, 0xBD, 0x00, 0x89, 0x80, 0x06, 0xC0, 0x0F, 0x08, 0xBD + .byte 0x00, 0x89, 0x40, 0x06, 0xC0, 0x0F, 0x08, 0xBD, 0x00, 0x89, 0x40, 0x05, 0x00, 0x0F, 0x08, 0xBD + .byte 0x80, 0x7A, 0x08, 0xBD, 0xC0, 0x7A, 0x08, 0xBD, 0x00, 0x79, 0x08, 0xBD, 0x40, 0x79, 0x08, 0xBD + .byte 0x80, 0x79, 0x08, 0xBD, 0xC0, 0x79, 0x08, 0xBD, 0x00, 0x89, 0xC0, 0x06, 0xC0, 0x0E, 0x08, 0xBD + .byte 0x00, 0x89, 0x00, 0x04, 0xC0, 0x0E, 0x08, 0xBD, 0x00, 0x7B, 0x08, 0xBD +_0206E85C: + ldrb r2, [r0, #0xc] + cmp r2, #0x0 + beq _0206E868 + cmp r2, #0x1 + beq _0206E86C + b _0206E874 +_0206E868: + ldrb r0, [r0, #0xe] + pop {r3, pc} +_0206E86C: + add r0, #0xe + bl sub_0206E878 + pop {r3, pc} +_0206E874: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_0206E878 +sub_0206E878: ; 0x0206E878 + sub r1, #0xf + cmp r1, #0x2b + bls _0206E880 + b _0206EA2A +_0206E880: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r2, #0x1 + lsl r6, r3, #0x1 + lsl r6, r4, #0x1 + lsl r6, r5, #0x1 + lsl r6, r6, #0x1 + lsl r6, r7, #0x1 + lsl r6, r0, #0x2 + lsl r6, r1, #0x2 + lsl r6, r2, #0x2 + lsl r6, r3, #0x2 + lsl r6, r4, #0x2 + lsl r6, r5, #0x2 + lsl r6, r6, #0x2 + lsl r6, r7, #0x2 + lsl r6, r0, #0x3 + lsl r6, r1, #0x3 + lsl r6, r2, #0x3 + lsl r6, r3, #0x3 + lsl r6, r4, #0x3 + lsl r6, r5, #0x3 + lsl r6, r6, #0x3 + lsl r6, r7, #0x3 + lsl r6, r0, #0x4 + lsl r6, r1, #0x4 + lsl r6, r2, #0x4 + lsl r6, r3, #0x4 + lsl r6, r4, #0x4 + lsl r6, r5, #0x4 + lsl r6, r6, #0x4 + lsl r6, r7, #0x4 + lsl r6, r0, #0x5 + lsl r6, r1, #0x5 + lsl r6, r2, #0x5 + lsl r6, r3, #0x5 + lsl r4, r4, #0x5 + lsl r2, r5, #0x5 + lsl r0, r6, #0x5 + lsl r6, r6, #0x5 + lsl r4, r7, #0x5 + lsl r2, r0, #0x6 + lsl r6, r0, #0x6 + lsl r2, r1, #0x6 + lsl r0, r2, #0x6 + lsl r6, r2, #0x6 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bx lr +_0206E8EC: + .byte 0x00, 0x78, 0x80, 0x07 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x00, 0x78, 0x40, 0x07, 0xC0, 0x0F, 0x70, 0x47, 0x00, 0x78, 0x00, 0x07 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x00, 0x78, 0xC0, 0x06, 0xC0, 0x0F, 0x70, 0x47, 0x00, 0x78, 0x80, 0x06 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x00, 0x78, 0x40, 0x06, 0xC0, 0x0F, 0x70, 0x47, 0x00, 0x78, 0x00, 0x06 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x78, 0xC0, 0x07, 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x78, 0x80, 0x07 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x78, 0x40, 0x07, 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x78, 0x00, 0x07 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x78, 0x00, 0x06, 0x00, 0x0F, 0x70, 0x47, 0x80, 0x78, 0x00, 0x07 + .byte 0x00, 0x0F, 0x70, 0x47, 0x80, 0x78, 0x00, 0x06, 0x00, 0x0F, 0x70, 0x47, 0xC0, 0x78, 0x00, 0x07 + .byte 0x00, 0x0F, 0x70, 0x47, 0xC0, 0x78, 0x00, 0x06, 0x00, 0x0F, 0x70, 0x47, 0x00, 0x79, 0x00, 0x07 + .byte 0x00, 0x0F, 0x70, 0x47, 0x00, 0x79, 0x80, 0x06, 0x80, 0x0F, 0x70, 0x47, 0x00, 0x79, 0x40, 0x06 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x00, 0x79, 0x00, 0x06, 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x79, 0xC0, 0x07 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x79, 0x80, 0x07, 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x79, 0x40, 0x07 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x79, 0x00, 0x07, 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x79, 0xC0, 0x06 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x79, 0x80, 0x06, 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x79, 0x40, 0x06 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x40, 0x79, 0x00, 0x06, 0xC0, 0x0F, 0x70, 0x47, 0x80, 0x79, 0xC0, 0x07 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x80, 0x79, 0x80, 0x07, 0xC0, 0x0F, 0x70, 0x47, 0x80, 0x79, 0x40, 0x07 + .byte 0xC0, 0x0F, 0x70, 0x47, 0x80, 0x79, 0x00, 0x07, 0xC0, 0x0F, 0x70, 0x47, 0x07, 0x21, 0x40, 0x56 + .byte 0x70, 0x47, 0x08, 0x21, 0x40, 0x56, 0x70, 0x47, 0x09, 0x21, 0x40, 0x56, 0x70, 0x47, 0x0A, 0x21 + .byte 0x40, 0x56, 0x70, 0x47, 0x0B, 0x21, 0x40, 0x56, 0x70, 0x47, 0x0C, 0x21, 0x40, 0x56, 0x70, 0x47 + .byte 0x40, 0x7B, 0x70, 0x47, 0x80, 0x7B, 0x70, 0x47, 0x0F, 0x21, 0x40, 0x56, 0x70, 0x47, 0x10, 0x21 + .byte 0x40, 0x56, 0x70, 0x47, 0x11, 0x21, 0x40, 0x56, 0x70, 0x47 +_0206EA2A: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_0206EA30 +sub_0206EA30: ; 0x0206EA30 + mov r2, #0x52 + lsl r2, r2, #0x2 + cmp r0, r2 + blo _0206EA40 + add r1, r2, #0x0 + add r1, #0x63 + cmp r0, r1 + bls _0206EA44 +_0206EA40: + mov r0, #0x0 + bx lr +_0206EA44: + sub r0, r0, r2 + lsl r0, r0, #0x10 + lsr r1, r0, #0xf + ldr r0, _0206EA50 ; =0x020F84EC + ldrh r0, [r0, r1] + bx lr + .balign 4 +_0206EA50: .word 0x020F84EC + + thumb_func_start sub_0206EA54 +sub_0206EA54: ; 0x0206EA54 + ldr r2, _0206EA78 ; =0x020F84EC + mov r3, #0x0 +_0206EA58: + lsl r1, r3, #0x1 + add r1, r2, r1 + add r1, #0xb8 + ldrh r1, [r1, #0x0] + cmp r0, r1 + bne _0206EA68 + mov r0, #0x1 + bx lr +_0206EA68: + add r1, r3, #0x1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0x8 + blo _0206EA58 + mov r0, #0x0 + bx lr + nop +_0206EA78: .word 0x020F84EC + + thumb_func_start sub_0206EA7C +sub_0206EA7C: ; 0x0206EA7C + mov r2, #0x52 + lsl r2, r2, #0x2 + cmp r0, r2 + blo _0206EA8C + add r1, r2, #0x0 + add r1, #0x63 + cmp r0, r1 + bls _0206EA90 +_0206EA8C: + mov r0, #0x0 + bx lr +_0206EA90: + sub r0, r0, r2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + + thumb_func_start sub_0206EA98 +sub_0206EA98: ; 0x0206EA98 + ldr r3, _0206EAB4 ; =0x020F8454 + mov r2, #0x0 +_0206EA9C: + ldrh r1, [r3, #0x0] + cmp r0, r1 + bne _0206EAA6 + mov r0, #0x1 + bx lr +_0206EAA6: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0xc + blo _0206EA9C + mov r0, #0x0 + bx lr + nop +_0206EAB4: .word 0x020F8454 + + thumb_func_start sub_0206EAB8 +sub_0206EAB8: ; 0x0206EAB8 + ldr r3, _0206EAD4 ; =0x020F8454 + mov r2, #0x0 +_0206EABC: + ldrh r1, [r3, #0x0] + cmp r0, r1 + bne _0206EAC8 + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + bx lr +_0206EAC8: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0xc + blo _0206EABC + mov r0, #0x0 + bx lr + .balign 4 +_0206EAD4: .word 0x020F8454 + + thumb_func_start sub_0206EAD8 +sub_0206EAD8: ; 0x0206EAD8 + cmp r0, #0xc + blo _0206EAE0 + mov r0, #0x0 + bx lr +_0206EAE0: + lsl r1, r0, #0x1 + ldr r0, _0206EAE8 ; =0x020F8454 + ldrh r0, [r0, r1] + bx lr + .balign 4 +_0206EAE8: .word 0x020F8454 + + thumb_func_start sub_0206EAEC +sub_0206EAEC: ; 0x0206EAEC + ldr r3, _0206EB08 ; =0x020F846C + mov r2, #0x0 +_0206EAF0: + ldrh r1, [r3, #0x0] + cmp r0, r1 + bne _0206EAFA + mov r0, #0x1 + bx lr +_0206EAFA: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0x40 + blo _0206EAF0 + mov r0, #0x0 + bx lr + nop +_0206EB08: .word 0x020F846C + + thumb_func_start sub_0206EB0C +sub_0206EB0C: ; 0x0206EB0C + cmp r0, #0x95 + bhs _0206EB14 + mov r0, #0xff + bx lr +_0206EB14: + sub r0, #0x95 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + + thumb_func_start sub_0206EB1C +sub_0206EB1C: ; 0x0206EB1C + cmp r0, #0x40 + blo _0206EB24 + ldr r0, _0206EB2C ; =0x0000FFFF + bx lr +_0206EB24: + lsl r1, r0, #0x1 + ldr r0, _0206EB30 ; =0x020F846C + ldrh r0, [r0, r1] + bx lr + .balign 4 +_0206EB2C: .word 0x0000FFFF +_0206EB30: .word 0x020F846C + + thumb_func_start sub_0206EB34 +sub_0206EB34: ; 0x0206EB34 + ldr r1, _0206EB4C ; =0x0000FFDE + add r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x3 + bhi _0206EB44 + mov r0, #0x1 + b _0206EB46 +_0206EB44: + mov r0, #0x0 +_0206EB46: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .balign 4 +_0206EB4C: .word 0x0000FFDE + + thumb_func_start sub_0206EB50 +sub_0206EB50: ; 0x0206EB50 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + mov r0, #0x1d + lsl r0, r0, #0x4 + mov r1, #0x0 + bl sub_0206E640 + mov r1, #0x24 + mul r1, r0 + str r1, [sp, #0x0] + mov r1, #0x0 + mov r0, #0xf + add r2, r4, #0x0 + add r3, r1, #0x0 + bl sub_02006564 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_0206EB78 +sub_0206EB78: ; 0x0206EB78 + mov r2, #0x24 + mul r2, r1 + add r0, r0, r2 + bx lr + + thumb_func_start sub_0206EB80 +sub_0206EB80: ; 0x0206EB80 + ldr r0, _0206EB84 ; =0x00000774 + bx lr + .balign 4 +_0206EB84: .word 0x00000774 + + thumb_func_start sub_0206EB88 +sub_0206EB88: ; 0x0206EB88 + push {r4, lr} + ldr r1, _0206EB9C ; =0x00000774 + bl sub_02016998 + add r4, r0, #0x0 + bl sub_0206EBA0 + add r0, r4, #0x0 + pop {r4, pc} + nop +_0206EB9C: .word 0x00000774 + + thumb_func_start sub_0206EBA0 +sub_0206EBA0: ; 0x0206EBA0 + ldr r3, _0206EBAC ; =sub_020CE1C8 + add r1, r0, #0x0 + mov r0, #0x0 + ldr r2, _0206EBB0 ; =0x00000774 + bx r3 + nop +_0206EBAC: .word sub_020CE1C8 +_0206EBB0: .word 0x00000774 + + thumb_func_start sub_0206EBB4 +sub_0206EBB4: ; 0x0206EBB4 + ldr r3, _0206EBBC ; =sub_020CE3E0 + ldr r2, _0206EBC0 ; =0x00000774 + bx r3 + nop +_0206EBBC: .word sub_020CE3E0 +_0206EBC0: .word 0x00000774 + + thumb_func_start sub_0206EBC4 +sub_0206EBC4: ; 0x0206EBC4 + mov r1, #0x77 + lsl r1, r1, #0x4 + ldr r0, [r0, r1] + bx lr + + thumb_func_start sub_0206EBCC +sub_0206EBCC: ; 0x0206EBCC + mov r2, #0x77 + lsl r2, r2, #0x4 + str r1, [r0, r2] + bx lr + + thumb_func_start sub_0206EBD4 +sub_0206EBD4: ; 0x0206EBD4 + push {r4-r6, lr} + add r5, r2, #0x0 + add r4, r0, #0x0 + add r0, r1, #0x0 + ldr r2, [sp, #0x10] + mov r1, #0x5 + add r6, r3, #0x0 + bl sub_0206E7B8 + cmp r0, #0x7 + bhi _0206EC64 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r3, #0 + lsl r0, r6, #0 + lsl r4, r7, #0 + lsl r0, r4, #0x1 + lsl r4, r4, #0 + lsl r4, r2, #0x1 + lsl r0, r1, #0x1 + lsl r6, r1, #0 + mov r1, #0xa5 + lsl r1, r1, #0x2 + add r1, r4, r1 + str r1, [r5, #0x0] + mov r1, #0x32 + str r1, [r6, #0x0] + pop {r4-r6, pc} +_0206EC14: + .byte 0x2C, 0x60, 0xA5, 0x21, 0x31, 0x60, 0x70, 0xBD, 0x12, 0x49, 0x61, 0x18 + .byte 0x29, 0x60, 0x40, 0x21, 0x31, 0x60, 0x70, 0xBD, 0x10, 0x49, 0x61, 0x18, 0x29, 0x60, 0x28, 0x21 + .byte 0x31, 0x60, 0x70, 0xBD, 0x0E, 0x49, 0x61, 0x18, 0x29, 0x60, 0x0F, 0x21, 0x31, 0x60, 0x70, 0xBD + .byte 0x0C, 0x49, 0x61, 0x18, 0x29, 0x60, 0x1E, 0x21, 0x31, 0x60, 0x70, 0xBD, 0x0A, 0x49, 0x61, 0x18 + .byte 0x29, 0x60, 0x0C, 0x21, 0x31, 0x60, 0x70, 0xBD, 0xD7, 0x21, 0x89, 0x00, 0x61, 0x18, 0x29, 0x60 + .byte 0x64, 0x21, 0x31, 0x60 +_0206EC64: + pop {r4-r6, pc} + nop +_0206EC68: + .byte 0xBC, 0x05, 0x00, 0x00, 0x1C, 0x05, 0x00, 0x00 + .byte 0xBC, 0x06, 0x00, 0x00, 0xF8, 0x06, 0x00, 0x00, 0xEC, 0x04, 0x00, 0x00 + + thumb_func_start sub_0206EC7C +sub_0206EC7C: ; 0x0206EC7C + push {r4-r7} + add r5, r1, #0x0 + mov r1, #0x0 + add r7, r0, #0x0 + add r4, r2, #0x0 + mov r12, r3 + mvn r1, r1 + mov r0, #0x0 + cmp r5, #0x0 + bls _0206ECCA + add r2, r7, #0x0 + add r3, r1, #0x0 +_0206EC94: + ldrh r6, [r2, #0x0] + cmp r4, r6 + bne _0206ECB2 + lsl r0, r0, #0x2 + add r0, r7, r0 + ldrh r2, [r0, #0x2] + mov r1, r12 + add r2, r1, r2 + add r1, sp, #0x0 + ldrh r1, [r1, #0x10] + cmp r2, r1 + ble _0206ECDC + mov r0, #0x0 + pop {r4-r7} + bx lr +_0206ECB2: + cmp r1, r3 + bne _0206ECC2 + cmp r6, #0x0 + bne _0206ECC2 + ldrh r6, [r2, #0x2] + cmp r6, #0x0 + bne _0206ECC2 + add r1, r0, #0x0 +_0206ECC2: + add r0, r0, #0x1 + add r2, r2, #0x4 + cmp r0, r5 + blo _0206EC94 +_0206ECCA: + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + bne _0206ECD8 + mov r0, #0x0 + pop {r4-r7} + bx lr +_0206ECD8: + lsl r0, r1, #0x2 + add r0, r7, r0 +_0206ECDC: + pop {r4-r7} + bx lr + + thumb_func_start sub_0206ECE0 +sub_0206ECE0: ; 0x0206ECE0 + push {r4-r5, lr} + sub sp, #0xc + add r4, r2, #0x0 + str r3, [sp, #0x0] + add r2, sp, #0x8 + add r3, sp, #0x4 + add r5, r1, #0x0 + bl sub_0206EBD4 + cmp r0, #0x3 + bne _0206ED0A + mov r0, #0x63 + str r0, [sp, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + add r2, r5, #0x0 + add r3, r4, #0x0 + bl sub_0206EC7C + add sp, #0xc + pop {r4-r5, pc} +_0206ED0A: + ldr r0, _0206ED20 ; =0x000003E7 + add r2, r5, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + add r3, r4, #0x0 + bl sub_0206EC7C + add sp, #0xc + pop {r4-r5, pc} + nop +_0206ED20: .word 0x000003E7 + + thumb_func_start sub_0206ED24 +sub_0206ED24: ; 0x0206ED24 + push {r3, lr} + bl sub_0206ECE0 + cmp r0, #0x0 + beq _0206ED32 + mov r0, #0x1 + pop {r3, pc} +_0206ED32: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0206ED38 +sub_0206ED38: ; 0x0206ED38 + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_0206ECE0 + str r0, [sp, #0x8] + cmp r0, #0x0 + bne _0206ED54 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0206ED54: + strh r5, [r0, #0x0] + ldr r1, [sp, #0x8] + add r2, sp, #0x8 + ldrh r0, [r1, #0x2] + add r3, sp, #0x4 + add r0, r0, r4 + strh r0, [r1, #0x2] + add r0, r7, #0x0 + add r1, r5, #0x0 + str r6, [sp, #0x0] + bl sub_0206EBD4 + sub r0, r0, #0x3 + cmp r0, #0x1 + bhi _0206ED7A + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + bl sub_0206EF94 +_0206ED7A: + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0206ED80 +sub_0206ED80: ; 0x0206ED80 + push {r3-r6} + mov r5, #0x0 + cmp r1, #0x0 + bls _0206EDA8 + add r6, r0, #0x0 +_0206ED8A: + ldrh r4, [r6, #0x0] + cmp r2, r4 + bne _0206EDA0 + lsl r1, r5, #0x2 + add r0, r0, r1 + ldrh r1, [r0, #0x2] + cmp r1, r3 + bhs _0206EDAA + mov r0, #0x0 + pop {r3-r6} + bx lr +_0206EDA0: + add r5, r5, #0x1 + add r6, r6, #0x4 + cmp r5, r1 + blo _0206ED8A +_0206EDA8: + mov r0, #0x0 +_0206EDAA: + pop {r3-r6} + bx lr + .balign 4 + + thumb_func_start sub_0206EDB0 +sub_0206EDB0: ; 0x0206EDB0 + push {r4-r5, lr} + sub sp, #0xc + add r4, r2, #0x0 + str r3, [sp, #0x0] + add r2, sp, #0x8 + add r3, sp, #0x4 + add r5, r1, #0x0 + bl sub_0206EBD4 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + add r2, r5, #0x0 + add r3, r4, #0x0 + bl sub_0206ED80 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 + + thumb_func_start sub_0206EDD4 +sub_0206EDD4: ; 0x0206EDD4 + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + add r7, r1, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_0206EDB0 + str r0, [sp, #0x8] + cmp r0, #0x0 + bne _0206EDF0 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0206EDF0: + ldrh r1, [r0, #0x2] + sub r1, r1, r5 + strh r1, [r0, #0x2] + ldr r1, [sp, #0x8] + ldrh r0, [r1, #0x2] + cmp r0, #0x0 + bne _0206EE02 + mov r0, #0x0 + strh r0, [r1, #0x0] +_0206EE02: + str r4, [sp, #0x0] + add r0, r6, #0x0 + add r1, r7, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + bl sub_0206EBD4 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + bl sub_0206EF48 + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0206EE20 +sub_0206EE20: ; 0x0206EE20 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r3, #0x0 + bl sub_0206ED80 + cmp r0, #0x0 + bne _0206EE34 + mov r0, #0x0 + pop {r4-r6, pc} +_0206EE34: + ldrh r1, [r0, #0x2] + sub r1, r1, r4 + strh r1, [r0, #0x2] + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + bne _0206EE44 + mov r1, #0x0 + strh r1, [r0, #0x0] +_0206EE44: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_0206EF48 + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_0206EE50 +sub_0206EE50: ; 0x0206EE50 + push {r3, lr} + bl sub_0206EDB0 + cmp r0, #0x0 + beq _0206EE5E + mov r0, #0x1 + pop {r3, pc} +_0206EE5E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0206EE64 +sub_0206EE64: ; 0x0206EE64 + cmp r1, #0x7 + bhi _0206EEC4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r3, #0 + lsl r4, r4, #0 + lsl r4, r5, #0 + lsl r4, r0, #0x1 + lsl r4, r3, #0 + lsl r4, r7, #0 + lsl r4, r6, #0 + lsl r6, r1, #0 + mov r1, #0xa5 + lsl r1, r1, #0x2 + add r0, r0, r1 + mov r2, #0x32 + b _0206EEC8 +_0206EE8E: + .byte 0xA5, 0x22 + .byte 0x1A, 0xE0, 0x14, 0x49, 0x40, 0x22, 0x40, 0x18, 0x16, 0xE0, 0x13, 0x49, 0x28, 0x22, 0x40, 0x18 + .byte 0x12, 0xE0, 0x12, 0x49, 0x0F, 0x22, 0x40, 0x18, 0x0E, 0xE0, 0x11, 0x49, 0x1E, 0x22, 0x40, 0x18 + .byte 0x0A, 0xE0, 0x10, 0x49, 0x0C, 0x22, 0x40, 0x18, 0x06, 0xE0, 0xD7, 0x21, 0x89, 0x00, 0x40, 0x18 + .byte 0x64, 0x22, 0x01, 0xE0 +_0206EEC4: + mov r0, #0x0 + bx lr +_0206EEC8: + mov r3, #0x0 + cmp r2, #0x0 + bls _0206EEE0 +_0206EECE: + ldrh r1, [r0, #0x0] + cmp r1, #0x0 + beq _0206EED8 + mov r0, #0x1 + bx lr +_0206EED8: + add r3, r3, #0x1 + add r0, r0, #0x4 + cmp r3, r2 + blo _0206EECE +_0206EEE0: + mov r0, #0x0 + bx lr +_0206EEE4: + .byte 0xBC, 0x05, 0x00, 0x00, 0x1C, 0x05, 0x00, 0x00, 0xBC, 0x06, 0x00, 0x00 + .byte 0xF8, 0x06, 0x00, 0x00, 0xEC, 0x04, 0x00, 0x00 + + thumb_func_start sub_0206EEF8 +sub_0206EEF8: ; 0x0206EEF8 + push {r3, lr} + add r3, r2, #0x0 + mov r2, #0x1 + bl sub_0206EDB0 + cmp r0, #0x0 + bne _0206EF0A + mov r0, #0x0 + pop {r3, pc} +_0206EF0A: + ldrh r0, [r0, #0x2] + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0206EF10 +sub_0206EF10: ; 0x0206EF10 + push {r3, lr} + mov r3, #0x1 + bl sub_0206ED80 + cmp r0, #0x0 + bne _0206EF20 + mov r0, #0x0 + pop {r3, pc} +_0206EF20: + ldrh r0, [r0, #0x2] + pop {r3, pc} + + thumb_func_start sub_0206EF24 +sub_0206EF24: ; 0x0206EF24 + push {r3} + sub sp, #0x4 + ldrh r3, [r0, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x0] + ldrh r3, [r0, #0x2] + strh r3, [r2, #0x2] + ldrh r3, [r1, #0x0] + strh r3, [r0, #0x0] + ldrh r3, [r1, #0x2] + strh r3, [r0, #0x2] + ldrh r0, [r2, #0x0] + strh r0, [r1, #0x0] + ldrh r0, [r2, #0x2] + strh r0, [r1, #0x2] + add sp, #0x4 + pop {r3} + bx lr + + thumb_func_start sub_0206EF48 +sub_0206EF48: ; 0x0206EF48 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + mov r0, #0x0 + add r7, r1, #0x0 + str r0, [sp, #0x4] + sub r0, r7, #0x1 + str r0, [sp, #0x8] + beq _0206EF8E + ldr r4, [sp, #0x0] +_0206EF5C: + ldr r0, [sp, #0x4] + add r6, r0, #0x1 + cmp r6, r7 + bhs _0206EF80 + ldr r0, [sp, #0x0] + lsl r1, r6, #0x2 + add r5, r0, r1 +_0206EF6A: + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + bne _0206EF78 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0206EF24 +_0206EF78: + add r6, r6, #0x1 + add r5, r5, #0x4 + cmp r6, r7 + blo _0206EF6A +_0206EF80: + ldr r0, [sp, #0x4] + add r4, r4, #0x4 + add r1, r0, #0x1 + ldr r0, [sp, #0x8] + str r1, [sp, #0x4] + cmp r1, r0 + blo _0206EF5C +_0206EF8E: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_0206EF94 +sub_0206EF94: ; 0x0206EF94 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + mov r0, #0x0 + add r7, r1, #0x0 + str r0, [sp, #0x4] + sub r0, r7, #0x1 + str r0, [sp, #0x8] + beq _0206EFE8 + ldr r4, [sp, #0x0] +_0206EFA8: + ldr r0, [sp, #0x4] + add r6, r0, #0x1 + cmp r6, r7 + bhs _0206EFDA + ldr r0, [sp, #0x0] + lsl r1, r6, #0x2 + add r5, r0, r1 +_0206EFB6: + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + beq _0206EFCA + ldrh r0, [r5, #0x2] + cmp r0, #0x0 + beq _0206EFD2 + ldrh r1, [r4, #0x0] + ldrh r0, [r5, #0x0] + cmp r1, r0 + bls _0206EFD2 +_0206EFCA: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0206EF24 +_0206EFD2: + add r6, r6, #0x1 + add r5, r5, #0x4 + cmp r6, r7 + blo _0206EFB6 +_0206EFDA: + ldr r0, [sp, #0x4] + add r4, r4, #0x4 + add r1, r0, #0x1 + ldr r0, [sp, #0x8] + str r1, [sp, #0x4] + cmp r1, r0 + blo _0206EFA8 +_0206EFE8: + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_0206EFEC +sub_0206EFEC: ; 0x0206EFEC + push {r3-r7, lr} + add r5, r0, #0x0 + lsl r0, r2, #0x18 + add r7, r1, #0x0 + lsr r0, r0, #0x18 + bl sub_0206E2F0 + add r6, r0, #0x0 + ldrb r0, [r7, #0x0] + mov r4, #0x0 + cmp r0, #0xff + beq _0206F0BE +_0206F004: + ldrb r0, [r7, r4] + cmp r0, #0x7 + bhi _0206F0B6 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r4, #0 + lsl r4, r0, #0x1 + lsl r6, r2, #0x1 + lsl r4, r1, #0x2 + lsl r2, r6, #0 + lsl r2, r7, #0x1 + lsl r0, r5, #0x1 + lsl r6, r1, #0 + mov r1, #0xa5 + lsl r1, r1, #0x2 + lsl r3, r4, #0x18 + add r0, r6, #0x0 + add r1, r5, r1 + mov r2, #0x7 + lsr r3, r3, #0x18 + bl sub_0206E330 + b _0206F0B6 +_0206F03A: + .byte 0x23, 0x06, 0x30, 0x1C, 0x29, 0x1C + .byte 0x00, 0x22, 0x1B, 0x0E, 0xFF, 0xF7, 0x74, 0xF9, 0x35, 0xE0, 0x1E, 0x49, 0x23, 0x06, 0x30, 0x1C + .byte 0x69, 0x18, 0x04, 0x22, 0x1B, 0x0E, 0xFF, 0xF7, 0x6B, 0xF9, 0x2C, 0xE0, 0x1A, 0x49, 0x23, 0x06 + .byte 0x30, 0x1C, 0x69, 0x18, 0x01, 0x22, 0x1B, 0x0E, 0xFF, 0xF7, 0x62, 0xF9, 0x23, 0xE0, 0x17, 0x49 + .byte 0x23, 0x06, 0x30, 0x1C, 0x69, 0x18, 0x02, 0x22, 0x1B, 0x0E, 0xFF, 0xF7, 0x59, 0xF9, 0x1A, 0xE0 + .byte 0x13, 0x49, 0x23, 0x06, 0x30, 0x1C, 0x69, 0x18, 0x06, 0x22, 0x1B, 0x0E, 0xFF, 0xF7, 0x50, 0xF9 + .byte 0x11, 0xE0, 0x10, 0x49, 0x23, 0x06, 0x30, 0x1C, 0x69, 0x18, 0x05, 0x22, 0x1B, 0x0E, 0xFF, 0xF7 + .byte 0x47, 0xF9, 0x08, 0xE0, 0xD7, 0x21, 0x89, 0x00, 0x23, 0x06, 0x30, 0x1C, 0x69, 0x18, 0x03, 0x22 + .byte 0x1B, 0x0E, 0xFF, 0xF7, 0x3D, 0xF9 +_0206F0B6: + add r4, r4, #0x1 + ldrb r0, [r7, r4] + cmp r0, #0xff + bne _0206F004 +_0206F0BE: + add r0, r6, #0x0 + pop {r3-r7, pc} + nop +_0206F0C4: + .byte 0xBC, 0x05, 0x00, 0x00, 0x1C, 0x05, 0x00, 0x00, 0xBC, 0x06, 0x00, 0x00 + .byte 0xF8, 0x06, 0x00, 0x00, 0xEC, 0x04, 0x00, 0x00 + + thumb_func_start sub_0206F0D8 +sub_0206F0D8: ; 0x0206F0D8 + cmp r1, #0x7 + bhi _0206F136 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r3, #0 + lsl r4, r4, #0 + lsl r4, r5, #0 + lsl r4, r0, #0x1 + lsl r4, r3, #0 + lsl r4, r7, #0 + lsl r4, r6, #0 + lsl r6, r1, #0 + mov r1, #0xa5 + lsl r1, r1, #0x2 + add r0, r0, r1 + mov r3, #0x32 + b _0206F136 +_0206F102: + .byte 0xA5, 0x23, 0x17, 0xE0, 0x0F, 0x49, 0x40, 0x23, 0x40, 0x18, 0x13, 0xE0, 0x0E, 0x49 + .byte 0x28, 0x23, 0x40, 0x18, 0x0F, 0xE0, 0x0D, 0x49, 0x0F, 0x23, 0x40, 0x18, 0x0B, 0xE0, 0x0C, 0x49 + .byte 0x1E, 0x23, 0x40, 0x18, 0x07, 0xE0, 0x0B, 0x49, 0x0C, 0x23, 0x40, 0x18, 0x03, 0xE0, 0xD7, 0x21 + .byte 0x89, 0x00, 0x40, 0x18, 0x64, 0x23 +_0206F136: + cmp r2, r3 + blo _0206F13E + mov r0, #0x0 + bx lr +_0206F13E: + lsl r1, r2, #0x2 + add r0, r0, r1 + bx lr +_0206F144: + .byte 0xBC, 0x05, 0x00, 0x00, 0x1C, 0x05, 0x00, 0x00, 0xBC, 0x06, 0x00, 0x00 + .byte 0xF8, 0x06, 0x00, 0x00, 0xEC, 0x04, 0x00, 0x00 + + thumb_func_start sub_0206F158 +sub_0206F158: ; 0x0206F158 + ldr r3, _0206F160 ; =sub_02022610 + mov r1, #0x3 + bx r3 + nop +_0206F160: .word sub_02022610 + 1 + + thumb_func_start sub_0206F164 +sub_0206F164: ; 0x0206F164 + push {r4, lr} + mov r1, #0x24 + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x24 + blx sub_020CE1C8 + add r0, r4, #0x0 + pop {r4, pc} + + thumb_func_start sub_0206F17C +sub_0206F17C: ; 0x0206F17C + push {r3-r4} + add r4, r0, r1 + ldrb r4, [r4, #0x8] + strb r4, [r2, #0x0] + ldrb r0, [r0, r1] + strb r0, [r3, #0x0] + pop {r3-r4} + bx lr + + thumb_func_start sub_0206F18C +sub_0206F18C: ; 0x0206F18C + ldrh r0, [r0, #0x10] + bx lr + + thumb_func_start sub_0206F190 +sub_0206F190: ; 0x0206F190 + push {r3-r4} + add r4, r0, r1 + strb r2, [r4, #0x8] + strb r3, [r0, r1] + pop {r3-r4} + bx lr + + thumb_func_start sub_0206F19C +sub_0206F19C: ; 0x0206F19C + strh r1, [r0, #0x10] + bx lr + + thumb_func_start sub_0206F1A0 +sub_0206F1A0: ; 0x0206F1A0 + add r1, r0, r1 + ldrb r0, [r1, #0x19] + strb r0, [r2, #0x0] + ldrb r0, [r1, #0x14] + strb r0, [r3, #0x0] + bx lr + + thumb_func_start sub_0206F1AC +sub_0206F1AC: ; 0x0206F1AC + ldrh r0, [r0, #0x1e] + bx lr + + thumb_func_start sub_0206F1B0 +sub_0206F1B0: ; 0x0206F1B0 + ldrh r0, [r0, #0x20] + bx lr + + thumb_func_start sub_0206F1B4 +sub_0206F1B4: ; 0x0206F1B4 + ldrh r0, [r0, #0x22] + bx lr + + thumb_func_start sub_0206F1B8 +sub_0206F1B8: ; 0x0206F1B8 + add r0, r0, r1 + strb r2, [r0, #0x19] + strb r3, [r0, #0x14] + bx lr + + thumb_func_start sub_0206F1C0 +sub_0206F1C0: ; 0x0206F1C0 + push {r4-r6, lr} + mov r4, #0x0 + add r5, r0, #0x0 + add r6, r4, #0x0 +_0206F1C8: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, r6, #0x0 + bl sub_0206F1B8 + add r4, r4, #0x1 + cmp r4, #0x5 + blo _0206F1C8 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0206F1EC + pop {r4-r6, pc} + + thumb_func_start sub_0206F1E4 +sub_0206F1E4: ; 0x0206F1E4 + strh r1, [r0, #0x1e] + strh r2, [r0, #0x20] + bx lr + .balign 4 + + thumb_func_start sub_0206F1EC +sub_0206F1EC: ; 0x0206F1EC + strh r1, [r0, #0x22] + bx lr + + thumb_func_start sub_0206F1F0 +sub_0206F1F0: ; 0x0206F1F0 + push {r4-r6, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0xb + bls _0206F20A + b _0206F37C +_0206F20A: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r2, #0 + lsl r4, r3, #0 + lsl r2, r0, #0x1 + lsl r4, r2, #0x1 + lsl r2, r0, #0x4 + lsl r0, r3, #0x4 + lsl r6, r3, #0x4 + lsl r4, r5, #0x4 + lsl r2, r6, #0x4 + lsl r6, r1, #0x5 + lsl r6, r1, #0x5 + lsl r6, r1, #0x5 + ldr r1, [r5, #0xc] + ldr r0, [r4, #0x0] + str r1, [r0, #0x0] + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x1 + bne _0206F24C + ldr r0, [r5, #0xc] + bl sub_0203384C + cmp r0, #0x0 + bne _0206F24E +_0206F24C: + b _0206F380 +_0206F24E: + mov r0, #0xa + str r0, [r4, #0x4] + ldr r0, [r4, #0x8] + mov r1, #0x0 + strh r1, [r0, #0x0] + b _0206F380 +_0206F25A: + .byte 0x4A, 0x49, 0x22, 0x68, 0x30, 0x1C + .byte 0xD7, 0xF7, 0x4E, 0xF9, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x89, 0xE0, 0xE8, 0x68, 0xC4, 0xF7 + .byte 0xED, 0xFA, 0x00, 0x28, 0x04, 0xD0, 0xE8, 0x68, 0xD7, 0xF7, 0x18, 0xF8, 0xF0, 0xF7, 0x42, 0xF8 + .byte 0x20, 0x68, 0x40, 0x68, 0x0A, 0x28, 0x7B, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04 + .byte 0x00, 0x14, 0x87, 0x44, 0xEA, 0x00, 0x22, 0x00, 0x30, 0x00, 0x14, 0x00, 0x4A, 0x00, 0x58, 0x00 + .byte 0x3E, 0x00, 0x66, 0x00, 0x78, 0x00, 0x7E, 0x00, 0x6C, 0x00, 0x00, 0x20, 0x20, 0x73, 0x01, 0x20 + .byte 0x60, 0x73, 0x04, 0x20, 0x60, 0x60, 0x63, 0xE0, 0x32, 0x20, 0x20, 0x73, 0x01, 0x20, 0x60, 0x73 + .byte 0x04, 0x20, 0x60, 0x60, 0x5C, 0xE0, 0x64, 0x20, 0x20, 0x73, 0x01, 0x20, 0x60, 0x73, 0x04, 0x20 + .byte 0x60, 0x60, 0x55, 0xE0, 0x00, 0x20, 0x20, 0x73, 0x60, 0x73, 0x04, 0x20, 0x60, 0x60, 0x4F, 0xE0 + .byte 0x32, 0x20, 0x20, 0x73, 0x00, 0x20, 0x60, 0x73, 0x04, 0x20, 0x60, 0x60, 0x48, 0xE0, 0x64, 0x20 + .byte 0x20, 0x73, 0x00, 0x20, 0x60, 0x73, 0x04, 0x20, 0x60, 0x60, 0x41, 0xE0, 0x06, 0x20, 0x60, 0x60 + .byte 0x3E, 0xE0, 0xA0, 0x68, 0x01, 0x21, 0x01, 0x80, 0x0B, 0x20, 0x60, 0x60, 0x38, 0xE0, 0x09, 0x20 + .byte 0x60, 0x60, 0x35, 0xE0, 0x08, 0x20, 0x60, 0x60, 0x32, 0xE0, 0x21, 0x68, 0x22, 0x7B, 0x63, 0x7B + .byte 0x89, 0x68, 0x30, 0x1C, 0xD7, 0xF7, 0x4C, 0xFF, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x27, 0xE0 + .byte 0x02, 0x20, 0x60, 0x60, 0x24, 0xE0, 0x30, 0x1C, 0xC9, 0xF7, 0x4E, 0xF8, 0x60, 0x68, 0x40, 0x1C + .byte 0x60, 0x60, 0x1D, 0xE0, 0x02, 0x20, 0x60, 0x60, 0x1A, 0xE0, 0x0F, 0x4A, 0x03, 0x20, 0x36, 0x21 + .byte 0xA7, 0xF7, 0x64, 0xFA, 0x19, 0xF0, 0x90, 0xFA, 0x36, 0x20, 0xA2, 0xF1, 0x81, 0xFD, 0x00, 0x20 + .byte 0x5E, 0xF0, 0x28, 0xE8, 0x0C, 0xE0, 0x20, 0x68, 0xA7, 0xF7, 0x56, 0xFB, 0x20, 0x1C, 0xA7, 0xF7 + .byte 0x53, 0xFB, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x01, 0x20, 0x70, 0xBD +_0206F37C: + mov r0, #0x1 + pop {r4-r6, pc} +_0206F380: + mov r0, #0x0 + pop {r4-r6, pc} +_0206F384: + .byte 0x3C, 0x94, 0x0F, 0x02, 0x00, 0x01, 0x04, 0x00 + + thumb_func_start sub_0206F38C +sub_0206F38C: ; 0x0206F38C + push {r4, lr} + mov r0, #0xb + mov r1, #0x10 + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x10 + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0xb + mov r1, #0xc + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0xc + str r0, [r4, #0x0] + blx sub_020CE34C + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206F3B8 +sub_0206F3B8: ; 0x0206F3B8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0206F38C + add r2, r0, #0x0 + ldr r0, [r2, #0x0] + mov r1, #0x2 + str r1, [r0, #0x4] + ldr r1, _0206F3D4 ; =sub_0206F1F0 + add r0, r4, #0x0 + bl sub_0204640C + pop {r4, pc} + nop +_0206F3D4: .word sub_0206F1F0 + 1 + + thumb_func_start sub_0206F3D8 +sub_0206F3D8: ; 0x0206F3D8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0206F38C + add r2, r0, #0x0 + ldr r0, [r2, #0x0] + mov r1, #0x1 + str r1, [r0, #0x4] + ldr r1, _0206F3F8 ; =sub_0206F1F0 + add r0, r5, #0x0 + str r4, [r2, #0x8] + bl sub_0204640C + pop {r3-r5, pc} + nop +_0206F3F8: .word sub_0206F1F0 + 1 + + thumb_func_start sub_0206F3FC +sub_0206F3FC: ; 0x0206F3FC + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + bl sub_02015F1C + bl sub_0201E6D8 + bl sub_0201E740 + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r2, [r0, #0x0] + ldr r1, _0206F594 ; =0xFFFFE0FF + ldr r3, _0206F598 ; =0x04001000 + and r2, r1 + str r2, [r0, #0x0] + ldr r2, [r3, #0x0] + add r0, #0x50 + and r1, r2 + str r1, [r3, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x0] + add r3, #0x50 + strh r1, [r3, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + mov r2, #0x2 + mov r0, #0x3 + mov r1, #0xc + lsl r2, r2, #0x10 + bl sub_0201681C + add r0, r4, #0x0 + bl sub_0206FE74 + add r4, r0, #0x0 + mov r0, #0x6 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r1, #0xc + str r1, [sp, #0x8] + mov r1, #0x3 + add r2, r1, #0x0 + mov r3, #0x0 + bl sub_0200E1D0 + add r0, r4, #0x0 + bl sub_0206FF74 + bl sub_0206FB80 + ldr r0, [r4, #0x0] + bl sub_0206FBA0 + add r0, r4, #0x0 + bl sub_0206FD24 + bl sub_0201CC08 + mov r0, #0x4 + bl sub_0201CC24 + mov r1, #0x0 + mov r0, #0x39 + add r2, r1, #0x0 + bl sub_0200433C + add r0, r4, #0x0 + bl sub_02072590 + add r0, r4, #0x0 + bl sub_02073710 + add r0, r4, #0x0 + bl sub_0207388C + add r0, r4, #0x0 + bl sub_0206FFB4 + add r0, r4, #0x0 + bl sub_0207047C + ldr r1, _0206F59C ; =0x00000B25 + add r0, r4, #0x0 + ldrb r1, [r4, r1] + mov r2, #0x1 + bl sub_020713EC + ldr r1, _0206F5A0 ; =0x000005A4 + ldr r3, [r4, r1] + add r0, r3, #0x0 + add r0, #0x20 + ldrb r2, [r0, #0x0] + cmp r2, #0x5 + beq _0206F4CC + cmp r2, #0x10 + bne _0206F4E2 +_0206F4CC: + ldrh r0, [r3, #0x24] + bl sub_02076144 + cmp r0, #0x0 + bne _0206F564 + add r0, r4, #0x0 + mov r1, #0x20 + mov r2, #0x1 + bl sub_020731C0 + b _0206F564 +_0206F4E2: + cmp r2, #0x6 + bne _0206F4F2 + add r0, r4, #0x0 + mov r1, #0x21 + mov r2, #0x1 + bl sub_020731C0 + b _0206F564 +_0206F4F2: + cmp r2, #0x9 + beq _0206F4FA + cmp r2, #0xe + bne _0206F506 +_0206F4FA: + add r0, r4, #0x0 + mov r1, #0x1f + mov r2, #0x1 + bl sub_020731C0 + b _0206F564 +_0206F506: + cmp r2, #0x7 + beq _0206F51A + cmp r2, #0x8 + beq _0206F51A + add r0, r2, #0x0 + add r0, #0xf5 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bhi _0206F526 +_0206F51A: + ldr r0, _0206F5A4 ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C664 + b _0206F564 +_0206F526: + cmp r2, #0x2 + beq _0206F52E + cmp r2, #0x11 + bne _0206F53A +_0206F52E: + add r0, r4, #0x0 + mov r1, #0x22 + mov r2, #0x1 + bl sub_020731C0 + b _0206F564 +_0206F53A: + cmp r2, #0xf + bne _0206F54A + add r0, r4, #0x0 + mov r1, #0x22 + mov r2, #0x1 + bl sub_020731C0 + b _0206F564 +_0206F54A: + cmp r2, #0xa + beq _0206F55A + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 + b _0206F564 +_0206F55A: + add r1, #0x24 + ldr r0, [r4, r1] + mov r1, #0x1 + bl sub_0200C664 +_0206F564: + add r0, r4, #0x0 + bl sub_02072720 + add r0, r4, #0x0 + bl sub_02070AA4 + add r0, r4, #0x0 + bl sub_0207248C + cmp r0, #0x0 + bne _0206F582 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0201E74C +_0206F582: + ldr r0, _0206F5A8 ; =sub_0206FB58 + add r1, r4, #0x0 + bl sub_02015F10 + bl sub_02033F20 + mov r0, #0x1 + add sp, #0xc + pop {r3-r4, pc} + .balign 4 +_0206F594: .word 0xFFFFE0FF +_0206F598: .word 0x04001000 +_0206F59C: .word 0x00000B25 +_0206F5A0: .word 0x000005A4 +_0206F5A4: .word 0x000005C8 +_0206F5A8: .word sub_0206FB58 + 1 + + thumb_func_start sub_0206F5AC +sub_0206F5AC: ; 0x0206F5AC + push {r3-r5, lr} + add r4, r1, #0x0 + bl sub_02006278 + ldr r1, [r4, #0x0] + add r5, r0, #0x0 + cmp r1, #0x1c + bhi _0206F61C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r7, #0 + lsl r0, r0, #0x1 + lsl r0, r1, #0x1 + lsl r2, r3, #0x1 + lsl r2, r4, #0x1 + lsl r2, r5, #0x1 + lsl r4, r6, #0x1 + lsl r4, r7, #0x1 + lsl r4, r0, #0x2 + lsl r4, r1, #0x2 + lsl r4, r2, #0x2 + lsl r4, r3, #0x2 + lsl r4, r4, #0x2 + lsl r4, r5, #0x2 + lsl r4, r6, #0x2 + lsl r4, r7, #0x2 + lsl r4, r0, #0x3 + lsl r4, r1, #0x3 + lsl r4, r2, #0x3 + lsl r4, r3, #0x3 + lsl r4, r4, #0x3 + lsl r4, r5, #0x3 + lsl r4, r6, #0x3 + lsl r4, r7, #0x3 + lsl r4, r0, #0x4 + lsl r4, r3, #0x4 + lsl r2, r5, #0x4 + lsl r2, r6, #0x4 + lsl r0, r0, #0x5 + bl sub_0206F750 + str r0, [r4, #0x0] + b _0206F722 +_0206F60A: + .byte 0x00, 0xF0, 0xE5, 0xF8, 0x20, 0x60 + .byte 0x87, 0xE0, 0x21, 0x1C, 0x02, 0xF0, 0x5A, 0xF9, 0x01, 0x28, 0x00, 0xD0 +_0206F61C: + b _0206F722 +_0206F61E: + .byte 0x01, 0x20 + .byte 0x20, 0x60, 0x7E, 0xE0, 0x05, 0xF0, 0x54, 0xFF, 0x20, 0x60, 0x7A, 0xE0, 0x00, 0xF0, 0x22, 0xF9 + .byte 0x20, 0x60, 0x76, 0xE0, 0x42, 0x49, 0x69, 0x58, 0x88, 0x47, 0x20, 0x60, 0x71, 0xE0, 0x07, 0xF0 + .byte 0x67, 0xFD, 0x20, 0x60, 0x6D, 0xE0, 0x06, 0xF0, 0xAB, 0xFD, 0x20, 0x60, 0x69, 0xE0, 0x00, 0xF0 + .byte 0x31, 0xF9, 0x20, 0x60, 0x65, 0xE0, 0x02, 0xF0, 0x8B, 0xFD, 0x20, 0x60, 0x61, 0xE0, 0x02, 0xF0 + .byte 0x99, 0xFD, 0x20, 0x60, 0x5D, 0xE0, 0x02, 0xF0, 0x6B, 0xFD, 0x20, 0x60, 0x59, 0xE0, 0x02, 0xF0 + .byte 0x4D, 0xFE, 0x20, 0x60, 0x55, 0xE0, 0x00, 0xF0, 0x3D, 0xF9, 0x20, 0x60, 0x51, 0xE0, 0x02, 0xF0 + .byte 0x6B, 0xFC, 0x20, 0x60, 0x4D, 0xE0, 0x04, 0xF0, 0xE9, 0xFC, 0x20, 0x60, 0x49, 0xE0, 0x04, 0xF0 + .byte 0x6D, 0xFE, 0x20, 0x60, 0x45, 0xE0, 0x00, 0xF0, 0xBD, 0xF9, 0x20, 0x60, 0x41, 0xE0, 0x07, 0xF0 + .byte 0x4D, 0xFB, 0x20, 0x60, 0x3D, 0xE0, 0x05, 0xF0, 0x61, 0xFC, 0x20, 0x60, 0x39, 0xE0, 0x00, 0xF0 + .byte 0x67, 0xF9, 0x20, 0x60, 0x35, 0xE0, 0x00, 0xF0, 0x75, 0xF9, 0x20, 0x60, 0x31, 0xE0, 0x00, 0xF0 + .byte 0x83, 0xF9, 0x20, 0x60, 0x2D, 0xE0, 0x00, 0xF0, 0x85, 0xF9, 0x20, 0x60, 0x29, 0xE0, 0x01, 0xF0 + .byte 0xFF, 0xFE, 0x00, 0x28, 0x02, 0xD1, 0x19, 0x20, 0x20, 0x60, 0x22, 0xE0, 0x03, 0x28, 0x20, 0xD1 + .byte 0x01, 0x20, 0x20, 0x60, 0x1D, 0xE0, 0x04, 0xF0, 0xF5, 0xFF, 0x01, 0x28, 0x19, 0xD1, 0x01, 0x20 + .byte 0x20, 0x60, 0x16, 0xE0, 0x02, 0xF0, 0x3C, 0xF9, 0x20, 0x60, 0x12, 0xE0, 0x01, 0x20, 0x0C, 0x21 + .byte 0x0A, 0xF0, 0xB6, 0xF9, 0x1C, 0x20, 0x20, 0x60, 0x0B, 0xE0, 0x9E, 0xF7, 0xFD, 0xFD, 0x01, 0x28 + .byte 0x07, 0xD1, 0x0C, 0x48, 0x29, 0x5C, 0x0C, 0x48, 0x28, 0x58, 0x22, 0x30, 0x01, 0x70, 0x01, 0x20 + .byte 0x38, 0xBD +_0206F722: + add r0, r5, #0x0 + bl sub_02073BEC + add r0, r5, #0x0 + bl sub_02073D6C + add r0, r5, #0x0 + bl sub_02070F14 + ldr r0, _0206F74C ; =0x000005AC + ldr r0, [r5, r0] + bl sub_0200BC1C + mov r0, #0x0 + pop {r3-r5, pc} +_0206F740: + .byte 0x14, 0x0B, 0x00, 0x00, 0x25, 0x0B, 0x00, 0x00, 0xA4, 0x05, 0x00, 0x00 +_0206F74C: .word 0x000005AC + + thumb_func_start sub_0206F750 +sub_0206F750: ; 0x0206F750 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0200E308 + cmp r0, #0x1 + bne _0206F7CA + ldr r0, _0206F7D0 ; =0x000005A4 + ldr r2, [r4, r0] + add r0, r2, #0x0 + add r0, #0x20 + ldrb r1, [r0, #0x0] + cmp r1, #0x5 + beq _0206F76E + cmp r1, #0x10 + bne _0206F786 +_0206F76E: + ldrh r0, [r2, #0x24] + bl sub_02076144 + cmp r0, #0x1 + bne _0206F782 + ldr r0, _0206F7D4 ; =0x00000B22 + mov r1, #0x0 + strb r1, [r4, r0] + mov r0, #0x7 + pop {r4, pc} +_0206F782: + mov r0, #0x4 + pop {r4, pc} +_0206F786: + cmp r1, #0x6 + bne _0206F78E + mov r0, #0x11 + pop {r4, pc} +_0206F78E: + cmp r1, #0x7 + bne _0206F79A + add r0, r4, #0x0 + bl sub_02076C94 + pop {r4, pc} +_0206F79A: + cmp r1, #0x8 + bne _0206F7A6 + add r0, r4, #0x0 + bl sub_02076890 + pop {r4, pc} +_0206F7A6: + add r0, r1, #0x0 + add r0, #0xf5 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bhi _0206F7B6 + mov r0, #0xc + pop {r4, pc} +_0206F7B6: + cmp r1, #0x9 + bne _0206F7BE + mov r0, #0x8 + pop {r4, pc} +_0206F7BE: + cmp r1, #0xa + bne _0206F7C6 + mov r0, #0xe + pop {r4, pc} +_0206F7C6: + mov r0, #0x1 + pop {r4, pc} +_0206F7CA: + mov r0, #0x0 + pop {r4, pc} + nop +_0206F7D0: .word 0x000005A4 +_0206F7D4: .word 0x00000B22 + + thumb_func_start sub_0206F7D8 +sub_0206F7D8: ; 0x0206F7D8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02070F94 + cmp r0, #0x0 + bne _0206F81E + ldr r0, _0206F870 ; =0x000005A4 + ldr r1, [r4, r0] + add r0, r1, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + beq _0206F7F6 + cmp r0, #0x14 + bne _0206F800 +_0206F7F6: + mov r0, #0x0 + add r1, #0x23 + strb r0, [r1, #0x0] + mov r0, #0x1b + pop {r4, pc} +_0206F800: + cmp r0, #0xe + bne _0206F80E + add r0, r4, #0x0 + bl sub_02077248 + mov r0, #0x14 + pop {r4, pc} +_0206F80E: + cmp r0, #0x13 + bne _0206F81A + add r0, r4, #0x0 + bl sub_02072420 + pop {r4, pc} +_0206F81A: + mov r0, #0x2 + pop {r4, pc} +_0206F81E: + cmp r0, #0x4 + bne _0206F82A + add r0, r4, #0x0 + bl sub_0207155C + pop {r4, pc} +_0206F82A: + cmp r0, #0x3 + bne _0206F83C + ldr r0, _0206F870 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + pop {r4, pc} +_0206F83C: + cmp r0, #0x2 + bne _0206F86A + ldr r0, _0206F870 ; =0x000005A4 + ldr r2, [r4, r0] + add r1, r2, #0x0 + add r1, #0x20 + ldrb r1, [r1, #0x0] + cmp r1, #0xf + beq _0206F858 + mov r0, #0x1 + add r2, #0x23 + strb r0, [r2, #0x0] + mov r0, #0x1b + pop {r4, pc} +_0206F858: + add r0, #0x24 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_0200C664 + add r0, r4, #0x0 + bl sub_02075118 + pop {r4, pc} +_0206F86A: + mov r0, #0x1 + pop {r4, pc} + nop +_0206F870: .word 0x000005A4 + + thumb_func_start sub_0206F874 +sub_0206F874: ; 0x0206F874 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02071D48 + cmp r0, #0x0 + beq _0206F884 + cmp r0, #0x2 + bne _0206F896 +_0206F884: + ldr r0, _0206F8AC ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C664 + add r0, r4, #0x0 + bl sub_02071DF4 + pop {r4, pc} +_0206F896: + cmp r0, #0x3 + bne _0206F8A8 + ldr r0, _0206F8B0 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + pop {r4, pc} +_0206F8A8: + mov r0, #0x4 + pop {r4, pc} + .balign 4 +_0206F8AC: .word 0x000005C8 +_0206F8B0: .word 0x000005A4 + + thumb_func_start sub_0206F8B4 +sub_0206F8B4: ; 0x0206F8B4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02071D48 + cmp r0, #0x0 + beq _0206F8C4 + cmp r0, #0x2 + bne _0206F8D6 +_0206F8C4: + ldr r0, _0206F8EC ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C664 + add r0, r4, #0x0 + bl sub_02071F58 + pop {r4, pc} +_0206F8D6: + cmp r0, #0x3 + bne _0206F8E8 + ldr r0, _0206F8F0 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + pop {r4, pc} +_0206F8E8: + mov r0, #0x8 + pop {r4, pc} + .balign 4 +_0206F8EC: .word 0x000005C8 +_0206F8F0: .word 0x000005A4 + + thumb_func_start sub_0206F8F4 +sub_0206F8F4: ; 0x0206F8F4 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldr r0, _0206F974 ; =0x000006FC + ldr r0, [r4, r0] + bl sub_02001C78 + add r2, r0, #0x0 + mov r0, #0x1 + mvn r0, r0 + cmp r2, r0 + beq _0206F914 + add r0, r0, #0x1 + cmp r2, r0 + beq _0206F96E + b _0206F962 +_0206F914: + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200CCF8 + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + ldr r0, _0206F974 ; =0x000006FC + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_02001C5C + ldr r0, _0206F978 ; =0x000006F8 + ldr r0, [r4, r0] + bl sub_02012870 + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _0206F97C ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C664 + add sp, #0x4 + mov r0, #0x1 + pop {r3-r4, pc} +_0206F962: + add r0, r4, #0x0 + add r1, sp, #0x0 + blx r2 + ldr r0, [sp, #0x0] + add sp, #0x4 + pop {r3-r4, pc} +_0206F96E: + mov r0, #0xd + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0206F974: .word 0x000006FC +_0206F978: .word 0x000006F8 +_0206F97C: .word 0x000005C8 + + thumb_func_start sub_0206F980 +sub_0206F980: ; 0x0206F980 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0206F99C ; =0x00000B24 + ldrb r0, [r4, r0] + bl sub_0201BD70 + cmp r0, #0x0 + bne _0206F996 + ldr r0, _0206F9A0 ; =0x00000B22 + ldrb r0, [r4, r0] + pop {r4, pc} +_0206F996: + mov r0, #0x14 + pop {r4, pc} + nop +_0206F99C: .word 0x00000B24 +_0206F9A0: .word 0x00000B22 + + thumb_func_start sub_0206F9A4 +sub_0206F9A4: ; 0x0206F9A4 + push {r3, lr} + ldr r0, _0206F9C0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _0206F9BA + ldr r0, _0206F9C4 ; =0x000005DC + bl sub_020054C8 + mov r0, #0x1b + pop {r3, pc} +_0206F9BA: + mov r0, #0x15 + pop {r3, pc} + nop +_0206F9C0: .word 0x021C48B8 +_0206F9C4: .word 0x000005DC + + thumb_func_start sub_0206F9C8 +sub_0206F9C8: ; 0x0206F9C8 + push {r3, lr} + bl sub_020732CC + mov r0, #0x17 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0206F9D4 +sub_0206F9D4: ; 0x0206F9D4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0206FA08 ; =0x000006FC + mov r1, #0xc + ldr r0, [r4, r0] + bl sub_020021AC + cmp r0, #0x0 + beq _0206F9F0 + mov r1, #0x1 + mvn r1, r1 + cmp r0, r1 + beq _0206F9FA + b _0206FA04 +_0206F9F0: + ldr r1, _0206FA0C ; =0x00000B18 + add r0, r4, #0x0 + ldr r1, [r4, r1] + blx r1 + pop {r4, pc} +_0206F9FA: + ldr r1, _0206FA10 ; =0x00000B1C + add r0, r4, #0x0 + ldr r1, [r4, r1] + blx r1 + pop {r4, pc} +_0206FA04: + mov r0, #0x17 + pop {r4, pc} + .balign 4 +_0206FA08: .word 0x000006FC +_0206FA0C: .word 0x00000B18 +_0206FA10: .word 0x00000B1C + + thumb_func_start sub_0206FA14 +sub_0206FA14: ; 0x0206FA14 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02071D48 + cmp r0, #0x0 + beq _0206FA24 + cmp r0, #0x2 + bne _0206FA78 +_0206FA24: + ldr r0, _0206FA90 ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C664 + ldr r0, _0206FA94 ; =0x00000B25 + mov r1, #0x2c + ldrb r0, [r4, r0] + add r2, r0, #0x0 + mul r2, r1 + mov r0, #0x71 + add r2, r4, r2 + lsl r0, r0, #0x4 + ldrb r0, [r2, r0] + cmp r0, #0x1 + beq _0206FA4C + add r0, r4, #0x0 + bl sub_02076AF8 + pop {r4, pc} +_0206FA4C: + add r0, r4, #0x0 + sub r1, #0x2d + mov r2, #0x1 + bl sub_020731E8 + ldr r1, _0206FA98 ; =0x000005A4 + mov r2, #0x0 + ldr r0, [r4, r1] + add r1, #0xf8 + add r0, #0x23 + strb r2, [r0, #0x0] + ldr r0, _0206FA9C ; =0x00000B22 + mov r2, #0x15 + strb r2, [r4, r0] + ldr r2, _0206FAA0 ; =0x000006A4 + ldr r0, [r4, r1] + ldr r2, [r4, r2] + mov r1, #0x69 + bl sub_0200A8E0 + mov r0, #0x14 + pop {r4, pc} +_0206FA78: + cmp r0, #0x3 + bne _0206FA8A + ldr r0, _0206FA98 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + pop {r4, pc} +_0206FA8A: + mov r0, #0x11 + pop {r4, pc} + nop +_0206FA90: .word 0x000005C8 +_0206FA94: .word 0x00000B25 +_0206FA98: .word 0x000005A4 +_0206FA9C: .word 0x00000B22 +_0206FAA0: .word 0x000006A4 + + thumb_func_start sub_0206FAA4 +sub_0206FAA4: ; 0x0206FAA4 + push {r3-r7, lr} + str r0, [sp, #0x0] + bl sub_02006278 + add r6, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + add r0, r6, #0x0 + bl sub_02073A2C + add r0, r6, #0x0 + bl sub_020726F0 + ldr r0, [r6, #0x0] + bl sub_0206FCD4 + bl sub_0201CD04 + bl sub_0201C29C + mov r7, #0x7 + mov r4, #0x0 + add r5, r6, #0x0 + lsl r7, r7, #0x8 +_0206FAD8: + ldr r0, [r5, r7] + bl sub_02021A20 + add r4, r4, #0x1 + add r5, #0x2c + cmp r4, #0x6 + blo _0206FAD8 + ldr r0, _0206FB40 ; =0x000006A4 + ldr r0, [r6, r0] + bl sub_02021A20 + ldr r0, _0206FB44 ; =0x000006A8 + ldr r0, [r6, r0] + bl sub_02021A20 + ldr r7, _0206FB48 ; =0x000006AC + mov r5, #0x0 + add r4, r6, #0x0 +_0206FAFC: + ldr r0, [r4, r7] + bl sub_02021A20 + add r5, r5, #0x1 + add r4, r4, #0x4 + cmp r5, #0x13 + blo _0206FAFC + ldr r0, _0206FB4C ; =0x0000069C + ldr r0, [r6, r0] + bl sub_0200A8B8 + ldr r0, _0206FB50 ; =0x00000698 + ldr r0, [r6, r0] + bl sub_0200B990 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r6, r0] + bl sub_0200AB18 + ldr r0, _0206FB54 ; =0x00000B34 + ldr r0, [r6, r0] + cmp r0, #0x0 + beq _0206FB30 + bl sub_0206BB74 +_0206FB30: + ldr r0, [sp, #0x0] + bl sub_0200627C + mov r0, #0xc + bl sub_020168D0 + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_0206FB40: .word 0x000006A4 +_0206FB44: .word 0x000006A8 +_0206FB48: .word 0x000006AC +_0206FB4C: .word 0x0000069C +_0206FB50: .word 0x00000698 +_0206FB54: .word 0x00000B34 + + thumb_func_start sub_0206FB58 +sub_0206FB58: ; 0x0206FB58 + push {r3, lr} + ldr r0, [r0, #0x0] + bl sub_0201AB60 + bl sub_0201C30C + bl sub_0200BC30 + ldr r3, _0206FB78 ; =0x027E0000 + ldr r1, _0206FB7C ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + nop +_0206FB78: .word 0x027E0000 +_0206FB7C: .word 0x00003FF8 + + thumb_func_start sub_0206FB80 +sub_0206FB80: ; 0x0206FB80 + push {r4, lr} + sub sp, #0x28 + ldr r4, _0206FB9C ; =0x020F9564 + add r3, sp, #0x0 + mov r2, #0x5 +_0206FB8A: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0206FB8A + add r0, sp, #0x0 + bl sub_0201E66C + add sp, #0x28 + pop {r4, pc} + .balign 4 +_0206FB9C: .word 0x020F9564 + + thumb_func_start sub_0206FBA0 +sub_0206FBA0: ; 0x0206FBA0 + push {r3-r5, lr} + sub sp, #0xb8 + ldr r5, _0206FCB8 ; =0x020F9458 + add r3, sp, #0xa8 + add r4, r0, #0x0 + add r2, r3, #0x0 + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + bl sub_02016BBC + ldr r5, _0206FCBC ; =0x020F94D4 + add r3, sp, #0x8c + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x0 + str r0, [r3, #0x0] + add r0, r4, #0x0 + add r3, r1, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02018744 + ldr r5, _0206FCC0 ; =0x020F94F0 + add r3, sp, #0x70 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x1 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02018744 + ldr r5, _0206FCC4 ; =0x020F949C + add r3, sp, #0x54 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x2 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02018744 + ldr r5, _0206FCC8 ; =0x020F9480 + add r3, sp, #0x38 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x3 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + ldr r5, _0206FCCC ; =0x020F950C + add r3, sp, #0x1c + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r1, #0x4 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_02018744 + ldr r5, _0206FCD0 ; =0x020F9528 + add r3, sp, #0x0 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x5 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + mov r3, #0xc + bl sub_02017F18 + mov r0, #0x4 + mov r1, #0x20 + mov r2, #0x0 + mov r3, #0xc + bl sub_02017F18 + add sp, #0xb8 + pop {r3-r5, pc} + nop +_0206FCB8: .word 0x020F9458 +_0206FCBC: .word 0x020F94D4 +_0206FCC0: .word 0x020F94F0 +_0206FCC4: .word 0x020F949C +_0206FCC8: .word 0x020F9480 +_0206FCCC: .word 0x020F950C +_0206FCD0: .word 0x020F9528 + + thumb_func_start sub_0206FCD4 +sub_0206FCD4: ; 0x0206FCD4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1f + mov r1, #0x0 + bl sub_0201E6E4 + mov r0, #0x13 + mov r1, #0x0 + bl sub_0201E74C + add r0, r4, #0x0 + mov r1, #0x5 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020178A0 + mov r0, #0xc + add r1, r4, #0x0 + bl sub_02016A8C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0206FD24 +sub_0206FD24: ; 0x0206FD24 + push {r4-r5, lr} + sub sp, #0x14 + add r5, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r2, [r5, #0x0] + mov r0, #0x14 + mov r1, #0xf + mov r3, #0x3 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r2, [r5, #0x0] + mov r0, #0x14 + mov r1, #0x11 + mov r3, #0x3 + bl sub_020068C8 + mov r0, #0x14 + mov r1, #0x10 + mov r2, #0xc + bl sub_0200650C + add r1, sp, #0x10 + add r4, r0, #0x0 + blx sub_020B0138 + ldr r2, [sp, #0x10] + mov r0, #0x3 + ldr r1, [r2, #0xc] + ldr r2, [r2, #0x8] + mov r3, #0x0 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + bl sub_02017FB4 + ldr r1, [sp, #0x10] + ldr r0, _0206FE6C ; =0x000004A4 + ldr r1, [r1, #0xc] + mov r2, #0x1 + add r0, r5, r0 + add r1, #0x60 + lsl r2, r2, #0x8 + blx sub_020DF438 + mov r0, #0xc + add r1, r4, #0x0 + bl sub_02016A8C + mov r1, #0x1a + mov r0, #0x0 + lsl r1, r1, #0x4 + mov r2, #0xc + bl sub_02002EEC + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + mov r2, #0x1 + mov r3, #0xe + bl sub_0200CB00 + ldr r0, _0206FE70 ; =0x000005A4 + ldr r0, [r5, r0] + ldr r0, [r0, #0xc] + bl sub_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + mov r1, #0x0 + mov r2, #0xa + mov r3, #0xf + bl sub_0200CD68 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r2, [r5, #0x0] + mov r0, #0x14 + mov r1, #0x3 + mov r3, #0x4 + bl sub_0200687C + mov r3, #0x20 + mov r1, #0x4 + str r3, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + mov r0, #0x14 + add r2, r1, #0x0 + bl sub_02006930 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r1, #0xc + str r1, [sp, #0xc] + ldr r2, [r5, #0x0] + mov r0, #0x14 + mov r3, #0x5 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r2, [r5, #0x0] + mov r0, #0x14 + mov r1, #0xe + mov r3, #0x5 + bl sub_020068C8 + mov r0, #0x20 + str r0, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + mov r0, #0x14 + mov r1, #0xd + mov r2, #0x4 + mov r3, #0x0 + bl sub_02006930 + mov r2, #0x99 + lsl r2, r2, #0x2 + mov r3, #0xf9 + add r1, r5, r2 + add r2, #0xc0 + lsl r3, r3, #0x2 + mov r0, #0xc + add r2, r5, r2 + add r3, r5, r3 + bl sub_020724D4 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02017FE4 + mov r0, #0x4 + mov r1, #0x0 + bl sub_02017FE4 + add sp, #0x14 + pop {r4-r5, pc} + .balign 4 +_0206FE6C: .word 0x000004A4 +_0206FE70: .word 0x000005A4 + + thumb_func_start sub_0206FE74 +sub_0206FE74: ; 0x0206FE74 + push {r3-r7, lr} + ldr r1, _0206FF50 ; =0x00000B38 + mov r2, #0xc + add r4, r0, #0x0 + bl sub_02006268 + ldr r2, _0206FF50 ; =0x00000B38 + mov r1, #0x0 + add r6, r0, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + bl sub_0200628C + ldr r1, _0206FF54 ; =0x000005A4 + str r0, [r6, r1] + mov r0, #0xc + bl sub_02016B94 + str r0, [r6, #0x0] + ldr r0, _0206FF54 ; =0x000005A4 + ldr r1, [r6, r0] + add r0, r1, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0206FEBC + ldr r0, [r1, #0x14] + cmp r0, #0x0 + beq _0206FEBC + mov r0, #0xc + bl sub_0206BB5C + ldr r1, _0206FF58 ; =0x00000B34 + str r0, [r6, r1] + b _0206FEC2 +_0206FEBC: + ldr r0, _0206FF58 ; =0x00000B34 + mov r1, #0x0 + str r1, [r6, r0] +_0206FEC2: + ldr r2, _0206FF5C ; =0x00000192 + mov r0, #0x0 + mov r1, #0x1a + mov r3, #0xc + bl sub_0200A86C + ldr r1, _0206FF60 ; =0x0000069C + mov r2, #0x0 + str r0, [r6, r1] + mov r0, #0xf + mov r1, #0xe + mov r3, #0xc + bl sub_0200B870 + ldr r1, _0206FF64 ; =0x00000698 + str r0, [r6, r1] + mov r0, #0xc + bl sub_0200AA80 + mov r1, #0x6a + lsl r1, r1, #0x4 + add r7, r1, #0x0 + str r0, [r6, r1] + mov r4, #0x0 + add r5, r6, #0x0 + add r7, #0x60 +_0206FEF6: + mov r0, #0xb + mov r1, #0xc + bl sub_020219F4 + str r0, [r5, r7] + add r4, r4, #0x1 + add r5, #0x2c + cmp r4, #0x6 + blo _0206FEF6 + mov r0, #0x1 + lsl r0, r0, #0x8 + mov r1, #0xc + bl sub_020219F4 + ldr r1, _0206FF68 ; =0x000006A4 + str r0, [r6, r1] + mov r0, #0x1 + lsl r0, r0, #0x8 + mov r1, #0xc + bl sub_020219F4 + ldr r1, _0206FF6C ; =0x000006A8 + mov r5, #0x0 + str r0, [r6, r1] + add r4, r6, #0x0 + add r7, r1, #0x4 +_0206FF2A: + mov r0, #0x20 + mov r1, #0xc + bl sub_020219F4 + str r0, [r4, r7] + add r5, r5, #0x1 + add r4, r4, #0x4 + cmp r5, #0x13 + blo _0206FF2A + ldr r0, _0206FF54 ; =0x000005A4 + ldr r0, [r6, r0] + add r0, #0x22 + ldrb r1, [r0, #0x0] + ldr r0, _0206FF70 ; =0x00000B25 + strb r1, [r6, r0] + add r0, r0, #0x1 + strb r1, [r6, r0] + add r0, r6, #0x0 + pop {r3-r7, pc} + .balign 4 +_0206FF50: .word 0x00000B38 +_0206FF54: .word 0x000005A4 +_0206FF58: .word 0x00000B34 +_0206FF5C: .word 0x00000192 +_0206FF60: .word 0x0000069C +_0206FF64: .word 0x00000698 +_0206FF68: .word 0x000006A4 +_0206FF6C: .word 0x000006A8 +_0206FF70: .word 0x00000B25 + + thumb_func_start sub_0206FF74 +sub_0206FF74: ; 0x0206FF74 + push {r3-r4} + ldr r2, _0206FFAC ; =0x000005A4 + mov r3, #0x80 + ldr r1, [r0, r2] + add r1, #0x20 + ldrb r1, [r1, #0x0] + tst r1, r3 + beq _0206FF9E + ldr r1, _0206FFB0 ; =0x00000B23 + ldrb r4, [r0, r1] + orr r4, r3 + strb r4, [r0, r1] + ldr r1, [r0, r2] + add r0, r1, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + add r1, #0x20 + eor r0, r3 + strb r0, [r1, #0x0] + pop {r3-r4} + bx lr +_0206FF9E: + ldr r2, _0206FFB0 ; =0x00000B23 + mov r1, #0x80 + ldrb r3, [r0, r2] + bic r3, r1 + strb r3, [r0, r2] + pop {r3-r4} + bx lr + .balign 4 +_0206FFAC: .word 0x000005A4 +_0206FFB0: .word 0x00000B23 + + thumb_func_start sub_0206FFB4 +sub_0206FFB4: ; 0x0206FFB4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02070064 ; =0x000005A4 + mov r4, #0x3 + ldr r1, [r5, r0] + add r0, r1, #0x0 + add r0, #0x21 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0206FFD0 + ldr r1, _02070068 ; =0x020F95CC + ldr r0, _0207006C ; =0x00000808 + str r1, [r5, r0] + b _0206FFEA +_0206FFD0: + add r1, #0x20 + ldrb r0, [r1, #0x0] + cmp r0, #0x2 + beq _0206FFDC + cmp r0, #0x11 + bne _0206FFE4 +_0206FFDC: + ldr r1, _02070070 ; =0x020F960C + ldr r0, _0207006C ; =0x00000808 + str r1, [r5, r0] + b _0206FFEA +_0206FFE4: + ldr r1, _02070074 ; =0x020F958C + ldr r0, _0207006C ; =0x00000808 + str r1, [r5, r0] +_0206FFEA: + ldr r0, _02070064 ; =0x000005A4 + ldr r1, [r5, r0] + add r1, #0x20 + ldrb r1, [r1, #0x0] + cmp r1, #0x2 + beq _0207003C + cmp r1, #0x11 + beq _0207003C + add r0, #0x2c + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 + ldr r0, _02070078 ; =0x000005D4 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_02020130 + ldr r0, _02070078 ; =0x000005D4 + add r1, sp, #0x0 + ldr r0, [r5, r0] + add r1, #0x2 + add r2, sp, #0x0 + bl sub_0200C75C + ldr r0, _02070078 ; =0x000005D4 + add r3, sp, #0x0 + mov r2, #0x0 + ldrsh r2, [r3, r2] + mov r1, #0x2 + ldrsh r1, [r3, r1] + sub r2, #0x8 + lsl r2, r2, #0x10 + ldr r0, [r5, r0] + asr r2, r2, #0x10 + bl sub_0200C6E4 + mov r0, #0x1 + eor r0, r4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_0207003C: + ldr r0, _02070064 ; =0x000005A4 + ldr r1, [r5, r0] + add r1, #0x20 + ldrb r1, [r1, #0x0] + cmp r1, #0x4 + bne _0207005A + add r0, #0x30 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 + mov r0, #0x2 + eor r0, r4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_0207005A: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073094 + pop {r3-r5, pc} + .balign 4 +_02070064: .word 0x000005A4 +_02070068: .word 0x020F95CC +_0207006C: .word 0x00000808 +_02070070: .word 0x020F960C +_02070074: .word 0x020F958C +_02070078: .word 0x000005D4 + + thumb_func_start sub_0207007C +sub_0207007C: ; 0x0207007C + mov r2, #0x2c + mul r2, r1 + add r1, r0, r2 + ldr r0, _02070088 ; =0x00000729 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_02070088: .word 0x00000729 + + thumb_func_start sub_0207008C +sub_0207008C: ; 0x0207008C + push {r4-r7, lr} + sub sp, #0xc + str r1, [sp, #0x0] + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + mov r1, #0x2c + add r4, r0, #0x0 + ldr r0, _020701D8 ; =0x00000729 + mul r4, r1 + add r0, r5, r0 + mov r1, #0x0 + str r0, [sp, #0x8] + strb r1, [r0, r4] + ldr r0, _020701DC ; =0x000005A4 + ldr r0, [r5, r0] + ldr r0, [r0, #0x0] + bl sub_0206B9AC + ldr r1, [sp, #0x0] + cmp r0, r1 + bgt _020700BC + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_020700BC: + ldr r0, _020701DC ; =0x000005A4 + ldr r0, [r5, r0] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + add r7, r0, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + bne _020700DE + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_020700DE: + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02072A00 + ldr r0, [sp, #0x0] + mov r1, #0x2c + add r6, r0, #0x0 + mul r6, r1 + ldr r1, _020701E0 ; =0x00000704 + ldr r0, [sp, #0x4] + add r2, r5, r6 + strh r0, [r2, r1] + add r0, r7, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020701E4 ; =0x00000706 + add r2, r5, r6 + strh r0, [r2, r1] + add r0, r7, #0x0 + mov r1, #0xa3 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020701E8 ; =0x00000708 + add r2, r5, r6 + strh r0, [r2, r1] + add r0, r7, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020701EC ; =0x0000070A + add r2, r5, r6 + strh r0, [r2, r1] + add r0, r7, #0x0 + mov r1, #0x6 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020701F0 ; =0x0000070C + add r2, r5, r6 + strh r0, [r2, r1] + add r0, r7, #0x0 + mov r1, #0xa1 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020701F4 ; =0x00000712 + add r2, r5, r6 + strh r0, [r2, r1] + add r0, r7, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + mov r1, #0x71 + add r2, r5, r6 + lsl r1, r1, #0x4 + strb r0, [r2, r1] + add r0, r7, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020701F8 ; =0x00000711 + add r2, r5, r6 + strb r0, [r2, r1] + add r0, r7, #0x0 + mov r1, #0xaf + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x1 + ldr r0, _020701FC ; =0x0000070E + bne _02070184 + add r2, r5, r0 + ldrh r1, [r2, r4] + ldr r0, _02070200 ; =0xFFFFEFFF + and r0, r1 + b _0207018E +_02070184: + add r2, r5, r0 + ldrh r1, [r2, r4] + mov r0, #0x1 + lsl r0, r0, #0xc + orr r0, r1 +_0207018E: + strh r0, [r2, r4] + ldr r0, _020701FC ; =0x0000070E + add r6, r5, r0 + add r0, r7, #0x0 + bl sub_020689E0 + lsl r0, r0, #0x1e + ldrh r2, [r6, r4] + ldr r1, _02070204 ; =0xFFFF9FFF + lsr r0, r0, #0x11 + and r1, r2 + orr r0, r1 + strh r0, [r6, r4] + ldr r0, [sp, #0x8] + mov r1, #0x1 + strb r1, [r0, r4] + add r0, r7, #0x0 + bl sub_0207C2D4 + lsl r0, r0, #0x18 + ldrh r1, [r6, r4] + ldr r2, _02070208 ; =0xFFFFF000 + lsr r0, r0, #0x18 + and r1, r2 + lsr r2, r2, #0x14 + and r0, r2 + orr r0, r1 + strh r0, [r6, r4] + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_0207020C + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + nop +_020701D8: .word 0x00000729 +_020701DC: .word 0x000005A4 +_020701E0: .word 0x00000704 +_020701E4: .word 0x00000706 +_020701E8: .word 0x00000708 +_020701EC: .word 0x0000070A +_020701F0: .word 0x0000070C +_020701F4: .word 0x00000712 +_020701F8: .word 0x00000711 +_020701FC: .word 0x0000070E +_02070200: .word 0xFFFFEFFF +_02070204: .word 0xFFFF9FFF +_02070208: .word 0xFFFFF000 + + thumb_func_start sub_0207020C +sub_0207020C: ; 0x0207020C + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _0207029C ; =0x000005A4 + add r5, r1, #0x0 + ldr r1, [r7, r0] + add r0, r1, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0xd + bne _0207029A + mov r0, #0x2c + add r6, r2, #0x0 + mul r6, r0 + mov r0, #0x71 + add r3, r7, r6 + lsl r0, r0, #0x4 + ldrb r2, [r3, r0] + cmp r2, #0x1 + beq _0207023A + sub r0, #0xa + ldrh r0, [r3, r0] + cmp r0, #0x0 + bne _02070248 +_0207023A: + ldr r0, _020702A0 ; =0x0000070E + add r2, r7, r0 + ldrh r1, [r2, r6] + ldr r0, _020702A4 ; =0xFFFF7FFF + and r0, r1 + strh r0, [r2, r6] + pop {r3-r7, pc} +_02070248: + add r1, #0x2a + ldrb r1, [r1, #0x0] + add r0, r5, #0x0 + bl sub_020702A8 + str r0, [sp, #0x0] + mov r4, #0x0 +_02070256: + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _0207026C + add r4, r4, #0x1 + cmp r4, #0x4 + blo _02070256 +_0207026C: + ldr r0, _0207029C ; =0x000005A4 + ldr r0, [r7, r0] + add r0, #0x2b + ldrb r1, [r0, #0x0] + ldr r0, [sp, #0x0] + cmp r1, r0 + bhi _0207028E + cmp r4, #0x2 + blo _0207028E + ldr r0, _020702A0 ; =0x0000070E + add r2, r7, r0 + ldrh r1, [r2, r6] + mov r0, #0x2 + lsl r0, r0, #0xe + orr r0, r1 + strh r0, [r2, r6] + pop {r3-r7, pc} +_0207028E: + ldr r0, _020702A0 ; =0x0000070E + add r2, r7, r0 + ldrh r1, [r2, r6] + ldr r0, _020702A4 ; =0xFFFF7FFF + and r0, r1 + strh r0, [r2, r6] +_0207029A: + pop {r3-r7, pc} + .balign 4 +_0207029C: .word 0x000005A4 +_020702A0: .word 0x0000070E +_020702A4: .word 0xFFFF7FFF + + thumb_func_start sub_020702A8 +sub_020702A8: ; 0x020702A8 + push {r3-r5, lr} + add r5, r0, #0x0 + cmp r1, #0x4 + bls _020702B2 + b _020703B6 +_020702B2: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0 + lsl r0, r7, #0 + lsl r0, r5, #0x1 + lsl r0, r3, #0x2 + lsl r0, r1, #0x3 + mov r1, #0x7a + mov r2, #0x0 + bl sub_020671BC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x7b + mov r2, #0x0 + bl sub_020671BC + add r4, r4, r0 + add r0, r5, #0x0 + mov r1, #0x7c + mov r2, #0x0 + bl sub_020671BC + add r4, r4, r0 + add r0, r5, #0x0 + mov r1, #0x7d + mov r2, #0x0 + bl sub_020671BC + add r4, r4, r0 + b _020703B6 +_020702F8: + .byte 0x7E, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x5E, 0xFF + .byte 0x04, 0x1C, 0x28, 0x1C, 0x7F, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x58, 0xFF, 0x24, 0x18, 0x28, 0x1C + .byte 0x80, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x52, 0xFF, 0x24, 0x18, 0x28, 0x1C, 0x81, 0x21, 0x00, 0x22 + .byte 0xF6, 0xF7, 0x4C, 0xFF, 0x24, 0x18, 0x46, 0xE0, 0x82, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x46, 0xFF + .byte 0x04, 0x1C, 0x28, 0x1C, 0x83, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x40, 0xFF, 0x24, 0x18, 0x28, 0x1C + .byte 0x84, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x3A, 0xFF, 0x24, 0x18, 0x28, 0x1C, 0x85, 0x21, 0x00, 0x22 + .byte 0xF6, 0xF7, 0x34, 0xFF, 0x24, 0x18, 0x2E, 0xE0, 0x86, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x2E, 0xFF + .byte 0x04, 0x1C, 0x28, 0x1C, 0x87, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x28, 0xFF, 0x24, 0x18, 0x28, 0x1C + .byte 0x88, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x22, 0xFF, 0x24, 0x18, 0x28, 0x1C, 0x89, 0x21, 0x00, 0x22 + .byte 0xF6, 0xF7, 0x1C, 0xFF, 0x24, 0x18, 0x16, 0xE0, 0x8A, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x16, 0xFF + .byte 0x04, 0x1C, 0x28, 0x1C, 0x8B, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x10, 0xFF, 0x24, 0x18, 0x28, 0x1C + .byte 0x8C, 0x21, 0x00, 0x22, 0xF6, 0xF7, 0x0A, 0xFF, 0x24, 0x18, 0x28, 0x1C, 0x8D, 0x21, 0x00, 0x22 + .byte 0xF6, 0xF7, 0x04, 0xFF, 0x24, 0x18 +_020703B6: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020703BC +sub_020703BC: ; 0x020703BC + mov r1, #0x39 + lsl r1, r1, #0x4 + add r0, r0, r1 + bx lr + + thumb_func_start sub_020703C4 +sub_020703C4: ; 0x020703C4 + push {r4-r7, lr} + sub sp, #0x1c + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r4, #0x0 + beq _020703E4 + ldr r0, _02070474 ; =0x000005A4 + ldr r0, [r5, r0] + add r0, #0x21 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _020703EC + cmp r4, #0x1 + bne _020703EC +_020703E4: + mov r0, #0x99 + lsl r0, r0, #0x2 + add r0, r5, r0 + b _020703F2 +_020703EC: + mov r0, #0xc9 + lsl r0, r0, #0x2 + add r0, r5, r0 +_020703F2: + mov r1, #0x2c + mul r1, r4 + ldr r2, _02070478 ; =0x00000714 + add r1, r5, r1 + strb r6, [r1, r2] + add r2, r2, #0x1 + strb r7, [r1, r2] + mov r2, #0x10 + str r2, [sp, #0x0] + mov r1, #0x6 + str r1, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + str r2, [sp, #0x14] + str r1, [sp, #0x18] + ldr r0, [r5, #0x0] + mov r1, #0x2 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl sub_02018170 + add r0, sp, #0x20 + ldrb r0, [r0, #0x10] + cmp r0, #0x0 + bne _0207044C + add r0, r7, #0x3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x9 + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + mov r0, #0x10 + add r3, r6, #0x6 + str r0, [sp, #0xc] + lsl r3, r3, #0x18 + ldr r0, [r5, #0x0] + mov r1, #0x2 + mov r2, #0x17 + lsr r3, r3, #0x18 + bl sub_02018540 +_0207044C: + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x6 + str r0, [sp, #0x4] + add r0, r4, #0x3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + ldr r0, [r5, #0x0] + mov r1, #0x2 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl sub_020186B4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020709FC + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 +_02070474: .word 0x000005A4 +_02070478: .word 0x00000714 + + thumb_func_start sub_0207047C +sub_0207047C: ; 0x0207047C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020704E4 ; =0x000005A4 + ldr r2, [r4, r0] + add r0, r2, #0x0 + add r0, #0x21 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _02070492 + ldr r1, _020704E8 ; =0x020F9694 + b _02070494 +_02070492: + ldr r1, _020704EC ; =0x020F964C +_02070494: + add r2, #0x20 + ldrb r0, [r2, #0x0] + cmp r0, #0x10 + bne _020704A4 + add r0, r4, #0x0 + bl sub_02070600 + b _020704D2 +_020704A4: + cmp r0, #0x6 + bne _020704B0 + add r0, r4, #0x0 + bl sub_020706E0 + b _020704D2 +_020704B0: + cmp r0, #0xd + bne _020704BC + add r0, r4, #0x0 + bl sub_020707C0 + b _020704D2 +_020704BC: + cmp r0, #0x2 + beq _020704C4 + cmp r0, #0x11 + bne _020704CC +_020704C4: + add r0, r4, #0x0 + bl sub_020708A0 + b _020704D2 +_020704CC: + add r0, r4, #0x0 + bl sub_020704F0 +_020704D2: + ldr r0, [r4, #0x0] + mov r1, #0x2 + bl sub_0201AC68 + ldr r0, [r4, #0x0] + mov r1, #0x4 + bl sub_0201AC68 + pop {r4, pc} + .balign 4 +_020704E4: .word 0x000005A4 +_020704E8: .word 0x020F9694 +_020704EC: .word 0x020F964C + + thumb_func_start sub_020704F0 +sub_020704F0: ; 0x020704F0 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r4, #0x0 +_020704FA: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0207008C + cmp r0, #0x1 + bne _020705D4 + mov r0, #0x2c + mul r0, r4 + add r1, r5, r0 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + str r1, [sp, #0x4] + cmp r0, #0x1 + bne _0207053A + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + mov r0, #0x0 + str r0, [sp, #0x0] + add r3, r6, r2 + ldrh r2, [r6, r2] + ldrh r3, [r3, #0x2] + add r0, r5, #0x0 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r1, r4, #0x0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_020703C4 + b _0207055A +_0207053A: + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + mov r0, #0x1 + str r0, [sp, #0x0] + add r3, r6, r2 + ldrh r2, [r6, r2] + ldrh r3, [r3, #0x2] + add r0, r5, #0x0 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r1, r4, #0x0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_020703C4 +_0207055A: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072D1C + mov r0, #0xc + mul r0, r4 + add r7, r6, r0 + ldrh r2, [r7, #0x4] + ldrh r3, [r7, #0x6] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020737D0 + ldrh r2, [r7, #0x8] + ldrh r3, [r7, #0xa] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020739E4 + ldr r3, [sp, #0x4] + ldr r2, _020705F8 ; =0x0000070C + add r0, r5, #0x0 + ldrh r2, [r3, r2] + add r1, r4, #0x0 + bl sub_02073A78 + mov r2, #0x4 + mov r3, #0x6 + ldrsh r2, [r7, r2] + ldrsh r3, [r7, r3] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073AD8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073B3C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073B0C + mov r2, #0x2c + mul r2, r4 + add r3, r5, r2 + ldr r2, _020705FC ; =0x0000070E + add r0, r5, #0x0 + ldrh r2, [r3, r2] + add r1, r4, #0x0 + lsl r2, r2, #0x14 + lsr r2, r2, #0x14 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_02073A4C + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020717E8 + b _020705EA +_020705D4: + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + add r7, r6, r2 + mov r3, #0x2 + ldrsh r2, [r6, r2] + ldrsh r3, [r7, r3] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02070988 +_020705EA: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x6 + blo _020704FA + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020705F8: .word 0x0000070C +_020705FC: .word 0x0000070E + + thumb_func_start sub_02070600 +sub_02070600: ; 0x02070600 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + str r1, [sp, #0x4] + mov r4, #0x0 +_0207060A: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0207008C + cmp r0, #0x1 + bne _020706B0 + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + ldr r0, [sp, #0x4] + ldr r3, [sp, #0x4] + add r6, r0, r2 + mov r0, #0x0 + str r0, [sp, #0x0] + ldrh r2, [r3, r2] + ldrh r3, [r6, #0x2] + add r0, r5, #0x0 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r1, r4, #0x0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_020703C4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072E4C + ldrh r2, [r6, #0x4] + ldrh r3, [r6, #0x6] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020737D0 + ldrh r2, [r6, #0x8] + ldrh r3, [r6, #0xa] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020739E4 + mov r0, #0x2c + add r7, r4, #0x0 + mul r7, r0 + ldr r2, _020706D8 ; =0x0000070C + add r3, r5, r7 + ldrh r2, [r3, r2] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073A78 + mov r2, #0x4 + mov r3, #0x6 + ldrsh r2, [r6, r2] + ldrsh r3, [r6, r3] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073AD8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073B3C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073B0C + ldr r2, _020706DC ; =0x0000070E + add r3, r5, r7 + ldrh r2, [r3, r2] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x14 + lsr r2, r2, #0x14 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_02073A4C + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020717E8 + b _020706CA +_020706B0: + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + ldr r0, [sp, #0x4] + ldr r6, [sp, #0x4] + add r3, r0, r2 + ldrsh r2, [r6, r2] + mov r6, #0x2 + ldrsh r3, [r3, r6] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02070988 +_020706CA: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x6 + blo _0207060A + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020706D8: .word 0x0000070C +_020706DC: .word 0x0000070E + + thumb_func_start sub_020706E0 +sub_020706E0: ; 0x020706E0 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + str r1, [sp, #0x4] + mov r4, #0x0 +_020706EA: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0207008C + cmp r0, #0x1 + bne _02070790 + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + ldr r0, [sp, #0x4] + ldr r3, [sp, #0x4] + add r6, r0, r2 + mov r0, #0x0 + str r0, [sp, #0x0] + ldrh r2, [r3, r2] + ldrh r3, [r6, #0x2] + add r0, r5, #0x0 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r1, r4, #0x0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_020703C4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072EE4 + ldrh r2, [r6, #0x4] + ldrh r3, [r6, #0x6] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020737D0 + ldrh r2, [r6, #0x8] + ldrh r3, [r6, #0xa] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020739E4 + mov r0, #0x2c + add r7, r4, #0x0 + mul r7, r0 + ldr r2, _020707B8 ; =0x0000070C + add r3, r5, r7 + ldrh r2, [r3, r2] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073A78 + mov r2, #0x4 + mov r3, #0x6 + ldrsh r2, [r6, r2] + ldrsh r3, [r6, r3] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073AD8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073B3C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073B0C + ldr r2, _020707BC ; =0x0000070E + add r3, r5, r7 + ldrh r2, [r3, r2] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x14 + lsr r2, r2, #0x14 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_02073A4C + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020717E8 + b _020707AA +_02070790: + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + ldr r0, [sp, #0x4] + ldr r6, [sp, #0x4] + add r3, r0, r2 + ldrsh r2, [r6, r2] + mov r6, #0x2 + ldrsh r3, [r3, r6] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02070988 +_020707AA: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x6 + blo _020706EA + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020707B8: .word 0x0000070C +_020707BC: .word 0x0000070E + + thumb_func_start sub_020707C0 +sub_020707C0: ; 0x020707C0 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + str r1, [sp, #0x4] + mov r4, #0x0 +_020707CA: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0207008C + cmp r0, #0x1 + bne _02070870 + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + ldr r0, [sp, #0x4] + ldr r3, [sp, #0x4] + add r6, r0, r2 + mov r0, #0x0 + str r0, [sp, #0x0] + ldrh r2, [r3, r2] + ldrh r3, [r6, #0x2] + add r0, r5, #0x0 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r1, r4, #0x0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_020703C4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072F78 + ldrh r2, [r6, #0x4] + ldrh r3, [r6, #0x6] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020737D0 + ldrh r2, [r6, #0x8] + ldrh r3, [r6, #0xa] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020739E4 + mov r0, #0x2c + add r7, r4, #0x0 + mul r7, r0 + ldr r2, _02070898 ; =0x0000070C + add r3, r5, r7 + ldrh r2, [r3, r2] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073A78 + mov r2, #0x4 + mov r3, #0x6 + ldrsh r2, [r6, r2] + ldrsh r3, [r6, r3] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073AD8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073B3C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073B0C + ldr r2, _0207089C ; =0x0000070E + add r3, r5, r7 + ldrh r2, [r3, r2] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x14 + lsr r2, r2, #0x14 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_02073A4C + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020717E8 + b _0207088A +_02070870: + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + ldr r0, [sp, #0x4] + ldr r6, [sp, #0x4] + add r3, r0, r2 + ldrsh r2, [r6, r2] + mov r6, #0x2 + ldrsh r3, [r3, r6] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02070988 +_0207088A: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x6 + blo _020707CA + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02070898: .word 0x0000070C +_0207089C: .word 0x0000070E + + thumb_func_start sub_020708A0 +sub_020708A0: ; 0x020708A0 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + str r1, [sp, #0x4] + mov r4, #0x0 +_020708AA: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0207008C + cmp r0, #0x1 + bne _02070958 + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + ldr r0, [sp, #0x4] + ldr r3, [sp, #0x4] + add r6, r0, r2 + mov r0, #0x0 + str r0, [sp, #0x0] + ldrh r2, [r3, r2] + ldrh r3, [r6, #0x2] + add r0, r5, #0x0 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r1, r4, #0x0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_020703C4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072FDC + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073024 + ldrh r2, [r6, #0x4] + ldrh r3, [r6, #0x6] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020737D0 + ldrh r2, [r6, #0x8] + ldrh r3, [r6, #0xa] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020739E4 + mov r0, #0x2c + add r7, r4, #0x0 + mul r7, r0 + ldr r2, _02070980 ; =0x0000070C + add r3, r5, r7 + ldrh r2, [r3, r2] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073A78 + mov r2, #0x4 + mov r3, #0x6 + ldrsh r2, [r6, r2] + ldrsh r3, [r6, r3] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073AD8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073B3C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073B0C + ldr r2, _02070984 ; =0x0000070E + add r3, r5, r7 + ldrh r2, [r3, r2] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x14 + lsr r2, r2, #0x14 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_02073A4C + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020717E8 + b _02070972 +_02070958: + mov r0, #0xc + add r2, r4, #0x0 + mul r2, r0 + ldr r0, [sp, #0x4] + ldr r6, [sp, #0x4] + add r3, r0, r2 + ldrsh r2, [r6, r2] + mov r6, #0x2 + ldrsh r3, [r3, r6] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02070988 +_02070972: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x6 + blo _020708AA + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02070980: .word 0x0000070C +_02070984: .word 0x0000070E + + thumb_func_start sub_02070988 +sub_02070988: ; 0x02070988 + push {r4-r7, lr} + sub sp, #0x1c + add r7, r1, #0x0 + add r4, r2, #0x0 + mov r1, #0x10 + mov r2, #0xf9 + add r5, r0, #0x0 + lsl r2, r2, #0x2 + add r6, r3, #0x0 + lsl r3, r6, #0x18 + str r1, [sp, #0x0] + mov r0, #0x6 + str r0, [sp, #0x4] + add r2, r5, r2 + str r2, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + str r2, [sp, #0x10] + str r1, [sp, #0x14] + str r0, [sp, #0x18] + lsl r2, r4, #0x18 + ldr r0, [r5, #0x0] + mov r1, #0x2 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_02018170 + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x6 + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + lsl r2, r4, #0x18 + lsl r3, r6, #0x18 + ldr r0, [r5, #0x0] + mov r1, #0x2 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_020186B4 + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x7 + bl sub_02073A4C + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_02073A78 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02073B3C + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_020709FC +sub_020709FC: ; 0x020709FC + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _02070A78 ; =0x000005A4 + add r6, r1, #0x0 + ldr r0, [r5, r0] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + ldr r1, _02070A7C ; =0x00000B23 + ldrb r2, [r5, r1] + lsl r3, r2, #0x19 + lsr r3, r3, #0x1f + cmp r3, #0x1 + bne _02070A2C + add r1, r1, #0x2 + ldrb r1, [r5, r1] + cmp r6, r1 + beq _02070A28 + lsl r1, r2, #0x1a + lsr r1, r1, #0x1a + cmp r6, r1 + bne _02070A2C +_02070A28: + mov r4, #0x7 + b _02070A60 +_02070A2C: + ldr r1, _02070A80 ; =0x00000B25 + ldrb r1, [r5, r1] + cmp r6, r1 + bne _02070A38 + mov r4, #0x4 + b _02070A3A +_02070A38: + mov r4, #0x0 +_02070A3A: + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _02070A4E + add r0, r4, #0x2 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + b _02070A60 +_02070A4E: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02070A88 + cmp r0, #0x1 + bne _02070A60 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_02070A60: + ldr r1, _02070A84 ; =0x000004A4 + add r3, r6, #0x3 + add r2, r5, r1 + lsl r1, r4, #0x5 + lsl r3, r3, #0x15 + add r1, r2, r1 + mov r0, #0x2 + mov r2, #0x10 + lsr r3, r3, #0x10 + bl sub_02017FB4 + pop {r4-r6, pc} + .balign 4 +_02070A78: .word 0x000005A4 +_02070A7C: .word 0x00000B23 +_02070A80: .word 0x00000B25 +_02070A84: .word 0x000004A4 + + thumb_func_start sub_02070A88 +sub_02070A88: ; 0x02070A88 + ldr r2, _02070AA0 ; =0x000005A4 + ldr r0, [r0, r2] + add r0, #0x21 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _02070A9A + mov r0, #0x1 + tst r1, r0 + bne _02070A9C +_02070A9A: + mov r0, #0x0 +_02070A9C: + bx lr + nop +_02070AA0: .word 0x000005A4 + + thumb_func_start sub_02070AA4 +sub_02070AA4: ; 0x02070AA4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + mov r3, #0x0 + ldr r0, _02070AF4 ; =0x00000B25 + str r3, [sp, #0x0] + ldrb r0, [r4, r0] + add r1, sp, #0xc + add r1, #0x1 + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + ldr r0, _02070AF8 ; =0x00000808 + add r2, sp, #0xc + ldr r0, [r4, r0] + bl sub_0201C638 + ldr r0, _02070AFC ; =0x000005A4 + ldr r1, _02070AF4 ; =0x00000B25 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + add r0, #0x21 + ldrb r0, [r0, #0x0] + bl sub_020714BC + add r1, r0, #0x0 + ldr r0, _02070B00 ; =0x000005C8 + ldr r0, [r4, r0] + bl sub_02020130 + ldr r0, _02070B00 ; =0x000005C8 + add r2, sp, #0xc + ldrb r1, [r2, #0x1] + ldrb r2, [r2, #0x0] + ldr r0, [r4, r0] + bl sub_0200C6E4 + add sp, #0x10 + pop {r4, pc} + nop +_02070AF4: .word 0x00000B25 +_02070AF8: .word 0x00000808 +_02070AFC: .word 0x000005A4 +_02070B00: .word 0x000005C8 + + thumb_func_start sub_02070B04 +sub_02070B04: ; 0x02070B04 + push {r4, lr} + add r4, r0, #0x0 + bl sub_02070B28 + cmp r0, #0x1 + bne _02070B14 + mov r0, #0x1 + pop {r4, pc} +_02070B14: + add r0, r4, #0x0 + bl sub_02070D90 + cmp r0, #0x1 + bne _02070B22 + mov r0, #0x2 + pop {r4, pc} +_02070B22: + mov r0, #0x5 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02070B28 +sub_02070B28: ; 0x02070B28 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + ldr r0, _02070CC0 ; =0x021C48B8 + mov r1, #0x40 + ldr r0, [r0, #0x4c] + mov r3, #0x4 + tst r1, r0 + beq _02070B3E + mov r3, #0x0 + b _02070B5A +_02070B3E: + mov r1, #0x80 + tst r1, r0 + beq _02070B48 + mov r3, #0x1 + b _02070B5A +_02070B48: + mov r1, #0x20 + tst r1, r0 + beq _02070B52 + mov r3, #0x2 + b _02070B5A +_02070B52: + mov r1, #0x10 + tst r0, r1 + beq _02070B5A + mov r3, #0x3 +_02070B5A: + cmp r3, #0x4 + bne _02070B64 + add sp, #0x4 + mov r0, #0x0 + pop {r3-r6, pc} +_02070B64: + ldr r4, _02070CC4 ; =0x00000B25 + ldrb r0, [r5, r4] + cmp r0, #0x6 + bne _02070BA0 + cmp r3, #0x0 + add r1, sp, #0x0 + bne _02070B92 + add r4, r4, #0x1 + ldrb r6, [r5, r4] + mov r4, #0x1 + ldr r3, _02070CC8 ; =0x020F9468 + and r4, r6 + add r6, r4, #0x2 + mov r4, #0x6 + mul r4, r6 + add r0, r5, #0x0 + add r1, #0x1 + add r2, sp, #0x0 + add r3, r3, r4 + bl sub_02070D2C + add r6, r0, #0x0 + b _02070C1A +_02070B92: + add r0, r5, #0x0 + add r1, #0x1 + add r2, sp, #0x0 + bl sub_02070CDC + add r6, r0, #0x0 + b _02070C1A +_02070BA0: + cmp r0, #0x7 + bne _02070C0C + ldr r0, _02070CCC ; =0x000005A4 + ldr r0, [r5, r0] + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + beq _02070BDA + cmp r0, #0x11 + beq _02070BDA + cmp r3, #0x0 + bne _02070BDA + add r4, r4, #0x1 + ldrb r6, [r5, r4] + mov r4, #0x1 + add r1, sp, #0x0 + and r4, r6 + add r6, r4, #0x2 + mov r4, #0x6 + ldr r3, _02070CC8 ; =0x020F9468 + mul r4, r6 + add r0, r5, #0x0 + add r1, #0x1 + add r2, sp, #0x0 + add r3, r3, r4 + bl sub_02070D2C + add r6, r0, #0x0 + b _02070C1A +_02070BDA: + cmp r3, #0x1 + add r1, sp, #0x0 + bne _02070BFE + ldr r4, _02070CD0 ; =0x00000B26 + ldr r3, _02070CC8 ; =0x020F9468 + ldrb r6, [r5, r4] + mov r4, #0x1 + add r0, r5, #0x0 + and r6, r4 + mov r4, #0x6 + mul r4, r6 + add r1, #0x1 + add r2, sp, #0x0 + add r3, r3, r4 + bl sub_02070D2C + add r6, r0, #0x0 + b _02070C1A +_02070BFE: + add r0, r5, #0x0 + add r1, #0x1 + add r2, sp, #0x0 + bl sub_02070CDC + add r6, r0, #0x0 + b _02070C1A +_02070C0C: + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x1 + add r2, sp, #0x0 + bl sub_02070CDC + add r6, r0, #0x0 +_02070C1A: + ldr r0, _02070CC4 ; =0x00000B25 + ldrb r0, [r5, r0] + cmp r6, r0 + beq _02070CB8 + cmp r6, #0xff + beq _02070CB8 + add r0, r6, #0x0 + add r0, #0xfa + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bhi _02070C3E + ldr r0, _02070CD4 ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + b _02070C6E +_02070C3E: + ldr r0, _02070CCC ; =0x000005A4 + add r1, r6, #0x0 + ldr r0, [r5, r0] + add r0, #0x21 + ldrb r0, [r0, #0x0] + bl sub_020714BC + add r1, r0, #0x0 + ldr r0, _02070CD4 ; =0x000005C8 + ldr r0, [r5, r0] + bl sub_02020130 + ldr r0, _02070CD4 ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _02070CD4 ; =0x000005C8 + add r2, sp, #0x0 + ldrb r1, [r2, #0x1] + ldrb r2, [r2, #0x0] + ldr r0, [r5, r0] + bl sub_0200C6E4 +_02070C6E: + ldr r0, _02070CC4 ; =0x00000B25 + mov r2, #0x0 + ldrb r4, [r5, r0] + strb r6, [r5, r0] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020713EC + ldr r1, _02070CC4 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + mov r2, #0x1 + bl sub_020713EC + ldr r0, _02070CD8 ; =0x000005DC + bl sub_020054C8 + cmp r4, #0x6 + bhs _02070CA6 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020717E8 + ldr r0, [r5, #0x0] + mov r1, #0x4 + bl sub_0201AC68 +_02070CA6: + cmp r4, #0x6 + beq _02070CB2 + cmp r4, #0x7 + beq _02070CB2 + ldr r0, _02070CD0 ; =0x00000B26 + strb r4, [r5, r0] +_02070CB2: + add sp, #0x4 + mov r0, #0x1 + pop {r3-r6, pc} +_02070CB8: + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + nop +_02070CC0: .word 0x021C48B8 +_02070CC4: .word 0x00000B25 +_02070CC8: .word 0x020F9468 +_02070CCC: .word 0x000005A4 +_02070CD0: .word 0x00000B26 +_02070CD4: .word 0x000005C8 +_02070CD8: .word 0x000005DC + + thumb_func_start sub_02070CDC +sub_02070CDC: ; 0x02070CDC + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r0, _02070D24 ; =0x00000B25 + add r7, r1, #0x0 + ldrb r4, [r5, r0] + str r2, [sp, #0xc] + add r6, r3, #0x0 +_02070CEC: + mov r0, #0x0 + str r0, [sp, #0x0] + str r4, [sp, #0x4] + ldr r0, _02070D28 ; =0x00000808 + str r6, [sp, #0x8] + ldr r0, [r5, r0] + ldr r2, [sp, #0xc] + add r1, r7, #0x0 + mov r3, #0x0 + bl sub_0201C638 + add r4, r0, #0x0 + cmp r4, #0x6 + beq _02070D1C + cmp r4, #0x7 + beq _02070D1C + cmp r4, #0xff + beq _02070D1C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0207007C + cmp r0, #0x0 + beq _02070CEC +_02070D1C: + add r0, r4, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + nop +_02070D24: .word 0x00000B25 +_02070D28: .word 0x00000808 + + thumb_func_start sub_02070D2C +sub_02070D2C: ; 0x02070D2C + push {r3-r7, lr} + sub sp, #0x10 + add r6, r0, #0x0 + add r7, r1, #0x0 + str r2, [sp, #0xc] + add r5, r3, #0x0 + mov r4, #0x0 +_02070D3A: + cmp r4, #0x6 + beq _02070D70 + ldrb r1, [r5, r4] + add r0, r6, #0x0 + bl sub_0207007C + cmp r0, #0x0 + beq _02070D68 + mov r3, #0x0 + str r3, [sp, #0x0] + ldrb r0, [r5, r4] + ldr r2, [sp, #0xc] + add r1, r7, #0x0 + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + ldr r0, _02070D8C ; =0x00000808 + ldr r0, [r6, r0] + bl sub_0201C638 + add sp, #0x10 + ldrb r0, [r5, r4] + pop {r3-r7, pc} +_02070D68: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + b _02070D3A +_02070D70: + mov r3, #0x0 + str r3, [sp, #0x0] + str r3, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + ldr r0, _02070D8C ; =0x00000808 + ldr r2, [sp, #0xc] + ldr r0, [r6, r0] + add r1, r7, #0x0 + bl sub_0201C638 + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02070D8C: .word 0x00000808 + + thumb_func_start sub_02070D90 +sub_02070D90: ; 0x02070D90 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + bl sub_02071870 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02070E42 + ldr r1, _02070E48 ; =0x00000B25 + mov r2, #0x0 + ldrb r4, [r5, r1] + strb r0, [r5, r1] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020713EC + ldr r1, _02070E48 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + mov r2, #0x1 + bl sub_020713EC + cmp r4, #0x6 + bhs _02070DCC + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020717E8 +_02070DCC: + mov r3, #0x0 + ldr r0, _02070E48 ; =0x00000B25 + str r3, [sp, #0x0] + ldrb r0, [r5, r0] + add r1, sp, #0xc + add r1, #0x1 + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + ldr r0, _02070E4C ; =0x00000808 + add r2, sp, #0xc + ldr r0, [r5, r0] + bl sub_0201C638 + ldr r0, _02070E50 ; =0x000005A4 + ldr r1, _02070E48 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + add r0, #0x21 + ldrb r0, [r0, #0x0] + bl sub_020714BC + add r1, r0, #0x0 + ldr r0, _02070E54 ; =0x000005C8 + ldr r0, [r5, r0] + bl sub_02020130 + ldr r0, _02070E54 ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _02070E54 ; =0x000005C8 + add r2, sp, #0xc + ldrb r1, [r2, #0x1] + ldrb r2, [r2, #0x0] + ldr r0, [r5, r0] + bl sub_0200C6E4 + mov r0, #0xb2 + mov r1, #0x1 + lsl r0, r0, #0x4 + strb r1, [r5, r0] + add r1, r0, #0x5 + ldrb r1, [r5, r1] + add r0, r0, #0x1 + strb r1, [r5, r0] + ldr r0, _02070E58 ; =0x000005E4 + bl sub_020054C8 + cmp r4, #0x6 + beq _02070E3C + cmp r4, #0x7 + beq _02070E3C + ldr r0, _02070E5C ; =0x00000B26 + strb r4, [r5, r0] +_02070E3C: + add sp, #0x10 + mov r0, #0x1 + pop {r3-r5, pc} +_02070E42: + mov r0, #0x0 + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 +_02070E48: .word 0x00000B25 +_02070E4C: .word 0x00000808 +_02070E50: .word 0x000005A4 +_02070E54: .word 0x000005C8 +_02070E58: .word 0x000005E4 +_02070E5C: .word 0x00000B26 + + thumb_func_start sub_02070E60 +sub_02070E60: ; 0x02070E60 + push {r4-r6, lr} + sub sp, #0x10 + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + add r0, #0xfa + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bhi _02070E80 + ldr r0, _02070F04 ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + b _02070ECC +_02070E80: + mov r3, #0x0 + ldr r0, _02070F08 ; =0x00000B25 + str r3, [sp, #0x0] + ldrb r0, [r5, r0] + add r1, sp, #0xc + add r1, #0x1 + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + ldr r0, _02070F0C ; =0x00000808 + add r2, sp, #0xc + ldr r0, [r5, r0] + bl sub_0201C638 + ldr r0, _02070F10 ; =0x000005A4 + add r1, r6, #0x0 + ldr r0, [r5, r0] + add r0, #0x21 + ldrb r0, [r0, #0x0] + bl sub_020714BC + add r1, r0, #0x0 + ldr r0, _02070F04 ; =0x000005C8 + ldr r0, [r5, r0] + bl sub_02020130 + ldr r0, _02070F04 ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _02070F04 ; =0x000005C8 + add r2, sp, #0xc + ldrb r1, [r2, #0x1] + ldrb r2, [r2, #0x0] + ldr r0, [r5, r0] + bl sub_0200C6E4 +_02070ECC: + ldr r0, _02070F08 ; =0x00000B25 + mov r2, #0x0 + ldrb r4, [r5, r0] + strb r6, [r5, r0] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020713EC + ldr r1, _02070F08 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + mov r2, #0x1 + bl sub_020713EC + cmp r4, #0x6 + bhs _02070EFE + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020717E8 + ldr r0, [r5, #0x0] + mov r1, #0x4 + bl sub_0201AC68 +_02070EFE: + add sp, #0x10 + pop {r4-r6, pc} + nop +_02070F04: .word 0x000005C8 +_02070F08: .word 0x00000B25 +_02070F0C: .word 0x00000808 +_02070F10: .word 0x000005A4 + + thumb_func_start sub_02070F14 +sub_02070F14: ; 0x02070F14 + push {r3-r4, lr} + sub sp, #0x4 + mov r1, #0xb2 + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldrb r2, [r4, r1] + cmp r2, #0x0 + beq _02070F8A + cmp r2, #0x1 + beq _02070F30 + cmp r2, #0x2 + beq _02070F70 + add sp, #0x4 + pop {r3-r4, pc} +_02070F30: + add r0, r1, #0x1 + ldrb r0, [r4, r0] + add r1, sp, #0x0 + add r1, #0x2 + add r2, sp, #0x0 + bl sub_02071850 + add r3, sp, #0x0 + mov r1, #0x2 + mov r2, #0x0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, r4, #0x0 + bl sub_02073D1C + ldr r1, _02070F90 ; =0x00000B21 + add r0, r4, #0x0 + ldrb r1, [r4, r1] + mov r2, #0x2 + bl sub_020717E8 + ldr r0, [r4, #0x0] + mov r1, #0x4 + bl sub_0201AC68 + mov r0, #0xb2 + lsl r0, r0, #0x4 + ldrb r1, [r4, r0] + add sp, #0x4 + add r1, r1, #0x1 + strb r1, [r4, r0] + pop {r3-r4, pc} +_02070F70: + add r1, r1, #0x1 + ldrb r1, [r4, r1] + mov r2, #0x1 + bl sub_020717E8 + ldr r0, [r4, #0x0] + mov r1, #0x4 + bl sub_0201AC68 + mov r0, #0xb2 + mov r1, #0x0 + lsl r0, r0, #0x4 + strb r1, [r4, r0] +_02070F8A: + add sp, #0x4 + pop {r3-r4, pc} + nop +_02070F90: .word 0x00000B21 + + thumb_func_start sub_02070F94 +sub_02070F94: ; 0x02070F94 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020710AC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x1 + tst r0, r1 + beq _0207104A + ldr r0, _020710B0 ; =0x00000B25 + ldrb r1, [r4, r0] + cmp r1, #0x6 + bne _02070FAE + mov r0, #0x4 + pop {r4, pc} +_02070FAE: + cmp r1, #0x7 + bne _02070FC6 + ldr r0, _020710B4 ; =0x000005DC + bl sub_020054C8 + ldr r0, _020710B8 ; =0x00000B23 + ldrb r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + bne _0207104A + mov r0, #0x3 + pop {r4, pc} +_02070FC6: + ldr r0, _020710BC ; =0x000005A4 + ldr r2, [r4, r0] + add r2, #0x20 + ldrb r2, [r2, #0x0] + cmp r2, #0x3 + beq _02070FD6 + cmp r2, #0x13 + bne _02070FE0 +_02070FD6: + ldr r0, _020710B4 ; =0x000005DC + bl sub_020054C8 + mov r0, #0x0 + pop {r4, pc} +_02070FE0: + cmp r2, #0x14 + beq _02070FE8 + cmp r2, #0xe + bne _0207100C +_02070FE8: + mov r0, #0x2c + mul r0, r1 + add r1, r4, r0 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02071002 + ldr r0, _020710B4 ; =0x000005DC + bl sub_020054C8 + mov r0, #0x0 + pop {r4, pc} +_02071002: + ldr r0, _020710C0 ; =0x000005F2 + bl sub_020054C8 + mov r0, #0x5 + pop {r4, pc} +_0207100C: + cmp r2, #0xf + bne _0207103A + mov r2, #0x2c + mul r2, r1 + mov r1, #0x71 + add r2, r4, r2 + lsl r1, r1, #0x4 + ldrb r1, [r2, r1] + cmp r1, #0x0 + bne _02071030 + add r0, #0x38 + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_020710C4 + mov r0, #0x0 + pop {r4, pc} +_02071030: + add r0, #0x4e + bl sub_020054C8 + mov r0, #0x5 + pop {r4, pc} +_0207103A: + add r0, #0x38 + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_020710C4 + mov r0, #0x0 + pop {r4, pc} +_0207104A: + ldr r0, _020710AC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x2 + tst r0, r1 + beq _0207106E + ldr r0, _020710B8 ; =0x00000B23 + ldrb r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + bne _0207106E + ldr r0, _020710B4 ; =0x000005DC + bl sub_020054C8 + ldr r0, _020710B0 ; =0x00000B25 + mov r1, #0x7 + strb r1, [r4, r0] + mov r0, #0x3 + pop {r4, pc} +_0207106E: + add r0, r4, #0x0 + bl sub_02070B04 + cmp r0, #0x2 + bne _020710AA + ldr r1, _020710BC ; =0x000005A4 + ldr r1, [r4, r1] + add r1, #0x20 + ldrb r1, [r1, #0x0] + cmp r1, #0x14 + beq _0207108E + add r1, #0xf2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #0x1 + bhi _020710AA +_0207108E: + ldr r1, _020710B0 ; =0x00000B25 + ldrb r2, [r4, r1] + mov r1, #0x2c + mul r1, r2 + add r2, r4, r1 + mov r1, #0x71 + lsl r1, r1, #0x4 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _020710AA + ldr r0, _020710C0 ; =0x000005F2 + bl sub_020054C8 + mov r0, #0x5 +_020710AA: + pop {r4, pc} + .balign 4 +_020710AC: .word 0x021C48B8 +_020710B0: .word 0x00000B25 +_020710B4: .word 0x000005DC +_020710B8: .word 0x00000B23 +_020710BC: .word 0x000005A4 +_020710C0: .word 0x000005F2 + + thumb_func_start sub_020710C4 +sub_020710C4: ; 0x020710C4 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200D0E0 + mov r0, #0xc + mov r1, #0x8 + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, _02071174 ; =0x000005A4 + ldr r0, [r5, r0] + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0xf + bgt _020710FC + bge _02071124 + cmp r0, #0x2 + bgt _0207113C + cmp r0, #0x0 + blt _0207113C + beq _0207110C + cmp r0, #0x2 + beq _02071118 + b _0207113C +_020710FC: + cmp r0, #0x12 + bgt _0207113C + cmp r0, #0x11 + blt _0207113C + beq _02071118 + cmp r0, #0x12 + beq _02071130 + b _0207113C +_0207110C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0207117C + add r2, r0, #0x0 + b _02071146 +_02071118: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020712F0 + add r2, r0, #0x0 + b _02071146 +_02071124: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02071274 + add r2, r0, #0x0 + b _02071146 +_02071130: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02071280 + add r2, r0, #0x0 + b _02071146 +_0207113C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020712B4 + add r2, r0, #0x0 +_02071146: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072844 + mov r0, #0xc + add r1, r4, #0x0 + bl sub_02016A8C + add r0, r5, #0x0 + bl sub_0207295C + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731D4 + ldr r0, _02071178 ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r5, r0] + bl sub_0200C664 + pop {r3-r5, pc} + .balign 4 +_02071174: .word 0x000005A4 +_02071178: .word 0x000005C8 + + thumb_func_start sub_0207117C +sub_0207117C: ; 0x0207117C + push {r4-r7, lr} + sub sp, #0xc + str r1, [sp, #0x4] + ldr r1, _02071268 ; =0x000005A4 + str r0, [sp, #0x0] + ldr r0, [r0, r1] + ldr r2, _0207126C ; =0x00000B25 + ldr r1, [sp, #0x0] + ldr r0, [r0, #0x0] + ldrb r1, [r1, r2] + bl sub_0206B9B0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x4] + mov r1, #0x1 + strb r1, [r0, #0x0] + mov r4, #0x0 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r1, _02071268 ; =0x000005A4 + ldr r0, [sp, #0x0] + ldr r0, [r0, r1] + ldr r0, [r0, #0x1c] + bl sub_02060144 + cmp r0, #0x0 + bne _02071258 + ldr r1, _0207126C ; =0x00000B25 + ldr r0, [sp, #0x0] + ldrb r1, [r0, r1] + mov r0, #0x2c + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [sp, #0x0] + add r1, r0, r2 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0207124C + add r6, r4, #0x0 +_020711D0: + add r1, r6, #0x0 + ldr r0, [sp, #0x8] + add r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + beq _02071210 + add r0, r7, #0x0 + bl sub_02071948 + cmp r0, #0xff + beq _02071206 + ldr r1, [sp, #0x4] + add r2, r4, #0x0 + strb r0, [r1, r5] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + bl sub_020727FC + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_02071206: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x4 + blo _020711D0 +_02071210: + ldr r0, [sp, #0x4] + mov r1, #0x0 + strb r1, [r0, r5] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r1, _0207126C ; =0x00000B25 + ldr r0, [sp, #0x0] + ldrb r1, [r0, r1] + mov r0, #0x2c + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [sp, #0x0] + add r1, r0, r2 + ldr r0, _02071270 ; =0x0000070C + ldrh r0, [r1, r0] + bl sub_0206EA98 + cmp r0, #0x1 + bne _0207123E + mov r1, #0x5 + ldr r0, [sp, #0x4] + b _02071242 +_0207123E: + ldr r0, [sp, #0x4] + mov r1, #0x2 +_02071242: + strb r1, [r0, r5] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + b _02071258 +_0207124C: + ldr r0, [sp, #0x4] + add r1, r4, #0x0 + strb r1, [r0, r5] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 +_02071258: + ldr r0, [sp, #0x4] + mov r1, #0x9 + strb r1, [r0, r5] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02071268: .word 0x000005A4 +_0207126C: .word 0x00000B25 +_02071270: .word 0x0000070C + + thumb_func_start sub_02071274 +sub_02071274: ; 0x02071274 + mov r0, #0xe + strb r0, [r1, #0x0] + mov r0, #0x9 + strb r0, [r1, #0x1] + mov r0, #0x2 + bx lr + + thumb_func_start sub_02071280 +sub_02071280: ; 0x02071280 + ldr r2, _020712B0 ; =0x00000B25 + ldrb r3, [r0, r2] + mov r2, #0x2c + mul r2, r3 + add r2, r0, r2 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r0, [r2, r0] + cmp r0, #0x0 + bne _020712A4 + mov r0, #0x8 + strb r0, [r1, #0x0] + mov r0, #0x1 + strb r0, [r1, #0x1] + mov r0, #0x9 + strb r0, [r1, #0x2] + mov r0, #0x3 + bx lr +_020712A4: + mov r0, #0x1 + strb r0, [r1, #0x0] + mov r0, #0x9 + strb r0, [r1, #0x1] + mov r0, #0x2 + bx lr + .balign 4 +_020712B0: .word 0x00000B25 + + thumb_func_start sub_020712B4 +sub_020712B4: ; 0x020712B4 + ldr r2, _020712E8 ; =0x00000B25 + ldrb r3, [r0, r2] + mov r2, #0x2c + mul r2, r3 + add r2, r0, r2 + ldr r0, _020712EC ; =0x0000070E + ldrh r0, [r2, r0] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1f + cmp r0, #0x1 + bne _020712DA + mov r0, #0xd + strb r0, [r1, #0x0] + mov r0, #0x1 + strb r0, [r1, #0x1] + mov r0, #0x9 + strb r0, [r1, #0x2] + mov r0, #0x3 + bx lr +_020712DA: + mov r0, #0x1 + strb r0, [r1, #0x0] + mov r0, #0x9 + strb r0, [r1, #0x1] + mov r0, #0x2 + bx lr + nop +_020712E8: .word 0x00000B25 +_020712EC: .word 0x0000070E + + thumb_func_start sub_020712F0 +sub_020712F0: ; 0x020712F0 + push {r4, lr} + add r4, r1, #0x0 + ldr r1, _0207133C ; =0x00000B25 + ldrb r1, [r0, r1] + bl sub_02071340 + cmp r0, #0x0 + beq _0207130A + cmp r0, #0x1 + beq _02071316 + cmp r0, #0x2 + beq _02071326 + b _02071336 +_0207130A: + mov r0, #0x1 + strb r0, [r4, #0x0] + mov r0, #0x9 + strb r0, [r4, #0x1] + mov r0, #0x2 + pop {r4, pc} +_02071316: + mov r0, #0xb + strb r0, [r4, #0x0] + mov r0, #0x1 + strb r0, [r4, #0x1] + mov r0, #0x9 + strb r0, [r4, #0x2] + mov r0, #0x3 + pop {r4, pc} +_02071326: + mov r0, #0xc + strb r0, [r4, #0x0] + mov r0, #0x1 + strb r0, [r4, #0x1] + mov r0, #0x9 + strb r0, [r4, #0x2] + mov r0, #0x3 + pop {r4, pc} +_02071336: + mov r0, #0x0 + pop {r4, pc} + nop +_0207133C: .word 0x00000B25 + + thumb_func_start sub_02071340 +sub_02071340: ; 0x02071340 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _020713E0 ; =0x000005A4 + add r4, r1, #0x0 + ldr r2, [r5, r0] + ldr r0, [r2, #0x14] + cmp r0, #0x0 + beq _0207136E + ldr r0, [r2, #0x0] + bl sub_0206B9B0 + add r1, r0, #0x0 + ldr r0, _020713E0 ; =0x000005A4 + ldr r2, _020713E4 ; =0x00000B34 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + ldr r0, [r0, #0x14] + bl sub_0206BB84 + cmp r0, #0x0 + bne _0207136E + mov r0, #0x0 + pop {r4-r6, pc} +_0207136E: + ldr r0, _020713E0 ; =0x000005A4 + ldr r0, [r5, r0] + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x11 + bne _02071390 + mov r0, #0x2c + mul r0, r4 + add r1, r5, r0 + ldr r0, _020713E8 ; =0x00000704 + ldrh r0, [r1, r0] + bl sub_0206A964 + cmp r0, #0x1 + bne _02071390 + mov r0, #0x0 + pop {r4-r6, pc} +_02071390: + ldr r1, _020713E0 ; =0x000005A4 + mov r0, #0x0 + ldr r2, [r5, r1] + add r1, r2, #0x0 + add r1, #0x32 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x18 + lsr r3, r1, #0x1c + beq _020713BC + add r1, r4, #0x1 +_020713A4: + add r6, r2, r0 + add r6, #0x2c + ldrb r6, [r6, #0x0] + cmp r1, r6 + bne _020713B2 + mov r0, #0x2 + pop {r4-r6, pc} +_020713B2: + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, r3 + blo _020713A4 +_020713BC: + mov r0, #0x2c + mul r0, r4 + add r3, r5, r0 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r1, [r3, r0] + cmp r1, #0x1 + beq _020713D8 + sub r0, r0, #0x6 + add r2, #0x33 + ldrh r1, [r3, r0] + ldrb r0, [r2, #0x0] + cmp r1, r0 + ble _020713DC +_020713D8: + mov r0, #0x0 + pop {r4-r6, pc} +_020713DC: + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_020713E0: .word 0x000005A4 +_020713E4: .word 0x00000B34 +_020713E8: .word 0x00000704 + + thumb_func_start sub_020713EC +sub_020713EC: ; 0x020713EC + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x6 + bne _02071426 + mov r0, #0x5d + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + bl sub_020201DC + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r6, #0x0 + bne _02071410 + mov r0, #0x2 + and r0, r1 + b _02071416 +_02071410: + mov r0, #0x2 + and r0, r1 + add r0, r0, #0x1 +_02071416: + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x5d + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + bl sub_02020130 + pop {r4-r6, pc} +_02071426: + cmp r4, #0x7 + bne _02071454 + ldr r0, _020714B4 ; =0x000005D4 + ldr r0, [r5, r0] + bl sub_020201DC + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r6, #0x0 + bne _02071440 + mov r0, #0x2 + and r0, r1 + b _02071446 +_02071440: + mov r0, #0x2 + and r0, r1 + add r0, r0, #0x1 +_02071446: + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r0, _020714B4 ; =0x000005D4 + ldr r0, [r5, r0] + bl sub_02020130 + pop {r4-r6, pc} +_02071454: + cmp r6, #0x0 + ldr r1, _020714B8 ; =0x00000716 + bne _02071482 + mov r0, #0x2c + add r3, r5, r1 + mul r0, r4 + ldrsh r2, [r3, r0] + add r1, r1, #0x2 + sub r2, r2, #0x2 + strh r2, [r3, r0] + add r2, r5, r1 + ldrsh r1, [r2, r0] + sub r1, r1, #0x2 + strh r1, [r2, r0] + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x5b + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + mov r1, #0x0 + bl sub_02020130 + b _020714A8 +_02071482: + mov r0, #0x2c + add r3, r5, r1 + mul r0, r4 + ldrsh r2, [r3, r0] + add r1, r1, #0x2 + add r2, r2, #0x2 + strh r2, [r3, r0] + add r2, r5, r1 + ldrsh r1, [r2, r0] + add r1, r1, #0x2 + strh r1, [r2, r0] + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x5b + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + mov r1, #0x1 + bl sub_02020130 +_020714A8: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_020709FC + pop {r4-r6, pc} + nop +_020714B4: .word 0x000005D4 +_020714B8: .word 0x00000716 + + thumb_func_start sub_020714BC +sub_020714BC: ; 0x020714BC + cmp r1, #0x0 + beq _020714C8 + cmp r0, #0x0 + beq _020714CC + cmp r1, #0x1 + bne _020714CC +_020714C8: + mov r0, #0x1 + bx lr +_020714CC: + mov r0, #0x0 + bx lr + + thumb_func_start sub_020714D0 +sub_020714D0: ; 0x020714D0 + push {r4, lr} + ldr r1, _02071550 ; =0x021C48B8 + add r4, r0, #0x0 + ldr r2, [r1, #0x48] + mov r1, #0x1 + tst r1, r2 + beq _0207150C + ldr r0, _02071554 ; =0x000005DC + bl sub_020054C8 + ldr r0, _02071558 ; =0x00000B25 + ldrb r1, [r4, r0] + cmp r1, #0x6 + bhs _020714F8 + sub r0, r0, #0x2 + ldrb r0, [r4, r0] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1a + cmp r1, r0 + bne _02071502 +_020714F8: + add r0, r4, #0x0 + bl sub_02074538 + mov r0, #0x3 + pop {r4, pc} +_02071502: + add r0, r4, #0x0 + bl sub_02074584 + mov r0, #0x0 + pop {r4, pc} +_0207150C: + mov r1, #0x2 + tst r1, r2 + beq _02071522 + ldr r0, _02071554 ; =0x000005DC + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_02074538 + mov r0, #0x3 + pop {r4, pc} +_02071522: + bl sub_02070B04 + cmp r0, #0x2 + bne _0207154C + ldr r0, _02071558 ; =0x00000B25 + ldrb r1, [r4, r0] + sub r0, r0, #0x2 + ldrb r0, [r4, r0] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1a + cmp r1, r0 + bne _02071544 + add r0, r4, #0x0 + bl sub_02074538 + mov r0, #0x3 + pop {r4, pc} +_02071544: + add r0, r4, #0x0 + bl sub_02074584 + mov r0, #0x0 +_0207154C: + pop {r4, pc} + nop +_02071550: .word 0x021C48B8 +_02071554: .word 0x000005DC +_02071558: .word 0x00000B25 + + thumb_func_start sub_0207155C +sub_0207155C: ; 0x0207155C + push {r3-r5, lr} + sub sp, #0x8 + ldr r1, _02071738 ; =0x000005A4 + add r4, r0, #0x0 + ldr r3, [r4, r1] + mov r0, #0x0 + add r1, r3, #0x0 + add r1, #0x32 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + beq _02071606 +_02071574: + add r2, r3, r0 + add r2, #0x2c + ldrb r2, [r2, #0x0] + cmp r2, #0x0 + bne _020715FC + add r3, #0x32 + ldrb r0, [r3, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + cmp r0, #0x6 + bhi _020715E0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0x1 + lsl r0, r1, #0x1 + lsl r4, r1, #0 + lsl r0, r3, #0 + lsl r4, r4, #0 + lsl r0, r6, #0 + lsl r4, r7, #0 + add r0, r4, #0x0 + mov r1, #0x6b + mov r2, #0x1 + bl sub_020731E8 + b _020715EA +_020715B0: + .byte 0x20, 0x1C, 0x77, 0x21, 0x01, 0x22, 0x01, 0xF0, 0x17, 0xFE, 0x16, 0xE0, 0x20, 0x1C, 0x78, 0x21 + .byte 0x01, 0x22, 0x01, 0xF0, 0x11, 0xFE, 0x10, 0xE0, 0x20, 0x1C, 0x79, 0x21, 0x01, 0x22, 0x01, 0xF0 + .byte 0x0B, 0xFE, 0x0A, 0xE0, 0x20, 0x1C, 0x7A, 0x21, 0x01, 0x22, 0x01, 0xF0, 0x05, 0xFE, 0x04, 0xE0 +_020715E0: + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731E8 +_020715EA: + ldr r0, _0207173C ; =0x00000B22 + mov r1, #0x13 + strb r1, [r4, r0] + ldr r0, _02071740 ; =0x000005F2 + bl sub_020054C8 + add sp, #0x8 + mov r0, #0x14 + pop {r3-r5, pc} +_020715FC: + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, r1 + blo _02071574 +_02071606: + ldr r0, [r3, #0x14] + cmp r0, #0x0 + beq _020716CA + ldr r2, _02071744 ; =0x00000B34 + ldr r1, [r3, #0x0] + ldr r2, [r4, r2] + add r3, #0x2c + bl sub_0206BC60 + cmp r0, #0x3 + bhi _020716CA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r4, #0x2 + lsl r6, r0, #0 + lsl r0, r5, #0x1 + lsl r4, r0, #0x2 + ldr r0, _02071748 ; =0x0000069C + mov r1, #0xb8 + ldr r0, [r4, r0] + bl sub_0200A914 + add r5, r0, #0x0 + ldr r0, _02071738 ; =0x000005A4 + mov r1, #0x3 + ldr r0, [r4, r0] + ldr r0, [r0, #0x14] + bl sub_02023B0C + mov r1, #0x0 + add r2, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r3, #0x3 + bl sub_0200AD38 + mov r1, #0x6a + lsl r1, r1, #0x4 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + add r2, r5, #0x0 + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _0207173C ; =0x00000B22 + mov r1, #0x13 + strb r1, [r4, r0] + ldr r0, _02071740 ; =0x000005F2 + bl sub_020054C8 + add sp, #0x8 + mov r0, #0x14 + pop {r3-r5, pc} +_02071692: + .byte 0x20, 0x1C, 0xB6, 0x21, 0x01, 0x22, 0x01, 0xF0, 0xA6, 0xFD, 0x27, 0x48, 0x13, 0x21 + .byte 0x21, 0x54, 0x27, 0x48, 0x93, 0xF7, 0x10, 0xFF, 0x02, 0xB0, 0x14, 0x20, 0x38, 0xBD, 0x20, 0x1C + .byte 0xB7, 0x21, 0x01, 0x22, 0x01, 0xF0, 0x98, 0xFD, 0x20, 0x48, 0x13, 0x21, 0x21, 0x54, 0x20, 0x48 + .byte 0x93, 0xF7, 0x02, 0xFF, 0x02, 0xB0, 0x14, 0x20, 0x38, 0xBD +_020716CA: + ldr r0, _02071738 ; =0x000005A4 + ldr r0, [r4, r0] + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x11 + bne _02071722 + add r0, r4, #0x0 + bl sub_0207174C + cmp r0, #0x0 + beq _02071722 + cmp r0, #0x1 + beq _020716EA + cmp r0, #0x2 + beq _02071706 + b _02071722 +_020716EA: + add r0, r4, #0x0 + mov r1, #0xb6 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _0207173C ; =0x00000B22 + mov r1, #0x13 + strb r1, [r4, r0] + ldr r0, _02071740 ; =0x000005F2 + bl sub_020054C8 + add sp, #0x8 + mov r0, #0x14 + pop {r3-r5, pc} +_02071706: + add r0, r4, #0x0 + mov r1, #0xb7 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _0207173C ; =0x00000B22 + mov r1, #0x13 + strb r1, [r4, r0] + ldr r0, _02071740 ; =0x000005F2 + bl sub_020054C8 + add sp, #0x8 + mov r0, #0x14 + pop {r3-r5, pc} +_02071722: + ldr r0, _02071738 ; =0x000005A4 + mov r2, #0x0 + ldr r1, [r4, r0] + add r0, #0x38 + add r1, #0x23 + strb r2, [r1, #0x0] + bl sub_020054C8 + mov r0, #0x1b + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02071738: .word 0x000005A4 +_0207173C: .word 0x00000B22 +_02071740: .word 0x000005F2 +_02071744: .word 0x00000B34 +_02071748: .word 0x0000069C + + thumb_func_start sub_0207174C +sub_0207174C: ; 0x0207174C + push {r4-r7} + add r5, r0, #0x0 + mov r0, #0x0 + mov r12, r0 + ldr r0, _020717E0 ; =0x000005A4 + ldr r4, [r5, r0] +_02071758: + mov r0, r12 + add r0, r4, r0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _020717DA + mov r0, r12 + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0x6 + bhs _020717CC + mov r0, r12 + add r7, r4, r0 +_02071774: + add r0, r4, r3 + add r0, #0x2c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _020717CC + add r0, r4, r3 + add r0, #0x2c + ldrb r1, [r0, #0x0] + mov r0, #0x2c + ldr r6, _020717E4 ; =0x000006D8 + mul r0, r1 + add r2, r5, r0 + add r0, r7, #0x0 + add r0, #0x2c + ldrb r1, [r0, #0x0] + mov r0, #0x2c + ldrh r6, [r2, r6] + mul r0, r1 + add r1, r5, r0 + ldr r0, _020717E4 ; =0x000006D8 + ldrh r0, [r1, r0] + cmp r0, r6 + bne _020717A8 + mov r0, #0x1 + pop {r4-r7} + bx lr +_020717A8: + mov r0, #0x6e + lsl r0, r0, #0x4 + ldrh r0, [r1, r0] + cmp r0, #0x0 + beq _020717C2 + mov r1, #0x6e + lsl r1, r1, #0x4 + ldrh r1, [r2, r1] + cmp r0, r1 + bne _020717C2 + mov r0, #0x2 + pop {r4-r7} + bx lr +_020717C2: + add r0, r3, #0x1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0x6 + blo _02071774 +_020717CC: + mov r0, r12 + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r12, r0 + cmp r0, #0x5 + blo _02071758 +_020717DA: + mov r0, #0x0 + pop {r4-r7} + bx lr + .balign 4 +_020717E0: .word 0x000005A4 +_020717E4: .word 0x000006D8 + + thumb_func_start sub_020717E8 +sub_020717E8: ; 0x020717E8 + push {r3-r7, lr} + ldr r0, [r0, #0x0] + add r5, r1, #0x0 + add r4, r2, #0x0 + mov r1, #0x4 + bl sub_0201886C + lsl r1, r5, #0x1 + mov r3, #0x19 + add r5, r4, #0x0 + mul r5, r3 + ldr r3, _02071844 ; =0x00001005 + mov r2, #0x0 + add r3, r5, r3 + lsl r3, r3, #0x10 + lsr r4, r3, #0x10 + ldr r3, _02071848 ; =0x020F944C + ldrb r3, [r3, r1] + lsl r3, r3, #0x1 + add r0, r0, r3 + mov r12, r0 + ldr r0, _0207184C ; =0x020F944D + ldrb r7, [r0, r1] +_02071816: + lsl r0, r2, #0x2 + add r5, r2, r0 + add r0, r7, r2 + lsl r1, r0, #0x6 + mov r0, r12 + mov r3, #0x0 + add r6, r0, r1 +_02071824: + add r0, r3, r5 + add r1, r4, r0 + lsl r0, r3, #0x1 + strh r1, [r6, r0] + add r0, r3, #0x1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0x5 + blo _02071824 + add r0, r2, #0x1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x5 + blo _02071816 + pop {r3-r7, pc} + nop +_02071844: .word 0x00001005 +_02071848: .word 0x020F944C +_0207184C: .word 0x020F944D + + thumb_func_start sub_02071850 +sub_02071850: ; 0x02071850 + lsl r3, r0, #0x1 + ldr r0, _02071868 ; =0x020F944C + ldrb r0, [r0, r3] + lsl r0, r0, #0x3 + add r0, #0x14 + strh r0, [r1, #0x0] + ldr r0, _0207186C ; =0x020F944D + ldrb r0, [r0, r3] + lsl r0, r0, #0x3 + add r0, #0x14 + strh r0, [r2, #0x0] + bx lr + .balign 4 +_02071868: .word 0x020F944C +_0207186C: .word 0x020F944D + + thumb_func_start sub_02071870 +sub_02071870: ; 0x02071870 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl sub_0207248C + cmp r0, #0x0 + bne _02071886 + mov r0, #0x0 + add sp, #0x8 + mvn r0, r0 + pop {r3-r5, pc} +_02071886: + ldr r0, _020718C0 ; =0x020F94B8 + bl sub_02020988 + add r4, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + beq _020718BA + ldr r1, _020718C4 ; =0x0000FFFE + add r0, sp, #0x4 + strh r1, [r0, #0x0] + add r0, sp, #0x4 + str r0, [sp, #0x0] + ldr r3, _020718C8 ; =0x021C48F8 + ldr r0, [r5, #0x0] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #0x4 + bl sub_0201AFBC + cmp r0, #0x0 + bne _020718BA + mov r0, #0x0 + add sp, #0x8 + mvn r0, r0 + pop {r3-r5, pc} +_020718BA: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_020718C0: .word 0x020F94B8 +_020718C4: .word 0x0000FFFE +_020718C8: .word 0x021C48F8 + + thumb_func_start sub_020718CC +sub_020718CC: ; 0x020718CC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0207193C ; =0x000006FC + add r4, r1, #0x0 + ldr r0, [r5, r0] + bl sub_02001C78 + add r2, r0, #0x0 + mov r0, #0x1 + mvn r0, r0 + cmp r2, r0 + beq _020718EC + add r0, r0, #0x1 + cmp r2, r0 + beq _02071938 + b _02071932 +_020718EC: + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r5, #0x0 + bl sub_02073DB4 + ldr r0, _02071940 ; =0x000005A4 + ldr r0, [r5, r0] + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + beq _0207190E + cmp r0, #0x11 + bne _0207191A +_0207190E: + add r0, r5, #0x0 + mov r1, #0x22 + mov r2, #0x1 + bl sub_020731C0 + b _02071924 +_0207191A: + add r0, r5, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 +_02071924: + ldr r0, _02071944 ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_0200C664 + mov r0, #0x1 + pop {r3-r5, pc} +_02071932: + add r0, r5, #0x0 + add r1, r4, #0x0 + blx r2 +_02071938: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0207193C: .word 0x000006FC +_02071940: .word 0x000005A4 +_02071944: .word 0x000005C8 + + thumb_func_start sub_02071948 +sub_02071948: ; 0x02071948 + ldr r2, _0207196C ; =0x020F9544 + mov r3, #0x0 +_0207194C: + lsl r1, r3, #0x1 + ldrh r1, [r2, r1] + cmp r0, r1 + bne _0207195C + add r3, #0xf + lsl r0, r3, #0x18 + lsr r0, r0, #0x18 + bx lr +_0207195C: + add r1, r3, #0x1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0xf + blo _0207194C + mov r0, #0xff + bx lr + nop +_0207196C: .word 0x020F9544 + + thumb_func_start sub_02071970 +sub_02071970: ; 0x02071970 + push {r4-r6, lr} + sub sp, #0x8 + ldr r1, _02071C18 ; =0x00000B2A + add r4, r0, #0x0 + ldrh r2, [r4, r1] + cmp r2, #0x4 + bhi _02071A7A + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r0, r1, #0 + lsl r6, r0, #0x5 + lsl r0, r0, #0x6 + lsl r0, r5, #0x6 + lsl r4, r2, #0x9 + ldr r2, _02071C1C ; =0x021C48B8 + ldr r3, [r2, #0x48] + mov r2, #0x1 + tst r2, r3 + beq _02071A26 + sub r1, r1, #0x5 + ldrb r1, [r4, r1] + cmp r1, #0x6 + blo _020719B8 + ldr r0, _02071C20 ; =0x000005DC + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_02074538 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_020719B8: + bl sub_02071C48 + cmp r0, #0x0 + beq _020719CA + cmp r0, #0x1 + beq _02071A08 + cmp r0, #0x2 + beq _02071A1A + b _02071A26 +_020719CA: + ldr r0, _02071C24 ; =0x000005EC + bl sub_020054C8 + ldr r0, _02071C28 ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C664 + ldr r0, _02071C2C ; =0x00000B25 + mov r1, #0x2c + ldrb r2, [r4, r0] + mul r1, r2 + add r3, r4, r1 + ldr r1, _02071C30 ; =0x00000708 + ldrh r2, [r3, r1] + sub r1, r1, #0x2 + ldrh r1, [r3, r1] + sub r2, r2, r1 + add r1, r0, #0x3 + ldrh r1, [r4, r1] + cmp r2, r1 + bge _020719FA + add r0, r0, #0x3 + strh r2, [r4, r0] +_020719FA: + ldr r0, _02071C18 ; =0x00000B2A + mov r1, #0x2 + strh r1, [r4, r0] + mov r1, #0x0 + add r0, r0, #0x2 + strh r1, [r4, r0] + b _02071A26 +_02071A08: + ldr r0, _02071C20 ; =0x000005DC + bl sub_020054C8 + ldr r0, _02071C18 ; =0x00000B2A + mov r1, #0x1 + strh r1, [r4, r0] + add sp, #0x8 + mov r0, #0x14 + pop {r4-r6, pc} +_02071A1A: + ldr r0, _02071C34 ; =0x000005F2 + bl sub_020054C8 + add sp, #0x8 + mov r0, #0x1a + pop {r4-r6, pc} +_02071A26: + ldr r0, _02071C1C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x2 + tst r0, r1 + beq _02071A42 + ldr r0, _02071C20 ; =0x000005DC + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_02074538 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_02071A42: + add r0, r4, #0x0 + bl sub_02070B04 + cmp r0, #0x2 + bne _02071A7A + ldr r0, _02071C2C ; =0x00000B25 + ldrb r1, [r4, r0] + sub r0, r0, #0x2 + ldrb r0, [r4, r0] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1a + cmp r1, r0 + bne _02071A68 + add r0, r4, #0x0 + bl sub_02074538 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_02071A68: + add r0, r4, #0x0 + bl sub_02071C48 + cmp r0, #0x0 + beq _02071A7C + cmp r0, #0x1 + beq _02071ABA + cmp r0, #0x2 + beq _02071AC6 +_02071A7A: + b _02071C12 +_02071A7C: + ldr r0, _02071C24 ; =0x000005EC + bl sub_020054C8 + ldr r0, _02071C28 ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C664 + ldr r0, _02071C2C ; =0x00000B25 + mov r1, #0x2c + ldrb r2, [r4, r0] + mul r1, r2 + add r3, r4, r1 + ldr r1, _02071C30 ; =0x00000708 + ldrh r2, [r3, r1] + sub r1, r1, #0x2 + ldrh r1, [r3, r1] + sub r2, r2, r1 + add r1, r0, #0x3 + ldrh r1, [r4, r1] + cmp r2, r1 + bge _02071AAC + add r0, r0, #0x3 + strh r2, [r4, r0] +_02071AAC: + ldr r0, _02071C18 ; =0x00000B2A + mov r1, #0x2 + strh r1, [r4, r0] + mov r1, #0x0 + add r0, r0, #0x2 + strh r1, [r4, r0] + b _02071C12 +_02071ABA: + ldr r0, _02071C18 ; =0x00000B2A + mov r1, #0x1 + strh r1, [r4, r0] + add sp, #0x8 + mov r0, #0x14 + pop {r4-r6, pc} +_02071AC6: + ldr r0, _02071C34 ; =0x000005F2 + bl sub_020054C8 + add sp, #0x8 + mov r0, #0x1a + pop {r4-r6, pc} +_02071AD2: + .byte 0x52, 0x48, 0x81, 0x6C, 0x03, 0x20, 0x08, 0x42, 0x00, 0xD1, 0x99, 0xE0, 0x50, 0x48 + .byte 0x93, 0xF7, 0xF2, 0xFC, 0x89, 0x20, 0x80, 0x00, 0x20, 0x18, 0x01, 0x21, 0x9B, 0xF7, 0xF8, 0xFA + .byte 0x4D, 0x48, 0x00, 0x21, 0x20, 0x58, 0x9A, 0xF7, 0xB5, 0xFD, 0x20, 0x1C, 0x24, 0x21, 0x01, 0x22 + .byte 0x01, 0xF0, 0x5E, 0xFB, 0x44, 0x48, 0x00, 0x21, 0x21, 0x52, 0x82, 0xE0, 0xC9, 0x1F, 0x61, 0x5C + .byte 0x00, 0x22, 0xD2, 0x43, 0x89, 0x06, 0x89, 0x0E, 0x00, 0xF0, 0xCC, 0xF8, 0x01, 0x28, 0x78, 0xD1 + .byte 0x40, 0x48, 0x93, 0xF7, 0xD1, 0xFC, 0x3C, 0x48, 0x03, 0x21, 0x21, 0x52, 0x00, 0x21, 0x80, 0x1C + .byte 0x21, 0x52, 0x6E, 0xE0, 0x49, 0x1F, 0x61, 0x5C, 0x01, 0x22, 0x00, 0xF0, 0xBB, 0xF8, 0x01, 0x28 + .byte 0x67, 0xD1, 0x3D, 0x48, 0x39, 0x49, 0x20, 0x58, 0x61, 0x5C, 0x00, 0x68, 0xF9, 0xF7, 0x30, 0xFF + .byte 0x06, 0x1C, 0x3A, 0x48, 0x40, 0x21, 0x20, 0x58, 0x98, 0xF7, 0xDC, 0xFE, 0x05, 0x1C, 0x30, 0x1C + .byte 0xF7, 0xF7, 0xC0, 0xFA, 0x02, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x20, 0x58, 0x00, 0x21, 0x99, 0xF7 + .byte 0xC3, 0xF8, 0x00, 0x20, 0x00, 0x90, 0x01, 0x21, 0x6A, 0x20, 0x31, 0x4A, 0x01, 0x91, 0x00, 0x01 + .byte 0xA2, 0x5A, 0x20, 0x58, 0x03, 0x23, 0x99, 0xF7, 0xD7, 0xF8, 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58 + .byte 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x99, 0xF7, 0x0F, 0xFE, 0x28, 0x1C, 0xAF, 0xF7, 0x40, 0xFF + .byte 0x00, 0x21, 0x20, 0x1C, 0xC9, 0x43, 0x01, 0x22, 0x01, 0xF0, 0x1E, 0xFB, 0x25, 0x48, 0x00, 0x21 + .byte 0x20, 0x5A, 0x0C, 0x22, 0x00, 0x06, 0x00, 0x0E, 0xB7, 0xF7, 0xC8, 0xFA, 0x01, 0x1C, 0x1E, 0x48 + .byte 0x01, 0x22, 0x20, 0x58, 0xC0, 0x69, 0x98, 0x30, 0x00, 0x68, 0xB6, 0xF7, 0x83, 0xFF, 0x12, 0x48 + .byte 0x04, 0x21, 0x21, 0x52, 0x1A, 0x21, 0x08, 0x38, 0x21, 0x54, 0x02, 0xB0, 0x14, 0x20, 0x70, 0xBD + .byte 0x0E, 0x48, 0x81, 0x6C, 0x03, 0x20, 0x08, 0x42, 0x13, 0xD0, 0x0D, 0x48, 0x93, 0xF7, 0x6C, 0xFC + .byte 0x89, 0x20, 0x80, 0x00, 0x20, 0x18, 0x01, 0x21, 0x9B, 0xF7, 0x72, 0xFA, 0x0A, 0x48, 0x00, 0x21 + .byte 0x20, 0x58, 0x9A, 0xF7, 0x2F, 0xFD, 0x20, 0x1C, 0x02, 0xF0, 0x96, 0xFC, 0x02, 0xB0, 0x01, 0x20 + .byte 0x70, 0xBD +_02071C12: + mov r0, #0x1a + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_02071C18: .word 0x00000B2A +_02071C1C: .word 0x021C48B8 +_02071C20: .word 0x000005DC +_02071C24: .word 0x000005EC +_02071C28: .word 0x000005C8 +_02071C2C: .word 0x00000B25 +_02071C30: .word 0x00000708 +_02071C34: .word 0x000005F2 +_02071C38: + .byte 0xA4, 0x05, 0x00, 0x00, 0x9C, 0x06, 0x00, 0x00 + .byte 0x2C, 0x0B, 0x00, 0x00, 0x2E, 0x0B, 0x00, 0x00 + + thumb_func_start sub_02071C48 +sub_02071C48: ; 0x02071C48 + push {r3-r5, lr} + ldr r2, _02071CA8 ; =0x00000B25 + add r4, r0, #0x0 + ldrb r1, [r4, r2] + mov r0, #0x2c + mov r3, #0x71 + mul r0, r1 + add r0, r4, r0 + lsl r3, r3, #0x4 + ldrb r5, [r0, r3] + cmp r5, #0x0 + beq _02071C64 + mov r0, #0x2 + pop {r3-r5, pc} +_02071C64: + sub r2, r2, #0x2 + ldrb r2, [r4, r2] + lsl r2, r2, #0x1a + lsr r2, r2, #0x1a + cmp r1, r2 + beq _02071C82 + add r1, r3, #0x0 + sub r1, #0xa + ldrh r1, [r0, r1] + cmp r1, #0x0 + beq _02071C82 + sub r3, #0x8 + ldrh r0, [r0, r3] + cmp r1, r0 + bne _02071CA4 +_02071C82: + ldr r0, _02071CAC ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C664 + add r0, r4, #0x0 + mov r1, #0x83 + mov r2, #0x1 + bl sub_020731E8 + ldr r1, _02071CB0 ; =0x00000B2A + mov r0, #0x1 + strh r0, [r4, r1] + mov r2, #0x1a + sub r1, #0x8 + strb r2, [r4, r1] + pop {r3-r5, pc} +_02071CA4: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02071CA8: .word 0x00000B25 +_02071CAC: .word 0x000005C8 +_02071CB0: .word 0x00000B2A + + thumb_func_start sub_02071CB4 +sub_02071CB4: ; 0x02071CB4 + push {r3-r7, lr} + add r6, r1, #0x0 + mov r3, #0x2c + add r4, r6, #0x0 + mul r4, r3 + ldr r3, _02071D34 ; =0x00000706 + add r5, r0, #0x0 + add r7, r5, r3 + lsl r2, r2, #0x10 + ldrh r3, [r7, r4] + lsr r2, r2, #0x10 + add r2, r3, r2 + ldr r3, _02071D38 ; =0x00000B2C + strh r2, [r7, r4] + ldrh r2, [r5, r3] + add r2, r2, #0x1 + strh r2, [r5, r3] + bl sub_02072BBC + lsl r1, r6, #0x2 + add r1, r6, r1 + add r1, r1, #0x3 + add r0, r5, #0x4 + lsl r1, r1, #0x4 + add r0, r0, r1 + mov r1, #0x0 + bl sub_02019620 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02072B7C + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02072C28 + ldr r1, _02071D3C ; =0x00000B28 + ldrh r0, [r5, r1] + add r1, r1, #0x4 + ldrh r1, [r5, r1] + cmp r0, r1 + beq _02071D14 + ldr r1, _02071D40 ; =0x00000708 + add r2, r5, r4 + ldrh r0, [r7, r4] + ldrh r1, [r2, r1] + cmp r0, r1 + bne _02071D30 +_02071D14: + ldr r0, _02071D44 ; =0x000005A4 + add r1, r6, #0x0 + ldr r0, [r5, r0] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + ldrh r1, [r7, r4] + add r2, sp, #0x0 + str r1, [sp, #0x0] + mov r1, #0xa2 + bl sub_02067830 + mov r0, #0x1 + pop {r3-r7, pc} +_02071D30: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02071D34: .word 0x00000706 +_02071D38: .word 0x00000B2C +_02071D3C: .word 0x00000B28 +_02071D40: .word 0x00000708 +_02071D44: .word 0x000005A4 + + thumb_func_start sub_02071D48 +sub_02071D48: ; 0x02071D48 + push {r4, lr} + ldr r1, _02071DE0 ; =0x021C48B8 + add r4, r0, #0x0 + ldr r2, [r1, #0x48] + mov r1, #0x1 + tst r1, r2 + beq _02071D96 + ldr r0, _02071DE4 ; =0x00000B25 + ldrb r1, [r4, r0] + cmp r1, #0x7 + bne _02071D72 + sub r0, r0, #0x2 + ldrb r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + bne _02071D92 + ldr r0, _02071DE8 ; =0x000005DC + bl sub_020054C8 + mov r0, #0x3 + pop {r4, pc} +_02071D72: + mov r0, #0x2c + mul r0, r1 + add r1, r4, r0 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02071D8C + ldr r0, _02071DE8 ; =0x000005DC + bl sub_020054C8 + mov r0, #0x0 + pop {r4, pc} +_02071D8C: + ldr r0, _02071DEC ; =0x000005F2 + bl sub_020054C8 +_02071D92: + mov r0, #0x5 + pop {r4, pc} +_02071D96: + mov r1, #0x2 + tst r1, r2 + beq _02071DBA + ldr r0, _02071DF0 ; =0x00000B23 + ldrb r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + bne _02071DB6 + ldr r0, _02071DE8 ; =0x000005DC + bl sub_020054C8 + ldr r0, _02071DE4 ; =0x00000B25 + mov r1, #0x7 + strb r1, [r4, r0] + mov r0, #0x3 + pop {r4, pc} +_02071DB6: + mov r0, #0x5 + pop {r4, pc} +_02071DBA: + bl sub_02070B04 + cmp r0, #0x2 + bne _02071DDE + ldr r1, _02071DE4 ; =0x00000B25 + ldrb r2, [r4, r1] + mov r1, #0x2c + mul r1, r2 + add r2, r4, r1 + mov r1, #0x71 + lsl r1, r1, #0x4 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _02071DDE + ldr r0, _02071DEC ; =0x000005F2 + bl sub_020054C8 + mov r0, #0x5 +_02071DDE: + pop {r4, pc} + .balign 4 +_02071DE0: .word 0x021C48B8 +_02071DE4: .word 0x00000B25 +_02071DE8: .word 0x000005DC +_02071DEC: .word 0x000005F2 +_02071DF0: .word 0x00000B23 + + thumb_func_start sub_02071DF4 +sub_02071DF4: ; 0x02071DF4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02071F1C ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r5, r0] + mov r2, #0xc + ldrh r0, [r0, #0x24] + bl sub_0206E710 + mov r1, #0x22 + add r4, r0, #0x0 + bl sub_0206E7DC + cmp r0, #0x0 + bne _02071E1E + add r0, r4, #0x0 + mov r1, #0x23 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02071E30 +_02071E1E: + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0207703C + mov r0, #0x6 + pop {r3-r5, pc} +_02071E30: + add r0, r4, #0x0 + mov r1, #0x24 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02071E5A + add r0, r4, #0x0 + mov r1, #0x25 + bl sub_0206E7DC + cmp r0, #0x0 + bne _02071E5A + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_0207703C + mov r0, #0x6 + pop {r3-r5, pc} +_02071E5A: + add r0, r4, #0x0 + bl sub_02016A18 + ldr r0, _02071F1C ; =0x000005A4 + ldr r2, _02071F20 ; =0x00000B25 + ldr r1, [r5, r0] + mov r0, #0xc + str r0, [sp, #0x0] + ldr r0, [r1, #0x0] + ldrh r1, [r1, #0x24] + ldrb r2, [r5, r2] + mov r3, #0x0 + bl sub_020847F8 + cmp r0, #0x1 + bne _02071F02 + ldr r0, _02071F1C ; =0x000005A4 + mov r2, #0x1 + ldr r1, [r5, r0] + mov r3, #0xc + ldr r0, [r1, #0x4] + ldrh r1, [r1, #0x24] + bl sub_0206EDD4 + add r0, r4, #0x0 + mov r1, #0x1a + bl sub_0206E7DC + cmp r0, #0x0 + ldr r0, _02071F1C ; =0x000005A4 + beq _02071ECC + ldr r1, _02071F20 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r1, r0, #0x0 + ldr r0, _02071F1C ; =0x000005A4 + mov r2, #0x3 + ldr r3, [r5, r0] + add r0, r3, #0x0 + add r0, #0x3c + str r0, [sp, #0x0] + ldrh r3, [r3, #0x24] + mov r0, #0x0 + bl sub_02069168 + ldr r1, _02071F1C ; =0x000005A4 + ldr r2, [r5, r1] + strh r0, [r2, #0x38] + ldr r0, [r5, r1] + mov r2, #0x8 + add r0, #0x23 + strb r2, [r0, #0x0] + mov r0, #0x1b + pop {r3-r5, pc} +_02071ECC: + ldr r0, [r5, r0] + ldrh r0, [r0, #0x24] + bl sub_0206EB34 + cmp r0, #0x1 + bne _02071EFA + ldr r0, _02071F1C ; =0x000005A4 + ldr r1, [r5, r0] + ldr r0, [r1, #0x10] + cmp r0, #0x0 + beq _02071EFA + ldr r0, [r1, #0x0] + ldr r1, _02071F20 ; =0x00000B25 + ldrb r1, [r5, r1] + bl sub_0206B9B0 + add r1, r0, #0x0 + ldr r0, _02071F1C ; =0x000005A4 + ldr r2, [r5, r0] + ldr r0, [r2, #0x10] + ldrh r2, [r2, #0x24] + bl sub_02061618 +_02071EFA: + add r0, r5, #0x0 + bl sub_02075C54 + b _02071F18 +_02071F02: + add r0, r5, #0x0 + mov r1, #0x69 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02071F20 ; =0x00000B25 + mov r1, #0x7 + strb r1, [r5, r0] + ldr r1, _02071F24 ; =sub_02075CE4 + sub r0, #0x11 + str r1, [r5, r0] +_02071F18: + mov r0, #0x5 + pop {r3-r5, pc} + .balign 4 +_02071F1C: .word 0x000005A4 +_02071F20: .word 0x00000B25 +_02071F24: .word sub_02075CE4 + 1 + + thumb_func_start sub_02071F28 +sub_02071F28: ; 0x02071F28 + push {r3, lr} + ldr r1, _02071F50 ; =0x00000B25 + ldrb r2, [r0, r1] + mov r1, #0x2c + mul r1, r2 + add r1, r0, r1 + ldr r0, _02071F54 ; =0x0000070C + ldrh r0, [r1, r0] + cmp r0, #0x0 + bne _02071F40 + mov r0, #0x0 + pop {r3, pc} +_02071F40: + bl sub_0206EA98 + cmp r0, #0x1 + bne _02071F4C + mov r0, #0x2 + pop {r3, pc} +_02071F4C: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_02071F50: .word 0x00000B25 +_02071F54: .word 0x0000070C + + thumb_func_start sub_02071F58 +sub_02071F58: ; 0x02071F58 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _02072074 ; =0x000005A4 + ldr r1, _02072078 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r6, r0, #0x0 + mov r7, #0x89 + add r0, r5, #0x0 + lsl r7, r7, #0x2 + bl sub_02071F28 + cmp r0, #0x0 + beq _02071F84 + cmp r0, #0x1 + beq _02071FF2 + cmp r0, #0x2 + beq _02072044 + b _02072054 +_02071F84: + ldr r0, _02072074 ; =0x000005A4 + ldr r0, [r5, r0] + ldrh r0, [r0, #0x24] + bl sub_0206EA98 + cmp r0, #0x1 + bne _02071FA0 + ldr r0, _02072074 ; =0x000005A4 + mov r1, #0x6 + ldr r0, [r5, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + pop {r3-r7, pc} +_02071FA0: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02072080 + ldr r2, _0207207C ; =0x0000069C + mov r1, #0x76 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + add r0, r6, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200ACF8 + mov r2, #0x6a + lsl r2, r2, #0x4 + ldr r0, [r5, r2] + sub r2, #0xfc + ldr r2, [r5, r2] + mov r1, #0x1 + ldrh r2, [r2, #0x24] + bl sub_0200AE38 + mov r2, #0x6a + lsl r2, r2, #0x4 + add r1, r2, #0x4 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl sub_0200B7B8 + mov r4, #0xb + b _02072054 +_02071FF2: + ldr r2, _0207207C ; =0x0000069C + mov r1, #0x4e + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + add r0, r6, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200ACF8 + ldr r2, _02072078 ; =0x00000B25 + mov r3, #0x6a + ldrb r4, [r5, r2] + mov r2, #0x2c + lsl r3, r3, #0x4 + mul r2, r4 + ldr r0, [r5, r3] + add r2, r5, r2 + add r3, #0x6c + ldrh r2, [r2, r3] + mov r1, #0x1 + bl sub_0200AE70 + mov r2, #0x6a + lsl r2, r2, #0x4 + add r1, r2, #0x4 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl sub_0200B7B8 + mov r4, #0x9 + b _02072054 +_02072044: + ldr r2, _0207207C ; =0x0000069C + mov r1, #0x4d + ldr r0, [r5, r2] + add r2, #0x8 + ldr r2, [r5, r2] + bl sub_0200A8E0 + mov r4, #0xb +_02072054: + add r0, r5, r7 + mov r1, #0x1 + mov r2, #0xa + mov r3, #0xf + bl sub_0200D0BC + add r0, r5, r7 + mov r1, #0xf + bl sub_02019620 + add r0, r5, #0x0 + bl sub_0207322C + add r0, r4, #0x0 + pop {r3-r7, pc} + nop +_02072074: .word 0x000005A4 +_02072078: .word 0x00000B25 +_0207207C: .word 0x0000069C + + thumb_func_start sub_02072080 +sub_02072080: ; 0x02072080 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, _020720D4 ; =0x000005A4 + add r5, r1, #0x0 + ldr r1, [r4, r0] + mov r2, #0x1 + ldrh r1, [r1, #0x24] + mov r3, #0xc + str r1, [sp, #0x0] + ldr r1, [r4, r0] + ldr r0, [r1, #0x4] + ldrh r1, [r1, #0x24] + bl sub_0206EDD4 + add r0, r5, #0x0 + mov r1, #0x6 + add r2, sp, #0x0 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02069EC4 + ldr r1, _020720D8 ; =0x00000B25 + ldr r0, _020720D4 ; =0x000005A4 + ldrb r3, [r4, r1] + ldr r0, [r4, r0] + mov r2, #0x2c + add r5, r3, #0x0 + mul r5, r2 + ldrh r0, [r0, #0x24] + ldr r3, _020720DC ; =0x0000070C + add r5, r4, r5 + strh r0, [r5, r3] + ldrb r1, [r4, r1] + add r0, r4, #0x0 + mul r2, r1 + add r2, r4, r2 + ldrh r2, [r2, r3] + bl sub_02073A78 + pop {r3-r5, pc} + nop +_020720D4: .word 0x000005A4 +_020720D8: .word 0x00000B25 +_020720DC: .word 0x0000070C + + thumb_func_start sub_020720E0 +sub_020720E0: ; 0x020720E0 + push {r0-r3} + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, _02072134 ; =0x000005A4 + add r5, r1, #0x0 + ldr r0, [r4, r0] + lsl r1, r2, #0x10 + ldr r0, [r0, #0x4] + lsr r1, r1, #0x10 + mov r2, #0x1 + mov r3, #0xc + bl sub_0206ED38 + add r0, r5, #0x0 + mov r1, #0x6 + add r2, sp, #0x1c + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02069EC4 + ldr r1, _02072138 ; =0x00000B25 + mov r2, #0x2c + ldrb r3, [r4, r1] + ldr r0, [sp, #0x1c] + add r5, r3, #0x0 + mul r5, r2 + ldr r3, _0207213C ; =0x0000070C + add r5, r4, r5 + strh r0, [r5, r3] + ldrb r1, [r4, r1] + add r0, r4, #0x0 + mul r2, r1 + add r2, r4, r2 + ldrh r2, [r2, r3] + bl sub_02073A78 + pop {r3-r5} + pop {r3} + add sp, #0x10 + bx r3 + nop +_02072134: .word 0x000005A4 +_02072138: .word 0x00000B25 +_0207213C: .word 0x0000070C + + thumb_func_start sub_02072140 +sub_02072140: ; 0x02072140 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02072168 ; =0x00000B24 + ldrb r0, [r4, r0] + bl sub_0201BD70 + cmp r0, #0x0 + bne _02072162 + ldr r0, _0207216C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _02072162 + add r0, r4, #0x0 + bl sub_020722B8 + pop {r4, pc} +_02072162: + mov r0, #0xb + pop {r4, pc} + nop +_02072168: .word 0x00000B24 +_0207216C: .word 0x021C48B8 + + thumb_func_start sub_02072170 +sub_02072170: ; 0x02072170 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02072190 ; =0x00000B24 + ldrb r0, [r4, r0] + bl sub_0201BD70 + cmp r0, #0x0 + bne _0207218A + add r0, r4, #0x0 + bl sub_020732CC + mov r0, #0xa + pop {r4, pc} +_0207218A: + mov r0, #0x9 + pop {r4, pc} + nop +_02072190: .word 0x00000B24 + + thumb_func_start sub_02072194 +sub_02072194: ; 0x02072194 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _020722A4 ; =0x000006FC + mov r1, #0xc + ldr r0, [r5, r0] + bl sub_020021AC + cmp r0, #0x0 + beq _020721B0 + mov r1, #0x1 + mvn r1, r1 + cmp r0, r1 + beq _02072298 + b _020722A0 +_020721B0: + ldr r0, _020722A8 ; =0x000005A4 + ldr r1, _020722AC ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r7, r0, #0x0 + ldr r0, _020722A8 ; =0x000005A4 + ldr r0, [r5, r0] + ldrh r6, [r0, #0x24] + ldr r0, _020722AC ; =0x00000B25 + ldrb r1, [r5, r0] + mov r0, #0x2c + mul r0, r1 + add r1, r5, r0 + ldr r0, _020722B0 ; =0x0000070C + ldrh r4, [r1, r0] + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02072080 + ldr r0, _020722A8 ; =0x000005A4 + add r1, r4, #0x0 + ldr r0, [r5, r0] + mov r2, #0x1 + ldr r0, [r0, #0x4] + mov r3, #0xc + bl sub_0206ED38 + cmp r0, #0x0 + bne _0207220C + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + add r3, r4, #0x0 + bl sub_020720E0 + ldr r2, _020722B4 ; =0x0000069C + mov r1, #0x53 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r2, [r5, r2] + bl sub_0200A8E0 + b _02072282 +_0207220C: + ldr r0, _020722A8 ; =0x000005A4 + ldr r0, [r5, r0] + ldrh r0, [r0, #0x24] + bl sub_0206EA98 + cmp r0, #0x1 + bne _02072246 + ldr r0, _020722A8 ; =0x000005A4 + lsl r1, r4, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + ldr r0, [r0, #0x4] + mov r2, #0x1 + mov r3, #0xc + bl sub_0206EDD4 + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + add r3, r4, #0x0 + bl sub_020720E0 + ldr r0, _020722A8 ; =0x000005A4 + mov r1, #0x6 + ldr r0, [r5, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + pop {r3-r7, pc} +_02072246: + ldr r2, _020722B4 ; =0x0000069C + mov r1, #0x54 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x1 + add r2, r4, #0x0 + bl sub_0200AE38 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x2 + add r2, r6, #0x0 + bl sub_0200AE38 + mov r2, #0x6a + lsl r2, r2, #0x4 + add r1, r2, #0x4 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl sub_0200B7B8 +_02072282: + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0xf + bl sub_02019620 + add r0, r5, #0x0 + bl sub_0207322C + mov r0, #0xb + pop {r3-r7, pc} +_02072298: + add r0, r5, #0x0 + bl sub_020722B8 + pop {r3-r7, pc} +_020722A0: + mov r0, #0xa + pop {r3-r7, pc} + .balign 4 +_020722A4: .word 0x000006FC +_020722A8: .word 0x000005A4 +_020722AC: .word 0x00000B25 +_020722B0: .word 0x0000070C +_020722B4: .word 0x0000069C + + thumb_func_start sub_020722B8 +sub_020722B8: ; 0x020722B8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02072304 ; =0x000005A4 + ldr r1, [r4, r0] + add r0, r1, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0xa + bne _020722F8 + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _02072308 ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C664 + ldr r0, _02072304 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x20 + strb r1, [r0, #0x0] + mov r0, #0x1 + pop {r4, pc} +_020722F8: + mov r0, #0xa + add r1, #0x23 + strb r0, [r1, #0x0] + mov r0, #0x1b + pop {r4, pc} + nop +_02072304: .word 0x000005A4 +_02072308: .word 0x000005C8 + + thumb_func_start sub_0207230C +sub_0207230C: ; 0x0207230C + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _02072410 ; =0x000005A4 + ldr r1, _02072414 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r7, r0, #0x0 + ldr r0, _02072410 ; =0x000005A4 + ldr r0, [r5, r0] + ldrh r6, [r0, #0x24] + ldr r0, _02072414 ; =0x00000B25 + ldrb r1, [r5, r0] + mov r0, #0x2c + mul r0, r1 + add r1, r5, r0 + ldr r0, _02072418 ; =0x0000070C + ldrh r4, [r1, r0] + add r0, r5, #0x0 + add r1, r7, #0x0 + bl sub_02072080 + cmp r4, #0x0 + bne _02072388 + ldr r2, _0207241C ; =0x0000069C + mov r1, #0x76 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + add r0, r7, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200ACF8 + mov r2, #0x6a + lsl r2, r2, #0x4 + ldr r0, [r5, r2] + sub r2, #0xfc + ldr r2, [r5, r2] + mov r1, #0x1 + ldrh r2, [r2, #0x24] + bl sub_0200AE38 + mov r2, #0x6a + lsl r2, r2, #0x4 + add r1, r2, #0x4 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl sub_0200B7B8 + b _020723D6 +_02072388: + ldr r0, _02072410 ; =0x000005A4 + lsl r1, r4, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + ldr r0, [r0, #0x4] + mov r2, #0x1 + mov r3, #0xc + bl sub_0206ED38 + ldr r2, _0207241C ; =0x0000069C + mov r1, #0x54 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x1 + add r2, r4, #0x0 + bl sub_0200AE38 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x2 + add r2, r6, #0x0 + bl sub_0200AE38 + mov r2, #0x6a + lsl r2, r2, #0x4 + add r1, r2, #0x4 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl sub_0200B7B8 +_020723D6: + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + mov r2, #0xa + mov r3, #0xf + bl sub_0200D0BC + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0xf + bl sub_02019620 + add r0, r5, #0x0 + bl sub_0207322C + ldr r0, _02072410 ; =0x000005A4 + ldr r1, [r5, r0] + add r0, r1, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0xc + bne _0207240C + mov r0, #0xa + add r1, #0x20 + strb r0, [r1, #0x0] +_0207240C: + mov r0, #0xb + pop {r3-r7, pc} + .balign 4 +_02072410: .word 0x000005A4 +_02072414: .word 0x00000B25 +_02072418: .word 0x0000070C +_0207241C: .word 0x0000069C + + thumb_func_start sub_02072420 +sub_02072420: ; 0x02072420 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02072470 ; =0x00000B25 + ldrb r1, [r4, r0] + mov r0, #0x2c + mul r0, r1 + add r1, r4, r0 + ldr r0, _02072474 ; =0x00000712 + ldrh r0, [r1, r0] + cmp r0, #0x0 + bne _02072444 + ldr r0, _02072478 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + pop {r4, pc} +_02072444: + ldr r0, _0207247C ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C664 + add r0, r4, #0x0 + mov r1, #0xc3 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02072480 ; =sub_02074428 + ldr r1, _02072484 ; =0x00000B18 + ldr r2, _02072488 ; =sub_02074454 + str r0, [r4, r1] + add r0, r1, #0x4 + str r2, [r4, r0] + mov r0, #0x16 + add r1, #0xa + strb r0, [r4, r1] + mov r0, #0x14 + pop {r4, pc} + nop +_02072470: .word 0x00000B25 +_02072474: .word 0x00000712 +_02072478: .word 0x000005A4 +_0207247C: .word 0x000005C8 +_02072480: .word sub_02074428 + 1 +_02072484: .word 0x00000B18 +_02072488: .word sub_02074454 + 1 + + thumb_func_start sub_0207248C +sub_0207248C: ; 0x0207248C + ldr r1, _020724C0 ; =0x000005A4 + ldr r0, [r0, r1] + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x5 + beq _020724B8 + cmp r0, #0x6 + beq _020724B8 + cmp r0, #0x7 + beq _020724B8 + cmp r0, #0x8 + beq _020724B8 + cmp r0, #0x9 + beq _020724B8 + cmp r0, #0xb + beq _020724B8 + cmp r0, #0xe + beq _020724B8 + cmp r0, #0x10 + beq _020724B8 + cmp r0, #0x14 + bne _020724BC +_020724B8: + mov r0, #0x0 + bx lr +_020724BC: + mov r0, #0x1 + bx lr + .balign 4 +_020724C0: .word 0x000005A4 + + thumb_func_start sub_020724C4 +sub_020724C4: ; 0x020724C4 + mov r0, #0x14 + bx lr + + thumb_func_start sub_020724C8 +sub_020724C8: ; 0x020724C8 + mov r0, #0x15 + bx lr + + thumb_func_start sub_020724CC +sub_020724CC: ; 0x020724CC + mov r0, #0x13 + bx lr + + thumb_func_start sub_020724D0 +sub_020724D0: ; 0x020724D0 + mov r0, #0x12 + bx lr + + thumb_func_start sub_020724D4 +sub_020724D4: ; 0x020724D4 + push {r3-r7, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + mov r0, #0x14 + mov r1, #0x16 + add r2, r4, #0x0 + add r7, r3, #0x0 + bl sub_0200650C + add r1, sp, #0xc + str r0, [sp, #0x8] + blx sub_020B0180 + ldr r0, [sp, #0xc] + mov r4, #0x0 + str r0, [sp, #0x4] + add r0, #0xc + str r0, [sp, #0x4] + str r0, [sp, #0x0] +_020724FE: + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + mov r2, #0x20 + blx sub_020DF438 + add r1, r4, #0x6 + lsl r2, r1, #0x6 + ldr r1, [sp, #0x4] + add r0, r6, #0x0 + add r1, r1, r2 + mov r2, #0x20 + blx sub_020DF438 + add r1, r4, #0x0 + add r1, #0xc + lsl r2, r1, #0x6 + ldr r1, [sp, #0x4] + add r0, r7, #0x0 + add r1, r1, r2 + mov r2, #0x20 + blx sub_020DF438 + ldr r0, [sp, #0x0] + add r4, r4, #0x1 + add r0, #0x40 + str r0, [sp, #0x0] + add r5, #0x20 + add r6, #0x20 + add r7, #0x20 + cmp r4, #0x6 + blo _020724FE + ldr r0, [sp, #0x8] + bl sub_02016A18 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02072548 +sub_02072548: ; 0x02072548 + push {r4-r6, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r0, #0x0 + bl sub_02019150 + add r1, r5, #0x0 + add r2, r4, #0x0 + add r0, r6, #0x0 + add r1, #0x10 + add r2, #0x8 + bl sub_02019150 + add r1, r5, #0x0 + add r2, r4, #0x0 + add r0, r6, #0x0 + add r1, #0x20 + add r2, #0x10 + bl sub_02019150 + add r1, r5, #0x0 + add r2, r4, #0x0 + add r0, r6, #0x0 + add r1, #0x30 + add r2, #0x18 + bl sub_02019150 + add r5, #0x40 + add r4, #0x20 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02019150 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02072590 +sub_02072590: ; 0x02072590 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r4, _020726C0 ; =0x020F975C + ldr r0, [r5, #0x0] + add r1, r5, #0x4 + add r2, r4, #0x0 + bl sub_02072548 + add r1, r5, #0x0 + ldr r0, [r5, #0x0] + ldr r2, _020726C4 ; =0x020F97AC + add r1, #0xa4 + bl sub_02072548 + mov r1, #0x51 + lsl r1, r1, #0x2 + ldr r0, [r5, #0x0] + ldr r2, _020726C8 ; =0x020F97FC + add r1, r5, r1 + bl sub_02072548 + ldr r0, _020726CC ; =0x000005A4 + ldr r0, [r5, r0] + add r0, #0x21 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + ldr r0, [r5, #0x0] + bne _020725F8 + add r1, r5, #0x0 + add r2, r4, #0x0 + add r1, #0x54 + add r2, #0xf0 + bl sub_02072548 + mov r2, #0x46 + add r1, r5, #0x0 + lsl r2, r2, #0x2 + ldr r0, [r5, #0x0] + add r1, #0xf4 + add r2, r4, r2 + bl sub_02072548 + mov r2, #0x65 + lsl r2, r2, #0x2 + add r1, r5, r2 + sub r2, #0x54 + ldr r0, [r5, #0x0] + add r2, r4, r2 + bl sub_02072548 + b _02072622 +_020725F8: + add r1, r5, #0x0 + add r2, r4, #0x0 + add r1, #0x54 + add r2, #0x28 + bl sub_02072548 + add r1, r5, #0x0 + add r2, r4, #0x0 + ldr r0, [r5, #0x0] + add r1, #0xf4 + add r2, #0x78 + bl sub_02072548 + mov r1, #0x65 + lsl r1, r1, #0x2 + add r4, #0xc8 + ldr r0, [r5, #0x0] + add r1, r5, r1 + add r2, r4, #0x0 + bl sub_02072548 +_02072622: + ldr r0, _020726CC ; =0x000005A4 + ldr r0, [r5, r0] + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + beq _02072632 + cmp r0, #0x11 + bne _0207265A +_02072632: + ldr r1, _020726D0 ; =0x020F96EC + add r0, sp, #0x0 + ldrh r3, [r1, #0x38] + add r2, sp, #0x0 + strh r3, [r0, #0x0] + ldrh r3, [r1, #0x3a] + strh r3, [r0, #0x2] + ldrh r3, [r1, #0x3c] + ldrh r1, [r1, #0x3e] + strh r3, [r0, #0x4] + strh r1, [r0, #0x6] + mov r1, #0x16 + strb r1, [r0, #0x2] + mov r1, #0x7d + lsl r1, r1, #0x2 + ldr r0, [r5, #0x0] + add r1, r5, r1 + bl sub_02019150 + b _02072668 +_0207265A: + mov r1, #0x7d + lsl r1, r1, #0x2 + ldr r0, [r5, #0x0] + ldr r2, _020726D4 ; =0x020F9724 + add r1, r5, r1 + bl sub_02019150 +_02072668: + mov r1, #0x79 + lsl r1, r1, #0x2 + ldr r0, [r5, #0x0] + ldr r2, _020726D8 ; =0x020F972C + add r1, r5, r1 + bl sub_02019150 + mov r1, #0x81 + lsl r1, r1, #0x2 + ldr r0, [r5, #0x0] + ldr r2, _020726DC ; =0x020F9734 + add r1, r5, r1 + bl sub_02019150 + mov r1, #0x85 + lsl r1, r1, #0x2 + ldr r0, [r5, #0x0] + ldr r2, _020726E0 ; =0x020F973C + add r1, r5, r1 + bl sub_02019150 + mov r1, #0x89 + lsl r1, r1, #0x2 + ldr r0, [r5, #0x0] + ldr r2, _020726E4 ; =0x020F9744 + add r1, r5, r1 + bl sub_02019150 + mov r1, #0x8d + lsl r1, r1, #0x2 + ldr r0, [r5, #0x0] + ldr r2, _020726E8 ; =0x020F974C + add r1, r5, r1 + bl sub_02019150 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r0, [r5, #0x0] + ldr r2, _020726EC ; =0x020F9754 + add r1, r5, r1 + bl sub_02019150 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_020726C0: .word 0x020F975C +_020726C4: .word 0x020F97AC +_020726C8: .word 0x020F97FC +_020726CC: .word 0x000005A4 +_020726D0: .word 0x020F96EC +_020726D4: .word 0x020F9724 +_020726D8: .word 0x020F972C +_020726DC: .word 0x020F9734 +_020726E0: .word 0x020F973C +_020726E4: .word 0x020F9744 +_020726E8: .word 0x020F974C +_020726EC: .word 0x020F9754 + + thumb_func_start sub_020726F0 +sub_020726F0: ; 0x020726F0 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r5, #0x0 + add r4, r6, #0x4 +_020726F8: + lsl r0, r5, #0x4 + add r0, r4, r0 + bl sub_02019178 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x25 + blo _020726F8 + mov r4, #0x95 + lsl r4, r4, #0x2 + add r0, r6, r4 + bl sub_02019048 + cmp r0, #0x1 + bne _0207271E + add r0, r6, r4 + bl sub_02019178 +_0207271E: + pop {r4-r6, pc} + + thumb_func_start sub_02072720 +sub_02072720: ; 0x02072720 + push {r4, lr} + ldr r2, _020727F8 ; =0x0000069C + add r4, r0, #0x0 + ldr r0, [r4, r2] + add r2, #0x10 + ldr r2, [r4, r2] + mov r1, #0x91 + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x92 + ldr r0, [r4, r2] + add r2, #0x14 + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x93 + ldr r0, [r4, r2] + add r2, #0x18 + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0xa0 + ldr r0, [r4, r2] + add r2, #0x1c + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0xa1 + ldr r0, [r4, r2] + add r2, #0x20 + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x94 + ldr r0, [r4, r2] + add r2, #0x24 + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x95 + ldr r0, [r4, r2] + add r2, #0x28 + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x96 + ldr r0, [r4, r2] + add r2, #0x2c + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x97 + ldr r0, [r4, r2] + add r2, #0x30 + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x98 + ldr r0, [r4, r2] + add r2, #0x34 + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x99 + ldr r0, [r4, r2] + add r2, #0x38 + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x9a + ldr r0, [r4, r2] + add r2, #0x3c + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x9b + ldr r0, [r4, r2] + add r2, #0x40 + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0x9a + ldr r0, [r4, r2] + add r2, #0x44 + ldr r2, [r4, r2] + bl sub_0200A8E0 + ldr r2, _020727F8 ; =0x0000069C + mov r1, #0xa6 + ldr r0, [r4, r2] + add r2, #0x48 + ldr r2, [r4, r2] + bl sub_0200A8E0 + pop {r4, pc} + .balign 4 +_020727F8: .word 0x0000069C + + thumb_func_start sub_020727FC +sub_020727FC: ; 0x020727FC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _02072840 ; =0x0000069C + add r4, r2, #0x0 + add r7, r1, #0x0 + add r1, r4, #0x0 + ldr r0, [r5, r0] + add r1, #0x9c + bl sub_0200A914 + add r6, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + add r2, r7, #0x0 + bl sub_0200AD5C + mov r1, #0x6a + add r4, #0xf + lsl r1, r1, #0x4 + lsl r2, r4, #0x2 + ldr r0, [r5, r1] + add r2, r5, r2 + add r1, #0xc + ldr r1, [r2, r1] + add r2, r6, #0x0 + bl sub_0200B7B8 + add r0, r6, #0x0 + bl sub_02021A20 + pop {r3-r7, pc} + nop +_02072840: .word 0x0000069C + + thumb_func_start sub_02072844 +sub_02072844: ; 0x02072844 + push {r4-r7, lr} + sub sp, #0x24 + add r5, r0, #0x0 + add r7, r1, #0x0 + lsl r0, r2, #0x1 + mov r1, #0x17 + sub r1, r1, r0 + lsl r1, r1, #0x18 + str r2, [sp, #0x14] + lsr r1, r1, #0x18 + str r1, [sp, #0x0] + mov r1, #0xc + lsl r0, r0, #0x18 + str r1, [sp, #0x4] + lsr r0, r0, #0x18 + mov r1, #0x9 + str r0, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + lsl r1, r1, #0x6 + str r1, [sp, #0x10] + add r1, #0x14 + ldr r0, [r5, #0x0] + add r1, r5, r1 + mov r3, #0x13 + bl sub_02019064 + ldr r0, [sp, #0x14] + mov r1, #0xc + bl sub_02012838 + ldr r1, _0207294C ; =0x000006F8 + mov r6, #0x0 + str r0, [r5, r1] + ldr r0, [sp, #0x14] + add r4, r6, #0x0 + cmp r0, #0x0 + ble _020728D8 +_02072890: + ldrb r0, [r7, r4] + cmp r0, #0xf + blo _020728B4 + bl sub_02073DA8 + lsl r1, r6, #0x2 + add r2, r0, #0x0 + ldr r0, _0207294C ; =0x000006F8 + add r3, r5, r1 + ldr r1, _02072950 ; =0x000006E8 + ldr r0, [r5, r0] + ldr r1, [r3, r1] + bl sub_020128A0 + add r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + b _020728CC +_020728B4: + bl sub_02073DA8 + ldrb r1, [r7, r4] + add r2, r0, #0x0 + ldr r0, _0207294C ; =0x000006F8 + lsl r1, r1, #0x2 + add r3, r5, r1 + ldr r1, _02072954 ; =0x000006AC + ldr r0, [r5, r0] + ldr r1, [r3, r1] + bl sub_020128A0 +_020728CC: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [sp, #0x14] + cmp r4, r0 + blt _02072890 +_020728D8: + ldr r0, _0207294C ; =0x000006F8 + mov r1, #0x0 + ldr r0, [r5, r0] + str r0, [sp, #0x18] + mov r0, #0x95 + lsl r0, r0, #0x2 + add r0, r5, r0 + str r0, [sp, #0x1c] + add r0, sp, #0x18 + strb r1, [r0, #0x8] + mov r1, #0x1 + strb r1, [r0, #0x9] + ldr r1, [sp, #0x14] + strb r1, [r0, #0xa] + ldrb r2, [r0, #0xb] + mov r1, #0xf + bic r2, r1 + strb r2, [r0, #0xb] + ldrb r2, [r0, #0xb] + mov r1, #0x30 + bic r2, r1 + strb r2, [r0, #0xb] + ldr r1, [sp, #0x14] + ldrb r2, [r0, #0xb] + cmp r1, #0x4 + blo _02072918 + mov r1, #0xc0 + bic r2, r1 + mov r1, #0x40 + orr r1, r2 + strb r1, [r0, #0xb] + b _0207291E +_02072918: + mov r1, #0xc0 + bic r2, r1 + strb r2, [r0, #0xb] +_0207291E: + mov r0, #0x95 + lsl r0, r0, #0x2 + mov r1, #0x1 + add r0, r5, r0 + add r2, r1, #0x0 + mov r3, #0xe + bl sub_0200CCA4 + mov r0, #0xc + str r0, [sp, #0x0] + mov r0, #0x2 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x18 + mov r1, #0x8 + add r3, r2, #0x0 + bl sub_02001C14 + ldr r1, _02072958 ; =0x000006FC + str r0, [r5, r1] + add sp, #0x24 + pop {r4-r7, pc} + nop +_0207294C: .word 0x000006F8 +_02072950: .word 0x000006E8 +_02072954: .word 0x000006AC +_02072958: .word 0x000006FC + + thumb_func_start sub_0207295C +sub_0207295C: ; 0x0207295C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _020729C4 ; =0x000005A4 + ldr r2, [r5, r0] + add r1, r2, #0x0 + add r1, #0x20 + ldrb r1, [r1, #0x0] + cmp r1, #0xf + bne _0207297E + ldr r2, _020729C8 ; =0x000006A4 + add r0, #0xf8 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + mov r1, #0x2a + bl sub_0200A8E0 + pop {r4-r6, pc} +_0207297E: + ldr r1, _020729CC ; =0x00000B25 + ldr r0, [r2, #0x0] + ldrb r1, [r5, r1] + bl sub_0206B9B0 + add r6, r0, #0x0 + ldr r0, _020729D0 ; =0x0000069C + mov r1, #0x25 + ldr r0, [r5, r0] + bl sub_0200A914 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200ACF8 + mov r1, #0x6a + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + pop {r4-r6, pc} + nop +_020729C4: .word 0x000005A4 +_020729C8: .word 0x000006A4 +_020729CC: .word 0x00000B25 +_020729D0: .word 0x0000069C + + thumb_func_start sub_020729D4 +sub_020729D4: ; 0x020729D4 + push {r3-r4, lr} + sub sp, #0x4 + add r2, r0, #0x0 + mov r0, #0x2 + str r0, [sp, #0x0] + ldr r0, _020729FC ; =0x00000698 + add r4, r1, #0x0 + ldr r0, [r2, r0] + add r3, r2, #0x4 + lsl r2, r4, #0x2 + add r2, r4, r2 + add r2, r2, #0x2 + lsl r2, r2, #0x4 + add r2, r3, r2 + mov r1, #0x0 + mov r3, #0x1c + bl sub_0200B9A8 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_020729FC: .word 0x00000698 + + thumb_func_start sub_02072A00 +sub_02072A00: ; 0x02072A00 + push {r3-r7, lr} + add r7, r1, #0x0 + add r4, r2, #0x0 + add r5, r0, #0x0 + ldr r0, _02072A4C ; =0x0000069C + ldr r1, _02072A50 ; =0x020F96F4 + lsl r2, r4, #0x3 + ldrh r1, [r1, r2] + ldr r0, [r5, r0] + bl sub_0200A914 + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200ACF8 + mov r2, #0x6a + mov r1, #0x2c + lsl r2, r2, #0x4 + mul r1, r4 + ldr r0, [r5, r2] + add r1, r5, r1 + add r2, #0x60 + ldr r1, [r1, r2] + add r2, r6, #0x0 + bl sub_0200B7B8 + add r0, r6, #0x0 + bl sub_02021A20 + pop {r3-r7, pc} + nop +_02072A4C: .word 0x0000069C +_02072A50: .word 0x020F96F4 + + thumb_func_start sub_02072A54 +sub_02072A54: ; 0x02072A54 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + lsl r0, r1, #0x2 + add r0, r1, r0 + lsl r6, r0, #0x4 + add r7, r1, #0x0 + mov r0, #0x2c + mul r7, r0 + mov r1, #0x0 + mov r2, #0x7 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _02072B14 ; =0x000F0E00 + add r3, r5, r7 + str r0, [sp, #0x8] + add r4, r5, #0x4 + str r1, [sp, #0xc] + lsl r2, r2, #0x8 + ldr r2, [r3, r2] + add r0, r4, r6 + add r3, r1, #0x0 + bl sub_0201BDE0 + mov r2, #0x71 + add r0, r5, r7 + lsl r2, r2, #0x4 + ldrb r0, [r0, r2] + cmp r0, #0x1 + bne _02072A9C + add r0, r4, r6 + bl sub_02019220 + add sp, #0x10 + pop {r3-r7, pc} +_02072A9C: + sub r0, r2, #0x2 + add r0, r5, r0 + ldrh r0, [r0, r7] + lsl r1, r0, #0x13 + lsr r1, r1, #0x1f + bne _02072B0A + lsl r0, r0, #0x11 + lsr r0, r0, #0x1e + bne _02072ADC + add r0, r2, #0x0 + sub r0, #0x74 + sub r2, #0x68 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + mov r1, #0x1b + bl sub_0200A8E0 + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + mov r0, #0xc1 + lsl r0, r0, #0xa + str r0, [sp, #0x8] + ldr r2, _02072B18 ; =0x000006A8 + str r1, [sp, #0xc] + ldr r2, [r5, r2] + add r0, r4, r6 + mov r3, #0x40 + bl sub_0201BDE0 + b _02072B0A +_02072ADC: + cmp r0, #0x1 + bne _02072B0A + add r0, r2, #0x0 + sub r0, #0x74 + sub r2, #0x68 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + mov r1, #0x1c + bl sub_0200A8E0 + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _02072B1C ; =0x00050600 + ldr r2, _02072B18 ; =0x000006A8 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + ldr r2, [r5, r2] + add r0, r4, r6 + mov r3, #0x40 + bl sub_0201BDE0 +_02072B0A: + add r0, r4, r6 + bl sub_02019220 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02072B14: .word 0x000F0E00 +_02072B18: .word 0x000006A8 +_02072B1C: .word 0x00050600 + + thumb_func_start sub_02072B20 +sub_02072B20: ; 0x02072B20 + push {r4, lr} + sub sp, #0x10 + lsl r2, r1, #0x2 + add r2, r1, r2 + add r2, r2, #0x1 + add r3, r0, #0x4 + lsl r2, r2, #0x4 + add r4, r3, r2 + mov r2, #0x2c + mul r2, r1 + ldr r3, _02072B78 ; =0x0000070E + add r2, r0, r2 + ldrh r1, [r2, r3] + lsl r1, r1, #0x14 + lsr r1, r1, #0x14 + cmp r1, #0x7 + beq _02072B4C + add r0, r4, #0x0 + bl sub_02019220 + add sp, #0x10 + pop {r4, pc} +_02072B4C: + mov r1, #0x0 + str r1, [sp, #0x0] + str r4, [sp, #0x4] + mov r1, #0x5 + str r1, [sp, #0x8] + mov r1, #0x2 + str r1, [sp, #0xc] + add r1, r3, #0x0 + sub r3, r3, #0x4 + sub r1, #0x76 + ldrh r2, [r2, r3] + ldr r0, [r0, r1] + mov r1, #0x1 + mov r3, #0x3 + bl sub_0200BA78 + add r0, r4, #0x0 + bl sub_02019220 + add sp, #0x10 + pop {r4, pc} + nop +_02072B78: .word 0x0000070E + + thumb_func_start sub_02072B7C +sub_02072B7C: ; 0x02072B7C + push {r4-r5, lr} + sub sp, #0xc + add r2, r0, #0x0 + lsl r0, r1, #0x2 + add r0, r1, r0 + add r0, r0, #0x2 + add r3, r2, #0x4 + lsl r0, r0, #0x4 + add r4, r3, r0 + mov r3, #0x2c + mul r3, r1 + add r1, r2, r3 + str r4, [sp, #0x0] + mov r0, #0x4 + str r0, [sp, #0x4] + mov r0, #0x2 + ldr r5, _02072BB8 ; =0x00000698 + str r0, [sp, #0x8] + ldr r0, [r2, r5] + add r5, #0x6e + ldrh r1, [r1, r5] + mov r2, #0x3 + mov r3, #0x1 + bl sub_0200B9EC + add r0, r4, #0x0 + bl sub_02019220 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 +_02072BB8: .word 0x00000698 + + thumb_func_start sub_02072BBC +sub_02072BBC: ; 0x02072BBC + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x4 + lsl r0, r1, #0x2 + add r0, r1, r0 + add r0, r0, #0x2 + lsl r4, r0, #0x4 + mov r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x10 + mov r1, #0x0 + str r0, [sp, #0x4] + add r0, r5, r4 + mov r2, #0x4 + add r3, r1, #0x0 + bl sub_020196F4 + add r0, r5, r4 + bl sub_02019220 + add sp, #0x8 + pop {r3-r5, pc} + + thumb_func_start sub_02072BE8 +sub_02072BE8: ; 0x02072BE8 + push {r4-r5, lr} + sub sp, #0xc + add r2, r0, #0x0 + lsl r0, r1, #0x2 + add r0, r1, r0 + add r0, r0, #0x2 + add r3, r2, #0x4 + lsl r0, r0, #0x4 + add r4, r3, r0 + mov r3, #0x2c + mul r3, r1 + add r1, r2, r3 + str r4, [sp, #0x0] + mov r0, #0x24 + str r0, [sp, #0x4] + mov r0, #0x2 + ldr r5, _02072C24 ; =0x00000698 + str r0, [sp, #0x8] + ldr r0, [r2, r5] + add r5, #0x70 + ldrh r1, [r1, r5] + mov r2, #0x3 + mov r3, #0x0 + bl sub_0200B9EC + add r0, r4, #0x0 + bl sub_02019220 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 +_02072C24: .word 0x00000698 + + thumb_func_start sub_02072C28 +sub_02072C28: ; 0x02072C28 + push {r4-r7, lr} + sub sp, #0xc + lsl r2, r1, #0x2 + add r2, r1, r2 + add r5, r0, #0x0 + add r2, r2, #0x3 + add r0, r5, #0x4 + lsl r2, r2, #0x4 + add r4, r0, r2 + mov r0, #0x2c + add r6, r1, #0x0 + mul r6, r0 + ldr r0, _02072D0C ; =0x00000708 + mov r2, #0x30 + add r7, r5, r0 + sub r0, r0, #0x2 + add r0, r5, r0 + str r0, [sp, #0x8] + ldrh r0, [r0, r6] + ldrh r1, [r7, r6] + bl sub_02079A54 + cmp r0, #0x4 + bhi _02072CBE + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r2, r0, #0x1 + lsl r2, r5, #0 + lsl r2, r2, #0 + lsl r2, r2, #0 + add r0, r4, #0x0 + bl sub_02019220 + add sp, #0xc + pop {r4-r7, pc} +_02072C78: + .byte 0x63, 0x7A, 0x25, 0x49, 0x01, 0x20, 0x1B, 0x01 + .byte 0x09, 0x33, 0x5B, 0x04, 0x69, 0x18, 0x04, 0x22, 0x1B, 0x0C, 0xA5, 0xF7, 0x93, 0xF9, 0x16, 0xE0 + .byte 0x63, 0x7A, 0x20, 0x49, 0x01, 0x20, 0x1B, 0x01, 0x09, 0x33, 0x5B, 0x04, 0x69, 0x18, 0x04, 0x22 + .byte 0x1B, 0x0C, 0xA5, 0xF7, 0x87, 0xF9, 0x0A, 0xE0, 0x63, 0x7A, 0x1B, 0x49, 0x01, 0x20, 0x1B, 0x01 + .byte 0x09, 0x33, 0x5B, 0x04, 0x69, 0x18, 0x04, 0x22, 0x1B, 0x0C, 0xA5, 0xF7, 0x7B, 0xF9 +_02072CBE: + ldr r0, [sp, #0x8] + ldrh r1, [r7, r6] + ldrh r0, [r0, r6] + mov r2, #0x30 + bl sub_02079A0C + add r5, r0, #0x0 + str r5, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0xa + mov r2, #0x0 + mov r3, #0x2 + bl sub_020196F4 + str r5, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0x9 + mov r2, #0x0 + mov r3, #0x3 + bl sub_020196F4 + str r5, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0xa + mov r2, #0x0 + mov r3, #0x5 + bl sub_020196F4 + add r0, r4, #0x0 + bl sub_02019220 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02072D0C: .word 0x00000708 +_02072D10: + .byte 0xB6, 0x04, 0x00, 0x00, 0xD6, 0x04, 0x00, 0x00, 0xF6, 0x04, 0x00, 0x00 + + thumb_func_start sub_02072D1C +sub_02072D1C: ; 0x02072D1C + push {r3-r7, lr} + sub sp, #0x18 + add r6, r1, #0x0 + add r5, r0, #0x0 + lsl r0, r6, #0x2 + add r4, r6, r0 + add r0, r5, #0x4 + str r0, [sp, #0x0] + lsl r0, r4, #0x4 + ldr r1, [sp, #0x0] + str r0, [sp, #0x4] + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r4, #0x1 + lsl r0, r0, #0x4 + add r7, r5, #0x4 + str r0, [sp, #0x8] + add r0, r7, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r7, #0x0 + str r0, [sp, #0xc] + add r0, r4, #0x2 + lsl r0, r0, #0x4 + ldr r1, [sp, #0xc] + str r0, [sp, #0x10] + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r7, #0x0 + str r0, [sp, #0x14] + add r0, r4, #0x3 + lsl r4, r0, #0x4 + ldr r0, [sp, #0x14] + mov r1, #0x0 + add r0, r0, r4 + bl sub_02019620 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02072A54 + mov r0, #0x2c + mul r0, r6 + add r1, r5, r0 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + cmp r0, #0x1 + bne _02072DB0 + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x4] + add r0, r1, r0 + bl sub_02019220 + ldr r0, [sp, #0x8] + add r0, r7, r0 + bl sub_02019220 + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x10] + add r0, r1, r0 + bl sub_02019220 + ldr r0, [sp, #0x14] + add r0, r0, r4 + bl sub_02019220 + add sp, #0x18 + pop {r3-r7, pc} +_02072DB0: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_020729D4 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02072B20 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02072B7C + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02072BE8 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02072C28 + add sp, #0x18 + pop {r3-r7, pc} + + thumb_func_start sub_02072DDC +sub_02072DDC: ; 0x02072DDC + push {r3-r5, lr} + add r5, r0, #0x0 + lsl r0, r1, #0x2 + add r4, r1, r0 + add r1, r5, #0x4 + lsl r0, r4, #0x4 + add r0, r1, r0 + bl sub_02019548 + add r0, r4, #0x1 + add r1, r5, #0x4 + lsl r0, r0, #0x4 + add r0, r1, r0 + bl sub_02019548 + add r0, r4, #0x2 + add r1, r5, #0x4 + lsl r0, r0, #0x4 + add r0, r1, r0 + bl sub_02019548 + add r0, r4, #0x3 + add r1, r5, #0x4 + lsl r0, r0, #0x4 + add r0, r1, r0 + bl sub_02019548 + pop {r3-r5, pc} + + thumb_func_start sub_02072E14 +sub_02072E14: ; 0x02072E14 + push {r3-r5, lr} + add r5, r0, #0x0 + lsl r0, r1, #0x2 + add r4, r1, r0 + add r1, r5, #0x4 + lsl r0, r4, #0x4 + add r0, r1, r0 + bl sub_0201958C + add r0, r4, #0x1 + add r1, r5, #0x4 + lsl r0, r0, #0x4 + add r0, r1, r0 + bl sub_0201958C + add r0, r4, #0x2 + add r1, r5, #0x4 + lsl r0, r0, #0x4 + add r0, r1, r0 + bl sub_0201958C + add r0, r4, #0x3 + add r1, r5, #0x4 + lsl r0, r0, #0x4 + add r0, r1, r0 + bl sub_0201958C + pop {r3-r5, pc} + + thumb_func_start sub_02072E4C +sub_02072E4C: ; 0x02072E4C + push {r3-r6, lr} + sub sp, #0x4 + add r4, r1, #0x0 + add r5, r0, #0x0 + lsl r0, r4, #0x2 + add r6, r4, r0 + add r1, r5, #0x4 + lsl r0, r6, #0x4 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r6, #0x1 + add r1, r5, #0x4 + lsl r0, r0, #0x4 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072A54 + mov r0, #0x2c + mul r0, r4 + add r1, r5, r0 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + cmp r0, #0x1 + bne _02072E98 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_020732F4 + add sp, #0x4 + pop {r3-r6, pc} +_02072E98: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072B20 + ldr r0, _02072EE0 ; =0x000005A4 + add r1, r4, #0x0 + ldr r0, [r5, r0] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r1, r0, #0x0 + mov r0, #0x0 + ldr r3, _02072EE0 ; =0x000005A4 + str r0, [sp, #0x0] + ldr r3, [r5, r3] + mov r2, #0x3 + ldrh r3, [r3, #0x24] + bl sub_02069168 + cmp r0, #0x0 + bne _02072ED0 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_020732F4 + add sp, #0x4 + pop {r3-r6, pc} +_02072ED0: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020732F4 + add sp, #0x4 + pop {r3-r6, pc} + nop +_02072EE0: .word 0x000005A4 + + thumb_func_start sub_02072EE4 +sub_02072EE4: ; 0x02072EE4 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + lsl r0, r4, #0x2 + add r6, r4, r0 + add r1, r5, #0x4 + lsl r0, r6, #0x4 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r6, #0x1 + add r1, r5, #0x4 + lsl r0, r0, #0x4 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072A54 + mov r0, #0x2c + mul r0, r4 + add r1, r5, r0 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + cmp r0, #0x1 + bne _02072F2C + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_02073364 + pop {r4-r6, pc} +_02072F2C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072B20 + ldr r0, _02072F74 ; =0x000005A4 + add r1, r4, #0x0 + ldr r0, [r5, r0] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl sub_02076AA0 + cmp r0, #0xff + bne _02072F58 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_02073364 + pop {r4-r6, pc} +_02072F58: + cmp r0, #0xfd + bne _02072F68 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x2 + bl sub_02073364 + pop {r4-r6, pc} +_02072F68: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_02073364 + pop {r4-r6, pc} + .balign 4 +_02072F74: .word 0x000005A4 + + thumb_func_start sub_02072F78 +sub_02072F78: ; 0x02072F78 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + lsl r0, r4, #0x2 + add r6, r4, r0 + add r1, r5, #0x4 + lsl r0, r6, #0x4 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r6, #0x1 + add r1, r5, #0x4 + lsl r0, r0, #0x4 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072A54 + mov r0, #0x2c + add r6, r4, #0x0 + mul r6, r0 + mov r0, #0x71 + add r1, r5, r6 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + cmp r0, #0x1 + beq _02072FBE + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072B20 +_02072FBE: + ldr r2, _02072FD8 ; =0x0000070E + add r3, r5, r6 + ldrh r2, [r3, r2] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x10 + lsr r2, r2, #0x1f + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_020733E4 + pop {r4-r6, pc} + nop +_02072FD8: .word 0x0000070E + + thumb_func_start sub_02072FDC +sub_02072FDC: ; 0x02072FDC + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + lsl r0, r4, #0x2 + add r6, r4, r0 + add r1, r5, #0x4 + lsl r0, r6, #0x4 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r6, #0x1 + add r1, r5, #0x4 + lsl r0, r0, #0x4 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072A54 + mov r0, #0x2c + mul r0, r4 + add r1, r5, r0 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + cmp r0, #0x1 + beq _02073020 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02072B20 +_02073020: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02073024 +sub_02073024: ; 0x02073024 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _02073080 ; =0x000005A4 + add r4, r1, #0x0 + ldr r1, [r5, r0] + mov r2, #0x0 + add r0, r1, #0x0 + add r0, #0x32 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r3, r0, #0x1c + beq _0207305C + add r0, r4, #0x1 +_0207303E: + add r6, r1, r2 + add r6, #0x2c + ldrb r6, [r6, #0x0] + cmp r0, r6 + bne _02073052 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073448 + pop {r4-r6, pc} +_02073052: + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + cmp r2, r3 + blo _0207303E +_0207305C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02071340 + cmp r0, #0x0 + bne _02073074 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x8 + bl sub_02073448 + pop {r4-r6, pc} +_02073074: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x7 + bl sub_02073448 + pop {r4-r6, pc} + .balign 4 +_02073080: .word 0x000005A4 + + thumb_func_start sub_02073084 +sub_02073084: ; 0x02073084 + push {r4, lr} + add r4, r2, #0x0 + mov r2, #0x0 + bl sub_02002E14 + sub r0, r4, r0 + lsr r0, r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_02073094 +sub_02073094: ; 0x02073094 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + mov r0, #0x79 + lsl r0, r0, #0x2 + add r4, r1, #0x0 + add r0, r5, r0 + mov r1, #0x0 + bl sub_02019620 + mov r0, #0x7d + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x0 + bl sub_02019620 + mov r0, #0x1 + tst r0, r4 + beq _020730FE + ldr r2, _0207314C ; =0x0000069C + mov r1, #0x0 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + ldr r2, _02073150 ; =0x000001EB + ldr r1, _02073154 ; =0x000006A8 + ldrb r2, [r5, r2] + ldr r1, [r5, r1] + mov r0, #0x0 + lsl r2, r2, #0x3 + bl sub_02073084 + mov r1, #0x0 + add r3, r0, #0x0 + str r1, [sp, #0x0] + mov r2, #0xff + str r2, [sp, #0x4] + ldr r0, _02073158 ; =0x000F0E00 + add r2, #0xe5 + str r0, [sp, #0x8] + add r0, r5, r2 + ldr r2, _02073154 ; =0x000006A8 + str r1, [sp, #0xc] + ldr r2, [r5, r2] + bl sub_0201BDE0 + mov r0, #0x79 + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02019220 +_020730FE: + mov r0, #0x2 + tst r0, r4 + beq _02073148 + ldr r2, _0207314C ; =0x0000069C + mov r1, #0x1 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + ldr r2, _0207315C ; =0x000001FB + ldr r1, _02073154 ; =0x000006A8 + ldrb r2, [r5, r2] + ldr r1, [r5, r1] + mov r0, #0x0 + lsl r2, r2, #0x3 + bl sub_02073084 + mov r1, #0x0 + add r3, r0, #0x0 + str r1, [sp, #0x0] + mov r2, #0xff + str r2, [sp, #0x4] + ldr r0, _02073158 ; =0x000F0E00 + add r2, #0xf5 + str r0, [sp, #0x8] + add r0, r5, r2 + ldr r2, _02073154 ; =0x000006A8 + str r1, [sp, #0xc] + ldr r2, [r5, r2] + bl sub_0201BDE0 + mov r0, #0x7d + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02019220 +_02073148: + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 +_0207314C: .word 0x0000069C +_02073150: .word 0x000001EB +_02073154: .word 0x000006A8 +_02073158: .word 0x000F0E00 +_0207315C: .word 0x000001FB + + thumb_func_start sub_02073160 +sub_02073160: ; 0x02073160 + push {r3-r6, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + cmp r3, #0x1 + bne _0207317A + add r0, r4, #0x0 + mov r1, #0x1 + mov r2, #0xa + mov r3, #0xf + bl sub_0200D0BC +_0207317A: + add r0, r4, #0x0 + mov r1, #0xf + bl sub_02019620 + mov r0, #0x0 + mvn r0, r0 + cmp r6, r0 + beq _02073198 + ldr r2, _020731B8 ; =0x0000069C + add r1, r6, #0x0 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r2, [r5, r2] + bl sub_0200A8E0 +_02073198: + mov r3, #0x0 + str r3, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r2, _020731BC ; =0x000006A4 + str r3, [sp, #0x8] + ldr r2, [r5, r2] + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0201BD84 + add r0, r4, #0x0 + bl sub_02019220 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 +_020731B8: .word 0x0000069C +_020731BC: .word 0x000006A4 + + thumb_func_start sub_020731C0 +sub_020731C0: ; 0x020731C0 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x81 + lsl r1, r1, #0x2 + add r3, r2, #0x0 + add r1, r0, r1 + add r2, r4, #0x0 + bl sub_02073160 + pop {r4, pc} + + thumb_func_start sub_020731D4 +sub_020731D4: ; 0x020731D4 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x85 + lsl r1, r1, #0x2 + add r3, r2, #0x0 + add r1, r0, r1 + add r2, r4, #0x0 + bl sub_02073160 + pop {r4, pc} + + thumb_func_start sub_020731E8 +sub_020731E8: ; 0x020731E8 + push {r4-r6, lr} + mov r6, #0x89 + add r5, r0, #0x0 + add r4, r1, #0x0 + lsl r6, r6, #0x2 + cmp r2, #0x1 + bne _02073202 + add r0, r5, r6 + mov r1, #0x1 + mov r2, #0xa + mov r3, #0xf + bl sub_0200D0BC +_02073202: + add r0, r5, r6 + mov r1, #0xf + bl sub_02019620 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + beq _02073220 + ldr r2, _02073228 ; =0x0000069C + add r1, r4, #0x0 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r2, [r5, r2] + bl sub_0200A8E0 +_02073220: + add r0, r5, #0x0 + bl sub_0207322C + pop {r4-r6, pc} + .balign 4 +_02073228: .word 0x0000069C + + thumb_func_start sub_0207322C +sub_0207322C: ; 0x0207322C + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + mov r0, #0x1 + bl sub_02002B60 + mov r0, #0x0 + bl sub_02002B7C + ldr r0, _0207326C ; =0x000005A4 + ldr r0, [r4, r0] + ldr r0, [r0, #0xc] + bl sub_02024FF4 + mov r3, #0x0 + str r3, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, _02073270 ; =sub_0207327C + ldr r2, _02073274 ; =0x000006A4 + str r0, [sp, #0x8] + mov r0, #0x89 + lsl r0, r0, #0x2 + ldr r2, [r4, r2] + add r0, r4, r0 + mov r1, #0x1 + bl sub_0201BD84 + ldr r1, _02073278 ; =0x00000B24 + strb r0, [r4, r1] + add sp, #0xc + pop {r3-r4, pc} + nop +_0207326C: .word 0x000005A4 +_02073270: .word sub_0207327C + 1 +_02073274: .word 0x000006A4 +_02073278: .word 0x00000B24 + + thumb_func_start sub_0207327C +sub_0207327C: ; 0x0207327C + push {r3, lr} + cmp r1, #0x5 + bhi _020732BE + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r5, #0 + lsl r2, r1, #0 + lsl r0, r2, #0 + lsl r6, r2, #0 + lsl r6, r3, #0 + lsl r6, r4, #0 + bl sub_02005514 + pop {r3, pc} +_020732A0: + .byte 0x92, 0xF7, 0x0C, 0xFD, 0x08, 0xBD, 0x07, 0x48, 0x92, 0xF7, 0x0E, 0xF9, 0x07, 0xE0, 0x06, 0x48 + .byte 0x92, 0xF7, 0xBA, 0xFC, 0x03, 0xE0, 0x03, 0x48, 0x92, 0xF7, 0x26, 0xF9, 0x08, 0xBD +_020732BE: + mov r0, #0x0 + pop {r3, pc} + nop +_020732C4: + .byte 0xE6, 0x05, 0x00, 0x00, 0x83, 0x04, 0x00, 0x00 + + thumb_func_start sub_020732CC +sub_020732CC: ; 0x020732CC + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + mov r0, #0xc + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r1, _020732EC ; =0x020F96EC + mov r2, #0x1 + mov r3, #0xe + bl sub_02002198 + ldr r1, _020732F0 ; =0x000006FC + str r0, [r4, r1] + add sp, #0x4 + pop {r3-r4, pc} + nop +_020732EC: .word 0x020F96EC +_020732F0: .word 0x000006FC + + thumb_func_start sub_020732F4 +sub_020732F4: ; 0x020732F4 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + lsl r0, r1, #0x2 + add r0, r1, r0 + add r0, r0, #0x4 + add r4, r5, #0x4 + lsl r6, r0, #0x4 + add r0, r4, r6 + mov r1, #0x0 + add r7, r2, #0x0 + bl sub_02019620 + cmp r7, #0x0 + beq _02073318 + cmp r7, #0x1 + beq _02073326 + b _02073332 +_02073318: + ldr r0, _0207335C ; =0x0000069C + mov r1, #0xb2 + ldr r0, [r5, r0] + bl sub_0200A914 + str r0, [sp, #0x10] + b _02073332 +_02073326: + ldr r0, _0207335C ; =0x0000069C + mov r1, #0xb3 + ldr r0, [r5, r0] + bl sub_0200A914 + str r0, [sp, #0x10] +_02073332: + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _02073360 ; =0x000F0E00 + ldr r2, [sp, #0x10] + str r0, [sp, #0x8] + add r0, r4, r6 + add r3, r1, #0x0 + str r1, [sp, #0xc] + bl sub_0201BDE0 + ldr r0, [sp, #0x10] + bl sub_02021A20 + add r0, r4, r6 + bl sub_02019220 + add sp, #0x14 + pop {r4-r7, pc} + nop +_0207335C: .word 0x0000069C +_02073360: .word 0x000F0E00 + + thumb_func_start sub_02073364 +sub_02073364: ; 0x02073364 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + lsl r0, r1, #0x2 + add r0, r1, r0 + add r0, r0, #0x4 + add r4, r5, #0x4 + lsl r7, r0, #0x4 + add r0, r4, r7 + mov r1, #0x0 + add r6, r2, #0x0 + bl sub_02019620 + cmp r6, #0x0 + beq _0207338C + cmp r6, #0x1 + beq _0207339A + cmp r6, #0x2 + beq _020733A8 + b _020733B4 +_0207338C: + ldr r0, _020733DC ; =0x0000069C + mov r1, #0xaf + ldr r0, [r5, r0] + bl sub_0200A914 + str r0, [sp, #0x10] + b _020733B4 +_0207339A: + ldr r0, _020733DC ; =0x0000069C + mov r1, #0xb0 + ldr r0, [r5, r0] + bl sub_0200A914 + str r0, [sp, #0x10] + b _020733B4 +_020733A8: + ldr r0, _020733DC ; =0x0000069C + mov r1, #0xb1 + ldr r0, [r5, r0] + bl sub_0200A914 + str r0, [sp, #0x10] +_020733B4: + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _020733E0 ; =0x000F0E00 + ldr r2, [sp, #0x10] + str r0, [sp, #0x8] + add r0, r4, r7 + add r3, r1, #0x0 + str r1, [sp, #0xc] + bl sub_0201BDE0 + ldr r0, [sp, #0x10] + bl sub_02021A20 + add r0, r4, r7 + bl sub_02019220 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_020733DC: .word 0x0000069C +_020733E0: .word 0x000F0E00 + + thumb_func_start sub_020733E4 +sub_020733E4: ; 0x020733E4 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + lsl r0, r1, #0x2 + add r0, r1, r0 + add r0, r0, #0x4 + add r4, r5, #0x4 + lsl r6, r0, #0x4 + add r0, r4, r6 + mov r1, #0x0 + add r7, r2, #0x0 + bl sub_02019620 + cmp r7, #0x0 + ldr r0, _02073440 ; =0x0000069C + bne _0207340E + ldr r0, [r5, r0] + mov r1, #0xb5 + bl sub_0200A914 + b _02073416 +_0207340E: + ldr r0, [r5, r0] + mov r1, #0xb4 + bl sub_0200A914 +_02073416: + mov r1, #0x0 + add r5, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _02073444 ; =0x000F0E00 + add r2, r5, #0x0 + str r0, [sp, #0x8] + add r0, r4, r6 + add r3, r1, #0x0 + str r1, [sp, #0xc] + bl sub_0201BDE0 + add r0, r5, #0x0 + bl sub_02021A20 + add r0, r4, r6 + bl sub_02019220 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02073440: .word 0x0000069C +_02073444: .word 0x000F0E00 + + thumb_func_start sub_02073448 +sub_02073448: ; 0x02073448 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + lsl r0, r1, #0x2 + add r0, r1, r0 + add r0, r0, #0x4 + add r4, r5, #0x4 + lsl r7, r0, #0x4 + add r0, r4, r7 + mov r1, #0x0 + add r6, r2, #0x0 + bl sub_02019620 + cmp r6, #0x6 + ldr r0, _020734B8 ; =0x0000069C + bhs _02073476 + add r6, #0xa9 + ldr r0, [r5, r0] + add r1, r6, #0x0 + bl sub_0200A914 + add r5, r0, #0x0 + b _02073490 +_02073476: + cmp r6, #0x7 + bne _02073486 + ldr r0, [r5, r0] + mov r1, #0xa7 + bl sub_0200A914 + add r5, r0, #0x0 + b _02073490 +_02073486: + ldr r0, [r5, r0] + mov r1, #0xa8 + bl sub_0200A914 + add r5, r0, #0x0 +_02073490: + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _020734BC ; =0x000F0E00 + add r2, r5, #0x0 + str r0, [sp, #0x8] + add r0, r4, r7 + add r3, r1, #0x0 + str r1, [sp, #0xc] + bl sub_0201BDE0 + add r0, r5, #0x0 + bl sub_02021A20 + add r0, r4, r7 + bl sub_02019220 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_020734B8: .word 0x0000069C +_020734BC: .word 0x000F0E00 + + thumb_func_start sub_020734C0 +sub_020734C0: ; 0x020734C0 + push {r4-r7, lr} + sub sp, #0x2c + add r5, r0, #0x0 + ldr r0, _02073628 ; =0x000005A4 + ldr r1, _0207362C ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + mov r1, #0xa3 + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + add r1, sp, #0x20 + strh r0, [r1, #0x0] + add r0, r4, #0x0 + mov r1, #0xa4 + mov r2, #0x0 + bl sub_020671BC + add r1, sp, #0x20 + strh r0, [r1, #0x2] + add r0, r4, #0x0 + mov r1, #0xa5 + mov r2, #0x0 + bl sub_020671BC + add r1, sp, #0x20 + strh r0, [r1, #0x4] + add r0, r4, #0x0 + mov r1, #0xa7 + mov r2, #0x0 + bl sub_020671BC + add r1, sp, #0x20 + strh r0, [r1, #0x6] + add r0, r4, #0x0 + mov r1, #0xa8 + mov r2, #0x0 + bl sub_020671BC + add r1, sp, #0x20 + strh r0, [r1, #0x8] + add r0, r4, #0x0 + mov r1, #0xa6 + mov r2, #0x0 + bl sub_020671BC + add r1, sp, #0x20 + strh r0, [r1, #0xa] + mov r3, #0x1 + mov r1, #0x9 + str r3, [sp, #0x0] + mov r0, #0xe + str r0, [sp, #0x4] + mov r0, #0xc + str r0, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + lsl r1, r1, #0x6 + str r1, [sp, #0x10] + add r1, #0x14 + ldr r0, [r5, #0x0] + add r1, r5, r1 + bl sub_02019064 + mov r0, #0x95 + lsl r0, r0, #0x2 + mov r1, #0x1 + add r0, r5, r0 + add r2, r1, #0x0 + mov r3, #0xe + bl sub_0200CCA4 + mov r0, #0x95 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0xf + bl sub_02019620 + mov r4, #0x0 + str r4, [sp, #0x14] + add r7, r5, #0x0 + add r6, sp, #0x20 +_0207356C: + ldr r0, _02073630 ; =0x0000069C + ldr r1, [sp, #0x14] + ldr r0, [r5, r0] + add r1, #0xb9 + bl sub_0200A914 + str r0, [sp, #0x18] + mov r1, #0x0 + str r4, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + mov r0, #0x95 + lsl r0, r0, #0x2 + ldr r2, [sp, #0x18] + add r0, r5, r0 + add r3, r1, #0x0 + bl sub_0201BD84 + ldr r0, [sp, #0x18] + bl sub_02021A20 + ldr r0, _02073630 ; =0x0000069C + mov r1, #0xbf + ldr r0, [r5, r0] + bl sub_0200A914 + str r0, [sp, #0x1c] + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r2, _02073634 ; =0x00000B28 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldrh r3, [r6, #0x0] + ldrh r2, [r7, r2] + ldr r0, [r5, r0] + mov r1, #0x0 + sub r2, r3, r2 + mov r3, #0x2 + bl sub_0200AD38 + mov r0, #0x6a + ldr r1, _02073638 ; =0x000006A4 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, [sp, #0x1c] + bl sub_0200B7B8 + ldr r0, [sp, #0x1c] + bl sub_02021A20 + ldr r1, _02073638 ; =0x000006A4 + mov r0, #0x0 + ldr r1, [r5, r1] + add r2, r0, #0x0 + bl sub_02002E14 + mov r1, #0x68 + sub r3, r1, r0 + str r4, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r2, _02073638 ; =0x000006A4 + mov r0, #0x95 + lsl r0, r0, #0x2 + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #0x0 + bl sub_0201BD84 + ldrh r1, [r6, #0x0] + ldr r0, _02073634 ; =0x00000B28 + add r4, #0x10 + strh r1, [r7, r0] + ldr r0, [sp, #0x14] + add r7, r7, #0x2 + add r0, r0, #0x1 + add r6, r6, #0x2 + str r0, [sp, #0x14] + cmp r0, #0x6 + blo _0207356C + mov r0, #0x95 + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02019220 + add sp, #0x2c + pop {r4-r7, pc} + .balign 4 +_02073628: .word 0x000005A4 +_0207362C: .word 0x00000B25 +_02073630: .word 0x0000069C +_02073634: .word 0x00000B28 +_02073638: .word 0x000006A4 + + thumb_func_start sub_0207363C +sub_0207363C: ; 0x0207363C + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + mov r0, #0x70 + str r0, [sp, #0x4] + mov r0, #0x95 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0xf + mov r2, #0x50 + mov r3, #0x0 + bl sub_020196F4 + ldr r0, _020736E8 ; =0x0000069C + mov r1, #0xc0 + ldr r0, [r5, r0] + bl sub_0200A914 + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + add r6, r5, #0x0 + add r4, r0, #0x0 +_0207366E: + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r2, _020736EC ; =0x00000B28 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldrh r2, [r6, r2] + ldr r0, [r5, r0] + mov r1, #0x0 + mov r3, #0x3 + bl sub_0200AD38 + mov r0, #0x6a + ldr r1, _020736F0 ; =0x000006A4 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, [sp, #0xc] + bl sub_0200B7B8 + ldr r1, _020736F0 ; =0x000006A4 + mov r0, #0x0 + ldr r1, [r5, r1] + add r2, r0, #0x0 + bl sub_02002E14 + add r7, r0, #0x0 + mov r3, #0x68 + str r4, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r2, _020736F0 ; =0x000006A4 + mov r0, #0x95 + lsl r0, r0, #0x2 + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #0x0 + sub r3, r3, r7 + bl sub_0201BD84 + ldr r0, [sp, #0x10] + add r6, r6, #0x2 + add r0, r0, #0x1 + add r4, #0x10 + str r0, [sp, #0x10] + cmp r0, #0x6 + blo _0207366E + ldr r0, [sp, #0xc] + bl sub_02021A20 + mov r0, #0x95 + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02019220 + add sp, #0x14 + pop {r4-r7, pc} + nop +_020736E8: .word 0x0000069C +_020736EC: .word 0x00000B28 +_020736F0: .word 0x000006A4 + + thumb_func_start sub_020736F4 +sub_020736F4: ; 0x020736F4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x95 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x0 + bl sub_0200CCF8 + mov r0, #0x95 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019178 + pop {r4, pc} + + thumb_func_start sub_02073710 +sub_02073710: ; 0x02073710 + push {r3-r7, lr} + sub sp, #0x50 + add r4, r0, #0x0 + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E6E4 + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E74C + mov r0, #0x20 + mov r1, #0xc + bl sub_0201C24C + mov r0, #0xc + bl sub_0200BB14 + ldr r1, _020737BC ; =0x000005A8 + str r0, [r4, r1] + ldr r0, [r4, r1] + bl sub_0200BB34 + ldr r7, _020737C0 ; =0x000005AC + add r2, sp, #0x30 + ldr r3, _020737C4 ; =0x020F98F4 + str r0, [r4, r7] + ldmia r3!, {r0-r1} + add r6, r2, #0x0 + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + ldr r5, _020737C8 ; =0x020F98C4 + stmia r2!, {r0-r1} + add r3, sp, #0x1c + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + str r0, [r3, #0x0] + sub r0, r7, #0x4 + ldr r0, [r4, r0] + mov r3, #0x20 + bl sub_0200BB6C + sub r1, r7, #0x4 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + mov r2, #0x23 + bl sub_0200BBF0 + sub r0, r7, #0x4 + ldr r0, [r4, r0] + bl sub_0200BB68 + mov r2, #0x1 + mov r1, #0x0 + lsl r2, r2, #0x14 + bl sub_02008D24 + ldr r5, _020737CC ; =0x020F98D8 + add r3, sp, #0x0 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + sub r1, r7, #0x4 + str r0, [r3, #0x0] + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + bl sub_0200BD20 + add sp, #0x50 + pop {r3-r7, pc} + .balign 4 +_020737BC: .word 0x000005A8 +_020737C0: .word 0x000005AC +_020737C4: .word 0x020F98F4 +_020737C8: .word 0x020F98C4 +_020737CC: .word 0x020F98D8 + + thumb_func_start sub_020737D0 +sub_020737D0: ; 0x020737D0 + push {r4-r7, lr} + sub sp, #0x3c + add r5, r0, #0x0 + ldr r0, _02073878 ; =0x000005A4 + str r3, [sp, #0x8] + ldr r0, [r5, r0] + add r4, r2, #0x0 + ldr r0, [r0, #0x0] + add r7, r1, #0x0 + bl sub_0206B9B0 + lsl r1, r4, #0x10 + asr r6, r1, #0x10 + mov r1, #0x2c + mul r1, r7 + str r1, [sp, #0xc] + add r2, r5, r1 + ldr r1, _0207387C ; =0x00000716 + str r0, [sp, #0x10] + strh r6, [r2, r1] + ldr r3, [sp, #0x8] + add r1, r1, #0x2 + lsl r3, r3, #0x10 + asr r4, r3, #0x10 + strh r4, [r2, r1] + add r7, r7, #0x4 + bl sub_0206B6C8 + add r3, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r1, _02073880 ; =0x000005A8 + str r7, [sp, #0x4] + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + mov r2, #0x13 + bl sub_0200C9D8 + ldr r0, [sp, #0x10] + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + str r7, [sp, #0x14] + add r0, sp, #0x14 + strh r6, [r0, #0x4] + strh r4, [r0, #0x6] + mov r1, #0x0 + strh r1, [r0, #0x8] + strh r1, [r0, #0xa] + ldr r0, [sp, #0xc] + str r1, [sp, #0x20] + ldr r1, _02073884 ; =0x00000704 + add r3, r5, r0 + ldrh r0, [r3, r1] + add r1, #0xd + ldrb r1, [r3, r1] + bl sub_0206B7BC + add r0, r0, #0x3 + str r0, [sp, #0x24] + mov r0, #0x1 + str r0, [sp, #0x28] + mov r0, #0x0 + ldr r1, _02073880 ; =0x000005A8 + str r0, [sp, #0x2c] + str r0, [sp, #0x30] + str r0, [sp, #0x34] + str r0, [sp, #0x38] + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, sp, #0x14 + bl sub_0200BE38 + ldr r1, [sp, #0xc] + add r2, r5, r1 + ldr r1, _02073888 ; =0x00000724 + str r0, [r2, r1] + add sp, #0x3c + pop {r4-r7, pc} + nop +_02073878: .word 0x000005A4 +_0207387C: .word 0x00000716 +_02073880: .word 0x000005A8 +_02073884: .word 0x00000704 +_02073888: .word 0x00000724 + + thumb_func_start sub_0207388C +sub_0207388C: ; 0x0207388C + push {r4-r7, lr} + sub sp, #0x14 + ldr r1, _020739AC ; =0x000005A8 + add r5, r0, #0x0 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + ldr r2, _020739B0 ; =0x020F9914 + bl sub_0200BE38 + ldr r1, _020739B4 ; =0x000005C8 + ldr r2, _020739B8 ; =0x020F993C + str r0, [r5, r1] + add r0, r1, #0x0 + sub r0, #0x20 + sub r1, #0x1c + ldr r0, [r5, r0] + ldr r1, [r5, r1] + bl sub_0200BE38 + ldr r1, _020739BC ; =0x000005CC + ldr r2, _020739C0 ; =0x020F9964 + str r0, [r5, r1] + add r0, r1, #0x0 + sub r0, #0x24 + sub r1, #0x20 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + bl sub_0200BE38 + mov r1, #0x5d + lsl r1, r1, #0x4 + str r0, [r5, r1] + add r0, r1, #0x0 + sub r0, #0x28 + sub r1, #0x24 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, _020739C4 ; =0x020F998C + bl sub_0200BE38 + ldr r1, _020739C8 ; =0x000005D4 + ldr r2, _020739CC ; =0x020F9C84 + str r0, [r5, r1] + add r0, r1, #0x0 + sub r0, #0x2c + sub r1, #0x28 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + bl sub_0200BE38 + mov r1, #0x62 + lsl r1, r1, #0x4 + str r0, [r5, r1] + ldr r0, _020739B0 ; =0x020F9914 + mov r4, #0x0 + str r4, [sp, #0x4] + add r6, r5, #0x0 + str r0, [sp, #0x0] + add r7, r5, #0x0 + str r0, [sp, #0x8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] +_0207390A: + ldr r0, _020739AC ; =0x000005A8 + ldr r1, _020739D0 ; =0x000005AC + add r3, r4, #0x0 + ldr r2, [sp, #0x8] + add r3, #0xa0 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r2, r3 + bl sub_0200BE38 + ldr r1, _020739D4 ; =0x000005D8 + str r0, [r6, r1] + ldr r1, [sp, #0x0] + mov r0, #0xa4 + ldrsh r1, [r1, r0] + ldr r0, _020739D8 ; =0x0000071A + strh r1, [r7, r0] + ldr r1, [sp, #0x0] + mov r0, #0xa6 + ldrsh r1, [r1, r0] + ldr r0, _020739DC ; =0x0000071C + strh r1, [r7, r0] + ldr r0, _020739D4 ; =0x000005D8 + mov r1, #0x0 + ldr r0, [r6, r0] + bl sub_020200A0 + mov r2, #0x19 + ldr r0, _020739AC ; =0x000005A8 + ldr r1, _020739D0 ; =0x000005AC + lsl r2, r2, #0x4 + add r3, r4, r2 + ldr r2, [sp, #0xc] + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r2, r3 + bl sub_0200BE38 + mov r1, #0x5f + lsl r1, r1, #0x4 + mov r2, #0xa + str r0, [r6, r1] + add r0, r1, #0x0 + lsl r2, r2, #0x6 + sub r0, #0x48 + sub r1, #0x44 + add r3, r4, r2 + ldr r2, [sp, #0x10] + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r2, r3 + bl sub_0200BE38 + ldr r1, _020739E0 ; =0x00000608 + add r4, #0x28 + str r0, [r6, r1] + ldr r0, [sp, #0x0] + add r6, r6, #0x4 + add r0, #0x28 + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + add r7, #0x2c + add r0, r0, #0x1 + str r0, [sp, #0x4] + cmp r0, #0x6 + blo _0207390A + add r0, r1, #0x0 + sub r0, #0x3c + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 + mov r0, #0x62 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 + add sp, #0x14 + pop {r4-r7, pc} + nop +_020739AC: .word 0x000005A8 +_020739B0: .word 0x020F9914 +_020739B4: .word 0x000005C8 +_020739B8: .word 0x020F993C +_020739BC: .word 0x000005CC +_020739C0: .word 0x020F9964 +_020739C4: .word 0x020F998C +_020739C8: .word 0x000005D4 +_020739CC: .word 0x020F9C84 +_020739D0: .word 0x000005AC +_020739D4: .word 0x000005D8 +_020739D8: .word 0x0000071A +_020739DC: .word 0x0000071C +_020739E0: .word 0x00000608 + + thumb_func_start sub_020739E4 +sub_020739E4: ; 0x020739E4 + push {r3-r5, lr} + sub sp, #0x28 + add r4, r1, #0x0 + mov r1, #0x0 + add r5, r0, #0x0 + str r1, [sp, #0x0] + add r0, sp, #0x0 + strh r2, [r0, #0x4] + strh r3, [r0, #0x6] + strh r1, [r0, #0x8] + strh r1, [r0, #0xa] + mov r0, #0x1 + str r1, [sp, #0x10] + str r1, [sp, #0x18] + str r1, [sp, #0x1c] + str r1, [sp, #0x20] + str r1, [sp, #0x24] + ldr r1, _02073A28 ; =0x000005A8 + str r0, [sp, #0xc] + str r0, [sp, #0x14] + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, sp, #0x0 + bl sub_0200BE38 + lsl r1, r4, #0x2 + add r2, r5, r1 + mov r1, #0x5b + lsl r1, r1, #0x4 + str r0, [r2, r1] + add sp, #0x28 + pop {r3-r5, pc} + nop +_02073A28: .word 0x000005A8 + + thumb_func_start sub_02073A2C +sub_02073A2C: ; 0x02073A2C + push {r4, lr} + ldr r1, _02073A48 ; =0x000005A8 + add r4, r0, #0x0 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + bl sub_0200BCE0 + ldr r0, _02073A48 ; =0x000005A8 + ldr r0, [r4, r0] + bl sub_0200BD04 + pop {r4, pc} + nop +_02073A48: .word 0x000005A8 + + thumb_func_start sub_02073A4C +sub_02073A4C: ; 0x02073A4C + push {r3-r5, lr} + mov r3, #0x5b + lsl r3, r3, #0x4 + add r1, #0xa + add r5, r0, r3 + lsl r4, r1, #0x2 + cmp r2, #0x7 + ldr r0, [r5, r4] + bne _02073A66 + mov r1, #0x0 + bl sub_020200A0 + pop {r3-r5, pc} +_02073A66: + add r1, r2, #0x0 + bl sub_02020130 + ldr r0, [r5, r4] + mov r1, #0x1 + bl sub_020200A0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02073A78 +sub_02073A78: ; 0x02073A78 + push {r3-r5, lr} + mov r3, #0x5b + lsl r3, r3, #0x4 + add r1, #0x10 + add r5, r0, r3 + lsl r4, r1, #0x2 + cmp r2, #0x0 + bne _02073A92 + ldr r0, [r5, r4] + mov r1, #0x0 + bl sub_020200A0 + pop {r3-r5, pc} +_02073A92: + add r0, r2, #0x0 + bl sub_0206EA98 + cmp r0, #0x1 + ldr r0, [r5, r4] + bne _02073AA6 + mov r1, #0x1 + bl sub_02020130 + b _02073AAC +_02073AA6: + mov r1, #0x0 + bl sub_02020130 +_02073AAC: + ldr r0, [r5, r4] + mov r1, #0x1 + bl sub_020200A0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02073AB8 +sub_02073AB8: ; 0x02073AB8 + push {r3-r5, lr} + mov r2, #0x5b + lsl r2, r2, #0x4 + add r1, #0x10 + lsl r4, r1, #0x2 + add r5, r0, r2 + ldr r0, [r5, r4] + mov r1, #0x1 + bl sub_02020130 + ldr r0, [r5, r4] + mov r1, #0x1 + bl sub_020200A0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02073AD8 +sub_02073AD8: ; 0x02073AD8 + push {r4-r6, lr} + ldr r6, _02073B08 ; =0x0000071E + add r5, r1, #0x0 + mov r4, #0x2c + mul r5, r4 + add r1, #0x10 + lsl r1, r1, #0x2 + add r4, r0, r6 + add r2, #0x8 + strh r2, [r4, r5] + add r2, r6, #0x2 + add r2, r0, r2 + add r3, #0x8 + add r1, r0, r1 + mov r0, #0x5b + strh r3, [r2, r5] + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + ldrsh r1, [r4, r5] + ldrsh r2, [r2, r5] + bl sub_0200C6E4 + pop {r4-r6, pc} + nop +_02073B08: .word 0x0000071E + + thumb_func_start sub_02073B0C +sub_02073B0C: ; 0x02073B0C + add r2, r0, #0x0 + add r3, r1, #0x0 + mov r0, #0x2c + mul r3, r0 + add r1, #0x16 + lsl r0, r1, #0x2 + add r1, r2, r0 + mov r0, #0x5b + add r3, r2, r3 + lsl r0, r0, #0x4 + ldr r2, _02073B34 ; =0x0000071E + ldr r0, [r1, r0] + ldrsh r1, [r3, r2] + add r2, r2, #0x2 + ldrsh r2, [r3, r2] + add r1, #0x8 + lsl r1, r1, #0x10 + ldr r3, _02073B38 ; =sub_0200C6E4 + asr r1, r1, #0x10 + bx r3 + .balign 4 +_02073B34: .word 0x0000071E +_02073B38: .word sub_0200C6E4 + 1 + + thumb_func_start sub_02073B3C +sub_02073B3C: ; 0x02073B3C + push {r4, lr} + mov r2, #0x5b + mov r4, #0x2c + lsl r2, r2, #0x4 + add r3, r0, r2 + add r2, r1, #0x0 + mul r4, r1 + add r1, r0, r4 + ldr r0, _02073B6C ; =0x00000712 + add r2, #0x16 + ldrh r0, [r1, r0] + lsl r2, r2, #0x2 + cmp r0, #0x0 + ldr r0, [r3, r2] + bne _02073B62 + mov r1, #0x0 + bl sub_020200A0 + pop {r4, pc} +_02073B62: + mov r1, #0x1 + bl sub_020200A0 + pop {r4, pc} + nop +_02073B6C: .word 0x00000712 + + thumb_func_start sub_02073B70 +sub_02073B70: ; 0x02073B70 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020201DC + cmp r4, r0 + beq _02073B8E + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02020208 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02020130 +_02073B8E: + pop {r3-r5, pc} + + thumb_func_start sub_02073B90 +sub_02073B90: ; 0x02073B90 + push {r3, lr} + add r2, r0, #0x0 + ldrh r0, [r2, #0x6] + cmp r0, #0x0 + bne _02073B9E + mov r0, #0x0 + pop {r3, pc} +_02073B9E: + ldrh r1, [r2, #0xe] + lsl r1, r1, #0x14 + lsr r1, r1, #0x14 + cmp r1, #0x7 + beq _02073BB4 + cmp r1, #0x0 + beq _02073BB4 + cmp r1, #0x6 + beq _02073BB4 + mov r0, #0x5 + pop {r3, pc} +_02073BB4: + ldrh r1, [r2, #0x8] + mov r2, #0x30 + bl sub_02079A54 + cmp r0, #0x4 + bhi _02073BE6 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r3, #0 + lsl r4, r2, #0 + lsl r0, r2, #0 + lsl r4, r1, #0 + lsl r0, r1, #0 + mov r0, #0x1 + pop {r3, pc} +_02073BDA: + .byte 0x02, 0x20, 0x08, 0xBD, 0x03, 0x20 + .byte 0x08, 0xBD, 0x04, 0x20, 0x08, 0xBD +_02073BE6: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02073BEC +sub_02073BEC: ; 0x02073BEC + push {r3-r7, lr} + add r6, r0, #0x0 + mov r0, #0x7 + lsl r0, r0, #0x8 + add r0, r6, r0 + mov r5, #0x0 + str r0, [sp, #0x0] +_02073BFA: + mov r0, #0x2c + add r1, r5, #0x0 + mul r1, r0 + ldr r0, [sp, #0x0] + add r4, r0, r1 + add r0, r4, #0x0 + add r0, #0x29 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02073C9A + mov r0, #0xb1 + lsl r0, r0, #0x4 + ldrb r0, [r6, r0] + cmp r0, #0x1 + bne _02073C2C + ldr r0, _02073CA8 ; =0x00000B0C + ldrb r0, [r6, r0] + cmp r0, r5 + beq _02073C28 + ldr r0, _02073CAC ; =0x00000B0D + ldrb r0, [r6, r0] + cmp r0, r5 + bne _02073C2C +_02073C28: + mov r7, #0x0 + b _02073C34 +_02073C2C: + add r0, r4, #0x0 + bl sub_02073B90 + add r7, r0, #0x0 +_02073C34: + lsl r1, r7, #0x18 + ldr r0, [r4, #0x24] + lsr r1, r1, #0x18 + bl sub_02073B70 + mov r1, #0x1 + ldr r0, [r4, #0x24] + lsl r1, r1, #0xc + bl sub_020201E4 + ldr r0, _02073CB0 ; =0x00000B25 + ldrb r0, [r6, r0] + cmp r0, r5 + bne _02073C8C + cmp r7, #0x0 + beq _02073C8C + cmp r7, #0x5 + beq _02073C8C + ldr r0, [r4, #0x24] + bl sub_0202022C + cmp r0, #0x0 + ldr r0, [r4, #0x24] + bne _02073C78 + mov r2, #0x18 + ldrsh r2, [r4, r2] + mov r1, #0x16 + ldrsh r1, [r4, r1] + sub r2, r2, #0x3 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + bl sub_0200C6E4 + b _02073C9A +_02073C78: + mov r2, #0x18 + ldrsh r2, [r4, r2] + mov r1, #0x16 + ldrsh r1, [r4, r1] + add r2, r2, #0x1 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + bl sub_0200C6E4 + b _02073C9A +_02073C8C: + mov r1, #0x16 + mov r2, #0x18 + ldrsh r1, [r4, r1] + ldrsh r2, [r4, r2] + ldr r0, [r4, #0x24] + bl sub_0200C6E4 +_02073C9A: + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x6 + blo _02073BFA + pop {r3-r7, pc} + nop +_02073CA8: .word 0x00000B0C +_02073CAC: .word 0x00000B0D +_02073CB0: .word 0x00000B25 + + thumb_func_start sub_02073CB4 +sub_02073CB4: ; 0x02073CB4 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + ldr r0, _02073D10 ; =0x00000808 + add r4, r1, #0x0 + ldr r1, [r5, r0] + lsl r0, r4, #0x3 + add r0, r1, r0 + add r1, sp, #0x0 + add r6, r2, #0x0 + add r1, #0x1 + add r2, sp, #0x0 + bl sub_0201C620 + ldr r0, _02073D14 ; =0x000005A4 + add r1, r4, #0x0 + ldr r0, [r5, r0] + add r0, #0x21 + ldrb r0, [r0, #0x0] + bl sub_020714BC + add r1, r0, #0x0 + ldr r0, _02073D18 ; =0x000005C8 + ldr r0, [r5, r0] + bl sub_02020130 + ldr r0, _02073D18 ; =0x000005C8 + mov r1, #0x1 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _02073D18 ; =0x000005C8 + add r2, sp, #0x0 + ldrb r1, [r2, #0x1] + ldrb r2, [r2, #0x0] + ldr r0, [r5, r0] + bl sub_0200C6E4 + ldr r0, _02073D18 ; =0x000005C8 + add r1, r6, #0x0 + ldr r0, [r5, r0] + bl sub_0200C664 + add sp, #0x4 + pop {r3-r6, pc} + nop +_02073D10: .word 0x00000808 +_02073D14: .word 0x000005A4 +_02073D18: .word 0x000005C8 + + thumb_func_start sub_02073D1C +sub_02073D1C: ; 0x02073D1C + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + lsl r0, r1, #0xc + str r0, [sp, #0x0] + mov r0, #0x1 + lsl r1, r2, #0xc + lsl r0, r0, #0x14 + str r1, [sp, #0x4] + add r0, r1, r0 + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + mov r0, #0x62 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + add r1, sp, #0x0 + bl sub_02020044 + mov r0, #0x62 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_020200A0 + mov r0, #0x62 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02020208 + mov r0, #0x62 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02020130 + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02073D6C +sub_02073D6C: ; 0x02073D6C + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x62 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_02020128 + cmp r0, #0x1 + bne _02073DA6 + mov r0, #0x62 + lsl r0, r0, #0x4 + mov r1, #0x1 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl sub_020201E4 + mov r0, #0x62 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_0202022C + cmp r0, #0x2 + bne _02073DA6 + mov r0, #0x62 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_020200A0 +_02073DA6: + pop {r4, pc} + + thumb_func_start sub_02073DA8 +sub_02073DA8: ; 0x02073DA8 + lsl r1, r0, #0x2 + ldr r0, _02073DB0 ; =0x020F9CAC + ldr r0, [r0, r1] + bx lr + .balign 4 +_02073DB0: .word 0x020F9CAC + + thumb_func_start sub_02073DB4 +sub_02073DB4: ; 0x02073DB4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x95 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200CCF8 + mov r0, #0x95 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + ldr r0, _02073DEC ; =0x000006FC + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_02001C5C + ldr r0, _02073DF0 ; =0x000006F8 + ldr r0, [r4, r0] + bl sub_02012870 + mov r0, #0x95 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019178 + pop {r4, pc} + .balign 4 +_02073DEC: .word 0x000006FC +_02073DF0: .word 0x000006F8 + + thumb_func_start sub_02073DF4 +sub_02073DF4: ; 0x02073DF4 + push {r3-r6, lr} + sub sp, #0x14 + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02073DB4 + add r0, r5, #0x0 + mov r1, #0x26 + mov r2, #0x0 + bl sub_020731D4 + mov r0, #0x3 + mov r1, #0xc + bl sub_02012838 + ldr r1, _02073EB0 ; =0x000006F8 + str r0, [r5, r1] + mov r0, #0x3 + bl sub_02073DA8 + ldr r1, _02073EB0 ; =0x000006F8 + add r2, r0, #0x0 + ldr r0, [r5, r1] + sub r1, #0x40 + ldr r1, [r5, r1] + bl sub_020128A0 + mov r0, #0x4 + bl sub_02073DA8 + ldr r1, _02073EB0 ; =0x000006F8 + add r2, r0, #0x0 + ldr r0, [r5, r1] + sub r1, #0x3c + ldr r1, [r5, r1] + bl sub_020128A0 + mov r0, #0x9 + bl sub_02073DA8 + ldr r1, _02073EB0 ; =0x000006F8 + add r2, r0, #0x0 + ldr r0, [r5, r1] + sub r1, #0x28 + ldr r1, [r5, r1] + bl sub_020128A0 + ldr r0, _02073EB0 ; =0x000006F8 + mov r1, #0x0 + ldr r0, [r5, r0] + add r2, sp, #0x8 + str r0, [sp, #0x8] + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r5, r0 + str r0, [sp, #0xc] + strb r1, [r2, #0x8] + mov r1, #0x1 + strb r1, [r2, #0x9] + mov r3, #0x3 + strb r3, [r2, #0xa] + ldrb r6, [r2, #0xb] + mov r3, #0xf + bic r6, r3 + strb r6, [r2, #0xb] + ldrb r6, [r2, #0xb] + mov r3, #0x30 + bic r6, r3 + strb r6, [r2, #0xb] + ldrb r6, [r2, #0xb] + mov r3, #0xc0 + bic r6, r3 + strb r6, [r2, #0xb] + add r2, r1, #0x0 + mov r3, #0xe + bl sub_0200CCA4 + mov r0, #0xc + str r0, [sp, #0x0] + mov r0, #0x2 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x8 + mov r1, #0x8 + add r3, r2, #0x0 + bl sub_02001C14 + ldr r1, _02073EB4 ; =0x000006FC + str r0, [r5, r1] + mov r0, #0xd + str r0, [r4, #0x0] + add sp, #0x14 + pop {r3-r6, pc} + nop +_02073EB0: .word 0x000006F8 +_02073EB4: .word 0x000006FC + + thumb_func_start sub_02073EB8 +sub_02073EB8: ; 0x02073EB8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02073EE0 ; =0x000006FC + add r4, r1, #0x0 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_02001C5C + ldr r0, _02073EE4 ; =0x000006F8 + ldr r0, [r5, r0] + bl sub_02012870 + ldr r0, _02073EE8 ; =0x000005A4 + mov r1, #0x3 + ldr r0, [r5, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + str r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 +_02073EE0: .word 0x000006FC +_02073EE4: .word 0x000006F8 +_02073EE8: .word 0x000005A4 + + thumb_func_start sub_02073EEC +sub_02073EEC: ; 0x02073EEC + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + mov r0, #0x8d + lsl r0, r0, #0x2 + add r4, r1, #0x0 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200CCF8 + ldr r0, _02074044 ; =0x000006FC + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_02001C5C + ldr r0, _02074048 ; =0x000006F8 + ldr r0, [r5, r0] + bl sub_02012870 + ldr r0, _0207404C ; =0x00000B25 + ldrb r1, [r5, r0] + mov r0, #0x2c + mul r0, r1 + add r2, r5, r0 + ldr r0, _02074050 ; =0x0000070C + ldrh r2, [r2, r0] + ldr r0, _02074054 ; =0x000005A4 + cmp r2, #0x0 + bne _02073F66 + ldr r0, [r5, r0] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + ldr r2, _02074058 ; =0x0000069C + add r6, r0, #0x0 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + mov r1, #0x51 + bl sub_0200A8E0 + add r0, r6, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200ACF8 + mov r2, #0x6a + lsl r2, r2, #0x4 + add r1, r2, #0x4 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl sub_0200B7B8 + b _02074018 +_02073F66: + ldr r0, [r5, r0] + add r1, r2, #0x0 + ldr r0, [r0, #0x4] + mov r2, #0x1 + mov r3, #0xc + bl sub_0206ED38 + cmp r0, #0x1 + bne _0207400A + ldr r0, _02074054 ; =0x000005A4 + ldr r1, _0207404C ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + mov r1, #0x0 + str r1, [sp, #0x0] + add r6, r0, #0x0 + mov r1, #0x6 + add r2, sp, #0x0 + bl sub_02067830 + add r0, r6, #0x0 + bl sub_02069EC4 + ldr r2, _02074058 ; =0x0000069C + mov r1, #0x52 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + add r0, r6, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200ACF8 + ldr r2, _0207404C ; =0x00000B25 + mov r3, #0x6a + ldrb r6, [r5, r2] + mov r2, #0x2c + lsl r3, r3, #0x4 + mul r2, r6 + ldr r0, [r5, r3] + add r2, r5, r2 + add r3, #0x6c + ldrh r2, [r2, r3] + mov r1, #0x1 + bl sub_0200AE38 + mov r2, #0x6a + lsl r2, r2, #0x4 + add r1, r2, #0x4 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl sub_0200B7B8 + ldr r1, _0207404C ; =0x00000B25 + mov r2, #0x2c + ldrb r3, [r5, r1] + mov r0, #0x0 + add r6, r3, #0x0 + mul r6, r2 + ldr r3, _02074050 ; =0x0000070C + add r6, r5, r6 + strh r0, [r6, r3] + ldrb r1, [r5, r1] + add r0, r5, #0x0 + mul r2, r1 + add r2, r5, r2 + ldrh r2, [r2, r3] + bl sub_02073A78 + b _02074018 +_0207400A: + ldr r2, _02074058 ; =0x0000069C + mov r1, #0x53 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r2, [r5, r2] + bl sub_0200A8E0 +_02074018: + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + mov r2, #0xa + mov r3, #0xf + bl sub_0200D0BC + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0xf + bl sub_02019620 + add r0, r5, #0x0 + bl sub_0207322C + mov r0, #0xf + str r0, [r4, #0x0] + add sp, #0x4 + pop {r3-r6, pc} + nop +_02074044: .word 0x000006FC +_02074048: .word 0x000006F8 +_0207404C: .word 0x00000B25 +_02074050: .word 0x0000070C +_02074054: .word 0x000005A4 +_02074058: .word 0x0000069C + + thumb_func_start sub_0207405C +sub_0207405C: ; 0x0207405C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020740A0 ; =0x00000B24 + ldrb r0, [r4, r0] + bl sub_0201BD70 + cmp r0, #0x0 + bne _0207409A + ldr r0, _020740A4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _0207409A + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _020740A8 ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C664 + mov r0, #0x1 + pop {r4, pc} +_0207409A: + mov r0, #0xf + pop {r4, pc} + nop +_020740A0: .word 0x00000B24 +_020740A4: .word 0x021C48B8 +_020740A8: .word 0x000005C8 + + thumb_func_start sub_020740AC +sub_020740AC: ; 0x020740AC + push {r3-r6, lr} + sub sp, #0x14 + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02073DB4 + add r0, r5, #0x0 + mov r1, #0x27 + mov r2, #0x0 + bl sub_020731D4 + mov r0, #0x3 + mov r1, #0xc + bl sub_02012838 + ldr r1, _02074168 ; =0x000006F8 + str r0, [r5, r1] + mov r0, #0x6 + bl sub_02073DA8 + ldr r1, _02074168 ; =0x000006F8 + add r2, r0, #0x0 + ldr r0, [r5, r1] + sub r1, #0x34 + ldr r1, [r5, r1] + bl sub_020128A0 + mov r0, #0x7 + bl sub_02073DA8 + ldr r1, _02074168 ; =0x000006F8 + add r2, r0, #0x0 + ldr r0, [r5, r1] + sub r1, #0x30 + ldr r1, [r5, r1] + bl sub_020128A0 + mov r0, #0x9 + bl sub_02073DA8 + ldr r1, _02074168 ; =0x000006F8 + add r2, r0, #0x0 + ldr r0, [r5, r1] + sub r1, #0x28 + ldr r1, [r5, r1] + bl sub_020128A0 + ldr r0, _02074168 ; =0x000006F8 + mov r1, #0x0 + ldr r0, [r5, r0] + add r2, sp, #0x8 + str r0, [sp, #0x8] + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r5, r0 + str r0, [sp, #0xc] + strb r1, [r2, #0x8] + mov r1, #0x1 + strb r1, [r2, #0x9] + mov r3, #0x3 + strb r3, [r2, #0xa] + ldrb r6, [r2, #0xb] + mov r3, #0xf + bic r6, r3 + strb r6, [r2, #0xb] + ldrb r6, [r2, #0xb] + mov r3, #0x30 + bic r6, r3 + strb r6, [r2, #0xb] + ldrb r6, [r2, #0xb] + mov r3, #0xc0 + bic r6, r3 + strb r6, [r2, #0xb] + add r2, r1, #0x0 + mov r3, #0xe + bl sub_0200CCA4 + mov r0, #0xc + str r0, [sp, #0x0] + mov r0, #0x2 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x8 + mov r1, #0x8 + add r3, r2, #0x0 + bl sub_02001C14 + ldr r1, _0207416C ; =0x000006FC + str r0, [r5, r1] + mov r0, #0xd + str r0, [r4, #0x0] + add sp, #0x14 + pop {r3-r6, pc} + nop +_02074168: .word 0x000006F8 +_0207416C: .word 0x000006FC + + thumb_func_start sub_02074170 +sub_02074170: ; 0x02074170 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02074198 ; =0x000006FC + add r4, r1, #0x0 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_02001C5C + ldr r0, _0207419C ; =0x000006F8 + ldr r0, [r5, r0] + bl sub_02012870 + ldr r0, _020741A0 ; =0x000005A4 + mov r1, #0x7 + ldr r0, [r5, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + str r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 +_02074198: .word 0x000006FC +_0207419C: .word 0x000006F8 +_020741A0: .word 0x000005A4 + + thumb_func_start sub_020741A4 +sub_020741A4: ; 0x020741A4 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x8d + lsl r0, r0, #0x2 + add r4, r1, #0x0 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200CCF8 + ldr r0, _020741EC ; =0x000006FC + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_02001C5C + ldr r0, _020741F0 ; =0x000006F8 + ldr r0, [r5, r0] + bl sub_02012870 + add r0, r5, #0x0 + mov r1, #0x2b + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _020741F4 ; =sub_02074200 + ldr r1, _020741F8 ; =0x00000B18 + ldr r2, _020741FC ; =sub_02074278 + str r0, [r5, r1] + add r0, r1, #0x4 + str r2, [r5, r0] + mov r0, #0x16 + add r1, #0xa + strb r0, [r5, r1] + mov r0, #0x14 + str r0, [r4, #0x0] + pop {r3-r5, pc} + nop +_020741EC: .word 0x000006FC +_020741F0: .word 0x000006F8 +_020741F4: .word sub_02074200 + 1 +_020741F8: .word 0x00000B18 +_020741FC: .word sub_02074278 + 1 + + thumb_func_start sub_02074200 +sub_02074200: ; 0x02074200 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, _02074268 ; =0x000005A4 + ldr r1, _0207426C ; =0x00000B25 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r1, r0, #0x0 + ldr r0, _02074268 ; =0x000005A4 + mov r2, #0xc + ldr r0, [r4, r0] + ldr r0, [r0, #0x8] + bl sub_02085644 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02074254 + ldr r1, _0207426C ; =0x00000B25 + mov r2, #0x2c + ldrb r3, [r4, r1] + mov r0, #0x0 + add r5, r3, #0x0 + mul r5, r2 + ldr r3, _02074270 ; =0x0000070C + add r5, r4, r5 + strh r0, [r5, r3] + ldrb r1, [r4, r1] + add r0, r4, #0x0 + mul r2, r1 + add r2, r4, r2 + ldrh r2, [r2, r3] + bl sub_02073A78 + add r0, r4, #0x0 + mov r1, #0x2e + mov r2, #0x0 + bl sub_020731E8 + b _0207425E +_02074254: + add r0, r4, #0x0 + mov r1, #0x32 + mov r2, #0x0 + bl sub_020731E8 +_0207425E: + ldr r0, _02074274 ; =0x00000B22 + mov r1, #0x10 + strb r1, [r4, r0] + mov r0, #0x14 + pop {r3-r5, pc} + .balign 4 +_02074268: .word 0x000005A4 +_0207426C: .word 0x00000B25 +_02074270: .word 0x0000070C +_02074274: .word 0x00000B22 + + thumb_func_start sub_02074278 +sub_02074278: ; 0x02074278 + push {r4, lr} + mov r1, #0x2f + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020731E8 + ldr r0, _0207429C ; =sub_020742A8 + ldr r1, _020742A0 ; =0x00000B18 + ldr r2, _020742A4 ; =sub_02074340 + str r0, [r4, r1] + add r0, r1, #0x4 + str r2, [r4, r0] + mov r0, #0x16 + add r1, #0xa + strb r0, [r4, r1] + mov r0, #0x14 + pop {r4, pc} + nop +_0207429C: .word sub_020742A8 + 1 +_020742A0: .word 0x00000B18 +_020742A4: .word sub_02074340 + 1 + + thumb_func_start sub_020742A8 +sub_020742A8: ; 0x020742A8 + push {r3-r5, lr} + ldr r1, _02074330 ; =0x00000B25 + add r4, r0, #0x0 + ldrb r2, [r4, r1] + mov r1, #0x2c + ldr r0, _02074334 ; =0x000005A4 + mul r1, r2 + add r2, r4, r1 + ldr r1, _02074338 ; =0x0000070C + ldr r0, [r4, r0] + ldrh r1, [r2, r1] + ldr r0, [r0, #0x4] + mov r2, #0x1 + mov r3, #0xc + bl sub_0206ED38 + cmp r0, #0x1 + bne _0207431A + ldr r0, _02074334 ; =0x000005A4 + ldr r1, _02074330 ; =0x00000B25 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + mov r1, #0x0 + str r1, [sp, #0x0] + add r5, r0, #0x0 + mov r1, #0x6 + add r2, sp, #0x0 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02069EC4 + ldr r1, _02074330 ; =0x00000B25 + mov r2, #0x2c + ldrb r3, [r4, r1] + mov r0, #0x0 + add r5, r3, #0x0 + mul r5, r2 + ldr r3, _02074338 ; =0x0000070C + add r5, r4, r5 + strh r0, [r5, r3] + ldrb r1, [r4, r1] + add r0, r4, #0x0 + mul r2, r1 + add r2, r4, r2 + ldrh r2, [r2, r3] + bl sub_02073A78 + add r0, r4, #0x0 + mov r1, #0x33 + mov r2, #0x0 + bl sub_020731E8 + b _02074324 +_0207431A: + add r0, r4, #0x0 + mov r1, #0x53 + mov r2, #0x0 + bl sub_020731E8 +_02074324: + ldr r0, _0207433C ; =0x00000B22 + mov r1, #0x10 + strb r1, [r4, r0] + mov r0, #0x14 + pop {r3-r5, pc} + nop +_02074330: .word 0x00000B25 +_02074334: .word 0x000005A4 +_02074338: .word 0x0000070C +_0207433C: .word 0x00000B22 + + thumb_func_start sub_02074340 +sub_02074340: ; 0x02074340 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _02074368 ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C664 + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_02074368: .word 0x000005C8 + + thumb_func_start sub_0207436C +sub_0207436C: ; 0x0207436C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020743A4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _0207439E + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _020743A8 ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C664 + mov r0, #0x1 + pop {r4, pc} +_0207439E: + mov r0, #0x10 + pop {r4, pc} + nop +_020743A4: .word 0x021C48B8 +_020743A8: .word 0x000005C8 + + thumb_func_start sub_020743AC +sub_020743AC: ; 0x020743AC + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, _0207440C ; =0x00000B25 + add r5, r0, #0x0 + ldrb r2, [r5, r1] + mov r1, #0x2c + mul r1, r2 + add r2, r5, r1 + ldr r1, _02074410 ; =0x00000712 + ldrh r2, [r2, r1] + cmp r2, #0x0 + bne _020743E6 + sub r1, #0x16 + ldr r0, [r5, r1] + mov r1, #0x0 + bl sub_02001C5C + ldr r0, _02074414 ; =0x000006F8 + ldr r0, [r5, r0] + bl sub_02012870 + ldr r0, _02074418 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r5, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + str r0, [r4, #0x0] + pop {r3-r5, pc} +_020743E6: + bl sub_02073DB4 + add r0, r5, #0x0 + mov r1, #0xc3 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _0207441C ; =sub_02074428 + ldr r1, _02074420 ; =0x00000B18 + ldr r2, _02074424 ; =sub_02074454 + str r0, [r5, r1] + add r0, r1, #0x4 + str r2, [r5, r0] + mov r0, #0x16 + add r1, #0xa + strb r0, [r5, r1] + mov r0, #0x14 + str r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 +_0207440C: .word 0x00000B25 +_02074410: .word 0x00000712 +_02074414: .word 0x000006F8 +_02074418: .word 0x000005A4 +_0207441C: .word sub_02074428 + 1 +_02074420: .word 0x00000B18 +_02074424: .word sub_02074454 + 1 + + thumb_func_start sub_02074428 +sub_02074428: ; 0x02074428 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0207444C ; =0x000005A4 + ldr r1, _02074450 ; =0x00000B25 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + bl sub_0206AA84 + ldr r0, _0207444C ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + pop {r4, pc} + .balign 4 +_0207444C: .word 0x000005A4 +_02074450: .word 0x00000B25 + + thumb_func_start sub_02074454 +sub_02074454: ; 0x02074454 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _0207447C ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C664 + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0207447C: .word 0x000005C8 + + thumb_func_start sub_02074480 +sub_02074480: ; 0x02074480 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02074528 ; =0x00000B23 + add r4, r1, #0x0 + ldrb r2, [r5, r0] + mov r1, #0x40 + orr r1, r2 + strb r1, [r5, r0] + ldrb r1, [r5, r0] + mov r2, #0x3f + bic r1, r2 + add r2, r0, #0x2 + ldrb r3, [r5, r2] + mov r2, #0x3f + and r2, r3 + orr r1, r2 + strb r1, [r5, r0] + ldr r0, _0207452C ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_0200C664 + ldr r0, _0207452C ; =0x000005C8 + add r1, sp, #0x0 + ldr r0, [r5, r0] + add r1, #0x2 + add r2, sp, #0x0 + bl sub_0200C75C + ldr r0, _02074530 ; =0x000005CC + add r3, sp, #0x0 + mov r1, #0x2 + mov r2, #0x0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r5, r0] + bl sub_0200C6E4 + ldr r0, _02074534 ; =0x000005A4 + ldr r1, _02074528 ; =0x00000B23 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + add r0, #0x21 + ldrb r0, [r0, #0x0] + lsl r1, r1, #0x1a + lsr r1, r1, #0x1a + bl sub_020714BC + add r1, r0, #0x0 + ldr r0, _02074530 ; =0x000005CC + add r1, r1, #0x2 + ldr r0, [r5, r0] + bl sub_02020130 + ldr r0, _02074530 ; =0x000005CC + mov r1, #0x1 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r1, _02074528 ; =0x00000B23 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + lsl r1, r1, #0x1a + lsr r1, r1, #0x1a + bl sub_020709FC + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r5, #0x0 + bl sub_02073DB4 + add r0, r5, #0x0 + mov r1, #0x1e + mov r2, #0x1 + bl sub_020731C0 + mov r0, #0x18 + str r0, [r4, #0x0] + pop {r3-r5, pc} + nop +_02074528: .word 0x00000B23 +_0207452C: .word 0x000005C8 +_02074530: .word 0x000005CC +_02074534: .word 0x000005A4 + + thumb_func_start sub_02074538 +sub_02074538: ; 0x02074538 + push {r4, lr} + ldr r1, _02074578 ; =0x00000B23 + add r4, r0, #0x0 + ldrb r2, [r4, r1] + mov r0, #0x40 + bic r2, r0 + strb r2, [r4, r1] + ldr r0, _0207457C ; =0x000005CC + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + ldr r0, _02074580 ; =0x00000B25 + ldrb r1, [r4, r0] + cmp r1, #0x6 + bhs _0207455E + add r0, r4, #0x0 + bl sub_020709FC +_0207455E: + ldr r1, _02074578 ; =0x00000B23 + add r0, r4, #0x0 + ldrb r1, [r4, r1] + lsl r1, r1, #0x1a + lsr r1, r1, #0x1a + bl sub_020709FC + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 + pop {r4, pc} + .balign 4 +_02074578: .word 0x00000B23 +_0207457C: .word 0x000005CC +_02074580: .word 0x00000B25 + + thumb_func_start sub_02074584 +sub_02074584: ; 0x02074584 + push {r3-r7, lr} + sub sp, #0x28 + ldr r2, _020746AC ; =0x00000B25 + add r6, r0, #0x0 + ldrb r1, [r6, r2] + add r0, r2, #0x0 + sub r0, #0x19 + strb r1, [r6, r0] + sub r0, r2, #0x2 + ldrb r0, [r6, r0] + add r3, r2, #0x0 + sub r3, #0x13 + lsl r0, r0, #0x1a + lsr r1, r0, #0x1a + add r0, r2, #0x0 + sub r0, #0x18 + strb r1, [r6, r0] + add r0, r2, #0x0 + mov r1, #0x1 + sub r0, #0x15 + strb r1, [r6, r0] + mov r0, #0x0 + strb r0, [r6, r3] + add r3, r2, #0x0 + sub r3, #0x14 + strb r0, [r6, r3] + add r3, r2, #0x0 + sub r3, #0x19 + ldrb r3, [r6, r3] + tst r3, r1 + beq _020745C8 + sub r2, #0x17 + strb r1, [r6, r2] + b _020745CC +_020745C8: + sub r2, #0x17 + strb r0, [r6, r2] +_020745CC: + ldr r0, _020746B0 ; =0x00000B0D + mov r1, #0x1 + ldrb r2, [r6, r0] + tst r2, r1 + beq _020745D8 + b _020745DA +_020745D8: + mov r1, #0x0 +_020745DA: + add r0, r0, #0x2 + strb r1, [r6, r0] + ldr r0, [r6, #0x0] + mov r1, #0x2 + bl sub_0201886C + str r0, [sp, #0x14] + ldr r0, [r6, #0x0] + mov r1, #0x1 + bl sub_0201886C + ldr r1, _020746B4 ; =0x00000B0C + str r0, [sp, #0x10] + ldrb r3, [r6, r1] + add r1, r1, #0x1 + mov r2, #0x2c + add r0, r3, #0x0 + ldrb r3, [r6, r1] + mul r0, r2 + mov r4, #0x0 + add r1, r3, #0x0 + add r3, r6, r0 + ldr r0, _020746B8 ; =0x00000715 + mul r1, r2 + ldrsb r2, [r3, r0] + str r2, [sp, #0xc] + sub r2, r0, #0x1 + ldrsb r2, [r3, r2] + str r2, [sp, #0x8] + add r2, r6, r1 + ldrsb r1, [r2, r0] + sub r0, r0, #0x1 + ldrsb r0, [r2, r0] + str r1, [sp, #0x4] + str r0, [sp, #0x0] + ldr r0, _020746BC ; =0x0000080C + add r0, r6, r0 + str r0, [sp, #0x18] + ldr r0, _020746C0 ; =0x0000098C + add r0, r6, r0 + str r0, [sp, #0x1c] + ldr r0, _020746C4 ; =0x000008CC + add r0, r6, r0 + str r0, [sp, #0x20] + ldr r0, _020746C8 ; =0x00000A4C + add r0, r6, r0 + str r0, [sp, #0x24] +_02074638: + ldr r0, [sp, #0xc] + lsl r5, r4, #0x5 + add r0, r0, r4 + lsl r1, r0, #0x5 + ldr r0, [sp, #0x8] + mov r2, #0x20 + add r0, r0, r1 + lsl r7, r0, #0x1 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x14] + add r0, r0, r5 + add r1, r1, r7 + blx sub_020DF438 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x10] + add r0, r0, r5 + add r1, r1, r7 + mov r2, #0x20 + blx sub_020DF438 + ldr r0, [sp, #0x4] + mov r2, #0x20 + add r0, r0, r4 + lsl r1, r0, #0x5 + ldr r0, [sp, #0x0] + add r0, r0, r1 + lsl r7, r0, #0x1 + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x14] + add r0, r0, r5 + add r1, r1, r7 + blx sub_020DF438 + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x10] + add r0, r0, r5 + add r1, r1, r7 + mov r2, #0x20 + blx sub_020DF438 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x6 + blo _02074638 + ldr r0, _020746CC ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r6, r0] + bl sub_020200A0 + ldr r0, _020746D0 ; =0x000005CC + mov r1, #0x0 + ldr r0, [r6, r0] + bl sub_020200A0 + add sp, #0x28 + pop {r3-r7, pc} + .balign 4 +_020746AC: .word 0x00000B25 +_020746B0: .word 0x00000B0D +_020746B4: .word 0x00000B0C +_020746B8: .word 0x00000715 +_020746BC: .word 0x0000080C +_020746C0: .word 0x0000098C +_020746C4: .word 0x000008CC +_020746C8: .word 0x00000A4C +_020746CC: .word 0x000005C8 +_020746D0: .word 0x000005CC + + thumb_func_start sub_020746D4 +sub_020746D4: ; 0x020746D4 + push {r3-r5, lr} + ldr r1, _02074828 ; =0x0000080C + add r5, r0, #0x0 + ldr r2, _0207482C ; =0x00000305 + add r4, r5, r1 + ldrb r1, [r4, r2] + cmp r1, #0x4 + bls _020746E6 + b _02074822 +_020746E6: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0 + lsl r0, r3, #0 + lsl r0, r5, #0x1 + lsl r4, r7, #0x1 + lsl r2, r3, #0x3 + mov r0, #0x6a + lsl r0, r0, #0x4 + bl sub_020054C8 + ldr r0, _0207482C ; =0x00000305 + mov r1, #0x1 + strb r1, [r4, r0] + b _02074822 +_0207470C: + .byte 0x51, 0x1C, 0x61, 0x5C + .byte 0x4B, 0x1C, 0x51, 0x1C, 0x63, 0x54, 0x00, 0x21, 0x00, 0xF0, 0x96, 0xF8, 0x28, 0x1C, 0x01, 0x21 + .byte 0x00, 0xF0, 0x92, 0xF8, 0x42, 0x4A, 0x28, 0x1C, 0xA2, 0x5C, 0x00, 0x21, 0x00, 0xF0, 0x36, 0xF9 + .byte 0x40, 0x4A, 0x28, 0x1C, 0xA2, 0x5C, 0x01, 0x21, 0x00, 0xF0, 0x30, 0xF9, 0x28, 0x68, 0x02, 0x21 + .byte 0xA6, 0xF7, 0x92, 0xFA, 0x28, 0x68, 0x01, 0x21, 0xA6, 0xF7, 0x8E, 0xFA, 0x3A, 0x48, 0x21, 0x5C + .byte 0x10, 0x29, 0x66, 0xD1, 0x02, 0x21, 0x40, 0x1E, 0x21, 0x54, 0x62, 0xE0, 0x00, 0xF0, 0xCA, 0xF9 + .byte 0x6A, 0x20, 0x00, 0x01, 0x90, 0xF7, 0xB0, 0xFE, 0x30, 0x48, 0x03, 0x21, 0x21, 0x54, 0x58, 0xE0 + .byte 0x51, 0x1C, 0x61, 0x5C, 0x4B, 0x1E, 0x51, 0x1C, 0x63, 0x54, 0x00, 0x21, 0x00, 0xF0, 0x64, 0xF8 + .byte 0x28, 0x1C, 0x01, 0x21, 0x00, 0xF0, 0x60, 0xF8, 0x29, 0x4A, 0x28, 0x1C, 0xA3, 0x5C, 0x01, 0x22 + .byte 0x00, 0x21, 0x5A, 0x40, 0x12, 0x06, 0x12, 0x0E, 0x00, 0xF0, 0x00, 0xF9, 0x25, 0x4A, 0x01, 0x21 + .byte 0xA2, 0x5C, 0x28, 0x1C, 0x4A, 0x40, 0x12, 0x06, 0x12, 0x0E, 0x00, 0xF0, 0xF7, 0xF8, 0x28, 0x68 + .byte 0x02, 0x21, 0xA6, 0xF7, 0x59, 0xFA, 0x28, 0x68, 0x01, 0x21, 0xA6, 0xF7, 0x55, 0xFA, 0x1E, 0x48 + .byte 0x21, 0x5C, 0x00, 0x29, 0x2D, 0xD1, 0x04, 0x21, 0x40, 0x1E, 0x21, 0x54, 0x29, 0xE0, 0x1B, 0x48 + .byte 0x51, 0x1F, 0x28, 0x58, 0x12, 0x1F, 0x61, 0x5C, 0xA2, 0x5C, 0x00, 0x68, 0xF7, 0xF7, 0x2C, 0xF9 + .byte 0x17, 0x48, 0x01, 0x21, 0x28, 0x58, 0xAB, 0xF7, 0x5B, 0xFC, 0xC1, 0x20, 0x00, 0x21, 0x80, 0x00 + .byte 0x21, 0x54, 0x14, 0x49, 0x40, 0x20, 0x6A, 0x5C, 0x82, 0x43, 0x6A, 0x54, 0x89, 0x1C, 0x69, 0x5C + .byte 0x28, 0x1C, 0xFC, 0xF7, 0xFB, 0xF8, 0x0F, 0x49, 0x28, 0x1C, 0x69, 0x5C, 0x89, 0x06, 0x89, 0x0E + .byte 0xFC, 0xF7, 0xF4, 0xF8, 0x28, 0x1C, 0x1D, 0x21, 0x00, 0x22, 0xFE, 0xF7, 0xD1, 0xFC, 0x01, 0x20 + .byte 0x38, 0xBD +_02074822: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02074828: .word 0x0000080C +_0207482C: .word 0x00000305 +_02074830: + .byte 0x02, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0xA4, 0x05, 0x00, 0x00 + .byte 0xC8, 0x05, 0x00, 0x00, 0x23, 0x0B, 0x00, 0x00 + + thumb_func_start sub_02074848 +sub_02074848: ; 0x02074848 + push {r3-r7, lr} + sub sp, #0x28 + add r5, r0, #0x0 + ldr r0, _02074990 ; =0x0000080C + str r1, [sp, #0x1c] + ldr r1, [sp, #0x1c] + add r4, r5, r0 + add r2, r4, r1 + mov r1, #0x3 + lsl r1, r1, #0x8 + ldrb r2, [r2, r1] + mov r1, #0x2c + mul r1, r2 + add r2, r5, r1 + add r1, r0, #0x0 + sub r1, #0xf8 + ldrsb r7, [r2, r1] + sub r0, #0xf7 + ldrb r6, [r2, r0] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x20] + str r6, [sp, #0x0] + mov r1, #0x10 + str r1, [sp, #0x4] + mov r0, #0x6 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r3, [sp, #0x20] + mov r1, #0x2 + mov r2, #0x0 + bl sub_02018540 + str r6, [sp, #0x0] + mov r1, #0x10 + str r1, [sp, #0x4] + mov r0, #0x6 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r3, [sp, #0x20] + mov r1, #0x1 + mov r2, #0x0 + bl sub_02018540 + ldr r0, [sp, #0x1c] + add r1, r4, r0 + ldr r0, _02074994 ; =0x00000302 + ldrb r1, [r1, r0] + cmp r1, #0x0 + bne _02074918 + add r0, r0, #0x4 + ldrb r2, [r4, r0] + ldr r0, [sp, #0x1c] + mov r3, #0x10 + add r7, r0, #0x0 + sub r0, r3, r2 + lsl r0, r0, #0x18 + mov r1, #0xc0 + lsr r0, r0, #0x18 + mul r7, r1 + str r0, [sp, #0x0] + mov r1, #0x6 + str r1, [sp, #0x4] + add r0, r4, r7 + str r0, [sp, #0x8] + str r2, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + str r3, [sp, #0x14] + str r1, [sp, #0x18] + ldr r0, [r5, #0x0] + ldr r2, [sp, #0x20] + mov r1, #0x2 + add r3, r6, #0x0 + bl sub_02018170 + ldr r0, _02074998 ; =0x00000306 + mov r3, #0x10 + ldrb r2, [r4, r0] + mov r1, #0x6 + sub r0, r3, r2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + lsl r0, r1, #0x6 + add r0, r4, r0 + str r1, [sp, #0x4] + add r0, r0, r7 + str r0, [sp, #0x8] + str r2, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + str r3, [sp, #0x14] + str r1, [sp, #0x18] + ldr r0, [r5, #0x0] + ldr r2, [sp, #0x20] + mov r1, #0x1 + add r3, r6, #0x0 + bl sub_02018170 + add sp, #0x28 + pop {r3-r7, pc} +_02074918: + ldr r1, [sp, #0x1c] + mov r2, #0xc0 + mul r2, r1 + str r2, [sp, #0x24] + add r0, r0, #0x4 + ldrb r2, [r4, r0] + mov r3, #0x10 + ldr r1, [sp, #0x24] + sub r0, r3, r2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x6 + str r0, [sp, #0x4] + add r1, r4, r1 + str r1, [sp, #0x8] + mov r1, #0x0 + str r1, [sp, #0xc] + str r1, [sp, #0x10] + str r3, [sp, #0x14] + add r2, r7, r2 + str r0, [sp, #0x18] + lsl r2, r2, #0x18 + ldr r0, [r5, #0x0] + mov r1, #0x2 + lsr r2, r2, #0x18 + add r3, r6, #0x0 + bl sub_02018170 + ldr r0, _02074998 ; =0x00000306 + ldrb r2, [r4, r0] + mov r0, #0x10 + sub r0, r0, r2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x6 + lsl r1, r0, #0x6 + add r3, r4, r1 + ldr r1, [sp, #0x24] + add r2, r7, r2 + add r1, r3, r1 + str r0, [sp, #0x4] + str r1, [sp, #0x8] + mov r1, #0x0 + str r1, [sp, #0xc] + str r1, [sp, #0x10] + mov r1, #0x10 + str r1, [sp, #0x14] + str r0, [sp, #0x18] + lsl r2, r2, #0x18 + ldr r0, [r5, #0x0] + mov r1, #0x1 + lsr r2, r2, #0x18 + add r3, r6, #0x0 + bl sub_02018170 + add sp, #0x28 + pop {r3-r7, pc} + nop +_02074990: .word 0x0000080C +_02074994: .word 0x00000302 +_02074998: .word 0x00000306 + + thumb_func_start sub_0207499C +sub_0207499C: ; 0x0207499C + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _02074AE0 ; =0x0000080C + add r4, r1, #0x0 + add r1, r5, r0 + mov r0, #0x3 + lsl r0, r0, #0x8 + add r6, r1, r0 + ldrb r0, [r6, r4] + add r7, r2, #0x0 + add r2, sp, #0x0 + lsl r0, r0, #0x2 + add r1, r5, r0 + mov r0, #0x5b + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + add r1, sp, #0x0 + add r1, #0x2 + bl sub_0200C75C + cmp r7, #0x0 + ldr r0, _02074AE4 ; =0x00000716 + bne _02074A04 + ldrb r3, [r6, r4] + mov r7, #0x2c + add r2, r5, r0 + add r1, r3, #0x0 + mul r1, r7 + ldrsh r3, [r2, r1] + sub r3, #0x8 + strh r3, [r2, r1] + ldrb r3, [r6, r4] + add r1, r0, #0x4 + add r2, r5, r1 + add r1, r3, #0x0 + mul r1, r7 + ldrsh r3, [r2, r1] + add r0, #0x8 + add r0, r5, r0 + sub r3, #0x8 + strh r3, [r2, r1] + ldrb r1, [r6, r4] + add r2, r1, #0x0 + mul r2, r7 + ldrsh r1, [r0, r2] + sub r1, #0x8 + strh r1, [r0, r2] + add r1, sp, #0x0 + mov r0, #0x2 + ldrsh r0, [r1, r0] + sub r0, #0x8 + b _02074A3C +_02074A04: + ldrb r3, [r6, r4] + mov r7, #0x2c + add r2, r5, r0 + add r1, r3, #0x0 + mul r1, r7 + ldrsh r3, [r2, r1] + add r3, #0x8 + strh r3, [r2, r1] + ldrb r3, [r6, r4] + add r1, r0, #0x4 + add r2, r5, r1 + add r1, r3, #0x0 + mul r1, r7 + ldrsh r3, [r2, r1] + add r0, #0x8 + add r0, r5, r0 + add r3, #0x8 + strh r3, [r2, r1] + ldrb r1, [r6, r4] + add r2, r1, #0x0 + mul r2, r7 + ldrsh r1, [r0, r2] + add r1, #0x8 + strh r1, [r0, r2] + add r1, sp, #0x0 + mov r0, #0x2 + ldrsh r0, [r1, r0] + add r0, #0x8 +_02074A3C: + strh r0, [r1, #0x2] + ldrb r1, [r6, r4] + mov r0, #0x2c + ldr r2, _02074AE8 ; =0x00000724 + mul r0, r1 + add r3, r5, r0 + add r1, r2, #0x0 + ldr r0, [r3, r2] + sub r1, #0xe + sub r2, #0xc + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + bl sub_0200C6E4 + ldrb r2, [r6, r4] + mov r0, #0x2c + ldr r3, _02074AEC ; =0x0000071A + add r1, r2, #0x0 + add r2, #0xa + mul r1, r0 + lsl r0, r2, #0x2 + add r2, r5, r0 + mov r0, #0x5b + lsl r0, r0, #0x4 + ldr r0, [r2, r0] + add r2, r5, r1 + ldrsh r1, [r2, r3] + add r3, r3, #0x2 + ldrsh r2, [r2, r3] + bl sub_0200C6E4 + ldrb r2, [r6, r4] + mov r0, #0x2c + ldr r3, _02074AF0 ; =0x0000071E + add r1, r2, #0x0 + add r2, #0x10 + mul r1, r0 + lsl r0, r2, #0x2 + add r2, r5, r0 + mov r0, #0x5b + lsl r0, r0, #0x4 + ldr r0, [r2, r0] + add r2, r5, r1 + ldrsh r1, [r2, r3] + add r3, r3, #0x2 + ldrsh r2, [r2, r3] + bl sub_0200C6E4 + ldrb r2, [r6, r4] + mov r0, #0x2c + ldr r3, _02074AF0 ; =0x0000071E + add r1, r2, #0x0 + add r2, #0x16 + mul r1, r0 + lsl r0, r2, #0x2 + add r2, r5, r0 + mov r0, #0x5b + lsl r0, r0, #0x4 + ldr r0, [r2, r0] + add r2, r5, r1 + ldrsh r1, [r2, r3] + add r3, r3, #0x2 + ldrsh r2, [r2, r3] + add r1, #0x8 + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + bl sub_0200C6E4 + ldrb r0, [r6, r4] + add r3, sp, #0x0 + mov r2, #0x0 + lsl r0, r0, #0x2 + add r1, r5, r0 + mov r0, #0x5b + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + mov r1, #0x2 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + bl sub_0200C6E4 + pop {r3-r7, pc} + .balign 4 +_02074AE0: .word 0x0000080C +_02074AE4: .word 0x00000716 +_02074AE8: .word 0x00000724 +_02074AEC: .word 0x0000071A +_02074AF0: .word 0x0000071E + + thumb_func_start sub_02074AF4 +sub_02074AF4: ; 0x02074AF4 + push {r4-r7, lr} + sub sp, #0x1c + add r5, r0, #0x0 + ldr r0, _02074DD0 ; =0x0000080C + mov r1, #0x2c + add r4, r5, r0 + mov r0, #0xc + bl sub_02016998 + add r7, r0, #0x0 + mov r0, #0x3 + lsl r0, r0, #0x8 + ldrb r1, [r4, r0] + mov r0, #0x2c + add r3, r7, #0x0 + mul r0, r1 + add r1, r5, r0 + mov r0, #0x7 + lsl r0, r0, #0x8 + add r6, r1, r0 + mov r2, #0x5 +_02074B1E: + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02074B1E + ldr r0, [r6, #0x0] + mov r1, #0x3 + lsl r1, r1, #0x8 + str r0, [r3, #0x0] + ldrb r0, [r4, r1] + add r1, r1, #0x1 + ldrb r1, [r4, r1] + mov r2, #0x2c + add r3, r0, #0x0 + mul r3, r2 + mul r2, r1 + mov r1, #0x7 + add r0, r5, r3 + lsl r1, r1, #0x8 + add r2, r5, r2 + add r6, r2, r1 + add r3, r0, r1 + mov r2, #0x5 +_02074B4A: + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02074B4A + ldr r0, [r6, #0x0] + add r6, r7, #0x0 + str r0, [r3, #0x0] + ldr r0, _02074DD4 ; =0x00000301 + mov r2, #0x5 + ldrb r1, [r4, r0] + mov r0, #0x2c + mul r0, r1 + add r1, r5, r0 + mov r0, #0x7 + lsl r0, r0, #0x8 + add r3, r1, r0 +_02074B6A: + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02074B6A + ldr r0, [r6, #0x0] + add r1, r7, #0x0 + str r0, [r3, #0x0] + mov r0, #0xc + bl sub_02016A8C + mov r1, #0x3 + lsl r1, r1, #0x8 + ldrb r3, [r4, r1] + ldr r0, _02074DD8 ; =0x00000716 + add r2, r5, r0 + mov r0, #0x2c + add r7, r3, #0x0 + mul r7, r0 + ldrsh r3, [r2, r7] + str r3, [sp, #0x0] + add r3, r1, #0x1 + ldrb r3, [r4, r3] + add r6, r3, #0x0 + mul r6, r0 + ldr r3, _02074DD8 ; =0x00000716 + add r6, r5, r6 + ldrsh r3, [r6, r3] + strh r3, [r2, r7] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r3, r2, #0x0 + mul r3, r0 + add r6, r5, r3 + ldr r3, [sp, #0x0] + ldr r2, _02074DD8 ; =0x00000716 + strh r3, [r6, r2] + add r2, r2, #0x2 + add r3, r5, r2 + ldrb r2, [r4, r1] + add r7, r2, #0x0 + mul r7, r0 + ldrsh r2, [r3, r7] + str r2, [sp, #0x4] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r6, r2, #0x0 + mul r6, r0 + add r2, r5, r6 + ldr r6, _02074DD8 ; =0x00000716 + add r6, r6, #0x2 + ldrsh r2, [r2, r6] + strh r2, [r3, r7] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r3, r2, #0x0 + mul r3, r0 + add r2, r5, r3 + ldr r3, _02074DD8 ; =0x00000716 + add r6, r3, #0x2 + ldr r3, [sp, #0x4] + strh r3, [r2, r6] + ldr r2, _02074DD8 ; =0x00000716 + add r2, r2, #0x4 + add r3, r5, r2 + ldrb r2, [r4, r1] + add r7, r2, #0x0 + mul r7, r0 + ldrsh r2, [r3, r7] + str r2, [sp, #0x8] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r6, r2, #0x0 + mul r6, r0 + add r2, r5, r6 + ldr r6, _02074DD8 ; =0x00000716 + add r6, r6, #0x4 + ldrsh r2, [r2, r6] + strh r2, [r3, r7] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r3, r2, #0x0 + mul r3, r0 + add r2, r5, r3 + ldr r3, _02074DD8 ; =0x00000716 + add r6, r3, #0x4 + ldr r3, [sp, #0x8] + strh r3, [r2, r6] + ldr r2, _02074DD8 ; =0x00000716 + add r2, r2, #0x6 + add r3, r5, r2 + ldrb r2, [r4, r1] + add r7, r2, #0x0 + mul r7, r0 + ldrsh r2, [r3, r7] + str r2, [sp, #0xc] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r6, r2, #0x0 + mul r6, r0 + add r2, r5, r6 + ldr r6, _02074DD8 ; =0x00000716 + add r6, r6, #0x6 + ldrsh r2, [r2, r6] + strh r2, [r3, r7] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r3, r2, #0x0 + mul r3, r0 + add r2, r5, r3 + ldr r3, _02074DD8 ; =0x00000716 + add r6, r3, #0x6 + ldr r3, [sp, #0xc] + strh r3, [r2, r6] + ldr r2, _02074DD8 ; =0x00000716 + add r2, #0x8 + add r6, r5, r2 + ldrb r2, [r4, r1] + add r7, r2, #0x0 + mul r7, r0 + ldrsh r2, [r6, r7] + str r2, [sp, #0x10] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r3, r2, #0x0 + mul r3, r0 + add r2, r5, r3 + ldr r3, _02074DD8 ; =0x00000716 + add r3, #0x8 + ldrsh r2, [r2, r3] + strh r2, [r6, r7] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r3, r2, #0x0 + mul r3, r0 + add r6, r5, r3 + ldr r3, _02074DD8 ; =0x00000716 + ldr r2, [sp, #0x10] + add r3, #0x8 + strh r2, [r6, r3] + ldr r2, _02074DD8 ; =0x00000716 + add r2, #0xa + add r6, r5, r2 + ldrb r2, [r4, r1] + add r7, r2, #0x0 + mul r7, r0 + ldrsh r2, [r6, r7] + str r2, [sp, #0x14] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r3, r2, #0x0 + mul r3, r0 + add r2, r5, r3 + ldr r3, _02074DD8 ; =0x00000716 + add r3, #0xa + ldrsh r2, [r2, r3] + strh r2, [r6, r7] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r3, r2, #0x0 + mul r3, r0 + add r6, r5, r3 + ldr r3, _02074DD8 ; =0x00000716 + ldr r2, [sp, #0x14] + add r3, #0xa + strh r2, [r6, r3] + ldr r2, _02074DD8 ; =0x00000716 + sub r2, r2, #0x2 + add r3, r5, r2 + ldrb r2, [r4, r1] + add r7, r2, #0x0 + mul r7, r0 + ldrsb r2, [r3, r7] + str r2, [sp, #0x18] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r6, r2, #0x0 + mul r6, r0 + add r2, r5, r6 + ldr r6, _02074DD8 ; =0x00000716 + sub r6, r6, #0x2 + ldrsb r2, [r2, r6] + strb r2, [r3, r7] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r3, r2, #0x0 + mul r3, r0 + add r2, r5, r3 + ldr r3, _02074DD8 ; =0x00000716 + sub r6, r3, #0x2 + ldr r3, [sp, #0x18] + strb r3, [r2, r6] + ldr r2, _02074DD8 ; =0x00000716 + sub r2, r2, #0x1 + add r6, r5, r2 + ldrb r2, [r4, r1] + add r7, r2, #0x0 + mul r7, r0 + ldrsb r2, [r6, r7] + mov r12, r2 + add r2, r1, #0x1 + ldrb r2, [r4, r2] + add r3, r2, #0x0 + ldr r2, _02074DD8 ; =0x00000716 + mul r3, r0 + add r3, r5, r3 + sub r2, r2, #0x1 + ldrsb r2, [r3, r2] + strb r2, [r6, r7] + add r2, r1, #0x1 + ldrb r2, [r4, r2] + mul r0, r2 + ldr r2, _02074DD8 ; =0x00000716 + add r0, r5, r0 + sub r3, r2, #0x1 + mov r2, r12 + strb r2, [r0, r3] + ldrb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02072D1C + ldr r1, _02074DD4 ; =0x00000301 + add r0, r5, #0x0 + ldrb r1, [r4, r1] + bl sub_02072D1C + mov r1, #0x3 + lsl r1, r1, #0x8 + ldrb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02072E14 + ldr r1, _02074DD4 ; =0x00000301 + add r0, r5, #0x0 + ldrb r1, [r4, r1] + bl sub_02072E14 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02074DE4 + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02074DE4 + mov r0, #0x3 + lsl r0, r0, #0x8 + ldrb r1, [r4, r0] + mov r2, #0x2c + add r0, r5, #0x0 + mul r2, r1 + add r3, r5, r2 + ldr r2, _02074DDC ; =0x0000070E + ldrh r2, [r3, r2] + lsl r2, r2, #0x14 + lsr r2, r2, #0x14 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_02073A4C + ldr r0, _02074DD4 ; =0x00000301 + mov r2, #0x2c + ldrb r1, [r4, r0] + add r0, r5, #0x0 + mul r2, r1 + add r3, r5, r2 + ldr r2, _02074DDC ; =0x0000070E + ldrh r2, [r3, r2] + lsl r2, r2, #0x14 + lsr r2, r2, #0x14 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_02073A4C + mov r0, #0x3 + lsl r0, r0, #0x8 + ldrb r1, [r4, r0] + mov r2, #0x2c + add r0, r5, #0x0 + mul r2, r1 + add r3, r5, r2 + ldr r2, _02074DE0 ; =0x0000070C + ldrh r2, [r3, r2] + bl sub_02073A78 + ldr r0, _02074DD4 ; =0x00000301 + mov r2, #0x2c + ldrb r1, [r4, r0] + add r0, r5, #0x0 + mul r2, r1 + add r3, r5, r2 + ldr r2, _02074DE0 ; =0x0000070C + ldrh r2, [r3, r2] + bl sub_02073A78 + mov r1, #0x3 + lsl r1, r1, #0x8 + ldrb r1, [r4, r1] + add r0, r5, #0x0 + bl sub_02073B3C + ldr r1, _02074DD4 ; =0x00000301 + add r0, r5, #0x0 + ldrb r1, [r4, r1] + bl sub_02073B3C + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 +_02074DD0: .word 0x0000080C +_02074DD4: .word 0x00000301 +_02074DD8: .word 0x00000716 +_02074DDC: .word 0x0000070E +_02074DE0: .word 0x0000070C + + thumb_func_start sub_02074DE4 +sub_02074DE4: ; 0x02074DE4 + push {r3-r7, lr} + add r7, r1, #0x0 + ldr r1, _02074E6C ; =0x0000080C + add r6, r0, #0x0 + add r4, r6, r1 + mov r1, #0xc0 + mul r1, r7 + add r5, r4, r1 + bl sub_020703BC + add r3, r0, #0x0 + mov r0, #0x3 + add r1, r4, r7 + lsl r0, r0, #0x8 + ldrb r1, [r1, r0] + mov r0, #0x2c + mul r0, r1 + add r1, r6, r0 + mov r0, #0x71 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + cmp r0, #0x1 + bne _02074E3C + mov r3, #0xf + mov r1, #0x0 + lsl r3, r3, #0xc + mov r4, #0x17 +_02074E1A: + lsl r0, r1, #0x1 + add r2, r5, r0 + add r2, #0x6c + ldrh r2, [r2, #0x0] + add r0, r5, r0 + add r0, #0x6c + and r2, r3 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + orr r2, r4 + strh r2, [r0, #0x0] + add r0, r1, #0x1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0x9 + blo _02074E1A + pop {r3-r7, pc} +_02074E3C: + mov r6, #0xf + ldr r0, _02074E70 ; =0x00000FFF + mov r4, #0x0 + lsl r6, r6, #0xc +_02074E44: + lsl r2, r4, #0x1 + add r1, r5, r2 + add r1, #0x6c + ldrh r1, [r1, #0x0] + ldrh r7, [r3, r2] + and r1, r6 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + and r7, r0 + orr r7, r1 + add r1, r5, r2 + add r1, #0x6c + strh r7, [r1, #0x0] + add r1, r4, #0x1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r4, #0x9 + blo _02074E44 + pop {r3-r7, pc} + nop +_02074E6C: .word 0x0000080C +_02074E70: .word 0x00000FFF + + thumb_func_start sub_02074E74 +sub_02074E74: ; 0x02074E74 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0x85 + lsl r0, r0, #0x2 + add r6, r1, #0x0 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r5, #0x0 + bl sub_02073DB4 + ldr r0, _02074F5C ; =0x000005A4 + mov r4, #0x0 + ldr r0, [r5, r0] + add r1, r0, #0x0 + add r1, #0x32 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + beq _02074EFA +_02074E9E: + add r2, r0, r4 + add r2, #0x2c + ldrb r2, [r2, #0x0] + cmp r2, #0x0 + bne _02074EF0 + ldr r1, _02074F60 ; =0x00000B25 + add r0, r0, r4 + ldrb r2, [r5, r1] + add r0, #0x2c + add r2, r2, #0x1 + strb r2, [r0, #0x0] + ldrb r1, [r5, r1] + add r0, r5, #0x0 + bl sub_02073024 + add r0, r5, #0x0 + mov r1, #0x22 + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _02074F64 ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_0200C664 + ldr r0, _02074F5C ; =0x000005A4 + ldr r0, [r5, r0] + add r0, #0x32 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + sub r0, r0, #0x1 + cmp r4, r0 + bne _02074EEA + add r0, r5, #0x0 + mov r1, #0x6 + bl sub_02070E60 +_02074EEA: + mov r0, #0x1 + str r0, [r6, #0x0] + pop {r4-r6, pc} +_02074EF0: + add r2, r4, #0x1 + lsl r2, r2, #0x18 + lsr r4, r2, #0x18 + cmp r4, r1 + blo _02074E9E +_02074EFA: + cmp r1, #0x5 + bhi _02074F50 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r0, #0x1 + lsl r2, r1, #0 + lsl r6, r2, #0 + lsl r2, r4, #0 + lsl r6, r5, #0 + lsl r2, r7, #0 + add r0, r5, #0x0 + mov r1, #0x7b + mov r2, #0x1 + bl sub_020731E8 + b _02074F50 +_02074F22: + .byte 0x28, 0x1C, 0x64, 0x21, 0x01, 0x22, 0xFE, 0xF7, 0x5E, 0xF9, 0x10, 0xE0, 0x28, 0x1C + .byte 0x7C, 0x21, 0x01, 0x22, 0xFE, 0xF7, 0x58, 0xF9, 0x0A, 0xE0, 0x28, 0x1C, 0x7D, 0x21, 0x01, 0x22 + .byte 0xFE, 0xF7, 0x52, 0xF9, 0x04, 0xE0, 0x28, 0x1C, 0x7E, 0x21, 0x01, 0x22, 0xFE, 0xF7, 0x4C, 0xF9 +_02074F50: + ldr r0, _02074F68 ; =0x00000B22 + mov r1, #0x13 + strb r1, [r5, r0] + mov r0, #0x14 + str r0, [r6, #0x0] + pop {r4-r6, pc} + .balign 4 +_02074F5C: .word 0x000005A4 +_02074F60: .word 0x00000B25 +_02074F64: .word 0x000005C8 +_02074F68: .word 0x00000B22 + + thumb_func_start sub_02074F6C +sub_02074F6C: ; 0x02074F6C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02074FA4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _02074F9E + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r4, #0x0 + mov r1, #0x22 + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _02074FA8 ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C664 + mov r0, #0x1 + pop {r4, pc} +_02074F9E: + mov r0, #0x13 + pop {r4, pc} + nop +_02074FA4: .word 0x021C48B8 +_02074FA8: .word 0x000005C8 + + thumb_func_start sub_02074FAC +sub_02074FAC: ; 0x02074FAC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _02075080 ; =0x000005A4 + str r1, [sp, #0x0] + ldr r1, [r5, r0] + mov r4, #0x0 + add r0, r1, #0x0 + add r0, #0x32 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r2, r0, #0x1c + beq _0207502C + ldr r0, _02075084 ; =0x00000B25 + ldrb r0, [r5, r0] + add r0, r0, #0x1 +_02074FCA: + add r3, r1, r4 + add r3, #0x2c + ldrb r3, [r3, #0x0] + cmp r0, r3 + bne _02075022 + add r0, r1, r4 + mov r2, #0x0 + add r0, #0x2c + strb r2, [r0, #0x0] + ldr r0, _02075080 ; =0x000005A4 + ldr r6, [r5, r0] + add r0, r6, #0x0 + add r0, #0x32 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + sub r0, r0, #0x1 + cmp r4, r0 + bge _0207502C + ldr r0, _02075080 ; =0x000005A4 + add r1, r0, #0x0 +_02074FF4: + add r3, r6, r4 + add r3, #0x2d + ldrb r3, [r3, #0x0] + add r6, r6, r4 + add r6, #0x2c + strb r3, [r6, #0x0] + ldr r3, [r5, r0] + add r3, r3, r4 + add r3, #0x2d + strb r2, [r3, #0x0] + add r3, r4, #0x1 + lsl r3, r3, #0x18 + ldr r6, [r5, r1] + lsr r4, r3, #0x18 + add r3, r6, #0x0 + add r3, #0x32 + ldrb r3, [r3, #0x0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x1c + sub r3, r3, #0x1 + cmp r4, r3 + blt _02074FF4 + b _0207502C +_02075022: + add r3, r4, #0x1 + lsl r3, r3, #0x18 + lsr r4, r3, #0x18 + cmp r4, r2 + blo _02074FCA +_0207502C: + ldr r6, _02075088 ; =0x00000729 + mov r4, #0x0 + mov r7, #0x2c +_02075032: + add r0, r4, #0x0 + mul r0, r7 + add r0, r5, r0 + ldrb r0, [r0, r6] + cmp r0, #0x0 + beq _02075046 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02073024 +_02075046: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x6 + blo _02075032 + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r5, #0x0 + bl sub_02073DB4 + add r0, r5, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _0207508C ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_0200C664 + ldr r0, [sp, #0x0] + mov r1, #0x1 + str r1, [r0, #0x0] + pop {r3-r7, pc} + nop +_02075080: .word 0x000005A4 +_02075084: .word 0x00000B25 +_02075088: .word 0x00000729 +_0207508C: .word 0x000005C8 + + thumb_func_start sub_02075090 +sub_02075090: ; 0x02075090 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _020750B8 ; =0x000005A4 + add r4, r1, #0x0 + ldr r0, [r5, r0] + mov r1, #0x0 + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _020750BC ; =0x000006FC + ldr r0, [r5, r0] + bl sub_02001C5C + ldr r0, _020750C0 ; =0x000006F8 + ldr r0, [r5, r0] + bl sub_02012870 + mov r0, #0x1b + str r0, [r4, #0x0] + pop {r3-r5, pc} + nop +_020750B8: .word 0x000005A4 +_020750BC: .word 0x000006FC +_020750C0: .word 0x000006F8 + + thumb_func_start sub_020750C4 +sub_020750C4: ; 0x020750C4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _020750EC ; =0x000005A4 + add r4, r1, #0x0 + ldr r0, [r5, r0] + mov r1, #0x1 + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _020750F0 ; =0x000006FC + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_02001C5C + ldr r0, _020750F4 ; =0x000006F8 + ldr r0, [r5, r0] + bl sub_02012870 + mov r0, #0x1b + str r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 +_020750EC: .word 0x000005A4 +_020750F0: .word 0x000006FC +_020750F4: .word 0x000006F8 + + thumb_func_start sub_020750F8 +sub_020750F8: ; 0x020750F8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02073DB4 + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r5, #0x0 + bl sub_02075118 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start sub_02075118 +sub_02075118: ; 0x02075118 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02075190 ; =0x000005A4 + ldr r1, _02075194 ; =0x00000B25 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + mov r1, #0xa1 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + ldr r2, _02075198 ; =0x0000069C + bne _0207515C + ldr r0, [r4, r2] + add r2, #0x8 + ldr r2, [r4, r2] + mov r1, #0x81 + bl sub_0200A8E0 + ldr r0, _02075194 ; =0x00000B25 + ldrb r0, [r4, r0] + add r0, #0x16 + lsl r0, r0, #0x2 + add r1, r4, r0 + mov r0, #0x5b + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + mov r1, #0x1 + bl sub_020200A0 + b _0207516E +_0207515C: + ldr r0, [r4, r2] + add r2, #0x8 + ldr r2, [r4, r2] + mov r1, #0x82 + bl sub_0200A8E0 + ldr r0, _02075194 ; =0x00000B25 + mov r1, #0x7 + strb r1, [r4, r0] +_0207516E: + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02075190 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _0207519C ; =0x00000B22 + mov r1, #0x15 + strb r1, [r4, r0] + mov r0, #0x14 + pop {r4, pc} + nop +_02075190: .word 0x000005A4 +_02075194: .word 0x00000B25 +_02075198: .word 0x0000069C +_0207519C: .word 0x00000B22 + + thumb_func_start sub_020751A0 +sub_020751A0: ; 0x020751A0 + push {r4-r6, lr} + add r6, r1, #0x0 + add r4, r0, #0x0 + ldr r1, _02075234 ; =0x000005A4 + mov r0, #0x1 + ldr r1, [r4, r1] + add r1, #0x23 + ldrb r1, [r1, #0x0] + sub r1, #0xb + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_02063948 + add r1, r0, #0x0 + beq _020751C8 + ldr r0, _02075234 ; =0x000005A4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x18] + blx r1 + b _020751CA +_020751C8: + mov r0, #0x1 +_020751CA: + cmp r0, #0x4 + bhi _0207520A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r0, r4, #0 + lsl r4, r4, #0 + lsl r0, r5, #0 + lsl r4, r5, #0 + ldr r0, _02075238 ; =0x000006FC + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_02001C5C + ldr r0, _0207523C ; =0x000006F8 + ldr r0, [r4, r0] + bl sub_02012870 + mov r0, #0x1b + str r0, [r6, #0x0] + pop {r4-r6, pc} +_020751FC: + .byte 0x68, 0x25, 0x04, 0xE0 + .byte 0x4C, 0x25, 0x02, 0xE0, 0xC4, 0x25, 0x00, 0xE0, 0x66, 0x25 +_0207520A: + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r4, #0x0 + bl sub_02073DB4 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02075240 ; =0x00000B22 + mov r1, #0x3 + strb r1, [r4, r0] + mov r0, #0x14 + str r0, [r6, #0x0] + pop {r4-r6, pc} + nop +_02075234: .word 0x000005A4 +_02075238: .word 0x000006FC +_0207523C: .word 0x000006F8 +_02075240: .word 0x00000B22 + + thumb_func_start sub_02075244 +sub_02075244: ; 0x02075244 + ldr r2, _02075254 ; =0x000005A4 + mov r3, #0xb + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _02075258 ; =sub_020751A0 + bx r3 + nop +_02075254: .word 0x000005A4 +_02075258: .word sub_020751A0 + 1 + + thumb_func_start sub_0207525C +sub_0207525C: ; 0x0207525C + ldr r2, _0207526C ; =0x000005A4 + mov r3, #0x10 + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _02075270 ; =sub_020751A0 + bx r3 + nop +_0207526C: .word 0x000005A4 +_02075270: .word sub_020751A0 + 1 + + thumb_func_start sub_02075274 +sub_02075274: ; 0x02075274 + ldr r2, _02075284 ; =0x000005A4 + mov r3, #0xe + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _02075288 ; =sub_020751A0 + bx r3 + nop +_02075284: .word 0x000005A4 +_02075288: .word sub_020751A0 + 1 + + thumb_func_start sub_0207528C +sub_0207528C: ; 0x0207528C + ldr r2, _0207529C ; =0x000005A4 + mov r3, #0xd + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _020752A0 ; =sub_020751A0 + bx r3 + nop +_0207529C: .word 0x000005A4 +_020752A0: .word sub_020751A0 + 1 + + thumb_func_start sub_020752A4 +sub_020752A4: ; 0x020752A4 + ldr r2, _020752B4 ; =0x000005A4 + mov r3, #0xf + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _020752B8 ; =sub_020751A0 + bx r3 + nop +_020752B4: .word 0x000005A4 +_020752B8: .word sub_020751A0 + 1 + + thumb_func_start sub_020752BC +sub_020752BC: ; 0x020752BC + ldr r2, _020752CC ; =0x000005A4 + mov r3, #0x12 + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _020752D0 ; =sub_020751A0 + bx r3 + nop +_020752CC: .word 0x000005A4 +_020752D0: .word sub_020751A0 + 1 + + thumb_func_start sub_020752D4 +sub_020752D4: ; 0x020752D4 + ldr r2, _020752E4 ; =0x000005A4 + mov r3, #0xc + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _020752E8 ; =sub_020751A0 + bx r3 + nop +_020752E4: .word 0x000005A4 +_020752E8: .word sub_020751A0 + 1 + + thumb_func_start sub_020752EC +sub_020752EC: ; 0x020752EC + ldr r2, _020752FC ; =0x000005A4 + mov r3, #0x11 + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _02075300 ; =sub_020751A0 + bx r3 + nop +_020752FC: .word 0x000005A4 +_02075300: .word sub_020751A0 + 1 + + thumb_func_start sub_02075304 +sub_02075304: ; 0x02075304 + ldr r2, _02075314 ; =0x000005A4 + mov r3, #0x13 + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _02075318 ; =sub_020751A0 + bx r3 + nop +_02075314: .word 0x000005A4 +_02075318: .word sub_020751A0 + 1 + + thumb_func_start sub_0207531C +sub_0207531C: ; 0x0207531C + ldr r2, _0207532C ; =0x000005A4 + mov r3, #0x14 + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _02075330 ; =sub_020751A0 + bx r3 + nop +_0207532C: .word 0x000005A4 +_02075330: .word sub_020751A0 + 1 + + thumb_func_start sub_02075334 +sub_02075334: ; 0x02075334 + ldr r2, _02075344 ; =0x000005A4 + mov r3, #0x15 + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _02075348 ; =sub_020751A0 + bx r3 + nop +_02075344: .word 0x000005A4 +_02075348: .word sub_020751A0 + 1 + + thumb_func_start sub_0207534C +sub_0207534C: ; 0x0207534C + ldr r2, _0207535C ; =0x000005A4 + mov r3, #0x16 + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _02075360 ; =sub_020751A0 + bx r3 + nop +_0207535C: .word 0x000005A4 +_02075360: .word sub_020751A0 + 1 + + thumb_func_start sub_02075364 +sub_02075364: ; 0x02075364 + ldr r2, _02075374 ; =0x000005A4 + mov r3, #0x17 + ldr r2, [r0, r2] + add r2, #0x23 + strb r3, [r2, #0x0] + ldr r3, _02075378 ; =sub_020751A0 + bx r3 + nop +_02075374: .word 0x000005A4 +_02075378: .word sub_020751A0 + 1 + + thumb_func_start sub_0207537C +sub_0207537C: ; 0x0207537C + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + bl sub_020753B4 + str r0, [r5, #0x0] + cmp r0, #0x1a + bne _02075392 + ldr r0, _02075394 ; =0x00000B2E + mov r1, #0xd + strh r1, [r4, r0] +_02075392: + pop {r3-r5, pc} + .balign 4 +_02075394: .word 0x00000B2E + + thumb_func_start sub_02075398 +sub_02075398: ; 0x02075398 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + bl sub_020753B4 + str r0, [r5, #0x0] + cmp r0, #0x1a + bne _020753AE + ldr r0, _020753B0 ; =0x00000B2E + mov r1, #0xe + strh r1, [r4, r0] +_020753AE: + pop {r3-r5, pc} + .balign 4 +_020753B0: .word 0x00000B2E + + thumb_func_start sub_020753B4 +sub_020753B4: ; 0x020753B4 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r4, #0x0 + bl sub_02073DB4 + ldr r0, _020754A8 ; =0x00000B25 + ldrb r1, [r4, r0] + mov r0, #0x2c + mul r0, r1 + add r1, r4, r0 + ldr r0, _020754AC ; =0x00000708 + ldrh r0, [r1, r0] + mov r1, #0x5 + blx sub_020EBC80 + ldr r1, _020754B0 ; =0x00000B28 + strh r0, [r4, r1] + sub r0, r1, #0x3 + ldrb r2, [r4, r0] + mov r0, #0x2c + mul r0, r2 + add r2, r4, r0 + ldr r0, _020754B4 ; =0x00000706 + ldrh r2, [r2, r0] + ldrh r0, [r4, r1] + cmp r2, r0 + bhi _0207540E + add r0, r4, #0x0 + mov r1, #0x8a + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _020754B8 ; =0x00000B22 + mov r1, #0x3 + strb r1, [r4, r0] + add sp, #0x4 + mov r0, #0x14 + pop {r3-r4, pc} +_0207540E: + sub r0, r1, #0x5 + ldrb r2, [r4, r0] + mov r0, #0x40 + orr r2, r0 + sub r0, r1, #0x5 + strb r2, [r4, r0] + ldrb r0, [r4, r0] + mov r2, #0x3f + bic r0, r2 + sub r2, r1, #0x3 + ldrb r3, [r4, r2] + mov r2, #0x3f + and r2, r3 + orr r2, r0 + sub r0, r1, #0x5 + strb r2, [r4, r0] + ldr r0, _020754BC ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C664 + ldr r0, _020754BC ; =0x000005C8 + add r1, sp, #0x0 + ldr r0, [r4, r0] + add r1, #0x2 + add r2, sp, #0x0 + bl sub_0200C75C + ldr r0, _020754C0 ; =0x000005CC + add r3, sp, #0x0 + mov r1, #0x2 + mov r2, #0x0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r4, r0] + bl sub_0200C6E4 + ldr r0, _020754C4 ; =0x000005A4 + ldr r1, _020754C8 ; =0x00000B23 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + add r0, #0x21 + ldrb r0, [r0, #0x0] + lsl r1, r1, #0x1a + lsr r1, r1, #0x1a + bl sub_020714BC + add r1, r0, #0x0 + ldr r0, _020754C0 ; =0x000005CC + add r1, r1, #0x2 + ldr r0, [r4, r0] + bl sub_02020130 + ldr r0, _020754C0 ; =0x000005CC + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + ldr r1, _020754C8 ; =0x00000B23 + add r0, r4, #0x0 + ldrb r1, [r4, r1] + lsl r1, r1, #0x1a + lsr r1, r1, #0x1a + bl sub_020709FC + add r0, r4, #0x0 + mov r1, #0x24 + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _020754CC ; =0x00000B2A + mov r1, #0x0 + strh r1, [r4, r0] + mov r0, #0x1a + add sp, #0x4 + pop {r3-r4, pc} + nop +_020754A8: .word 0x00000B25 +_020754AC: .word 0x00000708 +_020754B0: .word 0x00000B28 +_020754B4: .word 0x00000706 +_020754B8: .word 0x00000B22 +_020754BC: .word 0x000005C8 +_020754C0: .word 0x000005CC +_020754C4: .word 0x000005A4 +_020754C8: .word 0x00000B23 +_020754CC: .word 0x00000B2A + + thumb_func_start sub_020754D0 +sub_020754D0: ; 0x020754D0 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02075504 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r1, r0 + beq _02075500 + mov r0, #0x89 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0x1 + bl sub_020731C0 + ldr r0, _02075508 ; =0x000005C8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C664 + mov r0, #0x1 +_02075500: + pop {r4, pc} + nop +_02075504: .word 0x021C48B8 +_02075508: .word 0x000005C8 + + thumb_func_start sub_0207550C +sub_0207550C: ; 0x0207550C + push {r3-r5, lr} + mov r1, #0x0 + mov r2, #0xc + bl sub_0206E710 + mov r1, #0xe + add r4, r0, #0x0 + bl sub_0206E7DC + cmp r0, #0x1 + beq _0207552C + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1c + pop {r3-r5, pc} +_0207552C: + add r0, r4, #0x0 + mov r1, #0x1b + bl sub_0206E7DC + cmp r0, #0x0 + bne _02075580 + add r0, r4, #0x0 + mov r1, #0x1c + bl sub_0206E7DC + cmp r0, #0x0 + bne _02075580 + add r0, r4, #0x0 + mov r1, #0x1d + bl sub_0206E7DC + cmp r0, #0x0 + bne _02075580 + add r0, r4, #0x0 + mov r1, #0x1e + bl sub_0206E7DC + cmp r0, #0x0 + bne _02075580 + add r0, r4, #0x0 + mov r1, #0x1f + bl sub_0206E7DC + cmp r0, #0x0 + bne _02075580 + add r0, r4, #0x0 + mov r1, #0x20 + bl sub_0206E7DC + cmp r0, #0x0 + bne _02075580 + add r0, r4, #0x0 + mov r1, #0x21 + bl sub_0206E7DC + cmp r0, #0x0 + beq _0207558A +_02075580: + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x0 + pop {r3-r5, pc} +_0207558A: + add r0, r4, #0x0 + mov r1, #0x18 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020755A0 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_020755A0: + add r0, r4, #0x0 + mov r1, #0x19 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020755B6 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x2 + pop {r3-r5, pc} +_020755B6: + add r0, r4, #0x0 + mov r1, #0xf + bl sub_0206E7DC + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x10 + bl sub_0206E7DC + lsl r0, r0, #0x1 + add r5, r5, r0 + add r0, r4, #0x0 + mov r1, #0x11 + bl sub_0206E7DC + lsl r0, r0, #0x2 + add r5, r5, r0 + add r0, r4, #0x0 + mov r1, #0x12 + bl sub_0206E7DC + lsl r0, r0, #0x3 + add r5, r5, r0 + add r0, r4, #0x0 + mov r1, #0x13 + bl sub_0206E7DC + lsl r0, r0, #0x4 + add r5, r5, r0 + add r0, r4, #0x0 + mov r1, #0x14 + bl sub_0206E7DC + lsl r0, r0, #0x5 + add r5, r5, r0 + cmp r5, #0x10 + bgt _02075624 + bge _0207565A + cmp r5, #0x8 + bhi _0207568E + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r7, #0x1 + lsl r6, r3, #0 + lsl r0, r5, #0 + lsl r2, r7, #0x1 + lsl r2, r6, #0 + lsl r2, r7, #0x1 + lsl r2, r7, #0x1 + lsl r2, r7, #0x1 + lsl r4, r7, #0 +_02075624: + cmp r5, #0x20 + bgt _0207562C + beq _02075664 + b _0207568E +_0207562C: + cmp r5, #0x3f + beq _0207566E + b _0207568E +_02075632: + .byte 0x20, 0x1C, 0xA1, 0xF7, 0xF0, 0xF9, 0x03, 0x20, 0x38, 0xBD, 0x20, 0x1C, 0xA1, 0xF7 + .byte 0xEB, 0xF9, 0x04, 0x20, 0x38, 0xBD, 0x20, 0x1C, 0xA1, 0xF7, 0xE6, 0xF9, 0x05, 0x20, 0x38, 0xBD + .byte 0x20, 0x1C, 0xA1, 0xF7, 0xE1, 0xF9, 0x06, 0x20, 0x38, 0xBD +_0207565A: + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x7 + pop {r3-r5, pc} +_02075664: + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x8 + pop {r3-r5, pc} +_0207566E: + add r0, r4, #0x0 + mov r1, #0x26 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02075684 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0xb + pop {r3-r5, pc} +_02075684: + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x9 + pop {r3-r5, pc} +_0207568E: + add r0, r4, #0x0 + mov r1, #0x15 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020756A4 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0xa + pop {r3-r5, pc} +_020756A4: + add r0, r4, #0x0 + mov r1, #0x26 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020756BA + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0xb + pop {r3-r5, pc} +_020756BA: + add r0, r4, #0x0 + mov r1, #0x30 + bl sub_0206E7DC + cmp r0, #0x0 + ble _020756D0 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0xc + pop {r3-r5, pc} +_020756D0: + bge _020756DC + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x12 + pop {r3-r5, pc} +_020756DC: + add r0, r4, #0x0 + mov r1, #0x31 + bl sub_0206E7DC + cmp r0, #0x0 + ble _020756F2 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0xd + pop {r3-r5, pc} +_020756F2: + bge _020756FE + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x13 + pop {r3-r5, pc} +_020756FE: + add r0, r4, #0x0 + mov r1, #0x32 + bl sub_0206E7DC + cmp r0, #0x0 + ble _02075714 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0xe + pop {r3-r5, pc} +_02075714: + bge _02075720 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x14 + pop {r3-r5, pc} +_02075720: + add r0, r4, #0x0 + mov r1, #0x33 + bl sub_0206E7DC + cmp r0, #0x0 + ble _02075736 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0xf + pop {r3-r5, pc} +_02075736: + bge _02075742 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x15 + pop {r3-r5, pc} +_02075742: + add r0, r4, #0x0 + mov r1, #0x34 + bl sub_0206E7DC + cmp r0, #0x0 + ble _02075758 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x10 + pop {r3-r5, pc} +_02075758: + bge _02075764 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x16 + pop {r3-r5, pc} +_02075764: + add r0, r4, #0x0 + mov r1, #0x35 + bl sub_0206E7DC + cmp r0, #0x0 + ble _0207577A + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x11 + pop {r3-r5, pc} +_0207577A: + bge _02075786 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x17 + pop {r3-r5, pc} +_02075786: + add r0, r4, #0x0 + mov r1, #0x1a + bl sub_0206E7DC + cmp r0, #0x0 + beq _0207579C + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x18 + pop {r3-r5, pc} +_0207579C: + add r0, r4, #0x0 + mov r1, #0x22 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020757B2 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x19 + pop {r3-r5, pc} +_020757B2: + add r0, r4, #0x0 + mov r1, #0x23 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020757C8 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1a + pop {r3-r5, pc} +_020757C8: + add r0, r4, #0x0 + mov r1, #0x24 + bl sub_0206E7DC + cmp r0, #0x0 + bne _020757E0 + add r0, r4, #0x0 + mov r1, #0x25 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020757EA +_020757E0: + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1b + pop {r3-r5, pc} +_020757EA: + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1c + pop {r3-r5, pc} + + thumb_func_start sub_020757F4 +sub_020757F4: ; 0x020757F4 + push {r4-r6, lr} + add r4, r0, #0x0 + ldr r0, _02075B8C ; =0x000005A4 + add r6, r1, #0x0 + ldr r1, _02075B90 ; =0x00000B25 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + ldr r0, [r0, #0x0] + add r5, r2, #0x0 + bl sub_0206B9B0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200ACF8 + add r0, r6, #0x0 + bl sub_0207550C + cmp r0, #0x1b + bls _02075828 + b _02075C40 +_02075828: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0x10 + lsl r2, r1, #0x10 + lsl r2, r1, #0x10 + lsl r2, r3, #0x1 + lsl r6, r6, #0 + lsl r6, r7, #0x1 + lsl r2, r4, #0x2 + lsl r6, r0, #0x3 + lsl r2, r5, #0x3 + lsl r2, r6, #0x4 + lsl r6, r1, #0x4 + lsl r2, r1, #0x10 + lsl r6, r2, #0x5 + lsl r0, r1, #0x6 + lsl r2, r7, #0x6 + lsl r4, r5, #0x7 + lsl r6, r3, #0x8 + lsl r0, r2, #0x9 + lsl r2, r0, #0xa + lsl r6, r6, #0xa + lsl r2, r5, #0xb + lsl r6, r3, #0xc + lsl r2, r2, #0xd + lsl r4, r2, #0xe + lsl r2, r1, #0x10 + lsl r0, r1, #0xf + lsl r0, r1, #0xf + lsl r2, r7, #0xf + ldr r0, _02075B94 ; =0x0000069C + mov r1, #0x41 + ldr r0, [r4, r0] + bl sub_0200A914 + mov r1, #0x6a + add r5, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + add r2, r5, #0x0 + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02021A20 + pop {r4-r6, pc} +_02075890: + .byte 0xC0, 0x48, 0x5B, 0x21, 0x20, 0x58, 0x95, 0xF7, 0x3D, 0xF8, 0x6A, 0x21, 0x05, 0x1C, 0x09, 0x01 + .byte 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x86, 0xFF, 0x28, 0x1C, 0xAC, 0xF7 + .byte 0xB7, 0xF8, 0x70, 0xBD, 0xB7, 0x48, 0x43, 0x21, 0x20, 0x58, 0x95, 0xF7, 0x2B, 0xF8, 0x6A, 0x21 + .byte 0x05, 0x1C, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x74, 0xFF + .byte 0x28, 0x1C, 0xAC, 0xF7, 0xA5, 0xF8, 0x70, 0xBD, 0xAE, 0x48, 0x44, 0x21, 0x20, 0x58, 0x95, 0xF7 + .byte 0x19, 0xF8, 0x6A, 0x21, 0x05, 0x1C, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C + .byte 0x95, 0xF7, 0x62, 0xFF, 0x28, 0x1C, 0xAC, 0xF7, 0x93, 0xF8, 0x70, 0xBD, 0xA5, 0x48, 0x42, 0x21 + .byte 0x20, 0x58, 0x95, 0xF7, 0x07, 0xF8, 0x6A, 0x21, 0x05, 0x1C, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D + .byte 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x50, 0xFF, 0x28, 0x1C, 0xAC, 0xF7, 0x81, 0xF8, 0x70, 0xBD + .byte 0x9C, 0x48, 0x49, 0x21, 0x20, 0x58, 0x94, 0xF7, 0xF5, 0xFF, 0x6A, 0x21, 0x05, 0x1C, 0x09, 0x01 + .byte 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x3E, 0xFF, 0x28, 0x1C, 0xAC, 0xF7 + .byte 0x6F, 0xF8, 0x70, 0xBD, 0x93, 0x48, 0x4A, 0x21, 0x20, 0x58, 0x94, 0xF7, 0xE3, 0xFF, 0x6A, 0x21 + .byte 0x05, 0x1C, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x2C, 0xFF + .byte 0x28, 0x1C, 0xAC, 0xF7, 0x5D, 0xF8, 0x70, 0xBD, 0x8A, 0x48, 0x47, 0x21, 0x20, 0x58, 0x94, 0xF7 + .byte 0xD1, 0xFF, 0x6A, 0x21, 0x05, 0x1C, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C + .byte 0x95, 0xF7, 0x1A, 0xFF, 0x28, 0x1C, 0xAC, 0xF7, 0x4B, 0xF8, 0x70, 0xBD, 0x81, 0x48, 0x4B, 0x21 + .byte 0x20, 0x58, 0x94, 0xF7, 0xBF, 0xFF, 0x05, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x20, 0x58, 0x01, 0x21 + .byte 0x00, 0x22, 0x95, 0xF7, 0xD5, 0xFA, 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58 + .byte 0x2A, 0x1C, 0x95, 0xF7, 0x01, 0xFF, 0x28, 0x1C, 0xAC, 0xF7, 0x32, 0xF8, 0x70, 0xBD, 0x75, 0x48 + .byte 0x4B, 0x21, 0x20, 0x58, 0x94, 0xF7, 0xA6, 0xFF, 0x05, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x01, 0x21 + .byte 0x20, 0x58, 0x0A, 0x1C, 0x95, 0xF7, 0xBC, 0xFA, 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D + .byte 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0xE8, 0xFE, 0x28, 0x1C, 0xAC, 0xF7, 0x19, 0xF8, 0x70, 0xBD + .byte 0x68, 0x48, 0x4B, 0x21, 0x20, 0x58, 0x94, 0xF7, 0x8D, 0xFF, 0x05, 0x1C, 0x6A, 0x20, 0x00, 0x01 + .byte 0x20, 0x58, 0x01, 0x21, 0x02, 0x22, 0x95, 0xF7, 0xA3, 0xFA, 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58 + .byte 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0xCF, 0xFE, 0x28, 0x1C, 0xAC, 0xF7, 0x00, 0xF8 + .byte 0x70, 0xBD, 0x5C, 0x48, 0x4B, 0x21, 0x20, 0x58, 0x94, 0xF7, 0x74, 0xFF, 0x05, 0x1C, 0x6A, 0x20 + .byte 0x00, 0x01, 0x20, 0x58, 0x01, 0x21, 0x03, 0x22, 0x95, 0xF7, 0x8A, 0xFA, 0x6A, 0x21, 0x09, 0x01 + .byte 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0xB6, 0xFE, 0x28, 0x1C, 0xAB, 0xF7 + .byte 0xE7, 0xFF, 0x70, 0xBD, 0x4F, 0x48, 0x4B, 0x21, 0x20, 0x58, 0x94, 0xF7, 0x5B, 0xFF, 0x05, 0x1C + .byte 0x6A, 0x20, 0x00, 0x01, 0x20, 0x58, 0x01, 0x21, 0x04, 0x22, 0x95, 0xF7, 0x71, 0xFA, 0x6A, 0x21 + .byte 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x9D, 0xFE, 0x28, 0x1C + .byte 0xAB, 0xF7, 0xCE, 0xFF, 0x70, 0xBD, 0x43, 0x48, 0x4B, 0x21, 0x20, 0x58, 0x94, 0xF7, 0x42, 0xFF + .byte 0x05, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x20, 0x58, 0x01, 0x21, 0x05, 0x22, 0x95, 0xF7, 0x58, 0xFA + .byte 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x84, 0xFE + .byte 0x28, 0x1C, 0xAB, 0xF7, 0xB5, 0xFF, 0x70, 0xBD, 0x36, 0x48, 0x6E, 0x35, 0x20, 0x58, 0x29, 0x1C + .byte 0x94, 0xF7, 0x28, 0xFF, 0x05, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x20, 0x58, 0x01, 0x21, 0x00, 0x22 + .byte 0x95, 0xF7, 0x3E, 0xFA, 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C + .byte 0x95, 0xF7, 0x6A, 0xFE, 0x28, 0x1C, 0xAB, 0xF7, 0x9B, 0xFF, 0x70, 0xBD, 0x29, 0x48, 0x6E, 0x35 + .byte 0x20, 0x58, 0x29, 0x1C, 0x94, 0xF7, 0x0E, 0xFF, 0x05, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x01, 0x21 + .byte 0x20, 0x58, 0x0A, 0x1C, 0x95, 0xF7, 0x24, 0xFA, 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D + .byte 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x50, 0xFE, 0x28, 0x1C, 0xAB, 0xF7, 0x81, 0xFF, 0x70, 0xBD + .byte 0x1C, 0x48, 0x6E, 0x35, 0x20, 0x58, 0x29, 0x1C, 0x94, 0xF7, 0xF4, 0xFE, 0x05, 0x1C, 0x6A, 0x20 + .byte 0x00, 0x01, 0x20, 0x58, 0x01, 0x21, 0x02, 0x22, 0x95, 0xF7, 0x0A, 0xFA, 0x6A, 0x21, 0x09, 0x01 + .byte 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x36, 0xFE, 0x28, 0x1C, 0xAB, 0xF7 + .byte 0x67, 0xFF, 0x70, 0xBD, 0x0F, 0x48, 0x6E, 0x35, 0x20, 0x58, 0x29, 0x1C, 0x94, 0xF7, 0xDA, 0xFE + .byte 0x05, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x20, 0x58, 0x01, 0x21, 0x03, 0x22, 0x95, 0xF7, 0xF0, 0xF9 + .byte 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x1C, 0xFE + .byte 0x28, 0x1C, 0xAB, 0xF7, 0x4D, 0xFF, 0x70, 0xBD, 0x02, 0x48, 0x05, 0xE0 +_02075B8C: .word 0x000005A4 +_02075B90: .word 0x00000B25 +_02075B94: .word 0x0000069C +_02075B98: + .byte 0x6E, 0x35, 0x20, 0x58, 0x29, 0x1C, 0x94, 0xF7 + .byte 0xB9, 0xFE, 0x05, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x20, 0x58, 0x01, 0x21, 0x04, 0x22, 0x95, 0xF7 + .byte 0xCF, 0xF9, 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7 + .byte 0xFB, 0xFD, 0x28, 0x1C, 0xAB, 0xF7, 0x2C, 0xFF, 0x70, 0xBD, 0x21, 0x48, 0x6E, 0x35, 0x20, 0x58 + .byte 0x29, 0x1C, 0x94, 0xF7, 0x9F, 0xFE, 0x05, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x20, 0x58, 0x01, 0x21 + .byte 0x05, 0x22, 0x95, 0xF7, 0xB5, 0xF9, 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58 + .byte 0x2A, 0x1C, 0x95, 0xF7, 0xE1, 0xFD, 0x28, 0x1C, 0xAB, 0xF7, 0x12, 0xFF, 0x70, 0xBD, 0x14, 0x48 + .byte 0x48, 0x21, 0x20, 0x58, 0x94, 0xF7, 0x86, 0xFE, 0x06, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x20, 0x58 + .byte 0x00, 0x21, 0x2A, 0x1C, 0x95, 0xF7, 0xA2, 0xF8, 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D + .byte 0x61, 0x58, 0x32, 0x1C, 0x95, 0xF7, 0xC8, 0xFD, 0x30, 0x1C, 0xAB, 0xF7, 0xF9, 0xFE, 0x70, 0xBD + .byte 0x07, 0x4A, 0x45, 0x21, 0xA0, 0x58, 0x08, 0x32, 0xA2, 0x58, 0x94, 0xF7, 0x51, 0xFE, 0x70, 0xBD +_02075C40: + ldr r2, _02075C50 ; =0x0000069C + mov r1, #0x69 + ldr r0, [r4, r2] + add r2, #0x8 + ldr r2, [r4, r2] + bl sub_0200A8E0 + pop {r4-r6, pc} + .balign 4 +_02075C50: .word 0x0000069C + + thumb_func_start sub_02075C54 +sub_02075C54: ; 0x02075C54 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02075CCC ; =0x000005A4 + ldr r0, [r4, r0] + ldrh r0, [r0, #0x24] + bl sub_0207550C + cmp r0, #0x1c + bhi _02075CCA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r2, #0x1 + lsl r6, r2, #0x1 + lsl r0, r7, #0 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r2, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r1, #0x1 + lsl r0, r1, #0x1 + lsl r0, r1, #0x1 + lsl r0, r1, #0x1 + lsl r0, r1, #0x1 + lsl r0, r1, #0x1 + lsl r6, r2, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r0, r0, #0x1 + lsl r6, r2, #0x1 + ldr r1, _02075CD0 ; =sub_0207640C + ldr r0, _02075CD4 ; =0x00000B14 + str r1, [r4, r0] + pop {r4, pc} +_02075CB4: + .byte 0x08, 0x49, 0x07, 0x48, 0x21, 0x50, 0x10, 0xBD, 0x07, 0x49, 0x05, 0x48 + .byte 0x21, 0x50, 0x10, 0xBD, 0x06, 0x49, 0x03, 0x48, 0x21, 0x50 +_02075CCA: + pop {r4, pc} + .balign 4 +_02075CCC: .word 0x000005A4 +_02075CD0: .word sub_0207640C + 1 +_02075CD4: .word 0x00000B14 +_02075CD8: + .byte 0x21, 0x5D, 0x07, 0x02, 0xC1, 0x5D, 0x07, 0x02 + .byte 0x61, 0x5F, 0x07, 0x02 + + thumb_func_start sub_02075CE4 +sub_02075CE4: ; 0x02075CE4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02075D14 ; =0x00000B24 + ldrb r0, [r4, r0] + bl sub_0201BD70 + cmp r0, #0x0 + beq _02075CF8 + mov r0, #0x5 + pop {r4, pc} +_02075CF8: + ldr r0, _02075D18 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _02075D10 + ldr r0, _02075D1C ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + mov r0, #0x1b + pop {r4, pc} +_02075D10: + mov r0, #0x5 + pop {r4, pc} + .balign 4 +_02075D14: .word 0x00000B24 +_02075D18: .word 0x021C48B8 +_02075D1C: .word 0x000005A4 + + thumb_func_start sub_02075D20 +sub_02075D20: ; 0x02075D20 + push {r3-r5, lr} + sub sp, #0x8 + ldr r1, _02075DA8 ; =0x000005A4 + add r5, r0, #0x0 + ldr r4, [r5, r1] + bl sub_020772CC + str r0, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + ldr r2, _02075DAC ; =0x00000B25 + ldrh r1, [r4, #0x24] + ldrb r2, [r5, r2] + ldr r0, [r4, #0x0] + mov r3, #0x0 + bl sub_02084DD0 + ldr r1, _02075DAC ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_0207008C + ldr r1, _02075DAC ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_02072D1C + ldr r1, _02075DAC ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_02072DDC + ldr r0, _02075DAC ; =0x00000B25 + mov r2, #0x2c + ldrb r1, [r5, r0] + add r0, r5, #0x0 + mul r2, r1 + add r3, r5, r2 + ldr r2, _02075DB0 ; =0x0000070E + ldrh r2, [r3, r2] + lsl r2, r2, #0x14 + lsr r2, r2, #0x14 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_02073A4C + ldr r1, _02075DA8 ; =0x000005A4 + add r0, r5, #0x0 + ldr r1, [r5, r1] + mov r2, #0x0 + ldrh r1, [r1, #0x24] + bl sub_020757F4 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02075DB4 ; =0x000005EC + bl sub_020054C8 + ldr r1, _02075DB8 ; =sub_02075CE4 + ldr r0, _02075DBC ; =0x00000B14 + str r1, [r5, r0] + mov r0, #0x5 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02075DA8: .word 0x000005A4 +_02075DAC: .word 0x00000B25 +_02075DB0: .word 0x0000070E +_02075DB4: .word 0x000005EC +_02075DB8: .word sub_02075CE4 + 1 +_02075DBC: .word 0x00000B14 + + thumb_func_start sub_02075DC0 +sub_02075DC0: ; 0x02075DC0 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + ldr r0, _02075F4C ; =0x000005A4 + ldr r1, _02075F50 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + mov r1, #0xd + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x1c] + add r0, r4, #0x0 + mov r1, #0xe + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + add r0, r4, #0x0 + mov r1, #0xf + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x14] + add r0, r4, #0x0 + mov r1, #0x10 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x10] + add r0, r4, #0x0 + mov r1, #0x11 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + add r0, r4, #0x0 + mov r1, #0x12 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + add r0, r4, #0x0 + mov r1, #0x9 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r0, _02075F4C ; =0x000005A4 + ldr r6, [r5, r0] + add r0, r5, #0x0 + bl sub_020772CC + str r0, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + ldr r2, _02075F50 ; =0x00000B25 + ldrh r1, [r6, #0x24] + ldrb r2, [r5, r2] + ldr r0, [r6, #0x0] + mov r3, #0x0 + bl sub_02084DD0 + ldr r1, _02075F50 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_0207008C + ldr r1, _02075F50 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_02072D1C + ldr r1, _02075F50 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_02072DDC + ldr r0, _02075F50 ; =0x00000B25 + mov r2, #0x2c + ldrb r1, [r5, r0] + add r0, r5, #0x0 + mul r2, r1 + add r3, r5, r2 + ldr r2, _02075F54 ; =0x0000070E + ldrh r2, [r3, r2] + lsl r2, r2, #0x14 + lsr r2, r2, #0x14 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_02073A4C + add r0, r4, #0x0 + mov r1, #0xd + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0x1c] + cmp r1, r0 + bne _02075EFA + add r0, r4, #0x0 + mov r1, #0xe + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0x18] + cmp r1, r0 + bne _02075EFA + add r0, r4, #0x0 + mov r1, #0xf + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0x14] + cmp r1, r0 + bne _02075EFA + add r0, r4, #0x0 + mov r1, #0x10 + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0x10] + cmp r1, r0 + bne _02075EFA + add r0, r4, #0x0 + mov r1, #0x11 + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0xc] + cmp r1, r0 + bne _02075EFA + add r0, r4, #0x0 + mov r1, #0x12 + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0x8] + cmp r1, r0 + beq _02075F26 +_02075EFA: + add r0, r4, #0x0 + mov r1, #0x9 + mov r2, #0x0 + bl sub_020671BC + cmp r7, r0 + ldr r1, _02075F4C ; =0x000005A4 + beq _02075F18 + ldr r1, [r5, r1] + add r0, r5, #0x0 + ldrh r1, [r1, #0x24] + mov r2, #0x0 + bl sub_020757F4 + b _02075F34 +_02075F18: + ldr r1, [r5, r1] + add r0, r5, #0x0 + ldrh r1, [r1, #0x24] + mov r2, #0x1 + bl sub_020757F4 + b _02075F34 +_02075F26: + ldr r1, _02075F4C ; =0x000005A4 + add r0, r5, #0x0 + ldr r1, [r5, r1] + mov r2, #0x2 + ldrh r1, [r1, #0x24] + bl sub_020757F4 +_02075F34: + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r1, _02075F58 ; =sub_02075CE4 + ldr r0, _02075F5C ; =0x00000B14 + str r1, [r5, r0] + mov r0, #0x5 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 +_02075F4C: .word 0x000005A4 +_02075F50: .word 0x00000B25 +_02075F54: .word 0x0000070E +_02075F58: .word sub_02075CE4 + 1 +_02075F5C: .word 0x00000B14 + + thumb_func_start sub_02075F60 +sub_02075F60: ; 0x02075F60 + push {r4-r7, lr} + sub sp, #0xc + ldr r1, _02076080 ; =0x000005A4 + add r5, r0, #0x0 + ldr r4, [r5, r1] + bl sub_020772CC + str r0, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + ldr r2, _02076084 ; =0x00000B25 + ldrh r1, [r4, #0x24] + ldrb r2, [r5, r2] + ldr r0, [r4, #0x0] + mov r3, #0x0 + bl sub_02084DD0 + ldr r0, _02076080 ; =0x000005A4 + ldr r1, _02076084 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + mov r1, #0xa2 + mov r2, #0x0 + str r0, [sp, #0x8] + bl sub_020671BC + add r4, r0, #0x0 + ldr r0, _02076084 ; =0x00000B25 + ldrb r1, [r5, r0] + mov r0, #0x2c + mul r0, r1 + add r1, r5, r0 + ldr r0, _02076088 ; =0x00000706 + ldrh r1, [r1, r0] + cmp r1, #0x0 + bne _02075FBC + sub r0, #0x6a + ldr r0, [r5, r0] + mov r1, #0x46 + bl sub_0200A914 + add r7, r0, #0x0 + b _02075FDA +_02075FBC: + cmp r4, r1 + bne _02075FCE + sub r0, #0x6a + ldr r0, [r5, r0] + mov r1, #0x47 + bl sub_0200A914 + add r7, r0, #0x0 + b _02075FDA +_02075FCE: + sub r0, #0x6a + ldr r0, [r5, r0] + mov r1, #0x40 + bl sub_0200A914 + add r7, r0, #0x0 +_02075FDA: + ldr r0, [sp, #0x8] + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200ACF8 + mov r0, #0x0 + mov r3, #0x6a + str r0, [sp, #0x0] + mov r1, #0x1 + ldr r2, _02076084 ; =0x00000B25 + str r1, [sp, #0x4] + ldrb r6, [r5, r2] + mov r2, #0x2c + lsl r3, r3, #0x4 + mul r2, r6 + ldr r0, [r5, r3] + add r2, r5, r2 + add r3, #0x66 + ldrh r2, [r2, r3] + mov r3, #0x3 + sub r2, r4, r2 + bl sub_0200AD38 + mov r1, #0x6a + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r7, #0x0 + bl sub_0200B7B8 + add r0, r7, #0x0 + bl sub_02021A20 + ldr r0, [sp, #0x8] + bl sub_0207C2D4 + add r4, r0, #0x0 + ldr r1, _02076084 ; =0x00000B25 + lsl r2, r4, #0x18 + ldrb r1, [r5, r1] + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_02073A4C + cmp r4, #0x7 + bne _02076062 + ldr r1, _02076084 ; =0x00000B25 + ldr r0, _0207608C ; =0x0000070E + ldrb r3, [r5, r1] + add r2, r5, r0 + mov r0, #0x2c + mul r0, r3 + ldrh r4, [r2, r0] + ldr r3, _02076090 ; =0xFFFFF000 + and r4, r3 + mov r3, #0x7 + orr r3, r4 + strh r3, [r2, r0] + ldrb r1, [r5, r1] + add r0, r5, #0x0 + bl sub_02072B20 +_02076062: + ldr r1, _02076084 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_020709FC + ldr r1, _02076094 ; =sub_020760A0 + ldr r0, _02076098 ; =0x00000B14 + str r1, [r5, r0] + ldr r0, _0207609C ; =0x000005EC + bl sub_020054C8 + mov r0, #0x5 + add sp, #0xc + pop {r4-r7, pc} + nop +_02076080: .word 0x000005A4 +_02076084: .word 0x00000B25 +_02076088: .word 0x00000706 +_0207608C: .word 0x0000070E +_02076090: .word 0xFFFFF000 +_02076094: .word sub_020760A0 + 1 +_02076098: .word 0x00000B14 +_0207609C: .word 0x000005EC + + thumb_func_start sub_020760A0 +sub_020760A0: ; 0x020760A0 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02076130 ; =0x000005A4 + ldr r1, _02076134 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _02076134 ; =0x00000B25 + add r4, r0, #0x0 + ldrb r2, [r5, r1] + ldr r0, _02076138 ; =0x00000706 + mov r1, #0x2c + add r3, r2, #0x0 + add r0, r5, r0 + mul r3, r1 + ldrh r1, [r0, r3] + cmp r4, r1 + beq _020760D4 + add r1, r1, #0x1 + strh r1, [r0, r3] +_020760D4: + ldr r1, _02076134 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_02072BBC + ldr r1, _02076134 ; =0x00000B25 + add r0, r5, #0x4 + ldrb r2, [r5, r1] + lsl r1, r2, #0x2 + add r1, r2, r1 + add r1, r1, #0x3 + lsl r1, r1, #0x4 + add r0, r0, r1 + mov r1, #0x0 + bl sub_02019620 + ldr r1, _02076134 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_02072B7C + ldr r1, _02076134 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_02072C28 + ldr r0, _02076134 ; =0x00000B25 + mov r1, #0x2c + ldrb r0, [r5, r0] + add r2, r0, #0x0 + mul r2, r1 + ldr r0, _02076138 ; =0x00000706 + add r2, r5, r2 + ldrh r0, [r2, r0] + cmp r4, r0 + bne _0207612C + add r0, r5, #0x0 + sub r1, #0x2d + mov r2, #0x1 + bl sub_020731E8 + ldr r1, _0207613C ; =sub_02075CE4 + ldr r0, _02076140 ; =0x00000B14 + str r1, [r5, r0] +_0207612C: + mov r0, #0x5 + pop {r3-r5, pc} + .balign 4 +_02076130: .word 0x000005A4 +_02076134: .word 0x00000B25 +_02076138: .word 0x00000706 +_0207613C: .word sub_02075CE4 + 1 +_02076140: .word 0x00000B14 + + thumb_func_start sub_02076144 +sub_02076144: ; 0x02076144 + push {r3, lr} + mov r1, #0x18 + mov r2, #0xc + bl sub_0206E7B8 + cmp r0, #0x0 + beq _02076156 + mov r0, #0x1 + pop {r3, pc} +_02076156: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0207615C +sub_0207615C: ; 0x0207615C + push {r3-r6} + cmp r1, #0x6 + blo _02076168 + mov r0, #0xff + pop {r3-r6} + bx lr +_02076168: + bhs _02076194 + ldr r2, _0207619C ; =0x00000706 + mov r3, #0x2c + add r4, r2, #0x0 + add r4, #0x23 +_02076172: + add r5, r1, #0x0 + mul r5, r3 + add r6, r0, r5 + ldrb r5, [r6, r4] + cmp r5, #0x0 + beq _0207618A + ldrh r5, [r6, r2] + cmp r5, #0x0 + bne _0207618A + add r0, r1, #0x0 + pop {r3-r6} + bx lr +_0207618A: + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #0x6 + blo _02076172 +_02076194: + mov r0, #0xff + pop {r3-r6} + bx lr + nop +_0207619C: .word 0x00000706 + + thumb_func_start sub_020761A0 +sub_020761A0: ; 0x020761A0 + push {r3-r7, lr} + ldr r1, _020763DC ; =0x00000B22 + add r4, r0, #0x0 + ldrb r2, [r4, r1] + cmp r2, #0x3 + bls _020761AE + b _020763D6 +_020761AE: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r6, r0, #0 + lsl r6, r2, #0x1 + lsl r0, r4, #0x4 + lsl r4, r4, #0x6 + mov r1, #0x0 + bl sub_0207615C + ldr r1, _020763E0 ; =0x00000B25 + strb r0, [r4, r1] + ldrb r0, [r4, r1] + cmp r0, #0xff + bne _02076206 + ldr r2, _020763E4 ; =0x0000069C + mov r1, #0x69 + ldr r0, [r4, r2] + add r2, #0x8 + ldr r2, [r4, r2] + bl sub_0200A8E0 + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r1, _020763E8 ; =sub_02075CE4 + ldr r0, _020763EC ; =0x00000B14 + mov r2, #0x1 + str r1, [r4, r0] + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02073CB4 + ldr r0, _020763E0 ; =0x00000B25 + mov r1, #0x7 + strb r1, [r4, r0] + mov r0, #0x5 + pop {r3-r7, pc} +_02076206: + cmp r0, #0x0 + beq _02076212 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_020709FC +_02076212: + ldr r0, _020763F0 ; =0x000005A4 + ldr r1, _020763E0 ; =0x00000B25 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_020772CC + add r3, r0, #0x0 + mov r0, #0xc + str r0, [sp, #0x0] + ldr r1, _020763F0 ; =0x000005A4 + add r0, r5, #0x0 + ldr r1, [r4, r1] + mov r2, #0x0 + ldrh r1, [r1, #0x24] + bl sub_02084810 + add r0, r5, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + ldr r0, _020763E4 ; =0x0000069C + mov r1, #0x46 + ldr r0, [r4, r0] + bl sub_0200A914 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200ACF8 + mov r1, #0x6a + lsl r1, r1, #0x4 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + add r2, r6, #0x0 + bl sub_0200B7B8 + add r0, r6, #0x0 + bl sub_02021A20 + ldr r7, _020763E0 ; =0x00000B25 + ldr r3, _020763F4 ; =0x0000070E + ldrb r5, [r4, r7] + mov r2, #0x2c + add r1, r4, r3 + add r0, r5, #0x0 + mul r0, r2 + ldrh r6, [r1, r0] + ldr r5, _020763F8 ; =0xFFFFF000 + and r6, r5 + mov r5, #0x7 + orr r5, r6 + strh r5, [r1, r0] + ldrb r1, [r4, r7] + add r0, r4, #0x0 + mul r2, r1 + add r2, r4, r2 + ldrh r2, [r2, r3] + lsl r2, r2, #0x14 + lsr r2, r2, #0x14 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl sub_02073A4C + add r1, r7, #0x0 + ldrb r1, [r4, r1] + add r0, r4, #0x0 + bl sub_02072B20 + add r1, r7, #0x0 + ldrb r1, [r4, r1] + add r0, r4, #0x0 + bl sub_020709FC + add r1, r7, #0x0 + ldrb r1, [r4, r1] + add r0, r4, #0x0 + mov r2, #0x1 + bl sub_02073CB4 + ldr r0, _020763FC ; =0x000005EC + bl sub_020054C8 + sub r0, r7, #0x3 + ldrb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, r0] + b _020763D6 +_020762DC: + .byte 0x44, 0x48, 0xC9, 0x1C + .byte 0x20, 0x58, 0x61, 0x5C, 0x00, 0x68, 0xF5, 0xF7, 0x63, 0xFB, 0xA2, 0x21, 0x00, 0x22, 0xF0, 0xF7 + .byte 0x65, 0xFF, 0x3B, 0x4A, 0x05, 0x1C, 0x42, 0x48, 0xA3, 0x5C, 0x21, 0x18, 0x2C, 0x20, 0x58, 0x43 + .byte 0x0B, 0x5A, 0x5B, 0x1C, 0x0B, 0x52, 0xA1, 0x5C, 0x20, 0x1C, 0xFC, 0xF7, 0x57, 0xFC, 0x34, 0x49 + .byte 0x20, 0x1D, 0x62, 0x5C, 0x91, 0x00, 0x51, 0x18, 0xC9, 0x1C, 0x09, 0x01, 0x40, 0x18, 0x00, 0x21 + .byte 0xA3, 0xF7, 0x7E, 0xF9, 0x2E, 0x49, 0x20, 0x1C, 0x61, 0x5C, 0xFC, 0xF7, 0x27, 0xFC, 0x2C, 0x49 + .byte 0x20, 0x1C, 0x61, 0x5C, 0xFC, 0xF7, 0x78, 0xFC, 0x29, 0x48, 0x2C, 0x21, 0x20, 0x5C, 0x02, 0x1C + .byte 0x4A, 0x43, 0x2F, 0x48, 0xA2, 0x18, 0x10, 0x5A, 0x85, 0x42, 0x44, 0xD1, 0x20, 0x1C, 0x2D, 0x39 + .byte 0x01, 0x22, 0xFC, 0xF7, 0x49, 0xFF, 0x21, 0x48, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0x3A, 0xE0 + .byte 0x88, 0x1C, 0x20, 0x5C, 0xA5, 0xF7, 0x04, 0xFD, 0x00, 0x28, 0x34, 0xD1, 0x25, 0x48, 0x81, 0x6C + .byte 0x03, 0x20, 0x08, 0x42, 0x2F, 0xD0, 0x24, 0x48, 0x8F, 0xF7, 0xA6, 0xF8, 0x18, 0x48, 0x25, 0x5C + .byte 0x20, 0x1C, 0x69, 0x1C, 0x09, 0x06, 0x09, 0x0E, 0xFF, 0xF7, 0xE8, 0xFE, 0x14, 0x49, 0x60, 0x54 + .byte 0x60, 0x5C, 0xFF, 0x28, 0x0D, 0xD0, 0x89, 0x20, 0x80, 0x00, 0x20, 0x18, 0x00, 0x21, 0x96, 0xF7 + .byte 0x9F, 0xFE, 0x20, 0x1C, 0x29, 0x1C, 0xFA, 0xF7, 0x29, 0xFB, 0x0C, 0x48, 0x01, 0x21, 0x21, 0x54 + .byte 0x11, 0xE0, 0x0F, 0x48, 0x01, 0x22, 0x21, 0x58, 0x0C, 0x23, 0x48, 0x68, 0x89, 0x8C, 0xF8, 0xF7 + .byte 0x09, 0xFD, 0x0B, 0x48, 0x00, 0x21, 0x20, 0x58, 0x23, 0x30, 0x01, 0x70, 0x04, 0x48, 0x07, 0x21 + .byte 0x21, 0x54, 0x1B, 0x20, 0xF8, 0xBD +_020763D6: + mov r0, #0x7 + pop {r3-r7, pc} + nop +_020763DC: .word 0x00000B22 +_020763E0: .word 0x00000B25 +_020763E4: .word 0x0000069C +_020763E8: .word sub_02075CE4 + 1 +_020763EC: .word 0x00000B14 +_020763F0: .word 0x000005A4 +_020763F4: .word 0x0000070E +_020763F8: .word 0xFFFFF000 +_020763FC: .word 0x000005EC +_02076400: + .byte 0x06, 0x07, 0x00, 0x00, 0xB8, 0x48, 0x1C, 0x02, 0xDC, 0x05, 0x00, 0x00 + + thumb_func_start sub_0207640C +sub_0207640C: ; 0x0207640C + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, _020765B0 ; =0x000005A4 + ldr r1, _020765B4 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + mov r1, #0xa3 + mov r2, #0x0 + add r4, r0, #0x0 + bl sub_020671BC + ldr r1, _020765B8 ; =0x00000B28 + mov r2, #0x0 + strh r0, [r5, r1] + add r0, r4, #0x0 + mov r1, #0xa4 + bl sub_020671BC + ldr r1, _020765BC ; =0x00000B2A + mov r2, #0x0 + strh r0, [r5, r1] + add r0, r4, #0x0 + mov r1, #0xa5 + bl sub_020671BC + ldr r1, _020765C0 ; =0x00000B2C + mov r2, #0x0 + strh r0, [r5, r1] + add r0, r4, #0x0 + mov r1, #0xa7 + bl sub_020671BC + ldr r1, _020765C4 ; =0x00000B2E + mov r2, #0x0 + strh r0, [r5, r1] + add r0, r4, #0x0 + mov r1, #0xa8 + bl sub_020671BC + mov r1, #0xb3 + lsl r1, r1, #0x4 + strh r0, [r5, r1] + add r0, r4, #0x0 + mov r1, #0xa6 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020765C8 ; =0x00000B32 + strh r0, [r5, r1] + ldr r0, _020765B0 ; =0x000005A4 + ldr r6, [r5, r0] + add r0, r5, #0x0 + bl sub_020772CC + str r0, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + ldr r2, _020765B4 ; =0x00000B25 + ldrh r1, [r6, #0x24] + ldrb r2, [r5, r2] + ldr r0, [r6, #0x0] + mov r3, #0x0 + bl sub_02084DD0 + add r0, r4, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020765B4 ; =0x00000B25 + ldrb r2, [r5, r1] + mov r1, #0x2c + mul r1, r2 + add r2, r5, r1 + ldr r1, _020765CC ; =0x0000070A + strh r0, [r2, r1] + add r0, r4, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020765B4 ; =0x00000B25 + ldrb r2, [r5, r1] + mov r1, #0x2c + mul r1, r2 + add r2, r5, r1 + ldr r1, _020765D0 ; =0x00000706 + strh r0, [r2, r1] + add r0, r4, #0x0 + mov r1, #0xa3 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020765B4 ; =0x00000B25 + ldrb r2, [r5, r1] + mov r1, #0x2c + mul r1, r2 + add r2, r5, r1 + ldr r1, _020765D4 ; =0x00000708 + strh r0, [r2, r1] + sub r1, #0x6c + ldr r0, [r5, r1] + mov r1, #0xc1 + bl sub_0200A914 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200ACF8 + mov r0, #0x0 + mov r3, #0x6a + str r0, [sp, #0x0] + mov r1, #0x1 + ldr r2, _020765B4 ; =0x00000B25 + str r1, [sp, #0x4] + ldrb r6, [r5, r2] + mov r2, #0x2c + lsl r3, r3, #0x4 + mul r2, r6 + ldr r0, [r5, r3] + add r2, r5, r2 + add r3, #0x6a + ldrh r2, [r2, r3] + mov r3, #0x3 + bl sub_0200AD38 + mov r1, #0x6a + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r7, #0x0 + bl sub_0200B7B8 + add r0, r7, #0x0 + bl sub_02021A20 + add r0, r4, #0x0 + bl sub_0207C2D4 + add r4, r0, #0x0 + ldr r1, _020765B4 ; =0x00000B25 + lsl r2, r4, #0x18 + ldrb r1, [r5, r1] + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_02073A4C + cmp r4, #0x7 + bne _0207656E + ldr r1, _020765B4 ; =0x00000B25 + ldr r0, _020765D8 ; =0x0000070E + ldrb r3, [r5, r1] + add r2, r5, r0 + mov r0, #0x2c + mul r0, r3 + ldrh r4, [r2, r0] + ldr r3, _020765DC ; =0xFFFFF000 + and r4, r3 + mov r3, #0x7 + orr r3, r4 + strh r3, [r2, r0] + ldrb r1, [r5, r1] + add r0, r5, #0x0 + bl sub_02072B20 +_0207656E: + ldr r1, _020765B4 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_020709FC + ldr r0, _020765E0 ; =sub_020760A0 + ldr r1, _020765E4 ; =0x00000B14 + str r0, [r5, r1] + add r1, #0x11 + ldrb r1, [r5, r1] + add r0, r5, #0x0 + bl sub_02072D1C + ldr r1, _020765B4 ; =0x00000B25 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_02072DDC + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r1, _020765E8 ; =sub_020765EC + ldr r0, _020765E4 ; =0x00000B14 + str r1, [r5, r0] + mov r1, #0x0 + add r0, #0x13 + strb r1, [r5, r0] + mov r0, #0x5 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020765B0: .word 0x000005A4 +_020765B4: .word 0x00000B25 +_020765B8: .word 0x00000B28 +_020765BC: .word 0x00000B2A +_020765C0: .word 0x00000B2C +_020765C4: .word 0x00000B2E +_020765C8: .word 0x00000B32 +_020765CC: .word 0x0000070A +_020765D0: .word 0x00000706 +_020765D4: .word 0x00000708 +_020765D8: .word 0x0000070E +_020765DC: .word 0xFFFFF000 +_020765E0: .word sub_020760A0 + 1 +_020765E4: .word 0x00000B14 +_020765E8: .word sub_020765EC + 1 + + thumb_func_start sub_020765EC +sub_020765EC: ; 0x020765EC + push {r3-r5, lr} + ldr r1, _0207686C ; =0x00000B27 + add r4, r0, #0x0 + ldrb r0, [r4, r1] + cmp r0, #0x6 + bhi _020766A8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r6, r6, #0 + lsl r4, r2, #0x1 + lsl r2, r7, #0x1 + lsl r2, r7, #0x5 + lsl r6, r3, #0x6 + lsl r6, r1, #0x8 + sub r0, r1, #0x3 + ldrb r0, [r4, r0] + bl sub_0201BD70 + cmp r0, #0x0 + bne _020766A8 + ldr r0, _02076870 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _020766A8 + ldr r0, _02076874 ; =0x000005DC + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_020734C0 + ldr r0, _0207686C ; =0x00000B27 + mov r1, #0x1 + strb r1, [r4, r0] + b _02076868 +_0207663C: + .byte 0x8C, 0x48, 0x81, 0x6C + .byte 0x03, 0x20, 0x08, 0x42, 0x30, 0xD0, 0x8B, 0x48, 0x8E, 0xF7, 0x3E, 0xFF, 0x20, 0x1C, 0xFC, 0xF7 + .byte 0xF5, 0xFF, 0x86, 0x48, 0x02, 0x21, 0x21, 0x54, 0x06, 0xE1, 0x85, 0x48, 0x81, 0x6C, 0x03, 0x20 + .byte 0x08, 0x42, 0x21, 0xD0, 0x83, 0x48, 0x8E, 0xF7, 0x2F, 0xFF, 0x20, 0x1C, 0xFD, 0xF7, 0x42, 0xF8 + .byte 0x7E, 0x48, 0x03, 0x21, 0x21, 0x54, 0x80, 0x48, 0x00, 0x21, 0x20, 0x58, 0x41, 0x63, 0xF3, 0xE0 + .byte 0x7D, 0x48, 0x89, 0x1E, 0x20, 0x58, 0x61, 0x5C, 0x00, 0x68, 0xF5, 0xF7, 0x91, 0xF9, 0x7A, 0x49 + .byte 0x05, 0x1C, 0x62, 0x58, 0x11, 0x1C, 0x34, 0x31, 0x26, 0x32, 0xF3, 0xF7, 0xBD, 0xF8, 0x00, 0x28 + .byte 0x07, 0xD0, 0x76, 0x49, 0x88, 0x42, 0x00, 0xD1 +_020766A8: + b _02076868 +_020766AA: + .byte 0x49, 0x1C, 0x88, 0x42, 0x04, 0xD0 + .byte 0x38, 0xE0, 0x6E, 0x48, 0x06, 0x21, 0x21, 0x54, 0xD6, 0xE0, 0x28, 0x1C, 0xF2, 0xF7, 0x12, 0xFD + .byte 0x02, 0x1C, 0x6A, 0x20, 0x00, 0x01, 0x20, 0x58, 0x00, 0x21, 0x94, 0xF7, 0x15, 0xFB, 0x6A, 0x22 + .byte 0x12, 0x01, 0xA0, 0x58, 0xFC, 0x3A, 0xA2, 0x58, 0x01, 0x21, 0xD2, 0x8C, 0x94, 0xF7, 0x3E, 0xFB + .byte 0x67, 0x48, 0x34, 0x21, 0x20, 0x58, 0x94, 0xF7, 0x15, 0xF9, 0x6A, 0x21, 0x05, 0x1C, 0x09, 0x01 + .byte 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x95, 0xF7, 0x5E, 0xF8, 0x28, 0x1C, 0xAB, 0xF7 + .byte 0x8F, 0xF9, 0x00, 0x21, 0x20, 0x1C, 0xC9, 0x43, 0x00, 0x22, 0xFC, 0xF7, 0x6D, 0xFD, 0x5D, 0x48 + .byte 0x5D, 0x49, 0x5E, 0x4A, 0x60, 0x50, 0x08, 0x1D, 0x22, 0x50, 0x16, 0x20, 0x0A, 0x31, 0x60, 0x54 + .byte 0x14, 0x20, 0x38, 0xBD, 0x28, 0x1C, 0xF2, 0xF7, 0xDD, 0xFC, 0x02, 0x1C, 0x6A, 0x20, 0x00, 0x01 + .byte 0x20, 0x58, 0x00, 0x21, 0x94, 0xF7, 0xE0, 0xFA, 0x6A, 0x22, 0x12, 0x01, 0xA0, 0x58, 0xFC, 0x3A + .byte 0xA2, 0x58, 0x01, 0x21, 0xD2, 0x8C, 0x94, 0xF7, 0x09, 0xFB, 0x4D, 0x48, 0xC2, 0x21, 0x20, 0x58 + .byte 0x94, 0xF7, 0xE0, 0xF8, 0x6A, 0x21, 0x05, 0x1C, 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58 + .byte 0x2A, 0x1C, 0x95, 0xF7, 0x29, 0xF8, 0x28, 0x1C, 0xAB, 0xF7, 0x5A, 0xF9, 0x00, 0x21, 0x20, 0x1C + .byte 0xC9, 0x43, 0x00, 0x22, 0xFC, 0xF7, 0x38, 0xFD, 0x3C, 0x48, 0x04, 0x21, 0x21, 0x54, 0x73, 0xE0 + .byte 0xC8, 0x1E, 0x20, 0x5C, 0xA5, 0xF7, 0xF4, 0xFA, 0x00, 0x28, 0x6D, 0xD1, 0x38, 0x48, 0x81, 0x6C + .byte 0x03, 0x20, 0x08, 0x42, 0x68, 0xD0, 0x37, 0x48, 0x8E, 0xF7, 0x96, 0xFE, 0x33, 0x48, 0x03, 0x21 + .byte 0x21, 0x54, 0x61, 0xE0, 0x32, 0x48, 0x82, 0x6C, 0x03, 0x20, 0x10, 0x42, 0x5C, 0xD0, 0x32, 0x48 + .byte 0x89, 0x1E, 0x20, 0x58, 0x61, 0x5C, 0x00, 0x68, 0xF5, 0xF7, 0xFA, 0xF8, 0x2E, 0x4A, 0x01, 0x1C + .byte 0xA2, 0x58, 0x20, 0x1C, 0x28, 0x32, 0x12, 0x78, 0x00, 0xF0, 0xB0, 0xFB, 0x2C, 0x48, 0x3D, 0x21 + .byte 0x20, 0x58, 0x94, 0xF7, 0x9F, 0xF8, 0x6A, 0x22, 0x12, 0x01, 0x05, 0x1C, 0xA0, 0x58, 0xFC, 0x3A + .byte 0xA2, 0x58, 0x01, 0x21, 0xD2, 0x8C, 0x94, 0xF7, 0xB9, 0xFA, 0x6A, 0x21, 0x09, 0x01, 0x60, 0x58 + .byte 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x94, 0xF7, 0xDF, 0xFF, 0x28, 0x1C, 0xAB, 0xF7, 0x10, 0xF9 + .byte 0x00, 0x21, 0x20, 0x1C, 0xC9, 0x43, 0x00, 0x22, 0xFC, 0xF7, 0xEE, 0xFC, 0x17, 0x48, 0x04, 0x21 + .byte 0x21, 0x54, 0x29, 0xE0, 0x18, 0x48, 0x89, 0x1E, 0x20, 0x58, 0x61, 0x5C, 0x00, 0x68, 0xF5, 0xF7 + .byte 0xC7, 0xF8, 0x05, 0x1C, 0x14, 0x48, 0x20, 0x58, 0xC0, 0x69, 0xC0, 0x69, 0x00, 0x68, 0xBE, 0xF7 + .byte 0xE9, 0xF8, 0x03, 0x1C, 0x10, 0x48, 0x1B, 0x04, 0x21, 0x58, 0x00, 0x22, 0x08, 0x1C, 0x3C, 0x30 + .byte 0x00, 0x90, 0x08, 0x68, 0x29, 0x1C, 0x1B, 0x0C, 0xF2, 0xF7, 0x8E, 0xFC, 0x0A, 0x49, 0x62, 0x58 + .byte 0x10, 0x87, 0x61, 0x58, 0x08, 0x8F, 0x00, 0x28, 0x01, 0xD0, 0x09, 0x20, 0x00, 0xE0, 0x00, 0x20 + .byte 0x23, 0x31, 0x08, 0x70, 0x1B, 0x20, 0x38, 0xBD +_02076868: + mov r0, #0x5 + pop {r3-r5, pc} + .balign 4 +_0207686C: .word 0x00000B27 +_02076870: .word 0x021C48B8 +_02076874: .word 0x000005DC +_02076878: + .byte 0xA4, 0x05, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00 + .byte 0x9C, 0x06, 0x00, 0x00, 0x51, 0x69, 0x07, 0x02, 0x18, 0x0B, 0x00, 0x00, 0xA5, 0x69, 0x07, 0x02 + + thumb_func_start sub_02076890 +sub_02076890: ; 0x02076890 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, _0207693C ; =sub_020765EC + ldr r1, _02076940 ; =0x00000B14 + mov r2, #0x3 + str r0, [r4, r1] + add r0, r1, #0x0 + add r0, #0x13 + strb r2, [r4, r0] + ldr r0, _02076944 ; =0x000005A4 + add r1, #0x11 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r5, r0, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200ACF8 + ldr r0, _02076944 ; =0x000005A4 + ldr r2, [r4, r0] + add r1, r2, #0x0 + add r1, #0x28 + ldrb r1, [r1, #0x0] + cmp r1, #0x4 + bne _020768E6 + add r0, #0xfc + ldrh r2, [r2, #0x26] + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_0200AD5C + add r0, r4, #0x0 + bl sub_020769A4 + pop {r3-r5, pc} +_020768E6: + add r0, r5, #0x0 + add r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_0200AD5C + ldr r0, _02076948 ; =0x0000069C + mov r1, #0x3c + ldr r0, [r4, r0] + bl sub_0200A914 + mov r1, #0x6a + add r5, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + add r2, r5, #0x0 + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _0207694C ; =0x00000B22 + mov r1, #0x5 + strb r1, [r4, r0] + add r0, r0, #0x5 + strb r1, [r4, r0] + mov r0, #0x14 + pop {r3-r5, pc} + nop +_0207693C: .word sub_020765EC + 1 +_02076940: .word 0x00000B14 +_02076944: .word 0x000005A4 +_02076948: .word 0x0000069C +_0207694C: .word 0x00000B22 + + thumb_func_start sub_02076950 +sub_02076950: ; 0x02076950 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02076998 ; =0x0000069C + mov r1, #0x3b + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x6a + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x0 + bl sub_020731E8 + ldr r0, _0207699C ; =0x000005A4 + mov r1, #0x5 + ldr r0, [r5, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _020769A0 ; =0x00000B22 + mov r1, #0x15 + strb r1, [r5, r0] + mov r0, #0x14 + pop {r3-r5, pc} + nop +_02076998: .word 0x0000069C +_0207699C: .word 0x000005A4 +_020769A0: .word 0x00000B22 + + thumb_func_start sub_020769A4 +sub_020769A4: ; 0x020769A4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _020769EC ; =0x0000069C + mov r1, #0x37 + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x6a + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _020769F0 ; =sub_020769FC + ldr r1, _020769F4 ; =0x00000B18 + ldr r2, _020769F8 ; =sub_02076A48 + str r0, [r5, r1] + add r0, r1, #0x4 + str r2, [r5, r0] + mov r0, #0x16 + add r1, #0xa + strb r0, [r5, r1] + mov r0, #0x14 + pop {r3-r5, pc} + .balign 4 +_020769EC: .word 0x0000069C +_020769F0: .word sub_020769FC + 1 +_020769F4: .word 0x00000B18 +_020769F8: .word sub_02076A48 + 1 + + thumb_func_start sub_020769FC +sub_020769FC: ; 0x020769FC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02076A40 ; =0x0000069C + mov r1, #0x3a + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x6a + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x0 + bl sub_020731E8 + ldr r0, _02076A44 ; =0x00000B22 + mov r1, #0x5 + strb r1, [r5, r0] + mov r1, #0x4 + add r0, r0, #0x5 + strb r1, [r5, r0] + mov r0, #0x14 + pop {r3-r5, pc} + nop +_02076A40: .word 0x0000069C +_02076A44: .word 0x00000B22 + + thumb_func_start sub_02076A48 +sub_02076A48: ; 0x02076A48 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02076A90 ; =0x0000069C + mov r1, #0x34 + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x6a + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x0 + bl sub_020731E8 + ldr r0, _02076A94 ; =sub_02076950 + ldr r1, _02076A98 ; =0x00000B18 + ldr r2, _02076A9C ; =sub_020769A4 + str r0, [r5, r1] + add r0, r1, #0x4 + str r2, [r5, r0] + mov r0, #0x16 + add r1, #0xa + strb r0, [r5, r1] + mov r0, #0x14 + pop {r3-r5, pc} + .balign 4 +_02076A90: .word 0x0000069C +_02076A94: .word sub_02076950 + 1 +_02076A98: .word 0x00000B18 +_02076A9C: .word sub_020769A4 + 1 + + thumb_func_start sub_02076AA0 +sub_02076AA0: ; 0x02076AA0 + push {r3-r7, lr} + ldr r7, _02076AF4 ; =0x000005A4 + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r4, #0x0 +_02076AAA: + add r1, r4, #0x0 + add r0, r6, #0x0 + add r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + ldr r0, [r5, r7] + ldrh r1, [r0, #0x26] + cmp r2, r1 + bne _02076AC6 + mov r0, #0xfd + pop {r3-r7, pc} +_02076AC6: + cmp r2, #0x0 + beq _02076AD4 + add r1, r4, #0x1 + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + cmp r4, #0x4 + blo _02076AAA +_02076AD4: + ldrh r0, [r0, #0x24] + bl sub_0206EA7C + add r1, r0, #0x0 + add r0, r6, #0x0 + bl sub_0206A13C + cmp r0, #0x0 + bne _02076AEA + mov r0, #0xff + pop {r3-r7, pc} +_02076AEA: + cmp r4, #0x4 + bne _02076AF0 + mov r4, #0xfe +_02076AF0: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_02076AF4: .word 0x000005A4 + + thumb_func_start sub_02076AF8 +sub_02076AF8: ; 0x02076AF8 + push {r4-r6, lr} + add r4, r0, #0x0 + ldr r0, _02076C78 ; =0x000005A4 + ldr r1, _02076C7C ; =0x00000B25 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r6, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_02076AA0 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200ACF8 + mov r2, #0x6a + lsl r2, r2, #0x4 + ldr r0, [r4, r2] + sub r2, #0xfc + ldr r2, [r4, r2] + mov r1, #0x1 + ldrh r2, [r2, #0x26] + bl sub_0200AD5C + cmp r5, #0xfd + bhi _02076B5A + bhs _02076BB2 + cmp r5, #0x3 + bhi _02076B60 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r2, #0 + lsl r4, r2, #0 + lsl r4, r2, #0 + lsl r4, r2, #0 +_02076B5A: + cmp r5, #0xfe + bhi _02076B62 + beq _02076BF2 +_02076B60: + b _02076C72 +_02076B62: + cmp r5, #0xff + beq _02076C34 + b _02076C72 +_02076B68: + .byte 0x20, 0x1C, 0x31, 0x1C, 0x2A, 0x1C, 0x00, 0xF0 + .byte 0xDD, 0xF9, 0x43, 0x48, 0x3D, 0x21, 0x20, 0x58, 0x93, 0xF7, 0xCC, 0xFE, 0x6A, 0x21, 0x05, 0x1C + .byte 0x09, 0x01, 0x60, 0x58, 0x09, 0x1D, 0x61, 0x58, 0x2A, 0x1C, 0x94, 0xF7, 0x15, 0xFE, 0x28, 0x1C + .byte 0xAA, 0xF7, 0x46, 0xFF, 0x00, 0x21, 0x20, 0x1C, 0xC9, 0x43, 0x01, 0x22, 0xFC, 0xF7, 0x24, 0xFB + .byte 0x35, 0x48, 0x00, 0x21, 0x20, 0x58, 0x23, 0x30, 0x01, 0x70, 0x36, 0x48, 0x15, 0x21, 0x21, 0x54 + .byte 0x5F, 0xE0 +_02076BB2: + ldr r0, _02076C80 ; =0x0000069C + mov r1, #0x3f + ldr r0, [r4, r0] + bl sub_0200A914 + mov r1, #0x6a + add r5, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + add r2, r5, #0x0 + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02076C78 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _02076C84 ; =0x00000B22 + mov r1, #0x15 + strb r1, [r4, r0] + b _02076C72 +_02076BF2: + ldr r0, _02076C80 ; =0x0000069C + mov r1, #0x34 + ldr r0, [r4, r0] + bl sub_0200A914 + mov r1, #0x6a + add r5, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + add r2, r5, #0x0 + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02076C88 ; =sub_02076DD4 + ldr r1, _02076C8C ; =0x00000B18 + ldr r2, _02076C90 ; =sub_02076E28 + str r0, [r4, r1] + add r0, r1, #0x4 + str r2, [r4, r0] + mov r0, #0x16 + add r1, #0xa + strb r0, [r4, r1] + b _02076C72 +_02076C34: + ldr r0, _02076C80 ; =0x0000069C + mov r1, #0x3e + ldr r0, [r4, r0] + bl sub_0200A914 + mov r1, #0x6a + add r5, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + add r2, r5, #0x0 + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02076C78 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _02076C84 ; =0x00000B22 + mov r1, #0x15 + strb r1, [r4, r0] +_02076C72: + mov r0, #0x14 + pop {r4-r6, pc} + nop +_02076C78: .word 0x000005A4 +_02076C7C: .word 0x00000B25 +_02076C80: .word 0x0000069C +_02076C84: .word 0x00000B22 +_02076C88: .word sub_02076DD4 + 1 +_02076C8C: .word 0x00000B18 +_02076C90: .word sub_02076E28 + 1 + + thumb_func_start sub_02076C94 +sub_02076C94: ; 0x02076C94 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, _02076D2C ; =0x000005A4 + ldr r1, _02076D30 ; =0x00000B25 + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r5, r0, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200ACF8 + ldr r0, _02076D2C ; =0x000005A4 + ldr r2, [r4, r0] + add r1, r2, #0x0 + add r1, #0x28 + ldrb r1, [r1, #0x0] + cmp r1, #0x4 + bne _02076CDC + add r0, #0xfc + ldrh r2, [r2, #0x26] + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_0200AD5C + add r0, r4, #0x0 + bl sub_02076E28 + pop {r3-r5, pc} +_02076CDC: + add r0, r5, #0x0 + add r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_0200AD5C + ldr r0, _02076D34 ; =0x0000069C + mov r1, #0x3c + ldr r0, [r4, r0] + bl sub_0200A914 + mov r1, #0x6a + add r5, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + add r2, r5, #0x0 + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02076D38 ; =0x00000B22 + mov r1, #0x12 + strb r1, [r4, r0] + mov r0, #0x14 + pop {r3-r5, pc} + .balign 4 +_02076D2C: .word 0x000005A4 +_02076D30: .word 0x00000B25 +_02076D34: .word 0x0000069C +_02076D38: .word 0x00000B22 + + thumb_func_start sub_02076D3C +sub_02076D3C: ; 0x02076D3C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02076DC0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _02076DBC + ldr r0, _02076DC4 ; =0x000005A4 + ldr r1, _02076DC8 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + ldr r2, _02076DC4 ; =0x000005A4 + add r1, r0, #0x0 + ldr r2, [r5, r2] + add r0, r5, #0x0 + add r2, #0x28 + ldrb r2, [r2, #0x0] + bl sub_02076F2C + ldr r0, _02076DCC ; =0x0000069C + mov r1, #0x3d + ldr r0, [r5, r0] + bl sub_0200A914 + mov r2, #0x6a + lsl r2, r2, #0x4 + add r4, r0, #0x0 + ldr r0, [r5, r2] + sub r2, #0xfc + ldr r2, [r5, r2] + mov r1, #0x1 + ldrh r2, [r2, #0x26] + bl sub_0200AD5C + mov r1, #0x6a + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x0 + bl sub_020731E8 + ldr r0, _02076DC4 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r5, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _02076DD0 ; =0x00000B22 + mov r1, #0x15 + strb r1, [r5, r0] + mov r0, #0x14 + pop {r3-r5, pc} +_02076DBC: + mov r0, #0x12 + pop {r3-r5, pc} + .balign 4 +_02076DC0: .word 0x021C48B8 +_02076DC4: .word 0x000005A4 +_02076DC8: .word 0x00000B25 +_02076DCC: .word 0x0000069C +_02076DD0: .word 0x00000B22 + + thumb_func_start sub_02076DD4 +sub_02076DD4: ; 0x02076DD4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02076E1C ; =0x0000069C + mov r1, #0x3b + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x6a + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x0 + bl sub_020731E8 + ldr r0, _02076E20 ; =0x000005A4 + mov r1, #0x4 + ldr r0, [r5, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _02076E24 ; =0x00000B22 + mov r1, #0x15 + strb r1, [r5, r0] + mov r0, #0x14 + pop {r3-r5, pc} + nop +_02076E1C: .word 0x0000069C +_02076E20: .word 0x000005A4 +_02076E24: .word 0x00000B22 + + thumb_func_start sub_02076E28 +sub_02076E28: ; 0x02076E28 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02076E70 ; =0x0000069C + mov r1, #0x37 + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x6a + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02076E74 ; =sub_02076E80 + ldr r1, _02076E78 ; =0x00000B18 + ldr r2, _02076E7C ; =sub_02076ED4 + str r0, [r5, r1] + add r0, r1, #0x4 + str r2, [r5, r0] + mov r0, #0x16 + add r1, #0xa + strb r0, [r5, r1] + mov r0, #0x14 + pop {r3-r5, pc} + .balign 4 +_02076E70: .word 0x0000069C +_02076E74: .word sub_02076E80 + 1 +_02076E78: .word 0x00000B18 +_02076E7C: .word sub_02076ED4 + 1 + + thumb_func_start sub_02076E80 +sub_02076E80: ; 0x02076E80 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02076EC8 ; =0x0000069C + mov r1, #0x3a + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x6a + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x0 + bl sub_020731E8 + ldr r0, _02076ECC ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r5, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _02076ED0 ; =0x00000B22 + mov r1, #0x15 + strb r1, [r5, r0] + mov r0, #0x14 + pop {r3-r5, pc} + nop +_02076EC8: .word 0x0000069C +_02076ECC: .word 0x000005A4 +_02076ED0: .word 0x00000B22 + + thumb_func_start sub_02076ED4 +sub_02076ED4: ; 0x02076ED4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02076F1C ; =0x0000069C + mov r1, #0x34 + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x6a + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x0 + bl sub_020731E8 + ldr r0, _02076F20 ; =sub_02076DD4 + ldr r1, _02076F24 ; =0x00000B18 + ldr r2, _02076F28 ; =sub_02076E28 + str r0, [r5, r1] + add r0, r1, #0x4 + str r2, [r5, r0] + mov r0, #0x16 + add r1, #0xa + strb r0, [r5, r1] + mov r0, #0x14 + pop {r3-r5, pc} + .balign 4 +_02076F1C: .word 0x0000069C +_02076F20: .word sub_02076DD4 + 1 +_02076F24: .word 0x00000B18 +_02076F28: .word sub_02076E28 + 1 + + thumb_func_start sub_02076F2C +sub_02076F2C: ; 0x02076F2C + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + ldr r0, _02076FAC ; =0x000005A4 + add r6, r2, #0x0 + ldr r0, [r5, r0] + add r4, r1, #0x0 + ldrh r0, [r0, #0x26] + add r1, r6, #0x0 + add r1, #0x36 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r2, sp, #0x0 + bl sub_02067830 + mov r0, #0x0 + add r1, r6, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r1, #0x3e + add r2, sp, #0x0 + bl sub_02067830 + ldr r0, _02076FAC ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r5, r0] + ldrh r0, [r0, #0x26] + bl sub_0206AB30 + add r6, #0x3a + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, sp, #0x0 + bl sub_02067830 + ldr r0, _02076FAC ; =0x000005A4 + ldr r1, [r5, r0] + ldrh r0, [r1, #0x24] + cmp r0, #0x0 + beq _02076FA8 + ldrh r0, [r1, #0x26] + bl sub_0206EA54 + cmp r0, #0x0 + bne _02076F98 + ldr r0, _02076FAC ; =0x000005A4 + mov r2, #0x1 + ldr r1, [r5, r0] + mov r3, #0xc + ldr r0, [r1, #0x4] + ldrh r1, [r1, #0x24] + bl sub_0206EDD4 +_02076F98: + add r0, r5, #0x0 + bl sub_020772CC + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_020688E8 +_02076FA8: + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02076FAC: .word 0x000005A4 + + thumb_func_start sub_02076FB0 +sub_02076FB0: ; 0x02076FB0 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _0207702C ; =0x000005A4 + add r6, r1, #0x0 + ldr r1, _02077030 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r1, r6, #0x0 + add r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, _02077034 ; =0x0000069C + add r1, r6, #0x0 + ldr r0, [r5, r0] + add r1, #0xa2 + bl sub_0200A914 + add r7, r0, #0x0 + mov r0, #0x6a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + add r2, r4, #0x0 + bl sub_0200AD5C + mov r1, #0x6a + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + add r1, #0x8 + ldr r1, [r5, r1] + add r2, r7, #0x0 + bl sub_0200B7B8 + add r0, r7, #0x0 + bl sub_02021A20 + cmp r4, #0x0 + ldr r1, _02077038 ; =0x000006F8 + bne _0207701C + ldr r0, [r5, r1] + sub r1, #0x50 + mov r2, #0x2 + ldr r1, [r5, r1] + mvn r2, r2 + bl sub_020128A0 + mov r0, #0x0 + pop {r3-r7, pc} +_0207701C: + ldr r0, [r5, r1] + sub r1, #0x50 + ldr r1, [r5, r1] + add r2, r6, #0x0 + bl sub_020128A0 + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_0207702C: .word 0x000005A4 +_02077030: .word 0x00000B25 +_02077034: .word 0x0000069C +_02077038: .word 0x000006F8 + + thumb_func_start sub_0207703C +sub_0207703C: ; 0x0207703C + push {r4-r5, lr} + sub sp, #0x14 + add r4, r0, #0x0 + cmp r1, #0x0 + bne _02077050 + mov r1, #0x29 + mov r2, #0x1 + bl sub_020731D4 + b _02077058 +_02077050: + mov r1, #0x28 + mov r2, #0x1 + bl sub_020731D4 +_02077058: + mov r0, #0x4 + mov r1, #0xc + bl sub_02012838 + ldr r1, _02077108 ; =0x000006F8 + str r0, [r4, r1] + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02076FB0 + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02076FB0 + add r0, r5, r0 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02076FB0 + add r0, r5, r0 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_02076FB0 + add r0, r5, r0 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r0, _02077108 ; =0x000006F8 + mov r2, #0x0 + ldr r0, [r4, r0] + str r0, [sp, #0x8] + mov r0, #0x91 + lsl r0, r0, #0x2 + add r0, r4, r0 + str r0, [sp, #0xc] + add r0, sp, #0x8 + strb r2, [r0, #0x8] + mov r2, #0x1 + strb r2, [r0, #0x9] + mov r2, #0x4 + strb r2, [r0, #0xa] + ldrb r3, [r0, #0xb] + mov r2, #0xf + bic r3, r2 + strb r3, [r0, #0xb] + ldrb r3, [r0, #0xb] + mov r2, #0x30 + bic r3, r2 + strb r3, [r0, #0xb] + cmp r1, #0x4 + ldrb r2, [r0, #0xb] + bne _020770D6 + mov r1, #0xc0 + bic r2, r1 + mov r1, #0x40 + orr r1, r2 + strb r1, [r0, #0xb] + b _020770DC +_020770D6: + mov r1, #0xc0 + bic r2, r1 + strb r2, [r0, #0xb] +_020770DC: + mov r0, #0x91 + lsl r0, r0, #0x2 + mov r1, #0x1 + add r0, r4, r0 + add r2, r1, #0x0 + mov r3, #0xe + bl sub_0200CCA4 + mov r0, #0xc + str r0, [sp, #0x0] + mov r0, #0x2 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x8 + mov r1, #0x8 + add r3, r2, #0x0 + bl sub_02001C14 + ldr r1, _0207710C ; =0x000006FC + str r0, [r4, r1] + add sp, #0x14 + pop {r4-r5, pc} + .balign 4 +_02077108: .word 0x000006F8 +_0207710C: .word 0x000006FC + + thumb_func_start sub_02077110 +sub_02077110: ; 0x02077110 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, _0207722C ; =0x000006FC + ldr r0, [r5, r0] + bl sub_02001C78 + add r4, r0, #0x0 + mov r0, #0x1 + mvn r0, r0 + cmp r4, r0 + beq _02077130 + add r0, r0, #0x1 + cmp r4, r0 + beq _02077226 + b _0207716A +_02077130: + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200D0E0 + mov r0, #0x91 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200CCF8 + ldr r0, _0207722C ; =0x000006FC + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_02001C5C + ldr r0, _02077230 ; =0x000006F8 + ldr r0, [r5, r0] + bl sub_02012870 + add r0, r5, #0x0 + mov r1, #0x20 + mov r2, #0x1 + bl sub_020731C0 + add sp, #0x8 + mov r0, #0x4 + pop {r4-r6, pc} +_0207716A: + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200D0E0 + mov r0, #0x91 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + bl sub_0200CCF8 + ldr r0, _0207722C ; =0x000006FC + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_02001C5C + ldr r0, _02077230 ; =0x000006F8 + ldr r0, [r5, r0] + bl sub_02012870 + ldr r0, _02077234 ; =0x000005A4 + ldr r6, [r5, r0] + add r0, r5, #0x0 + bl sub_020772CC + str r0, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + ldr r2, _02077238 ; =0x00000B25 + lsl r3, r4, #0x18 + ldrh r1, [r6, #0x24] + ldrb r2, [r5, r2] + ldr r0, [r6, #0x0] + lsr r3, r3, #0x18 + bl sub_02084DD0 + cmp r0, #0x1 + bne _020771F6 + ldr r0, _02077234 ; =0x000005A4 + ldr r1, _02077238 ; =0x00000B25 + ldr r0, [r5, r0] + ldrb r1, [r5, r1] + ldr r0, [r0, #0x0] + bl sub_0206B9B0 + add r4, #0x36 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _02077234 ; =0x000005A4 + add r2, r0, #0x0 + ldr r1, [r5, r1] + add r0, r5, #0x0 + ldrh r1, [r1, #0x24] + bl sub_020757F4 + ldr r0, _02077234 ; =0x000005A4 + mov r2, #0x1 + ldr r1, [r5, r0] + mov r3, #0xc + ldr r0, [r1, #0x4] + ldrh r1, [r1, #0x24] + bl sub_0206EDD4 + ldr r0, _0207723C ; =0x000005EC + bl sub_020054C8 + b _02077204 +_020771F6: + ldr r2, _02077240 ; =0x0000069C + mov r1, #0x69 + ldr r0, [r5, r2] + add r2, #0x8 + ldr r2, [r5, r2] + bl sub_0200A8E0 +_02077204: + mov r1, #0x0 + add r0, r5, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _02077234 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r5, r0] + add sp, #0x8 + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _02077244 ; =0x00000B22 + mov r1, #0x15 + strb r1, [r5, r0] + mov r0, #0x14 + pop {r4-r6, pc} +_02077226: + mov r0, #0x6 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_0207722C: .word 0x000006FC +_02077230: .word 0x000006F8 +_02077234: .word 0x000005A4 +_02077238: .word 0x00000B25 +_0207723C: .word 0x000005EC +_02077240: .word 0x0000069C +_02077244: .word 0x00000B22 + + thumb_func_start sub_02077248 +sub_02077248: ; 0x02077248 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_0200D0E0 + ldr r0, _020772BC ; =0x00000B25 + ldr r2, _020772C0 ; =0x0000070C + ldrb r1, [r4, r0] + mov r0, #0x2c + mul r0, r1 + add r0, r4, r0 + ldrh r0, [r0, r2] + cmp r0, #0x0 + bne _02077286 + add r0, r2, #0x0 + sub r0, #0x70 + sub r2, #0x68 + ldr r0, [r4, r0] + ldr r2, [r4, r2] + mov r1, #0x7f + bl sub_0200A8E0 + ldr r1, _020772BC ; =0x00000B25 + add r0, r4, #0x0 + ldrb r1, [r4, r1] + bl sub_02073AB8 + b _0207729C +_02077286: + add r0, r2, #0x0 + sub r0, #0x70 + sub r2, #0x68 + ldr r0, [r4, r0] + ldr r2, [r4, r2] + mov r1, #0x80 + bl sub_0200A8E0 + ldr r0, _020772BC ; =0x00000B25 + mov r1, #0x7 + strb r1, [r4, r0] +_0207729C: + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + mov r2, #0x1 + bl sub_020731E8 + ldr r0, _020772C4 ; =0x000005A4 + mov r1, #0x0 + ldr r0, [r4, r0] + add r0, #0x23 + strb r1, [r0, #0x0] + ldr r0, _020772C8 ; =0x00000B22 + mov r1, #0x15 + strb r1, [r4, r0] + pop {r4, pc} + nop +_020772BC: .word 0x00000B25 +_020772C0: .word 0x0000070C +_020772C4: .word 0x000005A4 +_020772C8: .word 0x00000B22 + + thumb_func_start sub_020772CC +sub_020772CC: ; 0x020772CC + push {r3, lr} + ldr r1, _020772E4 ; =0x000005A4 + ldr r0, [r0, r1] + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x0] + bl sub_02034824 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r3, pc} + nop +_020772E4: .word 0x000005A4 + + thumb_func_start sub_020772E8 +sub_020772E8: ; 0x020772E8 + push {r3-r6, lr} + sub sp, #0xc + add r5, r1, #0x0 + ldr r1, [r5, #0x0] + add r6, r0, #0x0 + cmp r1, #0x0 + beq _020772FE + cmp r1, #0x1 + bne _020772FC + b _02077456 +_020772FC: + b _02077490 +_020772FE: + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + bl sub_02015F1C + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02077498 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _0207749C ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r2, #0xa + mov r0, #0x3 + mov r1, #0x12 + lsl r2, r2, #0xe + bl sub_0201681C + mov r1, #0x5d + add r0, r6, #0x0 + lsl r1, r1, #0x4 + mov r2, #0x12 + bl sub_02006268 + mov r2, #0x5d + mov r1, #0x0 + lsl r2, r2, #0x4 + add r4, r0, #0x0 + blx sub_020DF4A4 + mov r0, #0x12 + bl sub_02016B94 + mov r1, #0x16 + lsl r1, r1, #0x4 + str r0, [r4, r1] + mov r0, #0x12 + bl sub_0200AA80 + mov r2, #0x5a + lsl r2, r2, #0x2 + str r0, [r4, r2] + mov r0, #0x0 + mov r1, #0x1a + add r2, #0xb + mov r3, #0x12 + bl sub_0200A86C + mov r2, #0x5b + lsl r2, r2, #0x2 + str r0, [r4, r2] + mov r0, #0x1 + mov r1, #0x1a + add r2, #0xc + mov r3, #0x12 + bl sub_0200A86C + mov r2, #0x17 + lsl r2, r2, #0x4 + str r0, [r4, r2] + mov r0, #0x1 + mov r1, #0x1a + sub r2, #0x2c + mov r3, #0x12 + bl sub_0200A86C + mov r1, #0x5d + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + bl sub_02077B24 + mov r0, #0x16 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_02077B44 + add r0, r6, #0x0 + bl sub_0200628C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02077B08 + add r0, r4, #0x0 + bl sub_02077FE8 + mov r0, #0x2 + mov r1, #0x12 + bl sub_02002C50 + ldr r0, _020774A0 ; =sub_02077AE8 + mov r1, #0x0 + bl sub_02015F10 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_02077CD4 + mov r0, #0x0 + mov r1, #0x12 + bl sub_02002C84 + bl sub_02078110 + add r0, r4, #0x0 + bl sub_02078140 + add r0, r4, #0x0 + bl sub_0207835C + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_0207890C + ldr r0, _020774A4 ; =0x000004C4 + mov r3, #0x5f + add r1, r4, r0 + lsl r3, r3, #0x2 + str r1, [sp, #0x0] + ldr r1, [r4, r3] + add r2, r3, #0x0 + str r1, [sp, #0x4] + sub r2, #0x24 + sub r0, #0xcc + add r1, r4, #0x0 + sub r3, #0x22 + ldrh r2, [r4, r2] + add r0, r4, r0 + add r1, #0xd8 + add r3, r4, r3 + bl sub_0207907C + mov r1, #0x0 + mov r0, #0x34 + add r2, r1, #0x0 + bl sub_0200433C + mov r0, #0x10 + str r0, [sp, #0x0] + mov r1, #0x1 + str r1, [sp, #0x4] + mov r0, #0x12 + str r0, [sp, #0x8] + mov r0, #0x0 + add r2, r1, #0x0 + add r3, r0, #0x0 + bl sub_0200E1D0 + mov r0, #0x1 + bl sub_02077C84 + ldr r0, _020774A8 ; =0x021C4918 + mov r1, #0x1 + strb r1, [r0, #0x5] + bl sub_0201E7A0 + ldr r0, [r5, #0x0] + add r0, r0, #0x1 + str r0, [r5, #0x0] + b _02077490 +_02077456: + bl sub_02006278 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x1 + bne _02077472 + ldr r1, _020774AC ; =0x000004B8 + ldr r2, [r4, #0x4] + ldr r0, [r4, r1] + add r1, #0x8 + ldr r1, [r4, r1] + ldr r3, [r4, #0x8] + bl sub_020774B8 +_02077472: + ldr r0, _020774B0 ; =0x021C5C54 + mov r1, #0x1 + str r4, [r0, #0x0] + mov r0, #0x0 + mov r2, #0xc + mov r3, #0x12 + bl sub_020142EC + ldr r1, _020774B4 ; =0x000005C4 + add sp, #0xc + str r0, [r4, r1] + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x1 + pop {r3-r6, pc} +_02077490: + mov r0, #0x0 + add sp, #0xc + pop {r3-r6, pc} + nop +_02077498: .word 0xFFFFE0FF +_0207749C: .word 0x04001000 +_020774A0: .word sub_02077AE8 + 1 +_020774A4: .word 0x000004C4 +_020774A8: .word 0x021C4918 +_020774AC: .word 0x000004B8 +_020774B0: .word 0x021C5C54 +_020774B4: .word 0x000005C4 + + thumb_func_start sub_020774B8 +sub_020774B8: ; 0x020774B8 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r2, #0x0 + mov r2, #0x2 + ldr r0, [r0, #0x14] + ldr r1, _020774E8 ; =0x000057E0 + add r6, r3, #0x0 + lsl r2, r2, #0x8 + blx sub_020C92F4 + ldr r4, [r4, #0xc] + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r2, #0x0 + bl sub_0206B7BC + lsl r0, r0, #0x5 + add r0, r4, r0 + mov r1, #0xc0 + mov r2, #0x20 + blx sub_020C9480 + pop {r4-r6, pc} + nop +_020774E8: .word 0x000057E0 + + thumb_func_start sub_020774EC +sub_020774EC: ; 0x020774EC + push {r4-r6, lr} + sub sp, #0x10 + add r5, r1, #0x0 + add r6, r0, #0x0 + bl sub_02006278 + ldr r1, [r5, #0x0] + add r4, r0, #0x0 + cmp r1, #0x3 + bhi _02077550 + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r6, r0, #0 + lsl r2, r3, #0 + lsl r6, r1, #0x1 + lsl r4, r7, #0x5 + bl sub_0200E308 + cmp r0, #0x0 + beq _02077550 + mov r0, #0x1 + str r0, [r5, #0x0] + ldr r0, _020776A8 ; =0x000005CC + mov r1, #0x0 + str r1, [r4, r0] + b _02077698 +_02077528: + .byte 0x5F, 0x49, 0x62, 0x58, 0x52, 0x1C, 0x62, 0x50 + .byte 0x02, 0xF0, 0xC8, 0xF9, 0x49, 0x22, 0x12, 0x01, 0xA0, 0x18, 0xCB, 0x21, 0x30, 0x3A, 0x89, 0x00 + .byte 0xA2, 0x58, 0x61, 0x18, 0x02, 0xF0, 0x76, 0xF9, 0x57, 0x48, 0x21, 0x58, 0x05, 0x29, 0x00, 0xDC +_02077550: + b _02077698 +_02077552: + .byte 0x02, 0x21, 0x29, 0x60, 0x00, 0x21, 0x21, 0x50, 0x9D, 0xE0, 0x53, 0x4B, 0xE2, 0x58 + .byte 0x07, 0x2A, 0x68, 0xD8, 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14, 0x97, 0x44 + .byte 0xC4, 0x00, 0xC4, 0x00, 0xC4, 0x00, 0xC4, 0x00, 0x0E, 0x00, 0x22, 0x00, 0x6E, 0x00, 0x9A, 0x00 + .byte 0x62, 0x6B, 0x00, 0x2A, 0x02, 0xD1, 0x00, 0xF0, 0x9D, 0xF8, 0x28, 0x60, 0x20, 0x1C, 0x02, 0xF0 + .byte 0x99, 0xF9, 0x50, 0xE0, 0x31, 0x1C, 0x00, 0xF0, 0x7B, 0xFC, 0x45, 0x48, 0x0F, 0x21, 0x20, 0x18 + .byte 0xA2, 0xF7, 0x3E, 0xF8, 0x42, 0x48, 0x01, 0x22, 0x20, 0x18, 0x00, 0x21, 0x12, 0x02, 0x0A, 0x23 + .byte 0x95, 0xF7, 0x84, 0xFD, 0x00, 0x23, 0x06, 0x22, 0x3D, 0x48, 0x00, 0x93, 0x01, 0x21, 0x01, 0x91 + .byte 0x02, 0x93, 0x92, 0x01, 0xA2, 0x58, 0x20, 0x18, 0xA4, 0xF7, 0xDC, 0xFB, 0x39, 0x49, 0x60, 0x50 + .byte 0x10, 0x39, 0x60, 0x18, 0xA1, 0xF7, 0xFC, 0xFD, 0x34, 0x48, 0x06, 0x21, 0x21, 0x50, 0x2A, 0xE0 + .byte 0x18, 0x1F, 0x20, 0x58, 0x00, 0x06, 0x00, 0x0E, 0xA4, 0xF7, 0xC2, 0xFB, 0x00, 0x28, 0x22, 0xD1 + .byte 0x31, 0x48, 0x8D, 0xF7, 0x69, 0xFF, 0x31, 0x49, 0x00, 0x22, 0x60, 0x58, 0x40, 0x1C, 0x60, 0x50 + .byte 0x29, 0x48, 0x4C, 0x39, 0x22, 0x50, 0x07, 0x20, 0x60, 0x50, 0x14, 0xE0, 0x26, 0x48, 0x21, 0x58 + .byte 0x49, 0x1C, 0x21, 0x50, 0x20, 0x58, 0x1E, 0x28, 0x0D, 0xDD, 0x10, 0x20, 0x00, 0x90, 0x00, 0x21 + .byte 0x01, 0x20, 0x01, 0x90, 0x12, 0x20, 0x02, 0x90, 0x02, 0x20, 0x0A, 0x1C, 0x0B, 0x1C, 0x96, 0xF7 + .byte 0xCF, 0xFD, 0x03, 0x20, 0x28, 0x60, 0x22, 0x4B, 0xCB, 0x21, 0xE0, 0x18, 0x00, 0x90, 0x18, 0x1D + .byte 0x20, 0x18, 0x89, 0x00, 0x01, 0x90, 0x60, 0x18, 0x02, 0x90, 0x18, 0x1C, 0x4C, 0x30, 0x20, 0x58 + .byte 0x1A, 0x1C, 0x40, 0x69, 0x8C, 0x31, 0x03, 0x90, 0x16, 0x20, 0x00, 0x01, 0x1B, 0x1F, 0x08, 0x3A + .byte 0x20, 0x58, 0xE3, 0x58, 0x61, 0x18, 0xA2, 0x18, 0x01, 0xF0, 0x22, 0xF8, 0x49, 0x22, 0x12, 0x01 + .byte 0xA0, 0x18, 0xCB, 0x21, 0x30, 0x3A, 0x89, 0x00, 0xA2, 0x58, 0x61, 0x18, 0x02, 0xF0, 0xDA, 0xF8 + .byte 0x20, 0x1C, 0x38, 0x30, 0x01, 0xF0, 0xDA, 0xFB, 0x06, 0xE0, 0x96, 0xF7, 0x3D, 0xFE, 0x00, 0x28 + .byte 0x02, 0xD0, 0x04, 0xB0, 0x01, 0x20, 0x70, 0xBD +_02077698: + mov r0, #0x62 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0201FDEC + mov r0, #0x0 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_020776A8: .word 0x000005CC +_020776AC: + .byte 0x5C, 0x04, 0x00, 0x00 + .byte 0x48, 0x04, 0x00, 0x00, 0x58, 0x04, 0x00, 0x00, 0xE2, 0x05, 0x00, 0x00, 0xA8, 0x04, 0x00, 0x00 + .byte 0x64, 0x04, 0x00, 0x00 + + thumb_func_start sub_020776C4 +sub_020776C4: ; 0x020776C4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02078C98 + ldr r0, _020777BC ; =0x021C48B8 + mov r1, #0x4 + ldr r0, [r0, #0x48] + tst r1, r0 + beq _02077746 + ldr r0, [r5, #0x0] + cmp r0, #0x4 + beq _0207771E + ldr r1, _020777C0 ; =0x0000045C + mov r0, #0x0 + str r0, [r5, r1] + add r2, r1, #0x4 + ldr r2, [r5, r2] + add r3, r2, #0x1 + add r2, r1, #0x4 + str r3, [r5, r2] + ldr r2, [r5, r2] + cmp r2, #0x3 + blt _020776F8 + add r1, r1, #0x4 + str r0, [r5, r1] +_020776F8: + mov r2, #0x49 + lsl r2, r2, #0x4 + add r1, r2, #0x0 + sub r1, #0x30 + ldr r1, [r5, r1] + add r0, r5, r2 + lsl r3, r1, #0x2 + ldr r1, [r0, r3] + sub r2, #0x30 + add r1, r1, #0x1 + str r1, [r0, r3] + add r0, r5, #0x0 + ldr r1, [r5, r2] + add r0, #0x3a + bl sub_0207916C + ldr r0, _020777C4 ; =0x0000069E + bl sub_020054C8 +_0207771E: + mov r2, #0x49 + lsl r2, r2, #0x4 + add r1, r2, #0x0 + sub r1, #0x30 + ldr r1, [r5, r1] + add r0, r5, r2 + lsl r3, r1, #0x2 + ldr r1, [r0, r3] + sub r2, #0x30 + add r1, r1, #0x1 + str r1, [r0, r3] + add r0, r5, #0x0 + ldr r1, [r5, r2] + add r0, #0x3a + bl sub_0207916C + ldr r0, _020777C4 ; =0x0000069E + bl sub_020054C8 + b _020777B8 +_02077746: + mov r2, #0x1 + add r1, r0, #0x0 + tst r1, r2 + beq _0207776C + ldr r3, [r5, #0x20] + mov r1, #0x1a + mul r1, r3 + add r3, r5, r1 + ldr r1, [r5, #0x1c] + add r0, r5, #0x0 + lsl r1, r1, #0x1 + add r1, r3, r1 + ldrh r1, [r1, #0x3a] + bl sub_020791C0 + add r4, r0, #0x0 + mov r0, #0x1 + str r0, [r5, #0x30] + b _020777B8 +_0207776C: + ldr r1, _020777C8 ; =0x000005C8 + ldr r1, [r5, r1] + cmp r1, #0x1 + bne _02077794 + ldr r2, [r5, #0x20] + mov r1, #0x1a + mul r1, r2 + add r2, r5, r1 + ldr r1, [r5, #0x1c] + add r0, r5, #0x0 + lsl r1, r1, #0x1 + add r1, r2, r1 + ldrh r1, [r1, #0x3a] + mov r2, #0x0 + bl sub_020791C0 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [r5, #0x30] + b _020777B8 +_02077794: + mov r1, #0x2 + add r3, r0, #0x0 + tst r3, r1 + beq _020777A8 + ldr r1, _020777CC ; =0x0000E007 + add r0, r5, #0x0 + bl sub_020791C0 + add r4, r0, #0x0 + b _020777B8 +_020777A8: + add r1, #0xfe + tst r0, r1 + beq _020777B8 + ldr r1, _020777D0 ; =0x0000E006 + add r0, r5, #0x0 + bl sub_020791C0 + add r4, r0, #0x0 +_020777B8: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_020777BC: .word 0x021C48B8 +_020777C0: .word 0x0000045C +_020777C4: .word 0x0000069E +_020777C8: .word 0x000005C8 +_020777CC: .word 0x0000E007 +_020777D0: .word 0x0000E006 + + thumb_func_start sub_020777D4 +sub_020777D4: ; 0x020777D4 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r4, r1, #0x0 + cmp r0, #0x0 + bne _02077836 + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _020777FE + bl sub_0201B9EC + mov r1, #0x12 + blx sub_020EBC80 + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + bl sub_0200A914 + add r6, r0, #0x0 + b _0207781A +_020777FE: + cmp r0, #0x1 + bne _0207781A + bl sub_0201B9EC + mov r1, #0x12 + blx sub_020EBC80 + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + add r1, #0x12 + bl sub_0200A914 + add r6, r0, #0x0 +_0207781A: + ldr r0, [r4, #0x18] + add r1, r6, #0x0 + bl sub_02021A74 + add r0, r6, #0x0 + bl sub_02021A20 + ldr r0, [r4, #0x18] + add r4, #0x1c + add r1, r4, #0x0 + mov r2, #0xa + bl sub_02021EF0 + pop {r4-r6, pc} +_02077836: + cmp r0, #0x3 + bne _02077864 + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x58 + bl sub_0200A914 + add r5, r0, #0x0 + ldr r0, [r4, #0x18] + add r1, r5, #0x0 + bl sub_02021A74 + add r0, r5, #0x0 + bl sub_02021A20 + ldr r0, [r4, #0x18] + add r4, #0x1c + add r1, r4, #0x0 + mov r2, #0xa + bl sub_02021EF0 + pop {r4-r6, pc} +_02077864: + mov r0, #0x1 + str r0, [r4, #0x14] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0207786C +sub_0207786C: ; 0x0207786C + push {r4-r5} + ldr r1, _0207788C ; =0x000001DE + ldr r2, _02077890 ; =0x0000FFFF + mov r5, #0x1 + mov r3, #0x0 +_02077876: + ldrh r4, [r0, #0x0] + cmp r4, r2 + beq _02077886 + cmp r4, r1 + beq _02077882 + add r5, r3, #0x0 +_02077882: + add r0, r0, #0x2 + b _02077876 +_02077886: + add r0, r5, #0x0 + pop {r4-r5} + bx lr + .balign 4 +_0207788C: .word 0x000001DE +_02077890: .word 0x0000FFFF + + thumb_func_start sub_02077894 +sub_02077894: ; 0x02077894 + push {r4-r7, lr} + sub sp, #0x14 + str r0, [sp, #0x10] + bl sub_02006278 + add r4, r0, #0x0 + ldr r0, [sp, #0x10] + bl sub_0200628C + add r5, r0, #0x0 + mov r0, #0x56 + lsl r0, r0, #0x2 + ldrh r0, [r4, r0] + ldr r1, _02077A6C ; =0x0000FFFF + lsl r0, r0, #0x1 + add r0, r4, r0 + add r0, #0xd8 + strh r1, [r0, #0x0] + ldr r0, [r4, #0x0] + cmp r0, #0x1 + bne _020778DE + mov r0, #0x12 + bl sub_020669C0 + mov r3, #0xa + str r3, [sp, #0x0] + str r3, [sp, #0x4] + str r3, [sp, #0x8] + str r3, [sp, #0xc] + ldr r1, [r4, #0x4] + add r6, r0, #0x0 + mov r2, #0x5 + bl sub_02066ACC + add r0, r6, #0x0 + bl sub_02016A18 +_020778DE: + mov r1, #0x56 + lsl r1, r1, #0x2 + ldrh r0, [r4, r1] + cmp r0, #0x0 + beq _02077904 + add r0, r4, #0x0 + sub r1, #0x40 + add r0, #0xd8 + add r1, r4, r1 + bl sub_020022A4 + cmp r0, #0x0 + beq _02077904 + add r0, r4, #0x0 + add r0, #0xd8 + bl sub_0207786C + cmp r0, #0x0 + beq _0207790E +_02077904: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_020777D4 + b _02077932 +_0207790E: + mov r0, #0x46 + lsl r0, r0, #0x2 + add r1, r4, #0x0 + add r0, r4, r0 + add r1, #0xd8 + bl sub_02002248 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r0, #0x1c + add r1, #0xd8 + bl sub_02002248 + add r1, r4, #0x0 + ldr r0, [r5, #0x18] + add r1, #0xd8 + bl sub_02021E28 +_02077932: + mov r0, #0x61 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02021A20 + mov r7, #0xe7 + mov r6, #0x0 + add r5, r4, #0x0 + lsl r7, r7, #0x2 +_02077944: + ldr r0, [r5, r7] + bl sub_0200621C + add r6, r6, #0x1 + add r5, r5, #0x4 + cmp r6, #0x7 + blt _02077944 + mov r0, #0xb1 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02009C0C + mov r0, #0xb5 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02009C0C + mov r0, #0xb2 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02009E04 + mov r0, #0xb6 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02009E04 + mov r7, #0xad + mov r6, #0x0 + add r5, r4, #0x0 + lsl r7, r7, #0x2 +_02077982: + ldr r0, [r5, r7] + bl sub_02008E2C + add r6, r6, #0x1 + add r5, r5, #0x4 + cmp r6, #0x4 + blt _02077982 + mov r0, #0x62 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0201FD58 + bl sub_02009FA0 + ldr r1, _02077A70 ; =0x000004AC + mov r0, #0x12 + ldr r1, [r4, r1] + bl sub_02016A8C + ldr r0, [r4, #0x0] + cmp r0, #0x1 + bne _020779C2 + ldr r1, _02077A74 ; =0x000004B4 + mov r0, #0x12 + ldr r1, [r4, r1] + bl sub_02016A8C + ldr r1, _02077A78 ; =0x000004BC + mov r0, #0x12 + ldr r1, [r4, r1] + bl sub_02016A8C +_020779C2: + mov r0, #0x16 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x7 + bl sub_020178A0 + bl sub_0201D12C + bl sub_0201E08C + mov r0, #0x16 + lsl r0, r0, #0x4 + mov r1, #0xee + lsl r1, r1, #0x2 + ldr r0, [r4, r0] + add r1, r4, r1 + bl sub_02077FA8 + mov r0, #0x0 + bl sub_02002CC0 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02077A7C ; =0xFFFF1FFF + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x2 + bl sub_02002CF8 + mov r0, #0x6 + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + cmp r0, #0x0 + beq _02077A0C + bl sub_02021A20 +_02077A0C: + mov r0, #0x5e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02021A20 + mov r0, #0x5f + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02021A20 + mov r0, #0x5d + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0200A8B8 + mov r0, #0x17 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_0200A8B8 + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0200A8B8 + mov r0, #0x5a + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0200AB18 + ldr r0, [sp, #0x10] + bl sub_0200627C + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + mov r0, #0x12 + bl sub_020168D0 + ldr r0, _02077A80 ; =0x021C4918 + mov r1, #0x0 + strb r1, [r0, #0x5] + bl sub_0201E7A0 + mov r0, #0x1 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02077A6C: .word 0x0000FFFF +_02077A70: .word 0x000004AC +_02077A74: .word 0x000004B4 +_02077A78: .word 0x000004BC +_02077A7C: .word 0xFFFF1FFF +_02077A80: .word 0x021C4918 + + thumb_func_start sub_02077A84 +sub_02077A84: ; 0x02077A84 + push {r3-r7, lr} + add r6, r1, #0x0 + mov r1, #0x50 + str r0, [sp, #0x0] + add r7, r2, #0x0 + add r5, r3, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + str r6, [r4, #0x0] + str r7, [r4, #0x4] + str r5, [r4, #0xc] + mov r0, #0x0 + str r0, [r4, #0x14] + ldr r0, _02077AC0 ; =0x0000FFFF + ldr r1, [sp, #0x0] + strh r0, [r4, #0x1c] + add r0, r5, #0x1 + bl sub_020219F4 + str r0, [r4, #0x18] + mov r1, #0x0 + str r1, [r4, #0x44] + str r1, [r4, #0x48] + ldr r0, [sp, #0x18] + str r1, [r4, #0x10] + str r0, [r4, #0x4c] + str r1, [r4, #0x8] + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_02077AC0: .word 0x0000FFFF + + thumb_func_start sub_02077AC4 +sub_02077AC4: ; 0x02077AC4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x18] + cmp r0, #0x0 + bne _02077AD2 + bl sub_02020C2C +_02077AD2: + cmp r4, #0x0 + bne _02077ADA + bl sub_02020C2C +_02077ADA: + ldr r0, [r4, #0x18] + bl sub_02021A20 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02077AE8 +sub_02077AE8: ; 0x02077AE8 + push {r3, lr} + bl sub_0201C30C + bl sub_02009F80 + ldr r3, _02077B00 ; =0x027E0000 + ldr r1, _02077B04 ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + .balign 4 +_02077B00: .word 0x027E0000 +_02077B04: .word 0x00003FF8 + + thumb_func_start sub_02077B08 +sub_02077B08: ; 0x02077B08 + ldr r2, [r1, #0x0] + str r2, [r0, #0x0] + ldr r2, [r1, #0x4] + str r2, [r0, #0x4] + ldr r2, [r1, #0x8] + str r2, [r0, #0x8] + ldr r2, [r1, #0xc] + str r2, [r0, #0xc] + ldr r2, [r1, #0x10] + str r2, [r0, #0x10] + ldr r1, [r1, #0x4c] + str r1, [r0, #0x18] + bx lr + .balign 4 + + thumb_func_start sub_02077B24 +sub_02077B24: ; 0x02077B24 + push {r4, lr} + sub sp, #0x28 + ldr r4, _02077B40 ; =0x020FA12C + add r3, sp, #0x0 + mov r2, #0x5 +_02077B2E: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02077B2E + add r0, sp, #0x0 + bl sub_0201E66C + add sp, #0x28 + pop {r4, pc} + .balign 4 +_02077B40: .word 0x020FA12C + + thumb_func_start sub_02077B44 +sub_02077B44: ; 0x02077B44 + push {r3-r5, lr} + sub sp, #0x80 + ldr r5, _02077C68 ; =0x020F9D4C + add r3, sp, #0x70 + add r4, r0, #0x0 + add r2, r3, #0x0 + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + bl sub_02016BBC + ldr r5, _02077C6C ; =0x020F9EC0 + add r3, sp, #0x54 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x0 + str r0, [r3, #0x0] + add r0, r4, #0x0 + add r3, r1, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02018744 + ldr r5, _02077C70 ; =0x020F9FA0 + add r3, sp, #0x38 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x1 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02018744 + ldr r5, _02077C74 ; =0x020FA064 + add r3, sp, #0x1c + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x2 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02018744 + ldr r5, _02077C78 ; =0x020F9DFC + add r3, sp, #0x0 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x4 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_02018744 + mov r0, #0x0 + bl sub_02077C84 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + mov r3, #0x12 + bl sub_02017F18 + mov r0, #0x4 + mov r1, #0x20 + mov r2, #0x0 + mov r3, #0x12 + bl sub_02017F18 + mov r0, #0x1 + lsl r0, r0, #0x1a + add r4, r0, #0x0 + ldr r2, [r0, #0x0] + ldr r1, _02077C7C ; =0xFFFF1FFF + add r4, #0x48 + and r2, r1 + lsr r1, r0, #0xd + orr r1, r2 + str r1, [r0, #0x0] + ldrh r3, [r4, #0x0] + mov r2, #0x3f + mov r1, #0x14 + bic r3, r2 + orr r1, r3 + mov r3, #0x20 + orr r1, r3 + strh r1, [r4, #0x0] + add r4, r0, #0x0 + add r4, #0x4a + ldrh r5, [r4, #0x0] + mov r1, #0x1f + bic r5, r2 + orr r1, r5 + orr r1, r3 + strh r1, [r4, #0x0] + add r1, r0, #0x0 + mov r2, #0xff + add r1, #0x40 + strh r2, [r1, #0x0] + mov r1, #0x40 + add r0, #0x44 + strh r1, [r0, #0x0] + ldr r0, _02077C80 ; =0x04001050 + mov r1, #0x0 + strh r1, [r0, #0x0] + add sp, #0x80 + pop {r3-r5, pc} + .balign 4 +_02077C68: .word 0x020F9D4C +_02077C6C: .word 0x020F9EC0 +_02077C70: .word 0x020F9FA0 +_02077C74: .word 0x020FA064 +_02077C78: .word 0x020F9DFC +_02077C7C: .word 0xFFFF1FFF +_02077C80: .word 0x04001050 + + thumb_func_start sub_02077C84 +sub_02077C84: ; 0x02077C84 + push {r4, lr} + add r4, r0, #0x0 + lsl r1, r4, #0x18 + mov r0, #0x1 + lsr r1, r1, #0x18 + bl sub_0201E6E4 + lsl r1, r4, #0x18 + mov r0, #0x2 + lsr r1, r1, #0x18 + bl sub_0201E6E4 + lsl r1, r4, #0x18 + mov r0, #0x4 + lsr r1, r1, #0x18 + bl sub_0201E6E4 + mov r0, #0x8 + mov r1, #0x0 + bl sub_0201E6E4 + lsl r1, r4, #0x18 + mov r0, #0x10 + lsr r1, r1, #0x18 + bl sub_0201E6E4 + lsl r1, r4, #0x18 + mov r0, #0x1 + lsr r1, r1, #0x18 + bl sub_0201E74C + mov r0, #0x2 + mov r1, #0x0 + bl sub_0201E74C + mov r0, #0x10 + mov r1, #0x0 + bl sub_0201E74C + pop {r4, pc} + + thumb_func_start sub_02077CD4 +sub_02077CD4: ; 0x02077CD4 + push {r3-r7, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_0200628C + add r7, r0, #0x0 + ldr r0, _02077E7C ; =0x0000045C + mov r1, #0x4 + str r1, [r4, r0] + add r0, #0xc + add r0, r4, r0 + mov r1, #0x0 + bl sub_02078BA8 + ldr r6, _02077E80 ; =0x00000464 + mov r0, #0x16 + ldr r3, [r4, r6] + mov r5, #0xc + lsl r0, r0, #0x4 + lsl r1, r3, #0x18 + mul r5, r3 + add r3, r4, r5 + add r5, r6, #0x4 + ldr r0, [r4, r0] + ldr r3, [r3, r5] + lsr r1, r1, #0x18 + mov r2, #0x0 + bl sub_020179E0 + ldr r3, [r4, r6] + mov r5, #0xc + mov r0, #0x16 + lsl r0, r0, #0x4 + lsl r1, r3, #0x18 + mul r5, r3 + add r3, r4, r5 + add r6, #0x8 + ldr r0, [r4, r0] + ldr r3, [r3, r6] + lsr r1, r1, #0x18 + mov r2, #0x3 + bl sub_020179E0 + ldr r6, _02077E80 ; =0x00000464 + mov r0, #0x1 + ldr r1, [r4, r6] + mov r5, #0xc + add r3, r1, #0x0 + eor r3, r0 + mov r0, #0x16 + lsl r0, r0, #0x4 + lsl r1, r3, #0x18 + mul r5, r3 + add r3, r4, r5 + add r5, r6, #0x4 + ldr r0, [r4, r0] + ldr r3, [r3, r5] + lsr r1, r1, #0x18 + mov r2, #0x0 + bl sub_020179E0 + ldr r1, [r4, r6] + mov r0, #0x1 + add r3, r1, #0x0 + eor r3, r0 + mov r5, #0xc + mov r0, #0x16 + lsl r0, r0, #0x4 + lsl r1, r3, #0x18 + mul r5, r3 + add r3, r4, r5 + add r6, #0x8 + ldr r0, [r4, r0] + ldr r3, [r3, r6] + lsr r1, r1, #0x18 + mov r2, #0x3 + bl sub_020179E0 + mov r1, #0x46 + ldr r0, _02077E84 ; =0x0000FFFF + lsl r1, r1, #0x2 + strh r0, [r4, r1] + ldr r0, [r7, #0x18] + cmp r0, #0x0 + beq _02077D88 + add r1, r4, r1 + mov r2, #0x20 + bl sub_02021EF0 +_02077D88: + add r1, r4, #0x0 + mov r0, #0x1 + add r1, #0xd8 + mov r2, #0x40 + blx sub_020CE1C8 + ldr r0, [r4, #0x0] + cmp r0, #0x1 + bne _02077DCE + mov r0, #0x12 + bl sub_020669C0 + mov r3, #0xa + str r3, [sp, #0x0] + str r3, [sp, #0x4] + str r3, [sp, #0x8] + str r3, [sp, #0xc] + ldr r1, [r4, #0x4] + add r5, r0, #0x0 + mov r2, #0x5 + bl sub_02066ACC + add r0, r5, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x5a + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200AC60 + add r0, r5, #0x0 + bl sub_02016A18 +_02077DCE: + ldr r0, [r7, #0x44] + cmp r0, #0x0 + beq _02077DD8 + mov r0, #0x1 + str r0, [r4, #0x14] +_02077DD8: + ldr r2, [r4, #0x0] + mov r1, #0x5a + lsl r1, r1, #0x2 + lsl r3, r2, #0x2 + ldr r2, _02077E88 ; =0x020FA0A0 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r2, [r2, r3] + ldr r1, [r4, r1] + mov r3, #0x12 + bl sub_0200A9C4 + mov r1, #0x5e + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, r1, #0x0 + sub r0, #0x10 + sub r1, #0xc + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x8 + mov r3, #0x12 + bl sub_0200A9C4 + mov r1, #0x5f + lsl r1, r1, #0x2 + str r0, [r4, r1] + sub r1, #0x10 + ldr r0, [r4, r1] + mov r1, #0x7 + bl sub_0200A914 + mov r1, #0x61 + lsl r1, r1, #0x2 + str r0, [r4, r1] + sub r1, #0x6c + add r0, r4, r1 + bl sub_02002288 + mov r1, #0x56 + lsl r1, r1, #0x2 + strh r0, [r4, r1] + mov r0, #0x0 + str r0, [r4, #0x1c] + mov r1, #0x1 + str r1, [r4, #0x20] + sub r1, r1, #0x2 + str r1, [r4, #0x24] + str r1, [r4, #0x28] + str r0, [r4, #0x30] + ldr r2, _02077E8C ; =0x00000484 + str r0, [r4, #0x34] + str r1, [r4, r2] + add r1, r2, #0x4 + str r0, [r4, r1] + add r2, #0x8 + str r0, [r4, r2] + ldr r1, [r4, #0xc] + ldr r2, _02077E84 ; =0x0000FFFF + lsl r1, r1, #0x1 + add r1, r4, r1 + add r1, #0xd8 + strh r2, [r1, #0x0] + mov r1, #0x49 + add r3, r4, #0x0 + add r2, r0, #0x0 + lsl r1, r1, #0x4 +_02077E5E: + add r0, r0, #0x1 + str r2, [r3, r1] + add r3, r3, #0x4 + cmp r0, #0x7 + blt _02077E5E + ldr r0, [r4, #0x0] + cmp r0, #0x4 + beq _02077E76 + mov r0, #0x49 + mov r1, #0x1 + lsl r0, r0, #0x4 + str r1, [r4, r0] +_02077E76: + add sp, #0x10 + pop {r3-r7, pc} + nop +_02077E7C: .word 0x0000045C +_02077E80: .word 0x00000464 +_02077E84: .word 0x0000FFFF +_02077E88: .word 0x020FA0A0 +_02077E8C: .word 0x00000484 + + thumb_func_start sub_02077E90 +sub_02077E90: ; 0x02077E90 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + add r0, r1, #0x0 + bl sub_0200628C + add r4, r0, #0x0 + ldr r0, [r4, #0x44] + cmp r0, #0x0 + beq _02077FA0 + mov r0, #0xc8 + mov r1, #0x12 + bl sub_020219F4 + add r7, r0, #0x0 + mov r0, #0x6 + mov r1, #0x0 + lsl r0, r0, #0x6 + str r1, [r5, r0] + ldr r0, [r4, #0x48] + bl sub_0206B330 + add r6, r0, #0x0 + ldr r0, [r4, #0x48] + bl sub_0206B334 + str r0, [sp, #0x10] + mov r0, #0x5a + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r2, [r4, #0x48] + mov r1, #0x1 + add r3, r6, #0x0 + bl sub_0200B410 + ldr r0, [sp, #0x10] + cmp r6, r0 + beq _02077EF4 + mov r0, #0x5a + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r2, [r4, #0x48] + ldr r3, [sp, #0x10] + mov r1, #0x2 + bl sub_0200B410 + ldr r0, [r4, #0x44] + add r0, r0, #0x2 + str r0, [r4, #0x44] + b _02077F04 +_02077EF4: + mov r0, #0x5a + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r2, [r4, #0x48] + mov r1, #0x2 + add r3, r6, #0x0 + bl sub_0200B410 +_02077F04: + mov r0, #0x56 + lsl r0, r0, #0x2 + ldrh r0, [r5, r0] + cmp r0, #0x0 + beq _02077F1A + add r0, r5, #0x0 + add r0, #0xd8 + bl sub_0207786C + cmp r0, #0x0 + beq _02077F50 +_02077F1A: + mov r0, #0x12 + bl sub_020669C0 + mov r3, #0x0 + str r3, [sp, #0x0] + str r3, [sp, #0x4] + str r3, [sp, #0x8] + str r3, [sp, #0xc] + ldr r1, [r5, #0x4] + add r6, r0, #0x0 + mov r2, #0x1 + bl sub_02066ACC + add r0, r6, #0x0 + bl sub_020690E4 + add r2, r0, #0x0 + mov r0, #0x5a + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200AC60 + add r0, r6, #0x0 + bl sub_02016A18 + b _02077F7E +_02077F50: + mov r1, #0x56 + lsl r1, r1, #0x2 + ldrh r1, [r5, r1] + ldr r0, _02077FA4 ; =0x0000FFFF + lsl r1, r1, #0x1 + add r1, r5, r1 + add r1, #0xd8 + strh r0, [r1, #0x0] + add r1, r5, #0x0 + add r0, r7, #0x0 + add r1, #0xd8 + bl sub_02021E28 + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0x5a + str r1, [sp, #0x4] + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r2, r7, #0x0 + add r3, r1, #0x0 + bl sub_0200ABB4 +_02077F7E: + mov r1, #0x5a + lsl r1, r1, #0x2 + ldr r0, [r5, r1] + add r1, #0xc + ldr r1, [r5, r1] + ldr r2, [r4, #0x44] + mov r3, #0x12 + bl sub_0200A9C4 + mov r1, #0x6 + lsl r1, r1, #0x6 + str r0, [r5, r1] + mov r0, #0x1 + str r0, [r5, #0x14] + add r0, r7, #0x0 + bl sub_02021A20 +_02077FA0: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02077FA4: .word 0x0000FFFF + + thumb_func_start sub_02077FA8 +sub_02077FA8: ; 0x02077FA8 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + mov r4, #0x0 +_02077FB0: + add r0, r5, #0x0 + bl sub_02019178 + add r4, r4, #0x1 + add r5, #0x10 + cmp r4, #0xa + blt _02077FB0 + add r0, r6, #0x0 + mov r1, #0x4 + bl sub_020178A0 + add r0, r6, #0x0 + mov r1, #0x2 + bl sub_020178A0 + add r0, r6, #0x0 + mov r1, #0x1 + bl sub_020178A0 + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_020178A0 + mov r0, #0x12 + add r1, r6, #0x0 + bl sub_02016A8C + pop {r4-r6, pc} + + thumb_func_start sub_02077FE8 +sub_02077FE8: ; 0x02077FE8 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + mov r0, #0x16 + lsl r0, r0, #0x4 + ldr r4, [r5, r0] + mov r1, #0x0 + mov r0, #0x60 + str r0, [sp, #0x0] + mov r0, #0x12 + str r0, [sp, #0x4] + mov r0, #0x1f + add r2, r1, #0x0 + add r3, r1, #0x0 + bl sub_02006930 + mov r0, #0x20 + str r0, [sp, #0x0] + mov r0, #0x12 + str r0, [sp, #0x4] + mov r0, #0xc + add r1, r0, #0x0 + mov r2, #0x4 + mov r3, #0x0 + bl sub_02006930 + mov r0, #0x4 + mov r1, #0x0 + bl sub_02017FE4 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x2 + lsl r0, r0, #0xc + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + mov r0, #0x12 + mov r1, #0x2 + str r0, [sp, #0xc] + mov r0, #0x1f + add r2, r4, #0x0 + add r3, r1, #0x0 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x6 + lsl r0, r0, #0x8 + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + mov r0, #0x12 + str r0, [sp, #0xc] + mov r0, #0x1f + mov r1, #0x4 + add r2, r4, #0x0 + mov r3, #0x2 + bl sub_020068C8 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x2 + lsl r0, r0, #0xc + str r0, [sp, #0x4] + mov r3, #0x1 + str r3, [sp, #0x8] + mov r0, #0x12 + str r0, [sp, #0xc] + mov r0, #0x1f + mov r1, #0x2 + add r2, r4, #0x0 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0xe + lsl r0, r0, #0x6 + str r0, [sp, #0x4] + mov r3, #0x1 + str r3, [sp, #0x8] + mov r0, #0x12 + str r0, [sp, #0xc] + mov r0, #0x1f + mov r1, #0x6 + add r2, r4, #0x0 + bl sub_020068C8 + mov r3, #0x0 + mov r0, #0xe + str r3, [sp, #0x0] + lsl r0, r0, #0x6 + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + mov r0, #0x12 + str r0, [sp, #0xc] + mov r0, #0x1f + mov r1, #0x7 + add r2, r4, #0x0 + bl sub_020068C8 + mov r1, #0x6 + mov r0, #0x0 + lsl r1, r1, #0x6 + mov r2, #0x12 + bl sub_02002EEC + ldr r0, [r5, #0x18] + bl sub_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x12 + str r0, [sp, #0x4] + mov r0, #0x16 + lsl r0, r0, #0x4 + mov r1, #0x4 + add r2, r1, #0x0 + ldr r0, [r5, r0] + add r2, #0xfc + mov r3, #0xa + bl sub_0200CD68 + mov r1, #0x6 + mov r0, #0x4 + lsl r1, r1, #0x6 + mov r2, #0x12 + bl sub_02002EEC + mov r3, #0x4b + mov r0, #0x12 + lsl r3, r3, #0x4 + str r0, [sp, #0x0] + mov r0, #0x1f + mov r1, #0x10 + mov r2, #0x1 + add r3, r5, r3 + bl sub_02006BB0 + ldr r1, _0207810C ; =0x000004AC + str r0, [r5, r1] + add sp, #0x10 + pop {r3-r5, pc} + nop +_0207810C: .word 0x000004AC + + thumb_func_start sub_02078110 +sub_02078110: ; 0x02078110 + push {r4, lr} + sub sp, #0x10 + ldr r4, _0207813C ; =0x020F9D5C + add r3, sp, #0x0 + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + bl sub_0201D040 + mov r0, #0x14 + mov r1, #0x12 + bl sub_0201E00C + bl sub_0201D168 + bl sub_0201E0BC + add sp, #0x10 + pop {r4, pc} + .balign 4 +_0207813C: .word 0x020F9D5C + + thumb_func_start sub_02078140 +sub_02078140: ; 0x02078140 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + blx sub_020B0FC0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r1, #0x80 + str r1, [sp, #0x4] + str r0, [sp, #0x8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x12 + str r2, [sp, #0x10] + add r2, r0, #0x0 + bl sub_02009EAC + mov r1, #0x63 + lsl r1, r1, #0x2 + mov r0, #0x2c + add r1, r5, r1 + mov r2, #0x12 + bl sub_02008C9C + mov r1, #0x62 + lsl r1, r1, #0x2 + str r0, [r5, r1] + add r0, r1, #0x4 + mov r2, #0x1 + add r0, r5, r0 + mov r1, #0x0 + lsl r2, r2, #0x14 + bl sub_02008D24 + mov r7, #0xad + mov r6, #0x0 + add r4, r5, #0x0 + lsl r7, r7, #0x2 +_0207818C: + mov r0, #0x2 + add r1, r6, #0x0 + mov r2, #0x12 + bl sub_02008DEC + str r0, [r4, r7] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, #0x4 + blt _0207818C + mov r0, #0x0 + str r0, [sp, #0x0] + mov r3, #0x1 + str r3, [sp, #0x4] + mov r0, #0x12 + str r0, [sp, #0x8] + mov r0, #0xad + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x1f + mov r2, #0xa + bl sub_02008F34 + mov r1, #0xb1 + lsl r1, r1, #0x2 + str r0, [r5, r1] + mov r3, #0x0 + str r3, [sp, #0x0] + mov r2, #0x1 + str r2, [sp, #0x4] + mov r0, #0x9 + str r0, [sp, #0x8] + mov r0, #0x12 + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x1f + bl sub_02008FEC + mov r1, #0xb2 + lsl r1, r1, #0x2 + str r0, [r5, r1] + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + mov r0, #0x12 + sub r1, #0xc + str r0, [sp, #0x8] + ldr r0, [r5, r1] + mov r1, #0x1f + mov r2, #0xc + mov r3, #0x1 + bl sub_020090AC + mov r1, #0xb3 + lsl r1, r1, #0x2 + str r0, [r5, r1] + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x3 + str r0, [sp, #0x4] + mov r0, #0x12 + sub r1, #0xc + str r0, [sp, #0x8] + ldr r0, [r5, r1] + mov r1, #0x1f + mov r2, #0xe + mov r3, #0x1 + bl sub_020090AC + mov r1, #0x2d + lsl r1, r1, #0x4 + str r0, [r5, r1] + ldr r0, [r5, #0x0] + cmp r0, #0x1 + bne _02078272 + ldr r0, [r5, #0x4] + ldr r2, [r5, #0x8] + mov r1, #0x0 + bl sub_0206B6D4 + ldr r3, _0207831C ; =0x000004B8 + add r1, r0, #0x0 + mov r0, #0x12 + str r0, [sp, #0x0] + mov r0, #0x13 + mov r2, #0x0 + add r3, r5, r3 + bl sub_02006BB0 + ldr r1, _02078320 ; =0x000004B4 + str r0, [r5, r1] + add r0, r1, #0x4 + mov r1, #0x2 + ldr r0, [r5, r0] + lsl r1, r1, #0x8 + blx sub_020CC15C + bl sub_0206B888 + add r1, r0, #0x0 + mov r0, #0x13 + lsl r2, r0, #0x6 + add r2, r5, r2 + mov r3, #0x12 + bl sub_02006C08 + ldr r1, _02078324 ; =0x000004BC + str r0, [r5, r1] + add r0, r1, #0x4 + ldr r0, [r5, r0] + mov r1, #0x80 + blx sub_020CC15C +_02078272: + mov r3, #0x1 + str r3, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + mov r0, #0x12 + str r0, [sp, #0x8] + mov r0, #0xad + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x1f + mov r2, #0xb + bl sub_02008F34 + mov r1, #0xb5 + lsl r1, r1, #0x2 + str r0, [r5, r1] + mov r2, #0x1 + str r2, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + mov r0, #0x3 + str r0, [sp, #0x8] + mov r0, #0x12 + sub r1, #0x1c + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x1f + mov r3, #0x0 + bl sub_02008FEC + mov r1, #0xb6 + lsl r1, r1, #0x2 + str r0, [r5, r1] + mov r3, #0x1 + str r3, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + mov r0, #0x12 + sub r1, #0x1c + str r0, [sp, #0x8] + ldr r0, [r5, r1] + mov r1, #0x1f + mov r2, #0xd + bl sub_020090AC + mov r1, #0xb7 + lsl r1, r1, #0x2 + str r0, [r5, r1] + mov r3, #0x1 + str r3, [sp, #0x0] + mov r0, #0x3 + str r0, [sp, #0x4] + mov r0, #0x12 + sub r1, #0x1c + str r0, [sp, #0x8] + ldr r0, [r5, r1] + mov r1, #0x1f + mov r2, #0xf + bl sub_020090AC + mov r1, #0x2e + lsl r1, r1, #0x4 + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + bl sub_02009A50 + mov r0, #0xb5 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_02009A50 + mov r0, #0xb2 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_02009CF0 + mov r0, #0xb6 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_02009CF0 + add sp, #0x14 + pop {r4-r7, pc} + nop +_0207831C: .word 0x000004B8 +_02078320: .word 0x000004B4 +_02078324: .word 0x000004BC + + thumb_func_start sub_02078328 +sub_02078328: ; 0x02078328 + push {r3-r4, lr} + sub sp, #0xc + add r4, r1, #0x0 + ldr r0, [r4, #0x0] + bl sub_0202011C + ldr r1, [r0, #0x0] + ldr r0, [r4, #0x8] + add r0, r1, r0 + str r0, [sp, #0x0] + ldr r0, [r4, #0xc] + lsl r1, r0, #0x4 + ldr r0, _02078358 ; =0x020FA1D8 + ldr r0, [r0, r1] + add r1, sp, #0x0 + lsl r0, r0, #0xc + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, [r4, #0x4] + bl sub_02020044 + add sp, #0xc + pop {r3-r4, pc} + .balign 4 +_02078358: .word 0x020FA1D8 + + thumb_func_start sub_0207835C +sub_0207835C: ; 0x0207835C + push {r4-r7, lr} + sub sp, #0x5c + mov r1, #0x0 + add r6, r0, #0x0 + str r1, [sp, #0x0] + sub r0, r1, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r2, #0xad + str r1, [sp, #0xc] + mov r0, #0x1 + lsl r2, r2, #0x2 + str r0, [sp, #0x10] + ldr r0, [r6, r2] + add r3, r1, #0x0 + str r0, [sp, #0x14] + add r0, r2, #0x4 + ldr r0, [r6, r0] + str r0, [sp, #0x18] + add r0, r2, #0x0 + add r0, #0x8 + ldr r0, [r6, r0] + str r0, [sp, #0x1c] + add r0, r2, #0x0 + add r0, #0xc + ldr r0, [r6, r0] + add r2, #0x30 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r6, r2 + add r2, r1, #0x0 + str r1, [sp, #0x28] + bl sub_02008AA4 + mov r1, #0x1 + mov r3, #0xad + str r1, [sp, #0x0] + sub r0, r1, #0x2 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r3, r3, #0x2 + ldr r2, [r6, r3] + str r2, [sp, #0x14] + add r2, r3, #0x4 + ldr r2, [r6, r2] + str r2, [sp, #0x18] + add r2, r3, #0x0 + add r2, #0x8 + ldr r2, [r6, r2] + str r2, [sp, #0x1c] + add r2, r3, #0x0 + add r2, #0xc + ldr r2, [r6, r2] + add r3, #0x54 + str r2, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r6, r3 + add r2, r1, #0x0 + add r3, r1, #0x0 + bl sub_02008AA4 + mov r0, #0x62 + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + mov r1, #0x2 + str r0, [sp, #0x2c] + mov r0, #0xb9 + lsl r0, r0, #0x2 + add r0, r6, r0 + str r0, [sp, #0x30] + mov r0, #0x6 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + str r0, [sp, #0x38] + lsr r0, r1, #0x5 + mov r7, #0x0 + str r1, [sp, #0x34] + str r7, [sp, #0x3c] + str r0, [sp, #0x40] + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, sp, #0x2c + strh r7, [r0, #0x20] + mov r0, #0x1 + str r0, [sp, #0x50] + str r0, [sp, #0x54] + mov r0, #0x12 + ldr r4, _02078528 ; =0x020FA1D4 + str r0, [sp, #0x58] + add r5, r6, #0x0 +_02078418: + ldr r0, [r4, #0x0] + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r4, #0x4] + lsl r0, r0, #0xc + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl sub_0201FE94 + mov r1, #0xcb + lsl r1, r1, #0x2 + str r0, [r5, r1] + add r0, r1, #0x0 + ldr r0, [r5, r0] + mov r1, #0x1 + bl sub_020200BC + mov r0, #0xcb + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r1, [r4, #0x8] + bl sub_02020130 + mov r0, #0xcb + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r1, [r4, #0xc] + bl sub_02020310 + add r7, r7, #0x1 + add r4, #0x10 + add r5, r5, #0x4 + cmp r7, #0x9 + blt _02078418 + mov r0, #0xcf + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + mov r1, #0x0 + bl sub_020200A0 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + mov r1, #0x0 + bl sub_020200A0 + ldr r7, _02078528 ; =0x020FA1D4 + mov r5, #0x0 + add r4, r6, #0x0 +_0207847A: + ldr r0, _0207852C ; =sub_02078328 + mov r1, #0x10 + mov r2, #0x5 + mov r3, #0x12 + bl sub_020061E8 + mov r1, #0xe7 + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, r1, #0x0 + ldr r0, [r4, r0] + bl sub_0201B6C8 + mov r1, #0xd2 + lsl r1, r1, #0x2 + ldr r1, [r6, r1] + str r1, [r0, #0x0] + mov r1, #0xcb + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r4, r4, #0x4 + str r1, [r0, #0x4] + ldr r1, [r7, #0x0] + add r7, #0x10 + lsl r1, r1, #0xc + str r1, [r0, #0x8] + str r5, [r0, #0xc] + add r5, r5, #0x1 + cmp r5, #0x7 + blt _0207847A + ldr r2, [r6, #0xc] + mov r7, #0x0 + cmp r2, #0x0 + ble _020784FA + mov r5, #0x50 + add r4, r6, #0x0 +_020784C2: + lsl r0, r5, #0xc + str r0, [sp, #0x34] + mov r0, #0x27 + lsl r0, r0, #0xc + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl sub_0201FE94 + mov r1, #0xd9 + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, r1, #0x0 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_020200BC + mov r0, #0xd9 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x2b + bl sub_02020130 + ldr r2, [r6, #0xc] + add r7, r7, #0x1 + add r5, #0xc + add r4, r4, #0x4 + cmp r7, r2 + blt _020784C2 +_020784FA: + mov r1, #0x56 + lsl r1, r1, #0x2 + mov r0, #0xd9 + lsl r0, r0, #0x2 + ldrh r1, [r6, r1] + add r0, r6, r0 + bl sub_02079710 + add r0, r6, #0x0 + add r1, sp, #0x2c + bl sub_02078530 + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E6E4 + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E74C + add sp, #0x5c + pop {r4-r7, pc} + nop +_02078528: .word 0x020FA1D4 +_0207852C: .word sub_02078328 + 1 + + thumb_func_start sub_02078530 +sub_02078530: ; 0x02078530 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r0, #0x6 + add r5, r1, #0x0 + lsl r0, r0, #0xe + str r0, [r5, #0x8] + mov r0, #0x2 + lsl r0, r0, #0xe + str r0, [r5, #0xc] + add r0, r5, #0x0 + bl sub_0201FE94 + mov r1, #0xe5 + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0x1 + bl sub_020200BC + ldr r0, [r4, #0x0] + cmp r0, #0x7 + bhi _02078626 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r6, r6, #0x1 + lsl r0, r5, #0x1 + lsl r0, r6, #0 + lsl r2, r3, #0x1 + lsl r4, r1, #0x1 + lsl r6, r7, #0 + lsl r2, r3, #0x1 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + bne _0207858C + mov r0, #0xe5 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x30 + bl sub_02020130 + pop {r3-r5, pc} +_0207858C: + mov r0, #0xe5 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x31 + bl sub_02020130 + pop {r3-r5, pc} +_0207859A: + .byte 0xE5, 0x20, 0x80, 0x00, 0x20, 0x58 + .byte 0x33, 0x21, 0xA7, 0xF7, 0xC5, 0xFD, 0x38, 0xBD, 0xE5, 0x20, 0x80, 0x00, 0x20, 0x58, 0x37, 0x21 + .byte 0xA7, 0xF7, 0xBE, 0xFD, 0x38, 0xBD, 0xE5, 0x20, 0x80, 0x00, 0x20, 0x58, 0x36, 0x21, 0xA7, 0xF7 + .byte 0xB7, 0xFD, 0x38, 0xBD, 0xE5, 0x20, 0x80, 0x00, 0x20, 0x58, 0x35, 0x21, 0xA7, 0xF7, 0xB0, 0xFD + .byte 0x38, 0xBD, 0xE5, 0x20, 0x80, 0x00, 0x20, 0x58, 0x2F, 0x21, 0xA7, 0xF7, 0xA9, 0xFD, 0x38, 0xBD + .byte 0xE5, 0x20, 0x80, 0x00, 0x20, 0x58, 0x32, 0x21, 0xA7, 0xF7, 0xA2, 0xFD, 0x20, 0x69, 0x02, 0x28 + .byte 0x19, 0xD0, 0xE1, 0x68, 0x0D, 0x20, 0x48, 0x43, 0x50, 0x30, 0x00, 0x03, 0xA8, 0x60, 0x1B, 0x20 + .byte 0x00, 0x03, 0xE8, 0x60, 0x28, 0x1C, 0xA7, 0xF7, 0x45, 0xFC, 0xE6, 0x21, 0x89, 0x00, 0x60, 0x50 + .byte 0x20, 0x69, 0x00, 0x28, 0x60, 0x58, 0x03, 0xD1, 0x2D, 0x21, 0xA7, 0xF7, 0x89, 0xFD, 0x38, 0xBD + .byte 0x2E, 0x21, 0xA7, 0xF7, 0x85, 0xFD +_02078626: + pop {r3-r5, pc} + + thumb_func_start sub_02078628 +sub_02078628: ; 0x02078628 + push {r4-r5, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, [r4, #0x4] + cmp r0, #0x6 + bhi _020786A6 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r2, r3, #0x1 + lsl r0, r4, #0 + lsl r2, r3, #0x1 + lsl r4, r6, #0 + lsl r2, r3, #0x1 + lsl r0, r1, #0x1 + mov r0, #0x1 + ldr r1, [r4, #0x8] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + add r1, sp, #0x0 + bl sub_02020044 + b _020786A6 +_0207866C: + .byte 0x03, 0x20, 0xA1, 0x68 + .byte 0x00, 0x03, 0x08, 0x1A, 0x00, 0x90, 0x20, 0x68, 0x00, 0xA9, 0xA7, 0xF7, 0xE3, 0xFC, 0x12, 0xE0 + .byte 0x02, 0x20, 0xA1, 0x68, 0x00, 0x03, 0x08, 0x18, 0x00, 0x90, 0x20, 0x68, 0x00, 0xA9, 0xA7, 0xF7 + .byte 0xD9, 0xFC, 0x08, 0xE0, 0xA0, 0x68, 0x00, 0xA9, 0x00, 0x90, 0x20, 0x68, 0xA7, 0xF7, 0xD2, 0xFC + .byte 0x28, 0x1C, 0x8D, 0xF7, 0xBB, 0xFD +_020786A6: + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + add sp, #0xc + pop {r4-r5, pc} + + thumb_func_start sub_020786B0 +sub_020786B0: ; 0x020786B0 + push {r3-r7, lr} + sub sp, #0x28 + str r1, [sp, #0x14] + ldr r1, [sp, #0x40] + add r5, r2, #0x0 + str r1, [sp, #0x40] + ldr r1, [sp, #0x48] + mov r2, #0x1 + str r1, [sp, #0x48] + ldr r1, [sp, #0x40] + str r0, [sp, #0x10] + ldr r6, [r1, #0x0] + add r7, r3, #0x0 + add r1, r6, #0x0 + eor r1, r2 + str r1, [sp, #0x18] + ldr r1, [r5, #0x0] + ldr r4, [sp, #0x44] + cmp r1, #0x4 + bls _020786DA + b _0207887E +_020786DA: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0 + lsl r4, r2, #0x1 + lsl r2, r7, #0x1 + lsl r4, r2, #0x4 + lsl r6, r2, #0x6 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0xe + lsl r0, r0, #0x6 + str r0, [sp, #0x4] + str r2, [sp, #0x8] + mov r0, #0x12 + str r0, [sp, #0xc] + ldr r2, [sp, #0x10] + mov r0, #0x1f + add r1, r7, #0x6 + add r3, r6, #0x0 + bl sub_020068C8 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_02078BA8 + ldr r0, _02078884 ; =0x020F9D2C + lsl r2, r6, #0x4 + ldrb r1, [r0, r7] + ldr r0, [sp, #0x4c] + ldr r3, _02078888 ; =0x000E0F00 + str r0, [sp, #0x0] + ldr r0, [sp, #0x14] + add r0, r0, r2 + lsl r2, r1, #0x4 + orr r1, r2 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r2, r7, #0x0 + bl sub_0207974C + ldr r0, [r5, #0x0] + add sp, #0x28 + add r0, r0, #0x1 + str r0, [r5, #0x0] + pop {r3-r7, pc} +_0207873C: + .byte 0x31, 0x06, 0x09, 0x0E + .byte 0x00, 0x22, 0xEE, 0x23, 0x9F, 0xF7, 0x4C, 0xF9, 0x03, 0x22, 0x31, 0x06, 0x13, 0x1C, 0x04, 0x98 + .byte 0x09, 0x0E, 0x53, 0x3B, 0x9F, 0xF7, 0x44, 0xF9, 0x28, 0x68, 0x0A, 0xB0, 0x40, 0x1C, 0x28, 0x60 + .byte 0xF8, 0xBD, 0x0C, 0x21, 0x30, 0x1C, 0x48, 0x43, 0x22, 0x58, 0x07, 0x90, 0x18, 0x3A, 0x22, 0x50 + .byte 0x20, 0x58, 0x0D, 0x39, 0x88, 0x42, 0x20, 0xDA, 0x44, 0x48, 0x10, 0x21, 0x00, 0x22, 0x12, 0x23 + .byte 0x8D, 0xF7, 0x32, 0xFD, 0xA2, 0xF7, 0xA0, 0xFF, 0x07, 0x1C, 0x12, 0x98, 0xC0, 0x69, 0x38, 0x60 + .byte 0x00, 0x20, 0x78, 0x60, 0x12, 0x98, 0xC0, 0x69, 0xA7, 0xF7, 0xC0, 0xFC, 0x00, 0x68, 0xB8, 0x60 + .byte 0x12, 0x98, 0xC0, 0x69, 0xA7, 0xF7, 0xBA, 0xFC, 0x40, 0x68, 0x0A, 0x21, 0xF8, 0x60, 0x07, 0x98 + .byte 0xC9, 0x43, 0x21, 0x50, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60, 0x06, 0x98, 0x0C, 0x21, 0x07, 0x1C + .byte 0x25, 0x1D, 0x4F, 0x43, 0xE8, 0x59, 0x0A, 0x38, 0xE8, 0x51, 0x08, 0x1C, 0xEA, 0x59, 0xD0, 0x38 + .byte 0x82, 0x42, 0x01, 0xDA, 0xD0, 0x39, 0xE9, 0x51, 0x07, 0x9B, 0x31, 0x06, 0x04, 0x98, 0xE3, 0x58 + .byte 0x09, 0x0E, 0x00, 0x22, 0x9F, 0xF7, 0xFC, 0xF8, 0x06, 0x99, 0x04, 0x98, 0x09, 0x06, 0xEB, 0x59 + .byte 0x09, 0x0E, 0x03, 0x22, 0x9F, 0xF7, 0xF4, 0xF8, 0x0A, 0xB0, 0xF8, 0xBD, 0x06, 0x99, 0x0C, 0x20 + .byte 0x0A, 0x1C, 0x42, 0x43, 0x08, 0x92, 0x27, 0x1D, 0xBA, 0x58, 0x08, 0x99, 0x0A, 0x3A, 0x7A, 0x50 + .byte 0x7A, 0x58, 0x01, 0x1C, 0xD0, 0x39, 0x8A, 0x42, 0x02, 0xDA, 0x08, 0x99, 0xD0, 0x38, 0x78, 0x50 + .byte 0x0C, 0x20, 0x70, 0x43, 0x09, 0x90, 0x09, 0x9B, 0x31, 0x06, 0x04, 0x98, 0xE3, 0x58, 0x09, 0x0E + .byte 0x00, 0x22, 0x9F, 0xF7, 0xD5, 0xF8, 0x06, 0x99, 0x08, 0x9B, 0x09, 0x06, 0x04, 0x98, 0xFB, 0x58 + .byte 0x09, 0x0E, 0x03, 0x22, 0x9F, 0xF7, 0xCC, 0xF8, 0x09, 0x98, 0x0A, 0x21, 0x20, 0x58, 0xC9, 0x43 + .byte 0x88, 0x42, 0x14, 0xD1, 0x08, 0x98, 0xB9, 0x39, 0x38, 0x58, 0x88, 0x42, 0x0F, 0xD1, 0x28, 0x68 + .byte 0x22, 0x1C, 0x40, 0x1C, 0x28, 0x60, 0x10, 0x98, 0x01, 0x68, 0x01, 0x20, 0x41, 0x40, 0x10, 0x98 + .byte 0x01, 0x60, 0x04, 0x98, 0x00, 0xF0, 0x88, 0xF9, 0x05, 0x48, 0x8C, 0xF7, 0x25, 0xFE +_0207887E: + add sp, #0x28 + pop {r3-r7, pc} + nop +_02078884: .word 0x020F9D2C +_02078888: .word 0x000E0F00 +_0207888C: + .byte 0x29, 0x86, 0x07, 0x02 + .byte 0x9B, 0x06, 0x00, 0x00 + + thumb_func_start sub_02078894 +sub_02078894: ; 0x02078894 + push {r4-r5, lr} + sub sp, #0xc + add r4, r2, #0x0 + mov r2, #0x1 + mov r1, #0x0 + lsl r2, r2, #0x8 + mov r3, #0xa + add r5, r0, #0x0 + bl sub_0200D0BC + mov r3, #0x0 + str r3, [sp, #0x0] + str r3, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x1 + add r2, r4, #0x0 + str r3, [sp, #0x8] + bl sub_0201BD84 + add r0, r5, #0x0 + bl sub_020191D0 + add sp, #0xc + pop {r4-r5, pc} + + thumb_func_start sub_020788C4 +sub_020788C4: ; 0x020788C4 + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r6, r2, #0x0 + mov r0, #0x0 + add r1, r6, #0x0 + add r2, r0, #0x0 + mov r4, #0x10 + bl sub_02002E14 + cmp r0, #0x82 + ble _020788DE + mov r4, #0x0 +_020788DE: + add r0, r5, #0x0 + mov r1, #0x1 + bl sub_02019620 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, _02078908 ; =0x000E0F01 + str r1, [sp, #0x4] + str r0, [sp, #0x8] + add r0, r5, #0x0 + add r2, r6, #0x0 + add r3, r4, #0x0 + str r1, [sp, #0xc] + bl sub_0201BDE0 + add r0, r5, #0x0 + bl sub_020191D0 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02078908: .word 0x000E0F01 + + thumb_func_start sub_0207890C +sub_0207890C: ; 0x0207890C + push {r4-r7, lr} + sub sp, #0x14 + add r6, r1, #0x0 + mov r1, #0x1 + add r5, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1a + str r0, [sp, #0x4] + mov r0, #0xc + str r0, [sp, #0x8] + str r1, [sp, #0xc] + add r0, #0xf4 + str r0, [sp, #0x10] + mov r0, #0x16 + lsl r0, r0, #0x4 + mov r1, #0xee + lsl r1, r1, #0x2 + ldr r0, [r5, r0] + add r1, r5, r1 + mov r2, #0x0 + mov r3, #0x2 + bl sub_02019064 + mov r2, #0x1 + mov r1, #0xf2 + lsl r1, r1, #0x2 + str r2, [sp, #0x0] + mov r0, #0x1a + str r0, [sp, #0x4] + mov r0, #0xc + str r0, [sp, #0x8] + mov r0, #0x8e + str r2, [sp, #0xc] + lsl r0, r0, #0x2 + str r0, [sp, #0x10] + sub r0, #0xd8 + ldr r0, [r5, r0] + add r1, r5, r1 + mov r3, #0x2 + bl sub_02019064 + ldr r0, [r5, #0x0] + cmp r0, #0x4 + bne _020789AE + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0xe + lsl r0, r0, #0x6 + str r0, [sp, #0x4] + mov r3, #0x1 + mov r2, #0x16 + str r3, [sp, #0x8] + mov r0, #0x12 + str r0, [sp, #0xc] + lsl r2, r2, #0x4 + ldr r2, [r5, r2] + mov r0, #0x1f + mov r1, #0x9 + bl sub_020068C8 + mov r0, #0x46 + mov r1, #0x4 + lsl r0, r0, #0x4 + str r1, [r5, r0] + add r0, r5, #0x0 + add r0, #0x3a + bl sub_0207916C + mov r0, #0x4b + lsl r0, r0, #0x4 + ldr r1, [r5, r0] + sub r0, #0xe8 + ldr r1, [r1, #0x14] + ldr r3, _02078B6C ; =0x000E0F00 + str r1, [sp, #0x0] + ldr r1, _02078B70 ; =0x00000A0A + add r0, r5, r0 + mov r2, #0x4 + bl sub_0207974C + b _020789D8 +_020789AE: + mov r0, #0x46 + mov r1, #0x0 + lsl r0, r0, #0x4 + str r1, [r5, r0] + add r0, r5, #0x0 + add r0, #0x3a + bl sub_0207916C + mov r1, #0x4b + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + ldr r3, _02078B6C ; =0x000E0F00 + ldr r0, [r0, #0x14] + mov r2, #0x0 + str r0, [sp, #0x0] + add r0, r1, #0x0 + sub r0, #0xe8 + add r0, r5, r0 + sub r1, #0xac + bl sub_0207974C +_020789D8: + mov r2, #0x2 + str r2, [sp, #0x0] + mov r3, #0x16 + str r3, [sp, #0x4] + mov r1, #0x37 + str r2, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + lsl r1, r1, #0x4 + str r1, [sp, #0x10] + lsl r0, r3, #0x4 + add r1, #0x68 + ldr r0, [r5, r0] + add r1, r5, r1 + mov r3, #0x7 + bl sub_02019064 + ldr r1, [r5, #0xc] + mov r0, #0xc + add r2, r1, #0x0 + mul r2, r0 + asr r0, r2, #0x2 + lsr r0, r0, #0x1d + add r0, r2, r0 + asr r0, r0, #0x3 + add r4, r0, #0x1 + mov r0, #0x3 + str r0, [sp, #0x0] + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4] + mov r2, #0x2 + mov r1, #0xe7 + str r2, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + lsl r1, r1, #0x2 + mov r0, #0x16 + str r1, [sp, #0x10] + lsl r0, r0, #0x4 + add r1, #0x4c + ldr r0, [r5, r0] + add r1, r5, r1 + mov r3, #0xa + bl sub_02019064 + mov r0, #0xfa + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1 + bl sub_02019620 + mov r0, #0x3 + str r0, [sp, #0x0] + mov r0, #0x7 + str r0, [sp, #0x4] + mov r2, #0x2 + mov r1, #0xf + add r4, #0x9 + lsl r3, r4, #0x18 + str r2, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + lsl r1, r1, #0x6 + mov r0, #0x16 + str r1, [sp, #0x10] + lsl r0, r0, #0x4 + add r1, #0x78 + ldr r0, [r5, r0] + add r1, r5, r1 + lsr r3, r3, #0x18 + bl sub_02019064 + ldr r0, _02078B74 ; =0x00000438 + mov r1, #0x1 + add r0, r5, r0 + bl sub_02019620 + ldr r1, [r5, #0x0] + cmp r1, #0x5 + bne _02078A90 + mov r2, #0x61 + ldr r0, _02078B74 ; =0x00000438 + lsl r2, r2, #0x2 + ldr r2, [r5, r2] + add r0, r5, r0 + bl sub_020788C4 + ldr r0, _02078B74 ; =0x00000438 + add r0, r5, r0 + bl sub_020191D0 +_02078A90: + mov r0, #0x13 + str r0, [sp, #0x0] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r2, #0x4 + ldr r1, _02078B78 ; =0x00000448 + str r2, [sp, #0x8] + mov r0, #0xc + str r0, [sp, #0xc] + mov r0, #0x84 + str r0, [sp, #0x10] + add r0, #0xdc + ldr r0, [r5, r0] + add r1, r5, r1 + mov r3, #0x2 + bl sub_02019064 + ldr r0, _02078B78 ; =0x00000448 + mov r1, #0xf + add r0, r5, r0 + bl sub_02019620 + mov r2, #0x5e + ldr r0, _02078B78 ; =0x00000448 + lsl r2, r2, #0x2 + ldr r1, [r5, #0x0] + ldr r2, [r5, r2] + add r0, r5, r0 + bl sub_02078894 + add r0, r6, #0x0 + bl sub_0200628C + mov r1, #0x46 + lsl r1, r1, #0x2 + ldrh r2, [r5, r1] + ldr r0, _02078B7C ; =0x0000FFFF + cmp r2, r0 + beq _02078B06 + add r0, r5, #0x0 + add r0, #0xd8 + add r1, r5, r1 + bl sub_02002248 + mov r0, #0xc + str r0, [sp, #0x0] + mov r2, #0x0 + add r1, r5, #0x0 + ldr r0, _02078B80 ; =0x000E0F01 + str r2, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0xfa + lsl r0, r0, #0x2 + add r0, r5, r0 + add r1, #0xd8 + add r3, r2, #0x0 + str r2, [sp, #0xc] + bl sub_02078E7C +_02078B06: + mov r0, #0xee + lsl r0, r0, #0x2 + mov r4, #0x0 + add r7, r5, r0 +_02078B0E: + add r0, r4, #0x4 + lsl r6, r0, #0x4 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + mov r0, #0x78 + str r0, [sp, #0x10] + add r0, #0xe8 + ldr r0, [r5, r0] + add r1, r7, r6 + mov r2, #0x2 + mov r3, #0x0 + bl sub_02019064 + add r0, r7, r6 + mov r1, #0x0 + bl sub_02019620 + add r4, r4, #0x1 + cmp r4, #0x3 + blt _02078B0E + mov r3, #0x0 + str r3, [sp, #0x0] + mov r0, #0x10 + str r0, [sp, #0x4] + mov r2, #0x2 + str r2, [sp, #0x8] + ldr r1, _02078B84 ; =0x00000428 + str r3, [sp, #0xc] + mov r0, #0x84 + str r0, [sp, #0x10] + add r0, #0xdc + ldr r0, [r5, r0] + add r1, r5, r1 + bl sub_02019064 + ldr r0, _02078B84 ; =0x00000428 + mov r1, #0x0 + add r0, r5, r0 + bl sub_02019620 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02078B6C: .word 0x000E0F00 +_02078B70: .word 0x00000A0A +_02078B74: .word 0x00000438 +_02078B78: .word 0x00000448 +_02078B7C: .word 0x0000FFFF +_02078B80: .word 0x000E0F01 +_02078B84: .word 0x00000428 + + thumb_func_start sub_02078B88 +sub_02078B88: ; 0x02078B88 + push {r4, lr} + add r4, r1, #0x0 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 + bl sub_020178BC + mov r0, #0x1 + eor r0, r4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x2 + bl sub_020178BC + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02078BA8 +sub_02078BA8: ; 0x02078BA8 + push {r3-r4} + mov r3, #0xc + add r4, r1, #0x0 + mul r4, r3 + mov r2, #0xee + str r2, [r0, r4] + add r2, r3, #0x0 + sub r2, #0x5c + add r4, r0, r4 + str r2, [r4, #0x4] + mov r4, #0x1 + eor r1, r4 + mul r3, r1 + sub r4, #0xc + str r4, [r0, r3] + add r0, r0, r3 + str r2, [r0, #0x4] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_02078BD0 +sub_02078BD0: ; 0x02078BD0 + cmp r0, r2 + blt _02078BD6 + add r0, r1, #0x0 +_02078BD6: + cmp r0, r1 + bge _02078BDC + sub r0, r2, #0x1 +_02078BDC: + bx lr + .balign 4 + + thumb_func_start sub_02078BE0 +sub_02078BE0: ; 0x02078BE0 + push {r3-r7, lr} + add r5, r0, #0x0 + cmp r1, #0x0 + beq _02078C84 + ldr r3, [r5, #0x20] + mov r2, #0x1a + mul r2, r3 + ldr r0, [r5, #0x1c] + add r3, r5, r2 + lsl r2, r0, #0x1 + add r2, r3, r2 + ldrh r2, [r2, #0x3a] + lsl r6, r1, #0x3 + ldr r1, _02078C88 ; =0x020FA154 + str r2, [sp, #0x0] + ldr r1, [r1, r6] + mov r2, #0xd + add r0, r0, r1 + mov r1, #0x0 + bl sub_02078BD0 + add r4, r0, #0x0 + ldr r0, _02078C8C ; =0x020FA158 + ldr r1, [r5, #0x20] + ldr r0, [r0, r6] + mov r2, #0x6 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02078BD0 + add r7, r0, #0x0 + ldr r0, _02078C88 ; =0x020FA154 + add r6, r0, r6 + b _02078C62 +_02078C24: + ldr r1, [r5, #0x28] + cmp r1, #0x0 + bne _02078C46 + ldr r1, _02078C90 ; =0x0000D004 + cmp r0, r1 + bne _02078C46 + ldr r0, [r6, #0x4] + cmp r0, #0x0 + beq _02078C46 + ldr r0, [r5, #0x2c] + mov r1, #0x0 + add r0, r4, r0 + mov r2, #0xd + bl sub_02078BD0 + add r4, r0, #0x0 + b _02078C62 +_02078C46: + ldr r0, [r6, #0x0] + mov r1, #0x0 + add r0, r4, r0 + mov r2, #0xd + bl sub_02078BD0 + add r4, r0, #0x0 + ldr r0, [r6, #0x4] + mov r1, #0x0 + add r0, r7, r0 + mov r2, #0x6 + bl sub_02078BD0 + add r7, r0, #0x0 +_02078C62: + mov r0, #0x1a + mul r0, r7 + lsl r1, r4, #0x1 + add r0, r5, r0 + add r0, r1, r0 + ldrh r0, [r0, #0x3a] + ldr r1, _02078C90 ; =0x0000D004 + cmp r0, r1 + beq _02078C24 + ldr r1, [sp, #0x0] + cmp r1, r0 + bne _02078C80 + ldr r1, _02078C94 ; =0x0000E001 + cmp r0, r1 + bhi _02078C24 +_02078C80: + str r4, [r5, #0x1c] + str r7, [r5, #0x20] +_02078C84: + pop {r3-r7, pc} + nop +_02078C88: .word 0x020FA154 +_02078C8C: .word 0x020FA158 +_02078C90: .word 0x0000D004 +_02078C94: .word 0x0000E001 + + thumb_func_start sub_02078C98 +sub_02078C98: ; 0x02078C98 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _02078D70 ; =0x021C48B8 + mov r4, #0x0 + ldr r1, [r0, #0x4c] + mov r0, #0x40 + add r6, r4, #0x0 + tst r0, r1 + beq _02078CC0 + ldr r0, _02078D74 ; =0x000005DC + bl sub_020054C8 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x1 + bl sub_020200A0 + mov r6, #0x1 + add r4, r4, #0x1 +_02078CC0: + ldr r0, _02078D70 ; =0x021C48B8 + ldr r1, [r0, #0x4c] + mov r0, #0x80 + tst r0, r1 + beq _02078CE0 + ldr r0, _02078D74 ; =0x000005DC + bl sub_020054C8 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x1 + bl sub_020200A0 + mov r6, #0x2 + add r4, r4, #0x1 +_02078CE0: + ldr r0, _02078D70 ; =0x021C48B8 + ldr r1, [r0, #0x4c] + mov r0, #0x20 + tst r0, r1 + beq _02078D00 + ldr r0, _02078D74 ; =0x000005DC + bl sub_020054C8 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x1 + bl sub_020200A0 + mov r6, #0x3 + add r4, r4, #0x1 +_02078D00: + ldr r0, _02078D70 ; =0x021C48B8 + ldr r1, [r0, #0x4c] + mov r0, #0x10 + tst r0, r1 + beq _02078D20 + ldr r0, _02078D74 ; =0x000005DC + bl sub_020054C8 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x1 + bl sub_020200A0 + mov r6, #0x4 + add r4, r4, #0x1 +_02078D20: + ldr r0, _02078D70 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x8 + tst r0, r1 + beq _02078D46 + ldr r0, _02078D74 ; =0x000005DC + bl sub_020054C8 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x1 + bl sub_020200A0 + mov r0, #0xc + str r0, [r5, #0x1c] + mov r0, #0x0 + str r0, [r5, #0x20] + add r4, r4, #0x1 +_02078D46: + add r0, r5, #0x0 + bl sub_02079930 + ldr r1, _02078D78 ; =0x000005C8 + str r0, [r5, r1] + ldr r0, [r5, r1] + cmp r0, #0x1 + bne _02078D5A + mov r6, #0x0 + add r4, r4, #0x1 +_02078D5A: + cmp r4, #0x0 + beq _02078D6E + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02078BE0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl sub_02078D7C +_02078D6E: + pop {r4-r6, pc} + .balign 4 +_02078D70: .word 0x021C48B8 +_02078D74: .word 0x000005DC +_02078D78: .word 0x000005C8 + + thumb_func_start sub_02078D7C +sub_02078D7C: ; 0x02078D7C + push {r3-r5, lr} + sub sp, #0x18 + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x20] + cmp r1, #0x0 + beq _02078DC6 + ldr r0, [r5, #0x28] + cmp r0, #0x0 + bne _02078DA0 + cmp r0, r1 + beq _02078DA0 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x27 + bl sub_02020130 +_02078DA0: + ldr r0, [r5, #0x1c] + lsl r0, r0, #0x4 + add r0, #0x1a + lsl r0, r0, #0xc + str r0, [sp, #0xc] + ldr r0, [r5, #0x20] + sub r1, r0, #0x1 + mov r0, #0x13 + mul r0, r1 + add r0, #0x5b + lsl r0, r0, #0xc + str r0, [sp, #0x10] + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r1, sp, #0xc + bl sub_02020044 + b _02078E02 +_02078DC6: + mov r0, #0x1a + mul r0, r1 + add r1, r5, r0 + ldr r0, [r5, #0x1c] + lsl r0, r0, #0x1 + add r0, r1, r0 + ldrh r1, [r0, #0x3a] + ldr r0, _02078E2C ; =0x0000E002 + sub r1, r1, r0 + ldr r0, _02078E30 ; =0x020F9D6C + lsl r2, r1, #0x1 + ldrh r0, [r0, r2] + ldr r2, _02078E34 ; =0x020F9D38 + lsl r0, r0, #0xc + str r0, [sp, #0x0] + mov r0, #0x11 + lsl r0, r0, #0xe + str r0, [sp, #0x4] + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldrb r1, [r2, r1] + ldr r0, [r5, r0] + bl sub_02020130 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r1, sp, #0x0 + bl sub_02020044 +_02078E02: + mov r0, #0xb4 + strh r0, [r5, #0x38] + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_02020208 + ldr r0, [r5, #0x1c] + lsl r1, r4, #0x3 + str r0, [r5, #0x24] + ldr r0, [r5, #0x20] + str r0, [r5, #0x28] + ldr r0, _02078E38 ; =0x020FA154 + ldr r0, [r0, r1] + cmp r0, #0x0 + beq _02078E26 + str r0, [r5, #0x2c] +_02078E26: + add sp, #0x18 + pop {r3-r5, pc} + nop +_02078E2C: .word 0x0000E002 +_02078E30: .word 0x020F9D6C +_02078E34: .word 0x020F9D38 +_02078E38: .word 0x020FA154 + + thumb_func_start sub_02078E3C +sub_02078E3C: ; 0x02078E3C + push {r3, lr} + ldrh r1, [r0, #0x0] + add r1, #0x14 + strh r1, [r0, #0x0] + ldrh r2, [r0, #0x0] + mov r1, #0x5a + lsl r1, r1, #0x2 + cmp r2, r1 + bls _02078E52 + mov r1, #0x0 + strh r1, [r0, #0x0] +_02078E52: + ldrh r0, [r0, #0x0] + bl sub_0201B970 + mov r1, #0xa + mul r1, r0 + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + add r0, #0xf + lsl r1, r0, #0x5 + mov r0, #0x1d + orr r1, r0 + add r0, sp, #0x0 + strh r1, [r0, #0x0] + add r0, sp, #0x0 + mov r1, #0x3a + mov r2, #0x2 + blx sub_020C9480 + pop {r3, pc} + + thumb_func_start sub_02078E7C +sub_02078E7C: ; 0x02078E7C + push {r4-r7, lr} + sub sp, #0x3c + str r0, [sp, #0x18] + add r7, r1, #0x0 + mov r0, #0x2 + mov r1, #0x12 + str r2, [sp, #0x1c] + str r3, [sp, #0x20] + mov r4, #0x0 + bl sub_020219F4 + str r0, [sp, #0x28] + ldrh r1, [r7, #0x0] + ldr r0, _02078F6C ; =0x0000FFFF + cmp r1, r0 + beq _02078F62 + ldr r0, [sp, #0x54] + ldr r6, [sp, #0x50] + str r0, [sp, #0x24] + ldr r0, [sp, #0x58] + str r0, [sp, #0x34] + ldr r0, [sp, #0x20] + add r0, r0, #0x2 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x2c] + ldr r0, [sp, #0x5c] + str r0, [sp, #0x30] +_02078EB4: + lsl r0, r4, #0x1 + ldrh r1, [r7, r0] + ldr r0, _02078F70 ; =0x00002FFF + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x2 + bhi _02078F00 + mov r0, #0xc + str r0, [sp, #0x0] + str r0, [sp, #0x4] + add r2, r4, #0x0 + ldr r0, [sp, #0x1c] + mul r2, r6 + add r0, r0, r2 + ldr r2, _02078F74 ; =0x0000D001 + lsl r0, r0, #0x10 + sub r1, r1, r2 + lsl r1, r1, #0x10 + lsr r0, r0, #0x10 + lsr r2, r1, #0x8 + str r0, [sp, #0x8] + ldr r0, [sp, #0x2c] + lsr r1, r2, #0x1f + add r1, r2, r1 + str r0, [sp, #0xc] + mov r0, #0xc + asr r2, r1, #0x1 + ldr r1, [sp, #0x30] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + add r1, r1, r2 + mov r2, #0x0 + ldr r0, [sp, #0x18] + add r3, r2, #0x0 + bl sub_02019658 + b _02078F56 +_02078F00: + ldr r0, _02078F78 ; =0x0000D004 + cmp r1, r0 + bne _02078F0A + add r4, r4, #0x1 + b _02078F58 +_02078F0A: + add r0, sp, #0x38 + strh r1, [r0, #0x0] + ldr r1, _02078F6C ; =0x0000FFFF + strh r1, [r0, #0x2] + mov r0, #0x0 + add r1, sp, #0x38 + add r2, r0, #0x0 + bl sub_02002DE0 + add r5, r0, #0x0 + ldr r0, [sp, #0x28] + add r1, sp, #0x38 + bl sub_02021E28 + ldr r0, [sp, #0x20] + sub r3, r6, r5 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + lsr r5, r3, #0x1f + add r5, r3, r5 + asr r3, r5, #0x1 + str r0, [sp, #0x4] + ldr r0, [sp, #0x34] + mov r12, r3 + add r5, r4, #0x0 + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + ldr r3, [sp, #0x1c] + mul r5, r6 + add r3, r3, r5 + mov r5, r12 + ldr r0, [sp, #0x18] + ldr r2, [sp, #0x28] + mov r1, #0x0 + add r3, r5, r3 + bl sub_0201BDE0 +_02078F56: + add r4, r4, #0x1 +_02078F58: + lsl r0, r4, #0x1 + ldrh r1, [r7, r0] + ldr r0, _02078F6C ; =0x0000FFFF + cmp r1, r0 + bne _02078EB4 +_02078F62: + ldr r0, [sp, #0x28] + bl sub_02021A20 + add sp, #0x3c + pop {r4-r7, pc} + .balign 4 +_02078F6C: .word 0x0000FFFF +_02078F70: .word 0x00002FFF +_02078F74: .word 0x0000D001 +_02078F78: .word 0x0000D004 + + thumb_func_start sub_02078F7C +sub_02078F7C: ; 0x02078F7C + push {r4-r6, lr} + sub sp, #0x10 + mov r5, #0x0 + add r6, r1, #0x0 + str r5, [sp, #0x0] + mov r1, #0xff + str r1, [sp, #0x4] + str r3, [sp, #0x8] + add r1, r2, #0x0 + add r2, r6, #0x0 + add r3, r5, #0x0 + add r4, r0, #0x0 + str r5, [sp, #0xc] + bl sub_0201BDE0 + ldr r0, [r4, #0xc] + add sp, #0x10 + pop {r4-r6, pc} + + thumb_func_start sub_02078FA0 +sub_02078FA0: ; 0x02078FA0 + push {r3-r7, lr} + sub sp, #0x38 + add r6, r0, #0x0 + str r1, [sp, #0x8] + add r0, #0x30 + mov r1, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_02019620 + add r0, r6, #0x0 + ldr r3, _0207906C ; =0x000D0E0F + add r0, #0x30 + add r1, r4, #0x0 + mov r2, #0x2 + bl sub_02078F7C + mov r1, #0x2 + lsl r1, r1, #0xa + blx sub_020CC15C + add r7, r6, #0x0 + mov r4, #0x0 + add r7, #0x30 +_02078FD0: + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, r7, #0x0 + mov r1, #0x4 + mov r2, #0x2 + lsl r3, r4, #0x2 + str r5, [sp, #0x4] + bl sub_02011B20 + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0x8 + blx sub_020CC15C + ldr r1, _02079070 ; =0x020F9D28 + mov r2, #0x1 + ldrb r1, [r1, r4] + add r0, r5, #0x0 + lsl r2, r2, #0x8 + lsl r1, r1, #0x5 + blx sub_020C9294 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x4 + blo _02078FD0 + mov r0, #0x15 + mov r1, #0x12 + bl sub_020219F4 + add r4, r0, #0x0 + mov r5, #0x0 +_02079012: + ldr r0, [sp, #0x8] + lsl r1, r5, #0x1 + ldrh r1, [r0, r1] + add r0, sp, #0xc + lsl r7, r5, #0x4 + strh r1, [r0, #0x0] + ldr r1, _02079074 ; =0x0000FFFF + strh r1, [r0, #0x2] + add r0, r6, r7 + mov r1, #0x0 + bl sub_02019620 + add r0, r4, #0x0 + add r1, sp, #0xc + bl sub_02021E28 + ldr r3, _0207906C ; =0x000D0E0F + add r0, r6, r7 + add r1, r4, #0x0 + mov r2, #0x2 + bl sub_02078F7C + mov r1, #0x80 + add r7, r0, #0x0 + blx sub_020CC15C + ldr r1, _02079078 ; =0x020F9D40 + lsl r2, r5, #0x2 + ldr r1, [r1, r2] + add r0, r7, #0x0 + lsl r1, r1, #0x5 + mov r2, #0x80 + blx sub_020C9294 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x3 + blo _02079012 + add r0, r4, #0x0 + bl sub_02021A20 + add sp, #0x38 + pop {r3-r7, pc} + nop +_0207906C: .word 0x000D0E0F +_02079070: .word 0x020F9D28 +_02079074: .word 0x0000FFFF +_02079078: .word 0x020F9D40 + + thumb_func_start sub_0207907C +sub_0207907C: ; 0x0207907C + push {r3-r5, lr} + cmp r2, #0x0 + bne _02079086 + ldr r1, _02079158 ; =0x0000D003 + b _0207908C +_02079086: + sub r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrh r1, [r1, r2] +_0207908C: + ldr r4, _0207915C ; =0x0000E003 + cmp r1, r4 + bgt _020790BC + bge _020790E2 + ldr r2, _02079160 ; =0x0000D004 + cmp r1, r2 + bgt _020790B4 + sub r2, r2, #0x3 + sub r2, r1, r2 + bmi _020790E4 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r4, r6, #0 + lsl r4, r6, #0 + lsl r4, r6, #0 + lsl r4, r6, #0 +_020790B4: + ldr r2, _02079164 ; =0x0000E002 + cmp r1, r2 + beq _020790E2 + b _020790E4 +_020790BC: + add r2, r4, #0x1 + cmp r1, r2 + bgt _020790C6 + beq _020790E2 + b _020790E4 +_020790C6: + add r2, r4, #0x2 + sub r2, r1, r2 + cmp r2, #0x3 + bhi _020790E4 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r6, r0, #0 + lsl r6, r0, #0 + lsl r6, r0, #0 + lsl r6, r0, #0 +_020790E2: + mov r1, #0x1 +_020790E4: + mov r4, #0x0 + add r5, r3, #0x0 + mov r2, #0x1 +_020790EA: + add r4, r4, #0x1 + strh r2, [r5, #0x0] + add r5, r5, #0x2 + cmp r4, #0x3 + blt _020790EA + strh r1, [r3, #0x0] + cmp r1, #0x1 + beq _0207914A + ldr r5, _02079168 ; =0x020FA40E + mov r2, #0x0 +_020790FE: + ldrh r4, [r5, #0x0] + cmp r1, r4 + bne _02079120 + mov r4, #0x6 + ldr r5, _02079168 ; =0x020FA40E + mul r4, r2 + add r4, r5, r4 + mov r1, #0x0 + add r5, r3, #0x0 +_02079110: + ldrh r2, [r4, #0x0] + add r1, r1, #0x1 + add r4, r4, #0x2 + strh r2, [r5, #0x0] + add r5, r5, #0x2 + cmp r1, #0x3 + blt _02079110 + b _0207914A +_02079120: + ldrh r4, [r5, #0x4] + cmp r1, r4 + bne _02079142 + mov r4, #0x6 + ldr r5, _02079168 ; =0x020FA40E + mul r4, r2 + add r4, r5, r4 + mov r1, #0x0 + add r5, r3, #0x0 +_02079132: + ldrh r2, [r4, #0x0] + add r1, r1, #0x1 + add r4, r4, #0x2 + strh r2, [r5, #0x0] + add r5, r5, #0x2 + cmp r1, #0x3 + blt _02079132 + b _0207914A +_02079142: + add r2, r2, #0x1 + add r5, r5, #0x6 + cmp r2, #0x52 + blo _020790FE +_0207914A: + add r1, r3, #0x0 + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + bl sub_02078FA0 + pop {r3-r5, pc} + nop +_02079158: .word 0x0000D003 +_0207915C: .word 0x0000E003 +_02079160: .word 0x0000D004 +_02079164: .word 0x0000E002 +_02079168: .word 0x020FA40E + + thumb_func_start sub_0207916C +sub_0207916C: ; 0x0207916C + push {r4-r7} + mov r4, #0x0 + ldr r3, _020791B8 ; =0x02106058 + add r5, r4, #0x0 + add r6, r0, #0x0 + lsl r2, r1, #0x2 +_02079178: + ldr r7, [r3, r2] + add r4, r4, #0x1 + ldrh r7, [r7, r5] + add r5, r5, #0x2 + strh r7, [r6, #0x0] + add r6, r6, #0x2 + cmp r4, #0xd + blt _02079178 + mov r3, #0x14 + ldr r4, _020791BC ; =0x0210606C + mul r3, r1 + mov r2, #0x0 + add r3, r4, r3 + add r1, r2, #0x0 +_02079194: + add r6, r1, #0x0 + add r4, r1, #0x0 + add r5, r0, #0x0 +_0207919A: + ldr r7, [r3, #0x0] + add r6, r6, #0x1 + ldrh r7, [r7, r4] + add r4, r4, #0x2 + strh r7, [r5, #0x1a] + add r5, r5, #0x2 + cmp r6, #0xd + blt _0207919A + add r2, r2, #0x1 + add r3, r3, #0x4 + add r0, #0x1a + cmp r2, #0x5 + blt _02079194 + pop {r4-r7} + bx lr + .balign 4 +_020791B8: .word 0x02106058 +_020791BC: .word 0x0210606C + + thumb_func_start sub_020791C0 +sub_020791C0: ; 0x020791C0 + push {r4-r6, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r0, _0207952C ; =0x00002FFD + add r6, r2, #0x0 + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x1 + bhi _020791D6 + mov r1, #0x1 +_020791D6: + ldr r0, [r4, #0x0] + cmp r0, #0x4 + bne _020791EA + ldr r0, _02079530 ; =0x00001FFE + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x3 + bhi _020791EA + mov r1, #0x1 +_020791EA: + ldr r0, _02079534 ; =0x0000E002 + cmp r1, r0 + bgt _02079208 + blt _020791F4 + b _0207931C +_020791F4: + ldr r3, _02079538 ; =0x0000D002 + cmp r1, r3 + bgt _02079206 + sub r0, r3, #0x1 + cmp r1, r0 + blt _02079206 + beq _0207922A + cmp r1, r3 + beq _0207927C +_02079206: + b _0207945C +_02079208: + add r0, r0, #0x1 + sub r0, r1, r0 + cmp r0, #0x5 + bls _02079212 + b _0207945C +_02079212: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r7, #0x3 + lsl r4, r7, #0x3 + lsl r4, r7, #0x3 + lsl r2, r5, #0x2 + lsl r6, r7, #0x4 + lsl r6, r5, #0x7 +_0207922A: + add r0, r4, #0x0 + add r0, #0xd8 + str r0, [sp, #0x0] + mov r0, #0x56 + lsl r0, r0, #0x2 + ldrh r0, [r4, r0] + ldr r3, _0207953C ; =0x0000D001 + mov r1, #0x52 + str r0, [sp, #0x4] + mov r0, #0x2a + mov r2, #0x1 + bl sub_020795FC + cmp r0, #0x0 + bne _0207924A + b _02079526 +_0207924A: + mov r0, #0xfa + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_02019620 + mov r0, #0xc + str r0, [sp, #0x0] + mov r2, #0x0 + ldr r0, _02079540 ; =0x000E0F01 + str r2, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0xfa + lsl r0, r0, #0x2 + add r0, r4, r0 + add r4, #0xd8 + add r1, r4, #0x0 + add r3, r2, #0x0 + str r2, [sp, #0xc] + bl sub_02078E7C + ldr r0, _02079544 ; =0x000005EB + bl sub_020054C8 + b _02079526 +_0207927C: + add r0, r4, #0x0 + add r0, #0xd8 + str r0, [sp, #0x0] + mov r0, #0x56 + lsl r0, r0, #0x2 + ldrh r0, [r4, r0] + mov r1, #0x52 + mov r2, #0x2 + str r0, [sp, #0x4] + mov r0, #0x48 + bl sub_020795FC + cmp r0, #0x0 + beq _02079368 + mov r0, #0xfa + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_02019620 + mov r0, #0xc + str r0, [sp, #0x0] + mov r2, #0x0 + ldr r0, _02079540 ; =0x000E0F01 + str r2, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0xfa + lsl r0, r0, #0x2 + add r0, r4, r0 + add r4, #0xd8 + add r1, r4, #0x0 + add r3, r2, #0x0 + str r2, [sp, #0xc] + bl sub_02078E7C + ldr r0, _02079544 ; =0x000005EB + bl sub_020054C8 + b _02079526 +_020792CA: + .byte 0x56, 0x23, 0x9B, 0x00, 0xE3, 0x5A + .byte 0x22, 0x1C, 0x00, 0x20, 0x52, 0x21, 0xD8, 0x32, 0x00, 0xF0, 0x5A, 0xF9, 0x00, 0x28, 0x43, 0xD0 + .byte 0xFA, 0x20, 0x80, 0x00, 0x20, 0x18, 0x01, 0x21, 0xA0, 0xF7, 0x9A, 0xF9, 0x0C, 0x20, 0x00, 0x90 + .byte 0x00, 0x22, 0x21, 0x1C, 0x92, 0x48, 0x01, 0x92, 0x02, 0x90, 0xFA, 0x20, 0x80, 0x00, 0x20, 0x18 + .byte 0xD8, 0x31, 0x13, 0x1C, 0x03, 0x92, 0xFF, 0xF7, 0xB9, 0xFD, 0x4A, 0x20, 0x00, 0x01, 0x21, 0x58 + .byte 0x49, 0x1C, 0x21, 0x50, 0x8B, 0x48, 0x8C, 0xF7, 0xD7, 0xF8, 0x04, 0xE1 +_0207931C: + mov r2, #0x46 + lsl r2, r2, #0x4 + ldr r0, _02079534 ; =0x0000E002 + ldr r3, [r4, r2] + sub r5, r1, r0 + cmp r3, r5 + beq _02079368 + mov r1, #0x0 + sub r0, r2, #0x4 + str r1, [r4, r0] + str r5, [r4, r2] + add r0, r4, #0x0 + ldr r1, [r4, r2] + add r0, #0x3a + bl sub_0207916C + mov r0, #0x49 + lsl r0, r0, #0x4 + add r2, r4, r0 + lsl r1, r5, #0x2 + ldr r0, [r2, r1] + add r0, r0, #0x1 + str r0, [r2, r1] + ldr r0, _02079548 ; =0x0000069E + bl sub_020054C8 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r1, r6, #0x0 + bl sub_020200A0 + b _02079526 +_0207935E: + .byte 0x56, 0x21 + .byte 0x89, 0x00, 0x60, 0x5A, 0x00, 0x28, 0x00, 0xD1 +_02079368: + b _02079526 +_0207936A: + .byte 0x40, 0x1E, 0x40, 0x00, 0x20, 0x18 + .byte 0x76, 0x4A, 0xD8, 0x30, 0x02, 0x80, 0x60, 0x5A, 0x40, 0x1E, 0x60, 0x52, 0xFA, 0x20, 0x80, 0x00 + .byte 0x20, 0x18, 0x01, 0x21, 0xA0, 0xF7, 0x4C, 0xF9, 0x56, 0x20, 0x80, 0x00, 0x20, 0x5A, 0x00, 0x28 + .byte 0x05, 0xD1, 0xFA, 0x20, 0x80, 0x00, 0x20, 0x18, 0x9F, 0xF7, 0x1A, 0xFF, 0x0E, 0xE0, 0x0C, 0x20 + .byte 0x00, 0x90, 0x00, 0x22, 0x66, 0x48, 0x01, 0x92, 0x02, 0x90, 0xFA, 0x20, 0x80, 0x00, 0x21, 0x1C + .byte 0x20, 0x18, 0xD8, 0x31, 0x13, 0x1C, 0x03, 0x92, 0xFF, 0xF7, 0x60, 0xFD, 0x64, 0x48, 0x5F, 0x23 + .byte 0x21, 0x18, 0x9B, 0x00, 0x00, 0x91, 0xE1, 0x58, 0x1A, 0x1C, 0x01, 0x91, 0x24, 0x3A, 0xCC, 0x38 + .byte 0x21, 0x1C, 0x22, 0x3B, 0xA2, 0x5A, 0x20, 0x18, 0xD8, 0x31, 0xE3, 0x18, 0xFF, 0xF7, 0x4E, 0xFE + .byte 0x56, 0x21, 0x89, 0x00, 0xD9, 0x20, 0x80, 0x00, 0x61, 0x5A, 0xE2, 0x68, 0x20, 0x18, 0x00, 0xF0 + .byte 0x8F, 0xF9, 0x58, 0x48, 0x21, 0x58, 0x49, 0x1C, 0x21, 0x50, 0x57, 0x48, 0x8C, 0xF7, 0x64, 0xF8 + .byte 0xD3, 0x20, 0x80, 0x00, 0x20, 0x58, 0x31, 0x1C, 0xA6, 0xF7, 0x4A, 0xFE, 0x8B, 0xE0, 0x53, 0x48 + .byte 0x20, 0x58, 0x9A, 0xF7, 0xDD, 0xFF, 0xD3, 0x20, 0x80, 0x00, 0x20, 0x58, 0x31, 0x1C, 0xA6, 0xF7 + .byte 0x3F, 0xFE, 0x60, 0x69, 0x00, 0x28, 0x15, 0xD1, 0x4D, 0x48, 0x8C, 0xF7, 0x4D, 0xF8, 0x4D, 0x48 + .byte 0x21, 0x58, 0x49, 0x1C, 0x21, 0x50, 0x00, 0x21, 0x10, 0x20, 0x00, 0x90, 0x01, 0x20, 0x01, 0x90 + .byte 0x12, 0x20, 0x02, 0x90, 0x02, 0x20, 0x0A, 0x1C, 0x0B, 0x1C, 0x94, 0xF7, 0xC1, 0xFE, 0x04, 0xB0 + .byte 0x03, 0x20, 0x70, 0xBD, 0x44, 0x48, 0x05, 0x21, 0x21, 0x50, 0x64, 0xE0 +_0207945C: + mov r0, #0x46 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + cmp r0, #0x4 + bne _02079470 + cmp r1, #0x1 + bne _02079470 + add sp, #0x10 + mov r0, #0x2 + pop {r4-r6, pc} +_02079470: + mov r0, #0x56 + lsl r0, r0, #0x2 + ldrh r2, [r4, r0] + ldr r0, [r4, #0xc] + cmp r2, r0 + beq _02079526 + lsl r0, r2, #0x1 + add r0, r4, r0 + add r0, #0xd8 + strh r1, [r0, #0x0] + mov r0, #0xfa + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x1 + bl sub_02019620 + mov r0, #0xc + str r0, [sp, #0x0] + mov r2, #0x0 + add r1, r4, #0x0 + ldr r0, _02079540 ; =0x000E0F01 + str r2, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0xfa + lsl r0, r0, #0x2 + add r0, r4, r0 + add r1, #0xd8 + add r3, r2, #0x0 + str r2, [sp, #0xc] + bl sub_02078E7C + mov r1, #0x56 + lsl r1, r1, #0x2 + ldrh r0, [r4, r1] + add r0, r0, #0x1 + strh r0, [r4, r1] + mov r0, #0xd9 + lsl r0, r0, #0x2 + ldrh r1, [r4, r1] + ldr r2, [r4, #0xc] + add r0, r4, r0 + bl sub_02079710 + ldr r0, _02079544 ; =0x000005EB + bl sub_020054C8 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_020200A0 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_02020398 + mov r3, #0x8 + ldr r0, _0207956C ; =0x04000050 + mov r1, #0x0 + mov r2, #0x7 + str r3, [sp, #0x0] + blx sub_020C74DC + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x3c + bl sub_02020130 + mov r0, #0x1 + str r0, [r4, #0x34] + ldr r0, _02079550 ; =0x000004C4 + mov r3, #0x5f + add r1, r4, r0 + lsl r3, r3, #0x2 + str r1, [sp, #0x0] + ldr r1, [r4, r3] + add r2, r3, #0x0 + str r1, [sp, #0x4] + sub r2, #0x24 + sub r0, #0xcc + add r1, r4, #0x0 + sub r3, #0x22 + ldrh r2, [r4, r2] + add r0, r4, r0 + add r1, #0xd8 + add r3, r4, r3 + bl sub_0207907C +_02079526: + mov r0, #0x2 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_0207952C: .word 0x00002FFD +_02079530: .word 0x00001FFE +_02079534: .word 0x0000E002 +_02079538: .word 0x0000D002 +_0207953C: .word 0x0000D001 +_02079540: .word 0x000E0F01 +_02079544: .word 0x000005EB +_02079548: .word 0x0000069E +_0207954C: + .byte 0xFF, 0xFF, 0x00, 0x00 +_02079550: .word 0x000004C4 +_02079554: + .byte 0xA4, 0x04, 0x00, 0x00, 0xDC, 0x05, 0x00, 0x00, 0xC4, 0x05, 0x00, 0x00 + .byte 0xE2, 0x05, 0x00, 0x00, 0xA8, 0x04, 0x00, 0x00, 0x5C, 0x04, 0x00, 0x00 +_0207956C: .word 0x04000050 + + thumb_func_start sub_02079570 +sub_02079570: ; 0x02079570 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r4, #0x0 + mov r6, #0x3 +_02079578: + add r0, r1, #0x1 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02078BD0 + add r1, r0, #0x0 + lsl r0, r1, #0x1 + ldrh r0, [r5, r0] + cmp r0, #0x1 + beq _02079578 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02079590 +sub_02079590: ; 0x02079590 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r0, r1, #0x0 + str r2, [sp, #0x0] + cmp r3, #0x0 + bne _020795A4 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_020795A4: + sub r1, r3, #0x1 + lsl r1, r1, #0x1 + str r1, [sp, #0x4] + ldrh r3, [r2, r1] + cmp r4, r0 + bge _020795F2 + mov r1, #0x6 + ldr r2, _020795F8 ; =0x020FA40E + mul r1, r4 + add r5, r2, r1 + mov r7, #0x0 +_020795BA: + add r2, r7, #0x0 + add r6, r5, #0x0 +_020795BE: + ldrh r1, [r6, #0x0] + cmp r3, r1 + bne _020795E2 + cmp r3, #0x1 + beq _020795E2 + mov r0, #0x6 + ldr r1, _020795F8 ; =0x020FA40E + mul r0, r4 + add r0, r1, r0 + add r1, r2, #0x0 + bl sub_02079570 + ldr r2, [sp, #0x0] + ldr r1, [sp, #0x4] + add sp, #0x8 + strh r0, [r2, r1] + mov r0, #0x1 + pop {r3-r7, pc} +_020795E2: + add r2, r2, #0x1 + add r6, r6, #0x2 + cmp r2, #0x3 + blt _020795BE + add r4, r4, #0x1 + add r5, r5, #0x6 + cmp r4, r0 + blt _020795BA +_020795F2: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020795F8: .word 0x020FA40E + + thumb_func_start sub_020795FC +sub_020795FC: ; 0x020795FC + push {r3-r7, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + ldr r1, [sp, #0x1c] + mov lr, r2 + mov r12, r3 + cmp r1, #0x0 + beq _02079618 + sub r1, r1, #0x1 + ldr r6, [sp, #0x18] + lsl r7, r1, #0x1 + ldrh r5, [r6, r7] + cmp r5, #0x1 + bne _0207961C +_02079618: + mov r0, #0x0 + pop {r3-r7, pc} +_0207961C: + add r2, r4, #0x0 + cmp r4, r0 + bge _0207964E + mov r1, #0x6 + ldr r3, _020796F4 ; =0x020FA40E + mul r1, r4 + add r3, r3, r1 +_0207962A: + ldrh r1, [r3, #0x0] + cmp r5, r1 + bne _02079646 + add r3, r2, #0x0 + mov r0, #0x6 + mul r3, r0 + mov r0, lr + ldr r2, _020796F4 ; =0x020FA40E + lsl r1, r0, #0x1 + add r0, r2, r3 + ldrh r0, [r1, r0] + strh r0, [r6, r7] + mov r0, #0x1 + pop {r3-r7, pc} +_02079646: + add r2, r2, #0x1 + add r3, r3, #0x6 + cmp r2, r0 + blt _0207962A +_0207964E: + cmp r4, r0 + bge _0207967E + mov r2, lr + ldr r1, _020796F4 ; =0x020FA40E + lsl r2, r2, #0x1 + add r1, r1, r2 + mov r2, #0x6 + mul r2, r4 + add r2, r1, r2 +_02079660: + ldrh r1, [r2, #0x0] + cmp r5, r1 + bne _02079676 + mov r0, #0x6 + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _020796F4 ; =0x020FA40E + ldrh r0, [r0, r1] + strh r0, [r6, r7] + mov r0, #0x1 + pop {r3-r7, pc} +_02079676: + add r4, r4, #0x1 + add r2, r2, #0x6 + cmp r4, r0 + blt _02079660 +_0207967E: + ldr r1, _020796F8 ; =0x0000D001 + mov r0, r12 + cmp r0, r1 + beq _02079698 + add r1, r1, #0x1 + mov r0, r12 + cmp r0, r1 + beq _020796B8 + ldr r1, _020796FC ; =0x0000E006 + mov r0, r12 + cmp r0, r1 + beq _020796D8 + b _020796F0 +_02079698: + ldr r1, _02079700 ; =0x020FA1A4 + mov r2, #0x0 +_0207969C: + ldrh r0, [r1, #0x0] + cmp r5, r0 + bne _020796AE + ldr r0, _02079704 ; =0x020FA1A6 + lsl r1, r2, #0x2 + ldrh r0, [r0, r1] + strh r0, [r6, r7] + mov r0, #0x1 + pop {r3-r7, pc} +_020796AE: + add r2, r2, #0x1 + add r1, r1, #0x4 + cmp r2, #0xc + blo _0207969C + b _020796F0 +_020796B8: + ldr r1, _02079708 ; =0x020FA17C + mov r2, #0x0 +_020796BC: + ldrh r0, [r1, #0x0] + cmp r5, r0 + bne _020796CE + ldr r0, _0207970C ; =0x020FA17E + lsl r1, r2, #0x2 + ldrh r0, [r0, r1] + strh r0, [r6, r7] + mov r0, #0x1 + pop {r3-r7, pc} +_020796CE: + add r2, r2, #0x1 + add r1, r1, #0x4 + cmp r2, #0xa + blo _020796BC + b _020796F0 +_020796D8: + cmp r5, #0x26 + bne _020796E4 + mov r0, #0x24 + strh r0, [r6, r7] + mov r0, #0x1 + pop {r3-r7, pc} +_020796E4: + cmp r5, #0x76 + bne _020796F0 + mov r0, #0x74 + strh r0, [r6, r7] + mov r0, #0x1 + pop {r3-r7, pc} +_020796F0: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_020796F4: .word 0x020FA40E +_020796F8: .word 0x0000D001 +_020796FC: .word 0x0000E006 +_02079700: .word 0x020FA1A4 +_02079704: .word 0x020FA1A6 +_02079708: .word 0x020FA17C +_0207970C: .word 0x020FA17E + + thumb_func_start sub_02079710 +sub_02079710: ; 0x02079710 + push {r3-r7, lr} + sub sp, #0x8 + add r6, r2, #0x0 + mov r4, #0x0 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + cmp r6, #0x0 + ble _02079734 + add r5, r0, #0x0 + mov r7, #0x2b +_02079724: + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + bl sub_02020130 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r6 + blt _02079724 +_02079734: + ldr r0, [sp, #0x4] + cmp r0, r6 + beq _02079746 + lsl r1, r0, #0x2 + ldr r0, [sp, #0x0] + ldr r0, [r0, r1] + mov r1, #0x2c + bl sub_02020130 +_02079746: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0207974C +sub_0207974C: ; 0x0207974C + push {r3-r7, lr} + sub sp, #0x18 + str r2, [sp, #0x10] + ldr r2, [sp, #0x30] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r5, r0, #0x0 + str r3, [sp, #0x14] + str r2, [sp, #0x30] + bl sub_02019620 + ldr r1, _0207982C ; =0x020F9D30 + ldr r0, [sp, #0x10] + mov r7, #0x0 + ldrb r4, [r1, r0] + mov r6, #0x10 +_0207976C: + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x13 + lsl r2, r6, #0x10 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + mov r3, #0x0 + bl sub_020196F4 + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x13 + lsl r2, r6, #0x10 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + mov r3, #0x26 + bl sub_020196F4 + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x13 + lsl r2, r6, #0x10 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + mov r3, #0x4c + bl sub_020196F4 + add r7, r7, #0x1 + add r6, #0x20 + cmp r7, #0x6 + blt _0207976C + mov r7, #0x0 + add r6, r7, #0x0 +_020797BA: + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x13 + lsl r2, r6, #0x10 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + mov r3, #0x13 + bl sub_020196F4 + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x13 + lsl r2, r6, #0x10 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + mov r3, #0x39 + bl sub_020196F4 + add r7, r7, #0x1 + add r6, #0x20 + cmp r7, #0x7 + blt _020797BA + ldr r0, [sp, #0x10] + mov r1, #0x14 + ldr r2, _02079830 ; =0x0210606C + mul r1, r0 + mov r7, #0x0 + mov r6, #0x4 + add r4, r2, r1 +_020797FC: + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, [sp, #0x14] + mov r2, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x30] + add r3, r6, #0x0 + str r0, [sp, #0xc] + ldr r1, [r4, #0x0] + add r0, r5, #0x0 + bl sub_02078E7C + add r7, r7, #0x1 + add r6, #0x13 + add r4, r4, #0x4 + cmp r7, #0x5 + blt _020797FC + add r0, r5, #0x0 + bl sub_020191D0 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_0207982C: .word 0x020F9D30 +_02079830: .word 0x0210606C + + thumb_func_start sub_02079834 +sub_02079834: ; 0x02079834 + push {r3-r7, lr} + sub sp, #0x8 + add r6, r1, #0x0 + str r0, [sp, #0x0] + mov r7, #0x0 + add r1, r0, #0x0 +_02079840: + ldr r0, [r1, #0x0] + cmp r0, #0x0 + beq _02079876 + mov r0, #0x0 + ldr r4, _020798B8 ; =0x020FA1D4 + str r0, [sp, #0x4] + add r5, r6, #0x0 +_0207984E: + ldr r0, [r5, #0x0] + ldr r1, [r4, #0x8] + bl sub_02020130 + ldr r0, [sp, #0x4] + add r4, #0x10 + add r0, r0, #0x1 + add r5, r5, #0x4 + str r0, [sp, #0x4] + cmp r0, #0x3 + blt _0207984E + ldr r1, _020798BC ; =0x020FA1DC + lsl r2, r7, #0x4 + lsl r0, r7, #0x2 + ldr r1, [r1, r2] + ldr r0, [r6, r0] + sub r1, r1, #0x3 + bl sub_02020130 + b _0207987E +_02079876: + add r7, r7, #0x1 + add r1, r1, #0x4 + cmp r7, #0x3 + blt _02079840 +_0207987E: + ldr r4, [sp, #0x0] + ldr r5, _020798C0 ; =0x020FA224 + mov r7, #0x5 + add r4, #0x14 + add r6, #0x14 +_02079888: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02079898 + ldr r1, [r5, #0x8] + ldr r0, [r6, #0x0] + add r1, r1, #0x1 + bl sub_02020130 +_02079898: + add r7, r7, #0x1 + add r4, r4, #0x4 + add r5, #0x10 + add r6, r6, #0x4 + cmp r7, #0x7 + blt _02079888 + mov r2, #0x0 + add r1, r2, #0x0 +_020798A8: + ldr r0, [sp, #0x0] + add r2, r2, #0x1 + stmia r0!, {r1} + str r0, [sp, #0x0] + cmp r2, #0x7 + blt _020798A8 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020798B8: .word 0x020FA1D4 +_020798BC: .word 0x020FA1DC +_020798C0: .word 0x020FA224 + + thumb_func_start sub_020798C4 +sub_020798C4: ; 0x020798C4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02020388 + cmp r0, #0x0 + bne _0207992E + mov r0, #0x56 + lsl r0, r0, #0x2 + ldrh r1, [r4, r0] + ldr r0, [r4, #0xc] + cmp r1, r0 + bne _020798F8 + mov r0, #0xc + str r0, [r4, #0x1c] + mov r0, #0x0 + str r0, [r4, #0x20] + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x27 + bl sub_02020130 + b _02079904 +_020798F8: + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x27 + bl sub_02020130 +_02079904: + ldr r0, [r4, #0x30] + cmp r0, #0x0 + bne _02079918 + mov r0, #0xd3 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_020200A0 + b _02079920 +_02079918: + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02078D7C +_02079920: + mov r1, #0x0 + mov r0, #0xd3 + str r1, [r4, #0x34] + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02020398 +_0207992E: + pop {r4, pc} + + thumb_func_start sub_02079930 +sub_02079930: ; 0x02079930 + push {r3-r7, lr} + str r0, [sp, #0x0] + mov r0, #0x0 + mov r12, r0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x4 + bne _02079944 + mov r0, #0x4 + mov r12, r0 +_02079944: + ldr r2, _020799E0 ; =0x021C48F8 + ldrh r0, [r2, #0x20] + cmp r0, #0x0 + beq _020799DA + ldrh r0, [r2, #0x1c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov lr, r0 + ldrh r0, [r2, #0x1e] + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + mov r0, r12 + cmp r0, #0x47 + bhs _020799DA + mov r0, #0x6 + mov r2, r12 + mul r0, r2 + ldr r2, _020799E4 ; =0x020FA264 + add r2, r2, r0 + add r3, r2, #0x0 +_0207996C: + ldrh r4, [r3, #0x2] + ldrb r0, [r2, #0x0] + ldrb r6, [r2, #0x1] + lsl r4, r4, #0x1e + lsr r4, r4, #0x1e + beq _02079982 + cmp r4, #0x1 + beq _02079988 + cmp r4, #0x2 + beq _0207998E + b _02079992 +_02079982: + mov r5, #0x1f + mov r1, #0x16 + b _02079992 +_02079988: + mov r5, #0x20 + mov r1, #0x16 + b _02079992 +_0207998E: + mov r5, #0x10 + mov r1, #0x13 +_02079992: + mov r4, lr + cmp r4, r0 + blo _020799CC + cmp r7, r6 + blo _020799CC + add r4, r0, r5 + mov r0, lr + cmp r0, r4 + bgt _020799CC + add r0, r6, r1 + cmp r7, r0 + bgt _020799CC + ldr r2, _020799E4 ; =0x020FA264 + mov r1, #0x6 + mov r0, r12 + mul r1, r0 + add r2, r2, r1 + ldrb r0, [r2, #0x4] + lsl r0, r0, #0x1b + lsr r1, r0, #0x1b + ldr r0, [sp, #0x0] + str r1, [r0, #0x1c] + ldrb r0, [r2, #0x5] + lsl r0, r0, #0x1b + lsr r1, r0, #0x1b + ldr r0, [sp, #0x0] + str r1, [r0, #0x20] + mov r0, #0x1 + pop {r3-r7, pc} +_020799CC: + mov r0, r12 + add r0, r0, #0x1 + add r2, r2, #0x6 + add r3, r3, #0x6 + mov r12, r0 + cmp r0, #0x47 + blo _0207996C +_020799DA: + mov r0, #0x0 + pop {r3-r7, pc} + nop +_020799E0: .word 0x021C48F8 +_020799E4: .word 0x020FA264 + + thumb_func_start sub_020799E8 +sub_020799E8: ; 0x020799E8 + lsl r1, r0, #0x1 + ldr r0, _020799F0 ; =0x020FA60C + ldrh r0, [r0, r1] + bx lr + .balign 4 +_020799F0: .word 0x020FA60C + + thumb_func_start sub_020799F4 +sub_020799F4: ; 0x020799F4 + push {r3, lr} + add r2, r0, #0x0 + mul r2, r0 + add r0, r1, #0x0 + mul r0, r1 + add r0, r2, r0 + lsl r0, r0, #0x4 + bl sub_0200019E + lsr r0, r0, #0x2 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02079A0C +sub_02079A0C: ; 0x02079A0C + push {r4, lr} + add r4, r0, #0x0 + mul r0, r2 + blx sub_020EBE8C + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bne _02079A22 + cmp r4, #0x0 + beq _02079A22 + mov r0, #0x1 +_02079A22: + pop {r4, pc} + + thumb_func_start sub_02079A24 +sub_02079A24: ; 0x02079A24 + push {r4, lr} + add r4, r0, #0x0 + lsl r0, r1, #0x8 + lsl r4, r4, #0x8 + lsr r1, r0, #0x1 + cmp r4, r1 + bls _02079A36 + mov r0, #0x3 + pop {r4, pc} +_02079A36: + mov r1, #0x5 + blx sub_020EBE8C + cmp r4, r0 + bls _02079A44 + mov r0, #0x2 + pop {r4, pc} +_02079A44: + cmp r4, #0x0 + beq _02079A4C + mov r0, #0x1 + b _02079A4E +_02079A4C: + mov r0, #0x0 +_02079A4E: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r4, pc} + + thumb_func_start sub_02079A54 +sub_02079A54: ; 0x02079A54 + push {r4, lr} + add r4, r2, #0x0 + cmp r0, r1 + bne _02079A60 + mov r0, #0x4 + pop {r4, pc} +_02079A60: + lsl r2, r4, #0x18 + lsr r2, r2, #0x18 + bl sub_02079A0C + add r1, r4, #0x0 + bl sub_02079A24 + pop {r4, pc} + + thumb_func_start sub_02079A70 +sub_02079A70: ; 0x02079A70 + push {lr} + sub sp, #0xc + cmp r0, #0x0 + bne _02079A90 + mov r0, #0x6 + str r0, [sp, #0x0] + mov r2, #0x1 + str r2, [sp, #0x4] + mov r0, #0x0 + str r1, [sp, #0x8] + add r1, r2, #0x0 + add r3, r0, #0x0 + bl sub_0200E1D0 + add sp, #0xc + pop {pc} +_02079A90: + mov r0, #0x6 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r0, #0x0 + str r1, [sp, #0x8] + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + bl sub_0200E1D0 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_02079AAC +sub_02079AAC: ; 0x02079AAC + push {r4-r5} + ldr r3, _02079B5C ; =0x021C48B8 + mov r2, #0x0 + ldr r3, [r3, #0x4c] + mov r5, #0x40 + ldrsh r4, [r0, r2] + tst r5, r3 + beq _02079ADE + add r3, r4, #0x1 + strh r3, [r0, #0x0] + ldrsh r2, [r0, r2] + cmp r2, r1 + ble _02079ACA + mov r1, #0x1 + strh r1, [r0, #0x0] +_02079ACA: + mov r1, #0x0 + ldrsh r0, [r0, r1] + cmp r0, r4 + bne _02079AD8 + add r0, r1, #0x0 + pop {r4-r5} + bx lr +_02079AD8: + mov r0, #0x1 + pop {r4-r5} + bx lr +_02079ADE: + mov r5, #0x80 + tst r5, r3 + beq _02079B04 + sub r3, r4, #0x1 + strh r3, [r0, #0x0] + ldrsh r2, [r0, r2] + cmp r2, #0x0 + bgt _02079AF0 + strh r1, [r0, #0x0] +_02079AF0: + mov r1, #0x0 + ldrsh r0, [r0, r1] + cmp r0, r4 + bne _02079AFE + add r0, r1, #0x0 + pop {r4-r5} + bx lr +_02079AFE: + mov r0, #0x2 + pop {r4-r5} + bx lr +_02079B04: + mov r5, #0x20 + tst r5, r3 + beq _02079B2E + add r1, r4, #0x0 + sub r1, #0xa + strh r1, [r0, #0x0] + ldrsh r1, [r0, r2] + cmp r1, #0x0 + bgt _02079B1A + mov r1, #0x1 + strh r1, [r0, #0x0] +_02079B1A: + mov r1, #0x0 + ldrsh r0, [r0, r1] + cmp r0, r4 + bne _02079B28 + add r0, r1, #0x0 + pop {r4-r5} + bx lr +_02079B28: + mov r0, #0x2 + pop {r4-r5} + bx lr +_02079B2E: + mov r5, #0x10 + tst r3, r5 + beq _02079B56 + add r3, r4, #0x0 + add r3, #0xa + strh r3, [r0, #0x0] + ldrsh r2, [r0, r2] + cmp r2, r1 + ble _02079B42 + strh r1, [r0, #0x0] +_02079B42: + mov r1, #0x0 + ldrsh r0, [r0, r1] + cmp r0, r4 + bne _02079B50 + add r0, r1, #0x0 + pop {r4-r5} + bx lr +_02079B50: + mov r0, #0x1 + pop {r4-r5} + bx lr +_02079B56: + add r0, r2, #0x0 + pop {r4-r5} + bx lr + .balign 4 +_02079B5C: .word 0x021C48B8 + + thumb_func_start sub_02079B60 +sub_02079B60: ; 0x02079B60 + push {r4-r7, lr} + sub sp, #0x14 + add r7, r1, #0x0 + add r6, r0, #0x0 + ldr r1, [sp, #0x28] + add r0, r3, #0x0 + str r2, [sp, #0x4] + ldr r5, [sp, #0x2c] + ldr r4, [sp, #0x34] + bl sub_020065A4 + add r1, r0, #0x0 + add r0, r7, #0x0 + bl sub_020169D8 + add r7, r0, #0x0 + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x28] + add r2, r7, #0x0 + bl sub_02006774 + ldr r0, [sp, #0x30] + cmp r0, #0x0 + beq _02079B9A + cmp r0, #0x1 + beq _02079BC6 + cmp r0, #0x2 + beq _02079C10 + b _02079C36 +_02079B9A: + add r0, r7, #0x0 + add r1, sp, #0x10 + blx sub_020B0088 + cmp r4, #0x0 + bne _02079BAE + ldr r0, [sp, #0x10] + ldr r0, [r0, #0x10] + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_02079BAE: + add r0, sp, #0x18 + ldrh r0, [r0, #0x20] + lsl r1, r5, #0x18 + lsr r1, r1, #0x18 + str r0, [sp, #0x0] + ldr r2, [sp, #0x10] + add r0, r6, #0x0 + ldr r2, [r2, #0x14] + add r3, r4, #0x0 + bl sub_02017E14 + b _02079C36 +_02079BC6: + add r0, r7, #0x0 + add r1, sp, #0xc + blx sub_020B0180 + cmp r4, #0x0 + bne _02079BDA + ldr r0, [sp, #0xc] + ldr r0, [r0, #0x8] + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_02079BDA: + lsl r1, r5, #0x18 + add r0, r6, #0x0 + lsr r1, r1, #0x18 + bl sub_0201886C + cmp r0, #0x0 + beq _02079BF8 + ldr r2, [sp, #0xc] + lsl r1, r5, #0x18 + add r0, r6, #0x0 + lsr r1, r1, #0x18 + add r2, #0xc + add r3, r4, #0x0 + bl sub_02017DFC +_02079BF8: + add r0, sp, #0x18 + ldrh r0, [r0, #0x20] + lsl r1, r5, #0x18 + lsr r1, r1, #0x18 + str r0, [sp, #0x0] + ldr r2, [sp, #0xc] + add r0, r6, #0x0 + add r2, #0xc + add r3, r4, #0x0 + bl sub_02017CE8 + b _02079C36 +_02079C10: + add r0, r7, #0x0 + add r1, sp, #0x8 + blx sub_020B0138 + cmp r4, #0x0 + bne _02079C24 + ldr r0, [sp, #0x8] + ldr r0, [r0, #0x8] + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_02079C24: + ldr r1, [sp, #0x8] + add r3, sp, #0x18 + lsl r0, r5, #0x18 + ldrh r3, [r3, #0x20] + ldr r1, [r1, #0xc] + lsr r0, r0, #0x18 + add r2, r4, #0x0 + bl sub_02017FB4 +_02079C36: + add r0, r7, #0x0 + bl sub_02016A18 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_02079C40 +sub_02079C40: ; 0x02079C40 + push {r3-r7, lr} + add r5, r2, #0x0 + add r6, r0, #0x0 + add r0, r1, #0x0 + add r1, r5, #0x0 + add r7, r3, #0x0 + bl sub_020065A4 + add r1, r0, #0x0 + ldr r0, [sp, #0x18] + bl sub_02016998 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02006774 + add r0, r4, #0x0 + add r1, r7, #0x0 + blx sub_020B0180 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02079C70 +sub_02079C70: ; 0x02079C70 + push {r3, lr} + bl sub_020462AC + bl sub_0205F184 + pop {r3, pc} + + thumb_func_start sub_02079C7C +sub_02079C7C: ; 0x02079C7C + push {r3-r5, lr} + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + bl sub_02015F1C + bl sub_0201E6D8 + bl sub_0201E740 + mov r1, #0x1 + lsl r1, r1, #0x1a + ldr r0, [r1, #0x0] + ldr r2, _02079DA0 ; =0xFFFFE0FF + and r0, r2 + str r0, [r1, #0x0] + ldr r0, _02079DA4 ; =0x04001000 + ldr r3, [r0, #0x0] + and r2, r3 + str r2, [r0, #0x0] + ldr r3, [r1, #0x0] + ldr r2, _02079DA8 ; =0xFFFF1FFF + and r3, r2 + str r3, [r1, #0x0] + ldr r3, [r0, #0x0] + add r1, #0x50 + and r2, r3 + str r2, [r0, #0x0] + mov r2, #0x0 + strh r2, [r1, #0x0] + add r0, #0x50 + strh r2, [r0, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + mov r2, #0x1 + mov r0, #0x3 + mov r1, #0x13 + lsl r2, r2, #0x12 + bl sub_0201681C + ldr r1, _02079DAC ; =0x0000069C + add r0, r4, #0x0 + mov r2, #0x13 + bl sub_02006268 + ldr r2, _02079DAC ; =0x0000069C + mov r1, #0x0 + add r5, r0, #0x0 + blx sub_020DF4A4 + add r0, r4, #0x0 + bl sub_0200628C + mov r1, #0x93 + lsl r1, r1, #0x2 + str r0, [r5, r1] + mov r0, #0x13 + bl sub_02016B94 + mov r1, #0x1 + str r0, [r5, #0x0] + mov r0, #0x13 + add r2, r1, #0x0 + bl sub_02014BF4 + mov r1, #0x2d + lsl r1, r1, #0x4 + str r0, [r5, r1] + mov r0, #0x0 + mov r1, #0x13 + bl sub_02002C84 + bl sub_0201CC08 + mov r0, #0x4 + bl sub_0201CC24 + add r0, r5, #0x0 + bl sub_0207B028 + bl sub_02079F58 + ldr r0, [r5, #0x0] + bl sub_02079F78 + add r0, r5, #0x0 + bl sub_0207A0CC + bl sub_0207A188 + add r0, r5, #0x0 + bl sub_0207EF6C + add r0, r5, #0x0 + bl sub_0207A1A0 + add r0, r5, #0x0 + bl sub_0207AAB0 + add r0, r5, #0x0 + bl sub_0207C328 + add r0, r5, #0x0 + bl sub_0207C448 + add r0, r5, #0x0 + bl sub_0207F840 + add r0, r5, #0x0 + bl sub_0207C71C + add r0, r5, #0x0 + bl sub_0207C77C + add r0, r5, #0x0 + bl sub_0207D5BC + add r0, r5, #0x0 + bl sub_0207AF58 + add r0, r5, #0x0 + bl sub_0207F95C + add r0, r5, #0x0 + bl sub_0207F098 + ldr r0, _02079DB0 ; =sub_02079F24 + add r1, r5, #0x0 + bl sub_02015F10 + bl sub_0201E788 + mov r1, #0x0 + mov r0, #0x3d + add r2, r1, #0x0 + bl sub_0200433C + bl sub_02033F20 + mov r0, #0x1 + pop {r3-r5, pc} + nop +_02079DA0: .word 0xFFFFE0FF +_02079DA4: .word 0x04001000 +_02079DA8: .word 0xFFFF1FFF +_02079DAC: .word 0x0000069C +_02079DB0: .word sub_02079F24 + 1 + + thumb_func_start sub_02079DB4 +sub_02079DB4: ; 0x02079DB4 + push {r3-r5, lr} + add r4, r1, #0x0 + bl sub_02006278 + ldr r1, [r4, #0x0] + add r5, r0, #0x0 + cmp r1, #0x13 + bhi _02079EA2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r4, #0 + lsl r4, r6, #0 + lsl r4, r7, #0 + lsl r4, r0, #0x1 + lsl r4, r1, #0x1 + lsl r4, r2, #0x1 + lsl r4, r3, #0x1 + lsl r4, r4, #0x1 + lsl r4, r5, #0x1 + lsl r4, r6, #0x1 + lsl r4, r7, #0x1 + lsl r4, r0, #0x2 + lsl r4, r1, #0x2 + lsl r4, r2, #0x2 + lsl r4, r3, #0x2 + lsl r4, r4, #0x2 + lsl r4, r5, #0x2 + lsl r4, r6, #0x2 + lsl r4, r7, #0x2 + lsl r4, r0, #0x3 + mov r0, #0x0 + mov r1, #0x13 + bl sub_02079A70 + mov r0, #0x1 + str r0, [r4, #0x0] + b _02079EA2 +_02079E06: + .byte 0x00, 0xF0, 0x67, 0xFA, 0x20, 0x60, 0x49, 0xE0, 0x00, 0xF0 + .byte 0x7F, 0xFA, 0x20, 0x60, 0x45, 0xE0, 0x00, 0xF0, 0x17, 0xFB, 0x20, 0x60, 0x41, 0xE0, 0x00, 0xF0 + .byte 0x1D, 0xFB, 0x20, 0x60, 0x3D, 0xE0, 0x00, 0xF0, 0x23, 0xFB, 0x20, 0x60, 0x39, 0xE0, 0x00, 0xF0 + .byte 0x29, 0xFB, 0x20, 0x60, 0x35, 0xE0, 0x00, 0xF0, 0x2F, 0xFB, 0x20, 0x60, 0x31, 0xE0, 0x00, 0xF0 + .byte 0x9D, 0xFB, 0x20, 0x60, 0x2D, 0xE0, 0x00, 0xF0, 0x05, 0xFC, 0x20, 0x60, 0x29, 0xE0, 0x00, 0xF0 + .byte 0x87, 0xFC, 0x20, 0x60, 0x25, 0xE0, 0x00, 0xF0, 0x91, 0xFC, 0x20, 0x60, 0x21, 0xE0, 0x00, 0xF0 + .byte 0x97, 0xFC, 0x20, 0x60, 0x1D, 0xE0, 0x00, 0xF0, 0x9D, 0xFC, 0x20, 0x60, 0x19, 0xE0, 0x00, 0xF0 + .byte 0xD3, 0xFC, 0x20, 0x60, 0x15, 0xE0, 0x00, 0xF0, 0x05, 0xFD, 0x20, 0x60, 0x11, 0xE0, 0x00, 0xF0 + .byte 0xCF, 0xFD, 0x20, 0x60, 0x0D, 0xE0, 0x00, 0xF0, 0xF3, 0xFD, 0x20, 0x60, 0x09, 0xE0, 0x00, 0xF0 + .byte 0xFB, 0xFD, 0x20, 0x60, 0x05, 0xE0, 0x00, 0xF0, 0xFF, 0xFD, 0x01, 0x28, 0x01, 0xD1, 0x01, 0x20 + .byte 0x38, 0xBD +_02079EA2: + add r0, r5, #0x0 + bl sub_0207C3F4 + add r0, r5, #0x0 + bl sub_0207CC88 + add r0, r5, #0x0 + bl sub_0207D3F4 + ldr r0, _02079EC8 ; =0x00000404 + ldr r0, [r5, r0] + bl sub_0200BC1C + add r0, r5, #0x0 + bl sub_0207F008 + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02079EC8: .word 0x00000404 + + thumb_func_start sub_02079ECC +sub_02079ECC: ; 0x02079ECC + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_02006278 + add r5, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + add r0, r5, #0x0 + bl sub_0207F068 + add r0, r5, #0x0 + bl sub_0207C3D4 + add r0, r5, #0x0 + bl sub_0207D74C + ldr r0, [r5, #0x0] + bl sub_0207A08C + bl sub_0201CD04 + bl sub_0201C29C + add r0, r5, #0x0 + bl sub_0207A264 + mov r0, #0x0 + bl sub_02002CC0 + ldr r0, _02079F20 ; =0x04000050 + mov r1, #0x0 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + bl sub_0200627C + mov r0, #0x13 + bl sub_020168D0 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_02079F20: .word 0x04000050 + + thumb_func_start sub_02079F24 +sub_02079F24: ; 0x02079F24 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_0201AB60 + mov r0, #0xae + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_020081C4 + bl sub_0201C30C + bl sub_0200BC30 + ldr r3, _02079F50 ; =0x027E0000 + ldr r1, _02079F54 ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + nop +_02079F50: .word 0x027E0000 +_02079F54: .word 0x00003FF8 + + thumb_func_start sub_02079F58 +sub_02079F58: ; 0x02079F58 + push {r4, lr} + sub sp, #0x28 + ldr r4, _02079F74 ; =0x020FA6C0 + add r3, sp, #0x0 + mov r2, #0x5 +_02079F62: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02079F62 + add r0, sp, #0x0 + bl sub_0201E66C + add sp, #0x28 + pop {r4, pc} + .balign 4 +_02079F74: .word 0x020FA6C0 + + thumb_func_start sub_02079F78 +sub_02079F78: ; 0x02079F78 + push {r4-r5, lr} + sub sp, #0x9c + ldr r5, _0207A074 ; =0x020FA624 + add r3, sp, #0x8c + add r4, r0, #0x0 + add r2, r3, #0x0 + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + bl sub_02016BBC + ldr r5, _0207A078 ; =0x020FA650 + add r3, sp, #0x70 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x1 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02018744 + ldr r5, _0207A07C ; =0x020FA66C + add r3, sp, #0x54 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x2 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02018744 + add r0, r4, #0x0 + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x88 + bl sub_0201AEE4 + ldr r5, _0207A080 ; =0x020FA688 + add r3, sp, #0x38 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x3 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + ldr r5, _0207A084 ; =0x020FA6A4 + add r3, sp, #0x1c + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x4 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_02018744 + ldr r5, _0207A088 ; =0x020FA634 + add r3, sp, #0x0 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x5 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + mov r0, #0x1 + mov r1, #0x20 + mov r2, #0x0 + mov r3, #0x13 + bl sub_02017F18 + mov r0, #0x4 + mov r1, #0x20 + mov r2, #0x0 + mov r3, #0x13 + bl sub_02017F18 + add sp, #0x9c + pop {r4-r5, pc} + nop +_0207A074: .word 0x020FA624 +_0207A078: .word 0x020FA650 +_0207A07C: .word 0x020FA66C +_0207A080: .word 0x020FA688 +_0207A084: .word 0x020FA6A4 +_0207A088: .word 0x020FA634 + + thumb_func_start sub_0207A08C +sub_0207A08C: ; 0x0207A08C + push {r4, lr} + add r4, r0, #0x0 + bl sub_0201E6D8 + bl sub_0201E740 + add r0, r4, #0x0 + mov r1, #0x5 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_020178A0 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_020178A0 + mov r0, #0x13 + add r1, r4, #0x0 + bl sub_02016A8C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0207A0CC +sub_0207A0CC: ; 0x0207A0CC + push {r4, lr} + sub sp, #0x10 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + add r4, r0, #0x0 + str r1, [sp, #0x8] + mov r0, #0x13 + str r0, [sp, #0xc] + ldr r2, [r4, #0x0] + mov r0, #0x27 + mov r3, #0x3 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x13 + str r0, [sp, #0xc] + mov r1, #0x3 + ldr r2, [r4, #0x0] + mov r0, #0x27 + add r3, r1, #0x0 + bl sub_020068C8 + mov r2, #0x0 + str r2, [sp, #0x0] + mov r0, #0x13 + str r0, [sp, #0x4] + mov r0, #0x27 + mov r1, #0x1 + add r3, r2, #0x0 + bl sub_02006930 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x13 + str r0, [sp, #0xc] + ldr r2, [r4, #0x0] + mov r0, #0x27 + mov r1, #0xb + mov r3, #0x2 + bl sub_020068C8 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x13 + str r0, [sp, #0xc] + ldr r2, [r4, #0x0] + mov r0, #0x27 + mov r1, #0x2 + mov r3, #0x4 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x13 + str r0, [sp, #0xc] + ldr r2, [r4, #0x0] + mov r0, #0x27 + mov r1, #0x10 + mov r3, #0x5 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x13 + str r0, [sp, #0xc] + ldr r2, [r4, #0x0] + mov r0, #0x27 + mov r1, #0xf + mov r3, #0x5 + bl sub_020068C8 + mov r3, #0x0 + str r3, [sp, #0x0] + mov r0, #0x13 + str r0, [sp, #0x4] + mov r0, #0x27 + mov r1, #0xe + mov r2, #0x4 + bl sub_02006930 + add sp, #0x10 + pop {r4, pc} + + thumb_func_start sub_0207A188 +sub_0207A188: ; 0x0207A188 + push {r3, lr} + mov r0, #0x8 + str r0, [sp, #0x0] + ldr r0, _0207A19C ; =0x04000050 + mov r1, #0x1 + mov r2, #0x1e + mov r3, #0x17 + blx sub_020C74DC + pop {r3, pc} + .balign 4 +_0207A19C: .word 0x04000050 + + thumb_func_start sub_0207A1A0 +sub_0207A1A0: ; 0x0207A1A0 + push {r4, lr} + mov r2, #0x65 + add r4, r0, #0x0 + mov r0, #0x0 + mov r1, #0x1a + lsl r2, r2, #0x2 + mov r3, #0x13 + bl sub_0200A86C + ldr r1, _0207A250 ; =0x00000674 + mov r2, #0x79 + str r0, [r4, r1] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + mov r3, #0x13 + bl sub_0200A86C + ldr r1, _0207A254 ; =0x00000678 + mov r2, #0x0 + str r0, [r4, r1] + mov r0, #0x1 + mov r1, #0x2 + mov r3, #0x13 + bl sub_0200B870 + mov r1, #0x67 + lsl r1, r1, #0x4 + str r0, [r4, r1] + mov r0, #0x13 + bl sub_0200AA80 + ldr r1, _0207A258 ; =0x0000067C + str r0, [r4, r1] + mov r0, #0xc + mov r1, #0x13 + bl sub_020219F4 + mov r1, #0x25 + lsl r1, r1, #0x4 + str r0, [r4, r1] + mov r0, #0xc + mov r1, #0x13 + bl sub_020219F4 + mov r1, #0x95 + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0x8 + mov r1, #0x13 + bl sub_020219F4 + mov r1, #0x96 + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0x80 + mov r1, #0x13 + bl sub_020219F4 + mov r1, #0x1a + lsl r1, r1, #0x6 + str r0, [r4, r1] + mov r2, #0x93 + mov r0, #0x0 + mov r1, #0x1a + lsl r2, r2, #0x2 + mov r3, #0x13 + bl sub_0200A86C + ldr r1, _0207A25C ; =0x00000688 + str r0, [r4, r1] + mov r0, #0x8 + mov r1, #0x13 + bl sub_020219F4 + ldr r2, _0207A260 ; =0x00000684 + str r0, [r4, r2] + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _0207A24C + ldr r0, [r4, r2] + bl sub_02021E28 +_0207A24C: + pop {r4, pc} + nop +_0207A250: .word 0x00000674 +_0207A254: .word 0x00000678 +_0207A258: .word 0x0000067C +_0207A25C: .word 0x00000688 +_0207A260: .word 0x00000684 + + thumb_func_start sub_0207A264 +sub_0207A264: ; 0x0207A264 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0207A2C4 ; =0x00000688 + ldr r0, [r4, r0] + bl sub_0200A8B8 + ldr r0, _0207A2C8 ; =0x00000678 + ldr r0, [r4, r0] + bl sub_0200A8B8 + ldr r0, _0207A2CC ; =0x00000674 + ldr r0, [r4, r0] + bl sub_0200A8B8 + mov r0, #0x67 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_0200B990 + ldr r0, _0207A2D0 ; =0x0000067C + ldr r0, [r4, r0] + bl sub_0200AB18 + mov r0, #0x25 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_02021A20 + mov r0, #0x95 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02021A20 + mov r0, #0x96 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02021A20 + mov r0, #0x1a + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + bl sub_02021A20 + ldr r0, _0207A2D4 ; =0x00000684 + ldr r0, [r4, r0] + bl sub_02021A20 + pop {r4, pc} + .balign 4 +_0207A2C4: .word 0x00000688 +_0207A2C8: .word 0x00000678 +_0207A2CC: .word 0x00000674 +_0207A2D0: .word 0x0000067C +_0207A2D4: .word 0x00000684 + + thumb_func_start sub_0207A2D8 +sub_0207A2D8: ; 0x0207A2D8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0200E308 + cmp r0, #0x1 + bne _0207A30C + add r0, r4, #0x0 + bl sub_0207F8D0 + add r0, r4, #0x0 + bl sub_0207AF20 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x2 + bne _0207A300 + mov r0, #0x9 + pop {r4, pc} +_0207A300: + cmp r0, #0x4 + bne _0207A308 + mov r0, #0xf + pop {r4, pc} +_0207A308: + mov r0, #0x2 + pop {r4, pc} +_0207A30C: + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start sub_0207A310 +sub_0207A310: ; 0x0207A310 + push {r4-r6, lr} + ldr r3, _0207A438 ; =0x0000068F + add r4, r0, #0x0 + ldrb r1, [r4, r3] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + cmp r1, #0x1 + bne _0207A32E + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + strb r1, [r0, #0x17] + mov r0, #0x12 + pop {r4-r6, pc} +_0207A32E: + ldr r2, _0207A43C ; =0x021C48B8 + mov r1, #0x20 + ldr r5, [r2, #0x4c] + add r6, r5, #0x0 + tst r6, r1 + beq _0207A344 + sub r1, #0x21 + bl sub_0207B178 + mov r0, #0x2 + pop {r4-r6, pc} +_0207A344: + mov r1, #0x10 + tst r1, r5 + beq _0207A354 + mov r1, #0x1 + bl sub_0207B178 + mov r0, #0x2 + pop {r4-r6, pc} +_0207A354: + mov r1, #0x40 + add r6, r5, #0x0 + tst r6, r1 + beq _0207A366 + sub r1, #0x41 + bl sub_0207B3F0 + mov r0, #0x2 + pop {r4-r6, pc} +_0207A366: + mov r1, #0x80 + tst r1, r5 + beq _0207A376 + mov r1, #0x1 + bl sub_0207B3F0 + mov r0, #0x2 + pop {r4-r6, pc} +_0207A376: + ldr r1, [r2, #0x48] + mov r0, #0x2 + tst r0, r1 + beq _0207A394 + sub r3, #0xb2 + add r0, r3, #0x0 + bl sub_020054C8 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + strb r1, [r0, #0x17] + mov r0, #0x12 + pop {r4-r6, pc} +_0207A394: + mov r0, #0x1 + tst r0, r1 + beq _0207A420 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x3 + bne _0207A3BE + sub r0, r3, #0x3 + ldrsb r0, [r4, r0] + cmp r0, #0x4 + bne _0207A3BE + sub r3, #0xb2 + add r0, r3, #0x0 + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_0207C23C + pop {r4-r6, pc} +_0207A3BE: + ldr r0, _0207A440 ; =0x0000068C + ldrsb r1, [r4, r0] + cmp r1, #0x3 + bne _0207A3D6 + add r0, #0x10 + bl sub_020054C8 + ldr r0, _0207A444 ; =0x0000068E + mov r1, #0x0 + strb r1, [r4, r0] + mov r0, #0x3 + pop {r4-r6, pc} +_0207A3D6: + cmp r1, #0x5 + bne _0207A3EA + add r0, #0x10 + bl sub_020054C8 + ldr r0, _0207A444 ; =0x0000068E + mov r1, #0x0 + strb r1, [r4, r0] + mov r0, #0x5 + pop {r4-r6, pc} +_0207A3EA: + cmp r1, #0x6 + bne _0207A408 + add r1, r0, #0x0 + add r1, #0xd + ldrb r1, [r4, r1] + cmp r1, #0x0 + beq _0207A420 + sub r0, #0xaf + bl sub_020054C8 + ldr r0, _0207A444 ; =0x0000068E + mov r1, #0x0 + strb r1, [r4, r0] + mov r0, #0xb + pop {r4-r6, pc} +_0207A408: + cmp r1, #0x7 + bne _0207A420 + sub r0, #0xaf + bl sub_020054C8 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + strb r1, [r0, #0x17] + mov r0, #0x12 + pop {r4-r6, pc} +_0207A420: + add r0, r4, #0x0 + bl sub_0207B200 + cmp r0, #0x1 + bne _0207A434 + ldr r0, _0207A444 ; =0x0000068E + mov r1, #0x2 + strb r1, [r4, r0] + mov r0, #0xe + pop {r4-r6, pc} +_0207A434: + mov r0, #0x2 + pop {r4-r6, pc} + .balign 4 +_0207A438: .word 0x0000068F +_0207A43C: .word 0x021C48B8 +_0207A440: .word 0x0000068C +_0207A444: .word 0x0000068E + + thumb_func_start sub_0207A448 +sub_0207A448: ; 0x0207A448 + push {r3, lr} + bl sub_0207B66C + cmp r0, #0x1 + bne _0207A456 + mov r0, #0x7 + pop {r3, pc} +_0207A456: + mov r0, #0x3 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0207A45C +sub_0207A45C: ; 0x0207A45C + push {r3, lr} + bl sub_0207B788 + cmp r0, #0x1 + bne _0207A46A + mov r0, #0x2 + pop {r3, pc} +_0207A46A: + mov r0, #0x4 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0207A470 +sub_0207A470: ; 0x0207A470 + push {r3, lr} + bl sub_0207BAEC + cmp r0, #0x1 + bne _0207A47E + mov r0, #0x7 + pop {r3, pc} +_0207A47E: + mov r0, #0x5 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0207A484 +sub_0207A484: ; 0x0207A484 + push {r3, lr} + bl sub_0207BBF0 + cmp r0, #0x1 + bne _0207A492 + mov r0, #0x2 + pop {r3, pc} +_0207A492: + mov r0, #0x6 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0207A498 +sub_0207A498: ; 0x0207A498 + push {r4, lr} + ldr r1, _0207A568 ; =0x021C48B8 + add r4, r0, #0x0 + ldr r2, [r1, #0x48] + mov r1, #0x40 + add r3, r2, #0x0 + tst r3, r1 + beq _0207A4C2 + sub r1, #0x41 + bl sub_0207B878 + cmp r0, #0x1 + bne _0207A4BE + ldr r0, _0207A56C ; =0x000005DC + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_0207B8D8 +_0207A4BE: + mov r0, #0x7 + pop {r4, pc} +_0207A4C2: + mov r1, #0x80 + tst r1, r2 + beq _0207A4E2 + mov r1, #0x1 + bl sub_0207B878 + cmp r0, #0x1 + bne _0207A4DE + ldr r0, _0207A56C ; =0x000005DC + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_0207B8D8 +_0207A4DE: + mov r0, #0x7 + pop {r4, pc} +_0207A4E2: + mov r0, #0x1 + tst r0, r2 + beq _0207A542 + ldr r0, _0207A570 ; =0x0000068D + ldrb r1, [r4, r0] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + cmp r1, #0x4 + bne _0207A510 + add r0, #0xf + bl sub_020054C8 + ldr r0, _0207A574 ; =0x0000068E + mov r1, #0x0 + strb r1, [r4, r0] + sub r0, r0, #0x2 + ldrsb r0, [r4, r0] + cmp r0, #0x3 + bne _0207A50C + mov r0, #0x4 + pop {r4, pc} +_0207A50C: + mov r0, #0x6 + pop {r4, pc} +_0207A510: + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldrb r1, [r1, #0x12] + cmp r1, #0x1 + beq _0207A542 + sub r0, #0xb0 + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_0207CBE8 + ldr r2, _0207A570 ; =0x0000068D + mov r1, #0xf0 + ldrb r3, [r4, r2] + add r0, r3, #0x0 + bic r0, r1 + lsl r1, r3, #0x1c + lsr r1, r1, #0x1c + lsl r1, r1, #0x1c + lsr r1, r1, #0x18 + orr r0, r1 + strb r0, [r4, r2] + mov r0, #0x8 + pop {r4, pc} +_0207A542: + mov r0, #0x2 + tst r0, r2 + beq _0207A564 + ldr r0, _0207A578 ; =0x0000069C + bl sub_020054C8 + ldr r0, _0207A574 ; =0x0000068E + mov r1, #0x0 + strb r1, [r4, r0] + sub r0, r0, #0x2 + ldrsb r0, [r4, r0] + cmp r0, #0x3 + bne _0207A560 + mov r0, #0x4 + pop {r4, pc} +_0207A560: + mov r0, #0x6 + pop {r4, pc} +_0207A564: + mov r0, #0x7 + pop {r4, pc} + .balign 4 +_0207A568: .word 0x021C48B8 +_0207A56C: .word 0x000005DC +_0207A570: .word 0x0000068D +_0207A574: .word 0x0000068E +_0207A578: .word 0x0000069C + + thumb_func_start sub_0207A57C +sub_0207A57C: ; 0x0207A57C + push {r4, lr} + ldr r1, _0207A644 ; =0x021C48B8 + add r4, r0, #0x0 + ldr r2, [r1, #0x48] + mov r1, #0x40 + add r3, r2, #0x0 + tst r3, r1 + beq _0207A5A6 + sub r1, #0x41 + bl sub_0207B878 + cmp r0, #0x1 + bne _0207A5A2 + ldr r0, _0207A648 ; =0x000005DC + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_0207B8D8 +_0207A5A2: + mov r0, #0x8 + pop {r4, pc} +_0207A5A6: + mov r1, #0x80 + tst r1, r2 + beq _0207A5C6 + mov r1, #0x1 + bl sub_0207B878 + cmp r0, #0x1 + bne _0207A5C2 + ldr r0, _0207A648 ; =0x000005DC + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_0207B8D8 +_0207A5C2: + mov r0, #0x8 + pop {r4, pc} +_0207A5C6: + mov r0, #0x1 + tst r0, r2 + beq _0207A622 + mov r0, #0x43 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_020200A0 + ldr r0, _0207A64C ; =0x0000068D + ldrb r1, [r4, r0] + lsl r2, r1, #0x1c + lsr r2, r2, #0x1c + cmp r2, #0x4 + beq _0207A618 + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + cmp r2, r1 + beq _0207A618 + sub r0, #0xb0 + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_0207B9C0 + ldr r1, _0207A64C ; =0x0000068D + add r0, r4, #0x0 + ldrb r2, [r4, r1] + lsl r1, r2, #0x1c + lsl r2, r2, #0x18 + lsr r1, r1, #0x1c + lsr r2, r2, #0x1c + bl sub_0207CB08 + add r0, r4, #0x0 + bl sub_0207ED30 + add r0, r4, #0x0 + bl sub_0207B8D8 + b _0207A61E +_0207A618: + ldr r0, _0207A650 ; =0x000005DD + bl sub_020054C8 +_0207A61E: + mov r0, #0x7 + pop {r4, pc} +_0207A622: + mov r0, #0x2 + tst r0, r2 + beq _0207A63E + ldr r0, _0207A650 ; =0x000005DD + bl sub_020054C8 + mov r0, #0x43 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_020200A0 + mov r0, #0x7 + pop {r4, pc} +_0207A63E: + mov r0, #0x8 + pop {r4, pc} + nop +_0207A644: .word 0x021C48B8 +_0207A648: .word 0x000005DC +_0207A64C: .word 0x0000068D +_0207A650: .word 0x000005DD + + thumb_func_start sub_0207A654 +sub_0207A654: ; 0x0207A654 + push {r4, lr} + ldr r1, _0207A750 ; =0x021C48B8 + add r4, r0, #0x0 + ldr r2, [r1, #0x48] + mov r1, #0x20 + add r3, r2, #0x0 + tst r3, r1 + beq _0207A66E + sub r1, #0x21 + bl sub_0207B178 + mov r0, #0x9 + pop {r4, pc} +_0207A66E: + mov r1, #0x10 + tst r1, r2 + beq _0207A67E + mov r1, #0x1 + bl sub_0207B178 + mov r0, #0x9 + pop {r4, pc} +_0207A67E: + mov r1, #0x40 + add r3, r2, #0x0 + tst r3, r1 + beq _0207A6A0 + sub r1, #0x41 + bl sub_0207B878 + cmp r0, #0x1 + bne _0207A69C + ldr r0, _0207A754 ; =0x000005DC + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_0207B8D8 +_0207A69C: + mov r0, #0x9 + pop {r4, pc} +_0207A6A0: + mov r1, #0x80 + tst r1, r2 + beq _0207A6C0 + mov r1, #0x1 + bl sub_0207B878 + cmp r0, #0x1 + bne _0207A6BC + ldr r0, _0207A754 ; =0x000005DC + bl sub_020054C8 + add r0, r4, #0x0 + bl sub_0207B8D8 +_0207A6BC: + mov r0, #0x9 + pop {r4, pc} +_0207A6C0: + mov r0, #0x1 + tst r0, r2 + beq _0207A72C + ldr r0, _0207A758 ; =0x000005DD + bl sub_020054C8 + ldr r0, _0207A75C ; =0x0000068D + ldrb r0, [r4, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #0x4 + beq _0207A712 + lsl r0, r0, #0x1 + add r1, r4, r0 + mov r0, #0xa1 + lsl r0, r0, #0x2 + ldrh r0, [r1, r0] + bl sub_0206EA54 + cmp r0, #0x1 + bne _0207A712 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0207A712 + mov r0, #0x45 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200C63C + add r0, r4, #0x0 + bl sub_0207BD58 + add r0, r4, #0x0 + bl sub_0207EDB4 + mov r0, #0xa + pop {r4, pc} +_0207A712: + ldr r0, _0207A75C ; =0x0000068D + ldrb r0, [r4, r0] + lsl r0, r0, #0x1c + lsr r2, r0, #0x1c + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + strb r2, [r1, #0x16] + ldr r0, [r4, r0] + mov r1, #0x0 + strb r1, [r0, #0x17] + mov r0, #0x12 + pop {r4, pc} +_0207A72C: + mov r0, #0x2 + tst r0, r2 + beq _0207A74C + ldr r0, _0207A758 ; =0x000005DD + bl sub_020054C8 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + mov r2, #0x4 + strb r2, [r1, #0x16] + ldr r0, [r4, r0] + mov r1, #0x1 + strb r1, [r0, #0x17] + mov r0, #0x12 + pop {r4, pc} +_0207A74C: + mov r0, #0x9 + pop {r4, pc} + .balign 4 +_0207A750: .word 0x021C48B8 +_0207A754: .word 0x000005DC +_0207A758: .word 0x000005DD +_0207A75C: .word 0x0000068D + + thumb_func_start sub_0207A760 +sub_0207A760: ; 0x0207A760 + push {r3, lr} + ldr r1, _0207A778 ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #0x3 + tst r1, r2 + beq _0207A774 + bl sub_0207B8D8 + mov r0, #0x9 + pop {r3, pc} +_0207A774: + mov r0, #0xa + pop {r3, pc} + .balign 4 +_0207A778: .word 0x021C48B8 + + thumb_func_start sub_0207A77C +sub_0207A77C: ; 0x0207A77C + push {r3, lr} + bl sub_0207BE68 + cmp r0, #0x1 + bne _0207A78A + mov r0, #0xd + pop {r3, pc} +_0207A78A: + mov r0, #0xb + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0207A790 +sub_0207A790: ; 0x0207A790 + push {r3, lr} + bl sub_0207BF90 + cmp r0, #0x1 + bne _0207A79E + mov r0, #0x2 + pop {r3, pc} +_0207A79E: + mov r0, #0xc + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0207A7A4 +sub_0207A7A4: ; 0x0207A7A4 + push {r3-r5, lr} + ldr r3, _0207A80C ; =0x021C48B8 + mov r1, #0x20 + ldr r2, [r3, #0x4c] + add r4, r0, #0x0 + add r5, r2, #0x0 + tst r5, r1 + beq _0207A7BE + sub r1, #0x21 + bl sub_0207C07C + mov r0, #0xd + pop {r3-r5, pc} +_0207A7BE: + mov r1, #0x10 + tst r1, r2 + beq _0207A7CE + mov r1, #0x1 + bl sub_0207C07C + mov r0, #0xd + pop {r3-r5, pc} +_0207A7CE: + mov r1, #0x40 + add r5, r2, #0x0 + tst r5, r1 + beq _0207A7E0 + sub r1, #0x44 + bl sub_0207C07C + mov r0, #0xd + pop {r3-r5, pc} +_0207A7E0: + mov r1, #0x80 + tst r1, r2 + beq _0207A7F0 + mov r1, #0x4 + bl sub_0207C07C + mov r0, #0xd + pop {r3-r5, pc} +_0207A7F0: + ldr r1, [r3, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _0207A808 + ldr r0, _0207A810 ; =0x000005DD + bl sub_020054C8 + ldr r0, _0207A814 ; =0x0000068E + mov r1, #0x0 + strb r1, [r4, r0] + mov r0, #0xc + pop {r3-r5, pc} +_0207A808: + mov r0, #0xd + pop {r3-r5, pc} + .balign 4 +_0207A80C: .word 0x021C48B8 +_0207A810: .word 0x000005DD +_0207A814: .word 0x0000068E + + thumb_func_start sub_0207A818 +sub_0207A818: ; 0x0207A818 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0207FB28 + cmp r0, #0x1 + bne _0207A82A + ldr r0, _0207A878 ; =0x0000068E + ldrb r0, [r4, r0] + pop {r4, pc} +_0207A82A: + ldr r1, _0207A87C ; =0x00000695 + ldrb r0, [r4, r1] + cmp r0, #0x1 + bne _0207A874 + add r1, r1, #0x1 + ldrb r1, [r4, r1] + add r0, r4, #0x0 + bl sub_0207FC40 + add r1, r0, #0x0 + cmp r1, #0x7 + bne _0207A850 + ldr r2, _0207A880 ; =0x0000068F + mov r0, #0xf0 + ldrb r3, [r4, r2] + bic r3, r0 + mov r0, #0x10 + orr r0, r3 + strb r0, [r4, r2] +_0207A850: + mov r0, #0x2a + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + lsl r0, r0, #0x3 + lsr r0, r0, #0x1f + cmp r0, #0x1 + bne _0207A86E + cmp r1, #0x1 + beq _0207A866 + cmp r1, #0x7 + bne _0207A874 +_0207A866: + add r0, r4, #0x0 + bl sub_0207B0CC + b _0207A874 +_0207A86E: + add r0, r4, #0x0 + bl sub_0207B0CC +_0207A874: + mov r0, #0xe + pop {r4, pc} + .balign 4 +_0207A878: .word 0x0000068E +_0207A87C: .word 0x00000695 +_0207A880: .word 0x0000068F + + thumb_func_start sub_0207A884 +sub_0207A884: ; 0x0207A884 + push {r4-r6, lr} + sub sp, #0x8 + ldr r1, _0207AA00 ; =0x021C48B8 + add r5, r0, #0x0 + ldr r2, [r1, #0x48] + mov r1, #0x3 + tst r1, r2 + bne _0207A896 + b _0207A9FA +_0207A896: + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r1, [r5, r1] + ldrb r1, [r1, #0x11] + cmp r1, #0x2 + bne _0207A8BA + bl sub_0207B628 + add r6, r0, #0x0 + mov r0, #0x13 + bl sub_020669C0 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02069A64 + b _0207A8C0 +_0207A8BA: + bl sub_0207B628 + add r4, r0, #0x0 +_0207A8C0: + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r1, r4, #0x0 + ldr r0, [r0, #0x24] + bl sub_0208821C + ldr r0, _0207AA04 ; =0x0000068E + mov r2, #0x0 + strb r2, [r5, r0] + ldr r0, _0207AA08 ; =0x00000295 + mov r1, #0x13 + ldrb r6, [r5, r0] + add r0, r4, #0x0 + bl sub_020671BC + ldr r1, _0207AA08 ; =0x00000295 + strb r0, [r5, r1] + ldrb r0, [r5, r1] + cmp r6, r0 + beq _0207A8F4 + ldr r1, _0207AA04 ; =0x0000068E + mov r0, #0x1 + ldrb r2, [r5, r1] + orr r0, r2 + strb r0, [r5, r1] +_0207A8F4: + ldr r0, _0207AA0C ; =0x00000296 + mov r1, #0x14 + ldrb r6, [r5, r0] + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _0207AA0C ; =0x00000296 + strb r0, [r5, r1] + ldrb r0, [r5, r1] + cmp r6, r0 + beq _0207A916 + ldr r1, _0207AA04 ; =0x0000068E + mov r0, #0x2 + ldrb r2, [r5, r1] + orr r0, r2 + strb r0, [r5, r1] +_0207A916: + ldr r0, _0207AA10 ; =0x00000297 + mov r1, #0x15 + ldrb r6, [r5, r0] + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _0207AA10 ; =0x00000297 + strb r0, [r5, r1] + ldrb r0, [r5, r1] + cmp r6, r0 + beq _0207A938 + ldr r1, _0207AA04 ; =0x0000068E + mov r0, #0x4 + ldrb r2, [r5, r1] + orr r0, r2 + strb r0, [r5, r1] +_0207A938: + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldrb r6, [r5, r0] + add r0, r4, #0x0 + mov r1, #0x16 + mov r2, #0x0 + bl sub_020671BC + mov r1, #0xa6 + lsl r1, r1, #0x2 + strb r0, [r5, r1] + ldrb r0, [r5, r1] + cmp r6, r0 + beq _0207A95E + ldr r1, _0207AA04 ; =0x0000068E + mov r0, #0x8 + ldrb r2, [r5, r1] + orr r0, r2 + strb r0, [r5, r1] +_0207A95E: + ldr r0, _0207AA14 ; =0x00000299 + mov r1, #0x17 + ldrb r6, [r5, r0] + add r0, r4, #0x0 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _0207AA14 ; =0x00000299 + strb r0, [r5, r1] + ldrb r0, [r5, r1] + cmp r6, r0 + beq _0207A980 + ldr r1, _0207AA04 ; =0x0000068E + mov r0, #0x10 + ldrb r2, [r5, r1] + orr r0, r2 + strb r0, [r5, r1] +_0207A980: + add r0, r4, #0x0 + mov r1, #0x18 + mov r2, #0x0 + bl sub_020671BC + ldr r1, _0207AA18 ; =0x0000029A + strb r0, [r5, r1] + sub r1, #0x4e + ldr r0, [r5, r1] + ldrb r0, [r0, #0x11] + cmp r0, #0x2 + bne _0207A99E + add r0, r4, #0x0 + bl sub_02016A18 +_0207A99E: + mov r1, #0x7 + mov r0, #0x0 + lsl r1, r1, #0x6 + mov r2, #0x13 + bl sub_02002EEC + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r0, [r0, #0x4] + bl sub_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x13 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + ldr r2, _0207AA1C ; =0x000003E2 + mov r1, #0x1 + mov r3, #0xd + bl sub_0200CD68 + ldr r0, _0207AA04 ; =0x0000068E + ldrb r0, [r5, r0] + cmp r0, #0x0 + bne _0207A9E2 + add r0, r5, #0x0 + mov r1, #0xfe + bl sub_0207EECC + add sp, #0x8 + mov r0, #0x11 + pop {r4-r6, pc} +_0207A9E2: + add r0, r5, #0x0 + bl sub_0207F608 + add r0, r5, #0x0 + bl sub_0207CC24 + add r0, r5, #0x0 + bl sub_0207CF78 + add sp, #0x8 + mov r0, #0x10 + pop {r4-r6, pc} +_0207A9FA: + mov r0, #0xf + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_0207AA00: .word 0x021C48B8 +_0207AA04: .word 0x0000068E +_0207AA08: .word 0x00000295 +_0207AA0C: .word 0x00000296 +_0207AA10: .word 0x00000297 +_0207AA14: .word 0x00000299 +_0207AA18: .word 0x0000029A +_0207AA1C: .word 0x000003E2 + + thumb_func_start sub_0207AA20 +sub_0207AA20: ; 0x0207AA20 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0207AA68 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _0207AA62 + ldr r0, _0207AA6C ; =0x0000068E + mov r1, #0x0 + ldrb r2, [r5, r0] + mov r0, #0x1 +_0207AA36: + add r4, r0, #0x0 + lsl r4, r1 + add r3, r2, #0x0 + tst r3, r4 + beq _0207AA58 + add r0, r5, #0x0 + bl sub_0207EECC + ldr r0, _0207AA6C ; =0x0000068E + ldrb r1, [r5, r0] + eor r1, r4 + strb r1, [r5, r0] + ldrb r0, [r5, r0] + cmp r0, #0x0 + bne _0207AA62 + mov r0, #0x11 + pop {r3-r5, pc} +_0207AA58: + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #0x5 + blo _0207AA36 +_0207AA62: + mov r0, #0x10 + pop {r3-r5, pc} + nop +_0207AA68: .word 0x021C48B8 +_0207AA6C: .word 0x0000068E + + thumb_func_start sub_0207AA70 +sub_0207AA70: ; 0x0207AA70 + ldr r0, _0207AA84 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x3 + tst r0, r1 + beq _0207AA7E + mov r0, #0x12 + bx lr +_0207AA7E: + mov r0, #0x11 + bx lr + nop +_0207AA84: .word 0x021C48B8 + + thumb_func_start sub_0207AA88 +sub_0207AA88: ; 0x0207AA88 + push {r3, lr} + mov r0, #0x1 + mov r1, #0x13 + bl sub_02079A70 + mov r0, #0x13 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0207AA98 +sub_0207AA98: ; 0x0207AA98 + push {r3, lr} + bl sub_0200E308 + cmp r0, #0x1 + bne _0207AAA6 + mov r0, #0x1 + b _0207AAA8 +_0207AAA6: + mov r0, #0x0 +_0207AAA8: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0207AAB0 +sub_0207AAB0: ; 0x0207AAB0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0207B628 + mov r2, #0x93 + lsl r2, r2, #0x2 + add r1, r0, #0x0 + ldr r0, [r4, r2] + ldrb r0, [r0, #0x11] + cmp r0, #0x2 + bne _0207AAD2 + add r2, r2, #0x4 + add r0, r4, #0x0 + add r2, r4, r2 + bl sub_0207AAE0 + pop {r4, pc} +_0207AAD2: + add r2, r2, #0x4 + add r0, r4, #0x0 + add r2, r4, r2 + bl sub_0207AB0C + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0207AAE0 +sub_0207AAE0: ; 0x0207AAE0 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x13 + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_020669C0 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02069A64 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_0207AB0C + add r0, r4, #0x0 + bl sub_02016A18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0207AB0C +sub_0207AB0C: ; 0x0207AB0C + push {r3-r7, lr} + sub sp, #0x8 + add r6, r1, #0x0 + add r7, r0, #0x0 + add r0, r6, #0x0 + add r5, r2, #0x0 + bl sub_020669D4 + str r0, [sp, #0x4] + add r0, r6, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0xc] + add r0, r6, #0x0 + bl sub_020690E4 + ldr r2, _0207AEAC ; =0x00000674 + add r4, r0, #0x0 + ldr r0, [r7, r2] + add r2, #0xc + ldr r2, [r7, r2] + mov r1, #0xb + bl sub_0200A8E0 + ldr r0, _0207AEB0 ; =0x0000067C + mov r1, #0x0 + ldr r0, [r7, r0] + add r2, r4, #0x0 + bl sub_0200AC60 + ldr r2, _0207AEB0 ; =0x0000067C + mov r1, #0x25 + ldr r0, [r7, r2] + lsl r1, r1, #0x4 + add r2, r2, #0x4 + ldr r1, [r7, r1] + ldr r2, [r7, r2] + bl sub_0200B7B8 + ldr r2, _0207AEAC ; =0x00000674 + mov r1, #0x0 + ldr r0, [r7, r2] + add r2, #0xc + ldr r2, [r7, r2] + bl sub_0200A8E0 + ldr r0, _0207AEB0 ; =0x0000067C + mov r1, #0x0 + ldr r0, [r7, r0] + add r2, r4, #0x0 + bl sub_0200ACF8 + ldr r2, _0207AEB0 ; =0x0000067C + mov r1, #0x95 + ldr r0, [r7, r2] + lsl r1, r1, #0x2 + add r2, r2, #0x4 + ldr r1, [r7, r1] + ldr r2, [r7, r2] + bl sub_0200B7B8 + ldr r2, _0207AEAC ; =0x00000674 + mov r1, #0xe + ldr r0, [r7, r2] + add r2, #0xc + ldr r2, [r7, r2] + bl sub_0200A8E0 + ldr r0, _0207AEB0 ; =0x0000067C + mov r1, #0x0 + ldr r0, [r7, r0] + add r2, r4, #0x0 + bl sub_0200AD18 + ldr r2, _0207AEB0 ; =0x0000067C + mov r1, #0x96 + ldr r0, [r7, r2] + lsl r1, r1, #0x2 + add r2, r2, #0x4 + ldr r1, [r7, r1] + ldr r2, [r7, r2] + bl sub_0200B7B8 + add r0, r6, #0x0 + mov r1, #0x6 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0xe] + add r0, r6, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + ldrb r1, [r5, #0x12] + mov r2, #0x7f + lsl r0, r0, #0x18 + bic r1, r2 + lsr r2, r0, #0x18 + mov r0, #0x7f + and r0, r2 + orr r0, r1 + strb r0, [r5, #0x12] + add r0, r6, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x1f + ldr r2, [r5, #0x50] + ldr r1, _0207AEB4 ; =0xEFFFFFFF + lsr r0, r0, #0x3 + and r1, r2 + orr r0, r1 + str r0, [r5, #0x50] + add r0, r6, #0x0 + mov r1, #0xaf + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x1 + bne _0207AC16 + ldr r0, [r5, #0x50] + lsl r0, r0, #0x3 + lsr r0, r0, #0x1f + bne _0207AC16 + ldrb r1, [r5, #0x12] + mov r0, #0x80 + bic r1, r0 + strb r1, [r5, #0x12] + b _0207AC1E +_0207AC16: + ldrb r1, [r5, #0x12] + mov r0, #0x80 + orr r0, r1 + strb r0, [r5, #0x12] +_0207AC1E: + add r0, r6, #0x0 + bl sub_020689E0 + ldrb r1, [r5, #0x13] + mov r2, #0x3 + bic r1, r2 + mov r2, #0x3 + and r0, r2 + orr r0, r1 + strb r0, [r5, #0x13] + add r0, r6, #0x0 + mov r1, #0x9a + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1a + ldrb r1, [r5, #0x13] + mov r2, #0xfc + lsr r0, r0, #0x18 + bic r1, r2 + orr r0, r1 + strb r0, [r5, #0x13] + add r0, r6, #0x0 + mov r1, #0xb0 + mov r2, #0x0 + bl sub_020671BC + strb r0, [r5, #0x10] + add r0, r6, #0x0 + mov r1, #0xb1 + mov r2, #0x0 + bl sub_020671BC + strb r0, [r5, #0x11] + add r0, r6, #0x0 + mov r1, #0x7 + mov r2, #0x0 + bl sub_020671BC + str r0, [r5, #0x14] + add r0, r6, #0x0 + mov r1, #0x8 + mov r2, #0x0 + bl sub_020671BC + str r0, [r5, #0x18] + add r0, r6, #0x0 + mov r1, #0x9c + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x44 + strb r0, [r1, #0x0] + ldrb r1, [r5, #0x12] + ldrh r0, [r5, #0xc] + lsl r1, r1, #0x19 + lsr r1, r1, #0x19 + bl sub_02068758 + str r0, [r5, #0x1c] + ldrb r0, [r5, #0x12] + lsl r0, r0, #0x19 + lsr r1, r0, #0x19 + cmp r1, #0x64 + bne _0207ACAA + ldr r0, [r5, #0x1c] + b _0207ACB2 +_0207ACAA: + ldrh r0, [r5, #0xc] + add r1, r1, #0x1 + bl sub_02068758 +_0207ACB2: + str r0, [r5, #0x20] + add r0, r6, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x24] + add r0, r6, #0x0 + mov r1, #0xa3 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x26] + add r0, r6, #0x0 + mov r1, #0xa4 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x28] + add r0, r6, #0x0 + mov r1, #0xa5 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x2a] + add r0, r6, #0x0 + mov r1, #0xa7 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x2c] + add r0, r6, #0x0 + mov r1, #0xa8 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x2e] + add r0, r6, #0x0 + mov r1, #0xa6 + mov r2, #0x0 + bl sub_020671BC + strh r0, [r5, #0x30] + add r0, r6, #0x0 + mov r1, #0xa + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x32 + strb r0, [r1, #0x0] + add r0, r6, #0x0 + bl sub_02068854 + add r1, r5, #0x0 + add r1, #0x33 + strb r0, [r1, #0x0] + mov r4, #0x0 +_0207AD26: + lsl r0, r4, #0x1 + add r0, r5, r0 + add r1, r4, #0x0 + str r0, [sp, #0x0] + add r0, r6, #0x0 + add r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + ldr r1, [sp, #0x0] + mov r2, #0x0 + strh r0, [r1, #0x34] + add r1, r4, #0x0 + add r0, r6, #0x0 + add r1, #0x3a + bl sub_020671BC + add r1, r5, r4 + add r1, #0x3c + strb r0, [r1, #0x0] + add r1, r4, #0x0 + add r0, r6, #0x0 + add r1, #0x3e + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r0, [sp, #0x0] + ldrh r0, [r0, #0x34] + bl sub_0206AB30 + add r1, r5, r4 + add r1, #0x40 + strb r0, [r1, #0x0] + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x4 + blo _0207AD26 + add r0, r6, #0x0 + mov r1, #0x13 + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x45 + strb r0, [r1, #0x0] + add r0, r6, #0x0 + mov r1, #0x14 + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x46 + strb r0, [r1, #0x0] + add r0, r6, #0x0 + mov r1, #0x15 + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x47 + strb r0, [r1, #0x0] + add r0, r6, #0x0 + mov r1, #0x16 + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x48 + strb r0, [r1, #0x0] + add r0, r6, #0x0 + mov r1, #0x17 + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x49 + strb r0, [r1, #0x0] + add r0, r6, #0x0 + mov r1, #0x18 + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x4a + strb r0, [r1, #0x0] + add r0, r5, #0x0 + mov r1, #0x5 + add r0, #0x4b + strb r1, [r0, #0x0] + mov r4, #0x0 +_0207ADE0: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02069BC8 + cmp r0, #0x1 + bne _0207ADF4 + add r0, r5, #0x0 + add r0, #0x4b + strb r4, [r0, #0x0] + b _0207ADFE +_0207ADF4: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x5 + blo _0207ADE0 +_0207ADFE: + add r0, r6, #0x0 + mov r1, #0xb + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x4c + strh r0, [r1, #0x0] + add r0, r6, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + add r1, r5, #0x0 + add r1, #0x4e + strh r0, [r1, #0x0] + add r0, r6, #0x0 + bl sub_0207C2D4 + mov r1, #0xf + ldr r2, [r5, #0x50] + lsl r1, r1, #0x1c + and r2, r1 + ldr r1, _0207AEB8 ; =0x0FFFFFFF + and r0, r1 + orr r0, r2 + str r0, [r5, #0x50] + add r0, r6, #0x0 + bl sub_02069E94 + cmp r0, #0x1 + bne _0207AE4E + ldr r1, [r5, #0x50] + ldr r0, _0207AEBC ; =0x3FFFFFFF + and r1, r0 + mov r0, #0x2 + lsl r0, r0, #0x1e + orr r0, r1 + str r0, [r5, #0x50] + b _0207AE84 +_0207AE4E: + add r0, r6, #0x0 + bl sub_02069E74 + cmp r0, #0x1 + bne _0207AE7C + ldr r2, [r5, #0x50] + ldr r1, _0207AEBC ; =0x3FFFFFFF + add r0, r5, #0x0 + and r2, r1 + add r1, r1, #0x1 + orr r1, r2 + str r1, [r5, #0x50] + lsl r1, r1, #0x4 + lsr r1, r1, #0x4 + add r0, #0x50 + cmp r1, #0x7 + bne _0207AE84 + mov r1, #0xf + ldr r2, [r0, #0x0] + lsl r1, r1, #0x1c + and r1, r2 + str r1, [r0, #0x0] + b _0207AE84 +_0207AE7C: + ldr r1, [r5, #0x50] + ldr r0, _0207AEBC ; =0x3FFFFFFF + and r0, r1 + str r0, [r5, #0x50] +_0207AE84: + add r0, r6, #0x0 + bl sub_02068A80 + cmp r0, #0x1 + ldr r1, [r5, #0x50] + bne _0207AE98 + mov r0, #0x2 + lsl r0, r0, #0x1c + orr r0, r1 + b _0207AE9C +_0207AE98: + ldr r0, _0207AEC0 ; =0xDFFFFFFF + and r0, r1 +_0207AE9C: + str r0, [r5, #0x50] + mov r4, #0x0 + str r4, [r5, #0x54] + str r4, [r5, #0x58] + str r4, [r5, #0x5c] + ldr r0, _0207AEC4 ; =0x00000699 + b _0207AEC8 + nop +_0207AEAC: .word 0x00000674 +_0207AEB0: .word 0x0000067C +_0207AEB4: .word 0xEFFFFFFF +_0207AEB8: .word 0x0FFFFFFF +_0207AEBC: .word 0x3FFFFFFF +_0207AEC0: .word 0xDFFFFFFF +_0207AEC4: .word 0x00000699 +_0207AEC8: + str r4, [r5, #0x60] + strb r4, [r7, r0] +_0207AECC: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x0 + bl sub_0207FC5C + add r1, r0, #0x0 + add r0, r6, #0x0 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _0207AF04 + lsr r0, r4, #0x5 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x1f + add r2, r4, #0x0 + and r2, r1 + mov r1, #0x1 + ldr r3, [r0, #0x54] + lsl r1, r2 + orr r1, r3 + str r1, [r0, #0x54] + ldr r0, _0207AF1C ; =0x00000699 + ldrb r0, [r7, r0] + add r1, r0, #0x1 + ldr r0, _0207AF1C ; =0x00000699 + strb r1, [r7, r0] +_0207AF04: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x50 + blo _0207AECC + ldr r1, [sp, #0x4] + add r0, r6, #0x0 + bl sub_02066A20 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0207AF1C: .word 0x00000699 + + thumb_func_start sub_0207AF20 +sub_0207AF20: ; 0x0207AF20 + push {r3, lr} + mov r2, #0x2a + lsl r2, r2, #0x4 + ldr r1, [r0, r2] + lsl r1, r1, #0x3 + lsr r1, r1, #0x1f + bne _0207AF54 + add r1, r2, #0x0 + sub r1, #0x44 + ldrh r3, [r0, r1] + add r1, r2, #0x0 + sub r1, #0xe7 + cmp r3, r1 + bne _0207AF4E + sub r2, #0x54 + ldr r0, [r0, r2] + mov r1, #0x0 + ldr r0, [r0, #0x28] + mov r2, #0x64 + add r3, r1, #0x0 + bl sub_02005E90 + pop {r3, pc} +_0207AF4E: + add r0, r3, #0x0 + bl sub_02005578 +_0207AF54: + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0207AF58 +sub_0207AF58: ; 0x0207AF58 + push {r4, lr} + mov r1, #0x93 + add r4, r0, #0x0 + lsl r1, r1, #0x2 + ldr r0, [r4, r1] + ldrb r0, [r0, #0x12] + cmp r0, #0x4 + bhi _0207AFA4 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r0, r1, #0 + lsl r0, r4, #0 + lsl r0, r5, #0 + lsl r0, r5, #0 + add r1, #0x54 + ldr r0, [r4, r1] + lsl r0, r0, #0x3 + lsr r0, r0, #0x1f + ldr r0, _0207AFFC ; =0x0000068C + bne _0207AF90 + mov r1, #0x0 + strb r1, [r4, r0] + b _0207AFA4 +_0207AF90: + mov r1, #0x1 + strb r1, [r4, r0] + b _0207AFA4 +_0207AF96: + .byte 0x19, 0x48, 0x03, 0x21, 0x21, 0x54, 0x02, 0xE0, 0x17, 0x48 + .byte 0x04, 0x21, 0x21, 0x54 +_0207AFA4: + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207CFAC + add r0, r4, #0x0 + bl sub_0207C5D4 + add r0, r4, #0x0 + bl sub_0207C838 + add r0, r4, #0x0 + bl sub_0207D2C8 + add r0, r4, #0x0 + bl sub_0207C6A4 + add r0, r4, #0x0 + bl sub_0207CE4C + add r0, r4, #0x0 + bl sub_0207CC24 + add r0, r4, #0x0 + bl sub_0207D604 + add r0, r4, #0x0 + bl sub_0207DD88 + add r0, r4, #0x0 + bl sub_0207B228 + add r0, r4, #0x0 + bl sub_0207F2A0 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x2 + bne _0207AFFA + add r0, r4, #0x0 + bl sub_0207BA74 +_0207AFFA: + pop {r4, pc} + .balign 4 +_0207AFFC: .word 0x0000068C + + thumb_func_start sub_0207B000 +sub_0207B000: ; 0x0207B000 + push {r3-r6} + mov r6, #0x0 + strb r6, [r0, #0x15] + add r0, #0x15 + mov r3, #0x1 +_0207B00A: + ldrb r5, [r1, r6] + cmp r5, #0x8 + beq _0207B024 + add r2, r3, #0x0 + ldrb r4, [r0, #0x0] + lsl r2, r5 + orr r2, r4 + strb r2, [r0, #0x0] + add r2, r6, #0x1 + lsl r2, r2, #0x18 + lsr r6, r2, #0x18 + cmp r6, #0x8 + blo _0207B00A +_0207B024: + pop {r3-r6} + bx lr + + thumb_func_start sub_0207B028 +sub_0207B028: ; 0x0207B028 + push {r3-r4} + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r4, [r0, r1] + ldr r1, [r4, #0x2c] + cmp r1, #0x1 + beq _0207B06C + ldrb r2, [r4, #0x15] + mov r1, #0x10 + add r3, r2, #0x0 + tst r3, r1 + beq _0207B044 + eor r1, r2 + strb r1, [r4, #0x15] +_0207B044: + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r4, [r0, r1] + mov r1, #0x20 + ldrb r2, [r4, #0x15] + add r3, r2, #0x0 + tst r3, r1 + beq _0207B058 + eor r1, r2 + strb r1, [r4, #0x15] +_0207B058: + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r3, [r0, r1] + mov r0, #0x40 + ldrb r1, [r3, #0x15] + add r2, r1, #0x0 + tst r2, r0 + beq _0207B06C + eor r0, r1 + strb r0, [r3, #0x15] +_0207B06C: + pop {r3-r4} + bx lr + + thumb_func_start sub_0207B070 +sub_0207B070: ; 0x0207B070 + mov r2, #0x2a + lsl r2, r2, #0x4 + ldr r2, [r0, r2] + lsl r2, r2, #0x3 + lsr r2, r2, #0x1f + beq _0207B088 + cmp r1, #0x1 + beq _0207B088 + cmp r1, #0x7 + beq _0207B088 + mov r0, #0x0 + bx lr +_0207B088: + mov r2, #0x93 + lsl r2, r2, #0x2 + ldr r0, [r0, r2] + ldrb r2, [r0, #0x15] + mov r0, #0x1 + lsl r0, r1 + and r0, r2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + + thumb_func_start sub_0207B09C +sub_0207B09C: ; 0x0207B09C + push {r3-r4} + mov r3, #0x93 + lsl r3, r3, #0x2 + ldr r0, [r0, r3] + mov r2, #0x0 + ldrb r0, [r0, #0x15] + add r1, r2, #0x0 + mov r3, #0x1 +_0207B0AC: + add r4, r3, #0x0 + lsl r4, r1 + tst r4, r0 + beq _0207B0BA + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 +_0207B0BA: + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #0x8 + blo _0207B0AC + add r0, r2, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start sub_0207B0CC +sub_0207B0CC: ; 0x0207B0CC + push {r3-r5, lr} + sub sp, #0x10 + add r4, r1, #0x0 + ldr r1, _0207B174 ; =0x0000068C + add r5, r0, #0x0 + ldrsb r1, [r5, r1] + cmp r1, r4 + beq _0207B170 + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r1, [r5, r1] + ldrb r1, [r1, #0x12] + cmp r1, #0x2 + bne _0207B0EC + bl sub_0207BDD8 +_0207B0EC: + add r0, r5, #0x0 + bl sub_0207D6F8 + ldr r0, _0207B174 ; =0x0000068C + mov r1, #0x0 + strb r4, [r5, r0] + add r0, r5, #0x0 + bl sub_0207CFAC + add r0, r5, #0x0 + bl sub_0207C5D4 + add r0, r5, #0x0 + bl sub_0207C6A4 + add r0, r5, #0x0 + bl sub_0207C838 + add r0, r5, #0x0 + bl sub_0207D2C8 + add r0, r5, #0x0 + bl sub_0207CC24 + add r0, r5, #0x0 + bl sub_0207D604 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0207D418 + mov r0, #0x4 + str r0, [sp, #0x0] + mov r0, #0x13 + str r0, [sp, #0x4] + mov r0, #0x14 + str r0, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + ldr r0, [r5, #0x0] + mov r1, #0x1 + mov r3, #0xe + bl sub_02018540 + ldr r0, [r5, #0x0] + mov r1, #0x1 + bl sub_02017CD0 + add r0, r5, #0x0 + bl sub_0207DD88 + add r0, r5, #0x0 + bl sub_0207B228 + add r0, r5, #0x0 + bl sub_0207F2A0 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x2 + bne _0207B170 + add r0, r5, #0x0 + bl sub_0207BDF4 +_0207B170: + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 +_0207B174: .word 0x0000068C + + thumb_func_start sub_0207B178 +sub_0207B178: ; 0x0207B178 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _0207B1F8 ; =0x0000068C + mov r6, #0x1 + ldrsb r4, [r5, r0] + mov r0, #0x2a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r12, r4 + lsl r0, r0, #0x3 + lsr r0, r0, #0x1f + add r7, r6, #0x0 +_0207B190: + add r2, r4, r1 + lsl r2, r2, #0x18 + asr r4, r2, #0x18 + bpl _0207B19C + mov r4, #0x7 + b _0207B1A2 +_0207B19C: + cmp r4, #0x7 + ble _0207B1A2 + mov r4, #0x0 +_0207B1A2: + cmp r0, #0x0 + bne _0207B1B8 + mov r2, #0x93 + lsl r2, r2, #0x2 + ldr r2, [r5, r2] + ldrb r3, [r2, #0x15] + add r2, r6, #0x0 + lsl r2, r4 + tst r2, r3 + bne _0207B1D0 + b _0207B190 +_0207B1B8: + mov r2, #0x93 + lsl r2, r2, #0x2 + ldr r2, [r5, r2] + ldrb r3, [r2, #0x15] + add r2, r7, #0x0 + lsl r2, r4 + tst r2, r3 + beq _0207B190 + cmp r4, #0x1 + beq _0207B1D0 + cmp r4, #0x7 + bne _0207B190 +_0207B1D0: + mov r0, r12 + cmp r4, r0 + beq _0207B1F4 + ldr r0, _0207B1FC ; =0x000005E1 + bl sub_020054C8 + add r0, r5, #0x0 + bl sub_0207FA38 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0207D418 + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl sub_0207B0CC +_0207B1F4: + pop {r3-r7, pc} + nop +_0207B1F8: .word 0x0000068C +_0207B1FC: .word 0x000005E1 + + thumb_func_start sub_0207B200 +sub_0207B200: ; 0x0207B200 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0207FA80 + cmp r0, #0xff + bne _0207B210 + mov r0, #0x0 + pop {r4, pc} +_0207B210: + ldr r1, _0207B224 ; =0x00000694 + mov r3, #0x0 + strb r3, [r4, r1] + add r2, r1, #0x2 + strb r0, [r4, r2] + add r0, r1, #0x1 + strb r3, [r4, r0] + mov r0, #0x1 + pop {r4, pc} + nop +_0207B224: .word 0x00000694 + + thumb_func_start sub_0207B228 +sub_0207B228: ; 0x0207B228 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r1, [r5, r0] + ldrb r0, [r1, #0x12] + cmp r0, #0x2 + bne _0207B250 + ldrh r0, [r1, #0x18] + cmp r0, #0x0 + beq _0207B250 + ldr r0, _0207B2AC ; =0x0000068C + ldrsb r0, [r5, r0] + cmp r0, #0x3 + bne _0207B24C + mov r1, #0xc + b _0207B256 +_0207B24C: + mov r1, #0xd + b _0207B256 +_0207B250: + ldr r0, _0207B2AC ; =0x0000068C + ldrsb r0, [r5, r0] + add r1, r0, #0x3 +_0207B256: + mov r0, #0x27 + mov r2, #0x13 + bl sub_0200650C + add r1, sp, #0xc + add r4, r0, #0x0 + blx sub_020B0180 + mov r3, #0x0 + str r3, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r2, [sp, #0xc] + ldr r0, [r5, #0x0] + mov r1, #0x3 + add r2, #0xc + bl sub_02018148 + ldr r0, [r5, #0x0] + mov r1, #0x3 + bl sub_0201AC68 + add r0, r4, #0x0 + bl sub_02016A18 + ldr r0, _0207B2AC ; =0x0000068C + ldrsb r0, [r5, r0] + cmp r0, #0x0 + bne _0207B29C + add r0, r5, #0x0 + bl sub_0207B364 + add sp, #0x10 + pop {r3-r5, pc} +_0207B29C: + cmp r0, #0x2 + bne _0207B2A6 + add r0, r5, #0x0 + bl sub_0207B2B0 +_0207B2A6: + add sp, #0x10 + pop {r3-r5, pc} + nop +_0207B2AC: .word 0x0000068C + + thumb_func_start sub_0207B2B0 +sub_0207B2B0: ; 0x0207B2B0 + push {r4-r7, lr} + sub sp, #0x14 + mov r1, #0x9d + add r6, r0, #0x0 + lsl r1, r1, #0x2 + ldrh r0, [r6, r1] + add r1, r1, #0x2 + ldrh r1, [r6, r1] + mov r2, #0x30 + bl sub_02079A54 + cmp r0, #0x4 + bhi _0207B2EC + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r0, r2, #0 + lsl r4, r1, #0 + lsl r0, r1, #0 + lsl r0, r1, #0 + ldr r7, _0207B35C ; =0x0000A0C0 + b _0207B2EC +_0207B2E4: + .byte 0x1E, 0x4F, 0x01, 0xE0, 0xA1, 0x27, 0x3F, 0x02 +_0207B2EC: + mov r1, #0x9d + lsl r1, r1, #0x2 + ldrh r0, [r6, r1] + add r1, r1, #0x2 + ldrh r1, [r6, r1] + mov r2, #0x30 + bl sub_02079A0C + add r4, r0, #0x0 + add r0, r7, #0x0 + add r0, #0x8 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r5, #0x0 + str r0, [sp, #0x10] +_0207B30A: + cmp r4, #0x8 + blo _0207B312 + ldr r2, [sp, #0x10] + b _0207B318 +_0207B312: + add r0, r7, r4 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 +_0207B318: + mov r0, #0x6 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r3, r5, #0x0 + str r0, [sp, #0x8] + mov r0, #0x11 + add r3, #0x18 + str r0, [sp, #0xc] + lsl r3, r3, #0x18 + ldr r0, [r6, #0x0] + mov r1, #0x3 + lsr r3, r3, #0x18 + bl sub_02018540 + cmp r4, #0x8 + bhs _0207B33E + mov r4, #0x0 + b _0207B344 +_0207B33E: + sub r4, #0x8 + lsl r0, r4, #0x18 + lsr r4, r0, #0x18 +_0207B344: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x6 + blo _0207B30A + ldr r0, [r6, #0x0] + mov r1, #0x3 + bl sub_0201AC68 + add sp, #0x14 + pop {r4-r7, pc} + nop +_0207B35C: .word 0x0000A0C0 +_0207B360: + .byte 0xE0, 0xA0, 0x00, 0x00 + + thumb_func_start sub_0207B364 +sub_0207B364: ; 0x0207B364 + push {r3-r7, lr} + sub sp, #0x10 + ldr r2, _0207B3EC ; =0x00000262 + add r6, r0, #0x0 + ldrb r0, [r6, r2] + lsl r0, r0, #0x19 + lsr r0, r0, #0x19 + cmp r0, #0x64 + bhs _0207B38C + add r0, r2, #0x0 + add r1, r2, #0x0 + add r0, #0xa + add r1, #0xe + add r2, r2, #0x6 + ldr r0, [r6, r0] + ldr r1, [r6, r1] + ldr r2, [r6, r2] + sub r1, r1, r0 + sub r0, r2, r0 + b _0207B390 +_0207B38C: + mov r1, #0x0 + add r0, r1, #0x0 +_0207B390: + mov r2, #0x38 + bl sub_02079A0C + add r4, r0, #0x0 + mov r5, #0x0 + mov r7, #0x17 +_0207B39C: + cmp r4, #0x8 + blo _0207B3A4 + mov r2, #0xb4 + b _0207B3AC +_0207B3A4: + add r0, r4, #0x0 + add r0, #0xac + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 +_0207B3AC: + str r7, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r3, r5, #0x0 + str r0, [sp, #0x8] + mov r0, #0x11 + add r3, #0x17 + str r0, [sp, #0xc] + lsl r3, r3, #0x18 + ldr r0, [r6, #0x0] + mov r1, #0x3 + lsr r3, r3, #0x18 + bl sub_02018540 + cmp r4, #0x8 + bhs _0207B3D0 + mov r4, #0x0 + b _0207B3D6 +_0207B3D0: + sub r4, #0x8 + lsl r0, r4, #0x18 + lsr r4, r0, #0x18 +_0207B3D6: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x7 + blo _0207B39C + ldr r0, [r6, #0x0] + mov r1, #0x3 + bl sub_0201AC68 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0207B3EC: .word 0x00000262 + + thumb_func_start sub_0207B3F0 +sub_0207B3F0: ; 0x0207B3F0 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0207B4A4 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _0207B49C + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + strb r0, [r1, #0x14] + add r0, r4, #0x0 + bl sub_0207AAB0 + add r0, r4, #0x0 + bl sub_0207AF20 + add r0, r4, #0x0 + bl sub_0207D768 + add r0, r4, #0x0 + bl sub_0207D800 + add r0, r4, #0x0 + bl sub_0207D8A0 + ldr r0, _0207B4A0 ; =0x0000068C + ldrsb r0, [r4, r0] + cmp r0, #0x0 + bne _0207B436 + add r0, r4, #0x0 + bl sub_0207B364 + b _0207B44C +_0207B436: + cmp r0, #0x2 + bne _0207B442 + add r0, r4, #0x0 + bl sub_0207B2B0 + b _0207B44C +_0207B442: + cmp r0, #0x4 + bne _0207B44C + add r0, r4, #0x0 + bl sub_0207F608 +_0207B44C: + add r0, r4, #0x0 + bl sub_0207F934 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207CFAC + add r0, r4, #0x0 + bl sub_0207C5D4 + add r0, r4, #0x0 + bl sub_0207C6A4 + add r0, r4, #0x0 + bl sub_0207CA44 + add r0, r4, #0x0 + bl sub_0207C838 + add r0, r4, #0x0 + bl sub_0207D2C8 + add r0, r4, #0x0 + bl sub_0207CFEC + add r0, r4, #0x0 + bl sub_0207C71C + add r0, r4, #0x0 + bl sub_0207C77C + add r0, r4, #0x0 + bl sub_0207CC24 + add r0, r4, #0x0 + bl sub_0207CE4C + add r0, r4, #0x0 + bl sub_0207DD88 +_0207B49C: + pop {r4, pc} + nop +_0207B4A0: .word 0x0000068C + + thumb_func_start sub_0207B4A4 +sub_0207B4A4: ; 0x0207B4A4 + push {r3, lr} + mov r2, #0x93 + lsl r2, r2, #0x2 + ldr r2, [r0, r2] + ldrb r2, [r2, #0x11] + cmp r2, #0x0 + beq _0207B4BC + cmp r2, #0x1 + beq _0207B4C2 + cmp r2, #0x2 + beq _0207B4C8 + b _0207B4CE +_0207B4BC: + bl sub_0207B4FC + pop {r3, pc} +_0207B4C2: + bl sub_0207B564 + pop {r3, pc} +_0207B4C8: + bl sub_0207B5C0 + pop {r3, pc} +_0207B4CE: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + + thumb_func_start sub_0207B4D4 +sub_0207B4D4: ; 0x0207B4D4 + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r1, [r0, r1] + ldrb r1, [r1, #0x12] + cmp r1, #0x3 + bne _0207B4E4 + mov r0, #0x0 + bx lr +_0207B4E4: + ldr r1, _0207B4F8 ; =0x0000068C + ldrsb r0, [r0, r1] + cmp r0, #0x1 + beq _0207B4F4 + cmp r0, #0x7 + beq _0207B4F4 + mov r0, #0x0 + bx lr +_0207B4F4: + mov r0, #0x1 + bx lr + .balign 4 +_0207B4F8: .word 0x0000068C + + thumb_func_start sub_0207B4FC +sub_0207B4FC: ; 0x0207B4FC + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x93 + lsl r0, r0, #0x2 + str r1, [sp, #0x0] + ldr r1, [r5, r0] + mov r0, #0x14 + ldrsb r4, [r1, r0] +_0207B50C: + ldr r0, [sp, #0x0] + add r0, r4, r0 + lsl r0, r0, #0x18 + asr r4, r0, #0x18 + bmi _0207B522 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldrb r0, [r0, #0x13] + cmp r4, r0 + blt _0207B528 +_0207B522: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0207B528: + bl sub_020690C4 + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r1, [r5, r1] + add r7, r4, #0x0 + ldr r6, [r1, #0x0] + mul r7, r0 + add r0, r6, r7 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _0207B50C + add r0, r6, r7 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _0207B55E + add r0, r5, #0x0 + bl sub_0207B4D4 + cmp r0, #0x1 + bne _0207B50C +_0207B55E: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0207B564 +sub_0207B564: ; 0x0207B564 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x93 + lsl r0, r0, #0x2 + add r7, r1, #0x0 + ldr r1, [r5, r0] + mov r0, #0x14 + ldrsb r4, [r1, r0] +_0207B574: + add r0, r4, r7 + lsl r0, r0, #0x18 + asr r4, r0, #0x18 + bmi _0207B588 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r1, [r5, r0] + ldrb r0, [r1, #0x13] + cmp r4, r0 + blt _0207B58E +_0207B588: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0207B58E: + ldr r0, [r1, #0x0] + add r1, r4, #0x0 + bl sub_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + add r6, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _0207B574 + add r0, r6, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _0207B5BC + add r0, r5, #0x0 + bl sub_0207B4D4 + cmp r0, #0x1 + bne _0207B574 +_0207B5BC: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0207B5C0 +sub_0207B5C0: ; 0x0207B5C0 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x93 + lsl r0, r0, #0x2 + str r1, [sp, #0x0] + ldr r1, [r5, r0] + mov r0, #0x14 + ldrsb r4, [r1, r0] +_0207B5D0: + ldr r0, [sp, #0x0] + add r0, r4, r0 + lsl r0, r0, #0x18 + asr r4, r0, #0x18 + bmi _0207B5E6 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldrb r0, [r0, #0x13] + cmp r4, r0 + blt _0207B5EC +_0207B5E6: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0207B5EC: + bl sub_020690C8 + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r1, [r5, r1] + add r7, r4, #0x0 + ldr r6, [r1, #0x0] + mul r7, r0 + add r0, r6, r7 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020672BC + cmp r0, #0x0 + beq _0207B5D0 + add r0, r6, r7 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020672BC + cmp r0, #0x0 + beq _0207B622 + add r0, r5, #0x0 + bl sub_0207B4D4 + cmp r0, #0x1 + bne _0207B5D0 +_0207B622: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0207B628 +sub_0207B628: ; 0x0207B628 + push {r4, lr} + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r4, [r0, r1] + ldrb r0, [r4, #0x11] + cmp r0, #0x0 + beq _0207B640 + cmp r0, #0x1 + beq _0207B64E + cmp r0, #0x2 + beq _0207B658 + b _0207B666 +_0207B640: + bl sub_020690C4 + ldrb r1, [r4, #0x14] + ldr r2, [r4, #0x0] + mul r0, r1 + add r0, r2, r0 + pop {r4, pc} +_0207B64E: + ldrb r1, [r4, #0x14] + ldr r0, [r4, #0x0] + bl sub_0206B9B0 + pop {r4, pc} +_0207B658: + bl sub_020690C8 + ldrb r1, [r4, #0x14] + ldr r2, [r4, #0x0] + mul r0, r1 + add r0, r2, r0 + pop {r4, pc} +_0207B666: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0207B66C +sub_0207B66C: ; 0x0207B66C + push {r4, lr} + ldr r1, _0207B774 ; =0x0000068E + add r4, r0, #0x0 + ldrb r1, [r4, r1] + cmp r1, #0x0 + beq _0207B682 + cmp r1, #0x1 + beq _0207B6E2 + cmp r1, #0x2 + beq _0207B70E + b _0207B76E +_0207B682: + ldr r0, [r4, #0x0] + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x88 + bl sub_0201AEE4 + ldr r0, [r4, #0x0] + mov r1, #0x2 + mov r2, #0x3 + mov r3, #0x0 + bl sub_0201AEE4 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207C6F0 + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + add r0, r4, #0x0 + add r0, #0x64 + bl sub_0201958C + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207CFAC + ldr r1, _0207B778 ; =0x0000068D + mov r0, #0xf + ldrb r2, [r4, r1] + bic r2, r0 + strb r2, [r4, r1] + mov r2, #0x1 + add r0, r1, #0x1 + strb r2, [r4, r0] + b _0207B76E +_0207B6E2: + ldr r0, [r4, #0x0] + mov r1, #0x2 + bl sub_02017B48 + cmp r0, #0x40 + ldr r0, [r4, #0x0] + bgt _0207B702 + mov r2, #0x0 + mov r1, #0x2 + add r3, r2, #0x0 + bl sub_0201AEE4 + ldr r0, _0207B774 ; =0x0000068E + mov r1, #0x2 + strb r1, [r4, r0] + b _0207B76E +_0207B702: + mov r1, #0x2 + add r2, r1, #0x0 + mov r3, #0x40 + bl sub_0201AEE4 + b _0207B76E +_0207B70E: + bl sub_0207ECDC + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x1 + beq _0207B732 + add r0, r4, #0x0 + mov r1, #0x98 + bl sub_0207D924 + mov r1, #0x8d + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + bl sub_0207CFAC +_0207B732: + add r0, r4, #0x0 + bl sub_0207B8D8 + ldr r0, _0207B77C ; =0x00000434 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C63C + add r0, r4, #0x0 + bl sub_0207D06C + mov r0, #0x26 + lsl r0, r0, #0x4 + ldrb r1, [r4, r0] + add r0, r0, #0x1 + ldrb r0, [r4, r0] + cmp r1, r0 + beq _0207B760 + ldr r0, _0207B780 ; =0x00000438 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C63C +_0207B760: + ldr r0, _0207B784 ; =0x0000042C + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + mov r0, #0x1 + pop {r4, pc} +_0207B76E: + mov r0, #0x0 + pop {r4, pc} + nop +_0207B774: .word 0x0000068E +_0207B778: .word 0x0000068D +_0207B77C: .word 0x00000434 +_0207B780: .word 0x00000438 +_0207B784: .word 0x0000042C + + thumb_func_start sub_0207B788 +sub_0207B788: ; 0x0207B788 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0207B864 ; =0x0000068E + ldrb r0, [r4, r0] + cmp r0, #0x0 + beq _0207B79E + cmp r0, #0x1 + beq _0207B7F8 + cmp r0, #0x2 + beq _0207B824 + b _0207B860 +_0207B79E: + ldr r0, _0207B868 ; =0x00000434 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C63C + ldr r0, _0207B86C ; =0x00000438 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C63C + mov r0, #0x45 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200C63C + ldr r0, _0207B870 ; =0x00000454 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C63C + ldr r0, _0207B874 ; =0x0000042C + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207CFAC + add r0, r4, #0x0 + bl sub_0207ED18 + add r0, r4, #0x0 + bl sub_0207EC94 + ldr r0, _0207B864 ; =0x0000068E + mov r1, #0x1 + strb r1, [r4, r0] + b _0207B860 +_0207B7F8: + ldr r0, [r4, #0x0] + mov r1, #0x2 + bl sub_02017B48 + cmp r0, #0x80 + ldr r0, [r4, #0x0] + blt _0207B818 + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x88 + bl sub_0201AEE4 + ldr r0, _0207B864 ; =0x0000068E + mov r1, #0x2 + strb r1, [r4, r0] + b _0207B860 +_0207B818: + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x40 + bl sub_0201AEE4 + b _0207B860 +_0207B824: + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0x64 + bl sub_02019220 + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + add r0, r4, #0x0 + mov r1, #0x81 + bl sub_0207D924 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0207C6F0 + mov r1, #0x8d + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + bl sub_0207CFAC + mov r0, #0x1 + pop {r4, pc} +_0207B860: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0207B864: .word 0x0000068E +_0207B868: .word 0x00000434 +_0207B86C: .word 0x00000438 +_0207B870: .word 0x00000454 +_0207B874: .word 0x0000042C + + thumb_func_start sub_0207B878 +sub_0207B878: ; 0x0207B878 + push {r4-r7} + add r5, r0, #0x0 + ldr r0, _0207B8D4 ; =0x0000068D + mov r6, #0xa1 + ldrb r0, [r5, r0] + mov r2, #0x4 + lsl r6, r6, #0x2 + lsl r0, r0, #0x1c + lsr r4, r0, #0x1c + add r3, r4, #0x0 + mov r0, #0x0 +_0207B88E: + add r3, r3, r1 + lsl r3, r3, #0x18 + asr r3, r3, #0x18 + bpl _0207B89A + add r3, r2, #0x0 + b _0207B8A0 +_0207B89A: + cmp r3, #0x5 + bne _0207B8A0 + add r3, r0, #0x0 +_0207B8A0: + lsl r7, r3, #0x1 + add r7, r5, r7 + ldrh r7, [r7, r6] + cmp r7, #0x0 + bne _0207B8AE + cmp r3, #0x4 + bne _0207B88E +_0207B8AE: + cmp r3, r4 + beq _0207B8CC + ldr r2, _0207B8D4 ; =0x0000068D + mov r1, #0xf + ldrb r0, [r5, r2] + bic r0, r1 + lsl r1, r3, #0x18 + lsr r3, r1, #0x18 + mov r1, #0xf + and r1, r3 + orr r0, r1 + strb r0, [r5, r2] + mov r0, #0x1 + pop {r4-r7} + bx lr +_0207B8CC: + mov r0, #0x0 + pop {r4-r7} + bx lr + nop +_0207B8D4: .word 0x0000068D + + thumb_func_start sub_0207B8D8 +sub_0207B8D8: ; 0x0207B8D8 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0207CBC0 + ldr r2, _0207B95C ; =0x0000068D + ldrb r0, [r4, r2] + lsl r0, r0, #0x1c + lsr r1, r0, #0x1c + cmp r1, #0x4 + bne _0207B930 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrh r1, [r0, #0x18] + cmp r1, #0x0 + beq _0207B910 + sub r0, r2, #0x1 + ldrsb r0, [r4, r0] + cmp r0, #0x3 + bne _0207B908 + add r0, r4, #0x0 + bl sub_0207B960 + pop {r4, pc} +_0207B908: + add r0, r4, #0x0 + bl sub_0207B99C + pop {r4, pc} +_0207B910: + sub r0, r2, #0x1 + ldrsb r0, [r4, r0] + cmp r0, #0x3 + bne _0207B924 + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + bl sub_0207B960 + pop {r4, pc} +_0207B924: + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + bl sub_0207B99C + pop {r4, pc} +_0207B930: + sub r0, r2, #0x1 + ldrsb r0, [r4, r0] + cmp r0, #0x3 + bne _0207B94A + lsl r1, r1, #0x1 + add r2, r4, r1 + mov r1, #0xa1 + lsl r1, r1, #0x2 + ldrh r1, [r2, r1] + add r0, r4, #0x0 + bl sub_0207B960 + pop {r4, pc} +_0207B94A: + lsl r1, r1, #0x1 + add r2, r4, r1 + mov r1, #0xa1 + lsl r1, r1, #0x2 + ldrh r1, [r2, r1] + add r0, r4, #0x0 + bl sub_0207B99C + pop {r4, pc} + .balign 4 +_0207B95C: .word 0x0000068D + + thumb_func_start sub_0207B960 +sub_0207B960: ; 0x0207B960 + push {r3-r5, lr} + mov r2, #0x0 + add r4, r1, #0x0 + mvn r2, r2 + add r5, r0, #0x0 + cmp r4, r2 + bne _0207B980 + bl sub_0207EC94 + mov r0, #0x45 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_0200C63C + pop {r3-r5, pc} +_0207B980: + bl sub_0207EB64 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0207CB70 + mov r0, #0x45 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x1 + bl sub_0200C63C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0207B99C +sub_0207B99C: ; 0x0207B99C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0207BD84 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _0207B9B6 + add r0, r5, #0x0 + bl sub_0207EEB0 + pop {r3-r5, pc} +_0207B9B6: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0207EE2C + pop {r3-r5, pc} + + thumb_func_start sub_0207B9C0 +sub_0207B9C0: ; 0x0207B9C0 + push {r3-r7, lr} + add r4, r0, #0x0 + bl sub_0207B628 + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldrb r1, [r1, #0x11] + cmp r1, #0x2 + ldr r1, _0207BA70 ; =0x0000068D + bne _0207B9E6 + ldrb r2, [r4, r1] + lsl r1, r2, #0x1c + lsl r2, r2, #0x18 + lsr r1, r1, #0x1c + lsr r2, r2, #0x1c + bl sub_020698E8 + b _0207B9F4 +_0207B9E6: + ldrb r2, [r4, r1] + lsl r1, r2, #0x1c + lsl r2, r2, #0x18 + lsr r1, r1, #0x1c + lsr r2, r2, #0x1c + bl sub_020698E0 +_0207B9F4: + ldr r0, _0207BA70 ; =0x0000068D + mov r1, #0xa1 + ldrb r6, [r4, r0] + lsl r1, r1, #0x2 + add r5, r4, r1 + lsl r2, r6, #0x1c + lsl r6, r6, #0x18 + lsr r6, r6, #0x1c + lsl r6, r6, #0x1 + lsr r3, r2, #0x1b + add r6, r4, r6 + ldrh r2, [r5, r3] + ldrh r6, [r6, r1] + strh r6, [r5, r3] + ldrb r3, [r4, r0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x1c + lsl r3, r3, #0x1 + add r3, r4, r3 + strh r2, [r3, r1] + add r2, r1, #0x0 + add r2, #0x8 + ldrb r6, [r4, r0] + add r5, r4, r2 + lsl r2, r6, #0x1c + lsl r6, r6, #0x18 + lsr r6, r6, #0x1c + add r7, r4, r6 + add r6, r1, #0x0 + lsr r3, r2, #0x1c + add r6, #0x8 + ldrb r2, [r5, r3] + ldrb r6, [r7, r6] + strb r6, [r5, r3] + ldrb r3, [r4, r0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x1c + add r5, r4, r3 + add r3, r1, #0x0 + add r3, #0x8 + strb r2, [r5, r3] + add r2, r1, #0x0 + add r2, #0xc + ldrb r6, [r4, r0] + add r5, r4, r2 + lsl r2, r6, #0x1c + lsl r6, r6, #0x18 + lsr r6, r6, #0x1c + add r7, r4, r6 + add r6, r1, #0x0 + lsr r3, r2, #0x1c + add r6, #0xc + ldrb r2, [r5, r3] + ldrb r6, [r7, r6] + add r1, #0xc + strb r6, [r5, r3] + ldrb r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + add r0, r4, r0 + strb r2, [r0, r1] + pop {r3-r7, pc} + .balign 4 +_0207BA70: .word 0x0000068D + + thumb_func_start sub_0207BA74 +sub_0207BA74: ; 0x0207BA74 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + add r0, r4, #0x0 + add r0, #0x64 + bl sub_0201958C + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + mov r2, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x2 + add r3, r2, #0x0 + bl sub_0201AEE4 + add r0, r4, #0x0 + bl sub_0207ECDC + add r0, r4, #0x0 + bl sub_0207B8D8 + ldr r0, _0207BAE0 ; =0x00000434 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C63C + add r0, r4, #0x0 + bl sub_0207D06C + mov r0, #0x26 + lsl r0, r0, #0x4 + ldrb r1, [r4, r0] + add r0, r0, #0x1 + ldrb r0, [r4, r0] + cmp r1, r0 + beq _0207BAD4 + ldr r0, _0207BAE4 ; =0x00000438 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C63C +_0207BAD4: + ldr r0, _0207BAE8 ; =0x0000042C + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + pop {r4, pc} + .balign 4 +_0207BAE0: .word 0x00000434 +_0207BAE4: .word 0x00000438 +_0207BAE8: .word 0x0000042C + + thumb_func_start sub_0207BAEC +sub_0207BAEC: ; 0x0207BAEC + push {r4, lr} + ldr r1, _0207BBE4 ; =0x0000068E + add r4, r0, #0x0 + ldrb r1, [r4, r1] + cmp r1, #0x0 + beq _0207BB02 + cmp r1, #0x1 + beq _0207BB6E + cmp r1, #0x2 + beq _0207BB9A + b _0207BBDE +_0207BB02: + ldr r0, [r4, #0x0] + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x88 + bl sub_0201AEE4 + mov r2, #0x3 + add r3, r2, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x2 + add r3, #0xfd + bl sub_0201AEE4 + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + bl sub_0207BD84 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207C6F0 + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + add r0, r4, #0x0 + add r0, #0x64 + bl sub_0201958C + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207CFAC + ldr r1, _0207BBE8 ; =0x0000068D + mov r0, #0xf + ldrb r2, [r4, r1] + bic r2, r0 + strb r2, [r4, r1] + mov r2, #0x1 + add r0, r1, #0x1 + strb r2, [r4, r0] + b _0207BBDE +_0207BB6E: + ldr r0, [r4, #0x0] + mov r1, #0x2 + bl sub_02017B48 + cmp r0, #0x40 + ldr r0, [r4, #0x0] + bgt _0207BB8E + mov r2, #0x0 + mov r1, #0x2 + add r3, r2, #0x0 + bl sub_0201AEE4 + ldr r0, _0207BBE4 ; =0x0000068E + mov r1, #0x2 + strb r1, [r4, r0] + b _0207BBDE +_0207BB8E: + mov r1, #0x2 + add r2, r1, #0x0 + mov r3, #0x40 + bl sub_0201AEE4 + b _0207BBDE +_0207BB9A: + bl sub_0207ECDC + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x1 + beq _0207BBBE + add r0, r4, #0x0 + mov r1, #0x98 + bl sub_0207D924 + mov r1, #0x8d + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + bl sub_0207CFAC +_0207BBBE: + add r0, r4, #0x0 + bl sub_0207B8D8 + add r0, r4, #0x0 + bl sub_0207D06C + add r0, r4, #0x0 + bl sub_0207D10C + ldr r0, _0207BBEC ; =0x0000042C + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + mov r0, #0x1 + pop {r4, pc} +_0207BBDE: + mov r0, #0x0 + pop {r4, pc} + nop +_0207BBE4: .word 0x0000068E +_0207BBE8: .word 0x0000068D +_0207BBEC: .word 0x0000042C + + thumb_func_start sub_0207BBF0 +sub_0207BBF0: ; 0x0207BBF0 + push {r4, lr} + ldr r1, _0207BCBC ; =0x0000068E + add r4, r0, #0x0 + ldrb r1, [r4, r1] + cmp r1, #0x0 + beq _0207BC06 + cmp r1, #0x1 + beq _0207BC4E + cmp r1, #0x2 + beq _0207BC7A + b _0207BCB6 +_0207BC06: + bl sub_0207D22C + ldr r0, _0207BCC0 ; =0x00000454 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_0200C63C + mov r1, #0x0 + add r0, r4, #0x0 + mvn r1, r1 + bl sub_0207BD84 + ldr r0, _0207BCC4 ; =0x0000042C + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207CFAC + add r0, r4, #0x0 + bl sub_0207ED18 + add r0, r4, #0x0 + bl sub_0207EEB0 + ldr r0, _0207BCBC ; =0x0000068E + mov r1, #0x1 + strb r1, [r4, r0] + b _0207BCB6 +_0207BC4E: + ldr r0, [r4, #0x0] + mov r1, #0x2 + bl sub_02017B48 + cmp r0, #0x80 + ldr r0, [r4, #0x0] + blt _0207BC6E + mov r1, #0x2 + mov r2, #0x0 + mov r3, #0x88 + bl sub_0201AEE4 + ldr r0, _0207BCBC ; =0x0000068E + mov r1, #0x2 + strb r1, [r4, r0] + b _0207BCB6 +_0207BC6E: + mov r1, #0x2 + mov r2, #0x1 + mov r3, #0x40 + bl sub_0201AEE4 + b _0207BCB6 +_0207BC7A: + mov r0, #0x85 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0x64 + bl sub_02019220 + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + add r0, r4, #0x0 + mov r1, #0x9e + bl sub_0207D924 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0207C6F0 + mov r1, #0x8d + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + bl sub_0207CFAC + mov r0, #0x1 + pop {r4, pc} +_0207BCB6: + mov r0, #0x0 + pop {r4, pc} + nop +_0207BCBC: .word 0x0000068E +_0207BCC0: .word 0x00000454 +_0207BCC4: .word 0x0000042C + + thumb_func_start sub_0207BCC8 +sub_0207BCC8: ; 0x0207BCC8 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + mov r0, #0x2f + str r0, [sp, #0x0] + mov r0, #0x1 + lsl r6, r2, #0x1 + add r4, r1, #0x0 + str r0, [sp, #0x4] + add r7, r6, #0x2 + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + lsl r3, r7, #0x18 + ldr r0, [r5, #0x0] + mov r1, #0x2 + add r2, r4, #0x0 + lsr r3, r3, #0x18 + bl sub_02018540 + mov r0, #0x2f + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r6, r6, #0x3 + str r0, [sp, #0x8] + mov r0, #0x10 + add r2, r4, #0x1 + str r0, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r6, #0x18 + ldr r0, [r5, #0x0] + mov r1, #0x2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + mov r0, #0x30 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r2, r4, #0x0 + str r0, [sp, #0x8] + mov r0, #0x10 + add r2, #0x20 + str r0, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r7, #0x18 + ldr r0, [r5, #0x0] + mov r1, #0x2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + mov r0, #0x30 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r0, #0x10 + add r4, #0x21 + str r0, [sp, #0xc] + lsl r2, r4, #0x10 + lsl r3, r6, #0x18 + ldr r0, [r5, #0x0] + mov r1, #0x2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl sub_02018540 + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start sub_0207BD58 +sub_0207BD58: ; 0x0207BD58 + push {r4-r6, lr} + ldr r6, _0207BD80 ; =0x0000012E + add r5, r0, #0x0 + mov r4, #0x0 +_0207BD60: + lsl r2, r4, #0x18 + add r0, r5, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x18 + bl sub_0207BCC8 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x6 + blo _0207BD60 + ldr r0, [r5, #0x0] + mov r1, #0x2 + bl sub_0201AC68 + pop {r4-r6, pc} + .balign 4 +_0207BD80: .word 0x0000012E + + thumb_func_start sub_0207BD84 +sub_0207BD84: ; 0x0207BD84 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0207BD58 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + beq _0207BDCC + add r0, r4, #0x0 + mov r1, #0xa + bl sub_0206AB18 + bl sub_02083114 + mov r1, #0xa + blx sub_020EBC80 + lsl r0, r0, #0x18 + asr r6, r0, #0x18 + mov r4, #0x0 + cmp r6, #0x0 + ble _0207BDCC + mov r7, #0x4b + lsl r7, r7, #0x2 +_0207BDB6: + lsl r2, r4, #0x18 + add r0, r5, #0x0 + add r1, r7, #0x0 + lsr r2, r2, #0x18 + bl sub_0207BCC8 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r6 + blt _0207BDB6 +_0207BDCC: + ldr r0, [r5, #0x0] + mov r1, #0x2 + bl sub_0201AC68 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0207BDD8 +sub_0207BDD8: ; 0x0207BDD8 + push {r3, lr} + ldr r1, _0207BDF0 ; =0x0000068C + ldrsb r1, [r0, r1] + cmp r1, #0x3 + bne _0207BDE8 + bl sub_0207EC94 + pop {r3, pc} +_0207BDE8: + bl sub_0207EEB0 + pop {r3, pc} + nop +_0207BDF0: .word 0x0000068C + + thumb_func_start sub_0207BDF4 +sub_0207BDF4: ; 0x0207BDF4 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0207ECDC + add r0, r4, #0x0 + bl sub_0207B8D8 + add r0, r4, #0x0 + bl sub_0207D06C + ldr r0, _0207BE5C ; =0x0000068C + ldrsb r0, [r4, r0] + cmp r0, #0x3 + bne _0207BE46 + add r0, r4, #0x0 + bl sub_0207D22C + ldr r0, _0207BE60 ; =0x00000434 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C63C + mov r0, #0x26 + lsl r0, r0, #0x4 + ldrb r1, [r4, r0] + add r0, r0, #0x1 + ldrb r0, [r4, r0] + cmp r1, r0 + beq _0207BE38 + ldr r0, _0207BE64 ; =0x00000438 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C63C +_0207BE38: + ldr r0, [r4, #0x0] + mov r1, #0x2 + mov r2, #0x3 + mov r3, #0x0 + bl sub_0201AEE4 + pop {r4, pc} +_0207BE46: + add r0, r4, #0x0 + bl sub_0207D10C + mov r2, #0x3 + add r3, r2, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x2 + add r3, #0xfd + bl sub_0201AEE4 + pop {r4, pc} + .balign 4 +_0207BE5C: .word 0x0000068C +_0207BE60: .word 0x00000434 +_0207BE64: .word 0x00000438 + + thumb_func_start sub_0207BE68 +sub_0207BE68: ; 0x0207BE68 + push {r4, lr} + ldr r1, _0207BF78 ; =0x0000068E + add r4, r0, #0x0 + ldrb r1, [r4, r1] + cmp r1, #0x0 + beq _0207BE7E + cmp r1, #0x1 + beq _0207BEEA + cmp r1, #0x2 + beq _0207BF16 + b _0207BF74 +_0207BE7E: + mov r1, #0x2 + add r3, r1, #0x0 + ldr r0, [r4, #0x0] + mov r2, #0x0 + add r3, #0xfe + bl sub_0201AEE4 + ldr r0, [r4, #0x0] + mov r1, #0x2 + mov r2, #0x3 + mov r3, #0x0 + bl sub_0201AEE4 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207C6F0 + add r0, r4, #0x0 + add r0, #0x64 + bl sub_0201958C + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + mov r0, #0x79 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0201958C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207CFAC + ldr r1, _0207BF7C ; =0x00000697 + mov r2, #0x0 + strb r2, [r4, r1] + add r0, r1, #0x1 + strb r2, [r4, r0] + mov r0, #0x1 + sub r1, #0x9 + strb r0, [r4, r1] + b _0207BF74 +_0207BEEA: + ldr r0, [r4, #0x0] + mov r1, #0x2 + bl sub_02017B54 + cmp r0, #0x30 + ldr r0, [r4, #0x0] + blt _0207BF0A + mov r1, #0x2 + mov r2, #0x3 + mov r3, #0x38 + bl sub_0201AEE4 + ldr r0, _0207BF78 ; =0x0000068E + mov r1, #0x2 + strb r1, [r4, r0] + b _0207BF74 +_0207BF0A: + mov r1, #0x2 + mov r2, #0x4 + mov r3, #0x10 + bl sub_0201AEE4 + b _0207BF74 +_0207BF16: + mov r1, #0xb5 + bl sub_0207D924 + mov r1, #0x8d + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + bl sub_0207CFAC + ldr r0, _0207BF80 ; =0x00000514 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + mov r0, #0x52 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_020200A0 + ldr r0, _0207BF84 ; =0x00000504 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + ldr r0, _0207BF88 ; =0x00000508 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + ldr r0, _0207BF8C ; =0x0000050C + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + mov r0, #0x51 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_020200A0 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207C07C + mov r0, #0x1 + pop {r4, pc} +_0207BF74: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0207BF78: .word 0x0000068E +_0207BF7C: .word 0x00000697 +_0207BF80: .word 0x00000514 +_0207BF84: .word 0x00000504 +_0207BF88: .word 0x00000508 +_0207BF8C: .word 0x0000050C + + thumb_func_start sub_0207BF90 +sub_0207BF90: ; 0x0207BF90 + push {r4, lr} + ldr r1, _0207C078 ; =0x0000068E + add r4, r0, #0x0 + ldrb r0, [r4, r1] + cmp r0, #0x0 + beq _0207BFA6 + cmp r0, #0x1 + beq _0207BFF6 + cmp r0, #0x2 + beq _0207C022 + b _0207C072 +_0207BFA6: + add r0, r1, #0x0 + mov r2, #0x0 + add r0, #0x9 + strb r2, [r4, r0] + add r1, #0xa + mov r0, #0x91 + strb r2, [r4, r1] + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x10 + bl sub_0201958C + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x20 + bl sub_0201958C + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x30 + bl sub_0201958C + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207CFAC + add r0, r4, #0x0 + bl sub_0207D2C8 + ldr r0, _0207C078 ; =0x0000068E + mov r1, #0x1 + strb r1, [r4, r0] + b _0207C072 +_0207BFF6: + ldr r0, [r4, #0x0] + mov r1, #0x2 + bl sub_02017B54 + cmp r0, #0x8 + ldr r0, [r4, #0x0] + bgt _0207C016 + mov r1, #0x2 + mov r2, #0x3 + mov r3, #0x0 + bl sub_0201AEE4 + ldr r0, _0207C078 ; =0x0000068E + mov r1, #0x2 + strb r1, [r4, r0] + b _0207C072 +_0207C016: + mov r1, #0x2 + mov r2, #0x5 + mov r3, #0x10 + bl sub_0201AEE4 + b _0207C072 +_0207C022: + add r0, r4, #0x0 + add r0, #0x64 + bl sub_02019220 + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x79 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02019220 + add r0, r4, #0x0 + mov r1, #0xb4 + bl sub_0207D924 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0207C6F0 + mov r1, #0x8d + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + bl sub_0207CFAC + mov r0, #0x1 + pop {r4, pc} +_0207C072: + mov r0, #0x0 + pop {r4, pc} + nop +_0207C078: .word 0x0000068E + + thumb_func_start sub_0207C07C +sub_0207C07C: ; 0x0207C07C + push {r4-r6, lr} + ldr r2, _0207C1D0 ; =0x00000697 + add r5, r0, #0x0 + add r3, r2, #0x1 + ldrb r0, [r5, r2] + ldrb r4, [r5, r3] + cmp r1, #0x1 + bne _0207C0A8 + mov r1, #0x3 + and r1, r0 + cmp r1, #0x3 + beq _0207C0B6 + lsl r1, r4, #0x2 + add r1, r0, r1 + add r3, r1, #0x1 + add r1, r2, #0x2 + ldrb r1, [r5, r1] + cmp r3, r1 + bge _0207C14A + add r1, r0, #0x1 + strb r1, [r5, r2] + b _0207C14A +_0207C0A8: + mov r3, #0x0 + mvn r3, r3 + cmp r1, r3 + bne _0207C0BE + mov r1, #0x3 + tst r1, r0 + bne _0207C0B8 +_0207C0B6: + b _0207C1CE +_0207C0B8: + sub r1, r0, #0x1 + strb r1, [r5, r2] + b _0207C14A +_0207C0BE: + cmp r1, #0x4 + bne _0207C12C + cmp r0, #0x4 + bhs _0207C0F2 + add r1, r2, #0x2 + ldrb r3, [r5, r1] + lsl r1, r4, #0x2 + add r1, r0, r1 + add r1, r1, #0x4 + cmp r1, r3 + blt _0207C0EC + cmp r3, #0x4 + bls _0207C14A + lsr r1, r3, #0x1f + lsl r6, r3, #0x1e + sub r6, r6, r1 + mov r3, #0x1e + ror r6, r3 + add r1, r1, r6 + beq _0207C14A + add r1, r1, #0x3 + strb r1, [r5, r2] + b _0207C14A +_0207C0EC: + add r1, r0, #0x4 + strb r1, [r5, r2] + b _0207C14A +_0207C0F2: + add r1, r2, #0x2 + ldrb r1, [r5, r1] + lsl r3, r4, #0x2 + add r3, #0x8 + cmp r3, r1 + bge _0207C14A + add r1, r2, #0x1 + ldrb r1, [r5, r1] + add r6, r2, #0x1 + add r3, r1, #0x1 + add r1, r2, #0x1 + strb r3, [r5, r1] + add r1, r2, #0x2 + ldrb r6, [r5, r6] + ldrb r3, [r5, r1] + ldrb r1, [r5, r2] + lsl r6, r6, #0x2 + add r1, r1, r6 + cmp r1, r3 + blt _0207C14A + lsr r1, r3, #0x1f + lsl r6, r3, #0x1e + sub r6, r6, r1 + mov r3, #0x1e + ror r6, r3 + add r1, r1, r6 + add r1, r1, #0x3 + strb r1, [r5, r2] + b _0207C14A +_0207C12C: + sub r3, r3, #0x3 + cmp r1, r3 + bne _0207C14A + cmp r0, #0x4 + blo _0207C13C + sub r1, r0, #0x4 + strb r1, [r5, r2] + b _0207C14A +_0207C13C: + cmp r4, #0x0 + beq _0207C14A + add r1, r2, #0x1 + ldrb r1, [r5, r1] + sub r3, r1, #0x1 + add r1, r2, #0x1 + strb r3, [r5, r1] +_0207C14A: + ldr r1, _0207C1D0 ; =0x00000697 + ldrb r2, [r5, r1] + cmp r0, r2 + bne _0207C15A + add r0, r1, #0x1 + ldrb r0, [r5, r0] + cmp r4, r0 + beq _0207C160 +_0207C15A: + ldr r0, _0207C1D4 ; =0x000005DC + bl sub_020054C8 +_0207C160: + ldr r1, _0207C1D0 ; =0x00000697 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + bl sub_0207C1E8 + ldr r1, _0207C1D8 ; =0x0000069A + strb r0, [r5, r1] + add r0, r5, #0x0 + bl sub_0207D3C4 + ldr r0, _0207C1DC ; =0x00000698 + ldrb r0, [r5, r0] + cmp r4, r0 + beq _0207C182 + add r0, r5, #0x0 + bl sub_0207D364 +_0207C182: + add r0, r5, #0x0 + bl sub_0207E9A0 + add r0, r5, #0x0 + bl sub_0207E840 + ldr r0, _0207C1DC ; =0x00000698 + ldrb r0, [r5, r0] + cmp r0, #0x0 + ldr r0, _0207C1E0 ; =0x00000518 + beq _0207C1A2 + ldr r0, [r5, r0] + mov r1, #0x1 + bl sub_020200A0 + b _0207C1AA +_0207C1A2: + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 +_0207C1AA: + ldr r0, _0207C1DC ; =0x00000698 + ldrb r1, [r5, r0] + add r0, r0, #0x1 + ldrb r0, [r5, r0] + lsl r1, r1, #0x2 + add r1, #0x8 + cmp r1, r0 + ldr r0, _0207C1E4 ; =0x0000051C + bge _0207C1C6 + ldr r0, [r5, r0] + mov r1, #0x1 + bl sub_020200A0 + pop {r4-r6, pc} +_0207C1C6: + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 +_0207C1CE: + pop {r4-r6, pc} + .balign 4 +_0207C1D0: .word 0x00000697 +_0207C1D4: .word 0x000005DC +_0207C1D8: .word 0x0000069A +_0207C1DC: .word 0x00000698 +_0207C1E0: .word 0x00000518 +_0207C1E4: .word 0x0000051C + + thumb_func_start sub_0207C1E8 +sub_0207C1E8: ; 0x0207C1E8 + push {r4-r7} + ldr r2, _0207C238 ; =0x00000698 + mov r6, #0x0 + ldrb r2, [r0, r2] + add r4, r6, #0x0 + lsl r2, r2, #0x2 + add r1, r1, r2 + lsl r1, r1, #0x18 + lsr r5, r1, #0x18 + mov r1, #0xa9 + mov r2, #0x1 + lsl r1, r1, #0x2 +_0207C200: + mov r3, #0x1f + add r7, r4, #0x0 + and r7, r3 + add r3, r2, #0x0 + lsl r3, r7 + lsr r7, r4, #0x5 + lsl r7, r7, #0x2 + add r7, r0, r7 + ldr r7, [r7, r1] + tst r3, r7 + beq _0207C228 + cmp r5, r6 + bne _0207C222 + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + pop {r4-r7} + bx lr +_0207C222: + add r3, r6, #0x1 + lsl r3, r3, #0x18 + lsr r6, r3, #0x18 +_0207C228: + add r3, r4, #0x1 + lsl r3, r3, #0x10 + lsr r4, r3, #0x10 + cmp r4, #0x50 + blo _0207C200 + mov r0, #0x0 + pop {r4-r7} + bx lr + .balign 4 +_0207C238: .word 0x00000698 + + thumb_func_start sub_0207C23C +sub_0207C23C: ; 0x0207C23C + push {r4, lr} + sub sp, #0x8 + ldr r1, _0207C29C ; =0x0000029A + add r4, r0, #0x0 + ldrb r0, [r4, r1] + cmp r0, #0xff + bne _0207C28E + mov r0, #0x0 + sub r1, #0xda + mov r2, #0x13 + bl sub_02002EEC + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldr r0, [r0, #0x4] + bl sub_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + mov r0, #0x13 + str r0, [sp, #0x4] + ldr r0, [r4, #0x0] + ldr r2, _0207C2A0 ; =0x000003E2 + mov r1, #0x1 + mov r3, #0xd + bl sub_0200CD68 + add r0, r4, #0x0 + mov r1, #0xff + bl sub_0207EECC + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x1 + strb r1, [r0, #0x17] + add sp, #0x8 + mov r0, #0x11 + pop {r4, pc} +_0207C28E: + sub r1, #0x4e + ldr r0, [r4, r1] + mov r2, #0x0 + strb r2, [r0, #0x17] + mov r0, #0x12 + add sp, #0x8 + pop {r4, pc} + .balign 4 +_0207C29C: .word 0x0000029A +_0207C2A0: .word 0x000003E2 + + thumb_func_start sub_0207C2A4 +sub_0207C2A4: ; 0x0207C2A4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl sub_0202398C + str r0, [r5, #0x8] + add r0, r4, #0x0 + bl sub_020239BC + str r0, [r5, #0xc] + add r0, r4, #0x0 + bl sub_020239CC + strb r0, [r5, #0x10] + pop {r3-r5, pc} + + thumb_func_start sub_0207C2C4 +sub_0207C2C4: ; 0x0207C2C4 + mov r0, #0x40 + bx lr + + thumb_func_start sub_0207C2C8 +sub_0207C2C8: ; 0x0207C2C8 + mov r0, #0x41 + bx lr + + thumb_func_start sub_0207C2CC +sub_0207C2CC: ; 0x0207C2CC + mov r0, #0x3f + bx lr + + thumb_func_start sub_0207C2D0 +sub_0207C2D0: ; 0x0207C2D0 + mov r0, #0x3e + bx lr + + thumb_func_start sub_0207C2D4 +sub_0207C2D4: ; 0x0207C2D4 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0x9f + mov r2, #0x0 + bl sub_020671BC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _0207C2F4 + mov r0, #0x6 + pop {r3-r5, pc} +_0207C2F4: + mov r0, #0x88 + tst r0, r4 + beq _0207C2FE + mov r0, #0x4 + pop {r3-r5, pc} +_0207C2FE: + mov r0, #0x7 + add r1, r4, #0x0 + tst r1, r0 + beq _0207C30A + mov r0, #0x3 + pop {r3-r5, pc} +_0207C30A: + mov r1, #0x10 + tst r1, r4 + beq _0207C314 + mov r0, #0x5 + pop {r3-r5, pc} +_0207C314: + mov r1, #0x20 + tst r1, r4 + beq _0207C31E + mov r0, #0x2 + pop {r3-r5, pc} +_0207C31E: + mov r1, #0x40 + tst r1, r4 + beq _0207C326 + mov r0, #0x1 +_0207C326: + pop {r3-r5, pc} + + thumb_func_start sub_0207C328 +sub_0207C328: ; 0x0207C328 + push {r3-r7, lr} + sub sp, #0x50 + add r4, r0, #0x0 + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E6E4 + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E74C + mov r0, #0x20 + mov r1, #0x13 + bl sub_0201C24C + mov r0, #0x13 + bl sub_0200BB14 + mov r1, #0x1 + lsl r1, r1, #0xa + str r0, [r4, r1] + ldr r0, [r4, r1] + bl sub_0200BB34 + ldr r7, _0207C3C4 ; =0x00000404 + add r2, sp, #0x30 + ldr r3, _0207C3C8 ; =0x020FA73C + str r0, [r4, r7] + ldmia r3!, {r0-r1} + add r6, r2, #0x0 + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + ldr r5, _0207C3CC ; =0x020FA70C + stmia r2!, {r0-r1} + add r3, sp, #0x1c + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + add r1, r6, #0x0 + str r0, [r3, #0x0] + sub r0, r7, #0x4 + ldr r0, [r4, r0] + mov r3, #0x20 + bl sub_0200BB6C + sub r1, r7, #0x4 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + mov r2, #0x4d + bl sub_0200BBF0 + ldr r5, _0207C3D0 ; =0x020FA720 + add r3, sp, #0x0 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + sub r1, r7, #0x4 + str r0, [r3, #0x0] + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + bl sub_0200BD20 + add sp, #0x50 + pop {r3-r7, pc} + .balign 4 +_0207C3C4: .word 0x00000404 +_0207C3C8: .word 0x020FA73C +_0207C3CC: .word 0x020FA70C +_0207C3D0: .word 0x020FA720 + + thumb_func_start sub_0207C3D4 +sub_0207C3D4: ; 0x0207C3D4 + push {r4, lr} + mov r1, #0x1 + add r4, r0, #0x0 + lsl r1, r1, #0xa + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + bl sub_0200BCE0 + mov r0, #0x1 + lsl r0, r0, #0xa + ldr r0, [r4, r0] + bl sub_0200BD04 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0207C3F4 +sub_0207C3F4: ; 0x0207C3F4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0207C438 ; =0x0000045C + mov r1, #0x1 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl sub_020201E4 + mov r0, #0x46 + lsl r0, r0, #0x4 + mov r1, #0x1 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl sub_020201E4 + ldr r0, _0207C43C ; =0x000004AC + mov r1, #0x1 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl sub_020201E4 + ldr r0, _0207C440 ; =0x00000518 + mov r1, #0x1 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl sub_020201E4 + ldr r0, _0207C444 ; =0x0000051C + mov r1, #0x1 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl sub_020201E4 + pop {r4, pc} + .balign 4 +_0207C438: .word 0x0000045C +_0207C43C: .word 0x000004AC +_0207C440: .word 0x00000518 +_0207C444: .word 0x0000051C + + thumb_func_start sub_0207C448 +sub_0207C448: ; 0x0207C448 + push {r3-r7, lr} + ldr r6, _0207C550 ; =0x020FA784 + ldr r7, _0207C554 ; =0x00000408 + add r5, r0, #0x0 + mov r4, #0x0 +_0207C452: + mov r0, #0x1 + ldr r1, _0207C558 ; =0x00000404 + lsl r0, r0, #0xa + mov r2, #0x28 + mul r2, r4 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, r2 + bl sub_0200BE38 + lsl r1, r4, #0x2 + add r1, r5, r1 + str r0, [r1, r7] + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x4d + blo _0207C452 + add r0, r5, #0x0 + bl sub_0207C7EC + ldr r0, _0207C55C ; =0x0000042C + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + mov r0, #0x43 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 + ldr r0, _0207C560 ; =0x000004AC + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + mov r0, #0x4b + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 + ldr r0, _0207C564 ; =0x000004B4 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _0207C568 ; =0x000004B8 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _0207C56C ; =0x000004BC + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + mov r0, #0x13 + lsl r0, r0, #0x6 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 + ldr r0, _0207C570 ; =0x000004C4 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _0207C574 ; =0x000004C8 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _0207C578 ; =0x000004CC + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + mov r0, #0x4d + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 + ldr r0, _0207C57C ; =0x000004D4 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _0207C580 ; =0x000004D8 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _0207C584 ; =0x00000524 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _0207C588 ; =0x00000528 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _0207C58C ; =0x0000052C + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + mov r0, #0x53 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_020200A0 + ldr r0, _0207C590 ; =0x00000534 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + ldr r0, _0207C594 ; =0x00000538 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + pop {r3-r7, pc} + .balign 4 +_0207C550: .word 0x020FA784 +_0207C554: .word 0x00000408 +_0207C558: .word 0x00000404 +_0207C55C: .word 0x0000042C +_0207C560: .word 0x000004AC +_0207C564: .word 0x000004B4 +_0207C568: .word 0x000004B8 +_0207C56C: .word 0x000004BC +_0207C570: .word 0x000004C4 +_0207C574: .word 0x000004C8 +_0207C578: .word 0x000004CC +_0207C57C: .word 0x000004D4 +_0207C580: .word 0x000004D8 +_0207C584: .word 0x00000524 +_0207C588: .word 0x00000528 +_0207C58C: .word 0x0000052C +_0207C590: .word 0x00000534 +_0207C594: .word 0x00000538 + + thumb_func_start sub_0207C598 +sub_0207C598: ; 0x0207C598 + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_0207C5A0: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0207B070 + cmp r0, #0x0 + beq _0207C5B2 + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 +_0207C5B2: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x8 + blo _0207C5A0 + sub r0, r5, #0x1 + lsl r1, r0, #0x4 + add r1, #0x18 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r1, r0, #0x1 + mov r0, #0xbc + sub r0, r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0207C5D4 +sub_0207C5D4: ; 0x0207C5D4 + push {r3-r7, lr} + sub sp, #0x10 + add r7, r0, #0x0 + bl sub_0207C598 + str r0, [sp, #0x4] + ldr r0, _0207C69C ; =0x00000408 + mov r5, #0x0 + add r4, r7, r0 + ldr r0, [sp, #0x4] + str r5, [sp, #0x8] + str r0, [sp, #0x0] + add r0, #0x18 + str r0, [sp, #0x0] +_0207C5F0: + add r0, r7, #0x0 + add r1, r5, #0x0 + bl sub_0207B070 + cmp r0, #0x0 + bne _0207C608 + lsl r0, r5, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_020200A0 + b _0207C68E +_0207C608: + lsl r6, r5, #0x2 + ldr r0, [r4, r6] + bl sub_020201DC + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, _0207C6A0 ; =0x0000068C + ldrsb r0, [r7, r0] + cmp r0, r5 + bne _0207C62A + cmp r1, #0x8 + bhs _0207C636 + ldr r0, [r4, r6] + add r1, #0x8 + bl sub_02020130 + b _0207C636 +_0207C62A: + cmp r1, #0x8 + blo _0207C636 + ldr r0, [r4, r6] + sub r1, #0x8 + bl sub_02020130 +_0207C636: + add r1, sp, #0xc + ldr r0, [r4, r6] + add r1, #0x2 + add r2, sp, #0xc + bl sub_0200C75C + ldr r0, _0207C6A0 ; =0x0000068C + ldrsb r0, [r7, r0] + cmp r0, r5 + blt _0207C652 + ldr r0, [sp, #0x8] + lsl r1, r0, #0x4 + ldr r0, [sp, #0x4] + b _0207C65A +_0207C652: + ldr r0, [sp, #0x8] + sub r0, r0, #0x1 + lsl r1, r0, #0x4 + ldr r0, [sp, #0x0] +_0207C65A: + add r0, r0, r1 + lsl r0, r0, #0x10 + asr r1, r0, #0x10 + add r0, sp, #0xc + strh r1, [r0, #0x2] + lsl r0, r5, #0x2 + add r1, r7, r0 + ldr r0, _0207C69C ; =0x00000408 + add r2, sp, #0xc + ldr r0, [r1, r0] + mov r1, #0x2 + ldrsh r1, [r2, r1] + add r3, r2, #0x0 + mov r2, #0x0 + ldrsh r2, [r3, r2] + bl sub_0200C6E4 + ldr r0, [r4, r6] + mov r1, #0x1 + bl sub_020200A0 + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] +_0207C68E: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x8 + blo _0207C5F0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0207C69C: .word 0x00000408 +_0207C6A0: .word 0x0000068C + + thumb_func_start sub_0207C6A4 +sub_0207C6A4: ; 0x0207C6A4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0207B09C + cmp r0, #0x1 + bhi _0207C6B8 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0207C6F0 +_0207C6B8: + add r0, r5, #0x0 + bl sub_0207C598 + add r4, r0, #0x0 + ldr r0, _0207C6EC ; =0x0000045C + add r1, r4, #0x0 + sub r1, #0xc + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + asr r1, r1, #0x10 + mov r2, #0x18 + bl sub_0200C6E4 + mov r1, #0x5d + mov r0, #0x46 + lsl r1, r1, #0x2 + lsl r0, r0, #0x4 + sub r1, r1, r4 + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + asr r1, r1, #0x10 + mov r2, #0x18 + bl sub_0200C6E4 + pop {r3-r5, pc} + nop +_0207C6EC: .word 0x0000045C + + thumb_func_start sub_0207C6F0 +sub_0207C6F0: ; 0x0207C6F0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0207B09C + cmp r0, #0x1 + bhi _0207C700 + mov r4, #0x0 +_0207C700: + ldr r0, _0207C718 ; =0x0000045C + add r1, r4, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 + mov r0, #0x46 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + add r1, r4, #0x0 + bl sub_020200A0 + pop {r3-r5, pc} + .balign 4 +_0207C718: .word 0x0000045C + + thumb_func_start sub_0207C71C +sub_0207C71C: ; 0x0207C71C + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + ldr r0, _0207C774 ; =0x00000263 + ldrb r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r3, r0, #0x1a + bne _0207C730 + mov r3, #0x15 + b _0207C732 +_0207C730: + add r3, #0x14 +_0207C732: + mov r0, #0x0 + mov r1, #0x1 + str r0, [sp, #0x0] + lsl r1, r1, #0xa + str r0, [sp, #0x4] + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + mov r2, #0x27 + bl sub_0200C9D8 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x6 + mov r1, #0x1 + ldr r3, _0207C774 ; =0x00000263 + str r0, [sp, #0x4] + ldrb r3, [r4, r3] + lsl r1, r1, #0xa + ldr r0, [r4, r1] + add r1, r1, #0x4 + lsl r3, r3, #0x18 + ldr r1, [r4, r1] + lsr r4, r3, #0x1a + ldr r3, _0207C778 ; =0x020FA6F8 + mov r2, #0x27 + ldrb r3, [r3, r4] + add r3, #0x25 + bl sub_0200CA0C + add sp, #0x8 + pop {r4, pc} + nop +_0207C774: .word 0x00000263 +_0207C778: .word 0x020FA6F8 + + thumb_func_start sub_0207C77C +sub_0207C77C: ; 0x0207C77C + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x2a + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + lsl r0, r0, #0x4 + lsr r0, r0, #0x4 + cmp r0, #0x7 + bne _0207C7A4 + ldr r0, _0207C7E4 ; =0x00000458 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + ldr r0, _0207C7E8 ; =0x00000538 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + pop {r4, pc} +_0207C7A4: + cmp r0, #0x0 + ldr r0, _0207C7E8 ; =0x00000538 + beq _0207C7D0 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_020200A0 + ldr r0, _0207C7E4 ; =0x00000458 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + mov r1, #0x2a + lsl r1, r1, #0x4 + ldr r0, _0207C7E4 ; =0x00000458 + ldr r1, [r4, r1] + ldr r0, [r4, r0] + lsl r1, r1, #0x4 + lsr r1, r1, #0x4 + bl sub_02020130 + pop {r4, pc} +_0207C7D0: + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_020200A0 + ldr r0, _0207C7E4 ; =0x00000458 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + pop {r4, pc} + .balign 4 +_0207C7E4: .word 0x00000458 +_0207C7E8: .word 0x00000538 + + thumb_func_start sub_0207C7EC +sub_0207C7EC: ; 0x0207C7EC + push {r3-r7, lr} + add r5, r0, #0x0 + bl sub_0207CA44 + mov r6, #0xa1 + mov r4, #0x0 + mov r7, #0x3 + lsl r6, r6, #0x2 +_0207C7FC: + lsl r0, r4, #0x1 + add r0, r5, r0 + ldrh r0, [r0, r6] + cmp r0, #0x0 + beq _0207C826 + add r1, r7, #0x0 + bl sub_0206AB18 + add r3, r0, #0x0 + add r1, r4, #0x0 + add r1, #0xd + add r2, r4, #0x5 + lsl r1, r1, #0x18 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_0207CA6C +_0207C826: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x4 + blo _0207C7FC + add r0, r5, #0x0 + bl sub_0207CFEC + pop {r3-r7, pc} + + thumb_func_start sub_0207C838 +sub_0207C838: ; 0x0207C838 + push {r3-r7, lr} + ldr r6, _0207CA2C ; =0x00000408 + add r5, r0, #0x0 + mov r4, #0xb + mov r7, #0x0 +_0207C842: + lsl r0, r4, #0x2 + add r0, r5, r0 + ldr r0, [r0, r6] + add r1, r7, #0x0 + bl sub_0200C63C + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x13 + bls _0207C842 + ldr r0, _0207CA30 ; =0x0000068C + ldrsb r0, [r5, r0] + cmp r0, #0x0 + beq _0207C86C + cmp r0, #0x3 + beq _0207C8B4 + cmp r0, #0x5 + bne _0207C86A + b _0207C96E +_0207C86A: + pop {r3-r7, pc} +_0207C86C: + ldr r0, _0207CA34 ; =0x00000434 + mov r1, #0x1 + ldr r0, [r5, r0] + bl sub_0200C63C + mov r0, #0x26 + lsl r0, r0, #0x4 + ldrb r1, [r5, r0] + add r0, r0, #0x1 + ldrb r0, [r5, r0] + cmp r1, r0 + ldr r0, _0207CA34 ; =0x00000434 + bne _0207C892 + ldr r0, [r5, r0] + mov r1, #0xd8 + mov r2, #0x50 + bl sub_0200C6E4 + pop {r3-r7, pc} +_0207C892: + ldr r0, [r5, r0] + mov r1, #0xc7 + mov r2, #0x50 + bl sub_0200C6E4 + ldr r0, _0207CA38 ; =0x00000438 + mov r1, #0x1 + ldr r0, [r5, r0] + bl sub_0200C63C + ldr r0, _0207CA38 ; =0x00000438 + mov r1, #0xe9 + ldr r0, [r5, r0] + mov r2, #0x50 + bl sub_0200C6E4 + pop {r3-r7, pc} +_0207C8B4: + mov r7, #0xa1 + mov r4, #0x0 + lsl r7, r7, #0x2 +_0207C8BA: + lsl r0, r4, #0x1 + add r0, r5, r0 + ldrh r0, [r0, r7] + cmp r0, #0x0 + beq _0207C904 + mov r1, #0x3 + bl sub_0206AB18 + add r3, r0, #0x0 + add r1, r4, #0x0 + add r1, #0xd + add r2, r4, #0x5 + lsl r1, r1, #0x18 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_0207CA6C + lsl r0, r4, #0x2 + add r6, r5, r0 + ldr r0, _0207CA3C ; =0x0000043C + mov r1, #0x1 + ldr r0, [r6, r0] + bl sub_0200C63C + ldr r0, _0207CA3C ; =0x0000043C + lsl r2, r4, #0x5 + add r2, #0x2a + lsl r2, r2, #0x10 + ldr r0, [r6, r0] + mov r1, #0x97 + asr r2, r2, #0x10 + bl sub_0200C6E4 +_0207C904: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x4 + blo _0207C8BA + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0207C946 + mov r1, #0x3 + bl sub_0206AB18 + add r3, r0, #0x0 + lsl r3, r3, #0x18 + add r0, r5, #0x0 + mov r1, #0x11 + mov r2, #0x9 + lsr r3, r3, #0x18 + bl sub_0207CA6C + ldr r0, _0207CA40 ; =0x0000044C + mov r1, #0x1 + ldr r0, [r5, r0] + bl sub_0200C63C + ldr r0, _0207CA40 ; =0x0000044C + mov r1, #0x97 + ldr r0, [r5, r0] + mov r2, #0xaa + bl sub_0200C6E4 +_0207C946: + ldr r0, _0207CA34 ; =0x00000434 + mov r1, #0x3f + ldr r0, [r5, r0] + mov r2, #0x34 + bl sub_0200C6E4 + ldr r0, _0207CA38 ; =0x00000438 + mov r1, #0x61 + ldr r0, [r5, r0] + mov r2, #0x34 + bl sub_0200C6E4 + mov r0, #0x45 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x6c + mov r2, #0x48 + bl sub_0200C6E4 + pop {r3-r7, pc} +_0207C96E: + mov r7, #0xa1 + mov r4, #0x0 + lsl r7, r7, #0x2 +_0207C974: + lsl r0, r4, #0x1 + add r0, r5, r0 + ldrh r0, [r0, r7] + cmp r0, #0x0 + beq _0207C9C0 + mov r1, #0xb + bl sub_0206AB18 + add r3, r0, #0x0 + add r1, r4, #0x0 + add r1, #0xd + add r2, r4, #0x5 + add r3, #0x12 + lsl r1, r1, #0x18 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl sub_0207CA6C + lsl r0, r4, #0x2 + add r6, r5, r0 + ldr r0, _0207CA3C ; =0x0000043C + mov r1, #0x1 + ldr r0, [r6, r0] + bl sub_0200C63C + ldr r0, _0207CA3C ; =0x0000043C + lsl r2, r4, #0x5 + add r2, #0x2a + lsl r2, r2, #0x10 + ldr r0, [r6, r0] + mov r1, #0x97 + asr r2, r2, #0x10 + bl sub_0200C6E4 +_0207C9C0: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x4 + blo _0207C974 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0207CA04 + mov r1, #0xb + bl sub_0206AB18 + add r3, r0, #0x0 + add r3, #0x12 + lsl r3, r3, #0x18 + add r0, r5, #0x0 + mov r1, #0x11 + mov r2, #0x9 + lsr r3, r3, #0x18 + bl sub_0207CA6C + ldr r0, _0207CA40 ; =0x0000044C + mov r1, #0x1 + ldr r0, [r5, r0] + bl sub_0200C63C + ldr r0, _0207CA40 ; =0x0000044C + mov r1, #0x97 + ldr r0, [r5, r0] + mov r2, #0xaa + bl sub_0200C6E4 +_0207CA04: + ldr r0, _0207CA34 ; =0x00000434 + mov r1, #0x3f + ldr r0, [r5, r0] + mov r2, #0x34 + bl sub_0200C6E4 + ldr r0, _0207CA38 ; =0x00000438 + mov r1, #0x61 + ldr r0, [r5, r0] + mov r2, #0x34 + bl sub_0200C6E4 + mov r0, #0x45 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x6c + mov r2, #0x48 + bl sub_0200C6E4 + pop {r3-r7, pc} + .balign 4 +_0207CA2C: .word 0x00000408 +_0207CA30: .word 0x0000068C +_0207CA34: .word 0x00000434 +_0207CA38: .word 0x00000438 +_0207CA3C: .word 0x0000043C +_0207CA40: .word 0x0000044C + + thumb_func_start sub_0207CA44 +sub_0207CA44: ; 0x0207CA44 + push {r4, lr} + mov r3, #0x26 + add r4, r0, #0x0 + lsl r3, r3, #0x4 + ldrb r3, [r4, r3] + mov r1, #0xb + mov r2, #0x3 + bl sub_0207CA6C + ldr r3, _0207CA68 ; =0x00000261 + add r0, r4, #0x0 + ldrb r3, [r4, r3] + mov r1, #0xc + mov r2, #0x4 + bl sub_0207CA6C + pop {r4, pc} + nop +_0207CA68: .word 0x00000261 + + thumb_func_start sub_0207CA6C +sub_0207CA6C: ; 0x0207CA6C + push {r4-r7, lr} + sub sp, #0xc + add r7, r3, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_0206E12C + str r0, [sp, #0x8] + add r0, r7, #0x0 + bl sub_0206E0F0 + add r3, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r1, _0207CAB4 ; =0x00000404 + str r6, [sp, #0x4] + lsl r0, r0, #0xa + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, [sp, #0x8] + bl sub_0200C9D8 + add r0, r7, #0x0 + bl sub_0206E114 + add r2, r0, #0x0 + lsl r0, r4, #0x2 + add r1, r5, r0 + ldr r0, _0207CAB8 ; =0x00000408 + ldr r0, [r1, r0] + add r1, r2, #0x3 + bl sub_0200C664 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0207CAB4: .word 0x00000404 +_0207CAB8: .word 0x00000408 + + thumb_func_start sub_0207CABC +sub_0207CABC: ; 0x0207CABC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, r1, #0x0 + ldrb r0, [r0, #0x0] + str r1, [sp, #0x0] + str r2, [sp, #0x4] + lsl r0, r0, #0x5 + add r0, #0x2a + lsl r0, r0, #0x10 + add r4, r3, #0x0 + asr r7, r0, #0x10 + mov r6, #0x0 +_0207CAD6: + ldr r0, _0207CB04 ; =0x0000043C + ldr r1, [sp, #0x4] + ldr r0, [r5, r0] + add r2, r4, #0x0 + bl sub_0200C75C + mov r0, #0x0 + ldrsh r0, [r4, r0] + cmp r7, r0 + bne _0207CAF2 + ldr r0, [sp, #0x0] + add sp, #0x8 + strb r6, [r0, #0x0] + pop {r3-r7, pc} +_0207CAF2: + add r0, r6, #0x1 + lsl r0, r0, #0x10 + asr r6, r0, #0x10 + add r5, r5, #0x4 + cmp r6, #0x4 + blt _0207CAD6 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0207CB04: .word 0x0000043C + + thumb_func_start sub_0207CB08 +sub_0207CB08: ; 0x0207CB08 + push {r0-r3} + push {r4, lr} + sub sp, #0x8 + add r2, sp, #0x4 + add r1, sp, #0x14 + add r2, #0x2 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl sub_0207CABC + add r2, sp, #0x0 + add r0, r4, #0x0 + add r1, sp, #0x18 + add r2, #0x2 + add r3, sp, #0x0 + bl sub_0207CABC + add r0, sp, #0x10 + ldrb r0, [r0, #0x4] + add r3, sp, #0x0 + mov r2, #0x0 + add r0, #0xd + lsl r0, r0, #0x2 + add r1, r4, r0 + ldr r0, _0207CB6C ; =0x00000408 + ldrsh r2, [r3, r2] + ldr r0, [r1, r0] + mov r1, #0x2 + ldrsh r1, [r3, r1] + bl sub_0200C6E4 + add r0, sp, #0x10 + ldrb r0, [r0, #0x8] + add r3, sp, #0x0 + mov r2, #0x4 + add r0, #0xd + lsl r0, r0, #0x2 + add r1, r4, r0 + ldr r0, _0207CB6C ; =0x00000408 + ldrsh r2, [r3, r2] + ldr r0, [r1, r0] + mov r1, #0x6 + ldrsh r1, [r3, r1] + bl sub_0200C6E4 + add sp, #0x8 + pop {r4} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4 +_0207CB6C: .word 0x00000408 + + thumb_func_start sub_0207CB70 +sub_0207CB70: ; 0x0207CB70 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x1 + bl sub_0206AB18 + add r4, r0, #0x0 + bl sub_0206E2A8 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl sub_0206E278 + mov r1, #0x1 + add r3, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0xa + str r0, [sp, #0x4] + lsl r0, r1, #0xa + ldr r1, _0207CBBC ; =0x00000404 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0x0 + bl sub_0200C9D8 + add r0, r4, #0x0 + bl sub_0206E290 + add r1, r0, #0x0 + mov r0, #0x45 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + add r1, r1, #0x3 + bl sub_0200C664 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_0207CBBC: .word 0x00000404 + + thumb_func_start sub_0207CBC0 +sub_0207CBC0: ; 0x0207CBC0 + ldr r2, _0207CBDC ; =0x0000068D + add r3, r0, #0x0 + ldrb r2, [r3, r2] + ldr r0, _0207CBE0 ; =0x0000042C + mov r1, #0xc2 + lsl r2, r2, #0x1c + lsr r2, r2, #0x1c + lsl r2, r2, #0x5 + ldr r0, [r3, r0] + add r2, #0x30 + lsl r2, r2, #0x10 + ldr r3, _0207CBE4 ; =sub_0200C6E4 + asr r2, r2, #0x10 + bx r3 + .balign 4 +_0207CBDC: .word 0x0000068D +_0207CBE0: .word 0x0000042C +_0207CBE4: .word sub_0200C6E4 + 1 + + thumb_func_start sub_0207CBE8 +sub_0207CBE8: ; 0x0207CBE8 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldr r0, _0207CC20 ; =0x0000042C + add r1, sp, #0x0 + ldr r0, [r4, r0] + add r1, #0x2 + add r2, sp, #0x0 + bl sub_0200C75C + mov r0, #0x43 + lsl r0, r0, #0x4 + add r3, sp, #0x0 + mov r1, #0x2 + mov r2, #0x0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r4, r0] + bl sub_0200C6E4 + mov r0, #0x43 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_020200A0 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0207CC20: .word 0x0000042C + + thumb_func_start sub_0207CC24 +sub_0207CC24: ; 0x0207CC24 + push {r3-r7, lr} + mov r2, #0x69 + lsl r2, r2, #0x4 + mov r1, #0x0 + strb r1, [r0, r2] + add r3, r2, #0x3 + strb r1, [r0, r3] + add r3, r2, #0x2 + strb r1, [r0, r3] + ldr r3, _0207CC80 ; =0x0000029A + ldrb r3, [r0, r3] + cmp r3, #0x0 + bne _0207CC44 + add r2, r2, #0x1 + strb r1, [r0, r2] + b _0207CC5A +_0207CC44: + cmp r3, #0xff + bne _0207CC50 + mov r3, #0xc + add r1, r2, #0x1 + strb r3, [r0, r1] + b _0207CC5A +_0207CC50: + mov r1, #0xc + mul r1, r3 + asr r3, r1, #0x8 + add r1, r2, #0x1 + strb r3, [r0, r1] +_0207CC5A: + ldr r7, _0207CC84 ; =0x00000408 + add r5, r0, #0x0 + mov r4, #0x1d + add r5, #0x74 + add r6, r7, #0x0 +_0207CC64: + ldr r0, [r5, r7] + mov r1, #0x0 + bl sub_020200A0 + ldr r0, [r5, r6] + mov r1, #0x0 + bl sub_02020208 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x28 + bls _0207CC64 + pop {r3-r7, pc} + nop +_0207CC80: .word 0x0000029A +_0207CC84: .word 0x00000408 + + thumb_func_start sub_0207CC88 +sub_0207CC88: ; 0x0207CC88 + push {r3-r7, lr} + add r4, r0, #0x0 + ldr r0, _0207CE38 ; =0x0000068C + ldrsb r1, [r4, r0] + cmp r1, #0x4 + bne _0207CC9C + add r1, r0, #0x5 + ldrb r1, [r4, r1] + cmp r1, #0x0 + bne _0207CC9E +_0207CC9C: + b _0207CE34 +_0207CC9E: + add r2, r0, #0x4 + ldrb r2, [r4, r2] + cmp r2, #0x4 + bhi _0207CCCC + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r0, r1, #0 + lsl r4, r5, #0 + lsl r4, r3, #0x2 + lsl r4, r7, #0x2 + lsl r6, r2, #0x4 + add r1, r0, #0x7 + ldrb r1, [r4, r1] + add r2, r1, #0x1 + add r1, r0, #0x7 + strb r2, [r4, r1] + ldrb r1, [r4, r1] + cmp r1, #0x8 + beq _0207CCCE +_0207CCCC: + b _0207CDE8 +_0207CCCE: + mov r2, #0x1 + add r1, r0, #0x4 + strb r2, [r4, r1] + add r1, r0, #0x7 + mov r2, #0x0 + strb r2, [r4, r1] + add r0, r0, #0x6 + strb r2, [r4, r0] + b _0207CDE8 +_0207CCE0: + .byte 0xC1, 0x1D, 0x61, 0x5C, 0x00, 0x29, 0x2A, 0xD1, 0x80, 0x1D, 0x20, 0x5C, 0x1D, 0x30, 0x80, 0x00 + .byte 0x21, 0x18, 0x52, 0x48, 0x08, 0x58, 0x01, 0x21, 0xA3, 0xF7, 0xD2, 0xF9, 0x50, 0x48, 0x20, 0x5C + .byte 0x1D, 0x30, 0x80, 0x00, 0x21, 0x18, 0x4D, 0x48, 0x08, 0x58, 0x00, 0x21, 0xA3, 0xF7, 0x7C, 0xFA + .byte 0x4B, 0x48, 0x20, 0x5C, 0x1D, 0x30, 0x80, 0x00, 0x21, 0x18, 0x48, 0x48, 0x08, 0x58, 0x00, 0x21 + .byte 0xA3, 0xF7, 0x06, 0xFA, 0x46, 0x48, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0x41, 0x1E, 0x22, 0x5C + .byte 0x61, 0x5C, 0x8A, 0x42, 0x03, 0xD1, 0x02, 0x21, 0x80, 0x1E, 0x21, 0x54, 0x54, 0xE0, 0x41, 0x48 + .byte 0x0A, 0x21, 0x20, 0x5C, 0x40, 0x1C, 0x6E, 0xF0, 0x9C, 0xEF, 0x3E, 0x48, 0x21, 0x54, 0x4B, 0xE0 + .byte 0x1C, 0x31, 0x88, 0x00, 0x21, 0x18, 0x39, 0x48, 0x08, 0x58, 0xA3, 0xF7, 0xE5, 0xF9, 0x00, 0x28 + .byte 0x42, 0xD1, 0x38, 0x48, 0x00, 0x21, 0x21, 0x54, 0x03, 0x21, 0xC0, 0x1E, 0x21, 0x54, 0x3B, 0xE0 + .byte 0xC1, 0x1D, 0x61, 0x5C, 0x4A, 0x1C, 0xC1, 0x1D, 0x62, 0x54, 0x61, 0x5C, 0x20, 0x29, 0x33, 0xD1 + .byte 0x40, 0x1D, 0x20, 0x5C, 0x1D, 0x26, 0x1D, 0x30, 0x1D, 0x28, 0x17, 0xD9, 0x25, 0x1C, 0x2E, 0x4F + .byte 0x74, 0x35, 0x2A, 0x48, 0x01, 0x21, 0x28, 0x58, 0xA3, 0xF7, 0x82, 0xF9, 0x27, 0x48, 0x00, 0x21 + .byte 0x28, 0x58, 0xA3, 0xF7, 0x31, 0xFA, 0x25, 0x48, 0x00, 0x21, 0x28, 0x58, 0xA3, 0xF7, 0xC0, 0xF9 + .byte 0xE0, 0x5D, 0x76, 0x1C, 0x2D, 0x1D, 0x1D, 0x30, 0x86, 0x42, 0xEA, 0xD3, 0x21, 0x48, 0x00, 0x21 + .byte 0x21, 0x54, 0x04, 0x21, 0xC0, 0x1E, 0x21, 0x54, 0x0E, 0xE0, 0xC1, 0x1D, 0x61, 0x5C, 0x4A, 0x1C + .byte 0xC1, 0x1D, 0x62, 0x54, 0x61, 0x5C, 0x20, 0x29, 0x06, 0xD1, 0x00, 0x22, 0x01, 0x1D, 0x62, 0x54 + .byte 0xC1, 0x1D, 0x62, 0x54, 0x80, 0x1D, 0x22, 0x54 +_0207CDE8: + ldr r0, _0207CE48 ; =0x00000691 + mov r6, #0x1d + ldrb r0, [r4, r0] + add r0, #0x1d + cmp r0, #0x1d + bls _0207CE34 + add r5, r4, #0x0 + ldr r7, _0207CE3C ; =0x00000408 + add r5, #0x74 +_0207CDFA: + ldr r0, [r5, r7] + bl sub_02020128 + cmp r0, #0x0 + beq _0207CE26 + ldr r0, _0207CE3C ; =0x00000408 + mov r1, #0x1 + ldr r0, [r5, r0] + lsl r1, r1, #0xc + bl sub_020201E4 + ldr r0, _0207CE3C ; =0x00000408 + ldr r0, [r5, r0] + bl sub_0202022C + cmp r0, #0x6 + bne _0207CE26 + ldr r0, _0207CE3C ; =0x00000408 + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_020200A0 +_0207CE26: + ldr r0, _0207CE48 ; =0x00000691 + add r6, r6, #0x1 + ldrb r0, [r4, r0] + add r5, r5, #0x4 + add r0, #0x1d + cmp r6, r0 + blo _0207CDFA +_0207CE34: + pop {r3-r7, pc} + nop +_0207CE38: .word 0x0000068C +_0207CE3C: .word 0x00000408 +_0207CE40: + .byte 0x92, 0x06, 0x00, 0x00, 0x93, 0x06, 0x00, 0x00 +_0207CE48: .word 0x00000691 + + thumb_func_start sub_0207CE4C +sub_0207CE4C: ; 0x0207CE4C + push {r3-r7, lr} + add r6, r0, #0x0 + mov r4, #0x0 + add r5, r6, #0x0 + mov r7, #0x1 +_0207CE56: + mov r0, #0xa7 + lsl r0, r0, #0x2 + ldrh r1, [r6, r0] + add r0, r7, #0x0 + lsl r0, r4 + tst r0, r1 + ldr r0, _0207CED4 ; =0x00000464 + beq _0207CE70 + ldr r0, [r5, r0] + add r1, r7, #0x0 + bl sub_02020130 + b _0207CE78 +_0207CE70: + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_02020130 +_0207CE78: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x6 + blo _0207CE56 + mov r0, #0x2a + lsl r0, r0, #0x4 + ldr r0, [r6, r0] + lsl r1, r0, #0x2 + lsr r1, r1, #0x1f + cmp r1, #0x1 + bne _0207CEA0 + lsl r0, r0, #0x3 + lsr r0, r0, #0x1f + bne _0207CEA0 + ldr r0, _0207CED8 ; =0x000004DC + mov r1, #0x1 + ldr r0, [r6, r0] + bl sub_0200C63C + b _0207CEAA +_0207CEA0: + ldr r0, _0207CED8 ; =0x000004DC + mov r1, #0x0 + ldr r0, [r6, r0] + bl sub_0200C63C +_0207CEAA: + mov r0, #0x2a + lsl r0, r0, #0x4 + ldr r0, [r6, r0] + lsr r0, r0, #0x1e + cmp r0, #0x2 + bne _0207CEC4 + mov r0, #0x4e + lsl r0, r0, #0x4 + ldr r0, [r6, r0] + mov r1, #0x1 + bl sub_0200C63C + pop {r3-r7, pc} +_0207CEC4: + mov r0, #0x4e + lsl r0, r0, #0x4 + ldr r0, [r6, r0] + mov r1, #0x0 + bl sub_0200C63C + pop {r3-r7, pc} + nop +_0207CED4: .word 0x00000464 +_0207CED8: .word 0x000004DC + + thumb_func_start sub_0207CEDC +sub_0207CEDC: ; 0x0207CEDC + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldr r0, _0207CF50 ; =0x000004AC + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + ldr r0, _0207CF50 ; =0x000004AC + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_02020208 + ldr r0, _0207CF50 ; =0x000004AC + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_02020130 + add r1, sp, #0x0 + add r0, r4, #0x0 + add r1, #0x2 + add r2, sp, #0x0 + bl sub_0207FC04 + ldr r0, _0207CF54 ; =0x0000068F + add r3, sp, #0x0 + ldrb r0, [r4, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + ldr r0, _0207CF50 ; =0x000004AC + bne _0207CF32 + mov r2, #0x0 + ldrsh r2, [r3, r2] + mov r1, #0x2 + ldrsh r1, [r3, r1] + add r2, #0xc0 + lsl r2, r2, #0x10 + ldr r0, [r4, r0] + asr r2, r2, #0x10 + bl sub_0200C6E4 + add sp, #0x4 + pop {r3-r4, pc} +_0207CF32: + mov r1, #0x2 + mov r2, #0x0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r4, r0] + sub r1, r1, #0x4 + add r2, #0xc0 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl sub_0200C6E4 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0207CF50: .word 0x000004AC +_0207CF54: .word 0x0000068F + + thumb_func_start sub_0207CF58 +sub_0207CF58: ; 0x0207CF58 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0207CF74 ; =0x000004AC + ldr r0, [r4, r0] + bl sub_0202022C + cmp r0, #0x2 + bne _0207CF72 + ldr r0, _0207CF74 ; =0x000004AC + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 +_0207CF72: + pop {r4, pc} + .balign 4 +_0207CF74: .word 0x000004AC + + thumb_func_start sub_0207CF78 +sub_0207CF78: ; 0x0207CF78 + push {r3-r7, lr} + ldr r7, _0207CFA8 ; =0x0000068E + add r5, r0, #0x0 + mov r4, #0x0 + mov r6, #0x1 +_0207CF82: + add r0, r6, #0x0 + ldrb r1, [r5, r7] + lsl r0, r4 + tst r0, r1 + beq _0207CF9C + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x4b + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + add r1, r6, #0x0 + bl sub_020200A0 +_0207CF9C: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + blo _0207CF82 + pop {r3-r7, pc} + .balign 4 +_0207CFA8: .word 0x0000068E + + thumb_func_start sub_0207CFAC +sub_0207CFAC: ; 0x0207CFAC + push {r4, lr} + add r4, r0, #0x0 + cmp r1, #0x0 + bne _0207CFC0 + ldr r0, _0207CFE8 ; =0x000004C4 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + pop {r4, pc} +_0207CFC0: + add r0, r1, #0x0 + bl sub_0201AB14 + add r1, r0, #0x0 + ldr r0, _0207CFE8 ; =0x000004C4 + lsl r1, r1, #0x3 + sub r1, #0xa + lsl r1, r1, #0x10 + ldr r0, [r4, r0] + asr r1, r1, #0x10 + mov r2, #0x8 + bl sub_0200C6E4 + ldr r0, _0207CFE8 ; =0x000004C4 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + pop {r4, pc} + nop +_0207CFE8: .word 0x000004C4 + + thumb_func_start sub_0207CFEC +sub_0207CFEC: ; 0x0207CFEC + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_0207B628 + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldrb r1, [r1, #0x11] + cmp r1, #0x2 + bne _0207D008 + bl sub_0206B688 + b _0207D00C +_0207D008: + bl sub_0206B6C8 +_0207D00C: + add r3, r0, #0x0 + mov r0, #0x0 + mov r1, #0x1 + str r0, [sp, #0x0] + mov r0, #0xb + lsl r1, r1, #0xa + str r0, [sp, #0x4] + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + mov r2, #0x13 + bl sub_0200C9D8 + mov r2, #0x97 + lsl r2, r2, #0x2 + add r1, r2, #0x0 + ldrh r0, [r4, r2] + add r2, #0x44 + add r1, #0x42 + ldr r2, [r4, r2] + ldrh r1, [r4, r1] + lsl r2, r2, #0x3 + lsr r2, r2, #0x1f + bl sub_0206B7BC + add r1, r0, #0x0 + ldr r0, _0207D068 ; =0x00000454 + add r1, r1, #0x7 + ldr r0, [r4, r0] + bl sub_0200C664 + mov r0, #0x97 + lsl r0, r0, #0x2 + ldrh r0, [r4, r0] + mov r1, #0x1c + bl sub_02068678 + add r2, r0, #0x0 + ldr r0, _0207D068 ; =0x00000454 + mov r1, #0x1 + ldr r0, [r4, r0] + eor r1, r2 + bl sub_02020100 + add sp, #0x8 + pop {r4, pc} + .balign 4 +_0207D068: .word 0x00000454 + + thumb_func_start sub_0207D06C +sub_0207D06C: ; 0x0207D06C + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl sub_0206B888 + add r3, r0, #0x0 + mov r0, #0x0 + mov r1, #0x1 + str r0, [sp, #0x0] + mov r0, #0x5 + lsl r1, r1, #0xa + str r0, [sp, #0x4] + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + mov r2, #0x13 + bl sub_0200CA0C + ldr r0, _0207D0C0 ; =0x0000068C + ldrsb r0, [r4, r0] + cmp r0, #0x3 + ldr r0, _0207D0C4 ; =0x00000454 + bne _0207D0A6 + ldr r0, [r4, r0] + mov r1, #0x18 + mov r2, #0x30 + bl sub_0200C6E4 + b _0207D0B0 +_0207D0A6: + ldr r0, [r4, r0] + mov r1, #0x20 + mov r2, #0x44 + bl sub_0200C6E4 +_0207D0B0: + ldr r0, _0207D0C4 ; =0x00000454 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_0200C63C + add sp, #0x8 + pop {r4, pc} + nop +_0207D0C0: .word 0x0000068C +_0207D0C4: .word 0x00000454 + + thumb_func_start sub_0207D0C8 +sub_0207D0C8: ; 0x0207D0C8 + push {r4, lr} + add r4, r2, #0x0 + cmp r4, r1 + ble _0207D0EE + add r0, #0x2c + sub r1, r4, r1 + mul r1, r0 + lsl r0, r1, #0x10 + mov r1, #0x4b + lsl r1, r1, #0x2 + blx sub_020EBE8C + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + sub r0, r4, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + pop {r4, pc} +_0207D0EE: + add r0, #0x2c + sub r1, r1, r4 + mul r1, r0 + lsl r0, r1, #0x10 + mov r1, #0x4b + lsl r1, r1, #0x2 + blx sub_020EBE8C + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add r0, r4, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + pop {r4, pc} + + thumb_func_start sub_0207D10C +sub_0207D10C: ; 0x0207D10C + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, _0207D20C ; =0x00000295 + mov r1, #0x58 + ldrb r0, [r4, r0] + add r2, r1, #0x0 + bl sub_0207D0C8 + add r5, r0, #0x0 + ldr r0, _0207D20C ; =0x00000295 + mov r1, #0x31 + ldrb r0, [r4, r0] + mov r2, #0x49 + bl sub_0207D0C8 + add r2, r0, #0x0 + ldr r0, _0207D210 ; =0x000004C8 + add r1, r5, #0x0 + ldr r0, [r4, r0] + bl sub_0200C6E4 + ldr r0, _0207D214 ; =0x00000296 + mov r1, #0x6e + ldrb r0, [r4, r0] + mov r2, #0x58 + bl sub_0207D0C8 + add r5, r0, #0x0 + ldr r0, _0207D214 ; =0x00000296 + mov r1, #0x41 + ldrb r0, [r4, r0] + mov r2, #0x49 + bl sub_0207D0C8 + add r2, r0, #0x0 + ldr r0, _0207D218 ; =0x000004CC + add r1, r5, #0x0 + ldr r0, [r4, r0] + bl sub_0200C6E4 + ldr r0, _0207D21C ; =0x00000297 + mov r1, #0x67 + ldrb r0, [r4, r0] + mov r2, #0x58 + bl sub_0207D0C8 + add r5, r0, #0x0 + ldr r0, _0207D21C ; =0x00000297 + mov r1, #0x5c + ldrb r0, [r4, r0] + mov r2, #0x49 + bl sub_0207D0C8 + add r2, r0, #0x0 + mov r0, #0x4d + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + add r1, r5, #0x0 + bl sub_0200C6E4 + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldrb r0, [r4, r0] + mov r1, #0x48 + mov r2, #0x57 + bl sub_0207D0C8 + add r5, r0, #0x0 + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldrb r0, [r4, r0] + mov r1, #0x5c + mov r2, #0x49 + bl sub_0207D0C8 + add r2, r0, #0x0 + ldr r0, _0207D220 ; =0x000004D4 + add r1, r5, #0x0 + ldr r0, [r4, r0] + bl sub_0200C6E4 + ldr r0, _0207D224 ; =0x00000299 + mov r1, #0x41 + ldrb r0, [r4, r0] + mov r2, #0x57 + bl sub_0207D0C8 + add r5, r0, #0x0 + ldr r0, _0207D224 ; =0x00000299 + mov r1, #0x41 + ldrb r0, [r4, r0] + mov r2, #0x49 + bl sub_0207D0C8 + add r2, r0, #0x0 + ldr r0, _0207D228 ; =0x000004D8 + add r1, r5, #0x0 + ldr r0, [r4, r0] + bl sub_0200C6E4 + ldr r0, _0207D210 ; =0x000004C8 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + ldr r0, _0207D218 ; =0x000004CC + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + mov r0, #0x4d + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x1 + bl sub_020200A0 + ldr r0, _0207D220 ; =0x000004D4 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + ldr r0, _0207D228 ; =0x000004D8 + mov r1, #0x1 + ldr r0, [r4, r0] + bl sub_020200A0 + pop {r3-r5, pc} + nop +_0207D20C: .word 0x00000295 +_0207D210: .word 0x000004C8 +_0207D214: .word 0x00000296 +_0207D218: .word 0x000004CC +_0207D21C: .word 0x00000297 +_0207D220: .word 0x000004D4 +_0207D224: .word 0x00000299 +_0207D228: .word 0x000004D8 + + thumb_func_start sub_0207D22C +sub_0207D22C: ; 0x0207D22C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0207D268 ; =0x000004C8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + ldr r0, _0207D26C ; =0x000004CC + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + mov r0, #0x4d + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_020200A0 + ldr r0, _0207D270 ; =0x000004D4 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + ldr r0, _0207D274 ; =0x000004D8 + mov r1, #0x0 + ldr r0, [r4, r0] + bl sub_020200A0 + pop {r4, pc} + nop +_0207D268: .word 0x000004C8 +_0207D26C: .word 0x000004CC +_0207D270: .word 0x000004D4 +_0207D274: .word 0x000004D8 + + thumb_func_start sub_0207D278 +sub_0207D278: ; 0x0207D278 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x1 + add r4, r2, #0x0 + bl sub_0207FC5C + add r3, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0x1 + add r0, #0x1a + lsl r1, r1, #0xa + str r0, [sp, #0x4] + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + mov r2, #0x27 + bl sub_0200C9D8 + add r0, r6, #0x0 + mov r1, #0x2 + bl sub_0207FC5C + add r4, #0x37 + add r2, r0, #0x0 + lsl r0, r4, #0x2 + add r1, r5, r0 + ldr r0, _0207D2C4 ; =0x00000408 + ldr r0, [r1, r0] + add r1, r2, #0x7 + bl sub_0200C664 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_0207D2C4: .word 0x00000408 + + thumb_func_start sub_0207D2C8 +sub_0207D2C8: ; 0x0207D2C8 + push {r3-r7, lr} + sub sp, #0x8 + ldr r6, _0207D354 ; =0x00000408 + add r5, r0, #0x0 + mov r4, #0x37 + mov r7, #0x0 +_0207D2D4: + lsl r0, r4, #0x2 + add r0, r5, r0 + ldr r0, [r0, r6] + add r1, r7, #0x0 + bl sub_020200A0 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x46 + bls _0207D2D4 + ldr r0, _0207D358 ; =0x0000068C + ldrsb r0, [r5, r0] + cmp r0, #0x6 + bne _0207D350 + mov r0, #0x0 + mov r1, #0x1 + str r0, [sp, #0x0] + mov r0, #0x5 + lsl r1, r1, #0xa + str r0, [sp, #0x4] + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + mov r2, #0x27 + mov r3, #0x88 + bl sub_0200CA0C + ldr r7, _0207D35C ; =0x000004E4 + ldr r6, _0207D360 ; =0x00000699 + mov r4, #0x0 +_0207D312: + ldrb r0, [r5, r6] + cmp r4, r0 + bge _0207D33A + lsl r0, r4, #0x2 + add r0, r5, r0 + ldr r0, [r0, r7] + mov r1, #0x1 + bl sub_020200A0 + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl sub_0207C1E8 + lsl r2, r4, #0x18 + add r1, r0, #0x0 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_0207D278 +_0207D33A: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xc + blo _0207D312 + mov r0, #0x52 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_02020130 +_0207D350: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0207D354: .word 0x00000408 +_0207D358: .word 0x0000068C +_0207D35C: .word 0x000004E4 +_0207D360: .word 0x00000699 + + thumb_func_start sub_0207D364 +sub_0207D364: ; 0x0207D364 + push {r3-r7, lr} + ldr r7, _0207D3BC ; =0x00000698 + add r5, r0, #0x0 + mov r4, #0x0 + add r6, r7, #0x1 +_0207D36E: + ldrb r0, [r5, r7] + lsl r0, r0, #0x2 + add r1, r4, r0 + ldrb r0, [r5, r6] + cmp r1, r0 + bge _0207D3A0 + lsl r0, r4, #0x2 + add r1, r5, r0 + ldr r0, _0207D3C0 ; =0x000004E4 + ldr r0, [r1, r0] + mov r1, #0x1 + bl sub_020200A0 + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl sub_0207C1E8 + lsl r2, r4, #0x18 + add r1, r0, #0x0 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl sub_0207D278 + b _0207D3AE +_0207D3A0: + lsl r0, r4, #0x2 + add r1, r5, r0 + ldr r0, _0207D3C0 ; =0x000004E4 + ldr r0, [r1, r0] + mov r1, #0x0 + bl sub_020200A0 +_0207D3AE: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x8 + blo _0207D36E + pop {r3-r7, pc} + nop +_0207D3BC: .word 0x00000698 +_0207D3C0: .word 0x000004E4 + + thumb_func_start sub_0207D3C4 +sub_0207D3C4: ; 0x0207D3C4 + ldr r1, _0207D3E8 ; =0x00000697 + ldrb r2, [r0, r1] + ldr r1, _0207D3EC ; =0x00000514 + ldr r0, [r0, r1] + lsl r1, r2, #0x1e + lsr r3, r2, #0x2 + mov r2, #0x28 + mul r2, r3 + lsr r1, r1, #0x19 + add r1, #0x84 + add r2, #0x38 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r3, _0207D3F0 ; =sub_0200C6E4 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bx r3 + nop +_0207D3E8: .word 0x00000697 +_0207D3EC: .word 0x00000514 +_0207D3F0: .word sub_0200C6E4 + 1 + + thumb_func_start sub_0207D3F4 +sub_0207D3F4: ; 0x0207D3F4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x52 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_02020128 + cmp r0, #0x1 + bne _0207D414 + mov r0, #0x52 + lsl r0, r0, #0x4 + mov r1, #0x1 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl sub_020201E4 +_0207D414: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0207D418 +sub_0207D418: ; 0x0207D418 + push {r3-r7, lr} + add r5, r0, #0x0 + cmp r1, #0x0 + bne _0207D43E + mov r4, #0x0 + ldr r6, _0207D4C0 ; =0x00000524 + add r7, r4, #0x0 +_0207D426: + lsl r0, r4, #0x2 + add r0, r5, r0 + ldr r0, [r0, r6] + add r1, r7, #0x0 + bl sub_020200A0 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x5 + blo _0207D426 + pop {r3-r7, pc} +_0207D43E: + ldr r0, _0207D4C4 ; =0x00000295 + ldrb r1, [r5, r0] + add r0, r0, #0x1 + ldrb r0, [r5, r0] + add r4, r1, #0x0 + cmp r1, r0 + bge _0207D44E + add r4, r0, #0x0 +_0207D44E: + ldr r0, _0207D4C8 ; =0x00000297 + ldrb r0, [r5, r0] + cmp r4, r0 + bge _0207D458 + add r4, r0, #0x0 +_0207D458: + mov r0, #0xa6 + lsl r0, r0, #0x2 + ldrb r0, [r5, r0] + cmp r4, r0 + bge _0207D464 + add r4, r0, #0x0 +_0207D464: + ldr r0, _0207D4CC ; =0x00000299 + ldrb r0, [r5, r0] + cmp r4, r0 + bge _0207D46E + add r4, r0, #0x0 +_0207D46E: + ldr r0, _0207D4C0 ; =0x00000524 + ldr r3, _0207D4D0 ; =0x020FA75C + ldr r0, [r5, r0] + add r2, r4, #0x0 + bl sub_0207D4F4 + ldr r1, _0207D4D4 ; =0x00000296 + ldr r0, _0207D4D8 ; =0x00000528 + ldrb r1, [r5, r1] + ldr r0, [r5, r0] + ldr r3, _0207D4DC ; =0x020FA764 + add r2, r4, #0x0 + bl sub_0207D4F4 + ldr r1, _0207D4C8 ; =0x00000297 + ldr r0, _0207D4E0 ; =0x0000052C + ldrb r1, [r5, r1] + ldr r0, [r5, r0] + ldr r3, _0207D4E4 ; =0x020FA76C + add r2, r4, #0x0 + bl sub_0207D4F4 + mov r1, #0x53 + lsl r1, r1, #0x4 + ldr r0, [r5, r1] + lsr r1, r1, #0x1 + ldrb r1, [r5, r1] + ldr r3, _0207D4E8 ; =0x020FA774 + add r2, r4, #0x0 + bl sub_0207D4F4 + ldr r1, _0207D4CC ; =0x00000299 + ldr r0, _0207D4EC ; =0x00000534 + ldrb r1, [r5, r1] + ldr r0, [r5, r0] + ldr r3, _0207D4F0 ; =0x020FA77C + add r2, r4, #0x0 + bl sub_0207D4F4 + pop {r3-r7, pc} + nop +_0207D4C0: .word 0x00000524 +_0207D4C4: .word 0x00000295 +_0207D4C8: .word 0x00000297 +_0207D4CC: .word 0x00000299 +_0207D4D0: .word 0x020FA75C +_0207D4D4: .word 0x00000296 +_0207D4D8: .word 0x00000528 +_0207D4DC: .word 0x020FA764 +_0207D4E0: .word 0x0000052C +_0207D4E4: .word 0x020FA76C +_0207D4E8: .word 0x020FA774 +_0207D4EC: .word 0x00000534 +_0207D4F0: .word 0x020FA77C + + thumb_func_start sub_0207D4F4 +sub_0207D4F4: ; 0x0207D4F4 + push {r4-r6, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + add r4, r3, #0x0 + cmp r5, #0x0 + beq _0207D504 + cmp r5, r2 + beq _0207D50E +_0207D504: + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_020200A0 + pop {r4-r6, pc} +_0207D50E: + mov r1, #0x1 + bl sub_020200A0 + mov r0, #0x0 + ldrsh r1, [r4, r0] + mov r0, #0x4 + ldrsh r0, [r4, r0] + cmp r1, r0 + blt _0207D534 + sub r1, r1, r0 + lsl r2, r1, #0x8 + asr r1, r2, #0x7 + lsr r1, r1, #0x18 + add r1, r2, r1 + asr r1, r1, #0x8 + mul r1, r5 + lsr r1, r1, #0x8 + add r1, r0, r1 + b _0207D546 +_0207D534: + sub r1, r0, r1 + lsl r2, r1, #0x8 + asr r1, r2, #0x7 + lsr r1, r1, #0x18 + add r1, r2, r1 + asr r1, r1, #0x8 + mul r1, r5 + lsr r1, r1, #0x8 + sub r1, r0, r1 +_0207D546: + mov r0, #0x2 + ldrsh r2, [r4, r0] + mov r0, #0x6 + ldrsh r0, [r4, r0] + cmp r2, r0 + blt _0207D566 + sub r2, r2, r0 + lsl r3, r2, #0x8 + asr r2, r3, #0x7 + lsr r2, r2, #0x18 + add r2, r3, r2 + asr r2, r2, #0x8 + mul r2, r5 + lsr r2, r2, #0x8 + add r2, r0, r2 + b _0207D578 +_0207D566: + sub r2, r0, r2 + lsl r3, r2, #0x8 + asr r2, r3, #0x7 + lsr r2, r2, #0x18 + add r2, r3, r2 + asr r2, r2, #0x8 + mul r2, r5 + lsr r2, r2, #0x8 + sub r2, r0, r2 +_0207D578: + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + add r0, r6, #0x0 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl sub_0200C6E4 + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_02020208 + add r0, r6, #0x0 + mov r1, #0x0 + bl sub_02020130 + pop {r4-r6, pc} + + thumb_func_start sub_0207D598 +sub_0207D598: ; 0x0207D598 + push {r3-r7, lr} + mov r7, #0x1 + ldr r6, _0207D5B8 ; =0x00000524 + add r5, r0, #0x0 + mov r4, #0x0 + lsl r7, r7, #0xc +_0207D5A4: + ldr r0, [r5, r6] + add r1, r7, #0x0 + bl sub_020201E4 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x5 + blo _0207D5A4 + pop {r3-r7, pc} + nop +_0207D5B8: .word 0x00000524 + + thumb_func_start sub_0207D5BC +sub_0207D5BC: ; 0x0207D5BC + push {r3-r7, lr} + add r7, r0, #0x0 + mov r5, #0x0 + add r4, r7, #0x4 +_0207D5C4: + ldr r2, _0207D600 ; =0x020FB4AC + lsl r6, r5, #0x4 + lsl r3, r5, #0x3 + ldr r0, [r7, #0x0] + add r1, r4, r6 + add r2, r2, r3 + bl sub_02019150 + add r0, r4, r6 + mov r1, #0x0 + bl sub_02019620 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x24 + blo _0207D5C4 + add r0, r7, #0x0 + bl sub_0207DB78 + add r0, r7, #0x0 + bl sub_0207D768 + add r0, r7, #0x0 + bl sub_0207D800 + add r0, r7, #0x0 + bl sub_0207D8A0 + pop {r3-r7, pc} + .balign 4 +_0207D600: .word 0x020FB4AC + + thumb_func_start sub_0207D604 +sub_0207D604: ; 0x0207D604 + push {r3-r7, lr} + add r4, r0, #0x0 + ldr r0, _0207D6D8 ; =0x0000068C + ldrsb r0, [r4, r0] + cmp r0, #0x7 + bhi _0207D6D4 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r2, r3, #0 + lsl r6, r4, #0 + lsl r2, r6, #0 + lsl r6, r2, #0x1 + lsl r6, r7, #0 + lsl r2, r1, #0x1 + lsl r6, r2, #0x1 + mov r0, #0x92 + mov r1, #0x6 + lsl r0, r0, #0x2 + ldr r5, _0207D6DC ; =0x020FB3FC + str r1, [r4, r0] + b _0207D692 +_0207D638: + .byte 0x92, 0x20, 0x01, 0x21, 0x80, 0x00, 0x28, 0x4D + .byte 0x21, 0x50, 0x26, 0xE0, 0x92, 0x20, 0x08, 0x21, 0x80, 0x00, 0x26, 0x4D, 0x21, 0x50, 0x20, 0xE0 + .byte 0x92, 0x20, 0x08, 0x21, 0x80, 0x00, 0x24, 0x4D, 0x21, 0x50, 0x1A, 0xE0, 0x92, 0x20, 0x06, 0x21 + .byte 0x80, 0x00, 0x22, 0x4D, 0x21, 0x50, 0x14, 0xE0, 0x92, 0x20, 0x04, 0x21, 0x80, 0x00, 0x20, 0x4D + .byte 0x21, 0x50, 0x0E, 0xE0, 0x93, 0x20, 0x80, 0x00, 0x20, 0x58, 0x80, 0x7C, 0x03, 0x28, 0x01, 0xD0 + .byte 0x04, 0x28, 0x27, 0xD1, 0x92, 0x20, 0x03, 0x21, 0x80, 0x00, 0x1A, 0x4D, 0x21, 0x50, 0x00, 0xE0 + .byte 0xF8, 0xBD +_0207D692: + mov r1, #0x92 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r0, #0x13 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_02018FF4 + mov r1, #0x91 + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, r1, #0x4 + ldr r0, [r4, r0] + mov r6, #0x0 + cmp r0, #0x0 + bls _0207D6D4 + add r7, r6, #0x0 +_0207D6B4: + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r0, [r4, #0x0] + add r1, r1, r7 + add r2, r5, #0x0 + bl sub_02019150 + mov r0, #0x92 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r6, r6, #0x1 + add r5, #0x8 + add r7, #0x10 + cmp r6, r0 + blo _0207D6B4 +_0207D6D4: + pop {r3-r7, pc} + nop +_0207D6D8: .word 0x0000068C +_0207D6DC: .word 0x020FB3FC +_0207D6E0: + .byte 0x8C, 0xB3, 0x0F, 0x02, 0x2C, 0xB4, 0x0F, 0x02, 0x6C, 0xB4, 0x0F, 0x02, 0xCC, 0xB3, 0x0F, 0x02 + .byte 0xAC, 0xB3, 0x0F, 0x02, 0x94, 0xB3, 0x0F, 0x02 + + thumb_func_start sub_0207D6F8 +sub_0207D6F8: ; 0x0207D6F8 + push {r3, lr} + add r1, r0, #0x0 + ldr r0, _0207D748 ; =0x0000068C + ldrsb r0, [r1, r0] + cmp r0, #0x7 + bhi _0207D744 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r6, r1, #0 + lsl r0, r4, #0 + lsl r0, r4, #0 + lsl r6, r1, #0 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x3 + beq _0207D732 + cmp r0, #0x4 + beq _0207D732 + pop {r3, pc} +_0207D732: + mov r2, #0x91 + lsl r2, r2, #0x2 + ldr r0, [r1, r2] + add r2, r2, #0x4 + ldr r1, [r1, r2] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_020191A4 +_0207D744: + pop {r3, pc} + nop +_0207D748: .word 0x0000068C + + thumb_func_start sub_0207D74C +sub_0207D74C: ; 0x0207D74C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_0207D6F8 + mov r4, #0x0 + add r5, r5, #0x4 +_0207D758: + add r0, r5, #0x0 + bl sub_02019178 + add r4, r4, #0x1 + add r5, #0x10 + cmp r4, #0x24 + blo _0207D758 + pop {r3-r5, pc} + + thumb_func_start sub_0207D768 +sub_0207D768: ; 0x0207D768 + push {r3-r5, lr} + sub sp, #0x10 + mov r4, #0x89 + add r5, r0, #0x0 + lsl r4, r4, #0x2 + add r0, r5, r4 + mov r1, #0x0 + bl sub_02019620 + mov r1, #0x0 + add r2, r4, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207D7F4 ; =0x000F0E00 + add r2, #0x30 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + ldr r2, [r5, r2] + add r0, r5, r4 + add r3, r1, #0x0 + bl sub_0201BDE0 + add r0, r4, #0x0 + add r0, #0x3e + ldrb r1, [r5, r0] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1f + bne _0207D7E8 + add r0, r0, #0x1 + ldrb r0, [r5, r0] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1e + bne _0207D7CA + ldr r2, _0207D7F8 ; =0x00000674 + mov r1, #0x1 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + mov r2, #0xc1 + add r0, r5, #0x0 + add r1, r5, r4 + lsl r2, r2, #0xa + mov r3, #0x1 + bl sub_0207D998 + b _0207D7E8 +_0207D7CA: + cmp r0, #0x1 + bne _0207D7E8 + ldr r2, _0207D7F8 ; =0x00000674 + mov r1, #0x2 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + ldr r2, _0207D7FC ; =0x00050600 + add r0, r5, #0x0 + add r1, r5, r4 + mov r3, #0x1 + bl sub_0207D998 +_0207D7E8: + add r0, r5, r4 + bl sub_02019220 + add sp, #0x10 + pop {r3-r5, pc} + nop +_0207D7F4: .word 0x000F0E00 +_0207D7F8: .word 0x00000674 +_0207D7FC: .word 0x00050600 + + thumb_func_start sub_0207D800 +sub_0207D800: ; 0x0207D800 + push {r4-r6, lr} + sub sp, #0x10 + mov r6, #0x85 + add r5, r0, #0x0 + lsl r6, r6, #0x2 + add r0, r5, r6 + mov r1, #0x0 + bl sub_02019620 + add r0, r6, #0x0 + add r0, #0x8c + ldr r0, [r5, r0] + lsl r0, r0, #0x3 + lsr r0, r0, #0x1f + bne _0207D88A + mov r0, #0x5 + str r0, [sp, #0x0] + mov r0, #0x67 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r1, #0x1 + add r2, r5, r6 + mov r3, #0x0 + bl sub_0200B9A8 + ldr r0, _0207D894 ; =0x00000674 + mov r1, #0x3 + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x0 + add r4, r0, #0x0 + add r2, r6, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r2, #0x4e + ldrb r2, [r5, r2] + ldr r0, _0207D898 ; =0x0000067C + mov r3, #0x3 + lsl r2, r2, #0x19 + ldr r0, [r5, r0] + lsr r2, r2, #0x19 + bl sub_0200AD38 + ldr r1, _0207D898 ; =0x0000067C + add r2, r4, #0x0 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x0 + mov r2, #0x1a + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207D89C ; =0x00010200 + lsl r2, r2, #0x6 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + ldr r2, [r5, r2] + add r0, r5, r6 + mov r3, #0x10 + bl sub_0201BDE0 +_0207D88A: + add r0, r5, r6 + bl sub_02019220 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_0207D894: .word 0x00000674 +_0207D898: .word 0x0000067C +_0207D89C: .word 0x00010200 + + thumb_func_start sub_0207D8A0 +sub_0207D8A0: ; 0x0207D8A0 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r5, r0 + mov r1, #0x0 + bl sub_02019620 + ldr r0, _0207D918 ; =0x0000025E + ldrh r2, [r5, r0] + cmp r2, #0x0 + beq _0207D8E4 + ldr r0, _0207D91C ; =0x0000067C + mov r1, #0x0 + ldr r0, [r5, r0] + bl sub_0200AE38 + ldr r0, _0207D920 ; =0x00000674 + mov r1, #0x5 + ldr r0, [r5, r0] + bl sub_0200A914 + add r4, r0, #0x0 + ldr r1, _0207D91C ; =0x0000067C + add r2, r4, #0x0 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + b _0207D8F2 +_0207D8E4: + ldr r2, _0207D920 ; =0x00000674 + mov r1, #0x6 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 +_0207D8F2: + mov r2, #0x81 + lsl r2, r2, #0x2 + add r1, r5, r2 + add r0, r5, #0x0 + lsl r2, r2, #0x7 + mov r3, #0x0 + bl sub_0207D998 + add r0, r5, #0x0 + add r0, #0x64 + bl sub_02019220 + mov r0, #0x81 + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02019220 + pop {r3-r5, pc} + nop +_0207D918: .word 0x0000025E +_0207D91C: .word 0x0000067C +_0207D920: .word 0x00000674 + + thumb_func_start sub_0207D924 +sub_0207D924: ; 0x0207D924 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x8d + lsl r0, r0, #0x2 + add r4, r1, #0x0 + add r0, r5, r0 + mov r1, #0x0 + bl sub_02019620 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207D954 ; =0x000F0E00 + add r0, r5, #0x0 + mov r1, #0x23 + add r2, r4, #0x0 + bl sub_0207DA1C + mov r0, #0x8d + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02019220 + pop {r3-r5, pc} + nop +_0207D954: .word 0x000F0E00 + + thumb_func_start sub_0207D958 +sub_0207D958: ; 0x0207D958 + push {r4, lr} + mov r3, #0x93 + lsl r3, r3, #0x2 + add r1, r0, #0x0 + add r2, r3, #0x0 + add r2, #0x18 + ldr r0, [r1, r3] + ldr r4, [r1, r2] + ldr r2, [r0, #0xc] + cmp r4, r2 + bne _0207D98E + add r2, r3, #0x0 + add r2, #0x48 + ldrb r2, [r1, r2] + ldrb r0, [r0, #0x10] + cmp r2, r0 + bne _0207D98E + ldr r2, _0207D994 ; =0x00000684 + add r3, #0xc + ldr r0, [r1, r3] + ldr r1, [r1, r2] + bl sub_02021CE0 + cmp r0, #0x0 + bne _0207D98E + mov r0, #0x1 + pop {r4, pc} +_0207D98E: + mov r0, #0x0 + pop {r4, pc} + nop +_0207D994: .word 0x00000684 + + thumb_func_start sub_0207D998 +sub_0207D998: ; 0x0207D998 + push {r3-r7, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + cmp r3, #0x0 + beq _0207D9B0 + cmp r3, #0x1 + beq _0207D9B4 + cmp r3, #0x2 + beq _0207D9D8 + b _0207D9FE +_0207D9B0: + mov r3, #0x0 + b _0207D9FE +_0207D9B4: + mov r1, #0x1a + lsl r1, r1, #0x6 + mov r0, #0x0 + ldr r1, [r4, r1] + add r2, r0, #0x0 + bl sub_02002E14 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r6, #0x0 + bl sub_0201AB0C + lsl r0, r0, #0x1b + lsr r0, r0, #0x18 + sub r0, r0, r5 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + b _0207D9FE +_0207D9D8: + mov r1, #0x1a + lsl r1, r1, #0x6 + mov r0, #0x0 + ldr r1, [r4, r1] + add r2, r0, #0x0 + bl sub_02002E14 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r6, #0x0 + bl sub_0201AB0C + lsl r0, r0, #0x1b + lsr r0, r0, #0x18 + sub r1, r0, r5 + lsr r0, r1, #0x1f + add r0, r1, r0 + lsl r0, r0, #0x17 + lsr r3, r0, #0x18 +_0207D9FE: + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + str r7, [sp, #0x8] + mov r2, #0x1a + str r1, [sp, #0xc] + lsl r2, r2, #0x6 + ldr r2, [r4, r2] + add r0, r6, #0x0 + bl sub_0201BDE0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0207DA1C +sub_0207DA1C: ; 0x0207DA1C + push {r4-r6, lr} + add r6, r3, #0x0 + ldr r3, _0207DA44 ; =0x00000674 + add r5, r0, #0x0 + ldr r0, [r5, r3] + add r4, r1, #0x0 + add r3, #0xc + add r1, r2, #0x0 + ldr r2, [r5, r3] + bl sub_0200A8E0 + add r2, r5, #0x4 + lsl r1, r4, #0x4 + add r1, r2, r1 + ldr r3, [sp, #0x10] + add r0, r5, #0x0 + add r2, r6, #0x0 + bl sub_0207D998 + pop {r4-r6, pc} + .balign 4 +_0207DA44: .word 0x00000674 + + thumb_func_start sub_0207DA48 +sub_0207DA48: ; 0x0207DA48 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, _0207DA8C ; =0x00000674 + add r6, r2, #0x0 + ldr r0, [r5, r0] + add r7, r3, #0x0 + bl sub_0200A914 + add r4, r0, #0x0 + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + mov r1, #0x0 + add r2, r6, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, _0207DA90 ; =0x0000067C + add r3, r7, #0x0 + ldr r0, [r5, r0] + bl sub_0200AD38 + ldr r1, _0207DA90 ; =0x0000067C + add r2, r4, #0x0 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0207DA8C: .word 0x00000674 +_0207DA90: .word 0x0000067C + + thumb_func_start sub_0207DA94 +sub_0207DA94: ; 0x0207DA94 + push {r3-r7, lr} + sub sp, #0x20 + add r4, r0, #0x0 + str r3, [sp, #0x10] + mov r0, #0x91 + lsl r0, r0, #0x2 + lsl r7, r1, #0x4 + ldr r3, _0207DB70 ; =0x00000674 + ldr r5, [r4, r0] + ldr r0, [r4, r3] + add r3, #0xc + add r1, r2, #0x0 + ldr r2, [r4, r3] + bl sub_0200A8E0 + mov r1, #0x1a + lsl r1, r1, #0x6 + mov r0, #0x0 + ldr r1, [r4, r1] + add r2, r0, #0x0 + bl sub_02002E14 + add r1, sp, #0x48 + ldrb r2, [r1, #0x0] + lsr r1, r0, #0x1 + sub r1, r2, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r1, r0 + str r1, [sp, #0x14] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x18] + add r0, sp, #0x4c + ldrb r0, [r0, #0x0] + mov r2, #0x1a + mov r1, #0x0 + str r0, [sp, #0x1c] + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207DB74 ; =0x00010200 + lsl r2, r2, #0x6 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + ldr r2, [r4, r2] + ldr r3, [sp, #0x14] + add r0, r5, r7 + bl sub_0201BDE0 + mov r0, #0x0 + str r0, [sp, #0x0] + add r3, sp, #0x28 + ldrh r2, [r3, #0x14] + ldrb r3, [r3, #0x1c] + ldr r1, [sp, #0x10] + add r0, r4, #0x0 + bl sub_0207DA48 + mov r1, #0x1a + lsl r1, r1, #0x6 + mov r0, #0x0 + ldr r1, [r4, r1] + add r2, r0, #0x0 + bl sub_02002E14 + mov r12, r0 + ldr r0, [sp, #0x1c] + mov r2, #0x1a + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207DB74 ; =0x00010200 + mov r1, #0x0 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + lsl r2, r2, #0x6 + ldr r3, [sp, #0x14] + mov r6, r12 + ldr r2, [r4, r2] + add r0, r5, r7 + sub r3, r3, r6 + bl sub_0201BDE0 + mov r0, #0x0 + str r0, [sp, #0x0] + add r3, sp, #0x28 + ldrh r2, [r3, #0x18] + ldrb r3, [r3, #0x1c] + ldr r1, [sp, #0x38] + add r0, r4, #0x0 + bl sub_0207DA48 + ldr r0, [sp, #0x1c] + mov r2, #0x1a + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207DB74 ; =0x00010200 + mov r1, #0x0 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + lsl r2, r2, #0x6 + ldr r2, [r4, r2] + ldr r3, [sp, #0x18] + add r0, r5, r7 + bl sub_0201BDE0 + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 +_0207DB70: .word 0x00000674 +_0207DB74: .word 0x00010200 + + thumb_func_start sub_0207DB78 +sub_0207DB78: ; 0x0207DB78 + push {r4, lr} + sub sp, #0x10 + ldr r3, _0207DD7C ; =0x000F0E00 + mov r1, #0x0 + mov r2, #0x7 + add r4, r0, #0x0 + str r1, [sp, #0x0] + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x1 + mov r2, #0x17 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x2 + mov r2, #0x6d + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x3 + mov r2, #0x7e + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x4 + mov r2, #0x80 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x9d + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x6 + mov r2, #0x4 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x7 + mov r2, #0x8 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x8 + mov r2, #0xa + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x9 + mov r2, #0xc + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0xa + mov r2, #0xd + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0xb + mov r2, #0xf + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0xc + mov r2, #0x11 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0xd + mov r2, #0x13 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0xf + mov r2, #0x6e + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x10 + mov r2, #0x6f + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x11 + mov r2, #0x70 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x12 + mov r2, #0x71 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x13 + mov r2, #0x72 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x14 + mov r2, #0x73 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x15 + mov r2, #0x74 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x16 + mov r2, #0x7f + bl sub_0207DA1C + ldr r2, _0207DD80 ; =0x00000674 + mov r1, #0x92 + ldr r0, [r4, r2] + add r2, #0xc + ldr r2, [r4, r2] + bl sub_0200A8E0 + mov r0, #0x2 + str r0, [sp, #0x0] + mov r2, #0xff + str r2, [sp, #0x4] + ldr r0, _0207DD7C ; =0x000F0E00 + mov r1, #0x0 + str r0, [sp, #0x8] + add r2, #0x85 + add r0, r4, r2 + mov r2, #0x1a + str r1, [sp, #0xc] + lsl r2, r2, #0x6 + ldr r2, [r4, r2] + add r3, r1, #0x0 + bl sub_0201BDE0 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x19 + mov r2, #0x95 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x1a + mov r2, #0x93 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x1b + mov r2, #0x94 + bl sub_0207DA1C + mov r0, #0x2 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x1c + mov r2, #0xa2 + bl sub_0207DA1C + mov r0, #0x2 + str r0, [sp, #0x0] + ldr r3, _0207DD84 ; =0x00010200 + add r0, r4, #0x0 + mov r1, #0x1d + mov r2, #0xa0 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD84 ; =0x00010200 + add r0, r4, #0x0 + mov r1, #0x1e + mov r2, #0xb6 + bl sub_0207DA1C + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, _0207DD7C ; =0x000F0E00 + add r0, r4, #0x0 + mov r1, #0x1f + mov r2, #0xb3 + bl sub_0207DA1C + add sp, #0x10 + pop {r4, pc} + .balign 4 +_0207DD7C: .word 0x000F0E00 +_0207DD80: .word 0x00000674 +_0207DD84: .word 0x00010200 + + thumb_func_start sub_0207DD88 +sub_0207DD88: ; 0x0207DD88 + push {r4, lr} + sub sp, #0x10 + mov r2, #0x0 + add r4, r0, #0x0 + str r2, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldr r0, [r4, #0x0] + mov r1, #0x1 + add r3, r2, #0x0 + bl sub_02018540 + mov r0, #0x2 + str r0, [sp, #0x0] + mov r0, #0x12 + str r0, [sp, #0x4] + mov r0, #0x16 + str r0, [sp, #0x8] + mov r0, #0x10 + str r0, [sp, #0xc] + ldr r0, [r4, #0x0] + mov r1, #0x1 + mov r2, #0x0 + mov r3, #0xe + bl sub_02018540 + ldr r0, _0207DE38 ; =0x0000068C + ldrsb r0, [r4, r0] + cmp r0, #0x7 + bhi _0207DE34 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r0, r3, #0 + lsl r2, r4, #0 + lsl r6, r6, #0 + lsl r4, r5, #0 + lsl r0, r0, #0x1 + lsl r2, r1, #0x1 + lsl r4, r2, #0x1 + add r0, r4, #0x0 + bl sub_0207DE3C + add sp, #0x10 + pop {r4, pc} +_0207DDF2: + .byte 0x20, 0x1C, 0x00, 0xF0, 0xCC, 0xF9, 0x04, 0xB0, 0x10, 0xBD, 0x20, 0x1C, 0x00, 0xF0 + .byte 0xFF, 0xF9, 0x04, 0xB0, 0x10, 0xBD, 0x20, 0x1C, 0x00, 0xF0, 0x4A, 0xFB, 0x04, 0xB0, 0x10, 0xBD + .byte 0x20, 0x1C, 0x00, 0xF0, 0xBF, 0xFB, 0x04, 0xB0, 0x10, 0xBD, 0x20, 0x1C, 0x00, 0xF0, 0x18, 0xFC + .byte 0x04, 0xB0, 0x10, 0xBD, 0x20, 0x1C, 0x00, 0xF0, 0x71, 0xFC, 0x04, 0xB0, 0x10, 0xBD, 0x20, 0x1C + .byte 0x00, 0xF0, 0xAA, 0xFC +_0207DE34: + add sp, #0x10 + pop {r4, pc} + .balign 4 +_0207DE38: .word 0x0000068C + + thumb_func_start sub_0207DE3C +sub_0207DE3C: ; 0x0207DE3C + push {r3-r5, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r0, r4, #0x4 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0x74 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0x84 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0x94 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0xa4 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0xb4 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0xc4 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0xd4 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0xe4 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x10 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x20 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x30 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x40 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x50 + bl sub_02019620 + mov r1, #0x93 + lsl r1, r1, #0x2 + ldr r0, [r4, r1] + add r1, #0x10 + ldrh r1, [r4, r1] + ldr r0, [r0, #0x1c] + bl sub_0206BB48 + add r2, r0, #0x0 + beq _0207DEFE + mov r0, #0x2 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0x9 + mov r3, #0x3 + bl sub_0207DA48 + b _0207DF0C +_0207DEFE: + ldr r2, _0207E0B4 ; =0x00000674 + mov r1, #0x16 + ldr r0, [r4, r2] + add r2, #0xc + ldr r2, [r4, r2] + bl sub_0200A8E0 +_0207DF0C: + mov r1, #0x2a + lsl r1, r1, #0x4 + ldr r0, [r4, r1] + lsl r0, r0, #0x2 + lsr r0, r0, #0x1f + bne _0207DF28 + sub r1, #0x5c + ldr r1, [r4, r1] + ldr r2, _0207E0B8 ; =0x00010200 + add r0, r4, #0x0 + mov r3, #0x2 + bl sub_0207D998 + b _0207DF36 +_0207DF28: + sub r1, #0x5c + ldr r1, [r4, r1] + ldr r2, _0207E0BC ; =0x00050600 + add r0, r4, #0x0 + mov r3, #0x2 + bl sub_0207D998 +_0207DF36: + mov r1, #0x25 + lsl r1, r1, #0x4 + mov r0, #0x0 + ldr r1, [r4, r1] + add r2, r0, #0x0 + bl sub_02002E14 + mov r2, #0x91 + lsl r2, r2, #0x2 + ldr r3, [r4, r2] + mov r1, #0x0 + add r5, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E0B8 ; =0x00010200 + add r2, #0xc + str r0, [sp, #0x8] + str r1, [sp, #0xc] + add r0, r3, #0x0 + ldrb r3, [r3, #0x17] + ldr r2, [r4, r2] + add r0, #0x10 + lsl r3, r3, #0x3 + sub r3, r3, r5 + lsr r3, r3, #0x1 + bl sub_0201BDE0 + mov r1, #0x96 + lsl r1, r1, #0x2 + mov r0, #0x0 + ldr r1, [r4, r1] + add r2, r0, #0x0 + bl sub_02002E14 + mov r5, #0x91 + lsl r5, r5, #0x2 + ldr r2, [r4, r5] + add r1, r2, #0x0 + add r1, #0x27 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x3 + sub r0, r1, r0 + lsr r3, r0, #0x1 + add r0, r5, #0x0 + add r0, #0x50 + ldrb r0, [r4, r0] + cmp r0, #0x0 + bne _0207DFB6 + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + mov r0, #0xc1 + lsl r0, r0, #0xa + str r0, [sp, #0x8] + add r2, #0x20 + str r1, [sp, #0xc] + add r5, #0x14 + add r0, r2, #0x0 + ldr r2, [r4, r5] + bl sub_0201BDE0 + b _0207DFD0 +_0207DFB6: + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E0BC ; =0x00050600 + add r2, #0x20 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + add r5, #0x14 + add r0, r2, #0x0 + ldr r2, [r4, r5] + bl sub_0201BDE0 +_0207DFD0: + mov r0, #0x2 + mov r2, #0x99 + str r0, [sp, #0x0] + lsl r2, r2, #0x2 + ldr r2, [r4, r2] + add r0, r4, #0x0 + lsl r2, r2, #0x10 + mov r1, #0x10 + lsr r2, r2, #0x10 + mov r3, #0x5 + bl sub_0207DA48 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E0B8 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x30 + mov r3, #0x2 + bl sub_0207D998 + mov r0, #0x1 + mov r2, #0x9a + str r0, [sp, #0x0] + lsl r2, r2, #0x2 + ldr r2, [r4, r2] + add r0, r4, #0x0 + mov r1, #0x12 + mov r3, #0x7 + bl sub_0207DA48 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E0B8 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x40 + mov r3, #0x2 + bl sub_0207D998 + ldr r3, _0207E0C0 ; =0x00000262 + ldrb r0, [r4, r3] + lsl r0, r0, #0x19 + lsr r0, r0, #0x19 + cmp r0, #0x64 + bhs _0207E048 + mov r0, #0x1 + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r2, #0xe + ldr r5, [r4, r2] + add r2, r3, #0x6 + ldr r2, [r4, r2] + add r0, r4, #0x0 + mov r1, #0x15 + sub r2, r5, r2 + mov r3, #0x7 + bl sub_0207DA48 + b _0207E058 +_0207E048: + mov r0, #0x1 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0x15 + mov r2, #0x0 + mov r3, #0x7 + bl sub_0207DA48 +_0207E058: + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E0B8 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x50 + mov r3, #0x2 + bl sub_0207D998 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x10 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x20 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x30 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x40 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x50 + bl sub_02019220 + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 +_0207E0B4: .word 0x00000674 +_0207E0B8: .word 0x00010200 +_0207E0BC: .word 0x00050600 +_0207E0C0: .word 0x00000262 + + thumb_func_start sub_0207E0C4 +sub_0207E0C4: ; 0x0207E0C4 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + mov r2, #0x13 + bl sub_0207FD00 + add r4, r0, #0x0 + ldr r2, [r4, #0x18] + cmp r2, #0x0 + beq _0207E0F8 + ldr r0, [r4, #0x14] + mov r1, #0x0 + sub r0, r0, #0x1 + lsl r0, r0, #0x4 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E18C ; =0x00010200 + add r3, r1, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + str r1, [sp, #0xc] + bl sub_0201BDE0 +_0207E0F8: + ldr r2, [r4, #0x20] + cmp r2, #0x0 + beq _0207E11A + ldr r0, [r4, #0x1c] + mov r1, #0x0 + sub r0, r0, #0x1 + lsl r0, r0, #0x4 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E18C ; =0x00010200 + add r3, r1, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + str r1, [sp, #0xc] + bl sub_0201BDE0 +_0207E11A: + ldr r2, [r4, #0x28] + cmp r2, #0x0 + beq _0207E13C + ldr r0, [r4, #0x24] + mov r1, #0x0 + sub r0, r0, #0x1 + lsl r0, r0, #0x4 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E18C ; =0x00010200 + add r3, r1, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + str r1, [sp, #0xc] + bl sub_0201BDE0 +_0207E13C: + ldr r2, [r4, #0x30] + cmp r2, #0x0 + beq _0207E15E + ldr r0, [r4, #0x2c] + mov r1, #0x0 + sub r0, r0, #0x1 + lsl r0, r0, #0x4 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E18C ; =0x00010200 + add r3, r1, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + str r1, [sp, #0xc] + bl sub_0201BDE0 +_0207E15E: + ldr r2, [r4, #0x38] + cmp r2, #0x0 + beq _0207E180 + ldr r0, [r4, #0x34] + mov r1, #0x0 + sub r0, r0, #0x1 + lsl r0, r0, #0x4 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E18C ; =0x00010200 + add r3, r1, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + str r1, [sp, #0xc] + bl sub_0201BDE0 +_0207E180: + add r0, r4, #0x0 + bl sub_02080094 + add sp, #0x10 + pop {r3-r5, pc} + nop +_0207E18C: .word 0x00010200 + + thumb_func_start sub_0207E190 +sub_0207E190: ; 0x0207E190 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x14 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x0 + bl sub_02019620 + add r0, r5, #0x0 + bl sub_0207B628 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0207D958 + add r7, r0, #0x0 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r1, [r5, r0] + ldrb r1, [r1, #0x11] + cmp r1, #0x2 + bne _0207E1E8 + mov r0, #0x13 + bl sub_020669C0 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02069A64 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r1, r4, #0x0 + add r2, r7, #0x0 + bl sub_0207E0C4 + add r0, r4, #0x0 + bl sub_02016A18 + b _0207E1F4 +_0207E1E8: + sub r0, #0x8 + ldr r0, [r5, r0] + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_0207E0C4 +_0207E1F4: + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_02019220 + pop {r3-r7, pc} + + thumb_func_start sub_0207E200 +sub_0207E200: ; 0x0207E200 + push {r3-r5, lr} + sub sp, #0x18 + add r4, r0, #0x0 + add r0, #0x24 + bl sub_02019220 + add r0, r4, #0x0 + add r0, #0xf4 + bl sub_02019220 + mov r0, #0x41 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x45 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x49 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x4d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x51 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x55 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x10 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x20 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x30 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x40 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x50 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x60 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x70 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0201AB0C + mov r1, #0x76 + str r1, [sp, #0x0] + mov r1, #0x9d + lsl r1, r1, #0x2 + ldrh r2, [r4, r1] + lsl r0, r0, #0x1a + add r1, r1, #0x2 + str r2, [sp, #0x4] + ldrh r1, [r4, r1] + lsr r0, r0, #0x18 + mov r2, #0x75 + str r1, [sp, #0x8] + mov r1, #0x3 + str r1, [sp, #0xc] + str r0, [sp, #0x10] + mov r1, #0x0 + add r0, r4, #0x0 + mov r3, #0x77 + str r1, [sp, #0x14] + bl sub_0207DA94 + mov r0, #0x0 + mov r2, #0x9e + str r0, [sp, #0x0] + lsl r2, r2, #0x2 + ldrh r2, [r4, r2] + add r0, r4, #0x0 + mov r1, #0x78 + mov r3, #0x3 + bl sub_0207DA48 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E484 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x10 + mov r3, #0x1 + bl sub_0207D998 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r2, _0207E488 ; =0x0000027A + add r0, r4, #0x0 + ldrh r2, [r4, r2] + mov r1, #0x79 + mov r3, #0x3 + bl sub_0207DA48 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E484 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x20 + mov r3, #0x1 + bl sub_0207D998 + mov r0, #0x0 + mov r2, #0x9f + str r0, [sp, #0x0] + lsl r2, r2, #0x2 + ldrh r2, [r4, r2] + add r0, r4, #0x0 + mov r1, #0x7a + mov r3, #0x3 + bl sub_0207DA48 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E484 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x30 + mov r3, #0x1 + bl sub_0207D998 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r2, _0207E48C ; =0x0000027E + add r0, r4, #0x0 + ldrh r2, [r4, r2] + mov r1, #0x7b + mov r3, #0x3 + bl sub_0207DA48 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E484 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x40 + mov r3, #0x1 + bl sub_0207D998 + mov r0, #0x0 + mov r2, #0xa + str r0, [sp, #0x0] + lsl r2, r2, #0x6 + ldrh r2, [r4, r2] + add r0, r4, #0x0 + mov r1, #0x7c + mov r3, #0x3 + bl sub_0207DA48 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E484 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x50 + mov r3, #0x1 + bl sub_0207D998 + ldr r2, _0207E490 ; =0x00000282 + ldr r0, _0207E494 ; =0x0000067C + ldrb r2, [r4, r2] + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_0200ADCC + ldr r0, _0207E498 ; =0x00000674 + mov r1, #0x7d + ldr r0, [r4, r0] + bl sub_0200A914 + add r5, r0, #0x0 + ldr r1, _0207E494 ; =0x0000067C + add r2, r5, #0x0 + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02021A20 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E484 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x60 + mov r3, #0x0 + bl sub_0207D998 + ldr r2, _0207E49C ; =0x0000022A + mov r0, #0x1 + mov r1, #0x1a + mov r3, #0x13 + bl sub_0200A86C + ldr r1, _0207E490 ; =0x00000282 + mov r2, #0x1a + lsl r2, r2, #0x6 + ldrb r1, [r4, r1] + ldr r2, [r4, r2] + add r5, r0, #0x0 + bl sub_0200A8E0 + add r0, r5, #0x0 + bl sub_0200A8B8 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E484 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x70 + mov r3, #0x0 + bl sub_0207D998 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x10 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x20 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x30 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x40 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x50 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x60 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x70 + bl sub_02019220 + add sp, #0x18 + pop {r3-r5, pc} + nop +_0207E484: .word 0x00010200 +_0207E488: .word 0x0000027A +_0207E48C: .word 0x0000027E +_0207E490: .word 0x00000282 +_0207E494: .word 0x0000067C +_0207E498: .word 0x00000674 +_0207E49C: .word 0x0000022A + + thumb_func_start sub_0207E4A0 +sub_0207E4A0: ; 0x0207E4A0 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r0, #0x34 + bl sub_02019220 + mov r0, #0x59 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x3 + beq _0207E4C6 + cmp r0, #0x4 + bne _0207E580 +_0207E4C6: + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x10 + bl sub_02019620 + ldr r2, _0207E584 ; =0x00000674 + mov r1, #0xa5 + ldr r0, [r4, r2] + add r2, #0xc + ldr r2, [r4, r2] + bl sub_0200A8E0 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E588 ; =0x000F0E00 + add r0, r4, #0x0 + add r1, #0x10 + mov r3, #0x0 + bl sub_0207D998 + ldr r1, _0207E58C ; =0x0000029B + ldr r2, _0207E584 ; =0x00000674 + ldrb r1, [r4, r1] + ldr r0, [r4, r2] + add r2, #0xc + ldr r2, [r4, r2] + add r1, #0xa6 + bl sub_0200A8E0 + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E590 ; =0x00010200 + mov r1, #0x0 + str r0, [sp, #0x8] + mov r0, #0x91 + mov r2, #0x1a + str r1, [sp, #0xc] + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + lsl r2, r2, #0x6 + ldr r2, [r4, r2] + add r0, #0x10 + add r3, r1, #0x0 + bl sub_0201BDE0 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x10 + bl sub_02019220 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + ldrb r1, [r1, #0x12] + cmp r1, #0x3 + bne _0207E580 + sub r0, #0x8 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02019620 + ldr r2, _0207E584 ; =0x00000674 + mov r1, #0xa3 + ldr r0, [r4, r2] + add r2, #0xc + ldr r2, [r4, r2] + bl sub_0200A8E0 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E588 ; =0x000F0E00 + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_0207D998 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02019220 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r4, #0x0 + bl sub_0207CFAC +_0207E580: + add sp, #0x10 + pop {r4, pc} + .balign 4 +_0207E584: .word 0x00000674 +_0207E588: .word 0x000F0E00 +_0207E58C: .word 0x0000029B +_0207E590: .word 0x00010200 + + thumb_func_start sub_0207E594 +sub_0207E594: ; 0x0207E594 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x44 + bl sub_02019220 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x2 + bne _0207E5B4 + add r0, r4, #0x0 + mov r1, #0x9b + bl sub_0207D924 + b _0207E5BC +_0207E5B4: + add r0, r4, #0x0 + mov r1, #0x81 + bl sub_0207D924 +_0207E5BC: + mov r1, #0x8d + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + bl sub_0207CFAC + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x10 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x20 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x30 + bl sub_02019620 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207EA44 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0207EA44 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_0207EA44 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_0207EA44 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x10 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x20 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x30 + bl sub_02019220 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0207E650 +sub_0207E650: ; 0x0207E650 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x54 + bl sub_02019220 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x2 + bne _0207E670 + add r0, r4, #0x0 + mov r1, #0x9f + bl sub_0207D924 + b _0207E678 +_0207E670: + add r0, r4, #0x0 + mov r1, #0x9e + bl sub_0207D924 +_0207E678: + mov r1, #0x8d + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + bl sub_0207CFAC + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x10 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x20 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x30 + bl sub_02019620 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0207EA44 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_0207EA44 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_0207EA44 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_0207EA44 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x10 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x20 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x30 + bl sub_02019220 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0207E70C +sub_0207E70C: ; 0x0207E70C + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + mov r0, #0x7d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x79 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02019620 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r2, _0207E780 ; =0x00000699 + add r0, r4, #0x0 + ldrb r2, [r4, r2] + mov r1, #0xb7 + mov r3, #0x3 + bl sub_0207DA48 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E784 ; =0x00010200 + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_0207D998 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02019220 + ldr r0, _0207E780 ; =0x00000699 + ldrb r0, [r4, r0] + cmp r0, #0x0 + beq _0207E77A + add r0, r4, #0x0 + mov r1, #0xb4 + bl sub_0207D924 + mov r1, #0x8d + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + bl sub_0207CFAC +_0207E77A: + add sp, #0x4 + pop {r3-r4, pc} + nop +_0207E780: .word 0x00000699 +_0207E784: .word 0x00010200 + + thumb_func_start sub_0207E788 +sub_0207E788: ; 0x0207E788 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + mov r0, #0x71 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_02019220 + add r0, r4, #0x0 + mov r1, #0xa1 + bl sub_0207D924 + mov r1, #0x8d + lsl r1, r1, #0x2 + add r0, r4, #0x0 + add r1, r4, r1 + bl sub_0207CFAC + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x12] + cmp r0, #0x3 + beq _0207E7BC + cmp r0, #0x4 + bne _0207E82C +_0207E7BC: + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x10 + bl sub_02019620 + ldr r2, _0207E830 ; =0x00000674 + mov r1, #0xa5 + ldr r0, [r4, r2] + add r2, #0xc + ldr r2, [r4, r2] + bl sub_0200A8E0 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207E834 ; =0x000F0E00 + add r0, r4, #0x0 + add r1, #0x10 + mov r3, #0x0 + bl sub_0207D998 + ldr r1, _0207E838 ; =0x0000029B + ldr r2, _0207E830 ; =0x00000674 + ldrb r1, [r4, r1] + ldr r0, [r4, r2] + add r2, #0xc + ldr r2, [r4, r2] + add r1, #0xa6 + bl sub_0200A8E0 + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E83C ; =0x00010200 + mov r1, #0x0 + str r0, [sp, #0x8] + mov r0, #0x91 + mov r2, #0x1a + str r1, [sp, #0xc] + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + lsl r2, r2, #0x6 + ldr r2, [r4, r2] + add r0, #0x10 + add r3, r1, #0x0 + bl sub_0201BDE0 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x10 + bl sub_02019220 +_0207E82C: + add sp, #0x10 + pop {r4, pc} + .balign 4 +_0207E830: .word 0x00000674 +_0207E834: .word 0x000F0E00 +_0207E838: .word 0x0000029B +_0207E83C: .word 0x00010200 + + thumb_func_start sub_0207E840 +sub_0207E840: ; 0x0207E840 + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x0 + add r0, #0x10 + bl sub_02019620 + ldr r0, _0207E994 ; =0x00000674 + mov r1, #0xba + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x0 + add r4, r0, #0x0 + ldr r2, _0207E998 ; =0x0000067C + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r5, r2] + add r2, #0x1d + ldrb r2, [r5, r2] + mov r3, #0x3 + bl sub_0200AD38 + ldr r1, _0207E998 ; =0x0000067C + add r2, r4, #0x0 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + mov r1, #0x1a + lsl r1, r1, #0x6 + mov r0, #0x0 + ldr r1, [r5, r1] + add r2, r0, #0x0 + bl sub_02002E14 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x38 + sub r0, r0, r1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + mov r1, #0x0 + mov r2, #0x1a + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E99C ; =0x00010200 + lsl r2, r2, #0x6 + str r0, [sp, #0x8] + mov r0, #0x91 + str r1, [sp, #0xc] + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + add r0, #0x10 + add r3, r4, #0x0 + bl sub_0201BDE0 + ldr r0, _0207E994 ; =0x00000674 + mov r1, #0xb9 + ldr r0, [r5, r0] + bl sub_0200A914 + add r6, r0, #0x0 + mov r0, #0x0 + add r1, r6, #0x0 + add r2, r0, #0x0 + bl sub_02002E14 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r0, r4, r0 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E99C ; =0x00010200 + add r2, r6, #0x0 + str r0, [sp, #0x8] + mov r0, #0x91 + str r1, [sp, #0xc] + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r3, r4, #0x0 + add r0, #0x10 + bl sub_0201BDE0 + add r0, r6, #0x0 + bl sub_02021A20 + ldr r0, _0207E994 ; =0x00000674 + mov r1, #0xb8 + ldr r0, [r5, r0] + bl sub_0200A914 + mov r1, #0x0 + ldr r2, _0207E998 ; =0x0000067C + add r6, r0, #0x0 + add r3, r2, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r5, r2] + add r2, #0x1c + add r3, #0x1b + ldrb r2, [r5, r2] + ldrb r3, [r5, r3] + lsl r2, r2, #0x2 + add r2, r3, r2 + add r2, r2, #0x1 + mov r3, #0x3 + bl sub_0200AD38 + ldr r1, _0207E998 ; =0x0000067C + add r2, r6, #0x0 + ldr r0, [r5, r1] + add r1, r1, #0x4 + ldr r1, [r5, r1] + bl sub_0200B7B8 + add r0, r6, #0x0 + bl sub_02021A20 + mov r1, #0x1a + lsl r1, r1, #0x6 + mov r0, #0x0 + ldr r1, [r5, r1] + add r2, r0, #0x0 + bl sub_02002E14 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r0, r4, r0 + lsl r0, r0, #0x18 + mov r1, #0x0 + lsr r3, r0, #0x18 + mov r2, #0x1a + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207E99C ; =0x00010200 + lsl r2, r2, #0x6 + str r0, [sp, #0x8] + mov r0, #0x91 + str r1, [sp, #0xc] + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + add r0, #0x10 + bl sub_0201BDE0 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r0, #0x10 + bl sub_02019220 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_0207E994: .word 0x00000674 +_0207E998: .word 0x0000067C +_0207E99C: .word 0x00010200 + + thumb_func_start sub_0207E9A0 +sub_0207E9A0: ; 0x0207E9A0 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x20 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x30 + bl sub_02019620 + ldr r0, _0207EA34 ; =0x0000069A + mov r1, #0x3 + ldrb r0, [r4, r0] + bl sub_0207FC5C + ldr r2, _0207EA38 ; =0x00000678 + add r1, r0, #0x0 + ldr r0, [r4, r2] + add r2, #0x8 + ldr r2, [r4, r2] + bl sub_0200A8E0 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207EA3C ; =0x000F0E00 + add r0, r4, #0x0 + add r1, #0x20 + mov r3, #0x0 + bl sub_0207D998 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r1, _0207EA34 ; =0x0000069A + ldr r0, [r4, r0] + ldrb r1, [r4, r1] + ldr r0, [r0, #0x20] + bl sub_0207FCC0 + ldr r2, _0207EA38 ; =0x00000678 + add r1, r0, #0x0 + ldr r0, [r4, r2] + add r2, #0x8 + ldr r2, [r4, r2] + bl sub_0200A8E0 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r2, _0207EA40 ; =0x00010200 + add r0, r4, #0x0 + add r1, #0x30 + mov r3, #0x0 + bl sub_0207D998 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x20 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x30 + bl sub_02019220 + pop {r4, pc} + .balign 4 +_0207EA34: .word 0x0000069A +_0207EA38: .word 0x00000678 +_0207EA3C: .word 0x000F0E00 +_0207EA40: .word 0x00010200 + + thumb_func_start sub_0207EA44 +sub_0207EA44: ; 0x0207EA44 + push {r4-r7, lr} + sub sp, #0x24 + add r5, r0, #0x0 + mov r0, #0x91 + add r7, r1, #0x0 + lsl r0, r0, #0x2 + lsl r6, r7, #0x4 + ldr r4, [r5, r0] + cmp r7, #0x4 + beq _0207EA76 + lsl r1, r7, #0x1 + add r2, r5, r1 + add r1, r0, #0x0 + add r1, #0x40 + ldrh r1, [r2, r1] + add r2, r0, #0x0 + add r2, #0x48 + str r1, [sp, #0x20] + add r1, r5, r7 + ldrb r2, [r1, r2] + add r0, #0x4c + str r2, [sp, #0x1c] + ldrb r0, [r1, r0] + str r0, [sp, #0x18] + b _0207EA88 +_0207EA76: + add r0, #0x8 + ldr r0, [r5, r0] + mov r1, #0x0 + ldrh r0, [r0, #0x18] + str r0, [sp, #0x20] + bl sub_0206AB30 + str r0, [sp, #0x1c] + str r0, [sp, #0x18] +_0207EA88: + ldr r2, _0207EB54 ; =0x00000688 + ldr r1, [sp, #0x20] + ldr r0, [r5, r2] + sub r2, #0x8 + ldr r2, [r5, r2] + bl sub_0200A8E0 + mov r0, #0x2 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207EB58 ; =0x000F0E00 + mov r2, #0x1a + str r0, [sp, #0x8] + mov r1, #0x0 + str r1, [sp, #0xc] + lsl r2, r2, #0x6 + ldr r2, [r5, r2] + add r0, r4, r6 + mov r3, #0x1 + bl sub_0201BDE0 + ldr r0, [sp, #0x20] + ldr r2, _0207EB5C ; =0x00000674 + cmp r0, #0x0 + beq _0207EB10 + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + mov r1, #0x87 + bl sub_0200A8E0 + mov r3, #0x10 + mov r2, #0x1a + str r3, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207EB60 ; =0x00010200 + mov r1, #0x0 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + lsl r2, r2, #0x6 + ldr r2, [r5, r2] + add r0, r4, r6 + bl sub_0201BDE0 + add r0, r7, #0x0 + add r0, #0x8d + str r0, [sp, #0x0] + ldr r0, [sp, #0x1c] + add r1, r7, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x18] + add r7, #0x88 + str r0, [sp, #0x8] + mov r0, #0x2 + str r0, [sp, #0xc] + mov r0, #0x3c + str r0, [sp, #0x10] + mov r0, #0x10 + str r0, [sp, #0x14] + add r0, r5, #0x0 + mov r2, #0x75 + add r3, r7, #0x0 + bl sub_0207DA94 + add sp, #0x24 + pop {r4-r7, pc} +_0207EB10: + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + mov r1, #0x99 + bl sub_0200A8E0 + mov r1, #0x1a + lsl r1, r1, #0x6 + mov r0, #0x0 + ldr r1, [r5, r1] + add r2, r0, #0x0 + bl sub_02002E14 + add r3, r0, #0x0 + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207EB60 ; =0x00010200 + mov r2, #0x1a + str r0, [sp, #0x8] + mov r1, #0x0 + add r0, r4, r6 + lsr r4, r3, #0x1 + mov r3, #0x3c + str r1, [sp, #0xc] + lsl r2, r2, #0x6 + ldr r2, [r5, r2] + sub r3, r3, r4 + bl sub_0201BDE0 + add sp, #0x24 + pop {r4-r7, pc} + nop +_0207EB54: .word 0x00000688 +_0207EB58: .word 0x000F0E00 +_0207EB5C: .word 0x00000674 +_0207EB60: .word 0x00010200 + + thumb_func_start sub_0207EB64 +sub_0207EB64: ; 0x0207EB64 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + mov r0, #0x65 + lsl r0, r0, #0x2 + add r0, r5, r0 + add r4, r1, #0x0 + bl sub_02019220 + mov r0, #0x69 + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02019220 + mov r0, #0x6d + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x0 + add r0, #0x50 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x0 + add r0, #0x60 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r1, #0x0 + add r0, #0x70 + bl sub_02019620 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_0206AB18 + add r2, r0, #0x0 + cmp r2, #0x1 + bhi _0207EBD2 + ldr r2, _0207EC88 ; =0x00000674 + mov r1, #0x9a + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + b _0207EBE0 +_0207EBD2: + mov r0, #0x1 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0x96 + mov r3, #0x3 + bl sub_0207DA48 +_0207EBE0: + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r5, r1] + ldr r2, _0207EC8C ; =0x00010200 + add r0, r5, #0x0 + add r1, #0x50 + mov r3, #0x2 + bl sub_0207D998 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_0206AB18 + add r2, r0, #0x0 + bne _0207EC0E + ldr r2, _0207EC88 ; =0x00000674 + mov r1, #0x9a + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + b _0207EC1C +_0207EC0E: + mov r0, #0x1 + str r0, [sp, #0x0] + add r0, r5, #0x0 + mov r1, #0x97 + mov r3, #0x3 + bl sub_0207DA48 +_0207EC1C: + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r5, r1] + ldr r2, _0207EC8C ; =0x00010200 + add r0, r5, #0x0 + add r1, #0x60 + mov r3, #0x2 + bl sub_0207D998 + ldr r2, _0207EC90 ; =0x0000024B + mov r0, #0x1 + mov r1, #0x1a + mov r3, #0x13 + bl sub_0200A86C + mov r2, #0x1a + lsl r2, r2, #0x6 + ldr r2, [r5, r2] + add r1, r4, #0x0 + add r6, r0, #0x0 + bl sub_0200A8E0 + mov r1, #0x91 + lsl r1, r1, #0x2 + ldr r1, [r5, r1] + ldr r2, _0207EC8C ; =0x00010200 + add r0, r5, #0x0 + add r1, #0x70 + mov r3, #0x0 + bl sub_0207D998 + add r0, r6, #0x0 + bl sub_0200A8B8 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r0, #0x50 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r0, #0x60 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r0, #0x70 + bl sub_02019220 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_0207EC88: .word 0x00000674 +_0207EC8C: .word 0x00010200 +_0207EC90: .word 0x0000024B + + thumb_func_start sub_0207EC94 +sub_0207EC94: ; 0x0207EC94 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x65 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + mov r0, #0x69 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + mov r0, #0x6d + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x50 + bl sub_0201958C + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x60 + bl sub_0201958C + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x70 + bl sub_0201958C + pop {r4, pc} + + thumb_func_start sub_0207ECDC +sub_0207ECDC: ; 0x0207ECDC + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + ldrh r1, [r1, #0x18] + cmp r1, #0x0 + beq _0207ED0E + sub r0, #0x8 + ldr r0, [r4, r0] + mov r1, #0x0 + add r0, #0x40 + bl sub_02019620 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_0207EA44 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x40 + bl sub_02019220 + pop {r4, pc} +_0207ED0E: + sub r0, #0xc8 + add r0, r4, r0 + bl sub_02019220 + pop {r4, pc} + + thumb_func_start sub_0207ED18 +sub_0207ED18: ; 0x0207ED18 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x61 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + ldr r0, [r4, #0x0] + mov r1, #0x1 + bl sub_0201AC68 + pop {r4, pc} + + thumb_func_start sub_0207ED30 +sub_0207ED30: ; 0x0207ED30 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + ldr r0, _0207EDB0 ; =0x0000068D + ldrb r0, [r4, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + lsl r0, r0, #0x4 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + ldr r0, _0207EDB0 ; =0x0000068D + ldrb r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + lsl r0, r0, #0x4 + add r0, r1, r0 + mov r1, #0x0 + bl sub_02019620 + ldr r1, _0207EDB0 ; =0x0000068D + add r0, r4, #0x0 + ldrb r1, [r4, r1] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + bl sub_0207EA44 + ldr r1, _0207EDB0 ; =0x0000068D + add r0, r4, #0x0 + ldrb r1, [r4, r1] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + bl sub_0207EA44 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + ldr r0, _0207EDB0 ; =0x0000068D + ldrb r0, [r4, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + lsl r0, r0, #0x4 + add r0, r1, r0 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + ldr r0, _0207EDB0 ; =0x0000068D + ldrb r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + lsl r0, r0, #0x4 + add r0, r1, r0 + bl sub_02019220 + pop {r4, pc} + nop +_0207EDB0: .word 0x0000068D + + thumb_func_start sub_0207EDB4 +sub_0207EDB4: ; 0x0207EDB4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0207EE20 ; =0x0000068C + ldrsb r0, [r5, r0] + cmp r0, #0x3 + bne _0207EDEE + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r0, #0x50 + bl sub_0201958C + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r0, #0x60 + bl sub_0201958C + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r0, #0x70 + bl sub_0201958C + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r4, [r5, r0] + add r4, #0x70 + b _0207EDF6 +_0207EDEE: + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r4, [r5, r0] + add r4, #0x50 +_0207EDF6: + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02019620 + ldr r2, _0207EE24 ; =0x00000674 + mov r1, #0x9c + ldr r0, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + bl sub_0200A8E0 + ldr r2, _0207EE28 ; =0x00010200 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r3, #0x0 + bl sub_0207D998 + add r0, r4, #0x0 + bl sub_02019220 + pop {r3-r5, pc} + .balign 4 +_0207EE20: .word 0x0000068C +_0207EE24: .word 0x00000674 +_0207EE28: .word 0x00010200 + + thumb_func_start sub_0207EE2C +sub_0207EE2C: ; 0x0207EE2C + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r4, r1, #0x0 + add r0, #0x50 + mov r1, #0x0 + bl sub_02019620 + add r0, r4, #0x0 + mov r1, #0xa + bl sub_0206AB18 + bl sub_0208315C + add r4, r0, #0x0 + mov r0, #0x0 + mov r1, #0x1a + mov r2, #0xc5 + mov r3, #0x13 + bl sub_0200A86C + mov r2, #0x1a + lsl r2, r2, #0x6 + ldr r2, [r5, r2] + add r1, r4, #0x0 + add r6, r0, #0x0 + bl sub_0200A8E0 + mov r1, #0x0 + mov r2, #0x1a + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207EEAC ; =0x00010200 + lsl r2, r2, #0x6 + str r0, [sp, #0x8] + mov r0, #0x91 + str r1, [sp, #0xc] + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + add r0, #0x50 + add r3, r1, #0x0 + bl sub_0201BDE0 + add r0, r6, #0x0 + bl sub_0200A8B8 + mov r0, #0x75 + lsl r0, r0, #0x2 + add r0, r5, r0 + bl sub_02019220 + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r0, #0x50 + bl sub_02019220 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_0207EEAC: .word 0x00010200 + + thumb_func_start sub_0207EEB0 +sub_0207EEB0: ; 0x0207EEB0 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x75 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0201958C + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r0, #0x50 + bl sub_0201958C + pop {r4, pc} + + thumb_func_start sub_0207EECC +sub_0207EECC: ; 0x0207EECC + push {r4-r6, lr} + sub sp, #0x10 + add r4, r0, #0x0 + cmp r1, #0x4 + bgt _0207EEF0 + cmp r1, #0x0 + blt _0207EF0E + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r1, #0 + lsl r2, r2, #0 + lsl r6, r2, #0 + lsl r2, r3, #0 + lsl r6, r3, #0 +_0207EEF0: + cmp r1, #0xfe + beq _0207EF0A + b _0207EF0E +_0207EEF6: + .byte 0xAC, 0x25, 0x0A, 0xE0, 0xAE, 0x25, 0x08, 0xE0, 0xAF, 0x25 + .byte 0x06, 0xE0, 0xB0, 0x25, 0x04, 0xE0, 0xAD, 0x25, 0x02, 0xE0 +_0207EF0A: + mov r5, #0xb1 + b _0207EF10 +_0207EF0E: + mov r5, #0xb2 +_0207EF10: + mov r0, #0x91 + lsl r0, r0, #0x2 + ldr r6, [r4, r0] + ldr r2, _0207EF60 ; =0x000003E2 + add r6, #0x20 + add r0, r6, #0x0 + mov r1, #0x1 + mov r3, #0xd + bl sub_0200D0BC + add r0, r6, #0x0 + mov r1, #0xf + bl sub_02019620 + ldr r2, _0207EF64 ; =0x00000674 + add r1, r5, #0x0 + ldr r0, [r4, r2] + add r2, #0xc + ldr r2, [r4, r2] + bl sub_0200A8E0 + mov r3, #0x0 + mov r2, #0x1a + str r3, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + ldr r0, _0207EF68 ; =0x0001020F + lsl r2, r2, #0x6 + str r0, [sp, #0x8] + str r3, [sp, #0xc] + ldr r2, [r4, r2] + add r0, r6, #0x0 + mov r1, #0x1 + bl sub_0201BDE0 + add r0, r6, #0x0 + bl sub_02019220 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_0207EF60: .word 0x000003E2 +_0207EF64: .word 0x00000674 +_0207EF68: .word 0x0001020F + + thumb_func_start sub_0207EF6C +sub_0207EF6C: ; 0x0207EF6C + push {r3-r4, lr} + sub sp, #0x4 + blx sub_020BB7F4 + blx sub_020C7E94 + blx sub_020C7D28 + ldr r0, _0207EFEC ; =0x04000060 + ldr r1, _0207EFF0 ; =0xFFFFCFFD + ldrh r2, [r0, #0x0] + ldr r3, _0207EFF4 ; =0x0000CFFB + and r2, r1 + strh r2, [r0, #0x0] + ldrh r2, [r0, #0x0] + and r2, r3 + strh r2, [r0, #0x0] + add r2, r1, #0x2 + ldrh r4, [r0, #0x0] + add r1, r1, #0x2 + sub r3, #0x1c + and r4, r2 + mov r2, #0x8 + orr r2, r4 + strh r2, [r0, #0x0] + ldrh r2, [r0, #0x0] + and r2, r1 + mov r1, #0x10 + orr r1, r2 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + and r1, r3 + strh r1, [r0, #0x0] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + blx sub_020C7C28 + mov r0, #0x0 + ldr r2, _0207EFF8 ; =0x00007FFF + add r1, r0, #0x0 + mov r3, #0x3f + str r0, [sp, #0x0] + blx sub_020C7B3C + ldr r1, _0207EFFC ; =0x04000540 + mov r0, #0x0 + str r0, [r1, #0x0] + ldr r0, _0207F000 ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_0201E6E4 + ldr r1, _0207F004 ; =0x04000008 + mov r0, #0x3 + ldrh r2, [r1, #0x0] + bic r2, r0 + mov r0, #0x2 + orr r0, r2 + strh r0, [r1, #0x0] + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_0207EFEC: .word 0x04000060 +_0207EFF0: .word 0xFFFFCFFD +_0207EFF4: .word 0x0000CFFB +_0207EFF8: .word 0x00007FFF +_0207EFFC: .word 0x04000540 +_0207F000: .word 0xBFFF0000 +_0207F004: .word 0x04000008 + + thumb_func_start sub_0207F008 +sub_0207F008: ; 0x0207F008 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0207F05C ; =0x0000068C + ldrsb r0, [r4, r0] + cmp r0, #0x4 + bne _0207F046 + bl sub_020222AC + bl sub_0201EBA4 + ldr r2, _0207F060 ; =0x04000440 + mov r3, #0x0 + add r1, r2, #0x0 + str r3, [r2, #0x0] + add r1, #0x14 + str r3, [r1, #0x0] + mov r0, #0x2 + str r0, [r2, #0x0] + str r3, [r1, #0x0] + blx sub_020B849C + mov r0, #0xb7 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_0207F108 + blx sub_020B849C + add r0, r4, #0x0 + bl sub_0207F1A4 +_0207F046: + blx sub_020B02C8 + mov r0, #0xae + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02006ED4 + ldr r0, _0207F064 ; =0x04000540 + mov r1, #0x1 + str r1, [r0, #0x0] + pop {r4, pc} + .balign 4 +_0207F05C: .word 0x0000068C +_0207F060: .word 0x04000440 +_0207F064: .word 0x04000540 + + thumb_func_start sub_0207F068 +sub_0207F068: ; 0x0207F068 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0xad + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0201EB70 + + non_word_aligned_thumb_func_start sub_0207F076 +sub_0207F076: ; 0x0207F076 + mov r0, #0x2d + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02014D9C + mov r0, #0x2d + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_02014C28 + mov r0, #0xae + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_020072E8 + pop {r4, pc} + + thumb_func_start sub_0207F098 +sub_0207F098: ; 0x0207F098 + push {r3-r4, lr} + sub sp, #0x1c + ldr r3, _0207F100 ; =0x020FB5CC + add r4, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, sp, #0x10 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r1, sp, #0x8 + str r0, [r2, #0x0] + mov r0, #0x0 + strh r0, [r1, #0x0] + strh r0, [r1, #0x2] + strh r0, [r1, #0x4] + strh r0, [r1, #0x6] + mov r0, #0x13 + bl sub_0201EB64 + mov r1, #0xad + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r2, #0x1 + str r2, [sp, #0x0] + ldr r0, [r4, r1] + lsl r1, r2, #0x10 + str r0, [sp, #0x4] + ldr r3, _0207F104 ; =0x000005C1 + add r0, sp, #0x10 + add r2, sp, #0x8 + bl sub_0201ED10 + mov r2, #0xad + lsl r2, r2, #0x2 + mov r1, #0x19 + ldr r2, [r4, r2] + mov r0, #0x0 + lsl r1, r1, #0xe + bl sub_0201EC94 + mov r0, #0xad + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0201EC88 + mov r0, #0xad + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0201EB8C + add sp, #0x1c + pop {r3-r4, pc} + nop +_0207F100: .word 0x020FB5CC +_0207F104: .word 0x000005C1 + + thumb_func_start sub_0207F108 +sub_0207F108: ; 0x0207F108 + push {r4-r7} + add r4, r0, #0x0 + ldr r0, _0207F170 ; =0x121400C0 + ldr r1, _0207F174 ; =0x040004A4 + ldr r2, _0207F178 ; =0x00003FE8 + str r0, [r1, #0x0] + mov r0, #0x1 + str r0, [r1, #0x5c] + ldr r0, _0207F17C ; =0x0400048C + mov r3, #0x0 + sub r1, #0x24 +_0207F11E: + str r2, [r1, #0x0] + ldrh r7, [r4, #0x2] + ldrh r5, [r4, #0x0] + ldrh r6, [r4, #0x4] + lsl r7, r7, #0x10 + orr r5, r7 + str r5, [r0, #0x0] + str r6, [r0, #0x0] + str r2, [r1, #0x0] + ldrh r7, [r4, #0x8] + ldrh r5, [r4, #0x6] + ldrh r6, [r4, #0xa] + lsl r7, r7, #0x10 + orr r5, r7 + str r5, [r0, #0x0] + str r6, [r0, #0x0] + str r2, [r1, #0x0] + ldrh r7, [r4, #0x14] + ldrh r5, [r4, #0x12] + ldrh r6, [r4, #0x16] + lsl r7, r7, #0x10 + orr r5, r7 + str r5, [r0, #0x0] + str r6, [r0, #0x0] + str r2, [r1, #0x0] + ldrh r7, [r4, #0xe] + ldrh r5, [r4, #0xc] + ldrh r6, [r4, #0x10] + lsl r7, r7, #0x10 + orr r5, r7 + str r5, [r0, #0x0] + add r3, r3, #0x1 + add r4, #0x18 + str r6, [r0, #0x0] + cmp r3, #0x4 + blo _0207F11E + ldr r0, _0207F180 ; =0x04000504 + mov r1, #0x0 + str r1, [r0, #0x0] + pop {r4-r7} + bx lr + .balign 4 +_0207F170: .word 0x121400C0 +_0207F174: .word 0x040004A4 +_0207F178: .word 0x00003FE8 +_0207F17C: .word 0x0400048C +_0207F180: .word 0x04000504 + + thumb_func_start sub_0207F184 +sub_0207F184: ; 0x0207F184 + mov r2, #0x0 + ldrsh r3, [r0, r2] + ldrsh r2, [r1, r2] + add r2, r3, r2 + strh r2, [r0, #0x0] + mov r2, #0x2 + ldrsh r3, [r0, r2] + ldrsh r2, [r1, r2] + add r2, r3, r2 + strh r2, [r0, #0x2] + mov r2, #0x4 + ldrsh r3, [r0, r2] + ldrsh r1, [r1, r2] + add r1, r3, r1 + strh r1, [r0, #0x4] + bx lr + + thumb_func_start sub_0207F1A4 +sub_0207F1A4: ; 0x0207F1A4 + push {r3-r7, lr} + sub sp, #0x18 + mov r2, #0xff + lsl r2, r2, #0x2 + add r1, r0, #0x0 + ldr r1, [r1, r2] + str r0, [sp, #0x0] + cmp r1, #0x4 + bne _0207F1BE + bl sub_0207D598 + add sp, #0x18 + pop {r3-r7, pc} +_0207F1BE: + cmp r1, #0x3 + bne _0207F1EA + add r6, r0, #0x0 + add r7, r2, #0x0 + mov r0, #0xb7 + mov r5, #0x0 + sub r7, #0x60 + lsl r0, r0, #0x2 +_0207F1CE: + add r4, r6, r7 + add r3, r6, r0 + mov r2, #0xc +_0207F1D4: + ldrh r1, [r4, #0x0] + add r4, r4, #0x2 + strh r1, [r3, #0x0] + add r3, r3, #0x2 + sub r2, r2, #0x1 + bne _0207F1D4 + add r5, r5, #0x1 + add r6, #0x18 + cmp r5, #0x4 + blo _0207F1CE + b _0207F274 +_0207F1EA: + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + sub r2, #0xc0 + add r0, r0, r2 + str r0, [sp, #0x14] + mov r0, #0xb7 + lsl r0, r0, #0x2 + ldr r1, [sp, #0x0] + add r2, r0, #0x0 + add r1, r1, r0 + str r1, [sp, #0x10] + ldr r1, [sp, #0x0] + add r2, #0x66 + add r1, r1, r2 + str r1, [sp, #0xc] + ldr r1, [sp, #0x0] + add r2, r0, #0x6 + add r1, r1, r2 + str r1, [sp, #0x8] + add r2, r0, #0x0 + ldr r1, [sp, #0x0] + add r2, #0x6c + add r7, r1, r2 + add r2, r0, #0x0 + add r2, #0xc + add r6, r1, r2 + add r2, r0, #0x0 + add r2, #0x72 + add r0, #0x12 + add r4, r1, r2 + add r5, r1, r0 +_0207F22A: + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + bl sub_0207F184 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + bl sub_0207F184 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_0207F184 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0207F184 + ldr r0, [sp, #0x14] + add r7, #0x18 + add r0, #0x18 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + add r6, #0x18 + add r0, #0x18 + str r0, [sp, #0x10] + ldr r0, [sp, #0xc] + add r4, #0x18 + add r0, #0x18 + str r0, [sp, #0xc] + ldr r0, [sp, #0x8] + add r5, #0x18 + add r0, #0x18 + str r0, [sp, #0x8] + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + str r0, [sp, #0x4] + cmp r0, #0x4 + blo _0207F22A +_0207F274: + mov r1, #0xff + ldr r0, [sp, #0x0] + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + add r2, r0, #0x1 + ldr r0, [sp, #0x0] + str r2, [r0, r1] + ldr r0, [r0, r1] + cmp r0, #0x4 + bne _0207F294 + ldr r0, [sp, #0x0] + mov r1, #0x1 + bl sub_0207D418 + add sp, #0x18 + pop {r3-r7, pc} +_0207F294: + ldr r0, [sp, #0x0] + mov r1, #0x0 + bl sub_0207D418 + add sp, #0x18 + pop {r3-r7, pc} + + thumb_func_start sub_0207F2A0 +sub_0207F2A0: ; 0x0207F2A0 + push {r3-r7, lr} + sub sp, #0x18 + ldr r1, _0207F420 ; =0x0000068C + ldrsb r1, [r0, r1] + cmp r1, #0x4 + beq _0207F2AE + b _0207F41A +_0207F2AE: + ldr r7, _0207F424 ; =0x020FB60C + add r3, sp, #0x0 + ldrh r1, [r7, #0x8] + strh r1, [r3, #0x12] + ldrh r1, [r7, #0xa] + strh r1, [r3, #0x14] + ldrh r1, [r7, #0xc] + strh r1, [r3, #0x16] + mov r1, #0xb7 + lsl r1, r1, #0x2 + ldrh r5, [r3, #0x12] + add r2, r1, #0x2 + strh r5, [r0, r1] + ldrh r4, [r3, #0x14] + strh r4, [r0, r2] + ldrh r6, [r3, #0x16] + add r2, r1, #0x4 + strh r6, [r0, r2] + add r2, r1, #0x6 + strh r5, [r0, r2] + add r2, r1, #0x0 + add r2, #0x8 + strh r4, [r0, r2] + add r2, r1, #0x0 + add r2, #0xa + strh r6, [r0, r2] + add r2, r1, #0x0 + add r2, #0xc + strh r5, [r0, r2] + add r2, r1, #0x0 + add r2, #0xe + strh r4, [r0, r2] + add r2, r1, #0x0 + add r2, #0x10 + strh r6, [r0, r2] + add r2, r1, #0x0 + add r2, #0x12 + strh r5, [r0, r2] + add r2, r1, #0x0 + add r2, #0x14 + strh r4, [r0, r2] + add r2, r1, #0x0 + add r2, #0x16 + strh r6, [r0, r2] + ldrh r2, [r7, #0x3e] + ldr r6, _0207F428 ; =0x020FB64C + add r7, r1, #0x0 + strh r2, [r3, #0xc] + ldrh r2, [r6, #0x0] + add r7, #0x1c + strh r2, [r3, #0xe] + ldrh r2, [r6, #0x2] + strh r2, [r3, #0x10] + add r2, r1, #0x0 + ldrh r5, [r3, #0xc] + add r2, #0x18 + strh r5, [r0, r2] + add r2, r1, #0x0 + ldrh r4, [r3, #0xe] + add r2, #0x1a + strh r4, [r0, r2] + ldrh r2, [r3, #0x10] + strh r2, [r0, r7] + add r7, r1, #0x0 + add r7, #0x1e + strh r5, [r0, r7] + add r7, r1, #0x0 + add r7, #0x20 + strh r4, [r0, r7] + add r7, r1, #0x0 + add r7, #0x22 + strh r2, [r0, r7] + add r7, r1, #0x0 + add r7, #0x24 + strh r5, [r0, r7] + add r7, r1, #0x0 + add r7, #0x26 + strh r4, [r0, r7] + add r7, r1, #0x0 + add r7, #0x28 + strh r2, [r0, r7] + add r7, r1, #0x0 + add r7, #0x2a + strh r5, [r0, r7] + add r5, r1, #0x0 + add r5, #0x2c + strh r4, [r0, r5] + add r4, r1, #0x0 + add r4, #0x2e + strh r2, [r0, r4] + ldrh r2, [r6, #0x34] + strh r2, [r3, #0x6] + ldrh r2, [r6, #0x36] + strh r2, [r3, #0x8] + ldrh r2, [r6, #0x38] + add r6, r1, #0x0 + add r6, #0x34 + strh r2, [r3, #0xa] + add r2, r1, #0x0 + ldrh r5, [r3, #0x6] + add r2, #0x30 + strh r5, [r0, r2] + add r2, r1, #0x0 + ldrh r4, [r3, #0x8] + add r2, #0x32 + strh r4, [r0, r2] + ldrh r2, [r3, #0xa] + strh r2, [r0, r6] + add r6, r1, #0x0 + add r6, #0x36 + strh r5, [r0, r6] + add r6, r1, #0x0 + add r6, #0x38 + strh r4, [r0, r6] + add r6, r1, #0x0 + add r6, #0x3a + strh r2, [r0, r6] + add r6, r1, #0x0 + add r6, #0x3c + strh r5, [r0, r6] + add r6, r1, #0x0 + add r6, #0x3e + strh r4, [r0, r6] + add r6, r1, #0x0 + add r6, #0x40 + strh r2, [r0, r6] + add r6, r1, #0x0 + add r6, #0x42 + strh r5, [r0, r6] + add r5, r1, #0x0 + add r5, #0x44 + strh r4, [r0, r5] + add r4, r1, #0x0 + add r4, #0x46 + strh r2, [r0, r4] + ldr r2, _0207F42C ; =0x020FB68C + ldrh r4, [r2, #0x2a] + strh r4, [r3, #0x0] + ldrh r4, [r2, #0x2c] + strh r4, [r3, #0x2] + ldrh r2, [r2, #0x2e] + strh r2, [r3, #0x4] + add r2, r1, #0x0 + ldrh r5, [r3, #0x0] + add r2, #0x48 + strh r5, [r0, r2] + add r2, r1, #0x0 + ldrh r4, [r3, #0x2] + add r2, #0x4a + strh r4, [r0, r2] + ldrh r2, [r3, #0x4] + add r3, r1, #0x0 + add r3, #0x4c + strh r2, [r0, r3] + add r3, r1, #0x0 + add r3, #0x4e + strh r5, [r0, r3] + add r3, r1, #0x0 + add r3, #0x50 + strh r4, [r0, r3] + add r3, r1, #0x0 + add r3, #0x52 + strh r2, [r0, r3] + add r3, r1, #0x0 + add r3, #0x54 + strh r5, [r0, r3] + add r3, r1, #0x0 + add r3, #0x56 + strh r4, [r0, r3] + add r3, r1, #0x0 + add r3, #0x58 + strh r2, [r0, r3] + add r3, r1, #0x0 + add r3, #0x5a + strh r5, [r0, r3] + add r3, r1, #0x0 + add r3, #0x5c + strh r4, [r0, r3] + add r1, #0x5e + strh r2, [r0, r1] + bl sub_0207F608 +_0207F41A: + add sp, #0x18 + pop {r3-r7, pc} + nop +_0207F420: .word 0x0000068C +_0207F424: .word 0x020FB60C +_0207F428: .word 0x020FB64C +_0207F42C: .word 0x020FB68C + + thumb_func_start sub_0207F430 +sub_0207F430: ; 0x0207F430 + push {r4-r5} + cmp r2, #0xff + bne _0207F446 + ldrh r2, [r0, #0x0] + strh r2, [r1, #0x0] + ldrh r2, [r0, #0x2] + strh r2, [r1, #0x2] + ldrh r0, [r0, #0x4] + strh r0, [r1, #0x4] + pop {r4-r5} + bx lr +_0207F446: + cmp r2, #0x0 + bne _0207F45A + ldrh r2, [r0, #0x6] + strh r2, [r1, #0x0] + ldrh r2, [r0, #0x8] + strh r2, [r1, #0x2] + ldrh r0, [r0, #0xa] + strh r0, [r1, #0x4] + pop {r4-r5} + bx lr +_0207F45A: + mov r3, #0x6 + ldrsh r5, [r0, r3] + mov r3, #0xc + ldrsh r3, [r0, r3] + add r4, r3, #0x0 + mul r4, r2 + add r3, r5, r4 + strh r3, [r1, #0x0] + mov r3, #0x8 + ldrsh r5, [r0, r3] + mov r3, #0xe + ldrsh r3, [r0, r3] + add r4, r3, #0x0 + mul r4, r2 + add r3, r5, r4 + strh r3, [r1, #0x2] + mov r3, #0xa + ldrsh r4, [r0, r3] + mov r3, #0x10 + ldrsh r0, [r0, r3] + mul r2, r0 + add r0, r4, r2 + strh r0, [r1, #0x4] + pop {r4-r5} + bx lr + + thumb_func_start sub_0207F48C +sub_0207F48C: ; 0x0207F48C + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x0 + ldrsh r1, [r4, r0] + ldrsh r0, [r5, r0] + add r6, r2, #0x0 + sub r7, r1, r0 + add r0, r7, #0x0 + blx sub_020EB534 + ldr r1, _0207F600 ; =0x45800000 + blx sub_020EB084 + ldr r1, _0207F604 ; =0x40800000 + blx sub_020EB084 + mov r1, #0x0 + blx sub_020EAEF0 + bls _0207F4E0 + add r0, r7, #0x0 + blx sub_020EB534 + ldr r1, _0207F600 ; =0x45800000 + blx sub_020EB084 + ldr r1, _0207F604 ; =0x40800000 + blx sub_020EB084 + add r1, r0, #0x0 + ldr r0, _0207F600 ; =0x45800000 + blx sub_020EB5C4 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + blx sub_020EB4C0 + b _0207F506 +_0207F4E0: + add r0, r7, #0x0 + blx sub_020EB534 + ldr r1, _0207F600 ; =0x45800000 + blx sub_020EB084 + ldr r1, _0207F604 ; =0x40800000 + blx sub_020EB084 + add r1, r0, #0x0 + ldr r0, _0207F600 ; =0x45800000 + blx sub_020EB5C4 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 + blx sub_020EB4C0 +_0207F506: + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + strh r0, [r6, #0x0] + mov r0, #0x2 + ldrsh r1, [r4, r0] + ldrsh r0, [r5, r0] + sub r7, r1, r0 + add r0, r7, #0x0 + blx sub_020EB534 + ldr r1, _0207F600 ; =0x45800000 + blx sub_020EB084 + ldr r1, _0207F604 ; =0x40800000 + blx sub_020EB084 + mov r1, #0x0 + blx sub_020EAEF0 + bls _0207F558 + add r0, r7, #0x0 + blx sub_020EB534 + ldr r1, _0207F600 ; =0x45800000 + blx sub_020EB084 + ldr r1, _0207F604 ; =0x40800000 + blx sub_020EB084 + add r1, r0, #0x0 + ldr r0, _0207F600 ; =0x45800000 + blx sub_020EB5C4 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + blx sub_020EB4C0 + b _0207F57E +_0207F558: + add r0, r7, #0x0 + blx sub_020EB534 + ldr r1, _0207F600 ; =0x45800000 + blx sub_020EB084 + ldr r1, _0207F604 ; =0x40800000 + blx sub_020EB084 + add r1, r0, #0x0 + ldr r0, _0207F600 ; =0x45800000 + blx sub_020EB5C4 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 + blx sub_020EB4C0 +_0207F57E: + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + strh r0, [r6, #0x2] + mov r0, #0x4 + ldrsh r1, [r4, r0] + ldrsh r0, [r5, r0] + sub r4, r1, r0 + add r0, r4, #0x0 + blx sub_020EB534 + ldr r1, _0207F600 ; =0x45800000 + blx sub_020EB084 + ldr r1, _0207F604 ; =0x40800000 + blx sub_020EB084 + mov r1, #0x0 + blx sub_020EAEF0 + bls _0207F5D0 + add r0, r4, #0x0 + blx sub_020EB534 + ldr r1, _0207F600 ; =0x45800000 + blx sub_020EB084 + ldr r1, _0207F604 ; =0x40800000 + blx sub_020EB084 + add r1, r0, #0x0 + ldr r0, _0207F600 ; =0x45800000 + blx sub_020EB5C4 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + blx sub_020EB4C0 + b _0207F5F6 +_0207F5D0: + add r0, r4, #0x0 + blx sub_020EB534 + ldr r1, _0207F600 ; =0x45800000 + blx sub_020EB084 + ldr r1, _0207F604 ; =0x40800000 + blx sub_020EB084 + add r1, r0, #0x0 + ldr r0, _0207F600 ; =0x45800000 + blx sub_020EB5C4 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 + blx sub_020EB4C0 +_0207F5F6: + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + strh r0, [r6, #0x4] + pop {r3-r7, pc} + nop +_0207F600: .word 0x45800000 +_0207F604: .word 0x40800000 + + thumb_func_start sub_0207F608 +sub_0207F608: ; 0x0207F608 + push {r3-r7, lr} + sub sp, #0x28 + ldr r2, _0207F7D0 ; =0x00000295 + add r5, r0, #0x0 + mov r1, #0xe7 + lsl r1, r1, #0x2 + ldrb r2, [r5, r2] + ldr r0, _0207F7D4 ; =0x020FB5D8 + add r1, r5, r1 + bl sub_0207F430 + ldr r2, _0207F7D8 ; =0x00000296 + ldr r1, _0207F7DC ; =0x000003A2 + ldrb r2, [r5, r2] + ldr r0, _0207F7E0 ; =0x020FB5EA + add r1, r5, r1 + bl sub_0207F430 + ldr r2, _0207F7E4 ; =0x00000297 + ldr r1, _0207F7E8 ; =0x000003AE + ldrb r2, [r5, r2] + ldr r0, _0207F7EC ; =0x020FB5FC + add r1, r5, r1 + bl sub_0207F430 + mov r1, #0xea + lsl r1, r1, #0x2 + ldr r0, _0207F7F0 ; =0x020FB60E + add r1, r5, r1 + mov r2, #0x0 + bl sub_0207F430 + ldr r2, _0207F7F4 ; =0x00000299 + mov r1, #0xed + lsl r1, r1, #0x2 + ldrb r2, [r5, r2] + ldr r0, _0207F7F8 ; =0x020FB620 + add r1, r5, r1 + bl sub_0207F430 + ldr r2, _0207F7D0 ; =0x00000295 + ldr r1, _0207F7FC ; =0x000003BA + ldrb r2, [r5, r2] + ldr r0, _0207F800 ; =0x020FB632 + add r1, r5, r1 + bl sub_0207F430 + ldr r1, _0207F804 ; =0x000003C6 + ldr r0, _0207F808 ; =0x020FB644 + add r1, r5, r1 + mov r2, #0x0 + bl sub_0207F430 + mov r2, #0xa6 + lsl r2, r2, #0x2 + mov r1, #0xf + lsl r1, r1, #0x6 + ldrb r2, [r5, r2] + ldr r0, _0207F80C ; =0x020FB656 + add r1, r5, r1 + bl sub_0207F430 + ldr r2, _0207F7F4 ; =0x00000299 + mov r1, #0xf3 + lsl r1, r1, #0x2 + ldrb r2, [r5, r2] + ldr r0, _0207F810 ; =0x020FB668 + add r1, r5, r1 + bl sub_0207F430 + ldr r1, _0207F814 ; =0x000003D2 + ldr r0, _0207F818 ; =0x020FB67A + add r1, r5, r1 + mov r2, #0x0 + bl sub_0207F430 + ldr r2, _0207F7E4 ; =0x00000297 + ldr r1, _0207F81C ; =0x000003DE + ldrb r2, [r5, r2] + ldr r0, _0207F820 ; =0x020FB68C + add r1, r5, r1 + bl sub_0207F430 + mov r2, #0xa6 + lsl r2, r2, #0x2 + mov r1, #0xf6 + lsl r1, r1, #0x2 + ldrb r2, [r5, r2] + ldr r0, _0207F824 ; =0x020FB69E + add r1, r5, r1 + bl sub_0207F430 + mov r1, #0xf9 + lsl r1, r1, #0x2 + ldr r0, _0207F828 ; =0x020FB6B0 + add r1, r5, r1 + mov r2, #0x0 + bl sub_0207F430 + ldr r2, _0207F7D8 ; =0x00000296 + ldr r1, _0207F82C ; =0x000003EA + ldrb r2, [r5, r2] + ldr r0, _0207F830 ; =0x020FB6C2 + add r1, r5, r1 + bl sub_0207F430 + ldr r2, _0207F7E4 ; =0x00000297 + ldr r1, _0207F834 ; =0x000003F6 + ldrb r2, [r5, r2] + ldr r0, _0207F838 ; =0x020FB6D4 + add r1, r5, r1 + bl sub_0207F430 + mov r2, #0xa6 + lsl r2, r2, #0x2 + mov r1, #0x3f + lsl r1, r1, #0x4 + ldrb r2, [r5, r2] + ldr r0, _0207F83C ; =0x020FB6E6 + add r1, r5, r1 + bl sub_0207F430 + mov r0, #0x0 + str r0, [sp, #0x24] + mov r0, #0xcf + lsl r0, r0, #0x2 + add r1, r5, r0 + str r1, [sp, #0x20] + add r1, r0, #0x0 + add r1, #0x60 + add r1, r5, r1 + str r1, [sp, #0x1c] + add r1, r0, #0x0 + sub r1, #0x60 + add r1, r5, r1 + str r1, [sp, #0x18] + add r1, r0, #0x6 + add r1, r5, r1 + str r1, [sp, #0x14] + add r1, r0, #0x0 + add r1, #0x66 + add r1, r5, r1 + str r1, [sp, #0x10] + add r1, r0, #0x0 + sub r1, #0x5a + add r1, r5, r1 + str r1, [sp, #0xc] + add r1, r0, #0x0 + add r1, #0xc + add r1, r5, r1 + str r1, [sp, #0x8] + add r1, r0, #0x0 + add r1, #0x6c + add r1, r5, r1 + str r1, [sp, #0x4] + add r1, r0, #0x0 + sub r1, #0x54 + add r1, r5, r1 + str r1, [sp, #0x0] + add r1, r0, #0x0 + add r1, #0x12 + add r7, r5, r1 + add r1, r0, #0x0 + add r1, #0x72 + sub r0, #0x4e + add r6, r5, r1 + add r4, r5, r0 +_0207F756: + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x20] + bl sub_0207F48C + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x14] + bl sub_0207F48C + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x8] + bl sub_0207F48C + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl sub_0207F48C + ldr r0, [sp, #0x20] + add r7, #0x18 + add r0, #0x18 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + add r6, #0x18 + add r0, #0x18 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + add r4, #0x18 + add r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + add r0, #0x18 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + add r0, #0x18 + str r0, [sp, #0x10] + ldr r0, [sp, #0xc] + add r0, #0x18 + str r0, [sp, #0xc] + ldr r0, [sp, #0x8] + add r0, #0x18 + str r0, [sp, #0x8] + ldr r0, [sp, #0x4] + add r0, #0x18 + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + add r0, #0x18 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + add r0, r0, #0x1 + str r0, [sp, #0x24] + cmp r0, #0x4 + blo _0207F756 + mov r0, #0xff + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r5, r0] + add sp, #0x28 + pop {r3-r7, pc} + .balign 4 +_0207F7D0: .word 0x00000295 +_0207F7D4: .word 0x020FB5D8 +_0207F7D8: .word 0x00000296 +_0207F7DC: .word 0x000003A2 +_0207F7E0: .word 0x020FB5EA +_0207F7E4: .word 0x00000297 +_0207F7E8: .word 0x000003AE +_0207F7EC: .word 0x020FB5FC +_0207F7F0: .word 0x020FB60E +_0207F7F4: .word 0x00000299 +_0207F7F8: .word 0x020FB620 +_0207F7FC: .word 0x000003BA +_0207F800: .word 0x020FB632 +_0207F804: .word 0x000003C6 +_0207F808: .word 0x020FB644 +_0207F80C: .word 0x020FB656 +_0207F810: .word 0x020FB668 +_0207F814: .word 0x000003D2 +_0207F818: .word 0x020FB67A +_0207F81C: .word 0x000003DE +_0207F820: .word 0x020FB68C +_0207F824: .word 0x020FB69E +_0207F828: .word 0x020FB6B0 +_0207F82C: .word 0x000003EA +_0207F830: .word 0x020FB6C2 +_0207F834: .word 0x000003F6 +_0207F838: .word 0x020FB6D4 +_0207F83C: .word 0x020FB6E6 + + thumb_func_start sub_0207F840 +sub_0207F840: ; 0x0207F840 + push {r4, lr} + sub sp, #0x20 + add r4, r0, #0x0 + mov r0, #0x13 + bl sub_02006D98 + mov r1, #0xae + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, r4, #0x0 + bl sub_0207B628 + add r1, r0, #0x0 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r0, [r0, #0x11] + cmp r0, #0x2 + add r0, sp, #0x10 + bne _0207F870 + mov r2, #0x2 + bl sub_02068B70 + b _0207F876 +_0207F870: + mov r2, #0x2 + bl sub_02068B68 +_0207F876: + mov r1, #0xaf + lsl r1, r1, #0x2 + add r0, r4, r1 + sub r1, #0x60 + ldrh r1, [r4, r1] + bl sub_02069010 + mov r0, #0x97 + lsl r0, r0, #0x2 + ldrh r0, [r4, r0] + mov r1, #0x1c + bl sub_02068678 + mov r1, #0x1 + eor r0, r1 + mov r1, #0xb6 + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, r1, #0x0 + mov r2, #0x0 + str r2, [sp, #0x0] + sub r0, #0x1c + str r2, [sp, #0x4] + add r0, r4, r0 + str r0, [sp, #0x8] + str r2, [sp, #0xc] + sub r1, #0x20 + ldr r0, [r4, r1] + add r1, sp, #0x10 + mov r2, #0x34 + mov r3, #0x68 + bl sub_020073A0 + mov r2, #0xb5 + lsl r2, r2, #0x2 + str r0, [r4, r2] + ldr r0, [r4, r2] + add r2, r2, #0x4 + ldr r2, [r4, r2] + mov r1, #0x23 + bl sub_02007558 + add sp, #0x20 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0207F8D0 +sub_0207F8D0: ; 0x0207F8D0 + push {r3-r4, lr} + sub sp, #0xc + mov r1, #0x2a + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r4, r1] + lsl r0, r0, #0x3 + lsr r0, r0, #0x1f + beq _0207F904 + mov r2, #0x0 + add r0, r1, #0x0 + str r2, [sp, #0x0] + add r0, #0x38 + ldr r0, [r4, r0] + mov r3, #0x2 + str r0, [sp, #0x4] + add r0, r1, #0x0 + str r2, [sp, #0x8] + add r0, #0x30 + add r1, #0x34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + bl sub_02069038 + add sp, #0xc + pop {r3-r4, pc} +_0207F904: + add r1, #0x34 + ldr r0, [r4, r1] + mov r1, #0x1 + bl sub_02007314 + mov r1, #0x0 + mov r2, #0xb6 + str r1, [sp, #0x0] + lsl r2, r2, #0x2 + ldr r0, [r4, r2] + mov r3, #0x2 + str r0, [sp, #0x4] + str r1, [sp, #0x8] + add r0, r2, #0x0 + sub r1, r2, #0x4 + sub r2, #0x7c + sub r0, #0x8 + ldrh r2, [r4, r2] + ldr r0, [r4, r0] + ldr r1, [r4, r1] + bl sub_02069038 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start sub_0207F934 +sub_0207F934: ; 0x0207F934 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x2d + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + mov r1, #0x0 + bl sub_02014D9C + mov r0, #0xae + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_020072E8 + add r0, r4, #0x0 + bl sub_0207F840 + add r0, r4, #0x0 + bl sub_0207F8D0 + pop {r4, pc} + + thumb_func_start sub_0207F95C +sub_0207F95C: ; 0x0207F95C + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x93 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldrb r1, [r0, #0x12] + cmp r1, #0x3 + bhi _0207F9AC + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r6, r0, #0 + lsl r2, r6, #0 + lsl r2, r6, #0 + ldr r0, [r0, #0x2c] + ldr r1, _0207F9C4 ; =0x0000068F + cmp r0, #0x0 + beq _0207F992 + ldrb r2, [r4, r1] + mov r0, #0xf + bic r2, r0 + strb r2, [r4, r1] + b _0207F9BA +_0207F992: + ldrb r2, [r4, r1] + mov r0, #0xf + bic r2, r0 + mov r0, #0x1 + orr r0, r2 + strb r0, [r4, r1] + mov r1, #0x4 + ldr r0, [r4, #0x0] + mov r2, #0x0 + add r3, r1, #0x0 + bl sub_0201AEE4 + b _0207F9BA +_0207F9AC: + ldr r1, _0207F9C4 ; =0x0000068F + mov r0, #0xf + ldrb r2, [r4, r1] + bic r2, r0 + mov r0, #0xf + orr r0, r2 + strb r0, [r4, r1] +_0207F9BA: + add r0, r4, #0x0 + bl sub_0207FA38 + pop {r4, pc} + nop +_0207F9C4: .word 0x0000068F + + thumb_func_start sub_0207F9C8 +sub_0207F9C8: ; 0x0207F9C8 + push {r3-r7, lr} + ldr r0, [r0, #0x0] + add r4, r1, #0x0 + mov r1, #0x4 + add r5, r2, #0x0 + bl sub_0201886C + add r7, r0, #0x0 + lsl r0, r5, #0x2 + add r1, r5, r0 + ldrb r2, [r4, #0x0] + mov r0, #0x1 + mov r3, #0x0 + add r5, r2, #0x0 + and r5, r0 + mov r0, #0xf + mul r0, r5 + lsr r5, r2, #0x1 + mov r2, #0x96 + mul r2, r5 + add r0, r0, r2 + add r0, r1, r0 + add r0, #0x1e + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r12, r0 +_0207F9FC: + mov r0, #0x1e + add r1, r3, #0x0 + mul r1, r0 + mov r0, r12 + mov r2, #0x0 + add r5, r0, r1 +_0207FA08: + ldrb r0, [r4, #0x1] + ldrb r6, [r4, #0x3] + lsl r1, r0, #0xc + add r0, r2, r5 + add r1, r1, r0 + add r6, r3, r6 + lsl r6, r6, #0x5 + ldrb r0, [r4, #0x2] + add r6, r2, r6 + add r0, r0, r6 + lsl r0, r0, #0x1 + strh r1, [r7, r0] + add r0, r2, #0x1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x5 + blo _0207FA08 + add r0, r3, #0x1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0x5 + blo _0207F9FC + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_0207FA38 +sub_0207FA38: ; 0x0207FA38 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, _0207FA78 ; =0x0000068F + ldrb r0, [r6, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #0xf + beq _0207FA74 + lsl r1, r0, #0x2 + ldr r0, _0207FA7C ; =0x02106148 + mov r5, #0x0 + ldr r4, [r0, r1] + add r7, r5, #0x0 +_0207FA52: + lsl r1, r5, #0x2 + ldrb r0, [r4, r1] + cmp r0, #0xff + beq _0207FA6C + add r0, r6, #0x0 + add r1, r4, r1 + add r2, r7, #0x0 + bl sub_0207F9C8 + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + b _0207FA52 +_0207FA6C: + ldr r0, [r6, #0x0] + mov r1, #0x4 + bl sub_0201AC68 +_0207FA74: + pop {r3-r7, pc} + nop +_0207FA78: .word 0x0000068F +_0207FA7C: .word 0x02106148 + + thumb_func_start sub_0207FA80 +sub_0207FA80: ; 0x0207FA80 + push {r3, lr} + bl sub_0207FA98 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _0207FA94 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} +_0207FA94: + mov r0, #0xff + pop {r3, pc} + + thumb_func_start sub_0207FA98 +sub_0207FA98: ; 0x0207FA98 + push {r3, lr} + ldr r1, _0207FAB8 ; =0x0000068F + ldrb r0, [r0, r1] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #0xf + bne _0207FAAC + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} +_0207FAAC: + lsl r1, r0, #0x2 + ldr r0, _0207FABC ; =0x0210613C + ldr r0, [r0, r1] + bl sub_02020988 + pop {r3, pc} + .balign 4 +_0207FAB8: .word 0x0000068F +_0207FABC: .word 0x0210613C + + thumb_func_start sub_0207FAC0 +sub_0207FAC0: ; 0x0207FAC0 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, _0207FB18 ; =0x0000068F + ldrb r0, [r5, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #0xf + bne _0207FADA + mov r0, #0x0 + add sp, #0x8 + mvn r0, r0 + pop {r3-r5, pc} +_0207FADA: + lsl r1, r0, #0x2 + ldr r0, _0207FB1C ; =0x0210613C + ldr r0, [r0, r1] + bl sub_02020968 + add r4, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + beq _0207FB12 + ldr r1, _0207FB20 ; =0x0000FFFE + add r0, sp, #0x4 + strh r1, [r0, #0x0] + add r0, sp, #0x4 + str r0, [sp, #0x0] + ldr r3, _0207FB24 ; =0x021C48F8 + ldr r0, [r5, #0x0] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #0x4 + bl sub_0201AFBC + cmp r0, #0x0 + bne _0207FB12 + mov r0, #0x0 + add sp, #0x8 + mvn r0, r0 + pop {r3-r5, pc} +_0207FB12: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_0207FB18: .word 0x0000068F +_0207FB1C: .word 0x0210613C +_0207FB20: .word 0x0000FFFE +_0207FB24: .word 0x021C48F8 + + thumb_func_start sub_0207FB28 +sub_0207FB28: ; 0x0207FB28 + push {r4-r6, lr} + ldr r1, _0207FBF4 ; =0x0000068F + add r5, r0, #0x0 + ldrb r2, [r5, r1] + lsl r2, r2, #0x1c + lsr r3, r2, #0x1a + ldr r2, _0207FBF8 ; =0x02106148 + ldr r4, [r2, r3] + add r2, r1, #0x6 + ldrb r2, [r5, r2] + cmp r2, #0x0 + beq _0207FB4A + cmp r2, #0x1 + beq _0207FB84 + cmp r2, #0x2 + beq _0207FB8C + b _0207FBEE +_0207FB4A: + sub r1, #0xab + add r0, r1, #0x0 + bl sub_020054C8 + add r0, r5, #0x0 + bl sub_0207FA38 + ldr r1, _0207FBFC ; =0x00000696 + add r0, r5, #0x0 + ldrb r1, [r5, r1] + mov r2, #0x2 + lsl r1, r1, #0x2 + add r1, r4, r1 + bl sub_0207F9C8 + ldr r0, [r5, #0x0] + mov r1, #0x4 + bl sub_0201AC68 + add r0, r5, #0x0 + bl sub_0207CEDC + ldr r0, _0207FC00 ; =0x00000694 + mov r1, #0x0 + strb r1, [r5, r0] + mov r1, #0x1 + add r0, r0, #0x1 + strb r1, [r5, r0] + b _0207FBEE +_0207FB84: + mov r2, #0x2 + add r0, r1, #0x6 + strb r2, [r5, r0] + b _0207FBEE +_0207FB8C: + add r2, r1, #0x5 + ldrb r2, [r5, r2] + cmp r2, #0x3 + beq _0207FBA0 + add r0, r1, #0x5 + ldrb r0, [r5, r0] + add r2, r0, #0x1 + add r0, r1, #0x5 + strb r2, [r5, r0] + b _0207FBEE +_0207FBA0: + bl sub_0207CF58 + ldr r0, _0207FBFC ; =0x00000696 + ldrb r6, [r5, r0] + add r0, r5, #0x0 + bl sub_0207FAC0 + cmp r6, r0 + beq _0207FBEE + mov r0, #0x2a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + lsl r0, r0, #0x3 + lsr r0, r0, #0x1f + beq _0207FBD6 + lsl r1, r6, #0x2 + ldrb r0, [r4, r1] + cmp r0, #0x1 + beq _0207FBD6 + cmp r0, #0x7 + beq _0207FBD6 + add r0, r5, #0x0 + add r1, r4, r1 + mov r2, #0x0 + bl sub_0207F9C8 + b _0207FBE2 +_0207FBD6: + lsl r1, r6, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + mov r2, #0x1 + bl sub_0207F9C8 +_0207FBE2: + ldr r0, [r5, #0x0] + mov r1, #0x4 + bl sub_0201AC68 + mov r0, #0x1 + pop {r4-r6, pc} +_0207FBEE: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_0207FBF4: .word 0x0000068F +_0207FBF8: .word 0x02106148 +_0207FBFC: .word 0x00000696 +_0207FC00: .word 0x00000694 + + thumb_func_start sub_0207FC04 +sub_0207FC04: ; 0x0207FC04 + push {r4-r5} + ldr r4, _0207FC38 ; =0x0000068F + ldrb r3, [r0, r4] + lsl r3, r3, #0x1c + lsr r5, r3, #0x1a + ldr r3, _0207FC3C ; =0x02106148 + ldr r3, [r3, r5] + add r5, r4, #0x7 + ldrb r5, [r0, r5] + lsl r5, r5, #0x2 + add r5, r3, r5 + ldrb r5, [r5, #0x2] + lsl r5, r5, #0x3 + add r5, #0x14 + strh r5, [r1, #0x0] + add r1, r4, #0x7 + ldrb r0, [r0, r1] + lsl r0, r0, #0x2 + add r0, r3, r0 + ldrb r0, [r0, #0x3] + lsl r0, r0, #0x3 + add r0, #0x14 + strh r0, [r2, #0x0] + pop {r4-r5} + bx lr + nop +_0207FC38: .word 0x0000068F +_0207FC3C: .word 0x02106148 + + thumb_func_start sub_0207FC40 +sub_0207FC40: ; 0x0207FC40 + ldr r2, _0207FC54 ; =0x0000068F + ldrb r0, [r0, r2] + lsl r0, r0, #0x1c + lsr r2, r0, #0x1a + ldr r0, _0207FC58 ; =0x02106148 + ldr r2, [r0, r2] + lsl r0, r1, #0x2 + ldrb r0, [r2, r0] + bx lr + nop +_0207FC54: .word 0x0000068F +_0207FC58: .word 0x02106148 + + thumb_func_start sub_0207FC5C +sub_0207FC5C: ; 0x0207FC5C + cmp r1, #0x4 + bhi _0207FCA8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0 + lsl r2, r2, #0 + lsl r4, r3, #0 + lsl r6, r4, #0 + lsl r0, r6, #0 + mov r1, #0xc + mul r1, r0 + ldr r0, _0207FCAC ; =0x020FB788 + ldr r0, [r0, r1] + bx lr +_0207FC80: + .byte 0x0C, 0x21, 0x41, 0x43, 0x0A, 0x48, 0x40, 0x5A, 0x70, 0x47, 0x0C, 0x21, 0x41, 0x43, 0x09, 0x48 + .byte 0x40, 0x5A, 0x70, 0x47, 0x0C, 0x21, 0x41, 0x43, 0x07, 0x48, 0x40, 0x5A, 0x70, 0x47, 0x0C, 0x21 + .byte 0x41, 0x43, 0x06, 0x48, 0x40, 0x5A, 0x70, 0x47 +_0207FCA8: + mov r0, #0x0 + bx lr + .balign 4 +_0207FCAC: .word 0x020FB788 +_0207FCB0: + .byte 0x8C, 0xB7, 0x0F, 0x02, 0x8E, 0xB7, 0x0F, 0x02, 0x90, 0xB7, 0x0F, 0x02, 0x92, 0xB7, 0x0F, 0x02 + + thumb_func_start sub_0207FCC0 +sub_0207FCC0: ; 0x0207FCC0 + mov r2, #0xc + mul r2, r1 + ldr r1, _0207FCDC ; =0x020FB792 + ldrh r2, [r1, r2] + mov r1, #0x2 + lsl r1, r1, #0xe + tst r1, r2 + beq _0207FCD8 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + ldrb r2, [r0, r1] + add r2, #0x92 +_0207FCD8: + add r0, r2, #0x0 + bx lr + .balign 4 +_0207FCDC: .word 0x020FB792 + + thumb_func_start sub_0207FCE0 +sub_0207FCE0: ; 0x0207FCE0 + mov r1, #0xc + mul r1, r0 + ldr r0, _0207FCFC ; =0x020FB792 + ldrh r1, [r0, r1] + mov r0, #0x2 + lsl r0, r0, #0xe + tst r0, r1 + beq _0207FCF6 + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + bx lr +_0207FCF6: + mov r0, #0xff + bx lr + nop +_0207FCFC: .word 0x020FB792 + + thumb_func_start sub_0207FD00 +sub_0207FD00: ; 0x0207FD00 + push {r3-r7, lr} + add r7, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r7, #0x0 + mov r1, #0x3c + bl sub_02016998 + add r4, r0, #0x0 + mov r2, #0x65 + str r7, [r4, #0x0] + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + add r3, r7, #0x0 + bl sub_0200A86C + str r0, [r4, #0x4] + ldr r2, [r4, #0x0] + mov r0, #0x9 + mov r1, #0x20 + bl sub_0200AA90 + str r0, [r4, #0x8] + str r5, [r4, #0xc] + str r6, [r4, #0x10] + mov r0, #0x0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + str r0, [r4, #0x20] + str r0, [r4, #0x24] + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + str r0, [r4, #0x30] + str r0, [r4, #0x34] + str r0, [r4, #0x38] + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + ldr r2, [r4, #0x0] + bl sub_020806F4 + cmp r0, #0x14 + bls _0207FD5A + b _02080090 +_0207FD5A: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r5, #0 + lsl r4, r2, #0x1 + lsl r0, r0, #0x2 + lsl r4, r5, #0x2 + lsl r0, r3, #0x3 + lsl r4, r0, #0x4 + lsl r0, r6, #0x4 + lsl r4, r3, #0x5 + lsl r0, r1, #0x6 + lsl r4, r6, #0x6 + lsl r6, r2, #0x7 + lsl r0, r7, #0x7 + lsl r2, r3, #0x8 + lsl r4, r7, #0x8 + lsl r6, r3, #0x9 + lsl r0, r0, #0xa + lsl r4, r5, #0xa + lsl r6, r0, #0xb + lsl r6, r3, #0xb + lsl r0, r7, #0xb + lsl r0, r2, #0xc + mov r0, #0x1 + str r0, [r4, #0x14] + add r0, r4, #0x0 + bl sub_020800E0 + mov r0, #0x2 + str r0, [r4, #0x1c] + add r0, r4, #0x0 + mov r1, #0x31 + bl sub_02080108 + mov r0, #0x6 + str r0, [r4, #0x24] + add r0, r4, #0x0 + bl sub_0208048C + mov r0, #0x7 + str r0, [r4, #0x2c] + add r0, r4, #0x0 + bl sub_02080678 + b _02080090 +_0207FDBC: + .byte 0x01, 0x20, 0x60, 0x61 + .byte 0x20, 0x1C, 0x00, 0xF0, 0x8D, 0xF9, 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x32, 0x21, 0x00, 0xF0 + .byte 0x9B, 0xF9, 0x06, 0x20, 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0x58, 0xFB, 0x07, 0x20, 0xE0, 0x62 + .byte 0x20, 0x1C, 0x00, 0xF0, 0x49, 0xFC, 0x53, 0xE1, 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x77, 0xF9, 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x33, 0x21, 0x00, 0xF0, 0x85, 0xF9, 0x06, 0x20 + .byte 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0x42, 0xFB, 0x07, 0x20, 0xE0, 0x62, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x33, 0xFC, 0x3D, 0xE1, 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0, 0x61, 0xF9, 0x02, 0x20 + .byte 0xE0, 0x61, 0x20, 0x1C, 0x34, 0x21, 0x00, 0xF0, 0x6F, 0xF9, 0x08, 0x20, 0x60, 0x62, 0x20, 0x1C + .byte 0x00, 0xF0, 0x2C, 0xFB, 0x09, 0x20, 0xE0, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0x1D, 0xFC, 0x27, 0xE1 + .byte 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0, 0x4B, 0xF9, 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C + .byte 0x35, 0x21, 0x00, 0xF0, 0x59, 0xF9, 0x08, 0x20, 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0x16, 0xFB + .byte 0x09, 0x20, 0xE0, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0x07, 0xFC, 0x11, 0xE1, 0x01, 0x20, 0x60, 0x61 + .byte 0x20, 0x1C, 0x00, 0xF0, 0x35, 0xF9, 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x36, 0x21, 0x00, 0xF0 + .byte 0x43, 0xF9, 0x08, 0x20, 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0x00, 0xFB, 0x09, 0x20, 0xE0, 0x62 + .byte 0x20, 0x1C, 0x00, 0xF0, 0xF1, 0xFB, 0xFB, 0xE0, 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x1F, 0xF9, 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x37, 0x21, 0x00, 0xF0, 0x2D, 0xF9, 0x08, 0x20 + .byte 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0xEA, 0xFA, 0x09, 0x20, 0xE0, 0x62, 0x20, 0x1C, 0x00, 0xF0 + .byte 0xDB, 0xFB, 0xE5, 0xE0, 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0, 0x09, 0xF9, 0x02, 0x20 + .byte 0xE0, 0x61, 0x20, 0x1C, 0x38, 0x21, 0x00, 0xF0, 0x17, 0xF9, 0x07, 0x20, 0x60, 0x62, 0x20, 0x1C + .byte 0x00, 0xF0, 0xD4, 0xFA, 0x08, 0x20, 0xE0, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0xC5, 0xFB, 0xCF, 0xE0 + .byte 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0, 0xF3, 0xF8, 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C + .byte 0x39, 0x21, 0x00, 0xF0, 0x01, 0xF9, 0x07, 0x20, 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0xBE, 0xFA + .byte 0x08, 0x20, 0xE0, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0xAF, 0xFB, 0xB9, 0xE0, 0x01, 0x20, 0x60, 0x61 + .byte 0x20, 0x1C, 0x00, 0xF0, 0xDD, 0xF8, 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x3A, 0x21, 0x00, 0xF0 + .byte 0xEB, 0xF8, 0x09, 0x20, 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0xA8, 0xFA, 0xA8, 0xE0, 0x01, 0x20 + .byte 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0, 0xCC, 0xF8, 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x3B, 0x21 + .byte 0x00, 0xF0, 0xDA, 0xF8, 0x09, 0x20, 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0x97, 0xFA, 0x97, 0xE0 + .byte 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0, 0xBB, 0xF8, 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C + .byte 0x3C, 0x21, 0x00, 0xF0, 0xC9, 0xF8, 0x09, 0x20, 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0x86, 0xFA + .byte 0x86, 0xE0, 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0, 0xAA, 0xF8, 0x02, 0x20, 0xE0, 0x61 + .byte 0x20, 0x1C, 0x3D, 0x21, 0x00, 0xF0, 0xB8, 0xF8, 0x09, 0x20, 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x75, 0xFA, 0x75, 0xE0, 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0, 0x99, 0xF8, 0x02, 0x20 + .byte 0xE0, 0x61, 0x20, 0x1C, 0x3E, 0x21, 0x00, 0xF0, 0xA7, 0xF8, 0x09, 0x20, 0x60, 0x62, 0x20, 0x1C + .byte 0x00, 0xF0, 0x64, 0xFA, 0x64, 0xE0, 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0, 0x88, 0xF8 + .byte 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x3F, 0x21, 0x00, 0xF0, 0x96, 0xF8, 0x09, 0x20, 0x60, 0x62 + .byte 0x20, 0x1C, 0x00, 0xF0, 0x53, 0xFA, 0x53, 0xE0, 0x01, 0x20, 0x60, 0x61, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x77, 0xF8, 0x02, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x40, 0x21, 0x00, 0xF0, 0x15, 0xF9, 0x06, 0x20 + .byte 0x60, 0x62, 0x20, 0x1C, 0x00, 0xF0, 0x42, 0xFA, 0x07, 0x20, 0xE0, 0x62, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x33, 0xFB, 0x3D, 0xE0, 0x01, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x65, 0x21, 0x00, 0x22, 0x00, 0xF0 + .byte 0xB1, 0xF9, 0x06, 0x20, 0x60, 0x63, 0x20, 0x1C, 0x00, 0xF0, 0x44, 0xFB, 0x30, 0xE0, 0x01, 0x22 + .byte 0x20, 0x1C, 0x66, 0x21, 0xE2, 0x61, 0x00, 0xF0, 0xA5, 0xF9, 0x06, 0x20, 0x60, 0x63, 0x20, 0x1C + .byte 0x00, 0xF0, 0x38, 0xFB, 0x24, 0xE0, 0x01, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x67, 0x21, 0x00, 0x22 + .byte 0x00, 0xF0, 0x98, 0xF9, 0x06, 0x20, 0x60, 0x63, 0x20, 0x1C, 0x00, 0xF0, 0x2B, 0xFB, 0x17, 0xE0 + .byte 0x01, 0x22, 0x20, 0x1C, 0x67, 0x21, 0xE2, 0x61, 0x00, 0xF0, 0x8C, 0xF9, 0x06, 0x20, 0x60, 0x63 + .byte 0x20, 0x1C, 0x00, 0xF0, 0x1F, 0xFB, 0x0B, 0xE0, 0x01, 0x20, 0xE0, 0x61, 0x20, 0x1C, 0x68, 0x21 + .byte 0x00, 0x22, 0x00, 0xF0, 0x7F, 0xF9, 0x06, 0x20, 0x60, 0x63, 0x20, 0x1C, 0x00, 0xF0, 0x12, 0xFB +_02080090: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02080094 +sub_02080094: ; 0x02080094 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _020800A2 + bl sub_02016A18 +_020800A2: + ldr r0, [r4, #0x20] + cmp r0, #0x0 + beq _020800AC + bl sub_02016A18 +_020800AC: + ldr r0, [r4, #0x28] + cmp r0, #0x0 + beq _020800B6 + bl sub_02016A18 +_020800B6: + ldr r0, [r4, #0x30] + cmp r0, #0x0 + beq _020800C0 + bl sub_02016A18 +_020800C0: + ldr r0, [r4, #0x38] + cmp r0, #0x0 + beq _020800CA + bl sub_02016A18 +_020800CA: + ldr r0, [r4, #0x8] + bl sub_0200AB18 + ldr r0, [r4, #0x4] + bl sub_0200A8B8 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020800E0 +sub_020800E0: ; 0x020800E0 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl sub_02068854 + add r4, r0, #0x0 + cmp r4, #0x18 + bgt _02080106 + ldr r1, [r5, #0x0] + mov r0, #0x48 + bl sub_020219F4 + str r0, [r5, #0x18] + add r4, #0x18 + ldr r0, [r5, #0x4] + ldr r2, [r5, #0x18] + add r1, r4, #0x0 + bl sub_0200A8E0 +_02080106: + pop {r3-r5, pc} + + thumb_func_start sub_02080108 +sub_02080108: ; 0x02080108 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0x9 + ldr r1, [r5, #0x0] + lsl r0, r0, #0x6 + bl sub_020219F4 + add r4, r0, #0x0 + mov r0, #0x9 + ldr r1, [r5, #0x0] + lsl r0, r0, #0x6 + bl sub_020219F4 + str r0, [r5, #0x20] + ldr r0, [r5, #0x4] + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_0200A8E0 + ldr r0, [r5, #0xc] + mov r1, #0x94 + mov r2, #0x0 + bl sub_020671BC + mov r3, #0x2 + add r2, r0, #0x0 + str r3, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r5, #0x8] + mov r1, #0x0 + bl sub_0200AD38 + ldr r0, [r5, #0xc] + mov r1, #0x95 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + ldr r0, [r5, #0x8] + mov r1, #0x1 + bl sub_0200B764 + ldr r0, [r5, #0xc] + mov r1, #0x96 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r1, #0x2 + ldr r0, [r5, #0x8] + add r3, r1, #0x0 + bl sub_0200AD38 + ldr r0, [r5, #0xc] + mov r1, #0x9b + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r1, #0x3 + ldr r0, [r5, #0x8] + add r3, r1, #0x0 + bl sub_0200AD38 + ldr r0, [r5, #0xc] + mov r1, #0x98 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + ldr r0, [r5, #0x8] + mov r1, #0x4 + bl sub_0200B59C + ldr r0, [r5, #0xc] + mov r1, #0x91 + mov r2, #0x0 + bl sub_020671BC + mov r3, #0x2 + add r2, r0, #0x0 + str r3, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r5, #0x8] + mov r1, #0x5 + bl sub_0200AD38 + ldr r0, [r5, #0xc] + mov r1, #0x92 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + ldr r0, [r5, #0x8] + mov r1, #0x6 + bl sub_0200B764 + ldr r0, [r5, #0xc] + mov r1, #0x93 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r5, #0x8] + mov r1, #0x7 + mov r3, #0x2 + bl sub_0200AD38 + ldr r0, [r5, #0xc] + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + ldr r0, [r5, #0x8] + mov r1, #0x8 + bl sub_0200B59C + ldr r0, [r5, #0x8] + ldr r1, [r5, #0x20] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02080228 +sub_02080228: ; 0x02080228 + push {r4-r6, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0x12 + ldr r1, [r4, #0x0] + lsl r0, r0, #0x4 + bl sub_020219F4 + add r5, r0, #0x0 + mov r0, #0x12 + ldr r1, [r4, #0x0] + lsl r0, r0, #0x4 + bl sub_020219F4 + str r0, [r4, #0x20] + ldr r0, [r4, #0x4] + add r1, r6, #0x0 + add r2, r5, #0x0 + bl sub_0200A8E0 + ldr r0, [r4, #0xc] + mov r1, #0x94 + mov r2, #0x0 + bl sub_020671BC + mov r3, #0x2 + add r2, r0, #0x0 + str r3, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r4, #0x8] + mov r1, #0x0 + bl sub_0200AD38 + ldr r0, [r4, #0xc] + mov r1, #0x95 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + ldr r0, [r4, #0x8] + mov r1, #0x1 + bl sub_0200B764 + ldr r0, [r4, #0xc] + mov r1, #0x96 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r1, #0x2 + ldr r0, [r4, #0x8] + add r3, r1, #0x0 + bl sub_0200AD38 + ldr r0, [r4, #0xc] + mov r1, #0x9b + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r1, #0x3 + ldr r0, [r4, #0x8] + add r3, r1, #0x0 + bl sub_0200AD38 + ldr r0, [r4, #0xc] + mov r1, #0x79 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0xf + bhi _020802F8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r3, #0 + lsl r2, r3, #0x1 + lsl r2, r3, #0x1 + lsl r2, r3, #0x1 + lsl r2, r6, #0 + lsl r2, r6, #0 + lsl r6, r3, #0 + lsl r6, r0, #0x1 + lsl r6, r0, #0x1 + lsl r6, r3, #0 + lsl r2, r0, #0x2 + lsl r2, r0, #0x2 + lsl r6, r3, #0 + lsl r6, r3, #0 + lsl r6, r3, #0 + lsl r6, r5, #0x1 +_020802F8: + mov r0, #0x1 + mov r1, #0x7 + bl sub_02015CF8 + add r2, r0, #0x0 + ldr r0, [r4, #0x8] + mov r1, #0x4 + bl sub_0200B59C + b _0208036E +_0208030C: + .byte 0x01, 0x20, 0x03, 0x21 + .byte 0x95, 0xF7, 0xF2, 0xFC, 0x02, 0x1C, 0xA0, 0x68, 0x04, 0x21, 0x8B, 0xF7, 0x3F, 0xF9, 0x26, 0xE0 + .byte 0x01, 0x20, 0x04, 0x21, 0x95, 0xF7, 0xE8, 0xFC, 0x02, 0x1C, 0xA0, 0x68, 0x04, 0x21, 0x8B, 0xF7 + .byte 0x35, 0xF9, 0x1C, 0xE0, 0x01, 0x20, 0x05, 0x21, 0x95, 0xF7, 0xDE, 0xFC, 0x02, 0x1C, 0xA0, 0x68 + .byte 0x04, 0x21, 0x8B, 0xF7, 0x2B, 0xF9, 0x12, 0xE0, 0x01, 0x20, 0x08, 0x21, 0x95, 0xF7, 0xD4, 0xFC + .byte 0x02, 0x1C, 0xA0, 0x68, 0x04, 0x21, 0x8B, 0xF7, 0x21, 0xF9, 0x08, 0xE0, 0x01, 0x20, 0x07, 0x21 + .byte 0x95, 0xF7, 0xCA, 0xFC, 0x02, 0x1C, 0xA0, 0x68, 0x04, 0x21, 0x8B, 0xF7, 0x17, 0xF9 +_0208036E: + ldr r0, [r4, #0x8] + ldr r1, [r4, #0x20] + add r2, r5, #0x0 + bl sub_0200B7B8 + add r0, r5, #0x0 + bl sub_02021A20 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02080384 +sub_02080384: ; 0x02080384 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r7, r1, #0x0 + mov r0, #0x5a + ldr r1, [r5, #0x0] + lsl r0, r0, #0x2 + add r6, r2, #0x0 + bl sub_020219F4 + add r4, r0, #0x0 + mov r0, #0x5a + ldr r1, [r5, #0x0] + lsl r0, r0, #0x2 + bl sub_020219F4 + str r0, [r5, #0x20] + ldr r0, [r5, #0x4] + add r1, r7, #0x0 + add r2, r4, #0x0 + bl sub_0200A8E0 + cmp r6, #0x0 + ldr r0, [r5, #0xc] + bne _02080418 + mov r1, #0x91 + mov r2, #0x0 + bl sub_020671BC + mov r3, #0x2 + add r2, r0, #0x0 + str r3, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r5, #0x8] + mov r1, #0x5 + bl sub_0200AD38 + ldr r0, [r5, #0xc] + mov r1, #0x92 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + ldr r0, [r5, #0x8] + mov r1, #0x6 + bl sub_0200B764 + ldr r0, [r5, #0xc] + mov r1, #0x93 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r5, #0x8] + mov r1, #0x7 + mov r3, #0x2 + bl sub_0200AD38 + ldr r0, [r5, #0xc] + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + ldr r0, [r5, #0x8] + mov r1, #0x8 + bl sub_0200B59C + b _02080478 +_02080418: + mov r1, #0x94 + mov r2, #0x0 + bl sub_020671BC + mov r3, #0x2 + add r2, r0, #0x0 + str r3, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r5, #0x8] + mov r1, #0x5 + bl sub_0200AD38 + ldr r0, [r5, #0xc] + mov r1, #0x95 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + ldr r0, [r5, #0x8] + mov r1, #0x6 + bl sub_0200B764 + ldr r0, [r5, #0xc] + mov r1, #0x96 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, [r5, #0x8] + mov r1, #0x7 + mov r3, #0x2 + bl sub_0200AD38 + ldr r0, [r5, #0xc] + mov r1, #0x98 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + ldr r0, [r5, #0x8] + mov r1, #0x8 + bl sub_0200B59C +_02080478: + ldr r0, [r5, #0x8] + ldr r1, [r5, #0x20] + add r2, r4, #0x0 + bl sub_0200B7B8 + add r0, r4, #0x0 + bl sub_02021A20 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_0208048C +sub_0208048C: ; 0x0208048C + push {r3-r7, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + mov r0, #0x48 + bl sub_020219F4 + str r0, [r4, #0x28] + ldr r0, [r4, #0xc] + mov r1, #0x46 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0xc] + ldr r0, [r4, #0xc] + mov r1, #0x47 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x8] + ldr r0, [r4, #0xc] + mov r1, #0x48 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x4] + ldr r0, [r4, #0xc] + mov r1, #0x49 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x0] + ldr r0, [r4, #0xc] + mov r1, #0x4a + mov r2, #0x0 + bl sub_020671BC + add r7, r0, #0x0 + ldr r0, [r4, #0xc] + mov r1, #0x4b + mov r2, #0x0 + bl sub_020671BC + add r6, r0, #0x0 + mov r1, #0x0 + ldr r0, [r4, #0xc] + add r2, r1, #0x0 + bl sub_020671BC + mov r1, #0x6 + blx sub_020EBE8C + cmp r1, #0x5 + bhi _02080510 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r1, #0 + lsl r2, r0, #0x1 + lsl r0, r7, #0x1 + lsl r6, r5, #0x2 + lsl r4, r4, #0x3 + lsl r2, r3, #0x4 +_02080510: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x8] + add r2, r0, #0x0 + mov r5, #0x0 + cmp r2, r1 + bge _02080520 + mov r5, #0x1 + add r0, r1, #0x0 +_02080520: + ldr r1, [sp, #0x4] + cmp r0, r1 + bge _0208052A + mov r5, #0x2 + add r0, r1, #0x0 +_0208052A: + ldr r1, [sp, #0x0] + cmp r0, r1 + bge _02080534 + mov r5, #0x3 + add r0, r1, #0x0 +_02080534: + cmp r0, r7 + bge _0208053C + mov r5, #0x4 + add r0, r7, #0x0 +_0208053C: + cmp r0, r6 + blt _02080542 + b _02080654 +_02080542: + mov r5, #0x5 + add r0, r6, #0x0 + b _02080654 +_02080548: + .byte 0x02, 0x98, 0x01, 0x99, 0x02, 0x1C, 0x01, 0x25 + .byte 0x8A, 0x42, 0x01, 0xDA, 0x02, 0x25, 0x08, 0x1C, 0x00, 0x99, 0x88, 0x42, 0x01, 0xDA, 0x03, 0x25 + .byte 0x08, 0x1C, 0xB8, 0x42, 0x01, 0xDA, 0x04, 0x25, 0x38, 0x1C, 0xB0, 0x42, 0x01, 0xDA, 0x05, 0x25 + .byte 0x30, 0x1C, 0x03, 0x99, 0x88, 0x42, 0x6D, 0xDA, 0x00, 0x25, 0x08, 0x1C, 0x6A, 0xE0, 0x01, 0x98 + .byte 0x00, 0x99, 0x02, 0x1C, 0x02, 0x25, 0x8A, 0x42, 0x01, 0xDA, 0x03, 0x25, 0x08, 0x1C, 0xB8, 0x42 + .byte 0x01, 0xDA, 0x04, 0x25, 0x38, 0x1C, 0xB0, 0x42, 0x01, 0xDA, 0x05, 0x25, 0x30, 0x1C, 0x03, 0x99 + .byte 0x88, 0x42, 0x01, 0xDA, 0x00, 0x25, 0x08, 0x1C, 0x02, 0x99, 0x88, 0x42, 0x52, 0xDA, 0x01, 0x25 + .byte 0x08, 0x1C, 0x4F, 0xE0, 0x00, 0x98, 0x03, 0x25, 0x01, 0x1C, 0xB9, 0x42, 0x01, 0xDA, 0x04, 0x25 + .byte 0x38, 0x1C, 0xB0, 0x42, 0x01, 0xDA, 0x05, 0x25, 0x30, 0x1C, 0x03, 0x99, 0x88, 0x42, 0x01, 0xDA + .byte 0x00, 0x25, 0x08, 0x1C, 0x02, 0x99, 0x88, 0x42, 0x01, 0xDA, 0x01, 0x25, 0x08, 0x1C, 0x01, 0x99 + .byte 0x88, 0x42, 0x37, 0xDA, 0x02, 0x25, 0x08, 0x1C, 0x34, 0xE0, 0x04, 0x25, 0x38, 0x1C, 0xB7, 0x42 + .byte 0x01, 0xDA, 0x05, 0x25, 0x30, 0x1C, 0x03, 0x99, 0x88, 0x42, 0x01, 0xDA, 0x00, 0x25, 0x08, 0x1C + .byte 0x02, 0x99, 0x88, 0x42, 0x01, 0xDA, 0x01, 0x25, 0x08, 0x1C, 0x01, 0x99, 0x88, 0x42, 0x01, 0xDA + .byte 0x02, 0x25, 0x08, 0x1C, 0x00, 0x99, 0x88, 0x42, 0x1C, 0xDA, 0x03, 0x25, 0x08, 0x1C, 0x19, 0xE0 + .byte 0x03, 0x99, 0x05, 0x25, 0x30, 0x1C, 0x8E, 0x42, 0x01, 0xDA, 0x00, 0x25, 0x08, 0x1C, 0x02, 0x99 + .byte 0x88, 0x42, 0x01, 0xDA, 0x01, 0x25, 0x08, 0x1C, 0x01, 0x99, 0x88, 0x42, 0x01, 0xDA, 0x02, 0x25 + .byte 0x08, 0x1C, 0x00, 0x99, 0x88, 0x42, 0x01, 0xDA, 0x03, 0x25, 0x08, 0x1C, 0xB8, 0x42, 0x01, 0xDA + .byte 0x04, 0x25, 0x38, 0x1C +_02080654: + mov r1, #0x5 + blx sub_020EBC80 + mov r2, #0xa + add r6, r5, #0x0 + mul r6, r2 + ldr r3, _02080674 ; =0x020FBB54 + lsl r2, r1, #0x1 + add r1, r3, r6 + ldrh r1, [r2, r1] + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x28] + bl sub_0200A8E0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02080674: .word 0x020FBB54 + + thumb_func_start sub_02080678 +sub_02080678: ; 0x02080678 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r1, [r5, #0x0] + mov r0, #0x48 + bl sub_020219F4 + mov r6, #0x0 + str r0, [r5, #0x30] + add r4, r6, #0x0 +_0208068A: + ldr r0, [r5, #0xc] + add r1, r4, #0x0 + bl sub_02069BC8 + cmp r0, #0x1 + bne _02080698 + add r6, r4, #0x1 +_02080698: + add r4, r4, #0x1 + cmp r4, #0x5 + blt _0208068A + ldr r1, _020806B0 ; =0x020FBB48 + lsl r2, r6, #0x1 + ldrh r1, [r1, r2] + ldr r0, [r5, #0x4] + ldr r2, [r5, #0x30] + bl sub_0200A8E0 + pop {r4-r6, pc} + nop +_020806B0: .word 0x020FBB48 + + thumb_func_start sub_020806B4 +sub_020806B4: ; 0x020806B4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r1, #0x9 + mov r2, #0x0 + bl sub_020671BC + add r4, r0, #0x0 + mov r0, #0x12 + ldr r1, [r5, #0x0] + lsl r0, r0, #0x4 + bl sub_020219F4 + str r0, [r5, #0x38] + cmp r4, #0x5 + bgt _020806D8 + mov r1, #0x69 + b _020806EA +_020806D8: + cmp r4, #0xa + bgt _020806E0 + mov r1, #0x6a + b _020806EA +_020806E0: + cmp r4, #0x28 + bgt _020806E8 + mov r1, #0x6b + b _020806EA +_020806E8: + mov r1, #0x6c +_020806EA: + ldr r0, [r5, #0x4] + ldr r2, [r5, #0x38] + bl sub_0200A8E0 + pop {r3-r5, pc} + + thumb_func_start sub_020806F4 +sub_020806F4: ; 0x020806F4 + push {r4-r6, lr} + add r4, r1, #0x0 + mov r1, #0x4c + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02080708 + b _0208084E +_02080708: + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _02080774 + add r0, r5, #0x0 + mov r1, #0x98 + mov r2, #0x0 + bl sub_020671BC + add r6, r0, #0x0 + mov r0, #0x0 + mov r1, #0x37 + bl sub_02015CF8 + cmp r6, r0 + bne _02080732 + mov r0, #0xf + pop {r4-r6, pc} +_02080732: + add r0, r5, #0x0 + mov r1, #0x6e + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x1 + bne _0208074C + cmp r4, #0x1 + bne _02080748 + mov r0, #0x7 + pop {r4-r6, pc} +_02080748: + mov r0, #0x8 + pop {r4-r6, pc} +_0208074C: + add r0, r5, #0x0 + mov r1, #0x98 + mov r2, #0x0 + bl sub_020671BC + add r5, r0, #0x0 + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_02015CF8 + cmp r5, r0 + bne _02080768 + mov r0, #0x2 + pop {r4-r6, pc} +_02080768: + cmp r4, #0x1 + bne _02080770 + mov r0, #0x0 + pop {r4-r6, pc} +_02080770: + mov r0, #0x1 + pop {r4-r6, pc} +_02080774: + add r0, r5, #0x0 + mov r1, #0x6e + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x1 + bne _020807D6 + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + add r6, r0, #0x0 + mov r0, #0x1 + mov r1, #0x2 + bl sub_02015CF8 + cmp r6, r0 + bne _020807A6 + cmp r4, #0x1 + bne _020807A2 + mov r0, #0xd + pop {r4-r6, pc} +_020807A2: + mov r0, #0xe + pop {r4-r6, pc} +_020807A6: + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + add r5, r0, #0x0 + mov r0, #0x2 + mov r1, #0x1 + bl sub_02015CF8 + cmp r5, r0 + bne _020807CA + cmp r4, #0x1 + bne _020807C6 + mov r0, #0xb + pop {r4-r6, pc} +_020807C6: + mov r0, #0xc + pop {r4-r6, pc} +_020807CA: + cmp r4, #0x1 + bne _020807D2 + mov r0, #0x9 + pop {r4-r6, pc} +_020807D2: + mov r0, #0xa + pop {r4-r6, pc} +_020807D6: + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + add r6, r0, #0x0 + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_02015CF8 + cmp r6, r0 + beq _02080836 + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + add r6, r0, #0x0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_02015CF8 + cmp r6, r0 + beq _02080836 + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + add r6, r0, #0x0 + mov r0, #0x1 + mov r1, #0x9 + bl sub_02015CF8 + cmp r6, r0 + beq _02080836 + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + add r5, r0, #0x0 + mov r0, #0x1 + mov r1, #0xa + bl sub_02015CF8 + cmp r5, r0 + bne _02080842 +_02080836: + cmp r4, #0x1 + bne _0208083E + mov r0, #0x5 + pop {r4-r6, pc} +_0208083E: + mov r0, #0x6 + pop {r4-r6, pc} +_02080842: + cmp r4, #0x1 + bne _0208084A + mov r0, #0x3 + pop {r4-r6, pc} +_0208084A: + mov r0, #0x4 + pop {r4-r6, pc} +_0208084E: + cmp r4, #0x1 + bne _02080884 + add r0, r5, #0x0 + mov r1, #0x6e + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x1 + bne _02080880 + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + add r4, r0, #0x0 + mov r0, #0x2 + mov r1, #0x1 + bl sub_02015CF8 + cmp r4, r0 + bne _0208087C + mov r0, #0x14 + pop {r4-r6, pc} +_0208087C: + mov r0, #0x12 + pop {r4-r6, pc} +_02080880: + mov r0, #0x10 + pop {r4-r6, pc} +_02080884: + add r0, r5, #0x0 + mov r1, #0x6e + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x1 + bne _02080896 + mov r0, #0x13 + pop {r4-r6, pc} +_02080896: + mov r0, #0x11 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0208089C +sub_0208089C: ; 0x0208089C + push {r3-r4, lr} + sub sp, #0x4 + ldr r4, [sp, #0x10] + str r4, [sp, #0x0] + bl sub_020808AC + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_020808AC +sub_020808AC: ; 0x020808AC + push {r3-r7, lr} + add r4, r0, #0x0 + add r7, r1, #0x0 + add r5, r3, #0x0 + ldr r6, [sp, #0x18] + cmp r2, #0x6 + bls _020808BC + b _02080AE0 +_020808BC: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r4, r1, #0 + lsl r0, r4, #0x1 + lsl r2, r5, #0x2 + lsl r2, r1, #0x3 + lsl r6, r4, #0x3 + lsl r6, r5, #0x5 + lsl r6, r1, #0x6 + mov r0, #0x1 + mov r1, #0x0 + bl sub_02015CF8 + cmp r5, r0 + ble _020808E4 + mov r5, #0x0 +_020808E4: + add r0, r4, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl sub_020672BC + cmp r0, #0x0 + bne _0208090C + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_02080BA8 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x1 + bl sub_02080B30 + add r0, r4, #0x0 + bl sub_02080C08 + b _0208091E +_0208090C: + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x0 + bl sub_02080B30 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02080BA8 +_0208091E: + add r0, r4, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl sub_02080AE4 + pop {r3-r7, pc} +_0208092A: + .byte 0x4C, 0x21, 0x00, 0x22, 0xE6, 0xF7 + .byte 0xC5, 0xFC, 0x00, 0x28, 0x10, 0xD1, 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0, 0x35, 0xF9, 0x01, 0x20 + .byte 0x01, 0x1C, 0x95, 0xF7, 0xD9, 0xF9, 0x01, 0x1C, 0x20, 0x1C, 0x01, 0x22, 0x00, 0xF0, 0xF0, 0xF8 + .byte 0x20, 0x1C, 0x00, 0xF0, 0x59, 0xF9, 0xF8, 0xBD, 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0, 0x24, 0xF9 + .byte 0x01, 0x20, 0x01, 0x1C, 0x95, 0xF7, 0xC8, 0xF9, 0x01, 0x1C, 0x20, 0x1C, 0x01, 0x22, 0x00, 0xF0 + .byte 0xDF, 0xF8, 0xF8, 0xBD, 0x00, 0x21, 0x00, 0xF0, 0x17, 0xF9, 0x00, 0x20, 0x37, 0x21, 0x95, 0xF7 + .byte 0xBB, 0xF9, 0x01, 0x1C, 0x20, 0x1C, 0x01, 0x22, 0x00, 0xF0, 0xD2, 0xF8, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x3B, 0xF9, 0xF8, 0xBD, 0x29, 0x1C, 0x00, 0x22, 0x00, 0xF0, 0xCA, 0xF8, 0x20, 0x1C, 0x01, 0x21 + .byte 0x00, 0xF0, 0x02, 0xF9, 0x20, 0x1C, 0x39, 0x1C, 0x32, 0x1C, 0x00, 0xF0, 0x9B, 0xF8, 0xF8, 0xBD + .byte 0x32, 0x1C, 0xE9, 0xF7, 0xFB, 0xFF, 0x01, 0x28, 0x1D, 0xD1, 0x20, 0x1C, 0x4C, 0x21, 0x00, 0x22 + .byte 0xE6, 0xF7, 0x7C, 0xFC, 0x00, 0x28, 0x0C, 0xD1, 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0, 0xEC, 0xF8 + .byte 0x20, 0x1C, 0x29, 0x1C, 0x01, 0x22, 0x00, 0xF0, 0xAB, 0xF8, 0x20, 0x1C, 0x00, 0xF0, 0x14, 0xF9 + .byte 0x26, 0xE0, 0x20, 0x1C, 0x29, 0x1C, 0x00, 0x22, 0x00, 0xF0, 0xA2, 0xF8, 0x20, 0x1C, 0x01, 0x21 + .byte 0x00, 0xF0, 0xDA, 0xF8, 0x1C, 0xE0, 0x20, 0x1C, 0x4C, 0x21, 0x00, 0x22, 0xE6, 0xF7, 0x5E, 0xFC + .byte 0x00, 0x28, 0x0C, 0xD1, 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0, 0xCE, 0xF8, 0x20, 0x1C, 0x29, 0x1C + .byte 0x01, 0x22, 0x00, 0xF0, 0x8D, 0xF8, 0x20, 0x1C, 0x00, 0xF0, 0xF6, 0xF8, 0x08, 0xE0, 0x20, 0x1C + .byte 0x00, 0x21, 0x00, 0xF0, 0xC1, 0xF8, 0x20, 0x1C, 0x29, 0x1C, 0x01, 0x22, 0x00, 0xF0, 0x80, 0xF8 + .byte 0x20, 0x1C, 0x00, 0xF0, 0xF9, 0xF8, 0xF8, 0xBD, 0x4C, 0x21, 0x00, 0x22, 0xE6, 0xF7, 0x3E, 0xFC + .byte 0x00, 0x28, 0x4D, 0xD0, 0x01, 0x20, 0x02, 0x21, 0x95, 0xF7, 0x56, 0xF9, 0x01, 0x1C, 0x20, 0x1C + .byte 0x01, 0x22, 0x00, 0xF0, 0x6D, 0xF8, 0xF8, 0xBD, 0x01, 0x20, 0x00, 0x21, 0x95, 0xF7, 0x4C, 0xF9 + .byte 0x85, 0x42, 0x00, 0xDD, 0x00, 0x25, 0x20, 0x1C, 0x39, 0x1C, 0x32, 0x1C, 0xE9, 0xF7, 0x9E, 0xFF + .byte 0x00, 0x28, 0x2B, 0xD1, 0x20, 0x1C, 0x98, 0x21, 0x00, 0x22, 0xE6, 0xF7, 0x1F, 0xFC, 0x00, 0x90 + .byte 0x20, 0x1C, 0x97, 0x21, 0x00, 0xAA, 0xE6, 0xF7, 0x6B, 0xFF, 0x20, 0x1C, 0x94, 0x21, 0x00, 0x22 + .byte 0xE6, 0xF7, 0x14, 0xFC, 0x00, 0x90, 0x20, 0x1C, 0x91, 0x21, 0x00, 0xAA, 0xE6, 0xF7, 0x60, 0xFF + .byte 0x20, 0x1C, 0x95, 0x21, 0x00, 0x22, 0xE6, 0xF7, 0x09, 0xFC, 0x00, 0x90, 0x20, 0x1C, 0x92, 0x21 + .byte 0x00, 0xAA, 0xE6, 0xF7, 0x55, 0xFF, 0x20, 0x1C, 0x96, 0x21, 0x00, 0x22, 0xE6, 0xF7, 0xFE, 0xFB + .byte 0x00, 0x90, 0x20, 0x1C, 0x93, 0x21, 0x00, 0xAA, 0xE6, 0xF7, 0x4A, 0xFF, 0x20, 0x1C, 0x29, 0x1C + .byte 0x01, 0x22, 0x00, 0xF0, 0x2D, 0xF8, 0x20, 0x1C, 0x39, 0x1C, 0x32, 0x1C, 0x00, 0xF0, 0x02, 0xF8 +_02080AE0: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02080AE4 +sub_02080AE4: ; 0x02080AE4 + push {r4-r6, lr} + sub sp, #0x8 + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r6, r2, #0x0 + bl sub_020239BC + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl sub_020239CC + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_020239A0 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x7 + add r2, sp, #0x4 + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x9c + add r2, sp, #0x0 + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x90 + add r2, r4, #0x0 + bl sub_02067960 + add r0, r4, #0x0 + bl sub_02021A20 + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start sub_02080B30 +sub_02080B30: ; 0x02080B30 + push {r0-r3} + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r0, sp, #0x0 + add r4, r2, #0x0 + bl sub_020126B4 + cmp r4, #0x0 + add r2, sp, #0x24 + bne _02080B76 + add r0, r5, #0x0 + mov r1, #0x97 + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x91 + add r2, sp, #0x0 + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x92 + add r2, sp, #0x4 + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x93 + add r2, sp, #0x8 + bl sub_02067960 + add sp, #0x10 + pop {r3-r5} + pop {r3} + add sp, #0x10 + bx r3 +_02080B76: + add r0, r5, #0x0 + mov r1, #0x98 + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x94 + add r2, sp, #0x0 + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x95 + add r2, sp, #0x4 + bl sub_02067960 + add r0, r5, #0x0 + mov r1, #0x96 + add r2, sp, #0x8 + bl sub_02067960 + add sp, #0x10 + pop {r3-r5} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4 + + thumb_func_start sub_02080BA8 +sub_02080BA8: ; 0x02080BA8 + push {r3-r4, lr} + sub sp, #0x4 + mov r2, #0x0 + add r4, r0, #0x0 + str r2, [sp, #0x0] + cmp r1, #0x0 + add r2, sp, #0x0 + bne _02080BE0 + mov r1, #0x97 + bl sub_02067960 + add r0, r4, #0x0 + mov r1, #0x91 + add r2, sp, #0x0 + bl sub_02067960 + add r0, r4, #0x0 + mov r1, #0x92 + add r2, sp, #0x0 + bl sub_02067960 + add r0, r4, #0x0 + mov r1, #0x93 + add r2, sp, #0x0 + bl sub_02067960 + add sp, #0x4 + pop {r3-r4, pc} +_02080BE0: + mov r1, #0x98 + bl sub_02067960 + add r0, r4, #0x0 + mov r1, #0x94 + add r2, sp, #0x0 + bl sub_02067960 + add r0, r4, #0x0 + mov r1, #0x95 + add r2, sp, #0x0 + bl sub_02067960 + add r0, r4, #0x0 + mov r1, #0x96 + add r2, sp, #0x0 + bl sub_02067960 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_02080C08 +sub_02080C08: ; 0x02080C08 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020672BC + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0x9b + add r2, sp, #0x0 + bl sub_02067960 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02080C28 +sub_02080C28: ; 0x02080C28 + push {r3, lr} + mov r1, #0x1 + str r1, [sp, #0x0] + mov r1, #0x6e + add r2, sp, #0x0 + bl sub_02067960 + pop {r3, pc} + + thumb_func_start sub_02080C38 +sub_02080C38: ; 0x02080C38 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0xb + mov r1, #0x8 + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x8 + add r4, r0, #0x0 + blx sub_020CE34C + ldr r1, _02080C5C ; =sub_02080C60 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r3-r5, pc} + nop +_02080C5C: .word sub_02080C60 + 1 + + thumb_func_start sub_02080C60 +sub_02080C60: ; 0x02080C60 + push {r3-r7, lr} + sub sp, #0x28 + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0xe + bls _02080C7C + b _02080DE2 +_02080C7C: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r3, #0 + lsl r2, r5, #0 + lsl r4, r1, #0x2 + lsl r6, r3, #0x2 + lsl r4, r5, #0x2 + lsl r6, r7, #0x2 + lsl r2, r3, #0x3 + lsl r6, r5, #0x3 + lsl r0, r0, #0x4 + lsl r2, r2, #0x4 + lsl r4, r4, #0x4 + lsl r6, r6, #0x4 + lsl r4, r0, #0x5 + lsl r2, r1, #0x5 + lsl r4, r3, #0x5 + add r0, r5, #0x0 + bl sub_0204AF3C + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _02080DF2 +_02080CB4: + .byte 0xF0, 0x68, 0xEA, 0xF7, 0x31, 0xFF, 0x00, 0x21, 0xEA, 0xF7, 0x78, 0xFE + .byte 0x07, 0x1C, 0x30, 0x1C, 0xB6, 0xF7, 0x72, 0xFD, 0xA2, 0xF7, 0x14, 0xFE, 0x0B, 0x21, 0x00, 0x90 + .byte 0xA2, 0xF7, 0x66, 0xFE, 0x05, 0x1C, 0x00, 0x21, 0x01, 0xA8, 0x01, 0x70, 0x41, 0x70, 0x02, 0x21 + .byte 0x81, 0x70, 0x00, 0x98, 0x03, 0x97, 0x04, 0x95, 0x05, 0x90, 0xF0, 0x68, 0xA7, 0xF7, 0x9A, 0xF8 + .byte 0x06, 0x90, 0xF0, 0x68, 0xA2, 0xF7, 0x04, 0xFE, 0x07, 0x90, 0x01, 0xA8, 0x00, 0xF0, 0x8A, 0xFA + .byte 0x20, 0x60, 0x28, 0x1C, 0xA0, 0xF7, 0x8C, 0xFE, 0x20, 0x68, 0x01, 0xF0, 0x5B, 0xF8, 0x60, 0x68 + .byte 0x40, 0x1C, 0x60, 0x60, 0x6D, 0xE0, 0x20, 0x68, 0x01, 0xF0, 0xCE, 0xF8, 0x01, 0x28, 0x68, 0xD1 + .byte 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x64, 0xE0, 0x01, 0x20, 0xB0, 0xF7, 0x2D, 0xFC, 0x60, 0x68 + .byte 0x40, 0x1C, 0x60, 0x60, 0x5D, 0xE0, 0x01, 0x20, 0xB0, 0xF7, 0x4E, 0xFC, 0x01, 0x28, 0x58, 0xD1 + .byte 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x54, 0xE0, 0x20, 0x68, 0x00, 0xF0, 0x41, 0xFC, 0x23, 0x68 + .byte 0x29, 0x4A, 0x2A, 0x49, 0x9A, 0x58, 0x28, 0x1C, 0xC5, 0xF7, 0xD2, 0xFB, 0x60, 0x68, 0x40, 0x1C + .byte 0x60, 0x60, 0x46, 0xE0, 0x20, 0x68, 0x00, 0xF0, 0x7F, 0xFC, 0x20, 0x68, 0x01, 0xF0, 0xB2, 0xF8 + .byte 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x3C, 0xE0, 0x20, 0x68, 0x01, 0xF0, 0xA1, 0xF8, 0x01, 0x28 + .byte 0x37, 0xD1, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x33, 0xE0, 0x1D, 0x49, 0x22, 0x68, 0x28, 0x1C + .byte 0xC5, 0xF7, 0xB6, 0xFB, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x2A, 0xE0, 0x19, 0x49, 0x22, 0x68 + .byte 0x28, 0x1C, 0xC5, 0xF7, 0xAD, 0xFB, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x21, 0xE0, 0x16, 0x49 + .byte 0x22, 0x68, 0x28, 0x1C, 0xC5, 0xF7, 0xA4, 0xFB, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x18, 0xE0 + .byte 0x20, 0x68, 0x00, 0xF0, 0x91, 0xFB, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x11, 0xE0, 0x40, 0x1C + .byte 0x60, 0x60, 0x0E, 0xE0, 0x28, 0x1C, 0xCA, 0xF7, 0xD5, 0xF8, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60 + .byte 0x07, 0xE0 +_02080DE2: + bl sub_02020C2C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x28 + mov r0, #0x1 + pop {r3-r7, pc} +_02080DF2: + mov r0, #0x0 + add sp, #0x28 + pop {r3-r7, pc} +_02080DF8: + .byte 0xB8, 0x19, 0x00, 0x00, 0xD8, 0xBB, 0x0F, 0x02 + .byte 0xC8, 0xBB, 0x0F, 0x02, 0xF8, 0xBB, 0x0F, 0x02, 0xE8, 0xBB, 0x0F, 0x02 + + thumb_func_start sub_02080E0C +sub_02080E0C: ; 0x02080E0C + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + mov r1, #0x8 + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x8 + add r4, r0, #0x0 + blx sub_020CE34C + ldr r0, _02080E50 ; =0x00000121 + str r6, [r4, #0x0] + ldrb r0, [r6, r0] + cmp r0, #0x0 + beq _02080E36 + cmp r0, #0x1 + beq _02080E36 + cmp r0, #0x2 + bne _02080E42 +_02080E36: + ldr r1, _02080E54 ; =sub_02080E5C + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r4-r6, pc} +_02080E42: + ldr r1, _02080E58 ; =sub_02081000 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r4-r6, pc} + nop +_02080E50: .word 0x00000121 +_02080E54: .word sub_02080E5C + 1 +_02080E58: .word sub_02081000 + 1 + + thumb_func_start sub_02080E5C +sub_02080E5C: ; 0x02080E5C + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0xd + bls _02080E74 + b _02080FCE +_02080E74: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r3, #0 + lsl r0, r5, #0 + lsl r4, r0, #0x1 + lsl r4, r3, #0x1 + lsl r6, r7, #0x1 + lsl r2, r3, #0x2 + lsl r4, r7, #0x2 + lsl r6, r2, #0x3 + lsl r0, r5, #0x3 + lsl r0, r1, #0x4 + lsl r6, r4, #0x4 + lsl r0, r7, #0x4 + lsl r6, r7, #0x4 + lsl r0, r2, #0x5 + add r0, r5, #0x0 + bl sub_0204AF3C + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _02080FDC +_02080EAA: + .byte 0x20, 0x68, 0x4C, 0x49, 0x41, 0x5C + .byte 0x00, 0x29, 0x04, 0xD0, 0x01, 0xF0, 0x04, 0xF8, 0x01, 0x28, 0x00, 0xD0, 0x8E, 0xE0, 0x60, 0x68 + .byte 0x40, 0x1C, 0x60, 0x60, 0x8A, 0xE0, 0x21, 0x68, 0x45, 0x48, 0x08, 0x5C, 0x01, 0x28, 0x02, 0xD1 + .byte 0x00, 0x20, 0xB0, 0xF7, 0x59, 0xFB, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x7E, 0xE0, 0x22, 0x68 + .byte 0x3F, 0x49, 0x51, 0x5C, 0x01, 0x29, 0x08, 0xD1, 0x00, 0x20, 0xB0, 0xF7, 0x75, 0xFB, 0x01, 0x28 + .byte 0x74, 0xD1, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x70, 0xE0, 0x40, 0x1C, 0x60, 0x60, 0x6D, 0xE0 + .byte 0x20, 0x68, 0x00, 0xF0, 0x65, 0xFB, 0x23, 0x68, 0x36, 0x4A, 0x37, 0x49, 0x9A, 0x58, 0x28, 0x1C + .byte 0xC5, 0xF7, 0xF6, 0xFA, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x5F, 0xE0, 0x20, 0x68, 0x00, 0xF0 + .byte 0xA3, 0xFB, 0x20, 0x68, 0x2E, 0x49, 0x41, 0x5C, 0x01, 0x29, 0x05, 0xD1, 0x00, 0xF0, 0xD2, 0xFF + .byte 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x51, 0xE0, 0x06, 0x20, 0x60, 0x60, 0x4E, 0xE0, 0x20, 0x68 + .byte 0x27, 0x49, 0x41, 0x5C, 0x00, 0x29, 0x03, 0xD0, 0x00, 0xF0, 0xBA, 0xFF, 0x01, 0x28, 0x45, 0xD1 + .byte 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x41, 0xE0, 0x24, 0x49, 0x22, 0x68, 0x28, 0x1C, 0xC5, 0xF7 + .byte 0xCF, 0xFA, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x38, 0xE0, 0x22, 0x68, 0x20, 0x48, 0x10, 0x5C + .byte 0xFF, 0x30, 0x00, 0x06, 0x00, 0x0E, 0x01, 0x28, 0x03, 0xD8, 0x1E, 0x49, 0x28, 0x1C, 0xC5, 0xF7 + .byte 0xBF, 0xFA, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x28, 0xE0, 0x22, 0x68, 0x18, 0x48, 0x10, 0x5C + .byte 0x00, 0x28, 0x01, 0xD0, 0x02, 0x28, 0x03, 0xD1, 0x17, 0x49, 0x28, 0x1C, 0xC5, 0xF7, 0xB0, 0xFA + .byte 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x19, 0xE0, 0x14, 0x49, 0x22, 0x68, 0x28, 0x1C, 0xC5, 0xF7 + .byte 0xA7, 0xFA, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x10, 0xE0, 0x40, 0x1C, 0x60, 0x60, 0x0D, 0xE0 + .byte 0x28, 0x1C, 0xC9, 0xF7, 0xDF, 0xFF, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x06, 0xE0 +_02080FCE: + bl sub_02020C2C + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_02080FDC: + mov r0, #0x0 + pop {r3-r5, pc} +_02080FE0: + .byte 0x71, 0x01, 0x00, 0x00, 0xB8, 0x19, 0x00, 0x00, 0xD8, 0xBB, 0x0F, 0x02, 0xC8, 0xBB, 0x0F, 0x02 + .byte 0x21, 0x01, 0x00, 0x00, 0xF8, 0xBB, 0x0F, 0x02, 0xE8, 0xBB, 0x0F, 0x02, 0xB8, 0xBB, 0x0F, 0x02 + + thumb_func_start sub_02081000 +sub_02081000: ; 0x02081000 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + bl sub_02046528 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, #0x9 + bls _0208101A + b _020811A4 +_0208101A: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r2, #0 + lsl r0, r4, #0 + lsl r0, r1, #0x1 + lsl r2, r4, #0x1 + lsl r0, r5, #0x1 + lsl r6, r0, #0x2 + lsl r2, r5, #0x2 + lsl r0, r1, #0x3 + lsl r6, r5, #0x5 + lsl r0, r0, #0x6 + add r0, r5, #0x0 + bl sub_0204AF3C + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _020811B4 +_02081048: + .byte 0x20, 0x68, 0x5C, 0x49, 0x41, 0x5C, 0x03, 0x29 + .byte 0x01, 0xD0, 0x04, 0x29, 0x08, 0xD1, 0x00, 0xF0, 0xBB, 0xFA, 0x23, 0x68, 0x58, 0x4A, 0x59, 0x49 + .byte 0x9A, 0x58, 0x28, 0x1C, 0xC5, 0xF7, 0x4C, 0xFA, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0xA1, 0xE0 + .byte 0x20, 0x68, 0x52, 0x49, 0x41, 0x5C, 0x03, 0x29, 0x01, 0xD0, 0x04, 0x29, 0x01, 0xD1, 0x00, 0xF0 + .byte 0xF3, 0xFA, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x94, 0xE0, 0x40, 0x1C, 0x60, 0x60, 0x91, 0xE0 + .byte 0x22, 0x68, 0x4A, 0x48, 0x10, 0x5C, 0x03, 0x28, 0x01, 0xD0, 0x04, 0x28, 0x03, 0xD1, 0x4A, 0x49 + .byte 0x28, 0x1C, 0xC5, 0xF7, 0x2D, 0xFA, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x82, 0xE0, 0x20, 0x68 + .byte 0x42, 0x49, 0x41, 0x5C, 0x05, 0x29, 0x01, 0xD0, 0x06, 0x29, 0x06, 0xD1, 0x01, 0xF0, 0x2C, 0xFE + .byte 0x42, 0x49, 0x22, 0x68, 0x28, 0x1C, 0xC5, 0xF7, 0x1B, 0xFA, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60 + .byte 0x70, 0xE0, 0x22, 0x68, 0x39, 0x48, 0x10, 0x5C, 0x07, 0x28, 0x01, 0xD0, 0x08, 0x28, 0x03, 0xD1 + .byte 0x3B, 0x49, 0x28, 0x1C, 0xC5, 0xF7, 0x0C, 0xFA, 0x60, 0x68, 0x40, 0x1C, 0x60, 0x60, 0x61, 0xE0 + .byte 0x21, 0x68, 0x32, 0x48, 0x08, 0x5C, 0x08, 0x28, 0x39, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88 + .byte 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x66, 0x00, 0x66, 0x00, 0x66, 0x00, 0x10, 0x00, 0x10, 0x00 + .byte 0x32, 0x00, 0x32, 0x00, 0x4E, 0x00, 0x4E, 0x00, 0x00, 0x25, 0x00, 0xAE, 0x20, 0x68, 0x29, 0x1C + .byte 0x02, 0xF0, 0xF2, 0xF8, 0x07, 0x1C, 0x20, 0x68, 0x29, 0x1C, 0x02, 0xF0, 0x1F, 0xF9, 0x38, 0x18 + .byte 0x6D, 0x1C, 0x01, 0xC6, 0x04, 0x2D, 0xF1, 0xDB, 0x19, 0xE0, 0x00, 0x22, 0x4B, 0x23, 0x10, 0x1C + .byte 0x00, 0xA9, 0x9B, 0x00, 0x25, 0x68, 0x52, 0x1C, 0x2D, 0x18, 0xED, 0x5E, 0x0C, 0x30, 0x04, 0x2A + .byte 0x20, 0xC1, 0xF7, 0xDB, 0x0B, 0xE0, 0x00, 0x22, 0x1E, 0x4B, 0x10, 0x1C, 0x00, 0xA9, 0x25, 0x68 + .byte 0x52, 0x1C, 0x2D, 0x18, 0xED, 0x5E, 0x0C, 0x30, 0x04, 0x2A, 0x20, 0xC1, 0xF7, 0xDB, 0x00, 0x99 + .byte 0x00, 0x22, 0x01, 0x25, 0x01, 0xAB, 0x18, 0x68, 0x81, 0x42, 0x00, 0xDA, 0x52, 0x1C, 0x6D, 0x1C + .byte 0x1B, 0x1D, 0x04, 0x2D, 0xF7, 0xDB, 0x13, 0x20, 0x21, 0x68, 0x00, 0x01, 0x0A, 0x54, 0x60, 0x68 + .byte 0x40, 0x1C, 0x60, 0x60, 0x0E, 0xE0, 0x28, 0x1C, 0xC9, 0xF7, 0xF4, 0xFE, 0x60, 0x68, 0x40, 0x1C + .byte 0x60, 0x60, 0x07, 0xE0 +_020811A4: + bl sub_02020C2C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_020811B4: + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + nop +_020811BC: + .byte 0x21, 0x01, 0x00, 0x00 + .byte 0xB8, 0x19, 0x00, 0x00, 0xD8, 0xBB, 0x0F, 0x02, 0xC8, 0xBB, 0x0F, 0x02, 0xF8, 0xBB, 0x0F, 0x02 + .byte 0xE8, 0xBB, 0x0F, 0x02, 0x2E, 0x01, 0x00, 0x00 + + thumb_func_start sub_020811D8 +sub_020811D8: ; 0x020811D8 + push {r4, lr} + ldr r1, _02081204 ; =0x000019C4 + mov r0, #0x14 + bl sub_02016998 + ldr r2, _02081204 ; =0x000019C4 + mov r1, #0x0 + add r4, r0, #0x0 + blx sub_020CE34C + ldr r0, _02081208 ; =0x00000123 + mov r1, #0x0 + strb r1, [r4, r0] + add r1, r0, #0x4 + mov r2, #0x1 + strb r2, [r4, r1] + mov r1, #0x3 + add r0, r0, #0x3 + strb r1, [r4, r0] + add r0, r4, #0x0 + pop {r4, pc} + nop +_02081204: .word 0x000019C4 +_02081208: .word 0x00000123 + + thumb_func_start sub_0208120C +sub_0208120C: ; 0x0208120C + ldr r3, _02081210 ; =sub_02016A18 + bx r3 + .balign 4 +_02081210: .word sub_02016A18 + 1 + + thumb_func_start sub_02081214 +sub_02081214: ; 0x02081214 + push {r3-r7, lr} + mov r2, #0x1 + add r6, r0, #0x0 + mov r0, #0xb + mov r1, #0x14 + lsl r2, r2, #0xe + bl sub_0201681C + bl sub_020811D8 + add r4, r0, #0x0 + bl sub_0201B9D4 + mov r1, #0x67 + lsl r1, r1, #0x6 + str r0, [r4, r1] + add r0, r4, #0x0 + bl sub_0208285C + ldrb r1, [r6, #0x0] + ldr r0, _020813E4 ; =0x0000011F + strb r1, [r4, r0] + add r1, r0, #0x1 + ldrb r2, [r6, #0x1] + add r0, r0, #0x2 + strb r2, [r4, r1] + ldrb r1, [r6, #0x2] + strb r1, [r4, r0] + ldrb r0, [r6, #0x1] + mov r1, #0x0 + bl sub_02083454 + ldr r1, _020813E8 ; =0x00000122 + mov r7, #0x0 + strb r0, [r4, r1] + add r0, r1, #0x1 + ldrb r2, [r4, r0] + sub r0, r1, #0x6 + add r5, r4, #0x0 + strb r2, [r4, r0] + mov r0, #0x64 + add r1, r0, #0x0 + add r1, #0xc1 + strb r0, [r4, r1] + add r1, r0, #0x0 + add r1, #0xc1 + ldrb r2, [r4, r1] + add r1, r0, #0x0 + add r1, #0xb9 + strb r2, [r4, r1] + mov r1, #0x1 + add r0, #0xba + strb r1, [r4, r0] + ldr r1, [r6, #0x14] + ldr r0, _020813EC ; =0x0000199C + str r1, [r4, r0] + add r1, r0, #0x0 + ldr r2, [r6, #0x18] + sub r1, #0x14 + str r2, [r4, r1] + add r1, r0, #0x0 + ldr r2, [r6, #0x1c] + sub r1, #0x10 + str r2, [r4, r1] + add r1, r0, #0x0 + ldr r2, [r6, #0x8] + sub r1, #0xc + str r2, [r4, r1] + ldrb r2, [r6, #0x5] + sub r1, r0, #0x4 + strb r2, [r4, r1] + add r1, r0, #0x0 + ldr r2, [r6, #0x10] + sub r1, #0x8 + str r2, [r4, r1] + sub r1, r0, #0x3 + ldrb r2, [r6, #0x3] + sub r0, r0, #0x2 + strb r2, [r4, r1] + ldrb r1, [r6, #0x4] + strb r1, [r4, r0] +_020812B6: + mov r0, #0x14 + bl sub_02026FE8 + add r1, r5, #0x0 + add r1, #0xf8 + add r7, r7, #0x1 + add r5, r5, #0x4 + str r0, [r1, #0x0] + cmp r7, #0x4 + blt _020812B6 + mov r3, #0x12 + lsl r3, r3, #0x4 + ldrb r0, [r4, r3] + sub r2, r3, #0x2 + sub r3, r3, #0x1 + str r0, [sp, #0x0] + ldrb r2, [r4, r2] + ldrb r3, [r4, r3] + add r0, r4, #0x0 + mov r1, #0xb + bl sub_02082ED0 + mov r0, #0x14 + bl sub_0206B8AC + mov r1, #0x56 + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r7, #0x0 + add r5, r4, #0x0 +_020812F2: + mov r0, #0x14 + bl sub_020669C0 + add r7, r7, #0x1 + stmia r5!, {r0} + cmp r7, #0x4 + blt _020812F2 + mov r7, #0x0 + add r5, r4, #0x0 +_02081304: + mov r0, #0x14 + bl sub_02029EE4 + mov r1, #0x57 + lsl r1, r1, #0x2 + str r0, [r5, r1] + add r7, r7, #0x1 + add r5, r5, #0x4 + cmp r7, #0x4 + blt _02081304 + add r0, r1, #0x0 + ldr r0, [r4, r0] + ldr r1, [r6, #0x20] + bl sub_02029F9C + ldr r0, [r6, #0x8] + ldr r1, [r4, #0x0] + bl sub_02069B88 + mov r0, #0x8 + mov r1, #0x14 + bl sub_020219F4 + add r1, r4, #0x0 + add r1, #0xe8 + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0xe8 + ldr r0, [r0, #0x0] + ldr r1, [r6, #0xc] + bl sub_02021A74 + ldr r0, [r6, #0x10] + bl sub_020239CC + mov r1, #0x42 + lsl r1, r1, #0x2 + strb r0, [r4, r1] + add r0, r1, #0x4 + mov r2, #0x0 + strb r2, [r4, r0] + add r1, #0x17 + ldrb r1, [r4, r1] + ldr r0, [r4, #0x0] + bl sub_02081540 + mov r1, #0x11 + lsl r1, r1, #0x4 + strb r0, [r4, r1] + add r0, r4, #0x0 + bl sub_020832EC + cmp r0, #0x0 + ldr r0, [r6, #0x10] + bne _0208138E + bl sub_020239CC + cmp r0, #0x0 + bne _02081384 + mov r1, #0xba + add r0, r1, #0x0 + add r0, #0x5a + strh r1, [r4, r0] + b _020813A8 +_02081384: + mov r1, #0xbb + add r0, r1, #0x0 + add r0, #0x59 + strh r1, [r4, r0] + b _020813A8 +_0208138E: + bl sub_020239CC + cmp r0, #0x0 + bne _020813A0 + mov r0, #0x45 + mov r1, #0x0 + lsl r0, r0, #0x2 + strh r1, [r4, r0] + b _020813A8 +_020813A0: + mov r1, #0x61 + add r0, r1, #0x0 + add r0, #0xb3 + strh r1, [r4, r0] +_020813A8: + ldrb r1, [r6, #0x3] + ldrb r2, [r6, #0x4] + add r0, r4, #0x0 + bl sub_020813F4 + add r0, r4, #0x0 + bl sub_020832EC + cmp r0, #0x1 + bne _020813D0 + ldr r1, _020813F0 ; =0x00000172 + mov r5, #0x0 + mov r0, #0x3 +_020813C2: + sub r3, r0, r5 + add r2, r4, r5 + add r5, r5, #0x1 + strb r3, [r2, r1] + cmp r5, #0x4 + blt _020813C2 + b _020813DE +_020813D0: + ldr r0, _020813F0 ; =0x00000172 + mov r2, #0x0 +_020813D4: + add r1, r4, r2 + strb r2, [r1, r0] + add r2, r2, #0x1 + cmp r2, #0x4 + blt _020813D4 +_020813DE: + add r0, r4, #0x0 + pop {r3-r7, pc} + nop +_020813E4: .word 0x0000011F +_020813E8: .word 0x00000122 +_020813EC: .word 0x0000199C +_020813F0: .word 0x00000172 + + thumb_func_start sub_020813F4 +sub_020813F4: ; 0x020813F4 + push {r3-r7, lr} + sub sp, #0x10 + mov r3, #0x12 + add r5, r0, #0x0 + lsl r3, r3, #0x4 + ldrb r4, [r5, r3] + str r4, [sp, #0x0] + add r4, r3, #0x1 + ldrb r4, [r5, r4] + sub r3, r3, #0x1 + str r4, [sp, #0x4] + str r1, [sp, #0x8] + str r2, [sp, #0xc] + ldrb r3, [r5, r3] + mov r1, #0xb + mov r2, #0x3 + bl sub_020828E4 + add r4, r5, #0x0 + add r4, #0x10 + mov r7, #0x1 + add r6, r5, #0x4 + add r4, #0x30 +_02081422: + ldr r1, [r6, #0x0] + add r0, r4, #0x0 + mov r2, #0x14 + bl sub_02082D60 + add r7, r7, #0x1 + add r6, r6, #0x4 + add r4, #0x30 + cmp r7, #0x4 + blt _02081422 + mov r6, #0x1 + add r4, r5, #0x4 + mov r7, #0x8 +_0208143C: + add r0, r4, #0x0 + add r0, #0xe8 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02081454 + add r0, r7, #0x0 + mov r1, #0x14 + bl sub_020219F4 + add r1, r4, #0x0 + add r1, #0xe8 + str r0, [r1, #0x0] +_02081454: + add r2, r4, #0x0 + add r2, #0xe8 + ldr r0, [r4, #0x0] + ldr r2, [r2, #0x0] + mov r1, #0x90 + bl sub_020671BC + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, #0x4 + blt _0208143C + add r0, r5, #0x0 + add r0, #0x30 + mov r2, #0x42 + mov r1, #0x1 + add r0, #0x30 + lsl r2, r2, #0x2 +_02081476: + ldrh r3, [r0, #0x0] + add r0, #0x30 + lsl r3, r3, #0x12 + lsr r4, r3, #0x1e + add r3, r5, r1 + add r1, r1, #0x1 + strb r4, [r3, r2] + cmp r1, #0x4 + blt _02081476 + add r0, r5, #0x0 + add r0, #0x30 + mov r2, #0x43 + mov r1, #0x1 + add r0, #0x30 + lsl r2, r2, #0x2 +_02081494: + ldrh r3, [r0, #0x0] + add r0, #0x30 + lsl r3, r3, #0x10 + lsr r4, r3, #0x1e + add r3, r5, r1 + add r1, r1, #0x1 + strb r4, [r3, r2] + cmp r1, #0x4 + blt _02081494 + add r3, r5, #0x0 + mov r1, #0x11 + mov r4, #0x1 + add r3, #0x30 + lsl r1, r1, #0x4 +_020814B0: + add r0, r3, #0x0 + add r0, #0x3e + ldrb r2, [r0, #0x0] + add r0, r5, r4 + add r4, r4, #0x1 + add r3, #0x30 + strb r2, [r0, r1] + cmp r4, #0x4 + blt _020814B0 + add r2, r5, #0x0 + mov r0, #0x45 + mov r4, #0x1 + add r2, #0x30 + add r3, r5, #0x2 + lsl r0, r0, #0x2 +_020814CE: + ldrh r1, [r2, #0x18] + add r4, r4, #0x1 + add r2, #0x30 + strh r1, [r3, r0] + add r3, r3, #0x2 + cmp r4, #0x4 + blt _020814CE + add r0, r5, #0x0 + mov r1, #0xb + bl sub_02082B90 + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start sub_020814E8 +sub_020814E8: ; 0x020814E8 + push {r3-r7, lr} + add r7, r0, #0x0 + mov r0, #0x56 + lsl r0, r0, #0x2 + ldr r0, [r7, r0] + bl sub_02016A18 + mov r6, #0x57 + mov r4, #0x0 + add r5, r7, #0x0 + lsl r6, r6, #0x2 +_020814FE: + ldr r0, [r5, #0x0] + bl sub_02016A18 + add r0, r5, #0x0 + add r0, #0xe8 + ldr r0, [r0, #0x0] + bl sub_02021A20 + add r0, r5, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bl sub_02016A18 + ldr r0, [r5, r6] + bl sub_02016A18 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x4 + blt _020814FE + mov r0, #0x67 + lsl r0, r0, #0x6 + ldr r0, [r7, r0] + bl sub_0201B9E0 + add r0, r7, #0x0 + bl sub_0208120C + mov r0, #0x14 + bl sub_020168D0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02081540 +sub_02081540: ; 0x02081540 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x1 + add r7, r1, #0x0 + str r0, [sp, #0x0] + mov r4, #0x0 +_0208154C: + cmp r7, #0x4 + bhi _020815B6 + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r0, r3, #0 + lsl r0, r5, #0 + lsl r0, r7, #0 + lsl r0, r1, #0x1 + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x7a + mov r2, #0x0 + bl sub_020671BC + add r6, r0, #0x0 + b _020815BA +_02081576: + .byte 0x21, 0x1C, 0x28, 0x1C, 0x7E, 0x31, 0x00, 0x22, 0xE5, 0xF7 + .byte 0x1D, 0xFE, 0x06, 0x1C, 0x19, 0xE0, 0x21, 0x1C, 0x28, 0x1C, 0x82, 0x31, 0x00, 0x22, 0xE5, 0xF7 + .byte 0x15, 0xFE, 0x06, 0x1C, 0x11, 0xE0, 0x21, 0x1C, 0x28, 0x1C, 0x86, 0x31, 0x00, 0x22, 0xE5, 0xF7 + .byte 0x0D, 0xFE, 0x06, 0x1C, 0x09, 0xE0, 0x21, 0x1C, 0x28, 0x1C, 0x8A, 0x31, 0x00, 0x22, 0xE5, 0xF7 + .byte 0x05, 0xFE, 0x06, 0x1C, 0x01, 0xE0 +_020815B6: + bl sub_02020C2C +_020815BA: + cmp r6, #0x0 + beq _020815CA + ldr r0, [sp, #0x0] + add r4, r4, #0x1 + add r0, r0, #0x1 + str r0, [sp, #0x0] + cmp r4, #0x3 + ble _0208154C +_020815CA: + ldr r0, [sp, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020815D0 +sub_020815D0: ; 0x020815D0 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02081658 ; =0x00000123 + ldrb r0, [r5, r0] + lsl r0, r0, #0x2 + add r0, r5, r0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bl sub_02027740 + mov r0, #0x14 + mov r1, #0x28 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x28 + add r4, r0, #0x0 + blx sub_020CE34C + ldr r0, _02081658 ; =0x00000123 + ldrb r1, [r5, r0] + lsl r1, r1, #0x2 + ldr r1, [r5, r1] + str r1, [r4, #0x0] + ldrb r1, [r5, r0] + lsl r1, r1, #0x2 + add r1, r5, r1 + add r1, #0xf8 + ldr r1, [r1, #0x0] + str r1, [r4, #0x4] + sub r1, r0, #0x1 + ldrb r1, [r5, r1] + str r1, [r4, #0x8] + add r1, r0, #0x0 + add r1, #0x4e + ldrb r1, [r5, r1] + cmp r1, #0x1 + bne _02081620 + mov r0, #0x4 + b _02081624 +_02081620: + sub r0, r0, #0x3 + ldrb r0, [r5, r0] +_02081624: + str r0, [r4, #0xc] + ldr r0, _0208165C ; =0x00000121 + ldrb r1, [r5, r0] + sub r0, r0, #0x2 + str r1, [r4, #0x10] + ldrb r0, [r5, r0] + str r0, [r4, #0x14] + ldr r0, _02081660 ; =0x0000199C + ldr r0, [r5, r0] + bl sub_0202708C + ldr r1, _02081664 ; =0x000019A0 + str r0, [r4, #0x18] + add r0, r5, r1 + str r0, [r4, #0x1c] + add r0, r1, #0x0 + sub r0, #0x18 + ldr r0, [r5, r0] + str r0, [r4, #0x20] + add r0, r1, #0x0 + sub r0, #0xc + ldr r0, [r5, r0] + add r1, #0x18 + str r0, [r4, #0x24] + str r4, [r5, r1] + pop {r3-r5, pc} + .balign 4 +_02081658: .word 0x00000123 +_0208165C: .word 0x00000121 +_02081660: .word 0x0000199C +_02081664: .word 0x000019A0 + + thumb_func_start sub_02081668 +sub_02081668: ; 0x02081668 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0208167C ; =0x000019B8 + ldr r0, [r4, r0] + bl sub_02016A18 + ldr r0, _0208167C ; =0x000019B8 + mov r1, #0x0 + str r1, [r4, r0] + pop {r4, pc} + .balign 4 +_0208167C: .word 0x000019B8 + + thumb_func_start sub_02081680 +sub_02081680: ; 0x02081680 + push {r3-r7, lr} + sub sp, #0x10 + ldr r2, _020819E8 ; =0x00000176 + add r4, r1, #0x0 + str r0, [sp, #0x0] + ldrb r0, [r4, r2] + cmp r0, #0x2f + bls _02081692 + b _02081D24 +_02081692: + add r3, r0, r0 + add r3, pc + ldrh r3, [r3, #0x6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 + lsl r6, r3, #0x1 + lsl r6, r6, #0x1 + lsl r4, r1, #0x2 + lsl r2, r4, #0x2 + lsl r6, r7, #0x2 + lsl r6, r2, #0x3 + lsl r4, r5, #0x3 + lsl r0, r1, #0x4 + lsl r4, r4, #0x4 + lsl r4, r7, #0x4 + lsl r2, r2, #0x5 + lsl r2, r0, #0x6 + lsl r0, r3, #0x6 + lsl r0, r6, #0x6 + lsl r6, r0, #0x7 + lsl r4, r4, #0x7 + lsl r0, r0, #0x8 + lsl r0, r3, #0x8 + lsl r6, r5, #0x8 + lsl r2, r5, #0x9 + lsl r0, r4, #0xa + lsl r0, r7, #0xa + lsl r6, r1, #0xb + lsl r6, r5, #0xb + lsl r6, r7, #0xc + lsl r4, r4, #0xd + lsl r2, r7, #0xd + lsl r4, r6, #0xe + lsl r2, r5, #0xf + lsl r6, r2, #0x10 + lsl r4, r5, #0x10 + lsl r0, r1, #0x11 + lsl r4, r4, #0x11 + lsl r4, r7, #0x11 + lsl r2, r2, #0x12 + lsl r4, r1, #0x13 + lsl r2, r0, #0x14 + lsl r2, r3, #0x14 + lsl r0, r6, #0x14 + lsl r2, r3, #0x15 + lsl r6, r6, #0x15 + lsl r6, r1, #0x16 + lsl r4, r4, #0x16 + lsl r6, r4, #0x17 + lsl r4, r3, #0x18 + lsl r4, r6, #0x18 + lsl r2, r1, #0x19 + lsl r0, r5, #0x19 + mov r0, #0x5 + bl sub_02031588 + ldr r0, _020819EC ; =0x00000584 + mov r1, #0x0 + strb r1, [r4, r0] + ldr r0, _020819E8 ; =0x00000176 + add sp, #0x10 + ldrb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, r0] + pop {r3-r7, pc} +_02081716: + .byte 0x05, 0x20, 0xAF, 0xF7, 0x5E, 0xFF, 0x01, 0x28, 0x75, 0xD1 + .byte 0xB1, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x20, 0x1C, 0x01, 0xF0 + .byte 0x7F, 0xFF, 0x01, 0x28, 0x6A, 0xD1, 0xAC, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54 + .byte 0xF8, 0xBD, 0xAA, 0x48, 0x11, 0x1C, 0x4F, 0x39, 0x23, 0x5C, 0x61, 0x5C, 0x8B, 0x42, 0x5D, 0xD3 + .byte 0x00, 0x21, 0x21, 0x54, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1C, 0xA0, 0x54, 0xF8, 0xBD, 0x06, 0x20 + .byte 0xAF, 0xF7, 0x12, 0xFF, 0xA1, 0x48, 0x00, 0x21, 0x21, 0x54, 0x9F, 0x48, 0x04, 0xB0, 0x21, 0x5C + .byte 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x06, 0x20, 0xAF, 0xF7, 0x2E, 0xFF, 0x01, 0x28, 0x45, 0xD1 + .byte 0x99, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x53, 0x3A, 0xA1, 0x5C + .byte 0x22, 0x68, 0x20, 0x1C, 0x01, 0xF0, 0x92, 0xFF, 0x01, 0x28, 0x37, 0xD1, 0x92, 0x48, 0x04, 0xB0 + .byte 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x90, 0x48, 0x11, 0x1C, 0x4F, 0x39, 0x23, 0x5C + .byte 0x61, 0x5C, 0x8B, 0x42, 0x2A, 0xD3, 0x00, 0x21, 0x21, 0x54, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1C + .byte 0xA0, 0x54, 0xF8, 0xBD, 0x07, 0x20, 0xAF, 0xF7, 0xDF, 0xFE, 0x88, 0x48, 0x00, 0x21, 0x21, 0x54 + .byte 0x85, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x07, 0x20, 0xAF, 0xF7 + .byte 0xFB, 0xFE, 0x01, 0x28, 0x12, 0xD1, 0x80, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54 + .byte 0xF8, 0xBD, 0x13, 0x1C, 0x53, 0x3B, 0xE5, 0x5C, 0x13, 0x1C, 0x5A, 0x3B, 0xE3, 0x5C, 0x9D, 0x42 + .byte 0x0B, 0xD1, 0x20, 0x1C, 0x01, 0xF0, 0x9A, 0xFF, 0x01, 0x28, 0x00, 0xD0, 0xD6, 0xE2, 0x76, 0x48 + .byte 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x40, 0x1C, 0x04, 0xB0, 0xA0, 0x54 + .byte 0xF8, 0xBD, 0x72, 0x48, 0x21, 0x5C, 0x00, 0x29, 0x73, 0xD0, 0x00, 0x21, 0x21, 0x54, 0xA0, 0x5C + .byte 0x04, 0xB0, 0x40, 0x1C, 0xA0, 0x54, 0xF8, 0xBD, 0x08, 0x20, 0xAF, 0xF7, 0xA5, 0xFE, 0x6B, 0x48 + .byte 0x00, 0x21, 0x21, 0x54, 0x68, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD + .byte 0x08, 0x20, 0xAF, 0xF7, 0xC1, 0xFE, 0x01, 0x28, 0x5B, 0xD1, 0x63, 0x48, 0x04, 0xB0, 0x21, 0x5C + .byte 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x53, 0x3A, 0xA1, 0x5C, 0x22, 0x1C, 0x20, 0x1C, 0x10, 0x32 + .byte 0x01, 0xF0, 0xA0, 0xFF, 0x01, 0x28, 0x4C, 0xD1, 0x5B, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C + .byte 0x21, 0x54, 0xF8, 0xBD, 0x59, 0x48, 0x11, 0x1C, 0x4F, 0x39, 0x23, 0x5C, 0x61, 0x5C, 0x8B, 0x42 + .byte 0x3F, 0xD3, 0x00, 0x21, 0x21, 0x54, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1C, 0xA0, 0x54, 0xF8, 0xBD + .byte 0x09, 0x20, 0xAF, 0xF7, 0x71, 0xFE, 0x51, 0x48, 0x00, 0x21, 0x21, 0x54, 0x4E, 0x48, 0x04, 0xB0 + .byte 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x09, 0x20, 0xAF, 0xF7, 0x8D, 0xFE, 0x01, 0x28 + .byte 0x27, 0xD1, 0x49, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x11, 0x1C + .byte 0x53, 0x39, 0x63, 0x5C, 0x11, 0x1C, 0x5A, 0x39, 0x61, 0x5C, 0x8B, 0x42, 0x11, 0xD1, 0x90, 0x1C + .byte 0x21, 0x58, 0x23, 0x1C, 0x30, 0x22, 0x10, 0x33, 0x4A, 0x43, 0x20, 0x1C, 0x9A, 0x18, 0x01, 0xF0 + .byte 0x61, 0xFF, 0x01, 0x28, 0x0D, 0xD1, 0x3C, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54 + .byte 0xF8, 0xBD, 0x40, 0x1C, 0x04, 0xB0, 0xA0, 0x54, 0xF8, 0xBD, 0x38, 0x49, 0x60, 0x5C, 0x00, 0x28 + .byte 0x00, 0xD1, 0x53, 0xE2, 0x00, 0x20, 0x60, 0x54, 0x91, 0x1C, 0x61, 0x58, 0x4B, 0x1C, 0x91, 0x1C + .byte 0x63, 0x50, 0x61, 0x58, 0x04, 0x29, 0x04, 0xDA, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1E, 0xA0, 0x54 + .byte 0xF8, 0xBD, 0x91, 0x1C, 0x60, 0x50, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1C, 0xA0, 0x54, 0xF8, 0xBD + .byte 0x0A, 0x20, 0xAF, 0xF7, 0x21, 0xFE, 0x29, 0x48, 0x00, 0x21, 0x21, 0x54, 0x26, 0x48, 0x04, 0xB0 + .byte 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x0A, 0x20, 0xAF, 0xF7, 0x3D, 0xFE, 0x01, 0x28 + .byte 0x7C, 0xD1, 0x21, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x53, 0x3A + .byte 0xA1, 0x5C, 0x22, 0x1C, 0xE8, 0x32, 0x12, 0x68, 0x20, 0x1C, 0x01, 0xF0, 0x9B, 0xFF, 0x01, 0x28 + .byte 0x6C, 0xD1, 0x19, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x17, 0x48 + .byte 0x4F, 0x3A, 0xA1, 0x5C, 0x20, 0x5C, 0x88, 0x42, 0x60, 0xD3, 0x00, 0x25, 0x00, 0x29, 0x15, 0xDD + .byte 0x26, 0x1C, 0x28, 0x1C, 0xAC, 0xF7, 0xFE, 0xFA, 0x07, 0x1C, 0x30, 0x1C, 0xE8, 0x30, 0x00, 0x68 + .byte 0xA0, 0xF7, 0x4C, 0xF8, 0x31, 0x1C, 0xE8, 0x31, 0x09, 0x68, 0x38, 0x1C, 0xA1, 0xF7, 0xE8, 0xFF + .byte 0x0B, 0x48, 0x6D, 0x1C, 0x20, 0x5C, 0x36, 0x1D, 0x85, 0x42, 0xEA, 0xDB, 0x07, 0x48, 0x00, 0x21 + .byte 0x21, 0x54, 0x05, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x0B, 0x20 + .byte 0xAF, 0xF7, 0xD2, 0xFD, 0x01, 0x48, 0x05, 0xE0 +_020819E8: .word 0x00000176 +_020819EC: .word 0x00000584 +_020819F0: + .byte 0x27, 0x01, 0x00, 0x00, 0x00, 0x21, 0x21, 0x54, 0xCB, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C + .byte 0x21, 0x54, 0xF8, 0xBD, 0x0B, 0x20, 0xAF, 0xF7, 0xE7, 0xFD, 0x01, 0x28, 0x26, 0xD1, 0xC6, 0x48 + .byte 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x11, 0x1C, 0x53, 0x39, 0x63, 0x5C + .byte 0x11, 0x1C, 0x5A, 0x39, 0x61, 0x5C, 0x8B, 0x42, 0x10, 0xD1, 0x90, 0x1C, 0x21, 0x58, 0x20, 0x1C + .byte 0x8A, 0x00, 0xA2, 0x18, 0xE8, 0x32, 0x12, 0x68, 0x01, 0xF0, 0x3C, 0xFF, 0x01, 0x28, 0x0D, 0xD1 + .byte 0xB9, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x40, 0x1C, 0x04, 0xB0 + .byte 0xA0, 0x54, 0xF8, 0xBD, 0xB5, 0x49, 0x60, 0x5C, 0x00, 0x28, 0x00, 0xD1, 0xAE, 0xE1, 0x00, 0x20 + .byte 0x60, 0x54, 0x91, 0x1C, 0x61, 0x58, 0x4B, 0x1C, 0x91, 0x1C, 0x63, 0x50, 0x61, 0x58, 0x04, 0x29 + .byte 0x04, 0xDA, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1E, 0xA0, 0x54, 0xF8, 0xBD, 0x91, 0x1C, 0x60, 0x50 + .byte 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1C, 0xA0, 0x54, 0xF8, 0xBD, 0xA8, 0xF7, 0x1B, 0xFA, 0x02, 0x1C + .byte 0x57, 0x20, 0x80, 0x00, 0xA6, 0x49, 0x20, 0x58, 0x61, 0x18, 0x4C, 0xF0, 0xA2, 0xEC, 0x0C, 0x20 + .byte 0xAF, 0xF7, 0x72, 0xFD, 0xA1, 0x48, 0x00, 0x21, 0x21, 0x54, 0x9F, 0x48, 0x04, 0xB0, 0x21, 0x5C + .byte 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x0C, 0x20, 0xAF, 0xF7, 0x8E, 0xFD, 0x01, 0x28, 0x59, 0xD1 + .byte 0x99, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x53, 0x3A, 0xA1, 0x5C + .byte 0x20, 0x1C, 0x00, 0x22, 0x01, 0xF0, 0xFE, 0xFF, 0x01, 0x28, 0x4B, 0xD1, 0x92, 0x48, 0x04, 0xB0 + .byte 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x90, 0x48, 0x11, 0x1C, 0x4F, 0x39, 0x23, 0x5C + .byte 0x61, 0x5C, 0x8B, 0x42, 0x3E, 0xD3, 0x00, 0x21, 0x21, 0x54, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1C + .byte 0xA0, 0x54, 0xF8, 0xBD, 0x0D, 0x20, 0xAF, 0xF7, 0x3F, 0xFD, 0x88, 0x48, 0x00, 0x21, 0x21, 0x54 + .byte 0x85, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x0D, 0x20, 0xAF, 0xF7 + .byte 0x5B, 0xFD, 0x01, 0x28, 0x26, 0xD1, 0x80, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54 + .byte 0xF8, 0xBD, 0x11, 0x1C, 0x53, 0x39, 0x63, 0x5C, 0x11, 0x1C, 0x5A, 0x39, 0x61, 0x5C, 0x8B, 0x42 + .byte 0x10, 0xD1, 0x90, 0x1C, 0x21, 0x58, 0x1A, 0x3A, 0x8B, 0x00, 0xE3, 0x18, 0x9A, 0x58, 0x20, 0x1C + .byte 0x01, 0xF0, 0xC0, 0xFF, 0x01, 0x28, 0x0D, 0xD1, 0x73, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C + .byte 0x21, 0x54, 0xF8, 0xBD, 0x40, 0x1C, 0x04, 0xB0, 0xA0, 0x54, 0xF8, 0xBD, 0x6F, 0x49, 0x60, 0x5C + .byte 0x00, 0x28, 0x00, 0xD1, 0x22, 0xE1, 0x00, 0x20, 0x60, 0x54, 0x91, 0x1C, 0x61, 0x58, 0x4B, 0x1C + .byte 0x91, 0x1C, 0x63, 0x50, 0x61, 0x58, 0x04, 0x29, 0x04, 0xDA, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1E + .byte 0xA0, 0x54, 0xF8, 0xBD, 0x91, 0x1C, 0x60, 0x50, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1C, 0xA0, 0x54 + .byte 0xF8, 0xBD, 0x0E, 0x20, 0xAF, 0xF7, 0xF0, 0xFC, 0x60, 0x48, 0x00, 0x21, 0x21, 0x54, 0x5E, 0x48 + .byte 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x0E, 0x20, 0xAF, 0xF7, 0x0C, 0xFD + .byte 0x01, 0x28, 0x64, 0xD1, 0x58, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD + .byte 0x02, 0xAA, 0x20, 0x1C, 0x00, 0x21, 0x02, 0x32, 0x00, 0xF0, 0x5C, 0xFE, 0x55, 0x49, 0x02, 0xAA + .byte 0x61, 0x5C, 0x20, 0x1C, 0x02, 0x32, 0x01, 0xF0, 0xAF, 0xFF, 0x01, 0x28, 0x4F, 0xD1, 0x4E, 0x48 + .byte 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x4C, 0x48, 0x11, 0x1C, 0x4F, 0x39 + .byte 0x23, 0x5C, 0x61, 0x5C, 0x8B, 0x42, 0x42, 0xD3, 0x00, 0x21, 0x21, 0x54, 0xA0, 0x5C, 0x04, 0xB0 + .byte 0x40, 0x1C, 0xA0, 0x54, 0xF8, 0xBD, 0x0F, 0x20, 0xAF, 0xF7, 0xB6, 0xFC, 0x43, 0x48, 0x00, 0x21 + .byte 0x21, 0x54, 0x41, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x0F, 0x20 + .byte 0xAF, 0xF7, 0xD2, 0xFC, 0x01, 0x28, 0x2A, 0xD1, 0x3B, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C + .byte 0x21, 0x54, 0xF8, 0xBD, 0x11, 0x1C, 0x53, 0x39, 0x63, 0x5C, 0x11, 0x1C, 0x5A, 0x39, 0x61, 0x5C + .byte 0x8B, 0x42, 0x14, 0xD1, 0x91, 0x1C, 0x61, 0x58, 0x20, 0x1C, 0x01, 0xAA, 0x00, 0xF0, 0x1A, 0xFE + .byte 0x5E, 0x21, 0x89, 0x00, 0x61, 0x58, 0x20, 0x1C, 0x01, 0xAA, 0x01, 0xF0, 0x6D, 0xFF, 0x01, 0x28 + .byte 0x0D, 0xD1, 0x2D, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x40, 0x1C + .byte 0x04, 0xB0, 0xA0, 0x54, 0xF8, 0xBD, 0x29, 0x49, 0x60, 0x5C, 0x00, 0x28, 0x00, 0xD1, 0x95, 0xE0 + .byte 0x00, 0x20, 0x60, 0x54, 0x91, 0x1C, 0x61, 0x58, 0x4B, 0x1C, 0x91, 0x1C, 0x63, 0x50, 0x61, 0x58 + .byte 0x04, 0x29, 0x04, 0xDA, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1E, 0xA0, 0x54, 0xF8, 0xBD, 0x91, 0x1C + .byte 0x60, 0x50, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1C, 0xA0, 0x54, 0xF8, 0xBD, 0x10, 0x20, 0xAF, 0xF7 + .byte 0x63, 0xFC, 0x1A, 0x48, 0x00, 0x21, 0x21, 0x54, 0x17, 0x48, 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C + .byte 0x21, 0x54, 0xF8, 0xBD, 0x10, 0x20, 0xAF, 0xF7, 0x7F, 0xFC, 0x01, 0x28, 0x6E, 0xD1, 0x12, 0x48 + .byte 0x04, 0xB0, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x53, 0x3A, 0xA1, 0x5C, 0x22, 0x1C + .byte 0x20, 0x1C, 0xD0, 0x32, 0x01, 0xF0, 0x9E, 0xFD, 0x01, 0x28, 0x5F, 0xD1, 0x0A, 0x48, 0x04, 0xB0 + .byte 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0xF8, 0xBD, 0x08, 0x48, 0x11, 0x1C, 0x4F, 0x39, 0x23, 0x5C + .byte 0x61, 0x5C, 0x8B, 0x42, 0x52, 0xD3, 0x00, 0x21, 0x21, 0x54, 0xA0, 0x5C, 0x04, 0xB0, 0x40, 0x1C + .byte 0xA0, 0x54, 0xF8, 0xBD +_02081D24: + ldr r0, _02081D38 ; =0x00000127 + b _02081D3C +_02081D28: + .byte 0x76, 0x01, 0x00, 0x00, 0x84, 0x05, 0x00, 0x00 + .byte 0x85, 0x05, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00 +_02081D38: .word 0x00000127 +_02081D3C: + mov r5, #0x0 + ldrb r0, [r4, r0] + cmp r0, #0x0 + ble _02081D62 + mov r7, #0x42 + lsl r7, r7, #0x2 + add r6, r7, #0x0 + add r6, #0x1f +_02081D4C: + add r0, r5, #0x0 + bl sub_0202DFA4 + bl sub_020239CC + add r1, r4, r5 + strb r0, [r1, r7] + ldrb r0, [r4, r6] + add r5, r5, #0x1 + cmp r5, r0 + blt _02081D4C +_02081D62: + cmp r5, #0x4 + bge _02081D86 + add r1, r4, #0x0 + mov r0, #0x30 + add r1, #0x30 + mul r0, r5 + add r0, r1, r0 + mov r1, #0x42 + lsl r1, r1, #0x2 +_02081D74: + ldrh r2, [r0, #0x0] + add r0, #0x30 + lsl r2, r2, #0x12 + lsr r3, r2, #0x1e + add r2, r4, r5 + add r5, r5, #0x1 + strb r3, [r2, r1] + cmp r5, #0x4 + blt _02081D74 +_02081D86: + mov r0, #0x47 + lsl r0, r0, #0x2 + ldrb r2, [r4, r0] + ldr r1, _02081DC0 ; =0x000019B4 + strb r2, [r4, r1] + add r2, r0, #0x0 + add r2, #0x8 + ldrb r3, [r4, r2] + add r2, r1, #0x1 + strb r3, [r4, r2] + add r2, r1, #0x2 + mov r3, #0x1 + strb r3, [r4, r2] + add r2, r0, #0x0 + add r2, #0xb + ldrb r2, [r4, r2] + add r1, r1, #0x3 + strb r2, [r4, r1] + add r1, r0, #0x0 + mov r2, #0x0 + add r1, #0x64 + str r2, [r4, r1] + add r0, #0x5a + strb r2, [r4, r0] + ldr r0, [sp, #0x0] + bl sub_0200CAB4 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02081DC0: .word 0x000019B4 + + thumb_func_start sub_02081DC4 +sub_02081DC4: ; 0x02081DC4 + push {r3-r7, lr} + add r6, r0, #0x0 + bl sub_02030F40 + cmp r0, #0x0 + bne _02081DD4 + mov r0, #0x0 + pop {r3-r7, pc} +_02081DD4: + ldr r0, _02081EA4 ; =0x00000171 + mov r1, #0x1 + strb r1, [r6, r0] + bl sub_02030F20 + add r4, r0, #0x0 + bl sub_02031190 + mov r5, #0x0 + str r0, [sp, #0x0] + cmp r4, #0x0 + ble _02081E0A +_02081DEC: + add r0, r5, #0x0 + bl sub_0202DFA4 + add r7, r0, #0x0 + bne _02081DFA + bl sub_02020C2C +_02081DFA: + add r0, r7, #0x0 + bl sub_02023A88 + cmp r0, #0x0 + beq _02081E0A + add r5, r5, #0x1 + cmp r5, r4 + blt _02081DEC +_02081E0A: + cmp r5, r4 + beq _02081E12 + mov r1, #0x0 + b _02081E14 +_02081E12: + mov r1, #0x1 +_02081E14: + ldr r0, _02081EA8 ; =0x00001999 + mov r5, #0x0 + strb r1, [r6, r0] + cmp r4, #0x0 + ble _02081E3C +_02081E1E: + add r0, r5, #0x0 + bl sub_0202DFA4 + add r7, r0, #0x0 + bne _02081E2C + bl sub_02020C2C +_02081E2C: + add r0, r7, #0x0 + bl sub_02023A9C + cmp r0, #0x0 + beq _02081E3C + add r5, r5, #0x1 + cmp r5, r4 + blt _02081E1E +_02081E3C: + cmp r5, r4 + beq _02081E44 + mov r1, #0x0 + b _02081E46 +_02081E44: + mov r1, #0x1 +_02081E46: + ldr r0, _02081EAC ; =0x0000199A + ldr r2, _02081EA8 ; =0x00001999 + strb r1, [r6, r0] + ldrb r1, [r6, r2] + add r2, r2, #0x1 + ldrb r2, [r6, r2] + add r0, r6, #0x0 + bl sub_020813F4 + ldr r0, [sp, #0x0] + mov r1, #0x49 + lsl r0, r0, #0x18 + mov r2, #0x4 + lsr r0, r0, #0x18 + lsl r1, r1, #0x2 + sub r3, r2, r4 + strb r0, [r6, r1] + add r2, r1, #0x2 + strb r3, [r6, r2] + add r2, r1, #0x3 + strb r4, [r6, r2] + sub r1, r1, #0x1 + strb r0, [r6, r1] + mov r1, #0x64 + add r0, r1, #0x0 + add r0, #0xc1 + strb r1, [r6, r0] + add r1, #0xbc + ldrb r0, [r6, r1] + mov r1, #0x1 + bl sub_02083454 + ldr r1, _02081EB0 ; =0x00000122 + strb r0, [r6, r1] + add r0, r6, #0x0 + bl sub_020834D0 + ldr r0, _02081EB4 ; =sub_02081680 + add r1, r6, #0x0 + mov r2, #0xa + bl sub_0200CA44 + mov r1, #0x6 + lsl r1, r1, #0x6 + str r0, [r6, r1] + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_02081EA4: .word 0x00000171 +_02081EA8: .word 0x00001999 +_02081EAC: .word 0x0000199A +_02081EB0: .word 0x00000122 +_02081EB4: .word sub_02081680 + 1 + + thumb_func_start sub_02081EB8 +sub_02081EB8: ; 0x02081EB8 + ldr r3, _02081EBC ; =sub_02081EC0 + bx r3 + .balign 4 +_02081EBC: .word sub_02081EC0 + 1 + + thumb_func_start sub_02081EC0 +sub_02081EC0: ; 0x02081EC0 + mov r1, #0x6 + lsl r1, r1, #0x6 + ldr r0, [r0, r1] + cmp r0, #0x0 + bne _02081ECE + mov r0, #0x1 + bx lr +_02081ECE: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_02081ED4 +sub_02081ED4: ; 0x02081ED4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x6 + lsl r0, r0, #0x6 + ldr r0, [r4, r0] + cmp r0, #0x0 + beq _02081EE6 + bl sub_02020C2C +_02081EE6: + ldr r0, _02081F00 ; =0x00000176 + mov r1, #0x0 + strb r1, [r4, r0] + ldr r0, _02081F04 ; =sub_02081F08 + add r1, r4, #0x0 + mov r2, #0xa + bl sub_0200CA44 + mov r1, #0x6 + lsl r1, r1, #0x6 + str r0, [r4, r1] + pop {r4, pc} + nop +_02081F00: .word 0x00000176 +_02081F04: .word sub_02081F08 + 1 + + thumb_func_start sub_02081F08 +sub_02081F08: ; 0x02081F08 + push {r4, lr} + add r4, r1, #0x0 + ldr r1, _02082014 ; =0x00000176 + ldrb r2, [r4, r1] + cmp r2, #0x7 + bhi _02082000 + add r3, r2, r2 + add r3, pc + ldrh r3, [r3, #0x6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 + lsl r6, r1, #0 + lsl r4, r4, #0 + lsl r0, r7, #0 + lsl r0, r3, #0x1 + lsl r2, r6, #0x1 + lsl r0, r1, #0x2 + lsl r4, r3, #0x2 + lsl r2, r1, #0x3 + mov r0, #0x11 + bl sub_02031588 + ldr r0, _02082018 ; =0x00000584 + mov r1, #0x0 + strb r1, [r4, r0] + ldr r0, _02082014 ; =0x00000176 + ldrb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, r0] + pop {r4, pc} +_02081F46: + .byte 0x11, 0x20, 0xAF, 0xF7, 0x46, 0xFB, 0x01, 0x28, 0x5F, 0xD1 + .byte 0x30, 0x48, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0x10, 0xBD, 0x53, 0x39, 0x61, 0x5C, 0x20, 0x1C + .byte 0x8A, 0x00, 0xA2, 0x18, 0xF8, 0x32, 0x12, 0x68, 0x01, 0xF0, 0xE2, 0xFC, 0x01, 0x28, 0x4F, 0xD1 + .byte 0x28, 0x48, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0x10, 0xBD, 0x27, 0x48, 0x0A, 0x1C, 0x4F, 0x3A + .byte 0x23, 0x5C, 0xA2, 0x5C, 0x93, 0x42, 0x43, 0xD3, 0x00, 0x22, 0x22, 0x54, 0x60, 0x5C, 0x40, 0x1C + .byte 0x60, 0x54, 0x10, 0xBD, 0x12, 0x20, 0xAF, 0xF7, 0xF7, 0xFA, 0x1F, 0x48, 0x00, 0x21, 0x21, 0x54 + .byte 0x1C, 0x48, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0x10, 0xBD, 0x12, 0x20, 0xAF, 0xF7, 0x14, 0xFB + .byte 0x01, 0x28, 0x2D, 0xD1, 0x17, 0x48, 0x21, 0x5C, 0x49, 0x1C, 0x21, 0x54, 0x10, 0xBD, 0x08, 0x1C + .byte 0x53, 0x38, 0x23, 0x5C, 0x08, 0x1C, 0x5A, 0x38, 0x20, 0x5C, 0x83, 0x42, 0x0B, 0xD1, 0x21, 0x1C + .byte 0x20, 0x1C, 0xF8, 0x31, 0x01, 0xF0, 0xF4, 0xFC, 0x01, 0x28, 0x19, 0xD1, 0x0D, 0x48, 0x21, 0x5C + .byte 0x49, 0x1C, 0x21, 0x54, 0x10, 0xBD, 0x50, 0x1C, 0x60, 0x54, 0x10, 0xBD, 0x0A, 0x48, 0x22, 0x5C + .byte 0x00, 0x2A, 0x0D, 0xD0, 0x00, 0x22, 0x22, 0x54, 0x60, 0x5C, 0x40, 0x1C, 0x60, 0x54, 0x10, 0xBD +_02082000: + mov r1, #0x6 + mov r2, #0x0 + lsl r1, r1, #0x6 + str r2, [r4, r1] + sub r1, #0xa + strb r2, [r4, r1] + bl sub_0200CAB4 + pop {r4, pc} + nop +_02082014: .word 0x00000176 +_02082018: .word 0x00000584 + + thumb_func_start sub_0208201C +sub_0208201C: ; 0x0208201C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r2, #0x0 + lsl r2, r4, #0x3 + add r2, r5, r2 + add r2, #0xd0 + ldrh r2, [r2, #0x0] + add r1, r3, #0x0 + bl sub_0200B244 + pop {r3-r5, pc} + + thumb_func_start sub_02082034 +sub_02082034: ; 0x02082034 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_020832E4 + add r3, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x2 + str r0, [sp, #0x4] + add r0, r4, #0x0 + lsl r2, r3, #0x2 + add r4, r5, r3 + mov r3, #0x42 + add r2, r5, r2 + lsl r3, r3, #0x2 + add r2, #0xe8 + ldrb r3, [r4, r3] + ldr r2, [r2, #0x0] + add r1, r6, #0x0 + bl sub_0200ABB4 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0208206C +sub_0208206C: ; 0x0208206C + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_020832E4 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_020690E4 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl sub_0200ACF8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02082090 +sub_02082090: ; 0x02082090 + push {r3-r5, lr} + add r4, r2, #0x0 + mov r2, #0x12 + add r3, r0, #0x0 + lsl r2, r2, #0x4 + add r5, r1, #0x0 + add r1, r2, #0x1 + ldrb r0, [r3, r2] + add r2, #0x51 + ldrb r1, [r3, r1] + ldrb r2, [r3, r2] + bl sub_02083228 + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0200B278 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020820B8 +sub_020820B8: ; 0x020820B8 + push {r3-r5, lr} + add r5, r1, #0x0 + ldr r1, _020820D8 ; =0x0000011F + add r3, r0, #0x0 + ldrb r0, [r3, r1] + add r1, r1, #0x2 + ldrb r1, [r3, r1] + add r4, r2, #0x0 + bl sub_020832A4 + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0200B2AC + pop {r3-r5, pc} + .balign 4 +_020820D8: .word 0x0000011F + + thumb_func_start sub_020820DC +sub_020820DC: ; 0x020820DC + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r1, #0x13 + add r6, r2, #0x0 + mov r0, #0x0 + add r3, r5, #0x0 + lsl r1, r1, #0x4 +_020820EC: + ldrb r2, [r3, r1] + cmp r2, #0x0 + beq _020820FA + add r0, r0, #0x1 + add r3, #0xc + cmp r0, #0x4 + blt _020820EC +_020820FA: + bl sub_020832DC + add r1, r0, #0x0 + add r0, r5, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_02082034 + pop {r4-r6, pc} + + thumb_func_start sub_0208210C +sub_0208210C: ; 0x0208210C + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r1, #0x13 + add r6, r2, #0x0 + mov r0, #0x0 + add r3, r5, #0x0 + lsl r1, r1, #0x4 +_0208211C: + ldrb r2, [r3, r1] + cmp r2, #0x0 + beq _0208212A + add r0, r0, #0x1 + add r3, #0xc + cmp r0, #0x4 + blt _0208211C +_0208212A: + bl sub_020832DC + add r1, r0, #0x0 + add r0, r5, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl sub_0208206C + pop {r4-r6, pc} + + thumb_func_start sub_0208213C +sub_0208213C: ; 0x0208213C + mov r0, #0x1 + bx lr + + thumb_func_start sub_02082140 +sub_02082140: ; 0x02082140 + push {r3, lr} + ldr r2, _02082154 ; =0x00000171 + ldrb r0, [r0, r2] + cmp r0, #0x0 + beq _02082150 + add r0, r1, #0x0 + bl sub_02031588 +_02082150: + pop {r3, pc} + nop +_02082154: .word 0x00000171 + + thumb_func_start sub_02082158 +sub_02082158: ; 0x02082158 + push {r3, lr} + ldr r2, _02082178 ; =0x00000171 + ldrb r0, [r0, r2] + cmp r0, #0x0 + bne _02082166 + mov r0, #0x1 + pop {r3, pc} +_02082166: + add r0, r1, #0x0 + bl sub_020315D8 + cmp r0, #0x1 + bne _02082174 + mov r0, #0x1 + pop {r3, pc} +_02082174: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_02082178: .word 0x00000171 + + thumb_func_start sub_0208217C +sub_0208217C: ; 0x0208217C + ldr r2, _0208218C ; =0x00000123 + mov r1, #0xc + ldrb r3, [r0, r2] + add r2, #0xd + mul r1, r3 + add r0, r0, r1 + ldrb r0, [r0, r2] + bx lr + .balign 4 +_0208218C: .word 0x00000123 + + thumb_func_start sub_02082190 +sub_02082190: ; 0x02082190 + push {r3, lr} + mov r1, #0x13 + mov r3, #0x0 + lsl r1, r1, #0x4 +_02082198: + ldrb r2, [r0, r1] + cmp r2, #0x0 + bne _020821A6 + add r0, r3, #0x0 + bl sub_020832DC + pop {r3, pc} +_020821A6: + add r3, r3, #0x1 + add r0, #0xc + cmp r3, #0x4 + blt _02082198 + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020821B4 +sub_020821B4: ; 0x020821B4 + ldr r1, _020821BC ; =0x00000123 + ldr r3, _020821C0 ; =sub_020832DC + ldrb r0, [r0, r1] + bx r3 + .balign 4 +_020821BC: .word 0x00000123 +_020821C0: .word sub_020832DC + 1 + + thumb_func_start sub_020821C4 +sub_020821C4: ; 0x020821C4 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_020832E4 + lsl r0, r0, #0x1 + add r1, r4, r0 + mov r0, #0x45 + lsl r0, r0, #0x2 + ldrh r0, [r1, r0] + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020821DC +sub_020821DC: ; 0x020821DC + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl sub_020832E4 + add r1, r4, r0 + mov r0, #0x11 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + pop {r4, pc} + + thumb_func_start sub_020821F0 +sub_020821F0: ; 0x020821F0 + push {r3, lr} + ldr r1, _02082210 ; =0x00000171 + ldrb r1, [r0, r1] + cmp r1, #0x1 + bne _020821FE + mov r0, #0x1 + pop {r3, pc} +_020821FE: + bl sub_020832EC + cmp r0, #0x1 + bne _0208220A + mov r0, #0x2 + pop {r3, pc} +_0208220A: + mov r0, #0x0 + pop {r3, pc} + nop +_02082210: .word 0x00000171 + + thumb_func_start sub_02082214 +sub_02082214: ; 0x02082214 + push {r4-r5} + mov r4, #0x12 + lsl r4, r4, #0x4 + ldrb r5, [r0, r4] + strh r5, [r1, #0x0] + sub r1, r4, #0x1 + ldrb r1, [r0, r1] + strh r1, [r2, #0x0] + add r1, r4, #0x1 + ldrb r1, [r0, r1] + strh r1, [r3, #0x0] + ldr r1, _02082238 ; =0x00001998 + ldrb r1, [r0, r1] + ldr r0, [sp, #0x8] + strh r1, [r0, #0x0] + pop {r4-r5} + bx lr + nop +_02082238: .word 0x00001998 + + thumb_func_start sub_0208223C +sub_0208223C: ; 0x0208223C + ldr r1, _02082244 ; =0x00000171 + ldr r3, _02082248 ; =sub_020833D4 + ldrb r0, [r0, r1] + bx r3 + .balign 4 +_02082244: .word 0x00000171 +_02082248: .word sub_020833D4 + 1 + + thumb_func_start sub_0208224C +sub_0208224C: ; 0x0208224C + ldr r3, _02082250 ; =sub_02083404 + bx r3 + .balign 4 +_02082250: .word sub_02083404 + 1 + + thumb_func_start sub_02082254 +sub_02082254: ; 0x02082254 + push {r4, lr} + mov r1, #0x12 + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldrb r0, [r4, r1] + sub r1, r1, #0x1 + ldrb r1, [r4, r1] + bl sub_0208341C + add r1, r0, #0x0 + ldr r0, _02082280 ; =0x00001990 + mov r2, #0x0 + ldr r0, [r4, r0] + bl sub_020671BC + cmp r0, #0x0 + beq _0208227A + mov r0, #0x1 + pop {r4, pc} +_0208227A: + mov r0, #0x0 + pop {r4, pc} + nop +_02082280: .word 0x00001990 + + thumb_func_start sub_02082284 +sub_02082284: ; 0x02082284 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, _020822EC ; =0x0000011F + add r5, r2, #0x0 + ldrb r2, [r0, r1] + cmp r2, #0x4 + bhi _020822D0 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r0, r1, #0 + lsl r0, r2, #0 + lsl r0, r3, #0 + lsl r0, r4, #0 + lsl r0, r5, #0 + add r1, r1, #0x1 + ldrb r0, [r0, r1] + add r0, #0x21 + b _020822D6 +_020822B0: + .byte 0x49, 0x1C, 0x40, 0x5C, 0x25, 0x30, 0x0E, 0xE0, 0x49, 0x1C, 0x40, 0x5C, 0x29, 0x30, 0x0A, 0xE0 + .byte 0x49, 0x1C, 0x40, 0x5C, 0x2D, 0x30, 0x06, 0xE0, 0x49, 0x1C, 0x40, 0x5C, 0x31, 0x30, 0x02, 0xE0 +_020822D0: + bl sub_02020C2C + pop {r3-r5, pc} +_020822D6: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x3 + bl sub_0207FC5C + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_0200AD94 + pop {r3-r5, pc} + .balign 4 +_020822EC: .word 0x0000011F + + thumb_func_start sub_020822F0 +sub_020822F0: ; 0x020822F0 + push {r3-r5, lr} + mov r4, #0x64 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r0, #0xbf + ldrb r1, [r5, r0] + mov r0, #0xc + mul r0, r1 + add r1, r5, r0 + add r0, r4, #0x0 + add r0, #0xcc + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _02082310 + ldr r0, _0208243C ; =0x0000FFFF + pop {r3-r5, pc} +_02082310: + add r0, r4, #0x0 + add r0, #0xbb + ldrb r0, [r5, r0] + cmp r0, #0x4 + bhi _02082414 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r6, r6, #0 + lsl r4, r4, #0x1 + lsl r2, r2, #0x2 + lsl r0, r0, #0x3 + add r0, r4, #0x0 + add r0, #0xbc + ldrb r0, [r5, r0] + cmp r0, #0x3 + bhi _02082414 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + mov r4, #0x49 + b _02082414 +_02082352: + .byte 0x4E, 0x24, 0x5E, 0xE0, 0x53, 0x24, 0x5C, 0xE0, 0x58, 0x24, 0x5A, 0xE0, 0x20, 0x1C + .byte 0xBC, 0x30, 0x28, 0x5C, 0x03, 0x28, 0x55, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04 + .byte 0x00, 0x14, 0x87, 0x44, 0x06, 0x00, 0x0A, 0x00, 0x0E, 0x00, 0x12, 0x00, 0x4A, 0x24, 0x49, 0xE0 + .byte 0x4F, 0x24, 0x47, 0xE0, 0x54, 0x24, 0x45, 0xE0, 0x59, 0x24, 0x43, 0xE0, 0x20, 0x1C, 0xBC, 0x30 + .byte 0x28, 0x5C, 0x03, 0x28, 0x3E, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14 + .byte 0x87, 0x44, 0x06, 0x00, 0x0A, 0x00, 0x0E, 0x00, 0x12, 0x00, 0x48, 0x24, 0x32, 0xE0, 0x4D, 0x24 + .byte 0x30, 0xE0, 0x52, 0x24, 0x2E, 0xE0, 0x57, 0x24, 0x2C, 0xE0, 0x20, 0x1C, 0xBC, 0x30, 0x28, 0x5C + .byte 0x03, 0x28, 0x27, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44 + .byte 0x06, 0x00, 0x0A, 0x00, 0x0E, 0x00, 0x12, 0x00, 0x4C, 0x24, 0x1B, 0xE0, 0x51, 0x24, 0x19, 0xE0 + .byte 0x56, 0x24, 0x17, 0xE0, 0x5B, 0x24, 0x15, 0xE0, 0x20, 0x1C, 0xBC, 0x30, 0x28, 0x5C, 0x03, 0x28 + .byte 0x10, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x06, 0x00 + .byte 0x0A, 0x00, 0x0E, 0x00, 0x12, 0x00, 0x4B, 0x24, 0x04, 0xE0, 0x50, 0x24, 0x02, 0xE0, 0x55, 0x24 + .byte 0x00, 0xE0, 0x5A, 0x24 +_02082414: + cmp r4, #0x64 + bne _0208241C + bl sub_02020C2C +_0208241C: + ldr r0, _02082440 ; =0x0000198C + ldr r0, [r5, r0] + bl sub_02027E24 + bl sub_0202708C + add r1, r4, #0x0 + mov r2, #0x1 + bl sub_020270D8 + cmp r0, #0x0 + bne _02082438 + ldr r0, _0208243C ; =0x0000FFFF + pop {r3-r5, pc} +_02082438: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_0208243C: .word 0x0000FFFF +_02082440: .word 0x0000198C + + thumb_func_start sub_02082444 +sub_02082444: ; 0x02082444 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _020824F0 ; =0x000019BC + add r6, r1, #0x0 + ldr r0, [r5, r0] + cmp r0, #0x0 + beq _02082456 + bl sub_02020C2C +_02082456: + mov r0, #0x4 + mov r1, #0x10 + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x10 + add r4, r0, #0x0 + blx sub_020CE34C + add r0, r6, #0x0 + bl sub_020832E4 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xc] + mov r1, #0x43 + lsl r1, r1, #0x2 + add r0, r5, r0 + ldrb r2, [r0, r1] + mov r0, #0x1 + and r0, r2 + add r2, r1, #0x0 + add r2, #0x65 + ldrb r2, [r5, r2] + cmp r2, #0x1 + bne _02082494 + mov r1, #0x6 + ldr r2, _020824F4 ; =0x020FBBAC + mul r1, r0 + add r0, r2, r1 + str r0, [r4, #0x4] + b _020824DC +_02082494: + add r1, #0x14 + ldrb r1, [r5, r1] + cmp r1, #0x3 + bhi _020824D2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r2, r2, #0 + lsl r4, r3, #0 + lsl r0, r5, #0 + lsl r1, r0, #0x1 + ldr r2, _020824F8 ; =0x020FBB90 + add r0, r0, r1 + add r0, r2, r0 + str r0, [r4, #0x4] + b _020824DC +_020824BC: + .byte 0x0F, 0x49, 0x80, 0x00 + .byte 0x08, 0x18, 0x60, 0x60, 0x0A, 0xE0, 0x81, 0x00, 0x0D, 0x4A, 0x40, 0x18, 0x10, 0x18, 0x60, 0x60 + .byte 0x04, 0xE0 +_020824D2: + mov r1, #0x6 + ldr r2, _020824F4 ; =0x020FBBAC + mul r1, r0 + add r0, r2, r1 + str r0, [r4, #0x4] +_020824DC: + ldr r0, _02082504 ; =sub_0208251C + add r1, r5, #0x0 + mov r2, #0x64 + bl sub_0200CA44 + str r0, [r4, #0x0] + ldr r0, _020824F0 ; =0x000019BC + str r4, [r5, r0] + pop {r4-r6, pc} + nop +_020824F0: .word 0x000019BC +_020824F4: .word 0x020FBBAC +_020824F8: .word 0x020FBB90 +_020824FC: + .byte 0x98, 0xBB, 0x0F, 0x02 + .byte 0xA0, 0xBB, 0x0F, 0x02 +_02082504: .word sub_0208251C + 1 + + thumb_func_start sub_02082508 +sub_02082508: ; 0x02082508 + ldr r1, _02082518 ; =0x000019BC + ldr r0, [r0, r1] + cmp r0, #0x0 + bne _02082514 + mov r0, #0x1 + bx lr +_02082514: + mov r0, #0x0 + bx lr + .balign 4 +_02082518: .word 0x000019BC + + thumb_func_start sub_0208251C +sub_0208251C: ; 0x0208251C + push {r3-r6, lr} + sub sp, #0x4 + add r6, r0, #0x0 + ldr r0, _02082598 ; =0x000019BC + add r5, r1, #0x0 + ldr r4, [r5, r0] + mov r0, #0x1 + bl sub_0200A344 + cmp r0, #0x0 + beq _02082594 + ldrb r0, [r4, #0xb] + cmp r0, #0x0 + bne _02082580 + mov r0, #0x8 + ldrsh r1, [r4, r0] + add r1, r1, #0x1 + strh r1, [r4, #0x8] + ldrsh r2, [r4, r0] + ldrb r0, [r4, #0xa] + ldr r1, [r4, #0x4] + ldrb r0, [r1, r0] + cmp r2, r0 + ble _02082594 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x6 + mov r1, #0x0 + mov r2, #0x4 + mov r3, #0x3f + bl sub_0200A208 + ldr r0, _0208259C ; =0x000005F8 + bl sub_020054C8 + ldrb r0, [r4, #0xa] + add r0, r0, #0x1 + strb r0, [r4, #0xa] + mov r0, #0x0 + strh r0, [r4, #0x8] + ldrb r0, [r4, #0xa] + ldr r1, [r4, #0x4] + ldrb r0, [r1, r0] + cmp r0, #0xff + bne _02082594 + ldrb r0, [r4, #0xb] + add sp, #0x4 + add r0, r0, #0x1 + strb r0, [r4, #0xb] + pop {r3-r6, pc} +_02082580: + ldr r0, _02082598 ; =0x000019BC + ldr r0, [r5, r0] + bl sub_02016A18 + ldr r0, _02082598 ; =0x000019BC + mov r1, #0x0 + str r1, [r5, r0] + add r0, r6, #0x0 + bl sub_0200CAB4 +_02082594: + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02082598: .word 0x000019BC +_0208259C: .word 0x000005F8 + + thumb_func_start sub_020825A0 +sub_020825A0: ; 0x020825A0 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r0, #0x13 + str r2, [sp, #0x4] + ldr r6, [sp, #0x20] + ldr r7, [sp, #0x24] + str r1, [sp, #0x0] + str r3, [sp, #0x8] + mov r4, #0x0 + add r2, r5, #0x0 + lsl r0, r0, #0x4 +_020825B8: + ldrb r1, [r2, r0] + cmp r1, #0x0 + beq _020825C6 + add r4, r4, #0x1 + add r2, #0xc + cmp r4, #0x4 + blt _020825B8 +_020825C6: + add r0, r4, #0x0 + bl sub_020832DC + ldr r1, [sp, #0x0] + str r0, [r1, #0x0] + ldr r1, _02082628 ; =0x00000171 + ldr r0, [sp, #0x4] + ldrb r2, [r5, r1] + sub r1, #0x4a + str r2, [r0, #0x0] + ldrb r0, [r5, r1] + cmp r4, r0 + blt _020825E6 + mov r1, #0x1 + ldr r0, [sp, #0x8] + b _020825EA +_020825E6: + ldr r0, [sp, #0x8] + mov r1, #0x0 +_020825EA: + str r1, [r0, #0x0] + mov r0, #0x0 + str r0, [r6, #0x0] + str r0, [r7, #0x0] + ldr r0, _0208262C ; =0x00000121 + ldrb r0, [r5, r0] + cmp r0, #0x8 + bhi _02082624 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r3, #0 + lsl r4, r3, #0 + lsl r4, r3, #0 + lsl r0, r2, #0 + lsl r0, r3, #0 + lsl r0, r2, #0 + lsl r0, r3, #0 + lsl r0, r2, #0 + lsl r0, r3, #0 + mov r0, #0x1 + add sp, #0xc + str r0, [r6, #0x0] + pop {r4-r7, pc} +_02082620: + .byte 0x01, 0x20, 0x38, 0x60 +_02082624: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02082628: .word 0x00000171 +_0208262C: .word 0x00000121 + + thumb_func_start sub_02082630 +sub_02082630: ; 0x02082630 + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r0, _02082840 ; =0x00000121 + str r2, [sp, #0x4] + ldrb r0, [r4, r0] + add r6, r3, #0x0 + mov r5, #0x0 + cmp r0, #0x8 + bhi _02082666 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r2, #0 + lsl r4, r2, #0 + lsl r4, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + lsl r0, r2, #0 + add sp, #0xc + pop {r4-r7, pc} +_02082666: + ldr r2, _02082844 ; =0x00000171 + ldrb r0, [r4, r2] + cmp r0, #0x0 + ldr r0, _02082848 ; =0x0000198C + beq _02082672 + b _02082774 +_02082672: + ldr r0, [r4, r0] + bl sub_020462AC + add r6, r0, #0x0 + ldr r0, _02082840 ; =0x00000121 + ldrb r1, [r4, r0] + cmp r1, #0x2 + bne _020826AC + sub r0, r0, #0x1 + ldrb r0, [r4, r0] + cmp r0, #0x3 + blo _020826AC + add r0, r4, #0x0 + bl sub_0208217C + cmp r0, #0x0 + bne _020826AC + ldr r1, _0208284C ; =0x0000011F + add r0, r6, #0x0 + ldrb r1, [r4, r1] + bl sub_0205EE60 + cmp r0, #0x0 + bne _020826AC + ldr r1, _0208284C ; =0x0000011F + add r0, r6, #0x0 + ldrb r1, [r4, r1] + bl sub_0205EE08 +_020826AC: + add r0, r4, #0x0 + bl sub_0208217C + cmp r0, #0x0 + bne _020826EA + mov r1, #0x1 + add r0, sp, #0x8 + strb r1, [r0, #0x0] + mov r1, #0x12 + lsl r1, r1, #0x4 + ldrb r0, [r4, r1] + sub r1, r1, #0x1 + ldrb r1, [r4, r1] + bl sub_0208341C + add r6, r0, #0x0 + ldr r0, _02082850 ; =0x00001990 + add r1, r6, #0x0 + ldr r0, [r4, r0] + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + bne _020826DE + mov r5, #0x1 +_020826DE: + ldr r0, _02082850 ; =0x00001990 + add r1, r6, #0x0 + ldr r0, [r4, r0] + add r2, sp, #0x8 + bl sub_02067830 +_020826EA: + ldr r0, _02082848 ; =0x0000198C + ldr r0, [r4, r0] + bl sub_02022504 + ldr r3, _02082854 ; =0x00000123 + mov r1, #0xc + ldrb r2, [r4, r3] + mul r1, r2 + add r2, r4, r1 + add r1, r3, #0x0 + add r1, #0xd + ldrb r1, [r2, r1] + sub r2, r3, #0x4 + sub r3, r3, #0x3 + add r1, r1, #0x1 + str r1, [sp, #0x0] + ldr r1, _02082850 ; =0x00001990 + ldrb r2, [r4, r2] + ldrb r3, [r4, r3] + ldr r1, [r4, r1] + bl sub_02060F10 + ldr r0, _02082848 ; =0x0000198C + ldr r0, [r4, r0] + bl sub_02029FC8 + mov r1, #0x3f + add r6, r0, #0x0 + bl sub_0202A0E8 + add r0, r4, #0x0 + bl sub_0208217C + cmp r0, #0x0 + bne _02082740 + add r0, r6, #0x0 + mov r1, #0x41 + bl sub_0202A0E8 + add r0, r6, #0x0 + mov r1, #0xd + bl sub_0202A170 +_02082740: + cmp r5, #0x1 + bne _0208274C + add r0, r6, #0x0 + mov r1, #0x43 + bl sub_0202A0E8 +_0208274C: + ldr r0, _02082848 ; =0x0000198C + ldr r0, [r4, r0] + bl sub_02024DA0 + add r7, r0, #0x0 + ldr r0, _02082858 ; =0x00000127 + ldrb r6, [r4, r0] + cmp r6, #0x4 + bge _020827E8 + lsl r0, r6, #0x2 + add r5, r4, r0 +_02082762: + ldr r1, [r5, #0x0] + add r0, r7, #0x0 + bl sub_0202498C + add r6, r6, #0x1 + add r5, r5, #0x4 + cmp r6, #0x4 + blt _02082762 + b _020827E8 +_02082774: + add r3, r2, #0x0 + sub r3, #0x4e + ldrb r5, [r4, r3] + add r1, r2, #0x0 + mov r3, #0xc + mul r3, r5 + sub r1, #0x52 + add r3, r4, r3 + sub r2, #0x41 + ldrb r1, [r4, r1] + ldrb r2, [r3, r2] + ldr r0, [r4, r0] + bl sub_0202C108 + ldr r0, _02082848 ; =0x0000198C + ldr r0, [r4, r0] + bl sub_02029FC8 + mov r1, #0x40 + add r5, r0, #0x0 + bl sub_0202A0E8 + add r0, r4, #0x0 + bl sub_0208217C + cmp r0, #0x0 + bne _020827BA + add r0, r5, #0x0 + mov r1, #0x42 + bl sub_0202A0E8 + add r0, r5, #0x0 + mov r1, #0x13 + bl sub_0202A170 +_020827BA: + ldr r1, _02082854 ; =0x00000123 + mov r0, #0xc + ldrb r2, [r4, r1] + add r1, #0xd + mul r0, r2 + add r0, r4, r0 + ldrb r0, [r0, r1] + mov r1, #0xb + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_02029500 + add r5, r0, #0x0 + ldr r0, _02082848 ; =0x0000198C + ldr r0, [r4, r0] + bl sub_020289A4 + add r0, r6, #0x0 + add r1, r5, #0x0 + mov r2, #0x4 + bl sub_02028AD4 +_020827E8: + add r0, r4, #0x0 + bl sub_0208217C + cmp r0, #0x0 + bne _02082820 + ldr r0, _02082848 ; =0x0000198C + ldr r0, [r4, r0] + bl sub_02027E24 + ldr r1, _0208284C ; =0x0000011F + ldrb r1, [r4, r1] + bl sub_02027044 + add r5, r0, #0x0 + bl sub_02027740 + ldr r1, _02082854 ; =0x00000123 + add r0, r5, #0x0 + ldrb r1, [r4, r1] + lsl r1, r1, #0x2 + add r1, r4, r1 + add r1, #0xf8 + ldr r1, [r1, #0x0] + bl sub_020278DC + add r0, r5, #0x0 + bl sub_02027710 +_02082820: + add r0, r4, #0x0 + bl sub_0208217C + cmp r0, #0x0 + bne _0208283A + ldr r0, _02082850 ; =0x00001990 + ldr r2, [sp, #0x4] + ldr r0, [r4, r0] + lsl r2, r2, #0x10 + mov r1, #0x9 + lsr r2, r2, #0x10 + bl sub_020688E8 +_0208283A: + add sp, #0xc + pop {r4-r7, pc} + nop +_02082840: .word 0x00000121 +_02082844: .word 0x00000171 +_02082848: .word 0x0000198C +_0208284C: .word 0x0000011F +_02082850: .word 0x00001990 +_02082854: .word 0x00000123 +_02082858: .word 0x00000127 + + thumb_func_start sub_0208285C +sub_0208285C: ; 0x0208285C + push {r4, lr} + bl sub_020126D8 + add r4, r0, #0x0 + bl sub_0201B9D4 + add r0, #0xa + mul r0, r4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_0201B9E0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02082878 +sub_02082878: ; 0x02082878 + ldr r3, _0208287C ; =sub_0201B9EC + bx r3 + .balign 4 +_0208287C: .word sub_0201B9EC + 1 + + thumb_func_start sub_02082880 +sub_02082880: ; 0x02082880 + push {r4, lr} + add r4, r1, #0x0 + bl sub_0201BA10 + str r0, [r4, #0x0] + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02082894 +sub_02082894: ; 0x02082894 + push {r4-r5} + mov r5, #0x42 + add r3, r0, r1 + lsl r5, r5, #0x2 + ldrb r4, [r3, r5] + lsl r1, r1, #0x1 + add r0, r0, r1 + strb r4, [r2, #0x0] + add r4, r5, #0x4 + ldrb r4, [r3, r4] + strb r4, [r2, #0x1] + add r4, r5, #0x0 + add r4, #0x8 + ldrb r3, [r3, r4] + add r5, #0xc + strb r3, [r2, #0x2] + ldrh r0, [r0, r5] + strh r0, [r2, #0x4] + pop {r4-r5} + bx lr + + thumb_func_start sub_020828BC +sub_020828BC: ; 0x020828BC + ldr r2, _020828E0 ; =0x00000171 + ldrb r1, [r0, r2] + cmp r1, #0x0 + beq _020828D6 + cmp r1, #0x1 + bne _020828DA + add r1, r2, #0x0 + sub r1, #0x55 + sub r2, #0x4e + ldrb r1, [r0, r1] + ldrb r0, [r0, r2] + cmp r1, r0 + bne _020828DA +_020828D6: + mov r0, #0x1 + bx lr +_020828DA: + mov r0, #0x0 + bx lr + nop +_020828E0: .word 0x00000171 + + thumb_func_start sub_020828E4 +sub_020828E4: ; 0x020828E4 + push {r3-r7, lr} + sub sp, #0x58 + str r0, [sp, #0x4] + ldr r0, [sp, #0x70] + mov r6, #0x0 + str r0, [sp, #0x70] + ldr r0, [sp, #0x74] + add r5, r1, #0x0 + add r4, r3, #0x0 + str r2, [sp, #0x8] + str r6, [sp, #0x20] + str r6, [sp, #0x18] + str r6, [sp, #0x1c] + cmp r0, #0x8 + bhi _0208292A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r3, #0 + lsl r2, r3, #0 + lsl r2, r3, #0 + lsl r0, r2, #0 + lsl r6, r2, #0 + lsl r0, r2, #0 + lsl r6, r2, #0 + lsl r0, r2, #0 + lsl r6, r2, #0 + mov r0, #0x1 + str r0, [sp, #0x18] + b _0208292A +_02082926: + .byte 0x01, 0x20, 0x07, 0x90 +_0208292A: + mov r0, #0x1 + mov r1, #0x0 + str r0, [sp, #0x0] + mov r0, #0x5a + add r2, r1, #0x0 + add r3, r5, #0x0 + bl sub_02006C98 + str r0, [sp, #0x14] + mov r0, #0x5a + mov r1, #0x0 + bl sub_020065A4 + mov r1, #0x30 + blx sub_020EBE8C + str r0, [sp, #0x24] + ldr r1, [sp, #0x24] + add r0, r5, #0x0 + add r1, r1, #0x1 + bl sub_020169D8 + add r5, r0, #0x0 + ldr r0, [sp, #0x78] + cmp r0, #0x1 + bne _02082968 + ldr r0, [sp, #0x7c] + cmp r0, #0x1 + bne _02082968 + mov r0, #0x1 + str r0, [sp, #0x20] +_02082968: + ldr r0, [sp, #0x24] + mov r2, #0x0 + cmp r0, #0x0 + ble _02082A1A + ldr r3, [sp, #0x14] +_02082972: + ldrh r7, [r3, #0x20] + lsl r0, r7, #0x1d + lsr r1, r0, #0x1d + ldr r0, [sp, #0x70] + cmp r0, r1 + bne _02082A10 + ldr r0, [sp, #0x20] + cmp r0, #0x1 + bne _0208298E + lsl r0, r7, #0x14 + lsr r0, r0, #0x1e + cmp r0, #0x1 + beq _02082A10 + b _0208299A +_0208298E: + lsl r0, r7, #0x14 + lsr r0, r0, #0x1e + cmp r0, #0x2 + beq _02082A10 + cmp r0, #0x3 + beq _02082A10 +_0208299A: + ldr r0, [sp, #0x18] + cmp r0, #0x1 + bne _020829AA + ldrh r0, [r3, #0x20] + lsl r0, r0, #0x16 + lsr r0, r0, #0x1f + beq _02082A10 + b _020829CA +_020829AA: + ldr r0, [sp, #0x1c] + cmp r0, #0x1 + ldrh r0, [r3, #0x20] + bne _020829BA + lsl r0, r0, #0x17 + lsr r0, r0, #0x1f + beq _02082A10 + b _020829CA +_020829BA: + lsl r1, r0, #0x16 + lsr r1, r1, #0x1f + cmp r1, #0x1 + beq _02082A10 + lsl r0, r0, #0x17 + lsr r0, r0, #0x1f + cmp r0, #0x1 + beq _02082A10 +_020829CA: + cmp r4, #0x0 + bne _020829D6 + ldrh r0, [r3, #0x20] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1f + bne _02082A06 +_020829D6: + cmp r4, #0x1 + bne _020829E2 + ldrh r0, [r3, #0x20] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + bne _02082A06 +_020829E2: + cmp r4, #0x2 + bne _020829EE + ldrh r0, [r3, #0x20] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1f + bne _02082A06 +_020829EE: + cmp r4, #0x3 + bne _020829FA + ldrh r0, [r3, #0x20] + lsl r0, r0, #0x19 + lsr r0, r0, #0x1f + bne _02082A06 +_020829FA: + cmp r4, #0x4 + bne _02082A10 + ldrh r0, [r3, #0x20] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + beq _02082A10 +_02082A06: + add r1, r6, #0x1 + add r0, r6, #0x0 + lsl r1, r1, #0x18 + lsr r6, r1, #0x18 + strb r2, [r5, r0] +_02082A10: + ldr r0, [sp, #0x24] + add r2, r2, #0x1 + add r3, #0x30 + cmp r2, r0 + blt _02082972 +_02082A1A: + mov r0, #0xff + strb r0, [r5, r6] + ldr r0, [sp, #0x1c] + cmp r0, #0x0 + beq _02082A26 + b _02082B4E +_02082A26: + ldr r0, [sp, #0x8] + cmp r6, r0 + bge _02082A30 + bl sub_02020C2C +_02082A30: + mov r0, #0x0 + str r0, [sp, #0x10] + cmp r6, #0x0 + ble _02082A5A + mov r2, #0x30 +_02082A3A: + ldrb r1, [r5, r0] + add r3, r1, #0x0 + ldr r1, [sp, #0x14] + mul r3, r2 + add r1, r1, r3 + ldrh r1, [r1, #0x20] + lsl r1, r1, #0x14 + lsr r1, r1, #0x1e + cmp r1, #0x3 + bne _02082A54 + ldr r1, [sp, #0x10] + add r1, r1, #0x1 + str r1, [sp, #0x10] +_02082A54: + add r0, r0, #0x1 + cmp r0, r6 + blt _02082A3A +_02082A5A: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + ble _02082AA2 + ldr r0, [sp, #0x4] + bl sub_02082878 + ldr r1, [sp, #0x10] + blx sub_020EBC80 + mov r3, #0x0 + cmp r6, #0x0 + ble _02082AA2 + mov r0, #0x30 +_02082A74: + ldrb r4, [r5, r3] + add r2, r4, #0x0 + ldr r4, [sp, #0x14] + mul r2, r0 + add r2, r4, r2 + ldrh r4, [r2, #0x20] + lsl r4, r4, #0x14 + lsr r4, r4, #0x1e + cmp r4, #0x3 + bne _02082A9C + cmp r1, #0x0 + bne _02082A9A + add r4, sp, #0x28 + mov r3, #0x6 +_02082A90: + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + sub r3, r3, #0x1 + bne _02082A90 + b _02082AA2 +_02082A9A: + sub r1, r1, #0x1 +_02082A9C: + add r3, r3, #0x1 + cmp r3, r6 + blt _02082A74 +_02082AA2: + ldr r0, [sp, #0x8] + mov r1, #0x4 + sub r4, r1, r0 + add r0, r4, #0x0 + str r4, [sp, #0xc] + cmp r0, #0x4 + bge _02082B16 +_02082AB0: + ldr r0, [sp, #0x4] + bl sub_02082878 + add r1, r6, #0x0 + blx sub_020EBC80 + lsl r0, r1, #0x10 + lsr r2, r0, #0x10 + ldrb r3, [r5, r2] + mov r0, #0x30 + add r1, r3, #0x0 + ldr r3, [sp, #0x14] + mul r1, r0 + add r7, r3, r1 + ldrh r1, [r7, #0x20] + lsl r1, r1, #0x14 + lsr r1, r1, #0x1e + cmp r1, #0x3 + bne _02082ADA + sub r4, r4, #0x1 + b _02082B10 +_02082ADA: + add r1, r4, #0x0 + mul r1, r0 + ldr r0, [sp, #0x4] + add r3, r0, r1 + mov r0, #0x6 + add r3, #0x10 + mov r12, r0 +_02082AE8: + ldmia r7!, {r0-r1} + stmia r3!, {r0-r1} + mov r0, r12 + sub r0, r0, #0x1 + mov r12, r0 + bne _02082AE8 + ldrb r1, [r5, r2] + add r0, r5, r2 + cmp r1, #0xff + beq _02082B0A +_02082AFC: + ldrb r1, [r0, #0x1] + add r2, r2, #0x1 + strb r1, [r0, #0x0] + ldrb r1, [r5, r2] + add r0, r5, r2 + cmp r1, #0xff + bne _02082AFC +_02082B0A: + sub r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 +_02082B10: + add r4, r4, #0x1 + cmp r4, #0x4 + blt _02082AB0 +_02082B16: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + ble _02082B7E + ldr r0, [sp, #0xc] + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [sp, #0x4] + bl sub_02082878 + ldr r1, [sp, #0x8] + blx sub_020EBC80 + add r0, r4, r1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + add r1, r2, #0x0 + mov r0, #0x30 + mul r1, r0 + ldr r0, [sp, #0x4] + add r4, sp, #0x28 + add r3, r0, r1 + add r3, #0x10 + mov r2, #0x6 +_02082B44: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02082B44 + b _02082B7E +_02082B4E: + cmp r6, #0x4 + bhs _02082B56 + bl sub_02020C2C +_02082B56: + mov r6, #0x0 + mov r7, #0x30 +_02082B5A: + ldrb r0, [r5, r6] + ldr r3, [sp, #0x4] + mov r2, #0x6 + add r1, r0, #0x0 + ldr r0, [sp, #0x14] + mul r1, r7 + add r4, r0, r1 + add r3, #0x10 +_02082B6A: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02082B6A + ldr r0, [sp, #0x4] + add r6, r6, #0x1 + add r0, #0x30 + str r0, [sp, #0x4] + cmp r6, #0x4 + blt _02082B5A +_02082B7E: + add r0, r5, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x14] + bl sub_02016A18 + add sp, #0x58 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02082B90 +sub_02082B90: ; 0x02082B90 + push {r3-r7, lr} + sub sp, #0x18 + str r0, [sp, #0x8] + mov r0, #0x1 + add r3, r1, #0x0 + str r0, [sp, #0x0] + mov r0, #0x5a + mov r1, #0x2 + mov r2, #0x0 + bl sub_02006C98 + str r0, [sp, #0x14] + ldr r1, _02082D10 ; =0x00000121 + ldr r0, [sp, #0x8] + ldrb r0, [r0, r1] + cmp r0, #0x4 + beq _02082BBA + cmp r0, #0x6 + beq _02082BBA + cmp r0, #0x8 + bne _02082BC0 +_02082BBA: + mov r0, #0x0 + str r0, [sp, #0xc] + b _02082BC8 +_02082BC0: + ldr r0, [sp, #0x8] + add r1, r1, #0x6 + ldrb r0, [r0, r1] + str r0, [sp, #0xc] +_02082BC8: + ldr r0, [sp, #0xc] + cmp r0, #0x4 + blt _02082BD0 + b _02082D06 +_02082BD0: + mov r1, #0x30 + mul r1, r0 + ldr r0, [sp, #0x8] + add r7, r0, r1 + ldr r0, [sp, #0xc] + lsl r1, r0, #0x2 + ldr r0, [sp, #0x8] + add r6, r0, r1 +_02082BE0: + ldr r1, _02082D14 ; =0x00000122 + ldr r0, [sp, #0x8] + ldrb r0, [r0, r1] + cmp r0, #0xb + bhi _02082C6E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r2, #0 + lsl r6, r3, #0 + lsl r6, r4, #0 + lsl r6, r5, #0 + lsl r6, r6, #0 + lsl r6, r7, #0 + lsl r6, r0, #0x1 + lsl r6, r1, #0x1 + lsl r6, r2, #0x1 + lsl r6, r3, #0x1 + lsl r6, r4, #0x1 + lsl r6, r5, #0x1 + add r0, r7, #0x0 + add r0, #0x32 + ldrb r2, [r0, #0x0] + b _02082C74 +_02082C16: + .byte 0x38, 0x1C, 0x33, 0x30, 0x02, 0x78, 0x2A, 0xE0, 0x38, 0x1C + .byte 0x34, 0x30, 0x02, 0x78, 0x26, 0xE0, 0x38, 0x1C, 0x35, 0x30, 0x02, 0x78, 0x22, 0xE0, 0x38, 0x1C + .byte 0x36, 0x30, 0x02, 0x78, 0x1E, 0xE0, 0x38, 0x1C, 0x37, 0x30, 0x02, 0x78, 0x1A, 0xE0, 0x38, 0x1C + .byte 0x38, 0x30, 0x02, 0x78, 0x16, 0xE0, 0x38, 0x1C, 0x39, 0x30, 0x02, 0x78, 0x12, 0xE0, 0x38, 0x1C + .byte 0x3A, 0x30, 0x02, 0x78, 0x0E, 0xE0, 0x38, 0x1C, 0x3B, 0x30, 0x02, 0x78, 0x0A, 0xE0, 0x38, 0x1C + .byte 0x3C, 0x30, 0x02, 0x78, 0x06, 0xE0, 0x38, 0x1C, 0x3D, 0x30, 0x02, 0x78, 0x02, 0xE0 +_02082C6E: + bl sub_02020C2C + mov r2, #0x0 +_02082C74: + mov r0, #0x54 + add r1, r2, #0x0 + mul r1, r0 + ldr r0, [sp, #0x14] + add r0, r0, r1 + str r0, [sp, #0x10] + add r0, r6, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bl sub_02027740 + add r0, r6, #0x0 + add r0, #0xf8 + ldr r2, [sp, #0x10] + mov r3, #0x51 + ldrsb r2, [r2, r3] + ldr r0, [r0, #0x0] + ldr r1, [r6, #0x0] + bl sub_02027914 + ldr r0, [sp, #0x10] + mov r5, #0x0 + add r0, #0x50 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + ble _02082CD2 + ldr r4, [sp, #0x10] +_02082CAA: + ldrb r0, [r4, #0x2] + add r1, r5, #0x0 + str r0, [sp, #0x0] + mov r0, #0x3 + ldrsb r0, [r4, r0] + str r0, [sp, #0x4] + add r0, r6, #0x0 + add r0, #0xf8 + ldrb r2, [r4, #0x0] + ldrb r3, [r4, #0x1] + ldr r0, [r0, #0x0] + bl sub_02027964 + ldr r0, [sp, #0x10] + add r5, r5, #0x1 + add r0, #0x50 + ldrb r0, [r0, #0x0] + add r4, r4, #0x4 + cmp r5, r0 + blt _02082CAA +_02082CD2: + ldr r1, [sp, #0x10] + add r0, r6, #0x0 + add r1, #0x52 + add r0, #0xf8 + str r1, [sp, #0x10] + ldrb r1, [r1, #0x0] + ldr r0, [r0, #0x0] + bl sub_0202787C + mov r2, #0x12 + add r0, r6, #0x0 + add r0, #0xf8 + ldr r1, [sp, #0x8] + lsl r2, r2, #0x4 + ldrb r1, [r1, r2] + ldr r0, [r0, #0x0] + bl sub_020278AC + ldr r0, [sp, #0xc] + add r7, #0x30 + add r0, r0, #0x1 + add r6, r6, #0x4 + str r0, [sp, #0xc] + cmp r0, #0x4 + bge _02082D06 + b _02082BE0 +_02082D06: + ldr r0, [sp, #0x14] + bl sub_02016A18 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_02082D10: .word 0x00000121 +_02082D14: .word 0x00000122 + + thumb_func_start sub_02082D18 +sub_02082D18: ; 0x02082D18 + push {r3-r7, lr} + add r6, r0, #0x0 + mov r7, #0x12 + mov r4, #0x0 + add r5, r6, #0x0 + lsl r7, r7, #0x4 +_02082D24: + add r0, r5, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bl sub_02027740 + add r0, r5, #0x0 + add r0, #0xf8 + mov r2, #0x0 + ldr r0, [r0, #0x0] + ldr r1, [r5, #0x0] + mvn r2, r2 + bl sub_02027914 + add r0, r5, #0x0 + add r0, #0xf8 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_0202787C + add r0, r5, #0x0 + add r0, #0xf8 + ldrb r1, [r6, r7] + ldr r0, [r0, #0x0] + bl sub_020278AC + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x4 + blt _02082D24 + pop {r3-r7, pc} + + thumb_func_start sub_02082D60 +sub_02082D60: ; 0x02082D60 + push {r3-r7, lr} + sub sp, #0x20 + add r7, r0, #0x0 + add r6, r1, #0x0 + ldrh r1, [r7, #0x20] + str r2, [sp, #0x10] + ldrh r0, [r7, #0x14] + lsl r1, r1, #0x12 + lsr r1, r1, #0x1e + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + mov r2, #0x0 + bl sub_02066E74 + mov r1, #0x1 + str r1, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + ldr r0, _02082E60 ; =0x0F0F0F0F + mov r2, #0xa + str r0, [sp, #0xc] + ldrh r1, [r7, #0x14] + add r0, r6, #0x0 + mov r3, #0x20 + bl sub_02066ACC + mov r4, #0x0 + add r5, r7, #0x0 +_02082D9A: + ldrh r1, [r5, #0xc] + add r0, sp, #0x18 + add r2, sp, #0x1c + strh r1, [r0, #0x6] + add r1, r4, #0x0 + add r0, r6, #0x0 + add r1, #0x36 + add r2, #0x2 + bl sub_02067830 + add r4, r4, #0x1 + add r5, r5, #0x2 + cmp r4, #0x4 + blt _02082D9A + ldr r3, [sp, #0x10] + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xc0 + bl sub_0200A86C + ldrh r1, [r7, #0x16] + add r4, r0, #0x0 + bl sub_0200A914 + add r5, r0, #0x0 + ldrh r1, [r7, #0x18] + add r0, r4, #0x0 + bl sub_0200A914 + str r0, [sp, #0x14] + add r0, r6, #0x0 + mov r1, #0x76 + add r2, r5, #0x0 + bl sub_02067830 + ldr r2, [sp, #0x14] + add r0, r6, #0x0 + mov r1, #0x90 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02021A20 + ldr r0, [sp, #0x14] + bl sub_02021A20 + add r0, r4, #0x0 + bl sub_0200A8B8 + add r2, sp, #0x1c + ldrb r1, [r7, #0x1a] + add r0, sp, #0x18 + add r2, #0x1 + strb r1, [r0, #0x5] + ldrb r1, [r7, #0x1b] + strb r1, [r0, #0x4] + ldrb r1, [r7, #0x1c] + strb r1, [r0, #0x3] + ldrb r1, [r7, #0x1d] + strb r1, [r0, #0x2] + ldrb r1, [r7, #0x1e] + strb r1, [r0, #0x1] + ldrb r1, [r7, #0x1f] + strb r1, [r0, #0x0] + add r0, r6, #0x0 + mov r1, #0x13 + bl sub_02067830 + add r0, r6, #0x0 + mov r1, #0x14 + add r2, sp, #0x1c + bl sub_02067830 + add r2, sp, #0x18 + add r0, r6, #0x0 + mov r1, #0x15 + add r2, #0x3 + bl sub_02067830 + add r2, sp, #0x18 + add r0, r6, #0x0 + mov r1, #0x16 + add r2, #0x2 + bl sub_02067830 + add r2, sp, #0x18 + add r0, r6, #0x0 + mov r1, #0x17 + add r2, #0x1 + bl sub_02067830 + add r0, r6, #0x0 + mov r1, #0x18 + add r2, sp, #0x18 + bl sub_02067830 + add sp, #0x20 + pop {r3-r7, pc} + nop +_02082E60: .word 0x0F0F0F0F + + thumb_func_start sub_02082E64 +sub_02082E64: ; 0x02082E64 + push {r4-r7, lr} + sub sp, #0x24 + add r6, r3, #0x0 + add r5, r2, #0x0 + lsl r2, r6, #0x18 + str r0, [sp, #0x10] + add r7, r1, #0x0 + add r0, sp, #0x14 + add r1, r5, #0x0 + lsr r2, r2, #0x18 + ldr r4, [sp, #0x38] + bl sub_02068B68 + lsl r1, r6, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl sub_02068E14 + add r5, r0, #0x0 + cmp r4, #0x0 + beq _02082EB0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _02082E98 + bl sub_02020C2C +_02082E98: + add r1, sp, #0x14 + ldrh r0, [r1, #0x0] + ldrh r1, [r1, #0x2] + ldr r2, [sp, #0x3c] + ldr r3, [r4, #0x0] + bl sub_02012420 + add r0, sp, #0x14 + ldrh r1, [r0, #0x4] + str r1, [r4, #0x8] + ldrh r0, [r0, #0x0] + str r0, [r4, #0x4] +_02082EB0: + ldr r0, [sp, #0x48] + ldr r3, [sp, #0x44] + str r0, [sp, #0x0] + str r7, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x40] + add r1, sp, #0x14 + add r3, r3, r5 + bl sub_020073A0 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02082ED0 +sub_02082ED0: ; 0x02082ED0 + push {r4-r7, lr} + sub sp, #0x24 + str r0, [sp, #0x4] + str r1, [sp, #0x8] + ldr r0, [sp, #0x38] + add r7, r3, #0x0 + mov r5, #0x0 + str r2, [sp, #0xc] + str r0, [sp, #0x38] + mov r1, #0x1 + ldr r3, [sp, #0x8] + mov r0, #0x5a + add r2, r5, #0x0 + add r4, r5, #0x0 + str r1, [sp, #0x0] + bl sub_02006C98 + str r0, [sp, #0x14] + mov r0, #0x5a + mov r1, #0x1 + bl sub_020065A4 + lsr r0, r0, #0x3 + str r0, [sp, #0x18] + ldr r1, [sp, #0x18] + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + bl sub_020169D8 + ldr r1, [sp, #0x18] + add r6, r0, #0x0 + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + bl sub_020169D8 + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + add r2, r5, #0x0 + cmp r0, #0x0 + ble _0208300A + ldr r3, [sp, #0x14] +_02082F22: + ldrh r0, [r3, #0x4] + mov r12, r0 + lsl r0, r0, #0x14 + lsr r1, r0, #0x1e + ldr r0, [sp, #0x38] + cmp r0, r1 + bne _02083000 + cmp r7, #0x0 + bne _02082F5A + mov r0, r12 + lsl r0, r0, #0x1e + lsr r0, r0, #0x1e + beq _02082F5A + cmp r0, #0x1 + bls _02082F4E + add r0, r4, #0x1 + lsl r0, r0, #0x18 + add r1, r4, #0x0 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x10] + strb r2, [r0, r1] + b _02083000 +_02082F4E: + add r1, r5, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0x18 + lsr r5, r1, #0x18 + strb r2, [r6, r0] + b _02083000 +_02082F5A: + cmp r7, #0x1 + bne _02082F84 + ldrh r0, [r3, #0x4] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1e + beq _02082F84 + cmp r0, #0x1 + bls _02082F78 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + add r1, r4, #0x0 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x10] + strb r2, [r0, r1] + b _02083000 +_02082F78: + add r1, r5, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0x18 + lsr r5, r1, #0x18 + strb r2, [r6, r0] + b _02083000 +_02082F84: + cmp r7, #0x2 + bne _02082FAE + ldrh r0, [r3, #0x4] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1e + beq _02082FAE + cmp r0, #0x1 + bls _02082FA2 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + add r1, r4, #0x0 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x10] + strb r2, [r0, r1] + b _02083000 +_02082FA2: + add r1, r5, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0x18 + lsr r5, r1, #0x18 + strb r2, [r6, r0] + b _02083000 +_02082FAE: + cmp r7, #0x3 + bne _02082FD8 + ldrh r0, [r3, #0x4] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1e + beq _02082FD8 + cmp r0, #0x1 + bls _02082FCC + add r0, r4, #0x1 + lsl r0, r0, #0x18 + add r1, r4, #0x0 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x10] + strb r2, [r0, r1] + b _02083000 +_02082FCC: + add r1, r5, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0x18 + lsr r5, r1, #0x18 + strb r2, [r6, r0] + b _02083000 +_02082FD8: + cmp r7, #0x4 + bne _02083000 + ldrh r0, [r3, #0x4] + lsl r0, r0, #0x16 + lsr r0, r0, #0x1e + beq _02083000 + cmp r0, #0x1 + bls _02082FF6 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + add r1, r4, #0x0 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x10] + strb r2, [r0, r1] + b _02083000 +_02082FF6: + add r1, r5, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0x18 + lsr r5, r1, #0x18 + strb r2, [r6, r0] +_02083000: + ldr r0, [sp, #0x18] + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, r0 + blt _02082F22 +_0208300A: + mov r1, #0xff + ldr r0, [sp, #0x10] + strb r1, [r6, r5] + strb r1, [r0, r4] + cmp r5, #0x2 + bhs _0208301A + bl sub_02020C2C +_0208301A: + ldr r2, [sp, #0x4] + mov r3, #0x0 +_0208301E: + ldrb r0, [r6, r3] + ldr r5, [sp, #0x14] + add r3, r3, #0x1 + lsl r1, r0, #0x3 + ldr r0, [sp, #0x14] + ldrh r5, [r5, r1] + add r0, r0, r1 + add r1, r2, #0x0 + add r1, #0xd0 + strh r5, [r1, #0x0] + add r1, r2, #0x0 + ldrh r5, [r0, #0x2] + add r1, #0xd2 + strh r5, [r1, #0x0] + add r1, r2, #0x0 + ldrh r5, [r0, #0x4] + add r1, #0xd4 + strh r5, [r1, #0x0] + ldrh r1, [r0, #0x6] + add r0, r2, #0x0 + add r0, #0xd6 + add r2, #0x8 + strh r1, [r0, #0x0] + cmp r3, #0x2 + blt _0208301E + cmp r4, #0x1 + bhs _02083058 + bl sub_02020C2C +_02083058: + ldr r0, [sp, #0x4] + bl sub_02082878 + add r1, r4, #0x0 + blx sub_020EBC80 + lsl r0, r1, #0x10 + lsr r1, r0, #0x10 + ldr r0, [sp, #0x10] + ldrb r0, [r0, r1] + ldr r1, [sp, #0x14] + lsl r2, r0, #0x3 + ldr r0, [sp, #0x14] + add r0, r0, r2 + ldrh r2, [r1, r2] + ldr r1, [sp, #0x4] + add r1, #0xe0 + strh r2, [r1, #0x0] + ldr r1, [sp, #0x4] + ldrh r2, [r0, #0x2] + add r1, #0xe2 + strh r2, [r1, #0x0] + ldr r1, [sp, #0x4] + ldrh r2, [r0, #0x4] + add r1, #0xe4 + strh r2, [r1, #0x0] + ldrh r1, [r0, #0x6] + ldr r0, [sp, #0x4] + ldr r2, _02083110 ; =0x0000011E + add r0, #0xe6 + strh r1, [r0, #0x0] + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x4] + strb r1, [r0, r2] + add r2, r0, #0x0 + add r0, r1, #0x0 + lsl r1, r0, #0x3 + add r2, #0xd0 + ldrh r4, [r2, r1] + add r0, sp, #0x1c + add r3, r2, r1 + strh r4, [r0, #0x0] + ldrh r4, [r3, #0x2] + strh r4, [r0, #0x2] + ldrh r4, [r3, #0x4] + strh r4, [r0, #0x4] + ldrh r4, [r3, #0x6] + strh r4, [r0, #0x6] + ldr r4, [sp, #0x4] + add r4, #0xe0 + ldrh r4, [r4, #0x0] + strh r4, [r2, r1] + ldr r1, [sp, #0x4] + add r1, #0xe2 + ldrh r1, [r1, #0x0] + strh r1, [r3, #0x2] + ldr r1, [sp, #0x4] + add r1, #0xe4 + ldrh r1, [r1, #0x0] + strh r1, [r3, #0x4] + ldr r1, [sp, #0x4] + add r1, #0xe6 + ldrh r1, [r1, #0x0] + strh r1, [r3, #0x6] + ldr r1, [sp, #0x4] + ldrh r2, [r0, #0x0] + add r1, #0xe0 + strh r2, [r1, #0x0] + ldr r1, [sp, #0x4] + ldrh r2, [r0, #0x2] + add r1, #0xe2 + strh r2, [r1, #0x0] + ldr r1, [sp, #0x4] + ldrh r2, [r0, #0x4] + add r1, #0xe4 + strh r2, [r1, #0x0] + ldrh r1, [r0, #0x6] + ldr r0, [sp, #0x4] + add r0, #0xe6 + str r0, [sp, #0x4] + strh r1, [r0, #0x0] + ldr r0, [sp, #0x10] + bl sub_02016A18 + add r0, r6, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x14] + bl sub_02016A18 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 +_02083110: .word 0x0000011E + + thumb_func_start sub_02083114 +sub_02083114: ; 0x02083114 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x18 + blo _02083120 + bl sub_02020C2C +_02083120: + mov r0, #0x1a + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _0208312C ; =0x020FBC6C + ldrsb r0, [r0, r1] + pop {r4, pc} + .balign 4 +_0208312C: .word 0x020FBC6C + + thumb_func_start sub_02083130 +sub_02083130: ; 0x02083130 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + cmp r5, #0x18 + blo _02083140 + bl sub_02020C2C +_02083140: + mov r0, #0x1a + add r1, r5, #0x0 + mul r1, r0 + ldr r0, _02083154 ; =0x020FBC68 + ldrh r0, [r0, r1] + str r0, [r4, #0x0] + ldr r0, _02083158 ; =0x020FBC6A + ldrh r0, [r0, r1] + str r0, [r6, #0x0] + pop {r4-r6, pc} + .balign 4 +_02083154: .word 0x020FBC68 +_02083158: .word 0x020FBC6A + + thumb_func_start sub_0208315C +sub_0208315C: ; 0x0208315C + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x18 + blo _02083168 + bl sub_02020C2C +_02083168: + add r4, #0x2d + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02083170 +sub_02083170: ; 0x02083170 + push {r3-r7, lr} + add r4, r0, #0x0 + add r7, r1, #0x0 + add r5, r2, #0x0 + add r6, r3, #0x0 + cmp r4, #0x18 + blo _02083182 + bl sub_02020C2C +_02083182: + cmp r7, #0x4 + bhi _0208319C + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r4, r3, #0 + lsl r0, r6, #0 + lsl r4, r0, #0x1 + lsl r0, r3, #0x1 +_0208319C: + mov r0, #0x1a + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02083200 ; =0x020FBC6E + ldrh r0, [r0, r1] + str r0, [r5, #0x0] + ldr r0, _02083204 ; =0x020FBC70 + ldrb r0, [r0, r1] + str r0, [r6, #0x0] + pop {r3-r7, pc} + + thumb_func_start sub_020831B0 +sub_020831B0: ; 0x020831B0 + mov r0, #0x1a + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02083208 ; =0x020FBC72 + ldrh r0, [r0, r1] + str r0, [r5, #0x0] + ldr r0, _0208320C ; =0x020FBC74 + ldrb r0, [r0, r1] + str r0, [r6, #0x0] + pop {r3-r7, pc} + + thumb_func_start sub_020831C4 +sub_020831C4: ; 0x020831C4 + mov r0, #0x1a + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02083210 ; =0x020FBC76 + ldrh r0, [r0, r1] + str r0, [r5, #0x0] + ldr r0, _02083214 ; =0x020FBC78 + ldrb r0, [r0, r1] + str r0, [r6, #0x0] + pop {r3-r7, pc} + + thumb_func_start sub_020831D8 +sub_020831D8: ; 0x020831D8 + mov r0, #0x1a + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02083218 ; =0x020FBC7A + ldrh r0, [r0, r1] + str r0, [r5, #0x0] + ldr r0, _0208321C ; =0x020FBC7C + ldrb r0, [r0, r1] + str r0, [r6, #0x0] + pop {r3-r7, pc} + + thumb_func_start sub_020831EC +sub_020831EC: ; 0x020831EC + mov r0, #0x1a + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02083220 ; =0x020FBC7E + ldrh r0, [r0, r1] + str r0, [r5, #0x0] + ldr r0, _02083224 ; =0x020FBC80 + ldrb r0, [r0, r1] + str r0, [r6, #0x0] + pop {r3-r7, pc} + .balign 4 +_02083200: .word 0x020FBC6E +_02083204: .word 0x020FBC70 +_02083208: .word 0x020FBC72 +_0208320C: .word 0x020FBC74 +_02083210: .word 0x020FBC76 +_02083214: .word 0x020FBC78 +_02083218: .word 0x020FBC7A +_0208321C: .word 0x020FBC7C +_02083220: .word 0x020FBC7E +_02083224: .word 0x020FBC80 + + thumb_func_start sub_02083228 +sub_02083228: ; 0x02083228 + cmp r2, #0x1 + bne _02083230 + mov r0, #0x33 + bx lr +_02083230: + cmp r1, #0x3 + beq _0208323C + cmp r1, #0x5 + beq _0208323C + cmp r1, #0x7 + bne _02083240 +_0208323C: + mov r0, #0x32 + bx lr +_02083240: + cmp r0, #0x3 + bhi _02083264 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r2, r1, #0 + lsl r6, r1, #0 + lsl r2, r2, #0 + mov r0, #0x2e + bx lr +_0208325C: + .byte 0x2F, 0x20, 0x70, 0x47 + .byte 0x30, 0x20, 0x70, 0x47 +_02083264: + mov r0, #0x31 + bx lr + + thumb_func_start sub_02083268 +sub_02083268: ; 0x02083268 + cmp r0, #0x4 + bhi _02083292 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r4, r1, #0 + lsl r0, r2, #0 + lsl r4, r2, #0 + lsl r0, r3, #0 + mov r0, #0x2e + bx lr +_02083286: + .byte 0x2F, 0x20, 0x70, 0x47, 0x30, 0x20, 0x70, 0x47, 0x31, 0x20 + .byte 0x70, 0x47 +_02083292: + mov r0, #0x33 + bx lr + .balign 4 + + thumb_func_start sub_02083298 +sub_02083298: ; 0x02083298 + ldr r3, _020832A0 ; =sub_020832A4 + mov r1, #0x2 + bx r3 + nop +_020832A0: .word sub_020832A4 + 1 + + thumb_func_start sub_020832A4 +sub_020832A4: ; 0x020832A4 + cmp r1, #0x5 + bne _020832AC + mov r0, #0x34 + bx lr +_020832AC: + cmp r0, #0x4 + bhi _020832D6 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r4, r1, #0 + lsl r0, r2, #0 + lsl r4, r2, #0 + lsl r0, r3, #0 + mov r0, #0x29 + bx lr +_020832CA: + .byte 0x2A, 0x20, 0x70, 0x47, 0x2B, 0x20 + .byte 0x70, 0x47, 0x2C, 0x20, 0x70, 0x47 +_020832D6: + mov r0, #0x2d + bx lr + .balign 4 + + thumb_func_start sub_020832DC +sub_020832DC: ; 0x020832DC + mov r1, #0x3 + sub r0, r1, r0 + bx lr + .balign 4 + + thumb_func_start sub_020832E4 +sub_020832E4: ; 0x020832E4 + mov r1, #0x3 + sub r0, r1, r0 + bx lr + .balign 4 + + thumb_func_start sub_020832EC +sub_020832EC: ; 0x020832EC + ldr r1, _02083304 ; =0x00000121 + ldrb r0, [r0, r1] + cmp r0, #0x3 + beq _020832FC + cmp r0, #0x5 + beq _020832FC + cmp r0, #0x7 + bne _02083300 +_020832FC: + mov r0, #0x1 + bx lr +_02083300: + mov r0, #0x0 + bx lr + .balign 4 +_02083304: .word 0x00000121 + + thumb_func_start sub_02083308 +sub_02083308: ; 0x02083308 + push {r4-r5} + sub sp, #0x50 + ldr r5, _02083368 ; =0x020FBC18 + add r4, sp, #0x0 + mov r3, #0x28 +_02083312: + ldrh r2, [r5, #0x0] + add r5, r5, #0x2 + strh r2, [r4, #0x0] + add r4, r4, #0x2 + sub r3, r3, #0x1 + bne _02083312 + mov r3, #0xc + mul r3, r1 + add r1, r0, r3 + mov r3, #0x4a + lsl r3, r3, #0x2 + add r4, r3, #0x0 + add r4, #0x49 + ldrb r4, [r0, r4] + mov r2, #0x0 + ldrsh r1, [r1, r3] + cmp r4, #0x1 + bne _0208333A + add r4, sp, #0x40 + b _02083344 +_0208333A: + sub r3, #0x8 + ldrb r0, [r0, r3] + add r4, sp, #0x0 + lsl r0, r0, #0x4 + add r4, r4, r0 +_02083344: + mov r3, #0x0 +_02083346: + ldrh r0, [r4, #0x0] + cmp r1, r0 + bge _02083354 + add sp, #0x50 + add r0, r2, #0x0 + pop {r4-r5} + bx lr +_02083354: + add r3, r3, #0x1 + add r2, r2, #0x1 + add r4, r4, #0x2 + cmp r3, #0x8 + blt _02083346 + add r0, r2, #0x0 + add sp, #0x50 + pop {r4-r5} + bx lr + nop +_02083368: .word 0x020FBC18 + + thumb_func_start sub_0208336C +sub_0208336C: ; 0x0208336C + push {r4-r5} + sub sp, #0x10 + ldr r5, _020833CC ; =0x020FBC08 + add r4, sp, #0x0 + mov r3, #0xf +_02083376: + ldrb r2, [r5, #0x0] + add r5, r5, #0x1 + strb r2, [r4, #0x0] + add r4, r4, #0x1 + sub r3, r3, #0x1 + bne _02083376 + mov r2, #0xc + mul r2, r1 + ldr r3, _020833D0 ; =0x0000012A + add r1, r0, r2 + ldrsh r1, [r1, r3] + cmp r1, #0x0 + bne _02083398 + add sp, #0x10 + mov r0, #0x0 + pop {r4-r5} + bx lr +_02083398: + add r2, r3, #0x0 + add r2, #0x47 + ldrb r2, [r0, r2] + cmp r2, #0x1 + bne _020833A6 + add r4, sp, #0xc + b _020833B2 +_020833A6: + sub r3, #0xa + ldrb r2, [r0, r3] + add r4, sp, #0x0 + lsl r0, r2, #0x1 + add r0, r2, r0 + add r4, r4, r0 +_020833B2: + mov r0, #0x1 + mov r3, #0x0 +_020833B6: + ldrb r2, [r4, r3] + cmp r1, r2 + ble _020833C4 + add r3, r3, #0x1 + add r0, r0, #0x1 + cmp r3, #0x3 + blt _020833B6 +_020833C4: + add sp, #0x10 + pop {r4-r5} + bx lr + nop +_020833CC: .word 0x020FBC08 +_020833D0: .word 0x0000012A + + thumb_func_start sub_020833D4 +sub_020833D4: ; 0x020833D4 + push {r3, lr} + cmp r0, #0x0 + bne _020833EE + mov r0, #0x1 + bl sub_02002B60 + mov r0, #0x3 + bl sub_02002B7C + mov r0, #0x1 + bl sub_02002BB8 + pop {r3, pc} +_020833EE: + mov r0, #0x1 + bl sub_02002B7C + mov r0, #0x0 + bl sub_02002B60 + mov r0, #0x0 + bl sub_02002BB8 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02083404 +sub_02083404: ; 0x02083404 + push {r3, lr} + mov r0, #0x0 + bl sub_02002B60 + mov r0, #0x0 + bl sub_02002B7C + mov r0, #0x0 + bl sub_02002BB8 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_0208341C +sub_0208341C: ; 0x0208341C + push {r3, lr} + cmp r1, #0x4 + bhi _0208344C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r1, #0 + lsl r4, r1, #0 + lsl r0, r2, #0 + lsl r4, r2, #0 + lsl r0, r3, #0 + add r0, #0x7a + pop {r3, pc} +_0208343C: + .byte 0x7E, 0x30, 0x08, 0xBD + .byte 0x82, 0x30, 0x08, 0xBD, 0x86, 0x30, 0x08, 0xBD, 0x8A, 0x30, 0x08, 0xBD +_0208344C: + bl sub_02020C2C + mov r0, #0x7a + pop {r3, pc} + + thumb_func_start sub_02083454 +sub_02083454: ; 0x02083454 + push {r4-r5, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r4, #0x0 + cmp r5, #0x3 + beq _02083464 + cmp r1, #0x1 + bne _02083474 +_02083464: + bl sub_0201B9EC + mov r1, #0xc + blx sub_020EBC80 + add sp, #0xc + add r0, r1, #0x0 + pop {r4-r5, pc} +_02083474: + add r0, sp, #0x0 + add r1, r4, #0x0 + mov r2, #0xc + blx sub_020CE34C + mov r1, #0x2 + add r0, sp, #0x0 + strb r1, [r0, #0x0] + mov r1, #0x3 + strb r1, [r0, #0x1] + mov r1, #0x4 + add r4, r4, #0x3 + strb r1, [r0, #0x2] + cmp r5, #0x1 + blt _020834A6 + mov r0, #0x0 + add r2, sp, #0x0 + strb r0, [r2, r4] + mov r1, #0x1 + add r0, r4, #0x1 + strb r1, [r2, r0] + add r1, r4, #0x2 + mov r0, #0x5 + add r4, r4, #0x3 + strb r0, [r2, r1] +_020834A6: + cmp r5, #0x2 + blt _020834BE + mov r0, #0x6 + add r2, sp, #0x0 + strb r0, [r2, r4] + mov r1, #0x7 + add r0, r4, #0x1 + strb r1, [r2, r0] + add r1, r4, #0x2 + mov r0, #0x8 + add r4, r4, #0x3 + strb r0, [r2, r1] +_020834BE: + bl sub_0201B9EC + add r1, r4, #0x0 + blx sub_020EBC80 + add r0, sp, #0x0 + ldrb r0, [r0, r1] + add sp, #0xc + pop {r4-r5, pc} + + thumb_func_start sub_020834D0 +sub_020834D0: ; 0x020834D0 + ldr r3, _020834DC ; =sub_0202D8D0 + add r2, r0, #0x0 + ldr r0, _020834E0 ; =0x020FBED8 + mov r1, #0x10 + bx r3 + nop +_020834DC: .word sub_0202D8D0 + 1 +_020834E0: .word 0x020FBED8 + + thumb_func_start sub_020834E4 +sub_020834E4: ; 0x020834E4 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x1 + lsl r0, r0, #0xa + add r4, r1, #0x0 + cmp r2, r0 + blt _020834F6 + bl sub_02020C2C +_020834F6: + ldr r0, _02083500 ; =0x00000985 + add r1, r4, r0 + lsl r0, r5, #0xa + add r0, r1, r0 + pop {r3-r5, pc} + .balign 4 +_02083500: .word 0x00000985 + + thumb_func_start sub_02083504 +sub_02083504: ; 0x02083504 + mov r0, #0xa + bx lr + + thumb_func_start sub_02083508 +sub_02083508: ; 0x02083508 + mov r0, #0x8 + bx lr + + thumb_func_start sub_0208350C +sub_0208350C: ; 0x0208350C + bx lr + .balign 4 + + thumb_func_start sub_02083510 +sub_02083510: ; 0x02083510 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x17 + lsl r0, r0, #0x4 + add r6, r1, #0x0 + ldrb r1, [r3, r0] + str r2, [sp, #0x0] + cmp r1, #0x0 + bne _0208352C + sub r0, r0, #0x4 + ldr r1, [r3, r0] + ldr r0, _02083590 ; =0x000004FC + add r4, r1, r0 + b _0208355E +_0208352C: + cmp r1, #0x1 + bne _0208353A + sub r0, r0, #0x4 + ldr r1, [r3, r0] + ldr r0, _02083594 ; =0x00001158 + add r4, r1, r0 + b _0208355E +_0208353A: + cmp r1, #0x2 + bne _0208354A + sub r0, r0, #0x4 + ldr r1, [r3, r0] + mov r0, #0xc3 + lsl r0, r0, #0x4 + add r4, r1, r0 + b _0208355E +_0208354A: + cmp r1, #0x3 + bne _02083558 + sub r0, r0, #0x4 + ldr r1, [r3, r0] + ldr r0, _02083598 ; =0x0000085C + add r4, r1, r0 + b _0208355E +_02083558: + bl sub_02020C2C + pop {r3-r7, pc} +_0208355E: + mov r0, #0x2 + lsl r0, r0, #0x8 + cmp r6, r0 + ble _0208356A + bl sub_02020C2C +_0208356A: + ldr r0, _0208359C ; =0x00000A11 + add r7, r4, r0 + ldrb r0, [r7, r5] + cmp r0, #0x0 + beq _02083578 + bl sub_02020C2C +_02083578: + mov r1, #0x21 + lsl r1, r1, #0x4 + add r2, r4, r1 + lsl r1, r5, #0x9 + add r1, r2, r1 + ldr r0, [sp, #0x0] + add r2, r6, #0x0 + blx sub_020CE3E0 + mov r0, #0x1 + strb r0, [r7, r5] + pop {r3-r7, pc} + .balign 4 +_02083590: .word 0x000004FC +_02083594: .word 0x00001158 +_02083598: .word 0x0000085C +_0208359C: .word 0x00000A11 + + thumb_func_start sub_020835A0 +sub_020835A0: ; 0x020835A0 + mov r0, #0x5b + lsl r0, r0, #0x2 + ldr r0, [r3, r0] + ldr r3, _020835AC ; =0x0223D1CD + add r1, r2, #0x0 + bx r3 + .balign 4 +_020835AC: .word 0x0223D1CD + + thumb_func_start sub_020835B0 +sub_020835B0: ; 0x020835B0 + push {r3-r6, lr} + sub sp, #0x14 + add r5, r1, #0x0 + mov r1, #0x61 + add r6, r0, #0x0 + add r4, r3, #0x0 + lsl r1, r1, #0x2 + add r0, r2, #0x0 + add r2, r4, r1 + lsl r1, r6, #0x8 + add r1, r2, r1 + add r2, r5, #0x0 + blx sub_020CE3E0 + ldr r2, _02083628 ; =0x00000584 + ldrb r0, [r4, r2] + add r0, r0, #0x1 + strb r0, [r4, r2] + ldr r0, _0208362C ; =0x00000127 + ldrb r2, [r4, r2] + ldrb r1, [r4, r0] + cmp r2, r1 + blo _02083622 + mov r3, #0x0 + cmp r1, #0x0 + ble _020835FE + add r0, #0x5d + add r5, r4, r0 + mov r0, #0x1 + lsl r0, r0, #0x8 + add r2, r0, #0x0 + add r6, sp, #0x4 + add r2, #0x27 +_020835F2: + stmia r6!, {r5} + ldrb r1, [r4, r2] + add r3, r3, #0x1 + add r5, r5, r0 + cmp r3, r1 + blt _020835F2 +_020835FE: + add r0, sp, #0x4 + add r2, sp, #0x0 + bl sub_02083660 + mov r1, #0x47 + lsl r1, r1, #0x2 + strb r0, [r4, r1] + add r0, sp, #0x0 + ldrb r2, [r0, #0x0] + add r0, r1, #0x1 + strb r2, [r4, r0] + ldrb r0, [r4, r1] + lsl r2, r0, #0x2 + add r0, sp, #0x4 + ldr r0, [r0, r2] + ldrb r2, [r0, #0x2] + add r0, r1, #0x6 + strb r2, [r4, r0] +_02083622: + add sp, #0x14 + pop {r3-r6, pc} + nop +_02083628: .word 0x00000584 +_0208362C: .word 0x00000127 + + thumb_func_start sub_02083630 +sub_02083630: ; 0x02083630 + push {r3, lr} + ldr r1, _0208365C ; =0x00000125 + add r3, sp, #0x0 + ldrb r2, [r0, r1] + strb r2, [r3, #0x0] + sub r2, r1, #0x2 + ldrb r2, [r0, r2] + sub r1, r1, #0x3 + strb r2, [r3, #0x1] + ldrb r0, [r0, r1] + add r1, sp, #0x0 + mov r2, #0x4 + strb r0, [r3, #0x2] + mov r0, #0x1a + bl sub_02030ADC + cmp r0, #0x1 + bne _02083658 + mov r0, #0x1 + pop {r3, pc} +_02083658: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0208365C: .word 0x00000125 + + thumb_func_start sub_02083660 +sub_02083660: ; 0x02083660 + push {r4-r7} + mov r5, #0x0 + add r4, r5, #0x0 + cmp r1, #0x0 + ble _02083684 + add r6, r0, #0x0 +_0208366C: + lsl r3, r5, #0x2 + ldr r3, [r0, r3] + ldr r7, [r6, #0x0] + ldrb r3, [r3, #0x0] + ldrb r7, [r7, #0x0] + cmp r3, r7 + bhs _0208367C + add r5, r4, #0x0 +_0208367C: + add r4, r4, #0x1 + add r6, r6, #0x4 + cmp r4, r1 + blt _0208366C +_02083684: + lsl r1, r5, #0x2 + ldr r0, [r0, r1] + ldrb r0, [r0, #0x0] + strb r0, [r2, #0x0] + add r0, r5, #0x0 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start sub_02083694 +sub_02083694: ; 0x02083694 + push {r3-r5, lr} + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_020669BC + add r2, r0, #0x0 + ldrb r1, [r5, r2] + add r0, r5, #0x0 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + blx sub_020CE3E0 + ldr r0, _020836B8 ; =0x00000584 + ldrb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, r0] + pop {r3-r5, pc} + nop +_020836B8: .word 0x00000584 + + thumb_func_start sub_020836BC +sub_020836BC: ; 0x020836BC + push {r3-r7, lr} + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_020669BC + add r4, r0, #0x0 + mov r0, #0x14 + add r1, r4, #0x1 + bl sub_02016998 + add r5, r0, #0x0 + add r0, r7, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + blx sub_020CE3E0 + mov r0, #0x1b + add r1, r5, #0x0 + add r2, r4, #0x1 + strb r6, [r5, r4] + bl sub_02030ADC + cmp r0, #0x1 + bne _020836F0 + mov r4, #0x1 + b _020836F2 +_020836F0: + mov r4, #0x0 +_020836F2: + add r0, r5, #0x0 + bl sub_02016A18 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_020836FC +sub_020836FC: ; 0x020836FC + push {r3-r7, lr} + sub sp, #0x8 + str r2, [sp, #0x0] + str r3, [sp, #0x4] + bl sub_020669BC + mov r7, #0x0 + ldr r4, [sp, #0x4] + add r6, r0, #0x0 + add r5, r7, #0x0 +_02083710: + ldr r0, [sp, #0x0] + ldr r1, [r4, #0x0] + add r0, r0, r5 + add r2, r6, #0x0 + blx sub_020CE3E0 + add r7, r7, #0x1 + add r4, r4, #0x4 + add r5, r5, r6 + cmp r7, #0x4 + blt _02083710 + ldr r1, _02083738 ; =0x00000584 + ldr r0, [sp, #0x4] + ldrb r0, [r0, r1] + add r2, r0, #0x1 + ldr r0, [sp, #0x4] + strb r2, [r0, r1] + add sp, #0x8 + pop {r3-r7, pc} + nop +_02083738: .word 0x00000584 + + thumb_func_start sub_0208373C +sub_0208373C: ; 0x0208373C + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r5, r1, #0x0 + bl sub_020669BC + add r6, r0, #0x0 + lsl r0, r6, #0x2 + str r0, [sp, #0x0] + ldr r0, _02083788 ; =0x00000585 + mov r7, #0x0 + add r0, r4, r0 + str r0, [sp, #0x4] + add r4, r7, #0x0 +_02083758: + ldr r1, [sp, #0x4] + ldr r0, [r5, #0x0] + add r1, r1, r4 + add r2, r6, #0x0 + blx sub_020CE3E0 + add r7, r7, #0x1 + add r4, r4, r6 + add r5, r5, #0x4 + cmp r7, #0x4 + blt _02083758 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + mov r0, #0x1c + bl sub_02030A78 + cmp r0, #0x1 + bne _02083782 + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_02083782: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02083788: .word 0x00000585 + + thumb_func_start sub_0208378C +sub_0208378C: ; 0x0208378C + push {r3-r5, lr} + add r0, r2, #0x0 + add r2, #0x30 + ldrb r1, [r2, #0x0] + add r4, r3, #0x0 + add r5, r4, #0x0 + mov r2, #0x30 + add r3, r1, #0x0 + add r5, #0x10 + mul r3, r2 + add r1, r5, r3 + blx sub_020CE3E0 + ldr r0, _020837B0 ; =0x00000584 + ldrb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, r0] + pop {r3-r5, pc} + .balign 4 +_020837B0: .word 0x00000584 + + thumb_func_start sub_020837B4 +sub_020837B4: ; 0x020837B4 + push {r4-r6, lr} + add r5, r1, #0x0 + mov r0, #0x14 + mov r1, #0x31 + add r6, r2, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + mov r2, #0x30 + blx sub_020CE3E0 + add r0, r4, #0x0 + add r0, #0x30 + strb r5, [r0, #0x0] + mov r0, #0x1d + add r1, r4, #0x0 + mov r2, #0x31 + bl sub_02030ADC + cmp r0, #0x1 + bne _020837E6 + mov r5, #0x1 + b _020837E8 +_020837E6: + mov r5, #0x0 +_020837E8: + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020837F4 +sub_020837F4: ; 0x020837F4 + push {r3-r7, lr} + add r5, r3, #0x0 + add r6, r2, #0x0 + str r3, [sp, #0x0] + mov r4, #0x0 + add r5, #0xd0 + mov r7, #0x8 +_02083802: + lsl r0, r4, #0x3 + add r0, r6, r0 + add r1, r5, #0x0 + add r2, r7, #0x0 + blx sub_020CE3E0 + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, #0x3 + blt _02083802 + ldrb r2, [r6, #0x18] + ldr r1, _0208382C ; =0x0000011E + ldr r0, [sp, #0x0] + strb r2, [r0, r1] + ldr r1, _02083830 ; =0x00000584 + ldrb r0, [r0, r1] + add r2, r0, #0x1 + ldr r0, [sp, #0x0] + strb r2, [r0, r1] + pop {r3-r7, pc} + nop +_0208382C: .word 0x0000011E +_02083830: .word 0x00000584 + + thumb_func_start sub_02083834 +sub_02083834: ; 0x02083834 + push {r3-r7, lr} + str r0, [sp, #0x0] + mov r0, #0x14 + mov r1, #0x19 + add r5, r2, #0x0 + bl sub_02016998 + add r6, r0, #0x0 + mov r4, #0x0 + mov r7, #0x8 +_02083848: + lsl r1, r4, #0x3 + add r0, r5, #0x0 + add r1, r6, r1 + add r2, r7, #0x0 + blx sub_020CE3E0 + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, #0x3 + blt _02083848 + ldr r1, _02083884 ; =0x0000011E + ldr r0, [sp, #0x0] + mov r2, #0x19 + ldrb r0, [r0, r1] + add r1, r6, #0x0 + strb r0, [r6, #0x18] + mov r0, #0x1e + bl sub_02030ADC + cmp r0, #0x1 + bne _02083876 + mov r4, #0x1 + b _02083878 +_02083876: + mov r4, #0x0 +_02083878: + add r0, r6, #0x0 + bl sub_02016A18 + add r0, r4, #0x0 + pop {r3-r7, pc} + nop +_02083884: .word 0x0000011E + + thumb_func_start sub_02083888 +sub_02083888: ; 0x02083888 + push {r3-r7, lr} + add r5, r2, #0x0 + ldrb r0, [r5, #0x0] + add r6, r3, #0x0 + add r4, r6, #0x0 + add r4, #0xe8 + lsl r7, r0, #0x2 + ldr r0, [r4, r7] + bl sub_02021A4C + ldr r0, [r4, r7] + add r1, r5, #0x4 + bl sub_02021E28 + ldr r0, _020838B0 ; =0x00000584 + ldrb r1, [r6, r0] + add r1, r1, #0x1 + strb r1, [r6, r0] + pop {r3-r7, pc} + nop +_020838B0: .word 0x00000584 + + thumb_func_start sub_020838B4 +sub_020838B4: ; 0x020838B4 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r1, #0x0 + add r0, r2, #0x0 + add r1, sp, #0x0 + mov r2, #0x8 + bl sub_02021EF0 + mov r0, #0x14 + add r1, r0, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + add r0, sp, #0x0 + add r1, r4, #0x4 + mov r2, #0x10 + blx sub_020CE3E0 + strb r5, [r4, #0x0] + mov r0, #0x10 + strb r0, [r4, #0x1] + mov r0, #0x0 + strb r0, [r4, #0x2] + strb r0, [r4, #0x3] + mov r0, #0x1f + add r1, r4, #0x0 + mov r2, #0x14 + bl sub_02030ADC + cmp r0, #0x1 + bne _020838F6 + mov r5, #0x1 + b _020838F8 +_020838F6: + mov r5, #0x0 +_020838F8: + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_02083904 +sub_02083904: ; 0x02083904 + push {r3-r5, lr} + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_02026FE4 + add r2, r0, #0x0 + ldrb r1, [r5, r2] + add r0, r5, #0x0 + lsl r1, r1, #0x2 + add r1, r4, r1 + add r1, #0xf8 + ldr r1, [r1, #0x0] + blx sub_020CE3E0 + ldr r0, _0208392C ; =0x00000584 + ldrb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, r0] + pop {r3-r5, pc} + nop +_0208392C: .word 0x00000584 + + thumb_func_start sub_02083930 +sub_02083930: ; 0x02083930 + push {r3-r7, lr} + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_02026FE4 + add r4, r0, #0x0 + mov r0, #0x14 + add r1, r4, #0x1 + bl sub_02016998 + add r5, r0, #0x0 + add r0, r7, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + blx sub_020CE3E0 + mov r0, #0x20 + add r1, r5, #0x0 + add r2, r4, #0x1 + strb r6, [r5, r4] + bl sub_02030ADC + cmp r0, #0x1 + bne _02083964 + mov r4, #0x1 + b _02083966 +_02083964: + mov r4, #0x0 +_02083966: + add r0, r5, #0x0 + bl sub_02016A18 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02083970 +sub_02083970: ; 0x02083970 + push {r3-r7, lr} + sub sp, #0x8 + str r2, [sp, #0x0] + str r3, [sp, #0x4] + bl sub_02026FE4 + add r6, r0, #0x0 + mov r0, #0x1 + lsl r1, r6, #0x2 + lsl r0, r0, #0xa + cmp r1, r0 + blt _0208398C + bl sub_02020C2C +_0208398C: + mov r7, #0x0 + ldr r4, [sp, #0x4] + add r5, r7, #0x0 +_02083992: + add r1, r4, #0x0 + ldr r0, [sp, #0x0] + add r1, #0xf8 + ldr r1, [r1, #0x0] + add r0, r0, r5 + add r2, r6, #0x0 + blx sub_020CE3E0 + add r7, r7, #0x1 + add r4, r4, #0x4 + add r5, r5, r6 + cmp r7, #0x4 + blt _02083992 + ldr r1, _020839BC ; =0x00000584 + ldr r0, [sp, #0x4] + ldrb r0, [r0, r1] + add r2, r0, #0x1 + ldr r0, [sp, #0x4] + strb r2, [r0, r1] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020839BC: .word 0x00000584 + + thumb_func_start sub_020839C0 +sub_020839C0: ; 0x020839C0 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r5, r1, #0x0 + bl sub_02026FE4 + add r6, r0, #0x0 + mov r1, #0x1 + lsl r0, r6, #0x2 + lsl r1, r1, #0xa + str r0, [sp, #0x0] + cmp r0, r1 + blt _020839DE + bl sub_02020C2C +_020839DE: + ldr r0, _02083A18 ; =0x00000585 + mov r7, #0x0 + add r0, r4, r0 + str r0, [sp, #0x4] + add r4, r7, #0x0 +_020839E8: + ldr r1, [sp, #0x4] + ldr r0, [r5, #0x0] + add r1, r1, r4 + add r2, r6, #0x0 + blx sub_020CE3E0 + add r7, r7, #0x1 + add r4, r4, r6 + add r5, r5, #0x4 + cmp r7, #0x4 + blt _020839E8 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + mov r0, #0x21 + bl sub_02030A78 + cmp r0, #0x1 + bne _02083A12 + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_02083A12: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02083A18: .word 0x00000585 + + thumb_func_start sub_02083A1C +sub_02083A1C: ; 0x02083A1C + push {r4, lr} + add r4, r1, #0x0 + ldr r1, _02083A30 ; =0x000019A0 + add r0, r2, #0x0 + add r1, r3, r1 + add r2, r4, #0x0 + blx sub_020CE3E0 + pop {r4, pc} + nop +_02083A30: .word 0x000019A0 + + thumb_func_start sub_02083A34 +sub_02083A34: ; 0x02083A34 + push {r3, lr} + add r3, r0, #0x0 + ldrb r0, [r3, #0x16] + cmp r0, #0x0 + bne _02083A44 + str r1, [r3, #0x0] + mov r0, #0x1 + pop {r3, pc} +_02083A44: + ldrb r2, [r3, #0x14] + ldrb r0, [r3, #0x15] + cmp r2, r0 + beq _02083A50 + mov r0, #0x0 + pop {r3, pc} +_02083A50: + str r1, [r3, #0x8] + add r3, #0x8 + mov r0, #0x22 + add r1, r3, #0x0 + mov r2, #0x8 + bl sub_02030ADC + cmp r0, #0x1 + bne _02083A66 + mov r0, #0x1 + pop {r3, pc} +_02083A66: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02083A6C +sub_02083A6C: ; 0x02083A6C + ldrb r2, [r2, #0x4] + add r1, r3, r0 + ldr r0, _02083A78 ; =0x000019B0 + strb r2, [r1, r0] + bx lr + nop +_02083A78: .word 0x000019B0 + + thumb_func_start sub_02083A7C +sub_02083A7C: ; 0x02083A7C + push {r3, lr} + add r2, r0, #0x0 + ldrb r0, [r2, #0x16] + cmp r0, #0x0 + bne _02083A8C + strb r1, [r2, #0x10] + mov r0, #0x1 + pop {r3, pc} +_02083A8C: + strb r1, [r2, #0xc] + add r2, #0x8 + add r1, r2, #0x0 + mov r0, #0x23 + mov r2, #0x8 + bl sub_02030ADC + cmp r0, #0x1 + bne _02083AA2 + mov r0, #0x1 + pop {r3, pc} +_02083AA2: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02083AA8 +sub_02083AA8: ; 0x02083AA8 + push {r3-r5, lr} + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_02029EC4 + add r2, r0, #0x0 + ldrb r1, [r5, r2] + add r0, r5, #0x0 + lsl r1, r1, #0x2 + add r3, r4, r1 + mov r1, #0x57 + lsl r1, r1, #0x2 + ldr r1, [r3, r1] + blx sub_020CE3E0 + ldr r0, _02083AD0 ; =0x00000584 + ldrb r1, [r4, r0] + add r1, r1, #0x1 + strb r1, [r4, r0] + pop {r3-r5, pc} + .balign 4 +_02083AD0: .word 0x00000584 + + thumb_func_start sub_02083AD4 +sub_02083AD4: ; 0x02083AD4 + push {r3-r7, lr} + add r4, r0, #0x0 + add r7, r1, #0x0 + add r6, r2, #0x0 + bl sub_02029EC4 + add r5, r0, #0x0 + ldr r0, _02083B0C ; =0x00000585 + add r4, r4, r0 + cmp r6, #0x0 + beq _02083AF4 + add r0, r6, #0x0 + add r1, r4, #0x0 + add r2, r5, #0x0 + blx sub_020CE3E0 +_02083AF4: + mov r0, #0x24 + add r1, r4, #0x0 + add r2, r5, #0x1 + strb r7, [r4, r5] + bl sub_02030A78 + cmp r0, #0x1 + bne _02083B08 + mov r0, #0x1 + pop {r3-r7, pc} +_02083B08: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02083B0C: .word 0x00000585 + + thumb_func_start sub_02083B10 +sub_02083B10: ; 0x02083B10 + push {r3-r6} + ldrb r1, [r2, #0x6] + ldrb r4, [r2, #0x0] + mov r5, #0x42 + add r0, r3, r1 + lsl r5, r5, #0x2 + strb r4, [r0, r5] + ldrb r6, [r2, #0x1] + add r4, r5, #0x4 + strb r6, [r0, r4] + add r4, r5, #0x0 + ldrb r6, [r2, #0x2] + add r4, #0x8 + add r5, #0xc + strb r6, [r0, r4] + lsl r0, r1, #0x1 + ldrh r2, [r2, #0x4] + add r0, r3, r0 + strh r2, [r0, r5] + ldr r0, _02083B44 ; =0x00000584 + ldrb r1, [r3, r0] + add r1, r1, #0x1 + strb r1, [r3, r0] + pop {r3-r6} + bx lr + nop +_02083B44: .word 0x00000584 + + thumb_func_start sub_02083B48 +sub_02083B48: ; 0x02083B48 + push {r4-r6, lr} + add r5, r1, #0x0 + mov r0, #0x14 + mov r1, #0x7 + add r6, r2, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + mov r2, #0x6 + blx sub_020CE3E0 + mov r0, #0x25 + add r1, r4, #0x0 + mov r2, #0x7 + strb r5, [r4, #0x6] + bl sub_02030ADC + cmp r0, #0x1 + bne _02083B76 + mov r5, #0x1 + b _02083B78 +_02083B76: + mov r5, #0x0 +_02083B78: + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02083B84 +sub_02083B84: ; 0x02083B84 + ldr r3, _02083B90 ; =sub_0202D8D0 + add r2, r0, #0x0 + ldr r0, _02083B94 ; =0x020FBF98 + mov r1, #0xb + bx r3 + nop +_02083B90: .word sub_0202D8D0 + 1 +_02083B94: .word 0x020FBF98 + + thumb_func_start sub_02083B98 +sub_02083B98: ; 0x02083B98 + cmp r0, #0xc + bne _02083BA0 + mov r0, #0xc + bx lr +_02083BA0: + cmp r0, #0x6 + bhs _02083BA8 + add r0, r0, #0x6 + bx lr +_02083BA8: + sub r0, r0, #0x6 + bx lr + + thumb_func_start sub_02083BAC +sub_02083BAC: ; 0x02083BAC + push {r4-r6, lr} + add r3, #0x84 + add r5, r0, #0x0 + add r6, r2, #0x0 + ldr r4, [r3, #0x0] + bl sub_02031190 + cmp r5, r0 + beq _02083C1A + ldr r0, _02083C1C ; =0x0000221C + mov r2, #0x59 + ldr r0, [r4, r0] + add r1, r6, #0x0 + lsl r2, r2, #0x4 + blx sub_020DF438 + ldr r0, [r4, #0x58] + add r0, r0, #0x1 + str r0, [r4, #0x58] + bl sub_0206B8A4 + mov r1, #0x59 + ldr r2, [r4, #0x58] + lsl r1, r1, #0x4 + mul r1, r2 + cmp r1, r0 + blt _02083C06 + bl sub_02031190 + cmp r0, #0x1 + bne _02083BF6 + add r0, r4, #0x0 + mov r1, #0x1b + mov r2, #0x0 + bl sub_0222F440 + b _02083C14 +_02083BF6: + bl sub_02031190 + ldr r1, _02083C20 ; =0x00002218 + ldr r2, [r4, #0x50] + ldr r1, [r4, r1] + bl sub_0222F480 + b _02083C14 +_02083C06: + bl sub_02031190 + ldr r1, _02083C20 ; =0x00002218 + ldr r2, [r4, #0x50] + ldr r1, [r4, r1] + bl sub_0222F480 +_02083C14: + ldr r0, [r4, #0x50] + add r0, r0, #0x1 + str r0, [r4, #0x50] +_02083C1A: + pop {r4-r6, pc} + .balign 4 +_02083C1C: .word 0x0000221C +_02083C20: .word 0x00002218 + + thumb_func_start sub_02083C24 +sub_02083C24: ; 0x02083C24 + push {r4-r6, lr} + add r3, #0x84 + add r5, r0, #0x0 + add r6, r2, #0x0 + ldr r4, [r3, #0x0] + bl sub_02031190 + cmp r5, r0 + beq _02083C40 + ldrb r0, [r6, #0x0] + bl sub_02083B98 + add r4, #0x8c + str r0, [r4, #0x0] +_02083C40: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02083C44 +sub_02083C44: ; 0x02083C44 + add r3, #0x84 + ldrb r2, [r2, #0x0] + ldr r1, [r3, #0x0] + lsl r0, r0, #0x2 + add r0, r1, r0 + str r2, [r0, #0x60] + bx lr + .balign 4 + + thumb_func_start sub_02083C54 +sub_02083C54: ; 0x02083C54 + bx lr + .balign 4 + + thumb_func_start sub_02083C58 +sub_02083C58: ; 0x02083C58 + bx lr + .balign 4 + + thumb_func_start sub_02083C5C +sub_02083C5C: ; 0x02083C5C + add r3, #0x84 + ldr r0, [r3, #0x0] + mov r1, #0x2 + str r1, [r0, #0x54] + bx lr + .balign 4 + + thumb_func_start sub_02083C68 +sub_02083C68: ; 0x02083C68 + bx lr + .balign 4 + + thumb_func_start sub_02083C6C +sub_02083C6C: ; 0x02083C6C + add r3, #0x84 + mov r0, #0x8b + ldrb r2, [r2, #0x0] + ldr r1, [r3, #0x0] + lsl r0, r0, #0x6 + str r2, [r1, r0] + bx lr + .balign 4 + + thumb_func_start sub_02083C7C +sub_02083C7C: ; 0x02083C7C + push {r4-r6, lr} + add r6, r0, #0x0 + ldr r0, [r3, #0xc] + add r5, r2, #0x0 + bl sub_0202A918 + add r4, r0, #0x0 + bl sub_02031190 + cmp r6, r0 + beq _02083CA8 + mov r2, #0x0 +_02083C94: + ldrb r1, [r5, r2] + cmp r1, #0x0 + beq _02083CA2 + ldrb r0, [r4, r2] + cmp r0, r1 + beq _02083CA2 + strb r1, [r4, r2] +_02083CA2: + add r2, r2, #0x1 + cmp r2, #0xe + blt _02083C94 +_02083CA8: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02083CAC +sub_02083CAC: ; 0x02083CAC + push {r4-r6, lr} + add r3, #0x84 + add r5, r0, #0x0 + add r6, r2, #0x0 + ldr r4, [r3, #0x0] + bl sub_02031190 + cmp r5, r0 + beq _02083CD0 + ldr r0, _02083CD4 ; =0x00002224 + add r1, r6, #0x0 + ldr r0, [r4, r0] + mov r2, #0x1 + mov r3, #0x1a + bl sub_02025520 + mov r0, #0x3 + str r0, [r4, #0x54] +_02083CD0: + pop {r4-r6, pc} + nop +_02083CD4: .word 0x00002224 + + thumb_func_start sub_02083CD8 +sub_02083CD8: ; 0x02083CD8 + push {r4-r6, lr} + add r3, #0x84 + add r5, r0, #0x0 + add r6, r2, #0x0 + ldr r4, [r3, #0x0] + bl sub_02031190 + cmp r5, r0 + beq _02083D0A + ldr r1, _02083D0C ; =0x00002E14 + mov r2, #0xfb + add r3, r4, r1 + lsl r2, r2, #0x2 + add r1, r5, #0x0 + mul r1, r2 + add r0, r6, #0x0 + add r1, r3, r1 + sub r2, r2, #0x4 + blx sub_020CE28C + mov r0, #0x4 + str r0, [r4, #0x54] + mov r0, #0x0 + bl sub_02031400 +_02083D0A: + pop {r4-r6, pc} + .balign 4 +_02083D0C: .word 0x00002E14 + + thumb_func_start sub_02083D10 +sub_02083D10: ; 0x02083D10 + add r0, #0x84 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02083D18 +sub_02083D18: ; 0x02083D18 + mov r0, #0xfb + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start sub_02083D20 +sub_02083D20: ; 0x02083D20 + mov r0, #0xe + bx lr + + thumb_func_start sub_02083D24 +sub_02083D24: ; 0x02083D24 + mov r0, #0x88 + bx lr + + thumb_func_start sub_02083D28 +sub_02083D28: ; 0x02083D28 + mov r0, #0x59 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_02083D30 +sub_02083D30: ; 0x02083D30 + add r1, #0x84 + ldr r2, [r1, #0x0] + ldr r1, _02083D44 ; =0x000022F4 + add r2, r2, r1 + mov r1, #0x59 + lsl r1, r1, #0x4 + mul r1, r0 + add r0, r2, r1 + bx lr + nop +_02083D44: .word 0x000022F4 + + thumb_func_start sub_02083D48 +sub_02083D48: ; 0x02083D48 + ldr r3, _02083D54 ; =sub_0202D8D0 + add r2, r0, #0x0 + ldr r0, _02083D58 ; =0x020FC01C + mov r1, #0x6c + bx r3 + nop +_02083D54: .word sub_0202D8D0 + 1 +_02083D58: .word 0x020FC01C + + thumb_func_start sub_02083D5C +sub_02083D5C: ; 0x02083D5C + push {r3-r5, lr} + add r5, r2, #0x0 + add r4, r3, #0x0 + bl sub_02031190 + cmp r0, #0x0 + beq _02083DBA + mov r3, #0xfb + lsl r3, r3, #0x2 + ldrb r2, [r5, r3] + sub r0, r3, #0x4 + add r1, r2, #0x0 + mul r1, r0 + mov r0, #0xe1 + lsl r0, r0, #0x6 + cmp r1, r0 + ldr r2, _02083DE8 ; =0x000043D0 + ble _02083D90 + add r2, r4, r2 + add r1, r2, r1 + mov r2, #0x19 + add r0, r5, #0x0 + lsl r2, r2, #0x4 + blx sub_020CE28C + b _02083D9C +_02083D90: + add r2, r4, r2 + add r1, r2, r1 + add r0, r5, #0x0 + sub r2, r3, #0x4 + blx sub_020CE28C +_02083D9C: + mov r1, #0xb5 + ldr r0, _02083DE8 ; =0x000043D0 + lsl r1, r1, #0x2 + mov r2, #0xe1 + ldr r1, [r4, r1] + add r0, r4, r0 + lsl r2, r2, #0x6 + blx sub_020CE28C + mov r0, #0xb2 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl sub_020191D0 + pop {r3-r5, pc} +_02083DBA: + ldr r1, _02083DEC ; =0x000043CC + mov r0, #0xfa + ldr r2, [r4, r1] + lsl r0, r0, #0x2 + add r3, r2, #0x0 + mul r3, r0 + mov r0, #0xe1 + lsl r0, r0, #0x6 + cmp r3, r0 + bge _02083DDC + add r0, r2, #0x1 + str r0, [r4, r1] + ldr r1, [r4, r1] + add r0, r4, #0x0 + bl sub_0208402C + pop {r3-r5, pc} +_02083DDC: + mov r1, #0x0 + mov r0, #0x7c + add r2, r1, #0x0 + bl sub_02030BC4 + pop {r3-r5, pc} + .balign 4 +_02083DE8: .word 0x000043D0 +_02083DEC: .word 0x000043CC + + thumb_func_start sub_02083DF0 +sub_02083DF0: ; 0x02083DF0 + push {r3-r4} + cmp r0, #0x0 + beq _02083E0E + add r4, r0, #0x0 + mov r1, #0xa + mul r4, r1 + ldr r0, _02083E14 ; =0x000093BD + add r3, r3, r4 + add r3, r3, r0 +_02083E02: + ldrb r0, [r2, #0x0] + add r2, r2, #0x1 + strb r0, [r3, #0x0] + add r3, r3, #0x1 + sub r1, r1, #0x1 + bne _02083E02 +_02083E0E: + pop {r3-r4} + bx lr + nop +_02083E14: .word 0x000093BD + + thumb_func_start sub_02083E18 +sub_02083E18: ; 0x02083E18 + push {r4-r7} + cmp r3, #0x0 + beq _02083E42 + cmp r0, #0x0 + bne _02083E42 + ldr r0, _02083E48 ; =0x00004382 + mov r7, #0x0 +_02083E26: + add r6, r2, #0x0 + add r5, r3, r0 + mov r4, #0xa +_02083E2C: + ldrb r1, [r6, #0x0] + add r6, r6, #0x1 + strb r1, [r5, #0x0] + add r5, r5, #0x1 + sub r4, r4, #0x1 + bne _02083E2C + add r7, r7, #0x1 + add r2, #0xa + add r3, #0xa + cmp r7, #0x5 + blt _02083E26 +_02083E42: + pop {r4-r7} + bx lr + nop +_02083E48: .word 0x00004382 + + thumb_func_start sub_02083E4C +sub_02083E4C: ; 0x02083E4C + push {r4, lr} + add r4, r3, #0x0 + add r0, r4, #0x0 + mov r1, #0x3 + mov r2, #0x0 + bl sub_021D8B64 + ldr r1, _02083E8C ; =0x000043D0 + mov r2, #0xe1 + mov r0, #0x0 + add r1, r4, r1 + lsl r2, r2, #0x6 + blx sub_020CE240 + bl sub_02031190 + cmp r0, #0x0 + bne _02083E8A + bl sub_02030F20 + mov r1, #0xc6 + lsl r1, r1, #0x2 + str r0, [r4, r1] + bl sub_0202CB8C + mov r1, #0xc7 + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, _02083E90 ; =0x000093F4 + mov r1, #0x1 + str r1, [r4, r0] +_02083E8A: + pop {r4, pc} + .balign 4 +_02083E8C: .word 0x000043D0 +_02083E90: .word 0x000093F4 + + thumb_func_start sub_02083E94 +sub_02083E94: ; 0x02083E94 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r0, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + cmp r6, #0x0 + beq _02083F2E + bl sub_02031190 + cmp r0, #0x0 + bne _02083F78 + ldrb r0, [r5, #0x0] + add r1, sp, #0x0 + strb r0, [r1, #0x0] + ldrb r0, [r5, #0x1] + strb r0, [r1, #0x1] + ldrb r0, [r5, #0x2] + strb r0, [r1, #0x2] + ldrb r0, [r5, #0x3] + strb r0, [r1, #0x3] + mov r0, #0xc6 + strb r6, [r1, #0x0] + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + strb r0, [r1, #0x1] + ldrb r0, [r5, #0x2] + cmp r0, #0x0 + beq _02083ED0 + cmp r0, #0x1 + b _02083F20 +_02083ED0: + bl sub_02030F20 + mov r1, #0xc6 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + cmp r1, r0 + bne _02083EFE + bl sub_021D917C + mov r1, #0xc6 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + cmp r1, r0 + bne _02083EFE + bl sub_0202CB8C + blx sub_020DDC5C + mov r1, #0xc6 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + cmp r1, r0 + beq _02083F06 +_02083EFE: + mov r1, #0x0 + add r0, sp, #0x0 + strb r1, [r0, #0x3] + b _02083F20 +_02083F06: + ldr r0, _02083F7C ; =0x000093B4 + mov r1, #0x1 + add r2, r1, #0x0 + ldr r3, [r4, r0] + lsl r2, r6 + orr r2, r3 + str r2, [r4, r0] + add r0, sp, #0x0 + strb r1, [r0, #0x3] + bl sub_02030F20 + bl sub_02032B6C +_02083F20: + mov r0, #0x7e + add r1, sp, #0x0 + mov r2, #0x4 + bl sub_02030BC4 + add sp, #0x4 + pop {r3-r6, pc} +_02083F2E: + ldrb r0, [r5, #0x2] + cmp r0, #0x0 + beq _02083F3C + cmp r0, #0x1 + beq _02083F6E + add sp, #0x4 + pop {r3-r6, pc} +_02083F3C: + ldrb r6, [r5, #0x0] + bl sub_02031190 + cmp r6, r0 + bne _02083F78 + ldrb r0, [r5, #0x3] + cmp r0, #0x0 + bne _02083F5A + add r0, r4, #0x0 + mov r1, #0x9 + add r2, r6, #0x0 + bl sub_021D8B64 + add sp, #0x4 + pop {r3-r6, pc} +_02083F5A: + ldrb r1, [r5, #0x1] + ldr r0, _02083F80 ; =0x000093B8 + strh r1, [r4, r0] + ldrb r2, [r5, #0x0] + add r0, r4, #0x0 + mov r1, #0x8 + bl sub_021D8B64 + add sp, #0x4 + pop {r3-r6, pc} +_02083F6E: + ldrb r2, [r5, #0x0] + add r0, r4, #0x0 + mov r1, #0x15 + bl sub_021D8B64 +_02083F78: + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02083F7C: .word 0x000093B4 +_02083F80: .word 0x000093B8 + + thumb_func_start sub_02083F84 +sub_02083F84: ; 0x02083F84 + bx lr + .balign 4 + + thumb_func_start sub_02083F88 +sub_02083F88: ; 0x02083F88 + push {r4, lr} + ldrb r2, [r2, #0x0] + add r4, r3, #0x0 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_021D8B64 + bl sub_02031190 + cmp r0, #0x0 + bne _02083FB6 + mov r0, #0x3 + lsl r0, r0, #0x8 + ldr r0, [r4, r0] + cmp r0, #0x1 + bne _02083FB6 + ldr r1, _02083FB8 ; =0x000043CC + mov r0, #0x0 + str r0, [r4, r1] + ldr r1, [r4, r1] + add r0, r4, #0x0 + bl sub_0208402C +_02083FB6: + pop {r4, pc} + .balign 4 +_02083FB8: .word 0x000043CC + + thumb_func_start sub_02083FBC +sub_02083FBC: ; 0x02083FBC + bx lr + .balign 4 + + thumb_func_start sub_02083FC0 +sub_02083FC0: ; 0x02083FC0 + bx lr + .balign 4 + + thumb_func_start sub_02083FC4 +sub_02083FC4: ; 0x02083FC4 + push {r4, lr} + add r4, r3, #0x0 + bl sub_02031190 + cmp r0, #0x0 + beq _02083FDA + add r0, r4, #0x0 + mov r1, #0xf + mov r2, #0x0 + bl sub_021D8B64 +_02083FDA: + pop {r4, pc} + + thumb_func_start sub_02083FDC +sub_02083FDC: ; 0x02083FDC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r3, #0x0 + bl sub_02031190 + cmp r0, #0x0 + beq _02083FEE + bl sub_02020C2C +_02083FEE: + bl sub_02031190 + cmp r0, #0x0 + bne _02084012 + ldr r0, _0208401C ; =0x000093FC + ldr r1, [r4, r0] + cmp r1, #0x0 + beq _0208400E + add r0, sp, #0x0 + strb r5, [r0, #0x0] + mov r0, #0x7b + add r1, sp, #0x0 + mov r2, #0x1 + bl sub_02030BC4 + b _02084012 +_0208400E: + mov r1, #0x1 + str r1, [r4, r0] +_02084012: + mov r0, #0x0 + mov r1, #0x1 + bl sub_020334E8 + pop {r3-r5, pc} + .balign 4 +_0208401C: .word 0x000093FC + + thumb_func_start sub_02084020 +sub_02084020: ; 0x02084020 + ldr r0, _02084028 ; =0x000093F4 + mov r1, #0x1 + str r1, [r3, r0] + bx lr + .balign 4 +_02084028: .word 0x000093F4 + + thumb_func_start sub_0208402C +sub_0208402C: ; 0x0208402C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0xb5 + mov r2, #0xfa + add r4, r1, #0x0 + lsl r0, r0, #0x2 + ldr r1, [r5, r0] + lsl r2, r2, #0x2 + add r0, r4, #0x0 + mul r0, r2 + add r0, r1, r0 + ldr r1, _02084078 ; =0x00007C10 + add r1, r5, r1 + blx sub_020CE28C + ldr r0, _02084078 ; =0x00007C10 + mov r2, #0x0 + add r1, r2, #0x0 + add r3, r5, r0 +_02084052: + ldr r0, [r3, #0x0] + add r1, r1, #0x1 + eor r2, r0 + add r3, r3, #0x4 + cmp r1, #0xfa + blt _02084052 + ldr r0, _0208407C ; =0x00007FF8 + ldr r1, _02084078 ; =0x00007C10 + str r2, [r5, r0] + add r0, r0, #0x4 + mov r2, #0x3f + strb r4, [r5, r0] + mov r0, #0x76 + add r1, r5, r1 + lsl r2, r2, #0x4 + bl sub_02030B3C + pop {r3-r5, pc} + nop +_02084078: .word 0x00007C10 +_0208407C: .word 0x00007FF8 + + thumb_func_start sub_02084080 +sub_02084080: ; 0x02084080 + mov r2, #0x2 + lsl r2, r2, #0xe + add r2, r1, r2 + mov r1, #0x3f + lsl r1, r1, #0x4 + mul r1, r0 + add r0, r2, r1 + bx lr + + thumb_func_start sub_02084090 +sub_02084090: ; 0x02084090 + mov r0, #0x4 + bx lr + + thumb_func_start sub_02084094 +sub_02084094: ; 0x02084094 + mov r0, #0x4 + bx lr + + thumb_func_start sub_02084098 +sub_02084098: ; 0x02084098 + ldr r3, _020840A4 ; =sub_0202D8D0 + add r2, r0, #0x0 + ldr r0, _020840A8 ; =0x020FC52C + mov r1, #0x6c + bx r3 + nop +_020840A4: .word sub_0202D8D0 + 1 +_020840A8: .word 0x020FC52C + + thumb_func_start sub_020840AC +sub_020840AC: ; 0x020840AC + ldr r0, _020840B8 ; =0x00004A34 + ldr r1, [r3, r0] + add r1, r1, #0x1 + str r1, [r3, r0] + bx lr + nop +_020840B8: .word 0x00004A34 + + thumb_func_start sub_020840BC +sub_020840BC: ; 0x020840BC + cmp r0, #0x0 + bne _020840C6 + ldrb r1, [r2, #0x0] + ldr r0, _020840C8 ; =0x00004A3C + str r1, [r3, r0] +_020840C6: + bx lr + .balign 4 +_020840C8: .word 0x00004A3C + + thumb_func_start sub_020840CC +sub_020840CC: ; 0x020840CC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0208410C ; =0x00004A34 + add r4, r3, #0x0 + mov r1, #0x0 + str r1, [r4, r0] + mov r1, #0x1 + add r0, #0xc + strb r1, [r4, r0] + bl sub_02031190 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02084270 + add r0, r4, #0x0 + bl sub_021D844C + lsl r2, r5, #0x18 + add r0, r4, #0x0 + mov r1, #0x19 + lsr r2, r2, #0x18 + bl sub_021D88E4 + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_020334E8 + ldr r0, _02084110 ; =0x00000658 + bl sub_020054C8 + pop {r3-r5, pc} + .balign 4 +_0208410C: .word 0x00004A34 +_02084110: .word 0x00000658 + + thumb_func_start sub_02084114 +sub_02084114: ; 0x02084114 + add r0, r3, #0x0 + ldr r3, _02084120 ; =sub_021D88E4 + mov r1, #0x2 + mov r2, #0x0 + bx r3 + nop +_02084120: .word sub_021D88E4 + 1 + + thumb_func_start sub_02084124 +sub_02084124: ; 0x02084124 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r0, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + cmp r6, #0x0 + beq _020841BA + bl sub_02031190 + cmp r0, #0x0 + bne _02084204 + ldrb r0, [r5, #0x0] + add r1, sp, #0x0 + strb r0, [r1, #0x0] + ldrb r0, [r5, #0x1] + strb r0, [r1, #0x1] + ldrb r0, [r5, #0x2] + strb r0, [r1, #0x2] + ldrb r0, [r5, #0x3] + strb r0, [r1, #0x3] + ldr r0, _02084208 ; =0x00004A48 + strb r6, [r1, #0x0] + ldr r0, [r4, r0] + strb r0, [r1, #0x1] + ldrb r0, [r5, #0x2] + cmp r0, #0x0 + beq _0208415E + cmp r0, #0x1 + b _020841AC +_0208415E: + bl sub_02030F20 + ldr r1, _02084208 ; =0x00004A48 + ldr r1, [r4, r1] + cmp r1, r0 + bne _02084186 + bl sub_021D8C24 + ldr r1, _02084208 ; =0x00004A48 + ldr r1, [r4, r1] + cmp r1, r0 + bne _02084186 + bl sub_0202CB8C + blx sub_020DDC5C + ldr r1, _02084208 ; =0x00004A48 + ldr r2, [r4, r1] + cmp r2, r0 + beq _0208418E +_02084186: + mov r1, #0x0 + add r0, sp, #0x0 + strb r1, [r0, #0x3] + b _020841AC +_0208418E: + add r0, r1, #0x0 + add r0, #0x8 + mov r2, #0x1 + ldr r3, [r4, r0] + add r0, r2, #0x0 + lsl r0, r6 + orr r0, r3 + add r1, #0x8 + str r0, [r4, r1] + add r0, sp, #0x0 + strb r2, [r0, #0x3] + bl sub_02030F20 + bl sub_02032B6C +_020841AC: + mov r0, #0x70 + add r1, sp, #0x0 + mov r2, #0x4 + bl sub_02030ADC + add sp, #0x4 + pop {r3-r6, pc} +_020841BA: + ldrb r0, [r5, #0x2] + cmp r0, #0x0 + beq _020841C8 + cmp r0, #0x1 + beq _020841FA + add sp, #0x4 + pop {r3-r6, pc} +_020841C8: + ldrb r6, [r5, #0x0] + bl sub_02031190 + cmp r6, r0 + bne _02084204 + ldrb r0, [r5, #0x3] + cmp r0, #0x0 + bne _020841E6 + add r0, r4, #0x0 + mov r1, #0x8 + add r2, r6, #0x0 + bl sub_021D88E4 + add sp, #0x4 + pop {r3-r6, pc} +_020841E6: + ldrb r1, [r5, #0x1] + ldr r0, _0208420C ; =0x00004A5C + strh r1, [r4, r0] + ldrb r2, [r5, #0x0] + add r0, r4, #0x0 + mov r1, #0x7 + bl sub_021D88E4 + add sp, #0x4 + pop {r3-r6, pc} +_020841FA: + ldrb r2, [r5, #0x0] + add r0, r4, #0x0 + mov r1, #0x13 + bl sub_021D88E4 +_02084204: + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 +_02084208: .word 0x00004A48 +_0208420C: .word 0x00004A5C + + thumb_func_start sub_02084210 +sub_02084210: ; 0x02084210 + push {r4, lr} + ldrb r2, [r2, #0x0] + add r4, r3, #0x0 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_021D89CC + bl sub_02031190 + cmp r0, #0x0 + bne _0208422E + mov r0, #0x3b + mov r1, #0x0 + lsl r0, r0, #0x4 + str r1, [r4, r0] +_0208422E: + pop {r4, pc} + + thumb_func_start sub_02084230 +sub_02084230: ; 0x02084230 + bx lr + .balign 4 + + thumb_func_start sub_02084234 +sub_02084234: ; 0x02084234 + bx lr + .balign 4 + + thumb_func_start sub_02084238 +sub_02084238: ; 0x02084238 + push {r4, lr} + add r4, r3, #0x0 + bl sub_02031190 + cmp r0, #0x0 + beq _0208424E + add r0, r4, #0x0 + mov r1, #0xd + mov r2, #0x0 + bl sub_021D88E4 +_0208424E: + pop {r4, pc} + + thumb_func_start sub_02084250 +sub_02084250: ; 0x02084250 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl sub_02031190 + cmp r0, #0x0 + bne _0208426C + add r0, sp, #0x0 + strb r4, [r0, #0x0] + mov r0, #0x6e + add r1, sp, #0x0 + mov r2, #0x1 + bl sub_02030ADC +_0208426C: + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start sub_02084270 +sub_02084270: ; 0x02084270 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r0, #0xed + mov r3, #0x0 + lsl r0, r0, #0x2 + add r5, r4, r0 + add r2, r3, #0x0 + sub r0, #0xc6 +_02084280: + ldr r1, [r5, #0x0] + add r2, r2, #0x1 + eor r3, r1 + add r5, r5, #0x4 + cmp r2, r0 + blt _02084280 + ldr r0, _020842AC ; =0x00000F6C + str r3, [r4, r0] + bl sub_0201B9EC + mov r1, #0xf7 + lsl r1, r1, #0x4 + str r0, [r4, r1] + mov r1, #0xed + lsl r1, r1, #0x2 + mov r2, #0x2f + mov r0, #0x74 + add r1, r4, r1 + lsl r2, r2, #0x6 + bl sub_02030A78 + pop {r3-r5, pc} + .balign 4 +_020842AC: .word 0x00000F6C + + thumb_func_start sub_020842B0 +sub_020842B0: ; 0x020842B0 + mov r0, #0x0 + bx lr + + thumb_func_start sub_020842B4 +sub_020842B4: ; 0x020842B4 + mov r0, #0x1 + bx lr + + thumb_func_start sub_020842B8 +sub_020842B8: ; 0x020842B8 + mov r0, #0x4 + bx lr + + thumb_func_start sub_020842BC +sub_020842BC: ; 0x020842BC + ldr r2, _020842CC ; =0x00000F74 + add r2, r1, r2 + mov r1, #0x2f + lsl r1, r1, #0x6 + mul r1, r0 + add r0, r2, r1 + bx lr + nop +_020842CC: .word 0x00000F74 + + thumb_func_start sub_020842D0 +sub_020842D0: ; 0x020842D0 + ldr r0, _020842D4 ; =0x020FCA3C + bx lr + .balign 4 +_020842D4: .word 0x020FCA3C + + thumb_func_start sub_020842D8 +sub_020842D8: ; 0x020842D8 + mov r0, #0x9 + bx lr + + thumb_func_start sub_020842DC +sub_020842DC: ; 0x020842DC + push {r3-r7, lr} + sub sp, #0x18 + str r1, [sp, #0x4] + add r6, r0, #0x0 + add r7, r2, #0x0 + ldr r0, [sp, #0x4] + mov r1, #0x0 + add r2, r3, #0x0 + bl sub_0206E710 + mov r1, #0xe + add r4, r0, #0x0 + bl sub_0206E7DC + cmp r0, #0x1 + beq _02084308 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x0 + pop {r3-r7, pc} +_02084308: + add r0, r6, #0x0 + mov r1, #0x9f + mov r2, #0x0 + bl sub_020671BC + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0xf + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084332 + mov r0, #0x7 + tst r0, r5 + beq _02084332 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_02084332: + add r0, r4, #0x0 + mov r1, #0x10 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084350 + mov r0, #0x88 + tst r0, r5 + beq _02084350 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_02084350: + add r0, r4, #0x0 + mov r1, #0x11 + bl sub_0206E7DC + cmp r0, #0x0 + beq _0208436E + mov r0, #0x10 + tst r0, r5 + beq _0208436E + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_0208436E: + add r0, r4, #0x0 + mov r1, #0x12 + bl sub_0206E7DC + cmp r0, #0x0 + beq _0208438C + mov r0, #0x20 + tst r0, r5 + beq _0208438C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_0208438C: + add r0, r4, #0x0 + mov r1, #0x13 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020843AA + mov r0, #0x40 + tst r0, r5 + beq _020843AA + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020843AA: + add r0, r6, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x17 + bl sub_0206E7DC + cmp r0, #0x0 + bne _020843CE + add r0, r4, #0x0 + mov r1, #0x18 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020843EA +_020843CE: + add r0, r4, #0x0 + mov r1, #0x19 + bl sub_0206E7DC + cmp r0, #0x0 + bne _020843EA + cmp r5, #0x0 + bne _02084414 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020843EA: + add r0, r4, #0x0 + mov r1, #0x26 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084414 + cmp r5, #0x0 + beq _02084414 + add r0, r6, #0x0 + mov r1, #0xa3 + mov r2, #0x0 + bl sub_020671BC + cmp r5, r0 + bhs _02084414 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_02084414: + add r0, r4, #0x0 + mov r1, #0x19 + bl sub_0206E7DC + cmp r0, #0x0 + beq _0208443A + add r0, r6, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x64 + bhs _0208443A + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_0208443A: + add r0, r4, #0x0 + mov r1, #0x1a + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084464 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r3, [sp, #0x4] + add r1, r6, #0x0 + mov r2, #0x3 + bl sub_02069168 + cmp r0, #0x0 + beq _02084464 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_02084464: + add r0, r4, #0x0 + mov r1, #0x22 + bl sub_0206E7DC + cmp r0, #0x0 + bne _0208447C + add r0, r4, #0x0 + mov r1, #0x23 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020844B2 +_0208447C: + add r1, r7, #0x0 + add r0, r6, #0x0 + add r1, #0x3e + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x3 + bhs _020844B2 + add r1, r7, #0x0 + add r0, r6, #0x0 + add r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x0 + bl sub_0206AB30 + cmp r0, #0x5 + blo _020844B2 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020844B2: + add r0, r4, #0x0 + mov r1, #0x24 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020844D6 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl sub_02084DF0 + cmp r0, #0x1 + bne _020844D6 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020844D6: + add r0, r4, #0x0 + mov r1, #0x25 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084502 + mov r5, #0x0 +_020844E4: + add r0, r6, #0x0 + add r1, r5, #0x0 + bl sub_02084DF0 + cmp r0, #0x1 + bne _020844FC + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020844FC: + add r5, r5, #0x1 + cmp r5, #0x4 + blt _020844E4 +_02084502: + add r0, r6, #0x0 + mov r1, #0xd + mov r2, #0x0 + bl sub_020671BC + add r5, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0xe + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x14] + add r0, r6, #0x0 + mov r1, #0xf + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x10] + add r0, r6, #0x0 + mov r1, #0x10 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0xc] + add r0, r6, #0x0 + mov r1, #0x11 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x8] + add r0, r6, #0x0 + mov r1, #0x12 + mov r2, #0x0 + bl sub_020671BC + add r7, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + mov r1, #0x49 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _020845C6 + add r0, r4, #0x0 + mov r1, #0x27 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020845C6 + add r0, r4, #0x0 + mov r1, #0x30 + bl sub_0206E7DC + cmp r0, #0x0 + ble _0208459C + cmp r5, #0x64 + bge _020845C6 + ldr r0, [sp, #0x14] + add r1, r5, r0 + ldr r0, [sp, #0x10] + add r1, r0, r1 + ldr r0, [sp, #0xc] + add r1, r0, r1 + ldr r0, [sp, #0x8] + add r0, r0, r1 + add r1, r7, r0 + ldr r0, _020847F4 ; =0x000001FE + cmp r1, r0 + bge _020845C6 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_0208459C: + bge _020845C6 + cmp r5, #0x0 + ble _020845AE + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020845AE: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02085000 + cmp r0, #0x1 + bne _020845C6 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020845C6: + add r0, r4, #0x0 + mov r1, #0x28 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084632 + add r0, r4, #0x0 + mov r1, #0x31 + bl sub_0206E7DC + cmp r0, #0x0 + ble _02084606 + ldr r0, [sp, #0x14] + cmp r0, #0x64 + bge _02084632 + add r1, r5, r0 + ldr r0, [sp, #0x10] + add r1, r0, r1 + ldr r0, [sp, #0xc] + add r1, r0, r1 + ldr r0, [sp, #0x8] + add r0, r0, r1 + add r1, r7, r0 + ldr r0, _020847F4 ; =0x000001FE + cmp r1, r0 + bge _02084632 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_02084606: + bge _02084632 + ldr r0, [sp, #0x14] + cmp r0, #0x0 + ble _0208461A + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_0208461A: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02085000 + cmp r0, #0x1 + bne _02084632 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_02084632: + add r0, r4, #0x0 + mov r1, #0x29 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020846A0 + add r0, r4, #0x0 + mov r1, #0x32 + bl sub_0206E7DC + cmp r0, #0x0 + ble _02084674 + ldr r0, [sp, #0x10] + cmp r0, #0x64 + bge _020846A0 + ldr r0, [sp, #0x14] + add r1, r5, r0 + ldr r0, [sp, #0x10] + add r1, r0, r1 + ldr r0, [sp, #0xc] + add r1, r0, r1 + ldr r0, [sp, #0x8] + add r0, r0, r1 + add r1, r7, r0 + ldr r0, _020847F4 ; =0x000001FE + cmp r1, r0 + bge _020846A0 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_02084674: + bge _020846A0 + ldr r0, [sp, #0x10] + cmp r0, #0x0 + ble _02084688 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_02084688: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02085000 + cmp r0, #0x1 + bne _020846A0 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020846A0: + add r0, r4, #0x0 + mov r1, #0x2a + bl sub_0206E7DC + cmp r0, #0x0 + beq _0208470E + add r0, r4, #0x0 + mov r1, #0x33 + bl sub_0206E7DC + cmp r0, #0x0 + ble _020846E2 + ldr r0, [sp, #0xc] + cmp r0, #0x64 + bge _0208470E + ldr r0, [sp, #0x14] + add r1, r5, r0 + ldr r0, [sp, #0x10] + add r1, r0, r1 + ldr r0, [sp, #0xc] + add r1, r0, r1 + ldr r0, [sp, #0x8] + add r0, r0, r1 + add r1, r7, r0 + ldr r0, _020847F4 ; =0x000001FE + cmp r1, r0 + bge _0208470E + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020846E2: + bge _0208470E + ldr r0, [sp, #0xc] + cmp r0, #0x0 + ble _020846F6 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020846F6: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02085000 + cmp r0, #0x1 + bne _0208470E + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_0208470E: + add r0, r4, #0x0 + mov r1, #0x2b + bl sub_0206E7DC + cmp r0, #0x0 + beq _0208477C + add r0, r4, #0x0 + mov r1, #0x34 + bl sub_0206E7DC + cmp r0, #0x0 + ble _02084750 + ldr r0, [sp, #0x8] + cmp r0, #0x64 + bge _0208477C + ldr r0, [sp, #0x14] + add r1, r5, r0 + ldr r0, [sp, #0x10] + add r1, r0, r1 + ldr r0, [sp, #0xc] + add r1, r0, r1 + ldr r0, [sp, #0x8] + add r0, r0, r1 + add r1, r7, r0 + ldr r0, _020847F4 ; =0x000001FE + cmp r1, r0 + bge _0208477C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_02084750: + bge _0208477C + ldr r0, [sp, #0x8] + cmp r0, #0x0 + ble _02084764 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_02084764: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02085000 + cmp r0, #0x1 + bne _0208477C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_0208477C: + add r0, r4, #0x0 + mov r1, #0x2c + bl sub_0206E7DC + cmp r0, #0x0 + beq _020847E6 + add r0, r4, #0x0 + mov r1, #0x35 + bl sub_0206E7DC + cmp r0, #0x0 + ble _020847BC + cmp r7, #0x64 + bge _020847E6 + ldr r0, [sp, #0x14] + add r1, r5, r0 + ldr r0, [sp, #0x10] + add r1, r0, r1 + ldr r0, [sp, #0xc] + add r1, r0, r1 + ldr r0, [sp, #0x8] + add r0, r0, r1 + add r1, r7, r0 + ldr r0, _020847F4 ; =0x000001FE + cmp r1, r0 + bge _020847E6 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020847BC: + bge _020847E6 + cmp r7, #0x0 + ble _020847CE + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020847CE: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_02085000 + cmp r0, #0x1 + bne _020847E6 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x18 + mov r0, #0x1 + pop {r3-r7, pc} +_020847E6: + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x0 + add sp, #0x18 + pop {r3-r7, pc} + nop +_020847F4: .word 0x000001FE + + thumb_func_start sub_020847F8 +sub_020847F8: ; 0x020847F8 + push {r3-r5, lr} + add r5, r1, #0x0 + add r1, r2, #0x0 + add r4, r3, #0x0 + bl sub_0206B9B0 + ldr r3, [sp, #0x10] + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_020842DC + pop {r3-r5, pc} + + thumb_func_start sub_02084810 +sub_02084810: ; 0x02084810 + push {r3-r7, lr} + sub sp, #0x70 + add r5, r0, #0x0 + ldr r0, [sp, #0x88] + str r2, [sp, #0x4] + str r0, [sp, #0x88] + add r0, r1, #0x0 + ldr r2, [sp, #0x88] + mov r1, #0x0 + str r3, [sp, #0x8] + bl sub_0206E710 + mov r1, #0xe + add r4, r0, #0x0 + bl sub_0206E7DC + cmp r0, #0x1 + beq _02084840 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x70 + mov r0, #0x0 + pop {r3-r7, pc} +_02084840: + mov r6, #0x0 + add r0, r5, #0x0 + mov r1, #0x9f + add r2, r6, #0x0 + add r7, r6, #0x0 + bl sub_020671BC + str r0, [sp, #0x50] + str r0, [sp, #0x54] + add r0, r4, #0x0 + mov r1, #0xf + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084868 + ldr r1, [sp, #0x54] + mov r0, #0x7 + bic r1, r0 + str r1, [sp, #0x54] + mov r7, #0x1 +_02084868: + add r0, r4, #0x0 + mov r1, #0x10 + bl sub_0206E7DC + cmp r0, #0x0 + beq _0208487E + ldr r1, [sp, #0x54] + ldr r0, _02084A28 ; =0xFFFFF077 + mov r7, #0x1 + and r0, r1 + str r0, [sp, #0x54] +_0208487E: + add r0, r4, #0x0 + mov r1, #0x11 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084894 + ldr r1, [sp, #0x54] + mov r0, #0x10 + bic r1, r0 + str r1, [sp, #0x54] + mov r7, #0x1 +_02084894: + add r0, r4, #0x0 + mov r1, #0x12 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020848AA + ldr r1, [sp, #0x54] + mov r0, #0x20 + bic r1, r0 + str r1, [sp, #0x54] + mov r7, #0x1 +_020848AA: + add r0, r4, #0x0 + mov r1, #0x13 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020848C0 + ldr r1, [sp, #0x54] + mov r0, #0x40 + bic r1, r0 + str r1, [sp, #0x54] + mov r7, #0x1 +_020848C0: + ldr r1, [sp, #0x50] + ldr r0, [sp, #0x54] + cmp r1, r0 + beq _020848D4 + add r0, r5, #0x0 + mov r1, #0x9f + add r2, sp, #0x54 + bl sub_02067830 + mov r6, #0x1 +_020848D4: + add r0, r5, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x50] + add r0, r5, #0x0 + mov r1, #0xa3 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x54] + add r0, r4, #0x0 + mov r1, #0x17 + bl sub_0206E7DC + cmp r0, #0x0 + bne _02084904 + add r0, r4, #0x0 + mov r1, #0x18 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084930 +_02084904: + add r0, r4, #0x0 + mov r1, #0x19 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084930 + ldr r0, [sp, #0x50] + cmp r0, #0x0 + bne _0208492C + add r0, r4, #0x0 + mov r1, #0x36 + bl sub_0206E7DC + add r3, r0, #0x0 + ldr r1, [sp, #0x50] + ldr r2, [sp, #0x54] + add r0, r5, #0x0 + bl sub_02084F68 + mov r6, #0x1 +_0208492C: + mov r7, #0x1 + b _0208495C +_02084930: + add r0, r4, #0x0 + mov r1, #0x26 + bl sub_0206E7DC + cmp r0, #0x0 + beq _0208495C + ldr r1, [sp, #0x50] + ldr r0, [sp, #0x54] + cmp r1, r0 + bge _0208495A + add r0, r4, #0x0 + mov r1, #0x36 + bl sub_0206E7DC + add r3, r0, #0x0 + ldr r1, [sp, #0x50] + ldr r2, [sp, #0x54] + add r0, r5, #0x0 + bl sub_02084F68 + mov r6, #0x1 +_0208495A: + mov r7, #0x1 +_0208495C: + add r0, r5, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x58] + add r0, r4, #0x0 + mov r1, #0x19 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020849B4 + ldr r0, [sp, #0x58] + cmp r0, #0x64 + bge _020849B2 + add r0, r5, #0x0 + bl sub_020686F8 + add r2, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x8 + bl sub_02068018 + add r0, r5, #0x0 + bl sub_02066ED8 + ldr r0, [sp, #0x50] + cmp r0, #0x0 + bne _020849B0 + add r0, r5, #0x0 + mov r1, #0xa3 + mov r2, #0x0 + bl sub_020671BC + add r2, r0, #0x0 + ldr r3, [sp, #0x54] + ldr r1, [sp, #0x50] + add r0, r5, #0x0 + sub r3, r2, r3 + str r2, [sp, #0x5c] + bl sub_02084F68 +_020849B0: + mov r6, #0x1 +_020849B2: + mov r7, #0x1 +_020849B4: + add r0, r4, #0x0 + mov r1, #0x1a + bl sub_0206E7DC + cmp r0, #0x0 + beq _020849C2 + mov r7, #0x1 +_020849C2: + add r0, r4, #0x0 + mov r1, #0x22 + bl sub_0206E7DC + cmp r0, #0x0 + beq _020849E2 + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + mov r2, #0x1 + bl sub_02084EC0 + cmp r0, #0x1 + bne _020849DE + mov r6, #0x1 +_020849DE: + mov r7, #0x1 + b _02084A00 +_020849E2: + add r0, r4, #0x0 + mov r1, #0x23 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084A00 + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + mov r2, #0x3 + bl sub_02084EC0 + cmp r0, #0x1 + bne _020849FE + mov r6, #0x1 +_020849FE: + mov r7, #0x1 +_02084A00: + add r0, r4, #0x0 + mov r1, #0x24 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084A2C + add r0, r4, #0x0 + mov r1, #0x37 + bl sub_0206E7DC + add r2, r0, #0x0 + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + bl sub_02084E40 + cmp r0, #0x1 + bne _02084A24 + mov r6, #0x1 +_02084A24: + mov r7, #0x1 + b _02084A66 + .balign 4 +_02084A28: .word 0xFFFFF077 +_02084A2C: + add r0, r4, #0x0 + mov r1, #0x25 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084A66 + mov r0, #0x0 + str r0, [sp, #0x50] + cmp r0, #0x4 + bge _02084A64 + mov r7, #0x37 +_02084A42: + add r0, r4, #0x0 + add r1, r7, #0x0 + bl sub_0206E7DC + add r2, r0, #0x0 + ldr r1, [sp, #0x50] + add r0, r5, #0x0 + bl sub_02084E40 + cmp r0, #0x1 + bne _02084A5A + mov r6, #0x1 +_02084A5A: + ldr r0, [sp, #0x50] + add r0, r0, #0x1 + str r0, [sp, #0x50] + cmp r0, #0x4 + blt _02084A42 +_02084A64: + mov r7, #0x1 +_02084A66: + add r0, r5, #0x0 + mov r1, #0xd + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x50] + add r0, r5, #0x0 + mov r1, #0xe + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x54] + add r0, r5, #0x0 + mov r1, #0xf + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x58] + add r0, r5, #0x0 + mov r1, #0x10 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x5c] + add r0, r5, #0x0 + mov r1, #0x11 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x60] + add r0, r5, #0x0 + mov r1, #0x12 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x64] + add r0, r5, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl sub_020671BC + mov r1, #0x49 + lsl r1, r1, #0x2 + cmp r0, r1 + beq _02084B20 + add r0, r4, #0x0 + mov r1, #0x27 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084B20 + add r0, r4, #0x0 + mov r1, #0x30 + bl sub_0206E7DC + ldr r1, [sp, #0x60] + ldr r2, [sp, #0x54] + str r1, [sp, #0x10] + ldr r1, [sp, #0x5c] + str r0, [sp, #0xc] + str r1, [sp, #0x14] + ldr r1, [sp, #0x58] + str r0, [sp, #0x6c] + add r2, r2, r1 + ldr r1, [sp, #0x14] + ldr r3, [sp, #0x64] + add r2, r1, r2 + ldr r1, [sp, #0x10] + ldr r0, [sp, #0x50] + add r1, r1, r2 + ldr r2, [sp, #0xc] + add r1, r3, r1 + bl sub_02084FA8 + mov r1, #0x0 + mvn r1, r1 + str r0, [sp, #0x68] + cmp r0, r1 + beq _02084B18 + str r0, [sp, #0x50] + add r0, r5, #0x0 + mov r1, #0xd + add r2, sp, #0x50 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02066ED8 + mov r6, #0x1 +_02084B18: + ldr r0, [sp, #0x6c] + cmp r0, #0x0 + ble _02084B20 + mov r7, #0x1 +_02084B20: + add r0, r4, #0x0 + mov r1, #0x28 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084B80 + add r0, r4, #0x0 + mov r1, #0x31 + bl sub_0206E7DC + ldr r1, [sp, #0x60] + ldr r2, [sp, #0x50] + str r1, [sp, #0x1c] + ldr r1, [sp, #0x5c] + str r0, [sp, #0x18] + str r1, [sp, #0x20] + ldr r1, [sp, #0x58] + str r0, [sp, #0x6c] + add r2, r2, r1 + ldr r1, [sp, #0x20] + ldr r3, [sp, #0x64] + add r2, r1, r2 + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x54] + add r1, r1, r2 + ldr r2, [sp, #0x18] + add r1, r3, r1 + bl sub_02084FA8 + mov r1, #0x0 + mvn r1, r1 + str r0, [sp, #0x68] + cmp r0, r1 + beq _02084B78 + str r0, [sp, #0x54] + add r0, r5, #0x0 + mov r1, #0xe + add r2, sp, #0x54 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02066ED8 + mov r6, #0x1 +_02084B78: + ldr r0, [sp, #0x6c] + cmp r0, #0x0 + ble _02084B80 + mov r7, #0x1 +_02084B80: + add r0, r4, #0x0 + mov r1, #0x29 + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084BE0 + add r0, r4, #0x0 + mov r1, #0x32 + bl sub_0206E7DC + ldr r1, [sp, #0x60] + ldr r2, [sp, #0x50] + str r1, [sp, #0x28] + ldr r1, [sp, #0x5c] + str r0, [sp, #0x24] + str r1, [sp, #0x2c] + ldr r1, [sp, #0x54] + str r0, [sp, #0x6c] + add r2, r2, r1 + ldr r1, [sp, #0x2c] + ldr r3, [sp, #0x64] + add r2, r1, r2 + ldr r1, [sp, #0x28] + ldr r0, [sp, #0x58] + add r1, r1, r2 + ldr r2, [sp, #0x24] + add r1, r3, r1 + bl sub_02084FA8 + mov r1, #0x0 + mvn r1, r1 + str r0, [sp, #0x68] + cmp r0, r1 + beq _02084BD8 + str r0, [sp, #0x58] + add r0, r5, #0x0 + mov r1, #0xf + add r2, sp, #0x58 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02066ED8 + mov r6, #0x1 +_02084BD8: + ldr r0, [sp, #0x6c] + cmp r0, #0x0 + ble _02084BE0 + mov r7, #0x1 +_02084BE0: + add r0, r4, #0x0 + mov r1, #0x2a + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084C40 + add r0, r4, #0x0 + mov r1, #0x33 + bl sub_0206E7DC + ldr r1, [sp, #0x60] + ldr r2, [sp, #0x50] + str r1, [sp, #0x34] + ldr r1, [sp, #0x58] + str r0, [sp, #0x30] + str r1, [sp, #0x38] + ldr r1, [sp, #0x54] + str r0, [sp, #0x6c] + add r2, r2, r1 + ldr r1, [sp, #0x38] + ldr r3, [sp, #0x64] + add r2, r1, r2 + ldr r1, [sp, #0x34] + ldr r0, [sp, #0x5c] + add r1, r1, r2 + ldr r2, [sp, #0x30] + add r1, r3, r1 + bl sub_02084FA8 + mov r1, #0x0 + mvn r1, r1 + str r0, [sp, #0x68] + cmp r0, r1 + beq _02084C38 + str r0, [sp, #0x5c] + add r0, r5, #0x0 + mov r1, #0x10 + add r2, sp, #0x5c + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02066ED8 + mov r6, #0x1 +_02084C38: + ldr r0, [sp, #0x6c] + cmp r0, #0x0 + ble _02084C40 + mov r7, #0x1 +_02084C40: + add r0, r4, #0x0 + mov r1, #0x2b + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084CA0 + add r0, r4, #0x0 + mov r1, #0x34 + bl sub_0206E7DC + ldr r1, [sp, #0x5c] + ldr r2, [sp, #0x50] + str r1, [sp, #0x40] + ldr r1, [sp, #0x58] + str r0, [sp, #0x3c] + str r1, [sp, #0x44] + ldr r1, [sp, #0x54] + str r0, [sp, #0x6c] + add r2, r2, r1 + ldr r1, [sp, #0x44] + ldr r3, [sp, #0x64] + add r2, r1, r2 + ldr r1, [sp, #0x40] + ldr r0, [sp, #0x60] + add r1, r1, r2 + ldr r2, [sp, #0x3c] + add r1, r3, r1 + bl sub_02084FA8 + mov r1, #0x0 + mvn r1, r1 + str r0, [sp, #0x68] + cmp r0, r1 + beq _02084C98 + str r0, [sp, #0x60] + add r0, r5, #0x0 + mov r1, #0x11 + add r2, sp, #0x60 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02066ED8 + mov r6, #0x1 +_02084C98: + ldr r0, [sp, #0x6c] + cmp r0, #0x0 + ble _02084CA0 + mov r7, #0x1 +_02084CA0: + add r0, r4, #0x0 + mov r1, #0x2c + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084D00 + add r0, r4, #0x0 + mov r1, #0x35 + bl sub_0206E7DC + ldr r1, [sp, #0x5c] + ldr r2, [sp, #0x50] + str r1, [sp, #0x4c] + ldr r1, [sp, #0x58] + str r0, [sp, #0x48] + mov r12, r1 + ldr r1, [sp, #0x54] + str r0, [sp, #0x6c] + add r1, r2, r1 + mov r2, r12 + add r2, r2, r1 + ldr r1, [sp, #0x4c] + ldr r3, [sp, #0x60] + add r1, r1, r2 + ldr r0, [sp, #0x64] + ldr r2, [sp, #0x48] + add r1, r3, r1 + bl sub_02084FA8 + mov r1, #0x0 + mvn r1, r1 + str r0, [sp, #0x68] + cmp r0, r1 + beq _02084CF8 + str r0, [sp, #0x64] + add r0, r5, #0x0 + mov r1, #0x12 + add r2, sp, #0x64 + bl sub_02067830 + add r0, r5, #0x0 + bl sub_02066ED8 + mov r6, #0x1 +_02084CF8: + ldr r0, [sp, #0x6c] + cmp r0, #0x0 + ble _02084D00 + mov r7, #0x1 +_02084D00: + cmp r6, #0x0 + bne _02084D14 + cmp r7, #0x1 + bne _02084D14 + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x70 + mov r0, #0x0 + pop {r3-r7, pc} +_02084D14: + add r0, r5, #0x0 + mov r1, #0x9 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x50] + cmp r0, #0x64 + bge _02084D54 + add r0, r4, #0x0 + mov r1, #0x2d + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084DC2 + add r0, r4, #0x0 + mov r1, #0x38 + bl sub_0206E7DC + add r2, r0, #0x0 + ldr r0, [sp, #0x88] + str r0, [sp, #0x0] + ldr r1, [sp, #0x50] + ldr r3, [sp, #0x8] + add r0, r5, #0x0 + bl sub_0208508C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x70 + add r0, r6, #0x0 + pop {r3-r7, pc} +_02084D54: + blt _02084D8A + cmp r0, #0xc8 + bge _02084D8A + add r0, r4, #0x0 + mov r1, #0x2e + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084DC2 + add r0, r4, #0x0 + mov r1, #0x39 + bl sub_0206E7DC + add r2, r0, #0x0 + ldr r0, [sp, #0x88] + str r0, [sp, #0x0] + ldr r1, [sp, #0x50] + ldr r3, [sp, #0x8] + add r0, r5, #0x0 + bl sub_0208508C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x70 + add r0, r6, #0x0 + pop {r3-r7, pc} +_02084D8A: + cmp r0, #0xc8 + blt _02084DC2 + cmp r0, #0xff + bgt _02084DC2 + add r0, r4, #0x0 + mov r1, #0x2f + bl sub_0206E7DC + cmp r0, #0x0 + beq _02084DC2 + add r0, r4, #0x0 + mov r1, #0x3a + bl sub_0206E7DC + add r2, r0, #0x0 + ldr r0, [sp, #0x88] + str r0, [sp, #0x0] + ldr r1, [sp, #0x50] + ldr r3, [sp, #0x8] + add r0, r5, #0x0 + bl sub_0208508C + add r0, r4, #0x0 + bl sub_02016A18 + add sp, #0x70 + add r0, r6, #0x0 + pop {r3-r7, pc} +_02084DC2: + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r6, #0x0 + add sp, #0x70 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02084DD0 +sub_02084DD0: ; 0x02084DD0 + push {r3-r5, lr} + add r5, r1, #0x0 + add r1, r2, #0x0 + add r4, r3, #0x0 + bl sub_0206B9B0 + ldr r1, [sp, #0x14] + add r3, sp, #0x0 + str r1, [sp, #0x0] + ldrh r3, [r3, #0x10] + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02084810 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02084DF0 +sub_02084DF0: ; 0x02084DF0 + push {r3-r7, lr} + add r6, r1, #0x0 + add r1, #0x36 + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + bne _02084E08 + mov r0, #0x0 + pop {r3-r7, pc} +_02084E08: + add r1, r6, #0x0 + add r0, r5, #0x0 + add r1, #0x3a + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + add r6, #0x3e + lsr r4, r0, #0x18 + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + add r0, r7, #0x0 + bl sub_0206AB30 + cmp r4, r0 + bhs _02084E36 + mov r0, #0x1 + b _02084E38 +_02084E36: + mov r0, #0x0 +_02084E38: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02084E40 +sub_02084E40: ; 0x02084E40 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + add r4, r2, #0x0 + add r1, #0x36 + mov r2, #0x0 + add r6, r0, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + bne _02084E5E + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_02084E5E: + add r0, r5, #0x0 + str r0, [sp, #0x0] + add r0, #0x3a + str r0, [sp, #0x0] + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + mov r2, #0x0 + bl sub_020671BC + add r1, sp, #0x4 + strb r0, [r1, #0x0] + add r5, #0x3e + add r0, r6, #0x0 + add r1, r5, #0x0 + mov r2, #0x0 + bl sub_020671BC + add r1, r0, #0x0 + lsl r1, r1, #0x18 + add r0, r7, #0x0 + lsr r1, r1, #0x18 + bl sub_0206AB30 + add r1, sp, #0x4 + ldrb r2, [r1, #0x0] + cmp r2, r0 + bhs _02084EB8 + cmp r4, #0x7f + bne _02084E9C + strb r0, [r1, #0x0] + b _02084EA8 +_02084E9C: + add r2, r2, r4 + strb r2, [r1, #0x0] + ldrb r2, [r1, #0x0] + cmp r2, r0 + bls _02084EA8 + strb r0, [r1, #0x0] +_02084EA8: + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + add r2, sp, #0x4 + bl sub_02067830 + add sp, #0x8 + mov r0, #0x1 + pop {r3-r7, pc} +_02084EB8: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02084EC0 +sub_02084EC0: ; 0x02084EC0 + push {r4-r7, lr} + sub sp, #0xc + add r6, r2, #0x0 + add r4, r1, #0x0 + str r1, [sp, #0x0] + add r1, #0x3e + mov r2, #0x0 + add r5, r0, #0x0 + str r1, [sp, #0x0] + bl sub_020671BC + add r1, sp, #0x8 + strb r0, [r1, #0x0] + ldrb r0, [r1, #0x0] + cmp r0, #0x3 + bne _02084EE6 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_02084EE6: + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x36 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x0 + str r0, [sp, #0x4] + bl sub_0206AB30 + cmp r0, #0x5 + bhs _02084F08 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_02084F08: + add r4, #0x3a + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl sub_020671BC + add r1, sp, #0x8 + strb r0, [r1, #0x1] + ldrb r1, [r1, #0x0] + ldr r0, [sp, #0x4] + bl sub_0206AB30 + add r7, r0, #0x0 + add r0, sp, #0x8 + ldrb r0, [r0, #0x0] + add r0, r0, r6 + cmp r0, #0x3 + bls _02084F30 + mov r0, #0x3 + b _02084F34 +_02084F30: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 +_02084F34: + add r1, sp, #0x8 + strb r0, [r1, #0x0] + ldrb r1, [r1, #0x0] + ldr r0, [sp, #0x4] + bl sub_0206AB30 + add r1, sp, #0x8 + ldrb r2, [r1, #0x1] + add r0, r2, r0 + sub r0, r0, r7 + strb r0, [r1, #0x1] + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + add r2, sp, #0x8 + bl sub_02067830 + add r2, sp, #0x8 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, #0x1 + bl sub_02067830 + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start sub_02084F68 +sub_02084F68: ; 0x02084F68 + push {r0-r3} + push {r3, lr} + cmp r2, #0x1 + bne _02084F74 + mov r3, #0x1 + b _02084F8A +_02084F74: + cmp r3, #0xff + bne _02084F7C + add r3, r2, #0x0 + b _02084F8A +_02084F7C: + cmp r3, #0xfe + bne _02084F84 + lsr r3, r2, #0x1 + b _02084F8A +_02084F84: + cmp r3, #0xfd + bne _02084F8A + lsr r3, r2, #0x2 +_02084F8A: + ldr r1, [sp, #0xc] + add r1, r1, r3 + cmp r1, r2 + bls _02084F96 + str r2, [sp, #0xc] + b _02084F98 +_02084F96: + str r1, [sp, #0xc] +_02084F98: + mov r1, #0xa2 + add r2, sp, #0xc + bl sub_02067830 + pop {r3} + pop {r3} + add sp, #0x10 + bx r3 + + thumb_func_start sub_02084FA8 +sub_02084FA8: ; 0x02084FA8 + push {r3-r4} + cmp r0, #0x0 + bne _02084FBA + cmp r2, #0x0 + bge _02084FBA + mov r0, #0x0 + mvn r0, r0 + pop {r3-r4} + bx lr +_02084FBA: + cmp r0, #0x64 + blt _02084FCA + cmp r2, #0x0 + ble _02084FCA + mov r0, #0x0 + mvn r0, r0 + pop {r3-r4} + bx lr +_02084FCA: + ldr r3, _02084FFC ; =0x000001FE + add r4, r0, r1 + cmp r4, r3 + blt _02084FDE + cmp r2, #0x0 + ble _02084FDE + mov r0, #0x0 + mvn r0, r0 + pop {r3-r4} + bx lr +_02084FDE: + add r0, r0, r2 + cmp r0, #0x64 + ble _02084FE8 + mov r0, #0x64 + b _02084FEE +_02084FE8: + cmp r0, #0x0 + bge _02084FEE + mov r0, #0x0 +_02084FEE: + ldr r2, _02084FFC ; =0x000001FE + add r3, r0, r1 + cmp r3, r2 + ble _02084FF8 + sub r0, r2, r1 +_02084FF8: + pop {r3-r4} + bx lr + .balign 4 +_02084FFC: .word 0x000001FE + + thumb_func_start sub_02085000 +sub_02085000: ; 0x02085000 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x9 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0xff + blt _02085014 + mov r0, #0x0 + pop {r4, pc} +_02085014: + cmp r0, #0x64 + bge _02085038 + add r0, r4, #0x0 + mov r1, #0x2d + bl sub_0206E7DC + cmp r0, #0x0 + beq _02085034 + add r0, r4, #0x0 + mov r1, #0x38 + bl sub_0206E7DC + cmp r0, #0x0 + ble _02085034 + mov r0, #0x1 + pop {r4, pc} +_02085034: + mov r0, #0x0 + pop {r4, pc} +_02085038: + blt _0208505E + cmp r0, #0xc8 + bge _0208505E + add r0, r4, #0x0 + mov r1, #0x2e + bl sub_0206E7DC + cmp r0, #0x0 + beq _0208505A + add r0, r4, #0x0 + mov r1, #0x39 + bl sub_0206E7DC + cmp r0, #0x0 + ble _0208505A + mov r0, #0x1 + pop {r4, pc} +_0208505A: + mov r0, #0x0 + pop {r4, pc} +_0208505E: + cmp r0, #0xc8 + blt _02085086 + cmp r0, #0xff + bge _02085086 + add r0, r4, #0x0 + mov r1, #0x2f + bl sub_0206E7DC + cmp r0, #0x0 + beq _02085082 + add r0, r4, #0x0 + mov r1, #0x3a + bl sub_0206E7DC + cmp r0, #0x0 + ble _02085082 + mov r0, #0x1 + pop {r4, pc} +_02085082: + mov r0, #0x0 + pop {r4, pc} +_02085086: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0208508C +sub_0208508C: ; 0x0208508C + push {r0-r3} + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r3, #0x0 + cmp r4, #0xff + bne _020850AA + ldr r0, [sp, #0x18] + cmp r0, #0x0 + ble _020850AA + mov r0, #0x0 + pop {r4-r6} + pop {r3} + add sp, #0x10 + bx r3 +_020850AA: + cmp r4, #0x0 + bne _020850BE + ldr r0, [sp, #0x18] + cmp r0, #0x0 + bge _020850BE + mov r0, #0x0 + pop {r4-r6} + pop {r3} + add sp, #0x10 + bx r3 +_020850BE: + ldr r0, [sp, #0x18] + cmp r0, #0x0 + ble _02085114 + add r0, r5, #0x0 + mov r1, #0x6 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + ldr r2, [sp, #0x20] + lsr r0, r0, #0x10 + mov r1, #0x1 + bl sub_0206E7B8 + cmp r0, #0x34 + bne _020850EC + ldr r1, [sp, #0x18] + mov r0, #0x96 + mul r0, r1 + mov r1, #0x64 + blx sub_020EBC80 + str r0, [sp, #0x18] +_020850EC: + add r0, r5, #0x0 + mov r1, #0x9a + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0xb + bne _02085100 + ldr r0, [sp, #0x18] + add r0, r0, #0x1 + str r0, [sp, #0x18] +_02085100: + add r0, r5, #0x0 + mov r1, #0x97 + mov r2, #0x0 + bl sub_020671BC + cmp r6, r0 + bne _02085114 + ldr r0, [sp, #0x18] + add r0, r0, #0x1 + str r0, [sp, #0x18] +_02085114: + ldr r0, [sp, #0x18] + add r0, r0, r4 + str r0, [sp, #0x18] + cmp r0, #0xff + ble _02085122 + mov r0, #0xff + str r0, [sp, #0x18] +_02085122: + ldr r0, [sp, #0x18] + cmp r0, #0x0 + bge _0208512C + mov r0, #0x0 + str r0, [sp, #0x18] +_0208512C: + add r0, r5, #0x0 + mov r1, #0x9 + add r2, sp, #0x18 + bl sub_02067830 + mov r0, #0x1 + pop {r4-r6} + pop {r3} + add sp, #0x10 + bx r3 + + thumb_func_start sub_02085140 +sub_02085140: ; 0x02085140 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + bl sub_0206B9AC + mov r7, #0x0 + str r0, [sp, #0x4] + cmp r0, #0x0 + ble _020851B4 + mov r6, #0x7f +_02085154: + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + bl sub_0206B9B0 + mov r1, #0xab + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _020851AC + add r0, r5, #0x0 + mov r1, #0xa3 + mov r2, #0x0 + bl sub_020671BC + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0xa2 + add r2, sp, #0x8 + bl sub_02067830 + mov r0, #0x0 + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0x9f + add r2, sp, #0x8 + bl sub_02067830 + mov r4, #0x0 +_02085190: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02084DF0 + cmp r0, #0x1 + bne _020851A6 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02084E40 +_020851A6: + add r4, r4, #0x1 + cmp r4, #0x4 + blt _02085190 +_020851AC: + ldr r0, [sp, #0x4] + add r7, r7, #0x1 + cmp r7, r0 + blt _02085154 +_020851B4: + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start sub_020851B8 +sub_020851B8: ; 0x020851B8 + push {r3, lr} + mov r1, #0xc + bl sub_02016998 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + strb r1, [r0, #0x4] + strb r1, [r0, #0x5] + strb r1, [r0, #0x6] + strb r1, [r0, #0x7] + strb r1, [r0, #0x8] + strb r1, [r0, #0x9] + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + pop {r3, pc} + + thumb_func_start sub_020851DC +sub_020851DC: ; 0x020851DC + push {r4-r6, lr} + sub r1, #0x95 + lsl r1, r1, #0x10 + lsr r6, r1, #0x10 + add r1, r6, #0x0 + add r5, r0, #0x0 + add r4, r2, #0x0 + bl sub_02085200 + cmp r4, #0x1 + bne _020851F4 + strb r6, [r5, #0x8] +_020851F4: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020851F8 +sub_020851F8: ; 0x020851F8 + strb r1, [r0, #0x9] + strb r2, [r0, #0xa] + strb r3, [r0, #0xb] + bx lr + + thumb_func_start sub_02085200 +sub_02085200: ; 0x02085200 + push {r3-r6} + lsr r6, r1, #0x1f + lsl r5, r1, #0x1b + lsr r2, r1, #0x5 + lsl r4, r2, #0x2 + sub r5, r5, r6 + mov r1, #0x1b + ror r5, r1 + ldr r3, [r0, r4] + mov r2, #0x1 + add r1, r6, r5 + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + str r1, [r0, r4] + pop {r3-r6} + bx lr + .balign 4 + + thumb_func_start sub_02085224 +sub_02085224: ; 0x02085224 + push {r4-r5} + lsr r5, r1, #0x1f + lsl r4, r1, #0x1b + lsr r1, r1, #0x5 + lsl r1, r1, #0x2 + sub r4, r4, r5 + mov r3, #0x1b + ror r4, r3 + mov r2, #0x1 + add r3, r5, r4 + add r4, r2, #0x0 + lsl r4, r3 + ldr r0, [r0, r1] + tst r0, r4 + bne _02085244 + mov r2, #0x0 +_02085244: + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + pop {r4-r5} + bx lr + + thumb_func_start sub_0208524C +sub_0208524C: ; 0x0208524C + ldrb r3, [r0, #0x9] + strb r3, [r1, #0x0] + ldrb r0, [r0, #0xa] + strb r0, [r2, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02085258 +sub_02085258: ; 0x02085258 + ldr r3, _02085260 ; =sub_02006670 + add r1, r0, #0x0 + mov r0, #0x44 + bx r3 + .balign 4 +_02085260: .word sub_02006670 + 1 + + thumb_func_start sub_02085264 +sub_02085264: ; 0x02085264 + ldr r3, _02085268 ; =sub_02006704 + bx r3 + .balign 4 +_02085268: .word sub_02006704 + 1 + + thumb_func_start sub_0208526C +sub_0208526C: ; 0x0208526C + ldr r3, _02085270 ; =sub_020066F4 + bx r3 + .balign 4 +_02085270: .word sub_020066F4 + 1 + + thumb_func_start sub_02085274 +sub_02085274: ; 0x02085274 + add r3, r0, #0x0 + add r2, r1, #0x0 + add r1, r3, #0x0 + ldr r3, _02085280 ; =sub_0200650C + mov r0, #0x44 + bx r3 + .balign 4 +_02085280: .word sub_0200650C + 1 + + thumb_func_start sub_02085284 +sub_02085284: ; 0x02085284 + ldr r3, _0208528C ; =sub_02085274 + sub r0, #0x95 + bx r3 + nop +_0208528C: .word sub_02085274 + 1 + + thumb_func_start sub_02085290 +sub_02085290: ; 0x02085290 + cmp r1, #0xa + bhi _020852E2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r2, #0 + lsl r0, r3, #0 + lsl r4, r3, #0 + lsl r0, r4, #0 + lsl r4, r4, #0 + lsl r0, r5, #0 + lsl r4, r5, #0 + lsl r0, r6, #0 + lsl r4, r6, #0 + lsl r0, r7, #0 + lsl r4, r7, #0 + ldrh r0, [r0, #0x0] + bx lr +_020852BA: + .byte 0x80, 0x78, 0x70, 0x47, 0xC0, 0x78 + .byte 0x70, 0x47, 0x00, 0x79, 0x70, 0x47, 0x40, 0x79, 0x70, 0x47, 0x80, 0x79, 0x70, 0x47, 0xC0, 0x79 + .byte 0x70, 0x47, 0x00, 0x7A, 0x70, 0x47, 0x40, 0x7A, 0x70, 0x47, 0x80, 0x7A, 0x70, 0x47, 0xC0, 0x7A + .byte 0x70, 0x47 +_020852E2: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start sub_020852E8 +sub_020852E8: ; 0x020852E8 + push {r3-r5, lr} + ldr r2, _0208530C ; =0x00000175 + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + add r5, r0, #0x0 + add r1, r4, #0x0 + bl sub_0200A914 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0200A8B8 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_0208530C: .word 0x00000175 + + thumb_func_start sub_02085310 +sub_02085310: ; 0x02085310 + push {r3-r5, lr} + mov r2, #0x5d + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r0, #0x1 + mov r1, #0x1a + lsl r2, r2, #0x2 + bl sub_0200A86C + add r5, r0, #0x0 + add r1, r4, #0x0 + bl sub_0200A914 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0200A8B8 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02085338 +sub_02085338: ; 0x02085338 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + add r0, r3, #0x0 + mov r1, #0x24 + add r6, r2, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + strb r5, [r4, #0x0] + strb r7, [r4, #0x1] + add r0, r6, #0x0 + bl sub_02024DA0 + str r0, [r4, #0xc] + add r0, r6, #0x0 + bl sub_02013B5C + str r0, [r4, #0x10] + add r0, r6, #0x0 + bl sub_020462AC + bl sub_0205ED0C + strb r0, [r4, #0x4] + mov r1, #0x0 + strb r1, [r4, #0x5] + mov r0, #0x1 + strb r0, [r4, #0x2] + add r0, r6, #0x0 + strb r1, [r4, #0x3] + bl sub_02023900 + bl sub_02025084 + str r0, [r4, #0x8] + cmp r5, #0x2 + bne _02085390 + add r0, r4, #0x0 + add r0, #0x14 + mov r1, #0x3 + bl sub_0201373C + b _020853A0 +_02085390: + ldr r0, _020853A4 ; =0x0000FFFF + mov r1, #0x0 + add r2, r4, #0x0 +_02085396: + add r1, r1, #0x1 + strh r0, [r2, #0x1c] + add r2, r2, #0x2 + cmp r1, #0x2 + blt _02085396 +_020853A0: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_020853A4: .word 0x0000FFFF + + thumb_func_start sub_020853A8 +sub_020853A8: ; 0x020853A8 + ldr r3, _020853AC ; =sub_02016A18 + bx r3 + .balign 4 +_020853AC: .word sub_02016A18 + 1 + + thumb_func_start sub_020853B0 +sub_020853B0: ; 0x020853B0 + strh r1, [r0, #0x1c] + bx lr + + thumb_func_start sub_020853B4 +sub_020853B4: ; 0x020853B4 + strh r1, [r0, #0x1c] + strh r2, [r0, #0x1e] + bx lr + .balign 4 + + thumb_func_start sub_020853BC +sub_020853BC: ; 0x020853BC + ldrh r2, [r1, #0x0] + strh r2, [r0, #0x14] + ldrh r2, [r1, #0x2] + strh r2, [r0, #0x16] + ldrh r2, [r1, #0x4] + strh r2, [r0, #0x18] + ldrh r1, [r1, #0x6] + strh r1, [r0, #0x1a] + bx lr + .balign 4 + + thumb_func_start sub_020853D0 +sub_020853D0: ; 0x020853D0 + mov r1, #0x1 + strb r1, [r0, #0x2] + mov r1, #0x0 + strb r1, [r0, #0x3] + bx lr + .balign 4 + + thumb_func_start sub_020853DC +sub_020853DC: ; 0x020853DC + mov r1, #0x1 + strb r1, [r0, #0x5] + bx lr + .balign 4 + + thumb_func_start sub_020853E4 +sub_020853E4: ; 0x020853E4 + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start sub_020853E8 +sub_020853E8: ; 0x020853E8 + ldrb r0, [r0, #0x3] + bx lr + + thumb_func_start sub_020853EC +sub_020853EC: ; 0x020853EC + ldrh r0, [r0, #0x1c] + bx lr + + thumb_func_start sub_020853F0 +sub_020853F0: ; 0x020853F0 + ldrh r2, [r0, #0x1c] + strh r2, [r1, #0x0] + ldrh r0, [r0, #0x1e] + strh r0, [r1, #0x2] + bx lr + .balign 4 + + thumb_func_start sub_020853FC +sub_020853FC: ; 0x020853FC + add r2, r0, #0x0 + ldr r3, _02085408 ; =sub_02013960 + add r2, #0x14 + add r0, r1, #0x0 + add r1, r2, #0x0 + bx r3 + .balign 4 +_02085408: .word sub_02013960 + 1 + + thumb_func_start sub_0208540C +sub_0208540C: ; 0x0208540C + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start sub_02085410 +sub_02085410: ; 0x02085410 + ldrb r0, [r0, #0x1] + bx lr + + thumb_func_start sub_02085414 +sub_02085414: ; 0x02085414 + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start sub_02085418 +sub_02085418: ; 0x02085418 + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start sub_0208541C +sub_0208541C: ; 0x0208541C + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start sub_02085420 +sub_02085420: ; 0x02085420 + ldrb r0, [r0, #0x4] + bx lr + + thumb_func_start sub_02085424 +sub_02085424: ; 0x02085424 + ldrb r0, [r0, #0x5] + bx lr + + thumb_func_start sub_02085428 +sub_02085428: ; 0x02085428 + ldrb r3, [r0, #0x0] + cmp r3, #0x0 + beq _02085438 + cmp r3, #0x1 + beq _0208543E + cmp r3, #0x2 + beq _02085448 + bx lr +_02085438: + ldrh r0, [r0, #0x1c] + strh r0, [r1, #0x0] + bx lr +_0208543E: + ldrh r2, [r0, #0x1c] + strh r2, [r1, #0x0] + ldrh r0, [r0, #0x1e] + strh r0, [r1, #0x2] + bx lr +_02085448: + ldrh r1, [r0, #0x14] + strh r1, [r2, #0x0] + ldrh r1, [r0, #0x16] + strh r1, [r2, #0x2] + ldrh r1, [r0, #0x18] + strh r1, [r2, #0x4] + ldrh r0, [r0, #0x1a] + strh r0, [r2, #0x6] + bx lr + .balign 4 + + thumb_func_start sub_0208545C +sub_0208545C: ; 0x0208545C + push {r3, lr} + ldrb r3, [r0, #0x0] + cmp r3, #0x0 + beq _0208546C + cmp r3, #0x1 + beq _0208547C + cmp r3, #0x2 + b _02085494 +_0208546C: + ldrh r1, [r1, #0x0] + ldrh r0, [r0, #0x1c] + cmp r1, r0 + bne _02085478 + mov r0, #0x1 + pop {r3, pc} +_02085478: + mov r0, #0x0 + pop {r3, pc} +_0208547C: + ldrh r3, [r1, #0x0] + ldrh r2, [r0, #0x1c] + cmp r3, r2 + bne _02085490 + ldrh r1, [r1, #0x2] + ldrh r0, [r0, #0x1e] + cmp r1, r0 + bne _02085490 + mov r0, #0x1 + pop {r3, pc} +_02085490: + mov r0, #0x0 + pop {r3, pc} +_02085494: + add r0, #0x14 + add r1, r2, #0x0 + bl sub_02013928 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_020854A0 +sub_020854A0: ; 0x020854A0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_0208545C + cmp r0, #0x0 + bne _020854B4 + mov r0, #0x1 + b _020854B6 +_020854B4: + mov r0, #0x0 +_020854B6: + strb r0, [r5, #0x3] + mov r1, #0x0 + strb r1, [r5, #0x2] + add r2, r5, #0x0 +_020854BE: + ldrh r0, [r4, #0x0] + add r1, r1, #0x1 + add r4, r4, #0x2 + strh r0, [r2, #0x1c] + add r2, r2, #0x2 + cmp r1, #0x2 + blt _020854BE + ldrh r0, [r6, #0x0] + strh r0, [r5, #0x14] + ldrh r0, [r6, #0x2] + strh r0, [r5, #0x16] + ldrh r0, [r6, #0x4] + strh r0, [r5, #0x18] + ldrh r0, [r6, #0x6] + strh r0, [r5, #0x1a] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_020854E0 +sub_020854E0: ; 0x020854E0 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r6, r2, #0x0 + str r3, [sp, #0x0] + bl sub_02025838 + str r0, [sp, #0x4] + ldr r0, [sp, #0x20] + mov r1, #0x1c + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x1c + add r4, r0, #0x0 + blx sub_020CE34C + ldr r0, [sp, #0x0] + strb r0, [r4, #0xf] + ldr r0, [sp, #0x4] + strb r6, [r4, #0xe] + str r0, [r4, #0x18] + mov r0, #0x1 + strh r0, [r4, #0x0] + str r7, [r4, #0x8] + mov r0, #0x0 + strh r0, [r4, #0xc] + ldr r0, [sp, #0x20] + str r5, [r4, #0x10] + bl sub_020256BC + str r0, [r4, #0x14] + bl sub_02025658 + ldr r0, [r4, #0x14] + mov r1, #0xff + add r2, r6, #0x0 + add r3, r5, #0x0 + bl sub_020256DC + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start sub_02085538 +sub_02085538: ; 0x02085538 + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + add r0, r3, #0x0 + mov r1, #0x1c + add r6, r2, #0x0 + str r3, [sp, #0x0] + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x1c + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0x0 + strh r0, [r4, #0x0] + str r5, [r4, #0x8] + strh r6, [r4, #0xc] + add r0, r7, #0x0 + str r7, [r4, #0x10] + bl sub_02025838 + ldr r3, [sp, #0x0] + add r1, r5, #0x0 + add r2, r6, #0x0 + str r0, [r4, #0x18] + bl sub_020258B0 + str r0, [r4, #0x14] + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02085578 +sub_02085578: ; 0x02085578 + push {r3-r7, lr} + add r7, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r7, #0x0 + mov r1, #0x1c + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x1c + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0x0 + strh r0, [r4, #0x0] + str r5, [r4, #0x10] + add r0, r7, #0x0 + bl sub_020256BC + str r0, [r4, #0x14] + ldr r2, [r4, #0x14] + add r0, r6, #0x0 + mov r1, #0xa9 + bl sub_020671BC + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020855B0 +sub_020855B0: ; 0x020855B0 + push {r3-r7, lr} + add r7, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r7, #0x0 + mov r1, #0x1c + bl sub_020169D8 + mov r1, #0x0 + mov r2, #0x1c + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0x0 + strh r0, [r4, #0x0] + add r0, r7, #0x0 + str r5, [r4, #0x10] + bl sub_020256BC + add r1, r6, #0x0 + str r0, [r4, #0x14] + bl sub_020257D0 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020855E4 +sub_020855E4: ; 0x020855E4 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_020855E8 +sub_020855E8: ; 0x020855E8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_020855E4 + cmp r0, #0x0 + bne _020855FC + mov r0, #0x0 + pop {r4-r6, pc} +_020855FC: + ldr r0, [r5, #0x18] + ldr r3, [r5, #0x14] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl sub_02025888 + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start sub_0208560C +sub_0208560C: ; 0x0208560C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_020855E4 + cmp r0, #0x0 + bne _0208561E + mov r0, #0x0 + pop {r3-r5, pc} +_0208561E: + ldr r2, [r5, #0x14] + add r0, r4, #0x0 + mov r1, #0xa9 + bl sub_02067830 + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_0208562C +sub_0208562C: ; 0x0208562C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x14] + cmp r0, #0x0 + beq _0208563A + bl sub_02016A18 +_0208563A: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02085644 +sub_02085644: ; 0x02085644 + push {r3-r7, lr} + add r5, r1, #0x0 + mov r1, #0x0 + add r7, r0, #0x0 + add r4, r2, #0x0 + str r1, [sp, #0x0] + bl sub_02025864 + add r6, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r6, r0 + beq _0208569E + add r0, r4, #0x0 + bl sub_020256BC + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xa9 + add r2, r4, #0x0 + bl sub_020671BC + add r0, r7, #0x0 + mov r1, #0x0 + add r2, r6, #0x0 + add r3, r4, #0x0 + bl sub_02025888 + add r0, r4, #0x0 + bl sub_02025658 + add r0, r5, #0x0 + mov r1, #0xa9 + add r2, r4, #0x0 + bl sub_02067830 + add r0, r5, #0x0 + mov r1, #0x6 + add r2, sp, #0x0 + bl sub_02067830 + add r0, r4, #0x0 + bl sub_02016A18 + add r0, r6, #0x0 +_0208569E: + pop {r3-r7, pc} + + thumb_func_start sub_020856A0 +sub_020856A0: ; 0x020856A0 + push {r3-r7, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + mov r1, #0x0 + add r2, r5, #0x0 + add r7, r0, #0x0 + str r1, [sp, #0x0] + bl sub_020258B0 + add r6, r0, #0x0 + bne _020856BC + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_020856BC: + bl sub_020257CC + bl sub_0206EAD8 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0xa9 + add r2, r6, #0x0 + bl sub_02067830 + add r0, r4, #0x0 + mov r1, #0x6 + add r2, sp, #0x0 + bl sub_02067830 + add r0, r7, #0x0 + mov r1, #0x0 + add r2, r5, #0x0 + bl sub_02025878 + add r0, r6, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020856F0 +sub_020856F0: ; 0x020856F0 + push {r3-r7, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x34 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x34 + add r6, r0, #0x0 + blx sub_020CE34C + mov r0, #0x0 + strh r0, [r6, #0x0] + add r0, r4, #0x0 + bl sub_020257C0 + str r0, [r6, #0x8] + mov r0, #0x8 + add r1, r5, #0x0 + bl sub_020219F4 + str r0, [r6, #0x10] + add r0, r4, #0x0 + bl sub_020257C4 + add r1, r0, #0x0 + ldr r0, [r6, #0x10] + bl sub_02021E28 + add r0, r4, #0x0 + bl sub_020257CC + strb r0, [r6, #0xf] + add r0, r4, #0x0 + bl sub_020257D8 + strb r0, [r6, #0xd] + add r0, r4, #0x0 + bl sub_020257DC + strb r0, [r6, #0xe] + mov r5, #0x0 + mov r7, #0x2 +_02085748: + lsl r1, r5, #0x18 + add r0, r4, #0x0 + lsr r1, r1, #0x18 + add r2, r7, #0x0 + bl sub_020257E0 + lsl r1, r5, #0x1 + add r1, r6, r1 + strh r0, [r1, #0x14] + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x3 + blo _02085748 + add r7, r6, #0x0 + mov r5, #0x0 + add r7, #0x1a +_0208576A: + lsl r1, r5, #0x18 + add r0, r4, #0x0 + lsr r1, r1, #0x18 + bl sub_02025814 + add r1, r0, #0x0 + lsl r0, r5, #0x3 + add r0, r7, r0 + bl sub_02013960 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x3 + blo _0208576A + add r0, r6, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_0208578C +sub_0208578C: ; 0x0208578C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x10] + cmp r0, #0x0 + beq _0208579A + bl sub_02021A20 +_0208579A: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020857A4 +sub_020857A4: ; 0x020857A4 + push {r3-r7, lr} + add r7, r1, #0x0 + add r4, r7, #0x0 + add r6, r0, #0x0 + mov r5, #0x0 + add r4, #0x1a +_020857B0: + lsl r1, r5, #0x3 + lsl r2, r5, #0x18 + add r0, r6, #0x0 + add r1, r4, r1 + lsr r2, r2, #0x18 + bl sub_02025824 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x3 + blo _020857B0 + ldrb r1, [r7, #0xf] + add r0, r6, #0x0 + bl sub_020257D0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020857D4 +sub_020857D4: ; 0x020857D4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020857F4 + bl sub_02006290 + cmp r0, #0x0 + beq _020857F4 + ldr r0, [r4, #0x0] + bl sub_02006260 + mov r0, #0x0 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} +_020857F4: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_020857F8 +sub_020857F8: ; 0x020857F8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_0200628C + mov r2, #0x1 + add r5, r0, #0x0 + mov r0, #0x3 + mov r1, #0x28 + lsl r2, r2, #0xc + bl sub_0201681C + add r0, r4, #0x0 + mov r1, #0x1c + mov r2, #0x28 + bl sub_02006268 + mov r1, #0x0 + mov r2, #0x1c + add r4, r0, #0x0 + blx sub_020CE34C + mov r1, #0x28 + str r1, [r4, #0x0] + ldr r0, [r5, #0x14] + bl sub_020856F0 + str r0, [r4, #0x10] + ldr r0, [r5, #0x10] + bl sub_02023900 + ldr r1, [r4, #0x10] + str r0, [r1, #0x4] + ldrh r0, [r5, #0x0] + cmp r0, #0x1 + bne _02085844 + ldrb r1, [r5, #0xf] + ldr r0, [r4, #0x10] + strb r1, [r0, #0xf] +_02085844: + ldr r1, [r4, #0x10] + ldrb r0, [r1, #0xf] + cmp r0, #0xc + blo _02085850 + mov r0, #0x0 + strb r0, [r1, #0xf] +_02085850: + ldrh r1, [r5, #0x0] + ldr r0, [r4, #0x10] + strh r1, [r0, #0x0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0208585C +sub_0208585C: ; 0x0208585C + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + bl sub_02006278 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_0200628C + add r6, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x4 + bls _02085878 + b _02085990 +_02085878: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r0, r4, #0 + lsl r4, r1, #0x1 + lsl r2, r7, #0x1 + lsl r0, r3, #0x3 + ldrh r1, [r6, #0x0] + ldr r0, [r4, #0x10] + strh r1, [r0, #0x0] + ldr r0, _02085994 ; =0x020FCAA8 + ldr r1, [r4, #0x10] + ldr r2, [r4, #0x0] + bl sub_02006234 + str r0, [r4, #0xc] + mov r0, #0x1 + str r0, [r5, #0x0] + b _02085990 +_020858A6: + .byte 0x20, 0x1C, 0x0C, 0x30, 0xFF, 0xF7, 0x93, 0xFF, 0x00, 0x28 + .byte 0x6E, 0xD0, 0x20, 0x69, 0x01, 0x88, 0x03, 0x29, 0x05, 0xD0, 0x37, 0x48, 0x81, 0x42, 0x05, 0xD1 + .byte 0x02, 0x20, 0x28, 0x60, 0x64, 0xE0, 0x02, 0x20, 0x28, 0x60, 0x61, 0xE0, 0x03, 0x20, 0x28, 0x60 + .byte 0x5E, 0xE0, 0x30, 0x88, 0x01, 0x28, 0x11, 0xD1, 0x21, 0x69, 0x08, 0x88, 0x03, 0x28, 0x0B, 0xD1 + .byte 0x70, 0x69, 0xFF, 0xF7, 0x5F, 0xFF, 0x30, 0x69, 0xA4, 0xF7, 0x6E, 0xFB, 0x02, 0x21, 0xA4, 0xF7 + .byte 0x3F, 0xFC, 0x01, 0x20, 0x70, 0x60, 0x01, 0xE0, 0x00, 0x20, 0x70, 0x60, 0x01, 0x20, 0x70, 0xBD + .byte 0x32, 0x69, 0x23, 0x68, 0x02, 0x20, 0x00, 0x21, 0xFF, 0xF7, 0x16, 0xFD, 0xA0, 0x60, 0x20, 0x69 + .byte 0x01, 0x1C, 0x80, 0x78, 0x1A, 0x31, 0xC0, 0x00, 0x08, 0x18, 0x8D, 0xF7, 0x9F, 0xFF, 0x00, 0x28 + .byte 0x0A, 0xD0, 0x21, 0x69, 0x20, 0x1C, 0x0A, 0x1C, 0x89, 0x78, 0x1A, 0x32, 0x14, 0x30, 0xC9, 0x00 + .byte 0x51, 0x18, 0x8E, 0xF7, 0x15, 0xF8, 0x04, 0xE0, 0x20, 0x1C, 0x14, 0x30, 0x03, 0x21, 0x8D, 0xF7 + .byte 0xFD, 0xFE, 0x21, 0x1C, 0xA0, 0x68, 0x14, 0x31, 0xFF, 0xF7, 0x38, 0xFD, 0x13, 0x48, 0xA1, 0x68 + .byte 0x22, 0x68, 0x80, 0xF7, 0x6F, 0xFC, 0xE0, 0x60, 0x04, 0x20, 0x28, 0x60, 0x18, 0xE0, 0x20, 0x1C + .byte 0x0C, 0x30, 0xFF, 0xF7, 0x37, 0xFF, 0x00, 0x28, 0x12, 0xD0, 0xA0, 0x68, 0xFF, 0xF7, 0x3A, 0xFD + .byte 0x00, 0x28, 0x08, 0xD1, 0x21, 0x69, 0xA0, 0x68, 0x0A, 0x1C, 0x89, 0x78, 0x1A, 0x32, 0xC9, 0x00 + .byte 0x51, 0x18, 0xFF, 0xF7, 0x3B, 0xFD, 0xA0, 0x68, 0xFF, 0xF7, 0x0E, 0xFD, 0x00, 0x20, 0x28, 0x60 +_02085990: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_02085994: .word 0x020FCAA8 +_02085998: + .byte 0xFF, 0xFF, 0x00, 0x00, 0xB8, 0xCA, 0x0F, 0x02 + + thumb_func_start sub_020859A0 +sub_020859A0: ; 0x020859A0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02006278 + add r4, r0, #0x0 + ldr r0, [r4, #0x10] + bl sub_0208578C + add r0, r5, #0x0 + bl sub_0200627C + ldr r0, [r4, #0x0] + bl sub_020168D0 + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_020859C0 +sub_020859C0: ; 0x020859C0 + push {r3-r7, lr} + mov r2, #0x2 + add r5, r0, #0x0 + mov r0, #0x3 + mov r1, #0x35 + lsl r2, r2, #0x12 + bl sub_0201681C + mov r0, #0x35 + bl sub_02230F3C + bl sub_0222F7E0 + ldr r1, _02085BA0 ; =0x0000042C + add r0, r5, #0x0 + mov r2, #0x35 + bl sub_02006268 + ldr r2, _02085BA0 ; =0x0000042C + mov r1, #0x0 + add r4, r0, #0x0 + blx sub_020DF4A4 + bl sub_0222E2BC + mov r1, #0x23 + lsl r1, r1, #0x4 + str r0, [r4, r1] + add r0, r5, #0x0 + bl sub_0200628C + str r0, [r4, #0x0] + mov r0, #0x35 + bl sub_020669C0 + ldr r1, _02085BA4 ; =0x00000428 + mov r2, #0xff + str r0, [r4, r1] + add r0, r4, #0x0 + add r0, #0xd4 + str r2, [r0, #0x0] + mov r0, #0x0 + sub r1, #0x10 + str r0, [r4, r1] + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x20] + bl sub_02029E0C + asr r1, r0, #0x2 + lsr r1, r1, #0x1d + add r1, r0, r1 + asr r0, r1, #0x3 + add r1, r0, #0x1 + ldr r0, _02085BA8 ; =0x0000041C + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0xa + ble _02085A38 + mov r1, #0xa + str r1, [r4, r0] +_02085A38: + ldr r0, [r4, #0x0] + bl sub_02085D84 + mov r1, #0xf1 + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, #0x0] + bl sub_02085D84 + mov r1, #0xf2 + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x20] + bl sub_02029CEC + str r0, [r4, #0x64] + mov r6, #0x0 + add r5, r4, #0x0 + mov r7, #0xff +_02085A60: + ldr r0, [r4, #0x0] + add r1, r6, #0x0 + ldr r0, [r0, #0x20] + bl sub_02029C8C + str r7, [r5, #0x4] + str r0, [r5, #0x8] + add r6, r6, #0x1 + add r5, #0x8 + cmp r6, #0xc + blt _02085A60 + mov r5, #0x0 + add r6, r5, #0x0 + mov r7, #0xa1 +_02085A7C: + ldr r0, [r4, #0x0] + add r0, r0, r6 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _02085A9A + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_020671BC + cmp r0, #0x0 + beq _02085A9A + lsl r0, r0, #0x3 + add r0, r4, r0 + sub r0, r0, #0x4 + str r5, [r0, #0x0] +_02085A9A: + add r5, r5, #0x1 + add r6, r6, #0x4 + cmp r5, #0x6 + blt _02085A7C + mov r0, #0x35 + bl sub_02016B94 + add r1, r4, #0x0 + add r1, #0xe4 + str r0, [r1, #0x0] + mov r0, #0x40 + mov r1, #0x35 + bl sub_0201C24C + mov r0, #0x35 + bl sub_02002FD0 + add r1, r4, #0x0 + add r1, #0xe8 + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0xe8 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_020038F0 + add r0, r4, #0x0 + add r0, #0xe8 + mov r2, #0x2 + ldr r0, [r0, #0x0] + mov r1, #0x0 + lsl r2, r2, #0x8 + mov r3, #0x35 + bl sub_02003008 + add r0, r4, #0x0 + add r0, #0xe8 + mov r1, #0x1 + ldr r0, [r0, #0x0] + lsl r2, r1, #0x9 + mov r3, #0x35 + bl sub_02003008 + add r0, r4, #0x0 + add r0, #0xe8 + mov r1, #0x2 + ldr r0, [r0, #0x0] + lsl r2, r1, #0x8 + mov r3, #0x35 + bl sub_02003008 + add r0, r4, #0x0 + add r0, #0xe8 + mov r2, #0x2 + ldr r0, [r0, #0x0] + mov r1, #0x3 + lsl r2, r2, #0x8 + mov r3, #0x35 + bl sub_02003008 + add r0, r4, #0x0 + add r0, #0xe4 + ldr r0, [r0, #0x0] + bl sub_02230F80 + bl sub_0222E360 + mov r0, #0x35 + bl sub_02006D98 + mov r1, #0x69 + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0x35 + mov r1, #0x1 + mov r2, #0x0 + bl sub_02014BF4 + mov r1, #0x97 + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x24] + bl sub_02025084 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r4, #0x0 + add r0, #0xe4 + add r1, #0xe8 + ldr r0, [r0, #0x0] + ldr r1, [r1, #0x0] + add r2, r5, #0x0 + bl sub_0222ED34 + add r0, r4, #0x0 + add r1, r4, #0x0 + add r0, #0xe4 + add r1, #0xe8 + ldr r0, [r0, #0x0] + ldr r1, [r1, #0x0] + add r2, r5, #0x0 + bl sub_0222EDBC + add r0, r4, #0x0 + add r0, #0xd4 + bl sub_0222E7E8 + bl sub_0201CC08 + mov r0, #0x4 + bl sub_0201CC24 + add r0, r4, #0x0 + bl sub_022300E4 + ldr r0, _02085BAC ; =0x022310CD + add r1, r4, #0x0 + bl sub_02015F10 + add r0, r4, #0x0 + bl sub_0222DD1C + mov r1, #0x0 + mov r0, #0x3b + add r2, r1, #0x0 + bl sub_0200433C + mov r0, #0x1 + pop {r3-r7, pc} + nop +_02085BA0: .word 0x0000042C +_02085BA4: .word 0x00000428 +_02085BA8: .word 0x0000041C +_02085BAC: .word 0x022310CD + + thumb_func_start sub_02085BB0 +sub_02085BB0: ; 0x02085BB0 + push {r3-r5, lr} + add r5, r1, #0x0 + bl sub_02006278 + ldr r1, [r5, #0x0] + add r4, r0, #0x0 + cmp r1, #0x0 + beq _02085BCA + cmp r1, #0x1 + beq _02085BD8 + cmp r1, #0x2 + beq _02085BF6 + b _02085C02 +_02085BCA: + bl sub_0200E308 + cmp r0, #0x1 + bne _02085C02 + mov r0, #0x1 + str r0, [r5, #0x0] + b _02085C02 +_02085BD8: + bl sub_0222F990 + cmp r0, #0x0 + bne _02085BE6 + mov r0, #0x2 + str r0, [r5, #0x0] + b _02085C02 +_02085BE6: + mov r0, #0x69 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02006ED4 + bl sub_0222E3A0 + b _02085C02 +_02085BF6: + bl sub_0200E308 + cmp r0, #0x1 + bne _02085C02 + mov r0, #0x1 + pop {r3-r5, pc} +_02085C02: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02085C08 +sub_02085C08: ; 0x02085C08 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02006278 + add r4, r0, #0x0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0201E6E4 + mov r0, #0x2 + mov r1, #0x0 + bl sub_0201E6E4 + mov r0, #0x4 + mov r1, #0x0 + bl sub_0201E6E4 + mov r0, #0x8 + mov r1, #0x0 + bl sub_0201E6E4 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0201E74C + mov r0, #0x2 + mov r1, #0x0 + bl sub_0201E74C + mov r0, #0x4 + mov r1, #0x0 + bl sub_0201E74C + mov r0, #0x8 + mov r1, #0x0 + bl sub_0201E74C + add r0, r4, #0x0 + add r0, #0xe4 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_020178A0 + add r0, r4, #0x0 + add r0, #0xe4 + ldr r0, [r0, #0x0] + mov r1, #0x2 + bl sub_020178A0 + add r0, r4, #0x0 + add r0, #0xe4 + ldr r0, [r0, #0x0] + mov r1, #0x3 + bl sub_020178A0 + add r0, r4, #0x0 + add r0, #0xe4 + ldr r0, [r0, #0x0] + mov r1, #0x4 + bl sub_020178A0 + add r0, r4, #0x0 + add r0, #0xe4 + ldr r0, [r0, #0x0] + mov r1, #0x5 + bl sub_020178A0 + add r0, r4, #0x0 + add r0, #0xe4 + ldr r0, [r0, #0x0] + mov r1, #0x6 + bl sub_020178A0 + add r0, r4, #0x0 + add r0, #0xe4 + ldr r0, [r0, #0x0] + mov r1, #0x7 + bl sub_020178A0 + add r0, r4, #0x0 + add r0, #0xe4 + ldr r0, [r0, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + add r0, #0xe8 + ldr r0, [r0, #0x0] + mov r1, #0x0 + bl sub_02003038 + add r0, r4, #0x0 + add r0, #0xe8 + ldr r0, [r0, #0x0] + mov r1, #0x1 + bl sub_02003038 + add r0, r4, #0x0 + add r0, #0xe8 + ldr r0, [r0, #0x0] + mov r1, #0x2 + bl sub_02003038 + add r0, r4, #0x0 + add r0, #0xe8 + ldr r0, [r0, #0x0] + mov r1, #0x3 + bl sub_02003038 + add r0, r4, #0x0 + add r0, #0xe8 + ldr r0, [r0, #0x0] + bl sub_02002FEC + mov r1, #0xf1 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + ldr r0, [r4, #0x0] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl sub_02085D8C + ldr r0, _02085D64 ; =0x00000428 + ldr r0, [r4, r0] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_0222DAEC + mov r0, #0x73 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_0202212C + mov r0, #0x69 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_020072E8 + mov r0, #0x97 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl sub_02014C28 + add r0, r4, #0x0 + bl sub_0222DD38 + add r0, r4, #0x0 + add r0, #0xd4 + bl sub_0222E874 + bl sub_0201C29C + mov r0, #0x23 + lsl r0, r0, #0x4 + ldr r0, [r4, r0] + bl sub_020223BC + mov r0, #0x35 + bl sub_02230F70 + add r0, r5, #0x0 + bl sub_0200627C + bl sub_0201CD04 + mov r0, #0x35 + bl sub_020168D0 + ldr r0, _02085D68 ; =0x00000008 + bl sub_02005F60 + mov r0, #0x1 + pop {r3-r5, pc} + nop +_02085D64: .word 0x00000428 +_02085D68: .word 0x00000008 + + thumb_func_start sub_02085D6C +sub_02085D6C: ; 0x02085D6C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, r1 + bge _02085D7C + bl sub_02020C2C + mov r1, #0x0 +_02085D7C: + lsl r0, r1, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x4] + pop {r4, pc} + + thumb_func_start sub_02085D84 +sub_02085D84: ; 0x02085D84 + add r0, #0x2c + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02085D8C +sub_02085D8C: ; 0x02085D8C + add r0, #0x2c + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02085D94 +sub_02085D94: ; 0x02085D94 + add r0, #0x2d + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02085D9C +sub_02085D9C: ; 0x02085D9C + add r0, #0x2d + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02085DA4 +sub_02085DA4: ; 0x02085DA4 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + bl sub_0204652C + add r6, r0, #0x0 + add r0, r5, #0x0 + ldr r7, [r6, #0x8] + bl sub_02046528 + str r0, [sp, #0x4] + ldr r0, [r6, #0x14] + cmp r0, #0x6 + bls _02085DC2 + b _02085F38 +_02085DC2: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r4, r1, #0 + lsl r0, r5, #0x1 + lsl r0, r7, #0x1 + lsl r6, r2, #0x2 + lsl r6, r2, #0x3 + lsl r4, r0, #0x5 + lsl r0, r2, #0x5 + add r0, r5, #0x0 + bl sub_0204AF3C + ldr r0, [r6, #0x10] + bl sub_02029C80 + str r0, [r7, #0x20] + add r0, r7, #0x0 + mov r1, #0x0 + bl sub_02085D8C + ldr r0, [r6, #0x10] + bl sub_0206BB1C + str r0, [r7, #0x1c] + bl sub_0206B9AC + mov r4, #0x0 + str r0, [sp, #0x0] + str r0, [r7, #0x0] + cmp r0, #0x0 + ble _02085E1E + add r5, r7, #0x0 +_02085E0A: + ldr r0, [r7, #0x1c] + add r1, r4, #0x0 + bl sub_0206B9B0 + str r0, [r5, #0x4] + ldr r0, [sp, #0x0] + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r0 + blt _02085E0A +_02085E1E: + cmp r4, #0x6 + bge _02085E32 + lsl r0, r4, #0x2 + add r1, r7, r0 + mov r0, #0x0 +_02085E28: + add r4, r4, #0x1 + str r0, [r1, #0x4] + add r1, r1, #0x4 + cmp r4, #0x6 + blt _02085E28 +_02085E32: + mov r0, #0x1 + str r0, [r6, #0x14] + b _02085F38 +_02085E38: + .byte 0x41, 0x49, 0x28, 0x1C, 0x3A, 0x1C, 0xC0, 0xF7 + .byte 0x5F, 0xFB, 0x02, 0x20, 0x70, 0x61, 0x77, 0xE0, 0xB0, 0x68, 0xFF, 0xF7, 0xA3, 0xFF, 0x00, 0x28 + .byte 0x03, 0xD0, 0x01, 0x28, 0x04, 0xD0, 0x9A, 0xF7, 0xE9, 0xFE, 0x05, 0x20, 0x70, 0x61, 0x6B, 0xE0 + .byte 0x03, 0x20, 0x70, 0x61, 0x68, 0xE0, 0xF4, 0x68, 0xF8, 0x69, 0x20, 0x60, 0x30, 0x69, 0xE9, 0xF7 + .byte 0x73, 0xF9, 0x60, 0x60, 0x30, 0x69, 0x9F, 0xF7, 0xDF, 0xFC, 0xA0, 0x60, 0x20, 0x1C, 0x00, 0x21 + .byte 0x22, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x21, 0x30, 0x01, 0x70, 0x20, 0x1C, 0x0F, 0x21, 0x20, 0x30 + .byte 0x01, 0x70, 0x78, 0x6A, 0x2B, 0x49, 0xE0, 0x60, 0x28, 0x1C, 0x22, 0x1C, 0xC0, 0xF7, 0x30, 0xFB + .byte 0x04, 0x20, 0x70, 0x61, 0x48, 0xE0, 0xB0, 0x68, 0xF4, 0x68, 0xFF, 0xF7, 0x6B, 0xFF, 0x40, 0x1C + .byte 0x02, 0x90, 0x22, 0x34, 0x21, 0x78, 0x07, 0x29, 0x29, 0xD0, 0xB0, 0x68, 0xFF, 0xF7, 0x56, 0xFF + .byte 0xA1, 0x21, 0x02, 0xAA, 0x05, 0x1C, 0xE1, 0xF7, 0xB3, 0xFC, 0x02, 0x99, 0x38, 0x6A, 0x49, 0x1E + .byte 0xA3, 0xF7, 0xDC, 0xFE, 0x02, 0x1C, 0x28, 0x1C, 0xAA, 0x21, 0xE1, 0xF7, 0xA9, 0xFC, 0x02, 0x99 + .byte 0x38, 0x6A, 0x49, 0x1E, 0xA3, 0xF7, 0xD2, 0xFE, 0x00, 0x21, 0xA3, 0xF7, 0xED, 0xFE, 0xA3, 0xF7 + .byte 0xF7, 0xFE, 0x00, 0x06, 0x00, 0x0E, 0x00, 0xF0, 0x6B, 0xF8, 0x04, 0x1C, 0x01, 0x98, 0xC0, 0x68 + .byte 0x9C, 0xF7, 0x00, 0xFB, 0x22, 0x06, 0x29, 0x1C, 0x12, 0x0E, 0xDB, 0xF7, 0x45, 0xFC, 0x01, 0x20 + .byte 0x70, 0x61, 0x11, 0xE0, 0x28, 0x1C, 0xC5, 0xF7, 0x35, 0xF8, 0x06, 0x20, 0x70, 0x61, 0x0B, 0xE0 + .byte 0xF0, 0x68, 0x90, 0xF7, 0x79, 0xFD, 0xB0, 0x68, 0x90, 0xF7, 0x76, 0xFD, 0x30, 0x1C, 0x90, 0xF7 + .byte 0x73, 0xFD, 0x03, 0xB0, 0x01, 0x20, 0xF0, 0xBD +_02085F38: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + nop +_02085F40: + .byte 0xD8, 0xCA, 0x0F, 0x02, 0xDC, 0x96, 0x0F, 0x02 + + thumb_func_start sub_02085F48 +sub_02085F48: ; 0x02085F48 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0xb + mov r1, #0x18 + bl sub_020169D8 + add r4, r0, #0x0 + add r2, r4, #0x0 + mov r1, #0x18 + mov r0, #0x0 +_02085F5E: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _02085F5E + mov r0, #0xb + mov r1, #0x30 + str r5, [r4, #0x10] + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x30 + str r0, [r4, #0x8] + blx sub_020DF4A4 + add r0, r5, #0x0 + bl sub_02023900 + ldr r1, [r4, #0x8] + str r0, [r1, #0x24] + ldr r0, [r4, #0x8] + mov r1, #0x40 + str r5, [r0, #0x28] + mov r0, #0xb + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x40 + str r0, [r4, #0xc] + blx sub_020DF4A4 + ldr r1, _02085FA8 ; =sub_02085DA4 + add r0, r6, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r4-r6, pc} + nop +_02085FA8: .word sub_02085DA4 + 1 + + thumb_func_start sub_02085FAC +sub_02085FAC: ; 0x02085FAC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02085FC8 ; =0x0000032A + cmp r4, r0 + blo _02085FBA + bl sub_02020C2C +_02085FBA: + mov r0, #0xa + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02085FCC ; =0x020FCAE8 + ldrh r0, [r0, r1] + pop {r4, pc} + nop +_02085FC8: .word 0x0000032A +_02085FCC: .word 0x020FCAE8 + + thumb_func_start sub_02085FD0 +sub_02085FD0: ; 0x02085FD0 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02085FEC ; =0x0000032A + cmp r4, r0 + blo _02085FDE + bl sub_02020C2C +_02085FDE: + mov r0, #0xa + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02085FF0 ; =0x020FCAEA + ldrb r0, [r0, r1] + pop {r4, pc} + nop +_02085FEC: .word 0x0000032A +_02085FF0: .word 0x020FCAEA + + thumb_func_start sub_02085FF4 +sub_02085FF4: ; 0x02085FF4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02086010 ; =0x0000032A + cmp r4, r0 + blo _02086002 + bl sub_02020C2C +_02086002: + mov r0, #0xa + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02086014 ; =0x020FCAEC + ldrb r0, [r0, r1] + pop {r4, pc} + nop +_02086010: .word 0x0000032A +_02086014: .word 0x020FCAEC + + thumb_func_start sub_02086018 +sub_02086018: ; 0x02086018 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02086034 ; =0x0000032A + cmp r4, r0 + blo _02086026 + bl sub_02020C2C +_02086026: + mov r0, #0xa + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02086038 ; =0x020FCAED + ldrb r0, [r0, r1] + pop {r4, pc} + nop +_02086034: .word 0x0000032A +_02086038: .word 0x020FCAED + + thumb_func_start sub_0208603C +sub_0208603C: ; 0x0208603C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02086058 ; =0x0000032A + cmp r4, r0 + blo _0208604A + bl sub_02020C2C +_0208604A: + mov r0, #0xa + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _0208605C ; =0x020FCAEE + ldrh r0, [r0, r1] + pop {r4, pc} + nop +_02086058: .word 0x0000032A +_0208605C: .word 0x020FCAEE + + thumb_func_start sub_02086060 +sub_02086060: ; 0x02086060 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0208607C ; =0x0000032A + cmp r4, r0 + blo _0208606E + bl sub_02020C2C +_0208606E: + mov r0, #0xa + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02086080 ; =0x020FCAF0 + ldrb r0, [r0, r1] + pop {r4, pc} + nop +_0208607C: .word 0x0000032A +_02086080: .word 0x020FCAF0 + + thumb_func_start sub_02086084 +sub_02086084: ; 0x02086084 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + bl sub_02015F1C + mov r2, #0x1 + mov r0, #0x3 + mov r1, #0x47 + lsl r2, r2, #0x12 + bl sub_0201681C + add r0, r5, #0x0 + mov r1, #0x80 + mov r2, #0x47 + bl sub_02006268 + mov r1, #0x0 + mov r2, #0x80 + add r4, r0, #0x0 + blx sub_020DF4A4 + add r0, r5, #0x0 + bl sub_0200628C + str r0, [r4, #0x0] + ldr r0, [r0, #0x10] + bl sub_02024FF4 + str r0, [r4, #0x10] + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x10] + bl sub_02025084 + str r0, [r4, #0x14] + bl sub_02086468 + str r0, [r4, #0x38] + mov r0, #0x47 + bl sub_02006D98 + str r0, [r4, #0x3c] + mov r0, #0x47 + bl sub_02016B94 + str r0, [r4, #0x4] + mov r0, #0x40 + mov r1, #0x47 + bl sub_0201C24C + mov r0, #0x47 + mov r1, #0x1 + mov r2, #0x0 + bl sub_02014BF4 + str r0, [r4, #0x54] + mov r0, #0x47 + bl sub_02002FD0 + str r0, [r4, #0x8] + mov r1, #0x1 + bl sub_020038F0 + mov r2, #0x2 + ldr r0, [r4, #0x8] + mov r1, #0x0 + lsl r2, r2, #0x8 + mov r3, #0x47 + bl sub_02003008 + mov r1, #0x2 + ldr r0, [r4, #0x8] + lsl r2, r1, #0x8 + mov r3, #0x47 + bl sub_02003008 + mov r1, #0x1 + ldr r0, [r4, #0x8] + lsl r2, r1, #0x9 + mov r3, #0x47 + bl sub_02003008 + mov r2, #0x2 + ldr r0, [r4, #0x8] + mov r1, #0x3 + lsl r2, r2, #0x8 + mov r3, #0x47 + bl sub_02003008 + bl sub_02086414 + bl sub_0208643C + bl sub_0208650C + ldr r0, [r4, #0x4] + bl sub_0208654C + add r0, r4, #0x4 + bl sub_02086E48 + bl sub_0200541C + ldr r0, _02086164 ; =sub_02086664 + add r1, r4, #0x0 + bl sub_02015F10 + mov r0, #0x1 + pop {r3-r5, pc} + nop +_02086164: .word sub_02086664 + 1 + + thumb_func_start sub_02086168 +sub_02086168: ; 0x02086168 + push {r3-r5, lr} + add r5, r1, #0x0 + bl sub_02006278 + ldr r1, [r5, #0x0] + add r4, r0, #0x0 + cmp r1, #0x0 + beq _0208617E + cmp r1, #0x1 + beq _020861AA + b _020861C6 +_0208617E: + bl sub_0200E308 + cmp r0, #0x1 + bne _0208618C + ldr r0, [r5, #0x0] + add r0, r0, #0x1 + str r0, [r5, #0x0] +_0208618C: + ldr r0, [r4, #0x0] + mov r1, #0x5 + ldr r0, [r0, #0xc] + mov r2, #0x0 + bl sub_020671BC + ldr r1, _020861D8 ; =0x000001EA + cmp r0, r1 + bne _020861A4 + mov r0, #0x1 + str r0, [r4, #0x58] + b _020861D2 +_020861A4: + mov r0, #0x0 + str r0, [r4, #0x58] + b _020861D2 +_020861AA: + bl sub_02086FA8 + cmp r0, #0x0 + bne _020861BA + ldr r0, [r5, #0x0] + add r0, r0, #0x1 + str r0, [r5, #0x0] + b _020861D2 +_020861BA: + ldr r0, [r4, #0x3c] + bl sub_02006ED4 + bl sub_02086698 + b _020861D2 +_020861C6: + bl sub_0200E308 + cmp r0, #0x1 + bne _020861D2 + mov r0, #0x1 + pop {r3-r5, pc} +_020861D2: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_020861D8: .word 0x000001EA + + thumb_func_start sub_020861DC +sub_020861DC: ; 0x020861DC + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02006278 + add r4, r0, #0x0 + ldr r0, [r4, #0x38] + bl sub_020223BC + mov r0, #0x1 + mov r1, #0x0 + bl sub_0201E6E4 + mov r0, #0x2 + mov r1, #0x0 + bl sub_0201E6E4 + mov r0, #0x3 + mov r1, #0x0 + bl sub_0201E6E4 + mov r0, #0x4 + mov r1, #0x0 + bl sub_0201E74C + ldr r0, [r4, #0x8] + mov r1, #0x0 + bl sub_02003038 + ldr r0, [r4, #0x8] + mov r1, #0x2 + bl sub_02003038 + ldr r0, [r4, #0x8] + mov r1, #0x1 + bl sub_02003038 + ldr r0, [r4, #0x8] + mov r1, #0x3 + bl sub_02003038 + ldr r0, [r4, #0x8] + bl sub_02002FEC + ldr r0, [r4, #0x4] + mov r1, #0x1 + bl sub_020178A0 + ldr r0, [r4, #0x4] + mov r1, #0x2 + bl sub_020178A0 + ldr r0, [r4, #0x4] + mov r1, #0x3 + bl sub_020178A0 + ldr r0, [r4, #0x4] + mov r1, #0x4 + bl sub_020178A0 + ldr r0, [r4, #0x4] + bl sub_02016A18 + bl sub_0201C29C + ldr r0, [r4, #0x3c] + bl sub_020072E8 + ldr r0, [r4, #0x54] + bl sub_02014C28 + add r0, r4, #0x4 + bl sub_02086ED4 + add r0, r5, #0x0 + bl sub_0200627C + mov r0, #0x47 + bl sub_020168D0 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02086280 +sub_02086280: ; 0x02086280 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + cmp r1, #0x6 + bls _02086294 + b _020863CE +_02086294: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0 + lsl r2, r4, #0 + lsl r4, r6, #0 + lsl r0, r3, #0x2 + lsl r4, r6, #0x3 + lsl r4, r2, #0x4 + lsl r2, r4, #0x4 + ldr r0, [r4, #0xc] + mov r1, #0xb + bl sub_021ED940 + add r0, r5, #0x0 + bl sub_0204AF3C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020863CE +_020862C4: + .byte 0x43, 0x49, 0x28, 0x1C, 0x22, 0x1C, 0xC0, 0xF7, 0x19, 0xF9, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x7B, 0xE0, 0x28, 0x1C, 0xC0, 0xF7, 0x26, 0xF9, 0x06, 0x1C, 0xE5, 0x68 + .byte 0xB1, 0xF7, 0x64, 0xFA, 0x9D, 0xF7, 0x06, 0xFB, 0x07, 0x1C, 0xF0, 0x69, 0x00, 0x68, 0xAE, 0xF7 + .byte 0x99, 0xFA, 0x01, 0x90, 0x00, 0x20, 0x02, 0x90, 0x28, 0x1C, 0x4C, 0x21, 0x02, 0xAA, 0xE1, 0xF7 + .byte 0x97, 0xFA, 0x0B, 0x20, 0x00, 0x90, 0x01, 0x9B, 0x28, 0x1C, 0x39, 0x1C, 0x06, 0x22, 0xFA, 0xF7 + .byte 0xC5, 0xFA, 0x28, 0x1C, 0xB2, 0x21, 0x00, 0x22, 0xE1, 0xF7, 0x8A, 0xFA, 0x30, 0x1C, 0xB1, 0xF7 + .byte 0x45, 0xFA, 0xE1, 0x68, 0xA5, 0xF7, 0x0E, 0xFF, 0x60, 0x68, 0x01, 0x28, 0x02, 0xD1, 0x03, 0x20 + .byte 0x20, 0x60, 0x4C, 0xE0, 0x05, 0x20, 0x20, 0x60, 0x49, 0xE0, 0x28, 0x1C, 0xC0, 0xF7, 0xF4, 0xF8 + .byte 0x06, 0x1C, 0xE0, 0x68, 0x05, 0x21, 0x00, 0x22, 0xE0, 0xF7, 0x38, 0xFF, 0x07, 0x1C, 0x30, 0x1C + .byte 0xB1, 0xF7, 0x2C, 0xFA, 0x9D, 0xF7, 0xD4, 0xFA, 0x00, 0x90, 0x0B, 0x20, 0x01, 0x21, 0x3A, 0x1C + .byte 0x0A, 0x23, 0xF1, 0xF7, 0x8F, 0xFB, 0xA0, 0x60, 0xE0, 0x68, 0x6F, 0x21, 0x00, 0x22, 0xE0, 0xF7 + .byte 0x25, 0xFF, 0xA1, 0x68, 0x00, 0x22, 0x08, 0x61, 0xE0, 0x68, 0x70, 0x21, 0xE0, 0xF7, 0x1E, 0xFF + .byte 0xA1, 0x68, 0x88, 0x60, 0x14, 0x49, 0xA2, 0x68, 0x28, 0x1C, 0xC0, 0xF7, 0xB9, 0xF8, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x1B, 0xE0, 0xA2, 0x68, 0x50, 0x69, 0x00, 0x28, 0x04, 0xD1, 0xE0, 0x68 + .byte 0x92, 0x69, 0x77, 0x21, 0xE1, 0xF7, 0x44, 0xFA, 0xA0, 0x68, 0xF1, 0xF7, 0x8B, 0xFB, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x0B, 0xE0, 0x28, 0x1C, 0xC4, 0xF7, 0xE4, 0xFD, 0x20, 0x68, 0x40, 0x1C + .byte 0x20, 0x60, 0x04, 0xE0, 0x90, 0xF7, 0x28, 0xFB, 0x03, 0xB0, 0x01, 0x20, 0xF0, 0xBD +_020863CE: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} +_020863D4: + .byte 0x14, 0xCE, 0x0F, 0x02, 0xFC, 0xA5, 0x0F, 0x02 + + thumb_func_start sub_020863DC +sub_020863DC: ; 0x020863DC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0xb + mov r1, #0x1c + bl sub_020169D8 + add r2, r0, #0x0 + add r3, r2, #0x0 + mov r1, #0x1c + mov r0, #0x0 +_020863F2: + strb r0, [r3, #0x0] + add r3, r3, #0x1 + sub r1, r1, #0x1 + bne _020863F2 + add r3, r2, #0x0 + add r3, #0xc + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldr r1, _02086410 ; =sub_02086280 + add r0, r5, #0x0 + bl sub_0204640C + pop {r3-r5, pc} + .balign 4 +_02086410: .word sub_02086280 + 1 + + thumb_func_start sub_02086414 +sub_02086414: ; 0x02086414 + push {r3, lr} + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02086434 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _02086438 ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + pop {r3, pc} + .balign 4 +_02086434: .word 0xFFFFE0FF +_02086438: .word 0x04001000 + + thumb_func_start sub_0208643C +sub_0208643C: ; 0x0208643C + push {r3, lr} + mov r0, #0x7 + str r0, [sp, #0x0] + ldr r0, _02086460 ; =0x04000050 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0xb + blx sub_020C74DC + mov r0, #0x8 + str r0, [sp, #0x0] + ldr r0, _02086464 ; =0x04001050 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0x7 + blx sub_020C74DC + pop {r3, pc} + .balign 4 +_02086460: .word 0x04000050 +_02086464: .word 0x04001050 + + thumb_func_start sub_02086468 +sub_02086468: ; 0x02086468 + push {r3, lr} + sub sp, #0x8 + mov r2, #0x2 + mov r1, #0x0 + ldr r0, _02086484 ; =sub_02086488 + str r2, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x47 + add r3, r1, #0x0 + bl sub_02022318 + add sp, #0x8 + pop {r3, pc} + nop +_02086484: .word sub_02086488 + 1 + + thumb_func_start sub_02086488 +sub_02086488: ; 0x02086488 + push {r3, lr} + mov r0, #0x1 + add r1, r0, #0x0 + bl sub_0201E6E4 + ldr r0, _020864F4 ; =0x04000008 + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strh r1, [r0, #0x0] + add r0, #0x58 + ldrh r2, [r0, #0x0] + ldr r1, _020864F8 ; =0xFFFFCFFD + and r2, r1 + strh r2, [r0, #0x0] + add r2, r1, #0x2 + ldrh r3, [r0, #0x0] + add r1, r1, #0x2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0, #0x0] + ldrh r3, [r0, #0x0] + ldr r2, _020864FC ; =0x0000CFFB + and r3, r2 + strh r3, [r0, #0x0] + ldrh r3, [r0, #0x0] + sub r2, #0x1c + and r3, r1 + mov r1, #0x8 + orr r1, r3 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + and r1, r2 + strh r1, [r0, #0x0] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + blx sub_020C7C28 + mov r0, #0x0 + ldr r2, _02086500 ; =0x00007FFF + add r1, r0, #0x0 + mov r3, #0x3f + str r0, [sp, #0x0] + blx sub_020C7B3C + ldr r1, _02086504 ; =0xBFFF0000 + ldr r0, _02086508 ; =0x04000580 + str r1, [r0, #0x0] + pop {r3, pc} + .balign 4 +_020864F4: .word 0x04000008 +_020864F8: .word 0xFFFFCFFD +_020864FC: .word 0x0000CFFB +_02086500: .word 0x00007FFF +_02086504: .word 0xBFFF0000 +_02086508: .word 0x04000580 + + thumb_func_start sub_0208650C +sub_0208650C: ; 0x0208650C + push {r3-r5, lr} + ldr r3, _02086544 ; =0x021064B8 + mov r0, #0x2 + mov r1, #0x0 + ldr r3, [r3, #0x0] + lsl r0, r0, #0xe + add r2, r1, #0x0 + blx r3 + ldr r3, _02086548 ; =0x021064C0 + mov r1, #0x0 + add r4, r0, #0x0 + ldr r3, [r3, #0x0] + mov r0, #0x80 + add r2, r1, #0x0 + blx r3 + add r5, r0, #0x0 + cmp r4, #0x0 + bne _02086534 + bl sub_02020C2C +_02086534: + cmp r5, #0x0 + bne _0208653C + bl sub_02020C2C +_0208653C: + bl sub_02012CC8 + pop {r3-r5, pc} + nop +_02086544: .word 0x021064B8 +_02086548: .word 0x021064C0 + + thumb_func_start sub_0208654C +sub_0208654C: ; 0x0208654C + push {r3-r5, lr} + sub sp, #0xa8 + add r4, r0, #0x0 + bl sub_0201E6D8 + ldr r5, _02086650 ; =0x020FCEBC + add r3, sp, #0x2c + mov r2, #0x5 +_0208655C: + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0208655C + add r0, sp, #0x2c + bl sub_0201E66C + mov r1, #0x6 + mov r2, #0x2 + mov r0, #0x0 + lsl r1, r1, #0x18 + lsl r2, r2, #0x12 + blx sub_020CE1FC + mov r1, #0x62 + mov r2, #0x2 + mov r0, #0x0 + lsl r1, r1, #0x14 + lsl r2, r2, #0x10 + blx sub_020CE1FC + mov r1, #0x19 + mov r2, #0x1 + mov r0, #0x0 + lsl r1, r1, #0x16 + lsl r2, r2, #0x12 + blx sub_020CE1FC + mov r1, #0x66 + mov r2, #0x2 + mov r0, #0x0 + lsl r1, r1, #0x14 + lsl r2, r2, #0x10 + blx sub_020CE1FC + ldr r5, _02086654 ; =0x020FCE24 + add r3, sp, #0x1c + add r2, r3, #0x0 + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + bl sub_02016BBC + ldr r5, _02086658 ; =0x020FCF84 + add r3, sp, #0x54 + mov r2, #0xa +_020865BC: + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _020865BC + ldr r0, [r5, #0x0] + mov r1, #0x1 + str r0, [r3, #0x0] + add r0, r4, #0x0 + add r2, sp, #0x54 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x2 + add r2, sp, #0x70 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x3 + add r2, sp, #0x8c + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x1 + bl sub_02018744 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02018744 + add r0, r4, #0x0 + mov r1, #0x3 + bl sub_02018744 + ldr r1, _0208665C ; =0x04000008 + mov r0, #0x3 + ldrh r2, [r1, #0x0] + bic r2, r0 + mov r0, #0x1 + orr r2, r0 + strh r2, [r1, #0x0] + add r1, r0, #0x0 + bl sub_0201E6E4 + bl sub_0201E788 + mov r0, #0x10 + mov r1, #0x1 + bl sub_0201E6E4 + ldr r5, _02086660 ; =0x020FCE60 + add r3, sp, #0x0 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x4 + str r0, [r3, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl sub_02016C18 + add r0, r4, #0x0 + mov r1, #0x4 + bl sub_02018744 + add sp, #0xa8 + pop {r3-r5, pc} + .balign 4 +_02086650: .word 0x020FCEBC +_02086654: .word 0x020FCE24 +_02086658: .word 0x020FCF84 +_0208665C: .word 0x04000008 +_02086660: .word 0x020FCE60 + + thumb_func_start sub_02086664 +sub_02086664: ; 0x02086664 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x3c] + bl sub_020081C4 + bl sub_0201C30C + bl sub_0200BC30 + ldr r0, [r4, #0x8] + bl sub_0200372C + ldr r0, [r4, #0x4] + bl sub_0201AB60 + ldr r3, _02086690 ; =0x027E0000 + ldr r1, _02086694 ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .balign 4 +_02086690: .word 0x027E0000 +_02086694: .word 0x00003FF8 + + thumb_func_start sub_02086698 +sub_02086698: ; 0x02086698 + push {r3, lr} + bl sub_020222AC + bl sub_02013364 + cmp r0, #0x0 + ble _020866AE + bl sub_020222AC + blx sub_020B02C8 +_020866AE: + bl sub_02013388 + mov r0, #0x1 + mov r1, #0x0 + bl sub_020222B4 + pop {r3, pc} + + thumb_func_start sub_020866BC +sub_020866BC: ; 0x020866BC + push {lr} + sub sp, #0xc + mov r0, #0x6 + str r0, [sp, #0x0] + mov r1, #0x1 + str r1, [sp, #0x4] + mov r0, #0x47 + str r0, [sp, #0x8] + mov r0, #0x0 + add r2, r1, #0x0 + add r3, r0, #0x0 + bl sub_0200E1D0 + add sp, #0xc + pop {pc} + .balign 4 + + thumb_func_start sub_020866DC +sub_020866DC: ; 0x020866DC + push {lr} + sub sp, #0xc + mov r0, #0x6 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r0, #0x47 + str r0, [sp, #0x8] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + bl sub_0200E1D0 + add sp, #0xc + pop {pc} + + thumb_func_start sub_020866FC +sub_020866FC: ; 0x020866FC + push {r3-r6, lr} + sub sp, #0xc + add r6, r2, #0x0 + add r4, r1, #0x0 + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x0] + mov r1, #0x47 + str r1, [sp, #0x4] + mov r1, #0x1 + mov r2, #0x14 + mov r3, #0xf + add r5, r0, #0x0 + bl sub_0200CD68 + add r0, r6, #0x0 + bl sub_0200CD64 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + mov r0, #0xc0 + str r0, [sp, #0x8] + add r0, r4, #0x0 + mov r1, #0x26 + mov r3, #0x47 + bl sub_020030E8 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x47 + str r0, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0x32 + mov r3, #0xd + bl sub_0200CB00 + bl sub_0200CAFC + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + mov r0, #0xd0 + str r0, [sp, #0x8] + add r0, r4, #0x0 + mov r1, #0x26 + mov r3, #0x47 + bl sub_020030E8 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + mov r0, #0xe0 + str r0, [sp, #0x8] + add r0, r4, #0x0 + mov r1, #0xe + mov r2, #0x7 + mov r3, #0x47 + bl sub_020030E8 + add sp, #0xc + pop {r3-r6, pc} + + thumb_func_start sub_02086784 +sub_02086784: ; 0x02086784 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r1, #0x0 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl sub_0201901C + ldr r0, [sp, #0x28] + lsl r2, r4, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + lsl r3, r6, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4] + ldr r0, [sp, #0x30] + add r1, r5, #0x0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + ldr r0, [sp, #0x38] + lsr r2, r2, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + ldr r0, [sp, #0x34] + lsr r3, r3, #0x18 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r0, r7, #0x0 + bl sub_02019064 + add r0, r5, #0x0 + mov r1, #0x1 + mov r2, #0x14 + mov r3, #0xc + bl sub_0200D0BC + add r0, r5, #0x0 + mov r1, #0xf + bl sub_02019620 + add r0, r5, #0x0 + bl sub_020191D0 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_020867EC +sub_020867EC: ; 0x020867EC + push {r3-r7, lr} + sub sp, #0x18 + add r4, r1, #0x0 + mov r1, #0xf + str r0, [sp, #0xc] + str r2, [sp, #0x10] + add r6, r3, #0x0 + bl sub_02019620 + ldr r2, _02086874 ; =0x0000013F + mov r0, #0x0 + mov r1, #0x1a + mov r3, #0x47 + bl sub_0200A86C + add r7, r0, #0x0 + mov r0, #0x47 + bl sub_0200AA80 + add r5, r0, #0x0 + add r0, r7, #0x0 + add r1, r4, #0x0 + bl sub_0200A914 + str r0, [sp, #0x14] + mov r0, #0xff + mov r1, #0x47 + bl sub_020219F4 + add r4, r0, #0x0 + ldr r0, [sp, #0x10] + bl sub_020690E4 + add r2, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_0200AC60 + ldr r2, [sp, #0x14] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_0200B7B8 + mov r3, #0x0 + str r3, [sp, #0x0] + str r6, [sp, #0x4] + ldr r0, [sp, #0xc] + mov r1, #0x1 + add r2, r4, #0x0 + str r3, [sp, #0x8] + bl sub_0201BD84 + add r6, r0, #0x0 + add r0, r7, #0x0 + bl sub_0200A8B8 + add r0, r4, #0x0 + bl sub_02021A20 + ldr r0, [sp, #0x14] + bl sub_02021A20 + add r0, r5, #0x0 + bl sub_0200AB18 + add r0, r6, #0x0 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_02086874: .word 0x0000013F + + thumb_func_start sub_02086878 +sub_02086878: ; 0x02086878 + push {r4-r7, lr} + sub sp, #0x24 + add r5, r0, #0x0 + add r0, r2, #0x0 + add r6, r1, #0x0 + str r2, [sp, #0x14] + add r4, r3, #0x0 + bl sub_0201901C + ldr r0, [sp, #0x3c] + ldr r3, [sp, #0x38] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r0, [sp, #0x40] + lsl r2, r4, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4] + ldr r0, [sp, #0x44] + lsl r3, r3, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + ldr r0, [sp, #0x4c] + ldr r1, [sp, #0x14] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + ldr r0, [sp, #0x48] + lsr r2, r2, #0x18 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r0, r6, #0x0 + lsr r3, r3, #0x18 + bl sub_02019064 + mov r0, #0x2 + mov r1, #0x47 + bl sub_02012838 + str r0, [r5, #0x44] + ldr r2, _0208695C ; =0x0000013F + mov r0, #0x0 + mov r1, #0x1a + mov r3, #0x47 + bl sub_0200A86C + add r7, r0, #0x0 + mov r4, #0x0 +_020868DE: + add r0, r7, #0x0 + add r1, r4, #0x2 + bl sub_0200A914 + add r6, r0, #0x0 + ldr r0, [r5, #0x44] + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_020128A0 + add r0, r6, #0x0 + bl sub_02021A20 + add r4, r4, #0x1 + cmp r4, #0x2 + blt _020868DE + add r0, r7, #0x0 + bl sub_0200A8B8 + ldr r0, [r5, #0x44] + mov r1, #0x0 + str r0, [sp, #0x18] + add r0, sp, #0x18 + strb r1, [r0, #0x8] + ldr r1, [sp, #0x14] + mov r2, #0x2 + str r1, [sp, #0x1c] + mov r1, #0x1 + strb r1, [r0, #0x9] + strb r2, [r0, #0xa] + ldrb r3, [r0, #0xb] + mov r2, #0xf + bic r3, r2 + strb r3, [r0, #0xb] + ldrb r3, [r0, #0xb] + mov r2, #0x30 + bic r3, r2 + strb r3, [r0, #0xb] + ldrb r3, [r0, #0xb] + mov r2, #0xc0 + bic r3, r2 + mov r2, #0x40 + orr r2, r3 + strb r2, [r0, #0xb] + ldr r0, [sp, #0x14] + mov r2, #0x32 + mov r3, #0xd + bl sub_0200CCA4 + mov r0, #0x47 + str r0, [sp, #0x0] + mov r0, #0x2 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x18 + mov r1, #0x8 + add r3, r2, #0x0 + bl sub_02001C14 + str r0, [r5, #0x48] + add sp, #0x24 + pop {r4-r7, pc} + nop +_0208695C: .word 0x0000013F + + thumb_func_start sub_02086960 +sub_02086960: ; 0x02086960 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x28 + mov r1, #0x1 + bl sub_0200CCF8 + add r0, r4, #0x0 + add r0, #0x28 + bl sub_02019570 + add r0, r4, #0x0 + add r0, #0x28 + bl sub_02019178 + ldr r0, [r4, #0x48] + mov r1, #0x0 + bl sub_02001C5C + ldr r0, [r4, #0x44] + bl sub_02012870 + pop {r4, pc} + + thumb_func_start sub_0208698C +sub_0208698C: ; 0x0208698C + push {r4, lr} + add r4, r0, #0x0 + bl sub_02019570 + add r0, r4, #0x0 + bl sub_02019178 + pop {r4, pc} + + thumb_func_start sub_0208699C +sub_0208699C: ; 0x0208699C + push {r3-r5, lr} + sub sp, #0x10 + add r4, r1, #0x0 + mov r1, #0x0 + add r5, r0, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + mov r0, #0x47 + str r0, [sp, #0xc] + mov r0, #0x76 + add r2, r5, #0x0 + mov r3, #0x3 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r1, #0x1 + str r1, [sp, #0x8] + mov r0, #0x47 + str r0, [sp, #0xc] + mov r0, #0x76 + add r2, r5, #0x0 + mov r3, #0x3 + bl sub_020068C8 + mov r1, #0x0 + str r1, [sp, #0x0] + mov r0, #0x40 + str r0, [sp, #0x4] + str r1, [sp, #0x8] + add r0, r4, #0x0 + mov r1, #0x76 + mov r2, #0x8 + mov r3, #0x47 + bl sub_020030E8 + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020869F0 +sub_020869F0: ; 0x020869F0 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + mov r0, #0x47 + add r4, r1, #0x0 + str r0, [sp, #0xc] + mov r0, #0xc + mov r1, #0xa + add r2, r5, #0x0 + mov r3, #0x4 + bl sub_0200687C + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + mov r0, #0x47 + str r0, [sp, #0xc] + mov r0, #0xc + mov r1, #0xb + add r2, r5, #0x0 + mov r3, #0x4 + bl sub_020068C8 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0xc + str r0, [sp, #0x8] + add r0, r4, #0x0 + add r2, r1, #0x0 + mov r3, #0x47 + bl sub_020030E8 + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start sub_02086A48 +sub_02086A48: ; 0x02086A48 + push {r4, lr} + ldr r3, _02086A60 ; =0x021064B8 + mov r2, #0x0 + ldr r3, [r3, #0x0] + blx r3 + add r4, r0, #0x0 + bl sub_0201327C + lsl r0, r4, #0x10 + lsr r0, r0, #0xd + pop {r4, pc} + nop +_02086A60: .word 0x021064B8 + + thumb_func_start sub_02086A64 +sub_02086A64: ; 0x02086A64 + push {r4, lr} + ldr r3, _02086A7C ; =0x021064C0 + mov r2, #0x0 + ldr r3, [r3, #0x0] + blx r3 + add r4, r0, #0x0 + bl sub_020132BC + lsl r0, r4, #0x10 + lsr r0, r0, #0xd + pop {r4, pc} + nop +_02086A7C: .word 0x021064C0 + + thumb_func_start sub_02086A80 +sub_02086A80: ; 0x02086A80 + push {r4, lr} + sub sp, #0x8 + mov r1, #0x12 + lsl r1, r1, #0xa + add r4, r0, #0x0 + bl sub_02016998 + add r2, r0, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r3, #0x12 + ldr r0, _02086AC0 ; =sub_02086A48 + ldr r1, _02086AC4 ; =sub_02086A64 + lsl r3, r3, #0xa + str r4, [sp, #0x4] + bl sub_02012CDC + add r4, r0, #0x0 + bl sub_0201343C + add r2, r0, #0x0 + beq _02086AB8 + mov r0, #0x1 + mov r1, #0xe1 + lsl r0, r0, #0xc + lsl r1, r1, #0xe + bl sub_0201EC94 +_02086AB8: + add r0, r4, #0x0 + add sp, #0x8 + pop {r4, pc} + nop +_02086AC0: .word sub_02086A48 + 1 +_02086AC4: .word sub_02086A64 + 1 + + thumb_func_start sub_02086AC8 +sub_02086AC8: ; 0x02086AC8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + bl sub_02086A80 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r7, #0x0 + add r2, r5, #0x0 + bl sub_0201318C + add r1, r0, #0x0 + add r0, r4, #0x0 + mov r2, #0xa + mov r3, #0x1 + bl sub_02013194 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02086AF0 +sub_02086AF0: ; 0x02086AF0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_020133E8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_02012DE4 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r3-r5, pc} + + thumb_func_start sub_02086B08 +sub_02086B08: ; 0x02086B08 + push {r3} + sub sp, #0xc + add r2, sp, #0x0 + mov r1, #0x0 + str r1, [r2, #0x0] + str r1, [r2, #0x4] + str r1, [r2, #0x8] + ldr r1, [r0, #0x20] + ldr r2, [sp, #0x0] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x4] + add r1, r2, r1 + str r1, [r0, #0x28] + ldr r1, [r0, #0x20] + ldr r2, [sp, #0x4] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x8] + add r1, r2, r1 + str r1, [r0, #0x2c] + ldr r1, [r0, #0x20] + ldr r2, [sp, #0x8] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0xc] + add r1, r2, r1 + str r1, [r0, #0x30] + add sp, #0xc + pop {r3} + bx lr + + thumb_func_start sub_02086B40 +sub_02086B40: ; 0x02086B40 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0x10 + bl sub_02016998 + add r4, r0, #0x0 + bne _02086B54 + bl sub_02020C2C +_02086B54: + ldr r0, [r5, #0x0] + ldr r2, [r5, #0x4] + mov r1, #0x77 + str r0, [r4, #0x0] + str r2, [r4, #0x4] + ldr r0, [r4, #0x0] + bl sub_02086AC8 + mov r1, #0x1 + str r0, [r4, #0xc] + bl sub_02013440 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02086B70 +sub_02086B70: ; 0x02086B70 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + ldr r2, _02086B88 ; =sub_02086B08 + add r3, r4, #0x0 + bl sub_020133AC + ldr r0, [r4, #0xc] + mov r1, #0x1 + bl sub_02013440 + pop {r4, pc} + .balign 4 +_02086B88: .word sub_02086B08 + 1 + + thumb_func_start sub_02086B8C +sub_02086B8C: ; 0x02086B8C + push {r3, lr} + ldr r0, [r0, #0xc] + bl sub_020133C8 + cmp r0, #0x0 + beq _02086B9C + mov r0, #0x1 + pop {r3, pc} +_02086B9C: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start sub_02086BA0 +sub_02086BA0: ; 0x02086BA0 + ldr r3, _02086BA4 ; =sub_02016A18 + bx r3 + .balign 4 +_02086BA4: .word sub_02016A18 + 1 + + thumb_func_start sub_02086BA8 +sub_02086BA8: ; 0x02086BA8 + push {r4-r6, lr} + sub sp, #0x38 + ldr r3, _02086C8C ; =0x020FCE9C + add r2, sp, #0x18 + add r6, r0, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r5, [r6, #0x4c] + ldr r4, [r6, #0x50] + ldr r6, [r6, #0x8] + mov r0, #0x1 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, _02086C90 ; =0x00004E20 + add r1, r5, #0x0 + str r0, [sp, #0x8] + ldr r3, [sp, #0x18] + add r0, r4, #0x0 + mov r2, #0x76 + bl sub_0200C00C + mov r0, #0x76 + str r0, [sp, #0x0] + ldr r0, [sp, #0x1c] + mov r1, #0x2 + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + mov r0, #0x1 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, _02086C94 ; =0x00004E21 + add r2, r4, #0x0 + str r0, [sp, #0x14] + add r0, r6, #0x0 + add r3, r5, #0x0 + bl sub_0200C0DC + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, _02086C98 ; =0x00004E22 + add r1, r5, #0x0 + str r0, [sp, #0x4] + ldr r3, [sp, #0x20] + add r0, r4, #0x0 + mov r2, #0x76 + bl sub_0200C124 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, _02086C9C ; =0x00004E23 + add r1, r5, #0x0 + str r0, [sp, #0x4] + ldr r3, [sp, #0x24] + add r0, r4, #0x0 + mov r2, #0x76 + bl sub_0200C13C + mov r0, #0x1 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, _02086CA0 ; =0x000061A8 + add r1, r5, #0x0 + str r0, [sp, #0x8] + add r0, r4, #0x0 + mov r2, #0x76 + mov r3, #0x7 + bl sub_0200C00C + mov r0, #0x76 + str r0, [sp, #0x0] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + mov r0, #0x1 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, _02086CA4 ; =0x000061A9 + mov r1, #0x2 + str r0, [sp, #0x14] + add r0, r6, #0x0 + add r2, r4, #0x0 + add r3, r5, #0x0 + bl sub_0200C0DC + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, _02086CA8 ; =0x000061AA + add r1, r5, #0x0 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r2, #0x76 + mov r3, #0x6 + bl sub_0200C124 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, _02086CAC ; =0x000061AB + add r1, r5, #0x0 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r2, #0x76 + mov r3, #0x5 + bl sub_0200C13C + add sp, #0x38 + pop {r4-r6, pc} + .balign 4 +_02086C8C: .word 0x020FCE9C +_02086C90: .word 0x00004E20 +_02086C94: .word 0x00004E21 +_02086C98: .word 0x00004E22 +_02086C9C: .word 0x00004E23 +_02086CA0: .word 0x000061A8 +_02086CA4: .word 0x000061A9 +_02086CA8: .word 0x000061AA +_02086CAC: .word 0x000061AB + + thumb_func_start sub_02086CB0 +sub_02086CB0: ; 0x02086CB0 + push {r3-r4, lr} + sub sp, #0x34 + add r4, r0, #0x0 + mov r1, #0x80 + add r0, sp, #0x0 + strh r1, [r0, #0x0] + mov r1, #0x78 + strh r1, [r0, #0x2] + mov r1, #0x0 + strh r1, [r0, #0x4] + strh r1, [r0, #0x6] + mov r0, #0x1 + mov r2, #0x2 + str r1, [sp, #0x8] + str r1, [sp, #0xc] + str r1, [sp, #0x30] + ldr r1, _02086D4C ; =0x00004E20 + str r0, [sp, #0x10] + add r0, r1, #0x1 + str r0, [sp, #0x18] + add r0, r1, #0x2 + str r0, [sp, #0x1c] + add r0, r1, #0x3 + str r0, [sp, #0x20] + sub r0, r2, #0x3 + str r2, [sp, #0x2c] + str r1, [sp, #0x14] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + ldr r0, [r4, #0x50] + ldr r1, [r4, #0x4c] + add r2, sp, #0x0 + bl sub_0200C154 + str r0, [r4, #0x6c] + bl sub_0200C5A8 + ldr r0, [r4, #0x6c] + mov r1, #0x2 + bl sub_0200C840 + mov r2, #0x0 + add r0, sp, #0x0 + add r1, r2, #0x0 + strh r2, [r0, #0x0] + sub r1, #0x10 + strh r1, [r0, #0x2] + ldr r1, _02086D50 ; =0x000061A8 + str r2, [sp, #0x2c] + add r0, r1, #0x1 + str r0, [sp, #0x18] + add r0, r1, #0x2 + str r0, [sp, #0x1c] + add r0, r1, #0x3 + str r1, [sp, #0x14] + str r0, [sp, #0x20] + ldr r0, [r4, #0x50] + ldr r1, [r4, #0x4c] + add r2, sp, #0x0 + bl sub_0200C154 + str r0, [r4, #0x70] + bl sub_0200C5A8 + mov r1, #0x90 + add r0, sp, #0x0 + strh r1, [r0, #0x2] + ldr r0, [r4, #0x50] + ldr r1, [r4, #0x4c] + add r2, sp, #0x0 + bl sub_0200C154 + str r0, [r4, #0x74] + bl sub_0200C5A8 + add sp, #0x34 + pop {r3-r4, pc} + nop +_02086D4C: .word 0x00004E20 +_02086D50: .word 0x000061A8 + + thumb_func_start sub_02086D54 +sub_02086D54: ; 0x02086D54 + push {r3-r7, lr} + add r6, r0, #0x0 + add r7, r1, #0x0 + add r4, r6, #0x0 + ldr r1, [r6, #0x78] + add r4, #0x78 + cmp r1, #0x0 + bne _02086DE6 + ldr r0, [r4, #0x4] + cmp r0, #0xa + blt _02086D74 + add r0, r1, #0x1 + str r0, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + b _02086DE6 +_02086D74: + mov r1, #0x14 + add r3, r7, #0x0 + mul r3, r1 + ldr r1, _02086DF4 ; =0x020FCEE4 + lsl r2, r0, #0x1 + add r1, r1, r3 + ldrsh r1, [r2, r1] + lsl r0, r0, #0x2 + mov r5, #0x0 + mov r12, r1 + ldr r1, _02086DF8 ; =0x020FCF34 + add r1, r1, r3 + ldrsh r2, [r2, r1] + mov r1, #0x28 + add r3, r7, #0x0 + mul r3, r1 + ldr r1, _02086DFC ; =0x020FCFD8 + add r1, r1, r3 + ldr r7, [r0, r1] + ldr r1, _02086E00 ; =0x020FD078 + add r1, r1, r3 + ldr r0, [r0, r1] + str r0, [sp, #0x0] + mov r0, r12 + cmp r0, #0xff + bne _02086DAC + mov r12, r5 + add r5, r5, #0x1 +_02086DAC: + cmp r2, #0xff + bne _02086DB4 + mov r2, #0x0 + add r5, r5, #0x1 +_02086DB4: + ldr r0, [r6, #0x6c] + mov r1, r12 + bl sub_0200C82C + mov r0, #0x0 + add r1, r7, #0x0 + blx sub_020EB010 + beq _02086DD2 + ldr r0, [r6, #0x6c] + ldr r2, [sp, #0x0] + add r1, r7, #0x0 + bl sub_0200C884 + b _02086DD4 +_02086DD2: + add r5, r5, #0x1 +_02086DD4: + cmp r5, #0x3 + beq _02086DE0 + ldr r0, [r4, #0x4] + add r0, r0, #0x1 + str r0, [r4, #0x4] + b _02086DEE +_02086DE0: + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] +_02086DE6: + mov r0, #0x0 + str r0, [r4, #0x0] + str r0, [r4, #0x4] + pop {r3-r7, pc} +_02086DEE: + mov r0, #0x1 + pop {r3-r7, pc} + nop +_02086DF4: .word 0x020FCEE4 +_02086DF8: .word 0x020FCF34 +_02086DFC: .word 0x020FCFD8 +_02086E00: .word 0x020FD078 + + thumb_func_start sub_02086E04 +sub_02086E04: ; 0x02086E04 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02086D54 + cmp r0, #0x0 + bne _02086E16 + mov r0, #0x2 + pop {r3-r5, pc} +_02086E16: + cmp r4, #0x4 + ldr r0, [r5, #0x7c] + bne _02086E24 + cmp r0, #0x6 + bne _02086E2C + mov r0, #0x1 + pop {r3-r5, pc} +_02086E24: + cmp r0, #0x6 + bne _02086E2C + mov r0, #0x1 + pop {r3-r5, pc} +_02086E2C: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start sub_02086E30 +sub_02086E30: ; 0x02086E30 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x6c] + bl sub_0200C3DC + ldr r0, [r4, #0x70] + bl sub_0200C3DC + ldr r0, [r4, #0x74] + bl sub_0200C3DC + pop {r4, pc} + + thumb_func_start sub_02086E48 +sub_02086E48: ; 0x02086E48 + push {r3-r6, lr} + sub sp, #0x4c + add r4, r0, #0x0 + mov r0, #0x47 + bl sub_0200BB14 + add r2, sp, #0x2c + ldr r5, _02086EC8 ; =0x020FCE7C + str r0, [r4, #0x4c] + ldmia r5!, {r0-r1} + add r3, r2, #0x0 + stmia r2!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r5!, {r0-r1} + ldr r6, _02086ECC ; =0x020FCE34 + stmia r2!, {r0-r1} + add r5, sp, #0x18 + ldmia r6!, {r0-r1} + add r2, r5, #0x0 + stmia r5!, {r0-r1} + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + ldr r0, [r6, #0x0] + add r1, r3, #0x0 + str r0, [r5, #0x0] + ldr r0, [r4, #0x4c] + mov r3, #0x20 + bl sub_0200BB6C + ldr r3, _02086ED0 ; =0x020FCE48 + add r2, sp, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r4, #0x4c] + bl sub_0200BB34 + str r0, [r4, #0x48] + ldr r0, [r4, #0x4c] + ldr r1, [r4, #0x48] + mov r2, #0xff + bl sub_0200BBF0 + cmp r0, #0x0 + bne _02086EB2 + bl sub_02020C2C +_02086EB2: + ldr r0, [r4, #0x4c] + ldr r1, [r4, #0x48] + add r2, sp, #0x0 + bl sub_0200BF60 + cmp r0, #0x0 + bne _02086EC4 + bl sub_02020C2C +_02086EC4: + add sp, #0x4c + pop {r3-r6, pc} + .balign 4 +_02086EC8: .word 0x020FCE7C +_02086ECC: .word 0x020FCE34 +_02086ED0: .word 0x020FCE48 + + thumb_func_start sub_02086ED4 +sub_02086ED4: ; 0x02086ED4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4c] + ldr r1, [r4, #0x48] + bl sub_0200C398 + ldr r0, [r4, #0x4c] + bl sub_0200BD04 + pop {r4, pc} + + thumb_func_start sub_02086EE8 +sub_02086EE8: ; 0x02086EE8 + push {r3-r7, lr} + sub sp, #0x38 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0x5 + ldr r4, [r0, #0xc] + mov r2, #0x0 + add r0, r4, #0x0 + bl sub_020671BC + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x2 + bl sub_02068E14 + add r7, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x10] + add r0, r4, #0x0 + mov r1, #0x4c + add r2, sp, #0x10 + bl sub_02067830 + add r0, sp, #0x28 + add r1, r4, #0x0 + mov r2, #0x2 + bl sub_02068B68 + lsl r1, r6, #0x10 + add r0, sp, #0x14 + lsr r1, r1, #0x10 + bl sub_02069010 + mov r1, #0x0 + str r1, [sp, #0x0] + add r7, #0x60 + str r1, [sp, #0x4] + add r0, sp, #0x14 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + ldr r0, [r5, #0x3c] + add r1, sp, #0x28 + mov r2, #0x80 + add r3, r7, #0x0 + bl sub_020073A0 + str r0, [r5, #0x68] + add sp, #0x38 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02086F4C +sub_02086F4C: ; 0x02086F4C + push {r3-r6, lr} + sub sp, #0xc + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0x5 + ldr r0, [r0, #0xc] + mov r2, #0x0 + bl sub_020671BC + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02068854 + add r6, r0, #0x0 + ldr r0, [r5, #0x68] + mov r1, #0x1 + bl sub_02007314 + lsl r2, r4, #0x10 + str r6, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x68] + lsr r2, r2, #0x10 + mov r3, #0x2 + bl sub_02069038 + add sp, #0xc + pop {r3-r6, pc} + + thumb_func_start sub_02086F8C +sub_02086F8C: ; 0x02086F8C + ldr r3, _02086F94 ; =sub_02007534 + ldr r0, [r0, #0x68] + bx r3 + nop +_02086F94: .word sub_02007534 + 1 + + thumb_func_start sub_02086F98 +sub_02086F98: ; 0x02086F98 + ldr r3, _02086FA4 ; =sub_02007558 + add r2, r1, #0x0 + ldr r0, [r0, #0x68] + mov r1, #0x6 + bx r3 + nop +_02086FA4: .word sub_02007558 + 1 + + thumb_func_start sub_02086FA8 +sub_02086FA8: ; 0x02086FA8 + push {r3, lr} + ldr r1, [r0, #0x58] + lsl r2, r1, #0x2 + ldr r1, _02086FB8 ; =0x020FD118 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + nop +_02086FB8: .word 0x020FD118 + + thumb_func_start sub_02086FBC +sub_02086FBC: ; 0x02086FBC + push {r3-r5, lr} + sub sp, #0x20 + add r4, r0, #0x0 + ldr r1, [r4, #0x5c] + mov r5, #0x1 + cmp r1, #0x11 + bls _02086FCC + b _0208720E +_02086FCC: + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r2, r4, #0 + lsl r0, r2, #0x2 + lsl r2, r3, #0x2 + lsl r0, r7, #0x2 + lsl r0, r1, #0x3 + lsl r0, r3, #0x3 + lsl r0, r5, #0x3 + lsl r0, r7, #0x3 + lsl r4, r6, #0x4 + lsl r0, r1, #0x5 + lsl r0, r3, #0x5 + lsl r6, r7, #0x5 + lsl r0, r2, #0x7 + lsl r0, r1, #0x8 + lsl r4, r2, #0x8 + lsl r2, r3, #0x8 + lsl r4, r4, #0x8 + lsl r4, r6, #0x8 + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x8] + bl sub_0208699C + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x8] + bl sub_020869F0 + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x8] + ldr r2, [r4, #0x14] + bl sub_020866FC + mov r0, #0x13 + str r0, [sp, #0x0] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + mov r0, #0x3b + str r0, [sp, #0xc] + mov r0, #0xe + str r0, [sp, #0x10] + add r1, r4, #0x0 + ldr r0, [r4, #0x4] + add r1, #0x18 + add r2, r5, #0x0 + mov r3, #0x2 + bl sub_02086784 + add r0, r4, #0x0 + bl sub_02086BA8 + add r0, r4, #0x0 + bl sub_02086CB0 + add r0, r4, #0x0 + bl sub_02086EE8 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02086F98 + mov r0, #0x47 + str r0, [sp, #0x18] + mov r0, #0x0 + str r0, [sp, #0x1c] + add r0, sp, #0x18 + bl sub_02086B40 + str r0, [r4, #0x40] + ldr r0, [r4, #0x5c] + add r0, r0, #0x1 + str r0, [r4, #0x5c] + b _02087232 +_0208706A: + .byte 0xFF, 0xF7, 0x27, 0xFB, 0xE0, 0x6D + .byte 0x40, 0x1C, 0xE0, 0x65, 0x87, 0xF7, 0x48, 0xF9, 0x01, 0x28, 0x56, 0xD1, 0x7E, 0xF7, 0xCE, 0xF9 + .byte 0x6F, 0x49, 0x0D, 0x20, 0x01, 0x22, 0x7D, 0xF7, 0x59, 0xF9, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65 + .byte 0xCF, 0xE0, 0x00, 0xF0, 0x03, 0xFA, 0x00, 0x28, 0x47, 0xD1, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65 + .byte 0xC7, 0xE0, 0x00, 0xF0, 0x1F, 0xFA, 0x00, 0x28, 0x3F, 0xD1, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65 + .byte 0xBF, 0xE0, 0x00, 0xF0, 0x4F, 0xFA, 0x00, 0x28, 0x37, 0xD1, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65 + .byte 0xB7, 0xE0, 0x00, 0xF0, 0x73, 0xFA, 0x00, 0x28, 0x2F, 0xD1, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65 + .byte 0xAF, 0xE0, 0x00, 0xF0, 0x9D, 0xFA, 0x00, 0x28, 0x27, 0xD1, 0x20, 0x1C, 0xFF, 0xF7, 0x36, 0xFF + .byte 0x20, 0x68, 0x05, 0x21, 0xC0, 0x68, 0x00, 0x22, 0xE0, 0xF7, 0x68, 0xF8, 0x00, 0x04, 0x00, 0x0C + .byte 0x7E, 0xF7, 0x42, 0xFA, 0x22, 0x68, 0x20, 0x1C, 0xD2, 0x68, 0x23, 0x69, 0x18, 0x30, 0x00, 0x21 + .byte 0xFF, 0xF7, 0x74, 0xFB, 0xE0, 0x60, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0x91, 0xE0, 0x7E, 0xF7 + .byte 0xAF, 0xFA, 0x00, 0x28, 0x09, 0xD1, 0x4B, 0x48, 0x7E, 0xF7, 0x86, 0xFD, 0xE0, 0x6D, 0x40, 0x1C + .byte 0xE0, 0x65, 0x7E, 0xF7, 0xCB, 0xFD, 0x00, 0x28, 0x00, 0xD0, 0x82, 0xE0, 0xE0, 0x6D, 0x40, 0x1C + .byte 0xE0, 0x65, 0xE0, 0x68, 0x00, 0x06, 0x00, 0x0E, 0x94, 0xF7, 0x1A, 0xFE, 0x00, 0x28, 0x78, 0xD1 + .byte 0x22, 0x68, 0x20, 0x1C, 0xD2, 0x68, 0x23, 0x69, 0x18, 0x30, 0x01, 0x21, 0xFF, 0xF7, 0x4E, 0xFB + .byte 0xE0, 0x60, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0xE0, 0x68, 0x00, 0x06, 0x00, 0x0E, 0x94, 0xF7 + .byte 0x07, 0xFE, 0x00, 0x28, 0x65, 0xD1, 0x60, 0x6D, 0x00, 0x21, 0x8D, 0xF7, 0x07, 0xFE, 0x01, 0x28 + .byte 0x5F, 0xD1, 0xA0, 0x6E, 0x80, 0xF7, 0x0C, 0xF9, 0x00, 0x28, 0x5A, 0xD1, 0x19, 0x20, 0x00, 0x90 + .byte 0x0D, 0x20, 0x01, 0x90, 0x06, 0x20, 0x02, 0x90, 0x04, 0x20, 0x03, 0x90, 0xA7, 0x20, 0x04, 0x90 + .byte 0x0E, 0x20, 0x05, 0x90, 0x22, 0x1C, 0x61, 0x68, 0x20, 0x1C, 0x28, 0x32, 0x01, 0x23, 0xFF, 0xF7 + .byte 0x6B, 0xFB, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0x43, 0xE0, 0xA0, 0x6C, 0x7A, 0xF7, 0x64, 0xFD + .byte 0xE9, 0x1E, 0x88, 0x42, 0x03, 0xD0, 0x49, 0x1C, 0x88, 0x42, 0x3A, 0xD0, 0x06, 0xE0, 0x20, 0x68 + .byte 0x00, 0x21, 0x41, 0x60, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0x32, 0xE0, 0x00, 0x28, 0x01, 0xD1 + .byte 0x29, 0x1C, 0x00, 0xE0, 0x00, 0x21, 0x20, 0x68, 0x41, 0x60, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65 + .byte 0x27, 0xE0, 0xFF, 0xF7, 0xBD, 0xFB, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0x21, 0xE0, 0x48, 0x1C + .byte 0xE0, 0x65, 0x1E, 0xE0, 0xFF, 0xF7, 0x72, 0xFA, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0x87, 0xF7 + .byte 0x83, 0xF8, 0x01, 0x28, 0x15, 0xD1, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0x11, 0xE0 +_0208720E: + add r0, r4, #0x0 + bl sub_02086F8C + add r0, r4, #0x0 + bl sub_02086E30 + add r0, r4, #0x0 + add r0, #0x18 + bl sub_0208698C + ldr r0, [r4, #0x40] + ldr r0, [r0, #0xc] + bl sub_02086AF0 + ldr r0, [r4, #0x40] + bl sub_02086BA0 + mov r5, #0x0 +_02087232: + ldr r0, [r4, #0x4c] + bl sub_0200BC1C + add r0, r5, #0x0 + add sp, #0x20 + pop {r3-r5, pc} + nop +_02087240: + .byte 0x75, 0x04, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00 + + thumb_func_start sub_02087248 +sub_02087248: ; 0x02087248 + push {r3-r5, lr} + sub sp, #0x20 + add r4, r0, #0x0 + ldr r1, [r4, #0x5c] + mov r5, #0x1 + cmp r1, #0x11 + bls _02087258 + b _02087462 +_02087258: + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 + lsl r2, r4, #0 + lsl r0, r3, #0x2 + lsl r2, r4, #0x2 + lsl r4, r7, #0x2 + lsl r6, r6, #0x3 + lsl r6, r6, #0x3 + lsl r6, r6, #0x3 + lsl r6, r6, #0x3 + lsl r4, r7, #0x3 + lsl r0, r2, #0x4 + lsl r0, r4, #0x4 + lsl r6, r0, #0x5 + lsl r0, r3, #0x6 + lsl r0, r2, #0x7 + lsl r4, r3, #0x7 + lsl r2, r4, #0x7 + lsl r4, r5, #0x7 + lsl r4, r7, #0x7 + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x8] + bl sub_0208699C + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x8] + bl sub_020869F0 + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x8] + ldr r2, [r4, #0x14] + bl sub_020866FC + mov r0, #0x13 + str r0, [sp, #0x0] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + mov r0, #0x3b + str r0, [sp, #0xc] + mov r0, #0xe + str r0, [sp, #0x10] + add r1, r4, #0x0 + ldr r0, [r4, #0x4] + add r1, #0x18 + add r2, r5, #0x0 + mov r3, #0x2 + bl sub_02086784 + add r0, r4, #0x0 + bl sub_02086BA8 + add r0, r4, #0x0 + bl sub_02086CB0 + ldr r0, [r4, #0x6c] + mov r1, #0x0 + bl sub_0200C644 + add r0, r4, #0x0 + bl sub_02086EE8 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl sub_02086F98 + mov r0, #0x47 + str r0, [sp, #0x18] + add r0, r5, #0x0 + str r0, [sp, #0x1c] + add r0, sp, #0x18 + bl sub_02086B40 + str r0, [r4, #0x40] + ldr r0, [r4, #0x5c] + add r0, r0, #0x1 + str r0, [r4, #0x5c] + b _02087486 +_020872FE: + .byte 0xFF, 0xF7 + .byte 0xDD, 0xF9, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0x86, 0xF7, 0xFE, 0xFF, 0x01, 0x28, 0x36, 0xD1 + .byte 0x60, 0x49, 0x0D, 0x20, 0x01, 0x22, 0x7D, 0xF7, 0x11, 0xF8, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65 + .byte 0xB1, 0xE0, 0x00, 0xF0, 0x7D, 0xFA, 0x00, 0x28, 0x29, 0xD1, 0x20, 0x1C, 0xFF, 0xF7, 0x0E, 0xFE + .byte 0x20, 0x68, 0x05, 0x21, 0xC0, 0x68, 0x00, 0x22, 0xDF, 0xF7, 0x40, 0xFF, 0x00, 0x04, 0x00, 0x0C + .byte 0x7E, 0xF7, 0x1A, 0xF9, 0x22, 0x68, 0x20, 0x1C, 0xD2, 0x68, 0x23, 0x69, 0x18, 0x30, 0x00, 0x21 + .byte 0xFF, 0xF7, 0x4C, 0xFA, 0xE0, 0x60, 0x08, 0x20, 0xE0, 0x65, 0x94, 0xE0, 0x99, 0xF7, 0x66, 0xFC + .byte 0x91, 0xE0, 0x7E, 0xF7, 0x85, 0xF9, 0x00, 0x28, 0x09, 0xD1, 0x4B, 0x48, 0x7E, 0xF7, 0x5C, 0xFC + .byte 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0x7E, 0xF7, 0xA1, 0xFC, 0x00, 0x28, 0x00, 0xD0, 0x82, 0xE0 + .byte 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0xE0, 0x68, 0x00, 0x06, 0x00, 0x0E, 0x94, 0xF7, 0xF0, 0xFC + .byte 0x00, 0x28, 0x78, 0xD1, 0x22, 0x68, 0x20, 0x1C, 0xD2, 0x68, 0x23, 0x69, 0x18, 0x30, 0x01, 0x21 + .byte 0xFF, 0xF7, 0x24, 0xFA, 0xE0, 0x60, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0xE0, 0x68, 0x00, 0x06 + .byte 0x00, 0x0E, 0x94, 0xF7, 0xDD, 0xFC, 0x00, 0x28, 0x65, 0xD1, 0x60, 0x6D, 0x00, 0x21, 0x8D, 0xF7 + .byte 0xDD, 0xFC, 0x01, 0x28, 0x5F, 0xD1, 0xA0, 0x6E, 0x7F, 0xF7, 0xE2, 0xFF, 0x00, 0x28, 0x5A, 0xD1 + .byte 0x19, 0x20, 0x00, 0x90, 0x0D, 0x20, 0x01, 0x90, 0x06, 0x20, 0x02, 0x90, 0x04, 0x20, 0x03, 0x90 + .byte 0xA7, 0x20, 0x04, 0x90, 0x0E, 0x20, 0x05, 0x90, 0x22, 0x1C, 0x61, 0x68, 0x20, 0x1C, 0x28, 0x32 + .byte 0x01, 0x23, 0xFF, 0xF7, 0x41, 0xFA, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0x43, 0xE0, 0xA0, 0x6C + .byte 0x7A, 0xF7, 0x3A, 0xFC, 0xE9, 0x1E, 0x88, 0x42, 0x03, 0xD0, 0x49, 0x1C, 0x88, 0x42, 0x3A, 0xD0 + .byte 0x06, 0xE0, 0x20, 0x68, 0x00, 0x21, 0x41, 0x60, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65, 0x32, 0xE0 + .byte 0x00, 0x28, 0x01, 0xD1, 0x29, 0x1C, 0x00, 0xE0, 0x00, 0x21, 0x20, 0x68, 0x41, 0x60, 0xE0, 0x6D + .byte 0x40, 0x1C, 0xE0, 0x65, 0x27, 0xE0, 0xFF, 0xF7, 0x93, 0xFA, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65 + .byte 0x21, 0xE0, 0x48, 0x1C, 0xE0, 0x65, 0x1E, 0xE0, 0xFF, 0xF7, 0x48, 0xF9, 0xE0, 0x6D, 0x40, 0x1C + .byte 0xE0, 0x65, 0x86, 0xF7, 0x59, 0xFF, 0x01, 0x28, 0x15, 0xD1, 0xE0, 0x6D, 0x40, 0x1C, 0xE0, 0x65 + .byte 0x11, 0xE0 +_02087462: + add r0, r4, #0x0 + bl sub_02086F8C + add r0, r4, #0x0 + bl sub_02086E30 + add r0, r4, #0x0 + add r0, #0x18 + bl sub_0208698C + ldr r0, [r4, #0x40] + ldr r0, [r0, #0xc] + bl sub_02086AF0 + ldr r0, [r4, #0x40] + bl sub_02086BA0 + mov r5, #0x0 +_02087486: + ldr r0, [r4, #0x4c] + bl sub_0200BC1C + add r0, r5, #0x0 + add sp, #0x20 + pop {r3-r5, pc} + nop +_02087494: + .byte 0x75, 0x04, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00 + + thumb_func_start sub_0208749C +sub_0208749C: ; 0x0208749C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x64] + cmp r0, #0x0 + beq _020874AC + cmp r0, #0x1 + beq _020874BC + b _020874D4 +_020874AC: + ldr r0, [r4, #0x6c] + mov r1, #0x0 + bl sub_0200C61C + ldr r0, [r4, #0x64] + add r0, r0, #0x1 + str r0, [r4, #0x64] + b _020874DC +_020874BC: + ldr r0, [r4, #0x60] + add r0, r0, #0x1 + str r0, [r4, #0x60] + cmp r0, #0x19 + blt _020874DC + ldr r0, _020874E0 ; =0x00000714 + bl sub_020054C8 + ldr r0, [r4, #0x64] + add r0, r0, #0x1 + str r0, [r4, #0x64] + b _020874DC +_020874D4: + mov r0, #0x0 + str r0, [r4, #0x64] + str r0, [r4, #0x60] + pop {r4, pc} +_020874DC: + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_020874E0: .word 0x00000714 + + thumb_func_start sub_020874E4 +sub_020874E4: ; 0x020874E4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x64] + cmp r1, #0x0 + beq _020874F4 + cmp r1, #0x1 + beq _0208750E + b _02087532 +_020874F4: + ldr r0, [r4, #0x40] + bl sub_02086B8C + cmp r0, #0x1 + beq _0208754C + ldr r0, [r4, #0x6c] + mov r1, #0x1 + bl sub_0200C61C + ldr r0, [r4, #0x64] + add r0, r0, #0x1 + str r0, [r4, #0x64] + b _0208754C +_0208750E: + mov r1, #0x0 + bl sub_02086E04 + cmp r0, #0x2 + bne _0208754C + ldr r0, _02087550 ; =0x00000714 + bl sub_020054C8 + ldr r0, [r4, #0x6c] + mov r1, #0x2 + bl sub_0200C61C + ldr r0, [r4, #0x64] + add r0, r0, #0x1 + str r0, [r4, #0x64] + mov r0, #0x0 + str r0, [r4, #0x60] + b _0208754C +_02087532: + mov r1, #0x0 + bl sub_02086E04 + cmp r0, #0x2 + bne _0208754C + ldr r0, [r4, #0x6c] + mov r1, #0x2 + bl sub_0200C61C + mov r0, #0x0 + str r0, [r4, #0x64] + str r0, [r4, #0x60] + pop {r4, pc} +_0208754C: + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_02087550: .word 0x00000714 + + thumb_func_start sub_02087554 +sub_02087554: ; 0x02087554 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x64] + cmp r1, #0x0 + beq _02087564 + cmp r1, #0x1 + beq _0208756A + b _0208759C +_02087564: + add r0, r1, #0x1 + str r0, [r4, #0x64] + b _020875A4 +_0208756A: + mov r1, #0x1 + bl sub_02086E04 + add r5, r0, #0x0 + cmp r5, #0x1 + bne _0208758C + ldr r0, _020875A8 ; =0x00000714 + bl sub_020054C8 + ldr r0, [r4, #0x6c] + mov r1, #0x3 + bl sub_0200C61C + ldr r0, [r4, #0x40] + mov r1, #0x0 + bl sub_02086B70 +_0208758C: + cmp r5, #0x2 + bne _020875A4 + mov r0, #0x0 + str r0, [r4, #0x60] + ldr r0, [r4, #0x64] + add r0, r0, #0x1 + str r0, [r4, #0x64] + b _020875A4 +_0208759C: + mov r0, #0x0 + str r0, [r4, #0x64] + str r0, [r4, #0x60] + pop {r3-r5, pc} +_020875A4: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_020875A8: .word 0x00000714 + + thumb_func_start sub_020875AC +sub_020875AC: ; 0x020875AC + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x64] + cmp r1, #0x0 + beq _020875BC + cmp r1, #0x1 + beq _020875CE + b _02087600 +_020875BC: + ldr r0, [r4, #0x40] + bl sub_02086B8C + cmp r0, #0x1 + beq _02087608 + ldr r0, [r4, #0x64] + add r0, r0, #0x1 + str r0, [r4, #0x64] + b _02087608 +_020875CE: + mov r1, #0x2 + bl sub_02086E04 + add r5, r0, #0x0 + cmp r5, #0x1 + bne _020875F0 + ldr r0, _0208760C ; =0x00000714 + bl sub_020054C8 + ldr r0, [r4, #0x6c] + mov r1, #0x4 + bl sub_0200C61C + ldr r0, [r4, #0x40] + mov r1, #0x1 + bl sub_02086B70 +_020875F0: + cmp r5, #0x2 + bne _02087608 + mov r0, #0x0 + str r0, [r4, #0x60] + ldr r0, [r4, #0x64] + add r0, r0, #0x1 + str r0, [r4, #0x64] + b _02087608 +_02087600: + mov r0, #0x0 + str r0, [r4, #0x64] + str r0, [r4, #0x60] + pop {r3-r5, pc} +_02087608: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0208760C: .word 0x00000714 + + thumb_func_start sub_02087610 +sub_02087610: ; 0x02087610 + push {r4-r6, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r1, [r4, #0x64] + cmp r1, #0x5 + bls _0208761E + b _020877FC +_0208761E: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r1, #0 + lsl r4, r5, #0 + lsl r6, r5, #0x1 + lsl r6, r2, #0x3 + lsl r0, r5, #0x5 + lsl r4, r6, #0x6 + ldr r0, [r4, #0x40] + bl sub_02086B8C + cmp r0, #0x1 + beq _020876A4 + ldr r0, [r4, #0x6c] + mov r1, #0x4 + bl sub_0200C61C + mov r0, #0x2 + mov r1, #0x0 + bl sub_0201E6E4 + ldr r0, [r4, #0x64] + add r0, r0, #0x1 + str r0, [r4, #0x64] + b _02087810 +_02087658: + .byte 0x03, 0x21, 0xFF, 0xF7, 0xD3, 0xFB, 0x05, 0x1C + .byte 0x01, 0x2D, 0x0E, 0xD1, 0xE0, 0x6E, 0x05, 0x21, 0x84, 0xF7, 0xD8, 0xFF, 0x6A, 0x48, 0x7D, 0xF7 + .byte 0x2B, 0xFF, 0x20, 0x6C, 0x02, 0x21, 0xFF, 0xF7, 0x7B, 0xFA, 0x20, 0x6C, 0x03, 0x21, 0xFF, 0xF7 + .byte 0x77, 0xFA, 0x02, 0x2D, 0x0E, 0xD1, 0xE0, 0x6E, 0x00, 0x21, 0x84, 0xF7, 0xDB, 0xFF, 0x00, 0x20 + .byte 0x20, 0x66, 0x60, 0x6E, 0x40, 0x1C, 0x60, 0x66, 0xBA, 0xE0, 0x20, 0x6E, 0x40, 0x1C, 0x20, 0x66 + .byte 0x0A, 0x28, 0x00, 0xDA +_020876A4: + b _02087810 +_020876A6: + .byte 0x00, 0x23, 0x23, 0x66, 0x00, 0x93, 0x10, 0x20, 0x5B, 0x4A + .byte 0x01, 0x90, 0x02, 0x92, 0xA0, 0x68, 0x01, 0x21, 0x7B, 0xF7, 0xAA, 0xFD, 0x20, 0x6F, 0x00, 0x68 + .byte 0x98, 0xF7, 0x48, 0xFE, 0x01, 0x21, 0x96, 0xF7, 0xE1, 0xFD, 0x05, 0x1C, 0x00, 0x23, 0x01, 0x26 + .byte 0x00, 0x93, 0x10, 0x20, 0x51, 0x4A, 0x01, 0x90, 0x02, 0x92, 0xAE, 0x40, 0x72, 0x40, 0x12, 0x04 + .byte 0xA0, 0x68, 0x04, 0x21, 0x12, 0x0C, 0x7B, 0xF7, 0x93, 0xFD, 0x4C, 0x48, 0x00, 0x21, 0x00, 0x90 + .byte 0xA0, 0x6E, 0x10, 0x22, 0x0B, 0x1C, 0x80, 0xF7, 0xB7, 0xFB, 0x60, 0x6E, 0x40, 0x1C, 0x60, 0x66 + .byte 0x86, 0xE0, 0x03, 0xA9, 0x20, 0x6F, 0x00, 0x25, 0x02, 0x31, 0x03, 0xAA, 0x85, 0xF7, 0x48, 0xF8 + .byte 0x03, 0xA8, 0x29, 0x1C, 0x42, 0x5E, 0x08, 0x1C, 0x30, 0x38, 0x82, 0x42, 0x04, 0xDD, 0x20, 0x6F + .byte 0x0A, 0x1F, 0x85, 0xF7, 0x83, 0xF8, 0x00, 0xE0, 0x6D, 0x1C, 0x03, 0xA9, 0x60, 0x6F, 0x02, 0x31 + .byte 0x03, 0xAA, 0x85, 0xF7, 0x35, 0xF8, 0x03, 0xA8, 0x00, 0x21, 0x40, 0x5E, 0xC0, 0x28, 0x04, 0xDA + .byte 0x60, 0x6F, 0x04, 0x22, 0x85, 0xF7, 0x72, 0xF8, 0x00, 0xE0, 0x6D, 0x1C, 0xA0, 0x68, 0x7C, 0xF7 + .byte 0xC9, 0xF8, 0x00, 0x28, 0x5C, 0xD1, 0x02, 0x2D, 0x5A, 0xD1, 0xA0, 0x6E, 0x80, 0xF7, 0xE0, 0xFB + .byte 0x00, 0x28, 0x55, 0xD1, 0x02, 0x20, 0x01, 0x21, 0x96, 0xF7, 0xBC, 0xFF, 0x20, 0x1C, 0x00, 0x21 + .byte 0xFF, 0xF7, 0x12, 0xFC, 0xE0, 0x6E, 0x00, 0x21, 0x84, 0xF7, 0x64, 0xFF, 0x20, 0x6F, 0x00, 0x21 + .byte 0x84, 0xF7, 0x60, 0xFF, 0x60, 0x6F, 0x00, 0x21, 0x84, 0xF7, 0x5C, 0xFF, 0x60, 0x6E, 0x40, 0x1C + .byte 0x60, 0x66, 0x3D, 0xE0, 0x20, 0x6E, 0x40, 0x1C, 0x20, 0x66, 0x19, 0x28, 0x38, 0xDB, 0x00, 0x22 + .byte 0x1E, 0x48, 0x22, 0x66, 0x00, 0x90, 0xA0, 0x6E, 0x10, 0x21, 0x13, 0x1C, 0x80, 0xF7, 0x5C, 0xFB + .byte 0x10, 0x20, 0x00, 0x90, 0x00, 0x23, 0x19, 0x4A, 0x01, 0x93, 0x02, 0x92, 0xA0, 0x68, 0x01, 0x21 + .byte 0x7B, 0xF7, 0x26, 0xFD, 0x10, 0x20, 0x00, 0x90, 0x00, 0x23, 0x14, 0x4A, 0x01, 0x93, 0x02, 0x92 + .byte 0xA0, 0x68, 0x04, 0x21, 0x7B, 0xF7, 0x1C, 0xFD, 0x60, 0x6E, 0x40, 0x1C, 0x60, 0x66, 0x17, 0xE0 + .byte 0xA0, 0x68, 0x7C, 0xF7, 0x7F, 0xF8, 0x00, 0x28, 0x12, 0xD1, 0xA0, 0x6E, 0x80, 0xF7, 0x98, 0xFB + .byte 0x00, 0x28, 0x0D, 0xD1, 0x60, 0x6E, 0x40, 0x1C, 0x60, 0x66, 0x09, 0xE0 +_020877FC: + ldr r0, [r4, #0x40] + bl sub_02086B8C + cmp r0, #0x1 + beq _02087810 + mov r0, #0x0 + str r0, [r4, #0x64] + add sp, #0x10 + str r0, [r4, #0x60] + pop {r4-r6, pc} +_02087810: + mov r0, #0x1 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02087818: + .byte 0x07, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 + + thumb_func_start sub_02087820 +sub_02087820: ; 0x02087820 + push {r4-r6, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r0, [r4, #0x64] + cmp r0, #0x4 + bls _0208782E + b _020879FC +_0208782E: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r0, r7, #0 + lsl r6, r0, #0x3 + lsl r0, r3, #0x5 + lsl r4, r4, #0x6 + ldr r0, [r4, #0x40] + mov r1, #0x0 + bl sub_02086B70 + ldr r0, [r4, #0x40] + mov r1, #0x1 + bl sub_02086B70 + ldr r0, [r4, #0x40] + mov r1, #0x2 + bl sub_02086B70 + ldr r0, [r4, #0x40] + mov r1, #0x3 + bl sub_02086B70 + mov r0, #0x2 + mov r1, #0x0 + bl sub_0201E6E4 + ldr r0, [r4, #0x64] + add r0, r0, #0x1 + str r0, [r4, #0x64] + b _02087A06 +_02087874: + .byte 0x20, 0x6E, 0x19, 0x28, 0x04, 0xD0, 0x50, 0x28, 0x06, 0xD0, 0x8E, 0x28 + .byte 0x08, 0xD0, 0x0A, 0xE0, 0x61, 0x48, 0x7D, 0xF7, 0x1F, 0xFE, 0x06, 0xE0, 0x60, 0x48, 0x7D, 0xF7 + .byte 0x1B, 0xFE, 0x02, 0xE0, 0x5F, 0x48, 0x7D, 0xF7, 0x17, 0xFE, 0x20, 0x6E, 0x40, 0x1C, 0x20, 0x66 + .byte 0xA0, 0x28, 0x00, 0xDA, 0xAF, 0xE0, 0x00, 0x23, 0x23, 0x66, 0x00, 0x93, 0x10, 0x20, 0x5A, 0x4A + .byte 0x01, 0x90, 0x02, 0x92, 0xA0, 0x68, 0x01, 0x21, 0x7B, 0xF7, 0xAA, 0xFC, 0x20, 0x6F, 0x00, 0x68 + .byte 0x98, 0xF7, 0x48, 0xFD, 0x01, 0x21, 0x96, 0xF7, 0xE1, 0xFC, 0x05, 0x1C, 0x00, 0x23, 0x01, 0x26 + .byte 0x00, 0x93, 0x10, 0x20, 0x50, 0x4A, 0x01, 0x90, 0x02, 0x92, 0xAE, 0x40, 0x72, 0x40, 0x12, 0x04 + .byte 0xA0, 0x68, 0x04, 0x21, 0x12, 0x0C, 0x7B, 0xF7, 0x93, 0xFC, 0x4B, 0x48, 0x00, 0x21, 0x00, 0x90 + .byte 0xA0, 0x6E, 0x10, 0x22, 0x0B, 0x1C, 0x80, 0xF7, 0xB7, 0xFA, 0x60, 0x6E, 0x40, 0x1C, 0x60, 0x66 + .byte 0x81, 0xE0, 0x03, 0xA9, 0x20, 0x6F, 0x00, 0x25, 0x02, 0x31, 0x03, 0xAA, 0x84, 0xF7, 0x48, 0xFF + .byte 0x03, 0xA8, 0x29, 0x1C, 0x42, 0x5E, 0x08, 0x1C, 0x30, 0x38, 0x82, 0x42, 0x04, 0xDD, 0x20, 0x6F + .byte 0x0A, 0x1F, 0x84, 0xF7, 0x83, 0xFF, 0x00, 0xE0, 0x6D, 0x1C, 0x03, 0xA9, 0x60, 0x6F, 0x02, 0x31 + .byte 0x03, 0xAA, 0x84, 0xF7, 0x35, 0xFF, 0x03, 0xA8, 0x00, 0x21, 0x40, 0x5E, 0xC0, 0x28, 0x04, 0xDA + .byte 0x60, 0x6F, 0x04, 0x22, 0x84, 0xF7, 0x72, 0xFF, 0x00, 0xE0, 0x6D, 0x1C, 0xA0, 0x68, 0x7B, 0xF7 + .byte 0xC9, 0xFF, 0x00, 0x28, 0x57, 0xD1, 0x02, 0x2D, 0x55, 0xD1, 0xA0, 0x6E, 0x80, 0xF7, 0xE0, 0xFA + .byte 0x00, 0x28, 0x50, 0xD1, 0x20, 0x1C, 0x00, 0x21, 0xFF, 0xF7, 0x16, 0xFB, 0x02, 0x20, 0x01, 0x21 + .byte 0x96, 0xF7, 0xB8, 0xFE, 0xE0, 0x6E, 0x00, 0x21, 0x84, 0xF7, 0x64, 0xFE, 0x20, 0x6F, 0x00, 0x21 + .byte 0x84, 0xF7, 0x60, 0xFE, 0x60, 0x6F, 0x00, 0x21, 0x84, 0xF7, 0x5C, 0xFE, 0x60, 0x6E, 0x40, 0x1C + .byte 0x60, 0x66, 0x38, 0xE0, 0x20, 0x6E, 0x40, 0x1C, 0x20, 0x66, 0x19, 0x28, 0x33, 0xDB, 0x00, 0x22 + .byte 0x1D, 0x48, 0x22, 0x66, 0x00, 0x90, 0xA0, 0x6E, 0x10, 0x21, 0x13, 0x1C, 0x80, 0xF7, 0x5C, 0xFA + .byte 0x10, 0x20, 0x00, 0x90, 0x00, 0x23, 0x18, 0x4A, 0x01, 0x93, 0x02, 0x92, 0xA0, 0x68, 0x01, 0x21 + .byte 0x7B, 0xF7, 0x26, 0xFC, 0x10, 0x20, 0x00, 0x90, 0x00, 0x23, 0x13, 0x4A, 0x01, 0x93, 0x02, 0x92 + .byte 0xA0, 0x68, 0x04, 0x21, 0x7B, 0xF7, 0x1C, 0xFC, 0x60, 0x6E, 0x40, 0x1C, 0x60, 0x66, 0x12, 0xE0 + .byte 0xA0, 0x68, 0x7B, 0xF7, 0x7F, 0xFF, 0x00, 0x28, 0x0D, 0xD1, 0xA0, 0x6E, 0x80, 0xF7, 0x98, 0xFA + .byte 0x00, 0x28, 0x08, 0xD1, 0x60, 0x6E, 0x40, 0x1C, 0x60, 0x66, 0x04, 0xE0 +_020879FC: + mov r0, #0x0 + str r0, [r4, #0x64] + add sp, #0x10 + str r0, [r4, #0x60] + pop {r4-r6, pc} +_02087A06: + mov r0, #0x1 + add sp, #0x10 + pop {r4-r6, pc} +_02087A0C: + .byte 0x06, 0x08, 0x00, 0x00 + .byte 0xAA, 0x07, 0x00, 0x00, 0x15, 0x08, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 + + thumb_func_start sub_02087A1C +sub_02087A1C: ; 0x02087A1C + ldr r3, _02087A34 ; =0x020FD13C + mov r2, #0x0 +_02087A20: + ldrb r1, [r3, #0x0] + cmp r0, r1 + beq _02087A2E + add r2, r2, #0x1 + add r3, r3, #0x1 + cmp r2, #0x6 + blt _02087A20 +_02087A2E: + add r0, r2, #0x0 + bx lr + nop +_02087A34: .word 0x020FD13C + + thumb_func_start sub_02087A38 +sub_02087A38: ; 0x02087A38 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x6 + blt _02087A44 + bl sub_02020C2C +_02087A44: + ldr r0, _02087A4C ; =0x020FD13C + ldrb r0, [r0, r4] + pop {r4, pc} + nop +_02087A4C: .word 0x020FD13C + + thumb_func_start sub_02087A50 +sub_02087A50: ; 0x02087A50 + ldr r3, _02087A68 ; =0x020FD120 + mov r2, #0x0 +_02087A54: + ldrh r1, [r3, #0x0] + cmp r0, r1 + beq _02087A62 + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0xe + blt _02087A54 +_02087A62: + add r0, r2, #0x0 + bx lr + nop +_02087A68: .word 0x020FD120 + + thumb_func_start sub_02087A6C +sub_02087A6C: ; 0x02087A6C + push {r3, lr} + mov r1, #0x18 + bl sub_02016998 + add r3, r0, #0x0 + mov r2, #0x18 + mov r1, #0x0 +_02087A7A: + strb r1, [r3, #0x0] + add r3, r3, #0x1 + sub r2, r2, #0x1 + bne _02087A7A + pop {r3, pc} + + thumb_func_start sub_02087A84 +sub_02087A84: ; 0x02087A84 + push {r4, lr} + add r4, r0, #0x0 + bne _02087A8E + bl sub_02020C2C +_02087A8E: + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02087A98 +sub_02087A98: ; 0x02087A98 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + cmp r5, #0x0 + bne _02087AA8 + bl sub_02020C2C +_02087AA8: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _02087AB2 + bl sub_02020C2C +_02087AB2: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + beq _02087ABC + bl sub_02020C2C +_02087ABC: + add r0, r4, #0x0 + bl sub_02087C18 + str r0, [r5, #0x0] + add r0, r4, #0x0 + bl sub_02087C2C + str r0, [r5, #0x4] + cmp r6, #0x0 + bne _02087AEE + add r0, r5, #0x0 + add r1, r5, #0x0 + add r0, #0x8 + add r1, #0xc + add r2, r4, #0x0 + bl sub_02087C40 + add r0, r5, #0x0 + add r5, #0x14 + add r0, #0x10 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02087CA0 + pop {r4-r6, pc} +_02087AEE: + add r0, r5, #0x0 + add r1, r5, #0x0 + add r0, #0x8 + add r1, #0xc + add r2, r4, #0x0 + bl sub_02087C70 + add r0, r5, #0x0 + add r5, #0x14 + add r0, #0x10 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl sub_02087CD0 + pop {r4-r6, pc} + + thumb_func_start sub_02087B0C +sub_02087B0C: ; 0x02087B0C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _02087B1A + bl sub_02020C2C +_02087B1A: + ldr r0, [r4, #0x4] + cmp r0, #0x0 + bne _02087B24 + bl sub_02020C2C +_02087B24: + ldr r0, [r4, #0x0] + bl sub_02016A18 + ldr r0, [r4, #0x4] + bl sub_02016A18 + ldr r0, [r4, #0x8] + bl sub_02016A18 + ldr r0, [r4, #0xc] + bl sub_02016A18 + ldr r0, [r4, #0x10] + bl sub_02016A18 + ldr r0, [r4, #0x14] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x0] + str r0, [r4, #0x4] + str r0, [r4, #0x8] + str r0, [r4, #0xc] + str r0, [r4, #0x10] + str r0, [r4, #0x14] + pop {r4, pc} + + thumb_func_start sub_02087B58 +sub_02087B58: ; 0x02087B58 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02087B66 + bl sub_02020C2C +_02087B66: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + bne _02087B70 + bl sub_02020C2C +_02087B70: + ldr r1, [r5, #0x0] + lsl r0, r4, #0x2 + ldr r0, [r1, r0] + pop {r3-r5, pc} + + thumb_func_start sub_02087B78 +sub_02087B78: ; 0x02087B78 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02087B86 + bl sub_02020C2C +_02087B86: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _02087B90 + bl sub_02020C2C +_02087B90: + ldr r1, [r5, #0x4] + lsl r0, r4, #0x2 + ldr r0, [r1, r0] + pop {r3-r5, pc} + + thumb_func_start sub_02087B98 +sub_02087B98: ; 0x02087B98 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02087BA6 + bl sub_02020C2C +_02087BA6: + ldr r0, [r5, #0x8] + cmp r0, #0x0 + bne _02087BB0 + bl sub_02020C2C +_02087BB0: + ldr r1, [r5, #0x8] + lsl r0, r4, #0x1 + ldrsh r0, [r1, r0] + pop {r3-r5, pc} + + thumb_func_start sub_02087BB8 +sub_02087BB8: ; 0x02087BB8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02087BC6 + bl sub_02020C2C +_02087BC6: + ldr r0, [r5, #0xc] + cmp r0, #0x0 + bne _02087BD0 + bl sub_02020C2C +_02087BD0: + ldr r1, [r5, #0xc] + lsl r0, r4, #0x1 + ldrsh r0, [r1, r0] + pop {r3-r5, pc} + + thumb_func_start sub_02087BD8 +sub_02087BD8: ; 0x02087BD8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02087BE6 + bl sub_02020C2C +_02087BE6: + ldr r0, [r5, #0x10] + cmp r0, #0x0 + bne _02087BF0 + bl sub_02020C2C +_02087BF0: + ldr r1, [r5, #0x10] + lsl r0, r4, #0x1 + ldrsh r0, [r1, r0] + pop {r3-r5, pc} + + thumb_func_start sub_02087BF8 +sub_02087BF8: ; 0x02087BF8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02087C06 + bl sub_02020C2C +_02087C06: + ldr r0, [r5, #0x14] + cmp r0, #0x0 + bne _02087C10 + bl sub_02020C2C +_02087C10: + ldr r1, [r5, #0x14] + lsl r0, r4, #0x1 + ldrsh r0, [r1, r0] + pop {r3-r5, pc} + + thumb_func_start sub_02087C18 +sub_02087C18: ; 0x02087C18 + push {r3, lr} + mov r1, #0x0 + add r3, r0, #0x0 + mov r0, #0x4b + add r2, r1, #0x0 + str r1, [sp, #0x0] + bl sub_02006C98 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02087C2C +sub_02087C2C: ; 0x02087C2C + push {r3, lr} + add r3, r0, #0x0 + mov r2, #0x0 + mov r0, #0x4b + mov r1, #0x1 + str r2, [sp, #0x0] + bl sub_02006C98 + pop {r3, pc} + .balign 4 + + thumb_func_start sub_02087C40 +sub_02087C40: ; 0x02087C40 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r2, #0x0 + mov r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + str r2, [sp, #0x0] + mov r0, #0x4b + mov r1, #0x9 + add r3, r6, #0x0 + bl sub_02006C98 + str r0, [r5, #0x0] + mov r2, #0x0 + mov r0, #0x4b + mov r1, #0xa + add r3, r6, #0x0 + str r2, [sp, #0x0] + bl sub_02006C98 + str r0, [r4, #0x0] + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02087C70 +sub_02087C70: ; 0x02087C70 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r2, #0x0 + mov r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + str r2, [sp, #0x0] + mov r0, #0x4b + mov r1, #0x7 + add r3, r6, #0x0 + bl sub_02006C98 + str r0, [r5, #0x0] + mov r2, #0x0 + mov r0, #0x4b + mov r1, #0x8 + add r3, r6, #0x0 + str r2, [sp, #0x0] + bl sub_02006C98 + str r0, [r4, #0x0] + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02087CA0 +sub_02087CA0: ; 0x02087CA0 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r2, #0x0 + mov r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + str r2, [sp, #0x0] + mov r0, #0x4b + mov r1, #0x5 + add r3, r6, #0x0 + bl sub_02006C98 + str r0, [r5, #0x0] + mov r2, #0x0 + mov r0, #0x4b + mov r1, #0x6 + add r3, r6, #0x0 + str r2, [sp, #0x0] + bl sub_02006C98 + str r0, [r4, #0x0] + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02087CD0 +sub_02087CD0: ; 0x02087CD0 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r2, #0x0 + mov r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + str r2, [sp, #0x0] + mov r0, #0x4b + mov r1, #0x3 + add r3, r6, #0x0 + bl sub_02006C98 + str r0, [r5, #0x0] + mov r2, #0x0 + mov r0, #0x4b + mov r1, #0x4 + add r3, r6, #0x0 + str r2, [sp, #0x0] + bl sub_02006C98 + str r0, [r4, #0x0] + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start sub_02087D00 +sub_02087D00: ; 0x02087D00 + push {r3-r7, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x0 + mov r1, #0xcf + str r0, [sp, #0x0] + add r0, r5, #0x0 + lsl r1, r1, #0x2 + bl sub_02016998 + mov r2, #0xcf + mov r1, #0x0 + lsl r2, r2, #0x2 + add r7, r0, #0x0 + blx sub_020CE34C + add r0, r4, #0x0 + bl sub_02028048 + str r0, [r7, #0x8] + add r0, r4, #0x0 + bl sub_020238F4 + str r0, [r7, #0xc] + add r0, r4, #0x0 + bl sub_0206BB1C + str r0, [r7, #0x10] + add r0, r4, #0x0 + bl sub_0206F158 + str r0, [r7, #0x14] + add r0, r4, #0x0 + bl sub_02023900 + str r0, [r7, #0x18] + add r0, r5, #0x0 + bl sub_02027E5C + add r4, r0, #0x0 + mov r0, #0x1 + mov r1, #0x20 + add r2, r5, #0x0 + bl sub_0200AA90 + str r0, [sp, #0x4] + mov r6, #0x0 +_02087D60: + ldr r0, [r7, #0x8] + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_02028174 + add r0, r4, #0x0 + bl sub_02027E34 + cmp r0, #0x0 + beq _02087DEE + add r0, r4, #0x0 + add r1, sp, #0x8 + bl sub_02027FBC + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + add r1, #0x1c + lsl r0, r0, #0x3 + add r5, r1, r0 + strb r6, [r1, r0] + add r0, r4, #0x0 + bl sub_02027FDC + strb r0, [r5, #0x1] + add r0, sp, #0x8 + ldrb r1, [r0, #0x0] + mov r2, #0x1 + strb r1, [r5, #0x2] + ldrb r0, [r0, #0x6] + mov r1, #0x0 + strb r0, [r5, #0x3] + add r0, sp, #0x8 +_02087DA0: + add r3, r0, r1 + ldrb r3, [r3, #0x1] + cmp r3, #0x0 + beq _02087DAE + ldrb r3, [r5, #0x4] + orr r3, r2 + strb r3, [r5, #0x4] +_02087DAE: + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsl r2, r2, #0x19 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + cmp r1, #0x5 + blo _02087DA0 + ldrb r1, [r5, #0x4] + mov r0, #0x20 + orr r0, r1 + strb r0, [r5, #0x4] + ldrb r2, [r5, #0x4] + mov r1, #0x80 + add r0, r2, #0x0 + bic r0, r1 + lsl r1, r2, #0x1a + lsr r1, r1, #0x1f + lsl r1, r1, #0x1f + lsr r1, r1, #0x18 + orr r0, r1 + strb r0, [r5, #0x4] + ldr r0, [sp, #0x0] + add r1, r0, #0x0 + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x0] + strb r0, [r5, #0x5] + mov r0, #0xff + strb r0, [r5, #0x6] + ldrb r0, [r5, #0x6] + strb r0, [r5, #0x7] +_02087DEE: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x64 + blo _02087D60 + ldr r0, [sp, #0x4] + bl sub_0200AB18 + add r0, r4, #0x0 + bl sub_02016A18 + ldr r0, [sp, #0x0] + strb r0, [r7, #0x0] + mov r0, #0x5 + strb r0, [r7, #0x3] + add r0, r7, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02087E14 +sub_02087E14: ; 0x02087E14 + ldr r3, _02087E18 ; =sub_02016A18 + bx r3 + .balign 4 +_02087E18: .word sub_02016A18 + 1 + + thumb_func_start sub_02087E1C +sub_02087E1C: ; 0x02087E1C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02087E3C + bl sub_02006290 + cmp r0, #0x0 + beq _02087E3C + ldr r0, [r4, #0x0] + bl sub_02006260 + mov r0, #0x0 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} +_02087E3C: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02087E40 +sub_02087E40: ; 0x02087E40 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_0200628C + mov r2, #0x1 + add r5, r0, #0x0 + mov r0, #0x3 + mov r1, #0x2c + lsl r2, r2, #0xc + bl sub_0201681C + add r0, r4, #0x0 + mov r1, #0x18 + mov r2, #0x2c + bl sub_02006268 + mov r1, #0x0 + mov r2, #0x18 + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0x2c + str r0, [r4, #0x0] + str r5, [r4, #0xc] + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_02087E74 +sub_02087E74: ; 0x02087E74 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02006278 + ldr r1, [r4, #0x0] + cmp r1, #0x8 + bhi _02087EE4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r0, r2, #0 + lsl r0, r3, #0 + lsl r0, r4, #0 + lsl r0, r5, #0 + lsl r0, r6, #0 + lsl r0, r7, #0 + lsl r0, r0, #0x1 + lsl r0, r1, #0x1 + lsl r0, r2, #0x1 + bl sub_02087F50 + str r0, [r4, #0x0] + b _02087EE4 +_02087EA8: + .byte 0x00, 0xF0, 0x5E, 0xF8, 0x20, 0x60, 0x19, 0xE0 + .byte 0x00, 0xF0, 0x90, 0xF8, 0x20, 0x60, 0x15, 0xE0, 0x00, 0xF0, 0xD0, 0xF8, 0x20, 0x60, 0x11, 0xE0 + .byte 0x00, 0xF0, 0xEE, 0xF8, 0x20, 0x60, 0x0D, 0xE0, 0x00, 0xF0, 0x20, 0xF9, 0x20, 0x60, 0x09, 0xE0 + .byte 0x00, 0xF0, 0x2E, 0xF9, 0x20, 0x60, 0x05, 0xE0, 0x00, 0xF0, 0x68, 0xF9, 0x20, 0x60, 0x01, 0xE0 + .byte 0x01, 0x20, 0x10, 0xBD +_02087EE4: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_02087EE8 +sub_02087EE8: ; 0x02087EE8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02006278 + add r4, r0, #0x0 + bl sub_02087F08 + add r0, r5, #0x0 + bl sub_0200627C + ldr r0, [r4, #0x0] + bl sub_020168D0 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02087F08 +sub_02087F08: ; 0x02087F08 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0xc] + mov r0, #0x0 + ldrb r1, [r2, #0x0] + add r4, r0, #0x0 + cmp r1, #0x0 + bls _02087F42 + mov r6, #0x1 +_02087F1A: + add r3, r2, #0x0 + add r3, #0x1c + lsl r1, r4, #0x3 + add r1, r3, r1 + ldrb r3, [r1, #0x4] + lsl r3, r3, #0x19 + lsr r3, r3, #0x1f + beq _02087F34 + ldrb r1, [r1, #0x0] + ldr r0, [r2, #0x8] + bl sub_020280B8 + add r0, r6, #0x0 +_02087F34: + add r1, r4, #0x1 + lsl r1, r1, #0x18 + ldr r2, [r5, #0xc] + lsr r4, r1, #0x18 + ldrb r1, [r2, #0x0] + cmp r4, r1 + blo _02087F1A +_02087F42: + cmp r0, #0x0 + beq _02087F4C + ldr r0, [r2, #0x8] + bl sub_020280F4 +_02087F4C: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02087F50 +sub_02087F50: ; 0x02087F50 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02087F64 ; =0x020FD15C + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x0] + bl sub_02006234 + str r0, [r4, #0x14] + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_02087F64: .word 0x020FD15C + + thumb_func_start sub_02087F68 +sub_02087F68: ; 0x02087F68 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x14 + bl sub_02087E1C + cmp r0, #0x0 + bne _02087F7A + mov r0, #0x1 + pop {r3-r5, pc} +_02087F7A: + ldr r1, [r5, #0xc] + ldrb r0, [r1, #0x2] + cmp r0, #0x0 + bne _02087F86 + mov r0, #0x8 + pop {r3-r5, pc} +_02087F86: + mov r0, #0x0 + strb r0, [r1, #0x2] + ldr r0, [r5, #0x0] + mov r1, #0x40 + bl sub_02016998 + mov r1, #0x0 + mov r2, #0x40 + add r4, r0, #0x0 + blx sub_020CE34C + ldr r0, [r5, #0xc] + mov r1, #0x0 + ldr r0, [r0, #0x10] + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x14] + str r0, [r4, #0x4] + add r0, r4, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x14 + add r0, #0x20 + strb r1, [r0, #0x0] + ldr r0, [r5, #0xc] + add r1, r4, #0x0 + ldr r0, [r0, #0x18] + str r0, [r4, #0xc] + ldr r0, _02087FD0 ; =0x020F96DC + ldr r2, [r5, #0x0] + bl sub_02006234 + str r0, [r5, #0x14] + str r4, [r5, #0x10] + mov r0, #0x2 + pop {r3-r5, pc} + .balign 4 +_02087FD0: .word 0x020F96DC + + thumb_func_start sub_02087FD4 +sub_02087FD4: ; 0x02087FD4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, #0x14 + bl sub_02087E1C + cmp r0, #0x0 + bne _02087FE6 + mov r0, #0x2 + pop {r3-r7, pc} +_02087FE6: + ldr r7, [r5, #0x10] + add r0, r7, #0x0 + add r0, #0x22 + ldrb r6, [r0, #0x0] + strb r6, [r5, #0x8] + ldr r0, [r5, #0x10] + bl sub_02016A18 + cmp r6, #0x7 + bne _02087FFE + mov r0, #0x0 + pop {r3-r7, pc} +_02087FFE: + ldr r0, [r5, #0x0] + mov r1, #0x30 + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x10] + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x18] + str r0, [r4, #0x4] + mov r0, #0x1 + strb r0, [r4, #0x11] + strb r6, [r4, #0x14] + ldr r0, [r4, #0x0] + bl sub_0206B9AC + strb r0, [r4, #0x13] + mov r1, #0x0 + strh r1, [r4, #0x18] + mov r0, #0x3 + strb r0, [r4, #0x12] + mov r0, #0x1 + str r0, [r4, #0x2c] + str r1, [r4, #0x28] + ldr r1, _02088054 ; =0x020FD158 + add r0, r4, #0x0 + bl sub_0207B000 + ldr r1, [r5, #0xc] + add r0, r4, #0x0 + ldr r1, [r1, #0xc] + bl sub_0207C2A4 + ldr r0, _02088058 ; =0x020FA6E8 + ldr r2, [r5, #0x0] + add r1, r7, #0x0 + bl sub_02006234 + str r0, [r5, #0x14] + str r4, [r5, #0x10] + mov r0, #0x3 + pop {r3-r7, pc} + .balign 4 +_02088054: .word 0x020FD158 +_02088058: .word 0x020FA6E8 + + thumb_func_start sub_0208805C +sub_0208805C: ; 0x0208805C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x14 + bl sub_02087E1C + cmp r0, #0x0 + bne _0208806E + mov r0, #0x3 + pop {r3-r5, pc} +_0208806E: + ldr r0, [r5, #0x10] + ldrb r4, [r0, #0x17] + ldrb r0, [r0, #0x14] + strb r0, [r5, #0x8] + ldr r0, [r5, #0x10] + bl sub_02016A18 + cmp r4, #0x1 + bne _02088084 + mov r0, #0x0 + pop {r3-r5, pc} +_02088084: + ldr r0, [r5, #0xc] + add r3, r0, #0x0 + ldrb r0, [r0, #0x1] + add r3, #0x20 + lsl r2, r0, #0x3 + ldrb r1, [r3, r2] + mov r0, #0x40 + orr r0, r1 + strb r0, [r3, r2] + ldr r0, [r5, #0xc] + mov r1, #0x1 + strb r1, [r0, #0x2] + mov r0, #0x4 + pop {r3-r5, pc} + + thumb_func_start sub_020880A0 +sub_020880A0: ; 0x020880A0 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0xc + bl sub_02016998 + mov r1, #0x0 + mov r2, #0xc + add r4, r0, #0x0 + blx sub_020CE34C + ldr r1, [r5, #0xc] + ldrb r0, [r1, #0x1] + lsl r0, r0, #0x3 + add r0, r1, r0 + ldrb r0, [r0, #0x1e] + strh r0, [r4, #0x8] + ldr r2, [r5, #0xc] + ldrb r1, [r2, #0x1] + ldr r0, [r2, #0x8] + lsl r1, r1, #0x3 + add r1, r2, r1 + ldrb r1, [r1, #0x1c] + ldr r2, [r5, #0x0] + bl sub_02028190 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + ldrb r1, [r5, #0x8] + ldr r0, [r0, #0x10] + bl sub_0206B9B0 + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x18] + bl sub_02024FF4 + strb r0, [r4, #0xa] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x18] + bl sub_02025084 + strb r0, [r4, #0xb] + ldr r0, _02088108 ; =0x020FD16C + ldr r2, [r5, #0x0] + add r1, r4, #0x0 + bl sub_02006234 + str r0, [r5, #0x14] + str r4, [r5, #0x10] + mov r0, #0x5 + pop {r3-r5, pc} + .balign 4 +_02088108: .word 0x020FD16C + + thumb_func_start sub_0208810C +sub_0208810C: ; 0x0208810C + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x14 + bl sub_02087E1C + cmp r0, #0x0 + bne _0208811E + mov r0, #0x5 + pop {r4, pc} +_0208811E: + ldr r4, [r4, #0x10] + ldr r0, [r4, #0x4] + bl sub_02016A18 + add r0, r4, #0x0 + bl sub_02016A18 + mov r0, #0x6 + pop {r4, pc} + + thumb_func_start sub_02088130 +sub_02088130: ; 0x02088130 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0x30 + bl sub_02016998 + ldr r2, [r5, #0xc] + add r4, r0, #0x0 + ldrb r1, [r2, #0x1] + ldr r0, [r2, #0x8] + lsl r1, r1, #0x3 + add r1, r2, r1 + ldrb r1, [r1, #0x1c] + ldr r2, [r5, #0x0] + bl sub_02028190 + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x10] + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x18] + str r0, [r4, #0x4] + mov r0, #0x1 + strb r0, [r4, #0x11] + ldrb r0, [r5, #0x8] + strb r0, [r4, #0x14] + ldr r0, [r4, #0x0] + bl sub_0206B9AC + strb r0, [r4, #0x13] + mov r1, #0x0 + strh r1, [r4, #0x18] + mov r0, #0x4 + strb r0, [r4, #0x12] + str r6, [r4, #0x24] + mov r0, #0x1 + str r0, [r4, #0x2c] + str r1, [r4, #0x28] + ldr r1, _020881A4 ; =0x020FD154 + add r0, r4, #0x0 + bl sub_0207B000 + ldr r1, [r5, #0xc] + add r0, r4, #0x0 + ldr r1, [r1, #0xc] + bl sub_0207C2A4 + ldr r0, _020881A8 ; =0x020FA6E8 + ldr r2, [r5, #0x0] + add r1, r4, #0x0 + bl sub_02006234 + str r0, [r5, #0x14] + str r4, [r5, #0x10] + mov r0, #0x7 + pop {r4-r6, pc} + nop +_020881A4: .word 0x020FD154 +_020881A8: .word 0x020FA6E8 + + thumb_func_start sub_020881AC +sub_020881AC: ; 0x020881AC + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x14 + bl sub_02087E1C + cmp r0, #0x0 + bne _020881BE + mov r0, #0x7 + pop {r4, pc} +_020881BE: + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x24] + bl sub_02016A18 + ldr r0, [r4, #0x10] + bl sub_02016A18 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_020881D0 +sub_020881D0: ; 0x020881D0 + push {r3-r5, lr} + sub sp, #0x8 + lsl r2, r1, #0x1 + ldr r1, _02088214 ; =0x020FD17C + ldrb r4, [r1, r2] + ldr r1, _02088218 ; =0x020FD17D + ldrb r5, [r1, r2] + cmp r4, #0x5 + bne _020881E8 + add sp, #0x8 + mov r0, #0x2 + pop {r3-r5, pc} +_020881E8: + add r1, sp, #0x0 + bl sub_02027FBC + add r0, r4, #0x1 + add r2, sp, #0x0 + ldrb r1, [r2, r0] + add r0, r5, #0x1 + ldrb r0, [r2, r0] + cmp r1, r0 + bne _02088202 + add sp, #0x8 + mov r0, #0x2 + pop {r3-r5, pc} +_02088202: + cmp r1, r0 + bls _0208820C + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_0208820C: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + nop +_02088214: .word 0x020FD17C +_02088218: .word 0x020FD17D + + thumb_func_start sub_0208821C +sub_0208821C: ; 0x0208821C + push {r3-r7, lr} + sub sp, #0x30 + add r6, r1, #0x0 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_02068854 + lsl r1, r0, #0x1 + ldr r0, _02088310 ; =0x020FD17C + ldrb r0, [r0, r1] + str r0, [sp, #0x4] + ldr r0, _02088314 ; =0x020FD17D + ldrb r0, [r0, r1] + add r1, sp, #0x10 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl sub_02027FBC + mov r4, #0x0 + add r7, r4, #0x0 + add r5, sp, #0x18 +_02088246: + add r1, r4, #0x0 + add r0, r6, #0x0 + add r1, #0x13 + add r2, r7, #0x0 + bl sub_020671BC + lsl r1, r4, #0x2 + str r0, [r5, r1] + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x6 + blo _02088246 + add r4, sp, #0x8 + mov r1, #0x0 + mov r3, #0x1 + add r0, sp, #0x10 + add r4, #0x1 +_0208826A: + ldrb r5, [r0, r3] + add r2, r1, #0x0 + add r1, r1, #0x1 + strb r5, [r4, r2] + add r2, r3, #0x1 + lsl r2, r2, #0x18 + lsl r1, r1, #0x18 + lsr r3, r2, #0x18 + lsr r1, r1, #0x18 + cmp r3, #0x6 + bls _0208826A + ldr r0, [sp, #0x4] + cmp r0, #0x5 + beq _020882B8 + ldrb r0, [r4, r0] + blx sub_020EB57C + add r1, r0, #0x0 + ldr r0, _02088318 ; =0x3F8CCCCD + blx sub_020EB5C4 + blx sub_020EB4F4 + ldr r1, [sp, #0x4] + strb r0, [r4, r1] + add r4, sp, #0x8 + ldr r0, [sp, #0x0] + add r4, #0x1 + ldrb r0, [r4, r0] + blx sub_020EB57C + add r1, r0, #0x0 + ldr r0, _0208831C ; =0x3F666666 + blx sub_020EB5C4 + blx sub_020EB4F4 + ldr r1, [sp, #0x0] + strb r0, [r4, r1] +_020882B8: + add r7, sp, #0x8 + mov r5, #0x0 + add r4, sp, #0x18 + add r7, #0x1 +_020882C0: + lsl r2, r5, #0x2 + ldrb r0, [r7, r5] + ldr r1, [r4, r2] + add r0, r1, r0 + str r0, [r4, r2] + ldr r0, [r4, r2] + cmp r0, #0xff + ble _020882D4 + mov r0, #0xff + str r0, [r4, r2] +_020882D4: + add r1, r5, #0x0 + add r0, r6, #0x0 + add r1, #0x13 + add r2, r4, r2 + bl sub_02067830 + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x6 + blo _020882C0 + add r0, r6, #0x0 + mov r1, #0x9 + mov r2, #0x0 + bl sub_020671BC + add r1, sp, #0x8 + strb r0, [r1, #0x0] + ldrb r0, [r1, #0x0] + cmp r0, #0xff + bhs _0208830C + add r0, r0, #0x1 + strb r0, [r1, #0x0] + add r0, r6, #0x0 + mov r1, #0x9 + add r2, sp, #0x8 + bl sub_02067830 +_0208830C: + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_02088310: .word 0x020FD17C +_02088314: .word 0x020FD17D +_02088318: .word 0x3F8CCCCD +_0208831C: .word 0x3F666666 + + thumb_func_start sub_02088320 +sub_02088320: ; 0x02088320 + push {r3-r7, lr} + add r5, r1, #0x0 + mov r1, #0x59 + lsl r1, r1, #0x2 + add r6, r0, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x0] + bl sub_02016998 + mov r2, #0x59 + mov r1, #0x0 + lsl r2, r2, #0x2 + add r4, r0, #0x0 + blx sub_020CE34C + str r6, [r4, #0x0] + cmp r5, #0x10 + bls _0208834A + mov r0, #0x10 + strh r0, [r4, #0xa] + b _0208834C +_0208834A: + strh r7, [r4, #0xa] +_0208834C: + strh r5, [r4, #0xc] + ldr r0, [sp, #0x0] + strh r0, [r4, #0xe] + ldr r0, [sp, #0x18] + str r0, [r4, #0x4] + add r0, r4, #0x0 + bl sub_0208837C + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02088360 +sub_02088360: ; 0x02088360 + push {r4, lr} + add r4, r0, #0x0 + bl sub_0208843C + mov r2, #0x59 + add r0, r4, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x2 + blx sub_020CE34C + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_0208837C +sub_0208837C: ; 0x0208837C + push {r4-r7, lr} + sub sp, #0xc + ldr r1, _02088438 ; =0x020FD1C0 + str r0, [sp, #0x0] + ldrb r2, [r1, #0x0] + add r0, sp, #0x8 + strb r2, [r0, #0x0] + ldrb r2, [r1, #0x1] + strb r2, [r0, #0x1] + ldrb r2, [r1, #0x2] + ldrb r1, [r1, #0x3] + strb r2, [r0, #0x2] + strb r1, [r0, #0x3] + ldr r0, [sp, #0x0] + ldr r2, [sp, #0x0] + ldr r1, [sp, #0x0] + ldrh r0, [r0, #0xc] + ldr r2, [r2, #0x0] + add r1, #0x14 + bl sub_02008C9C + ldr r1, [sp, #0x0] + mov r6, #0x15 + str r0, [r1, #0x10] + add r0, r1, #0x0 + ldrh r1, [r0, #0xa] + add r0, sp, #0x8 + ldr r5, [sp, #0x0] + strb r1, [r0, #0x1] + mov r0, #0x0 + str r0, [sp, #0x4] + add r7, sp, #0x8 + add r4, r0, #0x0 + lsl r6, r6, #0x4 +_020883C0: + ldr r2, [sp, #0x0] + ldrb r0, [r7, #0x0] + ldr r1, [sp, #0x4] + ldr r2, [r2, #0x0] + bl sub_02008DEC + mov r1, #0x5 + lsl r1, r1, #0x6 + str r0, [r5, r1] + ldr r1, [sp, #0x0] + ldrb r0, [r7, #0x0] + ldr r1, [r1, #0x0] + bl sub_02009424 + mov r1, #0x15 + lsl r1, r1, #0x4 + str r0, [r5, r1] + mov r0, #0x15 + lsl r0, r0, #0x4 + ldr r3, [r5, r0] + mov r1, #0x0 + ldr r0, [r3, #0x4] + cmp r0, #0x0 + bls _02088402 + add r2, r1, #0x0 +_020883F2: + ldr r0, [r3, #0x0] + add r1, r1, #0x1 + str r4, [r0, r2] + ldr r3, [r5, r6] + add r2, r2, #0x4 + ldr r0, [r3, #0x4] + cmp r1, r0 + blo _020883F2 +_02088402: + ldr r0, [sp, #0x4] + add r7, r7, #0x1 + add r0, r0, #0x1 + add r5, r5, #0x4 + str r0, [sp, #0x4] + cmp r0, #0x4 + blo _020883C0 + ldr r0, [sp, #0x0] + bl sub_020886CC + ldr r0, [sp, #0x0] + mov r1, #0x4 + ldr r0, [r0, #0x0] + bl sub_02016998 + mov r2, #0x16 + ldr r1, [sp, #0x0] + lsl r2, r2, #0x4 + str r0, [r1, r2] + add r0, r1, #0x0 + ldr r0, [r0, r2] + mov r1, #0x0 + mov r2, #0x4 + blx sub_020CE34C + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02088438: .word 0x020FD1C0 + + thumb_func_start sub_0208843C +sub_0208843C: ; 0x0208843C + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x16 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + bl sub_02016A18 + ldr r0, [r5, #0x10] + bl sub_0201FD58 + mov r0, #0x15 + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + bl sub_02009C30 + mov r0, #0x55 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_02009E28 + mov r7, #0x15 + lsl r7, r7, #0x4 + add r6, r7, #0x0 + mov r4, #0x0 + sub r6, #0x10 +_0208846E: + ldr r0, [r5, r7] + bl sub_02009448 + ldr r0, [r5, r6] + bl sub_02008E2C + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x4 + blo _0208846E + pop {r3-r7, pc} + + thumb_func_start sub_02088484 +sub_02088484: ; 0x02088484 + ldr r3, _0208848C ; =sub_0201FDEC + ldr r0, [r0, #0x10] + bx r3 + nop +_0208848C: .word sub_0201FDEC + 1 + + thumb_func_start sub_02088490 +sub_02088490: ; 0x02088490 + push {r3-r7, lr} + sub sp, #0x70 + str r1, [sp, #0x2c] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r5, r0, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x30] + bl sub_020887CC + str r0, [sp, #0x3c] + cmp r0, #0x0 + bge _020884B4 + bl sub_02020C2C + add sp, #0x70 + mov r0, #0x0 + pop {r3-r7, pc} +_020884B4: + ldr r0, [r5, #0x0] + mov r1, #0x8 + bl sub_02016998 + str r0, [sp, #0x38] + mov r1, #0x0 + mov r2, #0x8 + blx sub_020CE34C + ldr r1, [sp, #0x3c] + ldr r0, [sp, #0x38] + strh r1, [r0, #0x0] + ldr r0, [sp, #0x94] + cmp r0, #0x0 + bne _020884D6 + mov r6, #0x1 + b _020884D8 +_020884D6: + mov r6, #0x2 +_020884D8: + ldr r0, [sp, #0x3c] + mov r1, #0x55 + lsl r1, r1, #0x2 + lsl r4, r0, #0x2 + ldr r0, [r5, r1] + ldr r3, [sp, #0x2c] + ldr r0, [r0, #0x0] + sub r1, #0x10 + ldr r0, [r0, r4] + mov r2, #0x58 + str r0, [sp, #0x34] + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x0] + add r3, r3, #0x3 + str r0, [sp, #0x4] + ldr r0, [r5, r1] + ldr r1, [sp, #0x34] + bl sub_02009168 + mov r0, #0x55 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r0, [r0, #0x0] + ldr r0, [r0, r4] + bl sub_02009DE0 + ldr r0, [r5, #0x0] + mov r1, #0x10 + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + mov r1, #0x8 + bl sub_02016998 + str r0, [r4, #0x8] + ldr r0, [r5, #0x0] + mov r1, #0x24 + bl sub_02016998 + ldr r1, [r4, #0x8] + mov r3, #0xe + str r0, [r1, #0x0] + ldr r0, [r4, #0x8] + lsl r3, r3, #0xc + ldr r0, [r0, #0x0] + mov r1, #0x0 + str r0, [r4, #0x4] + mov r0, #0x0 + str r3, [sp, #0x0] + mvn r0, r0 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r1, [sp, #0xc] + add r0, sp, #0x78 + ldrb r0, [r0, #0x14] + str r0, [sp, #0x10] + mov r0, #0x5 + lsl r0, r0, #0x6 + ldr r2, [r5, r0] + str r2, [sp, #0x14] + add r2, r0, #0x4 + ldr r2, [r5, r2] + str r2, [sp, #0x18] + add r2, r0, #0x0 + add r2, #0x8 + ldr r2, [r5, r2] + add r0, #0xc + str r2, [sp, #0x1c] + ldr r0, [r5, r0] + str r0, [sp, #0x20] + str r1, [sp, #0x24] + str r1, [sp, #0x28] + ldr r2, [sp, #0x3c] + ldr r0, [r4, #0x4] + add r1, r3, #0x0 + add r2, r2, r3 + bl sub_02008AA4 + ldr r0, [r5, #0x10] + cmp r7, #0x0 + str r0, [sp, #0x40] + ldr r0, [r4, #0x4] + str r0, [sp, #0x44] + beq _02088596 + lsl r0, r7, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _020885A4 +_02088596: + lsl r0, r7, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_020885A4: + blx sub_020EB4C0 + str r0, [sp, #0x48] + ldr r0, [sp, #0x30] + cmp r0, #0x0 + beq _020885C2 + lsl r0, r0, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _020885D0 +_020885C2: + lsl r0, r0, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_020885D0: + blx sub_020EB4C0 + str r0, [sp, #0x4c] + add r0, sp, #0x78 + ldrh r0, [r0, #0x10] + cmp r0, #0x0 + beq _020885F0 + lsl r0, r0, #0xc + blx sub_020EB534 + add r1, r0, #0x0 + mov r0, #0x3f + lsl r0, r0, #0x18 + blx sub_020EA980 + b _020885FE +_020885F0: + lsl r0, r0, #0xc + blx sub_020EB534 + mov r1, #0x3f + lsl r1, r1, #0x18 + blx sub_020EB7B0 +_020885FE: + blx sub_020EB4C0 + str r0, [sp, #0x50] + cmp r6, #0x2 + bne _02088612 + mov r0, #0x3 + ldr r1, [sp, #0x4c] + lsl r0, r0, #0x12 + add r0, r1, r0 + str r0, [sp, #0x4c] +_02088612: + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [sp, #0x54] + str r0, [sp, #0x58] + str r0, [sp, #0x5c] + mov r1, #0x0 + add r0, sp, #0x40 + strh r1, [r0, #0x20] + add r0, sp, #0x78 + ldrb r0, [r0, #0x18] + str r6, [sp, #0x68] + str r0, [sp, #0x64] + ldr r0, [r5, #0x0] + str r0, [sp, #0x6c] + add r0, sp, #0x40 + bl sub_0201FE94 + str r0, [r4, #0x0] + cmp r0, #0x0 + beq _02088652 + mov r1, #0x0 + bl sub_02020130 + ldr r0, [sp, #0x34] + add r1, r6, #0x0 + bl sub_02009E88 + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl sub_02020248 + b _02088656 +_02088652: + bl sub_02020C2C +_02088656: + ldr r0, [sp, #0x38] + str r4, [r0, #0x4] + add sp, #0x70 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_02088660 +sub_02088660: ; 0x02088660 + push {r4, lr} + sub sp, #0x8 + add r3, r2, #0x0 + mov r2, #0x55 + lsl r2, r2, #0x2 + ldr r4, [r0, r2] + ldrh r1, [r1, #0x0] + ldr r4, [r4, #0x0] + sub r2, #0x10 + lsl r1, r1, #0x2 + ldr r4, [r4, r1] + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r1, [r0, #0x0] + add r3, r3, #0x3 + str r1, [sp, #0x4] + ldr r0, [r0, r2] + add r1, r4, #0x0 + mov r2, #0x58 + bl sub_02009168 + add r0, r4, #0x0 + bl sub_02009DE0 + add sp, #0x8 + pop {r4, pc} + + thumb_func_start sub_02088694 +sub_02088694: ; 0x02088694 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x4] + bl sub_0200C3DC + mov r1, #0x16 + ldrh r2, [r4, #0x0] + lsl r1, r1, #0x4 + ldr r3, [r5, r1] + mov r0, #0x0 + lsl r2, r2, #0x2 + strb r0, [r3, r2] + ldrh r2, [r4, #0x0] + ldr r3, [r5, r1] + lsl r2, r2, #0x2 + add r2, r3, r2 + strh r0, [r2, #0x2] + ldr r2, [r5, r1] + ldrh r1, [r4, #0x0] + lsl r1, r1, #0x2 + add r1, r2, r1 + strb r0, [r1, #0x1] + add r0, r4, #0x0 + bl sub_02016A18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020886CC +sub_020886CC: ; 0x020886CC + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + mov r0, #0x15 + lsl r0, r0, #0x4 + ldr r4, [r5, r0] + mov r1, #0xe + lsl r1, r1, #0xc + str r1, [sp, #0x0] + ldrh r1, [r5, #0xe] + mov r2, #0x0 + sub r0, #0x10 + str r1, [sp, #0x4] + ldr r1, [r5, #0x0] + add r3, r2, #0x0 + str r1, [sp, #0x8] + ldr r0, [r5, r0] + mov r1, #0x58 + bl sub_02008F34 + ldr r1, [r4, #0x0] + str r0, [r1, #0x0] + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02088704 + bl sub_02020C2C +_02088704: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + beq _02088728 + cmp r0, #0x1 + beq _02088714 + cmp r0, #0x2 + beq _0208871E + b _02088728 +_02088714: + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x0] + bl sub_02009B04 + b _02088730 +_0208871E: + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x0] + bl sub_02009B78 + b _02088730 +_02088728: + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x0] + bl sub_02009A50 +_02088730: + mov r4, #0x0 + add r6, r5, #0x0 +_02088734: + mov r0, #0x56 + lsl r0, r0, #0x2 + ldr r7, [r6, r0] + mov r0, #0xe + lsl r0, r0, #0xc + str r0, [sp, #0x0] + add r0, r4, #0x2 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + mov r1, #0x58 + str r0, [sp, #0x8] + mov r0, #0x52 + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + add r2, r4, #0x1 + mov r3, #0x0 + bl sub_020090AC + ldr r1, [r7, #0x0] + str r0, [r1, #0x0] + ldr r0, [r7, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02088768 + bl sub_02020C2C +_02088768: + add r4, r4, #0x1 + add r6, r6, #0x4 + cmp r4, #0x2 + blt _02088734 + mov r0, #0x55 + lsl r0, r0, #0x2 + ldr r6, [r5, r0] + ldrh r0, [r5, #0xa] + mov r7, #0x0 + cmp r0, #0x0 + ble _020887C6 + add r4, r7, #0x0 +_02088780: + mov r0, #0xe + lsl r0, r0, #0xc + add r0, r7, r0 + str r0, [sp, #0x0] + ldrh r0, [r5, #0xe] + mov r1, #0x58 + mov r2, #0x4 + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + ldr r0, [r5, #0x0] + mov r3, #0x0 + str r0, [sp, #0xc] + mov r0, #0x51 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl sub_02008FEC + ldr r1, [r6, #0x0] + str r0, [r1, r4] + ldr r0, [r6, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + bne _020887B4 + bl sub_02020C2C +_020887B4: + ldr r0, [r6, #0x0] + ldr r0, [r0, r4] + bl sub_02009CF0 + ldrh r0, [r5, #0xa] + add r7, r7, #0x1 + add r4, r4, #0x4 + cmp r7, r0 + blt _02088780 +_020887C6: + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start sub_020887CC +sub_020887CC: ; 0x020887CC + push {r3-r6} + ldrh r5, [r0, #0xa] + mov r3, #0x0 + cmp r5, #0x0 + bls _0208880A + mov r2, #0x16 + lsl r2, r2, #0x4 + ldr r4, [r0, r2] +_020887DC: + lsl r2, r3, #0x2 + ldrb r6, [r4, r2] + cmp r6, #0x0 + bne _02088800 + add r4, r4, r2 + strh r3, [r4, #0x2] + mov r4, #0x16 + lsl r4, r4, #0x4 + ldr r5, [r0, r4] + add r5, r5, r2 + strb r1, [r5, #0x1] + ldr r0, [r0, r4] + mov r1, #0x1 + strb r1, [r0, r2] + lsl r0, r3, #0x10 + asr r0, r0, #0x10 + pop {r3-r6} + bx lr +_02088800: + add r2, r3, #0x1 + lsl r2, r2, #0x10 + lsr r3, r2, #0x10 + cmp r3, r5 + blo _020887DC +_0208880A: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r6} + bx lr + .balign 4 + + thumb_func_start sub_02088814 +sub_02088814: ; 0x02088814 + mov r0, #0x3 + bx lr + + thumb_func_start sub_02088818 +sub_02088818: ; 0x02088818 + bx lr + .balign 4 + + thumb_func_start sub_0208881C +sub_0208881C: ; 0x0208881C + ldr r3, _02088828 ; =sub_0202D8D0 + add r2, r0, #0x0 + ldr r0, _0208882C ; =0x020FD1C4 + mov r1, #0x6c + bx r3 + nop +_02088828: .word sub_0202D8D0 + 1 +_0208882C: .word 0x020FD1C4 + + thumb_func_start sub_02088830 +sub_02088830: ; 0x02088830 + ldr r0, _02088834 ; =0x0000066C + bx lr + .balign 4 +_02088834: .word 0x0000066C + + thumb_func_start sub_02088838 +sub_02088838: ; 0x02088838 + mov r0, #0x2f + lsl r0, r0, #0x6 + bx lr + .balign 4 + + thumb_func_start sub_02088840 +sub_02088840: ; 0x02088840 + mov r0, #0x3f + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start sub_02088848 +sub_02088848: ; 0x02088848 + mov r0, #0xa + bx lr + + thumb_func_start sub_0208884C +sub_0208884C: ; 0x0208884C + mov r0, #0x32 + bx lr + + thumb_func_start sub_02088850 +sub_02088850: ; 0x02088850 + mov r0, #0x4 + bx lr + + thumb_func_start sub_02088854 +sub_02088854: ; 0x02088854 + mov r0, #0x4 + bx lr + + thumb_func_start sub_02088858 +sub_02088858: ; 0x02088858 + ldr r3, _02088860 ; =sub_02005FDC + ldr r0, _02088864 ; =0x00000004 + mov r1, #0x2 + bx r3 + .balign 4 +_02088860: .word sub_02005FDC + 1 +_02088864: .word 0x00000004 + + thumb_func_start sub_02088868 +sub_02088868: ; 0x02088868 + ldr r3, _02088870 ; =sub_02005F60 + ldr r0, _02088874 ; =0x00000004 + bx r3 + nop +_02088870: .word sub_02005F60 + 1 +_02088874: .word 0x00000004 + + thumb_func_start sub_02088878 +sub_02088878: ; 0x02088878 + ldr r3, _02088880 ; =sub_02005FDC + ldr r0, _02088884 ; =0x0000000D + mov r1, #0x2 + bx r3 + .balign 4 +_02088880: .word sub_02005FDC + 1 +_02088884: .word 0x0000000D + + thumb_func_start sub_02088888 +sub_02088888: ; 0x02088888 + ldr r3, _02088890 ; =sub_02005F60 + ldr r0, _02088894 ; =0x0000000D + bx r3 + nop +_02088890: .word sub_02005F60 + 1 +_02088894: .word 0x0000000D + + thumb_func_start sub_02088898 +sub_02088898: ; 0x02088898 + push {r4, lr} + add r4, r1, #0x0 + bl sub_02088858 + bl sub_02088878 + add r0, r4, #0x0 + bl sub_02211E60 + bl sub_02088888 + bl sub_02088868 + mov r0, #0x0 + blx sub_020CD3B4 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020888BC +sub_020888BC: ; 0x020888BC + ldr r3, _020888C4 ; =sub_02005FDC + ldr r0, _020888C8 ; =0x0000004F + mov r1, #0x2 + bx r3 + .balign 4 +_020888C4: .word sub_02005FDC + 1 +_020888C8: .word 0x0000004F + + thumb_func_start sub_020888CC +sub_020888CC: ; 0x020888CC + ldr r3, _020888D4 ; =sub_02005F60 + ldr r0, _020888D8 ; =0x0000004F + bx r3 + nop +_020888D4: .word sub_02005F60 + 1 +_020888D8: .word 0x0000004F + + thumb_func_start sub_020888DC +sub_020888DC: ; 0x020888DC + push {r4, lr} + mov r2, #0x41 + add r4, r0, #0x0 + mov r0, #0x3 + mov r1, #0x31 + lsl r2, r2, #0xc + bl sub_0201681C + add r0, r4, #0x0 + bl sub_0200628C + ldr r0, [r0, #0x8] + mov r1, #0x31 + bl sub_02088898 + mov r0, #0x31 + bl sub_020168D0 + mov r0, #0x0 + blx sub_020CD3B4 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0208890C +sub_0208890C: ; 0x0208890C + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x20 + add r7, r3, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x20 + blx sub_020CE34C + str r5, [r4, #0xc] + add r0, r5, #0x0 + bl sub_02028048 + str r0, [r4, #0x8] + add r0, r5, #0x0 + bl sub_020238F4 + str r0, [r4, #0x10] + add r0, r5, #0x0 + bl sub_0206F158 + str r0, [r4, #0x14] + add r0, r5, #0x0 + bl sub_02023900 + str r0, [r4, #0x18] + str r7, [r4, #0x1c] + str r6, [r4, #0x4] + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start sub_02088950 +sub_02088950: ; 0x02088950 + ldr r3, _02088958 ; =sub_020373D4 + add r2, r1, #0x0 + ldr r1, _0208895C ; =0x020FD6E4 + bx r3 + .balign 4 +_02088958: .word sub_020373D4 + 1 +_0208895C: .word 0x020FD6E4 + + thumb_func_start sub_02088960 +sub_02088960: ; 0x02088960 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl sub_020377AC + add r3, r5, #0x0 + add r3, #0x98 + add r1, r0, #0x0 + ldr r3, [r3, #0x0] + add r0, r4, #0x0 + add r2, r6, #0x0 + bl sub_0208890C + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl sub_02088950 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_0208898C +sub_0208898C: ; 0x0208898C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020889AC + bl sub_02006290 + cmp r0, #0x0 + beq _020889AC + ldr r0, [r4, #0x0] + bl sub_02006260 + mov r0, #0x0 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} +_020889AC: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start sub_020889B0 +sub_020889B0: ; 0x020889B0 + push {r3-r5, lr} + add r4, r0, #0x0 + bl sub_0200628C + mov r2, #0x1 + add r5, r0, #0x0 + mov r0, #0x3 + mov r1, #0x37 + lsl r2, r2, #0xe + bl sub_0201681C + add r0, r4, #0x0 + mov r1, #0x24 + mov r2, #0x37 + bl sub_02006268 + mov r1, #0x0 + mov r2, #0x24 + add r4, r0, #0x0 + blx sub_020CE34C + mov r0, #0x37 + str r0, [r4, #0x0] + str r5, [r4, #0x10] + ldr r0, [r4, #0x0] + bl sub_0206F164 + str r0, [r4, #0xc] + ldr r0, [r5, #0x4] + cmp r0, #0x1 + bne _020889FA + ldrh r1, [r4, #0x6] + mov r0, #0xff + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strh r0, [r4, #0x6] +_020889FA: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_02088A00 +sub_02088A00: ; 0x02088A00 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_02006278 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0200628C + ldr r5, [r4, #0x0] + cmp r5, #0x4 + bhi _02088A6A + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r0, r1, #0 + lsl r6, r2, #0 + lsl r4, r4, #0 + lsl r2, r6, #0 + lsl r0, r0, #0x1 + add r1, r6, #0x0 + add r0, r6, #0x0 + add r1, #0x14 + bl sub_02088AAC + str r0, [r4, #0x0] + b _02088A6A +_02088A3C: + .byte 0x31, 0x1C, 0x30, 0x1C + .byte 0x14, 0x31, 0x00, 0xF0, 0x5B, 0xF8, 0x20, 0x60, 0x0F, 0xE0, 0x31, 0x1C, 0x30, 0x1C, 0x14, 0x31 + .byte 0x00, 0xF0, 0x6A, 0xF8, 0x20, 0x60, 0x08, 0xE0, 0x31, 0x1C, 0x30, 0x1C, 0x14, 0x31, 0x00, 0xF0 + .byte 0x73, 0xF8, 0x20, 0x60, 0x01, 0xE0, 0x01, 0x20, 0x70, 0xBD +_02088A6A: + ldr r0, [r4, #0x0] + cmp r5, r0 + beq _02088A74 + mov r0, #0x0 + str r0, [r6, #0x14] +_02088A74: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start sub_02088A78 +sub_02088A78: ; 0x02088A78 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02006278 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl sub_0200628C + ldr r0, [r4, #0xc] + ldr r6, [r4, #0x0] + bl sub_02016A18 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x24 + blx sub_020CE34C + add r0, r5, #0x0 + bl sub_0200627C + add r0, r6, #0x0 + bl sub_020168D0 + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start sub_02088AAC +sub_02088AAC: ; 0x02088AAC + push {r4, lr} + add r4, r1, #0x0 + ldr r1, [r4, #0x0] + cmp r1, #0x5 + bhi _02088AF6 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r1, #0 + lsl r2, r2, #0 + lsl r2, r3, #0 + lsl r2, r4, #0 + lsl r2, r5, #0 + lsl r6, r5, #0 + bl sub_02088B4C + str r0, [r4, #0x0] + b _02088AF6 +_02088AD6: + .byte 0x00, 0xF0, 0x67, 0xF8, 0x20, 0x60, 0x0B, 0xE0, 0x00, 0xF0 + .byte 0xAD, 0xF8, 0x20, 0x60, 0x07, 0xE0, 0x00, 0xF0, 0xF9, 0xF8, 0x20, 0x60, 0x03, 0xE0, 0x01, 0x20 + .byte 0x10, 0xBD, 0x04, 0x20, 0x10, 0xBD +_02088AF6: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02088AFC +sub_02088AFC: ; 0x02088AFC + push {r3-r5, lr} + sub sp, #0x10 + ldr r5, _02088B24 ; =0x020FD708 + add r3, sp, #0x0 + add r4, r0, #0x0 + add r2, r3, #0x0 + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + ldr r2, [r4, #0x0] + add r1, r4, #0x0 + bl sub_02006234 + str r0, [r4, #0x1c] + mov r0, #0x2 + add sp, #0x10 + pop {r3-r5, pc} + nop +_02088B24: .word 0x020FD708 + + thumb_func_start sub_02088B28 +sub_02088B28: ; 0x02088B28 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x1c + bl sub_0208898C + cmp r0, #0x0 + bne _02088B3A + mov r0, #0x2 + pop {r4, pc} +_02088B3A: + ldr r0, [r4, #0x20] + cmp r0, #0x1 + bne _02088B44 + mov r0, #0x0 + pop {r4, pc} +_02088B44: + mov r0, #0x3 + pop {r4, pc} + + thumb_func_start sub_02088B48 +sub_02088B48: ; 0x02088B48 + mov r0, #0x4 + bx lr + + thumb_func_start sub_02088B4C +sub_02088B4C: ; 0x02088B4C + push {r3-r5, lr} + sub sp, #0x10 + ldr r3, _02088BA0 ; =0x020FD6F8 + add r2, sp, #0x0 + add r5, r0, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r5, #0x10] + ldr r1, _02088BA4 ; =0x020FD6F4 + ldr r0, [r0, #0x14] + ldr r2, [r5, #0x0] + bl sub_0206EFEC + add r4, r0, #0x0 + ldrh r0, [r5, #0x6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bne _02088B7A + mov r2, #0x5 + b _02088B7C +_02088B7A: + mov r2, #0x4 +_02088B7C: + ldr r1, [r5, #0x10] + lsl r2, r2, #0x18 + ldr r1, [r1, #0xc] + ldr r3, [r5, #0xc] + add r0, r4, #0x0 + lsr r2, r2, #0x18 + bl sub_0206E314 + ldr r2, [r5, #0x0] + add r0, sp, #0x0 + add r1, r4, #0x0 + bl sub_02006234 + str r0, [r5, #0x1c] + str r4, [r5, #0x18] + mov r0, #0x1 + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 +_02088BA0: .word 0x020FD6F8 +_02088BA4: .word 0x020FD6F4 + + thumb_func_start sub_02088BA8 +sub_02088BA8: ; 0x02088BA8 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0x1c + bl sub_0208898C + cmp r0, #0x0 + bne _02088BBA + mov r0, #0x1 + pop {r3-r5, pc} +_02088BBA: + ldr r0, [r4, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_0206E2F0 + add r5, r0, #0x0 + bl sub_0206E308 + add r2, r0, #0x0 + ldr r1, [r4, #0x18] + add r0, r5, #0x0 + blx sub_020DF438 + ldr r0, [r4, #0x18] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x18] + add r0, r5, #0x0 + bl sub_0206E37C + str r0, [r4, #0x8] + add r0, r5, #0x0 + bl sub_02016A18 + add r0, r5, #0x0 + bl sub_0206E384 + cmp r0, #0x5 + bhi _02088C16 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r2, r3, #0 + lsl r2, r1, #0 + lsl r2, r3, #0 + lsl r2, r3, #0 + lsl r2, r3, #0 + lsl r6, r1, #0 + mov r0, #0x2 + pop {r3-r5, pc} +_02088C12: + .byte 0x05, 0x20, 0x38, 0xBD +_02088C16: + bl sub_02020C2C + mov r0, #0x95 + str r0, [r4, #0x8] + ldr r0, [r4, #0x10] + ldr r1, [r4, #0x8] + ldr r0, [r0, #0x14] + lsl r1, r1, #0x10 + ldr r3, [r4, #0x0] + lsr r1, r1, #0x10 + mov r2, #0x1 + bl sub_0206EDD4 + cmp r0, #0x0 + bne _02088C38 + bl sub_02020C2C +_02088C38: + mov r0, #0x4 + pop {r3-r5, pc} + + thumb_func_start sub_02088C3C +sub_02088C3C: ; 0x02088C3C + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + ldr r0, [r5, #0x10] + ldr r3, _02088CD8 ; =0x020FD718 + ldr r0, [r0, #0x14] + add r2, sp, #0x8 + str r0, [sp, #0x0] + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r5, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_020851B8 + str r0, [r5, #0x18] + ldr r1, [r5, #0x8] + mov r2, #0x1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl sub_020851DC + mov r6, #0x0 + add r4, r6, #0x0 +_02088C70: + add r0, r4, #0x0 + bl sub_0206EB1C + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r0, [sp, #0x0] + ldr r3, [r5, #0x0] + add r1, r7, #0x0 + mov r2, #0x1 + bl sub_0206EE50 + cmp r0, #0x1 + bne _02088C9A + ldr r0, [r5, #0x18] + add r1, r7, #0x0 + mov r2, #0x0 + bl sub_020851DC + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 +_02088C9A: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x40 + blo _02088C70 + add r3, sp, #0x4 + ldr r0, [r5, #0xc] + mov r1, #0x4 + add r2, sp, #0x4 + add r3, #0x1 + bl sub_0206F17C + add r2, sp, #0x4 + ldrb r1, [r2, #0x1] + add r3, r6, #0x2 + lsl r3, r3, #0x18 + ldrb r2, [r2, #0x0] + ldr r0, [r5, #0x18] + lsr r3, r3, #0x18 + bl sub_020851F8 + ldr r1, [r5, #0x18] + ldr r2, [r5, #0x0] + add r0, sp, #0x8 + bl sub_02006234 + str r0, [r5, #0x1c] + mov r0, #0x3 + add sp, #0x18 + pop {r3-r7, pc} + nop +_02088CD8: .word 0x020FD718 + + thumb_func_start sub_02088CDC +sub_02088CDC: ; 0x02088CDC + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r0, #0x1c + bl sub_0208898C + cmp r0, #0x0 + bne _02088CF2 + add sp, #0x4 + mov r0, #0x3 + pop {r3-r4, pc} +_02088CF2: + add r1, sp, #0x0 + ldr r0, [r4, #0x18] + add r1, #0x1 + add r2, sp, #0x0 + bl sub_0208524C + add r3, sp, #0x0 + ldrb r2, [r3, #0x0] + ldrb r3, [r3, #0x1] + ldr r0, [r4, #0xc] + mov r1, #0x4 + bl sub_0206F190 + ldr r0, [r4, #0x18] + bl sub_02016A18 + mov r0, #0x0 + str r0, [r4, #0x18] + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start sub_02088D1C +sub_02088D1C: ; 0x02088D1C + mov r0, #0x13 + bx lr + + thumb_func_start sub_02088D20 +sub_02088D20: ; 0x02088D20 + ldr r3, _02088D3C ; =0x020FD8C8 + mov r2, #0x0 +_02088D24: + ldrb r1, [r3, #0x0] + cmp r0, r1 + bne _02088D2E + add r0, r2, #0x0 + bx lr +_02088D2E: + add r2, r2, #0x1 + add r3, #0xc + cmp r2, #0x13 + blo _02088D24 + mov r0, #0x0 + bx lr + nop +_02088D3C: .word 0x020FD8C8 + + thumb_func_start sub_02088D40 +sub_02088D40: ; 0x02088D40 + push {r3, lr} + bl sub_02088D20 + bl sub_02088D4C + pop {r3, pc} + + thumb_func_start sub_02088D4C +sub_02088D4C: ; 0x02088D4C + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x13 + blo _02088D58 + bl sub_02020C2C +_02088D58: + mov r0, #0xc + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02088D64 ; =0x020FD8CA + ldrh r0, [r0, r1] + pop {r4, pc} + .balign 4 +_02088D64: .word 0x020FD8CA + + thumb_func_start sub_02088D68 +sub_02088D68: ; 0x02088D68 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x13 + blo _02088D74 + bl sub_02020C2C +_02088D74: + mov r0, #0xc + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02088D80 ; =0x020FD8C8 + ldrb r0, [r0, r1] + pop {r4, pc} + .balign 4 +_02088D80: .word 0x020FD8C8 + + thumb_func_start sub_02088D84 +sub_02088D84: ; 0x02088D84 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x13 + blo _02088D90 + bl sub_02020C2C +_02088D90: + mov r0, #0xc + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02088D9C ; =0x020FD8C9 + ldrb r0, [r0, r1] + pop {r4, pc} + .balign 4 +_02088D9C: .word 0x020FD8C9 + + thumb_func_start sub_02088DA0 +sub_02088DA0: ; 0x02088DA0 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x13 + blo _02088DAC + bl sub_02020C2C +_02088DAC: + mov r0, #0xc + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02088DB8 ; =0x020FD8CC + ldr r0, [r0, r1] + pop {r4, pc} + .balign 4 +_02088DB8: .word 0x020FD8CC + + thumb_func_start sub_02088DBC +sub_02088DBC: ; 0x02088DBC + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x13 + blo _02088DC8 + bl sub_02020C2C +_02088DC8: + mov r0, #0xc + add r1, r4, #0x0 + mul r1, r0 + ldr r0, _02088DD4 ; =0x020FD8D0 + ldr r0, [r0, r1] + pop {r4, pc} + .balign 4 +_02088DD4: .word 0x020FD8D0 + + thumb_func_start sub_02088DD8 +sub_02088DD8: ; 0x02088DD8 + push {r3, lr} + mov r1, #0x18 + bl sub_02016998 + add r3, r0, #0x0 + mov r2, #0x18 + mov r1, #0x0 +_02088DE6: + strb r1, [r3, #0x0] + add r3, r3, #0x1 + sub r2, r2, #0x1 + bne _02088DE6 + pop {r3, pc} + + thumb_func_start sub_02088DF0 +sub_02088DF0: ; 0x02088DF0 + ldr r3, _02088DF4 ; =sub_02016A18 + bx r3 + .balign 4 +_02088DF4: .word sub_02016A18 + 1 + + thumb_func_start sub_02088DF8 +sub_02088DF8: ; 0x02088DF8 + push {r3-r7, lr} + sub sp, #0x18 + str r1, [sp, #0x0] + mov r1, #0x5 + mov r2, #0x0 + add r5, r0, #0x0 + bl sub_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0xc] + add r0, r5, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + add r0, r5, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl sub_020671BC + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r4, #0x0 + str r0, [sp, #0x4] + add r7, r4, #0x0 + add r6, sp, #0x10 +_02088E34: + add r1, r4, #0x0 + add r0, r5, #0x0 + add r1, #0x36 + add r2, r7, #0x0 + bl sub_020671BC + lsl r1, r4, #0x1 + strh r0, [r6, r1] + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + blo _02088E34 + ldr r0, [sp, #0x0] + mov r1, #0x2c + bl sub_02016998 + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + mov r1, #0x2c + bl sub_02016998 + add r4, r0, #0x0 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x8] + add r2, r7, #0x0 + bl sub_02069F9C + mov r2, #0x0 + mov r12, r2 +_02088E70: + mov r0, r12 + lsl r0, r0, #0x1 + ldrh r5, [r7, r0] + ldr r6, _02088EF4 ; =0x0000FFFF + cmp r5, r6 + bne _02088E82 + lsl r0, r2, #0x1 + strh r6, [r4, r0] + b _02088EE8 +_02088E82: + mov r1, #0xfe + lsl r1, r1, #0x8 + and r1, r5 + asr r3, r1, #0x9 + ldr r1, [sp, #0x4] + cmp r3, r1 + bgt _02088EDA + lsr r1, r6, #0x7 + and r1, r5 + strh r1, [r7, r0] + ldrh r3, [r7, r0] + mov r1, #0x0 + add r6, sp, #0x10 +_02088E9C: + lsl r5, r1, #0x1 + ldrh r5, [r6, r5] + cmp r3, r5 + beq _02088EAE + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #0x4 + blo _02088E9C +_02088EAE: + cmp r1, #0x4 + bne _02088EDA + mov r1, #0x0 + cmp r2, #0x0 + bls _02088ECA +_02088EB8: + lsl r5, r1, #0x1 + ldrh r5, [r4, r5] + cmp r5, r3 + beq _02088ECA + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, r2 + blo _02088EB8 +_02088ECA: + cmp r1, r2 + bne _02088EDA + ldrh r1, [r7, r0] + lsl r0, r2, #0x1 + strh r1, [r4, r0] + add r0, r2, #0x1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 +_02088EDA: + mov r0, r12 + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r12, r0 + cmp r0, #0x16 + blo _02088E70 +_02088EE8: + add r0, r7, #0x0 + bl sub_02016A18 + add r0, r4, #0x0 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_02088EF4: .word 0x0000FFFF + + thumb_func_start sub_02088EF8 +sub_02088EF8: ; 0x02088EF8 + ldrh r1, [r0, #0x0] + ldr r0, _02088F08 ; =0x0000FFFF + cmp r1, r0 + beq _02088F04 + mov r0, #0x1 + bx lr +_02088F04: + mov r0, #0x0 + bx lr + .balign 4 +_02088F08: .word 0x0000FFFF + + thumb_func_start sub_02088F0C +sub_02088F0C: ; 0x02088F0C + push {r4-r6, lr} + add r5, r1, #0x0 + ldr r1, _02088F44 ; =0x0000195C + add r6, r0, #0x0 + bl sub_02016998 + add r4, r0, #0x0 + add r0, r6, #0x0 + str r5, [r4, #0x0] + bl sub_020139D8 + str r0, [r4, #0x4] + mov r3, #0x0 + ldr r0, _02088F48 ; =0x0000189E + add r2, r3, #0x0 +_02088F2A: + add r1, r4, r3 + add r3, r3, #0x1 + strb r2, [r1, r0] + cmp r3, #0xbb + blt _02088F2A + add r0, r4, #0x0 + bl sub_02088F60 + add r0, r4, #0x0 + bl sub_020891D0 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02088F44: .word 0x0000195C +_02088F48: .word 0x0000189E + + thumb_func_start sub_02088F4C +sub_02088F4C: ; 0x02088F4C + push {r4, lr} + add r4, r0, #0x0 + beq _02088F5E + ldr r0, [r4, #0x4] + bl sub_02013A10 + add r0, r4, #0x0 + bl sub_02016A18 +_02088F5E: + pop {r4, pc} + + thumb_func_start sub_02088F60 +sub_02088F60: ; 0x02088F60 + push {r4-r7, lr} + sub sp, #0xc + mov r4, #0x0 + str r0, [sp, #0x0] + add r7, r0, #0x0 + str r0, [sp, #0x8] + add r0, #0x68 + ldr r5, _02088F9C ; =0x020FE17C + str r4, [sp, #0x4] + str r0, [sp, #0x8] +_02088F74: + ldr r3, [sp, #0x8] + str r4, [r7, #0x38] + lsl r6, r4, #0x1 + add r3, r3, r6 + ldr r0, [sp, #0x0] + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + ldr r6, [r5, #0x0] + blx r6 + str r0, [r7, #0x8] + add r4, r4, r0 + ldr r0, [sp, #0x4] + add r7, r7, #0x4 + add r0, r0, #0x1 + add r5, #0xc + str r0, [sp, #0x4] + cmp r0, #0xc + blt _02088F74 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02088F9C: .word 0x020FE17C + + thumb_func_start sub_02088FA0 +sub_02088FA0: ; 0x02088FA0 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + ldr r0, [r0, #0x0] + str r2, [sp, #0x4] + add r5, r1, #0x0 + add r4, r3, #0x0 + mov r6, #0x0 + bl sub_02085418 + str r0, [sp, #0x8] + ldr r0, [sp, #0x4] + add r7, r6, #0x0 + cmp r0, #0x0 + bls _02088FF6 +_02088FBE: + ldrh r1, [r5, #0x0] + ldr r0, [sp, #0x8] + bl sub_020245F0 + cmp r0, #0x0 + beq _02088FEC + ldrh r3, [r5, #0x0] + ldr r0, [sp, #0x0] + mov r2, #0x7 + lsr r1, r3, #0x3 + add r1, r0, r1 + ldr r0, _02088FFC ; =0x0000189E + and r3, r2 + mov r2, #0x1 + ldrb r0, [r1, r0] + lsl r2, r3 + orr r2, r0 + ldr r0, _02088FFC ; =0x0000189E + add r6, r6, #0x1 + strb r2, [r1, r0] + ldrh r0, [r5, #0x0] + strh r0, [r4, #0x0] + add r4, r4, #0x2 +_02088FEC: + ldr r0, [sp, #0x4] + add r7, r7, #0x1 + add r5, r5, #0x2 + cmp r7, r0 + blo _02088FBE +_02088FF6: + add r0, r6, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02088FFC: .word 0x0000189E + + thumb_func_start sub_02089000 +sub_02089000: ; 0x02089000 + push {r3-r7, lr} + str r0, [sp, #0x0] + ldr r0, [r0, #0x0] + add r5, r1, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + bl sub_02085420 + cmp r0, #0x0 + beq _02089046 + mov r2, #0x0 + cmp r7, #0x0 + bls _02089042 +_0208901A: + ldrh r6, [r5, #0x0] + ldr r0, [sp, #0x0] + mov r3, #0x7 + lsr r1, r6, #0x3 + add r1, r0, r1 + ldr r0, _0208904C ; =0x0000189E + and r6, r3 + mov r3, #0x1 + ldrb r0, [r1, r0] + lsl r3, r6 + orr r3, r0 + ldr r0, _0208904C ; =0x0000189E + add r2, r2, #0x1 + strb r3, [r1, r0] + ldrh r0, [r5, #0x0] + add r5, r5, #0x2 + strh r0, [r4, #0x0] + add r4, r4, #0x2 + cmp r2, r7 + blo _0208901A +_02089042: + add r0, r7, #0x0 + pop {r3-r7, pc} +_02089046: + mov r0, #0x0 + pop {r3-r7, pc} + nop +_0208904C: .word 0x0000189E + + thumb_func_start sub_02089050 +sub_02089050: ; 0x02089050 + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x0] + ldr r0, [r0, #0x0] + add r5, r1, #0x0 + str r2, [sp, #0x4] + add r4, r3, #0x0 + bl sub_0208541C + str r0, [sp, #0xc] + ldr r0, _020890BC ; =0x00000189 + mov r1, #0x0 + bl sub_02013A9C + str r0, [sp, #0x8] + mov r7, #0x0 + ldr r0, [sp, #0x4] + add r6, r7, #0x0 + cmp r0, #0x0 + bls _020890B4 +_02089078: + ldrh r2, [r5, #0x0] + ldr r1, [sp, #0x8] + ldr r0, [sp, #0xc] + sub r1, r2, r1 + bl sub_02013B68 + cmp r0, #0x0 + beq _020890AA + ldrh r3, [r5, #0x0] + ldr r0, [sp, #0x0] + mov r2, #0x7 + lsr r1, r3, #0x3 + add r1, r0, r1 + ldr r0, _020890C0 ; =0x0000189E + and r3, r2 + mov r2, #0x1 + ldrb r0, [r1, r0] + lsl r2, r3 + orr r2, r0 + ldr r0, _020890C0 ; =0x0000189E + add r6, r6, #0x1 + strb r2, [r1, r0] + ldrh r0, [r5, #0x0] + strh r0, [r4, #0x0] + add r4, r4, #0x2 +_020890AA: + ldr r0, [sp, #0x4] + add r7, r7, #0x1 + add r5, r5, #0x2 + cmp r7, r0 + blo _02089078 +_020890B4: + add r0, r6, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + nop +_020890BC: .word 0x00000189 +_020890C0: .word 0x0000189E + + thumb_func_start sub_020890C4 +sub_020890C4: ; 0x020890C4 + push {r4-r7, lr} + sub sp, #0x14 + str r0, [sp, #0x0] + ldr r0, [r0, #0x0] + add r5, r1, #0x0 + str r2, [sp, #0x4] + add r4, r3, #0x0 + bl sub_0208541C + str r0, [sp, #0x10] + ldr r0, _02089144 ; =0x00000186 + mov r1, #0x0 + bl sub_02013A9C + add r6, r0, #0x0 + add r0, r6, #0x5 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0xc] + mov r7, #0x0 + ldr r0, [sp, #0x4] + str r7, [sp, #0x8] + cmp r0, #0x0 + bls _0208913C +_020890F4: + ldrh r1, [r5, #0x0] + cmp r1, r6 + blo _0208910C + ldr r0, [sp, #0xc] + cmp r1, r0 + bhi _0208910C + ldr r0, [sp, #0x10] + sub r1, r1, r6 + bl sub_02013C0C + cmp r0, #0x0 + beq _0208912E +_0208910C: + ldrh r3, [r5, #0x0] + ldr r0, [sp, #0x0] + mov r2, #0x7 + lsr r1, r3, #0x3 + add r1, r0, r1 + ldr r0, _02089148 ; =0x0000189E + and r3, r2 + mov r2, #0x1 + ldrb r0, [r1, r0] + lsl r2, r3 + orr r2, r0 + ldr r0, _02089148 ; =0x0000189E + add r7, r7, #0x1 + strb r2, [r1, r0] + ldrh r0, [r5, #0x0] + strh r0, [r4, #0x0] + add r4, r4, #0x2 +_0208912E: + ldr r0, [sp, #0x8] + add r5, r5, #0x2 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x8] + cmp r1, r0 + blo _020890F4 +_0208913C: + add r0, r7, #0x0 + add sp, #0x14 + pop {r4-r7, pc} + nop +_02089144: .word 0x00000186 +_02089148: .word 0x0000189E + + thumb_func_start sub_0208914C +sub_0208914C: ; 0x0208914C + push {r3-r7, lr} + add r6, r0, #0x0 + mov r0, #0x0 + mov lr, r2 + mov r12, r0 + mov r0, lr + add r4, r1, #0x0 + add r7, r3, #0x0 + cmp r0, #0x0 + bls _020891C2 +_02089160: + ldrh r2, [r4, #0x0] + ldr r0, _020891C8 ; =0x0000FFFE + cmp r2, r0 + bne _02089196 + add r0, r4, #0x2 + add r4, r4, #0x4 + ldrh r2, [r0, #0x0] + ldrh r0, [r4, #0x0] + cmp r2, #0x0 + strh r0, [r7, #0x0] + beq _020891B6 +_02089176: + ldrh r5, [r4, #0x0] + mov r3, #0x7 + add r4, r4, #0x2 + lsr r0, r5, #0x3 + add r1, r6, r0 + ldr r0, _020891CC ; =0x0000189E + and r5, r3 + mov r3, #0x1 + ldrb r0, [r1, r0] + lsl r3, r5 + orr r3, r0 + ldr r0, _020891CC ; =0x0000189E + sub r2, r2, #0x1 + strb r3, [r1, r0] + bne _02089176 + b _020891B6 +_02089196: + lsr r0, r2, #0x3 + ldr r1, _020891CC ; =0x0000189E + add r0, r6, r0 + ldrb r3, [r0, r1] + mov r1, #0x7 + mov r5, #0x1 + and r1, r2 + add r2, r5, #0x0 + lsl r2, r1 + ldr r1, _020891CC ; =0x0000189E + orr r2, r3 + strb r2, [r0, r1] + ldrh r0, [r4, #0x0] + add r4, r4, #0x2 + strh r0, [r7, #0x0] + add r7, r7, #0x2 +_020891B6: + mov r0, r12 + add r1, r0, #0x1 + mov r0, lr + mov r12, r1 + cmp r1, r0 + blo _02089160 +_020891C2: + mov r0, lr + pop {r3-r7, pc} + nop +_020891C8: .word 0x0000FFFE +_020891CC: .word 0x0000189E + + thumb_func_start sub_020891D0 +sub_020891D0: ; 0x020891D0 + push {r3-r7, lr} + add r7, r0, #0x0 + mov r4, #0x0 + ldr r6, _0208920C ; =0x020FDDF0 + str r4, [sp, #0x0] + add r5, r7, #0x0 +_020891DC: + ldr r0, _02089210 ; =0x00000C84 + mov r2, #0xcf + str r4, [r5, r0] + lsl r2, r2, #0x4 + ldr r1, [r6, #0x0] + add r0, r7, #0x0 + add r2, r7, r2 + add r3, r4, #0x0 + bl sub_02089218 + ldr r1, _02089214 ; =0x00000C18 + add r6, r6, #0x4 + str r0, [r5, r1] + add r0, r1, #0x0 + ldr r0, [r5, r0] + add r5, r5, #0x4 + add r4, r4, r0 + ldr r0, [sp, #0x0] + add r0, r0, #0x1 + str r0, [sp, #0x0] + cmp r0, #0x1b + blo _020891DC + pop {r3-r7, pc} + nop +_0208920C: .word 0x020FDDF0 +_02089210: .word 0x00000C84 +_02089214: .word 0x00000C18 + + thumb_func_start sub_02089218 +sub_02089218: ; 0x02089218 + push {r3-r7, lr} + add r7, r1, #0x0 + add r6, r0, #0x0 + str r2, [sp, #0x0] + mov r0, #0x0 + mov r12, r0 + ldrh r2, [r7, #0x0] + ldr r0, _020892B8 ; =0x0000FFFF + mov lr, r3 + cmp r2, r0 + beq _020892B4 +_0208922E: + ldr r0, _020892BC ; =0x0000FFFE + cmp r2, r0 + bne _02089280 + add r0, r7, #0x2 + ldrh r5, [r0, #0x0] + add r7, r7, #0x4 + mov r3, #0x0 + cmp r5, #0x0 + bls _0208927A + add r4, r7, #0x0 +_02089242: + ldrh r2, [r4, #0x0] + mov r0, #0x7 + mov r1, #0x1 + and r0, r2 + lsl r1, r0 + lsr r0, r2, #0x3 + add r2, r6, r0 + ldr r0, _020892C0 ; =0x0000189E + ldrb r0, [r2, r0] + tst r0, r1 + beq _02089272 + lsl r0, r3, #0x1 + ldrh r1, [r7, r0] + mov r0, lr + lsl r2, r0, #0x1 + mov r0, lr + add r0, r0, #0x1 + mov lr, r0 + ldr r0, [sp, #0x0] + strh r1, [r0, r2] + mov r0, r12 + add r0, r0, #0x1 + mov r12, r0 + b _0208927A +_02089272: + add r3, r3, #0x1 + add r4, r4, #0x2 + cmp r3, r5 + blo _02089242 +_0208927A: + lsl r0, r5, #0x1 + add r7, r7, r0 + b _020892AC +_02089280: + mov r1, #0x1 + mov r0, #0x7 + and r0, r2 + add r3, r1, #0x0 + lsl r3, r0 + lsr r0, r2, #0x3 + add r1, r6, r0 + ldr r0, _020892C0 ; =0x0000189E + ldrb r0, [r1, r0] + tst r0, r3 + beq _020892AA + mov r1, lr + add r1, r1, #0x1 + mov r0, lr + mov lr, r1 + ldr r1, [sp, #0x0] + lsl r0, r0, #0x1 + strh r2, [r1, r0] + mov r0, r12 + add r0, r0, #0x1 + mov r12, r0 +_020892AA: + add r7, r7, #0x2 +_020892AC: + ldrh r2, [r7, #0x0] + ldr r0, _020892B8 ; =0x0000FFFF + cmp r2, r0 + bne _0208922E +_020892B4: + mov r0, r12 + pop {r3-r7, pc} + .balign 4 +_020892B8: .word 0x0000FFFF +_020892BC: .word 0x0000FFFE +_020892C0: .word 0x0000189E + + thumb_func_start sub_020892C4 +sub_020892C4: ; 0x020892C4 + lsl r1, r1, #0x2 + add r0, r0, r1 + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start sub_020892CC +sub_020892CC: ; 0x020892CC + push {r4, lr} + add r4, r0, #0x0 + lsl r1, r1, #0x2 + add r1, r4, r1 + ldr r1, [r1, #0x38] + ldr r0, [r4, #0x4] + add r1, r1, r2 + lsl r1, r1, #0x1 + add r1, r4, r1 + add r1, #0x68 + ldrh r1, [r1, #0x0] + add r2, r3, #0x0 + bl sub_02013A30 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_020892EC +sub_020892EC: ; 0x020892EC + lsl r1, r1, #0x2 + add r1, r0, r1 + ldr r1, [r1, #0x38] + add r1, r1, r2 + lsl r1, r1, #0x1 + add r0, r0, r1 + add r0, #0x68 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start sub_02089300 +sub_02089300: ; 0x02089300 + lsl r1, r1, #0x2 + add r1, r0, r1 + ldr r0, _0208930C ; =0x00000C18 + ldr r0, [r1, r0] + bx lr + nop +_0208930C: .word 0x00000C18 + + thumb_func_start sub_02089310 +sub_02089310: ; 0x02089310 + push {r4-r6, lr} + add r4, r3, #0x0 + add r5, r0, #0x0 + lsl r3, r1, #0x2 + add r6, r5, r3 + ldr r3, _02089334 ; =0x00000C18 + ldr r3, [r6, r3] + cmp r3, #0x0 + beq _02089330 + bl sub_02089338 + add r1, r0, #0x0 + ldr r0, [r5, #0x4] + add r2, r4, #0x0 + bl sub_02013A30 +_02089330: + pop {r4-r6, pc} + nop +_02089334: .word 0x00000C18 + + thumb_func_start sub_02089338 +sub_02089338: ; 0x02089338 + push {r3-r4} + lsl r1, r1, #0x2 + ldr r3, _02089360 ; =0x00000C18 + add r4, r0, r1 + ldr r1, [r4, r3] + cmp r1, #0x0 + beq _0208935A + add r1, r3, #0x0 + add r1, #0x6c + ldr r1, [r4, r1] + add r3, #0xd8 + add r1, r2, r1 + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, r3] + pop {r3-r4} + bx lr +_0208935A: + ldr r0, _02089364 ; =0x0000FFFF + pop {r3-r4} + bx lr + .balign 4 +_02089360: .word 0x00000C18 +_02089364: .word 0x0000FFFF + + thumb_func_start sub_02089368 +sub_02089368: ; 0x02089368 + push {r3-r6} + mov r1, #0x0 + ldr r2, _0208938C ; =0x020FF2FC + ldr r5, _02089390 ; =0x020FE17C + add r0, r1, #0x0 + mov r3, #0xc +_02089374: + ldrb r4, [r2, #0x0] + add r1, r1, #0x1 + add r2, r2, #0x1 + add r6, r4, #0x0 + mul r6, r3 + add r4, r5, r6 + ldr r4, [r4, #0x8] + add r0, r0, r4 + cmp r1, #0x5 + blo _02089374 + pop {r3-r6} + bx lr + .balign 4 +_0208938C: .word 0x020FF2FC +_02089390: .word 0x020FE17C + + thumb_func_start sub_02089394 +sub_02089394: ; 0x02089394 + push {r4-r7} + mov r2, #0x0 + ldr r3, _020893D8 ; =0x020FF2FC + add r1, r2, #0x0 +_0208939C: + ldrb r5, [r3, #0x0] + mov r4, #0xc + add r6, r5, #0x0 + mul r6, r4 + ldr r4, _020893DC ; =0x020FE17C + add r5, r4, r6 + ldr r7, [r5, #0x8] + mov r6, #0x0 + ldr r4, [r5, #0x4] + cmp r7, #0x0 + ble _020893C8 +_020893B2: + ldrh r5, [r4, #0x0] + cmp r0, r5 + bne _020893BE + add r0, r2, #0x0 + pop {r4-r7} + bx lr +_020893BE: + add r6, r6, #0x1 + add r2, r2, #0x1 + add r4, r4, #0x2 + cmp r6, r7 + blt _020893B2 +_020893C8: + add r1, r1, #0x1 + add r3, r3, #0x1 + cmp r1, #0x5 + blo _0208939C + mov r0, #0x0 + mvn r0, r0 + pop {r4-r7} + bx lr + .balign 4 +_020893D8: .word 0x020FF2FC +_020893DC: .word 0x020FE17C + + thumb_func_start sub_020893E0 +sub_020893E0: ; 0x020893E0 + mov r1, #0x0 + ldr r0, _020893EC ; =0x02106154 + mvn r1, r1 + str r1, [r0, #0x0] + bx lr + nop +_020893EC: .word 0x02106154 + + thumb_func_start sub_020893F0 +sub_020893F0: ; 0x020893F0 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x3 + lsl r0, r0, #0xc + cmp r2, r0 + bhs _0208940A + add r0, r1, #0x0 + ldr r1, _02089410 ; =0x021C5C58 + blx sub_020CE210 + ldr r0, _02089414 ; =0x02106154 + str r4, [r0, #0x0] + pop {r4, pc} +_0208940A: + bl sub_02020C2C + pop {r4, pc} + .balign 4 +_02089410: .word 0x021C5C58 +_02089414: .word 0x02106154 + + thumb_func_start sub_02089418 +sub_02089418: ; 0x02089418 + push {r3, lr} + mov r3, #0x3 + lsl r3, r3, #0xc + cmp r2, r3 + bhs _02089434 + ldr r3, _0208943C ; =0x02106154 + ldr r3, [r3, #0x0] + cmp r0, r3 + bne _02089438 + ldr r0, _02089440 ; =0x021C5C58 + blx sub_020CE210 + mov r0, #0x1 + pop {r3, pc} +_02089434: + bl sub_02020C2C +_02089438: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0208943C: .word 0x02106154 +_02089440: .word 0x021C5C58 + + thumb_func_start sub_02089444 +sub_02089444: ; 0x02089444 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x3 + lsl r0, r0, #0xc + cmp r2, r0 + bhs _0208945E + add r0, r1, #0x0 + ldr r1, _02089464 ; =0x021C5C58 + blx sub_020CE28C + ldr r0, _02089468 ; =0x02106154 + str r4, [r0, #0x0] + pop {r4, pc} +_0208945E: + bl sub_02020C2C + pop {r4, pc} + .balign 4 +_02089464: .word 0x021C5C58 +_02089468: .word 0x02106154 + + thumb_func_start sub_0208946C +sub_0208946C: ; 0x0208946C + push {r3, lr} + mov r3, #0x3 + lsl r3, r3, #0xc + cmp r2, r3 + bhs _02089488 + ldr r3, _02089490 ; =0x02106154 + ldr r3, [r3, #0x0] + cmp r0, r3 + bne _0208948C + ldr r0, _02089494 ; =0x021C5C58 + blx sub_020CE28C + mov r0, #0x1 + pop {r3, pc} +_02089488: + bl sub_02020C2C +_0208948C: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_02089490: .word 0x02106154 +_02089494: .word 0x021C5C58 + + thumb_func_start sub_02089498 +sub_02089498: ; 0x02089498 + push {r3-r5, lr} + mov r2, #0x2 + add r5, r0, #0x0 + mov r0, #0x3 + mov r1, #0x58 + lsl r2, r2, #0x10 + bl sub_0201681C + add r0, r5, #0x0 + mov r1, #0x38 + mov r2, #0x58 + bl sub_02006268 + mov r1, #0x0 + mov r2, #0x38 + add r4, r0, #0x0 + blx sub_020DF4A4 + mov r0, #0x58 + str r0, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + add r0, r5, #0x0 + bl sub_0200628C + ldr r0, [r0, #0x8] + str r0, [r4, #0x30] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_020894D4 +sub_020894D4: ; 0x020894D4 + push {r3-r6, lr} + sub sp, #0xc + add r5, r1, #0x0 + bl sub_02006278 + ldr r1, [r5, #0x0] + add r4, r0, #0x0 + mov r6, #0x0 + cmp r1, #0x3 + bhi _020895DA + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r6, r0, #0 + lsl r2, r2, #0x2 + lsl r0, r4, #0x2 + lsl r6, r0, #0x3 + ldr r0, _020895E0 ; =0x00000495 + add r1, r6, #0x0 + bl sub_02005350 + add r0, r6, #0x0 + bl sub_0200516C + add r0, r6, #0x0 + bl sub_0200415C + add r0, r6, #0x0 + add r1, r0, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + add r1, r6, #0x0 + bl sub_0200E3A0 + add r0, r6, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + add r0, r6, #0x0 + add r1, r0, #0x0 + bl sub_02015F34 + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _020895E4 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _020895E8 ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + add r0, r4, #0x0 + bl sub_0208961C + add r0, r4, #0x0 + bl sub_02089734 + ldr r0, _020895EC ; =sub_02089610 + add r1, r4, #0x0 + bl sub_02015F10 + bl sub_0201E788 + mov r0, #0x6 + mov r1, #0x1 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + ldr r0, [r4, #0x0] + add r2, r1, #0x0 + str r0, [sp, #0x8] + add r0, r6, #0x0 + add r3, r0, #0x0 + bl sub_0200E1D0 + mov r0, #0x1 + str r0, [r5, #0x0] + b _020895DA +_02089588: + .byte 0x84, 0xF7, 0xBE, 0xFE, 0x01, 0x28, 0x24, 0xD1 + .byte 0x02, 0x20, 0x28, 0x60, 0x21, 0xE0, 0x00, 0xF0, 0xFB, 0xF8, 0x01, 0x28, 0x1D, 0xD1, 0x06, 0x20 + .byte 0x00, 0x90, 0x01, 0x20, 0x01, 0x90, 0x20, 0x68, 0x02, 0x90, 0x30, 0x1C, 0x01, 0x1C, 0x02, 0x1C + .byte 0x03, 0x1C, 0x84, 0xF7, 0x0D, 0xFE, 0x03, 0x20, 0x28, 0x60, 0x0E, 0xE0, 0x84, 0xF7, 0xA4, 0xFE + .byte 0x01, 0x28, 0x0A, 0xD1, 0x20, 0x1C, 0x00, 0xF0, 0xD9, 0xF8, 0x20, 0x1C, 0x00, 0xF0, 0x88, 0xF8 + .byte 0x30, 0x1C, 0x01, 0x1C, 0x8C, 0xF7, 0x9C, 0xFC, 0x01, 0x26 +_020895DA: + add r0, r6, #0x0 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 +_020895E0: .word 0x00000495 +_020895E4: .word 0xFFFFE0FF +_020895E8: .word 0x04001000 +_020895EC: .word sub_02089610 + 1 + + thumb_func_start sub_020895F0 +sub_020895F0: ; 0x020895F0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02006278 + ldr r4, [r0, #0x0] + add r0, r5, #0x0 + bl sub_0200627C + add r0, r4, #0x0 + bl sub_020168D0 + mov r0, #0x0 + blx sub_020CD3B4 + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start sub_02089610 +sub_02089610: ; 0x02089610 + ldr r3, _02089618 ; =sub_0201AB60 + ldr r0, [r0, #0x14] + bx r3 + nop +_02089618: .word sub_0201AB60 + 1 + + thumb_func_start sub_0208961C +sub_0208961C: ; 0x0208961C + push {r4-r5, lr} + sub sp, #0x5c + ldr r5, _020896C8 ; =0x020FF340 + add r4, r0, #0x0 + add r3, sp, #0x34 + mov r2, #0x5 +_02089628: + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02089628 + add r0, sp, #0x34 + bl sub_0201E66C + ldr r0, [r4, #0x0] + bl sub_02016B94 + add r3, sp, #0x24 + ldr r5, _020896CC ; =0x020FF314 + str r0, [r4, #0x14] + add r2, r3, #0x0 + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + bl sub_02016BBC + ldr r5, _020896D0 ; =0x020FF324 + add r3, sp, #0x8 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x0 + str r0, [r3, #0x0] + ldr r0, [r4, #0x14] + add r3, r1, #0x0 + bl sub_02016C18 + ldr r0, [r4, #0x14] + mov r1, #0x0 + bl sub_02018744 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r2, _020896D4 ; =0x000001E2 + str r0, [sp, #0x4] + ldr r0, [r4, #0x14] + mov r3, #0x2 + bl sub_0200CD68 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r2, _020896D8 ; =0x000001D9 + str r0, [sp, #0x4] + ldr r0, [r4, #0x14] + mov r3, #0x3 + bl sub_0200CB00 + ldr r2, [r4, #0x0] + mov r0, #0x0 + mov r1, #0x20 + bl sub_02002ED0 + mov r0, #0x0 + ldr r3, [r4, #0x0] + mov r1, #0x20 + add r2, r0, #0x0 + bl sub_02017F18 + ldr r1, _020896DC ; =0x00006C21 + mov r0, #0x0 + bl sub_02017FE4 + ldr r1, _020896DC ; =0x00006C21 + mov r0, #0x4 + bl sub_02017FE4 + add sp, #0x5c + pop {r4-r5, pc} + .balign 4 +_020896C8: .word 0x020FF340 +_020896CC: .word 0x020FF314 +_020896D0: .word 0x020FF324 +_020896D4: .word 0x000001E2 +_020896D8: .word 0x000001D9 +_020896DC: .word 0x00006C21 + + thumb_func_start sub_020896E0 +sub_020896E0: ; 0x020896E0 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0201797C + mov r0, #0x1 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x2 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x3 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x4 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x5 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x6 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x7 + mov r1, #0x0 + bl sub_0201797C + ldr r0, [r4, #0x14] + mov r1, #0x0 + bl sub_020178A0 + ldr r0, [r4, #0x14] + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02089734 +sub_02089734: ; 0x02089734 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + ldr r3, [r4, #0x0] + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0x4 + bl sub_0200A86C + str r0, [r4, #0x18] + bl sub_0201BD5C + mov r0, #0x0 + str r0, [r4, #0x8] + add r1, r4, #0x0 + ldr r0, [r4, #0x14] + ldr r2, _02089778 ; =0x020FF304 + add r1, #0x1c + bl sub_02019150 + mov r0, #0xd8 + str r0, [sp, #0x0] + mov r0, #0x20 + mov r2, #0x0 + add r4, #0x1c + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0xf + add r3, r2, #0x0 + bl sub_020196F4 + add sp, #0x8 + pop {r4, pc} + nop +_02089778: .word 0x020FF304 + + thumb_func_start sub_0208977C +sub_0208977C: ; 0x0208977C + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x1c + bl sub_02019178 + ldr r0, [r4, #0x18] + bl sub_0200A8B8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02089790 +sub_02089790: ; 0x02089790 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + mov r5, #0x0 + cmp r1, #0x6 + bhi _02089888 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r4, r1, #0 + lsl r6, r6, #0 + lsl r6, r2, #0x1 + lsl r0, r0, #0x2 + lsl r0, r4, #0x2 + lsl r0, r0, #0x3 + lsl r2, r2, #0x3 + add r1, r5, #0x0 + mov r2, #0x1 + mov r3, #0x4 + bl sub_0208989C + cmp r0, #0x1 + bne _02089888 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r1, _02089890 ; =0x020FF30C + str r0, [sp, #0x4] + ldr r0, [r4, #0x14] + ldr r2, _02089894 ; =0x000001D9 + mov r3, #0x3 + bl sub_020020EC + str r0, [r4, #0x2c] + mov r0, #0x1 + str r0, [r4, #0x4] + b _02089888 +_020897E2: + .byte 0xE0, 0x6A, 0x21, 0x68, 0x78, 0xF7, 0xE1, 0xFC, 0x00, 0x28, 0x03, 0xD0, 0xA9, 0x1E + .byte 0x88, 0x42, 0x03, 0xD0, 0x48, 0xE0, 0x02, 0x20, 0x60, 0x60, 0x45, 0xE0, 0x06, 0x20, 0x60, 0x60 + .byte 0x42, 0xE0, 0x01, 0x21, 0x0A, 0x1C, 0x04, 0x23, 0x00, 0xF0, 0x48, 0xF8, 0x01, 0x28, 0x3B, 0xD1 + .byte 0x01, 0x20, 0x00, 0x90, 0x20, 0x68, 0x1E, 0x49, 0x01, 0x90, 0x60, 0x69, 0x1D, 0x4A, 0x03, 0x23 + .byte 0x78, 0xF7, 0x64, 0xFC, 0xE0, 0x62, 0x03, 0x20, 0x60, 0x60, 0x2D, 0xE0, 0xE0, 0x6A, 0x21, 0x68 + .byte 0x78, 0xF7, 0xBC, 0xFC, 0x00, 0x28, 0x03, 0xD0, 0xA9, 0x1E, 0x88, 0x42, 0x03, 0xD0, 0x23, 0xE0 + .byte 0x04, 0x20, 0x60, 0x60, 0x20, 0xE0, 0x06, 0x20, 0x60, 0x60, 0x1D, 0xE0, 0x02, 0x21, 0x01, 0x22 + .byte 0x2B, 0x1C, 0x00, 0xF0, 0x23, 0xF8, 0x01, 0x28, 0x16, 0xD1, 0x20, 0x1C, 0x0E, 0x49, 0x1C, 0x30 + .byte 0x83, 0xF7, 0xFA, 0xFF, 0x60, 0x63, 0x05, 0x20, 0x60, 0x60, 0x0D, 0xE0, 0x20, 0x6B, 0x98, 0xF7 + .byte 0xE5, 0xFE, 0x60, 0x6B, 0x84, 0xF7, 0xC2, 0xF9, 0x06, 0x20, 0x60, 0x60, 0x04, 0xE0, 0x60, 0x69 + .byte 0x29, 0x1C, 0x8E, 0xF7, 0x5F, 0xFF, 0x01, 0x25 +_02089888: + add r0, r5, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + nop +_02089890: .word 0x020FF30C +_02089894: .word 0x000001D9 +_02089898: + .byte 0xE2, 0x01, 0x00, 0x00 + + thumb_func_start sub_0208989C +sub_0208989C: ; 0x0208989C + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + ldr r0, [r5, #0x8] + add r7, r1, #0x0 + add r4, r3, #0x0 + mov r6, #0x0 + cmp r0, #0x0 + beq _020898B8 + cmp r0, #0x1 + beq _02089920 + cmp r0, #0x2 + beq _0208993C + b _02089950 +_020898B8: + mov r0, #0xd8 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r0, #0x1c + mov r1, #0xf + add r2, r6, #0x0 + add r3, r6, #0x0 + bl sub_020196F4 + add r0, r5, #0x0 + ldr r2, _02089958 ; =0x000001E2 + add r0, #0x1c + add r1, r6, #0x0 + mov r3, #0x2 + bl sub_0200D0BC + mov r0, #0x1 + ldr r1, [r5, #0x0] + lsl r0, r0, #0xa + bl sub_020219F4 + str r0, [r5, #0x10] + ldr r0, [r5, #0x18] + ldr r2, [r5, #0x10] + add r1, r7, #0x0 + bl sub_0200A8E0 + add r3, r6, #0x0 + str r3, [sp, #0x0] + str r4, [sp, #0x4] + str r3, [sp, #0x8] + add r0, r5, #0x0 + ldr r2, [r5, #0x10] + add r0, #0x1c + mov r1, #0x1 + bl sub_0201BD84 + str r0, [r5, #0xc] + cmp r4, #0x0 + bne _02089918 + ldr r0, [r5, #0x10] + bl sub_02021A20 + ldr r0, [r5, #0x8] + add r0, r0, #0x1 + str r0, [r5, #0x8] +_02089918: + ldr r0, [r5, #0x8] + add r0, r0, #0x1 + str r0, [r5, #0x8] + b _02089950 +_02089920: + ldr r0, [r5, #0xc] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_0201BD70 + cmp r0, #0x0 + bne _02089950 + ldr r0, [r5, #0x10] + bl sub_02021A20 + ldr r0, [r5, #0x8] + add r0, r0, #0x1 + str r0, [r5, #0x8] + b _02089950 +_0208993C: + cmp r2, #0x0 + bne _0208994A + ldr r0, _0208995C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x1 + tst r0, r1 + beq _02089950 +_0208994A: + mov r0, #0x0 + str r0, [r5, #0x8] + mov r6, #0x1 +_02089950: + add r0, r6, #0x0 + add sp, #0xc + pop {r4-r7, pc} + nop +_02089958: .word 0x000001E2 +_0208995C: .word 0x021C48B8 + + thumb_func_start sub_02089960 +sub_02089960: ; 0x02089960 + push {r3-r5, lr} + mov r2, #0x2 + add r5, r0, #0x0 + mov r0, #0x3 + mov r1, #0x58 + lsl r2, r2, #0x10 + bl sub_0201681C + add r0, r5, #0x0 + mov r1, #0x3c + mov r2, #0x58 + bl sub_02006268 + mov r1, #0x0 + mov r2, #0x3c + add r4, r0, #0x0 + blx sub_020DF4A4 + mov r0, #0x58 + str r0, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + add r0, r5, #0x0 + bl sub_0200628C + ldr r0, [r0, #0x8] + str r0, [r4, #0x34] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0208999C +sub_0208999C: ; 0x0208999C + push {r4-r6, lr} + add r5, r1, #0x0 + bl sub_02006278 + ldr r1, [r5, #0x0] + add r6, r0, #0x0 + mov r4, #0x0 + cmp r1, #0x0 + beq _020899B8 + cmp r1, #0x1 + beq _02089A12 + cmp r1, #0x2 + beq _02089A20 + b _02089A34 +_020899B8: + add r0, r4, #0x0 + add r1, r4, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + add r1, r4, #0x0 + bl sub_0200E3A0 + add r0, r4, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + add r0, r4, #0x0 + add r1, r0, #0x0 + bl sub_02015F34 + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02089A38 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _02089A3C ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + add r0, r6, #0x0 + bl sub_02089A6C + add r0, r6, #0x0 + bl sub_02089B80 + bl sub_0201E788 + mov r0, #0x1 + str r0, [r5, #0x0] + b _02089A34 +_02089A12: + bl sub_02089BE0 + cmp r0, #0x1 + bne _02089A34 + mov r0, #0x2 + str r0, [r5, #0x0] + b _02089A34 +_02089A20: + bl sub_02089BCC + add r0, r6, #0x0 + bl sub_02089B2C + add r0, r4, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + mov r4, #0x1 +_02089A34: + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02089A38: .word 0xFFFFE0FF +_02089A3C: .word 0x04001000 + + thumb_func_start sub_02089A40 +sub_02089A40: ; 0x02089A40 + push {r3-r5, lr} + add r5, r0, #0x0 + bl sub_02006278 + ldr r4, [r0, #0x0] + add r0, r5, #0x0 + bl sub_0200627C + add r0, r4, #0x0 + bl sub_020168D0 + ldr r0, _02089A64 ; =0x00000053 + ldr r1, _02089A68 ; =0x0223A360 + bl sub_02000E7C + mov r0, #0x1 + pop {r3-r5, pc} + nop +_02089A64: .word 0x00000053 +_02089A68: .word 0x0223A360 + + thumb_func_start sub_02089A6C +sub_02089A6C: ; 0x02089A6C + push {r4-r5, lr} + sub sp, #0x5c + ldr r5, _02089B18 ; =0x020FF3AC + add r4, r0, #0x0 + add r3, sp, #0x34 + mov r2, #0x5 +_02089A78: + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02089A78 + add r0, sp, #0x34 + bl sub_0201E66C + ldr r0, [r4, #0x0] + bl sub_02016B94 + add r3, sp, #0x24 + ldr r5, _02089B1C ; =0x020FF380 + str r0, [r4, #0x18] + add r2, r3, #0x0 + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r2, #0x0 + bl sub_02016BBC + ldr r5, _02089B20 ; =0x020FF390 + add r3, sp, #0x8 + ldmia r5!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r5, #0x0] + mov r1, #0x0 + str r0, [r3, #0x0] + ldr r0, [r4, #0x18] + add r3, r1, #0x0 + bl sub_02016C18 + ldr r0, [r4, #0x18] + mov r1, #0x0 + bl sub_02018744 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r2, _02089B24 ; =0x000001E2 + str r0, [sp, #0x4] + ldr r0, [r4, #0x18] + mov r3, #0x2 + bl sub_0200CD68 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r2, _02089B28 ; =0x000001D9 + str r0, [sp, #0x4] + ldr r0, [r4, #0x18] + mov r3, #0x3 + bl sub_0200CB00 + ldr r2, [r4, #0x0] + mov r0, #0x0 + mov r1, #0x20 + bl sub_02002ED0 + mov r0, #0x0 + ldr r3, [r4, #0x0] + mov r1, #0x20 + add r2, r0, #0x0 + bl sub_02017F18 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02017FE4 + mov r0, #0x4 + mov r1, #0x0 + bl sub_02017FE4 + add sp, #0x5c + pop {r4-r5, pc} + .balign 4 +_02089B18: .word 0x020FF3AC +_02089B1C: .word 0x020FF380 +_02089B20: .word 0x020FF390 +_02089B24: .word 0x000001E2 +_02089B28: .word 0x000001D9 + + thumb_func_start sub_02089B2C +sub_02089B2C: ; 0x02089B2C + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0201797C + mov r0, #0x1 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x2 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x3 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x4 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x5 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x6 + mov r1, #0x0 + bl sub_0201797C + mov r0, #0x7 + mov r1, #0x0 + bl sub_0201797C + ldr r0, [r4, #0x18] + mov r1, #0x0 + bl sub_020178A0 + ldr r0, [r4, #0x18] + bl sub_02016A18 + pop {r4, pc} + + thumb_func_start sub_02089B80 +sub_02089B80: ; 0x02089B80 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + ldr r2, _02089BC4 ; =0x00000167 + ldr r3, [r4, #0x0] + mov r0, #0x1 + mov r1, #0x1a + bl sub_0200A86C + str r0, [r4, #0x1c] + bl sub_0201BD5C + mov r0, #0x0 + str r0, [r4, #0xc] + add r1, r4, #0x0 + ldr r0, [r4, #0x18] + ldr r2, _02089BC8 ; =0x020FF378 + add r1, #0x20 + bl sub_02019150 + mov r0, #0xd8 + str r0, [sp, #0x0] + mov r0, #0x20 + mov r2, #0x0 + add r4, #0x20 + str r0, [sp, #0x4] + add r0, r4, #0x0 + mov r1, #0xf + add r3, r2, #0x0 + bl sub_020196F4 + add sp, #0x8 + pop {r4, pc} + nop +_02089BC4: .word 0x00000167 +_02089BC8: .word 0x020FF378 + + thumb_func_start sub_02089BCC +sub_02089BCC: ; 0x02089BCC + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x20 + bl sub_02019178 + ldr r0, [r4, #0x1c] + bl sub_0200A8B8 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_02089BE0 +sub_02089BE0: ; 0x02089BE0 + push {r4-r5, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + mov r5, #0x0 + cmp r1, #0x5 + bhi _02089CC2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r1, #0 + lsl r0, r0, #0x1 + lsl r4, r5, #0x1 + lsl r2, r7, #0x1 + lsl r6, r4, #0x2 + lsl r4, r0, #0x3 + ldr r0, [r4, #0x34] + bl sub_02022800 + cmp r0, #0x3 + bhi _02089CC2 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 + lsl r6, r0, #0 + lsl r6, r0, #0 + lsl r4, r1, #0 + lsl r6, r2, #0 + mov r0, #0x5 + str r0, [r4, #0x4] + b _02089CC2 +_02089C2A: + .byte 0x28, 0x1C, 0xA0, 0x60, 0x01, 0x20 + .byte 0x60, 0x60, 0x46, 0xE0, 0x01, 0x20, 0xA0, 0x60, 0x60, 0x60, 0x42, 0xE0, 0x22, 0x49, 0x28, 0x1C + .byte 0x8E, 0xF7, 0xD0, 0xF9, 0x20, 0x49, 0x04, 0x20, 0x8E, 0xF7, 0xCC, 0xF9, 0x06, 0x20, 0x01, 0x21 + .byte 0x00, 0x90, 0x01, 0x91, 0x20, 0x68, 0x0A, 0x1C, 0x02, 0x90, 0x28, 0x1C, 0x03, 0x1C, 0x84, 0xF7 + .byte 0xB7, 0xFA, 0x02, 0x20, 0x60, 0x60, 0x2C, 0xE0, 0x84, 0xF7, 0x4E, 0xFB, 0x01, 0x28, 0x28, 0xD1 + .byte 0x03, 0x20, 0x60, 0x60, 0x25, 0xE0, 0xA1, 0x68, 0x2A, 0x1C, 0x04, 0x23, 0x00, 0xF0, 0x26, 0xF8 + .byte 0x01, 0x28, 0x1E, 0xD1, 0x06, 0x20, 0x00, 0x90, 0x01, 0x20, 0x01, 0x90, 0x20, 0x68, 0x02, 0x90 + .byte 0x28, 0x1C, 0x01, 0x1C, 0x02, 0x1C, 0x03, 0x1C, 0x84, 0xF7, 0x9A, 0xFA, 0x04, 0x20, 0x60, 0x60 + .byte 0x0F, 0xE0, 0x84, 0xF7, 0x31, 0xFB, 0x01, 0x28, 0x0B, 0xD1, 0x28, 0x1C, 0x01, 0x1C, 0x8E, 0xF7 + .byte 0x99, 0xF9, 0x04, 0x20, 0x29, 0x1C, 0x8E, 0xF7, 0x95, 0xF9, 0x05, 0x20, 0x60, 0x60, 0x00, 0xE0 + .byte 0x01, 0x25 +_02089CC2: + add r0, r5, #0x0 + add sp, #0xc + pop {r4-r5, pc} +_02089CC8: + .byte 0x21, 0x6C, 0x00, 0x00 + + thumb_func_start sub_02089CCC +sub_02089CCC: ; 0x02089CCC + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r7, r1, #0x0 + add r4, r3, #0x0 + mov r6, #0x0 + cmp r0, #0x0 + beq _02089CE8 + cmp r0, #0x1 + beq _02089D50 + cmp r0, #0x2 + beq _02089D6C + b _02089D80 +_02089CE8: + mov r0, #0xd8 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r0, #0x20 + mov r1, #0xf + add r2, r6, #0x0 + add r3, r6, #0x0 + bl sub_020196F4 + add r0, r5, #0x0 + ldr r2, _02089D88 ; =0x000001E2 + add r0, #0x20 + add r1, r6, #0x0 + mov r3, #0x2 + bl sub_0200D0BC + mov r0, #0x1 + ldr r1, [r5, #0x0] + lsl r0, r0, #0xa + bl sub_020219F4 + str r0, [r5, #0x14] + ldr r0, [r5, #0x1c] + ldr r2, [r5, #0x14] + add r1, r7, #0x0 + bl sub_0200A8E0 + add r3, r6, #0x0 + str r3, [sp, #0x0] + str r4, [sp, #0x4] + str r3, [sp, #0x8] + add r0, r5, #0x0 + ldr r2, [r5, #0x14] + add r0, #0x20 + mov r1, #0x1 + bl sub_0201BD84 + str r0, [r5, #0x10] + cmp r4, #0x0 + bne _02089D48 + ldr r0, [r5, #0x14] + bl sub_02021A20 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] +_02089D48: + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _02089D80 +_02089D50: + ldr r0, [r5, #0x10] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_0201BD70 + cmp r0, #0x0 + bne _02089D80 + ldr r0, [r5, #0x14] + bl sub_02021A20 + ldr r0, [r5, #0xc] + add r0, r0, #0x1 + str r0, [r5, #0xc] + b _02089D80 +_02089D6C: + cmp r2, #0x0 + bne _02089D7A + ldr r0, _02089D8C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x1 + tst r0, r1 + beq _02089D80 +_02089D7A: + mov r0, #0x0 + str r0, [r5, #0xc] + mov r6, #0x1 +_02089D80: + add r0, r6, #0x0 + add sp, #0xc + pop {r4-r7, pc} + nop +_02089D88: .word 0x000001E2 +_02089D8C: .word 0x021C48B8 + + thumb_func_start sub_02089D90 +sub_02089D90: ; 0x02089D90 + push {r3-r6, lr} + sub sp, #0x1c + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0200E3A0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F34 + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02089EF4 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _02089EF8 ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + ldr r0, _02089EFC ; =0x021C4918 + mov r1, #0x0 + strb r1, [r0, #0x5] + bl sub_0201E7A0 + ldr r3, _02089F00 ; =0x04000050 + mov r0, #0x0 + strh r0, [r3, #0x0] + ldr r2, _02089F04 ; =0x04001050 + sub r3, #0x50 + strh r0, [r2, #0x0] + ldr r1, [r3, #0x0] + ldr r0, _02089F08 ; =0xFFFF1FFF + sub r2, #0x50 + and r1, r0 + str r1, [r3, #0x0] + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + ldr r0, _02089F0C ; =0x020FF418 + bl sub_0201E66C + add r0, r4, #0x0 + bl sub_02016B94 + add r5, r0, #0x0 + ldr r0, _02089F10 ; =0x020FF3EC + bl sub_02016BBC + mov r1, #0x0 + ldr r2, _02089F14 ; =0x020FF3FC + add r0, r5, #0x0 + add r3, r1, #0x0 + bl sub_02016C18 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02018744 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r2, _02089F18 ; =0x000001F7 + add r0, r5, #0x0 + mov r3, #0x2 + str r4, [sp, #0x4] + bl sub_0200CB00 + mov r0, #0x0 + mov r1, #0x20 + add r2, r4, #0x0 + bl sub_02002ED0 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + add r3, r4, #0x0 + bl sub_02017F18 + ldr r1, _02089F1C ; =0x00006C21 + mov r0, #0x0 + bl sub_02017FE4 + ldr r1, _02089F1C ; =0x00006C21 + mov r0, #0x4 + bl sub_02017FE4 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0x5 + add r3, r4, #0x0 + bl sub_0200A86C + add r6, r0, #0x0 + mov r0, #0x6 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + bl sub_020219F4 + add r4, r0, #0x0 + bl sub_0201BD5C + ldr r2, _02089F20 ; =0x020FF3E4 + add r0, r5, #0x0 + add r1, sp, #0xc + bl sub_02019150 + mov r0, #0xd0 + str r0, [sp, #0x0] + mov r0, #0x90 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0xc + mov r1, #0xf + add r3, r2, #0x0 + bl sub_020196F4 + ldr r2, _02089F18 ; =0x000001F7 + add r0, sp, #0xc + mov r1, #0x0 + mov r3, #0x2 + bl sub_0200CCA4 + add r0, r6, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 + bl sub_0200A8E0 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + add r0, sp, #0xc + add r2, r4, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl sub_0201BD84 + add r0, r4, #0x0 + bl sub_02021A20 + bl sub_0201E788 + mov r0, #0x0 + bl sub_0200E394 + mov r0, #0x1 + bl sub_0200E394 + mov r0, #0x0 + mov r1, #0x3f + mov r2, #0x3 + bl sub_0200A274 + mov r4, #0x1 +_02089EE4: + bl sub_02000FE8 + add r0, r4, #0x0 + add r1, r4, #0x0 + blx sub_020C9C0C + b _02089EE4 + nop +_02089EF4: .word 0xFFFFE0FF +_02089EF8: .word 0x04001000 +_02089EFC: .word 0x021C4918 +_02089F00: .word 0x04000050 +_02089F04: .word 0x04001050 +_02089F08: .word 0xFFFF1FFF +_02089F0C: .word 0x020FF418 +_02089F10: .word 0x020FF3EC +_02089F14: .word 0x020FF3FC +_02089F18: .word 0x000001F7 +_02089F1C: .word 0x00006C21 +_02089F20: .word 0x020FF3E4 + + thumb_func_start sub_02089F24 +sub_02089F24: ; 0x02089F24 + push {r3-r6, lr} + sub sp, #0x1c + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0200E3A0 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F34 + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _0208A088 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _0208A08C ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + ldr r0, _0208A090 ; =0x021C4918 + mov r1, #0x0 + strb r1, [r0, #0x5] + bl sub_0201E7A0 + ldr r3, _0208A094 ; =0x04000050 + mov r0, #0x0 + strh r0, [r3, #0x0] + ldr r2, _0208A098 ; =0x04001050 + sub r3, #0x50 + strh r0, [r2, #0x0] + ldr r1, [r3, #0x0] + ldr r0, _0208A09C ; =0xFFFF1FFF + sub r2, #0x50 + and r1, r0 + str r1, [r3, #0x0] + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + ldr r0, _0208A0A0 ; =0x020FF418 + bl sub_0201E66C + add r0, r4, #0x0 + bl sub_02016B94 + add r5, r0, #0x0 + ldr r0, _0208A0A4 ; =0x020FF3EC + bl sub_02016BBC + mov r1, #0x0 + ldr r2, _0208A0A8 ; =0x020FF3FC + add r0, r5, #0x0 + add r3, r1, #0x0 + bl sub_02016C18 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02018744 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r2, _0208A0AC ; =0x000001F7 + add r0, r5, #0x0 + mov r3, #0x2 + str r4, [sp, #0x4] + bl sub_0200CB00 + mov r0, #0x0 + mov r1, #0x20 + add r2, r4, #0x0 + bl sub_02002ED0 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + add r3, r4, #0x0 + bl sub_02017F18 + ldr r1, _0208A0B0 ; =0x00006C21 + mov r0, #0x0 + bl sub_02017FE4 + ldr r1, _0208A0B0 ; =0x00006C21 + mov r0, #0x4 + bl sub_02017FE4 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0x5 + add r3, r4, #0x0 + bl sub_0200A86C + add r6, r0, #0x0 + mov r0, #0x6 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + bl sub_020219F4 + add r4, r0, #0x0 + bl sub_0201BD5C + ldr r2, _0208A0B4 ; =0x020FF3E4 + add r0, r5, #0x0 + add r1, sp, #0xc + bl sub_02019150 + mov r0, #0xd0 + str r0, [sp, #0x0] + mov r0, #0x90 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0xc + mov r1, #0xf + add r3, r2, #0x0 + bl sub_020196F4 + ldr r2, _0208A0AC ; =0x000001F7 + add r0, sp, #0xc + mov r1, #0x0 + mov r3, #0x2 + bl sub_0200CCA4 + add r0, r6, #0x0 + mov r1, #0x1 + add r2, r4, #0x0 + bl sub_0200A8E0 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + add r0, sp, #0xc + add r2, r4, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl sub_0201BD84 + add r0, r4, #0x0 + bl sub_02021A20 + bl sub_0201E788 + mov r0, #0x0 + bl sub_0200E394 + mov r0, #0x1 + bl sub_0200E394 + mov r0, #0x0 + mov r1, #0x3f + mov r2, #0x3 + bl sub_0200A274 + mov r4, #0x1 +_0208A078: + bl sub_02000FE8 + add r0, r4, #0x0 + add r1, r4, #0x0 + blx sub_020C9C0C + b _0208A078 + nop +_0208A088: .word 0xFFFFE0FF +_0208A08C: .word 0x04001000 +_0208A090: .word 0x021C4918 +_0208A094: .word 0x04000050 +_0208A098: .word 0x04001050 +_0208A09C: .word 0xFFFF1FFF +_0208A0A0: .word 0x020FF418 +_0208A0A4: .word 0x020FF3EC +_0208A0A8: .word 0x020FF3FC +_0208A0AC: .word 0x000001F7 +_0208A0B0: .word 0x00006C21 +_0208A0B4: .word 0x020FF3E4 + + thumb_func_start sub_0208A0B8 +sub_0208A0B8: ; 0x0208A0B8 + push {r4-r7, lr} + sub sp, #0x1c + add r4, r0, #0x0 + cmp r1, #0x0 + bne _0208A0C6 + mov r6, #0x1 + b _0208A0C8 +_0208A0C6: + mov r6, #0x0 +_0208A0C8: + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0200E3A0 + bl sub_02015EF4 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F34 + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _0208A228 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _0208A22C ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + ldr r0, _0208A230 ; =0x021C4918 + mov r1, #0x0 + strb r1, [r0, #0x5] + bl sub_0201E7A0 + ldr r3, _0208A234 ; =0x04000050 + mov r1, #0x0 + strh r1, [r3, #0x0] + ldr r0, _0208A238 ; =0x04001050 + sub r3, #0x50 + strh r1, [r0, #0x0] + ldr r2, [r3, #0x0] + ldr r1, _0208A23C ; =0xFFFF1FFF + sub r0, #0x50 + and r2, r1 + str r2, [r3, #0x0] + ldr r2, [r0, #0x0] + and r1, r2 + str r1, [r0, #0x0] + ldr r0, _0208A240 ; =0x020FF474 + bl sub_0201E66C + add r0, r4, #0x0 + bl sub_02016B94 + add r5, r0, #0x0 + ldr r0, _0208A244 ; =0x020FF448 + bl sub_02016BBC + mov r1, #0x0 + ldr r2, _0208A248 ; =0x020FF458 + add r0, r5, #0x0 + add r3, r1, #0x0 + bl sub_02016C18 + add r0, r5, #0x0 + mov r1, #0x0 + bl sub_02018744 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r2, _0208A24C ; =0x000001F7 + add r0, r5, #0x0 + mov r3, #0x2 + str r4, [sp, #0x4] + bl sub_0200CB00 + mov r0, #0x0 + mov r1, #0x20 + add r2, r4, #0x0 + bl sub_02002ED0 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + add r3, r4, #0x0 + bl sub_02017F18 + ldr r1, _0208A250 ; =0x00006C21 + mov r0, #0x0 + bl sub_02017FE4 + ldr r1, _0208A250 ; =0x00006C21 + mov r0, #0x4 + bl sub_02017FE4 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0x6 + add r3, r4, #0x0 + bl sub_0200A86C + add r7, r0, #0x0 + mov r0, #0x6 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + bl sub_020219F4 + add r4, r0, #0x0 + bl sub_0201BD5C + ldr r2, _0208A254 ; =0x020FF440 + add r0, r5, #0x0 + add r1, sp, #0xc + bl sub_02019150 + mov r0, #0xd0 + str r0, [sp, #0x0] + mov r0, #0x90 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0xc + mov r1, #0xf + add r3, r2, #0x0 + bl sub_020196F4 + ldr r2, _0208A24C ; =0x000001F7 + add r0, sp, #0xc + mov r1, #0x0 + mov r3, #0x2 + bl sub_0200CCA4 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl sub_0200A8E0 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + add r0, sp, #0xc + add r2, r4, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl sub_0201BD84 + add r0, r4, #0x0 + bl sub_02021A20 + bl sub_0201E788 + mov r0, #0x0 + bl sub_0200E394 + mov r0, #0x1 + bl sub_0200E394 + mov r0, #0x0 + mov r1, #0x3f + mov r2, #0x3 + bl sub_0200A274 + mov r4, #0x1 +_0208A21A: + bl sub_02000FE8 + add r0, r4, #0x0 + add r1, r4, #0x0 + blx sub_020C9C0C + b _0208A21A + .balign 4 +_0208A228: .word 0xFFFFE0FF +_0208A22C: .word 0x04001000 +_0208A230: .word 0x021C4918 +_0208A234: .word 0x04000050 +_0208A238: .word 0x04001050 +_0208A23C: .word 0xFFFF1FFF +_0208A240: .word 0x020FF474 +_0208A244: .word 0x020FF448 +_0208A248: .word 0x020FF458 +_0208A24C: .word 0x000001F7 +_0208A250: .word 0x00006C21 +_0208A254: .word 0x020FF440 + + thumb_func_start sub_0208A258 +sub_0208A258: ; 0x0208A258 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + ldr r0, _0208A290 ; =0x0000022F + ldrb r0, [r4, r0] + cmp r0, #0x10 + beq _0208A278 + cmp r0, #0x11 + beq _0208A286 + b _0208A28C +_0208A278: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl sub_0208A294 + ldr r1, _0208A290 ; =0x0000022F + strb r0, [r4, r1] + b _0208A28C +_0208A286: + add r0, r5, #0x0 + bl sub_0208A2C4 +_0208A28C: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_0208A290: .word 0x0000022F + + thumb_func_start sub_0208A294 +sub_0208A294: ; 0x0208A294 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl sub_0204647C + cmp r0, #0x0 + beq _0208A2A6 + mov r0, #0x10 + pop {r3-r5, pc} +_0208A2A6: + ldr r0, [r4, #0x4] + bl sub_0206E394 + mov r1, #0x9 + lsl r1, r1, #0x6 + strb r0, [r4, r1] + ldr r0, [r4, #0x4] + bl sub_02016A18 + add r0, r5, #0x0 + bl sub_0204649C + mov r0, #0x11 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start sub_0208A2C4 +sub_0208A2C4: ; 0x0208A2C4 + push {r4-r6, lr} + add r5, r0, #0x0 + bl sub_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl sub_0204652C + add r4, r0, #0x0 + add r0, r6, #0x0 + bl sub_020464A4 + cmp r0, #0x0 + beq _0208A2F6 + mov r0, #0x1 + bl sub_021D7CA4 + ldr r1, _0208A2F8 ; =0x0223D4AD + add r0, r5, #0x0 + add r2, r4, #0x0 + bl sub_020463EC + ldr r0, _0208A2FC ; =0x0000022F + mov r1, #0x12 + strb r1, [r4, r0] +_0208A2F6: + pop {r4-r6, pc} + .balign 4 +_0208A2F8: .word 0x0223D4AD +_0208A2FC: .word 0x0000022F + + thumb_func_start sub_0208A300 +sub_0208A300: ; 0x0208A300 + push {r3, lr} + mov r1, #0x8 + bl sub_02016998 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + strb r1, [r0, #0x4] + strb r1, [r0, #0x5] + strb r1, [r0, #0x6] + strb r1, [r0, #0x7] + mov r1, #0x2 + str r1, [r0, #0x4] + pop {r3, pc} + + thumb_func_start sub_0208A320 +sub_0208A320: ; 0x0208A320 + ldr r3, _0208A324 ; =sub_02016A18 + bx r3 + .balign 4 +_0208A324: .word sub_02016A18 + 1 + + thumb_func_start sub_0208A328 +sub_0208A328: ; 0x0208A328 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start sub_0208A32C +sub_0208A32C: ; 0x0208A32C + str r1, [r0, #0x0] + bx lr + + thumb_func_start sub_0208A330 +sub_0208A330: ; 0x0208A330 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start sub_0208A334 +sub_0208A334: ; 0x0208A334 + str r1, [r0, #0x4] + bx lr + + thumb_func_start sub_0208A338 +sub_0208A338: ; 0x0208A338 + push {r4-r6, lr} + add r6, r0, #0x0 + bl sub_02046528 + add r5, r0, #0x0 + mov r0, #0x20 + mov r1, #0x6c + bl sub_02016998 + add r4, r0, #0x0 + mov r0, #0x19 + str r5, [r4, #0x0] + lsl r0, r0, #0x4 + mov r1, #0x20 + bl sub_020219F4 + str r0, [r4, #0x4] + mov r0, #0x19 + lsl r0, r0, #0x4 + mov r1, #0x20 + bl sub_020219F4 + str r0, [r4, #0x8] + mov r0, #0x20 + bl sub_0200AA80 + str r0, [r4, #0xc] + ldr r2, _0208A3C0 ; =0x00000171 + mov r0, #0x1 + mov r1, #0x1a + mov r3, #0x20 + bl sub_0200A86C + str r0, [r4, #0x10] + mov r0, #0x20 + bl sub_02013690 + str r0, [r4, #0x14] + ldr r2, [r4, #0x0] + mov r0, #0x2 + ldr r2, [r2, #0xc] + mov r1, #0x0 + mov r3, #0x20 + bl sub_02085338 + str r0, [r4, #0x50] + bl sub_020853DC + add r0, r4, #0x0 + add r0, #0x18 + bl sub_0201901C + add r0, r4, #0x0 + add r0, #0x28 + bl sub_0201901C + add r0, r4, #0x0 + add r0, #0x38 + bl sub_0201901C + mov r0, #0x0 + str r0, [r4, #0x54] + ldr r1, _0208A3C4 ; =sub_0208A458 + add r0, r6, #0x0 + add r2, r4, #0x0 + bl sub_0204640C + pop {r4-r6, pc} + .balign 4 +_0208A3C0: .word 0x00000171 +_0208A3C4: .word sub_0208A458 + 1 + + thumb_func_start sub_0208A3C8 +sub_0208A3C8: ; 0x0208A3C8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x50] + bl sub_020853A8 + ldr r0, [r4, #0x14] + bl sub_020136C0 + ldr r0, [r4, #0x4] + bl sub_02021A20 + ldr r0, [r4, #0x8] + bl sub_02021A20 + ldr r0, [r4, #0xc] + bl sub_0200AB18 + ldr r0, [r4, #0x10] + bl sub_0200A8B8 + add r0, r4, #0x0 + bl sub_0208A400 + add r0, r4, #0x0 + bl sub_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0208A400 +sub_0208A400: ; 0x0208A400 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x18 + bl sub_02019048 + cmp r0, #0x0 + beq _0208A41E + add r0, r4, #0x0 + add r0, #0x18 + bl sub_02019178 + add r0, r4, #0x0 + add r0, #0x18 + bl sub_0201901C +_0208A41E: + add r0, r4, #0x0 + add r0, #0x28 + bl sub_02019048 + cmp r0, #0x0 + beq _0208A43A + add r0, r4, #0x0 + add r0, #0x28 + bl sub_02019178 + add r0, r4, #0x0 + add r0, #0x28 + bl sub_0201901C +_0208A43A: + add r0, r4, #0x0 + add r0, #0x38 + bl sub_02019048 + cmp r0, #0x0 + beq _0208A456 + add r0, r4, #0x0 + add r0, #0x38 + bl sub_02019178 + add r4, #0x38 + add r0, r4, #0x0 + bl sub_0201901C +_0208A456: + pop {r4, pc} + + thumb_func_start sub_0208A458 +sub_0208A458: ; 0x0208A458 + push {r3-r5, lr} + bl sub_0204652C + add r4, r0, #0x0 + ldr r1, [r4, #0x54] + cmp r1, #0xd + bhi _0208A4A4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 + lsl r2, r3, #0 + lsl r0, r5, #0 + lsl r4, r0, #0x1 + lsl r2, r4, #0x3 + lsl r2, r6, #0x3 + lsl r6, r0, #0x4 + lsl r2, r6, #0x4 + lsl r2, r1, #0x5 + lsl r0, r4, #0x5 + lsl r0, r4, #0x6 + lsl r4, r6, #0x6 + lsl r0, r4, #0x8 + lsl r6, r5, #0x8 + lsl r4, r1, #0x9 + mov r1, #0x0 + add r2, r1, #0x0 + bl sub_0208A6D4 + mov r0, #0x1 + str r0, [r4, #0x54] + b _0208A6C8 +_0208A49C: + .byte 0x00, 0xF0, 0x58, 0xF9 + .byte 0x00, 0x28, 0x00, 0xD1 +_0208A4A4: + b _0208A6C8 +_0208A4A6: + .byte 0x20, 0x1C, 0x00, 0xF0, 0x5A, 0xF9, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x65, 0xF9, 0x02, 0x20, 0x60, 0x65, 0x07, 0xE1, 0x00, 0xF0, 0x10, 0xFA, 0x00, 0x21, 0xC9, 0x43 + .byte 0x60, 0x66, 0x88, 0x42, 0x74, 0xD0, 0x20, 0x1C, 0x00, 0xF0, 0xAA, 0xF9, 0x60, 0x6E, 0x04, 0x28 + .byte 0x6E, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x08, 0x00 + .byte 0x22, 0x00, 0x3C, 0x00, 0x56, 0x00, 0x70, 0x00, 0x20, 0x68, 0x00, 0x21, 0xC0, 0x68, 0xA0, 0xF7 + .byte 0x81, 0xF8, 0x01, 0x1C, 0x20, 0x1C, 0x48, 0x30, 0x89, 0xF7, 0x32, 0xFA, 0x03, 0x20, 0x60, 0x65 + .byte 0xE2, 0xE0, 0x20, 0x68, 0x01, 0x21, 0xC0, 0x68, 0xA0, 0xF7, 0x74, 0xF8, 0x01, 0x1C, 0x20, 0x1C + .byte 0x48, 0x30, 0x89, 0xF7, 0x25, 0xFA, 0x03, 0x20, 0x60, 0x65, 0xD5, 0xE0, 0x20, 0x68, 0x02, 0x21 + .byte 0xC0, 0x68, 0xA0, 0xF7, 0x67, 0xF8, 0x01, 0x1C, 0x20, 0x1C, 0x48, 0x30, 0x89, 0xF7, 0x18, 0xFA + .byte 0x03, 0x20, 0x60, 0x65, 0xC8, 0xE0, 0x20, 0x68, 0x03, 0x21, 0xC0, 0x68, 0xA0, 0xF7, 0x5A, 0xF8 + .byte 0x01, 0x1C, 0x20, 0x1C, 0x48, 0x30, 0x89, 0xF7, 0x0B, 0xFA, 0x03, 0x20, 0x60, 0x65, 0xBB, 0xE0 + .byte 0x0B, 0x20, 0x60, 0x65, 0xB8, 0xE0, 0x61, 0x6E, 0x00, 0x22, 0x49, 0x1C, 0x00, 0xF0, 0xBA, 0xF8 + .byte 0x04, 0x20, 0x60, 0x65, 0xB0, 0xE0, 0x00, 0xF0, 0xF3, 0xF8, 0x00, 0x28, 0x20, 0xD0, 0x00, 0x20 + .byte 0x4D, 0xF1, 0x98, 0xFB, 0x05, 0x20, 0x60, 0x65, 0xA6, 0xE0, 0x83, 0xF7, 0xC5, 0xFE, 0x00, 0x28 + .byte 0x16, 0xD0, 0x21, 0x1C, 0x20, 0x6D, 0x48, 0x31, 0xFA, 0xF7, 0x18, 0xFF, 0x20, 0x6D, 0xFA, 0xF7 + .byte 0x1F, 0xFF, 0x20, 0x1C, 0xFF, 0xF7, 0x34, 0xFF, 0x20, 0x68, 0x21, 0x6D, 0xAD, 0xF7, 0x70, 0xFC + .byte 0x06, 0x20, 0x60, 0x65, 0x90, 0xE0, 0x20, 0x68, 0xBB, 0xF7, 0x68, 0xFF, 0x00, 0x28, 0x00, 0xD0 + .byte 0x8A, 0xE0, 0x20, 0x68, 0xBB, 0xF7, 0x72, 0xFF, 0x07, 0x20, 0x60, 0x65, 0x84, 0xE0, 0x20, 0x68 + .byte 0xBB, 0xF7, 0x70, 0xFF, 0x00, 0x28, 0x7F, 0xD0, 0x01, 0x20, 0x4D, 0xF1, 0x6B, 0xFB, 0x08, 0x20 + .byte 0x60, 0x65, 0x79, 0xE0, 0x83, 0xF7, 0x98, 0xFE, 0x00, 0x28, 0x75, 0xD0, 0x20, 0x6D, 0xFA, 0xF7 + .byte 0x01, 0xFF, 0x00, 0x28, 0x02, 0xD0, 0x0B, 0x20, 0x60, 0x65, 0x6D, 0xE0, 0x21, 0x1C, 0x20, 0x6D + .byte 0x48, 0x31, 0xFA, 0xF7, 0x03, 0xFF, 0x20, 0x68, 0x22, 0x1C, 0xC0, 0x68, 0x61, 0x6E, 0x48, 0x32 + .byte 0x9F, 0xF7, 0xE8, 0xFF, 0x20, 0x1C, 0x06, 0x21, 0x00, 0x22, 0x00, 0xF0, 0x63, 0xF8, 0x09, 0x20 + .byte 0x60, 0x65, 0x59, 0xE0, 0x00, 0xF0, 0x9C, 0xF8, 0x00, 0x28, 0x55, 0xD0, 0x20, 0x1C, 0x00, 0xF0 + .byte 0x05, 0xF9, 0x0A, 0x20, 0x60, 0x65, 0x4F, 0xE0, 0x00, 0xF0, 0x58, 0xF9, 0x00, 0x21, 0xC9, 0x43 + .byte 0x60, 0x66, 0x88, 0x42, 0x48, 0xD0, 0x00, 0x28, 0x01, 0xD0, 0x01, 0x28, 0x0B, 0xE0, 0x20, 0x1C + .byte 0x00, 0xF0, 0x46, 0xF9, 0x20, 0x1C, 0x00, 0xF0, 0x8B, 0xF8, 0x20, 0x1C, 0x00, 0xF0, 0x96, 0xF8 + .byte 0x02, 0x20, 0x60, 0x65, 0x38, 0xE0, 0x20, 0x1C, 0x48, 0x30, 0x00, 0x21, 0x89, 0xF7, 0x5C, 0xF9 + .byte 0x05, 0x1C, 0x20, 0x1C, 0x00, 0xF0, 0x34, 0xF9, 0x18, 0x48, 0x85, 0x42, 0x0A, 0xD0, 0xE0, 0x68 + .byte 0x00, 0x21, 0x2A, 0x1C, 0x80, 0xF7, 0x50, 0xFF, 0x20, 0x1C, 0x08, 0x21, 0x01, 0x22, 0x00, 0xF0 + .byte 0x29, 0xF8, 0x04, 0xE0, 0x20, 0x1C, 0x07, 0x21, 0x00, 0x22, 0x00, 0xF0, 0x23, 0xF8, 0x0C, 0x20 + .byte 0x60, 0x65, 0x19, 0xE0, 0x05, 0x21, 0x00, 0x22, 0x00, 0xF0, 0x1C, 0xF8, 0x0C, 0x20, 0x60, 0x65 + .byte 0x12, 0xE0, 0x00, 0xF0, 0x55, 0xF8, 0x00, 0x28, 0x0E, 0xD0, 0x09, 0x48, 0x81, 0x6C, 0xF3, 0x20 + .byte 0x08, 0x42, 0x09, 0xD0, 0x20, 0x1C, 0x00, 0xF0, 0x53, 0xF8, 0x0D, 0x20, 0x60, 0x65, 0x03, 0xE0 + .byte 0xFF, 0xF7, 0x82, 0xFE, 0x01, 0x20, 0x38, 0xBD +_0208A6C8: + mov r0, #0x0 + pop {r3-r5, pc} +_0208A6CC: + .byte 0xFF, 0xFF, 0x00, 0x00 + .byte 0xB8, 0x48, 0x1C, 0x02 + + thumb_func_start sub_0208A6D4 +sub_0208A6D4: ; 0x0208A6D4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r5, #0x0 + add r4, #0x18 + cmp r2, #0x0 + ldr r0, [r5, #0x10] + beq _0208A6F4 + ldr r2, [r5, #0x4] + bl sub_0200A8E0 + ldr r0, [r5, #0xc] + ldr r1, [r5, #0x8] + ldr r2, [r5, #0x4] + bl sub_0200B7B8 + b _0208A6FA +_0208A6F4: + ldr r2, [r5, #0x8] + bl sub_0200A8E0 +_0208A6FA: + add r0, r4, #0x0 + bl sub_02019048 + cmp r0, #0x0 + bne _0208A722 + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0x8] + mov r2, #0x3 + bl sub_020545B8 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023900 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02054608 + b _0208A734 +_0208A722: + add r0, r4, #0x0 + bl sub_0205464C + ldr r2, _0208A74C ; =0x000003E2 + add r0, r4, #0x0 + mov r1, #0x0 + mov r3, #0xa + bl sub_0200D0BC +_0208A734: + ldr r0, [r5, #0x0] + ldr r0, [r0, #0xc] + bl sub_02023900 + add r2, r0, #0x0 + ldr r1, [r5, #0x8] + add r0, r4, #0x0 + mov r3, #0x1 + bl sub_02054658 + str r0, [r5, #0x58] + pop {r3-r5, pc} + .balign 4 +_0208A74C: .word 0x000003E2 + + thumb_func_start sub_0208A750 +sub_0208A750: ; 0x0208A750 + ldr r0, [r0, #0x58] + ldr r3, _0208A75C ; =sub_020546C8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx r3 + nop +_0208A75C: .word sub_020546C8 + 1 + + thumb_func_start sub_0208A760 +sub_0208A760: ; 0x0208A760 + push {r4, lr} + add r4, r0, #0x0 + add r4, #0x18 + add r0, r4, #0x0 + bl sub_02019048 + cmp r0, #0x0 + beq _0208A778 + add r0, r4, #0x0 + mov r1, #0x0 + bl sub_0200D0E0 +_0208A778: + pop {r4, pc} + .balign 4 + + thumb_func_start sub_0208A77C +sub_0208A77C: ; 0x0208A77C + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + add r7, r5, #0x0 + add r7, #0x28 + add r0, r7, #0x0 + bl sub_02019048 + cmp r0, #0x0 + bne _0208A808 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + mov r1, #0x3 + ldr r0, [r0, #0x8] + mov r2, #0xa5 + mov r3, #0xb + bl sub_0200CB00 + mov r1, #0xd + str r1, [sp, #0x0] + mov r0, #0xe + str r0, [sp, #0x4] + mov r0, #0xa + str r0, [sp, #0x8] + str r1, [sp, #0xc] + mov r0, #0x1 + str r0, [sp, #0x10] + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, #0x8] + mov r2, #0x3 + mov r3, #0x11 + bl sub_02019064 + add r0, r7, #0x0 + mov r1, #0xf + bl sub_02019620 + mov r6, #0x0 + add r4, r6, #0x0 +_0208A7D2: + add r1, r6, #0x0 + ldr r0, [r5, #0x10] + ldr r2, [r5, #0x8] + add r1, #0x9 + bl sub_0200A8E0 + str r4, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r2, [r5, #0x8] + add r0, r7, #0x0 + mov r1, #0x0 + mov r3, #0xc + bl sub_0201BD84 + add r6, r6, #0x1 + add r4, #0x10 + cmp r6, #0x5 + blt _0208A7D2 + mov r2, #0x0 + ldr r0, [r5, #0x14] + add r1, r7, #0x0 + add r3, r2, #0x0 + bl sub_020136F8 +_0208A808: + str r7, [r5, #0x68] + mov r1, #0x0 + str r1, [r5, #0x5c] + mov r0, #0x5 + str r0, [r5, #0x60] + add r0, r7, #0x0 + mov r2, #0xa5 + mov r3, #0xb + bl sub_0200CCA4 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_0208A820 +sub_0208A820: ; 0x0208A820 + ldr r3, _0208A828 ; =sub_0200CCF8 + add r0, #0x28 + mov r1, #0x1 + bx r3 + .balign 4 +_0208A828: .word sub_0200CCF8 + 1 + + thumb_func_start sub_0208A82C +sub_0208A82C: ; 0x0208A82C + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + add r7, r5, #0x0 + add r7, #0x38 + add r0, r7, #0x0 + bl sub_02019048 + cmp r0, #0x0 + bne _0208A8B8 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + mov r1, #0x3 + ldr r0, [r0, #0x8] + mov r2, #0xa5 + mov r3, #0xb + bl sub_0200CB00 + mov r1, #0xd + str r1, [sp, #0x0] + mov r0, #0x6 + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + mov r0, #0x8d + str r0, [sp, #0x10] + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + ldr r0, [r0, #0x8] + mov r2, #0x3 + mov r3, #0x19 + bl sub_02019064 + add r0, r7, #0x0 + mov r1, #0xf + bl sub_02019620 + mov r6, #0x0 + add r4, r6, #0x0 +_0208A882: + add r1, r6, #0x0 + ldr r0, [r5, #0x10] + ldr r2, [r5, #0x8] + add r1, #0xe + bl sub_0200A8E0 + str r4, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r2, [r5, #0x8] + add r0, r7, #0x0 + mov r1, #0x0 + mov r3, #0xc + bl sub_0201BD84 + add r6, r6, #0x1 + add r4, #0x10 + cmp r6, #0x2 + blt _0208A882 + mov r2, #0x0 + ldr r0, [r5, #0x14] + add r1, r7, #0x0 + add r3, r2, #0x0 + bl sub_020136F8 +_0208A8B8: + str r7, [r5, #0x68] + mov r1, #0x0 + str r1, [r5, #0x5c] + mov r0, #0x2 + str r0, [r5, #0x60] + add r0, r7, #0x0 + mov r2, #0xa5 + mov r3, #0xb + bl sub_0200CCA4 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start sub_0208A8D0 +sub_0208A8D0: ; 0x0208A8D0 + ldr r3, _0208A8D8 ; =sub_0200CCF8 + add r0, #0x38 + mov r1, #0x1 + bx r3 + .balign 4 +_0208A8D8: .word sub_0200CCF8 + 1 + + thumb_func_start sub_0208A8DC +sub_0208A8DC: ; 0x0208A8DC + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + ldr r0, _0208A990 ; =0x021C48B8 + mov r1, #0x40 + ldr r0, [r0, #0x48] + tst r1, r0 + beq _0208A906 + ldr r0, [r4, #0x5c] + sub r0, r0, #0x1 + str r0, [r4, #0x5c] + bpl _0208A954 + ldr r0, [r4, #0x60] + cmp r0, #0x2 + ble _0208A900 + sub r0, r0, #0x1 + str r0, [r4, #0x5c] + b _0208A954 +_0208A900: + mov r0, #0x0 + str r0, [r4, #0x5c] + b _0208A954 +_0208A906: + mov r1, #0x80 + tst r1, r0 + beq _0208A928 + ldr r0, [r4, #0x5c] + add r1, r0, #0x1 + str r1, [r4, #0x5c] + ldr r0, [r4, #0x60] + cmp r1, r0 + blt _0208A954 + cmp r0, #0x2 + ble _0208A922 + mov r0, #0x0 + str r0, [r4, #0x5c] + b _0208A954 +_0208A922: + sub r0, r0, #0x1 + str r0, [r4, #0x5c] + b _0208A954 +_0208A928: + mov r1, #0x1 + tst r1, r0 + beq _0208A93A + ldr r0, _0208A994 ; =0x000005DC + bl sub_020054C8 + add sp, #0x8 + ldr r0, [r4, #0x5c] + pop {r4, pc} +_0208A93A: + mov r1, #0x2 + tst r0, r1 + beq _0208A94E + ldr r0, _0208A994 ; =0x000005DC + bl sub_020054C8 + ldr r0, [r4, #0x60] + add sp, #0x8 + sub r0, r0, #0x1 + pop {r4, pc} +_0208A94E: + add sp, #0x8 + sub r0, r1, #0x3 + pop {r4, pc} +_0208A954: + ldr r0, [r4, #0x68] + mov r1, #0xc + str r1, [sp, #0x0] + ldrb r1, [r0, #0x8] + mov r2, #0x0 + add r3, r2, #0x0 + lsl r1, r1, #0x13 + lsr r1, r1, #0x10 + str r1, [sp, #0x4] + mov r1, #0xf + bl sub_020196F4 + ldr r3, [r4, #0x5c] + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x68] + mov r2, #0x0 + lsl r3, r3, #0x4 + bl sub_020136F8 + ldr r0, [r4, #0x68] + bl sub_02019548 + ldr r0, _0208A994 ; =0x000005DC + bl sub_020054C8 + mov r0, #0x0 + mvn r0, r0 + add sp, #0x8 + pop {r4, pc} + nop +_0208A990: .word 0x021C48B8 +_0208A994: .word 0x000005DC + + thumb_func_start sub_0208A998 +sub_0208A998: ; 0x0208A998 + ldr r3, _0208A9AC ; =0x027E0000 + ldr r1, _0208A9B0 ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + ldr r3, _0208A9B4 ; =sub_020CDA1C + mov r0, #0x3 + bx r3 + nop +_0208A9AC: .word 0x027E0000 +_0208A9B0: .word 0x00003FF8 +_0208A9B4: .word sub_020CDA1C + + thumb_func_start sub_0208A9B8 +sub_0208A9B8: ; 0x0208A9B8 + push {r4-r7, lr} + sub sp, #0x24 + ldr r0, _0208ABC8 ; =0x021C8C58 + ldr r1, [r0, #0x0] + cmp r1, #0x1 + bne _0208A9C6 + b _0208ABC4 +_0208A9C6: + mov r1, #0x1 + str r1, [r0, #0x0] + mov r0, #0x0 + blx sub_020CC408 + add r1, r0, #0x0 + mov r0, #0x0 + blx sub_020CC308 + mov r0, #0x0 + blx sub_020CC31C + add r1, r0, #0x0 + mov r0, #0x0 + blx sub_020CC2F4 + mov r1, #0x1 + ldr r0, _0208ABCC ; =0x020FF4A4 + add r2, r1, #0x0 + mov r3, #0x0 + bl sub_020166C8 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + mov r1, #0x0 + bl sub_0200E3A0 + mov r0, #0x1 + blx sub_020C9E14 + ldr r1, _0208ABD0 ; =sub_0208A998 + mov r0, #0x1 + blx sub_020C9FEC + mov r0, #0x1 + blx sub_020C9E5C + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F10 + mov r0, #0x0 + add r1, r0, #0x0 + bl sub_02015F34 + bl sub_0201E6D8 + bl sub_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _0208ABD4 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _0208ABD8 ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl sub_0201669C + ldr r0, _0208ABDC ; =0x021C4918 + mov r1, #0x0 + strb r1, [r0, #0x5] + bl sub_0201E7A0 + ldr r3, _0208ABE0 ; =0x04000050 + mov r0, #0x0 + strh r0, [r3, #0x0] + ldr r2, _0208ABE4 ; =0x04001050 + sub r3, #0x50 + strh r0, [r2, #0x0] + ldr r1, [r3, #0x0] + ldr r0, _0208ABE8 ; =0xFFFF1FFF + sub r2, #0x50 + and r1, r0 + str r1, [r3, #0x0] + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + ldr r0, _0208ABEC ; =0x020FF4D8 + bl sub_0201E66C + mov r0, #0x0 + bl sub_02016B94 + str r0, [sp, #0x10] + ldr r0, _0208ABF0 ; =0x020FF4AC + bl sub_02016BBC + mov r1, #0x0 + ldr r0, [sp, #0x10] + ldr r2, _0208ABF4 ; =0x020FF4BC + add r3, r1, #0x0 + bl sub_02016C18 + ldr r0, [sp, #0x10] + mov r1, #0x0 + bl sub_02018744 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, [sp, #0x10] + ldr r2, _0208ABF8 ; =0x000001F7 + mov r3, #0x2 + str r1, [sp, #0x4] + bl sub_0200CB00 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + bl sub_02002ED0 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + add r3, r0, #0x0 + bl sub_02017F18 + ldr r1, _0208ABFC ; =0x00006C21 + mov r0, #0x0 + bl sub_02017FE4 + ldr r1, _0208ABFC ; =0x00006C21 + mov r0, #0x4 + bl sub_02017FE4 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xc8 + mov r3, #0x0 + bl sub_0200A86C + str r0, [sp, #0xc] + mov r0, #0x6 + lsl r0, r0, #0x6 + mov r1, #0x0 + bl sub_020219F4 + add r4, r0, #0x0 + bl sub_0201BD5C + ldr r0, [sp, #0x10] + ldr r2, _0208AC00 ; =0x020FF49C + add r1, sp, #0x14 + bl sub_02019150 + mov r0, #0xd0 + str r0, [sp, #0x0] + mov r0, #0x90 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x14 + mov r1, #0xf + add r3, r2, #0x0 + bl sub_020196F4 + ldr r2, _0208ABF8 ; =0x000001F7 + add r0, sp, #0x14 + mov r1, #0x0 + mov r3, #0x2 + bl sub_0200CCA4 + ldr r0, [sp, #0xc] + mov r1, #0x3 + add r2, r4, #0x0 + bl sub_0200A8E0 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + add r0, sp, #0x14 + add r2, r4, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl sub_0201BD84 + add r0, r4, #0x0 + bl sub_02021A20 + bl sub_0201E788 + mov r0, #0x0 + bl sub_0200E394 + mov r0, #0x1 + bl sub_0200E394 + mov r0, #0x0 + mov r1, #0x3f + mov r2, #0x3 + bl sub_0200A274 + bl sub_02032DAC + mov r4, #0x1 +_0208AB58: + bl sub_02000FE8 + bl sub_0202FB80 + bl sub_02033678 + cmp r0, #0x0 + bne _0208AB72 + add r0, r4, #0x0 + add r1, r4, #0x0 + blx sub_020C9C0C + b _0208AB58 +_0208AB72: + ldr r5, _0208AC04 ; =0x04000130 + ldr r4, _0208AC08 ; =0x027FFFA8 + ldr r7, _0208AC0C ; =0x00002FFF + mov r6, #0x1 +_0208AB7A: + bl sub_02000FE8 + ldrh r1, [r5, #0x0] + ldrh r0, [r4, #0x0] + orr r1, r0 + ldr r0, _0208AC0C ; =0x00002FFF + eor r0, r1 + and r0, r7 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + tst r0, r6 + bne _0208AB9C + mov r0, #0x1 + add r1, r0, #0x0 + blx sub_020C9C0C + b _0208AB7A +_0208AB9C: + ldr r1, _0208AC10 ; =0x00007FFF + mov r0, #0x0 + bl sub_0200E3A0 + ldr r1, _0208AC10 ; =0x00007FFF + mov r0, #0x1 + bl sub_0200E3A0 + add r0, sp, #0x14 + bl sub_02019178 + ldr r0, [sp, #0xc] + bl sub_0200A8B8 + ldr r0, [sp, #0x10] + bl sub_02016A18 + mov r0, #0x0 + blx sub_020CD3B4 +_0208ABC4: + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 +_0208ABC8: .word 0x021C8C58 +_0208ABCC: .word 0x020FF4A4 +_0208ABD0: .word sub_0208A998 + 1 +_0208ABD4: .word 0xFFFFE0FF +_0208ABD8: .word 0x04001000 +_0208ABDC: .word 0x021C4918 +_0208ABE0: .word 0x04000050 +_0208ABE4: .word 0x04001050 +_0208ABE8: .word 0xFFFF1FFF +_0208ABEC: .word 0x020FF4D8 +_0208ABF0: .word 0x020FF4AC +_0208ABF4: .word 0x020FF4BC +_0208ABF8: .word 0x000001F7 +_0208ABFC: .word 0x00006C21 +_0208AC00: .word 0x020FF49C +_0208AC04: .word 0x04000130 +_0208AC08: .word 0x027FFFA8 +_0208AC0C: .word 0x00002FFF +_0208AC10: .word 0x00007FFF diff --git a/asm/entry.s b/asm/entry.s new file mode 100644 index 000000000..f0d4adda3 --- /dev/null +++ b/asm/entry.s @@ -0,0 +1,218 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + arm_func_start Main +Main: ; 0x02000800 + mov r12, #0x4000000 + str r12, [r12, #0x208] +_02000808: + ldrh r0, [r12, #0x6] + cmp r0, #0x0 + bne _02000808 + bl sub_02000A78 + mov r0, #0x13 + msr cpsr_c, r0 + ldr r0, _02000918 ; =0x027E0000 + add r0, r0, #0x3fc0 + mov sp, r0 + mov r0, #0x12 + msr cpsr_c, r0 + ldr r0, _02000918 ; =0x027E0000 + add r0, r0, #0x3fc0 + sub r0, r0, #0x40 + sub sp, r0, #0x4 + tst sp, #0x4 + subeq sp, sp, #0x4 + ldr r1, _0200091C ; =0x00000400 + sub r1, r0, r1 + mov r0, #0x1f + msr cpsr_fsxc, r0 + sub sp, r1, #0x4 + mov r0, #0x0 + ldr r1, _02000918 ; =0x027E0000 + mov r2, #0x4000 + bl _0200093C +_02000870: + .byte 0x00, 0x00, 0xA0, 0xE3, 0xA4, 0x10, 0x9F, 0xE5, 0x01, 0x2B, 0xA0, 0xE3, 0x2E, 0x00, 0x00, 0xEB + .byte 0x02, 0x0C, 0xA0, 0xE3, 0x98, 0x10, 0x9F, 0xE5, 0x01, 0x2B, 0xA0, 0xE3, 0x2A, 0x00, 0x00, 0xEB + .byte 0x90, 0x10, 0x9F, 0xE5, 0x14, 0x00, 0x91, 0xE5, 0x2C, 0x00, 0x00, 0xEB, 0x56, 0x00, 0x00, 0xEB + .byte 0x80, 0x00, 0x9F, 0xE5, 0x0C, 0x10, 0x90, 0xE5, 0x10, 0x20, 0x90, 0xE5, 0x01, 0x30, 0xA0, 0xE1 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x02, 0x00, 0x51, 0xE1, 0x04, 0x00, 0x81, 0x34, 0xFC, 0xFF, 0xFF, 0x3A + .byte 0x1F, 0x10, 0xC3, 0xE3, 0x9A, 0x0F, 0x07, 0xEE, 0x35, 0x1F, 0x07, 0xEE, 0x3E, 0x1F, 0x07, 0xEE + .byte 0x20, 0x10, 0x81, 0xE2, 0x02, 0x00, 0x51, 0xE1, 0xF9, 0xFF, 0xFF, 0xBA, 0x48, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x81, 0xE5, 0x2C, 0x10, 0x9F, 0xE5, 0xFF, 0x1D, 0x81, 0xE2, 0x3C, 0x10, 0x81, 0xE2 + .byte 0x38, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x33, 0xAF, 0x03, 0xEB, 0x98, 0x00, 0x00, 0xEB + .byte 0x63, 0xAF, 0x03, 0xEB, 0x28, 0x10, 0x9F, 0xE5, 0x28, 0xE0, 0x9F, 0xE5, 0x04, 0x00, 0x1D, 0xE3 + .byte 0x04, 0xD0, 0x4D, 0x12, 0x11, 0xFF, 0x2F, 0xE1 +_02000918: .word 0x027E0000 +_0200091C: .word 0x00000400 +_02000920: + .byte 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x68, 0x0B, 0x00, 0x02, 0x9C, 0xFF, 0x7F, 0x02 + .byte 0x00, 0x80, 0xFF, 0x01, 0x55, 0x0C, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xFF +_0200093C: + add r12, r1, r2 +_02000940: + cmp r1, r12 + stmltia r1!, {r0} + blt _02000940 + bx lr + + arm_func_start sub_02000950 +sub_02000950: ; 0x02000950 + cmp r0, #0x0 + beq _020009F8 + stmdb sp!, {r4-r7} + ldmdb r0, {r1-r2} + add r2, r0, r2 + sub r3, r0, r1, lsr #0x18 + bic r1, r1, #0xff000000 + sub r1, r0, r1 + mov r4, r2 +_02000974: + cmp r3, r1 + ble _020009D4 + ldrb r5, [r3, #-0x1]! + mov r6, #0x8 +_02000984: + subs r6, r6, #0x1 + blt _02000974 + tst r5, #0x80 + bne _020009A0 + ldrb r0, [r3, #-0x1]! + strb r0, [r2, #-0x1]! + b _020009C8 +_020009A0: + ldrb r12, [r3, #-0x1]! + ldrb r7, [r3, #-0x1]! + orr r7, r7, r12, lsl #0x8 + bic r7, r7, #0xf000 + add r7, r7, #0x2 + add r12, r12, #0x20 +_020009B8: + ldrb r0, [r2, r7] + strb r0, [r2, #-0x1]! + subs r12, r12, #0x10 + bge _020009B8 +_020009C8: + cmp r3, r1 + mov r5, r5, lsl #0x1 + bgt _02000984 +_020009D4: + mov r0, #0x0 + bic r3, r1, #0x1f +_020009DC: + mcr p15, 0x0, r0, c7, c10, 0x4 + mcr p15, 0x0, r3, c7, c5, 0x1 + mcr p15, 0x0, r3, c7, c14, 0x1 + add r3, r3, #0x20 + cmp r3, r4 + blt _020009DC + ldmia sp!, {r4-r7} +_020009F8: + bx lr +_020009FC: + .byte 0x6C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x04, 0x20, 0x90, 0xE5, 0x08, 0x30, 0x90, 0xE5, 0x02, 0x00, 0x51, 0xE1 + .byte 0x15, 0x00, 0x00, 0x0A, 0x04, 0x50, 0x91, 0xE4, 0x04, 0x70, 0x91, 0xE4, 0x07, 0x60, 0x85, 0xE0 + .byte 0x05, 0x40, 0xA0, 0xE1, 0x06, 0x00, 0x54, 0xE1, 0x04, 0x70, 0x93, 0x44, 0x04, 0x70, 0x84, 0x44 + .byte 0xFB, 0xFF, 0xFF, 0x4A, 0x04, 0x70, 0x91, 0xE4, 0x07, 0x60, 0x84, 0xE0, 0x00, 0x70, 0xA0, 0xE3 + .byte 0x06, 0x00, 0x54, 0xE1, 0x04, 0x70, 0x84, 0x34, 0xFC, 0xFF, 0xFF, 0x3A, 0x1F, 0x40, 0xC5, 0xE3 + .byte 0x9A, 0x7F, 0x07, 0xEE, 0x35, 0x4F, 0x07, 0xEE, 0x3E, 0x4F, 0x07, 0xEE, 0x20, 0x40, 0x84, 0xE2 + .byte 0x06, 0x00, 0x54, 0xE1, 0xF9, 0xFF, 0xFF, 0xBA, 0xE7, 0xFF, 0xFF, 0xEA, 0x00, 0x00, 0x00, 0xEA + .byte 0x68, 0x0B, 0x00, 0x02, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start sub_02000A78 +sub_02000A78: ; 0x02000A78 + mrc p15, 0x0, r0, c1, c0, 0x0 + ldr r1, _02000B30 ; =0x000F9005 + bic r0, r0, r1 + mcr p15, 0x0, r0, c1, c0, 0x0 + mov r0, #0x0 + mcr p15, 0x0, r0, c7, c5, 0x0 + mcr p15, 0x0, r0, c7, c6, 0x0 + mcr p15, 0x0, r0, c7, c10, 0x4 + ldr r0, _02000B34 ; =0x04000033 + mcr p15, 0x0, r0, c6, c0, 0x0 + ldr r0, _02000B38 ; =0x0200002D + mcr p15, 0x0, r0, c6, c1, 0x0 + ldr r0, _02000B3C ; =0x027E0021 + mcr p15, 0x0, r0, c6, c2, 0x0 + ldr r0, _02000B40 ; =0x08000035 + mcr p15, 0x0, r0, c6, c3, 0x0 + ldr r0, _02000B44 ; =0x027E0000 + orr r0, r0, #0x1a + orr r0, r0, #0x1 + mcr p15, 0x0, r0, c6, c4, 0x0 + ldr r0, _02000B48 ; =0x0100002F + mcr p15, 0x0, r0, c6, c5, 0x0 + ldr r0, _02000B4C ; =0xFFFF001D + mcr p15, 0x0, r0, c6, c6, 0x0 + ldr r0, _02000B50 ; =0x027FF017 + mcr p15, 0x0, r0, c6, c7, 0x0 + mov r0, #0x20 + mcr p15, 0x0, r0, c9, c1, 0x1 + ldr r0, _02000B44 ; =0x027E0000 + orr r0, r0, #0xa + mcr p15, 0x0, r0, c9, c1, 0x0 + mov r0, #0x42 + mcr p15, 0x0, r0, c2, c0, 0x1 + mov r0, #0x42 + mcr p15, 0x0, r0, c2, c0, 0x0 + mov r0, #0x2 + mcr p15, 0x0, r0, c3, c0, 0x0 + ldr r0, _02000B54 ; =0x05100011 + mcr p15, 0x0, r0, c5, c0, 0x3 + ldr r0, _02000B58 ; =0x15111011 + mcr p15, 0x0, r0, c5, c0, 0x2 + mrc p15, 0x0, r0, c1, c0, 0x0 + ldr r1, _02000B5C ; =0x0005707D + orr r0, r0, r1 + mcr p15, 0x0, r0, c1, c0, 0x0 + bx lr + .align 2, 0 +_02000B30: .word 0x000F9005 +_02000B34: .word 0x04000033 +_02000B38: .word 0x0200002D +_02000B3C: .word 0x027E0021 +_02000B40: .word 0x08000035 +_02000B44: .word 0x027E0000 +_02000B48: .word 0x0100002F +_02000B4C: .word 0xFFFF001D +_02000B50: .word 0x027FF017 +_02000B54: .word 0x05100011 +_02000B58: .word 0x15111011 +_02000B5C: .word 0x0005707D + + arm_func_start sub_02000B60_dummy +sub_02000B60_dummy: + bx lr + + arm_func_start sub_02000B64_dummy +sub_02000B64_dummy: + bx lr + +_02000B68: + .word 0x02107700 + .word 0x02107724 + .word 0x02106FA0 + .word 0x02106FA0 + .word 0x021D74E0 + .word 0x00000000 + + .byte 0x31, 0x75, 0x02, 0x03, 0x21, 0x06, 0xC0, 0xDE, 0xDE, 0xC0, 0x06, 0x21 + + # strings + .balign 4 + .asciz "[SDK+NINTENDO:DWC1.2.30006.061019.2254_DWC_1_2_PLUS6]" + .balign 4 + .asciz "[SDK+NINTENDO:WiFi1.2.30000.0609050341]" + .balign 4 + .asciz "[SDK+UBIQUITOUS:CPS]" + .balign 4 + .asciz "[SDK+UBIQUITOUS:SSL]" + .balign 4 + .asciz "[SDK+Abiosso:libVCT 1.0.1_ec]" + .balign 4 + .asciz "[SDK+NINTENDO:BACKUP]" diff --git a/asm/macros/function.inc b/asm/macros/function.inc index 67fb373a8..4e0afcb78 100644 --- a/asm/macros/function.inc +++ b/asm/macros/function.inc @@ -2,7 +2,6 @@ .align 2, 0 .global \name .arm - .type \name, function .endm .macro arm_func_end name @@ -13,15 +12,11 @@ .align 2, 0 .global \name .thumb - .thumb_func - .type \name, function .endm .macro non_word_aligned_thumb_func_start name .global \name .thumb - .thumb_func - .type \name, function .endm .macro thumb_func_end name diff --git a/asm/main.s b/asm/main.s index 9bc71acb5..e394cbc6f 100644 --- a/asm/main.s +++ b/asm/main.s @@ -1,288 +1,172 @@ .include "asm/macros.inc" + .include "global.inc" .text - arm_func_start Entry -Entry: @ 0x02000800 - mov ip, #0x4000000 - str ip, [ip, #0x208] -_02000808: - ldrh r0, [ip, #6] - cmp r0, #0 - bne _02000808 - bl sub_2000A78 - mov r0, #0x13 - msr cpsr_c, r0 - ldr r0, _02000918 @ =0x027E0000 - add r0, r0, #0x3fc0 - mov sp, r0 - mov r0, #0x12 - msr cpsr_c, r0 - ldr r0, _02000918 @ =0x027E0000 - add r0, r0, #0x3fc0 - sub r0, r0, #0x40 - sub sp, r0, #4 - tst sp, #4 - subeq sp, sp, #4 - ldr r1, _0200091C @ =0x00000400 - sub r1, r0, r1 - mov r0, #0x1f - msr cpsr_fsxc, r0 - sub sp, r1, #4 - mov r0, #0 - ldr r1, _02000918 @ =0x027E0000 - mov r2, #0x4000 - bl sub_200093C - mov r0, #0 - ldr r1, _02000920 @ =0x05000000 - mov r2, #1024 - bl sub_200093C - mov r0, #512 - ldr r1, _02000924 @ =0x07000000 - mov r2, #1024 - bl sub_200093C - ldr r1, _02000928 @ = 0x02000B68 - ldr r0, [r1, #20] - bl sub_2000950 - bl sub_20009FC - ldr r0, _02000928 @ =0x02000B68 - ldr r1, [r0, #12] - ldr r2, [r0, #16] - mov r3, r1 - mov r0, #0 -_020008B4: - cmp r1, r2 - strcc r0, [r1], #4 - bcc _020008B4 - bic r1, r3, #31 -_020008C4: - mcr p15, #0, r0, cr7, cr10, 4 - mcr p15, #0, r1, cr7, cr5, 1 - mcr p15, #0, r1, cr7, cr14, 1 - add r1, #32 - cmp r1, r2 - blt _020008C4 - ldr r1, _0200092C @ =0x027FFF9C - str r0, [r1] - ldr r1, _02000918 @ =0x027E0000 - add r1, r1, #16320 - add r1, r1, #60 - ldr r0, _02000930 @ =0x01FF8000 - str r0, [r1] - bl sub_20EC5CC - bl sub_2000B64_dummy - bl sub_20EC694 - ldr r1, _02000934 @ =0x02000C55 - ldr lr, _02000938 @ =0xFFFF0000 - tst sp, #4 - subne sp, sp, #4 - bx r1 -_02000918: .4byte 0x027E0000 -_0200091C: .4byte 0x00000400 -_02000920: .4byte 0x05000000 -_02000924: .4byte 0x07000000 -_02000928: .4byte 0x02000B68 -_0200092C: .4byte 0x027FFF9C -_02000930: .4byte 0x01FF8000 -_02000934: .4byte 0x02000C55 @ NdsMain -_02000938: .4byte 0xFFFF0000 - arm_func_end Entry - - arm_func_start sub_200093C -sub_200093C: - add ip, r1, r2 -_02000940: - cmp r1, ip - stmlt r1!, {r0} - blt _02000940 - bx lr - arm_func_end sub_200093C - - arm_func_start sub_2000950 -sub_2000950: - cmp r0, #0 - beq _020009F8 - push {r4, r5, r6, r7} - ldmdb r0, {r1, r2} - add r2, r0, r2 - sub r3, r0, r1, lsr #24 - bic r1, r1, #-16777216 - sub r1, r0, r1 - mov r4, r2 -_02000974: - cmp r3, r1 - ble _020009D4 - ldrb r5, [r3, #-1]! - mov r6, #8 -_02000984: - subs r6, r6, #1 - blt _02000974 - tst r5, #128 - bne _020009A0 - ldrb r0, [r3, #-1]! - strb r0, [r2, #-1]! - b _020009C8 -_020009A0: - ldrb ip, [r3, #-1]! - ldrb r7, [r3, #-1]! - orr r7, r7, ip, lsl #8 - bic r7, r7, #61440 - add r7, r7, #2 - add ip, ip, #32 -_020009B8: - ldrb r0, [r2, r7] - strb r0, [r2, #-1]! - subs ip, ip, #16 - bge _020009B8 -_020009C8: - cmp r3, r1 - lsl r5, r5, #1 - bgt _02000984 -_020009D4: - mov r0, #0 - bic r3, r1, #31 -_020009DC: - mcr p15, #0, r0, cr7, cr10, 4 - mcr p15, #0, r3, cr7, cr5, 1 - mcr p15, #0, r3, cr7, cr14, 1 - add r3, r3, #32 - cmp r3, r4 - blt _020009DC - pop {r4, r5, r6, r7} -_020009F8: - bx lr - arm_func_end sub_2000950 - - arm_func_start sub_20009FC -sub_20009FC: - ldr r0, _02000A70 @ =0x02000B68 - ldr r1, [r0] - ldr r2, [r0, #4] - ldr r3, [r0, #8] -_02000A0C: - cmp r1, r2 - beq _02000A6C - ldr r5, [r1], #4 - ldr r7, [r1], #4 - add r6, r5, r7 - mov r4, r5 -_02000A24: - cmp r4, r6 - ldrmi r7, [r3], #4 - strmi r7, [r4], #4 - bmi _02000A24 - ldr r7, [r1], #4 - add r6, r4, r7 - mov r7, #0 -_02000A40: - cmp r4, r6 - strcc r7, [r4], #4 - bcc _02000A40 - bic r4, r5, #31 -_02000A50: - mcr p15, #0, r7, cr7, cr10, 4 - mcr p15, #0, r4, cr7, cr5, 1 - mcr p15, #0, r4, cr7, cr14, 1 - add r4, r4, #32 - cmp r4, r6 - blt _02000A50 - b _02000A0C -_02000A6C: - b _2000A74 -_02000A70: .4byte 0x02000B68 -_2000A74: - bx lr - arm_func_end sub_20009FC - - arm_func_start sub_2000A78 -sub_2000A78: @ 0x02000A78 - mrc p15, #0, r0, c1, c0, #0 - ldr r1, _02000B30 @ =0x000F9005 - bic r0, r0, r1 - mcr p15, #0, r0, c1, c0, #0 - mov r0, #0 - mcr p15, #0, r0, c7, c5, #0 - mcr p15, #0, r0, c7, c6, #0 - mcr p15, #0, r0, c7, c10, #4 - ldr r0, _02000B34 @ =0x04000033 - mcr p15, #0, r0, c6, c0, #0 - ldr r0, _02000B38 @ =0x0200002D - mcr p15, #0, r0, c6, c1, #0 - ldr r0, _02000B3C @ =0x027E0021 - mcr p15, #0, r0, c6, c2, #0 - ldr r0, _02000B40 @ =0x08000035 - mcr p15, #0, r0, c6, c3, #0 - ldr r0, _02000B44 @ =0x027E0000 - orr r0, r0, #0x1a - orr r0, r0, #1 - mcr p15, #0, r0, c6, c4, #0 - ldr r0, _02000B48 @ =0x0100002F - mcr p15, #0, r0, c6, c5, #0 - ldr r0, _02000B4C @ =0xFFFF001D - mcr p15, #0, r0, c6, c6, #0 - ldr r0, _02000B50 @ =0x027FF017 - mcr p15, #0, r0, c6, c7, #0 - mov r0, #0x20 - mcr p15, #0, r0, c9, c1, #1 - ldr r0, _02000B44 @ =0x027E0000 - orr r0, r0, #0xa - mcr p15, #0, r0, c9, c1, #0 - mov r0, #0x42 - mcr p15, #0, r0, c2, c0, #1 - mov r0, #0x42 - mcr p15, #0, r0, c2, c0, #0 - mov r0, #2 - mcr p15, #0, r0, c3, c0, #0 - ldr r0, _02000B54 @ =0x05100011 - mcr p15, #0, r0, c5, c0, #3 - ldr r0, _02000B58 @ =0x15111011 - mcr p15, #0, r0, c5, c0, #2 - mrc p15, #0, r0, c1, c0, #0 - ldr r1, _02000B5C @ =0x0005707D - orr r0, r0, r1 - mcr p15, #0, r0, c1, c0, #0 - bx lr - .align 2, 0 -_02000B30: .4byte 0x000F9005 -_02000B34: .4byte 0x04000033 -_02000B38: .4byte 0x0200002D -_02000B3C: .4byte 0x027E0021 -_02000B40: .4byte 0x08000035 -_02000B44: .4byte 0x027E0000 -_02000B48: .4byte 0x0100002F -_02000B4C: .4byte 0xFFFF001D -_02000B50: .4byte 0x027FF017 -_02000B54: .4byte 0x05100011 -_02000B58: .4byte 0x15111011 -_02000B5C: .4byte 0x0005707D - - arm_func_start sub_2000B60_dummy -sub_2000B60_dummy: @ 0x02000B60 - bx lr - - arm_func_start sub_2000B64_dummy -sub_2000B64_dummy: @ 0x02000B64 - bx lr -_02000B68: - .word 0x02107700 - .word 0x02107724 - .word 0x02106FA0 - .word 0x02106FA0 - .word 0x021D74E0 - .word 0x00000000 - - .byte 0x31, 0x75, 0x02, 0x03, 0x21, 0x06, 0xC0, 0xDE, 0xDE, 0xC0, 0x06, 0x21 - - # strings + thumb_func_start NitroMain +NitroMain: ; 0x02000C54 + push {r3-r7, lr} + bl sub_02016014 + bl sub_02016148 + bl sub_020163BC + mov r0, #0x0 + bl sub_02016438 + ldr r0, _02000DD0 ; =0x02106FA0 + mov r1, #0x0 + blx sub_020D50D8 + bl sub_02022294 + bl sub_0201259C + bl sub_02000DF4 + bl sub_02002C14 + mov r0, #0x0 + mov r1, #0x3 + bl sub_02002C50 + mov r0, #0x1 + mov r1, #0x3 + bl sub_02002C50 + mov r0, #0x3 + add r1, r0, #0x0 + bl sub_02002C50 + mov r1, #0x0 + ldr r0, _02000DD4 ; =0x02106FA0 + mvn r1, r1 + str r1, [r0, #0x18] + bl sub_0202254C + ldr r1, _02000DD4 ; =0x02106FA0 + str r0, [r1, #0x20] + bl sub_02029EF8 + add r4, r0, #0x0 + ldr r0, _02000DD4 ; =0x02106FA0 + ldr r0, [r0, #0x20] + bl sub_02023900 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl sub_02003B98 + bl sub_02020AFC + mov r0, #0x3 + bl sub_020337E8 + cmp r0, #0x3 + bne _02000CD4 + mov r0, #0x3 + mov r1, #0x0 + bl sub_02034188 +_02000CD4: + ldr r0, _02000DD4 ; =0x02106FA0 + ldr r0, [r0, #0x20] + bl sub_020227FC + cmp r0, #0x0 + bne _02000CE8 + mov r0, #0x0 + bl sub_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 sub_02000E7C + b _02000D1A +_02000D06: + ldr r0, _02000DD4 ; =0x02106FA0 + mov r1, #0x1 + str r1, [r0, #0x1c] + ldr r0, _02000DE4 ; =0x00000034 + ldr r1, _02000DE8 ; =0x021D76C8 + bl sub_02000E7C + b _02000D1A +_02000D16: + bl sub_02020C2C +_02000D1A: + ldr r0, _02000DEC ; =0x021C48B8 + mov r1, #0x1 + str r1, [r0, #0x6c] + mov r1, #0x0 + str r1, [r0, #0x30] + bl sub_02000FA4 + bl sub_0200A2AC + bl sub_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 sub_02000EE8 + bl sub_02000FE8 + bl sub_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 sub_02000F18 +_02000D64: + bl sub_0202FB80 + cmp r0, #0x0 + beq _02000D90 + bl sub_02000E0C + ldr r0, [r4, #0x18] + bl sub_0201B5CC + ldr r0, [r4, #0x24] + bl sub_0201B5CC + ldr r0, [r4, #0x30] + cmp r0, #0x0 + bne _02000D90 + mov r0, #0x1 + add r1, r0, #0x0 + blx sub_020C9C0C + ldr r0, [r4, #0x2c] + add r0, r0, #0x1 + str r0, [r4, #0x2c] +_02000D90: + bl sub_020125D4 + bl sub_02015E60 + bl sub_020222C4 + ldr r0, [r4, #0x24] + bl sub_0201B5CC + mov r0, #0x1 + add r1, r0, #0x0 + blx sub_020C9C0C + ldr r0, [r4, #0x2c] + add r0, r0, #0x1 + str r0, [r4, #0x2c] + str r5, [r4, #0x30] + bl sub_0200A318 + bl sub_0200E2D8 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02000DC4 + ldr r0, [r4, #0x4] + blx r1 +_02000DC4: + bl sub_02003C10 + ldr r0, [r4, #0x20] + bl sub_0201B5CC + b _02000D40 .balign 4 - .asciz "[SDK+NINTENDO:DWC1.2.30006.061019.2254_DWC_1_2_PLUS6]" - .balign 4 - .asciz "[SDK+NINTENDO:WiFi1.2.30000.0609050341]" - .balign 4 - .asciz "[SDK+UBIQUITOUS:CPS]" - .balign 4 - .asciz "[SDK+UBIQUITOUS:SSL]" - .balign 4 - .asciz "[SDK+Abiosso:libVCT 1.0.1_ec]" - .balign 4 - .asciz "[SDK+NINTENDO:BACKUP]" +_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/rom2.s b/asm/rom2.s index 26636dae4..ded2e8ad4 100644 --- a/asm/rom2.s +++ b/asm/rom2.s @@ -1,13 +1,13 @@ -/* rom.s TODO: Disassemble */ +/* rom2.s TODO: Disassemble */ .section .text -.incbin "baserom.nds", 0x4E0C, 0xEB7C0 +.incbin "baserom.nds", 0x8EC14, 0x619B8 - .global sub_20EC5CC -sub_20EC5CC: + .global sub_020EC5CC +sub_020EC5CC: .incbin "baserom.nds", 0xF05CC, 0xC8 - .global sub_20EC694 -sub_20EC694: + .global sub_020EC694 +sub_020EC694: .incbin "baserom.nds", 0xF0694, 0x1b090 diff --git a/asm/rom_header.s b/asm/rom_header.s index 2dc62ad51..d4657a484 100644 --- a/asm/rom_header.s +++ b/asm/rom_header.s @@ -29,13 +29,13 @@ RomVersion: .space 1 ARM9ROMOffset: -.word _arm9SegmentRomStart +.word 0x00004000 ARM9EntryAddress: -.word Entry +.word 0x02000800 ARM9RAMAddress: -.word _arm9SegmentStart +.word 0x02000000 ARM9CodeSize: -.word _arm9SegmentSize +.word 0x00107724 ARM7ROMOffset: .word 0x0030D000 ARM7EntryAddress: @@ -110,6 +110,4 @@ HeaderCRC: .short 0xCA37 /* reserved */ -.global __startup -__startup: .space 160 /* hack so it builds */ diff --git a/global.inc b/global.inc new file mode 100644 index 000000000..0845d4e28 --- /dev/null +++ b/global.inc @@ -0,0 +1,2207 @@ +.extern sub_0200019E +.extern sub_02000DF4 +.extern sub_02000E0C +.extern sub_02000E7C +.extern sub_02000E7C +.extern sub_02000EE8 +.extern sub_02000F18 +.extern sub_02000FA4 +.extern sub_02000FE8 +.extern sub_0208ACEC +.extern sub_0208AD80 +.extern sub_0208AF80 +.extern sub_0208AF94 +.extern sub_0208AFA8 +.extern sub_0208B05C +.extern sub_0208B128 +.extern sub_0208B4A0 +.extern sub_02090CC8 +.extern sub_02090DB8 +.extern sub_02096B14 +.extern sub_02096B78 +.extern sub_02096CCC +.extern sub_02096CCC +.extern sub_02096D2C +.extern sub_02096DA0 +.extern sub_02096DA0 +.extern sub_02096DA0 +.extern sub_02096DA0 +.extern sub_02096DA0 +.extern sub_02096DA0 +.extern sub_02096DA0 +.extern sub_02096E90 +.extern sub_02096F18 +.extern sub_02096F80 +.extern sub_02096FB0 +.extern sub_02096FF4 +.extern sub_0209700C +.extern sub_0209700C +.extern sub_0209700C +.extern sub_0209700C +.extern sub_020973B4 +.extern sub_020ADDC0 +.extern sub_020ADDC8 +.extern sub_020ADDF0 +.extern sub_020ADDF0 +.extern sub_020ADDF0 +.extern sub_020ADE2C +.extern sub_020ADFA0 +.extern sub_020ADFA0 +.extern sub_020ADFDC +.extern sub_020ADFE8 +.extern sub_020ADFE8 +.extern sub_020AE82C +.extern sub_020AE8CC +.extern sub_020AE918 +.extern sub_020AEB70 +.extern sub_020AEB70 +.extern sub_020AEC7C +.extern sub_020AEC98 +.extern sub_020AEE40 +.extern sub_020AEEB8 +.extern sub_020AEF1C +.extern sub_020AF894 +.extern sub_020AF9C4 +.extern sub_020AFA28 +.extern sub_020AFA80 +.extern sub_020AFBA8 +.extern sub_020AFBFC +.extern sub_020AFC04 +.extern sub_020AFC04 +.extern sub_020AFC04 +.extern sub_020AFC04 +.extern sub_020AFC04 +.extern sub_020AFD88 +.extern sub_020AFD94 +.extern sub_020AFD94 +.extern sub_020AFD94 +.extern sub_020AFEB8 +.extern sub_020AFEB8 +.extern sub_020AFFD8 +.extern sub_020B0030 +.extern sub_020B0030 +.extern sub_020B0030 +.extern sub_020B0088 +.extern sub_020B0088 +.extern sub_020B0088 +.extern sub_020B0088 +.extern sub_020B0088 +.extern sub_020B0088 +.extern sub_020B0088 +.extern sub_020B0088 +.extern sub_020B0088 +.extern sub_020B0088 +.extern sub_020B00F0 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0138 +.extern sub_020B0180 +.extern sub_020B0180 +.extern sub_020B0180 +.extern sub_020B0180 +.extern sub_020B0180 +.extern sub_020B0180 +.extern sub_020B0250 +.extern sub_020B0250 +.extern sub_020B0250 +.extern sub_020B0250 +.extern sub_020B02C8 +.extern sub_020B0448 +.extern sub_020B0448 +.extern sub_020B0870 +.extern sub_020B0870 +.extern sub_020B0BB0 +.extern sub_020B0BB0 +.extern sub_020B0C7C +.extern sub_020B0C7C +.extern sub_020B0E34 +.extern sub_020B0E34 +.extern sub_020B0FC0 +.extern sub_020B0FC0 +.extern sub_020B10E8 +.extern sub_020B1240 +.extern sub_020B1240 +.extern sub_020B1240 +.extern sub_020B1240 +.extern sub_020B1240 +.extern sub_020B1340 +.extern sub_020B1528 +.extern sub_020B1528 +.extern sub_020B1528 +.extern sub_020B1768 +.extern sub_020B19C4 +.extern sub_020B19C4 +.extern sub_020B19C4 +.extern sub_020B19C4 +.extern sub_020B19C4 +.extern sub_020B19DC +.extern sub_020B19DC +.extern sub_020B19DC +.extern sub_020B19DC +.extern sub_020B1A14 +.extern sub_020B1A14 +.extern sub_020B1A14 +.extern sub_020B1A14 +.extern sub_020B1A14 +.extern sub_020B1A14 +.extern sub_020B1A14 +.extern sub_020B1A24 +.extern sub_020B1A24 +.extern sub_020B1A24 +.extern sub_020B1A24 +.extern sub_020B1A24 +.extern sub_020B1EA4 +.extern sub_020B1EC4 +.extern sub_020B1EE4 +.extern sub_020B1EFC +.extern sub_020B1F80 +.extern sub_020B20C8 +.extern sub_020B2194 +.extern sub_020B224C +.extern sub_020B23D8 +.extern sub_020B242C +.extern sub_020B242C +.extern sub_020B2780 +.extern sub_020B2794 +.extern sub_020B28B4 +.extern sub_020B2A08 +.extern sub_020B2A08 +.extern sub_020B2A08 +.extern sub_020B2B08 +.extern sub_020B2B58 +.extern sub_020B2D9C +.extern sub_020B317C +.extern sub_020B31F0 +.extern sub_020B326C +.extern sub_020B3334 +.extern sub_020B3390 +.extern sub_020B33A0 +.extern sub_020B4358 +.extern sub_020B43A4 +.extern sub_020B442C +.extern sub_020B4568 +.extern sub_020B4F38 +.extern sub_020B4F38 +.extern sub_020B4F38 +.extern sub_020B502C +.extern sub_020B502C +.extern sub_020B772C +.extern sub_020B7790 +.extern sub_020B7790 +.extern sub_020B7C58 +.extern sub_020B7C58 +.extern sub_020B7C78 +.extern sub_020B7C78 +.extern sub_020B7CDC +.extern sub_020B7CDC +.extern sub_020B7CDC +.extern sub_020B7CE4 +.extern sub_020B7CE4 +.extern sub_020B7CE4 +.extern sub_020B7CE4 +.extern sub_020B7CE4 +.extern sub_020B7CF0 +.extern sub_020B7CF0 +.extern sub_020B7D28 +.extern sub_020B7D28 +.extern sub_020B7DFC +.extern sub_020B7DFC +.extern sub_020B7DFC +.extern sub_020B7E10 +.extern sub_020B7E10 +.extern sub_020B7E10 +.extern sub_020B7E10 +.extern sub_020B7E10 +.extern sub_020B7E1C +.extern sub_020B7E1C +.extern sub_020B7E1C +.extern sub_020B7E1C +.extern sub_020B7E1C +.extern sub_020B80B4 +.extern sub_020B80B4 +.extern sub_020B80B4 +.extern sub_020B80B4 +.extern sub_020B844C +.extern sub_020B844C +.extern sub_020B844C +.extern sub_020B8474 +.extern sub_020B8474 +.extern sub_020B8474 +.extern sub_020B8474 +.extern sub_020B849C +.extern sub_020B849C +.extern sub_020B849C +.extern sub_020B849C +.extern sub_020B849C +.extern sub_020B849C +.extern sub_020B849C +.extern sub_020B849C +.extern sub_020BAC98 +.extern sub_020BAFB8 +.extern sub_020BB1C0 +.extern sub_020BB1C0 +.extern sub_020BB1C0 +.extern sub_020BB1C0 +.extern sub_020BB1C0 +.extern sub_020BB1C0 +.extern sub_020BB1C0 +.extern sub_020BB1C0 +.extern sub_020BB1C0 +.extern sub_020BB1C0 +.extern sub_020BB394 +.extern sub_020BB394 +.extern sub_020BB394 +.extern sub_020BB394 +.extern sub_020BB59C +.extern sub_020BB59C +.extern sub_020BB7F4 +.extern sub_020BB7F4 +.extern sub_020BC0FC +.extern sub_020BC0FC +.extern sub_020BC0FC +.extern sub_020BC0FC +.extern sub_020BC0FC +.extern sub_020BC0FC +.extern sub_020BC13C +.extern sub_020BC13C +.extern sub_020BC13C +.extern sub_020BC13C +.extern sub_020BC13C +.extern sub_020BC2A0 +.extern sub_020BC2A0 +.extern sub_020C0174 +.extern sub_020C01A0 +.extern sub_020C01D0 +.extern sub_020C03B8 +.extern sub_020C041C +.extern sub_020C044C +.extern sub_020C04DC +.extern sub_020C04DC +.extern sub_020C0510 +.extern sub_020C054C +.extern sub_020C0670 +.extern sub_020C0670 +.extern sub_020C0688 +.extern sub_020C0688 +.extern sub_020C0DD4 +.extern sub_020C0E14 +.extern sub_020C0E7C +.extern sub_020C0E7C +.extern sub_020C0E7C +.extern sub_020C0EA4 +.extern sub_020C0EF4 +.extern sub_020C0F30 +.extern sub_020C0F50 +.extern sub_020C0F68 +.extern sub_020C0F68 +.extern sub_020C0F80 +.extern sub_020C0F8C +.extern sub_020C0F9C +.extern sub_020C0FDC +.extern sub_020C1040 +.extern sub_020C10A4 +.extern sub_020C10A4 +.extern sub_020C10A4 +.extern sub_020C10A4 +.extern sub_020C10A4 +.extern sub_020C1148 +.extern sub_020C1180 +.extern sub_020C1E58 +.extern sub_020C1E68 +.extern sub_020C1EA4 +.extern sub_020C1F54 +.extern sub_020C1FA4 +.extern sub_020C1FF0 +.extern sub_020C20DC +.extern sub_020C2104 +.extern sub_020C217C +.extern sub_020C226C +.extern sub_020C226C +.extern sub_020C22D0 +.extern sub_020C23FC +.extern sub_020C23FC +.extern sub_020C23FC +.extern sub_020C26F8 +.extern sub_020C2828 +.extern sub_020C290C +.extern sub_020C2A94 +.extern sub_020C35E0 +.extern sub_020C360C +.extern sub_020C3640 +.extern sub_020C3674 +.extern sub_020C36A8 +.extern sub_020C3910 +.extern sub_020C3910 +.extern sub_020C3910 +.extern sub_020C3910 +.extern sub_020C3980 +.extern sub_020C3980 +.extern sub_020C3980 +.extern sub_020C3980 +.extern sub_020C3980 +.extern sub_020C39CC +.extern sub_020C3EA4 +.extern sub_020C3EB0 +.extern sub_020C3F14 +.extern sub_020C3F14 +.extern sub_020C3F38 +.extern sub_020C3F38 +.extern sub_020C3F54 +.extern sub_020C3F54 +.extern sub_020C3F70 +.extern sub_020C3F70 +.extern sub_020C400C +.extern sub_020C400C +.extern sub_020C400C +.extern sub_020C400C +.extern sub_020C504C +.extern sub_020C504C +.extern sub_020C50B8 +.extern sub_020C50B8 +.extern sub_020C50B8 +.extern sub_020C5288 +.extern sub_020C5288 +.extern sub_020C5288 +.extern sub_020C53C8 +.extern sub_020C5588 +.extern sub_020C5600 +.extern sub_020C5600 +.extern sub_020C5600 +.extern sub_020C5634 +.extern sub_020C5634 +.extern sub_020C5634 +.extern sub_020C5634 +.extern sub_020C5668 +.extern sub_020C5974 +.extern sub_020C5978 +.extern sub_020C5978 +.extern sub_020C59A4 +.extern sub_020C59A4 +.extern sub_020C59C0 +.extern sub_020C59C0 +.extern sub_020C5A34 +.extern sub_020C5A80 +.extern sub_020C5AC8 +.extern sub_020C5AF8 +.extern sub_020C5AF8 +.extern sub_020C5B28 +.extern sub_020C5D2C +.extern sub_020C5D4C +.extern sub_020C5D4C +.extern sub_020C5D9C +.extern sub_020C5DBC +.extern sub_020C5DBC +.extern sub_020C5DBC +.extern sub_020C5DBC +.extern sub_020C5DBC +.extern sub_020C5DBC +.extern sub_020C5DBC +.extern sub_020C5DBC +.extern sub_020C5E54 +.extern sub_020C600C +.extern sub_020C6034 +.extern sub_020C605C +.extern sub_020C6070 +.extern sub_020C6098 +.extern sub_020C60AC +.extern sub_020C60C0 +.extern sub_020C60E4 +.extern sub_020C6108 +.extern sub_020C611C +.extern sub_020C6168 +.extern sub_020C61F4 +.extern sub_020C6280 +.extern sub_020C62FC +.extern sub_020C63A8 +.extern sub_020C65C0 +.extern sub_020C66B4 +.extern sub_020C68B8 +.extern sub_020C6970 +.extern sub_020C6A84 +.extern sub_020C6BF0 +.extern sub_020C7124 +.extern sub_020C74B8 +.extern sub_020C74B8 +.extern sub_020C74B8 +.extern sub_020C74B8 +.extern sub_020C74B8 +.extern sub_020C74B8 +.extern sub_020C74DC +.extern sub_020C74DC +.extern sub_020C74DC +.extern sub_020C74DC +.extern sub_020C74DC +.extern sub_020C74DC +.extern sub_020C74F8 +.extern sub_020C74F8 +.extern sub_020C74F8 +.extern sub_020C74F8 +.extern sub_020C74F8 +.extern sub_020C7A14 +.extern sub_020C7B3C +.extern sub_020C7B3C +.extern sub_020C7B3C +.extern sub_020C7B3C +.extern sub_020C7B3C +.extern sub_020C7C28 +.extern sub_020C7C28 +.extern sub_020C7C28 +.extern sub_020C7C28 +.extern sub_020C7C28 +.extern sub_020C7D28 +.extern sub_020C7D28 +.extern sub_020C7E0C +.extern sub_020C7E94 +.extern sub_020C7FF0 +.extern sub_020C7FF0 +.extern sub_020C802C +.extern sub_020C8068 +.extern sub_020C80A4 +.extern sub_020C823C +.extern sub_020C8538 +.extern sub_020C8A2C +.extern sub_020C8B10 +.extern sub_020C8EEC +.extern sub_020C922C +.extern sub_020C9294 +.extern sub_020C9294 +.extern sub_020C9294 +.extern sub_020C9294 +.extern sub_020C92F4 +.extern sub_020C92F4 +.extern sub_020C92F4 +.extern sub_020C92F4 +.extern sub_020C9354 +.extern sub_020C93BC +.extern sub_020C9418 +.extern sub_020C9480 +.extern sub_020C9480 +.extern sub_020C9480 +.extern sub_020C9480 +.extern sub_020C94E8 +.extern sub_020C94E8 +.extern sub_020C94E8 +.extern sub_020C94E8 +.extern sub_020C9550 +.extern sub_020C9550 +.extern sub_020C9550 +.extern sub_020C9550 +.extern sub_020C9550 +.extern sub_020C9C0C +.extern sub_020C9C0C +.extern sub_020C9C0C +.extern sub_020C9C0C +.extern sub_020C9C0C +.extern sub_020C9C0C +.extern sub_020C9C0C +.extern sub_020C9C0C +.extern sub_020C9C0C +.extern sub_020C9E14 +.extern sub_020C9E14 +.extern sub_020C9E14 +.extern sub_020C9E14 +.extern sub_020C9E5C +.extern sub_020C9E5C +.extern sub_020C9E5C +.extern sub_020C9E5C +.extern sub_020C9E5C +.extern sub_020C9E5C +.extern sub_020C9E5C +.extern sub_020C9FEC +.extern sub_020C9FEC +.extern sub_020C9FEC +.extern sub_020C9FEC +.extern sub_020C9FEC +.extern sub_020C9FEC +.extern sub_020CA0A0 +.extern sub_020CA0A0 +.extern sub_020CA0A0 +.extern sub_020CA0F8 +.extern sub_020CA0F8 +.extern sub_020CA0F8 +.extern sub_020CA0F8 +.extern sub_020CC124 +.extern sub_020CC124 +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC15C +.extern sub_020CC180 +.extern sub_020CC1B4 +.extern sub_020CC204 +.extern sub_020CC26C +.extern sub_020CC26C +.extern sub_020CC26C +.extern sub_020CC26C +.extern sub_020CC26C +.extern sub_020CC26C +.extern sub_020CC26C +.extern sub_020CC26C +.extern sub_020CC2F4 +.extern sub_020CC308 +.extern sub_020CC31C +.extern sub_020CC408 +.extern sub_020CCD64 +.extern sub_020CD310 +.extern sub_020CD310 +.extern sub_020CD310 +.extern sub_020CD324 +.extern sub_020CD324 +.extern sub_020CD324 +.extern sub_020CD374 +.extern sub_020CD374 +.extern sub_020CD374 +.extern sub_020CD374 +.extern sub_020CD374 +.extern sub_020CD3B4 +.extern sub_020CD3B4 +.extern sub_020CD3B4 +.extern sub_020CD3B4 +.extern sub_020CD3B4 +.extern sub_020CD3B4 +.extern sub_020CD510 +.extern sub_020CD510 +.extern sub_020CD510 +.extern sub_020CD510 +.extern sub_020CD524 +.extern sub_020CD5A0 +.extern sub_020CD5A0 +.extern sub_020CD5A0 +.extern sub_020CD5A0 +.extern sub_020CD5A0 +.extern sub_020CD5A0 +.extern sub_020CD754 +.extern sub_020CD850 +.extern sub_020CD850 +.extern sub_020CD850 +.extern sub_020CD850 +.extern sub_020CD998 +.extern sub_020CDA1C +.extern sub_020CDA1C +.extern sub_020CDD90 +.extern sub_020CDE04 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1C8 +.extern sub_020CE1E0 +.extern sub_020CE1E0 +.extern sub_020CE1E0 +.extern sub_020CE1E0 +.extern sub_020CE1E0 +.extern sub_020CE1E0 +.extern sub_020CE1E0 +.extern sub_020CE1E0 +.extern sub_020CE1E0 +.extern sub_020CE1E0 +.extern sub_020CE1E0 +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE1FC +.extern sub_020CE210 +.extern sub_020CE210 +.extern sub_020CE210 +.extern sub_020CE210 +.extern sub_020CE210 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE240 +.extern sub_020CE28C +.extern sub_020CE28C +.extern sub_020CE28C +.extern sub_020CE28C +.extern sub_020CE28C +.extern sub_020CE28C +.extern sub_020CE28C +.extern sub_020CE28C +.extern sub_020CE2E0 +.extern sub_020CE2E0 +.extern sub_020CE2E0 +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE34C +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE3E0 +.extern sub_020CE528 +.extern sub_020CE528 +.extern sub_020CE528 +.extern sub_020CE528 +.extern sub_020CF768 +.extern sub_020D1148 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D17A0 +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D180C +.extern sub_020D182C +.extern sub_020D18FC +.extern sub_020D18FC +.extern sub_020D18FC +.extern sub_020D18FC +.extern sub_020D18FC +.extern sub_020D18FC +.extern sub_020D18FC +.extern sub_020D18FC +.extern sub_020D18FC +.extern sub_020D1944 +.extern sub_020D1944 +.extern sub_020D1944 +.extern sub_020D1944 +.extern sub_020D1944 +.extern sub_020D1944 +.extern sub_020D1944 +.extern sub_020D1944 +.extern sub_020D1944 +.extern sub_020D1944 +.extern sub_020D1C94 +.extern sub_020D1C94 +.extern sub_020D1C94 +.extern sub_020D1C94 +.extern sub_020D1C94 +.extern sub_020D1C94 +.extern sub_020D1C94 +.extern sub_020D1C94 +.extern sub_020D1C94 +.extern sub_020D1C94 +.extern sub_020D1C94 +.extern sub_020D1CC4 +.extern sub_020D1CD4 +.extern sub_020D1D10 +.extern sub_020D1D10 +.extern sub_020D1D30 +.extern sub_020D1D30 +.extern sub_020D2040 +.extern sub_020D2094 +.extern sub_020D2210 +.extern sub_020D2210 +.extern sub_020D23B4 +.extern sub_020D2454 +.extern sub_020D24EC +.extern sub_020D24EC +.extern sub_020D24EC +.extern sub_020D24EC +.extern sub_020D36C4 +.extern sub_020D36C4 +.extern sub_020D36D8 +.extern sub_020D36D8 +.extern sub_020D36F0 +.extern sub_020D36F0 +.extern sub_020D3A90 +.extern sub_020D3AA0 +.extern sub_020D3C14 +.extern sub_020D3CB8 +.extern sub_020D3DCC +.extern sub_020D3E24 +.extern sub_020D3EC4 +.extern sub_020D3EC4 +.extern sub_020D400C +.extern sub_020D40B8 +.extern sub_020D4718 +.extern sub_020D47CC +.extern sub_020D4980 +.extern sub_020D4A5C +.extern sub_020D4E68 +.extern sub_020D50D8 +.extern sub_020D5150 +.extern sub_020D5168 +.extern sub_020D5180 +.extern sub_020D526C +.extern sub_020D526C +.extern sub_020D5F40 +.extern sub_020D614C +.extern sub_020D6320 +.extern sub_020D6320 +.extern sub_020D6578 +.extern sub_020D6578 +.extern sub_020D6578 +.extern sub_020D6578 +.extern sub_020D660C +.extern sub_020D660C +.extern sub_020D660C +.extern sub_020D660C +.extern sub_020D660C +.extern sub_020D66A0 +.extern sub_020D66A0 +.extern sub_020D66A0 +.extern sub_020D66A0 +.extern sub_020D66B0 +.extern sub_020D66B0 +.extern sub_020D66B0 +.extern sub_020D6700 +.extern sub_020D6DAC +.extern sub_020D6DB8 +.extern sub_020D6DC4 +.extern sub_020D6DC4 +.extern sub_020D6F20 +.extern sub_020D6F20 +.extern sub_020D6F20 +.extern sub_020D7228 +.extern sub_020D7D18 +.extern sub_020D7E9C +.extern sub_020D8A4C +.extern sub_020D8AF0 +.extern sub_020D8B94 +.extern sub_020D8C3C +.extern sub_020D8C3C +.extern sub_020D8F34 +.extern sub_020D9014 +.extern sub_020D9060 +.extern sub_020D9060 +.extern sub_020D9168 +.extern sub_020D9244 +.extern sub_020D940C +.extern sub_020D950C +.extern sub_020D9554 +.extern sub_020D9624 +.extern sub_020D972C +.extern sub_020D9774 +.extern sub_020D97B4 +.extern sub_020D9960 +.extern sub_020D9960 +.extern sub_020D99EC +.extern sub_020D9B48 +.extern sub_020D9B48 +.extern sub_020DAD74 +.extern sub_020DADD4 +.extern sub_020DAF30 +.extern sub_020DB7A8 +.extern sub_020DDC5C +.extern sub_020DDC5C +.extern sub_020DDCE4 +.extern sub_020DDD28 +.extern sub_020DDD28 +.extern sub_020DDD60 +.extern sub_020DDD60 +.extern sub_020DDE44 +.extern sub_020DDE44 +.extern sub_020DDF60 +.extern sub_020DE3F0 +.extern sub_020DE3F0 +.extern sub_020DE3F0 +.extern sub_020DE3F0 +.extern sub_020DE3F0 +.extern sub_020DE3F0 +.extern sub_020DE3F0 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF438 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF4A4 +.extern sub_020DF510 +.extern sub_020E2EAC +.extern sub_020E2EC8 +.extern sub_020E2EC8 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EA980 +.extern sub_020EAEF0 +.extern sub_020EAEF0 +.extern sub_020EAEF0 +.extern sub_020EB010 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB084 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4C0 +.extern sub_020EB4F4 +.extern sub_020EB4F4 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB534 +.extern sub_020EB57C +.extern sub_020EB57C +.extern sub_020EB5C4 +.extern sub_020EB5C4 +.extern sub_020EB5C4 +.extern sub_020EB5C4 +.extern sub_020EB5C4 +.extern sub_020EB5C4 +.extern sub_020EB5C4 +.extern sub_020EB5C4 +.extern sub_020EB5C4 +.extern sub_020EB5C4 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EB7B0 +.extern sub_020EBA38 +.extern sub_020EBA38 +.extern sub_020EBBE8 +.extern sub_020EBBE8 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC30 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBC80 +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_020EBE8C +.extern sub_021D78FC +.extern sub_021D78FC +.extern sub_021D79B4 +.extern sub_021D79B4 +.extern sub_021D7CA4 +.extern sub_021D7CA4 +.extern sub_021D7CA4 +.extern sub_021D7CA4 +.extern sub_021D7CA4 +.extern sub_021D7CA4 +.extern sub_021D7CA4 +.extern sub_021D7CA4 +.extern sub_021D7F8C +.extern sub_021D8018 +.extern sub_021D8018 +.extern sub_021D8164 +.extern sub_021D82BC +.extern sub_021D8320 +.extern sub_021D836C +.extern sub_021D83C0 +.extern sub_021D83C0 +.extern sub_021D844C +.extern sub_021D85FC +.extern sub_021D8624 +.extern sub_021D88E4 +.extern sub_021D88E4 +.extern sub_021D88E4 +.extern sub_021D88E4 +.extern sub_021D88E4 +.extern sub_021D89CC +.extern sub_021D8B64 +.extern sub_021D8B64 +.extern sub_021D8B64 +.extern sub_021D8B64 +.extern sub_021D8B64 +.extern sub_021D8B64 +.extern sub_021D8C24 +.extern sub_021D917C +.extern sub_021D959C +.extern sub_021D959C +.extern sub_021D959C +.extern sub_021D959C +.extern sub_021D967C +.extern sub_021D967C +.extern sub_021D967C +.extern sub_021D967C +.extern sub_021D96F4 +.extern sub_021D96F4 +.extern sub_021D96F4 +.extern sub_021D96F4 +.extern sub_021D96F4 +.extern sub_021D9708 +.extern sub_021D9708 +.extern sub_021D9708 +.extern sub_021D9708 +.extern sub_021D9708 +.extern sub_021D971C +.extern sub_021D971C +.extern sub_021D971C +.extern sub_021D971C +.extern sub_021D971C +.extern sub_021D9820 +.extern sub_021D9820 +.extern sub_021D9820 +.extern sub_021D9820 +.extern sub_021D9820 +.extern sub_021D99F8 +.extern sub_021D99F8 +.extern sub_021D99F8 +.extern sub_021D99F8 +.extern sub_021DA464 +.extern sub_021DA58C +.extern sub_021DA5B8 +.extern sub_021DA5B8 +.extern sub_021DA5C8 +.extern sub_021DA5D0 +.extern sub_021DA5D0 +.extern sub_021DAC70 +.extern sub_021DAE40 +.extern sub_021DAED4 +.extern sub_021DAF28 +.extern sub_021DAF78 +.extern sub_021DAF98 +.extern sub_021DAF98 +.extern sub_021DB030 +.extern sub_021DB030 +.extern sub_021DB030 +.extern sub_021DB7E8 +.extern sub_021DB858 +.extern sub_021DC174 +.extern sub_021DC174 +.extern sub_021DD6F0 +.extern sub_021DD718 +.extern sub_021DD718 +.extern sub_021DDB08 +.extern sub_021E1374 +.extern sub_021E1858 +.extern sub_021E1994 +.extern sub_021E1BF8 +.extern sub_021E1BF8 +.extern sub_021E1C4C +.extern sub_021E1C4C +.extern sub_021E1C54 +.extern sub_021E1C54 +.extern sub_021E1ECC +.extern sub_021E1F34 +.extern sub_021E1F34 +.extern sub_021E1F58 +.extern sub_021E1F60 +.extern sub_021E2464 +.extern sub_021E2608 +.extern sub_021E26CC +.extern sub_021E2B80 +.extern sub_021E2B9C +.extern sub_021E2BB8 +.extern sub_021E2BB8 +.extern sub_021E2BB8 +.extern sub_021E2BD0 +.extern sub_021E2BD0 +.extern sub_021E2BD0 +.extern sub_021E2BD0 +.extern sub_021E2BD0 +.extern sub_021E2BD0 +.extern sub_021E2BD0 +.extern sub_021E2BD0 +.extern sub_021E2BD0 +.extern sub_021E2BD0 +.extern sub_021E2C24 +.extern sub_021E2C24 +.extern sub_021E2C58 +.extern sub_021E2C58 +.extern sub_021E2C58 +.extern sub_021E2CBC +.extern sub_021E32F0 +.extern sub_021E32F0 +.extern sub_021E331C +.extern sub_021E331C +.extern sub_021E331C +.extern sub_021E3424 +.extern sub_021E3444 +.extern sub_021E495C +.extern sub_021E4C54 +.extern sub_021E4C60 +.extern sub_021E4DE4 +.extern sub_021E5970 +.extern sub_021E5B30 +.extern sub_021E5B30 +.extern sub_021E5B30 +.extern sub_021E5B30 +.extern sub_021E5FD8 +.extern sub_021E5FD8 +.extern sub_021E5FD8 +.extern sub_021E5FD8 +.extern sub_021E5FD8 +.extern sub_021E5FE0 +.extern sub_021E5FE0 +.extern sub_021E5FE0 +.extern sub_021E5FE0 +.extern sub_021E5FE0 +.extern sub_021E5FE0 +.extern sub_021E6410 +.extern sub_021E643C +.extern sub_021E6990 +.extern sub_021E69BC +.extern sub_021E6BF4 +.extern sub_021E7030 +.extern sub_021E70F0 +.extern sub_021E7138 +.extern sub_021E7138 +.extern sub_021E7138 +.extern sub_021E7184 +.extern sub_021E71E8 +.extern sub_021E7750 +.extern sub_021E7750 +.extern sub_021E799C +.extern sub_021E799C +.extern sub_021E7AC0 +.extern sub_021E7AC0 +.extern sub_021E7EA0 +.extern sub_021E7EA0 +.extern sub_021E7EA0 +.extern sub_021E7EB0 +.extern sub_021E7EB0 +.extern sub_021E7EC4 +.extern sub_021E7EC4 +.extern sub_021E7EC4 +.extern sub_021E7EC4 +.extern sub_021E7EC8 +.extern sub_021E7ED0 +.extern sub_021E7ED0 +.extern sub_021E7ED0 +.extern sub_021E7ED0 +.extern sub_021E7ED8 +.extern sub_021E7FBC +.extern sub_021E8128 +.extern sub_021E8128 +.extern sub_021E8130 +.extern sub_021E8130 +.extern sub_021E8130 +.extern sub_021E8140 +.extern sub_021E8140 +.extern sub_021E8144 +.extern sub_021E8148 +.extern sub_021E8148 +.extern sub_021E8158 +.extern sub_021E81BC +.extern sub_021E84F4 +.extern sub_021E856C +.extern sub_021E8588 +.extern sub_021E85E4 +.extern sub_021E85FC +.extern sub_021ECF14 +.extern sub_021ED49C +.extern sub_021ED940 +.extern sub_021EDA48 +.extern sub_021EDBC8 +.extern sub_021EF5E0 +.extern sub_021EF5E0 +.extern sub_021EF604 +.extern sub_021EF604 +.extern sub_021EF604 +.extern sub_021EF604 +.extern sub_021EF620 +.extern sub_021EF654 +.extern sub_021EF824 +.extern sub_021EF824 +.extern sub_021EF824 +.extern sub_021EF844 +.extern sub_021EF844 +.extern sub_021EF8C8 +.extern sub_021EF8DC +.extern sub_021EFA9C +.extern sub_021EFA9C +.extern sub_021F02C4 +.extern sub_021F1D8C +.extern sub_021F1DC8 +.extern sub_021F1DC8 +.extern sub_021F1DC8 +.extern sub_021F1DC8 +.extern sub_021F1DC8 +.extern sub_021F1DFC +.extern sub_021F1EC0 +.extern sub_021F1EC0 +.extern sub_021F1EC0 +.extern sub_021F1F78 +.extern sub_021F1F78 +.extern sub_021F2094 +.extern sub_021F2094 +.extern sub_021F2094 +.extern sub_021F20D8 +.extern sub_021F20F8 +.extern sub_021F2AF4 +.extern sub_021F2E0C +.extern sub_021F2E28 +.extern sub_021F2E28 +.extern sub_021F2E28 +.extern sub_021F2F48 +.extern sub_021F2F48 +.extern sub_021F2F6C +.extern sub_021F3DA4 +.extern sub_021F44D8 +.extern sub_021F4520 +.extern sub_021F4568 +.extern sub_021F45E8 +.extern sub_021F45E8 +.extern sub_021F4608 +.extern sub_021F4608 +.extern sub_021F4BD0 +.extern sub_021F4C88 +.extern sub_021F4D80 +.extern sub_021F4DC8 +.extern sub_021F4E7C +.extern sub_021F57EC +.extern sub_021F5C44 +.extern sub_021F5C44 +.extern sub_021F5C44 +.extern sub_021F5C44 +.extern sub_021F5C44 +.extern sub_021F5C44 +.extern sub_02211E60 +.extern sub_0222DAEC +.extern sub_0222DD1C +.extern sub_0222DD38 +.extern sub_0222E2BC +.extern sub_0222E360 +.extern sub_0222E3A0 +.extern sub_0222E7E8 +.extern sub_0222E874 +.extern sub_0222ED34 +.extern sub_0222EDBC +.extern sub_0222F440 +.extern sub_0222F480 +.extern sub_0222F480 +.extern sub_0222F7E0 +.extern sub_0222F990 +.extern sub_022300D4 +.extern sub_022300D4 +.extern sub_022300DC +.extern sub_022300DC +.extern sub_022300E4 +.extern sub_022300E8 +.extern sub_022300F4 +.extern sub_022300F4 +.extern sub_02230100 +.extern sub_02230100 +.extern sub_0223010C +.extern sub_02230118 +.extern sub_02230118 +.extern sub_02230124 +.extern sub_02230124 +.extern sub_02230F3C +.extern sub_02230F70 +.extern sub_02230F80 +.extern sub_02231344 +.extern sub_02231350 +.extern sub_0223135C +.extern sub_02231368 +.extern sub_02231374 +.extern sub_02239944 +.extern sub_02239AAC +.extern sub_0223CB08 +.extern sub_0223CCDC +.extern sub_0223CD7C +.extern sub_0223CD7C +.extern sub_0223D3D0 +.extern sub_0223D3D0 +.extern sub_0223D3D0 +.extern sub_0223D3D0 +.extern sub_0223D638 +.extern sub_0223D638 +.extern sub_0223D648 +.extern sub_0223D648 +.extern sub_0223D648 +.extern sub_0223D648 +.extern sub_0223D648 +.extern sub_0223D648 +.extern sub_0223D648 +.extern sub_0223D648 +.extern sub_0223D648 +.extern sub_0223D648 +.extern sub_0223D648 +.extern sub_0223E060 +.extern sub_0223E1E0 +.extern sub_0223E4A8 +.extern sub_0223E4D4 +.extern sub_0223E554 +.extern sub_0223E6B8 +.extern sub_0223E734 +.extern sub_0223E734 +.extern sub_0223EB8C +.extern sub_0223EF7C +.extern sub_0223F8D8 +.extern sub_02240790 +.extern sub_022407DC +.extern sub_022407F8 +.extern sub_02240844 +.extern sub_0224089C +.extern sub_0224089C +.extern sub_02241230 +.extern sub_02241914 +.extern sub_02242A38 +.extern sub_02244210 +.extern sub_02244558 +.extern sub_02244660 +.extern sub_022446BC +.extern sub_022446E0 +.extern sub_02244D3C +.extern sub_02244D40 +.extern sub_02244D40 +.extern sub_02244D40 +.extern sub_02244D40 +.extern sub_02244D58 +.extern sub_02244D98 +.extern sub_02244D98 +.extern sub_02244DA0 +.extern sub_02244DB0 +.extern sub_02244DB0 +.extern sub_02245114 +.extern sub_02245198 +.extern sub_022451F0 +.extern sub_02245358 +.extern sub_0224566C +.extern sub_02245844 +.extern sub_02245910 +.extern sub_02245910 +.extern sub_02245F1C +.extern sub_02245F4C +.extern sub_02245FA0 +.extern sub_0224666C +.extern sub_0224666C +.extern sub_022466A0 +.extern sub_022466A0 +.extern sub_022466AC +.extern sub_022466AC +.extern sub_02246F1C +.extern sub_02247294 +.extern sub_022472AC +.extern sub_02247544 +.extern sub_02247614 +.extern sub_02247A34 +.extern sub_022483BC +.extern sub_022483E0 +.extern sub_022483EC +.extern sub_022488FC +.extern sub_0224891C +.extern sub_02248B54 +.extern sub_02248B58 +.extern sub_02248B58 +.extern sub_02248B58 +.extern sub_02248B5C +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B60 +.extern sub_02248B6C +.extern sub_02248CD0 +.extern sub_02248DF8 +.extern sub_022494C8 +.extern sub_02249508 +.extern sub_02249668 +.extern sub_02249668 +.extern sub_02249668 +.extern sub_02249668 +.extern sub_022497E8 +.extern sub_022497E8 +.extern sub_02249E6C +.extern sub_02249E78 +.extern sub_02249E84 +.extern sub_02249E90 +.extern sub_0224A310 +.extern sub_0224A310 +.extern sub_0224A528 +.extern sub_0224A528 +.extern sub_0224A7C8 +.extern sub_0224ABAC +.extern sub_0224B124 +.extern sub_0224B124 +.extern sub_0224B2C4 +.extern sub_0224B2C4 +.extern sub_0224B568 +.extern sub_0224B568 +.extern sub_0224B818 +.extern sub_0224B818 +.extern sub_0224B818 +.extern sub_0224B86C +.extern sub_0224B9E0 +.extern sub_0224BBEC +.extern sub_0224BD90 +.extern sub_0224BD90 +.extern sub_0224C038 +.extern sub_0224C038 +.extern sub_0224C678 +.extern sub_0224C6E8 +.extern sub_0224C700 +.extern sub_0224C8C8 +.extern sub_0224CA2C +.extern sub_0224CA54 +.extern sub_0224CA58 +.extern sub_0224CA88 +.extern sub_0224CB30 +.extern sub_0224CECC +.extern sub_0224CECC +.extern sub_0224D2E0 +.extern sub_0224D3E8 +.extern sub_0224D70C +.extern sub_0224D76C +.extern sub_0224D79C +.extern sub_0224DCB8 +.extern sub_0224DCB8 +.extern sub_0224DCB8 +.extern sub_0224DCB8 +.extern sub_0224DCB8 +.extern sub_0224DCB8 +.extern sub_0224DCB8 +.extern sub_0224DCB8 +.extern sub_0224DCB8 +.extern sub_0224DCB8 +.extern sub_0224DD94 +.extern sub_0224DDB8 +.extern sub_0224DDB8 +.extern sub_0224E554 +.extern sub_0224E764 +.extern sub_0224E7C4 +.extern sub_0224F12C +.extern sub_0224F12C +.extern sub_0224F12C +.extern sub_02252534 +.extern sub_02252538 +.extern sub_022567E0 +.extern sub_02002C14 +.extern sub_02002C50 +.extern sub_02002C50 +.extern sub_02002C50 +.extern sub_02003B98 +.extern sub_02003C10 +.extern sub_0200A2AC +.extern sub_0200A318 +.extern sub_0200E2D8 +.extern sub_0201259C +.extern sub_020125D4 +.extern sub_02015E30 +.extern sub_02015E60 +.extern sub_02016014 +.extern sub_02016148 +.extern sub_020163BC +.extern sub_02016438 +.extern sub_02016464 +.extern sub_0201B5CC +.extern sub_02020AFC +.extern sub_02020C2C +.extern sub_02022294 +.extern sub_020222C4 +.extern sub_0202254C +.extern sub_020227FC +.extern sub_02023900 +.extern sub_02029EF8 +.extern sub_0202FB80 +.extern sub_020337E8 +.extern sub_02034188 +.extern sub_02089D90 diff --git a/ld_script.txt b/ld_script.txt index 335847193..09a5986b3 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -24,9 +24,10 @@ SECTIONS { BEGIN_SEG(arm9, 0x2000000) { build/asm/secure.o(.text); + build/asm/entry.o(.text); build/asm/main.o(.text); - build/asm/rom.o(.text); build/src/sub_02000DF4.o(.text); + build/asm/arm9_thumb.o(.text); build/asm/rom2.o(.text); } END_SEG(arm9) diff --git a/main.c b/main.c deleted file mode 100644 index 17e69b3d0..000000000 --- a/main.c +++ /dev/null @@ -1,7 +0,0 @@ -// Just includes for now so CLion sees the files -#include "structs/structs.h" -#include "nitro/nitro.h" - -void main() { - int x = NULL; -} diff --git a/pokediamond.lcf b/pokediamond.lcf new file mode 100644 index 000000000..ff392ac00 --- /dev/null +++ b/pokediamond.lcf @@ -0,0 +1,26 @@ +/* TEST */ +MEMORY { + header (RWX) : ORIGIN=0, LENGTH=0 + arm9 (RWX) : ORIGIN=0x2000000, LENGTH=0 + rom3 (RWX) : ORIGIN=0, LENGTH=0 +} + +SECTIONS { +#include "undefined_syms.txt" + + __startup = 0; + .header: { + rom_header.o (.text) + } > header + .arm9 : AT (0x4000) { + secure.o (.text) + entry.o (.text) + main.o (.text) + sub_02000DF4.o (.text) + arm9_thumb.o (.text) + rom2.o (.text) + } > arm9 + .rom3 : AT (0x10B724) { + rom3.o (.text) + } > rom3 +} diff --git a/undefined_syms.txt b/undefined_syms.txt index 3fff53668..ebc24aa88 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -1 +1,2963 @@ gUnknown2106FA0 = 0x2106FA0; +sub_0200019E = 0x0200019E; +sub_0200019E = 0x0200019E; +sub_02000DF4 = 0x02000DF4; +sub_02000E0C = 0x02000E0C; +sub_02000E7C = 0x02000E7C; +sub_02000E7C = 0x02000E7C; +sub_02000EE8 = 0x02000EE8; +sub_02000F18 = 0x02000F18; +sub_02000FA4 = 0x02000FA4; +sub_02000FE8 = 0x02000FE8; +sub_02002C14 = 0x02002C14; +sub_02002C50 = 0x02002C50; +sub_02002C50 = 0x02002C50; +sub_02002C50 = 0x02002C50; +sub_02003B98 = 0x02003B98; +sub_02003C10 = 0x02003C10; +sub_0200A2AC = 0x0200A2AC; +sub_0200A318 = 0x0200A318; +sub_0200E2D8 = 0x0200E2D8; +sub_0201259C = 0x0201259C; +sub_020125D4 = 0x020125D4; +sub_02015E30 = 0x02015E30; +sub_02015E60 = 0x02015E60; +sub_02016148 = 0x02016148; +sub_020163BC = 0x020163BC; +sub_02016438 = 0x02016438; +sub_02016464 = 0x02016464; +sub_0201B5CC = 0x0201B5CC; +sub_02020AFC = 0x02020AFC; +sub_02020C2C = 0x02020C2C; +sub_02022294 = 0x02022294; +sub_020222C4 = 0x020222C4; +sub_0202254C = 0x0202254C; +sub_020227FC = 0x020227FC; +sub_02023900 = 0x02023900; +sub_02029EF8 = 0x02029EF8; +sub_0202FB80 = 0x0202FB80; +sub_020337E8 = 0x020337E8; +sub_02034188 = 0x02034188; +sub_02089D90 = 0x02089D90; +sub_0208ACEC = 0x0208ACEC; +sub_0208AD80 = 0x0208AD80; +sub_0208AF80 = 0x0208AF80; +sub_0208AF94 = 0x0208AF94; +sub_0208AFA8 = 0x0208AFA8; +sub_0208B05C = 0x0208B05C; +sub_0208B128 = 0x0208B128; +sub_0208B4A0 = 0x0208B4A0; +sub_02090CC8 = 0x02090CC8; +sub_02090CC8 = 0x02090CC8; +sub_02090CC8 = 0x02090CC8; +sub_02090CC8 = 0x02090CC8; +sub_02090CC8 = 0x02090CC8; +sub_02090CC8 = 0x02090CC8; +sub_02090CC8 = 0x02090CC8; +sub_02090DB8 = 0x02090DB8; +sub_02090DB8 = 0x02090DB8; +sub_02090DB8 = 0x02090DB8; +sub_02090DB8 = 0x02090DB8; +sub_02090DB8 = 0x02090DB8; +sub_02090DB8 = 0x02090DB8; +sub_02090DB8 = 0x02090DB8; +sub_02096B14 = 0x02096B14; +sub_02096B14 = 0x02096B14; +sub_02096B14 = 0x02096B14; +sub_02096B14 = 0x02096B14; +sub_02096B14 = 0x02096B14; +sub_02096B14 = 0x02096B14; +sub_02096B14 = 0x02096B14; +sub_02096B78 = 0x02096B78; +sub_02096B78 = 0x02096B78; +sub_02096B78 = 0x02096B78; +sub_02096B78 = 0x02096B78; +sub_02096B78 = 0x02096B78; +sub_02096B78 = 0x02096B78; +sub_02096B78 = 0x02096B78; +sub_02096CCC = 0x02096CCC; +sub_02096CCC = 0x02096CCC; +sub_02096CCC = 0x02096CCC; +sub_02096CCC = 0x02096CCC; +sub_02096CCC = 0x02096CCC; +sub_02096CCC = 0x02096CCC; +sub_02096CCC = 0x02096CCC; +sub_02096CCC = 0x02096CCC; +sub_02096D2C = 0x02096D2C; +sub_02096D2C = 0x02096D2C; +sub_02096D2C = 0x02096D2C; +sub_02096D2C = 0x02096D2C; +sub_02096D2C = 0x02096D2C; +sub_02096D2C = 0x02096D2C; +sub_02096D2C = 0x02096D2C; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096DA0 = 0x02096DA0; +sub_02096E90 = 0x02096E90; +sub_02096E90 = 0x02096E90; +sub_02096E90 = 0x02096E90; +sub_02096E90 = 0x02096E90; +sub_02096E90 = 0x02096E90; +sub_02096E90 = 0x02096E90; +sub_02096E90 = 0x02096E90; +sub_02096F18 = 0x02096F18; +sub_02096F18 = 0x02096F18; +sub_02096F18 = 0x02096F18; +sub_02096F18 = 0x02096F18; +sub_02096F18 = 0x02096F18; +sub_02096F18 = 0x02096F18; +sub_02096F18 = 0x02096F18; +sub_02096F80 = 0x02096F80; +sub_02096F80 = 0x02096F80; +sub_02096F80 = 0x02096F80; +sub_02096F80 = 0x02096F80; +sub_02096F80 = 0x02096F80; +sub_02096F80 = 0x02096F80; +sub_02096F80 = 0x02096F80; +sub_02096FB0 = 0x02096FB0; +sub_02096FB0 = 0x02096FB0; +sub_02096FB0 = 0x02096FB0; +sub_02096FB0 = 0x02096FB0; +sub_02096FB0 = 0x02096FB0; +sub_02096FB0 = 0x02096FB0; +sub_02096FB0 = 0x02096FB0; +sub_02096FF4 = 0x02096FF4; +sub_02096FF4 = 0x02096FF4; +sub_02096FF4 = 0x02096FF4; +sub_02096FF4 = 0x02096FF4; +sub_02096FF4 = 0x02096FF4; +sub_02096FF4 = 0x02096FF4; +sub_02096FF4 = 0x02096FF4; +sub_0209700C = 0x0209700C; +sub_0209700C = 0x0209700C; +sub_0209700C = 0x0209700C; +sub_0209700C = 0x0209700C; +sub_0209700C = 0x0209700C; +sub_0209700C = 0x0209700C; +sub_0209700C = 0x0209700C; +sub_0209700C = 0x0209700C; +sub_0209700C = 0x0209700C; +sub_0209700C = 0x0209700C; +sub_020973B4 = 0x020973B4; +sub_020973B4 = 0x020973B4; +sub_020973B4 = 0x020973B4; +sub_020973B4 = 0x020973B4; +sub_020973B4 = 0x020973B4; +sub_020973B4 = 0x020973B4; +sub_020973B4 = 0x020973B4; +sub_020ADDC0 = 0x020ADDC0; +sub_020ADDC8 = 0x020ADDC8; +sub_020ADDF0 = 0x020ADDF0; +sub_020ADDF0 = 0x020ADDF0; +sub_020ADDF0 = 0x020ADDF0; +sub_020ADE2C = 0x020ADE2C; +sub_020ADFA0 = 0x020ADFA0; +sub_020ADFA0 = 0x020ADFA0; +sub_020ADFDC = 0x020ADFDC; +sub_020ADFE8 = 0x020ADFE8; +sub_020ADFE8 = 0x020ADFE8; +sub_020AE82C = 0x020AE82C; +sub_020AE8CC = 0x020AE8CC; +sub_020AE918 = 0x020AE918; +sub_020AEB70 = 0x020AEB70; +sub_020AEB70 = 0x020AEB70; +sub_020AEB70 = 0x020AEB70; +sub_020AEC7C = 0x020AEC7C; +sub_020AEC98 = 0x020AEC98; +sub_020AEE40 = 0x020AEE40; +sub_020AEE40 = 0x020AEE40; +sub_020AEEB8 = 0x020AEEB8; +sub_020AEEB8 = 0x020AEEB8; +sub_020AEF1C = 0x020AEF1C; +sub_020AEF1C = 0x020AEF1C; +sub_020AF894 = 0x020AF894; +sub_020AF9C4 = 0x020AF9C4; +sub_020AF9C4 = 0x020AF9C4; +sub_020AFA28 = 0x020AFA28; +sub_020AFA28 = 0x020AFA28; +sub_020AFA80 = 0x020AFA80; +sub_020AFBA8 = 0x020AFBA8; +sub_020AFBA8 = 0x020AFBA8; +sub_020AFBFC = 0x020AFBFC; +sub_020AFBFC = 0x020AFBFC; +sub_020AFC04 = 0x020AFC04; +sub_020AFC04 = 0x020AFC04; +sub_020AFC04 = 0x020AFC04; +sub_020AFC04 = 0x020AFC04; +sub_020AFC04 = 0x020AFC04; +sub_020AFC04 = 0x020AFC04; +sub_020AFD88 = 0x020AFD88; +sub_020AFD94 = 0x020AFD94; +sub_020AFD94 = 0x020AFD94; +sub_020AFD94 = 0x020AFD94; +sub_020AFD94 = 0x020AFD94; +sub_020AFEB8 = 0x020AFEB8; +sub_020AFEB8 = 0x020AFEB8; +sub_020AFFD8 = 0x020AFFD8; +sub_020B0030 = 0x020B0030; +sub_020B0030 = 0x020B0030; +sub_020B0030 = 0x020B0030; +sub_020B0030 = 0x020B0030; +sub_020B0088 = 0x020B0088; +sub_020B0088 = 0x020B0088; +sub_020B0088 = 0x020B0088; +sub_020B0088 = 0x020B0088; +sub_020B0088 = 0x020B0088; +sub_020B0088 = 0x020B0088; +sub_020B0088 = 0x020B0088; +sub_020B0088 = 0x020B0088; +sub_020B0088 = 0x020B0088; +sub_020B0088 = 0x020B0088; +sub_020B0088 = 0x020B0088; +sub_020B00F0 = 0x020B00F0; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0138 = 0x020B0138; +sub_020B0180 = 0x020B0180; +sub_020B0180 = 0x020B0180; +sub_020B0180 = 0x020B0180; +sub_020B0180 = 0x020B0180; +sub_020B0180 = 0x020B0180; +sub_020B0180 = 0x020B0180; +sub_020B0180 = 0x020B0180; +sub_020B0250 = 0x020B0250; +sub_020B0250 = 0x020B0250; +sub_020B0250 = 0x020B0250; +sub_020B0250 = 0x020B0250; +sub_020B02C8 = 0x020B02C8; +sub_020B02C8 = 0x020B02C8; +sub_020B0448 = 0x020B0448; +sub_020B0448 = 0x020B0448; +sub_020B0448 = 0x020B0448; +sub_020B0870 = 0x020B0870; +sub_020B0870 = 0x020B0870; +sub_020B0BB0 = 0x020B0BB0; +sub_020B0BB0 = 0x020B0BB0; +sub_020B0C7C = 0x020B0C7C; +sub_020B0C7C = 0x020B0C7C; +sub_020B0E34 = 0x020B0E34; +sub_020B0E34 = 0x020B0E34; +sub_020B0FC0 = 0x020B0FC0; +sub_020B0FC0 = 0x020B0FC0; +sub_020B0FC0 = 0x020B0FC0; +sub_020B10E8 = 0x020B10E8; +sub_020B1240 = 0x020B1240; +sub_020B1240 = 0x020B1240; +sub_020B1240 = 0x020B1240; +sub_020B1240 = 0x020B1240; +sub_020B1240 = 0x020B1240; +sub_020B1240 = 0x020B1240; +sub_020B1340 = 0x020B1340; +sub_020B1340 = 0x020B1340; +sub_020B1528 = 0x020B1528; +sub_020B1528 = 0x020B1528; +sub_020B1528 = 0x020B1528; +sub_020B1528 = 0x020B1528; +sub_020B1768 = 0x020B1768; +sub_020B1768 = 0x020B1768; +sub_020B19C4 = 0x020B19C4; +sub_020B19C4 = 0x020B19C4; +sub_020B19C4 = 0x020B19C4; +sub_020B19C4 = 0x020B19C4; +sub_020B19C4 = 0x020B19C4; +sub_020B19C4 = 0x020B19C4; +sub_020B19DC = 0x020B19DC; +sub_020B19DC = 0x020B19DC; +sub_020B19DC = 0x020B19DC; +sub_020B19DC = 0x020B19DC; +sub_020B19DC = 0x020B19DC; +sub_020B1A14 = 0x020B1A14; +sub_020B1A14 = 0x020B1A14; +sub_020B1A14 = 0x020B1A14; +sub_020B1A14 = 0x020B1A14; +sub_020B1A14 = 0x020B1A14; +sub_020B1A14 = 0x020B1A14; +sub_020B1A14 = 0x020B1A14; +sub_020B1A14 = 0x020B1A14; +sub_020B1A24 = 0x020B1A24; +sub_020B1A24 = 0x020B1A24; +sub_020B1A24 = 0x020B1A24; +sub_020B1A24 = 0x020B1A24; +sub_020B1A24 = 0x020B1A24; +sub_020B1A24 = 0x020B1A24; +sub_020B1EA4 = 0x020B1EA4; +sub_020B1EA4 = 0x020B1EA4; +sub_020B1EC4 = 0x020B1EC4; +sub_020B1EC4 = 0x020B1EC4; +sub_020B1EE4 = 0x020B1EE4; +sub_020B1EE4 = 0x020B1EE4; +sub_020B1EFC = 0x020B1EFC; +sub_020B1EFC = 0x020B1EFC; +sub_020B1F80 = 0x020B1F80; +sub_020B1F80 = 0x020B1F80; +sub_020B20C8 = 0x020B20C8; +sub_020B20C8 = 0x020B20C8; +sub_020B2194 = 0x020B2194; +sub_020B2194 = 0x020B2194; +sub_020B224C = 0x020B224C; +sub_020B224C = 0x020B224C; +sub_020B23D8 = 0x020B23D8; +sub_020B23D8 = 0x020B23D8; +sub_020B242C = 0x020B242C; +sub_020B242C = 0x020B242C; +sub_020B242C = 0x020B242C; +sub_020B2780 = 0x020B2780; +sub_020B2780 = 0x020B2780; +sub_020B2794 = 0x020B2794; +sub_020B2794 = 0x020B2794; +sub_020B28B4 = 0x020B28B4; +sub_020B28B4 = 0x020B28B4; +sub_020B2A08 = 0x020B2A08; +sub_020B2A08 = 0x020B2A08; +sub_020B2A08 = 0x020B2A08; +sub_020B2A08 = 0x020B2A08; +sub_020B2B08 = 0x020B2B08; +sub_020B2B08 = 0x020B2B08; +sub_020B2B58 = 0x020B2B58; +sub_020B2B58 = 0x020B2B58; +sub_020B2D9C = 0x020B2D9C; +sub_020B2D9C = 0x020B2D9C; +sub_020B317C = 0x020B317C; +sub_020B317C = 0x020B317C; +sub_020B31F0 = 0x020B31F0; +sub_020B31F0 = 0x020B31F0; +sub_020B326C = 0x020B326C; +sub_020B326C = 0x020B326C; +sub_020B3334 = 0x020B3334; +sub_020B3334 = 0x020B3334; +sub_020B3390 = 0x020B3390; +sub_020B3390 = 0x020B3390; +sub_020B33A0 = 0x020B33A0; +sub_020B33A0 = 0x020B33A0; +sub_020B4358 = 0x020B4358; +sub_020B4358 = 0x020B4358; +sub_020B43A4 = 0x020B43A4; +sub_020B43A4 = 0x020B43A4; +sub_020B442C = 0x020B442C; +sub_020B442C = 0x020B442C; +sub_020B4568 = 0x020B4568; +sub_020B4568 = 0x020B4568; +sub_020B4F38 = 0x020B4F38; +sub_020B4F38 = 0x020B4F38; +sub_020B4F38 = 0x020B4F38; +sub_020B4F38 = 0x020B4F38; +sub_020B502C = 0x020B502C; +sub_020B502C = 0x020B502C; +sub_020B502C = 0x020B502C; +sub_020B772C = 0x020B772C; +sub_020B772C = 0x020B772C; +sub_020B7790 = 0x020B7790; +sub_020B7790 = 0x020B7790; +sub_020B7790 = 0x020B7790; +sub_020B7C58 = 0x020B7C58; +sub_020B7C58 = 0x020B7C58; +sub_020B7C58 = 0x020B7C58; +sub_020B7C78 = 0x020B7C78; +sub_020B7C78 = 0x020B7C78; +sub_020B7C78 = 0x020B7C78; +sub_020B7CDC = 0x020B7CDC; +sub_020B7CDC = 0x020B7CDC; +sub_020B7CDC = 0x020B7CDC; +sub_020B7CDC = 0x020B7CDC; +sub_020B7CE4 = 0x020B7CE4; +sub_020B7CE4 = 0x020B7CE4; +sub_020B7CE4 = 0x020B7CE4; +sub_020B7CE4 = 0x020B7CE4; +sub_020B7CE4 = 0x020B7CE4; +sub_020B7CE4 = 0x020B7CE4; +sub_020B7CF0 = 0x020B7CF0; +sub_020B7CF0 = 0x020B7CF0; +sub_020B7CF0 = 0x020B7CF0; +sub_020B7D28 = 0x020B7D28; +sub_020B7D28 = 0x020B7D28; +sub_020B7D28 = 0x020B7D28; +sub_020B7DFC = 0x020B7DFC; +sub_020B7DFC = 0x020B7DFC; +sub_020B7DFC = 0x020B7DFC; +sub_020B7DFC = 0x020B7DFC; +sub_020B7E10 = 0x020B7E10; +sub_020B7E10 = 0x020B7E10; +sub_020B7E10 = 0x020B7E10; +sub_020B7E10 = 0x020B7E10; +sub_020B7E10 = 0x020B7E10; +sub_020B7E10 = 0x020B7E10; +sub_020B7E1C = 0x020B7E1C; +sub_020B7E1C = 0x020B7E1C; +sub_020B7E1C = 0x020B7E1C; +sub_020B7E1C = 0x020B7E1C; +sub_020B7E1C = 0x020B7E1C; +sub_020B7E1C = 0x020B7E1C; +sub_020B80B4 = 0x020B80B4; +sub_020B80B4 = 0x020B80B4; +sub_020B80B4 = 0x020B80B4; +sub_020B80B4 = 0x020B80B4; +sub_020B80B4 = 0x020B80B4; +sub_020B844C = 0x020B844C; +sub_020B844C = 0x020B844C; +sub_020B844C = 0x020B844C; +sub_020B844C = 0x020B844C; +sub_020B8474 = 0x020B8474; +sub_020B8474 = 0x020B8474; +sub_020B8474 = 0x020B8474; +sub_020B8474 = 0x020B8474; +sub_020B8474 = 0x020B8474; +sub_020B849C = 0x020B849C; +sub_020B849C = 0x020B849C; +sub_020B849C = 0x020B849C; +sub_020B849C = 0x020B849C; +sub_020B849C = 0x020B849C; +sub_020B849C = 0x020B849C; +sub_020B849C = 0x020B849C; +sub_020B849C = 0x020B849C; +sub_020B849C = 0x020B849C; +sub_020BAC98 = 0x020BAC98; +sub_020BAC98 = 0x020BAC98; +sub_020BAFB8 = 0x020BAFB8; +sub_020BAFB8 = 0x020BAFB8; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB1C0 = 0x020BB1C0; +sub_020BB394 = 0x020BB394; +sub_020BB394 = 0x020BB394; +sub_020BB394 = 0x020BB394; +sub_020BB394 = 0x020BB394; +sub_020BB394 = 0x020BB394; +sub_020BB59C = 0x020BB59C; +sub_020BB59C = 0x020BB59C; +sub_020BB59C = 0x020BB59C; +sub_020BB7F4 = 0x020BB7F4; +sub_020BB7F4 = 0x020BB7F4; +sub_020BB7F4 = 0x020BB7F4; +sub_020BC0FC = 0x020BC0FC; +sub_020BC0FC = 0x020BC0FC; +sub_020BC0FC = 0x020BC0FC; +sub_020BC0FC = 0x020BC0FC; +sub_020BC0FC = 0x020BC0FC; +sub_020BC0FC = 0x020BC0FC; +sub_020BC0FC = 0x020BC0FC; +sub_020BC13C = 0x020BC13C; +sub_020BC13C = 0x020BC13C; +sub_020BC13C = 0x020BC13C; +sub_020BC13C = 0x020BC13C; +sub_020BC13C = 0x020BC13C; +sub_020BC13C = 0x020BC13C; +sub_020BC2A0 = 0x020BC2A0; +sub_020BC2A0 = 0x020BC2A0; +sub_020BC2A0 = 0x020BC2A0; +sub_020C0174 = 0x020C0174; +sub_020C01A0 = 0x020C01A0; +sub_020C01D0 = 0x020C01D0; +sub_020C03B8 = 0x020C03B8; +sub_020C041C = 0x020C041C; +sub_020C044C = 0x020C044C; +sub_020C04DC = 0x020C04DC; +sub_020C04DC = 0x020C04DC; +sub_020C0510 = 0x020C0510; +sub_020C054C = 0x020C054C; +sub_020C0670 = 0x020C0670; +sub_020C0670 = 0x020C0670; +sub_020C0688 = 0x020C0688; +sub_020C0688 = 0x020C0688; +sub_020C0DD4 = 0x020C0DD4; +sub_020C0E14 = 0x020C0E14; +sub_020C0E14 = 0x020C0E14; +sub_020C0E7C = 0x020C0E7C; +sub_020C0E7C = 0x020C0E7C; +sub_020C0E7C = 0x020C0E7C; +sub_020C0EA4 = 0x020C0EA4; +sub_020C0EF4 = 0x020C0EF4; +sub_020C0F30 = 0x020C0F30; +sub_020C0F50 = 0x020C0F50; +sub_020C0F68 = 0x020C0F68; +sub_020C0F68 = 0x020C0F68; +sub_020C0F80 = 0x020C0F80; +sub_020C0F8C = 0x020C0F8C; +sub_020C0F9C = 0x020C0F9C; +sub_020C0FDC = 0x020C0FDC; +sub_020C0FDC = 0x020C0FDC; +sub_020C1040 = 0x020C1040; +sub_020C10A4 = 0x020C10A4; +sub_020C10A4 = 0x020C10A4; +sub_020C10A4 = 0x020C10A4; +sub_020C10A4 = 0x020C10A4; +sub_020C10A4 = 0x020C10A4; +sub_020C1148 = 0x020C1148; +sub_020C1180 = 0x020C1180; +sub_020C1180 = 0x020C1180; +sub_020C1E58 = 0x020C1E58; +sub_020C1E58 = 0x020C1E58; +sub_020C1E68 = 0x020C1E68; +sub_020C1E68 = 0x020C1E68; +sub_020C1EA4 = 0x020C1EA4; +sub_020C1F54 = 0x020C1F54; +sub_020C1F54 = 0x020C1F54; +sub_020C1FA4 = 0x020C1FA4; +sub_020C1FA4 = 0x020C1FA4; +sub_020C1FF0 = 0x020C1FF0; +sub_020C20DC = 0x020C20DC; +sub_020C2104 = 0x020C2104; +sub_020C217C = 0x020C217C; +sub_020C226C = 0x020C226C; +sub_020C226C = 0x020C226C; +sub_020C22D0 = 0x020C22D0; +sub_020C23FC = 0x020C23FC; +sub_020C23FC = 0x020C23FC; +sub_020C23FC = 0x020C23FC; +sub_020C26F8 = 0x020C26F8; +sub_020C2828 = 0x020C2828; +sub_020C290C = 0x020C290C; +sub_020C2A94 = 0x020C2A94; +sub_020C35E0 = 0x020C35E0; +sub_020C360C = 0x020C360C; +sub_020C3640 = 0x020C3640; +sub_020C3674 = 0x020C3674; +sub_020C36A8 = 0x020C36A8; +sub_020C3910 = 0x020C3910; +sub_020C3910 = 0x020C3910; +sub_020C3910 = 0x020C3910; +sub_020C3910 = 0x020C3910; +sub_020C3980 = 0x020C3980; +sub_020C3980 = 0x020C3980; +sub_020C3980 = 0x020C3980; +sub_020C3980 = 0x020C3980; +sub_020C3980 = 0x020C3980; +sub_020C39CC = 0x020C39CC; +sub_020C3EA4 = 0x020C3EA4; +sub_020C3EA4 = 0x020C3EA4; +sub_020C3EB0 = 0x020C3EB0; +sub_020C3EB0 = 0x020C3EB0; +sub_020C3F14 = 0x020C3F14; +sub_020C3F14 = 0x020C3F14; +sub_020C3F14 = 0x020C3F14; +sub_020C3F14 = 0x020C3F14; +sub_020C3F14 = 0x020C3F14; +sub_020C3F14 = 0x020C3F14; +sub_020C3F14 = 0x020C3F14; +sub_020C3F14 = 0x020C3F14; +sub_020C3F38 = 0x020C3F38; +sub_020C3F38 = 0x020C3F38; +sub_020C3F38 = 0x020C3F38; +sub_020C3F54 = 0x020C3F54; +sub_020C3F54 = 0x020C3F54; +sub_020C3F54 = 0x020C3F54; +sub_020C3F70 = 0x020C3F70; +sub_020C3F70 = 0x020C3F70; +sub_020C3F70 = 0x020C3F70; +sub_020C400C = 0x020C400C; +sub_020C400C = 0x020C400C; +sub_020C400C = 0x020C400C; +sub_020C400C = 0x020C400C; +sub_020C400C = 0x020C400C; +sub_020C504C = 0x020C504C; +sub_020C504C = 0x020C504C; +sub_020C504C = 0x020C504C; +sub_020C50B8 = 0x020C50B8; +sub_020C50B8 = 0x020C50B8; +sub_020C50B8 = 0x020C50B8; +sub_020C50B8 = 0x020C50B8; +sub_020C5288 = 0x020C5288; +sub_020C5288 = 0x020C5288; +sub_020C5288 = 0x020C5288; +sub_020C5288 = 0x020C5288; +sub_020C53C8 = 0x020C53C8; +sub_020C53C8 = 0x020C53C8; +sub_020C5588 = 0x020C5588; +sub_020C5588 = 0x020C5588; +sub_020C5600 = 0x020C5600; +sub_020C5600 = 0x020C5600; +sub_020C5600 = 0x020C5600; +sub_020C5600 = 0x020C5600; +sub_020C5634 = 0x020C5634; +sub_020C5634 = 0x020C5634; +sub_020C5634 = 0x020C5634; +sub_020C5634 = 0x020C5634; +sub_020C5634 = 0x020C5634; +sub_020C5668 = 0x020C5668; +sub_020C5668 = 0x020C5668; +sub_020C5974 = 0x020C5974; +sub_020C5978 = 0x020C5978; +sub_020C5978 = 0x020C5978; +sub_020C59A4 = 0x020C59A4; +sub_020C59A4 = 0x020C59A4; +sub_020C59C0 = 0x020C59C0; +sub_020C59C0 = 0x020C59C0; +sub_020C5A34 = 0x020C5A34; +sub_020C5A34 = 0x020C5A34; +sub_020C5A80 = 0x020C5A80; +sub_020C5AC8 = 0x020C5AC8; +sub_020C5AF8 = 0x020C5AF8; +sub_020C5AF8 = 0x020C5AF8; +sub_020C5B28 = 0x020C5B28; +sub_020C5D2C = 0x020C5D2C; +sub_020C5D2C = 0x020C5D2C; +sub_020C5D4C = 0x020C5D4C; +sub_020C5D4C = 0x020C5D4C; +sub_020C5D4C = 0x020C5D4C; +sub_020C5D4C = 0x020C5D4C; +sub_020C5D4C = 0x020C5D4C; +sub_020C5D4C = 0x020C5D4C; +sub_020C5D4C = 0x020C5D4C; +sub_020C5D4C = 0x020C5D4C; +sub_020C5D9C = 0x020C5D9C; +sub_020C5D9C = 0x020C5D9C; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5DBC = 0x020C5DBC; +sub_020C5E54 = 0x020C5E54; +sub_020C600C = 0x020C600C; +sub_020C600C = 0x020C600C; +sub_020C6034 = 0x020C6034; +sub_020C6034 = 0x020C6034; +sub_020C605C = 0x020C605C; +sub_020C605C = 0x020C605C; +sub_020C6070 = 0x020C6070; +sub_020C6070 = 0x020C6070; +sub_020C6098 = 0x020C6098; +sub_020C6098 = 0x020C6098; +sub_020C60AC = 0x020C60AC; +sub_020C60AC = 0x020C60AC; +sub_020C60C0 = 0x020C60C0; +sub_020C60C0 = 0x020C60C0; +sub_020C60E4 = 0x020C60E4; +sub_020C60E4 = 0x020C60E4; +sub_020C6108 = 0x020C6108; +sub_020C6108 = 0x020C6108; +sub_020C611C = 0x020C611C; +sub_020C611C = 0x020C611C; +sub_020C6168 = 0x020C6168; +sub_020C6168 = 0x020C6168; +sub_020C61F4 = 0x020C61F4; +sub_020C61F4 = 0x020C61F4; +sub_020C6280 = 0x020C6280; +sub_020C6280 = 0x020C6280; +sub_020C62FC = 0x020C62FC; +sub_020C62FC = 0x020C62FC; +sub_020C63A8 = 0x020C63A8; +sub_020C65C0 = 0x020C65C0; +sub_020C65C0 = 0x020C65C0; +sub_020C66B4 = 0x020C66B4; +sub_020C66B4 = 0x020C66B4; +sub_020C68B8 = 0x020C68B8; +sub_020C68B8 = 0x020C68B8; +sub_020C6970 = 0x020C6970; +sub_020C6970 = 0x020C6970; +sub_020C6A84 = 0x020C6A84; +sub_020C6A84 = 0x020C6A84; +sub_020C6BF0 = 0x020C6BF0; +sub_020C6BF0 = 0x020C6BF0; +sub_020C7124 = 0x020C7124; +sub_020C7124 = 0x020C7124; +sub_020C74B8 = 0x020C74B8; +sub_020C74B8 = 0x020C74B8; +sub_020C74B8 = 0x020C74B8; +sub_020C74B8 = 0x020C74B8; +sub_020C74B8 = 0x020C74B8; +sub_020C74B8 = 0x020C74B8; +sub_020C74DC = 0x020C74DC; +sub_020C74DC = 0x020C74DC; +sub_020C74DC = 0x020C74DC; +sub_020C74DC = 0x020C74DC; +sub_020C74DC = 0x020C74DC; +sub_020C74DC = 0x020C74DC; +sub_020C74DC = 0x020C74DC; +sub_020C74F8 = 0x020C74F8; +sub_020C74F8 = 0x020C74F8; +sub_020C74F8 = 0x020C74F8; +sub_020C74F8 = 0x020C74F8; +sub_020C74F8 = 0x020C74F8; +sub_020C74F8 = 0x020C74F8; +sub_020C7A14 = 0x020C7A14; +sub_020C7A14 = 0x020C7A14; +sub_020C7B3C = 0x020C7B3C; +sub_020C7B3C = 0x020C7B3C; +sub_020C7B3C = 0x020C7B3C; +sub_020C7B3C = 0x020C7B3C; +sub_020C7B3C = 0x020C7B3C; +sub_020C7B3C = 0x020C7B3C; +sub_020C7C28 = 0x020C7C28; +sub_020C7C28 = 0x020C7C28; +sub_020C7C28 = 0x020C7C28; +sub_020C7C28 = 0x020C7C28; +sub_020C7C28 = 0x020C7C28; +sub_020C7C28 = 0x020C7C28; +sub_020C7D28 = 0x020C7D28; +sub_020C7D28 = 0x020C7D28; +sub_020C7D28 = 0x020C7D28; +sub_020C7E0C = 0x020C7E0C; +sub_020C7E0C = 0x020C7E0C; +sub_020C7E94 = 0x020C7E94; +sub_020C7E94 = 0x020C7E94; +sub_020C7FF0 = 0x020C7FF0; +sub_020C7FF0 = 0x020C7FF0; +sub_020C802C = 0x020C802C; +sub_020C8068 = 0x020C8068; +sub_020C80A4 = 0x020C80A4; +sub_020C80A4 = 0x020C80A4; +sub_020C823C = 0x020C823C; +sub_020C823C = 0x020C823C; +sub_020C8538 = 0x020C8538; +sub_020C8538 = 0x020C8538; +sub_020C8A2C = 0x020C8A2C; +sub_020C8B10 = 0x020C8B10; +sub_020C8EEC = 0x020C8EEC; +sub_020C8EEC = 0x020C8EEC; +sub_020C922C = 0x020C922C; +sub_020C922C = 0x020C922C; +sub_020C9294 = 0x020C9294; +sub_020C9294 = 0x020C9294; +sub_020C9294 = 0x020C9294; +sub_020C9294 = 0x020C9294; +sub_020C9294 = 0x020C9294; +sub_020C92F4 = 0x020C92F4; +sub_020C92F4 = 0x020C92F4; +sub_020C92F4 = 0x020C92F4; +sub_020C92F4 = 0x020C92F4; +sub_020C92F4 = 0x020C92F4; +sub_020C9354 = 0x020C9354; +sub_020C9354 = 0x020C9354; +sub_020C93BC = 0x020C93BC; +sub_020C93BC = 0x020C93BC; +sub_020C9418 = 0x020C9418; +sub_020C9418 = 0x020C9418; +sub_020C9418 = 0x020C9418; +sub_020C9418 = 0x020C9418; +sub_020C9418 = 0x020C9418; +sub_020C9418 = 0x020C9418; +sub_020C9418 = 0x020C9418; +sub_020C9480 = 0x020C9480; +sub_020C9480 = 0x020C9480; +sub_020C9480 = 0x020C9480; +sub_020C9480 = 0x020C9480; +sub_020C9480 = 0x020C9480; +sub_020C94E8 = 0x020C94E8; +sub_020C94E8 = 0x020C94E8; +sub_020C94E8 = 0x020C94E8; +sub_020C94E8 = 0x020C94E8; +sub_020C94E8 = 0x020C94E8; +sub_020C9550 = 0x020C9550; +sub_020C9550 = 0x020C9550; +sub_020C9550 = 0x020C9550; +sub_020C9550 = 0x020C9550; +sub_020C9550 = 0x020C9550; +sub_020C9550 = 0x020C9550; +sub_020C9C0C = 0x020C9C0C; +sub_020C9C0C = 0x020C9C0C; +sub_020C9C0C = 0x020C9C0C; +sub_020C9C0C = 0x020C9C0C; +sub_020C9C0C = 0x020C9C0C; +sub_020C9C0C = 0x020C9C0C; +sub_020C9C0C = 0x020C9C0C; +sub_020C9C0C = 0x020C9C0C; +sub_020C9C0C = 0x020C9C0C; +sub_020C9C0C = 0x020C9C0C; +sub_020C9E14 = 0x020C9E14; +sub_020C9E14 = 0x020C9E14; +sub_020C9E14 = 0x020C9E14; +sub_020C9E14 = 0x020C9E14; +sub_020C9E14 = 0x020C9E14; +sub_020C9E5C = 0x020C9E5C; +sub_020C9E5C = 0x020C9E5C; +sub_020C9E5C = 0x020C9E5C; +sub_020C9E5C = 0x020C9E5C; +sub_020C9E5C = 0x020C9E5C; +sub_020C9E5C = 0x020C9E5C; +sub_020C9E5C = 0x020C9E5C; +sub_020C9E5C = 0x020C9E5C; +sub_020C9FEC = 0x020C9FEC; +sub_020C9FEC = 0x020C9FEC; +sub_020C9FEC = 0x020C9FEC; +sub_020C9FEC = 0x020C9FEC; +sub_020C9FEC = 0x020C9FEC; +sub_020C9FEC = 0x020C9FEC; +sub_020C9FEC = 0x020C9FEC; +sub_020CA0A0 = 0x020CA0A0; +sub_020CA0A0 = 0x020CA0A0; +sub_020CA0A0 = 0x020CA0A0; +sub_020CA0A0 = 0x020CA0A0; +sub_020CA0F8 = 0x020CA0F8; +sub_020CA0F8 = 0x020CA0F8; +sub_020CA0F8 = 0x020CA0F8; +sub_020CA0F8 = 0x020CA0F8; +sub_020CA0F8 = 0x020CA0F8; +sub_020CC124 = 0x020CC124; +sub_020CC124 = 0x020CC124; +sub_020CC124 = 0x020CC124; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC15C = 0x020CC15C; +sub_020CC180 = 0x020CC180; +sub_020CC180 = 0x020CC180; +sub_020CC180 = 0x020CC180; +sub_020CC180 = 0x020CC180; +sub_020CC180 = 0x020CC180; +sub_020CC180 = 0x020CC180; +sub_020CC180 = 0x020CC180; +sub_020CC1B4 = 0x020CC1B4; +sub_020CC204 = 0x020CC204; +sub_020CC26C = 0x020CC26C; +sub_020CC26C = 0x020CC26C; +sub_020CC26C = 0x020CC26C; +sub_020CC26C = 0x020CC26C; +sub_020CC26C = 0x020CC26C; +sub_020CC26C = 0x020CC26C; +sub_020CC26C = 0x020CC26C; +sub_020CC26C = 0x020CC26C; +sub_020CC2F4 = 0x020CC2F4; +sub_020CC2F4 = 0x020CC2F4; +sub_020CC308 = 0x020CC308; +sub_020CC308 = 0x020CC308; +sub_020CC31C = 0x020CC31C; +sub_020CC31C = 0x020CC31C; +sub_020CC408 = 0x020CC408; +sub_020CC408 = 0x020CC408; +sub_020CCD64 = 0x020CCD64; +sub_020CD310 = 0x020CD310; +sub_020CD310 = 0x020CD310; +sub_020CD310 = 0x020CD310; +sub_020CD310 = 0x020CD310; +sub_020CD324 = 0x020CD324; +sub_020CD324 = 0x020CD324; +sub_020CD324 = 0x020CD324; +sub_020CD324 = 0x020CD324; +sub_020CD374 = 0x020CD374; +sub_020CD374 = 0x020CD374; +sub_020CD374 = 0x020CD374; +sub_020CD374 = 0x020CD374; +sub_020CD374 = 0x020CD374; +sub_020CD374 = 0x020CD374; +sub_020CD3B4 = 0x020CD3B4; +sub_020CD3B4 = 0x020CD3B4; +sub_020CD3B4 = 0x020CD3B4; +sub_020CD3B4 = 0x020CD3B4; +sub_020CD3B4 = 0x020CD3B4; +sub_020CD3B4 = 0x020CD3B4; +sub_020CD3B4 = 0x020CD3B4; +sub_020CD510 = 0x020CD510; +sub_020CD510 = 0x020CD510; +sub_020CD510 = 0x020CD510; +sub_020CD510 = 0x020CD510; +sub_020CD510 = 0x020CD510; +sub_020CD524 = 0x020CD524; +sub_020CD524 = 0x020CD524; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD5A0 = 0x020CD5A0; +sub_020CD754 = 0x020CD754; +sub_020CD850 = 0x020CD850; +sub_020CD850 = 0x020CD850; +sub_020CD850 = 0x020CD850; +sub_020CD850 = 0x020CD850; +sub_020CD850 = 0x020CD850; +sub_020CD850 = 0x020CD850; +sub_020CD850 = 0x020CD850; +sub_020CD850 = 0x020CD850; +sub_020CD850 = 0x020CD850; +sub_020CD850 = 0x020CD850; +sub_020CD998 = 0x020CD998; +sub_020CDA1C = 0x020CDA1C; +sub_020CDA1C = 0x020CDA1C; +sub_020CDA1C = 0x020CDA1C; +sub_020CDD90 = 0x020CDD90; +sub_020CDE04 = 0x020CDE04; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1C8 = 0x020CE1C8; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1E0 = 0x020CE1E0; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE1FC = 0x020CE1FC; +sub_020CE210 = 0x020CE210; +sub_020CE210 = 0x020CE210; +sub_020CE210 = 0x020CE210; +sub_020CE210 = 0x020CE210; +sub_020CE210 = 0x020CE210; +sub_020CE210 = 0x020CE210; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE240 = 0x020CE240; +sub_020CE28C = 0x020CE28C; +sub_020CE28C = 0x020CE28C; +sub_020CE28C = 0x020CE28C; +sub_020CE28C = 0x020CE28C; +sub_020CE28C = 0x020CE28C; +sub_020CE28C = 0x020CE28C; +sub_020CE28C = 0x020CE28C; +sub_020CE28C = 0x020CE28C; +sub_020CE28C = 0x020CE28C; +sub_020CE2E0 = 0x020CE2E0; +sub_020CE2E0 = 0x020CE2E0; +sub_020CE2E0 = 0x020CE2E0; +sub_020CE2E0 = 0x020CE2E0; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE34C = 0x020CE34C; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE3E0 = 0x020CE3E0; +sub_020CE528 = 0x020CE528; +sub_020CE528 = 0x020CE528; +sub_020CE528 = 0x020CE528; +sub_020CE528 = 0x020CE528; +sub_020CE528 = 0x020CE528; +sub_020CF768 = 0x020CF768; +sub_020D1148 = 0x020D1148; +sub_020D1148 = 0x020D1148; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D17A0 = 0x020D17A0; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D180C = 0x020D180C; +sub_020D182C = 0x020D182C; +sub_020D18FC = 0x020D18FC; +sub_020D18FC = 0x020D18FC; +sub_020D18FC = 0x020D18FC; +sub_020D18FC = 0x020D18FC; +sub_020D18FC = 0x020D18FC; +sub_020D18FC = 0x020D18FC; +sub_020D18FC = 0x020D18FC; +sub_020D18FC = 0x020D18FC; +sub_020D18FC = 0x020D18FC; +sub_020D18FC = 0x020D18FC; +sub_020D1944 = 0x020D1944; +sub_020D1944 = 0x020D1944; +sub_020D1944 = 0x020D1944; +sub_020D1944 = 0x020D1944; +sub_020D1944 = 0x020D1944; +sub_020D1944 = 0x020D1944; +sub_020D1944 = 0x020D1944; +sub_020D1944 = 0x020D1944; +sub_020D1944 = 0x020D1944; +sub_020D1944 = 0x020D1944; +sub_020D1944 = 0x020D1944; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1C94 = 0x020D1C94; +sub_020D1CC4 = 0x020D1CC4; +sub_020D1CC4 = 0x020D1CC4; +sub_020D1CD4 = 0x020D1CD4; +sub_020D1D10 = 0x020D1D10; +sub_020D1D10 = 0x020D1D10; +sub_020D1D30 = 0x020D1D30; +sub_020D1D30 = 0x020D1D30; +sub_020D2040 = 0x020D2040; +sub_020D2094 = 0x020D2094; +sub_020D2094 = 0x020D2094; +sub_020D2210 = 0x020D2210; +sub_020D2210 = 0x020D2210; +sub_020D23B4 = 0x020D23B4; +sub_020D2454 = 0x020D2454; +sub_020D24EC = 0x020D24EC; +sub_020D24EC = 0x020D24EC; +sub_020D24EC = 0x020D24EC; +sub_020D24EC = 0x020D24EC; +sub_020D36C4 = 0x020D36C4; +sub_020D36C4 = 0x020D36C4; +sub_020D36C4 = 0x020D36C4; +sub_020D36D8 = 0x020D36D8; +sub_020D36D8 = 0x020D36D8; +sub_020D36D8 = 0x020D36D8; +sub_020D36F0 = 0x020D36F0; +sub_020D36F0 = 0x020D36F0; +sub_020D36F0 = 0x020D36F0; +sub_020D3A90 = 0x020D3A90; +sub_020D3A90 = 0x020D3A90; +sub_020D3AA0 = 0x020D3AA0; +sub_020D3C14 = 0x020D3C14; +sub_020D3C14 = 0x020D3C14; +sub_020D3CB8 = 0x020D3CB8; +sub_020D3CB8 = 0x020D3CB8; +sub_020D3DCC = 0x020D3DCC; +sub_020D3E24 = 0x020D3E24; +sub_020D3EC4 = 0x020D3EC4; +sub_020D3EC4 = 0x020D3EC4; +sub_020D400C = 0x020D400C; +sub_020D40B8 = 0x020D40B8; +sub_020D4718 = 0x020D4718; +sub_020D47CC = 0x020D47CC; +sub_020D47CC = 0x020D47CC; +sub_020D4980 = 0x020D4980; +sub_020D4A5C = 0x020D4A5C; +sub_020D4E68 = 0x020D4E68; +sub_020D50D8 = 0x020D50D8; +sub_020D50D8 = 0x020D50D8; +sub_020D5150 = 0x020D5150; +sub_020D5168 = 0x020D5168; +sub_020D5180 = 0x020D5180; +sub_020D526C = 0x020D526C; +sub_020D526C = 0x020D526C; +sub_020D5F40 = 0x020D5F40; +sub_020D614C = 0x020D614C; +sub_020D6320 = 0x020D6320; +sub_020D6320 = 0x020D6320; +sub_020D6320 = 0x020D6320; +sub_020D6320 = 0x020D6320; +sub_020D6320 = 0x020D6320; +sub_020D6320 = 0x020D6320; +sub_020D6320 = 0x020D6320; +sub_020D6320 = 0x020D6320; +sub_020D6578 = 0x020D6578; +sub_020D6578 = 0x020D6578; +sub_020D6578 = 0x020D6578; +sub_020D6578 = 0x020D6578; +sub_020D6578 = 0x020D6578; +sub_020D6578 = 0x020D6578; +sub_020D6578 = 0x020D6578; +sub_020D6578 = 0x020D6578; +sub_020D6578 = 0x020D6578; +sub_020D6578 = 0x020D6578; +sub_020D660C = 0x020D660C; +sub_020D660C = 0x020D660C; +sub_020D660C = 0x020D660C; +sub_020D660C = 0x020D660C; +sub_020D660C = 0x020D660C; +sub_020D660C = 0x020D660C; +sub_020D660C = 0x020D660C; +sub_020D660C = 0x020D660C; +sub_020D660C = 0x020D660C; +sub_020D660C = 0x020D660C; +sub_020D660C = 0x020D660C; +sub_020D66A0 = 0x020D66A0; +sub_020D66A0 = 0x020D66A0; +sub_020D66A0 = 0x020D66A0; +sub_020D66A0 = 0x020D66A0; +sub_020D66A0 = 0x020D66A0; +sub_020D66B0 = 0x020D66B0; +sub_020D66B0 = 0x020D66B0; +sub_020D66B0 = 0x020D66B0; +sub_020D66B0 = 0x020D66B0; +sub_020D6700 = 0x020D6700; +sub_020D6700 = 0x020D6700; +sub_020D6DAC = 0x020D6DAC; +sub_020D6DB8 = 0x020D6DB8; +sub_020D6DB8 = 0x020D6DB8; +sub_020D6DC4 = 0x020D6DC4; +sub_020D6DC4 = 0x020D6DC4; +sub_020D6DC4 = 0x020D6DC4; +sub_020D6F20 = 0x020D6F20; +sub_020D6F20 = 0x020D6F20; +sub_020D6F20 = 0x020D6F20; +sub_020D6F20 = 0x020D6F20; +sub_020D7228 = 0x020D7228; +sub_020D7228 = 0x020D7228; +sub_020D7D18 = 0x020D7D18; +sub_020D7E9C = 0x020D7E9C; +sub_020D7E9C = 0x020D7E9C; +sub_020D8A4C = 0x020D8A4C; +sub_020D8A4C = 0x020D8A4C; +sub_020D8AF0 = 0x020D8AF0; +sub_020D8AF0 = 0x020D8AF0; +sub_020D8AF0 = 0x020D8AF0; +sub_020D8AF0 = 0x020D8AF0; +sub_020D8AF0 = 0x020D8AF0; +sub_020D8AF0 = 0x020D8AF0; +sub_020D8AF0 = 0x020D8AF0; +sub_020D8B94 = 0x020D8B94; +sub_020D8B94 = 0x020D8B94; +sub_020D8B94 = 0x020D8B94; +sub_020D8B94 = 0x020D8B94; +sub_020D8B94 = 0x020D8B94; +sub_020D8B94 = 0x020D8B94; +sub_020D8B94 = 0x020D8B94; +sub_020D8C3C = 0x020D8C3C; +sub_020D8C3C = 0x020D8C3C; +sub_020D8C3C = 0x020D8C3C; +sub_020D8C3C = 0x020D8C3C; +sub_020D8C3C = 0x020D8C3C; +sub_020D8C3C = 0x020D8C3C; +sub_020D8C3C = 0x020D8C3C; +sub_020D8C3C = 0x020D8C3C; +sub_020D8F34 = 0x020D8F34; +sub_020D8F34 = 0x020D8F34; +sub_020D8F34 = 0x020D8F34; +sub_020D8F34 = 0x020D8F34; +sub_020D8F34 = 0x020D8F34; +sub_020D8F34 = 0x020D8F34; +sub_020D8F34 = 0x020D8F34; +sub_020D9014 = 0x020D9014; +sub_020D9014 = 0x020D9014; +sub_020D9014 = 0x020D9014; +sub_020D9014 = 0x020D9014; +sub_020D9014 = 0x020D9014; +sub_020D9014 = 0x020D9014; +sub_020D9014 = 0x020D9014; +sub_020D9060 = 0x020D9060; +sub_020D9060 = 0x020D9060; +sub_020D9060 = 0x020D9060; +sub_020D9168 = 0x020D9168; +sub_020D9168 = 0x020D9168; +sub_020D9244 = 0x020D9244; +sub_020D9244 = 0x020D9244; +sub_020D940C = 0x020D940C; +sub_020D940C = 0x020D940C; +sub_020D950C = 0x020D950C; +sub_020D950C = 0x020D950C; +sub_020D9554 = 0x020D9554; +sub_020D9554 = 0x020D9554; +sub_020D9624 = 0x020D9624; +sub_020D9624 = 0x020D9624; +sub_020D972C = 0x020D972C; +sub_020D972C = 0x020D972C; +sub_020D972C = 0x020D972C; +sub_020D972C = 0x020D972C; +sub_020D972C = 0x020D972C; +sub_020D972C = 0x020D972C; +sub_020D972C = 0x020D972C; +sub_020D9774 = 0x020D9774; +sub_020D9774 = 0x020D9774; +sub_020D97B4 = 0x020D97B4; +sub_020D97B4 = 0x020D97B4; +sub_020D97B4 = 0x020D97B4; +sub_020D97B4 = 0x020D97B4; +sub_020D97B4 = 0x020D97B4; +sub_020D97B4 = 0x020D97B4; +sub_020D97B4 = 0x020D97B4; +sub_020D9960 = 0x020D9960; +sub_020D9960 = 0x020D9960; +sub_020D9960 = 0x020D9960; +sub_020D99EC = 0x020D99EC; +sub_020D99EC = 0x020D99EC; +sub_020D9B48 = 0x020D9B48; +sub_020D9B48 = 0x020D9B48; +sub_020D9B48 = 0x020D9B48; +sub_020DAD74 = 0x020DAD74; +sub_020DAD74 = 0x020DAD74; +sub_020DAD74 = 0x020DAD74; +sub_020DAD74 = 0x020DAD74; +sub_020DAD74 = 0x020DAD74; +sub_020DAD74 = 0x020DAD74; +sub_020DAD74 = 0x020DAD74; +sub_020DADD4 = 0x020DADD4; +sub_020DADD4 = 0x020DADD4; +sub_020DADD4 = 0x020DADD4; +sub_020DADD4 = 0x020DADD4; +sub_020DADD4 = 0x020DADD4; +sub_020DADD4 = 0x020DADD4; +sub_020DADD4 = 0x020DADD4; +sub_020DAF30 = 0x020DAF30; +sub_020DAF30 = 0x020DAF30; +sub_020DAF30 = 0x020DAF30; +sub_020DAF30 = 0x020DAF30; +sub_020DAF30 = 0x020DAF30; +sub_020DAF30 = 0x020DAF30; +sub_020DAF30 = 0x020DAF30; +sub_020DB7A8 = 0x020DB7A8; +sub_020DDC5C = 0x020DDC5C; +sub_020DDC5C = 0x020DDC5C; +sub_020DDC5C = 0x020DDC5C; +sub_020DDCE4 = 0x020DDCE4; +sub_020DDD28 = 0x020DDD28; +sub_020DDD28 = 0x020DDD28; +sub_020DDD28 = 0x020DDD28; +sub_020DDD60 = 0x020DDD60; +sub_020DDD60 = 0x020DDD60; +sub_020DDD60 = 0x020DDD60; +sub_020DDE44 = 0x020DDE44; +sub_020DDE44 = 0x020DDE44; +sub_020DDE44 = 0x020DDE44; +sub_020DDF60 = 0x020DDF60; +sub_020DDF60 = 0x020DDF60; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DE3F0 = 0x020DE3F0; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF438 = 0x020DF438; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF4A4 = 0x020DF4A4; +sub_020DF510 = 0x020DF510; +sub_020DF510 = 0x020DF510; +sub_020E2EAC = 0x020E2EAC; +sub_020E2EC8 = 0x020E2EC8; +sub_020E2EC8 = 0x020E2EC8; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EA980 = 0x020EA980; +sub_020EAEF0 = 0x020EAEF0; +sub_020EAEF0 = 0x020EAEF0; +sub_020EAEF0 = 0x020EAEF0; +sub_020EAEF0 = 0x020EAEF0; +sub_020EB010 = 0x020EB010; +sub_020EB010 = 0x020EB010; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB084 = 0x020EB084; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4C0 = 0x020EB4C0; +sub_020EB4F4 = 0x020EB4F4; +sub_020EB4F4 = 0x020EB4F4; +sub_020EB4F4 = 0x020EB4F4; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB534 = 0x020EB534; +sub_020EB57C = 0x020EB57C; +sub_020EB57C = 0x020EB57C; +sub_020EB57C = 0x020EB57C; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB5C4 = 0x020EB5C4; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EB7B0 = 0x020EB7B0; +sub_020EBA38 = 0x020EBA38; +sub_020EBA38 = 0x020EBA38; +sub_020EBA38 = 0x020EBA38; +sub_020EBA38 = 0x020EBA38; +sub_020EBA38 = 0x020EBA38; +sub_020EBA38 = 0x020EBA38; +sub_020EBA38 = 0x020EBA38; +sub_020EBA38 = 0x020EBA38; +sub_020EBBE8 = 0x020EBBE8; +sub_020EBBE8 = 0x020EBBE8; +sub_020EBBE8 = 0x020EBBE8; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC30 = 0x020EBC30; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBC80 = 0x020EBC80; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_020EBE8C = 0x020EBE8C; +sub_021D78FC = 0x021D78FC; +sub_021D78FC = 0x021D78FC; +sub_021D78FC = 0x021D78FC; +sub_021D79B4 = 0x021D79B4; +sub_021D79B4 = 0x021D79B4; +sub_021D79B4 = 0x021D79B4; +sub_021D7CA4 = 0x021D7CA4; +sub_021D7CA4 = 0x021D7CA4; +sub_021D7CA4 = 0x021D7CA4; +sub_021D7CA4 = 0x021D7CA4; +sub_021D7CA4 = 0x021D7CA4; +sub_021D7CA4 = 0x021D7CA4; +sub_021D7CA4 = 0x021D7CA4; +sub_021D7CA4 = 0x021D7CA4; +sub_021D7CA4 = 0x021D7CA4; +sub_021D7F8C = 0x021D7F8C; +sub_021D7F8C = 0x021D7F8C; +sub_021D8018 = 0x021D8018; +sub_021D8018 = 0x021D8018; +sub_021D8018 = 0x021D8018; +sub_021D8164 = 0x021D8164; +sub_021D8164 = 0x021D8164; +sub_021D82BC = 0x021D82BC; +sub_021D82BC = 0x021D82BC; +sub_021D8320 = 0x021D8320; +sub_021D8320 = 0x021D8320; +sub_021D836C = 0x021D836C; +sub_021D836C = 0x021D836C; +sub_021D83C0 = 0x021D83C0; +sub_021D83C0 = 0x021D83C0; +sub_021D83C0 = 0x021D83C0; +sub_021D844C = 0x021D844C; +sub_021D844C = 0x021D844C; +sub_021D85FC = 0x021D85FC; +sub_021D85FC = 0x021D85FC; +sub_021D8624 = 0x021D8624; +sub_021D8624 = 0x021D8624; +sub_021D88E4 = 0x021D88E4; +sub_021D88E4 = 0x021D88E4; +sub_021D88E4 = 0x021D88E4; +sub_021D88E4 = 0x021D88E4; +sub_021D88E4 = 0x021D88E4; +sub_021D88E4 = 0x021D88E4; +sub_021D89CC = 0x021D89CC; +sub_021D89CC = 0x021D89CC; +sub_021D8B64 = 0x021D8B64; +sub_021D8B64 = 0x021D8B64; +sub_021D8B64 = 0x021D8B64; +sub_021D8B64 = 0x021D8B64; +sub_021D8B64 = 0x021D8B64; +sub_021D8B64 = 0x021D8B64; +sub_021D8B64 = 0x021D8B64; +sub_021D8C24 = 0x021D8C24; +sub_021D8C24 = 0x021D8C24; +sub_021D917C = 0x021D917C; +sub_021D917C = 0x021D917C; +sub_021D959C = 0x021D959C; +sub_021D959C = 0x021D959C; +sub_021D959C = 0x021D959C; +sub_021D959C = 0x021D959C; +sub_021D959C = 0x021D959C; +sub_021D967C = 0x021D967C; +sub_021D967C = 0x021D967C; +sub_021D967C = 0x021D967C; +sub_021D967C = 0x021D967C; +sub_021D967C = 0x021D967C; +sub_021D96F4 = 0x021D96F4; +sub_021D96F4 = 0x021D96F4; +sub_021D96F4 = 0x021D96F4; +sub_021D96F4 = 0x021D96F4; +sub_021D96F4 = 0x021D96F4; +sub_021D96F4 = 0x021D96F4; +sub_021D9708 = 0x021D9708; +sub_021D9708 = 0x021D9708; +sub_021D9708 = 0x021D9708; +sub_021D9708 = 0x021D9708; +sub_021D9708 = 0x021D9708; +sub_021D9708 = 0x021D9708; +sub_021D971C = 0x021D971C; +sub_021D971C = 0x021D971C; +sub_021D971C = 0x021D971C; +sub_021D971C = 0x021D971C; +sub_021D971C = 0x021D971C; +sub_021D971C = 0x021D971C; +sub_021D9820 = 0x021D9820; +sub_021D9820 = 0x021D9820; +sub_021D9820 = 0x021D9820; +sub_021D9820 = 0x021D9820; +sub_021D9820 = 0x021D9820; +sub_021D9820 = 0x021D9820; +sub_021D99F8 = 0x021D99F8; +sub_021D99F8 = 0x021D99F8; +sub_021D99F8 = 0x021D99F8; +sub_021D99F8 = 0x021D99F8; +sub_021D99F8 = 0x021D99F8; +sub_021DA464 = 0x021DA464; +sub_021DA464 = 0x021DA464; +sub_021DA58C = 0x021DA58C; +sub_021DA58C = 0x021DA58C; +sub_021DA5B8 = 0x021DA5B8; +sub_021DA5B8 = 0x021DA5B8; +sub_021DA5B8 = 0x021DA5B8; +sub_021DA5C8 = 0x021DA5C8; +sub_021DA5C8 = 0x021DA5C8; +sub_021DA5D0 = 0x021DA5D0; +sub_021DA5D0 = 0x021DA5D0; +sub_021DA5D0 = 0x021DA5D0; +sub_021DAC70 = 0x021DAC70; +sub_021DAC70 = 0x021DAC70; +sub_021DAE40 = 0x021DAE40; +sub_021DAE40 = 0x021DAE40; +sub_021DAED4 = 0x021DAED4; +sub_021DAED4 = 0x021DAED4; +sub_021DAF28 = 0x021DAF28; +sub_021DAF28 = 0x021DAF28; +sub_021DAF78 = 0x021DAF78; +sub_021DAF78 = 0x021DAF78; +sub_021DAF98 = 0x021DAF98; +sub_021DAF98 = 0x021DAF98; +sub_021DAF98 = 0x021DAF98; +sub_021DB030 = 0x021DB030; +sub_021DB030 = 0x021DB030; +sub_021DB030 = 0x021DB030; +sub_021DB030 = 0x021DB030; +sub_021DB7E8 = 0x021DB7E8; +sub_021DB7E8 = 0x021DB7E8; +sub_021DB858 = 0x021DB858; +sub_021DB858 = 0x021DB858; +sub_021DC174 = 0x021DC174; +sub_021DC174 = 0x021DC174; +sub_021DC174 = 0x021DC174; +sub_021DD6F0 = 0x021DD6F0; +sub_021DD6F0 = 0x021DD6F0; +sub_021DD6F0 = 0x021DD6F0; +sub_021DD6F0 = 0x021DD6F0; +sub_021DD6F0 = 0x021DD6F0; +sub_021DD6F0 = 0x021DD6F0; +sub_021DD6F0 = 0x021DD6F0; +sub_021DD718 = 0x021DD718; +sub_021DD718 = 0x021DD718; +sub_021DD718 = 0x021DD718; +sub_021DD718 = 0x021DD718; +sub_021DD718 = 0x021DD718; +sub_021DD718 = 0x021DD718; +sub_021DD718 = 0x021DD718; +sub_021DD718 = 0x021DD718; +sub_021DDB08 = 0x021DDB08; +sub_021DDB08 = 0x021DDB08; +sub_021DDB08 = 0x021DDB08; +sub_021DDB08 = 0x021DDB08; +sub_021DDB08 = 0x021DDB08; +sub_021DDB08 = 0x021DDB08; +sub_021DDB08 = 0x021DDB08; +sub_021E1374 = 0x021E1374; +sub_021E1374 = 0x021E1374; +sub_021E1858 = 0x021E1858; +sub_021E1858 = 0x021E1858; +sub_021E1994 = 0x021E1994; +sub_021E1994 = 0x021E1994; +sub_021E1BF8 = 0x021E1BF8; +sub_021E1BF8 = 0x021E1BF8; +sub_021E1BF8 = 0x021E1BF8; +sub_021E1C4C = 0x021E1C4C; +sub_021E1C4C = 0x021E1C4C; +sub_021E1C4C = 0x021E1C4C; +sub_021E1C54 = 0x021E1C54; +sub_021E1C54 = 0x021E1C54; +sub_021E1C54 = 0x021E1C54; +sub_021E1ECC = 0x021E1ECC; +sub_021E1ECC = 0x021E1ECC; +sub_021E1F34 = 0x021E1F34; +sub_021E1F34 = 0x021E1F34; +sub_021E1F34 = 0x021E1F34; +sub_021E1F58 = 0x021E1F58; +sub_021E1F58 = 0x021E1F58; +sub_021E1F60 = 0x021E1F60; +sub_021E1F60 = 0x021E1F60; +sub_021E2464 = 0x021E2464; +sub_021E2464 = 0x021E2464; +sub_021E2608 = 0x021E2608; +sub_021E2608 = 0x021E2608; +sub_021E26CC = 0x021E26CC; +sub_021E26CC = 0x021E26CC; +sub_021E2B80 = 0x021E2B80; +sub_021E2B80 = 0x021E2B80; +sub_021E2B9C = 0x021E2B9C; +sub_021E2B9C = 0x021E2B9C; +sub_021E2BB8 = 0x021E2BB8; +sub_021E2BB8 = 0x021E2BB8; +sub_021E2BB8 = 0x021E2BB8; +sub_021E2BB8 = 0x021E2BB8; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2BD0 = 0x021E2BD0; +sub_021E2C24 = 0x021E2C24; +sub_021E2C24 = 0x021E2C24; +sub_021E2C24 = 0x021E2C24; +sub_021E2C58 = 0x021E2C58; +sub_021E2C58 = 0x021E2C58; +sub_021E2C58 = 0x021E2C58; +sub_021E2C58 = 0x021E2C58; +sub_021E2CBC = 0x021E2CBC; +sub_021E2CBC = 0x021E2CBC; +sub_021E32F0 = 0x021E32F0; +sub_021E32F0 = 0x021E32F0; +sub_021E32F0 = 0x021E32F0; +sub_021E331C = 0x021E331C; +sub_021E331C = 0x021E331C; +sub_021E331C = 0x021E331C; +sub_021E331C = 0x021E331C; +sub_021E3424 = 0x021E3424; +sub_021E3424 = 0x021E3424; +sub_021E3444 = 0x021E3444; +sub_021E3444 = 0x021E3444; +sub_021E495C = 0x021E495C; +sub_021E495C = 0x021E495C; +sub_021E4C54 = 0x021E4C54; +sub_021E4C54 = 0x021E4C54; +sub_021E4C60 = 0x021E4C60; +sub_021E4C60 = 0x021E4C60; +sub_021E4DE4 = 0x021E4DE4; +sub_021E4DE4 = 0x021E4DE4; +sub_021E5970 = 0x021E5970; +sub_021E5970 = 0x021E5970; +sub_021E5B30 = 0x021E5B30; +sub_021E5B30 = 0x021E5B30; +sub_021E5B30 = 0x021E5B30; +sub_021E5B30 = 0x021E5B30; +sub_021E5B30 = 0x021E5B30; +sub_021E5FD8 = 0x021E5FD8; +sub_021E5FD8 = 0x021E5FD8; +sub_021E5FD8 = 0x021E5FD8; +sub_021E5FD8 = 0x021E5FD8; +sub_021E5FD8 = 0x021E5FD8; +sub_021E5FD8 = 0x021E5FD8; +sub_021E5FE0 = 0x021E5FE0; +sub_021E5FE0 = 0x021E5FE0; +sub_021E5FE0 = 0x021E5FE0; +sub_021E5FE0 = 0x021E5FE0; +sub_021E5FE0 = 0x021E5FE0; +sub_021E5FE0 = 0x021E5FE0; +sub_021E5FE0 = 0x021E5FE0; +sub_021E6410 = 0x021E6410; +sub_021E6410 = 0x021E6410; +sub_021E643C = 0x021E643C; +sub_021E643C = 0x021E643C; +sub_021E6990 = 0x021E6990; +sub_021E6990 = 0x021E6990; +sub_021E69BC = 0x021E69BC; +sub_021E69BC = 0x021E69BC; +sub_021E6BF4 = 0x021E6BF4; +sub_021E6BF4 = 0x021E6BF4; +sub_021E7030 = 0x021E7030; +sub_021E7030 = 0x021E7030; +sub_021E70F0 = 0x021E70F0; +sub_021E70F0 = 0x021E70F0; +sub_021E7138 = 0x021E7138; +sub_021E7138 = 0x021E7138; +sub_021E7138 = 0x021E7138; +sub_021E7138 = 0x021E7138; +sub_021E7184 = 0x021E7184; +sub_021E7184 = 0x021E7184; +sub_021E71E8 = 0x021E71E8; +sub_021E71E8 = 0x021E71E8; +sub_021E7750 = 0x021E7750; +sub_021E7750 = 0x021E7750; +sub_021E7750 = 0x021E7750; +sub_021E799C = 0x021E799C; +sub_021E799C = 0x021E799C; +sub_021E799C = 0x021E799C; +sub_021E7AC0 = 0x021E7AC0; +sub_021E7AC0 = 0x021E7AC0; +sub_021E7AC0 = 0x021E7AC0; +sub_021E7EA0 = 0x021E7EA0; +sub_021E7EA0 = 0x021E7EA0; +sub_021E7EA0 = 0x021E7EA0; +sub_021E7EA0 = 0x021E7EA0; +sub_021E7EB0 = 0x021E7EB0; +sub_021E7EB0 = 0x021E7EB0; +sub_021E7EB0 = 0x021E7EB0; +sub_021E7EC4 = 0x021E7EC4; +sub_021E7EC4 = 0x021E7EC4; +sub_021E7EC4 = 0x021E7EC4; +sub_021E7EC4 = 0x021E7EC4; +sub_021E7EC4 = 0x021E7EC4; +sub_021E7EC8 = 0x021E7EC8; +sub_021E7EC8 = 0x021E7EC8; +sub_021E7ED0 = 0x021E7ED0; +sub_021E7ED0 = 0x021E7ED0; +sub_021E7ED0 = 0x021E7ED0; +sub_021E7ED0 = 0x021E7ED0; +sub_021E7ED0 = 0x021E7ED0; +sub_021E7ED8 = 0x021E7ED8; +sub_021E7ED8 = 0x021E7ED8; +sub_021E7FBC = 0x021E7FBC; +sub_021E7FBC = 0x021E7FBC; +sub_021E8128 = 0x021E8128; +sub_021E8128 = 0x021E8128; +sub_021E8128 = 0x021E8128; +sub_021E8130 = 0x021E8130; +sub_021E8130 = 0x021E8130; +sub_021E8130 = 0x021E8130; +sub_021E8130 = 0x021E8130; +sub_021E8140 = 0x021E8140; +sub_021E8140 = 0x021E8140; +sub_021E8140 = 0x021E8140; +sub_021E8144 = 0x021E8144; +sub_021E8144 = 0x021E8144; +sub_021E8148 = 0x021E8148; +sub_021E8148 = 0x021E8148; +sub_021E8148 = 0x021E8148; +sub_021E8158 = 0x021E8158; +sub_021E8158 = 0x021E8158; +sub_021E81BC = 0x021E81BC; +sub_021E81BC = 0x021E81BC; +sub_021E84F4 = 0x021E84F4; +sub_021E84F4 = 0x021E84F4; +sub_021E856C = 0x021E856C; +sub_021E856C = 0x021E856C; +sub_021E8588 = 0x021E8588; +sub_021E8588 = 0x021E8588; +sub_021E85E4 = 0x021E85E4; +sub_021E85E4 = 0x021E85E4; +sub_021E85FC = 0x021E85FC; +sub_021E85FC = 0x021E85FC; +sub_021ECF14 = 0x021ECF14; +sub_021ECF14 = 0x021ECF14; +sub_021ED49C = 0x021ED49C; +sub_021ED49C = 0x021ED49C; +sub_021ED940 = 0x021ED940; +sub_021ED940 = 0x021ED940; +sub_021EDA48 = 0x021EDA48; +sub_021EDA48 = 0x021EDA48; +sub_021EDBC8 = 0x021EDBC8; +sub_021EDBC8 = 0x021EDBC8; +sub_021EF5E0 = 0x021EF5E0; +sub_021EF5E0 = 0x021EF5E0; +sub_021EF5E0 = 0x021EF5E0; +sub_021EF604 = 0x021EF604; +sub_021EF604 = 0x021EF604; +sub_021EF604 = 0x021EF604; +sub_021EF604 = 0x021EF604; +sub_021EF604 = 0x021EF604; +sub_021EF620 = 0x021EF620; +sub_021EF620 = 0x021EF620; +sub_021EF654 = 0x021EF654; +sub_021EF654 = 0x021EF654; +sub_021EF824 = 0x021EF824; +sub_021EF824 = 0x021EF824; +sub_021EF824 = 0x021EF824; +sub_021EF824 = 0x021EF824; +sub_021EF844 = 0x021EF844; +sub_021EF844 = 0x021EF844; +sub_021EF844 = 0x021EF844; +sub_021EF8C8 = 0x021EF8C8; +sub_021EF8C8 = 0x021EF8C8; +sub_021EF8DC = 0x021EF8DC; +sub_021EF8DC = 0x021EF8DC; +sub_021EFA9C = 0x021EFA9C; +sub_021EFA9C = 0x021EFA9C; +sub_021EFA9C = 0x021EFA9C; +sub_021F02C4 = 0x021F02C4; +sub_021F02C4 = 0x021F02C4; +sub_021F1D8C = 0x021F1D8C; +sub_021F1D8C = 0x021F1D8C; +sub_021F1DC8 = 0x021F1DC8; +sub_021F1DC8 = 0x021F1DC8; +sub_021F1DC8 = 0x021F1DC8; +sub_021F1DC8 = 0x021F1DC8; +sub_021F1DC8 = 0x021F1DC8; +sub_021F1DC8 = 0x021F1DC8; +sub_021F1DFC = 0x021F1DFC; +sub_021F1DFC = 0x021F1DFC; +sub_021F1EC0 = 0x021F1EC0; +sub_021F1EC0 = 0x021F1EC0; +sub_021F1EC0 = 0x021F1EC0; +sub_021F1EC0 = 0x021F1EC0; +sub_021F1F78 = 0x021F1F78; +sub_021F1F78 = 0x021F1F78; +sub_021F1F78 = 0x021F1F78; +sub_021F2094 = 0x021F2094; +sub_021F2094 = 0x021F2094; +sub_021F2094 = 0x021F2094; +sub_021F2094 = 0x021F2094; +sub_021F20D8 = 0x021F20D8; +sub_021F20D8 = 0x021F20D8; +sub_021F20F8 = 0x021F20F8; +sub_021F20F8 = 0x021F20F8; +sub_021F2AF4 = 0x021F2AF4; +sub_021F2AF4 = 0x021F2AF4; +sub_021F2E0C = 0x021F2E0C; +sub_021F2E0C = 0x021F2E0C; +sub_021F2E28 = 0x021F2E28; +sub_021F2E28 = 0x021F2E28; +sub_021F2E28 = 0x021F2E28; +sub_021F2E28 = 0x021F2E28; +sub_021F2F48 = 0x021F2F48; +sub_021F2F48 = 0x021F2F48; +sub_021F2F48 = 0x021F2F48; +sub_021F2F6C = 0x021F2F6C; +sub_021F2F6C = 0x021F2F6C; +sub_021F3DA4 = 0x021F3DA4; +sub_021F3DA4 = 0x021F3DA4; +sub_021F44D8 = 0x021F44D8; +sub_021F44D8 = 0x021F44D8; +sub_021F4520 = 0x021F4520; +sub_021F4520 = 0x021F4520; +sub_021F4568 = 0x021F4568; +sub_021F4568 = 0x021F4568; +sub_021F45E8 = 0x021F45E8; +sub_021F45E8 = 0x021F45E8; +sub_021F45E8 = 0x021F45E8; +sub_021F4608 = 0x021F4608; +sub_021F4608 = 0x021F4608; +sub_021F4608 = 0x021F4608; +sub_021F4BD0 = 0x021F4BD0; +sub_021F4BD0 = 0x021F4BD0; +sub_021F4C88 = 0x021F4C88; +sub_021F4C88 = 0x021F4C88; +sub_021F4D80 = 0x021F4D80; +sub_021F4D80 = 0x021F4D80; +sub_021F4DC8 = 0x021F4DC8; +sub_021F4DC8 = 0x021F4DC8; +sub_021F4E7C = 0x021F4E7C; +sub_021F4E7C = 0x021F4E7C; +sub_021F57EC = 0x021F57EC; +sub_021F57EC = 0x021F57EC; +sub_021F5C44 = 0x021F5C44; +sub_021F5C44 = 0x021F5C44; +sub_021F5C44 = 0x021F5C44; +sub_021F5C44 = 0x021F5C44; +sub_021F5C44 = 0x021F5C44; +sub_021F5C44 = 0x021F5C44; +sub_021F5C44 = 0x021F5C44; +sub_02211E60 = 0x02211E60; +sub_02211E60 = 0x02211E60; +sub_0222DAEC = 0x0222DAEC; +sub_0222DAEC = 0x0222DAEC; +sub_0222DD1C = 0x0222DD1C; +sub_0222DD1C = 0x0222DD1C; +sub_0222DD38 = 0x0222DD38; +sub_0222DD38 = 0x0222DD38; +sub_0222E2BC = 0x0222E2BC; +sub_0222E2BC = 0x0222E2BC; +sub_0222E360 = 0x0222E360; +sub_0222E360 = 0x0222E360; +sub_0222E3A0 = 0x0222E3A0; +sub_0222E3A0 = 0x0222E3A0; +sub_0222E7E8 = 0x0222E7E8; +sub_0222E7E8 = 0x0222E7E8; +sub_0222E874 = 0x0222E874; +sub_0222E874 = 0x0222E874; +sub_0222ED34 = 0x0222ED34; +sub_0222ED34 = 0x0222ED34; +sub_0222EDBC = 0x0222EDBC; +sub_0222EDBC = 0x0222EDBC; +sub_0222F440 = 0x0222F440; +sub_0222F440 = 0x0222F440; +sub_0222F480 = 0x0222F480; +sub_0222F480 = 0x0222F480; +sub_0222F480 = 0x0222F480; +sub_0222F7E0 = 0x0222F7E0; +sub_0222F7E0 = 0x0222F7E0; +sub_0222F990 = 0x0222F990; +sub_0222F990 = 0x0222F990; +sub_022300D4 = 0x022300D4; +sub_022300D4 = 0x022300D4; +sub_022300D4 = 0x022300D4; +sub_022300DC = 0x022300DC; +sub_022300DC = 0x022300DC; +sub_022300DC = 0x022300DC; +sub_022300E4 = 0x022300E4; +sub_022300E4 = 0x022300E4; +sub_022300E8 = 0x022300E8; +sub_022300E8 = 0x022300E8; +sub_022300F4 = 0x022300F4; +sub_022300F4 = 0x022300F4; +sub_022300F4 = 0x022300F4; +sub_02230100 = 0x02230100; +sub_02230100 = 0x02230100; +sub_02230100 = 0x02230100; +sub_0223010C = 0x0223010C; +sub_0223010C = 0x0223010C; +sub_02230118 = 0x02230118; +sub_02230118 = 0x02230118; +sub_02230118 = 0x02230118; +sub_02230124 = 0x02230124; +sub_02230124 = 0x02230124; +sub_02230124 = 0x02230124; +sub_02230F3C = 0x02230F3C; +sub_02230F3C = 0x02230F3C; +sub_02230F70 = 0x02230F70; +sub_02230F70 = 0x02230F70; +sub_02230F80 = 0x02230F80; +sub_02230F80 = 0x02230F80; +sub_02231344 = 0x02231344; +sub_02231344 = 0x02231344; +sub_02231350 = 0x02231350; +sub_02231350 = 0x02231350; +sub_0223135C = 0x0223135C; +sub_0223135C = 0x0223135C; +sub_02231368 = 0x02231368; +sub_02231368 = 0x02231368; +sub_02231374 = 0x02231374; +sub_02231374 = 0x02231374; +sub_02239944 = 0x02239944; +sub_02239944 = 0x02239944; +sub_02239AAC = 0x02239AAC; +sub_02239AAC = 0x02239AAC; +sub_0223CB08 = 0x0223CB08; +sub_0223CB08 = 0x0223CB08; +sub_0223CCDC = 0x0223CCDC; +sub_0223CCDC = 0x0223CCDC; +sub_0223CD7C = 0x0223CD7C; +sub_0223CD7C = 0x0223CD7C; +sub_0223CD7C = 0x0223CD7C; +sub_0223D3D0 = 0x0223D3D0; +sub_0223D3D0 = 0x0223D3D0; +sub_0223D3D0 = 0x0223D3D0; +sub_0223D3D0 = 0x0223D3D0; +sub_0223D3D0 = 0x0223D3D0; +sub_0223D638 = 0x0223D638; +sub_0223D638 = 0x0223D638; +sub_0223D638 = 0x0223D638; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223D648 = 0x0223D648; +sub_0223E060 = 0x0223E060; +sub_0223E060 = 0x0223E060; +sub_0223E1E0 = 0x0223E1E0; +sub_0223E1E0 = 0x0223E1E0; +sub_0223E4A8 = 0x0223E4A8; +sub_0223E4A8 = 0x0223E4A8; +sub_0223E4D4 = 0x0223E4D4; +sub_0223E4D4 = 0x0223E4D4; +sub_0223E554 = 0x0223E554; +sub_0223E554 = 0x0223E554; +sub_0223E6B8 = 0x0223E6B8; +sub_0223E6B8 = 0x0223E6B8; +sub_0223E734 = 0x0223E734; +sub_0223E734 = 0x0223E734; +sub_0223E734 = 0x0223E734; +sub_0223EB8C = 0x0223EB8C; +sub_0223EB8C = 0x0223EB8C; +sub_0223EF7C = 0x0223EF7C; +sub_0223EF7C = 0x0223EF7C; +sub_0223F8D8 = 0x0223F8D8; +sub_0223F8D8 = 0x0223F8D8; +sub_02240790 = 0x02240790; +sub_02240790 = 0x02240790; +sub_022407DC = 0x022407DC; +sub_022407DC = 0x022407DC; +sub_022407F8 = 0x022407F8; +sub_022407F8 = 0x022407F8; +sub_02240844 = 0x02240844; +sub_02240844 = 0x02240844; +sub_0224089C = 0x0224089C; +sub_0224089C = 0x0224089C; +sub_0224089C = 0x0224089C; +sub_02241230 = 0x02241230; +sub_02241230 = 0x02241230; +sub_02241914 = 0x02241914; +sub_02241914 = 0x02241914; +sub_02242A38 = 0x02242A38; +sub_02242A38 = 0x02242A38; +sub_02244210 = 0x02244210; +sub_02244210 = 0x02244210; +sub_02244558 = 0x02244558; +sub_02244558 = 0x02244558; +sub_02244660 = 0x02244660; +sub_02244660 = 0x02244660; +sub_022446BC = 0x022446BC; +sub_022446BC = 0x022446BC; +sub_022446E0 = 0x022446E0; +sub_022446E0 = 0x022446E0; +sub_02244D3C = 0x02244D3C; +sub_02244D3C = 0x02244D3C; +sub_02244D40 = 0x02244D40; +sub_02244D40 = 0x02244D40; +sub_02244D40 = 0x02244D40; +sub_02244D40 = 0x02244D40; +sub_02244D40 = 0x02244D40; +sub_02244D58 = 0x02244D58; +sub_02244D58 = 0x02244D58; +sub_02244D98 = 0x02244D98; +sub_02244D98 = 0x02244D98; +sub_02244D98 = 0x02244D98; +sub_02244DA0 = 0x02244DA0; +sub_02244DA0 = 0x02244DA0; +sub_02244DB0 = 0x02244DB0; +sub_02244DB0 = 0x02244DB0; +sub_02244DB0 = 0x02244DB0; +sub_02245114 = 0x02245114; +sub_02245114 = 0x02245114; +sub_02245198 = 0x02245198; +sub_02245198 = 0x02245198; +sub_022451F0 = 0x022451F0; +sub_022451F0 = 0x022451F0; +sub_02245358 = 0x02245358; +sub_02245358 = 0x02245358; +sub_0224566C = 0x0224566C; +sub_0224566C = 0x0224566C; +sub_02245844 = 0x02245844; +sub_02245844 = 0x02245844; +sub_02245910 = 0x02245910; +sub_02245910 = 0x02245910; +sub_02245910 = 0x02245910; +sub_02245F1C = 0x02245F1C; +sub_02245F1C = 0x02245F1C; +sub_02245F4C = 0x02245F4C; +sub_02245F4C = 0x02245F4C; +sub_02245FA0 = 0x02245FA0; +sub_02245FA0 = 0x02245FA0; +sub_0224666C = 0x0224666C; +sub_0224666C = 0x0224666C; +sub_0224666C = 0x0224666C; +sub_022466A0 = 0x022466A0; +sub_022466A0 = 0x022466A0; +sub_022466A0 = 0x022466A0; +sub_022466AC = 0x022466AC; +sub_022466AC = 0x022466AC; +sub_022466AC = 0x022466AC; +sub_02246F1C = 0x02246F1C; +sub_02246F1C = 0x02246F1C; +sub_02247294 = 0x02247294; +sub_02247294 = 0x02247294; +sub_022472AC = 0x022472AC; +sub_022472AC = 0x022472AC; +sub_02247544 = 0x02247544; +sub_02247544 = 0x02247544; +sub_02247614 = 0x02247614; +sub_02247614 = 0x02247614; +sub_02247A34 = 0x02247A34; +sub_02247A34 = 0x02247A34; +sub_022483BC = 0x022483BC; +sub_022483BC = 0x022483BC; +sub_022483E0 = 0x022483E0; +sub_022483E0 = 0x022483E0; +sub_022483EC = 0x022483EC; +sub_022483EC = 0x022483EC; +sub_022488FC = 0x022488FC; +sub_022488FC = 0x022488FC; +sub_0224891C = 0x0224891C; +sub_0224891C = 0x0224891C; +sub_02248B54 = 0x02248B54; +sub_02248B54 = 0x02248B54; +sub_02248B58 = 0x02248B58; +sub_02248B58 = 0x02248B58; +sub_02248B58 = 0x02248B58; +sub_02248B58 = 0x02248B58; +sub_02248B5C = 0x02248B5C; +sub_02248B5C = 0x02248B5C; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B60 = 0x02248B60; +sub_02248B6C = 0x02248B6C; +sub_02248B6C = 0x02248B6C; +sub_02248CD0 = 0x02248CD0; +sub_02248CD0 = 0x02248CD0; +sub_02248DF8 = 0x02248DF8; +sub_02248DF8 = 0x02248DF8; +sub_022494C8 = 0x022494C8; +sub_022494C8 = 0x022494C8; +sub_02249508 = 0x02249508; +sub_02249508 = 0x02249508; +sub_02249668 = 0x02249668; +sub_02249668 = 0x02249668; +sub_02249668 = 0x02249668; +sub_02249668 = 0x02249668; +sub_02249668 = 0x02249668; +sub_022497E8 = 0x022497E8; +sub_022497E8 = 0x022497E8; +sub_022497E8 = 0x022497E8; +sub_02249E6C = 0x02249E6C; +sub_02249E6C = 0x02249E6C; +sub_02249E78 = 0x02249E78; +sub_02249E78 = 0x02249E78; +sub_02249E84 = 0x02249E84; +sub_02249E84 = 0x02249E84; +sub_02249E90 = 0x02249E90; +sub_02249E90 = 0x02249E90; +sub_0224A310 = 0x0224A310; +sub_0224A310 = 0x0224A310; +sub_0224A310 = 0x0224A310; +sub_0224A528 = 0x0224A528; +sub_0224A528 = 0x0224A528; +sub_0224A528 = 0x0224A528; +sub_0224A7C8 = 0x0224A7C8; +sub_0224A7C8 = 0x0224A7C8; +sub_0224ABAC = 0x0224ABAC; +sub_0224ABAC = 0x0224ABAC; +sub_0224B124 = 0x0224B124; +sub_0224B124 = 0x0224B124; +sub_0224B124 = 0x0224B124; +sub_0224B2C4 = 0x0224B2C4; +sub_0224B2C4 = 0x0224B2C4; +sub_0224B2C4 = 0x0224B2C4; +sub_0224B568 = 0x0224B568; +sub_0224B568 = 0x0224B568; +sub_0224B568 = 0x0224B568; +sub_0224B818 = 0x0224B818; +sub_0224B818 = 0x0224B818; +sub_0224B818 = 0x0224B818; +sub_0224B818 = 0x0224B818; +sub_0224B86C = 0x0224B86C; +sub_0224B86C = 0x0224B86C; +sub_0224B9E0 = 0x0224B9E0; +sub_0224B9E0 = 0x0224B9E0; +sub_0224BBEC = 0x0224BBEC; +sub_0224BBEC = 0x0224BBEC; +sub_0224BD90 = 0x0224BD90; +sub_0224BD90 = 0x0224BD90; +sub_0224BD90 = 0x0224BD90; +sub_0224C038 = 0x0224C038; +sub_0224C038 = 0x0224C038; +sub_0224C038 = 0x0224C038; +sub_0224C678 = 0x0224C678; +sub_0224C678 = 0x0224C678; +sub_0224C6E8 = 0x0224C6E8; +sub_0224C6E8 = 0x0224C6E8; +sub_0224C700 = 0x0224C700; +sub_0224C700 = 0x0224C700; +sub_0224C8C8 = 0x0224C8C8; +sub_0224C8C8 = 0x0224C8C8; +sub_0224CA2C = 0x0224CA2C; +sub_0224CA2C = 0x0224CA2C; +sub_0224CA54 = 0x0224CA54; +sub_0224CA54 = 0x0224CA54; +sub_0224CA58 = 0x0224CA58; +sub_0224CA58 = 0x0224CA58; +sub_0224CA88 = 0x0224CA88; +sub_0224CA88 = 0x0224CA88; +sub_0224CB30 = 0x0224CB30; +sub_0224CB30 = 0x0224CB30; +sub_0224CECC = 0x0224CECC; +sub_0224CECC = 0x0224CECC; +sub_0224CECC = 0x0224CECC; +sub_0224D2E0 = 0x0224D2E0; +sub_0224D2E0 = 0x0224D2E0; +sub_0224D3E8 = 0x0224D3E8; +sub_0224D3E8 = 0x0224D3E8; +sub_0224D70C = 0x0224D70C; +sub_0224D70C = 0x0224D70C; +sub_0224D76C = 0x0224D76C; +sub_0224D76C = 0x0224D76C; +sub_0224D79C = 0x0224D79C; +sub_0224D79C = 0x0224D79C; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DCB8 = 0x0224DCB8; +sub_0224DD94 = 0x0224DD94; +sub_0224DD94 = 0x0224DD94; +sub_0224DDB8 = 0x0224DDB8; +sub_0224DDB8 = 0x0224DDB8; +sub_0224DDB8 = 0x0224DDB8; +sub_0224E554 = 0x0224E554; +sub_0224E554 = 0x0224E554; +sub_0224E764 = 0x0224E764; +sub_0224E764 = 0x0224E764; +sub_0224E7C4 = 0x0224E7C4; +sub_0224E7C4 = 0x0224E7C4; +sub_0224F12C = 0x0224F12C; +sub_0224F12C = 0x0224F12C; +sub_0224F12C = 0x0224F12C; +sub_0224F12C = 0x0224F12C; +sub_02252534 = 0x02252534; +sub_02252534 = 0x02252534; +sub_02252538 = 0x02252538; +sub_02252538 = 0x02252538; +sub_022567E0 = 0x022567E0; +sub_022567E0 = 0x022567E0;