diff options
author | Cleverking2003 <30466983+Cleverking2003@users.noreply.github.com> | 2020-08-19 21:00:20 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-19 21:00:20 +0300 |
commit | 512d22cff9098f9c3636ca018355a851d011effc (patch) | |
tree | 74ab9309d14c747df02c2d90278b905fd015a30f | |
parent | f7e8e085ed15564fe03315b898707e7a762d6ce1 (diff) | |
parent | 45bf349cdc21dec32d915daa22ed9ddbe1d03f71 (diff) |
Merge pull request #264 from red031000/master
split mod05_021E2B80, mod05_021E2E88, mod05_021E3340, mod05_021E3444 and mod05_021E4AE4
-rw-r--r-- | arm9/arm9.lsf | 5 | ||||
-rw-r--r-- | arm9/global.inc | 84 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E2B80.s | 392 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E2E88.s | 627 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E3340.s | 128 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E3444.s | 3021 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E4AE4.s | 1103 | ||||
-rw-r--r-- | arm9/modules/05/asm/module_05.s | 5246 |
8 files changed, 5360 insertions, 5246 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index a90100e4..8d496a27 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -532,6 +532,11 @@ Overlay MODULE_05 Object mod05_021DC0B8.o Object mod05_021E1374.o Object mod05_021E1AD8.o + Object mod05_021E2B80.o + Object mod05_021E2E88.o + Object mod05_021E3340.o + Object mod05_021E3444.o + Object mod05_021E4AE4.o Object module_05.o } diff --git a/arm9/global.inc b/arm9/global.inc index a58567af..19ea45d3 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -6392,7 +6392,51 @@ .extern MOD05_021E331C .extern MOD05_021E3424 .extern MOD05_021E3444 +.extern MOD05_021E3474 +.extern MOD05_021E35AC +.extern MOD05_021E35B0 +.extern MOD05_021E35C0 +.extern MOD05_021E35EC +.extern MOD05_021E35FC +.extern MOD05_021E3644 +.extern MOD05_021E36A4 +.extern MOD05_021E3768 +.extern MOD05_021E37A4 +.extern MOD05_021E37CC +.extern MOD05_021E3888 +.extern MOD05_021E39FC +.extern MOD05_021E3A48 +.extern MOD05_021E3A70 +.extern MOD05_021E3C00 +.extern MOD05_021E3D20 +.extern MOD05_021E3DA0 +.extern MOD05_021E3E14 +.extern MOD05_021E3E44 +.extern MOD05_021E3E64 +.extern MOD05_021E3F3C +.extern MOD05_021E3F68 +.extern MOD05_021E3FC4 +.extern MOD05_021E3FF8 +.extern MOD05_021E4014 +.extern MOD05_021E4140 +.extern MOD05_021E4158 +.extern MOD05_021E4160 +.extern MOD05_021E41B8 +.extern MOD05_021E4394 +.extern MOD05_021E43C4 +.extern MOD05_021E43E4 +.extern MOD05_021E4424 +.extern MOD05_021E4688 +.extern MOD05_021E46B4 +.extern MOD05_021E46D4 +.extern MOD05_021E4754 +.extern MOD05_021E4788 +.extern MOD05_021E47A0 +.extern MOD05_021E47BC .extern MOD05_021E495C +.extern MOD05_021E49F0 +.extern MOD05_021E4A3C +.extern MOD05_021E4AD0 .extern MOD05_021E4AE4 .extern MOD05_021E4B38 .extern MOD05_021E4B44 @@ -6482,6 +6526,37 @@ .extern MOD05_021E85FC .extern MOD05_021E8648 .extern MOD05_021E8698 +.extern MOD05_021E88E8 +.extern MOD05_021E8A68 +.extern MOD05_021E8BEC +.extern MOD05_021E8D20 +.extern MOD05_021E8F20 +.extern MOD05_021E9030 +.extern MOD05_021E9140 +.extern MOD05_021E94A8 +.extern MOD05_021E97A8 +.extern MOD05_021E9B68 +.extern MOD05_021EA0E4 +.extern MOD05_021EA3A4 +.extern MOD05_021EA884 +.extern MOD05_021EAAE8 +.extern MOD05_021EAD60 +.extern MOD05_021EB160 +.extern MOD05_021EB448 +.extern MOD05_021EB5B4 +.extern MOD05_021EBBC8 +.extern MOD05_021EBBE8 +.extern MOD05_021EBC08 +.extern MOD05_021EBC28 +.extern MOD05_021EBC48 +.extern MOD05_021EBC68 +.extern MOD05_021EBC88 +.extern MOD05_021EBCA8 +.extern MOD05_021EC3B8 +.extern MOD05_021EC3D8 +.extern MOD05_021EC3F8 +.extern MOD05_021EC418 +.extern MOD05_021EC438 .extern MOD05_021EC464 .extern MOD05_021EC57C .extern MOD05_021EC71C @@ -6609,6 +6684,14 @@ .extern MOD05_021F54E0 .extern MOD05_021F57EC .extern MOD05_021F57F0 +.extern MOD05_021F5990 +.extern MOD05_021F59EC +.extern MOD05_021F5A20 +.extern MOD05_021F5A5C +.extern MOD05_021F5A74 +.extern MOD05_021F5A90 +.extern MOD05_021F5AB8 +.extern MOD05_021F5AE4 .extern MOD05_021F5B9C .extern MOD05_021F5C44 .extern MOD05_021F5C70 @@ -8063,6 +8146,7 @@ .extern UNK05_021F9494 .extern UNK05_021FC718 .extern UNK05_021FC79C +.extern UNK05_021FC820 .extern MOD63_021DBAB8 .extern UNK_020F2B7C .extern UNK_020F2B8C diff --git a/arm9/modules/05/asm/mod05_021E2B80.s b/arm9/modules/05/asm/mod05_021E2B80.s new file mode 100644 index 00000000..86414448 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021E2B80.s @@ -0,0 +1,392 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021E2B80 +MOD05_021E2B80: ; 0x021E2B80 + add r2, r0, #0 + add r2, #0x97 + ldrb r3, [r2] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + mov r2, #0x40 + lsl r1, r1, #0x1f + bic r3, r2 + lsr r1, r1, #0x19 + orr r1, r3 + add r0, #0x97 + strb r1, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021E2B9C +MOD05_021E2B9C: ; 0x021E2B9C + add r2, r0, #0 + add r2, #0x97 + ldrb r3, [r2] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + mov r2, #0x80 + lsl r1, r1, #0x1f + bic r3, r2 + lsr r1, r1, #0x18 + orr r1, r3 + add r0, #0x97 + strb r1, [r0] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021E2BB8 +MOD05_021E2BB8: ; 0x021E2BB8 + push {r4, lr} + add r4, r0, #0 + add r0, r1, #0 + bl MOD05_021E2D00 + strb r0, [r4] + mov r0, #0 + strb r0, [r4, #1] + mov r0, #1 + strb r0, [r4, #2] + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E2BD0 +MOD05_021E2BD0: ; 0x021E2BD0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + str r3, [sp, #4] + add r0, #0x80 + add r6, r1, #0 + ldr r0, [r0] + add r1, sp, #8 + add r7, r2, #0 + ldr r4, [sp, #0x38] + bl MOD05_021E2D14 + add r0, r5, #0 + add r0, #0x80 + ldr r0, [r0] + add r1, sp, #8 + bl MOD05_021E2D9C + add r0, sp, #8 + add r1, r6, #0 + add r2, r7, #0 + bl MOD05_021E2DD4 + cmp r4, #0 + bne _021E2C10 + add r0, r5, #0 + bl MOD05_021E2D00 + add r2, r0, #0 + mov r0, #0 + mov r1, #1 + b _021E2C16 +_021E2C10: + ldrb r2, [r4] + ldrb r0, [r4, #1] + ldrb r1, [r4, #2] +_021E2C16: + str r0, [sp] + ldr r3, [sp, #4] + add r0, sp, #8 + bl MOD05_021E2E40 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_ShowMessageInField +MOD05_ShowMessageInField: ; 0x021E2C24 + push {r4, r5, r6, lr} + sub sp, #0x18 + add r5, r0, #0 + add r0, #0x80 + add r4, r1, #0 + ldr r0, [r0] + add r1, sp, #0 + add r6, r2, #0 + bl MOD05_021E2D14 + add r5, #0x80 + ldr r0, [r5] + add r1, sp, #0 + bl MOD05_021E2D9C + add r0, sp, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021E2DD4 + add r0, sp, #0 + mov r1, #1 + bl MOD05_021E2E68 + add sp, #0x18 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021E2C58 +MOD05_021E2C58: ; 0x021E2C58 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + add r0, #0x80 + add r4, r1, #0 + ldr r0, [r0] + add r1, sp, #4 + add r6, r2, #0 + add r7, r3, #0 + bl MOD05_021E2D14 + add r0, r5, #0 + add r0, #0x80 + ldr r0, [r0] + add r1, sp, #4 + bl MOD05_021E2D9C + add r0, sp, #0x20 + ldrh r0, [r0, #0x10] + add r1, r4, #0 + add r2, r6, #0 + str r0, [sp] + add r0, sp, #4 + add r3, r7, #0 + bl MOD05_021E2DF0 + add r0, sp, #0x20 + ldrb r0, [r0, #0x14] + cmp r0, #0xff + beq _021E2CB0 + add r0, r5, #0 + bl MOD05_021E2D00 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + add r3, sp, #0x20 + ldrb r3, [r3, #0x14] + add r0, sp, #4 + mov r1, #1 + bl MOD05_021E2E40 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} +_021E2CB0: + add r0, sp, #4 + mov r1, #1 + bl MOD05_021E2E68 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021E2CBC +MOD05_021E2CBC: ; 0x021E2CBC + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r5, r0, #0 + add r0, #0x80 + add r4, r2, #0 + ldr r0, [r0] + add r2, sp, #4 + add r6, r3, #0 + bl MOD05_021E2D5C + add r0, r5, #0 + add r0, #0x80 + ldr r0, [r0] + add r1, sp, #4 + bl MOD05_021E2D9C + ldr r1, [r5, #0x78] + add r0, sp, #4 + add r2, r4, #0 + bl MOD05_021E2DD4 + add r0, r5, #0 + bl MOD05_021E2D00 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + add r0, sp, #4 + mov r1, #1 + add r3, r6, #0 + bl MOD05_021E2E40 + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + + thumb_func_start MOD05_021E2D00 +MOD05_021E2D00: ; 0x021E2D00 + push {r3, lr} + add r0, #0x80 + ldr r0, [r0] + ldr r0, [r0, #0xc] + bl Sav2_PlayerData_GetOptionsAddr + bl FUN_02024FF4 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E2D14 +MOD05_021E2D14: ; 0x021E2D14 + push {r3, r4, r5, lr} + add r4, r1, #0 + mov r1, #0x10 + add r5, r0, #0 + bl FUN_02039438 + ldr r0, [r0] + mov r1, #0x11 + str r0, [r4] + add r0, r5, #0 + bl FUN_02039438 + ldr r0, [r0] + mov r1, #0xf + str r0, [r4, #4] + add r0, r5, #0 + bl FUN_02039438 + ldr r0, [r0] + mov r1, #1 + str r0, [r4, #8] + add r0, r5, #0 + bl FUN_02039438 + str r0, [r4, #0xc] + add r0, r5, #0 + mov r1, #6 + bl FUN_02039438 + str r0, [r4, #0x10] + add r0, r5, #0 + mov r1, #3 + bl FUN_02039438 + str r0, [r4, #0x14] + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021E2D5C +MOD05_021E2D5C: ; 0x021E2D5C + push {r4, r5, r6, lr} + add r6, r1, #0 + mov r1, #0x10 + add r5, r0, #0 + add r4, r2, #0 + bl FUN_02039438 + ldr r0, [r0] + mov r1, #0x11 + str r0, [r4] + add r0, r5, #0 + bl FUN_02039438 + ldr r0, [r0] + mov r1, #1 + str r0, [r4, #4] + str r6, [r4, #8] + add r0, r5, #0 + bl FUN_02039438 + str r0, [r4, #0xc] + add r0, r5, #0 + mov r1, #6 + bl FUN_02039438 + str r0, [r4, #0x10] + add r0, r5, #0 + mov r1, #3 + bl FUN_02039438 + str r0, [r4, #0x14] + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021E2D9C +MOD05_021E2D9C: ; 0x021E2D9C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x10] + ldrb r0, [r0] + cmp r0, #0 + bne _021E2DC8 + ldr r0, [r5, #8] + ldr r1, [r4, #0xc] + mov r2, #3 + bl FUN_020545B8 + ldr r0, [r5, #0xc] + bl Sav2_PlayerData_GetOptionsAddr + add r1, r0, #0 + ldr r0, [r4, #0xc] + bl FUN_02054608 + ldr r0, [r4, #0x10] + mov r1, #1 + strb r1, [r0] +_021E2DC8: + ldr r0, [r4, #0xc] + mov r1, #0xf + bl FUN_02019620 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E2DD4 +MOD05_021E2DD4: ; 0x021E2DD4 + push {r4, lr} + add r4, r0, #0 + add r0, r1, #0 + add r1, r2, #0 + ldr r2, [r4, #4] + bl ReadMsgDataIntoString + ldr r0, [r4, #8] + ldr r1, [r4] + ldr r2, [r4, #4] + bl StringExpandPlaceholders + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E2DF0 +MOD05_021E2DF0: ; 0x021E2DF0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + add r0, sp, #0 + add r7, r3, #0 + bl FUN_02013724 + add r0, sp, #0 + add r1, r4, #0 + add r2, r6, #0 + bl FUN_02013980 + add r0, sp, #0 + mov r1, #0 + add r2, r7, #0 + bl FUN_02013998 + add r2, sp, #0x10 + ldrh r2, [r2, #0x10] + add r0, sp, #0 + mov r1, #1 + bl FUN_02013998 + add r0, sp, #0 + mov r1, #0x20 + bl FUN_020137D4 + add r4, r0, #0 + ldr r0, [r5] + add r1, r4, #0 + bl StringCopy + add r0, r4, #0 + bl String_dtor + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E2E40 +MOD05_021E2E40: ; 0x021E2E40 + push {r4, r5, r6, lr} + sub sp, #8 + add r4, r0, #0 + lsl r0, r3, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [sp, #0x18] + add r5, r2, #0 + str r0, [sp, #4] + add r6, r1, #0 + ldr r0, [r4, #0xc] + ldr r1, [r4] + add r2, r6, #0 + add r3, r5, #0 + bl FUN_02054690 + ldr r1, [r4, #0x14] + strb r0, [r1] + add sp, #8 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021E2E68 +MOD05_021E2E68: ; 0x021E2E68 + push {r3, r4, lr} + sub sp, #0xc + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + add r4, r0, #0 + str r3, [sp, #8] + ldr r0, [r4, #0xc] + ldr r2, [r4] + bl AddTextPrinterParameterized + ldr r1, [r4, #0x14] + strb r0, [r1] + add sp, #0xc + pop {r3, r4, pc} + .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021E2E88.s b/arm9/modules/05/asm/mod05_021E2E88.s new file mode 100644 index 00000000..f49a1f99 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021E2E88.s @@ -0,0 +1,627 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021E2E88 +MOD05_021E2E88: ; 0x021E2E88 + push {r4, r5, r6, lr} + lsl r6, r1, #5 + add r5, r0, #0 + add r4, r2, #0 + add r1, r6, #0 + bl DC_FlushRange + add r0, r5, #0 + lsl r1, r4, #5 + add r2, r6, #0 + bl GX_LoadBGPltt + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E2EA4 +MOD05_021E2EA4: ; 0x021E2EA4 + push {r3, r4, lr} + sub sp, #0x14 + mov r3, #0 + add r4, r0, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r2, #3 + add r1, r4, #0 + str r2, [sp, #8] + mov r0, #7 + str r0, [sp, #0xc] + ldr r0, _021E2EDC ; =0x000002CD + add r1, #0x20 + str r0, [sp, #0x10] + ldr r0, [r4, #0x1c] + bl FUN_02019064 + mov r0, #0 + str r0, [sp] + ldr r2, _021E2EE0 ; =0x000003CF + add r0, r4, #0 + mov r1, #3 + mov r3, #7 + bl MOD05_021E2EE4 + add sp, #0x14 + pop {r3, r4, pc} + .balign 4, 0 +_021E2EDC: .word 0x000002CD +_021E2EE0: .word 0x000003CF + + thumb_func_start MOD05_021E2EE4 +MOD05_021E2EE4: ; 0x021E2EE4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r2, #0 + add r5, r0, #0 + add r6, r1, #0 + ldr r2, _021E2F2C ; =UNK05_021FD610 + add r0, #0x38 + mov r1, #4 + add r7, r3, #0 + bl FUN_0201AB28 + str r0, [r5, #0x34] + add r3, r0, #0 + str r4, [sp] + ldr r2, [r3, #0x14] + ldr r0, [r5, #0x1c] + ldr r3, [r3, #0x10] + add r1, r6, #0 + bl FUN_02017E14 + ldr r2, _021E2F30 ; =UNK05_021FD62C + add r0, sp, #4 + mov r1, #4 + bl FUN_0201AB44 + ldr r0, [r0, #0xc] + mov r1, #1 + add r2, r7, #0 + bl MOD05_021E2E88 + ldr r0, [sp, #4] + bl FreeToHeap + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E2F2C: .word UNK05_021FD610 +_021E2F30: .word UNK05_021FD62C + + thumb_func_start MOD05_021E2F34 +MOD05_021E2F34: ; 0x021E2F34 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r2, r1, #0 + add r2, #8 + add r5, r0, #0 + asr r0, r2, #2 + lsr r0, r0, #0x1d + add r0, r2, r0 + asr r0, r0, #3 + lsl r0, r0, #3 + sub r2, r0, r1 + lsr r0, r2, #0x1f + add r0, r2, r0 + asr r0, r0, #1 + add r2, r0, #4 + cmp r2, #8 + blt _021E2F5A + mov r3, #0 + b _021E2F6C +_021E2F5A: + mov r0, #8 + sub r0, r0, r2 + lsl r0, r0, #1 + add r2, r0, #7 + asr r0, r2, #2 + lsr r0, r0, #0x1d + add r0, r2, r0 + lsl r0, r0, #0x15 + lsr r3, r0, #0x18 +_021E2F6C: + cmp r1, #0 + bgt _021E2F76 + mov r0, #0 + str r0, [sp, #0x18] + b _021E2F92 +_021E2F76: + add r2, r1, #0 + add r2, #8 + asr r0, r2, #2 + lsr r0, r0, #0x1d + add r0, r2, r0 + asr r0, r0, #3 + add r0, r0, r3 + str r0, [sp, #0x18] + lsl r0, r0, #3 + add r0, #8 + sub r1, r0, r1 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r0, r0, #1 +_021E2F92: + add r1, r0, #4 + add r0, r5, #0 + add r0, #0x30 + strb r1, [r0] + add r0, r5, #0 + add r0, #0x20 + mov r1, #0 + bl FUN_02019620 + mov r2, #8 + str r2, [sp] + add r0, r5, #0 + str r2, [sp, #4] + mov r3, #0 + str r3, [sp, #8] + str r3, [sp, #0xc] + str r2, [sp, #0x10] + str r2, [sp, #0x14] + ldr r1, [r5, #0x34] + add r0, #0x20 + ldr r1, [r1, #0x14] + bl FUN_02019658 + ldr r0, [sp, #0x18] + mov r1, #8 + add r0, r0, #1 + lsl r4, r0, #3 + str r1, [sp] + lsl r0, r4, #0x10 + str r1, [sp, #4] + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r3, #0 + str r3, [sp, #0xc] + str r1, [sp, #0x10] + str r1, [sp, #0x14] + ldr r1, [r5, #0x34] + add r0, r5, #0 + ldr r1, [r1, #0x14] + add r0, #0x20 + mov r2, #0x18 + bl FUN_02019658 + mov r0, #8 + str r0, [sp] + str r0, [sp, #4] + mov r3, #0 + str r3, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [r5, #0x34] + add r0, r5, #0 + ldr r1, [r1, #0x14] + add r0, #0x20 + mov r2, #0x38 + bl FUN_02019658 + mov r1, #8 + str r1, [sp] + lsl r0, r4, #0x10 + str r1, [sp, #4] + lsr r0, r0, #0x10 + str r0, [sp, #8] + str r1, [sp, #0xc] + str r1, [sp, #0x10] + str r1, [sp, #0x14] + ldr r1, [r5, #0x34] + add r0, r5, #0 + ldr r1, [r1, #0x14] + add r0, #0x20 + mov r2, #0x40 + mov r3, #0 + bl FUN_02019658 + mov r1, #8 + str r1, [sp] + str r1, [sp, #4] + mov r3, #0 + str r3, [sp, #8] + mov r0, #0x10 + str r0, [sp, #0xc] + str r1, [sp, #0x10] + str r1, [sp, #0x14] + ldr r1, [r5, #0x34] + add r0, r5, #0 + ldr r1, [r1, #0x14] + add r0, #0x20 + mov r2, #0x20 + bl FUN_02019658 + mov r1, #8 + str r1, [sp] + lsl r0, r4, #0x10 + str r1, [sp, #4] + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r0, #0x10 + str r0, [sp, #0xc] + str r1, [sp, #0x10] + str r1, [sp, #0x14] + ldr r1, [r5, #0x34] + add r0, r5, #0 + ldr r1, [r1, #0x14] + add r0, #0x20 + mov r2, #0x30 + mov r3, #0 + bl FUN_02019658 + ldr r0, [sp, #0x18] + mov r7, #0 + cmp r0, #0 + ble _021E30F2 + add r6, r5, #0 + add r6, #0x20 +_021E3078: + add r0, r7, #1 + lsl r4, r0, #3 + mov r0, #8 + str r0, [sp] + str r0, [sp, #4] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + mov r0, #8 + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [r5, #0x34] + add r0, r6, #0 + ldr r1, [r1, #0x14] + mov r2, #0x10 + mov r3, #0 + bl FUN_02019658 + mov r0, #8 + str r0, [sp] + str r0, [sp, #4] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [r5, #0x34] + add r0, r6, #0 + ldr r1, [r1, #0x14] + mov r2, #0x48 + mov r3, #0 + bl FUN_02019658 + mov r0, #8 + str r0, [sp] + str r0, [sp, #4] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r0, #0x10 + str r0, [sp, #0xc] + mov r0, #8 + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [r5, #0x34] + add r0, r6, #0 + ldr r1, [r1, #0x14] + mov r2, #0x28 + mov r3, #0 + bl FUN_02019658 + add r0, r7, #1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r0, [sp, #0x18] + cmp r7, r0 + blt _021E3078 +_021E30F2: + add r5, #0x20 + add r0, r5, #0 + bl FUN_020191D0 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E3100 +MOD05_021E3100: ; 0x021E3100 + mov r1, #0 + str r1, [r0] + strb r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0xc] + strh r1, [r0, #0x10] + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + bx lr + + thumb_func_start MOD05_021E3114 +MOD05_021E3114: ; 0x021E3114 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021E3100 + str r4, [r5, #0x1c] + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E3124 +MOD05_021E3124: ; 0x021E3124 + push {r4, lr} + add r4, r1, #0 + ldrb r0, [r4, #4] + cmp r0, #3 + bhi _021E31D0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E313A: ; jump table + .short _021E31D0 - _021E313A - 2 ; case 0 + .short _021E3142 - _021E313A - 2 ; case 1 + .short _021E3180 - _021E313A - 2 ; case 2 + .short _021E316A - _021E313A - 2 ; case 3 +_021E3142: + ldr r0, [r4, #0xc] + sub r0, r0, #4 + str r0, [r4, #0xc] + bpl _021E314E + mov r0, #0 + str r0, [r4, #0xc] +_021E314E: + mov r1, #3 + ldr r0, [r4, #0x1c] + ldr r3, [r4, #0xc] + add r2, r1, #0 + bl FUN_020179E0 + ldr r0, [r4, #0xc] + cmp r0, #0 + bne _021E31D0 + mov r0, #0 + strh r0, [r4, #0x10] + mov r0, #3 + strb r0, [r4, #4] + pop {r4, pc} +_021E316A: + ldrh r0, [r4, #0x10] + add r0, r0, #1 + strh r0, [r4, #0x10] + ldrh r0, [r4, #0x10] + cmp r0, #0x3c + blo _021E31D0 + mov r0, #0 + strh r0, [r4, #0x10] + mov r0, #2 + strb r0, [r4, #4] + pop {r4, pc} +_021E3180: + ldr r0, [r4, #0xc] + add r0, r0, #4 + str r0, [r4, #0xc] + cmp r0, #0x26 + ble _021E318E + mov r0, #0x26 + str r0, [r4, #0xc] +_021E318E: + mov r1, #3 + ldr r0, [r4, #0x1c] + ldr r3, [r4, #0xc] + add r2, r1, #0 + bl FUN_020179E0 + ldr r0, [r4, #0xc] + cmp r0, #0x26 + bne _021E31D0 + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _021E31CA + mov r0, #0 + str r0, [r4, #0x14] + ldr r0, [r4, #0x3c] + ldr r1, [r4, #0x18] + ldr r2, [r4, #0x40] + bl FUN_02064E4C + add r1, r0, #0 + add r0, r4, #0 + bl MOD05_021E2F34 + ldr r1, [r4, #0x40] + add r0, r4, #0 + bl MOD05_021E31D4 + mov r0, #1 + strb r0, [r4, #4] + pop {r4, pc} +_021E31CA: + add r0, r4, #0 + bl MOD05_021E32F0 +_021E31D0: + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E31D4 +MOD05_021E31D4: ; 0x021E31D4 + push {r3, lr} + sub sp, #0x10 + add r3, r0, #0 + mov r0, #3 + add r2, r1, #0 + str r0, [sp] + mov r1, #0 + ldr r0, _021E31FC ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r3, #0 + str r1, [sp, #0xc] + add r3, #0x30 + ldrb r3, [r3] + add r0, #0x20 + bl AddTextPrinterParameterized2 + add sp, #0x10 + pop {r3, pc} + nop +_021E31FC: .word 0x00010200 + + thumb_func_start MOD05_021E3200 +MOD05_021E3200: ; 0x021E3200 + mov r1, #2 + strb r1, [r0, #4] + mov r1, #0 + strh r1, [r0, #0x10] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021E320C +MOD05_021E320C: ; 0x021E320C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #4 + mov r1, #0x44 + bl AllocFromHeap + add r4, r0, #0 + mov r0, #0x16 + mov r1, #4 + bl String_ctor + str r0, [r4, #0x40] + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021E3114 + add r0, r4, #0 + bl MOD05_021E2EA4 + ldr r2, _021E3244 ; =0x0000017E + mov r0, #1 + mov r1, #0x1a + mov r3, #4 + bl NewMsgDataFromNarc + str r0, [r4, #0x3c] + add r0, r4, #0 + pop {r3, r4, r5, pc} + .balign 4, 0 +_021E3244: .word 0x0000017E + + thumb_func_start MOD05_021E3248 +MOD05_021E3248: ; 0x021E3248 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x3c] + bl DestroyMsgData + add r0, r4, #0 + add r0, #0x20 + bl FUN_02019178 + ldr r0, [r4, #0x40] + bl String_dtor + ldr r0, [r4, #0x38] + bl FreeToHeap + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E3270 +MOD05_021E3270: ; 0x021E3270 + push {r4, lr} + add r4, r0, #0 + str r1, [r4, #0x18] + ldr r1, [r4] + cmp r1, #0 + bne _021E32BC + mov r0, #1 + str r0, [r4] + mov r1, #3 + ldr r0, [r4, #0x1c] + add r2, r1, #0 + mov r3, #0x26 + bl FUN_020179E0 + mov r0, #0x26 + str r0, [r4, #0xc] + ldr r0, _021E32EC ; =MOD05_021E3124 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + str r0, [r4, #8] + mov r0, #1 + strb r0, [r4, #4] + ldr r0, [r4, #0x3c] + ldr r1, [r4, #0x18] + ldr r2, [r4, #0x40] + bl FUN_02064E4C + add r1, r0, #0 + add r0, r4, #0 + bl MOD05_021E2F34 + ldr r1, [r4, #0x40] + add r0, r4, #0 + bl MOD05_021E31D4 + pop {r4, pc} +_021E32BC: + ldrb r1, [r4, #4] + cmp r1, #3 + bhi _021E32E6 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E32CE: ; jump table + .short _021E32E6 - _021E32CE - 2 ; case 0 + .short _021E32D6 - _021E32CE - 2 ; case 1 + .short _021E32E0 - _021E32CE - 2 ; case 2 + .short _021E32D6 - _021E32CE - 2 ; case 3 +_021E32D6: + bl MOD05_021E3200 + mov r0, #1 + str r0, [r4, #0x14] + pop {r4, pc} +_021E32E0: + mov r0, #1 + str r0, [r4, #0x14] + pop {r4, pc} +_021E32E6: + bl ErrorHandling + pop {r4, pc} + .balign 4, 0 +_021E32EC: .word MOD05_021E3124 + + thumb_func_start MOD05_021E32F0 +MOD05_021E32F0: ; 0x021E32F0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + cmp r0, #0 + beq _021E32FE + bl FUN_0200CAB4 +_021E32FE: + add r0, r4, #0 + add r0, #0x20 + bl FUN_02019570 + mov r1, #3 + ldr r0, [r4, #0x1c] + add r2, r1, #0 + mov r3, #0 + bl FUN_020179E0 + ldr r1, [r4, #0x1c] + add r0, r4, #0 + bl MOD05_021E3114 + pop {r4, pc} + + thumb_func_start MOD05_021E331C +MOD05_021E331C: ; 0x021E331C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x1c] + ldr r0, [r0] + bl FUN_02034944 + cmp r0, #0 + bne _021E333E + ldr r0, [r4, #0x1c] + ldr r0, [r0] + bl FUN_02034824 + add r1, r0, #0 + ldr r0, [r4, #4] + ldr r0, [r0, #8] + bl MOD05_021E3270 +_021E333E: + pop {r4, pc} + + .section .data + + .balign 4 + .global UNK05_021FD610 +UNK05_021FD610: ; 0x021FD610 + .asciz "/data/dp_areawindow.NCGR" + + .balign 4 + .global UNK05_021FD62C +UNK05_021FD62C: ; 0x021FD62C + .asciz "/data/dp_areawindow.NCLR" diff --git a/arm9/modules/05/asm/mod05_021E3340.s b/arm9/modules/05/asm/mod05_021E3340.s new file mode 100644 index 00000000..264edb7b --- /dev/null +++ b/arm9/modules/05/asm/mod05_021E3340.s @@ -0,0 +1,128 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021E3340 +MOD05_021E3340: ; 0x021E3340 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r0, #0 + bl FUN_02046528 + add r5, r0, #0 + add r0, r4, #0 + bl FUN_0204652C + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #4 + bhi _021E3414 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E3366: ; jump table + .short _021E3370 - _021E3366 - 2 ; case 0 + .short _021E3388 - _021E3366 - 2 ; case 1 + .short _021E33A0 - _021E3366 - 2 ; case 2 + .short _021E33E4 - _021E3366 - 2 ; case 3 + .short _021E33FE - _021E3366 - 2 ; case 4 +_021E3370: + mov r0, #2 + add r1, r0, #0 + str r0, [sp] + sub r1, #0x12 + mov r2, #0 + mov r3, #0x3f + bl FUN_0200A208 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021E3414 +_021E3388: + mov r0, #2 + bl FUN_0200A344 + cmp r0, #0 + beq _021E3414 + ldr r0, [r5, #8] + bl MOD19_022524F4 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021E3414 +_021E33A0: + ldr r0, [r5, #8] + bl MOD19_02252504 + cmp r0, #0 + beq _021E3414 + ldr r0, [r5, #0xc] + bl FUN_0204C1A8 + add r6, r0, #0 + ldr r0, _021E341C ; =SDK_OVERLAY_MODULE_19_ID + bl UnloadOverlayByID + ldr r0, _021E3420 ; =SDK_OVERLAY_MODULE_20_ID + mov r1, #2 + bl HandleLoadOverlay + add r0, r6, #0 + bl FUN_0204BEB8 + 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 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021E3414 +_021E33E4: + mov r1, #0 + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #4 + sub r2, #0x10 + mov r3, #0x3f + bl FUN_0200A208 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021E3414 +_021E33FE: + mov r0, #2 + bl FUN_0200A344 + cmp r0, #0 + beq _021E3414 + add r0, r4, #0 + bl FreeToHeap + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E3414: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021E341C: .word SDK_OVERLAY_MODULE_19_ID +_021E3420: .word SDK_OVERLAY_MODULE_20_ID + + thumb_func_start MOD05_021E3424 +MOD05_021E3424: ; 0x021E3424 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb + mov r1, #4 + bl AllocFromHeapAtEnd + add r2, r0, #0 + mov r0, #0 + str r0, [r2] + ldr r1, _021E3440 ; =MOD05_021E3340 + add r0, r4, #0 + bl FUN_0204640C + pop {r4, pc} + .balign 4, 0 +_021E3440: .word MOD05_021E3340 diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s new file mode 100644 index 00000000..fa3acfc5 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021E3444.s @@ -0,0 +1,3021 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021E3444 +MOD05_021E3444: ; 0x021E3444 + push {r3, r4, r5, lr} + add r5, r1, #0 + lsl r1, r0, #2 + ldr r0, _021E3470 ; =UNK05_021F74E8 + add r4, r2, #0 + ldr r0, [r0, r1] + mov r1, #0x20 + mov r2, #5 + mov r3, #4 + bl FUN_020061E8 + bl FUN_0201B6C8 + str r5, [r0, #0x10] + str r4, [r0, #0x14] + cmp r4, #0 + beq _021E346A + mov r1, #0 + str r1, [r4] +_021E346A: + mov r1, #0 + str r1, [r0, #0x18] + pop {r3, r4, r5, pc} + .balign 4, 0 +_021E3470: .word UNK05_021F74E8 + + thumb_func_start MOD05_021E3474 +MOD05_021E3474: ; 0x021E3474 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + mov r0, #4 + mov r1, #0x4c + str r2, [sp] + add r5, r3, #0 + bl AllocFromHeap + mov r1, #0 + mov r2, #0x4c + add r4, r0, #0 + bl memset + ldr r0, _021E34B4 ; =MOD05_021E34B8 + add r1, r4, #0 + mov r2, #5 + bl FUN_0200CA44 + str r5, [r4, #0x48] + cmp r5, #0 + beq _021E34A4 + mov r0, #0 + str r0, [r5] +_021E34A4: + str r6, [r4, #0xc] + ldr r0, [sp] + str r7, [r4, #0x10] + str r0, [r4, #0x14] + ldr r0, [sp, #0x18] + str r0, [r4, #4] + pop {r3, r4, r5, r6, r7, pc} + nop +_021E34B4: .word MOD05_021E34B8 + + thumb_func_start MOD05_021E34B8 +MOD05_021E34B8: ; 0x021E34B8 + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldr r1, [r4] + cmp r1, #5 + bhi _021E359E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E34D0: ; jump table + .short _021E34DC - _021E34D0 - 2 ; case 0 + .short _021E3514 - _021E34D0 - 2 ; case 1 + .short _021E352E - _021E34D0 - 2 ; case 2 + .short _021E3542 - _021E34D0 - 2 ; case 3 + .short _021E355C - _021E34D0 - 2 ; case 4 + .short _021E3580 - _021E34D0 - 2 ; case 5 +_021E34DC: + ldr r0, [r4, #0xc] + cmp r0, #1 + bne _021E34F6 + mov r0, #8 + str r0, [sp] + add r0, r4, #0 + ldr r2, [r4, #0x14] + add r0, #0x30 + mov r1, #0 + mov r3, #2 + bl MOD05_021E372C + b _021E350C +_021E34F6: + cmp r0, #2 + bne _021E350C + mov r0, #8 + str r0, [sp] + add r0, r4, #0 + ldr r2, [r4, #0x14] + add r0, #0x30 + mov r1, #0 + mov r3, #1 + bl MOD05_021E372C +_021E350C: + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021E359E +_021E3514: + mov r0, #3 + str r0, [sp] + add r0, r4, #0 + ldr r2, [r4, #0x10] + ldr r3, [r4, #0xc] + add r0, #0x18 + mov r1, #0 + bl MOD05_021E372C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021E359E +_021E352E: + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E3738 + cmp r0, #0 + beq _021E359E + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021E359E +_021E3542: + mov r0, #3 + str r0, [sp] + add r0, r4, #0 + ldr r1, [r4, #0x10] + ldr r3, [r4, #0xc] + add r0, #0x18 + mov r2, #0 + bl MOD05_021E372C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021E359E +_021E355C: + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E3738 + cmp r0, #0 + beq _021E359E + ldr r0, [r4, #8] + add r1, r0, #1 + str r1, [r4, #8] + ldr r0, [r4, #4] + cmp r1, r0 + bne _021E357A + mov r0, #5 + str r0, [r4] + b _021E359E +_021E357A: + mov r0, #1 + str r0, [r4] + b _021E359E +_021E3580: + mov r1, #0 + str r1, [r4] + str r1, [r4, #8] + ldr r2, [r4, #0x48] + cmp r2, #0 + beq _021E3590 + mov r1, #1 + str r1, [r2] +_021E3590: + bl FUN_0200CAB4 + add r0, r4, #0 + bl FreeToHeap + add sp, #4 + pop {r3, r4, pc} +_021E359E: + add r4, #0x30 + add r0, r4, #0 + bl MOD05_021E3738 + add sp, #4 + pop {r3, r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E35AC +MOD05_021E35AC: ; 0x021E35AC + ldr r0, [r0, #0x18] + bx lr + + thumb_func_start MOD05_021E35B0 +MOD05_021E35B0: ; 0x021E35B0 + 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_021E35C0 +MOD05_021E35C0: ; 0x021E35C0 + 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 _021E35E6 + str r0, [r4, #0xc] + mov r0, #0 + pop {r4, pc} +_021E35E6: + str r1, [r4, #0xc] + mov r0, #1 + pop {r4, pc} + + thumb_func_start MOD05_021E35EC +MOD05_021E35EC: ; 0x021E35EC + 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_021E35FC +MOD05_021E35FC: ; 0x021E35FC + push {r4, lr} + add r4, r0, #0 + ldr r2, [r4, #0xc] + ldr r0, [r4, #8] + lsl r2, r2, #0xc + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r0, r0, r2 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + ldr r1, [r4, #0x10] + lsl r1, r1, #0xc + bl FX_Div + 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 _021E363C + str r0, [r4, #0xc] + mov r0, #0 + pop {r4, pc} +_021E363C: + str r1, [r4, #0xc] + mov r0, #1 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E3644 +MOD05_021E3644: ; 0x021E3644 + push {r3, r4, r5, r6, r7, lr} + ldr r4, [sp, #0x18] + add r5, r0, #0 + add r7, r2, #0 + add r0, r3, #0 + add r6, r1, #0 + lsl r2, r4, #0xc + str r3, [sp] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + add r2, r0, #0 + sub r0, r7, r6 + mov r7, #2 + mov r3, #0 + lsl r7, r7, #0xa + add r2, r2, r7 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + sub r2, r0, r2 + asr r1, r2, #0x1f + lsr r0, r2, #0x13 + lsl r1, r1, #0xd + orr r1, r0 + lsl r0, r2, #0xd + add r0, r0, r7 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + add r1, r4, #0 + mul r1, r4 + lsl r1, r1, #0xc + bl FX_Div + str r6, [r5] + ldr r1, [sp] + str r6, [r5, #4] + str r1, [r5, #8] + str r0, [r5, #0xc] + mov r0, #0 + str r0, [r5, #0x10] + str r4, [r5, #0x14] + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E36A4 +MOD05_021E36A4: ; 0x021E36A4 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r6, [r5, #0x10] + ldr r0, [r5, #8] + lsl r2, r6, #0xc + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsr r4, r2, #0xc + lsl r0, r1, #0x14 + add r2, r6, #0 + orr r4, r0 + ldr r0, [r5, #0xc] + mul r2, r6 + lsl r2, r2, #0xc + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r0, r0, r2 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + lsl r1, r2, #2 + bl FX_Div + ldr r1, [r5, #4] + add r0, r4, r0 + add r0, r1, r0 + str r0, [r5] + ldr r0, [r5, #0x10] + ldr r1, [r5, #0x14] + add r0, r0, #1 + cmp r0, r1 + bgt _021E3704 + str r0, [r5, #0x10] + mov r0, #0 + pop {r4, r5, r6, pc} +_021E3704: + str r1, [r5, #0x10] + mov r0, #1 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E370C +MOD05_021E370C: ; 0x021E370C + push {r3, lr} + cmp r0, #1 + bne _021E371A + ldr r0, _021E3724 ; =0x0400006C + bl GXx_SetMasterBrightness_ + pop {r3, pc} +_021E371A: + ldr r0, _021E3728 ; =0x0400106C + bl GXx_SetMasterBrightness_ + pop {r3, pc} + nop +_021E3724: .word 0x0400006C +_021E3728: .word 0x0400106C + + thumb_func_start MOD05_021E372C +MOD05_021E372C: ; 0x021E372C + push {r3, lr} + str r3, [r0, #0x14] + ldr r3, [sp, #8] + bl MOD05_021E35B0 + pop {r3, pc} + + thumb_func_start MOD05_021E3738 +MOD05_021E3738: ; 0x021E3738 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl MOD05_021E35C0 + add r4, r0, #0 + ldr r0, _021E3750 ; =MOD05_021E3754 + add r1, r5, #0 + mov r2, #0xa + bl FUN_0200CA98 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .balign 4, 0 +_021E3750: .word MOD05_021E3754 + + thumb_func_start MOD05_021E3754 +MOD05_021E3754: ; 0x021E3754 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r1, #0x14] + ldr r1, [r1] + bl MOD05_021E370C + add r0, r4, #0 + bl FUN_0200CAB4 + pop {r4, pc} + + thumb_func_start MOD05_021E3768 +MOD05_021E3768: ; 0x021E3768 + push {r4, lr} + mov r0, #4 + mov r1, #0x30 + bl AllocFromHeap + mov r1, #0 + mov r2, #0x30 + add r4, r0, #0 + bl memset + ldr r0, _021E379C ; =0x04000048 + mov r1, #0x3f + ldrh r2, [r0] + bic r2, r1 + mov r1, #0x1f + orr r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0] + ldrh r2, [r0] + ldr r1, _021E37A0 ; =0xFFFFC0FF + and r1, r2 + strh r1, [r0] + add r0, r4, #0 + pop {r4, pc} + nop +_021E379C: .word 0x04000048 +_021E37A0: .word 0xFFFFC0FF + + thumb_func_start MOD05_021E37A4 +MOD05_021E37A4: ; 0x021E37A4 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x24] + cmp r1, #0 + beq _021E37B2 + bl MOD05_021E3920 +_021E37B2: + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021E37C8 ; =0xFFFF1FFF + and r0, r1 + str r0, [r2] + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + nop +_021E37C8: .word 0xFFFF1FFF + + thumb_func_start MOD05_021E37CC +MOD05_021E37CC: ; 0x021E37CC + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r1, #0 + add r6, r0, #0 + ldr r0, [r5, #0x24] + add r7, r2, #0 + str r3, [sp, #4] + ldr r4, [sp, #0x20] + cmp r0, #0 + beq _021E37E4 + bl ErrorHandling +_021E37E4: + mov r0, #0 + str r0, [r6, #0x18] + ldr r1, [r6, #0x10] + add r6, #0x18 + ldr r1, [r1, #4] + ldr r2, [sp, #0x24] + ldr r1, [r1, #0x1c] + ldr r3, [sp, #0x28] + str r1, [r5, #0x20] + str r7, [r5, #0x18] + str r0, [r5, #0x1c] + ldr r0, [sp, #4] + str r6, [r5, #0x2c] + str r0, [sp] + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021E3644 + cmp r4, #0 + blt _021E3824 + mov r0, #0xff + ldr r2, _021E3850 ; =0x04000040 + sub r0, r0, r4 + strh r0, [r2] + add r0, r4, #1 + mov r1, #0xc0 + lsl r0, r0, #0x18 + strh r1, [r2, #4] + lsr r0, r0, #0x18 + strh r0, [r2, #2] + strh r1, [r2, #6] + b _021E3840 +_021E3824: + add r0, r4, #0 + add r0, #0xff + lsl r0, r0, #0x18 + mov r2, #1 + sub r2, r2, r4 + lsl r2, r2, #0x18 + ldr r1, _021E3850 ; =0x04000040 + lsr r0, r0, #0x18 + strh r0, [r1] + mov r0, #0xc0 + strh r0, [r1, #4] + lsr r2, r2, #0x18 + strh r2, [r1, #2] + strh r0, [r1, #6] +_021E3840: + mov r2, #1 + ldr r0, _021E3854 ; =MOD05_021E3858 + add r1, r5, #0 + lsl r2, r2, #0xa + bl FUN_0200CA98 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021E3850: .word 0x04000040 +_021E3854: .word MOD05_021E3858 + + thumb_func_start MOD05_021E3858 +MOD05_021E3858: ; 0x021E3858 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r2, #1 + ldr r0, _021E3880 ; =MOD05_021E38B8 + add r4, r1, #0 + lsl r2, r2, #0xa + bl FUN_0200CA98 + str r0, [r4, #0x28] + ldr r0, [r4, #0x20] + ldr r1, _021E3884 ; =MOD05_021E397C + add r2, r4, #0 + bl MOD05_021F4624 + str r0, [r4, #0x24] + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + nop +_021E3880: .word MOD05_021E38B8 +_021E3884: .word MOD05_021E397C + + thumb_func_start MOD05_021E3888 +MOD05_021E3888: ; 0x021E3888 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r1, #0 + add r4, r2, #0 + add r6, r3, #0 + bl MOD05_021E35AC + cmp r0, #0 + beq _021E389E + bl ErrorHandling +_021E389E: + str r4, [r5, #0x18] + mov r0, #0 + str r0, [r5, #0x1c] + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x20] + add r0, r5, #0 + str r6, [sp] + bl MOD05_021E3644 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E38B8 +MOD05_021E38B8: ; 0x021E38B8 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0x1c] + cmp r0, #0 + beq _021E38C8 + cmp r0, #1 + beq _021E3914 + pop {r4, pc} +_021E38C8: + add r0, r4, #0 + bl MOD05_021E36A4 + cmp r0, #0 + beq _021E38D8 + ldr r0, [r4, #0x1c] + add r0, r0, #1 + str r0, [r4, #0x1c] +_021E38D8: + ldr r0, [r4] + asr r0, r0, #0xc + bmi _021E38F6 + mov r1, #0xff + sub r1, r1, r0 + ldr r2, _021E391C ; =0x04000040 + add r0, r0, #1 + strh r1, [r2] + mov r1, #0xc0 + lsl r0, r0, #0x18 + strh r1, [r2, #4] + lsr r0, r0, #0x18 + strh r0, [r2, #2] + strh r1, [r2, #6] + pop {r4, pc} +_021E38F6: + add r1, r0, #0 + add r1, #0xff + lsl r1, r1, #0x18 + ldr r3, _021E391C ; =0x04000040 + lsr r1, r1, #0x18 + strh r1, [r3] + mov r1, #1 + sub r0, r1, r0 + mov r2, #0xc0 + lsl r0, r0, #0x18 + strh r2, [r3, #4] + lsr r0, r0, #0x18 + strh r0, [r3, #2] + strh r2, [r3, #6] + pop {r4, pc} +_021E3914: + add r0, r4, #0 + bl MOD05_021E3920 + pop {r4, pc} + .balign 4, 0 +_021E391C: .word 0x04000040 + + thumb_func_start MOD05_021E3920 +MOD05_021E3920: ; 0x021E3920 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E3974 ; =0x04000048 + mov r2, #0x3f + ldrh r3, [r0] + mov r1, #0x1f + bic r3, r2 + orr r3, r1 + mov r1, #0x20 + orr r3, r1 + strh r3, [r0] + ldrh r3, [r0, #2] + bic r3, r2 + add r2, r0, #0 + strh r3, [r0, #2] + mov r3, #0 + sub r2, #8 + strh r3, [r2] + sub r0, r0, #4 + strh r3, [r0] + lsl r3, r1, #0x15 + ldr r2, [r3] + ldr r0, _021E3978 ; =0xFFFF1FFF + and r2, r0 + lsl r0, r1, #8 + orr r0, r2 + str r0, [r3] + ldr r0, [r4, #0x2c] + mov r1, #1 + str r1, [r0] + ldr r0, [r4, #0x24] + bl MOD05_021F4648 + mov r0, #0 + str r0, [r4, #0x24] + ldr r0, [r4, #0x28] + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x28] + pop {r4, pc} + nop +_021E3974: .word 0x04000048 +_021E3978: .word 0xFFFF1FFF + + thumb_func_start MOD05_021E397C +MOD05_021E397C: ; 0x021E397C + push {r4, lr} + ldr r0, _021E39EC ; =0x04000006 + add r4, r1, #0 + ldrh r0, [r0] + ldr r1, [r4, #0x18] + bl _u32_div_f + mov r1, #1 + tst r0, r1 + ldr r0, [r4] + bne _021E3994 + b _021E3996 +_021E3994: + neg r0, r0 +_021E3996: + asr r2, r0, #0xc + ldr r0, _021E39F0 ; =0x000001FF + add r1, r2, #0 + and r1, r0 + ldr r0, _021E39F4 ; =0x04000010 + cmp r2, #0 + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0xc] + ldr r1, _021E39F8 ; =0xFFFF1FFF + blt _021E39C8 + add r3, r0, #0 + sub r3, #0x10 + ldr r2, [r3] + and r2, r1 + lsl r1, r0, #9 + orr r1, r2 + str r1, [r3] + add r0, #0x3a + ldrh r2, [r0] + mov r1, #0x3f + bic r2, r1 + strh r2, [r0] + pop {r4, pc} +_021E39C8: + add r3, r0, #0 + sub r3, #0x10 + ldr r2, [r3] + and r2, r1 + lsl r1, r0, #0xa + orr r1, r2 + str r1, [r3] + add r0, #0x3a + ldrh r2, [r0] + mov r1, #0x3f + bic r2, r1 + mov r1, #0x1f + orr r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0] + pop {r4, pc} + nop +_021E39EC: .word 0x04000006 +_021E39F0: .word 0x000001FF +_021E39F4: .word 0x04000010 +_021E39F8: .word 0xFFFF1FFF + + thumb_func_start MOD05_021E39FC +MOD05_021E39FC: ; 0x021E39FC + push {r4, r5, r6, lr} + mov r0, #4 + mov r1, #0x48 + bl AllocFromHeap + mov r1, #0 + mov r2, #0x48 + add r4, r0, #0 + bl memset + ldr r0, _021E3A40 ; =0x04000048 + mov r5, #0x3f + ldrh r2, [r0] + mov r1, #0x1f + bic r2, r5 + add r3, r2, #0 + orr r3, r1 + mov r2, #0x20 + orr r3, r2 + strh r3, [r0] + ldrh r6, [r0] + ldr r3, _021E3A44 ; =0xFFFFC0FF + lsl r1, r1, #8 + and r3, r6 + orr r3, r1 + lsl r1, r2, #8 + orr r1, r3 + strh r1, [r0] + ldrh r1, [r0, #2] + bic r1, r5 + strh r1, [r0, #2] + add r0, r4, #0 + pop {r4, r5, r6, pc} + nop +_021E3A40: .word 0x04000048 +_021E3A44: .word 0xFFFFC0FF + + thumb_func_start MOD05_021E3A48 +MOD05_021E3A48: ; 0x021E3A48 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x3c] + cmp r1, #0 + beq _021E3A56 + bl MOD05_021E3BA4 +_021E3A56: + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021E3A6C ; =0xFFFF1FFF + and r0, r1 + str r0, [r2] + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + nop +_021E3A6C: .word 0xFFFF1FFF + + thumb_func_start MOD05_021E3A70 +MOD05_021E3A70: ; 0x021E3A70 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x3c] + add r6, r2, #0 + add r7, r3, #0 + cmp r0, #0 + beq _021E3A84 + bl ErrorHandling +_021E3A84: + mov r1, #0 + str r1, [r5, #0x18] + ldr r0, [r5, #0x10] + mov r2, #0xff + ldr r0, [r0, #4] + add r5, #0x18 + ldr r0, [r0, #0x1c] + lsl r2, r2, #0xc + str r0, [r4, #0x38] + mov r0, #0x60 + str r0, [r4, #0x30] + str r1, [r4, #0x34] + str r5, [r4, #0x44] + add r0, r4, #0 + add r3, r7, #0 + str r6, [sp] + bl MOD05_021E3644 + add r0, r4, #0 + mov r2, #6 + ldr r3, [sp, #0x18] + add r0, #0x18 + mov r1, #0 + lsl r2, r2, #0x10 + str r6, [sp] + bl MOD05_021E3644 + ldr r2, _021E3AD4 ; =0x04000040 + mov r1, #0xff + strh r1, [r2] + mov r0, #0xc0 + strh r0, [r2, #4] + strh r1, [r2, #2] + strh r0, [r2, #6] + ldr r0, _021E3AD8 ; =MOD05_021E3ADC + add r1, r4, #0 + lsr r2, r2, #0x10 + bl FUN_0200CA98 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021E3AD4: .word 0x04000040 +_021E3AD8: .word MOD05_021E3ADC + + thumb_func_start MOD05_021E3ADC +MOD05_021E3ADC: ; 0x021E3ADC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r2, #1 + ldr r0, _021E3B04 ; =MOD05_021E3B0C + add r4, r1, #0 + lsl r2, r2, #0xa + bl FUN_0200CA98 + str r0, [r4, #0x40] + ldr r0, [r4, #0x38] + ldr r1, _021E3B08 ; =MOD05_021E3B74 + add r2, r4, #0 + bl MOD05_021F4624 + str r0, [r4, #0x3c] + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + nop +_021E3B04: .word MOD05_021E3B0C +_021E3B08: .word MOD05_021E3B74 + + thumb_func_start MOD05_021E3B0C +MOD05_021E3B0C: ; 0x021E3B0C + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0x34] + cmp r0, #0 + beq _021E3B1C + cmp r0, #1 + beq _021E3B68 + pop {r4, pc} +_021E3B1C: + add r0, r4, #0 + add r0, #0x18 + bl MOD05_021E36A4 + add r0, r4, #0 + bl MOD05_021E36A4 + cmp r0, #0 + beq _021E3B34 + ldr r0, [r4, #0x34] + add r0, r0, #1 + str r0, [r4, #0x34] +_021E3B34: + ldr r0, [r4] + asr r2, r0, #0xc + ldr r0, [r4, #0x18] + mov r4, #0xff + asr r1, r0, #0xc + ldr r0, _021E3B70 ; =0x04000040 + sub r3, r4, r2 + strh r3, [r0] + mov r3, #0x60 + sub r3, r3, r1 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + strh r3, [r0, #4] + lsl r3, r2, #8 + lsl r2, r4, #8 + and r2, r3 + orr r2, r4 + add r1, #0x60 + strh r2, [r0, #2] + lsl r2, r1, #8 + lsl r1, r4, #8 + and r2, r1 + mov r1, #0xc0 + orr r1, r2 + strh r1, [r0, #6] + pop {r4, pc} +_021E3B68: + add r0, r4, #0 + bl MOD05_021E3BA4 + pop {r4, pc} + .balign 4, 0 +_021E3B70: .word 0x04000040 + + thumb_func_start MOD05_021E3B74 +MOD05_021E3B74: ; 0x021E3B74 + ldr r0, _021E3B9C ; =0x04000006 + ldr r1, [r1, #0x30] + ldrh r2, [r0] + cmp r2, r1 + ldr r1, _021E3BA0 ; =0xFFFF1FFF + bhi _021E3B8E + sub r3, r0, #6 + ldr r2, [r3] + lsr r0, r0, #0xd + and r1, r2 + orr r0, r1 + str r0, [r3] + bx lr +_021E3B8E: + sub r3, r0, #6 + ldr r2, [r3] + lsr r0, r0, #0xc + and r1, r2 + orr r0, r1 + str r0, [r3] + bx lr + .balign 4, 0 +_021E3B9C: .word 0x04000006 +_021E3BA0: .word 0xFFFF1FFF + + thumb_func_start MOD05_021E3BA4 +MOD05_021E3BA4: ; 0x021E3BA4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E3BF8 ; =0x04000048 + mov r2, #0x3f + ldrh r3, [r0] + mov r1, #0x1f + bic r3, r2 + orr r3, r1 + mov r1, #0x20 + orr r3, r1 + strh r3, [r0] + ldrh r3, [r0, #2] + bic r3, r2 + add r2, r0, #0 + strh r3, [r0, #2] + mov r3, #0 + sub r2, #8 + strh r3, [r2] + sub r0, r0, #4 + strh r3, [r0] + lsl r3, r1, #0x15 + ldr r2, [r3] + ldr r0, _021E3BFC ; =0xFFFF1FFF + and r2, r0 + lsl r0, r1, #8 + orr r0, r2 + str r0, [r3] + ldr r0, [r4, #0x44] + mov r1, #1 + str r1, [r0] + ldr r0, [r4, #0x3c] + bl MOD05_021F4648 + mov r0, #0 + str r0, [r4, #0x3c] + ldr r0, [r4, #0x40] + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x40] + pop {r4, pc} + nop +_021E3BF8: .word 0x04000048 +_021E3BFC: .word 0xFFFF1FFF + + thumb_func_start MOD05_021E3C00 +MOD05_021E3C00: ; 0x021E3C00 + ldr r3, _021E3C0C ; =FUN_0200CA98 + mov r2, #1 + add r1, r0, #0 + ldr r0, _021E3C10 ; =MOD05_021E3C14 + lsl r2, r2, #0xa + bx r3 + .balign 4, 0 +_021E3C0C: .word FUN_0200CA98 +_021E3C10: .word MOD05_021E3C14 + + thumb_func_start MOD05_021E3C14 +MOD05_021E3C14: ; 0x021E3C14 + push {r3, r4, r5, r6, lr} + sub sp, #0x64 + ldr r6, _021E3D10 ; =UNK05_021F7464 + add r3, sp, #0x54 + add r5, r0, #0 + add r4, r1, #0 + add r2, r3, #0 + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r3, _021E3D14 ; =UNK05_021F74AC + add r2, sp, #0x38 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r1, #1 + str r0, [r2] + add r0, r4, #0 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + add r2, sp, #0x38 + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0x20 + mov r2, #0 + mov r3, #4 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + ldr r3, _021E3D18 ; =UNK05_021F7490 + add r2, sp, #0x1c + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r1, #2 + str r0, [r2] + add r0, r4, #0 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + add r2, sp, #0x1c + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + mov r3, #4 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + ldr r3, _021E3D1C ; =UNK05_021F7474 + add r2, sp, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + add r2, sp, #0 + mov r3, #1 + bl FUN_02016C18 + mov r0, #3 + mov r1, #0x20 + mov r2, #0 + mov r3, #4 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #3 + bl FUN_02018744 + mov r0, #8 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r5, #0 + bl FUN_0200CAB4 + add sp, #0x64 + pop {r3, r4, r5, r6, pc} + nop +_021E3D10: .word UNK05_021F7464 +_021E3D14: .word UNK05_021F74AC +_021E3D18: .word UNK05_021F7490 +_021E3D1C: .word UNK05_021F7474 + + thumb_func_start MOD05_021E3D20 +MOD05_021E3D20: ; 0x021E3D20 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r3, #0 + mov r3, #0 + add r5, r0, #0 + add r6, r1, #0 + add r1, r2, #0 + str r3, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #0x70 + add r2, r3, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #4 + str r0, [sp, #0xc] + mov r0, #0x70 + add r1, r6, #0 + add r2, r4, #0 + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #4 + str r0, [sp, #0xc] + mov r0, #0x70 + add r1, r5, #0 + add r2, r4, #0 + mov r3, #3 + bl FUN_020068C8 + add sp, #0x10 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021E3D70 +MOD05_021E3D70: ; 0x021E3D70 + push {r3, r4, lr} + sub sp, #0xc + add r3, r1, #0 + add r4, r0, #0 + add r0, r3, #4 + str r0, [sp] + ldr r0, [r3, #0x18] + mov r2, #0 + str r0, [sp, #4] + ldr r0, [r3, #0x1c] + str r0, [sp, #8] + ldr r1, [r3, #0x14] + ldr r0, [r3] + lsl r1, r1, #0x18 + ldr r3, [r3, #0x20] + lsr r1, r1, #0x18 + bl FUN_02017B60 + add r0, r4, #0 + bl FUN_0200CAB4 + add sp, #0xc + pop {r3, r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E3DA0 +MOD05_021E3DA0: ; 0x021E3DA0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, r5, #4 + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + bl MTX_Identity22_ + add r0, sp, #8 + ldrh r0, [r0, #0x14] + ldr r3, _021E3E0C ; =UNK_020FFA38 + 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, r5, #4 + bl MTX_Rot22_ + mov r0, #1 + lsl r0, r0, #0xc + add r1, r7, #0 + bl FX_Div + add r7, r0, #0 + mov r0, #1 + ldr r1, [sp, #0x18] + lsl r0, r0, #0xc + bl FX_Div + add r3, r0, #0 + add r0, r5, #4 + add r1, r0, #0 + add r2, r7, #0 + bl MTX_ScaleApply22 + str r4, [r5] + mov r2, #1 + ldr r0, [sp, #0x20] + str r6, [r5, #0x14] + str r0, [r5, #0x18] + ldr r0, [sp, #0x24] + add r1, r5, #0 + str r0, [r5, #0x1c] + ldr r0, [sp, #0x28] + lsl r2, r2, #0xa + str r0, [r5, #0x20] + ldr r0, _021E3E10 ; =MOD05_021E3D70 + bl FUN_0200CA98 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E3E0C: .word UNK_020FFA38 +_021E3E10: .word MOD05_021E3D70 + + thumb_func_start MOD05_021E3E14 +MOD05_021E3E14: ; 0x021E3E14 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r2, #0 + add r0, r1, #0 + add r1, r5, #4 + mov r2, #4 + bl FUN_02008C9C + mov r7, #0x4b + str r0, [r5] + mov r4, #0 + lsl r7, r7, #2 +_021E3E2C: + add r0, r6, #0 + add r1, r4, #0 + mov r2, #4 + bl FUN_02008DEC + str r0, [r5, r7] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021E3E2C + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E3E44 +MOD05_021E3E44: ; 0x021E3E44 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5] + bl FUN_0201FD58 + mov r6, #0x4b + mov r4, #0 + lsl r6, r6, #2 +_021E3E54: + ldr r0, [r5, r6] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021E3E54 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021E3E64 +MOD05_021E3E64: ; 0x021E3E64 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + ldr r6, [sp, #0x54] + add r4, r1, #0 + str r6, [sp] + mov r1, #1 + add r5, r0, #0 + str r1, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0x4b + str r1, [sp, #0xc] + lsl r0, r0, #2 + str r2, [sp, #0x2c] + add r7, r3, #0 + ldr r0, [r5, r0] + ldr r2, [sp, #0x48] + mov r1, #0x70 + mov r3, #0 + bl FUN_02008F90 + str r0, [r4] + str r6, [sp] + mov r0, #1 + str r0, [sp, #4] + str r7, [sp, #8] + mov r0, #4 + str r0, [sp, #0xc] + mov r0, #0x13 + lsl r0, r0, #4 + ldr r0, [r5, r0] + ldr r2, [sp, #0x2c] + mov r1, #0x70 + mov r3, #0 + bl FUN_02008FEC + str r0, [r4, #4] + str r6, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0x4d + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [sp, #0x4c] + mov r1, #0x70 + mov r3, #0 + bl FUN_020090AC + str r0, [r4, #8] + str r6, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0x4e + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [sp, #0x50] + mov r1, #0x70 + mov r3, #0 + bl FUN_020090AC + str r0, [r4, #0xc] + ldr r0, [r4] + bl FUN_02009B04 + ldr r0, [r4] + bl FUN_02009474 + ldr r0, [r4, #4] + bl FUN_02009D68 + mov r0, #0 + mov r2, #0x4b + str r6, [sp] + mvn r0, r0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r2, r2, #2 + ldr r1, [r5, r2] + add r4, #0x10 + str r1, [sp, #0x14] + add r1, r2, #4 + ldr r1, [r5, r1] + add r3, r6, #0 + str r1, [sp, #0x18] + add r1, r2, #0 + add r1, #8 + ldr r1, [r5, r1] + add r2, #0xc + str r1, [sp, #0x1c] + ldr r1, [r5, r2] + add r2, r6, #0 + str r1, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r4, #0 + add r1, r6, #0 + bl FUN_02008AA4 + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E3F3C +MOD05_021E3F3C: ; 0x021E3F3C + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + bl FUN_02009C0C + ldr r0, [r4, #4] + bl FUN_02009E04 + mov r7, #0x4b + mov r6, #0 + lsl r7, r7, #2 +_021E3F54: + ldr r0, [r5, r7] + ldr r1, [r4] + bl FUN_02009490 + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #4 + blt _021E3F54 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021E3F68 +MOD05_021E3F68: ; 0x021E3F68 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r4, r1, #0 + lsl r1, r2, #0x10 + add r6, r0, #0 + add r0, sp, #8 + lsr r1, r1, #0x10 + add r7, r3, #0 + bl FUN_020690AC + add r0, r4, #0 + mov r1, #0x20 + bl AllocFromHeap + add r1, sp, #4 + add r5, r0, #0 + ldrh r0, [r1, #4] + ldrh r1, [r1, #8] + add r2, sp, #4 + add r3, r4, #0 + bl FUN_02006C08 + add r4, r0, #0 + add r0, sp, #0x20 + ldrh r0, [r0, #0x10] + add r1, r5, #0 + mov r2, #0x10 + str r0, [sp] + ldr r0, [sp, #4] + add r3, r7, #0 + ldr r0, [r0, #0xc] + bl FUN_02003974 + add r0, r6, #0 + add r1, r5, #0 + mov r2, #0x20 + bl MOD05_021E40F0 + add r0, r5, #0 + bl FreeToHeap + add r0, r4, #0 + bl FreeToHeap + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021E3FC4 +MOD05_021E3FC4: ; 0x021E3FC4 + push {r4, lr} + sub sp, #0x20 + ldr r0, [r0] + add r1, #0x10 + str r0, [sp] + ldr r0, [sp, #0x28] + str r1, [sp, #4] + str r0, [sp, #0x10] + ldr r0, [sp, #0x2c] + str r2, [sp, #8] + str r0, [sp, #0x14] + mov r0, #1 + str r0, [sp, #0x18] + mov r0, #4 + str r0, [sp, #0x1c] + add r0, sp, #0 + str r3, [sp, #0xc] + bl FUN_0201FF84 + add r4, r0, #0 + bne _021E3FF2 + bl ErrorHandling +_021E3FF2: + add r0, r4, #0 + add sp, #0x20 + pop {r4, pc} + + thumb_func_start MOD05_021E3FF8 +MOD05_021E3FF8: ; 0x021E3FF8 + push {r4} + sub sp, #0xc + str r2, [sp, #4] + str r3, [sp, #8] + add r2, sp, #0 + add r4, r0, #0 + str r1, [sp] + ldmia r2!, {r0, r1} + stmia r4!, {r0, r1} + ldr r0, [r2] + str r0, [r4] + add sp, #0xc + pop {r4} + bx lr + + thumb_func_start MOD05_021E4014 +MOD05_021E4014: ; 0x021E4014 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r4, r2, #0 + add r5, r1, #0 + lsl r1, r4, #0x10 + add r6, r0, #0 + add r0, sp, #0x10 + lsr r1, r1, #0x10 + add r7, r3, #0 + bl FUN_020690AC + str r5, [sp] + add r1, sp, #8 + ldrh r0, [r1, #8] + ldrh r1, [r1, #0xa] + mov r2, #0 + add r3, sp, #0xc + bl FUN_02006BB0 + str r0, [sp, #4] + ldr r0, [sp, #0xc] + ldr r0, [r0, #0x14] + bl FUN_02008A74 + add r0, sp, #0x28 + ldrh r0, [r0, #0x10] + add r1, r5, #0 + add r2, r4, #0 + str r0, [sp] + add r0, r6, #0 + add r3, r7, #0 + bl MOD05_021E3F68 + ldr r0, [sp, #0xc] + ldr r3, [sp, #0x3c] + add r1, r5, #0 + add r2, sp, #8 + bl MOD05_021E4080 + add r4, r0, #0 + ldr r2, [sp, #8] + add r0, r6, #0 + add r1, r4, #0 + bl MOD05_021E4118 + add r0, r4, #0 + bl FreeToHeap + ldr r0, [sp, #4] + bl FreeToHeap + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4080 +MOD05_021E4080: ; 0x021E4080 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + str r0, [sp] + ldr r4, [r0, #0x14] + add r0, r1, #0 + mov r1, #2 + lsl r1, r1, #0xa + str r2, [sp, #4] + add r5, r3, #0 + bl AllocFromHeap + mov ip, r0 + lsl r0, r5, #2 + mov r7, #0 + add r6, r4, r0 +_021E409E: + ldr r0, [sp] + mov r2, #0 + ldrh r0, [r0, #2] + add r3, r7, #0 + lsr r1, r7, #0x1f + lsl r5, r7, #0x1d + mul r3, r0 + sub r5, r5, r1 + mov r0, #0x1d + ror r5, r0 + asr r0, r7, #2 + lsr r0, r0, #0x1d + add r0, r7, r0 + asr r0, r0, #3 + add r1, r1, r5 + lsl r0, r0, #6 + add r0, r1, r0 + lsl r1, r0, #2 + mov r0, ip + add r4, r2, #0 + add r5, r0, r1 +_021E40C8: + add r0, r3, r2 + lsl r0, r0, #2 + ldr r1, [r6, r0] + lsl r0, r4, #2 + add r2, r2, #1 + add r4, #8 + str r1, [r5, r0] + cmp r2, #8 + blt _021E40C8 + add r7, r7, #1 + cmp r7, #0x40 + blt _021E409E + mov r1, #2 + ldr r0, [sp, #4] + lsl r1, r1, #0xa + str r1, [r0] + mov r0, ip + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E40F0 +MOD05_021E40F0: ; 0x021E40F0 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r4, r2, #0 + bl FUN_02020354 + add r6, r0, #0 + add r0, r5, #0 + add r1, r4, #0 + bl DC_FlushRange + add r0, r6, #0 + mov r1, #1 + bl FUN_020B19C4 + add r1, r0, #0 + add r0, r5, #0 + add r2, r4, #0 + bl GX_LoadOBJPltt + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021E4118 +MOD05_021E4118: ; 0x021E4118 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r4, r2, #0 + bl FUN_02020350 + add r6, r0, #0 + add r0, r5, #0 + add r1, r4, #0 + bl DC_FlushRange + add r0, r6, #0 + mov r1, #1 + bl FUN_020B1A14 + add r1, r0, #0 + add r0, r5, #0 + add r2, r4, #0 + bl GX_LoadOBJ + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021E4140 +MOD05_021E4140: ; 0x021E4140 + push {r4, lr} + mov r1, #0x30 + bl AllocFromHeap + mov r1, #0 + mov r2, #0x30 + add r4, r0, #0 + bl memset + add r0, r4, #0 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4158 +MOD05_021E4158: ; 0x021E4158 + ldr r3, _021E415C ; =FreeToHeap + bx r3 + .balign 4, 0 +_021E415C: .word FreeToHeap + + thumb_func_start MOD05_021E4160 +MOD05_021E4160: ; 0x021E4160 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, #0x2e + ldrb r0, [r0] + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + cmp r0, #0 + beq _021E4176 + bl ErrorHandling +_021E4176: + ldr r3, [sp, #0x1c] + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021E35B0 + add r0, r5, #0 + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x1c] + add r0, #0x14 + add r1, r7, #0 + bl MOD05_021E35B0 + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x24] + str r0, [r5, #0x28] + add r0, r5, #0 + add r0, #0x2c + strb r1, [r0] + add r0, r5, #0 + ldr r1, [sp, #0x28] + add r0, #0x2d + strb r1, [r0] + add r0, sp, #0x2c + ldrb r1, [r0] + add r0, r5, #0 + add r0, #0x2f + strb r1, [r0] + mov r0, #1 + add r5, #0x2e + strb r0, [r5] + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E41B8 +MOD05_021E41B8: ; 0x021E41B8 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + add r1, r5, #0 + add r1, #0x2e + ldrb r1, [r1] + cmp r1, #0 + bne _021E41CE + add sp, #8 + mov r0, #1 + pop {r4, r5, r6, pc} +_021E41CE: + bl MOD05_021E35C0 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0x14 + bl MOD05_021E35C0 + add r0, r5, #0 + add r0, #0x2c + ldrb r0, [r0] + ldr r2, [r5] + ldr r6, [r5, #0x14] + lsr r1, r0, #1 + sub r1, r2, r1 + lsl r1, r1, #0x10 + asr r3, r1, #0x10 + add r1, r5, #0 + add r1, #0x2d + ldrb r2, [r1] + add r0, r3, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + lsr r1, r2, #1 + str r0, [sp] + add r0, r5, #0 + sub r1, r6, r1 + add r0, #0x2f + lsl r1, r1, #0x10 + ldrb r0, [r0] + asr r1, r1, #0x10 + add r2, r1, r2 + str r0, [sp, #4] + lsl r2, r2, #0x10 + ldr r0, [r5, #0x28] + asr r2, r2, #0x10 + bl MOD05_021E4338 + add r0, r4, #0 + add sp, #8 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4220 +MOD05_021E4220: ; 0x021E4220 + push {r4, lr} + mov r1, #0x30 + bl AllocFromHeap + mov r1, #0 + mov r2, #0x30 + add r4, r0, #0 + bl memset + add r0, r4, #0 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4238 +MOD05_021E4238: ; 0x021E4238 + ldr r3, _021E423C ; =FreeToHeap + bx r3 + .balign 4, 0 +_021E423C: .word FreeToHeap + + thumb_func_start MOD05_021E4240 +MOD05_021E4240: ; 0x021E4240 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, #0x2e + ldrb r0, [r0] + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + cmp r0, #0 + beq _021E4256 + bl ErrorHandling +_021E4256: + ldr r3, [sp, #0x1c] + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021E35B0 + add r0, r5, #0 + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x1c] + add r0, #0x14 + add r1, r7, #0 + bl MOD05_021E35B0 + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x24] + str r0, [r5, #0x28] + add r0, r5, #0 + add r0, #0x2c + strb r1, [r0] + add r0, r5, #0 + ldr r1, [sp, #0x28] + add r0, #0x2d + strb r1, [r0] + add r0, sp, #0x2c + ldrb r1, [r0] + add r0, r5, #0 + add r0, #0x2f + strb r1, [r0] + mov r0, #1 + add r5, #0x2e + strb r0, [r5] + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4298 +MOD05_021E4298: ; 0x021E4298 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + add r0, #0x2e + ldrb r0, [r0] + cmp r0, #0 + bne _021E42AC + add sp, #8 + mov r0, #1 + pop {r4, r5, r6, pc} +_021E42AC: + add r0, r5, #0 + add r0, #0x2c + ldrb r0, [r0] + ldr r2, [r5] + ldr r4, [r5, #0x14] + lsr r1, r0, #1 + sub r1, r2, r1 + lsl r1, r1, #0x10 + asr r3, r1, #0x10 + add r1, r5, #0 + add r1, #0x2d + ldrb r2, [r1] + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r1, r2, #1 + sub r1, r4, r1 + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + asr r0, r0, #0x10 + str r0, [sp] + mov r0, #0 + add r2, r1, r2 + str r0, [sp, #4] + lsl r2, r2, #0x10 + ldr r0, [r5, #0x28] + asr r2, r2, #0x10 + bl MOD05_021E4338 + add r0, r5, #0 + bl MOD05_021E35C0 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0x14 + bl MOD05_021E35C0 + add r0, r5, #0 + add r0, #0x2c + ldrb r0, [r0] + ldr r2, [r5] + ldr r6, [r5, #0x14] + lsr r1, r0, #1 + sub r1, r2, r1 + lsl r1, r1, #0x10 + asr r3, r1, #0x10 + add r1, r5, #0 + add r1, #0x2d + ldrb r2, [r1] + add r0, r3, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + lsr r1, r2, #1 + str r0, [sp] + add r0, r5, #0 + sub r1, r6, r1 + add r0, #0x2f + lsl r1, r1, #0x10 + ldrb r0, [r0] + asr r1, r1, #0x10 + add r2, r1, r2 + str r0, [sp, #4] + lsl r2, r2, #0x10 + ldr r0, [r5, #0x28] + asr r2, r2, #0x10 + bl MOD05_021E4338 + add r0, r4, #0 + add sp, #8 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4338 +MOD05_021E4338: ; 0x021E4338 + push {r3, r4, r5, lr} + sub sp, #8 + ldr r5, [sp, #0x18] + add r4, r1, #0 + cmp r5, #0 + ble _021E4390 + cmp r2, #0 + ble _021E4390 + cmp r3, r5 + beq _021E4390 + cmp r4, r2 + beq _021E4390 + cmp r3, #0 + bge _021E4356 + mov r3, #0 +_021E4356: + mov r1, #1 + lsl r1, r1, #8 + cmp r5, r1 + ble _021E4360 + add r5, r1, #0 +_021E4360: + cmp r4, #0 + bge _021E4366 + mov r4, #0 +_021E4366: + mov r1, #1 + lsl r1, r1, #8 + cmp r2, r1 + ble _021E4370 + add r2, r1, #0 +_021E4370: + sub r1, r5, r3 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + str r1, [sp] + sub r1, r2, r4 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + str r1, [sp, #4] + lsl r2, r3, #0x10 + add r1, sp, #8 + lsl r3, r4, #0x10 + ldrb r1, [r1, #0x14] + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + bl FUN_020196F4 +_021E4390: + add sp, #8 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021E4394 +MOD05_021E4394: ; 0x021E4394 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #4 + mov r1, #0xcc + bl AllocFromHeap + mov r1, #0 + mov r2, #0xcc + add r7, r0, #0 + bl memset + mov r4, #0 + add r5, r7, #0 +_021E43AE: + add r0, r6, #0 + bl MOD05_021E4220 + str r0, [r5, #4] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x30 + blt _021E43AE + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E43C4 +MOD05_021E43C4: ; 0x021E43C4 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021E43CC: + ldr r0, [r5, #4] + bl MOD05_021E4238 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x30 + blt _021E43CC + add r0, r6, #0 + bl FreeToHeap + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E43E4 +MOD05_021E43E4: ; 0x021E43E4 + push {r3, r4} + str r3, [r0] + ldr r3, _021E4420 ; =0xFFFFFFF8 + add r3, sp + ldrb r4, [r3, #0x10] + add r3, r0, #0 + add r3, #0xc9 + strb r4, [r3] + add r3, r0, #0 + add r3, #0xc6 + strb r1, [r3] + add r1, r0, #0 + add r1, #0xc7 + strb r2, [r1] + add r1, r0, #0 + mov r2, #0 + add r1, #0xc4 + strb r2, [r1] + add r1, r0, #0 + add r1, #0xc5 + strb r2, [r1] + add r1, r0, #0 + add r1, #0xc8 + strb r2, [r1] + mov r1, #1 + add r0, #0xca + strb r1, [r0] + pop {r3, r4} + bx lr + nop +_021E4420: .word 0xFFFFFFF8 + + thumb_func_start MOD05_021E4424 +MOD05_021E4424: ; 0x021E4424 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r6, r0, #0 + add r0, #0xca + ldrb r0, [r0] + cmp r0, #0 + bne _021E4438 + add sp, #0x1c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021E4438: + add r0, r6, #0 + add r0, #0xc4 + ldrb r0, [r0] + cmp r0, #0x30 + bhs _021E44BC + mov r1, #0xc8 + ldrsb r0, [r6, r1] + sub r2, r0, #1 + add r0, r6, #0 + add r0, #0xc8 + strb r2, [r0] + ldrsb r0, [r6, r1] + cmp r0, #0 + bgt _021E44BC + add r0, r6, #0 + add r0, #0xc7 + ldrb r1, [r0] + add r0, r6, #0 + add r0, #0xc8 + strb r1, [r0] + add r0, r6, #0 + add r0, #0xc4 + ldrb r0, [r0] + mov r1, #0x1d + lsr r3, r0, #0x1f + lsl r2, r0, #0x1d + sub r2, r2, r3 + ror r2, r1 + add r2, r3, r2 + ldr r1, _021E4518 ; =UNK05_021F745C + mov r3, #0x20 + ldrb r1, [r1, r2] + lsr r2, r0, #3 + lsl r4, r2, #5 + mov r2, #0xb0 + sub r2, r2, r4 + str r2, [sp] + add r2, r6, #0 + add r2, #0xc6 + ldrb r2, [r2] + lsl r0, r0, #2 + lsl r1, r1, #5 + str r2, [sp, #4] + ldr r2, [r6] + add r0, r6, r0 + str r2, [sp, #8] + str r3, [sp, #0xc] + add r2, r6, #0 + str r3, [sp, #0x10] + add r2, #0xc9 + ldrb r2, [r2] + sub r3, #0x30 + add r1, #0x10 + str r2, [sp, #0x14] + ldr r0, [r0, #4] + add r2, r1, #0 + sub r3, r3, r4 + bl MOD05_021E4240 + add r0, r6, #0 + add r0, #0xc4 + ldrb r0, [r0] + add r1, r0, #1 + add r0, r6, #0 + add r0, #0xc4 + strb r1, [r0] +_021E44BC: + add r0, r6, #0 + add r0, #0xc5 + ldrb r4, [r0] + add r0, r6, #0 + add r0, #0xc4 + ldrb r0, [r0] + cmp r4, r0 + bge _021E44F4 + lsl r0, r4, #2 + add r7, r6, #0 + add r5, r6, r0 + add r7, #0xc5 +_021E44D4: + ldr r0, [r5, #4] + bl MOD05_021E4298 + str r0, [sp, #0x18] + cmp r0, #1 + bne _021E44E6 + ldrb r0, [r7] + add r0, r0, #1 + strb r0, [r7] +_021E44E6: + add r0, r6, #0 + add r0, #0xc4 + ldrb r0, [r0] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blt _021E44D4 +_021E44F4: + add r0, r6, #0 + add r0, #0xc5 + ldrb r0, [r0] + cmp r0, #0x30 + blo _021E4510 + ldr r0, [sp, #0x18] + cmp r0, #1 + bne _021E4510 + mov r0, #0 + add r6, #0xca + strb r0, [r6] + add sp, #0x1c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021E4510: + mov r0, #0 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021E4518: .word UNK05_021F745C + + thumb_func_start MOD05_021E451C +MOD05_021E451C: ; 0x021E451C + push {r3, lr} + mov r1, #0x1c + bl AllocFromHeap + add r3, r0, #0 + mov r2, #0x1c + mov r1, #0 +_021E452A: + strb r1, [r3] + add r3, r3, #1 + sub r2, r2, #1 + bne _021E452A + pop {r3, pc} + + thumb_func_start MOD05_021E4534 +MOD05_021E4534: ; 0x021E4534 + ldr r3, _021E4538 ; =FreeToHeap + bx r3 + .balign 4, 0 +_021E4538: .word FreeToHeap + + thumb_func_start MOD05_021E453C +MOD05_021E453C: ; 0x021E453C + push {r4, lr} + add r4, r1, #0 + ldr r1, [sp, #8] + str r1, [r0] + ldr r1, _021E4560 ; =0xFFFFFFF8 + add r1, sp + ldrb r1, [r1, #0x14] + strb r1, [r0, #0x19] + mov r1, #1 + strb r1, [r0, #0x18] + add r1, r2, #0 + add r2, r3, #0 + add r0, r0, #4 + add r3, r4, #0 + bl MOD05_021E35B0 + pop {r4, pc} + nop +_021E4560: .word 0xFFFFFFF8 + + thumb_func_start MOD05_021E4564 +MOD05_021E4564: ; 0x021E4564 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _021E4572 + mov r0, #1 + pop {r4, r5, r6, pc} +_021E4572: + ldr r0, [r5, #4] + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r5, #4 + bl MOD05_021E35C0 + ldr r2, [r5, #4] + add r6, r0, #0 + lsl r2, r2, #0x10 + ldrb r3, [r5, #0x19] + ldr r0, [r5] + add r1, r4, #0 + lsr r2, r2, #0x10 + bl MOD05_021E45A0 + cmp r6, #1 + bne _021E459C + mov r0, #0 + strb r0, [r5, #0x18] + mov r0, #1 + pop {r4, r5, r6, pc} +_021E459C: + mov r0, #0 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021E45A0 +MOD05_021E45A0: ; 0x021E45A0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + str r0, [sp, #8] + asr r0, r2, #4 + add r4, r1, #0 + lsl r1, r0, #1 + lsl r0, r1, #1 + ldr r2, _021E4680 ; =UNK_020FFA38 + add r1, r1, #1 + lsl r1, r1, #1 + ldrsh r0, [r2, r0] + ldrsh r1, [r2, r1] + str r3, [sp, #0xc] + bl FX_Div + str r0, [sp, #0x18] + asr r0, r4, #4 + lsl r1, r0, #1 + lsl r0, r1, #1 + ldr r2, _021E4680 ; =UNK_020FFA38 + add r1, r1, #1 + lsl r1, r1, #1 + ldrsh r0, [r2, r0] + ldrsh r1, [r2, r1] + bl FX_Div + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + mov r5, #0 + asr r0, r0, #0x1f + str r0, [sp, #0x1c] + ldr r0, [sp, #0x10] + asr r0, r0, #0x1f + str r0, [sp, #0x14] +_021E45E4: + mov r0, #0x5f + sub r0, r0, r5 + lsl r6, r0, #0xc + asr r4, r6, #0x1f + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + add r2, r6, #0 + add r3, r4, #0 + bl _ll_mul + mov r2, #2 + lsl r2, r2, #0xa + add r2, r0, r2 + ldr r0, _021E4684 ; =0x00000000 + adc r1, r0 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + asr r7, r1, #0xc + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + add r2, r6, #0 + add r3, r4, #0 + bl _ll_mul + mov r2, #2 + lsl r2, r2, #0xa + add r2, r0, r2 + ldr r0, _021E4684 ; =0x00000000 + adc r1, r0 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + asr r0, r1, #0xc + mov r1, #0x80 + add r4, r7, #0 + add r6, r0, #0 + mov r2, #0x80 + sub r0, r2, r0 + sub r1, r1, r7 + add r4, #0x80 + add r6, #0x80 + add r3, r0, #0 + cmp r0, r1 + ble _021E4642 + add r3, r1, #0 + add r1, r0, #0 +_021E4642: + cmp r6, r4 + ble _021E464C + add r0, r6, #0 + add r6, r4, #0 + add r4, r0, #0 +_021E464C: + add r0, r1, #1 + str r0, [sp] + ldr r0, [sp, #0xc] + add r1, r5, #0 + str r0, [sp, #4] + ldr r0, [sp, #8] + add r2, r5, #1 + bl MOD05_021E4338 + add r0, r4, #1 + str r0, [sp] + ldr r0, [sp, #0xc] + mov r1, #0xbf + str r0, [sp, #4] + mov r2, #0xc0 + ldr r0, [sp, #8] + sub r1, r1, r5 + sub r2, r2, r5 + add r3, r6, #0 + bl MOD05_021E4338 + add r5, r5, #1 + cmp r5, #0x60 + blt _021E45E4 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021E4680: .word UNK_020FFA38 +_021E4684: .word 0x00000000 + + thumb_func_start MOD05_021E4688 +MOD05_021E4688: ; 0x021E4688 + push {r3, r4, r5, r6, r7, lr} + mov r1, #0x24 + add r6, r0, #0 + bl AllocFromHeap + mov r1, #0 + mov r2, #0x24 + add r7, r0, #0 + bl memset + mov r4, #0 + add r5, r7, #0 +_021E46A0: + add r0, r6, #0 + bl MOD05_021E451C + add r4, r4, #1 + stmia r5!, {r0} + cmp r4, #8 + blt _021E46A0 + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E46B4 +MOD05_021E46B4: ; 0x021E46B4 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021E46BC: + ldr r0, [r5] + bl MOD05_021E4534 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #8 + blt _021E46BC + add r0, r6, #0 + bl FreeToHeap + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E46D4 +MOD05_021E46D4: ; 0x021E46D4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r1, [sp, #0xc] + ldr r4, _021E474C ; =UNK05_021F74C8 + str r0, [sp, #8] + str r2, [sp, #0x10] + str r3, [sp, #0x14] + mov r6, #0 + add r5, r0, #0 +_021E46E6: + ldrh r1, [r4] + ldr r0, _021E4750 ; =0x0000FFFF + mul r0, r1 + mov r1, #0x5a + lsl r1, r1, #2 + bl _s32_div_f + add r7, r0, #0 + ldrh r1, [r4, #2] + ldr r0, _021E4750 ; =0x0000FFFF + mul r0, r1 + mov r1, #0x5a + lsl r1, r1, #2 + bl _s32_div_f + add r3, r0, #0 + ldr r0, [sp, #0x10] + lsl r2, r7, #0x10 + str r0, [sp] + ldr r0, [sp, #0x14] + lsl r3, r3, #0x10 + str r0, [sp, #4] + ldr r0, [r5] + ldr r1, [sp, #0xc] + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + bl MOD05_021E453C + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #8 + blt _021E46E6 + ldr r0, [sp, #8] + mov r1, #1 + add r0, #0x20 + strb r1, [r0] + add r1, #0xff + str r1, [sp] + str r0, [sp, #8] + ldr r0, [sp, #0x14] + mov r1, #0x5d + str r0, [sp, #4] + ldr r0, [sp, #0x10] + mov r2, #0x63 + mov r3, #0 + bl MOD05_021E4338 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E474C: .word UNK05_021F74C8 +_021E4750: .word 0x0000FFFF + + thumb_func_start MOD05_021E4754 +MOD05_021E4754: ; 0x021E4754 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + bne _021E4764 + mov r0, #1 + pop {r4, r5, r6, pc} +_021E4764: + mov r4, #0 + add r5, r6, #0 +_021E4768: + ldr r0, [r5] + bl MOD05_021E4564 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #8 + blt _021E4768 + cmp r0, #1 + bne _021E4784 + mov r0, #0 + add r6, #0x20 + strb r0, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_021E4784: + mov r0, #0 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021E4788 +MOD05_021E4788: ; 0x021E4788 + push {r4, lr} + mov r0, #4 + mov r1, #0xe8 + bl AllocFromHeap + mov r1, #0 + mov r2, #0xe8 + add r4, r0, #0 + bl memset + add r0, r4, #0 + pop {r4, pc} + + thumb_func_start MOD05_021E47A0 +MOD05_021E47A0: ; 0x021E47A0 + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + add r1, #0xe0 + ldr r1, [r1] + cmp r1, #0 + beq _021E47B2 + bl MOD05_021E4918 +_021E47B2: + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E47BC +MOD05_021E47BC: ; 0x021E47BC + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + ldr r0, [sp, #0x18] + add r6, r1, #0 + str r0, [sp, #0x18] + add r0, r6, #0 + add r0, #0xe0 + ldr r0, [r0] + add r7, r2, #0 + add r5, r3, #0 + cmp r0, #0 + beq _021E47D8 + bl ErrorHandling +_021E47D8: + mov r1, #0 + str r1, [r4, #0x18] + ldr r0, [r4, #0x10] + add r4, #0x18 + ldr r0, [r0, #4] + add r3, r7, #0 + ldr r2, [r0, #0x1c] + add r0, r6, #0 + add r0, #0xd8 + str r2, [r0] + add r0, r6, #0 + str r1, [r6, #0x14] + add r0, #0xe4 + str r4, [r0] + add r0, r6, #0 + mov r2, #0xff + bl MOD05_021E35B0 + mov r4, #0 +_021E47FE: + add r0, r4, #0 + add r1, r5, #0 + bl _u32_div_f + ldr r0, [sp, #0x18] + mul r0, r1 + add r1, r5, #0 + bl _u32_div_f + add r7, r0, #0 + add r0, r4, #0 + add r1, r5, #0 + bl _u32_div_f + mov r1, #1 + tst r0, r1 + bne _021E4826 + add r0, r6, r4 + strb r7, [r0, #0x18] + b _021E482E +_021E4826: + ldr r0, [sp, #0x18] + sub r1, r0, r7 + add r0, r6, r4 + strb r1, [r0, #0x18] +_021E482E: + add r4, r4, #1 + cmp r4, #0xc0 + blt _021E47FE + ldr r0, _021E4878 ; =0x04000048 + mov r1, #0x3f + ldrh r3, [r0] + ldr r2, [sp, #0x1c] + bic r3, r1 + orr r3, r2 + mov r2, #0x20 + orr r3, r2 + strh r3, [r0] + ldrh r3, [r0, #2] + bic r3, r1 + ldr r1, [sp, #0x20] + orr r1, r3 + strh r1, [r0, #2] + add r1, r0, #0 + mov r3, #0 + sub r1, #8 + strh r3, [r1] + mov r1, #0xc0 + sub r0, r0, #4 + strh r1, [r0] + lsl r3, r2, #0x15 + ldr r1, [r3] + ldr r0, _021E487C ; =0xFFFF1FFF + and r1, r0 + lsl r0, r2, #8 + orr r0, r1 + str r0, [r3] + ldr r0, _021E4880 ; =MOD05_021E4884 + add r1, r6, #0 + lsl r2, r2, #5 + bl FUN_0200CA98 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021E4878: .word 0x04000048 +_021E487C: .word 0xFFFF1FFF +_021E4880: .word MOD05_021E4884 + + thumb_func_start MOD05_021E4884 +MOD05_021E4884: ; 0x021E4884 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + ldr r1, _021E48B8 ; =MOD05_021E48EC + add r2, r4, #0 + bl MOD05_021F4624 + add r1, r4, #0 + add r1, #0xdc + str r0, [r1] + mov r2, #1 + ldr r0, _021E48BC ; =MOD05_021E48C0 + add r1, r4, #0 + lsl r2, r2, #0xa + bl FUN_0200CA98 + add r4, #0xe0 + str r0, [r4] + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + nop +_021E48B8: .word MOD05_021E48EC +_021E48BC: .word MOD05_021E48C0 + + thumb_func_start MOD05_021E48C0 +MOD05_021E48C0: ; 0x021E48C0 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _021E48D0 + cmp r0, #1 + beq _021E48E2 + pop {r4, pc} +_021E48D0: + add r0, r4, #0 + bl MOD05_021E35C0 + cmp r0, #1 + bne _021E48E8 + ldr r0, [r4, #0x14] + add r0, r0, #1 + str r0, [r4, #0x14] + pop {r4, pc} +_021E48E2: + add r0, r4, #0 + bl MOD05_021E4918 +_021E48E8: + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E48EC +MOD05_021E48EC: ; 0x021E48EC + ldr r0, _021E4910 ; =0x04000006 + ldrh r0, [r0] + cmp r0, #0xc0 + bge _021E490E + add r0, r1, r0 + ldrb r0, [r0, #0x18] + ldr r2, [r1] + add r0, r2, r0 + cmp r0, #0xff + ble _021E4902 + mov r0, #0xff +_021E4902: + lsl r0, r0, #0x18 + ldr r1, _021E4914 ; =0x04000040 + lsr r0, r0, #0x18 + strh r0, [r1] + mov r0, #0xc0 + strh r0, [r1, #4] +_021E490E: + bx lr + .balign 4, 0 +_021E4910: .word 0x04000006 +_021E4914: .word 0x04000040 + + thumb_func_start MOD05_021E4918 +MOD05_021E4918: ; 0x021E4918 + push {r4, lr} + mov r2, #1 + lsl r2, r2, #0x1a + add r4, r0, #0 + ldr r1, [r2] + ldr r0, _021E4958 ; =0xFFFF1FFF + and r0, r1 + str r0, [r2] + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r1, #1 + str r1, [r0] + add r0, r4, #0 + add r0, #0xdc + ldr r0, [r0] + bl MOD05_021F4648 + add r0, r4, #0 + mov r1, #0 + add r0, #0xdc + str r1, [r0] + add r0, r4, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200CAB4 + mov r0, #0 + add r4, #0xe0 + str r0, [r4] + pop {r4, pc} + nop +_021E4958: .word 0xFFFF1FFF + + thumb_func_start MOD05_021E495C +MOD05_021E495C: ; 0x021E495C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5] + mov r6, #1 + add r1, r0, #0 + tst r1, r6 + bne _021E4980 + mov r1, #0x72 + lsl r1, r1, #4 + tst r1, r0 + bne _021E4976 + cmp r0, #0 + bne _021E497A +_021E4976: + mov r6, #0 + b _021E4980 +_021E497A: + bl ErrorHandling + mov r6, #0 +_021E4980: + ldr r0, [r5, #4] + bl GetFirstAliveMonInParty_CrashIfNone + add r7, r0, #0 + ldr r0, [r5, #8] + bl GetFirstAliveMonInParty_CrashIfNone + str r0, [sp] + add r0, r7, #0 + mov r1, #0xa0 + mov r2, #0 + bl GetMonData + add r7, r0, #0 + ldr r0, [sp] + mov r1, #0xa0 + mov r2, #0 + bl GetMonData + mov r1, #0x55 + lsl r1, r1, #2 + ldr r1, [r5, r1] + sub r0, r0, r7 + cmp r1, #0xc + bhi _021E49E2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E49BE: ; jump table + .short _021E49D8 - _021E49BE - 2 ; case 0 + .short _021E49D8 - _021E49BE - 2 ; case 1 + .short _021E49D8 - _021E49BE - 2 ; case 2 + .short _021E49D8 - _021E49BE - 2 ; case 3 + .short _021E49D8 - _021E49BE - 2 ; case 4 + .short _021E49E0 - _021E49BE - 2 ; case 5 + .short _021E49D8 - _021E49BE - 2 ; case 6 + .short _021E49DC - _021E49BE - 2 ; case 7 + .short _021E49D8 - _021E49BE - 2 ; case 8 + .short _021E49D8 - _021E49BE - 2 ; case 9 + .short _021E49D8 - _021E49BE - 2 ; case 10 + .short _021E49D8 - _021E49BE - 2 ; case 11 + .short _021E49D8 - _021E49BE - 2 ; case 12 +_021E49D8: + mov r4, #0 + b _021E49E2 +_021E49DC: + mov r4, #2 + b _021E49E2 +_021E49E0: + mov r4, #4 +_021E49E2: + cmp r0, #0 + ble _021E49E8 + add r4, r4, #1 +_021E49E8: + mov r0, #6 + mul r0, r6 + add r0, r4, r0 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021E49F0 +MOD05_021E49F0: ; 0x021E49F0 + push {r4, r5, r6, lr} + ldr r4, [sp, #0x14] + add r5, r0, #0 + mov r0, #0 + strb r0, [r4] + mov r0, #0xff + strb r0, [r4, #1] + lsl r0, r3, #0xc + add r6, r1, #0 + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #2 + add r3, r0, #0 + asr r0, r5, #0xc + mov r5, #0 + lsl r2, r2, #0xa + add r3, r3, r2 + adc r1, r5 + lsl r1, r1, #0x14 + lsr r3, r3, #0xc + orr r3, r1 + asr r3, r3, #0xc + lsr r1, r3, #0x1f + add r1, r3, r1 + asr r1, r1, #1 + sub r0, r0, r1 + strb r0, [r4, #2] + ldr r0, _021E4A38 ; =MOD05_021E4A64 + add r1, r4, #0 + lsr r2, r2, #1 + strb r6, [r4, #3] + bl FUN_0200CA98 + pop {r4, r5, r6, pc} + .balign 4, 0 +_021E4A38: .word MOD05_021E4A64 + + thumb_func_start MOD05_021E4A3C +MOD05_021E4A3C: ; 0x021E4A3C + push {r3, r4, r5, lr} + add r5, r0, #0 + lsl r0, r2, #0xc + add r4, r1, #0 + asr r1, r0, #0x1f + asr r3, r5, #0x1f + add r2, r5, #0 + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + asr r0, r1, #0xc + add r0, r4, r0 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021E4A64 +MOD05_021E4A64: ; 0x021E4A64 + push {r3, r4, r5, lr} + ldrb r2, [r1, #4] + ldrb r3, [r1, #3] + cmp r2, #0 + bne _021E4A8C + ldrb r4, [r1] + ldrb r2, [r1, #2] + ldrb r1, [r1, #1] + lsl r5, r4, #8 + mov r4, #0xff + lsl r4, r4, #8 + and r5, r4 + orr r5, r1 + ldr r1, _021E4AB0 ; =0x04000040 + lsl r2, r2, #8 + and r2, r4 + strh r5, [r1] + orr r2, r3 + strh r2, [r1, #4] + b _021E4AA8 +_021E4A8C: + ldrb r4, [r1] + ldrb r2, [r1, #2] + ldrb r1, [r1, #1] + lsl r5, r4, #8 + mov r4, #0xff + lsl r4, r4, #8 + and r5, r4 + orr r5, r1 + ldr r1, _021E4AB4 ; =0x04000042 + lsl r2, r2, #8 + and r2, r4 + strh r5, [r1] + orr r2, r3 + strh r2, [r1, #4] +_021E4AA8: + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + nop +_021E4AB0: .word 0x04000040 +_021E4AB4: .word 0x04000042 + + thumb_func_start MOD05_021E4AB8 +MOD05_021E4AB8: ; 0x021E4AB8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E4ACC ; =0x0400006C + ldr r1, [r1] + bl GXx_SetMasterBrightness_ + add r0, r4, #0 + bl FUN_0200CAB4 + pop {r4, pc} + .balign 4, 0 +_021E4ACC: .word 0x0400006C + + thumb_func_start MOD05_021E4AD0 +MOD05_021E4AD0: ; 0x021E4AD0 + ldr r3, _021E4ADC ; =FUN_0200CA98 + mov r2, #1 + add r1, r0, #0 + ldr r0, _021E4AE0 ; =MOD05_021E4AB8 + lsl r2, r2, #0xa + bx r3 + .balign 4, 0 +_021E4ADC: .word FUN_0200CA98 +_021E4AE0: .word MOD05_021E4AB8 + + .section .rodata + + .global UNK05_021F745C +UNK05_021F745C: ; 0x021F745C + .byte 0x00, 0x02, 0x05, 0x07, 0x01, 0x06, 0x03, 0x04 + + .global UNK05_021F7464 +UNK05_021F7464: ; 0x021F7464 + .word 0x00000001, 0x00000001, 0x00000000, 0x00000001 + + .global UNK05_021F7474 +UNK05_021F7474: ; 0x021F7474 + .word 0x00000000, 0x00000000, 0x00000800, 0x00000000 + .word 0x001F0101, 0x00010001, 0x00000000 + + .global UNK05_021F7490 +UNK05_021F7490: ; 0x021F7490 + .word 0x00000000, 0x00000000, 0x00000800, 0x00000000 + .word MOD05_021E0000, 0x00000001, 0x00000000 + + .global UNK05_021F74AC +UNK05_021F74AC: ; 0x021F74AC + .word 0x00000000, 0x00000000, 0x00000800, 0x00000000 + .word 0x011D0001, 0x00000300, 0x00000000 + + .global UNK05_021F74C8 +UNK05_021F74C8: ; 0x021F74C8 + .short 0x0000, 0x0017, 0x002D, 0x0016, 0x002D, 0x0044, 0x005A, 0x0043 + .short 0x005B, 0x0071, 0x0087, 0x0070, 0x0087, 0x009E, 0x00B4, 0x009D + + .global UNK05_021F74E8 +UNK05_021F74E8: ; 0x021F74E8 + .word MOD05_021E8A68, MOD05_021E88E8, MOD05_021E8BEC, MOD05_021E8D20 + .word MOD05_021E8F20, MOD05_021E9030, MOD05_021E9140, MOD05_021E94A8 + .word MOD05_021E97A8, MOD05_021E9B68, MOD05_021EA0E4, MOD05_021EA3A4 + .word MOD05_021EBBC8, MOD05_021EBBE8, MOD05_021EBC08, MOD05_021EBC28 + .word MOD05_021EBC48, MOD05_021EBC68, MOD05_021EBC88, MOD05_021EBCA8 + .word MOD05_021EC3B8, MOD05_021EC3D8, MOD05_021EC3F8, MOD05_021EC418 + .word MOD05_021EC438, MOD05_021EB448, MOD05_021EB5B4, MOD05_021EAD60 + .word MOD05_021EB160, MOD05_021EA884, MOD05_021EAAE8 diff --git a/arm9/modules/05/asm/mod05_021E4AE4.s b/arm9/modules/05/asm/mod05_021E4AE4.s new file mode 100644 index 00000000..b05969ea --- /dev/null +++ b/arm9/modules/05/asm/mod05_021E4AE4.s @@ -0,0 +1,1103 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021E4AE4 +MOD05_021E4AE4: ; 0x021E4AE4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r1, #0 + str r2, [sp] + add r0, r2, #0 + add r2, r3, #0 + mov r1, #0x42 + mov r3, #0 + bl MOD05_021F5990 + mov r1, #0x2c + mov r2, #0 + add r6, r0, #0 + bl MOD05_021F5A20 + mov r1, #0 + mov r2, #0x2c + add r4, r0, #0 + bl memset + ldr r0, [sp] + lsl r1, r5, #3 + str r0, [r4] + mov r0, #0x42 + str r0, [r4, #4] + str r5, [r4, #8] + str r6, [r4, #0x14] + str r7, [r4, #0x18] + add r0, r6, #0 + mov r2, #0 + bl MOD05_021F5A20 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD05_021E4C80 + add r0, r4, #0 + bl MOD05_021E4C34 + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4B38 +MOD05_021E4B38: ; 0x021E4B38 + ldr r3, _021E4B40 ; =MOD05_021E4D90 + str r1, [r0, #0xc] + bx r3 + nop +_021E4B40: .word MOD05_021E4D90 + + thumb_func_start MOD05_021E4B44 +MOD05_021E4B44: ; 0x021E4B44 + push {r3, r4, lr} + sub sp, #0x14 + ldr r4, [sp, #0x20] + str r4, [sp] + ldr r4, [sp, #0x24] + 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] + bl MOD05_021E4DEC + add sp, #0x14 + pop {r3, r4, pc} + + thumb_func_start MOD05_021E4B64 +MOD05_021E4B64: ; 0x021E4B64 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD05_021E4D2C + cmp r0, #0 + beq _021E4B78 + bl ErrorHandling + pop {r3, r4, r5, pc} +_021E4B78: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021E4C98 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4B84 +MOD05_021E4B84: ; 0x021E4B84 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #0x20 + beq _021E4B9E +_021E4B90: + add r0, r5, #0 + bl MOD05_021E4B64 + add r4, r4, #4 + ldr r1, [r4] + cmp r1, #0x20 + bne _021E4B90 +_021E4B9E: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021E4BA0 +MOD05_021E4BA0: ; 0x021E4BA0 + ldr r3, _021E4BA4 ; =MOD05_021E4DB4 + bx r3 + .balign 4, 0 +_021E4BA4: .word MOD05_021E4DB4 + + thumb_func_start MOD05_021E4BA8 +MOD05_021E4BA8: ; 0x021E4BA8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r4, [r5, #0x14] + bl MOD05_021E4DA0 + add r0, r5, #0 + bl MOD05_021E4CDC + add r0, r5, #0 + bl MOD05_021E4E5C + add r0, r5, #0 + bl MOD05_021E4C48 + ldr r1, [r5, #0x1c] + add r0, r4, #0 + bl MOD05_021F5A5C + add r0, r4, #0 + add r1, r5, #0 + bl MOD05_021F5A5C + add r0, r4, #0 + bl MOD05_021F59EC + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021E4BDC +MOD05_021E4BDC: ; 0x021E4BDC + ldr r3, _021E4BE4 ; =MOD05_021F5A20 + ldr r0, [r0, #0x14] + bx r3 + nop +_021E4BE4: .word MOD05_021F5A20 + + thumb_func_start MOD05_021E4BE8 +MOD05_021E4BE8: ; 0x021E4BE8 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r4, r3, #0 + bl MOD05_021E4BDC + add r1, r4, #0 + add r2, r5, #0 + add r6, r0, #0 + bl memset + add r0, r6, #0 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021E4C00 +MOD05_021E4C00: ; 0x021E4C00 + ldr r3, _021E4C04 ; =FreeToHeap + bx r3 + .balign 4, 0 +_021E4C04: .word FreeToHeap + + thumb_func_start MOD05_021E4C08 +MOD05_021E4C08: ; 0x021E4C08 + push {r3, lr} + bl MOD05_021E4D2C + cmp r0, #0 + bne _021E4C1A + bl ErrorHandling + mov r0, #0 + pop {r3, pc} +_021E4C1A: + ldr r0, [r0, #4] + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4C20 +MOD05_021E4C20: ; 0x021E4C20 + ldr r0, [r0, #0x18] + bx lr + + thumb_func_start MOD05_021E4C24 +MOD05_021E4C24: ; 0x021E4C24 + push {r3, lr} + bl FUN_02058738 + ldr r0, [r0, #0x3c] + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4C30 +MOD05_021E4C30: ; 0x021E4C30 + ldr r0, [r0, #4] + bx lr + + thumb_func_start MOD05_021E4C34 +MOD05_021E4C34: ; 0x021E4C34 + push {r4, lr} + add r4, r0, #0 + bl MOD05_021E4C30 + add r1, r0, #0 + mov r0, #0x6b + bl NARC_ctor + str r0, [r4, #0x20] + pop {r4, pc} + + thumb_func_start MOD05_021E4C48 +MOD05_021E4C48: ; 0x021E4C48 + ldr r3, _021E4C50 ; =NARC_dtor + ldr r0, [r0, #0x20] + bx r3 + nop +_021E4C50: .word NARC_dtor + + thumb_func_start MOD05_021E4C54 +MOD05_021E4C54: ; 0x021E4C54 + ldr r3, _021E4C5C ; =NARC_GetMemberSize + ldr r0, [r0, #0x20] + bx r3 + nop +_021E4C5C: .word NARC_GetMemberSize + + thumb_func_start MOD05_021E4C60 +MOD05_021E4C60: ; 0x021E4C60 + ldr r3, _021E4C68 ; =NARC_ReadWholeMember + ldr r0, [r0, #0x20] + bx r3 + nop +_021E4C68: .word NARC_ReadWholeMember + + thumb_func_start MOD05_021E4C6C +MOD05_021E4C6C: ; 0x021E4C6C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r3, r2, #0 + ldr r0, [r5, #0x14] + ldr r1, [r5, #0x20] + add r2, r4, #0 + bl MOD05_021F5AB8 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021E4C80 +MOD05_021E4C80: ; 0x021E4C80 + push {r3, r4, r5, lr} + ldr r4, [r0, #8] + ldr r5, [r0, #0x1c] + cmp r4, #0 + beq _021E4C96 +_021E4C8A: + add r0, r5, #0 + bl MOD05_021E4D44 + add r5, #8 + sub r4, r4, #1 + bne _021E4C8A +_021E4C96: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021E4C98 +MOD05_021E4C98: ; 0x021E4C98 + push {r4, r5, r6, lr} + add r6, r1, #0 + add r5, r0, #0 + add r0, r6, #0 + bl MOD05_021E4D68 + add r1, r0, #0 + ldr r1, [r1, #4] + add r0, r5, #0 + blx r1 + add r4, r0, #0 + add r0, r5, #0 + bl MOD05_021E4D04 + add r1, r6, #0 + add r2, r4, #0 + bl MOD05_021E4D50 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4CC0 +MOD05_021E4CC0: ; 0x021E4CC0 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4] + bl MOD05_021E4D68 + add r1, r0, #0 + ldr r0, [r4, #4] + ldr r1, [r1, #8] + blx r1 + add r0, r4, #0 + bl MOD05_021E4D44 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4CDC +MOD05_021E4CDC: ; 0x021E4CDC + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r4, [r6, #8] + ldr r5, [r6, #0x1c] + cmp r4, #0 + beq _021E4D00 +_021E4CE8: + add r0, r5, #0 + bl MOD05_021E4D58 + cmp r0, #0 + bne _021E4CFA + add r0, r6, #0 + add r1, r5, #0 + bl MOD05_021E4CC0 +_021E4CFA: + add r5, #8 + sub r4, r4, #1 + bne _021E4CE8 +_021E4D00: + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4D04 +MOD05_021E4D04: ; 0x021E4D04 + push {r3, r4, r5, lr} + ldr r4, [r0, #8] + ldr r5, [r0, #0x1c] + cmp r4, #0 + beq _021E4D22 +_021E4D0E: + add r0, r5, #0 + bl MOD05_021E4D58 + cmp r0, #1 + bne _021E4D1C + add r0, r5, #0 + pop {r3, r4, r5, pc} +_021E4D1C: + add r5, #8 + sub r4, r4, #1 + bne _021E4D0E +_021E4D22: + bl ErrorHandling + mov r0, #0 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4D2C +MOD05_021E4D2C: ; 0x021E4D2C + ldr r3, [r0, #8] + ldr r0, [r0, #0x1c] + cmp r3, #0 + beq _021E4D40 +_021E4D34: + ldr r2, [r0] + cmp r2, r1 + beq _021E4D42 + add r0, #8 + sub r3, r3, #1 + bne _021E4D34 +_021E4D40: + mov r0, #0 +_021E4D42: + bx lr + + thumb_func_start MOD05_021E4D44 +MOD05_021E4D44: ; 0x021E4D44 + mov r1, #0x20 + str r1, [r0] + mov r1, #0 + str r1, [r0, #4] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021E4D50 +MOD05_021E4D50: ; 0x021E4D50 + str r1, [r0] + str r2, [r0, #4] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021E4D58 +MOD05_021E4D58: ; 0x021E4D58 + ldr r0, [r0] + cmp r0, #0x20 + bne _021E4D62 + mov r0, #1 + bx lr +_021E4D62: + mov r0, #0 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021E4D68 +MOD05_021E4D68: ; 0x021E4D68 + push {r3, lr} + ldr r1, _021E4D8C ; =UNK05_021FC820 + ldr r2, [r1] + cmp r2, #0x20 + beq _021E4D82 +_021E4D72: + cmp r2, r0 + bne _021E4D7A + add r0, r1, #0 + pop {r3, pc} +_021E4D7A: + add r1, #0xc + ldr r2, [r1] + cmp r2, #0x20 + bne _021E4D72 +_021E4D82: + bl ErrorHandling + mov r0, #0 + pop {r3, pc} + nop +_021E4D8C: .word UNK05_021FC820 + + thumb_func_start MOD05_021E4D90 +MOD05_021E4D90: ; 0x021E4D90 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r1, [r4, #0xc] + bl FUN_020643C0 + str r0, [r4, #0x24] + pop {r4, pc} + + thumb_func_start MOD05_021E4DA0 +MOD05_021E4DA0: ; 0x021E4DA0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x24] + cmp r0, #0 + beq _021E4DB2 + bl FUN_020643F0 + mov r0, #0 + str r0, [r4, #0x24] +_021E4DB2: + pop {r4, pc} + + thumb_func_start MOD05_021E4DB4 +MOD05_021E4DB4: ; 0x021E4DB4 + push {r3, lr} + ldr r0, [r0, #0x24] + cmp r0, #0 + beq _021E4DC0 + bl FUN_02064584 +_021E4DC0: + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4DC4 +MOD05_021E4DC4: ; 0x021E4DC4 + push {r4, lr} + sub sp, #8 + ldr r4, [sp, #0x10] + str r4, [sp] + ldr r4, [sp, #0x14] + str r4, [sp, #4] + ldr r0, [r0, #0x24] + bl FUN_020644E4 + add r4, r0, #0 + bne _021E4DDE + bl ErrorHandling +_021E4DDE: + add r0, r4, #0 + add sp, #8 + pop {r4, pc} + + thumb_func_start MOD05_021E4DE4 +MOD05_021E4DE4: ; 0x021E4DE4 + ldr r3, _021E4DE8 ; =FUN_02064520 + bx r3 + .balign 4, 0 +_021E4DE8: .word FUN_02064520 + + thumb_func_start MOD05_021E4DEC +MOD05_021E4DEC: ; 0x021E4DEC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r2, #0 + add r5, r1, #0 + mov r2, #0 + str r3, [sp] + mov r1, #0x24 + add r3, r2, #0 + add r7, r0, #0 + bl MOD05_021E4BE8 + add r4, r0, #0 + str r4, [r7, #0x28] + str r5, [r4] + ldr r0, [sp] + strh r6, [r4, #4] + strh r0, [r4, #6] + ldr r0, [sp, #0x20] + ldr r2, [sp, #0x28] + strh r0, [r4, #8] + ldr r0, [sp, #0x24] + ldr r3, [sp] + strh r0, [r4, #0xa] + add r0, r5, #0 + mov r1, #0x45 + bl MOD05_021F5990 + str r0, [r4, #0x10] + ldr r2, [sp, #0x2c] + ldr r3, [sp, #0x20] + add r0, r5, #0 + mov r1, #0x46 + bl MOD05_021F5990 + str r0, [r4, #0x14] + ldr r0, [sp, #0x24] + add r1, r5, #0 + bl FUN_02020E90 + str r0, [r4, #0x18] + add r0, r7, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD05_021E4F60 + add r0, r7, #0 + str r6, [sp, #4] + bl MOD05_021E4C30 + str r0, [sp, #8] + add r0, sp, #4 + bl FUN_0201F1B4 + str r0, [r4, #0xc] + add sp, #0xc + pop {r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021E4E5C +MOD05_021E4E5C: ; 0x021E4E5C + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r5, [r4, #0x28] + cmp r5, #0 + beq _021E4E8E + ldr r0, [r5, #0xc] + bl FUN_0201F23C + add r0, r5, #0 + bl MOD05_021E4F94 + ldr r0, [r5, #0x10] + bl MOD05_021F59EC + ldr r0, [r5, #0x14] + bl MOD05_021F59EC + ldr r0, [r5, #0x18] + bl FUN_02020ED4 + add r0, r5, #0 + bl MOD05_021E4C00 + mov r0, #0 + str r0, [r4, #0x28] +_021E4E8E: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021E4E90 +MOD05_021E4E90: ; 0x021E4E90 + push {r4, lr} + sub sp, #0x20 + ldr r0, [r0, #0x28] + add r3, sp, #8 + ldr r0, [r0, #0xc] + str r0, [sp] + str r1, [sp, #4] + ldmia r2!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r2] + add r2, sp, #0x14 + str r0, [r3] + ldr r3, _021E4EE0 ; =UNK05_021F7564 + 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 + bne _021E4EC0 + bl ErrorHandling +_021E4EC0: + cmp r4, #0 + beq _021E4EDA + add r0, r4, #0 + bl FUN_0201F8E0 + mov r1, #1 + bl FUN_020BB9F4 + add r0, r4, #0 + bl FUN_0201F8E0 + bl MOD05_021DB5EC +_021E4EDA: + add r0, r4, #0 + add sp, #0x20 + pop {r4, pc} + .balign 4, 0 +_021E4EE0: .word UNK05_021F7564 + + thumb_func_start MOD05_021E4EE4 +MOD05_021E4EE4: ; 0x021E4EE4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x28] + add r4, r2, #0 + bl MOD05_021E504C + add r1, r0, #0 + add r0, r5, #0 + add r2, r4, #0 + bl MOD05_021E4E90 + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021E4EFC +MOD05_021E4EFC: ; 0x021E4EFC + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + ldr r5, [r0, #0x28] + add r6, r1, #0 + ldr r0, [r5, #0x10] + add r1, r2, #0 + add r4, r3, #0 + bl MOD05_021F5A90 + add r7, r0, #0 + ldr r0, [r5, #0x14] + add r1, r4, #0 + bl MOD05_021F5A90 + add r1, sp, #0xc + bl FUN_0202227C + ldr r0, [r5, #0x18] + ldr r1, [sp, #0x30] + bl FUN_02021050 + add r4, r0, #0 + bne _021E4F2E + bl ErrorHandling +_021E4F2E: + add r0, r4, #0 + bl FUN_020210AC + ldr r1, [sp, #0x34] + cmp r1, #1 + bne _021E4F3C + mov r4, #0 +_021E4F3C: + str r0, [sp] + ldr r0, [sp, #0x38] + str r4, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r1, r6, #0 + add r2, r7, #0 + add r3, sp, #0xc + bl MOD05_021E4FC8 + add r4, r0, #0 + bne _021E4F58 + bl ErrorHandling +_021E4F58: + add r0, r4, #0 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4F60 +MOD05_021E4F60: ; 0x021E4F60 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + add r5, r2, #0 + mov r1, #0x28 + add r7, r0, #0 + mul r1, r5 + mov r2, #0 + bl MOD05_021E4BDC + add r4, r0, #0 + add r0, r7, #0 + lsl r1, r5, #3 + mov r2, #0 + str r4, [r6, #0x20] + bl MOD05_021E4BDC + str r0, [r6, #0x1c] + mov r1, #0xe +_021E4F84: + str r1, [r0] + str r4, [r0, #4] + add r0, #8 + add r4, #0x28 + sub r5, r5, #1 + bne _021E4F84 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4F94 +MOD05_021E4F94: ; 0x021E4F94 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x1c] + bl MOD05_021E4C00 + ldr r0, [r4, #0x20] + bl MOD05_021E4C00 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4FA8 +MOD05_021E4FA8: ; 0x021E4FA8 + push {r3, lr} + ldrh r2, [r0, #4] + ldr r3, [r0, #0x1c] +_021E4FAE: + ldr r0, [r3] + cmp r0, r1 + bne _021E4FBA + mov r0, #0xe + str r0, [r3] + pop {r3, pc} +_021E4FBA: + add r3, #8 + sub r2, r2, #1 + bne _021E4FAE + bl ErrorHandling + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E4FC8 +MOD05_021E4FC8: ; 0x021E4FC8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldrh r5, [r6, #4] + add r0, r1, #0 + ldr r1, [sp, #0x1c] + str r2, [sp] + ldr r6, [r6, #0x1c] + add r7, r3, #0 + str r1, [sp, #0x1c] + mov r4, #0 + add r2, r5, #0 + add r3, r6, #0 +_021E4FE0: + ldr r1, [r3] + cmp r1, r0 + bne _021E4FEA + ldr r0, [r3, #4] + pop {r3, r4, r5, r6, r7, pc} +_021E4FEA: + add r3, #8 + sub r2, r2, #1 + bne _021E4FE0 +_021E4FF0: + ldr r1, [r6] + cmp r1, #0xe + bne _021E4FFC + str r0, [r6] + ldr r4, [r6, #4] + b _021E5002 +_021E4FFC: + add r6, #8 + sub r5, r5, #1 + bne _021E4FF0 +_021E5002: + cmp r4, #0 + bne _021E500A + bl ErrorHandling +_021E500A: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x28 + bl memset + ldr r0, [sp] + add r2, r4, #0 + str r0, [r4] + add r2, #0xc + ldmia r7!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r7!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [sp, #0x18] + str r0, [r4, #4] + ldr r0, [sp, #0x1c] + cmp r0, #0 + beq _021E5044 + bl FUN_020211AC + str r0, [r4, #0x1c] + ldr r0, [sp, #0x1c] + bl FUN_020211BC + str r0, [r4, #0x20] + ldr r0, [sp, #0x1c] + bl FUN_020211CC + str r0, [r4, #0x24] +_021E5044: + ldr r0, [sp, #0x20] + str r0, [r4, #8] + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021E504C +MOD05_021E504C: ; 0x021E504C + push {r3, lr} + ldrh r2, [r0, #4] + ldr r3, [r0, #0x1c] +_021E5052: + ldr r0, [r3] + cmp r0, r1 + bne _021E505C + ldr r0, [r3, #4] + pop {r3, pc} +_021E505C: + add r3, #8 + sub r2, r2, #1 + bne _021E5052 + bl ErrorHandling + mov r0, #0 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E506C +MOD05_021E506C: ; 0x021E506C + ldr r3, _021E5074 ; =MOD05_021E4FA8 + ldr r0, [r0, #0x28] + bx r3 + nop +_021E5074: .word MOD05_021E4FA8 + + thumb_func_start MOD05_021E5078 +MOD05_021E5078: ; 0x021E5078 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, [r4, #0x28] + add r3, r2, #0 + ldr r0, [r0, #0x10] + ldr r2, [r4, #0x20] + bl MOD05_021F5AE4 + add sp, #4 + pop {r3, r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E5094 +MOD05_021E5094: ; 0x021E5094 + ldr r0, [r0, #0x28] + ldr r3, _021E509C ; =MOD05_021F5A90 + ldr r0, [r0, #0x10] + bx r3 + .balign 4, 0 +_021E509C: .word MOD05_021F5A90 + + thumb_func_start MOD05_021E50A0 +MOD05_021E50A0: ; 0x021E50A0 + ldr r0, [r0, #0x28] + ldr r3, _021E50A8 ; =MOD05_021F5A74 + ldr r0, [r0, #0x10] + bx r3 + .balign 4, 0 +_021E50A8: .word MOD05_021F5A74 + + thumb_func_start MOD05_021E50AC +MOD05_021E50AC: ; 0x021E50AC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, [r4, #0x28] + add r3, r2, #0 + ldr r0, [r0, #0x14] + ldr r2, [r4, #0x20] + bl MOD05_021F5AE4 + add sp, #4 + pop {r3, r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E50C8 +MOD05_021E50C8: ; 0x021E50C8 + ldr r0, [r0, #0x28] + ldr r3, _021E50D0 ; =MOD05_021F5A74 + ldr r0, [r0, #0x14] + bx r3 + .balign 4, 0 +_021E50D0: .word MOD05_021F5A74 + + thumb_func_start MOD05_021E50D4 +MOD05_021E50D4: ; 0x021E50D4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + add r6, r1, #0 + add r1, r2, #0 + ldr r4, [r5, #0x28] + mov r2, #1 + add r7, r3, #0 + bl MOD05_021E4C6C + str r0, [sp, #4] + add r0, r5, #0 + bl MOD05_021E4C30 + str r0, [sp] + ldr r0, [r4, #0x18] + ldr r1, [sp, #4] + add r2, r6, #0 + add r3, r7, #0 + bl FUN_02020F54 + cmp r0, #0 + bne _021E5106 + bl ErrorHandling +_021E5106: + ldr r2, [r4, #0x18] + add r0, r5, #0 + add r1, r6, #0 + bl MOD05_021E5120 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021E5114 +MOD05_021E5114: ; 0x021E5114 + ldr r0, [r0, #0x28] + ldr r3, _021E511C ; =FUN_02020FF0 + ldr r0, [r0, #0x18] + bx r3 + .balign 4, 0 +_021E511C: .word FUN_02020FF0 + + thumb_func_start MOD05_021E5120 +MOD05_021E5120: ; 0x021E5120 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r2, #0 + mov r1, #0xc + mov r2, #1 + bl MOD05_021E4BDC + add r4, r0, #0 + mov r0, #1 + str r0, [r4] + str r5, [r4, #4] + ldr r0, _021E5150 ; =MOD05_021E5158 + add r1, r4, #0 + mov r2, #0xff + str r6, [r4, #8] + bl FUN_0200CA60 + ldr r0, _021E5154 ; =MOD05_021E5174 + add r1, r4, #0 + mov r2, #0xff + bl FUN_0200CA98 + pop {r4, r5, r6, pc} + nop +_021E5150: .word MOD05_021E5158 +_021E5154: .word MOD05_021E5174 + + thumb_func_start MOD05_021E5158 +MOD05_021E5158: ; 0x021E5158 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #8] + ldr r1, [r4, #4] + bl FUN_020210F0 + mov r0, #1 + str r0, [r4] + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E5174 +MOD05_021E5174: ; 0x021E5174 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #1 + bne _021E5194 + ldr r0, [r4, #8] + ldr r1, [r4, #4] + bl FUN_02021158 + add r0, r4, #0 + bl MOD05_021E4C00 + add r0, r5, #0 + bl FUN_0200CAB4 +_021E5194: + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E5198 +MOD05_021E5198: ; 0x021E5198 + push {r4, r5, r6, lr} + add r4, r3, #0 + ldr r0, [r4] + add r6, r1, #0 + add r5, r2, #0 + bl FUN_020BC0FC + cmp r0, #0 + beq _021E51C8 + bl FUN_0201B254 + cmp r0, #0 + bne _021E51C8 + ldr r0, [r4] + ldr r1, [r0, #8] + bl DC_FlushRange + ldr r0, [r4] + bl FUN_020BB59C + cmp r0, #0 + bne _021E51C8 + bl ErrorHandling +_021E51C8: + ldr r0, [r4] + bl FUN_020BC13C + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [r5] + cmp r5, #0 + bne _021E51E0 + bl ErrorHandling +_021E51E0: + ldr r1, [r5] + add r0, r6, #0 + bl FUN_020B80B4 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E51EC +MOD05_021E51EC: ; 0x021E51EC + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r3, #0 + bl MOD05_021E4C6C + ldr r3, [sp, #0x14] + ldr r2, [sp, #0x10] + str r0, [r3] + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021E5198 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E5208 +MOD05_021E5208: ; 0x021E5208 + 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_021E5224 +MOD05_021E5224: ; 0x021E5224 + push {r4, lr} + add r4, r1, #0 + add r1, r2, #0 + add r2, r3, #0 + bl MOD05_021E4C6C + str r0, [r4] + bl FUN_020BC13C + 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 FUN_020BC0FC + str r0, [r4, #0xc] + cmp r0, #0 + beq _021E525A + mov r2, #1 + ldr r0, _021E525C ; =MOD05_021E5208 + add r1, r4, #0 + lsl r2, r2, #0xa + bl FUN_0200CA60 +_021E525A: + pop {r4, pc} + .balign 4, 0 +_021E525C: .word MOD05_021E5208 + + thumb_func_start MOD05_021E5260 +MOD05_021E5260: ; 0x021E5260 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r4, r2, #0 + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x14] + add r6, r3, #0 + bl MOD05_021E4C6C + str r0, [r5] + mov r1, #0 + bl FUN_020BC4C8 + str r0, [r5, #4] + ldr r1, [r5, #4] + ldr r2, [r4, #8] + add r0, r6, #0 + bl FUN_020BB8D0 + str r0, [r5, #8] + ldr r1, [r5, #4] + ldr r2, [r4, #8] + ldr r3, [r4, #0xc] + bl FUN_020B8110 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E5294 +MOD05_021E5294: ; 0x021E5294 + push {r4, lr} + add r4, r1, #0 + bl MOD05_021E4C30 + add r1, r0, #0 + add r0, r4, #0 + mov r2, #0x20 + bl FUN_02016B20 + pop {r4, pc} + + .section .rodata + + .global UNK05_021F7564 +UNK05_021F7564: ; 0x021F7564 + .word 0x00001000, 0x00001000, 0x00001000
\ No newline at end of file diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 62d2e73a..7f97e561 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -3,5198 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD05_021E2B80 -MOD05_021E2B80: ; 0x021E2B80 - add r2, r0, #0 - add r2, #0x97 - ldrb r3, [r2] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - mov r2, #0x40 - lsl r1, r1, #0x1f - bic r3, r2 - lsr r1, r1, #0x19 - orr r1, r3 - add r0, #0x97 - strb r1, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021E2B9C -MOD05_021E2B9C: ; 0x021E2B9C - add r2, r0, #0 - add r2, #0x97 - ldrb r3, [r2] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - mov r2, #0x80 - lsl r1, r1, #0x1f - bic r3, r2 - lsr r1, r1, #0x18 - orr r1, r3 - add r0, #0x97 - strb r1, [r0] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021E2BB8 -MOD05_021E2BB8: ; 0x021E2BB8 - push {r4, lr} - add r4, r0, #0 - add r0, r1, #0 - bl MOD05_021E2D00 - strb r0, [r4] - mov r0, #0 - strb r0, [r4, #1] - mov r0, #1 - strb r0, [r4, #2] - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E2BD0 -MOD05_021E2BD0: ; 0x021E2BD0 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - add r5, r0, #0 - str r3, [sp, #4] - add r0, #0x80 - add r6, r1, #0 - ldr r0, [r0] - add r1, sp, #8 - add r7, r2, #0 - ldr r4, [sp, #0x38] - bl MOD05_021E2D14 - add r0, r5, #0 - add r0, #0x80 - ldr r0, [r0] - add r1, sp, #8 - bl MOD05_021E2D9C - add r0, sp, #8 - add r1, r6, #0 - add r2, r7, #0 - bl MOD05_021E2DD4 - cmp r4, #0 - bne _021E2C10 - add r0, r5, #0 - bl MOD05_021E2D00 - add r2, r0, #0 - mov r0, #0 - mov r1, #1 - b _021E2C16 -_021E2C10: - ldrb r2, [r4] - ldrb r0, [r4, #1] - ldrb r1, [r4, #2] -_021E2C16: - str r0, [sp] - ldr r3, [sp, #4] - add r0, sp, #8 - bl MOD05_021E2E40 - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_ShowMessageInField -MOD05_ShowMessageInField: ; 0x021E2C24 - push {r4, r5, r6, lr} - sub sp, #0x18 - add r5, r0, #0 - add r0, #0x80 - add r4, r1, #0 - ldr r0, [r0] - add r1, sp, #0 - add r6, r2, #0 - bl MOD05_021E2D14 - add r5, #0x80 - ldr r0, [r5] - add r1, sp, #0 - bl MOD05_021E2D9C - add r0, sp, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021E2DD4 - add r0, sp, #0 - mov r1, #1 - bl MOD05_021E2E68 - add sp, #0x18 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021E2C58 -MOD05_021E2C58: ; 0x021E2C58 - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - add r5, r0, #0 - add r0, #0x80 - add r4, r1, #0 - ldr r0, [r0] - add r1, sp, #4 - add r6, r2, #0 - add r7, r3, #0 - bl MOD05_021E2D14 - add r0, r5, #0 - add r0, #0x80 - ldr r0, [r0] - add r1, sp, #4 - bl MOD05_021E2D9C - add r0, sp, #0x20 - ldrh r0, [r0, #0x10] - add r1, r4, #0 - add r2, r6, #0 - str r0, [sp] - add r0, sp, #4 - add r3, r7, #0 - bl MOD05_021E2DF0 - add r0, sp, #0x20 - ldrb r0, [r0, #0x14] - cmp r0, #0xff - beq _021E2CB0 - add r0, r5, #0 - bl MOD05_021E2D00 - add r2, r0, #0 - mov r0, #0 - str r0, [sp] - add r3, sp, #0x20 - ldrb r3, [r3, #0x14] - add r0, sp, #4 - mov r1, #1 - bl MOD05_021E2E40 - add sp, #0x1c - pop {r4, r5, r6, r7, pc} -_021E2CB0: - add r0, sp, #4 - mov r1, #1 - bl MOD05_021E2E68 - add sp, #0x1c - pop {r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021E2CBC -MOD05_021E2CBC: ; 0x021E2CBC - push {r3, r4, r5, r6, lr} - sub sp, #0x1c - add r5, r0, #0 - add r0, #0x80 - add r4, r2, #0 - ldr r0, [r0] - add r2, sp, #4 - add r6, r3, #0 - bl MOD05_021E2D5C - add r0, r5, #0 - add r0, #0x80 - ldr r0, [r0] - add r1, sp, #4 - bl MOD05_021E2D9C - ldr r1, [r5, #0x78] - add r0, sp, #4 - add r2, r4, #0 - bl MOD05_021E2DD4 - add r0, r5, #0 - bl MOD05_021E2D00 - add r2, r0, #0 - mov r0, #0 - str r0, [sp] - add r0, sp, #4 - mov r1, #1 - add r3, r6, #0 - bl MOD05_021E2E40 - add sp, #0x1c - pop {r3, r4, r5, r6, pc} - - thumb_func_start MOD05_021E2D00 -MOD05_021E2D00: ; 0x021E2D00 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetOptionsAddr - bl FUN_02024FF4 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E2D14 -MOD05_021E2D14: ; 0x021E2D14 - push {r3, r4, r5, lr} - add r4, r1, #0 - mov r1, #0x10 - add r5, r0, #0 - bl FUN_02039438 - ldr r0, [r0] - mov r1, #0x11 - str r0, [r4] - add r0, r5, #0 - bl FUN_02039438 - ldr r0, [r0] - mov r1, #0xf - str r0, [r4, #4] - add r0, r5, #0 - bl FUN_02039438 - ldr r0, [r0] - mov r1, #1 - str r0, [r4, #8] - add r0, r5, #0 - bl FUN_02039438 - str r0, [r4, #0xc] - add r0, r5, #0 - mov r1, #6 - bl FUN_02039438 - str r0, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl FUN_02039438 - str r0, [r4, #0x14] - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021E2D5C -MOD05_021E2D5C: ; 0x021E2D5C - push {r4, r5, r6, lr} - add r6, r1, #0 - mov r1, #0x10 - add r5, r0, #0 - add r4, r2, #0 - bl FUN_02039438 - ldr r0, [r0] - mov r1, #0x11 - str r0, [r4] - add r0, r5, #0 - bl FUN_02039438 - ldr r0, [r0] - mov r1, #1 - str r0, [r4, #4] - str r6, [r4, #8] - add r0, r5, #0 - bl FUN_02039438 - str r0, [r4, #0xc] - add r0, r5, #0 - mov r1, #6 - bl FUN_02039438 - str r0, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl FUN_02039438 - str r0, [r4, #0x14] - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021E2D9C -MOD05_021E2D9C: ; 0x021E2D9C - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4, #0x10] - ldrb r0, [r0] - cmp r0, #0 - bne _021E2DC8 - ldr r0, [r5, #8] - ldr r1, [r4, #0xc] - mov r2, #3 - bl FUN_020545B8 - ldr r0, [r5, #0xc] - bl Sav2_PlayerData_GetOptionsAddr - add r1, r0, #0 - ldr r0, [r4, #0xc] - bl FUN_02054608 - ldr r0, [r4, #0x10] - mov r1, #1 - strb r1, [r0] -_021E2DC8: - ldr r0, [r4, #0xc] - mov r1, #0xf - bl FUN_02019620 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E2DD4 -MOD05_021E2DD4: ; 0x021E2DD4 - push {r4, lr} - add r4, r0, #0 - add r0, r1, #0 - add r1, r2, #0 - ldr r2, [r4, #4] - bl ReadMsgDataIntoString - ldr r0, [r4, #8] - ldr r1, [r4] - ldr r2, [r4, #4] - bl StringExpandPlaceholders - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E2DF0 -MOD05_021E2DF0: ; 0x021E2DF0 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r0, #0 - add r4, r1, #0 - add r6, r2, #0 - add r0, sp, #0 - add r7, r3, #0 - bl FUN_02013724 - add r0, sp, #0 - add r1, r4, #0 - add r2, r6, #0 - bl FUN_02013980 - add r0, sp, #0 - mov r1, #0 - add r2, r7, #0 - bl FUN_02013998 - add r2, sp, #0x10 - ldrh r2, [r2, #0x10] - add r0, sp, #0 - mov r1, #1 - bl FUN_02013998 - add r0, sp, #0 - mov r1, #0x20 - bl FUN_020137D4 - add r4, r0, #0 - ldr r0, [r5] - add r1, r4, #0 - bl StringCopy - add r0, r4, #0 - bl String_dtor - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E2E40 -MOD05_021E2E40: ; 0x021E2E40 - push {r4, r5, r6, lr} - sub sp, #8 - add r4, r0, #0 - lsl r0, r3, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - ldr r0, [sp, #0x18] - add r5, r2, #0 - str r0, [sp, #4] - add r6, r1, #0 - ldr r0, [r4, #0xc] - ldr r1, [r4] - add r2, r6, #0 - add r3, r5, #0 - bl FUN_02054690 - ldr r1, [r4, #0x14] - strb r0, [r1] - add sp, #8 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021E2E68 -MOD05_021E2E68: ; 0x021E2E68 - push {r3, r4, lr} - sub sp, #0xc - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - add r4, r0, #0 - str r3, [sp, #8] - ldr r0, [r4, #0xc] - ldr r2, [r4] - bl AddTextPrinterParameterized - ldr r1, [r4, #0x14] - strb r0, [r1] - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E2E88 -MOD05_021E2E88: ; 0x021E2E88 - push {r4, r5, r6, lr} - lsl r6, r1, #5 - add r5, r0, #0 - add r4, r2, #0 - add r1, r6, #0 - bl DC_FlushRange - add r0, r5, #0 - lsl r1, r4, #5 - add r2, r6, #0 - bl GX_LoadBGPltt - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E2EA4 -MOD05_021E2EA4: ; 0x021E2EA4 - push {r3, r4, lr} - sub sp, #0x14 - mov r3, #0 - add r4, r0, #0 - str r3, [sp] - mov r0, #0x20 - str r0, [sp, #4] - mov r2, #3 - add r1, r4, #0 - str r2, [sp, #8] - mov r0, #7 - str r0, [sp, #0xc] - ldr r0, _021E2EDC ; =0x000002CD - add r1, #0x20 - str r0, [sp, #0x10] - ldr r0, [r4, #0x1c] - bl FUN_02019064 - mov r0, #0 - str r0, [sp] - ldr r2, _021E2EE0 ; =0x000003CF - add r0, r4, #0 - mov r1, #3 - mov r3, #7 - bl MOD05_021E2EE4 - add sp, #0x14 - pop {r3, r4, pc} - .balign 4, 0 -_021E2EDC: .word 0x000002CD -_021E2EE0: .word 0x000003CF - - thumb_func_start MOD05_021E2EE4 -MOD05_021E2EE4: ; 0x021E2EE4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r4, r2, #0 - add r5, r0, #0 - add r6, r1, #0 - ldr r2, _021E2F2C ; =UNK05_021FD610 - add r0, #0x38 - mov r1, #4 - add r7, r3, #0 - bl FUN_0201AB28 - str r0, [r5, #0x34] - add r3, r0, #0 - str r4, [sp] - ldr r2, [r3, #0x14] - ldr r0, [r5, #0x1c] - ldr r3, [r3, #0x10] - add r1, r6, #0 - bl FUN_02017E14 - ldr r2, _021E2F30 ; =UNK05_021FD62C - add r0, sp, #4 - mov r1, #4 - bl FUN_0201AB44 - ldr r0, [r0, #0xc] - mov r1, #1 - add r2, r7, #0 - bl MOD05_021E2E88 - ldr r0, [sp, #4] - bl FreeToHeap - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E2F2C: .word UNK05_021FD610 -_021E2F30: .word UNK05_021FD62C - - thumb_func_start MOD05_021E2F34 -MOD05_021E2F34: ; 0x021E2F34 - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - add r2, r1, #0 - add r2, #8 - add r5, r0, #0 - asr r0, r2, #2 - lsr r0, r0, #0x1d - add r0, r2, r0 - asr r0, r0, #3 - lsl r0, r0, #3 - sub r2, r0, r1 - lsr r0, r2, #0x1f - add r0, r2, r0 - asr r0, r0, #1 - add r2, r0, #4 - cmp r2, #8 - blt _021E2F5A - mov r3, #0 - b _021E2F6C -_021E2F5A: - mov r0, #8 - sub r0, r0, r2 - lsl r0, r0, #1 - add r2, r0, #7 - asr r0, r2, #2 - lsr r0, r0, #0x1d - add r0, r2, r0 - lsl r0, r0, #0x15 - lsr r3, r0, #0x18 -_021E2F6C: - cmp r1, #0 - bgt _021E2F76 - mov r0, #0 - str r0, [sp, #0x18] - b _021E2F92 -_021E2F76: - add r2, r1, #0 - add r2, #8 - asr r0, r2, #2 - lsr r0, r0, #0x1d - add r0, r2, r0 - asr r0, r0, #3 - add r0, r0, r3 - str r0, [sp, #0x18] - lsl r0, r0, #3 - add r0, #8 - sub r1, r0, r1 - lsr r0, r1, #0x1f - add r0, r1, r0 - asr r0, r0, #1 -_021E2F92: - add r1, r0, #4 - add r0, r5, #0 - add r0, #0x30 - strb r1, [r0] - add r0, r5, #0 - add r0, #0x20 - mov r1, #0 - bl FUN_02019620 - mov r2, #8 - str r2, [sp] - add r0, r5, #0 - str r2, [sp, #4] - mov r3, #0 - str r3, [sp, #8] - str r3, [sp, #0xc] - str r2, [sp, #0x10] - str r2, [sp, #0x14] - ldr r1, [r5, #0x34] - add r0, #0x20 - ldr r1, [r1, #0x14] - bl FUN_02019658 - ldr r0, [sp, #0x18] - mov r1, #8 - add r0, r0, #1 - lsl r4, r0, #3 - str r1, [sp] - lsl r0, r4, #0x10 - str r1, [sp, #4] - lsr r0, r0, #0x10 - str r0, [sp, #8] - mov r3, #0 - str r3, [sp, #0xc] - str r1, [sp, #0x10] - str r1, [sp, #0x14] - ldr r1, [r5, #0x34] - add r0, r5, #0 - ldr r1, [r1, #0x14] - add r0, #0x20 - mov r2, #0x18 - bl FUN_02019658 - mov r0, #8 - str r0, [sp] - str r0, [sp, #4] - mov r3, #0 - str r3, [sp, #8] - str r0, [sp, #0xc] - str r0, [sp, #0x10] - str r0, [sp, #0x14] - ldr r1, [r5, #0x34] - add r0, r5, #0 - ldr r1, [r1, #0x14] - add r0, #0x20 - mov r2, #0x38 - bl FUN_02019658 - mov r1, #8 - str r1, [sp] - lsl r0, r4, #0x10 - str r1, [sp, #4] - lsr r0, r0, #0x10 - str r0, [sp, #8] - str r1, [sp, #0xc] - str r1, [sp, #0x10] - str r1, [sp, #0x14] - ldr r1, [r5, #0x34] - add r0, r5, #0 - ldr r1, [r1, #0x14] - add r0, #0x20 - mov r2, #0x40 - mov r3, #0 - bl FUN_02019658 - mov r1, #8 - str r1, [sp] - str r1, [sp, #4] - mov r3, #0 - str r3, [sp, #8] - mov r0, #0x10 - str r0, [sp, #0xc] - str r1, [sp, #0x10] - str r1, [sp, #0x14] - ldr r1, [r5, #0x34] - add r0, r5, #0 - ldr r1, [r1, #0x14] - add r0, #0x20 - mov r2, #0x20 - bl FUN_02019658 - mov r1, #8 - str r1, [sp] - lsl r0, r4, #0x10 - str r1, [sp, #4] - lsr r0, r0, #0x10 - str r0, [sp, #8] - mov r0, #0x10 - str r0, [sp, #0xc] - str r1, [sp, #0x10] - str r1, [sp, #0x14] - ldr r1, [r5, #0x34] - add r0, r5, #0 - ldr r1, [r1, #0x14] - add r0, #0x20 - mov r2, #0x30 - mov r3, #0 - bl FUN_02019658 - ldr r0, [sp, #0x18] - mov r7, #0 - cmp r0, #0 - ble _021E30F2 - add r6, r5, #0 - add r6, #0x20 -_021E3078: - add r0, r7, #1 - lsl r4, r0, #3 - mov r0, #8 - str r0, [sp] - str r0, [sp, #4] - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #8] - mov r0, #0 - str r0, [sp, #0xc] - mov r0, #8 - str r0, [sp, #0x10] - str r0, [sp, #0x14] - ldr r1, [r5, #0x34] - add r0, r6, #0 - ldr r1, [r1, #0x14] - mov r2, #0x10 - mov r3, #0 - bl FUN_02019658 - mov r0, #8 - str r0, [sp] - str r0, [sp, #4] - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #8] - mov r0, #8 - str r0, [sp, #0xc] - str r0, [sp, #0x10] - str r0, [sp, #0x14] - ldr r1, [r5, #0x34] - add r0, r6, #0 - ldr r1, [r1, #0x14] - mov r2, #0x48 - mov r3, #0 - bl FUN_02019658 - mov r0, #8 - str r0, [sp] - str r0, [sp, #4] - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #8] - mov r0, #0x10 - str r0, [sp, #0xc] - mov r0, #8 - str r0, [sp, #0x10] - str r0, [sp, #0x14] - ldr r1, [r5, #0x34] - add r0, r6, #0 - ldr r1, [r1, #0x14] - mov r2, #0x28 - mov r3, #0 - bl FUN_02019658 - add r0, r7, #1 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - ldr r0, [sp, #0x18] - cmp r7, r0 - blt _021E3078 -_021E30F2: - add r5, #0x20 - add r0, r5, #0 - bl FUN_020191D0 - add sp, #0x1c - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E3100 -MOD05_021E3100: ; 0x021E3100 - mov r1, #0 - str r1, [r0] - strb r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - strh r1, [r0, #0x10] - str r1, [r0, #0x14] - str r1, [r0, #0x18] - str r1, [r0, #0x1c] - bx lr - - thumb_func_start MOD05_021E3114 -MOD05_021E3114: ; 0x021E3114 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021E3100 - str r4, [r5, #0x1c] - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E3124 -MOD05_021E3124: ; 0x021E3124 - push {r4, lr} - add r4, r1, #0 - ldrb r0, [r4, #4] - cmp r0, #3 - bhi _021E31D0 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E313A: ; jump table - .short _021E31D0 - _021E313A - 2 ; case 0 - .short _021E3142 - _021E313A - 2 ; case 1 - .short _021E3180 - _021E313A - 2 ; case 2 - .short _021E316A - _021E313A - 2 ; case 3 -_021E3142: - ldr r0, [r4, #0xc] - sub r0, r0, #4 - str r0, [r4, #0xc] - bpl _021E314E - mov r0, #0 - str r0, [r4, #0xc] -_021E314E: - mov r1, #3 - ldr r0, [r4, #0x1c] - ldr r3, [r4, #0xc] - add r2, r1, #0 - bl FUN_020179E0 - ldr r0, [r4, #0xc] - cmp r0, #0 - bne _021E31D0 - mov r0, #0 - strh r0, [r4, #0x10] - mov r0, #3 - strb r0, [r4, #4] - pop {r4, pc} -_021E316A: - ldrh r0, [r4, #0x10] - add r0, r0, #1 - strh r0, [r4, #0x10] - ldrh r0, [r4, #0x10] - cmp r0, #0x3c - blo _021E31D0 - mov r0, #0 - strh r0, [r4, #0x10] - mov r0, #2 - strb r0, [r4, #4] - pop {r4, pc} -_021E3180: - ldr r0, [r4, #0xc] - add r0, r0, #4 - str r0, [r4, #0xc] - cmp r0, #0x26 - ble _021E318E - mov r0, #0x26 - str r0, [r4, #0xc] -_021E318E: - mov r1, #3 - ldr r0, [r4, #0x1c] - ldr r3, [r4, #0xc] - add r2, r1, #0 - bl FUN_020179E0 - ldr r0, [r4, #0xc] - cmp r0, #0x26 - bne _021E31D0 - ldr r0, [r4, #0x14] - cmp r0, #0 - beq _021E31CA - mov r0, #0 - str r0, [r4, #0x14] - ldr r0, [r4, #0x3c] - ldr r1, [r4, #0x18] - ldr r2, [r4, #0x40] - bl FUN_02064E4C - add r1, r0, #0 - add r0, r4, #0 - bl MOD05_021E2F34 - ldr r1, [r4, #0x40] - add r0, r4, #0 - bl MOD05_021E31D4 - mov r0, #1 - strb r0, [r4, #4] - pop {r4, pc} -_021E31CA: - add r0, r4, #0 - bl MOD05_021E32F0 -_021E31D0: - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E31D4 -MOD05_021E31D4: ; 0x021E31D4 - push {r3, lr} - sub sp, #0x10 - add r3, r0, #0 - mov r0, #3 - add r2, r1, #0 - str r0, [sp] - mov r1, #0 - ldr r0, _021E31FC ; =0x00010200 - str r1, [sp, #4] - str r0, [sp, #8] - add r0, r3, #0 - str r1, [sp, #0xc] - add r3, #0x30 - ldrb r3, [r3] - add r0, #0x20 - bl AddTextPrinterParameterized2 - add sp, #0x10 - pop {r3, pc} - nop -_021E31FC: .word 0x00010200 - - thumb_func_start MOD05_021E3200 -MOD05_021E3200: ; 0x021E3200 - mov r1, #2 - strb r1, [r0, #4] - mov r1, #0 - strh r1, [r0, #0x10] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021E320C -MOD05_021E320C: ; 0x021E320C - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #4 - mov r1, #0x44 - bl AllocFromHeap - add r4, r0, #0 - mov r0, #0x16 - mov r1, #4 - bl String_ctor - str r0, [r4, #0x40] - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021E3114 - add r0, r4, #0 - bl MOD05_021E2EA4 - ldr r2, _021E3244 ; =0x0000017E - mov r0, #1 - mov r1, #0x1a - mov r3, #4 - bl NewMsgDataFromNarc - str r0, [r4, #0x3c] - add r0, r4, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021E3244: .word 0x0000017E - - thumb_func_start MOD05_021E3248 -MOD05_021E3248: ; 0x021E3248 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x3c] - bl DestroyMsgData - add r0, r4, #0 - add r0, #0x20 - bl FUN_02019178 - ldr r0, [r4, #0x40] - bl String_dtor - ldr r0, [r4, #0x38] - bl FreeToHeap - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E3270 -MOD05_021E3270: ; 0x021E3270 - push {r4, lr} - add r4, r0, #0 - str r1, [r4, #0x18] - ldr r1, [r4] - cmp r1, #0 - bne _021E32BC - mov r0, #1 - str r0, [r4] - mov r1, #3 - ldr r0, [r4, #0x1c] - add r2, r1, #0 - mov r3, #0x26 - bl FUN_020179E0 - mov r0, #0x26 - str r0, [r4, #0xc] - ldr r0, _021E32EC ; =MOD05_021E3124 - add r1, r4, #0 - mov r2, #0 - bl FUN_0200CA44 - str r0, [r4, #8] - mov r0, #1 - strb r0, [r4, #4] - ldr r0, [r4, #0x3c] - ldr r1, [r4, #0x18] - ldr r2, [r4, #0x40] - bl FUN_02064E4C - add r1, r0, #0 - add r0, r4, #0 - bl MOD05_021E2F34 - ldr r1, [r4, #0x40] - add r0, r4, #0 - bl MOD05_021E31D4 - pop {r4, pc} -_021E32BC: - ldrb r1, [r4, #4] - cmp r1, #3 - bhi _021E32E6 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021E32CE: ; jump table - .short _021E32E6 - _021E32CE - 2 ; case 0 - .short _021E32D6 - _021E32CE - 2 ; case 1 - .short _021E32E0 - _021E32CE - 2 ; case 2 - .short _021E32D6 - _021E32CE - 2 ; case 3 -_021E32D6: - bl MOD05_021E3200 - mov r0, #1 - str r0, [r4, #0x14] - pop {r4, pc} -_021E32E0: - mov r0, #1 - str r0, [r4, #0x14] - pop {r4, pc} -_021E32E6: - bl ErrorHandling - pop {r4, pc} - .balign 4, 0 -_021E32EC: .word MOD05_021E3124 - - thumb_func_start MOD05_021E32F0 -MOD05_021E32F0: ; 0x021E32F0 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #8] - cmp r0, #0 - beq _021E32FE - bl FUN_0200CAB4 -_021E32FE: - add r0, r4, #0 - add r0, #0x20 - bl FUN_02019570 - mov r1, #3 - ldr r0, [r4, #0x1c] - add r2, r1, #0 - mov r3, #0 - bl FUN_020179E0 - ldr r1, [r4, #0x1c] - add r0, r4, #0 - bl MOD05_021E3114 - pop {r4, pc} - - thumb_func_start MOD05_021E331C -MOD05_021E331C: ; 0x021E331C - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x1c] - ldr r0, [r0] - bl FUN_02034944 - cmp r0, #0 - bne _021E333E - ldr r0, [r4, #0x1c] - ldr r0, [r0] - bl FUN_02034824 - add r1, r0, #0 - ldr r0, [r4, #4] - ldr r0, [r0, #8] - bl MOD05_021E3270 -_021E333E: - pop {r4, pc} - - thumb_func_start MOD05_021E3340 -MOD05_021E3340: ; 0x021E3340 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r4, r0, #0 - bl FUN_02046528 - add r5, r0, #0 - add r0, r4, #0 - bl FUN_0204652C - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #4 - bhi _021E3414 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_021E3366: ; jump table - .short _021E3370 - _021E3366 - 2 ; case 0 - .short _021E3388 - _021E3366 - 2 ; case 1 - .short _021E33A0 - _021E3366 - 2 ; case 2 - .short _021E33E4 - _021E3366 - 2 ; case 3 - .short _021E33FE - _021E3366 - 2 ; case 4 -_021E3370: - mov r0, #2 - add r1, r0, #0 - str r0, [sp] - sub r1, #0x12 - mov r2, #0 - mov r3, #0x3f - bl FUN_0200A208 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021E3414 -_021E3388: - mov r0, #2 - bl FUN_0200A344 - cmp r0, #0 - beq _021E3414 - ldr r0, [r5, #8] - bl MOD19_022524F4 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021E3414 -_021E33A0: - ldr r0, [r5, #8] - bl MOD19_02252504 - cmp r0, #0 - beq _021E3414 - ldr r0, [r5, #0xc] - bl FUN_0204C1A8 - add r6, r0, #0 - ldr r0, _021E341C ; =SDK_OVERLAY_MODULE_19_ID - bl UnloadOverlayByID - ldr r0, _021E3420 ; =SDK_OVERLAY_MODULE_20_ID - mov r1, #2 - bl HandleLoadOverlay - add r0, r6, #0 - bl FUN_0204BEB8 - 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 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021E3414 -_021E33E4: - mov r1, #0 - mov r0, #2 - add r2, r1, #0 - str r0, [sp] - mov r0, #4 - sub r2, #0x10 - mov r3, #0x3f - bl FUN_0200A208 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021E3414 -_021E33FE: - mov r0, #2 - bl FUN_0200A344 - cmp r0, #0 - beq _021E3414 - add r0, r4, #0 - bl FreeToHeap - add sp, #4 - mov r0, #1 - pop {r3, r4, r5, r6, pc} -_021E3414: - mov r0, #0 - add sp, #4 - pop {r3, r4, r5, r6, pc} - nop -_021E341C: .word SDK_OVERLAY_MODULE_19_ID -_021E3420: .word SDK_OVERLAY_MODULE_20_ID - - thumb_func_start MOD05_021E3424 -MOD05_021E3424: ; 0x021E3424 - push {r4, lr} - add r4, r0, #0 - mov r0, #0xb - mov r1, #4 - bl AllocFromHeapAtEnd - add r2, r0, #0 - mov r0, #0 - str r0, [r2] - ldr r1, _021E3440 ; =MOD05_021E3340 - add r0, r4, #0 - bl FUN_0204640C - pop {r4, pc} - .balign 4, 0 -_021E3440: .word MOD05_021E3340 - - thumb_func_start MOD05_021E3444 -MOD05_021E3444: ; 0x021E3444 - push {r3, r4, r5, lr} - add r5, r1, #0 - lsl r1, r0, #2 - ldr r0, _021E3470 ; =UNK05_021F74E8 - add r4, r2, #0 - ldr r0, [r0, r1] - mov r1, #0x20 - mov r2, #5 - mov r3, #4 - bl FUN_020061E8 - bl FUN_0201B6C8 - str r5, [r0, #0x10] - str r4, [r0, #0x14] - cmp r4, #0 - beq _021E346A - mov r1, #0 - str r1, [r4] -_021E346A: - mov r1, #0 - str r1, [r0, #0x18] - pop {r3, r4, r5, pc} - .balign 4, 0 -_021E3470: .word UNK05_021F74E8 - - thumb_func_start MOD05_021E3474 -MOD05_021E3474: ; 0x021E3474 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - add r7, r1, #0 - mov r0, #4 - mov r1, #0x4c - str r2, [sp] - add r5, r3, #0 - bl AllocFromHeap - mov r1, #0 - mov r2, #0x4c - add r4, r0, #0 - bl memset - ldr r0, _021E34B4 ; =MOD05_021E34B8 - add r1, r4, #0 - mov r2, #5 - bl FUN_0200CA44 - str r5, [r4, #0x48] - cmp r5, #0 - beq _021E34A4 - mov r0, #0 - str r0, [r5] -_021E34A4: - str r6, [r4, #0xc] - ldr r0, [sp] - str r7, [r4, #0x10] - str r0, [r4, #0x14] - ldr r0, [sp, #0x18] - str r0, [r4, #4] - pop {r3, r4, r5, r6, r7, pc} - nop -_021E34B4: .word MOD05_021E34B8 - - thumb_func_start MOD05_021E34B8 -MOD05_021E34B8: ; 0x021E34B8 - push {r3, r4, lr} - sub sp, #4 - add r4, r1, #0 - ldr r1, [r4] - cmp r1, #5 - bhi _021E359E - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021E34D0: ; jump table - .short _021E34DC - _021E34D0 - 2 ; case 0 - .short _021E3514 - _021E34D0 - 2 ; case 1 - .short _021E352E - _021E34D0 - 2 ; case 2 - .short _021E3542 - _021E34D0 - 2 ; case 3 - .short _021E355C - _021E34D0 - 2 ; case 4 - .short _021E3580 - _021E34D0 - 2 ; case 5 -_021E34DC: - ldr r0, [r4, #0xc] - cmp r0, #1 - bne _021E34F6 - mov r0, #8 - str r0, [sp] - add r0, r4, #0 - ldr r2, [r4, #0x14] - add r0, #0x30 - mov r1, #0 - mov r3, #2 - bl MOD05_021E372C - b _021E350C -_021E34F6: - cmp r0, #2 - bne _021E350C - mov r0, #8 - str r0, [sp] - add r0, r4, #0 - ldr r2, [r4, #0x14] - add r0, #0x30 - mov r1, #0 - mov r3, #1 - bl MOD05_021E372C -_021E350C: - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021E359E -_021E3514: - mov r0, #3 - str r0, [sp] - add r0, r4, #0 - ldr r2, [r4, #0x10] - ldr r3, [r4, #0xc] - add r0, #0x18 - mov r1, #0 - bl MOD05_021E372C - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021E359E -_021E352E: - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E3738 - cmp r0, #0 - beq _021E359E - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021E359E -_021E3542: - mov r0, #3 - str r0, [sp] - add r0, r4, #0 - ldr r1, [r4, #0x10] - ldr r3, [r4, #0xc] - add r0, #0x18 - mov r2, #0 - bl MOD05_021E372C - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021E359E -_021E355C: - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E3738 - cmp r0, #0 - beq _021E359E - ldr r0, [r4, #8] - add r1, r0, #1 - str r1, [r4, #8] - ldr r0, [r4, #4] - cmp r1, r0 - bne _021E357A - mov r0, #5 - str r0, [r4] - b _021E359E -_021E357A: - mov r0, #1 - str r0, [r4] - b _021E359E -_021E3580: - mov r1, #0 - str r1, [r4] - str r1, [r4, #8] - ldr r2, [r4, #0x48] - cmp r2, #0 - beq _021E3590 - mov r1, #1 - str r1, [r2] -_021E3590: - bl FUN_0200CAB4 - add r0, r4, #0 - bl FreeToHeap - add sp, #4 - pop {r3, r4, pc} -_021E359E: - add r4, #0x30 - add r0, r4, #0 - bl MOD05_021E3738 - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E35AC -MOD05_021E35AC: ; 0x021E35AC - ldr r0, [r0, #0x18] - bx lr - - thumb_func_start MOD05_021E35B0 -MOD05_021E35B0: ; 0x021E35B0 - 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_021E35C0 -MOD05_021E35C0: ; 0x021E35C0 - 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 _021E35E6 - str r0, [r4, #0xc] - mov r0, #0 - pop {r4, pc} -_021E35E6: - str r1, [r4, #0xc] - mov r0, #1 - pop {r4, pc} - - thumb_func_start MOD05_021E35EC -MOD05_021E35EC: ; 0x021E35EC - 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_021E35FC -MOD05_021E35FC: ; 0x021E35FC - push {r4, lr} - add r4, r0, #0 - ldr r2, [r4, #0xc] - ldr r0, [r4, #8] - lsl r2, r2, #0xc - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ll_mul - mov r2, #2 - mov r3, #0 - lsl r2, r2, #0xa - add r0, r0, r2 - adc r1, r3 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - ldr r1, [r4, #0x10] - lsl r1, r1, #0xc - bl FX_Div - 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 _021E363C - str r0, [r4, #0xc] - mov r0, #0 - pop {r4, pc} -_021E363C: - str r1, [r4, #0xc] - mov r0, #1 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E3644 -MOD05_021E3644: ; 0x021E3644 - push {r3, r4, r5, r6, r7, lr} - ldr r4, [sp, #0x18] - add r5, r0, #0 - add r7, r2, #0 - add r0, r3, #0 - add r6, r1, #0 - lsl r2, r4, #0xc - str r3, [sp] - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ll_mul - add r2, r0, #0 - sub r0, r7, r6 - mov r7, #2 - mov r3, #0 - lsl r7, r7, #0xa - add r2, r2, r7 - adc r1, r3 - lsl r1, r1, #0x14 - lsr r2, r2, #0xc - orr r2, r1 - sub r2, r0, r2 - asr r1, r2, #0x1f - lsr r0, r2, #0x13 - lsl r1, r1, #0xd - orr r1, r0 - lsl r0, r2, #0xd - add r0, r0, r7 - adc r1, r3 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - add r1, r4, #0 - mul r1, r4 - lsl r1, r1, #0xc - bl FX_Div - str r6, [r5] - ldr r1, [sp] - str r6, [r5, #4] - str r1, [r5, #8] - str r0, [r5, #0xc] - mov r0, #0 - str r0, [r5, #0x10] - str r4, [r5, #0x14] - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E36A4 -MOD05_021E36A4: ; 0x021E36A4 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r6, [r5, #0x10] - ldr r0, [r5, #8] - lsl r2, r6, #0xc - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ll_mul - mov r2, #2 - mov r3, #0 - lsl r2, r2, #0xa - add r2, r0, r2 - adc r1, r3 - lsr r4, r2, #0xc - lsl r0, r1, #0x14 - add r2, r6, #0 - orr r4, r0 - ldr r0, [r5, #0xc] - mul r2, r6 - lsl r2, r2, #0xc - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ll_mul - mov r2, #2 - mov r3, #0 - lsl r2, r2, #0xa - add r0, r0, r2 - adc r1, r3 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - lsl r1, r2, #2 - bl FX_Div - ldr r1, [r5, #4] - add r0, r4, r0 - add r0, r1, r0 - str r0, [r5] - ldr r0, [r5, #0x10] - ldr r1, [r5, #0x14] - add r0, r0, #1 - cmp r0, r1 - bgt _021E3704 - str r0, [r5, #0x10] - mov r0, #0 - pop {r4, r5, r6, pc} -_021E3704: - str r1, [r5, #0x10] - mov r0, #1 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E370C -MOD05_021E370C: ; 0x021E370C - push {r3, lr} - cmp r0, #1 - bne _021E371A - ldr r0, _021E3724 ; =0x0400006C - bl GXx_SetMasterBrightness_ - pop {r3, pc} -_021E371A: - ldr r0, _021E3728 ; =0x0400106C - bl GXx_SetMasterBrightness_ - pop {r3, pc} - nop -_021E3724: .word 0x0400006C -_021E3728: .word 0x0400106C - - thumb_func_start MOD05_021E372C -MOD05_021E372C: ; 0x021E372C - push {r3, lr} - str r3, [r0, #0x14] - ldr r3, [sp, #8] - bl MOD05_021E35B0 - pop {r3, pc} - - thumb_func_start MOD05_021E3738 -MOD05_021E3738: ; 0x021E3738 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl MOD05_021E35C0 - add r4, r0, #0 - ldr r0, _021E3750 ; =MOD05_021E3754 - add r1, r5, #0 - mov r2, #0xa - bl FUN_0200CA98 - add r0, r4, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021E3750: .word MOD05_021E3754 - - thumb_func_start MOD05_021E3754 -MOD05_021E3754: ; 0x021E3754 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r1, #0x14] - ldr r1, [r1] - bl MOD05_021E370C - add r0, r4, #0 - bl FUN_0200CAB4 - pop {r4, pc} - - thumb_func_start MOD05_021E3768 -MOD05_021E3768: ; 0x021E3768 - push {r4, lr} - mov r0, #4 - mov r1, #0x30 - bl AllocFromHeap - mov r1, #0 - mov r2, #0x30 - add r4, r0, #0 - bl memset - ldr r0, _021E379C ; =0x04000048 - mov r1, #0x3f - ldrh r2, [r0] - bic r2, r1 - mov r1, #0x1f - orr r2, r1 - mov r1, #0x20 - orr r1, r2 - strh r1, [r0] - ldrh r2, [r0] - ldr r1, _021E37A0 ; =0xFFFFC0FF - and r1, r2 - strh r1, [r0] - add r0, r4, #0 - pop {r4, pc} - nop -_021E379C: .word 0x04000048 -_021E37A0: .word 0xFFFFC0FF - - thumb_func_start MOD05_021E37A4 -MOD05_021E37A4: ; 0x021E37A4 - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4, #0x24] - cmp r1, #0 - beq _021E37B2 - bl MOD05_021E3920 -_021E37B2: - mov r2, #1 - lsl r2, r2, #0x1a - ldr r1, [r2] - ldr r0, _021E37C8 ; =0xFFFF1FFF - and r0, r1 - str r0, [r2] - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - nop -_021E37C8: .word 0xFFFF1FFF - - thumb_func_start MOD05_021E37CC -MOD05_021E37CC: ; 0x021E37CC - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r1, #0 - add r6, r0, #0 - ldr r0, [r5, #0x24] - add r7, r2, #0 - str r3, [sp, #4] - ldr r4, [sp, #0x20] - cmp r0, #0 - beq _021E37E4 - bl ErrorHandling -_021E37E4: - mov r0, #0 - str r0, [r6, #0x18] - ldr r1, [r6, #0x10] - add r6, #0x18 - ldr r1, [r1, #4] - ldr r2, [sp, #0x24] - ldr r1, [r1, #0x1c] - ldr r3, [sp, #0x28] - str r1, [r5, #0x20] - str r7, [r5, #0x18] - str r0, [r5, #0x1c] - ldr r0, [sp, #4] - str r6, [r5, #0x2c] - str r0, [sp] - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021E3644 - cmp r4, #0 - blt _021E3824 - mov r0, #0xff - ldr r2, _021E3850 ; =0x04000040 - sub r0, r0, r4 - strh r0, [r2] - add r0, r4, #1 - mov r1, #0xc0 - lsl r0, r0, #0x18 - strh r1, [r2, #4] - lsr r0, r0, #0x18 - strh r0, [r2, #2] - strh r1, [r2, #6] - b _021E3840 -_021E3824: - add r0, r4, #0 - add r0, #0xff - lsl r0, r0, #0x18 - mov r2, #1 - sub r2, r2, r4 - lsl r2, r2, #0x18 - ldr r1, _021E3850 ; =0x04000040 - lsr r0, r0, #0x18 - strh r0, [r1] - mov r0, #0xc0 - strh r0, [r1, #4] - lsr r2, r2, #0x18 - strh r2, [r1, #2] - strh r0, [r1, #6] -_021E3840: - mov r2, #1 - ldr r0, _021E3854 ; =MOD05_021E3858 - add r1, r5, #0 - lsl r2, r2, #0xa - bl FUN_0200CA98 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021E3850: .word 0x04000040 -_021E3854: .word MOD05_021E3858 - - thumb_func_start MOD05_021E3858 -MOD05_021E3858: ; 0x021E3858 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r2, #1 - ldr r0, _021E3880 ; =MOD05_021E38B8 - add r4, r1, #0 - lsl r2, r2, #0xa - bl FUN_0200CA98 - str r0, [r4, #0x28] - ldr r0, [r4, #0x20] - ldr r1, _021E3884 ; =MOD05_021E397C - add r2, r4, #0 - bl MOD05_021F4624 - str r0, [r4, #0x24] - add r0, r5, #0 - bl FUN_0200CAB4 - pop {r3, r4, r5, pc} - nop -_021E3880: .word MOD05_021E38B8 -_021E3884: .word MOD05_021E397C - - thumb_func_start MOD05_021E3888 -MOD05_021E3888: ; 0x021E3888 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r1, #0 - add r4, r2, #0 - add r6, r3, #0 - bl MOD05_021E35AC - cmp r0, #0 - beq _021E389E - bl ErrorHandling -_021E389E: - str r4, [r5, #0x18] - mov r0, #0 - str r0, [r5, #0x1c] - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x20] - add r0, r5, #0 - str r6, [sp] - bl MOD05_021E3644 - add sp, #4 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E38B8 -MOD05_021E38B8: ; 0x021E38B8 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #0x1c] - cmp r0, #0 - beq _021E38C8 - cmp r0, #1 - beq _021E3914 - pop {r4, pc} -_021E38C8: - add r0, r4, #0 - bl MOD05_021E36A4 - cmp r0, #0 - beq _021E38D8 - ldr r0, [r4, #0x1c] - add r0, r0, #1 - str r0, [r4, #0x1c] -_021E38D8: - ldr r0, [r4] - asr r0, r0, #0xc - bmi _021E38F6 - mov r1, #0xff - sub r1, r1, r0 - ldr r2, _021E391C ; =0x04000040 - add r0, r0, #1 - strh r1, [r2] - mov r1, #0xc0 - lsl r0, r0, #0x18 - strh r1, [r2, #4] - lsr r0, r0, #0x18 - strh r0, [r2, #2] - strh r1, [r2, #6] - pop {r4, pc} -_021E38F6: - add r1, r0, #0 - add r1, #0xff - lsl r1, r1, #0x18 - ldr r3, _021E391C ; =0x04000040 - lsr r1, r1, #0x18 - strh r1, [r3] - mov r1, #1 - sub r0, r1, r0 - mov r2, #0xc0 - lsl r0, r0, #0x18 - strh r2, [r3, #4] - lsr r0, r0, #0x18 - strh r0, [r3, #2] - strh r2, [r3, #6] - pop {r4, pc} -_021E3914: - add r0, r4, #0 - bl MOD05_021E3920 - pop {r4, pc} - .balign 4, 0 -_021E391C: .word 0x04000040 - - thumb_func_start MOD05_021E3920 -MOD05_021E3920: ; 0x021E3920 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021E3974 ; =0x04000048 - mov r2, #0x3f - ldrh r3, [r0] - mov r1, #0x1f - bic r3, r2 - orr r3, r1 - mov r1, #0x20 - orr r3, r1 - strh r3, [r0] - ldrh r3, [r0, #2] - bic r3, r2 - add r2, r0, #0 - strh r3, [r0, #2] - mov r3, #0 - sub r2, #8 - strh r3, [r2] - sub r0, r0, #4 - strh r3, [r0] - lsl r3, r1, #0x15 - ldr r2, [r3] - ldr r0, _021E3978 ; =0xFFFF1FFF - and r2, r0 - lsl r0, r1, #8 - orr r0, r2 - str r0, [r3] - ldr r0, [r4, #0x2c] - mov r1, #1 - str r1, [r0] - ldr r0, [r4, #0x24] - bl MOD05_021F4648 - mov r0, #0 - str r0, [r4, #0x24] - ldr r0, [r4, #0x28] - bl FUN_0200CAB4 - mov r0, #0 - str r0, [r4, #0x28] - pop {r4, pc} - nop -_021E3974: .word 0x04000048 -_021E3978: .word 0xFFFF1FFF - - thumb_func_start MOD05_021E397C -MOD05_021E397C: ; 0x021E397C - push {r4, lr} - ldr r0, _021E39EC ; =0x04000006 - add r4, r1, #0 - ldrh r0, [r0] - ldr r1, [r4, #0x18] - bl _u32_div_f - mov r1, #1 - tst r0, r1 - ldr r0, [r4] - bne _021E3994 - b _021E3996 -_021E3994: - neg r0, r0 -_021E3996: - asr r2, r0, #0xc - ldr r0, _021E39F0 ; =0x000001FF - add r1, r2, #0 - and r1, r0 - ldr r0, _021E39F4 ; =0x04000010 - cmp r2, #0 - str r1, [r0] - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - ldr r1, _021E39F8 ; =0xFFFF1FFF - blt _021E39C8 - add r3, r0, #0 - sub r3, #0x10 - ldr r2, [r3] - and r2, r1 - lsl r1, r0, #9 - orr r1, r2 - str r1, [r3] - add r0, #0x3a - ldrh r2, [r0] - mov r1, #0x3f - bic r2, r1 - strh r2, [r0] - pop {r4, pc} -_021E39C8: - add r3, r0, #0 - sub r3, #0x10 - ldr r2, [r3] - and r2, r1 - lsl r1, r0, #0xa - orr r1, r2 - str r1, [r3] - add r0, #0x3a - ldrh r2, [r0] - mov r1, #0x3f - bic r2, r1 - mov r1, #0x1f - orr r2, r1 - mov r1, #0x20 - orr r1, r2 - strh r1, [r0] - pop {r4, pc} - nop -_021E39EC: .word 0x04000006 -_021E39F0: .word 0x000001FF -_021E39F4: .word 0x04000010 -_021E39F8: .word 0xFFFF1FFF - - thumb_func_start MOD05_021E39FC -MOD05_021E39FC: ; 0x021E39FC - push {r4, r5, r6, lr} - mov r0, #4 - mov r1, #0x48 - bl AllocFromHeap - mov r1, #0 - mov r2, #0x48 - add r4, r0, #0 - bl memset - ldr r0, _021E3A40 ; =0x04000048 - mov r5, #0x3f - ldrh r2, [r0] - mov r1, #0x1f - bic r2, r5 - add r3, r2, #0 - orr r3, r1 - mov r2, #0x20 - orr r3, r2 - strh r3, [r0] - ldrh r6, [r0] - ldr r3, _021E3A44 ; =0xFFFFC0FF - lsl r1, r1, #8 - and r3, r6 - orr r3, r1 - lsl r1, r2, #8 - orr r1, r3 - strh r1, [r0] - ldrh r1, [r0, #2] - bic r1, r5 - strh r1, [r0, #2] - add r0, r4, #0 - pop {r4, r5, r6, pc} - nop -_021E3A40: .word 0x04000048 -_021E3A44: .word 0xFFFFC0FF - - thumb_func_start MOD05_021E3A48 -MOD05_021E3A48: ; 0x021E3A48 - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4, #0x3c] - cmp r1, #0 - beq _021E3A56 - bl MOD05_021E3BA4 -_021E3A56: - mov r2, #1 - lsl r2, r2, #0x1a - ldr r1, [r2] - ldr r0, _021E3A6C ; =0xFFFF1FFF - and r0, r1 - str r0, [r2] - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - nop -_021E3A6C: .word 0xFFFF1FFF - - thumb_func_start MOD05_021E3A70 -MOD05_021E3A70: ; 0x021E3A70 - push {r3, r4, r5, r6, r7, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4, #0x3c] - add r6, r2, #0 - add r7, r3, #0 - cmp r0, #0 - beq _021E3A84 - bl ErrorHandling -_021E3A84: - mov r1, #0 - str r1, [r5, #0x18] - ldr r0, [r5, #0x10] - mov r2, #0xff - ldr r0, [r0, #4] - add r5, #0x18 - ldr r0, [r0, #0x1c] - lsl r2, r2, #0xc - str r0, [r4, #0x38] - mov r0, #0x60 - str r0, [r4, #0x30] - str r1, [r4, #0x34] - str r5, [r4, #0x44] - add r0, r4, #0 - add r3, r7, #0 - str r6, [sp] - bl MOD05_021E3644 - add r0, r4, #0 - mov r2, #6 - ldr r3, [sp, #0x18] - add r0, #0x18 - mov r1, #0 - lsl r2, r2, #0x10 - str r6, [sp] - bl MOD05_021E3644 - ldr r2, _021E3AD4 ; =0x04000040 - mov r1, #0xff - strh r1, [r2] - mov r0, #0xc0 - strh r0, [r2, #4] - strh r1, [r2, #2] - strh r0, [r2, #6] - ldr r0, _021E3AD8 ; =MOD05_021E3ADC - add r1, r4, #0 - lsr r2, r2, #0x10 - bl FUN_0200CA98 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021E3AD4: .word 0x04000040 -_021E3AD8: .word MOD05_021E3ADC - - thumb_func_start MOD05_021E3ADC -MOD05_021E3ADC: ; 0x021E3ADC - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r2, #1 - ldr r0, _021E3B04 ; =MOD05_021E3B0C - add r4, r1, #0 - lsl r2, r2, #0xa - bl FUN_0200CA98 - str r0, [r4, #0x40] - ldr r0, [r4, #0x38] - ldr r1, _021E3B08 ; =MOD05_021E3B74 - add r2, r4, #0 - bl MOD05_021F4624 - str r0, [r4, #0x3c] - add r0, r5, #0 - bl FUN_0200CAB4 - pop {r3, r4, r5, pc} - nop -_021E3B04: .word MOD05_021E3B0C -_021E3B08: .word MOD05_021E3B74 - - thumb_func_start MOD05_021E3B0C -MOD05_021E3B0C: ; 0x021E3B0C - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #0x34] - cmp r0, #0 - beq _021E3B1C - cmp r0, #1 - beq _021E3B68 - pop {r4, pc} -_021E3B1C: - add r0, r4, #0 - add r0, #0x18 - bl MOD05_021E36A4 - add r0, r4, #0 - bl MOD05_021E36A4 - cmp r0, #0 - beq _021E3B34 - ldr r0, [r4, #0x34] - add r0, r0, #1 - str r0, [r4, #0x34] -_021E3B34: - ldr r0, [r4] - asr r2, r0, #0xc - ldr r0, [r4, #0x18] - mov r4, #0xff - asr r1, r0, #0xc - ldr r0, _021E3B70 ; =0x04000040 - sub r3, r4, r2 - strh r3, [r0] - mov r3, #0x60 - sub r3, r3, r1 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - strh r3, [r0, #4] - lsl r3, r2, #8 - lsl r2, r4, #8 - and r2, r3 - orr r2, r4 - add r1, #0x60 - strh r2, [r0, #2] - lsl r2, r1, #8 - lsl r1, r4, #8 - and r2, r1 - mov r1, #0xc0 - orr r1, r2 - strh r1, [r0, #6] - pop {r4, pc} -_021E3B68: - add r0, r4, #0 - bl MOD05_021E3BA4 - pop {r4, pc} - .balign 4, 0 -_021E3B70: .word 0x04000040 - - thumb_func_start MOD05_021E3B74 -MOD05_021E3B74: ; 0x021E3B74 - ldr r0, _021E3B9C ; =0x04000006 - ldr r1, [r1, #0x30] - ldrh r2, [r0] - cmp r2, r1 - ldr r1, _021E3BA0 ; =0xFFFF1FFF - bhi _021E3B8E - sub r3, r0, #6 - ldr r2, [r3] - lsr r0, r0, #0xd - and r1, r2 - orr r0, r1 - str r0, [r3] - bx lr -_021E3B8E: - sub r3, r0, #6 - ldr r2, [r3] - lsr r0, r0, #0xc - and r1, r2 - orr r0, r1 - str r0, [r3] - bx lr - .balign 4, 0 -_021E3B9C: .word 0x04000006 -_021E3BA0: .word 0xFFFF1FFF - - thumb_func_start MOD05_021E3BA4 -MOD05_021E3BA4: ; 0x021E3BA4 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021E3BF8 ; =0x04000048 - mov r2, #0x3f - ldrh r3, [r0] - mov r1, #0x1f - bic r3, r2 - orr r3, r1 - mov r1, #0x20 - orr r3, r1 - strh r3, [r0] - ldrh r3, [r0, #2] - bic r3, r2 - add r2, r0, #0 - strh r3, [r0, #2] - mov r3, #0 - sub r2, #8 - strh r3, [r2] - sub r0, r0, #4 - strh r3, [r0] - lsl r3, r1, #0x15 - ldr r2, [r3] - ldr r0, _021E3BFC ; =0xFFFF1FFF - and r2, r0 - lsl r0, r1, #8 - orr r0, r2 - str r0, [r3] - ldr r0, [r4, #0x44] - mov r1, #1 - str r1, [r0] - ldr r0, [r4, #0x3c] - bl MOD05_021F4648 - mov r0, #0 - str r0, [r4, #0x3c] - ldr r0, [r4, #0x40] - bl FUN_0200CAB4 - mov r0, #0 - str r0, [r4, #0x40] - pop {r4, pc} - nop -_021E3BF8: .word 0x04000048 -_021E3BFC: .word 0xFFFF1FFF - - thumb_func_start MOD05_021E3C00 -MOD05_021E3C00: ; 0x021E3C00 - ldr r3, _021E3C0C ; =FUN_0200CA98 - mov r2, #1 - add r1, r0, #0 - ldr r0, _021E3C10 ; =MOD05_021E3C14 - lsl r2, r2, #0xa - bx r3 - .balign 4, 0 -_021E3C0C: .word FUN_0200CA98 -_021E3C10: .word MOD05_021E3C14 - - thumb_func_start MOD05_021E3C14 -MOD05_021E3C14: ; 0x021E3C14 - push {r3, r4, r5, r6, lr} - sub sp, #0x64 - ldr r6, _021E3D10 ; =UNK05_021F7464 - add r3, sp, #0x54 - add r5, r0, #0 - add r4, r1, #0 - add r2, r3, #0 - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - bl FUN_02016BBC - mov r0, #1 - add r1, r0, #0 - bl FUN_0201E6E4 - ldr r3, _021E3D14 ; =UNK05_021F74AC - add r2, sp, #0x38 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3] - mov r1, #1 - str r0, [r2] - add r0, r4, #0 - bl FUN_020178A0 - add r0, r4, #0 - mov r1, #1 - add r2, sp, #0x38 - mov r3, #0 - bl FUN_02016C18 - mov r0, #1 - mov r1, #0x20 - mov r2, #0 - mov r3, #4 - bl FUN_02017F18 - add r0, r4, #0 - mov r1, #1 - bl FUN_02018744 - mov r0, #2 - mov r1, #0 - bl FUN_0201E6E4 - ldr r3, _021E3D18 ; =UNK05_021F7490 - add r2, sp, #0x1c - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3] - mov r1, #2 - str r0, [r2] - add r0, r4, #0 - bl FUN_020178A0 - add r0, r4, #0 - mov r1, #2 - add r2, sp, #0x1c - mov r3, #0 - bl FUN_02016C18 - mov r0, #2 - mov r1, #0x20 - mov r2, #0 - mov r3, #4 - bl FUN_02017F18 - add r0, r4, #0 - mov r1, #2 - bl FUN_02018744 - mov r0, #4 - mov r1, #1 - bl FUN_0201E6E4 - ldr r3, _021E3D1C ; =UNK05_021F7474 - add r2, sp, #0 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3] - str r0, [r2] - add r0, r4, #0 - mov r1, #3 - bl FUN_020178A0 - add r0, r4, #0 - mov r1, #3 - add r2, sp, #0 - mov r3, #1 - bl FUN_02016C18 - mov r0, #3 - mov r1, #0x20 - mov r2, #0 - mov r3, #4 - bl FUN_02017F18 - add r0, r4, #0 - mov r1, #3 - bl FUN_02018744 - mov r0, #8 - mov r1, #0 - bl FUN_0201E6E4 - add r0, r5, #0 - bl FUN_0200CAB4 - add sp, #0x64 - pop {r3, r4, r5, r6, pc} - nop -_021E3D10: .word UNK05_021F7464 -_021E3D14: .word UNK05_021F74AC -_021E3D18: .word UNK05_021F7490 -_021E3D1C: .word UNK05_021F7474 - - thumb_func_start MOD05_021E3D20 -MOD05_021E3D20: ; 0x021E3D20 - push {r4, r5, r6, lr} - sub sp, #0x10 - add r4, r3, #0 - mov r3, #0 - add r5, r0, #0 - add r6, r1, #0 - add r1, r2, #0 - str r3, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r0, #0x70 - add r2, r3, #0 - bl FUN_02006930 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #4 - str r0, [sp, #0xc] - mov r0, #0x70 - add r1, r6, #0 - add r2, r4, #0 - mov r3, #3 - bl FUN_0200687C - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #4 - str r0, [sp, #0xc] - mov r0, #0x70 - add r1, r5, #0 - add r2, r4, #0 - mov r3, #3 - bl FUN_020068C8 - add sp, #0x10 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021E3D70 -MOD05_021E3D70: ; 0x021E3D70 - push {r3, r4, lr} - sub sp, #0xc - add r3, r1, #0 - add r4, r0, #0 - add r0, r3, #4 - str r0, [sp] - ldr r0, [r3, #0x18] - mov r2, #0 - str r0, [sp, #4] - ldr r0, [r3, #0x1c] - str r0, [sp, #8] - ldr r1, [r3, #0x14] - ldr r0, [r3] - lsl r1, r1, #0x18 - ldr r3, [r3, #0x20] - lsr r1, r1, #0x18 - bl FUN_02017B60 - add r0, r4, #0 - bl FUN_0200CAB4 - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E3DA0 -MOD05_021E3DA0: ; 0x021E3DA0 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r0, r5, #4 - add r4, r1, #0 - add r6, r2, #0 - add r7, r3, #0 - bl MTX_Identity22_ - add r0, sp, #8 - ldrh r0, [r0, #0x14] - ldr r3, _021E3E0C ; =UNK_020FFA38 - 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, r5, #4 - bl MTX_Rot22_ - mov r0, #1 - lsl r0, r0, #0xc - add r1, r7, #0 - bl FX_Div - add r7, r0, #0 - mov r0, #1 - ldr r1, [sp, #0x18] - lsl r0, r0, #0xc - bl FX_Div - add r3, r0, #0 - add r0, r5, #4 - add r1, r0, #0 - add r2, r7, #0 - bl MTX_ScaleApply22 - str r4, [r5] - mov r2, #1 - ldr r0, [sp, #0x20] - str r6, [r5, #0x14] - str r0, [r5, #0x18] - ldr r0, [sp, #0x24] - add r1, r5, #0 - str r0, [r5, #0x1c] - ldr r0, [sp, #0x28] - lsl r2, r2, #0xa - str r0, [r5, #0x20] - ldr r0, _021E3E10 ; =MOD05_021E3D70 - bl FUN_0200CA98 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E3E0C: .word UNK_020FFA38 -_021E3E10: .word MOD05_021E3D70 - - thumb_func_start MOD05_021E3E14 -MOD05_021E3E14: ; 0x021E3E14 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r2, #0 - add r0, r1, #0 - add r1, r5, #4 - mov r2, #4 - bl FUN_02008C9C - mov r7, #0x4b - str r0, [r5] - mov r4, #0 - lsl r7, r7, #2 -_021E3E2C: - add r0, r6, #0 - add r1, r4, #0 - mov r2, #4 - bl FUN_02008DEC - str r0, [r5, r7] - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _021E3E2C - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E3E44 -MOD05_021E3E44: ; 0x021E3E44 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r0, [r5] - bl FUN_0201FD58 - mov r6, #0x4b - mov r4, #0 - lsl r6, r6, #2 -_021E3E54: - ldr r0, [r5, r6] - bl FUN_02008E2C - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _021E3E54 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021E3E64 -MOD05_021E3E64: ; 0x021E3E64 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x30 - ldr r6, [sp, #0x54] - add r4, r1, #0 - str r6, [sp] - mov r1, #1 - add r5, r0, #0 - str r1, [sp, #4] - mov r0, #4 - str r0, [sp, #8] - mov r0, #0x4b - str r1, [sp, #0xc] - lsl r0, r0, #2 - str r2, [sp, #0x2c] - add r7, r3, #0 - ldr r0, [r5, r0] - ldr r2, [sp, #0x48] - mov r1, #0x70 - mov r3, #0 - bl FUN_02008F90 - str r0, [r4] - str r6, [sp] - mov r0, #1 - str r0, [sp, #4] - str r7, [sp, #8] - mov r0, #4 - str r0, [sp, #0xc] - mov r0, #0x13 - lsl r0, r0, #4 - ldr r0, [r5, r0] - ldr r2, [sp, #0x2c] - mov r1, #0x70 - mov r3, #0 - bl FUN_02008FEC - str r0, [r4, #4] - str r6, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #4 - str r0, [sp, #8] - mov r0, #0x4d - lsl r0, r0, #2 - ldr r0, [r5, r0] - ldr r2, [sp, #0x4c] - mov r1, #0x70 - mov r3, #0 - bl FUN_020090AC - str r0, [r4, #8] - str r6, [sp] - mov r0, #3 - str r0, [sp, #4] - mov r0, #4 - str r0, [sp, #8] - mov r0, #0x4e - lsl r0, r0, #2 - ldr r0, [r5, r0] - ldr r2, [sp, #0x50] - mov r1, #0x70 - mov r3, #0 - bl FUN_020090AC - str r0, [r4, #0xc] - ldr r0, [r4] - bl FUN_02009B04 - ldr r0, [r4] - bl FUN_02009474 - ldr r0, [r4, #4] - bl FUN_02009D68 - mov r0, #0 - mov r2, #0x4b - str r6, [sp] - mvn r0, r0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0 - str r0, [sp, #0xc] - str r0, [sp, #0x10] - lsl r2, r2, #2 - ldr r1, [r5, r2] - add r4, #0x10 - str r1, [sp, #0x14] - add r1, r2, #4 - ldr r1, [r5, r1] - add r3, r6, #0 - str r1, [sp, #0x18] - add r1, r2, #0 - add r1, #8 - ldr r1, [r5, r1] - add r2, #0xc - str r1, [sp, #0x1c] - ldr r1, [r5, r2] - add r2, r6, #0 - str r1, [sp, #0x20] - str r0, [sp, #0x24] - str r0, [sp, #0x28] - add r0, r4, #0 - add r1, r6, #0 - bl FUN_02008AA4 - add sp, #0x30 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E3F3C -MOD05_021E3F3C: ; 0x021E3F3C - push {r3, r4, r5, r6, r7, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4] - bl FUN_02009C0C - ldr r0, [r4, #4] - bl FUN_02009E04 - mov r7, #0x4b - mov r6, #0 - lsl r7, r7, #2 -_021E3F54: - ldr r0, [r5, r7] - ldr r1, [r4] - bl FUN_02009490 - add r6, r6, #1 - add r4, r4, #4 - add r5, r5, #4 - cmp r6, #4 - blt _021E3F54 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021E3F68 -MOD05_021E3F68: ; 0x021E3F68 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - add r4, r1, #0 - lsl r1, r2, #0x10 - add r6, r0, #0 - add r0, sp, #8 - lsr r1, r1, #0x10 - add r7, r3, #0 - bl FUN_020690AC - add r0, r4, #0 - mov r1, #0x20 - bl AllocFromHeap - add r1, sp, #4 - add r5, r0, #0 - ldrh r0, [r1, #4] - ldrh r1, [r1, #8] - add r2, sp, #4 - add r3, r4, #0 - bl FUN_02006C08 - add r4, r0, #0 - add r0, sp, #0x20 - ldrh r0, [r0, #0x10] - add r1, r5, #0 - mov r2, #0x10 - str r0, [sp] - ldr r0, [sp, #4] - add r3, r7, #0 - ldr r0, [r0, #0xc] - bl FUN_02003974 - add r0, r6, #0 - add r1, r5, #0 - mov r2, #0x20 - bl MOD05_021E40F0 - add r0, r5, #0 - bl FreeToHeap - add r0, r4, #0 - bl FreeToHeap - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021E3FC4 -MOD05_021E3FC4: ; 0x021E3FC4 - push {r4, lr} - sub sp, #0x20 - ldr r0, [r0] - add r1, #0x10 - str r0, [sp] - ldr r0, [sp, #0x28] - str r1, [sp, #4] - str r0, [sp, #0x10] - ldr r0, [sp, #0x2c] - str r2, [sp, #8] - str r0, [sp, #0x14] - mov r0, #1 - str r0, [sp, #0x18] - mov r0, #4 - str r0, [sp, #0x1c] - add r0, sp, #0 - str r3, [sp, #0xc] - bl FUN_0201FF84 - add r4, r0, #0 - bne _021E3FF2 - bl ErrorHandling -_021E3FF2: - add r0, r4, #0 - add sp, #0x20 - pop {r4, pc} - - thumb_func_start MOD05_021E3FF8 -MOD05_021E3FF8: ; 0x021E3FF8 - push {r4} - sub sp, #0xc - str r2, [sp, #4] - str r3, [sp, #8] - add r2, sp, #0 - add r4, r0, #0 - str r1, [sp] - ldmia r2!, {r0, r1} - stmia r4!, {r0, r1} - ldr r0, [r2] - str r0, [r4] - add sp, #0xc - pop {r4} - bx lr - - thumb_func_start MOD05_021E4014 -MOD05_021E4014: ; 0x021E4014 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - add r4, r2, #0 - add r5, r1, #0 - lsl r1, r4, #0x10 - add r6, r0, #0 - add r0, sp, #0x10 - lsr r1, r1, #0x10 - add r7, r3, #0 - bl FUN_020690AC - str r5, [sp] - add r1, sp, #8 - ldrh r0, [r1, #8] - ldrh r1, [r1, #0xa] - mov r2, #0 - add r3, sp, #0xc - bl FUN_02006BB0 - str r0, [sp, #4] - ldr r0, [sp, #0xc] - ldr r0, [r0, #0x14] - bl FUN_02008A74 - add r0, sp, #0x28 - ldrh r0, [r0, #0x10] - add r1, r5, #0 - add r2, r4, #0 - str r0, [sp] - add r0, r6, #0 - add r3, r7, #0 - bl MOD05_021E3F68 - ldr r0, [sp, #0xc] - ldr r3, [sp, #0x3c] - add r1, r5, #0 - add r2, sp, #8 - bl MOD05_021E4080 - add r4, r0, #0 - ldr r2, [sp, #8] - add r0, r6, #0 - add r1, r4, #0 - bl MOD05_021E4118 - add r0, r4, #0 - bl FreeToHeap - ldr r0, [sp, #4] - bl FreeToHeap - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4080 -MOD05_021E4080: ; 0x021E4080 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - str r0, [sp] - ldr r4, [r0, #0x14] - add r0, r1, #0 - mov r1, #2 - lsl r1, r1, #0xa - str r2, [sp, #4] - add r5, r3, #0 - bl AllocFromHeap - mov ip, r0 - lsl r0, r5, #2 - mov r7, #0 - add r6, r4, r0 -_021E409E: - ldr r0, [sp] - mov r2, #0 - ldrh r0, [r0, #2] - add r3, r7, #0 - lsr r1, r7, #0x1f - lsl r5, r7, #0x1d - mul r3, r0 - sub r5, r5, r1 - mov r0, #0x1d - ror r5, r0 - asr r0, r7, #2 - lsr r0, r0, #0x1d - add r0, r7, r0 - asr r0, r0, #3 - add r1, r1, r5 - lsl r0, r0, #6 - add r0, r1, r0 - lsl r1, r0, #2 - mov r0, ip - add r4, r2, #0 - add r5, r0, r1 -_021E40C8: - add r0, r3, r2 - lsl r0, r0, #2 - ldr r1, [r6, r0] - lsl r0, r4, #2 - add r2, r2, #1 - add r4, #8 - str r1, [r5, r0] - cmp r2, #8 - blt _021E40C8 - add r7, r7, #1 - cmp r7, #0x40 - blt _021E409E - mov r1, #2 - ldr r0, [sp, #4] - lsl r1, r1, #0xa - str r1, [r0] - mov r0, ip - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E40F0 -MOD05_021E40F0: ; 0x021E40F0 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r4, r2, #0 - bl FUN_02020354 - add r6, r0, #0 - add r0, r5, #0 - add r1, r4, #0 - bl DC_FlushRange - add r0, r6, #0 - mov r1, #1 - bl FUN_020B19C4 - add r1, r0, #0 - add r0, r5, #0 - add r2, r4, #0 - bl GX_LoadOBJPltt - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021E4118 -MOD05_021E4118: ; 0x021E4118 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r4, r2, #0 - bl FUN_02020350 - add r6, r0, #0 - add r0, r5, #0 - add r1, r4, #0 - bl DC_FlushRange - add r0, r6, #0 - mov r1, #1 - bl FUN_020B1A14 - add r1, r0, #0 - add r0, r5, #0 - add r2, r4, #0 - bl GX_LoadOBJ - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021E4140 -MOD05_021E4140: ; 0x021E4140 - push {r4, lr} - mov r1, #0x30 - bl AllocFromHeap - mov r1, #0 - mov r2, #0x30 - add r4, r0, #0 - bl memset - add r0, r4, #0 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4158 -MOD05_021E4158: ; 0x021E4158 - ldr r3, _021E415C ; =FreeToHeap - bx r3 - .balign 4, 0 -_021E415C: .word FreeToHeap - - thumb_func_start MOD05_021E4160 -MOD05_021E4160: ; 0x021E4160 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r0, #0x2e - ldrb r0, [r0] - add r4, r1, #0 - add r6, r2, #0 - add r7, r3, #0 - cmp r0, #0 - beq _021E4176 - bl ErrorHandling -_021E4176: - ldr r3, [sp, #0x1c] - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021E35B0 - add r0, r5, #0 - ldr r2, [sp, #0x18] - ldr r3, [sp, #0x1c] - add r0, #0x14 - add r1, r7, #0 - bl MOD05_021E35B0 - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x24] - str r0, [r5, #0x28] - add r0, r5, #0 - add r0, #0x2c - strb r1, [r0] - add r0, r5, #0 - ldr r1, [sp, #0x28] - add r0, #0x2d - strb r1, [r0] - add r0, sp, #0x2c - ldrb r1, [r0] - add r0, r5, #0 - add r0, #0x2f - strb r1, [r0] - mov r0, #1 - add r5, #0x2e - strb r0, [r5] - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E41B8 -MOD05_021E41B8: ; 0x021E41B8 - push {r4, r5, r6, lr} - sub sp, #8 - add r5, r0, #0 - add r1, r5, #0 - add r1, #0x2e - ldrb r1, [r1] - cmp r1, #0 - bne _021E41CE - add sp, #8 - mov r0, #1 - pop {r4, r5, r6, pc} -_021E41CE: - bl MOD05_021E35C0 - add r4, r0, #0 - add r0, r5, #0 - add r0, #0x14 - bl MOD05_021E35C0 - add r0, r5, #0 - add r0, #0x2c - ldrb r0, [r0] - ldr r2, [r5] - ldr r6, [r5, #0x14] - lsr r1, r0, #1 - sub r1, r2, r1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 - add r1, r5, #0 - add r1, #0x2d - ldrb r2, [r1] - add r0, r3, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsr r1, r2, #1 - str r0, [sp] - add r0, r5, #0 - sub r1, r6, r1 - add r0, #0x2f - lsl r1, r1, #0x10 - ldrb r0, [r0] - asr r1, r1, #0x10 - add r2, r1, r2 - str r0, [sp, #4] - lsl r2, r2, #0x10 - ldr r0, [r5, #0x28] - asr r2, r2, #0x10 - bl MOD05_021E4338 - add r0, r4, #0 - add sp, #8 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4220 -MOD05_021E4220: ; 0x021E4220 - push {r4, lr} - mov r1, #0x30 - bl AllocFromHeap - mov r1, #0 - mov r2, #0x30 - add r4, r0, #0 - bl memset - add r0, r4, #0 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4238 -MOD05_021E4238: ; 0x021E4238 - ldr r3, _021E423C ; =FreeToHeap - bx r3 - .balign 4, 0 -_021E423C: .word FreeToHeap - - thumb_func_start MOD05_021E4240 -MOD05_021E4240: ; 0x021E4240 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r0, #0x2e - ldrb r0, [r0] - add r4, r1, #0 - add r6, r2, #0 - add r7, r3, #0 - cmp r0, #0 - beq _021E4256 - bl ErrorHandling -_021E4256: - ldr r3, [sp, #0x1c] - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021E35B0 - add r0, r5, #0 - ldr r2, [sp, #0x18] - ldr r3, [sp, #0x1c] - add r0, #0x14 - add r1, r7, #0 - bl MOD05_021E35B0 - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x24] - str r0, [r5, #0x28] - add r0, r5, #0 - add r0, #0x2c - strb r1, [r0] - add r0, r5, #0 - ldr r1, [sp, #0x28] - add r0, #0x2d - strb r1, [r0] - add r0, sp, #0x2c - ldrb r1, [r0] - add r0, r5, #0 - add r0, #0x2f - strb r1, [r0] - mov r0, #1 - add r5, #0x2e - strb r0, [r5] - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4298 -MOD05_021E4298: ; 0x021E4298 - push {r4, r5, r6, lr} - sub sp, #8 - add r5, r0, #0 - add r0, #0x2e - ldrb r0, [r0] - cmp r0, #0 - bne _021E42AC - add sp, #8 - mov r0, #1 - pop {r4, r5, r6, pc} -_021E42AC: - add r0, r5, #0 - add r0, #0x2c - ldrb r0, [r0] - ldr r2, [r5] - ldr r4, [r5, #0x14] - lsr r1, r0, #1 - sub r1, r2, r1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 - add r1, r5, #0 - add r1, #0x2d - ldrb r2, [r1] - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r1, r2, #1 - sub r1, r4, r1 - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - asr r0, r0, #0x10 - str r0, [sp] - mov r0, #0 - add r2, r1, r2 - str r0, [sp, #4] - lsl r2, r2, #0x10 - ldr r0, [r5, #0x28] - asr r2, r2, #0x10 - bl MOD05_021E4338 - add r0, r5, #0 - bl MOD05_021E35C0 - add r4, r0, #0 - add r0, r5, #0 - add r0, #0x14 - bl MOD05_021E35C0 - add r0, r5, #0 - add r0, #0x2c - ldrb r0, [r0] - ldr r2, [r5] - ldr r6, [r5, #0x14] - lsr r1, r0, #1 - sub r1, r2, r1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 - add r1, r5, #0 - add r1, #0x2d - ldrb r2, [r1] - add r0, r3, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsr r1, r2, #1 - str r0, [sp] - add r0, r5, #0 - sub r1, r6, r1 - add r0, #0x2f - lsl r1, r1, #0x10 - ldrb r0, [r0] - asr r1, r1, #0x10 - add r2, r1, r2 - str r0, [sp, #4] - lsl r2, r2, #0x10 - ldr r0, [r5, #0x28] - asr r2, r2, #0x10 - bl MOD05_021E4338 - add r0, r4, #0 - add sp, #8 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4338 -MOD05_021E4338: ; 0x021E4338 - push {r3, r4, r5, lr} - sub sp, #8 - ldr r5, [sp, #0x18] - add r4, r1, #0 - cmp r5, #0 - ble _021E4390 - cmp r2, #0 - ble _021E4390 - cmp r3, r5 - beq _021E4390 - cmp r4, r2 - beq _021E4390 - cmp r3, #0 - bge _021E4356 - mov r3, #0 -_021E4356: - mov r1, #1 - lsl r1, r1, #8 - cmp r5, r1 - ble _021E4360 - add r5, r1, #0 -_021E4360: - cmp r4, #0 - bge _021E4366 - mov r4, #0 -_021E4366: - mov r1, #1 - lsl r1, r1, #8 - cmp r2, r1 - ble _021E4370 - add r2, r1, #0 -_021E4370: - sub r1, r5, r3 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - str r1, [sp] - sub r1, r2, r4 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - str r1, [sp, #4] - lsl r2, r3, #0x10 - add r1, sp, #8 - lsl r3, r4, #0x10 - ldrb r1, [r1, #0x14] - lsr r2, r2, #0x10 - lsr r3, r3, #0x10 - bl FUN_020196F4 -_021E4390: - add sp, #8 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021E4394 -MOD05_021E4394: ; 0x021E4394 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - mov r0, #4 - mov r1, #0xcc - bl AllocFromHeap - mov r1, #0 - mov r2, #0xcc - add r7, r0, #0 - bl memset - mov r4, #0 - add r5, r7, #0 -_021E43AE: - add r0, r6, #0 - bl MOD05_021E4220 - str r0, [r5, #4] - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #0x30 - blt _021E43AE - add r0, r7, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E43C4 -MOD05_021E43C4: ; 0x021E43C4 - push {r4, r5, r6, lr} - add r6, r0, #0 - mov r4, #0 - add r5, r6, #0 -_021E43CC: - ldr r0, [r5, #4] - bl MOD05_021E4238 - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #0x30 - blt _021E43CC - add r0, r6, #0 - bl FreeToHeap - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E43E4 -MOD05_021E43E4: ; 0x021E43E4 - push {r3, r4} - str r3, [r0] - ldr r3, _021E4420 ; =0xFFFFFFF8 - add r3, sp - ldrb r4, [r3, #0x10] - add r3, r0, #0 - add r3, #0xc9 - strb r4, [r3] - add r3, r0, #0 - add r3, #0xc6 - strb r1, [r3] - add r1, r0, #0 - add r1, #0xc7 - strb r2, [r1] - add r1, r0, #0 - mov r2, #0 - add r1, #0xc4 - strb r2, [r1] - add r1, r0, #0 - add r1, #0xc5 - strb r2, [r1] - add r1, r0, #0 - add r1, #0xc8 - strb r2, [r1] - mov r1, #1 - add r0, #0xca - strb r1, [r0] - pop {r3, r4} - bx lr - nop -_021E4420: .word 0xFFFFFFF8 - - thumb_func_start MOD05_021E4424 -MOD05_021E4424: ; 0x021E4424 - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - add r6, r0, #0 - add r0, #0xca - ldrb r0, [r0] - cmp r0, #0 - bne _021E4438 - add sp, #0x1c - mov r0, #1 - pop {r4, r5, r6, r7, pc} -_021E4438: - add r0, r6, #0 - add r0, #0xc4 - ldrb r0, [r0] - cmp r0, #0x30 - bhs _021E44BC - mov r1, #0xc8 - ldrsb r0, [r6, r1] - sub r2, r0, #1 - add r0, r6, #0 - add r0, #0xc8 - strb r2, [r0] - ldrsb r0, [r6, r1] - cmp r0, #0 - bgt _021E44BC - add r0, r6, #0 - add r0, #0xc7 - ldrb r1, [r0] - add r0, r6, #0 - add r0, #0xc8 - strb r1, [r0] - add r0, r6, #0 - add r0, #0xc4 - ldrb r0, [r0] - mov r1, #0x1d - lsr r3, r0, #0x1f - lsl r2, r0, #0x1d - sub r2, r2, r3 - ror r2, r1 - add r2, r3, r2 - ldr r1, _021E4518 ; =UNK05_021F745C - mov r3, #0x20 - ldrb r1, [r1, r2] - lsr r2, r0, #3 - lsl r4, r2, #5 - mov r2, #0xb0 - sub r2, r2, r4 - str r2, [sp] - add r2, r6, #0 - add r2, #0xc6 - ldrb r2, [r2] - lsl r0, r0, #2 - lsl r1, r1, #5 - str r2, [sp, #4] - ldr r2, [r6] - add r0, r6, r0 - str r2, [sp, #8] - str r3, [sp, #0xc] - add r2, r6, #0 - str r3, [sp, #0x10] - add r2, #0xc9 - ldrb r2, [r2] - sub r3, #0x30 - add r1, #0x10 - str r2, [sp, #0x14] - ldr r0, [r0, #4] - add r2, r1, #0 - sub r3, r3, r4 - bl MOD05_021E4240 - add r0, r6, #0 - add r0, #0xc4 - ldrb r0, [r0] - add r1, r0, #1 - add r0, r6, #0 - add r0, #0xc4 - strb r1, [r0] -_021E44BC: - add r0, r6, #0 - add r0, #0xc5 - ldrb r4, [r0] - add r0, r6, #0 - add r0, #0xc4 - ldrb r0, [r0] - cmp r4, r0 - bge _021E44F4 - lsl r0, r4, #2 - add r7, r6, #0 - add r5, r6, r0 - add r7, #0xc5 -_021E44D4: - ldr r0, [r5, #4] - bl MOD05_021E4298 - str r0, [sp, #0x18] - cmp r0, #1 - bne _021E44E6 - ldrb r0, [r7] - add r0, r0, #1 - strb r0, [r7] -_021E44E6: - add r0, r6, #0 - add r0, #0xc4 - ldrb r0, [r0] - add r4, r4, #1 - add r5, r5, #4 - cmp r4, r0 - blt _021E44D4 -_021E44F4: - add r0, r6, #0 - add r0, #0xc5 - ldrb r0, [r0] - cmp r0, #0x30 - blo _021E4510 - ldr r0, [sp, #0x18] - cmp r0, #1 - bne _021E4510 - mov r0, #0 - add r6, #0xca - strb r0, [r6] - add sp, #0x1c - mov r0, #1 - pop {r4, r5, r6, r7, pc} -_021E4510: - mov r0, #0 - add sp, #0x1c - pop {r4, r5, r6, r7, pc} - nop -_021E4518: .word UNK05_021F745C - - thumb_func_start MOD05_021E451C -MOD05_021E451C: ; 0x021E451C - push {r3, lr} - mov r1, #0x1c - bl AllocFromHeap - add r3, r0, #0 - mov r2, #0x1c - mov r1, #0 -_021E452A: - strb r1, [r3] - add r3, r3, #1 - sub r2, r2, #1 - bne _021E452A - pop {r3, pc} - - thumb_func_start MOD05_021E4534 -MOD05_021E4534: ; 0x021E4534 - ldr r3, _021E4538 ; =FreeToHeap - bx r3 - .balign 4, 0 -_021E4538: .word FreeToHeap - - thumb_func_start MOD05_021E453C -MOD05_021E453C: ; 0x021E453C - push {r4, lr} - add r4, r1, #0 - ldr r1, [sp, #8] - str r1, [r0] - ldr r1, _021E4560 ; =0xFFFFFFF8 - add r1, sp - ldrb r1, [r1, #0x14] - strb r1, [r0, #0x19] - mov r1, #1 - strb r1, [r0, #0x18] - add r1, r2, #0 - add r2, r3, #0 - add r0, r0, #4 - add r3, r4, #0 - bl MOD05_021E35B0 - pop {r4, pc} - nop -_021E4560: .word 0xFFFFFFF8 - - thumb_func_start MOD05_021E4564 -MOD05_021E4564: ; 0x021E4564 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldrb r0, [r5, #0x18] - cmp r0, #0 - bne _021E4572 - mov r0, #1 - pop {r4, r5, r6, pc} -_021E4572: - ldr r0, [r5, #4] - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r5, #4 - bl MOD05_021E35C0 - ldr r2, [r5, #4] - add r6, r0, #0 - lsl r2, r2, #0x10 - ldrb r3, [r5, #0x19] - ldr r0, [r5] - add r1, r4, #0 - lsr r2, r2, #0x10 - bl MOD05_021E45A0 - cmp r6, #1 - bne _021E459C - mov r0, #0 - strb r0, [r5, #0x18] - mov r0, #1 - pop {r4, r5, r6, pc} -_021E459C: - mov r0, #0 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021E45A0 -MOD05_021E45A0: ; 0x021E45A0 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - str r0, [sp, #8] - asr r0, r2, #4 - add r4, r1, #0 - lsl r1, r0, #1 - lsl r0, r1, #1 - ldr r2, _021E4680 ; =UNK_020FFA38 - add r1, r1, #1 - lsl r1, r1, #1 - ldrsh r0, [r2, r0] - ldrsh r1, [r2, r1] - str r3, [sp, #0xc] - bl FX_Div - str r0, [sp, #0x18] - asr r0, r4, #4 - lsl r1, r0, #1 - lsl r0, r1, #1 - ldr r2, _021E4680 ; =UNK_020FFA38 - add r1, r1, #1 - lsl r1, r1, #1 - ldrsh r0, [r2, r0] - ldrsh r1, [r2, r1] - bl FX_Div - str r0, [sp, #0x10] - ldr r0, [sp, #0x18] - mov r5, #0 - asr r0, r0, #0x1f - str r0, [sp, #0x1c] - ldr r0, [sp, #0x10] - asr r0, r0, #0x1f - str r0, [sp, #0x14] -_021E45E4: - mov r0, #0x5f - sub r0, r0, r5 - lsl r6, r0, #0xc - asr r4, r6, #0x1f - ldr r0, [sp, #0x18] - ldr r1, [sp, #0x1c] - add r2, r6, #0 - add r3, r4, #0 - bl _ll_mul - mov r2, #2 - lsl r2, r2, #0xa - add r2, r0, r2 - ldr r0, _021E4684 ; =0x00000000 - adc r1, r0 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - asr r7, r1, #0xc - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - add r2, r6, #0 - add r3, r4, #0 - bl _ll_mul - mov r2, #2 - lsl r2, r2, #0xa - add r2, r0, r2 - ldr r0, _021E4684 ; =0x00000000 - adc r1, r0 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - asr r0, r1, #0xc - mov r1, #0x80 - add r4, r7, #0 - add r6, r0, #0 - mov r2, #0x80 - sub r0, r2, r0 - sub r1, r1, r7 - add r4, #0x80 - add r6, #0x80 - add r3, r0, #0 - cmp r0, r1 - ble _021E4642 - add r3, r1, #0 - add r1, r0, #0 -_021E4642: - cmp r6, r4 - ble _021E464C - add r0, r6, #0 - add r6, r4, #0 - add r4, r0, #0 -_021E464C: - add r0, r1, #1 - str r0, [sp] - ldr r0, [sp, #0xc] - add r1, r5, #0 - str r0, [sp, #4] - ldr r0, [sp, #8] - add r2, r5, #1 - bl MOD05_021E4338 - add r0, r4, #1 - str r0, [sp] - ldr r0, [sp, #0xc] - mov r1, #0xbf - str r0, [sp, #4] - mov r2, #0xc0 - ldr r0, [sp, #8] - sub r1, r1, r5 - sub r2, r2, r5 - add r3, r6, #0 - bl MOD05_021E4338 - add r5, r5, #1 - cmp r5, #0x60 - blt _021E45E4 - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021E4680: .word UNK_020FFA38 -_021E4684: .word 0x00000000 - - thumb_func_start MOD05_021E4688 -MOD05_021E4688: ; 0x021E4688 - push {r3, r4, r5, r6, r7, lr} - mov r1, #0x24 - add r6, r0, #0 - bl AllocFromHeap - mov r1, #0 - mov r2, #0x24 - add r7, r0, #0 - bl memset - mov r4, #0 - add r5, r7, #0 -_021E46A0: - add r0, r6, #0 - bl MOD05_021E451C - add r4, r4, #1 - stmia r5!, {r0} - cmp r4, #8 - blt _021E46A0 - add r0, r7, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E46B4 -MOD05_021E46B4: ; 0x021E46B4 - push {r4, r5, r6, lr} - add r6, r0, #0 - mov r4, #0 - add r5, r6, #0 -_021E46BC: - ldr r0, [r5] - bl MOD05_021E4534 - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #8 - blt _021E46BC - add r0, r6, #0 - bl FreeToHeap - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E46D4 -MOD05_021E46D4: ; 0x021E46D4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - str r1, [sp, #0xc] - ldr r4, _021E474C ; =UNK05_021F74C8 - str r0, [sp, #8] - str r2, [sp, #0x10] - str r3, [sp, #0x14] - mov r6, #0 - add r5, r0, #0 -_021E46E6: - ldrh r1, [r4] - ldr r0, _021E4750 ; =0x0000FFFF - mul r0, r1 - mov r1, #0x5a - lsl r1, r1, #2 - bl _s32_div_f - add r7, r0, #0 - ldrh r1, [r4, #2] - ldr r0, _021E4750 ; =0x0000FFFF - mul r0, r1 - mov r1, #0x5a - lsl r1, r1, #2 - bl _s32_div_f - add r3, r0, #0 - ldr r0, [sp, #0x10] - lsl r2, r7, #0x10 - str r0, [sp] - ldr r0, [sp, #0x14] - lsl r3, r3, #0x10 - str r0, [sp, #4] - ldr r0, [r5] - ldr r1, [sp, #0xc] - lsr r2, r2, #0x10 - lsr r3, r3, #0x10 - bl MOD05_021E453C - add r6, r6, #1 - add r4, r4, #4 - add r5, r5, #4 - cmp r6, #8 - blt _021E46E6 - ldr r0, [sp, #8] - mov r1, #1 - add r0, #0x20 - strb r1, [r0] - add r1, #0xff - str r1, [sp] - str r0, [sp, #8] - ldr r0, [sp, #0x14] - mov r1, #0x5d - str r0, [sp, #4] - ldr r0, [sp, #0x10] - mov r2, #0x63 - mov r3, #0 - bl MOD05_021E4338 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E474C: .word UNK05_021F74C8 -_021E4750: .word 0x0000FFFF - - thumb_func_start MOD05_021E4754 -MOD05_021E4754: ; 0x021E4754 - push {r4, r5, r6, lr} - add r6, r0, #0 - add r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - bne _021E4764 - mov r0, #1 - pop {r4, r5, r6, pc} -_021E4764: - mov r4, #0 - add r5, r6, #0 -_021E4768: - ldr r0, [r5] - bl MOD05_021E4564 - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #8 - blt _021E4768 - cmp r0, #1 - bne _021E4784 - mov r0, #0 - add r6, #0x20 - strb r0, [r6] - mov r0, #1 - pop {r4, r5, r6, pc} -_021E4784: - mov r0, #0 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021E4788 -MOD05_021E4788: ; 0x021E4788 - push {r4, lr} - mov r0, #4 - mov r1, #0xe8 - bl AllocFromHeap - mov r1, #0 - mov r2, #0xe8 - add r4, r0, #0 - bl memset - add r0, r4, #0 - pop {r4, pc} - - thumb_func_start MOD05_021E47A0 -MOD05_021E47A0: ; 0x021E47A0 - push {r4, lr} - add r4, r0, #0 - add r1, r4, #0 - add r1, #0xe0 - ldr r1, [r1] - cmp r1, #0 - beq _021E47B2 - bl MOD05_021E4918 -_021E47B2: - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E47BC -MOD05_021E47BC: ; 0x021E47BC - push {r3, r4, r5, r6, r7, lr} - add r4, r0, #0 - ldr r0, [sp, #0x18] - add r6, r1, #0 - str r0, [sp, #0x18] - add r0, r6, #0 - add r0, #0xe0 - ldr r0, [r0] - add r7, r2, #0 - add r5, r3, #0 - cmp r0, #0 - beq _021E47D8 - bl ErrorHandling -_021E47D8: - mov r1, #0 - str r1, [r4, #0x18] - ldr r0, [r4, #0x10] - add r4, #0x18 - ldr r0, [r0, #4] - add r3, r7, #0 - ldr r2, [r0, #0x1c] - add r0, r6, #0 - add r0, #0xd8 - str r2, [r0] - add r0, r6, #0 - str r1, [r6, #0x14] - add r0, #0xe4 - str r4, [r0] - add r0, r6, #0 - mov r2, #0xff - bl MOD05_021E35B0 - mov r4, #0 -_021E47FE: - add r0, r4, #0 - add r1, r5, #0 - bl _u32_div_f - ldr r0, [sp, #0x18] - mul r0, r1 - add r1, r5, #0 - bl _u32_div_f - add r7, r0, #0 - add r0, r4, #0 - add r1, r5, #0 - bl _u32_div_f - mov r1, #1 - tst r0, r1 - bne _021E4826 - add r0, r6, r4 - strb r7, [r0, #0x18] - b _021E482E -_021E4826: - ldr r0, [sp, #0x18] - sub r1, r0, r7 - add r0, r6, r4 - strb r1, [r0, #0x18] -_021E482E: - add r4, r4, #1 - cmp r4, #0xc0 - blt _021E47FE - ldr r0, _021E4878 ; =0x04000048 - mov r1, #0x3f - ldrh r3, [r0] - ldr r2, [sp, #0x1c] - bic r3, r1 - orr r3, r2 - mov r2, #0x20 - orr r3, r2 - strh r3, [r0] - ldrh r3, [r0, #2] - bic r3, r1 - ldr r1, [sp, #0x20] - orr r1, r3 - strh r1, [r0, #2] - add r1, r0, #0 - mov r3, #0 - sub r1, #8 - strh r3, [r1] - mov r1, #0xc0 - sub r0, r0, #4 - strh r1, [r0] - lsl r3, r2, #0x15 - ldr r1, [r3] - ldr r0, _021E487C ; =0xFFFF1FFF - and r1, r0 - lsl r0, r2, #8 - orr r0, r1 - str r0, [r3] - ldr r0, _021E4880 ; =MOD05_021E4884 - add r1, r6, #0 - lsl r2, r2, #5 - bl FUN_0200CA98 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021E4878: .word 0x04000048 -_021E487C: .word 0xFFFF1FFF -_021E4880: .word MOD05_021E4884 - - thumb_func_start MOD05_021E4884 -MOD05_021E4884: ; 0x021E4884 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - add r0, r4, #0 - add r0, #0xd8 - ldr r0, [r0] - ldr r1, _021E48B8 ; =MOD05_021E48EC - add r2, r4, #0 - bl MOD05_021F4624 - add r1, r4, #0 - add r1, #0xdc - str r0, [r1] - mov r2, #1 - ldr r0, _021E48BC ; =MOD05_021E48C0 - add r1, r4, #0 - lsl r2, r2, #0xa - bl FUN_0200CA98 - add r4, #0xe0 - str r0, [r4] - add r0, r5, #0 - bl FUN_0200CAB4 - pop {r3, r4, r5, pc} - nop -_021E48B8: .word MOD05_021E48EC -_021E48BC: .word MOD05_021E48C0 - - thumb_func_start MOD05_021E48C0 -MOD05_021E48C0: ; 0x021E48C0 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #0x14] - cmp r0, #0 - beq _021E48D0 - cmp r0, #1 - beq _021E48E2 - pop {r4, pc} -_021E48D0: - add r0, r4, #0 - bl MOD05_021E35C0 - cmp r0, #1 - bne _021E48E8 - ldr r0, [r4, #0x14] - add r0, r0, #1 - str r0, [r4, #0x14] - pop {r4, pc} -_021E48E2: - add r0, r4, #0 - bl MOD05_021E4918 -_021E48E8: - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E48EC -MOD05_021E48EC: ; 0x021E48EC - ldr r0, _021E4910 ; =0x04000006 - ldrh r0, [r0] - cmp r0, #0xc0 - bge _021E490E - add r0, r1, r0 - ldrb r0, [r0, #0x18] - ldr r2, [r1] - add r0, r2, r0 - cmp r0, #0xff - ble _021E4902 - mov r0, #0xff -_021E4902: - lsl r0, r0, #0x18 - ldr r1, _021E4914 ; =0x04000040 - lsr r0, r0, #0x18 - strh r0, [r1] - mov r0, #0xc0 - strh r0, [r1, #4] -_021E490E: - bx lr - .balign 4, 0 -_021E4910: .word 0x04000006 -_021E4914: .word 0x04000040 - - thumb_func_start MOD05_021E4918 -MOD05_021E4918: ; 0x021E4918 - push {r4, lr} - mov r2, #1 - lsl r2, r2, #0x1a - add r4, r0, #0 - ldr r1, [r2] - ldr r0, _021E4958 ; =0xFFFF1FFF - and r0, r1 - str r0, [r2] - add r0, r4, #0 - add r0, #0xe4 - ldr r0, [r0] - mov r1, #1 - str r1, [r0] - add r0, r4, #0 - add r0, #0xdc - ldr r0, [r0] - bl MOD05_021F4648 - add r0, r4, #0 - mov r1, #0 - add r0, #0xdc - str r1, [r0] - add r0, r4, #0 - add r0, #0xe0 - ldr r0, [r0] - bl FUN_0200CAB4 - mov r0, #0 - add r4, #0xe0 - str r0, [r4] - pop {r4, pc} - nop -_021E4958: .word 0xFFFF1FFF - - thumb_func_start MOD05_021E495C -MOD05_021E495C: ; 0x021E495C - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - ldr r0, [r5] - mov r6, #1 - add r1, r0, #0 - tst r1, r6 - bne _021E4980 - mov r1, #0x72 - lsl r1, r1, #4 - tst r1, r0 - bne _021E4976 - cmp r0, #0 - bne _021E497A -_021E4976: - mov r6, #0 - b _021E4980 -_021E497A: - bl ErrorHandling - mov r6, #0 -_021E4980: - ldr r0, [r5, #4] - bl GetFirstAliveMonInParty_CrashIfNone - add r7, r0, #0 - ldr r0, [r5, #8] - bl GetFirstAliveMonInParty_CrashIfNone - str r0, [sp] - add r0, r7, #0 - mov r1, #0xa0 - mov r2, #0 - bl GetMonData - add r7, r0, #0 - ldr r0, [sp] - mov r1, #0xa0 - mov r2, #0 - bl GetMonData - mov r1, #0x55 - lsl r1, r1, #2 - ldr r1, [r5, r1] - sub r0, r0, r7 - cmp r1, #0xc - bhi _021E49E2 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021E49BE: ; jump table - .short _021E49D8 - _021E49BE - 2 ; case 0 - .short _021E49D8 - _021E49BE - 2 ; case 1 - .short _021E49D8 - _021E49BE - 2 ; case 2 - .short _021E49D8 - _021E49BE - 2 ; case 3 - .short _021E49D8 - _021E49BE - 2 ; case 4 - .short _021E49E0 - _021E49BE - 2 ; case 5 - .short _021E49D8 - _021E49BE - 2 ; case 6 - .short _021E49DC - _021E49BE - 2 ; case 7 - .short _021E49D8 - _021E49BE - 2 ; case 8 - .short _021E49D8 - _021E49BE - 2 ; case 9 - .short _021E49D8 - _021E49BE - 2 ; case 10 - .short _021E49D8 - _021E49BE - 2 ; case 11 - .short _021E49D8 - _021E49BE - 2 ; case 12 -_021E49D8: - mov r4, #0 - b _021E49E2 -_021E49DC: - mov r4, #2 - b _021E49E2 -_021E49E0: - mov r4, #4 -_021E49E2: - cmp r0, #0 - ble _021E49E8 - add r4, r4, #1 -_021E49E8: - mov r0, #6 - mul r0, r6 - add r0, r4, r0 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021E49F0 -MOD05_021E49F0: ; 0x021E49F0 - push {r4, r5, r6, lr} - ldr r4, [sp, #0x14] - add r5, r0, #0 - mov r0, #0 - strb r0, [r4] - mov r0, #0xff - strb r0, [r4, #1] - lsl r0, r3, #0xc - add r6, r1, #0 - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ll_mul - mov r2, #2 - add r3, r0, #0 - asr r0, r5, #0xc - mov r5, #0 - lsl r2, r2, #0xa - add r3, r3, r2 - adc r1, r5 - lsl r1, r1, #0x14 - lsr r3, r3, #0xc - orr r3, r1 - asr r3, r3, #0xc - lsr r1, r3, #0x1f - add r1, r3, r1 - asr r1, r1, #1 - sub r0, r0, r1 - strb r0, [r4, #2] - ldr r0, _021E4A38 ; =MOD05_021E4A64 - add r1, r4, #0 - lsr r2, r2, #1 - strb r6, [r4, #3] - bl FUN_0200CA98 - pop {r4, r5, r6, pc} - .balign 4, 0 -_021E4A38: .word MOD05_021E4A64 - - thumb_func_start MOD05_021E4A3C -MOD05_021E4A3C: ; 0x021E4A3C - push {r3, r4, r5, lr} - add r5, r0, #0 - lsl r0, r2, #0xc - add r4, r1, #0 - asr r1, r0, #0x1f - asr r3, r5, #0x1f - add r2, r5, #0 - bl _ll_mul - mov r2, #2 - mov r3, #0 - lsl r2, r2, #0xa - add r2, r0, r2 - adc r1, r3 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - asr r0, r1, #0xc - add r0, r4, r0 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021E4A64 -MOD05_021E4A64: ; 0x021E4A64 - push {r3, r4, r5, lr} - ldrb r2, [r1, #4] - ldrb r3, [r1, #3] - cmp r2, #0 - bne _021E4A8C - ldrb r4, [r1] - ldrb r2, [r1, #2] - ldrb r1, [r1, #1] - lsl r5, r4, #8 - mov r4, #0xff - lsl r4, r4, #8 - and r5, r4 - orr r5, r1 - ldr r1, _021E4AB0 ; =0x04000040 - lsl r2, r2, #8 - and r2, r4 - strh r5, [r1] - orr r2, r3 - strh r2, [r1, #4] - b _021E4AA8 -_021E4A8C: - ldrb r4, [r1] - ldrb r2, [r1, #2] - ldrb r1, [r1, #1] - lsl r5, r4, #8 - mov r4, #0xff - lsl r4, r4, #8 - and r5, r4 - orr r5, r1 - ldr r1, _021E4AB4 ; =0x04000042 - lsl r2, r2, #8 - and r2, r4 - strh r5, [r1] - orr r2, r3 - strh r2, [r1, #4] -_021E4AA8: - bl FUN_0200CAB4 - pop {r3, r4, r5, pc} - nop -_021E4AB0: .word 0x04000040 -_021E4AB4: .word 0x04000042 - - thumb_func_start MOD05_021E4AB8 -MOD05_021E4AB8: ; 0x021E4AB8 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021E4ACC ; =0x0400006C - ldr r1, [r1] - bl GXx_SetMasterBrightness_ - add r0, r4, #0 - bl FUN_0200CAB4 - pop {r4, pc} - .balign 4, 0 -_021E4ACC: .word 0x0400006C - - thumb_func_start MOD05_021E4AD0 -MOD05_021E4AD0: ; 0x021E4AD0 - ldr r3, _021E4ADC ; =FUN_0200CA98 - mov r2, #1 - add r1, r0, #0 - ldr r0, _021E4AE0 ; =MOD05_021E4AB8 - lsl r2, r2, #0xa - bx r3 - .balign 4, 0 -_021E4ADC: .word FUN_0200CA98 -_021E4AE0: .word MOD05_021E4AB8 - - thumb_func_start MOD05_021E4AE4 -MOD05_021E4AE4: ; 0x021E4AE4 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - add r5, r1, #0 - str r2, [sp] - add r0, r2, #0 - add r2, r3, #0 - mov r1, #0x42 - mov r3, #0 - bl MOD05_021F5990 - mov r1, #0x2c - mov r2, #0 - add r6, r0, #0 - bl MOD05_021F5A20 - mov r1, #0 - mov r2, #0x2c - add r4, r0, #0 - bl memset - ldr r0, [sp] - lsl r1, r5, #3 - str r0, [r4] - mov r0, #0x42 - str r0, [r4, #4] - str r5, [r4, #8] - str r6, [r4, #0x14] - str r7, [r4, #0x18] - add r0, r6, #0 - mov r2, #0 - bl MOD05_021F5A20 - str r0, [r4, #0x1c] - add r0, r4, #0 - bl MOD05_021E4C80 - add r0, r4, #0 - bl MOD05_021E4C34 - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4B38 -MOD05_021E4B38: ; 0x021E4B38 - ldr r3, _021E4B40 ; =MOD05_021E4D90 - str r1, [r0, #0xc] - bx r3 - nop -_021E4B40: .word MOD05_021E4D90 - - thumb_func_start MOD05_021E4B44 -MOD05_021E4B44: ; 0x021E4B44 - push {r3, r4, lr} - sub sp, #0x14 - ldr r4, [sp, #0x20] - str r4, [sp] - ldr r4, [sp, #0x24] - 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] - bl MOD05_021E4DEC - add sp, #0x14 - pop {r3, r4, pc} - - thumb_func_start MOD05_021E4B64 -MOD05_021E4B64: ; 0x021E4B64 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD05_021E4D2C - cmp r0, #0 - beq _021E4B78 - bl ErrorHandling - pop {r3, r4, r5, pc} -_021E4B78: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021E4C98 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4B84 -MOD05_021E4B84: ; 0x021E4B84 - push {r3, r4, r5, lr} - add r4, r1, #0 - ldr r1, [r4] - add r5, r0, #0 - cmp r1, #0x20 - beq _021E4B9E -_021E4B90: - add r0, r5, #0 - bl MOD05_021E4B64 - add r4, r4, #4 - ldr r1, [r4] - cmp r1, #0x20 - bne _021E4B90 -_021E4B9E: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021E4BA0 -MOD05_021E4BA0: ; 0x021E4BA0 - ldr r3, _021E4BA4 ; =MOD05_021E4DB4 - bx r3 - .balign 4, 0 -_021E4BA4: .word MOD05_021E4DB4 - - thumb_func_start MOD05_021E4BA8 -MOD05_021E4BA8: ; 0x021E4BA8 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r4, [r5, #0x14] - bl MOD05_021E4DA0 - add r0, r5, #0 - bl MOD05_021E4CDC - add r0, r5, #0 - bl MOD05_021E4E5C - add r0, r5, #0 - bl MOD05_021E4C48 - ldr r1, [r5, #0x1c] - add r0, r4, #0 - bl MOD05_021F5A5C - add r0, r4, #0 - add r1, r5, #0 - bl MOD05_021F5A5C - add r0, r4, #0 - bl MOD05_021F59EC - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021E4BDC -MOD05_021E4BDC: ; 0x021E4BDC - ldr r3, _021E4BE4 ; =MOD05_021F5A20 - ldr r0, [r0, #0x14] - bx r3 - nop -_021E4BE4: .word MOD05_021F5A20 - - thumb_func_start MOD05_021E4BE8 -MOD05_021E4BE8: ; 0x021E4BE8 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r4, r3, #0 - bl MOD05_021E4BDC - add r1, r4, #0 - add r2, r5, #0 - add r6, r0, #0 - bl memset - add r0, r6, #0 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021E4C00 -MOD05_021E4C00: ; 0x021E4C00 - ldr r3, _021E4C04 ; =FreeToHeap - bx r3 - .balign 4, 0 -_021E4C04: .word FreeToHeap - - thumb_func_start MOD05_021E4C08 -MOD05_021E4C08: ; 0x021E4C08 - push {r3, lr} - bl MOD05_021E4D2C - cmp r0, #0 - bne _021E4C1A - bl ErrorHandling - mov r0, #0 - pop {r3, pc} -_021E4C1A: - ldr r0, [r0, #4] - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4C20 -MOD05_021E4C20: ; 0x021E4C20 - ldr r0, [r0, #0x18] - bx lr - - thumb_func_start MOD05_021E4C24 -MOD05_021E4C24: ; 0x021E4C24 - push {r3, lr} - bl FUN_02058738 - ldr r0, [r0, #0x3c] - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4C30 -MOD05_021E4C30: ; 0x021E4C30 - ldr r0, [r0, #4] - bx lr - - thumb_func_start MOD05_021E4C34 -MOD05_021E4C34: ; 0x021E4C34 - push {r4, lr} - add r4, r0, #0 - bl MOD05_021E4C30 - add r1, r0, #0 - mov r0, #0x6b - bl NARC_ctor - str r0, [r4, #0x20] - pop {r4, pc} - - thumb_func_start MOD05_021E4C48 -MOD05_021E4C48: ; 0x021E4C48 - ldr r3, _021E4C50 ; =NARC_dtor - ldr r0, [r0, #0x20] - bx r3 - nop -_021E4C50: .word NARC_dtor - - thumb_func_start MOD05_021E4C54 -MOD05_021E4C54: ; 0x021E4C54 - ldr r3, _021E4C5C ; =NARC_GetMemberSize - ldr r0, [r0, #0x20] - bx r3 - nop -_021E4C5C: .word NARC_GetMemberSize - - thumb_func_start MOD05_021E4C60 -MOD05_021E4C60: ; 0x021E4C60 - ldr r3, _021E4C68 ; =NARC_ReadWholeMember - ldr r0, [r0, #0x20] - bx r3 - nop -_021E4C68: .word NARC_ReadWholeMember - - thumb_func_start MOD05_021E4C6C -MOD05_021E4C6C: ; 0x021E4C6C - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - add r3, r2, #0 - ldr r0, [r5, #0x14] - ldr r1, [r5, #0x20] - add r2, r4, #0 - bl MOD05_021F5AB8 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021E4C80 -MOD05_021E4C80: ; 0x021E4C80 - push {r3, r4, r5, lr} - ldr r4, [r0, #8] - ldr r5, [r0, #0x1c] - cmp r4, #0 - beq _021E4C96 -_021E4C8A: - add r0, r5, #0 - bl MOD05_021E4D44 - add r5, #8 - sub r4, r4, #1 - bne _021E4C8A -_021E4C96: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021E4C98 -MOD05_021E4C98: ; 0x021E4C98 - push {r4, r5, r6, lr} - add r6, r1, #0 - add r5, r0, #0 - add r0, r6, #0 - bl MOD05_021E4D68 - add r1, r0, #0 - ldr r1, [r1, #4] - add r0, r5, #0 - blx r1 - add r4, r0, #0 - add r0, r5, #0 - bl MOD05_021E4D04 - add r1, r6, #0 - add r2, r4, #0 - bl MOD05_021E4D50 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4CC0 -MOD05_021E4CC0: ; 0x021E4CC0 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4] - bl MOD05_021E4D68 - add r1, r0, #0 - ldr r0, [r4, #4] - ldr r1, [r1, #8] - blx r1 - add r0, r4, #0 - bl MOD05_021E4D44 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4CDC -MOD05_021E4CDC: ; 0x021E4CDC - push {r4, r5, r6, lr} - add r6, r0, #0 - ldr r4, [r6, #8] - ldr r5, [r6, #0x1c] - cmp r4, #0 - beq _021E4D00 -_021E4CE8: - add r0, r5, #0 - bl MOD05_021E4D58 - cmp r0, #0 - bne _021E4CFA - add r0, r6, #0 - add r1, r5, #0 - bl MOD05_021E4CC0 -_021E4CFA: - add r5, #8 - sub r4, r4, #1 - bne _021E4CE8 -_021E4D00: - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4D04 -MOD05_021E4D04: ; 0x021E4D04 - push {r3, r4, r5, lr} - ldr r4, [r0, #8] - ldr r5, [r0, #0x1c] - cmp r4, #0 - beq _021E4D22 -_021E4D0E: - add r0, r5, #0 - bl MOD05_021E4D58 - cmp r0, #1 - bne _021E4D1C - add r0, r5, #0 - pop {r3, r4, r5, pc} -_021E4D1C: - add r5, #8 - sub r4, r4, #1 - bne _021E4D0E -_021E4D22: - bl ErrorHandling - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4D2C -MOD05_021E4D2C: ; 0x021E4D2C - ldr r3, [r0, #8] - ldr r0, [r0, #0x1c] - cmp r3, #0 - beq _021E4D40 -_021E4D34: - ldr r2, [r0] - cmp r2, r1 - beq _021E4D42 - add r0, #8 - sub r3, r3, #1 - bne _021E4D34 -_021E4D40: - mov r0, #0 -_021E4D42: - bx lr - - thumb_func_start MOD05_021E4D44 -MOD05_021E4D44: ; 0x021E4D44 - mov r1, #0x20 - str r1, [r0] - mov r1, #0 - str r1, [r0, #4] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021E4D50 -MOD05_021E4D50: ; 0x021E4D50 - str r1, [r0] - str r2, [r0, #4] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021E4D58 -MOD05_021E4D58: ; 0x021E4D58 - ldr r0, [r0] - cmp r0, #0x20 - bne _021E4D62 - mov r0, #1 - bx lr -_021E4D62: - mov r0, #0 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021E4D68 -MOD05_021E4D68: ; 0x021E4D68 - push {r3, lr} - ldr r1, _021E4D8C ; =UNK05_021FC820 - ldr r2, [r1] - cmp r2, #0x20 - beq _021E4D82 -_021E4D72: - cmp r2, r0 - bne _021E4D7A - add r0, r1, #0 - pop {r3, pc} -_021E4D7A: - add r1, #0xc - ldr r2, [r1] - cmp r2, #0x20 - bne _021E4D72 -_021E4D82: - bl ErrorHandling - mov r0, #0 - pop {r3, pc} - nop -_021E4D8C: .word UNK05_021FC820 - - thumb_func_start MOD05_021E4D90 -MOD05_021E4D90: ; 0x021E4D90 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #4] - ldr r1, [r4, #0xc] - bl FUN_020643C0 - str r0, [r4, #0x24] - pop {r4, pc} - - thumb_func_start MOD05_021E4DA0 -MOD05_021E4DA0: ; 0x021E4DA0 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x24] - cmp r0, #0 - beq _021E4DB2 - bl FUN_020643F0 - mov r0, #0 - str r0, [r4, #0x24] -_021E4DB2: - pop {r4, pc} - - thumb_func_start MOD05_021E4DB4 -MOD05_021E4DB4: ; 0x021E4DB4 - push {r3, lr} - ldr r0, [r0, #0x24] - cmp r0, #0 - beq _021E4DC0 - bl FUN_02064584 -_021E4DC0: - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4DC4 -MOD05_021E4DC4: ; 0x021E4DC4 - push {r4, lr} - sub sp, #8 - ldr r4, [sp, #0x10] - str r4, [sp] - ldr r4, [sp, #0x14] - str r4, [sp, #4] - ldr r0, [r0, #0x24] - bl FUN_020644E4 - add r4, r0, #0 - bne _021E4DDE - bl ErrorHandling -_021E4DDE: - add r0, r4, #0 - add sp, #8 - pop {r4, pc} - - thumb_func_start MOD05_021E4DE4 -MOD05_021E4DE4: ; 0x021E4DE4 - ldr r3, _021E4DE8 ; =FUN_02064520 - bx r3 - .balign 4, 0 -_021E4DE8: .word FUN_02064520 - - thumb_func_start MOD05_021E4DEC -MOD05_021E4DEC: ; 0x021E4DEC - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r6, r2, #0 - add r5, r1, #0 - mov r2, #0 - str r3, [sp] - mov r1, #0x24 - add r3, r2, #0 - add r7, r0, #0 - bl MOD05_021E4BE8 - add r4, r0, #0 - str r4, [r7, #0x28] - str r5, [r4] - ldr r0, [sp] - strh r6, [r4, #4] - strh r0, [r4, #6] - ldr r0, [sp, #0x20] - ldr r2, [sp, #0x28] - strh r0, [r4, #8] - ldr r0, [sp, #0x24] - ldr r3, [sp] - strh r0, [r4, #0xa] - add r0, r5, #0 - mov r1, #0x45 - bl MOD05_021F5990 - str r0, [r4, #0x10] - ldr r2, [sp, #0x2c] - ldr r3, [sp, #0x20] - add r0, r5, #0 - mov r1, #0x46 - bl MOD05_021F5990 - str r0, [r4, #0x14] - ldr r0, [sp, #0x24] - add r1, r5, #0 - bl FUN_02020E90 - str r0, [r4, #0x18] - add r0, r7, #0 - add r1, r4, #0 - add r2, r6, #0 - bl MOD05_021E4F60 - add r0, r7, #0 - str r6, [sp, #4] - bl MOD05_021E4C30 - str r0, [sp, #8] - add r0, sp, #4 - bl FUN_0201F1B4 - str r0, [r4, #0xc] - add sp, #0xc - pop {r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021E4E5C -MOD05_021E4E5C: ; 0x021E4E5C - push {r3, r4, r5, lr} - add r4, r0, #0 - ldr r5, [r4, #0x28] - cmp r5, #0 - beq _021E4E8E - ldr r0, [r5, #0xc] - bl FUN_0201F23C - add r0, r5, #0 - bl MOD05_021E4F94 - ldr r0, [r5, #0x10] - bl MOD05_021F59EC - ldr r0, [r5, #0x14] - bl MOD05_021F59EC - ldr r0, [r5, #0x18] - bl FUN_02020ED4 - add r0, r5, #0 - bl MOD05_021E4C00 - mov r0, #0 - str r0, [r4, #0x28] -_021E4E8E: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021E4E90 -MOD05_021E4E90: ; 0x021E4E90 - push {r4, lr} - sub sp, #0x20 - ldr r0, [r0, #0x28] - add r3, sp, #8 - ldr r0, [r0, #0xc] - str r0, [sp] - str r1, [sp, #4] - ldmia r2!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r2] - add r2, sp, #0x14 - str r0, [r3] - ldr r3, _021E4EE0 ; =UNK05_021F7564 - 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 - bne _021E4EC0 - bl ErrorHandling -_021E4EC0: - cmp r4, #0 - beq _021E4EDA - add r0, r4, #0 - bl FUN_0201F8E0 - mov r1, #1 - bl FUN_020BB9F4 - add r0, r4, #0 - bl FUN_0201F8E0 - bl MOD05_021DB5EC -_021E4EDA: - add r0, r4, #0 - add sp, #0x20 - pop {r4, pc} - .balign 4, 0 -_021E4EE0: .word UNK05_021F7564 - - thumb_func_start MOD05_021E4EE4 -MOD05_021E4EE4: ; 0x021E4EE4 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5, #0x28] - add r4, r2, #0 - bl MOD05_021E504C - add r1, r0, #0 - add r0, r5, #0 - add r2, r4, #0 - bl MOD05_021E4E90 - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021E4EFC -MOD05_021E4EFC: ; 0x021E4EFC - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - ldr r5, [r0, #0x28] - add r6, r1, #0 - ldr r0, [r5, #0x10] - add r1, r2, #0 - add r4, r3, #0 - bl MOD05_021F5A90 - add r7, r0, #0 - ldr r0, [r5, #0x14] - add r1, r4, #0 - bl MOD05_021F5A90 - add r1, sp, #0xc - bl FUN_0202227C - ldr r0, [r5, #0x18] - ldr r1, [sp, #0x30] - bl FUN_02021050 - add r4, r0, #0 - bne _021E4F2E - bl ErrorHandling -_021E4F2E: - add r0, r4, #0 - bl FUN_020210AC - ldr r1, [sp, #0x34] - cmp r1, #1 - bne _021E4F3C - mov r4, #0 -_021E4F3C: - str r0, [sp] - ldr r0, [sp, #0x38] - str r4, [sp, #4] - str r0, [sp, #8] - add r0, r5, #0 - add r1, r6, #0 - add r2, r7, #0 - add r3, sp, #0xc - bl MOD05_021E4FC8 - add r4, r0, #0 - bne _021E4F58 - bl ErrorHandling -_021E4F58: - add r0, r4, #0 - add sp, #0x1c - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4F60 -MOD05_021E4F60: ; 0x021E4F60 - push {r3, r4, r5, r6, r7, lr} - add r6, r1, #0 - add r5, r2, #0 - mov r1, #0x28 - add r7, r0, #0 - mul r1, r5 - mov r2, #0 - bl MOD05_021E4BDC - add r4, r0, #0 - add r0, r7, #0 - lsl r1, r5, #3 - mov r2, #0 - str r4, [r6, #0x20] - bl MOD05_021E4BDC - str r0, [r6, #0x1c] - mov r1, #0xe -_021E4F84: - str r1, [r0] - str r4, [r0, #4] - add r0, #8 - add r4, #0x28 - sub r5, r5, #1 - bne _021E4F84 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4F94 -MOD05_021E4F94: ; 0x021E4F94 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x1c] - bl MOD05_021E4C00 - ldr r0, [r4, #0x20] - bl MOD05_021E4C00 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4FA8 -MOD05_021E4FA8: ; 0x021E4FA8 - push {r3, lr} - ldrh r2, [r0, #4] - ldr r3, [r0, #0x1c] -_021E4FAE: - ldr r0, [r3] - cmp r0, r1 - bne _021E4FBA - mov r0, #0xe - str r0, [r3] - pop {r3, pc} -_021E4FBA: - add r3, #8 - sub r2, r2, #1 - bne _021E4FAE - bl ErrorHandling - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E4FC8 -MOD05_021E4FC8: ; 0x021E4FC8 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - ldrh r5, [r6, #4] - add r0, r1, #0 - ldr r1, [sp, #0x1c] - str r2, [sp] - ldr r6, [r6, #0x1c] - add r7, r3, #0 - str r1, [sp, #0x1c] - mov r4, #0 - add r2, r5, #0 - add r3, r6, #0 -_021E4FE0: - ldr r1, [r3] - cmp r1, r0 - bne _021E4FEA - ldr r0, [r3, #4] - pop {r3, r4, r5, r6, r7, pc} -_021E4FEA: - add r3, #8 - sub r2, r2, #1 - bne _021E4FE0 -_021E4FF0: - ldr r1, [r6] - cmp r1, #0xe - bne _021E4FFC - str r0, [r6] - ldr r4, [r6, #4] - b _021E5002 -_021E4FFC: - add r6, #8 - sub r5, r5, #1 - bne _021E4FF0 -_021E5002: - cmp r4, #0 - bne _021E500A - bl ErrorHandling -_021E500A: - add r0, r4, #0 - mov r1, #0 - mov r2, #0x28 - bl memset - ldr r0, [sp] - add r2, r4, #0 - str r0, [r4] - add r2, #0xc - ldmia r7!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r7!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [sp, #0x18] - str r0, [r4, #4] - ldr r0, [sp, #0x1c] - cmp r0, #0 - beq _021E5044 - bl FUN_020211AC - str r0, [r4, #0x1c] - ldr r0, [sp, #0x1c] - bl FUN_020211BC - str r0, [r4, #0x20] - ldr r0, [sp, #0x1c] - bl FUN_020211CC - str r0, [r4, #0x24] -_021E5044: - ldr r0, [sp, #0x20] - str r0, [r4, #8] - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021E504C -MOD05_021E504C: ; 0x021E504C - push {r3, lr} - ldrh r2, [r0, #4] - ldr r3, [r0, #0x1c] -_021E5052: - ldr r0, [r3] - cmp r0, r1 - bne _021E505C - ldr r0, [r3, #4] - pop {r3, pc} -_021E505C: - add r3, #8 - sub r2, r2, #1 - bne _021E5052 - bl ErrorHandling - mov r0, #0 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E506C -MOD05_021E506C: ; 0x021E506C - ldr r3, _021E5074 ; =MOD05_021E4FA8 - ldr r0, [r0, #0x28] - bx r3 - nop -_021E5074: .word MOD05_021E4FA8 - - thumb_func_start MOD05_021E5078 -MOD05_021E5078: ; 0x021E5078 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - mov r0, #0 - str r0, [sp] - ldr r0, [r4, #0x28] - add r3, r2, #0 - ldr r0, [r0, #0x10] - ldr r2, [r4, #0x20] - bl MOD05_021F5AE4 - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E5094 -MOD05_021E5094: ; 0x021E5094 - ldr r0, [r0, #0x28] - ldr r3, _021E509C ; =MOD05_021F5A90 - ldr r0, [r0, #0x10] - bx r3 - .balign 4, 0 -_021E509C: .word MOD05_021F5A90 - - thumb_func_start MOD05_021E50A0 -MOD05_021E50A0: ; 0x021E50A0 - ldr r0, [r0, #0x28] - ldr r3, _021E50A8 ; =MOD05_021F5A74 - ldr r0, [r0, #0x10] - bx r3 - .balign 4, 0 -_021E50A8: .word MOD05_021F5A74 - - thumb_func_start MOD05_021E50AC -MOD05_021E50AC: ; 0x021E50AC - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - mov r0, #0 - str r0, [sp] - ldr r0, [r4, #0x28] - add r3, r2, #0 - ldr r0, [r0, #0x14] - ldr r2, [r4, #0x20] - bl MOD05_021F5AE4 - add sp, #4 - pop {r3, r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E50C8 -MOD05_021E50C8: ; 0x021E50C8 - ldr r0, [r0, #0x28] - ldr r3, _021E50D0 ; =MOD05_021F5A74 - ldr r0, [r0, #0x14] - bx r3 - .balign 4, 0 -_021E50D0: .word MOD05_021F5A74 - - thumb_func_start MOD05_021E50D4 -MOD05_021E50D4: ; 0x021E50D4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r0, #0 - add r6, r1, #0 - add r1, r2, #0 - ldr r4, [r5, #0x28] - mov r2, #1 - add r7, r3, #0 - bl MOD05_021E4C6C - str r0, [sp, #4] - add r0, r5, #0 - bl MOD05_021E4C30 - str r0, [sp] - ldr r0, [r4, #0x18] - ldr r1, [sp, #4] - add r2, r6, #0 - add r3, r7, #0 - bl FUN_02020F54 - cmp r0, #0 - bne _021E5106 - bl ErrorHandling -_021E5106: - ldr r2, [r4, #0x18] - add r0, r5, #0 - add r1, r6, #0 - bl MOD05_021E5120 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021E5114 -MOD05_021E5114: ; 0x021E5114 - ldr r0, [r0, #0x28] - ldr r3, _021E511C ; =FUN_02020FF0 - ldr r0, [r0, #0x18] - bx r3 - .balign 4, 0 -_021E511C: .word FUN_02020FF0 - - thumb_func_start MOD05_021E5120 -MOD05_021E5120: ; 0x021E5120 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r6, r2, #0 - mov r1, #0xc - mov r2, #1 - bl MOD05_021E4BDC - add r4, r0, #0 - mov r0, #1 - str r0, [r4] - str r5, [r4, #4] - ldr r0, _021E5150 ; =MOD05_021E5158 - add r1, r4, #0 - mov r2, #0xff - str r6, [r4, #8] - bl FUN_0200CA60 - ldr r0, _021E5154 ; =MOD05_021E5174 - add r1, r4, #0 - mov r2, #0xff - bl FUN_0200CA98 - pop {r4, r5, r6, pc} - nop -_021E5150: .word MOD05_021E5158 -_021E5154: .word MOD05_021E5174 - - thumb_func_start MOD05_021E5158 -MOD05_021E5158: ; 0x021E5158 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4, #8] - ldr r1, [r4, #4] - bl FUN_020210F0 - mov r0, #1 - str r0, [r4] - add r0, r5, #0 - bl FUN_0200CAB4 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E5174 -MOD05_021E5174: ; 0x021E5174 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4] - cmp r0, #1 - bne _021E5194 - ldr r0, [r4, #8] - ldr r1, [r4, #4] - bl FUN_02021158 - add r0, r4, #0 - bl MOD05_021E4C00 - add r0, r5, #0 - bl FUN_0200CAB4 -_021E5194: - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E5198 -MOD05_021E5198: ; 0x021E5198 - push {r4, r5, r6, lr} - add r4, r3, #0 - ldr r0, [r4] - add r6, r1, #0 - add r5, r2, #0 - bl FUN_020BC0FC - cmp r0, #0 - beq _021E51C8 - bl FUN_0201B254 - cmp r0, #0 - bne _021E51C8 - ldr r0, [r4] - ldr r1, [r0, #8] - bl DC_FlushRange - ldr r0, [r4] - bl FUN_020BB59C - cmp r0, #0 - bne _021E51C8 - bl ErrorHandling -_021E51C8: - ldr r0, [r4] - bl FUN_020BC13C - ldrh r1, [r0, #0xe] - add r1, r0, r1 - ldr r1, [r1, #0xc] - add r0, r0, r1 - str r0, [r5] - cmp r5, #0 - bne _021E51E0 - bl ErrorHandling -_021E51E0: - ldr r1, [r5] - add r0, r6, #0 - bl FUN_020B80B4 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E51EC -MOD05_021E51EC: ; 0x021E51EC - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r3, #0 - bl MOD05_021E4C6C - ldr r3, [sp, #0x14] - ldr r2, [sp, #0x10] - str r0, [r3] - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021E5198 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E5208 -MOD05_021E5208: ; 0x021E5208 - 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_021E5224 -MOD05_021E5224: ; 0x021E5224 - push {r4, lr} - add r4, r1, #0 - add r1, r2, #0 - add r2, r3, #0 - bl MOD05_021E4C6C - str r0, [r4] - bl FUN_020BC13C - 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 FUN_020BC0FC - str r0, [r4, #0xc] - cmp r0, #0 - beq _021E525A - mov r2, #1 - ldr r0, _021E525C ; =MOD05_021E5208 - add r1, r4, #0 - lsl r2, r2, #0xa - bl FUN_0200CA60 -_021E525A: - pop {r4, pc} - .balign 4, 0 -_021E525C: .word MOD05_021E5208 - - thumb_func_start MOD05_021E5260 -MOD05_021E5260: ; 0x021E5260 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r4, r2, #0 - ldr r1, [sp, #0x10] - ldr r2, [sp, #0x14] - add r6, r3, #0 - bl MOD05_021E4C6C - str r0, [r5] - mov r1, #0 - bl FUN_020BC4C8 - str r0, [r5, #4] - ldr r1, [r5, #4] - ldr r2, [r4, #8] - add r0, r6, #0 - bl FUN_020BB8D0 - str r0, [r5, #8] - ldr r1, [r5, #4] - ldr r2, [r4, #8] - ldr r3, [r4, #0xc] - bl FUN_020B8110 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E5294 -MOD05_021E5294: ; 0x021E5294 - push {r4, lr} - add r4, r1, #0 - bl MOD05_021E4C30 - add r1, r0, #0 - add r0, r4, #0 - mov r2, #0x20 - bl FUN_02016B20 - pop {r4, pc} - thumb_func_start MOD05_021E52A8 MOD05_021E52A8: ; 0x021E52A8 push {r3, r4, r5, lr} @@ -40432,49 +35240,6 @@ _021F6428: .word MOD05_021F57F0 .section .rodata - .global UNK05_021F745C -UNK05_021F745C: ; 0x021F745C - .byte 0x00, 0x02, 0x05, 0x07, 0x01, 0x06, 0x03, 0x04 - - .global UNK05_021F7464 -UNK05_021F7464: ; 0x021F7464 - .word 0x00000001, 0x00000001, 0x00000000, 0x00000001 - - .global UNK05_021F7474 -UNK05_021F7474: ; 0x021F7474 - .word 0x00000000, 0x00000000, 0x00000800, 0x00000000 - .word 0x001F0101, 0x00010001, 0x00000000 - - .global UNK05_021F7490 -UNK05_021F7490: ; 0x021F7490 - .word 0x00000000, 0x00000000, 0x00000800, 0x00000000 - .word MOD05_021E0000, 0x00000001, 0x00000000 - - .global UNK05_021F74AC -UNK05_021F74AC: ; 0x021F74AC - .word 0x00000000, 0x00000000, 0x00000800, 0x00000000 - .word 0x011D0001, 0x00000300, 0x00000000 - - .global UNK05_021F74C8 -UNK05_021F74C8: ; 0x021F74C8 - .short 0x0000, 0x0017, 0x002D, 0x0016, 0x002D, 0x0044, 0x005A, 0x0043 - .short 0x005B, 0x0071, 0x0087, 0x0070, 0x0087, 0x009E, 0x00B4, 0x009D - - .global UNK05_021F74E8 -UNK05_021F74E8: ; 0x021F74E8 - .word MOD05_021E8A68, MOD05_021E88E8, MOD05_021E8BEC, MOD05_021E8D20 - .word MOD05_021E8F20, MOD05_021E9030, MOD05_021E9140, MOD05_021E94A8 - .word MOD05_021E97A8, MOD05_021E9B68, MOD05_021EA0E4, MOD05_021EA3A4 - .word MOD05_021EBBC8, MOD05_021EBBE8, MOD05_021EBC08, MOD05_021EBC28 - .word MOD05_021EBC48, MOD05_021EBC68, MOD05_021EBC88, MOD05_021EBCA8 - .word MOD05_021EC3B8, MOD05_021EC3D8, MOD05_021EC3F8, MOD05_021EC418 - .word MOD05_021EC438, MOD05_021EB448, MOD05_021EB5B4, MOD05_021EAD60 - .word MOD05_021EB160, MOD05_021EA884, MOD05_021EAAE8 - - .global UNK05_021F7564 -UNK05_021F7564: ; 0x021F7564 - .word 0x00001000, 0x00001000, 0x00001000 - .global UNK05_021F7570 UNK05_021F7570: ; 0x021F7570 .word 0x00001000, 0x00001000, 0x00001000 @@ -43170,17 +37935,6 @@ UNK05_021FD1B8: ; 0x021FD1B8 .section .data .balign 4 - - .global UNK05_021FD610 -UNK05_021FD610: ; 0x021FD610 - .asciz "/data/dp_areawindow.NCGR" - - .balign 4 - .global UNK05_021FD62C -UNK05_021FD62C: ; 0x021FD62C - .asciz "/data/dp_areawindow.NCLR" - - .balign 4 .global UNK05_021FD648 UNK05_021FD648: ; 0x021FD648 .asciz "fielddata/build_model/build_model_matshp.dat" |