diff options
-rw-r--r-- | arm9/arm9.lsf | 1 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021D9320.s | 920 | ||||
-rw-r--r-- | arm9/modules/05/asm/module_05.s | 914 |
3 files changed, 921 insertions, 914 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index d59f7e0b..0a45ade3 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -519,6 +519,7 @@ Overlay MODULE_05 Object mod05_021D74E0.o Object mod05_021D7F4C.o Object mod05_021D80E8.o + Object mod05_021D9320.o Object module_05.o } diff --git a/arm9/modules/05/asm/mod05_021D9320.s b/arm9/modules/05/asm/mod05_021D9320.s new file mode 100644 index 00000000..4d0220e5 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021D9320.s @@ -0,0 +1,920 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021D9320 +MOD05_021D9320: ; 0x021D9320 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + add r5, r0, #0 + str r1, [sp, #0x10] + add r4, r3, #0 + add r0, r2, #0 + add r1, r5, #4 + add r2, r4, #0 + bl FUN_02008C9C + str r0, [r5] + ldr r1, _021D94B0 ; =0x00000162 + ldr r0, [sp, #0x10] + strh r4, [r5, r1] + ldr r0, [r0, #0x10] + cmp r0, #0 + bne _021D9346 + mov r2, #4 + b _021D9348 +_021D9346: + mov r2, #6 +_021D9348: + sub r0, r1, #2 + strh r2, [r5, r0] + bl FUN_0200965C + mov r1, #0x16 + lsl r1, r1, #4 + ldrh r2, [r5, r1] + add r3, r0, #0 + add r0, r4, #0 + add r1, r2, #0 + mul r1, r3 + bl AllocFromHeap + add r7, r0, #0 + mov r0, #0 + str r0, [sp, #0x1c] + mov r0, #0x16 + lsl r0, r0, #4 + ldrh r0, [r5, r0] + cmp r0, #0 + bls _021D93AA + ldr r6, [sp, #0x10] +_021D9374: + ldr r1, [sp, #0x1c] + add r0, r7, #0 + bl FUN_02009660 + str r0, [sp, #0x20] + ldr r1, [r6] + add r0, r4, #0 + bl FUN_020161A4 + ldr r1, [sp, #0x20] + str r0, [sp, #0x24] + add r2, r4, #0 + bl FUN_02009668 + ldr r0, [sp, #0x24] + bl FreeToHeap + ldr r0, [sp, #0x1c] + add r6, r6, #4 + add r0, r0, #1 + str r0, [sp, #0x1c] + mov r0, #0x16 + lsl r0, r0, #4 + ldrh r0, [r5, r0] + ldr r1, [sp, #0x1c] + cmp r1, r0 + blo _021D9374 +_021D93AA: + mov r6, #0 + cmp r0, #0 + bls _021D93E0 + str r5, [sp, #0x18] +_021D93B2: + add r0, r7, #0 + add r1, r6, #0 + bl FUN_02009660 + bl FUN_020096CC + add r1, r6, #0 + add r2, r4, #0 + bl FUN_02008DEC + mov r1, #0x13 + ldr r2, [sp, #0x18] + lsl r1, r1, #4 + str r0, [r2, r1] + add r0, r2, #0 + add r0, r0, #4 + str r0, [sp, #0x18] + add r0, r1, #0 + add r0, #0x30 + ldrh r0, [r5, r0] + add r6, r6, #1 + cmp r6, r0 + blo _021D93B2 +_021D93E0: + mov r1, #0 + str r1, [sp, #0x14] + cmp r0, #0 + bls _021D942C + add r6, r5, #0 +_021D93EA: + ldr r1, [sp, #0x14] + add r0, r7, #0 + bl FUN_02009660 + str r0, [sp, #0x28] + bl FUN_020096CC + add r1, r4, #0 + bl FUN_02009424 + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r6, r1] + add r0, r1, #0 + mov r2, #0x52 + sub r0, #0x18 + lsl r2, r2, #2 + ldr r0, [r6, r0] + ldr r1, [sp, #0x28] + ldr r2, [r6, r2] + add r3, r4, #0 + bl FUN_020093A8 + ldr r0, [sp, #0x14] + add r6, r6, #4 + add r0, r0, #1 + str r0, [sp, #0x14] + mov r0, #0x16 + lsl r0, r0, #4 + ldrh r0, [r5, r0] + ldr r1, [sp, #0x14] + cmp r1, r0 + blo _021D93EA +_021D942C: + mov r6, #0 + cmp r0, #0 + bls _021D944A +_021D9432: + add r0, r7, #0 + add r1, r6, #0 + bl FUN_02009660 + bl FUN_020096B4 + mov r0, #0x16 + lsl r0, r0, #4 + ldrh r0, [r5, r0] + add r6, r6, #1 + cmp r6, r0 + blo _021D9432 +_021D944A: + add r0, r7, #0 + bl FreeToHeap + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009B44 + mov r0, #0x53 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009DAC + ldr r1, [sp, #0x10] + add r0, r4, #0 + ldr r1, [r1, #0x18] + bl FUN_020161A4 + mov r3, #0x4e + lsl r3, r3, #2 + ldr r1, [r5, r3] + add r2, r3, #0 + str r1, [sp] + add r1, r3, #4 + ldr r1, [r5, r1] + sub r2, #8 + str r1, [sp, #4] + add r1, r3, #0 + add r1, #8 + ldr r1, [r5, r1] + add r6, r0, #0 + str r1, [sp, #8] + add r1, r3, #0 + add r1, #0xc + ldr r1, [r5, r1] + sub r3, r3, #4 + str r1, [sp, #0xc] + ldr r2, [r5, r2] + ldr r3, [r5, r3] + add r1, r4, #0 + bl FUN_02008BE0 + mov r1, #0x4b + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r6, #0 + bl FreeToHeap + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + nop +_021D94B0: .word 0x00000162 + + thumb_func_start MOD05_021D94B4 +MOD05_021D94B4: ; 0x021D94B4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5] + bl FUN_0201FD58 + mov r0, #0x4b + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02008C80 + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009C30 + mov r0, #0x53 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009E28 + mov r0, #0x16 + lsl r0, r0, #4 + ldrh r0, [r5, r0] + mov r6, #0 + cmp r0, #0 + bls _021D950C + mov r7, #0x16 + add r4, r5, #0 + lsl r7, r7, #4 +_021D94EE: + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02009448 + mov r0, #0x13 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02008E2C + ldrh r0, [r5, r7] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, r0 + blo _021D94EE +_021D950C: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021D9510 +MOD05_021D9510: ; 0x021D9510 + push {r3, r4, r5, r6, lr} + sub sp, #0x3c + add r2, r0, #0 + add r4, r1, #0 + mov r0, #4 + ldrsh r0, [r4, r0] + mov r3, #0x4b + lsl r3, r3, #2 + lsl r0, r0, #0xc + str r0, [sp] + mov r0, #6 + ldrsh r0, [r4, r0] + add r6, sp, #0 + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r0, #8 + ldrsh r0, [r4, r0] + lsl r0, r0, #0xc + str r0, [sp, #8] + ldr r0, [r2] + str r0, [sp, #0xc] + ldr r0, [r2, r3] + ldr r1, [r4] + ldr r5, [r0] + mov r0, #0x24 + mul r0, r1 + add r0, r5, r0 + str r0, [sp, #0x10] + ldmia r6!, {r0, r1} + add r5, sp, #0x14 + stmia r5!, {r0, r1} + ldr r0, [r6] + ldr r6, _021D9598 ; =UNK05_021F64D8 + str r0, [r5] + ldmia r6!, {r0, r1} + add r5, sp, #0x20 + stmia r5!, {r0, r1} + ldr r0, [r6] + mov r1, #0 + str r0, [r5] + add r0, sp, #0 + strh r1, [r0, #0x2c] + ldr r0, [r4, #0xc] + add r3, #0x36 + str r0, [sp, #0x30] + ldr r0, [r4, #0x14] + str r0, [sp, #0x34] + ldrh r0, [r2, r3] + str r0, [sp, #0x38] + add r0, sp, #0xc + bl FUN_0201FE94 + add r5, r0, #0 + bne _021D9580 + bl ErrorHandling +_021D9580: + ldrh r1, [r4, #0xa] + add r0, r5, #0 + bl FUN_02020130 + ldr r1, [r4, #0x10] + add r0, r5, #0 + bl FUN_0202027C + add r0, r5, #0 + add sp, #0x3c + pop {r3, r4, r5, r6, pc} + nop +_021D9598: .word UNK05_021F64D8 + + thumb_func_start MOD05_021D959C +MOD05_021D959C: ; 0x021D959C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r7, r0, #0 + str r1, [sp] + add r0, r2, #0 + str r3, [sp, #4] + add r1, r7, #4 + add r2, r3, #0 + bl FUN_02008C9C + str r0, [r7] + ldr r1, _021D9678 ; =0x00000162 + ldr r0, [sp, #4] + strh r0, [r7, r1] + ldr r0, [sp] + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _021D95C8 + ldr r0, [sp] + ldr r0, [r0, #0x14] + cmp r0, #0 + bne _021D95DE +_021D95C8: + mov r1, #0x16 + mov r0, #4 + lsl r1, r1, #4 + strh r0, [r7, r1] + add r0, r1, #0 + mov r2, #0 + sub r0, #0x20 + str r2, [r7, r0] + sub r1, #0x1c + str r2, [r7, r1] + b _021D95E4 +_021D95DE: + mov r2, #6 + sub r0, r1, #2 + strh r2, [r7, r0] +_021D95E4: + mov r0, #0x16 + lsl r0, r0, #4 + ldrh r1, [r7, r0] + mov r4, #0 + cmp r1, #0 + bls _021D9614 + ldr r5, [sp] + add r6, r7, #0 +_021D95F4: + ldr r0, [r5] + ldr r2, [sp, #4] + add r1, r4, #0 + bl FUN_02008DEC + mov r1, #0x13 + lsl r1, r1, #4 + str r0, [r6, r1] + add r0, r1, #0 + add r0, #0x30 + ldrh r1, [r7, r0] + add r4, r4, #1 + add r5, r5, #4 + add r6, r6, #4 + cmp r4, r1 + blo _021D95F4 +_021D9614: + mov r0, #0 + str r0, [sp, #8] + cmp r1, #0 + bls _021D9672 + mov r6, #0x52 + add r5, r7, #0 + add r4, r0, #0 + lsl r6, r6, #2 +_021D9624: + ldr r0, [sp] + ldr r0, [r0] + cmp r0, #0 + beq _021D9658 + ldr r1, [sp, #4] + bl FUN_02009424 + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x52 + lsl r0, r0, #2 + ldr r3, [r5, r0] + mov r1, #0 + ldr r0, [r3, #4] + cmp r0, #0 + bls _021D9658 + add r2, r1, #0 +_021D9648: + ldr r0, [r3] + add r1, r1, #1 + str r4, [r0, r2] + ldr r3, [r5, r6] + add r2, r2, #4 + ldr r0, [r3, #4] + cmp r1, r0 + blo _021D9648 +_021D9658: + ldr r0, [sp] + add r5, r5, #4 + add r0, r0, #4 + str r0, [sp] + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + mov r0, #0x16 + lsl r0, r0, #4 + ldrh r1, [r7, r0] + ldr r0, [sp, #8] + cmp r0, r1 + blo _021D9624 +_021D9672: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + nop +_021D9678: .word 0x00000162 + + thumb_func_start MOD05_021D967C +MOD05_021D967C: ; 0x021D967C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0x4d + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + ldr r1, [sp, #0x30] + add r6, r2, #0 + add r7, r3, #0 + bl FUN_0200945C + cmp r0, #0 + bne _021D96A0 + bl ErrorHandling + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_021D96A0: + ldr r0, [sp, #0x30] + add r2, r6, #0 + str r0, [sp] + ldr r0, [sp, #0x2c] + add r3, r7, #0 + str r0, [sp, #4] + ldr r0, [sp, #0x28] + str r0, [sp, #8] + ldr r0, _021D96F0 ; =0x00000162 + ldrh r1, [r5, r0] + sub r0, #0x2e + str r1, [sp, #0xc] + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_02008FEC + add r4, r0, #0 + beq _021D96E8 + bl FUN_02009D68 + cmp r0, #1 + beq _021D96D0 + bl ErrorHandling +_021D96D0: + mov r0, #0x53 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl MOD05_021D9780 + ldr r1, [sp, #0x2c] + add r0, r4, #0 + bl FUN_02009E88 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_021D96E8: + bl ErrorHandling + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021D96F0: .word 0x00000162 + + thumb_func_start MOD05_021D96F4 +MOD05_021D96F4: ; 0x021D96F4 + push {r4, lr} + sub sp, #8 + mov r4, #2 + str r4, [sp] + ldr r4, [sp, #0x10] + str r4, [sp, #4] + bl MOD05_021D97B4 + add sp, #8 + pop {r4, pc} + + thumb_func_start MOD05_021D9708 +MOD05_021D9708: ; 0x021D9708 + push {r4, lr} + sub sp, #8 + mov r4, #3 + str r4, [sp] + ldr r4, [sp, #0x10] + str r4, [sp, #4] + bl MOD05_021D97B4 + add sp, #8 + pop {r4, pc} + + thumb_func_start MOD05_021D971C +MOD05_021D971C: ; 0x021D971C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0x13 + lsl r0, r0, #4 + add r4, r1, #0 + ldr r0, [r5, r0] + ldr r1, [sp, #0x24] + add r6, r2, #0 + add r7, r3, #0 + bl FUN_0200945C + cmp r0, #0 + bne _021D9740 + bl ErrorHandling + add sp, #0xc + pop {r4, r5, r6, r7, pc} +_021D9740: + ldr r0, [sp, #0x24] + add r2, r6, #0 + str r0, [sp] + ldr r0, [sp, #0x20] + add r3, r7, #0 + str r0, [sp, #4] + ldr r0, _021D977C ; =0x00000162 + ldrh r1, [r5, r0] + sub r0, #0x32 + str r1, [sp, #8] + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_02008F34 + add r4, r0, #0 + beq _021D9774 + bl FUN_02009B04 + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl MOD05_021D9780 + add sp, #0xc + pop {r4, r5, r6, r7, pc} +_021D9774: + bl ErrorHandling + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .balign 4, 0 +_021D977C: .word 0x00000162 + + thumb_func_start MOD05_021D9780 +MOD05_021D9780: ; 0x021D9780 + push {r3, r4, r5, r6} + ldr r6, [r0, #4] + mov r3, #0 + cmp r6, #0 + ble _021D97AC + ldr r5, [r0] + add r4, r5, #0 +_021D978E: + ldr r2, [r4] + cmp r2, #0 + bne _021D97A4 + lsl r2, r3, #2 + str r1, [r5, r2] + ldr r1, [r0, #8] + add r1, r1, #1 + str r1, [r0, #8] + mov r0, #1 + pop {r3, r4, r5, r6} + bx lr +_021D97A4: + add r3, r3, #1 + add r4, r4, #4 + cmp r3, r6 + blt _021D978E +_021D97AC: + mov r0, #0 + pop {r3, r4, r5, r6} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021D97B4 +MOD05_021D97B4: ; 0x021D97B4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [sp, #0x28] + add r7, r1, #0 + lsl r4, r0, #2 + mov r0, #0x13 + lsl r0, r0, #4 + add r6, r5, r0 + ldr r0, [r6, r4] + ldr r1, [sp, #0x2c] + str r2, [sp, #0xc] + str r3, [sp, #0x10] + bl FUN_0200945C + cmp r0, #0 + bne _021D97DE + bl ErrorHandling + add sp, #0x14 + pop {r4, r5, r6, r7, pc} +_021D97DE: + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0xc] + str r0, [sp] + ldr r0, [sp, #0x28] + ldr r3, [sp, #0x10] + str r0, [sp, #4] + ldr r0, _021D981C ; =0x00000162 + add r1, r7, #0 + ldrh r0, [r5, r0] + str r0, [sp, #8] + ldr r0, [r6, r4] + bl FUN_020090AC + add r1, r0, #0 + beq _021D9814 + mov r0, #0x52 + add r2, r5, r4 + lsl r0, r0, #2 + ldr r0, [r2, r0] + bl MOD05_021D9780 + cmp r0, #1 + beq _021D9818 + bl ErrorHandling + add sp, #0x14 + pop {r4, r5, r6, r7, pc} +_021D9814: + bl ErrorHandling +_021D9818: + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 +_021D981C: .word 0x00000162 + + thumb_func_start MOD05_021D9820 +MOD05_021D9820: ; 0x021D9820 + push {r3, r4, r5, r6, lr} + sub sp, #0x74 + add r5, r0, #0 + ldr r0, _021D99F4 ; =0x00000162 + add r4, r1, #0 + ldrh r0, [r5, r0] + mov r1, #0x10 + bl AllocFromHeap + add r6, r0, #0 + ldr r0, _021D99F4 ; =0x00000162 + mov r1, #8 + ldrh r0, [r5, r0] + bl AllocFromHeap + str r0, [r6, #8] + ldr r0, _021D99F4 ; =0x00000162 + mov r1, #0x24 + ldrh r0, [r5, r0] + bl AllocFromHeap + ldr r1, [r6, #8] + add r2, r4, #0 + str r0, [r1] + ldr r0, [r6, #8] + mov r1, #0 + ldr r0, [r0] + add r3, sp, #0x2c + str r0, [r6, #4] +_021D985A: + ldr r0, [r2, #0x14] + add r1, r1, #1 + add r2, r2, #4 + stmia r3!, {r0} + cmp r1, #6 + blt _021D985A + mov r1, #5 + lsl r1, r1, #6 + ldr r0, [r5, r1] + cmp r0, #0 + beq _021D9878 + add r1, r1, #4 + ldr r1, [r5, r1] + cmp r1, #0 + bne _021D9882 +_021D9878: + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x3c] + str r0, [sp, #0x40] + b _021D98B8 +_021D9882: + mov r2, #0 + ldr r1, [sp, #0x3c] + mvn r2, r2 + cmp r1, r2 + beq _021D989A + bl FUN_0200945C + cmp r0, #0 + bne _021D989A + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x3c] +_021D989A: + mov r0, #0 + ldr r1, [sp, #0x40] + mvn r0, r0 + cmp r1, r0 + beq _021D98B8 + mov r0, #0x51 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200945C + cmp r0, #0 + bne _021D98B8 + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x40] +_021D98B8: + ldr r0, [sp, #0x38] + str r0, [sp] + ldr r0, [sp, #0x3c] + str r0, [sp, #4] + ldr r0, [sp, #0x40] + str r0, [sp, #8] + ldr r0, [r4, #0x30] + str r0, [sp, #0xc] + ldr r0, [r4, #0x2c] + str r0, [sp, #0x10] + mov r0, #0x13 + lsl r0, r0, #4 + ldr r1, [r5, r0] + str r1, [sp, #0x14] + add r1, r0, #4 + ldr r1, [r5, r1] + str r1, [sp, #0x18] + add r1, r0, #0 + add r1, #8 + ldr r1, [r5, r1] + str r1, [sp, #0x1c] + add r1, r0, #0 + add r1, #0xc + ldr r1, [r5, r1] + str r1, [sp, #0x20] + add r1, r0, #0 + add r1, #0x10 + ldr r1, [r5, r1] + add r0, #0x14 + str r1, [sp, #0x24] + ldr r0, [r5, r0] + str r0, [sp, #0x28] + ldr r0, [r6, #4] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x30] + ldr r3, [sp, #0x34] + bl FUN_02008AA4 + ldr r0, [r5] + str r0, [sp, #0x44] + ldr r0, [r6, #4] + str r0, [sp, #0x48] + mov r0, #0 + ldrsh r0, [r4, r0] + cmp r0, #0 + ble _021D9926 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D9934 +_021D9926: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D9934: + bl _ffix + str r0, [sp, #0x4c] + mov r0, #2 + ldrsh r0, [r4, r0] + cmp r0, #0 + ble _021D9954 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D9962 +_021D9954: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D9962: + bl _ffix + str r0, [sp, #0x50] + mov r0, #4 + ldrsh r0, [r4, r0] + cmp r0, #0 + ble _021D9982 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D9990 +_021D9982: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D9990: + bl _ffix + str r0, [sp, #0x54] + ldr r0, [r4, #0x10] + cmp r0, #2 + bne _021D99A6 + mov r0, #3 + ldr r1, [sp, #0x50] + lsl r0, r0, #0x12 + add r0, r1, r0 + str r0, [sp, #0x50] +_021D99A6: + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp, #0x58] + str r0, [sp, #0x5c] + str r0, [sp, #0x60] + mov r1, #0 + add r0, sp, #0x2c + strh r1, [r0, #0x38] + ldr r0, [r4, #8] + str r0, [sp, #0x68] + ldr r0, [r4, #0x10] + str r0, [sp, #0x6c] + ldr r0, _021D99F4 ; =0x00000162 + ldrh r0, [r5, r0] + str r0, [sp, #0x70] + add r0, sp, #0x44 + bl FUN_0201FE94 + str r0, [r6] + cmp r0, #0 + beq _021D99EA + bl FUN_020202A0 + add r5, r0, #0 + ldrh r1, [r4, #6] + ldr r0, [r6] + bl FUN_02020130 + ldr r1, [r4, #0xc] + ldr r0, [r6] + add r1, r5, r1 + bl FUN_02020248 + b _021D99EE +_021D99EA: + bl ErrorHandling +_021D99EE: + add r0, r6, #0 + add sp, #0x74 + pop {r3, r4, r5, r6, pc} + .balign 4, 0 +_021D99F4: .word 0x00000162 + + thumb_func_start MOD05_021D99F8 +MOD05_021D99F8: ; 0x021D99F8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6] + bl FUN_0201FD58 + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009C30 + mov r0, #0x53 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E28 + mov r0, #0x16 + lsl r0, r0, #4 + ldrh r0, [r6, r0] + mov r4, #0 + cmp r0, #0 + bls _021D9A46 + mov r7, #0x16 + add r5, r6, #0 + lsl r7, r7, #4 +_021D9A28: + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009448 + mov r0, #0x13 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02008E2C + ldrh r0, [r6, r7] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blo _021D9A28 +_021D9A46: + pop {r3, r4, r5, r6, r7, pc} + + .section .rodata + + .global UNK05_021F64D8 +UNK05_021F64D8: ; 0x021F64D8 + .word 0x00001000, 0x00001000, 0x00001000 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 62ffaa6d..a86f794b 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -3,916 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD05_021D9320 -MOD05_021D9320: ; 0x021D9320 - push {r4, r5, r6, r7, lr} - sub sp, #0x2c - add r5, r0, #0 - str r1, [sp, #0x10] - add r4, r3, #0 - add r0, r2, #0 - add r1, r5, #4 - add r2, r4, #0 - bl FUN_02008C9C - str r0, [r5] - ldr r1, _021D94B0 ; =0x00000162 - ldr r0, [sp, #0x10] - strh r4, [r5, r1] - ldr r0, [r0, #0x10] - cmp r0, #0 - bne _021D9346 - mov r2, #4 - b _021D9348 -_021D9346: - mov r2, #6 -_021D9348: - sub r0, r1, #2 - strh r2, [r5, r0] - bl FUN_0200965C - mov r1, #0x16 - lsl r1, r1, #4 - ldrh r2, [r5, r1] - add r3, r0, #0 - add r0, r4, #0 - add r1, r2, #0 - mul r1, r3 - bl AllocFromHeap - add r7, r0, #0 - mov r0, #0 - str r0, [sp, #0x1c] - mov r0, #0x16 - lsl r0, r0, #4 - ldrh r0, [r5, r0] - cmp r0, #0 - bls _021D93AA - ldr r6, [sp, #0x10] -_021D9374: - ldr r1, [sp, #0x1c] - add r0, r7, #0 - bl FUN_02009660 - str r0, [sp, #0x20] - ldr r1, [r6] - add r0, r4, #0 - bl FUN_020161A4 - ldr r1, [sp, #0x20] - str r0, [sp, #0x24] - add r2, r4, #0 - bl FUN_02009668 - ldr r0, [sp, #0x24] - bl FreeToHeap - ldr r0, [sp, #0x1c] - add r6, r6, #4 - add r0, r0, #1 - str r0, [sp, #0x1c] - mov r0, #0x16 - lsl r0, r0, #4 - ldrh r0, [r5, r0] - ldr r1, [sp, #0x1c] - cmp r1, r0 - blo _021D9374 -_021D93AA: - mov r6, #0 - cmp r0, #0 - bls _021D93E0 - str r5, [sp, #0x18] -_021D93B2: - add r0, r7, #0 - add r1, r6, #0 - bl FUN_02009660 - bl FUN_020096CC - add r1, r6, #0 - add r2, r4, #0 - bl FUN_02008DEC - mov r1, #0x13 - ldr r2, [sp, #0x18] - lsl r1, r1, #4 - str r0, [r2, r1] - add r0, r2, #0 - add r0, r0, #4 - str r0, [sp, #0x18] - add r0, r1, #0 - add r0, #0x30 - ldrh r0, [r5, r0] - add r6, r6, #1 - cmp r6, r0 - blo _021D93B2 -_021D93E0: - mov r1, #0 - str r1, [sp, #0x14] - cmp r0, #0 - bls _021D942C - add r6, r5, #0 -_021D93EA: - ldr r1, [sp, #0x14] - add r0, r7, #0 - bl FUN_02009660 - str r0, [sp, #0x28] - bl FUN_020096CC - add r1, r4, #0 - bl FUN_02009424 - mov r1, #0x52 - lsl r1, r1, #2 - str r0, [r6, r1] - add r0, r1, #0 - mov r2, #0x52 - sub r0, #0x18 - lsl r2, r2, #2 - ldr r0, [r6, r0] - ldr r1, [sp, #0x28] - ldr r2, [r6, r2] - add r3, r4, #0 - bl FUN_020093A8 - ldr r0, [sp, #0x14] - add r6, r6, #4 - add r0, r0, #1 - str r0, [sp, #0x14] - mov r0, #0x16 - lsl r0, r0, #4 - ldrh r0, [r5, r0] - ldr r1, [sp, #0x14] - cmp r1, r0 - blo _021D93EA -_021D942C: - mov r6, #0 - cmp r0, #0 - bls _021D944A -_021D9432: - add r0, r7, #0 - add r1, r6, #0 - bl FUN_02009660 - bl FUN_020096B4 - mov r0, #0x16 - lsl r0, r0, #4 - ldrh r0, [r5, r0] - add r6, r6, #1 - cmp r6, r0 - blo _021D9432 -_021D944A: - add r0, r7, #0 - bl FreeToHeap - mov r0, #0x52 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_02009B44 - mov r0, #0x53 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_02009DAC - ldr r1, [sp, #0x10] - add r0, r4, #0 - ldr r1, [r1, #0x18] - bl FUN_020161A4 - mov r3, #0x4e - lsl r3, r3, #2 - ldr r1, [r5, r3] - add r2, r3, #0 - str r1, [sp] - add r1, r3, #4 - ldr r1, [r5, r1] - sub r2, #8 - str r1, [sp, #4] - add r1, r3, #0 - add r1, #8 - ldr r1, [r5, r1] - add r6, r0, #0 - str r1, [sp, #8] - add r1, r3, #0 - add r1, #0xc - ldr r1, [r5, r1] - sub r3, r3, #4 - str r1, [sp, #0xc] - ldr r2, [r5, r2] - ldr r3, [r5, r3] - add r1, r4, #0 - bl FUN_02008BE0 - mov r1, #0x4b - lsl r1, r1, #2 - str r0, [r5, r1] - add r0, r6, #0 - bl FreeToHeap - add sp, #0x2c - pop {r4, r5, r6, r7, pc} - nop -_021D94B0: .word 0x00000162 - - thumb_func_start MOD05_021D94B4 -MOD05_021D94B4: ; 0x021D94B4 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - ldr r0, [r5] - bl FUN_0201FD58 - mov r0, #0x4b - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_02008C80 - mov r0, #0x52 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_02009C30 - mov r0, #0x53 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_02009E28 - mov r0, #0x16 - lsl r0, r0, #4 - ldrh r0, [r5, r0] - mov r6, #0 - cmp r0, #0 - bls _021D950C - mov r7, #0x16 - add r4, r5, #0 - lsl r7, r7, #4 -_021D94EE: - mov r0, #0x52 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl FUN_02009448 - mov r0, #0x13 - lsl r0, r0, #4 - ldr r0, [r4, r0] - bl FUN_02008E2C - ldrh r0, [r5, r7] - add r6, r6, #1 - add r4, r4, #4 - cmp r6, r0 - blo _021D94EE -_021D950C: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021D9510 -MOD05_021D9510: ; 0x021D9510 - push {r3, r4, r5, r6, lr} - sub sp, #0x3c - add r2, r0, #0 - add r4, r1, #0 - mov r0, #4 - ldrsh r0, [r4, r0] - mov r3, #0x4b - lsl r3, r3, #2 - lsl r0, r0, #0xc - str r0, [sp] - mov r0, #6 - ldrsh r0, [r4, r0] - add r6, sp, #0 - lsl r0, r0, #0xc - str r0, [sp, #4] - mov r0, #8 - ldrsh r0, [r4, r0] - lsl r0, r0, #0xc - str r0, [sp, #8] - ldr r0, [r2] - str r0, [sp, #0xc] - ldr r0, [r2, r3] - ldr r1, [r4] - ldr r5, [r0] - mov r0, #0x24 - mul r0, r1 - add r0, r5, r0 - str r0, [sp, #0x10] - ldmia r6!, {r0, r1} - add r5, sp, #0x14 - stmia r5!, {r0, r1} - ldr r0, [r6] - ldr r6, _021D9598 ; =UNK05_021F64D8 - str r0, [r5] - ldmia r6!, {r0, r1} - add r5, sp, #0x20 - stmia r5!, {r0, r1} - ldr r0, [r6] - mov r1, #0 - str r0, [r5] - add r0, sp, #0 - strh r1, [r0, #0x2c] - ldr r0, [r4, #0xc] - add r3, #0x36 - str r0, [sp, #0x30] - ldr r0, [r4, #0x14] - str r0, [sp, #0x34] - ldrh r0, [r2, r3] - str r0, [sp, #0x38] - add r0, sp, #0xc - bl FUN_0201FE94 - add r5, r0, #0 - bne _021D9580 - bl ErrorHandling -_021D9580: - ldrh r1, [r4, #0xa] - add r0, r5, #0 - bl FUN_02020130 - ldr r1, [r4, #0x10] - add r0, r5, #0 - bl FUN_0202027C - add r0, r5, #0 - add sp, #0x3c - pop {r3, r4, r5, r6, pc} - nop -_021D9598: .word UNK05_021F64D8 - - thumb_func_start MOD05_021D959C -MOD05_021D959C: ; 0x021D959C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r7, r0, #0 - str r1, [sp] - add r0, r2, #0 - str r3, [sp, #4] - add r1, r7, #4 - add r2, r3, #0 - bl FUN_02008C9C - str r0, [r7] - ldr r1, _021D9678 ; =0x00000162 - ldr r0, [sp, #4] - strh r0, [r7, r1] - ldr r0, [sp] - ldr r0, [r0, #0x10] - cmp r0, #0 - beq _021D95C8 - ldr r0, [sp] - ldr r0, [r0, #0x14] - cmp r0, #0 - bne _021D95DE -_021D95C8: - mov r1, #0x16 - mov r0, #4 - lsl r1, r1, #4 - strh r0, [r7, r1] - add r0, r1, #0 - mov r2, #0 - sub r0, #0x20 - str r2, [r7, r0] - sub r1, #0x1c - str r2, [r7, r1] - b _021D95E4 -_021D95DE: - mov r2, #6 - sub r0, r1, #2 - strh r2, [r7, r0] -_021D95E4: - mov r0, #0x16 - lsl r0, r0, #4 - ldrh r1, [r7, r0] - mov r4, #0 - cmp r1, #0 - bls _021D9614 - ldr r5, [sp] - add r6, r7, #0 -_021D95F4: - ldr r0, [r5] - ldr r2, [sp, #4] - add r1, r4, #0 - bl FUN_02008DEC - mov r1, #0x13 - lsl r1, r1, #4 - str r0, [r6, r1] - add r0, r1, #0 - add r0, #0x30 - ldrh r1, [r7, r0] - add r4, r4, #1 - add r5, r5, #4 - add r6, r6, #4 - cmp r4, r1 - blo _021D95F4 -_021D9614: - mov r0, #0 - str r0, [sp, #8] - cmp r1, #0 - bls _021D9672 - mov r6, #0x52 - add r5, r7, #0 - add r4, r0, #0 - lsl r6, r6, #2 -_021D9624: - ldr r0, [sp] - ldr r0, [r0] - cmp r0, #0 - beq _021D9658 - ldr r1, [sp, #4] - bl FUN_02009424 - mov r1, #0x52 - lsl r1, r1, #2 - str r0, [r5, r1] - mov r0, #0x52 - lsl r0, r0, #2 - ldr r3, [r5, r0] - mov r1, #0 - ldr r0, [r3, #4] - cmp r0, #0 - bls _021D9658 - add r2, r1, #0 -_021D9648: - ldr r0, [r3] - add r1, r1, #1 - str r4, [r0, r2] - ldr r3, [r5, r6] - add r2, r2, #4 - ldr r0, [r3, #4] - cmp r1, r0 - blo _021D9648 -_021D9658: - ldr r0, [sp] - add r5, r5, #4 - add r0, r0, #4 - str r0, [sp] - ldr r0, [sp, #8] - add r0, r0, #1 - str r0, [sp, #8] - mov r0, #0x16 - lsl r0, r0, #4 - ldrh r1, [r7, r0] - ldr r0, [sp, #8] - cmp r0, r1 - blo _021D9624 -_021D9672: - add sp, #0xc - pop {r4, r5, r6, r7, pc} - nop -_021D9678: .word 0x00000162 - - thumb_func_start MOD05_021D967C -MOD05_021D967C: ; 0x021D967C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - add r5, r0, #0 - mov r0, #0x4d - lsl r0, r0, #2 - add r4, r1, #0 - ldr r0, [r5, r0] - ldr r1, [sp, #0x30] - add r6, r2, #0 - add r7, r3, #0 - bl FUN_0200945C - cmp r0, #0 - bne _021D96A0 - bl ErrorHandling - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} -_021D96A0: - ldr r0, [sp, #0x30] - add r2, r6, #0 - str r0, [sp] - ldr r0, [sp, #0x2c] - add r3, r7, #0 - str r0, [sp, #4] - ldr r0, [sp, #0x28] - str r0, [sp, #8] - ldr r0, _021D96F0 ; =0x00000162 - ldrh r1, [r5, r0] - sub r0, #0x2e - str r1, [sp, #0xc] - ldr r0, [r5, r0] - add r1, r4, #0 - bl FUN_02008FEC - add r4, r0, #0 - beq _021D96E8 - bl FUN_02009D68 - cmp r0, #1 - beq _021D96D0 - bl ErrorHandling -_021D96D0: - mov r0, #0x53 - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r1, r4, #0 - bl MOD05_021D9780 - ldr r1, [sp, #0x2c] - add r0, r4, #0 - bl FUN_02009E88 - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} -_021D96E8: - bl ErrorHandling - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021D96F0: .word 0x00000162 - - thumb_func_start MOD05_021D96F4 -MOD05_021D96F4: ; 0x021D96F4 - push {r4, lr} - sub sp, #8 - mov r4, #2 - str r4, [sp] - ldr r4, [sp, #0x10] - str r4, [sp, #4] - bl MOD05_021D97B4 - add sp, #8 - pop {r4, pc} - - thumb_func_start MOD05_021D9708 -MOD05_021D9708: ; 0x021D9708 - push {r4, lr} - sub sp, #8 - mov r4, #3 - str r4, [sp] - ldr r4, [sp, #0x10] - str r4, [sp, #4] - bl MOD05_021D97B4 - add sp, #8 - pop {r4, pc} - - thumb_func_start MOD05_021D971C -MOD05_021D971C: ; 0x021D971C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r5, r0, #0 - mov r0, #0x13 - lsl r0, r0, #4 - add r4, r1, #0 - ldr r0, [r5, r0] - ldr r1, [sp, #0x24] - add r6, r2, #0 - add r7, r3, #0 - bl FUN_0200945C - cmp r0, #0 - bne _021D9740 - bl ErrorHandling - add sp, #0xc - pop {r4, r5, r6, r7, pc} -_021D9740: - ldr r0, [sp, #0x24] - add r2, r6, #0 - str r0, [sp] - ldr r0, [sp, #0x20] - add r3, r7, #0 - str r0, [sp, #4] - ldr r0, _021D977C ; =0x00000162 - ldrh r1, [r5, r0] - sub r0, #0x32 - str r1, [sp, #8] - ldr r0, [r5, r0] - add r1, r4, #0 - bl FUN_02008F34 - add r4, r0, #0 - beq _021D9774 - bl FUN_02009B04 - mov r0, #0x52 - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r1, r4, #0 - bl MOD05_021D9780 - add sp, #0xc - pop {r4, r5, r6, r7, pc} -_021D9774: - bl ErrorHandling - add sp, #0xc - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021D977C: .word 0x00000162 - - thumb_func_start MOD05_021D9780 -MOD05_021D9780: ; 0x021D9780 - push {r3, r4, r5, r6} - ldr r6, [r0, #4] - mov r3, #0 - cmp r6, #0 - ble _021D97AC - ldr r5, [r0] - add r4, r5, #0 -_021D978E: - ldr r2, [r4] - cmp r2, #0 - bne _021D97A4 - lsl r2, r3, #2 - str r1, [r5, r2] - ldr r1, [r0, #8] - add r1, r1, #1 - str r1, [r0, #8] - mov r0, #1 - pop {r3, r4, r5, r6} - bx lr -_021D97A4: - add r3, r3, #1 - add r4, r4, #4 - cmp r3, r6 - blt _021D978E -_021D97AC: - mov r0, #0 - pop {r3, r4, r5, r6} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021D97B4 -MOD05_021D97B4: ; 0x021D97B4 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r5, r0, #0 - ldr r0, [sp, #0x28] - add r7, r1, #0 - lsl r4, r0, #2 - mov r0, #0x13 - lsl r0, r0, #4 - add r6, r5, r0 - ldr r0, [r6, r4] - ldr r1, [sp, #0x2c] - str r2, [sp, #0xc] - str r3, [sp, #0x10] - bl FUN_0200945C - cmp r0, #0 - bne _021D97DE - bl ErrorHandling - add sp, #0x14 - pop {r4, r5, r6, r7, pc} -_021D97DE: - ldr r0, [sp, #0x2c] - ldr r2, [sp, #0xc] - str r0, [sp] - ldr r0, [sp, #0x28] - ldr r3, [sp, #0x10] - str r0, [sp, #4] - ldr r0, _021D981C ; =0x00000162 - add r1, r7, #0 - ldrh r0, [r5, r0] - str r0, [sp, #8] - ldr r0, [r6, r4] - bl FUN_020090AC - add r1, r0, #0 - beq _021D9814 - mov r0, #0x52 - add r2, r5, r4 - lsl r0, r0, #2 - ldr r0, [r2, r0] - bl MOD05_021D9780 - cmp r0, #1 - beq _021D9818 - bl ErrorHandling - add sp, #0x14 - pop {r4, r5, r6, r7, pc} -_021D9814: - bl ErrorHandling -_021D9818: - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021D981C: .word 0x00000162 - - thumb_func_start MOD05_021D9820 -MOD05_021D9820: ; 0x021D9820 - push {r3, r4, r5, r6, lr} - sub sp, #0x74 - add r5, r0, #0 - ldr r0, _021D99F4 ; =0x00000162 - add r4, r1, #0 - ldrh r0, [r5, r0] - mov r1, #0x10 - bl AllocFromHeap - add r6, r0, #0 - ldr r0, _021D99F4 ; =0x00000162 - mov r1, #8 - ldrh r0, [r5, r0] - bl AllocFromHeap - str r0, [r6, #8] - ldr r0, _021D99F4 ; =0x00000162 - mov r1, #0x24 - ldrh r0, [r5, r0] - bl AllocFromHeap - ldr r1, [r6, #8] - add r2, r4, #0 - str r0, [r1] - ldr r0, [r6, #8] - mov r1, #0 - ldr r0, [r0] - add r3, sp, #0x2c - str r0, [r6, #4] -_021D985A: - ldr r0, [r2, #0x14] - add r1, r1, #1 - add r2, r2, #4 - stmia r3!, {r0} - cmp r1, #6 - blt _021D985A - mov r1, #5 - lsl r1, r1, #6 - ldr r0, [r5, r1] - cmp r0, #0 - beq _021D9878 - add r1, r1, #4 - ldr r1, [r5, r1] - cmp r1, #0 - bne _021D9882 -_021D9878: - mov r0, #0 - mvn r0, r0 - str r0, [sp, #0x3c] - str r0, [sp, #0x40] - b _021D98B8 -_021D9882: - mov r2, #0 - ldr r1, [sp, #0x3c] - mvn r2, r2 - cmp r1, r2 - beq _021D989A - bl FUN_0200945C - cmp r0, #0 - bne _021D989A - mov r0, #0 - mvn r0, r0 - str r0, [sp, #0x3c] -_021D989A: - mov r0, #0 - ldr r1, [sp, #0x40] - mvn r0, r0 - cmp r1, r0 - beq _021D98B8 - mov r0, #0x51 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_0200945C - cmp r0, #0 - bne _021D98B8 - mov r0, #0 - mvn r0, r0 - str r0, [sp, #0x40] -_021D98B8: - ldr r0, [sp, #0x38] - str r0, [sp] - ldr r0, [sp, #0x3c] - str r0, [sp, #4] - ldr r0, [sp, #0x40] - str r0, [sp, #8] - ldr r0, [r4, #0x30] - str r0, [sp, #0xc] - ldr r0, [r4, #0x2c] - str r0, [sp, #0x10] - mov r0, #0x13 - lsl r0, r0, #4 - ldr r1, [r5, r0] - str r1, [sp, #0x14] - add r1, r0, #4 - ldr r1, [r5, r1] - str r1, [sp, #0x18] - add r1, r0, #0 - add r1, #8 - ldr r1, [r5, r1] - str r1, [sp, #0x1c] - add r1, r0, #0 - add r1, #0xc - ldr r1, [r5, r1] - str r1, [sp, #0x20] - add r1, r0, #0 - add r1, #0x10 - ldr r1, [r5, r1] - add r0, #0x14 - str r1, [sp, #0x24] - ldr r0, [r5, r0] - str r0, [sp, #0x28] - ldr r0, [r6, #4] - ldr r1, [sp, #0x2c] - ldr r2, [sp, #0x30] - ldr r3, [sp, #0x34] - bl FUN_02008AA4 - ldr r0, [r5] - str r0, [sp, #0x44] - ldr r0, [r6, #4] - str r0, [sp, #0x48] - mov r0, #0 - ldrsh r0, [r4, r0] - cmp r0, #0 - ble _021D9926 - lsl r0, r0, #0xc - bl _fflt - add r1, r0, #0 - mov r0, #0x3f - lsl r0, r0, #0x18 - bl _fadd - b _021D9934 -_021D9926: - lsl r0, r0, #0xc - bl _fflt - mov r1, #0x3f - lsl r1, r1, #0x18 - bl _fsub -_021D9934: - bl _ffix - str r0, [sp, #0x4c] - mov r0, #2 - ldrsh r0, [r4, r0] - cmp r0, #0 - ble _021D9954 - lsl r0, r0, #0xc - bl _fflt - add r1, r0, #0 - mov r0, #0x3f - lsl r0, r0, #0x18 - bl _fadd - b _021D9962 -_021D9954: - lsl r0, r0, #0xc - bl _fflt - mov r1, #0x3f - lsl r1, r1, #0x18 - bl _fsub -_021D9962: - bl _ffix - str r0, [sp, #0x50] - mov r0, #4 - ldrsh r0, [r4, r0] - cmp r0, #0 - ble _021D9982 - lsl r0, r0, #0xc - bl _fflt - add r1, r0, #0 - mov r0, #0x3f - lsl r0, r0, #0x18 - bl _fadd - b _021D9990 -_021D9982: - lsl r0, r0, #0xc - bl _fflt - mov r1, #0x3f - lsl r1, r1, #0x18 - bl _fsub -_021D9990: - bl _ffix - str r0, [sp, #0x54] - ldr r0, [r4, #0x10] - cmp r0, #2 - bne _021D99A6 - mov r0, #3 - ldr r1, [sp, #0x50] - lsl r0, r0, #0x12 - add r0, r1, r0 - str r0, [sp, #0x50] -_021D99A6: - mov r0, #1 - lsl r0, r0, #0xc - str r0, [sp, #0x58] - str r0, [sp, #0x5c] - str r0, [sp, #0x60] - mov r1, #0 - add r0, sp, #0x2c - strh r1, [r0, #0x38] - ldr r0, [r4, #8] - str r0, [sp, #0x68] - ldr r0, [r4, #0x10] - str r0, [sp, #0x6c] - ldr r0, _021D99F4 ; =0x00000162 - ldrh r0, [r5, r0] - str r0, [sp, #0x70] - add r0, sp, #0x44 - bl FUN_0201FE94 - str r0, [r6] - cmp r0, #0 - beq _021D99EA - bl FUN_020202A0 - add r5, r0, #0 - ldrh r1, [r4, #6] - ldr r0, [r6] - bl FUN_02020130 - ldr r1, [r4, #0xc] - ldr r0, [r6] - add r1, r5, r1 - bl FUN_02020248 - b _021D99EE -_021D99EA: - bl ErrorHandling -_021D99EE: - add r0, r6, #0 - add sp, #0x74 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_021D99F4: .word 0x00000162 - - thumb_func_start MOD05_021D99F8 -MOD05_021D99F8: ; 0x021D99F8 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - ldr r0, [r6] - bl FUN_0201FD58 - mov r0, #0x52 - lsl r0, r0, #2 - ldr r0, [r6, r0] - bl FUN_02009C30 - mov r0, #0x53 - lsl r0, r0, #2 - ldr r0, [r6, r0] - bl FUN_02009E28 - mov r0, #0x16 - lsl r0, r0, #4 - ldrh r0, [r6, r0] - mov r4, #0 - cmp r0, #0 - bls _021D9A46 - mov r7, #0x16 - add r5, r6, #0 - lsl r7, r7, #4 -_021D9A28: - mov r0, #0x52 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl FUN_02009448 - mov r0, #0x13 - lsl r0, r0, #4 - ldr r0, [r5, r0] - bl FUN_02008E2C - ldrh r0, [r6, r7] - add r4, r4, #1 - add r5, r5, #4 - cmp r4, r0 - blo _021D9A28 -_021D9A46: - pop {r3, r4, r5, r6, r7, pc} - thumb_func_start MOD05_021D9A48 MOD05_021D9A48: ; 0x021D9A48 push {r3, r4, r5, r6, r7, lr} @@ -60260,10 +59350,6 @@ _021F6428: .word MOD05_021F57F0 .section .rodata - .global UNK05_021F64D8 -UNK05_021F64D8: ; 0x021F64D8 - .word 0x00001000, 0x00001000, 0x00001000 - .global UNK05_021F64E4 UNK05_021F64E4: ; 0x021F64E4 .word 0x0000012F, 0x00000130 |