diff options
36 files changed, 31703 insertions, 31454 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index eb02cf99..e8f534d0 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -701,7 +701,39 @@ Overlay MODULE_05 Object mod05_021E7C00.o Object mod05_021E80F8.o Object mod05_021E8310.o - Object module_05.o + Object mod05_021E8648.o + Object mod05_021E8860.o + Object mod05_021E88E8.o + Object mod05_021EC458.o + Object mod05_021ED9C0.o + Object mod05_021EDB70.o + Object mod05_021EDE34.o + Object mod05_021EFA9C.o + Object mod05_021EFBF8.o + Object mod05_021F0318.o + Object mod05_021F0514.o + Object mod05_021F1B0C.o + Object mod05_021F1CB8.o + Object mod05_021F1F04.o + Object mod05_021F3780.o + Object mod05_021F3854.o + Object mod05_021F38CC.o + Object mod05_021F3BC0.o + Object mod05_021F3C98.o + Object mod05_021F3FE0.o + Object mod05_021F445C.o + Object mod05_021F45B4.o + Object mod05_021F46C8.o + Object mod05_021F4968.o + Object mod05_021F4CF8.o + Object mod05_021F5268.o + Object mod05_021F5518.o + Object mod05_021F5990.o + Object mod05_021F5B9C.o + Object mod05_021F5C44.o + Object mod05_021F61DC.o + Object mod05_021F61F4.o + Object mod05_021F6360.o } Overlay MODULE_06 diff --git a/arm9/global.inc b/arm9/global.inc index 9b994394..8658cca9 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -6547,6 +6547,8 @@ .extern MOD05_021E85FC .extern MOD05_021E8648 .extern MOD05_021E8698 +.extern MOD05_021E8860 +.extern MOD05_021E88C0 .extern MOD05_021E88E8 .extern MOD05_021E8A68 .extern MOD05_021E8BEC @@ -6596,7 +6598,11 @@ .extern MOD05_021ED644 .extern MOD05_021ED940 .extern MOD05_021ED9B4 +.extern MOD05_021ED9C0 +.extern MOD05_021ED9DC .extern MOD05_021EDA48 +.extern MOD05_021EDB70 +.extern MOD05_021EDB8C .extern MOD05_021EDBC8 .extern MOD05_021EE52C .extern MOD05_021EEF68 @@ -6611,6 +6617,7 @@ .extern MOD05_021EF5E0 .extern MOD05_021EF5FC .extern MOD05_021EF604 +.extern MOD05_021EF618 .extern MOD05_021EF620 .extern MOD05_021EF654 .extern MOD05_021EF824 @@ -6631,16 +6638,35 @@ .extern MOD05_021F04F8 .extern MOD05_021F0514 .extern MOD05_021F1AF8 +.extern MOD05_021F1B0C +.extern MOD05_021F1B2C +.extern MOD05_021F1B58 +.extern MOD05_021F1B60 +.extern MOD05_021F1B8C +.extern MOD05_021F1BD0 +.extern MOD05_021F1BF4 +.extern MOD05_021F1C14 .extern MOD05_021F1C1C +.extern MOD05_021F1C24 .extern MOD05_021F1C30 .extern MOD05_021F1CB8 .extern MOD05_021F1D2C .extern MOD05_021F1D8C .extern MOD05_021F1DC8 .extern MOD05_021F1DFC +.extern MOD05_021F1E2C .extern MOD05_021F1E64 .extern MOD05_021F1EC0 +.extern MOD05_021F1EDC +.extern MOD05_021F1EF4 +.extern MOD05_021F1EF8 +.extern MOD05_021F1EFC +.extern MOD05_021F1F00 +.extern MOD05_021F1F04 +.extern MOD05_021F1F58 .extern MOD05_021F1F78 +.extern MOD05_021F1FC8 +.extern MOD05_021F2060 .extern MOD05_021F2094 .extern MOD05_021F20D8 .extern MOD05_021F20F8 @@ -6651,13 +6677,30 @@ .extern MOD05_021F2E28 .extern MOD05_021F2F48 .extern MOD05_021F2F6C +.extern MOD05_021F2FAC +.extern MOD05_021F2FB8 +.extern MOD05_021F2FC4 .extern MOD05_021F3490 +.extern MOD05_021F3780 +.extern MOD05_021F379C +.extern MOD05_021F3810 .extern MOD05_021F38B8 .extern MOD05_021F3A18 .extern MOD05_021F3AB4 .extern MOD05_021F3B4C .extern MOD05_021F3B7C +.extern MOD05_021F3BC0 +.extern MOD05_021F3C30 +.extern MOD05_021F3C60 +.extern MOD05_021F3C68 .extern MOD05_021F3DA4 +.extern MOD05_021F4328 +.extern MOD05_021F4344 +.extern MOD05_021F43C0 +.extern MOD05_021F43CC +.extern MOD05_021F43E4 +.extern MOD05_021F4444 +.extern MOD05_021F4454 .extern MOD05_021F4498 .extern MOD05_021F44D8 .extern MOD05_021F450C @@ -6680,6 +6723,7 @@ .extern MOD05_021F4C74 .extern MOD05_021F4C88 .extern MOD05_021F4C9C +.extern MOD05_021F4CA8 .extern MOD05_021F4CBC .extern MOD05_021F4CD4 .extern MOD05_021F4CE4 @@ -6715,6 +6759,7 @@ .extern MOD05_021F5A5C .extern MOD05_021F5A74 .extern MOD05_021F5A90 +.extern MOD05_021F5AA4 .extern MOD05_021F5AB8 .extern MOD05_021F5AE4 .extern MOD05_021F5B9C @@ -8207,9 +8252,17 @@ .extern TP_WaitBusy .extern TP_WaitRawResult .extern UNK05_021F64C8 +.extern UNK05_021F8B84 +.extern UNK05_021F8B88 +.extern UNK05_021F8B90 .extern UNK05_021F9080 +.extern UNK05_021F9094 +.extern UNK05_021F90E4 .extern UNK05_021F9194 .extern UNK05_021F9494 +.extern UNK05_021F9A9C +.extern UNK05_021FA0AC +.extern UNK05_021FAC6C .extern UNK05_021FC718 .extern UNK05_021FC79C .extern UNK05_021FC820 diff --git a/arm9/modules/05/asm/mod05_021E8648.s b/arm9/modules/05/asm/mod05_021E8648.s new file mode 100644 index 00000000..12fe946f --- /dev/null +++ b/arm9/modules/05/asm/mod05_021E8648.s @@ -0,0 +1,279 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021E8648 +MOD05_021E8648: ; 0x021E8648 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _021E8690 ; =MOD05_021E8728 + ldr r3, [r5, #0x28] + mov r1, #0x38 + mov r2, #5 + bl FUN_020061E8 + add r6, r0, #0 + bl FUN_0201B6C8 + add r4, r0, #0 + add r2, r4, #4 + mov r3, #5 +_021E8664: + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + sub r3, r3, #1 + bne _021E8664 + ldr r0, [r5] + str r0, [r2] + str r6, [r4, #0x34] + mov r0, #0 + str r0, [r4, #0x30] + bl GX_GetBankForLCDC + str r0, [r4] + add r0, r4, #4 + bl MOD05_021E87C8 + ldr r0, _021E8694 ; =MOD05_021E8768 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA98 + add r0, r4, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 +_021E8690: .word MOD05_021E8728 +_021E8694: .word MOD05_021E8768 + + thumb_func_start MOD05_021E8698 +MOD05_021E8698: ; 0x021E8698 + push {r4, lr} + add r4, r0, #0 + add r0, r1, #0 + add r1, r2, #0 + add r2, r3, #0 + bl GX_SetGraphicsMode + ldr r0, [r4] + ldr r0, [r0] + bl GX_SetBankForLCDC + ldr r0, [r4] + ldr r0, [r0, #4] + cmp r0, #0xa + bgt _021E86C8 + bge _021E86EC + cmp r0, #6 + bgt _021E8708 + cmp r0, #2 + blt _021E8708 + beq _021E86CE + cmp r0, #6 + beq _021E86DE + b _021E8708 +_021E86C8: + cmp r0, #0xe + beq _021E86FA + b _021E8708 +_021E86CE: + mov r1, #0x1a + mov r2, #2 + mov r0, #0 + lsl r1, r1, #0x16 + lsl r2, r2, #0x10 + bl MIi_CpuClearFast + b _021E870E +_021E86DE: + mov r2, #2 + ldr r1, _021E871C ; =0x06820000 + mov r0, #0 + lsl r2, r2, #0x10 + bl MIi_CpuClearFast + b _021E870E +_021E86EC: + mov r2, #2 + ldr r1, _021E8720 ; =0x06840000 + mov r0, #0 + lsl r2, r2, #0x10 + bl MIi_CpuClearFast + b _021E870E +_021E86FA: + mov r2, #2 + ldr r1, _021E8724 ; =0x06860000 + mov r0, #0 + lsl r2, r2, #0x10 + bl MIi_CpuClearFast + b _021E870E +_021E8708: + mov r0, #0 + bl GX_SetBankForLCDC +_021E870E: + ldr r0, [r4] + ldr r0, [r0, #0x34] + bl FUN_0200621C + mov r0, #0 + str r0, [r4] + pop {r4, pc} + .balign 4, 0 +_021E871C: .word 0x06820000 +_021E8720: .word 0x06840000 +_021E8724: .word 0x06860000 + + thumb_func_start MOD05_021E8728 +MOD05_021E8728: ; 0x021E8728 + push {r4, r5, r6, r7} + ldr r0, [r1, #0x30] + cmp r0, #0 + beq _021E8760 + ldr r6, [r1, #0x20] + ldr r5, [r1, #0x10] + ldr r4, [r1, #0x1c] + ldr r3, [r1, #0x18] + ldr r2, [r1, #0x14] + ldr r0, [r1, #0x24] + ldr r1, [r1, #0x28] + lsl r5, r5, #0x14 + lsl r7, r1, #8 + lsl r1, r3, #0x18 + lsl r3, r2, #0x1d + mov r2, #2 + lsl r2, r2, #0x1e + orr r3, r2 + lsl r2, r4, #0x19 + orr r2, r3 + orr r1, r2 + lsl r6, r6, #0x10 + orr r1, r5 + orr r1, r6 + orr r1, r7 + orr r1, r0 + ldr r0, _021E8764 ; =0x04000064 + str r1, [r0] +_021E8760: + pop {r4, r5, r6, r7} + bx lr + .balign 4, 0 +_021E8764: .word 0x04000064 + + thumb_func_start MOD05_021E8768 +MOD05_021E8768: ; 0x021E8768 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0xa + bgt _021E8786 + bge _021E879C + cmp r0, #6 + bgt _021E87AC + cmp r0, #2 + blt _021E87AC + beq _021E878C + cmp r0, #6 + beq _021E8794 + b _021E87AC +_021E8786: + cmp r0, #0xe + beq _021E87A4 + b _021E87AC +_021E878C: + mov r0, #1 + bl GX_SetBankForLCDC + b _021E87B2 +_021E8794: + mov r0, #2 + bl GX_SetBankForLCDC + b _021E87B2 +_021E879C: + mov r0, #4 + bl GX_SetBankForLCDC + b _021E87B2 +_021E87A4: + mov r0, #8 + bl GX_SetBankForLCDC + b _021E87B2 +_021E87AC: + mov r0, #0 + bl GX_SetBankForLCDC +_021E87B2: + ldr r0, [r4, #4] + ldr r1, [r4, #8] + ldr r2, [r4, #0xc] + bl GX_SetGraphicsMode + mov r0, #1 + str r0, [r4, #0x30] + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021E87C8 +MOD05_021E87C8: ; 0x021E87C8 + push {r4, r5, r6, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0xa + bgt _021E87E4 + bge _021E8808 + cmp r0, #6 + bgt _021E8822 + cmp r0, #2 + blt _021E8822 + beq _021E87EA + cmp r0, #6 + beq _021E87FA + b _021E8822 +_021E87E4: + cmp r0, #0xe + beq _021E8816 + b _021E8822 +_021E87EA: + mov r1, #0x1a + mov r2, #2 + mov r0, #0 + lsl r1, r1, #0x16 + lsl r2, r2, #0x10 + bl MIi_CpuClearFast + b _021E8822 +_021E87FA: + mov r2, #2 + ldr r1, _021E8850 ; =0x06820000 + mov r0, #0 + lsl r2, r2, #0x10 + bl MIi_CpuClearFast + b _021E8822 +_021E8808: + mov r2, #2 + ldr r1, _021E8854 ; =0x06840000 + mov r0, #0 + lsl r2, r2, #0x10 + bl MIi_CpuClearFast + b _021E8822 +_021E8816: + mov r2, #2 + ldr r1, _021E8858 ; =0x06860000 + mov r0, #0 + lsl r2, r2, #0x10 + bl MIi_CpuClearFast +_021E8822: + ldr r5, [r4, #0x10] + ldr r1, [r4, #0x1c] + ldr r3, [r4, #0x18] + ldr r6, [r4, #0x14] + ldr r0, [r4, #0xc] + mov r4, #2 + lsl r2, r1, #0x10 + lsl r1, r0, #0x14 + lsl r5, r5, #0x1d + lsl r4, r4, #0x1e + orr r4, r5 + lsl r3, r3, #0x19 + lsl r0, r6, #0x18 + orr r3, r4 + orr r0, r3 + orr r0, r1 + add r1, r2, #0 + orr r1, r0 + mov r0, #0x10 + orr r1, r0 + ldr r0, _021E885C ; =0x04000064 + str r1, [r0] + pop {r4, r5, r6, pc} + .balign 4, 0 +_021E8850: .word 0x06820000 +_021E8854: .word 0x06840000 +_021E8858: .word 0x06860000 +_021E885C: .word 0x04000064 diff --git a/arm9/modules/05/asm/mod05_021E8860.s b/arm9/modules/05/asm/mod05_021E8860.s new file mode 100644 index 00000000..2adced2f --- /dev/null +++ b/arm9/modules/05/asm/mod05_021E8860.s @@ -0,0 +1,77 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021E8860 +MOD05_021E8860: ; 0x021E8860 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + add r5, r0, #0 + add r4, r1, #0 + mov r0, #2 + mov r1, #0 + bl GX_EngineAToggleLayers + mov r0, #4 + mov r1, #0 + bl GX_EngineAToggleLayers + mov r0, #8 + mov r1, #0 + bl GX_EngineAToggleLayers + bl GX_ResetBankForBG + mov r0, #4 + add r1, r0, #0 + bl AllocFromHeap + add r7, r0, #0 + mov r0, #0 + add r1, r7, #0 + mov r2, #4 + bl MIi_CpuClear32 + ldr r6, _021E88BC ; =UNK05_021F78E4 + add r3, sp, #0 + mov r2, #5 +_021E889E: + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021E889E + ldr r0, [r6] + str r0, [r3] + add r0, sp, #0 + str r5, [sp, #0x20] + str r4, [sp, #0x24] + bl MOD05_021E8648 + str r0, [r7] + add r0, r7, #0 + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + .balign 4, 0 +_021E88BC: .word UNK05_021F78E4 + + thumb_func_start MOD05_021E88C0 +MOD05_021E88C0: ; 0x021E88C0 + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + ldr r0, [r4] + mov r2, #0 + add r3, r1, #0 + bl MOD05_021E8698 + mov r0, #4 + bl GX_SetBankForBG + mov r0, #0xe + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r1, [r4] + mov r0, #4 + bl FreeToHeapExplicit + pop {r4, pc} + + .section .rodata + + .global UNK05_021F78E4 +UNK05_021F78E4: ; 0x021F78E4 + .byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021E88E8.s b/arm9/modules/05/asm/mod05_021E88E8.s new file mode 100644 index 00000000..d8dcb1a0 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021E88E8.s @@ -0,0 +1,7400 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021E88E8 +MOD05_021E88E8: ; 0x021E88E8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #5 + bls _021E88FA + b _021E8A56 +_021E88FA: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E8906: ; jump table + .short _021E8912 - _021E8906 - 2 ; case 0 + .short _021E8936 - _021E8906 - 2 ; case 1 + .short _021E8952 - _021E8906 - 2 ; case 2 + .short _021E899C - _021E8906 - 2 ; case 3 + .short _021E89F4 - _021E8906 - 2 ; case 4 + .short _021E8A1C - _021E8906 - 2 ; case 5 +_021E8912: + mov r0, #4 + mov r1, #0x20 + bl AllocFromHeap + str r0, [r4, #0xc] + mov r1, #0 + mov r2, #0x20 + bl memset + ldr r5, [r4, #0xc] + bl MOD05_021E3768 + str r0, [r5, #0x1c] + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8936: + mov r1, #0x10 + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #1 + sub r2, #0x20 + add r3, r4, #4 + bl MOD05_021E3474 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8952: + ldr r0, [r4, #4] + cmp r0, #0 + beq _021E8A56 + mov r1, #0 + str r1, [r4, #4] + ldr r0, [r4] + mov r2, #2 + add r0, r0, #1 + str r0, [r4] + ldr r0, _021E8A5C ; =0xFFFFD000 + str r1, [sp] + str r0, [sp, #4] + lsl r0, r0, #2 + str r0, [sp, #8] + ldr r1, [r5, #0x1c] + add r0, r4, #0 + mov r3, #7 + bl MOD05_021E37CC + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x20] + str r0, [r5] + bl Camera_GetDistance + mov r2, #0x32 + add r1, r0, #0 + mov r0, #6 + lsl r2, r2, #0xc + mov r3, #0x1e + str r0, [sp] + add r0, r5, #4 + add r2, r1, r2 + lsl r3, r3, #0xc + bl MOD05_021E3644 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_021E899C: + add r0, r5, #4 + bl MOD05_021E36A4 + add r6, r0, #0 + ldr r0, [r5, #4] + ldr r1, [r5] + bl Camera_SetDistance + cmp r6, #1 + bne _021E8A56 + ldr r0, [r4] + mov r2, #2 + add r0, r0, #1 + str r0, [r4] + ldr r0, _021E8A5C ; =0xFFFFD000 + mov r3, #6 + str r0, [sp] + mov r0, #0xff + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r0, #0x1e + lsl r0, r0, #0xc + str r0, [sp, #8] + ldr r1, [r5, #0x1c] + add r0, r4, #0 + bl MOD05_021E3888 + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x20] + str r0, [r5] + bl Camera_GetDistance + mov r2, #0x32 + add r1, r0, #0 + mov r0, #6 + lsl r2, r2, #0xc + str r0, [sp] + ldr r3, _021E8A60 ; =0xFFF01000 + add r0, r5, #4 + sub r2, r1, r2 + bl MOD05_021E3644 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_021E89F4: + add r0, r5, #4 + bl MOD05_021E36A4 + add r6, r0, #0 + ldr r0, [r5, #4] + ldr r1, [r5] + bl Camera_SetDistance + cmp r6, #1 + bne _021E8A56 + add r0, r4, #0 + bl MOD05_021E35AC + cmp r0, #1 + bne _021E8A56 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8A1C: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, _021E8A64 ; =0x04000010 + mov r1, #0 + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0xc] + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _021E8A42 + mov r0, #1 + str r0, [r1] +_021E8A42: + ldr r0, [r5, #0x1c] + bl MOD05_021E37A4 + ldr r1, [r4, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C +_021E8A56: + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021E8A5C: .word 0xFFFFD000 +_021E8A60: .word 0xFFF01000 +_021E8A64: .word 0x04000010 + + thumb_func_start MOD05_021E8A68 +MOD05_021E8A68: ; 0x021E8A68 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #5 + bls _021E8A7A + b _021E8BD6 +_021E8A7A: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E8A86: ; jump table + .short _021E8A92 - _021E8A86 - 2 ; case 0 + .short _021E8AB6 - _021E8A86 - 2 ; case 1 + .short _021E8AD2 - _021E8A86 - 2 ; case 2 + .short _021E8B1C - _021E8A86 - 2 ; case 3 + .short _021E8B74 - _021E8A86 - 2 ; case 4 + .short _021E8B9C - _021E8A86 - 2 ; case 5 +_021E8A92: + mov r0, #4 + mov r1, #0x20 + bl AllocFromHeap + str r0, [r4, #0xc] + mov r1, #0 + mov r2, #0x20 + bl memset + ldr r5, [r4, #0xc] + bl MOD05_021E3768 + str r0, [r5, #0x1c] + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8AB6: + mov r0, #2 + str r0, [sp] + mov r0, #1 + add r1, r0, #0 + sub r1, #0x11 + add r2, r1, #0 + add r3, r4, #4 + bl MOD05_021E3474 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8AD2: + ldr r0, [r4, #4] + cmp r0, #0 + beq _021E8BD6 + mov r1, #0 + str r1, [r4, #4] + ldr r0, [r4] + mov r2, #5 + add r0, r0, #1 + str r0, [r4] + ldr r0, _021E8BDC ; =0xFFFFE000 + str r1, [sp] + str r0, [sp, #4] + ldr r0, _021E8BE0 ; =0xFFFF4000 + mov r3, #7 + str r0, [sp, #8] + ldr r1, [r5, #0x1c] + add r0, r4, #0 + bl MOD05_021E37CC + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x20] + str r0, [r5] + bl Camera_GetDistance + mov r2, #0x32 + add r1, r0, #0 + mov r0, #6 + lsl r2, r2, #0xc + mov r3, #0x1e + str r0, [sp] + add r0, r5, #4 + add r2, r1, r2 + lsl r3, r3, #0xc + bl MOD05_021E3644 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_021E8B1C: + add r0, r5, #4 + bl MOD05_021E36A4 + add r6, r0, #0 + ldr r0, [r5, #4] + ldr r1, [r5] + bl Camera_SetDistance + cmp r6, #1 + bne _021E8BD6 + ldr r0, [r4] + mov r2, #5 + add r0, r0, #1 + str r0, [r4] + ldr r0, _021E8BDC ; =0xFFFFE000 + mov r3, #6 + str r0, [sp] + mov r0, #0xff + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r0, #0x1e + lsl r0, r0, #0xc + str r0, [sp, #8] + ldr r1, [r5, #0x1c] + add r0, r4, #0 + bl MOD05_021E3888 + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x20] + str r0, [r5] + bl Camera_GetDistance + mov r2, #0x1e + add r1, r0, #0 + mov r0, #6 + lsl r2, r2, #0xc + str r0, [sp] + ldr r3, _021E8BE4 ; =0xFFF9C000 + add r0, r5, #4 + sub r2, r1, r2 + bl MOD05_021E3644 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_021E8B74: + add r0, r5, #4 + bl MOD05_021E36A4 + add r6, r0, #0 + ldr r0, [r5, #4] + ldr r1, [r5] + bl Camera_SetDistance + cmp r6, #1 + bne _021E8BD6 + add r0, r4, #0 + bl MOD05_021E35AC + cmp r0, #1 + bne _021E8BD6 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8B9C: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, _021E8BE8 ; =0x04000010 + mov r1, #0 + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0xc] + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _021E8BC2 + mov r0, #1 + str r0, [r1] +_021E8BC2: + ldr r0, [r5, #0x1c] + bl MOD05_021E37A4 + ldr r1, [r4, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C +_021E8BD6: + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021E8BDC: .word 0xFFFFE000 +_021E8BE0: .word 0xFFFF4000 +_021E8BE4: .word 0xFFF9C000 +_021E8BE8: .word 0x04000010 + + thumb_func_start MOD05_021E8BEC +MOD05_021E8BEC: ; 0x021E8BEC + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #6 + bls _021E8BFE + b _021E8D16 +_021E8BFE: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E8C0A: ; jump table + .short _021E8C18 - _021E8C0A - 2 ; case 0 + .short _021E8C4A - _021E8C0A - 2 ; case 1 + .short _021E8C6A - _021E8C0A - 2 ; case 2 + .short _021E8CA0 - _021E8C0A - 2 ; case 3 + .short _021E8CB2 - _021E8C0A - 2 ; case 4 + .short _021E8CD4 - _021E8C0A - 2 ; case 5 + .short _021E8CE6 - _021E8C0A - 2 ; case 6 +_021E8C18: + mov r0, #4 + mov r1, #0x10 + bl AllocFromHeap + str r0, [r4, #0xc] + mov r2, #0x10 + mov r1, #0 +_021E8C26: + strb r1, [r0] + add r0, r0, #1 + sub r2, r2, #1 + bne _021E8C26 + ldr r0, [r4, #0xc] + mov r1, #4 + bl MOD05_021E8E8C + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F4608 + ldr r0, [r4] + add sp, #0x14 + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8C4A: + mov r0, #2 + str r0, [sp] + mov r0, #1 + add r1, r0, #0 + sub r1, #0x11 + add r2, r1, #0 + add r3, r4, #4 + bl MOD05_021E3474 + mov r0, #0xa + str r0, [r5, #0xc] + ldr r0, [r4] + add sp, #0x14 + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8C6A: + ldr r0, [r5, #0xc] + sub r0, r0, #1 + str r0, [r5, #0xc] + bpl _021E8D16 + ldr r0, [r4] + mov r3, #0x32 + add r0, r0, #1 + str r0, [r4] + mov r0, #0xc + str r0, [r5, #0xc] + lsl r0, r0, #0xc + str r0, [sp] + lsl r3, r3, #4 + str r3, [sp, #4] + ldr r0, _021E8D1C ; =0x04000010 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #4 + str r0, [sp, #0x10] + add r0, r5, #0 + mov r2, #0xbf + sub r3, #0x76 + bl MOD05_021E8EC0 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} +_021E8CA0: + ldr r0, [r5, #0xc] + sub r0, r0, #1 + str r0, [r5, #0xc] + bpl _021E8D16 + ldr r0, [r4] + add sp, #0x14 + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8CB2: + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r2, #0 + str r0, [sp, #8] + mov r0, #3 + mov r1, #0x1e + add r3, r2, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add sp, #0x14 + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8CD4: + bl FUN_0200E308 + cmp r0, #0 + beq _021E8D16 + ldr r0, [r4] + add sp, #0x14 + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8CE6: + add r0, r5, #0 + bl MOD05_021E8EA8 + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F45E8 + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _021E8D00 + mov r0, #1 + str r0, [r1] +_021E8D00: + ldr r1, [r4, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 +_021E8D16: + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + nop +_021E8D1C: .word 0x04000010 + + thumb_func_start MOD05_021E8D20 +MOD05_021E8D20: ; 0x021E8D20 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #6 + bls _021E8D32 + b _021E8E4C +_021E8D32: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E8D3E: ; jump table + .short _021E8D4C - _021E8D3E - 2 ; case 0 + .short _021E8D7E - _021E8D3E - 2 ; case 1 + .short _021E8D9E - _021E8D3E - 2 ; case 2 + .short _021E8DD6 - _021E8D3E - 2 ; case 3 + .short _021E8DE8 - _021E8D3E - 2 ; case 4 + .short _021E8E0A - _021E8D3E - 2 ; case 5 + .short _021E8E1C - _021E8D3E - 2 ; case 6 +_021E8D4C: + mov r0, #4 + mov r1, #0x10 + bl AllocFromHeap + str r0, [r4, #0xc] + mov r2, #0x10 + mov r1, #0 +_021E8D5A: + strb r1, [r0] + add r0, r0, #1 + sub r2, r2, #1 + bne _021E8D5A + ldr r0, [r4, #0xc] + mov r1, #4 + bl MOD05_021E8E8C + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F4608 + ldr r0, [r4] + add sp, #0x14 + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8D7E: + mov r1, #0x10 + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #1 + sub r2, #0x20 + add r3, r4, #4 + bl MOD05_021E3474 + mov r0, #0xa + str r0, [r5, #0xc] + ldr r0, [r4] + add sp, #0x14 + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8D9E: + ldr r0, [r5, #0xc] + sub r0, r0, #1 + str r0, [r5, #0xc] + bpl _021E8E4C + ldr r0, [r4] + mov r3, #0x32 + add r0, r0, #1 + str r0, [r4] + mov r0, #0xc + str r0, [r5, #0xc] + mov r0, #0xf + lsl r0, r0, #0xc + str r0, [sp] + lsl r3, r3, #4 + str r3, [sp, #4] + ldr r0, _021E8E50 ; =0x04000010 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #4 + str r0, [sp, #0x10] + add r0, r5, #0 + mov r2, #0xbf + add r3, #0xdf + bl MOD05_021E8EC0 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} +_021E8DD6: + ldr r0, [r5, #0xc] + sub r0, r0, #1 + str r0, [r5, #0xc] + bpl _021E8E4C + ldr r0, [r4] + add sp, #0x14 + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8DE8: + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r2, #0 + str r0, [sp, #8] + mov r0, #3 + mov r1, #0x1e + add r3, r2, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add sp, #0x14 + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8E0A: + bl FUN_0200E308 + cmp r0, #0 + beq _021E8E4C + ldr r0, [r4] + add sp, #0x14 + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8E1C: + add r0, r5, #0 + bl MOD05_021E8EA8 + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F45E8 + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _021E8E36 + mov r0, #1 + str r0, [r1] +_021E8E36: + ldr r1, [r4, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 +_021E8E4C: + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .balign 4, 0 +_021E8E50: .word 0x04000010 + + thumb_func_start MOD05_021E8E54 +MOD05_021E8E54: ; 0x021E8E54 + ldr r3, _021E8E60 ; =FUN_0200CA60 + mov r2, #1 + add r1, r0, #0 + ldr r0, _021E8E64 ; =MOD05_021E8E68 + lsl r2, r2, #0xa + bx r3 + .balign 4, 0 +_021E8E60: .word FUN_0200CA60 +_021E8E64: .word MOD05_021E8E68 + + thumb_func_start MOD05_021E8E68 +MOD05_021E8E68: ; 0x021E8E68 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #8] + cmp r0, #2 + blo _021E8E7C + ldr r0, [r4] + bl FUN_02012B30 + mov r0, #0 + str r0, [r4, #8] +_021E8E7C: + ldr r0, [r4] + bl FUN_02012B68 + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E8E8C +MOD05_021E8E8C: ; 0x021E8E8C + push {r4, lr} + add r4, r0, #0 + add r0, r1, #0 + bl FUN_02012A00 + str r0, [r4] + mov r0, #0 + str r0, [r4, #8] + add r0, r4, #0 + bl MOD05_021E8E54 + str r0, [r4, #4] + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E8EA8 +MOD05_021E8EA8: ; 0x021E8EA8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_0200CAB4 + ldr r0, [r4] + bl FUN_02012AC4 + ldr r0, [r4] + bl FUN_02012B00 + pop {r4, pc} + + thumb_func_start MOD05_021E8EC0 +MOD05_021E8EC0: ; 0x021E8EC0 + push {r4, r5, lr} + sub sp, #0x14 + ldr r4, [sp, #0x20] + add r5, sp, #0x10 + str r4, [sp] + mov r4, #0x14 + ldrsh r4, [r5, r4] + str r4, [sp, #4] + ldr r4, [sp, #0x28] + str r4, [sp, #8] + ldr r4, [sp, #0x2c] + str r4, [sp, #0xc] + ldr r4, [sp, #0x30] + str r4, [sp, #0x10] + ldr r0, [r0] + bl FUN_02012A30 + add sp, #0x14 + pop {r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E8EE8 +MOD05_021E8EE8: ; 0x021E8EE8 + push {r3, r4, r5, r6, r7, lr} + ldr r0, [r0] + add r7, r1, #0 + bl FUN_02012B20 + add r5, r0, #0 + mov r6, #0 +_021E8EF6: + ldr r0, [r5] + add r1, r7, #0 + lsl r0, r0, #0x10 + asr r4, r0, #0x10 + add r0, r6, #0 + bl _u32_div_f + mov r1, #1 + tst r0, r1 + bne _021E8F0E + lsl r0, r4, #0x10 + b _021E8F12 +_021E8F0E: + neg r0, r4 + lsl r0, r0, #0x10 +_021E8F12: + lsr r0, r0, #0x10 + str r0, [r5] + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #0xc0 + blt _021E8EF6 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021E8F20 +MOD05_021E8F20: ; 0x021E8F20 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #5 + bhi _021E9026 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E8F3C: ; jump table + .short _021E8F48 - _021E8F3C - 2 ; case 0 + .short _021E8F68 - _021E8F3C - 2 ; case 1 + .short _021E8F84 - _021E8F3C - 2 ; case 2 + .short _021E8F92 - _021E8F3C - 2 ; case 3 + .short _021E8FDC - _021E8F3C - 2 ; case 4 + .short _021E8FFC - _021E8F3C - 2 ; case 5 +_021E8F48: + mov r0, #4 + mov r1, #0x1c + bl AllocFromHeap + str r0, [r4, #0xc] + mov r2, #0x1c + mov r1, #0 +_021E8F56: + strb r1, [r0] + add r0, r0, #1 + sub r2, r2, #1 + bne _021E8F56 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8F68: + mov r0, #2 + str r0, [sp] + mov r0, #1 + add r1, r0, #0 + sub r1, #0x11 + add r2, r1, #0 + add r3, r4, #4 + bl MOD05_021E3474 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8F84: + ldr r1, [r4, #4] + cmp r1, #0 + beq _021E9026 + add r0, r0, #1 + add sp, #0xc + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8F92: + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F4608 + mov r0, #0xc + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r1, #0x10 + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x20] + str r0, [r5] + bl Camera_GetDistance + mov r2, #0x19 + add r1, r0, #0 + mov r0, #0xc + lsl r2, r2, #0x10 + str r0, [sp] + ldr r3, _021E902C ; =0xFFFFE000 + add r0, r5, #4 + sub r2, r1, r2 + bl MOD05_021E3644 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8FDC: + add r0, r5, #4 + bl MOD05_021E36A4 + ldr r0, [r5, #4] + ldr r1, [r5] + bl Camera_SetDistance + bl FUN_0200E308 + cmp r0, #0 + beq _021E9026 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E8FFC: + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F45E8 + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _021E9010 + mov r0, #1 + str r0, [r1] +_021E9010: + ldr r1, [r4, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 +_021E9026: + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021E902C: .word 0xFFFFE000 + + thumb_func_start MOD05_021E9030 +MOD05_021E9030: ; 0x021E9030 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #5 + bhi _021E9136 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E904C: ; jump table + .short _021E9058 - _021E904C - 2 ; case 0 + .short _021E9078 - _021E904C - 2 ; case 1 + .short _021E9094 - _021E904C - 2 ; case 2 + .short _021E90A2 - _021E904C - 2 ; case 3 + .short _021E90EC - _021E904C - 2 ; case 4 + .short _021E910C - _021E904C - 2 ; case 5 +_021E9058: + mov r0, #4 + mov r1, #0x1c + bl AllocFromHeap + str r0, [r4, #0xc] + mov r2, #0x1c + mov r1, #0 +_021E9066: + strb r1, [r0] + add r0, r0, #1 + sub r2, r2, #1 + bne _021E9066 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E9078: + mov r1, #0x10 + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #1 + sub r2, #0x20 + add r3, r4, #4 + bl MOD05_021E3474 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E9094: + ldr r1, [r4, #4] + cmp r1, #0 + beq _021E9136 + add r0, r0, #1 + add sp, #0xc + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E90A2: + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F4608 + mov r0, #0xc + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r1, #0x10 + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x20] + str r0, [r5] + bl Camera_GetDistance + mov r2, #0x32 + add r1, r0, #0 + mov r0, #0xc + lsl r2, r2, #0x10 + str r0, [sp] + ldr r3, _021E913C ; =0xFFFFB000 + add r0, r5, #4 + sub r2, r1, r2 + bl MOD05_021E3644 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E90EC: + add r0, r5, #4 + bl MOD05_021E36A4 + ldr r0, [r5, #4] + ldr r1, [r5] + bl Camera_SetDistance + bl FUN_0200E308 + cmp r0, #0 + beq _021E9136 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021E910C: + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F45E8 + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _021E9120 + mov r0, #1 + str r0, [r1] +_021E9120: + ldr r1, [r4, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 +_021E9136: + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021E913C: .word 0xFFFFB000 + + thumb_func_start MOD05_021E9140 +MOD05_021E9140: ; 0x021E9140 + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + add r7, r1, #0 + str r0, [sp, #0x10] + ldr r0, [r7] + ldr r4, [r7, #0xc] + cmp r0, #7 + bls _021E9152 + b _021E948A +_021E9152: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E915E: ; jump table + .short _021E916E - _021E915E - 2 ; case 0 + .short _021E9228 - _021E915E - 2 ; case 1 + .short _021E9242 - _021E915E - 2 ; case 2 + .short _021E924E - _021E915E - 2 ; case 3 + .short _021E92B2 - _021E915E - 2 ; case 4 + .short _021E931A - _021E915E - 2 ; case 5 + .short _021E93A6 - _021E915E - 2 ; case 6 + .short _021E9430 - _021E915E - 2 ; case 7 +_021E916E: + mov r1, #0x1e + mov r0, #4 + lsl r1, r1, #4 + bl AllocFromHeap + mov r2, #0x1e + str r0, [r7, #0xc] + mov r1, #0 + lsl r2, r2, #4 + bl memset + ldr r0, [r7, #0x10] + ldr r4, [r7, #0xc] + ldr r1, [r0, #0x20] + mov r0, #7 + lsl r0, r0, #6 + str r1, [r4, r0] + bl MOD05_021E3768 + str r0, [r4, #0x44] + add r0, r4, #0 + add r0, #0x48 + mov r1, #2 + mov r2, #1 + bl MOD05_021E3E14 + mov r0, #5 + str r0, [sp] + mov r0, #7 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + ldr r0, _021E949C ; =0x000927C0 + mov r1, #0x61 + str r0, [sp, #0xc] + add r0, r4, #0 + lsl r1, r1, #2 + add r0, #0x48 + add r1, r4, r1 + mov r2, #0 + mov r3, #1 + bl MOD05_021E3E64 + mov r0, #0 + str r0, [sp, #0x14] + add r6, r0, #0 + add r0, r4, #0 + str r0, [sp, #0x1c] + add r0, #0x48 + add r5, r4, #0 + str r0, [sp, #0x1c] +_021E91D4: + mov r0, #0 + str r0, [sp] + mov r1, #0x61 + str r0, [sp, #4] + lsl r1, r1, #2 + mov r2, #2 + mov r3, #6 + ldr r0, [sp, #0x1c] + add r1, r4, r1 + lsl r2, r2, #0x12 + lsl r3, r3, #0x10 + bl MOD05_021E3FC4 + mov r1, #0x6e + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_02020310 + ldr r0, [sp, #0x14] + add r5, r5, #4 + add r0, r0, #1 + add r6, r6, #2 + str r0, [sp, #0x14] + cmp r0, #2 + blt _021E91D4 + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E948A +_021E9228: + mov r0, #2 + str r0, [sp] + mov r0, #1 + add r1, r0, #0 + sub r1, #0x11 + add r2, r1, #0 + add r3, r7, #4 + bl MOD05_021E3474 + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E948A +_021E9242: + ldr r1, [r7, #4] + cmp r1, #0 + beq _021E9310 + add r0, r0, #1 + str r0, [r7] + b _021E948A +_021E924E: + mov r0, #0xa + mov r2, #1 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x29 + lsl r2, r2, #0xc + mov r3, #2 + bl MOD05_021E3644 + ldr r1, [r4] + add r0, sp, #0x50 + add r2, r1, #0 + add r3, r1, #0 + bl MOD05_021E3FF8 + mov r6, #0 + add r5, r4, #0 +_021E9270: + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #2 + bl FUN_020200EC + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, sp, #0x50 + bl FUN_02020064 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #2 + blt _021E9270 + add r0, r4, #0 + ldr r2, _021E94A0 ; =0x0000FFFF + add r0, #0x18 + mov r1, #0 + mov r3, #0xa + bl MOD05_021E35B0 + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E948A +_021E92B2: + add r0, r4, #0 + bl MOD05_021E36A4 + ldr r1, [r4] + str r0, [sp, #0x18] + add r0, sp, #0x50 + add r2, r1, #0 + add r3, r1, #0 + bl MOD05_021E3FF8 + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E35C0 + mov r6, #0 + add r5, r4, #0 +_021E92D2: + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, sp, #0x50 + bl FUN_02020064 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #2 + blt _021E92D2 + mov r0, #0x6e + ldr r1, [r4, #0x18] + lsl r0, r0, #2 + lsl r1, r1, #0x10 + ldr r0, [r4, r0] + lsr r1, r1, #0x10 + bl FUN_02020088 + mov r1, #0x6f + lsl r1, r1, #2 + ldr r0, [r4, r1] + ldr r2, [r4, #0x18] + sub r1, #0xbc + sub r1, r2, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_02020088 + ldr r0, [sp, #0x18] + cmp r0, #1 + beq _021E9312 +_021E9310: + b _021E948A +_021E9312: + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E948A +_021E931A: + mov r0, #0 + str r0, [sp] + mov r0, #0xff + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r0, #0xa + lsl r0, r0, #0xc + str r0, [sp, #8] + ldr r1, [r4, #0x44] + add r0, r7, #0 + mov r2, #0x60 + mov r3, #6 + bl MOD05_021E37CC + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_02020130 + mov r0, #0x6f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #2 + bl FUN_02020130 + mov r0, #6 + str r0, [sp] + add r0, r4, #0 + mov r2, #0xff + mov r3, #0xa + add r0, #0x2c + mov r1, #0 + lsl r2, r2, #0xc + lsl r3, r3, #0xc + bl MOD05_021E3644 + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r4, r0] + bl Camera_GetDistance + add r1, r0, #0 + mov r0, #6 + str r0, [sp] + mov r0, #0x71 + mov r2, #0x7d + lsl r0, r0, #2 + lsl r2, r2, #0xe + ldr r3, _021E94A4 ; =0xFFFF6000 + add r0, r4, r0 + sub r2, r1, r2 + bl MOD05_021E3644 + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02020088 + mov r0, #0x6f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02020088 + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E948A +_021E93A6: + add r0, r4, #0 + add r0, #0x2c + bl MOD05_021E36A4 + mov r1, #2 + ldr r2, [r4, #0x2c] + lsl r1, r1, #0x12 + sub r1, r1, r2 + mov r2, #6 + add r0, sp, #0x2c + lsl r2, r2, #0x10 + mov r3, #0 + bl MOD05_021E3FF8 + add r3, sp, #0x2c + ldmia r3!, {r0, r1} + add r2, sp, #0x44 + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r1, #2 + str r0, [r2] + ldr r2, [r4, #0x2c] + lsl r1, r1, #0x12 + add r1, r2, r1 + mov r2, #6 + add r0, sp, #0x20 + lsl r2, r2, #0x10 + mov r3, #0 + bl MOD05_021E3FF8 + add r3, sp, #0x20 + ldmia r3!, {r0, r1} + add r2, sp, #0x38 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, sp, #0x44 + str r0, [r2] + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02020044 + mov r0, #0x6f + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x38 + bl FUN_02020044 + mov r0, #0x71 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD05_021E36A4 + mov r1, #0x71 + lsl r1, r1, #2 + ldr r0, [r4, r1] + sub r1, r1, #4 + ldr r1, [r4, r1] + bl Camera_SetDistance + add r0, r7, #0 + bl MOD05_021E35AC + cmp r0, #0 + beq _021E948A + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E948A +_021E9430: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r1, [r7, #0x14] + cmp r1, #0 + beq _021E944A + mov r0, #1 + str r0, [r1] +_021E944A: + mov r6, #0 + add r5, r4, #0 +_021E944E: + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0201FFC8 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #2 + blt _021E944E + mov r1, #0x61 + add r0, r4, #0 + lsl r1, r1, #2 + add r0, #0x48 + add r1, r4, r1 + bl MOD05_021E3F3C + add r0, r4, #0 + add r0, #0x48 + bl MOD05_021E3E44 + ldr r0, [r4, #0x44] + bl MOD05_021E37A4 + ldr r1, [r7, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + ldr r0, [sp, #0x10] + bl FUN_0200621C +_021E948A: + ldr r0, [r7] + cmp r0, #7 + beq _021E9496 + ldr r0, [r4, #0x48] + bl FUN_0201FDEC +_021E9496: + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + nop +_021E949C: .word 0x000927C0 +_021E94A0: .word 0x0000FFFF +_021E94A4: .word 0xFFFF6000 + + thumb_func_start MOD05_021E94A8 +MOD05_021E94A8: ; 0x021E94A8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x78 + add r6, r1, #0 + str r0, [sp, #0x10] + ldr r0, [r6] + ldr r4, [r6, #0xc] + cmp r0, #7 + bhi _021E95A2 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E94C4: ; jump table + .short _021E94D4 - _021E94C4 - 2 ; case 0 + .short _021E9582 - _021E94C4 - 2 ; case 1 + .short _021E959C - _021E94C4 - 2 ; case 2 + .short _021E95AA - _021E94C4 - 2 ; case 3 + .short _021E9638 - _021E94C4 - 2 ; case 4 + .short _021E96C8 - _021E94C4 - 2 ; case 5 + .short _021E9702 - _021E94C4 - 2 ; case 6 + .short _021E972C - _021E94C4 - 2 ; case 7 +_021E94D4: + mov r1, #0x71 + mov r0, #4 + lsl r1, r1, #2 + bl AllocFromHeap + mov r2, #0x71 + str r0, [r6, #0xc] + mov r1, #0 + lsl r2, r2, #2 + bl memset + ldr r0, [r6, #0x10] + ldr r4, [r6, #0xc] + ldr r1, [r0, #0x20] + mov r0, #0x69 + lsl r0, r0, #2 + str r1, [r4, r0] + bl MOD05_021E39FC + str r0, [r4, #0x28] + add r0, r4, #0 + add r0, #0x2c + mov r1, #2 + mov r2, #1 + bl MOD05_021E3E14 + mov r0, #2 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + ldr r0, _021E9798 ; =0x000927C0 + mov r1, #0x5a + str r0, [sp, #0xc] + add r0, r4, #0 + lsl r1, r1, #2 + add r0, #0x2c + add r1, r4, r1 + mov r2, #0 + mov r3, #1 + bl MOD05_021E3E64 + add r0, r4, #0 + str r0, [sp, #0x14] + add r0, #0x2c + mov r7, #0 + add r5, r4, #0 + str r0, [sp, #0x14] +_021E9536: + mov r0, #0 + str r0, [sp] + mov r1, #0x5a + str r0, [sp, #4] + lsl r1, r1, #2 + mov r2, #2 + ldr r0, [sp, #0x14] + add r1, r4, r1 + lsl r2, r2, #0x12 + mov r3, #0 + bl MOD05_021E3FC4 + mov r1, #0x67 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #2 + bl FUN_020200EC + add r7, r7, #1 + add r5, r5, #4 + cmp r7, #2 + blt _021E9536 + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021E9786 +_021E9582: + mov r1, #0x10 + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #1 + sub r2, #0x20 + add r3, r6, #4 + bl MOD05_021E3474 + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021E9786 +_021E959C: + ldr r1, [r6, #4] + cmp r1, #0 + bne _021E95A4 +_021E95A2: + b _021E9786 +_021E95A4: + add r0, r0, #1 + str r0, [r6] + b _021E9786 +_021E95AA: + mov r2, #3 + ldr r1, _021E979C ; =0xFFF40000 + add r0, r4, #0 + lsl r2, r2, #0x12 + mov r3, #8 + bl MOD05_021E35EC + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x1a + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r2, #2 + ldr r1, [r4] + lsl r2, r2, #0x12 + sub r1, r2, r1 + add r0, sp, #0x3c + lsr r2, r2, #1 + mov r3, #0 + bl MOD05_021E3FF8 + add r3, sp, #0x3c + ldmia r3!, {r0, r1} + add r2, sp, #0x6c + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r3, #0 + str r0, [r2] + mov r2, #2 + ldr r1, [r4] + lsl r2, r2, #0x12 + add r0, sp, #0x30 + add r1, r1, r2 + bl MOD05_021E3FF8 + add r3, sp, #0x30 + ldmia r3!, {r0, r1} + add r2, sp, #0x60 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, sp, #0x6c + str r0, [r2] + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02020044 + mov r0, #0x1a + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, sp, #0x60 + bl FUN_02020044 + add r0, r4, #0 + ldr r2, _021E97A0 ; =0x0001FFFE + add r0, #0x14 + mov r1, #0 + mov r3, #8 + bl MOD05_021E35B0 + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021E9786 +_021E9638: + add r0, r4, #0 + bl MOD05_021E35FC + mov r2, #2 + add r5, r0, #0 + ldr r1, [r4] + lsl r2, r2, #0x12 + sub r1, r2, r1 + add r0, sp, #0x24 + lsr r2, r2, #1 + mov r3, #0 + bl MOD05_021E3FF8 + add r3, sp, #0x24 + ldmia r3!, {r0, r1} + add r2, sp, #0x54 + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r3, #0 + str r0, [r2] + mov r2, #2 + ldr r1, [r4] + lsl r2, r2, #0x12 + add r0, sp, #0x18 + add r1, r1, r2 + bl MOD05_021E3FF8 + add r3, sp, #0x18 + ldmia r3!, {r0, r1} + add r2, sp, #0x48 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, sp, #0x54 + str r0, [r2] + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02020044 + mov r0, #0x1a + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, sp, #0x48 + bl FUN_02020044 + add r0, r4, #0 + add r0, #0x14 + bl MOD05_021E35C0 + mov r0, #0x67 + ldr r1, [r4, #0x14] + lsl r0, r0, #2 + lsl r1, r1, #0x10 + ldr r0, [r4, r0] + lsr r1, r1, #0x10 + bl FUN_02020088 + ldr r1, [r4, #0x14] + mov r0, #0x1a + lsl r0, r0, #4 + neg r1, r1 + lsl r1, r1, #0x10 + ldr r0, [r4, r0] + lsr r1, r1, #0x10 + bl FUN_02020088 + cmp r5, #1 + bne _021E9786 + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021E9786 +_021E96C8: + mov r3, #1 + lsl r3, r3, #0xc + str r3, [sp] + ldr r1, [r4, #0x28] + add r0, r6, #0 + mov r2, #8 + bl MOD05_021E3A70 + mov r0, #0x69 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl Camera_GetDistance + add r1, r0, #0 + mov r0, #8 + str r0, [sp] + mov r0, #0x6a + mov r2, #0x7d + lsl r0, r0, #2 + lsl r2, r2, #0xe + ldr r3, _021E97A4 ; =0xFFFF6000 + add r0, r4, r0 + sub r2, r1, r2 + bl MOD05_021E3644 + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021E9786 +_021E9702: + mov r0, #0x6a + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD05_021E36A4 + mov r1, #0x6a + lsl r1, r1, #2 + ldr r0, [r4, r1] + sub r1, r1, #4 + ldr r1, [r4, r1] + bl Camera_SetDistance + add r0, r6, #0 + bl MOD05_021E35AC + cmp r0, #1 + bne _021E9786 + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021E9786 +_021E972C: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r1, [r6, #0x14] + cmp r1, #0 + beq _021E9746 + mov r0, #1 + str r0, [r1] +_021E9746: + mov r7, #0 + add r5, r4, #0 +_021E974A: + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0201FFC8 + add r7, r7, #1 + add r5, r5, #4 + cmp r7, #2 + blt _021E974A + mov r1, #0x5a + add r0, r4, #0 + lsl r1, r1, #2 + add r0, #0x2c + add r1, r4, r1 + bl MOD05_021E3F3C + add r0, r4, #0 + add r0, #0x2c + bl MOD05_021E3E44 + ldr r0, [r4, #0x28] + bl MOD05_021E3A48 + ldr r1, [r6, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + ldr r0, [sp, #0x10] + bl FUN_0200621C +_021E9786: + ldr r0, [r6] + cmp r0, #7 + beq _021E9792 + ldr r0, [r4, #0x2c] + bl FUN_0201FDEC +_021E9792: + add sp, #0x78 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E9798: .word 0x000927C0 +_021E979C: .word 0xFFF40000 +_021E97A0: .word 0x0001FFFE +_021E97A4: .word 0xFFFF6000 + + thumb_func_start MOD05_021E97A8 +MOD05_021E97A8: ; 0x021E97A8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x58 + add r7, r1, #0 + str r0, [sp, #0x14] + ldr r0, [r7] + ldr r4, [r7, #0xc] + cmp r0, #7 + bls _021E97BA + b _021E9B2A +_021E97BA: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E97C6: ; jump table + .short _021E97D6 - _021E97C6 - 2 ; case 0 + .short _021E9892 - _021E97C6 - 2 ; case 1 + .short _021E98AC - _021E97C6 - 2 ; case 2 + .short _021E98F2 - _021E97C6 - 2 ; case 3 + .short _021E9958 - _021E97C6 - 2 ; case 4 + .short _021E99E4 - _021E97C6 - 2 ; case 5 + .short _021E9A68 - _021E97C6 - 2 ; case 6 + .short _021E9AD0 - _021E97C6 - 2 ; case 7 +_021E97D6: + mov r1, #0x7a + mov r0, #4 + lsl r1, r1, #2 + bl AllocFromHeap + mov r2, #0x7a + str r0, [r7, #0xc] + mov r1, #0 + lsl r2, r2, #2 + bl memset + ldr r0, [r7, #0x10] + ldr r4, [r7, #0xc] + ldr r1, [r0, #0x20] + mov r0, #0x72 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0x40 + mov r1, #4 + bl MOD05_021E8E8C + mov r0, #0x79 + mov r1, #0xc + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0x50 + mov r1, #2 + mov r2, #1 + bl MOD05_021E3E14 + mov r0, #5 + str r0, [sp] + mov r0, #7 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + ldr r0, _021E9B4C ; =0x000927C0 + mov r1, #0x63 + str r0, [sp, #0xc] + add r0, r4, #0 + lsl r1, r1, #2 + add r0, #0x50 + add r1, r4, r1 + mov r2, #0 + mov r3, #1 + bl MOD05_021E3E64 + add r0, r4, #0 + str r0, [sp, #0x1c] + add r0, #0x50 + mov r6, #0 + add r5, r4, #0 + str r0, [sp, #0x1c] +_021E9844: + mov r0, #0 + str r0, [sp] + mov r1, #0x63 + str r0, [sp, #4] + lsl r1, r1, #2 + mov r2, #2 + mov r3, #6 + ldr r0, [sp, #0x1c] + add r1, r4, r1 + lsl r2, r2, #0x12 + lsl r3, r3, #0x10 + bl MOD05_021E3FC4 + mov r1, #7 + lsl r1, r1, #6 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_02020310 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #2 + blt _021E9844 + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E9B2A +_021E9892: + mov r0, #2 + str r0, [sp] + mov r0, #1 + add r1, r0, #0 + sub r1, #0x11 + add r2, r1, #0 + add r3, r7, #4 + bl MOD05_021E3474 + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E9B2A +_021E98AC: + mov r0, #0x79 + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _021E98E4 + mov r0, #3 + lsl r0, r0, #0xe + mov r3, #0x32 + str r0, [sp] + lsl r3, r3, #4 + str r3, [sp, #4] + ldr r0, _021E9B50 ; =0x04000010 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #4 + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0x40 + mov r2, #0xbf + sub r3, #0x76 + bl MOD05_021E8EC0 + mov r0, #1 + str r0, [r4, #0x4c] +_021E98E4: + ldr r0, [r7, #4] + cmp r0, #0 + beq _021E99BE + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E9B2A +_021E98F2: + add r0, r4, #0 + add r0, #0x18 + mov r1, #0 + mov r2, #0x10 + mov r3, #8 + bl MOD05_021E35B0 + ldr r3, [r4, #0x18] + mov r0, #0x10 + sub r0, r0, r3 + str r0, [sp] + ldr r0, _021E9B54 ; =0x04000050 + mov r1, #0 + mov r2, #0xf + bl G2x_SetBlendAlpha_ + mov r6, #0 + add r5, r4, #0 +_021E9916: + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r5, r0] + mov r1, #2 + bl FUN_020200EC + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020398 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #2 + blt _021E9916 + add r0, r4, #0 + ldr r2, _021E9B58 ; =0x0000FFFF + add r0, #0x2c + mov r1, #0 + mov r3, #8 + bl MOD05_021E35B0 + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E9B2A +_021E9958: + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E35C0 + add r6, r0, #0 + ldr r1, [r4, #0x18] + mov r0, #0x10 + sub r0, r0, r1 + lsl r0, r0, #8 + orr r1, r0 + ldr r0, _021E9B5C ; =0x04000052 + strh r1, [r0] + ldr r0, [r4, #0x2c] + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0 + add r0, #0x2c + bl MOD05_021E35C0 + cmp r0, #0 + bne _021E99A2 + mov r0, #7 + ldr r1, [r4, #0x2c] + lsl r0, r0, #6 + lsl r1, r1, #0x10 + ldr r0, [r4, r0] + lsr r1, r1, #0x10 + bl FUN_02020088 + mov r0, #0x71 + lsl r0, r0, #2 + lsl r1, r5, #0x10 + ldr r0, [r4, r0] + lsr r1, r1, #0x10 + bl FUN_02020088 + b _021E99BA +_021E99A2: + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02020088 + mov r0, #0x71 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02020088 +_021E99BA: + cmp r6, #1 + beq _021E99C0 +_021E99BE: + b _021E9B2A +_021E99C0: + ldr r0, _021E9B54 ; =0x04000050 + mov r6, #0 + strh r6, [r0] + add r5, r4, #0 +_021E99C8: + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020398 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #2 + blt _021E99C8 + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E9B2A +_021E99E4: + mov r1, #8 + str r1, [sp] + ldr r3, _021E9B60 ; =0x0000019A + add r0, r4, #0 + lsl r1, r1, #9 + mov r2, #0x29 + bl MOD05_021E3644 + ldr r1, [r4] + add r0, sp, #0x34 + add r2, r1, #0 + add r3, r1, #0 + bl MOD05_021E3FF8 + add r3, sp, #0x34 + add r2, sp, #0x4c + ldmia r3!, {r0, r1} + str r2, [sp, #0x20] + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r6, #0 + str r0, [r2] + add r5, r4, #0 +_021E9A12: + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r5, r0] + ldr r1, [sp, #0x20] + bl FUN_02020064 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #2 + blt _021E9A12 + mov r0, #0x72 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl Camera_GetDistance + add r1, r0, #0 + mov r0, #8 + str r0, [sp] + mov r0, #0x73 + mov r2, #0x7d + lsl r0, r0, #2 + lsl r2, r2, #0xe + ldr r3, _021E9B64 ; =0xFFFF6000 + add r0, r4, r0 + sub r2, r1, r2 + bl MOD05_021E3644 + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r2, #0 + str r0, [sp, #8] + mov r0, #3 + mov r1, #0x18 + add r3, r2, #0 + bl FUN_0200E1D0 + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E9B2A +_021E9A68: + add r0, r4, #0 + bl MOD05_021E36A4 + ldr r1, [r4] + str r0, [sp, #0x18] + add r0, sp, #0x28 + add r2, r1, #0 + add r3, r1, #0 + bl MOD05_021E3FF8 + add r3, sp, #0x28 + add r2, sp, #0x40 + ldmia r3!, {r0, r1} + str r2, [sp, #0x24] + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r6, #0 + str r0, [r2] + add r5, r4, #0 +_021E9A8E: + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r5, r0] + ldr r1, [sp, #0x24] + bl FUN_02020064 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #2 + blt _021E9A8E + mov r0, #0x73 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD05_021E36A4 + mov r1, #0x73 + lsl r1, r1, #2 + ldr r0, [r4, r1] + sub r1, r1, #4 + ldr r1, [r4, r1] + bl Camera_SetDistance + ldr r0, [sp, #0x18] + cmp r0, #1 + bne _021E9B2A + bl FUN_0200E308 + cmp r0, #1 + bne _021E9B2A + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021E9B2A +_021E9AD0: + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r1, [r7, #0x14] + cmp r1, #0 + beq _021E9AE2 + mov r0, #1 + str r0, [r1] +_021E9AE2: + add r0, r4, #0 + add r0, #0x40 + bl MOD05_021E8EA8 + mov r6, #0 + str r6, [r4, #0x4c] + add r5, r4, #0 +_021E9AF0: + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r5, r0] + bl FUN_0201FFC8 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #2 + blt _021E9AF0 + mov r1, #0x63 + add r0, r4, #0 + lsl r1, r1, #2 + add r0, #0x50 + add r1, r4, r1 + bl MOD05_021E3F3C + add r4, #0x50 + add r0, r4, #0 + bl MOD05_021E3E44 + ldr r1, [r7, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + ldr r0, [sp, #0x14] + bl FUN_0200621C + add sp, #0x58 + pop {r3, r4, r5, r6, r7, pc} +_021E9B2A: + ldr r0, [r4, #0x4c] + cmp r0, #1 + bne _021E9B3A + add r0, r4, #0 + add r0, #0x40 + mov r1, #2 + bl MOD05_021E8EE8 +_021E9B3A: + ldr r0, [r7] + cmp r0, #7 + beq _021E9B46 + ldr r0, [r4, #0x50] + bl FUN_0201FDEC +_021E9B46: + add sp, #0x58 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E9B4C: .word 0x000927C0 +_021E9B50: .word 0x04000010 +_021E9B54: .word 0x04000050 +_021E9B58: .word 0x0000FFFF +_021E9B5C: .word 0x04000052 +_021E9B60: .word 0x0000019A +_021E9B64: .word 0xFFFF6000 + + thumb_func_start MOD05_021E9B68 +MOD05_021E9B68: ; 0x021E9B68 + push {r4, r5, r6, r7, lr} + sub sp, #0x44 + str r0, [sp, #0x18] + add r0, r1, #0 + ldr r0, [r0] + str r1, [sp, #0x1c] + ldr r4, [r1, #0xc] + cmp r0, #7 + bls _021E9B7C + b _021EA01A +_021E9B7C: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E9B88: ; jump table + .short _021E9B98 - _021E9B88 - 2 ; case 0 + .short _021E9CAA - _021E9B88 - 2 ; case 1 + .short _021E9CCA - _021E9B88 - 2 ; case 2 + .short _021E9D24 - _021E9B88 - 2 ; case 3 + .short _021E9DE4 - _021E9B88 - 2 ; case 4 + .short _021E9E82 - _021E9B88 - 2 ; case 5 + .short _021E9F1C - _021E9B88 - 2 ; case 6 + .short _021E9F70 - _021E9B88 - 2 ; case 7 +_021E9B98: + mov r1, #9 + mov r0, #4 + lsl r1, r1, #6 + bl AllocFromHeap + ldr r1, [sp, #0x1c] + mov r2, #9 + str r0, [r1, #0xc] + mov r1, #0 + lsl r2, r2, #6 + bl memset + ldr r0, [sp, #0x1c] + ldr r4, [r0, #0xc] + ldr r0, [r0, #0x10] + ldr r1, [r0, #0x20] + mov r0, #0x22 + lsl r0, r0, #4 + str r1, [r4, r0] + sub r0, #0x10 + add r0, r4, r0 + mov r1, #4 + bl MOD05_021E8E8C + mov r0, #0x8f + mov r1, #0xe + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #3 + mov r2, #1 + bl MOD05_021E3E14 + mov r0, #2 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + ldr r0, _021E9F5C ; =0x000927C0 + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [sp, #0xc] + add r0, r4, #0 + add r1, r4, r1 + mov r2, #0 + mov r3, #1 + bl MOD05_021E3E64 + mov r7, #0x4f + mov r6, #0 + add r5, r4, #0 + lsl r7, r7, #2 +_021E9C02: + mov r0, #0 + str r0, [sp] + mov r2, #0 + str r0, [sp, #4] + add r0, r4, #0 + add r1, r4, r7 + add r3, r2, #0 + bl MOD05_021E3FC4 + mov r1, #0x17 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #2 + bl FUN_020200EC + mov r0, #4 + bl MOD05_021E4140 + mov r1, #0x7d + lsl r1, r1, #2 + str r0, [r5, r1] + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #3 + blt _021E9C02 + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + mov r0, #4 + mov r1, #1 + bl AllocWindows + mov r1, #0x83 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + str r3, [sp, #0xc] + str r3, [sp, #0x10] + ldr r0, [sp, #0x1c] + ldr r1, [r4, r1] + ldr r0, [r0, #0x10] + mov r2, #3 + ldr r0, [r0, #8] + bl AddWindowParameterized + mov r1, #0 + add r0, sp, #0x28 + strh r1, [r0] + mov r0, #3 + add r1, sp, #0x28 + mov r2, #2 + mov r3, #0x1e + bl BG_LoadPlttData + mov r0, #0x83 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FillWindowPixelBuffer + mov r0, #0x83 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl ScheduleWindowCopyToVram + ldr r0, [sp, #0x1c] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x1c] + str r1, [r0] + b _021EA01A +_021E9CAA: + mov r1, #0x10 + ldr r3, [sp, #0x1c] + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #1 + sub r2, #0x20 + add r3, r3, #4 + bl MOD05_021E3474 + ldr r0, [sp, #0x1c] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x1c] + str r1, [r0] + b _021EA01A +_021E9CCA: + mov r3, #0x8f + lsl r3, r3, #2 + ldr r0, [r4, r3] + sub r0, r0, #1 + str r0, [r4, r3] + ldr r0, [r4, r3] + cmp r0, #0 + bne _021E9D08 + mov r0, #3 + lsl r0, r0, #0xe + str r0, [sp] + add r0, r3, #0 + add r0, #0xe4 + str r0, [sp, #4] + ldr r0, _021E9F60 ; =0x04000010 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #4 + str r0, [sp, #0x10] + add r0, r3, #0 + sub r0, #0x2c + add r0, r4, r0 + mov r2, #0xbf + add r3, #0x6e + bl MOD05_021E8EC0 + mov r0, #0x87 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] +_021E9D08: + ldr r0, [sp, #0x1c] + ldr r0, [r0, #4] + cmp r0, #0 + beq _021E9D34 + mov r0, #0x8f + mov r1, #6 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, [sp, #0x1c] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x1c] + str r1, [r0] + b _021EA01A +_021E9D24: + mov r0, #0x8f + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0 + blt _021E9D36 +_021E9D34: + b _021EA01A +_021E9D36: + sub r0, #0x1c + ldr r0, [r4, r0] + bl Camera_GetDistance + add r1, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0x89 + mov r2, #0x7d + lsl r0, r0, #2 + lsl r2, r2, #0xe + ldr r3, _021E9F64 ; =0xFFFF6000 + add r0, r4, r0 + sub r2, r1, r2 + bl MOD05_021E3644 + mov r0, #0x6e + lsl r0, r0, #2 + ldr r2, _021E9F68 ; =0x0000FFFF + add r0, r4, r0 + mov r1, #0 + mov r3, #6 + bl MOD05_021E35B0 + mov r0, #0x5f + lsl r0, r0, #2 + mov r2, #0x1f + add r0, r4, r0 + mov r1, #0xe7 + mvn r2, r2 + mov r3, #6 + bl MOD05_021E35B0 + mov r0, #0 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0x83 + lsl r0, r0, #2 + ldr r1, [r4, r0] + mov r3, #0x40 + str r1, [sp, #8] + mov r1, #0x56 + str r1, [sp, #0xc] + str r3, [sp, #0x10] + mov r1, #0xf + str r1, [sp, #0x14] + sub r0, #0x18 + mov r1, #0x2b + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, #0xf8 + bl MOD05_021E4160 + mov r1, #0x2b + mov r2, #0xe7 + add r0, sp, #0x38 + lsl r1, r1, #0xc + lsl r2, r2, #0xc + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, sp, #0x38 + bl FUN_02020044 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r1, #1 + lsl r0, r1, #9 + str r1, [r4, r0] + ldr r0, [sp, #0x1c] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x1c] + str r1, [r0] + mov r0, #0x8f + mov r1, #4 + lsl r0, r0, #2 + str r1, [r4, r0] + b _021EA01A +_021E9DE4: + mov r0, #0x8f + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0 + bge _021E9E92 + sub r0, #0xac + mov r2, #0x1f + add r0, r4, r0 + mov r1, #0xe7 + mvn r2, r2 + mov r3, #6 + bl MOD05_021E35B0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r2, _021E9F6C ; =0xFFFF0001 + add r0, r4, r0 + mov r1, #0 + mov r3, #6 + bl MOD05_021E35B0 + mov r0, #0 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0x83 + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r0, #0x14 + str r1, [sp, #8] + mov r1, #0x56 + str r1, [sp, #0xc] + mov r1, #0x40 + str r1, [sp, #0x10] + mov r1, #0xf + str r1, [sp, #0x14] + mov r1, #0xd7 + add r3, r1, #0 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, #0x61 + bl MOD05_021E4160 + mov r1, #0xd7 + mov r2, #0xe7 + add r0, sp, #0x38 + lsl r1, r1, #0xc + lsl r2, r2, #0xc + mov r3, #1 + bl MOD05_021E3FF8 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x38 + bl FUN_02020044 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r1, #0x81 + mov r0, #1 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [sp, #0x1c] + add r1, #0x38 + ldr r0, [r0] + add r2, r0, #1 + ldr r0, [sp, #0x1c] + str r2, [r0] + mov r0, #2 + str r0, [r4, r1] + b _021EA01A +_021E9E82: + mov r0, #0x8f + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0 + blt _021E9E94 +_021E9E92: + b _021EA01A +_021E9E94: + sub r0, #0x98 + mov r2, #0x1f + add r0, r4, r0 + mov r1, #0xe7 + mvn r2, r2 + mov r3, #6 + bl MOD05_021E35B0 + mov r0, #0x1e + lsl r0, r0, #4 + ldr r2, _021E9F68 ; =0x0000FFFF + add r0, r4, r0 + mov r1, #0 + mov r3, #6 + bl MOD05_021E35B0 + mov r0, #0 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0x83 + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r0, #0x10 + str r1, [sp, #8] + mov r1, #0x56 + str r1, [sp, #0xc] + mov r1, #0x40 + str r1, [sp, #0x10] + mov r1, #0xf + str r1, [sp, #0x14] + mov r1, #0x81 + add r3, r1, #0 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, #0xb7 + bl MOD05_021E4160 + mov r1, #0x81 + mov r2, #0xe7 + add r0, sp, #0x38 + lsl r1, r1, #0xc + lsl r2, r2, #0xc + mov r3, #2 + bl MOD05_021E3FF8 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x38 + bl FUN_02020044 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x82 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, [sp, #0x1c] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x1c] + str r1, [r0] + b _021EA01A +_021E9F1C: + mov r0, #0x89 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD05_021E36A4 + mov r1, #0x89 + lsl r1, r1, #2 + ldr r0, [r4, r1] + sub r1, r1, #4 + ldr r1, [r4, r1] + bl Camera_SetDistance + mov r1, #2 + lsl r1, r1, #8 + ldr r0, [r4, r1] + cmp r0, #0 + bne _021EA01A + add r0, r1, #4 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021EA01A + add r1, #8 + ldr r0, [r4, r1] + cmp r0, #0 + bne _021EA01A + ldr r0, [sp, #0x1c] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x1c] + str r1, [r0] + b _021EA01A + nop +_021E9F5C: .word 0x000927C0 +_021E9F60: .word 0x04000010 +_021E9F64: .word 0xFFFF6000 +_021E9F68: .word 0x0000FFFF +_021E9F6C: .word 0xFFFF0001 +_021E9F70: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, [sp, #0x1c] + ldr r1, [r0, #0x14] + cmp r1, #0 + beq _021E9F8C + mov r0, #1 + str r0, [r1] +_021E9F8C: + mov r0, #0x21 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD05_021E8EA8 + mov r0, #0x87 + lsl r0, r0, #2 + mov r6, #0 + add r7, r0, #0 + str r6, [r4, r0] + add r5, r4, #0 + sub r7, #0x28 +_021E9FA4: + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_0201FFC8 + ldr r0, [r5, r7] + bl MOD05_021E4158 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #3 + blt _021E9FA4 + mov r1, #0x4f + lsl r1, r1, #2 + add r0, r4, #0 + add r1, r4, r1 + bl MOD05_021E3F3C + add r0, r4, #0 + bl MOD05_021E3E44 + mov r0, #0x83 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl ClearWindowTilemapAndCopyToVram + mov r0, #0x83 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl RemoveWindow + mov r0, #0x83 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl WindowArray_dtor + mov r0, #3 + mov r1, #0x20 + mov r2, #0 + mov r3, #4 + bl BG_ClearCharDataRange + ldr r0, [sp, #0x1c] + mov r1, #3 + ldr r0, [r0, #0x10] + ldr r0, [r0, #8] + bl BgClearTilemapBufferAndCommit + ldr r1, [sp, #0x1c] + mov r0, #4 + ldr r1, [r1, #0xc] + bl FreeToHeapExplicit + ldr r0, [sp, #0x18] + bl FUN_0200621C + add sp, #0x44 + pop {r4, r5, r6, r7, pc} +_021EA01A: + mov r0, #0x87 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #1 + bne _021EA02E + sub r0, #0xc + add r0, r4, r0 + mov r1, #2 + bl MOD05_021E8EE8 +_021EA02E: + mov r1, #0x5f + mov r0, #0 + lsl r1, r1, #2 + str r0, [sp, #0x20] + add r0, r4, r1 + add r1, #0x3c + add r5, r4, #0 + str r0, [sp, #0x24] + add r7, r4, r1 + add r6, r4, #0 +_021EA042: + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r5, r0] + cmp r0, #1 + bne _021EA0B0 + mov r0, #0x7d + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl MOD05_021E41B8 + cmp r0, #0 + beq _021EA062 + mov r0, #2 + mov r1, #0 + lsl r0, r0, #8 + str r1, [r5, r0] +_021EA062: + ldr r0, [sp, #0x24] + bl MOD05_021E35C0 + add r0, r7, #0 + bl MOD05_021E35C0 + mov r1, #0x6e + lsl r1, r1, #2 + mov r0, #0x17 + ldr r1, [r6, r1] + lsl r0, r0, #4 + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + bl FUN_02020088 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_0202011C + add r3, r0, #0 + add r2, sp, #0x2c + ldmia r3!, {r0, r1} + mov ip, r2 + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r1, ip + str r0, [r2] + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r6, r0] + lsl r0, r0, #0xc + str r0, [sp, #0x30] + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02020044 +_021EA0B0: + ldr r0, [sp, #0x24] + add r5, r5, #4 + add r0, #0x14 + str r0, [sp, #0x24] + ldr r0, [sp, #0x20] + add r7, #0x14 + add r0, r0, #1 + add r6, #0x14 + str r0, [sp, #0x20] + cmp r0, #3 + blt _021EA042 + mov r0, #0x83 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl ScheduleWindowCopyToVram + ldr r0, [sp, #0x1c] + ldr r0, [r0] + cmp r0, #7 + beq _021EA0DE + ldr r0, [r4] + bl FUN_0201FDEC +_021EA0DE: + add sp, #0x44 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EA0E4 +MOD05_021EA0E4: ; 0x021EA0E4 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r1, #0 + add r6, r0, #0 + ldr r0, [r5] + ldr r4, [r5, #0xc] + cmp r0, #7 + bhi _021EA1B8 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021EA100: ; jump table + .short _021EA110 - _021EA100 - 2 ; case 0 + .short _021EA198 - _021EA100 - 2 ; case 1 + .short _021EA1B2 - _021EA100 - 2 ; case 2 + .short _021EA1C0 - _021EA100 - 2 ; case 3 + .short _021EA236 - _021EA100 - 2 ; case 4 + .short _021EA2C2 - _021EA100 - 2 ; case 5 + .short _021EA310 - _021EA100 - 2 ; case 6 + .short _021EA338 - _021EA100 - 2 ; case 7 +_021EA110: + mov r1, #0x1f + mov r0, #4 + lsl r1, r1, #4 + bl AllocFromHeap + mov r2, #0x1f + str r0, [r5, #0xc] + mov r1, #0 + lsl r2, r2, #4 + bl memset + ldr r0, [r5, #0x10] + ldr r4, [r5, #0xc] + ldr r1, [r0, #0x20] + mov r0, #0x1d + lsl r0, r0, #4 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #1 + add r0, #0x5c + add r2, r1, #0 + bl MOD05_021E3E14 + mov r0, #2 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + ldr r0, _021EA394 ; =0x000927C0 + mov r1, #0x66 + str r0, [sp, #0xc] + add r0, r4, #0 + lsl r1, r1, #2 + add r0, #0x5c + add r1, r4, r1 + mov r2, #0 + mov r3, #1 + bl MOD05_021E3E64 + mov r0, #0 + str r0, [sp] + mov r1, #0x66 + str r0, [sp, #4] + add r0, r4, #0 + lsl r1, r1, #2 + mov r2, #2 + ldr r3, _021EA398 ; =0xFFFE0000 + add r0, #0x5c + add r1, r4, r1 + lsl r2, r2, #0x12 + bl MOD05_021E3FC4 + mov r1, #0x73 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EA382 +_021EA198: + mov r0, #2 + str r0, [sp] + mov r0, #1 + add r1, r0, #0 + sub r1, #0x11 + add r2, r1, #0 + add r3, r5, #4 + bl MOD05_021E3474 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EA382 +_021EA1B2: + ldr r1, [r5, #4] + cmp r1, #0 + bne _021EA1BA +_021EA1B8: + b _021EA382 +_021EA1BA: + add r0, r0, #1 + str r0, [r5] + b _021EA382 +_021EA1C0: + mov r2, #1 + mov r0, #0xc + lsl r2, r2, #0x14 + str r0, [sp] + add r0, r4, #0 + mov r1, #0 + lsr r3, r2, #7 + bl MOD05_021E3644 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xc + str r0, [sp] + add r0, r4, #0 + mov r2, #2 + ldr r1, _021EA39C ; =0x0000019A + add r0, #0x18 + lsl r2, r2, #0xc + mov r3, #0 + bl MOD05_021E3644 + mov r0, #0xc + str r0, [sp] + add r0, r4, #0 + mov r2, #2 + ldr r1, _021EA39C ; =0x0000019A + add r0, #0x30 + lsl r2, r2, #0xc + mov r3, #0 + bl MOD05_021E3644 + ldr r1, [r4, #0x18] + ldr r2, [r4, #0x30] + add r0, sp, #0x28 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x28 + mov r2, #2 + bl FUN_02020074 + add r0, r4, #0 + ldr r2, _021EA3A0 ; =0x0000FFFF + add r0, #0x48 + mov r1, #0 + mov r3, #0xc + bl MOD05_021E35B0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EA382 +_021EA236: + add r0, r4, #0 + bl MOD05_021E36A4 + mov r1, #2 + lsl r1, r1, #0x12 + add r6, r0, #0 + ldr r3, [r4] + lsr r2, r1, #2 + sub r2, r3, r2 + add r0, sp, #0x10 + mov r3, #0 + bl MOD05_021E3FF8 + add r3, sp, #0x10 + add r2, sp, #0x1c + ldmia r3!, {r0, r1} + add r7, r2, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, r7, #0 + str r0, [r2] + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02020044 + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E36A4 + add r0, r4, #0 + add r0, #0x30 + bl MOD05_021E36A4 + ldr r1, [r4, #0x18] + ldr r2, [r4, #0x30] + add r0, sp, #0x28 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x28 + bl FUN_02020064 + add r0, r4, #0 + add r0, #0x48 + bl MOD05_021E35C0 + mov r0, #0x73 + ldr r1, [r4, #0x48] + lsl r0, r0, #2 + lsl r1, r1, #0x10 + ldr r0, [r4, r0] + lsr r1, r1, #0x10 + bl FUN_02020088 + cmp r6, #1 + bne _021EA382 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EA382 +_021EA2C2: + ldr r0, [r5, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F4608 + mov r0, #0x1d + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl Camera_GetDistance + add r1, r0, #0 + mov r0, #8 + str r0, [sp] + mov r0, #0x75 + mov r2, #0xfa + lsl r0, r0, #2 + lsl r2, r2, #0xe + mov r3, #0xa + add r0, r4, r0 + sub r2, r1, r2 + lsl r3, r3, #0xc + bl MOD05_021E3644 + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r2, #0 + str r0, [sp, #8] + mov r0, #3 + mov r1, #0x12 + add r3, r2, #0 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EA382 +_021EA310: + mov r0, #0x75 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD05_021E36A4 + mov r1, #0x75 + lsl r1, r1, #2 + ldr r0, [r4, r1] + sub r1, r1, #4 + ldr r1, [r4, r1] + bl Camera_SetDistance + bl FUN_0200E308 + cmp r0, #0 + beq _021EA382 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EA382 +_021EA338: + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, [r5, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F45E8 + ldr r1, [r5, #0x14] + cmp r1, #0 + beq _021EA354 + mov r0, #1 + str r0, [r1] +_021EA354: + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0201FFC8 + mov r1, #0x66 + add r0, r4, #0 + lsl r1, r1, #2 + add r0, #0x5c + add r1, r4, r1 + bl MOD05_021E3F3C + add r0, r4, #0 + add r0, #0x5c + bl MOD05_021E3E44 + ldr r1, [r5, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C +_021EA382: + ldr r0, [r5] + cmp r0, #7 + beq _021EA38E + ldr r0, [r4, #0x5c] + bl FUN_0201FDEC +_021EA38E: + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + nop +_021EA394: .word 0x000927C0 +_021EA398: .word 0xFFFE0000 +_021EA39C: .word 0x0000019A +_021EA3A0: .word 0x0000FFFF + + thumb_func_start MOD05_021EA3A4 +MOD05_021EA3A4: ; 0x021EA3A4 + push {r4, r5, r6, r7, lr} + sub sp, #0x44 + str r0, [sp, #0x14] + add r0, r1, #0 + ldr r0, [r0] + str r1, [sp, #0x18] + ldr r4, [r1, #0xc] + cmp r0, #9 + bls _021EA3B8 + b _021EA7DE +_021EA3B8: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021EA3C4: ; jump table + .short _021EA3D8 - _021EA3C4 - 2 ; case 0 + .short _021EA4CE - _021EA3C4 - 2 ; case 1 + .short _021EA4EE - _021EA3C4 - 2 ; case 2 + .short _021EA506 - _021EA3C4 - 2 ; case 3 + .short _021EA582 - _021EA3C4 - 2 ; case 4 + .short _021EA5FE - _021EA3C4 - 2 ; case 5 + .short _021EA674 - _021EA3C4 - 2 ; case 6 + .short _021EA6B4 - _021EA3C4 - 2 ; case 7 + .short _021EA6FA - _021EA3C4 - 2 ; case 8 + .short _021EA748 - _021EA3C4 - 2 ; case 9 +_021EA3D8: + mov r1, #0x8a + mov r0, #4 + lsl r1, r1, #2 + bl AllocFromHeap + ldr r1, [sp, #0x18] + mov r2, #0x8a + str r0, [r1, #0xc] + mov r1, #0 + lsl r2, r2, #2 + bl memset + ldr r0, [sp, #0x18] + mov r2, #1 + ldr r4, [r0, #0xc] + ldr r0, [r0, #0x10] + ldr r1, [r0, #0x20] + mov r0, #0x82 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #3 + bl MOD05_021E3E14 + mov r0, #2 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + ldr r0, _021EA738 ; =0x000927C0 + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [sp, #0xc] + add r0, r4, #0 + add r1, r4, r1 + mov r2, #0 + mov r3, #1 + bl MOD05_021E3E64 + mov r7, #0x4f + mov r6, #0 + add r5, r4, #0 + lsl r7, r7, #2 +_021EA430: + mov r0, #0 + mov r2, #0 + str r0, [sp] + add r3, r2, #0 + str r0, [sp, #4] + add r0, r4, #0 + add r1, r4, r7 + sub r3, #0x20 + bl MOD05_021E3FC4 + mov r1, #0x17 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #3 + blt _021EA430 + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + mov r0, #4 + mov r1, #1 + bl AllocWindows + mov r1, #2 + lsl r1, r1, #8 + str r0, [r4, r1] + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + str r3, [sp, #0xc] + str r3, [sp, #0x10] + ldr r0, [sp, #0x18] + ldr r1, [r4, r1] + ldr r0, [r0, #0x10] + mov r2, #3 + ldr r0, [r0, #8] + bl AddWindowParameterized + mov r1, #0 + add r0, sp, #0x28 + strh r1, [r0] + mov r0, #3 + add r1, sp, #0x28 + mov r2, #2 + mov r3, #0x1e + bl BG_LoadPlttData + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #0 + bl FillWindowPixelBuffer + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r4, r0] + bl ScheduleWindowCopyToVram + mov r0, #4 + bl MOD05_021E4394 + mov r1, #0x81 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [sp, #0x18] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x18] + str r1, [r0] + b _021EA7DE +_021EA4CE: + mov r1, #0x10 + ldr r3, [sp, #0x18] + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #1 + sub r2, #0x20 + add r3, r3, #4 + bl MOD05_021E3474 + ldr r0, [sp, #0x18] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x18] + str r1, [r0] + b _021EA7DE +_021EA4EE: + ldr r1, [sp, #0x18] + ldr r1, [r1, #4] + cmp r1, #0 + beq _021EA516 + add r1, r0, #1 + ldr r0, [sp, #0x18] + str r1, [r0] + mov r0, #0x89 + mov r1, #0 + lsl r0, r0, #2 + strh r1, [r4, r0] + b _021EA7DE +_021EA506: + mov r0, #0x89 + lsl r0, r0, #2 + ldrsh r1, [r4, r0] + sub r1, r1, #1 + strh r1, [r4, r0] + ldrsh r1, [r4, r0] + cmp r1, #0 + ble _021EA518 +_021EA516: + b _021EA7DE +_021EA518: + sub r0, #0xa8 + mov r1, #0x1f + add r0, r4, r0 + mvn r1, r1 + mov r2, #0xe0 + mov r3, #5 + bl MOD05_021E35B0 + mov r1, #2 + ldr r2, _021EA73C ; =0xFFFE0000 + add r0, sp, #0x38 + lsl r1, r1, #0x12 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, sp, #0x38 + bl FUN_02020044 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x6e + lsl r0, r0, #2 + ldr r2, _021EA740 ; =0x0000FFFF + add r0, r4, r0 + mov r1, #0 + mov r3, #5 + bl MOD05_021E35B0 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #2 + bl FUN_020200EC + mov r1, #0x7d + mov r3, #1 + lsl r1, r1, #2 + str r3, [r4, r1] + ldr r0, [sp, #0x18] + add r1, #0x30 + ldr r0, [r0] + add r2, r0, #1 + ldr r0, [sp, #0x18] + str r2, [r0] + strh r3, [r4, r1] + b _021EA7DE +_021EA582: + mov r0, #0x89 + lsl r0, r0, #2 + ldrsh r1, [r4, r0] + sub r1, r1, #1 + strh r1, [r4, r0] + ldrsh r1, [r4, r0] + cmp r1, #0 + bgt _021EA68E + sub r0, #0x94 + mov r1, #0x1f + add r0, r4, r0 + mvn r1, r1 + mov r2, #0xe0 + mov r3, #5 + bl MOD05_021E35B0 + mov r1, #0xd + ldr r2, _021EA73C ; =0xFFFE0000 + add r0, sp, #0x38 + lsl r1, r1, #0x10 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x38 + bl FUN_02020044 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r2, _021EA744 ; =0xFFFF0001 + add r0, r4, r0 + mov r1, #0 + mov r3, #5 + bl MOD05_021E35B0 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #2 + bl FUN_020200EC + mov r1, #0x7e + mov r0, #1 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [sp, #0x18] + add r1, #0x2c + ldr r0, [r0] + add r2, r0, #1 + ldr r0, [sp, #0x18] + str r2, [r0] + mov r0, #3 + strh r0, [r4, r1] + b _021EA7DE +_021EA5FE: + mov r0, #0x89 + lsl r0, r0, #2 + ldrsh r1, [r4, r0] + sub r1, r1, #1 + strh r1, [r4, r0] + ldrsh r1, [r4, r0] + cmp r1, #0 + bgt _021EA68E + sub r0, #0x80 + mov r1, #0x1f + add r0, r4, r0 + mvn r1, r1 + mov r2, #0xe0 + mov r3, #5 + bl MOD05_021E35B0 + mov r1, #3 + ldr r2, _021EA73C ; =0xFFFE0000 + add r0, sp, #0x38 + lsl r1, r1, #0x10 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x38 + bl FUN_02020044 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x1e + lsl r0, r0, #4 + ldr r2, _021EA740 ; =0x0000FFFF + add r0, r4, r0 + mov r1, #0 + mov r3, #5 + bl MOD05_021E35B0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #2 + bl FUN_020200EC + mov r0, #0x7f + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, [sp, #0x18] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x18] + str r1, [r0] + b _021EA7DE +_021EA674: + mov r1, #0x7d + lsl r1, r1, #2 + ldr r0, [r4, r1] + cmp r0, #0 + bne _021EA68E + add r0, r1, #4 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021EA68E + add r1, #8 + ldr r0, [r4, r1] + cmp r0, #0 + beq _021EA690 +_021EA68E: + b _021EA7DE +_021EA690: + mov r7, #0x17 + mov r6, #0 + add r5, r4, #0 + lsl r7, r7, #4 +_021EA698: + ldr r0, [r5, r7] + mov r1, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #3 + blt _021EA698 + ldr r0, [sp, #0x18] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x18] + str r1, [r0] + b _021EA7DE +_021EA6B4: + mov r0, #0xf + mov r1, #1 + str r0, [sp] + mov r0, #0x81 + lsl r0, r0, #2 + lsl r3, r1, #9 + ldr r0, [r4, r0] + ldr r3, [r4, r3] + add r2, r1, #0 + bl MOD05_021E43E4 + mov r0, #0x82 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl Camera_GetDistance + add r1, r0, #0 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x83 + mov r2, #0xfa + lsl r0, r0, #2 + lsl r2, r2, #0xe + mov r3, #0xa + add r0, r4, r0 + sub r2, r1, r2 + lsl r3, r3, #0xc + bl MOD05_021E3644 + ldr r0, [sp, #0x18] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x18] + str r1, [r0] + b _021EA7DE +_021EA6FA: + mov r0, #0x81 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD05_021E4424 + add r5, r0, #0 + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r4, r0] + bl ScheduleWindowCopyToVram + mov r0, #0x83 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD05_021E36A4 + mov r1, #0x83 + lsl r1, r1, #2 + ldr r0, [r4, r1] + sub r1, r1, #4 + ldr r1, [r4, r1] + bl Camera_SetDistance + cmp r5, #1 + bne _021EA7DE + ldr r0, [sp, #0x18] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x18] + str r1, [r0] + b _021EA7DE + .balign 4, 0 +_021EA738: .word 0x000927C0 +_021EA73C: .word 0xFFFE0000 +_021EA740: .word 0x0000FFFF +_021EA744: .word 0xFFFF0001 +_021EA748: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, [sp, #0x18] + ldr r1, [r0, #0x14] + cmp r1, #0 + beq _021EA764 + mov r0, #1 + str r0, [r1] +_021EA764: + mov r7, #0x17 + mov r6, #0 + add r5, r4, #0 + lsl r7, r7, #4 +_021EA76C: + ldr r0, [r5, r7] + bl FUN_0201FFC8 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #3 + blt _021EA76C + mov r1, #0x4f + lsl r1, r1, #2 + add r0, r4, #0 + add r1, r4, r1 + bl MOD05_021E3F3C + add r0, r4, #0 + bl MOD05_021E3E44 + mov r0, #0x81 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD05_021E43C4 + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r4, r0] + bl ClearWindowTilemapAndCopyToVram + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r4, r0] + bl RemoveWindow + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #1 + bl WindowArray_dtor + mov r0, #3 + mov r1, #0x20 + mov r2, #0 + mov r3, #4 + bl BG_ClearCharDataRange + ldr r0, [sp, #0x18] + mov r1, #3 + ldr r0, [r0, #0x10] + ldr r0, [r0, #8] + bl BgClearTilemapBufferAndCommit + ldr r1, [sp, #0x18] + mov r0, #4 + ldr r1, [r1, #0xc] + bl FreeToHeapExplicit + ldr r0, [sp, #0x14] + bl FUN_0200621C +_021EA7DE: + mov r1, #0x5f + mov r0, #0 + lsl r1, r1, #2 + str r0, [sp, #0x1c] + add r0, r4, r1 + add r1, #0x3c + add r5, r4, #0 + str r0, [sp, #0x20] + add r7, r4, r1 + add r6, r4, #0 +_021EA7F2: + mov r0, #0x7d + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #1 + bne _021EA85A + ldr r0, [sp, #0x20] + bl MOD05_021E35C0 + str r0, [sp, #0x24] + add r0, r7, #0 + bl MOD05_021E35C0 + ldr r0, [sp, #0x24] + cmp r0, #0 + beq _021EA818 + mov r0, #0x7d + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] +_021EA818: + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_0202011C + add r3, r0, #0 + add r2, sp, #0x2c + ldmia r3!, {r0, r1} + mov ip, r2 + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r1, ip + str r0, [r2] + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r6, r0] + lsl r0, r0, #0xc + str r0, [sp, #0x30] + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02020044 + mov r1, #0x6e + lsl r1, r1, #2 + mov r0, #0x17 + ldr r1, [r6, r1] + lsl r0, r0, #4 + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + bl FUN_02020088 +_021EA85A: + ldr r0, [sp, #0x20] + add r5, r5, #4 + add r0, #0x14 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + add r7, #0x14 + add r0, r0, #1 + add r6, #0x14 + str r0, [sp, #0x1c] + cmp r0, #3 + blt _021EA7F2 + ldr r0, [sp, #0x18] + ldr r0, [r0] + cmp r0, #9 + beq _021EA87E + ldr r0, [r4] + bl FUN_0201FDEC +_021EA87E: + add sp, #0x44 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EA884 +MOD05_021EA884: ; 0x021EA884 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x40 + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #7 + bls _021EA896 + b _021EAAC6 +_021EA896: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021EA8A2: ; jump table + .short _021EA8B2 - _021EA8A2 - 2 ; case 0 + .short _021EA93E - _021EA8A2 - 2 ; case 1 + .short _021EA958 - _021EA8A2 - 2 ; case 2 + .short _021EA964 - _021EA8A2 - 2 ; case 3 + .short _021EA996 - _021EA8A2 - 2 ; case 4 + .short _021EA9C8 - _021EA8A2 - 2 ; case 5 + .short _021EAA38 - _021EA8A2 - 2 ; case 6 + .short _021EAA7C - _021EA8A2 - 2 ; case 7 +_021EA8B2: + mov r1, #0x69 + mov r0, #4 + lsl r1, r1, #2 + bl AllocFromHeap + mov r2, #0x69 + str r0, [r4, #0xc] + mov r1, #0 + lsl r2, r2, #2 + bl memset + ldr r5, [r4, #0xc] + mov r1, #1 + add r0, r5, #0 + add r0, #0x2c + add r2, r1, #0 + bl MOD05_021E3E14 + mov r0, #5 + str r0, [sp] + mov r0, #7 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + ldr r0, _021EAAD8 ; =0x000927C0 + mov r1, #0x5a + str r0, [sp, #0xc] + add r0, r5, #0 + lsl r1, r1, #2 + add r0, #0x2c + add r1, r5, r1 + mov r2, #0 + mov r3, #1 + bl MOD05_021E3E64 + mov r0, #0 + str r0, [sp] + mov r1, #0x5a + str r0, [sp, #4] + add r0, r5, #0 + lsl r1, r1, #2 + mov r2, #2 + mov r3, #6 + add r0, #0x2c + add r1, r5, r1 + lsl r2, r2, #0x12 + lsl r3, r3, #0x10 + bl MOD05_021E3FC4 + mov r1, #0x67 + lsl r1, r1, #2 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020398 + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021EAAC6 +_021EA93E: + mov r1, #0x10 + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #1 + sub r2, #0x20 + add r3, r4, #4 + bl MOD05_021E3474 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021EAAC6 +_021EA958: + ldr r1, [r4, #4] + cmp r1, #0 + beq _021EA9AE + add r0, r0, #1 + str r0, [r4] + b _021EAAC6 +_021EA964: + add r0, r5, #0 + mov r1, #0 + mov r2, #0x10 + mov r3, #0xc + bl MOD05_021E35B0 + ldr r3, [r5] + mov r0, #0x10 + sub r0, r0, r3 + str r0, [sp] + ldr r0, _021EAADC ; =0x04000050 + mov r1, #0 + mov r2, #0xf + bl G2x_SetBlendAlpha_ + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021EAAC6 +_021EA996: + add r0, r5, #0 + bl MOD05_021E35C0 + ldr r2, [r5] + mov r1, #0x10 + sub r1, r1, r2 + lsl r1, r1, #8 + orr r1, r2 + ldr r2, _021EAAE0 ; =0x04000052 + cmp r0, #1 + strh r1, [r2] + beq _021EA9B0 +_021EA9AE: + b _021EAAC6 +_021EA9B0: + mov r1, #0 + sub r0, r2, #2 + strh r1, [r0] + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02020398 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021EAAC6 +_021EA9C8: + mov r0, #6 + str r0, [sp] + add r0, r5, #0 + mov r1, #1 + ldr r2, _021EAAE4 ; =0x0000019A + add r0, #0x14 + lsl r1, r1, #0xc + mov r3, #1 + bl MOD05_021E3644 + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #2 + bl FUN_020200EC + ldr r1, [r5, #0x14] + add r0, sp, #0x1c + add r2, r1, #0 + add r3, r1, #0 + bl MOD05_021E3FF8 + add r6, sp, #0x1c + add r3, sp, #0x34 + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r6] + add r1, r2, #0 + str r0, [r3] + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02020064 + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F4608 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r2, #0 + str r0, [sp, #8] + mov r0, #3 + mov r1, #0x10 + add r3, r2, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021EAAC6 +_021EAA38: + add r0, r5, #0 + add r0, #0x14 + bl MOD05_021E36A4 + ldr r1, [r5, #0x14] + add r6, r0, #0 + add r0, sp, #0x10 + add r2, r1, #0 + add r3, r1, #0 + bl MOD05_021E3FF8 + add r3, sp, #0x10 + add r2, sp, #0x28 + ldmia r3!, {r0, r1} + add r7, r2, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, r7, #0 + str r0, [r2] + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02020064 + cmp r6, #1 + bne _021EAAC6 + bl FUN_0200E308 + cmp r0, #1 + bne _021EAAC6 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021EAAC6 +_021EAA7C: + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F45E8 + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _021EAA98 + mov r0, #1 + str r0, [r1] +_021EAA98: + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0201FFC8 + mov r1, #0x5a + add r0, r5, #0 + lsl r1, r1, #2 + add r0, #0x2c + add r1, r5, r1 + bl MOD05_021E3F3C + add r0, r5, #0 + add r0, #0x2c + bl MOD05_021E3E44 + ldr r1, [r4, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C +_021EAAC6: + ldr r0, [r4] + cmp r0, #7 + beq _021EAAD2 + ldr r0, [r5, #0x2c] + bl FUN_0201FDEC +_021EAAD2: + add sp, #0x40 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EAAD8: .word 0x000927C0 +_021EAADC: .word 0x04000050 +_021EAAE0: .word 0x04000052 +_021EAAE4: .word 0x0000019A + + thumb_func_start MOD05_021EAAE8 +MOD05_021EAAE8: ; 0x021EAAE8 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r6, r1, #0 + str r0, [sp, #0x10] + ldr r0, [r6] + ldr r4, [r6, #0xc] + cmp r0, #7 + bhi _021EABBC + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021EAB04: ; jump table + .short _021EAB14 - _021EAB04 - 2 ; case 0 + .short _021EAB9C - _021EAB04 - 2 ; case 1 + .short _021EABB6 - _021EAB04 - 2 ; case 2 + .short _021EABC4 - _021EAB04 - 2 ; case 3 + .short _021EAC0E - _021EAB04 - 2 ; case 4 + .short _021EACC0 - _021EAB04 - 2 ; case 5 + .short _021EACEA - _021EAB04 - 2 ; case 6 + .short _021EACFA - _021EAB04 - 2 ; case 7 +_021EAB14: + mov r1, #0x1b + mov r0, #4 + lsl r1, r1, #4 + bl AllocFromHeap + mov r2, #0x1b + str r0, [r6, #0xc] + mov r1, #0 + lsl r2, r2, #4 + bl memset + ldr r4, [r6, #0xc] + mov r1, #4 + add r0, r4, #0 + mov r2, #1 + bl MOD05_021E3E14 + mov r0, #2 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + ldr r0, _021EAD5C ; =0x000927C0 + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [sp, #0xc] + add r0, r4, #0 + add r1, r4, r1 + mov r2, #0 + mov r3, #1 + bl MOD05_021E3E64 + mov r7, #0 + add r5, r4, #0 +_021EAB5A: + mov r0, #0 + mov r1, #0x4f + str r0, [sp] + lsl r1, r1, #2 + mov r2, #2 + mov r3, #6 + str r0, [sp, #4] + add r0, r4, #0 + add r1, r4, r1 + lsl r2, r2, #0x12 + lsl r3, r3, #0x10 + bl MOD05_021E3FC4 + mov r1, #0x17 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r5, r5, #4 + cmp r7, #4 + blt _021EAB5A + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021EAD4C +_021EAB9C: + mov r1, #0x10 + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #1 + sub r2, #0x20 + add r3, r6, #4 + bl MOD05_021E3474 + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021EAD4C +_021EABB6: + ldr r1, [r6, #4] + cmp r1, #0 + bne _021EABBE +_021EABBC: + b _021EAD4C +_021EABBE: + add r0, r0, #1 + str r0, [r6] + b _021EAD4C +_021EABC4: + mov r3, #6 + mov r2, #4 + lsl r3, r3, #6 + str r2, [sp] + add r0, r4, r3 + mov r1, #0 + lsl r2, r2, #0x11 + add r3, #0x1a + bl MOD05_021E3644 + mov r3, #0x66 + mov r0, #4 + mov r2, #0xa + lsl r3, r3, #2 + str r0, [sp] + add r0, r4, r3 + mov r1, #0 + lsl r2, r2, #0x10 + add r3, r3, #2 + bl MOD05_021E3644 + mov r7, #0 + add r5, r4, #0 +_021EABF2: + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + add r7, r7, #1 + add r5, r5, #4 + cmp r7, #4 + blt _021EABF2 + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021EAD4C +_021EAC0E: + mov r0, #6 + lsl r0, r0, #6 + mov r7, #0 + add r5, r4, r0 +_021EAC16: + add r0, r5, #0 + bl MOD05_021E36A4 + add r7, r7, #1 + add r5, #0x18 + str r0, [sp, #0x14] + cmp r7, #2 + blt _021EAC16 + mov r2, #6 + lsl r2, r2, #6 + ldr r3, [r4, r2] + mov r1, #2 + lsl r2, r2, #0xa + sub r2, r2, r3 + add r0, sp, #0x18 + lsl r1, r1, #0x12 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, sp, #0x18 + bl FUN_02020044 + mov r2, #6 + lsl r2, r2, #6 + ldr r3, [r4, r2] + mov r1, #2 + lsl r2, r2, #0xa + add r2, r3, r2 + add r0, sp, #0x18 + lsl r1, r1, #0x12 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x18 + bl FUN_02020044 + mov r1, #0x66 + lsl r1, r1, #2 + ldr r2, [r4, r1] + mov r1, #2 + lsl r1, r1, #0x12 + sub r1, r1, r2 + mov r2, #6 + add r0, sp, #0x18 + lsl r2, r2, #0x10 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x18 + bl FUN_02020044 + mov r1, #0x66 + lsl r1, r1, #2 + ldr r2, [r4, r1] + mov r1, #2 + lsl r1, r1, #0x12 + add r1, r2, r1 + mov r2, #6 + add r0, sp, #0x18 + lsl r2, r2, #0x10 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x18 + bl FUN_02020044 + ldr r0, [sp, #0x14] + cmp r0, #1 + bne _021EAD4C + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021EAD4C +_021EACC0: + ldr r0, [r6, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F4608 + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r2, #0 + str r0, [sp, #8] + mov r0, #3 + mov r1, #0x22 + add r3, r2, #0 + bl FUN_0200E1D0 + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021EAD4C +_021EACEA: + bl FUN_0200E308 + cmp r0, #1 + bne _021EAD4C + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] + b _021EAD4C +_021EACFA: + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, [r6, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F45E8 + ldr r1, [r6, #0x14] + cmp r1, #0 + beq _021EAD16 + mov r0, #1 + str r0, [r1] +_021EAD16: + mov r7, #0 + add r5, r4, #0 +_021EAD1A: + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_0201FFC8 + add r7, r7, #1 + add r5, r5, #4 + cmp r7, #4 + blt _021EAD1A + mov r1, #0x4f + lsl r1, r1, #2 + add r0, r4, #0 + add r1, r4, r1 + bl MOD05_021E3F3C + add r0, r4, #0 + bl MOD05_021E3E44 + ldr r1, [r6, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + ldr r0, [sp, #0x10] + bl FUN_0200621C +_021EAD4C: + ldr r0, [r6] + cmp r0, #7 + beq _021EAD58 + ldr r0, [r4] + bl FUN_0201FDEC +_021EAD58: + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 +_021EAD5C: .word 0x000927C0 + + thumb_func_start MOD05_021EAD60 +MOD05_021EAD60: ; 0x021EAD60 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x48 + str r0, [sp, #0x10] + add r0, r1, #0 + ldr r0, [r0] + str r1, [sp, #0x14] + ldr r4, [r1, #0xc] + cmp r0, #7 + bhi _021EAE6E + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021EAD7E: ; jump table + .short _021EAD8E - _021EAD7E - 2 ; case 0 + .short _021EAE1A - _021EAD7E - 2 ; case 1 + .short _021EAE3A - _021EAD7E - 2 ; case 2 + .short _021EAE5E - _021EAD7E - 2 ; case 3 + .short _021EAF9C - _021EAD7E - 2 ; case 4 + .short _021EAFAE - _021EAD7E - 2 ; case 5 + .short _021EAFDE - _021EAD7E - 2 ; case 6 + .short _021EAFF2 - _021EAD7E - 2 ; case 7 +_021EAD8E: + mov r1, #0x3d + mov r0, #4 + lsl r1, r1, #4 + bl AllocFromHeap + ldr r1, [sp, #0x14] + mov r2, #0x3d + str r0, [r1, #0xc] + mov r1, #0 + lsl r2, r2, #4 + bl memset + ldr r0, [sp, #0x14] + mov r1, #6 + ldr r4, [r0, #0xc] + mov r2, #1 + add r0, r4, #0 + bl MOD05_021E3E14 + mov r0, #2 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + ldr r0, _021EB138 ; =0x000927C0 + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [sp, #0xc] + add r0, r4, #0 + add r1, r4, r1 + mov r2, #0 + mov r3, #1 + bl MOD05_021E3E64 + mov r7, #0x4f + mov r6, #0 + add r5, r4, #0 + lsl r7, r7, #2 +_021EADDC: + mov r0, #0 + str r0, [sp] + mov r2, #0 + str r0, [sp, #4] + add r0, r4, #0 + add r1, r4, r7 + add r3, r2, #0 + bl MOD05_021E3FC4 + mov r1, #0x17 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #6 + blt _021EADDC + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021EB04A +_021EAE1A: + mov r0, #2 + str r0, [sp] + mov r0, #1 + add r1, r0, #0 + ldr r3, [sp, #0x14] + sub r1, #0x11 + add r2, r1, #0 + add r3, r3, #4 + bl MOD05_021E3474 + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021EB04A +_021EAE3A: + ldr r1, [sp, #0x14] + ldr r1, [r1, #4] + cmp r1, #0 + beq _021EAE6E + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + mov r0, #0xf2 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r1, [r4, r0] + add r0, r0, #4 + lsl r2, r1, #5 + ldr r1, _021EB13C ; =UNK05_021F7A50 + ldr r1, [r1, r2] + str r1, [r4, r0] + b _021EB04A +_021EAE5E: + mov r0, #0xf3 + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0 + blt _021EAE70 +_021EAE6E: + b _021EB04A +_021EAE70: + sub r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #8 + str r1, [sp] + mov r1, #0x86 + lsl r1, r1, #2 + add r2, r4, r1 + mov r1, #0x18 + mul r1, r0 + lsl r3, r0, #5 + add r0, r2, r1 + ldr r1, _021EB140 ; =UNK05_021F7A38 + ldr r2, _021EB144 ; =UNK05_021F7A3C + ldr r5, _021EB148 ; =UNK05_021F7A40 + ldr r1, [r1, r3] + ldr r2, [r2, r3] + ldr r3, [r5, r3] + bl MOD05_021E3644 + mov r0, #0xf2 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #8 + str r1, [sp] + mov r1, #0xaa + lsl r1, r1, #2 + add r2, r4, r1 + mov r1, #0x18 + mul r1, r0 + lsl r3, r0, #5 + add r0, r2, r1 + ldr r1, _021EB14C ; =UNK05_021F7A44 + ldr r2, _021EB150 ; =UNK05_021F7A48 + ldr r5, _021EB154 ; =UNK05_021F7A4C + ldr r1, [r1, r3] + ldr r2, [r2, r3] + ldr r3, [r5, r3] + bl MOD05_021E3644 + mov r0, #0x62 + lsl r0, r0, #2 + mov r1, #8 + add r3, r4, r0 + mov r0, #0xf2 + str r1, [sp] + lsl r0, r0, #2 + ldr r2, [r4, r0] + mov r0, #0x18 + mul r0, r2 + add r0, r3, r0 + ldr r3, _021EB158 ; =0xFFFFF99A + lsl r1, r1, #0xa + mov r2, #0x29 + bl MOD05_021E3644 + mov r0, #0xf2 + lsl r0, r0, #2 + ldr r2, [r4, r0] + sub r0, #0x90 + add r1, r4, r0 + mov r0, #0x14 + mul r0, r2 + lsl r3, r2, #5 + ldr r2, _021EB15C ; =UNK05_021F7A54 + add r0, r1, r0 + ldr r2, [r2, r3] + mov r1, #0 + mov r3, #8 + bl MOD05_021E35B0 + mov r0, #0xf2 + lsl r0, r0, #2 + ldr r0, [r4, r0] + lsl r0, r0, #2 + add r1, r4, r0 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xf2 + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldr r1, _021EB140 ; =UNK05_021F7A38 + lsl r3, r0, #5 + ldr r2, _021EB14C ; =UNK05_021F7A44 + ldr r1, [r1, r3] + ldr r2, [r2, r3] + add r0, sp, #0x3c + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0xf2 + lsl r0, r0, #2 + ldr r0, [r4, r0] + lsl r0, r0, #2 + add r1, r4, r0 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, sp, #0x3c + bl FUN_02020044 + mov r1, #2 + lsl r1, r1, #0xc + add r0, sp, #0x30 + add r2, r1, #0 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0xf2 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r2, #2 + lsl r0, r0, #2 + add r1, r4, r0 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, sp, #0x30 + bl FUN_02020074 + mov r1, #0xf2 + lsl r1, r1, #2 + ldr r0, [r4, r1] + mov r3, #1 + lsl r0, r0, #2 + add r2, r4, r0 + add r0, r1, #0 + sub r0, #0x18 + str r3, [r2, r0] + ldr r0, [r4, r1] + add r0, r0, #1 + str r0, [r4, r1] + ldr r0, [r4, r1] + cmp r0, #6 + blt _021EAF90 + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021EB04A +_021EAF90: + lsl r2, r0, #5 + ldr r0, _021EB13C ; =UNK05_021F7A50 + ldr r2, [r0, r2] + add r0, r1, #4 + str r2, [r4, r0] + b _021EB04A +_021EAF9C: + mov r1, #0xf1 + lsl r1, r1, #2 + ldr r1, [r4, r1] + cmp r1, #0 + bne _021EB04A + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021EB04A +_021EAFAE: + ldr r0, [sp, #0x14] + ldr r0, [r0, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F4608 + mov r0, #0xc + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r2, #0 + str r0, [sp, #8] + mov r0, #3 + mov r1, #0x22 + add r3, r2, #0 + bl FUN_0200E1D0 + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021EB04A +_021EAFDE: + bl FUN_0200E308 + cmp r0, #0 + beq _021EB04A + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021EB04A +_021EAFF2: + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, [sp, #0x14] + ldr r0, [r0, #0x10] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl MOD05_021F45E8 + ldr r0, [sp, #0x14] + ldr r1, [r0, #0x14] + cmp r1, #0 + beq _021EB012 + mov r0, #1 + str r0, [r1] +_021EB012: + mov r7, #0x17 + mov r6, #0 + add r5, r4, #0 + lsl r7, r7, #4 +_021EB01A: + ldr r0, [r5, r7] + bl FUN_0201FFC8 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #6 + blt _021EB01A + mov r1, #0x4f + lsl r1, r1, #2 + add r0, r4, #0 + add r1, r4, r1 + bl MOD05_021E3F3C + add r0, r4, #0 + bl MOD05_021E3E44 + ldr r1, [sp, #0x14] + mov r0, #4 + ldr r1, [r1, #0xc] + bl FreeToHeapExplicit + ldr r0, [sp, #0x10] + bl FUN_0200621C +_021EB04A: + mov r1, #0x86 + mov r0, #0 + lsl r1, r1, #2 + str r0, [sp, #0x18] + add r0, r4, r1 + str r0, [sp, #0x28] + add r0, r1, #0 + add r0, #0x90 + add r0, r4, r0 + sub r1, #0x90 + str r0, [sp, #0x24] + add r0, r4, r1 + str r0, [sp, #0x20] + mov r0, #0xce + lsl r0, r0, #2 + add r0, r4, r0 + add r5, r4, #0 + str r0, [sp, #0x1c] + add r6, r4, #0 + add r7, r4, #0 +_021EB072: + mov r0, #0x3b + lsl r0, r0, #4 + ldr r0, [r5, r0] + cmp r0, #1 + bne _021EB0FE + ldr r0, [sp, #0x28] + bl MOD05_021E36A4 + str r0, [sp, #0x2c] + ldr r0, [sp, #0x24] + bl MOD05_021E36A4 + ldr r0, [sp, #0x20] + bl MOD05_021E36A4 + ldr r0, [sp, #0x1c] + bl MOD05_021E35C0 + ldr r0, [sp, #0x2c] + cmp r0, #0 + beq _021EB0AE + mov r0, #0x3b + mov r1, #0 + lsl r0, r0, #4 + str r1, [r5, r0] + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_020200A0 +_021EB0AE: + mov r1, #0x86 + mov r2, #0xaa + lsl r1, r1, #2 + lsl r2, r2, #2 + ldr r1, [r6, r1] + ldr r2, [r6, r2] + add r0, sp, #0x3c + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, sp, #0x3c + bl FUN_02020044 + mov r0, #0x62 + lsl r0, r0, #2 + ldr r1, [r6, r0] + add r0, sp, #0x30 + add r2, r1, #0 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, sp, #0x30 + bl FUN_02020064 + mov r1, #0xce + lsl r1, r1, #2 + mov r0, #0x17 + ldr r1, [r7, r1] + lsl r0, r0, #4 + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + bl FUN_02020088 +_021EB0FE: + ldr r0, [sp, #0x28] + add r5, r5, #4 + add r0, #0x18 + str r0, [sp, #0x28] + ldr r0, [sp, #0x24] + add r6, #0x18 + add r0, #0x18 + str r0, [sp, #0x24] + ldr r0, [sp, #0x20] + add r7, #0x14 + add r0, #0x18 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + add r0, #0x14 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + add r0, r0, #1 + str r0, [sp, #0x18] + cmp r0, #6 + blt _021EB072 + ldr r0, [sp, #0x14] + ldr r0, [r0] + cmp r0, #7 + beq _021EB134 + ldr r0, [r4] + bl FUN_0201FDEC +_021EB134: + add sp, #0x48 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021EB138: .word 0x000927C0 +_021EB13C: .word UNK05_021F7A50 +_021EB140: .word UNK05_021F7A38 +_021EB144: .word UNK05_021F7A3C +_021EB148: .word UNK05_021F7A40 +_021EB14C: .word UNK05_021F7A44 +_021EB150: .word UNK05_021F7A48 +_021EB154: .word UNK05_021F7A4C +_021EB158: .word 0xFFFFF99A +_021EB15C: .word UNK05_021F7A54 + + thumb_func_start MOD05_021EB160 +MOD05_021EB160: ; 0x021EB160 + push {r4, r5, r6, lr} + sub sp, #0x18 + add r5, r1, #0 + add r6, r0, #0 + ldr r0, [r5] + ldr r4, [r5, #0xc] + cmp r0, #7 + bls _021EB172 + b _021EB3F2 +_021EB172: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021EB17E: ; jump table + .short _021EB18E - _021EB17E - 2 ; case 0 + .short _021EB272 - _021EB17E - 2 ; case 1 + .short _021EB28C - _021EB17E - 2 ; case 2 + .short _021EB29A - _021EB17E - 2 ; case 3 + .short _021EB2D4 - _021EB17E - 2 ; case 4 + .short _021EB312 - _021EB17E - 2 ; case 5 + .short _021EB344 - _021EB17E - 2 ; case 6 + .short _021EB374 - _021EB17E - 2 ; case 7 +_021EB18E: + mov r1, #0x6f + mov r0, #4 + lsl r1, r1, #2 + bl AllocFromHeap + mov r2, #0x6f + str r0, [r5, #0xc] + mov r1, #0 + lsl r2, r2, #2 + bl memset + ldr r4, [r5, #0xc] + mov r1, #1 + add r0, r4, #0 + add r0, #8 + add r2, r1, #0 + bl MOD05_021E3E14 + mov r0, #8 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #9 + str r0, [sp, #8] + ldr r0, _021EB404 ; =0x000927C0 + mov r1, #0x51 + str r0, [sp, #0xc] + add r0, r4, #0 + lsl r1, r1, #2 + mov r2, #1 + add r0, #8 + add r1, r4, r1 + add r3, r2, #0 + bl MOD05_021E3E64 + mov r0, #0 + str r0, [sp] + mov r1, #0x51 + str r0, [sp, #4] + add r0, r4, #0 + lsl r1, r1, #2 + mov r2, #2 + mov r3, #6 + add r0, #8 + add r1, r4, r1 + lsl r2, r2, #0x12 + lsl r3, r3, #0x10 + bl MOD05_021E3FC4 + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_02020398 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_02020238 + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + mov r0, #4 + bl MOD05_021E4688 + str r0, [r4, #4] + mov r0, #4 + mov r1, #1 + bl AllocWindows + str r0, [r4] + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + str r3, [sp, #0xc] + str r3, [sp, #0x10] + ldr r0, [r5, #0x10] + ldr r1, [r4] + ldr r0, [r0, #8] + mov r2, #3 + bl AddWindowParameterized + mov r1, #0 + add r0, sp, #0x14 + strh r1, [r0] + mov r0, #3 + add r1, sp, #0x14 + mov r2, #2 + mov r3, #0x1e + bl BG_LoadPlttData + ldr r0, [r4] + mov r1, #0 + bl FillWindowPixelBuffer + ldr r0, [r4] + bl ScheduleWindowCopyToVram + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EB3F2 +_021EB272: + mov r1, #0x10 + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #1 + sub r2, #0x20 + add r3, r5, #4 + bl MOD05_021E3474 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EB3F2 +_021EB28C: + ldr r1, [r5, #4] + cmp r1, #0 + bne _021EB294 + b _021EB3F2 +_021EB294: + add r0, r0, #1 + str r0, [r5] + b _021EB3F2 +_021EB29A: + mov r0, #0x19 + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #0 + mov r2, #0x10 + mov r3, #0xf + bl MOD05_021E35B0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x19 + lsl r0, r0, #4 + ldr r3, [r4, r0] + mov r0, #0x10 + sub r0, r0, r3 + str r0, [sp] + ldr r0, _021EB408 ; =0x04000050 + mov r1, #0 + mov r2, #0xf + bl G2x_SetBlendAlpha_ + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EB3F2 +_021EB2D4: + mov r0, #0x19 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD05_021E35C0 + mov r2, #0x19 + lsl r2, r2, #4 + ldr r1, [r4, r2] + mov r3, #0x10 + sub r3, r3, r1 + lsl r3, r3, #8 + orr r1, r3 + ldr r3, _021EB40C ; =0x04000052 + cmp r0, #1 + strh r1, [r3] + bne _021EB3F2 + mov r1, #0 + sub r0, r3, #2 + sub r2, #0x18 + strh r1, [r0] + ldr r0, [r4, r2] + bl FUN_02020398 + ldr r0, [r5] + mov r1, #0x10 + add r0, r0, #1 + str r0, [r5] + mov r0, #0x6e + lsl r0, r0, #2 + str r1, [r4, r0] + b _021EB3F2 +_021EB312: + mov r0, #0x6e + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0 + bgt _021EB3F2 + sub r0, #0x3c + add r0, r4, r0 + mov r1, #0 + mov r2, #0xe + mov r3, #0x10 + bl MOD05_021E35B0 + ldr r0, [r4, #4] + ldr r2, [r4] + mov r1, #0x10 + mov r3, #0xf + bl MOD05_021E46D4 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EB3F2 +_021EB344: + mov r0, #0x5f + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD05_021E35C0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r1, [r4, r0] + lsl r0, r1, #4 + orr r1, r0 + ldr r0, _021EB410 ; =0x0400004D + strb r1, [r0] + ldr r0, [r4, #4] + bl MOD05_021E4754 + cmp r0, #0 + beq _021EB36C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] +_021EB36C: + ldr r0, [r4] + bl ScheduleWindowCopyToVram + b _021EB3F2 +_021EB374: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, [r4, #4] + bl MOD05_021E46B4 + ldr r1, [r5, #0x14] + cmp r1, #0 + beq _021EB394 + mov r0, #1 + str r0, [r1] +_021EB394: + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0201FFC8 + mov r1, #0x51 + add r0, r4, #0 + lsl r1, r1, #2 + add r0, #8 + add r1, r4, r1 + bl MOD05_021E3F3C + add r0, r4, #0 + add r0, #8 + bl MOD05_021E3E44 + ldr r0, [r4] + bl ClearWindowTilemapAndCopyToVram + ldr r0, [r4] + bl RemoveWindow + ldr r0, [r4] + mov r1, #1 + bl WindowArray_dtor + mov r0, #3 + mov r1, #0x20 + mov r2, #0 + mov r3, #4 + bl BG_ClearCharDataRange + ldr r0, [r5, #0x10] + mov r1, #3 + ldr r0, [r0, #8] + bl BgClearTilemapBufferAndCommit + ldr r0, _021EB410 ; =0x0400004D + mov r1, #0 + strb r1, [r0] + ldr r1, [r5, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C +_021EB3F2: + ldr r0, [r5] + cmp r0, #7 + beq _021EB3FE + ldr r0, [r4, #8] + bl FUN_0201FDEC +_021EB3FE: + add sp, #0x18 + pop {r4, r5, r6, pc} + nop +_021EB404: .word 0x000927C0 +_021EB408: .word 0x04000050 +_021EB40C: .word 0x04000052 +_021EB410: .word 0x0400004D + + thumb_func_start MOD05_021EB414 +MOD05_021EB414: ; 0x021EB414 + push {r3, r4, r5, lr} + sub sp, #8 + add r4, r1, #0 + add r5, r0, #0 + ldrh r0, [r4, #8] + ldr r1, [r5, #0x20] + bl Camera_SetPerspectiveAngle + ldr r0, [r4] + ldr r1, [r5, #0x20] + bl Camera_SetDistance + ldrh r1, [r4, #4] + add r0, sp, #0 + strh r1, [r0] + ldrh r1, [r4, #6] + strh r1, [r0, #2] + mov r1, #0 + strh r1, [r0, #4] + ldr r1, [r5, #0x20] + add r0, sp, #0 + bl Camera_SetAngle + add sp, #8 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EB448 +MOD05_021EB448: ; 0x021EB448 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #7 + bls _021EB45A + b _021EB5A0 +_021EB45A: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021EB466: ; jump table + .short _021EB476 - _021EB466 - 2 ; case 0 + .short _021EB4AE - _021EB466 - 2 ; case 1 + .short _021EB4C6 - _021EB466 - 2 ; case 2 + .short _021EB4D4 - _021EB466 - 2 ; case 3 + .short _021EB4F8 - _021EB466 - 2 ; case 4 + .short _021EB534 - _021EB466 - 2 ; case 5 + .short _021EB556 - _021EB466 - 2 ; case 6 + .short _021EB56C - _021EB466 - 2 ; case 7 +_021EB476: + mov r0, #4 + mov r1, #0x10 + bl AllocFromHeap + str r0, [r4, #0xc] + mov r2, #0x10 + mov r1, #0 +_021EB484: + strb r1, [r0] + add r0, r0, #1 + sub r2, r2, #1 + bne _021EB484 + mov r0, #2 + mov r1, #0 + bl GX_EngineAToggleLayers + mov r0, #4 + mov r1, #0 + bl GX_EngineAToggleLayers + mov r0, #8 + mov r1, #0 + bl GX_EngineAToggleLayers + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB4AE: + mov r0, #1 + mov r1, #0x10 + str r0, [sp] + add r2, r1, #0 + add r3, r4, #4 + bl MOD05_021E3474 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB4C6: + ldr r1, [r4, #4] + cmp r1, #0 + beq _021EB5A0 + add r0, r0, #1 + add sp, #0xc + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB4D4: + mov r0, #3 + mov r1, #0xf + bl MOD05_021E8860 + mov r2, #0 + str r0, [r5] + mov r0, #0xc + add r1, r2, #0 + mul r1, r0 + ldr r0, _021EB5A4 ; =UNK05_021F7982 + str r2, [r5, #8] + ldrh r0, [r0, r1] + add sp, #0xc + str r0, [r5, #0xc] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB4F8: + ldr r0, [r5, #0xc] + sub r0, r0, #1 + str r0, [r5, #0xc] + bpl _021EB5A0 + ldr r2, [r5, #8] + mov r1, #0xc + ldr r3, _021EB5A8 ; =UNK05_021F7978 + mul r1, r2 + ldr r0, [r4, #0x10] + add r1, r3, r1 + bl MOD05_021EB414 + ldr r0, [r5, #8] + add r2, r0, #1 + str r2, [r5, #8] + cmp r2, #0x10 + blo _021EB524 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB524: + mov r0, #0xc + add r1, r2, #0 + mul r1, r0 + ldr r0, _021EB5A4 ; =UNK05_021F7982 + add sp, #0xc + ldrh r0, [r0, r1] + str r0, [r5, #0xc] + pop {r3, r4, r5, r6, pc} +_021EB534: + mov r0, #0xa + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r1, #0 + str r0, [sp, #8] + ldr r3, _021EB5AC ; =0x00007FFF + mov r0, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB556: + bl FUN_0200E308 + cmp r0, #0 + beq _021EB5A0 + mov r0, #0 + str r0, [r4, #4] + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB56C: + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + add r0, r5, #0 + bl MOD05_021E88C0 + ldr r0, _021EB5B0 ; =0x04000050 + mov r1, #0 + strh r1, [r0] + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _021EB58A + mov r0, #1 + str r0, [r1] +_021EB58A: + ldr r1, [r4, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 +_021EB5A0: + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .balign 4, 0 +_021EB5A4: .word UNK05_021F7982 +_021EB5A8: .word UNK05_021F7978 +_021EB5AC: .word 0x00007FFF +_021EB5B0: .word 0x04000050 + + thumb_func_start MOD05_021EB5B4 +MOD05_021EB5B4: ; 0x021EB5B4 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #9 + bhi _021EB636 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021EB5D0: ; jump table + .short _021EB5E4 - _021EB5D0 - 2 ; case 0 + .short _021EB618 - _021EB5D0 - 2 ; case 1 + .short _021EB630 - _021EB5D0 - 2 ; case 2 + .short _021EB640 - _021EB5D0 - 2 ; case 3 + .short _021EB66E - _021EB5D0 - 2 ; case 4 + .short _021EB698 - _021EB5D0 - 2 ; case 5 + .short _021EB6C6 - _021EB5D0 - 2 ; case 6 + .short _021EB6E8 - _021EB5D0 - 2 ; case 7 + .short _021EB70A - _021EB5D0 - 2 ; case 8 + .short _021EB720 - _021EB5D0 - 2 ; case 9 +_021EB5E4: + mov r0, #4 + mov r1, #0x38 + bl AllocFromHeap + mov r1, #0 + mov r2, #0x38 + str r0, [r4, #0xc] + bl memset + mov r0, #2 + mov r1, #0 + bl GX_EngineAToggleLayers + mov r0, #4 + mov r1, #0 + bl GX_EngineAToggleLayers + mov r0, #8 + mov r1, #0 + bl GX_EngineAToggleLayers + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB618: + mov r0, #1 + mov r1, #0x10 + str r0, [sp] + add r2, r1, #0 + add r3, r4, #4 + bl MOD05_021E3474 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB630: + ldr r1, [r4, #4] + cmp r1, #0 + bne _021EB638 +_021EB636: + b _021EB754 +_021EB638: + add r0, r0, #1 + add sp, #0xc + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB640: + mov r0, #5 + mov r1, #0xd + bl MOD05_021E8860 + str r0, [r5] + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x20] + bl Camera_GetPerspectiveAngle + mov r2, #1 + add r1, r0, #0 + add r5, #8 + lsl r2, r2, #8 + add r0, r5, #0 + add r2, r1, r2 + mov r3, #0x28 + bl MOD05_021E35B0 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB66E: + add r0, r5, #0 + add r0, #8 + bl MOD05_021E35C0 + add r6, r0, #0 + ldr r0, [r5, #8] + ldr r1, [r4, #0x10] + lsl r0, r0, #0x10 + ldr r1, [r1, #0x20] + lsr r0, r0, #0x10 + bl Camera_SetPerspectiveAngle + cmp r6, #1 + bne _021EB754 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + mov r0, #5 + str r0, [r5, #0x34] + pop {r3, r4, r5, r6, pc} +_021EB698: + ldr r0, [r5, #0x34] + sub r0, r0, #1 + str r0, [r5, #0x34] + bpl _021EB754 + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x20] + bl Camera_GetDistance + mov r3, #8 + str r3, [sp] + ldr r2, _021EB758 ; =0x0092E000 + add r1, r0, #0 + add r5, #0x1c + add r0, r5, #0 + sub r2, r1, r2 + lsl r3, r3, #8 + bl MOD05_021E3644 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB6C6: + add r0, r5, #0 + add r0, #0x1c + bl MOD05_021E36A4 + ldr r1, [r4, #0x10] + add r6, r0, #0 + ldr r0, [r5, #0x1c] + ldr r1, [r1, #0x20] + bl Camera_SetDistance + cmp r6, #1 + bne _021EB754 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB6E8: + mov r0, #0x3c + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r1, #0 + str r0, [sp, #8] + ldr r3, _021EB75C ; =0x00007FFF + mov r0, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB70A: + bl FUN_0200E308 + cmp r0, #0 + beq _021EB754 + mov r0, #0 + str r0, [r4, #4] + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021EB720: + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + add r0, r5, #0 + bl MOD05_021E88C0 + ldr r0, _021EB760 ; =0x04000050 + mov r1, #0 + strh r1, [r0] + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _021EB73E + mov r0, #1 + str r0, [r1] +_021EB73E: + ldr r1, [r4, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add r0, r6, #0 + bl FUN_0200621C + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 +_021EB754: + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .balign 4, 0 +_021EB758: .word 0x0092E000 +_021EB75C: .word 0x00007FFF +_021EB760: .word 0x04000050 + + thumb_func_start MOD05_021EB764 +MOD05_021EB764: ; 0x021EB764 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + add r5, r0, #0 + str r1, [sp, #0x14] + ldr r1, [r5] + add r6, r2, #0 + ldr r4, [r5, #0xc] + cmp r1, #0xe + bls _021EB778 + b _021EBB72 +_021EB778: + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021EB784: ; jump table + .short _021EB7A2 - _021EB784 - 2 ; case 0 + .short _021EB848 - _021EB784 - 2 ; case 1 + .short _021EB85E - _021EB784 - 2 ; case 2 + .short _021EB86A - _021EB784 - 2 ; case 3 + .short _021EB8B8 - _021EB784 - 2 ; case 4 + .short _021EB8D6 - _021EB784 - 2 ; case 5 + .short _021EB99C - _021EB784 - 2 ; case 6 + .short _021EB9EE - _021EB784 - 2 ; case 7 + .short _021EBA04 - _021EB784 - 2 ; case 8 + .short _021EBA34 - _021EB784 - 2 ; case 9 + .short _021EBA4A - _021EB784 - 2 ; case 10 + .short _021EBA72 - _021EB784 - 2 ; case 11 + .short _021EBA8A - _021EB784 - 2 ; case 12 + .short _021EBAAA - _021EB784 - 2 ; case 13 + .short _021EBB0E - _021EB784 - 2 ; case 14 +_021EB7A2: + mov r1, #0x1f + ldr r0, [sp, #0x14] + lsl r1, r1, #4 + bl AllocFromHeap + mov r2, #0x1f + str r0, [r5, #0xc] + mov r1, #0 + lsl r2, r2, #4 + bl memset + ldr r4, [r5, #0xc] + mov r1, #1 + add r0, r4, #0 + add r0, #0x44 + add r2, r1, #0 + bl MOD05_021E3E14 + mov r0, #0x17 + str r0, [sp] + mov r1, #0x18 + str r1, [sp, #4] + mov r0, #0x19 + str r0, [sp, #8] + ldr r0, _021EBB4C ; =0x000927C0 + lsl r1, r1, #4 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0x44 + add r1, r4, r1 + mov r2, #0x16 + mov r3, #1 + bl MOD05_021E3E64 + mov r0, #0 + str r0, [sp] + mov r1, #6 + str r0, [sp, #4] + add r0, r4, #0 + lsl r1, r1, #6 + mov r3, #0x11 + ldr r2, _021EBB50 ; =0xFFFE0000 + add r0, #0x44 + add r1, r4, r1 + lsl r3, r3, #0xe + bl MOD05_021E3FC4 + mov r1, #0x6d + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x6d + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #2 + bl FUN_020200EC + mov r0, #0 + str r0, [sp] + ldrh r0, [r6, #6] + ldr r1, [sp, #0x14] + mov r3, #0xa + str r0, [sp, #4] + mov r0, #0x6d + lsl r0, r0, #2 + ldrh r2, [r6, #4] + ldr r0, [r4, r0] + bl MOD05_021E4014 + ldr r0, [r5, #0x10] + ldr r0, [r0, #8] + bl MOD05_021E3C00 + bl MOD05_021E4788 + str r0, [r4, #0x40] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EB848: + mov r0, #1 + mov r1, #0x10 + str r0, [sp] + add r2, r1, #0 + add r3, r5, #4 + bl MOD05_021E3474 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EB85E: + ldr r0, [r5, #4] + cmp r0, #0 + beq _021EB8E6 + add r0, r1, #1 + str r0, [r5] + b _021EBB72 +_021EB86A: + ldr r3, [r5, #0x10] + mov r0, #0xd + ldr r3, [r3, #8] + mov r1, #0xc + mov r2, #0xb + bl MOD05_021E3D20 + mov r0, #0x79 + mov r2, #8 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] + mov r0, #0x10 + str r0, [sp] + mov r0, #0x1f + str r0, [sp, #4] + mov r0, #0x17 + str r0, [sp, #8] + ldr r1, [r4, #0x40] + add r0, r5, #0 + add r3, r2, #0 + bl MOD05_021E47BC + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + add r0, #0x2c + add r2, r1, #0 + mov r3, #0xf + bl MOD05_021E35EC + mov r0, #8 + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EB8B8: + bl MOD05_021E35AC + cmp r0, #0 + beq _021EB8E6 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + ldr r0, [r4, #0x40] + bl MOD05_021E47A0 + mov r0, #0x7b + mov r1, #0xa + lsl r0, r0, #2 + str r1, [r4, r0] + b _021EBB72 +_021EB8D6: + mov r0, #0x7b + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + blt _021EB8E8 +_021EB8E6: + b _021EBB72 +_021EB8E8: + mov r1, #2 + lsl r1, r1, #0xc + add r0, sp, #0x18 + add r2, r1, #0 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x6d + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x18 + bl FUN_02020064 + mov r0, #0 + str r0, [sp] + mov r0, #0x6e + lsl r0, r0, #2 + add r0, r4, r0 + str r0, [sp, #4] + mov r0, #0x11 + mov r2, #2 + lsl r0, r0, #0xe + mov r1, #0x62 + lsl r2, r2, #0xc + mov r3, #0x40 + bl MOD05_021E49F0 + ldr r3, _021EBB54 ; =0x04000048 + mov r0, #0x3f + ldrh r2, [r3] + mov r1, #0x1f + bic r2, r0 + orr r2, r1 + mov r1, #0x20 + orr r2, r1 + strh r2, [r3] + ldrh r2, [r3, #2] + bic r2, r0 + mov r0, #0xf + orr r0, r2 + orr r0, r1 + strh r0, [r3, #2] + lsl r0, r1, #0x15 + ldr r3, [r0] + ldr r2, _021EBB58 ; =0xFFFF1FFF + lsl r1, r1, #8 + and r2, r3 + orr r1, r2 + str r1, [r0] + mov r3, #4 + str r3, [sp] + ldr r1, _021EBB50 ; =0xFFFE0000 + ldr r2, [r6] + add r0, r4, #0 + lsl r3, r3, #0x10 + bl MOD05_021E3644 + mov r0, #0x6d + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x6d + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02020238 + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + mov r2, #0x11 + ldr r1, [r4] + add r0, sp, #0x24 + lsl r2, r2, #0xe + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x6d + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x24 + bl FUN_02020044 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EB99C: + add r0, r4, #0 + bl MOD05_021E36A4 + mov r2, #0x11 + add r6, r0, #0 + ldr r1, [r4] + add r0, sp, #0x24 + lsl r2, r2, #0xe + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x6d + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x24 + bl FUN_02020044 + mov r0, #0x6d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0202011C + mov r1, #0 + str r1, [sp] + mov r1, #0x6e + lsl r1, r1, #2 + add r1, r4, r1 + str r1, [sp, #4] + mov r2, #2 + ldr r0, [r0, #4] + mov r1, #0x62 + lsl r2, r2, #0xc + mov r3, #0x40 + bl MOD05_021E49F0 + cmp r6, #1 + bne _021EBA60 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EB9EE: + add r0, r4, #0 + add r0, #0x18 + mov r1, #0 + mov r2, #0x10 + mov r3, #3 + bl MOD05_021E35B0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EBA04: + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E35C0 + add r7, r0, #0 + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E4AD0 + cmp r7, #1 + bne _021EBA60 + mov r3, #0 + str r3, [sp] + mov r0, #0x6d + lsl r0, r0, #2 + ldrh r2, [r6, #4] + ldr r0, [r4, r0] + ldr r1, [sp, #0x14] + bl MOD05_021E3F68 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EBA34: + add r0, r4, #0 + add r0, #0x18 + mov r1, #0x10 + mov r2, #0 + mov r3, #3 + bl MOD05_021E35B0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EBA4A: + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E35C0 + add r6, r0, #0 + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E4AD0 + cmp r6, #1 + beq _021EBA62 +_021EBA60: + b _021EBB72 +_021EBA62: + ldr r0, [r5] + mov r1, #0x1a + add r0, r0, #1 + str r0, [r5] + mov r0, #0x7b + lsl r0, r0, #2 + str r1, [r4, r0] + b _021EBB72 +_021EBA72: + mov r0, #0x7b + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bge _021EBB72 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EBA8A: + mov r0, #0xf + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r1, #0 + str r0, [sp, #8] + ldr r3, _021EBB5C ; =0x00007FFF + mov r0, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EBAAA: + add r0, r4, #0 + add r0, #0x2c + bl MOD05_021E35FC + mov r2, #1 + ldr r3, [r4, #0x2c] + lsl r2, r2, #0xc + add r1, r3, r2 + add r2, r3, r2 + add r0, sp, #0x18 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x6d + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x18 + bl FUN_02020064 + mov r0, #0x6d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0202011C + add r6, r0, #0 + ldr r0, [r4, #0x2c] + mov r1, #0x44 + mov r2, #0x1e + bl MOD05_021E4A3C + add r1, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #0x6e + lsl r0, r0, #2 + add r0, r4, r0 + str r0, [sp, #4] + ldr r0, [r6, #4] + ldr r2, [sp, #0x1c] + mov r3, #0x40 + bl MOD05_021E49F0 + bl FUN_0200E308 + cmp r0, #0 + beq _021EBB72 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EBB72 +_021EBB0E: + ldr r1, _021EBB5C ; =0x00007FFF + mov r0, #1 + bl FUN_0200E3A0 + ldr r1, [r5, #0x14] + cmp r1, #0 + beq _021EBB20 + mov r0, #1 + str r0, [r1] +_021EBB20: + mov r0, #0x6d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0201FFC8 + mov r1, #6 + add r0, r4, #0 + lsl r1, r1, #6 + add r0, #0x44 + add r1, r4, r1 + bl MOD05_021E3F3C + add r4, #0x44 + add r0, r4, #0 + bl MOD05_021E3E44 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021EBB58 ; =0xFFFF1FFF + b _021EBB60 + nop +_021EBB4C: .word 0x000927C0 +_021EBB50: .word 0xFFFE0000 +_021EBB54: .word 0x04000048 +_021EBB58: .word 0xFFFF1FFF +_021EBB5C: .word 0x00007FFF +_021EBB60: + and r0, r1 + str r0, [r2] + ldr r1, [r5, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add sp, #0x30 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021EBB72: + mov r1, #0x79 + lsl r1, r1, #2 + ldr r0, [r4, r1] + cmp r0, #1 + bne _021EBBB6 + ldr r3, [r4, #0x2c] + mov r0, #0 + str r3, [sp] + str r0, [sp, #4] + mov r0, #0x80 + str r0, [sp, #8] + mov r0, #0x44 + str r0, [sp, #0xc] + add r0, r1, #4 + ldr r0, [r4, r0] + sub r1, #0x24 + str r0, [sp, #0x10] + add r0, r4, r1 + ldr r1, [r5, #0x10] + mov r2, #3 + ldr r1, [r1, #8] + bl MOD05_021E3DA0 + mov r3, #0x7a + lsl r3, r3, #2 + ldr r0, [r4, r3] + sub r0, #0xf + lsr r2, r0, #0x1f + lsl r1, r0, #0x17 + sub r1, r1, r2 + mov r0, #0x17 + ror r1, r0 + add r0, r2, r1 + str r0, [r4, r3] +_021EBBB6: + ldr r0, [r5] + cmp r0, #0xe + beq _021EBBC2 + ldr r0, [r4, #0x44] + bl FUN_0201FDEC +_021EBBC2: + mov r0, #0 + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EBBC8 +MOD05_021EBBC8: ; 0x021EBBC8 + push {r4, lr} + ldr r2, _021EBBE4 ; =UNK05_021F7938 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EB764 + cmp r0, #1 + bne _021EBBE0 + add r0, r4, #0 + bl FUN_0200621C +_021EBBE0: + pop {r4, pc} + nop +_021EBBE4: .word UNK05_021F7938 + + thumb_func_start MOD05_021EBBE8 +MOD05_021EBBE8: ; 0x021EBBE8 + push {r4, lr} + ldr r2, _021EBC04 ; =UNK05_021F7940 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EB764 + cmp r0, #1 + bne _021EBC00 + add r0, r4, #0 + bl FUN_0200621C +_021EBC00: + pop {r4, pc} + nop +_021EBC04: .word UNK05_021F7940 + + thumb_func_start MOD05_021EBC08 +MOD05_021EBC08: ; 0x021EBC08 + push {r4, lr} + ldr r2, _021EBC24 ; =UNK05_021F7948 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EB764 + cmp r0, #1 + bne _021EBC20 + add r0, r4, #0 + bl FUN_0200621C +_021EBC20: + pop {r4, pc} + nop +_021EBC24: .word UNK05_021F7948 + + thumb_func_start MOD05_021EBC28 +MOD05_021EBC28: ; 0x021EBC28 + push {r4, lr} + ldr r2, _021EBC44 ; =UNK05_021F7950 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EB764 + cmp r0, #1 + bne _021EBC40 + add r0, r4, #0 + bl FUN_0200621C +_021EBC40: + pop {r4, pc} + nop +_021EBC44: .word UNK05_021F7950 + + thumb_func_start MOD05_021EBC48 +MOD05_021EBC48: ; 0x021EBC48 + push {r4, lr} + ldr r2, _021EBC64 ; =UNK05_021F7958 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EB764 + cmp r0, #1 + bne _021EBC60 + add r0, r4, #0 + bl FUN_0200621C +_021EBC60: + pop {r4, pc} + nop +_021EBC64: .word UNK05_021F7958 + + thumb_func_start MOD05_021EBC68 +MOD05_021EBC68: ; 0x021EBC68 + push {r4, lr} + ldr r2, _021EBC84 ; =UNK05_021F7960 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EB764 + cmp r0, #1 + bne _021EBC80 + add r0, r4, #0 + bl FUN_0200621C +_021EBC80: + pop {r4, pc} + nop +_021EBC84: .word UNK05_021F7960 + + thumb_func_start MOD05_021EBC88 +MOD05_021EBC88: ; 0x021EBC88 + push {r4, lr} + ldr r2, _021EBCA4 ; =UNK05_021F7968 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EB764 + cmp r0, #1 + bne _021EBCA0 + add r0, r4, #0 + bl FUN_0200621C +_021EBCA0: + pop {r4, pc} + nop +_021EBCA4: .word UNK05_021F7968 + + thumb_func_start MOD05_021EBCA8 +MOD05_021EBCA8: ; 0x021EBCA8 + push {r4, lr} + ldr r2, _021EBCC4 ; =UNK05_021F7970 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EB764 + cmp r0, #1 + bne _021EBCC0 + add r0, r4, #0 + bl FUN_0200621C +_021EBCC0: + pop {r4, pc} + nop +_021EBCC4: .word UNK05_021F7970 + + thumb_func_start MOD05_021EBCC8 +MOD05_021EBCC8: ; 0x021EBCC8 + push {r3, lr} + ldr r0, [r0, #0xc] + bl Sav2_PlayerData_GetProfileAddr + bl PlayerProfile_GetTrainerGender + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EBCD8 +MOD05_021EBCD8: ; 0x021EBCD8 + push {r4, r5, r6, r7, lr} + sub sp, #0x4c + add r5, r0, #0 + ldr r0, [r5] + str r1, [sp, #0x10] + str r2, [sp, #0x14] + ldr r4, [r5, #0xc] + cmp r0, #0x13 + bls _021EBCEC + b _021EC3A0 +_021EBCEC: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021EBCF8: ; jump table + .short _021EBD20 - _021EBCF8 - 2 ; case 0 + .short _021EBEC0 - _021EBCF8 - 2 ; case 1 + .short _021EBED6 - _021EBCF8 - 2 ; case 2 + .short _021EBEE4 - _021EBCF8 - 2 ; case 3 + .short _021EBF6C - _021EBCF8 - 2 ; case 4 + .short _021EBFBA - _021EBCF8 - 2 ; case 5 + .short _021EBFD0 - _021EBCF8 - 2 ; case 6 + .short _021EC002 - _021EBCF8 - 2 ; case 7 + .short _021EC018 - _021EBCF8 - 2 ; case 8 + .short _021EC038 - _021EBCF8 - 2 ; case 9 + .short _021EC0D4 - _021EBCF8 - 2 ; case 10 + .short _021EC122 - _021EBCF8 - 2 ; case 11 + .short _021EC138 - _021EBCF8 - 2 ; case 12 + .short _021EC16A - _021EBCF8 - 2 ; case 13 + .short _021EC180 - _021EBCF8 - 2 ; case 14 + .short _021EC19E - _021EBCF8 - 2 ; case 15 + .short _021EC1E8 - _021EBCF8 - 2 ; case 16 + .short _021EC21C - _021EBCF8 - 2 ; case 17 + .short _021EC284 - _021EBCF8 - 2 ; case 18 + .short _021EC342 - _021EBCF8 - 2 ; case 19 +_021EBD20: + mov r1, #0x9b + ldr r0, [sp, #0x10] + lsl r1, r1, #2 + bl AllocFromHeap + mov r2, #0x9b + str r0, [r5, #0xc] + mov r1, #0 + lsl r2, r2, #2 + bl memset + ldr r4, [r5, #0xc] + mov r1, #4 + add r0, r4, #0 + add r0, #0x44 + mov r2, #3 + bl MOD05_021E3E14 + mov r0, #0x17 + str r0, [sp] + mov r1, #0x18 + str r1, [sp, #4] + mov r0, #0x19 + str r0, [sp, #8] + ldr r0, _021EC0C0 ; =0x000927C0 + lsl r1, r1, #4 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0x44 + add r1, r4, r1 + mov r2, #0x16 + mov r3, #1 + bl MOD05_021E3E64 + mov r0, #0x17 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #0x19 + str r0, [sp, #8] + ldr r0, _021EC0C4 ; =0x000927C1 + mov r1, #0x6d + str r0, [sp, #0xc] + add r0, r4, #0 + lsl r1, r1, #2 + add r0, #0x44 + add r1, r4, r1 + mov r2, #0x16 + mov r3, #1 + bl MOD05_021E3E64 + mov r0, #0xf + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + mov r0, #0x11 + str r0, [sp, #8] + ldr r0, _021EC0C8 ; =0x000927C2 + mov r1, #0x7a + str r0, [sp, #0xc] + ldr r2, [sp, #0x14] + add r0, r4, #0 + lsl r1, r1, #2 + ldrb r2, [r2, #6] + add r0, #0x44 + add r1, r4, r1 + mov r3, #0xc + bl MOD05_021E3E64 + mov r1, #2 + lsl r1, r1, #0xc + add r0, sp, #0x34 + add r2, r1, #0 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #6 + lsl r0, r0, #6 + add r0, r4, r0 + str r0, [sp, #0x18] + str r0, [sp, #0x20] + add r0, r4, #0 + str r0, [sp, #0x24] + add r0, #0x44 + mov r7, #0 + add r6, r4, #0 + str r0, [sp, #0x24] +_021EBDCE: + cmp r7, #3 + bge _021EBDDA + mov r0, #0 + ldr r1, [sp, #0x18] + str r0, [sp, #0x1c] + b _021EBDEA +_021EBDDA: + sub r1, r7, #1 + mov r0, #0x34 + add r2, r1, #0 + mul r2, r0 + ldr r0, [sp, #0x20] + add r1, r0, r2 + mov r0, #1 + str r0, [sp, #0x1c] +_021EBDEA: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r2, #0 + ldr r0, [sp, #0x24] + add r3, r2, #0 + bl MOD05_021E3FC4 + mov r1, #0x87 + lsl r1, r1, #2 + str r0, [r6, r1] + add r0, r1, #0 + ldr r0, [r6, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x87 + lsl r0, r0, #2 + ldr r0, [r6, r0] + ldr r1, [sp, #0x1c] + bl FUN_02020130 + ldr r0, [sp, #0x18] + add r7, r7, #1 + add r0, #0x34 + add r6, r6, #4 + str r0, [sp, #0x18] + cmp r7, #4 + blt _021EBDCE + ldr r0, [r5, #0x10] + bl MOD05_021EBCC8 + cmp r0, #0 + bne _021EBE48 + mov r2, #0 + str r2, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x87 + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldr r1, [sp, #0x10] + mov r3, #0xa + bl MOD05_021E4014 + mov r1, #0 + b _021EBE60 +_021EBE48: + mov r0, #0 + str r0, [sp] + mov r2, #1 + mov r0, #0x87 + str r2, [sp, #4] + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldr r1, [sp, #0x10] + mov r3, #0xa + bl MOD05_021E4014 + mov r1, #1 +_021EBE60: + mov r0, #0x99 + lsl r0, r0, #2 + str r1, [r4, r0] + mov r0, #0x87 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #2 + bl FUN_020200EC + mov r0, #0x87 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x34 + bl FUN_02020064 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, [sp, #0x14] + mov r0, #0x22 + lsl r0, r0, #4 + ldrb r2, [r2, #5] + ldr r0, [r4, r0] + ldr r1, [sp, #0x10] + mov r3, #0xa + bl MOD05_021E4014 + mov r0, #0x22 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #2 + bl FUN_020200EC + mov r0, #0x22 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, sp, #0x34 + bl FUN_02020064 + mov r0, #0x10 + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EBEC0: + mov r0, #1 + mov r1, #0x10 + str r0, [sp] + add r2, r1, #0 + add r3, r5, #4 + bl MOD05_021E3474 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EBED6: + ldr r1, [r5, #4] + cmp r1, #0 + bne _021EBEDE + b _021EC3A0 +_021EBEDE: + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EBEE4: + mov r0, #6 + mov r2, #0x2e + mov r3, #1 + str r0, [sp] + ldr r1, _021EC0CC ; =0xFFFB0000 + add r0, r4, #0 + lsl r2, r2, #0xc + lsl r3, r3, #0x12 + bl MOD05_021E3644 + mov r2, #0x72 + ldr r1, [r4] + add r0, sp, #0x40 + lsl r2, r2, #0xc + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x87 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + mov r0, #9 + ldr r1, [sp, #0x44] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x44] + mov r0, #1 + ldr r1, [sp, #0x40] + lsl r0, r0, #0x10 + add r0, r1, r0 + str r0, [sp, #0x40] + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + mov r0, #0x87 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x89 + lsl r0, r0, #2 + mov r1, #1 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl FUN_020200D8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EBF6C: + add r0, r4, #0 + bl MOD05_021E36A4 + mov r2, #0x72 + add r6, r0, #0 + ldr r1, [r4] + add r0, sp, #0x40 + lsl r2, r2, #0xc + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x87 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + mov r0, #9 + ldr r1, [sp, #0x44] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x44] + mov r0, #1 + ldr r1, [sp, #0x40] + lsl r0, r0, #0x10 + add r0, r1, r0 + str r0, [sp, #0x40] + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + cmp r6, #1 + bne _021EC02E + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EBFBA: + add r0, r4, #0 + add r0, #0x30 + mov r1, #0 + mov r2, #0x10 + mov r3, #3 + bl MOD05_021E35B0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EBFD0: + add r0, r4, #0 + add r0, #0x30 + bl MOD05_021E35C0 + add r6, r0, #0 + add r0, r4, #0 + add r0, #0x30 + bl MOD05_021E4AD0 + cmp r6, #1 + bne _021EC02E + mov r3, #0 + mov r2, #0x87 + str r3, [sp] + lsl r2, r2, #2 + ldr r0, [r4, r2] + add r2, #0x48 + ldr r1, [sp, #0x10] + ldr r2, [r4, r2] + bl MOD05_021E3F68 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC002: + add r0, r4, #0 + add r0, #0x30 + mov r1, #0x10 + mov r2, #0 + mov r3, #3 + bl MOD05_021E35B0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC018: + add r0, r4, #0 + add r0, #0x30 + bl MOD05_021E35C0 + add r6, r0, #0 + add r0, r4, #0 + add r0, #0x30 + bl MOD05_021E4AD0 + cmp r6, #1 + beq _021EC030 +_021EC02E: + b _021EC3A0 +_021EC030: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC038: + mov r0, #6 + mov r1, #0x15 + mov r2, #0xd + str r0, [sp] + ldr r3, _021EC0D0 ; =0xFFFC0000 + add r0, r4, #0 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + bl MOD05_021E3644 + mov r2, #0x11 + ldr r1, [r4] + add r0, sp, #0x40 + lsl r2, r2, #0xe + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x22 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + mov r0, #9 + ldr r1, [sp, #0x44] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x44] + mov r0, #1 + ldr r1, [sp, #0x40] + lsl r0, r0, #0x10 + sub r0, r1, r0 + str r0, [sp, #0x40] + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + mov r0, #0x22 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x8a + lsl r0, r0, #2 + mov r1, #1 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl FUN_020200D8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 + .balign 4, 0 +_021EC0C0: .word 0x000927C0 +_021EC0C4: .word 0x000927C1 +_021EC0C8: .word 0x000927C2 +_021EC0CC: .word 0xFFFB0000 +_021EC0D0: .word 0xFFFC0000 +_021EC0D4: + add r0, r4, #0 + bl MOD05_021E36A4 + mov r2, #0x11 + add r6, r0, #0 + ldr r1, [r4] + add r0, sp, #0x40 + lsl r2, r2, #0xe + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x22 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + mov r0, #9 + ldr r1, [sp, #0x44] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x44] + mov r0, #1 + ldr r1, [sp, #0x40] + lsl r0, r0, #0x10 + sub r0, r1, r0 + str r0, [sp, #0x40] + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + cmp r6, #1 + bne _021EC212 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC122: + add r0, r4, #0 + add r0, #0x30 + mov r1, #0 + mov r2, #0x10 + mov r3, #3 + bl MOD05_021E35B0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC138: + add r0, r4, #0 + add r0, #0x30 + bl MOD05_021E35C0 + add r6, r0, #0 + add r0, r4, #0 + add r0, #0x30 + bl MOD05_021E4AD0 + cmp r6, #1 + bne _021EC212 + mov r3, #0 + mov r0, #0x22 + ldr r2, [sp, #0x14] + str r3, [sp] + lsl r0, r0, #4 + ldrb r2, [r2, #5] + ldr r0, [r4, r0] + ldr r1, [sp, #0x10] + bl MOD05_021E3F68 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC16A: + add r0, r4, #0 + add r0, #0x30 + mov r1, #0x10 + mov r2, #0 + mov r3, #3 + bl MOD05_021E35B0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC180: + add r0, r4, #0 + add r0, #0x30 + bl MOD05_021E35C0 + add r6, r0, #0 + add r0, r4, #0 + add r0, #0x30 + bl MOD05_021E4AD0 + cmp r6, #1 + bne _021EC212 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC19E: + ldr r0, [r5, #0x10] + mov r1, #0x8b + ldr r0, [r0, #0x20] + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r1, [r4, r1] + add r0, sp, #0x2c + bl Camera_GetAngle + add r1, sp, #0x2c + mov r2, #0x92 + ldrh r0, [r1] + lsl r2, r2, #2 + strh r0, [r4, r2] + ldrh r3, [r1, #2] + add r0, r2, #2 + strh r3, [r4, r0] + ldrh r3, [r1, #4] + add r0, r2, #4 + strh r3, [r4, r0] + ldrh r1, [r1, #6] + add r0, r2, #6 + ldr r3, [sp, #0x14] + strh r1, [r4, r0] + ldrh r1, [r4, r2] + add r2, #8 + add r0, r4, r2 + ldr r2, [sp, #0x14] + ldrb r3, [r3, #4] + ldr r2, [r2] + add r2, r1, r2 + bl MOD05_021E35B0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC1E8: + mov r0, #0x25 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD05_021E35C0 + mov r1, #0x25 + lsl r1, r1, #4 + add r6, r0, #0 + add r0, r1, #0 + ldr r2, [r4, r1] + sub r0, #8 + strh r2, [r4, r0] + add r0, r1, #0 + sub r1, #0x24 + sub r0, #8 + ldr r1, [r4, r1] + add r0, r4, r0 + bl Camera_SetAngle + cmp r6, #1 + beq _021EC214 +_021EC212: + b _021EC3A0 +_021EC214: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC21C: + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl Camera_GetDistance + add r1, r0, #0 + mov r0, #0x1e + str r0, [sp] + mov r0, #0x23 + mov r2, #0xfa + lsl r0, r0, #4 + lsl r2, r2, #0xc + add r0, r4, r0 + sub r2, r1, r2 + mov r3, #0 + bl MOD05_021E3644 + mov r0, #0x1e + mov r1, #0 + mov r2, #6 + str r0, [sp] + add r0, r4, #0 + lsl r2, r2, #0x10 + add r3, r1, #0 + bl MOD05_021E3644 + mov r0, #0x1e + str r0, [sp] + add r0, r4, #0 + mov r1, #0 + mov r2, #6 + add r0, #0x18 + lsl r2, r2, #0x10 + add r3, r1, #0 + bl MOD05_021E3644 + mov r0, #0x1e + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + mov r1, #0 + str r0, [sp, #8] + ldr r3, _021EC3B4 ; =0x00007FFF + mov r0, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC284: + mov r0, #0x23 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD05_021E36A4 + add r0, r4, #0 + bl MOD05_021E36A4 + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E36A4 + mov r1, #0x23 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, r1, #4 + ldr r1, [r4, r1] + bl Camera_SetDistance + mov r1, #0x2e + ldr r2, [r4] + lsl r1, r1, #0xc + sub r1, r1, r2 + mov r2, #0x72 + ldr r3, [r4, #0x18] + lsl r2, r2, #0xc + add r2, r3, r2 + add r0, sp, #0x40 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x87 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + mov r0, #9 + ldr r1, [sp, #0x44] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x44] + mov r0, #1 + ldr r1, [sp, #0x40] + lsl r0, r0, #0x10 + add r0, r1, r0 + str r0, [sp, #0x40] + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + mov r1, #0xd + ldr r2, [r4] + lsl r1, r1, #0x10 + add r1, r2, r1 + mov r2, #0x11 + ldr r3, [r4, #0x18] + lsl r2, r2, #0xe + sub r2, r2, r3 + add r0, sp, #0x40 + mov r3, #0 + bl MOD05_021E3FF8 + mov r0, #0x22 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + mov r0, #9 + ldr r1, [sp, #0x44] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x44] + mov r0, #1 + ldr r1, [sp, #0x40] + lsl r0, r0, #0x10 + sub r0, r1, r0 + str r0, [sp, #0x40] + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, sp, #0x40 + bl FUN_02020044 + bl FUN_0200E308 + cmp r0, #0 + beq _021EC3A0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021EC3A0 +_021EC342: + ldr r1, _021EC3B4 ; =0x00007FFF + mov r0, #1 + bl FUN_0200E3A0 + ldr r1, [r5, #0x14] + cmp r1, #0 + beq _021EC354 + mov r0, #1 + str r0, [r1] +_021EC354: + mov r7, #0 + add r6, r4, #0 +_021EC358: + mov r0, #0x87 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_0201FFC8 + add r7, r7, #1 + add r6, r6, #4 + cmp r7, #4 + blt _021EC358 + mov r0, #6 + lsl r0, r0, #6 + add r6, r4, r0 + add r0, r4, #0 + str r0, [sp, #0x28] + add r0, #0x44 + mov r7, #0 + str r0, [sp, #0x28] +_021EC37A: + ldr r0, [sp, #0x28] + add r1, r6, #0 + bl MOD05_021E3F3C + add r7, r7, #1 + add r6, #0x34 + cmp r7, #3 + blt _021EC37A + add r4, #0x44 + add r0, r4, #0 + bl MOD05_021E3E44 + ldr r1, [r5, #0xc] + mov r0, #4 + bl FreeToHeapExplicit + add sp, #0x4c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021EC3A0: + ldr r0, [r5] + cmp r0, #0x13 + beq _021EC3AC + ldr r0, [r4, #0x44] + bl FUN_0201FDEC +_021EC3AC: + mov r0, #0 + add sp, #0x4c + pop {r4, r5, r6, r7, pc} + nop +_021EC3B4: .word 0x00007FFF + + thumb_func_start MOD05_021EC3B8 +MOD05_021EC3B8: ; 0x021EC3B8 + push {r4, lr} + ldr r2, _021EC3D4 ; =UNK05_021F7910 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EBCD8 + cmp r0, #1 + bne _021EC3D0 + add r0, r4, #0 + bl FUN_0200621C +_021EC3D0: + pop {r4, pc} + nop +_021EC3D4: .word UNK05_021F7910 + + thumb_func_start MOD05_021EC3D8 +MOD05_021EC3D8: ; 0x021EC3D8 + push {r4, lr} + ldr r2, _021EC3F4 ; =UNK05_021F7918 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EBCD8 + cmp r0, #1 + bne _021EC3F0 + add r0, r4, #0 + bl FUN_0200621C +_021EC3F0: + pop {r4, pc} + nop +_021EC3F4: .word UNK05_021F7918 + + thumb_func_start MOD05_021EC3F8 +MOD05_021EC3F8: ; 0x021EC3F8 + push {r4, lr} + ldr r2, _021EC414 ; =UNK05_021F7920 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EBCD8 + cmp r0, #1 + bne _021EC410 + add r0, r4, #0 + bl FUN_0200621C +_021EC410: + pop {r4, pc} + nop +_021EC414: .word UNK05_021F7920 + + thumb_func_start MOD05_021EC418 +MOD05_021EC418: ; 0x021EC418 + push {r4, lr} + ldr r2, _021EC434 ; =UNK05_021F7928 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EBCD8 + cmp r0, #1 + bne _021EC430 + add r0, r4, #0 + bl FUN_0200621C +_021EC430: + pop {r4, pc} + nop +_021EC434: .word UNK05_021F7928 + + thumb_func_start MOD05_021EC438 +MOD05_021EC438: ; 0x021EC438 + push {r4, lr} + ldr r2, _021EC454 ; =UNK05_021F7930 + add r4, r0, #0 + add r0, r1, #0 + mov r1, #4 + bl MOD05_021EBCD8 + cmp r0, #1 + bne _021EC450 + add r0, r4, #0 + bl FUN_0200621C +_021EC450: + pop {r4, pc} + nop +_021EC454: .word UNK05_021F7930 + + .section .rodata + + .global UNK05_021F7910 +UNK05_021F7910: ; 0x021F7910 + .byte 0xDC, 0x05, 0x00, 0x00, 0x0F, 0x41, 0x0E, 0x00 + + .global UNK05_021F7918 +UNK05_021F7918: ; 0x021F7918 + .byte 0xDC, 0x05, 0x00, 0x00 + .byte 0x0F, 0x42, 0x12, 0x00 + + .global UNK05_021F7920 +UNK05_021F7920: ; 0x021F7920 + .byte 0xDC, 0x05, 0x00, 0x00, 0x0F, 0x43, 0x13, 0x00 + + .global UNK05_021F7928 +UNK05_021F7928: ; 0x021F7928 + .byte 0xDC, 0x05, 0x00, 0x00 + .byte 0x0F, 0x44, 0x14, 0x00 + + .global UNK05_021F7930 +UNK05_021F7930: ; 0x021F7930 + .byte 0xB8, 0x0B, 0x00, 0x00, 0x1E, 0x45, 0x15, 0x00 + + .global UNK05_021F7938 +UNK05_021F7938: ; 0x021F7938 + .byte 0x00, 0x00, 0x0B, 0x00 + .byte 0x3E, 0x00, 0x01, 0x00 + + .global UNK05_021F7940 +UNK05_021F7940: ; 0x021F7940 + .byte 0x00, 0x00, 0x0B, 0x00, 0x4A, 0x00, 0x01, 0x00 + + .global UNK05_021F7948 +UNK05_021F7948: ; 0x021F7948 + .byte 0x00, 0x00, 0x0C, 0x00 + .byte 0x4B, 0x00, 0x00, 0x00 + + .global UNK05_021F7950 +UNK05_021F7950: ; 0x021F7950 + .byte 0x00, 0x00, 0x0B, 0x00, 0x4C, 0x00, 0x01, 0x00 + + .global UNK05_021F7958 +UNK05_021F7958: ; 0x021F7958 + .byte 0x00, 0x00, 0x0C, 0x00 + .byte 0x4D, 0x00, 0x01, 0x00 + + .global UNK05_021F7960 +UNK05_021F7960: ; 0x021F7960 + .byte 0x00, 0x00, 0x0B, 0x00, 0x4E, 0x00, 0x01, 0x00 + + .global UNK05_021F7968 +UNK05_021F7968: ; 0x021F7968 + .byte 0x00, 0x00, 0x0B, 0x00 + .byte 0x40, 0x00, 0x01, 0x00 + + .global UNK05_021F7970 +UNK05_021F7970: ; 0x021F7970 + .byte 0x00, 0x00, 0x0B, 0x00, 0x4F, 0x00, 0x01, 0x00 + + .global UNK05_021F7978 +UNK05_021F7978: ; 0x021F7978 + .byte 0xC1, 0xAE, 0x29, 0x00 + .byte 0x02, 0xD6, 0x00, 0x00, 0xC1, 0x05 + + .global UNK05_021F7982 +UNK05_021F7982: ; 0x021F7982 + .byte 0x04, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xCF, 0x00, 0xFF + .byte 0x01, 0x06, 0x04, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE6, 0x00, 0x10, 0x91, 0x06, 0x04, 0x00 + .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x0A, 0x11, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00 + .byte 0x02, 0xE1, 0x00, 0xF0, 0x80, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xC6, 0x00, 0x00 + .byte 0x51, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xF0, 0x00, 0x08, 0x03, 0x00 + .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x00, 0x02, 0x08, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00 + .byte 0x02, 0xD0, 0x00, 0x10, 0x00, 0x08, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD9, 0x00, 0xF5 + .byte 0x51, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD0, 0x00, 0x0A, 0xC1, 0x04, 0x02, 0x00 + .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xF0, 0xC1, 0x03, 0x02, 0x00, 0xC1, 0xAE, 0x29, 0x00 + .byte 0x02, 0xD0, 0x00, 0xF0, 0x50, 0x06, 0x01, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xA0 + .byte 0x41, 0x02, 0x01, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0xA2, 0xE1, 0x00, 0x05, 0x00, 0x05, 0x01, 0x00 + .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x00, 0x41, 0x02, 0x01, 0x00 + + .global UNK05_021F7A38 +UNK05_021F7A38: ; 0x021F7A38 + .byte 0x00, 0x40, 0x10, 0x00 + + .global UNK05_021F7A3C +UNK05_021F7A3C: ; 0x021F7A3C + .byte 0x00, 0x00, 0x08, 0x00 + + .global UNK05_021F7A40 +UNK05_021F7A40: ; 0x021F7A40 + .byte 0x00, 0x20, 0xFE, 0xFF + + .global UNK05_021F7A44 +UNK05_021F7A44: ; 0x021F7A44 + .byte 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021F7A48 +UNK05_021F7A48: ; 0x021F7A48 + .byte 0x00, 0x40, 0x06, 0x00 + + .global UNK05_021F7A4C +UNK05_021F7A4C: ; 0x021F7A4C + .byte 0x00, 0x40, 0x01, 0x00 + + .global UNK05_021F7A50 +UNK05_021F7A50: ; 0x021F7A50 + .byte 0x04, 0x00, 0x00, 0x00 + + .global UNK05_021F7A54 +UNK05_021F7A54: ; 0x021F7A54 + .byte 0xFE, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF + .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00 + .byte 0x00, 0xC0, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x40, 0x06, 0x00 + .byte 0x00, 0x40, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x00, 0xC0, 0x08, 0x00 + .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x60, 0xFF, 0xFF, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00 + .byte 0x00, 0xC0, 0xFE, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0x00, 0x40, 0x10, 0x00 + .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x00, 0x00, 0x05, 0x00, 0x00, 0x40, 0x06, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00 + .byte 0x00, 0xC0, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021EC458.s b/arm9/modules/05/asm/mod05_021EC458.s new file mode 100644 index 00000000..216dfbb7 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021EC458.s @@ -0,0 +1,2938 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021EC458 +MOD05_021EC458: ; 0x021EC458 + push {r3, lr} + bl Sav2_DayCare_GetMonX + bl DayCareMon_GetBoxMon + pop {r3, pc} + + thumb_func_start MOD05_021EC464 +MOD05_021EC464: ; 0x021EC464 + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + add r6, r0, #0 + add r5, r4, #0 + mov r7, #5 +_021EC46E: + add r0, r6, #0 + add r1, r5, #0 + bl Sav2_DayCare_GetMonX + bl DayCareMon_GetBoxMon + add r1, r7, #0 + mov r2, #0 + bl GetBoxMonData + cmp r0, #0 + beq _021EC48C + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_021EC48C: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #2 + blo _021EC46E + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EC49C +MOD05_021EC49C: ; 0x021EC49C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, _021EC4D8 ; =UNK05_021FD680 + mov r4, #0 + str r5, [r0] + mov r6, #5 + add r7, r4, #0 +_021EC4AA: + add r0, r5, #0 + add r1, r4, #0 + bl Sav2_DayCare_GetMonX + bl DayCareMon_GetBoxMon + add r1, r6, #0 + add r2, r7, #0 + bl GetBoxMonData + cmp r0, #0 + bne _021EC4C6 + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} +_021EC4C6: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #2 + blo _021EC4AA + mov r0, #0 + mvn r0, r0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EC4D8: .word UNK05_021FD680 + + thumb_func_start MOD05_021EC4DC +MOD05_021EC4DC: ; 0x021EC4DC + push {r3, lr} + mov r1, #6 + mov r2, #0 + bl GetBoxMonData + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ItemIdIsMail + pop {r3, pc} + + thumb_func_start MOD05_021EC4F0 +MOD05_021EC4F0: ; 0x021EC4F0 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r2, #0 + add r6, r0, #0 + str r1, [sp] + add r7, r3, #0 + bl GetPartyMonByIndex + add r4, r0, #0 + add r0, r5, #0 + bl DayCareMon_GetExtras + str r0, [sp, #8] + add r0, r5, #0 + bl DayCareMon_GetBoxMon + str r0, [sp, #4] + add r0, r7, #0 + bl Sav2_PlayerData_GetProfileAddr + bl PlayerProfile_GetNamePtr + add r0, r4, #0 + mov r1, #0x74 + add r2, sp, #0xc + bl GetMonData + add r0, r4, #0 + bl FUN_020690E4 + bl MOD05_021EC4DC + cmp r0, #0 + beq _021EC544 + ldr r0, [sp, #8] + bl DayCareMail_GetCapsule + add r2, r0, #0 + add r0, r4, #0 + mov r1, #0xa9 + bl GetMonData +_021EC544: + ldr r1, [sp, #4] + add r0, r4, #0 + bl CopyBoxPokemonToBoxPokemon + add r0, r5, #0 + mov r1, #0 + bl DayCareMon_SetSteps + ldr r1, [sp] + add r0, r6, #0 + bl RemoveMonFromParty + ldr r1, _021EC578 ; =0x000001B9 + add r0, r6, #0 + bl PartyHasMon + cmp r0, #0 + bne _021EC572 + add r0, r7, #0 + bl Sav2_Chatot_get + bl Chatot_invalidate +_021EC572: + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + nop +_021EC578: .word 0x000001B9 + + thumb_func_start MOD05_021EC57C +MOD05_021EC57C: ; 0x021EC57C + push {r3, r4, r5, r6, r7, lr} + add r7, r3, #0 + add r5, r0, #0 + add r0, r7, #0 + add r6, r1, #0 + add r4, r2, #0 + bl FUN_02029FC8 + mov r1, #0x28 + bl FUN_0202A0E8 + add r0, r4, #0 + bl MOD05_021EC49C + add r1, r0, #0 + add r0, r4, #0 + bl Sav2_DayCare_GetMonX + add r2, r0, #0 + add r0, r5, #0 + add r1, r6, #0 + add r3, r7, #0 + bl MOD05_021EC4F0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EC5B0 +MOD05_021EC5B0: ; 0x021EC5B0 + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + mov r1, #0 + bl Sav2_DayCare_GetMonX + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl Sav2_DayCare_GetMonX + add r4, r0, #0 + add r0, r5, #0 + bl DayCareMon_GetBoxMon + add r6, r0, #0 + add r0, r4, #0 + bl DayCareMon_GetBoxMon + add r7, r0, #0 + add r0, r6, #0 + mov r1, #5 + mov r2, #0 + bl GetBoxMonData + cmp r0, #0 + bne _021EC600 + add r0, r7, #0 + mov r1, #5 + mov r2, #0 + bl GetBoxMonData + cmp r0, #0 + beq _021EC600 + add r0, r5, #0 + add r1, r4, #0 + bl DayCareMon_Copy + add r0, r4, #0 + bl DayCareMon_Init +_021EC600: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EC604 +MOD05_021EC604: ; 0x021EC604 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #8] + add r4, sp, #8 + add r6, sp, #4 + add r7, sp, #4 +_021EC616: + add r0, r5, #0 + bl FUN_020690E8 + cmp r0, #0 + beq _021EC658 + mov r0, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl FUN_02069818 + cmp r0, #0 + beq _021EC64E +_021EC632: + ldr r1, _021EC664 ; =0x0000FFFF + cmp r0, r1 + bne _021EC640 + ldrh r1, [r7] + add r0, r5, #0 + bl FUN_02069708 +_021EC640: + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl FUN_02069818 + cmp r0, #0 + bne _021EC632 +_021EC64E: + ldr r0, [sp] + add r0, r0, #1 + str r0, [sp] + cmp r0, #0x64 + blt _021EC616 +_021EC658: + add r0, r5, #0 + bl CalcMonLevelAndStats + add sp, #0xc + pop {r4, r5, r6, r7, pc} + nop +_021EC664: .word 0x0000FFFF + + thumb_func_start MOD05_021EC668 +MOD05_021EC668: ; 0x021EC668 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + str r0, [sp] + add r6, r1, #0 + mov r0, #4 + add r7, r2, #0 + bl AllocMonZeroed + add r4, r0, #0 + add r0, r6, #0 + bl DayCareMon_GetBoxMon + add r5, r0, #0 + add r0, r6, #0 + bl DayCareMon_GetExtras + str r0, [sp, #4] + add r0, r7, #0 + mov r1, #0 + add r2, r5, #0 + bl BufferBoxMonNickname + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl GetBoxMonData + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + add r0, r5, #0 + add r1, r4, #0 + bl CopyBoxPokemonToPokemon + add r0, r4, #0 + mov r1, #0xa0 + mov r2, #0 + bl GetMonData + cmp r0, #0x64 + beq _021EC6E0 + add r0, r4, #0 + mov r1, #8 + mov r2, #0 + bl GetMonData + str r0, [sp, #8] + add r0, r6, #0 + bl DayCareMon_GetSteps + ldr r1, [sp, #8] + add r2, sp, #8 + add r0, r1, r0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #8 + bl SetMonData + add r0, r4, #0 + bl MOD05_021EC604 +_021EC6E0: + add r0, r5, #0 + bl MOD05_021EC4DC + cmp r0, #0 + beq _021EC6FA + ldr r0, [sp, #4] + bl DayCareMail_GetCapsule + add r2, r0, #0 + add r0, r4, #0 + mov r1, #0xa9 + bl SetMonData +_021EC6FA: + ldr r0, [sp] + add r1, r4, #0 + bl AddMonToParty + add r0, r5, #0 + bl ZeroBoxMonData + add r0, r6, #0 + mov r1, #0 + bl DayCareMon_SetSteps + add r0, r4, #0 + bl FreeToHeap + add r0, r7, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EC71C +MOD05_021EC71C: ; 0x021EC71C + push {r4, r5, r6, lr} + add r6, r2, #0 + add r5, r0, #0 + add r4, r1, #0 + add r0, r6, #0 + add r1, r3, #0 + bl Sav2_DayCare_GetMonX + add r1, r0, #0 + add r0, r5, #0 + add r2, r4, #0 + bl MOD05_021EC668 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r6, #0 + bl MOD05_021EC5B0 + add r0, r4, #0 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021EC744 +MOD05_021EC744: ; 0x021EC744 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #4 + add r5, r1, #0 + bl AllocMonZeroed + add r7, r0, #0 + bl FUN_020690E4 + add r4, r0, #0 + add r0, r6, #0 + add r1, r4, #0 + bl CopyPokemonToBoxPokemon + add r0, r4, #0 + mov r1, #8 + mov r2, #0 + bl GetBoxMonData + str r0, [sp] + add r0, r0, r5 + str r0, [sp] + add r0, r4, #0 + mov r1, #8 + add r2, sp, #0 + bl SetBoxMonData + add r0, r4, #0 + bl CalcBoxMonLevel + add r4, r0, #0 + add r0, r7, #0 + bl FreeToHeap + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EC78C +MOD05_021EC78C: ; 0x021EC78C + push {r4, r5, r6, lr} + add r5, r0, #0 + bl DayCareMon_GetBoxMon + add r6, r0, #0 + bl CalcBoxMonLevel + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r0, r5, #0 + bl DayCareMon_GetSteps + add r1, r0, #0 + add r0, r6, #0 + bl MOD05_021EC744 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r0, r0, r4 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021EC7B4 +MOD05_021EC7B4: ; 0x021EC7B4 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl DayCareMon_GetBoxMon + add r4, r0, #0 + add r0, r5, #0 + bl DayCareMon_GetSteps + add r1, r0, #0 + add r0, r4, #0 + bl MOD05_021EC744 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EC7D4 +MOD05_021EC7D4: ; 0x021EC7D4 + push {r4, r5, r6, lr} + sub sp, #8 + add r4, r0, #0 + add r5, r1, #0 + bl DayCareMon_GetBoxMon + add r6, r0, #0 + add r0, r4, #0 + bl MOD05_021EC78C + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + mov r1, #1 + add r0, r5, #0 + add r2, r4, #0 + mov r3, #3 + str r1, [sp, #4] + bl BufferIntegerAsString + add r0, r5, #0 + mov r1, #0 + add r2, r6, #0 + bl BufferBoxMonNickname + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + add sp, #8 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EC810 +MOD05_021EC810: ; 0x021EC810 + push {r4, r5, r6, lr} + sub sp, #8 + add r4, r0, #0 + add r5, r1, #0 + bl DayCareMon_GetBoxMon + add r6, r0, #0 + add r0, r4, #0 + bl MOD05_021EC78C + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r5, #0 + mov r1, #0 + add r2, r6, #0 + bl BufferBoxMonNickname + add r1, r4, #1 + mov r0, #0x64 + mul r0, r1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + mov r0, #0 + str r0, [sp] + mov r1, #1 + add r0, r5, #0 + add r2, r4, #0 + mov r3, #5 + str r1, [sp, #4] + bl BufferIntegerAsString + add r0, r4, #0 + add sp, #8 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021EC854 +MOD05_021EC854: ; 0x021EC854 + push {r4, lr} + add r4, r2, #0 + bl Sav2_DayCare_GetMonX + add r1, r4, #0 + bl MOD05_021EC810 + pop {r4, pc} + + thumb_func_start MOD05_021EC864 +MOD05_021EC864: ; 0x021EC864 + push {r3, r4, r5, lr} + add r5, r2, #0 + bl Sav2_DayCare_GetMonX + add r4, r0, #0 + bl DayCareMon_GetBoxMon + mov r1, #5 + mov r2, #0 + bl GetBoxMonData + cmp r0, #0 + beq _021EC888 + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021EC7D4 + pop {r3, r4, r5, pc} +_021EC888: + mov r0, #0 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021EC88C +MOD05_021EC88C: ; 0x021EC88C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + mov r1, #0 + bl MOD05_021EC458 + str r0, [r4] + add r0, r5, #0 + mov r1, #1 + bl MOD05_021EC458 + str r0, [r4, #4] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EC8A8 +MOD05_021EC8A8: ; 0x021EC8A8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + mov r1, #0 + mvn r1, r1 + str r1, [sp] + add r1, sp, #4 + bl MOD05_021EC88C + mov r4, #0 + add r5, sp, #4 +_021EC8BC: + ldr r0, [r5] + bl GetBoxMonGender + cmp r0, #1 + bne _021EC8C8 + str r4, [sp] +_021EC8C8: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #2 + blt _021EC8BC + mov r7, #0 + add r6, r7, #0 + add r4, sp, #4 + add r5, sp, #0xc +_021EC8D8: + ldr r0, [r4] + mov r1, #5 + mov r2, #0 + bl GetBoxMonData + str r0, [r5] + cmp r0, #0x84 + bne _021EC8EC + add r7, r7, #1 + str r6, [sp] +_021EC8EC: + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #2 + blt _021EC8D8 + cmp r7, #2 + bne _021EC90E + bl LCRandom + ldr r1, _021EC940 ; =0x00007FFF + cmp r0, r1 + blo _021EC90A + mov r0, #0 + str r0, [sp] + b _021EC90E +_021EC90A: + mov r0, #1 + str r0, [sp] +_021EC90E: + ldr r0, [sp] + mov r2, #0 + lsl r1, r0, #2 + add r0, sp, #4 + ldr r0, [r0, r1] + mov r1, #6 + bl GetBoxMonData + cmp r0, #0xe5 + bne _021EC938 + bl LCRandom + ldr r1, _021EC940 ; =0x00007FFF + cmp r0, r1 + blo _021EC932 + mov r0, #0 + mvn r0, r0 + str r0, [sp] +_021EC932: + ldr r0, [sp] + add sp, #0x14 + pop {r4, r5, r6, r7, pc} +_021EC938: + mov r0, #0 + mvn r0, r0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 +_021EC940: .word 0x00007FFF + + thumb_func_start MOD05_021EC944 +MOD05_021EC944: ; 0x021EC944 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + mov r5, #0 + bl MOD05_021EC8A8 + add r1, r0, #0 + bpl _021EC960 + bl MTRandom + add r1, r0, #0 + ldr r0, [sp] + bl Sav2_DayCare_SetEggPID + pop {r3, r4, r5, r6, r7, pc} +_021EC960: + ldr r0, [sp] + bl MOD05_021EC458 + add r1, r5, #0 + add r2, r1, #0 + bl GetBoxMonData + bl GetNatureFromPersonality + mov r7, #0x96 + add r6, r0, #0 + lsl r7, r7, #4 +_021EC978: + bl MTRandom + add r4, r0, #0 + bl GetNatureFromPersonality + cmp r6, r0 + bne _021EC98A + cmp r4, #0 + bne _021EC990 +_021EC98A: + add r5, r5, #1 + cmp r5, r7 + ble _021EC978 +_021EC990: + ldr r0, [sp] + add r1, r4, #0 + bl Sav2_DayCare_SetEggPID + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EC99C +MOD05_021EC99C: ; 0x021EC99C + push {r3, r4} + sub sp, #8 + mov r2, #0xff + strb r2, [r0, r1] + mov r2, #0 + add r3, sp, #0 +_021EC9A8: + ldrb r1, [r0, r2] + add r2, r2, #1 + strb r1, [r3] + add r3, r3, #1 + cmp r2, #6 + blt _021EC9A8 + mov r2, #0 + add r4, r2, #0 + add r3, sp, #0 +_021EC9BA: + ldrb r1, [r3] + cmp r1, #0xff + beq _021EC9C4 + strb r1, [r0, r2] + add r2, r2, #1 +_021EC9C4: + add r4, r4, #1 + add r3, r3, #1 + cmp r4, #6 + blt _021EC9BA + add sp, #8 + pop {r3, r4} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021EC9D4 +MOD05_021EC9D4: ; 0x021EC9D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r0, #0 + str r1, [sp] + mov r0, #0 + add r1, sp, #8 +_021EC9E0: + strb r0, [r1, r0] + add r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #6 + blo _021EC9E0 + add r7, sp, #0xc + mov r5, #0 + add r6, sp, #8 + add r7, #2 +_021EC9F4: + bl LCRandom + mov r1, #6 + sub r1, r1, r5 + bl _s32_div_f + ldrb r0, [r6, r1] + add r1, r5, #0 + strb r0, [r7, r5] + add r0, r6, #0 + bl MOD05_021EC99C + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #3 + blo _021EC9F4 + add r6, sp, #4 + mov r5, #0 + add r6, #1 + mov r7, #0x1f +_021ECA1E: + bl LCRandom + lsr r1, r0, #0x1f + lsl r0, r0, #0x1f + sub r0, r0, r1 + ror r0, r7 + add r0, r1, r0 + strb r0, [r6, r5] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #3 + blo _021ECA1E + mov r5, #0 + add r7, sp, #4 + add r6, sp, #4 +_021ECA3E: + add r1, sp, #4 + add r1, #1 + ldrb r1, [r1, r5] + ldr r0, [sp] + bl MOD05_021EC458 + add r1, sp, #0xc + add r1, #2 + ldrb r1, [r1, r5] + cmp r1, #5 + bhi _021ECAEE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021ECA60: ; jump table + .short _021ECA6C - _021ECA60 - 2 ; case 0 + .short _021ECA82 - _021ECA60 - 2 ; case 1 + .short _021ECA98 - _021ECA60 - 2 ; case 2 + .short _021ECAAE - _021ECA60 - 2 ; case 3 + .short _021ECAC4 - _021ECA60 - 2 ; case 4 + .short _021ECADA - _021ECA60 - 2 ; case 5 +_021ECA6C: + mov r1, #0x46 + mov r2, #0 + bl GetBoxMonData + strb r0, [r6] + add r0, r4, #0 + mov r1, #0x46 + add r2, r7, #0 + bl SetMonData + b _021ECAEE +_021ECA82: + mov r1, #0x47 + mov r2, #0 + bl GetBoxMonData + strb r0, [r6] + add r0, r4, #0 + mov r1, #0x47 + add r2, r7, #0 + bl SetMonData + b _021ECAEE +_021ECA98: + mov r1, #0x48 + mov r2, #0 + bl GetBoxMonData + strb r0, [r6] + add r0, r4, #0 + mov r1, #0x48 + add r2, r7, #0 + bl SetMonData + b _021ECAEE +_021ECAAE: + mov r1, #0x49 + mov r2, #0 + bl GetBoxMonData + strb r0, [r6] + add r0, r4, #0 + mov r1, #0x49 + add r2, r7, #0 + bl SetMonData + b _021ECAEE +_021ECAC4: + mov r1, #0x4a + mov r2, #0 + bl GetBoxMonData + strb r0, [r6] + add r0, r4, #0 + mov r1, #0x4a + add r2, r7, #0 + bl SetMonData + b _021ECAEE +_021ECADA: + mov r1, #0x4b + mov r2, #0 + bl GetBoxMonData + strb r0, [r6] + add r0, r4, #0 + mov r1, #0x4b + add r2, r7, #0 + bl SetMonData +_021ECAEE: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #3 + blo _021ECA3E + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021ECAFC +MOD05_021ECAFC: ; 0x021ECAFC + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + add r5, r1, #0 + mov r1, #5 + add r2, r4, #0 + add r6, r4, #0 + bl GetMonData + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + ldr r0, _021ECB60 ; =0x00004E20 + ldr r3, _021ECB64 ; =0x00000775 + add r2, r2, r0 + ldr r0, _021ECB68 ; =UNK05_021F7B48 + add r1, r4, #0 +_021ECB1A: + lsl r7, r1, #1 + ldrh r7, [r0, r7] + cmp r2, r7 + bne _021ECB2A + add r0, r1, #1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + b _021ECB34 +_021ECB2A: + add r1, r1, #1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, r3 + blo _021ECB1A +_021ECB34: + ldr r2, _021ECB68 ; =UNK05_021F7B48 + lsl r0, r6, #1 + ldr r3, _021ECB60 ; =0x00004E20 + mov r1, #0 + add r0, r2, r0 +_021ECB3E: + lsl r6, r1, #1 + ldrh r2, [r0, r6] + cmp r2, r3 + bhi _021ECB58 + add r1, r1, #1 + strh r2, [r5, r6] + add r2, r4, #1 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + lsr r1, r1, #0x10 + lsr r4, r2, #0x10 + cmp r1, #0x10 + blo _021ECB3E +_021ECB58: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021ECB60: .word 0x00004E20 +_021ECB64: .word 0x00000775 +_021ECB68: .word UNK05_021F7B48 + + thumb_func_start MOD05_021ECB6C +MOD05_021ECB6C: ; 0x021ECB6C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + add r7, r0, #0 + str r1, [sp] + mov r0, #4 + mov r1, #0xb4 + str r2, [sp, #4] + bl AllocFromHeap + add r4, r0, #0 + mov r0, #0 + add r1, r4, #0 + mov r2, #0xb4 + str r0, [sp, #0x1c] + bl MIi_CpuClearFast + add r0, r7, #0 + mov r1, #5 + mov r2, #0 + bl GetMonData + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x18] + add r0, r7, #0 + mov r1, #0x70 + mov r2, #0 + bl GetMonData + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0xc] + add r2, r4, #0 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0xc] + add r2, #0x30 + bl Species_LoadLearnsetTable + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x14] + mov r5, #0 +_021ECBC0: + lsl r0, r5, #2 + add r6, r5, #0 + str r0, [sp, #0x20] + add r0, r4, r0 + add r6, #0x36 + str r0, [sp, #0x10] + ldr r0, [sp] + add r1, r6, #0 + mov r2, #0 + bl GetBoxMonData + ldr r1, [sp, #0x20] + mov r2, #0 + str r0, [r4, r1] + ldr r0, [sp, #4] + add r1, r6, #0 + bl GetBoxMonData + ldr r1, [sp, #0x10] + str r0, [r1, #0x20] + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #4 + blo _021ECBC0 + add r1, r4, #0 + add r0, r7, #0 + add r1, #0x94 + bl MOD05_021ECAFC + add r5, r0, #0 + mov r6, #0 +_021ECC00: + lsl r0, r6, #2 + ldr r1, [r4, r0] + str r0, [sp, #0x24] + cmp r1, #0 + beq _021ECC50 + mov r0, #0 + cmp r5, #0 + bls _021ECC46 +_021ECC10: + lsl r2, r0, #1 + add r2, r4, r2 + add r2, #0x94 + ldrh r2, [r2] + cmp r1, r2 + bne _021ECC3C + lsl r1, r1, #0x10 + add r0, r7, #0 + lsr r1, r1, #0x10 + bl FUN_02069698 + ldr r1, _021ECD60 ; =0x0000FFFF + cmp r0, r1 + bne _021ECC46 + ldr r1, [sp, #0x24] + add r0, r7, #0 + ldr r1, [r4, r1] + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_02069708 + b _021ECC46 +_021ECC3C: + add r0, r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, r5 + blo _021ECC10 +_021ECC46: + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r6, #4 + blo _021ECC00 +_021ECC50: + mov r0, #0 + str r0, [sp, #8] +_021ECC54: + ldr r0, [sp, #8] + lsl r6, r0, #2 + ldr r0, [r4, r6] + cmp r0, #0 + beq _021ECCAC + mov r5, #0 +_021ECC60: + mov r0, #0x52 + lsl r0, r0, #2 + add r0, r5, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl TMHMGetMove + ldr r1, [r4, r6] + cmp r1, r0 + bne _021ECCA2 + lsl r2, r5, #0x18 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0xc] + lsr r2, r2, #0x18 + bl FUN_0206A16C + cmp r0, #0 + beq _021ECCA2 + ldr r1, [r4, r6] + add r0, r7, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_02069698 + ldr r1, _021ECD60 ; =0x0000FFFF + cmp r0, r1 + bne _021ECCA2 + ldr r1, [r4, r6] + add r0, r7, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_02069708 +_021ECCA2: + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x64 + blo _021ECC60 +_021ECCAC: + ldr r0, [sp, #8] + add r0, r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + cmp r0, #4 + blo _021ECC54 + mov r6, #0 +_021ECCBC: + lsl r1, r6, #2 + ldr r0, [r4, r1] + cmp r0, #0 + beq _021ECCFC + mov r3, #0 +_021ECCC6: + lsl r2, r3, #2 + add r2, r4, r2 + ldr r0, [r4, r1] + ldr r2, [r2, #0x20] + cmp r0, r2 + bne _021ECCE8 + cmp r0, #0 + beq _021ECCE8 + ldr r2, [sp, #0x1c] + add r5, r2, #0 + add r5, r5, #1 + lsl r5, r5, #0x10 + lsr r5, r5, #0x10 + lsl r2, r2, #2 + str r5, [sp, #0x1c] + add r2, r4, r2 + str r0, [r2, #0x10] +_021ECCE8: + add r0, r3, #1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #4 + blo _021ECCC6 + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r6, #4 + blo _021ECCBC +_021ECCFC: + mov r6, #0 +_021ECCFE: + lsl r0, r6, #2 + add r5, r4, r0 + ldr r3, [r5, #0x10] + cmp r3, #0 + beq _021ECD54 + ldr r0, [sp, #0x14] + mov r2, #0 + cmp r0, #0 + bls _021ECD4A +_021ECD10: + lsl r0, r2, #1 + add r0, r4, r0 + ldrh r1, [r0, #0x30] + cmp r1, #0 + beq _021ECD3E + ldr r0, [r5, #0x10] + cmp r0, r1 + bne _021ECD3E + lsl r1, r3, #0x10 + add r0, r7, #0 + lsr r1, r1, #0x10 + bl FUN_02069698 + ldr r1, _021ECD60 ; =0x0000FFFF + cmp r0, r1 + bne _021ECD4A + ldr r1, [r5, #0x10] + add r0, r7, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_02069708 + b _021ECD4A +_021ECD3E: + add r0, r2, #1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + ldr r0, [sp, #0x14] + cmp r2, r0 + blo _021ECD10 +_021ECD4A: + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r6, #4 + blo _021ECCFE +_021ECD54: + add r0, r4, #0 + bl FreeToHeap + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + nop +_021ECD60: .word 0x0000FFFF + + thumb_func_start MOD05_021ECD64 +MOD05_021ECD64: ; 0x021ECD64 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + bl Sav2_DayCare_SetEggPID + add r0, r4, #0 + mov r1, #0 + bl Sav2_DayCare_SetEggCycleCounter + pop {r4, pc} + + thumb_func_start MOD05_021ECD78 +MOD05_021ECD78: ; 0x021ECD78 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + add r0, r1, #0 + add r1, sp, #0 + bl MOD05_021EC88C + ldr r2, _021ECDE8 ; =UNK05_021F7B12 + mov r3, #0 + mov r1, #6 +_021ECD8C: + add r0, r3, #0 + mul r0, r1 + ldrh r0, [r2, r0] + cmp r5, r0 + bne _021ECD9A + add r6, r3, #0 + b _021ECDA4 +_021ECD9A: + add r0, r3, #1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #9 + blo _021ECD8C +_021ECDA4: + cmp r3, #9 + bne _021ECDAE + add sp, #8 + add r0, r5, #0 + pop {r4, r5, r6, pc} +_021ECDAE: + ldr r0, [sp] + mov r1, #6 + mov r2, #0 + bl GetBoxMonData + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [sp, #4] + mov r1, #6 + mov r2, #0 + bl GetBoxMonData + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r0, #6 + add r1, r6, #0 + mul r1, r0 + ldr r0, _021ECDEC ; =UNK05_021F7B14 + ldrh r0, [r0, r1] + cmp r4, r0 + beq _021ECDE0 + cmp r2, r0 + beq _021ECDE0 + ldr r0, _021ECDF0 ; =UNK05_021F7B16 + ldrh r5, [r0, r1] +_021ECDE0: + add r0, r5, #0 + add sp, #8 + pop {r4, r5, r6, pc} + nop +_021ECDE8: .word UNK05_021F7B12 +_021ECDEC: .word UNK05_021F7B14 +_021ECDF0: .word UNK05_021F7B16 + + thumb_func_start MOD05_021ECDF4 +MOD05_021ECDF4: ; 0x021ECDF4 + push {r3, r4, r5, lr} + sub sp, #8 + add r4, r0, #0 + add r0, r1, #0 + add r1, sp, #0 + bl MOD05_021EC88C + ldr r0, [sp] + mov r1, #6 + mov r2, #0 + bl GetBoxMonData + add r5, r0, #0 + ldr r0, [sp, #4] + mov r1, #6 + mov r2, #0 + bl GetBoxMonData + cmp r5, #0xec + beq _021ECE20 + cmp r0, #0xec + bne _021ECE3A +_021ECE20: + mov r1, #0x56 + add r0, r4, #0 + lsl r1, r1, #2 + bl FUN_02069698 + ldr r1, _021ECE40 ; =0x0000FFFF + cmp r0, r1 + bne _021ECE3A + mov r1, #0x56 + add r0, r4, #0 + lsl r1, r1, #2 + bl FUN_02069708 +_021ECE3A: + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021ECE40: .word 0x0000FFFF + + thumb_func_start MOD05_021ECE44 +MOD05_021ECE44: ; 0x021ECE44 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r1, #0 + add r1, sp, #4 + str r0, [sp] + bl MOD05_021EC88C + mov r4, #0 + add r7, sp, #4 +_021ECE56: + lsl r6, r4, #2 + ldr r0, [r7, r6] + mov r1, #5 + mov r2, #0 + bl GetBoxMonData + lsl r1, r4, #1 + add r2, sp, #0xc + strh r0, [r2, r1] + add r0, r2, #0 + ldrh r0, [r0, r1] + cmp r0, #0x84 + bne _021ECE7A + mov r0, #1 + eor r0, r4 + strb r0, [r5] + strb r4, [r5, #1] + b _021ECE8C +_021ECE7A: + ldr r0, [r7, r6] + bl GetBoxMonGender + cmp r0, #1 + bne _021ECE8C + mov r0, #1 + strb r4, [r5] + eor r0, r4 + strb r0, [r5, #1] +_021ECE8C: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #2 + blo _021ECE56 + ldrb r0, [r5] + lsl r1, r0, #1 + add r0, sp, #0xc + ldrh r0, [r0, r1] + bl ReadFromPersonalPmsNarc + add r4, r0, #0 + cmp r4, #0x1d + bne _021ECEBC + ldr r0, [sp] + bl Sav2_DayCare_GetEggPID + mov r1, #2 + lsl r1, r1, #0xe + tst r0, r1 + beq _021ECEBA + mov r4, #0x20 + b _021ECEBC +_021ECEBA: + mov r4, #0x1d +_021ECEBC: + ldr r0, _021ECF08 ; =0x0000013A + cmp r4, r0 + bne _021ECED6 + ldr r0, [sp] + bl Sav2_DayCare_GetEggPID + mov r1, #2 + lsl r1, r1, #0xe + tst r0, r1 + beq _021ECED4 + ldr r4, _021ECF0C ; =0x00000139 + b _021ECED6 +_021ECED4: + ldr r4, _021ECF08 ; =0x0000013A +_021ECED6: + ldr r0, _021ECF10 ; =0x000001EA + cmp r4, r0 + bne _021ECEDE + sub r4, r0, #1 +_021ECEDE: + ldrb r0, [r5, #1] + lsl r1, r0, #1 + add r0, sp, #0xc + ldrh r0, [r0, r1] + cmp r0, #0x84 + bne _021ECF02 + ldrb r0, [r5] + lsl r1, r0, #2 + add r0, sp, #4 + ldr r0, [r0, r1] + bl GetBoxMonGender + cmp r0, #1 + beq _021ECF02 + ldrb r1, [r5, #1] + ldrb r0, [r5] + strb r0, [r5, #1] + strb r1, [r5] +_021ECF02: + add r0, r4, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021ECF08: .word 0x0000013A +_021ECF0C: .word 0x00000139 +_021ECF10: .word 0x000001EA + + thumb_func_start MOD05_SetEggStats +MOD05_SetEggStats: ; 0x021ECF14 + push {r0, r1, r2, r3} + push {r4, r5, r6, lr} + sub sp, #0x20 + add r6, r1, #0 + add r5, r0, #0 + add r0, r6, #0 + mov r1, #0x13 ; BASE_EGG_CYCLES + add r4, r3, #0 + bl GetMonBaseStat + add r1, sp, #0x10 + strb r0, [r1] + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + add r0, r5, #0 + add r1, r6, #0 + mov r2, #1 + mov r3, #0x20 + bl CreateMon + mov r1, #0 + add r0, sp, #0x10 + strb r1, [r0, #2] + mov r1, #4 + strh r1, [r0, #4] + add r0, r5, #0 + mov r1, #0x9a + add r2, sp, #0x14 + bl SetMonData + add r0, r5, #0 + mov r1, #9 + add r2, sp, #0x10 + bl SetMonData + add r2, sp, #0x10 + add r0, r5, #0 + mov r1, #0x9b + add r2, #2 + bl SetMonData + add r0, sp, #0x30 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _021ECF7E + add r0, r5, #0 + mov r1, #0x97 + add r2, sp, #0x38 + bl SetMonData +_021ECF7E: + add r2, sp, #0x10 + mov r1, #1 + add r0, sp, #0x10 + strb r1, [r0, #1] + add r0, r5, #0 + mov r1, #0x4c + add r2, #1 + bl SetMonData + ldr r0, _021ED008 ; =0x000001EE + mov r1, #4 + bl GetSpeciesName + add r6, r0, #0 + add r0, r5, #0 + mov r1, #0x76 + add r2, r6, #0 + bl SetMonData + add r0, r6, #0 + bl String_dtor + ldr r0, [sp, #0x40] + cmp r0, #4 + bne _021ECFEE + add r0, r4, #0 + bl PlayerProfile_GetTrainerID + str r0, [sp, #0x1c] + add r0, r4, #0 + bl PlayerProfile_GetTrainerGender + str r0, [sp, #0x18] + add r0, r4, #0 + mov r1, #0x20 + bl PlayerProfile_GetPlayerName_NewString + add r6, r0, #0 + add r0, r5, #0 + mov r1, #0x90 + add r2, r6, #0 + bl SetMonData + add r0, r5, #0 + mov r1, #7 + add r2, sp, #0x1c + bl SetMonData + add r0, r5, #0 + mov r1, #0x9c + add r2, sp, #0x18 + bl SetMonData + add r0, r6, #0 + bl String_dtor +_021ECFEE: + mov r0, #0 + str r0, [sp] + ldr r2, [sp, #0x40] + ldr r3, [sp, #0x44] + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0208089C + add sp, #0x20 + pop {r4, r5, r6} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4, 0 +_021ED008: .word 0x000001EE + + thumb_func_start MOD05_DayCare_CreateEgg +MOD05_DayCare_CreateEgg: ; 0x021ED00C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r1, [sp, #0x10] + add r7, r0, #0 + ldr r0, [sp, #0x10] + mov r1, #0x13 ; BASE_EGG_CYCLES + add r5, r2, #0 + add r6, r3, #0 + bl GetMonBaseStat + add r1, sp, #0x14 + strb r0, [r1] + add r0, r5, #0 + bl Sav2_DayCare_GetEggPID + add r4, r0, #0 + add r0, r5, #0 + bl Sav2_DayCare_MasudaCheck + cmp r0, #0 + beq _021ED05E + add r0, r6, #0 + add r1, r4, #0 + bl CalcShininessByOtIdAndPersonality + cmp r0, #0 + bne _021ED05E + mov r5, #0 +_021ED044: + add r0, r4, #0 + bl PRandom + add r4, r0, #0 + add r0, r6, #0 + add r1, r4, #0 + bl CalcShininessByOtIdAndPersonality + cmp r0, #0 + bne _021ED05E + add r5, r5, #1 + cmp r5, #4 + blt _021ED044 +_021ED05E: + mov r2, #1 + str r2, [sp] + str r4, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r1, [sp, #0x10] + add r0, r7, #0 + mov r3, #0x20 + bl CreateMon + add r2, sp, #0x14 + mov r1, #0 + add r0, sp, #0x14 + strb r1, [r0, #1] + mov r1, #4 + strh r1, [r0, #2] + add r0, r7, #0 + mov r1, #0x9a + add r2, #2 + bl SetMonData + add r0, r7, #0 + mov r1, #9 + add r2, sp, #0x14 + bl SetMonData + add r2, sp, #0x14 + add r0, r7, #0 + mov r1, #0x9b + add r2, #1 + bl SetMonData + add r0, r7, #0 + mov r1, #0x70 + add r2, sp, #0x30 + bl SetMonData + ldr r0, _021ED0C8 ; =0x000001EE + mov r1, #4 + bl GetSpeciesName + add r4, r0, #0 + add r0, r7, #0 + mov r1, #0x76 + add r2, r4, #0 + bl SetMonData + add r0, r4, #0 + bl String_dtor + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021ED0C8: .word 0x000001EE + + thumb_func_start MOD05_DayCare_GiveEggToPlayer +MOD05_DayCare_GiveEggToPlayer: ; 0x021ED0CC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + mov r0, #4 + str r1, [sp, #4] + add r7, r2, #0 + bl AllocMonZeroed + add r1, sp, #0x10 + add r4, r0, #0 + add r0, r5, #0 + add r1, #1 + bl MOD05_021ECE44 + add r1, r5, #0 + bl MOD05_021ECD78 + add r6, r0, #0 + add r0, r7, #0 + bl PlayerProfile_GetTrainerID + add r1, sp, #0x10 + str r0, [sp, #8] + ldrb r1, [r1, #1] + add r0, r5, #0 + bl MOD05_021EC458 + mov r1, #0x70 + mov r2, #0 + bl GetBoxMonData + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r3, [sp, #8] + add r0, r4, #0 + add r1, r6, #0 + add r2, r5, #0 + bl MOD05_DayCare_CreateEgg + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021EC9D4 + add r1, sp, #0x10 + ldrb r1, [r1, #2] + add r0, r5, #0 + bl MOD05_021EC458 + add r1, sp, #0x10 + str r0, [sp, #0xc] + ldrb r1, [r1, #1] + add r0, r5, #0 + bl MOD05_021EC458 + add r2, r0, #0 + ldr r1, [sp, #0xc] + add r0, r4, #0 + bl MOD05_021ECB6C + mov r0, #1 + mov r1, #0 + bl FUN_02015CF8 + add r3, r0, #0 + mov r0, #4 + str r0, [sp] + add r0, r4, #0 + add r1, r7, #0 + mov r2, #3 + bl FUN_0208089C + cmp r6, #0xac + bne _021ED168 + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021ECDF4 +_021ED168: + mov r1, #1 + add r0, sp, #0x10 + strb r1, [r0] + add r0, r4, #0 + mov r1, #0x4c + add r2, sp, #0x10 + bl SetMonData + ldr r0, [sp, #4] + add r1, r4, #0 + bl AddMonToParty + add r0, r5, #0 + bl MOD05_021ECD64 + add r0, r4, #0 + bl FreeToHeap + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021ED190 +MOD05_021ED190: ; 0x021ED190 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl GetPartyCount + add r6, r0, #0 + mov r4, #0 + cmp r6, #0 + ble _021ED1E0 + mov r7, #0xac +_021ED1A2: + add r0, r5, #0 + add r1, r4, #0 + bl GetPartyMonByIndex + add r1, r7, #0 + mov r2, #0 + bl GetMonData + cmp r0, #0 + bne _021ED1D6 + add r0, r5, #0 + add r1, r4, #0 + bl GetPartyMonByIndex + mov r1, #0xa + mov r2, #0 + bl GetMonData + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x28 + beq _021ED1D2 + cmp r0, #0x31 + bne _021ED1D6 +_021ED1D2: + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_021ED1D6: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, r6 + blt _021ED1A2 +_021ED1E0: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021ED1E4 +MOD05_021ED1E4: ; 0x021ED1E4 + push {r4, r5, r6, r7} + mov r4, #0 + add r3, r4, #0 +_021ED1EA: + ldrh r7, [r0] + add r5, r3, #0 + add r6, r1, #0 +_021ED1F0: + ldrh r2, [r6] + cmp r7, r2 + bne _021ED1FC + mov r0, #1 + pop {r4, r5, r6, r7} + bx lr +_021ED1FC: + add r5, r5, #1 + add r6, r6, #2 + cmp r5, #2 + blt _021ED1F0 + add r4, r4, #1 + add r0, r0, #2 + cmp r4, #2 + blt _021ED1EA + mov r0, #0 + pop {r4, r5, r6, r7} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021ED214 +MOD05_021ED214: ; 0x021ED214 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + mov r0, #0 + str r0, [sp, #4] + add r0, sp, #0x10 + add r4, sp, #0x18 + str r0, [sp] + add r7, sp, #8 + add r6, sp, #0x1c +_021ED228: + ldr r0, [r5] + mov r1, #5 + mov r2, #0 + bl GetBoxMonData + strh r0, [r4] + ldr r0, [r5] + mov r1, #7 + mov r2, #0 + bl GetBoxMonData + ldr r1, [sp] + str r0, [r1] + mov r1, #0 + ldr r0, [r5] + add r2, r1, #0 + bl GetBoxMonData + add r1, r0, #0 + ldrh r0, [r4] + bl GetGenderBySpeciesAndPersonality + stmia r7!, {r0} + ldrh r0, [r4] + mov r1, #0x16 ; BASE_EGG_GROUP_1 + bl GetMonBaseStat + strh r0, [r6] + ldrh r0, [r4] + mov r1, #0x17 ; GASE_EGG_GROUP_2 + bl GetMonBaseStat + strh r0, [r6, #2] + ldr r0, [sp] + add r5, r5, #4 + add r0, r0, #4 + str r0, [sp] + ldr r0, [sp, #4] + add r4, r4, #2 + add r0, r0, #1 + add r6, r6, #4 + str r0, [sp, #4] + cmp r0, #2 + blo _021ED228 + add r0, sp, #8 + ldrh r1, [r0, #0x14] + cmp r1, #0xf + beq _021ED28E + ldrh r0, [r0, #0x18] + cmp r0, #0xf + bne _021ED294 +_021ED28E: + add sp, #0x24 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021ED294: + cmp r1, #0xd + bne _021ED2A2 + cmp r0, #0xd + bne _021ED2A2 + add sp, #0x24 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021ED2A2: + cmp r1, #0xd + beq _021ED2AA + cmp r0, #0xd + bne _021ED2BE +_021ED2AA: + ldr r1, [sp, #0x10] + ldr r0, [sp, #0x14] + cmp r1, r0 + bne _021ED2B8 + add sp, #0x24 + mov r0, #0x14 + pop {r4, r5, r6, r7, pc} +_021ED2B8: + add sp, #0x24 + mov r0, #0x32 + pop {r4, r5, r6, r7, pc} +_021ED2BE: + ldr r1, [sp, #0xc] + ldr r0, [sp, #8] + cmp r0, r1 + bne _021ED2CC + add sp, #0x24 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021ED2CC: + cmp r0, #2 + beq _021ED2D4 + cmp r1, #2 + bne _021ED2DA +_021ED2D4: + add sp, #0x24 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021ED2DA: + add r0, sp, #0x1c + add r1, sp, #0x20 + bl MOD05_021ED1E4 + cmp r0, #0 + bne _021ED2EC + add sp, #0x24 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021ED2EC: + add r0, sp, #8 + ldrh r1, [r0, #0x10] + ldrh r0, [r0, #0x12] + cmp r1, r0 + bne _021ED30A + ldr r1, [sp, #0x10] + ldr r0, [sp, #0x14] + cmp r1, r0 + beq _021ED304 + add sp, #0x24 + mov r0, #0x46 + pop {r4, r5, r6, r7, pc} +_021ED304: + add sp, #0x24 + mov r0, #0x32 + pop {r4, r5, r6, r7, pc} +_021ED30A: + ldr r1, [sp, #0x10] + ldr r0, [sp, #0x14] + cmp r1, r0 + beq _021ED318 + add sp, #0x24 + mov r0, #0x32 + pop {r4, r5, r6, r7, pc} +_021ED318: + mov r0, #0x14 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021ED320 +MOD05_021ED320: ; 0x021ED320 + push {r3, lr} + sub sp, #8 + add r1, sp, #0 + bl MOD05_021EC88C + add r0, sp, #0 + bl MOD05_021ED214 + add sp, #8 + pop {r3, pc} + + thumb_func_start MOD05_021ED334 +MOD05_021ED334: ; 0x021ED334 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl Script_GetDay + add r5, r0, #0 + add r0, r4, #0 + bl Script_GetMonth + mov r1, #0x64 + mul r1, r0 + add r0, r4, #0 + add r5, r5, r1 + bl FUN_0204B33C + cmp r0, #0 + beq _021ED358 + mov r0, #0xff + pop {r3, r4, r5, pc} +_021ED358: + ldr r2, _021ED374 ; =UNK05_021F7AF8 + mov r1, #0 +_021ED35C: + ldrh r0, [r2] + cmp r5, r0 + bne _021ED366 + mov r0, #0xe6 + pop {r3, r4, r5, pc} +_021ED366: + add r1, r1, #1 + add r2, r2, #2 + cmp r1, #0xd + blo _021ED35C + mov r0, #0xff + pop {r3, r4, r5, pc} + nop +_021ED374: .word UNK05_021F7AF8 + + thumb_func_start MOD05_021ED378 +MOD05_021ED378: ; 0x021ED378 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r7, r1, #0 + add r1, sp, #8 + str r0, [sp] + str r2, [sp, #4] + bl MOD05_021EC88C + mov r6, #0 + add r4, r6, #0 + add r5, sp, #8 +_021ED38E: + ldr r0, [r5] + mov r1, #0xab + mov r2, #0 + bl GetBoxMonData + cmp r0, #0 + beq _021ED3AC + ldr r0, [sp] + add r1, r4, #0 + bl Sav2_DayCare_GetMonX + mov r1, #1 + bl DayCareMon_AddSteps + add r6, r6, #1 +_021ED3AC: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #2 + blo _021ED38E + ldr r0, [sp] + bl Sav2_DayCare_GetEggPID + cmp r0, #0 + bne _021ED3F8 + cmp r6, #2 + bne _021ED3F8 + ldr r0, [sp] + mov r1, #1 + bl Sav2_DayCare_GetMonX + bl DayCareMon_GetSteps + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0xff + bne _021ED3F8 + ldr r0, [sp] + bl MOD05_021ED320 + add r4, r0, #0 + bl LCRandom + mov r1, #0x64 + mul r1, r0 + add r0, r1, #0 + ldr r1, _021ED498 ; =0x0000FFFF + bl _u32_div_f + cmp r4, r0 + bls _021ED3F8 + ldr r0, [sp] + bl MOD05_021EC944 +_021ED3F8: + ldr r0, [sp] + bl Sav2_DayCare_GetEggCycleCounter + add r4, r0, #0 + ldr r0, [sp] + add r1, r4, #1 + bl Sav2_DayCare_SetEggCycleCounter + ldr r0, [sp, #4] + bl MOD05_021ED334 + add r1, r4, #1 + cmp r1, r0 + bne _021ED490 + ldr r0, [sp] + mov r1, #0 + bl Sav2_DayCare_SetEggCycleCounter + add r0, r7, #0 + bl MOD05_021ED190 + add r6, r0, #0 + add r0, r7, #0 + mov r5, #0 + bl GetPartyCount + cmp r0, #0 + bls _021ED490 +_021ED430: + add r0, r7, #0 + add r1, r5, #0 + bl GetPartyMonByIndex + mov r1, #0x4c + mov r2, #0 + add r4, r0, #0 + bl GetMonData + cmp r0, #0 + beq _021ED484 + add r0, r4, #0 + mov r1, #3 + mov r2, #0 + bl GetMonData + cmp r0, #0 + bne _021ED484 + add r0, r4, #0 + mov r1, #9 + mov r2, #0 + bl GetMonData + str r0, [sp, #0x10] + cmp r0, #0 + beq _021ED47E + cmp r0, r6 + blo _021ED46E + sub r0, r0, r6 + str r0, [sp, #0x10] + b _021ED472 +_021ED46E: + sub r0, r0, #1 + str r0, [sp, #0x10] +_021ED472: + add r0, r4, #0 + mov r1, #9 + add r2, sp, #0x10 + bl SetMonData + b _021ED484 +_021ED47E: + add sp, #0x14 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021ED484: + add r0, r7, #0 + add r5, r5, #1 + bl GetPartyCount + cmp r5, r0 + blo _021ED430 +_021ED490: + mov r0, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021ED498: .word 0x0000FFFF + + thumb_func_start MOD05_021ED49C +MOD05_021ED49C: ; 0x021ED49C + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + bl GetPartyCount + add r6, r0, #0 + mov r5, #0 + cmp r6, #0 + ble _021ED4DA +_021ED4AC: + add r0, r7, #0 + add r1, r5, #0 + bl GetPartyMonByIndex + mov r1, #0x4c + mov r2, #0 + add r4, r0, #0 + bl GetMonData + cmp r0, #0 + beq _021ED4D4 + add r0, r4, #0 + mov r1, #9 + mov r2, #0 + bl GetMonData + cmp r0, #0 + bne _021ED4D4 + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} +_021ED4D4: + add r5, r5, #1 + cmp r5, r6 + blt _021ED4AC +_021ED4DA: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021ED4E0 +MOD05_021ED4E0: ; 0x021ED4E0 + push {r4, lr} + sub sp, #8 + add r4, r1, #0 + add r1, sp, #0 + bl MOD05_021EC88C + ldr r0, [sp] + mov r1, #5 + mov r2, #0 + bl GetBoxMonData + cmp r0, #0 + beq _021ED50E + ldr r2, [sp] + add r0, r4, #0 + mov r1, #0 + bl BufferBoxMonNickname + ldr r2, [sp] + add r0, r4, #0 + mov r1, #2 + bl BufferBoxMonOTName +_021ED50E: + ldr r0, [sp, #4] + mov r1, #5 + mov r2, #0 + bl GetBoxMonData + cmp r0, #0 + beq _021ED526 + ldr r2, [sp, #4] + add r0, r4, #0 + mov r1, #1 + bl BufferBoxMonNickname +_021ED526: + add sp, #8 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021ED52C +MOD05_021ED52C: ; 0x021ED52C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r1, #0 + add r1, sp, #0x18 + ldrb r6, [r1, #0x10] + add r5, r0, #0 + add r7, r2, #0 + add r1, r6, #0 + str r3, [sp, #8] + bl Sav2_DayCare_GetMonX + str r0, [sp, #0xc] + add r0, r5, #0 + add r1, r6, #0 + bl MOD05_021EC458 + add r5, r0, #0 + ldr r0, [sp, #0x2c] + add r1, r4, #0 + add r2, r5, #0 + bl BufferBoxMonNickname + ldr r0, [sp, #0xc] + bl DayCareMon_GetSteps + add r1, r0, #0 + add r0, r5, #0 + bl MOD05_021EC744 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [sp, #0x2c] + add r1, r7, #0 + mov r3, #3 + bl BufferIntegerAsString + add r0, r5, #0 + mov r1, #0x6f + mov r2, #0 + bl GetBoxMonData + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #2 + beq _021ED5B4 + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl GetBoxMonData + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x1d + beq _021ED5A4 + cmp r0, #0x20 + bne _021ED5B4 +_021ED5A4: + add r0, r5, #0 + mov r1, #0x4d + mov r2, #0 + bl GetBoxMonData + cmp r0, #0 + bne _021ED5B4 + mov r4, #2 +_021ED5B4: + ldr r0, [sp, #0x2c] + ldr r1, [sp, #8] + add r2, r4, #0 + bl BufferGenderSymbol + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021ED5C4 +MOD05_021ED5C4: ; 0x021ED5C4 + push {r3, r4, r5, lr} + add r5, r2, #0 + bl GetPartyMonByIndex + add r4, r0, #0 + bl FUN_020690E4 + add r2, r0, #0 + add r0, r5, #0 + mov r1, #0 + bl BufferBoxMonNickname + add r0, r4, #0 + mov r1, #5 + mov r2, #0 + bl GetMonData + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021ED5EC +MOD05_021ED5EC: ; 0x021ED5EC + push {r4, lr} + add r4, r0, #0 + bl Sav2_DayCare_GetEggPID + cmp r0, #0 + beq _021ED5FC + mov r0, #1 + pop {r4, pc} +_021ED5FC: + add r0, r4, #0 + bl MOD05_021EC464 + cmp r0, #0 + beq _021ED60E + add r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r4, pc} +_021ED60E: + mov r0, #0 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021ED614 +MOD05_021ED614: ; 0x021ED614 + cmp r0, #0x14 + bhi _021ED620 + bhs _021ED632 + cmp r0, #0 + beq _021ED62E + b _021ED63E +_021ED620: + cmp r0, #0x32 + bhi _021ED628 + beq _021ED636 + b _021ED63E +_021ED628: + cmp r0, #0x46 + beq _021ED63A + b _021ED63E +_021ED62E: + mov r0, #3 + bx lr +_021ED632: + mov r0, #2 + bx lr +_021ED636: + mov r0, #1 + bx lr +_021ED63A: + mov r0, #0 + bx lr +_021ED63E: + mov r0, #0 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021ED644 +MOD05_021ED644: ; 0x021ED644 + push {r3, lr} + bl MOD05_021ED320 + bl MOD05_021ED614 + pop {r3, pc} + + thumb_func_start MOD05_021ED650 +MOD05_021ED650: ; 0x021ED650 + push {r4, r5, r6, r7, lr} + sub sp, #0x3c + add r4, r0, #0 + add r5, r1, #0 + mov r0, #8 + bl String_ctor + str r0, [sp, #0x10] + add r0, r5, #0 + bl AllocMonZeroed + add r6, r0, #0 + add r0, r4, #0 + mov r1, #5 + mov r2, #0 + bl GetMonData + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x14] + mov r5, #0 + add r7, sp, #0x34 +_021ED67C: + add r1, r5, #0 + add r0, r4, #0 + add r1, #0x36 + mov r2, #0 + bl GetMonData + lsl r1, r5, #1 + strh r0, [r7, r1] + add r1, r5, #0 + add r0, r4, #0 + add r1, #0x3a + mov r2, #0 + bl GetMonData + add r1, sp, #0x30 + strb r0, [r1, r5] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #4 + blo _021ED67C + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl GetMonData + add r7, r0, #0 + mov r5, #0 +_021ED6B4: + add r1, r5, #0 + add r0, r4, #0 + add r1, #0x46 + mov r2, #0 + bl GetMonData + add r1, sp, #0x24 + add r1, #2 + strb r0, [r1, r5] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #6 + blo _021ED6B4 + add r0, r4, #0 + mov r1, #0xc + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #9] + add r0, r4, #0 + mov r1, #0x79 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #8] + add r0, r4, #0 + mov r1, #0xb + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #7] + add r0, r4, #0 + mov r1, #0x99 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #0xa] + add r0, r4, #0 + mov r1, #0x6e + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #5] + ldr r2, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x90 + bl GetMonData + add r0, r4, #0 + mov r1, #0x9c + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #3] + add r0, r4, #0 + mov r1, #7 + mov r2, #0 + bl GetMonData + str r0, [sp, #0x2c] + add r0, r4, #0 + mov r1, #0x70 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #4] + ldr r1, _021ED93C ; =0x000001EA + ldr r0, [sp, #0x14] + cmp r0, r1 + bne _021ED788 + add r0, r4, #0 + mov r1, #0x97 + mov r2, #0 + bl GetMonData + add r5, r0, #0 + mov r0, #2 + mov r1, #1 + bl FUN_02015CF8 + cmp r5, r0 + bne _021ED788 + ldr r0, [sp, #0x2c] + add r1, r7, #0 + bl CalcShininessByOtIdAndPersonality + cmp r0, #0 + beq _021ED788 +_021ED774: + add r0, r7, #0 + bl PRandom + add r7, r0, #0 + ldr r0, [sp, #0x2c] + add r1, r7, #0 + bl CalcShininessByOtIdAndPersonality + cmp r0, #0 + bne _021ED774 +_021ED788: + mov r2, #1 + str r2, [sp] + str r7, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r1, [sp, #0x14] + add r0, r6, #0 + mov r3, #0x20 + bl CreateMon + mov r5, #0 + add r7, sp, #0x34 +_021ED7A2: + add r1, r5, #0 + lsl r2, r5, #1 + add r0, r6, #0 + add r1, #0x36 + add r2, r7, r2 + bl SetMonData + add r1, r5, #0 + add r2, sp, #0x30 + add r0, r6, #0 + add r1, #0x3a + add r2, r2, r5 + bl SetMonData + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #4 + blo _021ED7A2 + add r7, sp, #0x24 + mov r5, #0 + add r7, #2 +_021ED7CE: + add r1, r5, #0 + add r0, r6, #0 + add r1, #0x46 + add r2, r7, r5 + bl SetMonData + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #6 + blo _021ED7CE + add r2, sp, #0x20 + add r0, r6, #0 + mov r1, #0xc + add r2, #1 + bl SetMonData + add r0, r6, #0 + mov r1, #0x79 + add r2, sp, #0x20 + bl SetMonData + add r2, sp, #0x1c + add r0, r6, #0 + mov r1, #0xb + add r2, #3 + bl SetMonData + add r2, sp, #0x1c + mov r1, #0x78 + add r0, sp, #0x18 + strb r1, [r0, #6] + add r0, r6, #0 + mov r1, #9 + add r2, #2 + bl SetMonData + add r2, sp, #0x20 + add r0, r6, #0 + mov r1, #0x99 + add r2, #2 + bl SetMonData + add r2, sp, #0x1c + add r0, r6, #0 + mov r1, #0x6e + add r2, #1 + bl SetMonData + ldr r2, [sp, #0x10] + add r0, r6, #0 + mov r1, #0x90 + bl SetMonData + add r2, sp, #0x18 + add r0, r6, #0 + mov r1, #0x9c + add r2, #3 + bl SetMonData + add r0, r6, #0 + mov r1, #7 + add r2, sp, #0x2c + bl SetMonData + add r0, r6, #0 + mov r1, #0x70 + add r2, sp, #0x1c + bl SetMonData + add r0, r4, #0 + mov r1, #0x97 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strh r0, [r1, #0xc] + add r0, r4, #0 + mov r1, #0x91 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #2] + add r0, r4, #0 + mov r1, #0x92 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #1] + add r0, r4, #0 + mov r1, #0x93 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1] + add r0, r6, #0 + mov r1, #0x97 + add r2, sp, #0x24 + bl SetMonData + add r2, sp, #0x18 + add r0, r6, #0 + mov r1, #0x91 + add r2, #2 + bl SetMonData + add r2, sp, #0x18 + add r0, r6, #0 + mov r1, #0x92 + add r2, #1 + bl SetMonData + add r0, r6, #0 + mov r1, #0x93 + add r2, sp, #0x18 + bl SetMonData + add r0, r4, #0 + mov r1, #0x98 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strh r0, [r1, #0xc] + add r0, r4, #0 + mov r1, #0x94 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #2] + add r0, r4, #0 + mov r1, #0x95 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1, #1] + add r0, r4, #0 + mov r1, #0x96 + mov r2, #0 + bl GetMonData + add r1, sp, #0x18 + strb r0, [r1] + add r0, r6, #0 + mov r1, #0x98 + add r2, sp, #0x24 + bl SetMonData + add r2, sp, #0x18 + add r0, r6, #0 + mov r1, #0x94 + add r2, #2 + bl SetMonData + add r2, sp, #0x18 + add r0, r6, #0 + mov r1, #0x95 + add r2, #1 + bl SetMonData + add r0, r6, #0 + mov r1, #0x96 + add r2, sp, #0x18 + bl SetMonData + add r0, r6, #0 + add r1, r4, #0 + bl CopyPokemonToPokemon + ldr r0, [sp, #0x10] + bl String_dtor + add r0, r6, #0 + bl FreeToHeap + add sp, #0x3c + pop {r4, r5, r6, r7, pc} + nop +_021ED93C: .word 0x000001EA + + thumb_func_start MOD05_021ED940 +MOD05_021ED940: ; 0x021ED940 + push {r4, r5, lr} + sub sp, #0x1c + mov r3, #0x46 + add r2, sp, #0 + strb r3, [r2, #3] + mov r5, #0 + strb r5, [r2, #2] + mov r3, #4 + strb r3, [r2, #1] + add r4, r0, #0 + strb r5, [r2] + bl MOD05_021ED650 + add r2, sp, #0 + add r0, r4, #0 + mov r1, #0x4c + add r2, #3 + bl SetMonData + add r0, r4, #0 + mov r1, #5 + add r2, r5, #0 + bl GetMonData + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r5, #0 + add r2, sp, #4 + bl GetSpeciesNameIntoArray + add r0, r4, #0 + mov r1, #0x74 + add r2, sp, #4 + bl SetMonData + add r2, sp, #0 + add r0, r4, #0 + mov r1, #0x4d + add r2, #2 + bl SetMonData + add r2, sp, #0 + add r0, r4, #0 + mov r1, #0x9a + add r2, #1 + bl SetMonData + add r0, r4, #0 + mov r1, #0x9b + add r2, sp, #0 + bl SetMonData + add r0, r4, #0 + bl CalcMonLevelAndStats + add sp, #0x1c + pop {r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021ED9B4 +MOD05_021ED9B4: ; 0x021ED9B4 + push {r3, lr} + bl MOD05_021ED214 + bl MOD05_021ED614 + pop {r3, pc} + + .section .rodata + + .global UNK05_021F7AF8 +UNK05_021F7AF8: ; 0x021F7AF8 + .byte 0x70, 0x00, 0xD6, 0x00 + .byte 0x2F, 0x01, 0x91, 0x01, 0xF5, 0x01, 0x63, 0x02, 0xC3, 0x02, 0x35, 0x03, 0xA0, 0x03, 0x07, 0x04 + .byte 0x61, 0x04, 0xC8, 0x04, 0xC9, 0x04 + + .global UNK05_021F7B12 +UNK05_021F7B12: ; 0x021F7B12 + .byte 0x68, 0x01 + + .global UNK05_021F7B14 +UNK05_021F7B14: ; 0x021F7B14 + .byte 0xFF, 0x00 + + .global UNK05_021F7B16 +UNK05_021F7B16: ; 0x021F7B16 + .byte 0xCA, 0x00, 0x2A, 0x01, 0xFE, 0x00 + .byte 0xB7, 0x00, 0xB7, 0x01, 0x3A, 0x01, 0x7A, 0x00, 0xB6, 0x01, 0x3B, 0x01, 0xB9, 0x00, 0xBE, 0x01 + .byte 0x3C, 0x01, 0x8F, 0x00, 0xCA, 0x01, 0x3D, 0x01, 0xE2, 0x00, 0x96, 0x01, 0x3E, 0x01, 0x3B, 0x01 + .byte 0xB8, 0x01, 0x3F, 0x01, 0x71, 0x00, 0xB1, 0x01, 0x40, 0x01, 0x66, 0x01 + + .global UNK05_021F7B48 +UNK05_021F7B48: ; 0x021F7B48 + .byte 0x21, 0x4E, 0x71, 0x00 + .byte 0x82, 0x00, 0xDB, 0x00, 0xCC, 0x00, 0x50, 0x00, 0x59, 0x01, 0x40, 0x01, 0xAE, 0x00, 0x13, 0x01 + .byte 0x0B, 0x01, 0x85, 0x00, 0xB5, 0x01, 0x24, 0x4E, 0xBB, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x00 + .byte 0xC8, 0x00, 0xFB, 0x00, 0x0E, 0x00, 0x5D, 0x01, 0xF2, 0x00, 0x97, 0x01, 0xE8, 0x00, 0x8A, 0x01 + .byte 0x27, 0x4E, 0xF3, 0x00, 0x72, 0x00, 0x36, 0x00, 0xC1, 0x00, 0xAF, 0x00, 0x1F, 0x01, 0x2C, 0x01 + .byte 0x19, 0x01, 0x4A, 0x01, 0xFC, 0x00, 0x88, 0x01, 0xC5, 0x01, 0x30, 0x4E, 0xE4, 0x00, 0xB9, 0x00 + .byte 0xC1, 0x00, 0xD3, 0x00, 0x3A, 0x01, 0x93, 0x01, 0x9D, 0x01, 0xFD, 0x00, 0x33, 0x4E, 0x67, 0x00 + .byte 0xAC, 0x00, 0x9A, 0x00, 0x2C, 0x00, 0x44, 0x00, 0xB3, 0x00, 0xFD, 0x00, 0xCF, 0x00, 0x83, 0x01 + .byte 0x7E, 0x01, 0x35, 0x4E, 0xB9, 0x00, 0xCE, 0x00, 0xB8, 0x00, 0x62, 0x00, 0xA1, 0x00, 0x36, 0x01 + .byte 0x8F, 0x00, 0x12, 0x00, 0xFD, 0x00, 0x37, 0x4E, 0xE4, 0x00, 0x15, 0x00, 0xB4, 0x00, 0xFB, 0x00 + .byte 0x31, 0x01, 0xB8, 0x00, 0x56, 0x01, 0x32, 0x00, 0x3B, 0x4E, 0xAF, 0x00, 0xDB, 0x00, 0x44, 0x00 + .byte 0xE5, 0x00, 0x9D, 0x00, 0xE8, 0x00, 0x0E, 0x00, 0x32, 0x01, 0x90, 0x01, 0x3D, 0x4E, 0x30, 0x00 + .byte 0x32, 0x00, 0x24, 0x00, 0x74, 0x00, 0xCC, 0x00, 0x44, 0x00, 0xFB, 0x00, 0xE4, 0x00, 0x40, 0x4E + .byte 0x44, 0x00, 0x32, 0x00, 0x30, 0x00, 0x24, 0x00, 0x85, 0x00, 0x5D, 0x00, 0xFB, 0x00, 0x85, 0x01 + .byte 0x45, 0x4E, 0xB9, 0x00, 0x5F, 0x00, 0xAF, 0x00, 0xB4, 0x00, 0x32, 0x00, 0x50, 0x01, 0xF4, 0x00 + .byte 0x01, 0x01, 0x8A, 0x01, 0x46, 0x01, 0x9C, 0x01, 0x49, 0x4E, 0x62, 0x00, 0xE4, 0x00, 0xB9, 0x00 + .byte 0x10, 0x00, 0x12, 0x00, 0xAE, 0x00, 0xA1, 0x01, 0x5F, 0x00, 0xAC, 0x01, 0x9D, 0x01, 0x4B, 0x4E + .byte 0x0E, 0x00, 0x4B, 0x00, 0xAF, 0x00, 0xEB, 0x00, 0xCC, 0x00, 0x13, 0x01, 0x41, 0x01, 0x4E, 0x4E + .byte 0xCE, 0x00, 0x67, 0x00, 0x44, 0x00, 0x3C, 0x00, 0xAF, 0x00, 0xE6, 0x00, 0x71, 0x00, 0xE4, 0x00 + .byte 0xE8, 0x00, 0xC2, 0x01, 0xB8, 0x01, 0x50, 0x4E, 0xE2, 0x00, 0x67, 0x00, 0xCA, 0x00, 0x44, 0x01 + .byte 0x61, 0x00, 0xEA, 0x00, 0x86, 0x01, 0xC2, 0x01, 0x52, 0x4E, 0xB9, 0x00, 0x67, 0x00, 0xF6, 0x00 + .byte 0xE4, 0x00, 0xFB, 0x00, 0xFD, 0x00, 0x9D, 0x00, 0xAA, 0x01, 0x36, 0x01, 0x54, 0x4E, 0xB4, 0x00 + .byte 0xCC, 0x00, 0x5F, 0x00, 0x85, 0x00, 0xF4, 0x00, 0x12, 0x01, 0x3C, 0x01, 0xAF, 0x00, 0x83, 0x01 + .byte 0x82, 0x01, 0x56, 0x4E, 0x5F, 0x00, 0x3C, 0x00, 0xC1, 0x00, 0x71, 0x00, 0xF8, 0x00, 0x5E, 0x00 + .byte 0xEE, 0x00, 0x1F, 0x01, 0x6D, 0x00, 0x19, 0x01, 0xAA, 0x01, 0x58, 0x4E, 0x9D, 0x00, 0xC1, 0x00 + .byte 0x60, 0x00, 0x44, 0x00, 0xB3, 0x00, 0xFB, 0x00, 0x17, 0x01, 0x09, 0x01, 0x72, 0x01, 0x5A, 0x4E + .byte 0x22, 0x00, 0xDB, 0x00, 0xF2, 0x00, 0x25, 0x00, 0x53, 0x00, 0x50, 0x01, 0x01, 0x01, 0x26, 0x00 + .byte 0x8A, 0x01, 0x5C, 0x4E, 0x36, 0x00, 0x96, 0x00, 0x3D, 0x00, 0x72, 0x00, 0xAA, 0x00, 0x5A, 0x01 + .byte 0x2D, 0x01, 0x55, 0x01, 0x1F, 0x01, 0x1B, 0x01, 0x5F, 0x4E, 0xE3, 0x00, 0x70, 0x00, 0x1A, 0x01 + .byte 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0x7B, 0x01, 0x81, 0x01, 0x62, 0x4E, 0x71, 0x00, 0x60, 0x00 + .byte 0x1B, 0x00, 0xE3, 0x00, 0x09, 0x01, 0x44, 0x00, 0x9D, 0x00, 0x72, 0x01, 0x07, 0x00, 0x09, 0x00 + .byte 0x08, 0x00, 0xA2, 0x01, 0x65, 0x4E, 0x0E, 0x00, 0xE3, 0x00, 0x73, 0x00, 0xEB, 0x00, 0x8D, 0x00 + .byte 0x13, 0x01, 0x59, 0x01, 0x84, 0x01, 0x41, 0x01, 0x68, 0x4E, 0x3E, 0x00, 0xF3, 0x00, 0xE5, 0x00 + .byte 0x72, 0x00, 0xDB, 0x00, 0x6D, 0x00, 0x1A, 0x01, 0x6F, 0x01, 0x6A, 0x4E, 0x05, 0x00, 0x9D, 0x00 + .byte 0x4F, 0x01, 0x67, 0x01, 0xAF, 0x00, 0x6D, 0x4E, 0xAC, 0x00, 0x25, 0x00, 0x18, 0x00, 0x5F, 0x00 + .byte 0xCC, 0x00, 0x26, 0x00, 0x20, 0x00, 0x6F, 0x4E, 0xDB, 0x00, 0xBB, 0x00, 0xF8, 0x00, 0x17, 0x00 + .byte 0x2C, 0x01, 0xD6, 0x00, 0xAD, 0x00, 0x7E, 0x01, 0x4F, 0x01, 0xAC, 0x01, 0x73, 0x4E, 0xD3, 0x00 + .byte 0xC1, 0x00, 0x77, 0x00, 0x10, 0x00, 0x62, 0x00, 0xAF, 0x00, 0x29, 0x01, 0xAE, 0x00, 0x57, 0x01 + .byte 0xBD, 0x00, 0x90, 0x01, 0x74, 0x4E, 0x62, 0x00, 0x30, 0x00, 0x72, 0x00, 0xB9, 0x00, 0xAF, 0x00 + .byte 0x1B, 0x01, 0x77, 0x00, 0x9D, 0x01, 0x76, 0x4E, 0x7A, 0x00, 0xC3, 0x00, 0x32, 0x00, 0x20, 0x00 + .byte 0x15, 0x00, 0xE3, 0x00, 0xFC, 0x00, 0x4D, 0x01, 0x44, 0x01, 0x78, 0x4E, 0x72, 0x00, 0xD4, 0x00 + .byte 0x7A, 0x00, 0x1E, 0x01, 0xAE, 0x00, 0x45, 0x01, 0x99, 0x00, 0xA9, 0x01, 0xFE, 0x00, 0x00, 0x01 + .byte 0xFF, 0x00, 0x7A, 0x4E, 0x3D, 0x00, 0x24, 0x00, 0x70, 0x00, 0xE5, 0x00, 0x67, 0x00, 0x4D, 0x01 + .byte 0x55, 0x01, 0x7C, 0x4E, 0x95, 0x00, 0xC3, 0x00, 0x72, 0x00, 0x36, 0x01, 0x05, 0x01, 0x20, 0x01 + .byte 0x99, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x7F, 0x4E, 0x9D, 0x00, 0xAF, 0x00, 0x99, 0x00 + .byte 0x4F, 0x01, 0x6F, 0x00, 0xCD, 0x00, 0x5E, 0x01, 0x80, 0x4E, 0x70, 0x00, 0x12, 0x01, 0x10, 0x01 + .byte 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0xA1, 0x01, 0x04, 0x01, 0xAB, 0x01, 0x82, 0x4E, 0x5B, 0x00 + .byte 0x72, 0x00, 0x85, 0x00, 0xAF, 0x00, 0x15, 0x00, 0x1A, 0x01, 0x0E, 0x00, 0x41, 0x01, 0xF6, 0x00 + .byte 0x86, 0x4E, 0xEB, 0x00, 0xEC, 0x00, 0x73, 0x00, 0xF6, 0x00, 0xF4, 0x00, 0x13, 0x01, 0xAE, 0x00 + .byte 0x0B, 0x01, 0x7D, 0x01, 0xB5, 0x01, 0x88, 0x4E, 0x9D, 0x00, 0xF6, 0x00, 0xBB, 0x00, 0x67, 0x00 + .byte 0x82, 0x00, 0xC3, 0x00, 0x0E, 0x00, 0x18, 0x00, 0xBA, 0x01, 0x8C, 0x4E, 0xBB, 0x00, 0xDE, 0x00 + .byte 0x22, 0x00, 0xAE, 0x00, 0x09, 0x01, 0xD6, 0x00, 0xAD, 0x00, 0xA4, 0x00, 0x85, 0x00, 0x67, 0x01 + .byte 0x8D, 0x4E, 0x67, 0x00, 0x95, 0x00, 0x3C, 0x00, 0xC2, 0x00, 0xDC, 0x00, 0x05, 0x01, 0x20, 0x01 + .byte 0xB4, 0x00, 0xAE, 0x00, 0x8F, 0x4E, 0xF2, 0x00, 0xB3, 0x00, 0x9D, 0x00, 0x44, 0x00, 0xDE, 0x00 + .byte 0x0E, 0x00, 0xAE, 0x00, 0x32, 0x01, 0x97, 0x01, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x91, 0x4E + .byte 0xD9, 0x00, 0x76, 0x00, 0xD7, 0x00, 0x38, 0x01, 0xA4, 0x00, 0x44, 0x00, 0x0E, 0x01, 0x64, 0x01 + .byte 0x92, 0x4E, 0xAF, 0x00, 0x5D, 0x00, 0x48, 0x00, 0x73, 0x00, 0x85, 0x00, 0x49, 0x00, 0x0B, 0x01 + .byte 0x1B, 0x01, 0xB5, 0x01, 0x93, 0x4E, 0x17, 0x00, 0xC1, 0x00, 0x74, 0x00, 0xDB, 0x00, 0x32, 0x00 + .byte 0x44, 0x00, 0x32, 0x01, 0xA4, 0x00, 0x26, 0x00, 0x1B, 0x01, 0x67, 0x01, 0x94, 0x4E, 0xAF, 0x00 + .byte 0x3E, 0x00, 0xBE, 0x00, 0x32, 0x00, 0x96, 0x00, 0x52, 0x00, 0xE1, 0x00, 0x44, 0x01, 0x96, 0x4E + .byte 0x3C, 0x00, 0x72, 0x00, 0x38, 0x00, 0xD6, 0x00, 0x2C, 0x01, 0xBD, 0x00, 0x91, 0x01, 0x9A, 0x4E + .byte 0xF8, 0x00, 0x5F, 0x00, 0x66, 0x00, 0xF4, 0x00, 0xFC, 0x00, 0x0F, 0x01, 0x6D, 0x00, 0x66, 0x01 + .byte 0x2A, 0x01, 0x9B, 0x4E, 0x44, 0x00, 0xDB, 0x00, 0xE2, 0x00, 0x0D, 0x00, 0xB3, 0x00, 0x71, 0x00 + .byte 0xCB, 0x00, 0x3E, 0x01, 0x95, 0x01, 0x90, 0x01, 0x9F, 0x4E, 0x1F, 0x00, 0xAF, 0x00, 0xCE, 0x00 + .byte 0xB9, 0x00, 0x62, 0x00, 0x72, 0x01, 0x6C, 0x01, 0xA3, 0x4E, 0xC1, 0x00, 0xA4, 0x00, 0x41, 0x01 + .byte 0x1F, 0x01, 0x5D, 0x01, 0xAE, 0x00, 0xD6, 0x00, 0x20, 0x00, 0xF6, 0x00, 0xFA, 0x00, 0x5A, 0x00 + .byte 0xA5, 0x4E, 0xCC, 0x00, 0xAF, 0x00, 0xCB, 0x00, 0xAE, 0x00, 0x41, 0x01, 0x11, 0x01, 0x19, 0x01 + .byte 0x39, 0x01, 0x57, 0x01, 0xAA, 0x4E, 0x3D, 0x00, 0x3E, 0x00, 0x15, 0x00, 0x30, 0x00, 0x72, 0x00 + .byte 0x9D, 0x00, 0xBF, 0x00, 0x1A, 0x01, 0x7A, 0x01, 0x86, 0x01, 0xAC, 0x4E, 0x3D, 0x00, 0x3E, 0x00 + .byte 0xE5, 0x00, 0x5B, 0x00, 0xAF, 0x00, 0x1A, 0x01, 0x6D, 0x00, 0x55, 0x01, 0xC4, 0x00, 0x67, 0x00 + .byte 0xAE, 0x4E, 0x12, 0x00, 0xE4, 0x00, 0xC1, 0x00, 0xD3, 0x00, 0xE1, 0x00, 0xAE, 0x00, 0x74, 0x01 + .byte 0xAF, 0x4E, 0x7A, 0x00, 0xCC, 0x00, 0x26, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0xA4, 0x00, 0x12, 0x00 + .byte 0xE4, 0x00, 0xB3, 0x4E, 0x71, 0x00, 0x36, 0x00, 0x72, 0x00, 0x30, 0x00, 0xE1, 0x00, 0x5D, 0x01 + .byte 0x97, 0x01, 0xB8, 0x4E, 0x16, 0x00, 0x49, 0x00, 0x44, 0x00, 0xF6, 0x00, 0xAF, 0x00, 0x0B, 0x01 + .byte 0x13, 0x01, 0x40, 0x01, 0xB5, 0x01, 0x38, 0x01, 0x7A, 0x01, 0xBB, 0x4E, 0x9A, 0x00, 0x62, 0x00 + .byte 0xB3, 0x00, 0x25, 0x00, 0xC1, 0x00, 0x57, 0x01, 0x50, 0x01, 0x32, 0x01, 0x26, 0x00, 0x18, 0x00 + .byte 0x8A, 0x01, 0xBE, 0x4E, 0xF2, 0x00, 0x25, 0x00, 0x38, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x01 + .byte 0x5A, 0x01, 0x51, 0x01, 0x08, 0x00, 0xE8, 0x00, 0x5D, 0x01, 0xC1, 0x4E, 0x26, 0x00, 0xE4, 0x00 + .byte 0xA3, 0x00, 0x74, 0x00, 0xB3, 0x00, 0xA4, 0x00, 0x0F, 0x01, 0x12, 0x01, 0x83, 0x01, 0xCC, 0x00 + .byte 0x57, 0x01, 0xC3, 0x4E, 0x77, 0x00, 0x30, 0x00, 0xB9, 0x00, 0x11, 0x00, 0x12, 0x00, 0x8F, 0x00 + .byte 0x29, 0x01, 0x61, 0x00, 0x65, 0x00, 0xC5, 0x4E, 0x3C, 0x00, 0x75, 0x00, 0x3E, 0x01, 0x95, 0x01 + .byte 0x67, 0x00, 0xE3, 0x00, 0x1A, 0x01, 0xC2, 0x01, 0xC7, 0x4E, 0x3C, 0x00, 0x32, 0x00, 0x31, 0x00 + .byte 0xE2, 0x00, 0xE4, 0x00, 0x44, 0x01, 0x86, 0x01, 0x8E, 0x01, 0xCA, 0x4E, 0xAF, 0x00, 0x67, 0x00 + .byte 0x85, 0x00, 0x3C, 0x00, 0xFA, 0x00, 0x61, 0x00, 0x36, 0x00, 0xCC, 0x4E, 0xB3, 0x00, 0x75, 0x00 + .byte 0xD9, 0x00, 0xE3, 0x00, 0x03, 0x00, 0x11, 0x01, 0x0C, 0x01, 0xFC, 0x00, 0x09, 0x00, 0x41, 0x01 + .byte 0xCD, 0x4E, 0xD9, 0x00, 0x76, 0x00, 0x85, 0x00, 0xBB, 0x00, 0x96, 0x00, 0x66, 0x00, 0x11, 0x01 + .byte 0xA4, 0x00, 0x39, 0x01, 0x57, 0x01, 0xCE, 0x4E, 0xC3, 0x00, 0xD9, 0x00, 0xB9, 0x00, 0x11, 0x01 + .byte 0x39, 0x01, 0x83, 0x01, 0x57, 0x01, 0x64, 0x01, 0xCF, 0x4E, 0xD9, 0x00, 0x77, 0x00, 0x40, 0x00 + .byte 0xC1, 0x00, 0xF8, 0x00, 0xA4, 0x00, 0xF4, 0x00, 0xA1, 0x01, 0x77, 0x01, 0x7D, 0x01, 0xD1, 0x4E + .byte 0x72, 0x00, 0x41, 0x00, 0x62, 0x00, 0xB9, 0x00, 0xD3, 0x00, 0xF4, 0x00, 0x29, 0x01, 0x1F, 0x01 + .byte 0xAC, 0x01, 0x85, 0x01, 0xD3, 0x4E, 0x24, 0x00, 0x22, 0x00, 0xDB, 0x00, 0x67, 0x00, 0x73, 0x00 + .byte 0x3C, 0x01, 0x0C, 0x01, 0x04, 0x01, 0x1C, 0x00, 0xD7, 0x4E, 0x71, 0x00, 0xD9, 0x00, 0x85, 0x00 + .byte 0xF8, 0x00, 0xBB, 0x00, 0xC3, 0x00, 0x30, 0x00, 0xA4, 0x00, 0xC5, 0x01, 0x14, 0x01, 0x1F, 0x01 + .byte 0xD9, 0x4E, 0x78, 0x00, 0x1D, 0x00, 0x6A, 0x00, 0x6F, 0x00, 0xCD, 0x00, 0x48, 0x01, 0xDB, 0x4E + .byte 0x5D, 0x00, 0xE3, 0x00, 0x26, 0x00, 0x73, 0x00, 0x85, 0x00, 0x0E, 0x01, 0xF4, 0x00, 0x38, 0x01 + .byte 0x84, 0x01, 0xDE, 0x4E, 0x44, 0x00, 0x67, 0x00, 0xE4, 0x00, 0x61, 0x00, 0xB4, 0x00, 0x15, 0x00 + .byte 0x03, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0x57, 0x01, 0x54, 0x01, 0xDF, 0x4E, 0x40, 0x01, 0xE3, 0x00 + .byte 0x49, 0x00, 0x0B, 0x01, 0xAE, 0x00, 0x0E, 0x01, 0x13, 0x01, 0xE6, 0x00, 0xE1, 0x4E, 0x12, 0x00 + .byte 0xB3, 0x00, 0x8D, 0x00, 0x44, 0x01, 0x3E, 0x01, 0x6C, 0x01, 0xB9, 0x00, 0xE4, 0x00, 0xE2, 0x4E + .byte 0x22, 0x00, 0xF6, 0x00, 0xDB, 0x00, 0xAE, 0x00, 0x2C, 0x01, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00 + .byte 0x44, 0x00, 0xE3, 0x00, 0x18, 0x00, 0xE6, 0x4E, 0x12, 0x00, 0x41, 0x00, 0x77, 0x00, 0x11, 0x00 + .byte 0x8F, 0x00, 0x6D, 0x00, 0x29, 0x01, 0xC3, 0x00, 0x77, 0x01, 0x67, 0x00, 0xB9, 0x00, 0xE8, 0x4E + .byte 0x67, 0x00, 0xC2, 0x00, 0xF4, 0x00, 0x1E, 0x01, 0x06, 0x01, 0x85, 0x01, 0xA9, 0x01, 0xAE, 0x00 + .byte 0xB4, 0x00, 0xD2, 0x01, 0xEB, 0x4E, 0x24, 0x00, 0x85, 0x00, 0xC1, 0x00, 0xF8, 0x00, 0xFB, 0x00 + .byte 0xF4, 0x00, 0x11, 0x01, 0x15, 0x01, 0x18, 0x00, 0xF3, 0x00, 0xEC, 0x4E, 0x73, 0x00, 0x2A, 0x00 + .byte 0xAF, 0x00, 0x81, 0x00, 0x44, 0x00, 0x48, 0x01, 0x17, 0x01, 0x26, 0x00, 0x86, 0x01, 0xEE, 0x4E + .byte 0x75, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x00, 0x1D, 0x00, 0x36, 0x01, 0xAE, 0x00, 0x78, 0x01 + .byte 0x15, 0x01, 0xAD, 0x00, 0xEF, 0x4E, 0xE8, 0x00, 0x11, 0x00, 0x0D, 0x00, 0x44, 0x00, 0x48, 0x01 + .byte 0x61, 0x00, 0xE2, 0x00, 0x26, 0x00, 0x6C, 0x01, 0x90, 0x01, 0xB8, 0x01, 0xF1, 0x4E, 0x76, 0x00 + .byte 0xB9, 0x00, 0x73, 0x00, 0xD9, 0x00, 0xF2, 0x00, 0xD7, 0x00, 0xAD, 0x00, 0x09, 0x01, 0x72, 0x01 + .byte 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0xF3, 0x4E, 0xAF, 0x00, 0x72, 0x00, 0x3D, 0x00, 0x30, 0x00 + .byte 0x36, 0x01, 0x44, 0x01, 0x8E, 0x01, 0xF5, 0x4E, 0xE6, 0x00, 0x1A, 0x01, 0x0E, 0x01, 0x6F, 0x01 + .byte 0x48, 0x01, 0xBD, 0x00, 0xF6, 0x4E, 0x6A, 0x00, 0x75, 0x00, 0xAF, 0x00, 0xCE, 0x00, 0x17, 0x01 + .byte 0xE4, 0x00, 0x26, 0x00, 0xF7, 0x4E, 0x44, 0x00, 0xB4, 0x00, 0xC1, 0x00, 0x73, 0x00, 0x2C, 0x00 + .byte 0x32, 0x01, 0xFC, 0x00, 0xCA, 0x01, 0x82, 0x01, 0xE4, 0x00, 0xA4, 0x01, 0x08, 0x00, 0xF8, 0x4E + .byte 0xF2, 0x00, 0x24, 0x00, 0x45, 0x00, 0x44, 0x00, 0xE8, 0x00, 0x39, 0x01, 0x19, 0x01, 0xD6, 0x00 + .byte 0xEE, 0x00, 0x26, 0x00, 0x72, 0x01, 0x90, 0x01, 0xFA, 0x4E, 0x97, 0x00, 0x01, 0x01, 0xAE, 0x00 + .byte 0x6C, 0x00, 0x06, 0x01, 0xFE, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFC, 0x4E, 0x24, 0x00, 0x2C, 0x00 + .byte 0x22, 0x00, 0x9D, 0x00, 0xF6, 0x00, 0x55, 0x01, 0x4D, 0x01, 0x26, 0x00, 0x5A, 0x00, 0xAE, 0x00 + .byte 0xFE, 0x4E, 0x9D, 0x00, 0x67, 0x00, 0x36, 0x00, 0x85, 0x00, 0x70, 0x00, 0x13, 0x01, 0x6D, 0x00 + .byte 0x4D, 0x01, 0x0B, 0x01, 0x88, 0x01, 0xFF, 0x4E, 0x3E, 0x00, 0xBE, 0x00, 0x30, 0x00, 0x72, 0x00 + .byte 0x67, 0x00, 0x56, 0x00, 0x5E, 0x01, 0xAD, 0x00, 0xAF, 0x00, 0x01, 0x4F, 0x3E, 0x00, 0x62, 0x00 + .byte 0xF8, 0x00, 0x96, 0x00, 0xE5, 0x00, 0x2D, 0x01, 0xA4, 0x01, 0x08, 0x00, 0x02, 0x4F, 0xEF, 0x00 + .byte 0x38, 0x00, 0x72, 0x00, 0x15, 0x00, 0x2C, 0x01, 0x9D, 0x00, 0xF3, 0x00, 0x5A, 0x01, 0x96, 0x00 + .byte 0x03, 0x4F, 0x41, 0x00, 0xE4, 0x00, 0x12, 0x00, 0x8F, 0x00, 0xAE, 0x00, 0x9D, 0x01, 0x74, 0x01 + .byte 0x04, 0x4F, 0x53, 0x00, 0x63, 0x00, 0xE4, 0x00, 0x44, 0x00, 0xB4, 0x00, 0xB3, 0x00, 0xFB, 0x00 + .byte 0x05, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0xA1, 0x01, 0x82, 0x01, 0x07, 0x4F, 0x74, 0x00, 0x22, 0x00 + .byte 0xF6, 0x00, 0xAD, 0x00, 0x44, 0x00, 0x5A, 0x00, 0x1B, 0x01, 0xA4, 0x01, 0x0A, 0x4F, 0xB4, 0x00 + .byte 0x32, 0x00, 0x2C, 0x00, 0xCF, 0x00, 0xF4, 0x00, 0x46, 0x01, 0x25, 0x00, 0x18, 0x00, 0xAC, 0x01 + .byte 0x0C, 0x4F, 0xE5, 0x00, 0x88, 0x00, 0xB7, 0x00, 0xAA, 0x00, 0x0E, 0x01, 0x44, 0x00, 0x9A, 0x01 + .byte 0xA2, 0x01, 0x0E, 0x4F, 0x60, 0x00, 0xF4, 0x00, 0xFC, 0x00, 0x11, 0x01, 0x08, 0x00, 0x65, 0x01 + .byte 0x0F, 0x4F, 0x02, 0x00, 0x70, 0x00, 0x1B, 0x00, 0x60, 0x00, 0xEE, 0x00, 0x07, 0x00, 0x08, 0x00 + .byte 0xDF, 0x00, 0x10, 0x4F, 0x02, 0x00, 0x05, 0x00, 0x70, 0x00, 0x67, 0x00, 0xEE, 0x00, 0x09, 0x00 + .byte 0xB7, 0x00, 0xDF, 0x00, 0x8A, 0x01, 0x11, 0x4F, 0xD9, 0x00, 0xB3, 0x00, 0x45, 0x00, 0xCB, 0x00 + .byte 0xF4, 0x00, 0xAE, 0x00, 0x0E, 0x01, 0xD6, 0x00, 0x92, 0x00, 0x67, 0x01, 0x26, 0x00, 0x82, 0x01 + .byte 0x16, 0x4F, 0xE4, 0x00, 0x17, 0x00, 0xC8, 0x00, 0x74, 0x00, 0xF6, 0x00, 0x5D, 0x01, 0xAE, 0x00 + .byte 0x4E, 0x01, 0x74, 0x01, 0xBA, 0x01, 0x1C, 0x4F, 0xF2, 0x00, 0x2C, 0x01, 0x1B, 0x01, 0x49, 0x00 + .byte 0xE1, 0x00, 0x32, 0x01, 0x84, 0x01, 0x18, 0x00, 0x40, 0x01, 0xEB, 0x00, 0x59, 0x01, 0xB5, 0x01 + .byte 0x1F, 0x4F, 0x44, 0x00, 0xB3, 0x00, 0xCB, 0x00, 0xCF, 0x00, 0x9D, 0x00, 0x09, 0x01, 0x32, 0x01 + .byte 0xE2, 0x00, 0x61, 0x00, 0x90, 0x01, 0x83, 0x01, 0x6C, 0x01, 0x22, 0x4F, 0x1F, 0x01, 0xFD, 0x00 + .byte 0xAE, 0x00, 0x17, 0x00, 0x2D, 0x01, 0xF3, 0x00, 0x44, 0x00, 0xF6, 0x00, 0xFA, 0x00, 0x2C, 0x00 + .byte 0x26, 0x00, 0xAA, 0x01, 0x25, 0x4F, 0x36, 0x01, 0x31, 0x01, 0x57, 0x01, 0x2B, 0x00, 0x19, 0x01 + .byte 0x85, 0x01, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x7E, 0x01, 0x27, 0x4F, 0xCC, 0x00, 0xE4, 0x00 + .byte 0xA4, 0x00, 0x41, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0xBD, 0x00, 0x2E, 0x4F, 0xEB, 0x00, 0x4B, 0x00 + .byte 0xE6, 0x00, 0x49, 0x00, 0xAF, 0x00, 0x37, 0x00, 0x41, 0x01, 0x31, 0x4F, 0x49, 0x00, 0x85, 0x00 + .byte 0x62, 0x00, 0x0D, 0x00, 0x24, 0x00, 0xCE, 0x00, 0x84, 0x01, 0xA1, 0x01, 0x34, 0x4F, 0xE4, 0x00 + .byte 0x30, 0x00, 0x1F, 0x01, 0x77, 0x00, 0x63, 0x00, 0x8F, 0x00, 0x12, 0x00, 0x9D, 0x01, 0x36, 0x4F + .byte 0x36, 0x00, 0xEF, 0x00, 0x61, 0x00, 0x10, 0x00, 0x5A, 0x01, 0x88, 0x01, 0x1A, 0x01, 0x38, 0x4F + .byte 0x32, 0x00, 0x05, 0x01, 0xD4, 0x00, 0x06, 0x01, 0xC2, 0x00, 0x20, 0x01, 0xA9, 0x01, 0x6D, 0x00 + .byte 0x3B, 0x4F, 0xC1, 0x00, 0x55, 0x01, 0x3C, 0x00, 0x38, 0x00, 0xAA, 0x00, 0x44, 0x01, 0xC2, 0x01 + .byte 0x3D, 0x4F, 0x39, 0x01, 0xCF, 0x00, 0xCC, 0x00, 0xCE, 0x00, 0x0E, 0x01, 0x84, 0x01, 0x66, 0x01 + .byte 0x92, 0x01, 0x3F, 0x4F, 0xE4, 0x00, 0xA3, 0x00, 0x22, 0x00, 0xAD, 0x00, 0x32, 0x01, 0xAE, 0x00 + .byte 0xD6, 0x00, 0x67, 0x01, 0x90, 0x01, 0x42, 0x4F, 0xCB, 0x00, 0xB9, 0x00, 0x10, 0x00, 0x3E, 0x01 + .byte 0x95, 0x01, 0x90, 0x01, 0xC2, 0x01, 0x45, 0x4F, 0x24, 0x00, 0xAD, 0x00, 0xCF, 0x00, 0x46, 0x01 + .byte 0x09, 0x01, 0x6C, 0x00, 0x1B, 0x01, 0x48, 0x4F, 0xB9, 0x00, 0xC5, 0x00, 0xC1, 0x00, 0x0E, 0x01 + .byte 0xEE, 0x00, 0x17, 0x01, 0xDF, 0x00, 0x44, 0x00, 0x66, 0x01, 0xA2, 0x01, 0x4A, 0x4F, 0xE3, 0x00 + .byte 0x2F, 0x00, 0x1F, 0x01, 0x15, 0x00, 0x41, 0x01, 0x39, 0x01, 0x4B, 0x4F, 0xDE, 0x00, 0xCD, 0x00 + .byte 0x99, 0x00, 0x26, 0x00, 0x4F, 0x01, 0x4C, 0x4F, 0x0E, 0x01, 0xF4, 0x00, 0xFD, 0x00, 0x39, 0x01 + .byte 0x11, 0x01, 0xE2, 0x00, 0xA4, 0x00, 0x41, 0x01, 0x83, 0x01, 0xFC, 0x00, 0xAC, 0x01, 0x85, 0x01 + .byte 0x4E, 0x4F, 0xF4, 0x00, 0x69, 0x00, 0xEC, 0x00, 0xA1, 0x01, 0x04, 0x01, 0x4F, 0x4F, 0x0E, 0x00 + .byte 0xCE, 0x00, 0x31, 0x01, 0xF4, 0x00, 0xF6, 0x00, 0x41, 0x01, 0x85, 0x01, 0xA7, 0x01, 0xA8, 0x01 + .byte 0xA6, 0x01, 0x82, 0x01, 0x50, 0x4F, 0x1B, 0x01, 0x22, 0x00, 0x17, 0x00, 0x09, 0x01, 0xAE, 0x00 + .byte 0x67, 0x00, 0xBA, 0x01, 0x97, 0x01, 0x53, 0x4F, 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0xC1, 0x00 + .byte 0xFC, 0x00, 0xE2, 0x00, 0xDF, 0x00, 0x80, 0x01, 0x81, 0x01, 0xAB, 0x01, 0xA2, 0x01, 0x55, 0x4F + .byte 0xF2, 0x00, 0x1D, 0x00, 0xFD, 0x00, 0xAE, 0x00, 0x81, 0x00, 0xB3, 0x01, 0xA7, 0x01, 0xA8, 0x01 + .byte 0xA6, 0x01, 0x57, 0x4F, 0xA4, 0x00, 0x11, 0x01, 0x2F, 0x00, 0xBA, 0x00, 0x58, 0x4F, 0xA4, 0x00 + .byte 0x11, 0x01, 0x2F, 0x00, 0xBA, 0x00, 0x59, 0x4F, 0xE2, 0x00, 0x3E, 0x01, 0x0F, 0x01, 0xE3, 0x00 + .byte 0x95, 0x01, 0x5A, 0x4F, 0xE2, 0x00, 0x3E, 0x01, 0x4A, 0x00, 0xE3, 0x00, 0x95, 0x01, 0x5B, 0x4F + .byte 0xBF, 0x00, 0xEB, 0x00, 0x2A, 0x00, 0xB2, 0x00, 0x4F, 0x00, 0x4B, 0x00, 0xAA, 0x00, 0xB5, 0x01 + .byte 0x5C, 0x4F, 0x8A, 0x00, 0x97, 0x00, 0x7B, 0x00, 0xDC, 0x00, 0xAE, 0x00, 0xC2, 0x00, 0x5E, 0x4F + .byte 0x38, 0x00, 0x26, 0x00, 0x25, 0x00, 0xF6, 0x00, 0x60, 0x4F, 0x26, 0x00, 0x25, 0x00, 0xCF, 0x00 + .byte 0xAD, 0x00, 0xD6, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0x41, 0x01, 0x6F, 0x00, 0x22, 0x00, 0x62, 0x4F + .byte 0x50, 0x01, 0xB8, 0x00, 0x22, 0x00, 0xCD, 0x00, 0x6F, 0x00, 0x17, 0x00, 0x19, 0x01, 0xF6, 0x00 + .byte 0xAA, 0x01, 0x01, 0x01, 0x64, 0x4F, 0x1C, 0x01, 0xCB, 0x00, 0xD6, 0x00, 0x19, 0x01, 0x59, 0x00 + .byte 0x5A, 0x00, 0x65, 0x4F, 0xF8, 0x00, 0x46, 0x01, 0xA4, 0x00, 0x0F, 0x01, 0xAC, 0x01, 0x85, 0x00 + .byte 0xF3, 0x00, 0x67, 0x4F, 0xE3, 0x00, 0x9D, 0x00, 0x12, 0x01, 0x32, 0x00, 0xE2, 0x00, 0x11, 0x01 + .byte 0x0F, 0x01, 0x09, 0x01, 0xFC, 0x00, 0x10, 0x01, 0xAB, 0x01, 0x68, 0x4F, 0x74, 0x00, 0x62, 0x00 + .byte 0x10, 0x00, 0xAF, 0x00, 0xD2, 0x00, 0x6B, 0x4F, 0x40, 0x01, 0x33, 0x00, 0x2A, 0x01, 0xDF, 0x00 + .byte 0x44, 0x00, 0x43, 0x00, 0x09, 0x01, 0x59, 0x01, 0x92, 0x01, 0x6D, 0x4F, 0x61, 0x00, 0x72, 0x00 + .byte 0xE4, 0x00, 0x63, 0x00, 0x29, 0x01, 0x97, 0x01, 0x6F, 0x4F, 0xAF, 0x00, 0x18, 0x00, 0x0D, 0x00 + .byte 0x44, 0x00, 0x2E, 0x00, 0xAE, 0x00, 0x9A, 0x00, 0x90, 0x01, 0xE8, 0x00, 0xCA, 0x01, 0x70, 0x4F + .byte 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x22, 0x00, 0xB8, 0x00, 0x74, 0x01, 0x90, 0x01, 0x73, 0x4F + .byte 0x25, 0x00, 0xFA, 0x00, 0xD1, 0x00, 0x38, 0x00, 0xAF, 0x00, 0x24, 0x00, 0x75, 0x4F, 0x2C, 0x01 + .byte 0x1B, 0x01, 0x22, 0x00, 0xF6, 0x00, 0x1A, 0x01, 0x14, 0x01, 0xE8, 0x00, 0x79, 0x4F, 0x70, 0x00 + .byte 0x69, 0x00, 0xF3, 0x00, 0x9D, 0x00, 0x7A, 0x01, 0x41, 0x01, 0x7B, 0x4F, 0xE5, 0x00, 0x1A, 0x01 + .byte 0x0E, 0x00, 0x9D, 0x00, 0x67, 0x00, 0x1C, 0x00, 0xB8, 0x01, 0x7D, 0x4F, 0xF3, 0x00, 0xE1, 0x00 + .byte 0x2C, 0x01, 0x5F, 0x00, 0x71, 0x00, 0x6D, 0x00, 0x36, 0x00, 0x72, 0x00, 0x41, 0x01, 0x7F, 0x4F + .byte 0xF8, 0x00, 0xF4, 0x00, 0x7D, 0x01, 0x32, 0x00, 0x85, 0x00, 0xD2, 0x01, 0x80, 0x4F, 0x32, 0x00 + .byte 0x15, 0x01, 0x0F, 0x01, 0xFC, 0x00, 0xA1, 0x01, 0x92, 0x00, 0x81, 0x4F, 0x32, 0x00, 0xC2, 0x00 + .byte 0xC1, 0x00, 0x36, 0x01, 0x1E, 0x01, 0xE4, 0x00, 0xA9, 0x01, 0x73, 0x01, 0x6D, 0x00, 0x83, 0x4F + .byte 0x1E, 0x01, 0xC2, 0x00, 0xDC, 0x00, 0x20, 0x01, 0x06, 0x01, 0xB9, 0x00, 0xD2, 0x01, 0x85, 0x4F + .byte 0x1D, 0x00, 0x15, 0x00, 0x0D, 0x00, 0x49, 0x00, 0x0B, 0x01, 0xB5, 0x01, 0xEB, 0x00, 0xAE, 0x00 + .byte 0x5C, 0x01, 0x86, 0x4F, 0x32, 0x00, 0xAE, 0x00, 0x5F, 0x00, 0x8A, 0x00, 0x11, 0x01, 0xF8, 0x00 + .byte 0x87, 0x4F, 0xE2, 0x00, 0xB9, 0x00, 0x26, 0x00, 0x15, 0x01, 0xAE, 0x00, 0xA4, 0x00, 0xD4, 0x00 + .byte 0xAC, 0x01, 0x82, 0x01, 0x85, 0x01, 0x74, 0x01, 0x7E, 0x01, 0x89, 0x4F, 0x4F, 0x01, 0xBF, 0x00 + .byte 0xCD, 0x00, 0x32, 0x00, 0x75, 0x00, 0x8B, 0x4F, 0x5A, 0x01, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00 + .byte 0x19, 0x01, 0x9D, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0x44, 0x01, 0x8E, 0x4F, 0x1F, 0x01, 0x2C, 0x01 + .byte 0x22, 0x00, 0x30, 0x00, 0x70, 0x00, 0x6D, 0x00, 0x88, 0x01, 0x91, 0x4F, 0xDE, 0x00, 0x82, 0x00 + .byte 0x5A, 0x01, 0x85, 0x00, 0xD6, 0x00, 0x9D, 0x00, 0x91, 0x01, 0xAD, 0x00, 0xBD, 0x00, 0x92, 0x4F + .byte 0x96, 0x00, 0x30, 0x00, 0x5A, 0x01, 0x2C, 0x01, 0xBD, 0x01, 0x88, 0x01, 0x93, 0x4F, 0x38, 0x00 + .byte 0x25, 0x00, 0x52, 0x00, 0xEF, 0x00, 0x5D, 0x01, 0xA8, 0x01, 0xA5, 0x01, 0x97, 0x01, 0xA3, 0x4F + .byte 0x84, 0x01, 0x4A, 0x00, 0x41, 0x01, 0x22, 0x00, 0x26, 0x00, 0x48, 0x01, 0x92, 0x01, 0x25, 0x00 + .byte 0x85, 0x00, 0x14, 0x01, 0xA6, 0x4F, 0x07, 0x00, 0x09, 0x00, 0x18, 0x00, 0xE3, 0x00, 0x01, 0x01 + .byte 0x74, 0x00, 0x0E, 0x01, 0xFC, 0x00, 0x2B, 0x01, 0x44, 0x00, 0xA9, 0x4F, 0xCA, 0x01, 0x30, 0x00 + .byte 0x19, 0x01, 0x2C, 0x01, 0xBD, 0x00, 0xAD, 0x00, 0xAF, 0x00, 0x61, 0x00, 0x88, 0x01, 0x38, 0x00 + .byte 0xAC, 0x4F, 0x29, 0x01, 0x1F, 0x00, 0xE4, 0x00, 0x36, 0x01, 0x1C, 0x00, 0xC1, 0x00, 0x26, 0x00 + .byte 0xAF, 0x4F, 0x62, 0x00, 0x5A, 0x01, 0x26, 0x00, 0x9A, 0x00, 0x6F, 0x00, 0xCD, 0x00, 0x3C, 0x01 + .byte 0x91, 0x01, 0xB3, 0x4F, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x62, 0x00, 0x50, 0x01, 0x24, 0x00 + .byte 0xB6, 0x4F, 0xBF, 0x00, 0xEB, 0x00, 0x2A, 0x00, 0xB2, 0x00, 0x4F, 0x00, 0x4B, 0x00, 0xAA, 0x00 + .byte 0xB5, 0x01, 0x46, 0x01, 0xB8, 0x4F, 0xF2, 0x00, 0x25, 0x00, 0x26, 0x00, 0x2B, 0x00, 0x15, 0x00 + .byte 0x17, 0x00, 0x12, 0x00, 0x67, 0x01, 0xBA, 0x4F, 0x1D, 0x00, 0xB8, 0x00, 0x74, 0x00, 0x26, 0x00 + .byte 0x5E, 0x01, 0x22, 0x00, 0x67, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0xC1, 0x4F, 0x57, 0x01, 0x2C, 0x00 + .byte 0x39, 0x01, 0x6F, 0x00, 0xCD, 0x00, 0x04, 0x01, 0xAF, 0x00, 0xC2, 0x4F, 0xBD, 0x00, 0x1D, 0x00 + .byte 0x9A, 0x00, 0xA3, 0x00, 0x3C, 0x01, 0x03, 0x00, 0xD2, 0x00, 0xE2, 0x00, 0xC4, 0x4F, 0x4B, 0x00 + .byte 0xE6, 0x00, 0x41, 0x01, 0x0B, 0x01, 0x40, 0x01, 0x38, 0x01, 0xC6, 0x4F, 0x44, 0x00, 0xF3, 0x00 + .byte 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x19, 0x01, 0x06, 0x01, 0xAE, 0x00, 0x85, 0x00, 0x5A, 0x00 + .byte 0xC9, 0x4F, 0x06, 0x01, 0x22, 0x00, 0xC2, 0x00, 0x32, 0x00, 0x72, 0x00, 0x5F, 0x00, 0xCB, 0x4F + .byte 0x39, 0x01, 0xFC, 0x00, 0xE3, 0x00, 0xBA, 0x00, 0xCA, 0x01, 0xD5, 0x00, 0x43, 0x00, 0x47, 0x01 + .byte 0x9F, 0x01, 0x09, 0x00, 0x08, 0x00, 0x07, 0x00, 0xCF, 0x4F, 0x2C, 0x00, 0x27, 0x00, 0x62, 0x00 + .byte 0x1C, 0x00, 0x39, 0x01, 0x74, 0x01, 0xD1, 0x4F, 0x32, 0x00, 0xAE, 0x00, 0x5F, 0x00, 0x8A, 0x00 + .byte 0x11, 0x01, 0xF8, 0x00, 0x69, 0x00, 0xD2, 0x4F, 0xE4, 0x00, 0x2B, 0x00, 0x7B, 0x00, 0x26, 0x00 + .byte 0xF2, 0x00, 0xB8, 0x00, 0x36, 0x01, 0x82, 0x01, 0xD6, 0x4F, 0x78, 0x00, 0x1D, 0x00, 0x6A, 0x00 + .byte 0x6F, 0x00, 0xCD, 0x00, 0x48, 0x01, 0xD7, 0x4F, 0xF8, 0x00, 0x5F, 0x00, 0x66, 0x00, 0xF4, 0x00 + .byte 0xFC, 0x00, 0x0F, 0x01, 0x6D, 0x00, 0x66, 0x01, 0x2A, 0x01, 0x69, 0x01, 0xCC, 0x00, 0xD8, 0x4F + .byte 0xD9, 0x00, 0x76, 0x00, 0xD7, 0x00, 0x38, 0x01, 0xA4, 0x00, 0x44, 0x00, 0x0E, 0x01, 0x64, 0x01 + .byte 0x83, 0x01, 0xD9, 0x4F, 0xE3, 0x00, 0x65, 0x00, 0x61, 0x00, 0xA1, 0x01, 0x30, 0x00, 0xDA, 0x4F + .byte 0xC2, 0x00, 0xDC, 0x00, 0x6C, 0x00, 0x1E, 0x01, 0x20, 0x01, 0xA9, 0x01, 0xDB, 0x4F, 0xE1, 0x00 + .byte 0xC8, 0x00, 0xEF, 0x00, 0xB8, 0x00, 0x26, 0x00, 0x25, 0x00, 0xE8, 0x00, 0x48, 0x01, 0x22, 0x00 + .byte 0xBA, 0x01, 0xDE, 0x4F, 0x7A, 0x00, 0xCC, 0x00, 0x26, 0x00, 0xAE, 0x00, 0xA4, 0x00, 0x12, 0x00 + .byte 0xE4, 0x00, 0xAC, 0x01, 0xDF, 0x4F, 0xEE, 0x00, 0xC5, 0x00, 0x2C, 0x00, 0xAA, 0x00, 0x47, 0x01 + .byte 0x88, 0x00, 0x61, 0x00, 0x9A, 0x01, 0xF2, 0x00, 0x43, 0x00, 0x4E, 0x01, 0x2B, 0x01, 0xA2, 0x01 + .byte 0xE1, 0x4F, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0xAE, 0x00, 0x2F, 0x01, 0x22, 0x00, 0x48, 0x01 + .byte 0xE3, 0x4F, 0xB9, 0x00, 0x67, 0x00, 0x1C, 0x00, 0xA3, 0x00, 0x6D, 0x00, 0x12, 0x00, 0x61, 0x00 + .byte 0xE4, 0x00, 0x90, 0x01, 0xE5, 0x4F, 0x7E, 0x01, 0x6C, 0x01, 0xDF, 0x00, 0x1D, 0x00, 0x9A, 0x01 + .byte 0x60, 0x00, 0xFC, 0x00, 0x66, 0x01, 0x09, 0x01, 0xEE, 0x00, 0xA2, 0x01, 0xE7, 0x4F, 0x4F, 0x00 + .byte 0x4E, 0x00, 0x4B, 0x00, 0x15, 0x00, 0xEB, 0x00, 0x59, 0x01, 0x49, 0x00, 0x84, 0x01, 0xE8, 0x4F + .byte 0xBA, 0x00, 0xCC, 0x00, 0xAF, 0x00, 0x91, 0x01, 0x96, 0x00, 0x3C, 0x00, 0x41, 0x01, 0x61, 0x00 + .byte 0xEA, 0x4F, 0xEF, 0x00, 0x38, 0x00, 0x72, 0x00, 0x15, 0x00, 0x2C, 0x01, 0x9D, 0x00, 0xF3, 0x00 + .byte 0x5A, 0x01, 0x96, 0x00, 0x44, 0x01, 0xEB, 0x4F, 0x49, 0x00, 0x59, 0x01, 0x92, 0x01, 0x4A, 0x00 + .byte 0x26, 0x00, 0x36, 0x00, 0x17, 0x00, 0xFF, 0xFF + + .section .bss + + .global UNK05_021FD680 +UNK05_021FD680: ; 0x021FD680 + .space 0x4 diff --git a/arm9/modules/05/asm/mod05_021ED9C0.s b/arm9/modules/05/asm/mod05_021ED9C0.s new file mode 100644 index 00000000..962a3c63 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021ED9C0.s @@ -0,0 +1,233 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + + thumb_func_start MOD05_021ED9C0 +MOD05_021ED9C0: ; 0x021ED9C0 + push {r3, r4, r5, lr} + mov r2, #0 + mov r1, #4 + add r3, r2, #0 + add r5, r0, #0 + bl MOD05_021E4BE8 + add r4, r0, #0 + str r5, [r4] + bl MOD05_021ED9EC + add r0, r4, #0 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021ED9DC +MOD05_021ED9DC: ; 0x021ED9DC + push {r4, lr} + add r4, r0, #0 + bl MOD05_021EDA28 + add r0, r4, #0 + bl MOD05_021E4C00 + pop {r4, pc} + + thumb_func_start MOD05_021ED9EC +MOD05_021ED9EC: ; 0x021ED9EC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4] + mov r1, #4 + mov r2, #0x57 + bl MOD05_021E5078 + ldr r0, [r4] + mov r1, #3 + mov r2, #6 + mov r3, #1 + bl MOD05_021E50D4 + mov r0, #3 + str r0, [sp] + mov r3, #0 + mov r1, #4 + ldr r0, _021EDA24 ; =UNK05_021F8A48 + str r3, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + add r2, r1, #0 + bl MOD05_021E4EFC + add sp, #0xc + pop {r3, r4, pc} + nop +_021EDA24: .word UNK05_021F8A48 + + thumb_func_start MOD05_021EDA28 +MOD05_021EDA28: ; 0x021EDA28 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + mov r1, #4 + bl MOD05_021E50A0 + ldr r0, [r4] + mov r1, #3 + bl MOD05_021E5114 + ldr r0, [r4] + mov r1, #4 + bl MOD05_021E506C + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EDA48 +MOD05_021EDA48: ; 0x021EDA48 + push {r4, r5, lr} + sub sp, #0x24 + add r5, r0, #0 + bl MOD05_021E4C24 + add r4, r0, #0 + add r0, r5, #0 + bl FUN_02058738 + str r0, [sp, #0x14] + add r0, r4, #0 + mov r1, #0x18 + str r4, [sp, #0x18] + bl MOD05_021E4C08 + str r0, [sp, #0x1c] + add r1, sp, #8 + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + str r0, [r1, #8] + add r0, r5, #0 + mov r1, #2 + str r5, [sp, #0x20] + bl FUN_0205829C + add r1, sp, #0x14 + str r1, [sp] + str r0, [sp, #4] + ldr r1, _021EDA94 ; =UNK05_021F8A34 + add r0, r4, #0 + add r2, sp, #8 + mov r3, #0 + bl MOD05_021E4DC4 + add sp, #0x24 + pop {r4, r5, pc} + nop +_021EDA94: .word UNK05_021F8A34 + + thumb_func_start MOD05_021EDA98 +MOD05_021EDA98: ; 0x021EDA98 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r2, sp, #0 + mov r1, #0 + str r1, [r2] + str r1, [r2, #4] + add r5, r0, #0 + str r1, [r2, #8] + bl FUN_0206475C + add r2, r4, #0 + add r3, r0, #0 + add r2, #0x10 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r4, #0x1c] + bl FUN_02058448 + str r0, [r4, #4] + ldr r0, [r4, #0x1c] + bl FUN_02058450 + str r0, [r4, #8] + add r0, r5, #0 + add r1, sp, #0 + bl FUN_0206476C + ldr r0, [r4, #0x14] + mov r1, #4 + add r2, sp, #0 + bl MOD05_021E4EE4 + str r0, [r4, #0x20] + mov r0, #1 + add sp, #0xc + pop {r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EDAE8 +MOD05_021EDAE8: ; 0x021EDAE8 + ldr r3, _021EDAF0 ; =FUN_0201F744 + ldr r0, [r1, #0x20] + bx r3 + nop +_021EDAF0: .word FUN_0201F744 + + thumb_func_start MOD05_021EDAF4 +MOD05_021EDAF4: ; 0x021EDAF4 + push {r4, lr} + add r2, r1, #0 + add r4, r0, #0 + ldr r0, [r2, #0x1c] + ldr r1, [r2, #4] + ldr r2, [r2, #8] + bl FUN_020582A8 + cmp r0, #0 + bne _021EDB0E + add r0, r4, #0 + bl MOD05_021E4DE4 +_021EDB0E: + pop {r4, pc} + + thumb_func_start MOD05_021EDB10 +MOD05_021EDB10: ; 0x021EDB10 + push {r4, r5, r6, lr} + sub sp, #0x18 + add r5, r1, #0 + ldr r4, [r5, #0x1c] + ldr r1, [r5, #4] + add r6, r0, #0 + ldr r2, [r5, #8] + add r0, r4, #0 + bl FUN_020582A8 + cmp r0, #0 + bne _021EDB32 + add r0, r6, #0 + bl MOD05_021E4DE4 + add sp, #0x18 + pop {r4, r5, r6, pc} +_021EDB32: + add r0, r4, #0 + add r1, sp, #0xc + bl FUN_02058B5C + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02058B84 + ldr r1, [sp, #0xc] + ldr r0, [sp] + add r0, r1, r0 + str r0, [sp, #0xc] + ldr r1, [sp, #0x10] + ldr r0, [sp, #4] + add r0, r1, r0 + str r0, [sp, #0x10] + ldr r1, [sp, #0x14] + ldr r0, [sp, #8] + add r1, r1, r0 + mov r0, #3 + lsl r0, r0, #0xe + str r1, [sp, #0x14] + add r0, r1, r0 + str r0, [sp, #0x14] + ldr r0, [r5, #0x20] + add r1, sp, #0xc + bl FUN_0201F7C8 + add sp, #0x18 + pop {r4, r5, r6, pc} + .balign 4, 0 + + .section .rodata + + .global UNK05_021F8A34 +UNK05_021F8A34: ; 0x021F8A34 + .word 0x00000024, MOD05_021EDA98, MOD05_021EDAE8, MOD05_021EDAF4 + .word MOD05_021EDB10 + + .global UNK05_021F8A48 +UNK05_021F8A48: ; 0x021F8A48 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021EDB70.s b/arm9/modules/05/asm/mod05_021EDB70.s new file mode 100644 index 00000000..ec46fb91 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021EDB70.s @@ -0,0 +1,390 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021EDB70 +MOD05_021EDB70: ; 0x021EDB70 + push {r3, r4, r5, lr} + mov r2, #0 + mov r1, #0x60 + add r3, r2, #0 + add r5, r0, #0 + bl MOD05_021E4BE8 + add r4, r0, #0 + str r5, [r4] + bl MOD05_021EDB9C + add r0, r4, #0 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EDB8C +MOD05_021EDB8C: ; 0x021EDB8C + push {r4, lr} + add r4, r0, #0 + bl MOD05_021EDBBC + add r0, r4, #0 + bl MOD05_021E4C00 + pop {r4, pc} + + thumb_func_start MOD05_021EDB9C +MOD05_021EDB9C: ; 0x021EDB9C + push {r3, lr} + sub sp, #8 + add r3, r0, #0 + add r0, #0x58 + str r0, [sp] + add r0, r3, #0 + add r0, #0x5c + str r0, [sp, #4] + ldr r0, [r3] + mov r1, #0x50 + mov r2, #0 + add r3, r3, #4 + bl MOD05_021E51EC + add sp, #8 + pop {r3, pc} + + thumb_func_start MOD05_021EDBBC +MOD05_021EDBBC: ; 0x021EDBBC + ldr r3, _021EDBC4 ; =MOD05_021E4C00 + ldr r0, [r0, #0x5c] + bx r3 + nop +_021EDBC4: .word MOD05_021E4C00 + + thumb_func_start MOD05_021EDBC8 +MOD05_021EDBC8: ; 0x021EDBC8 + push {r4, r5, r6, lr} + sub sp, #0x20 + add r2, sp, #8 + mov r1, #0 + str r1, [r2] + str r1, [r2, #4] + add r5, r0, #0 + str r1, [r2, #8] + bl FUN_020553A0 + add r4, r0, #0 + bl MOD05_021E4C24 + add r6, r0, #0 + mov r1, #0x10 + str r6, [sp, #0x14] + bl MOD05_021E4C08 + str r0, [sp, #0x18] + add r0, r4, #0 + mov r1, #2 + str r5, [sp, #0x1c] + bl FUN_0205829C + add r1, sp, #0x14 + str r1, [sp] + str r0, [sp, #4] + ldr r1, _021EDC10 ; =UNK05_021F8A6C + add r0, r6, #0 + add r2, sp, #8 + mov r3, #0 + bl MOD05_021E4DC4 + add sp, #0x20 + pop {r4, r5, r6, pc} + nop +_021EDC10: .word UNK05_021F8A6C + + thumb_func_start MOD05_021EDC14 +MOD05_021EDC14: ; 0x021EDC14 + push {r3, r4, r5, lr} + add r5, r1, #0 + bl FUN_0206475C + add r4, r0, #0 + add r3, r4, #0 + add r2, r5, #0 + ldmia r3!, {r0, r1} + add r2, #0x24 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + ldr r0, [r4, #8] + bl FUN_020553A0 + mov r1, #0 + mvn r1, r1 + add r4, r0, #0 + str r1, [r5, #4] + bl FUN_02058448 + str r0, [r5, #0x14] + add r0, r4, #0 + bl FUN_02058450 + str r0, [r5, #0x18] + mov r0, #1 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021EDC4C +MOD05_021EDC4C: ; 0x021EDC4C + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021EDC50 +MOD05_021EDC50: ; 0x021EDC50 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r1, #0 + str r0, [sp] + ldr r0, [r5, #0x2c] + str r0, [sp, #4] + bl FUN_020553A0 + ldr r1, [r5, #0x14] + ldr r2, [r5, #0x18] + add r6, r0, #0 + bl FUN_020582A8 + cmp r0, #0 + bne _021EDC78 + ldr r0, [sp] + bl MOD05_021E4DE4 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} +_021EDC78: + ldr r7, [r5, #4] + add r0, r6, #0 + bl FUN_02058720 + strb r0, [r5, #8] + ldrb r0, [r5, #8] + bl MOD05_021EDDF4 + str r0, [r5, #4] + mov r0, #0 + str r0, [r5] + ldr r4, [r5, #4] + sub r0, r0, #1 + cmp r4, r0 + beq _021EDCA0 + ldr r0, [sp, #4] + bl FUN_020552F8 + cmp r4, r0 + beq _021EDCAE +_021EDCA0: + mov r0, #0 + str r0, [r5, #0x1c] + str r0, [r5, #0x20] + mov r0, #1 + add sp, #0x24 + str r0, [r5] + pop {r4, r5, r6, r7, pc} +_021EDCAE: + cmp r7, r4 + beq _021EDCB8 + mov r0, #0 + str r0, [r5, #0x1c] + str r0, [r5, #0x20] +_021EDCB8: + add r0, r6, #0 + bl FUN_02058B2C + add r4, r0, #0 + ldr r0, [r5, #4] + bl FUN_02059BF4 + add r7, r0, #0 + add r0, r6, #0 + bl FUN_02058B4C + str r0, [sp, #8] + ldr r0, [r5, #4] + bl FUN_02059C00 + add r2, r0, #0 + ldr r1, [sp, #8] + add r0, r4, r7 + add r1, r1, r2 + add r2, sp, #0xc + bl FUN_02059E60 + add r0, r6, #0 + add r1, sp, #0x18 + bl FUN_02058B5C + ldr r0, [sp, #0x1c] + add r1, sp, #0xc + str r0, [sp, #0x10] + ldr r0, [sp] + bl FUN_0206476C + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EDCFC +MOD05_021EDCFC: ; 0x021EDCFC + push {r3, r4, r5, r6, lr} + sub sp, #0x3c + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + cmp r0, #1 + beq _021EDDE2 + mov r0, #0 + ldr r1, [r4, #4] + mvn r0, r0 + cmp r1, r0 + beq _021EDDE2 + ldr r0, [r4, #0x1c] + add r0, r0, #1 + str r0, [r4, #0x1c] + cmp r0, #0xf + ble _021EDD34 + mov r0, #0 + str r0, [r4, #0x1c] + ldr r0, [r4, #0x20] + add r0, r0, #1 + lsr r2, r0, #0x1f + lsl r1, r0, #0x1f + sub r1, r1, r2 + mov r0, #0x1f + ror r1, r0 + add r0, r2, r1 + str r0, [r4, #0x20] +_021EDD34: + ldr r3, _021EDDE8 ; =UNK05_021F8A60 + add r2, sp, #0x24 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021EDDEC ; =UNK05_021F8A80 + str r0, [r2] + add r3, sp, #0 + mov r2, #4 +_021EDD46: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021EDD46 + ldr r0, [r5] + mov r2, #0x18 + str r0, [r3] + ldr r1, [r4, #4] + ldr r3, _021EDDF0 ; =UNK05_021F8AA4 + add r0, r1, #0 + mul r0, r2 + add r0, r3, r0 + ldr r5, [r4, #0x20] + mov r3, #0xc + mul r3, r5 + add r5, r0, r3 + cmp r1, #3 + bhi _021EDDB4 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EDD76: ; jump table + .short _021EDD7E - _021EDD76 - 2 ; case 0 + .short _021EDD8C - _021EDD76 - 2 ; case 1 + .short _021EDD9A - _021EDD76 - 2 ; case 2 + .short _021EDDA8 - _021EDD76 - 2 ; case 3 +_021EDD7E: + mov r1, #0 + add r0, sp, #0 + mov r2, #0xb4 + add r3, r1, #0 + bl FUN_0201CB20 + b _021EDDB4 +_021EDD8C: + mov r1, #0 + add r0, sp, #0 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0201CB20 + b _021EDDB4 +_021EDD9A: + mov r1, #0 + add r0, sp, #0 + add r2, #0xf6 + add r3, r1, #0 + bl FUN_0201CB20 + b _021EDDB4 +_021EDDA8: + mov r1, #0 + add r0, sp, #0 + mov r2, #0x5a + add r3, r1, #0 + bl FUN_0201CB20 +_021EDDB4: + add r0, r6, #0 + add r1, sp, #0x30 + bl FUN_0206477C + ldr r1, [sp, #0x30] + ldr r0, [r5] + add r2, sp, #0 + add r0, r1, r0 + str r0, [sp, #0x30] + ldr r1, [sp, #0x34] + ldr r0, [r5, #4] + add r3, sp, #0x24 + add r0, r1, r0 + str r0, [sp, #0x34] + ldr r1, [sp, #0x38] + ldr r0, [r5, #8] + add r0, r1, r0 + str r0, [sp, #0x38] + ldr r0, [r4, #0x28] + add r1, sp, #0x30 + add r0, r0, #4 + bl FUN_0201B26C +_021EDDE2: + add sp, #0x3c + pop {r3, r4, r5, r6, pc} + nop +_021EDDE8: .word UNK05_021F8A60 +_021EDDEC: .word UNK05_021F8A80 +_021EDDF0: .word UNK05_021F8AA4 + + thumb_func_start MOD05_021EDDF4 +MOD05_021EDDF4: ; 0x021EDDF4 + push {r4, lr} + add r4, r0, #0 + bl FUN_020547D4 + cmp r0, #0 + beq _021EDE04 + mov r0, #0 + pop {r4, pc} +_021EDE04: + add r0, r4, #0 + bl FUN_020547E0 + cmp r0, #0 + beq _021EDE12 + mov r0, #1 + pop {r4, pc} +_021EDE12: + add r0, r4, #0 + bl FUN_020547C8 + cmp r0, #0 + beq _021EDE20 + mov r0, #2 + pop {r4, pc} +_021EDE20: + add r0, r4, #0 + bl FUN_020547BC + cmp r0, #0 + beq _021EDE2E + mov r0, #3 + pop {r4, pc} +_021EDE2E: + mov r0, #0 + mvn r0, r0 + pop {r4, pc} + + .section .rodata + + .global UNK05_021F8A60 +UNK05_021F8A60: ; 0x021F8A60 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + + .global UNK05_021F8A6C +UNK05_021F8A6C: ; 0x021F8A6C + .word 0x00000030, MOD05_021EDC14, MOD05_021EDC4C, MOD05_021EDC50 + .word MOD05_021EDCFC + + .global UNK05_021F8A80 +UNK05_021F8A80: ; 0x021F8A80 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + + .global UNK05_021F8AA4 +UNK05_021F8AA4: ; 0x021F8AA4 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021EDE34.s b/arm9/modules/05/asm/mod05_021EDE34.s new file mode 100644 index 00000000..1c80c321 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021EDE34.s @@ -0,0 +1,3816 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021EDE34 +MOD05_021EDE34: ; 0x021EDE34 + push {r4, r5, r6, lr} + add r6, r2, #0 + add r5, r1, #0 + add r1, r6, #0 + bl _s32_div_f + add r4, r1, #0 + add r0, r5, #0 + add r1, r6, #0 + bl _s32_div_f + cmp r4, r1 + bne _021EDE52 + mov r0, #1 + pop {r4, r5, r6, pc} +_021EDE52: + mov r0, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EDE58 +MOD05_021EDE58: ; 0x021EDE58 + push {r4, r5, r6, lr} + add r6, r2, #0 + add r5, r1, #0 + add r1, r6, #0 + bl _s32_div_f + add r4, r0, #0 + add r0, r5, #0 + add r1, r6, #0 + bl _s32_div_f + cmp r4, r0 + bne _021EDE76 + mov r0, #1 + pop {r4, r5, r6, pc} +_021EDE76: + mov r0, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EDE7C +MOD05_021EDE7C: ; 0x021EDE7C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x30 + add r4, r1, #0 + mul r4, r0 + add r1, r5, r4 + ldr r0, [r1, #0x14] + cmp r0, #0 + beq _021EDE94 + ldr r0, [r1, #0xc] + bl MOD05_021EF8F8 +_021EDE94: + add r1, r5, r4 + ldr r0, [r1, #0x18] + cmp r0, #0 + beq _021EDEA2 + ldr r0, [r1, #0x10] + bl MOD05_021F4444 +_021EDEA2: + mov r1, #1 + add r0, r5, r4 + str r1, [r0, #0x28] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EDEAC +MOD05_021EDEAC: ; 0x021EDEAC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _021EDEBC + ldr r0, [r4, #8] + bl MOD05_021EF8F8 +_021EDEBC: + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _021EDEC8 + ldr r0, [r4, #0xc] + bl MOD05_021F4444 +_021EDEC8: + mov r0, #0 + str r0, [r4, #0x10] + str r0, [r4, #0x14] + pop {r4, pc} + + thumb_func_start MOD05_021EDED0 +MOD05_021EDED0: ; 0x021EDED0 + push {r3, r4, r5, r6, r7, lr} + add r5, r2, #0 + asr r2, r0, #4 + lsr r2, r2, #0x1b + add r2, r0, r2 + asr r7, r2, #5 + asr r2, r1, #4 + lsr r2, r2, #0x1b + add r2, r1, r2 + asr r6, r2, #5 + ldr r2, [sp, #0x18] + str r3, [sp] + ldr r4, [sp, #0x1c] + bl MOD05_021EEE08 + ldr r1, [sp, #0x18] + bl MOD05_021EF620 + add r1, r6, #0 + mul r1, r5 + add r1, r7, r1 + cmp r0, #3 + bhi _021EDFB6 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EDF0A: ; jump table + .short _021EDF12 - _021EDF0A - 2 ; case 0 + .short _021EDF38 - _021EDF0A - 2 ; case 1 + .short _021EDF60 - _021EDF0A - 2 ; case 2 + .short _021EDF8A - _021EDF0A - 2 ; case 3 +_021EDF12: + sub r2, r1, r5 + str r1, [r4, #0xc] + sub r0, r2, #1 + str r0, [r4] + str r2, [r4, #4] + sub r0, r1, #1 + str r0, [r4, #8] + sub r0, r7, #1 + bpl _021EDF2C + mov r0, #0 + mvn r0, r0 + str r0, [r4] + str r0, [r4, #8] +_021EDF2C: + sub r0, r6, #1 + bpl _021EDFBA + mov r0, #0 + mvn r0, r0 + str r0, [r4, #4] + pop {r3, r4, r5, r6, r7, pc} +_021EDF38: + str r1, [r4, #8] + sub r0, r1, r5 + str r0, [r4] + add r0, r0, #1 + str r0, [r4, #4] + add r0, r1, #1 + str r0, [r4, #0xc] + add r0, r7, #1 + cmp r0, r5 + blt _021EDF54 + mov r0, #0 + mvn r0, r0 + str r0, [r4, #4] + str r0, [r4, #0xc] +_021EDF54: + sub r0, r6, #1 + bpl _021EDFBA + mov r0, #0 + mvn r0, r0 + str r0, [r4] + pop {r3, r4, r5, r6, r7, pc} +_021EDF60: + str r1, [r4, #4] + sub r0, r1, #1 + add r1, r1, r5 + str r0, [r4] + sub r0, r1, #1 + str r0, [r4, #8] + str r1, [r4, #0xc] + sub r0, r7, #1 + bpl _021EDF7A + mov r0, #0 + mvn r0, r0 + str r0, [r4] + str r0, [r4, #8] +_021EDF7A: + ldr r0, [sp] + add r1, r6, #1 + cmp r1, r0 + ble _021EDFBA + mov r0, #0 + mvn r0, r0 + str r0, [r4, #0xc] + pop {r3, r4, r5, r6, r7, pc} +_021EDF8A: + str r1, [r4] + add r0, r1, #1 + str r0, [r4, #4] + add r0, r1, r5 + str r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #0xc] + add r0, r7, #1 + cmp r0, r5 + blt _021EDFA6 + mov r0, #0 + mvn r0, r0 + str r0, [r4, #4] + str r0, [r4, #0xc] +_021EDFA6: + ldr r0, [sp] + add r1, r6, #1 + cmp r1, r0 + ble _021EDFBA + mov r0, #0 + mvn r0, r0 + str r0, [r4] + pop {r3, r4, r5, r6, r7, pc} +_021EDFB6: + bl GF_AssertFail +_021EDFBA: + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EDFBC +MOD05_021EDFBC: ; 0x021EDFBC + push {r3, r4, r5, r6, r7, lr} + mov r6, #0 + add r5, r0, #0 + sub r7, r6, #1 +_021EDFC4: + ldr r1, _021EE03C ; =0x0000086C + mov r0, #4 + bl AllocFromHeap + lsl r4, r6, #2 + add r1, r5, r4 + add r1, #0x90 + str r0, [r1] + add r0, r5, r4 + add r0, #0x90 + ldr r2, [r0] + ldr r0, _021EE040 ; =0x00000864 + mov r1, #0 + str r1, [r2, r0] + add r2, r5, r4 + add r2, #0x90 + ldr r3, [r2] + ldr r2, _021EE044 ; =0x00000854 + ldr r1, [r5] + add r0, r6, #0 + add r2, r3, r2 + bl MOD05_021F3C60 + add r2, r5, r4 + add r2, #0x90 + ldr r3, [r2] + ldr r2, _021EE048 ; =0x00000858 + ldr r1, [r5] + add r0, r6, #0 + add r2, r3, r2 + bl MOD05_021F3C68 + mov r0, #4 + bl MOD05_021E7C00 + add r1, r5, r4 + add r1, #0x90 + ldr r2, [r1] + ldr r1, _021EE04C ; =0x00000868 + str r0, [r2, r1] + add r0, r5, r4 + add r0, #0x90 + ldr r1, [r0] + mov r0, #0x86 + lsl r0, r0, #4 + str r7, [r1, r0] + add r1, r5, r4 + add r1, #0x90 + mov r2, #2 + ldr r1, [r1] + add r0, r7, #0 + lsl r2, r2, #0xa + bl MIi_CpuClearFast + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #4 + blo _021EDFC4 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021EE03C: .word 0x0000086C +_021EE040: .word 0x00000864 +_021EE044: .word 0x00000854 +_021EE048: .word 0x00000858 +_021EE04C: .word 0x00000868 + + thumb_func_start MOD05_021EE050 +MOD05_021EE050: ; 0x021EE050 + push {r3, r4, r5, r6, r7, lr} + mov r6, #0 + add r5, r0, #0 + add r7, r6, #0 +_021EE058: + ldr r1, _021EE0B0 ; =0x0000086C + mov r0, #4 + bl AllocFromHeap + lsl r4, r6, #2 + add r1, r5, r4 + add r1, #0x90 + str r0, [r1] + add r0, r5, r4 + add r0, #0x90 + ldr r1, [r0] + ldr r0, _021EE0B4 ; =0x00000864 + add r2, r5, r4 + str r7, [r1, r0] + add r2, #0x90 + ldr r3, [r2] + ldr r2, _021EE0B8 ; =0x00000854 + ldr r1, [r5] + add r0, r6, #0 + add r2, r3, r2 + bl MOD05_021F3C60 + mov r0, #4 + bl MOD05_021E7C00 + add r1, r5, r4 + add r1, #0x90 + ldr r2, [r1] + ldr r1, _021EE0BC ; =0x00000868 + str r0, [r2, r1] + add r0, r5, r4 + add r0, #0x90 + ldr r2, [r0] + mov r1, #0 + mov r0, #0x86 + mvn r1, r1 + lsl r0, r0, #4 + str r1, [r2, r0] + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #4 + blo _021EE058 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021EE0B0: .word 0x0000086C +_021EE0B4: .word 0x00000864 +_021EE0B8: .word 0x00000854 +_021EE0BC: .word 0x00000868 + + thumb_func_start MOD05_021EE0C0 +MOD05_021EE0C0: ; 0x021EE0C0 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + add r5, r2, #0 + cmp r6, #0 + beq _021EE0E6 + mov r0, #4 + mov r1, #0x10 + bl AllocFromHeapAtEnd + add r4, r0, #0 + add r0, r6, #0 + add r1, r7, #0 + mov r2, #0 + mov r3, #0x10 + str r4, [sp] + bl NARC_ReadFromMember + b _021EE0FC +_021EE0E6: + bl GF_AssertFail + mov r0, #0x10 + str r0, [sp] + mov r0, #0x43 + add r1, r7, #0 + mov r2, #4 + mov r3, #0 + bl AllocAtEndAndReadFromNarcMemberByIdPair + add r4, r0, #0 +_021EE0FC: + ldr r0, [r4] + str r0, [r5] + ldr r0, [r4, #4] + str r0, [r5, #0xc] + ldr r0, [r4, #8] + str r0, [r5, #4] + ldr r0, [r4, #0xc] + str r0, [r5, #8] + add r0, r4, #0 + bl FreeToHeap + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EE114 +MOD05_021EE114: ; 0x021EE114 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + ldr r4, [sp, #0x40] + lsl r7, r0, #2 + add r0, r4, r7 + ldr r0, [r0, #0x18] + str r1, [sp, #0xc] + ldr r5, [sp, #0x3c] + cmp r0, #0 + blt _021EE1D0 + ldr r1, [sp, #0x38] + mul r1, r3 + cmp r0, r1 + bge _021EE1D0 + add r1, r2, #0 + bl GetMapData + add r1, r0, #0 + ldr r0, _021EE1D4 ; =0x0000FFFF + cmp r1, r0 + beq _021EE1D0 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + add r2, sp, #0x10 + bl MOD05_021EE0C0 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + ldr r1, [sp, #0x10] + ldr r2, [r4, r7] + bl NARC_ReadFile + add r0, r5, #0 + add r0, #0xf0 + ldr r0, [r0] + ldr r3, _021EE1D8 ; =0x00000868 + str r0, [sp] + add r0, r5, #0 + ldr r6, [r4, r7] + add r0, #0xf8 + ldr r0, [r0] + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0xc] + ldr r3, [r6, r3] + bl MOD05_021E7CD8 + ldr r0, [r4, #0x10] + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [sp, #0xc] + ldr r6, [r4, r7] + bl MOD05_021F4C74 + ldr r3, _021EE1DC ; =0x00000864 + str r0, [sp] + add r0, r6, r3 + add r2, r3, #0 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0x10 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xf8 + sub r2, #0x64 + sub r3, #0x10 + ldr r0, [r0] + ldr r1, [sp, #0x14] + add r2, r6, r2 + add r3, r6, r3 + bl MOD05_021EFA00 + str r0, [r4, #8] + ldr r0, [r4, #0x14] + add r3, r4, #0 + add r0, r0, #1 + str r0, [r4, #0x14] + ldr r2, [r4, r7] + ldr r6, _021EE1E0 ; =0x00000858 + add r5, #0xf8 + add r0, r2, r6 + str r0, [sp] + add r0, r4, #0 + add r0, #0x10 + str r0, [sp, #4] + ldr r0, [r5] + add r5, r6, #4 + ldr r1, [sp, #0x18] + ldr r2, [r2, r5] + add r3, #0x14 + bl MOD05_021F43E4 + str r0, [r4, #0xc] +_021EE1D0: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021EE1D4: .word 0x0000FFFF +_021EE1D8: .word 0x00000868 +_021EE1DC: .word 0x00000864 +_021EE1E0: .word 0x00000858 + + thumb_func_start MOD05_021EE1E4 +MOD05_021EE1E4: ; 0x021EE1E4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x30 + str r1, [sp, #0xc] + add r1, r2, #0 + add r2, r3, #0 + ldr r3, _021EE294 ; =0x00000828 + lsl r7, r0, #2 + add r3, sp + ldr r4, [r3, #0x18] + ldr r5, [r3, #0x14] + add r0, r4, r7 + ldr r0, [r0, #0x18] + cmp r0, #0 + blt _021EE286 + ldr r3, [r3, #0x10] + mul r3, r2 + cmp r0, r3 + bge _021EE286 + bl GetMapData + add r1, r0, #0 + ldr r0, _021EE298 ; =0x0000FFFF + cmp r1, r0 + beq _021EE286 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + add r2, sp, #0x10 + bl MOD05_021EE0C0 + add r0, r5, #0 + add r0, #0xf8 + mov r1, #2 + ldr r0, [r0] + lsl r1, r1, #0xa + add r2, sp, #0x20 + bl NARC_ReadFile + add r0, r5, #0 + add r0, #0xf0 + ldr r0, [r0] + ldr r3, _021EE29C ; =0x00000868 + str r0, [sp] + add r0, r5, #0 + ldr r6, [r4, r7] + add r0, #0xf8 + ldr r0, [r0] + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0xc] + ldr r3, [r6, r3] + bl MOD05_021E7CD8 + ldr r0, [r4, #0x10] + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [sp, #0xc] + ldr r6, [r4, r7] + bl MOD05_021F4C74 + ldr r3, _021EE2A0 ; =0x00000864 + str r0, [sp] + add r0, r6, r3 + add r2, r3, #0 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0x10 + str r0, [sp, #8] + add r5, #0xf8 + sub r2, #0x64 + sub r3, #0x10 + ldr r0, [r5] + ldr r1, [sp, #0x14] + add r2, r6, r2 + add r3, r6, r3 + bl MOD05_021EFA00 + str r0, [r4, #8] +_021EE286: + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EE294: .word 0x00000828 +_021EE298: .word 0x0000FFFF +_021EE29C: .word 0x00000868 +_021EE2A0: .word 0x00000864 + + thumb_func_start MOD05_021EE2A4 +MOD05_021EE2A4: ; 0x021EE2A4 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r4, r1, #0 + str r0, [sp, #4] + str r2, [sp, #8] + ldr r7, [sp, #0x3c] + add r1, r0, #0 + bmi _021EE37A + ldr r2, [sp, #0x30] + ldr r1, [sp, #0x34] + add r5, r2, #0 + mul r5, r1 + add r1, r0, #0 + cmp r1, r5 + bge _021EE37A + add r1, r3, #0 + bl GetMapData + add r1, r0, #0 + ldr r0, _021EE380 ; =0x0000FFFF + cmp r1, r0 + beq _021EE37A + add r0, r7, #0 + add r0, #0xf8 + ldr r0, [r0] + add r2, sp, #0xc + bl MOD05_021EE0C0 + lsl r5, r4, #2 + add r4, r7, #0 + add r0, r7, #0 + add r4, #0x90 + add r0, #0xf8 + ldr r0, [r0] + ldr r1, [sp, #0xc] + ldr r2, [r4, r5] + bl NARC_ReadFile + add r0, r7, #0 + add r0, #0xf0 + ldr r0, [r0] + ldr r3, _021EE384 ; =0x00000868 + str r0, [sp] + add r0, r7, #0 + ldr r6, [r4, r5] + add r0, #0xf8 + ldr r0, [r0] + ldr r1, [sp, #0x18] + ldr r2, [sp, #8] + ldr r3, [r6, r3] + bl MOD05_021E7CD8 + ldr r6, [r4, r5] + ldr r0, [sp, #8] + bl MOD05_021F4C74 + str r0, [sp] + add r0, r7, #0 + mov r3, #2 + add r0, #0xf8 + lsl r3, r3, #0xa + add r2, r6, r3 + add r3, #0x54 + ldr r0, [r0] + ldr r1, [sp, #0x10] + add r3, r6, r3 + bl MOD05_021EFA40 + ldr r1, [sp, #0x38] + cmp r1, #1 + bne _021EE336 + bl MOD05_021DB5EC +_021EE336: + ldr r6, _021EE388 ; =0x00000864 + ldr r0, [r4, r5] + mov r1, #1 + str r1, [r0, r6] + add r2, r6, #0 + add r0, r7, #0 + add r0, #0xf8 + ldr r3, [r4, r5] + sub r2, #8 + sub r6, #0xc + ldr r2, [r3, r2] + ldr r0, [r0] + ldr r1, [sp, #0x14] + ldr r3, [r3, r6] + bl MOD05_021F4344 + mov r2, #0x86 + ldr r1, [r4, r5] + ldr r0, [sp, #4] + lsl r2, r2, #4 + str r0, [r1, r2] + add r0, r7, #0 + add r0, #0xfc + ldr r3, [r0] + cmp r3, #0 + beq _021EE37A + mov r0, #1 + lsl r0, r0, #8 + ldr r4, [r4, r5] + add r2, #8 + ldr r0, [r7, r0] + ldr r1, [sp, #4] + ldr r2, [r4, r2] + blx r3 +_021EE37A: + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021EE380: .word 0x0000FFFF +_021EE384: .word 0x00000868 +_021EE388: .word 0x00000864 + + thumb_func_start MOD05_021EE38C +MOD05_021EE38C: ; 0x021EE38C + push {r4, r5, r6, r7, lr} + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x2c + str r2, [sp, #8] + ldr r2, _021EE44C ; =0x00000820 + add r4, r1, #0 + add r2, sp + str r0, [sp, #4] + ldr r5, [r2, #0x1c] + add r1, r0, #0 + bmi _021EE43E + ldr r6, [r2, #0x10] + ldr r1, [r2, #0x14] + add r2, r6, #0 + mul r2, r1 + add r1, r0, #0 + cmp r1, r2 + bge _021EE43E + add r1, r3, #0 + bl GetMapData + add r1, r0, #0 + ldr r0, _021EE450 ; =0x0000FFFF + cmp r1, r0 + beq _021EE43E + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + add r2, sp, #0xc + bl MOD05_021EE0C0 + add r0, r5, #0 + add r0, #0xf8 + mov r1, #2 + ldr r0, [r0] + lsl r1, r1, #0xa + add r2, sp, #0x1c + bl NARC_ReadFile + add r0, r5, #0 + add r0, #0xf0 + ldr r0, [r0] + add r7, r5, #0 + str r0, [sp] + add r0, r5, #0 + add r0, #0xf8 + lsl r4, r4, #2 + add r7, #0x90 + ldr r6, [r7, r4] + ldr r3, _021EE454 ; =0x00000868 + ldr r0, [r0] + ldr r1, [sp, #0x18] + ldr r2, [sp, #8] + ldr r3, [r6, r3] + bl MOD05_021E7CD8 + ldr r0, [sp, #8] + ldr r6, [r7, r4] + bl MOD05_021F4C74 + mov r3, #2 + str r0, [sp] + add r5, #0xf8 + lsl r3, r3, #0xa + add r2, r6, r3 + add r3, #0x54 + ldr r0, [r5] + ldr r1, [sp, #0x10] + add r3, r6, r3 + bl MOD05_021EFA40 + ldr r1, _021EE44C ; =0x00000820 + add r1, sp + ldr r1, [r1, #0x18] + cmp r1, #1 + bne _021EE42E + bl MOD05_021DB5EC +_021EE42E: + ldr r1, [r7, r4] + ldr r0, _021EE458 ; =0x00000864 + mov r2, #1 + str r2, [r1, r0] + sub r1, r0, #4 + ldr r2, [r7, r4] + ldr r0, [sp, #4] + str r0, [r2, r1] +_021EE43E: + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + nop +_021EE44C: .word 0x00000820 +_021EE450: .word 0x0000FFFF +_021EE454: .word 0x00000868 +_021EE458: .word 0x00000864 + + thumb_func_start MOD05_021EE45C +MOD05_021EE45C: ; 0x021EE45C + ldr r1, [r0] + cmp r1, #0 + bne _021EE46C + ldr r0, [r0, #4] + cmp r0, #0 + bne _021EE46C + mov r0, #1 + bx lr +_021EE46C: + mov r0, #0 + bx lr + + thumb_func_start MOD05_021EE470 +MOD05_021EE470: ; 0x021EE470 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r4, r0, #0 + str r3, [sp] + add r0, sp, #0x10 + add r7, r1, #0 + ldrb r1, [r0, #0x14] + mov r0, #0x30 + str r2, [sp, #8] + add r5, r1, #0 + mul r5, r0 + add r0, r4, #0 + str r0, [sp, #4] + add r0, #0x2c + str r0, [sp, #4] + ldr r0, [r0, r5] + cmp r0, #0 + beq _021EE498 + bl GF_AssertFail +_021EE498: + ldr r0, [sp, #4] + mov r1, #1 + str r1, [r0, r5] + add r0, sp, #0x10 + add r5, r4, r5 + add r1, r5, #0 + ldrb r2, [r0, #0x18] + add r1, #0x30 + add r3, r4, #0 + strb r2, [r1] + add r2, r5, #0 + ldr r1, [sp, #8] + str r7, [r5, #0x1c] + str r1, [r5, #0x20] + ldr r1, [sp] + add r2, #0x24 + strb r1, [r2] + add r1, r5, #0 + ldrb r0, [r0, #0x10] + add r1, #0x25 + add r3, #0x90 + strb r0, [r1] + ldr r1, [sp] + mov r6, #0 + lsl r2, r1, #2 + ldr r1, [r3, r2] + str r1, [r5, #4] + lsl r1, r0, #2 + ldr r0, [r3, r1] + str r0, [r5, #8] + add r0, r5, #0 + add r0, #0x26 + strb r6, [r0] + add r0, r6, #0 + str r0, [r5, #0x28] + add r0, r4, #0 + add r0, #0xa0 + ldrb r0, [r0] + cmp r0, #0 + bne _021EE4F0 + add r5, r4, #0 + add r5, #0xb4 + add r0, r6, #0 + str r0, [r5] +_021EE4F0: + ldr r0, [r3, r2] + mov r2, #0x86 + lsl r2, r2, #4 + str r7, [r0, r2] + ldr r1, [r3, r1] + ldr r0, [sp, #8] + str r0, [r1, r2] + add r0, r4, #0 + add r0, #0xa0 + ldrb r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xa0 + strb r1, [r0] + add r0, r4, #0 + add r0, #0xa1 + ldrb r0, [r0] + add r4, #0xa1 + add r0, r0, #1 + lsr r2, r0, #0x1f + lsl r1, r0, #0x1f + sub r1, r1, r2 + mov r0, #0x1f + ror r1, r0 + add r0, r2, r1 + strb r0, [r4] + mov r0, #1 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EE52C +MOD05_021EE52C: ; 0x021EE52C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r1, #0 + add r0, r5, #0 + add r0, #0xa2 + ldrb r1, [r0] + mov r0, #0x30 + add r4, r5, #0 + add r2, r5, #4 + mul r0, r1 + add r4, #0xcc + add r6, r2, r0 + ldr r0, [r4, #0x20] + cmp r0, #1 + bne _021EE572 + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _021EE5D0 + ldr r0, [r4, #0x14] + ldr r1, [r0] + ldr r0, [r4, #0x10] + ldr r0, [r0] + cmp r1, r0 + ble _021EE560 + bl GF_AssertFail +_021EE560: + ldr r0, [r4, #0x10] + ldr r1, [r0] + ldr r0, [r4, #0x14] + ldr r0, [r0] + sub r1, r1, r0 + mov r0, #1 + lsl r0, r0, #0x10 + cmp r1, r0 + bge _021EE574 +_021EE572: + b _021EE6B0 +_021EE574: + ldr r1, [r4, #0xc] + add r2, sp, #0x10 + ldr r0, [r1] + ldr r1, [r1, #8] + add r3, sp, #0xc + bl MOD05_021EF4F8 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0xc] + add r2, r5, #0 + bl MOD05_021EF2AC + ldr r3, [r4, #0xc] + add r2, r4, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + ldr r0, [r4, #8] + lsr r2, r0, #0x1f + lsl r1, r0, #0x11 + sub r1, r1, r2 + mov r0, #0x11 + ror r1, r0 + add r0, r2, r1 + beq _021EE5B2 + mov r0, #1 + bl FUN_020336A0 + cmp r0, #0 + bne _021EE692 +_021EE5B2: + ldr r0, [r4, #8] + lsr r2, r0, #0x1f + lsl r1, r0, #0x11 + sub r1, r1, r2 + mov r0, #0x11 + ror r1, r0 + add r0, r2, r1 + beq _021EE5C6 + bl GF_AssertFail +_021EE5C6: + mov r0, #0 + str r0, [r4, #0x18] + str r0, [r4, #0x10] + str r0, [r4, #0x14] + b _021EE6B0 +_021EE5D0: + ldr r2, [r4, #0xc] + ldr r3, [r4] + ldr r7, [r2] + cmp r3, r7 + beq _021EE5E8 + ldr r1, [r4, #8] + ldr r0, [r2, #8] + cmp r1, r0 + beq _021EE5E8 + bl GF_AssertFail + b _021EE6B0 +_021EE5E8: + cmp r3, r7 + bne _021EE5F4 + ldr r1, [r4, #8] + ldr r0, [r2, #8] + cmp r1, r0 + beq _021EE6B0 +_021EE5F4: + mov r3, #1 + str r3, [r4, #0x18] + ldr r2, [r4, #0xc] + ldr r0, [r4] + ldr r1, [r2] + cmp r0, r1 + beq _021EE648 + cmp r0, r1 + ble _021EE612 + str r4, [r4, #0x10] + ldr r0, [r4, #0xc] + str r0, [r4, #0x14] + mov r0, #3 + strb r0, [r4, #0x1c] + b _021EE618 +_021EE612: + str r2, [r4, #0x10] + str r4, [r4, #0x14] + strb r3, [r4, #0x1c] +_021EE618: + ldr r0, [r4] + lsr r2, r0, #0x1f + lsl r1, r0, #0x11 + sub r1, r1, r2 + mov r0, #0x11 + ror r1, r0 + add r0, r2, r1 + beq _021EE632 + mov r0, #1 + bl FUN_020336A0 + cmp r0, #0 + bne _021EE692 +_021EE632: + ldr r0, [r4] + lsr r2, r0, #0x1f + lsl r1, r0, #0x11 + sub r1, r1, r2 + mov r0, #0x11 + ror r1, r0 + add r0, r2, r1 + beq _021EE6A8 + bl GF_AssertFail + b _021EE6A8 +_021EE648: + add r1, r5, #0 + add r1, #0xd8 + add r0, r5, #0 + ldr r1, [r1] + add r0, #0xd4 + ldr r0, [r0] + ldr r1, [r1, #8] + cmp r0, r1 + ble _021EE66A + add r0, r4, #0 + add r0, #8 + str r0, [r4, #0x10] + ldr r0, [r4, #0xc] + add r0, #8 + str r0, [r4, #0x14] + mov r0, #4 + b _021EE676 +_021EE66A: + add r2, #8 + add r0, r4, #0 + str r2, [r4, #0x10] + add r0, #8 + str r0, [r4, #0x14] + mov r0, #2 +_021EE676: + strb r0, [r4, #0x1c] + ldr r0, [r4, #8] + lsr r2, r0, #0x1f + lsl r1, r0, #0x11 + sub r1, r1, r2 + mov r0, #0x11 + ror r1, r0 + add r0, r2, r1 + beq _021EE694 + mov r0, #1 + bl FUN_020336A0 + cmp r0, #0 + beq _021EE694 +_021EE692: + b _021EE8C2 +_021EE694: + ldr r0, [r4, #8] + lsr r2, r0, #0x1f + lsl r1, r0, #0x11 + sub r1, r1, r2 + mov r0, #0x11 + ror r1, r0 + add r0, r2, r1 + beq _021EE6A8 + bl GF_AssertFail +_021EE6A8: + ldrb r0, [r4, #0x1c] + add r1, r5, #0 + bl MOD05_021EF458 +_021EE6B0: + add r0, r5, #0 + add r0, #0xb4 + ldr r0, [r0] + cmp r0, #3 + bls _021EE6BC + b _021EE818 +_021EE6BC: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EE6C8: ; jump table + .short _021EE6D0 - _021EE6C8 - 2 ; case 0 + .short _021EE726 - _021EE6C8 - 2 ; case 1 + .short _021EE818 - _021EE6C8 - 2 ; case 2 + .short _021EE804 - _021EE6C8 - 2 ; case 3 +_021EE6D0: + add r0, r6, #0 + add r0, #0x22 + ldrb r0, [r0] + add r1, r6, r0 + add r1, #0x20 + ldrb r1, [r1] + lsl r1, r1, #2 + add r1, r5, r1 + add r1, #0x80 + ldr r1, [r1] + cmp r1, #1 + beq _021EE710 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r4, r5, #0 + str r1, [sp] + str r5, [sp, #4] + str r6, [sp, #8] + add r4, #0xf4 + add r1, r5, #0 + add r2, r5, #0 + add r3, r5, #0 + ldr r4, [r4] + add r1, #0xb8 + add r2, #0xbc + add r3, #0xc0 + ldr r1, [r1] + ldr r2, [r2] + ldr r3, [r3] + ldr r4, [r4, #4] + blx r4 +_021EE710: + add r0, r6, #0 + add r0, #0x22 + ldrb r0, [r0] + add r6, #0x22 + mov r1, #1 + add r0, r0, #1 + strb r0, [r6] + add r0, r5, #0 + add r0, #0xb4 + str r1, [r0] + b _021EE818 +_021EE726: + add r0, r6, #0 + add r0, #0x22 + ldrb r0, [r0] + sub r0, r0, #1 + add r0, r6, r0 + add r0, #0x20 + ldrb r0, [r0] + lsl r0, r0, #2 + add r0, r5, r0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #1 + bne _021EE75E + add r0, r6, #0 + bl MOD05_021EDEAC + add r1, r6, #0 + add r1, #0x22 + ldrb r1, [r1] + mov r0, #0 + sub r1, r1, #1 + add r1, r6, r1 + add r1, #0x20 + ldrb r1, [r1] + lsl r1, r1, #2 + add r1, r5, r1 + add r1, #0x80 + str r0, [r1] +_021EE75E: + add r0, r6, #0 + add r0, #0x22 + ldrb r0, [r0] + cmp r0, #2 + bhi _021EE818 + add r0, r6, #0 + add r0, #0x10 + bl MOD05_021EE45C + cmp r0, #1 + bne _021EE818 + add r0, r6, #0 + add r0, #0x22 + ldrb r0, [r0] + cmp r0, #2 + blo _021EE784 + mov r0, #1 + str r0, [r6, #0x24] + b _021EE78C +_021EE784: + add r0, r5, #0 + mov r1, #0 + add r0, #0xb4 + str r1, [r0] +_021EE78C: + add r0, r6, #0 + add r0, #0x22 + ldrb r0, [r0] + sub r0, r0, #1 + lsl r0, r0, #2 + ldr r2, [r6, r0] + ldr r0, _021EE8C8 ; =0x00000864 + ldr r1, [r2, r0] + cmp r1, #1 + bne _021EE7C4 + sub r0, #0x10 + ldr r0, [r2, r0] + bl NNS_G3dGetMdlSet + add r7, r0, #0 + ldrh r0, [r7, #0xe] + add r0, r7, r0 + ldr r4, [r0, #0xc] + add r0, r5, #0 + add r0, #0xb8 + ldr r0, [r0] + bl MOD05_021F4CA8 + cmp r0, #1 + bne _021EE7C4 + add r0, r7, r4 + bl MOD05_021DB5EC +_021EE7C4: + add r0, r5, #0 + add r0, #0xfc + ldr r3, [r0] + cmp r3, #0 + beq _021EE818 + add r0, r6, #0 + add r0, #0x22 + ldrb r0, [r0] + mov r2, #0x86 + lsl r2, r2, #4 + sub r0, r0, #1 + lsl r0, r0, #2 + ldr r4, [r6, r0] + ldr r1, [r4, r2] + cmp r1, #0 + blt _021EE818 + add r0, r5, #0 + add r6, r5, #0 + add r0, #0xc0 + add r6, #0xc4 + ldr r0, [r0] + ldr r6, [r6] + mul r6, r0 + cmp r1, r6 + bge _021EE818 + mov r0, #1 + lsl r0, r0, #8 + add r2, #8 + ldr r0, [r5, r0] + ldr r2, [r4, r2] + blx r3 + b _021EE818 +_021EE804: + add r6, #0x10 + add r0, r6, #0 + bl MOD05_021EE45C + cmp r0, #1 + bne _021EE818 + add r0, r5, #0 + mov r1, #0 + add r0, #0xa0 + strb r1, [r0] +_021EE818: + add r0, r5, #0 + add r0, #0xa0 + ldrb r0, [r0] + cmp r0, #0 + bne _021EE83A + add r0, r5, #0 + mov r1, #0 + add r0, #0xa2 + strb r1, [r0] + add r0, r5, #0 + add r0, #0xa1 + strb r1, [r0] + mov r0, #2 + add r5, #0xb4 + add sp, #0x14 + str r0, [r5] + pop {r4, r5, r6, r7, pc} +_021EE83A: + add r0, r5, #0 + bl MOD05_021EF0F0 + cmp r0, #1 + bne _021EE8C2 + add r0, r5, #0 + add r0, #0xa2 + ldrb r1, [r0] + mov r0, #0x30 + mov r2, #0 + mul r0, r1 + add r0, r5, r0 + str r2, [r0, #0x2c] + add r0, r5, #0 + bl MOD05_021EF100 + add r0, r5, #0 + add r0, #0xa0 + ldrb r0, [r0] + sub r1, r0, #1 + add r0, r5, #0 + add r0, #0xa0 + strb r1, [r0] + add r0, r5, #0 + add r0, #0xa2 + ldrb r0, [r0] + add r0, r0, #1 + lsr r2, r0, #0x1f + lsl r1, r0, #0x1f + sub r1, r1, r2 + mov r0, #0x1f + ror r1, r0 + add r0, r5, #0 + add r1, r2, r1 + add r0, #0xa2 + strb r1, [r0] + add r0, r5, #0 + add r0, #0xa0 + ldrb r0, [r0] + cmp r0, #0 + beq _021EE890 + mov r1, #0 + b _021EE8A0 +_021EE890: + add r0, r5, #0 + mov r1, #0 + add r0, #0xa2 + strb r1, [r0] + add r0, r5, #0 + add r0, #0xa1 + strb r1, [r0] + mov r1, #2 +_021EE8A0: + add r0, r5, #0 + add r0, #0xb4 + str r1, [r0] + ldr r0, [r5, #0x6c] + cmp r0, #1 + bne _021EE8C2 + mov r0, #0 + str r0, [r5, #0x6c] + add r0, r5, #0 + add r0, #0x70 + ldrb r0, [r0] + add r1, r5, #0 + bl MOD05_021EF118 + add r0, r5, #0 + bl MOD05_021EF094 +_021EE8C2: + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021EE8C8: .word 0x00000864 + + thumb_func_start MOD05_021EE8CC +MOD05_021EE8CC: ; 0x021EE8CC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + ldr r4, [sp, #0x34] + str r2, [sp, #0x10] + add r7, r0, #0 + ldr r0, [r4, #0x6c] + add r5, r3, #0 + str r1, [sp, #0xc] + ldr r6, [sp, #0x30] + cmp r0, #1 + bne _021EE8E6 + bl GF_AssertFail +_021EE8E6: + add r0, r6, #0 + add r1, r4, #0 + add r2, sp, #0x14 + bl MOD05_021EEF9C + cmp r0, #1 + bne _021EE964 + add r1, sp, #0x14 + ldrb r1, [r1] + add r0, r4, #0 + bl MOD05_021EDE7C + add r0, r4, #0 + add r0, #0xa0 + ldrb r0, [r0] + cmp r0, #2 + blo _021EE948 + mov r0, #1 + str r0, [r4, #0x6c] + ldr r0, [sp, #0xc] + str r7, [r4, #0x74] + str r0, [r4, #0x78] + add r1, r4, #0 + ldr r0, [sp, #0x10] + add r1, #0x7c + strb r0, [r1] + add r0, r4, #0 + add r0, #0x7d + strb r5, [r0] + ldr r0, [sp, #0x10] + add r2, r4, #0 + add r2, #0x90 + lsl r1, r0, #2 + ldr r0, [r2, r1] + str r0, [r4, #0x64] + lsl r0, r5, #2 + ldr r3, [r2, r0] + str r3, [r4, #0x68] + add r4, #0x70 + strb r6, [r4] + ldr r3, [r2, r1] + mov r1, #0x86 + lsl r1, r1, #4 + str r7, [r3, r1] + ldr r2, [r2, r0] + ldr r0, [sp, #0xc] + add sp, #0x18 + str r0, [r2, r1] + pop {r3, r4, r5, r6, r7, pc} +_021EE948: + add r0, r4, #0 + str r5, [sp] + add r0, #0xa1 + ldrb r0, [r0] + ldr r2, [sp, #0xc] + add r1, r7, #0 + str r0, [sp, #4] + str r6, [sp, #8] + ldr r3, [sp, #0x10] + add r0, r4, #0 + bl MOD05_021EE470 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} +_021EE964: + add r0, r4, #0 + str r5, [sp] + add r0, #0xa1 + ldrb r0, [r0] + ldr r2, [sp, #0xc] + add r1, r7, #0 + str r0, [sp, #4] + str r6, [sp, #8] + ldr r3, [sp, #0x10] + add r0, r4, #0 + bl MOD05_021EE470 + cmp r0, #1 + beq _021EE984 + bl GF_AssertFail +_021EE984: + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EE988 +MOD05_021EE988: ; 0x021EE988 + push {r4, r5, r6, lr} + add r6, r1, #0 + add r4, r6, #0 + lsl r5, r0, #2 + add r4, #0x90 + ldr r1, [r4, r5] + ldr r0, _021EE9CC ; =0x00000864 + mov r2, #0 + str r2, [r1, r0] + ldr r1, [r4, r5] + sub r0, #8 + ldr r0, [r1, r0] + bl MOD05_021F43CC + ldr r1, [r4, r5] + ldr r0, _021EE9D0 ; =0x00000868 + ldr r0, [r1, r0] + bl MOD05_021E7C1C + mov r0, #0 + mov r2, #0x86 + ldr r1, [r4, r5] + mvn r0, r0 + lsl r2, r2, #4 + str r0, [r1, r2] + ldr r1, [r4, r5] + sub r2, #0x60 + bl MIi_CpuClearFast + add r0, r6, r5 + mov r1, #1 + add r0, #0x80 + str r1, [r0] + pop {r4, r5, r6, pc} + .balign 4, 0 +_021EE9CC: .word 0x00000864 +_021EE9D0: .word 0x00000868 + + thumb_func_start MOD05_021EE9D4 +MOD05_021EE9D4: ; 0x021EE9D4 + push {r3, r4, r5, r6, r7, lr} + ldr r4, [sp, #0x18] + add r5, r1, #0 + add r1, r4, #0 + add r6, r0, #0 + add r7, r2, #0 + str r3, [sp] + bl MOD05_021EE988 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021EE988 + add r4, #0x90 + lsl r1, r6, #2 + lsl r5, r5, #2 + lsl r2, r7, #2 + ldr r0, [r4, r1] + ldr r3, [r4, r5] + ldr r6, [r4, r2] + str r6, [r4, r1] + ldr r1, [sp] + lsl r6, r1, #2 + ldr r1, [r4, r6] + str r1, [r4, r5] + str r0, [r4, r2] + str r3, [r4, r6] + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EEA0C +MOD05_021EEA0C: ; 0x021EEA0C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + str r1, [sp, #8] + add r7, r0, #0 + ldr r0, [sp, #8] + add r6, r2, #0 + cmp r0, #4 + bls _021EEA1E + b _021EED32 +_021EEA1E: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EEA2A: ; jump table + .short _021EED32 - _021EEA2A - 2 ; case 0 + .short _021EEBA4 - _021EEA2A - 2 ; case 1 + .short _021EEC80 - _021EEA2A - 2 ; case 2 + .short _021EEAD2 - _021EEA2A - 2 ; case 3 + .short _021EEA34 - _021EEA2A - 2 ; case 4 +_021EEA34: + mov r0, #2 + mov r1, #3 + mov r2, #0 + mov r3, #1 + str r6, [sp] + bl MOD05_021EE9D4 + add r0, r6, #0 + add r0, #0xad + ldrb r0, [r0] + cmp r0, #2 + bne _021EEA7E + add r0, r6, #0 + add r0, #0xc0 + ldr r2, [r0] + mov r0, #1 + sub r5, r7, r2 + str r0, [sp, #0x10] + mov r0, #0 + sub r4, r5, #1 + str r0, [sp, #0xc] + cmp r5, #0 + bge _021EEA68 + sub r5, r0, #1 + add r4, r5, #0 + b _021EEAB4 +_021EEA68: + cmp r4, #0 + blt _021EEA78 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EEAB4 +_021EEA78: + mov r4, #0 + mvn r4, r4 + b _021EEAB4 +_021EEA7E: + cmp r0, #3 + bne _021EEAB0 + add r0, r6, #0 + add r0, #0xc0 + ldr r2, [r0] + mov r0, #0 + sub r5, r7, r2 + str r0, [sp, #0x10] + mov r0, #1 + add r4, r5, #1 + str r0, [sp, #0xc] + cmp r5, #0 + bge _021EEA9E + sub r5, r0, #2 + add r4, r5, #0 + b _021EEAB4 +_021EEA9E: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EEAB4 + mov r4, #0 + mvn r4, r4 + b _021EEAB4 +_021EEAB0: + bl GF_AssertFail +_021EEAB4: + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + ldr r0, [sp, #8] + lsl r2, r2, #0x18 + str r0, [sp] + lsl r3, r3, #0x18 + add r0, r5, #0 + add r1, r4, #0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + str r6, [sp, #4] + bl MOD05_021EE8CC + add sp, #0x14 + pop {r4, r5, r6, r7, pc} +_021EEAD2: + mov r0, #1 + mov r1, #3 + mov r2, #0 + mov r3, #2 + str r6, [sp] + bl MOD05_021EE9D4 + add r0, r6, #0 + add r0, #0xad + ldrb r0, [r0] + cmp r0, #1 + bne _021EEB30 + add r0, r6, #0 + add r0, #0xc0 + ldr r2, [r0] + sub r5, r7, #1 + sub r0, r7, r2 + sub r4, r0, #1 + mov r0, #2 + str r0, [sp, #0x10] + mov r0, #0 + str r0, [sp, #0xc] + cmp r5, #0 + blt _021EEB0E + add r0, r5, #0 + add r1, r7, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EEB14 +_021EEB0E: + mov r5, #0 + mvn r5, r5 + add r4, r5, #0 +_021EEB14: + cmp r4, #0 + blt _021EEB2A + add r2, r6, #0 + add r2, #0xc0 + ldr r2, [r2] + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021EDE34 + cmp r0, #0 + bne _021EEB86 +_021EEB2A: + mov r4, #0 + mvn r4, r4 + b _021EEB86 +_021EEB30: + cmp r0, #3 + bne _021EEB82 + add r0, r6, #0 + add r0, #0xc0 + ldr r2, [r0] + sub r5, r7, #1 + add r0, r7, r2 + sub r4, r0, #1 + mov r0, #0 + str r0, [sp, #0x10] + mov r0, #2 + str r0, [sp, #0xc] + cmp r5, #0 + blt _021EEB58 + add r0, r5, #0 + add r1, r7, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EEB5E +_021EEB58: + mov r5, #0 + mvn r5, r5 + add r4, r5, #0 +_021EEB5E: + add r0, r6, #0 + add r0, #0xc0 + ldr r2, [r0] + add r0, r6, #0 + add r0, #0xc4 + ldr r0, [r0] + mul r0, r2 + cmp r0, r4 + ble _021EEB7C + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021EDE34 + cmp r0, #0 + bne _021EEB86 +_021EEB7C: + mov r4, #0 + mvn r4, r4 + b _021EEB86 +_021EEB82: + bl GF_AssertFail +_021EEB86: + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + ldr r0, [sp, #8] + lsl r2, r2, #0x18 + str r0, [sp] + lsl r3, r3, #0x18 + add r0, r5, #0 + add r1, r4, #0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + str r6, [sp, #4] + bl MOD05_021EE8CC + add sp, #0x14 + pop {r4, r5, r6, r7, pc} +_021EEBA4: + mov r0, #0 + mov r1, #2 + mov r2, #1 + mov r3, #3 + str r6, [sp] + bl MOD05_021EE9D4 + add r0, r6, #0 + add r0, #0xad + ldrb r0, [r0] + cmp r0, #0 + bne _021EEC12 + add r0, r6, #0 + add r0, #0xc0 + ldr r2, [r0] + add r5, r7, #1 + sub r0, r7, r2 + add r4, r0, #1 + mov r0, #3 + str r0, [sp, #0x10] + mov r0, #1 + str r0, [sp, #0xc] + add r0, r6, #0 + add r0, #0xc4 + ldr r0, [r0] + mul r0, r2 + cmp r0, r5 + ble _021EEBE8 + add r0, r5, #0 + add r1, r7, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EEBEE +_021EEBE8: + mov r5, #0 + mvn r5, r5 + add r4, r5, #0 +_021EEBEE: + add r0, r6, #0 + add r0, #0xc0 + ldr r2, [r0] + add r0, r6, #0 + add r0, #0xc4 + ldr r0, [r0] + mul r0, r2 + cmp r0, r4 + ble _021EEC0C + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021EDE34 + cmp r0, #0 + bne _021EEC62 +_021EEC0C: + mov r4, #0 + mvn r4, r4 + b _021EEC62 +_021EEC12: + cmp r0, #2 + bne _021EEC62 + add r0, r6, #0 + add r0, #0xc0 + ldr r2, [r0] + add r5, r7, #1 + add r0, r7, r2 + add r4, r0, #1 + mov r0, #1 + str r0, [sp, #0x10] + mov r0, #3 + str r0, [sp, #0xc] + add r0, r6, #0 + add r0, #0xc4 + ldr r0, [r0] + mul r0, r2 + cmp r0, r5 + ble _021EEC42 + add r0, r5, #0 + add r1, r7, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EEC48 +_021EEC42: + mov r5, #0 + mvn r5, r5 + add r4, r5, #0 +_021EEC48: + cmp r4, #0 + blt _021EEC5E + add r2, r6, #0 + add r2, #0xc0 + ldr r2, [r2] + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021EDE34 + cmp r0, #0 + bne _021EEC62 +_021EEC5E: + mov r4, #0 + mvn r4, r4 +_021EEC62: + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + ldr r0, [sp, #8] + lsl r2, r2, #0x18 + str r0, [sp] + lsl r3, r3, #0x18 + add r0, r5, #0 + add r1, r4, #0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + str r6, [sp, #4] + bl MOD05_021EE8CC + add sp, #0x14 + pop {r4, r5, r6, r7, pc} +_021EEC80: + mov r0, #0 + mov r1, #1 + mov r2, #2 + mov r3, #3 + str r6, [sp] + bl MOD05_021EE9D4 + add r0, r6, #0 + add r0, #0xad + ldrb r0, [r0] + cmp r0, #0 + bne _021EECD0 + add r0, r6, #0 + add r0, #0xc0 + ldr r2, [r0] + mov r0, #3 + str r0, [sp, #0x10] + mov r0, #2 + str r0, [sp, #0xc] + add r0, r6, #0 + add r0, #0xc4 + ldr r0, [r0] + add r5, r7, r2 + mul r0, r2 + sub r4, r5, #1 + cmp r0, r5 + bgt _021EECBE + ldr r0, [sp, #0xc] + sub r5, r0, #3 + add r4, r5, #0 + b _021EED14 +_021EECBE: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EED14 + mov r4, #0 + mvn r4, r4 + b _021EED14 +_021EECD0: + cmp r0, #1 + bne _021EED10 + add r0, r6, #0 + add r0, #0xc0 + ldr r2, [r0] + mov r0, #2 + str r0, [sp, #0x10] + mov r0, #3 + str r0, [sp, #0xc] + add r0, r6, #0 + add r0, #0xc4 + ldr r0, [r0] + add r5, r7, r2 + mul r0, r2 + add r4, r5, #1 + cmp r0, r5 + bgt _021EECFA + ldr r0, [sp, #0xc] + sub r5, r0, #4 + add r4, r5, #0 + b _021EED14 +_021EECFA: + cmp r0, r4 + ble _021EED0A + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EED14 +_021EED0A: + mov r4, #0 + mvn r4, r4 + b _021EED14 +_021EED10: + bl GF_AssertFail +_021EED14: + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + ldr r0, [sp, #8] + lsl r2, r2, #0x18 + str r0, [sp] + lsl r3, r3, #0x18 + add r0, r5, #0 + add r1, r4, #0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + str r6, [sp, #4] + bl MOD05_021EE8CC + add sp, #0x14 + pop {r4, r5, r6, r7, pc} +_021EED32: + bl GF_AssertFail + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EED3C +MOD05_021EED3C: ; 0x021EED3C + push {r4, r5, r6, r7, lr} + sub sp, #0x44 + add r5, r1, #0 + add r4, r5, #0 + lsl r6, r0, #2 + mov r0, #0x86 + add r3, sp, #0x38 + mov r1, #0 + str r1, [r3] + str r1, [r3, #4] + str r2, [sp, #4] + add r2, r5, #0 + add r4, #0x90 + str r1, [r3, #8] + add r2, #0xbc + ldr r1, [r4, r6] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r5, #0 + add r1, #0xc0 + ldr r1, [r1] + ldr r2, [r2] + bl MOD05_021EF300 + ldr r1, [r4, r6] + ldr r0, _021EEDD4 ; =0x00000864 + ldr r0, [r1, r0] + cmp r0, #1 + bne _021EEDA6 + ldr r3, _021EEDD8 ; =UNK05_021F8B14 + add r2, sp, #0x2c + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r3, _021EEDDC ; =UNK05_021F8B20 + str r0, [r2] + add r2, sp, #8 + mov r7, #4 +_021EED88: + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + sub r7, r7, #1 + bne _021EED88 + ldr r0, [r3] + add r3, sp, #0x2c + str r0, [r2] + mov r0, #2 + ldr r1, [r4, r6] + lsl r0, r0, #0xa + add r0, r1, r0 + add r1, sp, #0x38 + add r2, sp, #8 + bl FUN_0201B26C +_021EEDA6: + ldr r4, [r4, r6] + ldr r0, _021EEDD4 ; =0x00000864 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021EEDCE + add r0, r5, #0 + add r0, #0xb8 + ldr r0, [r0] + bl MOD05_021F4CA8 + add r2, r0, #0 + ldr r0, _021EEDE0 ; =0x00000868 + add r5, #0xb8 + ldr r0, [r4, r0] + ldr r3, [sp, #4] + str r0, [sp] + ldr r1, [r5] + add r0, sp, #0x38 + bl MOD05_021E7DD8 +_021EEDCE: + add sp, #0x44 + pop {r4, r5, r6, r7, pc} + nop +_021EEDD4: .word 0x00000864 +_021EEDD8: .word UNK05_021F8B14 +_021EEDDC: .word UNK05_021F8B20 +_021EEDE0: .word 0x00000868 + + thumb_func_start MOD05_021EEDE4 +MOD05_021EEDE4: ; 0x021EEDE4 + push {r3, r4, r5, r6, r7, lr} + add r7, r2, #0 + add r5, r1, #0 + add r6, r0, #0 + add r1, r7, #0 + bl _u32_div_f + add r4, r1, #0 + add r0, r6, #0 + add r1, r7, #0 + bl _u32_div_f + lsr r0, r0, #5 + add r1, r0, #0 + lsr r2, r4, #5 + mul r1, r5 + add r0, r2, r1 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EEE08 +MOD05_021EEE08: ; 0x021EEE08 + mul r2, r1 + add r0, r0, r2 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021EEE10 +MOD05_021EEE10: ; 0x021EEE10 + push {r3, r4, r5, r6, r7, lr} + add r7, r2, #0 + add r5, r1, #0 + add r6, r0, #0 + add r1, r7, #0 + bl _u32_div_f + add r4, r1, #0 + add r0, r6, #0 + add r1, r7, #0 + bl _u32_div_f + lsr r0, r0, #5 + add r1, r0, #0 + lsr r2, r4, #5 + mul r1, r5 + add r0, r2, r1 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EEE34 +MOD05_021EEE34: ; 0x021EEE34 + push {r3, lr} + cmp r0, #0 + bne _021EEE3E + mov r0, #3 + pop {r3, pc} +_021EEE3E: + cmp r0, #1 + bne _021EEE46 + mov r0, #2 + pop {r3, pc} +_021EEE46: + cmp r0, #2 + bne _021EEE4E + mov r0, #1 + pop {r3, pc} +_021EEE4E: + cmp r0, #3 + bne _021EEE56 + mov r0, #0 + pop {r3, pc} +_021EEE56: + bl GF_AssertFail + mov r0, #0 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EEE60 +MOD05_021EEE60: ; 0x021EEE60 + push {r3, r4, r5, lr} + add r5, r2, #0 + add r4, r3, #0 + cmp r0, #4 + bhi _021EEEC0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EEE76: ; jump table + .short _021EEEC0 - _021EEE76 - 2 ; case 0 + .short _021EEE80 - _021EEE76 - 2 ; case 1 + .short _021EEE96 - _021EEE76 - 2 ; case 2 + .short _021EEEA4 - _021EEE76 - 2 ; case 3 + .short _021EEEB8 - _021EEE76 - 2 ; case 4 +_021EEE80: + add r0, r4, #0 + add r1, r5, #0 + bl _s32_div_f + add r0, r1, #1 + cmp r0, r5 + blt _021EEE92 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_021EEE92: + add r0, r4, #1 + pop {r3, r4, r5, pc} +_021EEE96: + lsl r1, r1, #5 + add r0, r4, r5 + mul r1, r5 + cmp r0, r1 + blt _021EEEC6 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_021EEEA4: + add r0, r4, #0 + add r1, r5, #0 + bl _s32_div_f + sub r0, r1, #1 + bpl _021EEEB4 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_021EEEB4: + sub r0, r4, #1 + pop {r3, r4, r5, pc} +_021EEEB8: + sub r0, r4, r5 + bpl _021EEEC6 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_021EEEC0: + bl GF_AssertFail + mov r0, #0 +_021EEEC6: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021EEEC8 +MOD05_021EEEC8: ; 0x021EEEC8 + cmp r0, #4 + bhi _021EEF00 + add r2, r0, r0 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021EEED8: ; jump table + .short _021EEF00 - _021EEED8 - 2 ; case 0 + .short _021EEEFA - _021EEED8 - 2 ; case 1 + .short _021EEEEA - _021EEED8 - 2 ; case 2 + .short _021EEEF2 - _021EEED8 - 2 ; case 3 + .short _021EEEE2 - _021EEED8 - 2 ; case 4 +_021EEEE2: + sub r0, r1, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_021EEEEA: + add r0, r1, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_021EEEF2: + sub r0, r1, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_021EEEFA: + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 +_021EEF00: + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021EEF04 +MOD05_021EEF04: ; 0x021EEF04 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r4, r2, #0 + bl MOD05_021EEEC8 + cmp r5, r0 + bge _021EEF36 + sub r0, r0, r5 + cmp r0, #1 + bne _021EEF22 + ldrb r0, [r4] + sub r0, r0, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + b _021EEF62 +_021EEF22: + cmp r0, #2 + bne _021EEF30 + ldrb r0, [r4] + sub r0, r0, #2 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + b _021EEF62 +_021EEF30: + bl GF_AssertFail + b _021EEF62 +_021EEF36: + cmp r5, r0 + ble _021EEF5E + sub r0, r5, r0 + cmp r0, #1 + bne _021EEF4A + ldrb r0, [r4] + add r0, r0, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + b _021EEF62 +_021EEF4A: + cmp r0, #2 + bne _021EEF58 + ldrb r0, [r4] + add r0, r0, #2 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + b _021EEF62 +_021EEF58: + bl GF_AssertFail + b _021EEF62 +_021EEF5E: + bl GF_AssertFail +_021EEF62: + strb r6, [r4] + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EEF68 +MOD05_021EEF68: ; 0x021EEF68 + push {r3, lr} + cmp r0, #4 + bhi _021EEF94 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EEF7A: ; jump table + .short _021EEF94 - _021EEF7A - 2 ; case 0 + .short _021EEF8C - _021EEF7A - 2 ; case 1 + .short _021EEF88 - _021EEF7A - 2 ; case 2 + .short _021EEF90 - _021EEF7A - 2 ; case 3 + .short _021EEF84 - _021EEF7A - 2 ; case 4 +_021EEF84: + mov r0, #2 + pop {r3, pc} +_021EEF88: + mov r0, #4 + pop {r3, pc} +_021EEF8C: + mov r0, #3 + pop {r3, pc} +_021EEF90: + mov r0, #1 + pop {r3, pc} +_021EEF94: + bl GF_AssertFail + mov r0, #0 + pop {r3, pc} + + thumb_func_start MOD05_021EEF9C +MOD05_021EEF9C: ; 0x021EEF9C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r5, r1, #0 + add r7, r2, #0 + mov r4, #0 +_021EEFA6: + ldr r0, [r5, #0x2c] + cmp r0, #1 + bne _021EEFC2 + add r0, r6, #0 + bl MOD05_021EEF68 + add r1, r5, #0 + add r1, #0x30 + ldrb r1, [r1] + cmp r1, r0 + bne _021EEFC2 + strb r4, [r7] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021EEFC2: + add r4, r4, #1 + add r5, #0x30 + cmp r4, #2 + blt _021EEFA6 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EEFD0 +MOD05_021EEFD0: ; 0x021EEFD0 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xa1 + ldrb r1, [r0] + mov r0, #0x30 + add r4, r5, #0 + mul r0, r1 + add r0, r5, r0 + ldr r0, [r0, #0x2c] + add r4, #0x64 + cmp r0, #0 + beq _021EEFEC + bl GF_AssertFail +_021EEFEC: + add r1, r5, #0 + add r1, #0xa1 + ldrb r2, [r1] + mov r1, #0x30 + mov r0, #1 + add r3, r2, #0 + mul r3, r1 + add r2, r5, r3 + add r3, r5, #0 + str r0, [r2, #0x2c] + add r3, #0xa1 + ldrb r3, [r3] + ldrb r2, [r4, #0xc] + add r6, r3, #0 + mul r6, r1 + add r3, r5, r6 + add r3, #0x30 + strb r2, [r3] + add r3, r5, #0 + add r3, #0xa1 + ldrb r3, [r3] + ldr r2, [r4, #0x10] + add r6, r3, #0 + mul r6, r1 + add r3, r5, r6 + str r2, [r3, #0x1c] + add r3, r5, #0 + add r3, #0xa1 + ldrb r3, [r3] + ldr r2, [r4, #0x14] + add r6, r3, #0 + mul r6, r1 + add r3, r5, r6 + str r2, [r3, #0x20] + add r3, r5, #0 + add r3, #0xa1 + ldrb r3, [r3] + ldrb r2, [r4, #0x18] + add r6, r3, #0 + mul r6, r1 + add r3, r5, r6 + add r3, #0x24 + strb r2, [r3] + add r3, r5, #0 + add r3, #0xa1 + ldrb r3, [r3] + ldrb r2, [r4, #0x19] + add r6, r3, #0 + mul r6, r1 + add r3, r5, r6 + add r3, #0x25 + strb r2, [r3] + add r3, r5, #0 + add r3, #0xa1 + ldrb r3, [r3] + ldr r2, [r4] + add r6, r3, #0 + mul r6, r1 + add r3, r5, r6 + str r2, [r3, #4] + add r2, r5, #0 + add r2, #0xa1 + ldrb r2, [r2] + ldr r4, [r4, #4] + add r3, r2, #0 + mul r3, r1 + add r2, r5, r3 + add r3, r5, #0 + str r4, [r2, #8] + add r3, #0xa1 + ldrb r3, [r3] + mov r2, #0 + add r4, r3, #0 + mul r4, r1 + add r3, r5, r4 + add r3, #0x26 + strb r2, [r3] + add r3, r5, #0 + add r3, #0xa1 + ldrb r3, [r3] + mul r1, r3 + add r1, r5, r1 + str r2, [r1, #0x28] + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021EF094 +MOD05_021EF094: ; 0x021EF094 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xa0 + ldrb r0, [r0] + add r4, r5, #0 + add r4, #0x64 + cmp r0, #2 + blo _021EF0A8 + bl GF_AssertFail +_021EF0A8: + add r0, r5, #0 + bl MOD05_021EEFD0 + cmp r0, #1 + beq _021EF0B6 + bl GF_AssertFail +_021EF0B6: + mov r0, #0x86 + ldr r2, [r4, #0x10] + ldr r1, [r4] + lsl r0, r0, #4 + str r2, [r1, r0] + ldr r2, [r4, #0x14] + ldr r1, [r4, #4] + str r2, [r1, r0] + add r0, r5, #0 + add r0, #0xa0 + ldrb r0, [r0] + add r1, r0, #1 + add r0, r5, #0 + add r0, #0xa0 + strb r1, [r0] + add r0, r5, #0 + add r0, #0xa1 + ldrb r0, [r0] + add r5, #0xa1 + add r0, r0, #1 + lsr r2, r0, #0x1f + lsl r1, r0, #0x1f + sub r1, r1, r2 + mov r0, #0x1f + ror r1, r0 + add r0, r2, r1 + strb r0, [r5] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EF0F0 +MOD05_021EF0F0: ; 0x021EF0F0 + add r1, r0, #0 + add r1, #0xa2 + ldrb r2, [r1] + mov r1, #0x30 + mul r1, r2 + add r0, r0, r1 + ldr r0, [r0, #0x28] + bx lr + + thumb_func_start MOD05_021EF100 +MOD05_021EF100: ; 0x021EF100 + mov r3, #0 + add r2, r3, #0 +_021EF104: + lsl r1, r3, #2 + add r1, r0, r1 + add r1, #0x80 + str r2, [r1] + add r1, r3, #1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #4 + blo _021EF104 + bx lr + + thumb_func_start MOD05_021EF118 +MOD05_021EF118: ; 0x021EF118 + cmp r0, #4 + bhi _021EF168 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EF128: ; jump table + .short _021EF168 - _021EF128 - 2 ; case 0 + .short _021EF140 - _021EF128 - 2 ; case 1 + .short _021EF14E - _021EF128 - 2 ; case 2 + .short _021EF15C - _021EF128 - 2 ; case 3 + .short _021EF132 - _021EF128 - 2 ; case 4 +_021EF132: + add r0, r1, #0 + mov r2, #1 + add r0, #0x88 + str r2, [r0] + add r1, #0x8c + str r2, [r1] + bx lr +_021EF140: + add r0, r1, #0 + mov r2, #1 + add r0, #0x80 + str r2, [r0] + add r1, #0x88 + str r2, [r1] + bx lr +_021EF14E: + add r0, r1, #0 + mov r2, #1 + add r0, #0x80 + str r2, [r0] + add r1, #0x84 + str r2, [r1] + bx lr +_021EF15C: + add r0, r1, #0 + mov r2, #1 + add r0, #0x84 + str r2, [r0] + add r1, #0x8c + str r2, [r1] +_021EF168: + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021EF16C +MOD05_021EF16C: ; 0x021EF16C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + add r4, r3, #0 + add r6, r1, #0 + add r7, r2, #0 + bl MOD05_021EDFBC + add r2, r5, #0 + add r3, r5, #0 + str r4, [sp] + add r0, sp, #0x10 + str r0, [sp, #4] + add r2, #0xc0 + add r3, #0xc4 + ldr r2, [r2] + ldr r3, [r3] + add r0, r6, #0 + add r1, r7, #0 + bl MOD05_021EDED0 + mov r6, #0 + add r7, sp, #0x10 +_021EF19A: + lsl r4, r6, #2 + bl MOD05_021F4328 + add r1, r5, r4 + add r1, #0x90 + ldr r2, [r1] + ldr r1, _021EF1F8 ; =0x0000085C + str r0, [r2, r1] + add r0, r5, r4 + add r0, #0x90 + ldr r1, [r0] + ldr r0, _021EF1F8 ; =0x0000085C + ldr r0, [r1, r0] + bl MOD05_021F4454 + add r0, r5, #0 + add r0, #0xb8 + ldr r0, [r0] + bl MOD05_021F4CA8 + add r1, r5, #0 + add r1, #0xc0 + ldr r1, [r1] + add r2, r5, #0 + str r1, [sp] + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r3, r5, #0 + str r1, [sp, #4] + str r0, [sp, #8] + str r5, [sp, #0xc] + add r2, #0xb8 + add r3, #0xbc + ldr r0, [r7, r4] + ldr r2, [r2] + ldr r3, [r3] + add r1, r6, #0 + bl MOD05_021EE2A4 + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #4 + blo _021EF19A + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021EF1F8: .word 0x0000085C + + thumb_func_start MOD05_021EF1FC +MOD05_021EF1FC: ; 0x021EF1FC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + add r4, r3, #0 + add r6, r1, #0 + add r7, r2, #0 + bl MOD05_021EE050 + add r2, r5, #0 + add r3, r5, #0 + str r4, [sp] + add r0, sp, #0x10 + str r0, [sp, #4] + add r2, #0xc0 + add r3, #0xc4 + ldr r2, [r2] + ldr r3, [r3] + add r0, r6, #0 + add r1, r7, #0 + bl MOD05_021EDED0 + mov r4, #0 + add r7, r4, #0 +_021EF22A: + lsl r6, r4, #2 + add r0, r5, r6 + add r0, #0x90 + ldr r1, [r0] + ldr r0, _021EF278 ; =0x0000085C + str r7, [r1, r0] + add r0, r5, #0 + add r0, #0xb8 + ldr r0, [r0] + bl MOD05_021F4CA8 + add r1, r5, #0 + add r1, #0xc0 + ldr r1, [r1] + add r2, r5, #0 + str r1, [sp] + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r3, r5, #0 + str r1, [sp, #4] + str r0, [sp, #8] + str r5, [sp, #0xc] + add r0, sp, #0x10 + add r2, #0xb8 + add r3, #0xbc + ldr r0, [r0, r6] + ldr r2, [r2] + ldr r3, [r3] + add r1, r4, #0 + bl MOD05_021EE38C + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021EF22A + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021EF278: .word 0x0000085C + + thumb_func_start MOD05_021EF27C +MOD05_021EF27C: ; 0x021EF27C + push {r4, lr} + add r1, r0, #0 + mov r3, #0 + add r1, #0xa2 + strb r3, [r1] + add r1, r0, #0 + add r1, #0xa1 + strb r3, [r1] + add r1, r0, #0 + add r1, #0xa0 + strb r3, [r1] + add r4, r0, #0 + add r2, r3, #0 + mov r1, #1 +_021EF298: + str r2, [r4, #0x2c] + str r1, [r4, #0x28] + add r3, r3, #1 + add r4, #0x30 + cmp r3, #2 + blt _021EF298 + bl MOD05_021EF100 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EF2AC +MOD05_021EF2AC: ; 0x021EF2AC + push {r4, lr} + add r4, r2, #0 + add r2, #0xc8 + ldr r2, [r2] + bl MOD05_021EEE08 + add r1, r4, #0 + add r1, #0xa8 + str r0, [r1] + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xa8 + add r1, #0xc8 + ldr r0, [r0] + ldr r1, [r1] + bl MOD05_021EF620 + add r1, r4, #0 + add r1, #0xad + strb r0, [r1] + add r0, r4, #0 + add r0, #0xad + ldrb r0, [r0] + bl MOD05_021EEE34 + add r1, r4, #0 + add r1, #0xac + strb r0, [r1] + add r0, r4, #0 + add r1, r4, #0 + add r2, r4, #0 + add r0, #0xa8 + add r1, #0xc0 + add r2, #0xc8 + ldr r0, [r0] + ldr r1, [r1] + ldr r2, [r2] + bl MOD05_021EEE10 + add r4, #0xa4 + str r0, [r4] + pop {r4, pc} + + thumb_func_start MOD05_021EF300 +MOD05_021EF300: ; 0x021EF300 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r7, r2, #0 + mov r2, #1 + add r5, r3, #0 + lsl r2, r2, #0x14 + str r2, [r5] + str r2, [r5, #8] + mov r2, #0 + add r4, r0, #0 + mvn r2, r2 + str r1, [sp, #4] + cmp r4, r2 + beq _021EF362 + bl _s32_div_f + lsl r0, r1, #0x10 + lsr r6, r0, #0x10 + ldr r1, [sp, #4] + add r0, r4, #0 + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r7, #0 + bl MapMatrix_GetWidth + str r0, [sp, #8] + add r0, r7, #0 + bl MapMatrix_GetMatrixID + add r1, r0, #0 + ldr r0, [sp, #8] + add r2, r6, #0 + str r0, [sp] + add r0, r7, #0 + add r3, r4, #0 + bl MapMatrix_GetMapAltitude + lsl r0, r0, #0xf + str r0, [r5, #4] + ldr r1, [r5] + lsl r0, r6, #0x15 + add r0, r1, r0 + str r0, [r5] + ldr r1, [r5, #8] + lsl r0, r4, #0x15 + add r0, r1, r0 + str r0, [r5, #8] +_021EF362: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EF368 +MOD05_021EF368: ; 0x021EF368 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + str r1, [sp] + mov r1, #0x41 + add r5, r0, #0 + mov r0, #4 + lsl r1, r1, #2 + str r2, [sp, #4] + add r6, r3, #0 + bl AllocFromHeap + mov r2, #0x41 + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl MI_CpuFill8 + cmp r6, #0 + bne _021EF39A + add r0, r4, #0 + ldr r1, _021EF42C ; =UNK05_021F8B04 + add r0, #0xf4 + str r1, [r0] + mov r7, #1 + b _021EF3AE +_021EF39A: + cmp r6, #1 + bne _021EF3AA + add r0, r4, #0 + ldr r1, _021EF430 ; =UNK05_021F8B0C + add r0, #0xf4 + str r1, [r0] + mov r7, #0 + b _021EF3AE +_021EF3AA: + bl GF_AssertFail +_021EF3AE: + add r0, r7, #0 + bl MOD05_021F3BC0 + str r0, [r4] + add r1, r4, #0 + ldr r0, [sp] + add r1, #0xb8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xbc + str r5, [r0] + add r0, r5, #0 + bl MapMatrix_GetWidth + add r1, r4, #0 + add r1, #0xc0 + str r0, [r1] + add r0, r5, #0 + bl MapMatrix_GetHeight + add r1, r4, #0 + add r1, #0xc4 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + lsl r1, r0, #5 + add r0, r4, #0 + add r0, #0xc8 + str r1, [r0] + add r1, r4, #0 + ldr r0, [sp, #4] + add r1, #0xf0 + str r0, [r1] + add r0, r4, #0 + mov r1, #1 + add r0, #0xec + str r1, [r0] + add r0, r4, #0 + bl MOD05_021EF27C + add r0, r4, #0 + mov r1, #0 + add r0, #0xb0 + str r1, [r0] + add r0, r4, #0 + mov r1, #2 + add r0, #0xb4 + str r1, [r0] + mov r0, #0x43 + mov r1, #4 + bl NARC_ctor + add r1, r4, #0 + add r1, #0xf8 + str r0, [r1] + add r0, r4, #0 + mov r1, #0 + add r0, #0xfc + str r1, [r0] + add r0, r4, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021EF42C: .word UNK05_021F8B04 +_021EF430: .word UNK05_021F8B0C + + thumb_func_start MOD05_021EF434 +MOD05_021EF434: ; 0x021EF434 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r5, #0 + add r6, #0xf4 + add r3, r5, #0 + ldr r6, [r6] + add r3, #0xc8 + ldr r3, [r3] + ldr r6, [r6] + add r4, r1, #0 + add r7, r2, #0 + blx r6 + add r0, r4, #0 + add r1, r7, #0 + add r2, r5, #0 + bl MOD05_021EF2AC + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021EF458 +MOD05_021EF458: ; 0x021EF458 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r2, r5, #0 + add r3, r5, #0 + add r1, #0xc4 + add r2, #0xc8 + add r3, #0xa8 + ldr r1, [r1] + ldr r2, [r2] + ldr r3, [r3] + add r6, r0, #0 + bl MOD05_021EEE60 + add r1, r5, #0 + add r2, r5, #0 + add r1, #0xc0 + add r2, #0xc8 + ldr r1, [r1] + ldr r2, [r2] + add r7, r0, #0 + bl MOD05_021EEDE4 + add r1, r5, #0 + add r1, #0xc8 + add r4, r0, #0 + ldr r1, [r1] + add r0, r7, #0 + bl MOD05_021EF620 + add r1, r5, #0 + add r1, #0xa4 + ldr r1, [r1] + cmp r1, r4 + bne _021EF4C0 + add r1, r5, #0 + add r1, #0xad + ldrb r1, [r1] + cmp r1, r0 + beq _021EF4C0 + add r0, r4, #0 + add r1, r6, #0 + add r2, r5, #0 + bl MOD05_021EEA0C + add r1, r5, #0 + add r1, #0xad + add r5, #0xac + ldrb r1, [r1] + add r0, r6, #0 + add r2, r5, #0 + bl MOD05_021EEF04 +_021EF4C0: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EF4C4 +MOD05_021EF4C4: ; 0x021EF4C4 + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + add r5, r0, #0 + add r6, r1, #0 + sub r7, r4, #1 +_021EF4CE: + lsl r0, r4, #2 + add r0, r5, r0 + add r0, #0x90 + ldr r1, [r0] + mov r0, #0x86 + lsl r0, r0, #4 + ldr r0, [r1, r0] + cmp r0, r7 + beq _021EF4EA + add r0, r4, #0 + add r1, r5, #0 + add r2, r6, #0 + bl MOD05_021EED3C +_021EF4EA: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021EF4CE + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EF4F8 +MOD05_021EF4F8: ; 0x021EF4F8 + push {r3, r4} + asr r4, r0, #0xf + lsr r4, r4, #0x10 + add r4, r0, r4 + asr r0, r4, #0x10 + str r0, [r2] + asr r0, r1, #0xf + lsr r0, r0, #0x10 + add r0, r1, r0 + asr r0, r0, #0x10 + str r0, [r3] + pop {r3, r4} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021EF514 +MOD05_021EF514: ; 0x021EF514 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl ClearFileCache + bl NNS_GfdResetLnkTexVramState + bl NNS_GfdResetLnkPlttVramState + mov r4, #0 + add r6, r5, #4 + mov r7, #0x30 +_021EF52A: + add r0, r4, #0 + mul r0, r7 + add r0, r6, r0 + bl MOD05_021EDEAC + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #2 + blo _021EF52A + mov r6, #0 + add r7, r6, #0 +_021EF542: + lsl r4, r6, #2 + add r0, r5, r4 + add r0, #0x90 + ldr r2, [r0] + ldr r0, _021EF59C ; =0x00000864 + mov r1, #0 + str r1, [r2, r0] + add r0, r5, r4 + add r0, #0x90 + ldr r1, [r0] + ldr r0, _021EF5A0 ; =0x0000085C + ldr r0, [r1, r0] + bl MOD05_021F43C0 + add r0, r5, r4 + add r0, #0x90 + ldr r1, [r0] + ldr r0, _021EF5A4 ; =0x00000868 + ldr r0, [r1, r0] + bl MOD05_021E7C14 + add r0, r5, r4 + add r0, #0x90 + ldr r0, [r0] + bl FreeToHeap + add r0, r5, r4 + add r0, #0x90 + str r7, [r0] + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #4 + blo _021EF542 + add r0, r5, #0 + mov r1, #3 + add r0, #0xb4 + str r1, [r0] + add r0, r5, #0 + mov r1, #1 + add r0, #0xb0 + str r1, [r0] + add r5, #0xec + str r7, [r5] + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021EF59C: .word 0x00000864 +_021EF5A0: .word 0x0000085C +_021EF5A4: .word 0x00000868 + + thumb_func_start MOD05_021EF5A8 +MOD05_021EF5A8: ; 0x021EF5A8 + push {r4, lr} + add r4, r0, #0 + add r0, #0xf8 + ldr r0, [r0] + bl NARC_dtor + ldr r0, [r4] + bl MOD05_021F3C30 + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EF5C4 +MOD05_021EF5C4: ; 0x021EF5C4 + add r1, r0, #0 + add r1, #0xb0 + ldr r1, [r1] + cmp r1, #1 + bne _021EF5DA + add r0, #0xa0 + ldrb r0, [r0] + cmp r0, #0 + bne _021EF5DA + mov r0, #1 + bx lr +_021EF5DA: + mov r0, #0 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021EF5E0 +MOD05_021EF5E0: ; 0x021EF5E0 + push {r4, r5} + add r5, r0, #0 + add r4, r1, #0 + add r2, r4, #0 + add r3, r5, #0 + ldmia r3!, {r0, r1} + add r2, #0xcc + stmia r2!, {r0, r1} + ldr r0, [r3] + add r4, #0xd8 + str r0, [r2] + str r5, [r4] + pop {r4, r5} + bx lr + + thumb_func_start MOD05_021EF5FC +MOD05_021EF5FC: ; 0x021EF5FC + mov r1, #0 + add r0, #0xd8 + str r1, [r0] + bx lr + + thumb_func_start MOD05_021EF604 +MOD05_021EF604: ; 0x021EF604 + lsl r0, r0, #2 + add r0, r1, r0 + add r0, #0x90 + ldr r1, [r0] + ldr r0, _021EF614 ; =0x00000868 + ldr r0, [r1, r0] + str r0, [r2] + bx lr + .balign 4, 0 +_021EF614: .word 0x00000868 + + thumb_func_start MOD05_021EF618 +MOD05_021EF618: ; 0x021EF618 + add r0, #0xac + ldrb r0, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021EF620 +MOD05_021EF620: ; 0x021EF620 + push {r4, lr} + add r4, r0, #0 + bl _u32_div_f + lsr r2, r0, #0x1f + lsl r1, r0, #0x1b + sub r1, r1, r2 + mov r0, #0x1b + ror r1, r0 + mov r0, #0x1f + and r0, r4 + add r1, r2, r1 + cmp r0, #0x10 + bge _021EF648 + cmp r1, #0x10 + bge _021EF644 + mov r0, #0 + pop {r4, pc} +_021EF644: + mov r0, #2 + pop {r4, pc} +_021EF648: + cmp r1, #0x10 + bge _021EF650 + mov r0, #1 + pop {r4, pc} +_021EF650: + mov r0, #3 + pop {r4, pc} + + thumb_func_start MOD05_021EF654 +MOD05_021EF654: ; 0x021EF654 + push {r3, r4, r5, lr} + add r4, r2, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0xa4 + ldr r0, [r0] + cmp r0, r5 + bne _021EF66A + add r4, #0xac + ldrb r0, [r4] + pop {r3, r4, r5, pc} +_021EF66A: + mov r0, #0 + mvn r0, r0 + cmp r5, r0 + bne _021EF676 + bl GF_AssertFail +_021EF676: + add r0, r4, #0 + add r0, #0xac + ldrb r1, [r0] + cmp r1, #3 + bls _021EF682 + b _021EF820 +_021EF682: + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EF68E: ; jump table + .short _021EF696 - _021EF68E - 2 ; case 0 + .short _021EF6F8 - _021EF68E - 2 ; case 1 + .short _021EF75C - _021EF68E - 2 ; case 2 + .short _021EF7BE - _021EF68E - 2 ; case 3 +_021EF696: + add r0, r4, #0 + add r0, #0xa4 + add r2, r4, #0 + ldr r0, [r0] + add r2, #0xc0 + ldr r2, [r2] + sub r3, r5, r0 + cmp r2, r3 + bne _021EF6B0 + add r0, r1, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF6B0: + cmp r3, #1 + bne _021EF6CA + add r1, r5, #0 + bl MOD05_021EDE58 + cmp r0, #0 + beq _021EF6CA + add r4, #0xac + ldrb r0, [r4] + add r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF6CA: + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xa4 + add r1, #0xc0 + ldr r2, [r1] + ldr r0, [r0] + add r3, r2, #1 + sub r1, r5, r0 + cmp r3, r1 + bne _021EF6F4 + add r1, r5, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EF6F4 + add r4, #0xac + ldrb r0, [r4] + add r0, r0, #3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF6F4: + mov r0, #4 + pop {r3, r4, r5, pc} +_021EF6F8: + add r0, r4, #0 + add r0, #0xa4 + add r2, r4, #0 + ldr r0, [r0] + add r2, #0xc0 + ldr r2, [r2] + sub r3, r5, r0 + cmp r2, r3 + bne _021EF712 + add r0, r1, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF712: + sub r1, r0, r5 + cmp r1, #1 + bne _021EF72E + add r1, r5, #0 + bl MOD05_021EDE58 + cmp r0, #0 + beq _021EF72E + add r4, #0xac + ldrb r0, [r4] + sub r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF72E: + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xa4 + add r1, #0xc0 + ldr r2, [r1] + ldr r0, [r0] + sub r3, r2, #1 + sub r1, r5, r0 + cmp r3, r1 + bne _021EF758 + add r1, r5, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EF758 + add r4, #0xac + ldrb r0, [r4] + add r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF758: + mov r0, #4 + pop {r3, r4, r5, pc} +_021EF75C: + add r0, r4, #0 + add r0, #0xa4 + add r2, r4, #0 + ldr r0, [r0] + add r2, #0xc0 + ldr r2, [r2] + sub r3, r0, r5 + cmp r2, r3 + bne _021EF776 + sub r0, r1, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF776: + sub r1, r2, #1 + cmp r1, r3 + bne _021EF792 + add r1, r5, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EF792 + add r4, #0xac + ldrb r0, [r4] + sub r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF792: + add r0, r4, #0 + add r0, #0xa4 + ldr r0, [r0] + sub r1, r5, r0 + cmp r1, #1 + bne _021EF7BA + add r2, r4, #0 + add r2, #0xc0 + ldr r2, [r2] + add r1, r5, #0 + bl MOD05_021EDE58 + cmp r0, #0 + beq _021EF7BA + add r4, #0xac + ldrb r0, [r4] + add r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF7BA: + mov r0, #4 + pop {r3, r4, r5, pc} +_021EF7BE: + add r0, r4, #0 + add r0, #0xa4 + add r2, r4, #0 + ldr r0, [r0] + add r2, #0xc0 + ldr r2, [r2] + sub r3, r0, r5 + cmp r2, r3 + bne _021EF7D8 + sub r0, r1, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF7D8: + add r1, r2, #1 + cmp r1, r3 + bne _021EF7F4 + add r1, r5, #0 + bl MOD05_021EDE58 + cmp r0, #0 + bne _021EF7F4 + add r4, #0xac + ldrb r0, [r4] + sub r0, r0, #3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF7F4: + add r0, r4, #0 + add r0, #0xa4 + ldr r0, [r0] + sub r1, r0, r5 + cmp r1, #1 + bne _021EF81C + add r2, r4, #0 + add r2, #0xc0 + ldr r2, [r2] + add r1, r5, #0 + bl MOD05_021EDE58 + cmp r0, #0 + beq _021EF81C + add r4, #0xac + ldrb r0, [r4] + sub r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} +_021EF81C: + mov r0, #4 + pop {r3, r4, r5, pc} +_021EF820: + mov r0, #4 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021EF824 +MOD05_021EF824: ; 0x021EF824 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #4 + blo _021EF832 + bl GF_AssertFail +_021EF832: + lsl r0, r5, #2 + add r0, r4, r0 + add r0, #0x90 + ldr r1, [r0] + mov r0, #0x86 + lsl r0, r0, #4 + ldr r0, [r1, r0] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EF844 +MOD05_021EF844: ; 0x021EF844 + push {r3, r4, r5, r6, r7, lr} + add r6, r2, #0 + asr r2, r6, #4 + add r5, r0, #0 + lsr r2, r2, #0x1b + add r2, r6, r2 + add r4, r1, #0 + add r0, #0xc0 + ldr r1, [r0] + asr r0, r4, #4 + lsr r0, r0, #0x1b + add r0, r4, r0 + asr r2, r2, #5 + str r3, [sp] + add r3, r2, #0 + asr r0, r0, #5 + mul r3, r1 + add r7, r0, r3 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mul r0, r1 + cmp r7, r0 + blo _021EF882 + mov r0, #1 + bl FUN_020336A0 + cmp r0, #0 + beq _021EF882 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021EF882: + add r0, r5, #0 + add r0, #0xc0 + ldr r1, [r0] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mul r0, r1 + cmp r7, r0 + blo _021EF898 + bl GF_AssertFail +_021EF898: + add r0, r5, #0 + add r0, #0xc8 + ldr r1, [r0] + add r0, r6, #0 + mul r0, r1 + add r0, r4, r0 + bl MOD05_021EF620 + add r1, r0, #0 + add r0, r7, #0 + add r2, r5, #0 + bl MOD05_021EF654 + ldr r1, [sp] + cmp r1, #0 + beq _021EF8BA + strb r0, [r1] +_021EF8BA: + cmp r0, #3 + bls _021EF8C2 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021EF8C2: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EF8C8 +MOD05_021EF8C8: ; 0x021EF8C8 + lsl r1, r1, #2 + add r0, r0, r1 + add r0, #0x90 + ldr r1, [r0] + ldr r0, _021EF8D8 ; =0x0000085C + ldr r0, [r1, r0] + bx lr + nop +_021EF8D8: .word 0x0000085C + + thumb_func_start MOD05_021EF8DC +MOD05_021EF8DC: ; 0x021EF8DC + lsl r1, r1, #2 + add r0, r0, r1 + add r0, #0x90 + ldr r0, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021EF8E8 +MOD05_021EF8E8: ; 0x021EF8E8 + add r3, r0, #0 + add r3, #0xfc + str r1, [r3] + mov r1, #1 + lsl r1, r1, #8 + str r2, [r0, r1] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021EF8F8 +MOD05_021EF8F8: ; 0x021EF8F8 + push {r3, lr} + bl FUN_0201B6C8 + mov r1, #1 + str r1, [r0, #0x1c] + pop {r3, pc} + + thumb_func_start MOD05_021EF904 +MOD05_021EF904: ; 0x021EF904 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x1c] + cmp r0, #1 + bne _021EF914 + mov r0, #5 + strb r0, [r4, #0x14] +_021EF914: + ldrb r0, [r4, #0x14] + cmp r0, #5 + bhi _021EF9FE + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EF926: ; jump table + .short _021EF932 - _021EF926 - 2 ; case 0 + .short _021EF962 - _021EF926 - 2 ; case 1 + .short _021EF998 - _021EF926 - 2 ; case 2 + .short _021EF9B6 - _021EF926 - 2 ; case 3 + .short _021EF9FE - _021EF926 - 2 ; case 4 + .short _021EF9EC - _021EF926 - 2 ; case 5 +_021EF932: + mov r0, #0 + str r0, [r4, #0x24] + mov r0, #0xe + ldr r5, [r4, #4] + lsl r0, r0, #0xc + cmp r5, r0 + bgt _021EF944 + mov r0, #2 + b _021EF948 +_021EF944: + add r5, r0, #0 + mov r0, #1 +_021EF948: + strb r0, [r4, #0x14] + ldr r2, [r4, #0xc] + ldr r0, [r4] + ldr r3, [r2] + ldr r2, [r4, #0x24] + add r1, r5, #0 + add r2, r3, r2 + bl NARC_ReadFile + ldr r0, [r4, #0x24] + add r0, r0, r5 + str r0, [r4, #0x24] + pop {r4, r5, r6, pc} +_021EF962: + ldr r2, [r4, #0x24] + ldr r0, [r4, #4] + sub r5, r0, r2 + mov r0, #0xe + lsl r0, r0, #0xc + cmp r5, r0 + ble _021EF976 + add r5, r0, #0 + mov r6, #0 + b _021EF978 +_021EF976: + mov r6, #1 +_021EF978: + ldr r3, [r4, #0xc] + ldr r0, [r4] + ldr r3, [r3] + add r1, r5, #0 + add r2, r3, r2 + bl NARC_ReadFile + cmp r6, #0 + beq _021EF990 + mov r0, #2 + strb r0, [r4, #0x14] + pop {r4, r5, r6, pc} +_021EF990: + ldr r0, [r4, #0x24] + add r0, r0, r5 + str r0, [r4, #0x24] + pop {r4, r5, r6, pc} +_021EF998: + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _021EF9B0 + bl FUN_0201B254 + cmp r0, #1 + bne _021EF9B0 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + ldr r0, [r0] + bl FUN_0201B3A8 +_021EF9B0: + mov r0, #3 + strb r0, [r4, #0x14] + pop {r4, r5, r6, pc} +_021EF9B6: + ldr r0, [r4, #0xc] + ldr r0, [r0] + bl NNS_G3dGetMdlSet + add r5, r0, #0 + ldrb r0, [r5, #9] + cmp r0, #1 + beq _021EF9CA + bl GF_AssertFail +_021EF9CA: + ldrh r0, [r5, #0xe] + add r0, r5, r0 + ldr r0, [r0, #0xc] + add r5, r5, r0 + bne _021EF9D8 + bl GF_AssertFail +_021EF9D8: + ldr r0, [r4, #8] + add r1, r5, #0 + bl NNS_G3dRenderObjInit + ldr r0, [r4, #0x18] + mov r1, #1 + str r1, [r0] + mov r0, #5 + strb r0, [r4, #0x14] + pop {r4, r5, r6, pc} +_021EF9EC: + ldr r0, [r4, #0x20] + mov r1, #0 + str r1, [r0] + add r0, r4, #0 + bl FreeToHeap + add r0, r5, #0 + bl FUN_0200CAB4 +_021EF9FE: + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021EFA00 +MOD05_021EFA00: ; 0x021EFA00 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r0, #4 + + thumb_func_start MOD05_021EFA08 +MOD05_021EFA08: ; 0x021EFA08 + mov r1, #0x28 + add r6, r2, #0 + add r7, r3, #0 + bl AllocFromHeapAtEnd + add r1, r0, #0 + str r5, [r1] + str r4, [r1, #4] + str r6, [r1, #8] + ldr r0, [sp, #0x18] + str r7, [r1, #0xc] + str r0, [r1, #0x10] + mov r2, #0 + ldr r0, [sp, #0x1c] + strb r2, [r1, #0x14] + str r0, [r1, #0x18] + str r2, [r0] + ldr r0, [sp, #0x20] + str r0, [r1, #0x20] + str r2, [r1, #0x1c] + ldr r0, _021EFA3C ; =MOD05_021EF904 + mov r2, #1 + bl FUN_0200CA44 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EFA3C: .word MOD05_021EF904 + + thumb_func_start MOD05_021EFA40 +MOD05_021EFA40: ; 0x021EFA40 + push {r3, r4, r5, lr} + add r4, r3, #0 + add r5, r2, #0 + ldr r2, [r4] + bl NARC_ReadFile + ldr r0, [sp, #0x10] + cmp r0, #0 + beq _021EFA6A + bl FUN_0201B254 + cmp r0, #1 + bne _021EFA6A + ldr r0, [r4] + ldr r1, [sp, #0x10] + bl FUN_0201B3A8 + cmp r0, #0 + bne _021EFA6A + bl GF_AssertFail +_021EFA6A: + ldr r0, [r4] + bl NNS_G3dGetMdlSet + ldrb r0, [r0, #9] + cmp r0, #1 + beq _021EFA7A + bl GF_AssertFail +_021EFA7A: + ldr r0, [r4] + bl NNS_G3dGetMdlSet + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r4, r0, r1 + bne _021EFA8E + bl GF_AssertFail +_021EFA8E: + add r0, r5, #0 + add r1, r4, #0 + bl NNS_G3dRenderObjInit + add r0, r4, #0 + pop {r3, r4, r5, pc} + .balign 4, 0 + + .section .rodata + + .global UNK05_021F8B04 +UNK05_021F8B04: ; 0x021F8B04 + .word MOD05_021EF16C, MOD05_021EE114 + + .global UNK05_021F8B0C +UNK05_021F8B0C: ; 0x021F8B0C + .word MOD05_021EF1FC, MOD05_021EE1E4 + + .global UNK05_021F8B14 +UNK05_021F8B14: ; 0x021F8B14 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00 + + .global UNK05_021F8B20 +UNK05_021F8B20: ; 0x021F8B20 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021EFA9C.s b/arm9/modules/05/asm/mod05_021EFA9C.s new file mode 100644 index 00000000..f749c0e8 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021EFA9C.s @@ -0,0 +1,172 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021EFA9C +MOD05_021EFA9C: ; 0x021EFA9C + push {r3, lr} + ldr r0, [r0, #4] + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _021EFAAA + bl MOD20_022524DC +_021EFAAA: + pop {r3, pc} + + thumb_func_start MOD05_021EFAAC +MOD05_021EFAAC: ; 0x021EFAAC + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + ldr r0, [r5, #0xc] + bl Sav2_Poketch_get + add r4, r0, #0 + ldr r0, [r5, #0xc] + bl SavArray_Flags_get + add r6, r0, #0 + add r0, r4, #0 + bl Sav2_Poketch_IsGiven + cmp r0, #0 + beq _021EFAF8 + add r0, r6, #0 + bl FUN_0205F1E4 + cmp r0, #0 + bne _021EFAF8 + ldr r0, _021EFB0C ; =SDK_OVERLAY_MODULE_20_ID + mov r1, #2 + bl HandleLoadOverlay + mov r0, #1 + bl FUN_0200A03C + str r0, [sp] + ldr r1, [r5, #4] + ldr r2, [r5, #0xc] + ldr r3, [r5, #8] + add r0, r5, #0 + add r1, #0x14 + bl MOD20_02252448 + add sp, #4 + pop {r3, r4, r5, r6, pc} +_021EFAF8: + ldr r0, _021EFB10 ; =SDK_OVERLAY_MODULE_19_ID + mov r1, #2 + bl HandleLoadOverlay + ldr r0, [r5, #8] + bl MOD19_02252440 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021EFB0C: .word SDK_OVERLAY_MODULE_20_ID +_021EFB10: .word SDK_OVERLAY_MODULE_19_ID + + thumb_func_start MOD05_021EFB14 +MOD05_021EFB14: ; 0x021EFB14 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #0xc] + bl Sav2_Poketch_get + add r4, r0, #0 + ldr r0, [r5, #0xc] + bl SavArray_Flags_get + add r6, r0, #0 + add r0, r4, #0 + bl Sav2_Poketch_IsGiven + cmp r0, #0 + beq _021EFB46 + add r0, r6, #0 + bl FUN_0205F1E4 + cmp r0, #0 + bne _021EFB46 + ldr r0, [r5, #4] + ldr r0, [r0, #0x14] + bl MOD20_022524BC + pop {r4, r5, r6, pc} +_021EFB46: + ldr r0, [r5, #8] + bl MOD19_022524F4 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EFB50 +MOD05_021EFB50: ; 0x021EFB50 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #0xc] + bl Sav2_Poketch_get + add r4, r0, #0 + ldr r0, [r5, #0xc] + bl SavArray_Flags_get + add r6, r0, #0 + add r0, r4, #0 + bl Sav2_Poketch_IsGiven + cmp r0, #0 + beq _021EFB94 + add r0, r6, #0 + bl FUN_0205F1E4 + cmp r0, #0 + bne _021EFB94 + ldr r0, [r5, #4] + ldr r0, [r0, #0x14] + bl MOD20_022524D0 + cmp r0, #0 + beq _021EFBA8 + ldr r0, [r5, #4] + mov r1, #0 + str r1, [r0, #0x14] + ldr r0, _021EFBAC ; =SDK_OVERLAY_MODULE_20_ID + bl UnloadOverlayByID + mov r0, #1 + pop {r4, r5, r6, pc} +_021EFB94: + ldr r0, [r5, #8] + bl MOD19_02252504 + cmp r0, #0 + beq _021EFBA8 + ldr r0, _021EFBB0 ; =SDK_OVERLAY_MODULE_19_ID + bl UnloadOverlayByID + mov r0, #1 + pop {r4, r5, r6, pc} +_021EFBA8: + mov r0, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 +_021EFBAC: .word SDK_OVERLAY_MODULE_20_ID +_021EFBB0: .word SDK_OVERLAY_MODULE_19_ID + + thumb_func_start MOD05_021EFBB4 +MOD05_021EFBB4: ; 0x021EFBB4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021EFBC8 ; =SDK_OVERLAY_MODULE_19_ID + mov r1, #2 + bl HandleLoadOverlay + ldr r0, [r4, #8] + bl MOD19_02252440 + pop {r4, pc} + .balign 4, 0 +_021EFBC8: .word SDK_OVERLAY_MODULE_19_ID + + thumb_func_start MOD05_021EFBCC +MOD05_021EFBCC: ; 0x021EFBCC + ldr r3, _021EFBD4 ; =MOD19_022524F4 + ldr r0, [r0, #8] + bx r3 + nop +_021EFBD4: .word MOD19_022524F4 + + thumb_func_start MOD05_021EFBD8 +MOD05_021EFBD8: ; 0x021EFBD8 + push {r3, lr} + ldr r0, [r0, #8] + bl MOD19_02252504 + cmp r0, #0 + beq _021EFBEE + ldr r0, _021EFBF4 ; =SDK_OVERLAY_MODULE_19_ID + bl UnloadOverlayByID + mov r0, #1 + pop {r3, pc} +_021EFBEE: + mov r0, #0 + pop {r3, pc} + nop +_021EFBF4: .word SDK_OVERLAY_MODULE_19_ID diff --git a/arm9/modules/05/asm/mod05_021EFBF8.s b/arm9/modules/05/asm/mod05_021EFBF8.s new file mode 100644 index 00000000..3437ee91 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021EFBF8.s @@ -0,0 +1,905 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021EFBF8 +MOD05_021EFBF8: ; 0x021EFBF8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, [r4, #0x34] + bl FUN_020286EC + mov r1, #0 + bl FUN_0202838C + add r1, r4, #0 + ldr r0, [r4, #0x34] + add r1, #0x4c + mov r2, #4 + bl FUN_020339B4 + cmp r0, #0 + bne _021EFC20 + add sp, #8 + mov r0, #1 + pop {r4, pc} +_021EFC20: + add r0, r4, #0 + mov r1, #0 + add r0, #0x8c + str r1, [r0] + ldr r0, [r4, #0x34] + bl Sav2_PlayerData_GetOptionsAddr + bl Options_GetFrame + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + ldr r0, [r4, #0x30] + ldr r2, _021EFC6C ; =0x000001E2 + ldr r0, [r0, #8] + mov r1, #3 + mov r3, #0xa + bl FUN_0200CD68 + mov r0, #0 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + ldr r0, [r4, #0x30] + ldr r2, _021EFC70 ; =0x000003D9 + ldr r0, [r0, #8] + mov r1, #3 + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #1 + str r0, [r4, #0x48] + mov r0, #0 + add sp, #8 + pop {r4, pc} + nop +_021EFC6C: .word 0x000001E2 +_021EFC70: .word 0x000003D9 + + thumb_func_start MOD05_021EFC74 +MOD05_021EFC74: ; 0x021EFC74 + push {r3, r4, r5, r6, lr} + sub sp, #4 + mov r1, #0 + add r6, r0, #0 + mvn r1, r1 + add r0, #0x8c + str r1, [r0] + mov r4, #0 + bl FUN_02030F20 + cmp r0, #0 + ble _021EFCB0 + add r5, r6, #0 +_021EFC8E: + ldr r0, [r5, #0x4c] + cmp r0, #2 + bne _021EFCA4 + add r0, r6, #0 + add r0, #0x8c + str r4, [r0] + lsl r0, r4, #2 + mov r1, #0 + add r0, r6, r0 + str r1, [r0, #0x4c] + b _021EFCB0 +_021EFCA4: + add r5, r5, #4 + add r4, r4, #1 + bl FUN_02030F20 + cmp r4, r0 + blt _021EFC8E +_021EFCB0: + add r0, r6, #0 + add r0, #0x8c + ldr r1, [r0] + mov r0, #0 + mvn r0, r0 + cmp r1, r0 + bne _021EFCC4 + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021EFCC4: + ldr r0, [r6, #0x34] + bl Sav2_Bag_get + ldr r1, _021EFD3C ; =0x000001B5 + mov r2, #1 + mov r3, #4 + bl Bag_HasItem + cmp r0, #1 + bne _021EFCFE + add r0, r6, #0 + add r0, #0x8c + ldr r0, [r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r6, #0x38] + mov r1, #0 + bl BufferPlayersName + add r0, r6, #0 + mov r1, #0x21 + bl MOD05_021F01EC + mov r0, #2 + str r0, [r6, #0x48] + add sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021EFCFE: + ldr r0, [r6, #0x34] + bl FUN_020286EC + add r4, r0, #0 + mov r5, #0 +_021EFD08: + add r0, r4, #0 + add r1, r5, #0 + bl FUN_0202842C + cmp r0, #0 + bne _021EFD2A + mov r0, #0 + add r1, r6, #0 + str r0, [sp] + add r1, #0x8c + ldr r0, [r6, #0x34] + ldr r1, [r1] + add r2, r5, #0 + mov r3, #4 + bl FUN_02033A70 + b _021EFD30 +_021EFD2A: + add r5, r5, #1 + cmp r5, #0x20 + blt _021EFD08 +_021EFD30: + mov r0, #1 + str r0, [r6, #0x48] + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021EFD3C: .word 0x000001B5 + + thumb_func_start MOD05_021EFD40 +MOD05_021EFD40: ; 0x021EFD40 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #0x40] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021EFD6C + mov r0, #4 + str r0, [sp] + ldr r0, [r4, #0x30] + ldr r1, _021EFD74 ; =UNK05_021F8B44 + ldr r0, [r0, #8] + ldr r2, _021EFD78 ; =0x000003D9 + mov r3, #0xb + bl Std_CreateYesNoMenu + str r0, [r4, #0x44] + mov r0, #3 + str r0, [r4, #0x48] +_021EFD6C: + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + nop +_021EFD74: .word UNK05_021F8B44 +_021EFD78: .word 0x000003D9 + + thumb_func_start MOD05_021EFD7C +MOD05_021EFD7C: ; 0x021EFD7C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r6, r0, #0 + ldr r0, [r6, #0x44] + mov r1, #4 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021EFD98 + add sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021EFD98: + cmp r0, #0 + bne _021EFDE4 + ldr r0, [r6, #0x34] + bl FUN_020286EC + add r5, r0, #0 + mov r4, #0 +_021EFDA6: + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0202842C + cmp r0, #0 + bne _021EFDC8 + mov r0, #0 + add r1, r6, #0 + str r0, [sp] + add r1, #0x8c + ldr r0, [r6, #0x34] + ldr r1, [r1] + add r2, r4, #0 + mov r3, #4 + bl FUN_02033A70 + b _021EFDCE +_021EFDC8: + add r4, r4, #1 + cmp r4, #0x20 + blt _021EFDA6 +_021EFDCE: + cmp r4, #0x20 + bne _021EFDE4 + add r0, r6, #0 + mov r1, #0x22 + bl MOD05_021F01EC + mov r0, #4 + str r0, [r6, #0x48] + add sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021EFDE4: + mov r0, #1 + str r0, [r6, #0x48] + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021EFDF0 +MOD05_021EFDF0: ; 0x021EFDF0 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #0x40] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021EFE1C + mov r0, #4 + str r0, [sp] + ldr r0, [r4, #0x30] + ldr r1, _021EFE24 ; =UNK05_021F8B44 + ldr r0, [r0, #8] + ldr r2, _021EFE28 ; =0x000003D9 + mov r3, #0xb + bl Std_CreateYesNoMenu + str r0, [r4, #0x44] + mov r0, #5 + str r0, [r4, #0x48] +_021EFE1C: + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + nop +_021EFE24: .word UNK05_021F8B44 +_021EFE28: .word 0x000003D9 + + thumb_func_start MOD05_021EFE2C +MOD05_021EFE2C: ; 0x021EFE2C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x44] + mov r1, #4 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021EFE44 + mov r0, #0 + pop {r4, pc} +_021EFE44: + cmp r0, #0 + bne _021EFE4C + mov r0, #8 + b _021EFE6A +_021EFE4C: + add r0, r4, #0 + add r0, #0x8c + ldr r0, [r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r4, #0x38] + mov r1, #0 + bl BufferPlayersName + add r0, r4, #0 + mov r1, #0x23 + bl MOD05_021F01EC + mov r0, #6 +_021EFE6A: + str r0, [r4, #0x48] + mov r0, #0 + pop {r4, pc} + + thumb_func_start MOD05_021EFE70 +MOD05_021EFE70: ; 0x021EFE70 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #0x40] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021EFE9C + mov r0, #4 + str r0, [sp] + ldr r0, [r4, #0x30] + ldr r1, _021EFEA4 ; =UNK05_021F8B44 + ldr r0, [r0, #8] + ldr r2, _021EFEA8 ; =0x000003D9 + mov r3, #0xb + bl Std_CreateYesNoMenu + str r0, [r4, #0x44] + mov r0, #7 + str r0, [r4, #0x48] +_021EFE9C: + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + nop +_021EFEA4: .word UNK05_021F8B44 +_021EFEA8: .word 0x000003D9 + + thumb_func_start MOD05_021EFEAC +MOD05_021EFEAC: ; 0x021EFEAC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x44] + mov r1, #4 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021EFEC4 + mov r0, #0 + pop {r4, pc} +_021EFEC4: + cmp r0, #0 + bne _021EFECC + mov r0, #0xc + b _021EFED6 +_021EFECC: + add r0, r4, #0 + mov r1, #0x22 + bl MOD05_021F01EC + mov r0, #4 +_021EFED6: + str r0, [r4, #0x48] + mov r0, #0 + pop {r4, pc} + + thumb_func_start MOD05_021EFEDC +MOD05_021EFEDC: ; 0x021EFEDC + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r0, #0 + ldr r0, [r5, #0x34] + bl FUN_020286EC + add r6, r0, #0 + bl FUN_02028448 + add r7, r0, #0 + add r0, r7, #1 + mov r1, #4 + bl ListMenuItems_ctor + str r0, [r5] + mov r0, #1 + str r0, [sp] + mov r0, #0xc + str r0, [sp, #4] + mov r0, #0xa + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021EFFB8 ; =0x000002A1 + add r1, r5, #0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x30] + add r1, #0x20 + ldr r0, [r0, #8] + mov r2, #3 + mov r3, #0x13 + bl AddWindowParameterized + add r0, r5, #0 + ldr r2, _021EFFBC ; =0x000003D9 + add r0, #0x20 + mov r1, #1 + mov r3, #0xb + bl FUN_0200CCA4 + mov r4, #0 +_021EFF2E: + add r0, r6, #0 + add r1, r4, #0 + bl FUN_0202842C + cmp r0, #0 + beq _021EFF54 + add r0, r6, #0 + add r1, r4, #0 + bl FUN_020283A4 + add r1, r0, #0 + ldr r0, [r5, #8] + bl CopyU16ArrayToString + ldr r0, [r5] + ldr r1, [r5, #8] + add r2, r4, #0 + bl ListMenuItems_AddItem +_021EFF54: + add r4, r4, #1 + cmp r4, #0x20 + blt _021EFF2E + mov r2, #0xb + add r3, r2, #0 + ldr r0, [r5] + ldr r1, [r5, #0x3c] + sub r3, #0xd + bl ListMenuItems_AppendFromMsgData + ldr r4, _021EFFC0 ; =UNK05_021F8B4C + add r3, sp, #0x14 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r1, r7, #1 + add r0, sp, #0x14 + strh r1, [r0, #0x10] + mov r1, #5 + strh r1, [r0, #0x12] + ldr r0, [r5] + mov r1, #0 + str r0, [sp, #0x14] + add r0, r5, #0 + add r0, #0x20 + str r0, [sp, #0x20] + ldr r0, _021EFFC4 ; =MOD05_021F0304 + str r5, [sp, #0x30] + str r0, [sp, #0x18] + add r0, r2, #0 + add r2, r1, #0 + mov r3, #4 + bl ListMenuInit + str r0, [r5, #4] + add r0, r5, #0 + add r0, #0x20 + bl CopyWindowToVram + mov r0, #9 + str r0, [r5, #0x48] + mov r0, #0 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 +_021EFFB8: .word 0x000002A1 +_021EFFBC: .word 0x000003D9 +_021EFFC0: .word UNK05_021F8B4C +_021EFFC4: .word MOD05_021F0304 + + thumb_func_start MOD05_021EFFC8 +MOD05_021EFFC8: ; 0x021EFFC8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #4] + bl ListMenu_ProcessInput + add r4, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _021EFFE6 + add r0, r0, #1 + cmp r4, r0 + bne _021F000E + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021EFFE6: + ldr r0, _021F007C ; =0x000005DC + bl PlaySE + add r0, r5, #0 + add r0, #0x8c + ldr r0, [r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r5, #0x38] + mov r1, #0 + bl BufferPlayersName + add r0, r5, #0 + mov r1, #0x23 + bl MOD05_021F01EC + mov r0, #6 + str r0, [r5, #0x48] + b _021F0056 +_021F000E: + ldr r0, _021F007C ; =0x000005DC + bl PlaySE + add r0, r5, #0 + add r0, #0x90 + str r4, [r0] + ldr r0, [r5, #0x34] + bl FUN_020286EC + add r7, r0, #0 + mov r0, #4 + bl PlayerProfile_new + add r6, r0, #0 + add r0, r7, #0 + add r1, r4, #0 + bl FUN_020283A4 + add r1, r0, #0 + add r0, r6, #0 + bl CopyPlayerName + ldr r0, [r5, #0x38] + mov r1, #0 + add r2, r6, #0 + bl BufferPlayersName + add r0, r6, #0 + bl FreeToHeap + add r0, r5, #0 + mov r1, #0x24 + bl MOD05_021F01EC + mov r0, #0xa + str r0, [r5, #0x48] +_021F0056: + add r0, r5, #0 + add r0, #0x20 + mov r1, #0 + bl FUN_0200CCF8 + add r0, r5, #0 + add r0, #0x20 + bl RemoveWindow + mov r1, #0 + ldr r0, [r5, #4] + add r2, r1, #0 + bl DestroyListMenu + ldr r0, [r5] + bl ListMenuItems_dtor + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F007C: .word 0x000005DC + + thumb_func_start MOD05_021F0080 +MOD05_021F0080: ; 0x021F0080 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #0x40] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021F00AC + mov r0, #4 + str r0, [sp] + ldr r0, [r4, #0x30] + ldr r1, _021F00B4 ; =UNK05_021F8B44 + ldr r0, [r0, #8] + ldr r2, _021F00B8 ; =0x000003D9 + mov r3, #0xb + bl Std_CreateYesNoMenu + str r0, [r4, #0x44] + mov r0, #0xb + str r0, [r4, #0x48] +_021F00AC: + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + nop +_021F00B4: .word UNK05_021F8B44 +_021F00B8: .word 0x000003D9 + + thumb_func_start MOD05_021F00BC +MOD05_021F00BC: ; 0x021F00BC + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x34] + bl FUN_020286EC + add r4, r0, #0 + ldr r0, [r5, #0x44] + mov r1, #4 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021F00DC + mov r0, #0 + pop {r3, r4, r5, pc} +_021F00DC: + cmp r0, #0 + bne _021F0104 + add r1, r5, #0 + add r1, #0x90 + ldr r1, [r1] + add r0, r4, #0 + bl FUN_02028468 + mov r0, #0 + add r1, r5, #0 + str r0, [sp] + add r1, #0x8c + ldr r0, [r5, #0x34] + ldr r1, [r1] + mov r2, #0x1f + mov r3, #4 + bl FUN_02033A70 + mov r0, #1 + b _021F0122 +_021F0104: + add r0, r5, #0 + add r0, #0x8c + ldr r0, [r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r5, #0x38] + mov r1, #0 + bl BufferPlayersName + add r0, r5, #0 + mov r1, #0x23 + bl MOD05_021F01EC + mov r0, #6 +_021F0122: + str r0, [r5, #0x48] + mov r0, #0 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F0128 +MOD05_021F0128: ; 0x021F0128 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_0204652C + + thumb_func_start MOD05_021F0130 +MOD05_021F0130: ; 0x021F0130 + add r4, r0, #0 + add r0, r5, #0 + bl FUN_02046528 + ldr r0, [r4, #0x48] + cmp r0, #0xc + bhi _021F01E8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021F014A: ; jump table + .short _021F0164 - _021F014A - 2 ; case 0 + .short _021F0174 - _021F014A - 2 ; case 1 + .short _021F0184 - _021F014A - 2 ; case 2 + .short _021F018C - _021F014A - 2 ; case 3 + .short _021F0194 - _021F014A - 2 ; case 4 + .short _021F019C - _021F014A - 2 ; case 5 + .short _021F01A4 - _021F014A - 2 ; case 6 + .short _021F01AC - _021F014A - 2 ; case 7 + .short _021F01B4 - _021F014A - 2 ; case 8 + .short _021F01BC - _021F014A - 2 ; case 9 + .short _021F01C4 - _021F014A - 2 ; case 10 + .short _021F01CC - _021F014A - 2 ; case 11 + .short _021F01D4 - _021F014A - 2 ; case 12 +_021F0164: + add r0, r4, #0 + bl MOD05_021EFBF8 + cmp r0, #0 + beq _021F01E8 + mov r0, #0xc + str r0, [r4, #0x48] + b _021F01E8 +_021F0174: + add r0, r4, #0 + bl MOD05_021EFC74 + cmp r0, #0 + beq _021F01E8 + mov r0, #0xc + str r0, [r4, #0x48] + b _021F01E8 +_021F0184: + add r0, r4, #0 + bl MOD05_021EFD40 + b _021F01E8 +_021F018C: + add r0, r4, #0 + bl MOD05_021EFD7C + b _021F01E8 +_021F0194: + add r0, r4, #0 + bl MOD05_021EFDF0 + b _021F01E8 +_021F019C: + add r0, r4, #0 + bl MOD05_021EFE2C + b _021F01E8 +_021F01A4: + add r0, r4, #0 + bl MOD05_021EFE70 + b _021F01E8 +_021F01AC: + add r0, r4, #0 + bl MOD05_021EFEAC + b _021F01E8 +_021F01B4: + add r0, r4, #0 + bl MOD05_021EFEDC + b _021F01E8 +_021F01BC: + add r0, r4, #0 + bl MOD05_021EFFC8 + b _021F01E8 +_021F01C4: + add r0, r4, #0 + bl MOD05_021F0080 + b _021F01E8 +_021F01CC: + add r0, r4, #0 + bl MOD05_021F00BC + b _021F01E8 +_021F01D4: + add r0, r4, #0 + bl MOD05_021F0290 + add r0, r4, #0 + bl FreeToHeap + bl FUN_02037778 + mov r0, #1 + pop {r3, r4, r5, pc} +_021F01E8: + mov r0, #0 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F01EC +MOD05_021F01EC: ; 0x021F01EC + push {r3, r4, r5, lr} + add r4, r0, #0 + add r0, #0x10 + add r5, r1, #0 + bl WindowIsInUse + cmp r0, #0 + beq _021F0204 + add r0, r4, #0 + add r0, #0x10 + bl RemoveWindow +_021F0204: + ldr r0, [r4, #0x3c] + ldr r2, [r4, #8] + add r1, r5, #0 + bl ReadMsgDataIntoString + ldr r0, [r4, #0x38] + ldr r1, [r4, #0xc] + ldr r2, [r4, #8] + bl StringExpandPlaceholders + ldr r0, [r4, #0x30] + add r1, r4, #0 + ldr r0, [r0, #8] + add r1, #0x10 + mov r2, #3 + bl FUN_020545B8 + ldr r0, [r4, #0x30] + ldr r0, [r0, #0xc] + bl Sav2_PlayerData_GetOptionsAddr + add r1, r0, #0 + add r0, r4, #0 + add r0, #0x10 + bl FUN_02054608 + ldr r0, [r4, #0x30] + ldr r0, [r0, #0xc] + bl Sav2_PlayerData_GetOptionsAddr + add r2, r0, #0 + add r0, r4, #0 + ldr r1, [r4, #0xc] + add r0, #0x10 + mov r3, #1 + bl FUN_02054658 + str r0, [r4, #0x40] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0254 +MOD05_021F0254: ; 0x021F0254 + push {r4, lr} + mov r1, #0 + mov r2, #0x94 + add r4, r0, #0 + bl MI_CpuFill8 + mov r0, #4 + bl ScrStrBufs_new + str r0, [r4, #0x38] + ldr r2, _021F028C ; =0x00000251 + mov r0, #0 + mov r1, #0x1a + mov r3, #4 + bl NewMsgDataFromNarc + str r0, [r4, #0x3c] + mov r0, #0x6e + mov r1, #4 + bl String_ctor + str r0, [r4, #0xc] + mov r0, #0x6e + mov r1, #4 + bl String_ctor + str r0, [r4, #8] + pop {r4, pc} + .balign 4, 0 +_021F028C: .word 0x00000251 + + thumb_func_start MOD05_021F0290 +MOD05_021F0290: ; 0x021F0290 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x3c] + bl DestroyMsgData + ldr r0, [r4, #0x38] + bl ScrStrBufs_delete + ldr r0, [r4, #0xc] + bl String_dtor + ldr r0, [r4, #8] + bl String_dtor + add r0, r4, #0 + add r0, #0x10 + bl WindowIsInUse + cmp r0, #0 + beq _021F02C0 + add r4, #0x10 + add r0, r4, #0 + bl RemoveWindow +_021F02C0: + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F02C4 +MOD05_021F02C4: ; 0x021F02C4 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, [r6, #0x10] + mov r0, #0xb + mov r1, #0x94 + bl AllocFromHeapAtEnd + add r4, r0, #0 + bl MOD05_021F0254 + str r6, [r4, #0x30] + ldr r0, [r6, #0xc] + str r0, [r4, #0x34] + mov r0, #0 + str r0, [r4, #0x48] + cmp r5, #0 + bne _021F02F2 + ldr r1, _021F0300 ; =MOD05_021F0128 + add r0, r6, #0 + add r2, r4, #0 + bl FUN_020463CC + pop {r4, r5, r6, pc} +_021F02F2: + ldr r1, _021F0300 ; =MOD05_021F0128 + add r0, r5, #0 + add r2, r4, #0 + bl FUN_0204640C + pop {r4, r5, r6, pc} + nop +_021F0300: .word MOD05_021F0128 + + thumb_func_start MOD05_021F0304 +MOD05_021F0304: ; 0x021F0304 + push {r3, lr} + cmp r2, #0 + bne _021F0310 + ldr r0, _021F0314 ; =0x000005DC + bl PlaySE +_021F0310: + pop {r3, pc} + nop +_021F0314: .word 0x000005DC + + .section .rodata + + .global UNK05_021F8B44 +UNK05_021F8B44: ; 0x021F8B44 + .byte 0x03, 0x19, 0x0D, 0x06, 0x04, 0x0D, 0x15, 0x03 + + .global UNK05_021F8B4C +UNK05_021F8B4C: ; 0x021F8B4C + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x20, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021F0318.s b/arm9/modules/05/asm/mod05_021F0318.s new file mode 100644 index 00000000..9a597269 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F0318.s @@ -0,0 +1,258 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F0318 +MOD05_021F0318: ; 0x021F0318 + push {r4, r5, r6, r7, lr} + sub sp, #0x6c + add r4, r3, #0 + add r7, r0, #0 + add r5, r1, #0 + mov r0, #0 + str r0, [sp, #0x58] + ldr r1, [r4, #0x50] + add r0, sp, #0x60 + add r6, r2, #0 + bl Camera_GetLookAtCamTarget + ldr r3, _021F0434 ; =UNK05_021F8B6C + add r2, sp, #0xc + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + cmp r6, #0x60 + str r0, [r2] + bhs _021F0352 + mov r1, #0x60 + sub r0, r1, r6 + lsl r0, r0, #0x18 + ldrh r2, [r4] + lsr r0, r0, #0x18 + mul r0, r2 + bl _s32_div_f + b _021F036C +_021F0352: + sub r6, #0x60 + lsl r0, r6, #0x18 + ldrh r1, [r4] + lsr r0, r0, #0x18 + mul r0, r1 + mov r1, #0x60 + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + mov r0, #0 + mvn r0, r0 + mul r0, r1 +_021F036C: + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r5, #0x80 + bhs _021F038A + mov r2, #0x80 + sub r2, r2, r5 + lsl r2, r2, #0x18 + ldrh r0, [r4, #2] + lsr r2, r2, #0x18 + mul r2, r0 + asr r0, r2, #6 + lsr r0, r0, #0x19 + add r0, r2, r0 + lsl r0, r0, #9 + b _021F03A8 +_021F038A: + ldrh r2, [r4, #2] + sub r5, #0x80 + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + add r3, r2, #0 + mul r3, r0 + asr r0, r3, #6 + lsr r0, r0, #0x19 + add r0, r3, r0 + lsl r0, r0, #9 + lsr r2, r0, #0x10 + mov r0, #0 + mvn r0, r0 + mul r0, r2 + lsl r0, r0, #0x10 +_021F03A8: + lsr r5, r0, #0x10 + asr r0, r1, #4 + lsl r3, r0, #1 + lsl r1, r3, #1 + ldr r2, _021F0438 ; =FX_SinCosTable_ + add r3, r3, #1 + lsl r3, r3, #1 + ldrsh r1, [r2, r1] + ldrsh r2, [r2, r3] + add r0, sp, #0x24 + bl MTX_RotX43_ + add r0, sp, #0xc + add r1, sp, #0x24 + add r2, sp, #0x18 + bl MTX_MultVec43 + asr r0, r5, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + ldr r3, _021F0438 ; =FX_SinCosTable_ + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0x24 + bl MTX_RotY43_ + add r0, sp, #0x18 + add r1, sp, #0x24 + add r2, r0, #0 + bl MTX_MultVec43 + add r0, sp, #0x18 + add r1, r4, #0 + add r1, #0x20 + add r2, r0, #0 + bl MTX_MultVec43 + add r0, r4, #0 + add r0, #0x10 + add r1, sp, #0x18 + bl VEC_DotProduct + add r1, r0, #0 + ldr r0, [r4, #0x1c] + bl FX_Div + neg r0, r0 + add r1, sp, #0x18 + add r2, r4, #4 + add r3, sp, #0 + bl VEC_MultAdd + ldr r1, [sp, #0x60] + ldr r0, [sp] + add r2, sp, #0x54 + add r0, r1, r0 + str r0, [sp, #0x54] + ldr r1, [sp, #0x68] + ldr r0, [sp, #8] + add r0, r1, r0 + str r0, [sp, #0x5c] + ldmia r2!, {r0, r1} + stmia r7!, {r0, r1} + ldr r0, [r2] + str r0, [r7] + add sp, #0x6c + pop {r4, r5, r6, r7, pc} + nop +_021F0434: .word UNK05_021F8B6C +_021F0438: .word FX_SinCosTable_ + + thumb_func_start MOD05_021F043C +MOD05_021F043C: ; 0x021F043C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #4 + mov r1, #0x60 + bl AllocFromHeap + add r1, r5, #0 + add r4, r0, #0 + bl MOD05_021F0454 + add r0, r4, #0 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F0454 +MOD05_021F0454: ; 0x021F0454 + push {r4, r5, lr} + sub sp, #0x2c + add r5, r0, #0 + add r4, r1, #0 + add r0, sp, #0 + bl Camera_GetAngle + add r0, r4, #0 + bl Camera_GetPerspectiveAngle + strh r0, [r5] + ldrh r0, [r5] + ldr r2, _021F04F0 ; =FX_SinCosTable_ + asr r0, r0, #4 + lsl r1, r0, #1 + lsl r0, r1, #1 + add r1, r1, #1 + lsl r1, r1, #1 + ldrsh r0, [r2, r0] + ldrsh r1, [r2, r1] + bl FX_Div + lsl r0, r0, #2 + mov r1, #3 + bl _s32_div_f + bl FX_Atan + ldr r3, _021F04F4 ; =UNK05_021F8B78 + strh r0, [r5, #2] + ldmia r3!, {r0, r1} + add r2, sp, #0x20 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, r4, #0 + str r0, [r2] + add r0, sp, #0x14 + bl Camera_GetLookAtCamPos + add r0, sp, #8 + add r1, r4, #0 + bl Camera_GetLookAtCamTarget + add r0, sp, #0x14 + add r1, sp, #8 + add r2, r5, #4 + bl VEC_Subtract + add r3, sp, #0x20 + add r2, r5, #0 + ldmia r3!, {r0, r1} + add r2, #0x10 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, r5, #4 + str r0, [r2] + add r0, sp, #0x20 + bl VEC_DotProduct + str r0, [r5, #0x1c] + add r0, sp, #0 + ldrh r0, [r0] + ldr r3, _021F04F0 ; =FX_SinCosTable_ + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + add r0, r5, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, #0x20 + bl MTX_RotX43_ + str r4, [r5, #0x50] + add sp, #0x2c + pop {r4, r5, pc} + nop +_021F04F0: .word FX_SinCosTable_ +_021F04F4: .word UNK05_021F8B78 + + thumb_func_start MOD05_021F04F8 +MOD05_021F04F8: ; 0x021F04F8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F0512 + bne _021F0508 + bl GF_AssertFail +_021F0508: + ldr r0, [r4] + bl FreeToHeap + mov r0, #0 + str r0, [r4] +_021F0512: + pop {r4, pc} + + .section .rodata + + .global UNK05_021F8B6C +UNK05_021F8B6C: ; 0x021F8B6C + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF + + .global UNK05_021F8B78 +UNK05_021F8B78: ; 0x021F8B78 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021F0514.s b/arm9/modules/05/asm/mod05_021F0514.s new file mode 100644 index 00000000..e7a6454a --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F0514.s @@ -0,0 +1,4556 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F0514 +MOD05_021F0514: ; 0x021F0514 + push {r4, lr} + add r4, r0, #0 + bl FUN_02058458 + cmp r0, #0x97 + bgt _021F053E + bge _021F05B2 + cmp r0, #0x15 + bgt _021F052E + bge _021F059E + cmp r0, #0 + beq _021F059E + b _021F05BA +_021F052E: + cmp r0, #0x62 + bgt _021F05BA + cmp r0, #0x61 + blt _021F05BA + beq _021F059E + cmp r0, #0x62 + beq _021F059E + b _021F05BA +_021F053E: + cmp r0, #0xb0 + bgt _021F0554 + bge _021F059E + cmp r0, #0x99 + bgt _021F05BA + cmp r0, #0x98 + blt _021F05BA + beq _021F05B2 + cmp r0, #0x99 + beq _021F05B2 + b _021F05BA +_021F0554: + cmp r0, #0xb1 + bgt _021F055C + beq _021F059E + b _021F05BA +_021F055C: + sub r0, #0xb2 + cmp r0, #0x17 + bhi _021F05BA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021F056E: ; jump table + .short _021F059E - _021F056E - 2 ; case 0 + .short _021F059E - _021F056E - 2 ; case 1 + .short _021F059E - _021F056E - 2 ; case 2 + .short _021F059E - _021F056E - 2 ; case 3 + .short _021F05BA - _021F056E - 2 ; case 4 + .short _021F05BA - _021F056E - 2 ; case 5 + .short _021F05BA - _021F056E - 2 ; case 6 + .short _021F05BA - _021F056E - 2 ; case 7 + .short _021F059E - _021F056E - 2 ; case 8 + .short _021F059E - _021F056E - 2 ; case 9 + .short _021F059E - _021F056E - 2 ; case 10 + .short _021F059E - _021F056E - 2 ; case 11 + .short _021F05BA - _021F056E - 2 ; case 12 + .short _021F05BA - _021F056E - 2 ; case 13 + .short _021F05BA - _021F056E - 2 ; case 14 + .short _021F05BA - _021F056E - 2 ; case 15 + .short _021F05BA - _021F056E - 2 ; case 16 + .short _021F05A8 - _021F056E - 2 ; case 17 + .short _021F059E - _021F056E - 2 ; case 18 + .short _021F059E - _021F056E - 2 ; case 19 + .short _021F059E - _021F056E - 2 ; case 20 + .short _021F059E - _021F056E - 2 ; case 21 + .short _021F059E - _021F056E - 2 ; case 22 + .short _021F059E - _021F056E - 2 ; case 23 +_021F059E: + add r0, r4, #0 + bl FUN_02058628 + ldr r0, [r0, #4] + pop {r4, pc} +_021F05A8: + add r0, r4, #0 + bl FUN_02058628 + ldr r0, [r0, #4] + pop {r4, pc} +_021F05B2: + add r0, r4, #0 + bl MOD05_021F1C24 + pop {r4, pc} +_021F05BA: + add r0, r4, #0 + bl FUN_02058628 + ldr r0, [r0, #8] + pop {r4, pc} + + thumb_func_start MOD05_021F05C4 +MOD05_021F05C4: ; 0x021F05C4 + push {r3, r4, r5, lr} + mov r1, #0x18 + add r5, r0, #0 + bl FUN_02058604 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + add r1, r4, #0 + strh r0, [r4] + add r0, r5, #0 + add r1, #8 + bl MOD05_021F1FC8 + ldr r0, [r4, #8] + cmp r0, #0 + beq _021F05EC + add r0, r5, #0 + bl FUN_020586A0 +_021F05EC: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F05F0 +MOD05_021F05F0: ; 0x021F05F0 + push {r4, lr} + add r4, r0, #0 + bl FUN_02058628 + add r1, r0, #0 + add r0, r4, #0 + add r1, #8 + bl MOD05_021F2060 + pop {r4, pc} + + thumb_func_start MOD05_021F0604 +MOD05_021F0604: ; 0x021F0604 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4, #8] + cmp r0, #0 + beq _021F061C + add r1, r4, #0 + add r1, #0xc + bl MOD05_021F20D8 +_021F061C: + add r4, #8 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2060 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0x14 + bl FUN_02058410 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0634 +MOD05_021F0634: ; 0x021F0634 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F0678 + ldr r0, [r4, #8] + cmp r0, #0 + bne _021F0658 + add r1, r4, #0 + add r0, r5, #0 + add r1, #8 + bl MOD05_021F1FC8 +_021F0658: + ldr r0, [r4, #8] + cmp r0, #0 + beq _021F0678 + add r1, r4, #0 + add r1, #0xc + bl MOD05_021F20F8 + ldr r1, [r4, #8] + add r0, r5, #0 + bl MOD05_021F2F48 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0x14 + bl FUN_02058418 +_021F0678: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F067C +MOD05_021F067C: ; 0x021F067C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r0, #0 + bl FUN_02058628 + ldr r7, [r0, #8] + add r0, r4, #0 + bl FUN_02058628 + str r0, [sp] + add r0, r4, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F06E6 + cmp r7, #0 + beq _021F06E6 + add r0, r4, #0 + bl FUN_020584C4 + str r0, [sp, #4] + add r0, r4, #0 + bl FUN_0205854C + add r5, r0, #0 + cmp r5, #9 + blt _021F06B6 + bl GF_AssertFail +_021F06B6: + lsl r6, r5, #2 + ldr r5, _021F06EC ; UNK05_021FC4B4 + ldr r2, [sp] + ldr r3, [sp, #4] + ldr r5, [r5, r6] + add r0, r4, #0 + add r1, r7, #0 + blx r5 + ldr r1, [sp, #4] + ldr r0, [sp] + strh r1, [r0] + add r0, r4, #0 + bl FUN_0205854C + ldr r1, [sp] + str r0, [r1, #4] + add r0, r4, #0 + add r1, r7, #0 + bl MOD05_021F2F48 + add r0, r4, #0 + add r1, r7, #0 + bl MOD05_021F19A4 +_021F06E6: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021F06EC: .word UNK05_021FC4B4 + + thumb_func_start MOD05_021F06F0 +MOD05_021F06F0: ; 0x021F06F0 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl FUN_02058628 + add r5, r0, #0 + add r0, r4, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F071A + ldr r5, [r5, #8] + cmp r5, #0 + beq _021F071A + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F2F48 + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F19A4 +_021F071A: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F071C +MOD05_021F071C: ; 0x021F071C + push {r3, r4, r5, lr} + add r4, r0, #0 + bl FUN_02058628 + add r5, r0, #0 + add r0, r4, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F075A + ldr r5, [r5, #8] + cmp r5, #0 + beq _021F075A + add r0, r4, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F074A + mov r1, #1 + add r0, r5, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 +_021F074A: + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F2F48 + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F19A4 +_021F075A: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F075C +MOD05_021F075C: ; 0x021F075C + push {r4, lr} + mov r0, #0 + ldrsh r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + beq _021F0780 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F0786 +_021F0780: + add r0, r4, #0 + bl MOD05_021F194C +_021F0786: + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F854 + pop {r4, pc} + + thumb_func_start MOD05_021F0790 +MOD05_021F0790: ; 0x021F0790 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + ldrsh r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + beq _021F07B4 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F07B4: + add r0, r5, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F07C8 + mov r1, #2 + add r0, r4, #0 + lsl r1, r1, #0xa + bl FUN_0201F854 +_021F07C8: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F07CC +MOD05_021F07CC: ; 0x021F07CC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + ldrsh r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + beq _021F07F0 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F07F0: + add r0, r5, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F0804 + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 +_021F0804: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0808 +MOD05_021F0808: ; 0x021F0808 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + ldrsh r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + beq _021F082C + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F082C: + add r0, r5, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F0840 + mov r1, #2 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 +_021F0840: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0844 +MOD05_021F0844: ; 0x021F0844 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + ldrsh r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + beq _021F0868 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F0868: + add r0, r5, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F087C + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xe + bl FUN_0201F854 +_021F087C: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0880 +MOD05_021F0880: ; 0x021F0880 + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r6, r0, #0 + add r4, r2, #0 + mov r0, #0 + ldrsh r0, [r4, r0] + add r5, r1, #0 + cmp r3, r0 + beq _021F08AC + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + mov r0, #0 + strh r0, [r4, #2] +_021F08AC: + ldr r0, [r4, #4] + cmp r0, #6 + beq _021F08B6 + mov r0, #0 + strh r0, [r4, #2] +_021F08B6: + add r0, r6, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F08FC + ldr r6, _021F0900 ; =UNK05_021FC43C + add r3, sp, #0 + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r6] + mov r1, #2 + str r0, [r3] + ldrsh r1, [r4, r1] + add r0, r5, #0 + lsl r1, r1, #2 + ldr r1, [r2, r1] + bl FUN_0201F854 + mov r0, #2 + ldrsh r1, [r4, r0] + add r1, r1, #1 + strh r1, [r4, #2] + ldrsh r0, [r4, r0] + lsl r1, r0, #2 + add r0, sp, #0 + ldr r0, [r0, r1] + cmp r0, #0 + bne _021F08FC + mov r0, #0 + strh r0, [r4, #2] +_021F08FC: + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + .balign 4, 0 +_021F0900: .word UNK05_021FC43C + + thumb_func_start MOD05_021F0904 +MOD05_021F0904: ; 0x021F0904 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r6, r0, #0 + add r4, r2, #0 + mov r0, #0 + ldrsh r0, [r4, r0] + add r5, r1, #0 + cmp r3, r0 + beq _021F0930 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + mov r0, #0 + strh r0, [r4, #2] +_021F0930: + ldr r0, [r4, #4] + cmp r0, #7 + beq _021F093A + mov r0, #0 + strh r0, [r4, #2] +_021F093A: + add r0, r6, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F0978 + ldr r6, _021F097C ; =UNK05_021FC42C + add r3, sp, #0 + add r2, r3, #0 + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + mov r1, #2 + ldrsh r1, [r4, r1] + add r0, r5, #0 + lsl r1, r1, #2 + ldr r1, [r2, r1] + bl FUN_0201F854 + mov r0, #2 + ldrsh r1, [r4, r0] + add r1, r1, #1 + strh r1, [r4, #2] + ldrsh r0, [r4, r0] + lsl r1, r0, #2 + add r0, sp, #0 + ldr r0, [r0, r1] + cmp r0, #0 + bne _021F0978 + mov r0, #0 + strh r0, [r4, #2] +_021F0978: + add sp, #0x10 + pop {r4, r5, r6, pc} + .balign 4, 0 +_021F097C: .word UNK05_021FC42C + + thumb_func_start MOD05_021F0980 +MOD05_021F0980: ; 0x021F0980 + push {r4, r5, r6, lr} + sub sp, #0x20 + add r6, r0, #0 + add r4, r2, #0 + mov r0, #0 + ldrsh r0, [r4, r0] + add r5, r1, #0 + cmp r3, r0 + beq _021F09AC + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + mov r0, #0 + strh r0, [r4, #2] +_021F09AC: + ldr r0, [r4, #4] + cmp r0, #8 + beq _021F09B6 + mov r0, #0 + strh r0, [r4, #2] +_021F09B6: + add r0, r6, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F09FC + ldr r6, _021F0A00 ; =UNK05_021FC494 + add r3, sp, #0 + add r2, r3, #0 + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + mov r1, #2 + ldrsh r1, [r4, r1] + add r0, r5, #0 + lsl r1, r1, #2 + ldr r1, [r2, r1] + bl FUN_0201F854 + mov r0, #2 + ldrsh r1, [r4, r0] + add r1, r1, #1 + strh r1, [r4, #2] + ldrsh r0, [r4, r0] + lsl r1, r0, #2 + add r0, sp, #0 + ldr r0, [r0, r1] + cmp r0, #0 + bne _021F09FC + mov r0, #0 + strh r0, [r4, #2] +_021F09FC: + add sp, #0x20 + pop {r4, r5, r6, pc} + .balign 4, 0 +_021F0A00: .word UNK05_021FC494 + + thumb_func_start MOD05_021F0A04 +MOD05_021F0A04: ; 0x021F0A04 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r0, #0 + bl FUN_02058628 + ldr r7, [r0, #8] + add r0, r4, #0 + bl FUN_02058628 + str r0, [sp] + add r0, r4, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F0A6E + cmp r7, #0 + beq _021F0A6E + add r0, r4, #0 + + thumb_func_start MOD05_021F0A28 +MOD05_021F0A28: ; 0x021F0A28 + bl FUN_020584C4 + str r0, [sp, #4] + add r0, r4, #0 + bl FUN_0205854C + add r5, r0, #0 + cmp r5, #0xa + blt _021F0A3E + bl GF_AssertFail +_021F0A3E: + lsl r6, r5, #2 + ldr r5, _021F0A74 ; =UNK05_021FC528 + ldr r2, [sp] + ldr r3, [sp, #4] + ldr r5, [r5, r6] + add r0, r4, #0 + add r1, r7, #0 + blx r5 + ldr r1, [sp, #4] + ldr r0, [sp] + strh r1, [r0] + add r0, r4, #0 + bl FUN_0205854C + ldr r1, [sp] + str r0, [r1, #4] + add r0, r4, #0 + add r1, r7, #0 + bl MOD05_021F2F48 + add r0, r4, #0 + add r1, r7, #0 + bl MOD05_021F19A4 +_021F0A6E: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021F0A74: .word UNK05_021FC528 + + thumb_func_start MOD05_021F0A78 +MOD05_021F0A78: ; 0x021F0A78 + push {r4, lr} + mov r0, #0 + ldrsh r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + bne _021F0A8A + ldr r0, [r2, #4] + cmp r0, #9 + bne _021F0AA2 +_021F0A8A: + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F0AA8 +_021F0AA2: + add r0, r4, #0 + bl MOD05_021F194C +_021F0AA8: + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F854 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0AB4 +MOD05_021F0AB4: ; 0x021F0AB4 + push {r4, lr} + ldr r0, [r2, #4] + add r4, r1, #0 + cmp r0, #9 + beq _021F0ACE + add r0, r4, #0 + mov r1, #4 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F0ACE: + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0ADC +MOD05_021F0ADC: ; 0x021F0ADC + push {r3, r4, r5, lr} + mov r1, #0x14 + add r5, r0, #0 + bl FUN_02058604 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + strb r0, [r4] + bl LCRandom + lsr r2, r0, #0x1f + lsl r1, r0, #0x1c + sub r1, r1, r2 + mov r0, #0x1c + ror r1, r0 + add r0, r2, r1 + strb r0, [r4, #2] + add r0, r5, #0 + add r1, r4, #4 + bl MOD05_021F1FC8 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021F0B14 + add r0, r5, #0 + bl FUN_020586A0 +_021F0B14: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0B18 +MOD05_021F0B18: ; 0x021F0B18 + push {r4, lr} + add r4, r0, #0 + bl FUN_02058628 + add r1, r0, #0 + add r0, r4, #0 + add r1, r1, #4 + bl MOD05_021F2060 + pop {r4, pc} + + thumb_func_start MOD05_021F0B2C +MOD05_021F0B2C: ; 0x021F0B2C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021F0B44 + add r1, r4, #0 + add r1, #8 + bl MOD05_021F20D8 +_021F0B44: + add r0, r5, #0 + add r1, r4, #4 + bl MOD05_021F2060 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0x14 + bl FUN_02058410 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F0B58 +MOD05_021F0B58: ; 0x021F0B58 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F0B9A + ldr r0, [r4, #4] + cmp r0, #0 + bne _021F0B7A + add r0, r5, #0 + add r1, r4, #4 + bl MOD05_021F1FC8 +_021F0B7A: + ldr r0, [r4, #4] + cmp r0, #0 + beq _021F0B9A + add r1, r4, #0 + add r1, #8 + bl MOD05_021F20F8 + ldr r1, [r4, #4] + add r0, r5, #0 + bl MOD05_021F2F48 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0x14 + bl FUN_02058418 +_021F0B9A: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F0B9C +MOD05_021F0B9C: ; 0x021F0B9C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl FUN_02058628 + ldr r6, [r0, #4] + add r0, r5, #0 + bl FUN_02058628 + add r4, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F0C26 + cmp r6, #0 + beq _021F0C26 + add r0, r5, #0 + bl FUN_020584C4 + add r7, r0, #0 + add r0, r5, #0 + bl FUN_0205854C + mov r1, #2 + ldrsb r0, [r4, r1] + cmp r0, #0 + beq _021F0BE0 + sub r0, r0, #1 + strb r0, [r4, #2] + add r0, r6, #0 + mov r1, #0 + bl FUN_0201F854 + b _021F0C0C +_021F0BE0: + add r0, r6, #0 + lsl r1, r1, #0xb + bl FUN_0201F854 + mov r0, #1 + ldrsb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, #1] + ldrsb r0, [r4, r0] + cmp r0, #0x20 + blt _021F0C0C + mov r0, #0 + strb r0, [r4, #1] + bl LCRandom + lsr r1, r0, #0x1f + lsl r2, r0, #0x1c + sub r2, r2, r1 + mov r0, #0x1c + ror r2, r0 + add r0, r1, r2 + strb r0, [r4, #2] +_021F0C0C: + strb r7, [r4] + add r0, r5, #0 + bl FUN_0205854C + strb r0, [r4, #3] + add r0, r5, #0 + add r1, r6, #0 + bl MOD05_021F2F48 + add r0, r5, #0 + add r1, r6, #0 + bl MOD05_021F19A4 +_021F0C26: + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F0C28 +MOD05_021F0C28: ; 0x021F0C28 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + bl FUN_02058628 + ldr r4, [r0, #8] + add r0, r5, #0 + bl FUN_02058628 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F0CEA + cmp r4, #0 + beq _021F0CEA + add r0, r5, #0 + bl FUN_020584C4 + add r7, r0, #0 + add r0, r5, #0 + bl FUN_0205854C + cmp r0, #0 + bne _021F0C9E + cmp r7, #1 + bls _021F0C66 + mov r0, #1 + str r0, [sp, #4] + b _021F0C6A +_021F0C66: + mov r0, #0 + str r0, [sp, #4] +_021F0C6A: + add r0, r4, #0 + bl FUN_0201F844 + ldr r1, [sp, #4] + cmp r1, r0 + bne _021F0C7C + ldr r0, [r6, #4] + cmp r0, #0 + bne _021F0C94 +_021F0C7C: + ldr r1, [sp, #4] + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F854 +_021F0C94: + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F854 + b _021F0CD0 +_021F0C9E: + cmp r7, #1 + bls _021F0CA8 + mov r0, #1 + str r0, [sp] + b _021F0CAC +_021F0CA8: + mov r0, #0 + str r0, [sp] +_021F0CAC: + add r0, r4, #0 + bl FUN_0201F844 + ldr r1, [sp] + cmp r1, r0 + beq _021F0CC6 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F0CC6: + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 +_021F0CD0: + strh r7, [r6] + add r0, r5, #0 + bl FUN_0205854C + str r0, [r6, #4] + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2F48 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F19A4 +_021F0CEA: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0CF0 +MOD05_021F0CF0: ; 0x021F0CF0 + push {r3, r4, r5, lr} + mov r1, #0x14 + add r5, r0, #0 + bl FUN_02058604 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + strb r0, [r4] + add r0, r5, #0 + add r1, r4, #4 + bl MOD05_021F1FC8 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021F0D16 + add r0, r5, #0 + bl FUN_020586A0 +_021F0D16: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F0D18 +MOD05_021F0D18: ; 0x021F0D18 + push {r3, r4, lr} + sub sp, #0xc + add r2, sp, #0 + mov r1, #0 + str r1, [r2] + str r1, [r2, #4] + add r4, r0, #0 + str r1, [r2, #8] + bl FUN_02058628 + add r1, r0, #0 + add r0, r4, #0 + add r1, r1, #4 + bl MOD05_021F2060 + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02058B94 + add sp, #0xc + pop {r3, r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0D44 +MOD05_021F0D44: ; 0x021F0D44 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021F0D5C + add r1, r4, #0 + add r1, #8 + bl MOD05_021F20D8 +_021F0D5C: + add r0, r5, #0 + add r1, r4, #4 + bl MOD05_021F2060 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0x14 + bl FUN_02058410 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F0D70 +MOD05_021F0D70: ; 0x021F0D70 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F0DB2 + ldr r0, [r4, #4] + cmp r0, #0 + bne _021F0D92 + add r0, r5, #0 + add r1, r4, #4 + bl MOD05_021F1FC8 +_021F0D92: + ldr r0, [r4, #4] + cmp r0, #0 + beq _021F0DB2 + add r1, r4, #0 + add r1, #8 + bl MOD05_021F20F8 + ldr r1, [r4, #4] + add r0, r5, #0 + bl MOD05_021F2F48 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0x14 + bl FUN_02058418 +_021F0DB2: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F0DB4 +MOD05_021F0DB4: ; 0x021F0DB4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r0, #0 + bl FUN_02058628 + ldr r7, [r0, #4] + add r0, r4, #0 + bl FUN_02058628 + str r0, [sp] + add r0, r4, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F0E1E + cmp r7, #0 + beq _021F0E1E + add r0, r4, #0 + bl FUN_020584C4 + str r0, [sp, #4] + add r0, r4, #0 + bl FUN_0205854C + add r5, r0, #0 + cmp r5, #0xa + blt _021F0DEE + bl GF_AssertFail +_021F0DEE: + lsl r6, r5, #2 + ldr r5, _021F0E24 ; =UNK05_021FC500 + ldr r2, [sp] + ldr r3, [sp, #4] + ldr r5, [r5, r6] + add r0, r4, #0 + add r1, r7, #0 + blx r5 + ldr r1, [sp, #4] + ldr r0, [sp] + strb r1, [r0] + add r0, r4, #0 + bl FUN_0205854C + ldr r1, [sp] + strb r0, [r1, #2] + add r0, r4, #0 + add r1, r7, #0 + bl MOD05_021F2F48 + add r0, r4, #0 + add r1, r7, #0 + bl MOD05_021F19A4 +_021F0E1E: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021F0E24: .word UNK05_021FC500 + + thumb_func_start MOD05_021F0E28 +MOD05_021F0E28: ; 0x021F0E28 + push {r3, r4, r5, lr} + add r4, r2, #0 + mov r0, #0 + ldrsb r0, [r4, r0] + add r5, r1, #0 + cmp r3, r0 + beq _021F0E56 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + ldrb r1, [r4, #3] + mov r0, #1 + bic r1, r0 + strb r1, [r4, #3] + pop {r3, r4, r5, pc} +_021F0E56: + mov r0, #2 + ldrsb r0, [r4, r0] + cmp r0, #9 + bne _021F0E6C + ldrb r1, [r4, #3] + mov r0, #1 + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #3] + pop {r3, r4, r5, pc} +_021F0E6C: + ldrb r0, [r4, #3] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + cmp r0, #1 + bne _021F0E8E + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl MOD05_021F1980 + ldrb r1, [r4, #3] + mov r0, #1 + bic r1, r0 + strb r1, [r4, #3] + pop {r3, r4, r5, pc} +_021F0E8E: + add r0, r5, #0 + bl MOD05_021F194C + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0E98 +MOD05_021F0E98: ; 0x021F0E98 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r4, r2, #0 + mov r0, #0 + ldrsb r0, [r4, r0] + add r5, r1, #0 + cmp r3, r0 + beq _021F0EC0 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F0EF6 +_021F0EC0: + mov r0, #2 + ldrsb r0, [r4, r0] + cmp r0, #9 + bne _021F0ED6 + ldrb r1, [r4, #3] + mov r0, #1 + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #3] + pop {r4, r5, r6, pc} +_021F0ED6: + ldrb r0, [r4, #3] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + cmp r0, #1 + bne _021F0EF6 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl MOD05_021F1980 + ldrb r1, [r4, #3] + mov r0, #1 + bic r1, r0 + strb r1, [r4, #3] +_021F0EF6: + add r0, r6, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F0F0A + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0xa + bl FUN_0201F854 +_021F0F0A: + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F0F0C +MOD05_021F0F0C: ; 0x021F0F0C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + ldrsb r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + beq _021F0F32 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F0F48 +_021F0F32: + mov r0, #2 + ldrsb r0, [r2, r0] + cmp r0, #9 + bne _021F0F48 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl MOD05_021F1980 +_021F0F48: + add r0, r5, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F0F5C + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 +_021F0F5C: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0F60 +MOD05_021F0F60: ; 0x021F0F60 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + ldrsb r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + beq _021F0F86 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F0F9C +_021F0F86: + mov r0, #2 + ldrsb r0, [r2, r0] + cmp r0, #9 + bne _021F0F9C + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl MOD05_021F1980 +_021F0F9C: + add r0, r5, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F0FB0 + mov r1, #2 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 +_021F0FB0: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F0FB4 +MOD05_021F0FB4: ; 0x021F0FB4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + ldrsb r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + beq _021F0FDA + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F0FF0 +_021F0FDA: + mov r0, #2 + ldrsb r0, [r2, r0] + cmp r0, #9 + bne _021F0FF0 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl MOD05_021F1980 +_021F0FF0: + add r0, r5, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F1004 + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xe + bl FUN_0201F854 +_021F1004: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1008 +MOD05_021F1008: ; 0x021F1008 + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r6, r0, #0 + add r4, r2, #0 + mov r0, #0 + ldrsb r0, [r4, r0] + add r5, r1, #0 + cmp r3, r0 + beq _021F1036 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + mov r0, #0 + strb r0, [r4, #1] + b _021F104C +_021F1036: + mov r0, #2 + ldrsb r0, [r4, r0] + cmp r0, #9 + bne _021F104C + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl MOD05_021F1980 +_021F104C: + mov r0, #2 + ldrsb r0, [r4, r0] + cmp r0, #6 + beq _021F1058 + mov r0, #0 + strb r0, [r4, #1] +_021F1058: + add r0, r6, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F109E + ldr r6, _021F10A4 ; =UNK05_021FC458 + add r3, sp, #0 + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r6] + mov r1, #1 + str r0, [r3] + ldrsb r1, [r4, r1] + add r0, r5, #0 + lsl r1, r1, #2 + ldr r1, [r2, r1] + bl FUN_0201F854 + mov r0, #1 + ldrsb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, #1] + ldrsb r0, [r4, r0] + lsl r1, r0, #2 + add r0, sp, #0 + ldr r0, [r0, r1] + cmp r0, #0 + bne _021F109E + mov r0, #0 + strb r0, [r4, #1] +_021F109E: + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + nop +_021F10A4: .word UNK05_021FC458 + + thumb_func_start MOD05_021F10A8 +MOD05_021F10A8: ; 0x021F10A8 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r6, r0, #0 + add r4, r2, #0 + mov r0, #0 + ldrsb r0, [r4, r0] + add r5, r1, #0 + cmp r3, r0 + beq _021F10D6 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + mov r0, #0 + strb r0, [r4, #1] + b _021F10EC +_021F10D6: + mov r0, #2 + ldrsb r0, [r4, r0] + cmp r0, #9 + bne _021F10EC + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl MOD05_021F1980 +_021F10EC: + mov r0, #2 + ldrsb r0, [r4, r0] + cmp r0, #7 + beq _021F10F8 + mov r0, #0 + strb r0, [r4, #1] +_021F10F8: + add r0, r6, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F1136 + ldr r6, _021F113C ; =UNK05_021FC3EC + add r3, sp, #0 + add r2, r3, #0 + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + mov r1, #1 + ldrsb r1, [r4, r1] + add r0, r5, #0 + lsl r1, r1, #2 + ldr r1, [r2, r1] + bl FUN_0201F854 + mov r0, #1 + ldrsb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, #1] + ldrsb r0, [r4, r0] + lsl r1, r0, #2 + add r0, sp, #0 + ldr r0, [r0, r1] + cmp r0, #0 + bne _021F1136 + mov r0, #0 + strb r0, [r4, #1] +_021F1136: + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021F113C: .word UNK05_021FC3EC + + thumb_func_start MOD05_021F1140 +MOD05_021F1140: ; 0x021F1140 + push {r4, r5, r6, lr} + sub sp, #0x20 + add r6, r0, #0 + add r4, r2, #0 + mov r0, #0 + ldrsb r0, [r4, r0] + add r5, r1, #0 + cmp r3, r0 + beq _021F116E + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + mov r0, #0 + strb r0, [r4, #1] + b _021F1184 +_021F116E: + mov r0, #2 + ldrsb r0, [r4, r0] + cmp r0, #9 + bne _021F1184 + add r0, r3, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r5, #0 + bl MOD05_021F1980 +_021F1184: + mov r0, #2 + ldrsb r0, [r4, r0] + cmp r0, #8 + beq _021F1190 + mov r0, #0 + strb r0, [r4, #1] +_021F1190: + add r0, r6, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F11D6 + ldr r6, _021F11DC ; =UNK05_021FC474 + add r3, sp, #0 + add r2, r3, #0 + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + mov r1, #1 + ldrsb r1, [r4, r1] + add r0, r5, #0 + lsl r1, r1, #2 + ldr r1, [r2, r1] + bl FUN_0201F854 + mov r0, #1 + ldrsb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, #1] + ldrsb r0, [r4, r0] + lsl r1, r0, #2 + add r0, sp, #0 + ldr r0, [r0, r1] + cmp r0, #0 + bne _021F11D6 + mov r0, #0 + strb r0, [r4, #1] +_021F11D6: + add sp, #0x20 + pop {r4, r5, r6, pc} + nop +_021F11DC: .word UNK05_021FC474 + + thumb_func_start MOD05_021F11E0 +MOD05_021F11E0: ; 0x021F11E0 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + ldrsb r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + beq _021F1206 + add r0, r3, #0 + bl MOD05_021F2FB8 + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F121E +_021F1206: + mov r0, #2 + ldrsb r0, [r2, r0] + cmp r0, #9 + beq _021F121E + add r0, r3, #0 + bl MOD05_021F2FB8 + add r1, r0, #0 + add r0, r4, #0 + mov r2, #4 + bl MOD05_021F1958 +_021F121E: + add r0, r5, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F1232 + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 +_021F1232: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F1234 +MOD05_021F1234: ; 0x021F1234 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r7, r0, #0 + bl FUN_02058628 + ldr r0, [r0, #4] + str r0, [sp] + add r0, r7, #0 + bl FUN_02058628 + add r4, r0, #0 + add r0, r7, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F12B6 + ldr r0, [sp] + cmp r0, #0 + beq _021F12B6 + add r0, r7, #0 + bl FUN_020584C4 + str r0, [sp, #8] + add r0, r7, #0 + bl FUN_0205854C + str r0, [sp, #4] + cmp r0, #0xc + blt _021F1272 + bl GF_AssertFail +_021F1272: + mov r1, #2 + ldrsb r2, [r4, r1] + cmp r2, #0 + bne _021F128C + ldr r0, [sp, #4] + cmp r0, r2 + beq _021F128C + ldrb r0, [r4, #3] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bne _021F128C + sub r0, r1, #3 + strb r0, [r4] +_021F128C: + ldr r5, [sp, #4] + ldr r1, [sp] + lsl r6, r5, #2 + ldr r5, _021F12BC ; =UNK05_021FC4D8 + ldr r3, [sp, #8] + ldr r5, [r5, r6] + add r0, r7, #0 + add r2, r4, #0 + blx r5 + ldr r0, [sp, #8] + ldr r1, [sp] + strb r0, [r4] + ldr r0, [sp, #4] + strb r0, [r4, #2] + add r0, r7, #0 + bl MOD05_021F2F48 + ldr r1, [sp] + add r0, r7, #0 + bl MOD05_021F19A4 +_021F12B6: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + nop +_021F12BC: .word UNK05_021FC4D8 + + thumb_func_start MOD05_021F12C0 +MOD05_021F12C0: ; 0x021F12C0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r6, r3, #0 + add r4, r2, #0 + add r2, sp, #0 + ldr r3, _021F1348 ; =UNK05_021FC3FC + add r5, r1, #0 + add r7, r2, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + lsl r0, r6, #2 + ldr r1, [r7, r0] + mov r0, #0 + ldrsb r0, [r4, r0] + cmp r6, r0 + beq _021F12FE + add r0, r5, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + ldrb r1, [r4, #3] + mov r0, #1 + add sp, #0x10 + bic r1, r0 + strb r1, [r4, #3] + pop {r3, r4, r5, r6, r7, pc} +_021F12FE: + mov r2, #2 + ldrsb r0, [r4, r2] + cmp r0, #0 + beq _021F1316 + ldrb r1, [r4, #3] + mov r0, #1 + add sp, #0x10 + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #3] + pop {r3, r4, r5, r6, r7, pc} +_021F1316: + ldrb r0, [r4, #3] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + cmp r0, #1 + bne _021F133A + add r0, r5, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + ldrb r1, [r4, #3] + mov r0, #1 + add sp, #0x10 + bic r1, r0 + strb r1, [r4, #3] + pop {r3, r4, r5, r6, r7, pc} +_021F133A: + add r0, r5, #0 + lsl r1, r2, #0xb + bl FUN_0201F854 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021F1348: .word UNK05_021FC3FC + + thumb_func_start MOD05_021F134C +MOD05_021F134C: ; 0x021F134C + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r0, r3, #0 + add r5, r1, #0 + add r6, r2, #0 + str r3, [sp] + bl MOD05_021F2FC4 + add r4, r0, #0 + mov r0, #0 + ldrsb r1, [r6, r0] + ldr r0, [sp] + cmp r0, r1 + bne _021F1370 + mov r0, #2 + ldrsb r0, [r6, r0] + cmp r0, #0 + beq _021F1382 +_021F1370: + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F13B2 +_021F1382: + cmp r0, #0xa + beq _021F1398 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F13B2 +_021F1398: + add r0, r5, #0 + bl FUN_0201F844 + cmp r4, r0 + beq _021F13B2 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 +_021F13B2: + add r0, r7, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F13C6 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0xa + bl FUN_0201F854 +_021F13C6: + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F13C8 +MOD05_021F13C8: ; 0x021F13C8 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r0, r3, #0 + add r5, r1, #0 + add r6, r2, #0 + str r3, [sp] + bl MOD05_021F2FC4 + add r4, r0, #0 + mov r0, #0 + ldrsb r1, [r6, r0] + ldr r0, [sp] + cmp r0, r1 + beq _021F13F6 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F142A +_021F13F6: + mov r0, #2 + ldrsb r0, [r6, r0] + cmp r0, #0xb + beq _021F1410 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 + b _021F142A +_021F1410: + add r0, r5, #0 + bl FUN_0201F844 + cmp r4, r0 + beq _021F142A + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0201F830 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F890 +_021F142A: + add r0, r7, #0 + bl MOD05_021F1DFC + cmp r0, #0 + bne _021F143E + mov r1, #1 + add r0, r5, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 +_021F143E: + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F1440 +MOD05_021F1440: ; 0x021F1440 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r0, #0 + bl FUN_02058628 + ldr r7, [r0, #4] + add r0, r4, #0 + bl FUN_02058628 + str r0, [sp] + cmp r7, #0 + beq _021F14B4 + add r0, r4, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F14B4 + add r0, r4, #0 + bl FUN_020584C4 + str r0, [sp, #4] + add r0, r4, #0 + bl FUN_0205854C + add r5, r0, #0 + cmp r5, #4 + blt _021F147A + bl GF_AssertFail +_021F147A: + lsl r6, r5, #2 + ldr r5, _021F14B8 ; =UNK05_021FC40C + ldr r2, [sp] + ldr r3, [sp, #4] + ldr r5, [r5, r6] + add r0, r4, #0 + add r1, r7, #0 + blx r5 + ldr r2, [sp, #4] + add r0, r4, #0 + add r1, r7, #0 + bl MOD05_021F1658 + ldr r1, [sp, #4] + ldr r0, [sp] + strb r1, [r0] + add r0, r4, #0 + bl FUN_0205854C + ldr r1, [sp] + strb r0, [r1, #2] + add r0, r4, #0 + add r1, r7, #0 + bl MOD05_021F2F48 + add r0, r4, #0 + add r1, r7, #0 + bl MOD05_021F19A4 +_021F14B4: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F14B8: .word UNK05_021FC40C + + thumb_func_start MOD05_021F14BC +MOD05_021F14BC: ; 0x021F14BC + push {r4, lr} + mov r0, #0 + ldrsb r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + bne _021F14D0 + mov r0, #2 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _021F14E6 +_021F14D0: + ldr r1, _021F1508 ; =UNK05_021FC41C + lsl r2, r3, #2 + ldr r1, [r1, r2] + add r0, r4, #0 + bl FUN_0201F830 + mov r1, #0xf + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F890 +_021F14E6: + add r0, r4, #0 + bl FUN_0201F8C0 + mov r1, #1 + lsl r1, r1, #0xc + sub r1, r0, r1 + bpl _021F14F6 + mov r1, #0 +_021F14F6: + add r0, r4, #0 + bl FUN_0201F890 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F854 + pop {r4, pc} + nop +_021F1508: .word UNK05_021FC41C + + thumb_func_start MOD05_021F150C +MOD05_021F150C: ; 0x021F150C + push {r4, lr} + mov r0, #0 + ldrsb r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + bne _021F1520 + mov r0, #2 + ldrsb r0, [r2, r0] + cmp r0, #1 + beq _021F1534 +_021F1520: + ldr r1, _021F1540 ; =UNK05_021FC41C + lsl r2, r3, #2 + ldr r1, [r1, r2] + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F1534: + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 + pop {r4, pc} + .balign 4, 0 +_021F1540: .word UNK05_021FC41C + + thumb_func_start MOD05_021F1544 +MOD05_021F1544: ; 0x021F1544 + push {r3, r4, r5, lr} + add r4, r2, #0 + mov r0, #0 + ldrsb r0, [r4, r0] + add r5, r1, #0 + cmp r3, r0 + bne _021F155A + mov r0, #2 + ldrsb r0, [r4, r0] + cmp r0, #2 + beq _021F1578 +_021F155A: + ldr r1, _021F1604 ; =UNK05_021FC41C + lsl r2, r3, #2 + ldr r1, [r1, r2] + add r0, r5, #0 + bl FUN_0201F830 + mov r1, #0xf + add r0, r5, #0 + lsl r1, r1, #0xc + bl FUN_0201F890 + ldrb r1, [r4, #3] + mov r0, #0xfe + bic r1, r0 + strb r1, [r4, #3] +_021F1578: + add r0, r5, #0 + bl FUN_0201F8C0 + add r1, r0, #0 + ldrb r0, [r4, #3] + lsl r2, r0, #0x18 + lsr r2, r2, #0x19 + beq _021F1592 + cmp r2, #1 + beq _021F15B4 + cmp r2, #2 + beq _021F15DA + b _021F15F4 +_021F1592: + mov r3, #1 + lsl r3, r3, #0xc + sub r1, r1, r3 + mov r3, #0xa + lsl r3, r3, #0xc + cmp r1, r3 + bgt _021F15F4 + add r2, r2, #1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r3, #0xfe + lsl r2, r2, #0x19 + bic r0, r3 + lsr r2, r2, #0x18 + orr r0, r2 + strb r0, [r4, #3] + b _021F15F4 +_021F15B4: + mov r3, #1 + lsl r3, r3, #0xc + add r1, r1, r3 + mov r3, #0xf + lsl r3, r3, #0xc + cmp r1, r3 + blt _021F15F4 + add r2, r2, #1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r3, #0xfe + lsl r2, r2, #0x19 + bic r0, r3 + lsr r2, r2, #0x18 + orr r0, r2 + strb r0, [r4, #3] + mov r0, #0 + strb r0, [r4, #1] + b _021F15F4 +_021F15DA: + mov r0, #1 + ldrsb r2, [r4, r0] + add r2, r2, #1 + strb r2, [r4, #1] + ldrsb r0, [r4, r0] + cmp r0, #0x1e + blt _021F15F4 + mov r0, #0 + strb r0, [r4, #1] + ldrb r2, [r4, #3] + mov r0, #0xfe + bic r2, r0 + strb r2, [r4, #3] +_021F15F4: + add r0, r5, #0 + bl FUN_0201F890 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F854 + pop {r3, r4, r5, pc} + .balign 4, 0 +_021F1604: .word UNK05_021FC41C + + thumb_func_start MOD05_021F1608 +MOD05_021F1608: ; 0x021F1608 + push {r4, lr} + mov r0, #0 + ldrsb r0, [r2, r0] + add r4, r1, #0 + cmp r3, r0 + bne _021F161C + mov r0, #2 + ldrsb r0, [r2, r0] + cmp r0, #3 + beq _021F1632 +_021F161C: + ldr r1, _021F1654 ; =UNK05_021FC41C + lsl r2, r3, #2 + ldr r1, [r1, r2] + add r0, r4, #0 + bl FUN_0201F830 + mov r1, #0xf + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F890 +_021F1632: + add r0, r4, #0 + bl FUN_0201F8C0 + mov r1, #1 + lsl r1, r1, #0xc + sub r1, r0, r1 + bpl _021F1642 + mov r1, #0 +_021F1642: + add r0, r4, #0 + bl FUN_0201F890 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F854 + pop {r4, pc} + nop +_021F1654: .word UNK05_021FC41C + + thumb_func_start MOD05_021F1658 +MOD05_021F1658: ; 0x021F1658 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r2, #0 + add r2, sp, #0 + mov r0, #0 + str r0, [r2] + str r0, [r2, #4] + str r0, [r2, #8] + add r0, r1, #0 + bl FUN_0201F880 + asr r1, r0, #0xb + lsr r1, r1, #0x14 + add r1, r0, r1 + asr r0, r1, #0xc + cmp r4, #3 + bhi _021F16BE + add r1, r4, r4 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021F1688: ; jump table + .short _021F16BE - _021F1688 - 2 ; case 0 + .short _021F1690 - _021F1688 - 2 ; case 1 + .short _021F169C - _021F1688 - 2 ; case 2 + .short _021F16AE - _021F1688 - 2 ; case 3 +_021F1690: + cmp r0, #0x18 + blt _021F16BE + mov r0, #6 + lsl r0, r0, #0xc + str r0, [sp, #8] + b _021F16BE +_021F169C: + cmp r0, #0x28 + bge _021F16A8 + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp] + b _021F16BE +_021F16A8: + ldr r0, _021F16CC ; =0xFFFFB000 + str r0, [sp] + b _021F16BE +_021F16AE: + cmp r0, #0x38 + bge _021F16B8 + ldr r0, _021F16D0 ; =0xFFFFF000 + str r0, [sp] + b _021F16BE +_021F16B8: + mov r0, #5 + lsl r0, r0, #0xc + str r0, [sp] +_021F16BE: + add r0, r5, #0 + add r1, sp, #0 + bl FUN_02058B94 + add sp, #0xc + pop {r4, r5, pc} + nop +_021F16CC: .word 0xFFFFB000 +_021F16D0: .word 0xFFFFF000 + + thumb_func_start MOD05_021F16D4 +MOD05_021F16D4: ; 0x021F16D4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl FUN_02058628 + ldr r4, [r0, #4] + add r0, r5, #0 + bl FUN_02058628 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F1734 + cmp r4, #0 + beq _021F1734 + add r0, r5, #0 + bl FUN_020584C4 + add r7, r0, #0 + strb r7, [r6] + add r0, r5, #0 + bl FUN_0205854C + strb r0, [r6, #2] + add r0, r7, #0 + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F854 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2F48 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F19A4 +_021F1734: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1738 +MOD05_021F1738: ; 0x021F1738 + push {r4, r5, r6, lr} + add r5, r0, #0 + bl FUN_02058628 + ldr r4, [r0, #4] + add r0, r5, #0 + bl FUN_02058628 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F179C + cmp r4, #0 + beq _021F179C + add r0, r5, #0 + bl FUN_020584C4 + strb r0, [r6] + add r0, r5, #0 + bl FUN_0205854C + strb r0, [r6, #2] + add r0, r4, #0 + bl FUN_0201F844 + cmp r0, #0 + beq _021F1782 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F1782: + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2F48 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F19A4 +_021F179C: + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F17A0 +MOD05_021F17A0: ; 0x021F17A0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl FUN_02058628 + ldr r4, [r0, #4] + add r0, r5, #0 + bl FUN_02058628 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F1836 + cmp r4, #0 + beq _021F1836 + add r0, r5, #0 + bl FUN_020584C4 + add r7, r0, #0 + add r0, r5, #0 + bl FUN_0205854C + cmp r0, #0 + bne _021F17F8 + add r0, r4, #0 + bl FUN_0201F844 + cmp r0, #1 + beq _021F17EC + add r0, r4, #0 + mov r1, #1 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F17EC: + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 + b _021F181C +_021F17F8: + add r0, r4, #0 + bl FUN_0201F844 + cmp r0, #0 + beq _021F1812 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F1812: + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 +_021F181C: + strb r7, [r6] + add r0, r5, #0 + bl FUN_0205854C + strb r0, [r6, #2] + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2F48 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F19A4 +_021F1836: + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F1838 +MOD05_021F1838: ; 0x021F1838 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl FUN_02058628 + ldr r4, [r0, #4] + add r0, r5, #0 + bl FUN_02058628 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F18A0 + cmp r4, #0 + beq _021F18A0 + add r0, r5, #0 + bl FUN_020584C4 + mov r1, #0 + ldrsb r1, [r6, r1] + add r7, r0, #0 + cmp r7, r1 + beq _021F187C + bl MOD05_021F2FAC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F187C: + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2F48 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F19A4 + add r0, r5, #0 + strb r7, [r6] + bl FUN_0205854C + strb r0, [r6, #2] +_021F18A0: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F18A4 +MOD05_021F18A4: ; 0x021F18A4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl FUN_02058628 + ldr r4, [r0, #4] + add r0, r5, #0 + bl FUN_02058628 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F191A + cmp r4, #0 + beq _021F191A + add r0, r5, #0 + bl FUN_020584C4 + str r0, [sp] + add r0, r5, #0 + bl FUN_0205854C + add r7, r0, #0 + mov r0, #2 + ldrsb r0, [r6, r0] + cmp r7, r0 + beq _021F18FA + cmp r7, #0 + bne _021F18EA + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F830 + b _021F18F2 +_021F18EA: + add r0, r4, #0 + mov r1, #1 + bl FUN_0201F830 +_021F18F2: + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 +_021F18FA: + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 + ldr r0, [sp] + add r1, r4, #0 + strb r0, [r6] + add r0, r5, #0 + strb r7, [r6, #2] + bl MOD05_021F2F48 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F19A4 +_021F191A: + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F191C +MOD05_021F191C: ; 0x021F191C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + bl FUN_0201F8C0 + asr r1, r0, #0xb + lsr r1, r1, #0x14 + add r1, r0, r1 + asr r4, r1, #0xc + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + sub r1, r4, r1 + add r0, r5, #0 + lsl r1, r1, #0xc + bl FUN_0201F890 + add r0, r5, #0 + mov r1, #0 + bl FUN_0201F854 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F194C +MOD05_021F194C: ; 0x021F194C + ldr r3, _021F1954 ; =MOD05_021F191C + mov r1, #8 + bx r3 + nop +_021F1954: .word MOD05_021F191C + + thumb_func_start MOD05_021F1958 +MOD05_021F1958: ; 0x021F1958 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r1, r2, #0 + bl MOD05_021F191C + add r0, r5, #0 + bl FUN_0201F8C0 + add r6, r0, #0 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0201F830 + add r0, r5, #0 + add r1, r6, #0 + bl FUN_0201F890 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1980 +MOD05_021F1980: ; 0x021F1980 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F194C + add r0, r5, #0 + bl FUN_0201F8C0 + add r6, r0, #0 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0201F830 + add r0, r5, #0 + add r1, r6, #0 + bl FUN_0201F890 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F19A4 +MOD05_021F19A4: ; 0x021F19A4 + push {r4, r5, r6, lr} + mov r4, #1 + add r6, r1, #0 + lsl r1, r4, #9 + add r5, r0, #0 + bl FUN_0205842C + cmp r0, #1 + bne _021F19B8 + mov r4, #0 +_021F19B8: + mov r1, #1 + add r0, r5, #0 + lsl r1, r1, #0xc + bl FUN_0205842C + cmp r0, #1 + bne _021F19D6 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0xc + bl FUN_0205842C + cmp r0, #0 + bne _021F19D6 + mov r4, #0 +_021F19D6: + lsl r1, r4, #0x18 + add r0, r6, #0 + lsr r1, r1, #0x18 + bl FUN_0201F80C + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F19E4 +MOD05_021F19E4: ; 0x021F19E4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r1, #4 + bl FUN_02058604 + add r4, r0, #0 + add r0, r5, #0 + bl MOD06_0224A130 + str r0, [r4] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F19FC +MOD05_021F19FC: ; 0x021F19FC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r1, #4 + bl FUN_02058604 + add r4, r0, #0 + add r0, r5, #0 + bl MOD06_0224A6B8 + str r0, [r4] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1A14 +MOD05_021F1A14: ; 0x021F1A14 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r1, #4 + bl FUN_02058604 + add r4, r0, #0 + add r0, r5, #0 + bl MOD06_0224A8D4 + str r0, [r4] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1A2C +MOD05_021F1A2C: ; 0x021F1A2C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r1, #4 + bl FUN_02058604 + add r4, r0, #0 + add r0, r5, #0 + bl MOD06_0224AA40 + str r0, [r4] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1A44 +MOD05_021F1A44: ; 0x021F1A44 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F1A48 +MOD05_021F1A48: ; 0x021F1A48 + push {r4, lr} + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F1A5E + bl MOD05_021E4DE4 + mov r0, #0 + str r0, [r4] +_021F1A5E: + pop {r4, pc} + + thumb_func_start MOD05_021F1A60 +MOD05_021F1A60: ; 0x021F1A60 + push {r4, lr} + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F1A76 + bl MOD05_021E4DE4 + mov r0, #0 + str r0, [r4] +_021F1A76: + pop {r4, pc} + + thumb_func_start MOD05_021F1A78 +MOD05_021F1A78: ; 0x021F1A78 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F1A8C + bl GF_AssertFail +_021F1A8C: + add r0, r5, #0 + bl MOD06_0224A130 + str r0, [r4] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1A98 +MOD05_021F1A98: ; 0x021F1A98 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F1AAC + bl GF_AssertFail +_021F1AAC: + add r0, r5, #0 + bl MOD06_0224A6B8 + str r0, [r4] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1AB8 +MOD05_021F1AB8: ; 0x021F1AB8 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F1ACC + bl GF_AssertFail +_021F1ACC: + add r0, r5, #0 + bl MOD06_0224A8D4 + str r0, [r4] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1AD8 +MOD05_021F1AD8: ; 0x021F1AD8 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F1AEC + bl GF_AssertFail +_021F1AEC: + add r0, r5, #0 + bl MOD06_0224AA40 + str r0, [r4] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1AF8 +MOD05_021F1AF8: ; 0x021F1AF8 + push {r4, lr} + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4] + bl MOD06_0224A6FC + mov r0, #0 + str r0, [r4] + pop {r4, pc} + + .section .rodata + + .global UNK05_021F8B84 +UNK05_021F8B84: ; 0x021F8B84 + .byte 0x07, 0x00, 0x00, 0x00 + + .global UNK05_021F8B88 +UNK05_021F8B88: ; 0x021F8B88 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0xFF, 0xFF, 0x00, 0x00 + + .global UNK05_021F8B90 +UNK05_021F8B90: ; 0x021F8B90 + .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0xFF, 0xFF, 0x00, 0x00 + + .global UNK05_021F8BA0 +UNK05_021F8BA0: ; 0x021F8BA0 + .word MOD05_021F0CF0, MOD05_021F18A4, MOD05_021F0D18, MOD05_021F0D44 + .word MOD05_021F0D70 + + .global UNK05_021F8BB4 +UNK05_021F8BB4: ; 0x021F8BB4 + .word MOD05_021F0CF0, MOD05_021F17A0, MOD05_021F0D18, MOD05_021F0D44 + .word MOD05_021F0D70 + + .global UNK05_021F8BC8 +UNK05_021F8BC8: ; 0x021F8BC8 + .word MOD05_021F0CF0, MOD05_021F0DB4, MOD05_021F0D18, MOD05_021F0D44 + .word MOD05_021F0D70 + + .global UNK05_021F8BDC +UNK05_021F8BDC: ; 0x021F8BDC + .word MOD05_021F1B0C, MOD05_021F1B2C, MOD05_021F1B58, MOD05_021F1B60 + .word MOD05_021F1B8C + + .global UNK05_021F8BF0 +UNK05_021F8BF0: ; 0x021F8BF0 + .word MOD05_021F19FC, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60 + .word MOD05_021F1A98 + + .global UNK05_021F8C04 +UNK05_021F8C04: ; 0x021F8C04 + .word MOD05_021F0ADC, MOD05_021F0B9C, MOD05_021F0B18, MOD05_021F0B2C + .word MOD05_021F0B58 + + .global UNK05_021F8C18 +UNK05_021F8C18: ; 0x021F8C18 + .word MOD05_021F0CF0, MOD05_021F1234, MOD05_021F0D18, MOD05_021F0D44 + .word MOD05_021F0D70 + + .global UNK05_021F8C2C +UNK05_021F8C2C: ; 0x021F8C2C + .word MOD05_021F0CF0, MOD05_021F16D4, MOD05_021F0D18, MOD05_021F0D44 + .word MOD05_021F0D70 + + .global UNK05_021F8C40 +UNK05_021F8C40: ; 0x021F8C40 + .word MOD05_021F05C4, MOD05_021F071C, MOD05_021F05F0, MOD05_021F0604 + .word MOD05_021F0634 + + .global UNK05_021F8C54 +UNK05_021F8C54: ; 0x021F8C54 + .word FUN_0205C3B0, FUN_0205C3D0, FUN_0205C490, FUN_0205C4A8 + .word FUN_0205C4D8 + + .global UNK05_021F8C68 +UNK05_021F8C68: ; 0x021F8C68 + .word MOD05_021F05C4, MOD05_021F067C, MOD05_021F05F0, MOD05_021F0604 + .word MOD05_021F0634 + + .global UNK05_021F8C7C +UNK05_021F8C7C: ; 0x021F8C7C + .word MOD05_021F1A14, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60 + .word MOD05_021F1AB8 + + .global UNK05_021F8C90 +UNK05_021F8C90: ; 0x021F8C90 + .word MOD05_021F19E4, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60 + .word MOD05_021F1A78 + + .global UNK05_021F8CA4 +UNK05_021F8CA4: ; 0x021F8CA4 + .word MOD05_021F0CF0, MOD05_021F1838, MOD05_021F0D18, MOD05_021F0D44 + .word MOD05_021F0D70 + + .global UNK05_021F8CB8 +UNK05_021F8CB8: ; 0x021F8CB8 + .word MOD05_021F05C4, MOD05_021F0A04, MOD05_021F05F0, MOD05_021F0604 + .word MOD05_021F0634 + + .global UNK05_021F8CCC +UNK05_021F8CCC: ; 0x021F8CCC + .word MOD05_021F05C4, MOD05_021F06F0, MOD05_021F05F0, MOD05_021F0604 + .word MOD05_021F0634 + + .global UNK05_021F8CE0 +UNK05_021F8CE0: ; 0x021F8CE0 + .word MOD05_021F05C4, MOD05_021F0C28, MOD05_021F05F0, MOD05_021F0604 + .word MOD05_021F0634 + + .global UNK05_021F8CF4 +UNK05_021F8CF4: ; 0x021F8CF4 + .word MOD05_021F0CF0, MOD05_021F1440, MOD05_021F0D18, MOD05_021F0D44 + .word MOD05_021F0D70 + + .global UNK05_021F8D08 +UNK05_021F8D08: ; 0x021F8D08 + .word MOD05_021F1A2C, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60 + .word MOD05_021F1AD8 + + .global UNK05_021F8D1C +UNK05_021F8D1C: ; 0x021F8D1C + .word MOD05_021F1BD0, MOD05_021F1BF4, MOD05_021F1C14, MOD05_021F1B60 + .word MOD05_021F1B8C + + .global UNK05_021F8D30 +UNK05_021F8D30: ; 0x021F8D30 + .word MOD05_021F0CF0, MOD05_021F1738, MOD05_021F0D18, MOD05_021F0D44 + .word MOD05_021F0D70 + + .global UNK05_021F8D44 +UNK05_021F8D44: ; 0x021F8D44 + .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8D5C +UNK05_021F8D5C: ; 0x021F8D5C + .byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8D74 +UNK05_021F8D74: ; 0x021F8D74 + .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8D8C +UNK05_021F8D8C: ; 0x021F8D8C + .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8DA4 +UNK05_021F8DA4: ; 0x021F8DA4 + .byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8DBC +UNK05_021F8DBC: ; 0x021F8DBC + .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8DD4 +UNK05_021F8DD4: ; 0x021F8DD4 + .byte 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8DEC +UNK05_021F8DEC: ; 0x021F8DEC + .byte 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8E10 +UNK05_021F8E10: ; 0x021F8E10 + .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8E34 +UNK05_021F8E34: ; 0x021F8E34 + .byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8E58 +UNK05_021F8E58: ; 0x021F8E58 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x0F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x30, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8E94 +UNK05_021F8E94: ; 0x021F8E94 + .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8ED0 +UNK05_021F8ED0: ; 0x021F8ED0 + .byte 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x0C, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00 + .byte 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8F0C +UNK05_021F8F0C: ; 0x021F8F0C + .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 + .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8F48 +UNK05_021F8F48: ; 0x021F8F48 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 + .byte 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8F90 +UNK05_021F8F90: ; 0x021F8F90 + .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 + .byte 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x50, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 + .byte 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F8FFC +UNK05_021F8FFC: ; 0x021F8FFC + .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 + .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00 + .byte 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x58, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00 + .byte 0x5F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00 + + .global UNK05_021F9080 +UNK05_021F9080: ; 0x021F9080 + .word MOD05_021F1EDC + .word MOD05_021F1EF4 + .word MOD05_021F1EF8 + .word MOD05_021F1EFC + .word MOD05_021F1F00 + + .global UNK05_021F9094 +UNK05_021F9094: ; 0x021F9094 + .word 0x00000000 + .byte 0x78, 0x01, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7A, 0x01, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00, 0x7B, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00 + .byte 0x05, 0x00, 0x00, 0x00, 0x7F, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00 + .byte 0x07, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00 + .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021F90E4 +UNK05_021F90E4: ; 0x021F90E4 + .byte 0x00, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x8A, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8B, 0x01, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x8D, 0x01, 0x00, 0x00 + .byte 0x05, 0x00, 0x00, 0x00, 0x8E, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8F, 0x01, 0x00, 0x00 + .byte 0x07, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00 + .byte 0x09, 0x00, 0x00, 0x00, 0x92, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00 + .byte 0x0B, 0x00, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00 + .byte 0x0D, 0x00, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00 + .byte 0x0F, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00 + .byte 0x11, 0x00, 0x00, 0x00, 0x9A, 0x01, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x9B, 0x01, 0x00, 0x00 + .byte 0x13, 0x00, 0x00, 0x00, 0x9C, 0x01, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x9D, 0x01, 0x00, 0x00 + .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021F9194 +UNK05_021F9194: ; 0x021F9194 + .word 0x00001001 + .word 0x00001002 + .word 0x00001003 + .word 0x00001004 + .word 0x00001005 + .word 0x00001006 + .word 0x00001007 + .word 0x00001008 + .word 0x00001009 + .word 0x0000100A + .word 0x0000100B + .word 0x0000100C + .word 0x0000100D + .word 0x0000100E + .word 0x0000100F + .word 0x00001010 + .word 0x00001011 + .word 0x00001012 + .word 0x00001013 + .word 0x00001014 + .word 0x00001015 + .word 0x00001016 + .word 0x00001017 + .word 0x00001018 + .word 0x00001019 + .word 0x0000101A + .word 0x0000101B + .word 0x0000101C + .word 0x0000101D + .word 0x0000101E + .word 0x0000101F + .word 0x00001020 + .word 0x00001021 + .word 0x00001022 + .word 0x00001023 + .word 0x00001024 + .word 0x00001025 + .word 0x00001026 + .word 0x00001027 + .word 0x00001028 + .word 0x00001029 + .word 0x0000102A + .word 0x0000102B + .word 0x0000102C + .word 0x0000102D + .word 0x0000102E + .word 0x0000102F + .word 0x00001030 + .word 0x00001031 + .word 0x00001032 + .word 0x00001033 + .word 0x00001034 + .word 0x00001035 + .word 0x00001036 + .word 0x00001037 + .word 0x00001038 + .word 0x00001039 + .word 0x0000103A + .word 0x0000103B + .word 0x0000103C + .word 0x0000103D + .word 0x0000103E + .word 0x0000103F + .word 0x00001040 + .word 0x00001041 + .word 0x00001042 + .word 0x00001043 + .word 0x00001044 + .word 0x00001045 + .word 0x00001046 + .word 0x00001047 + .word 0x00001048 + .word 0x00001049 + .word 0x0000104A + .word 0x0000104B + .word 0x0000104C + .word 0x0000104D + .word 0x0000104E + .word 0x0000104F + .word 0x00001050 + .word 0x00001051 + .word 0x00001052 + .word 0x00001053 + .word 0x00001054 + .word 0x00001055 + .word 0x00001056 + .word 0x00001057 + .word 0x00001058 + .word 0x00001059 + .word 0x0000105A + .word 0x0000105B + .word 0x0000105C + .word 0x0000105D + .word 0x0000105E + .word 0x0000105F + .word 0x00001060 + .word 0x00001061 + .word 0x00001062 + .word 0x00001063 + .word 0x00001064 + .word 0x00001065 + .word 0x00001066 + .word 0x00001067 + .word 0x00001068 + .word 0x00001069 + .word 0x0000106A + .word 0x0000106B + .word 0x0000106C + .word 0x0000106D + .word 0x0000106E + .word 0x0000106F + .word 0x00001070 + .word 0x00001071 + .word 0x00001072 + .word 0x00001073 + .word 0x00001074 + .word 0x00001075 + .word 0x00001076 + .word 0x00001077 + .word 0x00001078 + .word 0x00001079 + .word 0x0000107A + .word 0x0000107B + .word 0x0000107C + .word 0x0000107D + .word 0x0000107E + .word 0x0000107F + .word 0x00001080 + .word 0x00001081 + .word 0x00001082 + .word 0x00001083 + .word 0x00001084 + .word 0x00001085 + .word 0x00001086 + .word 0x00001087 + .word 0x00001088 + .word 0x00001089 + .word 0x0000108A + .word 0x0000108B + .word 0x0000108C + .word 0x0000108D + .word 0x0000108E + .word 0x0000108F + .word 0x00001090 + .word 0x00001091 + .word 0x00001092 + .word 0x00001093 + .word 0x00001094 + .word 0x00001095 + .word 0x00001096 + .word 0x00001097 + .word 0x00001098 + .word 0x00001099 + .word 0x0000109A + .word 0x0000109B + .word 0x0000109C + .word 0x0000109D + .word 0x0000109E + .word 0x0000109F + .word 0x000010A0 + .word 0x000010A1 + .word 0x000010A2 + .word 0x000010A3 + .word 0x000010A4 + .word 0x000010A5 + .word 0x000010A6 + .word 0x000010A7 + .word 0x000010A8 + .word 0x000010A9 + .word 0x000010AA + .word 0x000010AB + .word 0x000010AC + .word 0x000010AD + .word 0x000010AE + .word 0x000010AF + .word 0x000010B0 + .word 0x000010B1 + .word 0x000010B2 + .word 0x000010B3 + .word 0x000010B4 + .word 0x000010B5 + .word 0x000010B6 + .word 0x000010B7 + .word 0x000010B8 + .word 0x000010B9 + .word 0x000010BA + .word 0x000010BB + .word 0x000010BC + .word 0x000010BD + .word 0x000010BE + .word 0x000010BF + .word 0x000010C0 + + .global UNK05_021F9494 +UNK05_021F9494: ; 0x021F9494 + .word 0x00, UNK05_021F8BC8 + .word 0x01, UNK05_021F8C68 + .word 0x02, UNK05_021F8C68 + .word 0x03, UNK05_021F8C68 + .word 0x04, UNK05_021F8C68 + .word 0x05, UNK05_021F8C68 + .word 0x06, UNK05_021F8C68 + .word 0x07, UNK05_021F8C68 + .word 0x08, UNK05_021F8C68 + .word 0x09, UNK05_021F8C68 + .word 0x0A, UNK05_021F8C68 + .word 0x0B, UNK05_021F8C68 + .word 0x0C, UNK05_021F8C68 + .word 0x0D, UNK05_021F8C68 + .word 0x0E, UNK05_021F8C68 + .word 0x0F, UNK05_021F8C68 + .word 0x10, UNK05_021F8C68 + .word 0x11, UNK05_021F8C68 + .word 0x12, UNK05_021F8C68 + .word 0x13, UNK05_021F8C68 + .word 0x14, UNK05_021F8C68 + .word 0x15, UNK05_021F8C18 + .word 0x16, UNK05_021F8C68 + .word 0x17, UNK05_021F8C68 + .word 0x18, UNK05_021F8C68 + .word 0x19, UNK05_021F8C68 + .word 0x1A, UNK05_021F8CB8 + .word 0x1B, UNK05_021F8C68 + .word 0x1C, UNK05_021F8C68 + .word 0x1D, UNK05_021F8C68 + .word 0x1E, UNK05_021F8C68 + .word 0x1F, UNK05_021F8C68 + .word 0x20, UNK05_021F8C68 + .word 0x21, UNK05_021F8C68 + .word 0x22, UNK05_021F8C68 + .word 0x23, UNK05_021F8C68 + .word 0x24, UNK05_021F8C68 + .word 0x25, UNK05_021F8C68 + .word 0x26, UNK05_021F8C68 + .word 0x27, UNK05_021F8C68 + .word 0x28, UNK05_021F8C68 + .word 0x29, UNK05_021F8C68 + .word 0x2A, UNK05_021F8C68 + .word 0x2B, UNK05_021F8C68 + .word 0x2C, UNK05_021F8C68 + .word 0x2D, UNK05_021F8C68 + .word 0x2E, UNK05_021F8C68 + .word 0x2F, UNK05_021F8C68 + .word 0x30, UNK05_021F8C68 + .word 0x31, UNK05_021F8C68 + .word 0x32, UNK05_021F8C68 + .word 0x33, UNK05_021F8C68 + .word 0x34, UNK05_021F8C68 + .word 0x35, UNK05_021F8C68 + .word 0x36, UNK05_021F8C68 + .word 0x37, UNK05_021F8C68 + .word 0x38, UNK05_021F8C68 + .word 0x39, UNK05_021F8C68 + .word 0x3A, UNK05_021F8C68 + .word 0x3B, UNK05_021F8C68 + .word 0x3C, UNK05_021F8C68 + .word 0x3D, UNK05_021F8C68 + .word 0x3E, UNK05_021F8C68 + .word 0x3F, UNK05_021F8C68 + .word 0x40, UNK05_021F8C68 + .word 0x41, UNK05_021F8C68 + .word 0x42, UNK05_021F8C68 + .word 0x43, UNK05_021F8C68 + .word 0x44, UNK05_021F8C68 + .word 0x45, UNK05_021F8C68 + .word 0x46, UNK05_021F8C68 + .word 0x47, UNK05_021F8C68 + .word 0x48, UNK05_021F8C68 + .word 0x49, UNK05_021F8C68 + .word 0x4A, UNK05_021F8C68 + .word 0x4B, UNK05_021F8C68 + .word 0x4C, UNK05_021F8C68 + .word 0x4D, UNK05_021F8C68 + .word 0x4E, UNK05_021F8C68 + .word 0x4F, UNK05_021F8C68 + .word 0x50, UNK05_021F8C68 + .word 0x51, UNK05_021F8C68 + .word 0x52, UNK05_021F8C68 + .word 0x53, UNK05_021F8C68 + .word 0x54, UNK05_021F8CCC + .word 0x55, UNK05_021F8CCC + .word 0x56, UNK05_021F8CCC + .word 0x57, UNK05_021F8CCC + .word 0x58, UNK05_021F8C68 + .word 0x59, UNK05_021F8C68 + .word 0x5A, UNK05_021F8C68 + .word 0x5B, UNK05_021F8C90 + .word 0x5C, UNK05_021F8C90 + .word 0x5D, UNK05_021F8C90 + .word 0x5E, UNK05_021F8C90 + .word 0x5F, UNK05_021F8C90 + .word 0x60, UNK05_021F8C90 + .word 0x61, UNK05_021F8BC8 + .word 0x62, UNK05_021F8C18 + .word 0x63, UNK05_021F8C68 + .word 0x64, UNK05_021F8C54 + .word 0x76, UNK05_021F8BF0 + .word 0x78, UNK05_021F8C68 + .word 0x79, UNK05_021F8C68 + .word 0x7A, UNK05_021F8C68 + .word 0x7B, UNK05_021F8C68 + .word 0x7C, UNK05_021F8C68 + .word 0x7D, UNK05_021F8C68 + .word 0x7E, UNK05_021F8C68 + .word 0x7F, UNK05_021F8C68 + .word 0x80, UNK05_021F8C68 + .word 0x81, UNK05_021F8C68 + .word 0x82, UNK05_021F8C68 + .word 0x83, UNK05_021F8C68 + .word 0x84, UNK05_021F8C68 + .word 0x85, UNK05_021F8C68 + .word 0x86, UNK05_021F8C68 + .word 0x87, UNK05_021F8C68 + .word 0x88, UNK05_021F8C68 + .word 0x89, UNK05_021F8C68 + .word 0x8A, UNK05_021F8C68 + .word 0x8B, UNK05_021F8C68 + .word 0x8C, UNK05_021F8C68 + .word 0x8D, UNK05_021F8C68 + .word 0x8E, UNK05_021F8C68 + .word 0x8F, UNK05_021F8C68 + .word 0x90, UNK05_021F8C68 + .word 0x91, UNK05_021F8C68 + .word 0x92, UNK05_021F8C68 + .word 0x93, UNK05_021F8C68 + .word 0x94, UNK05_021F8C68 + .word 0x95, UNK05_021F8C68 + .word 0x96, UNK05_021F8C68 + .word 0x97, UNK05_021F8D1C + .word 0x98, UNK05_021F8D1C + .word 0x99, UNK05_021F8D1C + .word 0x9A, UNK05_021F8BDC + .word 0x9B, UNK05_021F8BDC + .word 0x9C, UNK05_021F8C40 + .word 0x9D, UNK05_021F8C40 + .word 0x9E, UNK05_021F8C68 + .word 0x9F, UNK05_021F8C40 + .word 0xA0, UNK05_021F8C40 + .word 0xA1, UNK05_021F8C40 + .word 0xA2, UNK05_021F8C68 + .word 0xA3, UNK05_021F8C68 + .word 0xA4, UNK05_021F8C68 + .word 0xA5, UNK05_021F8C68 + .word 0xA6, UNK05_021F8C68 + .word 0xA7, UNK05_021F8C68 + .word 0xA8, UNK05_021F8C68 + .word 0xA9, UNK05_021F8C68 + .word 0xAA, UNK05_021F8C68 + .word 0xAB, UNK05_021F8C68 + .word 0xAC, UNK05_021F8C68 + .word 0xAD, UNK05_021F8CE0 + .word 0xAE, UNK05_021F8C68 + .word 0xAF, UNK05_021F8C68 + .word 0xB0, UNK05_021F8D30 + .word 0xB1, UNK05_021F8D30 + .word 0xB4, UNK05_021F8BB4 + .word 0xB5, UNK05_021F8BB4 + .word 0xB2, UNK05_021F8C2C + .word 0xB3, UNK05_021F8C2C + .word 0xB6, UNK05_021F8CCC + .word 0xB7, UNK05_021F8C7C + .word 0xB8, UNK05_021F8CCC + .word 0xB9, UNK05_021F8C68 + .word 0xBA, UNK05_021F8BC8 + .word 0xBB, UNK05_021F8BC8 + .word 0xBC, UNK05_021F8CF4 + .word 0xBD, UNK05_021F8CF4 + .word 0xBE, UNK05_021F8C68 + .word 0xBF, UNK05_021F8C68 + .word 0xC0, UNK05_021F8C68 + .word 0xC1, UNK05_021F8C68 + .word 0xC2, UNK05_021F8C68 + .word 0xC3, UNK05_021F8C04 + .word 0xC4, UNK05_021F8CA4 + .word 0xC5, UNK05_021F8CA4 + .word 0xC6, UNK05_021F8D30 + .word 0xC7, UNK05_021F8D30 + .word 0xC8, UNK05_021F8BA0 + .word 0xC9, UNK05_021F8BA0 + .word 0xCA, UNK05_021F8CCC + .word 0xCB, UNK05_021F8CCC + .word 0xCC, UNK05_021F8C68 + .word 0xCD, UNK05_021F8C68 + .word 0xCE, UNK05_021F8C68 + .word 0xCF, UNK05_021F8C68 + .word 0xD0, UNK05_021F8C68 + .word 0xD1, UNK05_021F8D08 + +; 0x021F9A94 + .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global UNK05_021F9A9C +UNK05_021F9A9C: ; 0x021F9A9C + .byte 0x00, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x06, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x08, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x0A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x0C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x0E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x10, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x12, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x14, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 + .byte 0x16, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x18, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x1A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x1C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x1E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x20, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x22, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x24, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x26, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 + .byte 0x28, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x2A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x2C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x2E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x30, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x32, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x34, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x36, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x38, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x3A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x3C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x3E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x40, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x42, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x44, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x46, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x48, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x4A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x4C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x4E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x50, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x52, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x54, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x56, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x58, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x5A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x5C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x5E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x62, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x64, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x7A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x7C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x7E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x80, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x82, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x84, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x86, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x8A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x8C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x8E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x90, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x92, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x94, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x96, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x98, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x9A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x9C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x9E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xA0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xA2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xA4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xA6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xA8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xAA, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xAC, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xAE, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xB0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xB2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xB4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xB6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 + .byte 0xB8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xBA, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xBC, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xBE, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xC0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xC2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xC5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xC7, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 + .byte 0xC9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0xCB, 0x00, 0x00, 0x00, 0x11, 0x04, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 + .byte 0xCD, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 + .byte 0xCF, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 + .byte 0xD1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FA0AC +UNK05_021FA0AC: ; 0x021FA0AC + .byte 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 + .byte 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .byte 0x0A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x0C, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 + .byte 0x0E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00 + .byte 0x10, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 + .byte 0x12, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 + .byte 0x14, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00 + .byte 0x16, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00 + .byte 0x18, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00 + .byte 0x1A, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00 + .byte 0x1C, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00 + .byte 0x1E, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00 + .byte 0x20, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00 + .byte 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00 + .byte 0x24, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00 + .byte 0x26, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00 + .byte 0x28, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00 + .byte 0x2A, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00 + .byte 0x2C, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00 + .byte 0x2E, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00 + .byte 0x30, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00 + .byte 0x32, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00 + .byte 0x34, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00 + .byte 0x36, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00 + .byte 0x38, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00 + .byte 0x3A, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00 + .byte 0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00 + .byte 0x3E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00 + .byte 0x40, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00 + .byte 0x42, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00 + .byte 0x44, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00 + .byte 0x46, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00 + .byte 0x48, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00 + .byte 0x4A, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00 + .byte 0x4C, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00 + .byte 0x4E, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00 + .byte 0x50, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00 + .byte 0x52, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00 + .byte 0x54, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00 + .byte 0x56, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00 + .byte 0x58, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00 + .byte 0x5A, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00 + .byte 0x62, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 + .byte 0x02, 0x10, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00 + .byte 0x7A, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00 + .byte 0x7C, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00 + .byte 0x7E, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00 + .byte 0x80, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00 + .byte 0x82, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00 + .byte 0x84, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00 + .byte 0x86, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00 + .byte 0x8A, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00 + .byte 0x8C, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00 + .byte 0x8E, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00 + .byte 0x90, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00 + .byte 0x92, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00 + .byte 0x94, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 + .byte 0x96, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00 + .byte 0x98, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00 + .byte 0x9A, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00 + .byte 0x9C, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00 + .byte 0x9E, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00 + .byte 0xA0, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00 + .byte 0xA2, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00 + .byte 0xA4, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00 + .byte 0xA6, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00 + .byte 0xA8, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00 + .byte 0xAA, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00 + .byte 0xAC, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00 + .byte 0xAE, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00 + .byte 0xB0, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00 + .byte 0xB4, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00 + .byte 0xB2, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 + .byte 0xB6, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00 + .byte 0xB9, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 + .byte 0xBB, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00 + .byte 0xBD, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00 + .byte 0xBF, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00 + .byte 0x04, 0x10, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x05, 0x10, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00 + .byte 0x06, 0x10, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x07, 0x10, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00 + .byte 0x08, 0x10, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x09, 0x10, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00 + .byte 0x0A, 0x10, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x0B, 0x10, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00 + .byte 0x0C, 0x10, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x0D, 0x10, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00 + .byte 0x0E, 0x10, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x0F, 0x10, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00 + .byte 0x10, 0x10, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x11, 0x10, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00 + .byte 0x12, 0x10, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x13, 0x10, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00 + .byte 0x14, 0x10, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x15, 0x10, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00 + .byte 0x16, 0x10, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x17, 0x10, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00 + .byte 0x18, 0x10, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x19, 0x10, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00 + .byte 0x1A, 0x10, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x1B, 0x10, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00 + .byte 0x1C, 0x10, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x1D, 0x10, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00 + .byte 0x1E, 0x10, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00 + .byte 0x20, 0x10, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0x21, 0x10, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00 + .byte 0x22, 0x10, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0x23, 0x10, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00 + .byte 0x24, 0x10, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0x25, 0x10, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00 + .byte 0x26, 0x10, 0x00, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00 + .byte 0x28, 0x10, 0x00, 0x00, 0xCF, 0x00, 0x00, 0x00, 0x29, 0x10, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00 + .byte 0x2A, 0x10, 0x00, 0x00, 0xD1, 0x00, 0x00, 0x00, 0x2B, 0x10, 0x00, 0x00, 0xD2, 0x00, 0x00, 0x00 + .byte 0x2C, 0x10, 0x00, 0x00, 0xD3, 0x00, 0x00, 0x00, 0x2D, 0x10, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00 + .byte 0x2E, 0x10, 0x00, 0x00, 0xD5, 0x00, 0x00, 0x00, 0x2F, 0x10, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00 + .byte 0x30, 0x10, 0x00, 0x00, 0xD7, 0x00, 0x00, 0x00, 0x31, 0x10, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00 + .byte 0x32, 0x10, 0x00, 0x00, 0xD9, 0x00, 0x00, 0x00, 0x33, 0x10, 0x00, 0x00, 0xDA, 0x00, 0x00, 0x00 + .byte 0x34, 0x10, 0x00, 0x00, 0xDB, 0x00, 0x00, 0x00, 0x35, 0x10, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00 + .byte 0x36, 0x10, 0x00, 0x00, 0xDD, 0x00, 0x00, 0x00, 0x37, 0x10, 0x00, 0x00, 0xDE, 0x00, 0x00, 0x00 + .byte 0x38, 0x10, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0x39, 0x10, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00 + .byte 0x3A, 0x10, 0x00, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x3B, 0x10, 0x00, 0x00, 0xE2, 0x00, 0x00, 0x00 + .byte 0x3C, 0x10, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x3D, 0x10, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00 + .byte 0x3E, 0x10, 0x00, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x3F, 0x10, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x00 + .byte 0x40, 0x10, 0x00, 0x00, 0xE7, 0x00, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00 + .byte 0x42, 0x10, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0x43, 0x10, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00 + .byte 0x44, 0x10, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x45, 0x10, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00 + .byte 0x46, 0x10, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00, 0x47, 0x10, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x00 + .byte 0x48, 0x10, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00, 0x49, 0x10, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00 + .byte 0x4A, 0x10, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x4B, 0x10, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00 + .byte 0x4C, 0x10, 0x00, 0x00, 0xF3, 0x00, 0x00, 0x00, 0x4D, 0x10, 0x00, 0x00, 0xF4, 0x00, 0x00, 0x00 + .byte 0x4E, 0x10, 0x00, 0x00, 0xF5, 0x00, 0x00, 0x00, 0x4F, 0x10, 0x00, 0x00, 0xF6, 0x00, 0x00, 0x00 + .byte 0x50, 0x10, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00, 0x51, 0x10, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00 + .byte 0x52, 0x10, 0x00, 0x00, 0xF9, 0x00, 0x00, 0x00, 0x53, 0x10, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00 + .byte 0x54, 0x10, 0x00, 0x00, 0xFB, 0x00, 0x00, 0x00, 0x55, 0x10, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00 + .byte 0x56, 0x10, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x57, 0x10, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00 + .byte 0x58, 0x10, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x59, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 + .byte 0x5A, 0x10, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x5B, 0x10, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00 + .byte 0x5C, 0x10, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x5D, 0x10, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00 + .byte 0x5E, 0x10, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x5F, 0x10, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00 + .byte 0x60, 0x10, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x61, 0x10, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00 + .byte 0x62, 0x10, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x63, 0x10, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x00 + .byte 0x64, 0x10, 0x00, 0x00, 0x0B, 0x01, 0x00, 0x00, 0x65, 0x10, 0x00, 0x00, 0x0C, 0x01, 0x00, 0x00 + .byte 0x66, 0x10, 0x00, 0x00, 0x0D, 0x01, 0x00, 0x00, 0x67, 0x10, 0x00, 0x00, 0x0E, 0x01, 0x00, 0x00 + .byte 0x68, 0x10, 0x00, 0x00, 0x0F, 0x01, 0x00, 0x00, 0x69, 0x10, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00 + .byte 0x6A, 0x10, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x6B, 0x10, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00 + .byte 0x6C, 0x10, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x6D, 0x10, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00 + .byte 0x6E, 0x10, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x6F, 0x10, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00 + .byte 0x70, 0x10, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x71, 0x10, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00 + .byte 0x72, 0x10, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x73, 0x10, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x00 + .byte 0x74, 0x10, 0x00, 0x00, 0x1B, 0x01, 0x00, 0x00, 0x75, 0x10, 0x00, 0x00, 0x1C, 0x01, 0x00, 0x00 + .byte 0x76, 0x10, 0x00, 0x00, 0x1D, 0x01, 0x00, 0x00, 0x77, 0x10, 0x00, 0x00, 0x1E, 0x01, 0x00, 0x00 + .byte 0x78, 0x10, 0x00, 0x00, 0x1F, 0x01, 0x00, 0x00, 0x79, 0x10, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00 + .byte 0x7A, 0x10, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x7B, 0x10, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00 + .byte 0x7C, 0x10, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x7D, 0x10, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00 + .byte 0x7E, 0x10, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x7F, 0x10, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00 + .byte 0x80, 0x10, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x81, 0x10, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00 + .byte 0x82, 0x10, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x83, 0x10, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00 + .byte 0x84, 0x10, 0x00, 0x00, 0x2B, 0x01, 0x00, 0x00, 0x85, 0x10, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00 + .byte 0x86, 0x10, 0x00, 0x00, 0x2D, 0x01, 0x00, 0x00, 0x87, 0x10, 0x00, 0x00, 0x2E, 0x01, 0x00, 0x00 + .byte 0x88, 0x10, 0x00, 0x00, 0x2F, 0x01, 0x00, 0x00, 0x89, 0x10, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00 + .byte 0x8A, 0x10, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x8B, 0x10, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00 + .byte 0x8C, 0x10, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x8D, 0x10, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00 + .byte 0x8E, 0x10, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x8F, 0x10, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00 + .byte 0x90, 0x10, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x91, 0x10, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00 + .byte 0x92, 0x10, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x93, 0x10, 0x00, 0x00, 0x3A, 0x01, 0x00, 0x00 + .byte 0x94, 0x10, 0x00, 0x00, 0x3B, 0x01, 0x00, 0x00, 0x95, 0x10, 0x00, 0x00, 0x3C, 0x01, 0x00, 0x00 + .byte 0x96, 0x10, 0x00, 0x00, 0x3D, 0x01, 0x00, 0x00, 0x97, 0x10, 0x00, 0x00, 0x3E, 0x01, 0x00, 0x00 + .byte 0x98, 0x10, 0x00, 0x00, 0x3F, 0x01, 0x00, 0x00, 0x99, 0x10, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00 + .byte 0x9A, 0x10, 0x00, 0x00, 0x41, 0x01, 0x00, 0x00, 0x9B, 0x10, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00 + .byte 0x9C, 0x10, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x9D, 0x10, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00 + .byte 0x9E, 0x10, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, 0x9F, 0x10, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00 + .byte 0xA0, 0x10, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0xA1, 0x10, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00 + .byte 0xA2, 0x10, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0xA3, 0x10, 0x00, 0x00, 0x4A, 0x01, 0x00, 0x00 + .byte 0xA4, 0x10, 0x00, 0x00, 0x4B, 0x01, 0x00, 0x00, 0xA5, 0x10, 0x00, 0x00, 0x4C, 0x01, 0x00, 0x00 + .byte 0xA6, 0x10, 0x00, 0x00, 0x4D, 0x01, 0x00, 0x00, 0xA7, 0x10, 0x00, 0x00, 0x4E, 0x01, 0x00, 0x00 + .byte 0xA8, 0x10, 0x00, 0x00, 0x4F, 0x01, 0x00, 0x00, 0xA9, 0x10, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00 + .byte 0xAA, 0x10, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0xAB, 0x10, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00 + .byte 0xAC, 0x10, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, 0xAD, 0x10, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00 + .byte 0xAE, 0x10, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0xAF, 0x10, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00 + .byte 0xB0, 0x10, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0xB1, 0x10, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00 + .byte 0xB2, 0x10, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0xB3, 0x10, 0x00, 0x00, 0x5A, 0x01, 0x00, 0x00 + .byte 0xB4, 0x10, 0x00, 0x00, 0x5B, 0x01, 0x00, 0x00, 0xB5, 0x10, 0x00, 0x00, 0x5C, 0x01, 0x00, 0x00 + .byte 0xB6, 0x10, 0x00, 0x00, 0x5D, 0x01, 0x00, 0x00, 0xB7, 0x10, 0x00, 0x00, 0x5E, 0x01, 0x00, 0x00 + .byte 0xB8, 0x10, 0x00, 0x00, 0x5F, 0x01, 0x00, 0x00, 0xB9, 0x10, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00 + .byte 0xBA, 0x10, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0xBB, 0x10, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00 + .byte 0xBC, 0x10, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0xBD, 0x10, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00 + .byte 0xBE, 0x10, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0xBF, 0x10, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00 + .byte 0xC0, 0x10, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00 + .byte 0xC2, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00 + .byte 0xC4, 0x00, 0x00, 0x00, 0x6B, 0x01, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x6C, 0x01, 0x00, 0x00 + .byte 0xC6, 0x00, 0x00, 0x00, 0x6D, 0x01, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0x6E, 0x01, 0x00, 0x00 + .byte 0xC8, 0x00, 0x00, 0x00, 0x6F, 0x01, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00 + .byte 0xCA, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00 + .byte 0xCC, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00 + .byte 0xCE, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0xCF, 0x00, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00 + .byte 0xD0, 0x00, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FAC6C +UNK05_021FAC6C: ; 0x021FAC6C + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .word UNK05_021F8F90 + .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + .word UNK05_021F8FFC + .byte 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00 + .word UNK05_021F8F48 + .byte 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x55, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .word UNK05_021F8F90 + .byte 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + .word UNK05_021F8FFC + .byte 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x00, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x01, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x02, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x03, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x8D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .word UNK05_021F8D74 + .byte 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .word UNK05_021F8D74 + .byte 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .word UNK05_021F8D74 + .byte 0x9A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .word UNK05_021F8D44 + .byte 0x9B, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .word UNK05_021F8D44 + .byte 0x9C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 + .word UNK05_021F8D5C + .byte 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00 + .word UNK05_021F8D5C + .byte 0x9E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 + .word UNK05_021F8D5C + .byte 0xA0, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00 + .word UNK05_021F8D5C + .byte 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 + .word UNK05_021F8D5C + .byte 0xA2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xA4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xA5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xA9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 + .word UNK05_021F8DEC + .byte 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .word UNK05_021F8DA4 + .byte 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .word UNK05_021F8DA4 + .byte 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 + .word UNK05_021F8E94 + .byte 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 + .word UNK05_021F8E94 + .byte 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 + .word UNK05_021F8E10 + .byte 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 + .word UNK05_021F8E10 + .byte 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xB8, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00 + .word UNK05_021F8F90 + .byte 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00 + .word UNK05_021F8F90 + .byte 0xBC, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .word UNK05_021F8E58 + .byte 0xBD, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .word UNK05_021F8E58 + .byte 0xBE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xBF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0x04, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x05, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x06, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x07, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x08, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x09, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x0A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x0B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x0C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x0D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x0E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x0F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x10, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x11, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x12, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x13, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x14, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x15, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x16, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x17, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x18, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x19, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x1A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x1B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x1C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x1D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x1E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x1F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x20, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x21, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x22, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x23, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x24, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x25, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x26, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x27, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x28, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x29, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x2A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x2B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x2C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x2D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x2E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x2F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x30, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x31, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x32, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x33, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x34, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x35, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x36, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x37, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x38, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x39, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x3A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x3B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x3C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x3D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x3E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x3F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x40, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x41, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x42, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x43, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x44, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x45, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x46, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x47, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x48, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x49, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x4A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x4B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x4C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x4D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x4E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x4F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x50, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x51, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x52, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x53, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x54, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x55, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x56, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x57, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x58, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x59, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x5A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x5B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x5C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x5D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x5E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x5F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x60, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x61, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x62, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x63, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x64, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x65, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x66, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x67, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x68, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x69, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x6A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x6B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x6C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x6D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x6E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x6F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x70, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x71, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x72, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x73, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x74, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x75, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x76, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x77, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x78, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x79, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x7A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x7B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x7C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x7D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x7E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x7F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x80, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x81, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x82, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x83, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x84, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x85, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x86, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x87, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x88, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x89, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x8A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x8B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x8C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x8D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x8E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x8F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x90, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x91, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x92, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x93, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x94, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x95, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x96, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x97, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x98, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x99, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x9A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x9B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x9C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x9D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x9E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0x9F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xA0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xA1, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xA2, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xA3, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xA4, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xA5, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xA6, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xA7, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xA8, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xA9, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xAA, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xAB, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xAC, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xAD, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xAE, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xAF, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xB0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xB1, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xB2, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xB3, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xB4, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xB5, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xB6, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xB7, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xB8, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xB9, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xBA, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xBB, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xBC, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xBD, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xBE, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xBF, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xC0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .word UNK05_021F8DD4 + .byte 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 + .word UNK05_021F8D8C + .byte 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00 + .word UNK05_021F8ED0 + .byte 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00 + .word UNK05_021F8ED0 + .byte 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00 + .word UNK05_021F8DBC + .byte 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00 + .word UNK05_021F8DBC + .byte 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 + .word UNK05_021F8E34 + .byte 0xC9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 + .word UNK05_021F8E34 + .byte 0xCA, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xCB, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word UNK05_021F8F0C + .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FC3EC +UNK05_021FC3EC: ; 0x021FC3EC + .byte 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FC3FC +UNK05_021FC3FC: ; 0x021FC3FC + .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00 + + .global UNK05_021FC40C +UNK05_021FC40C: ; 0x021FC40C + .word MOD05_021F14BC, MOD05_021F150C, MOD05_021F1544, MOD05_021F1608 + + .global UNK05_021FC41C +UNK05_021FC41C: ; 0x021FC41C + .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + + .global UNK05_021FC42C +UNK05_021FC42C: ; 0x021FC42C + .byte 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FC43C +UNK05_021FC43C: ; 0x021FC43C + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FC458 +UNK05_021FC458: ; 0x021FC458 + .byte 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FC474 +UNK05_021FC474: ; 0x021FC474 + .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FC494 +UNK05_021FC494: ; 0x021FC494 + .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FC4B4 +UNK05_021FC4B4: ; 0x021FC4B4 + .word MOD05_021F075C, MOD05_021F0790, MOD05_021F0790, MOD05_021F07CC + .word MOD05_021F0808, MOD05_021F0844, MOD05_021F0880, MOD05_021F0904 + .word MOD05_021F0980 + + .global UNK05_021FC4D8 +UNK05_021FC4D8: ; 0x021FC4D8 + .word MOD05_021F12C0, MOD05_021F0E98, MOD05_021F0E98, MOD05_021F0F0C + .word MOD05_021F0F60, MOD05_021F1008, MOD05_021F1008, MOD05_021F1008 + .word MOD05_021F134C, MOD05_021F13C8 + + .global UNK05_021FC500 +UNK05_021FC500: ; 0x021FC500 + .word MOD05_021F0E28, MOD05_021F0E98, MOD05_021F0E98, MOD05_021F0F0C + .word MOD05_021F0F60, MOD05_021F0FB4, MOD05_021F1008, MOD05_021F10A8 + .word MOD05_021F1140, MOD05_021F11E0 + + .global UNK05_021FC528 +UNK05_021FC528: ; 0x021FC528 + .word MOD05_021F0A78, MOD05_021F0790, MOD05_021F0790, MOD05_021F07CC + .word MOD05_021F0808, MOD05_021F0844, MOD05_021F0880, MOD05_021F0904 + .word MOD05_021F0980, MOD05_021F0AB4 diff --git a/arm9/modules/05/asm/mod05_021F1B0C.s b/arm9/modules/05/asm/mod05_021F1B0C.s new file mode 100644 index 00000000..79bd0475 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F1B0C.s @@ -0,0 +1,236 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F1B0C +MOD05_021F1B0C: ; 0x021F1B0C + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD05_021F1C34 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02058BB4 + add sp, #0xc + pop {r3, r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1B2C +MOD05_021F1B2C: ; 0x021F1B2C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + ldr r4, [r0] + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F1B54 + cmp r4, #0 + beq _021F1B54 + add r0, r5, #0 + bl MOD05_021F1C48 + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_0201F854 +_021F1B54: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1B58 +MOD05_021F1B58: ; 0x021F1B58 + ldr r3, _021F1B5C ; =MOD05_021F1CA4 + bx r3 + .balign 4, 0 +_021F1B5C: .word MOD05_021F1CA4 + + thumb_func_start MOD05_021F1B60 +MOD05_021F1B60: ; 0x021F1B60 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F1B76 + add r1, r4, #4 + bl MOD05_021F20D8 +_021F1B76: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2060 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0x14 + bl FUN_02058410 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1B8C +MOD05_021F1B8C: ; 0x021F1B8C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + add r4, r0, #0 + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F1BCC + ldr r0, [r4] + cmp r0, #0 + bne _021F1BAE + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F1FC8 +_021F1BAE: + ldr r0, [r4] + cmp r0, #0 + beq _021F1BCC + add r1, r4, #4 + bl MOD05_021F20F8 + ldr r1, [r4] + add r0, r5, #0 + bl MOD05_021F2F48 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0x14 + bl FUN_02058418 +_021F1BCC: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1BD0 +MOD05_021F1BD0: ; 0x021F1BD0 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD05_021F1C34 + mov r1, #0 + mov r0, #6 + lsl r0, r0, #0xe + str r0, [sp, #4] + str r1, [sp] + str r1, [sp, #8] + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02058BB4 + add sp, #0xc + pop {r3, r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1BF4 +MOD05_021F1BF4: ; 0x021F1BF4 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + ldr r4, [r0] + add r0, r5, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F1C12 + cmp r4, #0 + beq _021F1C12 + add r0, r5, #0 + bl MOD05_021F1C48 +_021F1C12: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F1C14 +MOD05_021F1C14: ; 0x021F1C14 + ldr r3, _021F1C18 ; =MOD05_021F1CA4 + bx r3 + .balign 4, 0 +_021F1C18: .word MOD05_021F1CA4 + + thumb_func_start MOD05_021F1C1C +MOD05_021F1C1C: ; 0x021F1C1C + ldr r3, _021F1C20 ; =FUN_02058628 + bx r3 + .balign 4, 0 +_021F1C20: .word FUN_02058628 + + thumb_func_start MOD05_021F1C24 +MOD05_021F1C24: ; 0x021F1C24 + push {r3, lr} + bl FUN_02058628 + bl MOD05_021F1C30 + pop {r3, pc} + + thumb_func_start MOD05_021F1C30 +MOD05_021F1C30: ; 0x021F1C30 + ldr r0, [r0] + bx lr + + thumb_func_start MOD05_021F1C34 +MOD05_021F1C34: ; 0x021F1C34 + push {r4, lr} + add r4, r0, #0 + mov r1, #0x10 + bl FUN_02058604 + add r1, r0, #0 + add r0, r4, #0 + bl MOD05_021F1FC8 + pop {r4, pc} + + thumb_func_start MOD05_021F1C48 +MOD05_021F1C48: ; 0x021F1C48 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02058628 + ldr r4, [r0] + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2F48 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F1C64 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F1C64 +MOD05_021F1C64: ; 0x021F1C64 + push {r4, r5, r6, lr} + mov r4, #1 + add r6, r1, #0 + lsl r1, r4, #9 + add r5, r0, #0 + bl FUN_0205842C + cmp r0, #1 + bne _021F1C78 + mov r4, #0 +_021F1C78: + mov r1, #1 + add r0, r5, #0 + lsl r1, r1, #0xc + bl FUN_0205842C + cmp r0, #1 + bne _021F1C96 + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0xc + bl FUN_0205842C + cmp r0, #0 + bne _021F1C96 + mov r4, #0 +_021F1C96: + lsl r1, r4, #0x18 + add r0, r6, #0 + lsr r1, r1, #0x18 + bl FUN_0201F80C + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1CA4 +MOD05_021F1CA4: ; 0x021F1CA4 + push {r4, lr} + add r4, r0, #0 + bl FUN_02058628 + add r1, r0, #0 + add r0, r4, #0 + bl MOD05_021F2060 + pop {r4, pc} + .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021F1CB8.s b/arm9/modules/05/asm/mod05_021F1CB8.s new file mode 100644 index 00000000..11378412 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F1CB8.s @@ -0,0 +1,306 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F1CB8 +MOD05_021F1CB8: ; 0x021F1CB8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r1, #0 + mov r1, #1 + add r5, r0, #0 + add r6, r2, #0 + add r7, r3, #0 + bl FUN_02058390 + cmp r0, #0 + beq _021F1CD2 + bl GF_AssertFail +_021F1CD2: + add r0, r5, #0 + bl MOD05_021F1D68 + add r0, r5, #0 + bl FUN_02058368 + str r0, [sp, #0x10] + add r0, r5, #0 + bl FUN_0205839C + sub r0, r0, #1 + str r0, [sp, #0xc] + add r0, r5, #0 + bl FUN_020583A0 + str r4, [sp] + str r6, [sp, #4] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + add r1, r5, #0 + str r7, [sp, #8] + bl MOD05_021F1F04 + add r0, r5, #0 + mov r1, #4 + bl MOD05_021F3780 + add r4, r0, #0 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_020583A4 + ldr r1, _021F1D28 ; =UNK05_021F8B84 + add r0, r4, #0 + ldr r1, [r1] + bl MOD05_021F3810 + add r0, r5, #0 + mov r1, #1 + bl FUN_0205837C + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 +_021F1D28: .word UNK05_021F8B84 + + thumb_func_start MOD05_021F1D2C +MOD05_021F1D2C: ; 0x021F1D2C + push {r4, lr} + add r4, r0, #0 + bl FUN_020587E0 + cmp r0, #1 + beq _021F1D3C + bl GF_AssertFail +_021F1D3C: + add r0, r4, #0 + bl FUN_020583A0 + bl MOD05_021F1F58 + add r0, r4, #0 + bl FUN_020583AC + bl MOD05_021F379C + add r0, r4, #0 + mov r1, #0 + bl FUN_020583A4 + add r0, r4, #0 + mov r1, #1 + bl FUN_02058384 + add r0, r4, #0 + bl MOD05_021F1D80 + pop {r4, pc} + + thumb_func_start MOD05_021F1D68 +MOD05_021F1D68: ; 0x021F1D68 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x51 + mov r1, #4 + bl NARC_ctor + add r1, r0, #0 + add r0, r4, #0 + bl FUN_020583F0 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1D80 +MOD05_021F1D80: ; 0x021F1D80 + push {r3, lr} + bl FUN_020583F4 + bl NARC_dtor + pop {r3, pc} + + thumb_func_start MOD05_021F1D8C +MOD05_021F1D8C: ; 0x021F1D8C + push {r4, lr} + add r4, r0, #0 + bl FUN_02058578 + mov r1, #4 + bl FUN_02058390 + cmp r0, #0 + bne _021F1DC6 + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xe + bl FUN_02058424 + cmp r0, #0 + beq _021F1DC6 + add r0, r4, #0 + bl FUN_02058920 + cmp r0, #0 + beq _021F1DC0 + add r0, r4, #0 + bl FUN_02058AB4 + cmp r0, #0 + beq _021F1DC6 +_021F1DC0: + add r0, r4, #0 + bl FUN_020586A0 +_021F1DC6: + pop {r4, pc} + + thumb_func_start MOD05_021F1DC8 +MOD05_021F1DC8: ; 0x021F1DC8 + push {r3, lr} + bl FUN_02058458 + bl MOD05_021F1DD4 + pop {r3, pc} + + thumb_func_start MOD05_021F1DD4 +MOD05_021F1DD4: ; 0x021F1DD4 + push {r3, lr} + ldr r3, _021F1DF4 ; =UNK05_021F9A9C + ldr r1, _021F1DF8 ; =0x0000FFFF +_021F1DDA: + ldr r2, [r3] + cmp r2, r0 + bne _021F1DE4 + add r0, r3, #0 + pop {r3, pc} +_021F1DE4: + add r3, #8 + ldr r2, [r3] + cmp r2, r1 + bne _021F1DDA + bl GF_AssertFail + mov r0, #0 + pop {r3, pc} + .balign 4, 0 +_021F1DF4: .word UNK05_021F9A9C +_021F1DF8: .word 0x0000FFFF + + thumb_func_start MOD05_021F1DFC +MOD05_021F1DFC: ; 0x021F1DFC + push {r4, lr} + add r4, r0, #0 + bl FUN_02058920 + cmp r0, #1 + bne _021F1E16 + add r0, r4, #0 + bl FUN_02058AB4 + cmp r0, #0 + bne _021F1E16 + mov r0, #1 + pop {r4, pc} +_021F1E16: + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #8 + bl FUN_02058424 + cmp r0, #0 + beq _021F1E28 + mov r0, #1 + pop {r4, pc} +_021F1E28: + mov r0, #0 + pop {r4, pc} + + thumb_func_start MOD05_021F1E2C +MOD05_021F1E2C: ; 0x021F1E2C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r2, #0 + bl FUN_020583F4 + add r1, r4, #0 + add r6, r0, #0 + bl NARC_GetMemberSize + add r1, r0, #0 + cmp r5, #1 + bne _021F1E4C + mov r0, #4 + bl AllocFromHeap + b _021F1E52 +_021F1E4C: + mov r0, #4 + bl AllocFromHeapAtEnd +_021F1E52: + add r5, r0, #0 + add r0, r6, #0 + add r1, r4, #0 + add r2, r5, #0 + bl NARC_ReadWholeMember + add r0, r5, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1E64 +MOD05_021F1E64: ; 0x021F1E64 + push {r3, r4, r5, lr} + sub sp, #0x30 + add r4, r1, #0 + add r5, r0, #0 + add r1, sp, #0x24 + bl FUN_02058B5C + add r0, r5, #0 + add r1, sp, #0x18 + bl FUN_02058B84 + add r0, r5, #0 + add r1, sp, #0xc + bl FUN_02058BA4 + add r0, r5, #0 + add r1, sp, #0 + bl FUN_02058BC4 + ldr r1, [sp, #0x24] + ldr r0, [sp, #0x18] + ldr r2, [sp, #0xc] + add r0, r1, r0 + ldr r3, [sp] + add r0, r2, r0 + add r0, r3, r0 + str r0, [r4] + ldr r1, [sp, #0x28] + ldr r0, [sp, #0x1c] + ldr r2, [sp, #0x10] + add r0, r1, r0 + ldr r3, [sp, #4] + add r0, r2, r0 + add r0, r3, r0 + str r0, [r4, #4] + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x20] + ldr r2, [sp, #0x14] + add r0, r1, r0 + ldr r3, [sp, #8] + add r0, r2, r0 + add r0, r3, r0 + str r0, [r4, #8] + add sp, #0x30 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1EC0 +MOD05_021F1EC0: ; 0x021F1EC0 + push {r4, lr} + add r4, r0, #0 + bl FUN_020584AC + add r0, r4, #0 + bl FUN_02058884 + cmp r0, #1 + bne _021F1ED8 + add r0, r4, #0 + bl FUN_020586A0 +_021F1ED8: + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1EDC +MOD05_021F1EDC: ; 0x021F1EDC + push {r4, lr} + mov r1, #1 + add r4, r0, #0 + bl FUN_0205889C + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0x14 + bl FUN_02058410 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1EF4 +MOD05_021F1EF4: ; 0x021F1EF4 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F1EF8 +MOD05_021F1EF8: ; 0x021F1EF8 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F1EFC +MOD05_021F1EFC: ; 0x021F1EFC + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F1F00 +MOD05_021F1F00: ; 0x021F1F00 + bx lr + .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021F1F04.s b/arm9/modules/05/asm/mod05_021F1F04.s new file mode 100644 index 00000000..3f9086b5 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F1F04.s @@ -0,0 +1,3269 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F1F04 +MOD05_021F1F04: ; 0x021F1F04 + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + mov r2, #0x41 + add r5, r0, #0 + lsl r2, r2, #2 + str r1, [r5, r2] + add r1, r4, #0 + bl MOD05_021F2E40 + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0xa + bl MOD05_021F33B4 + mov r2, #4 + mov r1, #8 + ldr r0, [sp, #0x18] + str r2, [sp] + str r0, [sp, #4] + ldr r0, [sp, #0x1c] + add r3, r1, #0 + str r0, [sp, #8] + add r0, r5, #0 + bl MOD05_021F22E0 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2160 + ldr r1, [sp, #0x20] + ldr r2, _021F1F50 ; =UNK05_021F8B90 + ldr r3, _021F1F54 ; =UNK05_021F8B88 + add r0, r5, #0 + bl MOD05_021F25A0 + add sp, #0xc + pop {r4, r5, pc} + .balign 4, 0 +_021F1F50: .word UNK05_021F8B90 +_021F1F54: .word UNK05_021F8B88 + + thumb_func_start MOD05_021F1F58 +MOD05_021F1F58: ; 0x021F1F58 + push {r4, lr} + add r4, r0, #0 + bl MOD05_021F3458 + add r0, r4, #0 + bl MOD05_021F21AC + add r0, r4, #0 + bl MOD05_021F2D48 + bl MOD05_021F2E68 + add r0, r4, #0 + bl MOD05_021F2368 + pop {r4, pc} + + thumb_func_start MOD05_021F1F78 +MOD05_021F1F78: ; 0x021F1F78 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + mov r1, #0 + add r6, r2, #0 + add r7, r0, #0 + str r1, [r5] + bl MOD05_021F2F3C + add r1, r6, #0 + str r0, [sp] + bl MOD05_021F28E8 + add r4, r0, #0 + bne _021F1FA2 + add r0, r7, #0 + add r1, r5, #0 + add r2, r6, #0 + bl MOD05_021F211C + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F1FA2: + sub r0, r4, #3 + cmp r0, #1 + bhi _021F1FB8 + ldr r0, [sp] + add r1, r7, #0 + add r2, r5, #0 + add r3, r6, #0 + bl MOD05_021F32BC + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F1FB8: + add r0, r7, #0 + add r1, r6, #0 + bl MOD05_021F1FE0 + str r0, [r5] + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1FC8 +MOD05_021F1FC8: ; 0x021F1FC8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02058458 + add r2, r0, #0 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F1F78 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F1FE0 +MOD05_021F1FE0: ; 0x021F1FE0 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r0, #0 + add r5, r1, #0 + bl MOD05_021F2F3C + add r4, r0, #0 + bl MOD05_021F2D48 + add r7, r0, #0 + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F2AC8 + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F21CC + add r4, r0, #0 + bne _021F200C + bl GF_AssertFail +_021F200C: + add r0, r6, #0 + add r1, sp, #0 + bl MOD05_021F1E64 + add r0, r7, #0 + add r1, r4, #0 + add r2, sp, #0 + bl MOD05_021F2E70 + add r4, r0, #0 + bne _021F2026 + bl GF_AssertFail +_021F2026: + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F202C +MOD05_021F202C: ; 0x021F202C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + add r6, r2, #0 + bl FUN_0201F744 + mov r0, #0 + str r0, [r4] + add r0, r5, #0 + bl FUN_02058578 + add r1, r5, #0 + add r2, r6, #0 + bl MOD05_021F2284 + cmp r0, #0 + bne _021F205C + add r0, r5, #0 + bl MOD05_021F2F3C + add r1, r6, #0 + bl MOD05_021F2240 +_021F205C: + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2060 +MOD05_021F2060: ; 0x021F2060 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + bl MOD05_021F2150 + ldr r0, [r4] + cmp r0, #0 + beq _021F2092 + add r0, r5, #0 + bl FUN_02058458 + add r6, r0, #0 + bl FUN_0205C334 + cmp r0, #1 + bne _021F2088 + add r0, r5, #0 + bl FUN_0205C340 + add r6, r0, #0 +_021F2088: + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021F202C +_021F2092: + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F2094 +MOD05_021F2094: ; 0x021F2094 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + add r4, r2, #0 + bl MOD05_021F2150 + ldr r0, [r5] + cmp r0, #0 + beq _021F20AE + bl FUN_0201F744 + mov r0, #0 + str r0, [r5] +_021F20AE: + ldr r0, _021F20D4 ; =0x0000FFFF + cmp r4, r0 + beq _021F20D2 + add r0, r6, #0 + bl FUN_02058578 + add r1, r6, #0 + add r2, r4, #0 + bl MOD05_021F2284 + cmp r0, #0 + bne _021F20D2 + add r0, r6, #0 + bl MOD05_021F2F3C + add r1, r4, #0 + bl MOD05_021F2240 +_021F20D2: + pop {r4, r5, r6, pc} + .balign 4, 0 +_021F20D4: .word 0x0000FFFF + + thumb_func_start MOD05_021F20D8 +MOD05_021F20D8: ; 0x021F20D8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0201F820 + str r0, [r4] + add r0, r5, #0 + bl FUN_0201F844 + strh r0, [r4, #6] + add r0, r5, #0 + bl FUN_0201F880 + str r0, [r4, #8] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F20F8 +MOD05_021F20F8: ; 0x021F20F8 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r1, [r4] + add r5, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_0201F80C + ldrh r1, [r4, #6] + add r0, r5, #0 + bl FUN_0201F830 + ldr r1, [r4, #8] + add r0, r5, #0 + bl FUN_0201F86C + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F211C +MOD05_021F211C: ; 0x021F211C + push {r3, r4, r5, r6, r7, lr} + add r4, r2, #0 + add r6, r0, #0 + add r5, r1, #0 + bl MOD05_021F2F3C + add r1, r4, #0 + add r7, r0, #0 + bl MOD05_021F2460 + cmp r0, #0 + bne _021F2140 + add r0, r6, #0 + add r1, r4, #0 + bl MOD05_021F1FE0 + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_021F2140: + add r0, r7, #0 + add r1, r6, #0 + add r2, r5, #0 + add r3, r4, #0 + bl MOD05_021F32BC + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2150 +MOD05_021F2150: ; 0x021F2150 + push {r4, lr} + add r4, r0, #0 + bl MOD05_021F2F3C + add r1, r4, #0 + bl MOD05_021F32F8 + pop {r4, pc} + + thumb_func_start MOD05_021F2160 +MOD05_021F2160: ; 0x021F2160 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + mov r1, #0x28 + add r7, r0, #0 + mov r0, #4 + mul r1, r6 + bl AllocFromHeap + add r4, r0, #0 + add r0, r7, #0 + add r0, #0xe4 + str r4, [r0] + cmp r4, #0 + bne _021F2180 + bl GF_AssertFail +_021F2180: + mov r0, #4 + lsl r1, r6, #3 + bl AllocFromHeap + add r5, r0, #0 + add r7, #0xf4 + str r5, [r7] + cmp r5, #0 + bne _021F2196 + bl GF_AssertFail +_021F2196: + ldr r0, _021F21A8 ; =0x0000FFFF +_021F2198: + str r0, [r5] + str r4, [r5, #4] + add r5, #8 + add r4, #0x28 + sub r6, r6, #1 + bne _021F2198 + pop {r3, r4, r5, r6, r7, pc} + nop +_021F21A8: .word 0x0000FFFF + + thumb_func_start MOD05_021F21AC +MOD05_021F21AC: ; 0x021F21AC + push {r4, lr} + add r4, r0, #0 + bl MOD05_021F2260 + add r1, r4, #0 + add r1, #0xe4 + ldr r1, [r1] + mov r0, #4 + bl FreeToHeapExplicit + add r4, #0xf4 + ldr r1, [r4] + mov r0, #4 + bl FreeToHeapExplicit + pop {r4, pc} + + thumb_func_start MOD05_021F21CC +MOD05_021F21CC: ; 0x021F21CC + push {r4, r5, r6, lr} + add r2, r0, #0 + add r2, #0xf4 + ldr r4, [r2] + ldr r2, [r0, #4] + add r6, r4, #0 + add r5, r2, #0 +_021F21DA: + ldr r3, [r6] + cmp r3, r1 + bne _021F21E4 + ldr r0, [r6, #4] + pop {r4, r5, r6, pc} +_021F21E4: + add r6, #8 + sub r5, r5, #1 + bne _021F21DA + ldr r3, _021F2208 ; =0x0000FFFF +_021F21EC: + ldr r5, [r4] + cmp r5, r3 + bne _021F21FE + str r1, [r4] + ldr r2, [r4, #4] + bl MOD05_021F2ED0 + ldr r0, [r4, #4] + pop {r4, r5, r6, pc} +_021F21FE: + add r4, #8 + sub r2, r2, #1 + bne _021F21EC + mov r0, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 +_021F2208: .word 0x0000FFFF + + thumb_func_start MOD05_021F220C +MOD05_021F220C: ; 0x021F220C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r2, #0 + bl FUN_020583A0 + add r1, r0, #0 + add r1, #0xf4 + ldr r2, [r1] + ldr r1, [r0, #4] +_021F221E: + ldr r0, [r2] + cmp r0, r5 + bne _021F2234 + ldr r3, [r2, #4] + mov r2, #5 +_021F2228: + ldmia r3!, {r0, r1} + stmia r4!, {r0, r1} + sub r2, r2, #1 + bne _021F2228 + mov r0, #1 + pop {r3, r4, r5, pc} +_021F2234: + add r2, #8 + sub r1, r1, #1 + bne _021F221E + mov r0, #0 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2240 +MOD05_021F2240: ; 0x021F2240 + add r2, r0, #0 + add r2, #0xf4 + ldr r3, [r2] + ldr r2, [r0, #4] +_021F2248: + ldr r0, [r3] + cmp r0, r1 + bne _021F2254 + ldr r0, _021F225C ; =0x0000FFFF + str r0, [r3] + bx lr +_021F2254: + add r3, #8 + sub r2, r2, #1 + bne _021F2248 + bx lr + .balign 4, 0 +_021F225C: .word 0x0000FFFF + + thumb_func_start MOD05_021F2260 +MOD05_021F2260: ; 0x021F2260 + push {r3, r4} + add r1, r0, #0 + add r1, #0xf4 + ldr r4, [r1] + ldr r1, _021F2280 ; =0x0000FFFF + ldr r3, [r0, #4] + add r0, r1, #0 +_021F226E: + ldr r2, [r4] + cmp r2, r0 + beq _021F2276 + str r1, [r4] +_021F2276: + add r4, #8 + sub r3, r3, #1 + bne _021F226E + pop {r3, r4} + bx lr + .balign 4, 0 +_021F2280: .word 0x0000FFFF + + thumb_func_start MOD05_021F2284 +MOD05_021F2284: ; 0x021F2284 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + add r7, r2, #0 + bl FUN_02058368 + add r4, r0, #0 + add r0, r5, #0 + bl FUN_020583BC + str r0, [sp] +_021F229A: + ldr r0, [sp] + cmp r0, r6 + beq _021F22CE + bl FUN_02058830 + cmp r0, #1 + bne _021F22CE + ldr r0, [sp] + bl FUN_02058458 + add r5, r0, #0 + bl FUN_0205C334 + cmp r0, #1 + bne _021F22C0 + ldr r0, [sp] + bl FUN_0205C340 + add r5, r0, #0 +_021F22C0: + ldr r0, _021F22DC ; =0x0000FFFF + cmp r5, r0 + beq _021F22CE + cmp r5, r7 + bne _021F22CE + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F22CE: + add r0, sp, #0 + bl FUN_020583D4 + sub r4, r4, #1 + bne _021F229A + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F22DC: .word 0x0000FFFF + + thumb_func_start MOD05_021F22E0 +MOD05_021F22E0: ; 0x021F22E0 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + add r7, r3, #0 + mov r0, #4 + mov r1, #0x40 + lsl r2, r4, #0xc + add r3, r4, #0 + bl MOD05_021F5990 + add r1, r5, #0 + add r1, #0xf8 + str r0, [r1] + add r0, r5, #0 + bl MOD05_021F2614 + add r0, r5, #0 + add r1, r6, #0 + bl MOD05_021F2D80 + add r0, r5, #0 + sub r1, r4, r6 + bl MOD05_021F2D88 + mov r0, #4 + mov r1, #0x41 + lsl r2, r7, #7 + add r3, r7, #0 + bl MOD05_021F5990 + add r1, r5, #0 + add r1, #0xfc + str r0, [r1] + add r0, r5, #0 + bl MOD05_021F2750 + ldr r1, [sp, #0x18] + add r0, r5, #0 + bl MOD05_021F2D90 + ldr r1, [sp, #0x18] + add r0, r5, #0 + sub r1, r7, r1 + bl MOD05_021F2D98 + ldr r0, [sp, #0x1c] + mov r1, #4 + bl FUN_02020E90 + add r1, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D64 + add r0, r5, #0 + bl MOD05_021F288C + ldr r1, [sp, #0x20] + add r0, r5, #0 + bl MOD05_021F2DA0 + ldr r2, [sp, #0x1c] + ldr r1, [sp, #0x20] + add r0, r5, #0 + sub r1, r2, r1 + bl MOD05_021F2DA8 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F2368 +MOD05_021F2368: ; 0x021F2368 + push {r4, lr} + add r4, r0, #0 + add r0, #0xf8 + ldr r0, [r0] + bl MOD05_021F59EC + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + bl MOD05_021F59EC + add r0, r4, #0 + bl MOD05_021F2D6C + bl FUN_02020ED4 + pop {r4, pc} + .balign 4, 0 +_021F238C: + ldr r3, [r2] + cmp r3, r0 + bne _021F2396 + add r0, r2, #0 + bx lr +_021F2396: + add r2, #8 + ldr r3, [r2] + cmp r3, r1 + bne _021F238C + mov r0, #0 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F23A4 +MOD05_021F23A4: ; 0x021F23A4 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + add r4, r2, #0 + add r5, r0, #0 + add r0, r6, #0 + add r1, r4, #0 + add r7, r3, #0 + bl MOD05_021F5AA4 + cmp r0, #1 + bne _021F23BE + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F23BE: + ldr r2, [sp, #0x18] + add r0, r4, #0 + add r1, r7, #0 + bl _021F238C + add r7, r0, #0 + bne _021F23D0 + bl GF_AssertFail +_021F23D0: + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_020583F4 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r3, [r7, #4] + add r0, r6, #0 + add r1, r4, #0 + bl MOD05_021F5AE4 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F23F0 +MOD05_021F23F0: ; 0x021F23F0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, #0xf0 + add r4, r2, #0 + add r6, r1, #0 + ldr r0, [r0] + add r1, r4, #0 + add r7, r3, #0 + bl FUN_02020EF8 + cmp r0, #0 + bne _021F240C + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F240C: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F3084 + cmp r0, #0 + beq _021F241C + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F241C: + ldr r1, _021F2448 ; =0x0000FFFF + add r0, r4, #0 + add r2, r7, #0 + bl _021F238C + add r2, r0, #0 + bne _021F242E + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_021F242E: + ldr r2, [r2, #4] + add r0, r5, #0 + add r1, r4, #0 + add r3, r6, #0 + bl MOD05_021F2FD0 + cmp r0, #1 + bne _021F2442 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F2442: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + nop +_021F2448: .word 0x0000FFFF + + thumb_func_start MOD05_021F244C +MOD05_021F244C: ; 0x021F244C + push {r3, lr} + ldr r3, _021F245C ; =UNK05_021FA0AC + add r2, r1, #0 + mov r1, #0 + bl MOD05_021F23F0 + pop {r3, pc} + nop +_021F245C: .word UNK05_021FA0AC + + thumb_func_start MOD05_021F2460 +MOD05_021F2460: ; 0x021F2460 + push {r3, lr} + ldr r3, _021F2470 ; =UNK05_021FA0AC + add r2, r1, #0 + mov r1, #1 + bl MOD05_021F23F0 + pop {r3, pc} + nop +_021F2470: .word UNK05_021FA0AC + + thumb_func_start MOD05_021F2474 +MOD05_021F2474: ; 0x021F2474 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r1, [r4] + ldr r0, _021F2494 ; =0x0000FFFF + cmp r1, r0 + beq _021F2492 + add r6, r0, #0 +_021F2484: + add r0, r5, #0 + bl MOD05_021F244C + add r4, r4, #4 + ldr r1, [r4] + cmp r1, r6 + bne _021F2484 +_021F2492: + pop {r4, r5, r6, pc} + .balign 4, 0 +_021F2494: .word 0x0000FFFF + + thumb_func_start MOD05_021F2498 +MOD05_021F2498: ; 0x021F2498 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2D54 + ldr r0, _021F24C0 ; =UNK05_021F9094 + add r1, r5, #0 + str r0, [sp] + add r1, #0xf8 + ldr r1, [r1] + ldr r3, _021F24C4 ; =0x0000FFFF + add r0, r5, #0 + add r2, r4, #0 + bl MOD05_021F23A4 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2628 + pop {r3, r4, r5, pc} + .balign 4, 0 +_021F24C0: .word UNK05_021F9094 +_021F24C4: .word 0x0000FFFF + + thumb_func_start MOD05_021F24C8 +MOD05_021F24C8: ; 0x021F24C8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2D54 + ldr r0, _021F24F0 ; =UNK05_021F9094 + add r1, r5, #0 + str r0, [sp] + add r1, #0xf8 + ldr r1, [r1] + ldr r3, _021F24F4 ; =0x0000FFFF + add r0, r5, #0 + add r2, r4, #0 + bl MOD05_021F23A4 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2670 + pop {r3, r4, r5, pc} + .balign 4, 0 +_021F24F0: .word UNK05_021F9094 +_021F24F4: .word 0x0000FFFF + + thumb_func_start MOD05_021F24F8 +MOD05_021F24F8: ; 0x021F24F8 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r1, [r4] + ldr r0, _021F2518 ; =0x0000FFFF + cmp r1, r0 + beq _021F2516 + add r6, r0, #0 +_021F2508: + add r0, r5, #0 + bl MOD05_021F2498 + add r4, r4, #4 + ldr r1, [r4] + cmp r1, r6 + bne _021F2508 +_021F2516: + pop {r4, r5, r6, pc} + .balign 4, 0 +_021F2518: .word 0x0000FFFF + + thumb_func_start MOD05_021F251C +MOD05_021F251C: ; 0x021F251C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2D5C + ldr r0, _021F2544 ; =UNK05_021F90E4 + add r1, r5, #0 + str r0, [sp] + add r1, #0xfc + ldr r1, [r1] + ldr r3, _021F2548 ; =0x0000FFFF + add r0, r5, #0 + add r2, r4, #0 + bl MOD05_021F23A4 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2764 + pop {r3, r4, r5, pc} + .balign 4, 0 +_021F2544: .word UNK05_021F90E4 +_021F2548: .word 0x0000FFFF + + thumb_func_start MOD05_021F254C +MOD05_021F254C: ; 0x021F254C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2D5C + ldr r0, _021F2574 ; =UNK05_021F90E4 + add r1, r5, #0 + str r0, [sp] + add r1, #0xfc + ldr r1, [r1] + ldr r3, _021F2578 ; =0x0000FFFF + add r0, r5, #0 + add r2, r4, #0 + bl MOD05_021F23A4 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F27AC + pop {r3, r4, r5, pc} + .balign 4, 0 +_021F2574: .word UNK05_021F90E4 +_021F2578: .word 0x0000FFFF + + thumb_func_start MOD05_021F257C +MOD05_021F257C: ; 0x021F257C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r1, [r4] + ldr r0, _021F259C ; =0x0000FFFF + cmp r1, r0 + beq _021F259A + add r6, r0, #0 +_021F258C: + add r0, r5, #0 + bl MOD05_021F251C + add r4, r4, #4 + ldr r1, [r4] + cmp r1, r6 + bne _021F258C +_021F259A: + pop {r4, r5, r6, pc} + .balign 4, 0 +_021F259C: .word 0x0000FFFF + + thumb_func_start MOD05_021F25A0 +MOD05_021F25A0: ; 0x021F25A0 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r2, #0 + add r6, r3, #0 + bl MOD05_021F2474 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F24F8 + add r0, r5, #0 + add r1, r6, #0 + bl MOD05_021F257C + pop {r4, r5, r6, pc} + .balign 4, 0 +_021F25C0: + stmia r0!, {r1} + sub r2, r2, #1 + bne _021F25C0 + bx lr + + thumb_func_start MOD05_021F25C8 +MOD05_021F25C8: ; 0x021F25C8 + push {r3, r4} +_021F25CA: + ldr r4, [r0] + cmp r4, r2 + bne _021F25D8 + str r1, [r0] + mov r0, #1 + pop {r3, r4} + bx lr +_021F25D8: + add r0, r0, #4 + sub r3, r3, #1 + bne _021F25CA + mov r0, #0 + pop {r3, r4} + bx lr +_021F25E4: + ldr r3, [r0] + cmp r3, r1 + bne _021F25EE + mov r0, #1 + bx lr +_021F25EE: + add r0, r0, #4 + sub r2, r2, #1 + bne _021F25E4 + mov r0, #0 + bx lr + + thumb_func_start MOD05_021F25F8 +MOD05_021F25F8: ; 0x021F25F8 + push {r3, r4} +_021F25FA: + ldr r4, [r0] + cmp r4, r1 + bne _021F2608 + str r2, [r0] + mov r0, #1 + pop {r3, r4} + bx lr +_021F2608: + add r0, r0, #4 + sub r3, r3, #1 + bne _021F25FA + mov r0, #0 + pop {r3, r4} + bx lr + + thumb_func_start MOD05_021F2614 +MOD05_021F2614: ; 0x021F2614 + push {r3, lr} + bl MOD05_021F2D78 + ldr r1, _021F2624 ; =0x0000FFFF + mov r2, #8 + bl _021F25C0 + pop {r3, pc} + .balign 4, 0 +_021F2624: .word 0x0000FFFF + + thumb_func_start MOD05_021F2628 +MOD05_021F2628: ; 0x021F2628 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2D84 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D78 + ldr r2, _021F2650 ; =0x0000FFFF + add r1, r4, #0 + add r3, r6, #0 + bl MOD05_021F25C8 + cmp r0, #0 + bne _021F264C + bl GF_AssertFail +_021F264C: + pop {r4, r5, r6, pc} + nop +_021F2650: .word 0x0000FFFF + + thumb_func_start MOD05_021F2654 +MOD05_021F2654: ; 0x021F2654 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2D84 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D78 + add r1, r4, #0 + add r2, r6, #0 + bl _021F25E4 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F2670 +MOD05_021F2670: ; 0x021F2670 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + bl MOD05_021F2D78 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D84 + lsl r4, r0, #2 + add r0, r5, #0 + bl MOD05_021F2D8C + add r3, r0, #0 + ldr r2, _021F26A0 ; =0x0000FFFF + add r0, r6, r4 + add r1, r7, #0 + bl MOD05_021F25C8 + cmp r0, #0 + bne _021F269E + bl GF_AssertFail +_021F269E: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F26A0: .word 0x0000FFFF + + thumb_func_start MOD05_021F26A4 +MOD05_021F26A4: ; 0x021F26A4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + bl MOD05_021F2D78 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D84 + lsl r4, r0, #2 + add r0, r5, #0 + bl MOD05_021F2D8C + add r2, r0, #0 + add r0, r6, r4 + add r1, r7, #0 + bl _021F25E4 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F26CC +MOD05_021F26CC: ; 0x021F26CC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + bl MOD05_021F2D78 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D84 + lsl r4, r0, #2 + add r0, r5, #0 + bl MOD05_021F2D8C + add r3, r0, #0 + ldr r2, _021F26F4 ; =0x0000FFFF + add r0, r6, r4 + add r1, r7, #0 + bl MOD05_021F25F8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F26F4: .word 0x0000FFFF + + thumb_func_start MOD05_021F26F8 +MOD05_021F26F8: ; 0x021F26F8 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + add r7, r0, #0 + add r0, r6, #0 + bl MOD05_021F2D54 + add r0, r6, #0 + bl MOD05_021F2D78 + add r4, r0, #0 + add r0, r6, #0 + bl MOD05_021F2D84 + lsl r0, r0, #2 + add r5, r4, r0 + add r0, r6, #0 + bl MOD05_021F2D8C + add r4, r0, #0 +_021F271E: + ldr r1, [r5] + ldr r0, _021F274C ; =0x0000FFFF + cmp r1, r0 + beq _021F2742 + add r0, r7, #0 + mov r2, #0 + bl MOD05_021F2B70 + cmp r0, #0 + bne _021F2742 + add r0, r6, #0 + add r0, #0xf8 + ldr r0, [r0] + ldr r1, [r5] + bl MOD05_021F5A74 + ldr r0, _021F274C ; =0x0000FFFF + str r0, [r5] +_021F2742: + add r5, r5, #4 + sub r4, r4, #1 + bne _021F271E + pop {r3, r4, r5, r6, r7, pc} + nop +_021F274C: .word 0x0000FFFF + + thumb_func_start MOD05_021F2750 +MOD05_021F2750: ; 0x021F2750 + push {r3, lr} + bl MOD05_021F2D7C + ldr r1, _021F2760 ; =0x0000FFFF + mov r2, #8 + bl _021F25C0 + pop {r3, pc} + .balign 4, 0 +_021F2760: .word 0x0000FFFF + + thumb_func_start MOD05_021F2764 +MOD05_021F2764: ; 0x021F2764 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2D94 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D7C + ldr r2, _021F278C ; =0x0000FFFF + add r1, r4, #0 + add r3, r6, #0 + bl MOD05_021F25C8 + cmp r0, #0 + bne _021F2788 + bl GF_AssertFail +_021F2788: + pop {r4, r5, r6, pc} + nop +_021F278C: .word 0x0000FFFF + + thumb_func_start MOD05_021F2790 +MOD05_021F2790: ; 0x021F2790 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2D94 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D7C + add r1, r4, #0 + add r2, r6, #0 + bl _021F25E4 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F27AC +MOD05_021F27AC: ; 0x021F27AC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + bl MOD05_021F2D7C + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D94 + lsl r4, r0, #2 + add r0, r5, #0 + bl MOD05_021F2D9C + add r3, r0, #0 + ldr r2, _021F27DC ; =0x0000FFFF + add r0, r6, r4 + add r1, r7, #0 + bl MOD05_021F25C8 + cmp r0, #0 + bne _021F27DA + bl GF_AssertFail +_021F27DA: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F27DC: .word 0x0000FFFF + + thumb_func_start MOD05_021F27E0 +MOD05_021F27E0: ; 0x021F27E0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + bl MOD05_021F2D7C + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D94 + lsl r4, r0, #2 + add r0, r5, #0 + bl MOD05_021F2D9C + add r2, r0, #0 + add r0, r6, r4 + add r1, r7, #0 + bl _021F25E4 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2808 +MOD05_021F2808: ; 0x021F2808 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + bl MOD05_021F2D7C + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D94 + lsl r4, r0, #2 + add r0, r5, #0 + bl MOD05_021F2D9C + add r3, r0, #0 + ldr r2, _021F2830 ; =0x0000FFFF + add r0, r6, r4 + add r1, r7, #0 + bl MOD05_021F25F8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F2830: .word 0x0000FFFF + + thumb_func_start MOD05_021F2834 +MOD05_021F2834: ; 0x021F2834 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + add r7, r0, #0 + add r0, r6, #0 + bl MOD05_021F2D5C + add r0, r6, #0 + bl MOD05_021F2D7C + add r4, r0, #0 + add r0, r6, #0 + bl MOD05_021F2D94 + lsl r0, r0, #2 + add r5, r4, r0 + add r0, r6, #0 + bl MOD05_021F2D9C + add r4, r0, #0 +_021F285A: + ldr r1, [r5] + ldr r0, _021F2888 ; =0x0000FFFF + cmp r1, r0 + beq _021F287E + add r0, r7, #0 + mov r2, #0 + bl MOD05_021F2BF8 + cmp r0, #0 + bne _021F287E + add r0, r6, #0 + add r0, #0xfc + ldr r0, [r0] + ldr r1, [r5] + bl MOD05_021F5A74 + ldr r0, _021F2888 ; =0x0000FFFF + str r0, [r5] +_021F287E: + add r5, r5, #4 + sub r4, r4, #1 + bne _021F285A + pop {r3, r4, r5, r6, r7, pc} + nop +_021F2888: .word 0x0000FFFF + + thumb_func_start MOD05_021F288C +MOD05_021F288C: ; 0x021F288C + push {r3, lr} + bl MOD05_021F2D74 + ldr r1, _021F289C ; =0x0000FFFF + mov r2, #0x20 + bl _021F25C0 + pop {r3, pc} + .balign 4, 0 +_021F289C: .word 0x0000FFFF + + thumb_func_start MOD05_021F28A0 +MOD05_021F28A0: ; 0x021F28A0 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2DA4 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D74 + ldr r2, _021F28C8 ; =0x0000FFFF + add r1, r4, #0 + add r3, r6, #0 + bl MOD05_021F25C8 + cmp r0, #0 + bne _021F28C4 + bl GF_AssertFail +_021F28C4: + pop {r4, r5, r6, pc} + nop +_021F28C8: .word 0x0000FFFF + + thumb_func_start MOD05_021F28CC +MOD05_021F28CC: ; 0x021F28CC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2DA4 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D74 + add r1, r4, #0 + add r2, r6, #0 + bl _021F25E4 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F28E8 +MOD05_021F28E8: ; 0x021F28E8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F28CC + cmp r0, #1 + bne _021F28FA + mov r0, #1 + pop {r3, r4, r5, pc} +_021F28FA: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F29E0 + cmp r0, #1 + bne _021F290A + mov r0, #2 + pop {r3, r4, r5, pc} +_021F290A: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F3084 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F2914 +MOD05_021F2914: ; 0x021F2914 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + bl MOD05_021F2D74 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2DA4 + lsl r4, r0, #2 + add r0, r5, #0 + bl MOD05_021F2DAC + add r3, r0, #0 + ldr r2, _021F2944 ; =0x0000FFFF + add r0, r6, r4 + add r1, r7, #0 + bl MOD05_021F25C8 + cmp r0, #0 + bne _021F2942 + bl GF_AssertFail +_021F2942: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F2944: .word 0x0000FFFF + + thumb_func_start MOD05_021F2948 +MOD05_021F2948: ; 0x021F2948 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + bl MOD05_021F2D74 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2DA4 + lsl r4, r0, #2 + add r0, r5, #0 + bl MOD05_021F2DAC + add r3, r0, #0 + ldr r2, _021F2970 ; =0x0000FFFF + add r0, r6, r4 + add r1, r7, #0 + bl MOD05_021F25F8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F2970: .word 0x0000FFFF + + thumb_func_start MOD05_021F2974 +MOD05_021F2974: ; 0x021F2974 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r1, #0 + str r0, [sp] + add r0, r6, #0 + bl MOD05_021F2D6C + str r0, [sp, #4] + add r0, r6, #0 + bl MOD05_021F2D74 + add r4, r0, #0 + add r0, r6, #0 + bl MOD05_021F2DA4 + lsl r0, r0, #2 + add r5, r4, r0 + add r0, r6, #0 + bl MOD05_021F2DAC + add r7, r0, #0 +_021F299E: + ldr r4, [r5] + ldr r0, _021F29DC ; =0x0000FFFF + cmp r4, r0 + beq _021F29D0 + ldr r0, [sp] + add r1, r4, #0 + mov r2, #0 + bl MOD05_021F2B10 + cmp r0, #0 + bne _021F29D0 + ldr r0, [sp, #4] + add r1, r4, #0 + bl FUN_02020FF0 + add r0, r6, #0 + add r1, r4, #0 + bl MOD05_021F3050 + add r0, r6, #0 + add r1, r4, #0 + bl MOD05_021F3204 + ldr r0, _021F29DC ; =0x0000FFFF + str r0, [r5] +_021F29D0: + add r5, r5, #4 + sub r7, r7, #1 + bne _021F299E + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021F29DC: .word 0x0000FFFF + + thumb_func_start MOD05_021F29E0 +MOD05_021F29E0: ; 0x021F29E0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + bl MOD05_021F2D74 + add r6, r0, #0 + add r0, r5, #0 + bl MOD05_021F2DA4 + lsl r4, r0, #2 + add r0, r5, #0 + bl MOD05_021F2DAC + add r2, r0, #0 + add r0, r6, r4 + add r1, r7, #0 + bl _021F25E4 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2A08 +MOD05_021F2A08: ; 0x021F2A08 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F28CC + cmp r0, #1 + bne _021F2A1A + mov r0, #0 + pop {r3, r4, r5, pc} +_021F2A1A: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F29E0 + cmp r0, #1 + bne _021F2A2A + mov r0, #1 + pop {r3, r4, r5, pc} +_021F2A2A: + mov r0, #2 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2A30 +MOD05_021F2A30: ; 0x021F2A30 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2654 + cmp r0, #1 + bne _021F2A42 + mov r0, #0 + pop {r3, r4, r5, pc} +_021F2A42: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F26A4 + cmp r0, #1 + bne _021F2A52 + mov r0, #1 + pop {r3, r4, r5, pc} +_021F2A52: + mov r0, #2 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2A58 +MOD05_021F2A58: ; 0x021F2A58 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2790 + cmp r0, #1 + bne _021F2A6A + mov r0, #0 + pop {r3, r4, r5, pc} +_021F2A6A: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F27E0 + cmp r0, #1 + bne _021F2A7A + mov r0, #1 + pop {r3, r4, r5, pc} +_021F2A7A: + mov r0, #2 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2A80 +MOD05_021F2A80: ; 0x021F2A80 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F28E8 + cmp r0, #0 + bne _021F2A96 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2460 +_021F2A96: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F2A98 +MOD05_021F2A98: ; 0x021F2A98 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2A30 + cmp r0, #2 + bne _021F2AAE + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F24C8 +_021F2AAE: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F2AB0 +MOD05_021F2AB0: ; 0x021F2AB0 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2A58 + cmp r0, #2 + bne _021F2AC6 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F254C +_021F2AC6: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F2AC8 +MOD05_021F2AC8: ; 0x021F2AC8 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + bl MOD05_021F2DE8 + add r1, r0, #0 + add r0, r5, #0 + bl MOD05_021F2A98 + add r0, r4, #0 + bl MOD05_021F2DF4 + add r1, r0, #0 + add r0, r5, #0 + bl MOD05_021F2AB0 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2A80 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F2AF4 +MOD05_021F2AF4: ; 0x021F2AF4 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F26F8 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2834 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2974 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F2B10 +MOD05_021F2B10: ; 0x021F2B10 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r1, #0 + mov r1, #0 + add r5, r2, #0 + str r1, [sp, #4] + str r1, [sp] + add r1, sp, #0 + add r2, sp, #4 + mov r3, #1 + add r7, r0, #0 + bl FUN_020580F4 + cmp r0, #1 + bne _021F2B6A +_021F2B2E: + cmp r5, #0 + beq _021F2B38 + ldr r0, [sp] + cmp r5, r0 + beq _021F2B5A +_021F2B38: + ldr r0, [sp] + bl FUN_02058458 + add r4, r0, #0 + bl FUN_0205C334 + cmp r0, #1 + bne _021F2B50 + ldr r0, [sp] + bl FUN_0205C340 + add r4, r0, #0 +_021F2B50: + cmp r4, r6 + bne _021F2B5A + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F2B5A: + add r0, r7, #0 + add r1, sp, #0 + add r2, sp, #4 + mov r3, #1 + bl FUN_020580F4 + cmp r0, #1 + beq _021F2B2E +_021F2B6A: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F2B70 +MOD05_021F2B70: ; 0x021F2B70 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r1, #0 + mov r1, #0 + add r5, r2, #0 + str r1, [sp, #4] + str r1, [sp] + add r1, sp, #0 + add r2, sp, #4 + mov r3, #1 + add r7, r0, #0 + bl FUN_020580F4 + cmp r0, #1 + bne _021F2BEE +_021F2B8E: + cmp r5, #0 + beq _021F2B98 + ldr r0, [sp] + cmp r5, r0 + beq _021F2BDE +_021F2B98: + ldr r0, [sp] + bl FUN_02058458 + add r4, r0, #0 + ldr r0, _021F2BF4 ; =0x0000FFFF + cmp r4, r0 + beq _021F2BDE + ldr r0, [sp] + bl MOD05_021F1DC8 + ldr r0, [r0, #4] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #1 + bne _021F2BDE + add r0, r4, #0 + bl FUN_0205C334 + cmp r0, #1 + bne _021F2BC8 + ldr r0, [sp] + bl FUN_0205C340 + add r4, r0, #0 +_021F2BC8: + ldr r0, _021F2BF4 ; =0x0000FFFF + cmp r4, r0 + beq _021F2BDE + add r0, r4, #0 + bl MOD05_021F2DE8 + cmp r6, r0 + bne _021F2BDE + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F2BDE: + add r0, r7, #0 + add r1, sp, #0 + add r2, sp, #4 + mov r3, #1 + bl FUN_020580F4 + cmp r0, #1 + beq _021F2B8E +_021F2BEE: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F2BF4: .word 0x0000FFFF + + thumb_func_start MOD05_021F2BF8 +MOD05_021F2BF8: ; 0x021F2BF8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r1, #0 + mov r1, #0 + add r5, r2, #0 + str r1, [sp, #4] + str r1, [sp] + add r1, sp, #0 + add r2, sp, #4 + mov r3, #1 + add r7, r0, #0 + bl FUN_020580F4 + cmp r0, #1 + bne _021F2C74 +_021F2C16: + cmp r5, #0 + beq _021F2C20 + ldr r0, [sp] + cmp r0, r5 + beq _021F2C64 +_021F2C20: + ldr r0, _021F2C7C ; =0x0000FFFF + cmp r4, r0 + beq _021F2C64 + ldr r0, [sp] + bl MOD05_021F1DC8 + ldr r0, [r0, #4] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #1 + bne _021F2C64 + ldr r0, [sp] + bl FUN_02058458 + add r4, r0, #0 + bl FUN_0205C334 + cmp r0, #1 + bne _021F2C4E + ldr r0, [sp] + bl FUN_0205C340 + add r4, r0, #0 +_021F2C4E: + ldr r0, _021F2C7C ; =0x0000FFFF + cmp r4, r0 + beq _021F2C64 + add r0, r4, #0 + bl MOD05_021F2DF4 + cmp r6, r0 + bne _021F2C64 + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F2C64: + add r0, r7, #0 + add r1, sp, #0 + add r2, sp, #4 + mov r3, #1 + bl FUN_020580F4 + cmp r0, #1 + beq _021F2C16 +_021F2C74: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021F2C7C: .word 0x0000FFFF + + thumb_func_start MOD05_021F2C80 +MOD05_021F2C80: ; 0x021F2C80 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r1, #0 + add r6, r0, #0 + add r7, r2, #0 + bl FUN_020583A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD05_021F2DE8 + str r0, [sp] + ldr r1, [sp] + add r0, r4, #0 + bl MOD05_021F2A30 + cmp r0, #1 + bne _021F2CC6 + ldr r1, [sp] + add r0, r6, #0 + add r2, r7, #0 + bl MOD05_021F2B70 + cmp r0, #0 + bne _021F2CC6 + add r0, r4, #0 + add r0, #0xf8 + ldr r0, [r0] + ldr r1, [sp] + bl MOD05_021F5A74 + ldr r1, [sp] + add r0, r4, #0 + bl MOD05_021F26CC +_021F2CC6: + add r0, r5, #0 + bl MOD05_021F2DF4 + str r0, [sp, #4] + ldr r1, [sp, #4] + add r0, r4, #0 + bl MOD05_021F2A58 + cmp r0, #1 + bne _021F2CFC + ldr r1, [sp, #4] + add r0, r6, #0 + add r2, r7, #0 + bl MOD05_021F2BF8 + cmp r0, #0 + bne _021F2CFC + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + ldr r1, [sp, #4] + bl MOD05_021F5A74 + ldr r1, [sp, #4] + add r0, r4, #0 + bl MOD05_021F2808 +_021F2CFC: + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F2A08 + cmp r0, #1 + bne _021F2D3A + add r0, r6, #0 + add r1, r5, #0 + add r2, r7, #0 + bl MOD05_021F2B10 + cmp r0, #0 + bne _021F2D3A + add r0, r4, #0 + bl MOD05_021F2D6C + add r1, r5, #0 + bl FUN_02020FF0 + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F2948 + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F3050 + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F3204 +_021F2D3A: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2D40 +MOD05_021F2D40: ; 0x021F2D40 + add r0, #0xe0 + str r1, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F2D48 +MOD05_021F2D48: ; 0x021F2D48 + add r0, #0xe0 + ldr r0, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F2D50 +MOD05_021F2D50: ; 0x021F2D50 + str r1, [r0, #4] + bx lr + + thumb_func_start MOD05_021F2D54 +MOD05_021F2D54: ; 0x021F2D54 + add r0, #0xe8 + ldr r0, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F2D5C +MOD05_021F2D5C: ; 0x021F2D5C + add r0, #0xec + ldr r0, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F2D64 +MOD05_021F2D64: ; 0x021F2D64 + add r0, #0xf0 + str r1, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F2D6C +MOD05_021F2D6C: ; 0x021F2D6C + add r0, #0xf0 + ldr r0, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F2D74 +MOD05_021F2D74: ; 0x021F2D74 + add r0, #0x60 + bx lr + + thumb_func_start MOD05_021F2D78 +MOD05_021F2D78: ; 0x021F2D78 + add r0, #0x20 + bx lr + + thumb_func_start MOD05_021F2D7C +MOD05_021F2D7C: ; 0x021F2D7C + add r0, #0x40 + bx lr + + thumb_func_start MOD05_021F2D80 +MOD05_021F2D80: ; 0x021F2D80 + str r1, [r0, #8] + bx lr + + thumb_func_start MOD05_021F2D84 +MOD05_021F2D84: ; 0x021F2D84 + ldr r0, [r0, #8] + bx lr + + thumb_func_start MOD05_021F2D88 +MOD05_021F2D88: ; 0x021F2D88 + str r1, [r0, #0xc] + bx lr + + thumb_func_start MOD05_021F2D8C +MOD05_021F2D8C: ; 0x021F2D8C + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start MOD05_021F2D90 +MOD05_021F2D90: ; 0x021F2D90 + str r1, [r0, #0x10] + bx lr + + thumb_func_start MOD05_021F2D94 +MOD05_021F2D94: ; 0x021F2D94 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start MOD05_021F2D98 +MOD05_021F2D98: ; 0x021F2D98 + str r1, [r0, #0x14] + bx lr + + thumb_func_start MOD05_021F2D9C +MOD05_021F2D9C: ; 0x021F2D9C + ldr r0, [r0, #0x14] + bx lr + + thumb_func_start MOD05_021F2DA0 +MOD05_021F2DA0: ; 0x021F2DA0 + str r1, [r0, #0x18] + bx lr + + thumb_func_start MOD05_021F2DA4 +MOD05_021F2DA4: ; 0x021F2DA4 + ldr r0, [r0, #0x18] + bx lr + + thumb_func_start MOD05_021F2DA8 +MOD05_021F2DA8: ; 0x021F2DA8 + str r1, [r0, #0x1c] + bx lr + + thumb_func_start MOD05_021F2DAC +MOD05_021F2DAC: ; 0x021F2DAC + ldr r0, [r0, #0x1c] + bx lr + + thumb_func_start MOD05_021F2DB0 +MOD05_021F2DB0: ; 0x021F2DB0 + mov r3, #0x41 + lsl r3, r3, #2 + ldr r0, [r0, r3] + ldr r3, _021F2DBC ; =MOD05_021F1E2C + bx r3 + nop +_021F2DBC: .word MOD05_021F1E2C + + thumb_func_start MOD05_021F2DC0 +MOD05_021F2DC0: ; 0x021F2DC0 + push {r3, lr} + ldr r3, _021F2DE0 ; =UNK05_021FAC6C + ldr r1, _021F2DE4 ; =0x0000FFFF +_021F2DC6: + ldr r2, [r3] + cmp r2, r0 + bne _021F2DD0 + add r0, r3, #0 + pop {r3, pc} +_021F2DD0: + add r3, #0x10 + ldr r2, [r3] + cmp r2, r1 + bne _021F2DC6 + bl GF_AssertFail + mov r0, #0 + pop {r3, pc} + .balign 4, 0 +_021F2DE0: .word UNK05_021FAC6C +_021F2DE4: .word 0x0000FFFF + + thumb_func_start MOD05_021F2DE8 +MOD05_021F2DE8: ; 0x021F2DE8 + push {r3, lr} + bl MOD05_021F2DC0 + ldr r0, [r0, #4] + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2DF4 +MOD05_021F2DF4: ; 0x021F2DF4 + push {r3, lr} + bl MOD05_021F2DC0 + ldr r0, [r0, #8] + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2E00 +MOD05_021F2E00: ; 0x021F2E00 + push {r3, lr} + bl MOD05_021F2DC0 + ldr r0, [r0, #0xc] + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2E0C +MOD05_021F2E0C: ; 0x021F2E0C + push {r3, lr} + cmp r1, #1 + bne _021F2E1C + mov r1, #1 + lsl r1, r1, #0x16 + bl FUN_02058410 + pop {r3, pc} +_021F2E1C: + mov r1, #1 + lsl r1, r1, #0x16 + bl FUN_02058418 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2E28 +MOD05_021F2E28: ; 0x021F2E28 + push {r3, lr} + mov r1, #1 + lsl r1, r1, #0x16 + bl FUN_02058424 + cmp r0, #0 + beq _021F2E3A + mov r0, #1 + pop {r3, pc} +_021F2E3A: + mov r0, #0 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2E40 +MOD05_021F2E40: ; 0x021F2E40 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #4 + add r4, r1, #0 + str r0, [sp, #4] + add r0, sp, #0 + str r4, [sp] + bl FUN_0201F1B4 + add r1, r0, #0 + add r0, r5, #0 + bl MOD05_021F2D40 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2D50 + add sp, #8 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F2E68 +MOD05_021F2E68: ; 0x021F2E68 + ldr r3, _021F2E6C ; =FUN_0201F23C + bx r3 + .balign 4, 0 +_021F2E6C: .word FUN_0201F23C + + thumb_func_start MOD05_021F2E70 +MOD05_021F2E70: ; 0x021F2E70 + push {r4, lr} + sub sp, #0x20 + str r0, [sp] + str r1, [sp, #4] + ldmia r2!, {r0, r1} + add r3, sp, #8 + stmia r3!, {r0, r1} + ldr r0, [r2] + add r2, sp, #0x14 + str r0, [r3] + ldr r3, _021F2ECC ; =0UNK05_021FC550 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + add r0, sp, #0 + bl FUN_0201F6E8 + add r4, r0, #0 + beq _021F2EC4 + mov r1, #0 + bl FUN_0201F80C + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F830 + add r0, r4, #0 + mov r1, #0 + bl FUN_0201F890 + add r0, r4, #0 + bl FUN_0201F8E0 + mov r1, #1 + bl NNS_G3dMdlSetMdlFogEnableFlagAll + add r0, r4, #0 + bl FUN_0201F8E0 + bl MOD05_021DB5EC +_021F2EC4: + add r0, r4, #0 + add sp, #0x20 + pop {r4, pc} + nop +_021F2ECC: .word UNK05_021FC550 + + thumb_func_start MOD05_021F2ED0 +MOD05_021F2ED0: ; 0x021F2ED0 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + add r0, r5, #0 + add r4, r2, #0 + bl MOD05_021F2DE8 + add r1, r0, #0 + add r0, r6, #0 + add r0, #0xf8 + ldr r0, [r0] + bl MOD05_021F5A90 + str r0, [r4] + add r0, r5, #0 + bl MOD05_021F2DF4 + add r1, r0, #0 + add r0, r6, #0 + add r0, #0xfc + ldr r0, [r0] + bl MOD05_021F5A90 + add r1, r4, #0 + add r1, #0xc + bl FUN_0202227C + add r0, r6, #0 + bl MOD05_021F2D6C + add r1, r5, #0 + bl FUN_02021050 + add r6, r0, #0 + bl FUN_020210AC + str r0, [r4, #4] + add r0, r6, #0 + bl FUN_020211AC + str r0, [r4, #0x1c] + add r0, r6, #0 + bl FUN_020211BC + str r0, [r4, #0x20] + add r0, r6, #0 + bl FUN_020211CC + str r0, [r4, #0x24] + add r0, r5, #0 + bl MOD05_021F2E00 + str r0, [r4, #8] + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F2F3C +MOD05_021F2F3C: ; 0x021F2F3C + push {r3, lr} + bl FUN_02058578 + bl FUN_020583A0 + pop {r3, pc} + + thumb_func_start MOD05_021F2F48 +MOD05_021F2F48: ; 0x021F2F48 + push {r3, r4, lr} + sub sp, #0xc + add r4, r1, #0 + add r1, sp, #0 + bl MOD05_021F1E64 + mov r0, #6 + ldr r1, [sp, #8] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, sp, #0 + bl FUN_0201F7C8 + mov r0, #0 + add sp, #0xc + pop {r3, r4, pc} + + thumb_func_start MOD05_021F2F6C +MOD05_021F2F6C: ; 0x021F2F6C + push {r4, r5, r6, lr} + mov r4, #1 + add r6, r1, #0 + lsl r1, r4, #9 + add r5, r0, #0 + bl FUN_0205842C + cmp r0, #1 + bne _021F2F80 + mov r4, #0 +_021F2F80: + mov r1, #1 + add r0, r5, #0 + lsl r1, r1, #0xc + bl FUN_0205842C + cmp r0, #1 + bne _021F2F9E + mov r1, #2 + add r0, r5, #0 + lsl r1, r1, #0xc + bl FUN_0205842C + cmp r0, #0 + bne _021F2F9E + mov r4, #0 +_021F2F9E: + lsl r1, r4, #0x18 + add r0, r6, #0 + lsr r1, r1, #0x18 + bl FUN_0201F80C + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F2FAC +MOD05_021F2FAC: ; 0x021F2FAC + lsl r1, r0, #2 + ldr r0, _021F2FB4 ; =UNK05_021FC55C + ldr r0, [r0, r1] + bx lr + .balign 4, 0 +_021F2FB4: .word UNK05_021FC55C + + thumb_func_start MOD05_021F2FB8 +MOD05_021F2FB8: ; 0x021F2FB8 + lsl r1, r0, #2 + ldr r0, _021F2FC0 ; =UNK05_021FC56C + ldr r0, [r0, r1] + bx lr + .balign 4, 0 +_021F2FC0: .word UNK05_021FC56C + + thumb_func_start MOD05_021F2FC4 +MOD05_021F2FC4: ; 0x021F2FC4 + lsl r1, r0, #2 + ldr r0, _021F2FCC ; =UNK05_021FC57C + ldr r0, [r0, r1] + bx lr + .balign 4, 0 +_021F2FCC: .word UNK05_021FC57C + + thumb_func_start MOD05_021F2FD0 +MOD05_021F2FD0: ; 0x021F2FD0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #1 + lsl r0, r0, #8 + ldr r4, [r5, r0] + mov r0, #4 + add r6, r1, #0 + ldrsh r1, [r4, r0] + mov r0, #2 + ldrsh r0, [r4, r0] + add r7, r2, #0 + str r3, [sp] + cmp r1, r0 + bge _021F2FFA + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0201F2C0 + cmp r0, #1 + bne _021F302C +_021F2FFA: + mov r2, #0 + ldrsh r3, [r4, r2] + ldr r0, [r4, #0xc] + cmp r3, #0 + ble _021F3024 +_021F3004: + ldr r1, [r0, #0xc] + cmp r1, #0 + bne _021F301C + add r5, #0xf0 + ldr r1, [r5] + str r1, [r0, #0xc] + ldr r1, [sp] + str r1, [r0, #8] + str r6, [r0, #4] + str r7, [r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F301C: + add r2, r2, #1 + add r0, #0x10 + cmp r2, r3 + blt _021F3004 +_021F3024: + bl GF_AssertFail + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F302C: + add r0, r5, #0 + add r1, r7, #0 + mov r2, #0 + bl MOD05_021F2DB0 + add r2, r0, #0 + ldr r3, [sp] + add r0, r5, #0 + add r1, r6, #0 + bl MOD05_021F317C + mov r0, #4 + ldrsh r0, [r4, r0] + add r0, r0, #1 + strh r0, [r4, #4] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F3050 +MOD05_021F3050: ; 0x021F3050 + push {r3, r4} + mov r2, #1 + lsl r2, r2, #8 + ldr r0, [r0, r2] + mov r3, #0 + ldrsh r4, [r0, r3] + ldr r2, [r0, #0xc] + cmp r4, #0 + ble _021F307E +_021F3062: + ldr r0, [r2, #4] + cmp r0, r1 + bne _021F3076 + ldr r0, [r2, #0xc] + cmp r0, #0 + beq _021F3076 + mov r0, #0 + str r0, [r2, #0xc] + pop {r3, r4} + bx lr +_021F3076: + add r3, r3, #1 + add r2, #0x10 + cmp r3, r4 + blt _021F3062 +_021F307E: + pop {r3, r4} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F3084 +MOD05_021F3084: ; 0x021F3084 + push {r3, r4} + mov r2, #1 + lsl r2, r2, #8 + ldr r0, [r0, r2] + mov r3, #0 + ldrsh r4, [r0, r3] + ldr r2, [r0, #0xc] + cmp r4, #0 + ble _021F30BC +_021F3096: + ldr r0, [r2, #4] + cmp r0, r1 + bne _021F30B4 + ldr r0, [r2, #0xc] + cmp r0, #0 + beq _021F30B4 + ldr r0, [r2, #8] + cmp r0, #0 + bne _021F30AE + mov r0, #3 + pop {r3, r4} + bx lr +_021F30AE: + mov r0, #4 + pop {r3, r4} + bx lr +_021F30B4: + add r3, r3, #1 + add r2, #0x10 + cmp r3, r4 + blt _021F3096 +_021F30BC: + mov r0, #0 + pop {r3, r4} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F30C4 +MOD05_021F30C4: ; 0x021F30C4 + push {r3, r4, r5, r6, r7, lr} + str r1, [sp] + mov r1, #1 + ldr r0, [sp] + lsl r1, r1, #8 + ldr r4, [r0, r1] + add r0, #0xe0 + ldr r0, [r0] + mov r6, #0 + ldr r5, [r4, #0xc] + bl FUN_0201F2C0 + cmp r0, #1 + beq _021F3178 + add r7, r4, #4 + b _021F310E +_021F30E4: + ldr r0, [r5, #0xc] + cmp r0, #0 + beq _021F310A + ldr r0, [sp] + ldr r1, [r5] + mov r2, #0 + bl MOD05_021F2DB0 + add r2, r0, #0 + ldr r0, [sp] + ldr r1, [r5, #4] + ldr r3, [r5, #8] + bl MOD05_021F317C + mov r0, #0 + str r0, [r5, #0xc] + ldrsh r0, [r7, r0] + add r0, r0, #1 + strh r0, [r7] +_021F310A: + add r5, #0x10 + add r6, r6, #1 +_021F310E: + mov r0, #4 + ldrsh r1, [r4, r0] + mov r0, #2 + ldrsh r0, [r4, r0] + cmp r1, r0 + bge _021F3122 + mov r0, #0 + ldrsh r0, [r4, r0] + cmp r6, r0 + blt _021F30E4 +_021F3122: + mov r6, #0 + ldrsh r0, [r4, r6] + ldr r7, [r4, #0xc] + sub r1, r0, #1 + cmp r1, #0 + ble _021F3174 + add r5, r7, #0 +_021F3130: + ldr r1, [r5, #0xc] + cmp r1, #0 + bne _021F3166 + add r2, r6, #1 + cmp r2, r0 + bge _021F3166 + lsl r1, r2, #4 + add r3, r7, r1 +_021F3140: + ldr r1, [r3, #0xc] + cmp r1, #0 + beq _021F315E + lsl r0, r2, #4 + add r3, r7, r0 + mov ip, r3 + add r2, r5, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r1, #0 + mov r0, ip + str r1, [r0, #0xc] + b _021F3166 +_021F315E: + add r2, r2, #1 + add r3, #0x10 + cmp r2, r0 + blt _021F3140 +_021F3166: + mov r0, #0 + ldrsh r0, [r4, r0] + add r6, r6, #1 + add r5, #0x10 + sub r1, r0, #1 + cmp r6, r1 + blt _021F3130 +_021F3174: + mov r0, #0 + strh r0, [r4, #4] +_021F3178: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F317C +MOD05_021F317C: ; 0x021F317C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + mov r0, #4 + str r0, [sp] + add r0, r5, #0 + add r0, #0xf0 + add r4, r1, #0 + add r6, r3, #0 + add r1, r2, #0 + ldr r0, [r0] + add r2, r4, #0 + mov r3, #1 + bl FUN_02020F54 + cmp r0, #0 + bne _021F31A2 + bl GF_AssertFail +_021F31A2: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F31C8 + cmp r6, #0 + bne _021F31BA + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F28A0 + add sp, #4 + pop {r3, r4, r5, r6, pc} +_021F31BA: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F2914 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F31C8 +MOD05_021F31C8: ; 0x021F31C8 + push {r4, r5, r6, lr} + mov r3, #1 + lsl r3, r3, #8 + ldr r3, [r0, r3] + mov r5, #1 + ldr r4, [r3, #0x10] + mov r2, #0 + strh r5, [r3, #6] + ldrsh r6, [r3, r2] + cmp r6, #0 + ble _021F31FC +_021F31DE: + ldr r5, [r4, #8] + cmp r5, #0 + bne _021F31F4 + add r0, #0xf0 + ldr r0, [r0] + str r0, [r4, #8] + str r1, [r4, #4] + mov r0, #0 + str r0, [r4] + strh r0, [r3, #6] + pop {r4, r5, r6, pc} +_021F31F4: + add r2, r2, #1 + add r4, #0xc + cmp r2, r6 + blt _021F31DE +_021F31FC: + bl GF_AssertFail + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F3204 +MOD05_021F3204: ; 0x021F3204 + push {r4, r5} + mov r2, #1 + lsl r2, r2, #8 + ldr r2, [r0, r2] + mov r0, #1 + ldr r4, [r2, #0x10] + mov r3, #0 + strh r0, [r2, #6] + ldrsh r5, [r2, r3] + cmp r5, #0 + ble _021F3236 +_021F321A: + ldr r0, [r4, #8] + cmp r0, #0 + beq _021F322E + ldr r0, [r4, #4] + cmp r0, r1 + bne _021F322E + mov r0, #0 + str r0, [r4, #8] + str r0, [r4] + b _021F3236 +_021F322E: + add r3, r3, #1 + add r4, #0xc + cmp r3, r5 + blt _021F321A +_021F3236: + mov r0, #0 + strh r0, [r2, #6] + pop {r4, r5} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F3240 +MOD05_021F3240: ; 0x021F3240 + push {r3, r4, r5, r6, r7, lr} + mov r0, #1 + lsl r0, r0, #8 + ldr r6, [r1, r0] + ldrh r0, [r6, #6] + cmp r0, #1 + beq _021F327A + mov r4, #0 + ldrsh r0, [r6, r4] + ldr r5, [r6, #0x10] + cmp r0, #0 + ble _021F327A + mov r7, #1 +_021F325A: + ldr r0, [r5] + cmp r0, #0 + bne _021F326E + ldr r0, [r5, #8] + cmp r0, #0 + beq _021F326E + ldr r1, [r5, #4] + bl FUN_020210F0 + str r7, [r5] +_021F326E: + mov r0, #0 + ldrsh r0, [r6, r0] + add r4, r4, #1 + add r5, #0xc + cmp r4, r0 + blt _021F325A +_021F327A: + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F327C +MOD05_021F327C: ; 0x021F327C + push {r3, r4, r5, r6, r7, lr} + mov r0, #1 + lsl r0, r0, #8 + ldr r6, [r1, r0] + mov r4, #0 + ldr r5, [r6, #0x10] + mov r0, #1 + strh r0, [r6, #6] + ldrsh r0, [r6, r4] + cmp r0, #0 + ble _021F32B6 + add r7, r4, #0 +_021F3294: + ldr r0, [r5] + cmp r0, #1 + bne _021F32AA + ldr r0, [r5, #8] + cmp r0, #0 + beq _021F32AA + ldr r1, [r5, #4] + bl FUN_02021158 + str r7, [r5] + str r7, [r5, #8] +_021F32AA: + mov r0, #0 + ldrsh r0, [r6, r0] + add r4, r4, #1 + add r5, #0xc + cmp r4, r0 + blt _021F3294 +_021F32B6: + mov r0, #0 + strh r0, [r6, #6] + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F32BC +MOD05_021F32BC: ; 0x021F32BC + push {r4, r5, r6, lr} + mov r5, #1 + lsl r5, r5, #8 + ldr r5, [r0, r5] + mov r4, #0 + ldrsh r6, [r5, r4] + ldr r0, [r5, #8] + cmp r6, #0 + ble _021F32F2 +_021F32CE: + ldr r5, [r0, #4] + cmp r5, #0 + bne _021F32EA + str r1, [r0, #4] + str r2, [r0, #8] + str r3, [r0] + ldr r0, [r0, #8] + mov r2, #0 + str r2, [r0] + add r0, r1, #0 + mov r1, #1 + bl MOD05_021F2E0C + pop {r4, r5, r6, pc} +_021F32EA: + add r4, r4, #1 + add r0, #0xc + cmp r4, r6 + blt _021F32CE +_021F32F2: + bl GF_AssertFail + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F32F8 +MOD05_021F32F8: ; 0x021F32F8 + push {r3, r4} + mov r2, #1 + lsl r2, r2, #8 + ldr r0, [r0, r2] + mov r3, #0 + ldrsh r4, [r0, r3] + ldr r2, [r0, #8] + cmp r4, #0 + ble _021F3322 +_021F330A: + ldr r0, [r2, #4] + cmp r0, r1 + bne _021F331A + mov r0, #0 + str r0, [r2, #4] + str r0, [r2, #8] + pop {r3, r4} + bx lr +_021F331A: + add r3, r3, #1 + add r2, #0xc + cmp r3, r4 + blt _021F330A +_021F3322: + pop {r3, r4} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F3328 +MOD05_021F3328: ; 0x021F3328 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r0, #1 + lsl r0, r0, #8 + ldr r6, [r7, r0] + mov r4, #0 + ldrsh r0, [r6, r4] + ldr r5, [r6, #8] + cmp r0, #0 + ble _021F3356 +_021F333C: + ldr r0, [r5, #4] + cmp r0, #0 + beq _021F334A + add r0, r7, #0 + add r1, r5, #0 + bl MOD05_021F3364 +_021F334A: + mov r0, #0 + ldrsh r0, [r6, r0] + add r4, r4, #1 + add r5, #0xc + cmp r4, r0 + blt _021F333C +_021F3356: + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F3358 +MOD05_021F3358: ; 0x021F3358 + ldr r3, _021F3360 ; =MOD05_021F3328 + add r0, r1, #0 + bx r3 + nop +_021F3360: .word MOD05_021F3328 + + thumb_func_start MOD05_021F3364 +MOD05_021F3364: ; 0x021F3364 + push {r4, lr} + add r4, r1, #0 + ldr r1, [r4] + bl MOD05_021F2A08 + cmp r0, #2 + beq _021F33B2 + ldr r0, [r4, #4] + ldr r1, [r4] + bl MOD05_021F1FE0 + ldr r1, [r4, #8] + str r0, [r1] + ldr r0, [r4, #8] + ldr r0, [r0] + cmp r0, #0 + bne _021F338A + bl GF_AssertFail +_021F338A: + ldr r0, [r4, #4] + mov r1, #0 + bl MOD05_021F2E0C + mov r1, #2 + ldr r0, [r4, #4] + lsl r1, r1, #0x14 + bl FUN_0205842C + cmp r0, #1 + ldr r0, [r4, #4] + bne _021F33A8 + bl FUN_020586DC + b _021F33AC +_021F33A8: + bl FUN_020586A0 +_021F33AC: + mov r0, #0 + str r0, [r4, #4] + str r0, [r4, #8] +_021F33B2: + pop {r4, pc} + + thumb_func_start MOD05_021F33B4 +MOD05_021F33B4: ; 0x021F33B4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r1, #0 + add r5, r0, #0 + mov r0, #0xc + add r7, r6, #0 + mul r7, r0 + lsl r0, r6, #4 + lsl r1, r7, #1 + str r0, [sp, #4] + add r0, r1, r0 + str r0, [sp, #8] + add r0, #0x28 + str r0, [sp, #8] + ldr r1, [sp, #8] + mov r0, #4 + str r2, [sp] + bl AllocFromHeap + add r4, r0, #0 + bne _021F33E2 + bl GF_AssertFail +_021F33E2: + ldr r2, [sp, #8] + add r0, r4, #0 + mov r1, #0 + bl memset + ldr r0, [sp] + strh r6, [r4] + strh r0, [r4, #2] + add r0, r4, #0 + add r0, #0x28 + str r0, [r4, #8] + add r1, r0, r7 + ldr r0, [sp, #4] + str r1, [r4, #0xc] + add r0, r1, r0 + str r0, [r4, #0x10] + mov r0, #1 + lsl r0, r0, #8 + str r4, [r5, r0] + add r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_0205839C + add r6, r0, #0 + ldr r0, _021F3448 ; =MOD05_021F30C4 + add r1, r5, #0 + add r2, r6, #1 + bl FUN_0200CA44 + str r0, [r4, #0x18] + ldr r0, _021F344C ; =MOD05_021F3358 + add r1, r5, #0 + add r2, r6, #2 + bl FUN_0200CA44 + str r0, [r4, #0x1c] + ldr r0, _021F3450 ; =MOD05_021F3240 + add r1, r5, #0 + mov r2, #0xff + bl FUN_0200CA60 + str r0, [r4, #0x20] + ldr r0, _021F3454 ; =MOD05_021F327C + add r1, r5, #0 + mov r2, #0xff + bl FUN_0200CA98 + str r0, [r4, #0x24] + add sp, #0xc + pop {r4, r5, r6, r7, pc} + nop +_021F3448: .word MOD05_021F30C4 +_021F344C: .word MOD05_021F3358 +_021F3450: .word MOD05_021F3240 +_021F3454: .word MOD05_021F327C + + thumb_func_start MOD05_021F3458 +MOD05_021F3458: ; 0x021F3458 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #1 + lsl r0, r0, #8 + ldr r4, [r5, r0] + mov r0, #1 + strh r0, [r4, #6] + ldr r0, [r4, #0x18] + bl FUN_0200CAB4 + ldr r0, [r4, #0x1c] + bl FUN_0200CAB4 + ldr r0, [r4, #0x20] + bl FUN_0200CAB4 + ldr r0, [r4, #0x24] + bl FUN_0200CAB4 + add r0, r4, #0 + bl FreeToHeap + mov r0, #1 + mov r1, #0 + lsl r0, r0, #8 + str r1, [r5, r0] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F3490 +MOD05_021F3490: ; 0x021F3490 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021F2E28 + cmp r0, #1 + beq _021F34A8 + add r0, r5, #0 + bl MOD05_021F0514 + cmp r0, #0 + bne _021F34D2 +_021F34A8: + add r0, r5, #0 + bl FUN_02058458 + add r6, r0, #0 + add r0, r5, #0 + bl FUN_02058578 + add r7, r0, #0 + add r0, r5, #0 + bl FUN_020576A8 + add r0, r7, #0 + add r1, r6, #0 + add r2, r5, #0 + bl MOD05_021F2C80 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_02057614 + pop {r3, r4, r5, r6, r7, pc} +_021F34D2: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F34DC + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F34DC +MOD05_021F34DC: ; 0x021F34DC + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r7, r0, #0 + str r1, [sp, #8] + bl MOD05_021F2F3C + str r0, [sp, #0x18] + bl MOD05_021F2D48 + str r0, [sp, #0x14] + add r0, r7, #0 + bl MOD05_021F0514 + str r0, [sp, #0x10] + mov r0, #4 + mov r1, #0x58 + bl AllocFromHeapAtEnd + mov r1, #0 + mov r2, #0x58 + add r5, r0, #0 + bl memset + ldr r0, [sp, #8] + str r0, [r5] + add r0, r7, #0 + str r7, [r5, #0x50] + bl FUN_02058458 + add r6, r0, #0 + bl MOD05_021F2DE8 + ldr r4, _021F36C4 ; =UNK05_021F9094 + ldr r2, _021F36C8 ; =0x0000FFFF +_021F3520: + ldr r1, [r4] + cmp r1, r0 + beq _021F352E + add r4, #8 + ldr r1, [r4] + cmp r1, r2 + bne _021F3520 +_021F352E: + ldr r0, _021F36C8 ; =0x0000FFFF + cmp r1, r0 + bne _021F3538 + bl GF_AssertFail +_021F3538: + ldr r0, [sp, #0x18] + ldr r1, [r4, #4] + mov r2, #0 + bl MOD05_021F2DB0 + str r0, [r5, #8] + add r0, r6, #0 + bl MOD05_021F2DF4 + ldr r4, _021F36CC ; =UNK05_021F90E4 + ldr r2, _021F36C8 ; =0x0000FFFF +_021F354E: + ldr r1, [r4] + cmp r1, r0 + beq _021F355C + add r4, #8 + ldr r1, [r4] + cmp r1, r2 + bne _021F354E +_021F355C: + ldr r0, _021F36C8 ; =0x0000FFFF + cmp r1, r0 + bne _021F3566 + bl GF_AssertFail +_021F3566: + ldr r0, [sp, #0x18] + ldr r1, [r4, #4] + mov r2, #0 + bl MOD05_021F2DB0 + add r1, r5, #0 + add r1, #0x14 + str r0, [r5, #0xc] + bl FUN_0202227C + ldr r4, _021F36D0 ; =UNK05_021FA0AC + ldr r0, _021F36C8 ; =0x0000FFFF +_021F357E: + ldr r1, [r4] + cmp r1, r6 + beq _021F358C + add r4, #8 + ldr r1, [r4] + cmp r1, r0 + bne _021F357E +_021F358C: + ldr r0, _021F36C8 ; =0x0000FFFF + cmp r1, r0 + bne _021F3596 + bl GF_AssertFail +_021F3596: + ldr r0, [sp, #0x18] + ldr r1, [r4, #4] + mov r2, #0 + bl MOD05_021F2DB0 + str r0, [r5, #0x10] + bl NNS_G3dGetTex + add r4, r0, #0 + add r0, r6, #0 + bl MOD05_021F2E00 + add r3, r0, #0 + add r0, r5, #0 + add r0, #0x14 + str r0, [sp] + add r0, r5, #0 + ldr r1, [r5, #8] + add r0, #0x28 + add r2, r4, #0 + bl FUN_0201F7A4 + ldr r0, [sp, #0x10] + bl FUN_0201F7E0 + add r3, r0, #0 + add r2, sp, #0x28 + ldmia r3!, {r0, r1} + add r4, r2, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, r5, #0 + str r0, [r2] + ldr r0, [sp, #0x14] + add r1, #0x28 + add r2, r4, #0 + bl MOD05_021F2E70 + str r0, [r5, #0x24] + cmp r0, #0 + bne _021F35EC + bl GF_AssertFail +_021F35EC: + ldr r0, [sp, #0x10] + bl FUN_0201F844 + add r1, r0, #0 + ldr r0, [r5, #0x24] + bl FUN_0201F830 + ldr r0, [sp, #0x10] + bl FUN_0201F8C0 + add r1, r0, #0 + ldr r0, [r5, #0x24] + bl FUN_0201F890 + ldr r0, [sp, #0x10] + bl FUN_0201F880 + add r1, r0, #0 + ldr r0, [r5, #0x24] + bl FUN_0201F86C + ldr r0, [r5, #0x24] + mov r1, #0 + bl FUN_0201F854 + ldr r0, [r5, #0x24] + mov r1, #1 + bl FUN_0201F80C + ldr r0, [r5, #0x24] + bl FUN_0201F8F0 + add r0, r7, #0 + bl FUN_02058A9C + cmp r0, #1 + bne _021F367A + add r0, r7, #0 + mov r1, #2 + bl FUN_0205829C + str r0, [sp, #0xc] + add r0, r7, #0 + mov r1, #1 + bl FUN_02059C90 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r4, #0 + bl FUN_02054AF0 + cmp r0, #0 + bne _021F3658 + mov r4, #1 +_021F3658: + add r0, r7, #0 + add r1, sp, #0x1c + bl FUN_02058B5C + add r0, r7, #0 + bl MOD05_021E4C24 + ldr r1, [sp, #0xc] + str r4, [sp] + str r1, [sp, #4] + add r1, r5, #0 + ldr r2, [r5, #0x24] + add r1, #0x28 + add r3, sp, #0x1c + bl MOD06_02249B7C + str r0, [r5, #0x54] +_021F367A: + add r0, r7, #0 + bl FUN_020576A8 + mov r1, #0x41 + ldr r0, [sp, #0x18] + lsl r1, r1, #2 + ldr r0, [r0, r1] + add r1, r6, #0 + add r2, r7, #0 + bl MOD05_021F2C80 + ldr r1, [sp, #8] + add r0, r7, #0 + bl FUN_02057614 + mov r1, #0x41 + ldr r0, [sp, #0x18] + lsl r1, r1, #2 + ldr r0, [r0, r1] + bl FUN_0205839C + ldr r0, _021F36D4 ; =MOD05_021F36D8 + add r1, r5, #0 + mov r2, #0xff + bl FUN_0200CA98 + add r4, r0, #0 + bne _021F36B6 + bl GF_AssertFail +_021F36B6: + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F36D8 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + nop +_021F36C4: .word UNK05_021F9094 +_021F36C8: .word 0x0000FFFF +_021F36CC: .word UNK05_021F90E4 +_021F36D0: .word UNK05_021FA0AC +_021F36D4: .word MOD05_021F36D8 + + thumb_func_start MOD05_021F36D8 +MOD05_021F36D8: ; 0x021F36D8 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + ldr r0, [r5, #4] + ldr r4, [r5, #0x50] + cmp r0, #0 + beq _021F36EC + cmp r0, #1 + beq _021F3744 + pop {r4, r5, r6, pc} +_021F36EC: + add r0, r4, #0 + bl FUN_02058830 + cmp r0, #0 + beq _021F3700 + add r0, r4, #0 + bl MOD05_021F2E28 + cmp r0, #0 + bne _021F3730 +_021F3700: + ldr r0, [r5, #0x54] + cmp r0, #0 + beq _021F370A + bl FUN_02064520 +_021F370A: + ldr r0, [r5, #0x24] + bl FUN_0201F744 + ldr r0, [r5, #8] + bl FreeToHeap + ldr r0, [r5, #0xc] + bl FreeToHeap + ldr r0, [r5, #0x10] + bl FreeToHeap + add r0, r5, #0 + bl FreeToHeap + add r0, r6, #0 + bl FUN_0200CAB4 + pop {r4, r5, r6, pc} +_021F3730: + add r0, r4, #0 + bl FUN_02058458 + ldr r1, [r5] + cmp r1, r0 + beq _021F377C + ldr r0, [r5, #4] + add r0, r0, #1 + str r0, [r5, #4] + pop {r4, r5, r6, pc} +_021F3744: + add r0, r4, #0 + bl MOD05_021F2E28 + cmp r0, #0 + bne _021F377C + ldr r0, [r5, #0x54] + cmp r0, #0 + beq _021F3758 + bl FUN_02064520 +_021F3758: + ldr r0, [r5, #0x24] + bl FUN_0201F744 + ldr r0, [r5, #8] + bl FreeToHeap + ldr r0, [r5, #0xc] + bl FreeToHeap + ldr r0, [r5, #0x10] + bl FreeToHeap + add r0, r5, #0 + bl FreeToHeap + add r0, r6, #0 + bl FUN_0200CAB4 +_021F377C: + pop {r4, r5, r6, pc} + .balign 4, 0 + + .section .rodata + + .global UNK05_021FC550 +UNK05_021FC550: ; 0x021FC550 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + + .global UNK05_021FC55C +UNK05_021FC55C: ; 0x021FC55C + .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + + .global UNK05_021FC56C +UNK05_021FC56C: ; 0x021FC56C + .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 + + .global UNK05_021FC57C +UNK05_021FC57C: ; 0x021FC57C + .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021F3780.s b/arm9/modules/05/asm/mod05_021F3780.s new file mode 100644 index 00000000..1a59550b --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F3780.s @@ -0,0 +1,127 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F3780 +MOD05_021F3780: ; 0x021F3780 + push {r4, r5, r6, lr} + add r6, r1, #0 + add r5, r0, #0 + add r0, r6, #0 + bl MOD05_021F37AC + add r4, r0, #0 + str r6, [r4] + str r5, [r4, #8] + bl MOD05_021F37DC + add r0, r4, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F379C +MOD05_021F379C: ; 0x021F379C + push {r4, lr} + add r4, r0, #0 + bl MOD05_021F37E0 + add r0, r4, #0 + bl MOD05_021F37D0 + pop {r4, pc} + + thumb_func_start MOD05_021F37AC +MOD05_021F37AC: ; 0x021F37AC + push {r4, lr} + mov r1, #0x10 + bl AllocFromHeap + add r4, r0, #0 + bne _021F37BC + bl GF_AssertFail +_021F37BC: + add r2, r4, #0 + mov r1, #0x10 + mov r0, #0 +_021F37C2: + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _021F37C2 + add r0, r4, #0 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F37D0 +MOD05_021F37D0: ; 0x021F37D0 + ldr r3, _021F37D8 ; =FreeToHeapExplicit + add r1, r0, #0 + ldr r0, [r1] + bx r3 + .balign 4, 0 +_021F37D8: .word FreeToHeapExplicit + + thumb_func_start MOD05_021F37DC +MOD05_021F37DC: ; 0x021F37DC + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F37E0 +MOD05_021F37E0: ; 0x021F37E0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #4] + cmp r0, #0 + beq _021F380E + ldr r4, [r5, #0xc] + cmp r4, #0 + beq _021F380E +_021F37F0: + ldr r0, [r4, #0x5c] + cmp r0, #0 + beq _021F37FC + add r0, r4, #0 + bl MOD05_021F383C +_021F37FC: + ldr r0, [r5, #4] + add r4, #0x60 + sub r0, r0, #1 + str r0, [r5, #4] + bne _021F37F0 + ldr r0, [r5] + ldr r1, [r5, #0xc] + bl FreeToHeapExplicit +_021F380E: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F3810 +MOD05_021F3810: ; 0x021F3810 + push {r3, r4, r5, lr} + add r4, r0, #0 + str r1, [r4, #4] + mov r0, #0x60 + add r5, r1, #0 + mul r5, r0 + ldr r0, [r4] + add r1, r5, #0 + bl AllocFromHeap + str r0, [r4, #0xc] + cmp r0, #0 + bne _021F382E + bl GF_AssertFail +_021F382E: + ldr r0, [r4, #0xc] + mov r1, #0 + add r2, r5, #0 + bl memset + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F383C +MOD05_021F383C: ; 0x021F383C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x5c] + bl FreeToHeap + add r0, r4, #0 + mov r1, #0 + mov r2, #0x60 + bl memset + pop {r4, pc} + .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021F3854.s b/arm9/modules/05/asm/mod05_021F3854.s new file mode 100644 index 00000000..16ccc81c --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F3854.s @@ -0,0 +1,79 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F3854 +MOD05_021F3854: ; 0x021F3854 + mov r0, #0 + str r0, [r2] + str r0, [r2, #4] + bx lr + + thumb_func_start MOD05_021F385C +MOD05_021F385C: ; 0x021F385C + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F3860 +MOD05_021F3860: ; 0x021F3860 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + ldr r0, [r5, #0x38] + add r4, r2, #0 + bl FUN_02055320 + add r6, r0, #0 + ldr r0, [r5, #0x38] + bl FUN_0205532C + add r7, r0, #0 + ldr r0, [r4] + cmp r0, r6 + bne _021F3882 + ldr r0, [r4, #4] + cmp r0, r7 + beq _021F38B4 +_021F3882: + str r6, [r4] + add r0, r5, #0 + add r1, r6, #0 + add r2, r7, #0 + str r7, [r4, #4] + bl FUN_0204A6E0 + add r4, r0, #0 + bl FUN_02054A18 + cmp r0, #0 + beq _021F389E + mov r2, #0 + b _021F38AA +_021F389E: + add r0, r4, #0 + bl FUN_02054A0C + cmp r0, #0 + beq _021F38B4 + mov r2, #1 +_021F38AA: + add r0, r6, #0 + add r1, r7, #0 + add r3, r5, #0 + bl MOD05_021DAFA8 +_021F38B4: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F38B8 +MOD05_021F38B8: ; 0x021F38B8 + ldr r0, [r0, #4] + ldr r3, _021F38C4 ; =MOD05_021D8024 + ldr r0, [r0, #4] + ldr r1, _021F38C8 ; =UNK05_021FC58C + bx r3 + nop +_021F38C4: .word MOD05_021D8024 +_021F38C8: .word UNK05_021FC58C + + .section .rodata + + .global UNK05_021FC58C +UNK05_021FC58C: ; 0x021FC58C + .word 0x00000002, 0x00000008, MOD05_021F3854, MOD05_021F385C + .word MOD05_021F3860, 0x00000000 diff --git a/arm9/modules/05/asm/mod05_021F38CC.s b/arm9/modules/05/asm/mod05_021F38CC.s new file mode 100644 index 00000000..26cf1454 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F38CC.s @@ -0,0 +1,379 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F38CC +MOD05_021F38CC: ; 0x021F38CC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + mov r1, #0 + add r2, r1, #0 + add r5, r0, #0 + bl GetMonData + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r5, #0 + mov r1, #0x46 + mov r2, #0 + bl GetMonData + mov r1, #0xf + and r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + add r0, r5, #0 + mov r1, #0x47 + mov r2, #0 + bl GetMonData + mov r1, #0xf + and r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + add r0, r5, #0 + mov r1, #0x48 + mov r2, #0 + bl GetMonData + mov r1, #0xf + and r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x49 + mov r2, #0 + bl GetMonData + mov r1, #0xf + and r0, r1 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + add r0, r5, #0 + mov r1, #0x4a + mov r2, #0 + bl GetMonData + mov r1, #0xf + and r0, r1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r5, #0 + mov r1, #0x4b + mov r2, #0 + bl GetMonData + mov r1, #0xf + and r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + eor r0, r6 + asr r1, r4, #8 + mul r0, r7 + eor r0, r1 + lsl r1, r4, #0x18 + lsr r3, r1, #0x18 + lsl r0, r0, #0x10 + ldr r2, [sp, #4] + ldr r1, [sp] + lsr r0, r0, #0x10 + eor r2, r1 + ldr r1, [sp, #8] + mul r2, r1 + add r1, r3, #0 + eor r1, r2 + lsl r1, r1, #0x10 + lsr r1, r1, #8 + add r0, r0, r1 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F3978 +MOD05_021F3978: ; 0x021F3978 + ldr r2, _021F399C ; =UNK05_021FC5A4 + mov r3, #1 +_021F397C: + lsl r1, r3, #3 + add r1, r2, r1 + ldrh r1, [r1, #4] + cmp r0, r1 + bhs _021F398E + sub r0, r3, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_021F398E: + add r1, r3, #1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0xf + blo _021F397C + add r0, r3, #0 + bx lr + .balign 4, 0 +_021F399C: .word UNK05_021FC5A4 + + thumb_func_start MOD05_021F39A0 +MOD05_021F39A0: ; 0x021F39A0 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r0, #4 + add r5, r1, #0 + bl FUN_02087A6C + add r4, r0, #0 + bl FUN_02087A84 + add r0, r4, #0 + mov r1, #0 + mov r2, #4 + bl FUN_02087A98 + add r0, r4, #0 + add r1, r6, #0 + bl FUN_02087B58 + add r6, r0, #0 + add r0, r4, #0 + bl FUN_02087B0C + add r0, r5, #0 + bl MOD05_021F3978 + lsl r4, r0, #3 + ldr r0, _021F3A0C ; =UNK05_021FC5A8 + ldr r2, _021F3A10 ; =UNK05_021FC5A6 + ldrh r0, [r0, r4] + ldrh r2, [r2, r4] + asr r1, r5, #0x1f + mov r3, #0 + sub r0, r5, r0 + sbc r1, r3 + bl _ll_udiv + add r2, r0, #0 + add r0, r6, #0 + ldr r6, _021F3A14 ; =UNK05_021FC5A4 + add r3, r1, #0 + mov r5, #0 + ldrh r4, [r6, r4] + add r1, r5, #0 + add r2, r4, r2 + adc r5, r3 + add r3, r5, #0 + bl _ll_mul + mov r2, #0xa + mov r3, #0 + bl _ll_udiv + pop {r4, r5, r6, pc} + nop +_021F3A0C: .word UNK05_021FC5A8 +_021F3A10: .word UNK05_021FC5A6 +_021F3A14: .word UNK05_021FC5A4 + + thumb_func_start MOD05_021F3A18 +MOD05_021F3A18: ; 0x021F3A18 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, [r4, #0xc] + add r5, r1, #0 + bl SavArray_PlayerParty_get + add r1, r5, #0 + bl GetPartyMonByIndex + mov r1, #5 + mov r2, #0 + str r0, [sp] + bl GetMonData + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + ldr r0, [sp] + bl MOD05_021F38CC + add r1, sp, #4 + strh r0, [r1, #2] + ldrh r1, [r1, #2] + add r0, r5, #0 + bl MOD05_021F39A0 + add r6, r0, #0 + ldr r0, [r4, #0xc] + bl SavArray_Flags_get + bl FUN_0205F3E8 + add r1, sp, #4 + strh r0, [r1] + ldrh r1, [r1] + add r0, r5, #0 + bl MOD05_021F39A0 + add r7, r0, #0 + mov r0, #0xfa + lsl r0, r0, #2 + mul r0, r6 + mov r1, #0xfe + bl _u32_div_f + add r0, r0, #5 + mov r1, #0xa + bl _u32_div_f + add r5, r0, #0 + mov r0, #0xfa + lsl r0, r0, #2 + mul r0, r7 + mov r1, #0xfe + bl _u32_div_f + add r0, r0, #5 + mov r1, #0xa + bl _u32_div_f + cmp r5, r0 + bne _021F3A9A + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F3A9A: + cmp r5, r0 + bls _021F3AAE + ldr r2, [sp] + add r0, r4, #0 + add r1, r6, #0 + bl FUN_020619C0 + add sp, #8 + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_021F3AAE: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F3AB4 +MOD05_021F3AB4: ; 0x021F3AB4 + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, [r4, #0xc] + add r5, r1, #0 + bl SavArray_PlayerParty_get + add r1, r5, #0 + bl GetPartyMonByIndex + bl MOD05_021F38CC + add r1, sp, #0 + strh r0, [r1] + ldr r0, [r4, #0xc] + bl SavArray_Flags_get + add r1, sp, #0 + ldrh r1, [r1] + bl FUN_0205F3F8 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F3AE0 +MOD05_021F3AE0: ; 0x021F3AE0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r1, #0 + mov r1, #0xf + add r7, r2, #0 + add r4, r3, #0 + bl FUN_02039438 + add r1, sp, #0x10 + add r5, r0, #0 + ldrh r1, [r1, #0x10] + add r0, r4, #0 + bl MOD05_021F39A0 + mov r1, #0xfa + lsl r1, r1, #2 + mul r1, r0 + add r0, r1, #0 + mov r1, #0xfe + bl _u32_div_f + add r0, r0, #5 + mov r1, #0xa + bl _u32_div_f + mov r1, #0xa + add r4, r0, #0 + bl _u32_div_f + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r5] + add r1, r6, #0 + mov r3, #3 + bl BufferIntegerAsString + add r0, r4, #0 + mov r1, #0xa + bl _u32_div_f + mov r0, #0 + add r2, r1, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + ldr r0, [r5] + add r1, r7, #0 + bl BufferIntegerAsString + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F3B4C +MOD05_021F3B4C: ; 0x021F3B4C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, [r5, #0xc] + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + bl SavArray_Flags_get + bl FUN_0205F3E8 + add r1, sp, #4 + strh r0, [r1] + ldrh r0, [r1] + add r1, r4, #0 + add r2, r6, #0 + str r0, [sp] + add r0, r5, #0 + add r3, r7, #0 + bl MOD05_021F3AE0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F3B7C +MOD05_021F3B7C: ; 0x021F3B7C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + str r2, [sp, #4] + ldr r0, [r5, #0xc] + add r4, r3, #0 + add r7, r1, #0 + bl SavArray_PlayerParty_get + add r1, r4, #0 + bl GetPartyMonByIndex + mov r1, #5 + mov r2, #0 + add r6, r0, #0 + bl GetMonData + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r6, #0 + bl MOD05_021F38CC + add r1, sp, #8 + strh r0, [r1] + ldrh r0, [r1] + add r1, r7, #0 + add r3, r4, #0 + str r0, [sp] + ldr r2, [sp, #4] + add r0, r5, #0 + bl MOD05_021F3AE0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + + .section .rodata + + .global UNK05_021FC5A4 +UNK05_021FC5A4: ; 0x021FC5A4 + .byte 0x22, 0x01 + + .global UNK05_021FC5A6 +UNK05_021FC5A6: ; 0x021FC5A6 + .byte 0x01, 0x00 + + .global UNK05_021FC5A8 +UNK05_021FC5A8: ; 0x021FC5A8 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x2C, 0x01, 0x01, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x90, 0x01, 0x02, 0x00, 0x6E, 0x00, 0x00, 0x00 + .byte 0xF4, 0x01, 0x04, 0x00, 0x36, 0x01, 0x00, 0x00, 0x58, 0x02, 0x14, 0x00, 0xC6, 0x02, 0x00, 0x00 + .byte 0xBC, 0x02, 0x32, 0x00, 0x96, 0x0A, 0x00, 0x00, 0x20, 0x03, 0x64, 0x00, 0x1E, 0x1E, 0x00, 0x00 + .byte 0x84, 0x03, 0x96, 0x00, 0x2E, 0x45, 0x00, 0x00, 0xE8, 0x03, 0x96, 0x00, 0xC6, 0x7F, 0x00, 0x00 + .byte 0x4C, 0x04, 0x64, 0x00, 0x5E, 0xBA, 0x00, 0x00, 0xB0, 0x04, 0x32, 0x00, 0x6E, 0xE1, 0x00, 0x00 + .byte 0x14, 0x05, 0x14, 0x00, 0xF6, 0xF4, 0x00, 0x00, 0x78, 0x05, 0x05, 0x00, 0xC6, 0xFC, 0x00, 0x00 + .byte 0xDC, 0x05, 0x02, 0x00, 0xBA, 0xFE, 0x00, 0x00, 0x40, 0x06, 0x01, 0x00, 0x82, 0xFF, 0x00, 0x00 + .byte 0xA4, 0x06, 0x01, 0x00, 0xE6, 0xFF, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021F3BC0.s b/arm9/modules/05/asm/mod05_021F3BC0.s new file mode 100644 index 00000000..c19b51c7 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F3BC0.s @@ -0,0 +1,132 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F3BC0 +MOD05_021F3BC0: ; 0x021F3BC0 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r0, #4 + mov r1, #0x20 + bl AllocFromHeap + add r5, r0, #0 + mov r4, #0 +_021F3BD0: + mov r1, #0xf + lsl r1, r1, #0xc + add r2, r4, #0 + mul r2, r1 + ldr r1, _021F3C2C ; =UNK05_021FD684 + lsl r0, r4, #2 + add r1, r1, r2 + add r6, r5, r0 + str r1, [r5, r0] + ldr r0, [r5, r0] + cmp r0, #0 + bne _021F3BEC + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F3BEC: + cmp r7, #0 + beq _021F3C0A + mov r1, #9 + mov r0, #4 + lsl r1, r1, #0xc + bl AllocFromHeap + str r0, [r6, #0x10] + cmp r0, #0 + bne _021F3C04 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F3C04: + mov r2, #9 + lsl r2, r2, #0xc + b _021F3C10 +_021F3C0A: + mov r0, #0 + str r0, [r6, #0x10] + add r2, r0, #0 +_021F3C10: + mov r1, #0xf + add r0, r4, #0 + lsl r1, r1, #0xc + add r3, r5, #0 + bl MOD05_021F3C74 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021F3BD0 + add r0, r5, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021F3C2C: .word UNK05_021FD684 + + thumb_func_start MOD05_021F3C30 +MOD05_021F3C30: ; 0x021F3C30 + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + add r6, r0, #0 + add r7, r4, #0 +_021F3C38: + lsl r0, r4, #2 + add r5, r6, r0 + str r7, [r6, r0] + ldr r0, [r5, #0x10] + cmp r0, #0 + beq _021F3C4C + bl FreeToHeap + mov r0, #0 + str r0, [r5, #0x10] +_021F3C4C: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021F3C38 + add r0, r6, #0 + bl FreeToHeap + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F3C60 +MOD05_021F3C60: ; 0x021F3C60 + lsl r0, r0, #2 + ldr r0, [r1, r0] + str r0, [r2] + bx lr + + thumb_func_start MOD05_021F3C68 +MOD05_021F3C68: ; 0x021F3C68 + lsl r0, r0, #2 + add r0, r1, r0 + ldr r0, [r0, #0x10] + str r0, [r2] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F3C74 +MOD05_021F3C74: ; 0x021F3C74 + push {r3, r4, r5, r6, r7, lr} + add r5, r3, #0 + lsl r4, r0, #2 + add r6, r1, #0 + add r7, r2, #0 + ldr r0, [r5, r4] + mov r1, #0 + add r2, r6, #0 + bl MI_CpuFill8 + add r0, r5, r4 + ldr r0, [r0, #0x10] + mov r1, #0 + add r2, r7, #0 + bl MI_CpuFill8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + .section .bss + + .global UNK05_021FD684 +UNK05_021FD684: ; 0x021FD684 + .space 0x3C01C diff --git a/arm9/modules/05/asm/mod05_021F3C98.s b/arm9/modules/05/asm/mod05_021F3C98.s new file mode 100644 index 00000000..0a57e0d7 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F3C98.s @@ -0,0 +1,447 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F3C98 +MOD05_021F3C98: ; 0x021F3C98 + push {r4, r5, r6, r7} + add r4, r0, #0 + add r3, r2, #0 + mov r5, #0xc + add r2, r1, #0 + ldr r0, [r4, #4] + mul r2, r5 + ldrh r0, [r0, r2] + ldr r6, [r4, #0x10] + add r1, r0, #0 + mul r1, r5 + add r7, r6, r1 + ldmia r7!, {r0, r1} + add r6, r3, #0 + stmia r6!, {r0, r1} + ldr r0, [r7] + str r0, [r6] + ldr r1, [r4, #4] + ldr r0, [r4, #0x10] + add r1, r1, r2 + ldrh r1, [r1, #2] + add r6, r1, #0 + mul r6, r5 + add r7, r0, r6 + add r6, r3, #0 + ldmia r7!, {r0, r1} + add r6, #0xc + stmia r6!, {r0, r1} + ldr r0, [r7] + add r3, #0x18 + str r0, [r6] + ldr r1, [r4, #4] + ldr r0, [r4, #0x10] + add r1, r1, r2 + ldrh r1, [r1, #4] + add r2, r1, #0 + mul r2, r5 + add r2, r0, r2 + ldmia r2!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r2] + str r0, [r3] + pop {r4, r5, r6, r7} + bx lr + + thumb_func_start MOD05_021F3CF0 +MOD05_021F3CF0: ; 0x021F3CF0 + push {r4, r5} + ldr r3, [r0, #0x14] + ldr r5, [r0, #4] + mov r0, #0xc + add r4, r1, #0 + mul r4, r0 + add r1, r5, r4 + ldrh r1, [r1, #6] + mul r0, r1 + add r3, r3, r0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + pop {r4, r5} + bx lr + + thumb_func_start MOD05_021F3D10 +MOD05_021F3D10: ; 0x021F3D10 + mov r3, #0 + add r2, r3, #0 + sub r1, r3, #1 +_021F3D16: + str r2, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + add r3, r3, #1 + add r0, #0xc + cmp r3, #0xa + blt _021F3D16 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F3D28 +MOD05_021F3D28: ; 0x021F3D28 + push {r4, r5, r6, r7} + add r4, r0, #0 + add r0, r2, #0 + mov ip, r3 + cmp r1, #0 + bne _021F3D3A + mov r0, #0 + pop {r4, r5, r6, r7} + bx lr +_021F3D3A: + cmp r1, #1 + bne _021F3D4A + mov r1, #0 + mov r0, ip + strh r1, [r0] + mov r0, #1 + pop {r4, r5, r6, r7} + bx lr +_021F3D4A: + sub r5, r1, #1 + lsr r1, r5, #0x1f + add r1, r5, r1 + mov r3, #0 + asr r6, r1, #1 + mov r7, #0xa +_021F3D56: + add r1, r6, #0 + mul r1, r7 + add r2, r4, r1 + ldrh r1, [r2, #4] + ldrh r2, [r2, #2] + lsl r1, r1, #0x10 + orr r1, r2 + cmp r1, r0 + ble _021F3D84 + sub r1, r5, #1 + cmp r1, r3 + ble _021F3D7A + add r2, r3, r6 + lsr r1, r2, #0x1f + add r1, r2, r1 + add r5, r6, #0 + asr r6, r1, #1 + b _021F3D56 +_021F3D7A: + mov r0, ip + strh r6, [r0] + mov r0, #1 + pop {r4, r5, r6, r7} + bx lr +_021F3D84: + add r1, r3, #1 + cmp r1, r5 + bge _021F3D96 + add r2, r6, r5 + lsr r1, r2, #0x1f + add r1, r2, r1 + add r3, r6, #0 + asr r6, r1, #1 + b _021F3D56 +_021F3D96: + add r1, r6, #1 + mov r0, ip + strh r1, [r0] + mov r0, #1 + pop {r4, r5, r6, r7} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F3DA4 +MOD05_021F3DA4: ; 0x021F3DA4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x110 + str r0, [sp, #0x20] + ldr r0, [sp, #0x128] + add r4, r3, #0 + str r0, [sp, #0x128] + ldr r0, [r4, #0x1c] + add r6, r1, #0 + add r7, r2, #0 + cmp r0, #0 + bne _021F3DC0 + add sp, #0x110 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F3DC0: + mov r5, #0 + add r0, sp, #0x98 + str r6, [sp, #0x68] + str r5, [sp, #0x6c] + str r7, [sp, #0x70] + bl MOD05_021F3D10 + ldr r1, [r4] + ldr r0, [r1, #4] + sub r0, r6, r0 + bpl _021F3DD8 + add r0, r5, #0 +_021F3DD8: + ldr r2, [r1, #8] + sub r7, r7, r2 + bpl _021F3DE0 + mov r7, #0 +_021F3DE0: + ldr r1, [r1, #0x14] + bl FX_Div + ldr r1, [r4] + asr r6, r0, #0xc + ldrh r0, [r1] + cmp r6, r0 + blo _021F3DF2 + sub r6, r0, #1 +_021F3DF2: + ldr r1, [r1, #0x18] + add r0, r7, #0 + bl FX_Div + asr r1, r0, #0xc + ldr r0, [r4] + ldrh r0, [r0, #2] + cmp r1, r0 + blo _021F3E06 + sub r1, r0, #1 +_021F3E06: + mul r0, r1 + add r0, r6, r0 + lsl r2, r0, #2 + ldr r1, [r4, #8] + ldr r0, [r4, #0xc] + add r3, r1, r2 + ldrh r6, [r3, #2] + ldrh r1, [r1, r2] + lsl r3, r6, #2 + add r3, r6, r3 + lsl r3, r3, #1 + add r6, r0, r3 + ldr r0, [sp, #0x70] + add r3, sp, #0x58 + str r0, [sp, #0x28] + ldr r2, [sp, #0x28] + add r0, r6, #0 + bl MOD05_021F3D28 + cmp r0, #0 + bne _021F3E36 + add sp, #0x110 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F3E36: + add r0, sp, #0x58 + ldrh r1, [r0] + lsl r0, r1, #2 + add r1, r1, r0 + lsl r0, r1, #1 + ldrh r0, [r6, r0] + str r0, [sp, #0x44] + add r0, r1, #4 + lsl r0, r0, #1 + add r1, r1, #3 + ldrh r0, [r6, r0] + lsl r1, r1, #1 + ldrh r1, [r6, r1] + lsl r0, r0, #0x10 + orr r1, r0 + mov r0, #0 + str r0, [sp, #0x48] + ldr r0, [sp, #0x44] + cmp r0, #0 + bls _021F3F50 + add r0, sp, #0x98 + str r0, [sp, #0x40] + lsl r0, r1, #1 + str r0, [sp, #0x3c] + ldr r0, [sp, #0x28] + asr r0, r0, #0x1f + str r0, [sp, #0x38] + ldr r0, [sp, #0x68] + str r0, [sp, #0x2c] + asr r0, r0, #0x1f + str r0, [sp, #0x30] + mov r0, sp + str r0, [sp, #0x4c] + sub r0, r0, #4 + str r0, [sp, #0x4c] +_021F3E7C: + ldr r0, [sp, #0x48] + ldr r2, [r4, #0x18] + lsl r1, r0, #1 + ldr r0, [sp, #0x3c] + add r0, r0, r2 + ldrh r7, [r1, r0] + add r0, r4, #0 + add r2, sp, #0x74 + add r1, r7, #0 + bl MOD05_021F3C98 + mov r0, #0 + add r3, sp, #0x80 + str r0, [sp, #0x78] + str r0, [sp, #0x84] + str r0, [sp, #0x90] + ldmia r3!, {r0, r1} + add r2, sp, #8 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r3, sp, #0x8c + str r0, [r2] + ldmia r3!, {r0, r1} + add r2, sp, #0x14 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r3, sp, #0x74 + str r0, [r2] + ldr r2, [sp, #0x4c] + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + add r6, sp, #0x68 + str r0, [r2] + ldr r0, [sp, #0x4c] + ldr r3, [r0] + ldmia r6!, {r0, r1, r2} + bl FUN_0201C878 + cmp r0, #1 + bne _021F3F40 + add r0, r4, #0 + add r1, r7, #0 + add r2, sp, #0x5c + bl MOD05_021F3CF0 + ldr r0, [sp, #0x5c] + ldr r2, [sp, #0x2c] + ldr r3, [sp, #0x30] + asr r1, r0, #0x1f + bl _ll_mul + str r0, [sp, #0x50] + ldr r0, [sp, #0x64] + add r6, r1, #0 + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x38] + asr r1, r0, #0x1f + bl _ll_mul + mov ip, r0 + mov r2, #0xc + ldr r0, [r4, #4] + mul r2, r7 + add r0, r0, r2 + mov r2, #2 + ldr r3, [sp, #0x50] + lsl r2, r2, #0xa + add r3, r3, r2 + ldr r2, _021F3FDC ; =0x00000000 + ldr r0, [r0, #8] + adc r6, r2 + lsl r2, r6, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + mov r2, #2 + lsl r2, r2, #0xa + mov r6, ip + add r2, r6, r2 + ldr r6, _021F3FDC ; =0x00000000 + adc r1, r6 + lsl r1, r1, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + add r1, r3, r2 + add r0, r0, r1 + ldr r1, [sp, #0x60] + neg r0, r0 + bl FX_Div + ldr r1, [sp, #0x40] + add r5, r5, #1 + str r0, [r1] + add r0, r1, #0 + add r0, #0xc + str r0, [sp, #0x40] + cmp r5, #0xa + bge _021F3F50 +_021F3F40: + ldr r0, [sp, #0x48] + add r0, r0, #1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + str r1, [sp, #0x48] + ldr r0, [sp, #0x44] + cmp r1, r0 + blo _021F3E7C +_021F3F50: + cmp r5, #1 + ble _021F3FB8 + mov r0, #0 + str r0, [sp, #0x24] + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x98] + bl FUN_0201C7A8 + add r4, r0, #0 + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x98] + bl FUN_0201C7A0 + sub r6, r4, r0 + mov r4, #1 + cmp r5, #1 + ble _021F3FA4 +_021F3F72: + mov r0, #0xc + add r7, r4, #0 + mul r7, r0 + add r1, sp, #0x98 + ldr r0, [sp, #0x20] + ldr r1, [r1, r7] + bl FUN_0201C7A8 + add r1, sp, #0x98 + str r0, [sp, #0x54] + ldr r0, [sp, #0x20] + ldr r1, [r1, r7] + bl FUN_0201C7A0 + ldr r1, [sp, #0x54] + sub r0, r1, r0 + cmp r6, r0 + ble _021F3F9A + add r6, r0, #0 + str r4, [sp, #0x24] +_021F3F9A: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r5 + blt _021F3F72 +_021F3FA4: + ldr r0, [sp, #0x24] + mov r1, #0xc + mul r1, r0 + add r0, sp, #0x98 + ldr r1, [r0, r1] + ldr r0, [sp, #0x128] + add sp, #0x110 + str r1, [r0] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F3FB8: + bne _021F3FC6 + ldr r1, [sp, #0x98] + ldr r0, [sp, #0x128] + add sp, #0x110 + str r1, [r0] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F3FC6: + cmp r5, #0 + beq _021F3FD6 + ldr r1, [sp, #0x98] + ldr r0, [sp, #0x128] + add sp, #0x110 + str r1, [r0] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F3FD6: + mov r0, #0 + add sp, #0x110 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F3FDC: .word 0x00000000 diff --git a/arm9/modules/05/asm/mod05_021F3FE0.s b/arm9/modules/05/asm/mod05_021F3FE0.s new file mode 100644 index 00000000..a32bb53b --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F3FE0.s @@ -0,0 +1,595 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F3FE0 +MOD05_021F3FE0: ; 0x021F3FE0 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0 + mov r2, #0x1c + add r4, r1, #0 + bl MIi_CpuClear32 + add r0, r5, #0 + mov r1, #8 + add r2, sp, #0 + bl NARC_ReadFile + add r0, r5, #0 + mov r1, #2 + add r2, sp, #0 + bl NARC_ReadFile + add r0, r5, #0 + mov r1, #2 + add r2, r4, #0 + bl NARC_ReadFile + add r0, r5, #0 + mov r1, #2 + add r2, sp, #0 + bl NARC_ReadFile + add r0, r5, #0 + mov r1, #2 + add r2, r4, #4 + bl NARC_ReadFile + add r0, r5, #0 + mov r1, #2 + add r2, sp, #0 + bl NARC_ReadFile + add r2, r4, #0 + add r0, r5, #0 + mov r1, #2 + add r2, #8 + bl NARC_ReadFile + add r0, r5, #0 + mov r1, #2 + add r2, sp, #0 + bl NARC_ReadFile + add r0, r5, #0 + mov r1, #2 + add r2, sp, #0 + bl NARC_ReadFile + add r2, r4, #0 + add r0, r5, #0 + mov r1, #2 + add r2, #0xc + bl NARC_ReadFile + add r0, r5, #0 + mov r1, #2 + add r2, sp, #0 + bl NARC_ReadFile + add r2, r4, #0 + add r0, r5, #0 + mov r1, #2 + add r2, #0x18 + bl NARC_ReadFile + add r0, r5, #0 + mov r1, #2 + add r2, sp, #0 + bl NARC_ReadFile + add r2, r4, #0 + add r0, r5, #0 + mov r1, #4 + add r2, #0x14 + bl NARC_ReadFile + add r4, #0x10 + add r0, r5, #0 + mov r1, #4 + add r2, r4, #0 + bl NARC_ReadFile + add sp, #8 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F4094 +MOD05_021F4094: ; 0x021F4094 + push {r4, r5, r6, lr} + ldr r4, [r2] + mov r3, #0 + str r4, [r1, #0x10] + ldr r5, [r0] + mov r4, #0xc + mul r4, r5 + add r3, r3, r4 + lsr r6, r3, #0x1f + lsl r5, r3, #0x1e + sub r5, r5, r6 + mov r4, #0x1e + ror r5, r4 + add r4, r6, r5 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + beq _021F40B8 + add r3, r3, r4 +_021F40B8: + ldr r4, [r2] + add r4, r4, r3 + str r4, [r1, #0x14] + ldr r5, [r0, #4] + mov r4, #0xc + mul r4, r5 + add r3, r3, r4 + lsr r6, r3, #0x1f + lsl r5, r3, #0x1e + sub r5, r5, r6 + mov r4, #0x1e + ror r5, r4 + add r4, r6, r5 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + beq _021F40DA + add r3, r3, r4 +_021F40DA: + ldr r4, [r2] + add r4, r4, r3 + str r4, [r1, #4] + ldr r5, [r0, #8] + mov r4, #0xc + mul r4, r5 + add r3, r3, r4 + lsr r6, r3, #0x1f + lsl r5, r3, #0x1e + sub r5, r5, r6 + mov r4, #0x1e + ror r5, r4 + add r4, r6, r5 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + beq _021F40FC + add r3, r3, r4 +_021F40FC: + ldr r4, [r2] + add r4, r4, r3 + add r3, #0x1c + str r4, [r1] + lsr r6, r3, #0x1f + lsl r5, r3, #0x1e + sub r5, r5, r6 + mov r4, #0x1e + ror r5, r4 + add r4, r6, r5 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + beq _021F4118 + add r3, r3, r4 +_021F4118: + ldr r4, [r2] + add r4, r4, r3 + str r4, [r1, #8] + ldr r4, [r0, #0xc] + lsl r4, r4, #2 + add r3, r3, r4 + lsr r6, r3, #0x1f + lsl r5, r3, #0x1e + sub r5, r5, r6 + mov r4, #0x1e + ror r5, r4 + add r4, r6, r5 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + beq _021F4138 + add r3, r3, r4 +_021F4138: + ldr r4, [r2] + add r4, r4, r3 + str r4, [r1, #0xc] + ldr r4, [r0, #0x14] + add r3, r3, r4 + lsr r6, r3, #0x1f + lsl r5, r3, #0x1e + sub r5, r5, r6 + mov r4, #0x1e + ror r5, r4 + add r4, r6, r5 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + beq _021F4156 + add r3, r3, r4 +_021F4156: + ldr r2, [r2] + add r2, r2, r3 + str r2, [r1, #0x18] + ldr r0, [r0, #0x10] + add r3, r3, r0 + lsr r2, r3, #0x1f + lsl r1, r3, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + beq _021F4174 + add r3, r3, r0 +_021F4174: + mov r0, #9 + lsl r0, r0, #0xc + cmp r3, r0 + ble _021F4180 + bl GF_AssertFail +_021F4180: + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4184 +MOD05_021F4184: ; 0x021F4184 + ldr r3, _021F4190 ; =NARC_ReadFile + add r2, r1, #0 + mov r1, #0x1c + ldr r2, [r2] + bx r3 + nop +_021F4190: .word NARC_ReadFile + + thumb_func_start MOD05_021F4194 +MOD05_021F4194: ; 0x021F4194 + ldr r2, [r2] + add r3, r1, #0 + mov r1, #0xc + mul r1, r2 + ldr r2, [r3, #0x10] + ldr r3, _021F41A4 ; =NARC_ReadFile + bx r3 + nop +_021F41A4: .word NARC_ReadFile + + thumb_func_start MOD05_021F41A8 +MOD05_021F41A8: ; 0x021F41A8 + ldr r2, [r2, #4] + add r3, r1, #0 + mov r1, #0xc + mul r1, r2 + ldr r2, [r3, #0x14] + ldr r3, _021F41B8 ; =NARC_ReadFile + bx r3 + nop +_021F41B8: .word NARC_ReadFile + + thumb_func_start MOD05_021F41BC +MOD05_021F41BC: ; 0x021F41BC + ldr r2, [r2, #8] + add r3, r1, #0 + mov r1, #0xc + mul r1, r2 + ldr r2, [r3, #4] + ldr r3, _021F41CC ; =NARC_ReadFile + bx r3 + nop +_021F41CC: .word NARC_ReadFile + + thumb_func_start MOD05_021F41D0 +MOD05_021F41D0: ; 0x021F41D0 + add r3, r1, #0 + ldr r1, [r2, #0xc] + ldr r2, [r3, #8] + ldr r3, _021F41DC ; =NARC_ReadFile + lsl r1, r1, #2 + bx r3 + .balign 4, 0 +_021F41DC: .word NARC_ReadFile + + thumb_func_start MOD05_021F41E0 +MOD05_021F41E0: ; 0x021F41E0 + add r3, r1, #0 + ldr r1, [r2, #0x14] + ldr r2, [r3, #0xc] + ldr r3, _021F41EC ; =NARC_ReadFile + bx r3 + nop +_021F41EC: .word NARC_ReadFile + + thumb_func_start MOD05_021F41F0 +MOD05_021F41F0: ; 0x021F41F0 + add r3, r1, #0 + ldr r1, [r2, #0x10] + ldr r2, [r3, #0x18] + ldr r3, _021F41FC ; =NARC_ReadFile + bx r3 + nop +_021F41FC: .word NARC_ReadFile + + thumb_func_start MOD05_021F4200 +MOD05_021F4200: ; 0x021F4200 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r1, #0xa0 + ldr r1, [r1] + add r5, r0, #0 + cmp r1, #1 + bne _021F4216 + add r1, r4, #0 + mov r2, #2 + add r1, #0x6c + strb r2, [r1] +_021F4216: + add r1, r4, #0 + add r1, #0x6c + ldrb r1, [r1] + cmp r1, #0 + beq _021F422A + cmp r1, #1 + beq _021F425E + cmp r1, #2 + beq _021F42EA + b _021F4302 +_021F422A: + add r0, r4, #0 + add r0, #0xb0 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #0 + beq _021F423A + mov r0, #0 + b _021F4302 +_021F423A: + add r0, r4, #0 + add r0, #0xa8 + add r1, r4, #0 + ldr r0, [r0] + add r1, #0x4c + bl MOD05_021F3FE0 + add r1, r4, #0 + add r1, #0x9c + add r0, r4, #0 + add r2, r4, #0 + ldr r1, [r1] + add r0, #0x4c + add r2, #0x98 + bl MOD05_021F4094 + mov r0, #1 + b _021F4302 +_021F425E: + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xa8 + add r1, #0x9c + ldr r0, [r0] + ldr r1, [r1] + bl MOD05_021F4184 + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xa8 + add r1, #0x9c + add r2, r4, #0 + ldr r0, [r0] + ldr r1, [r1] + add r2, #0x4c + bl MOD05_021F4194 + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xa8 + add r1, #0x9c + add r2, r4, #0 + ldr r0, [r0] + ldr r1, [r1] + add r2, #0x4c + bl MOD05_021F41A8 + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xa8 + add r1, #0x9c + add r2, r4, #0 + ldr r0, [r0] + ldr r1, [r1] + add r2, #0x4c + bl MOD05_021F41BC + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xa8 + add r1, #0x9c + add r2, r4, #0 + ldr r0, [r0] + ldr r1, [r1] + add r2, #0x4c + bl MOD05_021F41D0 + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xa8 + add r1, #0x9c + add r2, r4, #0 + ldr r0, [r0] + ldr r1, [r1] + add r2, #0x4c + bl MOD05_021F41E0 + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xa8 + add r1, #0x9c + add r2, r4, #0 + ldr r0, [r0] + ldr r1, [r1] + add r2, #0x4c + bl MOD05_021F41F0 + mov r0, #1 + b _021F4302 +_021F42EA: + add r0, r4, #0 + add r0, #0xa4 + ldr r0, [r0] + mov r1, #0 + str r1, [r0] + add r0, r4, #0 + bl FreeToHeap + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} +_021F4302: + cmp r0, #1 + bne _021F4326 + add r0, r4, #0 + add r0, #0x6c + ldrb r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0x6c + strb r1, [r0] + add r0, r4, #0 + add r0, #0x6c + ldrb r0, [r0] + cmp r0, #2 + bne _021F4326 + add r4, #0x9c + ldr r0, [r4] + mov r1, #1 + str r1, [r0, #0x1c] +_021F4326: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F4328 +MOD05_021F4328: ; 0x021F4328 + push {r3, lr} + mov r0, #4 + mov r1, #0x20 + bl AllocFromHeap + mov r1, #0 + str r1, [r0, #0x10] + str r1, [r0, #0x14] + str r1, [r0, #4] + str r1, [r0] + str r1, [r0, #8] + str r1, [r0, #0xc] + str r1, [r0, #0x18] + pop {r3, pc} + + thumb_func_start MOD05_021F4344 +MOD05_021F4344: ; 0x021F4344 + push {r0, r1, r2, r3} + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #4 + mov r1, #0x1c + add r4, r2, #0 + bl AllocFromHeapAtEnd + add r6, r0, #0 + add r0, r5, #0 + add r1, r6, #0 + bl MOD05_021F3FE0 + add r0, r6, #0 + add r1, r4, #0 + add r2, sp, #0x1c + bl MOD05_021F4094 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F4184 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021F4194 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021F41A8 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021F41BC + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021F41D0 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021F41E0 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021F41F0 + add r0, r6, #0 + bl FreeToHeap + mov r0, #1 + str r0, [r4, #0x1c] + pop {r4, r5, r6} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4, 0 + + thumb_func_start MOD05_021F43C0 +MOD05_021F43C0: ; 0x021F43C0 + push {r3, lr} + cmp r0, #0 + beq _021F43CA + bl FreeToHeap +_021F43CA: + pop {r3, pc} + + thumb_func_start MOD05_021F43CC +MOD05_021F43CC: ; 0x021F43CC + cmp r0, #0 + beq _021F43E2 + mov r1, #0 + str r1, [r0, #0x1c] + str r1, [r0, #0x10] + str r1, [r0, #0x14] + str r1, [r0, #4] + str r1, [r0] + str r1, [r0, #8] + str r1, [r0, #0xc] + str r1, [r0, #0x18] +_021F43E2: + bx lr + + thumb_func_start MOD05_021F43E4 +MOD05_021F43E4: ; 0x021F43E4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r0, #4 + mov r1, #0xb4 + add r6, r2, #0 + add r7, r3, #0 + bl AllocFromHeapAtEnd + add r1, r0, #0 + add r2, r1, #0 + mov r0, #0 + add r2, #0x6c + strb r0, [r2] + add r2, r1, #0 + add r2, #0xa8 + str r5, [r2] + add r2, r1, #0 + add r2, #0xac + str r4, [r2] + add r2, r1, #0 + add r2, #0x9c + str r6, [r2] + add r2, r1, #0 + add r2, #0xa4 + str r7, [r2] + add r2, r1, #0 + add r2, #0xa0 + str r0, [r2] + str r0, [r1, #0x68] + str r0, [r1, #0x48] + ldr r0, [sp, #0x18] + ldr r2, [r0] + add r0, r1, #0 + add r0, #0x98 + str r2, [r0] + add r0, r1, #0 + ldr r2, [sp, #0x1c] + add r0, #0xb0 + str r2, [r0] + ldr r0, _021F4440 ; =MOD05_021F4200 + mov r2, #1 + bl FUN_0200CA44 + pop {r3, r4, r5, r6, r7, pc} + nop +_021F4440: .word MOD05_021F4200 + + thumb_func_start MOD05_021F4444 +MOD05_021F4444: ; 0x021F4444 + push {r3, lr} + bl FUN_0201B6C8 + mov r1, #1 + add r0, #0xa0 + str r1, [r0] + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4454 +MOD05_021F4454: ; 0x021F4454 + mov r1, #0 + str r1, [r0, #0x1c] + bx lr + .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021F445C.s b/arm9/modules/05/asm/mod05_021F445C.s new file mode 100644 index 00000000..c163fd6b --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F445C.s @@ -0,0 +1,199 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F445C +MOD05_021F445C: ; 0x021F445C + push {r4, r5} + ldr r3, [r2, #0x14] + cmp r3, #0 + bne _021F446A + mov r0, #0 + pop {r4, r5} + bx lr +_021F446A: + ldr r5, [r2] + ldr r3, [r2, #8] + ldr r4, [r2, #4] + ldr r2, [r2, #0xc] + add r3, r5, r3 + add r2, r4, r2 + sub r3, r3, #1 + sub r2, r2, #1 + cmp r5, r0 + bgt _021F4490 + cmp r0, r3 + bgt _021F4490 + cmp r4, r1 + bgt _021F4490 + cmp r1, r2 + bgt _021F4490 + mov r0, #1 + pop {r4, r5} + bx lr +_021F4490: + mov r0, #0 + pop {r4, r5} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F4498 +MOD05_021F4498: ; 0x021F4498 + push {r4, r5, r6, lr} + add r6, r1, #0 + add r5, r0, #0 + add r0, r6, #0 + mov r1, #8 + bl AllocFromHeap + mov r1, #0x18 + add r4, r0, #0 + add r0, r6, #0 + mul r1, r5 + bl AllocFromHeap + str r0, [r4, #4] + mov r6, #0 + str r5, [r4] + cmp r5, #0 + bls _021F44D4 + add r0, r6, #0 + mov r1, #0x18 +_021F44C0: + add r2, r6, #0 + ldr r3, [r4, #4] + mul r2, r1 + add r2, r3, r2 + str r0, [r2, #0x14] + add r2, r6, #1 + lsl r2, r2, #0x18 + lsr r6, r2, #0x18 + cmp r6, r5 + blo _021F44C0 +_021F44D4: + add r0, r4, #0 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F44D8 +MOD05_021F44D8: ; 0x021F44D8 + push {r4, r5} + ldr r5, [sp, #0x10] + mov r4, #0x18 + mul r4, r0 + ldr r0, [r5, #4] + str r1, [r0, r4] + ldr r0, [r5, #4] + ldr r1, [sp, #8] + add r0, r0, r4 + str r2, [r0, #4] + ldr r0, [r5, #4] + add r0, r0, r4 + str r3, [r0, #8] + ldr r0, [r5, #4] + add r0, r0, r4 + str r1, [r0, #0xc] + ldr r0, [r5, #4] + ldr r1, [sp, #0xc] + add r0, r0, r4 + str r1, [r0, #0x10] + ldr r0, [r5, #4] + mov r1, #1 + add r0, r0, r4 + str r1, [r0, #0x14] + pop {r4, r5} + bx lr + + thumb_func_start MOD05_021F450C +MOD05_021F450C: ; 0x021F450C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + bl FreeToHeap + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4520 +MOD05_021F4520: ; 0x021F4520 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + add r5, r2, #0 + str r3, [sp] + cmp r3, #0 + bne _021F4532 + bl GF_AssertFail +_021F4532: + ldr r0, [r5] + mov r4, #0 + cmp r0, #0 + ble _021F4562 +_021F453A: + mov r3, #0x18 + ldr r2, [r5, #4] + mul r3, r4 + add r0, r6, #0 + add r1, r7, #0 + add r2, r2, r3 + bl MOD05_021F445C + cmp r0, #0 + beq _021F4556 + ldr r0, [sp] + strb r4, [r0] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F4556: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, [r5] + cmp r4, r0 + blt _021F453A +_021F4562: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4568 +MOD05_021F4568: ; 0x021F4568 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r5, r0 + blt _021F4578 + bl GF_AssertFail +_021F4578: + mov r0, #0x18 + add r6, r5, #0 + mul r6, r0 + ldr r0, [r4, #4] + add r0, r0, r6 + ldr r0, [r0, #0x14] + cmp r0, #0 + bne _021F458C + bl GF_AssertFail +_021F458C: + ldr r0, [r4, #4] + add r0, r0, r6 + ldr r0, [r0, #0x10] + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F4594 +MOD05_021F4594: ; 0x021F4594 + push {r4, r5, r6, lr} + add r6, r2, #0 + add r5, r0, #0 + ldr r0, [r6] + add r4, r1, #0 + cmp r5, r0 + blt _021F45A6 + bl GF_AssertFail +_021F45A6: + mov r0, #0x18 + ldr r1, [r6, #4] + mul r0, r5 + add r0, r1, r0 + str r4, [r0, #0x10] + pop {r4, r5, r6, pc} + .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021F45B4.s b/arm9/modules/05/asm/mod05_021F45B4.s new file mode 100644 index 00000000..a5ddfe3e --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F45B4.s @@ -0,0 +1,173 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F45B4 +MOD05_021F45B4: ; 0x021F45B4 + push {r4, lr} + mov r1, #0x1c + bl AllocFromHeap + add r4, r0, #0 + bl MOD05_021F4650 + add r0, r4, #0 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F45C8 +MOD05_021F45C8: ; 0x021F45C8 + push {r4, lr} + add r4, r0, #0 + beq _021F45E4 + ldr r1, [r4] + cmp r1, #1 + bne _021F45D8 + bl MOD05_021F4608 +_021F45D8: + add r0, r4, #0 + bl MOD05_021F4650 + add r0, r4, #0 + bl FreeToHeap +_021F45E4: + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F45E8 +MOD05_021F45E8: ; 0x021F45E8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021F4604 ; =MOD05_021F4688 + add r1, r4, #0 + bl FUN_02015F34 + cmp r0, #1 + beq _021F45FC + bl GF_AssertFail +_021F45FC: + mov r0, #1 + str r0, [r4] + pop {r4, pc} + nop +_021F4604: .word MOD05_021F4688 + + thumb_func_start MOD05_021F4608 +MOD05_021F4608: ; 0x021F4608 + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F34 + cmp r0, #1 + beq _021F461C + bl GF_AssertFail +_021F461C: + mov r0, #0 + str r0, [r4] + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4624 +MOD05_021F4624: ; 0x021F4624 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r2, #0 + bl MOD05_021F46A8 + add r4, r0, #0 + bne _021F4636 + bl GF_AssertFail +_021F4636: + cmp r4, #0 + beq _021F4642 + str r6, [r4, #4] + str r5, [r4, #8] + mov r0, #1 + str r0, [r4] +_021F4642: + add r0, r4, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4648 +MOD05_021F4648: ; 0x021F4648 + ldr r3, _021F464C ; =MOD05_021F4678 + bx r3 + .balign 4, 0 +_021F464C: .word MOD05_021F4678 + + thumb_func_start MOD05_021F4650 +MOD05_021F4650: ; 0x021F4650 + push {r3, r4, r5, lr} + add r3, r0, #0 + mov r2, #0x1c + mov r1, #0 +_021F4658: + strb r1, [r3] + add r3, r3, #1 + sub r2, r2, #1 + bne _021F4658 + mov r4, #0 + str r4, [r0] + add r5, r0, #4 +_021F4666: + add r0, r5, #0 + bl MOD05_021F4678 + add r4, r4, #1 + add r5, #0xc + cmp r4, #2 + blt _021F4666 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4678 +MOD05_021F4678: ; 0x021F4678 + mov r2, #0 + ldr r1, _021F4684 ; =MOD05_021F46A4 + str r2, [r0] + str r1, [r0, #8] + str r2, [r0, #4] + bx lr + .balign 4, 0 +_021F4684: .word MOD05_021F46A4 + + thumb_func_start MOD05_021F4688 +MOD05_021F4688: ; 0x021F4688 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r6, #0 + add r4, r5, #4 +_021F4690: + ldr r1, [r5, #8] + ldr r2, [r5, #0xc] + add r0, r4, #0 + blx r2 + add r6, r6, #1 + add r5, #0xc + add r4, #0xc + cmp r6, #2 + blt _021F4690 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F46A4 +MOD05_021F46A4: ; 0x021F46A4 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F46A8 +MOD05_021F46A8: ; 0x021F46A8 + mov r2, #0 + add r3, r0, #0 +_021F46AC: + ldr r1, [r3, #4] + cmp r1, #0 + bne _021F46BC + add r1, r0, #4 + mov r0, #0xc + mul r0, r2 + add r0, r1, r0 + bx lr +_021F46BC: + add r2, r2, #1 + add r3, #0xc + cmp r2, #2 + blt _021F46AC + mov r0, #0 + bx lr diff --git a/arm9/modules/05/asm/mod05_021F46C8.s b/arm9/modules/05/asm/mod05_021F46C8.s new file mode 100644 index 00000000..e23f3da6 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F46C8.s @@ -0,0 +1,356 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F46C8 +MOD05_021F46C8: ; 0x021F46C8 + push {r4, r5, r6, lr} + add r5, r1, #0 + mov r1, #0xca + lsl r1, r1, #2 + add r6, r0, #0 + bl AllocFromHeap + mov r2, #0xca + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl memset + mov r2, #0x63 + mov r0, #0 + add r1, r4, #0 + lsl r2, r2, #2 + str r0, [r4] + add r0, r6, #0 + add r1, #0xc + add r2, r4, r2 + bl FUN_02012944 + mov r1, #0xc3 + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r1, #4 + str r5, [r4, r0] + add r0, r4, #0 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F4704 +MOD05_021F4704: ; 0x021F4704 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4] + cmp r1, #1 + bne _021F4712 + bl MOD05_021F491C +_021F4712: + mov r0, #0xc3 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02012974 + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + + thumb_func_start MOD05_021F4724 +MOD05_021F4724: ; 0x021F4724 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F4732 + bl GF_AssertFail +_021F4732: + mov r0, #0x31 + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r1, _021F47A4 ; =MOD05_021F48CC + add r2, r4, #0 + bl MOD05_021F4624 + mov r2, #0xc5 + lsl r2, r2, #2 + str r0, [r4, r2] + ldr r0, _021F47A8 ; =MOD05_021F47B4 + add r1, r4, #0 + add r2, #0xec + bl FUN_0200CA44 + mov r2, #0xc7 + lsl r2, r2, #2 + str r0, [r4, r2] + ldr r0, _021F47AC ; =MOD05_021F48BC + add r1, r4, #0 + add r2, #0xe4 + bl FUN_0200CA60 + mov r2, #0x32 + lsl r2, r2, #4 + str r0, [r4, r2] + ldr r0, _021F47B0 ; =MOD05_021F48F0 + add r1, r4, #0 + add r2, #0xe0 + bl FUN_0200CA60 + mov r1, #0xc9 + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r4, #0 + mov r2, #6 + add r0, #0xc + mov r1, #0 + lsl r2, r2, #6 + bl memset + mov r2, #0x63 + lsl r2, r2, #2 + add r0, r4, r2 + mov r1, #0 + sub r2, #0xc + bl memset + mov r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r4, #8] + mov r0, #0x61 + lsl r0, r0, #4 + bl PlaySE + pop {r4, pc} + .balign 4, 0 +_021F47A4: .word MOD05_021F48CC +_021F47A8: .word MOD05_021F47B4 +_021F47AC: .word MOD05_021F48BC +_021F47B0: .word MOD05_021F48F0 + + thumb_func_start MOD05_021F47B4 +MOD05_021F47B4: ; 0x021F47B4 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #8] + cmp r0, #3 + bhi _021F483C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021F47CA: ; jump table + .short _021F47D2 - _021F47CA - 2 ; case 0 + .short _021F47DE - _021F47CA - 2 ; case 1 + .short _021F480A - _021F47CA - 2 ; case 2 + .short _021F4830 - _021F47CA - 2 ; case 3 +_021F47D2: + mov r0, #3 + str r0, [r4, #4] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + pop {r4, pc} +_021F47DE: + ldr r0, [r4, #4] + sub r0, r0, #1 + str r0, [r4, #4] + mov r0, #0xc3 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02012988 + ldr r1, [r4, #4] + mov r2, #3 + sub r1, r2, r1 + bl MOD05_021F4878 + ldr r0, [r4, #4] + cmp r0, #0 + bgt _021F483C + mov r0, #3 + str r0, [r4, #4] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + pop {r4, pc} +_021F480A: + ldr r0, [r4, #4] + sub r0, r0, #1 + str r0, [r4, #4] + mov r0, #0xc3 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02012988 + ldr r1, [r4, #4] + mov r2, #3 + bl MOD05_021F4878 + ldr r0, [r4, #4] + cmp r0, #0 + bgt _021F483C + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + pop {r4, pc} +_021F4830: + add r0, r4, #0 + bl MOD05_021F491C + mov r0, #0 + bl G3X_SetHOffset +_021F483C: + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4840 +MOD05_021F4840: ; 0x021F4840 + push {r4, lr} + ldr r1, _021F4870 ; =0x04000006 + ldrh r4, [r1] + mov r1, #0xc3 + lsl r1, r1, #2 + ldr r0, [r0, r1] + bl FUN_0201299C + cmp r4, #0xc0 + bge _021F486E + add r3, r4, #1 + cmp r3, #0xc0 + blt _021F485C + sub r3, #0xc0 +_021F485C: + ldr r1, _021F4874 ; =0x04000004 + ldrh r2, [r1] + mov r1, #2 + tst r1, r2 + beq _021F486E + lsl r1, r3, #1 + ldrh r0, [r0, r1] + bl G3X_SetHOffset +_021F486E: + pop {r4, pc} + .balign 4, 0 +_021F4870: .word 0x04000006 +_021F4874: .word 0x04000004 + + thumb_func_start MOD05_021F4878 +MOD05_021F4878: ; 0x021F4878 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + lsl r0, r1, #1 + add r0, r1, r0 + add r1, r2, #0 + mov r4, #1 + bl _s32_div_f + neg r1, r0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r0, r0, #0x10 + mov r6, #0 + str r1, [sp] + lsr r7, r0, #0x10 +_021F4896: + add r0, r6, #0 + mov r1, #0xa + bl _s32_div_f + cmp r1, #0 + bne _021F48A6 + mov r0, #1 + eor r4, r0 +_021F48A6: + cmp r4, #0 + beq _021F48AE + strh r7, [r5] + b _021F48B2 +_021F48AE: + ldr r0, [sp] + strh r0, [r5] +_021F48B2: + add r6, r6, #1 + add r5, r5, #2 + cmp r6, #0xc0 + blt _021F4896 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F48BC +MOD05_021F48BC: ; 0x021F48BC + mov r2, #0xc6 + ldr r3, _021F48C8 ; =G3X_SetHOffset + mov r0, #0 + lsl r2, r2, #2 + str r0, [r1, r2] + bx r3 + .balign 4, 0 +_021F48C8: .word G3X_SetHOffset + + thumb_func_start MOD05_021F48CC +MOD05_021F48CC: ; 0x021F48CC + ldr r3, _021F48D4 ; =MOD05_021F48D8 + add r0, r1, #0 + bx r3 + nop +_021F48D4: .word MOD05_021F48D8 + + thumb_func_start MOD05_021F48D8 +MOD05_021F48D8: ; 0x021F48D8 + push {r3, lr} + ldr r1, [r0] + cmp r1, #1 + bne _021F48EE + mov r1, #0xc6 + lsl r1, r1, #2 + ldr r1, [r0, r1] + cmp r1, #1 + bne _021F48EE + bl MOD05_021F4840 +_021F48EE: + pop {r3, pc} + + thumb_func_start MOD05_021F48F0 +MOD05_021F48F0: ; 0x021F48F0 + ldr r3, _021F48F8 ; =MOD05_021F48FC + add r0, r1, #0 + bx r3 + nop +_021F48F8: .word MOD05_021F48FC + + thumb_func_start MOD05_021F48FC +MOD05_021F48FC: ; 0x021F48FC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #1 + bne _021F4918 + mov r0, #0xc3 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_020129B4 + mov r0, #0xc6 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] +_021F4918: + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F491C +MOD05_021F491C: ; 0x021F491C + push {r4, lr} + add r4, r0, #0 + mov r0, #0xc5 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD05_021F4648 + mov r0, #0xc5 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, #8 + ldr r0, [r4, r0] + bl FUN_0200CAB4 + mov r0, #0xc7 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0200CAB4 + mov r0, #0x32 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] + add r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0200CAB4 + mov r0, #0xc9 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + str r1, [r4] + pop {r4, pc} + .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021F4968.s b/arm9/modules/05/asm/mod05_021F4968.s new file mode 100644 index 00000000..07285ff4 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F4968.s @@ -0,0 +1,478 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F4968 +MOD05_021F4968: ; 0x021F4968 + ldr r2, [r1, #0x14] + ldr r3, _021F4974 ; =FUN_02016B44 + add r1, r1, r2 + sub r1, r1, r0 + bx r3 + nop +_021F4974: .word ReallocFromHeap + + thumb_func_start MOD05_021F4978 +MOD05_021F4978: ; 0x021F4978 + push {r4, r5, r6, lr} + add r6, r1, #0 + mov r1, #0x23 + add r5, r0, #0 + mov r0, #4 + lsl r1, r1, #6 + bl AllocFromHeap + add r4, r0, #0 + mov r0, #4 + mov r1, #0x10 + bl AllocFromHeapAtEnd + ldr r1, _021F49A8 ; =0x000008B8 + mov r2, #0 + str r0, [r4, r1] + ldr r0, [r4, r1] + str r5, [r0] + ldr r0, [r4, r1] + str r6, [r0, #4] + ldr r0, [r4, r1] + str r2, [r0, #0xc] + add r0, r4, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 +_021F49A8: .word 0x000008B8 + + thumb_func_start MOD05_021F49AC +MOD05_021F49AC: ; 0x021F49AC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x110 + add r5, r0, #0 + ldr r0, _021F4B9C ; =0x000008B8 + mov r1, #0x2a + ldr r7, [r5, r0] + sub r0, #8 + ldr r2, [r7] + add r0, r5, r0 + bl ReadWholeNarcMemberByIdPair + mov r1, #0x8b + lsl r1, r1, #4 + ldrh r1, [r5, r1] + mov r0, #0x2b + mov r2, #4 + bl AllocAndReadWholeNarcMemberByIdPair + ldr r1, _021F4BA0 ; =0x000008BC + str r0, [r5, r1] + ldr r0, [r5, r1] + ldrh r1, [r0] + ldr r0, _021F4BA4 ; =0x00000226 + strh r1, [r7, #8] + cmp r1, r0 + blo _021F49E4 + bl GF_AssertFail +_021F49E4: + ldr r1, _021F4BA8 ; =0x000008A4 + mov r0, #0 + str r0, [r5, r1] + add r1, #0xe + ldrh r1, [r5, r1] + mov r0, #0x2c + mov r2, #4 + bl AllocAndReadWholeNarcMemberByIdPair + ldr r1, _021F4BAC ; =0x0000089C + mov r2, #4 + str r0, [r5, r1] + add r1, #0x14 + ldrh r1, [r5, r1] + mov r0, #0x47 + bl AllocAndReadWholeNarcMemberByIdPair + mov r1, #0x8a + lsl r1, r1, #4 + str r0, [r5, r1] + sub r0, r1, #4 + ldr r0, [r5, r0] + bl NNS_G3dGetTex + ldr r1, _021F4BA8 ; =0x000008A4 + str r0, [r5, r1] + ldrh r0, [r7, #8] + cmp r0, #0 + beq _021F4A2C + sub r0, r1, #4 + ldr r0, [r5, r0] + bl NNS_G3dGetTex + ldr r1, _021F4BB0 ; =0x000008A8 + str r0, [r5, r1] + b _021F4A32 +_021F4A2C: + mov r2, #0 + add r0, r1, #4 + str r2, [r5, r0] +_021F4A32: + ldr r0, _021F4BA8 ; =0x000008A4 + ldr r0, [r5, r0] + bl FUN_0201B3C4 + cmp r0, #0 + bne _021F4A42 + bl GF_AssertFail +_021F4A42: + ldr r1, _021F4BAC ; =0x0000089C + ldr r0, [r5, r1] + add r1, #8 + ldr r1, [r5, r1] + bl MOD05_021F4968 + ldr r0, _021F4BB0 ; =0x000008A8 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021F4A70 + bl FUN_0201B3C4 + cmp r0, #0 + bne _021F4A62 + bl GF_AssertFail +_021F4A62: + mov r1, #0x8a + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #8 + ldr r1, [r5, r1] + bl MOD05_021F4968 +_021F4A70: + mov r2, #0 + ldr r0, _021F4BA4 ; =0x00000226 + add r3, r5, #0 + add r1, r2, #0 +_021F4A78: + add r2, r2, #1 + str r1, [r3, #4] + add r3, r3, #4 + cmp r2, r0 + blt _021F4A78 + ldr r0, _021F4BB4 ; =0x000008AC + str r1, [r5, r0] + mov r0, #0x28 + mov r1, #4 + bl NARC_ctor + str r0, [sp, #0xc] + ldr r0, [r7, #4] + bl MOD05_021DA220 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + ldrh r0, [r7, #8] + cmp r0, #0 + ble _021F4B10 + ldr r0, [sp, #8] + str r0, [sp] +_021F4AA6: + ldr r0, _021F4BA0 ; =0x000008BC + ldr r1, [r5, r0] + ldr r0, [sp] + add r0, r1, r0 + ldrh r6, [r0, #2] + lsl r0, r6, #2 + add r4, r5, r0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021F4ABE + bl GF_AssertFail +_021F4ABE: + ldr r0, [sp, #0xc] + add r1, r6, #0 + mov r2, #4 + bl NARC_AllocAndReadWholeMember + str r0, [r4, #4] + ldr r0, [sp, #4] + cmp r6, r0 + bge _021F4AEC + ldr r0, [r4, #4] + bl NNS_G3dGetMdlSet + add r1, r0, #0 + ldrh r2, [r1, #0xe] + ldr r3, [r7, #4] + add r0, r6, #0 + add r2, r1, r2 + ldr r2, [r2, #0xc] + add r1, r1, r2 + ldr r2, _021F4BB0 ; =0x000008A8 + ldr r2, [r5, r2] + bl MOD05_021D9CEC +_021F4AEC: + ldr r1, _021F4BB0 ; =0x000008A8 + ldr r0, [r4, #4] + ldr r1, [r5, r1] + bl FUN_0201B3A8 + cmp r0, #0 + bne _021F4AFE + bl GF_AssertFail +_021F4AFE: + ldr r0, [sp] + ldrh r1, [r7, #8] + add r0, r0, #2 + str r0, [sp] + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, r1 + blt _021F4AA6 +_021F4B10: + ldr r0, [r5, #4] + cmp r0, #0 + bne _021F4B46 + ldr r0, [sp, #0xc] + mov r1, #0 + mov r2, #4 + bl NARC_AllocAndReadWholeMember + str r0, [r5, #4] + bl NNS_G3dGetTex + add r4, r0, #0 + beq _021F4B46 + bl FUN_0201B3C4 + cmp r0, #0 + bne _021F4B36 + bl GF_AssertFail +_021F4B36: + ldr r0, [r5, #4] + add r1, r4, #0 + bl FUN_0201B3A8 + cmp r0, #0 + bne _021F4B46 + bl GF_AssertFail +_021F4B46: + ldr r0, [sp, #0xc] + bl NARC_dtor + ldr r2, _021F4BB8 ; =0x04000060 + ldr r0, _021F4BBC ; =0xFFFFCFFF + ldrh r1, [r2] + and r1, r0 + mov r0, #0x20 + orr r0, r1 + strh r0, [r2] + ldr r0, _021F4BC0 ; =0x000008B6 + ldrh r0, [r5, r0] + cmp r0, #0 + bne _021F4B6A + ldr r0, _021F4BC4 ; =UNK05_021FC624 + bl G3X_SetEdgeColorTable + b _021F4B70 +_021F4B6A: + ldr r0, _021F4BC8 ; =UNK05_021FC634 + bl G3X_SetEdgeColorTable +_021F4B70: + bl MOD05_021DB900 + ldr r1, _021F4BB4 ; =0x000008AC + str r0, [r5, r1] + ldr r1, _021F4BCC ; =UNK05_021FD648 + add r0, sp, #0x10 + bl sprintf + ldr r1, _021F4BB4 ; =0x000008AC + add r0, sp, #0x10 + ldr r1, [r5, r1] + bl MOD05_021DB918 + ldr r0, _021F4B9C ; =0x000008B8 + ldr r0, [r5, r0] + bl FreeToHeap + ldr r0, _021F4B9C ; =0x000008B8 + mov r1, #0 + str r1, [r5, r0] + add sp, #0x110 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021F4B9C: .word 0x000008B8 +_021F4BA0: .word 0x000008BC +_021F4BA4: .word 0x00000226 +_021F4BA8: .word 0x000008A4 +_021F4BAC: .word 0x0000089C +_021F4BB0: .word 0x000008A8 +_021F4BB4: .word 0x000008AC +_021F4BB8: .word 0x04000060 +_021F4BBC: .word 0xFFFFCFFF +_021F4BC0: .word 0x000008B6 +_021F4BC4: .word UNK05_021FC624 +_021F4BC8: .word UNK05_021FC634 +_021F4BCC: .word UNK05_021FD648 + + thumb_func_start MOD05_021F4BD0 +MOD05_021F4BD0: ; 0x021F4BD0 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bne _021F4BDC + bl GF_AssertFail +_021F4BDC: + add r2, r4, #4 + lsl r1, r5, #2 + ldr r0, [r2, r1] + cmp r0, #0 + bne _021F4BF4 + ldr r0, [r4, #4] + cmp r0, #0 + bne _021F4BF0 + bl GF_AssertFail +_021F4BF0: + add r0, r4, #4 + pop {r3, r4, r5, pc} +_021F4BF4: + add r0, r2, r1 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F4BF8 +MOD05_021F4BF8: ; 0x021F4BF8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r1, [r5] + ldr r0, _021F4C64 ; =0x000008AC + ldr r0, [r1, r0] + cmp r0, #0 + beq _021F4C0A + bl MOD05_021DB9BC +_021F4C0A: + mov r6, #0 + ldr r7, _021F4C68 ; =0x00000226 + add r4, r6, #0 +_021F4C10: + ldr r0, [r5] + add r0, r0, r4 + ldr r0, [r0, #4] + cmp r0, #0 + beq _021F4C1E + bl FreeToHeap +_021F4C1E: + add r6, r6, #1 + add r4, r4, #4 + cmp r6, r7 + blt _021F4C10 + ldr r1, [r5] + ldr r0, _021F4C6C ; =0x000008BC + ldr r0, [r1, r0] + bl FreeToHeap + ldr r1, [r5] + ldr r0, _021F4C70 ; =0x0000089C + ldr r0, [r1, r0] + bl FreeToHeap + ldr r1, [r5] + ldr r0, _021F4C70 ; =0x0000089C + mov r2, #0 + str r2, [r1, r0] + ldr r1, [r5] + add r0, r0, #4 + ldr r0, [r1, r0] + bl FreeToHeap + mov r0, #0x8a + ldr r1, [r5] + mov r2, #0 + lsl r0, r0, #4 + str r2, [r1, r0] + ldr r0, [r5] + bl FreeToHeap + mov r0, #0 + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} + nop +_021F4C64: .word 0x000008AC +_021F4C68: .word 0x00000226 +_021F4C6C: .word 0x000008BC +_021F4C70: .word 0x0000089C + + thumb_func_start MOD05_021F4C74 +MOD05_021F4C74: ; 0x021F4C74 + push {r4, lr} + add r4, r0, #0 + bne _021F4C7E + bl GF_AssertFail +_021F4C7E: + ldr r0, _021F4C84 ; =0x000008A4 + ldr r0, [r4, r0] + pop {r4, pc} + .balign 4, 0 +_021F4C84: .word 0x000008A4 + + thumb_func_start MOD05_021F4C88 +MOD05_021F4C88: ; 0x021F4C88 + push {r4, lr} + add r4, r0, #0 + bne _021F4C92 + bl GF_AssertFail +_021F4C92: + ldr r0, _021F4C98 ; =0x000008A8 + ldr r0, [r4, r0] + pop {r4, pc} + .balign 4, 0 +_021F4C98: .word 0x000008A8 + + thumb_func_start MOD05_021F4C9C +MOD05_021F4C9C: ; 0x021F4C9C + ldr r1, _021F4CA4 ; =0x000008AC + ldr r0, [r0, r1] + bx lr + nop +_021F4CA4: .word 0x000008AC + + thumb_func_start MOD05_021F4CA8 +MOD05_021F4CA8: ; 0x021F4CA8 + ldr r1, _021F4CB8 ; =0x000008B6 + ldrh r0, [r0, r1] + cmp r0, #0 + beq _021F4CB4 + mov r0, #1 + bx lr +_021F4CB4: + mov r0, #0 + bx lr + .balign 4, 0 +_021F4CB8: .word 0x000008B6 + + thumb_func_start MOD05_021F4CBC +MOD05_021F4CBC: ; 0x021F4CBC + ldr r1, _021F4CD0 ; =0x000008B6 + ldrh r0, [r0, r1] + cmp r0, #0 + bne _021F4CC8 + mov r0, #1 + b _021F4CCA +_021F4CC8: + mov r0, #0 +_021F4CCA: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .balign 4, 0 +_021F4CD0: .word 0x000008B6 + + thumb_func_start MOD05_021F4CD4 +MOD05_021F4CD4: ; 0x021F4CD4 + ldr r2, _021F4CE0 ; =0x000008BC + ldr r2, [r0, r2] + lsl r0, r1, #1 + ldrh r0, [r2, r0] + bx lr + nop +_021F4CE0: .word 0x000008BC + + thumb_func_start MOD05_021F4CE4 +MOD05_021F4CE4: ; 0x021F4CE4 + lsl r1, r1, #2 + add r0, r0, r1 + ldr r0, [r0, #4] + cmp r0, #0 + beq _021F4CF2 + mov r0, #1 + bx lr +_021F4CF2: + mov r0, #0 + bx lr + .balign 4, 0 + + .section .rodata + + .global UNK05_021FC624 +UNK05_021FC624: ; 0x021FC624 + .byte 0x00, 0x00, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 + .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 + + .global UNK05_021FC634 +UNK05_021FC634: ; 0x021FC634 + .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 + .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 + + .section .data + + .balign 4 + .global UNK05_021FD648 +UNK05_021FD648: ; 0x021FD648 + .asciz "fielddata/build_model/build_model_matshp.dat" diff --git a/arm9/modules/05/asm/mod05_021F4CF8.s b/arm9/modules/05/asm/mod05_021F4CF8.s new file mode 100644 index 00000000..71401743 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F4CF8.s @@ -0,0 +1,756 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F4CF8 +MOD05_021F4CF8: ; 0x021F4CF8 + push {r4, lr} + mov r0, #4 + mov r1, #0xfc + bl AllocFromHeap + mov r4, #0 + add r2, r4, #0 +_021F4D06: + lsl r1, r4, #3 + add r3, r0, r1 + strb r2, [r0, r1] + add r1, r4, #1 + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + str r2, [r3, #4] + cmp r4, #0x15 + blo _021F4D06 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4D1C +MOD05_021F4D1C: ; 0x021F4D1C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + bl FreeToHeap + mov r0, #0 + str r0, [r4] + pop {r4, pc} + + thumb_func_start MOD05_021F4D2C +MOD05_021F4D2C: ; 0x021F4D2C + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r5, r0, #0 + ldr r0, _021F4D7C ; =0x000007D8 + str r0, [r1] + ldr r0, [r5, #0x38] + bl FUN_02055320 + add r4, r0, #0 + ldr r0, [r5, #0x38] + bl FUN_0205532C + add r6, r0, #0 + ldr r0, [r5, #0x38] + bl FUN_020552F8 + cmp r0, #0 + bne _021F4D76 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + add r0, sp, #0xc + mov r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r6, #0 + sub r3, r2, #1 + bl FUN_0204A840 + add r0, r5, #0 + mov r1, #0x1a + add r2, sp, #0xc + mov r3, #0 + bl FUN_0204A8C4 + add sp, #0x1c + pop {r3, r4, r5, r6, pc} +_021F4D76: + mov r0, #0 + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + .balign 4, 0 +_021F4D7C: .word 0x000007D8 + + thumb_func_start MOD05_021F4D80 +MOD05_021F4D80: ; 0x021F4D80 + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, [r4, #0x1c] + ldr r0, [r0] + bl MOD05_021F50FC + add r5, r0, #0 + cmp r5, #0x15 + bne _021F4D96 + bl GF_AssertFail +_021F4D96: + ldr r0, [r4, #0xc] + bl FUN_0202A9B0 + bl FUN_0202A9BC + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0202A9C8 + add r4, r0, #0 + ldr r0, [r4] + bl MOD05_021F5120 + cmp r0, #0 + beq _021F4DB8 + mov r0, #3 + pop {r3, r4, r5, pc} +_021F4DB8: + ldr r0, [r4] + cmp r0, #0 + beq _021F4DC2 + mov r0, #2 + pop {r3, r4, r5, pc} +_021F4DC2: + mov r0, #1 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4DC8 +MOD05_021F4DC8: ; 0x021F4DC8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6, #0x1c] + ldr r0, [r0] + bl MOD05_021F50FC + add r5, r0, #0 + cmp r5, #0x15 + bne _021F4DDE + bl GF_AssertFail +_021F4DDE: + ldr r0, [r6, #0xc] + bl FUN_0202A9B0 + bl FUN_0202A9BC + str r0, [sp] + ldr r1, [sp] + add r0, r5, #0 + bl FUN_0202A9C8 + add r4, r0, #0 + mov r0, #0x5a + lsl r0, r0, #4 + str r0, [r4] + ldr r0, [r6, #0xc] + bl Sav2_PlayerData_GetProfileAddr + bl PlayerProfile_GetTrainerID + add r1, r5, #0 + bl MOD05_021F5138 + add r7, r0, #0 + ldr r0, [sp] + bl FUN_0202A9C0 + cmp r5, r0 + bne _021F4E42 + bl LCRandom + mov r1, #0x29 + lsl r1, r1, #4 + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r6, #0x64 + blo _021F4E2E + bl GF_AssertFail +_021F4E2E: + cmp r6, #0x5a + bhs _021F4E42 + add r0, r4, #4 + bl MOD05_021F4F44 + ldrb r0, [r4, #6] + bl MOD05_021F4FAC + strb r0, [r4, #7] + pop {r3, r4, r5, r6, r7, pc} +_021F4E42: + add r0, r7, #0 + add r1, r4, #6 + bl MOD05_021F4EE4 + ldrb r0, [r4, #6] + cmp r0, #0 + beq _021F4E60 + add r0, r4, #4 + bl MOD05_021F4F44 + ldrb r0, [r4, #6] + bl MOD05_021F4F98 + strb r0, [r4, #5] + b _021F4E68 +_021F4E60: + mov r0, #0 + strb r0, [r4, #5] + strb r0, [r4, #4] + str r0, [r4] +_021F4E68: + ldrb r0, [r4, #6] + bl MOD05_021F4FAC + strb r0, [r4, #7] + ldr r1, [sp] + add r0, r5, #0 + bl FUN_0202A9C4 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F4E7C +MOD05_021F4E7C: ; 0x021F4E7C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + ldr r0, [r5, #0x1c] + ldr r0, [r0] + bl MOD05_021F50FC + add r4, r0, #0 + cmp r4, #0x15 + bne _021F4E94 + bl GF_AssertFail +_021F4E94: + add r0, r5, #0 + add r0, #0xa4 + ldr r0, [r0] + lsl r4, r4, #3 + add r0, r0, r4 + ldr r0, [r0, #4] + cmp r0, #0 + beq _021F4EE0 + ldr r0, [r5, #0x24] + bl MOD05_021EF618 + ldr r1, [r5, #0x24] + add r2, sp, #0 + bl MOD05_021EF604 + ldr r0, [sp] + mov r1, #0x1a + bl MOD05_021E7ED8 + add r6, r0, #0 + bl MOD05_021E7EC8 + add r1, r0, #0 + cmp r6, #0 + beq _021F4ED6 + add r3, r5, #0 + add r3, #0xa4 + ldr r3, [r3] + ldr r0, [r5, #0x4c] + ldrb r3, [r3, r4] + mov r2, #0x1a + bl MOD05_021D9FB4 +_021F4ED6: + add r5, #0xa4 + ldr r0, [r5] + mov r1, #0 + add r0, r0, r4 + str r1, [r0, #4] +_021F4EE0: + add sp, #4 + pop {r3, r4, r5, r6, pc} + + thumb_func_start MOD05_021F4EE4 +MOD05_021F4EE4: ; 0x021F4EE4 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + bl LCRandom + mov r1, #0x29 + lsl r1, r1, #4 + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x64 + blo _021F4F02 + bl GF_AssertFail +_021F4F02: + cmp r6, #0 + beq _021F4F2A + cmp r4, #1 + bge _021F4F10 + mov r0, #3 + strb r0, [r5] + pop {r4, r5, r6, pc} +_021F4F10: + cmp r4, #0xa + bge _021F4F1A + mov r0, #0 + strb r0, [r5] + pop {r4, r5, r6, pc} +_021F4F1A: + cmp r4, #0x1e + bge _021F4F24 + mov r0, #1 + strb r0, [r5] + pop {r4, r5, r6, pc} +_021F4F24: + mov r0, #2 + strb r0, [r5] + pop {r4, r5, r6, pc} +_021F4F2A: + cmp r4, #0xa + bge _021F4F34 + mov r0, #0 + strb r0, [r5] + pop {r4, r5, r6, pc} +_021F4F34: + cmp r4, #0x1e + bge _021F4F3E + mov r0, #2 + strb r0, [r5] + pop {r4, r5, r6, pc} +_021F4F3E: + mov r0, #1 + strb r0, [r5] + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F4F44 +MOD05_021F4F44: ; 0x021F4F44 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl LCRandom + mov r1, #0x29 + lsl r1, r1, #4 + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x64 + blo _021F4F60 + bl GF_AssertFail +_021F4F60: + cmp r5, #5 + bge _021F4F6A + mov r0, #5 + strb r0, [r4] + pop {r3, r4, r5, pc} +_021F4F6A: + cmp r5, #0xa + bge _021F4F74 + mov r0, #4 + strb r0, [r4] + pop {r3, r4, r5, pc} +_021F4F74: + cmp r5, #0x14 + bge _021F4F7E + mov r0, #3 + strb r0, [r4] + pop {r3, r4, r5, pc} +_021F4F7E: + cmp r5, #0x28 + bge _021F4F88 + mov r0, #2 + strb r0, [r4] + pop {r3, r4, r5, pc} +_021F4F88: + cmp r5, #0x3c + bge _021F4F92 + mov r0, #1 + strb r0, [r4] + pop {r3, r4, r5, pc} +_021F4F92: + mov r0, #0 + strb r0, [r4] + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F4F98 +MOD05_021F4F98: ; 0x021F4F98 + cmp r0, #3 + bne _021F4FA0 + mov r0, #2 + bx lr +_021F4FA0: + cmp r0, #2 + bne _021F4FA8 + mov r0, #1 + bx lr +_021F4FA8: + mov r0, #0 + bx lr + + thumb_func_start MOD05_021F4FAC +MOD05_021F4FAC: ; 0x021F4FAC + push {r3, r4, r5, lr} + add r4, r0, #0 + bl LCRandom + mov r1, #0x29 + lsl r1, r1, #4 + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x64 + blo _021F4FC8 + bl GF_AssertFail +_021F4FC8: + cmp r4, #3 + bne _021F4FE8 + cmp r5, #5 + bge _021F4FD4 + mov r0, #2 + pop {r3, r4, r5, pc} +_021F4FD4: + cmp r5, #6 + bge _021F4FDC + mov r0, #1 + pop {r3, r4, r5, pc} +_021F4FDC: + cmp r5, #7 + bge _021F4FE4 + mov r0, #0 + pop {r3, r4, r5, pc} +_021F4FE4: + mov r0, #3 + pop {r3, r4, r5, pc} +_021F4FE8: + cmp r4, #2 + bne _021F5008 + cmp r5, #0x4b + bge _021F4FF4 + mov r0, #2 + pop {r3, r4, r5, pc} +_021F4FF4: + cmp r5, #0x5f + bge _021F4FFC + mov r0, #1 + pop {r3, r4, r5, pc} +_021F4FFC: + cmp r5, #0x60 + bge _021F5004 + mov r0, #0 + pop {r3, r4, r5, pc} +_021F5004: + mov r0, #3 + pop {r3, r4, r5, pc} +_021F5008: + cmp r4, #1 + bne _021F5028 + cmp r5, #0x13 + bge _021F5014 + mov r0, #2 + pop {r3, r4, r5, pc} +_021F5014: + cmp r5, #0x4f + bge _021F501C + mov r0, #1 + pop {r3, r4, r5, pc} +_021F501C: + cmp r5, #0x63 + bge _021F5024 + mov r0, #0 + pop {r3, r4, r5, pc} +_021F5024: + mov r0, #3 + pop {r3, r4, r5, pc} +_021F5028: + cmp r5, #1 + bge _021F5030 + mov r0, #2 + pop {r3, r4, r5, pc} +_021F5030: + cmp r5, #0x13 + bge _021F5038 + mov r0, #1 + pop {r3, r4, r5, pc} +_021F5038: + cmp r5, #0x63 + bge _021F5040 + mov r0, #0 + pop {r3, r4, r5, pc} +_021F5040: + mov r0, #3 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F5044 +MOD05_021F5044: ; 0x021F5044 + mov r2, #1 + cmp r0, #3 + bne _021F5050 + mov r0, #2 + strb r0, [r1] + b _021F5064 +_021F5050: + cmp r0, #2 + bne _021F5058 + strb r2, [r1] + b _021F5064 +_021F5058: + cmp r0, #1 + bne _021F5062 + mov r0, #0 + strb r0, [r1] + b _021F5064 +_021F5062: + mov r2, #0 +_021F5064: + add r0, r2, #0 + bx lr + + thumb_func_start MOD05_021F5068 +MOD05_021F5068: ; 0x021F5068 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, [r5, #0x28] + add r7, r1, #0 + add r1, r2, #0 + bl MapMatrix_GetMapHeaderFromID + bl MOD05_021F50FC + add r4, r0, #0 + cmp r4, #0x15 + beq _021F50F8 + ldr r0, [r5, #0xc] + bl FUN_0202A9B0 + bl FUN_0202A9BC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0202A9C8 + add r6, r0, #0 + ldr r0, [r6] + bl MOD05_021F5120 + cmp r0, #0 + beq _021F50F8 + ldrb r0, [r6, #7] + add r1, sp, #4 + bl MOD05_021F5044 + add r6, r0, #0 + beq _021F50F8 + add r0, r7, #0 + mov r1, #0x1a + bl MOD05_021E7ED8 + cmp r0, #0 + beq _021F50F8 + bl MOD05_021E7EC8 + add r3, r5, #0 + add r7, r0, #0 + add r3, #0xa4 + ldr r3, [r3] + lsl r4, r4, #3 + ldrb r3, [r3, r4] + ldr r0, [r5, #0x4c] + add r1, r7, #0 + mov r2, #0x1a + bl MOD05_021D9FB4 + add r1, sp, #4 + add r2, r5, #0 + add r2, #0xa4 + ldrb r0, [r1] + ldr r2, [r2] + add r3, r7, #0 + strb r0, [r2, r4] + add r0, r5, #0 + add r0, #0xa4 + ldr r0, [r0] + mov r2, #1 + add r0, r0, r4 + str r6, [r0, #4] + ldr r0, [r5, #0x4c] + str r0, [sp] + ldrb r1, [r1] + mov r0, #0x1a + bl MOD05_021D9DC0 +_021F50F8: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F50FC +MOD05_021F50FC: ; 0x021F50FC + ldr r2, _021F511C ; =UNK05_021FC650 + mov r3, #0 +_021F5100: + lsl r1, r3, #2 + ldr r1, [r2, r1] + cmp r0, r1 + bne _021F510C + add r0, r3, #0 + bx lr +_021F510C: + add r1, r3, #1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0x15 + blo _021F5100 + add r0, r3, #0 + bx lr + nop +_021F511C: .word UNK05_021FC650 + + thumb_func_start MOD05_021F5120 +MOD05_021F5120: ; 0x021F5120 + cmp r0, #0 + ble _021F512E + ldr r1, _021F5134 ; =0x00000438 + cmp r0, r1 + bgt _021F512E + mov r0, #1 + bx lr +_021F512E: + mov r0, #0 + bx lr + nop +_021F5134: .word 0x00000438 + + thumb_func_start MOD05_021F5138 +MOD05_021F5138: ; 0x021F5138 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + lsr r2, r0, #0x18 + add r1, sp, #0 + strb r2, [r1] + lsr r2, r0, #0x10 + strb r2, [r1, #1] + lsr r2, r0, #8 + strb r2, [r1, #2] + strb r0, [r1, #3] + ldrb r0, [r1] + mov r1, #0x15 + bl _s32_div_f + add r0, sp, #0 + strb r1, [r0] + ldrb r0, [r0, #1] + mov r1, #0x15 + bl _s32_div_f + add r0, sp, #0 + strb r1, [r0, #1] + ldrb r0, [r0, #2] + mov r1, #0x15 + bl _s32_div_f + add r0, sp, #0 + strb r1, [r0, #2] + ldrb r0, [r0, #3] + mov r1, #0x15 + bl _s32_div_f + add r0, sp, #0 + strb r1, [r0, #3] + mov r0, #0 + mov r3, #1 + add r1, sp, #0 + add r2, r0, #0 +_021F5184: + add r5, r2, #0 + cmp r3, #0 + bls _021F51A8 +_021F518A: + ldrb r7, [r1, r5] + ldrb r6, [r1, r3] + cmp r7, r6 + bne _021F519E + add r6, r6, #1 + strb r6, [r1, r3] + ldrb r6, [r1, r3] + cmp r6, #0x15 + blo _021F519E + strb r0, [r1, r3] +_021F519E: + add r5, r5, #1 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + cmp r5, r3 + blo _021F518A +_021F51A8: + add r3, r3, #1 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + cmp r3, #4 + blo _021F5184 + mov r2, #0 + add r1, sp, #0 +_021F51B6: + ldrb r0, [r1, r2] + cmp r4, r0 + bne _021F51C0 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F51C0: + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #4 + blo _021F51B6 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F51D0 +MOD05_021F51D0: ; 0x021F51D0 + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, [r4, #0x1c] + ldr r0, [r0] + bl MOD05_021F50FC + add r5, r0, #0 + cmp r5, #0x15 + bne _021F51E6 + bl GF_AssertFail +_021F51E6: + ldr r0, [r4, #0xc] + bl FUN_0202A9B0 + bl FUN_0202A9BC + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0202A9C8 + add r4, r0, #0 + ldrb r1, [r4, #5] + mov r0, #0x6a + lsl r2, r1, #2 + ldr r1, _021F5218 ; =UNK05_021FC644 + ldr r1, [r1, r2] + mov r2, #4 + bl AllocAtEndAndReadWholeNarcMemberByIdPair + ldrb r1, [r4, #4] + lsl r1, r1, #2 + ldr r4, [r0, r1] + bl FreeToHeap + add r0, r4, #0 + pop {r3, r4, r5, pc} + .balign 4, 0 +_021F5218: .word UNK05_021FC644 + + thumb_func_start MOD05_021F521C +MOD05_021F521C: ; 0x021F521C + push {r3, lr} + add r3, r1, #0 + bmi _021F522A + add r1, r2, #0 + add r2, r3, #0 + bl MOD05_021F5068 +_021F522A: + pop {r3, pc} + + thumb_func_start MOD05_021F522C +MOD05_021F522C: ; 0x021F522C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x1c] + ldr r0, [r0] + bl MOD05_021F50FC + add r4, r0, #0 + cmp r4, #0x15 + bne _021F5242 + bl GF_AssertFail +_021F5242: + add r0, r5, #0 + add r0, #0xa4 + ldr r1, [r0] + lsl r0, r4, #3 + mov r2, #0 + add r0, r1, r0 + str r2, [r0, #4] + ldr r0, [r5, #0xc] + bl FUN_0202A9B0 + bl FUN_0202A9BC + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0202A9C8 + mov r1, #0 + str r1, [r0] + pop {r3, r4, r5, pc} + + .section .rodata + + .global UNK05_021FC644 +UNK05_021FC644: ; 0x021FC644 +.ifdef DIAMOND + .word 2, 3, 4 +.else + .word 5, 6, 7 +.endif + + .global UNK05_021FC650 +UNK05_021FC650: ; 0x021FC650 + .byte 0x5B, 0x01, 0x00, 0x00, 0x5D, 0x01, 0x00, 0x00, 0x5E, 0x01, 0x00, 0x00 + .byte 0x61, 0x01, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00 + .byte 0x6B, 0x01, 0x00, 0x00, 0x6E, 0x01, 0x00, 0x00, 0x6F, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00 + .byte 0x75, 0x01, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00, 0x8B, 0x01, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00 + .byte 0xCC, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021F5268.s b/arm9/modules/05/asm/mod05_021F5268.s new file mode 100644 index 00000000..194cb7ee --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F5268.s @@ -0,0 +1,379 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F5268 +MOD05_021F5268: ; 0x021F5268 + push {r3, r4, r5, lr} + mov r5, #0 + add r4, r0, #0 + add r0, r1, #0 + add r1, r2, #0 + str r5, [sp] + add r2, r5, #0 + bl GfGfxLoader_LoadFromNarc + str r0, [r4] + bl NNS_G3dGetMdlSet + str r0, [r4, #4] + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [r4, #8] + ldr r0, [r4] + bl NNS_G3dGetTex + str r0, [r4, #0xc] + cmp r0, #0 + beq _021F52A4 + mov r2, #1 + ldr r0, _021F52A8 ; =MOD05_021F52AC + add r1, r4, #0 + lsl r2, r2, #0xa + bl FUN_0200CA98 +_021F52A4: + pop {r3, r4, r5, pc} + nop +_021F52A8: .word MOD05_021F52AC + + thumb_func_start MOD05_021F52AC +MOD05_021F52AC: ; 0x021F52AC + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0xc] + bl FUN_0201B3C4 + ldr r0, [r4] + ldr r1, [r4, #0xc] + bl FUN_0201B3A8 + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F52C8 +MOD05_021F52C8: ; 0x021F52C8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _021F52F8 + add r1, sp, #4 + add r2, sp, #0 + bl NNS_G3dTexReleaseTexKey + ldr r1, _021F5314 ; =NNS_GfdDefaultFuncFreeTexVram + ldr r0, [sp, #4] + ldr r1, [r1] + blx r1 + ldr r1, _021F5314 ; =NNS_GfdDefaultFuncFreeTexVram + ldr r0, [sp] + ldr r1, [r1] + blx r1 + ldr r0, [r4, #0xc] + bl NNS_G3dPlttReleasePlttKey + ldr r1, _021F5318 ; =NNS_GfdDefaultFuncFreePlttVram + ldr r1, [r1] + blx r1 +_021F52F8: + ldr r0, [r4] + cmp r0, #0 + beq _021F5302 + bl FreeToHeap +_021F5302: + mov r1, #0x10 + mov r0, #0 +_021F5306: + strb r0, [r4] + add r4, r4, #1 + sub r1, r1, #1 + bne _021F5306 + add sp, #8 + pop {r4, pc} + nop +_021F5314: .word NNS_GfdDefaultFuncFreeTexVram +_021F5318: .word NNS_GfdDefaultFuncFreePlttVram + + thumb_func_start MOD05_021F531C +MOD05_021F531C: ; 0x021F531C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r1, #0 + mov r6, #0 + add r1, r3, #0 + add r5, r0, #0 + add r0, r2, #0 + ldr r3, [sp, #0x18] + add r2, r6, #0 + str r6, [sp] + bl GfGfxLoader_LoadFromNarc + add r2, r0, #0 + ldr r3, [sp, #0x1c] + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021F54EC + add r0, r6, #0 + str r0, [r5, #0x10] + add sp, #4 + pop {r3, r4, r5, r6, pc} + + thumb_func_start MOD05_021F5348 +MOD05_021F5348: ; 0x021F5348 + push {r4, lr} + add r4, r0, #0 + bl MOD05_021F54EC + mov r0, #1 + str r0, [r4, #0x10] + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F5358 +MOD05_021F5358: ; 0x021F5358 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F5376 + add r0, r1, #0 + ldr r1, [r4, #8] + bl NNS_G3dFreeAnmObj + ldr r0, [r4, #0x10] + cmp r0, #0 + bne _021F5376 + ldr r0, [r4] + bl FreeToHeap +_021F5376: + mov r1, #0x14 + mov r0, #0 +_021F537A: + strb r0, [r4] + add r4, r4, #1 + sub r1, r1, #1 + bne _021F537A + pop {r4, pc} + + thumb_func_start MOD05_021F5384 +MOD05_021F5384: ; 0x021F5384 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + ldr r0, [r0, #8] + ldrh r0, [r0, #4] + lsl r2, r0, #0xc + cmp r1, #0 + ble _021F53A2 + ldr r0, [r4, #0xc] + add r0, r0, r1 + add r1, r2, #0 + bl _s32_div_f + str r1, [r4, #0xc] + b _021F53B4 +_021F53A2: + ldr r0, [r4, #0xc] + add r3, r4, #0 + add r3, #0xc + add r0, r0, r1 + str r0, [r4, #0xc] + bpl _021F53B4 + ldr r0, [r3] + add r0, r0, r2 + str r0, [r3] +_021F53B4: + ldr r1, [r4, #0xc] + ldr r0, [r4, #8] + str r1, [r0] + pop {r4, pc} + + thumb_func_start MOD05_021F53BC +MOD05_021F53BC: ; 0x021F53BC + push {r3, r4} + ldr r2, [r0, #8] + ldr r3, [r0, #0xc] + ldr r2, [r2, #8] + ldrh r2, [r2, #4] + lsl r4, r2, #0xc + mov r2, #0 + cmp r1, #0 + ble _021F53DE + add r1, r3, r1 + cmp r1, r4 + bge _021F53D8 + str r1, [r0, #0xc] + b _021F53EA +_021F53D8: + str r4, [r0, #0xc] + mov r2, #1 + b _021F53EA +_021F53DE: + add r1, r3, r1 + bmi _021F53E6 + str r1, [r0, #0xc] + b _021F53EA +_021F53E6: + str r2, [r0, #0xc] + mov r2, #1 +_021F53EA: + ldr r1, [r0, #0xc] + ldr r0, [r0, #8] + str r1, [r0] + add r0, r2, #0 + pop {r3, r4} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F53F8 +MOD05_021F53F8: ; 0x021F53F8 + str r1, [r0, #0xc] + ldr r0, [r0, #8] + str r1, [r0] + bx lr + + thumb_func_start MOD05_021F5400 +MOD05_021F5400: ; 0x021F5400 + push {r3, r4, r5, lr} + add r5, r1, #0 + mov r1, #0 + mov r2, #0x78 + add r4, r0, #0 + bl memset + ldr r1, [r5, #8] + add r0, r4, #0 + bl NNS_G3dRenderObjInit + mov r0, #1 + str r0, [r4, #0x6c] + lsl r0, r0, #0xc + str r0, [r4, #0x60] + str r0, [r4, #0x64] + str r0, [r4, #0x68] + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F5424 +MOD05_021F5424: ; 0x021F5424 + ldr r3, _021F542C ; =NNS_G3dRenderObjAddAnmObj + ldr r1, [r1, #8] + bx r3 + nop +_021F542C: .word NNS_G3dRenderObjAddAnmObj + + thumb_func_start MOD05_021F5430 +MOD05_021F5430: ; 0x021F5430 + push {r4, lr} + sub sp, #0x48 + add r4, r0, #0 + ldr r0, [r4, #0x6c] + cmp r0, #0 + beq _021F54C4 + add r0, sp, #0x24 + bl MTX_Identity33_ + add r0, r4, #0 + add r0, #0x70 + ldrh r0, [r0] + ldr r3, _021F54C8 ; =FX_SinCosTable_ + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotX33_ + add r1, sp, #0x24 + add r0, sp, #0 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x74 + ldrh r0, [r0] + ldr r3, _021F54C8 ; =FX_SinCosTable_ + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotZ33_ + add r1, sp, #0x24 + add r0, sp, #0 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x72 + ldrh r0, [r0] + ldr r3, _021F54C8 ; =FX_SinCosTable_ + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotY33_ + add r1, sp, #0x24 + add r0, sp, #0 + add r2, r1, #0 + bl MTX_Concat33 + add r1, r4, #0 + add r0, r4, #0 + add r4, #0x60 + add r1, #0x54 + add r2, sp, #0x24 + add r3, r4, #0 + bl FUN_0201B26C +_021F54C4: + add sp, #0x48 + pop {r4, pc} + .balign 4, 0 +_021F54C8: .word FX_SinCosTable_ + + thumb_func_start MOD05_021F54CC +MOD05_021F54CC: ; 0x021F54CC + str r1, [r0, #0x6c] + bx lr + + thumb_func_start MOD05_021F54D0 +MOD05_021F54D0: ; 0x021F54D0 + str r1, [r0, #0x54] + str r2, [r0, #0x58] + str r3, [r0, #0x5c] + bx lr + + thumb_func_start MOD05_021F54D8 +MOD05_021F54D8: ; 0x021F54D8 + str r1, [r0, #0x60] + str r2, [r0, #0x64] + str r3, [r0, #0x68] + bx lr + + thumb_func_start MOD05_021F54E0 +MOD05_021F54E0: ; 0x021F54E0 + lsl r2, r2, #1 + add r0, r0, r2 + add r0, #0x70 + strh r1, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F54EC +MOD05_021F54EC: ; 0x021F54EC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + str r2, [r5] + add r0, r2, #0 + mov r1, #0 + add r6, r3, #0 + bl NNS_G3dGetAnmByIdx + str r0, [r5, #4] + ldr r1, [r5, #4] + ldr r2, [r4, #8] + add r0, r6, #0 + bl NNS_G3dAllocAnmObj + str r0, [r5, #8] + ldr r1, [r5, #4] + ldr r2, [r4, #8] + ldr r3, [r4, #0xc] + bl NNS_G3dAnmObjInit + pop {r4, r5, r6, pc} diff --git a/arm9/modules/05/asm/mod05_021F5518.s b/arm9/modules/05/asm/mod05_021F5518.s new file mode 100644 index 00000000..e5fc4289 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F5518.s @@ -0,0 +1,615 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F5518 +MOD05_021F5518: ; 0x021F5518 + push {r3, r4, lr} + sub sp, #4 + ldr r0, [r1, #8] + add r4, r2, #0 + bl MOD05_021F5608 + add r0, r4, #0 + mov r1, #0 + mov r2, #0xa + mov r3, #0x13 + bl MOD05_021F5660 + mov r3, #0 + str r3, [r4, #0x14] + mov r0, #0x10 + str r0, [sp] + ldr r0, _021F555C ; =0x04000050 + mov r1, #4 + mov r2, #0x29 + bl G2x_SetBlendAlpha_ + mov r0, #2 + mov r1, #0 + bl SetBgPriority + mov r0, #4 + mov r1, #1 + bl GX_EngineAToggleLayers + ldr r0, _021F5560 ; =0x00000648 + bl PlaySE + add sp, #4 + pop {r3, r4, pc} + .balign 4, 0 +_021F555C: .word 0x04000050 +_021F5560: .word 0x00000648 + + thumb_func_start MOD05_021F5564 +MOD05_021F5564: ; 0x021F5564 + push {r3, r4, lr} + sub sp, #4 + ldr r0, [r1, #8] + add r4, r2, #0 + bl MOD05_021F5608 + add r0, r4, #0 + mov r1, #0xa + mov r2, #0 + mov r3, #0xf + bl MOD05_021F5660 + mov r0, #0 + str r0, [r4, #0x14] + mov r0, #6 + str r0, [sp] + ldr r0, _021F5594 ; =0x04000050 + mov r1, #4 + mov r2, #0x21 + mov r3, #0xa + bl G2x_SetBlendAlpha_ + add sp, #4 + pop {r3, r4, pc} + .balign 4, 0 +_021F5594: .word 0x04000050 + + thumb_func_start MOD05_021F5598 +MOD05_021F5598: ; 0x021F5598 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F559C +MOD05_021F559C: ; 0x021F559C + push {r4, lr} + add r4, r2, #0 + ldr r0, [r4, #0x14] + cmp r0, #1 + beq _021F55C2 + add r0, r4, #0 + bl MOD05_021F5670 + cmp r0, #0 + beq _021F55B4 + mov r0, #1 + str r0, [r4, #0x14] +_021F55B4: + ldr r1, [r4] + mov r0, #0x10 + sub r0, r0, r1 + lsl r0, r0, #8 + orr r1, r0 + ldr r0, _021F55C4 ; =0x04000052 + strh r1, [r0] +_021F55C2: + pop {r4, pc} + .balign 4, 0 +_021F55C4: .word 0x04000052 + + thumb_func_start MOD05_021F55C8 +MOD05_021F55C8: ; 0x021F55C8 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F55CC +MOD05_021F55CC: ; 0x021F55CC + ldr r0, [r0, #4] + ldr r3, _021F55D8 ; =MOD05_021D8024 + ldr r0, [r0, #4] + ldr r1, _021F55DC ; =UNK05_021FC6C0 + bx r3 + nop +_021F55D8: .word MOD05_021D8024 +_021F55DC: .word UNK05_021FC6C0 + + thumb_func_start MOD05_021F55E0 +MOD05_021F55E0: ; 0x021F55E0 + ldr r3, _021F55E4 ; =MOD05_021D80A4 + bx r3 + .balign 4, 0 +_021F55E4: .word MOD05_021D80A4 + + thumb_func_start MOD05_021F55E8 +MOD05_021F55E8: ; 0x021F55E8 + push {r3, lr} + bl MOD05_021D80E4 + ldr r0, [r0, #0x14] + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F55F4 +MOD05_021F55F4: ; 0x021F55F4 + ldr r0, [r0, #4] + ldr r3, _021F5600 ; =MOD05_021D8024 + ldr r0, [r0, #4] + ldr r1, _021F5604 ; =UNK05_021FC6A8 + bx r3 + nop +_021F5600: .word MOD05_021D8024 +_021F5604: .word UNK05_021FC6A8 + + thumb_func_start MOD05_021F5608 +MOD05_021F5608: ; 0x021F5608 + push {r3, r4, r5, lr} + sub sp, #8 + ldr r1, _021F5658 ; =0x00005D5F + add r5, r0, #0 + add r0, sp, #4 + strh r1, [r0] + mov r0, #2 + add r1, sp, #4 + add r2, r0, #0 + mov r3, #0xc2 + bl BG_LoadPlttData + mov r0, #4 + mov r1, #0x20 + bl AllocFromHeap + mov r1, #0x11 + mov r2, #0x20 + add r4, r0, #0 + bl memset + mov r0, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #2 + add r2, r4, #0 + mov r3, #0x20 + bl BG_LoadCharTilesData + add r0, r4, #0 + bl FreeToHeap + ldr r2, _021F565C ; =0x00006001 + add r0, r5, #0 + mov r1, #2 + bl BgFillTilemapBufferAndCommit + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021F5658: .word 0x00005D5F +_021F565C: .word 0x00006001 + + thumb_func_start MOD05_021F5660 +MOD05_021F5660: ; 0x021F5660 + str r1, [r0] + str r1, [r0, #4] + sub r1, r2, r1 + str r1, [r0, #8] + str r3, [r0, #0x10] + mov r1, #0 + str r1, [r0, #0xc] + bx lr + + thumb_func_start MOD05_021F5670 +MOD05_021F5670: ; 0x021F5670 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #8] + ldr r0, [r4, #0xc] + mul r0, r1 + ldr r1, [r4, #0x10] + bl _s32_div_f + ldr r1, [r4, #4] + add r0, r0, r1 + str r0, [r4] + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + add r0, r0, #1 + cmp r0, r1 + bgt _021F5696 + str r0, [r4, #0xc] + mov r0, #0 + pop {r4, pc} +_021F5696: + str r1, [r4, #0xc] + mov r0, #1 + pop {r4, pc} + + thumb_func_start MOD05_021F569C +MOD05_021F569C: ; 0x021F569C + ldr r3, _021F56A4 ; =BG_SetMaskColor + mov r0, #2 + mov r1, #0 + bx r3 + .balign 4, 0 +_021F56A4: .word BG_SetMaskColor + + thumb_func_start MOD05_021F56A8 +MOD05_021F56A8: ; 0x021F56A8 + ldr r3, _021F56B0 ; =BG_SetMaskColor + mov r0, #2 + ldr r1, _021F56B4 ; =0x00007FFF + bx r3 + .balign 4, 0 +_021F56B0: .word BG_SetMaskColor +_021F56B4: .word 0x00007FFF + + thumb_func_start MOD05_021F56B8 +MOD05_021F56B8: ; 0x021F56B8 + push {r4, lr} + sub sp, #8 + ldr r1, _021F5710 ; =0x00007FFF + add r4, r0, #0 + add r0, sp, #4 + strh r1, [r0] + mov r0, #4 + mov r1, #0 + bl GX_EngineAToggleLayers + ldr r1, _021F5714 ; =0x0400000C + mov r0, #3 + ldrh r2, [r1] + mov r3, #0xc4 + bic r2, r0 + mov r0, #3 + orr r0, r2 + strh r0, [r1] + mov r0, #2 + add r1, sp, #4 + add r2, r0, #0 + bl BG_LoadPlttData + mov r1, #2 + str r1, [sp] + ldr r0, [r4, #8] + add r2, r1, #0 + mov r3, #1 + bl BG_FillCharDataRange + ldr r0, [r4, #8] + ldr r2, _021F5718 ; =0x00006002 + mov r1, #2 + bl BgFillTilemapBufferAndCommit + mov r0, #4 + mov r1, #1 + bl GX_EngineAToggleLayers + add r0, r4, #0 + bl MOD05_021F569C + add sp, #8 + pop {r4, pc} + .balign 4, 0 +_021F5710: .word 0x00007FFF +_021F5714: .word 0x0400000C +_021F5718: .word 0x00006002 + + thumb_func_start MOD05_021F571C +MOD05_021F571C: ; 0x021F571C + push {r4, lr} + sub sp, #8 + ldr r1, _021F5774 ; =0x00007FFF + add r4, r0, #0 + add r0, sp, #4 + strh r1, [r0] + mov r0, #8 + mov r1, #0 + bl GX_EngineAToggleLayers + ldr r1, _021F5778 ; =0x0400000E + mov r0, #3 + ldrh r2, [r1] + mov r3, #0xc4 + bic r2, r0 + mov r0, #3 + orr r2, r0 + strh r2, [r1] + add r1, sp, #4 + mov r2, #2 + bl BG_LoadPlttData + mov r2, #2 + str r2, [sp] + ldr r0, [r4, #8] + mov r1, #3 + mov r3, #1 + bl BG_FillCharDataRange + ldr r0, [r4, #8] + ldr r2, _021F577C ; =0x00006002 + mov r1, #3 + bl BgFillTilemapBufferAndCommit + mov r0, #8 + mov r1, #1 + bl GX_EngineAToggleLayers + add r0, r4, #0 + bl MOD05_021F569C + add sp, #8 + pop {r4, pc} + nop +_021F5774: .word 0x00007FFF +_021F5778: .word 0x0400000E +_021F577C: .word 0x00006002 + + thumb_func_start MOD05_021F5780 +MOD05_021F5780: ; 0x021F5780 + push {r3, lr} + ldr r0, [r0, #4] + ldr r0, [r0, #0xc] + bl MOD05_021DC1D0 + ldr r3, _021F57A4 ; =UNK05_021FC6A4 + mov r2, #0 +_021F578E: + ldr r1, [r3] + cmp r0, r1 + bne _021F5798 + mov r0, #1 + pop {r3, pc} +_021F5798: + add r2, r2, #1 + add r3, r3, #4 + cmp r2, #1 + blt _021F578E + mov r0, #0 + pop {r3, pc} + .balign 4, 0 +_021F57A4: .word UNK05_021FC6A4 + + thumb_func_start MOD05_021F57A8 +MOD05_021F57A8: ; 0x021F57A8 + push {r3, lr} + ldr r0, [r0, #4] + ldr r0, [r0, #0xc] + bl MOD05_021DC1D0 + ldr r3, _021F57CC ; =UNK05_021FC6D8 + mov r2, #0 +_021F57B6: + ldr r1, [r3] + cmp r0, r1 + bne _021F57C0 + mov r0, #0 + pop {r3, pc} +_021F57C0: + add r2, r2, #1 + add r3, r3, #4 + cmp r2, #0x10 + blt _021F57B6 + mov r0, #1 + pop {r3, pc} + .balign 4, 0 +_021F57CC: .word UNK05_021FC6D8 + + thumb_func_start MOD05_021F57D0 +MOD05_021F57D0: ; 0x021F57D0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021F57E2 + bl MOD05_021F55E0 + mov r0, #0 + str r0, [r4] +_021F57E2: + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F57EC +MOD05_021F57EC: ; 0x021F57EC + mov r0, #0xc + bx lr + + thumb_func_start MOD05_021F57F0 +MOD05_021F57F0: ; 0x021F57F0 + push {r4, r5, r6, lr} + add r6, r0, #0 + bl FUN_02046528 + add r5, r0, #0 + add r0, r6, #0 + bl FUN_0204652C + add r4, r0, #0 + ldrh r1, [r4, #8] + cmp r1, #9 + bls _021F580A + b _021F597C +_021F580A: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021F5816: ; jump table + .short _021F582A - _021F5816 - 2 ; case 0 + .short _021F5856 - _021F5816 - 2 ; case 1 + .short _021F5872 - _021F5816 - 2 ; case 2 + .short _021F5888 - _021F5816 - 2 ; case 3 + .short _021F58DA - _021F5816 - 2 ; case 4 + .short _021F58EE - _021F5816 - 2 ; case 5 + .short _021F5914 - _021F5816 - 2 ; case 6 + .short _021F5936 - _021F5816 - 2 ; case 7 + .short _021F5956 - _021F5816 - 2 ; case 8 + .short _021F5968 - _021F5816 - 2 ; case 9 +_021F582A: + add r0, r5, #0 + bl MOD05_021F57A8 + cmp r0, #1 + bne _021F584C + mov r0, #1 + strh r0, [r4, #8] + add r0, r5, #0 + bl MOD05_021F5780 + str r0, [r4, #4] + cmp r0, #0 + beq _021F587C + add r0, r5, #0 + bl MOD05_021F56A8 + b _021F5980 +_021F584C: + mov r0, #7 + strh r0, [r4, #8] + mov r0, #0x14 + strh r0, [r4, #0xa] + b _021F5980 +_021F5856: + add r0, r5, #0 + bl MOD05_021F55CC + str r0, [r4] + mov r0, #2 + mov r1, #0 + strh r0, [r4, #8] + bl SetBgPriority + mov r0, #4 + mov r1, #1 + bl GX_EngineAToggleLayers + b _021F5980 +_021F5872: + ldr r0, [r4] + bl MOD05_021F55E8 + cmp r0, #0 + bne _021F587E +_021F587C: + b _021F5980 +_021F587E: + mov r0, #0x16 + strh r0, [r4, #0xa] + mov r0, #3 + strh r0, [r4, #8] + b _021F5980 +_021F5888: + mov r0, #0xa + ldrsh r0, [r4, r0] + sub r0, r0, #1 + strh r0, [r4, #0xa] + ldr r0, [r5, #0x1c] + ldr r0, [r0] + bl MapHeader_HasWildEncounters + cmp r0, #0 + beq _021F58D4 + mov r0, #0xa + ldrsh r0, [r4, r0] + cmp r0, #0 + bge _021F5980 + ldr r0, [r5, #0x38] + bl FUN_02055320 + add r6, r0, #0 + ldr r0, [r5, #0x38] + bl FUN_0205532C + add r2, r0, #0 + add r0, r5, #0 + add r1, r6, #0 + bl FUN_0204A6E0 + add r1, r0, #0 + add r0, r5, #0 + bl MOD06_0223CDB8 + cmp r0, #0 + beq _021F58CE + mov r0, #6 + strh r0, [r4, #8] + b _021F5980 +_021F58CE: + mov r0, #4 + strh r0, [r4, #8] + b _021F5980 +_021F58D4: + mov r0, #4 + strh r0, [r4, #8] + b _021F5980 +_021F58DA: + ldr r0, [r4] + bl MOD05_021F55E0 + add r0, r5, #0 + bl MOD05_021F55F4 + str r0, [r4] + mov r0, #5 + strh r0, [r4, #8] + b _021F5980 +_021F58EE: + ldr r0, [r4] + bl MOD05_021F55E8 + cmp r0, #0 + beq _021F5980 + mov r0, #4 + mov r1, #0 + bl GX_EngineAToggleLayers + ldr r0, _021F5984 ; =0x04000050 + mov r1, #0 + strh r1, [r0] + mov r0, #2 + mov r1, #3 + bl SetBgPriority + mov r0, #8 + strh r0, [r4, #8] + b _021F5980 +_021F5914: + bl MOD05_021F57D0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021F5924 + add r0, r5, #0 + bl MOD05_021F571C +_021F5924: + add r0, r5, #0 + add r1, r6, #0 + bl MOD06_0223BE70 + cmp r0, #0 + bne _021F5980 + bl GF_AssertFail + b _021F5980 +_021F5936: + mov r0, #0xa + ldrsh r1, [r4, r0] + sub r1, r1, #1 + strh r1, [r4, #0xa] + ldrsh r0, [r4, r0] + cmp r0, #0 + bge _021F5980 + mov r2, #0 + ldr r1, _021F5988 ; =0x000007ED + add r0, r6, #0 + add r3, r2, #0 + bl FUN_02038CD8 + mov r0, #9 + strh r0, [r4, #8] + b _021F5980 +_021F5956: + mov r2, #0 + ldr r1, _021F598C ; =0x000007EC + add r0, r6, #0 + add r3, r2, #0 + bl FUN_02038CD8 + mov r0, #9 + strh r0, [r4, #8] + b _021F5980 +_021F5968: + bl MOD05_021F57D0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021F5978 + add r0, r5, #0 + bl MOD05_021F56B8 +_021F5978: + mov r0, #1 + pop {r4, r5, r6, pc} +_021F597C: + bl GF_AssertFail +_021F5980: + mov r0, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 +_021F5984: .word 0x04000050 +_021F5988: .word 0x000007ED +_021F598C: .word 0x000007EC + + .section .rodata + + .global UNK05_021FC6A4 +UNK05_021FC6A4: ; 0x021FC6A4 + .byte 0x08, 0x00, 0x00, 0x00 + + .global UNK05_021FC6A8 +UNK05_021FC6A8: ; 0x021FC6A8 + .word 0x00000400, 0x00000018, MOD05_021F5564, MOD05_021F5598 + .word MOD05_021F559C, MOD05_021F55C8 + + .global UNK05_021FC6C0 +UNK05_021FC6C0: ; 0x021FC6C0 + .word 0x00000400, 0x00000018, MOD05_021F5518, MOD05_021F5598 + .word MOD05_021F559C, MOD05_021F55C8 + + .global UNK05_021FC6D8 +UNK05_021FC6D8: ; 0x021FC6D8 + .byte 0x02, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 + .byte 0x07, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00 + .byte 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x09, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00 diff --git a/arm9/modules/05/asm/mod05_021F5990.s b/arm9/modules/05/asm/mod05_021F5990.s new file mode 100644 index 00000000..6ec80f54 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F5990.s @@ -0,0 +1,309 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F5990 +MOD05_021F5990: ; 0x021F5990 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r2, #0 + lsl r2, r3, #3 + add r6, r5, r2 + add r6, #0x18 + str r2, [sp, #8] + add r2, r6, #0 + str r0, [sp] + add r7, r1, #0 + str r3, [sp, #4] + bl CreateHeap + cmp r0, #1 + beq _021F59B2 + bl GF_AssertFail +_021F59B2: + sub r5, r6, r5 + add r0, r7, #0 + add r1, r5, #0 + bl AllocFromHeap + add r4, r0, #0 + bne _021F59C4 + bl GF_AssertFail +_021F59C4: + add r0, r4, #0 + mov r1, #0 + add r2, r5, #0 + bl memset + ldr r0, [sp] + str r0, [r4] + ldr r0, [sp, #4] + str r7, [r4, #4] + str r0, [r4, #8] + ldr r0, [sp, #8] + str r6, [r4, #0xc] + str r0, [r4, #0x10] + add r0, r4, #0 + add r0, #0x18 + str r0, [r4, #0x14] + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F59EC +MOD05_021F59EC: ; 0x021F59EC + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r4, [r6, #8] + ldr r5, [r6, #0x14] + cmp r4, #0 + beq _021F5A0E +_021F59F8: + ldr r0, [r5] + cmp r0, #0 + beq _021F5A06 + ldr r1, [r5, #4] + add r0, r6, #0 + bl MOD05_021F5A74 +_021F5A06: + sub r4, r4, #1 + add r5, #8 + cmp r4, #0 + bne _021F59F8 +_021F5A0E: + ldr r4, [r6, #4] + add r0, r6, #0 + bl FreeToHeap + add r0, r4, #0 + bl DestroyHeap + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F5A20 +MOD05_021F5A20: ; 0x021F5A20 + ldr r3, _021F5A24 ; =MOD05_021F5B14 + bx r3 + .balign 4, 0 +_021F5A24: .word MOD05_021F5B14 + + thumb_func_start MOD05_021F5A28 +MOD05_021F5A28: ; 0x021F5A28 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + bl MOD05_021F5B5C + str r0, [sp] + cmp r0, #0 + bne _021F5A40 + bl GF_AssertFail +_021F5A40: + add r0, r5, #0 + add r1, r6, #0 + add r2, r7, #0 + bl MOD05_021F5B14 + add r5, r0, #0 + ldr r0, [sp] + add r1, r4, #0 + add r2, r5, #0 + bl MOD05_021F5B8C + add r0, r5, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F5A5C +MOD05_021F5A5C: ; 0x021F5A5C + push {r4, lr} + add r4, r1, #0 + bl MOD05_021F5B74 + cmp r0, #0 + beq _021F5A6C + bl MOD05_021F5B94 +_021F5A6C: + add r0, r4, #0 + bl MOD05_021F5B34 + pop {r4, pc} + + thumb_func_start MOD05_021F5A74 +MOD05_021F5A74: ; 0x021F5A74 + push {r4, lr} + bl MOD05_021F5B3C + add r4, r0, #0 + bne _021F5A82 + bl GF_AssertFail +_021F5A82: + ldr r0, [r4] + bl MOD05_021F5B34 + add r0, r4, #0 + bl MOD05_021F5B94 + pop {r4, pc} + + thumb_func_start MOD05_021F5A90 +MOD05_021F5A90: ; 0x021F5A90 + push {r4, lr} + bl MOD05_021F5B3C + add r4, r0, #0 + bne _021F5A9E + bl GF_AssertFail +_021F5A9E: + ldr r0, [r4] + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F5AA4 +MOD05_021F5AA4: ; 0x021F5AA4 + push {r3, lr} + bl MOD05_021F5B3C + cmp r0, #0 + beq _021F5AB2 + mov r0, #1 + pop {r3, pc} +_021F5AB2: + mov r0, #0 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F5AB8 +MOD05_021F5AB8: ; 0x021F5AB8 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r4, r2, #0 + add r6, r0, #0 + add r7, r3, #0 + add r0, r5, #0 + add r1, r4, #0 + bl NARC_GetMemberSize + add r1, r0, #0 + add r0, r6, #0 + add r2, r7, #0 + bl MOD05_021F5A20 + add r6, r0, #0 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl NARC_ReadWholeMember + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F5AE4 +MOD05_021F5AE4: ; 0x021F5AE4 + push {r3, r4, r5, r6, r7, lr} + add r4, r2, #0 + add r5, r0, #0 + add r7, r3, #0 + add r6, r1, #0 + add r0, r4, #0 + add r1, r7, #0 + bl NARC_GetMemberSize + add r2, r0, #0 + ldr r3, [sp, #0x18] + add r0, r5, #0 + add r1, r6, #0 + bl MOD05_021F5A28 + add r5, r0, #0 + add r0, r4, #0 + add r1, r7, #0 + add r2, r5, #0 + bl NARC_ReadWholeMember + add r0, r5, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021F5B14 +MOD05_021F5B14: ; 0x021F5B14 + push {r4, lr} + cmp r2, #0 + ldr r0, [r0, #4] + bne _021F5B22 + bl AllocFromHeap + b _021F5B26 +_021F5B22: + bl AllocFromHeapAtEnd +_021F5B26: + add r4, r0, #0 + cmp r4, #0 + bne _021F5B30 + bl GF_AssertFail +_021F5B30: + add r0, r4, #0 + pop {r4, pc} + + thumb_func_start MOD05_021F5B34 +MOD05_021F5B34: ; 0x021F5B34 + ldr r3, _021F5B38 ; =FreeToHeap + bx r3 + .balign 4, 0 +_021F5B38: .word FreeToHeap + + thumb_func_start MOD05_021F5B3C +MOD05_021F5B3C: ; 0x021F5B3C + ldr r3, [r0, #8] + ldr r0, [r0, #0x14] + cmp r3, #0 + beq _021F5B56 +_021F5B44: + ldr r2, [r0] + cmp r2, #0 + beq _021F5B50 + ldr r2, [r0, #4] + cmp r2, r1 + beq _021F5B58 +_021F5B50: + add r0, #8 + sub r3, r3, #1 + bne _021F5B44 +_021F5B56: + mov r0, #0 +_021F5B58: + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F5B5C +MOD05_021F5B5C: ; 0x021F5B5C + ldr r2, [r0, #8] + ldr r0, [r0, #0x14] + cmp r2, #0 + beq _021F5B70 +_021F5B64: + ldr r1, [r0] + cmp r1, #0 + beq _021F5B72 + add r0, #8 + sub r2, r2, #1 + bne _021F5B64 +_021F5B70: + mov r0, #0 +_021F5B72: + bx lr + + thumb_func_start MOD05_021F5B74 +MOD05_021F5B74: ; 0x021F5B74 + ldr r3, [r0, #8] + ldr r0, [r0, #0x14] + cmp r3, #0 + beq _021F5B88 +_021F5B7C: + ldr r2, [r0] + cmp r2, r1 + beq _021F5B8A + add r0, #8 + sub r3, r3, #1 + bne _021F5B7C +_021F5B88: + mov r0, #0 +_021F5B8A: + bx lr + + thumb_func_start MOD05_021F5B8C +MOD05_021F5B8C: ; 0x021F5B8C + str r2, [r0] + str r1, [r0, #4] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021F5B94 +MOD05_021F5B94: ; 0x021F5B94 + mov r1, #0 + str r1, [r0] + str r1, [r0, #4] + bx lr diff --git a/arm9/modules/05/asm/mod05_021F5B9C.s b/arm9/modules/05/asm/mod05_021F5B9C.s new file mode 100644 index 00000000..7c57b16b --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F5B9C.s @@ -0,0 +1,84 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F5B9C +MOD05_021F5B9C: ; 0x021F5B9C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + add r5, r0, #0 + ldr r0, [r5, #0xc] + bl FUN_02050DF0 + add r7, r0, #0 + beq _021F5C40 + bl MOD18_0223E2C4 + add r6, r0, #0 + bl MOD18_0223E2DC + lsl r1, r6, #0x15 + lsl r0, r0, #0x15 + mov r4, #0 + str r1, [sp, #0xc] + str r0, [sp, #8] +_021F5BC0: + add r0, r7, #0 + add r1, r4, #0 + bl FUN_020267C4 + add r6, r0, #0 + bl FUN_0204CA80 + str r0, [sp, #0x10] + add r0, r6, #0 + bl FUN_0204CA90 + str r0, [sp, #0x14] + cmp r6, #0 + beq _021F5C3A + add r0, r7, #0 + add r1, r4, #0 + bl FUN_02026810 + str r0, [sp, #0x18] + add r0, r7, #0 + add r1, r4, #0 + bl FUN_02026840 + mov r2, #1 + ldr r1, [sp, #0x18] + lsl r2, r2, #0xc + str r2, [sp, #0x20] + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + ldr r2, [sp, #0xc] + str r1, [sp, #0x1c] + add r1, r1, r2 + ldr r2, [sp, #8] + str r0, [sp, #0x24] + add r0, r0, r2 + ldr r2, [sp, #0x10] + str r1, [sp, #0x1c] + lsl r2, r2, #0xf + add r1, r1, r2 + str r1, [sp, #0x1c] + ldr r1, [sp, #0x14] + str r0, [sp, #0x24] + lsl r1, r1, #0xf + add r0, r0, r1 + str r0, [sp, #0x24] + ldr r0, [r5, #0x2c] + add r1, r6, #0 + bl MOD05_021F4CD4 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, [r5, #0x4c] + add r3, sp, #0x1c + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xa0 + ldr r0, [r0] + ldr r1, [r5, #0x2c] + bl MOD05_021E7FBC +_021F5C3A: + add r4, r4, #1 + cmp r4, #0x20 + blt _021F5BC0 +_021F5C40: + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/modules/05/asm/mod05_021F5C44.s b/arm9/modules/05/asm/mod05_021F5C44.s new file mode 100644 index 00000000..15d94fbb --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F5C44.s @@ -0,0 +1,834 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F5C44 +MOD05_021F5C44: ; 0x021F5C44 + push {r3, r4, r5, lr} + add r0, r1, #0 + mov r1, #0x18 + add r5, r2, #0 + bl AllocFromHeapAtEnd + add r4, r0, #0 + add r2, r4, #0 + mov r1, #0x18 + mov r0, #0 +_021F5C58: + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _021F5C58 + add r0, r5, #0 + str r5, [r4, #0xc] + bl MOD05_021F61B0 + str r0, [r4, #4] + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + + thumb_func_start MOD05_021F5C70 +MOD05_021F5C70: ; 0x021F5C70 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + bl FUN_02046528 + add r4, r0, #0 + add r0, r6, #0 + bl FUN_0204652C + add r5, r0, #0 + ldr r0, [r5] + cmp r0, #0 + beq _021F5C8E + cmp r0, #1 + beq _021F5CBA + b _021F5D28 +_021F5C8E: + ldr r0, [r4, #0x34] + bl FUN_02058780 + mov r0, #0 + str r0, [r5, #0x10] + add r2, r5, #0 + ldr r1, [r5, #0xc] + add r0, r4, #0 + add r2, #0x10 + bl MOD06_0223BD14 + str r0, [r5, #8] + ldr r1, [r5, #0xc] + ldr r2, [r5, #8] + add r0, r4, #0 + bl MOD05_021F5D2C + str r0, [r5, #0x14] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021F5D28 +_021F5CBA: + ldr r0, [r5, #0x14] + bl MOD05_021F5D50 + cmp r0, #1 + bne _021F5D28 + ldr r0, [r5, #0x14] + bl MOD05_021F5D5C + add r7, r0, #0 + ldr r0, [r5, #0x14] + bl MOD05_021F5D68 + cmp r7, #1 + ldr r0, [r5, #0x10] + bne _021F5D10 + ldr r0, [r0, #8] + mov r1, #0 + bl GetPartyMonByIndex + ldr r2, [r5, #4] + add r3, r0, #0 + lsl r2, r2, #0x10 + add r0, r4, #0 + mov r1, #1 + lsr r2, r2, #0x10 + bl FUN_02061208 + ldr r0, [r4, #0xc] + bl FUN_02029FC8 + mov r1, #0xa + bl FUN_0202A0E8 + ldr r2, [r5, #0x10] + add r0, r4, #0 + add r1, r6, #0 + bl FUN_02046A20 + add r0, r5, #0 + bl FreeToHeap + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021F5D10: + cmp r0, #0 + beq _021F5D18 + bl FUN_02047964 +_021F5D18: + ldr r0, [r4, #0x34] + bl FUN_020587B0 + add r0, r5, #0 + bl FreeToHeap + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F5D28: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021F5D2C +MOD05_021F5D2C: ; 0x021F5D2C + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x4c + add r4, r1, #0 + add r6, r2, #0 + bl MOD05_021F6074 + add r1, r0, #0 + str r5, [r1, #0x20] + str r4, [r1, #0x1c] + ldr r0, _021F5D4C ; =MOD05_021F5D7C + mov r2, #0x80 + str r6, [r1] + bl FUN_0200CA44 + pop {r4, r5, r6, pc} + .align 2, 0 +_021F5D4C: .word MOD05_021F5D7C + + thumb_func_start MOD05_021F5D50 +MOD05_021F5D50: ; 0x021F5D50 + push {r3, lr} + bl FUN_0201B6C8 + ldr r0, [r0, #4] + pop {r3, pc} + .align 2, 0 + + thumb_func_start MOD05_021F5D5C +MOD05_021F5D5C: ; 0x021F5D5C + push {r3, lr} + bl FUN_0201B6C8 + ldr r0, [r0, #8] + pop {r3, pc} + .align 2, 0 + + thumb_func_start MOD05_021F5D68 +MOD05_021F5D68: ; 0x021F5D68 + push {r4, lr} + add r4, r0, #0 + bl FUN_0201B6C8 + bl FreeToHeap + add r0, r4, #0 + bl FUN_0200CAB4 + pop {r4, pc} + + thumb_func_start MOD05_021F5D7C +MOD05_021F5D7C: ; 0x021F5D7C + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + ldr r0, [r5, #0x20] + ldr r6, [r0, #0x38] + add r0, r6, #0 + bl FUN_020553A0 + ldr r7, _021F5DA4 ; =UNK05_021FC9B8 + add r4, r0, #0 +_021F5D8E: + ldr r3, [r5, #0xc] + add r0, r5, #0 + lsl r3, r3, #2 + ldr r3, [r7, r3] + add r1, r6, #0 + add r2, r4, #0 + blx r3 + cmp r0, #0 + bne _021F5D8E + pop {r3, r4, r5, r6, r7, pc} + nop +_021F5DA4: .word UNK05_021FC9B8 + + thumb_func_start MOD05_021F5DA8 +MOD05_021F5DA8: ; 0x021F5DA8 + push {r3, r4, r5, lr} + add r4, r2, #0 + add r5, r0, #0 + bl MOD05_021F60C4 + add r0, r4, #0 + bl FUN_02058914 + mov r0, #1 + str r0, [r5, #0xc] + pop {r3, r4, r5, pc} + .align 2, 0 + + thumb_func_start MOD05_021F5DC0 +MOD05_021F5DC0: ; 0x021F5DC0 + push {r4, r5, r6, lr} + add r6, r2, #0 + add r5, r0, #0 + add r0, r6, #0 + add r4, r1, #0 + bl FUN_0205AD98 + cmp r0, #1 + bne _021F5DF2 + add r0, r6, #0 + bl FUN_0205AE50 + add r0, r4, #0 + mov r1, #0x20 + bl MOD05_021E5FD8 + add r0, r4, #0 + bl MOD05_021E5FE0 + add r0, r6, #0 + mov r1, #1 + bl FUN_02058544 + mov r0, #2 + str r0, [r5, #0xc] +_021F5DF2: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start MOD05_021F5DF8 +MOD05_021F5DF8: ; 0x021F5DF8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x10] + add r0, r0, #1 + str r0, [r4, #0x10] + cmp r0, #0xa + bne _021F5E0E + mov r0, #0x65 + lsl r0, r0, #4 + bl PlaySE +_021F5E0E: + ldr r0, [r4, #0x10] + cmp r0, #0x22 + bge _021F5E18 + mov r0, #0 + pop {r4, pc} +_021F5E18: + ldr r0, [r4] + cmp r0, #1 + bne _021F5E22 + mov r0, #3 + b _021F5E24 +_021F5E22: + mov r0, #0xc +_021F5E24: + str r0, [r4, #0xc] + mov r0, #0 + str r0, [r4, #0x10] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + + thumb_func_start MOD05_021F5E30 +MOD05_021F5E30: ; 0x021F5E30 + push {r4, lr} + add r4, r0, #0 + bl LCRandom + lsr r1, r0, #0x1f + lsl r0, r0, #0x1e + sub r0, r0, r1 + mov r2, #0x1e + ror r0, r2 + add r0, r1, r0 + add r0, r0, #1 + add r1, r0, #0 + mul r1, r2 + str r1, [r4, #0x14] + ldr r0, [r4, #0x1c] + lsl r1, r0, #2 + ldr r0, _021F5E60 ; =UNK05_021FC9AC + ldr r0, [r0, r1] + str r0, [r4, #0x18] + mov r0, #4 + str r0, [r4, #0xc] + mov r0, #1 + pop {r4, pc} + nop +_021F5E60: .word UNK05_021FC9AC + + thumb_func_start MOD05_021F5E64 +MOD05_021F5E64: ; 0x021F5E64 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x14] + add r4, r2, #0 + sub r0, r0, #1 + str r0, [r5, #0x14] + bl MOD05_021F6098 + cmp r0, #1 + bne _021F5E80 + mov r0, #0xa + str r0, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, pc} +_021F5E80: + ldr r0, [r5, #0x14] + cmp r0, #0 + ble _021F5E8A + mov r0, #0 + pop {r3, r4, r5, pc} +_021F5E8A: + add r0, r4, #0 + mov r1, #2 + bl FUN_02058544 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD05_021E7AC0 + str r0, [r5, #0x24] + mov r0, #5 + str r0, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + + thumb_func_start MOD05_021F5EA8 +MOD05_021F5EA8: ; 0x021F5EA8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x18] + sub r0, r0, #1 + str r0, [r4, #0x18] + bl MOD05_021F6098 + cmp r0, #1 + bne _021F5EC2 + mov r0, #6 + str r0, [r4, #0xc] + mov r0, #1 + pop {r4, pc} +_021F5EC2: + ldr r0, [r4, #0x18] + cmp r0, #0 + ble _021F5ECC + mov r0, #0 + pop {r4, pc} +_021F5ECC: + mov r0, #0xb + str r0, [r4, #0xc] + mov r0, #0 + pop {r4, pc} + + thumb_func_start MOD05_021F5ED4 +MOD05_021F5ED4: ; 0x021F5ED4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x24] + add r4, r2, #0 + bl FUN_02064520 + mov r0, #0 + str r0, [r5, #0x24] + add r0, r4, #0 + mov r1, #3 + bl FUN_02058544 + mov r0, #0 + str r0, [r5, #0x10] + mov r1, #7 + str r1, [r5, #0xc] + pop {r3, r4, r5, pc} + .align 2, 0 + + thumb_func_start MOD05_021F5EF8 +MOD05_021F5EF8: ; 0x021F5EF8 + push {r3, lr} + ldr r1, [r0, #0x10] + add r1, r1, #1 + str r1, [r0, #0x10] + cmp r1, #0xf + ble _021F5F12 + mov r1, #0 + str r1, [r0, #0x10] + mov r1, #8 + str r1, [r0, #0xc] + mov r1, #0x39 + bl MOD05_021F6140 +_021F5F12: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + + thumb_func_start MOD05_021F5F18 +MOD05_021F5F18: ; 0x021F5F18 + push {r4, lr} + add r4, r0, #0 + bl MOD05_021F617C + cmp r0, #0 + bne _021F5F28 + mov r0, #0 + pop {r4, pc} +_021F5F28: + mov r0, #9 + str r0, [r4, #0xc] + mov r0, #1 + pop {r4, pc} + + thumb_func_start MOD05_021F5F30 +MOD05_021F5F30: ; 0x021F5F30 + mov r2, #1 + str r2, [r0, #8] + mov r1, #0xf + str r1, [r0, #0xc] + add r0, r2, #0 + bx lr + + thumb_func_start MOD05_021F5F3C +MOD05_021F5F3C: ; 0x021F5F3C + push {r4, lr} + add r4, r0, #0 + add r0, r2, #0 + mov r1, #0 + bl FUN_02058544 + add r0, r4, #0 + mov r1, #0x38 + bl MOD05_021F6140 + mov r0, #0x10 + str r0, [r4, #0x10] + mov r0, #0xe + str r0, [r4, #0xc] + mov r0, #1 + pop {r4, pc} + + thumb_func_start MOD05_021F5F5C +MOD05_021F5F5C: ; 0x021F5F5C + push {r4, lr} + add r4, r0, #0 + add r0, r2, #0 + mov r1, #0 + bl FUN_02058544 + add r0, r4, #0 + mov r1, #0x37 + bl MOD05_021F6140 + mov r0, #0x10 + str r0, [r4, #0x10] + mov r0, #0xe + str r0, [r4, #0xc] + ldr r0, [r4, #0x20] + ldr r0, [r0, #0xc] + bl FUN_02029FC8 + mov r1, #0x49 + bl FUN_0202A0E8 + ldr r0, [r4, #0x1c] + bl MOD05_021F61B0 + add r2, r0, #0 + mov r1, #0 + ldr r0, [r4, #0x20] + add r3, r1, #0 + bl FUN_02061208 + mov r0, #1 + pop {r4, pc} + + thumb_func_start MOD05_021F5F9C +MOD05_021F5F9C: ; 0x021F5F9C + mov r1, #0x78 + str r1, [r0, #0x10] + mov r1, #0xd + str r1, [r0, #0xc] + mov r0, #1 + bx lr + + thumb_func_start MOD05_021F5FA8 +MOD05_021F5FA8: ; 0x021F5FA8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x10] + add r4, r2, #0 + sub r0, r0, #1 + str r0, [r5, #0x10] + bl MOD05_021F6098 + cmp r0, #1 + bne _021F5FC4 + mov r0, #0xa + str r0, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, pc} +_021F5FC4: + ldr r0, [r5, #0x10] + cmp r0, #0 + beq _021F5FCE + mov r0, #0 + pop {r3, r4, r5, pc} +_021F5FCE: + add r0, r4, #0 + mov r1, #0 + bl FUN_02058544 + add r0, r5, #0 + mov r1, #0x36 + bl MOD05_021F6140 + mov r0, #0x10 + str r0, [r5, #0x10] + mov r0, #0xe + str r0, [r5, #0xc] + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + + thumb_func_start MOD05_021F5FEC +MOD05_021F5FEC: ; 0x021F5FEC + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x10] + add r1, r1, #1 + str r1, [r4, #0x10] + cmp r1, #0x10 + bge _021F5FFE + mov r0, #0 + pop {r4, pc} +_021F5FFE: + mov r1, #0x10 + str r1, [r4, #0x10] + bl MOD05_021F617C + cmp r0, #0 + bne _021F600E + mov r0, #0 + pop {r4, pc} +_021F600E: + mov r0, #0xf + str r0, [r4, #0xc] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + + thumb_func_start MOD05_021F6018 +MOD05_021F6018: ; 0x021F6018 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x24] + add r4, r1, #0 + cmp r0, #0 + beq _021F602C + bl FUN_02064520 + mov r0, #0 + str r0, [r5, #0x24] +_021F602C: + add r0, r5, #0 + bl MOD05_021F60FC + add r0, r4, #0 + bl FUN_020553C4 + bl FUN_02055648 + add r1, r0, #0 + add r0, r4, #0 + bl MOD05_021E5FD8 + add r0, r4, #0 + bl MOD05_021E5FE0 + mov r0, #0 + str r0, [r5, #0x10] + mov r0, #0x10 + str r0, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + + thumb_func_start MOD05_021F6058 +MOD05_021F6058: ; 0x021F6058 + ldr r1, [r0, #0x10] + add r1, r1, #1 + str r1, [r0, #0x10] + cmp r1, #2 + ble _021F6066 + mov r1, #0x11 + str r1, [r0, #0xc] +_021F6066: + mov r0, #0 + bx lr + .align 2, 0 + + thumb_func_start MOD05_021F606C +MOD05_021F606C: ; 0x021F606C + mov r1, #1 + str r1, [r0, #4] + mov r0, #0 + bx lr + + thumb_func_start MOD05_021F6074 +MOD05_021F6074: ; 0x021F6074 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #4 + add r1, r5, #0 + bl AllocFromHeapAtEnd + add r4, r0, #0 + bne _021F6088 + bl GF_AssertFail +_021F6088: + add r0, r4, #0 + mov r1, #0 + add r2, r5, #0 + bl memset + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + + thumb_func_start MOD05_021F6098 +MOD05_021F6098: ; 0x021F6098 + ldr r0, _021F60A8 ; =gMain + ldr r1, [r0, #0x48] + mov r0, #1 + tst r1, r0 + bne _021F60A4 + mov r0, #0 +_021F60A4: + bx lr + nop +_021F60A8: .word gMain + + thumb_func_start MOD05_021F60AC +MOD05_021F60AC: ; 0x021F60AC + ldr r0, _021F60C0 ; =gMain + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _021F60BA + mov r0, #1 + bx lr +_021F60BA: + mov r0, #0 + bx lr + nop +_021F60C0: .word gMain + + thumb_func_start MOD05_021F60C4 +MOD05_021F60C4: ; 0x021F60C4 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + mov r1, #0x1a + mov r2, #0xc7 + mov r3, #4 + bl NewMsgDataFromNarc + str r0, [r4, #0x48] + mov r0, #1 + lsl r0, r0, #0xa + mov r1, #4 + bl String_ctor + str r0, [r4, #0x2c] + mov r0, #1 + lsl r0, r0, #0xa + mov r1, #4 + bl String_ctor + str r0, [r4, #0x30] + mov r0, #8 + mov r1, #0x40 + mov r2, #4 + bl ScrStrBufs_new_custom + str r0, [r4, #0x34] + pop {r4, pc} + + thumb_func_start MOD05_021F60FC +MOD05_021F60FC: ; 0x021F60FC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x34] + bl ScrStrBufs_delete + ldr r0, [r4, #0x2c] + bl String_dtor + ldr r0, [r4, #0x30] + bl String_dtor + ldr r0, [r4, #0x48] + bl DestroyMsgData + pop {r4, pc} + .align 2, 0 + + thumb_func_start MOD05_021F611C +MOD05_021F611C: ; 0x021F611C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r4, [r5, #0x20] + add r1, r5, #0 + ldr r0, [r4, #8] + add r1, #0x38 + mov r2, #3 + bl FUN_020545B8 + ldr r0, [r4, #0xc] + bl Sav2_PlayerData_GetOptionsAddr + add r5, #0x38 + add r1, r0, #0 + add r0, r5, #0 + bl FUN_02054608 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021F6140 +MOD05_021F6140: ; 0x021F6140 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + bl MOD05_021F611C + ldr r0, [r5, #0x48] + ldr r2, [r5, #0x30] + add r1, r6, #0 + ldr r4, [r5, #0x20] + bl ReadMsgDataIntoString + ldr r0, [r5, #0x34] + ldr r1, [r5, #0x2c] + ldr r2, [r5, #0x30] + bl StringExpandPlaceholders + ldr r0, [r4, #0xc] + bl Sav2_PlayerData_GetOptionsAddr + add r2, r0, #0 + add r0, r5, #0 + ldr r1, [r5, #0x2c] + add r0, #0x38 + mov r3, #1 + bl FUN_02054658 + add r5, #0x28 + strb r0, [r5] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start MOD05_021F617C +MOD05_021F617C: ; 0x021F617C + push {r4, lr} + add r4, r0, #0 + add r0, #0x28 + ldrb r0, [r0] + bl FUN_020546C8 + cmp r0, #1 + bne _021F61AA + bl MOD05_021F60AC + cmp r0, #1 + bne _021F61AA + add r0, r4, #0 + add r0, #0x38 + mov r1, #0 + bl FUN_0200D0E0 + add r4, #0x38 + add r0, r4, #0 + bl RemoveWindow + mov r0, #1 + pop {r4, pc} +_021F61AA: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start MOD05_021F61B0 +MOD05_021F61B0: ; 0x021F61B0 + push {r3, lr} + cmp r0, #0 + beq _021F61C2 + cmp r0, #1 + beq _021F61C6 + cmp r0, #2 + beq _021F61CA + bl GF_AssertFail +_021F61C2: + ldr r0, _021F61D0 ; =0x000001BD + pop {r3, pc} +_021F61C6: + ldr r0, _021F61D4 ; =0x000001BE + pop {r3, pc} +_021F61CA: + ldr r0, _021F61D8 ; =0x000001BF + pop {r3, pc} + nop +_021F61D0: .word 0x000001BD +_021F61D4: .word 0x000001BE +_021F61D8: .word 0x000001BF + + .section .rodata + + .global UNK05_021FC718 +UNK05_021FC718: ; 0x021FC718 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 + .byte 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00 + .byte 0x1F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 + .byte 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00 + .byte 0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FC79C +UNK05_021FC79C: ; 0x021FC79C + .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 + .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .byte 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global UNK05_021FC820 +UNK05_021FC820: ; 0x021FC820 + .word 0x00, MOD06_022492B0, MOD06_022492D4 + .word 0x01, MOD06_022497A0, MOD06_022497BC + .word 0x02, MOD05_021E52A8, MOD05_021E52C4 + .word 0x03, MOD05_021E5300, MOD05_021E531C + .word 0x04, MOD05_021E5564, MOD05_021E5580 + .word 0x05, MOD05_021E55BC, MOD05_021E55D8 + .word 0x06, MOD05_021E577C, MOD05_021E5798 + .word 0x07, MOD05_021E5918, MOD05_021E5934 + .word 0x08, MOD05_021E5AB4, MOD05_021E5AD0 + .word 0x09, MOD05_021E5C8C, MOD05_021E5CA8 + .word 0x0A, MOD05_021E5E10, MOD05_021E5E2C + .word 0x0B, MOD06_02249C98, MOD06_02249CB8 + .word 0x0C, MOD06_0224A040, MOD06_0224A05C + .word 0x0D, MOD06_0224A280, MOD06_0224A29C + .word 0x0E, MOD06_0224A63C, MOD06_0224A658 + .word 0x0F, MOD06_0224A87C, MOD06_0224A898 + .word 0x10, MOD05_021EDB70, MOD05_021EDB8C + .word 0x11, MOD06_0224AB54, MOD06_0224AB70 + .word 0x12, MOD06_0224AE10, MOD06_0224AE24 + .word 0x13, MOD06_0224B0A8, MOD06_0224B0C4 + .word 0x14, MOD06_0224B248, MOD06_0224B264 + .word 0x15, MOD06_0224B3E4, MOD06_0224B400 + .word 0x16, MOD05_021E779C, MOD05_021E77B0 + .word 0x17, MOD06_0224B948, MOD06_0224B964 + .word 0x18, MOD05_021ED9C0, MOD05_021ED9DC + .word 0x19, MOD06_0224BB50, MOD06_0224BB6C + .word 0x1A, MOD06_0224BCF4, MOD06_0224BD10 + .word 0x1B, MOD06_0224BF9C, MOD06_0224BFB8 + .word 0x1C, MOD06_0224CE30, MOD06_0224CE4C + .word 0x1D, MOD06_0224D244, MOD06_0224D260 + .word 0x1E, MOD06_0224A44C, MOD06_0224A460 + .word 0x1F, MOD06_0224A9E8, MOD06_0224AA04 + .word 0x20, 0x00000000, 0x00000000 + + .global UNK05_021FC9AC +UNK05_021FC9AC: ; 0x021FC9AC + .word 45, 30, 15 + + .global UNK05_021FC9B8 +UNK05_021FC9B8: ; 0x021FC9B8 + .word MOD05_021F5DA8, MOD05_021F5DC0, MOD05_021F5DF8, MOD05_021F5E30 + .word MOD05_021F5E64, MOD05_021F5EA8, MOD05_021F5ED4, MOD05_021F5EF8 + .word MOD05_021F5F18, MOD05_021F5F30, MOD05_021F5F3C, MOD05_021F5F5C + .word MOD05_021F5F9C, MOD05_021F5FA8, MOD05_021F5FEC, MOD05_021F6018 + .word MOD05_021F6058, MOD05_021F606C diff --git a/arm9/modules/05/asm/mod05_021F61DC.s b/arm9/modules/05/asm/mod05_021F61DC.s new file mode 100644 index 00000000..72d0f1a7 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F61DC.s @@ -0,0 +1,521 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F61DC +MOD05_021F61DC: ; 0x021F61DC + lsl r1, r0, #2 + ldr r0, _021F61E4 ; =UNK05_021FCA00 + ldrh r0, [r0, r1] + bx lr + .align 2, 0 +_021F61E4: .word UNK05_021FCA00 + + thumb_func_start MOD05_021F61E8 +MOD05_021F61E8: ; 0x021F61E8 + lsl r1, r0, #2 + ldr r0, _021F61F0 ; =UNK05_021FCA00 + 2 + ldrh r0, [r0, r1] + bx lr + .align 2, 0 +_021F61F0: .word UNK05_021FCA00 + 2 + + .section .rodata + + .global UNK05_021FCA00 +UNK05_021FCA00: ; 0x021FCA00 + .short 0x0000, 0x0000 ; SPECIES_NONE + .short 0x0001, 0x0001 ; SPECIES_BULBASAUR + .short 0x0001, 0x0001 ; SPECIES_IVYSAUR + .short 0x0002, 0x0001 ; SPECIES_VENUSAUR + .short 0x0001, 0x0001 ; SPECIES_CHARMANDER + .short 0x0002, 0x0001 ; SPECIES_CHARMELEON + .short 0x0002, 0x0001 ; SPECIES_CHARIZARD + .short 0x0001, 0x0001 ; SPECIES_SQUIRTLE + .short 0x0001, 0x0001 ; SPECIES_WARTORTLE + .short 0x0002, 0x0001 ; SPECIES_BLASTOISE + .short 0x0001, 0x0001 ; SPECIES_CATERPIE + .short 0x0005, 0x0000 ; SPECIES_METAPOD + .short 0x0001, 0x0001 ; SPECIES_BUTTERFREE + .short 0x0001, 0x0001 ; SPECIES_WEEDLE + .short 0x0005, 0x0000 ; SPECIES_KAKUNA + .short 0x0002, 0x0001 ; SPECIES_BEEDRILL + .short 0x0001, 0x0001 ; SPECIES_PIDGEY + .short 0x0001, 0x0001 ; SPECIES_PIDGEOTTO + .short 0x0002, 0x0001 ; SPECIES_PIDGEOT + .short 0x0001, 0x0001 ; SPECIES_RATTATA + .short 0x0002, 0x0001 ; SPECIES_RATICATE + .short 0x0002, 0x0001 ; SPECIES_SPEAROW + .short 0x0002, 0x0001 ; SPECIES_FEAROW + .short 0x0003, 0x0000 ; SPECIES_EKANS + .short 0x0003, 0x0000 ; SPECIES_ARBOK + .short 0x0001, 0x0001 ; SPECIES_PIKACHU + .short 0x0001, 0x0001 ; SPECIES_RAICHU + .short 0x0001, 0x0001 ; SPECIES_SANDSHREW + .short 0x0001, 0x0001 ; SPECIES_SANDSLASH + .short 0x0001, 0x0001 ; SPECIES_NIDORAN_F + .short 0x0001, 0x0001 ; SPECIES_NIDORINA + .short 0x0002, 0x0001 ; SPECIES_NIDOQUEEN + .short 0x0001, 0x0001 ; SPECIES_NIDORAN_M + .short 0x0002, 0x0001 ; SPECIES_NIDORINO + .short 0x0002, 0x0001 ; SPECIES_NIDOKING + .short 0x0001, 0x0001 ; SPECIES_CLEFAIRY + .short 0x0001, 0x0001 ; SPECIES_CLEFABLE + .short 0x0001, 0x0001 ; SPECIES_VULPIX + .short 0x0002, 0x0001 ; SPECIES_NINETALES + .short 0x0001, 0x0001 ; SPECIES_JIGGLYPUFF + .short 0x0001, 0x0001 ; SPECIES_WIGGLYTUFF + .short 0x0003, 0x0000 ; SPECIES_ZUBAT + .short 0x0003, 0x0001 ; SPECIES_GOLBAT + .short 0x0001, 0x0001 ; SPECIES_ODDISH + .short 0x0001, 0x0001 ; SPECIES_GLOOM + .short 0x0001, 0x0001 ; SPECIES_VILEPLUME + .short 0x0005, 0x0001 ; SPECIES_PARAS + .short 0x0005, 0x0001 ; SPECIES_PARASECT + .short 0x0001, 0x0001 ; SPECIES_VENONAT + .short 0x0005, 0x0001 ; SPECIES_VENOMOTH + .short 0x0001, 0x0000 ; SPECIES_DIGLETT + .short 0x0001, 0x0000 ; SPECIES_DUGTRIO + .short 0x0001, 0x0001 ; SPECIES_MEOWTH + .short 0x0002, 0x0001 ; SPECIES_PERSIAN + .short 0x0004, 0x0001 ; SPECIES_PSYDUCK + .short 0x0002, 0x0001 ; SPECIES_GOLDUCK + .short 0x0002, 0x0001 ; SPECIES_MANKEY + .short 0x0002, 0x0001 ; SPECIES_PRIMEAPE + .short 0x0001, 0x0001 ; SPECIES_GROWLITHE + .short 0x0002, 0x0001 ; SPECIES_ARCANINE + .short 0x0001, 0x0001 ; SPECIES_POLIWAG + .short 0x0001, 0x0001 ; SPECIES_POLIWHIRL + .short 0x0002, 0x0001 ; SPECIES_POLIWRATH + .short 0x0001, 0x0001 ; SPECIES_ABRA + .short 0x0002, 0x0001 ; SPECIES_KADABRA + .short 0x0002, 0x0001 ; SPECIES_ALAKAZAM + .short 0x0001, 0x0001 ; SPECIES_MACHOP + .short 0x0002, 0x0001 ; SPECIES_MACHOKE + .short 0x0002, 0x0001 ; SPECIES_MACHAMP + .short 0x0001, 0x0001 ; SPECIES_BELLSPROUT + .short 0x0004, 0x0000 ; SPECIES_WEEPINBELL + .short 0x0004, 0x0000 ; SPECIES_VICTREEBEL + .short 0x0002, 0x0000 ; SPECIES_TENTACOOL + .short 0x0002, 0x0000 ; SPECIES_TENTACRUEL + .short 0x0001, 0x0000 ; SPECIES_GEODUDE + .short 0x0002, 0x0001 ; SPECIES_GRAVELER + .short 0x0002, 0x0001 ; SPECIES_GOLEM + .short 0x0001, 0x0001 ; SPECIES_PONYTA + .short 0x0002, 0x0001 ; SPECIES_RAPIDASH + .short 0x0004, 0x0001 ; SPECIES_SLOWPOKE + .short 0x0004, 0x0001 ; SPECIES_SLOWBRO + .short 0x0005, 0x0001 ; SPECIES_MAGNEMITE + .short 0x0005, 0x0001 ; SPECIES_MAGNETON + .short 0x0002, 0x0001 ; SPECIES_FARFETCHD + .short 0x0001, 0x0001 ; SPECIES_DODUO + .short 0x0002, 0x0001 ; SPECIES_DODRIO + .short 0x0004, 0x0000 ; SPECIES_SEEL + .short 0x0004, 0x0000 ; SPECIES_DEWGONG + .short 0x0003, 0x0000 ; SPECIES_GRIMER + .short 0x0003, 0x0000 ; SPECIES_MUK + .short 0x0004, 0x0000 ; SPECIES_SHELLDER + .short 0x0002, 0x0000 ; SPECIES_CLOYSTER + .short 0x0003, 0x0000 ; SPECIES_GASTLY + .short 0x0003, 0x0000 ; SPECIES_HAUNTER + .short 0x0003, 0x0001 ; SPECIES_GENGAR + .short 0x0002, 0x0000 ; SPECIES_ONIX + .short 0x0003, 0x0001 ; SPECIES_DROWZEE + .short 0x0003, 0x0001 ; SPECIES_HYPNO + .short 0x0001, 0x0001 ; SPECIES_KRABBY + .short 0x0002, 0x0001 ; SPECIES_KINGLER + .short 0x0002, 0x0000 ; SPECIES_VOLTORB + .short 0x0002, 0x0000 ; SPECIES_ELECTRODE + .short 0x0001, 0x0000 ; SPECIES_EXEGGCUTE + .short 0x0004, 0x0001 ; SPECIES_EXEGGUTOR + .short 0x0001, 0x0001 ; SPECIES_CUBONE + .short 0x0002, 0x0001 ; SPECIES_MAROWAK + .short 0x0002, 0x0001 ; SPECIES_HITMONLEE + .short 0x0002, 0x0001 ; SPECIES_HITMONCHAN + .short 0x0004, 0x0001 ; SPECIES_LICKITUNG + .short 0x0003, 0x0000 ; SPECIES_KOFFING + .short 0x0003, 0x0000 ; SPECIES_WEEZING + .short 0x0002, 0x0001 ; SPECIES_RHYHORN + .short 0x0002, 0x0001 ; SPECIES_RHYDON + .short 0x0001, 0x0001 ; SPECIES_CHANSEY + .short 0x0001, 0x0001 ; SPECIES_TANGELA + .short 0x0002, 0x0001 ; SPECIES_KANGASKHAN + .short 0x0001, 0x0000 ; SPECIES_HORSEA + .short 0x0002, 0x0000 ; SPECIES_SEADRA + .short 0x0001, 0x0000 ; SPECIES_GOLDEEN + .short 0x0002, 0x0000 ; SPECIES_SEAKING + .short 0x0005, 0x0001 ; SPECIES_STARYU + .short 0x0005, 0x0001 ; SPECIES_STARMIE + .short 0x0001, 0x0001 ; SPECIES_MR_MIME + .short 0x0002, 0x0001 ; SPECIES_SCYTHER + .short 0x0001, 0x0000 ; SPECIES_JYNX + .short 0x0002, 0x0001 ; SPECIES_ELECTABUZZ + .short 0x0002, 0x0001 ; SPECIES_MAGMAR + .short 0x0002, 0x0001 ; SPECIES_PINSIR + .short 0x0002, 0x0001 ; SPECIES_TAUROS + .short 0x0004, 0x0000 ; SPECIES_MAGIKARP + .short 0x0003, 0x0000 ; SPECIES_GYARADOS + .short 0x0001, 0x0000 ; SPECIES_LAPRAS + .short 0x0004, 0x0000 ; SPECIES_DITTO + .short 0x0001, 0x0001 ; SPECIES_EEVEE + .short 0x0002, 0x0001 ; SPECIES_VAPOREON + .short 0x0002, 0x0001 ; SPECIES_JOLTEON + .short 0x0002, 0x0001 ; SPECIES_FLAREON + .short 0x0005, 0x0001 ; SPECIES_PORYGON + .short 0x0001, 0x0001 ; SPECIES_OMANYTE + .short 0x0002, 0x0001 ; SPECIES_OMASTAR + .short 0x0005, 0x0001 ; SPECIES_KABUTO + .short 0x0002, 0x0001 ; SPECIES_KABUTOPS + .short 0x0002, 0x0001 ; SPECIES_AERODACTYL + .short 0x0004, 0x0001 ; SPECIES_SNORLAX + .short 0x0002, 0x0001 ; SPECIES_ARTICUNO + .short 0x0002, 0x0001 ; SPECIES_ZAPDOS + .short 0x0002, 0x0001 ; SPECIES_MOLTRES + .short 0x0001, 0x0000 ; SPECIES_DRATINI + .short 0x0002, 0x0000 ; SPECIES_DRAGONAIR + .short 0x0002, 0x0001 ; SPECIES_DRAGONITE + .short 0x0002, 0x0001 ; SPECIES_MEWTWO + .short 0x0001, 0x0001 ; SPECIES_MEW + .short 0x0001, 0x0001 ; SPECIES_CHIKORITA + .short 0x0001, 0x0001 ; SPECIES_BAYLEEF + .short 0x0002, 0x0001 ; SPECIES_MEGANIUM + .short 0x0001, 0x0001 ; SPECIES_CYNDAQUIL + .short 0x0002, 0x0001 ; SPECIES_QUILAVA + .short 0x0002, 0x0001 ; SPECIES_TYPHLOSION + .short 0x0001, 0x0001 ; SPECIES_TOTODILE + .short 0x0002, 0x0001 ; SPECIES_CROCONAW + .short 0x0002, 0x0001 ; SPECIES_FERALIGATR + .short 0x0001, 0x0001 ; SPECIES_SENTRET + .short 0x0001, 0x0001 ; SPECIES_FURRET + .short 0x0001, 0x0001 ; SPECIES_HOOTHOOT + .short 0x0002, 0x0001 ; SPECIES_NOCTOWL + .short 0x0001, 0x0001 ; SPECIES_LEDYBA + .short 0x0002, 0x0001 ; SPECIES_LEDIAN + .short 0x0003, 0x0001 ; SPECIES_SPINARAK + .short 0x0003, 0x0001 ; SPECIES_ARIADOS + .short 0x0003, 0x0000 ; SPECIES_CROBAT + .short 0x0004, 0x0000 ; SPECIES_CHINCHOU + .short 0x0002, 0x0000 ; SPECIES_LANTURN + .short 0x0001, 0x0001 ; SPECIES_PICHU + .short 0x0001, 0x0001 ; SPECIES_CLEFFA + .short 0x0001, 0x0001 ; SPECIES_IGGLYBUFF + .short 0x0001, 0x0001 ; SPECIES_TOGEPI + .short 0x0001, 0x0001 ; SPECIES_TOGETIC + .short 0x0001, 0x0001 ; SPECIES_NATU + .short 0x0005, 0x0001 ; SPECIES_XATU + .short 0x0001, 0x0001 ; SPECIES_MAREEP + .short 0x0001, 0x0001 ; SPECIES_FLAAFFY + .short 0x0001, 0x0001 ; SPECIES_AMPHAROS + .short 0x0001, 0x0000 ; SPECIES_BELLOSSOM + .short 0x0001, 0x0001 ; SPECIES_MARILL + .short 0x0001, 0x0001 ; SPECIES_AZUMARILL + .short 0x0004, 0x0001 ; SPECIES_SUDOWOODO + .short 0x0001, 0x0001 ; SPECIES_POLITOED + .short 0x0001, 0x0001 ; SPECIES_HOPPIP + .short 0x0001, 0x0001 ; SPECIES_SKIPLOOM + .short 0x0001, 0x0001 ; SPECIES_JUMPLUFF + .short 0x0001, 0x0001 ; SPECIES_AIPOM + .short 0x0001, 0x0000 ; SPECIES_SUNKERN + .short 0x0001, 0x0001 ; SPECIES_SUNFLORA + .short 0x0001, 0x0001 ; SPECIES_YANMA + .short 0x0001, 0x0001 ; SPECIES_WOOPER + .short 0x0004, 0x0001 ; SPECIES_QUAGSIRE + .short 0x0002, 0x0001 ; SPECIES_ESPEON + .short 0x0002, 0x0001 ; SPECIES_UMBREON + .short 0x0003, 0x0001 ; SPECIES_MURKROW + .short 0x0004, 0x0001 ; SPECIES_SLOWKING + .short 0x0003, 0x0000 ; SPECIES_MISDREAVUS + .short 0x0005, 0x0000 ; SPECIES_UNOWN + .short 0x0004, 0x0001 ; SPECIES_WOBBUFFET + .short 0x0001, 0x0001 ; SPECIES_GIRAFARIG + .short 0x0005, 0x0000 ; SPECIES_PINECO + .short 0x0005, 0x0000 ; SPECIES_FORRETRESS + .short 0x0004, 0x0000 ; SPECIES_DUNSPARCE + .short 0x0004, 0x0001 ; SPECIES_GLIGAR + .short 0x0002, 0x0000 ; SPECIES_STEELIX + .short 0x0001, 0x0001 ; SPECIES_SNUBBULL + .short 0x0001, 0x0001 ; SPECIES_GRANBULL + .short 0x0002, 0x0000 ; SPECIES_QWILFISH + .short 0x0002, 0x0001 ; SPECIES_SCIZOR + .short 0x0001, 0x0001 ; SPECIES_SHUCKLE + .short 0x0002, 0x0001 ; SPECIES_HERACROSS + .short 0x0002, 0x0001 ; SPECIES_SNEASEL + .short 0x0001, 0x0001 ; SPECIES_TEDDIURSA + .short 0x0002, 0x0001 ; SPECIES_URSARING + .short 0x0004, 0x0000 ; SPECIES_SLUGMA + .short 0x0004, 0x0000 ; SPECIES_MAGCARGO + .short 0x0001, 0x0001 ; SPECIES_SWINUB + .short 0x0004, 0x0001 ; SPECIES_PILOSWINE + .short 0x0001, 0x0001 ; SPECIES_CORSOLA + .short 0x0005, 0x0000 ; SPECIES_REMORAID + .short 0x0004, 0x0001 ; SPECIES_OCTILLERY + .short 0x0001, 0x0001 ; SPECIES_DELIBIRD + .short 0x0002, 0x0000 ; SPECIES_MANTINE + .short 0x0002, 0x0001 ; SPECIES_SKARMORY + .short 0x0003, 0x0001 ; SPECIES_HOUNDOUR + .short 0x0003, 0x0001 ; SPECIES_HOUNDOOM + .short 0x0002, 0x0000 ; SPECIES_KINGDRA + .short 0x0001, 0x0001 ; SPECIES_PHANPY + .short 0x0002, 0x0001 ; SPECIES_DONPHAN + .short 0x0005, 0x0001 ; SPECIES_PORYGON2 + .short 0x0002, 0x0001 ; SPECIES_STANTLER + .short 0x0004, 0x0001 ; SPECIES_SMEARGLE + .short 0x0001, 0x0001 ; SPECIES_TYROGUE + .short 0x0002, 0x0001 ; SPECIES_HITMONTOP + .short 0x0001, 0x0001 ; SPECIES_SMOOCHUM + .short 0x0001, 0x0001 ; SPECIES_ELEKID + .short 0x0001, 0x0001 ; SPECIES_MAGBY + .short 0x0001, 0x0001 ; SPECIES_MILTANK + .short 0x0001, 0x0001 ; SPECIES_BLISSEY + .short 0x0002, 0x0001 ; SPECIES_RAIKOU + .short 0x0002, 0x0001 ; SPECIES_ENTEI + .short 0x0002, 0x0001 ; SPECIES_SUICUNE + .short 0x0001, 0x0001 ; SPECIES_LARVITAR + .short 0x0005, 0x0000 ; SPECIES_PUPITAR + .short 0x0003, 0x0001 ; SPECIES_TYRANITAR + .short 0x0002, 0x0001 ; SPECIES_LUGIA + .short 0x0002, 0x0001 ; SPECIES_HO_OH + .short 0x0001, 0x0001 ; SPECIES_CELEBI + .short 0x0001, 0x0001 ; SPECIES_TREECKO + .short 0x0002, 0x0001 ; SPECIES_GROVYLE + .short 0x0002, 0x0001 ; SPECIES_SCEPTILE + .short 0x0001, 0x0001 ; SPECIES_TORCHIC + .short 0x0002, 0x0001 ; SPECIES_COMBUSKEN + .short 0x0002, 0x0001 ; SPECIES_BLAZIKEN + .short 0x0001, 0x0001 ; SPECIES_MUDKIP + .short 0x0001, 0x0001 ; SPECIES_MARSHTOMP + .short 0x0002, 0x0001 ; SPECIES_SWAMPERT + .short 0x0001, 0x0001 ; SPECIES_POOCHYENA + .short 0x0002, 0x0001 ; SPECIES_MIGHTYENA + .short 0x0004, 0x0001 ; SPECIES_ZIGZAGOON + .short 0x0004, 0x0001 ; SPECIES_LINOONE + .short 0x0001, 0x0001 ; SPECIES_WURMPLE + .short 0x0005, 0x0000 ; SPECIES_SILCOON + .short 0x0001, 0x0001 ; SPECIES_BEAUTIFLY + .short 0x0005, 0x0000 ; SPECIES_CASCOON + .short 0x0002, 0x0001 ; SPECIES_DUSTOX + .short 0x0001, 0x0001 ; SPECIES_LOTAD + .short 0x0004, 0x0001 ; SPECIES_LOMBRE + .short 0x0004, 0x0001 ; SPECIES_LUDICOLO + .short 0x0005, 0x0001 ; SPECIES_SEEDOT + .short 0x0002, 0x0001 ; SPECIES_NUZLEAF + .short 0x0003, 0x0001 ; SPECIES_SHIFTRY + .short 0x0001, 0x0001 ; SPECIES_TAILLOW + .short 0x0002, 0x0001 ; SPECIES_SWELLOW + .short 0x0001, 0x0001 ; SPECIES_WINGULL + .short 0x0001, 0x0001 ; SPECIES_PELIPPER + .short 0x0001, 0x0001 ; SPECIES_RALTS + .short 0x0001, 0x0001 ; SPECIES_KIRLIA + .short 0x0001, 0x0001 ; SPECIES_GARDEVOIR + .short 0x0001, 0x0001 ; SPECIES_SURSKIT + .short 0x0002, 0x0000 ; SPECIES_MASQUERAIN + .short 0x0001, 0x0001 ; SPECIES_SHROOMISH + .short 0x0002, 0x0001 ; SPECIES_BRELOOM + .short 0x0004, 0x0001 ; SPECIES_SLAKOTH + .short 0x0002, 0x0001 ; SPECIES_VIGOROTH + .short 0x0004, 0x0001 ; SPECIES_SLAKING + .short 0x0005, 0x0001 ; SPECIES_NINCADA + .short 0x0002, 0x0001 ; SPECIES_NINJASK + .short 0x0004, 0x0001 ; SPECIES_SHEDINJA + .short 0x0004, 0x0001 ; SPECIES_WHISMUR + .short 0x0004, 0x0001 ; SPECIES_LOUDRED + .short 0x0002, 0x0001 ; SPECIES_EXPLOUD + .short 0x0001, 0x0001 ; SPECIES_MAKUHITA + .short 0x0002, 0x0001 ; SPECIES_HARIYAMA + .short 0x0001, 0x0001 ; SPECIES_AZURILL + .short 0x0005, 0x0001 ; SPECIES_NOSEPASS + .short 0x0001, 0x0001 ; SPECIES_SKITTY + .short 0x0001, 0x0001 ; SPECIES_DELCATTY + .short 0x0003, 0x0001 ; SPECIES_SABLEYE + .short 0x0001, 0x0001 ; SPECIES_MAWILE + .short 0x0001, 0x0001 ; SPECIES_ARON + .short 0x0002, 0x0001 ; SPECIES_LAIRON + .short 0x0002, 0x0001 ; SPECIES_AGGRON + .short 0x0001, 0x0001 ; SPECIES_MEDITITE + .short 0x0002, 0x0001 ; SPECIES_MEDICHAM + .short 0x0001, 0x0001 ; SPECIES_ELECTRIKE + .short 0x0002, 0x0001 ; SPECIES_MANECTRIC + .short 0x0001, 0x0001 ; SPECIES_PLUSLE + .short 0x0001, 0x0001 ; SPECIES_MINUN + .short 0x0002, 0x0001 ; SPECIES_VOLBEAT + .short 0x0001, 0x0001 ; SPECIES_ILLUMISE + .short 0x0001, 0x0001 ; SPECIES_ROSELIA + .short 0x0004, 0x0000 ; SPECIES_GULPIN + .short 0x0004, 0x0000 ; SPECIES_SWALOT + .short 0x0003, 0x0000 ; SPECIES_CARVANHA + .short 0x0003, 0x0000 ; SPECIES_SHARPEDO + .short 0x0001, 0x0000 ; SPECIES_WAILMER + .short 0x0002, 0x0000 ; SPECIES_WAILORD + .short 0x0004, 0x0001 ; SPECIES_NUMEL + .short 0x0004, 0x0001 ; SPECIES_CAMERUPT + .short 0x0004, 0x0001 ; SPECIES_TORKOAL + .short 0x0001, 0x0000 ; SPECIES_SPOINK + .short 0x0002, 0x0001 ; SPECIES_GRUMPIG + .short 0x0004, 0x0001 ; SPECIES_SPINDA + .short 0x0004, 0x0001 ; SPECIES_TRAPINCH + .short 0x0002, 0x0001 ; SPECIES_VIBRAVA + .short 0x0002, 0x0001 ; SPECIES_FLYGON + .short 0x0001, 0x0001 ; SPECIES_CACNEA + .short 0x0003, 0x0001 ; SPECIES_CACTURNE + .short 0x0001, 0x0001 ; SPECIES_SWABLU + .short 0x0001, 0x0001 ; SPECIES_ALTARIA + .short 0x0002, 0x0001 ; SPECIES_ZANGOOSE + .short 0x0003, 0x0000 ; SPECIES_SEVIPER + .short 0x0005, 0x0000 ; SPECIES_LUNATONE + .short 0x0005, 0x0000 ; SPECIES_SOLROCK + .short 0x0001, 0x0000 ; SPECIES_BARBOACH + .short 0x0004, 0x0000 ; SPECIES_WHISCASH + .short 0x0002, 0x0001 ; SPECIES_CORPHISH + .short 0x0003, 0x0001 ; SPECIES_CRAWDAUNT + .short 0x0005, 0x0001 ; SPECIES_BALTOY + .short 0x0005, 0x0001 ; SPECIES_CLAYDOL + .short 0x0005, 0x0001 ; SPECIES_LILEEP + .short 0x0005, 0x0001 ; SPECIES_CRADILY + .short 0x0005, 0x0000 ; SPECIES_ANORITH + .short 0x0002, 0x0001 ; SPECIES_ARMALDO + .short 0x0004, 0x0000 ; SPECIES_FEEBAS + .short 0x0002, 0x0000 ; SPECIES_MILOTIC + .short 0x0001, 0x0000 ; SPECIES_CASTFORM + .short 0x0001, 0x0001 ; SPECIES_KECLEON + .short 0x0003, 0x0000 ; SPECIES_SHUPPET + .short 0x0003, 0x0001 ; SPECIES_BANETTE + .short 0x0003, 0x0000 ; SPECIES_DUSKULL + .short 0x0003, 0x0001 ; SPECIES_DUSCLOPS + .short 0x0002, 0x0001 ; SPECIES_TROPIUS + .short 0x0001, 0x0000 ; SPECIES_CHIMECHO + .short 0x0003, 0x0001 ; SPECIES_ABSOL + .short 0x0004, 0x0001 ; SPECIES_WYNAUT + .short 0x0001, 0x0001 ; SPECIES_SNORUNT + .short 0x0002, 0x0000 ; SPECIES_GLALIE + .short 0x0001, 0x0000 ; SPECIES_SPHEAL + .short 0x0002, 0x0000 ; SPECIES_SEALEO + .short 0x0002, 0x0000 ; SPECIES_WALREIN + .short 0x0001, 0x0000 ; SPECIES_CLAMPERL + .short 0x0002, 0x0000 ; SPECIES_HUNTAIL + .short 0x0001, 0x0000 ; SPECIES_GOREBYSS + .short 0x0004, 0x0000 ; SPECIES_RELICANTH + .short 0x0001, 0x0000 ; SPECIES_LUVDISC + .short 0x0001, 0x0001 ; SPECIES_BAGON + .short 0x0005, 0x0001 ; SPECIES_SHELGON + .short 0x0002, 0x0001 ; SPECIES_SALAMENCE + .short 0x0005, 0x0001 ; SPECIES_BELDUM + .short 0x0005, 0x0001 ; SPECIES_METANG + .short 0x0002, 0x0001 ; SPECIES_METAGROSS + .short 0x0005, 0x0001 ; SPECIES_REGIROCK + .short 0x0005, 0x0001 ; SPECIES_REGICE + .short 0x0005, 0x0001 ; SPECIES_REGISTEEL + .short 0x0001, 0x0001 ; SPECIES_LATIAS + .short 0x0002, 0x0001 ; SPECIES_LATIOS + .short 0x0002, 0x0001 ; SPECIES_KYOGRE + .short 0x0002, 0x0001 ; SPECIES_GROUDON + .short 0x0002, 0x0000 ; SPECIES_RAYQUAZA + .short 0x0001, 0x0001 ; SPECIES_JIRACHI + .short 0x0002, 0x0001 ; SPECIES_DEOXYS + .short 0x0001, 0x0001 ; SPECIES_TURTWIG + .short 0x0001, 0x0001 ; SPECIES_GROTLE + .short 0x0002, 0x0001 ; SPECIES_TORTERRA + .short 0x0001, 0x0001 ; SPECIES_CHIMCHAR + .short 0x0002, 0x0001 ; SPECIES_MONFERNO + .short 0x0002, 0x0001 ; SPECIES_INFERNAPE + .short 0x0001, 0x0001 ; SPECIES_PIPLUP + .short 0x0002, 0x0001 ; SPECIES_PRINPLUP + .short 0x0002, 0x0001 ; SPECIES_EMPOLEON + .short 0x0001, 0x0001 ; SPECIES_STARLY + .short 0x0001, 0x0001 ; SPECIES_STARAVIA + .short 0x0002, 0x0001 ; SPECIES_STARAPTOR + .short 0x0004, 0x0001 ; SPECIES_BIDOOF + .short 0x0004, 0x0001 ; SPECIES_BIBAREL + .short 0x0001, 0x0001 ; SPECIES_KRICKETOT + .short 0x0002, 0x0001 ; SPECIES_KRICKETUNE + .short 0x0001, 0x0001 ; SPECIES_SHINX + .short 0x0001, 0x0001 ; SPECIES_LUXIO + .short 0x0002, 0x0001 ; SPECIES_LUXRAY + .short 0x0001, 0x0001 ; SPECIES_BUDEW + .short 0x0002, 0x0001 ; SPECIES_ROSERADE + .short 0x0002, 0x0001 ; SPECIES_CRANIDOS + .short 0x0002, 0x0001 ; SPECIES_RAMPARDOS + .short 0x0002, 0x0001 ; SPECIES_SHIELDON + .short 0x0002, 0x0001 ; SPECIES_BASTIODON + .short 0x0001, 0x0000 ; SPECIES_BURMY + .short 0x0001, 0x0000 ; SPECIES_WORMADAM + .short 0x0002, 0x0001 ; SPECIES_MOTHIM + .short 0x0001, 0x0000 ; SPECIES_COMBEE + .short 0x0001, 0x0000 ; SPECIES_VESPIQUEN + .short 0x0001, 0x0001 ; SPECIES_PACHIRISU + .short 0x0001, 0x0001 ; SPECIES_BUIZEL + .short 0x0002, 0x0001 ; SPECIES_FLOATZEL + .short 0x0001, 0x0001 ; SPECIES_CHERUBI + .short 0x0001, 0x0001 ; SPECIES_CHERRIM + .short 0x0001, 0x0001 ; SPECIES_SHELLOS + .short 0x0003, 0x0001 ; SPECIES_GASTRODON + .short 0x0001, 0x0001 ; SPECIES_AMBIPOM + .short 0x0003, 0x0000 ; SPECIES_DRIFLOON + .short 0x0003, 0x0000 ; SPECIES_DRIFBLIM + .short 0x0001, 0x0001 ; SPECIES_BUNEARY + .short 0x0001, 0x0001 ; SPECIES_LOPUNNY + .short 0x0003, 0x0000 ; SPECIES_MISMAGIUS + .short 0x0003, 0x0001 ; SPECIES_HONCHKROW + .short 0x0001, 0x0001 ; SPECIES_GLAMEOW + .short 0x0001, 0x0001 ; SPECIES_PURUGLY + .short 0x0001, 0x0001 ; SPECIES_CHINGLING + .short 0x0003, 0x0001 ; SPECIES_STUNKY + .short 0x0003, 0x0001 ; SPECIES_SKUNTANK + .short 0x0005, 0x0000 ; SPECIES_BRONZOR + .short 0x0005, 0x0000 ; SPECIES_BRONZONG + .short 0x0004, 0x0001 ; SPECIES_BONSLY + .short 0x0001, 0x0001 ; SPECIES_MIME_JR + .short 0x0001, 0x0001 ; SPECIES_HAPPINY + .short 0x0004, 0x0001 ; SPECIES_CHATOT + .short 0x0003, 0x0001 ; SPECIES_SPIRITOMB + .short 0x0001, 0x0001 ; SPECIES_GIBLE + .short 0x0002, 0x0001 ; SPECIES_GABITE + .short 0x0002, 0x0001 ; SPECIES_GARCHOMP + .short 0x0004, 0x0001 ; SPECIES_MUNCHLAX + .short 0x0001, 0x0001 ; SPECIES_RIOLU + .short 0x0002, 0x0001 ; SPECIES_LUCARIO + .short 0x0004, 0x0001 ; SPECIES_HIPPOPOTAS + .short 0x0002, 0x0001 ; SPECIES_HIPPOWDON + .short 0x0003, 0x0001 ; SPECIES_SKORUPI + .short 0x0003, 0x0001 ; SPECIES_DRAPION + .short 0x0003, 0x0001 ; SPECIES_CROAGUNK + .short 0x0003, 0x0001 ; SPECIES_TOXICROAK + .short 0x0004, 0x0000 ; SPECIES_CARNIVINE + .short 0x0001, 0x0000 ; SPECIES_FINNEON + .short 0x0002, 0x0000 ; SPECIES_LUMINEON + .short 0x0001, 0x0000 ; SPECIES_MANTYKE + .short 0x0001, 0x0001 ; SPECIES_SNOVER + .short 0x0002, 0x0001 ; SPECIES_ABOMASNOW + .short 0x0002, 0x0001 ; SPECIES_WEAVILE + .short 0x0005, 0x0000 ; SPECIES_MAGNEZONE + .short 0x0004, 0x0001 ; SPECIES_LICKILICKY + .short 0x0002, 0x0001 ; SPECIES_RHYPERIOR + .short 0x0004, 0x0001 ; SPECIES_TANGROWTH + .short 0x0002, 0x0001 ; SPECIES_ELECTIVIRE + .short 0x0002, 0x0001 ; SPECIES_MAGMORTAR + .short 0x0002, 0x0001 ; SPECIES_TOGEKISS + .short 0x0002, 0x0001 ; SPECIES_YANMEGA + .short 0x0002, 0x0001 ; SPECIES_LEAFEON + .short 0x0002, 0x0001 ; SPECIES_GLACEON + .short 0x0002, 0x0001 ; SPECIES_GLISCOR + .short 0x0004, 0x0001 ; SPECIES_MAMOSWINE + .short 0x0005, 0x0001 ; SPECIES_PORYGON_Z + .short 0x0002, 0x0001 ; SPECIES_GALLADE + .short 0x0005, 0x0001 ; SPECIES_PROBOPASS + .short 0x0003, 0x0000 ; SPECIES_DUSKNOIR + .short 0x0001, 0x0000 ; SPECIES_FROSLASS + .short 0x0002, 0x0000 ; SPECIES_ROTOM + .short 0x0001, 0x0001 ; SPECIES_UXIE + .short 0x0001, 0x0001 ; SPECIES_MESPRIT + .short 0x0001, 0x0001 ; SPECIES_AZELF + .short 0x0002, 0x0001 ; SPECIES_DIALGA + .short 0x0002, 0x0001 ; SPECIES_PALKIA + .short 0x0002, 0x0001 ; SPECIES_HEATRAN + .short 0x0005, 0x0001 ; SPECIES_REGIGIGAS + .short 0x0002, 0x0001 ; SPECIES_GIRATINA + .short 0x0002, 0x0000 ; SPECIES_CRESSELIA + .short 0x0001, 0x0000 ; SPECIES_PHIONE + .short 0x0001, 0x0000 ; SPECIES_MANAPHY + .short 0x0003, 0x0001 ; SPECIES_DARKRAI + .short 0x0001, 0x0001 ; SPECIES_SHAYMIN + .short 0x0002, 0x0001 ; SPECIES_ARCEUS diff --git a/arm9/modules/05/asm/mod05_021F61F4.s b/arm9/modules/05/asm/mod05_021F61F4.s new file mode 100644 index 00000000..6b6cd889 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F61F4.s @@ -0,0 +1,216 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F61F4 +MOD05_021F61F4: ; 0x021F61F4 + push {r4, r5, r6, lr} + add r6, r1, #0 + add r5, r0, #0 + add r0, r6, #0 + mov r1, #0x34 + bl AllocFromHeapAtEnd + add r4, r0, #0 + mov r1, #0 + mov r2, #0x34 + bl memset + str r6, [r4] + mov r0, #0 + str r0, [r4, #0xc] + str r5, [r4, #0x2c] + ldr r0, [r5, #0x20] + str r0, [r4, #0x30] + bl Camera_GetDistance + str r0, [r4, #0x10] + str r0, [r4, #0x20] + ldr r0, _021F622C ; =MOD05_021F6270 + ldr r2, _021F6230 ; =0x0000FFFF + add r1, r4, #0 + bl FUN_0200CA44 + pop {r4, r5, r6, pc} + .align 2, 0 +_021F622C: .word MOD05_021F6270 +_021F6230: .word 0x0000FFFF + + thumb_func_start MOD05_021F6234 +MOD05_021F6234: ; 0x021F6234 + push {r3, lr} + bl FUN_0201B6C8 + ldr r0, [r0, #8] + pop {r3, pc} + .align 2, 0 + + thumb_func_start MOD05_021F6240 +MOD05_021F6240: ; 0x021F6240 + push {r4, lr} + add r4, r0, #0 + bl FUN_0201B6C8 + bl FreeToHeap + add r0, r4, #0 + bl FUN_0200CAB4 + pop {r4, pc} + + thumb_func_start MOD05_021F6254 +MOD05_021F6254: ; 0x021F6254 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r4, r2, #0 + add r6, r3, #0 + bl FUN_0201B6C8 + mov r1, #0 + str r1, [r0, #4] + str r1, [r0, #8] + str r5, [r0, #0xc] + str r4, [r0, #0x14] + str r6, [r0, #0x1c] + str r1, [r0, #0x24] + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021F6270 +MOD05_021F6270: ; 0x021F6270 + push {r3, lr} + add r0, r1, #0 + ldr r1, [r1, #0xc] + lsl r2, r1, #2 + ldr r1, _021F6280 ; =UNK05_021FD1B8 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + .align 2, 0 +_021F6280: .word UNK05_021FD1B8 + + thumb_func_start MOD05_021F6284 +MOD05_021F6284: ; 0x021F6284 + mov r1, #1 + str r1, [r0, #8] + bx lr + .align 2, 0 + + thumb_func_start MOD05_021F628C +MOD05_021F628C: ; 0x021F628C + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #0 + beq _021F629C + cmp r1, #1 + beq _021F62A6 + pop {r4, pc} +_021F629C: + bl MOD05_021F630C + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021F62A6: + add r0, r4, #0 + bl MOD05_021F633C + cmp r0, #1 + bne _021F62BA + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #1 + str r0, [r4, #8] +_021F62BA: + add r0, r4, #0 + bl MOD05_021F62FC + pop {r4, pc} + .align 2, 0 + + thumb_func_start MOD05_021F62C4 +MOD05_021F62C4: ; 0x021F62C4 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #0 + beq _021F62D4 + cmp r1, #1 + beq _021F62DE + pop {r4, pc} +_021F62D4: + bl MOD05_021F6324 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021F62DE: + add r0, r4, #0 + bl MOD05_021F633C + cmp r0, #1 + bne _021F62F2 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #1 + str r0, [r4, #8] +_021F62F2: + add r0, r4, #0 + bl MOD05_021F62FC + pop {r4, pc} + .align 2, 0 + + thumb_func_start MOD05_021F62FC +MOD05_021F62FC: ; 0x021F62FC + ldr r3, _021F6308 ; =FUN_0201EFE0 + add r1, r0, #0 + ldr r0, [r1, #0x20] + ldr r1, [r1, #0x30] + bx r3 + nop +_021F6308: .word Camera_SetDistance + + thumb_func_start MOD05_021F630C +MOD05_021F630C: ; 0x021F630C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x1c] + bl _s32_div_f + str r0, [r4, #0x28] + ldr r1, [r4, #0x20] + ldr r0, [r4, #0x14] + add r0, r1, r0 + str r0, [r4, #0x18] + pop {r4, pc} + + thumb_func_start MOD05_021F6324 +MOD05_021F6324: ; 0x021F6324 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x10] + ldr r0, [r4, #0x20] + sub r0, r1, r0 + ldr r1, [r4, #0x1c] + bl _s32_div_f + str r0, [r4, #0x28] + ldr r0, [r4, #0x10] + str r0, [r4, #0x18] + pop {r4, pc} + + thumb_func_start MOD05_021F633C +MOD05_021F633C: ; 0x021F633C + ldr r2, [r0, #0x20] + ldr r1, [r0, #0x28] + add r1, r2, r1 + str r1, [r0, #0x20] + ldr r1, [r0, #0x24] + add r2, r1, #1 + str r2, [r0, #0x24] + ldr r1, [r0, #0x1c] + cmp r2, r1 + blo _021F635A + str r1, [r0, #0x24] + ldr r1, [r0, #0x18] + str r1, [r0, #0x20] + mov r0, #1 + bx lr +_021F635A: + mov r0, #0 + bx lr + .align 2, 0 + + .section .rodata + + .global UNK05_021FD1B8 +UNK05_021FD1B8: ; 0x021FD1B8 + .word MOD05_021F6284, MOD05_021F628C, MOD05_021F62C4, 0x00000000 diff --git a/arm9/modules/05/asm/mod05_021F6360.s b/arm9/modules/05/asm/mod05_021F6360.s new file mode 100644 index 00000000..c03de5a5 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021F6360.s @@ -0,0 +1,103 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021F6360 +MOD05_021F6360: ; 0x021F6360 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + bl FUN_02046528 + str r0, [sp] + add r0, r7, #0 + bl FUN_0204652C + add r6, r0, #0 + add r0, r7, #0 + bl FUN_02046530 + add r4, r0, #0 + ldr r0, [r4] + ldr r5, [r6, #4] + cmp r0, #5 + bhi _021F6424 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021F638E: ; jump table + .short _021F639A - _021F638E - 2 ; case 0 + .short _021F63AC - _021F638E - 2 ; case 1 + .short _021F63CC - _021F638E - 2 ; case 2 + .short _021F63EA - _021F638E - 2 ; case 3 + .short _021F6402 - _021F638E - 2 ; case 4 + .short _021F6414 - _021F638E - 2 ; case 5 +_021F639A: + mov r0, #0xb + mov r1, #8 + bl AllocFromHeapAtEnd + str r0, [r6, #4] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021F6424 +_021F63AC: + bl MOD05_021F57EC + add r6, r0, #0 + mov r0, #0xb + add r1, r6, #0 + bl AllocFromHeapAtEnd + str r0, [r5, #4] + mov r1, #0 + add r2, r6, #0 + bl memset + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021F6424 +_021F63CC: + ldr r0, [sp] + ldr r0, [r0, #0x38] + bl FUN_020553E8 + add r3, r0, #0 + ldr r0, [sp] + ldr r2, [r6] + mov r1, #0 + bl MOD06_0224666C + str r0, [r5] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021F6424 +_021F63EA: + ldr r0, [r5] + bl MOD06_022466A0 + cmp r0, #0 + beq _021F6424 + ldr r0, [r5] + bl MOD06_022466AC + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021F6424 +_021F6402: + ldr r1, _021F6428 ; =MOD05_021F57F0 + ldr r2, [r5, #4] + add r0, r7, #0 + bl FUN_0204640C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021F6424 +_021F6414: + add r0, r5, #0 + bl FreeToHeap + add r0, r6, #0 + bl FreeToHeap + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021F6424: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021F6428: .word MOD05_021F57F0 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s deleted file mode 100644 index 3cc1b9fe..00000000 --- a/arm9/modules/05/asm/module_05.s +++ /dev/null @@ -1,31453 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .section .text - .balign 4, 0 - - thumb_func_start MOD05_021E8648 -MOD05_021E8648: ; 0x021E8648 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r0, _021E8690 ; =MOD05_021E8728 - ldr r3, [r5, #0x28] - mov r1, #0x38 - mov r2, #5 - bl FUN_020061E8 - add r6, r0, #0 - bl FUN_0201B6C8 - add r4, r0, #0 - add r2, r4, #4 - mov r3, #5 -_021E8664: - ldmia r5!, {r0, r1} - stmia r2!, {r0, r1} - sub r3, r3, #1 - bne _021E8664 - ldr r0, [r5] - str r0, [r2] - str r6, [r4, #0x34] - mov r0, #0 - str r0, [r4, #0x30] - bl GX_GetBankForLCDC - str r0, [r4] - add r0, r4, #4 - bl MOD05_021E87C8 - ldr r0, _021E8694 ; =MOD05_021E8768 - add r1, r4, #0 - mov r2, #0 - bl FUN_0200CA98 - add r0, r4, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021E8690: .word MOD05_021E8728 -_021E8694: .word MOD05_021E8768 - - thumb_func_start MOD05_021E8698 -MOD05_021E8698: ; 0x021E8698 - push {r4, lr} - add r4, r0, #0 - add r0, r1, #0 - add r1, r2, #0 - add r2, r3, #0 - bl GX_SetGraphicsMode - ldr r0, [r4] - ldr r0, [r0] - bl GX_SetBankForLCDC - ldr r0, [r4] - ldr r0, [r0, #4] - cmp r0, #0xa - bgt _021E86C8 - bge _021E86EC - cmp r0, #6 - bgt _021E8708 - cmp r0, #2 - blt _021E8708 - beq _021E86CE - cmp r0, #6 - beq _021E86DE - b _021E8708 -_021E86C8: - cmp r0, #0xe - beq _021E86FA - b _021E8708 -_021E86CE: - mov r1, #0x1a - mov r2, #2 - mov r0, #0 - lsl r1, r1, #0x16 - lsl r2, r2, #0x10 - bl MIi_CpuClearFast - b _021E870E -_021E86DE: - mov r2, #2 - ldr r1, _021E871C ; =0x06820000 - mov r0, #0 - lsl r2, r2, #0x10 - bl MIi_CpuClearFast - b _021E870E -_021E86EC: - mov r2, #2 - ldr r1, _021E8720 ; =0x06840000 - mov r0, #0 - lsl r2, r2, #0x10 - bl MIi_CpuClearFast - b _021E870E -_021E86FA: - mov r2, #2 - ldr r1, _021E8724 ; =0x06860000 - mov r0, #0 - lsl r2, r2, #0x10 - bl MIi_CpuClearFast - b _021E870E -_021E8708: - mov r0, #0 - bl GX_SetBankForLCDC -_021E870E: - ldr r0, [r4] - ldr r0, [r0, #0x34] - bl FUN_0200621C - mov r0, #0 - str r0, [r4] - pop {r4, pc} - .balign 4, 0 -_021E871C: .word 0x06820000 -_021E8720: .word 0x06840000 -_021E8724: .word 0x06860000 - - thumb_func_start MOD05_021E8728 -MOD05_021E8728: ; 0x021E8728 - push {r4, r5, r6, r7} - ldr r0, [r1, #0x30] - cmp r0, #0 - beq _021E8760 - ldr r6, [r1, #0x20] - ldr r5, [r1, #0x10] - ldr r4, [r1, #0x1c] - ldr r3, [r1, #0x18] - ldr r2, [r1, #0x14] - ldr r0, [r1, #0x24] - ldr r1, [r1, #0x28] - lsl r5, r5, #0x14 - lsl r7, r1, #8 - lsl r1, r3, #0x18 - lsl r3, r2, #0x1d - mov r2, #2 - lsl r2, r2, #0x1e - orr r3, r2 - lsl r2, r4, #0x19 - orr r2, r3 - orr r1, r2 - lsl r6, r6, #0x10 - orr r1, r5 - orr r1, r6 - orr r1, r7 - orr r1, r0 - ldr r0, _021E8764 ; =0x04000064 - str r1, [r0] -_021E8760: - pop {r4, r5, r6, r7} - bx lr - .balign 4, 0 -_021E8764: .word 0x04000064 - - thumb_func_start MOD05_021E8768 -MOD05_021E8768: ; 0x021E8768 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4, #4] - cmp r0, #0xa - bgt _021E8786 - bge _021E879C - cmp r0, #6 - bgt _021E87AC - cmp r0, #2 - blt _021E87AC - beq _021E878C - cmp r0, #6 - beq _021E8794 - b _021E87AC -_021E8786: - cmp r0, #0xe - beq _021E87A4 - b _021E87AC -_021E878C: - mov r0, #1 - bl GX_SetBankForLCDC - b _021E87B2 -_021E8794: - mov r0, #2 - bl GX_SetBankForLCDC - b _021E87B2 -_021E879C: - mov r0, #4 - bl GX_SetBankForLCDC - b _021E87B2 -_021E87A4: - mov r0, #8 - bl GX_SetBankForLCDC - b _021E87B2 -_021E87AC: - mov r0, #0 - bl GX_SetBankForLCDC -_021E87B2: - ldr r0, [r4, #4] - ldr r1, [r4, #8] - ldr r2, [r4, #0xc] - bl GX_SetGraphicsMode - mov r0, #1 - str r0, [r4, #0x30] - add r0, r5, #0 - bl FUN_0200CAB4 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021E87C8 -MOD05_021E87C8: ; 0x021E87C8 - push {r4, r5, r6, lr} - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0xa - bgt _021E87E4 - bge _021E8808 - cmp r0, #6 - bgt _021E8822 - cmp r0, #2 - blt _021E8822 - beq _021E87EA - cmp r0, #6 - beq _021E87FA - b _021E8822 -_021E87E4: - cmp r0, #0xe - beq _021E8816 - b _021E8822 -_021E87EA: - mov r1, #0x1a - mov r2, #2 - mov r0, #0 - lsl r1, r1, #0x16 - lsl r2, r2, #0x10 - bl MIi_CpuClearFast - b _021E8822 -_021E87FA: - mov r2, #2 - ldr r1, _021E8850 ; =0x06820000 - mov r0, #0 - lsl r2, r2, #0x10 - bl MIi_CpuClearFast - b _021E8822 -_021E8808: - mov r2, #2 - ldr r1, _021E8854 ; =0x06840000 - mov r0, #0 - lsl r2, r2, #0x10 - bl MIi_CpuClearFast - b _021E8822 -_021E8816: - mov r2, #2 - ldr r1, _021E8858 ; =0x06860000 - mov r0, #0 - lsl r2, r2, #0x10 - bl MIi_CpuClearFast -_021E8822: - ldr r5, [r4, #0x10] - ldr r1, [r4, #0x1c] - ldr r3, [r4, #0x18] - ldr r6, [r4, #0x14] - ldr r0, [r4, #0xc] - mov r4, #2 - lsl r2, r1, #0x10 - lsl r1, r0, #0x14 - lsl r5, r5, #0x1d - lsl r4, r4, #0x1e - orr r4, r5 - lsl r3, r3, #0x19 - lsl r0, r6, #0x18 - orr r3, r4 - orr r0, r3 - orr r0, r1 - add r1, r2, #0 - orr r1, r0 - mov r0, #0x10 - orr r1, r0 - ldr r0, _021E885C ; =0x04000064 - str r1, [r0] - pop {r4, r5, r6, pc} - .balign 4, 0 -_021E8850: .word 0x06820000 -_021E8854: .word 0x06840000 -_021E8858: .word 0x06860000 -_021E885C: .word 0x04000064 - - thumb_func_start MOD05_021E8860 -MOD05_021E8860: ; 0x021E8860 - push {r4, r5, r6, r7, lr} - sub sp, #0x2c - add r5, r0, #0 - add r4, r1, #0 - mov r0, #2 - mov r1, #0 - bl GX_EngineAToggleLayers - mov r0, #4 - mov r1, #0 - bl GX_EngineAToggleLayers - mov r0, #8 - mov r1, #0 - bl GX_EngineAToggleLayers - bl GX_ResetBankForBG - mov r0, #4 - add r1, r0, #0 - bl AllocFromHeap - add r7, r0, #0 - mov r0, #0 - add r1, r7, #0 - mov r2, #4 - bl MIi_CpuClear32 - ldr r6, _021E88BC ; =UNK05_021F78E4 - add r3, sp, #0 - mov r2, #5 -_021E889E: - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - sub r2, r2, #1 - bne _021E889E - ldr r0, [r6] - str r0, [r3] - add r0, sp, #0 - str r5, [sp, #0x20] - str r4, [sp, #0x24] - bl MOD05_021E8648 - str r0, [r7] - add r0, r7, #0 - add sp, #0x2c - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021E88BC: .word UNK05_021F78E4 - - thumb_func_start MOD05_021E88C0 -MOD05_021E88C0: ; 0x021E88C0 - push {r4, lr} - add r4, r0, #0 - mov r1, #1 - ldr r0, [r4] - mov r2, #0 - add r3, r1, #0 - bl MOD05_021E8698 - mov r0, #4 - bl GX_SetBankForBG - mov r0, #0xe - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r1, [r4] - mov r0, #4 - bl FreeToHeapExplicit - pop {r4, pc} - - thumb_func_start MOD05_021E88E8 -MOD05_021E88E8: ; 0x021E88E8 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r4, r1, #0 - add r6, r0, #0 - ldr r0, [r4] - ldr r5, [r4, #0xc] - cmp r0, #5 - bls _021E88FA - b _021E8A56 -_021E88FA: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E8906: ; jump table - .short _021E8912 - _021E8906 - 2 ; case 0 - .short _021E8936 - _021E8906 - 2 ; case 1 - .short _021E8952 - _021E8906 - 2 ; case 2 - .short _021E899C - _021E8906 - 2 ; case 3 - .short _021E89F4 - _021E8906 - 2 ; case 4 - .short _021E8A1C - _021E8906 - 2 ; case 5 -_021E8912: - mov r0, #4 - mov r1, #0x20 - bl AllocFromHeap - str r0, [r4, #0xc] - mov r1, #0 - mov r2, #0x20 - bl memset - ldr r5, [r4, #0xc] - bl MOD05_021E3768 - str r0, [r5, #0x1c] - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8936: - mov r1, #0x10 - mov r0, #2 - add r2, r1, #0 - str r0, [sp] - mov r0, #1 - sub r2, #0x20 - add r3, r4, #4 - bl MOD05_021E3474 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8952: - ldr r0, [r4, #4] - cmp r0, #0 - beq _021E8A56 - mov r1, #0 - str r1, [r4, #4] - ldr r0, [r4] - mov r2, #2 - add r0, r0, #1 - str r0, [r4] - ldr r0, _021E8A5C ; =0xFFFFD000 - str r1, [sp] - str r0, [sp, #4] - lsl r0, r0, #2 - str r0, [sp, #8] - ldr r1, [r5, #0x1c] - add r0, r4, #0 - mov r3, #7 - bl MOD05_021E37CC - ldr r0, [r4, #0x10] - ldr r0, [r0, #0x20] - str r0, [r5] - bl Camera_GetDistance - mov r2, #0x32 - add r1, r0, #0 - mov r0, #6 - lsl r2, r2, #0xc - mov r3, #0x1e - str r0, [sp] - add r0, r5, #4 - add r2, r1, r2 - lsl r3, r3, #0xc - bl MOD05_021E3644 - add sp, #0xc - pop {r3, r4, r5, r6, pc} -_021E899C: - add r0, r5, #4 - bl MOD05_021E36A4 - add r6, r0, #0 - ldr r0, [r5, #4] - ldr r1, [r5] - bl Camera_SetDistance - cmp r6, #1 - bne _021E8A56 - ldr r0, [r4] - mov r2, #2 - add r0, r0, #1 - str r0, [r4] - ldr r0, _021E8A5C ; =0xFFFFD000 - mov r3, #6 - str r0, [sp] - mov r0, #0xff - lsl r0, r0, #0xc - str r0, [sp, #4] - mov r0, #0x1e - lsl r0, r0, #0xc - str r0, [sp, #8] - ldr r1, [r5, #0x1c] - add r0, r4, #0 - bl MOD05_021E3888 - ldr r0, [r4, #0x10] - ldr r0, [r0, #0x20] - str r0, [r5] - bl Camera_GetDistance - mov r2, #0x32 - add r1, r0, #0 - mov r0, #6 - lsl r2, r2, #0xc - str r0, [sp] - ldr r3, _021E8A60 ; =0xFFF01000 - add r0, r5, #4 - sub r2, r1, r2 - bl MOD05_021E3644 - add sp, #0xc - pop {r3, r4, r5, r6, pc} -_021E89F4: - add r0, r5, #4 - bl MOD05_021E36A4 - add r6, r0, #0 - ldr r0, [r5, #4] - ldr r1, [r5] - bl Camera_SetDistance - cmp r6, #1 - bne _021E8A56 - add r0, r4, #0 - bl MOD05_021E35AC - cmp r0, #1 - bne _021E8A56 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8A1C: - mov r0, #0 - add r1, r0, #0 - bl FUN_0200E3A0 - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r0, _021E8A64 ; =0x04000010 - mov r1, #0 - str r1, [r0] - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _021E8A42 - mov r0, #1 - str r0, [r1] -_021E8A42: - ldr r0, [r5, #0x1c] - bl MOD05_021E37A4 - ldr r1, [r4, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C -_021E8A56: - add sp, #0xc - pop {r3, r4, r5, r6, pc} - nop -_021E8A5C: .word 0xFFFFD000 -_021E8A60: .word 0xFFF01000 -_021E8A64: .word 0x04000010 - - thumb_func_start MOD05_021E8A68 -MOD05_021E8A68: ; 0x021E8A68 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r4, r1, #0 - add r6, r0, #0 - ldr r0, [r4] - ldr r5, [r4, #0xc] - cmp r0, #5 - bls _021E8A7A - b _021E8BD6 -_021E8A7A: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E8A86: ; jump table - .short _021E8A92 - _021E8A86 - 2 ; case 0 - .short _021E8AB6 - _021E8A86 - 2 ; case 1 - .short _021E8AD2 - _021E8A86 - 2 ; case 2 - .short _021E8B1C - _021E8A86 - 2 ; case 3 - .short _021E8B74 - _021E8A86 - 2 ; case 4 - .short _021E8B9C - _021E8A86 - 2 ; case 5 -_021E8A92: - mov r0, #4 - mov r1, #0x20 - bl AllocFromHeap - str r0, [r4, #0xc] - mov r1, #0 - mov r2, #0x20 - bl memset - ldr r5, [r4, #0xc] - bl MOD05_021E3768 - str r0, [r5, #0x1c] - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8AB6: - mov r0, #2 - str r0, [sp] - mov r0, #1 - add r1, r0, #0 - sub r1, #0x11 - add r2, r1, #0 - add r3, r4, #4 - bl MOD05_021E3474 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8AD2: - ldr r0, [r4, #4] - cmp r0, #0 - beq _021E8BD6 - mov r1, #0 - str r1, [r4, #4] - ldr r0, [r4] - mov r2, #5 - add r0, r0, #1 - str r0, [r4] - ldr r0, _021E8BDC ; =0xFFFFE000 - str r1, [sp] - str r0, [sp, #4] - ldr r0, _021E8BE0 ; =0xFFFF4000 - mov r3, #7 - str r0, [sp, #8] - ldr r1, [r5, #0x1c] - add r0, r4, #0 - bl MOD05_021E37CC - ldr r0, [r4, #0x10] - ldr r0, [r0, #0x20] - str r0, [r5] - bl Camera_GetDistance - mov r2, #0x32 - add r1, r0, #0 - mov r0, #6 - lsl r2, r2, #0xc - mov r3, #0x1e - str r0, [sp] - add r0, r5, #4 - add r2, r1, r2 - lsl r3, r3, #0xc - bl MOD05_021E3644 - add sp, #0xc - pop {r3, r4, r5, r6, pc} -_021E8B1C: - add r0, r5, #4 - bl MOD05_021E36A4 - add r6, r0, #0 - ldr r0, [r5, #4] - ldr r1, [r5] - bl Camera_SetDistance - cmp r6, #1 - bne _021E8BD6 - ldr r0, [r4] - mov r2, #5 - add r0, r0, #1 - str r0, [r4] - ldr r0, _021E8BDC ; =0xFFFFE000 - mov r3, #6 - str r0, [sp] - mov r0, #0xff - lsl r0, r0, #0xc - str r0, [sp, #4] - mov r0, #0x1e - lsl r0, r0, #0xc - str r0, [sp, #8] - ldr r1, [r5, #0x1c] - add r0, r4, #0 - bl MOD05_021E3888 - ldr r0, [r4, #0x10] - ldr r0, [r0, #0x20] - str r0, [r5] - bl Camera_GetDistance - mov r2, #0x1e - add r1, r0, #0 - mov r0, #6 - lsl r2, r2, #0xc - str r0, [sp] - ldr r3, _021E8BE4 ; =0xFFF9C000 - add r0, r5, #4 - sub r2, r1, r2 - bl MOD05_021E3644 - add sp, #0xc - pop {r3, r4, r5, r6, pc} -_021E8B74: - add r0, r5, #4 - bl MOD05_021E36A4 - add r6, r0, #0 - ldr r0, [r5, #4] - ldr r1, [r5] - bl Camera_SetDistance - cmp r6, #1 - bne _021E8BD6 - add r0, r4, #0 - bl MOD05_021E35AC - cmp r0, #1 - bne _021E8BD6 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8B9C: - mov r0, #0 - add r1, r0, #0 - bl FUN_0200E3A0 - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r0, _021E8BE8 ; =0x04000010 - mov r1, #0 - str r1, [r0] - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _021E8BC2 - mov r0, #1 - str r0, [r1] -_021E8BC2: - ldr r0, [r5, #0x1c] - bl MOD05_021E37A4 - ldr r1, [r4, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C -_021E8BD6: - add sp, #0xc - pop {r3, r4, r5, r6, pc} - nop -_021E8BDC: .word 0xFFFFE000 -_021E8BE0: .word 0xFFFF4000 -_021E8BE4: .word 0xFFF9C000 -_021E8BE8: .word 0x04000010 - - thumb_func_start MOD05_021E8BEC -MOD05_021E8BEC: ; 0x021E8BEC - push {r3, r4, r5, r6, lr} - sub sp, #0x14 - add r4, r1, #0 - add r6, r0, #0 - ldr r0, [r4] - ldr r5, [r4, #0xc] - cmp r0, #6 - bls _021E8BFE - b _021E8D16 -_021E8BFE: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E8C0A: ; jump table - .short _021E8C18 - _021E8C0A - 2 ; case 0 - .short _021E8C4A - _021E8C0A - 2 ; case 1 - .short _021E8C6A - _021E8C0A - 2 ; case 2 - .short _021E8CA0 - _021E8C0A - 2 ; case 3 - .short _021E8CB2 - _021E8C0A - 2 ; case 4 - .short _021E8CD4 - _021E8C0A - 2 ; case 5 - .short _021E8CE6 - _021E8C0A - 2 ; case 6 -_021E8C18: - mov r0, #4 - mov r1, #0x10 - bl AllocFromHeap - str r0, [r4, #0xc] - mov r2, #0x10 - mov r1, #0 -_021E8C26: - strb r1, [r0] - add r0, r0, #1 - sub r2, r2, #1 - bne _021E8C26 - ldr r0, [r4, #0xc] - mov r1, #4 - bl MOD05_021E8E8C - ldr r0, [r4, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F4608 - ldr r0, [r4] - add sp, #0x14 - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8C4A: - mov r0, #2 - str r0, [sp] - mov r0, #1 - add r1, r0, #0 - sub r1, #0x11 - add r2, r1, #0 - add r3, r4, #4 - bl MOD05_021E3474 - mov r0, #0xa - str r0, [r5, #0xc] - ldr r0, [r4] - add sp, #0x14 - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8C6A: - ldr r0, [r5, #0xc] - sub r0, r0, #1 - str r0, [r5, #0xc] - bpl _021E8D16 - ldr r0, [r4] - mov r3, #0x32 - add r0, r0, #1 - str r0, [r4] - mov r0, #0xc - str r0, [r5, #0xc] - lsl r0, r0, #0xc - str r0, [sp] - lsl r3, r3, #4 - str r3, [sp, #4] - ldr r0, _021E8D1C ; =0x04000010 - mov r1, #0 - str r0, [sp, #8] - str r1, [sp, #0xc] - mov r0, #4 - str r0, [sp, #0x10] - add r0, r5, #0 - mov r2, #0xbf - sub r3, #0x76 - bl MOD05_021E8EC0 - add sp, #0x14 - pop {r3, r4, r5, r6, pc} -_021E8CA0: - ldr r0, [r5, #0xc] - sub r0, r0, #1 - str r0, [r5, #0xc] - bpl _021E8D16 - ldr r0, [r4] - add sp, #0x14 - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8CB2: - mov r0, #8 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r2, #0 - str r0, [sp, #8] - mov r0, #3 - mov r1, #0x1e - add r3, r2, #0 - bl FUN_0200E1D0 - ldr r0, [r4] - add sp, #0x14 - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8CD4: - bl FUN_0200E308 - cmp r0, #0 - beq _021E8D16 - ldr r0, [r4] - add sp, #0x14 - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8CE6: - add r0, r5, #0 - bl MOD05_021E8EA8 - ldr r0, [r4, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F45E8 - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _021E8D00 - mov r0, #1 - str r0, [r1] -_021E8D00: - ldr r1, [r4, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 -_021E8D16: - add sp, #0x14 - pop {r3, r4, r5, r6, pc} - nop -_021E8D1C: .word 0x04000010 - - thumb_func_start MOD05_021E8D20 -MOD05_021E8D20: ; 0x021E8D20 - push {r3, r4, r5, r6, lr} - sub sp, #0x14 - add r4, r1, #0 - add r6, r0, #0 - ldr r0, [r4] - ldr r5, [r4, #0xc] - cmp r0, #6 - bls _021E8D32 - b _021E8E4C -_021E8D32: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E8D3E: ; jump table - .short _021E8D4C - _021E8D3E - 2 ; case 0 - .short _021E8D7E - _021E8D3E - 2 ; case 1 - .short _021E8D9E - _021E8D3E - 2 ; case 2 - .short _021E8DD6 - _021E8D3E - 2 ; case 3 - .short _021E8DE8 - _021E8D3E - 2 ; case 4 - .short _021E8E0A - _021E8D3E - 2 ; case 5 - .short _021E8E1C - _021E8D3E - 2 ; case 6 -_021E8D4C: - mov r0, #4 - mov r1, #0x10 - bl AllocFromHeap - str r0, [r4, #0xc] - mov r2, #0x10 - mov r1, #0 -_021E8D5A: - strb r1, [r0] - add r0, r0, #1 - sub r2, r2, #1 - bne _021E8D5A - ldr r0, [r4, #0xc] - mov r1, #4 - bl MOD05_021E8E8C - ldr r0, [r4, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F4608 - ldr r0, [r4] - add sp, #0x14 - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8D7E: - mov r1, #0x10 - mov r0, #2 - add r2, r1, #0 - str r0, [sp] - mov r0, #1 - sub r2, #0x20 - add r3, r4, #4 - bl MOD05_021E3474 - mov r0, #0xa - str r0, [r5, #0xc] - ldr r0, [r4] - add sp, #0x14 - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8D9E: - ldr r0, [r5, #0xc] - sub r0, r0, #1 - str r0, [r5, #0xc] - bpl _021E8E4C - ldr r0, [r4] - mov r3, #0x32 - add r0, r0, #1 - str r0, [r4] - mov r0, #0xc - str r0, [r5, #0xc] - mov r0, #0xf - lsl r0, r0, #0xc - str r0, [sp] - lsl r3, r3, #4 - str r3, [sp, #4] - ldr r0, _021E8E50 ; =0x04000010 - mov r1, #0 - str r0, [sp, #8] - str r1, [sp, #0xc] - mov r0, #4 - str r0, [sp, #0x10] - add r0, r5, #0 - mov r2, #0xbf - add r3, #0xdf - bl MOD05_021E8EC0 - add sp, #0x14 - pop {r3, r4, r5, r6, pc} -_021E8DD6: - ldr r0, [r5, #0xc] - sub r0, r0, #1 - str r0, [r5, #0xc] - bpl _021E8E4C - ldr r0, [r4] - add sp, #0x14 - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8DE8: - mov r0, #8 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r2, #0 - str r0, [sp, #8] - mov r0, #3 - mov r1, #0x1e - add r3, r2, #0 - bl FUN_0200E1D0 - ldr r0, [r4] - add sp, #0x14 - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8E0A: - bl FUN_0200E308 - cmp r0, #0 - beq _021E8E4C - ldr r0, [r4] - add sp, #0x14 - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8E1C: - add r0, r5, #0 - bl MOD05_021E8EA8 - ldr r0, [r4, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F45E8 - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _021E8E36 - mov r0, #1 - str r0, [r1] -_021E8E36: - ldr r1, [r4, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 -_021E8E4C: - add sp, #0x14 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_021E8E50: .word 0x04000010 - - thumb_func_start MOD05_021E8E54 -MOD05_021E8E54: ; 0x021E8E54 - ldr r3, _021E8E60 ; =FUN_0200CA60 - mov r2, #1 - add r1, r0, #0 - ldr r0, _021E8E64 ; =MOD05_021E8E68 - lsl r2, r2, #0xa - bx r3 - .balign 4, 0 -_021E8E60: .word FUN_0200CA60 -_021E8E64: .word MOD05_021E8E68 - - thumb_func_start MOD05_021E8E68 -MOD05_021E8E68: ; 0x021E8E68 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #8] - cmp r0, #2 - blo _021E8E7C - ldr r0, [r4] - bl FUN_02012B30 - mov r0, #0 - str r0, [r4, #8] -_021E8E7C: - ldr r0, [r4] - bl FUN_02012B68 - ldr r0, [r4, #8] - add r0, r0, #1 - str r0, [r4, #8] - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E8E8C -MOD05_021E8E8C: ; 0x021E8E8C - push {r4, lr} - add r4, r0, #0 - add r0, r1, #0 - bl FUN_02012A00 - str r0, [r4] - mov r0, #0 - str r0, [r4, #8] - add r0, r4, #0 - bl MOD05_021E8E54 - str r0, [r4, #4] - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E8EA8 -MOD05_021E8EA8: ; 0x021E8EA8 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #4] - bl FUN_0200CAB4 - ldr r0, [r4] - bl FUN_02012AC4 - ldr r0, [r4] - bl FUN_02012B00 - pop {r4, pc} - - thumb_func_start MOD05_021E8EC0 -MOD05_021E8EC0: ; 0x021E8EC0 - push {r4, r5, lr} - sub sp, #0x14 - ldr r4, [sp, #0x20] - add r5, sp, #0x10 - str r4, [sp] - mov r4, #0x14 - ldrsh r4, [r5, r4] - str r4, [sp, #4] - ldr r4, [sp, #0x28] - str r4, [sp, #8] - ldr r4, [sp, #0x2c] - str r4, [sp, #0xc] - ldr r4, [sp, #0x30] - str r4, [sp, #0x10] - ldr r0, [r0] - bl FUN_02012A30 - add sp, #0x14 - pop {r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E8EE8 -MOD05_021E8EE8: ; 0x021E8EE8 - push {r3, r4, r5, r6, r7, lr} - ldr r0, [r0] - add r7, r1, #0 - bl FUN_02012B20 - add r5, r0, #0 - mov r6, #0 -_021E8EF6: - ldr r0, [r5] - add r1, r7, #0 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - add r0, r6, #0 - bl _u32_div_f - mov r1, #1 - tst r0, r1 - bne _021E8F0E - lsl r0, r4, #0x10 - b _021E8F12 -_021E8F0E: - neg r0, r4 - lsl r0, r0, #0x10 -_021E8F12: - lsr r0, r0, #0x10 - str r0, [r5] - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #0xc0 - blt _021E8EF6 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021E8F20 -MOD05_021E8F20: ; 0x021E8F20 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r4, r1, #0 - add r6, r0, #0 - ldr r0, [r4] - ldr r5, [r4, #0xc] - cmp r0, #5 - bhi _021E9026 - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021E8F3C: ; jump table - .short _021E8F48 - _021E8F3C - 2 ; case 0 - .short _021E8F68 - _021E8F3C - 2 ; case 1 - .short _021E8F84 - _021E8F3C - 2 ; case 2 - .short _021E8F92 - _021E8F3C - 2 ; case 3 - .short _021E8FDC - _021E8F3C - 2 ; case 4 - .short _021E8FFC - _021E8F3C - 2 ; case 5 -_021E8F48: - mov r0, #4 - mov r1, #0x1c - bl AllocFromHeap - str r0, [r4, #0xc] - mov r2, #0x1c - mov r1, #0 -_021E8F56: - strb r1, [r0] - add r0, r0, #1 - sub r2, r2, #1 - bne _021E8F56 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8F68: - mov r0, #2 - str r0, [sp] - mov r0, #1 - add r1, r0, #0 - sub r1, #0x11 - add r2, r1, #0 - add r3, r4, #4 - bl MOD05_021E3474 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8F84: - ldr r1, [r4, #4] - cmp r1, #0 - beq _021E9026 - add r0, r0, #1 - add sp, #0xc - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8F92: - ldr r0, [r4, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F4608 - mov r0, #0xc - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r1, #0x10 - str r0, [sp, #8] - mov r0, #3 - add r2, r1, #0 - mov r3, #0 - bl FUN_0200E1D0 - ldr r0, [r4, #0x10] - ldr r0, [r0, #0x20] - str r0, [r5] - bl Camera_GetDistance - mov r2, #0x19 - add r1, r0, #0 - mov r0, #0xc - lsl r2, r2, #0x10 - str r0, [sp] - ldr r3, _021E902C ; =0xFFFFE000 - add r0, r5, #4 - sub r2, r1, r2 - bl MOD05_021E3644 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8FDC: - add r0, r5, #4 - bl MOD05_021E36A4 - ldr r0, [r5, #4] - ldr r1, [r5] - bl Camera_SetDistance - bl FUN_0200E308 - cmp r0, #0 - beq _021E9026 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E8FFC: - ldr r0, [r4, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F45E8 - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _021E9010 - mov r0, #1 - str r0, [r1] -_021E9010: - ldr r1, [r4, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 -_021E9026: - add sp, #0xc - pop {r3, r4, r5, r6, pc} - nop -_021E902C: .word 0xFFFFE000 - - thumb_func_start MOD05_021E9030 -MOD05_021E9030: ; 0x021E9030 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r4, r1, #0 - add r6, r0, #0 - ldr r0, [r4] - ldr r5, [r4, #0xc] - cmp r0, #5 - bhi _021E9136 - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021E904C: ; jump table - .short _021E9058 - _021E904C - 2 ; case 0 - .short _021E9078 - _021E904C - 2 ; case 1 - .short _021E9094 - _021E904C - 2 ; case 2 - .short _021E90A2 - _021E904C - 2 ; case 3 - .short _021E90EC - _021E904C - 2 ; case 4 - .short _021E910C - _021E904C - 2 ; case 5 -_021E9058: - mov r0, #4 - mov r1, #0x1c - bl AllocFromHeap - str r0, [r4, #0xc] - mov r2, #0x1c - mov r1, #0 -_021E9066: - strb r1, [r0] - add r0, r0, #1 - sub r2, r2, #1 - bne _021E9066 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E9078: - mov r1, #0x10 - mov r0, #2 - add r2, r1, #0 - str r0, [sp] - mov r0, #1 - sub r2, #0x20 - add r3, r4, #4 - bl MOD05_021E3474 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E9094: - ldr r1, [r4, #4] - cmp r1, #0 - beq _021E9136 - add r0, r0, #1 - add sp, #0xc - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E90A2: - ldr r0, [r4, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F4608 - mov r0, #0xc - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r1, #0x10 - str r0, [sp, #8] - mov r0, #3 - add r2, r1, #0 - mov r3, #0 - bl FUN_0200E1D0 - ldr r0, [r4, #0x10] - ldr r0, [r0, #0x20] - str r0, [r5] - bl Camera_GetDistance - mov r2, #0x32 - add r1, r0, #0 - mov r0, #0xc - lsl r2, r2, #0x10 - str r0, [sp] - ldr r3, _021E913C ; =0xFFFFB000 - add r0, r5, #4 - sub r2, r1, r2 - bl MOD05_021E3644 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E90EC: - add r0, r5, #4 - bl MOD05_021E36A4 - ldr r0, [r5, #4] - ldr r1, [r5] - bl Camera_SetDistance - bl FUN_0200E308 - cmp r0, #0 - beq _021E9136 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021E910C: - ldr r0, [r4, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F45E8 - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _021E9120 - mov r0, #1 - str r0, [r1] -_021E9120: - ldr r1, [r4, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 -_021E9136: - add sp, #0xc - pop {r3, r4, r5, r6, pc} - nop -_021E913C: .word 0xFFFFB000 - - thumb_func_start MOD05_021E9140 -MOD05_021E9140: ; 0x021E9140 - push {r4, r5, r6, r7, lr} - sub sp, #0x5c - add r7, r1, #0 - str r0, [sp, #0x10] - ldr r0, [r7] - ldr r4, [r7, #0xc] - cmp r0, #7 - bls _021E9152 - b _021E948A -_021E9152: - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021E915E: ; jump table - .short _021E916E - _021E915E - 2 ; case 0 - .short _021E9228 - _021E915E - 2 ; case 1 - .short _021E9242 - _021E915E - 2 ; case 2 - .short _021E924E - _021E915E - 2 ; case 3 - .short _021E92B2 - _021E915E - 2 ; case 4 - .short _021E931A - _021E915E - 2 ; case 5 - .short _021E93A6 - _021E915E - 2 ; case 6 - .short _021E9430 - _021E915E - 2 ; case 7 -_021E916E: - mov r1, #0x1e - mov r0, #4 - lsl r1, r1, #4 - bl AllocFromHeap - mov r2, #0x1e - str r0, [r7, #0xc] - mov r1, #0 - lsl r2, r2, #4 - bl memset - ldr r0, [r7, #0x10] - ldr r4, [r7, #0xc] - ldr r1, [r0, #0x20] - mov r0, #7 - lsl r0, r0, #6 - str r1, [r4, r0] - bl MOD05_021E3768 - str r0, [r4, #0x44] - add r0, r4, #0 - add r0, #0x48 - mov r1, #2 - mov r2, #1 - bl MOD05_021E3E14 - mov r0, #5 - str r0, [sp] - mov r0, #7 - str r0, [sp, #4] - mov r0, #6 - str r0, [sp, #8] - ldr r0, _021E949C ; =0x000927C0 - mov r1, #0x61 - str r0, [sp, #0xc] - add r0, r4, #0 - lsl r1, r1, #2 - add r0, #0x48 - add r1, r4, r1 - mov r2, #0 - mov r3, #1 - bl MOD05_021E3E64 - mov r0, #0 - str r0, [sp, #0x14] - add r6, r0, #0 - add r0, r4, #0 - str r0, [sp, #0x1c] - add r0, #0x48 - add r5, r4, #0 - str r0, [sp, #0x1c] -_021E91D4: - mov r0, #0 - str r0, [sp] - mov r1, #0x61 - str r0, [sp, #4] - lsl r1, r1, #2 - mov r2, #2 - mov r3, #6 - ldr r0, [sp, #0x1c] - add r1, r4, r1 - lsl r2, r2, #0x12 - lsl r3, r3, #0x10 - bl MOD05_021E3FC4 - mov r1, #0x6e - lsl r1, r1, #2 - str r0, [r5, r1] - add r0, r1, #0 - ldr r0, [r5, r0] - mov r1, #0 - bl FUN_020200A0 - mov r0, #0x6e - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r1, r6, #0 - bl FUN_02020310 - ldr r0, [sp, #0x14] - add r5, r5, #4 - add r0, r0, #1 - add r6, r6, #2 - str r0, [sp, #0x14] - cmp r0, #2 - blt _021E91D4 - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E948A -_021E9228: - mov r0, #2 - str r0, [sp] - mov r0, #1 - add r1, r0, #0 - sub r1, #0x11 - add r2, r1, #0 - add r3, r7, #4 - bl MOD05_021E3474 - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E948A -_021E9242: - ldr r1, [r7, #4] - cmp r1, #0 - beq _021E9310 - add r0, r0, #1 - str r0, [r7] - b _021E948A -_021E924E: - mov r0, #0xa - mov r2, #1 - str r0, [sp] - add r0, r4, #0 - mov r1, #0x29 - lsl r2, r2, #0xc - mov r3, #2 - bl MOD05_021E3644 - ldr r1, [r4] - add r0, sp, #0x50 - add r2, r1, #0 - add r3, r1, #0 - bl MOD05_021E3FF8 - mov r6, #0 - add r5, r4, #0 -_021E9270: - mov r0, #0x6e - lsl r0, r0, #2 - ldr r0, [r5, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x6e - lsl r0, r0, #2 - ldr r0, [r5, r0] - mov r1, #2 - bl FUN_020200EC - mov r0, #0x6e - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r1, sp, #0x50 - bl FUN_02020064 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #2 - blt _021E9270 - add r0, r4, #0 - ldr r2, _021E94A0 ; =0x0000FFFF - add r0, #0x18 - mov r1, #0 - mov r3, #0xa - bl MOD05_021E35B0 - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E948A -_021E92B2: - add r0, r4, #0 - bl MOD05_021E36A4 - ldr r1, [r4] - str r0, [sp, #0x18] - add r0, sp, #0x50 - add r2, r1, #0 - add r3, r1, #0 - bl MOD05_021E3FF8 - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E35C0 - mov r6, #0 - add r5, r4, #0 -_021E92D2: - mov r0, #0x6e - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r1, sp, #0x50 - bl FUN_02020064 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #2 - blt _021E92D2 - mov r0, #0x6e - ldr r1, [r4, #0x18] - lsl r0, r0, #2 - lsl r1, r1, #0x10 - ldr r0, [r4, r0] - lsr r1, r1, #0x10 - bl FUN_02020088 - mov r1, #0x6f - lsl r1, r1, #2 - ldr r0, [r4, r1] - ldr r2, [r4, #0x18] - sub r1, #0xbc - sub r1, r2, r1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_02020088 - ldr r0, [sp, #0x18] - cmp r0, #1 - beq _021E9312 -_021E9310: - b _021E948A -_021E9312: - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E948A -_021E931A: - mov r0, #0 - str r0, [sp] - mov r0, #0xff - lsl r0, r0, #0xc - str r0, [sp, #4] - mov r0, #0xa - lsl r0, r0, #0xc - str r0, [sp, #8] - ldr r1, [r4, #0x44] - add r0, r7, #0 - mov r2, #0x60 - mov r3, #6 - bl MOD05_021E37CC - mov r0, #0x6e - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_02020130 - mov r0, #0x6f - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #2 - bl FUN_02020130 - mov r0, #6 - str r0, [sp] - add r0, r4, #0 - mov r2, #0xff - mov r3, #0xa - add r0, #0x2c - mov r1, #0 - lsl r2, r2, #0xc - lsl r3, r3, #0xc - bl MOD05_021E3644 - mov r0, #7 - lsl r0, r0, #6 - ldr r0, [r4, r0] - bl Camera_GetDistance - add r1, r0, #0 - mov r0, #6 - str r0, [sp] - mov r0, #0x71 - mov r2, #0x7d - lsl r0, r0, #2 - lsl r2, r2, #0xe - ldr r3, _021E94A4 ; =0xFFFF6000 - add r0, r4, r0 - sub r2, r1, r2 - bl MOD05_021E3644 - mov r0, #0x6e - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #0 - bl FUN_02020088 - mov r0, #0x6f - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #0 - bl FUN_02020088 - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E948A -_021E93A6: - add r0, r4, #0 - add r0, #0x2c - bl MOD05_021E36A4 - mov r1, #2 - ldr r2, [r4, #0x2c] - lsl r1, r1, #0x12 - sub r1, r1, r2 - mov r2, #6 - add r0, sp, #0x2c - lsl r2, r2, #0x10 - mov r3, #0 - bl MOD05_021E3FF8 - add r3, sp, #0x2c - ldmia r3!, {r0, r1} - add r2, sp, #0x44 - stmia r2!, {r0, r1} - ldr r0, [r3] - mov r1, #2 - str r0, [r2] - ldr r2, [r4, #0x2c] - lsl r1, r1, #0x12 - add r1, r2, r1 - mov r2, #6 - add r0, sp, #0x20 - lsl r2, r2, #0x10 - mov r3, #0 - bl MOD05_021E3FF8 - add r3, sp, #0x20 - ldmia r3!, {r0, r1} - add r2, sp, #0x38 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r1, sp, #0x44 - str r0, [r2] - mov r0, #0x6e - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_02020044 - mov r0, #0x6f - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x38 - bl FUN_02020044 - mov r0, #0x71 - lsl r0, r0, #2 - add r0, r4, r0 - bl MOD05_021E36A4 - mov r1, #0x71 - lsl r1, r1, #2 - ldr r0, [r4, r1] - sub r1, r1, #4 - ldr r1, [r4, r1] - bl Camera_SetDistance - add r0, r7, #0 - bl MOD05_021E35AC - cmp r0, #0 - beq _021E948A - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E948A -_021E9430: - mov r0, #0 - add r1, r0, #0 - bl FUN_0200E3A0 - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r1, [r7, #0x14] - cmp r1, #0 - beq _021E944A - mov r0, #1 - str r0, [r1] -_021E944A: - mov r6, #0 - add r5, r4, #0 -_021E944E: - mov r0, #0x6e - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_0201FFC8 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #2 - blt _021E944E - mov r1, #0x61 - add r0, r4, #0 - lsl r1, r1, #2 - add r0, #0x48 - add r1, r4, r1 - bl MOD05_021E3F3C - add r0, r4, #0 - add r0, #0x48 - bl MOD05_021E3E44 - ldr r0, [r4, #0x44] - bl MOD05_021E37A4 - ldr r1, [r7, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - ldr r0, [sp, #0x10] - bl FUN_0200621C -_021E948A: - ldr r0, [r7] - cmp r0, #7 - beq _021E9496 - ldr r0, [r4, #0x48] - bl FUN_0201FDEC -_021E9496: - add sp, #0x5c - pop {r4, r5, r6, r7, pc} - nop -_021E949C: .word 0x000927C0 -_021E94A0: .word 0x0000FFFF -_021E94A4: .word 0xFFFF6000 - - thumb_func_start MOD05_021E94A8 -MOD05_021E94A8: ; 0x021E94A8 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x78 - add r6, r1, #0 - str r0, [sp, #0x10] - ldr r0, [r6] - ldr r4, [r6, #0xc] - cmp r0, #7 - bhi _021E95A2 - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021E94C4: ; jump table - .short _021E94D4 - _021E94C4 - 2 ; case 0 - .short _021E9582 - _021E94C4 - 2 ; case 1 - .short _021E959C - _021E94C4 - 2 ; case 2 - .short _021E95AA - _021E94C4 - 2 ; case 3 - .short _021E9638 - _021E94C4 - 2 ; case 4 - .short _021E96C8 - _021E94C4 - 2 ; case 5 - .short _021E9702 - _021E94C4 - 2 ; case 6 - .short _021E972C - _021E94C4 - 2 ; case 7 -_021E94D4: - mov r1, #0x71 - mov r0, #4 - lsl r1, r1, #2 - bl AllocFromHeap - mov r2, #0x71 - str r0, [r6, #0xc] - mov r1, #0 - lsl r2, r2, #2 - bl memset - ldr r0, [r6, #0x10] - ldr r4, [r6, #0xc] - ldr r1, [r0, #0x20] - mov r0, #0x69 - lsl r0, r0, #2 - str r1, [r4, r0] - bl MOD05_021E39FC - str r0, [r4, #0x28] - add r0, r4, #0 - add r0, #0x2c - mov r1, #2 - mov r2, #1 - bl MOD05_021E3E14 - mov r0, #2 - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r0, #3 - str r0, [sp, #8] - ldr r0, _021E9798 ; =0x000927C0 - mov r1, #0x5a - str r0, [sp, #0xc] - add r0, r4, #0 - lsl r1, r1, #2 - add r0, #0x2c - add r1, r4, r1 - mov r2, #0 - mov r3, #1 - bl MOD05_021E3E64 - add r0, r4, #0 - str r0, [sp, #0x14] - add r0, #0x2c - mov r7, #0 - add r5, r4, #0 - str r0, [sp, #0x14] -_021E9536: - mov r0, #0 - str r0, [sp] - mov r1, #0x5a - str r0, [sp, #4] - lsl r1, r1, #2 - mov r2, #2 - ldr r0, [sp, #0x14] - add r1, r4, r1 - lsl r2, r2, #0x12 - mov r3, #0 - bl MOD05_021E3FC4 - mov r1, #0x67 - lsl r1, r1, #2 - str r0, [r5, r1] - add r0, r1, #0 - ldr r0, [r5, r0] - mov r1, #0 - bl FUN_020200A0 - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r5, r0] - mov r1, #2 - bl FUN_020200EC - add r7, r7, #1 - add r5, r5, #4 - cmp r7, #2 - blt _021E9536 - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021E9786 -_021E9582: - mov r1, #0x10 - mov r0, #2 - add r2, r1, #0 - str r0, [sp] - mov r0, #1 - sub r2, #0x20 - add r3, r6, #4 - bl MOD05_021E3474 - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021E9786 -_021E959C: - ldr r1, [r6, #4] - cmp r1, #0 - bne _021E95A4 -_021E95A2: - b _021E9786 -_021E95A4: - add r0, r0, #1 - str r0, [r6] - b _021E9786 -_021E95AA: - mov r2, #3 - ldr r1, _021E979C ; =0xFFF40000 - add r0, r4, #0 - lsl r2, r2, #0x12 - mov r3, #8 - bl MOD05_021E35EC - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x1a - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r2, #2 - ldr r1, [r4] - lsl r2, r2, #0x12 - sub r1, r2, r1 - add r0, sp, #0x3c - lsr r2, r2, #1 - mov r3, #0 - bl MOD05_021E3FF8 - add r3, sp, #0x3c - ldmia r3!, {r0, r1} - add r2, sp, #0x6c - stmia r2!, {r0, r1} - ldr r0, [r3] - mov r3, #0 - str r0, [r2] - mov r2, #2 - ldr r1, [r4] - lsl r2, r2, #0x12 - add r0, sp, #0x30 - add r1, r1, r2 - bl MOD05_021E3FF8 - add r3, sp, #0x30 - ldmia r3!, {r0, r1} - add r2, sp, #0x60 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r1, sp, #0x6c - str r0, [r2] - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_02020044 - mov r0, #0x1a - lsl r0, r0, #4 - ldr r0, [r4, r0] - add r1, sp, #0x60 - bl FUN_02020044 - add r0, r4, #0 - ldr r2, _021E97A0 ; =0x0001FFFE - add r0, #0x14 - mov r1, #0 - mov r3, #8 - bl MOD05_021E35B0 - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021E9786 -_021E9638: - add r0, r4, #0 - bl MOD05_021E35FC - mov r2, #2 - add r5, r0, #0 - ldr r1, [r4] - lsl r2, r2, #0x12 - sub r1, r2, r1 - add r0, sp, #0x24 - lsr r2, r2, #1 - mov r3, #0 - bl MOD05_021E3FF8 - add r3, sp, #0x24 - ldmia r3!, {r0, r1} - add r2, sp, #0x54 - stmia r2!, {r0, r1} - ldr r0, [r3] - mov r3, #0 - str r0, [r2] - mov r2, #2 - ldr r1, [r4] - lsl r2, r2, #0x12 - add r0, sp, #0x18 - add r1, r1, r2 - bl MOD05_021E3FF8 - add r3, sp, #0x18 - ldmia r3!, {r0, r1} - add r2, sp, #0x48 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r1, sp, #0x54 - str r0, [r2] - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_02020044 - mov r0, #0x1a - lsl r0, r0, #4 - ldr r0, [r4, r0] - add r1, sp, #0x48 - bl FUN_02020044 - add r0, r4, #0 - add r0, #0x14 - bl MOD05_021E35C0 - mov r0, #0x67 - ldr r1, [r4, #0x14] - lsl r0, r0, #2 - lsl r1, r1, #0x10 - ldr r0, [r4, r0] - lsr r1, r1, #0x10 - bl FUN_02020088 - ldr r1, [r4, #0x14] - mov r0, #0x1a - lsl r0, r0, #4 - neg r1, r1 - lsl r1, r1, #0x10 - ldr r0, [r4, r0] - lsr r1, r1, #0x10 - bl FUN_02020088 - cmp r5, #1 - bne _021E9786 - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021E9786 -_021E96C8: - mov r3, #1 - lsl r3, r3, #0xc - str r3, [sp] - ldr r1, [r4, #0x28] - add r0, r6, #0 - mov r2, #8 - bl MOD05_021E3A70 - mov r0, #0x69 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl Camera_GetDistance - add r1, r0, #0 - mov r0, #8 - str r0, [sp] - mov r0, #0x6a - mov r2, #0x7d - lsl r0, r0, #2 - lsl r2, r2, #0xe - ldr r3, _021E97A4 ; =0xFFFF6000 - add r0, r4, r0 - sub r2, r1, r2 - bl MOD05_021E3644 - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021E9786 -_021E9702: - mov r0, #0x6a - lsl r0, r0, #2 - add r0, r4, r0 - bl MOD05_021E36A4 - mov r1, #0x6a - lsl r1, r1, #2 - ldr r0, [r4, r1] - sub r1, r1, #4 - ldr r1, [r4, r1] - bl Camera_SetDistance - add r0, r6, #0 - bl MOD05_021E35AC - cmp r0, #1 - bne _021E9786 - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021E9786 -_021E972C: - mov r0, #0 - add r1, r0, #0 - bl FUN_0200E3A0 - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r1, [r6, #0x14] - cmp r1, #0 - beq _021E9746 - mov r0, #1 - str r0, [r1] -_021E9746: - mov r7, #0 - add r5, r4, #0 -_021E974A: - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_0201FFC8 - add r7, r7, #1 - add r5, r5, #4 - cmp r7, #2 - blt _021E974A - mov r1, #0x5a - add r0, r4, #0 - lsl r1, r1, #2 - add r0, #0x2c - add r1, r4, r1 - bl MOD05_021E3F3C - add r0, r4, #0 - add r0, #0x2c - bl MOD05_021E3E44 - ldr r0, [r4, #0x28] - bl MOD05_021E3A48 - ldr r1, [r6, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - ldr r0, [sp, #0x10] - bl FUN_0200621C -_021E9786: - ldr r0, [r6] - cmp r0, #7 - beq _021E9792 - ldr r0, [r4, #0x2c] - bl FUN_0201FDEC -_021E9792: - add sp, #0x78 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E9798: .word 0x000927C0 -_021E979C: .word 0xFFF40000 -_021E97A0: .word 0x0001FFFE -_021E97A4: .word 0xFFFF6000 - - thumb_func_start MOD05_021E97A8 -MOD05_021E97A8: ; 0x021E97A8 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x58 - add r7, r1, #0 - str r0, [sp, #0x14] - ldr r0, [r7] - ldr r4, [r7, #0xc] - cmp r0, #7 - bls _021E97BA - b _021E9B2A -_021E97BA: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E97C6: ; jump table - .short _021E97D6 - _021E97C6 - 2 ; case 0 - .short _021E9892 - _021E97C6 - 2 ; case 1 - .short _021E98AC - _021E97C6 - 2 ; case 2 - .short _021E98F2 - _021E97C6 - 2 ; case 3 - .short _021E9958 - _021E97C6 - 2 ; case 4 - .short _021E99E4 - _021E97C6 - 2 ; case 5 - .short _021E9A68 - _021E97C6 - 2 ; case 6 - .short _021E9AD0 - _021E97C6 - 2 ; case 7 -_021E97D6: - mov r1, #0x7a - mov r0, #4 - lsl r1, r1, #2 - bl AllocFromHeap - mov r2, #0x7a - str r0, [r7, #0xc] - mov r1, #0 - lsl r2, r2, #2 - bl memset - ldr r0, [r7, #0x10] - ldr r4, [r7, #0xc] - ldr r1, [r0, #0x20] - mov r0, #0x72 - lsl r0, r0, #2 - str r1, [r4, r0] - add r0, r4, #0 - add r0, #0x40 - mov r1, #4 - bl MOD05_021E8E8C - mov r0, #0x79 - mov r1, #0xc - lsl r0, r0, #2 - str r1, [r4, r0] - add r0, r4, #0 - add r0, #0x50 - mov r1, #2 - mov r2, #1 - bl MOD05_021E3E14 - mov r0, #5 - str r0, [sp] - mov r0, #7 - str r0, [sp, #4] - mov r0, #6 - str r0, [sp, #8] - ldr r0, _021E9B4C ; =0x000927C0 - mov r1, #0x63 - str r0, [sp, #0xc] - add r0, r4, #0 - lsl r1, r1, #2 - add r0, #0x50 - add r1, r4, r1 - mov r2, #0 - mov r3, #1 - bl MOD05_021E3E64 - add r0, r4, #0 - str r0, [sp, #0x1c] - add r0, #0x50 - mov r6, #0 - add r5, r4, #0 - str r0, [sp, #0x1c] -_021E9844: - mov r0, #0 - str r0, [sp] - mov r1, #0x63 - str r0, [sp, #4] - lsl r1, r1, #2 - mov r2, #2 - mov r3, #6 - ldr r0, [sp, #0x1c] - add r1, r4, r1 - lsl r2, r2, #0x12 - lsl r3, r3, #0x10 - bl MOD05_021E3FC4 - mov r1, #7 - lsl r1, r1, #6 - str r0, [r5, r1] - add r0, r1, #0 - ldr r0, [r5, r0] - mov r1, #0 - bl FUN_020200A0 - mov r0, #7 - lsl r0, r0, #6 - ldr r0, [r5, r0] - add r1, r6, #0 - bl FUN_02020310 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #2 - blt _021E9844 - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E9B2A -_021E9892: - mov r0, #2 - str r0, [sp] - mov r0, #1 - add r1, r0, #0 - sub r1, #0x11 - add r2, r1, #0 - add r3, r7, #4 - bl MOD05_021E3474 - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E9B2A -_021E98AC: - mov r0, #0x79 - lsl r0, r0, #2 - ldr r1, [r4, r0] - sub r1, r1, #1 - str r1, [r4, r0] - ldr r0, [r4, r0] - cmp r0, #0 - bne _021E98E4 - mov r0, #3 - lsl r0, r0, #0xe - mov r3, #0x32 - str r0, [sp] - lsl r3, r3, #4 - str r3, [sp, #4] - ldr r0, _021E9B50 ; =0x04000010 - mov r1, #0 - str r0, [sp, #8] - str r1, [sp, #0xc] - mov r0, #4 - str r0, [sp, #0x10] - add r0, r4, #0 - add r0, #0x40 - mov r2, #0xbf - sub r3, #0x76 - bl MOD05_021E8EC0 - mov r0, #1 - str r0, [r4, #0x4c] -_021E98E4: - ldr r0, [r7, #4] - cmp r0, #0 - beq _021E99BE - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E9B2A -_021E98F2: - add r0, r4, #0 - add r0, #0x18 - mov r1, #0 - mov r2, #0x10 - mov r3, #8 - bl MOD05_021E35B0 - ldr r3, [r4, #0x18] - mov r0, #0x10 - sub r0, r0, r3 - str r0, [sp] - ldr r0, _021E9B54 ; =0x04000050 - mov r1, #0 - mov r2, #0xf - bl G2x_SetBlendAlpha_ - mov r6, #0 - add r5, r4, #0 -_021E9916: - mov r0, #7 - lsl r0, r0, #6 - ldr r0, [r5, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #7 - lsl r0, r0, #6 - ldr r0, [r5, r0] - mov r1, #2 - bl FUN_020200EC - mov r0, #7 - lsl r0, r0, #6 - ldr r0, [r5, r0] - mov r1, #1 - bl FUN_02020398 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #2 - blt _021E9916 - add r0, r4, #0 - ldr r2, _021E9B58 ; =0x0000FFFF - add r0, #0x2c - mov r1, #0 - mov r3, #8 - bl MOD05_021E35B0 - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E9B2A -_021E9958: - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E35C0 - add r6, r0, #0 - ldr r1, [r4, #0x18] - mov r0, #0x10 - sub r0, r0, r1 - lsl r0, r0, #8 - orr r1, r0 - ldr r0, _021E9B5C ; =0x04000052 - strh r1, [r0] - ldr r0, [r4, #0x2c] - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - add r0, r4, #0 - add r0, #0x2c - bl MOD05_021E35C0 - cmp r0, #0 - bne _021E99A2 - mov r0, #7 - ldr r1, [r4, #0x2c] - lsl r0, r0, #6 - lsl r1, r1, #0x10 - ldr r0, [r4, r0] - lsr r1, r1, #0x10 - bl FUN_02020088 - mov r0, #0x71 - lsl r0, r0, #2 - lsl r1, r5, #0x10 - ldr r0, [r4, r0] - lsr r1, r1, #0x10 - bl FUN_02020088 - b _021E99BA -_021E99A2: - mov r0, #7 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #0 - bl FUN_02020088 - mov r0, #0x71 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #0 - bl FUN_02020088 -_021E99BA: - cmp r6, #1 - beq _021E99C0 -_021E99BE: - b _021E9B2A -_021E99C0: - ldr r0, _021E9B54 ; =0x04000050 - mov r6, #0 - strh r6, [r0] - add r5, r4, #0 -_021E99C8: - mov r0, #7 - lsl r0, r0, #6 - ldr r0, [r5, r0] - mov r1, #0 - bl FUN_02020398 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #2 - blt _021E99C8 - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E9B2A -_021E99E4: - mov r1, #8 - str r1, [sp] - ldr r3, _021E9B60 ; =0x0000019A - add r0, r4, #0 - lsl r1, r1, #9 - mov r2, #0x29 - bl MOD05_021E3644 - ldr r1, [r4] - add r0, sp, #0x34 - add r2, r1, #0 - add r3, r1, #0 - bl MOD05_021E3FF8 - add r3, sp, #0x34 - add r2, sp, #0x4c - ldmia r3!, {r0, r1} - str r2, [sp, #0x20] - stmia r2!, {r0, r1} - ldr r0, [r3] - mov r6, #0 - str r0, [r2] - add r5, r4, #0 -_021E9A12: - mov r0, #7 - lsl r0, r0, #6 - ldr r0, [r5, r0] - ldr r1, [sp, #0x20] - bl FUN_02020064 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #2 - blt _021E9A12 - mov r0, #0x72 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl Camera_GetDistance - add r1, r0, #0 - mov r0, #8 - str r0, [sp] - mov r0, #0x73 - mov r2, #0x7d - lsl r0, r0, #2 - lsl r2, r2, #0xe - ldr r3, _021E9B64 ; =0xFFFF6000 - add r0, r4, r0 - sub r2, r1, r2 - bl MOD05_021E3644 - mov r0, #8 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r2, #0 - str r0, [sp, #8] - mov r0, #3 - mov r1, #0x18 - add r3, r2, #0 - bl FUN_0200E1D0 - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E9B2A -_021E9A68: - add r0, r4, #0 - bl MOD05_021E36A4 - ldr r1, [r4] - str r0, [sp, #0x18] - add r0, sp, #0x28 - add r2, r1, #0 - add r3, r1, #0 - bl MOD05_021E3FF8 - add r3, sp, #0x28 - add r2, sp, #0x40 - ldmia r3!, {r0, r1} - str r2, [sp, #0x24] - stmia r2!, {r0, r1} - ldr r0, [r3] - mov r6, #0 - str r0, [r2] - add r5, r4, #0 -_021E9A8E: - mov r0, #7 - lsl r0, r0, #6 - ldr r0, [r5, r0] - ldr r1, [sp, #0x24] - bl FUN_02020064 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #2 - blt _021E9A8E - mov r0, #0x73 - lsl r0, r0, #2 - add r0, r4, r0 - bl MOD05_021E36A4 - mov r1, #0x73 - lsl r1, r1, #2 - ldr r0, [r4, r1] - sub r1, r1, #4 - ldr r1, [r4, r1] - bl Camera_SetDistance - ldr r0, [sp, #0x18] - cmp r0, #1 - bne _021E9B2A - bl FUN_0200E308 - cmp r0, #1 - bne _021E9B2A - ldr r0, [r7] - add r0, r0, #1 - str r0, [r7] - b _021E9B2A -_021E9AD0: - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r1, [r7, #0x14] - cmp r1, #0 - beq _021E9AE2 - mov r0, #1 - str r0, [r1] -_021E9AE2: - add r0, r4, #0 - add r0, #0x40 - bl MOD05_021E8EA8 - mov r6, #0 - str r6, [r4, #0x4c] - add r5, r4, #0 -_021E9AF0: - mov r0, #7 - lsl r0, r0, #6 - ldr r0, [r5, r0] - bl FUN_0201FFC8 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #2 - blt _021E9AF0 - mov r1, #0x63 - add r0, r4, #0 - lsl r1, r1, #2 - add r0, #0x50 - add r1, r4, r1 - bl MOD05_021E3F3C - add r4, #0x50 - add r0, r4, #0 - bl MOD05_021E3E44 - ldr r1, [r7, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - ldr r0, [sp, #0x14] - bl FUN_0200621C - add sp, #0x58 - pop {r3, r4, r5, r6, r7, pc} -_021E9B2A: - ldr r0, [r4, #0x4c] - cmp r0, #1 - bne _021E9B3A - add r0, r4, #0 - add r0, #0x40 - mov r1, #2 - bl MOD05_021E8EE8 -_021E9B3A: - ldr r0, [r7] - cmp r0, #7 - beq _021E9B46 - ldr r0, [r4, #0x50] - bl FUN_0201FDEC -_021E9B46: - add sp, #0x58 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E9B4C: .word 0x000927C0 -_021E9B50: .word 0x04000010 -_021E9B54: .word 0x04000050 -_021E9B58: .word 0x0000FFFF -_021E9B5C: .word 0x04000052 -_021E9B60: .word 0x0000019A -_021E9B64: .word 0xFFFF6000 - - thumb_func_start MOD05_021E9B68 -MOD05_021E9B68: ; 0x021E9B68 - push {r4, r5, r6, r7, lr} - sub sp, #0x44 - str r0, [sp, #0x18] - add r0, r1, #0 - ldr r0, [r0] - str r1, [sp, #0x1c] - ldr r4, [r1, #0xc] - cmp r0, #7 - bls _021E9B7C - b _021EA01A -_021E9B7C: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E9B88: ; jump table - .short _021E9B98 - _021E9B88 - 2 ; case 0 - .short _021E9CAA - _021E9B88 - 2 ; case 1 - .short _021E9CCA - _021E9B88 - 2 ; case 2 - .short _021E9D24 - _021E9B88 - 2 ; case 3 - .short _021E9DE4 - _021E9B88 - 2 ; case 4 - .short _021E9E82 - _021E9B88 - 2 ; case 5 - .short _021E9F1C - _021E9B88 - 2 ; case 6 - .short _021E9F70 - _021E9B88 - 2 ; case 7 -_021E9B98: - mov r1, #9 - mov r0, #4 - lsl r1, r1, #6 - bl AllocFromHeap - ldr r1, [sp, #0x1c] - mov r2, #9 - str r0, [r1, #0xc] - mov r1, #0 - lsl r2, r2, #6 - bl memset - ldr r0, [sp, #0x1c] - ldr r4, [r0, #0xc] - ldr r0, [r0, #0x10] - ldr r1, [r0, #0x20] - mov r0, #0x22 - lsl r0, r0, #4 - str r1, [r4, r0] - sub r0, #0x10 - add r0, r4, r0 - mov r1, #4 - bl MOD05_021E8E8C - mov r0, #0x8f - mov r1, #0xe - lsl r0, r0, #2 - str r1, [r4, r0] - add r0, r4, #0 - mov r1, #3 - mov r2, #1 - bl MOD05_021E3E14 - mov r0, #2 - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r0, #3 - str r0, [sp, #8] - ldr r0, _021E9F5C ; =0x000927C0 - mov r1, #0x4f - lsl r1, r1, #2 - str r0, [sp, #0xc] - add r0, r4, #0 - add r1, r4, r1 - mov r2, #0 - mov r3, #1 - bl MOD05_021E3E64 - mov r7, #0x4f - mov r6, #0 - add r5, r4, #0 - lsl r7, r7, #2 -_021E9C02: - mov r0, #0 - str r0, [sp] - mov r2, #0 - str r0, [sp, #4] - add r0, r4, #0 - add r1, r4, r7 - add r3, r2, #0 - bl MOD05_021E3FC4 - mov r1, #0x17 - lsl r1, r1, #4 - str r0, [r5, r1] - add r0, r1, #0 - ldr r0, [r5, r0] - mov r1, #0 - bl FUN_020200A0 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - mov r1, #2 - bl FUN_020200EC - mov r0, #4 - bl MOD05_021E4140 - mov r1, #0x7d - lsl r1, r1, #2 - str r0, [r5, r1] - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #3 - blt _021E9C02 - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - mov r0, #4 - mov r1, #1 - bl AllocWindows - mov r1, #0x83 - lsl r1, r1, #2 - str r0, [r4, r1] - mov r3, #0 - str r3, [sp] - mov r0, #0x20 - str r0, [sp, #4] - str r0, [sp, #8] - str r3, [sp, #0xc] - str r3, [sp, #0x10] - ldr r0, [sp, #0x1c] - ldr r1, [r4, r1] - ldr r0, [r0, #0x10] - mov r2, #3 - ldr r0, [r0, #8] - bl AddWindowParameterized - mov r1, #0 - add r0, sp, #0x28 - strh r1, [r0] - mov r0, #3 - add r1, sp, #0x28 - mov r2, #2 - mov r3, #0x1e - bl BG_LoadPlttData - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #0 - bl FillWindowPixelBuffer - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl ScheduleWindowCopyToVram - ldr r0, [sp, #0x1c] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x1c] - str r1, [r0] - b _021EA01A -_021E9CAA: - mov r1, #0x10 - ldr r3, [sp, #0x1c] - mov r0, #2 - add r2, r1, #0 - str r0, [sp] - mov r0, #1 - sub r2, #0x20 - add r3, r3, #4 - bl MOD05_021E3474 - ldr r0, [sp, #0x1c] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x1c] - str r1, [r0] - b _021EA01A -_021E9CCA: - mov r3, #0x8f - lsl r3, r3, #2 - ldr r0, [r4, r3] - sub r0, r0, #1 - str r0, [r4, r3] - ldr r0, [r4, r3] - cmp r0, #0 - bne _021E9D08 - mov r0, #3 - lsl r0, r0, #0xe - str r0, [sp] - add r0, r3, #0 - add r0, #0xe4 - str r0, [sp, #4] - ldr r0, _021E9F60 ; =0x04000010 - mov r1, #0 - str r0, [sp, #8] - str r1, [sp, #0xc] - mov r0, #4 - str r0, [sp, #0x10] - add r0, r3, #0 - sub r0, #0x2c - add r0, r4, r0 - mov r2, #0xbf - add r3, #0x6e - bl MOD05_021E8EC0 - mov r0, #0x87 - mov r1, #1 - lsl r0, r0, #2 - str r1, [r4, r0] -_021E9D08: - ldr r0, [sp, #0x1c] - ldr r0, [r0, #4] - cmp r0, #0 - beq _021E9D34 - mov r0, #0x8f - mov r1, #6 - lsl r0, r0, #2 - str r1, [r4, r0] - ldr r0, [sp, #0x1c] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x1c] - str r1, [r0] - b _021EA01A -_021E9D24: - mov r0, #0x8f - lsl r0, r0, #2 - ldr r1, [r4, r0] - sub r1, r1, #1 - str r1, [r4, r0] - ldr r1, [r4, r0] - cmp r1, #0 - blt _021E9D36 -_021E9D34: - b _021EA01A -_021E9D36: - sub r0, #0x1c - ldr r0, [r4, r0] - bl Camera_GetDistance - add r1, r0, #0 - mov r0, #0x10 - str r0, [sp] - mov r0, #0x89 - mov r2, #0x7d - lsl r0, r0, #2 - lsl r2, r2, #0xe - ldr r3, _021E9F64 ; =0xFFFF6000 - add r0, r4, r0 - sub r2, r1, r2 - bl MOD05_021E3644 - mov r0, #0x6e - lsl r0, r0, #2 - ldr r2, _021E9F68 ; =0x0000FFFF - add r0, r4, r0 - mov r1, #0 - mov r3, #6 - bl MOD05_021E35B0 - mov r0, #0x5f - lsl r0, r0, #2 - mov r2, #0x1f - add r0, r4, r0 - mov r1, #0xe7 - mvn r2, r2 - mov r3, #6 - bl MOD05_021E35B0 - mov r0, #0 - str r0, [sp] - mov r0, #6 - str r0, [sp, #4] - mov r0, #0x83 - lsl r0, r0, #2 - ldr r1, [r4, r0] - mov r3, #0x40 - str r1, [sp, #8] - mov r1, #0x56 - str r1, [sp, #0xc] - str r3, [sp, #0x10] - mov r1, #0xf - str r1, [sp, #0x14] - sub r0, #0x18 - mov r1, #0x2b - ldr r0, [r4, r0] - add r2, r1, #0 - add r3, #0xf8 - bl MOD05_021E4160 - mov r1, #0x2b - mov r2, #0xe7 - add r0, sp, #0x38 - lsl r1, r1, #0xc - lsl r2, r2, #0xc - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r4, r0] - add r1, sp, #0x38 - bl FUN_02020044 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r1, #1 - lsl r0, r1, #9 - str r1, [r4, r0] - ldr r0, [sp, #0x1c] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x1c] - str r1, [r0] - mov r0, #0x8f - mov r1, #4 - lsl r0, r0, #2 - str r1, [r4, r0] - b _021EA01A -_021E9DE4: - mov r0, #0x8f - lsl r0, r0, #2 - ldr r1, [r4, r0] - sub r1, r1, #1 - str r1, [r4, r0] - ldr r1, [r4, r0] - cmp r1, #0 - bge _021E9E92 - sub r0, #0xac - mov r2, #0x1f - add r0, r4, r0 - mov r1, #0xe7 - mvn r2, r2 - mov r3, #6 - bl MOD05_021E35B0 - mov r0, #0x73 - lsl r0, r0, #2 - ldr r2, _021E9F6C ; =0xFFFF0001 - add r0, r4, r0 - mov r1, #0 - mov r3, #6 - bl MOD05_021E35B0 - mov r0, #0 - str r0, [sp] - mov r0, #6 - str r0, [sp, #4] - mov r0, #0x83 - lsl r0, r0, #2 - ldr r1, [r4, r0] - sub r0, #0x14 - str r1, [sp, #8] - mov r1, #0x56 - str r1, [sp, #0xc] - mov r1, #0x40 - str r1, [sp, #0x10] - mov r1, #0xf - str r1, [sp, #0x14] - mov r1, #0xd7 - add r3, r1, #0 - ldr r0, [r4, r0] - add r2, r1, #0 - add r3, #0x61 - bl MOD05_021E4160 - mov r1, #0xd7 - mov r2, #0xe7 - add r0, sp, #0x38 - lsl r1, r1, #0xc - lsl r2, r2, #0xc - mov r3, #1 - bl MOD05_021E3FF8 - mov r0, #0x5d - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x38 - bl FUN_02020044 - mov r0, #0x5d - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r1, #0x81 - mov r0, #1 - lsl r1, r1, #2 - str r0, [r4, r1] - ldr r0, [sp, #0x1c] - add r1, #0x38 - ldr r0, [r0] - add r2, r0, #1 - ldr r0, [sp, #0x1c] - str r2, [r0] - mov r0, #2 - str r0, [r4, r1] - b _021EA01A -_021E9E82: - mov r0, #0x8f - lsl r0, r0, #2 - ldr r1, [r4, r0] - sub r1, r1, #1 - str r1, [r4, r0] - ldr r1, [r4, r0] - cmp r1, #0 - blt _021E9E94 -_021E9E92: - b _021EA01A -_021E9E94: - sub r0, #0x98 - mov r2, #0x1f - add r0, r4, r0 - mov r1, #0xe7 - mvn r2, r2 - mov r3, #6 - bl MOD05_021E35B0 - mov r0, #0x1e - lsl r0, r0, #4 - ldr r2, _021E9F68 ; =0x0000FFFF - add r0, r4, r0 - mov r1, #0 - mov r3, #6 - bl MOD05_021E35B0 - mov r0, #0 - str r0, [sp] - mov r0, #6 - str r0, [sp, #4] - mov r0, #0x83 - lsl r0, r0, #2 - ldr r1, [r4, r0] - sub r0, #0x10 - str r1, [sp, #8] - mov r1, #0x56 - str r1, [sp, #0xc] - mov r1, #0x40 - str r1, [sp, #0x10] - mov r1, #0xf - str r1, [sp, #0x14] - mov r1, #0x81 - add r3, r1, #0 - ldr r0, [r4, r0] - add r2, r1, #0 - add r3, #0xb7 - bl MOD05_021E4160 - mov r1, #0x81 - mov r2, #0xe7 - add r0, sp, #0x38 - lsl r1, r1, #0xc - lsl r2, r2, #0xc - mov r3, #2 - bl MOD05_021E3FF8 - mov r0, #0x5e - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x38 - bl FUN_02020044 - mov r0, #0x5e - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x82 - mov r1, #1 - lsl r0, r0, #2 - str r1, [r4, r0] - ldr r0, [sp, #0x1c] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x1c] - str r1, [r0] - b _021EA01A -_021E9F1C: - mov r0, #0x89 - lsl r0, r0, #2 - add r0, r4, r0 - bl MOD05_021E36A4 - mov r1, #0x89 - lsl r1, r1, #2 - ldr r0, [r4, r1] - sub r1, r1, #4 - ldr r1, [r4, r1] - bl Camera_SetDistance - mov r1, #2 - lsl r1, r1, #8 - ldr r0, [r4, r1] - cmp r0, #0 - bne _021EA01A - add r0, r1, #4 - ldr r0, [r4, r0] - cmp r0, #0 - bne _021EA01A - add r1, #8 - ldr r0, [r4, r1] - cmp r0, #0 - bne _021EA01A - ldr r0, [sp, #0x1c] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x1c] - str r1, [r0] - b _021EA01A - nop -_021E9F5C: .word 0x000927C0 -_021E9F60: .word 0x04000010 -_021E9F64: .word 0xFFFF6000 -_021E9F68: .word 0x0000FFFF -_021E9F6C: .word 0xFFFF0001 -_021E9F70: - mov r0, #0 - add r1, r0, #0 - bl FUN_0200E3A0 - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r0, [sp, #0x1c] - ldr r1, [r0, #0x14] - cmp r1, #0 - beq _021E9F8C - mov r0, #1 - str r0, [r1] -_021E9F8C: - mov r0, #0x21 - lsl r0, r0, #4 - add r0, r4, r0 - bl MOD05_021E8EA8 - mov r0, #0x87 - lsl r0, r0, #2 - mov r6, #0 - add r7, r0, #0 - str r6, [r4, r0] - add r5, r4, #0 - sub r7, #0x28 -_021E9FA4: - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - bl FUN_0201FFC8 - ldr r0, [r5, r7] - bl MOD05_021E4158 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #3 - blt _021E9FA4 - mov r1, #0x4f - lsl r1, r1, #2 - add r0, r4, #0 - add r1, r4, r1 - bl MOD05_021E3F3C - add r0, r4, #0 - bl MOD05_021E3E44 - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl ClearWindowTilemapAndCopyToVram - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl RemoveWindow - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl WindowArray_dtor - mov r0, #3 - mov r1, #0x20 - mov r2, #0 - mov r3, #4 - bl BG_ClearCharDataRange - ldr r0, [sp, #0x1c] - mov r1, #3 - ldr r0, [r0, #0x10] - ldr r0, [r0, #8] - bl BgClearTilemapBufferAndCommit - ldr r1, [sp, #0x1c] - mov r0, #4 - ldr r1, [r1, #0xc] - bl FreeToHeapExplicit - ldr r0, [sp, #0x18] - bl FUN_0200621C - add sp, #0x44 - pop {r4, r5, r6, r7, pc} -_021EA01A: - mov r0, #0x87 - lsl r0, r0, #2 - ldr r1, [r4, r0] - cmp r1, #1 - bne _021EA02E - sub r0, #0xc - add r0, r4, r0 - mov r1, #2 - bl MOD05_021E8EE8 -_021EA02E: - mov r1, #0x5f - mov r0, #0 - lsl r1, r1, #2 - str r0, [sp, #0x20] - add r0, r4, r1 - add r1, #0x3c - add r5, r4, #0 - str r0, [sp, #0x24] - add r7, r4, r1 - add r6, r4, #0 -_021EA042: - mov r0, #2 - lsl r0, r0, #8 - ldr r0, [r5, r0] - cmp r0, #1 - bne _021EA0B0 - mov r0, #0x7d - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl MOD05_021E41B8 - cmp r0, #0 - beq _021EA062 - mov r0, #2 - mov r1, #0 - lsl r0, r0, #8 - str r1, [r5, r0] -_021EA062: - ldr r0, [sp, #0x24] - bl MOD05_021E35C0 - add r0, r7, #0 - bl MOD05_021E35C0 - mov r1, #0x6e - lsl r1, r1, #2 - mov r0, #0x17 - ldr r1, [r6, r1] - lsl r0, r0, #4 - lsl r1, r1, #0x10 - ldr r0, [r5, r0] - lsr r1, r1, #0x10 - bl FUN_02020088 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - bl FUN_0202011C - add r3, r0, #0 - add r2, sp, #0x2c - ldmia r3!, {r0, r1} - mov ip, r2 - stmia r2!, {r0, r1} - ldr r0, [r3] - mov r1, ip - str r0, [r2] - mov r0, #0x5f - lsl r0, r0, #2 - ldr r0, [r6, r0] - lsl r0, r0, #0xc - str r0, [sp, #0x30] - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - bl FUN_02020044 -_021EA0B0: - ldr r0, [sp, #0x24] - add r5, r5, #4 - add r0, #0x14 - str r0, [sp, #0x24] - ldr r0, [sp, #0x20] - add r7, #0x14 - add r0, r0, #1 - add r6, #0x14 - str r0, [sp, #0x20] - cmp r0, #3 - blt _021EA042 - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl ScheduleWindowCopyToVram - ldr r0, [sp, #0x1c] - ldr r0, [r0] - cmp r0, #7 - beq _021EA0DE - ldr r0, [r4] - bl FUN_0201FDEC -_021EA0DE: - add sp, #0x44 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EA0E4 -MOD05_021EA0E4: ; 0x021EA0E4 - push {r4, r5, r6, r7, lr} - sub sp, #0x34 - add r5, r1, #0 - add r6, r0, #0 - ldr r0, [r5] - ldr r4, [r5, #0xc] - cmp r0, #7 - bhi _021EA1B8 - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EA100: ; jump table - .short _021EA110 - _021EA100 - 2 ; case 0 - .short _021EA198 - _021EA100 - 2 ; case 1 - .short _021EA1B2 - _021EA100 - 2 ; case 2 - .short _021EA1C0 - _021EA100 - 2 ; case 3 - .short _021EA236 - _021EA100 - 2 ; case 4 - .short _021EA2C2 - _021EA100 - 2 ; case 5 - .short _021EA310 - _021EA100 - 2 ; case 6 - .short _021EA338 - _021EA100 - 2 ; case 7 -_021EA110: - mov r1, #0x1f - mov r0, #4 - lsl r1, r1, #4 - bl AllocFromHeap - mov r2, #0x1f - str r0, [r5, #0xc] - mov r1, #0 - lsl r2, r2, #4 - bl memset - ldr r0, [r5, #0x10] - ldr r4, [r5, #0xc] - ldr r1, [r0, #0x20] - mov r0, #0x1d - lsl r0, r0, #4 - str r1, [r4, r0] - add r0, r4, #0 - mov r1, #1 - add r0, #0x5c - add r2, r1, #0 - bl MOD05_021E3E14 - mov r0, #2 - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r0, #3 - str r0, [sp, #8] - ldr r0, _021EA394 ; =0x000927C0 - mov r1, #0x66 - str r0, [sp, #0xc] - add r0, r4, #0 - lsl r1, r1, #2 - add r0, #0x5c - add r1, r4, r1 - mov r2, #0 - mov r3, #1 - bl MOD05_021E3E64 - mov r0, #0 - str r0, [sp] - mov r1, #0x66 - str r0, [sp, #4] - add r0, r4, #0 - lsl r1, r1, #2 - mov r2, #2 - ldr r3, _021EA398 ; =0xFFFE0000 - add r0, #0x5c - add r1, r4, r1 - lsl r2, r2, #0x12 - bl MOD05_021E3FC4 - mov r1, #0x73 - lsl r1, r1, #2 - str r0, [r4, r1] - ldr r0, [r4, r1] - mov r1, #0 - bl FUN_020200A0 - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EA382 -_021EA198: - mov r0, #2 - str r0, [sp] - mov r0, #1 - add r1, r0, #0 - sub r1, #0x11 - add r2, r1, #0 - add r3, r5, #4 - bl MOD05_021E3474 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EA382 -_021EA1B2: - ldr r1, [r5, #4] - cmp r1, #0 - bne _021EA1BA -_021EA1B8: - b _021EA382 -_021EA1BA: - add r0, r0, #1 - str r0, [r5] - b _021EA382 -_021EA1C0: - mov r2, #1 - mov r0, #0xc - lsl r2, r2, #0x14 - str r0, [sp] - add r0, r4, #0 - mov r1, #0 - lsr r3, r2, #7 - bl MOD05_021E3644 - mov r0, #0x73 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0xc - str r0, [sp] - add r0, r4, #0 - mov r2, #2 - ldr r1, _021EA39C ; =0x0000019A - add r0, #0x18 - lsl r2, r2, #0xc - mov r3, #0 - bl MOD05_021E3644 - mov r0, #0xc - str r0, [sp] - add r0, r4, #0 - mov r2, #2 - ldr r1, _021EA39C ; =0x0000019A - add r0, #0x30 - lsl r2, r2, #0xc - mov r3, #0 - bl MOD05_021E3644 - ldr r1, [r4, #0x18] - ldr r2, [r4, #0x30] - add r0, sp, #0x28 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x73 - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x28 - mov r2, #2 - bl FUN_02020074 - add r0, r4, #0 - ldr r2, _021EA3A0 ; =0x0000FFFF - add r0, #0x48 - mov r1, #0 - mov r3, #0xc - bl MOD05_021E35B0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EA382 -_021EA236: - add r0, r4, #0 - bl MOD05_021E36A4 - mov r1, #2 - lsl r1, r1, #0x12 - add r6, r0, #0 - ldr r3, [r4] - lsr r2, r1, #2 - sub r2, r3, r2 - add r0, sp, #0x10 - mov r3, #0 - bl MOD05_021E3FF8 - add r3, sp, #0x10 - add r2, sp, #0x1c - ldmia r3!, {r0, r1} - add r7, r2, #0 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r1, r7, #0 - str r0, [r2] - mov r0, #0x73 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_02020044 - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E36A4 - add r0, r4, #0 - add r0, #0x30 - bl MOD05_021E36A4 - ldr r1, [r4, #0x18] - ldr r2, [r4, #0x30] - add r0, sp, #0x28 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x73 - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x28 - bl FUN_02020064 - add r0, r4, #0 - add r0, #0x48 - bl MOD05_021E35C0 - mov r0, #0x73 - ldr r1, [r4, #0x48] - lsl r0, r0, #2 - lsl r1, r1, #0x10 - ldr r0, [r4, r0] - lsr r1, r1, #0x10 - bl FUN_02020088 - cmp r6, #1 - bne _021EA382 - mov r0, #0x73 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #0 - bl FUN_020200A0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EA382 -_021EA2C2: - ldr r0, [r5, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F4608 - mov r0, #0x1d - lsl r0, r0, #4 - ldr r0, [r4, r0] - bl Camera_GetDistance - add r1, r0, #0 - mov r0, #8 - str r0, [sp] - mov r0, #0x75 - mov r2, #0xfa - lsl r0, r0, #2 - lsl r2, r2, #0xe - mov r3, #0xa - add r0, r4, r0 - sub r2, r1, r2 - lsl r3, r3, #0xc - bl MOD05_021E3644 - mov r0, #8 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r2, #0 - str r0, [sp, #8] - mov r0, #3 - mov r1, #0x12 - add r3, r2, #0 - bl FUN_0200E1D0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EA382 -_021EA310: - mov r0, #0x75 - lsl r0, r0, #2 - add r0, r4, r0 - bl MOD05_021E36A4 - mov r1, #0x75 - lsl r1, r1, #2 - ldr r0, [r4, r1] - sub r1, r1, #4 - ldr r1, [r4, r1] - bl Camera_SetDistance - bl FUN_0200E308 - cmp r0, #0 - beq _021EA382 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EA382 -_021EA338: - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r0, [r5, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F45E8 - ldr r1, [r5, #0x14] - cmp r1, #0 - beq _021EA354 - mov r0, #1 - str r0, [r1] -_021EA354: - mov r0, #0x73 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_0201FFC8 - mov r1, #0x66 - add r0, r4, #0 - lsl r1, r1, #2 - add r0, #0x5c - add r1, r4, r1 - bl MOD05_021E3F3C - add r0, r4, #0 - add r0, #0x5c - bl MOD05_021E3E44 - ldr r1, [r5, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C -_021EA382: - ldr r0, [r5] - cmp r0, #7 - beq _021EA38E - ldr r0, [r4, #0x5c] - bl FUN_0201FDEC -_021EA38E: - add sp, #0x34 - pop {r4, r5, r6, r7, pc} - nop -_021EA394: .word 0x000927C0 -_021EA398: .word 0xFFFE0000 -_021EA39C: .word 0x0000019A -_021EA3A0: .word 0x0000FFFF - - thumb_func_start MOD05_021EA3A4 -MOD05_021EA3A4: ; 0x021EA3A4 - push {r4, r5, r6, r7, lr} - sub sp, #0x44 - str r0, [sp, #0x14] - add r0, r1, #0 - ldr r0, [r0] - str r1, [sp, #0x18] - ldr r4, [r1, #0xc] - cmp r0, #9 - bls _021EA3B8 - b _021EA7DE -_021EA3B8: - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EA3C4: ; jump table - .short _021EA3D8 - _021EA3C4 - 2 ; case 0 - .short _021EA4CE - _021EA3C4 - 2 ; case 1 - .short _021EA4EE - _021EA3C4 - 2 ; case 2 - .short _021EA506 - _021EA3C4 - 2 ; case 3 - .short _021EA582 - _021EA3C4 - 2 ; case 4 - .short _021EA5FE - _021EA3C4 - 2 ; case 5 - .short _021EA674 - _021EA3C4 - 2 ; case 6 - .short _021EA6B4 - _021EA3C4 - 2 ; case 7 - .short _021EA6FA - _021EA3C4 - 2 ; case 8 - .short _021EA748 - _021EA3C4 - 2 ; case 9 -_021EA3D8: - mov r1, #0x8a - mov r0, #4 - lsl r1, r1, #2 - bl AllocFromHeap - ldr r1, [sp, #0x18] - mov r2, #0x8a - str r0, [r1, #0xc] - mov r1, #0 - lsl r2, r2, #2 - bl memset - ldr r0, [sp, #0x18] - mov r2, #1 - ldr r4, [r0, #0xc] - ldr r0, [r0, #0x10] - ldr r1, [r0, #0x20] - mov r0, #0x82 - lsl r0, r0, #2 - str r1, [r4, r0] - add r0, r4, #0 - mov r1, #3 - bl MOD05_021E3E14 - mov r0, #2 - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r0, #3 - str r0, [sp, #8] - ldr r0, _021EA738 ; =0x000927C0 - mov r1, #0x4f - lsl r1, r1, #2 - str r0, [sp, #0xc] - add r0, r4, #0 - add r1, r4, r1 - mov r2, #0 - mov r3, #1 - bl MOD05_021E3E64 - mov r7, #0x4f - mov r6, #0 - add r5, r4, #0 - lsl r7, r7, #2 -_021EA430: - mov r0, #0 - mov r2, #0 - str r0, [sp] - add r3, r2, #0 - str r0, [sp, #4] - add r0, r4, #0 - add r1, r4, r7 - sub r3, #0x20 - bl MOD05_021E3FC4 - mov r1, #0x17 - lsl r1, r1, #4 - str r0, [r5, r1] - add r0, r1, #0 - ldr r0, [r5, r0] - mov r1, #0 - bl FUN_020200A0 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #3 - blt _021EA430 - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - mov r0, #4 - mov r1, #1 - bl AllocWindows - mov r1, #2 - lsl r1, r1, #8 - str r0, [r4, r1] - mov r3, #0 - str r3, [sp] - mov r0, #0x20 - str r0, [sp, #4] - str r0, [sp, #8] - str r3, [sp, #0xc] - str r3, [sp, #0x10] - ldr r0, [sp, #0x18] - ldr r1, [r4, r1] - ldr r0, [r0, #0x10] - mov r2, #3 - ldr r0, [r0, #8] - bl AddWindowParameterized - mov r1, #0 - add r0, sp, #0x28 - strh r1, [r0] - mov r0, #3 - add r1, sp, #0x28 - mov r2, #2 - mov r3, #0x1e - bl BG_LoadPlttData - mov r0, #2 - lsl r0, r0, #8 - ldr r0, [r4, r0] - mov r1, #0 - bl FillWindowPixelBuffer - mov r0, #2 - lsl r0, r0, #8 - ldr r0, [r4, r0] - bl ScheduleWindowCopyToVram - mov r0, #4 - bl MOD05_021E4394 - mov r1, #0x81 - lsl r1, r1, #2 - str r0, [r4, r1] - ldr r0, [sp, #0x18] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x18] - str r1, [r0] - b _021EA7DE -_021EA4CE: - mov r1, #0x10 - ldr r3, [sp, #0x18] - mov r0, #2 - add r2, r1, #0 - str r0, [sp] - mov r0, #1 - sub r2, #0x20 - add r3, r3, #4 - bl MOD05_021E3474 - ldr r0, [sp, #0x18] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x18] - str r1, [r0] - b _021EA7DE -_021EA4EE: - ldr r1, [sp, #0x18] - ldr r1, [r1, #4] - cmp r1, #0 - beq _021EA516 - add r1, r0, #1 - ldr r0, [sp, #0x18] - str r1, [r0] - mov r0, #0x89 - mov r1, #0 - lsl r0, r0, #2 - strh r1, [r4, r0] - b _021EA7DE -_021EA506: - mov r0, #0x89 - lsl r0, r0, #2 - ldrsh r1, [r4, r0] - sub r1, r1, #1 - strh r1, [r4, r0] - ldrsh r1, [r4, r0] - cmp r1, #0 - ble _021EA518 -_021EA516: - b _021EA7DE -_021EA518: - sub r0, #0xa8 - mov r1, #0x1f - add r0, r4, r0 - mvn r1, r1 - mov r2, #0xe0 - mov r3, #5 - bl MOD05_021E35B0 - mov r1, #2 - ldr r2, _021EA73C ; =0xFFFE0000 - add r0, sp, #0x38 - lsl r1, r1, #0x12 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r4, r0] - add r1, sp, #0x38 - bl FUN_02020044 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x6e - lsl r0, r0, #2 - ldr r2, _021EA740 ; =0x0000FFFF - add r0, r4, r0 - mov r1, #0 - mov r3, #5 - bl MOD05_021E35B0 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #2 - bl FUN_020200EC - mov r1, #0x7d - mov r3, #1 - lsl r1, r1, #2 - str r3, [r4, r1] - ldr r0, [sp, #0x18] - add r1, #0x30 - ldr r0, [r0] - add r2, r0, #1 - ldr r0, [sp, #0x18] - str r2, [r0] - strh r3, [r4, r1] - b _021EA7DE -_021EA582: - mov r0, #0x89 - lsl r0, r0, #2 - ldrsh r1, [r4, r0] - sub r1, r1, #1 - strh r1, [r4, r0] - ldrsh r1, [r4, r0] - cmp r1, #0 - bgt _021EA68E - sub r0, #0x94 - mov r1, #0x1f - add r0, r4, r0 - mvn r1, r1 - mov r2, #0xe0 - mov r3, #5 - bl MOD05_021E35B0 - mov r1, #0xd - ldr r2, _021EA73C ; =0xFFFE0000 - add r0, sp, #0x38 - lsl r1, r1, #0x10 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x5d - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x38 - bl FUN_02020044 - mov r0, #0x5d - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x73 - lsl r0, r0, #2 - ldr r2, _021EA744 ; =0xFFFF0001 - add r0, r4, r0 - mov r1, #0 - mov r3, #5 - bl MOD05_021E35B0 - mov r0, #0x5d - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #2 - bl FUN_020200EC - mov r1, #0x7e - mov r0, #1 - lsl r1, r1, #2 - str r0, [r4, r1] - ldr r0, [sp, #0x18] - add r1, #0x2c - ldr r0, [r0] - add r2, r0, #1 - ldr r0, [sp, #0x18] - str r2, [r0] - mov r0, #3 - strh r0, [r4, r1] - b _021EA7DE -_021EA5FE: - mov r0, #0x89 - lsl r0, r0, #2 - ldrsh r1, [r4, r0] - sub r1, r1, #1 - strh r1, [r4, r0] - ldrsh r1, [r4, r0] - cmp r1, #0 - bgt _021EA68E - sub r0, #0x80 - mov r1, #0x1f - add r0, r4, r0 - mvn r1, r1 - mov r2, #0xe0 - mov r3, #5 - bl MOD05_021E35B0 - mov r1, #3 - ldr r2, _021EA73C ; =0xFFFE0000 - add r0, sp, #0x38 - lsl r1, r1, #0x10 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x5e - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x38 - bl FUN_02020044 - mov r0, #0x5e - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x1e - lsl r0, r0, #4 - ldr r2, _021EA740 ; =0x0000FFFF - add r0, r4, r0 - mov r1, #0 - mov r3, #5 - bl MOD05_021E35B0 - mov r0, #0x5e - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #2 - bl FUN_020200EC - mov r0, #0x7f - mov r1, #1 - lsl r0, r0, #2 - str r1, [r4, r0] - ldr r0, [sp, #0x18] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x18] - str r1, [r0] - b _021EA7DE -_021EA674: - mov r1, #0x7d - lsl r1, r1, #2 - ldr r0, [r4, r1] - cmp r0, #0 - bne _021EA68E - add r0, r1, #4 - ldr r0, [r4, r0] - cmp r0, #0 - bne _021EA68E - add r1, #8 - ldr r0, [r4, r1] - cmp r0, #0 - beq _021EA690 -_021EA68E: - b _021EA7DE -_021EA690: - mov r7, #0x17 - mov r6, #0 - add r5, r4, #0 - lsl r7, r7, #4 -_021EA698: - ldr r0, [r5, r7] - mov r1, #0 - bl FUN_020200A0 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #3 - blt _021EA698 - ldr r0, [sp, #0x18] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x18] - str r1, [r0] - b _021EA7DE -_021EA6B4: - mov r0, #0xf - mov r1, #1 - str r0, [sp] - mov r0, #0x81 - lsl r0, r0, #2 - lsl r3, r1, #9 - ldr r0, [r4, r0] - ldr r3, [r4, r3] - add r2, r1, #0 - bl MOD05_021E43E4 - mov r0, #0x82 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl Camera_GetDistance - add r1, r0, #0 - mov r0, #0x40 - str r0, [sp] - mov r0, #0x83 - mov r2, #0xfa - lsl r0, r0, #2 - lsl r2, r2, #0xe - mov r3, #0xa - add r0, r4, r0 - sub r2, r1, r2 - lsl r3, r3, #0xc - bl MOD05_021E3644 - ldr r0, [sp, #0x18] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x18] - str r1, [r0] - b _021EA7DE -_021EA6FA: - mov r0, #0x81 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl MOD05_021E4424 - add r5, r0, #0 - mov r0, #2 - lsl r0, r0, #8 - ldr r0, [r4, r0] - bl ScheduleWindowCopyToVram - mov r0, #0x83 - lsl r0, r0, #2 - add r0, r4, r0 - bl MOD05_021E36A4 - mov r1, #0x83 - lsl r1, r1, #2 - ldr r0, [r4, r1] - sub r1, r1, #4 - ldr r1, [r4, r1] - bl Camera_SetDistance - cmp r5, #1 - bne _021EA7DE - ldr r0, [sp, #0x18] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x18] - str r1, [r0] - b _021EA7DE - .balign 4, 0 -_021EA738: .word 0x000927C0 -_021EA73C: .word 0xFFFE0000 -_021EA740: .word 0x0000FFFF -_021EA744: .word 0xFFFF0001 -_021EA748: - mov r0, #0 - add r1, r0, #0 - bl FUN_0200E3A0 - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r0, [sp, #0x18] - ldr r1, [r0, #0x14] - cmp r1, #0 - beq _021EA764 - mov r0, #1 - str r0, [r1] -_021EA764: - mov r7, #0x17 - mov r6, #0 - add r5, r4, #0 - lsl r7, r7, #4 -_021EA76C: - ldr r0, [r5, r7] - bl FUN_0201FFC8 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #3 - blt _021EA76C - mov r1, #0x4f - lsl r1, r1, #2 - add r0, r4, #0 - add r1, r4, r1 - bl MOD05_021E3F3C - add r0, r4, #0 - bl MOD05_021E3E44 - mov r0, #0x81 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl MOD05_021E43C4 - mov r0, #2 - lsl r0, r0, #8 - ldr r0, [r4, r0] - bl ClearWindowTilemapAndCopyToVram - mov r0, #2 - lsl r0, r0, #8 - ldr r0, [r4, r0] - bl RemoveWindow - mov r0, #2 - lsl r0, r0, #8 - ldr r0, [r4, r0] - mov r1, #1 - bl WindowArray_dtor - mov r0, #3 - mov r1, #0x20 - mov r2, #0 - mov r3, #4 - bl BG_ClearCharDataRange - ldr r0, [sp, #0x18] - mov r1, #3 - ldr r0, [r0, #0x10] - ldr r0, [r0, #8] - bl BgClearTilemapBufferAndCommit - ldr r1, [sp, #0x18] - mov r0, #4 - ldr r1, [r1, #0xc] - bl FreeToHeapExplicit - ldr r0, [sp, #0x14] - bl FUN_0200621C -_021EA7DE: - mov r1, #0x5f - mov r0, #0 - lsl r1, r1, #2 - str r0, [sp, #0x1c] - add r0, r4, r1 - add r1, #0x3c - add r5, r4, #0 - str r0, [sp, #0x20] - add r7, r4, r1 - add r6, r4, #0 -_021EA7F2: - mov r0, #0x7d - lsl r0, r0, #2 - ldr r0, [r5, r0] - cmp r0, #1 - bne _021EA85A - ldr r0, [sp, #0x20] - bl MOD05_021E35C0 - str r0, [sp, #0x24] - add r0, r7, #0 - bl MOD05_021E35C0 - ldr r0, [sp, #0x24] - cmp r0, #0 - beq _021EA818 - mov r0, #0x7d - mov r1, #0 - lsl r0, r0, #2 - str r1, [r5, r0] -_021EA818: - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - bl FUN_0202011C - add r3, r0, #0 - add r2, sp, #0x2c - ldmia r3!, {r0, r1} - mov ip, r2 - stmia r2!, {r0, r1} - ldr r0, [r3] - mov r1, ip - str r0, [r2] - mov r0, #0x5f - lsl r0, r0, #2 - ldr r0, [r6, r0] - lsl r0, r0, #0xc - str r0, [sp, #0x30] - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - bl FUN_02020044 - mov r1, #0x6e - lsl r1, r1, #2 - mov r0, #0x17 - ldr r1, [r6, r1] - lsl r0, r0, #4 - lsl r1, r1, #0x10 - ldr r0, [r5, r0] - lsr r1, r1, #0x10 - bl FUN_02020088 -_021EA85A: - ldr r0, [sp, #0x20] - add r5, r5, #4 - add r0, #0x14 - str r0, [sp, #0x20] - ldr r0, [sp, #0x1c] - add r7, #0x14 - add r0, r0, #1 - add r6, #0x14 - str r0, [sp, #0x1c] - cmp r0, #3 - blt _021EA7F2 - ldr r0, [sp, #0x18] - ldr r0, [r0] - cmp r0, #9 - beq _021EA87E - ldr r0, [r4] - bl FUN_0201FDEC -_021EA87E: - add sp, #0x44 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EA884 -MOD05_021EA884: ; 0x021EA884 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x40 - add r4, r1, #0 - add r6, r0, #0 - ldr r0, [r4] - ldr r5, [r4, #0xc] - cmp r0, #7 - bls _021EA896 - b _021EAAC6 -_021EA896: - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EA8A2: ; jump table - .short _021EA8B2 - _021EA8A2 - 2 ; case 0 - .short _021EA93E - _021EA8A2 - 2 ; case 1 - .short _021EA958 - _021EA8A2 - 2 ; case 2 - .short _021EA964 - _021EA8A2 - 2 ; case 3 - .short _021EA996 - _021EA8A2 - 2 ; case 4 - .short _021EA9C8 - _021EA8A2 - 2 ; case 5 - .short _021EAA38 - _021EA8A2 - 2 ; case 6 - .short _021EAA7C - _021EA8A2 - 2 ; case 7 -_021EA8B2: - mov r1, #0x69 - mov r0, #4 - lsl r1, r1, #2 - bl AllocFromHeap - mov r2, #0x69 - str r0, [r4, #0xc] - mov r1, #0 - lsl r2, r2, #2 - bl memset - ldr r5, [r4, #0xc] - mov r1, #1 - add r0, r5, #0 - add r0, #0x2c - add r2, r1, #0 - bl MOD05_021E3E14 - mov r0, #5 - str r0, [sp] - mov r0, #7 - str r0, [sp, #4] - mov r0, #6 - str r0, [sp, #8] - ldr r0, _021EAAD8 ; =0x000927C0 - mov r1, #0x5a - str r0, [sp, #0xc] - add r0, r5, #0 - lsl r1, r1, #2 - add r0, #0x2c - add r1, r5, r1 - mov r2, #0 - mov r3, #1 - bl MOD05_021E3E64 - mov r0, #0 - str r0, [sp] - mov r1, #0x5a - str r0, [sp, #4] - add r0, r5, #0 - lsl r1, r1, #2 - mov r2, #2 - mov r3, #6 - add r0, #0x2c - add r1, r5, r1 - lsl r2, r2, #0x12 - lsl r3, r3, #0x10 - bl MOD05_021E3FC4 - mov r1, #0x67 - lsl r1, r1, #2 - str r0, [r5, r1] - ldr r0, [r5, r1] - mov r1, #0 - bl FUN_020200A0 - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r5, r0] - mov r1, #1 - bl FUN_02020398 - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021EAAC6 -_021EA93E: - mov r1, #0x10 - mov r0, #2 - add r2, r1, #0 - str r0, [sp] - mov r0, #1 - sub r2, #0x20 - add r3, r4, #4 - bl MOD05_021E3474 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021EAAC6 -_021EA958: - ldr r1, [r4, #4] - cmp r1, #0 - beq _021EA9AE - add r0, r0, #1 - str r0, [r4] - b _021EAAC6 -_021EA964: - add r0, r5, #0 - mov r1, #0 - mov r2, #0x10 - mov r3, #0xc - bl MOD05_021E35B0 - ldr r3, [r5] - mov r0, #0x10 - sub r0, r0, r3 - str r0, [sp] - ldr r0, _021EAADC ; =0x04000050 - mov r1, #0 - mov r2, #0xf - bl G2x_SetBlendAlpha_ - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r5, r0] - mov r1, #1 - bl FUN_020200A0 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021EAAC6 -_021EA996: - add r0, r5, #0 - bl MOD05_021E35C0 - ldr r2, [r5] - mov r1, #0x10 - sub r1, r1, r2 - lsl r1, r1, #8 - orr r1, r2 - ldr r2, _021EAAE0 ; =0x04000052 - cmp r0, #1 - strh r1, [r2] - beq _021EA9B0 -_021EA9AE: - b _021EAAC6 -_021EA9B0: - mov r1, #0 - sub r0, r2, #2 - strh r1, [r0] - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_02020398 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021EAAC6 -_021EA9C8: - mov r0, #6 - str r0, [sp] - add r0, r5, #0 - mov r1, #1 - ldr r2, _021EAAE4 ; =0x0000019A - add r0, #0x14 - lsl r1, r1, #0xc - mov r3, #1 - bl MOD05_021E3644 - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r5, r0] - mov r1, #2 - bl FUN_020200EC - ldr r1, [r5, #0x14] - add r0, sp, #0x1c - add r2, r1, #0 - add r3, r1, #0 - bl MOD05_021E3FF8 - add r6, sp, #0x1c - add r3, sp, #0x34 - ldmia r6!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldr r0, [r6] - add r1, r2, #0 - str r0, [r3] - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_02020064 - ldr r0, [r4, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F4608 - mov r0, #6 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r2, #0 - str r0, [sp, #8] - mov r0, #3 - mov r1, #0x10 - add r3, r2, #0 - bl FUN_0200E1D0 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021EAAC6 -_021EAA38: - add r0, r5, #0 - add r0, #0x14 - bl MOD05_021E36A4 - ldr r1, [r5, #0x14] - add r6, r0, #0 - add r0, sp, #0x10 - add r2, r1, #0 - add r3, r1, #0 - bl MOD05_021E3FF8 - add r3, sp, #0x10 - add r2, sp, #0x28 - ldmia r3!, {r0, r1} - add r7, r2, #0 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r1, r7, #0 - str r0, [r2] - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_02020064 - cmp r6, #1 - bne _021EAAC6 - bl FUN_0200E308 - cmp r0, #1 - bne _021EAAC6 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021EAAC6 -_021EAA7C: - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r0, [r4, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F45E8 - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _021EAA98 - mov r0, #1 - str r0, [r1] -_021EAA98: - mov r0, #0x67 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_0201FFC8 - mov r1, #0x5a - add r0, r5, #0 - lsl r1, r1, #2 - add r0, #0x2c - add r1, r5, r1 - bl MOD05_021E3F3C - add r0, r5, #0 - add r0, #0x2c - bl MOD05_021E3E44 - ldr r1, [r4, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C -_021EAAC6: - ldr r0, [r4] - cmp r0, #7 - beq _021EAAD2 - ldr r0, [r5, #0x2c] - bl FUN_0201FDEC -_021EAAD2: - add sp, #0x40 - pop {r3, r4, r5, r6, r7, pc} - nop -_021EAAD8: .word 0x000927C0 -_021EAADC: .word 0x04000050 -_021EAAE0: .word 0x04000052 -_021EAAE4: .word 0x0000019A - - thumb_func_start MOD05_021EAAE8 -MOD05_021EAAE8: ; 0x021EAAE8 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - add r6, r1, #0 - str r0, [sp, #0x10] - ldr r0, [r6] - ldr r4, [r6, #0xc] - cmp r0, #7 - bhi _021EABBC - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EAB04: ; jump table - .short _021EAB14 - _021EAB04 - 2 ; case 0 - .short _021EAB9C - _021EAB04 - 2 ; case 1 - .short _021EABB6 - _021EAB04 - 2 ; case 2 - .short _021EABC4 - _021EAB04 - 2 ; case 3 - .short _021EAC0E - _021EAB04 - 2 ; case 4 - .short _021EACC0 - _021EAB04 - 2 ; case 5 - .short _021EACEA - _021EAB04 - 2 ; case 6 - .short _021EACFA - _021EAB04 - 2 ; case 7 -_021EAB14: - mov r1, #0x1b - mov r0, #4 - lsl r1, r1, #4 - bl AllocFromHeap - mov r2, #0x1b - str r0, [r6, #0xc] - mov r1, #0 - lsl r2, r2, #4 - bl memset - ldr r4, [r6, #0xc] - mov r1, #4 - add r0, r4, #0 - mov r2, #1 - bl MOD05_021E3E14 - mov r0, #2 - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r0, #3 - str r0, [sp, #8] - ldr r0, _021EAD5C ; =0x000927C0 - mov r1, #0x4f - lsl r1, r1, #2 - str r0, [sp, #0xc] - add r0, r4, #0 - add r1, r4, r1 - mov r2, #0 - mov r3, #1 - bl MOD05_021E3E64 - mov r7, #0 - add r5, r4, #0 -_021EAB5A: - mov r0, #0 - mov r1, #0x4f - str r0, [sp] - lsl r1, r1, #2 - mov r2, #2 - mov r3, #6 - str r0, [sp, #4] - add r0, r4, #0 - add r1, r4, r1 - lsl r2, r2, #0x12 - lsl r3, r3, #0x10 - bl MOD05_021E3FC4 - mov r1, #0x17 - lsl r1, r1, #4 - str r0, [r5, r1] - add r0, r1, #0 - ldr r0, [r5, r0] - mov r1, #0 - bl FUN_020200A0 - add r7, r7, #1 - add r5, r5, #4 - cmp r7, #4 - blt _021EAB5A - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021EAD4C -_021EAB9C: - mov r1, #0x10 - mov r0, #2 - add r2, r1, #0 - str r0, [sp] - mov r0, #1 - sub r2, #0x20 - add r3, r6, #4 - bl MOD05_021E3474 - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021EAD4C -_021EABB6: - ldr r1, [r6, #4] - cmp r1, #0 - bne _021EABBE -_021EABBC: - b _021EAD4C -_021EABBE: - add r0, r0, #1 - str r0, [r6] - b _021EAD4C -_021EABC4: - mov r3, #6 - mov r2, #4 - lsl r3, r3, #6 - str r2, [sp] - add r0, r4, r3 - mov r1, #0 - lsl r2, r2, #0x11 - add r3, #0x1a - bl MOD05_021E3644 - mov r3, #0x66 - mov r0, #4 - mov r2, #0xa - lsl r3, r3, #2 - str r0, [sp] - add r0, r4, r3 - mov r1, #0 - lsl r2, r2, #0x10 - add r3, r3, #2 - bl MOD05_021E3644 - mov r7, #0 - add r5, r4, #0 -_021EABF2: - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - mov r1, #1 - bl FUN_020200A0 - add r7, r7, #1 - add r5, r5, #4 - cmp r7, #4 - blt _021EABF2 - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021EAD4C -_021EAC0E: - mov r0, #6 - lsl r0, r0, #6 - mov r7, #0 - add r5, r4, r0 -_021EAC16: - add r0, r5, #0 - bl MOD05_021E36A4 - add r7, r7, #1 - add r5, #0x18 - str r0, [sp, #0x14] - cmp r7, #2 - blt _021EAC16 - mov r2, #6 - lsl r2, r2, #6 - ldr r3, [r4, r2] - mov r1, #2 - lsl r2, r2, #0xa - sub r2, r2, r3 - add r0, sp, #0x18 - lsl r1, r1, #0x12 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r4, r0] - add r1, sp, #0x18 - bl FUN_02020044 - mov r2, #6 - lsl r2, r2, #6 - ldr r3, [r4, r2] - mov r1, #2 - lsl r2, r2, #0xa - add r2, r3, r2 - add r0, sp, #0x18 - lsl r1, r1, #0x12 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x5d - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x18 - bl FUN_02020044 - mov r1, #0x66 - lsl r1, r1, #2 - ldr r2, [r4, r1] - mov r1, #2 - lsl r1, r1, #0x12 - sub r1, r1, r2 - mov r2, #6 - add r0, sp, #0x18 - lsl r2, r2, #0x10 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x5e - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x18 - bl FUN_02020044 - mov r1, #0x66 - lsl r1, r1, #2 - ldr r2, [r4, r1] - mov r1, #2 - lsl r1, r1, #0x12 - add r1, r2, r1 - mov r2, #6 - add r0, sp, #0x18 - lsl r2, r2, #0x10 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x5f - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x18 - bl FUN_02020044 - ldr r0, [sp, #0x14] - cmp r0, #1 - bne _021EAD4C - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021EAD4C -_021EACC0: - ldr r0, [r6, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F4608 - mov r0, #8 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r2, #0 - str r0, [sp, #8] - mov r0, #3 - mov r1, #0x22 - add r3, r2, #0 - bl FUN_0200E1D0 - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021EAD4C -_021EACEA: - bl FUN_0200E308 - cmp r0, #1 - bne _021EAD4C - ldr r0, [r6] - add r0, r0, #1 - str r0, [r6] - b _021EAD4C -_021EACFA: - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r0, [r6, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F45E8 - ldr r1, [r6, #0x14] - cmp r1, #0 - beq _021EAD16 - mov r0, #1 - str r0, [r1] -_021EAD16: - mov r7, #0 - add r5, r4, #0 -_021EAD1A: - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - bl FUN_0201FFC8 - add r7, r7, #1 - add r5, r5, #4 - cmp r7, #4 - blt _021EAD1A - mov r1, #0x4f - lsl r1, r1, #2 - add r0, r4, #0 - add r1, r4, r1 - bl MOD05_021E3F3C - add r0, r4, #0 - bl MOD05_021E3E44 - ldr r1, [r6, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - ldr r0, [sp, #0x10] - bl FUN_0200621C -_021EAD4C: - ldr r0, [r6] - cmp r0, #7 - beq _021EAD58 - ldr r0, [r4] - bl FUN_0201FDEC -_021EAD58: - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021EAD5C: .word 0x000927C0 - - thumb_func_start MOD05_021EAD60 -MOD05_021EAD60: ; 0x021EAD60 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x48 - str r0, [sp, #0x10] - add r0, r1, #0 - ldr r0, [r0] - str r1, [sp, #0x14] - ldr r4, [r1, #0xc] - cmp r0, #7 - bhi _021EAE6E - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EAD7E: ; jump table - .short _021EAD8E - _021EAD7E - 2 ; case 0 - .short _021EAE1A - _021EAD7E - 2 ; case 1 - .short _021EAE3A - _021EAD7E - 2 ; case 2 - .short _021EAE5E - _021EAD7E - 2 ; case 3 - .short _021EAF9C - _021EAD7E - 2 ; case 4 - .short _021EAFAE - _021EAD7E - 2 ; case 5 - .short _021EAFDE - _021EAD7E - 2 ; case 6 - .short _021EAFF2 - _021EAD7E - 2 ; case 7 -_021EAD8E: - mov r1, #0x3d - mov r0, #4 - lsl r1, r1, #4 - bl AllocFromHeap - ldr r1, [sp, #0x14] - mov r2, #0x3d - str r0, [r1, #0xc] - mov r1, #0 - lsl r2, r2, #4 - bl memset - ldr r0, [sp, #0x14] - mov r1, #6 - ldr r4, [r0, #0xc] - mov r2, #1 - add r0, r4, #0 - bl MOD05_021E3E14 - mov r0, #2 - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r0, #3 - str r0, [sp, #8] - ldr r0, _021EB138 ; =0x000927C0 - mov r1, #0x4f - lsl r1, r1, #2 - str r0, [sp, #0xc] - add r0, r4, #0 - add r1, r4, r1 - mov r2, #0 - mov r3, #1 - bl MOD05_021E3E64 - mov r7, #0x4f - mov r6, #0 - add r5, r4, #0 - lsl r7, r7, #2 -_021EADDC: - mov r0, #0 - str r0, [sp] - mov r2, #0 - str r0, [sp, #4] - add r0, r4, #0 - add r1, r4, r7 - add r3, r2, #0 - bl MOD05_021E3FC4 - mov r1, #0x17 - lsl r1, r1, #4 - str r0, [r5, r1] - add r0, r1, #0 - ldr r0, [r5, r0] - mov r1, #0 - bl FUN_020200A0 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #6 - blt _021EADDC - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r0, [sp, #0x14] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x14] - str r1, [r0] - b _021EB04A -_021EAE1A: - mov r0, #2 - str r0, [sp] - mov r0, #1 - add r1, r0, #0 - ldr r3, [sp, #0x14] - sub r1, #0x11 - add r2, r1, #0 - add r3, r3, #4 - bl MOD05_021E3474 - ldr r0, [sp, #0x14] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x14] - str r1, [r0] - b _021EB04A -_021EAE3A: - ldr r1, [sp, #0x14] - ldr r1, [r1, #4] - cmp r1, #0 - beq _021EAE6E - add r1, r0, #1 - ldr r0, [sp, #0x14] - str r1, [r0] - mov r0, #0xf2 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r4, r0] - ldr r1, [r4, r0] - add r0, r0, #4 - lsl r2, r1, #5 - ldr r1, _021EB13C ; =UNK05_021F7A50 - ldr r1, [r1, r2] - str r1, [r4, r0] - b _021EB04A -_021EAE5E: - mov r0, #0xf3 - lsl r0, r0, #2 - ldr r1, [r4, r0] - sub r1, r1, #1 - str r1, [r4, r0] - ldr r1, [r4, r0] - cmp r1, #0 - blt _021EAE70 -_021EAE6E: - b _021EB04A -_021EAE70: - sub r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #8 - str r1, [sp] - mov r1, #0x86 - lsl r1, r1, #2 - add r2, r4, r1 - mov r1, #0x18 - mul r1, r0 - lsl r3, r0, #5 - add r0, r2, r1 - ldr r1, _021EB140 ; =UNK05_021F7A38 - ldr r2, _021EB144 ; =UNK05_021F7A3C - ldr r5, _021EB148 ; =UNK05_021F7A40 - ldr r1, [r1, r3] - ldr r2, [r2, r3] - ldr r3, [r5, r3] - bl MOD05_021E3644 - mov r0, #0xf2 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #8 - str r1, [sp] - mov r1, #0xaa - lsl r1, r1, #2 - add r2, r4, r1 - mov r1, #0x18 - mul r1, r0 - lsl r3, r0, #5 - add r0, r2, r1 - ldr r1, _021EB14C ; =UNK05_021F7A44 - ldr r2, _021EB150 ; =UNK05_021F7A48 - ldr r5, _021EB154 ; =UNK05_021F7A4C - ldr r1, [r1, r3] - ldr r2, [r2, r3] - ldr r3, [r5, r3] - bl MOD05_021E3644 - mov r0, #0x62 - lsl r0, r0, #2 - mov r1, #8 - add r3, r4, r0 - mov r0, #0xf2 - str r1, [sp] - lsl r0, r0, #2 - ldr r2, [r4, r0] - mov r0, #0x18 - mul r0, r2 - add r0, r3, r0 - ldr r3, _021EB158 ; =0xFFFFF99A - lsl r1, r1, #0xa - mov r2, #0x29 - bl MOD05_021E3644 - mov r0, #0xf2 - lsl r0, r0, #2 - ldr r2, [r4, r0] - sub r0, #0x90 - add r1, r4, r0 - mov r0, #0x14 - mul r0, r2 - lsl r3, r2, #5 - ldr r2, _021EB15C ; =UNK05_021F7A54 - add r0, r1, r0 - ldr r2, [r2, r3] - mov r1, #0 - mov r3, #8 - bl MOD05_021E35B0 - mov r0, #0xf2 - lsl r0, r0, #2 - ldr r0, [r4, r0] - lsl r0, r0, #2 - add r1, r4, r0 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r1, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0xf2 - lsl r0, r0, #2 - ldr r0, [r4, r0] - ldr r1, _021EB140 ; =UNK05_021F7A38 - lsl r3, r0, #5 - ldr r2, _021EB14C ; =UNK05_021F7A44 - ldr r1, [r1, r3] - ldr r2, [r2, r3] - add r0, sp, #0x3c - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0xf2 - lsl r0, r0, #2 - ldr r0, [r4, r0] - lsl r0, r0, #2 - add r1, r4, r0 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r1, r0] - add r1, sp, #0x3c - bl FUN_02020044 - mov r1, #2 - lsl r1, r1, #0xc - add r0, sp, #0x30 - add r2, r1, #0 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0xf2 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r2, #2 - lsl r0, r0, #2 - add r1, r4, r0 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r1, r0] - add r1, sp, #0x30 - bl FUN_02020074 - mov r1, #0xf2 - lsl r1, r1, #2 - ldr r0, [r4, r1] - mov r3, #1 - lsl r0, r0, #2 - add r2, r4, r0 - add r0, r1, #0 - sub r0, #0x18 - str r3, [r2, r0] - ldr r0, [r4, r1] - add r0, r0, #1 - str r0, [r4, r1] - ldr r0, [r4, r1] - cmp r0, #6 - blt _021EAF90 - ldr r0, [sp, #0x14] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x14] - str r1, [r0] - b _021EB04A -_021EAF90: - lsl r2, r0, #5 - ldr r0, _021EB13C ; =UNK05_021F7A50 - ldr r2, [r0, r2] - add r0, r1, #4 - str r2, [r4, r0] - b _021EB04A -_021EAF9C: - mov r1, #0xf1 - lsl r1, r1, #2 - ldr r1, [r4, r1] - cmp r1, #0 - bne _021EB04A - add r1, r0, #1 - ldr r0, [sp, #0x14] - str r1, [r0] - b _021EB04A -_021EAFAE: - ldr r0, [sp, #0x14] - ldr r0, [r0, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F4608 - mov r0, #0xc - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r2, #0 - str r0, [sp, #8] - mov r0, #3 - mov r1, #0x22 - add r3, r2, #0 - bl FUN_0200E1D0 - ldr r0, [sp, #0x14] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x14] - str r1, [r0] - b _021EB04A -_021EAFDE: - bl FUN_0200E308 - cmp r0, #0 - beq _021EB04A - ldr r0, [sp, #0x14] - ldr r0, [r0] - add r1, r0, #1 - ldr r0, [sp, #0x14] - str r1, [r0] - b _021EB04A -_021EAFF2: - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r0, [sp, #0x14] - ldr r0, [r0, #0x10] - ldr r0, [r0, #4] - ldr r0, [r0, #0x1c] - bl MOD05_021F45E8 - ldr r0, [sp, #0x14] - ldr r1, [r0, #0x14] - cmp r1, #0 - beq _021EB012 - mov r0, #1 - str r0, [r1] -_021EB012: - mov r7, #0x17 - mov r6, #0 - add r5, r4, #0 - lsl r7, r7, #4 -_021EB01A: - ldr r0, [r5, r7] - bl FUN_0201FFC8 - add r6, r6, #1 - add r5, r5, #4 - cmp r6, #6 - blt _021EB01A - mov r1, #0x4f - lsl r1, r1, #2 - add r0, r4, #0 - add r1, r4, r1 - bl MOD05_021E3F3C - add r0, r4, #0 - bl MOD05_021E3E44 - ldr r1, [sp, #0x14] - mov r0, #4 - ldr r1, [r1, #0xc] - bl FreeToHeapExplicit - ldr r0, [sp, #0x10] - bl FUN_0200621C -_021EB04A: - mov r1, #0x86 - mov r0, #0 - lsl r1, r1, #2 - str r0, [sp, #0x18] - add r0, r4, r1 - str r0, [sp, #0x28] - add r0, r1, #0 - add r0, #0x90 - add r0, r4, r0 - sub r1, #0x90 - str r0, [sp, #0x24] - add r0, r4, r1 - str r0, [sp, #0x20] - mov r0, #0xce - lsl r0, r0, #2 - add r0, r4, r0 - add r5, r4, #0 - str r0, [sp, #0x1c] - add r6, r4, #0 - add r7, r4, #0 -_021EB072: - mov r0, #0x3b - lsl r0, r0, #4 - ldr r0, [r5, r0] - cmp r0, #1 - bne _021EB0FE - ldr r0, [sp, #0x28] - bl MOD05_021E36A4 - str r0, [sp, #0x2c] - ldr r0, [sp, #0x24] - bl MOD05_021E36A4 - ldr r0, [sp, #0x20] - bl MOD05_021E36A4 - ldr r0, [sp, #0x1c] - bl MOD05_021E35C0 - ldr r0, [sp, #0x2c] - cmp r0, #0 - beq _021EB0AE - mov r0, #0x3b - mov r1, #0 - lsl r0, r0, #4 - str r1, [r5, r0] - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - bl FUN_020200A0 -_021EB0AE: - mov r1, #0x86 - mov r2, #0xaa - lsl r1, r1, #2 - lsl r2, r2, #2 - ldr r1, [r6, r1] - ldr r2, [r6, r2] - add r0, sp, #0x3c - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - add r1, sp, #0x3c - bl FUN_02020044 - mov r0, #0x62 - lsl r0, r0, #2 - ldr r1, [r6, r0] - add r0, sp, #0x30 - add r2, r1, #0 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r5, r0] - add r1, sp, #0x30 - bl FUN_02020064 - mov r1, #0xce - lsl r1, r1, #2 - mov r0, #0x17 - ldr r1, [r7, r1] - lsl r0, r0, #4 - lsl r1, r1, #0x10 - ldr r0, [r5, r0] - lsr r1, r1, #0x10 - bl FUN_02020088 -_021EB0FE: - ldr r0, [sp, #0x28] - add r5, r5, #4 - add r0, #0x18 - str r0, [sp, #0x28] - ldr r0, [sp, #0x24] - add r6, #0x18 - add r0, #0x18 - str r0, [sp, #0x24] - ldr r0, [sp, #0x20] - add r7, #0x14 - add r0, #0x18 - str r0, [sp, #0x20] - ldr r0, [sp, #0x1c] - add r0, #0x14 - str r0, [sp, #0x1c] - ldr r0, [sp, #0x18] - add r0, r0, #1 - str r0, [sp, #0x18] - cmp r0, #6 - blt _021EB072 - ldr r0, [sp, #0x14] - ldr r0, [r0] - cmp r0, #7 - beq _021EB134 - ldr r0, [r4] - bl FUN_0201FDEC -_021EB134: - add sp, #0x48 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021EB138: .word 0x000927C0 -_021EB13C: .word UNK05_021F7A50 -_021EB140: .word UNK05_021F7A38 -_021EB144: .word UNK05_021F7A3C -_021EB148: .word UNK05_021F7A40 -_021EB14C: .word UNK05_021F7A44 -_021EB150: .word UNK05_021F7A48 -_021EB154: .word UNK05_021F7A4C -_021EB158: .word 0xFFFFF99A -_021EB15C: .word UNK05_021F7A54 - - thumb_func_start MOD05_021EB160 -MOD05_021EB160: ; 0x021EB160 - push {r4, r5, r6, lr} - sub sp, #0x18 - add r5, r1, #0 - add r6, r0, #0 - ldr r0, [r5] - ldr r4, [r5, #0xc] - cmp r0, #7 - bls _021EB172 - b _021EB3F2 -_021EB172: - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EB17E: ; jump table - .short _021EB18E - _021EB17E - 2 ; case 0 - .short _021EB272 - _021EB17E - 2 ; case 1 - .short _021EB28C - _021EB17E - 2 ; case 2 - .short _021EB29A - _021EB17E - 2 ; case 3 - .short _021EB2D4 - _021EB17E - 2 ; case 4 - .short _021EB312 - _021EB17E - 2 ; case 5 - .short _021EB344 - _021EB17E - 2 ; case 6 - .short _021EB374 - _021EB17E - 2 ; case 7 -_021EB18E: - mov r1, #0x6f - mov r0, #4 - lsl r1, r1, #2 - bl AllocFromHeap - mov r2, #0x6f - str r0, [r5, #0xc] - mov r1, #0 - lsl r2, r2, #2 - bl memset - ldr r4, [r5, #0xc] - mov r1, #1 - add r0, r4, #0 - add r0, #8 - add r2, r1, #0 - bl MOD05_021E3E14 - mov r0, #8 - str r0, [sp] - mov r0, #0xa - str r0, [sp, #4] - mov r0, #9 - str r0, [sp, #8] - ldr r0, _021EB404 ; =0x000927C0 - mov r1, #0x51 - str r0, [sp, #0xc] - add r0, r4, #0 - lsl r1, r1, #2 - mov r2, #1 - add r0, #8 - add r1, r4, r1 - add r3, r2, #0 - bl MOD05_021E3E64 - mov r0, #0 - str r0, [sp] - mov r1, #0x51 - str r0, [sp, #4] - add r0, r4, #0 - lsl r1, r1, #2 - mov r2, #2 - mov r3, #6 - add r0, #8 - add r1, r4, r1 - lsl r2, r2, #0x12 - lsl r3, r3, #0x10 - bl MOD05_021E3FC4 - mov r1, #0x5e - lsl r1, r1, #2 - str r0, [r4, r1] - ldr r0, [r4, r1] - mov r1, #0 - bl FUN_020200A0 - mov r0, #0x5e - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_02020398 - mov r0, #0x5e - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_02020238 - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - mov r0, #4 - bl MOD05_021E4688 - str r0, [r4, #4] - mov r0, #4 - mov r1, #1 - bl AllocWindows - str r0, [r4] - mov r3, #0 - str r3, [sp] - mov r0, #0x20 - str r0, [sp, #4] - str r0, [sp, #8] - str r3, [sp, #0xc] - str r3, [sp, #0x10] - ldr r0, [r5, #0x10] - ldr r1, [r4] - ldr r0, [r0, #8] - mov r2, #3 - bl AddWindowParameterized - mov r1, #0 - add r0, sp, #0x14 - strh r1, [r0] - mov r0, #3 - add r1, sp, #0x14 - mov r2, #2 - mov r3, #0x1e - bl BG_LoadPlttData - ldr r0, [r4] - mov r1, #0 - bl FillWindowPixelBuffer - ldr r0, [r4] - bl ScheduleWindowCopyToVram - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EB3F2 -_021EB272: - mov r1, #0x10 - mov r0, #2 - add r2, r1, #0 - str r0, [sp] - mov r0, #1 - sub r2, #0x20 - add r3, r5, #4 - bl MOD05_021E3474 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EB3F2 -_021EB28C: - ldr r1, [r5, #4] - cmp r1, #0 - bne _021EB294 - b _021EB3F2 -_021EB294: - add r0, r0, #1 - str r0, [r5] - b _021EB3F2 -_021EB29A: - mov r0, #0x19 - lsl r0, r0, #4 - add r0, r4, r0 - mov r1, #0 - mov r2, #0x10 - mov r3, #0xf - bl MOD05_021E35B0 - mov r0, #0x5e - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x19 - lsl r0, r0, #4 - ldr r3, [r4, r0] - mov r0, #0x10 - sub r0, r0, r3 - str r0, [sp] - ldr r0, _021EB408 ; =0x04000050 - mov r1, #0 - mov r2, #0xf - bl G2x_SetBlendAlpha_ - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EB3F2 -_021EB2D4: - mov r0, #0x19 - lsl r0, r0, #4 - add r0, r4, r0 - bl MOD05_021E35C0 - mov r2, #0x19 - lsl r2, r2, #4 - ldr r1, [r4, r2] - mov r3, #0x10 - sub r3, r3, r1 - lsl r3, r3, #8 - orr r1, r3 - ldr r3, _021EB40C ; =0x04000052 - cmp r0, #1 - strh r1, [r3] - bne _021EB3F2 - mov r1, #0 - sub r0, r3, #2 - sub r2, #0x18 - strh r1, [r0] - ldr r0, [r4, r2] - bl FUN_02020398 - ldr r0, [r5] - mov r1, #0x10 - add r0, r0, #1 - str r0, [r5] - mov r0, #0x6e - lsl r0, r0, #2 - str r1, [r4, r0] - b _021EB3F2 -_021EB312: - mov r0, #0x6e - lsl r0, r0, #2 - ldr r1, [r4, r0] - sub r1, r1, #1 - str r1, [r4, r0] - ldr r1, [r4, r0] - cmp r1, #0 - bgt _021EB3F2 - sub r0, #0x3c - add r0, r4, r0 - mov r1, #0 - mov r2, #0xe - mov r3, #0x10 - bl MOD05_021E35B0 - ldr r0, [r4, #4] - ldr r2, [r4] - mov r1, #0x10 - mov r3, #0xf - bl MOD05_021E46D4 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EB3F2 -_021EB344: - mov r0, #0x5f - lsl r0, r0, #2 - add r0, r4, r0 - bl MOD05_021E35C0 - mov r0, #0x5f - lsl r0, r0, #2 - ldr r1, [r4, r0] - lsl r0, r1, #4 - orr r1, r0 - ldr r0, _021EB410 ; =0x0400004D - strb r1, [r0] - ldr r0, [r4, #4] - bl MOD05_021E4754 - cmp r0, #0 - beq _021EB36C - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] -_021EB36C: - ldr r0, [r4] - bl ScheduleWindowCopyToVram - b _021EB3F2 -_021EB374: - mov r0, #0 - add r1, r0, #0 - bl FUN_0200E3A0 - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - ldr r0, [r4, #4] - bl MOD05_021E46B4 - ldr r1, [r5, #0x14] - cmp r1, #0 - beq _021EB394 - mov r0, #1 - str r0, [r1] -_021EB394: - mov r0, #0x5e - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_0201FFC8 - mov r1, #0x51 - add r0, r4, #0 - lsl r1, r1, #2 - add r0, #8 - add r1, r4, r1 - bl MOD05_021E3F3C - add r0, r4, #0 - add r0, #8 - bl MOD05_021E3E44 - ldr r0, [r4] - bl ClearWindowTilemapAndCopyToVram - ldr r0, [r4] - bl RemoveWindow - ldr r0, [r4] - mov r1, #1 - bl WindowArray_dtor - mov r0, #3 - mov r1, #0x20 - mov r2, #0 - mov r3, #4 - bl BG_ClearCharDataRange - ldr r0, [r5, #0x10] - mov r1, #3 - ldr r0, [r0, #8] - bl BgClearTilemapBufferAndCommit - ldr r0, _021EB410 ; =0x0400004D - mov r1, #0 - strb r1, [r0] - ldr r1, [r5, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C -_021EB3F2: - ldr r0, [r5] - cmp r0, #7 - beq _021EB3FE - ldr r0, [r4, #8] - bl FUN_0201FDEC -_021EB3FE: - add sp, #0x18 - pop {r4, r5, r6, pc} - nop -_021EB404: .word 0x000927C0 -_021EB408: .word 0x04000050 -_021EB40C: .word 0x04000052 -_021EB410: .word 0x0400004D - - thumb_func_start MOD05_021EB414 -MOD05_021EB414: ; 0x021EB414 - push {r3, r4, r5, lr} - sub sp, #8 - add r4, r1, #0 - add r5, r0, #0 - ldrh r0, [r4, #8] - ldr r1, [r5, #0x20] - bl Camera_SetPerspectiveAngle - ldr r0, [r4] - ldr r1, [r5, #0x20] - bl Camera_SetDistance - ldrh r1, [r4, #4] - add r0, sp, #0 - strh r1, [r0] - ldrh r1, [r4, #6] - strh r1, [r0, #2] - mov r1, #0 - strh r1, [r0, #4] - ldr r1, [r5, #0x20] - add r0, sp, #0 - bl Camera_SetAngle - add sp, #8 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EB448 -MOD05_021EB448: ; 0x021EB448 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r4, r1, #0 - add r6, r0, #0 - ldr r0, [r4] - ldr r5, [r4, #0xc] - cmp r0, #7 - bls _021EB45A - b _021EB5A0 -_021EB45A: - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EB466: ; jump table - .short _021EB476 - _021EB466 - 2 ; case 0 - .short _021EB4AE - _021EB466 - 2 ; case 1 - .short _021EB4C6 - _021EB466 - 2 ; case 2 - .short _021EB4D4 - _021EB466 - 2 ; case 3 - .short _021EB4F8 - _021EB466 - 2 ; case 4 - .short _021EB534 - _021EB466 - 2 ; case 5 - .short _021EB556 - _021EB466 - 2 ; case 6 - .short _021EB56C - _021EB466 - 2 ; case 7 -_021EB476: - mov r0, #4 - mov r1, #0x10 - bl AllocFromHeap - str r0, [r4, #0xc] - mov r2, #0x10 - mov r1, #0 -_021EB484: - strb r1, [r0] - add r0, r0, #1 - sub r2, r2, #1 - bne _021EB484 - mov r0, #2 - mov r1, #0 - bl GX_EngineAToggleLayers - mov r0, #4 - mov r1, #0 - bl GX_EngineAToggleLayers - mov r0, #8 - mov r1, #0 - bl GX_EngineAToggleLayers - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB4AE: - mov r0, #1 - mov r1, #0x10 - str r0, [sp] - add r2, r1, #0 - add r3, r4, #4 - bl MOD05_021E3474 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB4C6: - ldr r1, [r4, #4] - cmp r1, #0 - beq _021EB5A0 - add r0, r0, #1 - add sp, #0xc - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB4D4: - mov r0, #3 - mov r1, #0xf - bl MOD05_021E8860 - mov r2, #0 - str r0, [r5] - mov r0, #0xc - add r1, r2, #0 - mul r1, r0 - ldr r0, _021EB5A4 ; =UNK05_021F7982 - str r2, [r5, #8] - ldrh r0, [r0, r1] - add sp, #0xc - str r0, [r5, #0xc] - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB4F8: - ldr r0, [r5, #0xc] - sub r0, r0, #1 - str r0, [r5, #0xc] - bpl _021EB5A0 - ldr r2, [r5, #8] - mov r1, #0xc - ldr r3, _021EB5A8 ; =UNK05_021F7978 - mul r1, r2 - ldr r0, [r4, #0x10] - add r1, r3, r1 - bl MOD05_021EB414 - ldr r0, [r5, #8] - add r2, r0, #1 - str r2, [r5, #8] - cmp r2, #0x10 - blo _021EB524 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB524: - mov r0, #0xc - add r1, r2, #0 - mul r1, r0 - ldr r0, _021EB5A4 ; =UNK05_021F7982 - add sp, #0xc - ldrh r0, [r0, r1] - str r0, [r5, #0xc] - pop {r3, r4, r5, r6, pc} -_021EB534: - mov r0, #0xa - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r1, #0 - str r0, [sp, #8] - ldr r3, _021EB5AC ; =0x00007FFF - mov r0, #3 - add r2, r1, #0 - bl FUN_0200E1D0 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB556: - bl FUN_0200E308 - cmp r0, #0 - beq _021EB5A0 - mov r0, #0 - str r0, [r4, #4] - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB56C: - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - add r0, r5, #0 - bl MOD05_021E88C0 - ldr r0, _021EB5B0 ; =0x04000050 - mov r1, #0 - strh r1, [r0] - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _021EB58A - mov r0, #1 - str r0, [r1] -_021EB58A: - ldr r1, [r4, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 -_021EB5A0: - add sp, #0xc - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_021EB5A4: .word UNK05_021F7982 -_021EB5A8: .word UNK05_021F7978 -_021EB5AC: .word 0x00007FFF -_021EB5B0: .word 0x04000050 - - thumb_func_start MOD05_021EB5B4 -MOD05_021EB5B4: ; 0x021EB5B4 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r4, r1, #0 - add r6, r0, #0 - ldr r0, [r4] - ldr r5, [r4, #0xc] - cmp r0, #9 - bhi _021EB636 - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EB5D0: ; jump table - .short _021EB5E4 - _021EB5D0 - 2 ; case 0 - .short _021EB618 - _021EB5D0 - 2 ; case 1 - .short _021EB630 - _021EB5D0 - 2 ; case 2 - .short _021EB640 - _021EB5D0 - 2 ; case 3 - .short _021EB66E - _021EB5D0 - 2 ; case 4 - .short _021EB698 - _021EB5D0 - 2 ; case 5 - .short _021EB6C6 - _021EB5D0 - 2 ; case 6 - .short _021EB6E8 - _021EB5D0 - 2 ; case 7 - .short _021EB70A - _021EB5D0 - 2 ; case 8 - .short _021EB720 - _021EB5D0 - 2 ; case 9 -_021EB5E4: - mov r0, #4 - mov r1, #0x38 - bl AllocFromHeap - mov r1, #0 - mov r2, #0x38 - str r0, [r4, #0xc] - bl memset - mov r0, #2 - mov r1, #0 - bl GX_EngineAToggleLayers - mov r0, #4 - mov r1, #0 - bl GX_EngineAToggleLayers - mov r0, #8 - mov r1, #0 - bl GX_EngineAToggleLayers - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB618: - mov r0, #1 - mov r1, #0x10 - str r0, [sp] - add r2, r1, #0 - add r3, r4, #4 - bl MOD05_021E3474 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB630: - ldr r1, [r4, #4] - cmp r1, #0 - bne _021EB638 -_021EB636: - b _021EB754 -_021EB638: - add r0, r0, #1 - add sp, #0xc - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB640: - mov r0, #5 - mov r1, #0xd - bl MOD05_021E8860 - str r0, [r5] - ldr r0, [r4, #0x10] - ldr r0, [r0, #0x20] - bl Camera_GetPerspectiveAngle - mov r2, #1 - add r1, r0, #0 - add r5, #8 - lsl r2, r2, #8 - add r0, r5, #0 - add r2, r1, r2 - mov r3, #0x28 - bl MOD05_021E35B0 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB66E: - add r0, r5, #0 - add r0, #8 - bl MOD05_021E35C0 - add r6, r0, #0 - ldr r0, [r5, #8] - ldr r1, [r4, #0x10] - lsl r0, r0, #0x10 - ldr r1, [r1, #0x20] - lsr r0, r0, #0x10 - bl Camera_SetPerspectiveAngle - cmp r6, #1 - bne _021EB754 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - mov r0, #5 - str r0, [r5, #0x34] - pop {r3, r4, r5, r6, pc} -_021EB698: - ldr r0, [r5, #0x34] - sub r0, r0, #1 - str r0, [r5, #0x34] - bpl _021EB754 - ldr r0, [r4, #0x10] - ldr r0, [r0, #0x20] - bl Camera_GetDistance - mov r3, #8 - str r3, [sp] - ldr r2, _021EB758 ; =0x0092E000 - add r1, r0, #0 - add r5, #0x1c - add r0, r5, #0 - sub r2, r1, r2 - lsl r3, r3, #8 - bl MOD05_021E3644 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB6C6: - add r0, r5, #0 - add r0, #0x1c - bl MOD05_021E36A4 - ldr r1, [r4, #0x10] - add r6, r0, #0 - ldr r0, [r5, #0x1c] - ldr r1, [r1, #0x20] - bl Camera_SetDistance - cmp r6, #1 - bne _021EB754 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB6E8: - mov r0, #0x3c - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r1, #0 - str r0, [sp, #8] - ldr r3, _021EB75C ; =0x00007FFF - mov r0, #3 - add r2, r1, #0 - bl FUN_0200E1D0 - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB70A: - bl FUN_0200E308 - cmp r0, #0 - beq _021EB754 - mov r0, #0 - str r0, [r4, #4] - ldr r0, [r4] - add sp, #0xc - add r0, r0, #1 - str r0, [r4] - pop {r3, r4, r5, r6, pc} -_021EB720: - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 - add r0, r5, #0 - bl MOD05_021E88C0 - ldr r0, _021EB760 ; =0x04000050 - mov r1, #0 - strh r1, [r0] - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _021EB73E - mov r0, #1 - str r0, [r1] -_021EB73E: - ldr r1, [r4, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add r0, r6, #0 - bl FUN_0200621C - mov r0, #1 - mov r1, #0 - bl FUN_0200E3A0 -_021EB754: - add sp, #0xc - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_021EB758: .word 0x0092E000 -_021EB75C: .word 0x00007FFF -_021EB760: .word 0x04000050 - - thumb_func_start MOD05_021EB764 -MOD05_021EB764: ; 0x021EB764 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x30 - add r5, r0, #0 - str r1, [sp, #0x14] - ldr r1, [r5] - add r6, r2, #0 - ldr r4, [r5, #0xc] - cmp r1, #0xe - bls _021EB778 - b _021EBB72 -_021EB778: - add r2, r1, r1 - add r2, pc - ldrh r2, [r2, #6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_021EB784: ; jump table - .short _021EB7A2 - _021EB784 - 2 ; case 0 - .short _021EB848 - _021EB784 - 2 ; case 1 - .short _021EB85E - _021EB784 - 2 ; case 2 - .short _021EB86A - _021EB784 - 2 ; case 3 - .short _021EB8B8 - _021EB784 - 2 ; case 4 - .short _021EB8D6 - _021EB784 - 2 ; case 5 - .short _021EB99C - _021EB784 - 2 ; case 6 - .short _021EB9EE - _021EB784 - 2 ; case 7 - .short _021EBA04 - _021EB784 - 2 ; case 8 - .short _021EBA34 - _021EB784 - 2 ; case 9 - .short _021EBA4A - _021EB784 - 2 ; case 10 - .short _021EBA72 - _021EB784 - 2 ; case 11 - .short _021EBA8A - _021EB784 - 2 ; case 12 - .short _021EBAAA - _021EB784 - 2 ; case 13 - .short _021EBB0E - _021EB784 - 2 ; case 14 -_021EB7A2: - mov r1, #0x1f - ldr r0, [sp, #0x14] - lsl r1, r1, #4 - bl AllocFromHeap - mov r2, #0x1f - str r0, [r5, #0xc] - mov r1, #0 - lsl r2, r2, #4 - bl memset - ldr r4, [r5, #0xc] - mov r1, #1 - add r0, r4, #0 - add r0, #0x44 - add r2, r1, #0 - bl MOD05_021E3E14 - mov r0, #0x17 - str r0, [sp] - mov r1, #0x18 - str r1, [sp, #4] - mov r0, #0x19 - str r0, [sp, #8] - ldr r0, _021EBB4C ; =0x000927C0 - lsl r1, r1, #4 - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x44 - add r1, r4, r1 - mov r2, #0x16 - mov r3, #1 - bl MOD05_021E3E64 - mov r0, #0 - str r0, [sp] - mov r1, #6 - str r0, [sp, #4] - add r0, r4, #0 - lsl r1, r1, #6 - mov r3, #0x11 - ldr r2, _021EBB50 ; =0xFFFE0000 - add r0, #0x44 - add r1, r4, r1 - lsl r3, r3, #0xe - bl MOD05_021E3FC4 - mov r1, #0x6d - lsl r1, r1, #2 - str r0, [r4, r1] - ldr r0, [r4, r1] - mov r1, #0 - bl FUN_020200A0 - mov r0, #0x6d - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #2 - bl FUN_020200EC - mov r0, #0 - str r0, [sp] - ldrh r0, [r6, #6] - ldr r1, [sp, #0x14] - mov r3, #0xa - str r0, [sp, #4] - mov r0, #0x6d - lsl r0, r0, #2 - ldrh r2, [r6, #4] - ldr r0, [r4, r0] - bl MOD05_021E4014 - ldr r0, [r5, #0x10] - ldr r0, [r0, #8] - bl MOD05_021E3C00 - bl MOD05_021E4788 - str r0, [r4, #0x40] - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EB848: - mov r0, #1 - mov r1, #0x10 - str r0, [sp] - add r2, r1, #0 - add r3, r5, #4 - bl MOD05_021E3474 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EB85E: - ldr r0, [r5, #4] - cmp r0, #0 - beq _021EB8E6 - add r0, r1, #1 - str r0, [r5] - b _021EBB72 -_021EB86A: - ldr r3, [r5, #0x10] - mov r0, #0xd - ldr r3, [r3, #8] - mov r1, #0xc - mov r2, #0xb - bl MOD05_021E3D20 - mov r0, #0x79 - mov r2, #8 - mov r1, #1 - lsl r0, r0, #2 - str r1, [r4, r0] - mov r0, #0x10 - str r0, [sp] - mov r0, #0x1f - str r0, [sp, #4] - mov r0, #0x17 - str r0, [sp, #8] - ldr r1, [r4, #0x40] - add r0, r5, #0 - add r3, r2, #0 - bl MOD05_021E47BC - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - add r0, #0x2c - add r2, r1, #0 - mov r3, #0xf - bl MOD05_021E35EC - mov r0, #8 - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EB8B8: - bl MOD05_021E35AC - cmp r0, #0 - beq _021EB8E6 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - ldr r0, [r4, #0x40] - bl MOD05_021E47A0 - mov r0, #0x7b - mov r1, #0xa - lsl r0, r0, #2 - str r1, [r4, r0] - b _021EBB72 -_021EB8D6: - mov r0, #0x7b - lsl r0, r0, #2 - ldr r1, [r4, r0] - sub r1, r1, #1 - str r1, [r4, r0] - ldr r0, [r4, r0] - cmp r0, #0 - blt _021EB8E8 -_021EB8E6: - b _021EBB72 -_021EB8E8: - mov r1, #2 - lsl r1, r1, #0xc - add r0, sp, #0x18 - add r2, r1, #0 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x6d - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x18 - bl FUN_02020064 - mov r0, #0 - str r0, [sp] - mov r0, #0x6e - lsl r0, r0, #2 - add r0, r4, r0 - str r0, [sp, #4] - mov r0, #0x11 - mov r2, #2 - lsl r0, r0, #0xe - mov r1, #0x62 - lsl r2, r2, #0xc - mov r3, #0x40 - bl MOD05_021E49F0 - ldr r3, _021EBB54 ; =0x04000048 - mov r0, #0x3f - ldrh r2, [r3] - mov r1, #0x1f - bic r2, r0 - orr r2, r1 - mov r1, #0x20 - orr r2, r1 - strh r2, [r3] - ldrh r2, [r3, #2] - bic r2, r0 - mov r0, #0xf - orr r0, r2 - orr r0, r1 - strh r0, [r3, #2] - lsl r0, r1, #0x15 - ldr r3, [r0] - ldr r2, _021EBB58 ; =0xFFFF1FFF - lsl r1, r1, #8 - and r2, r3 - orr r1, r2 - str r1, [r0] - mov r3, #4 - str r3, [sp] - ldr r1, _021EBB50 ; =0xFFFE0000 - ldr r2, [r6] - add r0, r4, #0 - lsl r3, r3, #0x10 - bl MOD05_021E3644 - mov r0, #0x6d - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x6d - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #0 - bl FUN_02020238 - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - mov r2, #0x11 - ldr r1, [r4] - add r0, sp, #0x24 - lsl r2, r2, #0xe - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x6d - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x24 - bl FUN_02020044 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EB99C: - add r0, r4, #0 - bl MOD05_021E36A4 - mov r2, #0x11 - add r6, r0, #0 - ldr r1, [r4] - add r0, sp, #0x24 - lsl r2, r2, #0xe - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x6d - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x24 - bl FUN_02020044 - mov r0, #0x6d - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_0202011C - mov r1, #0 - str r1, [sp] - mov r1, #0x6e - lsl r1, r1, #2 - add r1, r4, r1 - str r1, [sp, #4] - mov r2, #2 - ldr r0, [r0, #4] - mov r1, #0x62 - lsl r2, r2, #0xc - mov r3, #0x40 - bl MOD05_021E49F0 - cmp r6, #1 - bne _021EBA60 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EB9EE: - add r0, r4, #0 - add r0, #0x18 - mov r1, #0 - mov r2, #0x10 - mov r3, #3 - bl MOD05_021E35B0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EBA04: - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E35C0 - add r7, r0, #0 - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E4AD0 - cmp r7, #1 - bne _021EBA60 - mov r3, #0 - str r3, [sp] - mov r0, #0x6d - lsl r0, r0, #2 - ldrh r2, [r6, #4] - ldr r0, [r4, r0] - ldr r1, [sp, #0x14] - bl MOD05_021E3F68 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EBA34: - add r0, r4, #0 - add r0, #0x18 - mov r1, #0x10 - mov r2, #0 - mov r3, #3 - bl MOD05_021E35B0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EBA4A: - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E35C0 - add r6, r0, #0 - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E4AD0 - cmp r6, #1 - beq _021EBA62 -_021EBA60: - b _021EBB72 -_021EBA62: - ldr r0, [r5] - mov r1, #0x1a - add r0, r0, #1 - str r0, [r5] - mov r0, #0x7b - lsl r0, r0, #2 - str r1, [r4, r0] - b _021EBB72 -_021EBA72: - mov r0, #0x7b - lsl r0, r0, #2 - ldr r1, [r4, r0] - sub r1, r1, #1 - str r1, [r4, r0] - ldr r0, [r4, r0] - cmp r0, #0 - bge _021EBB72 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EBA8A: - mov r0, #0xf - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r1, #0 - str r0, [sp, #8] - ldr r3, _021EBB5C ; =0x00007FFF - mov r0, #3 - add r2, r1, #0 - bl FUN_0200E1D0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EBAAA: - add r0, r4, #0 - add r0, #0x2c - bl MOD05_021E35FC - mov r2, #1 - ldr r3, [r4, #0x2c] - lsl r2, r2, #0xc - add r1, r3, r2 - add r2, r3, r2 - add r0, sp, #0x18 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x6d - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x18 - bl FUN_02020064 - mov r0, #0x6d - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_0202011C - add r6, r0, #0 - ldr r0, [r4, #0x2c] - mov r1, #0x44 - mov r2, #0x1e - bl MOD05_021E4A3C - add r1, r0, #0 - mov r0, #0 - str r0, [sp] - mov r0, #0x6e - lsl r0, r0, #2 - add r0, r4, r0 - str r0, [sp, #4] - ldr r0, [r6, #4] - ldr r2, [sp, #0x1c] - mov r3, #0x40 - bl MOD05_021E49F0 - bl FUN_0200E308 - cmp r0, #0 - beq _021EBB72 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EBB72 -_021EBB0E: - ldr r1, _021EBB5C ; =0x00007FFF - mov r0, #1 - bl FUN_0200E3A0 - ldr r1, [r5, #0x14] - cmp r1, #0 - beq _021EBB20 - mov r0, #1 - str r0, [r1] -_021EBB20: - mov r0, #0x6d - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_0201FFC8 - mov r1, #6 - add r0, r4, #0 - lsl r1, r1, #6 - add r0, #0x44 - add r1, r4, r1 - bl MOD05_021E3F3C - add r4, #0x44 - add r0, r4, #0 - bl MOD05_021E3E44 - mov r2, #1 - lsl r2, r2, #0x1a - ldr r1, [r2] - ldr r0, _021EBB58 ; =0xFFFF1FFF - b _021EBB60 - nop -_021EBB4C: .word 0x000927C0 -_021EBB50: .word 0xFFFE0000 -_021EBB54: .word 0x04000048 -_021EBB58: .word 0xFFFF1FFF -_021EBB5C: .word 0x00007FFF -_021EBB60: - and r0, r1 - str r0, [r2] - ldr r1, [r5, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add sp, #0x30 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021EBB72: - mov r1, #0x79 - lsl r1, r1, #2 - ldr r0, [r4, r1] - cmp r0, #1 - bne _021EBBB6 - ldr r3, [r4, #0x2c] - mov r0, #0 - str r3, [sp] - str r0, [sp, #4] - mov r0, #0x80 - str r0, [sp, #8] - mov r0, #0x44 - str r0, [sp, #0xc] - add r0, r1, #4 - ldr r0, [r4, r0] - sub r1, #0x24 - str r0, [sp, #0x10] - add r0, r4, r1 - ldr r1, [r5, #0x10] - mov r2, #3 - ldr r1, [r1, #8] - bl MOD05_021E3DA0 - mov r3, #0x7a - lsl r3, r3, #2 - ldr r0, [r4, r3] - sub r0, #0xf - lsr r2, r0, #0x1f - lsl r1, r0, #0x17 - sub r1, r1, r2 - mov r0, #0x17 - ror r1, r0 - add r0, r2, r1 - str r0, [r4, r3] -_021EBBB6: - ldr r0, [r5] - cmp r0, #0xe - beq _021EBBC2 - ldr r0, [r4, #0x44] - bl FUN_0201FDEC -_021EBBC2: - mov r0, #0 - add sp, #0x30 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EBBC8 -MOD05_021EBBC8: ; 0x021EBBC8 - push {r4, lr} - ldr r2, _021EBBE4 ; =UNK05_021F7938 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EB764 - cmp r0, #1 - bne _021EBBE0 - add r0, r4, #0 - bl FUN_0200621C -_021EBBE0: - pop {r4, pc} - nop -_021EBBE4: .word UNK05_021F7938 - - thumb_func_start MOD05_021EBBE8 -MOD05_021EBBE8: ; 0x021EBBE8 - push {r4, lr} - ldr r2, _021EBC04 ; =UNK05_021F7940 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EB764 - cmp r0, #1 - bne _021EBC00 - add r0, r4, #0 - bl FUN_0200621C -_021EBC00: - pop {r4, pc} - nop -_021EBC04: .word UNK05_021F7940 - - thumb_func_start MOD05_021EBC08 -MOD05_021EBC08: ; 0x021EBC08 - push {r4, lr} - ldr r2, _021EBC24 ; =UNK05_021F7948 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EB764 - cmp r0, #1 - bne _021EBC20 - add r0, r4, #0 - bl FUN_0200621C -_021EBC20: - pop {r4, pc} - nop -_021EBC24: .word UNK05_021F7948 - - thumb_func_start MOD05_021EBC28 -MOD05_021EBC28: ; 0x021EBC28 - push {r4, lr} - ldr r2, _021EBC44 ; =UNK05_021F7950 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EB764 - cmp r0, #1 - bne _021EBC40 - add r0, r4, #0 - bl FUN_0200621C -_021EBC40: - pop {r4, pc} - nop -_021EBC44: .word UNK05_021F7950 - - thumb_func_start MOD05_021EBC48 -MOD05_021EBC48: ; 0x021EBC48 - push {r4, lr} - ldr r2, _021EBC64 ; =UNK05_021F7958 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EB764 - cmp r0, #1 - bne _021EBC60 - add r0, r4, #0 - bl FUN_0200621C -_021EBC60: - pop {r4, pc} - nop -_021EBC64: .word UNK05_021F7958 - - thumb_func_start MOD05_021EBC68 -MOD05_021EBC68: ; 0x021EBC68 - push {r4, lr} - ldr r2, _021EBC84 ; =UNK05_021F7960 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EB764 - cmp r0, #1 - bne _021EBC80 - add r0, r4, #0 - bl FUN_0200621C -_021EBC80: - pop {r4, pc} - nop -_021EBC84: .word UNK05_021F7960 - - thumb_func_start MOD05_021EBC88 -MOD05_021EBC88: ; 0x021EBC88 - push {r4, lr} - ldr r2, _021EBCA4 ; =UNK05_021F7968 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EB764 - cmp r0, #1 - bne _021EBCA0 - add r0, r4, #0 - bl FUN_0200621C -_021EBCA0: - pop {r4, pc} - nop -_021EBCA4: .word UNK05_021F7968 - - thumb_func_start MOD05_021EBCA8 -MOD05_021EBCA8: ; 0x021EBCA8 - push {r4, lr} - ldr r2, _021EBCC4 ; =UNK05_021F7970 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EB764 - cmp r0, #1 - bne _021EBCC0 - add r0, r4, #0 - bl FUN_0200621C -_021EBCC0: - pop {r4, pc} - nop -_021EBCC4: .word UNK05_021F7970 - - thumb_func_start MOD05_021EBCC8 -MOD05_021EBCC8: ; 0x021EBCC8 - push {r3, lr} - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - bl PlayerProfile_GetTrainerGender - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EBCD8 -MOD05_021EBCD8: ; 0x021EBCD8 - push {r4, r5, r6, r7, lr} - sub sp, #0x4c - add r5, r0, #0 - ldr r0, [r5] - str r1, [sp, #0x10] - str r2, [sp, #0x14] - ldr r4, [r5, #0xc] - cmp r0, #0x13 - bls _021EBCEC - b _021EC3A0 -_021EBCEC: - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021EBCF8: ; jump table - .short _021EBD20 - _021EBCF8 - 2 ; case 0 - .short _021EBEC0 - _021EBCF8 - 2 ; case 1 - .short _021EBED6 - _021EBCF8 - 2 ; case 2 - .short _021EBEE4 - _021EBCF8 - 2 ; case 3 - .short _021EBF6C - _021EBCF8 - 2 ; case 4 - .short _021EBFBA - _021EBCF8 - 2 ; case 5 - .short _021EBFD0 - _021EBCF8 - 2 ; case 6 - .short _021EC002 - _021EBCF8 - 2 ; case 7 - .short _021EC018 - _021EBCF8 - 2 ; case 8 - .short _021EC038 - _021EBCF8 - 2 ; case 9 - .short _021EC0D4 - _021EBCF8 - 2 ; case 10 - .short _021EC122 - _021EBCF8 - 2 ; case 11 - .short _021EC138 - _021EBCF8 - 2 ; case 12 - .short _021EC16A - _021EBCF8 - 2 ; case 13 - .short _021EC180 - _021EBCF8 - 2 ; case 14 - .short _021EC19E - _021EBCF8 - 2 ; case 15 - .short _021EC1E8 - _021EBCF8 - 2 ; case 16 - .short _021EC21C - _021EBCF8 - 2 ; case 17 - .short _021EC284 - _021EBCF8 - 2 ; case 18 - .short _021EC342 - _021EBCF8 - 2 ; case 19 -_021EBD20: - mov r1, #0x9b - ldr r0, [sp, #0x10] - lsl r1, r1, #2 - bl AllocFromHeap - mov r2, #0x9b - str r0, [r5, #0xc] - mov r1, #0 - lsl r2, r2, #2 - bl memset - ldr r4, [r5, #0xc] - mov r1, #4 - add r0, r4, #0 - add r0, #0x44 - mov r2, #3 - bl MOD05_021E3E14 - mov r0, #0x17 - str r0, [sp] - mov r1, #0x18 - str r1, [sp, #4] - mov r0, #0x19 - str r0, [sp, #8] - ldr r0, _021EC0C0 ; =0x000927C0 - lsl r1, r1, #4 - str r0, [sp, #0xc] - add r0, r4, #0 - add r0, #0x44 - add r1, r4, r1 - mov r2, #0x16 - mov r3, #1 - bl MOD05_021E3E64 - mov r0, #0x17 - str r0, [sp] - mov r0, #0x18 - str r0, [sp, #4] - mov r0, #0x19 - str r0, [sp, #8] - ldr r0, _021EC0C4 ; =0x000927C1 - mov r1, #0x6d - str r0, [sp, #0xc] - add r0, r4, #0 - lsl r1, r1, #2 - add r0, #0x44 - add r1, r4, r1 - mov r2, #0x16 - mov r3, #1 - bl MOD05_021E3E64 - mov r0, #0xf - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x11 - str r0, [sp, #8] - ldr r0, _021EC0C8 ; =0x000927C2 - mov r1, #0x7a - str r0, [sp, #0xc] - ldr r2, [sp, #0x14] - add r0, r4, #0 - lsl r1, r1, #2 - ldrb r2, [r2, #6] - add r0, #0x44 - add r1, r4, r1 - mov r3, #0xc - bl MOD05_021E3E64 - mov r1, #2 - lsl r1, r1, #0xc - add r0, sp, #0x34 - add r2, r1, #0 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #6 - lsl r0, r0, #6 - add r0, r4, r0 - str r0, [sp, #0x18] - str r0, [sp, #0x20] - add r0, r4, #0 - str r0, [sp, #0x24] - add r0, #0x44 - mov r7, #0 - add r6, r4, #0 - str r0, [sp, #0x24] -_021EBDCE: - cmp r7, #3 - bge _021EBDDA - mov r0, #0 - ldr r1, [sp, #0x18] - str r0, [sp, #0x1c] - b _021EBDEA -_021EBDDA: - sub r1, r7, #1 - mov r0, #0x34 - add r2, r1, #0 - mul r2, r0 - ldr r0, [sp, #0x20] - add r1, r0, r2 - mov r0, #1 - str r0, [sp, #0x1c] -_021EBDEA: - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r2, #0 - ldr r0, [sp, #0x24] - add r3, r2, #0 - bl MOD05_021E3FC4 - mov r1, #0x87 - lsl r1, r1, #2 - str r0, [r6, r1] - add r0, r1, #0 - ldr r0, [r6, r0] - mov r1, #0 - bl FUN_020200A0 - mov r0, #0x87 - lsl r0, r0, #2 - ldr r0, [r6, r0] - ldr r1, [sp, #0x1c] - bl FUN_02020130 - ldr r0, [sp, #0x18] - add r7, r7, #1 - add r0, #0x34 - add r6, r6, #4 - str r0, [sp, #0x18] - cmp r7, #4 - blt _021EBDCE - ldr r0, [r5, #0x10] - bl MOD05_021EBCC8 - cmp r0, #0 - bne _021EBE48 - mov r2, #0 - str r2, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #0x87 - lsl r0, r0, #2 - ldr r0, [r4, r0] - ldr r1, [sp, #0x10] - mov r3, #0xa - bl MOD05_021E4014 - mov r1, #0 - b _021EBE60 -_021EBE48: - mov r0, #0 - str r0, [sp] - mov r2, #1 - mov r0, #0x87 - str r2, [sp, #4] - lsl r0, r0, #2 - ldr r0, [r4, r0] - ldr r1, [sp, #0x10] - mov r3, #0xa - bl MOD05_021E4014 - mov r1, #1 -_021EBE60: - mov r0, #0x99 - lsl r0, r0, #2 - str r1, [r4, r0] - mov r0, #0x87 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #2 - bl FUN_020200EC - mov r0, #0x87 - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x34 - bl FUN_02020064 - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r2, [sp, #0x14] - mov r0, #0x22 - lsl r0, r0, #4 - ldrb r2, [r2, #5] - ldr r0, [r4, r0] - ldr r1, [sp, #0x10] - mov r3, #0xa - bl MOD05_021E4014 - mov r0, #0x22 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #2 - bl FUN_020200EC - mov r0, #0x22 - lsl r0, r0, #4 - ldr r0, [r4, r0] - add r1, sp, #0x34 - bl FUN_02020064 - mov r0, #0x10 - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EBEC0: - mov r0, #1 - mov r1, #0x10 - str r0, [sp] - add r2, r1, #0 - add r3, r5, #4 - bl MOD05_021E3474 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EBED6: - ldr r1, [r5, #4] - cmp r1, #0 - bne _021EBEDE - b _021EC3A0 -_021EBEDE: - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EBEE4: - mov r0, #6 - mov r2, #0x2e - mov r3, #1 - str r0, [sp] - ldr r1, _021EC0CC ; =0xFFFB0000 - add r0, r4, #0 - lsl r2, r2, #0xc - lsl r3, r3, #0x12 - bl MOD05_021E3644 - mov r2, #0x72 - ldr r1, [r4] - add r0, sp, #0x40 - lsl r2, r2, #0xc - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x87 - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - mov r0, #9 - ldr r1, [sp, #0x44] - lsl r0, r0, #0xe - add r0, r1, r0 - str r0, [sp, #0x44] - mov r0, #1 - ldr r1, [sp, #0x40] - lsl r0, r0, #0x10 - add r0, r1, r0 - str r0, [sp, #0x40] - mov r0, #0x89 - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - mov r0, #0x87 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x89 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x89 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200BC - mov r0, #0x89 - lsl r0, r0, #2 - mov r1, #1 - ldr r0, [r4, r0] - lsl r1, r1, #0xc - bl FUN_020200D8 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EBF6C: - add r0, r4, #0 - bl MOD05_021E36A4 - mov r2, #0x72 - add r6, r0, #0 - ldr r1, [r4] - add r0, sp, #0x40 - lsl r2, r2, #0xc - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x87 - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - mov r0, #9 - ldr r1, [sp, #0x44] - lsl r0, r0, #0xe - add r0, r1, r0 - str r0, [sp, #0x44] - mov r0, #1 - ldr r1, [sp, #0x40] - lsl r0, r0, #0x10 - add r0, r1, r0 - str r0, [sp, #0x40] - mov r0, #0x89 - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - cmp r6, #1 - bne _021EC02E - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EBFBA: - add r0, r4, #0 - add r0, #0x30 - mov r1, #0 - mov r2, #0x10 - mov r3, #3 - bl MOD05_021E35B0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EBFD0: - add r0, r4, #0 - add r0, #0x30 - bl MOD05_021E35C0 - add r6, r0, #0 - add r0, r4, #0 - add r0, #0x30 - bl MOD05_021E4AD0 - cmp r6, #1 - bne _021EC02E - mov r3, #0 - mov r2, #0x87 - str r3, [sp] - lsl r2, r2, #2 - ldr r0, [r4, r2] - add r2, #0x48 - ldr r1, [sp, #0x10] - ldr r2, [r4, r2] - bl MOD05_021E3F68 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC002: - add r0, r4, #0 - add r0, #0x30 - mov r1, #0x10 - mov r2, #0 - mov r3, #3 - bl MOD05_021E35B0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC018: - add r0, r4, #0 - add r0, #0x30 - bl MOD05_021E35C0 - add r6, r0, #0 - add r0, r4, #0 - add r0, #0x30 - bl MOD05_021E4AD0 - cmp r6, #1 - beq _021EC030 -_021EC02E: - b _021EC3A0 -_021EC030: - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC038: - mov r0, #6 - mov r1, #0x15 - mov r2, #0xd - str r0, [sp] - ldr r3, _021EC0D0 ; =0xFFFC0000 - add r0, r4, #0 - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - bl MOD05_021E3644 - mov r2, #0x11 - ldr r1, [r4] - add r0, sp, #0x40 - lsl r2, r2, #0xe - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x22 - lsl r0, r0, #4 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - mov r0, #9 - ldr r1, [sp, #0x44] - lsl r0, r0, #0xe - add r0, r1, r0 - str r0, [sp, #0x44] - mov r0, #1 - ldr r1, [sp, #0x40] - lsl r0, r0, #0x10 - sub r0, r1, r0 - str r0, [sp, #0x40] - mov r0, #0x8a - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - mov r0, #0x22 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x8a - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200A0 - mov r0, #0x8a - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl FUN_020200BC - mov r0, #0x8a - lsl r0, r0, #2 - mov r1, #1 - ldr r0, [r4, r0] - lsl r1, r1, #0xc - bl FUN_020200D8 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 - .balign 4, 0 -_021EC0C0: .word 0x000927C0 -_021EC0C4: .word 0x000927C1 -_021EC0C8: .word 0x000927C2 -_021EC0CC: .word 0xFFFB0000 -_021EC0D0: .word 0xFFFC0000 -_021EC0D4: - add r0, r4, #0 - bl MOD05_021E36A4 - mov r2, #0x11 - add r6, r0, #0 - ldr r1, [r4] - add r0, sp, #0x40 - lsl r2, r2, #0xe - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x22 - lsl r0, r0, #4 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - mov r0, #9 - ldr r1, [sp, #0x44] - lsl r0, r0, #0xe - add r0, r1, r0 - str r0, [sp, #0x44] - mov r0, #1 - ldr r1, [sp, #0x40] - lsl r0, r0, #0x10 - sub r0, r1, r0 - str r0, [sp, #0x40] - mov r0, #0x8a - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - cmp r6, #1 - bne _021EC212 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC122: - add r0, r4, #0 - add r0, #0x30 - mov r1, #0 - mov r2, #0x10 - mov r3, #3 - bl MOD05_021E35B0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC138: - add r0, r4, #0 - add r0, #0x30 - bl MOD05_021E35C0 - add r6, r0, #0 - add r0, r4, #0 - add r0, #0x30 - bl MOD05_021E4AD0 - cmp r6, #1 - bne _021EC212 - mov r3, #0 - mov r0, #0x22 - ldr r2, [sp, #0x14] - str r3, [sp] - lsl r0, r0, #4 - ldrb r2, [r2, #5] - ldr r0, [r4, r0] - ldr r1, [sp, #0x10] - bl MOD05_021E3F68 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC16A: - add r0, r4, #0 - add r0, #0x30 - mov r1, #0x10 - mov r2, #0 - mov r3, #3 - bl MOD05_021E35B0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC180: - add r0, r4, #0 - add r0, #0x30 - bl MOD05_021E35C0 - add r6, r0, #0 - add r0, r4, #0 - add r0, #0x30 - bl MOD05_021E4AD0 - cmp r6, #1 - bne _021EC212 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC19E: - ldr r0, [r5, #0x10] - mov r1, #0x8b - ldr r0, [r0, #0x20] - lsl r1, r1, #2 - str r0, [r4, r1] - ldr r1, [r4, r1] - add r0, sp, #0x2c - bl Camera_GetAngle - add r1, sp, #0x2c - mov r2, #0x92 - ldrh r0, [r1] - lsl r2, r2, #2 - strh r0, [r4, r2] - ldrh r3, [r1, #2] - add r0, r2, #2 - strh r3, [r4, r0] - ldrh r3, [r1, #4] - add r0, r2, #4 - strh r3, [r4, r0] - ldrh r1, [r1, #6] - add r0, r2, #6 - ldr r3, [sp, #0x14] - strh r1, [r4, r0] - ldrh r1, [r4, r2] - add r2, #8 - add r0, r4, r2 - ldr r2, [sp, #0x14] - ldrb r3, [r3, #4] - ldr r2, [r2] - add r2, r1, r2 - bl MOD05_021E35B0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC1E8: - mov r0, #0x25 - lsl r0, r0, #4 - add r0, r4, r0 - bl MOD05_021E35C0 - mov r1, #0x25 - lsl r1, r1, #4 - add r6, r0, #0 - add r0, r1, #0 - ldr r2, [r4, r1] - sub r0, #8 - strh r2, [r4, r0] - add r0, r1, #0 - sub r1, #0x24 - sub r0, #8 - ldr r1, [r4, r1] - add r0, r4, r0 - bl Camera_SetAngle - cmp r6, #1 - beq _021EC214 -_021EC212: - b _021EC3A0 -_021EC214: - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC21C: - mov r0, #0x8b - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl Camera_GetDistance - add r1, r0, #0 - mov r0, #0x1e - str r0, [sp] - mov r0, #0x23 - mov r2, #0xfa - lsl r0, r0, #4 - lsl r2, r2, #0xc - add r0, r4, r0 - sub r2, r1, r2 - mov r3, #0 - bl MOD05_021E3644 - mov r0, #0x1e - mov r1, #0 - mov r2, #6 - str r0, [sp] - add r0, r4, #0 - lsl r2, r2, #0x10 - add r3, r1, #0 - bl MOD05_021E3644 - mov r0, #0x1e - str r0, [sp] - add r0, r4, #0 - mov r1, #0 - mov r2, #6 - add r0, #0x18 - lsl r2, r2, #0x10 - add r3, r1, #0 - bl MOD05_021E3644 - mov r0, #0x1e - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - mov r1, #0 - str r0, [sp, #8] - ldr r3, _021EC3B4 ; =0x00007FFF - mov r0, #3 - add r2, r1, #0 - bl FUN_0200E1D0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC284: - mov r0, #0x23 - lsl r0, r0, #4 - add r0, r4, r0 - bl MOD05_021E36A4 - add r0, r4, #0 - bl MOD05_021E36A4 - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E36A4 - mov r1, #0x23 - lsl r1, r1, #4 - ldr r0, [r4, r1] - sub r1, r1, #4 - ldr r1, [r4, r1] - bl Camera_SetDistance - mov r1, #0x2e - ldr r2, [r4] - lsl r1, r1, #0xc - sub r1, r1, r2 - mov r2, #0x72 - ldr r3, [r4, #0x18] - lsl r2, r2, #0xc - add r2, r3, r2 - add r0, sp, #0x40 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x87 - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - mov r0, #9 - ldr r1, [sp, #0x44] - lsl r0, r0, #0xe - add r0, r1, r0 - str r0, [sp, #0x44] - mov r0, #1 - ldr r1, [sp, #0x40] - lsl r0, r0, #0x10 - add r0, r1, r0 - str r0, [sp, #0x40] - mov r0, #0x89 - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - mov r1, #0xd - ldr r2, [r4] - lsl r1, r1, #0x10 - add r1, r2, r1 - mov r2, #0x11 - ldr r3, [r4, #0x18] - lsl r2, r2, #0xe - sub r2, r2, r3 - add r0, sp, #0x40 - mov r3, #0 - bl MOD05_021E3FF8 - mov r0, #0x22 - lsl r0, r0, #4 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - mov r0, #9 - ldr r1, [sp, #0x44] - lsl r0, r0, #0xe - add r0, r1, r0 - str r0, [sp, #0x44] - mov r0, #1 - ldr r1, [sp, #0x40] - lsl r0, r0, #0x10 - sub r0, r1, r0 - str r0, [sp, #0x40] - mov r0, #0x8a - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, sp, #0x40 - bl FUN_02020044 - bl FUN_0200E308 - cmp r0, #0 - beq _021EC3A0 - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021EC3A0 -_021EC342: - ldr r1, _021EC3B4 ; =0x00007FFF - mov r0, #1 - bl FUN_0200E3A0 - ldr r1, [r5, #0x14] - cmp r1, #0 - beq _021EC354 - mov r0, #1 - str r0, [r1] -_021EC354: - mov r7, #0 - add r6, r4, #0 -_021EC358: - mov r0, #0x87 - lsl r0, r0, #2 - ldr r0, [r6, r0] - bl FUN_0201FFC8 - add r7, r7, #1 - add r6, r6, #4 - cmp r7, #4 - blt _021EC358 - mov r0, #6 - lsl r0, r0, #6 - add r6, r4, r0 - add r0, r4, #0 - str r0, [sp, #0x28] - add r0, #0x44 - mov r7, #0 - str r0, [sp, #0x28] -_021EC37A: - ldr r0, [sp, #0x28] - add r1, r6, #0 - bl MOD05_021E3F3C - add r7, r7, #1 - add r6, #0x34 - cmp r7, #3 - blt _021EC37A - add r4, #0x44 - add r0, r4, #0 - bl MOD05_021E3E44 - ldr r1, [r5, #0xc] - mov r0, #4 - bl FreeToHeapExplicit - add sp, #0x4c - mov r0, #1 - pop {r4, r5, r6, r7, pc} -_021EC3A0: - ldr r0, [r5] - cmp r0, #0x13 - beq _021EC3AC - ldr r0, [r4, #0x44] - bl FUN_0201FDEC -_021EC3AC: - mov r0, #0 - add sp, #0x4c - pop {r4, r5, r6, r7, pc} - nop -_021EC3B4: .word 0x00007FFF - - thumb_func_start MOD05_021EC3B8 -MOD05_021EC3B8: ; 0x021EC3B8 - push {r4, lr} - ldr r2, _021EC3D4 ; =UNK05_021F7910 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EBCD8 - cmp r0, #1 - bne _021EC3D0 - add r0, r4, #0 - bl FUN_0200621C -_021EC3D0: - pop {r4, pc} - nop -_021EC3D4: .word UNK05_021F7910 - - thumb_func_start MOD05_021EC3D8 -MOD05_021EC3D8: ; 0x021EC3D8 - push {r4, lr} - ldr r2, _021EC3F4 ; =UNK05_021F7918 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EBCD8 - cmp r0, #1 - bne _021EC3F0 - add r0, r4, #0 - bl FUN_0200621C -_021EC3F0: - pop {r4, pc} - nop -_021EC3F4: .word UNK05_021F7918 - - thumb_func_start MOD05_021EC3F8 -MOD05_021EC3F8: ; 0x021EC3F8 - push {r4, lr} - ldr r2, _021EC414 ; =UNK05_021F7920 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EBCD8 - cmp r0, #1 - bne _021EC410 - add r0, r4, #0 - bl FUN_0200621C -_021EC410: - pop {r4, pc} - nop -_021EC414: .word UNK05_021F7920 - - thumb_func_start MOD05_021EC418 -MOD05_021EC418: ; 0x021EC418 - push {r4, lr} - ldr r2, _021EC434 ; =UNK05_021F7928 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EBCD8 - cmp r0, #1 - bne _021EC430 - add r0, r4, #0 - bl FUN_0200621C -_021EC430: - pop {r4, pc} - nop -_021EC434: .word UNK05_021F7928 - - thumb_func_start MOD05_021EC438 -MOD05_021EC438: ; 0x021EC438 - push {r4, lr} - ldr r2, _021EC454 ; =UNK05_021F7930 - add r4, r0, #0 - add r0, r1, #0 - mov r1, #4 - bl MOD05_021EBCD8 - cmp r0, #1 - bne _021EC450 - add r0, r4, #0 - bl FUN_0200621C -_021EC450: - pop {r4, pc} - nop -_021EC454: .word UNK05_021F7930 - - thumb_func_start MOD05_021EC458 -MOD05_021EC458: ; 0x021EC458 - push {r3, lr} - bl Sav2_DayCare_GetMonX - bl DayCareMon_GetBoxMon - pop {r3, pc} - - thumb_func_start MOD05_021EC464 -MOD05_021EC464: ; 0x021EC464 - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - add r6, r0, #0 - add r5, r4, #0 - mov r7, #5 -_021EC46E: - add r0, r6, #0 - add r1, r5, #0 - bl Sav2_DayCare_GetMonX - bl DayCareMon_GetBoxMon - add r1, r7, #0 - mov r2, #0 - bl GetBoxMonData - cmp r0, #0 - beq _021EC48C - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_021EC48C: - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #2 - blo _021EC46E - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EC49C -MOD05_021EC49C: ; 0x021EC49C - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - ldr r0, _021EC4D8 ; =UNK05_021FD680 - mov r4, #0 - str r5, [r0] - mov r6, #5 - add r7, r4, #0 -_021EC4AA: - add r0, r5, #0 - add r1, r4, #0 - bl Sav2_DayCare_GetMonX - bl DayCareMon_GetBoxMon - add r1, r6, #0 - add r2, r7, #0 - bl GetBoxMonData - cmp r0, #0 - bne _021EC4C6 - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} -_021EC4C6: - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #2 - blo _021EC4AA - mov r0, #0 - mvn r0, r0 - pop {r3, r4, r5, r6, r7, pc} - nop -_021EC4D8: .word UNK05_021FD680 - - thumb_func_start MOD05_021EC4DC -MOD05_021EC4DC: ; 0x021EC4DC - push {r3, lr} - mov r1, #6 - mov r2, #0 - bl GetBoxMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl ItemIdIsMail - pop {r3, pc} - - thumb_func_start MOD05_021EC4F0 -MOD05_021EC4F0: ; 0x021EC4F0 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - add r5, r2, #0 - add r6, r0, #0 - str r1, [sp] - add r7, r3, #0 - bl GetPartyMonByIndex - add r4, r0, #0 - add r0, r5, #0 - bl DayCareMon_GetExtras - str r0, [sp, #8] - add r0, r5, #0 - bl DayCareMon_GetBoxMon - str r0, [sp, #4] - add r0, r7, #0 - bl Sav2_PlayerData_GetProfileAddr - bl PlayerProfile_GetNamePtr - add r0, r4, #0 - mov r1, #0x74 - add r2, sp, #0xc - bl GetMonData - add r0, r4, #0 - bl FUN_020690E4 - bl MOD05_021EC4DC - cmp r0, #0 - beq _021EC544 - ldr r0, [sp, #8] - bl DayCareMail_GetCapsule - add r2, r0, #0 - add r0, r4, #0 - mov r1, #0xa9 - bl GetMonData -_021EC544: - ldr r1, [sp, #4] - add r0, r4, #0 - bl CopyBoxPokemonToBoxPokemon - add r0, r5, #0 - mov r1, #0 - bl DayCareMon_SetSteps - ldr r1, [sp] - add r0, r6, #0 - bl RemoveMonFromParty - ldr r1, _021EC578 ; =0x000001B9 - add r0, r6, #0 - bl PartyHasMon - cmp r0, #0 - bne _021EC572 - add r0, r7, #0 - bl Sav2_Chatot_get - bl Chatot_invalidate -_021EC572: - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - nop -_021EC578: .word 0x000001B9 - - thumb_func_start MOD05_021EC57C -MOD05_021EC57C: ; 0x021EC57C - push {r3, r4, r5, r6, r7, lr} - add r7, r3, #0 - add r5, r0, #0 - add r0, r7, #0 - add r6, r1, #0 - add r4, r2, #0 - bl FUN_02029FC8 - mov r1, #0x28 - bl FUN_0202A0E8 - add r0, r4, #0 - bl MOD05_021EC49C - add r1, r0, #0 - add r0, r4, #0 - bl Sav2_DayCare_GetMonX - add r2, r0, #0 - add r0, r5, #0 - add r1, r6, #0 - add r3, r7, #0 - bl MOD05_021EC4F0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EC5B0 -MOD05_021EC5B0: ; 0x021EC5B0 - push {r3, r4, r5, r6, r7, lr} - add r4, r0, #0 - mov r1, #0 - bl Sav2_DayCare_GetMonX - add r5, r0, #0 - add r0, r4, #0 - mov r1, #1 - bl Sav2_DayCare_GetMonX - add r4, r0, #0 - add r0, r5, #0 - bl DayCareMon_GetBoxMon - add r6, r0, #0 - add r0, r4, #0 - bl DayCareMon_GetBoxMon - add r7, r0, #0 - add r0, r6, #0 - mov r1, #5 - mov r2, #0 - bl GetBoxMonData - cmp r0, #0 - bne _021EC600 - add r0, r7, #0 - mov r1, #5 - mov r2, #0 - bl GetBoxMonData - cmp r0, #0 - beq _021EC600 - add r0, r5, #0 - add r1, r4, #0 - bl DayCareMon_Copy - add r0, r4, #0 - bl DayCareMon_Init -_021EC600: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EC604 -MOD05_021EC604: ; 0x021EC604 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r5, r0, #0 - mov r0, #0 - str r0, [sp] - str r0, [sp, #8] - add r4, sp, #8 - add r6, sp, #4 - add r7, sp, #4 -_021EC616: - add r0, r5, #0 - bl FUN_020690E8 - cmp r0, #0 - beq _021EC658 - mov r0, #0 - str r0, [sp, #8] - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl FUN_02069818 - cmp r0, #0 - beq _021EC64E -_021EC632: - ldr r1, _021EC664 ; =0x0000FFFF - cmp r0, r1 - bne _021EC640 - ldrh r1, [r7] - add r0, r5, #0 - bl FUN_02069708 -_021EC640: - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl FUN_02069818 - cmp r0, #0 - bne _021EC632 -_021EC64E: - ldr r0, [sp] - add r0, r0, #1 - str r0, [sp] - cmp r0, #0x64 - blt _021EC616 -_021EC658: - add r0, r5, #0 - bl CalcMonLevelAndStats - add sp, #0xc - pop {r4, r5, r6, r7, pc} - nop -_021EC664: .word 0x0000FFFF - - thumb_func_start MOD05_021EC668 -MOD05_021EC668: ; 0x021EC668 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - str r0, [sp] - add r6, r1, #0 - mov r0, #4 - add r7, r2, #0 - bl AllocMonZeroed - add r4, r0, #0 - add r0, r6, #0 - bl DayCareMon_GetBoxMon - add r5, r0, #0 - add r0, r6, #0 - bl DayCareMon_GetExtras - str r0, [sp, #4] - add r0, r7, #0 - mov r1, #0 - add r2, r5, #0 - bl BufferBoxMonNickname - add r0, r5, #0 - mov r1, #5 - mov r2, #0 - bl GetBoxMonData - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - add r0, r5, #0 - add r1, r4, #0 - bl CopyBoxPokemonToPokemon - add r0, r4, #0 - mov r1, #0xa0 - mov r2, #0 - bl GetMonData - cmp r0, #0x64 - beq _021EC6E0 - add r0, r4, #0 - mov r1, #8 - mov r2, #0 - bl GetMonData - str r0, [sp, #8] - add r0, r6, #0 - bl DayCareMon_GetSteps - ldr r1, [sp, #8] - add r2, sp, #8 - add r0, r1, r0 - str r0, [sp, #8] - add r0, r4, #0 - mov r1, #8 - bl SetMonData - add r0, r4, #0 - bl MOD05_021EC604 -_021EC6E0: - add r0, r5, #0 - bl MOD05_021EC4DC - cmp r0, #0 - beq _021EC6FA - ldr r0, [sp, #4] - bl DayCareMail_GetCapsule - add r2, r0, #0 - add r0, r4, #0 - mov r1, #0xa9 - bl SetMonData -_021EC6FA: - ldr r0, [sp] - add r1, r4, #0 - bl AddMonToParty - add r0, r5, #0 - bl ZeroBoxMonData - add r0, r6, #0 - mov r1, #0 - bl DayCareMon_SetSteps - add r0, r4, #0 - bl FreeToHeap - add r0, r7, #0 - add sp, #0xc - pop {r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EC71C -MOD05_021EC71C: ; 0x021EC71C - push {r4, r5, r6, lr} - add r6, r2, #0 - add r5, r0, #0 - add r4, r1, #0 - add r0, r6, #0 - add r1, r3, #0 - bl Sav2_DayCare_GetMonX - add r1, r0, #0 - add r0, r5, #0 - add r2, r4, #0 - bl MOD05_021EC668 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r6, #0 - bl MOD05_021EC5B0 - add r0, r4, #0 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021EC744 -MOD05_021EC744: ; 0x021EC744 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - mov r0, #4 - add r5, r1, #0 - bl AllocMonZeroed - add r7, r0, #0 - bl FUN_020690E4 - add r4, r0, #0 - add r0, r6, #0 - add r1, r4, #0 - bl CopyPokemonToBoxPokemon - add r0, r4, #0 - mov r1, #8 - mov r2, #0 - bl GetBoxMonData - str r0, [sp] - add r0, r0, r5 - str r0, [sp] - add r0, r4, #0 - mov r1, #8 - add r2, sp, #0 - bl SetBoxMonData - add r0, r4, #0 - bl CalcBoxMonLevel - add r4, r0, #0 - add r0, r7, #0 - bl FreeToHeap - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EC78C -MOD05_021EC78C: ; 0x021EC78C - push {r4, r5, r6, lr} - add r5, r0, #0 - bl DayCareMon_GetBoxMon - add r6, r0, #0 - bl CalcBoxMonLevel - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - add r0, r5, #0 - bl DayCareMon_GetSteps - add r1, r0, #0 - add r0, r6, #0 - bl MOD05_021EC744 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - sub r0, r0, r4 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021EC7B4 -MOD05_021EC7B4: ; 0x021EC7B4 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl DayCareMon_GetBoxMon - add r4, r0, #0 - add r0, r5, #0 - bl DayCareMon_GetSteps - add r1, r0, #0 - add r0, r4, #0 - bl MOD05_021EC744 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EC7D4 -MOD05_021EC7D4: ; 0x021EC7D4 - push {r4, r5, r6, lr} - sub sp, #8 - add r4, r0, #0 - add r5, r1, #0 - bl DayCareMon_GetBoxMon - add r6, r0, #0 - add r0, r4, #0 - bl MOD05_021EC78C - add r4, r0, #0 - mov r0, #0 - str r0, [sp] - mov r1, #1 - add r0, r5, #0 - add r2, r4, #0 - mov r3, #3 - str r1, [sp, #4] - bl BufferIntegerAsString - add r0, r5, #0 - mov r1, #0 - add r2, r6, #0 - bl BufferBoxMonNickname - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - add sp, #8 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EC810 -MOD05_021EC810: ; 0x021EC810 - push {r4, r5, r6, lr} - sub sp, #8 - add r4, r0, #0 - add r5, r1, #0 - bl DayCareMon_GetBoxMon - add r6, r0, #0 - add r0, r4, #0 - bl MOD05_021EC78C - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r5, #0 - mov r1, #0 - add r2, r6, #0 - bl BufferBoxMonNickname - add r1, r4, #1 - mov r0, #0x64 - mul r0, r1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - mov r0, #0 - str r0, [sp] - mov r1, #1 - add r0, r5, #0 - add r2, r4, #0 - mov r3, #5 - str r1, [sp, #4] - bl BufferIntegerAsString - add r0, r4, #0 - add sp, #8 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021EC854 -MOD05_021EC854: ; 0x021EC854 - push {r4, lr} - add r4, r2, #0 - bl Sav2_DayCare_GetMonX - add r1, r4, #0 - bl MOD05_021EC810 - pop {r4, pc} - - thumb_func_start MOD05_021EC864 -MOD05_021EC864: ; 0x021EC864 - push {r3, r4, r5, lr} - add r5, r2, #0 - bl Sav2_DayCare_GetMonX - add r4, r0, #0 - bl DayCareMon_GetBoxMon - mov r1, #5 - mov r2, #0 - bl GetBoxMonData - cmp r0, #0 - beq _021EC888 - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021EC7D4 - pop {r3, r4, r5, pc} -_021EC888: - mov r0, #0 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021EC88C -MOD05_021EC88C: ; 0x021EC88C - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - mov r1, #0 - bl MOD05_021EC458 - str r0, [r4] - add r0, r5, #0 - mov r1, #1 - bl MOD05_021EC458 - str r0, [r4, #4] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EC8A8 -MOD05_021EC8A8: ; 0x021EC8A8 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - mov r1, #0 - mvn r1, r1 - str r1, [sp] - add r1, sp, #4 - bl MOD05_021EC88C - mov r4, #0 - add r5, sp, #4 -_021EC8BC: - ldr r0, [r5] - bl GetBoxMonGender - cmp r0, #1 - bne _021EC8C8 - str r4, [sp] -_021EC8C8: - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #2 - blt _021EC8BC - mov r7, #0 - add r6, r7, #0 - add r4, sp, #4 - add r5, sp, #0xc -_021EC8D8: - ldr r0, [r4] - mov r1, #5 - mov r2, #0 - bl GetBoxMonData - str r0, [r5] - cmp r0, #0x84 - bne _021EC8EC - add r7, r7, #1 - str r6, [sp] -_021EC8EC: - add r6, r6, #1 - add r4, r4, #4 - add r5, r5, #4 - cmp r6, #2 - blt _021EC8D8 - cmp r7, #2 - bne _021EC90E - bl LCRandom - ldr r1, _021EC940 ; =0x00007FFF - cmp r0, r1 - blo _021EC90A - mov r0, #0 - str r0, [sp] - b _021EC90E -_021EC90A: - mov r0, #1 - str r0, [sp] -_021EC90E: - ldr r0, [sp] - mov r2, #0 - lsl r1, r0, #2 - add r0, sp, #4 - ldr r0, [r0, r1] - mov r1, #6 - bl GetBoxMonData - cmp r0, #0xe5 - bne _021EC938 - bl LCRandom - ldr r1, _021EC940 ; =0x00007FFF - cmp r0, r1 - blo _021EC932 - mov r0, #0 - mvn r0, r0 - str r0, [sp] -_021EC932: - ldr r0, [sp] - add sp, #0x14 - pop {r4, r5, r6, r7, pc} -_021EC938: - mov r0, #0 - mvn r0, r0 - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021EC940: .word 0x00007FFF - - thumb_func_start MOD05_021EC944 -MOD05_021EC944: ; 0x021EC944 - push {r3, r4, r5, r6, r7, lr} - str r0, [sp] - mov r5, #0 - bl MOD05_021EC8A8 - add r1, r0, #0 - bpl _021EC960 - bl MTRandom - add r1, r0, #0 - ldr r0, [sp] - bl Sav2_DayCare_SetEggPID - pop {r3, r4, r5, r6, r7, pc} -_021EC960: - ldr r0, [sp] - bl MOD05_021EC458 - add r1, r5, #0 - add r2, r1, #0 - bl GetBoxMonData - bl GetNatureFromPersonality - mov r7, #0x96 - add r6, r0, #0 - lsl r7, r7, #4 -_021EC978: - bl MTRandom - add r4, r0, #0 - bl GetNatureFromPersonality - cmp r6, r0 - bne _021EC98A - cmp r4, #0 - bne _021EC990 -_021EC98A: - add r5, r5, #1 - cmp r5, r7 - ble _021EC978 -_021EC990: - ldr r0, [sp] - add r1, r4, #0 - bl Sav2_DayCare_SetEggPID - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EC99C -MOD05_021EC99C: ; 0x021EC99C - push {r3, r4} - sub sp, #8 - mov r2, #0xff - strb r2, [r0, r1] - mov r2, #0 - add r3, sp, #0 -_021EC9A8: - ldrb r1, [r0, r2] - add r2, r2, #1 - strb r1, [r3] - add r3, r3, #1 - cmp r2, #6 - blt _021EC9A8 - mov r2, #0 - add r4, r2, #0 - add r3, sp, #0 -_021EC9BA: - ldrb r1, [r3] - cmp r1, #0xff - beq _021EC9C4 - strb r1, [r0, r2] - add r2, r2, #1 -_021EC9C4: - add r4, r4, #1 - add r3, r3, #1 - cmp r4, #6 - blt _021EC9BA - add sp, #8 - pop {r3, r4} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021EC9D4 -MOD05_021EC9D4: ; 0x021EC9D4 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r4, r0, #0 - str r1, [sp] - mov r0, #0 - add r1, sp, #8 -_021EC9E0: - strb r0, [r1, r0] - add r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #6 - blo _021EC9E0 - add r7, sp, #0xc - mov r5, #0 - add r6, sp, #8 - add r7, #2 -_021EC9F4: - bl LCRandom - mov r1, #6 - sub r1, r1, r5 - bl _s32_div_f - ldrb r0, [r6, r1] - add r1, r5, #0 - strb r0, [r7, r5] - add r0, r6, #0 - bl MOD05_021EC99C - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #3 - blo _021EC9F4 - add r6, sp, #4 - mov r5, #0 - add r6, #1 - mov r7, #0x1f -_021ECA1E: - bl LCRandom - lsr r1, r0, #0x1f - lsl r0, r0, #0x1f - sub r0, r0, r1 - ror r0, r7 - add r0, r1, r0 - strb r0, [r6, r5] - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #3 - blo _021ECA1E - mov r5, #0 - add r7, sp, #4 - add r6, sp, #4 -_021ECA3E: - add r1, sp, #4 - add r1, #1 - ldrb r1, [r1, r5] - ldr r0, [sp] - bl MOD05_021EC458 - add r1, sp, #0xc - add r1, #2 - ldrb r1, [r1, r5] - cmp r1, #5 - bhi _021ECAEE - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021ECA60: ; jump table - .short _021ECA6C - _021ECA60 - 2 ; case 0 - .short _021ECA82 - _021ECA60 - 2 ; case 1 - .short _021ECA98 - _021ECA60 - 2 ; case 2 - .short _021ECAAE - _021ECA60 - 2 ; case 3 - .short _021ECAC4 - _021ECA60 - 2 ; case 4 - .short _021ECADA - _021ECA60 - 2 ; case 5 -_021ECA6C: - mov r1, #0x46 - mov r2, #0 - bl GetBoxMonData - strb r0, [r6] - add r0, r4, #0 - mov r1, #0x46 - add r2, r7, #0 - bl SetMonData - b _021ECAEE -_021ECA82: - mov r1, #0x47 - mov r2, #0 - bl GetBoxMonData - strb r0, [r6] - add r0, r4, #0 - mov r1, #0x47 - add r2, r7, #0 - bl SetMonData - b _021ECAEE -_021ECA98: - mov r1, #0x48 - mov r2, #0 - bl GetBoxMonData - strb r0, [r6] - add r0, r4, #0 - mov r1, #0x48 - add r2, r7, #0 - bl SetMonData - b _021ECAEE -_021ECAAE: - mov r1, #0x49 - mov r2, #0 - bl GetBoxMonData - strb r0, [r6] - add r0, r4, #0 - mov r1, #0x49 - add r2, r7, #0 - bl SetMonData - b _021ECAEE -_021ECAC4: - mov r1, #0x4a - mov r2, #0 - bl GetBoxMonData - strb r0, [r6] - add r0, r4, #0 - mov r1, #0x4a - add r2, r7, #0 - bl SetMonData - b _021ECAEE -_021ECADA: - mov r1, #0x4b - mov r2, #0 - bl GetBoxMonData - strb r0, [r6] - add r0, r4, #0 - mov r1, #0x4b - add r2, r7, #0 - bl SetMonData -_021ECAEE: - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #3 - blo _021ECA3E - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021ECAFC -MOD05_021ECAFC: ; 0x021ECAFC - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - add r5, r1, #0 - mov r1, #5 - add r2, r4, #0 - add r6, r4, #0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - ldr r0, _021ECB60 ; =0x00004E20 - ldr r3, _021ECB64 ; =0x00000775 - add r2, r2, r0 - ldr r0, _021ECB68 ; =UNK05_021F7B48 - add r1, r4, #0 -_021ECB1A: - lsl r7, r1, #1 - ldrh r7, [r0, r7] - cmp r2, r7 - bne _021ECB2A - add r0, r1, #1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - b _021ECB34 -_021ECB2A: - add r1, r1, #1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - cmp r1, r3 - blo _021ECB1A -_021ECB34: - ldr r2, _021ECB68 ; =UNK05_021F7B48 - lsl r0, r6, #1 - ldr r3, _021ECB60 ; =0x00004E20 - mov r1, #0 - add r0, r2, r0 -_021ECB3E: - lsl r6, r1, #1 - ldrh r2, [r0, r6] - cmp r2, r3 - bhi _021ECB58 - add r1, r1, #1 - strh r2, [r5, r6] - add r2, r4, #1 - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - lsr r1, r1, #0x10 - lsr r4, r2, #0x10 - cmp r1, #0x10 - blo _021ECB3E -_021ECB58: - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, r6, r7, pc} - nop -_021ECB60: .word 0x00004E20 -_021ECB64: .word 0x00000775 -_021ECB68: .word UNK05_021F7B48 - - thumb_func_start MOD05_021ECB6C -MOD05_021ECB6C: ; 0x021ECB6C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x28 - add r7, r0, #0 - str r1, [sp] - mov r0, #4 - mov r1, #0xb4 - str r2, [sp, #4] - bl AllocFromHeap - add r4, r0, #0 - mov r0, #0 - add r1, r4, #0 - mov r2, #0xb4 - str r0, [sp, #0x1c] - bl MIi_CpuClearFast - add r0, r7, #0 - mov r1, #5 - mov r2, #0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x18] - add r0, r7, #0 - mov r1, #0x70 - mov r2, #0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0xc] - add r2, r4, #0 - ldr r0, [sp, #0x18] - ldr r1, [sp, #0xc] - add r2, #0x30 - bl Species_LoadLearnsetTable - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x14] - mov r5, #0 -_021ECBC0: - lsl r0, r5, #2 - add r6, r5, #0 - str r0, [sp, #0x20] - add r0, r4, r0 - add r6, #0x36 - str r0, [sp, #0x10] - ldr r0, [sp] - add r1, r6, #0 - mov r2, #0 - bl GetBoxMonData - ldr r1, [sp, #0x20] - mov r2, #0 - str r0, [r4, r1] - ldr r0, [sp, #4] - add r1, r6, #0 - bl GetBoxMonData - ldr r1, [sp, #0x10] - str r0, [r1, #0x20] - add r0, r5, #1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - cmp r5, #4 - blo _021ECBC0 - add r1, r4, #0 - add r0, r7, #0 - add r1, #0x94 - bl MOD05_021ECAFC - add r5, r0, #0 - mov r6, #0 -_021ECC00: - lsl r0, r6, #2 - ldr r1, [r4, r0] - str r0, [sp, #0x24] - cmp r1, #0 - beq _021ECC50 - mov r0, #0 - cmp r5, #0 - bls _021ECC46 -_021ECC10: - lsl r2, r0, #1 - add r2, r4, r2 - add r2, #0x94 - ldrh r2, [r2] - cmp r1, r2 - bne _021ECC3C - lsl r1, r1, #0x10 - add r0, r7, #0 - lsr r1, r1, #0x10 - bl FUN_02069698 - ldr r1, _021ECD60 ; =0x0000FFFF - cmp r0, r1 - bne _021ECC46 - ldr r1, [sp, #0x24] - add r0, r7, #0 - ldr r1, [r4, r1] - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_02069708 - b _021ECC46 -_021ECC3C: - add r0, r0, #1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, r5 - blo _021ECC10 -_021ECC46: - add r0, r6, #1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - cmp r6, #4 - blo _021ECC00 -_021ECC50: - mov r0, #0 - str r0, [sp, #8] -_021ECC54: - ldr r0, [sp, #8] - lsl r6, r0, #2 - ldr r0, [r4, r6] - cmp r0, #0 - beq _021ECCAC - mov r5, #0 -_021ECC60: - mov r0, #0x52 - lsl r0, r0, #2 - add r0, r5, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl TMHMGetMove - ldr r1, [r4, r6] - cmp r1, r0 - bne _021ECCA2 - lsl r2, r5, #0x18 - ldr r0, [sp, #0x18] - ldr r1, [sp, #0xc] - lsr r2, r2, #0x18 - bl FUN_0206A16C - cmp r0, #0 - beq _021ECCA2 - ldr r1, [r4, r6] - add r0, r7, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_02069698 - ldr r1, _021ECD60 ; =0x0000FFFF - cmp r0, r1 - bne _021ECCA2 - ldr r1, [r4, r6] - add r0, r7, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_02069708 -_021ECCA2: - add r0, r5, #1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - cmp r5, #0x64 - blo _021ECC60 -_021ECCAC: - ldr r0, [sp, #8] - add r0, r0, #1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #8] - cmp r0, #4 - blo _021ECC54 - mov r6, #0 -_021ECCBC: - lsl r1, r6, #2 - ldr r0, [r4, r1] - cmp r0, #0 - beq _021ECCFC - mov r3, #0 -_021ECCC6: - lsl r2, r3, #2 - add r2, r4, r2 - ldr r0, [r4, r1] - ldr r2, [r2, #0x20] - cmp r0, r2 - bne _021ECCE8 - cmp r0, #0 - beq _021ECCE8 - ldr r2, [sp, #0x1c] - add r5, r2, #0 - add r5, r5, #1 - lsl r5, r5, #0x10 - lsr r5, r5, #0x10 - lsl r2, r2, #2 - str r5, [sp, #0x1c] - add r2, r4, r2 - str r0, [r2, #0x10] -_021ECCE8: - add r0, r3, #1 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - cmp r3, #4 - blo _021ECCC6 - add r0, r6, #1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - cmp r6, #4 - blo _021ECCBC -_021ECCFC: - mov r6, #0 -_021ECCFE: - lsl r0, r6, #2 - add r5, r4, r0 - ldr r3, [r5, #0x10] - cmp r3, #0 - beq _021ECD54 - ldr r0, [sp, #0x14] - mov r2, #0 - cmp r0, #0 - bls _021ECD4A -_021ECD10: - lsl r0, r2, #1 - add r0, r4, r0 - ldrh r1, [r0, #0x30] - cmp r1, #0 - beq _021ECD3E - ldr r0, [r5, #0x10] - cmp r0, r1 - bne _021ECD3E - lsl r1, r3, #0x10 - add r0, r7, #0 - lsr r1, r1, #0x10 - bl FUN_02069698 - ldr r1, _021ECD60 ; =0x0000FFFF - cmp r0, r1 - bne _021ECD4A - ldr r1, [r5, #0x10] - add r0, r7, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_02069708 - b _021ECD4A -_021ECD3E: - add r0, r2, #1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - ldr r0, [sp, #0x14] - cmp r2, r0 - blo _021ECD10 -_021ECD4A: - add r0, r6, #1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - cmp r6, #4 - blo _021ECCFE -_021ECD54: - add r0, r4, #0 - bl FreeToHeap - add sp, #0x28 - pop {r3, r4, r5, r6, r7, pc} - nop -_021ECD60: .word 0x0000FFFF - - thumb_func_start MOD05_021ECD64 -MOD05_021ECD64: ; 0x021ECD64 - push {r4, lr} - add r4, r0, #0 - mov r1, #0 - bl Sav2_DayCare_SetEggPID - add r0, r4, #0 - mov r1, #0 - bl Sav2_DayCare_SetEggCycleCounter - pop {r4, pc} - - thumb_func_start MOD05_021ECD78 -MOD05_021ECD78: ; 0x021ECD78 - push {r4, r5, r6, lr} - sub sp, #8 - add r5, r0, #0 - add r0, r1, #0 - add r1, sp, #0 - bl MOD05_021EC88C - ldr r2, _021ECDE8 ; =UNK05_021F7B12 - mov r3, #0 - mov r1, #6 -_021ECD8C: - add r0, r3, #0 - mul r0, r1 - ldrh r0, [r2, r0] - cmp r5, r0 - bne _021ECD9A - add r6, r3, #0 - b _021ECDA4 -_021ECD9A: - add r0, r3, #1 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - cmp r3, #9 - blo _021ECD8C -_021ECDA4: - cmp r3, #9 - bne _021ECDAE - add sp, #8 - add r0, r5, #0 - pop {r4, r5, r6, pc} -_021ECDAE: - ldr r0, [sp] - mov r1, #6 - mov r2, #0 - bl GetBoxMonData - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - ldr r0, [sp, #4] - mov r1, #6 - mov r2, #0 - bl GetBoxMonData - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r0, #6 - add r1, r6, #0 - mul r1, r0 - ldr r0, _021ECDEC ; =UNK05_021F7B14 - ldrh r0, [r0, r1] - cmp r4, r0 - beq _021ECDE0 - cmp r2, r0 - beq _021ECDE0 - ldr r0, _021ECDF0 ; =UNK05_021F7B16 - ldrh r5, [r0, r1] -_021ECDE0: - add r0, r5, #0 - add sp, #8 - pop {r4, r5, r6, pc} - nop -_021ECDE8: .word UNK05_021F7B12 -_021ECDEC: .word UNK05_021F7B14 -_021ECDF0: .word UNK05_021F7B16 - - thumb_func_start MOD05_021ECDF4 -MOD05_021ECDF4: ; 0x021ECDF4 - push {r3, r4, r5, lr} - sub sp, #8 - add r4, r0, #0 - add r0, r1, #0 - add r1, sp, #0 - bl MOD05_021EC88C - ldr r0, [sp] - mov r1, #6 - mov r2, #0 - bl GetBoxMonData - add r5, r0, #0 - ldr r0, [sp, #4] - mov r1, #6 - mov r2, #0 - bl GetBoxMonData - cmp r5, #0xec - beq _021ECE20 - cmp r0, #0xec - bne _021ECE3A -_021ECE20: - mov r1, #0x56 - add r0, r4, #0 - lsl r1, r1, #2 - bl FUN_02069698 - ldr r1, _021ECE40 ; =0x0000FFFF - cmp r0, r1 - bne _021ECE3A - mov r1, #0x56 - add r0, r4, #0 - lsl r1, r1, #2 - bl FUN_02069708 -_021ECE3A: - add sp, #8 - pop {r3, r4, r5, pc} - nop -_021ECE40: .word 0x0000FFFF - - thumb_func_start MOD05_021ECE44 -MOD05_021ECE44: ; 0x021ECE44 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - add r5, r1, #0 - add r1, sp, #4 - str r0, [sp] - bl MOD05_021EC88C - mov r4, #0 - add r7, sp, #4 -_021ECE56: - lsl r6, r4, #2 - ldr r0, [r7, r6] - mov r1, #5 - mov r2, #0 - bl GetBoxMonData - lsl r1, r4, #1 - add r2, sp, #0xc - strh r0, [r2, r1] - add r0, r2, #0 - ldrh r0, [r0, r1] - cmp r0, #0x84 - bne _021ECE7A - mov r0, #1 - eor r0, r4 - strb r0, [r5] - strb r4, [r5, #1] - b _021ECE8C -_021ECE7A: - ldr r0, [r7, r6] - bl GetBoxMonGender - cmp r0, #1 - bne _021ECE8C - mov r0, #1 - strb r4, [r5] - eor r0, r4 - strb r0, [r5, #1] -_021ECE8C: - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #2 - blo _021ECE56 - ldrb r0, [r5] - lsl r1, r0, #1 - add r0, sp, #0xc - ldrh r0, [r0, r1] - bl ReadFromPersonalPmsNarc - add r4, r0, #0 - cmp r4, #0x1d - bne _021ECEBC - ldr r0, [sp] - bl Sav2_DayCare_GetEggPID - mov r1, #2 - lsl r1, r1, #0xe - tst r0, r1 - beq _021ECEBA - mov r4, #0x20 - b _021ECEBC -_021ECEBA: - mov r4, #0x1d -_021ECEBC: - ldr r0, _021ECF08 ; =0x0000013A - cmp r4, r0 - bne _021ECED6 - ldr r0, [sp] - bl Sav2_DayCare_GetEggPID - mov r1, #2 - lsl r1, r1, #0xe - tst r0, r1 - beq _021ECED4 - ldr r4, _021ECF0C ; =0x00000139 - b _021ECED6 -_021ECED4: - ldr r4, _021ECF08 ; =0x0000013A -_021ECED6: - ldr r0, _021ECF10 ; =0x000001EA - cmp r4, r0 - bne _021ECEDE - sub r4, r0, #1 -_021ECEDE: - ldrb r0, [r5, #1] - lsl r1, r0, #1 - add r0, sp, #0xc - ldrh r0, [r0, r1] - cmp r0, #0x84 - bne _021ECF02 - ldrb r0, [r5] - lsl r1, r0, #2 - add r0, sp, #4 - ldr r0, [r0, r1] - bl GetBoxMonGender - cmp r0, #1 - beq _021ECF02 - ldrb r1, [r5, #1] - ldrb r0, [r5] - strb r0, [r5, #1] - strb r1, [r5] -_021ECF02: - add r0, r4, #0 - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021ECF08: .word 0x0000013A -_021ECF0C: .word 0x00000139 -_021ECF10: .word 0x000001EA - - thumb_func_start MOD05_SetEggStats -MOD05_SetEggStats: ; 0x021ECF14 - push {r0, r1, r2, r3} - push {r4, r5, r6, lr} - sub sp, #0x20 - add r6, r1, #0 - add r5, r0, #0 - add r0, r6, #0 - mov r1, #0x13 ; BASE_EGG_CYCLES - add r4, r3, #0 - bl GetMonBaseStat - add r1, sp, #0x10 - strb r0, [r1] - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - str r0, [sp, #0xc] - add r0, r5, #0 - add r1, r6, #0 - mov r2, #1 - mov r3, #0x20 - bl CreateMon - mov r1, #0 - add r0, sp, #0x10 - strb r1, [r0, #2] - mov r1, #4 - strh r1, [r0, #4] - add r0, r5, #0 - mov r1, #0x9a - add r2, sp, #0x14 - bl SetMonData - add r0, r5, #0 - mov r1, #9 - add r2, sp, #0x10 - bl SetMonData - add r2, sp, #0x10 - add r0, r5, #0 - mov r1, #0x9b - add r2, #2 - bl SetMonData - add r0, sp, #0x30 - ldrb r0, [r0, #8] - cmp r0, #0 - beq _021ECF7E - add r0, r5, #0 - mov r1, #0x97 - add r2, sp, #0x38 - bl SetMonData -_021ECF7E: - add r2, sp, #0x10 - mov r1, #1 - add r0, sp, #0x10 - strb r1, [r0, #1] - add r0, r5, #0 - mov r1, #0x4c - add r2, #1 - bl SetMonData - ldr r0, _021ED008 ; =0x000001EE - mov r1, #4 - bl GetSpeciesName - add r6, r0, #0 - add r0, r5, #0 - mov r1, #0x76 - add r2, r6, #0 - bl SetMonData - add r0, r6, #0 - bl String_dtor - ldr r0, [sp, #0x40] - cmp r0, #4 - bne _021ECFEE - add r0, r4, #0 - bl PlayerProfile_GetTrainerID - str r0, [sp, #0x1c] - add r0, r4, #0 - bl PlayerProfile_GetTrainerGender - str r0, [sp, #0x18] - add r0, r4, #0 - mov r1, #0x20 - bl PlayerProfile_GetPlayerName_NewString - add r6, r0, #0 - add r0, r5, #0 - mov r1, #0x90 - add r2, r6, #0 - bl SetMonData - add r0, r5, #0 - mov r1, #7 - add r2, sp, #0x1c - bl SetMonData - add r0, r5, #0 - mov r1, #0x9c - add r2, sp, #0x18 - bl SetMonData - add r0, r6, #0 - bl String_dtor -_021ECFEE: - mov r0, #0 - str r0, [sp] - ldr r2, [sp, #0x40] - ldr r3, [sp, #0x44] - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0208089C - add sp, #0x20 - pop {r4, r5, r6} - pop {r3} - add sp, #0x10 - bx r3 - .balign 4, 0 -_021ED008: .word 0x000001EE - - thumb_func_start MOD05_DayCare_CreateEgg -MOD05_DayCare_CreateEgg: ; 0x021ED00C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - str r1, [sp, #0x10] - add r7, r0, #0 - ldr r0, [sp, #0x10] - mov r1, #0x13 ; BASE_EGG_CYCLES - add r5, r2, #0 - add r6, r3, #0 - bl GetMonBaseStat - add r1, sp, #0x14 - strb r0, [r1] - add r0, r5, #0 - bl Sav2_DayCare_GetEggPID - add r4, r0, #0 - add r0, r5, #0 - bl Sav2_DayCare_MasudaCheck - cmp r0, #0 - beq _021ED05E - add r0, r6, #0 - add r1, r4, #0 - bl CalcShininessByOtIdAndPersonality - cmp r0, #0 - bne _021ED05E - mov r5, #0 -_021ED044: - add r0, r4, #0 - bl PRandom - add r4, r0, #0 - add r0, r6, #0 - add r1, r4, #0 - bl CalcShininessByOtIdAndPersonality - cmp r0, #0 - bne _021ED05E - add r5, r5, #1 - cmp r5, #4 - blt _021ED044 -_021ED05E: - mov r2, #1 - str r2, [sp] - str r4, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - str r0, [sp, #0xc] - ldr r1, [sp, #0x10] - add r0, r7, #0 - mov r3, #0x20 - bl CreateMon - add r2, sp, #0x14 - mov r1, #0 - add r0, sp, #0x14 - strb r1, [r0, #1] - mov r1, #4 - strh r1, [r0, #2] - add r0, r7, #0 - mov r1, #0x9a - add r2, #2 - bl SetMonData - add r0, r7, #0 - mov r1, #9 - add r2, sp, #0x14 - bl SetMonData - add r2, sp, #0x14 - add r0, r7, #0 - mov r1, #0x9b - add r2, #1 - bl SetMonData - add r0, r7, #0 - mov r1, #0x70 - add r2, sp, #0x30 - bl SetMonData - ldr r0, _021ED0C8 ; =0x000001EE - mov r1, #4 - bl GetSpeciesName - add r4, r0, #0 - add r0, r7, #0 - mov r1, #0x76 - add r2, r4, #0 - bl SetMonData - add r0, r4, #0 - bl String_dtor - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021ED0C8: .word 0x000001EE - - thumb_func_start MOD05_DayCare_GiveEggToPlayer -MOD05_DayCare_GiveEggToPlayer: ; 0x021ED0CC - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r5, r0, #0 - mov r0, #4 - str r1, [sp, #4] - add r7, r2, #0 - bl AllocMonZeroed - add r1, sp, #0x10 - add r4, r0, #0 - add r0, r5, #0 - add r1, #1 - bl MOD05_021ECE44 - add r1, r5, #0 - bl MOD05_021ECD78 - add r6, r0, #0 - add r0, r7, #0 - bl PlayerProfile_GetTrainerID - add r1, sp, #0x10 - str r0, [sp, #8] - ldrb r1, [r1, #1] - add r0, r5, #0 - bl MOD05_021EC458 - mov r1, #0x70 - mov r2, #0 - bl GetBoxMonData - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - ldr r3, [sp, #8] - add r0, r4, #0 - add r1, r6, #0 - add r2, r5, #0 - bl MOD05_DayCare_CreateEgg - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021EC9D4 - add r1, sp, #0x10 - ldrb r1, [r1, #2] - add r0, r5, #0 - bl MOD05_021EC458 - add r1, sp, #0x10 - str r0, [sp, #0xc] - ldrb r1, [r1, #1] - add r0, r5, #0 - bl MOD05_021EC458 - add r2, r0, #0 - ldr r1, [sp, #0xc] - add r0, r4, #0 - bl MOD05_021ECB6C - mov r0, #1 - mov r1, #0 - bl FUN_02015CF8 - add r3, r0, #0 - mov r0, #4 - str r0, [sp] - add r0, r4, #0 - add r1, r7, #0 - mov r2, #3 - bl FUN_0208089C - cmp r6, #0xac - bne _021ED168 - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021ECDF4 -_021ED168: - mov r1, #1 - add r0, sp, #0x10 - strb r1, [r0] - add r0, r4, #0 - mov r1, #0x4c - add r2, sp, #0x10 - bl SetMonData - ldr r0, [sp, #4] - add r1, r4, #0 - bl AddMonToParty - add r0, r5, #0 - bl MOD05_021ECD64 - add r0, r4, #0 - bl FreeToHeap - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021ED190 -MOD05_021ED190: ; 0x021ED190 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - bl GetPartyCount - add r6, r0, #0 - mov r4, #0 - cmp r6, #0 - ble _021ED1E0 - mov r7, #0xac -_021ED1A2: - add r0, r5, #0 - add r1, r4, #0 - bl GetPartyMonByIndex - add r1, r7, #0 - mov r2, #0 - bl GetMonData - cmp r0, #0 - bne _021ED1D6 - add r0, r5, #0 - add r1, r4, #0 - bl GetPartyMonByIndex - mov r1, #0xa - mov r2, #0 - bl GetMonData - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x28 - beq _021ED1D2 - cmp r0, #0x31 - bne _021ED1D6 -_021ED1D2: - mov r0, #2 - pop {r3, r4, r5, r6, r7, pc} -_021ED1D6: - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, r6 - blt _021ED1A2 -_021ED1E0: - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021ED1E4 -MOD05_021ED1E4: ; 0x021ED1E4 - push {r4, r5, r6, r7} - mov r4, #0 - add r3, r4, #0 -_021ED1EA: - ldrh r7, [r0] - add r5, r3, #0 - add r6, r1, #0 -_021ED1F0: - ldrh r2, [r6] - cmp r7, r2 - bne _021ED1FC - mov r0, #1 - pop {r4, r5, r6, r7} - bx lr -_021ED1FC: - add r5, r5, #1 - add r6, r6, #2 - cmp r5, #2 - blt _021ED1F0 - add r4, r4, #1 - add r0, r0, #2 - cmp r4, #2 - blt _021ED1EA - mov r0, #0 - pop {r4, r5, r6, r7} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021ED214 -MOD05_021ED214: ; 0x021ED214 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - add r5, r0, #0 - mov r0, #0 - str r0, [sp, #4] - add r0, sp, #0x10 - add r4, sp, #0x18 - str r0, [sp] - add r7, sp, #8 - add r6, sp, #0x1c -_021ED228: - ldr r0, [r5] - mov r1, #5 - mov r2, #0 - bl GetBoxMonData - strh r0, [r4] - ldr r0, [r5] - mov r1, #7 - mov r2, #0 - bl GetBoxMonData - ldr r1, [sp] - str r0, [r1] - mov r1, #0 - ldr r0, [r5] - add r2, r1, #0 - bl GetBoxMonData - add r1, r0, #0 - ldrh r0, [r4] - bl GetGenderBySpeciesAndPersonality - stmia r7!, {r0} - ldrh r0, [r4] - mov r1, #0x16 ; BASE_EGG_GROUP_1 - bl GetMonBaseStat - strh r0, [r6] - ldrh r0, [r4] - mov r1, #0x17 ; GASE_EGG_GROUP_2 - bl GetMonBaseStat - strh r0, [r6, #2] - ldr r0, [sp] - add r5, r5, #4 - add r0, r0, #4 - str r0, [sp] - ldr r0, [sp, #4] - add r4, r4, #2 - add r0, r0, #1 - add r6, r6, #4 - str r0, [sp, #4] - cmp r0, #2 - blo _021ED228 - add r0, sp, #8 - ldrh r1, [r0, #0x14] - cmp r1, #0xf - beq _021ED28E - ldrh r0, [r0, #0x18] - cmp r0, #0xf - bne _021ED294 -_021ED28E: - add sp, #0x24 - mov r0, #0 - pop {r4, r5, r6, r7, pc} -_021ED294: - cmp r1, #0xd - bne _021ED2A2 - cmp r0, #0xd - bne _021ED2A2 - add sp, #0x24 - mov r0, #0 - pop {r4, r5, r6, r7, pc} -_021ED2A2: - cmp r1, #0xd - beq _021ED2AA - cmp r0, #0xd - bne _021ED2BE -_021ED2AA: - ldr r1, [sp, #0x10] - ldr r0, [sp, #0x14] - cmp r1, r0 - bne _021ED2B8 - add sp, #0x24 - mov r0, #0x14 - pop {r4, r5, r6, r7, pc} -_021ED2B8: - add sp, #0x24 - mov r0, #0x32 - pop {r4, r5, r6, r7, pc} -_021ED2BE: - ldr r1, [sp, #0xc] - ldr r0, [sp, #8] - cmp r0, r1 - bne _021ED2CC - add sp, #0x24 - mov r0, #0 - pop {r4, r5, r6, r7, pc} -_021ED2CC: - cmp r0, #2 - beq _021ED2D4 - cmp r1, #2 - bne _021ED2DA -_021ED2D4: - add sp, #0x24 - mov r0, #0 - pop {r4, r5, r6, r7, pc} -_021ED2DA: - add r0, sp, #0x1c - add r1, sp, #0x20 - bl MOD05_021ED1E4 - cmp r0, #0 - bne _021ED2EC - add sp, #0x24 - mov r0, #0 - pop {r4, r5, r6, r7, pc} -_021ED2EC: - add r0, sp, #8 - ldrh r1, [r0, #0x10] - ldrh r0, [r0, #0x12] - cmp r1, r0 - bne _021ED30A - ldr r1, [sp, #0x10] - ldr r0, [sp, #0x14] - cmp r1, r0 - beq _021ED304 - add sp, #0x24 - mov r0, #0x46 - pop {r4, r5, r6, r7, pc} -_021ED304: - add sp, #0x24 - mov r0, #0x32 - pop {r4, r5, r6, r7, pc} -_021ED30A: - ldr r1, [sp, #0x10] - ldr r0, [sp, #0x14] - cmp r1, r0 - beq _021ED318 - add sp, #0x24 - mov r0, #0x32 - pop {r4, r5, r6, r7, pc} -_021ED318: - mov r0, #0x14 - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021ED320 -MOD05_021ED320: ; 0x021ED320 - push {r3, lr} - sub sp, #8 - add r1, sp, #0 - bl MOD05_021EC88C - add r0, sp, #0 - bl MOD05_021ED214 - add sp, #8 - pop {r3, pc} - - thumb_func_start MOD05_021ED334 -MOD05_021ED334: ; 0x021ED334 - push {r3, r4, r5, lr} - add r4, r0, #0 - bl Script_GetDay - add r5, r0, #0 - add r0, r4, #0 - bl Script_GetMonth - mov r1, #0x64 - mul r1, r0 - add r0, r4, #0 - add r5, r5, r1 - bl FUN_0204B33C - cmp r0, #0 - beq _021ED358 - mov r0, #0xff - pop {r3, r4, r5, pc} -_021ED358: - ldr r2, _021ED374 ; =UNK05_021F7AF8 - mov r1, #0 -_021ED35C: - ldrh r0, [r2] - cmp r5, r0 - bne _021ED366 - mov r0, #0xe6 - pop {r3, r4, r5, pc} -_021ED366: - add r1, r1, #1 - add r2, r2, #2 - cmp r1, #0xd - blo _021ED35C - mov r0, #0xff - pop {r3, r4, r5, pc} - nop -_021ED374: .word UNK05_021F7AF8 - - thumb_func_start MOD05_021ED378 -MOD05_021ED378: ; 0x021ED378 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r7, r1, #0 - add r1, sp, #8 - str r0, [sp] - str r2, [sp, #4] - bl MOD05_021EC88C - mov r6, #0 - add r4, r6, #0 - add r5, sp, #8 -_021ED38E: - ldr r0, [r5] - mov r1, #0xab - mov r2, #0 - bl GetBoxMonData - cmp r0, #0 - beq _021ED3AC - ldr r0, [sp] - add r1, r4, #0 - bl Sav2_DayCare_GetMonX - mov r1, #1 - bl DayCareMon_AddSteps - add r6, r6, #1 -_021ED3AC: - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #2 - blo _021ED38E - ldr r0, [sp] - bl Sav2_DayCare_GetEggPID - cmp r0, #0 - bne _021ED3F8 - cmp r6, #2 - bne _021ED3F8 - ldr r0, [sp] - mov r1, #1 - bl Sav2_DayCare_GetMonX - bl DayCareMon_GetSteps - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0xff - bne _021ED3F8 - ldr r0, [sp] - bl MOD05_021ED320 - add r4, r0, #0 - bl LCRandom - mov r1, #0x64 - mul r1, r0 - add r0, r1, #0 - ldr r1, _021ED498 ; =0x0000FFFF - bl _u32_div_f - cmp r4, r0 - bls _021ED3F8 - ldr r0, [sp] - bl MOD05_021EC944 -_021ED3F8: - ldr r0, [sp] - bl Sav2_DayCare_GetEggCycleCounter - add r4, r0, #0 - ldr r0, [sp] - add r1, r4, #1 - bl Sav2_DayCare_SetEggCycleCounter - ldr r0, [sp, #4] - bl MOD05_021ED334 - add r1, r4, #1 - cmp r1, r0 - bne _021ED490 - ldr r0, [sp] - mov r1, #0 - bl Sav2_DayCare_SetEggCycleCounter - add r0, r7, #0 - bl MOD05_021ED190 - add r6, r0, #0 - add r0, r7, #0 - mov r5, #0 - bl GetPartyCount - cmp r0, #0 - bls _021ED490 -_021ED430: - add r0, r7, #0 - add r1, r5, #0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0 - add r4, r0, #0 - bl GetMonData - cmp r0, #0 - beq _021ED484 - add r0, r4, #0 - mov r1, #3 - mov r2, #0 - bl GetMonData - cmp r0, #0 - bne _021ED484 - add r0, r4, #0 - mov r1, #9 - mov r2, #0 - bl GetMonData - str r0, [sp, #0x10] - cmp r0, #0 - beq _021ED47E - cmp r0, r6 - blo _021ED46E - sub r0, r0, r6 - str r0, [sp, #0x10] - b _021ED472 -_021ED46E: - sub r0, r0, #1 - str r0, [sp, #0x10] -_021ED472: - add r0, r4, #0 - mov r1, #9 - add r2, sp, #0x10 - bl SetMonData - b _021ED484 -_021ED47E: - add sp, #0x14 - mov r0, #1 - pop {r4, r5, r6, r7, pc} -_021ED484: - add r0, r7, #0 - add r5, r5, #1 - bl GetPartyCount - cmp r5, r0 - blo _021ED430 -_021ED490: - mov r0, #0 - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - nop -_021ED498: .word 0x0000FFFF - - thumb_func_start MOD05_021ED49C -MOD05_021ED49C: ; 0x021ED49C - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - bl GetPartyCount - add r6, r0, #0 - mov r5, #0 - cmp r6, #0 - ble _021ED4DA -_021ED4AC: - add r0, r7, #0 - add r1, r5, #0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0 - add r4, r0, #0 - bl GetMonData - cmp r0, #0 - beq _021ED4D4 - add r0, r4, #0 - mov r1, #9 - mov r2, #0 - bl GetMonData - cmp r0, #0 - bne _021ED4D4 - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} -_021ED4D4: - add r5, r5, #1 - cmp r5, r6 - blt _021ED4AC -_021ED4DA: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021ED4E0 -MOD05_021ED4E0: ; 0x021ED4E0 - push {r4, lr} - sub sp, #8 - add r4, r1, #0 - add r1, sp, #0 - bl MOD05_021EC88C - ldr r0, [sp] - mov r1, #5 - mov r2, #0 - bl GetBoxMonData - cmp r0, #0 - beq _021ED50E - ldr r2, [sp] - add r0, r4, #0 - mov r1, #0 - bl BufferBoxMonNickname - ldr r2, [sp] - add r0, r4, #0 - mov r1, #2 - bl BufferBoxMonOTName -_021ED50E: - ldr r0, [sp, #4] - mov r1, #5 - mov r2, #0 - bl GetBoxMonData - cmp r0, #0 - beq _021ED526 - ldr r2, [sp, #4] - add r0, r4, #0 - mov r1, #1 - bl BufferBoxMonNickname -_021ED526: - add sp, #8 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021ED52C -MOD05_021ED52C: ; 0x021ED52C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - add r4, r1, #0 - add r1, sp, #0x18 - ldrb r6, [r1, #0x10] - add r5, r0, #0 - add r7, r2, #0 - add r1, r6, #0 - str r3, [sp, #8] - bl Sav2_DayCare_GetMonX - str r0, [sp, #0xc] - add r0, r5, #0 - add r1, r6, #0 - bl MOD05_021EC458 - add r5, r0, #0 - ldr r0, [sp, #0x2c] - add r1, r4, #0 - add r2, r5, #0 - bl BufferBoxMonNickname - ldr r0, [sp, #0xc] - bl DayCareMon_GetSteps - add r1, r0, #0 - add r0, r5, #0 - bl MOD05_021EC744 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r0, [sp, #0x2c] - add r1, r7, #0 - mov r3, #3 - bl BufferIntegerAsString - add r0, r5, #0 - mov r1, #0x6f - mov r2, #0 - bl GetBoxMonData - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #2 - beq _021ED5B4 - add r0, r5, #0 - mov r1, #5 - mov r2, #0 - bl GetBoxMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #0x1d - beq _021ED5A4 - cmp r0, #0x20 - bne _021ED5B4 -_021ED5A4: - add r0, r5, #0 - mov r1, #0x4d - mov r2, #0 - bl GetBoxMonData - cmp r0, #0 - bne _021ED5B4 - mov r4, #2 -_021ED5B4: - ldr r0, [sp, #0x2c] - ldr r1, [sp, #8] - add r2, r4, #0 - bl BufferGenderSymbol - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021ED5C4 -MOD05_021ED5C4: ; 0x021ED5C4 - push {r3, r4, r5, lr} - add r5, r2, #0 - bl GetPartyMonByIndex - add r4, r0, #0 - bl FUN_020690E4 - add r2, r0, #0 - add r0, r5, #0 - mov r1, #0 - bl BufferBoxMonNickname - add r0, r4, #0 - mov r1, #5 - mov r2, #0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021ED5EC -MOD05_021ED5EC: ; 0x021ED5EC - push {r4, lr} - add r4, r0, #0 - bl Sav2_DayCare_GetEggPID - cmp r0, #0 - beq _021ED5FC - mov r0, #1 - pop {r4, pc} -_021ED5FC: - add r0, r4, #0 - bl MOD05_021EC464 - cmp r0, #0 - beq _021ED60E - add r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r4, pc} -_021ED60E: - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021ED614 -MOD05_021ED614: ; 0x021ED614 - cmp r0, #0x14 - bhi _021ED620 - bhs _021ED632 - cmp r0, #0 - beq _021ED62E - b _021ED63E -_021ED620: - cmp r0, #0x32 - bhi _021ED628 - beq _021ED636 - b _021ED63E -_021ED628: - cmp r0, #0x46 - beq _021ED63A - b _021ED63E -_021ED62E: - mov r0, #3 - bx lr -_021ED632: - mov r0, #2 - bx lr -_021ED636: - mov r0, #1 - bx lr -_021ED63A: - mov r0, #0 - bx lr -_021ED63E: - mov r0, #0 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021ED644 -MOD05_021ED644: ; 0x021ED644 - push {r3, lr} - bl MOD05_021ED320 - bl MOD05_021ED614 - pop {r3, pc} - - thumb_func_start MOD05_021ED650 -MOD05_021ED650: ; 0x021ED650 - push {r4, r5, r6, r7, lr} - sub sp, #0x3c - add r4, r0, #0 - add r5, r1, #0 - mov r0, #8 - bl String_ctor - str r0, [sp, #0x10] - add r0, r5, #0 - bl AllocMonZeroed - add r6, r0, #0 - add r0, r4, #0 - mov r1, #5 - mov r2, #0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x14] - mov r5, #0 - add r7, sp, #0x34 -_021ED67C: - add r1, r5, #0 - add r0, r4, #0 - add r1, #0x36 - mov r2, #0 - bl GetMonData - lsl r1, r5, #1 - strh r0, [r7, r1] - add r1, r5, #0 - add r0, r4, #0 - add r1, #0x3a - mov r2, #0 - bl GetMonData - add r1, sp, #0x30 - strb r0, [r1, r5] - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #4 - blo _021ED67C - mov r1, #0 - add r0, r4, #0 - add r2, r1, #0 - bl GetMonData - add r7, r0, #0 - mov r5, #0 -_021ED6B4: - add r1, r5, #0 - add r0, r4, #0 - add r1, #0x46 - mov r2, #0 - bl GetMonData - add r1, sp, #0x24 - add r1, #2 - strb r0, [r1, r5] - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #6 - blo _021ED6B4 - add r0, r4, #0 - mov r1, #0xc - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #9] - add r0, r4, #0 - mov r1, #0x79 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #8] - add r0, r4, #0 - mov r1, #0xb - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #7] - add r0, r4, #0 - mov r1, #0x99 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #0xa] - add r0, r4, #0 - mov r1, #0x6e - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #5] - ldr r2, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x90 - bl GetMonData - add r0, r4, #0 - mov r1, #0x9c - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #3] - add r0, r4, #0 - mov r1, #7 - mov r2, #0 - bl GetMonData - str r0, [sp, #0x2c] - add r0, r4, #0 - mov r1, #0x70 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #4] - ldr r1, _021ED93C ; =0x000001EA - ldr r0, [sp, #0x14] - cmp r0, r1 - bne _021ED788 - add r0, r4, #0 - mov r1, #0x97 - mov r2, #0 - bl GetMonData - add r5, r0, #0 - mov r0, #2 - mov r1, #1 - bl FUN_02015CF8 - cmp r5, r0 - bne _021ED788 - ldr r0, [sp, #0x2c] - add r1, r7, #0 - bl CalcShininessByOtIdAndPersonality - cmp r0, #0 - beq _021ED788 -_021ED774: - add r0, r7, #0 - bl PRandom - add r7, r0, #0 - ldr r0, [sp, #0x2c] - add r1, r7, #0 - bl CalcShininessByOtIdAndPersonality - cmp r0, #0 - bne _021ED774 -_021ED788: - mov r2, #1 - str r2, [sp] - str r7, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - str r0, [sp, #0xc] - ldr r1, [sp, #0x14] - add r0, r6, #0 - mov r3, #0x20 - bl CreateMon - mov r5, #0 - add r7, sp, #0x34 -_021ED7A2: - add r1, r5, #0 - lsl r2, r5, #1 - add r0, r6, #0 - add r1, #0x36 - add r2, r7, r2 - bl SetMonData - add r1, r5, #0 - add r2, sp, #0x30 - add r0, r6, #0 - add r1, #0x3a - add r2, r2, r5 - bl SetMonData - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #4 - blo _021ED7A2 - add r7, sp, #0x24 - mov r5, #0 - add r7, #2 -_021ED7CE: - add r1, r5, #0 - add r0, r6, #0 - add r1, #0x46 - add r2, r7, r5 - bl SetMonData - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #6 - blo _021ED7CE - add r2, sp, #0x20 - add r0, r6, #0 - mov r1, #0xc - add r2, #1 - bl SetMonData - add r0, r6, #0 - mov r1, #0x79 - add r2, sp, #0x20 - bl SetMonData - add r2, sp, #0x1c - add r0, r6, #0 - mov r1, #0xb - add r2, #3 - bl SetMonData - add r2, sp, #0x1c - mov r1, #0x78 - add r0, sp, #0x18 - strb r1, [r0, #6] - add r0, r6, #0 - mov r1, #9 - add r2, #2 - bl SetMonData - add r2, sp, #0x20 - add r0, r6, #0 - mov r1, #0x99 - add r2, #2 - bl SetMonData - add r2, sp, #0x1c - add r0, r6, #0 - mov r1, #0x6e - add r2, #1 - bl SetMonData - ldr r2, [sp, #0x10] - add r0, r6, #0 - mov r1, #0x90 - bl SetMonData - add r2, sp, #0x18 - add r0, r6, #0 - mov r1, #0x9c - add r2, #3 - bl SetMonData - add r0, r6, #0 - mov r1, #7 - add r2, sp, #0x2c - bl SetMonData - add r0, r6, #0 - mov r1, #0x70 - add r2, sp, #0x1c - bl SetMonData - add r0, r4, #0 - mov r1, #0x97 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strh r0, [r1, #0xc] - add r0, r4, #0 - mov r1, #0x91 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #2] - add r0, r4, #0 - mov r1, #0x92 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #1] - add r0, r4, #0 - mov r1, #0x93 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1] - add r0, r6, #0 - mov r1, #0x97 - add r2, sp, #0x24 - bl SetMonData - add r2, sp, #0x18 - add r0, r6, #0 - mov r1, #0x91 - add r2, #2 - bl SetMonData - add r2, sp, #0x18 - add r0, r6, #0 - mov r1, #0x92 - add r2, #1 - bl SetMonData - add r0, r6, #0 - mov r1, #0x93 - add r2, sp, #0x18 - bl SetMonData - add r0, r4, #0 - mov r1, #0x98 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strh r0, [r1, #0xc] - add r0, r4, #0 - mov r1, #0x94 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #2] - add r0, r4, #0 - mov r1, #0x95 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1, #1] - add r0, r4, #0 - mov r1, #0x96 - mov r2, #0 - bl GetMonData - add r1, sp, #0x18 - strb r0, [r1] - add r0, r6, #0 - mov r1, #0x98 - add r2, sp, #0x24 - bl SetMonData - add r2, sp, #0x18 - add r0, r6, #0 - mov r1, #0x94 - add r2, #2 - bl SetMonData - add r2, sp, #0x18 - add r0, r6, #0 - mov r1, #0x95 - add r2, #1 - bl SetMonData - add r0, r6, #0 - mov r1, #0x96 - add r2, sp, #0x18 - bl SetMonData - add r0, r6, #0 - add r1, r4, #0 - bl CopyPokemonToPokemon - ldr r0, [sp, #0x10] - bl String_dtor - add r0, r6, #0 - bl FreeToHeap - add sp, #0x3c - pop {r4, r5, r6, r7, pc} - nop -_021ED93C: .word 0x000001EA - - thumb_func_start MOD05_021ED940 -MOD05_021ED940: ; 0x021ED940 - push {r4, r5, lr} - sub sp, #0x1c - mov r3, #0x46 - add r2, sp, #0 - strb r3, [r2, #3] - mov r5, #0 - strb r5, [r2, #2] - mov r3, #4 - strb r3, [r2, #1] - add r4, r0, #0 - strb r5, [r2] - bl MOD05_021ED650 - add r2, sp, #0 - add r0, r4, #0 - mov r1, #0x4c - add r2, #3 - bl SetMonData - add r0, r4, #0 - mov r1, #5 - add r2, r5, #0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r1, r5, #0 - add r2, sp, #4 - bl GetSpeciesNameIntoArray - add r0, r4, #0 - mov r1, #0x74 - add r2, sp, #4 - bl SetMonData - add r2, sp, #0 - add r0, r4, #0 - mov r1, #0x4d - add r2, #2 - bl SetMonData - add r2, sp, #0 - add r0, r4, #0 - mov r1, #0x9a - add r2, #1 - bl SetMonData - add r0, r4, #0 - mov r1, #0x9b - add r2, sp, #0 - bl SetMonData - add r0, r4, #0 - bl CalcMonLevelAndStats - add sp, #0x1c - pop {r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021ED9B4 -MOD05_021ED9B4: ; 0x021ED9B4 - push {r3, lr} - bl MOD05_021ED214 - bl MOD05_021ED614 - pop {r3, pc} - - thumb_func_start MOD05_021ED9C0 -MOD05_021ED9C0: ; 0x021ED9C0 - push {r3, r4, r5, lr} - mov r2, #0 - mov r1, #4 - add r3, r2, #0 - add r5, r0, #0 - bl MOD05_021E4BE8 - add r4, r0, #0 - str r5, [r4] - bl MOD05_021ED9EC - add r0, r4, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021ED9DC -MOD05_021ED9DC: ; 0x021ED9DC - push {r4, lr} - add r4, r0, #0 - bl MOD05_021EDA28 - add r0, r4, #0 - bl MOD05_021E4C00 - pop {r4, pc} - - thumb_func_start MOD05_021ED9EC -MOD05_021ED9EC: ; 0x021ED9EC - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - ldr r0, [r4] - mov r1, #4 - mov r2, #0x57 - bl MOD05_021E5078 - ldr r0, [r4] - mov r1, #3 - mov r2, #6 - mov r3, #1 - bl MOD05_021E50D4 - mov r0, #3 - str r0, [sp] - mov r3, #0 - mov r1, #4 - ldr r0, _021EDA24 ; =UNK05_021F8A48 - str r3, [sp, #4] - str r0, [sp, #8] - ldr r0, [r4] - add r2, r1, #0 - bl MOD05_021E4EFC - add sp, #0xc - pop {r3, r4, pc} - nop -_021EDA24: .word UNK05_021F8A48 - - thumb_func_start MOD05_021EDA28 -MOD05_021EDA28: ; 0x021EDA28 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - mov r1, #4 - bl MOD05_021E50A0 - ldr r0, [r4] - mov r1, #3 - bl MOD05_021E5114 - ldr r0, [r4] - mov r1, #4 - bl MOD05_021E506C - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EDA48 -MOD05_021EDA48: ; 0x021EDA48 - push {r4, r5, lr} - sub sp, #0x24 - add r5, r0, #0 - bl MOD05_021E4C24 - add r4, r0, #0 - add r0, r5, #0 - bl FUN_02058738 - str r0, [sp, #0x14] - add r0, r4, #0 - mov r1, #0x18 - str r4, [sp, #0x18] - bl MOD05_021E4C08 - str r0, [sp, #0x1c] - add r1, sp, #8 - mov r0, #0 - str r0, [r1] - str r0, [r1, #4] - str r0, [r1, #8] - add r0, r5, #0 - mov r1, #2 - str r5, [sp, #0x20] - bl FUN_0205829C - add r1, sp, #0x14 - str r1, [sp] - str r0, [sp, #4] - ldr r1, _021EDA94 ; =UNK05_021F8A34 - add r0, r4, #0 - add r2, sp, #8 - mov r3, #0 - bl MOD05_021E4DC4 - add sp, #0x24 - pop {r4, r5, pc} - nop -_021EDA94: .word UNK05_021F8A34 - - thumb_func_start MOD05_021EDA98 -MOD05_021EDA98: ; 0x021EDA98 - push {r4, r5, lr} - sub sp, #0xc - add r4, r1, #0 - add r2, sp, #0 - mov r1, #0 - str r1, [r2] - str r1, [r2, #4] - add r5, r0, #0 - str r1, [r2, #8] - bl FUN_0206475C - add r2, r4, #0 - add r3, r0, #0 - add r2, #0x10 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r4, #0x1c] - bl FUN_02058448 - str r0, [r4, #4] - ldr r0, [r4, #0x1c] - bl FUN_02058450 - str r0, [r4, #8] - add r0, r5, #0 - add r1, sp, #0 - bl FUN_0206476C - ldr r0, [r4, #0x14] - mov r1, #4 - add r2, sp, #0 - bl MOD05_021E4EE4 - str r0, [r4, #0x20] - mov r0, #1 - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EDAE8 -MOD05_021EDAE8: ; 0x021EDAE8 - ldr r3, _021EDAF0 ; =FUN_0201F744 - ldr r0, [r1, #0x20] - bx r3 - nop -_021EDAF0: .word FUN_0201F744 - - thumb_func_start MOD05_021EDAF4 -MOD05_021EDAF4: ; 0x021EDAF4 - push {r4, lr} - add r2, r1, #0 - add r4, r0, #0 - ldr r0, [r2, #0x1c] - ldr r1, [r2, #4] - ldr r2, [r2, #8] - bl FUN_020582A8 - cmp r0, #0 - bne _021EDB0E - add r0, r4, #0 - bl MOD05_021E4DE4 -_021EDB0E: - pop {r4, pc} - - thumb_func_start MOD05_021EDB10 -MOD05_021EDB10: ; 0x021EDB10 - push {r4, r5, r6, lr} - sub sp, #0x18 - add r5, r1, #0 - ldr r4, [r5, #0x1c] - ldr r1, [r5, #4] - add r6, r0, #0 - ldr r2, [r5, #8] - add r0, r4, #0 - bl FUN_020582A8 - cmp r0, #0 - bne _021EDB32 - add r0, r6, #0 - bl MOD05_021E4DE4 - add sp, #0x18 - pop {r4, r5, r6, pc} -_021EDB32: - add r0, r4, #0 - add r1, sp, #0xc - bl FUN_02058B5C - add r0, r4, #0 - add r1, sp, #0 - bl FUN_02058B84 - ldr r1, [sp, #0xc] - ldr r0, [sp] - add r0, r1, r0 - str r0, [sp, #0xc] - ldr r1, [sp, #0x10] - ldr r0, [sp, #4] - add r0, r1, r0 - str r0, [sp, #0x10] - ldr r1, [sp, #0x14] - ldr r0, [sp, #8] - add r1, r1, r0 - mov r0, #3 - lsl r0, r0, #0xe - str r1, [sp, #0x14] - add r0, r1, r0 - str r0, [sp, #0x14] - ldr r0, [r5, #0x20] - add r1, sp, #0xc - bl FUN_0201F7C8 - add sp, #0x18 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EDB70 -MOD05_021EDB70: ; 0x021EDB70 - push {r3, r4, r5, lr} - mov r2, #0 - mov r1, #0x60 - add r3, r2, #0 - add r5, r0, #0 - bl MOD05_021E4BE8 - add r4, r0, #0 - str r5, [r4] - bl MOD05_021EDB9C - add r0, r4, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EDB8C -MOD05_021EDB8C: ; 0x021EDB8C - push {r4, lr} - add r4, r0, #0 - bl MOD05_021EDBBC - add r0, r4, #0 - bl MOD05_021E4C00 - pop {r4, pc} - - thumb_func_start MOD05_021EDB9C -MOD05_021EDB9C: ; 0x021EDB9C - push {r3, lr} - sub sp, #8 - add r3, r0, #0 - add r0, #0x58 - str r0, [sp] - add r0, r3, #0 - add r0, #0x5c - str r0, [sp, #4] - ldr r0, [r3] - mov r1, #0x50 - mov r2, #0 - add r3, r3, #4 - bl MOD05_021E51EC - add sp, #8 - pop {r3, pc} - - thumb_func_start MOD05_021EDBBC -MOD05_021EDBBC: ; 0x021EDBBC - ldr r3, _021EDBC4 ; =MOD05_021E4C00 - ldr r0, [r0, #0x5c] - bx r3 - nop -_021EDBC4: .word MOD05_021E4C00 - - thumb_func_start MOD05_021EDBC8 -MOD05_021EDBC8: ; 0x021EDBC8 - push {r4, r5, r6, lr} - sub sp, #0x20 - add r2, sp, #8 - mov r1, #0 - str r1, [r2] - str r1, [r2, #4] - add r5, r0, #0 - str r1, [r2, #8] - bl FUN_020553A0 - add r4, r0, #0 - bl MOD05_021E4C24 - add r6, r0, #0 - mov r1, #0x10 - str r6, [sp, #0x14] - bl MOD05_021E4C08 - str r0, [sp, #0x18] - add r0, r4, #0 - mov r1, #2 - str r5, [sp, #0x1c] - bl FUN_0205829C - add r1, sp, #0x14 - str r1, [sp] - str r0, [sp, #4] - ldr r1, _021EDC10 ; =UNK05_021F8A6C - add r0, r6, #0 - add r2, sp, #8 - mov r3, #0 - bl MOD05_021E4DC4 - add sp, #0x20 - pop {r4, r5, r6, pc} - nop -_021EDC10: .word UNK05_021F8A6C - - thumb_func_start MOD05_021EDC14 -MOD05_021EDC14: ; 0x021EDC14 - push {r3, r4, r5, lr} - add r5, r1, #0 - bl FUN_0206475C - add r4, r0, #0 - add r3, r4, #0 - add r2, r5, #0 - ldmia r3!, {r0, r1} - add r2, #0x24 - stmia r2!, {r0, r1} - ldr r0, [r3] - str r0, [r2] - ldr r0, [r4, #8] - bl FUN_020553A0 - mov r1, #0 - mvn r1, r1 - add r4, r0, #0 - str r1, [r5, #4] - bl FUN_02058448 - str r0, [r5, #0x14] - add r0, r4, #0 - bl FUN_02058450 - str r0, [r5, #0x18] - mov r0, #1 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021EDC4C -MOD05_021EDC4C: ; 0x021EDC4C - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021EDC50 -MOD05_021EDC50: ; 0x021EDC50 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - add r5, r1, #0 - str r0, [sp] - ldr r0, [r5, #0x2c] - str r0, [sp, #4] - bl FUN_020553A0 - ldr r1, [r5, #0x14] - ldr r2, [r5, #0x18] - add r6, r0, #0 - bl FUN_020582A8 - cmp r0, #0 - bne _021EDC78 - ldr r0, [sp] - bl MOD05_021E4DE4 - add sp, #0x24 - pop {r4, r5, r6, r7, pc} -_021EDC78: - ldr r7, [r5, #4] - add r0, r6, #0 - bl FUN_02058720 - strb r0, [r5, #8] - ldrb r0, [r5, #8] - bl MOD05_021EDDF4 - str r0, [r5, #4] - mov r0, #0 - str r0, [r5] - ldr r4, [r5, #4] - sub r0, r0, #1 - cmp r4, r0 - beq _021EDCA0 - ldr r0, [sp, #4] - bl FUN_020552F8 - cmp r4, r0 - beq _021EDCAE -_021EDCA0: - mov r0, #0 - str r0, [r5, #0x1c] - str r0, [r5, #0x20] - mov r0, #1 - add sp, #0x24 - str r0, [r5] - pop {r4, r5, r6, r7, pc} -_021EDCAE: - cmp r7, r4 - beq _021EDCB8 - mov r0, #0 - str r0, [r5, #0x1c] - str r0, [r5, #0x20] -_021EDCB8: - add r0, r6, #0 - bl FUN_02058B2C - add r4, r0, #0 - ldr r0, [r5, #4] - bl FUN_02059BF4 - add r7, r0, #0 - add r0, r6, #0 - bl FUN_02058B4C - str r0, [sp, #8] - ldr r0, [r5, #4] - bl FUN_02059C00 - add r2, r0, #0 - ldr r1, [sp, #8] - add r0, r4, r7 - add r1, r1, r2 - add r2, sp, #0xc - bl FUN_02059E60 - add r0, r6, #0 - add r1, sp, #0x18 - bl FUN_02058B5C - ldr r0, [sp, #0x1c] - add r1, sp, #0xc - str r0, [sp, #0x10] - ldr r0, [sp] - bl FUN_0206476C - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EDCFC -MOD05_021EDCFC: ; 0x021EDCFC - push {r3, r4, r5, r6, lr} - sub sp, #0x3c - add r4, r1, #0 - add r6, r0, #0 - ldr r0, [r4] - cmp r0, #1 - beq _021EDDE2 - mov r0, #0 - ldr r1, [r4, #4] - mvn r0, r0 - cmp r1, r0 - beq _021EDDE2 - ldr r0, [r4, #0x1c] - add r0, r0, #1 - str r0, [r4, #0x1c] - cmp r0, #0xf - ble _021EDD34 - mov r0, #0 - str r0, [r4, #0x1c] - ldr r0, [r4, #0x20] - add r0, r0, #1 - lsr r2, r0, #0x1f - lsl r1, r0, #0x1f - sub r1, r1, r2 - mov r0, #0x1f - ror r1, r0 - add r0, r2, r1 - str r0, [r4, #0x20] -_021EDD34: - ldr r3, _021EDDE8 ; =UNK05_021F8A60 - add r2, sp, #0x24 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3] - ldr r5, _021EDDEC ; =UNK05_021F8A80 - str r0, [r2] - add r3, sp, #0 - mov r2, #4 -_021EDD46: - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - sub r2, r2, #1 - bne _021EDD46 - ldr r0, [r5] - mov r2, #0x18 - str r0, [r3] - ldr r1, [r4, #4] - ldr r3, _021EDDF0 ; =UNK05_021F8AA4 - add r0, r1, #0 - mul r0, r2 - add r0, r3, r0 - ldr r5, [r4, #0x20] - mov r3, #0xc - mul r3, r5 - add r5, r0, r3 - cmp r1, #3 - bhi _021EDDB4 - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EDD76: ; jump table - .short _021EDD7E - _021EDD76 - 2 ; case 0 - .short _021EDD8C - _021EDD76 - 2 ; case 1 - .short _021EDD9A - _021EDD76 - 2 ; case 2 - .short _021EDDA8 - _021EDD76 - 2 ; case 3 -_021EDD7E: - mov r1, #0 - add r0, sp, #0 - mov r2, #0xb4 - add r3, r1, #0 - bl FUN_0201CB20 - b _021EDDB4 -_021EDD8C: - mov r1, #0 - add r0, sp, #0 - add r2, r1, #0 - add r3, r1, #0 - bl FUN_0201CB20 - b _021EDDB4 -_021EDD9A: - mov r1, #0 - add r0, sp, #0 - add r2, #0xf6 - add r3, r1, #0 - bl FUN_0201CB20 - b _021EDDB4 -_021EDDA8: - mov r1, #0 - add r0, sp, #0 - mov r2, #0x5a - add r3, r1, #0 - bl FUN_0201CB20 -_021EDDB4: - add r0, r6, #0 - add r1, sp, #0x30 - bl FUN_0206477C - ldr r1, [sp, #0x30] - ldr r0, [r5] - add r2, sp, #0 - add r0, r1, r0 - str r0, [sp, #0x30] - ldr r1, [sp, #0x34] - ldr r0, [r5, #4] - add r3, sp, #0x24 - add r0, r1, r0 - str r0, [sp, #0x34] - ldr r1, [sp, #0x38] - ldr r0, [r5, #8] - add r0, r1, r0 - str r0, [sp, #0x38] - ldr r0, [r4, #0x28] - add r1, sp, #0x30 - add r0, r0, #4 - bl FUN_0201B26C -_021EDDE2: - add sp, #0x3c - pop {r3, r4, r5, r6, pc} - nop -_021EDDE8: .word UNK05_021F8A60 -_021EDDEC: .word UNK05_021F8A80 -_021EDDF0: .word UNK05_021F8AA4 - - thumb_func_start MOD05_021EDDF4 -MOD05_021EDDF4: ; 0x021EDDF4 - push {r4, lr} - add r4, r0, #0 - bl FUN_020547D4 - cmp r0, #0 - beq _021EDE04 - mov r0, #0 - pop {r4, pc} -_021EDE04: - add r0, r4, #0 - bl FUN_020547E0 - cmp r0, #0 - beq _021EDE12 - mov r0, #1 - pop {r4, pc} -_021EDE12: - add r0, r4, #0 - bl FUN_020547C8 - cmp r0, #0 - beq _021EDE20 - mov r0, #2 - pop {r4, pc} -_021EDE20: - add r0, r4, #0 - bl FUN_020547BC - cmp r0, #0 - beq _021EDE2E - mov r0, #3 - pop {r4, pc} -_021EDE2E: - mov r0, #0 - mvn r0, r0 - pop {r4, pc} - - thumb_func_start MOD05_021EDE34 -MOD05_021EDE34: ; 0x021EDE34 - push {r4, r5, r6, lr} - add r6, r2, #0 - add r5, r1, #0 - add r1, r6, #0 - bl _s32_div_f - add r4, r1, #0 - add r0, r5, #0 - add r1, r6, #0 - bl _s32_div_f - cmp r4, r1 - bne _021EDE52 - mov r0, #1 - pop {r4, r5, r6, pc} -_021EDE52: - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EDE58 -MOD05_021EDE58: ; 0x021EDE58 - push {r4, r5, r6, lr} - add r6, r2, #0 - add r5, r1, #0 - add r1, r6, #0 - bl _s32_div_f - add r4, r0, #0 - add r0, r5, #0 - add r1, r6, #0 - bl _s32_div_f - cmp r4, r0 - bne _021EDE76 - mov r0, #1 - pop {r4, r5, r6, pc} -_021EDE76: - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EDE7C -MOD05_021EDE7C: ; 0x021EDE7C - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0x30 - add r4, r1, #0 - mul r4, r0 - add r1, r5, r4 - ldr r0, [r1, #0x14] - cmp r0, #0 - beq _021EDE94 - ldr r0, [r1, #0xc] - bl MOD05_021EF8F8 -_021EDE94: - add r1, r5, r4 - ldr r0, [r1, #0x18] - cmp r0, #0 - beq _021EDEA2 - ldr r0, [r1, #0x10] - bl MOD05_021F4444 -_021EDEA2: - mov r1, #1 - add r0, r5, r4 - str r1, [r0, #0x28] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EDEAC -MOD05_021EDEAC: ; 0x021EDEAC - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x10] - cmp r0, #0 - beq _021EDEBC - ldr r0, [r4, #8] - bl MOD05_021EF8F8 -_021EDEBC: - ldr r0, [r4, #0x14] - cmp r0, #0 - beq _021EDEC8 - ldr r0, [r4, #0xc] - bl MOD05_021F4444 -_021EDEC8: - mov r0, #0 - str r0, [r4, #0x10] - str r0, [r4, #0x14] - pop {r4, pc} - - thumb_func_start MOD05_021EDED0 -MOD05_021EDED0: ; 0x021EDED0 - push {r3, r4, r5, r6, r7, lr} - add r5, r2, #0 - asr r2, r0, #4 - lsr r2, r2, #0x1b - add r2, r0, r2 - asr r7, r2, #5 - asr r2, r1, #4 - lsr r2, r2, #0x1b - add r2, r1, r2 - asr r6, r2, #5 - ldr r2, [sp, #0x18] - str r3, [sp] - ldr r4, [sp, #0x1c] - bl MOD05_021EEE08 - ldr r1, [sp, #0x18] - bl MOD05_021EF620 - add r1, r6, #0 - mul r1, r5 - add r1, r7, r1 - cmp r0, #3 - bhi _021EDFB6 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EDF0A: ; jump table - .short _021EDF12 - _021EDF0A - 2 ; case 0 - .short _021EDF38 - _021EDF0A - 2 ; case 1 - .short _021EDF60 - _021EDF0A - 2 ; case 2 - .short _021EDF8A - _021EDF0A - 2 ; case 3 -_021EDF12: - sub r2, r1, r5 - str r1, [r4, #0xc] - sub r0, r2, #1 - str r0, [r4] - str r2, [r4, #4] - sub r0, r1, #1 - str r0, [r4, #8] - sub r0, r7, #1 - bpl _021EDF2C - mov r0, #0 - mvn r0, r0 - str r0, [r4] - str r0, [r4, #8] -_021EDF2C: - sub r0, r6, #1 - bpl _021EDFBA - mov r0, #0 - mvn r0, r0 - str r0, [r4, #4] - pop {r3, r4, r5, r6, r7, pc} -_021EDF38: - str r1, [r4, #8] - sub r0, r1, r5 - str r0, [r4] - add r0, r0, #1 - str r0, [r4, #4] - add r0, r1, #1 - str r0, [r4, #0xc] - add r0, r7, #1 - cmp r0, r5 - blt _021EDF54 - mov r0, #0 - mvn r0, r0 - str r0, [r4, #4] - str r0, [r4, #0xc] -_021EDF54: - sub r0, r6, #1 - bpl _021EDFBA - mov r0, #0 - mvn r0, r0 - str r0, [r4] - pop {r3, r4, r5, r6, r7, pc} -_021EDF60: - str r1, [r4, #4] - sub r0, r1, #1 - add r1, r1, r5 - str r0, [r4] - sub r0, r1, #1 - str r0, [r4, #8] - str r1, [r4, #0xc] - sub r0, r7, #1 - bpl _021EDF7A - mov r0, #0 - mvn r0, r0 - str r0, [r4] - str r0, [r4, #8] -_021EDF7A: - ldr r0, [sp] - add r1, r6, #1 - cmp r1, r0 - ble _021EDFBA - mov r0, #0 - mvn r0, r0 - str r0, [r4, #0xc] - pop {r3, r4, r5, r6, r7, pc} -_021EDF8A: - str r1, [r4] - add r0, r1, #1 - str r0, [r4, #4] - add r0, r1, r5 - str r0, [r4, #8] - add r0, r0, #1 - str r0, [r4, #0xc] - add r0, r7, #1 - cmp r0, r5 - blt _021EDFA6 - mov r0, #0 - mvn r0, r0 - str r0, [r4, #4] - str r0, [r4, #0xc] -_021EDFA6: - ldr r0, [sp] - add r1, r6, #1 - cmp r1, r0 - ble _021EDFBA - mov r0, #0 - mvn r0, r0 - str r0, [r4] - pop {r3, r4, r5, r6, r7, pc} -_021EDFB6: - bl GF_AssertFail -_021EDFBA: - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EDFBC -MOD05_021EDFBC: ; 0x021EDFBC - push {r3, r4, r5, r6, r7, lr} - mov r6, #0 - add r5, r0, #0 - sub r7, r6, #1 -_021EDFC4: - ldr r1, _021EE03C ; =0x0000086C - mov r0, #4 - bl AllocFromHeap - lsl r4, r6, #2 - add r1, r5, r4 - add r1, #0x90 - str r0, [r1] - add r0, r5, r4 - add r0, #0x90 - ldr r2, [r0] - ldr r0, _021EE040 ; =0x00000864 - mov r1, #0 - str r1, [r2, r0] - add r2, r5, r4 - add r2, #0x90 - ldr r3, [r2] - ldr r2, _021EE044 ; =0x00000854 - ldr r1, [r5] - add r0, r6, #0 - add r2, r3, r2 - bl MOD05_021F3C60 - add r2, r5, r4 - add r2, #0x90 - ldr r3, [r2] - ldr r2, _021EE048 ; =0x00000858 - ldr r1, [r5] - add r0, r6, #0 - add r2, r3, r2 - bl MOD05_021F3C68 - mov r0, #4 - bl MOD05_021E7C00 - add r1, r5, r4 - add r1, #0x90 - ldr r2, [r1] - ldr r1, _021EE04C ; =0x00000868 - str r0, [r2, r1] - add r0, r5, r4 - add r0, #0x90 - ldr r1, [r0] - mov r0, #0x86 - lsl r0, r0, #4 - str r7, [r1, r0] - add r1, r5, r4 - add r1, #0x90 - mov r2, #2 - ldr r1, [r1] - add r0, r7, #0 - lsl r2, r2, #0xa - bl MIi_CpuClearFast - add r0, r6, #1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r6, #4 - blo _021EDFC4 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021EE03C: .word 0x0000086C -_021EE040: .word 0x00000864 -_021EE044: .word 0x00000854 -_021EE048: .word 0x00000858 -_021EE04C: .word 0x00000868 - - thumb_func_start MOD05_021EE050 -MOD05_021EE050: ; 0x021EE050 - push {r3, r4, r5, r6, r7, lr} - mov r6, #0 - add r5, r0, #0 - add r7, r6, #0 -_021EE058: - ldr r1, _021EE0B0 ; =0x0000086C - mov r0, #4 - bl AllocFromHeap - lsl r4, r6, #2 - add r1, r5, r4 - add r1, #0x90 - str r0, [r1] - add r0, r5, r4 - add r0, #0x90 - ldr r1, [r0] - ldr r0, _021EE0B4 ; =0x00000864 - add r2, r5, r4 - str r7, [r1, r0] - add r2, #0x90 - ldr r3, [r2] - ldr r2, _021EE0B8 ; =0x00000854 - ldr r1, [r5] - add r0, r6, #0 - add r2, r3, r2 - bl MOD05_021F3C60 - mov r0, #4 - bl MOD05_021E7C00 - add r1, r5, r4 - add r1, #0x90 - ldr r2, [r1] - ldr r1, _021EE0BC ; =0x00000868 - str r0, [r2, r1] - add r0, r5, r4 - add r0, #0x90 - ldr r2, [r0] - mov r1, #0 - mov r0, #0x86 - mvn r1, r1 - lsl r0, r0, #4 - str r1, [r2, r0] - add r0, r6, #1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r6, #4 - blo _021EE058 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021EE0B0: .word 0x0000086C -_021EE0B4: .word 0x00000864 -_021EE0B8: .word 0x00000854 -_021EE0BC: .word 0x00000868 - - thumb_func_start MOD05_021EE0C0 -MOD05_021EE0C0: ; 0x021EE0C0 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - add r7, r1, #0 - add r5, r2, #0 - cmp r6, #0 - beq _021EE0E6 - mov r0, #4 - mov r1, #0x10 - bl AllocFromHeapAtEnd - add r4, r0, #0 - add r0, r6, #0 - add r1, r7, #0 - mov r2, #0 - mov r3, #0x10 - str r4, [sp] - bl NARC_ReadFromMember - b _021EE0FC -_021EE0E6: - bl GF_AssertFail - mov r0, #0x10 - str r0, [sp] - mov r0, #0x43 - add r1, r7, #0 - mov r2, #4 - mov r3, #0 - bl AllocAtEndAndReadFromNarcMemberByIdPair - add r4, r0, #0 -_021EE0FC: - ldr r0, [r4] - str r0, [r5] - ldr r0, [r4, #4] - str r0, [r5, #0xc] - ldr r0, [r4, #8] - str r0, [r5, #4] - ldr r0, [r4, #0xc] - str r0, [r5, #8] - add r0, r4, #0 - bl FreeToHeap - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EE114 -MOD05_021EE114: ; 0x021EE114 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - ldr r4, [sp, #0x40] - lsl r7, r0, #2 - add r0, r4, r7 - ldr r0, [r0, #0x18] - str r1, [sp, #0xc] - ldr r5, [sp, #0x3c] - cmp r0, #0 - blt _021EE1D0 - ldr r1, [sp, #0x38] - mul r1, r3 - cmp r0, r1 - bge _021EE1D0 - add r1, r2, #0 - bl GetMapData - add r1, r0, #0 - ldr r0, _021EE1D4 ; =0x0000FFFF - cmp r1, r0 - beq _021EE1D0 - add r0, r5, #0 - add r0, #0xf8 - ldr r0, [r0] - add r2, sp, #0x10 - bl MOD05_021EE0C0 - add r0, r5, #0 - add r0, #0xf8 - ldr r0, [r0] - ldr r1, [sp, #0x10] - ldr r2, [r4, r7] - bl NARC_ReadFile - add r0, r5, #0 - add r0, #0xf0 - ldr r0, [r0] - ldr r3, _021EE1D8 ; =0x00000868 - str r0, [sp] - add r0, r5, #0 - ldr r6, [r4, r7] - add r0, #0xf8 - ldr r0, [r0] - ldr r1, [sp, #0x1c] - ldr r2, [sp, #0xc] - ldr r3, [r6, r3] - bl MOD05_021E7CD8 - ldr r0, [r4, #0x10] - add r0, r0, #1 - str r0, [r4, #0x10] - ldr r0, [sp, #0xc] - ldr r6, [r4, r7] - bl MOD05_021F4C74 - ldr r3, _021EE1DC ; =0x00000864 - str r0, [sp] - add r0, r6, r3 - add r2, r3, #0 - str r0, [sp, #4] - add r0, r4, #0 - add r0, #0x10 - str r0, [sp, #8] - add r0, r5, #0 - add r0, #0xf8 - sub r2, #0x64 - sub r3, #0x10 - ldr r0, [r0] - ldr r1, [sp, #0x14] - add r2, r6, r2 - add r3, r6, r3 - bl MOD05_021EFA00 - str r0, [r4, #8] - ldr r0, [r4, #0x14] - add r3, r4, #0 - add r0, r0, #1 - str r0, [r4, #0x14] - ldr r2, [r4, r7] - ldr r6, _021EE1E0 ; =0x00000858 - add r5, #0xf8 - add r0, r2, r6 - str r0, [sp] - add r0, r4, #0 - add r0, #0x10 - str r0, [sp, #4] - ldr r0, [r5] - add r5, r6, #4 - ldr r1, [sp, #0x18] - ldr r2, [r2, r5] - add r3, #0x14 - bl MOD05_021F43E4 - str r0, [r4, #0xc] -_021EE1D0: - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021EE1D4: .word 0x0000FFFF -_021EE1D8: .word 0x00000868 -_021EE1DC: .word 0x00000864 -_021EE1E0: .word 0x00000858 - - thumb_func_start MOD05_021EE1E4 -MOD05_021EE1E4: ; 0x021EE1E4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x30 - str r1, [sp, #0xc] - add r1, r2, #0 - add r2, r3, #0 - ldr r3, _021EE294 ; =0x00000828 - lsl r7, r0, #2 - add r3, sp - ldr r4, [r3, #0x18] - ldr r5, [r3, #0x14] - add r0, r4, r7 - ldr r0, [r0, #0x18] - cmp r0, #0 - blt _021EE286 - ldr r3, [r3, #0x10] - mul r3, r2 - cmp r0, r3 - bge _021EE286 - bl GetMapData - add r1, r0, #0 - ldr r0, _021EE298 ; =0x0000FFFF - cmp r1, r0 - beq _021EE286 - add r0, r5, #0 - add r0, #0xf8 - ldr r0, [r0] - add r2, sp, #0x10 - bl MOD05_021EE0C0 - add r0, r5, #0 - add r0, #0xf8 - mov r1, #2 - ldr r0, [r0] - lsl r1, r1, #0xa - add r2, sp, #0x20 - bl NARC_ReadFile - add r0, r5, #0 - add r0, #0xf0 - ldr r0, [r0] - ldr r3, _021EE29C ; =0x00000868 - str r0, [sp] - add r0, r5, #0 - ldr r6, [r4, r7] - add r0, #0xf8 - ldr r0, [r0] - ldr r1, [sp, #0x1c] - ldr r2, [sp, #0xc] - ldr r3, [r6, r3] - bl MOD05_021E7CD8 - ldr r0, [r4, #0x10] - add r0, r0, #1 - str r0, [r4, #0x10] - ldr r0, [sp, #0xc] - ldr r6, [r4, r7] - bl MOD05_021F4C74 - ldr r3, _021EE2A0 ; =0x00000864 - str r0, [sp] - add r0, r6, r3 - add r2, r3, #0 - str r0, [sp, #4] - add r0, r4, #0 - add r0, #0x10 - str r0, [sp, #8] - add r5, #0xf8 - sub r2, #0x64 - sub r3, #0x10 - ldr r0, [r5] - ldr r1, [sp, #0x14] - add r2, r6, r2 - add r3, r6, r3 - bl MOD05_021EFA00 - str r0, [r4, #8] -_021EE286: - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x30 - pop {r3, r4, r5, r6, r7, pc} - nop -_021EE294: .word 0x00000828 -_021EE298: .word 0x0000FFFF -_021EE29C: .word 0x00000868 -_021EE2A0: .word 0x00000864 - - thumb_func_start MOD05_021EE2A4 -MOD05_021EE2A4: ; 0x021EE2A4 - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - add r4, r1, #0 - str r0, [sp, #4] - str r2, [sp, #8] - ldr r7, [sp, #0x3c] - add r1, r0, #0 - bmi _021EE37A - ldr r2, [sp, #0x30] - ldr r1, [sp, #0x34] - add r5, r2, #0 - mul r5, r1 - add r1, r0, #0 - cmp r1, r5 - bge _021EE37A - add r1, r3, #0 - bl GetMapData - add r1, r0, #0 - ldr r0, _021EE380 ; =0x0000FFFF - cmp r1, r0 - beq _021EE37A - add r0, r7, #0 - add r0, #0xf8 - ldr r0, [r0] - add r2, sp, #0xc - bl MOD05_021EE0C0 - lsl r5, r4, #2 - add r4, r7, #0 - add r0, r7, #0 - add r4, #0x90 - add r0, #0xf8 - ldr r0, [r0] - ldr r1, [sp, #0xc] - ldr r2, [r4, r5] - bl NARC_ReadFile - add r0, r7, #0 - add r0, #0xf0 - ldr r0, [r0] - ldr r3, _021EE384 ; =0x00000868 - str r0, [sp] - add r0, r7, #0 - ldr r6, [r4, r5] - add r0, #0xf8 - ldr r0, [r0] - ldr r1, [sp, #0x18] - ldr r2, [sp, #8] - ldr r3, [r6, r3] - bl MOD05_021E7CD8 - ldr r6, [r4, r5] - ldr r0, [sp, #8] - bl MOD05_021F4C74 - str r0, [sp] - add r0, r7, #0 - mov r3, #2 - add r0, #0xf8 - lsl r3, r3, #0xa - add r2, r6, r3 - add r3, #0x54 - ldr r0, [r0] - ldr r1, [sp, #0x10] - add r3, r6, r3 - bl MOD05_021EFA40 - ldr r1, [sp, #0x38] - cmp r1, #1 - bne _021EE336 - bl MOD05_021DB5EC -_021EE336: - ldr r6, _021EE388 ; =0x00000864 - ldr r0, [r4, r5] - mov r1, #1 - str r1, [r0, r6] - add r2, r6, #0 - add r0, r7, #0 - add r0, #0xf8 - ldr r3, [r4, r5] - sub r2, #8 - sub r6, #0xc - ldr r2, [r3, r2] - ldr r0, [r0] - ldr r1, [sp, #0x14] - ldr r3, [r3, r6] - bl MOD05_021F4344 - mov r2, #0x86 - ldr r1, [r4, r5] - ldr r0, [sp, #4] - lsl r2, r2, #4 - str r0, [r1, r2] - add r0, r7, #0 - add r0, #0xfc - ldr r3, [r0] - cmp r3, #0 - beq _021EE37A - mov r0, #1 - lsl r0, r0, #8 - ldr r4, [r4, r5] - add r2, #8 - ldr r0, [r7, r0] - ldr r1, [sp, #4] - ldr r2, [r4, r2] - blx r3 -_021EE37A: - add sp, #0x1c - pop {r4, r5, r6, r7, pc} - nop -_021EE380: .word 0x0000FFFF -_021EE384: .word 0x00000868 -_021EE388: .word 0x00000864 - - thumb_func_start MOD05_021EE38C -MOD05_021EE38C: ; 0x021EE38C - push {r4, r5, r6, r7, lr} - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x2c - str r2, [sp, #8] - ldr r2, _021EE44C ; =0x00000820 - add r4, r1, #0 - add r2, sp - str r0, [sp, #4] - ldr r5, [r2, #0x1c] - add r1, r0, #0 - bmi _021EE43E - ldr r6, [r2, #0x10] - ldr r1, [r2, #0x14] - add r2, r6, #0 - mul r2, r1 - add r1, r0, #0 - cmp r1, r2 - bge _021EE43E - add r1, r3, #0 - bl GetMapData - add r1, r0, #0 - ldr r0, _021EE450 ; =0x0000FFFF - cmp r1, r0 - beq _021EE43E - add r0, r5, #0 - add r0, #0xf8 - ldr r0, [r0] - add r2, sp, #0xc - bl MOD05_021EE0C0 - add r0, r5, #0 - add r0, #0xf8 - mov r1, #2 - ldr r0, [r0] - lsl r1, r1, #0xa - add r2, sp, #0x1c - bl NARC_ReadFile - add r0, r5, #0 - add r0, #0xf0 - ldr r0, [r0] - add r7, r5, #0 - str r0, [sp] - add r0, r5, #0 - add r0, #0xf8 - lsl r4, r4, #2 - add r7, #0x90 - ldr r6, [r7, r4] - ldr r3, _021EE454 ; =0x00000868 - ldr r0, [r0] - ldr r1, [sp, #0x18] - ldr r2, [sp, #8] - ldr r3, [r6, r3] - bl MOD05_021E7CD8 - ldr r0, [sp, #8] - ldr r6, [r7, r4] - bl MOD05_021F4C74 - mov r3, #2 - str r0, [sp] - add r5, #0xf8 - lsl r3, r3, #0xa - add r2, r6, r3 - add r3, #0x54 - ldr r0, [r5] - ldr r1, [sp, #0x10] - add r3, r6, r3 - bl MOD05_021EFA40 - ldr r1, _021EE44C ; =0x00000820 - add r1, sp - ldr r1, [r1, #0x18] - cmp r1, #1 - bne _021EE42E - bl MOD05_021DB5EC -_021EE42E: - ldr r1, [r7, r4] - ldr r0, _021EE458 ; =0x00000864 - mov r2, #1 - str r2, [r1, r0] - sub r1, r0, #4 - ldr r2, [r7, r4] - ldr r0, [sp, #4] - str r0, [r2, r1] -_021EE43E: - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x2c - pop {r4, r5, r6, r7, pc} - nop -_021EE44C: .word 0x00000820 -_021EE450: .word 0x0000FFFF -_021EE454: .word 0x00000868 -_021EE458: .word 0x00000864 - - thumb_func_start MOD05_021EE45C -MOD05_021EE45C: ; 0x021EE45C - ldr r1, [r0] - cmp r1, #0 - bne _021EE46C - ldr r0, [r0, #4] - cmp r0, #0 - bne _021EE46C - mov r0, #1 - bx lr -_021EE46C: - mov r0, #0 - bx lr - - thumb_func_start MOD05_021EE470 -MOD05_021EE470: ; 0x021EE470 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r4, r0, #0 - str r3, [sp] - add r0, sp, #0x10 - add r7, r1, #0 - ldrb r1, [r0, #0x14] - mov r0, #0x30 - str r2, [sp, #8] - add r5, r1, #0 - mul r5, r0 - add r0, r4, #0 - str r0, [sp, #4] - add r0, #0x2c - str r0, [sp, #4] - ldr r0, [r0, r5] - cmp r0, #0 - beq _021EE498 - bl GF_AssertFail -_021EE498: - ldr r0, [sp, #4] - mov r1, #1 - str r1, [r0, r5] - add r0, sp, #0x10 - add r5, r4, r5 - add r1, r5, #0 - ldrb r2, [r0, #0x18] - add r1, #0x30 - add r3, r4, #0 - strb r2, [r1] - add r2, r5, #0 - ldr r1, [sp, #8] - str r7, [r5, #0x1c] - str r1, [r5, #0x20] - ldr r1, [sp] - add r2, #0x24 - strb r1, [r2] - add r1, r5, #0 - ldrb r0, [r0, #0x10] - add r1, #0x25 - add r3, #0x90 - strb r0, [r1] - ldr r1, [sp] - mov r6, #0 - lsl r2, r1, #2 - ldr r1, [r3, r2] - str r1, [r5, #4] - lsl r1, r0, #2 - ldr r0, [r3, r1] - str r0, [r5, #8] - add r0, r5, #0 - add r0, #0x26 - strb r6, [r0] - add r0, r6, #0 - str r0, [r5, #0x28] - add r0, r4, #0 - add r0, #0xa0 - ldrb r0, [r0] - cmp r0, #0 - bne _021EE4F0 - add r5, r4, #0 - add r5, #0xb4 - add r0, r6, #0 - str r0, [r5] -_021EE4F0: - ldr r0, [r3, r2] - mov r2, #0x86 - lsl r2, r2, #4 - str r7, [r0, r2] - ldr r1, [r3, r1] - ldr r0, [sp, #8] - str r0, [r1, r2] - add r0, r4, #0 - add r0, #0xa0 - ldrb r0, [r0] - add r1, r0, #1 - add r0, r4, #0 - add r0, #0xa0 - strb r1, [r0] - add r0, r4, #0 - add r0, #0xa1 - ldrb r0, [r0] - add r4, #0xa1 - add r0, r0, #1 - lsr r2, r0, #0x1f - lsl r1, r0, #0x1f - sub r1, r1, r2 - mov r0, #0x1f - ror r1, r0 - add r0, r2, r1 - strb r0, [r4] - mov r0, #1 - add sp, #0xc - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EE52C -MOD05_021EE52C: ; 0x021EE52C - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r5, r1, #0 - add r0, r5, #0 - add r0, #0xa2 - ldrb r1, [r0] - mov r0, #0x30 - add r4, r5, #0 - add r2, r5, #4 - mul r0, r1 - add r4, #0xcc - add r6, r2, r0 - ldr r0, [r4, #0x20] - cmp r0, #1 - bne _021EE572 - ldr r0, [r4, #0x18] - cmp r0, #0 - beq _021EE5D0 - ldr r0, [r4, #0x14] - ldr r1, [r0] - ldr r0, [r4, #0x10] - ldr r0, [r0] - cmp r1, r0 - ble _021EE560 - bl GF_AssertFail -_021EE560: - ldr r0, [r4, #0x10] - ldr r1, [r0] - ldr r0, [r4, #0x14] - ldr r0, [r0] - sub r1, r1, r0 - mov r0, #1 - lsl r0, r0, #0x10 - cmp r1, r0 - bge _021EE574 -_021EE572: - b _021EE6B0 -_021EE574: - ldr r1, [r4, #0xc] - add r2, sp, #0x10 - ldr r0, [r1] - ldr r1, [r1, #8] - add r3, sp, #0xc - bl MOD05_021EF4F8 - ldr r0, [sp, #0x10] - ldr r1, [sp, #0xc] - add r2, r5, #0 - bl MOD05_021EF2AC - ldr r3, [r4, #0xc] - add r2, r4, #0 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3] - str r0, [r2] - ldr r0, [r4, #8] - lsr r2, r0, #0x1f - lsl r1, r0, #0x11 - sub r1, r1, r2 - mov r0, #0x11 - ror r1, r0 - add r0, r2, r1 - beq _021EE5B2 - mov r0, #1 - bl FUN_020336A0 - cmp r0, #0 - bne _021EE692 -_021EE5B2: - ldr r0, [r4, #8] - lsr r2, r0, #0x1f - lsl r1, r0, #0x11 - sub r1, r1, r2 - mov r0, #0x11 - ror r1, r0 - add r0, r2, r1 - beq _021EE5C6 - bl GF_AssertFail -_021EE5C6: - mov r0, #0 - str r0, [r4, #0x18] - str r0, [r4, #0x10] - str r0, [r4, #0x14] - b _021EE6B0 -_021EE5D0: - ldr r2, [r4, #0xc] - ldr r3, [r4] - ldr r7, [r2] - cmp r3, r7 - beq _021EE5E8 - ldr r1, [r4, #8] - ldr r0, [r2, #8] - cmp r1, r0 - beq _021EE5E8 - bl GF_AssertFail - b _021EE6B0 -_021EE5E8: - cmp r3, r7 - bne _021EE5F4 - ldr r1, [r4, #8] - ldr r0, [r2, #8] - cmp r1, r0 - beq _021EE6B0 -_021EE5F4: - mov r3, #1 - str r3, [r4, #0x18] - ldr r2, [r4, #0xc] - ldr r0, [r4] - ldr r1, [r2] - cmp r0, r1 - beq _021EE648 - cmp r0, r1 - ble _021EE612 - str r4, [r4, #0x10] - ldr r0, [r4, #0xc] - str r0, [r4, #0x14] - mov r0, #3 - strb r0, [r4, #0x1c] - b _021EE618 -_021EE612: - str r2, [r4, #0x10] - str r4, [r4, #0x14] - strb r3, [r4, #0x1c] -_021EE618: - ldr r0, [r4] - lsr r2, r0, #0x1f - lsl r1, r0, #0x11 - sub r1, r1, r2 - mov r0, #0x11 - ror r1, r0 - add r0, r2, r1 - beq _021EE632 - mov r0, #1 - bl FUN_020336A0 - cmp r0, #0 - bne _021EE692 -_021EE632: - ldr r0, [r4] - lsr r2, r0, #0x1f - lsl r1, r0, #0x11 - sub r1, r1, r2 - mov r0, #0x11 - ror r1, r0 - add r0, r2, r1 - beq _021EE6A8 - bl GF_AssertFail - b _021EE6A8 -_021EE648: - add r1, r5, #0 - add r1, #0xd8 - add r0, r5, #0 - ldr r1, [r1] - add r0, #0xd4 - ldr r0, [r0] - ldr r1, [r1, #8] - cmp r0, r1 - ble _021EE66A - add r0, r4, #0 - add r0, #8 - str r0, [r4, #0x10] - ldr r0, [r4, #0xc] - add r0, #8 - str r0, [r4, #0x14] - mov r0, #4 - b _021EE676 -_021EE66A: - add r2, #8 - add r0, r4, #0 - str r2, [r4, #0x10] - add r0, #8 - str r0, [r4, #0x14] - mov r0, #2 -_021EE676: - strb r0, [r4, #0x1c] - ldr r0, [r4, #8] - lsr r2, r0, #0x1f - lsl r1, r0, #0x11 - sub r1, r1, r2 - mov r0, #0x11 - ror r1, r0 - add r0, r2, r1 - beq _021EE694 - mov r0, #1 - bl FUN_020336A0 - cmp r0, #0 - beq _021EE694 -_021EE692: - b _021EE8C2 -_021EE694: - ldr r0, [r4, #8] - lsr r2, r0, #0x1f - lsl r1, r0, #0x11 - sub r1, r1, r2 - mov r0, #0x11 - ror r1, r0 - add r0, r2, r1 - beq _021EE6A8 - bl GF_AssertFail -_021EE6A8: - ldrb r0, [r4, #0x1c] - add r1, r5, #0 - bl MOD05_021EF458 -_021EE6B0: - add r0, r5, #0 - add r0, #0xb4 - ldr r0, [r0] - cmp r0, #3 - bls _021EE6BC - b _021EE818 -_021EE6BC: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EE6C8: ; jump table - .short _021EE6D0 - _021EE6C8 - 2 ; case 0 - .short _021EE726 - _021EE6C8 - 2 ; case 1 - .short _021EE818 - _021EE6C8 - 2 ; case 2 - .short _021EE804 - _021EE6C8 - 2 ; case 3 -_021EE6D0: - add r0, r6, #0 - add r0, #0x22 - ldrb r0, [r0] - add r1, r6, r0 - add r1, #0x20 - ldrb r1, [r1] - lsl r1, r1, #2 - add r1, r5, r1 - add r1, #0x80 - ldr r1, [r1] - cmp r1, #1 - beq _021EE710 - add r1, r5, #0 - add r1, #0xc4 - ldr r1, [r1] - add r4, r5, #0 - str r1, [sp] - str r5, [sp, #4] - str r6, [sp, #8] - add r4, #0xf4 - add r1, r5, #0 - add r2, r5, #0 - add r3, r5, #0 - ldr r4, [r4] - add r1, #0xb8 - add r2, #0xbc - add r3, #0xc0 - ldr r1, [r1] - ldr r2, [r2] - ldr r3, [r3] - ldr r4, [r4, #4] - blx r4 -_021EE710: - add r0, r6, #0 - add r0, #0x22 - ldrb r0, [r0] - add r6, #0x22 - mov r1, #1 - add r0, r0, #1 - strb r0, [r6] - add r0, r5, #0 - add r0, #0xb4 - str r1, [r0] - b _021EE818 -_021EE726: - add r0, r6, #0 - add r0, #0x22 - ldrb r0, [r0] - sub r0, r0, #1 - add r0, r6, r0 - add r0, #0x20 - ldrb r0, [r0] - lsl r0, r0, #2 - add r0, r5, r0 - add r0, #0x80 - ldr r0, [r0] - cmp r0, #1 - bne _021EE75E - add r0, r6, #0 - bl MOD05_021EDEAC - add r1, r6, #0 - add r1, #0x22 - ldrb r1, [r1] - mov r0, #0 - sub r1, r1, #1 - add r1, r6, r1 - add r1, #0x20 - ldrb r1, [r1] - lsl r1, r1, #2 - add r1, r5, r1 - add r1, #0x80 - str r0, [r1] -_021EE75E: - add r0, r6, #0 - add r0, #0x22 - ldrb r0, [r0] - cmp r0, #2 - bhi _021EE818 - add r0, r6, #0 - add r0, #0x10 - bl MOD05_021EE45C - cmp r0, #1 - bne _021EE818 - add r0, r6, #0 - add r0, #0x22 - ldrb r0, [r0] - cmp r0, #2 - blo _021EE784 - mov r0, #1 - str r0, [r6, #0x24] - b _021EE78C -_021EE784: - add r0, r5, #0 - mov r1, #0 - add r0, #0xb4 - str r1, [r0] -_021EE78C: - add r0, r6, #0 - add r0, #0x22 - ldrb r0, [r0] - sub r0, r0, #1 - lsl r0, r0, #2 - ldr r2, [r6, r0] - ldr r0, _021EE8C8 ; =0x00000864 - ldr r1, [r2, r0] - cmp r1, #1 - bne _021EE7C4 - sub r0, #0x10 - ldr r0, [r2, r0] - bl NNS_G3dGetMdlSet - add r7, r0, #0 - ldrh r0, [r7, #0xe] - add r0, r7, r0 - ldr r4, [r0, #0xc] - add r0, r5, #0 - add r0, #0xb8 - ldr r0, [r0] - bl MOD05_021F4CA8 - cmp r0, #1 - bne _021EE7C4 - add r0, r7, r4 - bl MOD05_021DB5EC -_021EE7C4: - add r0, r5, #0 - add r0, #0xfc - ldr r3, [r0] - cmp r3, #0 - beq _021EE818 - add r0, r6, #0 - add r0, #0x22 - ldrb r0, [r0] - mov r2, #0x86 - lsl r2, r2, #4 - sub r0, r0, #1 - lsl r0, r0, #2 - ldr r4, [r6, r0] - ldr r1, [r4, r2] - cmp r1, #0 - blt _021EE818 - add r0, r5, #0 - add r6, r5, #0 - add r0, #0xc0 - add r6, #0xc4 - ldr r0, [r0] - ldr r6, [r6] - mul r6, r0 - cmp r1, r6 - bge _021EE818 - mov r0, #1 - lsl r0, r0, #8 - add r2, #8 - ldr r0, [r5, r0] - ldr r2, [r4, r2] - blx r3 - b _021EE818 -_021EE804: - add r6, #0x10 - add r0, r6, #0 - bl MOD05_021EE45C - cmp r0, #1 - bne _021EE818 - add r0, r5, #0 - mov r1, #0 - add r0, #0xa0 - strb r1, [r0] -_021EE818: - add r0, r5, #0 - add r0, #0xa0 - ldrb r0, [r0] - cmp r0, #0 - bne _021EE83A - add r0, r5, #0 - mov r1, #0 - add r0, #0xa2 - strb r1, [r0] - add r0, r5, #0 - add r0, #0xa1 - strb r1, [r0] - mov r0, #2 - add r5, #0xb4 - add sp, #0x14 - str r0, [r5] - pop {r4, r5, r6, r7, pc} -_021EE83A: - add r0, r5, #0 - bl MOD05_021EF0F0 - cmp r0, #1 - bne _021EE8C2 - add r0, r5, #0 - add r0, #0xa2 - ldrb r1, [r0] - mov r0, #0x30 - mov r2, #0 - mul r0, r1 - add r0, r5, r0 - str r2, [r0, #0x2c] - add r0, r5, #0 - bl MOD05_021EF100 - add r0, r5, #0 - add r0, #0xa0 - ldrb r0, [r0] - sub r1, r0, #1 - add r0, r5, #0 - add r0, #0xa0 - strb r1, [r0] - add r0, r5, #0 - add r0, #0xa2 - ldrb r0, [r0] - add r0, r0, #1 - lsr r2, r0, #0x1f - lsl r1, r0, #0x1f - sub r1, r1, r2 - mov r0, #0x1f - ror r1, r0 - add r0, r5, #0 - add r1, r2, r1 - add r0, #0xa2 - strb r1, [r0] - add r0, r5, #0 - add r0, #0xa0 - ldrb r0, [r0] - cmp r0, #0 - beq _021EE890 - mov r1, #0 - b _021EE8A0 -_021EE890: - add r0, r5, #0 - mov r1, #0 - add r0, #0xa2 - strb r1, [r0] - add r0, r5, #0 - add r0, #0xa1 - strb r1, [r0] - mov r1, #2 -_021EE8A0: - add r0, r5, #0 - add r0, #0xb4 - str r1, [r0] - ldr r0, [r5, #0x6c] - cmp r0, #1 - bne _021EE8C2 - mov r0, #0 - str r0, [r5, #0x6c] - add r0, r5, #0 - add r0, #0x70 - ldrb r0, [r0] - add r1, r5, #0 - bl MOD05_021EF118 - add r0, r5, #0 - bl MOD05_021EF094 -_021EE8C2: - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - nop -_021EE8C8: .word 0x00000864 - - thumb_func_start MOD05_021EE8CC -MOD05_021EE8CC: ; 0x021EE8CC - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - ldr r4, [sp, #0x34] - str r2, [sp, #0x10] - add r7, r0, #0 - ldr r0, [r4, #0x6c] - add r5, r3, #0 - str r1, [sp, #0xc] - ldr r6, [sp, #0x30] - cmp r0, #1 - bne _021EE8E6 - bl GF_AssertFail -_021EE8E6: - add r0, r6, #0 - add r1, r4, #0 - add r2, sp, #0x14 - bl MOD05_021EEF9C - cmp r0, #1 - bne _021EE964 - add r1, sp, #0x14 - ldrb r1, [r1] - add r0, r4, #0 - bl MOD05_021EDE7C - add r0, r4, #0 - add r0, #0xa0 - ldrb r0, [r0] - cmp r0, #2 - blo _021EE948 - mov r0, #1 - str r0, [r4, #0x6c] - ldr r0, [sp, #0xc] - str r7, [r4, #0x74] - str r0, [r4, #0x78] - add r1, r4, #0 - ldr r0, [sp, #0x10] - add r1, #0x7c - strb r0, [r1] - add r0, r4, #0 - add r0, #0x7d - strb r5, [r0] - ldr r0, [sp, #0x10] - add r2, r4, #0 - add r2, #0x90 - lsl r1, r0, #2 - ldr r0, [r2, r1] - str r0, [r4, #0x64] - lsl r0, r5, #2 - ldr r3, [r2, r0] - str r3, [r4, #0x68] - add r4, #0x70 - strb r6, [r4] - ldr r3, [r2, r1] - mov r1, #0x86 - lsl r1, r1, #4 - str r7, [r3, r1] - ldr r2, [r2, r0] - ldr r0, [sp, #0xc] - add sp, #0x18 - str r0, [r2, r1] - pop {r3, r4, r5, r6, r7, pc} -_021EE948: - add r0, r4, #0 - str r5, [sp] - add r0, #0xa1 - ldrb r0, [r0] - ldr r2, [sp, #0xc] - add r1, r7, #0 - str r0, [sp, #4] - str r6, [sp, #8] - ldr r3, [sp, #0x10] - add r0, r4, #0 - bl MOD05_021EE470 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} -_021EE964: - add r0, r4, #0 - str r5, [sp] - add r0, #0xa1 - ldrb r0, [r0] - ldr r2, [sp, #0xc] - add r1, r7, #0 - str r0, [sp, #4] - str r6, [sp, #8] - ldr r3, [sp, #0x10] - add r0, r4, #0 - bl MOD05_021EE470 - cmp r0, #1 - beq _021EE984 - bl GF_AssertFail -_021EE984: - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EE988 -MOD05_021EE988: ; 0x021EE988 - push {r4, r5, r6, lr} - add r6, r1, #0 - add r4, r6, #0 - lsl r5, r0, #2 - add r4, #0x90 - ldr r1, [r4, r5] - ldr r0, _021EE9CC ; =0x00000864 - mov r2, #0 - str r2, [r1, r0] - ldr r1, [r4, r5] - sub r0, #8 - ldr r0, [r1, r0] - bl MOD05_021F43CC - ldr r1, [r4, r5] - ldr r0, _021EE9D0 ; =0x00000868 - ldr r0, [r1, r0] - bl MOD05_021E7C1C - mov r0, #0 - mov r2, #0x86 - ldr r1, [r4, r5] - mvn r0, r0 - lsl r2, r2, #4 - str r0, [r1, r2] - ldr r1, [r4, r5] - sub r2, #0x60 - bl MIi_CpuClearFast - add r0, r6, r5 - mov r1, #1 - add r0, #0x80 - str r1, [r0] - pop {r4, r5, r6, pc} - .balign 4, 0 -_021EE9CC: .word 0x00000864 -_021EE9D0: .word 0x00000868 - - thumb_func_start MOD05_021EE9D4 -MOD05_021EE9D4: ; 0x021EE9D4 - push {r3, r4, r5, r6, r7, lr} - ldr r4, [sp, #0x18] - add r5, r1, #0 - add r1, r4, #0 - add r6, r0, #0 - add r7, r2, #0 - str r3, [sp] - bl MOD05_021EE988 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021EE988 - add r4, #0x90 - lsl r1, r6, #2 - lsl r5, r5, #2 - lsl r2, r7, #2 - ldr r0, [r4, r1] - ldr r3, [r4, r5] - ldr r6, [r4, r2] - str r6, [r4, r1] - ldr r1, [sp] - lsl r6, r1, #2 - ldr r1, [r4, r6] - str r1, [r4, r5] - str r0, [r4, r2] - str r3, [r4, r6] - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EEA0C -MOD05_021EEA0C: ; 0x021EEA0C - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - str r1, [sp, #8] - add r7, r0, #0 - ldr r0, [sp, #8] - add r6, r2, #0 - cmp r0, #4 - bls _021EEA1E - b _021EED32 -_021EEA1E: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EEA2A: ; jump table - .short _021EED32 - _021EEA2A - 2 ; case 0 - .short _021EEBA4 - _021EEA2A - 2 ; case 1 - .short _021EEC80 - _021EEA2A - 2 ; case 2 - .short _021EEAD2 - _021EEA2A - 2 ; case 3 - .short _021EEA34 - _021EEA2A - 2 ; case 4 -_021EEA34: - mov r0, #2 - mov r1, #3 - mov r2, #0 - mov r3, #1 - str r6, [sp] - bl MOD05_021EE9D4 - add r0, r6, #0 - add r0, #0xad - ldrb r0, [r0] - cmp r0, #2 - bne _021EEA7E - add r0, r6, #0 - add r0, #0xc0 - ldr r2, [r0] - mov r0, #1 - sub r5, r7, r2 - str r0, [sp, #0x10] - mov r0, #0 - sub r4, r5, #1 - str r0, [sp, #0xc] - cmp r5, #0 - bge _021EEA68 - sub r5, r0, #1 - add r4, r5, #0 - b _021EEAB4 -_021EEA68: - cmp r4, #0 - blt _021EEA78 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EEAB4 -_021EEA78: - mov r4, #0 - mvn r4, r4 - b _021EEAB4 -_021EEA7E: - cmp r0, #3 - bne _021EEAB0 - add r0, r6, #0 - add r0, #0xc0 - ldr r2, [r0] - mov r0, #0 - sub r5, r7, r2 - str r0, [sp, #0x10] - mov r0, #1 - add r4, r5, #1 - str r0, [sp, #0xc] - cmp r5, #0 - bge _021EEA9E - sub r5, r0, #2 - add r4, r5, #0 - b _021EEAB4 -_021EEA9E: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EEAB4 - mov r4, #0 - mvn r4, r4 - b _021EEAB4 -_021EEAB0: - bl GF_AssertFail -_021EEAB4: - ldr r2, [sp, #0x10] - ldr r3, [sp, #0xc] - ldr r0, [sp, #8] - lsl r2, r2, #0x18 - str r0, [sp] - lsl r3, r3, #0x18 - add r0, r5, #0 - add r1, r4, #0 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - str r6, [sp, #4] - bl MOD05_021EE8CC - add sp, #0x14 - pop {r4, r5, r6, r7, pc} -_021EEAD2: - mov r0, #1 - mov r1, #3 - mov r2, #0 - mov r3, #2 - str r6, [sp] - bl MOD05_021EE9D4 - add r0, r6, #0 - add r0, #0xad - ldrb r0, [r0] - cmp r0, #1 - bne _021EEB30 - add r0, r6, #0 - add r0, #0xc0 - ldr r2, [r0] - sub r5, r7, #1 - sub r0, r7, r2 - sub r4, r0, #1 - mov r0, #2 - str r0, [sp, #0x10] - mov r0, #0 - str r0, [sp, #0xc] - cmp r5, #0 - blt _021EEB0E - add r0, r5, #0 - add r1, r7, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EEB14 -_021EEB0E: - mov r5, #0 - mvn r5, r5 - add r4, r5, #0 -_021EEB14: - cmp r4, #0 - blt _021EEB2A - add r2, r6, #0 - add r2, #0xc0 - ldr r2, [r2] - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021EDE34 - cmp r0, #0 - bne _021EEB86 -_021EEB2A: - mov r4, #0 - mvn r4, r4 - b _021EEB86 -_021EEB30: - cmp r0, #3 - bne _021EEB82 - add r0, r6, #0 - add r0, #0xc0 - ldr r2, [r0] - sub r5, r7, #1 - add r0, r7, r2 - sub r4, r0, #1 - mov r0, #0 - str r0, [sp, #0x10] - mov r0, #2 - str r0, [sp, #0xc] - cmp r5, #0 - blt _021EEB58 - add r0, r5, #0 - add r1, r7, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EEB5E -_021EEB58: - mov r5, #0 - mvn r5, r5 - add r4, r5, #0 -_021EEB5E: - add r0, r6, #0 - add r0, #0xc0 - ldr r2, [r0] - add r0, r6, #0 - add r0, #0xc4 - ldr r0, [r0] - mul r0, r2 - cmp r0, r4 - ble _021EEB7C - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021EDE34 - cmp r0, #0 - bne _021EEB86 -_021EEB7C: - mov r4, #0 - mvn r4, r4 - b _021EEB86 -_021EEB82: - bl GF_AssertFail -_021EEB86: - ldr r2, [sp, #0x10] - ldr r3, [sp, #0xc] - ldr r0, [sp, #8] - lsl r2, r2, #0x18 - str r0, [sp] - lsl r3, r3, #0x18 - add r0, r5, #0 - add r1, r4, #0 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - str r6, [sp, #4] - bl MOD05_021EE8CC - add sp, #0x14 - pop {r4, r5, r6, r7, pc} -_021EEBA4: - mov r0, #0 - mov r1, #2 - mov r2, #1 - mov r3, #3 - str r6, [sp] - bl MOD05_021EE9D4 - add r0, r6, #0 - add r0, #0xad - ldrb r0, [r0] - cmp r0, #0 - bne _021EEC12 - add r0, r6, #0 - add r0, #0xc0 - ldr r2, [r0] - add r5, r7, #1 - sub r0, r7, r2 - add r4, r0, #1 - mov r0, #3 - str r0, [sp, #0x10] - mov r0, #1 - str r0, [sp, #0xc] - add r0, r6, #0 - add r0, #0xc4 - ldr r0, [r0] - mul r0, r2 - cmp r0, r5 - ble _021EEBE8 - add r0, r5, #0 - add r1, r7, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EEBEE -_021EEBE8: - mov r5, #0 - mvn r5, r5 - add r4, r5, #0 -_021EEBEE: - add r0, r6, #0 - add r0, #0xc0 - ldr r2, [r0] - add r0, r6, #0 - add r0, #0xc4 - ldr r0, [r0] - mul r0, r2 - cmp r0, r4 - ble _021EEC0C - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021EDE34 - cmp r0, #0 - bne _021EEC62 -_021EEC0C: - mov r4, #0 - mvn r4, r4 - b _021EEC62 -_021EEC12: - cmp r0, #2 - bne _021EEC62 - add r0, r6, #0 - add r0, #0xc0 - ldr r2, [r0] - add r5, r7, #1 - add r0, r7, r2 - add r4, r0, #1 - mov r0, #1 - str r0, [sp, #0x10] - mov r0, #3 - str r0, [sp, #0xc] - add r0, r6, #0 - add r0, #0xc4 - ldr r0, [r0] - mul r0, r2 - cmp r0, r5 - ble _021EEC42 - add r0, r5, #0 - add r1, r7, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EEC48 -_021EEC42: - mov r5, #0 - mvn r5, r5 - add r4, r5, #0 -_021EEC48: - cmp r4, #0 - blt _021EEC5E - add r2, r6, #0 - add r2, #0xc0 - ldr r2, [r2] - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021EDE34 - cmp r0, #0 - bne _021EEC62 -_021EEC5E: - mov r4, #0 - mvn r4, r4 -_021EEC62: - ldr r2, [sp, #0x10] - ldr r3, [sp, #0xc] - ldr r0, [sp, #8] - lsl r2, r2, #0x18 - str r0, [sp] - lsl r3, r3, #0x18 - add r0, r5, #0 - add r1, r4, #0 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - str r6, [sp, #4] - bl MOD05_021EE8CC - add sp, #0x14 - pop {r4, r5, r6, r7, pc} -_021EEC80: - mov r0, #0 - mov r1, #1 - mov r2, #2 - mov r3, #3 - str r6, [sp] - bl MOD05_021EE9D4 - add r0, r6, #0 - add r0, #0xad - ldrb r0, [r0] - cmp r0, #0 - bne _021EECD0 - add r0, r6, #0 - add r0, #0xc0 - ldr r2, [r0] - mov r0, #3 - str r0, [sp, #0x10] - mov r0, #2 - str r0, [sp, #0xc] - add r0, r6, #0 - add r0, #0xc4 - ldr r0, [r0] - add r5, r7, r2 - mul r0, r2 - sub r4, r5, #1 - cmp r0, r5 - bgt _021EECBE - ldr r0, [sp, #0xc] - sub r5, r0, #3 - add r4, r5, #0 - b _021EED14 -_021EECBE: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EED14 - mov r4, #0 - mvn r4, r4 - b _021EED14 -_021EECD0: - cmp r0, #1 - bne _021EED10 - add r0, r6, #0 - add r0, #0xc0 - ldr r2, [r0] - mov r0, #2 - str r0, [sp, #0x10] - mov r0, #3 - str r0, [sp, #0xc] - add r0, r6, #0 - add r0, #0xc4 - ldr r0, [r0] - add r5, r7, r2 - mul r0, r2 - add r4, r5, #1 - cmp r0, r5 - bgt _021EECFA - ldr r0, [sp, #0xc] - sub r5, r0, #4 - add r4, r5, #0 - b _021EED14 -_021EECFA: - cmp r0, r4 - ble _021EED0A - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EED14 -_021EED0A: - mov r4, #0 - mvn r4, r4 - b _021EED14 -_021EED10: - bl GF_AssertFail -_021EED14: - ldr r2, [sp, #0x10] - ldr r3, [sp, #0xc] - ldr r0, [sp, #8] - lsl r2, r2, #0x18 - str r0, [sp] - lsl r3, r3, #0x18 - add r0, r5, #0 - add r1, r4, #0 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - str r6, [sp, #4] - bl MOD05_021EE8CC - add sp, #0x14 - pop {r4, r5, r6, r7, pc} -_021EED32: - bl GF_AssertFail - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EED3C -MOD05_021EED3C: ; 0x021EED3C - push {r4, r5, r6, r7, lr} - sub sp, #0x44 - add r5, r1, #0 - add r4, r5, #0 - lsl r6, r0, #2 - mov r0, #0x86 - add r3, sp, #0x38 - mov r1, #0 - str r1, [r3] - str r1, [r3, #4] - str r2, [sp, #4] - add r2, r5, #0 - add r4, #0x90 - str r1, [r3, #8] - add r2, #0xbc - ldr r1, [r4, r6] - lsl r0, r0, #4 - ldr r0, [r1, r0] - add r1, r5, #0 - add r1, #0xc0 - ldr r1, [r1] - ldr r2, [r2] - bl MOD05_021EF300 - ldr r1, [r4, r6] - ldr r0, _021EEDD4 ; =0x00000864 - ldr r0, [r1, r0] - cmp r0, #1 - bne _021EEDA6 - ldr r3, _021EEDD8 ; =UNK05_021F8B14 - add r2, sp, #0x2c - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3] - ldr r3, _021EEDDC ; =UNK05_021F8B20 - str r0, [r2] - add r2, sp, #8 - mov r7, #4 -_021EED88: - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - sub r7, r7, #1 - bne _021EED88 - ldr r0, [r3] - add r3, sp, #0x2c - str r0, [r2] - mov r0, #2 - ldr r1, [r4, r6] - lsl r0, r0, #0xa - add r0, r1, r0 - add r1, sp, #0x38 - add r2, sp, #8 - bl FUN_0201B26C -_021EEDA6: - ldr r4, [r4, r6] - ldr r0, _021EEDD4 ; =0x00000864 - ldr r0, [r4, r0] - cmp r0, #1 - bne _021EEDCE - add r0, r5, #0 - add r0, #0xb8 - ldr r0, [r0] - bl MOD05_021F4CA8 - add r2, r0, #0 - ldr r0, _021EEDE0 ; =0x00000868 - add r5, #0xb8 - ldr r0, [r4, r0] - ldr r3, [sp, #4] - str r0, [sp] - ldr r1, [r5] - add r0, sp, #0x38 - bl MOD05_021E7DD8 -_021EEDCE: - add sp, #0x44 - pop {r4, r5, r6, r7, pc} - nop -_021EEDD4: .word 0x00000864 -_021EEDD8: .word UNK05_021F8B14 -_021EEDDC: .word UNK05_021F8B20 -_021EEDE0: .word 0x00000868 - - thumb_func_start MOD05_021EEDE4 -MOD05_021EEDE4: ; 0x021EEDE4 - push {r3, r4, r5, r6, r7, lr} - add r7, r2, #0 - add r5, r1, #0 - add r6, r0, #0 - add r1, r7, #0 - bl _u32_div_f - add r4, r1, #0 - add r0, r6, #0 - add r1, r7, #0 - bl _u32_div_f - lsr r0, r0, #5 - add r1, r0, #0 - lsr r2, r4, #5 - mul r1, r5 - add r0, r2, r1 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EEE08 -MOD05_021EEE08: ; 0x021EEE08 - mul r2, r1 - add r0, r0, r2 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021EEE10 -MOD05_021EEE10: ; 0x021EEE10 - push {r3, r4, r5, r6, r7, lr} - add r7, r2, #0 - add r5, r1, #0 - add r6, r0, #0 - add r1, r7, #0 - bl _u32_div_f - add r4, r1, #0 - add r0, r6, #0 - add r1, r7, #0 - bl _u32_div_f - lsr r0, r0, #5 - add r1, r0, #0 - lsr r2, r4, #5 - mul r1, r5 - add r0, r2, r1 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EEE34 -MOD05_021EEE34: ; 0x021EEE34 - push {r3, lr} - cmp r0, #0 - bne _021EEE3E - mov r0, #3 - pop {r3, pc} -_021EEE3E: - cmp r0, #1 - bne _021EEE46 - mov r0, #2 - pop {r3, pc} -_021EEE46: - cmp r0, #2 - bne _021EEE4E - mov r0, #1 - pop {r3, pc} -_021EEE4E: - cmp r0, #3 - bne _021EEE56 - mov r0, #0 - pop {r3, pc} -_021EEE56: - bl GF_AssertFail - mov r0, #0 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EEE60 -MOD05_021EEE60: ; 0x021EEE60 - push {r3, r4, r5, lr} - add r5, r2, #0 - add r4, r3, #0 - cmp r0, #4 - bhi _021EEEC0 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EEE76: ; jump table - .short _021EEEC0 - _021EEE76 - 2 ; case 0 - .short _021EEE80 - _021EEE76 - 2 ; case 1 - .short _021EEE96 - _021EEE76 - 2 ; case 2 - .short _021EEEA4 - _021EEE76 - 2 ; case 3 - .short _021EEEB8 - _021EEE76 - 2 ; case 4 -_021EEE80: - add r0, r4, #0 - add r1, r5, #0 - bl _s32_div_f - add r0, r1, #1 - cmp r0, r5 - blt _021EEE92 - add r0, r4, #0 - pop {r3, r4, r5, pc} -_021EEE92: - add r0, r4, #1 - pop {r3, r4, r5, pc} -_021EEE96: - lsl r1, r1, #5 - add r0, r4, r5 - mul r1, r5 - cmp r0, r1 - blt _021EEEC6 - add r0, r4, #0 - pop {r3, r4, r5, pc} -_021EEEA4: - add r0, r4, #0 - add r1, r5, #0 - bl _s32_div_f - sub r0, r1, #1 - bpl _021EEEB4 - add r0, r4, #0 - pop {r3, r4, r5, pc} -_021EEEB4: - sub r0, r4, #1 - pop {r3, r4, r5, pc} -_021EEEB8: - sub r0, r4, r5 - bpl _021EEEC6 - add r0, r4, #0 - pop {r3, r4, r5, pc} -_021EEEC0: - bl GF_AssertFail - mov r0, #0 -_021EEEC6: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021EEEC8 -MOD05_021EEEC8: ; 0x021EEEC8 - cmp r0, #4 - bhi _021EEF00 - add r2, r0, r0 - add r2, pc - ldrh r2, [r2, #6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_021EEED8: ; jump table - .short _021EEF00 - _021EEED8 - 2 ; case 0 - .short _021EEEFA - _021EEED8 - 2 ; case 1 - .short _021EEEEA - _021EEED8 - 2 ; case 2 - .short _021EEEF2 - _021EEED8 - 2 ; case 3 - .short _021EEEE2 - _021EEED8 - 2 ; case 4 -_021EEEE2: - sub r0, r1, #2 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_021EEEEA: - add r0, r1, #2 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_021EEEF2: - sub r0, r1, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_021EEEFA: - add r0, r1, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 -_021EEF00: - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021EEF04 -MOD05_021EEF04: ; 0x021EEF04 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r4, r2, #0 - bl MOD05_021EEEC8 - cmp r5, r0 - bge _021EEF36 - sub r0, r0, r5 - cmp r0, #1 - bne _021EEF22 - ldrb r0, [r4] - sub r0, r0, #1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - b _021EEF62 -_021EEF22: - cmp r0, #2 - bne _021EEF30 - ldrb r0, [r4] - sub r0, r0, #2 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - b _021EEF62 -_021EEF30: - bl GF_AssertFail - b _021EEF62 -_021EEF36: - cmp r5, r0 - ble _021EEF5E - sub r0, r5, r0 - cmp r0, #1 - bne _021EEF4A - ldrb r0, [r4] - add r0, r0, #1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - b _021EEF62 -_021EEF4A: - cmp r0, #2 - bne _021EEF58 - ldrb r0, [r4] - add r0, r0, #2 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - b _021EEF62 -_021EEF58: - bl GF_AssertFail - b _021EEF62 -_021EEF5E: - bl GF_AssertFail -_021EEF62: - strb r6, [r4] - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EEF68 -MOD05_021EEF68: ; 0x021EEF68 - push {r3, lr} - cmp r0, #4 - bhi _021EEF94 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EEF7A: ; jump table - .short _021EEF94 - _021EEF7A - 2 ; case 0 - .short _021EEF8C - _021EEF7A - 2 ; case 1 - .short _021EEF88 - _021EEF7A - 2 ; case 2 - .short _021EEF90 - _021EEF7A - 2 ; case 3 - .short _021EEF84 - _021EEF7A - 2 ; case 4 -_021EEF84: - mov r0, #2 - pop {r3, pc} -_021EEF88: - mov r0, #4 - pop {r3, pc} -_021EEF8C: - mov r0, #3 - pop {r3, pc} -_021EEF90: - mov r0, #1 - pop {r3, pc} -_021EEF94: - bl GF_AssertFail - mov r0, #0 - pop {r3, pc} - - thumb_func_start MOD05_021EEF9C -MOD05_021EEF9C: ; 0x021EEF9C - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - add r5, r1, #0 - add r7, r2, #0 - mov r4, #0 -_021EEFA6: - ldr r0, [r5, #0x2c] - cmp r0, #1 - bne _021EEFC2 - add r0, r6, #0 - bl MOD05_021EEF68 - add r1, r5, #0 - add r1, #0x30 - ldrb r1, [r1] - cmp r1, r0 - bne _021EEFC2 - strb r4, [r7] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021EEFC2: - add r4, r4, #1 - add r5, #0x30 - cmp r4, #2 - blt _021EEFA6 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EEFD0 -MOD05_021EEFD0: ; 0x021EEFD0 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r0, #0xa1 - ldrb r1, [r0] - mov r0, #0x30 - add r4, r5, #0 - mul r0, r1 - add r0, r5, r0 - ldr r0, [r0, #0x2c] - add r4, #0x64 - cmp r0, #0 - beq _021EEFEC - bl GF_AssertFail -_021EEFEC: - add r1, r5, #0 - add r1, #0xa1 - ldrb r2, [r1] - mov r1, #0x30 - mov r0, #1 - add r3, r2, #0 - mul r3, r1 - add r2, r5, r3 - add r3, r5, #0 - str r0, [r2, #0x2c] - add r3, #0xa1 - ldrb r3, [r3] - ldrb r2, [r4, #0xc] - add r6, r3, #0 - mul r6, r1 - add r3, r5, r6 - add r3, #0x30 - strb r2, [r3] - add r3, r5, #0 - add r3, #0xa1 - ldrb r3, [r3] - ldr r2, [r4, #0x10] - add r6, r3, #0 - mul r6, r1 - add r3, r5, r6 - str r2, [r3, #0x1c] - add r3, r5, #0 - add r3, #0xa1 - ldrb r3, [r3] - ldr r2, [r4, #0x14] - add r6, r3, #0 - mul r6, r1 - add r3, r5, r6 - str r2, [r3, #0x20] - add r3, r5, #0 - add r3, #0xa1 - ldrb r3, [r3] - ldrb r2, [r4, #0x18] - add r6, r3, #0 - mul r6, r1 - add r3, r5, r6 - add r3, #0x24 - strb r2, [r3] - add r3, r5, #0 - add r3, #0xa1 - ldrb r3, [r3] - ldrb r2, [r4, #0x19] - add r6, r3, #0 - mul r6, r1 - add r3, r5, r6 - add r3, #0x25 - strb r2, [r3] - add r3, r5, #0 - add r3, #0xa1 - ldrb r3, [r3] - ldr r2, [r4] - add r6, r3, #0 - mul r6, r1 - add r3, r5, r6 - str r2, [r3, #4] - add r2, r5, #0 - add r2, #0xa1 - ldrb r2, [r2] - ldr r4, [r4, #4] - add r3, r2, #0 - mul r3, r1 - add r2, r5, r3 - add r3, r5, #0 - str r4, [r2, #8] - add r3, #0xa1 - ldrb r3, [r3] - mov r2, #0 - add r4, r3, #0 - mul r4, r1 - add r3, r5, r4 - add r3, #0x26 - strb r2, [r3] - add r3, r5, #0 - add r3, #0xa1 - ldrb r3, [r3] - mul r1, r3 - add r1, r5, r1 - str r2, [r1, #0x28] - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021EF094 -MOD05_021EF094: ; 0x021EF094 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r0, #0xa0 - ldrb r0, [r0] - add r4, r5, #0 - add r4, #0x64 - cmp r0, #2 - blo _021EF0A8 - bl GF_AssertFail -_021EF0A8: - add r0, r5, #0 - bl MOD05_021EEFD0 - cmp r0, #1 - beq _021EF0B6 - bl GF_AssertFail -_021EF0B6: - mov r0, #0x86 - ldr r2, [r4, #0x10] - ldr r1, [r4] - lsl r0, r0, #4 - str r2, [r1, r0] - ldr r2, [r4, #0x14] - ldr r1, [r4, #4] - str r2, [r1, r0] - add r0, r5, #0 - add r0, #0xa0 - ldrb r0, [r0] - add r1, r0, #1 - add r0, r5, #0 - add r0, #0xa0 - strb r1, [r0] - add r0, r5, #0 - add r0, #0xa1 - ldrb r0, [r0] - add r5, #0xa1 - add r0, r0, #1 - lsr r2, r0, #0x1f - lsl r1, r0, #0x1f - sub r1, r1, r2 - mov r0, #0x1f - ror r1, r0 - add r0, r2, r1 - strb r0, [r5] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EF0F0 -MOD05_021EF0F0: ; 0x021EF0F0 - add r1, r0, #0 - add r1, #0xa2 - ldrb r2, [r1] - mov r1, #0x30 - mul r1, r2 - add r0, r0, r1 - ldr r0, [r0, #0x28] - bx lr - - thumb_func_start MOD05_021EF100 -MOD05_021EF100: ; 0x021EF100 - mov r3, #0 - add r2, r3, #0 -_021EF104: - lsl r1, r3, #2 - add r1, r0, r1 - add r1, #0x80 - str r2, [r1] - add r1, r3, #1 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - cmp r3, #4 - blo _021EF104 - bx lr - - thumb_func_start MOD05_021EF118 -MOD05_021EF118: ; 0x021EF118 - cmp r0, #4 - bhi _021EF168 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EF128: ; jump table - .short _021EF168 - _021EF128 - 2 ; case 0 - .short _021EF140 - _021EF128 - 2 ; case 1 - .short _021EF14E - _021EF128 - 2 ; case 2 - .short _021EF15C - _021EF128 - 2 ; case 3 - .short _021EF132 - _021EF128 - 2 ; case 4 -_021EF132: - add r0, r1, #0 - mov r2, #1 - add r0, #0x88 - str r2, [r0] - add r1, #0x8c - str r2, [r1] - bx lr -_021EF140: - add r0, r1, #0 - mov r2, #1 - add r0, #0x80 - str r2, [r0] - add r1, #0x88 - str r2, [r1] - bx lr -_021EF14E: - add r0, r1, #0 - mov r2, #1 - add r0, #0x80 - str r2, [r0] - add r1, #0x84 - str r2, [r1] - bx lr -_021EF15C: - add r0, r1, #0 - mov r2, #1 - add r0, #0x84 - str r2, [r0] - add r1, #0x8c - str r2, [r1] -_021EF168: - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021EF16C -MOD05_021EF16C: ; 0x021EF16C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - add r5, r0, #0 - add r4, r3, #0 - add r6, r1, #0 - add r7, r2, #0 - bl MOD05_021EDFBC - add r2, r5, #0 - add r3, r5, #0 - str r4, [sp] - add r0, sp, #0x10 - str r0, [sp, #4] - add r2, #0xc0 - add r3, #0xc4 - ldr r2, [r2] - ldr r3, [r3] - add r0, r6, #0 - add r1, r7, #0 - bl MOD05_021EDED0 - mov r6, #0 - add r7, sp, #0x10 -_021EF19A: - lsl r4, r6, #2 - bl MOD05_021F4328 - add r1, r5, r4 - add r1, #0x90 - ldr r2, [r1] - ldr r1, _021EF1F8 ; =0x0000085C - str r0, [r2, r1] - add r0, r5, r4 - add r0, #0x90 - ldr r1, [r0] - ldr r0, _021EF1F8 ; =0x0000085C - ldr r0, [r1, r0] - bl MOD05_021F4454 - add r0, r5, #0 - add r0, #0xb8 - ldr r0, [r0] - bl MOD05_021F4CA8 - add r1, r5, #0 - add r1, #0xc0 - ldr r1, [r1] - add r2, r5, #0 - str r1, [sp] - add r1, r5, #0 - add r1, #0xc4 - ldr r1, [r1] - add r3, r5, #0 - str r1, [sp, #4] - str r0, [sp, #8] - str r5, [sp, #0xc] - add r2, #0xb8 - add r3, #0xbc - ldr r0, [r7, r4] - ldr r2, [r2] - ldr r3, [r3] - add r1, r6, #0 - bl MOD05_021EE2A4 - add r0, r6, #1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r6, #4 - blo _021EF19A - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021EF1F8: .word 0x0000085C - - thumb_func_start MOD05_021EF1FC -MOD05_021EF1FC: ; 0x021EF1FC - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - add r5, r0, #0 - add r4, r3, #0 - add r6, r1, #0 - add r7, r2, #0 - bl MOD05_021EE050 - add r2, r5, #0 - add r3, r5, #0 - str r4, [sp] - add r0, sp, #0x10 - str r0, [sp, #4] - add r2, #0xc0 - add r3, #0xc4 - ldr r2, [r2] - ldr r3, [r3] - add r0, r6, #0 - add r1, r7, #0 - bl MOD05_021EDED0 - mov r4, #0 - add r7, r4, #0 -_021EF22A: - lsl r6, r4, #2 - add r0, r5, r6 - add r0, #0x90 - ldr r1, [r0] - ldr r0, _021EF278 ; =0x0000085C - str r7, [r1, r0] - add r0, r5, #0 - add r0, #0xb8 - ldr r0, [r0] - bl MOD05_021F4CA8 - add r1, r5, #0 - add r1, #0xc0 - ldr r1, [r1] - add r2, r5, #0 - str r1, [sp] - add r1, r5, #0 - add r1, #0xc4 - ldr r1, [r1] - add r3, r5, #0 - str r1, [sp, #4] - str r0, [sp, #8] - str r5, [sp, #0xc] - add r0, sp, #0x10 - add r2, #0xb8 - add r3, #0xbc - ldr r0, [r0, r6] - ldr r2, [r2] - ldr r3, [r3] - add r1, r4, #0 - bl MOD05_021EE38C - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #4 - blo _021EF22A - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021EF278: .word 0x0000085C - - thumb_func_start MOD05_021EF27C -MOD05_021EF27C: ; 0x021EF27C - push {r4, lr} - add r1, r0, #0 - mov r3, #0 - add r1, #0xa2 - strb r3, [r1] - add r1, r0, #0 - add r1, #0xa1 - strb r3, [r1] - add r1, r0, #0 - add r1, #0xa0 - strb r3, [r1] - add r4, r0, #0 - add r2, r3, #0 - mov r1, #1 -_021EF298: - str r2, [r4, #0x2c] - str r1, [r4, #0x28] - add r3, r3, #1 - add r4, #0x30 - cmp r3, #2 - blt _021EF298 - bl MOD05_021EF100 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EF2AC -MOD05_021EF2AC: ; 0x021EF2AC - push {r4, lr} - add r4, r2, #0 - add r2, #0xc8 - ldr r2, [r2] - bl MOD05_021EEE08 - add r1, r4, #0 - add r1, #0xa8 - str r0, [r1] - add r0, r4, #0 - add r1, r4, #0 - add r0, #0xa8 - add r1, #0xc8 - ldr r0, [r0] - ldr r1, [r1] - bl MOD05_021EF620 - add r1, r4, #0 - add r1, #0xad - strb r0, [r1] - add r0, r4, #0 - add r0, #0xad - ldrb r0, [r0] - bl MOD05_021EEE34 - add r1, r4, #0 - add r1, #0xac - strb r0, [r1] - add r0, r4, #0 - add r1, r4, #0 - add r2, r4, #0 - add r0, #0xa8 - add r1, #0xc0 - add r2, #0xc8 - ldr r0, [r0] - ldr r1, [r1] - ldr r2, [r2] - bl MOD05_021EEE10 - add r4, #0xa4 - str r0, [r4] - pop {r4, pc} - - thumb_func_start MOD05_021EF300 -MOD05_021EF300: ; 0x021EF300 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r7, r2, #0 - mov r2, #1 - add r5, r3, #0 - lsl r2, r2, #0x14 - str r2, [r5] - str r2, [r5, #8] - mov r2, #0 - add r4, r0, #0 - mvn r2, r2 - str r1, [sp, #4] - cmp r4, r2 - beq _021EF362 - bl _s32_div_f - lsl r0, r1, #0x10 - lsr r6, r0, #0x10 - ldr r1, [sp, #4] - add r0, r4, #0 - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r7, #0 - bl MapMatrix_GetWidth - str r0, [sp, #8] - add r0, r7, #0 - bl MapMatrix_GetMatrixID - add r1, r0, #0 - ldr r0, [sp, #8] - add r2, r6, #0 - str r0, [sp] - add r0, r7, #0 - add r3, r4, #0 - bl MapMatrix_GetMapAltitude - lsl r0, r0, #0xf - str r0, [r5, #4] - ldr r1, [r5] - lsl r0, r6, #0x15 - add r0, r1, r0 - str r0, [r5] - ldr r1, [r5, #8] - lsl r0, r4, #0x15 - add r0, r1, r0 - str r0, [r5, #8] -_021EF362: - add sp, #0xc - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EF368 -MOD05_021EF368: ; 0x021EF368 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - str r1, [sp] - mov r1, #0x41 - add r5, r0, #0 - mov r0, #4 - lsl r1, r1, #2 - str r2, [sp, #4] - add r6, r3, #0 - bl AllocFromHeap - mov r2, #0x41 - mov r1, #0 - lsl r2, r2, #2 - add r4, r0, #0 - bl MI_CpuFill8 - cmp r6, #0 - bne _021EF39A - add r0, r4, #0 - ldr r1, _021EF42C ; =UNK05_021F8B04 - add r0, #0xf4 - str r1, [r0] - mov r7, #1 - b _021EF3AE -_021EF39A: - cmp r6, #1 - bne _021EF3AA - add r0, r4, #0 - ldr r1, _021EF430 ; =UNK05_021F8B0C - add r0, #0xf4 - str r1, [r0] - mov r7, #0 - b _021EF3AE -_021EF3AA: - bl GF_AssertFail -_021EF3AE: - add r0, r7, #0 - bl MOD05_021F3BC0 - str r0, [r4] - add r1, r4, #0 - ldr r0, [sp] - add r1, #0xb8 - str r0, [r1] - add r0, r4, #0 - add r0, #0xbc - str r5, [r0] - add r0, r5, #0 - bl MapMatrix_GetWidth - add r1, r4, #0 - add r1, #0xc0 - str r0, [r1] - add r0, r5, #0 - bl MapMatrix_GetHeight - add r1, r4, #0 - add r1, #0xc4 - str r0, [r1] - add r0, r4, #0 - add r0, #0xc0 - ldr r0, [r0] - lsl r1, r0, #5 - add r0, r4, #0 - add r0, #0xc8 - str r1, [r0] - add r1, r4, #0 - ldr r0, [sp, #4] - add r1, #0xf0 - str r0, [r1] - add r0, r4, #0 - mov r1, #1 - add r0, #0xec - str r1, [r0] - add r0, r4, #0 - bl MOD05_021EF27C - add r0, r4, #0 - mov r1, #0 - add r0, #0xb0 - str r1, [r0] - add r0, r4, #0 - mov r1, #2 - add r0, #0xb4 - str r1, [r0] - mov r0, #0x43 - mov r1, #4 - bl NARC_ctor - add r1, r4, #0 - add r1, #0xf8 - str r0, [r1] - add r0, r4, #0 - mov r1, #0 - add r0, #0xfc - str r1, [r0] - add r0, r4, #0 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021EF42C: .word UNK05_021F8B04 -_021EF430: .word UNK05_021F8B0C - - thumb_func_start MOD05_021EF434 -MOD05_021EF434: ; 0x021EF434 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r5, #0 - add r6, #0xf4 - add r3, r5, #0 - ldr r6, [r6] - add r3, #0xc8 - ldr r3, [r3] - ldr r6, [r6] - add r4, r1, #0 - add r7, r2, #0 - blx r6 - add r0, r4, #0 - add r1, r7, #0 - add r2, r5, #0 - bl MOD05_021EF2AC - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021EF458 -MOD05_021EF458: ; 0x021EF458 - push {r3, r4, r5, r6, r7, lr} - add r5, r1, #0 - add r2, r5, #0 - add r3, r5, #0 - add r1, #0xc4 - add r2, #0xc8 - add r3, #0xa8 - ldr r1, [r1] - ldr r2, [r2] - ldr r3, [r3] - add r6, r0, #0 - bl MOD05_021EEE60 - add r1, r5, #0 - add r2, r5, #0 - add r1, #0xc0 - add r2, #0xc8 - ldr r1, [r1] - ldr r2, [r2] - add r7, r0, #0 - bl MOD05_021EEDE4 - add r1, r5, #0 - add r1, #0xc8 - add r4, r0, #0 - ldr r1, [r1] - add r0, r7, #0 - bl MOD05_021EF620 - add r1, r5, #0 - add r1, #0xa4 - ldr r1, [r1] - cmp r1, r4 - bne _021EF4C0 - add r1, r5, #0 - add r1, #0xad - ldrb r1, [r1] - cmp r1, r0 - beq _021EF4C0 - add r0, r4, #0 - add r1, r6, #0 - add r2, r5, #0 - bl MOD05_021EEA0C - add r1, r5, #0 - add r1, #0xad - add r5, #0xac - ldrb r1, [r1] - add r0, r6, #0 - add r2, r5, #0 - bl MOD05_021EEF04 -_021EF4C0: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EF4C4 -MOD05_021EF4C4: ; 0x021EF4C4 - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - add r5, r0, #0 - add r6, r1, #0 - sub r7, r4, #1 -_021EF4CE: - lsl r0, r4, #2 - add r0, r5, r0 - add r0, #0x90 - ldr r1, [r0] - mov r0, #0x86 - lsl r0, r0, #4 - ldr r0, [r1, r0] - cmp r0, r7 - beq _021EF4EA - add r0, r4, #0 - add r1, r5, #0 - add r2, r6, #0 - bl MOD05_021EED3C -_021EF4EA: - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #4 - blo _021EF4CE - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EF4F8 -MOD05_021EF4F8: ; 0x021EF4F8 - push {r3, r4} - asr r4, r0, #0xf - lsr r4, r4, #0x10 - add r4, r0, r4 - asr r0, r4, #0x10 - str r0, [r2] - asr r0, r1, #0xf - lsr r0, r0, #0x10 - add r0, r1, r0 - asr r0, r0, #0x10 - str r0, [r3] - pop {r3, r4} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021EF514 -MOD05_021EF514: ; 0x021EF514 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - bl ClearFileCache - bl NNS_GfdResetLnkTexVramState - bl NNS_GfdResetLnkPlttVramState - mov r4, #0 - add r6, r5, #4 - mov r7, #0x30 -_021EF52A: - add r0, r4, #0 - mul r0, r7 - add r0, r6, r0 - bl MOD05_021EDEAC - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #2 - blo _021EF52A - mov r6, #0 - add r7, r6, #0 -_021EF542: - lsl r4, r6, #2 - add r0, r5, r4 - add r0, #0x90 - ldr r2, [r0] - ldr r0, _021EF59C ; =0x00000864 - mov r1, #0 - str r1, [r2, r0] - add r0, r5, r4 - add r0, #0x90 - ldr r1, [r0] - ldr r0, _021EF5A0 ; =0x0000085C - ldr r0, [r1, r0] - bl MOD05_021F43C0 - add r0, r5, r4 - add r0, #0x90 - ldr r1, [r0] - ldr r0, _021EF5A4 ; =0x00000868 - ldr r0, [r1, r0] - bl MOD05_021E7C14 - add r0, r5, r4 - add r0, #0x90 - ldr r0, [r0] - bl FreeToHeap - add r0, r5, r4 - add r0, #0x90 - str r7, [r0] - add r0, r6, #1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r6, #4 - blo _021EF542 - add r0, r5, #0 - mov r1, #3 - add r0, #0xb4 - str r1, [r0] - add r0, r5, #0 - mov r1, #1 - add r0, #0xb0 - str r1, [r0] - add r5, #0xec - str r7, [r5] - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021EF59C: .word 0x00000864 -_021EF5A0: .word 0x0000085C -_021EF5A4: .word 0x00000868 - - thumb_func_start MOD05_021EF5A8 -MOD05_021EF5A8: ; 0x021EF5A8 - push {r4, lr} - add r4, r0, #0 - add r0, #0xf8 - ldr r0, [r0] - bl NARC_dtor - ldr r0, [r4] - bl MOD05_021F3C30 - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EF5C4 -MOD05_021EF5C4: ; 0x021EF5C4 - add r1, r0, #0 - add r1, #0xb0 - ldr r1, [r1] - cmp r1, #1 - bne _021EF5DA - add r0, #0xa0 - ldrb r0, [r0] - cmp r0, #0 - bne _021EF5DA - mov r0, #1 - bx lr -_021EF5DA: - mov r0, #0 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021EF5E0 -MOD05_021EF5E0: ; 0x021EF5E0 - push {r4, r5} - add r5, r0, #0 - add r4, r1, #0 - add r2, r4, #0 - add r3, r5, #0 - ldmia r3!, {r0, r1} - add r2, #0xcc - stmia r2!, {r0, r1} - ldr r0, [r3] - add r4, #0xd8 - str r0, [r2] - str r5, [r4] - pop {r4, r5} - bx lr - - thumb_func_start MOD05_021EF5FC -MOD05_021EF5FC: ; 0x021EF5FC - mov r1, #0 - add r0, #0xd8 - str r1, [r0] - bx lr - - thumb_func_start MOD05_021EF604 -MOD05_021EF604: ; 0x021EF604 - lsl r0, r0, #2 - add r0, r1, r0 - add r0, #0x90 - ldr r1, [r0] - ldr r0, _021EF614 ; =0x00000868 - ldr r0, [r1, r0] - str r0, [r2] - bx lr - .balign 4, 0 -_021EF614: .word 0x00000868 - - thumb_func_start MOD05_021EF618 -MOD05_021EF618: ; 0x021EF618 - add r0, #0xac - ldrb r0, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021EF620 -MOD05_021EF620: ; 0x021EF620 - push {r4, lr} - add r4, r0, #0 - bl _u32_div_f - lsr r2, r0, #0x1f - lsl r1, r0, #0x1b - sub r1, r1, r2 - mov r0, #0x1b - ror r1, r0 - mov r0, #0x1f - and r0, r4 - add r1, r2, r1 - cmp r0, #0x10 - bge _021EF648 - cmp r1, #0x10 - bge _021EF644 - mov r0, #0 - pop {r4, pc} -_021EF644: - mov r0, #2 - pop {r4, pc} -_021EF648: - cmp r1, #0x10 - bge _021EF650 - mov r0, #1 - pop {r4, pc} -_021EF650: - mov r0, #3 - pop {r4, pc} - - thumb_func_start MOD05_021EF654 -MOD05_021EF654: ; 0x021EF654 - push {r3, r4, r5, lr} - add r4, r2, #0 - add r5, r0, #0 - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - cmp r0, r5 - bne _021EF66A - add r4, #0xac - ldrb r0, [r4] - pop {r3, r4, r5, pc} -_021EF66A: - mov r0, #0 - mvn r0, r0 - cmp r5, r0 - bne _021EF676 - bl GF_AssertFail -_021EF676: - add r0, r4, #0 - add r0, #0xac - ldrb r1, [r0] - cmp r1, #3 - bls _021EF682 - b _021EF820 -_021EF682: - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EF68E: ; jump table - .short _021EF696 - _021EF68E - 2 ; case 0 - .short _021EF6F8 - _021EF68E - 2 ; case 1 - .short _021EF75C - _021EF68E - 2 ; case 2 - .short _021EF7BE - _021EF68E - 2 ; case 3 -_021EF696: - add r0, r4, #0 - add r0, #0xa4 - add r2, r4, #0 - ldr r0, [r0] - add r2, #0xc0 - ldr r2, [r2] - sub r3, r5, r0 - cmp r2, r3 - bne _021EF6B0 - add r0, r1, #2 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF6B0: - cmp r3, #1 - bne _021EF6CA - add r1, r5, #0 - bl MOD05_021EDE58 - cmp r0, #0 - beq _021EF6CA - add r4, #0xac - ldrb r0, [r4] - add r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF6CA: - add r0, r4, #0 - add r1, r4, #0 - add r0, #0xa4 - add r1, #0xc0 - ldr r2, [r1] - ldr r0, [r0] - add r3, r2, #1 - sub r1, r5, r0 - cmp r3, r1 - bne _021EF6F4 - add r1, r5, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EF6F4 - add r4, #0xac - ldrb r0, [r4] - add r0, r0, #3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF6F4: - mov r0, #4 - pop {r3, r4, r5, pc} -_021EF6F8: - add r0, r4, #0 - add r0, #0xa4 - add r2, r4, #0 - ldr r0, [r0] - add r2, #0xc0 - ldr r2, [r2] - sub r3, r5, r0 - cmp r2, r3 - bne _021EF712 - add r0, r1, #2 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF712: - sub r1, r0, r5 - cmp r1, #1 - bne _021EF72E - add r1, r5, #0 - bl MOD05_021EDE58 - cmp r0, #0 - beq _021EF72E - add r4, #0xac - ldrb r0, [r4] - sub r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF72E: - add r0, r4, #0 - add r1, r4, #0 - add r0, #0xa4 - add r1, #0xc0 - ldr r2, [r1] - ldr r0, [r0] - sub r3, r2, #1 - sub r1, r5, r0 - cmp r3, r1 - bne _021EF758 - add r1, r5, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EF758 - add r4, #0xac - ldrb r0, [r4] - add r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF758: - mov r0, #4 - pop {r3, r4, r5, pc} -_021EF75C: - add r0, r4, #0 - add r0, #0xa4 - add r2, r4, #0 - ldr r0, [r0] - add r2, #0xc0 - ldr r2, [r2] - sub r3, r0, r5 - cmp r2, r3 - bne _021EF776 - sub r0, r1, #2 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF776: - sub r1, r2, #1 - cmp r1, r3 - bne _021EF792 - add r1, r5, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EF792 - add r4, #0xac - ldrb r0, [r4] - sub r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF792: - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - sub r1, r5, r0 - cmp r1, #1 - bne _021EF7BA - add r2, r4, #0 - add r2, #0xc0 - ldr r2, [r2] - add r1, r5, #0 - bl MOD05_021EDE58 - cmp r0, #0 - beq _021EF7BA - add r4, #0xac - ldrb r0, [r4] - add r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF7BA: - mov r0, #4 - pop {r3, r4, r5, pc} -_021EF7BE: - add r0, r4, #0 - add r0, #0xa4 - add r2, r4, #0 - ldr r0, [r0] - add r2, #0xc0 - ldr r2, [r2] - sub r3, r0, r5 - cmp r2, r3 - bne _021EF7D8 - sub r0, r1, #2 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF7D8: - add r1, r2, #1 - cmp r1, r3 - bne _021EF7F4 - add r1, r5, #0 - bl MOD05_021EDE58 - cmp r0, #0 - bne _021EF7F4 - add r4, #0xac - ldrb r0, [r4] - sub r0, r0, #3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF7F4: - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - sub r1, r0, r5 - cmp r1, #1 - bne _021EF81C - add r2, r4, #0 - add r2, #0xc0 - ldr r2, [r2] - add r1, r5, #0 - bl MOD05_021EDE58 - cmp r0, #0 - beq _021EF81C - add r4, #0xac - ldrb r0, [r4] - sub r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4, r5, pc} -_021EF81C: - mov r0, #4 - pop {r3, r4, r5, pc} -_021EF820: - mov r0, #4 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021EF824 -MOD05_021EF824: ; 0x021EF824 - push {r3, r4, r5, lr} - add r5, r1, #0 - add r4, r0, #0 - cmp r5, #4 - blo _021EF832 - bl GF_AssertFail -_021EF832: - lsl r0, r5, #2 - add r0, r4, r0 - add r0, #0x90 - ldr r1, [r0] - mov r0, #0x86 - lsl r0, r0, #4 - ldr r0, [r1, r0] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EF844 -MOD05_021EF844: ; 0x021EF844 - push {r3, r4, r5, r6, r7, lr} - add r6, r2, #0 - asr r2, r6, #4 - add r5, r0, #0 - lsr r2, r2, #0x1b - add r2, r6, r2 - add r4, r1, #0 - add r0, #0xc0 - ldr r1, [r0] - asr r0, r4, #4 - lsr r0, r0, #0x1b - add r0, r4, r0 - asr r2, r2, #5 - str r3, [sp] - add r3, r2, #0 - asr r0, r0, #5 - mul r3, r1 - add r7, r0, r3 - add r0, r5, #0 - add r0, #0xc4 - ldr r0, [r0] - mul r0, r1 - cmp r7, r0 - blo _021EF882 - mov r0, #1 - bl FUN_020336A0 - cmp r0, #0 - beq _021EF882 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021EF882: - add r0, r5, #0 - add r0, #0xc0 - ldr r1, [r0] - add r0, r5, #0 - add r0, #0xc4 - ldr r0, [r0] - mul r0, r1 - cmp r7, r0 - blo _021EF898 - bl GF_AssertFail -_021EF898: - add r0, r5, #0 - add r0, #0xc8 - ldr r1, [r0] - add r0, r6, #0 - mul r0, r1 - add r0, r4, r0 - bl MOD05_021EF620 - add r1, r0, #0 - add r0, r7, #0 - add r2, r5, #0 - bl MOD05_021EF654 - ldr r1, [sp] - cmp r1, #0 - beq _021EF8BA - strb r0, [r1] -_021EF8BA: - cmp r0, #3 - bls _021EF8C2 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021EF8C2: - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EF8C8 -MOD05_021EF8C8: ; 0x021EF8C8 - lsl r1, r1, #2 - add r0, r0, r1 - add r0, #0x90 - ldr r1, [r0] - ldr r0, _021EF8D8 ; =0x0000085C - ldr r0, [r1, r0] - bx lr - nop -_021EF8D8: .word 0x0000085C - - thumb_func_start MOD05_021EF8DC -MOD05_021EF8DC: ; 0x021EF8DC - lsl r1, r1, #2 - add r0, r0, r1 - add r0, #0x90 - ldr r0, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021EF8E8 -MOD05_021EF8E8: ; 0x021EF8E8 - add r3, r0, #0 - add r3, #0xfc - str r1, [r3] - mov r1, #1 - lsl r1, r1, #8 - str r2, [r0, r1] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021EF8F8 -MOD05_021EF8F8: ; 0x021EF8F8 - push {r3, lr} - bl FUN_0201B6C8 - mov r1, #1 - str r1, [r0, #0x1c] - pop {r3, pc} - - thumb_func_start MOD05_021EF904 -MOD05_021EF904: ; 0x021EF904 - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4, #0x1c] - cmp r0, #1 - bne _021EF914 - mov r0, #5 - strb r0, [r4, #0x14] -_021EF914: - ldrb r0, [r4, #0x14] - cmp r0, #5 - bhi _021EF9FE - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021EF926: ; jump table - .short _021EF932 - _021EF926 - 2 ; case 0 - .short _021EF962 - _021EF926 - 2 ; case 1 - .short _021EF998 - _021EF926 - 2 ; case 2 - .short _021EF9B6 - _021EF926 - 2 ; case 3 - .short _021EF9FE - _021EF926 - 2 ; case 4 - .short _021EF9EC - _021EF926 - 2 ; case 5 -_021EF932: - mov r0, #0 - str r0, [r4, #0x24] - mov r0, #0xe - ldr r5, [r4, #4] - lsl r0, r0, #0xc - cmp r5, r0 - bgt _021EF944 - mov r0, #2 - b _021EF948 -_021EF944: - add r5, r0, #0 - mov r0, #1 -_021EF948: - strb r0, [r4, #0x14] - ldr r2, [r4, #0xc] - ldr r0, [r4] - ldr r3, [r2] - ldr r2, [r4, #0x24] - add r1, r5, #0 - add r2, r3, r2 - bl NARC_ReadFile - ldr r0, [r4, #0x24] - add r0, r0, r5 - str r0, [r4, #0x24] - pop {r4, r5, r6, pc} -_021EF962: - ldr r2, [r4, #0x24] - ldr r0, [r4, #4] - sub r5, r0, r2 - mov r0, #0xe - lsl r0, r0, #0xc - cmp r5, r0 - ble _021EF976 - add r5, r0, #0 - mov r6, #0 - b _021EF978 -_021EF976: - mov r6, #1 -_021EF978: - ldr r3, [r4, #0xc] - ldr r0, [r4] - ldr r3, [r3] - add r1, r5, #0 - add r2, r3, r2 - bl NARC_ReadFile - cmp r6, #0 - beq _021EF990 - mov r0, #2 - strb r0, [r4, #0x14] - pop {r4, r5, r6, pc} -_021EF990: - ldr r0, [r4, #0x24] - add r0, r0, r5 - str r0, [r4, #0x24] - pop {r4, r5, r6, pc} -_021EF998: - ldr r0, [r4, #0x10] - cmp r0, #0 - beq _021EF9B0 - bl FUN_0201B254 - cmp r0, #1 - bne _021EF9B0 - ldr r0, [r4, #0xc] - ldr r1, [r4, #0x10] - ldr r0, [r0] - bl FUN_0201B3A8 -_021EF9B0: - mov r0, #3 - strb r0, [r4, #0x14] - pop {r4, r5, r6, pc} -_021EF9B6: - ldr r0, [r4, #0xc] - ldr r0, [r0] - bl NNS_G3dGetMdlSet - add r5, r0, #0 - ldrb r0, [r5, #9] - cmp r0, #1 - beq _021EF9CA - bl GF_AssertFail -_021EF9CA: - ldrh r0, [r5, #0xe] - add r0, r5, r0 - ldr r0, [r0, #0xc] - add r5, r5, r0 - bne _021EF9D8 - bl GF_AssertFail -_021EF9D8: - ldr r0, [r4, #8] - add r1, r5, #0 - bl NNS_G3dRenderObjInit - ldr r0, [r4, #0x18] - mov r1, #1 - str r1, [r0] - mov r0, #5 - strb r0, [r4, #0x14] - pop {r4, r5, r6, pc} -_021EF9EC: - ldr r0, [r4, #0x20] - mov r1, #0 - str r1, [r0] - add r0, r4, #0 - bl FreeToHeap - add r0, r5, #0 - bl FUN_0200CAB4 -_021EF9FE: - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021EFA00 -MOD05_021EFA00: ; 0x021EFA00 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r4, r1, #0 - mov r0, #4 - - thumb_func_start MOD05_021EFA08 -MOD05_021EFA08: ; 0x021EFA08 - mov r1, #0x28 - add r6, r2, #0 - add r7, r3, #0 - bl AllocFromHeapAtEnd - add r1, r0, #0 - str r5, [r1] - str r4, [r1, #4] - str r6, [r1, #8] - ldr r0, [sp, #0x18] - str r7, [r1, #0xc] - str r0, [r1, #0x10] - mov r2, #0 - ldr r0, [sp, #0x1c] - strb r2, [r1, #0x14] - str r0, [r1, #0x18] - str r2, [r0] - ldr r0, [sp, #0x20] - str r0, [r1, #0x20] - str r2, [r1, #0x1c] - ldr r0, _021EFA3C ; =MOD05_021EF904 - mov r2, #1 - bl FUN_0200CA44 - pop {r3, r4, r5, r6, r7, pc} - nop -_021EFA3C: .word MOD05_021EF904 - - thumb_func_start MOD05_021EFA40 -MOD05_021EFA40: ; 0x021EFA40 - push {r3, r4, r5, lr} - add r4, r3, #0 - add r5, r2, #0 - ldr r2, [r4] - bl NARC_ReadFile - ldr r0, [sp, #0x10] - cmp r0, #0 - beq _021EFA6A - bl FUN_0201B254 - cmp r0, #1 - bne _021EFA6A - ldr r0, [r4] - ldr r1, [sp, #0x10] - bl FUN_0201B3A8 - cmp r0, #0 - bne _021EFA6A - bl GF_AssertFail -_021EFA6A: - ldr r0, [r4] - bl NNS_G3dGetMdlSet - ldrb r0, [r0, #9] - cmp r0, #1 - beq _021EFA7A - bl GF_AssertFail -_021EFA7A: - ldr r0, [r4] - bl NNS_G3dGetMdlSet - ldrh r1, [r0, #0xe] - add r1, r0, r1 - ldr r1, [r1, #0xc] - add r4, r0, r1 - bne _021EFA8E - bl GF_AssertFail -_021EFA8E: - add r0, r5, #0 - add r1, r4, #0 - bl NNS_G3dRenderObjInit - add r0, r4, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EFA9C -MOD05_021EFA9C: ; 0x021EFA9C - push {r3, lr} - ldr r0, [r0, #4] - ldr r0, [r0, #0x14] - cmp r0, #0 - beq _021EFAAA - bl MOD20_022524DC -_021EFAAA: - pop {r3, pc} - - thumb_func_start MOD05_021EFAAC -MOD05_021EFAAC: ; 0x021EFAAC - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r0, #0 - ldr r0, [r5, #0xc] - bl Sav2_Poketch_get - add r4, r0, #0 - ldr r0, [r5, #0xc] - bl SavArray_Flags_get - add r6, r0, #0 - add r0, r4, #0 - bl Sav2_Poketch_IsGiven - cmp r0, #0 - beq _021EFAF8 - add r0, r6, #0 - bl FUN_0205F1E4 - cmp r0, #0 - bne _021EFAF8 - ldr r0, _021EFB0C ; =SDK_OVERLAY_MODULE_20_ID - mov r1, #2 - bl HandleLoadOverlay - mov r0, #1 - bl FUN_0200A03C - str r0, [sp] - ldr r1, [r5, #4] - ldr r2, [r5, #0xc] - ldr r3, [r5, #8] - add r0, r5, #0 - add r1, #0x14 - bl MOD20_02252448 - add sp, #4 - pop {r3, r4, r5, r6, pc} -_021EFAF8: - ldr r0, _021EFB10 ; =SDK_OVERLAY_MODULE_19_ID - mov r1, #2 - bl HandleLoadOverlay - ldr r0, [r5, #8] - bl MOD19_02252440 - add sp, #4 - pop {r3, r4, r5, r6, pc} - nop -_021EFB0C: .word SDK_OVERLAY_MODULE_20_ID -_021EFB10: .word SDK_OVERLAY_MODULE_19_ID - - thumb_func_start MOD05_021EFB14 -MOD05_021EFB14: ; 0x021EFB14 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r0, [r5, #0xc] - bl Sav2_Poketch_get - add r4, r0, #0 - ldr r0, [r5, #0xc] - bl SavArray_Flags_get - add r6, r0, #0 - add r0, r4, #0 - bl Sav2_Poketch_IsGiven - cmp r0, #0 - beq _021EFB46 - add r0, r6, #0 - bl FUN_0205F1E4 - cmp r0, #0 - bne _021EFB46 - ldr r0, [r5, #4] - ldr r0, [r0, #0x14] - bl MOD20_022524BC - pop {r4, r5, r6, pc} -_021EFB46: - ldr r0, [r5, #8] - bl MOD19_022524F4 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EFB50 -MOD05_021EFB50: ; 0x021EFB50 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r0, [r5, #0xc] - bl Sav2_Poketch_get - add r4, r0, #0 - ldr r0, [r5, #0xc] - bl SavArray_Flags_get - add r6, r0, #0 - add r0, r4, #0 - bl Sav2_Poketch_IsGiven - cmp r0, #0 - beq _021EFB94 - add r0, r6, #0 - bl FUN_0205F1E4 - cmp r0, #0 - bne _021EFB94 - ldr r0, [r5, #4] - ldr r0, [r0, #0x14] - bl MOD20_022524D0 - cmp r0, #0 - beq _021EFBA8 - ldr r0, [r5, #4] - mov r1, #0 - str r1, [r0, #0x14] - ldr r0, _021EFBAC ; =SDK_OVERLAY_MODULE_20_ID - bl UnloadOverlayByID - mov r0, #1 - pop {r4, r5, r6, pc} -_021EFB94: - ldr r0, [r5, #8] - bl MOD19_02252504 - cmp r0, #0 - beq _021EFBA8 - ldr r0, _021EFBB0 ; =SDK_OVERLAY_MODULE_19_ID - bl UnloadOverlayByID - mov r0, #1 - pop {r4, r5, r6, pc} -_021EFBA8: - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021EFBAC: .word SDK_OVERLAY_MODULE_20_ID -_021EFBB0: .word SDK_OVERLAY_MODULE_19_ID - - thumb_func_start MOD05_021EFBB4 -MOD05_021EFBB4: ; 0x021EFBB4 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021EFBC8 ; =SDK_OVERLAY_MODULE_19_ID - mov r1, #2 - bl HandleLoadOverlay - ldr r0, [r4, #8] - bl MOD19_02252440 - pop {r4, pc} - .balign 4, 0 -_021EFBC8: .word SDK_OVERLAY_MODULE_19_ID - - thumb_func_start MOD05_021EFBCC -MOD05_021EFBCC: ; 0x021EFBCC - ldr r3, _021EFBD4 ; =MOD19_022524F4 - ldr r0, [r0, #8] - bx r3 - nop -_021EFBD4: .word MOD19_022524F4 - - thumb_func_start MOD05_021EFBD8 -MOD05_021EFBD8: ; 0x021EFBD8 - push {r3, lr} - ldr r0, [r0, #8] - bl MOD19_02252504 - cmp r0, #0 - beq _021EFBEE - ldr r0, _021EFBF4 ; =SDK_OVERLAY_MODULE_19_ID - bl UnloadOverlayByID - mov r0, #1 - pop {r3, pc} -_021EFBEE: - mov r0, #0 - pop {r3, pc} - nop -_021EFBF4: .word SDK_OVERLAY_MODULE_19_ID - - thumb_func_start MOD05_021EFBF8 -MOD05_021EFBF8: ; 0x021EFBF8 - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - ldr r0, [r4, #0x34] - bl FUN_020286EC - mov r1, #0 - bl FUN_0202838C - add r1, r4, #0 - ldr r0, [r4, #0x34] - add r1, #0x4c - mov r2, #4 - bl FUN_020339B4 - cmp r0, #0 - bne _021EFC20 - add sp, #8 - mov r0, #1 - pop {r4, pc} -_021EFC20: - add r0, r4, #0 - mov r1, #0 - add r0, #0x8c - str r1, [r0] - ldr r0, [r4, #0x34] - bl Sav2_PlayerData_GetOptionsAddr - bl Options_GetFrame - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - ldr r0, [r4, #0x30] - ldr r2, _021EFC6C ; =0x000001E2 - ldr r0, [r0, #8] - mov r1, #3 - mov r3, #0xa - bl FUN_0200CD68 - mov r0, #0 - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - ldr r0, [r4, #0x30] - ldr r2, _021EFC70 ; =0x000003D9 - ldr r0, [r0, #8] - mov r1, #3 - mov r3, #0xb - bl FUN_0200CB00 - mov r0, #1 - str r0, [r4, #0x48] - mov r0, #0 - add sp, #8 - pop {r4, pc} - nop -_021EFC6C: .word 0x000001E2 -_021EFC70: .word 0x000003D9 - - thumb_func_start MOD05_021EFC74 -MOD05_021EFC74: ; 0x021EFC74 - push {r3, r4, r5, r6, lr} - sub sp, #4 - mov r1, #0 - add r6, r0, #0 - mvn r1, r1 - add r0, #0x8c - str r1, [r0] - mov r4, #0 - bl FUN_02030F20 - cmp r0, #0 - ble _021EFCB0 - add r5, r6, #0 -_021EFC8E: - ldr r0, [r5, #0x4c] - cmp r0, #2 - bne _021EFCA4 - add r0, r6, #0 - add r0, #0x8c - str r4, [r0] - lsl r0, r4, #2 - mov r1, #0 - add r0, r6, r0 - str r1, [r0, #0x4c] - b _021EFCB0 -_021EFCA4: - add r5, r5, #4 - add r4, r4, #1 - bl FUN_02030F20 - cmp r4, r0 - blt _021EFC8E -_021EFCB0: - add r0, r6, #0 - add r0, #0x8c - ldr r1, [r0] - mov r0, #0 - mvn r0, r0 - cmp r1, r0 - bne _021EFCC4 - add sp, #4 - mov r0, #1 - pop {r3, r4, r5, r6, pc} -_021EFCC4: - ldr r0, [r6, #0x34] - bl Sav2_Bag_get - ldr r1, _021EFD3C ; =0x000001B5 - mov r2, #1 - mov r3, #4 - bl Bag_HasItem - cmp r0, #1 - bne _021EFCFE - add r0, r6, #0 - add r0, #0x8c - ldr r0, [r0] - bl FUN_0202DFA4 - add r2, r0, #0 - ldr r0, [r6, #0x38] - mov r1, #0 - bl BufferPlayersName - add r0, r6, #0 - mov r1, #0x21 - bl MOD05_021F01EC - mov r0, #2 - str r0, [r6, #0x48] - add sp, #4 - mov r0, #0 - pop {r3, r4, r5, r6, pc} -_021EFCFE: - ldr r0, [r6, #0x34] - bl FUN_020286EC - add r4, r0, #0 - mov r5, #0 -_021EFD08: - add r0, r4, #0 - add r1, r5, #0 - bl FUN_0202842C - cmp r0, #0 - bne _021EFD2A - mov r0, #0 - add r1, r6, #0 - str r0, [sp] - add r1, #0x8c - ldr r0, [r6, #0x34] - ldr r1, [r1] - add r2, r5, #0 - mov r3, #4 - bl FUN_02033A70 - b _021EFD30 -_021EFD2A: - add r5, r5, #1 - cmp r5, #0x20 - blt _021EFD08 -_021EFD30: - mov r0, #1 - str r0, [r6, #0x48] - mov r0, #0 - add sp, #4 - pop {r3, r4, r5, r6, pc} - nop -_021EFD3C: .word 0x000001B5 - - thumb_func_start MOD05_021EFD40 -MOD05_021EFD40: ; 0x021EFD40 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #0x40] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl FUN_0201BD70 - cmp r0, #0 - bne _021EFD6C - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #0x30] - ldr r1, _021EFD74 ; =UNK05_021F8B44 - ldr r0, [r0, #8] - ldr r2, _021EFD78 ; =0x000003D9 - mov r3, #0xb - bl Std_CreateYesNoMenu - str r0, [r4, #0x44] - mov r0, #3 - str r0, [r4, #0x48] -_021EFD6C: - mov r0, #0 - add sp, #4 - pop {r3, r4, pc} - nop -_021EFD74: .word UNK05_021F8B44 -_021EFD78: .word 0x000003D9 - - thumb_func_start MOD05_021EFD7C -MOD05_021EFD7C: ; 0x021EFD7C - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r6, r0, #0 - ldr r0, [r6, #0x44] - mov r1, #4 - bl FUN_020021AC - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - bne _021EFD98 - add sp, #4 - mov r0, #0 - pop {r3, r4, r5, r6, pc} -_021EFD98: - cmp r0, #0 - bne _021EFDE4 - ldr r0, [r6, #0x34] - bl FUN_020286EC - add r5, r0, #0 - mov r4, #0 -_021EFDA6: - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0202842C - cmp r0, #0 - bne _021EFDC8 - mov r0, #0 - add r1, r6, #0 - str r0, [sp] - add r1, #0x8c - ldr r0, [r6, #0x34] - ldr r1, [r1] - add r2, r4, #0 - mov r3, #4 - bl FUN_02033A70 - b _021EFDCE -_021EFDC8: - add r4, r4, #1 - cmp r4, #0x20 - blt _021EFDA6 -_021EFDCE: - cmp r4, #0x20 - bne _021EFDE4 - add r0, r6, #0 - mov r1, #0x22 - bl MOD05_021F01EC - mov r0, #4 - str r0, [r6, #0x48] - add sp, #4 - mov r0, #0 - pop {r3, r4, r5, r6, pc} -_021EFDE4: - mov r0, #1 - str r0, [r6, #0x48] - mov r0, #0 - add sp, #4 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021EFDF0 -MOD05_021EFDF0: ; 0x021EFDF0 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #0x40] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl FUN_0201BD70 - cmp r0, #0 - bne _021EFE1C - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #0x30] - ldr r1, _021EFE24 ; =UNK05_021F8B44 - ldr r0, [r0, #8] - ldr r2, _021EFE28 ; =0x000003D9 - mov r3, #0xb - bl Std_CreateYesNoMenu - str r0, [r4, #0x44] - mov r0, #5 - str r0, [r4, #0x48] -_021EFE1C: - mov r0, #0 - add sp, #4 - pop {r3, r4, pc} - nop -_021EFE24: .word UNK05_021F8B44 -_021EFE28: .word 0x000003D9 - - thumb_func_start MOD05_021EFE2C -MOD05_021EFE2C: ; 0x021EFE2C - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x44] - mov r1, #4 - bl FUN_020021AC - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - bne _021EFE44 - mov r0, #0 - pop {r4, pc} -_021EFE44: - cmp r0, #0 - bne _021EFE4C - mov r0, #8 - b _021EFE6A -_021EFE4C: - add r0, r4, #0 - add r0, #0x8c - ldr r0, [r0] - bl FUN_0202DFA4 - add r2, r0, #0 - ldr r0, [r4, #0x38] - mov r1, #0 - bl BufferPlayersName - add r0, r4, #0 - mov r1, #0x23 - bl MOD05_021F01EC - mov r0, #6 -_021EFE6A: - str r0, [r4, #0x48] - mov r0, #0 - pop {r4, pc} - - thumb_func_start MOD05_021EFE70 -MOD05_021EFE70: ; 0x021EFE70 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #0x40] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl FUN_0201BD70 - cmp r0, #0 - bne _021EFE9C - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #0x30] - ldr r1, _021EFEA4 ; =UNK05_021F8B44 - ldr r0, [r0, #8] - ldr r2, _021EFEA8 ; =0x000003D9 - mov r3, #0xb - bl Std_CreateYesNoMenu - str r0, [r4, #0x44] - mov r0, #7 - str r0, [r4, #0x48] -_021EFE9C: - mov r0, #0 - add sp, #4 - pop {r3, r4, pc} - nop -_021EFEA4: .word UNK05_021F8B44 -_021EFEA8: .word 0x000003D9 - - thumb_func_start MOD05_021EFEAC -MOD05_021EFEAC: ; 0x021EFEAC - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x44] - mov r1, #4 - bl FUN_020021AC - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - bne _021EFEC4 - mov r0, #0 - pop {r4, pc} -_021EFEC4: - cmp r0, #0 - bne _021EFECC - mov r0, #0xc - b _021EFED6 -_021EFECC: - add r0, r4, #0 - mov r1, #0x22 - bl MOD05_021F01EC - mov r0, #4 -_021EFED6: - str r0, [r4, #0x48] - mov r0, #0 - pop {r4, pc} - - thumb_func_start MOD05_021EFEDC -MOD05_021EFEDC: ; 0x021EFEDC - push {r4, r5, r6, r7, lr} - sub sp, #0x34 - add r5, r0, #0 - ldr r0, [r5, #0x34] - bl FUN_020286EC - add r6, r0, #0 - bl FUN_02028448 - add r7, r0, #0 - add r0, r7, #1 - mov r1, #4 - bl ListMenuItems_ctor - str r0, [r5] - mov r0, #1 - str r0, [sp] - mov r0, #0xc - str r0, [sp, #4] - mov r0, #0xa - str r0, [sp, #8] - mov r0, #0xd - str r0, [sp, #0xc] - ldr r0, _021EFFB8 ; =0x000002A1 - add r1, r5, #0 - str r0, [sp, #0x10] - ldr r0, [r5, #0x30] - add r1, #0x20 - ldr r0, [r0, #8] - mov r2, #3 - mov r3, #0x13 - bl AddWindowParameterized - add r0, r5, #0 - ldr r2, _021EFFBC ; =0x000003D9 - add r0, #0x20 - mov r1, #1 - mov r3, #0xb - bl FUN_0200CCA4 - mov r4, #0 -_021EFF2E: - add r0, r6, #0 - add r1, r4, #0 - bl FUN_0202842C - cmp r0, #0 - beq _021EFF54 - add r0, r6, #0 - add r1, r4, #0 - bl FUN_020283A4 - add r1, r0, #0 - ldr r0, [r5, #8] - bl CopyU16ArrayToString - ldr r0, [r5] - ldr r1, [r5, #8] - add r2, r4, #0 - bl ListMenuItems_AddItem -_021EFF54: - add r4, r4, #1 - cmp r4, #0x20 - blt _021EFF2E - mov r2, #0xb - add r3, r2, #0 - ldr r0, [r5] - ldr r1, [r5, #0x3c] - sub r3, #0xd - bl ListMenuItems_AppendFromMsgData - ldr r4, _021EFFC0 ; =UNK05_021F8B4C - add r3, sp, #0x14 - add r2, r3, #0 - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - add r1, r7, #1 - add r0, sp, #0x14 - strh r1, [r0, #0x10] - mov r1, #5 - strh r1, [r0, #0x12] - ldr r0, [r5] - mov r1, #0 - str r0, [sp, #0x14] - add r0, r5, #0 - add r0, #0x20 - str r0, [sp, #0x20] - ldr r0, _021EFFC4 ; =MOD05_021F0304 - str r5, [sp, #0x30] - str r0, [sp, #0x18] - add r0, r2, #0 - add r2, r1, #0 - mov r3, #4 - bl ListMenuInit - str r0, [r5, #4] - add r0, r5, #0 - add r0, #0x20 - bl CopyWindowToVram - mov r0, #9 - str r0, [r5, #0x48] - mov r0, #0 - add sp, #0x34 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021EFFB8: .word 0x000002A1 -_021EFFBC: .word 0x000003D9 -_021EFFC0: .word UNK05_021F8B4C -_021EFFC4: .word MOD05_021F0304 - - thumb_func_start MOD05_021EFFC8 -MOD05_021EFFC8: ; 0x021EFFC8 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - ldr r0, [r5, #4] - bl ListMenu_ProcessInput - add r4, r0, #0 - mov r0, #1 - mvn r0, r0 - cmp r4, r0 - beq _021EFFE6 - add r0, r0, #1 - cmp r4, r0 - bne _021F000E - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021EFFE6: - ldr r0, _021F007C ; =0x000005DC - bl PlaySE - add r0, r5, #0 - add r0, #0x8c - ldr r0, [r0] - bl FUN_0202DFA4 - add r2, r0, #0 - ldr r0, [r5, #0x38] - mov r1, #0 - bl BufferPlayersName - add r0, r5, #0 - mov r1, #0x23 - bl MOD05_021F01EC - mov r0, #6 - str r0, [r5, #0x48] - b _021F0056 -_021F000E: - ldr r0, _021F007C ; =0x000005DC - bl PlaySE - add r0, r5, #0 - add r0, #0x90 - str r4, [r0] - ldr r0, [r5, #0x34] - bl FUN_020286EC - add r7, r0, #0 - mov r0, #4 - bl PlayerProfile_new - add r6, r0, #0 - add r0, r7, #0 - add r1, r4, #0 - bl FUN_020283A4 - add r1, r0, #0 - add r0, r6, #0 - bl CopyPlayerName - ldr r0, [r5, #0x38] - mov r1, #0 - add r2, r6, #0 - bl BufferPlayersName - add r0, r6, #0 - bl FreeToHeap - add r0, r5, #0 - mov r1, #0x24 - bl MOD05_021F01EC - mov r0, #0xa - str r0, [r5, #0x48] -_021F0056: - add r0, r5, #0 - add r0, #0x20 - mov r1, #0 - bl FUN_0200CCF8 - add r0, r5, #0 - add r0, #0x20 - bl RemoveWindow - mov r1, #0 - ldr r0, [r5, #4] - add r2, r1, #0 - bl DestroyListMenu - ldr r0, [r5] - bl ListMenuItems_dtor - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F007C: .word 0x000005DC - - thumb_func_start MOD05_021F0080 -MOD05_021F0080: ; 0x021F0080 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - ldr r0, [r4, #0x40] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl FUN_0201BD70 - cmp r0, #0 - bne _021F00AC - mov r0, #4 - str r0, [sp] - ldr r0, [r4, #0x30] - ldr r1, _021F00B4 ; =UNK05_021F8B44 - ldr r0, [r0, #8] - ldr r2, _021F00B8 ; =0x000003D9 - mov r3, #0xb - bl Std_CreateYesNoMenu - str r0, [r4, #0x44] - mov r0, #0xb - str r0, [r4, #0x48] -_021F00AC: - mov r0, #0 - add sp, #4 - pop {r3, r4, pc} - nop -_021F00B4: .word UNK05_021F8B44 -_021F00B8: .word 0x000003D9 - - thumb_func_start MOD05_021F00BC -MOD05_021F00BC: ; 0x021F00BC - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5, #0x34] - bl FUN_020286EC - add r4, r0, #0 - ldr r0, [r5, #0x44] - mov r1, #4 - bl FUN_020021AC - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - bne _021F00DC - mov r0, #0 - pop {r3, r4, r5, pc} -_021F00DC: - cmp r0, #0 - bne _021F0104 - add r1, r5, #0 - add r1, #0x90 - ldr r1, [r1] - add r0, r4, #0 - bl FUN_02028468 - mov r0, #0 - add r1, r5, #0 - str r0, [sp] - add r1, #0x8c - ldr r0, [r5, #0x34] - ldr r1, [r1] - mov r2, #0x1f - mov r3, #4 - bl FUN_02033A70 - mov r0, #1 - b _021F0122 -_021F0104: - add r0, r5, #0 - add r0, #0x8c - ldr r0, [r0] - bl FUN_0202DFA4 - add r2, r0, #0 - ldr r0, [r5, #0x38] - mov r1, #0 - bl BufferPlayersName - add r0, r5, #0 - mov r1, #0x23 - bl MOD05_021F01EC - mov r0, #6 -_021F0122: - str r0, [r5, #0x48] - mov r0, #0 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F0128 -MOD05_021F0128: ; 0x021F0128 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_0204652C - - thumb_func_start MOD05_021F0130 -MOD05_021F0130: ; 0x021F0130 - add r4, r0, #0 - add r0, r5, #0 - bl FUN_02046528 - ldr r0, [r4, #0x48] - cmp r0, #0xc - bhi _021F01E8 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021F014A: ; jump table - .short _021F0164 - _021F014A - 2 ; case 0 - .short _021F0174 - _021F014A - 2 ; case 1 - .short _021F0184 - _021F014A - 2 ; case 2 - .short _021F018C - _021F014A - 2 ; case 3 - .short _021F0194 - _021F014A - 2 ; case 4 - .short _021F019C - _021F014A - 2 ; case 5 - .short _021F01A4 - _021F014A - 2 ; case 6 - .short _021F01AC - _021F014A - 2 ; case 7 - .short _021F01B4 - _021F014A - 2 ; case 8 - .short _021F01BC - _021F014A - 2 ; case 9 - .short _021F01C4 - _021F014A - 2 ; case 10 - .short _021F01CC - _021F014A - 2 ; case 11 - .short _021F01D4 - _021F014A - 2 ; case 12 -_021F0164: - add r0, r4, #0 - bl MOD05_021EFBF8 - cmp r0, #0 - beq _021F01E8 - mov r0, #0xc - str r0, [r4, #0x48] - b _021F01E8 -_021F0174: - add r0, r4, #0 - bl MOD05_021EFC74 - cmp r0, #0 - beq _021F01E8 - mov r0, #0xc - str r0, [r4, #0x48] - b _021F01E8 -_021F0184: - add r0, r4, #0 - bl MOD05_021EFD40 - b _021F01E8 -_021F018C: - add r0, r4, #0 - bl MOD05_021EFD7C - b _021F01E8 -_021F0194: - add r0, r4, #0 - bl MOD05_021EFDF0 - b _021F01E8 -_021F019C: - add r0, r4, #0 - bl MOD05_021EFE2C - b _021F01E8 -_021F01A4: - add r0, r4, #0 - bl MOD05_021EFE70 - b _021F01E8 -_021F01AC: - add r0, r4, #0 - bl MOD05_021EFEAC - b _021F01E8 -_021F01B4: - add r0, r4, #0 - bl MOD05_021EFEDC - b _021F01E8 -_021F01BC: - add r0, r4, #0 - bl MOD05_021EFFC8 - b _021F01E8 -_021F01C4: - add r0, r4, #0 - bl MOD05_021F0080 - b _021F01E8 -_021F01CC: - add r0, r4, #0 - bl MOD05_021F00BC - b _021F01E8 -_021F01D4: - add r0, r4, #0 - bl MOD05_021F0290 - add r0, r4, #0 - bl FreeToHeap - bl FUN_02037778 - mov r0, #1 - pop {r3, r4, r5, pc} -_021F01E8: - mov r0, #0 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F01EC -MOD05_021F01EC: ; 0x021F01EC - push {r3, r4, r5, lr} - add r4, r0, #0 - add r0, #0x10 - add r5, r1, #0 - bl WindowIsInUse - cmp r0, #0 - beq _021F0204 - add r0, r4, #0 - add r0, #0x10 - bl RemoveWindow -_021F0204: - ldr r0, [r4, #0x3c] - ldr r2, [r4, #8] - add r1, r5, #0 - bl ReadMsgDataIntoString - ldr r0, [r4, #0x38] - ldr r1, [r4, #0xc] - ldr r2, [r4, #8] - bl StringExpandPlaceholders - ldr r0, [r4, #0x30] - add r1, r4, #0 - ldr r0, [r0, #8] - add r1, #0x10 - mov r2, #3 - bl FUN_020545B8 - ldr r0, [r4, #0x30] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetOptionsAddr - add r1, r0, #0 - add r0, r4, #0 - add r0, #0x10 - bl FUN_02054608 - ldr r0, [r4, #0x30] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetOptionsAddr - add r2, r0, #0 - add r0, r4, #0 - ldr r1, [r4, #0xc] - add r0, #0x10 - mov r3, #1 - bl FUN_02054658 - str r0, [r4, #0x40] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0254 -MOD05_021F0254: ; 0x021F0254 - push {r4, lr} - mov r1, #0 - mov r2, #0x94 - add r4, r0, #0 - bl MI_CpuFill8 - mov r0, #4 - bl ScrStrBufs_new - str r0, [r4, #0x38] - ldr r2, _021F028C ; =0x00000251 - mov r0, #0 - mov r1, #0x1a - mov r3, #4 - bl NewMsgDataFromNarc - str r0, [r4, #0x3c] - mov r0, #0x6e - mov r1, #4 - bl String_ctor - str r0, [r4, #0xc] - mov r0, #0x6e - mov r1, #4 - bl String_ctor - str r0, [r4, #8] - pop {r4, pc} - .balign 4, 0 -_021F028C: .word 0x00000251 - - thumb_func_start MOD05_021F0290 -MOD05_021F0290: ; 0x021F0290 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x3c] - bl DestroyMsgData - ldr r0, [r4, #0x38] - bl ScrStrBufs_delete - ldr r0, [r4, #0xc] - bl String_dtor - ldr r0, [r4, #8] - bl String_dtor - add r0, r4, #0 - add r0, #0x10 - bl WindowIsInUse - cmp r0, #0 - beq _021F02C0 - add r4, #0x10 - add r0, r4, #0 - bl RemoveWindow -_021F02C0: - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F02C4 -MOD05_021F02C4: ; 0x021F02C4 - push {r4, r5, r6, lr} - add r6, r0, #0 - ldr r5, [r6, #0x10] - mov r0, #0xb - mov r1, #0x94 - bl AllocFromHeapAtEnd - add r4, r0, #0 - bl MOD05_021F0254 - str r6, [r4, #0x30] - ldr r0, [r6, #0xc] - str r0, [r4, #0x34] - mov r0, #0 - str r0, [r4, #0x48] - cmp r5, #0 - bne _021F02F2 - ldr r1, _021F0300 ; =MOD05_021F0128 - add r0, r6, #0 - add r2, r4, #0 - bl FUN_020463CC - pop {r4, r5, r6, pc} -_021F02F2: - ldr r1, _021F0300 ; =MOD05_021F0128 - add r0, r5, #0 - add r2, r4, #0 - bl FUN_0204640C - pop {r4, r5, r6, pc} - nop -_021F0300: .word MOD05_021F0128 - - thumb_func_start MOD05_021F0304 -MOD05_021F0304: ; 0x021F0304 - push {r3, lr} - cmp r2, #0 - bne _021F0310 - ldr r0, _021F0314 ; =0x000005DC - bl PlaySE -_021F0310: - pop {r3, pc} - nop -_021F0314: .word 0x000005DC - - thumb_func_start MOD05_021F0318 -MOD05_021F0318: ; 0x021F0318 - push {r4, r5, r6, r7, lr} - sub sp, #0x6c - add r4, r3, #0 - add r7, r0, #0 - add r5, r1, #0 - mov r0, #0 - str r0, [sp, #0x58] - ldr r1, [r4, #0x50] - add r0, sp, #0x60 - add r6, r2, #0 - bl Camera_GetLookAtCamTarget - ldr r3, _021F0434 ; =UNK05_021F8B6C - add r2, sp, #0xc - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3] - cmp r6, #0x60 - str r0, [r2] - bhs _021F0352 - mov r1, #0x60 - sub r0, r1, r6 - lsl r0, r0, #0x18 - ldrh r2, [r4] - lsr r0, r0, #0x18 - mul r0, r2 - bl _s32_div_f - b _021F036C -_021F0352: - sub r6, #0x60 - lsl r0, r6, #0x18 - ldrh r1, [r4] - lsr r0, r0, #0x18 - mul r0, r1 - mov r1, #0x60 - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - mov r0, #0 - mvn r0, r0 - mul r0, r1 -_021F036C: - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - cmp r5, #0x80 - bhs _021F038A - mov r2, #0x80 - sub r2, r2, r5 - lsl r2, r2, #0x18 - ldrh r0, [r4, #2] - lsr r2, r2, #0x18 - mul r2, r0 - asr r0, r2, #6 - lsr r0, r0, #0x19 - add r0, r2, r0 - lsl r0, r0, #9 - b _021F03A8 -_021F038A: - ldrh r2, [r4, #2] - sub r5, #0x80 - lsl r0, r5, #0x18 - lsr r0, r0, #0x18 - add r3, r2, #0 - mul r3, r0 - asr r0, r3, #6 - lsr r0, r0, #0x19 - add r0, r3, r0 - lsl r0, r0, #9 - lsr r2, r0, #0x10 - mov r0, #0 - mvn r0, r0 - mul r0, r2 - lsl r0, r0, #0x10 -_021F03A8: - lsr r5, r0, #0x10 - asr r0, r1, #4 - lsl r3, r0, #1 - lsl r1, r3, #1 - ldr r2, _021F0438 ; =FX_SinCosTable_ - add r3, r3, #1 - lsl r3, r3, #1 - ldrsh r1, [r2, r1] - ldrsh r2, [r2, r3] - add r0, sp, #0x24 - bl MTX_RotX43_ - add r0, sp, #0xc - add r1, sp, #0x24 - add r2, sp, #0x18 - bl MTX_MultVec43 - asr r0, r5, #4 - lsl r2, r0, #1 - lsl r1, r2, #1 - ldr r3, _021F0438 ; =FX_SinCosTable_ - add r2, r2, #1 - lsl r2, r2, #1 - ldrsh r1, [r3, r1] - ldrsh r2, [r3, r2] - add r0, sp, #0x24 - bl MTX_RotY43_ - add r0, sp, #0x18 - add r1, sp, #0x24 - add r2, r0, #0 - bl MTX_MultVec43 - add r0, sp, #0x18 - add r1, r4, #0 - add r1, #0x20 - add r2, r0, #0 - bl MTX_MultVec43 - add r0, r4, #0 - add r0, #0x10 - add r1, sp, #0x18 - bl VEC_DotProduct - add r1, r0, #0 - ldr r0, [r4, #0x1c] - bl FX_Div - neg r0, r0 - add r1, sp, #0x18 - add r2, r4, #4 - add r3, sp, #0 - bl VEC_MultAdd - ldr r1, [sp, #0x60] - ldr r0, [sp] - add r2, sp, #0x54 - add r0, r1, r0 - str r0, [sp, #0x54] - ldr r1, [sp, #0x68] - ldr r0, [sp, #8] - add r0, r1, r0 - str r0, [sp, #0x5c] - ldmia r2!, {r0, r1} - stmia r7!, {r0, r1} - ldr r0, [r2] - str r0, [r7] - add sp, #0x6c - pop {r4, r5, r6, r7, pc} - nop -_021F0434: .word UNK05_021F8B6C -_021F0438: .word FX_SinCosTable_ - - thumb_func_start MOD05_021F043C -MOD05_021F043C: ; 0x021F043C - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #4 - mov r1, #0x60 - bl AllocFromHeap - add r1, r5, #0 - add r4, r0, #0 - bl MOD05_021F0454 - add r0, r4, #0 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F0454 -MOD05_021F0454: ; 0x021F0454 - push {r4, r5, lr} - sub sp, #0x2c - add r5, r0, #0 - add r4, r1, #0 - add r0, sp, #0 - bl Camera_GetAngle - add r0, r4, #0 - bl Camera_GetPerspectiveAngle - strh r0, [r5] - ldrh r0, [r5] - ldr r2, _021F04F0 ; =FX_SinCosTable_ - asr r0, r0, #4 - lsl r1, r0, #1 - lsl r0, r1, #1 - add r1, r1, #1 - lsl r1, r1, #1 - ldrsh r0, [r2, r0] - ldrsh r1, [r2, r1] - bl FX_Div - lsl r0, r0, #2 - mov r1, #3 - bl _s32_div_f - bl FX_Atan - ldr r3, _021F04F4 ; =UNK05_021F8B78 - strh r0, [r5, #2] - ldmia r3!, {r0, r1} - add r2, sp, #0x20 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r1, r4, #0 - str r0, [r2] - add r0, sp, #0x14 - bl Camera_GetLookAtCamPos - add r0, sp, #8 - add r1, r4, #0 - bl Camera_GetLookAtCamTarget - add r0, sp, #0x14 - add r1, sp, #8 - add r2, r5, #4 - bl VEC_Subtract - add r3, sp, #0x20 - add r2, r5, #0 - ldmia r3!, {r0, r1} - add r2, #0x10 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r1, r5, #4 - str r0, [r2] - add r0, sp, #0x20 - bl VEC_DotProduct - str r0, [r5, #0x1c] - add r0, sp, #0 - ldrh r0, [r0] - ldr r3, _021F04F0 ; =FX_SinCosTable_ - asr r0, r0, #4 - lsl r2, r0, #1 - lsl r1, r2, #1 - add r2, r2, #1 - lsl r2, r2, #1 - add r0, r5, #0 - ldrsh r1, [r3, r1] - ldrsh r2, [r3, r2] - add r0, #0x20 - bl MTX_RotX43_ - str r4, [r5, #0x50] - add sp, #0x2c - pop {r4, r5, pc} - nop -_021F04F0: .word FX_SinCosTable_ -_021F04F4: .word UNK05_021F8B78 - - thumb_func_start MOD05_021F04F8 -MOD05_021F04F8: ; 0x021F04F8 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F0512 - bne _021F0508 - bl GF_AssertFail -_021F0508: - ldr r0, [r4] - bl FreeToHeap - mov r0, #0 - str r0, [r4] -_021F0512: - pop {r4, pc} - - thumb_func_start MOD05_021F0514 -MOD05_021F0514: ; 0x021F0514 - push {r4, lr} - add r4, r0, #0 - bl FUN_02058458 - cmp r0, #0x97 - bgt _021F053E - bge _021F05B2 - cmp r0, #0x15 - bgt _021F052E - bge _021F059E - cmp r0, #0 - beq _021F059E - b _021F05BA -_021F052E: - cmp r0, #0x62 - bgt _021F05BA - cmp r0, #0x61 - blt _021F05BA - beq _021F059E - cmp r0, #0x62 - beq _021F059E - b _021F05BA -_021F053E: - cmp r0, #0xb0 - bgt _021F0554 - bge _021F059E - cmp r0, #0x99 - bgt _021F05BA - cmp r0, #0x98 - blt _021F05BA - beq _021F05B2 - cmp r0, #0x99 - beq _021F05B2 - b _021F05BA -_021F0554: - cmp r0, #0xb1 - bgt _021F055C - beq _021F059E - b _021F05BA -_021F055C: - sub r0, #0xb2 - cmp r0, #0x17 - bhi _021F05BA - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021F056E: ; jump table - .short _021F059E - _021F056E - 2 ; case 0 - .short _021F059E - _021F056E - 2 ; case 1 - .short _021F059E - _021F056E - 2 ; case 2 - .short _021F059E - _021F056E - 2 ; case 3 - .short _021F05BA - _021F056E - 2 ; case 4 - .short _021F05BA - _021F056E - 2 ; case 5 - .short _021F05BA - _021F056E - 2 ; case 6 - .short _021F05BA - _021F056E - 2 ; case 7 - .short _021F059E - _021F056E - 2 ; case 8 - .short _021F059E - _021F056E - 2 ; case 9 - .short _021F059E - _021F056E - 2 ; case 10 - .short _021F059E - _021F056E - 2 ; case 11 - .short _021F05BA - _021F056E - 2 ; case 12 - .short _021F05BA - _021F056E - 2 ; case 13 - .short _021F05BA - _021F056E - 2 ; case 14 - .short _021F05BA - _021F056E - 2 ; case 15 - .short _021F05BA - _021F056E - 2 ; case 16 - .short _021F05A8 - _021F056E - 2 ; case 17 - .short _021F059E - _021F056E - 2 ; case 18 - .short _021F059E - _021F056E - 2 ; case 19 - .short _021F059E - _021F056E - 2 ; case 20 - .short _021F059E - _021F056E - 2 ; case 21 - .short _021F059E - _021F056E - 2 ; case 22 - .short _021F059E - _021F056E - 2 ; case 23 -_021F059E: - add r0, r4, #0 - bl FUN_02058628 - ldr r0, [r0, #4] - pop {r4, pc} -_021F05A8: - add r0, r4, #0 - bl FUN_02058628 - ldr r0, [r0, #4] - pop {r4, pc} -_021F05B2: - add r0, r4, #0 - bl MOD05_021F1C24 - pop {r4, pc} -_021F05BA: - add r0, r4, #0 - bl FUN_02058628 - ldr r0, [r0, #8] - pop {r4, pc} - - thumb_func_start MOD05_021F05C4 -MOD05_021F05C4: ; 0x021F05C4 - push {r3, r4, r5, lr} - mov r1, #0x18 - add r5, r0, #0 - bl FUN_02058604 - add r4, r0, #0 - mov r0, #0 - mvn r0, r0 - add r1, r4, #0 - strh r0, [r4] - add r0, r5, #0 - add r1, #8 - bl MOD05_021F1FC8 - ldr r0, [r4, #8] - cmp r0, #0 - beq _021F05EC - add r0, r5, #0 - bl FUN_020586A0 -_021F05EC: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F05F0 -MOD05_021F05F0: ; 0x021F05F0 - push {r4, lr} - add r4, r0, #0 - bl FUN_02058628 - add r1, r0, #0 - add r0, r4, #0 - add r1, #8 - bl MOD05_021F2060 - pop {r4, pc} - - thumb_func_start MOD05_021F0604 -MOD05_021F0604: ; 0x021F0604 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4, #8] - cmp r0, #0 - beq _021F061C - add r1, r4, #0 - add r1, #0xc - bl MOD05_021F20D8 -_021F061C: - add r4, #8 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2060 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0x14 - bl FUN_02058410 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0634 -MOD05_021F0634: ; 0x021F0634 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F0678 - ldr r0, [r4, #8] - cmp r0, #0 - bne _021F0658 - add r1, r4, #0 - add r0, r5, #0 - add r1, #8 - bl MOD05_021F1FC8 -_021F0658: - ldr r0, [r4, #8] - cmp r0, #0 - beq _021F0678 - add r1, r4, #0 - add r1, #0xc - bl MOD05_021F20F8 - ldr r1, [r4, #8] - add r0, r5, #0 - bl MOD05_021F2F48 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0x14 - bl FUN_02058418 -_021F0678: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F067C -MOD05_021F067C: ; 0x021F067C - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r4, r0, #0 - bl FUN_02058628 - ldr r7, [r0, #8] - add r0, r4, #0 - bl FUN_02058628 - str r0, [sp] - add r0, r4, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F06E6 - cmp r7, #0 - beq _021F06E6 - add r0, r4, #0 - bl FUN_020584C4 - str r0, [sp, #4] - add r0, r4, #0 - bl FUN_0205854C - add r5, r0, #0 - cmp r5, #9 - blt _021F06B6 - bl GF_AssertFail -_021F06B6: - lsl r6, r5, #2 - ldr r5, _021F06EC ; UNK05_021FC4B4 - ldr r2, [sp] - ldr r3, [sp, #4] - ldr r5, [r5, r6] - add r0, r4, #0 - add r1, r7, #0 - blx r5 - ldr r1, [sp, #4] - ldr r0, [sp] - strh r1, [r0] - add r0, r4, #0 - bl FUN_0205854C - ldr r1, [sp] - str r0, [r1, #4] - add r0, r4, #0 - add r1, r7, #0 - bl MOD05_021F2F48 - add r0, r4, #0 - add r1, r7, #0 - bl MOD05_021F19A4 -_021F06E6: - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F06EC: .word UNK05_021FC4B4 - - thumb_func_start MOD05_021F06F0 -MOD05_021F06F0: ; 0x021F06F0 - push {r3, r4, r5, lr} - add r4, r0, #0 - bl FUN_02058628 - add r5, r0, #0 - add r0, r4, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F071A - ldr r5, [r5, #8] - cmp r5, #0 - beq _021F071A - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F2F48 - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F19A4 -_021F071A: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F071C -MOD05_021F071C: ; 0x021F071C - push {r3, r4, r5, lr} - add r4, r0, #0 - bl FUN_02058628 - add r5, r0, #0 - add r0, r4, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F075A - ldr r5, [r5, #8] - cmp r5, #0 - beq _021F075A - add r0, r4, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F074A - mov r1, #1 - add r0, r5, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 -_021F074A: - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F2F48 - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F19A4 -_021F075A: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F075C -MOD05_021F075C: ; 0x021F075C - push {r4, lr} - mov r0, #0 - ldrsh r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - beq _021F0780 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F0786 -_021F0780: - add r0, r4, #0 - bl MOD05_021F194C -_021F0786: - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F854 - pop {r4, pc} - - thumb_func_start MOD05_021F0790 -MOD05_021F0790: ; 0x021F0790 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0 - ldrsh r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - beq _021F07B4 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F07B4: - add r0, r5, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F07C8 - mov r1, #2 - add r0, r4, #0 - lsl r1, r1, #0xa - bl FUN_0201F854 -_021F07C8: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F07CC -MOD05_021F07CC: ; 0x021F07CC - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0 - ldrsh r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - beq _021F07F0 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F07F0: - add r0, r5, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F0804 - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 -_021F0804: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0808 -MOD05_021F0808: ; 0x021F0808 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0 - ldrsh r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - beq _021F082C - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F082C: - add r0, r5, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F0840 - mov r1, #2 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 -_021F0840: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0844 -MOD05_021F0844: ; 0x021F0844 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0 - ldrsh r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - beq _021F0868 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F0868: - add r0, r5, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F087C - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xe - bl FUN_0201F854 -_021F087C: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0880 -MOD05_021F0880: ; 0x021F0880 - push {r3, r4, r5, r6, lr} - sub sp, #0x1c - add r6, r0, #0 - add r4, r2, #0 - mov r0, #0 - ldrsh r0, [r4, r0] - add r5, r1, #0 - cmp r3, r0 - beq _021F08AC - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - mov r0, #0 - strh r0, [r4, #2] -_021F08AC: - ldr r0, [r4, #4] - cmp r0, #6 - beq _021F08B6 - mov r0, #0 - strh r0, [r4, #2] -_021F08B6: - add r0, r6, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F08FC - ldr r6, _021F0900 ; =UNK05_021FC43C - add r3, sp, #0 - ldmia r6!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r6] - mov r1, #2 - str r0, [r3] - ldrsh r1, [r4, r1] - add r0, r5, #0 - lsl r1, r1, #2 - ldr r1, [r2, r1] - bl FUN_0201F854 - mov r0, #2 - ldrsh r1, [r4, r0] - add r1, r1, #1 - strh r1, [r4, #2] - ldrsh r0, [r4, r0] - lsl r1, r0, #2 - add r0, sp, #0 - ldr r0, [r0, r1] - cmp r0, #0 - bne _021F08FC - mov r0, #0 - strh r0, [r4, #2] -_021F08FC: - add sp, #0x1c - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_021F0900: .word UNK05_021FC43C - - thumb_func_start MOD05_021F0904 -MOD05_021F0904: ; 0x021F0904 - push {r4, r5, r6, lr} - sub sp, #0x10 - add r6, r0, #0 - add r4, r2, #0 - mov r0, #0 - ldrsh r0, [r4, r0] - add r5, r1, #0 - cmp r3, r0 - beq _021F0930 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - mov r0, #0 - strh r0, [r4, #2] -_021F0930: - ldr r0, [r4, #4] - cmp r0, #7 - beq _021F093A - mov r0, #0 - strh r0, [r4, #2] -_021F093A: - add r0, r6, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F0978 - ldr r6, _021F097C ; =UNK05_021FC42C - add r3, sp, #0 - add r2, r3, #0 - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - mov r1, #2 - ldrsh r1, [r4, r1] - add r0, r5, #0 - lsl r1, r1, #2 - ldr r1, [r2, r1] - bl FUN_0201F854 - mov r0, #2 - ldrsh r1, [r4, r0] - add r1, r1, #1 - strh r1, [r4, #2] - ldrsh r0, [r4, r0] - lsl r1, r0, #2 - add r0, sp, #0 - ldr r0, [r0, r1] - cmp r0, #0 - bne _021F0978 - mov r0, #0 - strh r0, [r4, #2] -_021F0978: - add sp, #0x10 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021F097C: .word UNK05_021FC42C - - thumb_func_start MOD05_021F0980 -MOD05_021F0980: ; 0x021F0980 - push {r4, r5, r6, lr} - sub sp, #0x20 - add r6, r0, #0 - add r4, r2, #0 - mov r0, #0 - ldrsh r0, [r4, r0] - add r5, r1, #0 - cmp r3, r0 - beq _021F09AC - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - mov r0, #0 - strh r0, [r4, #2] -_021F09AC: - ldr r0, [r4, #4] - cmp r0, #8 - beq _021F09B6 - mov r0, #0 - strh r0, [r4, #2] -_021F09B6: - add r0, r6, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F09FC - ldr r6, _021F0A00 ; =UNK05_021FC494 - add r3, sp, #0 - add r2, r3, #0 - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - mov r1, #2 - ldrsh r1, [r4, r1] - add r0, r5, #0 - lsl r1, r1, #2 - ldr r1, [r2, r1] - bl FUN_0201F854 - mov r0, #2 - ldrsh r1, [r4, r0] - add r1, r1, #1 - strh r1, [r4, #2] - ldrsh r0, [r4, r0] - lsl r1, r0, #2 - add r0, sp, #0 - ldr r0, [r0, r1] - cmp r0, #0 - bne _021F09FC - mov r0, #0 - strh r0, [r4, #2] -_021F09FC: - add sp, #0x20 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021F0A00: .word UNK05_021FC494 - - thumb_func_start MOD05_021F0A04 -MOD05_021F0A04: ; 0x021F0A04 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r4, r0, #0 - bl FUN_02058628 - ldr r7, [r0, #8] - add r0, r4, #0 - bl FUN_02058628 - str r0, [sp] - add r0, r4, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F0A6E - cmp r7, #0 - beq _021F0A6E - add r0, r4, #0 - - thumb_func_start MOD05_021F0A28 -MOD05_021F0A28: ; 0x021F0A28 - bl FUN_020584C4 - str r0, [sp, #4] - add r0, r4, #0 - bl FUN_0205854C - add r5, r0, #0 - cmp r5, #0xa - blt _021F0A3E - bl GF_AssertFail -_021F0A3E: - lsl r6, r5, #2 - ldr r5, _021F0A74 ; =UNK05_021FC528 - ldr r2, [sp] - ldr r3, [sp, #4] - ldr r5, [r5, r6] - add r0, r4, #0 - add r1, r7, #0 - blx r5 - ldr r1, [sp, #4] - ldr r0, [sp] - strh r1, [r0] - add r0, r4, #0 - bl FUN_0205854C - ldr r1, [sp] - str r0, [r1, #4] - add r0, r4, #0 - add r1, r7, #0 - bl MOD05_021F2F48 - add r0, r4, #0 - add r1, r7, #0 - bl MOD05_021F19A4 -_021F0A6E: - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F0A74: .word UNK05_021FC528 - - thumb_func_start MOD05_021F0A78 -MOD05_021F0A78: ; 0x021F0A78 - push {r4, lr} - mov r0, #0 - ldrsh r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - bne _021F0A8A - ldr r0, [r2, #4] - cmp r0, #9 - bne _021F0AA2 -_021F0A8A: - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F0AA8 -_021F0AA2: - add r0, r4, #0 - bl MOD05_021F194C -_021F0AA8: - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F854 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0AB4 -MOD05_021F0AB4: ; 0x021F0AB4 - push {r4, lr} - ldr r0, [r2, #4] - add r4, r1, #0 - cmp r0, #9 - beq _021F0ACE - add r0, r4, #0 - mov r1, #4 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F0ACE: - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0ADC -MOD05_021F0ADC: ; 0x021F0ADC - push {r3, r4, r5, lr} - mov r1, #0x14 - add r5, r0, #0 - bl FUN_02058604 - add r4, r0, #0 - mov r0, #0 - mvn r0, r0 - strb r0, [r4] - bl LCRandom - lsr r2, r0, #0x1f - lsl r1, r0, #0x1c - sub r1, r1, r2 - mov r0, #0x1c - ror r1, r0 - add r0, r2, r1 - strb r0, [r4, #2] - add r0, r5, #0 - add r1, r4, #4 - bl MOD05_021F1FC8 - ldr r0, [r4, #4] - cmp r0, #0 - beq _021F0B14 - add r0, r5, #0 - bl FUN_020586A0 -_021F0B14: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0B18 -MOD05_021F0B18: ; 0x021F0B18 - push {r4, lr} - add r4, r0, #0 - bl FUN_02058628 - add r1, r0, #0 - add r0, r4, #0 - add r1, r1, #4 - bl MOD05_021F2060 - pop {r4, pc} - - thumb_func_start MOD05_021F0B2C -MOD05_021F0B2C: ; 0x021F0B2C - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4, #4] - cmp r0, #0 - beq _021F0B44 - add r1, r4, #0 - add r1, #8 - bl MOD05_021F20D8 -_021F0B44: - add r0, r5, #0 - add r1, r4, #4 - bl MOD05_021F2060 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0x14 - bl FUN_02058410 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F0B58 -MOD05_021F0B58: ; 0x021F0B58 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F0B9A - ldr r0, [r4, #4] - cmp r0, #0 - bne _021F0B7A - add r0, r5, #0 - add r1, r4, #4 - bl MOD05_021F1FC8 -_021F0B7A: - ldr r0, [r4, #4] - cmp r0, #0 - beq _021F0B9A - add r1, r4, #0 - add r1, #8 - bl MOD05_021F20F8 - ldr r1, [r4, #4] - add r0, r5, #0 - bl MOD05_021F2F48 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0x14 - bl FUN_02058418 -_021F0B9A: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F0B9C -MOD05_021F0B9C: ; 0x021F0B9C - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - bl FUN_02058628 - ldr r6, [r0, #4] - add r0, r5, #0 - bl FUN_02058628 - add r4, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F0C26 - cmp r6, #0 - beq _021F0C26 - add r0, r5, #0 - bl FUN_020584C4 - add r7, r0, #0 - add r0, r5, #0 - bl FUN_0205854C - mov r1, #2 - ldrsb r0, [r4, r1] - cmp r0, #0 - beq _021F0BE0 - sub r0, r0, #1 - strb r0, [r4, #2] - add r0, r6, #0 - mov r1, #0 - bl FUN_0201F854 - b _021F0C0C -_021F0BE0: - add r0, r6, #0 - lsl r1, r1, #0xb - bl FUN_0201F854 - mov r0, #1 - ldrsb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, #1] - ldrsb r0, [r4, r0] - cmp r0, #0x20 - blt _021F0C0C - mov r0, #0 - strb r0, [r4, #1] - bl LCRandom - lsr r1, r0, #0x1f - lsl r2, r0, #0x1c - sub r2, r2, r1 - mov r0, #0x1c - ror r2, r0 - add r0, r1, r2 - strb r0, [r4, #2] -_021F0C0C: - strb r7, [r4] - add r0, r5, #0 - bl FUN_0205854C - strb r0, [r4, #3] - add r0, r5, #0 - add r1, r6, #0 - bl MOD05_021F2F48 - add r0, r5, #0 - add r1, r6, #0 - bl MOD05_021F19A4 -_021F0C26: - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F0C28 -MOD05_021F0C28: ; 0x021F0C28 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r0, #0 - bl FUN_02058628 - ldr r4, [r0, #8] - add r0, r5, #0 - bl FUN_02058628 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F0CEA - cmp r4, #0 - beq _021F0CEA - add r0, r5, #0 - bl FUN_020584C4 - add r7, r0, #0 - add r0, r5, #0 - bl FUN_0205854C - cmp r0, #0 - bne _021F0C9E - cmp r7, #1 - bls _021F0C66 - mov r0, #1 - str r0, [sp, #4] - b _021F0C6A -_021F0C66: - mov r0, #0 - str r0, [sp, #4] -_021F0C6A: - add r0, r4, #0 - bl FUN_0201F844 - ldr r1, [sp, #4] - cmp r1, r0 - bne _021F0C7C - ldr r0, [r6, #4] - cmp r0, #0 - bne _021F0C94 -_021F0C7C: - ldr r1, [sp, #4] - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F854 -_021F0C94: - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F854 - b _021F0CD0 -_021F0C9E: - cmp r7, #1 - bls _021F0CA8 - mov r0, #1 - str r0, [sp] - b _021F0CAC -_021F0CA8: - mov r0, #0 - str r0, [sp] -_021F0CAC: - add r0, r4, #0 - bl FUN_0201F844 - ldr r1, [sp] - cmp r1, r0 - beq _021F0CC6 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F0CC6: - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 -_021F0CD0: - strh r7, [r6] - add r0, r5, #0 - bl FUN_0205854C - str r0, [r6, #4] - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2F48 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F19A4 -_021F0CEA: - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0CF0 -MOD05_021F0CF0: ; 0x021F0CF0 - push {r3, r4, r5, lr} - mov r1, #0x14 - add r5, r0, #0 - bl FUN_02058604 - add r4, r0, #0 - mov r0, #0 - mvn r0, r0 - strb r0, [r4] - add r0, r5, #0 - add r1, r4, #4 - bl MOD05_021F1FC8 - ldr r0, [r4, #4] - cmp r0, #0 - beq _021F0D16 - add r0, r5, #0 - bl FUN_020586A0 -_021F0D16: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F0D18 -MOD05_021F0D18: ; 0x021F0D18 - push {r3, r4, lr} - sub sp, #0xc - add r2, sp, #0 - mov r1, #0 - str r1, [r2] - str r1, [r2, #4] - add r4, r0, #0 - str r1, [r2, #8] - bl FUN_02058628 - add r1, r0, #0 - add r0, r4, #0 - add r1, r1, #4 - bl MOD05_021F2060 - add r0, r4, #0 - add r1, sp, #0 - bl FUN_02058B94 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0D44 -MOD05_021F0D44: ; 0x021F0D44 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4, #4] - cmp r0, #0 - beq _021F0D5C - add r1, r4, #0 - add r1, #8 - bl MOD05_021F20D8 -_021F0D5C: - add r0, r5, #0 - add r1, r4, #4 - bl MOD05_021F2060 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0x14 - bl FUN_02058410 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F0D70 -MOD05_021F0D70: ; 0x021F0D70 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F0DB2 - ldr r0, [r4, #4] - cmp r0, #0 - bne _021F0D92 - add r0, r5, #0 - add r1, r4, #4 - bl MOD05_021F1FC8 -_021F0D92: - ldr r0, [r4, #4] - cmp r0, #0 - beq _021F0DB2 - add r1, r4, #0 - add r1, #8 - bl MOD05_021F20F8 - ldr r1, [r4, #4] - add r0, r5, #0 - bl MOD05_021F2F48 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0x14 - bl FUN_02058418 -_021F0DB2: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F0DB4 -MOD05_021F0DB4: ; 0x021F0DB4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r4, r0, #0 - bl FUN_02058628 - ldr r7, [r0, #4] - add r0, r4, #0 - bl FUN_02058628 - str r0, [sp] - add r0, r4, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F0E1E - cmp r7, #0 - beq _021F0E1E - add r0, r4, #0 - bl FUN_020584C4 - str r0, [sp, #4] - add r0, r4, #0 - bl FUN_0205854C - add r5, r0, #0 - cmp r5, #0xa - blt _021F0DEE - bl GF_AssertFail -_021F0DEE: - lsl r6, r5, #2 - ldr r5, _021F0E24 ; =UNK05_021FC500 - ldr r2, [sp] - ldr r3, [sp, #4] - ldr r5, [r5, r6] - add r0, r4, #0 - add r1, r7, #0 - blx r5 - ldr r1, [sp, #4] - ldr r0, [sp] - strb r1, [r0] - add r0, r4, #0 - bl FUN_0205854C - ldr r1, [sp] - strb r0, [r1, #2] - add r0, r4, #0 - add r1, r7, #0 - bl MOD05_021F2F48 - add r0, r4, #0 - add r1, r7, #0 - bl MOD05_021F19A4 -_021F0E1E: - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F0E24: .word UNK05_021FC500 - - thumb_func_start MOD05_021F0E28 -MOD05_021F0E28: ; 0x021F0E28 - push {r3, r4, r5, lr} - add r4, r2, #0 - mov r0, #0 - ldrsb r0, [r4, r0] - add r5, r1, #0 - cmp r3, r0 - beq _021F0E56 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - ldrb r1, [r4, #3] - mov r0, #1 - bic r1, r0 - strb r1, [r4, #3] - pop {r3, r4, r5, pc} -_021F0E56: - mov r0, #2 - ldrsb r0, [r4, r0] - cmp r0, #9 - bne _021F0E6C - ldrb r1, [r4, #3] - mov r0, #1 - bic r1, r0 - mov r0, #1 - orr r0, r1 - strb r0, [r4, #3] - pop {r3, r4, r5, pc} -_021F0E6C: - ldrb r0, [r4, #3] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - cmp r0, #1 - bne _021F0E8E - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl MOD05_021F1980 - ldrb r1, [r4, #3] - mov r0, #1 - bic r1, r0 - strb r1, [r4, #3] - pop {r3, r4, r5, pc} -_021F0E8E: - add r0, r5, #0 - bl MOD05_021F194C - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0E98 -MOD05_021F0E98: ; 0x021F0E98 - push {r4, r5, r6, lr} - add r6, r0, #0 - add r4, r2, #0 - mov r0, #0 - ldrsb r0, [r4, r0] - add r5, r1, #0 - cmp r3, r0 - beq _021F0EC0 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F0EF6 -_021F0EC0: - mov r0, #2 - ldrsb r0, [r4, r0] - cmp r0, #9 - bne _021F0ED6 - ldrb r1, [r4, #3] - mov r0, #1 - bic r1, r0 - mov r0, #1 - orr r0, r1 - strb r0, [r4, #3] - pop {r4, r5, r6, pc} -_021F0ED6: - ldrb r0, [r4, #3] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - cmp r0, #1 - bne _021F0EF6 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl MOD05_021F1980 - ldrb r1, [r4, #3] - mov r0, #1 - bic r1, r0 - strb r1, [r4, #3] -_021F0EF6: - add r0, r6, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F0F0A - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0xa - bl FUN_0201F854 -_021F0F0A: - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F0F0C -MOD05_021F0F0C: ; 0x021F0F0C - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0 - ldrsb r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - beq _021F0F32 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F0F48 -_021F0F32: - mov r0, #2 - ldrsb r0, [r2, r0] - cmp r0, #9 - bne _021F0F48 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl MOD05_021F1980 -_021F0F48: - add r0, r5, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F0F5C - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 -_021F0F5C: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0F60 -MOD05_021F0F60: ; 0x021F0F60 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0 - ldrsb r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - beq _021F0F86 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F0F9C -_021F0F86: - mov r0, #2 - ldrsb r0, [r2, r0] - cmp r0, #9 - bne _021F0F9C - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl MOD05_021F1980 -_021F0F9C: - add r0, r5, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F0FB0 - mov r1, #2 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 -_021F0FB0: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F0FB4 -MOD05_021F0FB4: ; 0x021F0FB4 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0 - ldrsb r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - beq _021F0FDA - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F0FF0 -_021F0FDA: - mov r0, #2 - ldrsb r0, [r2, r0] - cmp r0, #9 - bne _021F0FF0 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl MOD05_021F1980 -_021F0FF0: - add r0, r5, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F1004 - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xe - bl FUN_0201F854 -_021F1004: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1008 -MOD05_021F1008: ; 0x021F1008 - push {r3, r4, r5, r6, lr} - sub sp, #0x1c - add r6, r0, #0 - add r4, r2, #0 - mov r0, #0 - ldrsb r0, [r4, r0] - add r5, r1, #0 - cmp r3, r0 - beq _021F1036 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - mov r0, #0 - strb r0, [r4, #1] - b _021F104C -_021F1036: - mov r0, #2 - ldrsb r0, [r4, r0] - cmp r0, #9 - bne _021F104C - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl MOD05_021F1980 -_021F104C: - mov r0, #2 - ldrsb r0, [r4, r0] - cmp r0, #6 - beq _021F1058 - mov r0, #0 - strb r0, [r4, #1] -_021F1058: - add r0, r6, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F109E - ldr r6, _021F10A4 ; =UNK05_021FC458 - add r3, sp, #0 - ldmia r6!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r6] - mov r1, #1 - str r0, [r3] - ldrsb r1, [r4, r1] - add r0, r5, #0 - lsl r1, r1, #2 - ldr r1, [r2, r1] - bl FUN_0201F854 - mov r0, #1 - ldrsb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, #1] - ldrsb r0, [r4, r0] - lsl r1, r0, #2 - add r0, sp, #0 - ldr r0, [r0, r1] - cmp r0, #0 - bne _021F109E - mov r0, #0 - strb r0, [r4, #1] -_021F109E: - add sp, #0x1c - pop {r3, r4, r5, r6, pc} - nop -_021F10A4: .word UNK05_021FC458 - - thumb_func_start MOD05_021F10A8 -MOD05_021F10A8: ; 0x021F10A8 - push {r4, r5, r6, lr} - sub sp, #0x10 - add r6, r0, #0 - add r4, r2, #0 - mov r0, #0 - ldrsb r0, [r4, r0] - add r5, r1, #0 - cmp r3, r0 - beq _021F10D6 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - mov r0, #0 - strb r0, [r4, #1] - b _021F10EC -_021F10D6: - mov r0, #2 - ldrsb r0, [r4, r0] - cmp r0, #9 - bne _021F10EC - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl MOD05_021F1980 -_021F10EC: - mov r0, #2 - ldrsb r0, [r4, r0] - cmp r0, #7 - beq _021F10F8 - mov r0, #0 - strb r0, [r4, #1] -_021F10F8: - add r0, r6, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F1136 - ldr r6, _021F113C ; =UNK05_021FC3EC - add r3, sp, #0 - add r2, r3, #0 - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - mov r1, #1 - ldrsb r1, [r4, r1] - add r0, r5, #0 - lsl r1, r1, #2 - ldr r1, [r2, r1] - bl FUN_0201F854 - mov r0, #1 - ldrsb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, #1] - ldrsb r0, [r4, r0] - lsl r1, r0, #2 - add r0, sp, #0 - ldr r0, [r0, r1] - cmp r0, #0 - bne _021F1136 - mov r0, #0 - strb r0, [r4, #1] -_021F1136: - add sp, #0x10 - pop {r4, r5, r6, pc} - nop -_021F113C: .word UNK05_021FC3EC - - thumb_func_start MOD05_021F1140 -MOD05_021F1140: ; 0x021F1140 - push {r4, r5, r6, lr} - sub sp, #0x20 - add r6, r0, #0 - add r4, r2, #0 - mov r0, #0 - ldrsb r0, [r4, r0] - add r5, r1, #0 - cmp r3, r0 - beq _021F116E - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - mov r0, #0 - strb r0, [r4, #1] - b _021F1184 -_021F116E: - mov r0, #2 - ldrsb r0, [r4, r0] - cmp r0, #9 - bne _021F1184 - add r0, r3, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r5, #0 - bl MOD05_021F1980 -_021F1184: - mov r0, #2 - ldrsb r0, [r4, r0] - cmp r0, #8 - beq _021F1190 - mov r0, #0 - strb r0, [r4, #1] -_021F1190: - add r0, r6, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F11D6 - ldr r6, _021F11DC ; =UNK05_021FC474 - add r3, sp, #0 - add r2, r3, #0 - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - mov r1, #1 - ldrsb r1, [r4, r1] - add r0, r5, #0 - lsl r1, r1, #2 - ldr r1, [r2, r1] - bl FUN_0201F854 - mov r0, #1 - ldrsb r1, [r4, r0] - add r1, r1, #1 - strb r1, [r4, #1] - ldrsb r0, [r4, r0] - lsl r1, r0, #2 - add r0, sp, #0 - ldr r0, [r0, r1] - cmp r0, #0 - bne _021F11D6 - mov r0, #0 - strb r0, [r4, #1] -_021F11D6: - add sp, #0x20 - pop {r4, r5, r6, pc} - nop -_021F11DC: .word UNK05_021FC474 - - thumb_func_start MOD05_021F11E0 -MOD05_021F11E0: ; 0x021F11E0 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0 - ldrsb r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - beq _021F1206 - add r0, r3, #0 - bl MOD05_021F2FB8 - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F121E -_021F1206: - mov r0, #2 - ldrsb r0, [r2, r0] - cmp r0, #9 - beq _021F121E - add r0, r3, #0 - bl MOD05_021F2FB8 - add r1, r0, #0 - add r0, r4, #0 - mov r2, #4 - bl MOD05_021F1958 -_021F121E: - add r0, r5, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F1232 - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 -_021F1232: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F1234 -MOD05_021F1234: ; 0x021F1234 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r7, r0, #0 - bl FUN_02058628 - ldr r0, [r0, #4] - str r0, [sp] - add r0, r7, #0 - bl FUN_02058628 - add r4, r0, #0 - add r0, r7, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F12B6 - ldr r0, [sp] - cmp r0, #0 - beq _021F12B6 - add r0, r7, #0 - bl FUN_020584C4 - str r0, [sp, #8] - add r0, r7, #0 - bl FUN_0205854C - str r0, [sp, #4] - cmp r0, #0xc - blt _021F1272 - bl GF_AssertFail -_021F1272: - mov r1, #2 - ldrsb r2, [r4, r1] - cmp r2, #0 - bne _021F128C - ldr r0, [sp, #4] - cmp r0, r2 - beq _021F128C - ldrb r0, [r4, #3] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bne _021F128C - sub r0, r1, #3 - strb r0, [r4] -_021F128C: - ldr r5, [sp, #4] - ldr r1, [sp] - lsl r6, r5, #2 - ldr r5, _021F12BC ; =UNK05_021FC4D8 - ldr r3, [sp, #8] - ldr r5, [r5, r6] - add r0, r7, #0 - add r2, r4, #0 - blx r5 - ldr r0, [sp, #8] - ldr r1, [sp] - strb r0, [r4] - ldr r0, [sp, #4] - strb r0, [r4, #2] - add r0, r7, #0 - bl MOD05_021F2F48 - ldr r1, [sp] - add r0, r7, #0 - bl MOD05_021F19A4 -_021F12B6: - add sp, #0xc - pop {r4, r5, r6, r7, pc} - nop -_021F12BC: .word UNK05_021FC4D8 - - thumb_func_start MOD05_021F12C0 -MOD05_021F12C0: ; 0x021F12C0 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - add r6, r3, #0 - add r4, r2, #0 - add r2, sp, #0 - ldr r3, _021F1348 ; =UNK05_021FC3FC - add r5, r1, #0 - add r7, r2, #0 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - lsl r0, r6, #2 - ldr r1, [r7, r0] - mov r0, #0 - ldrsb r0, [r4, r0] - cmp r6, r0 - beq _021F12FE - add r0, r5, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - ldrb r1, [r4, #3] - mov r0, #1 - add sp, #0x10 - bic r1, r0 - strb r1, [r4, #3] - pop {r3, r4, r5, r6, r7, pc} -_021F12FE: - mov r2, #2 - ldrsb r0, [r4, r2] - cmp r0, #0 - beq _021F1316 - ldrb r1, [r4, #3] - mov r0, #1 - add sp, #0x10 - bic r1, r0 - mov r0, #1 - orr r0, r1 - strb r0, [r4, #3] - pop {r3, r4, r5, r6, r7, pc} -_021F1316: - ldrb r0, [r4, #3] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - cmp r0, #1 - bne _021F133A - add r0, r5, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - ldrb r1, [r4, #3] - mov r0, #1 - add sp, #0x10 - bic r1, r0 - strb r1, [r4, #3] - pop {r3, r4, r5, r6, r7, pc} -_021F133A: - add r0, r5, #0 - lsl r1, r2, #0xb - bl FUN_0201F854 - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F1348: .word UNK05_021FC3FC - - thumb_func_start MOD05_021F134C -MOD05_021F134C: ; 0x021F134C - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - add r0, r3, #0 - add r5, r1, #0 - add r6, r2, #0 - str r3, [sp] - bl MOD05_021F2FC4 - add r4, r0, #0 - mov r0, #0 - ldrsb r1, [r6, r0] - ldr r0, [sp] - cmp r0, r1 - bne _021F1370 - mov r0, #2 - ldrsb r0, [r6, r0] - cmp r0, #0 - beq _021F1382 -_021F1370: - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F13B2 -_021F1382: - cmp r0, #0xa - beq _021F1398 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F13B2 -_021F1398: - add r0, r5, #0 - bl FUN_0201F844 - cmp r4, r0 - beq _021F13B2 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 -_021F13B2: - add r0, r7, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F13C6 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0xa - bl FUN_0201F854 -_021F13C6: - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F13C8 -MOD05_021F13C8: ; 0x021F13C8 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - add r0, r3, #0 - add r5, r1, #0 - add r6, r2, #0 - str r3, [sp] - bl MOD05_021F2FC4 - add r4, r0, #0 - mov r0, #0 - ldrsb r1, [r6, r0] - ldr r0, [sp] - cmp r0, r1 - beq _021F13F6 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F142A -_021F13F6: - mov r0, #2 - ldrsb r0, [r6, r0] - cmp r0, #0xb - beq _021F1410 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 - b _021F142A -_021F1410: - add r0, r5, #0 - bl FUN_0201F844 - cmp r4, r0 - beq _021F142A - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0201F830 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F890 -_021F142A: - add r0, r7, #0 - bl MOD05_021F1DFC - cmp r0, #0 - bne _021F143E - mov r1, #1 - add r0, r5, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 -_021F143E: - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F1440 -MOD05_021F1440: ; 0x021F1440 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r4, r0, #0 - bl FUN_02058628 - ldr r7, [r0, #4] - add r0, r4, #0 - bl FUN_02058628 - str r0, [sp] - cmp r7, #0 - beq _021F14B4 - add r0, r4, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F14B4 - add r0, r4, #0 - bl FUN_020584C4 - str r0, [sp, #4] - add r0, r4, #0 - bl FUN_0205854C - add r5, r0, #0 - cmp r5, #4 - blt _021F147A - bl GF_AssertFail -_021F147A: - lsl r6, r5, #2 - ldr r5, _021F14B8 ; =UNK05_021FC40C - ldr r2, [sp] - ldr r3, [sp, #4] - ldr r5, [r5, r6] - add r0, r4, #0 - add r1, r7, #0 - blx r5 - ldr r2, [sp, #4] - add r0, r4, #0 - add r1, r7, #0 - bl MOD05_021F1658 - ldr r1, [sp, #4] - ldr r0, [sp] - strb r1, [r0] - add r0, r4, #0 - bl FUN_0205854C - ldr r1, [sp] - strb r0, [r1, #2] - add r0, r4, #0 - add r1, r7, #0 - bl MOD05_021F2F48 - add r0, r4, #0 - add r1, r7, #0 - bl MOD05_021F19A4 -_021F14B4: - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F14B8: .word UNK05_021FC40C - - thumb_func_start MOD05_021F14BC -MOD05_021F14BC: ; 0x021F14BC - push {r4, lr} - mov r0, #0 - ldrsb r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - bne _021F14D0 - mov r0, #2 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _021F14E6 -_021F14D0: - ldr r1, _021F1508 ; =UNK05_021FC41C - lsl r2, r3, #2 - ldr r1, [r1, r2] - add r0, r4, #0 - bl FUN_0201F830 - mov r1, #0xf - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F890 -_021F14E6: - add r0, r4, #0 - bl FUN_0201F8C0 - mov r1, #1 - lsl r1, r1, #0xc - sub r1, r0, r1 - bpl _021F14F6 - mov r1, #0 -_021F14F6: - add r0, r4, #0 - bl FUN_0201F890 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F854 - pop {r4, pc} - nop -_021F1508: .word UNK05_021FC41C - - thumb_func_start MOD05_021F150C -MOD05_021F150C: ; 0x021F150C - push {r4, lr} - mov r0, #0 - ldrsb r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - bne _021F1520 - mov r0, #2 - ldrsb r0, [r2, r0] - cmp r0, #1 - beq _021F1534 -_021F1520: - ldr r1, _021F1540 ; =UNK05_021FC41C - lsl r2, r3, #2 - ldr r1, [r1, r2] - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F1534: - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 - pop {r4, pc} - .balign 4, 0 -_021F1540: .word UNK05_021FC41C - - thumb_func_start MOD05_021F1544 -MOD05_021F1544: ; 0x021F1544 - push {r3, r4, r5, lr} - add r4, r2, #0 - mov r0, #0 - ldrsb r0, [r4, r0] - add r5, r1, #0 - cmp r3, r0 - bne _021F155A - mov r0, #2 - ldrsb r0, [r4, r0] - cmp r0, #2 - beq _021F1578 -_021F155A: - ldr r1, _021F1604 ; =UNK05_021FC41C - lsl r2, r3, #2 - ldr r1, [r1, r2] - add r0, r5, #0 - bl FUN_0201F830 - mov r1, #0xf - add r0, r5, #0 - lsl r1, r1, #0xc - bl FUN_0201F890 - ldrb r1, [r4, #3] - mov r0, #0xfe - bic r1, r0 - strb r1, [r4, #3] -_021F1578: - add r0, r5, #0 - bl FUN_0201F8C0 - add r1, r0, #0 - ldrb r0, [r4, #3] - lsl r2, r0, #0x18 - lsr r2, r2, #0x19 - beq _021F1592 - cmp r2, #1 - beq _021F15B4 - cmp r2, #2 - beq _021F15DA - b _021F15F4 -_021F1592: - mov r3, #1 - lsl r3, r3, #0xc - sub r1, r1, r3 - mov r3, #0xa - lsl r3, r3, #0xc - cmp r1, r3 - bgt _021F15F4 - add r2, r2, #1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r3, #0xfe - lsl r2, r2, #0x19 - bic r0, r3 - lsr r2, r2, #0x18 - orr r0, r2 - strb r0, [r4, #3] - b _021F15F4 -_021F15B4: - mov r3, #1 - lsl r3, r3, #0xc - add r1, r1, r3 - mov r3, #0xf - lsl r3, r3, #0xc - cmp r1, r3 - blt _021F15F4 - add r2, r2, #1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r3, #0xfe - lsl r2, r2, #0x19 - bic r0, r3 - lsr r2, r2, #0x18 - orr r0, r2 - strb r0, [r4, #3] - mov r0, #0 - strb r0, [r4, #1] - b _021F15F4 -_021F15DA: - mov r0, #1 - ldrsb r2, [r4, r0] - add r2, r2, #1 - strb r2, [r4, #1] - ldrsb r0, [r4, r0] - cmp r0, #0x1e - blt _021F15F4 - mov r0, #0 - strb r0, [r4, #1] - ldrb r2, [r4, #3] - mov r0, #0xfe - bic r2, r0 - strb r2, [r4, #3] -_021F15F4: - add r0, r5, #0 - bl FUN_0201F890 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F854 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021F1604: .word UNK05_021FC41C - - thumb_func_start MOD05_021F1608 -MOD05_021F1608: ; 0x021F1608 - push {r4, lr} - mov r0, #0 - ldrsb r0, [r2, r0] - add r4, r1, #0 - cmp r3, r0 - bne _021F161C - mov r0, #2 - ldrsb r0, [r2, r0] - cmp r0, #3 - beq _021F1632 -_021F161C: - ldr r1, _021F1654 ; =UNK05_021FC41C - lsl r2, r3, #2 - ldr r1, [r1, r2] - add r0, r4, #0 - bl FUN_0201F830 - mov r1, #0xf - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F890 -_021F1632: - add r0, r4, #0 - bl FUN_0201F8C0 - mov r1, #1 - lsl r1, r1, #0xc - sub r1, r0, r1 - bpl _021F1642 - mov r1, #0 -_021F1642: - add r0, r4, #0 - bl FUN_0201F890 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F854 - pop {r4, pc} - nop -_021F1654: .word UNK05_021FC41C - - thumb_func_start MOD05_021F1658 -MOD05_021F1658: ; 0x021F1658 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - add r4, r2, #0 - add r2, sp, #0 - mov r0, #0 - str r0, [r2] - str r0, [r2, #4] - str r0, [r2, #8] - add r0, r1, #0 - bl FUN_0201F880 - asr r1, r0, #0xb - lsr r1, r1, #0x14 - add r1, r0, r1 - asr r0, r1, #0xc - cmp r4, #3 - bhi _021F16BE - add r1, r4, r4 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021F1688: ; jump table - .short _021F16BE - _021F1688 - 2 ; case 0 - .short _021F1690 - _021F1688 - 2 ; case 1 - .short _021F169C - _021F1688 - 2 ; case 2 - .short _021F16AE - _021F1688 - 2 ; case 3 -_021F1690: - cmp r0, #0x18 - blt _021F16BE - mov r0, #6 - lsl r0, r0, #0xc - str r0, [sp, #8] - b _021F16BE -_021F169C: - cmp r0, #0x28 - bge _021F16A8 - mov r0, #1 - lsl r0, r0, #0xc - str r0, [sp] - b _021F16BE -_021F16A8: - ldr r0, _021F16CC ; =0xFFFFB000 - str r0, [sp] - b _021F16BE -_021F16AE: - cmp r0, #0x38 - bge _021F16B8 - ldr r0, _021F16D0 ; =0xFFFFF000 - str r0, [sp] - b _021F16BE -_021F16B8: - mov r0, #5 - lsl r0, r0, #0xc - str r0, [sp] -_021F16BE: - add r0, r5, #0 - add r1, sp, #0 - bl FUN_02058B94 - add sp, #0xc - pop {r4, r5, pc} - nop -_021F16CC: .word 0xFFFFB000 -_021F16D0: .word 0xFFFFF000 - - thumb_func_start MOD05_021F16D4 -MOD05_021F16D4: ; 0x021F16D4 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - bl FUN_02058628 - ldr r4, [r0, #4] - add r0, r5, #0 - bl FUN_02058628 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F1734 - cmp r4, #0 - beq _021F1734 - add r0, r5, #0 - bl FUN_020584C4 - add r7, r0, #0 - strb r7, [r6] - add r0, r5, #0 - bl FUN_0205854C - strb r0, [r6, #2] - add r0, r7, #0 - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F854 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2F48 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F19A4 -_021F1734: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1738 -MOD05_021F1738: ; 0x021F1738 - push {r4, r5, r6, lr} - add r5, r0, #0 - bl FUN_02058628 - ldr r4, [r0, #4] - add r0, r5, #0 - bl FUN_02058628 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F179C - cmp r4, #0 - beq _021F179C - add r0, r5, #0 - bl FUN_020584C4 - strb r0, [r6] - add r0, r5, #0 - bl FUN_0205854C - strb r0, [r6, #2] - add r0, r4, #0 - bl FUN_0201F844 - cmp r0, #0 - beq _021F1782 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F1782: - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2F48 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F19A4 -_021F179C: - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F17A0 -MOD05_021F17A0: ; 0x021F17A0 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - bl FUN_02058628 - ldr r4, [r0, #4] - add r0, r5, #0 - bl FUN_02058628 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F1836 - cmp r4, #0 - beq _021F1836 - add r0, r5, #0 - bl FUN_020584C4 - add r7, r0, #0 - add r0, r5, #0 - bl FUN_0205854C - cmp r0, #0 - bne _021F17F8 - add r0, r4, #0 - bl FUN_0201F844 - cmp r0, #1 - beq _021F17EC - add r0, r4, #0 - mov r1, #1 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F17EC: - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 - b _021F181C -_021F17F8: - add r0, r4, #0 - bl FUN_0201F844 - cmp r0, #0 - beq _021F1812 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F1812: - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 -_021F181C: - strb r7, [r6] - add r0, r5, #0 - bl FUN_0205854C - strb r0, [r6, #2] - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2F48 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F19A4 -_021F1836: - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F1838 -MOD05_021F1838: ; 0x021F1838 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - bl FUN_02058628 - ldr r4, [r0, #4] - add r0, r5, #0 - bl FUN_02058628 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F18A0 - cmp r4, #0 - beq _021F18A0 - add r0, r5, #0 - bl FUN_020584C4 - mov r1, #0 - ldrsb r1, [r6, r1] - add r7, r0, #0 - cmp r7, r1 - beq _021F187C - bl MOD05_021F2FAC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F187C: - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2F48 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F19A4 - add r0, r5, #0 - strb r7, [r6] - bl FUN_0205854C - strb r0, [r6, #2] -_021F18A0: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F18A4 -MOD05_021F18A4: ; 0x021F18A4 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - bl FUN_02058628 - ldr r4, [r0, #4] - add r0, r5, #0 - bl FUN_02058628 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F191A - cmp r4, #0 - beq _021F191A - add r0, r5, #0 - bl FUN_020584C4 - str r0, [sp] - add r0, r5, #0 - bl FUN_0205854C - add r7, r0, #0 - mov r0, #2 - ldrsb r0, [r6, r0] - cmp r7, r0 - beq _021F18FA - cmp r7, #0 - bne _021F18EA - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F830 - b _021F18F2 -_021F18EA: - add r0, r4, #0 - mov r1, #1 - bl FUN_0201F830 -_021F18F2: - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 -_021F18FA: - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 - ldr r0, [sp] - add r1, r4, #0 - strb r0, [r6] - add r0, r5, #0 - strb r7, [r6, #2] - bl MOD05_021F2F48 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F19A4 -_021F191A: - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F191C -MOD05_021F191C: ; 0x021F191C - push {r4, r5, r6, lr} - add r5, r0, #0 - add r6, r1, #0 - bl FUN_0201F8C0 - asr r1, r0, #0xb - lsr r1, r1, #0x14 - add r1, r0, r1 - asr r4, r1, #0xc - add r0, r4, #0 - add r1, r6, #0 - bl _s32_div_f - sub r1, r4, r1 - add r0, r5, #0 - lsl r1, r1, #0xc - bl FUN_0201F890 - add r0, r5, #0 - mov r1, #0 - bl FUN_0201F854 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F194C -MOD05_021F194C: ; 0x021F194C - ldr r3, _021F1954 ; =MOD05_021F191C - mov r1, #8 - bx r3 - nop -_021F1954: .word MOD05_021F191C - - thumb_func_start MOD05_021F1958 -MOD05_021F1958: ; 0x021F1958 - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - add r1, r2, #0 - bl MOD05_021F191C - add r0, r5, #0 - bl FUN_0201F8C0 - add r6, r0, #0 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0201F830 - add r0, r5, #0 - add r1, r6, #0 - bl FUN_0201F890 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1980 -MOD05_021F1980: ; 0x021F1980 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F194C - add r0, r5, #0 - bl FUN_0201F8C0 - add r6, r0, #0 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0201F830 - add r0, r5, #0 - add r1, r6, #0 - bl FUN_0201F890 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F19A4 -MOD05_021F19A4: ; 0x021F19A4 - push {r4, r5, r6, lr} - mov r4, #1 - add r6, r1, #0 - lsl r1, r4, #9 - add r5, r0, #0 - bl FUN_0205842C - cmp r0, #1 - bne _021F19B8 - mov r4, #0 -_021F19B8: - mov r1, #1 - add r0, r5, #0 - lsl r1, r1, #0xc - bl FUN_0205842C - cmp r0, #1 - bne _021F19D6 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0xc - bl FUN_0205842C - cmp r0, #0 - bne _021F19D6 - mov r4, #0 -_021F19D6: - lsl r1, r4, #0x18 - add r0, r6, #0 - lsr r1, r1, #0x18 - bl FUN_0201F80C - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F19E4 -MOD05_021F19E4: ; 0x021F19E4 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r1, #4 - bl FUN_02058604 - add r4, r0, #0 - add r0, r5, #0 - bl MOD06_0224A130 - str r0, [r4] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F19FC -MOD05_021F19FC: ; 0x021F19FC - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r1, #4 - bl FUN_02058604 - add r4, r0, #0 - add r0, r5, #0 - bl MOD06_0224A6B8 - str r0, [r4] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1A14 -MOD05_021F1A14: ; 0x021F1A14 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r1, #4 - bl FUN_02058604 - add r4, r0, #0 - add r0, r5, #0 - bl MOD06_0224A8D4 - str r0, [r4] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1A2C -MOD05_021F1A2C: ; 0x021F1A2C - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r1, #4 - bl FUN_02058604 - add r4, r0, #0 - add r0, r5, #0 - bl MOD06_0224AA40 - str r0, [r4] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1A44 -MOD05_021F1A44: ; 0x021F1A44 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F1A48 -MOD05_021F1A48: ; 0x021F1A48 - push {r4, lr} - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F1A5E - bl MOD05_021E4DE4 - mov r0, #0 - str r0, [r4] -_021F1A5E: - pop {r4, pc} - - thumb_func_start MOD05_021F1A60 -MOD05_021F1A60: ; 0x021F1A60 - push {r4, lr} - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F1A76 - bl MOD05_021E4DE4 - mov r0, #0 - str r0, [r4] -_021F1A76: - pop {r4, pc} - - thumb_func_start MOD05_021F1A78 -MOD05_021F1A78: ; 0x021F1A78 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F1A8C - bl GF_AssertFail -_021F1A8C: - add r0, r5, #0 - bl MOD06_0224A130 - str r0, [r4] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1A98 -MOD05_021F1A98: ; 0x021F1A98 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F1AAC - bl GF_AssertFail -_021F1AAC: - add r0, r5, #0 - bl MOD06_0224A6B8 - str r0, [r4] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1AB8 -MOD05_021F1AB8: ; 0x021F1AB8 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F1ACC - bl GF_AssertFail -_021F1ACC: - add r0, r5, #0 - bl MOD06_0224A8D4 - str r0, [r4] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1AD8 -MOD05_021F1AD8: ; 0x021F1AD8 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F1AEC - bl GF_AssertFail -_021F1AEC: - add r0, r5, #0 - bl MOD06_0224AA40 - str r0, [r4] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1AF8 -MOD05_021F1AF8: ; 0x021F1AF8 - push {r4, lr} - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4] - bl MOD06_0224A6FC - mov r0, #0 - str r0, [r4] - pop {r4, pc} - - thumb_func_start MOD05_021F1B0C -MOD05_021F1B0C: ; 0x021F1B0C - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - bl MOD05_021F1C34 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - add r0, r4, #0 - add r1, sp, #0 - bl FUN_02058BB4 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1B2C -MOD05_021F1B2C: ; 0x021F1B2C - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - ldr r4, [r0] - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F1B54 - cmp r4, #0 - beq _021F1B54 - add r0, r5, #0 - bl MOD05_021F1C48 - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xc - bl FUN_0201F854 -_021F1B54: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1B58 -MOD05_021F1B58: ; 0x021F1B58 - ldr r3, _021F1B5C ; =MOD05_021F1CA4 - bx r3 - .balign 4, 0 -_021F1B5C: .word MOD05_021F1CA4 - - thumb_func_start MOD05_021F1B60 -MOD05_021F1B60: ; 0x021F1B60 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F1B76 - add r1, r4, #4 - bl MOD05_021F20D8 -_021F1B76: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2060 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0x14 - bl FUN_02058410 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1B8C -MOD05_021F1B8C: ; 0x021F1B8C - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - add r4, r0, #0 - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F1BCC - ldr r0, [r4] - cmp r0, #0 - bne _021F1BAE - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F1FC8 -_021F1BAE: - ldr r0, [r4] - cmp r0, #0 - beq _021F1BCC - add r1, r4, #4 - bl MOD05_021F20F8 - ldr r1, [r4] - add r0, r5, #0 - bl MOD05_021F2F48 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0x14 - bl FUN_02058418 -_021F1BCC: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1BD0 -MOD05_021F1BD0: ; 0x021F1BD0 - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - bl MOD05_021F1C34 - mov r1, #0 - mov r0, #6 - lsl r0, r0, #0xe - str r0, [sp, #4] - str r1, [sp] - str r1, [sp, #8] - add r0, r4, #0 - add r1, sp, #0 - bl FUN_02058BB4 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1BF4 -MOD05_021F1BF4: ; 0x021F1BF4 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - ldr r4, [r0] - add r0, r5, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F1C12 - cmp r4, #0 - beq _021F1C12 - add r0, r5, #0 - bl MOD05_021F1C48 -_021F1C12: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F1C14 -MOD05_021F1C14: ; 0x021F1C14 - ldr r3, _021F1C18 ; =MOD05_021F1CA4 - bx r3 - .balign 4, 0 -_021F1C18: .word MOD05_021F1CA4 - - thumb_func_start MOD05_021F1C1C -MOD05_021F1C1C: ; 0x021F1C1C - ldr r3, _021F1C20 ; =FUN_02058628 - bx r3 - .balign 4, 0 -_021F1C20: .word FUN_02058628 - - thumb_func_start MOD05_021F1C24 -MOD05_021F1C24: ; 0x021F1C24 - push {r3, lr} - bl FUN_02058628 - bl MOD05_021F1C30 - pop {r3, pc} - - thumb_func_start MOD05_021F1C30 -MOD05_021F1C30: ; 0x021F1C30 - ldr r0, [r0] - bx lr - - thumb_func_start MOD05_021F1C34 -MOD05_021F1C34: ; 0x021F1C34 - push {r4, lr} - add r4, r0, #0 - mov r1, #0x10 - bl FUN_02058604 - add r1, r0, #0 - add r0, r4, #0 - bl MOD05_021F1FC8 - pop {r4, pc} - - thumb_func_start MOD05_021F1C48 -MOD05_021F1C48: ; 0x021F1C48 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_02058628 - ldr r4, [r0] - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2F48 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F1C64 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F1C64 -MOD05_021F1C64: ; 0x021F1C64 - push {r4, r5, r6, lr} - mov r4, #1 - add r6, r1, #0 - lsl r1, r4, #9 - add r5, r0, #0 - bl FUN_0205842C - cmp r0, #1 - bne _021F1C78 - mov r4, #0 -_021F1C78: - mov r1, #1 - add r0, r5, #0 - lsl r1, r1, #0xc - bl FUN_0205842C - cmp r0, #1 - bne _021F1C96 - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0xc - bl FUN_0205842C - cmp r0, #0 - bne _021F1C96 - mov r4, #0 -_021F1C96: - lsl r1, r4, #0x18 - add r0, r6, #0 - lsr r1, r1, #0x18 - bl FUN_0201F80C - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1CA4 -MOD05_021F1CA4: ; 0x021F1CA4 - push {r4, lr} - add r4, r0, #0 - bl FUN_02058628 - add r1, r0, #0 - add r0, r4, #0 - bl MOD05_021F2060 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1CB8 -MOD05_021F1CB8: ; 0x021F1CB8 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r4, r1, #0 - mov r1, #1 - add r5, r0, #0 - add r6, r2, #0 - add r7, r3, #0 - bl FUN_02058390 - cmp r0, #0 - beq _021F1CD2 - bl GF_AssertFail -_021F1CD2: - add r0, r5, #0 - bl MOD05_021F1D68 - add r0, r5, #0 - bl FUN_02058368 - str r0, [sp, #0x10] - add r0, r5, #0 - bl FUN_0205839C - sub r0, r0, #1 - str r0, [sp, #0xc] - add r0, r5, #0 - bl FUN_020583A0 - str r4, [sp] - str r6, [sp, #4] - ldr r2, [sp, #0x10] - ldr r3, [sp, #0xc] - add r1, r5, #0 - str r7, [sp, #8] - bl MOD05_021F1F04 - add r0, r5, #0 - mov r1, #4 - bl MOD05_021F3780 - add r4, r0, #0 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_020583A4 - ldr r1, _021F1D28 ; =UNK05_021F8B84 - add r0, r4, #0 - ldr r1, [r1] - bl MOD05_021F3810 - add r0, r5, #0 - mov r1, #1 - bl FUN_0205837C - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021F1D28: .word UNK05_021F8B84 - - thumb_func_start MOD05_021F1D2C -MOD05_021F1D2C: ; 0x021F1D2C - push {r4, lr} - add r4, r0, #0 - bl FUN_020587E0 - cmp r0, #1 - beq _021F1D3C - bl GF_AssertFail -_021F1D3C: - add r0, r4, #0 - bl FUN_020583A0 - bl MOD05_021F1F58 - add r0, r4, #0 - bl FUN_020583AC - bl MOD05_021F379C - add r0, r4, #0 - mov r1, #0 - bl FUN_020583A4 - add r0, r4, #0 - mov r1, #1 - bl FUN_02058384 - add r0, r4, #0 - bl MOD05_021F1D80 - pop {r4, pc} - - thumb_func_start MOD05_021F1D68 -MOD05_021F1D68: ; 0x021F1D68 - push {r4, lr} - add r4, r0, #0 - mov r0, #0x51 - mov r1, #4 - bl NARC_ctor - add r1, r0, #0 - add r0, r4, #0 - bl FUN_020583F0 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1D80 -MOD05_021F1D80: ; 0x021F1D80 - push {r3, lr} - bl FUN_020583F4 - bl NARC_dtor - pop {r3, pc} - - thumb_func_start MOD05_021F1D8C -MOD05_021F1D8C: ; 0x021F1D8C - push {r4, lr} - add r4, r0, #0 - bl FUN_02058578 - mov r1, #4 - bl FUN_02058390 - cmp r0, #0 - bne _021F1DC6 - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0xe - bl FUN_02058424 - cmp r0, #0 - beq _021F1DC6 - add r0, r4, #0 - bl FUN_02058920 - cmp r0, #0 - beq _021F1DC0 - add r0, r4, #0 - bl FUN_02058AB4 - cmp r0, #0 - beq _021F1DC6 -_021F1DC0: - add r0, r4, #0 - bl FUN_020586A0 -_021F1DC6: - pop {r4, pc} - - thumb_func_start MOD05_021F1DC8 -MOD05_021F1DC8: ; 0x021F1DC8 - push {r3, lr} - bl FUN_02058458 - bl MOD05_021F1DD4 - pop {r3, pc} - - thumb_func_start MOD05_021F1DD4 -MOD05_021F1DD4: ; 0x021F1DD4 - push {r3, lr} - ldr r3, _021F1DF4 ; =UNK05_021F9A9C - ldr r1, _021F1DF8 ; =0x0000FFFF -_021F1DDA: - ldr r2, [r3] - cmp r2, r0 - bne _021F1DE4 - add r0, r3, #0 - pop {r3, pc} -_021F1DE4: - add r3, #8 - ldr r2, [r3] - cmp r2, r1 - bne _021F1DDA - bl GF_AssertFail - mov r0, #0 - pop {r3, pc} - .balign 4, 0 -_021F1DF4: .word UNK05_021F9A9C -_021F1DF8: .word 0x0000FFFF - - thumb_func_start MOD05_021F1DFC -MOD05_021F1DFC: ; 0x021F1DFC - push {r4, lr} - add r4, r0, #0 - bl FUN_02058920 - cmp r0, #1 - bne _021F1E16 - add r0, r4, #0 - bl FUN_02058AB4 - cmp r0, #0 - bne _021F1E16 - mov r0, #1 - pop {r4, pc} -_021F1E16: - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #8 - bl FUN_02058424 - cmp r0, #0 - beq _021F1E28 - mov r0, #1 - pop {r4, pc} -_021F1E28: - mov r0, #0 - pop {r4, pc} - - thumb_func_start MOD05_021F1E2C -MOD05_021F1E2C: ; 0x021F1E2C - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r2, #0 - bl FUN_020583F4 - add r1, r4, #0 - add r6, r0, #0 - bl NARC_GetMemberSize - add r1, r0, #0 - cmp r5, #1 - bne _021F1E4C - mov r0, #4 - bl AllocFromHeap - b _021F1E52 -_021F1E4C: - mov r0, #4 - bl AllocFromHeapAtEnd -_021F1E52: - add r5, r0, #0 - add r0, r6, #0 - add r1, r4, #0 - add r2, r5, #0 - bl NARC_ReadWholeMember - add r0, r5, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1E64 -MOD05_021F1E64: ; 0x021F1E64 - push {r3, r4, r5, lr} - sub sp, #0x30 - add r4, r1, #0 - add r5, r0, #0 - add r1, sp, #0x24 - bl FUN_02058B5C - add r0, r5, #0 - add r1, sp, #0x18 - bl FUN_02058B84 - add r0, r5, #0 - add r1, sp, #0xc - bl FUN_02058BA4 - add r0, r5, #0 - add r1, sp, #0 - bl FUN_02058BC4 - ldr r1, [sp, #0x24] - ldr r0, [sp, #0x18] - ldr r2, [sp, #0xc] - add r0, r1, r0 - ldr r3, [sp] - add r0, r2, r0 - add r0, r3, r0 - str r0, [r4] - ldr r1, [sp, #0x28] - ldr r0, [sp, #0x1c] - ldr r2, [sp, #0x10] - add r0, r1, r0 - ldr r3, [sp, #4] - add r0, r2, r0 - add r0, r3, r0 - str r0, [r4, #4] - ldr r1, [sp, #0x2c] - ldr r0, [sp, #0x20] - ldr r2, [sp, #0x14] - add r0, r1, r0 - ldr r3, [sp, #8] - add r0, r2, r0 - add r0, r3, r0 - str r0, [r4, #8] - add sp, #0x30 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1EC0 -MOD05_021F1EC0: ; 0x021F1EC0 - push {r4, lr} - add r4, r0, #0 - bl FUN_020584AC - add r0, r4, #0 - bl FUN_02058884 - cmp r0, #1 - bne _021F1ED8 - add r0, r4, #0 - bl FUN_020586A0 -_021F1ED8: - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1EDC -MOD05_021F1EDC: ; 0x021F1EDC - push {r4, lr} - mov r1, #1 - add r4, r0, #0 - bl FUN_0205889C - mov r1, #1 - add r0, r4, #0 - lsl r1, r1, #0x14 - bl FUN_02058410 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1EF4 -MOD05_021F1EF4: ; 0x021F1EF4 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F1EF8 -MOD05_021F1EF8: ; 0x021F1EF8 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F1EFC -MOD05_021F1EFC: ; 0x021F1EFC - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F1F00 -MOD05_021F1F00: ; 0x021F1F00 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F1F04 -MOD05_021F1F04: ; 0x021F1F04 - push {r4, r5, lr} - sub sp, #0xc - add r4, r2, #0 - mov r2, #0x41 - add r5, r0, #0 - lsl r2, r2, #2 - str r1, [r5, r2] - add r1, r4, #0 - bl MOD05_021F2E40 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0xa - bl MOD05_021F33B4 - mov r2, #4 - mov r1, #8 - ldr r0, [sp, #0x18] - str r2, [sp] - str r0, [sp, #4] - ldr r0, [sp, #0x1c] - add r3, r1, #0 - str r0, [sp, #8] - add r0, r5, #0 - bl MOD05_021F22E0 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2160 - ldr r1, [sp, #0x20] - ldr r2, _021F1F50 ; =UNK05_021F8B90 - ldr r3, _021F1F54 ; =UNK05_021F8B88 - add r0, r5, #0 - bl MOD05_021F25A0 - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 -_021F1F50: .word UNK05_021F8B90 -_021F1F54: .word UNK05_021F8B88 - - thumb_func_start MOD05_021F1F58 -MOD05_021F1F58: ; 0x021F1F58 - push {r4, lr} - add r4, r0, #0 - bl MOD05_021F3458 - add r0, r4, #0 - bl MOD05_021F21AC - add r0, r4, #0 - bl MOD05_021F2D48 - bl MOD05_021F2E68 - add r0, r4, #0 - bl MOD05_021F2368 - pop {r4, pc} - - thumb_func_start MOD05_021F1F78 -MOD05_021F1F78: ; 0x021F1F78 - push {r3, r4, r5, r6, r7, lr} - add r5, r1, #0 - mov r1, #0 - add r6, r2, #0 - add r7, r0, #0 - str r1, [r5] - bl MOD05_021F2F3C - add r1, r6, #0 - str r0, [sp] - bl MOD05_021F28E8 - add r4, r0, #0 - bne _021F1FA2 - add r0, r7, #0 - add r1, r5, #0 - add r2, r6, #0 - bl MOD05_021F211C - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F1FA2: - sub r0, r4, #3 - cmp r0, #1 - bhi _021F1FB8 - ldr r0, [sp] - add r1, r7, #0 - add r2, r5, #0 - add r3, r6, #0 - bl MOD05_021F32BC - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F1FB8: - add r0, r7, #0 - add r1, r6, #0 - bl MOD05_021F1FE0 - str r0, [r5] - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1FC8 -MOD05_021F1FC8: ; 0x021F1FC8 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl FUN_02058458 - add r2, r0, #0 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F1F78 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F1FE0 -MOD05_021F1FE0: ; 0x021F1FE0 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r6, r0, #0 - add r5, r1, #0 - bl MOD05_021F2F3C - add r4, r0, #0 - bl MOD05_021F2D48 - add r7, r0, #0 - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F2AC8 - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F21CC - add r4, r0, #0 - bne _021F200C - bl GF_AssertFail -_021F200C: - add r0, r6, #0 - add r1, sp, #0 - bl MOD05_021F1E64 - add r0, r7, #0 - add r1, r4, #0 - add r2, sp, #0 - bl MOD05_021F2E70 - add r4, r0, #0 - bne _021F2026 - bl GF_AssertFail -_021F2026: - add r0, r4, #0 - add sp, #0xc - pop {r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F202C -MOD05_021F202C: ; 0x021F202C - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4] - add r6, r2, #0 - bl FUN_0201F744 - mov r0, #0 - str r0, [r4] - add r0, r5, #0 - bl FUN_02058578 - add r1, r5, #0 - add r2, r6, #0 - bl MOD05_021F2284 - cmp r0, #0 - bne _021F205C - add r0, r5, #0 - bl MOD05_021F2F3C - add r1, r6, #0 - bl MOD05_021F2240 -_021F205C: - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2060 -MOD05_021F2060: ; 0x021F2060 - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - bl MOD05_021F2150 - ldr r0, [r4] - cmp r0, #0 - beq _021F2092 - add r0, r5, #0 - bl FUN_02058458 - add r6, r0, #0 - bl FUN_0205C334 - cmp r0, #1 - bne _021F2088 - add r0, r5, #0 - bl FUN_0205C340 - add r6, r0, #0 -_021F2088: - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021F202C -_021F2092: - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F2094 -MOD05_021F2094: ; 0x021F2094 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r6, r0, #0 - add r4, r2, #0 - bl MOD05_021F2150 - ldr r0, [r5] - cmp r0, #0 - beq _021F20AE - bl FUN_0201F744 - mov r0, #0 - str r0, [r5] -_021F20AE: - ldr r0, _021F20D4 ; =0x0000FFFF - cmp r4, r0 - beq _021F20D2 - add r0, r6, #0 - bl FUN_02058578 - add r1, r6, #0 - add r2, r4, #0 - bl MOD05_021F2284 - cmp r0, #0 - bne _021F20D2 - add r0, r6, #0 - bl MOD05_021F2F3C - add r1, r4, #0 - bl MOD05_021F2240 -_021F20D2: - pop {r4, r5, r6, pc} - .balign 4, 0 -_021F20D4: .word 0x0000FFFF - - thumb_func_start MOD05_021F20D8 -MOD05_021F20D8: ; 0x021F20D8 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl FUN_0201F820 - str r0, [r4] - add r0, r5, #0 - bl FUN_0201F844 - strh r0, [r4, #6] - add r0, r5, #0 - bl FUN_0201F880 - str r0, [r4, #8] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F20F8 -MOD05_021F20F8: ; 0x021F20F8 - push {r3, r4, r5, lr} - add r4, r1, #0 - ldr r1, [r4] - add r5, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_0201F80C - ldrh r1, [r4, #6] - add r0, r5, #0 - bl FUN_0201F830 - ldr r1, [r4, #8] - add r0, r5, #0 - bl FUN_0201F86C - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F211C -MOD05_021F211C: ; 0x021F211C - push {r3, r4, r5, r6, r7, lr} - add r4, r2, #0 - add r6, r0, #0 - add r5, r1, #0 - bl MOD05_021F2F3C - add r1, r4, #0 - add r7, r0, #0 - bl MOD05_021F2460 - cmp r0, #0 - bne _021F2140 - add r0, r6, #0 - add r1, r4, #0 - bl MOD05_021F1FE0 - str r0, [r5] - pop {r3, r4, r5, r6, r7, pc} -_021F2140: - add r0, r7, #0 - add r1, r6, #0 - add r2, r5, #0 - add r3, r4, #0 - bl MOD05_021F32BC - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2150 -MOD05_021F2150: ; 0x021F2150 - push {r4, lr} - add r4, r0, #0 - bl MOD05_021F2F3C - add r1, r4, #0 - bl MOD05_021F32F8 - pop {r4, pc} - - thumb_func_start MOD05_021F2160 -MOD05_021F2160: ; 0x021F2160 - push {r3, r4, r5, r6, r7, lr} - add r6, r1, #0 - mov r1, #0x28 - add r7, r0, #0 - mov r0, #4 - mul r1, r6 - bl AllocFromHeap - add r4, r0, #0 - add r0, r7, #0 - add r0, #0xe4 - str r4, [r0] - cmp r4, #0 - bne _021F2180 - bl GF_AssertFail -_021F2180: - mov r0, #4 - lsl r1, r6, #3 - bl AllocFromHeap - add r5, r0, #0 - add r7, #0xf4 - str r5, [r7] - cmp r5, #0 - bne _021F2196 - bl GF_AssertFail -_021F2196: - ldr r0, _021F21A8 ; =0x0000FFFF -_021F2198: - str r0, [r5] - str r4, [r5, #4] - add r5, #8 - add r4, #0x28 - sub r6, r6, #1 - bne _021F2198 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F21A8: .word 0x0000FFFF - - thumb_func_start MOD05_021F21AC -MOD05_021F21AC: ; 0x021F21AC - push {r4, lr} - add r4, r0, #0 - bl MOD05_021F2260 - add r1, r4, #0 - add r1, #0xe4 - ldr r1, [r1] - mov r0, #4 - bl FreeToHeapExplicit - add r4, #0xf4 - ldr r1, [r4] - mov r0, #4 - bl FreeToHeapExplicit - pop {r4, pc} - - thumb_func_start MOD05_021F21CC -MOD05_021F21CC: ; 0x021F21CC - push {r4, r5, r6, lr} - add r2, r0, #0 - add r2, #0xf4 - ldr r4, [r2] - ldr r2, [r0, #4] - add r6, r4, #0 - add r5, r2, #0 -_021F21DA: - ldr r3, [r6] - cmp r3, r1 - bne _021F21E4 - ldr r0, [r6, #4] - pop {r4, r5, r6, pc} -_021F21E4: - add r6, #8 - sub r5, r5, #1 - bne _021F21DA - ldr r3, _021F2208 ; =0x0000FFFF -_021F21EC: - ldr r5, [r4] - cmp r5, r3 - bne _021F21FE - str r1, [r4] - ldr r2, [r4, #4] - bl MOD05_021F2ED0 - ldr r0, [r4, #4] - pop {r4, r5, r6, pc} -_021F21FE: - add r4, #8 - sub r2, r2, #1 - bne _021F21EC - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021F2208: .word 0x0000FFFF - - thumb_func_start MOD05_021F220C -MOD05_021F220C: ; 0x021F220C - push {r3, r4, r5, lr} - add r5, r1, #0 - add r4, r2, #0 - bl FUN_020583A0 - add r1, r0, #0 - add r1, #0xf4 - ldr r2, [r1] - ldr r1, [r0, #4] -_021F221E: - ldr r0, [r2] - cmp r0, r5 - bne _021F2234 - ldr r3, [r2, #4] - mov r2, #5 -_021F2228: - ldmia r3!, {r0, r1} - stmia r4!, {r0, r1} - sub r2, r2, #1 - bne _021F2228 - mov r0, #1 - pop {r3, r4, r5, pc} -_021F2234: - add r2, #8 - sub r1, r1, #1 - bne _021F221E - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2240 -MOD05_021F2240: ; 0x021F2240 - add r2, r0, #0 - add r2, #0xf4 - ldr r3, [r2] - ldr r2, [r0, #4] -_021F2248: - ldr r0, [r3] - cmp r0, r1 - bne _021F2254 - ldr r0, _021F225C ; =0x0000FFFF - str r0, [r3] - bx lr -_021F2254: - add r3, #8 - sub r2, r2, #1 - bne _021F2248 - bx lr - .balign 4, 0 -_021F225C: .word 0x0000FFFF - - thumb_func_start MOD05_021F2260 -MOD05_021F2260: ; 0x021F2260 - push {r3, r4} - add r1, r0, #0 - add r1, #0xf4 - ldr r4, [r1] - ldr r1, _021F2280 ; =0x0000FFFF - ldr r3, [r0, #4] - add r0, r1, #0 -_021F226E: - ldr r2, [r4] - cmp r2, r0 - beq _021F2276 - str r1, [r4] -_021F2276: - add r4, #8 - sub r3, r3, #1 - bne _021F226E - pop {r3, r4} - bx lr - .balign 4, 0 -_021F2280: .word 0x0000FFFF - - thumb_func_start MOD05_021F2284 -MOD05_021F2284: ; 0x021F2284 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r1, #0 - add r7, r2, #0 - bl FUN_02058368 - add r4, r0, #0 - add r0, r5, #0 - bl FUN_020583BC - str r0, [sp] -_021F229A: - ldr r0, [sp] - cmp r0, r6 - beq _021F22CE - bl FUN_02058830 - cmp r0, #1 - bne _021F22CE - ldr r0, [sp] - bl FUN_02058458 - add r5, r0, #0 - bl FUN_0205C334 - cmp r0, #1 - bne _021F22C0 - ldr r0, [sp] - bl FUN_0205C340 - add r5, r0, #0 -_021F22C0: - ldr r0, _021F22DC ; =0x0000FFFF - cmp r5, r0 - beq _021F22CE - cmp r5, r7 - bne _021F22CE - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F22CE: - add r0, sp, #0 - bl FUN_020583D4 - sub r4, r4, #1 - bne _021F229A - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F22DC: .word 0x0000FFFF - - thumb_func_start MOD05_021F22E0 -MOD05_021F22E0: ; 0x021F22E0 - push {r3, r4, r5, r6, r7, lr} - add r4, r1, #0 - add r5, r0, #0 - add r6, r2, #0 - add r7, r3, #0 - mov r0, #4 - mov r1, #0x40 - lsl r2, r4, #0xc - add r3, r4, #0 - bl MOD05_021F5990 - add r1, r5, #0 - add r1, #0xf8 - str r0, [r1] - add r0, r5, #0 - bl MOD05_021F2614 - add r0, r5, #0 - add r1, r6, #0 - bl MOD05_021F2D80 - add r0, r5, #0 - sub r1, r4, r6 - bl MOD05_021F2D88 - mov r0, #4 - mov r1, #0x41 - lsl r2, r7, #7 - add r3, r7, #0 - bl MOD05_021F5990 - add r1, r5, #0 - add r1, #0xfc - str r0, [r1] - add r0, r5, #0 - bl MOD05_021F2750 - ldr r1, [sp, #0x18] - add r0, r5, #0 - bl MOD05_021F2D90 - ldr r1, [sp, #0x18] - add r0, r5, #0 - sub r1, r7, r1 - bl MOD05_021F2D98 - ldr r0, [sp, #0x1c] - mov r1, #4 - bl FUN_02020E90 - add r1, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D64 - add r0, r5, #0 - bl MOD05_021F288C - ldr r1, [sp, #0x20] - add r0, r5, #0 - bl MOD05_021F2DA0 - ldr r2, [sp, #0x1c] - ldr r1, [sp, #0x20] - add r0, r5, #0 - sub r1, r2, r1 - bl MOD05_021F2DA8 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F2368 -MOD05_021F2368: ; 0x021F2368 - push {r4, lr} - add r4, r0, #0 - add r0, #0xf8 - ldr r0, [r0] - bl MOD05_021F59EC - add r0, r4, #0 - add r0, #0xfc - ldr r0, [r0] - bl MOD05_021F59EC - add r0, r4, #0 - bl MOD05_021F2D6C - bl FUN_02020ED4 - pop {r4, pc} - .balign 4, 0 -_021F238C: - ldr r3, [r2] - cmp r3, r0 - bne _021F2396 - add r0, r2, #0 - bx lr -_021F2396: - add r2, #8 - ldr r3, [r2] - cmp r3, r1 - bne _021F238C - mov r0, #0 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F23A4 -MOD05_021F23A4: ; 0x021F23A4 - push {r3, r4, r5, r6, r7, lr} - add r6, r1, #0 - add r4, r2, #0 - add r5, r0, #0 - add r0, r6, #0 - add r1, r4, #0 - add r7, r3, #0 - bl MOD05_021F5AA4 - cmp r0, #1 - bne _021F23BE - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F23BE: - ldr r2, [sp, #0x18] - add r0, r4, #0 - add r1, r7, #0 - bl _021F238C - add r7, r0, #0 - bne _021F23D0 - bl GF_AssertFail -_021F23D0: - mov r0, #0x41 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_020583F4 - add r2, r0, #0 - mov r0, #0 - str r0, [sp] - ldr r3, [r7, #4] - add r0, r6, #0 - add r1, r4, #0 - bl MOD05_021F5AE4 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F23F0 -MOD05_021F23F0: ; 0x021F23F0 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r0, #0xf0 - add r4, r2, #0 - add r6, r1, #0 - ldr r0, [r0] - add r1, r4, #0 - add r7, r3, #0 - bl FUN_02020EF8 - cmp r0, #0 - bne _021F240C - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F240C: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F3084 - cmp r0, #0 - beq _021F241C - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F241C: - ldr r1, _021F2448 ; =0x0000FFFF - add r0, r4, #0 - add r2, r7, #0 - bl _021F238C - add r2, r0, #0 - bne _021F242E - mov r0, #2 - pop {r3, r4, r5, r6, r7, pc} -_021F242E: - ldr r2, [r2, #4] - add r0, r5, #0 - add r1, r4, #0 - add r3, r6, #0 - bl MOD05_021F2FD0 - cmp r0, #1 - bne _021F2442 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F2442: - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F2448: .word 0x0000FFFF - - thumb_func_start MOD05_021F244C -MOD05_021F244C: ; 0x021F244C - push {r3, lr} - ldr r3, _021F245C ; =UNK05_021FA0AC - add r2, r1, #0 - mov r1, #0 - bl MOD05_021F23F0 - pop {r3, pc} - nop -_021F245C: .word UNK05_021FA0AC - - thumb_func_start MOD05_021F2460 -MOD05_021F2460: ; 0x021F2460 - push {r3, lr} - ldr r3, _021F2470 ; =UNK05_021FA0AC - add r2, r1, #0 - mov r1, #1 - bl MOD05_021F23F0 - pop {r3, pc} - nop -_021F2470: .word UNK05_021FA0AC - - thumb_func_start MOD05_021F2474 -MOD05_021F2474: ; 0x021F2474 - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r1, [r4] - ldr r0, _021F2494 ; =0x0000FFFF - cmp r1, r0 - beq _021F2492 - add r6, r0, #0 -_021F2484: - add r0, r5, #0 - bl MOD05_021F244C - add r4, r4, #4 - ldr r1, [r4] - cmp r1, r6 - bne _021F2484 -_021F2492: - pop {r4, r5, r6, pc} - .balign 4, 0 -_021F2494: .word 0x0000FFFF - - thumb_func_start MOD05_021F2498 -MOD05_021F2498: ; 0x021F2498 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2D54 - ldr r0, _021F24C0 ; =UNK05_021F9094 - add r1, r5, #0 - str r0, [sp] - add r1, #0xf8 - ldr r1, [r1] - ldr r3, _021F24C4 ; =0x0000FFFF - add r0, r5, #0 - add r2, r4, #0 - bl MOD05_021F23A4 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2628 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021F24C0: .word UNK05_021F9094 -_021F24C4: .word 0x0000FFFF - - thumb_func_start MOD05_021F24C8 -MOD05_021F24C8: ; 0x021F24C8 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2D54 - ldr r0, _021F24F0 ; =UNK05_021F9094 - add r1, r5, #0 - str r0, [sp] - add r1, #0xf8 - ldr r1, [r1] - ldr r3, _021F24F4 ; =0x0000FFFF - add r0, r5, #0 - add r2, r4, #0 - bl MOD05_021F23A4 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2670 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021F24F0: .word UNK05_021F9094 -_021F24F4: .word 0x0000FFFF - - thumb_func_start MOD05_021F24F8 -MOD05_021F24F8: ; 0x021F24F8 - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r1, [r4] - ldr r0, _021F2518 ; =0x0000FFFF - cmp r1, r0 - beq _021F2516 - add r6, r0, #0 -_021F2508: - add r0, r5, #0 - bl MOD05_021F2498 - add r4, r4, #4 - ldr r1, [r4] - cmp r1, r6 - bne _021F2508 -_021F2516: - pop {r4, r5, r6, pc} - .balign 4, 0 -_021F2518: .word 0x0000FFFF - - thumb_func_start MOD05_021F251C -MOD05_021F251C: ; 0x021F251C - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2D5C - ldr r0, _021F2544 ; =UNK05_021F90E4 - add r1, r5, #0 - str r0, [sp] - add r1, #0xfc - ldr r1, [r1] - ldr r3, _021F2548 ; =0x0000FFFF - add r0, r5, #0 - add r2, r4, #0 - bl MOD05_021F23A4 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2764 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021F2544: .word UNK05_021F90E4 -_021F2548: .word 0x0000FFFF - - thumb_func_start MOD05_021F254C -MOD05_021F254C: ; 0x021F254C - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2D5C - ldr r0, _021F2574 ; =UNK05_021F90E4 - add r1, r5, #0 - str r0, [sp] - add r1, #0xfc - ldr r1, [r1] - ldr r3, _021F2578 ; =0x0000FFFF - add r0, r5, #0 - add r2, r4, #0 - bl MOD05_021F23A4 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F27AC - pop {r3, r4, r5, pc} - .balign 4, 0 -_021F2574: .word UNK05_021F90E4 -_021F2578: .word 0x0000FFFF - - thumb_func_start MOD05_021F257C -MOD05_021F257C: ; 0x021F257C - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r1, [r4] - ldr r0, _021F259C ; =0x0000FFFF - cmp r1, r0 - beq _021F259A - add r6, r0, #0 -_021F258C: - add r0, r5, #0 - bl MOD05_021F251C - add r4, r4, #4 - ldr r1, [r4] - cmp r1, r6 - bne _021F258C -_021F259A: - pop {r4, r5, r6, pc} - .balign 4, 0 -_021F259C: .word 0x0000FFFF - - thumb_func_start MOD05_021F25A0 -MOD05_021F25A0: ; 0x021F25A0 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r2, #0 - add r6, r3, #0 - bl MOD05_021F2474 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F24F8 - add r0, r5, #0 - add r1, r6, #0 - bl MOD05_021F257C - pop {r4, r5, r6, pc} - .balign 4, 0 -_021F25C0: - stmia r0!, {r1} - sub r2, r2, #1 - bne _021F25C0 - bx lr - - thumb_func_start MOD05_021F25C8 -MOD05_021F25C8: ; 0x021F25C8 - push {r3, r4} -_021F25CA: - ldr r4, [r0] - cmp r4, r2 - bne _021F25D8 - str r1, [r0] - mov r0, #1 - pop {r3, r4} - bx lr -_021F25D8: - add r0, r0, #4 - sub r3, r3, #1 - bne _021F25CA - mov r0, #0 - pop {r3, r4} - bx lr -_021F25E4: - ldr r3, [r0] - cmp r3, r1 - bne _021F25EE - mov r0, #1 - bx lr -_021F25EE: - add r0, r0, #4 - sub r2, r2, #1 - bne _021F25E4 - mov r0, #0 - bx lr - - thumb_func_start MOD05_021F25F8 -MOD05_021F25F8: ; 0x021F25F8 - push {r3, r4} -_021F25FA: - ldr r4, [r0] - cmp r4, r1 - bne _021F2608 - str r2, [r0] - mov r0, #1 - pop {r3, r4} - bx lr -_021F2608: - add r0, r0, #4 - sub r3, r3, #1 - bne _021F25FA - mov r0, #0 - pop {r3, r4} - bx lr - - thumb_func_start MOD05_021F2614 -MOD05_021F2614: ; 0x021F2614 - push {r3, lr} - bl MOD05_021F2D78 - ldr r1, _021F2624 ; =0x0000FFFF - mov r2, #8 - bl _021F25C0 - pop {r3, pc} - .balign 4, 0 -_021F2624: .word 0x0000FFFF - - thumb_func_start MOD05_021F2628 -MOD05_021F2628: ; 0x021F2628 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2D84 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D78 - ldr r2, _021F2650 ; =0x0000FFFF - add r1, r4, #0 - add r3, r6, #0 - bl MOD05_021F25C8 - cmp r0, #0 - bne _021F264C - bl GF_AssertFail -_021F264C: - pop {r4, r5, r6, pc} - nop -_021F2650: .word 0x0000FFFF - - thumb_func_start MOD05_021F2654 -MOD05_021F2654: ; 0x021F2654 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2D84 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D78 - add r1, r4, #0 - add r2, r6, #0 - bl _021F25E4 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F2670 -MOD05_021F2670: ; 0x021F2670 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r7, r1, #0 - bl MOD05_021F2D78 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D84 - lsl r4, r0, #2 - add r0, r5, #0 - bl MOD05_021F2D8C - add r3, r0, #0 - ldr r2, _021F26A0 ; =0x0000FFFF - add r0, r6, r4 - add r1, r7, #0 - bl MOD05_021F25C8 - cmp r0, #0 - bne _021F269E - bl GF_AssertFail -_021F269E: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F26A0: .word 0x0000FFFF - - thumb_func_start MOD05_021F26A4 -MOD05_021F26A4: ; 0x021F26A4 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r7, r1, #0 - bl MOD05_021F2D78 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D84 - lsl r4, r0, #2 - add r0, r5, #0 - bl MOD05_021F2D8C - add r2, r0, #0 - add r0, r6, r4 - add r1, r7, #0 - bl _021F25E4 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F26CC -MOD05_021F26CC: ; 0x021F26CC - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r7, r1, #0 - bl MOD05_021F2D78 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D84 - lsl r4, r0, #2 - add r0, r5, #0 - bl MOD05_021F2D8C - add r3, r0, #0 - ldr r2, _021F26F4 ; =0x0000FFFF - add r0, r6, r4 - add r1, r7, #0 - bl MOD05_021F25F8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F26F4: .word 0x0000FFFF - - thumb_func_start MOD05_021F26F8 -MOD05_021F26F8: ; 0x021F26F8 - push {r3, r4, r5, r6, r7, lr} - add r6, r1, #0 - add r7, r0, #0 - add r0, r6, #0 - bl MOD05_021F2D54 - add r0, r6, #0 - bl MOD05_021F2D78 - add r4, r0, #0 - add r0, r6, #0 - bl MOD05_021F2D84 - lsl r0, r0, #2 - add r5, r4, r0 - add r0, r6, #0 - bl MOD05_021F2D8C - add r4, r0, #0 -_021F271E: - ldr r1, [r5] - ldr r0, _021F274C ; =0x0000FFFF - cmp r1, r0 - beq _021F2742 - add r0, r7, #0 - mov r2, #0 - bl MOD05_021F2B70 - cmp r0, #0 - bne _021F2742 - add r0, r6, #0 - add r0, #0xf8 - ldr r0, [r0] - ldr r1, [r5] - bl MOD05_021F5A74 - ldr r0, _021F274C ; =0x0000FFFF - str r0, [r5] -_021F2742: - add r5, r5, #4 - sub r4, r4, #1 - bne _021F271E - pop {r3, r4, r5, r6, r7, pc} - nop -_021F274C: .word 0x0000FFFF - - thumb_func_start MOD05_021F2750 -MOD05_021F2750: ; 0x021F2750 - push {r3, lr} - bl MOD05_021F2D7C - ldr r1, _021F2760 ; =0x0000FFFF - mov r2, #8 - bl _021F25C0 - pop {r3, pc} - .balign 4, 0 -_021F2760: .word 0x0000FFFF - - thumb_func_start MOD05_021F2764 -MOD05_021F2764: ; 0x021F2764 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2D94 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D7C - ldr r2, _021F278C ; =0x0000FFFF - add r1, r4, #0 - add r3, r6, #0 - bl MOD05_021F25C8 - cmp r0, #0 - bne _021F2788 - bl GF_AssertFail -_021F2788: - pop {r4, r5, r6, pc} - nop -_021F278C: .word 0x0000FFFF - - thumb_func_start MOD05_021F2790 -MOD05_021F2790: ; 0x021F2790 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2D94 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D7C - add r1, r4, #0 - add r2, r6, #0 - bl _021F25E4 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F27AC -MOD05_021F27AC: ; 0x021F27AC - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r7, r1, #0 - bl MOD05_021F2D7C - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D94 - lsl r4, r0, #2 - add r0, r5, #0 - bl MOD05_021F2D9C - add r3, r0, #0 - ldr r2, _021F27DC ; =0x0000FFFF - add r0, r6, r4 - add r1, r7, #0 - bl MOD05_021F25C8 - cmp r0, #0 - bne _021F27DA - bl GF_AssertFail -_021F27DA: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F27DC: .word 0x0000FFFF - - thumb_func_start MOD05_021F27E0 -MOD05_021F27E0: ; 0x021F27E0 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r7, r1, #0 - bl MOD05_021F2D7C - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D94 - lsl r4, r0, #2 - add r0, r5, #0 - bl MOD05_021F2D9C - add r2, r0, #0 - add r0, r6, r4 - add r1, r7, #0 - bl _021F25E4 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2808 -MOD05_021F2808: ; 0x021F2808 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r7, r1, #0 - bl MOD05_021F2D7C - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D94 - lsl r4, r0, #2 - add r0, r5, #0 - bl MOD05_021F2D9C - add r3, r0, #0 - ldr r2, _021F2830 ; =0x0000FFFF - add r0, r6, r4 - add r1, r7, #0 - bl MOD05_021F25F8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F2830: .word 0x0000FFFF - - thumb_func_start MOD05_021F2834 -MOD05_021F2834: ; 0x021F2834 - push {r3, r4, r5, r6, r7, lr} - add r6, r1, #0 - add r7, r0, #0 - add r0, r6, #0 - bl MOD05_021F2D5C - add r0, r6, #0 - bl MOD05_021F2D7C - add r4, r0, #0 - add r0, r6, #0 - bl MOD05_021F2D94 - lsl r0, r0, #2 - add r5, r4, r0 - add r0, r6, #0 - bl MOD05_021F2D9C - add r4, r0, #0 -_021F285A: - ldr r1, [r5] - ldr r0, _021F2888 ; =0x0000FFFF - cmp r1, r0 - beq _021F287E - add r0, r7, #0 - mov r2, #0 - bl MOD05_021F2BF8 - cmp r0, #0 - bne _021F287E - add r0, r6, #0 - add r0, #0xfc - ldr r0, [r0] - ldr r1, [r5] - bl MOD05_021F5A74 - ldr r0, _021F2888 ; =0x0000FFFF - str r0, [r5] -_021F287E: - add r5, r5, #4 - sub r4, r4, #1 - bne _021F285A - pop {r3, r4, r5, r6, r7, pc} - nop -_021F2888: .word 0x0000FFFF - - thumb_func_start MOD05_021F288C -MOD05_021F288C: ; 0x021F288C - push {r3, lr} - bl MOD05_021F2D74 - ldr r1, _021F289C ; =0x0000FFFF - mov r2, #0x20 - bl _021F25C0 - pop {r3, pc} - .balign 4, 0 -_021F289C: .word 0x0000FFFF - - thumb_func_start MOD05_021F28A0 -MOD05_021F28A0: ; 0x021F28A0 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2DA4 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D74 - ldr r2, _021F28C8 ; =0x0000FFFF - add r1, r4, #0 - add r3, r6, #0 - bl MOD05_021F25C8 - cmp r0, #0 - bne _021F28C4 - bl GF_AssertFail -_021F28C4: - pop {r4, r5, r6, pc} - nop -_021F28C8: .word 0x0000FFFF - - thumb_func_start MOD05_021F28CC -MOD05_021F28CC: ; 0x021F28CC - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2DA4 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D74 - add r1, r4, #0 - add r2, r6, #0 - bl _021F25E4 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F28E8 -MOD05_021F28E8: ; 0x021F28E8 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F28CC - cmp r0, #1 - bne _021F28FA - mov r0, #1 - pop {r3, r4, r5, pc} -_021F28FA: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F29E0 - cmp r0, #1 - bne _021F290A - mov r0, #2 - pop {r3, r4, r5, pc} -_021F290A: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F3084 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F2914 -MOD05_021F2914: ; 0x021F2914 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r7, r1, #0 - bl MOD05_021F2D74 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2DA4 - lsl r4, r0, #2 - add r0, r5, #0 - bl MOD05_021F2DAC - add r3, r0, #0 - ldr r2, _021F2944 ; =0x0000FFFF - add r0, r6, r4 - add r1, r7, #0 - bl MOD05_021F25C8 - cmp r0, #0 - bne _021F2942 - bl GF_AssertFail -_021F2942: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F2944: .word 0x0000FFFF - - thumb_func_start MOD05_021F2948 -MOD05_021F2948: ; 0x021F2948 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r7, r1, #0 - bl MOD05_021F2D74 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2DA4 - lsl r4, r0, #2 - add r0, r5, #0 - bl MOD05_021F2DAC - add r3, r0, #0 - ldr r2, _021F2970 ; =0x0000FFFF - add r0, r6, r4 - add r1, r7, #0 - bl MOD05_021F25F8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F2970: .word 0x0000FFFF - - thumb_func_start MOD05_021F2974 -MOD05_021F2974: ; 0x021F2974 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r6, r1, #0 - str r0, [sp] - add r0, r6, #0 - bl MOD05_021F2D6C - str r0, [sp, #4] - add r0, r6, #0 - bl MOD05_021F2D74 - add r4, r0, #0 - add r0, r6, #0 - bl MOD05_021F2DA4 - lsl r0, r0, #2 - add r5, r4, r0 - add r0, r6, #0 - bl MOD05_021F2DAC - add r7, r0, #0 -_021F299E: - ldr r4, [r5] - ldr r0, _021F29DC ; =0x0000FFFF - cmp r4, r0 - beq _021F29D0 - ldr r0, [sp] - add r1, r4, #0 - mov r2, #0 - bl MOD05_021F2B10 - cmp r0, #0 - bne _021F29D0 - ldr r0, [sp, #4] - add r1, r4, #0 - bl FUN_02020FF0 - add r0, r6, #0 - add r1, r4, #0 - bl MOD05_021F3050 - add r0, r6, #0 - add r1, r4, #0 - bl MOD05_021F3204 - ldr r0, _021F29DC ; =0x0000FFFF - str r0, [r5] -_021F29D0: - add r5, r5, #4 - sub r7, r7, #1 - bne _021F299E - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F29DC: .word 0x0000FFFF - - thumb_func_start MOD05_021F29E0 -MOD05_021F29E0: ; 0x021F29E0 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r7, r1, #0 - bl MOD05_021F2D74 - add r6, r0, #0 - add r0, r5, #0 - bl MOD05_021F2DA4 - lsl r4, r0, #2 - add r0, r5, #0 - bl MOD05_021F2DAC - add r2, r0, #0 - add r0, r6, r4 - add r1, r7, #0 - bl _021F25E4 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2A08 -MOD05_021F2A08: ; 0x021F2A08 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F28CC - cmp r0, #1 - bne _021F2A1A - mov r0, #0 - pop {r3, r4, r5, pc} -_021F2A1A: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F29E0 - cmp r0, #1 - bne _021F2A2A - mov r0, #1 - pop {r3, r4, r5, pc} -_021F2A2A: - mov r0, #2 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2A30 -MOD05_021F2A30: ; 0x021F2A30 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2654 - cmp r0, #1 - bne _021F2A42 - mov r0, #0 - pop {r3, r4, r5, pc} -_021F2A42: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F26A4 - cmp r0, #1 - bne _021F2A52 - mov r0, #1 - pop {r3, r4, r5, pc} -_021F2A52: - mov r0, #2 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2A58 -MOD05_021F2A58: ; 0x021F2A58 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2790 - cmp r0, #1 - bne _021F2A6A - mov r0, #0 - pop {r3, r4, r5, pc} -_021F2A6A: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F27E0 - cmp r0, #1 - bne _021F2A7A - mov r0, #1 - pop {r3, r4, r5, pc} -_021F2A7A: - mov r0, #2 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2A80 -MOD05_021F2A80: ; 0x021F2A80 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F28E8 - cmp r0, #0 - bne _021F2A96 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2460 -_021F2A96: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F2A98 -MOD05_021F2A98: ; 0x021F2A98 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2A30 - cmp r0, #2 - bne _021F2AAE - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F24C8 -_021F2AAE: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F2AB0 -MOD05_021F2AB0: ; 0x021F2AB0 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2A58 - cmp r0, #2 - bne _021F2AC6 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F254C -_021F2AC6: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F2AC8 -MOD05_021F2AC8: ; 0x021F2AC8 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - add r0, r4, #0 - bl MOD05_021F2DE8 - add r1, r0, #0 - add r0, r5, #0 - bl MOD05_021F2A98 - add r0, r4, #0 - bl MOD05_021F2DF4 - add r1, r0, #0 - add r0, r5, #0 - bl MOD05_021F2AB0 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2A80 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F2AF4 -MOD05_021F2AF4: ; 0x021F2AF4 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F26F8 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2834 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2974 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F2B10 -MOD05_021F2B10: ; 0x021F2B10 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r6, r1, #0 - mov r1, #0 - add r5, r2, #0 - str r1, [sp, #4] - str r1, [sp] - add r1, sp, #0 - add r2, sp, #4 - mov r3, #1 - add r7, r0, #0 - bl FUN_020580F4 - cmp r0, #1 - bne _021F2B6A -_021F2B2E: - cmp r5, #0 - beq _021F2B38 - ldr r0, [sp] - cmp r5, r0 - beq _021F2B5A -_021F2B38: - ldr r0, [sp] - bl FUN_02058458 - add r4, r0, #0 - bl FUN_0205C334 - cmp r0, #1 - bne _021F2B50 - ldr r0, [sp] - bl FUN_0205C340 - add r4, r0, #0 -_021F2B50: - cmp r4, r6 - bne _021F2B5A - add sp, #8 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F2B5A: - add r0, r7, #0 - add r1, sp, #0 - add r2, sp, #4 - mov r3, #1 - bl FUN_020580F4 - cmp r0, #1 - beq _021F2B2E -_021F2B6A: - mov r0, #0 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F2B70 -MOD05_021F2B70: ; 0x021F2B70 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r6, r1, #0 - mov r1, #0 - add r5, r2, #0 - str r1, [sp, #4] - str r1, [sp] - add r1, sp, #0 - add r2, sp, #4 - mov r3, #1 - add r7, r0, #0 - bl FUN_020580F4 - cmp r0, #1 - bne _021F2BEE -_021F2B8E: - cmp r5, #0 - beq _021F2B98 - ldr r0, [sp] - cmp r5, r0 - beq _021F2BDE -_021F2B98: - ldr r0, [sp] - bl FUN_02058458 - add r4, r0, #0 - ldr r0, _021F2BF4 ; =0x0000FFFF - cmp r4, r0 - beq _021F2BDE - ldr r0, [sp] - bl MOD05_021F1DC8 - ldr r0, [r0, #4] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - cmp r0, #1 - bne _021F2BDE - add r0, r4, #0 - bl FUN_0205C334 - cmp r0, #1 - bne _021F2BC8 - ldr r0, [sp] - bl FUN_0205C340 - add r4, r0, #0 -_021F2BC8: - ldr r0, _021F2BF4 ; =0x0000FFFF - cmp r4, r0 - beq _021F2BDE - add r0, r4, #0 - bl MOD05_021F2DE8 - cmp r6, r0 - bne _021F2BDE - add sp, #8 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F2BDE: - add r0, r7, #0 - add r1, sp, #0 - add r2, sp, #4 - mov r3, #1 - bl FUN_020580F4 - cmp r0, #1 - beq _021F2B8E -_021F2BEE: - mov r0, #0 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F2BF4: .word 0x0000FFFF - - thumb_func_start MOD05_021F2BF8 -MOD05_021F2BF8: ; 0x021F2BF8 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r6, r1, #0 - mov r1, #0 - add r5, r2, #0 - str r1, [sp, #4] - str r1, [sp] - add r1, sp, #0 - add r2, sp, #4 - mov r3, #1 - add r7, r0, #0 - bl FUN_020580F4 - cmp r0, #1 - bne _021F2C74 -_021F2C16: - cmp r5, #0 - beq _021F2C20 - ldr r0, [sp] - cmp r0, r5 - beq _021F2C64 -_021F2C20: - ldr r0, _021F2C7C ; =0x0000FFFF - cmp r4, r0 - beq _021F2C64 - ldr r0, [sp] - bl MOD05_021F1DC8 - ldr r0, [r0, #4] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - cmp r0, #1 - bne _021F2C64 - ldr r0, [sp] - bl FUN_02058458 - add r4, r0, #0 - bl FUN_0205C334 - cmp r0, #1 - bne _021F2C4E - ldr r0, [sp] - bl FUN_0205C340 - add r4, r0, #0 -_021F2C4E: - ldr r0, _021F2C7C ; =0x0000FFFF - cmp r4, r0 - beq _021F2C64 - add r0, r4, #0 - bl MOD05_021F2DF4 - cmp r6, r0 - bne _021F2C64 - add sp, #8 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F2C64: - add r0, r7, #0 - add r1, sp, #0 - add r2, sp, #4 - mov r3, #1 - bl FUN_020580F4 - cmp r0, #1 - beq _021F2C16 -_021F2C74: - mov r0, #0 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F2C7C: .word 0x0000FFFF - - thumb_func_start MOD05_021F2C80 -MOD05_021F2C80: ; 0x021F2C80 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r1, #0 - add r6, r0, #0 - add r7, r2, #0 - bl FUN_020583A0 - add r4, r0, #0 - add r0, r5, #0 - bl MOD05_021F2DE8 - str r0, [sp] - ldr r1, [sp] - add r0, r4, #0 - bl MOD05_021F2A30 - cmp r0, #1 - bne _021F2CC6 - ldr r1, [sp] - add r0, r6, #0 - add r2, r7, #0 - bl MOD05_021F2B70 - cmp r0, #0 - bne _021F2CC6 - add r0, r4, #0 - add r0, #0xf8 - ldr r0, [r0] - ldr r1, [sp] - bl MOD05_021F5A74 - ldr r1, [sp] - add r0, r4, #0 - bl MOD05_021F26CC -_021F2CC6: - add r0, r5, #0 - bl MOD05_021F2DF4 - str r0, [sp, #4] - ldr r1, [sp, #4] - add r0, r4, #0 - bl MOD05_021F2A58 - cmp r0, #1 - bne _021F2CFC - ldr r1, [sp, #4] - add r0, r6, #0 - add r2, r7, #0 - bl MOD05_021F2BF8 - cmp r0, #0 - bne _021F2CFC - add r0, r4, #0 - add r0, #0xfc - ldr r0, [r0] - ldr r1, [sp, #4] - bl MOD05_021F5A74 - ldr r1, [sp, #4] - add r0, r4, #0 - bl MOD05_021F2808 -_021F2CFC: - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F2A08 - cmp r0, #1 - bne _021F2D3A - add r0, r6, #0 - add r1, r5, #0 - add r2, r7, #0 - bl MOD05_021F2B10 - cmp r0, #0 - bne _021F2D3A - add r0, r4, #0 - bl MOD05_021F2D6C - add r1, r5, #0 - bl FUN_02020FF0 - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F2948 - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F3050 - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F3204 -_021F2D3A: - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2D40 -MOD05_021F2D40: ; 0x021F2D40 - add r0, #0xe0 - str r1, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F2D48 -MOD05_021F2D48: ; 0x021F2D48 - add r0, #0xe0 - ldr r0, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F2D50 -MOD05_021F2D50: ; 0x021F2D50 - str r1, [r0, #4] - bx lr - - thumb_func_start MOD05_021F2D54 -MOD05_021F2D54: ; 0x021F2D54 - add r0, #0xe8 - ldr r0, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F2D5C -MOD05_021F2D5C: ; 0x021F2D5C - add r0, #0xec - ldr r0, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F2D64 -MOD05_021F2D64: ; 0x021F2D64 - add r0, #0xf0 - str r1, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F2D6C -MOD05_021F2D6C: ; 0x021F2D6C - add r0, #0xf0 - ldr r0, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F2D74 -MOD05_021F2D74: ; 0x021F2D74 - add r0, #0x60 - bx lr - - thumb_func_start MOD05_021F2D78 -MOD05_021F2D78: ; 0x021F2D78 - add r0, #0x20 - bx lr - - thumb_func_start MOD05_021F2D7C -MOD05_021F2D7C: ; 0x021F2D7C - add r0, #0x40 - bx lr - - thumb_func_start MOD05_021F2D80 -MOD05_021F2D80: ; 0x021F2D80 - str r1, [r0, #8] - bx lr - - thumb_func_start MOD05_021F2D84 -MOD05_021F2D84: ; 0x021F2D84 - ldr r0, [r0, #8] - bx lr - - thumb_func_start MOD05_021F2D88 -MOD05_021F2D88: ; 0x021F2D88 - str r1, [r0, #0xc] - bx lr - - thumb_func_start MOD05_021F2D8C -MOD05_021F2D8C: ; 0x021F2D8C - ldr r0, [r0, #0xc] - bx lr - - thumb_func_start MOD05_021F2D90 -MOD05_021F2D90: ; 0x021F2D90 - str r1, [r0, #0x10] - bx lr - - thumb_func_start MOD05_021F2D94 -MOD05_021F2D94: ; 0x021F2D94 - ldr r0, [r0, #0x10] - bx lr - - thumb_func_start MOD05_021F2D98 -MOD05_021F2D98: ; 0x021F2D98 - str r1, [r0, #0x14] - bx lr - - thumb_func_start MOD05_021F2D9C -MOD05_021F2D9C: ; 0x021F2D9C - ldr r0, [r0, #0x14] - bx lr - - thumb_func_start MOD05_021F2DA0 -MOD05_021F2DA0: ; 0x021F2DA0 - str r1, [r0, #0x18] - bx lr - - thumb_func_start MOD05_021F2DA4 -MOD05_021F2DA4: ; 0x021F2DA4 - ldr r0, [r0, #0x18] - bx lr - - thumb_func_start MOD05_021F2DA8 -MOD05_021F2DA8: ; 0x021F2DA8 - str r1, [r0, #0x1c] - bx lr - - thumb_func_start MOD05_021F2DAC -MOD05_021F2DAC: ; 0x021F2DAC - ldr r0, [r0, #0x1c] - bx lr - - thumb_func_start MOD05_021F2DB0 -MOD05_021F2DB0: ; 0x021F2DB0 - mov r3, #0x41 - lsl r3, r3, #2 - ldr r0, [r0, r3] - ldr r3, _021F2DBC ; =MOD05_021F1E2C - bx r3 - nop -_021F2DBC: .word MOD05_021F1E2C - - thumb_func_start MOD05_021F2DC0 -MOD05_021F2DC0: ; 0x021F2DC0 - push {r3, lr} - ldr r3, _021F2DE0 ; =UNK05_021FAC6C - ldr r1, _021F2DE4 ; =0x0000FFFF -_021F2DC6: - ldr r2, [r3] - cmp r2, r0 - bne _021F2DD0 - add r0, r3, #0 - pop {r3, pc} -_021F2DD0: - add r3, #0x10 - ldr r2, [r3] - cmp r2, r1 - bne _021F2DC6 - bl GF_AssertFail - mov r0, #0 - pop {r3, pc} - .balign 4, 0 -_021F2DE0: .word UNK05_021FAC6C -_021F2DE4: .word 0x0000FFFF - - thumb_func_start MOD05_021F2DE8 -MOD05_021F2DE8: ; 0x021F2DE8 - push {r3, lr} - bl MOD05_021F2DC0 - ldr r0, [r0, #4] - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2DF4 -MOD05_021F2DF4: ; 0x021F2DF4 - push {r3, lr} - bl MOD05_021F2DC0 - ldr r0, [r0, #8] - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2E00 -MOD05_021F2E00: ; 0x021F2E00 - push {r3, lr} - bl MOD05_021F2DC0 - ldr r0, [r0, #0xc] - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2E0C -MOD05_021F2E0C: ; 0x021F2E0C - push {r3, lr} - cmp r1, #1 - bne _021F2E1C - mov r1, #1 - lsl r1, r1, #0x16 - bl FUN_02058410 - pop {r3, pc} -_021F2E1C: - mov r1, #1 - lsl r1, r1, #0x16 - bl FUN_02058418 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2E28 -MOD05_021F2E28: ; 0x021F2E28 - push {r3, lr} - mov r1, #1 - lsl r1, r1, #0x16 - bl FUN_02058424 - cmp r0, #0 - beq _021F2E3A - mov r0, #1 - pop {r3, pc} -_021F2E3A: - mov r0, #0 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2E40 -MOD05_021F2E40: ; 0x021F2E40 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - mov r0, #4 - add r4, r1, #0 - str r0, [sp, #4] - add r0, sp, #0 - str r4, [sp] - bl FUN_0201F1B4 - add r1, r0, #0 - add r0, r5, #0 - bl MOD05_021F2D40 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2D50 - add sp, #8 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F2E68 -MOD05_021F2E68: ; 0x021F2E68 - ldr r3, _021F2E6C ; =FUN_0201F23C - bx r3 - .balign 4, 0 -_021F2E6C: .word FUN_0201F23C - - thumb_func_start MOD05_021F2E70 -MOD05_021F2E70: ; 0x021F2E70 - push {r4, lr} - sub sp, #0x20 - str r0, [sp] - str r1, [sp, #4] - ldmia r2!, {r0, r1} - add r3, sp, #8 - stmia r3!, {r0, r1} - ldr r0, [r2] - add r2, sp, #0x14 - str r0, [r3] - ldr r3, _021F2ECC ; =0UNK05_021FC550 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3] - str r0, [r2] - add r0, sp, #0 - bl FUN_0201F6E8 - add r4, r0, #0 - beq _021F2EC4 - mov r1, #0 - bl FUN_0201F80C - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F830 - add r0, r4, #0 - mov r1, #0 - bl FUN_0201F890 - add r0, r4, #0 - bl FUN_0201F8E0 - mov r1, #1 - bl NNS_G3dMdlSetMdlFogEnableFlagAll - add r0, r4, #0 - bl FUN_0201F8E0 - bl MOD05_021DB5EC -_021F2EC4: - add r0, r4, #0 - add sp, #0x20 - pop {r4, pc} - nop -_021F2ECC: .word UNK05_021FC550 - - thumb_func_start MOD05_021F2ED0 -MOD05_021F2ED0: ; 0x021F2ED0 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r6, r0, #0 - add r0, r5, #0 - add r4, r2, #0 - bl MOD05_021F2DE8 - add r1, r0, #0 - add r0, r6, #0 - add r0, #0xf8 - ldr r0, [r0] - bl MOD05_021F5A90 - str r0, [r4] - add r0, r5, #0 - bl MOD05_021F2DF4 - add r1, r0, #0 - add r0, r6, #0 - add r0, #0xfc - ldr r0, [r0] - bl MOD05_021F5A90 - add r1, r4, #0 - add r1, #0xc - bl FUN_0202227C - add r0, r6, #0 - bl MOD05_021F2D6C - add r1, r5, #0 - bl FUN_02021050 - add r6, r0, #0 - bl FUN_020210AC - str r0, [r4, #4] - add r0, r6, #0 - bl FUN_020211AC - str r0, [r4, #0x1c] - add r0, r6, #0 - bl FUN_020211BC - str r0, [r4, #0x20] - add r0, r6, #0 - bl FUN_020211CC - str r0, [r4, #0x24] - add r0, r5, #0 - bl MOD05_021F2E00 - str r0, [r4, #8] - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F2F3C -MOD05_021F2F3C: ; 0x021F2F3C - push {r3, lr} - bl FUN_02058578 - bl FUN_020583A0 - pop {r3, pc} - - thumb_func_start MOD05_021F2F48 -MOD05_021F2F48: ; 0x021F2F48 - push {r3, r4, lr} - sub sp, #0xc - add r4, r1, #0 - add r1, sp, #0 - bl MOD05_021F1E64 - mov r0, #6 - ldr r1, [sp, #8] - lsl r0, r0, #0xc - add r0, r1, r0 - str r0, [sp, #8] - add r0, r4, #0 - add r1, sp, #0 - bl FUN_0201F7C8 - mov r0, #0 - add sp, #0xc - pop {r3, r4, pc} - - thumb_func_start MOD05_021F2F6C -MOD05_021F2F6C: ; 0x021F2F6C - push {r4, r5, r6, lr} - mov r4, #1 - add r6, r1, #0 - lsl r1, r4, #9 - add r5, r0, #0 - bl FUN_0205842C - cmp r0, #1 - bne _021F2F80 - mov r4, #0 -_021F2F80: - mov r1, #1 - add r0, r5, #0 - lsl r1, r1, #0xc - bl FUN_0205842C - cmp r0, #1 - bne _021F2F9E - mov r1, #2 - add r0, r5, #0 - lsl r1, r1, #0xc - bl FUN_0205842C - cmp r0, #0 - bne _021F2F9E - mov r4, #0 -_021F2F9E: - lsl r1, r4, #0x18 - add r0, r6, #0 - lsr r1, r1, #0x18 - bl FUN_0201F80C - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F2FAC -MOD05_021F2FAC: ; 0x021F2FAC - lsl r1, r0, #2 - ldr r0, _021F2FB4 ; =UNK05_021FC55C - ldr r0, [r0, r1] - bx lr - .balign 4, 0 -_021F2FB4: .word UNK05_021FC55C - - thumb_func_start MOD05_021F2FB8 -MOD05_021F2FB8: ; 0x021F2FB8 - lsl r1, r0, #2 - ldr r0, _021F2FC0 ; =UNK05_021FC56C - ldr r0, [r0, r1] - bx lr - .balign 4, 0 -_021F2FC0: .word UNK05_021FC56C - - thumb_func_start MOD05_021F2FC4 -MOD05_021F2FC4: ; 0x021F2FC4 - lsl r1, r0, #2 - ldr r0, _021F2FCC ; =UNK05_021FC57C - ldr r0, [r0, r1] - bx lr - .balign 4, 0 -_021F2FCC: .word UNK05_021FC57C - - thumb_func_start MOD05_021F2FD0 -MOD05_021F2FD0: ; 0x021F2FD0 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - mov r0, #1 - lsl r0, r0, #8 - ldr r4, [r5, r0] - mov r0, #4 - add r6, r1, #0 - ldrsh r1, [r4, r0] - mov r0, #2 - ldrsh r0, [r4, r0] - add r7, r2, #0 - str r3, [sp] - cmp r1, r0 - bge _021F2FFA - add r0, r5, #0 - add r0, #0xe0 - ldr r0, [r0] - bl FUN_0201F2C0 - cmp r0, #1 - bne _021F302C -_021F2FFA: - mov r2, #0 - ldrsh r3, [r4, r2] - ldr r0, [r4, #0xc] - cmp r3, #0 - ble _021F3024 -_021F3004: - ldr r1, [r0, #0xc] - cmp r1, #0 - bne _021F301C - add r5, #0xf0 - ldr r1, [r5] - str r1, [r0, #0xc] - ldr r1, [sp] - str r1, [r0, #8] - str r6, [r0, #4] - str r7, [r0] - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F301C: - add r2, r2, #1 - add r0, #0x10 - cmp r2, r3 - blt _021F3004 -_021F3024: - bl GF_AssertFail - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F302C: - add r0, r5, #0 - add r1, r7, #0 - mov r2, #0 - bl MOD05_021F2DB0 - add r2, r0, #0 - ldr r3, [sp] - add r0, r5, #0 - add r1, r6, #0 - bl MOD05_021F317C - mov r0, #4 - ldrsh r0, [r4, r0] - add r0, r0, #1 - strh r0, [r4, #4] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F3050 -MOD05_021F3050: ; 0x021F3050 - push {r3, r4} - mov r2, #1 - lsl r2, r2, #8 - ldr r0, [r0, r2] - mov r3, #0 - ldrsh r4, [r0, r3] - ldr r2, [r0, #0xc] - cmp r4, #0 - ble _021F307E -_021F3062: - ldr r0, [r2, #4] - cmp r0, r1 - bne _021F3076 - ldr r0, [r2, #0xc] - cmp r0, #0 - beq _021F3076 - mov r0, #0 - str r0, [r2, #0xc] - pop {r3, r4} - bx lr -_021F3076: - add r3, r3, #1 - add r2, #0x10 - cmp r3, r4 - blt _021F3062 -_021F307E: - pop {r3, r4} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F3084 -MOD05_021F3084: ; 0x021F3084 - push {r3, r4} - mov r2, #1 - lsl r2, r2, #8 - ldr r0, [r0, r2] - mov r3, #0 - ldrsh r4, [r0, r3] - ldr r2, [r0, #0xc] - cmp r4, #0 - ble _021F30BC -_021F3096: - ldr r0, [r2, #4] - cmp r0, r1 - bne _021F30B4 - ldr r0, [r2, #0xc] - cmp r0, #0 - beq _021F30B4 - ldr r0, [r2, #8] - cmp r0, #0 - bne _021F30AE - mov r0, #3 - pop {r3, r4} - bx lr -_021F30AE: - mov r0, #4 - pop {r3, r4} - bx lr -_021F30B4: - add r3, r3, #1 - add r2, #0x10 - cmp r3, r4 - blt _021F3096 -_021F30BC: - mov r0, #0 - pop {r3, r4} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F30C4 -MOD05_021F30C4: ; 0x021F30C4 - push {r3, r4, r5, r6, r7, lr} - str r1, [sp] - mov r1, #1 - ldr r0, [sp] - lsl r1, r1, #8 - ldr r4, [r0, r1] - add r0, #0xe0 - ldr r0, [r0] - mov r6, #0 - ldr r5, [r4, #0xc] - bl FUN_0201F2C0 - cmp r0, #1 - beq _021F3178 - add r7, r4, #4 - b _021F310E -_021F30E4: - ldr r0, [r5, #0xc] - cmp r0, #0 - beq _021F310A - ldr r0, [sp] - ldr r1, [r5] - mov r2, #0 - bl MOD05_021F2DB0 - add r2, r0, #0 - ldr r0, [sp] - ldr r1, [r5, #4] - ldr r3, [r5, #8] - bl MOD05_021F317C - mov r0, #0 - str r0, [r5, #0xc] - ldrsh r0, [r7, r0] - add r0, r0, #1 - strh r0, [r7] -_021F310A: - add r5, #0x10 - add r6, r6, #1 -_021F310E: - mov r0, #4 - ldrsh r1, [r4, r0] - mov r0, #2 - ldrsh r0, [r4, r0] - cmp r1, r0 - bge _021F3122 - mov r0, #0 - ldrsh r0, [r4, r0] - cmp r6, r0 - blt _021F30E4 -_021F3122: - mov r6, #0 - ldrsh r0, [r4, r6] - ldr r7, [r4, #0xc] - sub r1, r0, #1 - cmp r1, #0 - ble _021F3174 - add r5, r7, #0 -_021F3130: - ldr r1, [r5, #0xc] - cmp r1, #0 - bne _021F3166 - add r2, r6, #1 - cmp r2, r0 - bge _021F3166 - lsl r1, r2, #4 - add r3, r7, r1 -_021F3140: - ldr r1, [r3, #0xc] - cmp r1, #0 - beq _021F315E - lsl r0, r2, #4 - add r3, r7, r0 - mov ip, r3 - add r2, r5, #0 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - mov r1, #0 - mov r0, ip - str r1, [r0, #0xc] - b _021F3166 -_021F315E: - add r2, r2, #1 - add r3, #0x10 - cmp r2, r0 - blt _021F3140 -_021F3166: - mov r0, #0 - ldrsh r0, [r4, r0] - add r6, r6, #1 - add r5, #0x10 - sub r1, r0, #1 - cmp r6, r1 - blt _021F3130 -_021F3174: - mov r0, #0 - strh r0, [r4, #4] -_021F3178: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F317C -MOD05_021F317C: ; 0x021F317C - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r0, #0 - mov r0, #4 - str r0, [sp] - add r0, r5, #0 - add r0, #0xf0 - add r4, r1, #0 - add r6, r3, #0 - add r1, r2, #0 - ldr r0, [r0] - add r2, r4, #0 - mov r3, #1 - bl FUN_02020F54 - cmp r0, #0 - bne _021F31A2 - bl GF_AssertFail -_021F31A2: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F31C8 - cmp r6, #0 - bne _021F31BA - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F28A0 - add sp, #4 - pop {r3, r4, r5, r6, pc} -_021F31BA: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F2914 - add sp, #4 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F31C8 -MOD05_021F31C8: ; 0x021F31C8 - push {r4, r5, r6, lr} - mov r3, #1 - lsl r3, r3, #8 - ldr r3, [r0, r3] - mov r5, #1 - ldr r4, [r3, #0x10] - mov r2, #0 - strh r5, [r3, #6] - ldrsh r6, [r3, r2] - cmp r6, #0 - ble _021F31FC -_021F31DE: - ldr r5, [r4, #8] - cmp r5, #0 - bne _021F31F4 - add r0, #0xf0 - ldr r0, [r0] - str r0, [r4, #8] - str r1, [r4, #4] - mov r0, #0 - str r0, [r4] - strh r0, [r3, #6] - pop {r4, r5, r6, pc} -_021F31F4: - add r2, r2, #1 - add r4, #0xc - cmp r2, r6 - blt _021F31DE -_021F31FC: - bl GF_AssertFail - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F3204 -MOD05_021F3204: ; 0x021F3204 - push {r4, r5} - mov r2, #1 - lsl r2, r2, #8 - ldr r2, [r0, r2] - mov r0, #1 - ldr r4, [r2, #0x10] - mov r3, #0 - strh r0, [r2, #6] - ldrsh r5, [r2, r3] - cmp r5, #0 - ble _021F3236 -_021F321A: - ldr r0, [r4, #8] - cmp r0, #0 - beq _021F322E - ldr r0, [r4, #4] - cmp r0, r1 - bne _021F322E - mov r0, #0 - str r0, [r4, #8] - str r0, [r4] - b _021F3236 -_021F322E: - add r3, r3, #1 - add r4, #0xc - cmp r3, r5 - blt _021F321A -_021F3236: - mov r0, #0 - strh r0, [r2, #6] - pop {r4, r5} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F3240 -MOD05_021F3240: ; 0x021F3240 - push {r3, r4, r5, r6, r7, lr} - mov r0, #1 - lsl r0, r0, #8 - ldr r6, [r1, r0] - ldrh r0, [r6, #6] - cmp r0, #1 - beq _021F327A - mov r4, #0 - ldrsh r0, [r6, r4] - ldr r5, [r6, #0x10] - cmp r0, #0 - ble _021F327A - mov r7, #1 -_021F325A: - ldr r0, [r5] - cmp r0, #0 - bne _021F326E - ldr r0, [r5, #8] - cmp r0, #0 - beq _021F326E - ldr r1, [r5, #4] - bl FUN_020210F0 - str r7, [r5] -_021F326E: - mov r0, #0 - ldrsh r0, [r6, r0] - add r4, r4, #1 - add r5, #0xc - cmp r4, r0 - blt _021F325A -_021F327A: - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F327C -MOD05_021F327C: ; 0x021F327C - push {r3, r4, r5, r6, r7, lr} - mov r0, #1 - lsl r0, r0, #8 - ldr r6, [r1, r0] - mov r4, #0 - ldr r5, [r6, #0x10] - mov r0, #1 - strh r0, [r6, #6] - ldrsh r0, [r6, r4] - cmp r0, #0 - ble _021F32B6 - add r7, r4, #0 -_021F3294: - ldr r0, [r5] - cmp r0, #1 - bne _021F32AA - ldr r0, [r5, #8] - cmp r0, #0 - beq _021F32AA - ldr r1, [r5, #4] - bl FUN_02021158 - str r7, [r5] - str r7, [r5, #8] -_021F32AA: - mov r0, #0 - ldrsh r0, [r6, r0] - add r4, r4, #1 - add r5, #0xc - cmp r4, r0 - blt _021F3294 -_021F32B6: - mov r0, #0 - strh r0, [r6, #6] - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F32BC -MOD05_021F32BC: ; 0x021F32BC - push {r4, r5, r6, lr} - mov r5, #1 - lsl r5, r5, #8 - ldr r5, [r0, r5] - mov r4, #0 - ldrsh r6, [r5, r4] - ldr r0, [r5, #8] - cmp r6, #0 - ble _021F32F2 -_021F32CE: - ldr r5, [r0, #4] - cmp r5, #0 - bne _021F32EA - str r1, [r0, #4] - str r2, [r0, #8] - str r3, [r0] - ldr r0, [r0, #8] - mov r2, #0 - str r2, [r0] - add r0, r1, #0 - mov r1, #1 - bl MOD05_021F2E0C - pop {r4, r5, r6, pc} -_021F32EA: - add r4, r4, #1 - add r0, #0xc - cmp r4, r6 - blt _021F32CE -_021F32F2: - bl GF_AssertFail - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F32F8 -MOD05_021F32F8: ; 0x021F32F8 - push {r3, r4} - mov r2, #1 - lsl r2, r2, #8 - ldr r0, [r0, r2] - mov r3, #0 - ldrsh r4, [r0, r3] - ldr r2, [r0, #8] - cmp r4, #0 - ble _021F3322 -_021F330A: - ldr r0, [r2, #4] - cmp r0, r1 - bne _021F331A - mov r0, #0 - str r0, [r2, #4] - str r0, [r2, #8] - pop {r3, r4} - bx lr -_021F331A: - add r3, r3, #1 - add r2, #0xc - cmp r3, r4 - blt _021F330A -_021F3322: - pop {r3, r4} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F3328 -MOD05_021F3328: ; 0x021F3328 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - mov r0, #1 - lsl r0, r0, #8 - ldr r6, [r7, r0] - mov r4, #0 - ldrsh r0, [r6, r4] - ldr r5, [r6, #8] - cmp r0, #0 - ble _021F3356 -_021F333C: - ldr r0, [r5, #4] - cmp r0, #0 - beq _021F334A - add r0, r7, #0 - add r1, r5, #0 - bl MOD05_021F3364 -_021F334A: - mov r0, #0 - ldrsh r0, [r6, r0] - add r4, r4, #1 - add r5, #0xc - cmp r4, r0 - blt _021F333C -_021F3356: - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F3358 -MOD05_021F3358: ; 0x021F3358 - ldr r3, _021F3360 ; =MOD05_021F3328 - add r0, r1, #0 - bx r3 - nop -_021F3360: .word MOD05_021F3328 - - thumb_func_start MOD05_021F3364 -MOD05_021F3364: ; 0x021F3364 - push {r4, lr} - add r4, r1, #0 - ldr r1, [r4] - bl MOD05_021F2A08 - cmp r0, #2 - beq _021F33B2 - ldr r0, [r4, #4] - ldr r1, [r4] - bl MOD05_021F1FE0 - ldr r1, [r4, #8] - str r0, [r1] - ldr r0, [r4, #8] - ldr r0, [r0] - cmp r0, #0 - bne _021F338A - bl GF_AssertFail -_021F338A: - ldr r0, [r4, #4] - mov r1, #0 - bl MOD05_021F2E0C - mov r1, #2 - ldr r0, [r4, #4] - lsl r1, r1, #0x14 - bl FUN_0205842C - cmp r0, #1 - ldr r0, [r4, #4] - bne _021F33A8 - bl FUN_020586DC - b _021F33AC -_021F33A8: - bl FUN_020586A0 -_021F33AC: - mov r0, #0 - str r0, [r4, #4] - str r0, [r4, #8] -_021F33B2: - pop {r4, pc} - - thumb_func_start MOD05_021F33B4 -MOD05_021F33B4: ; 0x021F33B4 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r6, r1, #0 - add r5, r0, #0 - mov r0, #0xc - add r7, r6, #0 - mul r7, r0 - lsl r0, r6, #4 - lsl r1, r7, #1 - str r0, [sp, #4] - add r0, r1, r0 - str r0, [sp, #8] - add r0, #0x28 - str r0, [sp, #8] - ldr r1, [sp, #8] - mov r0, #4 - str r2, [sp] - bl AllocFromHeap - add r4, r0, #0 - bne _021F33E2 - bl GF_AssertFail -_021F33E2: - ldr r2, [sp, #8] - add r0, r4, #0 - mov r1, #0 - bl memset - ldr r0, [sp] - strh r6, [r4] - strh r0, [r4, #2] - add r0, r4, #0 - add r0, #0x28 - str r0, [r4, #8] - add r1, r0, r7 - ldr r0, [sp, #4] - str r1, [r4, #0xc] - add r0, r1, r0 - str r0, [r4, #0x10] - mov r0, #1 - lsl r0, r0, #8 - str r4, [r5, r0] - add r0, r0, #4 - ldr r0, [r5, r0] - bl FUN_0205839C - add r6, r0, #0 - ldr r0, _021F3448 ; =MOD05_021F30C4 - add r1, r5, #0 - add r2, r6, #1 - bl FUN_0200CA44 - str r0, [r4, #0x18] - ldr r0, _021F344C ; =MOD05_021F3358 - add r1, r5, #0 - add r2, r6, #2 - bl FUN_0200CA44 - str r0, [r4, #0x1c] - ldr r0, _021F3450 ; =MOD05_021F3240 - add r1, r5, #0 - mov r2, #0xff - bl FUN_0200CA60 - str r0, [r4, #0x20] - ldr r0, _021F3454 ; =MOD05_021F327C - add r1, r5, #0 - mov r2, #0xff - bl FUN_0200CA98 - str r0, [r4, #0x24] - add sp, #0xc - pop {r4, r5, r6, r7, pc} - nop -_021F3448: .word MOD05_021F30C4 -_021F344C: .word MOD05_021F3358 -_021F3450: .word MOD05_021F3240 -_021F3454: .word MOD05_021F327C - - thumb_func_start MOD05_021F3458 -MOD05_021F3458: ; 0x021F3458 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #1 - lsl r0, r0, #8 - ldr r4, [r5, r0] - mov r0, #1 - strh r0, [r4, #6] - ldr r0, [r4, #0x18] - bl FUN_0200CAB4 - ldr r0, [r4, #0x1c] - bl FUN_0200CAB4 - ldr r0, [r4, #0x20] - bl FUN_0200CAB4 - ldr r0, [r4, #0x24] - bl FUN_0200CAB4 - add r0, r4, #0 - bl FreeToHeap - mov r0, #1 - mov r1, #0 - lsl r0, r0, #8 - str r1, [r5, r0] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F3490 -MOD05_021F3490: ; 0x021F3490 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021F2E28 - cmp r0, #1 - beq _021F34A8 - add r0, r5, #0 - bl MOD05_021F0514 - cmp r0, #0 - bne _021F34D2 -_021F34A8: - add r0, r5, #0 - bl FUN_02058458 - add r6, r0, #0 - add r0, r5, #0 - bl FUN_02058578 - add r7, r0, #0 - add r0, r5, #0 - bl FUN_020576A8 - add r0, r7, #0 - add r1, r6, #0 - add r2, r5, #0 - bl MOD05_021F2C80 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_02057614 - pop {r3, r4, r5, r6, r7, pc} -_021F34D2: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F34DC - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F34DC -MOD05_021F34DC: ; 0x021F34DC - push {r4, r5, r6, r7, lr} - sub sp, #0x34 - add r7, r0, #0 - str r1, [sp, #8] - bl MOD05_021F2F3C - str r0, [sp, #0x18] - bl MOD05_021F2D48 - str r0, [sp, #0x14] - add r0, r7, #0 - bl MOD05_021F0514 - str r0, [sp, #0x10] - mov r0, #4 - mov r1, #0x58 - bl AllocFromHeapAtEnd - mov r1, #0 - mov r2, #0x58 - add r5, r0, #0 - bl memset - ldr r0, [sp, #8] - str r0, [r5] - add r0, r7, #0 - str r7, [r5, #0x50] - bl FUN_02058458 - add r6, r0, #0 - bl MOD05_021F2DE8 - ldr r4, _021F36C4 ; =UNK05_021F9094 - ldr r2, _021F36C8 ; =0x0000FFFF -_021F3520: - ldr r1, [r4] - cmp r1, r0 - beq _021F352E - add r4, #8 - ldr r1, [r4] - cmp r1, r2 - bne _021F3520 -_021F352E: - ldr r0, _021F36C8 ; =0x0000FFFF - cmp r1, r0 - bne _021F3538 - bl GF_AssertFail -_021F3538: - ldr r0, [sp, #0x18] - ldr r1, [r4, #4] - mov r2, #0 - bl MOD05_021F2DB0 - str r0, [r5, #8] - add r0, r6, #0 - bl MOD05_021F2DF4 - ldr r4, _021F36CC ; =UNK05_021F90E4 - ldr r2, _021F36C8 ; =0x0000FFFF -_021F354E: - ldr r1, [r4] - cmp r1, r0 - beq _021F355C - add r4, #8 - ldr r1, [r4] - cmp r1, r2 - bne _021F354E -_021F355C: - ldr r0, _021F36C8 ; =0x0000FFFF - cmp r1, r0 - bne _021F3566 - bl GF_AssertFail -_021F3566: - ldr r0, [sp, #0x18] - ldr r1, [r4, #4] - mov r2, #0 - bl MOD05_021F2DB0 - add r1, r5, #0 - add r1, #0x14 - str r0, [r5, #0xc] - bl FUN_0202227C - ldr r4, _021F36D0 ; =UNK05_021FA0AC - ldr r0, _021F36C8 ; =0x0000FFFF -_021F357E: - ldr r1, [r4] - cmp r1, r6 - beq _021F358C - add r4, #8 - ldr r1, [r4] - cmp r1, r0 - bne _021F357E -_021F358C: - ldr r0, _021F36C8 ; =0x0000FFFF - cmp r1, r0 - bne _021F3596 - bl GF_AssertFail -_021F3596: - ldr r0, [sp, #0x18] - ldr r1, [r4, #4] - mov r2, #0 - bl MOD05_021F2DB0 - str r0, [r5, #0x10] - bl NNS_G3dGetTex - add r4, r0, #0 - add r0, r6, #0 - bl MOD05_021F2E00 - add r3, r0, #0 - add r0, r5, #0 - add r0, #0x14 - str r0, [sp] - add r0, r5, #0 - ldr r1, [r5, #8] - add r0, #0x28 - add r2, r4, #0 - bl FUN_0201F7A4 - ldr r0, [sp, #0x10] - bl FUN_0201F7E0 - add r3, r0, #0 - add r2, sp, #0x28 - ldmia r3!, {r0, r1} - add r4, r2, #0 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r1, r5, #0 - str r0, [r2] - ldr r0, [sp, #0x14] - add r1, #0x28 - add r2, r4, #0 - bl MOD05_021F2E70 - str r0, [r5, #0x24] - cmp r0, #0 - bne _021F35EC - bl GF_AssertFail -_021F35EC: - ldr r0, [sp, #0x10] - bl FUN_0201F844 - add r1, r0, #0 - ldr r0, [r5, #0x24] - bl FUN_0201F830 - ldr r0, [sp, #0x10] - bl FUN_0201F8C0 - add r1, r0, #0 - ldr r0, [r5, #0x24] - bl FUN_0201F890 - ldr r0, [sp, #0x10] - bl FUN_0201F880 - add r1, r0, #0 - ldr r0, [r5, #0x24] - bl FUN_0201F86C - ldr r0, [r5, #0x24] - mov r1, #0 - bl FUN_0201F854 - ldr r0, [r5, #0x24] - mov r1, #1 - bl FUN_0201F80C - ldr r0, [r5, #0x24] - bl FUN_0201F8F0 - add r0, r7, #0 - bl FUN_02058A9C - cmp r0, #1 - bne _021F367A - add r0, r7, #0 - mov r1, #2 - bl FUN_0205829C - str r0, [sp, #0xc] - add r0, r7, #0 - mov r1, #1 - bl FUN_02059C90 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r4, #0 - bl FUN_02054AF0 - cmp r0, #0 - bne _021F3658 - mov r4, #1 -_021F3658: - add r0, r7, #0 - add r1, sp, #0x1c - bl FUN_02058B5C - add r0, r7, #0 - bl MOD05_021E4C24 - ldr r1, [sp, #0xc] - str r4, [sp] - str r1, [sp, #4] - add r1, r5, #0 - ldr r2, [r5, #0x24] - add r1, #0x28 - add r3, sp, #0x1c - bl MOD06_02249B7C - str r0, [r5, #0x54] -_021F367A: - add r0, r7, #0 - bl FUN_020576A8 - mov r1, #0x41 - ldr r0, [sp, #0x18] - lsl r1, r1, #2 - ldr r0, [r0, r1] - add r1, r6, #0 - add r2, r7, #0 - bl MOD05_021F2C80 - ldr r1, [sp, #8] - add r0, r7, #0 - bl FUN_02057614 - mov r1, #0x41 - ldr r0, [sp, #0x18] - lsl r1, r1, #2 - ldr r0, [r0, r1] - bl FUN_0205839C - ldr r0, _021F36D4 ; =MOD05_021F36D8 - add r1, r5, #0 - mov r2, #0xff - bl FUN_0200CA98 - add r4, r0, #0 - bne _021F36B6 - bl GF_AssertFail -_021F36B6: - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F36D8 - add sp, #0x34 - pop {r4, r5, r6, r7, pc} - nop -_021F36C4: .word UNK05_021F9094 -_021F36C8: .word 0x0000FFFF -_021F36CC: .word UNK05_021F90E4 -_021F36D0: .word UNK05_021FA0AC -_021F36D4: .word MOD05_021F36D8 - - thumb_func_start MOD05_021F36D8 -MOD05_021F36D8: ; 0x021F36D8 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r6, r0, #0 - ldr r0, [r5, #4] - ldr r4, [r5, #0x50] - cmp r0, #0 - beq _021F36EC - cmp r0, #1 - beq _021F3744 - pop {r4, r5, r6, pc} -_021F36EC: - add r0, r4, #0 - bl FUN_02058830 - cmp r0, #0 - beq _021F3700 - add r0, r4, #0 - bl MOD05_021F2E28 - cmp r0, #0 - bne _021F3730 -_021F3700: - ldr r0, [r5, #0x54] - cmp r0, #0 - beq _021F370A - bl FUN_02064520 -_021F370A: - ldr r0, [r5, #0x24] - bl FUN_0201F744 - ldr r0, [r5, #8] - bl FreeToHeap - ldr r0, [r5, #0xc] - bl FreeToHeap - ldr r0, [r5, #0x10] - bl FreeToHeap - add r0, r5, #0 - bl FreeToHeap - add r0, r6, #0 - bl FUN_0200CAB4 - pop {r4, r5, r6, pc} -_021F3730: - add r0, r4, #0 - bl FUN_02058458 - ldr r1, [r5] - cmp r1, r0 - beq _021F377C - ldr r0, [r5, #4] - add r0, r0, #1 - str r0, [r5, #4] - pop {r4, r5, r6, pc} -_021F3744: - add r0, r4, #0 - bl MOD05_021F2E28 - cmp r0, #0 - bne _021F377C - ldr r0, [r5, #0x54] - cmp r0, #0 - beq _021F3758 - bl FUN_02064520 -_021F3758: - ldr r0, [r5, #0x24] - bl FUN_0201F744 - ldr r0, [r5, #8] - bl FreeToHeap - ldr r0, [r5, #0xc] - bl FreeToHeap - ldr r0, [r5, #0x10] - bl FreeToHeap - add r0, r5, #0 - bl FreeToHeap - add r0, r6, #0 - bl FUN_0200CAB4 -_021F377C: - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F3780 -MOD05_021F3780: ; 0x021F3780 - push {r4, r5, r6, lr} - add r6, r1, #0 - add r5, r0, #0 - add r0, r6, #0 - bl MOD05_021F37AC - add r4, r0, #0 - str r6, [r4] - str r5, [r4, #8] - bl MOD05_021F37DC - add r0, r4, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F379C -MOD05_021F379C: ; 0x021F379C - push {r4, lr} - add r4, r0, #0 - bl MOD05_021F37E0 - add r0, r4, #0 - bl MOD05_021F37D0 - pop {r4, pc} - - thumb_func_start MOD05_021F37AC -MOD05_021F37AC: ; 0x021F37AC - push {r4, lr} - mov r1, #0x10 - bl AllocFromHeap - add r4, r0, #0 - bne _021F37BC - bl GF_AssertFail -_021F37BC: - add r2, r4, #0 - mov r1, #0x10 - mov r0, #0 -_021F37C2: - strb r0, [r2] - add r2, r2, #1 - sub r1, r1, #1 - bne _021F37C2 - add r0, r4, #0 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F37D0 -MOD05_021F37D0: ; 0x021F37D0 - ldr r3, _021F37D8 ; =FreeToHeapExplicit - add r1, r0, #0 - ldr r0, [r1] - bx r3 - .balign 4, 0 -_021F37D8: .word FreeToHeapExplicit - - thumb_func_start MOD05_021F37DC -MOD05_021F37DC: ; 0x021F37DC - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F37E0 -MOD05_021F37E0: ; 0x021F37E0 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5, #4] - cmp r0, #0 - beq _021F380E - ldr r4, [r5, #0xc] - cmp r4, #0 - beq _021F380E -_021F37F0: - ldr r0, [r4, #0x5c] - cmp r0, #0 - beq _021F37FC - add r0, r4, #0 - bl MOD05_021F383C -_021F37FC: - ldr r0, [r5, #4] - add r4, #0x60 - sub r0, r0, #1 - str r0, [r5, #4] - bne _021F37F0 - ldr r0, [r5] - ldr r1, [r5, #0xc] - bl FreeToHeapExplicit -_021F380E: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F3810 -MOD05_021F3810: ; 0x021F3810 - push {r3, r4, r5, lr} - add r4, r0, #0 - str r1, [r4, #4] - mov r0, #0x60 - add r5, r1, #0 - mul r5, r0 - ldr r0, [r4] - add r1, r5, #0 - bl AllocFromHeap - str r0, [r4, #0xc] - cmp r0, #0 - bne _021F382E - bl GF_AssertFail -_021F382E: - ldr r0, [r4, #0xc] - mov r1, #0 - add r2, r5, #0 - bl memset - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F383C -MOD05_021F383C: ; 0x021F383C - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x5c] - bl FreeToHeap - add r0, r4, #0 - mov r1, #0 - mov r2, #0x60 - bl memset - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F3854 -MOD05_021F3854: ; 0x021F3854 - mov r0, #0 - str r0, [r2] - str r0, [r2, #4] - bx lr - - thumb_func_start MOD05_021F385C -MOD05_021F385C: ; 0x021F385C - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F3860 -MOD05_021F3860: ; 0x021F3860 - push {r3, r4, r5, r6, r7, lr} - add r5, r1, #0 - ldr r0, [r5, #0x38] - add r4, r2, #0 - bl FUN_02055320 - add r6, r0, #0 - ldr r0, [r5, #0x38] - bl FUN_0205532C - add r7, r0, #0 - ldr r0, [r4] - cmp r0, r6 - bne _021F3882 - ldr r0, [r4, #4] - cmp r0, r7 - beq _021F38B4 -_021F3882: - str r6, [r4] - add r0, r5, #0 - add r1, r6, #0 - add r2, r7, #0 - str r7, [r4, #4] - bl FUN_0204A6E0 - add r4, r0, #0 - bl FUN_02054A18 - cmp r0, #0 - beq _021F389E - mov r2, #0 - b _021F38AA -_021F389E: - add r0, r4, #0 - bl FUN_02054A0C - cmp r0, #0 - beq _021F38B4 - mov r2, #1 -_021F38AA: - add r0, r6, #0 - add r1, r7, #0 - add r3, r5, #0 - bl MOD05_021DAFA8 -_021F38B4: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F38B8 -MOD05_021F38B8: ; 0x021F38B8 - ldr r0, [r0, #4] - ldr r3, _021F38C4 ; =MOD05_021D8024 - ldr r0, [r0, #4] - ldr r1, _021F38C8 ; =UNK05_021FC58C - bx r3 - nop -_021F38C4: .word MOD05_021D8024 -_021F38C8: .word UNK05_021FC58C - - thumb_func_start MOD05_021F38CC -MOD05_021F38CC: ; 0x021F38CC - push {r4, r5, r6, r7, lr} - sub sp, #0xc - mov r1, #0 - add r2, r1, #0 - add r5, r0, #0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r5, #0 - mov r1, #0x46 - mov r2, #0 - bl GetMonData - mov r1, #0xf - and r0, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #8] - add r0, r5, #0 - mov r1, #0x47 - mov r2, #0 - bl GetMonData - mov r1, #0xf - and r0, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #4] - add r0, r5, #0 - mov r1, #0x48 - mov r2, #0 - bl GetMonData - mov r1, #0xf - and r0, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp] - add r0, r5, #0 - mov r1, #0x49 - mov r2, #0 - bl GetMonData - mov r1, #0xf - and r0, r1 - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - add r0, r5, #0 - mov r1, #0x4a - mov r2, #0 - bl GetMonData - mov r1, #0xf - and r0, r1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - add r0, r5, #0 - mov r1, #0x4b - mov r2, #0 - bl GetMonData - mov r1, #0xf - and r0, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - eor r0, r6 - asr r1, r4, #8 - mul r0, r7 - eor r0, r1 - lsl r1, r4, #0x18 - lsr r3, r1, #0x18 - lsl r0, r0, #0x10 - ldr r2, [sp, #4] - ldr r1, [sp] - lsr r0, r0, #0x10 - eor r2, r1 - ldr r1, [sp, #8] - mul r2, r1 - add r1, r3, #0 - eor r1, r2 - lsl r1, r1, #0x10 - lsr r1, r1, #8 - add r0, r0, r1 - add sp, #0xc - pop {r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F3978 -MOD05_021F3978: ; 0x021F3978 - ldr r2, _021F399C ; =UNK05_021FC5A4 - mov r3, #1 -_021F397C: - lsl r1, r3, #3 - add r1, r2, r1 - ldrh r1, [r1, #4] - cmp r0, r1 - bhs _021F398E - sub r0, r3, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_021F398E: - add r1, r3, #1 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - cmp r3, #0xf - blo _021F397C - add r0, r3, #0 - bx lr - .balign 4, 0 -_021F399C: .word UNK05_021FC5A4 - - thumb_func_start MOD05_021F39A0 -MOD05_021F39A0: ; 0x021F39A0 - push {r4, r5, r6, lr} - add r6, r0, #0 - mov r0, #4 - add r5, r1, #0 - bl FUN_02087A6C - add r4, r0, #0 - bl FUN_02087A84 - add r0, r4, #0 - mov r1, #0 - mov r2, #4 - bl FUN_02087A98 - add r0, r4, #0 - add r1, r6, #0 - bl FUN_02087B58 - add r6, r0, #0 - add r0, r4, #0 - bl FUN_02087B0C - add r0, r5, #0 - bl MOD05_021F3978 - lsl r4, r0, #3 - ldr r0, _021F3A0C ; =UNK05_021FC5A8 - ldr r2, _021F3A10 ; =UNK05_021FC5A6 - ldrh r0, [r0, r4] - ldrh r2, [r2, r4] - asr r1, r5, #0x1f - mov r3, #0 - sub r0, r5, r0 - sbc r1, r3 - bl _ll_udiv - add r2, r0, #0 - add r0, r6, #0 - ldr r6, _021F3A14 ; =UNK05_021FC5A4 - add r3, r1, #0 - mov r5, #0 - ldrh r4, [r6, r4] - add r1, r5, #0 - add r2, r4, r2 - adc r5, r3 - add r3, r5, #0 - bl _ll_mul - mov r2, #0xa - mov r3, #0 - bl _ll_udiv - pop {r4, r5, r6, pc} - nop -_021F3A0C: .word UNK05_021FC5A8 -_021F3A10: .word UNK05_021FC5A6 -_021F3A14: .word UNK05_021FC5A4 - - thumb_func_start MOD05_021F3A18 -MOD05_021F3A18: ; 0x021F3A18 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r4, r0, #0 - ldr r0, [r4, #0xc] - add r5, r1, #0 - bl SavArray_PlayerParty_get - add r1, r5, #0 - bl GetPartyMonByIndex - mov r1, #5 - mov r2, #0 - str r0, [sp] - bl GetMonData - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - ldr r0, [sp] - bl MOD05_021F38CC - add r1, sp, #4 - strh r0, [r1, #2] - ldrh r1, [r1, #2] - add r0, r5, #0 - bl MOD05_021F39A0 - add r6, r0, #0 - ldr r0, [r4, #0xc] - bl SavArray_Flags_get - bl FUN_0205F3E8 - add r1, sp, #4 - strh r0, [r1] - ldrh r1, [r1] - add r0, r5, #0 - bl MOD05_021F39A0 - add r7, r0, #0 - mov r0, #0xfa - lsl r0, r0, #2 - mul r0, r6 - mov r1, #0xfe - bl _u32_div_f - add r0, r0, #5 - mov r1, #0xa - bl _u32_div_f - add r5, r0, #0 - mov r0, #0xfa - lsl r0, r0, #2 - mul r0, r7 - mov r1, #0xfe - bl _u32_div_f - add r0, r0, #5 - mov r1, #0xa - bl _u32_div_f - cmp r5, r0 - bne _021F3A9A - add sp, #8 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F3A9A: - cmp r5, r0 - bls _021F3AAE - ldr r2, [sp] - add r0, r4, #0 - add r1, r6, #0 - bl FUN_020619C0 - add sp, #8 - mov r0, #2 - pop {r3, r4, r5, r6, r7, pc} -_021F3AAE: - mov r0, #0 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F3AB4 -MOD05_021F3AB4: ; 0x021F3AB4 - push {r3, r4, r5, lr} - add r4, r0, #0 - ldr r0, [r4, #0xc] - add r5, r1, #0 - bl SavArray_PlayerParty_get - add r1, r5, #0 - bl GetPartyMonByIndex - bl MOD05_021F38CC - add r1, sp, #0 - strh r0, [r1] - ldr r0, [r4, #0xc] - bl SavArray_Flags_get - add r1, sp, #0 - ldrh r1, [r1] - bl FUN_0205F3F8 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F3AE0 -MOD05_021F3AE0: ; 0x021F3AE0 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r6, r1, #0 - mov r1, #0xf - add r7, r2, #0 - add r4, r3, #0 - bl FUN_02039438 - add r1, sp, #0x10 - add r5, r0, #0 - ldrh r1, [r1, #0x10] - add r0, r4, #0 - bl MOD05_021F39A0 - mov r1, #0xfa - lsl r1, r1, #2 - mul r1, r0 - add r0, r1, #0 - mov r1, #0xfe - bl _u32_div_f - add r0, r0, #5 - mov r1, #0xa - bl _u32_div_f - mov r1, #0xa - add r4, r0, #0 - bl _u32_div_f - add r2, r0, #0 - mov r0, #0 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r0, [r5] - add r1, r6, #0 - mov r3, #3 - bl BufferIntegerAsString - add r0, r4, #0 - mov r1, #0xa - bl _u32_div_f - mov r0, #0 - add r2, r1, #0 - str r0, [sp] - mov r3, #1 - str r3, [sp, #4] - ldr r0, [r5] - add r1, r7, #0 - bl BufferIntegerAsString - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F3B4C -MOD05_021F3B4C: ; 0x021F3B4C - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r0, #0 - ldr r0, [r5, #0xc] - add r4, r1, #0 - add r6, r2, #0 - add r7, r3, #0 - bl SavArray_Flags_get - bl FUN_0205F3E8 - add r1, sp, #4 - strh r0, [r1] - ldrh r0, [r1] - add r1, r4, #0 - add r2, r6, #0 - str r0, [sp] - add r0, r5, #0 - add r3, r7, #0 - bl MOD05_021F3AE0 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F3B7C -MOD05_021F3B7C: ; 0x021F3B7C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r5, r0, #0 - str r2, [sp, #4] - ldr r0, [r5, #0xc] - add r4, r3, #0 - add r7, r1, #0 - bl SavArray_PlayerParty_get - add r1, r4, #0 - bl GetPartyMonByIndex - mov r1, #5 - mov r2, #0 - add r6, r0, #0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r6, #0 - bl MOD05_021F38CC - add r1, sp, #8 - strh r0, [r1] - ldrh r0, [r1] - add r1, r7, #0 - add r3, r4, #0 - str r0, [sp] - ldr r2, [sp, #4] - add r0, r5, #0 - bl MOD05_021F3AE0 - add sp, #0xc - pop {r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F3BC0 -MOD05_021F3BC0: ; 0x021F3BC0 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - mov r0, #4 - mov r1, #0x20 - bl AllocFromHeap - add r5, r0, #0 - mov r4, #0 -_021F3BD0: - mov r1, #0xf - lsl r1, r1, #0xc - add r2, r4, #0 - mul r2, r1 - ldr r1, _021F3C2C ; =UNK05_021FD684 - lsl r0, r4, #2 - add r1, r1, r2 - add r6, r5, r0 - str r1, [r5, r0] - ldr r0, [r5, r0] - cmp r0, #0 - bne _021F3BEC - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F3BEC: - cmp r7, #0 - beq _021F3C0A - mov r1, #9 - mov r0, #4 - lsl r1, r1, #0xc - bl AllocFromHeap - str r0, [r6, #0x10] - cmp r0, #0 - bne _021F3C04 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F3C04: - mov r2, #9 - lsl r2, r2, #0xc - b _021F3C10 -_021F3C0A: - mov r0, #0 - str r0, [r6, #0x10] - add r2, r0, #0 -_021F3C10: - mov r1, #0xf - add r0, r4, #0 - lsl r1, r1, #0xc - add r3, r5, #0 - bl MOD05_021F3C74 - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #4 - blo _021F3BD0 - add r0, r5, #0 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F3C2C: .word UNK05_021FD684 - - thumb_func_start MOD05_021F3C30 -MOD05_021F3C30: ; 0x021F3C30 - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - add r6, r0, #0 - add r7, r4, #0 -_021F3C38: - lsl r0, r4, #2 - add r5, r6, r0 - str r7, [r6, r0] - ldr r0, [r5, #0x10] - cmp r0, #0 - beq _021F3C4C - bl FreeToHeap - mov r0, #0 - str r0, [r5, #0x10] -_021F3C4C: - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #4 - blo _021F3C38 - add r0, r6, #0 - bl FreeToHeap - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F3C60 -MOD05_021F3C60: ; 0x021F3C60 - lsl r0, r0, #2 - ldr r0, [r1, r0] - str r0, [r2] - bx lr - - thumb_func_start MOD05_021F3C68 -MOD05_021F3C68: ; 0x021F3C68 - lsl r0, r0, #2 - add r0, r1, r0 - ldr r0, [r0, #0x10] - str r0, [r2] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F3C74 -MOD05_021F3C74: ; 0x021F3C74 - push {r3, r4, r5, r6, r7, lr} - add r5, r3, #0 - lsl r4, r0, #2 - add r6, r1, #0 - add r7, r2, #0 - ldr r0, [r5, r4] - mov r1, #0 - add r2, r6, #0 - bl MI_CpuFill8 - add r0, r5, r4 - ldr r0, [r0, #0x10] - mov r1, #0 - add r2, r7, #0 - bl MI_CpuFill8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F3C98 -MOD05_021F3C98: ; 0x021F3C98 - push {r4, r5, r6, r7} - add r4, r0, #0 - add r3, r2, #0 - mov r5, #0xc - add r2, r1, #0 - ldr r0, [r4, #4] - mul r2, r5 - ldrh r0, [r0, r2] - ldr r6, [r4, #0x10] - add r1, r0, #0 - mul r1, r5 - add r7, r6, r1 - ldmia r7!, {r0, r1} - add r6, r3, #0 - stmia r6!, {r0, r1} - ldr r0, [r7] - str r0, [r6] - ldr r1, [r4, #4] - ldr r0, [r4, #0x10] - add r1, r1, r2 - ldrh r1, [r1, #2] - add r6, r1, #0 - mul r6, r5 - add r7, r0, r6 - add r6, r3, #0 - ldmia r7!, {r0, r1} - add r6, #0xc - stmia r6!, {r0, r1} - ldr r0, [r7] - add r3, #0x18 - str r0, [r6] - ldr r1, [r4, #4] - ldr r0, [r4, #0x10] - add r1, r1, r2 - ldrh r1, [r1, #4] - add r2, r1, #0 - mul r2, r5 - add r2, r0, r2 - ldmia r2!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r2] - str r0, [r3] - pop {r4, r5, r6, r7} - bx lr - - thumb_func_start MOD05_021F3CF0 -MOD05_021F3CF0: ; 0x021F3CF0 - push {r4, r5} - ldr r3, [r0, #0x14] - ldr r5, [r0, #4] - mov r0, #0xc - add r4, r1, #0 - mul r4, r0 - add r1, r5, r4 - ldrh r1, [r1, #6] - mul r0, r1 - add r3, r3, r0 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3] - str r0, [r2] - pop {r4, r5} - bx lr - - thumb_func_start MOD05_021F3D10 -MOD05_021F3D10: ; 0x021F3D10 - mov r3, #0 - add r2, r3, #0 - sub r1, r3, #1 -_021F3D16: - str r2, [r0] - str r1, [r0, #4] - str r1, [r0, #8] - add r3, r3, #1 - add r0, #0xc - cmp r3, #0xa - blt _021F3D16 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F3D28 -MOD05_021F3D28: ; 0x021F3D28 - push {r4, r5, r6, r7} - add r4, r0, #0 - add r0, r2, #0 - mov ip, r3 - cmp r1, #0 - bne _021F3D3A - mov r0, #0 - pop {r4, r5, r6, r7} - bx lr -_021F3D3A: - cmp r1, #1 - bne _021F3D4A - mov r1, #0 - mov r0, ip - strh r1, [r0] - mov r0, #1 - pop {r4, r5, r6, r7} - bx lr -_021F3D4A: - sub r5, r1, #1 - lsr r1, r5, #0x1f - add r1, r5, r1 - mov r3, #0 - asr r6, r1, #1 - mov r7, #0xa -_021F3D56: - add r1, r6, #0 - mul r1, r7 - add r2, r4, r1 - ldrh r1, [r2, #4] - ldrh r2, [r2, #2] - lsl r1, r1, #0x10 - orr r1, r2 - cmp r1, r0 - ble _021F3D84 - sub r1, r5, #1 - cmp r1, r3 - ble _021F3D7A - add r2, r3, r6 - lsr r1, r2, #0x1f - add r1, r2, r1 - add r5, r6, #0 - asr r6, r1, #1 - b _021F3D56 -_021F3D7A: - mov r0, ip - strh r6, [r0] - mov r0, #1 - pop {r4, r5, r6, r7} - bx lr -_021F3D84: - add r1, r3, #1 - cmp r1, r5 - bge _021F3D96 - add r2, r6, r5 - lsr r1, r2, #0x1f - add r1, r2, r1 - add r3, r6, #0 - asr r6, r1, #1 - b _021F3D56 -_021F3D96: - add r1, r6, #1 - mov r0, ip - strh r1, [r0] - mov r0, #1 - pop {r4, r5, r6, r7} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F3DA4 -MOD05_021F3DA4: ; 0x021F3DA4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x110 - str r0, [sp, #0x20] - ldr r0, [sp, #0x128] - add r4, r3, #0 - str r0, [sp, #0x128] - ldr r0, [r4, #0x1c] - add r6, r1, #0 - add r7, r2, #0 - cmp r0, #0 - bne _021F3DC0 - add sp, #0x110 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F3DC0: - mov r5, #0 - add r0, sp, #0x98 - str r6, [sp, #0x68] - str r5, [sp, #0x6c] - str r7, [sp, #0x70] - bl MOD05_021F3D10 - ldr r1, [r4] - ldr r0, [r1, #4] - sub r0, r6, r0 - bpl _021F3DD8 - add r0, r5, #0 -_021F3DD8: - ldr r2, [r1, #8] - sub r7, r7, r2 - bpl _021F3DE0 - mov r7, #0 -_021F3DE0: - ldr r1, [r1, #0x14] - bl FX_Div - ldr r1, [r4] - asr r6, r0, #0xc - ldrh r0, [r1] - cmp r6, r0 - blo _021F3DF2 - sub r6, r0, #1 -_021F3DF2: - ldr r1, [r1, #0x18] - add r0, r7, #0 - bl FX_Div - asr r1, r0, #0xc - ldr r0, [r4] - ldrh r0, [r0, #2] - cmp r1, r0 - blo _021F3E06 - sub r1, r0, #1 -_021F3E06: - mul r0, r1 - add r0, r6, r0 - lsl r2, r0, #2 - ldr r1, [r4, #8] - ldr r0, [r4, #0xc] - add r3, r1, r2 - ldrh r6, [r3, #2] - ldrh r1, [r1, r2] - lsl r3, r6, #2 - add r3, r6, r3 - lsl r3, r3, #1 - add r6, r0, r3 - ldr r0, [sp, #0x70] - add r3, sp, #0x58 - str r0, [sp, #0x28] - ldr r2, [sp, #0x28] - add r0, r6, #0 - bl MOD05_021F3D28 - cmp r0, #0 - bne _021F3E36 - add sp, #0x110 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F3E36: - add r0, sp, #0x58 - ldrh r1, [r0] - lsl r0, r1, #2 - add r1, r1, r0 - lsl r0, r1, #1 - ldrh r0, [r6, r0] - str r0, [sp, #0x44] - add r0, r1, #4 - lsl r0, r0, #1 - add r1, r1, #3 - ldrh r0, [r6, r0] - lsl r1, r1, #1 - ldrh r1, [r6, r1] - lsl r0, r0, #0x10 - orr r1, r0 - mov r0, #0 - str r0, [sp, #0x48] - ldr r0, [sp, #0x44] - cmp r0, #0 - bls _021F3F50 - add r0, sp, #0x98 - str r0, [sp, #0x40] - lsl r0, r1, #1 - str r0, [sp, #0x3c] - ldr r0, [sp, #0x28] - asr r0, r0, #0x1f - str r0, [sp, #0x38] - ldr r0, [sp, #0x68] - str r0, [sp, #0x2c] - asr r0, r0, #0x1f - str r0, [sp, #0x30] - mov r0, sp - str r0, [sp, #0x4c] - sub r0, r0, #4 - str r0, [sp, #0x4c] -_021F3E7C: - ldr r0, [sp, #0x48] - ldr r2, [r4, #0x18] - lsl r1, r0, #1 - ldr r0, [sp, #0x3c] - add r0, r0, r2 - ldrh r7, [r1, r0] - add r0, r4, #0 - add r2, sp, #0x74 - add r1, r7, #0 - bl MOD05_021F3C98 - mov r0, #0 - add r3, sp, #0x80 - str r0, [sp, #0x78] - str r0, [sp, #0x84] - str r0, [sp, #0x90] - ldmia r3!, {r0, r1} - add r2, sp, #8 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r3, sp, #0x8c - str r0, [r2] - ldmia r3!, {r0, r1} - add r2, sp, #0x14 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r3, sp, #0x74 - str r0, [r2] - ldr r2, [sp, #0x4c] - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3] - add r6, sp, #0x68 - str r0, [r2] - ldr r0, [sp, #0x4c] - ldr r3, [r0] - ldmia r6!, {r0, r1, r2} - bl FUN_0201C878 - cmp r0, #1 - bne _021F3F40 - add r0, r4, #0 - add r1, r7, #0 - add r2, sp, #0x5c - bl MOD05_021F3CF0 - ldr r0, [sp, #0x5c] - ldr r2, [sp, #0x2c] - ldr r3, [sp, #0x30] - asr r1, r0, #0x1f - bl _ll_mul - str r0, [sp, #0x50] - ldr r0, [sp, #0x64] - add r6, r1, #0 - ldr r2, [sp, #0x28] - ldr r3, [sp, #0x38] - asr r1, r0, #0x1f - bl _ll_mul - mov ip, r0 - mov r2, #0xc - ldr r0, [r4, #4] - mul r2, r7 - add r0, r0, r2 - mov r2, #2 - ldr r3, [sp, #0x50] - lsl r2, r2, #0xa - add r3, r3, r2 - ldr r2, _021F3FDC ; =0x00000000 - ldr r0, [r0, #8] - adc r6, r2 - lsl r2, r6, #0x14 - lsr r3, r3, #0xc - orr r3, r2 - mov r2, #2 - lsl r2, r2, #0xa - mov r6, ip - add r2, r6, r2 - ldr r6, _021F3FDC ; =0x00000000 - adc r1, r6 - lsl r1, r1, #0x14 - lsr r2, r2, #0xc - orr r2, r1 - add r1, r3, r2 - add r0, r0, r1 - ldr r1, [sp, #0x60] - neg r0, r0 - bl FX_Div - ldr r1, [sp, #0x40] - add r5, r5, #1 - str r0, [r1] - add r0, r1, #0 - add r0, #0xc - str r0, [sp, #0x40] - cmp r5, #0xa - bge _021F3F50 -_021F3F40: - ldr r0, [sp, #0x48] - add r0, r0, #1 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - str r1, [sp, #0x48] - ldr r0, [sp, #0x44] - cmp r1, r0 - blo _021F3E7C -_021F3F50: - cmp r5, #1 - ble _021F3FB8 - mov r0, #0 - str r0, [sp, #0x24] - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x98] - bl FUN_0201C7A8 - add r4, r0, #0 - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x98] - bl FUN_0201C7A0 - sub r6, r4, r0 - mov r4, #1 - cmp r5, #1 - ble _021F3FA4 -_021F3F72: - mov r0, #0xc - add r7, r4, #0 - mul r7, r0 - add r1, sp, #0x98 - ldr r0, [sp, #0x20] - ldr r1, [r1, r7] - bl FUN_0201C7A8 - add r1, sp, #0x98 - str r0, [sp, #0x54] - ldr r0, [sp, #0x20] - ldr r1, [r1, r7] - bl FUN_0201C7A0 - ldr r1, [sp, #0x54] - sub r0, r1, r0 - cmp r6, r0 - ble _021F3F9A - add r6, r0, #0 - str r4, [sp, #0x24] -_021F3F9A: - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, r5 - blt _021F3F72 -_021F3FA4: - ldr r0, [sp, #0x24] - mov r1, #0xc - mul r1, r0 - add r0, sp, #0x98 - ldr r1, [r0, r1] - ldr r0, [sp, #0x128] - add sp, #0x110 - str r1, [r0] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F3FB8: - bne _021F3FC6 - ldr r1, [sp, #0x98] - ldr r0, [sp, #0x128] - add sp, #0x110 - str r1, [r0] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F3FC6: - cmp r5, #0 - beq _021F3FD6 - ldr r1, [sp, #0x98] - ldr r0, [sp, #0x128] - add sp, #0x110 - str r1, [r0] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F3FD6: - mov r0, #0 - add sp, #0x110 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F3FDC: .word 0x00000000 - - thumb_func_start MOD05_021F3FE0 -MOD05_021F3FE0: ; 0x021F3FE0 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - mov r0, #0 - mov r2, #0x1c - add r4, r1, #0 - bl MIi_CpuClear32 - add r0, r5, #0 - mov r1, #8 - add r2, sp, #0 - bl NARC_ReadFile - add r0, r5, #0 - mov r1, #2 - add r2, sp, #0 - bl NARC_ReadFile - add r0, r5, #0 - mov r1, #2 - add r2, r4, #0 - bl NARC_ReadFile - add r0, r5, #0 - mov r1, #2 - add r2, sp, #0 - bl NARC_ReadFile - add r0, r5, #0 - mov r1, #2 - add r2, r4, #4 - bl NARC_ReadFile - add r0, r5, #0 - mov r1, #2 - add r2, sp, #0 - bl NARC_ReadFile - add r2, r4, #0 - add r0, r5, #0 - mov r1, #2 - add r2, #8 - bl NARC_ReadFile - add r0, r5, #0 - mov r1, #2 - add r2, sp, #0 - bl NARC_ReadFile - add r0, r5, #0 - mov r1, #2 - add r2, sp, #0 - bl NARC_ReadFile - add r2, r4, #0 - add r0, r5, #0 - mov r1, #2 - add r2, #0xc - bl NARC_ReadFile - add r0, r5, #0 - mov r1, #2 - add r2, sp, #0 - bl NARC_ReadFile - add r2, r4, #0 - add r0, r5, #0 - mov r1, #2 - add r2, #0x18 - bl NARC_ReadFile - add r0, r5, #0 - mov r1, #2 - add r2, sp, #0 - bl NARC_ReadFile - add r2, r4, #0 - add r0, r5, #0 - mov r1, #4 - add r2, #0x14 - bl NARC_ReadFile - add r4, #0x10 - add r0, r5, #0 - mov r1, #4 - add r2, r4, #0 - bl NARC_ReadFile - add sp, #8 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F4094 -MOD05_021F4094: ; 0x021F4094 - push {r4, r5, r6, lr} - ldr r4, [r2] - mov r3, #0 - str r4, [r1, #0x10] - ldr r5, [r0] - mov r4, #0xc - mul r4, r5 - add r3, r3, r4 - lsr r6, r3, #0x1f - lsl r5, r3, #0x1e - sub r5, r5, r6 - mov r4, #0x1e - ror r5, r4 - add r4, r6, r5 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - beq _021F40B8 - add r3, r3, r4 -_021F40B8: - ldr r4, [r2] - add r4, r4, r3 - str r4, [r1, #0x14] - ldr r5, [r0, #4] - mov r4, #0xc - mul r4, r5 - add r3, r3, r4 - lsr r6, r3, #0x1f - lsl r5, r3, #0x1e - sub r5, r5, r6 - mov r4, #0x1e - ror r5, r4 - add r4, r6, r5 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - beq _021F40DA - add r3, r3, r4 -_021F40DA: - ldr r4, [r2] - add r4, r4, r3 - str r4, [r1, #4] - ldr r5, [r0, #8] - mov r4, #0xc - mul r4, r5 - add r3, r3, r4 - lsr r6, r3, #0x1f - lsl r5, r3, #0x1e - sub r5, r5, r6 - mov r4, #0x1e - ror r5, r4 - add r4, r6, r5 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - beq _021F40FC - add r3, r3, r4 -_021F40FC: - ldr r4, [r2] - add r4, r4, r3 - add r3, #0x1c - str r4, [r1] - lsr r6, r3, #0x1f - lsl r5, r3, #0x1e - sub r5, r5, r6 - mov r4, #0x1e - ror r5, r4 - add r4, r6, r5 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - beq _021F4118 - add r3, r3, r4 -_021F4118: - ldr r4, [r2] - add r4, r4, r3 - str r4, [r1, #8] - ldr r4, [r0, #0xc] - lsl r4, r4, #2 - add r3, r3, r4 - lsr r6, r3, #0x1f - lsl r5, r3, #0x1e - sub r5, r5, r6 - mov r4, #0x1e - ror r5, r4 - add r4, r6, r5 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - beq _021F4138 - add r3, r3, r4 -_021F4138: - ldr r4, [r2] - add r4, r4, r3 - str r4, [r1, #0xc] - ldr r4, [r0, #0x14] - add r3, r3, r4 - lsr r6, r3, #0x1f - lsl r5, r3, #0x1e - sub r5, r5, r6 - mov r4, #0x1e - ror r5, r4 - add r4, r6, r5 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - beq _021F4156 - add r3, r3, r4 -_021F4156: - ldr r2, [r2] - add r2, r2, r3 - str r2, [r1, #0x18] - ldr r0, [r0, #0x10] - add r3, r3, r0 - lsr r2, r3, #0x1f - lsl r1, r3, #0x1e - sub r1, r1, r2 - mov r0, #0x1e - ror r1, r0 - add r0, r2, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - beq _021F4174 - add r3, r3, r0 -_021F4174: - mov r0, #9 - lsl r0, r0, #0xc - cmp r3, r0 - ble _021F4180 - bl GF_AssertFail -_021F4180: - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4184 -MOD05_021F4184: ; 0x021F4184 - ldr r3, _021F4190 ; =NARC_ReadFile - add r2, r1, #0 - mov r1, #0x1c - ldr r2, [r2] - bx r3 - nop -_021F4190: .word NARC_ReadFile - - thumb_func_start MOD05_021F4194 -MOD05_021F4194: ; 0x021F4194 - ldr r2, [r2] - add r3, r1, #0 - mov r1, #0xc - mul r1, r2 - ldr r2, [r3, #0x10] - ldr r3, _021F41A4 ; =NARC_ReadFile - bx r3 - nop -_021F41A4: .word NARC_ReadFile - - thumb_func_start MOD05_021F41A8 -MOD05_021F41A8: ; 0x021F41A8 - ldr r2, [r2, #4] - add r3, r1, #0 - mov r1, #0xc - mul r1, r2 - ldr r2, [r3, #0x14] - ldr r3, _021F41B8 ; =NARC_ReadFile - bx r3 - nop -_021F41B8: .word NARC_ReadFile - - thumb_func_start MOD05_021F41BC -MOD05_021F41BC: ; 0x021F41BC - ldr r2, [r2, #8] - add r3, r1, #0 - mov r1, #0xc - mul r1, r2 - ldr r2, [r3, #4] - ldr r3, _021F41CC ; =NARC_ReadFile - bx r3 - nop -_021F41CC: .word NARC_ReadFile - - thumb_func_start MOD05_021F41D0 -MOD05_021F41D0: ; 0x021F41D0 - add r3, r1, #0 - ldr r1, [r2, #0xc] - ldr r2, [r3, #8] - ldr r3, _021F41DC ; =NARC_ReadFile - lsl r1, r1, #2 - bx r3 - .balign 4, 0 -_021F41DC: .word NARC_ReadFile - - thumb_func_start MOD05_021F41E0 -MOD05_021F41E0: ; 0x021F41E0 - add r3, r1, #0 - ldr r1, [r2, #0x14] - ldr r2, [r3, #0xc] - ldr r3, _021F41EC ; =NARC_ReadFile - bx r3 - nop -_021F41EC: .word NARC_ReadFile - - thumb_func_start MOD05_021F41F0 -MOD05_021F41F0: ; 0x021F41F0 - add r3, r1, #0 - ldr r1, [r2, #0x10] - ldr r2, [r3, #0x18] - ldr r3, _021F41FC ; =NARC_ReadFile - bx r3 - nop -_021F41FC: .word NARC_ReadFile - - thumb_func_start MOD05_021F4200 -MOD05_021F4200: ; 0x021F4200 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r1, #0xa0 - ldr r1, [r1] - add r5, r0, #0 - cmp r1, #1 - bne _021F4216 - add r1, r4, #0 - mov r2, #2 - add r1, #0x6c - strb r2, [r1] -_021F4216: - add r1, r4, #0 - add r1, #0x6c - ldrb r1, [r1] - cmp r1, #0 - beq _021F422A - cmp r1, #1 - beq _021F425E - cmp r1, #2 - beq _021F42EA - b _021F4302 -_021F422A: - add r0, r4, #0 - add r0, #0xb0 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, #0 - beq _021F423A - mov r0, #0 - b _021F4302 -_021F423A: - add r0, r4, #0 - add r0, #0xa8 - add r1, r4, #0 - ldr r0, [r0] - add r1, #0x4c - bl MOD05_021F3FE0 - add r1, r4, #0 - add r1, #0x9c - add r0, r4, #0 - add r2, r4, #0 - ldr r1, [r1] - add r0, #0x4c - add r2, #0x98 - bl MOD05_021F4094 - mov r0, #1 - b _021F4302 -_021F425E: - add r0, r4, #0 - add r1, r4, #0 - add r0, #0xa8 - add r1, #0x9c - ldr r0, [r0] - ldr r1, [r1] - bl MOD05_021F4184 - add r0, r4, #0 - add r1, r4, #0 - add r0, #0xa8 - add r1, #0x9c - add r2, r4, #0 - ldr r0, [r0] - ldr r1, [r1] - add r2, #0x4c - bl MOD05_021F4194 - add r0, r4, #0 - add r1, r4, #0 - add r0, #0xa8 - add r1, #0x9c - add r2, r4, #0 - ldr r0, [r0] - ldr r1, [r1] - add r2, #0x4c - bl MOD05_021F41A8 - add r0, r4, #0 - add r1, r4, #0 - add r0, #0xa8 - add r1, #0x9c - add r2, r4, #0 - ldr r0, [r0] - ldr r1, [r1] - add r2, #0x4c - bl MOD05_021F41BC - add r0, r4, #0 - add r1, r4, #0 - add r0, #0xa8 - add r1, #0x9c - add r2, r4, #0 - ldr r0, [r0] - ldr r1, [r1] - add r2, #0x4c - bl MOD05_021F41D0 - add r0, r4, #0 - add r1, r4, #0 - add r0, #0xa8 - add r1, #0x9c - add r2, r4, #0 - ldr r0, [r0] - ldr r1, [r1] - add r2, #0x4c - bl MOD05_021F41E0 - add r0, r4, #0 - add r1, r4, #0 - add r0, #0xa8 - add r1, #0x9c - add r2, r4, #0 - ldr r0, [r0] - ldr r1, [r1] - add r2, #0x4c - bl MOD05_021F41F0 - mov r0, #1 - b _021F4302 -_021F42EA: - add r0, r4, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r1, #0 - str r1, [r0] - add r0, r4, #0 - bl FreeToHeap - add r0, r5, #0 - bl FUN_0200CAB4 - pop {r3, r4, r5, pc} -_021F4302: - cmp r0, #1 - bne _021F4326 - add r0, r4, #0 - add r0, #0x6c - ldrb r0, [r0] - add r1, r0, #1 - add r0, r4, #0 - add r0, #0x6c - strb r1, [r0] - add r0, r4, #0 - add r0, #0x6c - ldrb r0, [r0] - cmp r0, #2 - bne _021F4326 - add r4, #0x9c - ldr r0, [r4] - mov r1, #1 - str r1, [r0, #0x1c] -_021F4326: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F4328 -MOD05_021F4328: ; 0x021F4328 - push {r3, lr} - mov r0, #4 - mov r1, #0x20 - bl AllocFromHeap - mov r1, #0 - str r1, [r0, #0x10] - str r1, [r0, #0x14] - str r1, [r0, #4] - str r1, [r0] - str r1, [r0, #8] - str r1, [r0, #0xc] - str r1, [r0, #0x18] - pop {r3, pc} - - thumb_func_start MOD05_021F4344 -MOD05_021F4344: ; 0x021F4344 - push {r0, r1, r2, r3} - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r0, #4 - mov r1, #0x1c - add r4, r2, #0 - bl AllocFromHeapAtEnd - add r6, r0, #0 - add r0, r5, #0 - add r1, r6, #0 - bl MOD05_021F3FE0 - add r0, r6, #0 - add r1, r4, #0 - add r2, sp, #0x1c - bl MOD05_021F4094 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F4184 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021F4194 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021F41A8 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021F41BC - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021F41D0 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021F41E0 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021F41F0 - add r0, r6, #0 - bl FreeToHeap - mov r0, #1 - str r0, [r4, #0x1c] - pop {r4, r5, r6} - pop {r3} - add sp, #0x10 - bx r3 - .balign 4, 0 - - thumb_func_start MOD05_021F43C0 -MOD05_021F43C0: ; 0x021F43C0 - push {r3, lr} - cmp r0, #0 - beq _021F43CA - bl FreeToHeap -_021F43CA: - pop {r3, pc} - - thumb_func_start MOD05_021F43CC -MOD05_021F43CC: ; 0x021F43CC - cmp r0, #0 - beq _021F43E2 - mov r1, #0 - str r1, [r0, #0x1c] - str r1, [r0, #0x10] - str r1, [r0, #0x14] - str r1, [r0, #4] - str r1, [r0] - str r1, [r0, #8] - str r1, [r0, #0xc] - str r1, [r0, #0x18] -_021F43E2: - bx lr - - thumb_func_start MOD05_021F43E4 -MOD05_021F43E4: ; 0x021F43E4 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r4, r1, #0 - mov r0, #4 - mov r1, #0xb4 - add r6, r2, #0 - add r7, r3, #0 - bl AllocFromHeapAtEnd - add r1, r0, #0 - add r2, r1, #0 - mov r0, #0 - add r2, #0x6c - strb r0, [r2] - add r2, r1, #0 - add r2, #0xa8 - str r5, [r2] - add r2, r1, #0 - add r2, #0xac - str r4, [r2] - add r2, r1, #0 - add r2, #0x9c - str r6, [r2] - add r2, r1, #0 - add r2, #0xa4 - str r7, [r2] - add r2, r1, #0 - add r2, #0xa0 - str r0, [r2] - str r0, [r1, #0x68] - str r0, [r1, #0x48] - ldr r0, [sp, #0x18] - ldr r2, [r0] - add r0, r1, #0 - add r0, #0x98 - str r2, [r0] - add r0, r1, #0 - ldr r2, [sp, #0x1c] - add r0, #0xb0 - str r2, [r0] - ldr r0, _021F4440 ; =MOD05_021F4200 - mov r2, #1 - bl FUN_0200CA44 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F4440: .word MOD05_021F4200 - - thumb_func_start MOD05_021F4444 -MOD05_021F4444: ; 0x021F4444 - push {r3, lr} - bl FUN_0201B6C8 - mov r1, #1 - add r0, #0xa0 - str r1, [r0] - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4454 -MOD05_021F4454: ; 0x021F4454 - mov r1, #0 - str r1, [r0, #0x1c] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F445C -MOD05_021F445C: ; 0x021F445C - push {r4, r5} - ldr r3, [r2, #0x14] - cmp r3, #0 - bne _021F446A - mov r0, #0 - pop {r4, r5} - bx lr -_021F446A: - ldr r5, [r2] - ldr r3, [r2, #8] - ldr r4, [r2, #4] - ldr r2, [r2, #0xc] - add r3, r5, r3 - add r2, r4, r2 - sub r3, r3, #1 - sub r2, r2, #1 - cmp r5, r0 - bgt _021F4490 - cmp r0, r3 - bgt _021F4490 - cmp r4, r1 - bgt _021F4490 - cmp r1, r2 - bgt _021F4490 - mov r0, #1 - pop {r4, r5} - bx lr -_021F4490: - mov r0, #0 - pop {r4, r5} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F4498 -MOD05_021F4498: ; 0x021F4498 - push {r4, r5, r6, lr} - add r6, r1, #0 - add r5, r0, #0 - add r0, r6, #0 - mov r1, #8 - bl AllocFromHeap - mov r1, #0x18 - add r4, r0, #0 - add r0, r6, #0 - mul r1, r5 - bl AllocFromHeap - str r0, [r4, #4] - mov r6, #0 - str r5, [r4] - cmp r5, #0 - bls _021F44D4 - add r0, r6, #0 - mov r1, #0x18 -_021F44C0: - add r2, r6, #0 - ldr r3, [r4, #4] - mul r2, r1 - add r2, r3, r2 - str r0, [r2, #0x14] - add r2, r6, #1 - lsl r2, r2, #0x18 - lsr r6, r2, #0x18 - cmp r6, r5 - blo _021F44C0 -_021F44D4: - add r0, r4, #0 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F44D8 -MOD05_021F44D8: ; 0x021F44D8 - push {r4, r5} - ldr r5, [sp, #0x10] - mov r4, #0x18 - mul r4, r0 - ldr r0, [r5, #4] - str r1, [r0, r4] - ldr r0, [r5, #4] - ldr r1, [sp, #8] - add r0, r0, r4 - str r2, [r0, #4] - ldr r0, [r5, #4] - add r0, r0, r4 - str r3, [r0, #8] - ldr r0, [r5, #4] - add r0, r0, r4 - str r1, [r0, #0xc] - ldr r0, [r5, #4] - ldr r1, [sp, #0xc] - add r0, r0, r4 - str r1, [r0, #0x10] - ldr r0, [r5, #4] - mov r1, #1 - add r0, r0, r4 - str r1, [r0, #0x14] - pop {r4, r5} - bx lr - - thumb_func_start MOD05_021F450C -MOD05_021F450C: ; 0x021F450C - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #4] - bl FreeToHeap - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4520 -MOD05_021F4520: ; 0x021F4520 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - add r7, r1, #0 - add r5, r2, #0 - str r3, [sp] - cmp r3, #0 - bne _021F4532 - bl GF_AssertFail -_021F4532: - ldr r0, [r5] - mov r4, #0 - cmp r0, #0 - ble _021F4562 -_021F453A: - mov r3, #0x18 - ldr r2, [r5, #4] - mul r3, r4 - add r0, r6, #0 - add r1, r7, #0 - add r2, r2, r3 - bl MOD05_021F445C - cmp r0, #0 - beq _021F4556 - ldr r0, [sp] - strb r4, [r0] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F4556: - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, [r5] - cmp r4, r0 - blt _021F453A -_021F4562: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4568 -MOD05_021F4568: ; 0x021F4568 - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4] - cmp r5, r0 - blt _021F4578 - bl GF_AssertFail -_021F4578: - mov r0, #0x18 - add r6, r5, #0 - mul r6, r0 - ldr r0, [r4, #4] - add r0, r0, r6 - ldr r0, [r0, #0x14] - cmp r0, #0 - bne _021F458C - bl GF_AssertFail -_021F458C: - ldr r0, [r4, #4] - add r0, r0, r6 - ldr r0, [r0, #0x10] - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F4594 -MOD05_021F4594: ; 0x021F4594 - push {r4, r5, r6, lr} - add r6, r2, #0 - add r5, r0, #0 - ldr r0, [r6] - add r4, r1, #0 - cmp r5, r0 - blt _021F45A6 - bl GF_AssertFail -_021F45A6: - mov r0, #0x18 - ldr r1, [r6, #4] - mul r0, r5 - add r0, r1, r0 - str r4, [r0, #0x10] - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F45B4 -MOD05_021F45B4: ; 0x021F45B4 - push {r4, lr} - mov r1, #0x1c - bl AllocFromHeap - add r4, r0, #0 - bl MOD05_021F4650 - add r0, r4, #0 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F45C8 -MOD05_021F45C8: ; 0x021F45C8 - push {r4, lr} - add r4, r0, #0 - beq _021F45E4 - ldr r1, [r4] - cmp r1, #1 - bne _021F45D8 - bl MOD05_021F4608 -_021F45D8: - add r0, r4, #0 - bl MOD05_021F4650 - add r0, r4, #0 - bl FreeToHeap -_021F45E4: - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F45E8 -MOD05_021F45E8: ; 0x021F45E8 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021F4604 ; =MOD05_021F4688 - add r1, r4, #0 - bl FUN_02015F34 - cmp r0, #1 - beq _021F45FC - bl GF_AssertFail -_021F45FC: - mov r0, #1 - str r0, [r4] - pop {r4, pc} - nop -_021F4604: .word MOD05_021F4688 - - thumb_func_start MOD05_021F4608 -MOD05_021F4608: ; 0x021F4608 - push {r4, lr} - add r4, r0, #0 - mov r0, #0 - add r1, r0, #0 - bl FUN_02015F34 - cmp r0, #1 - beq _021F461C - bl GF_AssertFail -_021F461C: - mov r0, #0 - str r0, [r4] - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4624 -MOD05_021F4624: ; 0x021F4624 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r6, r2, #0 - bl MOD05_021F46A8 - add r4, r0, #0 - bne _021F4636 - bl GF_AssertFail -_021F4636: - cmp r4, #0 - beq _021F4642 - str r6, [r4, #4] - str r5, [r4, #8] - mov r0, #1 - str r0, [r4] -_021F4642: - add r0, r4, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4648 -MOD05_021F4648: ; 0x021F4648 - ldr r3, _021F464C ; =MOD05_021F4678 - bx r3 - .balign 4, 0 -_021F464C: .word MOD05_021F4678 - - thumb_func_start MOD05_021F4650 -MOD05_021F4650: ; 0x021F4650 - push {r3, r4, r5, lr} - add r3, r0, #0 - mov r2, #0x1c - mov r1, #0 -_021F4658: - strb r1, [r3] - add r3, r3, #1 - sub r2, r2, #1 - bne _021F4658 - mov r4, #0 - str r4, [r0] - add r5, r0, #4 -_021F4666: - add r0, r5, #0 - bl MOD05_021F4678 - add r4, r4, #1 - add r5, #0xc - cmp r4, #2 - blt _021F4666 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4678 -MOD05_021F4678: ; 0x021F4678 - mov r2, #0 - ldr r1, _021F4684 ; =MOD05_021F46A4 - str r2, [r0] - str r1, [r0, #8] - str r2, [r0, #4] - bx lr - .balign 4, 0 -_021F4684: .word MOD05_021F46A4 - - thumb_func_start MOD05_021F4688 -MOD05_021F4688: ; 0x021F4688 - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r6, #0 - add r4, r5, #4 -_021F4690: - ldr r1, [r5, #8] - ldr r2, [r5, #0xc] - add r0, r4, #0 - blx r2 - add r6, r6, #1 - add r5, #0xc - add r4, #0xc - cmp r6, #2 - blt _021F4690 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F46A4 -MOD05_021F46A4: ; 0x021F46A4 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F46A8 -MOD05_021F46A8: ; 0x021F46A8 - mov r2, #0 - add r3, r0, #0 -_021F46AC: - ldr r1, [r3, #4] - cmp r1, #0 - bne _021F46BC - add r1, r0, #4 - mov r0, #0xc - mul r0, r2 - add r0, r1, r0 - bx lr -_021F46BC: - add r2, r2, #1 - add r3, #0xc - cmp r2, #2 - blt _021F46AC - mov r0, #0 - bx lr - - thumb_func_start MOD05_021F46C8 -MOD05_021F46C8: ; 0x021F46C8 - push {r4, r5, r6, lr} - add r5, r1, #0 - mov r1, #0xca - lsl r1, r1, #2 - add r6, r0, #0 - bl AllocFromHeap - mov r2, #0xca - mov r1, #0 - lsl r2, r2, #2 - add r4, r0, #0 - bl memset - mov r2, #0x63 - mov r0, #0 - add r1, r4, #0 - lsl r2, r2, #2 - str r0, [r4] - add r0, r6, #0 - add r1, #0xc - add r2, r4, r2 - bl FUN_02012944 - mov r1, #0xc3 - lsl r1, r1, #2 - str r0, [r4, r1] - add r0, r1, #4 - str r5, [r4, r0] - add r0, r4, #0 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F4704 -MOD05_021F4704: ; 0x021F4704 - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4] - cmp r1, #1 - bne _021F4712 - bl MOD05_021F491C -_021F4712: - mov r0, #0xc3 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_02012974 - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - - thumb_func_start MOD05_021F4724 -MOD05_021F4724: ; 0x021F4724 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F4732 - bl GF_AssertFail -_021F4732: - mov r0, #0x31 - lsl r0, r0, #4 - ldr r0, [r4, r0] - ldr r1, _021F47A4 ; =MOD05_021F48CC - add r2, r4, #0 - bl MOD05_021F4624 - mov r2, #0xc5 - lsl r2, r2, #2 - str r0, [r4, r2] - ldr r0, _021F47A8 ; =MOD05_021F47B4 - add r1, r4, #0 - add r2, #0xec - bl FUN_0200CA44 - mov r2, #0xc7 - lsl r2, r2, #2 - str r0, [r4, r2] - ldr r0, _021F47AC ; =MOD05_021F48BC - add r1, r4, #0 - add r2, #0xe4 - bl FUN_0200CA60 - mov r2, #0x32 - lsl r2, r2, #4 - str r0, [r4, r2] - ldr r0, _021F47B0 ; =MOD05_021F48F0 - add r1, r4, #0 - add r2, #0xe0 - bl FUN_0200CA60 - mov r1, #0xc9 - lsl r1, r1, #2 - str r0, [r4, r1] - add r0, r4, #0 - mov r2, #6 - add r0, #0xc - mov r1, #0 - lsl r2, r2, #6 - bl memset - mov r2, #0x63 - lsl r2, r2, #2 - add r0, r4, r2 - mov r1, #0 - sub r2, #0xc - bl memset - mov r0, #1 - str r0, [r4] - mov r0, #0 - str r0, [r4, #8] - mov r0, #0x61 - lsl r0, r0, #4 - bl PlaySE - pop {r4, pc} - .balign 4, 0 -_021F47A4: .word MOD05_021F48CC -_021F47A8: .word MOD05_021F47B4 -_021F47AC: .word MOD05_021F48BC -_021F47B0: .word MOD05_021F48F0 - - thumb_func_start MOD05_021F47B4 -MOD05_021F47B4: ; 0x021F47B4 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #8] - cmp r0, #3 - bhi _021F483C - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021F47CA: ; jump table - .short _021F47D2 - _021F47CA - 2 ; case 0 - .short _021F47DE - _021F47CA - 2 ; case 1 - .short _021F480A - _021F47CA - 2 ; case 2 - .short _021F4830 - _021F47CA - 2 ; case 3 -_021F47D2: - mov r0, #3 - str r0, [r4, #4] - ldr r0, [r4, #8] - add r0, r0, #1 - str r0, [r4, #8] - pop {r4, pc} -_021F47DE: - ldr r0, [r4, #4] - sub r0, r0, #1 - str r0, [r4, #4] - mov r0, #0xc3 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_02012988 - ldr r1, [r4, #4] - mov r2, #3 - sub r1, r2, r1 - bl MOD05_021F4878 - ldr r0, [r4, #4] - cmp r0, #0 - bgt _021F483C - mov r0, #3 - str r0, [r4, #4] - ldr r0, [r4, #8] - add r0, r0, #1 - str r0, [r4, #8] - pop {r4, pc} -_021F480A: - ldr r0, [r4, #4] - sub r0, r0, #1 - str r0, [r4, #4] - mov r0, #0xc3 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_02012988 - ldr r1, [r4, #4] - mov r2, #3 - bl MOD05_021F4878 - ldr r0, [r4, #4] - cmp r0, #0 - bgt _021F483C - ldr r0, [r4, #8] - add r0, r0, #1 - str r0, [r4, #8] - pop {r4, pc} -_021F4830: - add r0, r4, #0 - bl MOD05_021F491C - mov r0, #0 - bl G3X_SetHOffset -_021F483C: - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4840 -MOD05_021F4840: ; 0x021F4840 - push {r4, lr} - ldr r1, _021F4870 ; =0x04000006 - ldrh r4, [r1] - mov r1, #0xc3 - lsl r1, r1, #2 - ldr r0, [r0, r1] - bl FUN_0201299C - cmp r4, #0xc0 - bge _021F486E - add r3, r4, #1 - cmp r3, #0xc0 - blt _021F485C - sub r3, #0xc0 -_021F485C: - ldr r1, _021F4874 ; =0x04000004 - ldrh r2, [r1] - mov r1, #2 - tst r1, r2 - beq _021F486E - lsl r1, r3, #1 - ldrh r0, [r0, r1] - bl G3X_SetHOffset -_021F486E: - pop {r4, pc} - .balign 4, 0 -_021F4870: .word 0x04000006 -_021F4874: .word 0x04000004 - - thumb_func_start MOD05_021F4878 -MOD05_021F4878: ; 0x021F4878 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - lsl r0, r1, #1 - add r0, r1, r0 - add r1, r2, #0 - mov r4, #1 - bl _s32_div_f - neg r1, r0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - lsl r0, r0, #0x10 - mov r6, #0 - str r1, [sp] - lsr r7, r0, #0x10 -_021F4896: - add r0, r6, #0 - mov r1, #0xa - bl _s32_div_f - cmp r1, #0 - bne _021F48A6 - mov r0, #1 - eor r4, r0 -_021F48A6: - cmp r4, #0 - beq _021F48AE - strh r7, [r5] - b _021F48B2 -_021F48AE: - ldr r0, [sp] - strh r0, [r5] -_021F48B2: - add r6, r6, #1 - add r5, r5, #2 - cmp r6, #0xc0 - blt _021F4896 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F48BC -MOD05_021F48BC: ; 0x021F48BC - mov r2, #0xc6 - ldr r3, _021F48C8 ; =G3X_SetHOffset - mov r0, #0 - lsl r2, r2, #2 - str r0, [r1, r2] - bx r3 - .balign 4, 0 -_021F48C8: .word G3X_SetHOffset - - thumb_func_start MOD05_021F48CC -MOD05_021F48CC: ; 0x021F48CC - ldr r3, _021F48D4 ; =MOD05_021F48D8 - add r0, r1, #0 - bx r3 - nop -_021F48D4: .word MOD05_021F48D8 - - thumb_func_start MOD05_021F48D8 -MOD05_021F48D8: ; 0x021F48D8 - push {r3, lr} - ldr r1, [r0] - cmp r1, #1 - bne _021F48EE - mov r1, #0xc6 - lsl r1, r1, #2 - ldr r1, [r0, r1] - cmp r1, #1 - bne _021F48EE - bl MOD05_021F4840 -_021F48EE: - pop {r3, pc} - - thumb_func_start MOD05_021F48F0 -MOD05_021F48F0: ; 0x021F48F0 - ldr r3, _021F48F8 ; =MOD05_021F48FC - add r0, r1, #0 - bx r3 - nop -_021F48F8: .word MOD05_021F48FC - - thumb_func_start MOD05_021F48FC -MOD05_021F48FC: ; 0x021F48FC - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #1 - bne _021F4918 - mov r0, #0xc3 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_020129B4 - mov r0, #0xc6 - mov r1, #1 - lsl r0, r0, #2 - str r1, [r4, r0] -_021F4918: - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F491C -MOD05_021F491C: ; 0x021F491C - push {r4, lr} - add r4, r0, #0 - mov r0, #0xc5 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl MOD05_021F4648 - mov r0, #0xc5 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r4, r0] - add r0, #8 - ldr r0, [r4, r0] - bl FUN_0200CAB4 - mov r0, #0xc7 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r4, r0] - add r0, r0, #4 - ldr r0, [r4, r0] - bl FUN_0200CAB4 - mov r0, #0x32 - mov r1, #0 - lsl r0, r0, #4 - str r1, [r4, r0] - add r0, r0, #4 - ldr r0, [r4, r0] - bl FUN_0200CAB4 - mov r0, #0xc9 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r4, r0] - str r1, [r4] - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4968 -MOD05_021F4968: ; 0x021F4968 - ldr r2, [r1, #0x14] - ldr r3, _021F4974 ; =FUN_02016B44 - add r1, r1, r2 - sub r1, r1, r0 - bx r3 - nop -_021F4974: .word ReallocFromHeap - - thumb_func_start MOD05_021F4978 -MOD05_021F4978: ; 0x021F4978 - push {r4, r5, r6, lr} - add r6, r1, #0 - mov r1, #0x23 - add r5, r0, #0 - mov r0, #4 - lsl r1, r1, #6 - bl AllocFromHeap - add r4, r0, #0 - mov r0, #4 - mov r1, #0x10 - bl AllocFromHeapAtEnd - ldr r1, _021F49A8 ; =0x000008B8 - mov r2, #0 - str r0, [r4, r1] - ldr r0, [r4, r1] - str r5, [r0] - ldr r0, [r4, r1] - str r6, [r0, #4] - ldr r0, [r4, r1] - str r2, [r0, #0xc] - add r0, r4, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021F49A8: .word 0x000008B8 - - thumb_func_start MOD05_021F49AC -MOD05_021F49AC: ; 0x021F49AC - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x110 - add r5, r0, #0 - ldr r0, _021F4B9C ; =0x000008B8 - mov r1, #0x2a - ldr r7, [r5, r0] - sub r0, #8 - ldr r2, [r7] - add r0, r5, r0 - bl ReadWholeNarcMemberByIdPair - mov r1, #0x8b - lsl r1, r1, #4 - ldrh r1, [r5, r1] - mov r0, #0x2b - mov r2, #4 - bl AllocAndReadWholeNarcMemberByIdPair - ldr r1, _021F4BA0 ; =0x000008BC - str r0, [r5, r1] - ldr r0, [r5, r1] - ldrh r1, [r0] - ldr r0, _021F4BA4 ; =0x00000226 - strh r1, [r7, #8] - cmp r1, r0 - blo _021F49E4 - bl GF_AssertFail -_021F49E4: - ldr r1, _021F4BA8 ; =0x000008A4 - mov r0, #0 - str r0, [r5, r1] - add r1, #0xe - ldrh r1, [r5, r1] - mov r0, #0x2c - mov r2, #4 - bl AllocAndReadWholeNarcMemberByIdPair - ldr r1, _021F4BAC ; =0x0000089C - mov r2, #4 - str r0, [r5, r1] - add r1, #0x14 - ldrh r1, [r5, r1] - mov r0, #0x47 - bl AllocAndReadWholeNarcMemberByIdPair - mov r1, #0x8a - lsl r1, r1, #4 - str r0, [r5, r1] - sub r0, r1, #4 - ldr r0, [r5, r0] - bl NNS_G3dGetTex - ldr r1, _021F4BA8 ; =0x000008A4 - str r0, [r5, r1] - ldrh r0, [r7, #8] - cmp r0, #0 - beq _021F4A2C - sub r0, r1, #4 - ldr r0, [r5, r0] - bl NNS_G3dGetTex - ldr r1, _021F4BB0 ; =0x000008A8 - str r0, [r5, r1] - b _021F4A32 -_021F4A2C: - mov r2, #0 - add r0, r1, #4 - str r2, [r5, r0] -_021F4A32: - ldr r0, _021F4BA8 ; =0x000008A4 - ldr r0, [r5, r0] - bl FUN_0201B3C4 - cmp r0, #0 - bne _021F4A42 - bl GF_AssertFail -_021F4A42: - ldr r1, _021F4BAC ; =0x0000089C - ldr r0, [r5, r1] - add r1, #8 - ldr r1, [r5, r1] - bl MOD05_021F4968 - ldr r0, _021F4BB0 ; =0x000008A8 - ldr r0, [r5, r0] - cmp r0, #0 - beq _021F4A70 - bl FUN_0201B3C4 - cmp r0, #0 - bne _021F4A62 - bl GF_AssertFail -_021F4A62: - mov r1, #0x8a - lsl r1, r1, #4 - ldr r0, [r5, r1] - add r1, #8 - ldr r1, [r5, r1] - bl MOD05_021F4968 -_021F4A70: - mov r2, #0 - ldr r0, _021F4BA4 ; =0x00000226 - add r3, r5, #0 - add r1, r2, #0 -_021F4A78: - add r2, r2, #1 - str r1, [r3, #4] - add r3, r3, #4 - cmp r2, r0 - blt _021F4A78 - ldr r0, _021F4BB4 ; =0x000008AC - str r1, [r5, r0] - mov r0, #0x28 - mov r1, #4 - bl NARC_ctor - str r0, [sp, #0xc] - ldr r0, [r7, #4] - bl MOD05_021DA220 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - ldrh r0, [r7, #8] - cmp r0, #0 - ble _021F4B10 - ldr r0, [sp, #8] - str r0, [sp] -_021F4AA6: - ldr r0, _021F4BA0 ; =0x000008BC - ldr r1, [r5, r0] - ldr r0, [sp] - add r0, r1, r0 - ldrh r6, [r0, #2] - lsl r0, r6, #2 - add r4, r5, r0 - ldr r0, [r4, #4] - cmp r0, #0 - beq _021F4ABE - bl GF_AssertFail -_021F4ABE: - ldr r0, [sp, #0xc] - add r1, r6, #0 - mov r2, #4 - bl NARC_AllocAndReadWholeMember - str r0, [r4, #4] - ldr r0, [sp, #4] - cmp r6, r0 - bge _021F4AEC - ldr r0, [r4, #4] - bl NNS_G3dGetMdlSet - add r1, r0, #0 - ldrh r2, [r1, #0xe] - ldr r3, [r7, #4] - add r0, r6, #0 - add r2, r1, r2 - ldr r2, [r2, #0xc] - add r1, r1, r2 - ldr r2, _021F4BB0 ; =0x000008A8 - ldr r2, [r5, r2] - bl MOD05_021D9CEC -_021F4AEC: - ldr r1, _021F4BB0 ; =0x000008A8 - ldr r0, [r4, #4] - ldr r1, [r5, r1] - bl FUN_0201B3A8 - cmp r0, #0 - bne _021F4AFE - bl GF_AssertFail -_021F4AFE: - ldr r0, [sp] - ldrh r1, [r7, #8] - add r0, r0, #2 - str r0, [sp] - ldr r0, [sp, #8] - add r0, r0, #1 - str r0, [sp, #8] - cmp r0, r1 - blt _021F4AA6 -_021F4B10: - ldr r0, [r5, #4] - cmp r0, #0 - bne _021F4B46 - ldr r0, [sp, #0xc] - mov r1, #0 - mov r2, #4 - bl NARC_AllocAndReadWholeMember - str r0, [r5, #4] - bl NNS_G3dGetTex - add r4, r0, #0 - beq _021F4B46 - bl FUN_0201B3C4 - cmp r0, #0 - bne _021F4B36 - bl GF_AssertFail -_021F4B36: - ldr r0, [r5, #4] - add r1, r4, #0 - bl FUN_0201B3A8 - cmp r0, #0 - bne _021F4B46 - bl GF_AssertFail -_021F4B46: - ldr r0, [sp, #0xc] - bl NARC_dtor - ldr r2, _021F4BB8 ; =0x04000060 - ldr r0, _021F4BBC ; =0xFFFFCFFF - ldrh r1, [r2] - and r1, r0 - mov r0, #0x20 - orr r0, r1 - strh r0, [r2] - ldr r0, _021F4BC0 ; =0x000008B6 - ldrh r0, [r5, r0] - cmp r0, #0 - bne _021F4B6A - ldr r0, _021F4BC4 ; =UNK05_021FC624 - bl G3X_SetEdgeColorTable - b _021F4B70 -_021F4B6A: - ldr r0, _021F4BC8 ; =UNK05_021FC634 - bl G3X_SetEdgeColorTable -_021F4B70: - bl MOD05_021DB900 - ldr r1, _021F4BB4 ; =0x000008AC - str r0, [r5, r1] - ldr r1, _021F4BCC ; =UNK05_021FD648 - add r0, sp, #0x10 - bl sprintf - ldr r1, _021F4BB4 ; =0x000008AC - add r0, sp, #0x10 - ldr r1, [r5, r1] - bl MOD05_021DB918 - ldr r0, _021F4B9C ; =0x000008B8 - ldr r0, [r5, r0] - bl FreeToHeap - ldr r0, _021F4B9C ; =0x000008B8 - mov r1, #0 - str r1, [r5, r0] - add sp, #0x110 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021F4B9C: .word 0x000008B8 -_021F4BA0: .word 0x000008BC -_021F4BA4: .word 0x00000226 -_021F4BA8: .word 0x000008A4 -_021F4BAC: .word 0x0000089C -_021F4BB0: .word 0x000008A8 -_021F4BB4: .word 0x000008AC -_021F4BB8: .word 0x04000060 -_021F4BBC: .word 0xFFFFCFFF -_021F4BC0: .word 0x000008B6 -_021F4BC4: .word UNK05_021FC624 -_021F4BC8: .word UNK05_021FC634 -_021F4BCC: .word UNK05_021FD648 - - thumb_func_start MOD05_021F4BD0 -MOD05_021F4BD0: ; 0x021F4BD0 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bne _021F4BDC - bl GF_AssertFail -_021F4BDC: - add r2, r4, #4 - lsl r1, r5, #2 - ldr r0, [r2, r1] - cmp r0, #0 - bne _021F4BF4 - ldr r0, [r4, #4] - cmp r0, #0 - bne _021F4BF0 - bl GF_AssertFail -_021F4BF0: - add r0, r4, #4 - pop {r3, r4, r5, pc} -_021F4BF4: - add r0, r2, r1 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F4BF8 -MOD05_021F4BF8: ; 0x021F4BF8 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - ldr r1, [r5] - ldr r0, _021F4C64 ; =0x000008AC - ldr r0, [r1, r0] - cmp r0, #0 - beq _021F4C0A - bl MOD05_021DB9BC -_021F4C0A: - mov r6, #0 - ldr r7, _021F4C68 ; =0x00000226 - add r4, r6, #0 -_021F4C10: - ldr r0, [r5] - add r0, r0, r4 - ldr r0, [r0, #4] - cmp r0, #0 - beq _021F4C1E - bl FreeToHeap -_021F4C1E: - add r6, r6, #1 - add r4, r4, #4 - cmp r6, r7 - blt _021F4C10 - ldr r1, [r5] - ldr r0, _021F4C6C ; =0x000008BC - ldr r0, [r1, r0] - bl FreeToHeap - ldr r1, [r5] - ldr r0, _021F4C70 ; =0x0000089C - ldr r0, [r1, r0] - bl FreeToHeap - ldr r1, [r5] - ldr r0, _021F4C70 ; =0x0000089C - mov r2, #0 - str r2, [r1, r0] - ldr r1, [r5] - add r0, r0, #4 - ldr r0, [r1, r0] - bl FreeToHeap - mov r0, #0x8a - ldr r1, [r5] - mov r2, #0 - lsl r0, r0, #4 - str r2, [r1, r0] - ldr r0, [r5] - bl FreeToHeap - mov r0, #0 - str r0, [r5] - pop {r3, r4, r5, r6, r7, pc} - nop -_021F4C64: .word 0x000008AC -_021F4C68: .word 0x00000226 -_021F4C6C: .word 0x000008BC -_021F4C70: .word 0x0000089C - - thumb_func_start MOD05_021F4C74 -MOD05_021F4C74: ; 0x021F4C74 - push {r4, lr} - add r4, r0, #0 - bne _021F4C7E - bl GF_AssertFail -_021F4C7E: - ldr r0, _021F4C84 ; =0x000008A4 - ldr r0, [r4, r0] - pop {r4, pc} - .balign 4, 0 -_021F4C84: .word 0x000008A4 - - thumb_func_start MOD05_021F4C88 -MOD05_021F4C88: ; 0x021F4C88 - push {r4, lr} - add r4, r0, #0 - bne _021F4C92 - bl GF_AssertFail -_021F4C92: - ldr r0, _021F4C98 ; =0x000008A8 - ldr r0, [r4, r0] - pop {r4, pc} - .balign 4, 0 -_021F4C98: .word 0x000008A8 - - thumb_func_start MOD05_021F4C9C -MOD05_021F4C9C: ; 0x021F4C9C - ldr r1, _021F4CA4 ; =0x000008AC - ldr r0, [r0, r1] - bx lr - nop -_021F4CA4: .word 0x000008AC - - thumb_func_start MOD05_021F4CA8 -MOD05_021F4CA8: ; 0x021F4CA8 - ldr r1, _021F4CB8 ; =0x000008B6 - ldrh r0, [r0, r1] - cmp r0, #0 - beq _021F4CB4 - mov r0, #1 - bx lr -_021F4CB4: - mov r0, #0 - bx lr - .balign 4, 0 -_021F4CB8: .word 0x000008B6 - - thumb_func_start MOD05_021F4CBC -MOD05_021F4CBC: ; 0x021F4CBC - ldr r1, _021F4CD0 ; =0x000008B6 - ldrh r0, [r0, r1] - cmp r0, #0 - bne _021F4CC8 - mov r0, #1 - b _021F4CCA -_021F4CC8: - mov r0, #0 -_021F4CCA: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr - .balign 4, 0 -_021F4CD0: .word 0x000008B6 - - thumb_func_start MOD05_021F4CD4 -MOD05_021F4CD4: ; 0x021F4CD4 - ldr r2, _021F4CE0 ; =0x000008BC - ldr r2, [r0, r2] - lsl r0, r1, #1 - ldrh r0, [r2, r0] - bx lr - nop -_021F4CE0: .word 0x000008BC - - thumb_func_start MOD05_021F4CE4 -MOD05_021F4CE4: ; 0x021F4CE4 - lsl r1, r1, #2 - add r0, r0, r1 - ldr r0, [r0, #4] - cmp r0, #0 - beq _021F4CF2 - mov r0, #1 - bx lr -_021F4CF2: - mov r0, #0 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F4CF8 -MOD05_021F4CF8: ; 0x021F4CF8 - push {r4, lr} - mov r0, #4 - mov r1, #0xfc - bl AllocFromHeap - mov r4, #0 - add r2, r4, #0 -_021F4D06: - lsl r1, r4, #3 - add r3, r0, r1 - strb r2, [r0, r1] - add r1, r4, #1 - lsl r1, r1, #0x18 - lsr r4, r1, #0x18 - str r2, [r3, #4] - cmp r4, #0x15 - blo _021F4D06 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4D1C -MOD05_021F4D1C: ; 0x021F4D1C - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - bl FreeToHeap - mov r0, #0 - str r0, [r4] - pop {r4, pc} - - thumb_func_start MOD05_021F4D2C -MOD05_021F4D2C: ; 0x021F4D2C - push {r3, r4, r5, r6, lr} - sub sp, #0x1c - add r5, r0, #0 - ldr r0, _021F4D7C ; =0x000007D8 - str r0, [r1] - ldr r0, [r5, #0x38] - bl FUN_02055320 - add r4, r0, #0 - ldr r0, [r5, #0x38] - bl FUN_0205532C - add r6, r0, #0 - ldr r0, [r5, #0x38] - bl FUN_020552F8 - cmp r0, #0 - bne _021F4D76 - mov r0, #1 - str r0, [sp] - str r0, [sp, #4] - add r0, sp, #0xc - mov r2, #0 - str r0, [sp, #8] - add r0, r4, #0 - add r1, r6, #0 - sub r3, r2, #1 - bl FUN_0204A840 - add r0, r5, #0 - mov r1, #0x1a - add r2, sp, #0xc - mov r3, #0 - bl FUN_0204A8C4 - add sp, #0x1c - pop {r3, r4, r5, r6, pc} -_021F4D76: - mov r0, #0 - add sp, #0x1c - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_021F4D7C: .word 0x000007D8 - - thumb_func_start MOD05_021F4D80 -MOD05_021F4D80: ; 0x021F4D80 - push {r3, r4, r5, lr} - add r4, r0, #0 - ldr r0, [r4, #0x1c] - ldr r0, [r0] - bl MOD05_021F50FC - add r5, r0, #0 - cmp r5, #0x15 - bne _021F4D96 - bl GF_AssertFail -_021F4D96: - ldr r0, [r4, #0xc] - bl FUN_0202A9B0 - bl FUN_0202A9BC - add r1, r0, #0 - add r0, r5, #0 - bl FUN_0202A9C8 - add r4, r0, #0 - ldr r0, [r4] - bl MOD05_021F5120 - cmp r0, #0 - beq _021F4DB8 - mov r0, #3 - pop {r3, r4, r5, pc} -_021F4DB8: - ldr r0, [r4] - cmp r0, #0 - beq _021F4DC2 - mov r0, #2 - pop {r3, r4, r5, pc} -_021F4DC2: - mov r0, #1 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4DC8 -MOD05_021F4DC8: ; 0x021F4DC8 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - ldr r0, [r6, #0x1c] - ldr r0, [r0] - bl MOD05_021F50FC - add r5, r0, #0 - cmp r5, #0x15 - bne _021F4DDE - bl GF_AssertFail -_021F4DDE: - ldr r0, [r6, #0xc] - bl FUN_0202A9B0 - bl FUN_0202A9BC - str r0, [sp] - ldr r1, [sp] - add r0, r5, #0 - bl FUN_0202A9C8 - add r4, r0, #0 - mov r0, #0x5a - lsl r0, r0, #4 - str r0, [r4] - ldr r0, [r6, #0xc] - bl Sav2_PlayerData_GetProfileAddr - bl PlayerProfile_GetTrainerID - add r1, r5, #0 - bl MOD05_021F5138 - add r7, r0, #0 - ldr r0, [sp] - bl FUN_0202A9C0 - cmp r5, r0 - bne _021F4E42 - bl LCRandom - mov r1, #0x29 - lsl r1, r1, #4 - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - cmp r6, #0x64 - blo _021F4E2E - bl GF_AssertFail -_021F4E2E: - cmp r6, #0x5a - bhs _021F4E42 - add r0, r4, #4 - bl MOD05_021F4F44 - ldrb r0, [r4, #6] - bl MOD05_021F4FAC - strb r0, [r4, #7] - pop {r3, r4, r5, r6, r7, pc} -_021F4E42: - add r0, r7, #0 - add r1, r4, #6 - bl MOD05_021F4EE4 - ldrb r0, [r4, #6] - cmp r0, #0 - beq _021F4E60 - add r0, r4, #4 - bl MOD05_021F4F44 - ldrb r0, [r4, #6] - bl MOD05_021F4F98 - strb r0, [r4, #5] - b _021F4E68 -_021F4E60: - mov r0, #0 - strb r0, [r4, #5] - strb r0, [r4, #4] - str r0, [r4] -_021F4E68: - ldrb r0, [r4, #6] - bl MOD05_021F4FAC - strb r0, [r4, #7] - ldr r1, [sp] - add r0, r5, #0 - bl FUN_0202A9C4 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F4E7C -MOD05_021F4E7C: ; 0x021F4E7C - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r0, #0 - ldr r0, [r5, #0x1c] - ldr r0, [r0] - bl MOD05_021F50FC - add r4, r0, #0 - cmp r4, #0x15 - bne _021F4E94 - bl GF_AssertFail -_021F4E94: - add r0, r5, #0 - add r0, #0xa4 - ldr r0, [r0] - lsl r4, r4, #3 - add r0, r0, r4 - ldr r0, [r0, #4] - cmp r0, #0 - beq _021F4EE0 - ldr r0, [r5, #0x24] - bl MOD05_021EF618 - ldr r1, [r5, #0x24] - add r2, sp, #0 - bl MOD05_021EF604 - ldr r0, [sp] - mov r1, #0x1a - bl MOD05_021E7ED8 - add r6, r0, #0 - bl MOD05_021E7EC8 - add r1, r0, #0 - cmp r6, #0 - beq _021F4ED6 - add r3, r5, #0 - add r3, #0xa4 - ldr r3, [r3] - ldr r0, [r5, #0x4c] - ldrb r3, [r3, r4] - mov r2, #0x1a - bl MOD05_021D9FB4 -_021F4ED6: - add r5, #0xa4 - ldr r0, [r5] - mov r1, #0 - add r0, r0, r4 - str r1, [r0, #4] -_021F4EE0: - add sp, #4 - pop {r3, r4, r5, r6, pc} - - thumb_func_start MOD05_021F4EE4 -MOD05_021F4EE4: ; 0x021F4EE4 - push {r4, r5, r6, lr} - add r6, r0, #0 - add r5, r1, #0 - bl LCRandom - mov r1, #0x29 - lsl r1, r1, #4 - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #0x64 - blo _021F4F02 - bl GF_AssertFail -_021F4F02: - cmp r6, #0 - beq _021F4F2A - cmp r4, #1 - bge _021F4F10 - mov r0, #3 - strb r0, [r5] - pop {r4, r5, r6, pc} -_021F4F10: - cmp r4, #0xa - bge _021F4F1A - mov r0, #0 - strb r0, [r5] - pop {r4, r5, r6, pc} -_021F4F1A: - cmp r4, #0x1e - bge _021F4F24 - mov r0, #1 - strb r0, [r5] - pop {r4, r5, r6, pc} -_021F4F24: - mov r0, #2 - strb r0, [r5] - pop {r4, r5, r6, pc} -_021F4F2A: - cmp r4, #0xa - bge _021F4F34 - mov r0, #0 - strb r0, [r5] - pop {r4, r5, r6, pc} -_021F4F34: - cmp r4, #0x1e - bge _021F4F3E - mov r0, #2 - strb r0, [r5] - pop {r4, r5, r6, pc} -_021F4F3E: - mov r0, #1 - strb r0, [r5] - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F4F44 -MOD05_021F4F44: ; 0x021F4F44 - push {r3, r4, r5, lr} - add r4, r0, #0 - bl LCRandom - mov r1, #0x29 - lsl r1, r1, #4 - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - cmp r5, #0x64 - blo _021F4F60 - bl GF_AssertFail -_021F4F60: - cmp r5, #5 - bge _021F4F6A - mov r0, #5 - strb r0, [r4] - pop {r3, r4, r5, pc} -_021F4F6A: - cmp r5, #0xa - bge _021F4F74 - mov r0, #4 - strb r0, [r4] - pop {r3, r4, r5, pc} -_021F4F74: - cmp r5, #0x14 - bge _021F4F7E - mov r0, #3 - strb r0, [r4] - pop {r3, r4, r5, pc} -_021F4F7E: - cmp r5, #0x28 - bge _021F4F88 - mov r0, #2 - strb r0, [r4] - pop {r3, r4, r5, pc} -_021F4F88: - cmp r5, #0x3c - bge _021F4F92 - mov r0, #1 - strb r0, [r4] - pop {r3, r4, r5, pc} -_021F4F92: - mov r0, #0 - strb r0, [r4] - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F4F98 -MOD05_021F4F98: ; 0x021F4F98 - cmp r0, #3 - bne _021F4FA0 - mov r0, #2 - bx lr -_021F4FA0: - cmp r0, #2 - bne _021F4FA8 - mov r0, #1 - bx lr -_021F4FA8: - mov r0, #0 - bx lr - - thumb_func_start MOD05_021F4FAC -MOD05_021F4FAC: ; 0x021F4FAC - push {r3, r4, r5, lr} - add r4, r0, #0 - bl LCRandom - mov r1, #0x29 - lsl r1, r1, #4 - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - cmp r5, #0x64 - blo _021F4FC8 - bl GF_AssertFail -_021F4FC8: - cmp r4, #3 - bne _021F4FE8 - cmp r5, #5 - bge _021F4FD4 - mov r0, #2 - pop {r3, r4, r5, pc} -_021F4FD4: - cmp r5, #6 - bge _021F4FDC - mov r0, #1 - pop {r3, r4, r5, pc} -_021F4FDC: - cmp r5, #7 - bge _021F4FE4 - mov r0, #0 - pop {r3, r4, r5, pc} -_021F4FE4: - mov r0, #3 - pop {r3, r4, r5, pc} -_021F4FE8: - cmp r4, #2 - bne _021F5008 - cmp r5, #0x4b - bge _021F4FF4 - mov r0, #2 - pop {r3, r4, r5, pc} -_021F4FF4: - cmp r5, #0x5f - bge _021F4FFC - mov r0, #1 - pop {r3, r4, r5, pc} -_021F4FFC: - cmp r5, #0x60 - bge _021F5004 - mov r0, #0 - pop {r3, r4, r5, pc} -_021F5004: - mov r0, #3 - pop {r3, r4, r5, pc} -_021F5008: - cmp r4, #1 - bne _021F5028 - cmp r5, #0x13 - bge _021F5014 - mov r0, #2 - pop {r3, r4, r5, pc} -_021F5014: - cmp r5, #0x4f - bge _021F501C - mov r0, #1 - pop {r3, r4, r5, pc} -_021F501C: - cmp r5, #0x63 - bge _021F5024 - mov r0, #0 - pop {r3, r4, r5, pc} -_021F5024: - mov r0, #3 - pop {r3, r4, r5, pc} -_021F5028: - cmp r5, #1 - bge _021F5030 - mov r0, #2 - pop {r3, r4, r5, pc} -_021F5030: - cmp r5, #0x13 - bge _021F5038 - mov r0, #1 - pop {r3, r4, r5, pc} -_021F5038: - cmp r5, #0x63 - bge _021F5040 - mov r0, #0 - pop {r3, r4, r5, pc} -_021F5040: - mov r0, #3 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F5044 -MOD05_021F5044: ; 0x021F5044 - mov r2, #1 - cmp r0, #3 - bne _021F5050 - mov r0, #2 - strb r0, [r1] - b _021F5064 -_021F5050: - cmp r0, #2 - bne _021F5058 - strb r2, [r1] - b _021F5064 -_021F5058: - cmp r0, #1 - bne _021F5062 - mov r0, #0 - strb r0, [r1] - b _021F5064 -_021F5062: - mov r2, #0 -_021F5064: - add r0, r2, #0 - bx lr - - thumb_func_start MOD05_021F5068 -MOD05_021F5068: ; 0x021F5068 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r0, #0 - ldr r0, [r5, #0x28] - add r7, r1, #0 - add r1, r2, #0 - bl MapMatrix_GetMapHeaderFromID - bl MOD05_021F50FC - add r4, r0, #0 - cmp r4, #0x15 - beq _021F50F8 - ldr r0, [r5, #0xc] - bl FUN_0202A9B0 - bl FUN_0202A9BC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0202A9C8 - add r6, r0, #0 - ldr r0, [r6] - bl MOD05_021F5120 - cmp r0, #0 - beq _021F50F8 - ldrb r0, [r6, #7] - add r1, sp, #4 - bl MOD05_021F5044 - add r6, r0, #0 - beq _021F50F8 - add r0, r7, #0 - mov r1, #0x1a - bl MOD05_021E7ED8 - cmp r0, #0 - beq _021F50F8 - bl MOD05_021E7EC8 - add r3, r5, #0 - add r7, r0, #0 - add r3, #0xa4 - ldr r3, [r3] - lsl r4, r4, #3 - ldrb r3, [r3, r4] - ldr r0, [r5, #0x4c] - add r1, r7, #0 - mov r2, #0x1a - bl MOD05_021D9FB4 - add r1, sp, #4 - add r2, r5, #0 - add r2, #0xa4 - ldrb r0, [r1] - ldr r2, [r2] - add r3, r7, #0 - strb r0, [r2, r4] - add r0, r5, #0 - add r0, #0xa4 - ldr r0, [r0] - mov r2, #1 - add r0, r0, r4 - str r6, [r0, #4] - ldr r0, [r5, #0x4c] - str r0, [sp] - ldrb r1, [r1] - mov r0, #0x1a - bl MOD05_021D9DC0 -_021F50F8: - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F50FC -MOD05_021F50FC: ; 0x021F50FC - ldr r2, _021F511C ; =UNK05_021FC650 - mov r3, #0 -_021F5100: - lsl r1, r3, #2 - ldr r1, [r2, r1] - cmp r0, r1 - bne _021F510C - add r0, r3, #0 - bx lr -_021F510C: - add r1, r3, #1 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - cmp r3, #0x15 - blo _021F5100 - add r0, r3, #0 - bx lr - nop -_021F511C: .word UNK05_021FC650 - - thumb_func_start MOD05_021F5120 -MOD05_021F5120: ; 0x021F5120 - cmp r0, #0 - ble _021F512E - ldr r1, _021F5134 ; =0x00000438 - cmp r0, r1 - bgt _021F512E - mov r0, #1 - bx lr -_021F512E: - mov r0, #0 - bx lr - nop -_021F5134: .word 0x00000438 - - thumb_func_start MOD05_021F5138 -MOD05_021F5138: ; 0x021F5138 - push {r3, r4, r5, r6, r7, lr} - add r4, r1, #0 - lsr r2, r0, #0x18 - add r1, sp, #0 - strb r2, [r1] - lsr r2, r0, #0x10 - strb r2, [r1, #1] - lsr r2, r0, #8 - strb r2, [r1, #2] - strb r0, [r1, #3] - ldrb r0, [r1] - mov r1, #0x15 - bl _s32_div_f - add r0, sp, #0 - strb r1, [r0] - ldrb r0, [r0, #1] - mov r1, #0x15 - bl _s32_div_f - add r0, sp, #0 - strb r1, [r0, #1] - ldrb r0, [r0, #2] - mov r1, #0x15 - bl _s32_div_f - add r0, sp, #0 - strb r1, [r0, #2] - ldrb r0, [r0, #3] - mov r1, #0x15 - bl _s32_div_f - add r0, sp, #0 - strb r1, [r0, #3] - mov r0, #0 - mov r3, #1 - add r1, sp, #0 - add r2, r0, #0 -_021F5184: - add r5, r2, #0 - cmp r3, #0 - bls _021F51A8 -_021F518A: - ldrb r7, [r1, r5] - ldrb r6, [r1, r3] - cmp r7, r6 - bne _021F519E - add r6, r6, #1 - strb r6, [r1, r3] - ldrb r6, [r1, r3] - cmp r6, #0x15 - blo _021F519E - strb r0, [r1, r3] -_021F519E: - add r5, r5, #1 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - cmp r5, r3 - blo _021F518A -_021F51A8: - add r3, r3, #1 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - cmp r3, #4 - blo _021F5184 - mov r2, #0 - add r1, sp, #0 -_021F51B6: - ldrb r0, [r1, r2] - cmp r4, r0 - bne _021F51C0 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F51C0: - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #4 - blo _021F51B6 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F51D0 -MOD05_021F51D0: ; 0x021F51D0 - push {r3, r4, r5, lr} - add r4, r0, #0 - ldr r0, [r4, #0x1c] - ldr r0, [r0] - bl MOD05_021F50FC - add r5, r0, #0 - cmp r5, #0x15 - bne _021F51E6 - bl GF_AssertFail -_021F51E6: - ldr r0, [r4, #0xc] - bl FUN_0202A9B0 - bl FUN_0202A9BC - add r1, r0, #0 - add r0, r5, #0 - bl FUN_0202A9C8 - add r4, r0, #0 - ldrb r1, [r4, #5] - mov r0, #0x6a - lsl r2, r1, #2 - ldr r1, _021F5218 ; =UNK05_021FC644 - ldr r1, [r1, r2] - mov r2, #4 - bl AllocAtEndAndReadWholeNarcMemberByIdPair - ldrb r1, [r4, #4] - lsl r1, r1, #2 - ldr r4, [r0, r1] - bl FreeToHeap - add r0, r4, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021F5218: .word UNK05_021FC644 - - thumb_func_start MOD05_021F521C -MOD05_021F521C: ; 0x021F521C - push {r3, lr} - add r3, r1, #0 - bmi _021F522A - add r1, r2, #0 - add r2, r3, #0 - bl MOD05_021F5068 -_021F522A: - pop {r3, pc} - - thumb_func_start MOD05_021F522C -MOD05_021F522C: ; 0x021F522C - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5, #0x1c] - ldr r0, [r0] - bl MOD05_021F50FC - add r4, r0, #0 - cmp r4, #0x15 - bne _021F5242 - bl GF_AssertFail -_021F5242: - add r0, r5, #0 - add r0, #0xa4 - ldr r1, [r0] - lsl r0, r4, #3 - mov r2, #0 - add r0, r1, r0 - str r2, [r0, #4] - ldr r0, [r5, #0xc] - bl FUN_0202A9B0 - bl FUN_0202A9BC - add r1, r0, #0 - add r0, r4, #0 - bl FUN_0202A9C8 - mov r1, #0 - str r1, [r0] - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F5268 -MOD05_021F5268: ; 0x021F5268 - push {r3, r4, r5, lr} - mov r5, #0 - add r4, r0, #0 - add r0, r1, #0 - add r1, r2, #0 - str r5, [sp] - add r2, r5, #0 - bl GfGfxLoader_LoadFromNarc - str r0, [r4] - bl NNS_G3dGetMdlSet - str r0, [r4, #4] - ldrh r1, [r0, #0xe] - add r1, r0, r1 - ldr r1, [r1, #0xc] - add r0, r0, r1 - str r0, [r4, #8] - ldr r0, [r4] - bl NNS_G3dGetTex - str r0, [r4, #0xc] - cmp r0, #0 - beq _021F52A4 - mov r2, #1 - ldr r0, _021F52A8 ; =MOD05_021F52AC - add r1, r4, #0 - lsl r2, r2, #0xa - bl FUN_0200CA98 -_021F52A4: - pop {r3, r4, r5, pc} - nop -_021F52A8: .word MOD05_021F52AC - - thumb_func_start MOD05_021F52AC -MOD05_021F52AC: ; 0x021F52AC - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4, #0xc] - bl FUN_0201B3C4 - ldr r0, [r4] - ldr r1, [r4, #0xc] - bl FUN_0201B3A8 - add r0, r5, #0 - bl FUN_0200CAB4 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F52C8 -MOD05_021F52C8: ; 0x021F52C8 - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - ldr r0, [r4, #0xc] - cmp r0, #0 - beq _021F52F8 - add r1, sp, #4 - add r2, sp, #0 - bl NNS_G3dTexReleaseTexKey - ldr r1, _021F5314 ; =NNS_GfdDefaultFuncFreeTexVram - ldr r0, [sp, #4] - ldr r1, [r1] - blx r1 - ldr r1, _021F5314 ; =NNS_GfdDefaultFuncFreeTexVram - ldr r0, [sp] - ldr r1, [r1] - blx r1 - ldr r0, [r4, #0xc] - bl NNS_G3dPlttReleasePlttKey - ldr r1, _021F5318 ; =NNS_GfdDefaultFuncFreePlttVram - ldr r1, [r1] - blx r1 -_021F52F8: - ldr r0, [r4] - cmp r0, #0 - beq _021F5302 - bl FreeToHeap -_021F5302: - mov r1, #0x10 - mov r0, #0 -_021F5306: - strb r0, [r4] - add r4, r4, #1 - sub r1, r1, #1 - bne _021F5306 - add sp, #8 - pop {r4, pc} - nop -_021F5314: .word NNS_GfdDefaultFuncFreeTexVram -_021F5318: .word NNS_GfdDefaultFuncFreePlttVram - - thumb_func_start MOD05_021F531C -MOD05_021F531C: ; 0x021F531C - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r4, r1, #0 - mov r6, #0 - add r1, r3, #0 - add r5, r0, #0 - add r0, r2, #0 - ldr r3, [sp, #0x18] - add r2, r6, #0 - str r6, [sp] - bl GfGfxLoader_LoadFromNarc - add r2, r0, #0 - ldr r3, [sp, #0x1c] - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021F54EC - add r0, r6, #0 - str r0, [r5, #0x10] - add sp, #4 - pop {r3, r4, r5, r6, pc} - - thumb_func_start MOD05_021F5348 -MOD05_021F5348: ; 0x021F5348 - push {r4, lr} - add r4, r0, #0 - bl MOD05_021F54EC - mov r0, #1 - str r0, [r4, #0x10] - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F5358 -MOD05_021F5358: ; 0x021F5358 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F5376 - add r0, r1, #0 - ldr r1, [r4, #8] - bl NNS_G3dFreeAnmObj - ldr r0, [r4, #0x10] - cmp r0, #0 - bne _021F5376 - ldr r0, [r4] - bl FreeToHeap -_021F5376: - mov r1, #0x14 - mov r0, #0 -_021F537A: - strb r0, [r4] - add r4, r4, #1 - sub r1, r1, #1 - bne _021F537A - pop {r4, pc} - - thumb_func_start MOD05_021F5384 -MOD05_021F5384: ; 0x021F5384 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #8] - ldr r0, [r0, #8] - ldrh r0, [r0, #4] - lsl r2, r0, #0xc - cmp r1, #0 - ble _021F53A2 - ldr r0, [r4, #0xc] - add r0, r0, r1 - add r1, r2, #0 - bl _s32_div_f - str r1, [r4, #0xc] - b _021F53B4 -_021F53A2: - ldr r0, [r4, #0xc] - add r3, r4, #0 - add r3, #0xc - add r0, r0, r1 - str r0, [r4, #0xc] - bpl _021F53B4 - ldr r0, [r3] - add r0, r0, r2 - str r0, [r3] -_021F53B4: - ldr r1, [r4, #0xc] - ldr r0, [r4, #8] - str r1, [r0] - pop {r4, pc} - - thumb_func_start MOD05_021F53BC -MOD05_021F53BC: ; 0x021F53BC - push {r3, r4} - ldr r2, [r0, #8] - ldr r3, [r0, #0xc] - ldr r2, [r2, #8] - ldrh r2, [r2, #4] - lsl r4, r2, #0xc - mov r2, #0 - cmp r1, #0 - ble _021F53DE - add r1, r3, r1 - cmp r1, r4 - bge _021F53D8 - str r1, [r0, #0xc] - b _021F53EA -_021F53D8: - str r4, [r0, #0xc] - mov r2, #1 - b _021F53EA -_021F53DE: - add r1, r3, r1 - bmi _021F53E6 - str r1, [r0, #0xc] - b _021F53EA -_021F53E6: - str r2, [r0, #0xc] - mov r2, #1 -_021F53EA: - ldr r1, [r0, #0xc] - ldr r0, [r0, #8] - str r1, [r0] - add r0, r2, #0 - pop {r3, r4} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F53F8 -MOD05_021F53F8: ; 0x021F53F8 - str r1, [r0, #0xc] - ldr r0, [r0, #8] - str r1, [r0] - bx lr - - thumb_func_start MOD05_021F5400 -MOD05_021F5400: ; 0x021F5400 - push {r3, r4, r5, lr} - add r5, r1, #0 - mov r1, #0 - mov r2, #0x78 - add r4, r0, #0 - bl memset - ldr r1, [r5, #8] - add r0, r4, #0 - bl NNS_G3dRenderObjInit - mov r0, #1 - str r0, [r4, #0x6c] - lsl r0, r0, #0xc - str r0, [r4, #0x60] - str r0, [r4, #0x64] - str r0, [r4, #0x68] - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F5424 -MOD05_021F5424: ; 0x021F5424 - ldr r3, _021F542C ; =NNS_G3dRenderObjAddAnmObj - ldr r1, [r1, #8] - bx r3 - nop -_021F542C: .word NNS_G3dRenderObjAddAnmObj - - thumb_func_start MOD05_021F5430 -MOD05_021F5430: ; 0x021F5430 - push {r4, lr} - sub sp, #0x48 - add r4, r0, #0 - ldr r0, [r4, #0x6c] - cmp r0, #0 - beq _021F54C4 - add r0, sp, #0x24 - bl MTX_Identity33_ - add r0, r4, #0 - add r0, #0x70 - ldrh r0, [r0] - ldr r3, _021F54C8 ; =FX_SinCosTable_ - asr r0, r0, #4 - lsl r2, r0, #1 - lsl r1, r2, #1 - add r2, r2, #1 - lsl r2, r2, #1 - ldrsh r1, [r3, r1] - ldrsh r2, [r3, r2] - add r0, sp, #0 - bl MTX_RotX33_ - add r1, sp, #0x24 - add r0, sp, #0 - add r2, r1, #0 - bl MTX_Concat33 - add r0, r4, #0 - add r0, #0x74 - ldrh r0, [r0] - ldr r3, _021F54C8 ; =FX_SinCosTable_ - asr r0, r0, #4 - lsl r2, r0, #1 - lsl r1, r2, #1 - add r2, r2, #1 - lsl r2, r2, #1 - ldrsh r1, [r3, r1] - ldrsh r2, [r3, r2] - add r0, sp, #0 - bl MTX_RotZ33_ - add r1, sp, #0x24 - add r0, sp, #0 - add r2, r1, #0 - bl MTX_Concat33 - add r0, r4, #0 - add r0, #0x72 - ldrh r0, [r0] - ldr r3, _021F54C8 ; =FX_SinCosTable_ - asr r0, r0, #4 - lsl r2, r0, #1 - lsl r1, r2, #1 - add r2, r2, #1 - lsl r2, r2, #1 - ldrsh r1, [r3, r1] - ldrsh r2, [r3, r2] - add r0, sp, #0 - bl MTX_RotY33_ - add r1, sp, #0x24 - add r0, sp, #0 - add r2, r1, #0 - bl MTX_Concat33 - add r1, r4, #0 - add r0, r4, #0 - add r4, #0x60 - add r1, #0x54 - add r2, sp, #0x24 - add r3, r4, #0 - bl FUN_0201B26C -_021F54C4: - add sp, #0x48 - pop {r4, pc} - .balign 4, 0 -_021F54C8: .word FX_SinCosTable_ - - thumb_func_start MOD05_021F54CC -MOD05_021F54CC: ; 0x021F54CC - str r1, [r0, #0x6c] - bx lr - - thumb_func_start MOD05_021F54D0 -MOD05_021F54D0: ; 0x021F54D0 - str r1, [r0, #0x54] - str r2, [r0, #0x58] - str r3, [r0, #0x5c] - bx lr - - thumb_func_start MOD05_021F54D8 -MOD05_021F54D8: ; 0x021F54D8 - str r1, [r0, #0x60] - str r2, [r0, #0x64] - str r3, [r0, #0x68] - bx lr - - thumb_func_start MOD05_021F54E0 -MOD05_021F54E0: ; 0x021F54E0 - lsl r2, r2, #1 - add r0, r0, r2 - add r0, #0x70 - strh r1, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F54EC -MOD05_021F54EC: ; 0x021F54EC - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - str r2, [r5] - add r0, r2, #0 - mov r1, #0 - add r6, r3, #0 - bl NNS_G3dGetAnmByIdx - str r0, [r5, #4] - ldr r1, [r5, #4] - ldr r2, [r4, #8] - add r0, r6, #0 - bl NNS_G3dAllocAnmObj - str r0, [r5, #8] - ldr r1, [r5, #4] - ldr r2, [r4, #8] - ldr r3, [r4, #0xc] - bl NNS_G3dAnmObjInit - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F5518 -MOD05_021F5518: ; 0x021F5518 - push {r3, r4, lr} - sub sp, #4 - ldr r0, [r1, #8] - add r4, r2, #0 - bl MOD05_021F5608 - add r0, r4, #0 - mov r1, #0 - mov r2, #0xa - mov r3, #0x13 - bl MOD05_021F5660 - mov r3, #0 - str r3, [r4, #0x14] - mov r0, #0x10 - str r0, [sp] - ldr r0, _021F555C ; =0x04000050 - mov r1, #4 - mov r2, #0x29 - bl G2x_SetBlendAlpha_ - mov r0, #2 - mov r1, #0 - bl SetBgPriority - mov r0, #4 - mov r1, #1 - bl GX_EngineAToggleLayers - ldr r0, _021F5560 ; =0x00000648 - bl PlaySE - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 -_021F555C: .word 0x04000050 -_021F5560: .word 0x00000648 - - thumb_func_start MOD05_021F5564 -MOD05_021F5564: ; 0x021F5564 - push {r3, r4, lr} - sub sp, #4 - ldr r0, [r1, #8] - add r4, r2, #0 - bl MOD05_021F5608 - add r0, r4, #0 - mov r1, #0xa - mov r2, #0 - mov r3, #0xf - bl MOD05_021F5660 - mov r0, #0 - str r0, [r4, #0x14] - mov r0, #6 - str r0, [sp] - ldr r0, _021F5594 ; =0x04000050 - mov r1, #4 - mov r2, #0x21 - mov r3, #0xa - bl G2x_SetBlendAlpha_ - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 -_021F5594: .word 0x04000050 - - thumb_func_start MOD05_021F5598 -MOD05_021F5598: ; 0x021F5598 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F559C -MOD05_021F559C: ; 0x021F559C - push {r4, lr} - add r4, r2, #0 - ldr r0, [r4, #0x14] - cmp r0, #1 - beq _021F55C2 - add r0, r4, #0 - bl MOD05_021F5670 - cmp r0, #0 - beq _021F55B4 - mov r0, #1 - str r0, [r4, #0x14] -_021F55B4: - ldr r1, [r4] - mov r0, #0x10 - sub r0, r0, r1 - lsl r0, r0, #8 - orr r1, r0 - ldr r0, _021F55C4 ; =0x04000052 - strh r1, [r0] -_021F55C2: - pop {r4, pc} - .balign 4, 0 -_021F55C4: .word 0x04000052 - - thumb_func_start MOD05_021F55C8 -MOD05_021F55C8: ; 0x021F55C8 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F55CC -MOD05_021F55CC: ; 0x021F55CC - ldr r0, [r0, #4] - ldr r3, _021F55D8 ; =MOD05_021D8024 - ldr r0, [r0, #4] - ldr r1, _021F55DC ; =UNK05_021FC6C0 - bx r3 - nop -_021F55D8: .word MOD05_021D8024 -_021F55DC: .word UNK05_021FC6C0 - - thumb_func_start MOD05_021F55E0 -MOD05_021F55E0: ; 0x021F55E0 - ldr r3, _021F55E4 ; =MOD05_021D80A4 - bx r3 - .balign 4, 0 -_021F55E4: .word MOD05_021D80A4 - - thumb_func_start MOD05_021F55E8 -MOD05_021F55E8: ; 0x021F55E8 - push {r3, lr} - bl MOD05_021D80E4 - ldr r0, [r0, #0x14] - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F55F4 -MOD05_021F55F4: ; 0x021F55F4 - ldr r0, [r0, #4] - ldr r3, _021F5600 ; =MOD05_021D8024 - ldr r0, [r0, #4] - ldr r1, _021F5604 ; =UNK05_021FC6A8 - bx r3 - nop -_021F5600: .word MOD05_021D8024 -_021F5604: .word UNK05_021FC6A8 - - thumb_func_start MOD05_021F5608 -MOD05_021F5608: ; 0x021F5608 - push {r3, r4, r5, lr} - sub sp, #8 - ldr r1, _021F5658 ; =0x00005D5F - add r5, r0, #0 - add r0, sp, #4 - strh r1, [r0] - mov r0, #2 - add r1, sp, #4 - add r2, r0, #0 - mov r3, #0xc2 - bl BG_LoadPlttData - mov r0, #4 - mov r1, #0x20 - bl AllocFromHeap - mov r1, #0x11 - mov r2, #0x20 - add r4, r0, #0 - bl memset - mov r0, #1 - str r0, [sp] - add r0, r5, #0 - mov r1, #2 - add r2, r4, #0 - mov r3, #0x20 - bl BG_LoadCharTilesData - add r0, r4, #0 - bl FreeToHeap - ldr r2, _021F565C ; =0x00006001 - add r0, r5, #0 - mov r1, #2 - bl BgFillTilemapBufferAndCommit - add sp, #8 - pop {r3, r4, r5, pc} - nop -_021F5658: .word 0x00005D5F -_021F565C: .word 0x00006001 - - thumb_func_start MOD05_021F5660 -MOD05_021F5660: ; 0x021F5660 - str r1, [r0] - str r1, [r0, #4] - sub r1, r2, r1 - str r1, [r0, #8] - str r3, [r0, #0x10] - mov r1, #0 - str r1, [r0, #0xc] - bx lr - - thumb_func_start MOD05_021F5670 -MOD05_021F5670: ; 0x021F5670 - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4, #8] - ldr r0, [r4, #0xc] - mul r0, r1 - ldr r1, [r4, #0x10] - bl _s32_div_f - ldr r1, [r4, #4] - add r0, r0, r1 - str r0, [r4] - ldr r0, [r4, #0xc] - ldr r1, [r4, #0x10] - add r0, r0, #1 - cmp r0, r1 - bgt _021F5696 - str r0, [r4, #0xc] - mov r0, #0 - pop {r4, pc} -_021F5696: - str r1, [r4, #0xc] - mov r0, #1 - pop {r4, pc} - - thumb_func_start MOD05_021F569C -MOD05_021F569C: ; 0x021F569C - ldr r3, _021F56A4 ; =BG_SetMaskColor - mov r0, #2 - mov r1, #0 - bx r3 - .balign 4, 0 -_021F56A4: .word BG_SetMaskColor - - thumb_func_start MOD05_021F56A8 -MOD05_021F56A8: ; 0x021F56A8 - ldr r3, _021F56B0 ; =BG_SetMaskColor - mov r0, #2 - ldr r1, _021F56B4 ; =0x00007FFF - bx r3 - .balign 4, 0 -_021F56B0: .word BG_SetMaskColor -_021F56B4: .word 0x00007FFF - - thumb_func_start MOD05_021F56B8 -MOD05_021F56B8: ; 0x021F56B8 - push {r4, lr} - sub sp, #8 - ldr r1, _021F5710 ; =0x00007FFF - add r4, r0, #0 - add r0, sp, #4 - strh r1, [r0] - mov r0, #4 - mov r1, #0 - bl GX_EngineAToggleLayers - ldr r1, _021F5714 ; =0x0400000C - mov r0, #3 - ldrh r2, [r1] - mov r3, #0xc4 - bic r2, r0 - mov r0, #3 - orr r0, r2 - strh r0, [r1] - mov r0, #2 - add r1, sp, #4 - add r2, r0, #0 - bl BG_LoadPlttData - mov r1, #2 - str r1, [sp] - ldr r0, [r4, #8] - add r2, r1, #0 - mov r3, #1 - bl BG_FillCharDataRange - ldr r0, [r4, #8] - ldr r2, _021F5718 ; =0x00006002 - mov r1, #2 - bl BgFillTilemapBufferAndCommit - mov r0, #4 - mov r1, #1 - bl GX_EngineAToggleLayers - add r0, r4, #0 - bl MOD05_021F569C - add sp, #8 - pop {r4, pc} - .balign 4, 0 -_021F5710: .word 0x00007FFF -_021F5714: .word 0x0400000C -_021F5718: .word 0x00006002 - - thumb_func_start MOD05_021F571C -MOD05_021F571C: ; 0x021F571C - push {r4, lr} - sub sp, #8 - ldr r1, _021F5774 ; =0x00007FFF - add r4, r0, #0 - add r0, sp, #4 - strh r1, [r0] - mov r0, #8 - mov r1, #0 - bl GX_EngineAToggleLayers - ldr r1, _021F5778 ; =0x0400000E - mov r0, #3 - ldrh r2, [r1] - mov r3, #0xc4 - bic r2, r0 - mov r0, #3 - orr r2, r0 - strh r2, [r1] - add r1, sp, #4 - mov r2, #2 - bl BG_LoadPlttData - mov r2, #2 - str r2, [sp] - ldr r0, [r4, #8] - mov r1, #3 - mov r3, #1 - bl BG_FillCharDataRange - ldr r0, [r4, #8] - ldr r2, _021F577C ; =0x00006002 - mov r1, #3 - bl BgFillTilemapBufferAndCommit - mov r0, #8 - mov r1, #1 - bl GX_EngineAToggleLayers - add r0, r4, #0 - bl MOD05_021F569C - add sp, #8 - pop {r4, pc} - nop -_021F5774: .word 0x00007FFF -_021F5778: .word 0x0400000E -_021F577C: .word 0x00006002 - - thumb_func_start MOD05_021F5780 -MOD05_021F5780: ; 0x021F5780 - push {r3, lr} - ldr r0, [r0, #4] - ldr r0, [r0, #0xc] - bl MOD05_021DC1D0 - ldr r3, _021F57A4 ; =UNK05_021FC6A4 - mov r2, #0 -_021F578E: - ldr r1, [r3] - cmp r0, r1 - bne _021F5798 - mov r0, #1 - pop {r3, pc} -_021F5798: - add r2, r2, #1 - add r3, r3, #4 - cmp r2, #1 - blt _021F578E - mov r0, #0 - pop {r3, pc} - .balign 4, 0 -_021F57A4: .word UNK05_021FC6A4 - - thumb_func_start MOD05_021F57A8 -MOD05_021F57A8: ; 0x021F57A8 - push {r3, lr} - ldr r0, [r0, #4] - ldr r0, [r0, #0xc] - bl MOD05_021DC1D0 - ldr r3, _021F57CC ; =UNK05_021FC6D8 - mov r2, #0 -_021F57B6: - ldr r1, [r3] - cmp r0, r1 - bne _021F57C0 - mov r0, #0 - pop {r3, pc} -_021F57C0: - add r2, r2, #1 - add r3, r3, #4 - cmp r2, #0x10 - blt _021F57B6 - mov r0, #1 - pop {r3, pc} - .balign 4, 0 -_021F57CC: .word UNK05_021FC6D8 - - thumb_func_start MOD05_021F57D0 -MOD05_021F57D0: ; 0x021F57D0 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021F57E2 - bl MOD05_021F55E0 - mov r0, #0 - str r0, [r4] -_021F57E2: - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F57EC -MOD05_021F57EC: ; 0x021F57EC - mov r0, #0xc - bx lr - - thumb_func_start MOD05_021F57F0 -MOD05_021F57F0: ; 0x021F57F0 - push {r4, r5, r6, lr} - add r6, r0, #0 - bl FUN_02046528 - add r5, r0, #0 - add r0, r6, #0 - bl FUN_0204652C - add r4, r0, #0 - ldrh r1, [r4, #8] - cmp r1, #9 - bls _021F580A - b _021F597C -_021F580A: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021F5816: ; jump table - .short _021F582A - _021F5816 - 2 ; case 0 - .short _021F5856 - _021F5816 - 2 ; case 1 - .short _021F5872 - _021F5816 - 2 ; case 2 - .short _021F5888 - _021F5816 - 2 ; case 3 - .short _021F58DA - _021F5816 - 2 ; case 4 - .short _021F58EE - _021F5816 - 2 ; case 5 - .short _021F5914 - _021F5816 - 2 ; case 6 - .short _021F5936 - _021F5816 - 2 ; case 7 - .short _021F5956 - _021F5816 - 2 ; case 8 - .short _021F5968 - _021F5816 - 2 ; case 9 -_021F582A: - add r0, r5, #0 - bl MOD05_021F57A8 - cmp r0, #1 - bne _021F584C - mov r0, #1 - strh r0, [r4, #8] - add r0, r5, #0 - bl MOD05_021F5780 - str r0, [r4, #4] - cmp r0, #0 - beq _021F587C - add r0, r5, #0 - bl MOD05_021F56A8 - b _021F5980 -_021F584C: - mov r0, #7 - strh r0, [r4, #8] - mov r0, #0x14 - strh r0, [r4, #0xa] - b _021F5980 -_021F5856: - add r0, r5, #0 - bl MOD05_021F55CC - str r0, [r4] - mov r0, #2 - mov r1, #0 - strh r0, [r4, #8] - bl SetBgPriority - mov r0, #4 - mov r1, #1 - bl GX_EngineAToggleLayers - b _021F5980 -_021F5872: - ldr r0, [r4] - bl MOD05_021F55E8 - cmp r0, #0 - bne _021F587E -_021F587C: - b _021F5980 -_021F587E: - mov r0, #0x16 - strh r0, [r4, #0xa] - mov r0, #3 - strh r0, [r4, #8] - b _021F5980 -_021F5888: - mov r0, #0xa - ldrsh r0, [r4, r0] - sub r0, r0, #1 - strh r0, [r4, #0xa] - ldr r0, [r5, #0x1c] - ldr r0, [r0] - bl MapHeader_HasWildEncounters - cmp r0, #0 - beq _021F58D4 - mov r0, #0xa - ldrsh r0, [r4, r0] - cmp r0, #0 - bge _021F5980 - ldr r0, [r5, #0x38] - bl FUN_02055320 - add r6, r0, #0 - ldr r0, [r5, #0x38] - bl FUN_0205532C - add r2, r0, #0 - add r0, r5, #0 - add r1, r6, #0 - bl FUN_0204A6E0 - add r1, r0, #0 - add r0, r5, #0 - bl MOD06_0223CDB8 - cmp r0, #0 - beq _021F58CE - mov r0, #6 - strh r0, [r4, #8] - b _021F5980 -_021F58CE: - mov r0, #4 - strh r0, [r4, #8] - b _021F5980 -_021F58D4: - mov r0, #4 - strh r0, [r4, #8] - b _021F5980 -_021F58DA: - ldr r0, [r4] - bl MOD05_021F55E0 - add r0, r5, #0 - bl MOD05_021F55F4 - str r0, [r4] - mov r0, #5 - strh r0, [r4, #8] - b _021F5980 -_021F58EE: - ldr r0, [r4] - bl MOD05_021F55E8 - cmp r0, #0 - beq _021F5980 - mov r0, #4 - mov r1, #0 - bl GX_EngineAToggleLayers - ldr r0, _021F5984 ; =0x04000050 - mov r1, #0 - strh r1, [r0] - mov r0, #2 - mov r1, #3 - bl SetBgPriority - mov r0, #8 - strh r0, [r4, #8] - b _021F5980 -_021F5914: - bl MOD05_021F57D0 - ldr r0, [r4, #4] - cmp r0, #0 - beq _021F5924 - add r0, r5, #0 - bl MOD05_021F571C -_021F5924: - add r0, r5, #0 - add r1, r6, #0 - bl MOD06_0223BE70 - cmp r0, #0 - bne _021F5980 - bl GF_AssertFail - b _021F5980 -_021F5936: - mov r0, #0xa - ldrsh r1, [r4, r0] - sub r1, r1, #1 - strh r1, [r4, #0xa] - ldrsh r0, [r4, r0] - cmp r0, #0 - bge _021F5980 - mov r2, #0 - ldr r1, _021F5988 ; =0x000007ED - add r0, r6, #0 - add r3, r2, #0 - bl FUN_02038CD8 - mov r0, #9 - strh r0, [r4, #8] - b _021F5980 -_021F5956: - mov r2, #0 - ldr r1, _021F598C ; =0x000007EC - add r0, r6, #0 - add r3, r2, #0 - bl FUN_02038CD8 - mov r0, #9 - strh r0, [r4, #8] - b _021F5980 -_021F5968: - bl MOD05_021F57D0 - ldr r0, [r4, #4] - cmp r0, #0 - beq _021F5978 - add r0, r5, #0 - bl MOD05_021F56B8 -_021F5978: - mov r0, #1 - pop {r4, r5, r6, pc} -_021F597C: - bl GF_AssertFail -_021F5980: - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021F5984: .word 0x04000050 -_021F5988: .word 0x000007ED -_021F598C: .word 0x000007EC - - thumb_func_start MOD05_021F5990 -MOD05_021F5990: ; 0x021F5990 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r5, r2, #0 - lsl r2, r3, #3 - add r6, r5, r2 - add r6, #0x18 - str r2, [sp, #8] - add r2, r6, #0 - str r0, [sp] - add r7, r1, #0 - str r3, [sp, #4] - bl CreateHeap - cmp r0, #1 - beq _021F59B2 - bl GF_AssertFail -_021F59B2: - sub r5, r6, r5 - add r0, r7, #0 - add r1, r5, #0 - bl AllocFromHeap - add r4, r0, #0 - bne _021F59C4 - bl GF_AssertFail -_021F59C4: - add r0, r4, #0 - mov r1, #0 - add r2, r5, #0 - bl memset - ldr r0, [sp] - str r0, [r4] - ldr r0, [sp, #4] - str r7, [r4, #4] - str r0, [r4, #8] - ldr r0, [sp, #8] - str r6, [r4, #0xc] - str r0, [r4, #0x10] - add r0, r4, #0 - add r0, #0x18 - str r0, [r4, #0x14] - add r0, r4, #0 - add sp, #0xc - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F59EC -MOD05_021F59EC: ; 0x021F59EC - push {r4, r5, r6, lr} - add r6, r0, #0 - ldr r4, [r6, #8] - ldr r5, [r6, #0x14] - cmp r4, #0 - beq _021F5A0E -_021F59F8: - ldr r0, [r5] - cmp r0, #0 - beq _021F5A06 - ldr r1, [r5, #4] - add r0, r6, #0 - bl MOD05_021F5A74 -_021F5A06: - sub r4, r4, #1 - add r5, #8 - cmp r4, #0 - bne _021F59F8 -_021F5A0E: - ldr r4, [r6, #4] - add r0, r6, #0 - bl FreeToHeap - add r0, r4, #0 - bl DestroyHeap - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F5A20 -MOD05_021F5A20: ; 0x021F5A20 - ldr r3, _021F5A24 ; =MOD05_021F5B14 - bx r3 - .balign 4, 0 -_021F5A24: .word MOD05_021F5B14 - - thumb_func_start MOD05_021F5A28 -MOD05_021F5A28: ; 0x021F5A28 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r4, r1, #0 - add r6, r2, #0 - add r7, r3, #0 - bl MOD05_021F5B5C - str r0, [sp] - cmp r0, #0 - bne _021F5A40 - bl GF_AssertFail -_021F5A40: - add r0, r5, #0 - add r1, r6, #0 - add r2, r7, #0 - bl MOD05_021F5B14 - add r5, r0, #0 - ldr r0, [sp] - add r1, r4, #0 - add r2, r5, #0 - bl MOD05_021F5B8C - add r0, r5, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F5A5C -MOD05_021F5A5C: ; 0x021F5A5C - push {r4, lr} - add r4, r1, #0 - bl MOD05_021F5B74 - cmp r0, #0 - beq _021F5A6C - bl MOD05_021F5B94 -_021F5A6C: - add r0, r4, #0 - bl MOD05_021F5B34 - pop {r4, pc} - - thumb_func_start MOD05_021F5A74 -MOD05_021F5A74: ; 0x021F5A74 - push {r4, lr} - bl MOD05_021F5B3C - add r4, r0, #0 - bne _021F5A82 - bl GF_AssertFail -_021F5A82: - ldr r0, [r4] - bl MOD05_021F5B34 - add r0, r4, #0 - bl MOD05_021F5B94 - pop {r4, pc} - - thumb_func_start MOD05_021F5A90 -MOD05_021F5A90: ; 0x021F5A90 - push {r4, lr} - bl MOD05_021F5B3C - add r4, r0, #0 - bne _021F5A9E - bl GF_AssertFail -_021F5A9E: - ldr r0, [r4] - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F5AA4 -MOD05_021F5AA4: ; 0x021F5AA4 - push {r3, lr} - bl MOD05_021F5B3C - cmp r0, #0 - beq _021F5AB2 - mov r0, #1 - pop {r3, pc} -_021F5AB2: - mov r0, #0 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F5AB8 -MOD05_021F5AB8: ; 0x021F5AB8 - push {r3, r4, r5, r6, r7, lr} - add r5, r1, #0 - add r4, r2, #0 - add r6, r0, #0 - add r7, r3, #0 - add r0, r5, #0 - add r1, r4, #0 - bl NARC_GetMemberSize - add r1, r0, #0 - add r0, r6, #0 - add r2, r7, #0 - bl MOD05_021F5A20 - add r6, r0, #0 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl NARC_ReadWholeMember - add r0, r6, #0 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F5AE4 -MOD05_021F5AE4: ; 0x021F5AE4 - push {r3, r4, r5, r6, r7, lr} - add r4, r2, #0 - add r5, r0, #0 - add r7, r3, #0 - add r6, r1, #0 - add r0, r4, #0 - add r1, r7, #0 - bl NARC_GetMemberSize - add r2, r0, #0 - ldr r3, [sp, #0x18] - add r0, r5, #0 - add r1, r6, #0 - bl MOD05_021F5A28 - add r5, r0, #0 - add r0, r4, #0 - add r1, r7, #0 - add r2, r5, #0 - bl NARC_ReadWholeMember - add r0, r5, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021F5B14 -MOD05_021F5B14: ; 0x021F5B14 - push {r4, lr} - cmp r2, #0 - ldr r0, [r0, #4] - bne _021F5B22 - bl AllocFromHeap - b _021F5B26 -_021F5B22: - bl AllocFromHeapAtEnd -_021F5B26: - add r4, r0, #0 - cmp r4, #0 - bne _021F5B30 - bl GF_AssertFail -_021F5B30: - add r0, r4, #0 - pop {r4, pc} - - thumb_func_start MOD05_021F5B34 -MOD05_021F5B34: ; 0x021F5B34 - ldr r3, _021F5B38 ; =FreeToHeap - bx r3 - .balign 4, 0 -_021F5B38: .word FreeToHeap - - thumb_func_start MOD05_021F5B3C -MOD05_021F5B3C: ; 0x021F5B3C - ldr r3, [r0, #8] - ldr r0, [r0, #0x14] - cmp r3, #0 - beq _021F5B56 -_021F5B44: - ldr r2, [r0] - cmp r2, #0 - beq _021F5B50 - ldr r2, [r0, #4] - cmp r2, r1 - beq _021F5B58 -_021F5B50: - add r0, #8 - sub r3, r3, #1 - bne _021F5B44 -_021F5B56: - mov r0, #0 -_021F5B58: - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F5B5C -MOD05_021F5B5C: ; 0x021F5B5C - ldr r2, [r0, #8] - ldr r0, [r0, #0x14] - cmp r2, #0 - beq _021F5B70 -_021F5B64: - ldr r1, [r0] - cmp r1, #0 - beq _021F5B72 - add r0, #8 - sub r2, r2, #1 - bne _021F5B64 -_021F5B70: - mov r0, #0 -_021F5B72: - bx lr - - thumb_func_start MOD05_021F5B74 -MOD05_021F5B74: ; 0x021F5B74 - ldr r3, [r0, #8] - ldr r0, [r0, #0x14] - cmp r3, #0 - beq _021F5B88 -_021F5B7C: - ldr r2, [r0] - cmp r2, r1 - beq _021F5B8A - add r0, #8 - sub r3, r3, #1 - bne _021F5B7C -_021F5B88: - mov r0, #0 -_021F5B8A: - bx lr - - thumb_func_start MOD05_021F5B8C -MOD05_021F5B8C: ; 0x021F5B8C - str r2, [r0] - str r1, [r0, #4] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021F5B94 -MOD05_021F5B94: ; 0x021F5B94 - mov r1, #0 - str r1, [r0] - str r1, [r0, #4] - bx lr - - thumb_func_start MOD05_021F5B9C -MOD05_021F5B9C: ; 0x021F5B9C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x28 - add r5, r0, #0 - ldr r0, [r5, #0xc] - bl FUN_02050DF0 - add r7, r0, #0 - beq _021F5C40 - bl MOD18_0223E2C4 - add r6, r0, #0 - bl MOD18_0223E2DC - lsl r1, r6, #0x15 - lsl r0, r0, #0x15 - mov r4, #0 - str r1, [sp, #0xc] - str r0, [sp, #8] -_021F5BC0: - add r0, r7, #0 - add r1, r4, #0 - bl FUN_020267C4 - add r6, r0, #0 - bl FUN_0204CA80 - str r0, [sp, #0x10] - add r0, r6, #0 - bl FUN_0204CA90 - str r0, [sp, #0x14] - cmp r6, #0 - beq _021F5C3A - add r0, r7, #0 - add r1, r4, #0 - bl FUN_02026810 - str r0, [sp, #0x18] - add r0, r7, #0 - add r1, r4, #0 - bl FUN_02026840 - mov r2, #1 - ldr r1, [sp, #0x18] - lsl r2, r2, #0xc - str r2, [sp, #0x20] - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - ldr r2, [sp, #0xc] - str r1, [sp, #0x1c] - add r1, r1, r2 - ldr r2, [sp, #8] - str r0, [sp, #0x24] - add r0, r0, r2 - ldr r2, [sp, #0x10] - str r1, [sp, #0x1c] - lsl r2, r2, #0xf - add r1, r1, r2 - str r1, [sp, #0x1c] - ldr r1, [sp, #0x14] - str r0, [sp, #0x24] - lsl r1, r1, #0xf - add r0, r0, r1 - str r0, [sp, #0x24] - ldr r0, [r5, #0x2c] - add r1, r6, #0 - bl MOD05_021F4CD4 - add r2, r0, #0 - mov r0, #0 - str r0, [sp] - ldr r0, [r5, #0x4c] - add r3, sp, #0x1c - str r0, [sp, #4] - add r0, r5, #0 - add r0, #0xa0 - ldr r0, [r0] - ldr r1, [r5, #0x2c] - bl MOD05_021E7FBC -_021F5C3A: - add r4, r4, #1 - cmp r4, #0x20 - blt _021F5BC0 -_021F5C40: - add sp, #0x28 - pop {r3, r4, r5, r6, r7, pc} - - - thumb_func_start MOD05_021F5C44 -MOD05_021F5C44: ; 0x021F5C44 - push {r3, r4, r5, lr} - add r0, r1, #0 - mov r1, #0x18 - add r5, r2, #0 - bl AllocFromHeapAtEnd - add r4, r0, #0 - add r2, r4, #0 - mov r1, #0x18 - mov r0, #0 -_021F5C58: - strb r0, [r2] - add r2, r2, #1 - sub r1, r1, #1 - bne _021F5C58 - add r0, r5, #0 - str r5, [r4, #0xc] - bl MOD05_021F61B0 - str r0, [r4, #4] - add r0, r4, #0 - pop {r3, r4, r5, pc} - .align 2, 0 - - thumb_func_start MOD05_021F5C70 -MOD05_021F5C70: ; 0x021F5C70 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - bl FUN_02046528 - add r4, r0, #0 - add r0, r6, #0 - bl FUN_0204652C - add r5, r0, #0 - ldr r0, [r5] - cmp r0, #0 - beq _021F5C8E - cmp r0, #1 - beq _021F5CBA - b _021F5D28 -_021F5C8E: - ldr r0, [r4, #0x34] - bl FUN_02058780 - mov r0, #0 - str r0, [r5, #0x10] - add r2, r5, #0 - ldr r1, [r5, #0xc] - add r0, r4, #0 - add r2, #0x10 - bl MOD06_0223BD14 - str r0, [r5, #8] - ldr r1, [r5, #0xc] - ldr r2, [r5, #8] - add r0, r4, #0 - bl MOD05_021F5D2C - str r0, [r5, #0x14] - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _021F5D28 -_021F5CBA: - ldr r0, [r5, #0x14] - bl MOD05_021F5D50 - cmp r0, #1 - bne _021F5D28 - ldr r0, [r5, #0x14] - bl MOD05_021F5D5C - add r7, r0, #0 - ldr r0, [r5, #0x14] - bl MOD05_021F5D68 - cmp r7, #1 - ldr r0, [r5, #0x10] - bne _021F5D10 - ldr r0, [r0, #8] - mov r1, #0 - bl GetPartyMonByIndex - ldr r2, [r5, #4] - add r3, r0, #0 - lsl r2, r2, #0x10 - add r0, r4, #0 - mov r1, #1 - lsr r2, r2, #0x10 - bl FUN_02061208 - ldr r0, [r4, #0xc] - bl FUN_02029FC8 - mov r1, #0xa - bl FUN_0202A0E8 - ldr r2, [r5, #0x10] - add r0, r4, #0 - add r1, r6, #0 - bl FUN_02046A20 - add r0, r5, #0 - bl FreeToHeap - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021F5D10: - cmp r0, #0 - beq _021F5D18 - bl FUN_02047964 -_021F5D18: - ldr r0, [r4, #0x34] - bl FUN_020587B0 - add r0, r5, #0 - bl FreeToHeap - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F5D28: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021F5D2C -MOD05_021F5D2C: ; 0x021F5D2C - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r0, #0x4c - add r4, r1, #0 - add r6, r2, #0 - bl MOD05_021F6074 - add r1, r0, #0 - str r5, [r1, #0x20] - str r4, [r1, #0x1c] - ldr r0, _021F5D4C ; =MOD05_021F5D7C - mov r2, #0x80 - str r6, [r1] - bl FUN_0200CA44 - pop {r4, r5, r6, pc} - .align 2, 0 -_021F5D4C: .word MOD05_021F5D7C - - thumb_func_start MOD05_021F5D50 -MOD05_021F5D50: ; 0x021F5D50 - push {r3, lr} - bl FUN_0201B6C8 - ldr r0, [r0, #4] - pop {r3, pc} - .align 2, 0 - - thumb_func_start MOD05_021F5D5C -MOD05_021F5D5C: ; 0x021F5D5C - push {r3, lr} - bl FUN_0201B6C8 - ldr r0, [r0, #8] - pop {r3, pc} - .align 2, 0 - - thumb_func_start MOD05_021F5D68 -MOD05_021F5D68: ; 0x021F5D68 - push {r4, lr} - add r4, r0, #0 - bl FUN_0201B6C8 - bl FreeToHeap - add r0, r4, #0 - bl FUN_0200CAB4 - pop {r4, pc} - - thumb_func_start MOD05_021F5D7C -MOD05_021F5D7C: ; 0x021F5D7C - push {r3, r4, r5, r6, r7, lr} - add r5, r1, #0 - ldr r0, [r5, #0x20] - ldr r6, [r0, #0x38] - add r0, r6, #0 - bl FUN_020553A0 - ldr r7, _021F5DA4 ; =UNK05_021FC9B8 - add r4, r0, #0 -_021F5D8E: - ldr r3, [r5, #0xc] - add r0, r5, #0 - lsl r3, r3, #2 - ldr r3, [r7, r3] - add r1, r6, #0 - add r2, r4, #0 - blx r3 - cmp r0, #0 - bne _021F5D8E - pop {r3, r4, r5, r6, r7, pc} - nop -_021F5DA4: .word UNK05_021FC9B8 - - thumb_func_start MOD05_021F5DA8 -MOD05_021F5DA8: ; 0x021F5DA8 - push {r3, r4, r5, lr} - add r4, r2, #0 - add r5, r0, #0 - bl MOD05_021F60C4 - add r0, r4, #0 - bl FUN_02058914 - mov r0, #1 - str r0, [r5, #0xc] - pop {r3, r4, r5, pc} - .align 2, 0 - - thumb_func_start MOD05_021F5DC0 -MOD05_021F5DC0: ; 0x021F5DC0 - push {r4, r5, r6, lr} - add r6, r2, #0 - add r5, r0, #0 - add r0, r6, #0 - add r4, r1, #0 - bl FUN_0205AD98 - cmp r0, #1 - bne _021F5DF2 - add r0, r6, #0 - bl FUN_0205AE50 - add r0, r4, #0 - mov r1, #0x20 - bl MOD05_021E5FD8 - add r0, r4, #0 - bl MOD05_021E5FE0 - add r0, r6, #0 - mov r1, #1 - bl FUN_02058544 - mov r0, #2 - str r0, [r5, #0xc] -_021F5DF2: - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start MOD05_021F5DF8 -MOD05_021F5DF8: ; 0x021F5DF8 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x10] - add r0, r0, #1 - str r0, [r4, #0x10] - cmp r0, #0xa - bne _021F5E0E - mov r0, #0x65 - lsl r0, r0, #4 - bl PlaySE -_021F5E0E: - ldr r0, [r4, #0x10] - cmp r0, #0x22 - bge _021F5E18 - mov r0, #0 - pop {r4, pc} -_021F5E18: - ldr r0, [r4] - cmp r0, #1 - bne _021F5E22 - mov r0, #3 - b _021F5E24 -_021F5E22: - mov r0, #0xc -_021F5E24: - str r0, [r4, #0xc] - mov r0, #0 - str r0, [r4, #0x10] - mov r0, #1 - pop {r4, pc} - .align 2, 0 - - thumb_func_start MOD05_021F5E30 -MOD05_021F5E30: ; 0x021F5E30 - push {r4, lr} - add r4, r0, #0 - bl LCRandom - lsr r1, r0, #0x1f - lsl r0, r0, #0x1e - sub r0, r0, r1 - mov r2, #0x1e - ror r0, r2 - add r0, r1, r0 - add r0, r0, #1 - add r1, r0, #0 - mul r1, r2 - str r1, [r4, #0x14] - ldr r0, [r4, #0x1c] - lsl r1, r0, #2 - ldr r0, _021F5E60 ; =UNK05_021FC9AC - ldr r0, [r0, r1] - str r0, [r4, #0x18] - mov r0, #4 - str r0, [r4, #0xc] - mov r0, #1 - pop {r4, pc} - nop -_021F5E60: .word UNK05_021FC9AC - - thumb_func_start MOD05_021F5E64 -MOD05_021F5E64: ; 0x021F5E64 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5, #0x14] - add r4, r2, #0 - sub r0, r0, #1 - str r0, [r5, #0x14] - bl MOD05_021F6098 - cmp r0, #1 - bne _021F5E80 - mov r0, #0xa - str r0, [r5, #0xc] - mov r0, #1 - pop {r3, r4, r5, pc} -_021F5E80: - ldr r0, [r5, #0x14] - cmp r0, #0 - ble _021F5E8A - mov r0, #0 - pop {r3, r4, r5, pc} -_021F5E8A: - add r0, r4, #0 - mov r1, #2 - bl FUN_02058544 - add r0, r4, #0 - mov r1, #0 - mov r2, #1 - bl MOD05_021E7AC0 - str r0, [r5, #0x24] - mov r0, #5 - str r0, [r5, #0xc] - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 - - thumb_func_start MOD05_021F5EA8 -MOD05_021F5EA8: ; 0x021F5EA8 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x18] - sub r0, r0, #1 - str r0, [r4, #0x18] - bl MOD05_021F6098 - cmp r0, #1 - bne _021F5EC2 - mov r0, #6 - str r0, [r4, #0xc] - mov r0, #1 - pop {r4, pc} -_021F5EC2: - ldr r0, [r4, #0x18] - cmp r0, #0 - ble _021F5ECC - mov r0, #0 - pop {r4, pc} -_021F5ECC: - mov r0, #0xb - str r0, [r4, #0xc] - mov r0, #0 - pop {r4, pc} - - thumb_func_start MOD05_021F5ED4 -MOD05_021F5ED4: ; 0x021F5ED4 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5, #0x24] - add r4, r2, #0 - bl FUN_02064520 - mov r0, #0 - str r0, [r5, #0x24] - add r0, r4, #0 - mov r1, #3 - bl FUN_02058544 - mov r0, #0 - str r0, [r5, #0x10] - mov r1, #7 - str r1, [r5, #0xc] - pop {r3, r4, r5, pc} - .align 2, 0 - - thumb_func_start MOD05_021F5EF8 -MOD05_021F5EF8: ; 0x021F5EF8 - push {r3, lr} - ldr r1, [r0, #0x10] - add r1, r1, #1 - str r1, [r0, #0x10] - cmp r1, #0xf - ble _021F5F12 - mov r1, #0 - str r1, [r0, #0x10] - mov r1, #8 - str r1, [r0, #0xc] - mov r1, #0x39 - bl MOD05_021F6140 -_021F5F12: - mov r0, #0 - pop {r3, pc} - .align 2, 0 - - thumb_func_start MOD05_021F5F18 -MOD05_021F5F18: ; 0x021F5F18 - push {r4, lr} - add r4, r0, #0 - bl MOD05_021F617C - cmp r0, #0 - bne _021F5F28 - mov r0, #0 - pop {r4, pc} -_021F5F28: - mov r0, #9 - str r0, [r4, #0xc] - mov r0, #1 - pop {r4, pc} - - thumb_func_start MOD05_021F5F30 -MOD05_021F5F30: ; 0x021F5F30 - mov r2, #1 - str r2, [r0, #8] - mov r1, #0xf - str r1, [r0, #0xc] - add r0, r2, #0 - bx lr - - thumb_func_start MOD05_021F5F3C -MOD05_021F5F3C: ; 0x021F5F3C - push {r4, lr} - add r4, r0, #0 - add r0, r2, #0 - mov r1, #0 - bl FUN_02058544 - add r0, r4, #0 - mov r1, #0x38 - bl MOD05_021F6140 - mov r0, #0x10 - str r0, [r4, #0x10] - mov r0, #0xe - str r0, [r4, #0xc] - mov r0, #1 - pop {r4, pc} - - thumb_func_start MOD05_021F5F5C -MOD05_021F5F5C: ; 0x021F5F5C - push {r4, lr} - add r4, r0, #0 - add r0, r2, #0 - mov r1, #0 - bl FUN_02058544 - add r0, r4, #0 - mov r1, #0x37 - bl MOD05_021F6140 - mov r0, #0x10 - str r0, [r4, #0x10] - mov r0, #0xe - str r0, [r4, #0xc] - ldr r0, [r4, #0x20] - ldr r0, [r0, #0xc] - bl FUN_02029FC8 - mov r1, #0x49 - bl FUN_0202A0E8 - ldr r0, [r4, #0x1c] - bl MOD05_021F61B0 - add r2, r0, #0 - mov r1, #0 - ldr r0, [r4, #0x20] - add r3, r1, #0 - bl FUN_02061208 - mov r0, #1 - pop {r4, pc} - - thumb_func_start MOD05_021F5F9C -MOD05_021F5F9C: ; 0x021F5F9C - mov r1, #0x78 - str r1, [r0, #0x10] - mov r1, #0xd - str r1, [r0, #0xc] - mov r0, #1 - bx lr - - thumb_func_start MOD05_021F5FA8 -MOD05_021F5FA8: ; 0x021F5FA8 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5, #0x10] - add r4, r2, #0 - sub r0, r0, #1 - str r0, [r5, #0x10] - bl MOD05_021F6098 - cmp r0, #1 - bne _021F5FC4 - mov r0, #0xa - str r0, [r5, #0xc] - mov r0, #1 - pop {r3, r4, r5, pc} -_021F5FC4: - ldr r0, [r5, #0x10] - cmp r0, #0 - beq _021F5FCE - mov r0, #0 - pop {r3, r4, r5, pc} -_021F5FCE: - add r0, r4, #0 - mov r1, #0 - bl FUN_02058544 - add r0, r5, #0 - mov r1, #0x36 - bl MOD05_021F6140 - mov r0, #0x10 - str r0, [r5, #0x10] - mov r0, #0xe - str r0, [r5, #0xc] - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 - - thumb_func_start MOD05_021F5FEC -MOD05_021F5FEC: ; 0x021F5FEC - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4, #0x10] - add r1, r1, #1 - str r1, [r4, #0x10] - cmp r1, #0x10 - bge _021F5FFE - mov r0, #0 - pop {r4, pc} -_021F5FFE: - mov r1, #0x10 - str r1, [r4, #0x10] - bl MOD05_021F617C - cmp r0, #0 - bne _021F600E - mov r0, #0 - pop {r4, pc} -_021F600E: - mov r0, #0xf - str r0, [r4, #0xc] - mov r0, #1 - pop {r4, pc} - .align 2, 0 - - thumb_func_start MOD05_021F6018 -MOD05_021F6018: ; 0x021F6018 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5, #0x24] - add r4, r1, #0 - cmp r0, #0 - beq _021F602C - bl FUN_02064520 - mov r0, #0 - str r0, [r5, #0x24] -_021F602C: - add r0, r5, #0 - bl MOD05_021F60FC - add r0, r4, #0 - bl FUN_020553C4 - bl FUN_02055648 - add r1, r0, #0 - add r0, r4, #0 - bl MOD05_021E5FD8 - add r0, r4, #0 - bl MOD05_021E5FE0 - mov r0, #0 - str r0, [r5, #0x10] - mov r0, #0x10 - str r0, [r5, #0xc] - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 - - thumb_func_start MOD05_021F6058 -MOD05_021F6058: ; 0x021F6058 - ldr r1, [r0, #0x10] - add r1, r1, #1 - str r1, [r0, #0x10] - cmp r1, #2 - ble _021F6066 - mov r1, #0x11 - str r1, [r0, #0xc] -_021F6066: - mov r0, #0 - bx lr - .align 2, 0 - - thumb_func_start MOD05_021F606C -MOD05_021F606C: ; 0x021F606C - mov r1, #1 - str r1, [r0, #4] - mov r0, #0 - bx lr - - thumb_func_start MOD05_021F6074 -MOD05_021F6074: ; 0x021F6074 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #4 - add r1, r5, #0 - bl AllocFromHeapAtEnd - add r4, r0, #0 - bne _021F6088 - bl GF_AssertFail -_021F6088: - add r0, r4, #0 - mov r1, #0 - add r2, r5, #0 - bl memset - add r0, r4, #0 - pop {r3, r4, r5, pc} - .align 2, 0 - - thumb_func_start MOD05_021F6098 -MOD05_021F6098: ; 0x021F6098 - ldr r0, _021F60A8 ; =gMain - ldr r1, [r0, #0x48] - mov r0, #1 - tst r1, r0 - bne _021F60A4 - mov r0, #0 -_021F60A4: - bx lr - nop -_021F60A8: .word gMain - - thumb_func_start MOD05_021F60AC -MOD05_021F60AC: ; 0x021F60AC - ldr r0, _021F60C0 ; =gMain - ldr r1, [r0, #0x48] - mov r0, #3 - tst r0, r1 - beq _021F60BA - mov r0, #1 - bx lr -_021F60BA: - mov r0, #0 - bx lr - nop -_021F60C0: .word gMain - - thumb_func_start MOD05_021F60C4 -MOD05_021F60C4: ; 0x021F60C4 - push {r4, lr} - add r4, r0, #0 - mov r0, #1 - mov r1, #0x1a - mov r2, #0xc7 - mov r3, #4 - bl NewMsgDataFromNarc - str r0, [r4, #0x48] - mov r0, #1 - lsl r0, r0, #0xa - mov r1, #4 - bl String_ctor - str r0, [r4, #0x2c] - mov r0, #1 - lsl r0, r0, #0xa - mov r1, #4 - bl String_ctor - str r0, [r4, #0x30] - mov r0, #8 - mov r1, #0x40 - mov r2, #4 - bl ScrStrBufs_new_custom - str r0, [r4, #0x34] - pop {r4, pc} - - thumb_func_start MOD05_021F60FC -MOD05_021F60FC: ; 0x021F60FC - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x34] - bl ScrStrBufs_delete - ldr r0, [r4, #0x2c] - bl String_dtor - ldr r0, [r4, #0x30] - bl String_dtor - ldr r0, [r4, #0x48] - bl DestroyMsgData - pop {r4, pc} - .align 2, 0 - - thumb_func_start MOD05_021F611C -MOD05_021F611C: ; 0x021F611C - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r4, [r5, #0x20] - add r1, r5, #0 - ldr r0, [r4, #8] - add r1, #0x38 - mov r2, #3 - bl FUN_020545B8 - ldr r0, [r4, #0xc] - bl Sav2_PlayerData_GetOptionsAddr - add r5, #0x38 - add r1, r0, #0 - add r0, r5, #0 - bl FUN_02054608 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021F6140 -MOD05_021F6140: ; 0x021F6140 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r6, r1, #0 - bl MOD05_021F611C - ldr r0, [r5, #0x48] - ldr r2, [r5, #0x30] - add r1, r6, #0 - ldr r4, [r5, #0x20] - bl ReadMsgDataIntoString - ldr r0, [r5, #0x34] - ldr r1, [r5, #0x2c] - ldr r2, [r5, #0x30] - bl StringExpandPlaceholders - ldr r0, [r4, #0xc] - bl Sav2_PlayerData_GetOptionsAddr - add r2, r0, #0 - add r0, r5, #0 - ldr r1, [r5, #0x2c] - add r0, #0x38 - mov r3, #1 - bl FUN_02054658 - add r5, #0x28 - strb r0, [r5] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start MOD05_021F617C -MOD05_021F617C: ; 0x021F617C - push {r4, lr} - add r4, r0, #0 - add r0, #0x28 - ldrb r0, [r0] - bl FUN_020546C8 - cmp r0, #1 - bne _021F61AA - bl MOD05_021F60AC - cmp r0, #1 - bne _021F61AA - add r0, r4, #0 - add r0, #0x38 - mov r1, #0 - bl FUN_0200D0E0 - add r4, #0x38 - add r0, r4, #0 - bl RemoveWindow - mov r0, #1 - pop {r4, pc} -_021F61AA: - mov r0, #0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start MOD05_021F61B0 -MOD05_021F61B0: ; 0x021F61B0 - push {r3, lr} - cmp r0, #0 - beq _021F61C2 - cmp r0, #1 - beq _021F61C6 - cmp r0, #2 - beq _021F61CA - bl GF_AssertFail -_021F61C2: - ldr r0, _021F61D0 ; =0x000001BD - pop {r3, pc} -_021F61C6: - ldr r0, _021F61D4 ; =0x000001BE - pop {r3, pc} -_021F61CA: - ldr r0, _021F61D8 ; =0x000001BF - pop {r3, pc} - nop -_021F61D0: .word 0x000001BD -_021F61D4: .word 0x000001BE -_021F61D8: .word 0x000001BF - - thumb_func_start MOD05_021F61DC -MOD05_021F61DC: ; 0x021F61DC - lsl r1, r0, #2 - ldr r0, _021F61E4 ; =UNK05_021FCA00 - ldrh r0, [r0, r1] - bx lr - .align 2, 0 -_021F61E4: .word UNK05_021FCA00 - - thumb_func_start MOD05_021F61E8 -MOD05_021F61E8: ; 0x021F61E8 - lsl r1, r0, #2 - ldr r0, _021F61F0 ; =UNK05_021FCA00 + 2 - ldrh r0, [r0, r1] - bx lr - .align 2, 0 -_021F61F0: .word UNK05_021FCA00 + 2 - - thumb_func_start MOD05_021F61F4 -MOD05_021F61F4: ; 0x021F61F4 - push {r4, r5, r6, lr} - add r6, r1, #0 - add r5, r0, #0 - add r0, r6, #0 - mov r1, #0x34 - bl AllocFromHeapAtEnd - add r4, r0, #0 - mov r1, #0 - mov r2, #0x34 - bl memset - str r6, [r4] - mov r0, #0 - str r0, [r4, #0xc] - str r5, [r4, #0x2c] - ldr r0, [r5, #0x20] - str r0, [r4, #0x30] - bl Camera_GetDistance - str r0, [r4, #0x10] - str r0, [r4, #0x20] - ldr r0, _021F622C ; =MOD05_021F6270 - ldr r2, _021F6230 ; =0x0000FFFF - add r1, r4, #0 - bl FUN_0200CA44 - pop {r4, r5, r6, pc} - .align 2, 0 -_021F622C: .word MOD05_021F6270 -_021F6230: .word 0x0000FFFF - - thumb_func_start MOD05_021F6234 -MOD05_021F6234: ; 0x021F6234 - push {r3, lr} - bl FUN_0201B6C8 - ldr r0, [r0, #8] - pop {r3, pc} - .align 2, 0 - - thumb_func_start MOD05_021F6240 -MOD05_021F6240: ; 0x021F6240 - push {r4, lr} - add r4, r0, #0 - bl FUN_0201B6C8 - bl FreeToHeap - add r0, r4, #0 - bl FUN_0200CAB4 - pop {r4, pc} - - thumb_func_start MOD05_021F6254 -MOD05_021F6254: ; 0x021F6254 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r4, r2, #0 - add r6, r3, #0 - bl FUN_0201B6C8 - mov r1, #0 - str r1, [r0, #4] - str r1, [r0, #8] - str r5, [r0, #0xc] - str r4, [r0, #0x14] - str r6, [r0, #0x1c] - str r1, [r0, #0x24] - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021F6270 -MOD05_021F6270: ; 0x021F6270 - push {r3, lr} - add r0, r1, #0 - ldr r1, [r1, #0xc] - lsl r2, r1, #2 - ldr r1, _021F6280 ; =UNK05_021FD1B8 - ldr r1, [r1, r2] - blx r1 - pop {r3, pc} - .align 2, 0 -_021F6280: .word UNK05_021FD1B8 - - thumb_func_start MOD05_021F6284 -MOD05_021F6284: ; 0x021F6284 - mov r1, #1 - str r1, [r0, #8] - bx lr - .align 2, 0 - - thumb_func_start MOD05_021F628C -MOD05_021F628C: ; 0x021F628C - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4, #4] - cmp r1, #0 - beq _021F629C - cmp r1, #1 - beq _021F62A6 - pop {r4, pc} -_021F629C: - bl MOD05_021F630C - ldr r0, [r4, #4] - add r0, r0, #1 - str r0, [r4, #4] -_021F62A6: - add r0, r4, #0 - bl MOD05_021F633C - cmp r0, #1 - bne _021F62BA - ldr r0, [r4, #4] - add r0, r0, #1 - str r0, [r4, #4] - mov r0, #1 - str r0, [r4, #8] -_021F62BA: - add r0, r4, #0 - bl MOD05_021F62FC - pop {r4, pc} - .align 2, 0 - - thumb_func_start MOD05_021F62C4 -MOD05_021F62C4: ; 0x021F62C4 - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4, #4] - cmp r1, #0 - beq _021F62D4 - cmp r1, #1 - beq _021F62DE - pop {r4, pc} -_021F62D4: - bl MOD05_021F6324 - ldr r0, [r4, #4] - add r0, r0, #1 - str r0, [r4, #4] -_021F62DE: - add r0, r4, #0 - bl MOD05_021F633C - cmp r0, #1 - bne _021F62F2 - ldr r0, [r4, #4] - add r0, r0, #1 - str r0, [r4, #4] - mov r0, #1 - str r0, [r4, #8] -_021F62F2: - add r0, r4, #0 - bl MOD05_021F62FC - pop {r4, pc} - .align 2, 0 - - thumb_func_start MOD05_021F62FC -MOD05_021F62FC: ; 0x021F62FC - ldr r3, _021F6308 ; =FUN_0201EFE0 - add r1, r0, #0 - ldr r0, [r1, #0x20] - ldr r1, [r1, #0x30] - bx r3 - nop -_021F6308: .word Camera_SetDistance - - thumb_func_start MOD05_021F630C -MOD05_021F630C: ; 0x021F630C - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x1c] - bl _s32_div_f - str r0, [r4, #0x28] - ldr r1, [r4, #0x20] - ldr r0, [r4, #0x14] - add r0, r1, r0 - str r0, [r4, #0x18] - pop {r4, pc} - - thumb_func_start MOD05_021F6324 -MOD05_021F6324: ; 0x021F6324 - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4, #0x10] - ldr r0, [r4, #0x20] - sub r0, r1, r0 - ldr r1, [r4, #0x1c] - bl _s32_div_f - str r0, [r4, #0x28] - ldr r0, [r4, #0x10] - str r0, [r4, #0x18] - pop {r4, pc} - - thumb_func_start MOD05_021F633C -MOD05_021F633C: ; 0x021F633C - ldr r2, [r0, #0x20] - ldr r1, [r0, #0x28] - add r1, r2, r1 - str r1, [r0, #0x20] - ldr r1, [r0, #0x24] - add r2, r1, #1 - str r2, [r0, #0x24] - ldr r1, [r0, #0x1c] - cmp r2, r1 - blo _021F635A - str r1, [r0, #0x24] - ldr r1, [r0, #0x18] - str r1, [r0, #0x20] - mov r0, #1 - bx lr -_021F635A: - mov r0, #0 - bx lr - .align 2, 0 - - thumb_func_start MOD05_021F6360 -MOD05_021F6360: ; 0x021F6360 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - bl FUN_02046528 - str r0, [sp] - add r0, r7, #0 - bl FUN_0204652C - add r6, r0, #0 - add r0, r7, #0 - bl FUN_02046530 - add r4, r0, #0 - ldr r0, [r4] - ldr r5, [r6, #4] - cmp r0, #5 - bhi _021F6424 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021F638E: ; jump table - .short _021F639A - _021F638E - 2 ; case 0 - .short _021F63AC - _021F638E - 2 ; case 1 - .short _021F63CC - _021F638E - 2 ; case 2 - .short _021F63EA - _021F638E - 2 ; case 3 - .short _021F6402 - _021F638E - 2 ; case 4 - .short _021F6414 - _021F638E - 2 ; case 5 -_021F639A: - mov r0, #0xb - mov r1, #8 - bl AllocFromHeapAtEnd - str r0, [r6, #4] - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021F6424 -_021F63AC: - bl MOD05_021F57EC - add r6, r0, #0 - mov r0, #0xb - add r1, r6, #0 - bl AllocFromHeapAtEnd - str r0, [r5, #4] - mov r1, #0 - add r2, r6, #0 - bl memset - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021F6424 -_021F63CC: - ldr r0, [sp] - ldr r0, [r0, #0x38] - bl FUN_020553E8 - add r3, r0, #0 - ldr r0, [sp] - ldr r2, [r6] - mov r1, #0 - bl MOD06_0224666C - str r0, [r5] - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021F6424 -_021F63EA: - ldr r0, [r5] - bl MOD06_022466A0 - cmp r0, #0 - beq _021F6424 - ldr r0, [r5] - bl MOD06_022466AC - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021F6424 -_021F6402: - ldr r1, _021F6428 ; =MOD05_021F57F0 - ldr r2, [r5, #4] - add r0, r7, #0 - bl FUN_0204640C - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021F6424 -_021F6414: - add r0, r5, #0 - bl FreeToHeap - add r0, r6, #0 - bl FreeToHeap - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021F6424: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_021F6428: .word MOD05_021F57F0 - - .section .rodata - - .global UNK05_021F78E4 -UNK05_021F78E4: ; 0x021F78E4 - .byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00 - - .global UNK05_021F7910 -UNK05_021F7910: ; 0x021F7910 - .byte 0xDC, 0x05, 0x00, 0x00, 0x0F, 0x41, 0x0E, 0x00 - - .global UNK05_021F7918 -UNK05_021F7918: ; 0x021F7918 - .byte 0xDC, 0x05, 0x00, 0x00 - .byte 0x0F, 0x42, 0x12, 0x00 - - .global UNK05_021F7920 -UNK05_021F7920: ; 0x021F7920 - .byte 0xDC, 0x05, 0x00, 0x00, 0x0F, 0x43, 0x13, 0x00 - - .global UNK05_021F7928 -UNK05_021F7928: ; 0x021F7928 - .byte 0xDC, 0x05, 0x00, 0x00 - .byte 0x0F, 0x44, 0x14, 0x00 - - .global UNK05_021F7930 -UNK05_021F7930: ; 0x021F7930 - .byte 0xB8, 0x0B, 0x00, 0x00, 0x1E, 0x45, 0x15, 0x00 - - .global UNK05_021F7938 -UNK05_021F7938: ; 0x021F7938 - .byte 0x00, 0x00, 0x0B, 0x00 - .byte 0x3E, 0x00, 0x01, 0x00 - - .global UNK05_021F7940 -UNK05_021F7940: ; 0x021F7940 - .byte 0x00, 0x00, 0x0B, 0x00, 0x4A, 0x00, 0x01, 0x00 - - .global UNK05_021F7948 -UNK05_021F7948: ; 0x021F7948 - .byte 0x00, 0x00, 0x0C, 0x00 - .byte 0x4B, 0x00, 0x00, 0x00 - - .global UNK05_021F7950 -UNK05_021F7950: ; 0x021F7950 - .byte 0x00, 0x00, 0x0B, 0x00, 0x4C, 0x00, 0x01, 0x00 - - .global UNK05_021F7958 -UNK05_021F7958: ; 0x021F7958 - .byte 0x00, 0x00, 0x0C, 0x00 - .byte 0x4D, 0x00, 0x01, 0x00 - - .global UNK05_021F7960 -UNK05_021F7960: ; 0x021F7960 - .byte 0x00, 0x00, 0x0B, 0x00, 0x4E, 0x00, 0x01, 0x00 - - .global UNK05_021F7968 -UNK05_021F7968: ; 0x021F7968 - .byte 0x00, 0x00, 0x0B, 0x00 - .byte 0x40, 0x00, 0x01, 0x00 - - .global UNK05_021F7970 -UNK05_021F7970: ; 0x021F7970 - .byte 0x00, 0x00, 0x0B, 0x00, 0x4F, 0x00, 0x01, 0x00 - - .global UNK05_021F7978 -UNK05_021F7978: ; 0x021F7978 - .byte 0xC1, 0xAE, 0x29, 0x00 - .byte 0x02, 0xD6, 0x00, 0x00, 0xC1, 0x05 - - .global UNK05_021F7982 -UNK05_021F7982: ; 0x021F7982 - .byte 0x04, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xCF, 0x00, 0xFF - .byte 0x01, 0x06, 0x04, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE6, 0x00, 0x10, 0x91, 0x06, 0x04, 0x00 - .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x0A, 0x11, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00 - .byte 0x02, 0xE1, 0x00, 0xF0, 0x80, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xC6, 0x00, 0x00 - .byte 0x51, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xF0, 0x00, 0x08, 0x03, 0x00 - .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x00, 0x02, 0x08, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00 - .byte 0x02, 0xD0, 0x00, 0x10, 0x00, 0x08, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD9, 0x00, 0xF5 - .byte 0x51, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD0, 0x00, 0x0A, 0xC1, 0x04, 0x02, 0x00 - .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xF0, 0xC1, 0x03, 0x02, 0x00, 0xC1, 0xAE, 0x29, 0x00 - .byte 0x02, 0xD0, 0x00, 0xF0, 0x50, 0x06, 0x01, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xA0 - .byte 0x41, 0x02, 0x01, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0xA2, 0xE1, 0x00, 0x05, 0x00, 0x05, 0x01, 0x00 - .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x00, 0x41, 0x02, 0x01, 0x00 - - .global UNK05_021F7A38 -UNK05_021F7A38: ; 0x021F7A38 - .byte 0x00, 0x40, 0x10, 0x00 - - .global UNK05_021F7A3C -UNK05_021F7A3C: ; 0x021F7A3C - .byte 0x00, 0x00, 0x08, 0x00 - - .global UNK05_021F7A40 -UNK05_021F7A40: ; 0x021F7A40 - .byte 0x00, 0x20, 0xFE, 0xFF - - .global UNK05_021F7A44 -UNK05_021F7A44: ; 0x021F7A44 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021F7A48 -UNK05_021F7A48: ; 0x021F7A48 - .byte 0x00, 0x40, 0x06, 0x00 - - .global UNK05_021F7A4C -UNK05_021F7A4C: ; 0x021F7A4C - .byte 0x00, 0x40, 0x01, 0x00 - - .global UNK05_021F7A50 -UNK05_021F7A50: ; 0x021F7A50 - .byte 0x04, 0x00, 0x00, 0x00 - - .global UNK05_021F7A54 -UNK05_021F7A54: ; 0x021F7A54 - .byte 0xFE, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF - .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00 - .byte 0x00, 0xC0, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x40, 0x06, 0x00 - .byte 0x00, 0x40, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x00, 0xC0, 0x08, 0x00 - .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x60, 0xFF, 0xFF, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00 - .byte 0x00, 0xC0, 0xFE, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0x00, 0x40, 0x10, 0x00 - .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x00, 0x00, 0x05, 0x00, 0x00, 0x40, 0x06, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00 - .byte 0x00, 0xC0, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 - - .global UNK05_021F7AF8 -UNK05_021F7AF8: ; 0x021F7AF8 - .byte 0x70, 0x00, 0xD6, 0x00 - .byte 0x2F, 0x01, 0x91, 0x01, 0xF5, 0x01, 0x63, 0x02, 0xC3, 0x02, 0x35, 0x03, 0xA0, 0x03, 0x07, 0x04 - .byte 0x61, 0x04, 0xC8, 0x04, 0xC9, 0x04 - - .global UNK05_021F7B12 -UNK05_021F7B12: ; 0x021F7B12 - .byte 0x68, 0x01 - - .global UNK05_021F7B14 -UNK05_021F7B14: ; 0x021F7B14 - .byte 0xFF, 0x00 - - .global UNK05_021F7B16 -UNK05_021F7B16: ; 0x021F7B16 - .byte 0xCA, 0x00, 0x2A, 0x01, 0xFE, 0x00 - .byte 0xB7, 0x00, 0xB7, 0x01, 0x3A, 0x01, 0x7A, 0x00, 0xB6, 0x01, 0x3B, 0x01, 0xB9, 0x00, 0xBE, 0x01 - .byte 0x3C, 0x01, 0x8F, 0x00, 0xCA, 0x01, 0x3D, 0x01, 0xE2, 0x00, 0x96, 0x01, 0x3E, 0x01, 0x3B, 0x01 - .byte 0xB8, 0x01, 0x3F, 0x01, 0x71, 0x00, 0xB1, 0x01, 0x40, 0x01, 0x66, 0x01 - - .global UNK05_021F7B48 -UNK05_021F7B48: ; 0x021F7B48 - .byte 0x21, 0x4E, 0x71, 0x00 - .byte 0x82, 0x00, 0xDB, 0x00, 0xCC, 0x00, 0x50, 0x00, 0x59, 0x01, 0x40, 0x01, 0xAE, 0x00, 0x13, 0x01 - .byte 0x0B, 0x01, 0x85, 0x00, 0xB5, 0x01, 0x24, 0x4E, 0xBB, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x00 - .byte 0xC8, 0x00, 0xFB, 0x00, 0x0E, 0x00, 0x5D, 0x01, 0xF2, 0x00, 0x97, 0x01, 0xE8, 0x00, 0x8A, 0x01 - .byte 0x27, 0x4E, 0xF3, 0x00, 0x72, 0x00, 0x36, 0x00, 0xC1, 0x00, 0xAF, 0x00, 0x1F, 0x01, 0x2C, 0x01 - .byte 0x19, 0x01, 0x4A, 0x01, 0xFC, 0x00, 0x88, 0x01, 0xC5, 0x01, 0x30, 0x4E, 0xE4, 0x00, 0xB9, 0x00 - .byte 0xC1, 0x00, 0xD3, 0x00, 0x3A, 0x01, 0x93, 0x01, 0x9D, 0x01, 0xFD, 0x00, 0x33, 0x4E, 0x67, 0x00 - .byte 0xAC, 0x00, 0x9A, 0x00, 0x2C, 0x00, 0x44, 0x00, 0xB3, 0x00, 0xFD, 0x00, 0xCF, 0x00, 0x83, 0x01 - .byte 0x7E, 0x01, 0x35, 0x4E, 0xB9, 0x00, 0xCE, 0x00, 0xB8, 0x00, 0x62, 0x00, 0xA1, 0x00, 0x36, 0x01 - .byte 0x8F, 0x00, 0x12, 0x00, 0xFD, 0x00, 0x37, 0x4E, 0xE4, 0x00, 0x15, 0x00, 0xB4, 0x00, 0xFB, 0x00 - .byte 0x31, 0x01, 0xB8, 0x00, 0x56, 0x01, 0x32, 0x00, 0x3B, 0x4E, 0xAF, 0x00, 0xDB, 0x00, 0x44, 0x00 - .byte 0xE5, 0x00, 0x9D, 0x00, 0xE8, 0x00, 0x0E, 0x00, 0x32, 0x01, 0x90, 0x01, 0x3D, 0x4E, 0x30, 0x00 - .byte 0x32, 0x00, 0x24, 0x00, 0x74, 0x00, 0xCC, 0x00, 0x44, 0x00, 0xFB, 0x00, 0xE4, 0x00, 0x40, 0x4E - .byte 0x44, 0x00, 0x32, 0x00, 0x30, 0x00, 0x24, 0x00, 0x85, 0x00, 0x5D, 0x00, 0xFB, 0x00, 0x85, 0x01 - .byte 0x45, 0x4E, 0xB9, 0x00, 0x5F, 0x00, 0xAF, 0x00, 0xB4, 0x00, 0x32, 0x00, 0x50, 0x01, 0xF4, 0x00 - .byte 0x01, 0x01, 0x8A, 0x01, 0x46, 0x01, 0x9C, 0x01, 0x49, 0x4E, 0x62, 0x00, 0xE4, 0x00, 0xB9, 0x00 - .byte 0x10, 0x00, 0x12, 0x00, 0xAE, 0x00, 0xA1, 0x01, 0x5F, 0x00, 0xAC, 0x01, 0x9D, 0x01, 0x4B, 0x4E - .byte 0x0E, 0x00, 0x4B, 0x00, 0xAF, 0x00, 0xEB, 0x00, 0xCC, 0x00, 0x13, 0x01, 0x41, 0x01, 0x4E, 0x4E - .byte 0xCE, 0x00, 0x67, 0x00, 0x44, 0x00, 0x3C, 0x00, 0xAF, 0x00, 0xE6, 0x00, 0x71, 0x00, 0xE4, 0x00 - .byte 0xE8, 0x00, 0xC2, 0x01, 0xB8, 0x01, 0x50, 0x4E, 0xE2, 0x00, 0x67, 0x00, 0xCA, 0x00, 0x44, 0x01 - .byte 0x61, 0x00, 0xEA, 0x00, 0x86, 0x01, 0xC2, 0x01, 0x52, 0x4E, 0xB9, 0x00, 0x67, 0x00, 0xF6, 0x00 - .byte 0xE4, 0x00, 0xFB, 0x00, 0xFD, 0x00, 0x9D, 0x00, 0xAA, 0x01, 0x36, 0x01, 0x54, 0x4E, 0xB4, 0x00 - .byte 0xCC, 0x00, 0x5F, 0x00, 0x85, 0x00, 0xF4, 0x00, 0x12, 0x01, 0x3C, 0x01, 0xAF, 0x00, 0x83, 0x01 - .byte 0x82, 0x01, 0x56, 0x4E, 0x5F, 0x00, 0x3C, 0x00, 0xC1, 0x00, 0x71, 0x00, 0xF8, 0x00, 0x5E, 0x00 - .byte 0xEE, 0x00, 0x1F, 0x01, 0x6D, 0x00, 0x19, 0x01, 0xAA, 0x01, 0x58, 0x4E, 0x9D, 0x00, 0xC1, 0x00 - .byte 0x60, 0x00, 0x44, 0x00, 0xB3, 0x00, 0xFB, 0x00, 0x17, 0x01, 0x09, 0x01, 0x72, 0x01, 0x5A, 0x4E - .byte 0x22, 0x00, 0xDB, 0x00, 0xF2, 0x00, 0x25, 0x00, 0x53, 0x00, 0x50, 0x01, 0x01, 0x01, 0x26, 0x00 - .byte 0x8A, 0x01, 0x5C, 0x4E, 0x36, 0x00, 0x96, 0x00, 0x3D, 0x00, 0x72, 0x00, 0xAA, 0x00, 0x5A, 0x01 - .byte 0x2D, 0x01, 0x55, 0x01, 0x1F, 0x01, 0x1B, 0x01, 0x5F, 0x4E, 0xE3, 0x00, 0x70, 0x00, 0x1A, 0x01 - .byte 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0x7B, 0x01, 0x81, 0x01, 0x62, 0x4E, 0x71, 0x00, 0x60, 0x00 - .byte 0x1B, 0x00, 0xE3, 0x00, 0x09, 0x01, 0x44, 0x00, 0x9D, 0x00, 0x72, 0x01, 0x07, 0x00, 0x09, 0x00 - .byte 0x08, 0x00, 0xA2, 0x01, 0x65, 0x4E, 0x0E, 0x00, 0xE3, 0x00, 0x73, 0x00, 0xEB, 0x00, 0x8D, 0x00 - .byte 0x13, 0x01, 0x59, 0x01, 0x84, 0x01, 0x41, 0x01, 0x68, 0x4E, 0x3E, 0x00, 0xF3, 0x00, 0xE5, 0x00 - .byte 0x72, 0x00, 0xDB, 0x00, 0x6D, 0x00, 0x1A, 0x01, 0x6F, 0x01, 0x6A, 0x4E, 0x05, 0x00, 0x9D, 0x00 - .byte 0x4F, 0x01, 0x67, 0x01, 0xAF, 0x00, 0x6D, 0x4E, 0xAC, 0x00, 0x25, 0x00, 0x18, 0x00, 0x5F, 0x00 - .byte 0xCC, 0x00, 0x26, 0x00, 0x20, 0x00, 0x6F, 0x4E, 0xDB, 0x00, 0xBB, 0x00, 0xF8, 0x00, 0x17, 0x00 - .byte 0x2C, 0x01, 0xD6, 0x00, 0xAD, 0x00, 0x7E, 0x01, 0x4F, 0x01, 0xAC, 0x01, 0x73, 0x4E, 0xD3, 0x00 - .byte 0xC1, 0x00, 0x77, 0x00, 0x10, 0x00, 0x62, 0x00, 0xAF, 0x00, 0x29, 0x01, 0xAE, 0x00, 0x57, 0x01 - .byte 0xBD, 0x00, 0x90, 0x01, 0x74, 0x4E, 0x62, 0x00, 0x30, 0x00, 0x72, 0x00, 0xB9, 0x00, 0xAF, 0x00 - .byte 0x1B, 0x01, 0x77, 0x00, 0x9D, 0x01, 0x76, 0x4E, 0x7A, 0x00, 0xC3, 0x00, 0x32, 0x00, 0x20, 0x00 - .byte 0x15, 0x00, 0xE3, 0x00, 0xFC, 0x00, 0x4D, 0x01, 0x44, 0x01, 0x78, 0x4E, 0x72, 0x00, 0xD4, 0x00 - .byte 0x7A, 0x00, 0x1E, 0x01, 0xAE, 0x00, 0x45, 0x01, 0x99, 0x00, 0xA9, 0x01, 0xFE, 0x00, 0x00, 0x01 - .byte 0xFF, 0x00, 0x7A, 0x4E, 0x3D, 0x00, 0x24, 0x00, 0x70, 0x00, 0xE5, 0x00, 0x67, 0x00, 0x4D, 0x01 - .byte 0x55, 0x01, 0x7C, 0x4E, 0x95, 0x00, 0xC3, 0x00, 0x72, 0x00, 0x36, 0x01, 0x05, 0x01, 0x20, 0x01 - .byte 0x99, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x7F, 0x4E, 0x9D, 0x00, 0xAF, 0x00, 0x99, 0x00 - .byte 0x4F, 0x01, 0x6F, 0x00, 0xCD, 0x00, 0x5E, 0x01, 0x80, 0x4E, 0x70, 0x00, 0x12, 0x01, 0x10, 0x01 - .byte 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0xA1, 0x01, 0x04, 0x01, 0xAB, 0x01, 0x82, 0x4E, 0x5B, 0x00 - .byte 0x72, 0x00, 0x85, 0x00, 0xAF, 0x00, 0x15, 0x00, 0x1A, 0x01, 0x0E, 0x00, 0x41, 0x01, 0xF6, 0x00 - .byte 0x86, 0x4E, 0xEB, 0x00, 0xEC, 0x00, 0x73, 0x00, 0xF6, 0x00, 0xF4, 0x00, 0x13, 0x01, 0xAE, 0x00 - .byte 0x0B, 0x01, 0x7D, 0x01, 0xB5, 0x01, 0x88, 0x4E, 0x9D, 0x00, 0xF6, 0x00, 0xBB, 0x00, 0x67, 0x00 - .byte 0x82, 0x00, 0xC3, 0x00, 0x0E, 0x00, 0x18, 0x00, 0xBA, 0x01, 0x8C, 0x4E, 0xBB, 0x00, 0xDE, 0x00 - .byte 0x22, 0x00, 0xAE, 0x00, 0x09, 0x01, 0xD6, 0x00, 0xAD, 0x00, 0xA4, 0x00, 0x85, 0x00, 0x67, 0x01 - .byte 0x8D, 0x4E, 0x67, 0x00, 0x95, 0x00, 0x3C, 0x00, 0xC2, 0x00, 0xDC, 0x00, 0x05, 0x01, 0x20, 0x01 - .byte 0xB4, 0x00, 0xAE, 0x00, 0x8F, 0x4E, 0xF2, 0x00, 0xB3, 0x00, 0x9D, 0x00, 0x44, 0x00, 0xDE, 0x00 - .byte 0x0E, 0x00, 0xAE, 0x00, 0x32, 0x01, 0x97, 0x01, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x91, 0x4E - .byte 0xD9, 0x00, 0x76, 0x00, 0xD7, 0x00, 0x38, 0x01, 0xA4, 0x00, 0x44, 0x00, 0x0E, 0x01, 0x64, 0x01 - .byte 0x92, 0x4E, 0xAF, 0x00, 0x5D, 0x00, 0x48, 0x00, 0x73, 0x00, 0x85, 0x00, 0x49, 0x00, 0x0B, 0x01 - .byte 0x1B, 0x01, 0xB5, 0x01, 0x93, 0x4E, 0x17, 0x00, 0xC1, 0x00, 0x74, 0x00, 0xDB, 0x00, 0x32, 0x00 - .byte 0x44, 0x00, 0x32, 0x01, 0xA4, 0x00, 0x26, 0x00, 0x1B, 0x01, 0x67, 0x01, 0x94, 0x4E, 0xAF, 0x00 - .byte 0x3E, 0x00, 0xBE, 0x00, 0x32, 0x00, 0x96, 0x00, 0x52, 0x00, 0xE1, 0x00, 0x44, 0x01, 0x96, 0x4E - .byte 0x3C, 0x00, 0x72, 0x00, 0x38, 0x00, 0xD6, 0x00, 0x2C, 0x01, 0xBD, 0x00, 0x91, 0x01, 0x9A, 0x4E - .byte 0xF8, 0x00, 0x5F, 0x00, 0x66, 0x00, 0xF4, 0x00, 0xFC, 0x00, 0x0F, 0x01, 0x6D, 0x00, 0x66, 0x01 - .byte 0x2A, 0x01, 0x9B, 0x4E, 0x44, 0x00, 0xDB, 0x00, 0xE2, 0x00, 0x0D, 0x00, 0xB3, 0x00, 0x71, 0x00 - .byte 0xCB, 0x00, 0x3E, 0x01, 0x95, 0x01, 0x90, 0x01, 0x9F, 0x4E, 0x1F, 0x00, 0xAF, 0x00, 0xCE, 0x00 - .byte 0xB9, 0x00, 0x62, 0x00, 0x72, 0x01, 0x6C, 0x01, 0xA3, 0x4E, 0xC1, 0x00, 0xA4, 0x00, 0x41, 0x01 - .byte 0x1F, 0x01, 0x5D, 0x01, 0xAE, 0x00, 0xD6, 0x00, 0x20, 0x00, 0xF6, 0x00, 0xFA, 0x00, 0x5A, 0x00 - .byte 0xA5, 0x4E, 0xCC, 0x00, 0xAF, 0x00, 0xCB, 0x00, 0xAE, 0x00, 0x41, 0x01, 0x11, 0x01, 0x19, 0x01 - .byte 0x39, 0x01, 0x57, 0x01, 0xAA, 0x4E, 0x3D, 0x00, 0x3E, 0x00, 0x15, 0x00, 0x30, 0x00, 0x72, 0x00 - .byte 0x9D, 0x00, 0xBF, 0x00, 0x1A, 0x01, 0x7A, 0x01, 0x86, 0x01, 0xAC, 0x4E, 0x3D, 0x00, 0x3E, 0x00 - .byte 0xE5, 0x00, 0x5B, 0x00, 0xAF, 0x00, 0x1A, 0x01, 0x6D, 0x00, 0x55, 0x01, 0xC4, 0x00, 0x67, 0x00 - .byte 0xAE, 0x4E, 0x12, 0x00, 0xE4, 0x00, 0xC1, 0x00, 0xD3, 0x00, 0xE1, 0x00, 0xAE, 0x00, 0x74, 0x01 - .byte 0xAF, 0x4E, 0x7A, 0x00, 0xCC, 0x00, 0x26, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0xA4, 0x00, 0x12, 0x00 - .byte 0xE4, 0x00, 0xB3, 0x4E, 0x71, 0x00, 0x36, 0x00, 0x72, 0x00, 0x30, 0x00, 0xE1, 0x00, 0x5D, 0x01 - .byte 0x97, 0x01, 0xB8, 0x4E, 0x16, 0x00, 0x49, 0x00, 0x44, 0x00, 0xF6, 0x00, 0xAF, 0x00, 0x0B, 0x01 - .byte 0x13, 0x01, 0x40, 0x01, 0xB5, 0x01, 0x38, 0x01, 0x7A, 0x01, 0xBB, 0x4E, 0x9A, 0x00, 0x62, 0x00 - .byte 0xB3, 0x00, 0x25, 0x00, 0xC1, 0x00, 0x57, 0x01, 0x50, 0x01, 0x32, 0x01, 0x26, 0x00, 0x18, 0x00 - .byte 0x8A, 0x01, 0xBE, 0x4E, 0xF2, 0x00, 0x25, 0x00, 0x38, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x01 - .byte 0x5A, 0x01, 0x51, 0x01, 0x08, 0x00, 0xE8, 0x00, 0x5D, 0x01, 0xC1, 0x4E, 0x26, 0x00, 0xE4, 0x00 - .byte 0xA3, 0x00, 0x74, 0x00, 0xB3, 0x00, 0xA4, 0x00, 0x0F, 0x01, 0x12, 0x01, 0x83, 0x01, 0xCC, 0x00 - .byte 0x57, 0x01, 0xC3, 0x4E, 0x77, 0x00, 0x30, 0x00, 0xB9, 0x00, 0x11, 0x00, 0x12, 0x00, 0x8F, 0x00 - .byte 0x29, 0x01, 0x61, 0x00, 0x65, 0x00, 0xC5, 0x4E, 0x3C, 0x00, 0x75, 0x00, 0x3E, 0x01, 0x95, 0x01 - .byte 0x67, 0x00, 0xE3, 0x00, 0x1A, 0x01, 0xC2, 0x01, 0xC7, 0x4E, 0x3C, 0x00, 0x32, 0x00, 0x31, 0x00 - .byte 0xE2, 0x00, 0xE4, 0x00, 0x44, 0x01, 0x86, 0x01, 0x8E, 0x01, 0xCA, 0x4E, 0xAF, 0x00, 0x67, 0x00 - .byte 0x85, 0x00, 0x3C, 0x00, 0xFA, 0x00, 0x61, 0x00, 0x36, 0x00, 0xCC, 0x4E, 0xB3, 0x00, 0x75, 0x00 - .byte 0xD9, 0x00, 0xE3, 0x00, 0x03, 0x00, 0x11, 0x01, 0x0C, 0x01, 0xFC, 0x00, 0x09, 0x00, 0x41, 0x01 - .byte 0xCD, 0x4E, 0xD9, 0x00, 0x76, 0x00, 0x85, 0x00, 0xBB, 0x00, 0x96, 0x00, 0x66, 0x00, 0x11, 0x01 - .byte 0xA4, 0x00, 0x39, 0x01, 0x57, 0x01, 0xCE, 0x4E, 0xC3, 0x00, 0xD9, 0x00, 0xB9, 0x00, 0x11, 0x01 - .byte 0x39, 0x01, 0x83, 0x01, 0x57, 0x01, 0x64, 0x01, 0xCF, 0x4E, 0xD9, 0x00, 0x77, 0x00, 0x40, 0x00 - .byte 0xC1, 0x00, 0xF8, 0x00, 0xA4, 0x00, 0xF4, 0x00, 0xA1, 0x01, 0x77, 0x01, 0x7D, 0x01, 0xD1, 0x4E - .byte 0x72, 0x00, 0x41, 0x00, 0x62, 0x00, 0xB9, 0x00, 0xD3, 0x00, 0xF4, 0x00, 0x29, 0x01, 0x1F, 0x01 - .byte 0xAC, 0x01, 0x85, 0x01, 0xD3, 0x4E, 0x24, 0x00, 0x22, 0x00, 0xDB, 0x00, 0x67, 0x00, 0x73, 0x00 - .byte 0x3C, 0x01, 0x0C, 0x01, 0x04, 0x01, 0x1C, 0x00, 0xD7, 0x4E, 0x71, 0x00, 0xD9, 0x00, 0x85, 0x00 - .byte 0xF8, 0x00, 0xBB, 0x00, 0xC3, 0x00, 0x30, 0x00, 0xA4, 0x00, 0xC5, 0x01, 0x14, 0x01, 0x1F, 0x01 - .byte 0xD9, 0x4E, 0x78, 0x00, 0x1D, 0x00, 0x6A, 0x00, 0x6F, 0x00, 0xCD, 0x00, 0x48, 0x01, 0xDB, 0x4E - .byte 0x5D, 0x00, 0xE3, 0x00, 0x26, 0x00, 0x73, 0x00, 0x85, 0x00, 0x0E, 0x01, 0xF4, 0x00, 0x38, 0x01 - .byte 0x84, 0x01, 0xDE, 0x4E, 0x44, 0x00, 0x67, 0x00, 0xE4, 0x00, 0x61, 0x00, 0xB4, 0x00, 0x15, 0x00 - .byte 0x03, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0x57, 0x01, 0x54, 0x01, 0xDF, 0x4E, 0x40, 0x01, 0xE3, 0x00 - .byte 0x49, 0x00, 0x0B, 0x01, 0xAE, 0x00, 0x0E, 0x01, 0x13, 0x01, 0xE6, 0x00, 0xE1, 0x4E, 0x12, 0x00 - .byte 0xB3, 0x00, 0x8D, 0x00, 0x44, 0x01, 0x3E, 0x01, 0x6C, 0x01, 0xB9, 0x00, 0xE4, 0x00, 0xE2, 0x4E - .byte 0x22, 0x00, 0xF6, 0x00, 0xDB, 0x00, 0xAE, 0x00, 0x2C, 0x01, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00 - .byte 0x44, 0x00, 0xE3, 0x00, 0x18, 0x00, 0xE6, 0x4E, 0x12, 0x00, 0x41, 0x00, 0x77, 0x00, 0x11, 0x00 - .byte 0x8F, 0x00, 0x6D, 0x00, 0x29, 0x01, 0xC3, 0x00, 0x77, 0x01, 0x67, 0x00, 0xB9, 0x00, 0xE8, 0x4E - .byte 0x67, 0x00, 0xC2, 0x00, 0xF4, 0x00, 0x1E, 0x01, 0x06, 0x01, 0x85, 0x01, 0xA9, 0x01, 0xAE, 0x00 - .byte 0xB4, 0x00, 0xD2, 0x01, 0xEB, 0x4E, 0x24, 0x00, 0x85, 0x00, 0xC1, 0x00, 0xF8, 0x00, 0xFB, 0x00 - .byte 0xF4, 0x00, 0x11, 0x01, 0x15, 0x01, 0x18, 0x00, 0xF3, 0x00, 0xEC, 0x4E, 0x73, 0x00, 0x2A, 0x00 - .byte 0xAF, 0x00, 0x81, 0x00, 0x44, 0x00, 0x48, 0x01, 0x17, 0x01, 0x26, 0x00, 0x86, 0x01, 0xEE, 0x4E - .byte 0x75, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x00, 0x1D, 0x00, 0x36, 0x01, 0xAE, 0x00, 0x78, 0x01 - .byte 0x15, 0x01, 0xAD, 0x00, 0xEF, 0x4E, 0xE8, 0x00, 0x11, 0x00, 0x0D, 0x00, 0x44, 0x00, 0x48, 0x01 - .byte 0x61, 0x00, 0xE2, 0x00, 0x26, 0x00, 0x6C, 0x01, 0x90, 0x01, 0xB8, 0x01, 0xF1, 0x4E, 0x76, 0x00 - .byte 0xB9, 0x00, 0x73, 0x00, 0xD9, 0x00, 0xF2, 0x00, 0xD7, 0x00, 0xAD, 0x00, 0x09, 0x01, 0x72, 0x01 - .byte 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0xF3, 0x4E, 0xAF, 0x00, 0x72, 0x00, 0x3D, 0x00, 0x30, 0x00 - .byte 0x36, 0x01, 0x44, 0x01, 0x8E, 0x01, 0xF5, 0x4E, 0xE6, 0x00, 0x1A, 0x01, 0x0E, 0x01, 0x6F, 0x01 - .byte 0x48, 0x01, 0xBD, 0x00, 0xF6, 0x4E, 0x6A, 0x00, 0x75, 0x00, 0xAF, 0x00, 0xCE, 0x00, 0x17, 0x01 - .byte 0xE4, 0x00, 0x26, 0x00, 0xF7, 0x4E, 0x44, 0x00, 0xB4, 0x00, 0xC1, 0x00, 0x73, 0x00, 0x2C, 0x00 - .byte 0x32, 0x01, 0xFC, 0x00, 0xCA, 0x01, 0x82, 0x01, 0xE4, 0x00, 0xA4, 0x01, 0x08, 0x00, 0xF8, 0x4E - .byte 0xF2, 0x00, 0x24, 0x00, 0x45, 0x00, 0x44, 0x00, 0xE8, 0x00, 0x39, 0x01, 0x19, 0x01, 0xD6, 0x00 - .byte 0xEE, 0x00, 0x26, 0x00, 0x72, 0x01, 0x90, 0x01, 0xFA, 0x4E, 0x97, 0x00, 0x01, 0x01, 0xAE, 0x00 - .byte 0x6C, 0x00, 0x06, 0x01, 0xFE, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFC, 0x4E, 0x24, 0x00, 0x2C, 0x00 - .byte 0x22, 0x00, 0x9D, 0x00, 0xF6, 0x00, 0x55, 0x01, 0x4D, 0x01, 0x26, 0x00, 0x5A, 0x00, 0xAE, 0x00 - .byte 0xFE, 0x4E, 0x9D, 0x00, 0x67, 0x00, 0x36, 0x00, 0x85, 0x00, 0x70, 0x00, 0x13, 0x01, 0x6D, 0x00 - .byte 0x4D, 0x01, 0x0B, 0x01, 0x88, 0x01, 0xFF, 0x4E, 0x3E, 0x00, 0xBE, 0x00, 0x30, 0x00, 0x72, 0x00 - .byte 0x67, 0x00, 0x56, 0x00, 0x5E, 0x01, 0xAD, 0x00, 0xAF, 0x00, 0x01, 0x4F, 0x3E, 0x00, 0x62, 0x00 - .byte 0xF8, 0x00, 0x96, 0x00, 0xE5, 0x00, 0x2D, 0x01, 0xA4, 0x01, 0x08, 0x00, 0x02, 0x4F, 0xEF, 0x00 - .byte 0x38, 0x00, 0x72, 0x00, 0x15, 0x00, 0x2C, 0x01, 0x9D, 0x00, 0xF3, 0x00, 0x5A, 0x01, 0x96, 0x00 - .byte 0x03, 0x4F, 0x41, 0x00, 0xE4, 0x00, 0x12, 0x00, 0x8F, 0x00, 0xAE, 0x00, 0x9D, 0x01, 0x74, 0x01 - .byte 0x04, 0x4F, 0x53, 0x00, 0x63, 0x00, 0xE4, 0x00, 0x44, 0x00, 0xB4, 0x00, 0xB3, 0x00, 0xFB, 0x00 - .byte 0x05, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0xA1, 0x01, 0x82, 0x01, 0x07, 0x4F, 0x74, 0x00, 0x22, 0x00 - .byte 0xF6, 0x00, 0xAD, 0x00, 0x44, 0x00, 0x5A, 0x00, 0x1B, 0x01, 0xA4, 0x01, 0x0A, 0x4F, 0xB4, 0x00 - .byte 0x32, 0x00, 0x2C, 0x00, 0xCF, 0x00, 0xF4, 0x00, 0x46, 0x01, 0x25, 0x00, 0x18, 0x00, 0xAC, 0x01 - .byte 0x0C, 0x4F, 0xE5, 0x00, 0x88, 0x00, 0xB7, 0x00, 0xAA, 0x00, 0x0E, 0x01, 0x44, 0x00, 0x9A, 0x01 - .byte 0xA2, 0x01, 0x0E, 0x4F, 0x60, 0x00, 0xF4, 0x00, 0xFC, 0x00, 0x11, 0x01, 0x08, 0x00, 0x65, 0x01 - .byte 0x0F, 0x4F, 0x02, 0x00, 0x70, 0x00, 0x1B, 0x00, 0x60, 0x00, 0xEE, 0x00, 0x07, 0x00, 0x08, 0x00 - .byte 0xDF, 0x00, 0x10, 0x4F, 0x02, 0x00, 0x05, 0x00, 0x70, 0x00, 0x67, 0x00, 0xEE, 0x00, 0x09, 0x00 - .byte 0xB7, 0x00, 0xDF, 0x00, 0x8A, 0x01, 0x11, 0x4F, 0xD9, 0x00, 0xB3, 0x00, 0x45, 0x00, 0xCB, 0x00 - .byte 0xF4, 0x00, 0xAE, 0x00, 0x0E, 0x01, 0xD6, 0x00, 0x92, 0x00, 0x67, 0x01, 0x26, 0x00, 0x82, 0x01 - .byte 0x16, 0x4F, 0xE4, 0x00, 0x17, 0x00, 0xC8, 0x00, 0x74, 0x00, 0xF6, 0x00, 0x5D, 0x01, 0xAE, 0x00 - .byte 0x4E, 0x01, 0x74, 0x01, 0xBA, 0x01, 0x1C, 0x4F, 0xF2, 0x00, 0x2C, 0x01, 0x1B, 0x01, 0x49, 0x00 - .byte 0xE1, 0x00, 0x32, 0x01, 0x84, 0x01, 0x18, 0x00, 0x40, 0x01, 0xEB, 0x00, 0x59, 0x01, 0xB5, 0x01 - .byte 0x1F, 0x4F, 0x44, 0x00, 0xB3, 0x00, 0xCB, 0x00, 0xCF, 0x00, 0x9D, 0x00, 0x09, 0x01, 0x32, 0x01 - .byte 0xE2, 0x00, 0x61, 0x00, 0x90, 0x01, 0x83, 0x01, 0x6C, 0x01, 0x22, 0x4F, 0x1F, 0x01, 0xFD, 0x00 - .byte 0xAE, 0x00, 0x17, 0x00, 0x2D, 0x01, 0xF3, 0x00, 0x44, 0x00, 0xF6, 0x00, 0xFA, 0x00, 0x2C, 0x00 - .byte 0x26, 0x00, 0xAA, 0x01, 0x25, 0x4F, 0x36, 0x01, 0x31, 0x01, 0x57, 0x01, 0x2B, 0x00, 0x19, 0x01 - .byte 0x85, 0x01, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x7E, 0x01, 0x27, 0x4F, 0xCC, 0x00, 0xE4, 0x00 - .byte 0xA4, 0x00, 0x41, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0xBD, 0x00, 0x2E, 0x4F, 0xEB, 0x00, 0x4B, 0x00 - .byte 0xE6, 0x00, 0x49, 0x00, 0xAF, 0x00, 0x37, 0x00, 0x41, 0x01, 0x31, 0x4F, 0x49, 0x00, 0x85, 0x00 - .byte 0x62, 0x00, 0x0D, 0x00, 0x24, 0x00, 0xCE, 0x00, 0x84, 0x01, 0xA1, 0x01, 0x34, 0x4F, 0xE4, 0x00 - .byte 0x30, 0x00, 0x1F, 0x01, 0x77, 0x00, 0x63, 0x00, 0x8F, 0x00, 0x12, 0x00, 0x9D, 0x01, 0x36, 0x4F - .byte 0x36, 0x00, 0xEF, 0x00, 0x61, 0x00, 0x10, 0x00, 0x5A, 0x01, 0x88, 0x01, 0x1A, 0x01, 0x38, 0x4F - .byte 0x32, 0x00, 0x05, 0x01, 0xD4, 0x00, 0x06, 0x01, 0xC2, 0x00, 0x20, 0x01, 0xA9, 0x01, 0x6D, 0x00 - .byte 0x3B, 0x4F, 0xC1, 0x00, 0x55, 0x01, 0x3C, 0x00, 0x38, 0x00, 0xAA, 0x00, 0x44, 0x01, 0xC2, 0x01 - .byte 0x3D, 0x4F, 0x39, 0x01, 0xCF, 0x00, 0xCC, 0x00, 0xCE, 0x00, 0x0E, 0x01, 0x84, 0x01, 0x66, 0x01 - .byte 0x92, 0x01, 0x3F, 0x4F, 0xE4, 0x00, 0xA3, 0x00, 0x22, 0x00, 0xAD, 0x00, 0x32, 0x01, 0xAE, 0x00 - .byte 0xD6, 0x00, 0x67, 0x01, 0x90, 0x01, 0x42, 0x4F, 0xCB, 0x00, 0xB9, 0x00, 0x10, 0x00, 0x3E, 0x01 - .byte 0x95, 0x01, 0x90, 0x01, 0xC2, 0x01, 0x45, 0x4F, 0x24, 0x00, 0xAD, 0x00, 0xCF, 0x00, 0x46, 0x01 - .byte 0x09, 0x01, 0x6C, 0x00, 0x1B, 0x01, 0x48, 0x4F, 0xB9, 0x00, 0xC5, 0x00, 0xC1, 0x00, 0x0E, 0x01 - .byte 0xEE, 0x00, 0x17, 0x01, 0xDF, 0x00, 0x44, 0x00, 0x66, 0x01, 0xA2, 0x01, 0x4A, 0x4F, 0xE3, 0x00 - .byte 0x2F, 0x00, 0x1F, 0x01, 0x15, 0x00, 0x41, 0x01, 0x39, 0x01, 0x4B, 0x4F, 0xDE, 0x00, 0xCD, 0x00 - .byte 0x99, 0x00, 0x26, 0x00, 0x4F, 0x01, 0x4C, 0x4F, 0x0E, 0x01, 0xF4, 0x00, 0xFD, 0x00, 0x39, 0x01 - .byte 0x11, 0x01, 0xE2, 0x00, 0xA4, 0x00, 0x41, 0x01, 0x83, 0x01, 0xFC, 0x00, 0xAC, 0x01, 0x85, 0x01 - .byte 0x4E, 0x4F, 0xF4, 0x00, 0x69, 0x00, 0xEC, 0x00, 0xA1, 0x01, 0x04, 0x01, 0x4F, 0x4F, 0x0E, 0x00 - .byte 0xCE, 0x00, 0x31, 0x01, 0xF4, 0x00, 0xF6, 0x00, 0x41, 0x01, 0x85, 0x01, 0xA7, 0x01, 0xA8, 0x01 - .byte 0xA6, 0x01, 0x82, 0x01, 0x50, 0x4F, 0x1B, 0x01, 0x22, 0x00, 0x17, 0x00, 0x09, 0x01, 0xAE, 0x00 - .byte 0x67, 0x00, 0xBA, 0x01, 0x97, 0x01, 0x53, 0x4F, 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0xC1, 0x00 - .byte 0xFC, 0x00, 0xE2, 0x00, 0xDF, 0x00, 0x80, 0x01, 0x81, 0x01, 0xAB, 0x01, 0xA2, 0x01, 0x55, 0x4F - .byte 0xF2, 0x00, 0x1D, 0x00, 0xFD, 0x00, 0xAE, 0x00, 0x81, 0x00, 0xB3, 0x01, 0xA7, 0x01, 0xA8, 0x01 - .byte 0xA6, 0x01, 0x57, 0x4F, 0xA4, 0x00, 0x11, 0x01, 0x2F, 0x00, 0xBA, 0x00, 0x58, 0x4F, 0xA4, 0x00 - .byte 0x11, 0x01, 0x2F, 0x00, 0xBA, 0x00, 0x59, 0x4F, 0xE2, 0x00, 0x3E, 0x01, 0x0F, 0x01, 0xE3, 0x00 - .byte 0x95, 0x01, 0x5A, 0x4F, 0xE2, 0x00, 0x3E, 0x01, 0x4A, 0x00, 0xE3, 0x00, 0x95, 0x01, 0x5B, 0x4F - .byte 0xBF, 0x00, 0xEB, 0x00, 0x2A, 0x00, 0xB2, 0x00, 0x4F, 0x00, 0x4B, 0x00, 0xAA, 0x00, 0xB5, 0x01 - .byte 0x5C, 0x4F, 0x8A, 0x00, 0x97, 0x00, 0x7B, 0x00, 0xDC, 0x00, 0xAE, 0x00, 0xC2, 0x00, 0x5E, 0x4F - .byte 0x38, 0x00, 0x26, 0x00, 0x25, 0x00, 0xF6, 0x00, 0x60, 0x4F, 0x26, 0x00, 0x25, 0x00, 0xCF, 0x00 - .byte 0xAD, 0x00, 0xD6, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0x41, 0x01, 0x6F, 0x00, 0x22, 0x00, 0x62, 0x4F - .byte 0x50, 0x01, 0xB8, 0x00, 0x22, 0x00, 0xCD, 0x00, 0x6F, 0x00, 0x17, 0x00, 0x19, 0x01, 0xF6, 0x00 - .byte 0xAA, 0x01, 0x01, 0x01, 0x64, 0x4F, 0x1C, 0x01, 0xCB, 0x00, 0xD6, 0x00, 0x19, 0x01, 0x59, 0x00 - .byte 0x5A, 0x00, 0x65, 0x4F, 0xF8, 0x00, 0x46, 0x01, 0xA4, 0x00, 0x0F, 0x01, 0xAC, 0x01, 0x85, 0x00 - .byte 0xF3, 0x00, 0x67, 0x4F, 0xE3, 0x00, 0x9D, 0x00, 0x12, 0x01, 0x32, 0x00, 0xE2, 0x00, 0x11, 0x01 - .byte 0x0F, 0x01, 0x09, 0x01, 0xFC, 0x00, 0x10, 0x01, 0xAB, 0x01, 0x68, 0x4F, 0x74, 0x00, 0x62, 0x00 - .byte 0x10, 0x00, 0xAF, 0x00, 0xD2, 0x00, 0x6B, 0x4F, 0x40, 0x01, 0x33, 0x00, 0x2A, 0x01, 0xDF, 0x00 - .byte 0x44, 0x00, 0x43, 0x00, 0x09, 0x01, 0x59, 0x01, 0x92, 0x01, 0x6D, 0x4F, 0x61, 0x00, 0x72, 0x00 - .byte 0xE4, 0x00, 0x63, 0x00, 0x29, 0x01, 0x97, 0x01, 0x6F, 0x4F, 0xAF, 0x00, 0x18, 0x00, 0x0D, 0x00 - .byte 0x44, 0x00, 0x2E, 0x00, 0xAE, 0x00, 0x9A, 0x00, 0x90, 0x01, 0xE8, 0x00, 0xCA, 0x01, 0x70, 0x4F - .byte 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x22, 0x00, 0xB8, 0x00, 0x74, 0x01, 0x90, 0x01, 0x73, 0x4F - .byte 0x25, 0x00, 0xFA, 0x00, 0xD1, 0x00, 0x38, 0x00, 0xAF, 0x00, 0x24, 0x00, 0x75, 0x4F, 0x2C, 0x01 - .byte 0x1B, 0x01, 0x22, 0x00, 0xF6, 0x00, 0x1A, 0x01, 0x14, 0x01, 0xE8, 0x00, 0x79, 0x4F, 0x70, 0x00 - .byte 0x69, 0x00, 0xF3, 0x00, 0x9D, 0x00, 0x7A, 0x01, 0x41, 0x01, 0x7B, 0x4F, 0xE5, 0x00, 0x1A, 0x01 - .byte 0x0E, 0x00, 0x9D, 0x00, 0x67, 0x00, 0x1C, 0x00, 0xB8, 0x01, 0x7D, 0x4F, 0xF3, 0x00, 0xE1, 0x00 - .byte 0x2C, 0x01, 0x5F, 0x00, 0x71, 0x00, 0x6D, 0x00, 0x36, 0x00, 0x72, 0x00, 0x41, 0x01, 0x7F, 0x4F - .byte 0xF8, 0x00, 0xF4, 0x00, 0x7D, 0x01, 0x32, 0x00, 0x85, 0x00, 0xD2, 0x01, 0x80, 0x4F, 0x32, 0x00 - .byte 0x15, 0x01, 0x0F, 0x01, 0xFC, 0x00, 0xA1, 0x01, 0x92, 0x00, 0x81, 0x4F, 0x32, 0x00, 0xC2, 0x00 - .byte 0xC1, 0x00, 0x36, 0x01, 0x1E, 0x01, 0xE4, 0x00, 0xA9, 0x01, 0x73, 0x01, 0x6D, 0x00, 0x83, 0x4F - .byte 0x1E, 0x01, 0xC2, 0x00, 0xDC, 0x00, 0x20, 0x01, 0x06, 0x01, 0xB9, 0x00, 0xD2, 0x01, 0x85, 0x4F - .byte 0x1D, 0x00, 0x15, 0x00, 0x0D, 0x00, 0x49, 0x00, 0x0B, 0x01, 0xB5, 0x01, 0xEB, 0x00, 0xAE, 0x00 - .byte 0x5C, 0x01, 0x86, 0x4F, 0x32, 0x00, 0xAE, 0x00, 0x5F, 0x00, 0x8A, 0x00, 0x11, 0x01, 0xF8, 0x00 - .byte 0x87, 0x4F, 0xE2, 0x00, 0xB9, 0x00, 0x26, 0x00, 0x15, 0x01, 0xAE, 0x00, 0xA4, 0x00, 0xD4, 0x00 - .byte 0xAC, 0x01, 0x82, 0x01, 0x85, 0x01, 0x74, 0x01, 0x7E, 0x01, 0x89, 0x4F, 0x4F, 0x01, 0xBF, 0x00 - .byte 0xCD, 0x00, 0x32, 0x00, 0x75, 0x00, 0x8B, 0x4F, 0x5A, 0x01, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00 - .byte 0x19, 0x01, 0x9D, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0x44, 0x01, 0x8E, 0x4F, 0x1F, 0x01, 0x2C, 0x01 - .byte 0x22, 0x00, 0x30, 0x00, 0x70, 0x00, 0x6D, 0x00, 0x88, 0x01, 0x91, 0x4F, 0xDE, 0x00, 0x82, 0x00 - .byte 0x5A, 0x01, 0x85, 0x00, 0xD6, 0x00, 0x9D, 0x00, 0x91, 0x01, 0xAD, 0x00, 0xBD, 0x00, 0x92, 0x4F - .byte 0x96, 0x00, 0x30, 0x00, 0x5A, 0x01, 0x2C, 0x01, 0xBD, 0x01, 0x88, 0x01, 0x93, 0x4F, 0x38, 0x00 - .byte 0x25, 0x00, 0x52, 0x00, 0xEF, 0x00, 0x5D, 0x01, 0xA8, 0x01, 0xA5, 0x01, 0x97, 0x01, 0xA3, 0x4F - .byte 0x84, 0x01, 0x4A, 0x00, 0x41, 0x01, 0x22, 0x00, 0x26, 0x00, 0x48, 0x01, 0x92, 0x01, 0x25, 0x00 - .byte 0x85, 0x00, 0x14, 0x01, 0xA6, 0x4F, 0x07, 0x00, 0x09, 0x00, 0x18, 0x00, 0xE3, 0x00, 0x01, 0x01 - .byte 0x74, 0x00, 0x0E, 0x01, 0xFC, 0x00, 0x2B, 0x01, 0x44, 0x00, 0xA9, 0x4F, 0xCA, 0x01, 0x30, 0x00 - .byte 0x19, 0x01, 0x2C, 0x01, 0xBD, 0x00, 0xAD, 0x00, 0xAF, 0x00, 0x61, 0x00, 0x88, 0x01, 0x38, 0x00 - .byte 0xAC, 0x4F, 0x29, 0x01, 0x1F, 0x00, 0xE4, 0x00, 0x36, 0x01, 0x1C, 0x00, 0xC1, 0x00, 0x26, 0x00 - .byte 0xAF, 0x4F, 0x62, 0x00, 0x5A, 0x01, 0x26, 0x00, 0x9A, 0x00, 0x6F, 0x00, 0xCD, 0x00, 0x3C, 0x01 - .byte 0x91, 0x01, 0xB3, 0x4F, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x62, 0x00, 0x50, 0x01, 0x24, 0x00 - .byte 0xB6, 0x4F, 0xBF, 0x00, 0xEB, 0x00, 0x2A, 0x00, 0xB2, 0x00, 0x4F, 0x00, 0x4B, 0x00, 0xAA, 0x00 - .byte 0xB5, 0x01, 0x46, 0x01, 0xB8, 0x4F, 0xF2, 0x00, 0x25, 0x00, 0x26, 0x00, 0x2B, 0x00, 0x15, 0x00 - .byte 0x17, 0x00, 0x12, 0x00, 0x67, 0x01, 0xBA, 0x4F, 0x1D, 0x00, 0xB8, 0x00, 0x74, 0x00, 0x26, 0x00 - .byte 0x5E, 0x01, 0x22, 0x00, 0x67, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0xC1, 0x4F, 0x57, 0x01, 0x2C, 0x00 - .byte 0x39, 0x01, 0x6F, 0x00, 0xCD, 0x00, 0x04, 0x01, 0xAF, 0x00, 0xC2, 0x4F, 0xBD, 0x00, 0x1D, 0x00 - .byte 0x9A, 0x00, 0xA3, 0x00, 0x3C, 0x01, 0x03, 0x00, 0xD2, 0x00, 0xE2, 0x00, 0xC4, 0x4F, 0x4B, 0x00 - .byte 0xE6, 0x00, 0x41, 0x01, 0x0B, 0x01, 0x40, 0x01, 0x38, 0x01, 0xC6, 0x4F, 0x44, 0x00, 0xF3, 0x00 - .byte 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x19, 0x01, 0x06, 0x01, 0xAE, 0x00, 0x85, 0x00, 0x5A, 0x00 - .byte 0xC9, 0x4F, 0x06, 0x01, 0x22, 0x00, 0xC2, 0x00, 0x32, 0x00, 0x72, 0x00, 0x5F, 0x00, 0xCB, 0x4F - .byte 0x39, 0x01, 0xFC, 0x00, 0xE3, 0x00, 0xBA, 0x00, 0xCA, 0x01, 0xD5, 0x00, 0x43, 0x00, 0x47, 0x01 - .byte 0x9F, 0x01, 0x09, 0x00, 0x08, 0x00, 0x07, 0x00, 0xCF, 0x4F, 0x2C, 0x00, 0x27, 0x00, 0x62, 0x00 - .byte 0x1C, 0x00, 0x39, 0x01, 0x74, 0x01, 0xD1, 0x4F, 0x32, 0x00, 0xAE, 0x00, 0x5F, 0x00, 0x8A, 0x00 - .byte 0x11, 0x01, 0xF8, 0x00, 0x69, 0x00, 0xD2, 0x4F, 0xE4, 0x00, 0x2B, 0x00, 0x7B, 0x00, 0x26, 0x00 - .byte 0xF2, 0x00, 0xB8, 0x00, 0x36, 0x01, 0x82, 0x01, 0xD6, 0x4F, 0x78, 0x00, 0x1D, 0x00, 0x6A, 0x00 - .byte 0x6F, 0x00, 0xCD, 0x00, 0x48, 0x01, 0xD7, 0x4F, 0xF8, 0x00, 0x5F, 0x00, 0x66, 0x00, 0xF4, 0x00 - .byte 0xFC, 0x00, 0x0F, 0x01, 0x6D, 0x00, 0x66, 0x01, 0x2A, 0x01, 0x69, 0x01, 0xCC, 0x00, 0xD8, 0x4F - .byte 0xD9, 0x00, 0x76, 0x00, 0xD7, 0x00, 0x38, 0x01, 0xA4, 0x00, 0x44, 0x00, 0x0E, 0x01, 0x64, 0x01 - .byte 0x83, 0x01, 0xD9, 0x4F, 0xE3, 0x00, 0x65, 0x00, 0x61, 0x00, 0xA1, 0x01, 0x30, 0x00, 0xDA, 0x4F - .byte 0xC2, 0x00, 0xDC, 0x00, 0x6C, 0x00, 0x1E, 0x01, 0x20, 0x01, 0xA9, 0x01, 0xDB, 0x4F, 0xE1, 0x00 - .byte 0xC8, 0x00, 0xEF, 0x00, 0xB8, 0x00, 0x26, 0x00, 0x25, 0x00, 0xE8, 0x00, 0x48, 0x01, 0x22, 0x00 - .byte 0xBA, 0x01, 0xDE, 0x4F, 0x7A, 0x00, 0xCC, 0x00, 0x26, 0x00, 0xAE, 0x00, 0xA4, 0x00, 0x12, 0x00 - .byte 0xE4, 0x00, 0xAC, 0x01, 0xDF, 0x4F, 0xEE, 0x00, 0xC5, 0x00, 0x2C, 0x00, 0xAA, 0x00, 0x47, 0x01 - .byte 0x88, 0x00, 0x61, 0x00, 0x9A, 0x01, 0xF2, 0x00, 0x43, 0x00, 0x4E, 0x01, 0x2B, 0x01, 0xA2, 0x01 - .byte 0xE1, 0x4F, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0xAE, 0x00, 0x2F, 0x01, 0x22, 0x00, 0x48, 0x01 - .byte 0xE3, 0x4F, 0xB9, 0x00, 0x67, 0x00, 0x1C, 0x00, 0xA3, 0x00, 0x6D, 0x00, 0x12, 0x00, 0x61, 0x00 - .byte 0xE4, 0x00, 0x90, 0x01, 0xE5, 0x4F, 0x7E, 0x01, 0x6C, 0x01, 0xDF, 0x00, 0x1D, 0x00, 0x9A, 0x01 - .byte 0x60, 0x00, 0xFC, 0x00, 0x66, 0x01, 0x09, 0x01, 0xEE, 0x00, 0xA2, 0x01, 0xE7, 0x4F, 0x4F, 0x00 - .byte 0x4E, 0x00, 0x4B, 0x00, 0x15, 0x00, 0xEB, 0x00, 0x59, 0x01, 0x49, 0x00, 0x84, 0x01, 0xE8, 0x4F - .byte 0xBA, 0x00, 0xCC, 0x00, 0xAF, 0x00, 0x91, 0x01, 0x96, 0x00, 0x3C, 0x00, 0x41, 0x01, 0x61, 0x00 - .byte 0xEA, 0x4F, 0xEF, 0x00, 0x38, 0x00, 0x72, 0x00, 0x15, 0x00, 0x2C, 0x01, 0x9D, 0x00, 0xF3, 0x00 - .byte 0x5A, 0x01, 0x96, 0x00, 0x44, 0x01, 0xEB, 0x4F, 0x49, 0x00, 0x59, 0x01, 0x92, 0x01, 0x4A, 0x00 - .byte 0x26, 0x00, 0x36, 0x00, 0x17, 0x00, 0xFF, 0xFF - - .global UNK05_021F8A34 -UNK05_021F8A34: ; 0x021F8A34 - .word 0x00000024, MOD05_021EDA98, MOD05_021EDAE8, MOD05_021EDAF4 - .word MOD05_021EDB10 - - .global UNK05_021F8A48 -UNK05_021F8A48: ; 0x021F8A48 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8A60 -UNK05_021F8A60: ; 0x021F8A60 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - - .global UNK05_021F8A6C -UNK05_021F8A6C: ; 0x021F8A6C - .word 0x00000030, MOD05_021EDC14, MOD05_021EDC4C, MOD05_021EDC50 - .word MOD05_021EDCFC - - .global UNK05_021F8A80 -UNK05_021F8A80: ; 0x021F8A80 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - - .global UNK05_021F8AA4 -UNK05_021F8AA4: ; 0x021F8AA4 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021F8B04 -UNK05_021F8B04: ; 0x021F8B04 - .word MOD05_021EF16C, MOD05_021EE114 - - .global UNK05_021F8B0C -UNK05_021F8B0C: ; 0x021F8B0C - .word MOD05_021EF1FC, MOD05_021EE1E4 - - .global UNK05_021F8B14 -UNK05_021F8B14: ; 0x021F8B14 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00 - - .global UNK05_021F8B20 -UNK05_021F8B20: ; 0x021F8B20 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - - .global UNK05_021F8B44 -UNK05_021F8B44: ; 0x021F8B44 - .byte 0x03, 0x19, 0x0D, 0x06, 0x04, 0x0D, 0x15, 0x03 - - .global UNK05_021F8B4C -UNK05_021F8B4C: ; 0x021F8B4C - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x20, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021F8B6C -UNK05_021F8B6C: ; 0x021F8B6C - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF - - .global UNK05_021F8B78 -UNK05_021F8B78: ; 0x021F8B78 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021F8B84 -UNK05_021F8B84: ; 0x021F8B84 - .byte 0x07, 0x00, 0x00, 0x00 - - .global UNK05_021F8B88 -UNK05_021F8B88: ; 0x021F8B88 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xFF, 0xFF, 0x00, 0x00 - - .global UNK05_021F8B90 -UNK05_021F8B90: ; 0x021F8B90 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0xFF, 0xFF, 0x00, 0x00 - - .global UNK05_021F8BA0 -UNK05_021F8BA0: ; 0x021F8BA0 - .word MOD05_021F0CF0, MOD05_021F18A4, MOD05_021F0D18, MOD05_021F0D44 - .word MOD05_021F0D70 - - .global UNK05_021F8BB4 -UNK05_021F8BB4: ; 0x021F8BB4 - .word MOD05_021F0CF0, MOD05_021F17A0, MOD05_021F0D18, MOD05_021F0D44 - .word MOD05_021F0D70 - - .global UNK05_021F8BC8 -UNK05_021F8BC8: ; 0x021F8BC8 - .word MOD05_021F0CF0, MOD05_021F0DB4, MOD05_021F0D18, MOD05_021F0D44 - .word MOD05_021F0D70 - - .global UNK05_021F8BDC -UNK05_021F8BDC: ; 0x021F8BDC - .word MOD05_021F1B0C, MOD05_021F1B2C, MOD05_021F1B58, MOD05_021F1B60 - .word MOD05_021F1B8C - - .global UNK05_021F8BF0 -UNK05_021F8BF0: ; 0x021F8BF0 - .word MOD05_021F19FC, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60 - .word MOD05_021F1A98 - - .global UNK05_021F8C04 -UNK05_021F8C04: ; 0x021F8C04 - .word MOD05_021F0ADC, MOD05_021F0B9C, MOD05_021F0B18, MOD05_021F0B2C - .word MOD05_021F0B58 - - .global UNK05_021F8C18 -UNK05_021F8C18: ; 0x021F8C18 - .word MOD05_021F0CF0, MOD05_021F1234, MOD05_021F0D18, MOD05_021F0D44 - .word MOD05_021F0D70 - - .global UNK05_021F8C2C -UNK05_021F8C2C: ; 0x021F8C2C - .word MOD05_021F0CF0, MOD05_021F16D4, MOD05_021F0D18, MOD05_021F0D44 - .word MOD05_021F0D70 - - .global UNK05_021F8C40 -UNK05_021F8C40: ; 0x021F8C40 - .word MOD05_021F05C4, MOD05_021F071C, MOD05_021F05F0, MOD05_021F0604 - .word MOD05_021F0634 - - .global UNK05_021F8C54 -UNK05_021F8C54: ; 0x021F8C54 - .word FUN_0205C3B0, FUN_0205C3D0, FUN_0205C490, FUN_0205C4A8 - .word FUN_0205C4D8 - - .global UNK05_021F8C68 -UNK05_021F8C68: ; 0x021F8C68 - .word MOD05_021F05C4, MOD05_021F067C, MOD05_021F05F0, MOD05_021F0604 - .word MOD05_021F0634 - - .global UNK05_021F8C7C -UNK05_021F8C7C: ; 0x021F8C7C - .word MOD05_021F1A14, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60 - .word MOD05_021F1AB8 - - .global UNK05_021F8C90 -UNK05_021F8C90: ; 0x021F8C90 - .word MOD05_021F19E4, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60 - .word MOD05_021F1A78 - - .global UNK05_021F8CA4 -UNK05_021F8CA4: ; 0x021F8CA4 - .word MOD05_021F0CF0, MOD05_021F1838, MOD05_021F0D18, MOD05_021F0D44 - .word MOD05_021F0D70 - - .global UNK05_021F8CB8 -UNK05_021F8CB8: ; 0x021F8CB8 - .word MOD05_021F05C4, MOD05_021F0A04, MOD05_021F05F0, MOD05_021F0604 - .word MOD05_021F0634 - - .global UNK05_021F8CCC -UNK05_021F8CCC: ; 0x021F8CCC - .word MOD05_021F05C4, MOD05_021F06F0, MOD05_021F05F0, MOD05_021F0604 - .word MOD05_021F0634 - - .global UNK05_021F8CE0 -UNK05_021F8CE0: ; 0x021F8CE0 - .word MOD05_021F05C4, MOD05_021F0C28, MOD05_021F05F0, MOD05_021F0604 - .word MOD05_021F0634 - - .global UNK05_021F8CF4 -UNK05_021F8CF4: ; 0x021F8CF4 - .word MOD05_021F0CF0, MOD05_021F1440, MOD05_021F0D18, MOD05_021F0D44 - .word MOD05_021F0D70 - - .global UNK05_021F8D08 -UNK05_021F8D08: ; 0x021F8D08 - .word MOD05_021F1A2C, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60 - .word MOD05_021F1AD8 - - .global UNK05_021F8D1C -UNK05_021F8D1C: ; 0x021F8D1C - .word MOD05_021F1BD0, MOD05_021F1BF4, MOD05_021F1C14, MOD05_021F1B60 - .word MOD05_021F1B8C - - .global UNK05_021F8D30 -UNK05_021F8D30: ; 0x021F8D30 - .word MOD05_021F0CF0, MOD05_021F1738, MOD05_021F0D18, MOD05_021F0D44 - .word MOD05_021F0D70 - - .global UNK05_021F8D44 -UNK05_021F8D44: ; 0x021F8D44 - .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8D5C -UNK05_021F8D5C: ; 0x021F8D5C - .byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8D74 -UNK05_021F8D74: ; 0x021F8D74 - .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8D8C -UNK05_021F8D8C: ; 0x021F8D8C - .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8DA4 -UNK05_021F8DA4: ; 0x021F8DA4 - .byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8DBC -UNK05_021F8DBC: ; 0x021F8DBC - .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8DD4 -UNK05_021F8DD4: ; 0x021F8DD4 - .byte 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8DEC -UNK05_021F8DEC: ; 0x021F8DEC - .byte 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8E10 -UNK05_021F8E10: ; 0x021F8E10 - .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8E34 -UNK05_021F8E34: ; 0x021F8E34 - .byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8E58 -UNK05_021F8E58: ; 0x021F8E58 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x0F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x30, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8E94 -UNK05_021F8E94: ; 0x021F8E94 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8ED0 -UNK05_021F8ED0: ; 0x021F8ED0 - .byte 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x0C, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00 - .byte 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8F0C -UNK05_021F8F0C: ; 0x021F8F0C - .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 - .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8F48 -UNK05_021F8F48: ; 0x021F8F48 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 - .byte 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8F90 -UNK05_021F8F90: ; 0x021F8F90 - .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 - .byte 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x50, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 - .byte 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F8FFC -UNK05_021F8FFC: ; 0x021F8FFC - .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 - .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00 - .byte 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x58, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00 - .byte 0x5F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00 - - .global UNK05_021F9080 -UNK05_021F9080: ; 0x021F9080 - .word MOD05_021F1EDC - .word MOD05_021F1EF4 - .word MOD05_021F1EF8 - .word MOD05_021F1EFC - .word MOD05_021F1F00 - - .global UNK05_021F9094 -UNK05_021F9094: ; 0x021F9094 - .word 0x00000000 - .byte 0x78, 0x01, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7A, 0x01, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x7B, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00 - .byte 0x05, 0x00, 0x00, 0x00, 0x7F, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00 - .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021F90E4 -UNK05_021F90E4: ; 0x021F90E4 - .byte 0x00, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x8A, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8B, 0x01, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x8D, 0x01, 0x00, 0x00 - .byte 0x05, 0x00, 0x00, 0x00, 0x8E, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8F, 0x01, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x92, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00 - .byte 0x0B, 0x00, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00 - .byte 0x0F, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00 - .byte 0x11, 0x00, 0x00, 0x00, 0x9A, 0x01, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x9B, 0x01, 0x00, 0x00 - .byte 0x13, 0x00, 0x00, 0x00, 0x9C, 0x01, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x9D, 0x01, 0x00, 0x00 - .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021F9194 -UNK05_021F9194: ; 0x021F9194 - .word 0x00001001 - .word 0x00001002 - .word 0x00001003 - .word 0x00001004 - .word 0x00001005 - .word 0x00001006 - .word 0x00001007 - .word 0x00001008 - .word 0x00001009 - .word 0x0000100A - .word 0x0000100B - .word 0x0000100C - .word 0x0000100D - .word 0x0000100E - .word 0x0000100F - .word 0x00001010 - .word 0x00001011 - .word 0x00001012 - .word 0x00001013 - .word 0x00001014 - .word 0x00001015 - .word 0x00001016 - .word 0x00001017 - .word 0x00001018 - .word 0x00001019 - .word 0x0000101A - .word 0x0000101B - .word 0x0000101C - .word 0x0000101D - .word 0x0000101E - .word 0x0000101F - .word 0x00001020 - .word 0x00001021 - .word 0x00001022 - .word 0x00001023 - .word 0x00001024 - .word 0x00001025 - .word 0x00001026 - .word 0x00001027 - .word 0x00001028 - .word 0x00001029 - .word 0x0000102A - .word 0x0000102B - .word 0x0000102C - .word 0x0000102D - .word 0x0000102E - .word 0x0000102F - .word 0x00001030 - .word 0x00001031 - .word 0x00001032 - .word 0x00001033 - .word 0x00001034 - .word 0x00001035 - .word 0x00001036 - .word 0x00001037 - .word 0x00001038 - .word 0x00001039 - .word 0x0000103A - .word 0x0000103B - .word 0x0000103C - .word 0x0000103D - .word 0x0000103E - .word 0x0000103F - .word 0x00001040 - .word 0x00001041 - .word 0x00001042 - .word 0x00001043 - .word 0x00001044 - .word 0x00001045 - .word 0x00001046 - .word 0x00001047 - .word 0x00001048 - .word 0x00001049 - .word 0x0000104A - .word 0x0000104B - .word 0x0000104C - .word 0x0000104D - .word 0x0000104E - .word 0x0000104F - .word 0x00001050 - .word 0x00001051 - .word 0x00001052 - .word 0x00001053 - .word 0x00001054 - .word 0x00001055 - .word 0x00001056 - .word 0x00001057 - .word 0x00001058 - .word 0x00001059 - .word 0x0000105A - .word 0x0000105B - .word 0x0000105C - .word 0x0000105D - .word 0x0000105E - .word 0x0000105F - .word 0x00001060 - .word 0x00001061 - .word 0x00001062 - .word 0x00001063 - .word 0x00001064 - .word 0x00001065 - .word 0x00001066 - .word 0x00001067 - .word 0x00001068 - .word 0x00001069 - .word 0x0000106A - .word 0x0000106B - .word 0x0000106C - .word 0x0000106D - .word 0x0000106E - .word 0x0000106F - .word 0x00001070 - .word 0x00001071 - .word 0x00001072 - .word 0x00001073 - .word 0x00001074 - .word 0x00001075 - .word 0x00001076 - .word 0x00001077 - .word 0x00001078 - .word 0x00001079 - .word 0x0000107A - .word 0x0000107B - .word 0x0000107C - .word 0x0000107D - .word 0x0000107E - .word 0x0000107F - .word 0x00001080 - .word 0x00001081 - .word 0x00001082 - .word 0x00001083 - .word 0x00001084 - .word 0x00001085 - .word 0x00001086 - .word 0x00001087 - .word 0x00001088 - .word 0x00001089 - .word 0x0000108A - .word 0x0000108B - .word 0x0000108C - .word 0x0000108D - .word 0x0000108E - .word 0x0000108F - .word 0x00001090 - .word 0x00001091 - .word 0x00001092 - .word 0x00001093 - .word 0x00001094 - .word 0x00001095 - .word 0x00001096 - .word 0x00001097 - .word 0x00001098 - .word 0x00001099 - .word 0x0000109A - .word 0x0000109B - .word 0x0000109C - .word 0x0000109D - .word 0x0000109E - .word 0x0000109F - .word 0x000010A0 - .word 0x000010A1 - .word 0x000010A2 - .word 0x000010A3 - .word 0x000010A4 - .word 0x000010A5 - .word 0x000010A6 - .word 0x000010A7 - .word 0x000010A8 - .word 0x000010A9 - .word 0x000010AA - .word 0x000010AB - .word 0x000010AC - .word 0x000010AD - .word 0x000010AE - .word 0x000010AF - .word 0x000010B0 - .word 0x000010B1 - .word 0x000010B2 - .word 0x000010B3 - .word 0x000010B4 - .word 0x000010B5 - .word 0x000010B6 - .word 0x000010B7 - .word 0x000010B8 - .word 0x000010B9 - .word 0x000010BA - .word 0x000010BB - .word 0x000010BC - .word 0x000010BD - .word 0x000010BE - .word 0x000010BF - .word 0x000010C0 - - .global UNK05_021F9494 -UNK05_021F9494: ; 0x021F9494 - .word 0x00, UNK05_021F8BC8 - .word 0x01, UNK05_021F8C68 - .word 0x02, UNK05_021F8C68 - .word 0x03, UNK05_021F8C68 - .word 0x04, UNK05_021F8C68 - .word 0x05, UNK05_021F8C68 - .word 0x06, UNK05_021F8C68 - .word 0x07, UNK05_021F8C68 - .word 0x08, UNK05_021F8C68 - .word 0x09, UNK05_021F8C68 - .word 0x0A, UNK05_021F8C68 - .word 0x0B, UNK05_021F8C68 - .word 0x0C, UNK05_021F8C68 - .word 0x0D, UNK05_021F8C68 - .word 0x0E, UNK05_021F8C68 - .word 0x0F, UNK05_021F8C68 - .word 0x10, UNK05_021F8C68 - .word 0x11, UNK05_021F8C68 - .word 0x12, UNK05_021F8C68 - .word 0x13, UNK05_021F8C68 - .word 0x14, UNK05_021F8C68 - .word 0x15, UNK05_021F8C18 - .word 0x16, UNK05_021F8C68 - .word 0x17, UNK05_021F8C68 - .word 0x18, UNK05_021F8C68 - .word 0x19, UNK05_021F8C68 - .word 0x1A, UNK05_021F8CB8 - .word 0x1B, UNK05_021F8C68 - .word 0x1C, UNK05_021F8C68 - .word 0x1D, UNK05_021F8C68 - .word 0x1E, UNK05_021F8C68 - .word 0x1F, UNK05_021F8C68 - .word 0x20, UNK05_021F8C68 - .word 0x21, UNK05_021F8C68 - .word 0x22, UNK05_021F8C68 - .word 0x23, UNK05_021F8C68 - .word 0x24, UNK05_021F8C68 - .word 0x25, UNK05_021F8C68 - .word 0x26, UNK05_021F8C68 - .word 0x27, UNK05_021F8C68 - .word 0x28, UNK05_021F8C68 - .word 0x29, UNK05_021F8C68 - .word 0x2A, UNK05_021F8C68 - .word 0x2B, UNK05_021F8C68 - .word 0x2C, UNK05_021F8C68 - .word 0x2D, UNK05_021F8C68 - .word 0x2E, UNK05_021F8C68 - .word 0x2F, UNK05_021F8C68 - .word 0x30, UNK05_021F8C68 - .word 0x31, UNK05_021F8C68 - .word 0x32, UNK05_021F8C68 - .word 0x33, UNK05_021F8C68 - .word 0x34, UNK05_021F8C68 - .word 0x35, UNK05_021F8C68 - .word 0x36, UNK05_021F8C68 - .word 0x37, UNK05_021F8C68 - .word 0x38, UNK05_021F8C68 - .word 0x39, UNK05_021F8C68 - .word 0x3A, UNK05_021F8C68 - .word 0x3B, UNK05_021F8C68 - .word 0x3C, UNK05_021F8C68 - .word 0x3D, UNK05_021F8C68 - .word 0x3E, UNK05_021F8C68 - .word 0x3F, UNK05_021F8C68 - .word 0x40, UNK05_021F8C68 - .word 0x41, UNK05_021F8C68 - .word 0x42, UNK05_021F8C68 - .word 0x43, UNK05_021F8C68 - .word 0x44, UNK05_021F8C68 - .word 0x45, UNK05_021F8C68 - .word 0x46, UNK05_021F8C68 - .word 0x47, UNK05_021F8C68 - .word 0x48, UNK05_021F8C68 - .word 0x49, UNK05_021F8C68 - .word 0x4A, UNK05_021F8C68 - .word 0x4B, UNK05_021F8C68 - .word 0x4C, UNK05_021F8C68 - .word 0x4D, UNK05_021F8C68 - .word 0x4E, UNK05_021F8C68 - .word 0x4F, UNK05_021F8C68 - .word 0x50, UNK05_021F8C68 - .word 0x51, UNK05_021F8C68 - .word 0x52, UNK05_021F8C68 - .word 0x53, UNK05_021F8C68 - .word 0x54, UNK05_021F8CCC - .word 0x55, UNK05_021F8CCC - .word 0x56, UNK05_021F8CCC - .word 0x57, UNK05_021F8CCC - .word 0x58, UNK05_021F8C68 - .word 0x59, UNK05_021F8C68 - .word 0x5A, UNK05_021F8C68 - .word 0x5B, UNK05_021F8C90 - .word 0x5C, UNK05_021F8C90 - .word 0x5D, UNK05_021F8C90 - .word 0x5E, UNK05_021F8C90 - .word 0x5F, UNK05_021F8C90 - .word 0x60, UNK05_021F8C90 - .word 0x61, UNK05_021F8BC8 - .word 0x62, UNK05_021F8C18 - .word 0x63, UNK05_021F8C68 - .word 0x64, UNK05_021F8C54 - .word 0x76, UNK05_021F8BF0 - .word 0x78, UNK05_021F8C68 - .word 0x79, UNK05_021F8C68 - .word 0x7A, UNK05_021F8C68 - .word 0x7B, UNK05_021F8C68 - .word 0x7C, UNK05_021F8C68 - .word 0x7D, UNK05_021F8C68 - .word 0x7E, UNK05_021F8C68 - .word 0x7F, UNK05_021F8C68 - .word 0x80, UNK05_021F8C68 - .word 0x81, UNK05_021F8C68 - .word 0x82, UNK05_021F8C68 - .word 0x83, UNK05_021F8C68 - .word 0x84, UNK05_021F8C68 - .word 0x85, UNK05_021F8C68 - .word 0x86, UNK05_021F8C68 - .word 0x87, UNK05_021F8C68 - .word 0x88, UNK05_021F8C68 - .word 0x89, UNK05_021F8C68 - .word 0x8A, UNK05_021F8C68 - .word 0x8B, UNK05_021F8C68 - .word 0x8C, UNK05_021F8C68 - .word 0x8D, UNK05_021F8C68 - .word 0x8E, UNK05_021F8C68 - .word 0x8F, UNK05_021F8C68 - .word 0x90, UNK05_021F8C68 - .word 0x91, UNK05_021F8C68 - .word 0x92, UNK05_021F8C68 - .word 0x93, UNK05_021F8C68 - .word 0x94, UNK05_021F8C68 - .word 0x95, UNK05_021F8C68 - .word 0x96, UNK05_021F8C68 - .word 0x97, UNK05_021F8D1C - .word 0x98, UNK05_021F8D1C - .word 0x99, UNK05_021F8D1C - .word 0x9A, UNK05_021F8BDC - .word 0x9B, UNK05_021F8BDC - .word 0x9C, UNK05_021F8C40 - .word 0x9D, UNK05_021F8C40 - .word 0x9E, UNK05_021F8C68 - .word 0x9F, UNK05_021F8C40 - .word 0xA0, UNK05_021F8C40 - .word 0xA1, UNK05_021F8C40 - .word 0xA2, UNK05_021F8C68 - .word 0xA3, UNK05_021F8C68 - .word 0xA4, UNK05_021F8C68 - .word 0xA5, UNK05_021F8C68 - .word 0xA6, UNK05_021F8C68 - .word 0xA7, UNK05_021F8C68 - .word 0xA8, UNK05_021F8C68 - .word 0xA9, UNK05_021F8C68 - .word 0xAA, UNK05_021F8C68 - .word 0xAB, UNK05_021F8C68 - .word 0xAC, UNK05_021F8C68 - .word 0xAD, UNK05_021F8CE0 - .word 0xAE, UNK05_021F8C68 - .word 0xAF, UNK05_021F8C68 - .word 0xB0, UNK05_021F8D30 - .word 0xB1, UNK05_021F8D30 - .word 0xB4, UNK05_021F8BB4 - .word 0xB5, UNK05_021F8BB4 - .word 0xB2, UNK05_021F8C2C - .word 0xB3, UNK05_021F8C2C - .word 0xB6, UNK05_021F8CCC - .word 0xB7, UNK05_021F8C7C - .word 0xB8, UNK05_021F8CCC - .word 0xB9, UNK05_021F8C68 - .word 0xBA, UNK05_021F8BC8 - .word 0xBB, UNK05_021F8BC8 - .word 0xBC, UNK05_021F8CF4 - .word 0xBD, UNK05_021F8CF4 - .word 0xBE, UNK05_021F8C68 - .word 0xBF, UNK05_021F8C68 - .word 0xC0, UNK05_021F8C68 - .word 0xC1, UNK05_021F8C68 - .word 0xC2, UNK05_021F8C68 - .word 0xC3, UNK05_021F8C04 - .word 0xC4, UNK05_021F8CA4 - .word 0xC5, UNK05_021F8CA4 - .word 0xC6, UNK05_021F8D30 - .word 0xC7, UNK05_021F8D30 - .word 0xC8, UNK05_021F8BA0 - .word 0xC9, UNK05_021F8BA0 - .word 0xCA, UNK05_021F8CCC - .word 0xCB, UNK05_021F8CCC - .word 0xCC, UNK05_021F8C68 - .word 0xCD, UNK05_021F8C68 - .word 0xCE, UNK05_021F8C68 - .word 0xCF, UNK05_021F8C68 - .word 0xD0, UNK05_021F8C68 - .word 0xD1, UNK05_021F8D08 - -; 0x021F9A94 - .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global UNK05_021F9A9C -UNK05_021F9A9C: ; 0x021F9A9C - .byte 0x00, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x0C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x0E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x12, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x14, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 - .byte 0x16, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x18, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x1A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x1C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x1E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x20, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x22, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x24, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x26, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 - .byte 0x28, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x2A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x2C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x2E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x30, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x32, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x34, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x36, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x38, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x3A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x3C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x3E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x40, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x42, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x44, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x46, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x48, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x4A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x4C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x4E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x50, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x52, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x54, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x56, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x58, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x5A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x5C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x5E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x62, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x64, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x7A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x7C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x7E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x80, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x82, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x84, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x86, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x8A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x8C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x8E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x90, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x92, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x94, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x96, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x98, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x9A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x9C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x9E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xA0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xA2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xA4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xA6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xA8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xAA, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xAC, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xAE, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xB0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xB2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xB4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xB6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 - .byte 0xB8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xBA, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xBC, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xBE, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xC0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xC2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xC5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xC7, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 - .byte 0xC9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xCB, 0x00, 0x00, 0x00, 0x11, 0x04, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 - .byte 0xCD, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 - .byte 0xCF, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 - .byte 0xD1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FA0AC -UNK05_021FA0AC: ; 0x021FA0AC - .byte 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x0C, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 - .byte 0x0E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 - .byte 0x12, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00 - .byte 0x16, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00 - .byte 0x18, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00 - .byte 0x1A, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00 - .byte 0x1C, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00 - .byte 0x1E, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00 - .byte 0x20, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00 - .byte 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00 - .byte 0x24, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00 - .byte 0x26, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00 - .byte 0x28, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00 - .byte 0x2A, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00 - .byte 0x2C, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00 - .byte 0x2E, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00 - .byte 0x30, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00 - .byte 0x32, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00 - .byte 0x34, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00 - .byte 0x36, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00 - .byte 0x38, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00 - .byte 0x3A, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00 - .byte 0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00 - .byte 0x3E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00 - .byte 0x40, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00 - .byte 0x42, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00 - .byte 0x44, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00 - .byte 0x46, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00 - .byte 0x48, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00 - .byte 0x4A, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00 - .byte 0x4C, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00 - .byte 0x4E, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00 - .byte 0x50, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00 - .byte 0x52, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00 - .byte 0x54, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00 - .byte 0x56, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00 - .byte 0x58, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00 - .byte 0x5A, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00 - .byte 0x62, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 - .byte 0x02, 0x10, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00 - .byte 0x7A, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00 - .byte 0x7C, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00 - .byte 0x7E, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00 - .byte 0x80, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00 - .byte 0x82, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00 - .byte 0x84, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00 - .byte 0x86, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00 - .byte 0x8A, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00 - .byte 0x8C, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00 - .byte 0x8E, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00 - .byte 0x90, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00 - .byte 0x92, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00 - .byte 0x94, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 - .byte 0x96, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00 - .byte 0x98, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00 - .byte 0x9A, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00 - .byte 0x9C, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00 - .byte 0x9E, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00 - .byte 0xA0, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00 - .byte 0xA2, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00 - .byte 0xA4, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00 - .byte 0xA6, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00 - .byte 0xA8, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00 - .byte 0xAA, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00 - .byte 0xAC, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00 - .byte 0xAE, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00 - .byte 0xB0, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00 - .byte 0xB4, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00 - .byte 0xB2, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 - .byte 0xB6, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00 - .byte 0xB9, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 - .byte 0xBB, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00 - .byte 0xBD, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00 - .byte 0xBF, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00 - .byte 0x04, 0x10, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x05, 0x10, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00 - .byte 0x06, 0x10, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x07, 0x10, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00 - .byte 0x08, 0x10, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x09, 0x10, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00 - .byte 0x0A, 0x10, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x0B, 0x10, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00 - .byte 0x0C, 0x10, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x0D, 0x10, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00 - .byte 0x0E, 0x10, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x0F, 0x10, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00 - .byte 0x10, 0x10, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x11, 0x10, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00 - .byte 0x12, 0x10, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x13, 0x10, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00 - .byte 0x14, 0x10, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x15, 0x10, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00 - .byte 0x16, 0x10, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x17, 0x10, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00 - .byte 0x18, 0x10, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x19, 0x10, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00 - .byte 0x1A, 0x10, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x1B, 0x10, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00 - .byte 0x1C, 0x10, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x1D, 0x10, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00 - .byte 0x1E, 0x10, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00 - .byte 0x20, 0x10, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0x21, 0x10, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00 - .byte 0x22, 0x10, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0x23, 0x10, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00 - .byte 0x24, 0x10, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0x25, 0x10, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00 - .byte 0x26, 0x10, 0x00, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00 - .byte 0x28, 0x10, 0x00, 0x00, 0xCF, 0x00, 0x00, 0x00, 0x29, 0x10, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00 - .byte 0x2A, 0x10, 0x00, 0x00, 0xD1, 0x00, 0x00, 0x00, 0x2B, 0x10, 0x00, 0x00, 0xD2, 0x00, 0x00, 0x00 - .byte 0x2C, 0x10, 0x00, 0x00, 0xD3, 0x00, 0x00, 0x00, 0x2D, 0x10, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00 - .byte 0x2E, 0x10, 0x00, 0x00, 0xD5, 0x00, 0x00, 0x00, 0x2F, 0x10, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00 - .byte 0x30, 0x10, 0x00, 0x00, 0xD7, 0x00, 0x00, 0x00, 0x31, 0x10, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00 - .byte 0x32, 0x10, 0x00, 0x00, 0xD9, 0x00, 0x00, 0x00, 0x33, 0x10, 0x00, 0x00, 0xDA, 0x00, 0x00, 0x00 - .byte 0x34, 0x10, 0x00, 0x00, 0xDB, 0x00, 0x00, 0x00, 0x35, 0x10, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00 - .byte 0x36, 0x10, 0x00, 0x00, 0xDD, 0x00, 0x00, 0x00, 0x37, 0x10, 0x00, 0x00, 0xDE, 0x00, 0x00, 0x00 - .byte 0x38, 0x10, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0x39, 0x10, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00 - .byte 0x3A, 0x10, 0x00, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x3B, 0x10, 0x00, 0x00, 0xE2, 0x00, 0x00, 0x00 - .byte 0x3C, 0x10, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x3D, 0x10, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00 - .byte 0x3E, 0x10, 0x00, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x3F, 0x10, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x00 - .byte 0x40, 0x10, 0x00, 0x00, 0xE7, 0x00, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00 - .byte 0x42, 0x10, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0x43, 0x10, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00 - .byte 0x44, 0x10, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x45, 0x10, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00 - .byte 0x46, 0x10, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00, 0x47, 0x10, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x00 - .byte 0x48, 0x10, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00, 0x49, 0x10, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00 - .byte 0x4A, 0x10, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x4B, 0x10, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00 - .byte 0x4C, 0x10, 0x00, 0x00, 0xF3, 0x00, 0x00, 0x00, 0x4D, 0x10, 0x00, 0x00, 0xF4, 0x00, 0x00, 0x00 - .byte 0x4E, 0x10, 0x00, 0x00, 0xF5, 0x00, 0x00, 0x00, 0x4F, 0x10, 0x00, 0x00, 0xF6, 0x00, 0x00, 0x00 - .byte 0x50, 0x10, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00, 0x51, 0x10, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00 - .byte 0x52, 0x10, 0x00, 0x00, 0xF9, 0x00, 0x00, 0x00, 0x53, 0x10, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00 - .byte 0x54, 0x10, 0x00, 0x00, 0xFB, 0x00, 0x00, 0x00, 0x55, 0x10, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00 - .byte 0x56, 0x10, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x57, 0x10, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00 - .byte 0x58, 0x10, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x59, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 - .byte 0x5A, 0x10, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x5B, 0x10, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00 - .byte 0x5C, 0x10, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x5D, 0x10, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00 - .byte 0x5E, 0x10, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x5F, 0x10, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00 - .byte 0x60, 0x10, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x61, 0x10, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00 - .byte 0x62, 0x10, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x63, 0x10, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x00 - .byte 0x64, 0x10, 0x00, 0x00, 0x0B, 0x01, 0x00, 0x00, 0x65, 0x10, 0x00, 0x00, 0x0C, 0x01, 0x00, 0x00 - .byte 0x66, 0x10, 0x00, 0x00, 0x0D, 0x01, 0x00, 0x00, 0x67, 0x10, 0x00, 0x00, 0x0E, 0x01, 0x00, 0x00 - .byte 0x68, 0x10, 0x00, 0x00, 0x0F, 0x01, 0x00, 0x00, 0x69, 0x10, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00 - .byte 0x6A, 0x10, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x6B, 0x10, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00 - .byte 0x6C, 0x10, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x6D, 0x10, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00 - .byte 0x6E, 0x10, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x6F, 0x10, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00 - .byte 0x70, 0x10, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x71, 0x10, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00 - .byte 0x72, 0x10, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x73, 0x10, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x00 - .byte 0x74, 0x10, 0x00, 0x00, 0x1B, 0x01, 0x00, 0x00, 0x75, 0x10, 0x00, 0x00, 0x1C, 0x01, 0x00, 0x00 - .byte 0x76, 0x10, 0x00, 0x00, 0x1D, 0x01, 0x00, 0x00, 0x77, 0x10, 0x00, 0x00, 0x1E, 0x01, 0x00, 0x00 - .byte 0x78, 0x10, 0x00, 0x00, 0x1F, 0x01, 0x00, 0x00, 0x79, 0x10, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00 - .byte 0x7A, 0x10, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x7B, 0x10, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00 - .byte 0x7C, 0x10, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x7D, 0x10, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00 - .byte 0x7E, 0x10, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x7F, 0x10, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00 - .byte 0x80, 0x10, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x81, 0x10, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00 - .byte 0x82, 0x10, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x83, 0x10, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00 - .byte 0x84, 0x10, 0x00, 0x00, 0x2B, 0x01, 0x00, 0x00, 0x85, 0x10, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00 - .byte 0x86, 0x10, 0x00, 0x00, 0x2D, 0x01, 0x00, 0x00, 0x87, 0x10, 0x00, 0x00, 0x2E, 0x01, 0x00, 0x00 - .byte 0x88, 0x10, 0x00, 0x00, 0x2F, 0x01, 0x00, 0x00, 0x89, 0x10, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00 - .byte 0x8A, 0x10, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x8B, 0x10, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00 - .byte 0x8C, 0x10, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x8D, 0x10, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00 - .byte 0x8E, 0x10, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x8F, 0x10, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00 - .byte 0x90, 0x10, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x91, 0x10, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00 - .byte 0x92, 0x10, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x93, 0x10, 0x00, 0x00, 0x3A, 0x01, 0x00, 0x00 - .byte 0x94, 0x10, 0x00, 0x00, 0x3B, 0x01, 0x00, 0x00, 0x95, 0x10, 0x00, 0x00, 0x3C, 0x01, 0x00, 0x00 - .byte 0x96, 0x10, 0x00, 0x00, 0x3D, 0x01, 0x00, 0x00, 0x97, 0x10, 0x00, 0x00, 0x3E, 0x01, 0x00, 0x00 - .byte 0x98, 0x10, 0x00, 0x00, 0x3F, 0x01, 0x00, 0x00, 0x99, 0x10, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00 - .byte 0x9A, 0x10, 0x00, 0x00, 0x41, 0x01, 0x00, 0x00, 0x9B, 0x10, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00 - .byte 0x9C, 0x10, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x9D, 0x10, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00 - .byte 0x9E, 0x10, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, 0x9F, 0x10, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00 - .byte 0xA0, 0x10, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0xA1, 0x10, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00 - .byte 0xA2, 0x10, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0xA3, 0x10, 0x00, 0x00, 0x4A, 0x01, 0x00, 0x00 - .byte 0xA4, 0x10, 0x00, 0x00, 0x4B, 0x01, 0x00, 0x00, 0xA5, 0x10, 0x00, 0x00, 0x4C, 0x01, 0x00, 0x00 - .byte 0xA6, 0x10, 0x00, 0x00, 0x4D, 0x01, 0x00, 0x00, 0xA7, 0x10, 0x00, 0x00, 0x4E, 0x01, 0x00, 0x00 - .byte 0xA8, 0x10, 0x00, 0x00, 0x4F, 0x01, 0x00, 0x00, 0xA9, 0x10, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00 - .byte 0xAA, 0x10, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0xAB, 0x10, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00 - .byte 0xAC, 0x10, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, 0xAD, 0x10, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00 - .byte 0xAE, 0x10, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0xAF, 0x10, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00 - .byte 0xB0, 0x10, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0xB1, 0x10, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00 - .byte 0xB2, 0x10, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0xB3, 0x10, 0x00, 0x00, 0x5A, 0x01, 0x00, 0x00 - .byte 0xB4, 0x10, 0x00, 0x00, 0x5B, 0x01, 0x00, 0x00, 0xB5, 0x10, 0x00, 0x00, 0x5C, 0x01, 0x00, 0x00 - .byte 0xB6, 0x10, 0x00, 0x00, 0x5D, 0x01, 0x00, 0x00, 0xB7, 0x10, 0x00, 0x00, 0x5E, 0x01, 0x00, 0x00 - .byte 0xB8, 0x10, 0x00, 0x00, 0x5F, 0x01, 0x00, 0x00, 0xB9, 0x10, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00 - .byte 0xBA, 0x10, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0xBB, 0x10, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00 - .byte 0xBC, 0x10, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0xBD, 0x10, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00 - .byte 0xBE, 0x10, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0xBF, 0x10, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00 - .byte 0xC0, 0x10, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00 - .byte 0xC2, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00 - .byte 0xC4, 0x00, 0x00, 0x00, 0x6B, 0x01, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x6C, 0x01, 0x00, 0x00 - .byte 0xC6, 0x00, 0x00, 0x00, 0x6D, 0x01, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0x6E, 0x01, 0x00, 0x00 - .byte 0xC8, 0x00, 0x00, 0x00, 0x6F, 0x01, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00 - .byte 0xCA, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00 - .byte 0xCC, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00 - .byte 0xCE, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0xCF, 0x00, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00 - .byte 0xD0, 0x00, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FAC6C -UNK05_021FAC6C: ; 0x021FAC6C - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .word UNK05_021F8F90 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .word UNK05_021F8FFC - .byte 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00 - .word UNK05_021F8F48 - .byte 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x55, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .word UNK05_021F8F90 - .byte 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .word UNK05_021F8FFC - .byte 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x00, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x01, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x02, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x03, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x8D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .word UNK05_021F8D74 - .byte 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .word UNK05_021F8D74 - .byte 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .word UNK05_021F8D74 - .byte 0x9A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .word UNK05_021F8D44 - .byte 0x9B, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .word UNK05_021F8D44 - .byte 0x9C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 - .word UNK05_021F8D5C - .byte 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00 - .word UNK05_021F8D5C - .byte 0x9E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 - .word UNK05_021F8D5C - .byte 0xA0, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00 - .word UNK05_021F8D5C - .byte 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 - .word UNK05_021F8D5C - .byte 0xA2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xA4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xA5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xA9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 - .word UNK05_021F8DEC - .byte 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .word UNK05_021F8DA4 - .byte 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .word UNK05_021F8DA4 - .byte 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 - .word UNK05_021F8E94 - .byte 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 - .word UNK05_021F8E94 - .byte 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .word UNK05_021F8E10 - .byte 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .word UNK05_021F8E10 - .byte 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xB8, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00 - .word UNK05_021F8F90 - .byte 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00 - .word UNK05_021F8F90 - .byte 0xBC, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .word UNK05_021F8E58 - .byte 0xBD, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .word UNK05_021F8E58 - .byte 0xBE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xBF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0x04, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x05, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x06, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x07, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x08, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x09, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x0A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x0B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x0C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x0D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x0E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x0F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x10, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x11, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x12, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x13, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x14, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x15, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x16, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x17, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x18, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x19, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x1A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x1B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x1C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x1D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x1E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x1F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x20, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x21, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x22, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x23, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x24, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x25, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x26, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x27, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x28, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x29, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x2A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x2B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x2C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x2D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x2E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x2F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x30, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x31, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x32, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x33, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x34, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x35, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x36, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x37, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x38, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x39, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x3A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x3B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x3C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x3D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x3E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x3F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x40, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x41, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x42, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x43, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x44, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x45, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x46, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x47, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x48, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x49, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x4A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x4B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x4C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x4D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x4E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x4F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x50, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x51, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x52, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x53, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x54, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x55, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x56, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x57, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x58, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x59, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x5A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x5B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x5C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x5D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x5E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x5F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x60, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x61, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x62, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x63, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x64, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x65, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x66, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x67, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x68, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x69, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x6A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x6B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x6C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x6D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x6E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x6F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x70, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x71, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x72, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x73, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x74, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x75, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x76, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x77, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x78, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x79, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x7A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x7B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x7C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x7D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x7E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x7F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x80, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x81, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x82, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x83, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x84, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x85, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x86, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x87, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x88, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x89, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x8A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x8B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x8C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x8D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x8E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x8F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x90, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x91, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x92, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x93, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x94, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x95, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x96, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x97, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x98, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x99, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x9A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x9B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x9C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x9D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x9E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0x9F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xA0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xA1, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xA2, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xA3, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xA4, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xA5, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xA6, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xA7, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xA8, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xA9, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xAA, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xAB, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xAC, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xAD, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xAE, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xAF, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xB0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xB1, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xB2, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xB3, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xB4, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xB5, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xB6, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xB7, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xB8, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xB9, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xBA, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xBB, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xBC, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xBD, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xBE, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xBF, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xC0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .word UNK05_021F8DD4 - .byte 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 - .word UNK05_021F8D8C - .byte 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00 - .word UNK05_021F8ED0 - .byte 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00 - .word UNK05_021F8ED0 - .byte 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00 - .word UNK05_021F8DBC - .byte 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00 - .word UNK05_021F8DBC - .byte 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 - .word UNK05_021F8E34 - .byte 0xC9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 - .word UNK05_021F8E34 - .byte 0xCA, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xCB, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK05_021F8F0C - .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FC3EC -UNK05_021FC3EC: ; 0x021FC3EC - .byte 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FC3FC -UNK05_021FC3FC: ; 0x021FC3FC - .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00 - - .global UNK05_021FC40C -UNK05_021FC40C: ; 0x021FC40C - .word MOD05_021F14BC, MOD05_021F150C, MOD05_021F1544, MOD05_021F1608 - - .global UNK05_021FC41C -UNK05_021FC41C: ; 0x021FC41C - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - - .global UNK05_021FC42C -UNK05_021FC42C: ; 0x021FC42C - .byte 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FC43C -UNK05_021FC43C: ; 0x021FC43C - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FC458 -UNK05_021FC458: ; 0x021FC458 - .byte 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FC474 -UNK05_021FC474: ; 0x021FC474 - .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FC494 -UNK05_021FC494: ; 0x021FC494 - .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FC4B4 -UNK05_021FC4B4: ; 0x021FC4B4 - .word MOD05_021F075C, MOD05_021F0790, MOD05_021F0790, MOD05_021F07CC - .word MOD05_021F0808, MOD05_021F0844, MOD05_021F0880, MOD05_021F0904 - .word MOD05_021F0980 - - .global UNK05_021FC4D8 -UNK05_021FC4D8: ; 0x021FC4D8 - .word MOD05_021F12C0, MOD05_021F0E98, MOD05_021F0E98, MOD05_021F0F0C - .word MOD05_021F0F60, MOD05_021F1008, MOD05_021F1008, MOD05_021F1008 - .word MOD05_021F134C, MOD05_021F13C8 - - .global UNK05_021FC500 -UNK05_021FC500: ; 0x021FC500 - .word MOD05_021F0E28, MOD05_021F0E98, MOD05_021F0E98, MOD05_021F0F0C - .word MOD05_021F0F60, MOD05_021F0FB4, MOD05_021F1008, MOD05_021F10A8 - .word MOD05_021F1140, MOD05_021F11E0 - - .global UNK05_021FC528 -UNK05_021FC528: ; 0x021FC528 - .word MOD05_021F0A78, MOD05_021F0790, MOD05_021F0790, MOD05_021F07CC - .word MOD05_021F0808, MOD05_021F0844, MOD05_021F0880, MOD05_021F0904 - .word MOD05_021F0980, MOD05_021F0AB4 - - .global UNK05_021FC550 -UNK05_021FC550: ; 0x021FC550 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - - .global UNK05_021FC55C -UNK05_021FC55C: ; 0x021FC55C - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - - .global UNK05_021FC56C -UNK05_021FC56C: ; 0x021FC56C - .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 - - .global UNK05_021FC57C -UNK05_021FC57C: ; 0x021FC57C - .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - - .global UNK05_021FC58C -UNK05_021FC58C: ; 0x021FC58C - .word 0x00000002, 0x00000008, MOD05_021F3854, MOD05_021F385C - .word MOD05_021F3860, 0x00000000 - - .global UNK05_021FC5A4 -UNK05_021FC5A4: ; 0x021FC5A4 - .byte 0x22, 0x01 - - .global UNK05_021FC5A6 -UNK05_021FC5A6: ; 0x021FC5A6 - .byte 0x01, 0x00 - - .global UNK05_021FC5A8 -UNK05_021FC5A8: ; 0x021FC5A8 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x2C, 0x01, 0x01, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x90, 0x01, 0x02, 0x00, 0x6E, 0x00, 0x00, 0x00 - .byte 0xF4, 0x01, 0x04, 0x00, 0x36, 0x01, 0x00, 0x00, 0x58, 0x02, 0x14, 0x00, 0xC6, 0x02, 0x00, 0x00 - .byte 0xBC, 0x02, 0x32, 0x00, 0x96, 0x0A, 0x00, 0x00, 0x20, 0x03, 0x64, 0x00, 0x1E, 0x1E, 0x00, 0x00 - .byte 0x84, 0x03, 0x96, 0x00, 0x2E, 0x45, 0x00, 0x00, 0xE8, 0x03, 0x96, 0x00, 0xC6, 0x7F, 0x00, 0x00 - .byte 0x4C, 0x04, 0x64, 0x00, 0x5E, 0xBA, 0x00, 0x00, 0xB0, 0x04, 0x32, 0x00, 0x6E, 0xE1, 0x00, 0x00 - .byte 0x14, 0x05, 0x14, 0x00, 0xF6, 0xF4, 0x00, 0x00, 0x78, 0x05, 0x05, 0x00, 0xC6, 0xFC, 0x00, 0x00 - .byte 0xDC, 0x05, 0x02, 0x00, 0xBA, 0xFE, 0x00, 0x00, 0x40, 0x06, 0x01, 0x00, 0x82, 0xFF, 0x00, 0x00 - .byte 0xA4, 0x06, 0x01, 0x00, 0xE6, 0xFF, 0x00, 0x00 - - .global UNK05_021FC624 -UNK05_021FC624: ; 0x021FC624 - .byte 0x00, 0x00, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 - .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 - - .global UNK05_021FC634 -UNK05_021FC634: ; 0x021FC634 - .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 - .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 - - .global UNK05_021FC644 -UNK05_021FC644: ; 0x021FC644 -.ifdef DIAMOND - .word 2, 3, 4 -.else - .word 5, 6, 7 -.endif - - .global UNK05_021FC650 -UNK05_021FC650: ; 0x021FC650 - .byte 0x5B, 0x01, 0x00, 0x00, 0x5D, 0x01, 0x00, 0x00, 0x5E, 0x01, 0x00, 0x00 - .byte 0x61, 0x01, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00 - .byte 0x6B, 0x01, 0x00, 0x00, 0x6E, 0x01, 0x00, 0x00, 0x6F, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00 - .byte 0x75, 0x01, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00 - .byte 0x88, 0x01, 0x00, 0x00, 0x8B, 0x01, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00 - .byte 0xCC, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 - - .global UNK05_021FC6A4 -UNK05_021FC6A4: ; 0x021FC6A4 - .byte 0x08, 0x00, 0x00, 0x00 - - .global UNK05_021FC6A8 -UNK05_021FC6A8: ; 0x021FC6A8 - .word 0x00000400, 0x00000018, MOD05_021F5564, MOD05_021F5598 - .word MOD05_021F559C, MOD05_021F55C8 - - .global UNK05_021FC6C0 -UNK05_021FC6C0: ; 0x021FC6C0 - .word 0x00000400, 0x00000018, MOD05_021F5518, MOD05_021F5598 - .word MOD05_021F559C, MOD05_021F55C8 - - .global UNK05_021FC6D8 -UNK05_021FC6D8: ; 0x021FC6D8 - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00 - .byte 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00 - - .global UNK05_021FC718 -UNK05_021FC718: ; 0x021FC718 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00 - .byte 0x1F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00 - .byte 0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FC79C -UNK05_021FC79C: ; 0x021FC79C - .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK05_021FC820 -UNK05_021FC820: ; 0x021FC820 - .word 0x00, MOD06_022492B0, MOD06_022492D4 - .word 0x01, MOD06_022497A0, MOD06_022497BC - .word 0x02, MOD05_021E52A8, MOD05_021E52C4 - .word 0x03, MOD05_021E5300, MOD05_021E531C - .word 0x04, MOD05_021E5564, MOD05_021E5580 - .word 0x05, MOD05_021E55BC, MOD05_021E55D8 - .word 0x06, MOD05_021E577C, MOD05_021E5798 - .word 0x07, MOD05_021E5918, MOD05_021E5934 - .word 0x08, MOD05_021E5AB4, MOD05_021E5AD0 - .word 0x09, MOD05_021E5C8C, MOD05_021E5CA8 - .word 0x0A, MOD05_021E5E10, MOD05_021E5E2C - .word 0x0B, MOD06_02249C98, MOD06_02249CB8 - .word 0x0C, MOD06_0224A040, MOD06_0224A05C - .word 0x0D, MOD06_0224A280, MOD06_0224A29C - .word 0x0E, MOD06_0224A63C, MOD06_0224A658 - .word 0x0F, MOD06_0224A87C, MOD06_0224A898 - .word 0x10, MOD05_021EDB70, MOD05_021EDB8C - .word 0x11, MOD06_0224AB54, MOD06_0224AB70 - .word 0x12, MOD06_0224AE10, MOD06_0224AE24 - .word 0x13, MOD06_0224B0A8, MOD06_0224B0C4 - .word 0x14, MOD06_0224B248, MOD06_0224B264 - .word 0x15, MOD06_0224B3E4, MOD06_0224B400 - .word 0x16, MOD05_021E779C, MOD05_021E77B0 - .word 0x17, MOD06_0224B948, MOD06_0224B964 - .word 0x18, MOD05_021ED9C0, MOD05_021ED9DC - .word 0x19, MOD06_0224BB50, MOD06_0224BB6C - .word 0x1A, MOD06_0224BCF4, MOD06_0224BD10 - .word 0x1B, MOD06_0224BF9C, MOD06_0224BFB8 - .word 0x1C, MOD06_0224CE30, MOD06_0224CE4C - .word 0x1D, MOD06_0224D244, MOD06_0224D260 - .word 0x1E, MOD06_0224A44C, MOD06_0224A460 - .word 0x1F, MOD06_0224A9E8, MOD06_0224AA04 - .word 0x20, 0x00000000, 0x00000000 - - .global UNK05_021FC9AC -UNK05_021FC9AC: ; 0x021FC9AC - .word 45, 30, 15 - - .global UNK05_021FC9B8 -UNK05_021FC9B8: ; 0x021FC9B8 - .word MOD05_021F5DA8, MOD05_021F5DC0, MOD05_021F5DF8, MOD05_021F5E30 - .word MOD05_021F5E64, MOD05_021F5EA8, MOD05_021F5ED4, MOD05_021F5EF8 - .word MOD05_021F5F18, MOD05_021F5F30, MOD05_021F5F3C, MOD05_021F5F5C - .word MOD05_021F5F9C, MOD05_021F5FA8, MOD05_021F5FEC, MOD05_021F6018 - .word MOD05_021F6058, MOD05_021F606C - - .global UNK05_021FCA00 -UNK05_021FCA00: ; 0x021FCA00 - .short 0x0000, 0x0000 ; SPECIES_NONE - .short 0x0001, 0x0001 ; SPECIES_BULBASAUR - .short 0x0001, 0x0001 ; SPECIES_IVYSAUR - .short 0x0002, 0x0001 ; SPECIES_VENUSAUR - .short 0x0001, 0x0001 ; SPECIES_CHARMANDER - .short 0x0002, 0x0001 ; SPECIES_CHARMELEON - .short 0x0002, 0x0001 ; SPECIES_CHARIZARD - .short 0x0001, 0x0001 ; SPECIES_SQUIRTLE - .short 0x0001, 0x0001 ; SPECIES_WARTORTLE - .short 0x0002, 0x0001 ; SPECIES_BLASTOISE - .short 0x0001, 0x0001 ; SPECIES_CATERPIE - .short 0x0005, 0x0000 ; SPECIES_METAPOD - .short 0x0001, 0x0001 ; SPECIES_BUTTERFREE - .short 0x0001, 0x0001 ; SPECIES_WEEDLE - .short 0x0005, 0x0000 ; SPECIES_KAKUNA - .short 0x0002, 0x0001 ; SPECIES_BEEDRILL - .short 0x0001, 0x0001 ; SPECIES_PIDGEY - .short 0x0001, 0x0001 ; SPECIES_PIDGEOTTO - .short 0x0002, 0x0001 ; SPECIES_PIDGEOT - .short 0x0001, 0x0001 ; SPECIES_RATTATA - .short 0x0002, 0x0001 ; SPECIES_RATICATE - .short 0x0002, 0x0001 ; SPECIES_SPEAROW - .short 0x0002, 0x0001 ; SPECIES_FEAROW - .short 0x0003, 0x0000 ; SPECIES_EKANS - .short 0x0003, 0x0000 ; SPECIES_ARBOK - .short 0x0001, 0x0001 ; SPECIES_PIKACHU - .short 0x0001, 0x0001 ; SPECIES_RAICHU - .short 0x0001, 0x0001 ; SPECIES_SANDSHREW - .short 0x0001, 0x0001 ; SPECIES_SANDSLASH - .short 0x0001, 0x0001 ; SPECIES_NIDORAN_F - .short 0x0001, 0x0001 ; SPECIES_NIDORINA - .short 0x0002, 0x0001 ; SPECIES_NIDOQUEEN - .short 0x0001, 0x0001 ; SPECIES_NIDORAN_M - .short 0x0002, 0x0001 ; SPECIES_NIDORINO - .short 0x0002, 0x0001 ; SPECIES_NIDOKING - .short 0x0001, 0x0001 ; SPECIES_CLEFAIRY - .short 0x0001, 0x0001 ; SPECIES_CLEFABLE - .short 0x0001, 0x0001 ; SPECIES_VULPIX - .short 0x0002, 0x0001 ; SPECIES_NINETALES - .short 0x0001, 0x0001 ; SPECIES_JIGGLYPUFF - .short 0x0001, 0x0001 ; SPECIES_WIGGLYTUFF - .short 0x0003, 0x0000 ; SPECIES_ZUBAT - .short 0x0003, 0x0001 ; SPECIES_GOLBAT - .short 0x0001, 0x0001 ; SPECIES_ODDISH - .short 0x0001, 0x0001 ; SPECIES_GLOOM - .short 0x0001, 0x0001 ; SPECIES_VILEPLUME - .short 0x0005, 0x0001 ; SPECIES_PARAS - .short 0x0005, 0x0001 ; SPECIES_PARASECT - .short 0x0001, 0x0001 ; SPECIES_VENONAT - .short 0x0005, 0x0001 ; SPECIES_VENOMOTH - .short 0x0001, 0x0000 ; SPECIES_DIGLETT - .short 0x0001, 0x0000 ; SPECIES_DUGTRIO - .short 0x0001, 0x0001 ; SPECIES_MEOWTH - .short 0x0002, 0x0001 ; SPECIES_PERSIAN - .short 0x0004, 0x0001 ; SPECIES_PSYDUCK - .short 0x0002, 0x0001 ; SPECIES_GOLDUCK - .short 0x0002, 0x0001 ; SPECIES_MANKEY - .short 0x0002, 0x0001 ; SPECIES_PRIMEAPE - .short 0x0001, 0x0001 ; SPECIES_GROWLITHE - .short 0x0002, 0x0001 ; SPECIES_ARCANINE - .short 0x0001, 0x0001 ; SPECIES_POLIWAG - .short 0x0001, 0x0001 ; SPECIES_POLIWHIRL - .short 0x0002, 0x0001 ; SPECIES_POLIWRATH - .short 0x0001, 0x0001 ; SPECIES_ABRA - .short 0x0002, 0x0001 ; SPECIES_KADABRA - .short 0x0002, 0x0001 ; SPECIES_ALAKAZAM - .short 0x0001, 0x0001 ; SPECIES_MACHOP - .short 0x0002, 0x0001 ; SPECIES_MACHOKE - .short 0x0002, 0x0001 ; SPECIES_MACHAMP - .short 0x0001, 0x0001 ; SPECIES_BELLSPROUT - .short 0x0004, 0x0000 ; SPECIES_WEEPINBELL - .short 0x0004, 0x0000 ; SPECIES_VICTREEBEL - .short 0x0002, 0x0000 ; SPECIES_TENTACOOL - .short 0x0002, 0x0000 ; SPECIES_TENTACRUEL - .short 0x0001, 0x0000 ; SPECIES_GEODUDE - .short 0x0002, 0x0001 ; SPECIES_GRAVELER - .short 0x0002, 0x0001 ; SPECIES_GOLEM - .short 0x0001, 0x0001 ; SPECIES_PONYTA - .short 0x0002, 0x0001 ; SPECIES_RAPIDASH - .short 0x0004, 0x0001 ; SPECIES_SLOWPOKE - .short 0x0004, 0x0001 ; SPECIES_SLOWBRO - .short 0x0005, 0x0001 ; SPECIES_MAGNEMITE - .short 0x0005, 0x0001 ; SPECIES_MAGNETON - .short 0x0002, 0x0001 ; SPECIES_FARFETCHD - .short 0x0001, 0x0001 ; SPECIES_DODUO - .short 0x0002, 0x0001 ; SPECIES_DODRIO - .short 0x0004, 0x0000 ; SPECIES_SEEL - .short 0x0004, 0x0000 ; SPECIES_DEWGONG - .short 0x0003, 0x0000 ; SPECIES_GRIMER - .short 0x0003, 0x0000 ; SPECIES_MUK - .short 0x0004, 0x0000 ; SPECIES_SHELLDER - .short 0x0002, 0x0000 ; SPECIES_CLOYSTER - .short 0x0003, 0x0000 ; SPECIES_GASTLY - .short 0x0003, 0x0000 ; SPECIES_HAUNTER - .short 0x0003, 0x0001 ; SPECIES_GENGAR - .short 0x0002, 0x0000 ; SPECIES_ONIX - .short 0x0003, 0x0001 ; SPECIES_DROWZEE - .short 0x0003, 0x0001 ; SPECIES_HYPNO - .short 0x0001, 0x0001 ; SPECIES_KRABBY - .short 0x0002, 0x0001 ; SPECIES_KINGLER - .short 0x0002, 0x0000 ; SPECIES_VOLTORB - .short 0x0002, 0x0000 ; SPECIES_ELECTRODE - .short 0x0001, 0x0000 ; SPECIES_EXEGGCUTE - .short 0x0004, 0x0001 ; SPECIES_EXEGGUTOR - .short 0x0001, 0x0001 ; SPECIES_CUBONE - .short 0x0002, 0x0001 ; SPECIES_MAROWAK - .short 0x0002, 0x0001 ; SPECIES_HITMONLEE - .short 0x0002, 0x0001 ; SPECIES_HITMONCHAN - .short 0x0004, 0x0001 ; SPECIES_LICKITUNG - .short 0x0003, 0x0000 ; SPECIES_KOFFING - .short 0x0003, 0x0000 ; SPECIES_WEEZING - .short 0x0002, 0x0001 ; SPECIES_RHYHORN - .short 0x0002, 0x0001 ; SPECIES_RHYDON - .short 0x0001, 0x0001 ; SPECIES_CHANSEY - .short 0x0001, 0x0001 ; SPECIES_TANGELA - .short 0x0002, 0x0001 ; SPECIES_KANGASKHAN - .short 0x0001, 0x0000 ; SPECIES_HORSEA - .short 0x0002, 0x0000 ; SPECIES_SEADRA - .short 0x0001, 0x0000 ; SPECIES_GOLDEEN - .short 0x0002, 0x0000 ; SPECIES_SEAKING - .short 0x0005, 0x0001 ; SPECIES_STARYU - .short 0x0005, 0x0001 ; SPECIES_STARMIE - .short 0x0001, 0x0001 ; SPECIES_MR_MIME - .short 0x0002, 0x0001 ; SPECIES_SCYTHER - .short 0x0001, 0x0000 ; SPECIES_JYNX - .short 0x0002, 0x0001 ; SPECIES_ELECTABUZZ - .short 0x0002, 0x0001 ; SPECIES_MAGMAR - .short 0x0002, 0x0001 ; SPECIES_PINSIR - .short 0x0002, 0x0001 ; SPECIES_TAUROS - .short 0x0004, 0x0000 ; SPECIES_MAGIKARP - .short 0x0003, 0x0000 ; SPECIES_GYARADOS - .short 0x0001, 0x0000 ; SPECIES_LAPRAS - .short 0x0004, 0x0000 ; SPECIES_DITTO - .short 0x0001, 0x0001 ; SPECIES_EEVEE - .short 0x0002, 0x0001 ; SPECIES_VAPOREON - .short 0x0002, 0x0001 ; SPECIES_JOLTEON - .short 0x0002, 0x0001 ; SPECIES_FLAREON - .short 0x0005, 0x0001 ; SPECIES_PORYGON - .short 0x0001, 0x0001 ; SPECIES_OMANYTE - .short 0x0002, 0x0001 ; SPECIES_OMASTAR - .short 0x0005, 0x0001 ; SPECIES_KABUTO - .short 0x0002, 0x0001 ; SPECIES_KABUTOPS - .short 0x0002, 0x0001 ; SPECIES_AERODACTYL - .short 0x0004, 0x0001 ; SPECIES_SNORLAX - .short 0x0002, 0x0001 ; SPECIES_ARTICUNO - .short 0x0002, 0x0001 ; SPECIES_ZAPDOS - .short 0x0002, 0x0001 ; SPECIES_MOLTRES - .short 0x0001, 0x0000 ; SPECIES_DRATINI - .short 0x0002, 0x0000 ; SPECIES_DRAGONAIR - .short 0x0002, 0x0001 ; SPECIES_DRAGONITE - .short 0x0002, 0x0001 ; SPECIES_MEWTWO - .short 0x0001, 0x0001 ; SPECIES_MEW - .short 0x0001, 0x0001 ; SPECIES_CHIKORITA - .short 0x0001, 0x0001 ; SPECIES_BAYLEEF - .short 0x0002, 0x0001 ; SPECIES_MEGANIUM - .short 0x0001, 0x0001 ; SPECIES_CYNDAQUIL - .short 0x0002, 0x0001 ; SPECIES_QUILAVA - .short 0x0002, 0x0001 ; SPECIES_TYPHLOSION - .short 0x0001, 0x0001 ; SPECIES_TOTODILE - .short 0x0002, 0x0001 ; SPECIES_CROCONAW - .short 0x0002, 0x0001 ; SPECIES_FERALIGATR - .short 0x0001, 0x0001 ; SPECIES_SENTRET - .short 0x0001, 0x0001 ; SPECIES_FURRET - .short 0x0001, 0x0001 ; SPECIES_HOOTHOOT - .short 0x0002, 0x0001 ; SPECIES_NOCTOWL - .short 0x0001, 0x0001 ; SPECIES_LEDYBA - .short 0x0002, 0x0001 ; SPECIES_LEDIAN - .short 0x0003, 0x0001 ; SPECIES_SPINARAK - .short 0x0003, 0x0001 ; SPECIES_ARIADOS - .short 0x0003, 0x0000 ; SPECIES_CROBAT - .short 0x0004, 0x0000 ; SPECIES_CHINCHOU - .short 0x0002, 0x0000 ; SPECIES_LANTURN - .short 0x0001, 0x0001 ; SPECIES_PICHU - .short 0x0001, 0x0001 ; SPECIES_CLEFFA - .short 0x0001, 0x0001 ; SPECIES_IGGLYBUFF - .short 0x0001, 0x0001 ; SPECIES_TOGEPI - .short 0x0001, 0x0001 ; SPECIES_TOGETIC - .short 0x0001, 0x0001 ; SPECIES_NATU - .short 0x0005, 0x0001 ; SPECIES_XATU - .short 0x0001, 0x0001 ; SPECIES_MAREEP - .short 0x0001, 0x0001 ; SPECIES_FLAAFFY - .short 0x0001, 0x0001 ; SPECIES_AMPHAROS - .short 0x0001, 0x0000 ; SPECIES_BELLOSSOM - .short 0x0001, 0x0001 ; SPECIES_MARILL - .short 0x0001, 0x0001 ; SPECIES_AZUMARILL - .short 0x0004, 0x0001 ; SPECIES_SUDOWOODO - .short 0x0001, 0x0001 ; SPECIES_POLITOED - .short 0x0001, 0x0001 ; SPECIES_HOPPIP - .short 0x0001, 0x0001 ; SPECIES_SKIPLOOM - .short 0x0001, 0x0001 ; SPECIES_JUMPLUFF - .short 0x0001, 0x0001 ; SPECIES_AIPOM - .short 0x0001, 0x0000 ; SPECIES_SUNKERN - .short 0x0001, 0x0001 ; SPECIES_SUNFLORA - .short 0x0001, 0x0001 ; SPECIES_YANMA - .short 0x0001, 0x0001 ; SPECIES_WOOPER - .short 0x0004, 0x0001 ; SPECIES_QUAGSIRE - .short 0x0002, 0x0001 ; SPECIES_ESPEON - .short 0x0002, 0x0001 ; SPECIES_UMBREON - .short 0x0003, 0x0001 ; SPECIES_MURKROW - .short 0x0004, 0x0001 ; SPECIES_SLOWKING - .short 0x0003, 0x0000 ; SPECIES_MISDREAVUS - .short 0x0005, 0x0000 ; SPECIES_UNOWN - .short 0x0004, 0x0001 ; SPECIES_WOBBUFFET - .short 0x0001, 0x0001 ; SPECIES_GIRAFARIG - .short 0x0005, 0x0000 ; SPECIES_PINECO - .short 0x0005, 0x0000 ; SPECIES_FORRETRESS - .short 0x0004, 0x0000 ; SPECIES_DUNSPARCE - .short 0x0004, 0x0001 ; SPECIES_GLIGAR - .short 0x0002, 0x0000 ; SPECIES_STEELIX - .short 0x0001, 0x0001 ; SPECIES_SNUBBULL - .short 0x0001, 0x0001 ; SPECIES_GRANBULL - .short 0x0002, 0x0000 ; SPECIES_QWILFISH - .short 0x0002, 0x0001 ; SPECIES_SCIZOR - .short 0x0001, 0x0001 ; SPECIES_SHUCKLE - .short 0x0002, 0x0001 ; SPECIES_HERACROSS - .short 0x0002, 0x0001 ; SPECIES_SNEASEL - .short 0x0001, 0x0001 ; SPECIES_TEDDIURSA - .short 0x0002, 0x0001 ; SPECIES_URSARING - .short 0x0004, 0x0000 ; SPECIES_SLUGMA - .short 0x0004, 0x0000 ; SPECIES_MAGCARGO - .short 0x0001, 0x0001 ; SPECIES_SWINUB - .short 0x0004, 0x0001 ; SPECIES_PILOSWINE - .short 0x0001, 0x0001 ; SPECIES_CORSOLA - .short 0x0005, 0x0000 ; SPECIES_REMORAID - .short 0x0004, 0x0001 ; SPECIES_OCTILLERY - .short 0x0001, 0x0001 ; SPECIES_DELIBIRD - .short 0x0002, 0x0000 ; SPECIES_MANTINE - .short 0x0002, 0x0001 ; SPECIES_SKARMORY - .short 0x0003, 0x0001 ; SPECIES_HOUNDOUR - .short 0x0003, 0x0001 ; SPECIES_HOUNDOOM - .short 0x0002, 0x0000 ; SPECIES_KINGDRA - .short 0x0001, 0x0001 ; SPECIES_PHANPY - .short 0x0002, 0x0001 ; SPECIES_DONPHAN - .short 0x0005, 0x0001 ; SPECIES_PORYGON2 - .short 0x0002, 0x0001 ; SPECIES_STANTLER - .short 0x0004, 0x0001 ; SPECIES_SMEARGLE - .short 0x0001, 0x0001 ; SPECIES_TYROGUE - .short 0x0002, 0x0001 ; SPECIES_HITMONTOP - .short 0x0001, 0x0001 ; SPECIES_SMOOCHUM - .short 0x0001, 0x0001 ; SPECIES_ELEKID - .short 0x0001, 0x0001 ; SPECIES_MAGBY - .short 0x0001, 0x0001 ; SPECIES_MILTANK - .short 0x0001, 0x0001 ; SPECIES_BLISSEY - .short 0x0002, 0x0001 ; SPECIES_RAIKOU - .short 0x0002, 0x0001 ; SPECIES_ENTEI - .short 0x0002, 0x0001 ; SPECIES_SUICUNE - .short 0x0001, 0x0001 ; SPECIES_LARVITAR - .short 0x0005, 0x0000 ; SPECIES_PUPITAR - .short 0x0003, 0x0001 ; SPECIES_TYRANITAR - .short 0x0002, 0x0001 ; SPECIES_LUGIA - .short 0x0002, 0x0001 ; SPECIES_HO_OH - .short 0x0001, 0x0001 ; SPECIES_CELEBI - .short 0x0001, 0x0001 ; SPECIES_TREECKO - .short 0x0002, 0x0001 ; SPECIES_GROVYLE - .short 0x0002, 0x0001 ; SPECIES_SCEPTILE - .short 0x0001, 0x0001 ; SPECIES_TORCHIC - .short 0x0002, 0x0001 ; SPECIES_COMBUSKEN - .short 0x0002, 0x0001 ; SPECIES_BLAZIKEN - .short 0x0001, 0x0001 ; SPECIES_MUDKIP - .short 0x0001, 0x0001 ; SPECIES_MARSHTOMP - .short 0x0002, 0x0001 ; SPECIES_SWAMPERT - .short 0x0001, 0x0001 ; SPECIES_POOCHYENA - .short 0x0002, 0x0001 ; SPECIES_MIGHTYENA - .short 0x0004, 0x0001 ; SPECIES_ZIGZAGOON - .short 0x0004, 0x0001 ; SPECIES_LINOONE - .short 0x0001, 0x0001 ; SPECIES_WURMPLE - .short 0x0005, 0x0000 ; SPECIES_SILCOON - .short 0x0001, 0x0001 ; SPECIES_BEAUTIFLY - .short 0x0005, 0x0000 ; SPECIES_CASCOON - .short 0x0002, 0x0001 ; SPECIES_DUSTOX - .short 0x0001, 0x0001 ; SPECIES_LOTAD - .short 0x0004, 0x0001 ; SPECIES_LOMBRE - .short 0x0004, 0x0001 ; SPECIES_LUDICOLO - .short 0x0005, 0x0001 ; SPECIES_SEEDOT - .short 0x0002, 0x0001 ; SPECIES_NUZLEAF - .short 0x0003, 0x0001 ; SPECIES_SHIFTRY - .short 0x0001, 0x0001 ; SPECIES_TAILLOW - .short 0x0002, 0x0001 ; SPECIES_SWELLOW - .short 0x0001, 0x0001 ; SPECIES_WINGULL - .short 0x0001, 0x0001 ; SPECIES_PELIPPER - .short 0x0001, 0x0001 ; SPECIES_RALTS - .short 0x0001, 0x0001 ; SPECIES_KIRLIA - .short 0x0001, 0x0001 ; SPECIES_GARDEVOIR - .short 0x0001, 0x0001 ; SPECIES_SURSKIT - .short 0x0002, 0x0000 ; SPECIES_MASQUERAIN - .short 0x0001, 0x0001 ; SPECIES_SHROOMISH - .short 0x0002, 0x0001 ; SPECIES_BRELOOM - .short 0x0004, 0x0001 ; SPECIES_SLAKOTH - .short 0x0002, 0x0001 ; SPECIES_VIGOROTH - .short 0x0004, 0x0001 ; SPECIES_SLAKING - .short 0x0005, 0x0001 ; SPECIES_NINCADA - .short 0x0002, 0x0001 ; SPECIES_NINJASK - .short 0x0004, 0x0001 ; SPECIES_SHEDINJA - .short 0x0004, 0x0001 ; SPECIES_WHISMUR - .short 0x0004, 0x0001 ; SPECIES_LOUDRED - .short 0x0002, 0x0001 ; SPECIES_EXPLOUD - .short 0x0001, 0x0001 ; SPECIES_MAKUHITA - .short 0x0002, 0x0001 ; SPECIES_HARIYAMA - .short 0x0001, 0x0001 ; SPECIES_AZURILL - .short 0x0005, 0x0001 ; SPECIES_NOSEPASS - .short 0x0001, 0x0001 ; SPECIES_SKITTY - .short 0x0001, 0x0001 ; SPECIES_DELCATTY - .short 0x0003, 0x0001 ; SPECIES_SABLEYE - .short 0x0001, 0x0001 ; SPECIES_MAWILE - .short 0x0001, 0x0001 ; SPECIES_ARON - .short 0x0002, 0x0001 ; SPECIES_LAIRON - .short 0x0002, 0x0001 ; SPECIES_AGGRON - .short 0x0001, 0x0001 ; SPECIES_MEDITITE - .short 0x0002, 0x0001 ; SPECIES_MEDICHAM - .short 0x0001, 0x0001 ; SPECIES_ELECTRIKE - .short 0x0002, 0x0001 ; SPECIES_MANECTRIC - .short 0x0001, 0x0001 ; SPECIES_PLUSLE - .short 0x0001, 0x0001 ; SPECIES_MINUN - .short 0x0002, 0x0001 ; SPECIES_VOLBEAT - .short 0x0001, 0x0001 ; SPECIES_ILLUMISE - .short 0x0001, 0x0001 ; SPECIES_ROSELIA - .short 0x0004, 0x0000 ; SPECIES_GULPIN - .short 0x0004, 0x0000 ; SPECIES_SWALOT - .short 0x0003, 0x0000 ; SPECIES_CARVANHA - .short 0x0003, 0x0000 ; SPECIES_SHARPEDO - .short 0x0001, 0x0000 ; SPECIES_WAILMER - .short 0x0002, 0x0000 ; SPECIES_WAILORD - .short 0x0004, 0x0001 ; SPECIES_NUMEL - .short 0x0004, 0x0001 ; SPECIES_CAMERUPT - .short 0x0004, 0x0001 ; SPECIES_TORKOAL - .short 0x0001, 0x0000 ; SPECIES_SPOINK - .short 0x0002, 0x0001 ; SPECIES_GRUMPIG - .short 0x0004, 0x0001 ; SPECIES_SPINDA - .short 0x0004, 0x0001 ; SPECIES_TRAPINCH - .short 0x0002, 0x0001 ; SPECIES_VIBRAVA - .short 0x0002, 0x0001 ; SPECIES_FLYGON - .short 0x0001, 0x0001 ; SPECIES_CACNEA - .short 0x0003, 0x0001 ; SPECIES_CACTURNE - .short 0x0001, 0x0001 ; SPECIES_SWABLU - .short 0x0001, 0x0001 ; SPECIES_ALTARIA - .short 0x0002, 0x0001 ; SPECIES_ZANGOOSE - .short 0x0003, 0x0000 ; SPECIES_SEVIPER - .short 0x0005, 0x0000 ; SPECIES_LUNATONE - .short 0x0005, 0x0000 ; SPECIES_SOLROCK - .short 0x0001, 0x0000 ; SPECIES_BARBOACH - .short 0x0004, 0x0000 ; SPECIES_WHISCASH - .short 0x0002, 0x0001 ; SPECIES_CORPHISH - .short 0x0003, 0x0001 ; SPECIES_CRAWDAUNT - .short 0x0005, 0x0001 ; SPECIES_BALTOY - .short 0x0005, 0x0001 ; SPECIES_CLAYDOL - .short 0x0005, 0x0001 ; SPECIES_LILEEP - .short 0x0005, 0x0001 ; SPECIES_CRADILY - .short 0x0005, 0x0000 ; SPECIES_ANORITH - .short 0x0002, 0x0001 ; SPECIES_ARMALDO - .short 0x0004, 0x0000 ; SPECIES_FEEBAS - .short 0x0002, 0x0000 ; SPECIES_MILOTIC - .short 0x0001, 0x0000 ; SPECIES_CASTFORM - .short 0x0001, 0x0001 ; SPECIES_KECLEON - .short 0x0003, 0x0000 ; SPECIES_SHUPPET - .short 0x0003, 0x0001 ; SPECIES_BANETTE - .short 0x0003, 0x0000 ; SPECIES_DUSKULL - .short 0x0003, 0x0001 ; SPECIES_DUSCLOPS - .short 0x0002, 0x0001 ; SPECIES_TROPIUS - .short 0x0001, 0x0000 ; SPECIES_CHIMECHO - .short 0x0003, 0x0001 ; SPECIES_ABSOL - .short 0x0004, 0x0001 ; SPECIES_WYNAUT - .short 0x0001, 0x0001 ; SPECIES_SNORUNT - .short 0x0002, 0x0000 ; SPECIES_GLALIE - .short 0x0001, 0x0000 ; SPECIES_SPHEAL - .short 0x0002, 0x0000 ; SPECIES_SEALEO - .short 0x0002, 0x0000 ; SPECIES_WALREIN - .short 0x0001, 0x0000 ; SPECIES_CLAMPERL - .short 0x0002, 0x0000 ; SPECIES_HUNTAIL - .short 0x0001, 0x0000 ; SPECIES_GOREBYSS - .short 0x0004, 0x0000 ; SPECIES_RELICANTH - .short 0x0001, 0x0000 ; SPECIES_LUVDISC - .short 0x0001, 0x0001 ; SPECIES_BAGON - .short 0x0005, 0x0001 ; SPECIES_SHELGON - .short 0x0002, 0x0001 ; SPECIES_SALAMENCE - .short 0x0005, 0x0001 ; SPECIES_BELDUM - .short 0x0005, 0x0001 ; SPECIES_METANG - .short 0x0002, 0x0001 ; SPECIES_METAGROSS - .short 0x0005, 0x0001 ; SPECIES_REGIROCK - .short 0x0005, 0x0001 ; SPECIES_REGICE - .short 0x0005, 0x0001 ; SPECIES_REGISTEEL - .short 0x0001, 0x0001 ; SPECIES_LATIAS - .short 0x0002, 0x0001 ; SPECIES_LATIOS - .short 0x0002, 0x0001 ; SPECIES_KYOGRE - .short 0x0002, 0x0001 ; SPECIES_GROUDON - .short 0x0002, 0x0000 ; SPECIES_RAYQUAZA - .short 0x0001, 0x0001 ; SPECIES_JIRACHI - .short 0x0002, 0x0001 ; SPECIES_DEOXYS - .short 0x0001, 0x0001 ; SPECIES_TURTWIG - .short 0x0001, 0x0001 ; SPECIES_GROTLE - .short 0x0002, 0x0001 ; SPECIES_TORTERRA - .short 0x0001, 0x0001 ; SPECIES_CHIMCHAR - .short 0x0002, 0x0001 ; SPECIES_MONFERNO - .short 0x0002, 0x0001 ; SPECIES_INFERNAPE - .short 0x0001, 0x0001 ; SPECIES_PIPLUP - .short 0x0002, 0x0001 ; SPECIES_PRINPLUP - .short 0x0002, 0x0001 ; SPECIES_EMPOLEON - .short 0x0001, 0x0001 ; SPECIES_STARLY - .short 0x0001, 0x0001 ; SPECIES_STARAVIA - .short 0x0002, 0x0001 ; SPECIES_STARAPTOR - .short 0x0004, 0x0001 ; SPECIES_BIDOOF - .short 0x0004, 0x0001 ; SPECIES_BIBAREL - .short 0x0001, 0x0001 ; SPECIES_KRICKETOT - .short 0x0002, 0x0001 ; SPECIES_KRICKETUNE - .short 0x0001, 0x0001 ; SPECIES_SHINX - .short 0x0001, 0x0001 ; SPECIES_LUXIO - .short 0x0002, 0x0001 ; SPECIES_LUXRAY - .short 0x0001, 0x0001 ; SPECIES_BUDEW - .short 0x0002, 0x0001 ; SPECIES_ROSERADE - .short 0x0002, 0x0001 ; SPECIES_CRANIDOS - .short 0x0002, 0x0001 ; SPECIES_RAMPARDOS - .short 0x0002, 0x0001 ; SPECIES_SHIELDON - .short 0x0002, 0x0001 ; SPECIES_BASTIODON - .short 0x0001, 0x0000 ; SPECIES_BURMY - .short 0x0001, 0x0000 ; SPECIES_WORMADAM - .short 0x0002, 0x0001 ; SPECIES_MOTHIM - .short 0x0001, 0x0000 ; SPECIES_COMBEE - .short 0x0001, 0x0000 ; SPECIES_VESPIQUEN - .short 0x0001, 0x0001 ; SPECIES_PACHIRISU - .short 0x0001, 0x0001 ; SPECIES_BUIZEL - .short 0x0002, 0x0001 ; SPECIES_FLOATZEL - .short 0x0001, 0x0001 ; SPECIES_CHERUBI - .short 0x0001, 0x0001 ; SPECIES_CHERRIM - .short 0x0001, 0x0001 ; SPECIES_SHELLOS - .short 0x0003, 0x0001 ; SPECIES_GASTRODON - .short 0x0001, 0x0001 ; SPECIES_AMBIPOM - .short 0x0003, 0x0000 ; SPECIES_DRIFLOON - .short 0x0003, 0x0000 ; SPECIES_DRIFBLIM - .short 0x0001, 0x0001 ; SPECIES_BUNEARY - .short 0x0001, 0x0001 ; SPECIES_LOPUNNY - .short 0x0003, 0x0000 ; SPECIES_MISMAGIUS - .short 0x0003, 0x0001 ; SPECIES_HONCHKROW - .short 0x0001, 0x0001 ; SPECIES_GLAMEOW - .short 0x0001, 0x0001 ; SPECIES_PURUGLY - .short 0x0001, 0x0001 ; SPECIES_CHINGLING - .short 0x0003, 0x0001 ; SPECIES_STUNKY - .short 0x0003, 0x0001 ; SPECIES_SKUNTANK - .short 0x0005, 0x0000 ; SPECIES_BRONZOR - .short 0x0005, 0x0000 ; SPECIES_BRONZONG - .short 0x0004, 0x0001 ; SPECIES_BONSLY - .short 0x0001, 0x0001 ; SPECIES_MIME_JR - .short 0x0001, 0x0001 ; SPECIES_HAPPINY - .short 0x0004, 0x0001 ; SPECIES_CHATOT - .short 0x0003, 0x0001 ; SPECIES_SPIRITOMB - .short 0x0001, 0x0001 ; SPECIES_GIBLE - .short 0x0002, 0x0001 ; SPECIES_GABITE - .short 0x0002, 0x0001 ; SPECIES_GARCHOMP - .short 0x0004, 0x0001 ; SPECIES_MUNCHLAX - .short 0x0001, 0x0001 ; SPECIES_RIOLU - .short 0x0002, 0x0001 ; SPECIES_LUCARIO - .short 0x0004, 0x0001 ; SPECIES_HIPPOPOTAS - .short 0x0002, 0x0001 ; SPECIES_HIPPOWDON - .short 0x0003, 0x0001 ; SPECIES_SKORUPI - .short 0x0003, 0x0001 ; SPECIES_DRAPION - .short 0x0003, 0x0001 ; SPECIES_CROAGUNK - .short 0x0003, 0x0001 ; SPECIES_TOXICROAK - .short 0x0004, 0x0000 ; SPECIES_CARNIVINE - .short 0x0001, 0x0000 ; SPECIES_FINNEON - .short 0x0002, 0x0000 ; SPECIES_LUMINEON - .short 0x0001, 0x0000 ; SPECIES_MANTYKE - .short 0x0001, 0x0001 ; SPECIES_SNOVER - .short 0x0002, 0x0001 ; SPECIES_ABOMASNOW - .short 0x0002, 0x0001 ; SPECIES_WEAVILE - .short 0x0005, 0x0000 ; SPECIES_MAGNEZONE - .short 0x0004, 0x0001 ; SPECIES_LICKILICKY - .short 0x0002, 0x0001 ; SPECIES_RHYPERIOR - .short 0x0004, 0x0001 ; SPECIES_TANGROWTH - .short 0x0002, 0x0001 ; SPECIES_ELECTIVIRE - .short 0x0002, 0x0001 ; SPECIES_MAGMORTAR - .short 0x0002, 0x0001 ; SPECIES_TOGEKISS - .short 0x0002, 0x0001 ; SPECIES_YANMEGA - .short 0x0002, 0x0001 ; SPECIES_LEAFEON - .short 0x0002, 0x0001 ; SPECIES_GLACEON - .short 0x0002, 0x0001 ; SPECIES_GLISCOR - .short 0x0004, 0x0001 ; SPECIES_MAMOSWINE - .short 0x0005, 0x0001 ; SPECIES_PORYGON_Z - .short 0x0002, 0x0001 ; SPECIES_GALLADE - .short 0x0005, 0x0001 ; SPECIES_PROBOPASS - .short 0x0003, 0x0000 ; SPECIES_DUSKNOIR - .short 0x0001, 0x0000 ; SPECIES_FROSLASS - .short 0x0002, 0x0000 ; SPECIES_ROTOM - .short 0x0001, 0x0001 ; SPECIES_UXIE - .short 0x0001, 0x0001 ; SPECIES_MESPRIT - .short 0x0001, 0x0001 ; SPECIES_AZELF - .short 0x0002, 0x0001 ; SPECIES_DIALGA - .short 0x0002, 0x0001 ; SPECIES_PALKIA - .short 0x0002, 0x0001 ; SPECIES_HEATRAN - .short 0x0005, 0x0001 ; SPECIES_REGIGIGAS - .short 0x0002, 0x0001 ; SPECIES_GIRATINA - .short 0x0002, 0x0000 ; SPECIES_CRESSELIA - .short 0x0001, 0x0000 ; SPECIES_PHIONE - .short 0x0001, 0x0000 ; SPECIES_MANAPHY - .short 0x0003, 0x0001 ; SPECIES_DARKRAI - .short 0x0001, 0x0001 ; SPECIES_SHAYMIN - .short 0x0002, 0x0001 ; SPECIES_ARCEUS - - .global UNK05_021FD1B8 -UNK05_021FD1B8: ; 0x021FD1B8 - .word MOD05_021F6284, MOD05_021F628C, MOD05_021F62C4, 0x00000000 - - .section .data - - .balign 4 - .global UNK05_021FD648 -UNK05_021FD648: ; 0x021FD648 - .asciz "fielddata/build_model/build_model_matshp.dat" - - .section .bss - - .global UNK05_021FD680 -UNK05_021FD680: ; 0x021FD680 - .space 0x4 - - .global UNK05_021FD684 -UNK05_021FD684: ; 0x021FD684 - .space 0x3C01C |