diff options
Diffstat (limited to 'arm9/modules/05/asm/mod05_021DBEF4.s')
-rw-r--r-- | arm9/modules/05/asm/mod05_021DBEF4.s | 323 |
1 files changed, 323 insertions, 0 deletions
diff --git a/arm9/modules/05/asm/mod05_021DBEF4.s b/arm9/modules/05/asm/mod05_021DBEF4.s new file mode 100644 index 00000000..1d56d13e --- /dev/null +++ b/arm9/modules/05/asm/mod05_021DBEF4.s @@ -0,0 +1,323 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021DBEF4 +MOD05_021DBEF4: ; 0x021DBEF4 + push {r3, lr} + mov r1, #0x42 + mov r0, #4 + lsl r1, r1, #2 + bl AllocFromHeap + cmp r0, #0 + beq _021DBF1E + mov r2, #0 + add r3, r0, #0 + add r1, r2, #0 +_021DBF0A: + strh r1, [r3, #0x14] + strh r1, [r3, #0x16] + str r1, [r3] + str r1, [r3, #8] + str r1, [r3, #0x10] + str r1, [r3, #0xc] + add r2, r2, #1 + add r3, #0x18 + cmp r2, #0xb + blt _021DBF0A +_021DBF1E: + pop {r3, pc} + + thumb_func_start MOD05_021DBF20 +MOD05_021DBF20: ; 0x021DBF20 + push {r3, r4, r5, r6, r7, lr} + mov r6, #0 + ldr r5, _021DBF4C ; =UNK05_021FD290 + add r7, r0, #0 + str r1, [sp] + add r4, r6, #0 +_021DBF2C: + ldr r1, [sp] + ldr r2, [r5] + add r0, r7, #0 + add r3, r4, #0 + bl MOD05_021DBF50 + cmp r0, #0 + blt _021DBF3E + add r6, r6, #1 +_021DBF3E: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xb + blt _021DBF2C + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DBF4C: .word UNK05_021FD290 + + thumb_func_start MOD05_021DBF50 +MOD05_021DBF50: ; 0x021DBF50 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r6, r0, #0 + add r7, r1, #0 + str r2, [sp] + str r3, [sp, #4] + cmp r6, #0 + bne _021DBF68 + mov r0, #0 + add sp, #0x34 + mvn r0, r0 + pop {r4, r5, r6, r7, pc} +_021DBF68: + mov r4, #0 + add r1, r6, #0 +_021DBF6C: + ldr r0, [r1, #0xc] + cmp r0, #0 + beq _021DBF7A + add r4, r4, #1 + add r1, #0x18 + cmp r4, #0xb + blt _021DBF6C +_021DBF7A: + cmp r4, #0xb + beq _021DBF82 + cmp r7, #0 + bne _021DBF8A +_021DBF82: + mov r0, #0 + add sp, #0x34 + mvn r0, r0 + pop {r4, r5, r6, r7, pc} +_021DBF8A: + mov r0, #0x18 + add r5, r4, #0 + mul r5, r0 + ldr r1, [sp] + add r0, r7, #0 + bl FUN_0201C578 + str r0, [r6, r5] + ldr r0, [r6, r5] + cmp r0, #0 + bne _021DBFA8 + mov r0, #0 + add sp, #0x34 + mvn r0, r0 + pop {r4, r5, r6, r7, pc} +_021DBFA8: + ldr r1, [sp] + add r0, r7, #0 + bl FUN_0201C5FC + add r1, r6, r5 + str r0, [r1, #4] + ldr r1, _021DBFF4 ; =UNK05_021FD2BC + ldr r2, [sp, #4] + add r0, sp, #0xc + bl sprintf + add r7, r6, #0 + add r7, #0x10 + mov r0, #4 + add r1, sp, #0xc + bl FUN_020161A4 + str r0, [r7, r5] + add r0, r6, #0 + str r0, [sp, #8] + add r0, #0xc + str r0, [sp, #8] + ldr r0, [r7, r5] + mov r1, #4 + bl FUN_02016324 + ldr r1, [sp, #8] + str r0, [r1, r5] + add r0, r1, #0 + ldr r0, [r0, r5] + bl FUN_020BC0FC + add r1, r6, r5 + str r0, [r1, #8] + add r0, r4, #0 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + nop +_021DBFF4: .word UNK05_021FD2BC + + thumb_func_start MOD05_021DBFF8 +MOD05_021DBFF8: ; 0x021DBFF8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + beq _021DC064 + mov r4, #0 + ldr r7, _021DC068 ; =0x0000FFFF + add r6, r4, #0 +_021DC004: + ldr r0, [r5, #0xc] + cmp r0, #0 + beq _021DC05C + ldr r1, [r5, #0x10] + cmp r1, #0 + beq _021DC05C + ldrh r0, [r5, #0x14] + lsl r0, r0, #2 + add r0, r1, r0 + ldrh r1, [r0, #0x22] + ldrh r0, [r5, #0x16] + cmp r1, r0 + bhi _021DC058 + strh r6, [r5, #0x16] + ldrh r0, [r5, #0x14] + add r0, r0, #1 + strh r0, [r5, #0x14] + ldrh r0, [r5, #0x14] + ldr r1, [r5, #0x10] + lsl r0, r0, #2 + add r0, r1, r0 + ldrh r0, [r0, #0x20] + cmp r0, r7 + bne _021DC036 + strh r6, [r5, #0x14] +_021DC036: + ldrh r2, [r5, #0x14] + ldr r1, [r5, #0x10] + ldr r0, [r5, #8] + lsl r2, r2, #2 + add r1, r1, r2 + ldrh r1, [r1, #0x20] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_0201C50C + add r2, r0, #0 + ldr r1, [r5] + ldr r3, [r5, #4] + mov r0, #0 + bl FUN_0201C2C8 + b _021DC05C +_021DC058: + add r0, r0, #1 + strh r0, [r5, #0x16] +_021DC05C: + add r4, r4, #1 + add r5, #0x18 + cmp r4, #0xb + blt _021DC004 +_021DC064: + pop {r3, r4, r5, r6, r7, pc} + nop +_021DC068: .word 0x0000FFFF + + thumb_func_start MOD05_021DC06C +MOD05_021DC06C: ; 0x021DC06C + push {r4, r5, r6, lr} + add r5, r0, #0 + beq _021DC092 + add r6, r5, #0 + mov r0, #0x18 + add r4, r1, #0 + mul r4, r0 + add r6, #0x10 + ldr r0, [r6, r4] + cmp r0, #0 + beq _021DC08A + bl FreeToHeap + mov r0, #0 + str r0, [r6, r4] +_021DC08A: + mov r1, #0 + add r0, r5, r4 + strh r1, [r0, #0x14] + strh r1, [r0, #0x16] +_021DC092: + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021DC094 +MOD05_021DC094: ; 0x021DC094 + push {r3, r4, r5, lr} + add r5, r0, #0 + beq _021DC0AA + mov r4, #0 +_021DC09C: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021DC06C + add r4, r4, #1 + cmp r4, #0xb + blt _021DC09C +_021DC0AA: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021DC0AC +MOD05_021DC0AC: ; 0x021DC0AC + push {r3, lr} + cmp r0, #0 + beq _021DC0B6 + bl FreeToHeap +_021DC0B6: + pop {r3, pc} + + .section .data + + .balign 4 + .global UNK05_021FD228 +UNK05_021FD228: ; 0x021FD228 + .asciz "sea" + + .balign 4 + .global UNK05_021FD22C +UNK05_021FD22C: ; 0x021FD22C + .asciz "rhana" + + .balign 4 + .global UNK05_021FD234 +UNK05_021FD234: ; 0x021FD234 + .asciz "hamabe" + + .balign 4 + .global UNK05_021FD23C +UNK05_021FD23C: ; 0x021FD23C + .asciz "asasea" + + .balign 4 + .global UNK05_021FD244 +UNK05_021FD244: ; 0x021FD244 + .asciz "lakep.1" + + .balign 4 + .global UNK05_021FD24C +UNK05_021FD24C: ; 0x021FD24C + .asciz "dun_sea" + + .balign 4 + .global UNK05_021FD254 +UNK05_021FD254: ; 0x021FD254 + .asciz "t3_fl_p.1" + + .balign 4 + .global UNK05_021FD260 +UNK05_021FD260: ; 0x021FD260 + .asciz "t3_fl_r.1" + + .balign 4 + .global UNK05_021FD26C +UNK05_021FD26C: ; 0x021FD26C + .asciz "t3_fl_y.1" + + .balign 4 + .global UNK05_021FD278 +UNK05_021FD278: ; 0x021FD278 + .asciz "asahamabe" + + .balign 4 + .global UNK05_021FD284 +UNK05_021FD284: ; 0x021FD284 + .asciz "t3_fl_b.1" + + .balign 4 + .global UNK05_021FD290 +UNK05_021FD290: ; 0x021FD290 + .word UNK05_021FD228, UNK05_021FD22C, UNK05_021FD23C, UNK05_021FD234 + .word UNK05_021FD278, UNK05_021FD284, UNK05_021FD254, UNK05_021FD260 + .word UNK05_021FD26C, UNK05_021FD24C, UNK05_021FD244 + + .global UNK05_021FD2BC +UNK05_021FD2BC: ; 0x021FD2BC + .asciz "data/fld_anime%d.bin" |