diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index aed503a87..8135f3420 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -807,7 +807,8 @@ Overlay MODULE_11 Object mod11_02258238.o Object mod11_02258428.o Object mod11_0225C91C.o - Object module_11_thumb2.o + Object mod11_0225D3EC.o + Object mod11_0225D6A4.o } Overlay MODULE_12 diff --git a/arm9/modules/11/asm/mod11_0225D3EC.s b/arm9/modules/11/asm/mod11_0225D3EC.s new file mode 100644 index 000000000..a9a459426 --- /dev/null +++ b/arm9/modules/11/asm/mod11_0225D3EC.s @@ -0,0 +1,365 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD11_0225D3EC +MOD11_0225D3EC: ; 0x0225D3EC + push {r4, r5, r6, lr} + sub sp, #0x18 + add r5, r0, #0 + mov r0, #0x1b + str r0, [sp] + mov r0, #0x2c + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + mov r0, #2 + str r0, [sp, #0x10] + ldr r0, [sp, #0x28] + add r4, r1, #0 + add r6, r3, #0 + str r0, [sp, #0x14] + add r0, r2, #0 + mov r1, #3 + add r2, r5, #0 + add r3, r4, #0 + bl FUN_0200C0DC + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x1b + mov r3, #0xba + str r6, [sp, #8] + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, [sp, #0x2c] + add r1, r4, #0 + str r0, [sp, #4] + add r0, r5, #0 + mov r2, #0x1b + mov r3, #0xbb + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, [sp, #0x30] + add r1, r4, #0 + str r0, [sp, #4] + add r0, r5, #0 + mov r2, #0x1b + mov r3, #0xbc + bl FUN_0200C13C + add sp, #0x18 + pop {r4, r5, r6, pc} + + thumb_func_start MOD11_0225D45C +MOD11_0225D45C: ; 0x0225D45C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r2, #0 + add r6, r3, #0 + bl FUN_0200C358 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0200C368 + add r0, r5, #0 + add r1, r6, #0 + bl FUN_0200C378 + ldr r1, [sp, #0x10] + add r0, r5, #0 + bl FUN_0200C388 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start MOD11_0225D484 +MOD11_0225D484: ; 0x0225D484 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + add r5, r3, #0 + mov ip, r2 + ldr r3, _0225D4FC ; =MOD11_0225FEB0 + add r6, r0, #0 + add r7, r1, #0 + add r2, sp, #4 + mov r4, #6 +_0225D496: + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + sub r4, r4, #1 + bne _0225D496 + ldr r0, [r3] + mov r1, #0x18 + str r0, [r2] + ldr r0, [sp, #0x50] + str r5, [sp, #0x18] + str r0, [sp, #0x1c] + ldr r0, [sp, #0x54] + str r0, [sp, #0x20] + ldr r0, [sp, #0x58] + str r0, [sp, #0x24] + ldr r0, [sp, #0x5c] + str r0, [sp, #0xc] + ldr r0, [sp, #0x60] + str r0, [sp, #0x30] + mov r0, ip + bl AllocFromHeap + mov r1, #0 + mov r2, #0x18 + str r0, [sp] + bl MI_CpuFill8 + ldr r5, [sp] + mov r4, #0 +_0225D4CE: + add r0, r6, #0 + add r1, r7, #0 + add r2, sp, #4 + bl FUN_0200C154 + mov r1, #0 + stmia r5!, {r0} + bl FUN_0200C644 + add r4, r4, #1 + cmp r4, #5 + blt _0225D4CE + ldr r0, _0225D500 ; =MOD11_0225D670 + ldr r1, [sp] + ldr r2, _0225D504 ; =0x00009C40 + bl FUN_0200CA44 + ldr r1, [sp] + str r0, [r1, #0x14] + add r0, r1, #0 + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + nop +_0225D4FC: .word MOD11_0225FEB0 +_0225D500: .word MOD11_0225D670 +_0225D504: .word 0x00009C40 + + thumb_func_start MOD11_0225D508 +MOD11_0225D508: ; 0x0225D508 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_0225D510: + ldr r0, [r5] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #5 + blt _0225D510 + ldr r0, [r6, #0x14] + bl FUN_0200CAB4 + add r0, r6, #0 + bl FreeToHeap + pop {r4, r5, r6, pc} + + thumb_func_start MOD11_0225D52C +MOD11_0225D52C: ; 0x0225D52C + push {r4, r5, r6, lr} + add r5, r0, #0 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r4, [sp, #0x24] + add r6, r3, #0 + ldr r0, [r5] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + add r3, r4, #0 + bl FUN_0200C750 + ldr r2, [sp, #0x10] + lsl r1, r6, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r5, #4] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + add r3, r4, #0 + bl FUN_0200C750 + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x18] + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r5, #8] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + add r3, r4, #0 + bl FUN_0200C750 + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x20] + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r5, #0xc] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + add r3, r4, #0 + bl FUN_0200C750 + ldr r0, [r5] + mov r1, #0 + bl FUN_0200C5C0 + ldr r0, [r5, #4] + mov r1, #1 + bl FUN_0200C5C0 + ldr r0, [r5, #8] + mov r1, #2 + bl FUN_0200C5C0 + ldr r0, [r5, #0xc] + mov r1, #3 + bl FUN_0200C5C0 + mov r4, #0 + mov r6, #1 +_0225D5A2: + ldr r0, [r5] + add r1, r6, #0 + bl FUN_0200C644 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0225D5A2 + pop {r4, r5, r6, pc} + + thumb_func_start MOD11_0225D5B4 +MOD11_0225D5B4: ; 0x0225D5B4 + push {r4, lr} + sub sp, #0x18 + 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] + mov r4, #3 + lsl r4, r4, #0x12 + str r4, [sp, #0x14] + bl MOD11_0225D52C + add sp, #0x18 + pop {r4, pc} + .align 2, 0 + + thumb_func_start MOD11_0225D5DC +MOD11_0225D5DC: ; 0x0225D5DC + push {r3, r4, lr} + sub sp, #0x14 + add r4, r2, #0 + str r3, [sp] + ldr r2, [sp, #0x20] + str r1, [sp, #4] + str r2, [sp, #8] + str r4, [sp, #0xc] + str r2, [sp, #0x10] + add r2, r3, #0 + add r3, r4, #0 + bl MOD11_0225D5B4 + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 + + thumb_func_start MOD11_0225D5FC +MOD11_0225D5FC: ; 0x0225D5FC + push {r4, lr} + sub sp, #0x18 + add r4, r2, #0 + str r3, [sp] + ldr r2, [sp, #0x20] + str r1, [sp, #4] + str r2, [sp, #8] + str r4, [sp, #0xc] + str r2, [sp, #0x10] + ldr r2, [sp, #0x24] + str r2, [sp, #0x14] + add r2, r3, #0 + add r3, r4, #0 + bl MOD11_0225D52C + add sp, #0x18 + pop {r4, pc} + .align 2, 0 + + thumb_func_start MOD11_0225D620 +MOD11_0225D620: ; 0x0225D620 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r3, #0 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r5, #0x10] + ldr r3, [sp, #0x10] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C750 + ldr r0, [r5, #0x10] + add r1, r4, #0 + bl FUN_0200C5C0 + ldr r0, [r5, #0x10] + mov r1, #1 + bl FUN_0200C644 + pop {r3, r4, r5, pc} + + thumb_func_start MOD11_0225D648 +MOD11_0225D648: ; 0x0225D648 + push {r4, r5, r6, lr} + mov r4, #0 + add r5, r0, #0 + add r6, r4, #0 +_0225D650: + ldr r0, [r5] + add r1, r6, #0 + bl FUN_0200C644 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #5 + blt _0225D650 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start MOD11_0225D664 +MOD11_0225D664: ; 0x0225D664 + ldr r3, _0225D66C ; =FUN_0200C644 + ldr r0, [r0, #0x10] + mov r1, #0 + bx r3 + .align 2, 0 +_0225D66C: .word FUN_0200C644 + + thumb_func_start MOD11_0225D670 +MOD11_0225D670: ; 0x0225D670 + push {r4, r5, r6, lr} + add r6, r1, #0 + ldr r0, [r6] + bl FUN_0200C658 + cmp r0, #0 + beq _0225D6A0 + mov r4, #0 + add r5, r6, #0 +_0225D682: + ldr r0, [r5] + bl FUN_0200C5A8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0225D682 + ldr r0, [r6, #0x10] + bl FUN_0200C658 + cmp r0, #1 + bne _0225D6A0 + ldr r0, [r6, #0x10] + bl FUN_0200C5A8 +_0225D6A0: + pop {r4, r5, r6, pc} + .align 2, 0 + + .section .rodata + + .global MOD11_0225FEB0 +MOD11_0225FEB0: ; 0x0225FEB0 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/mod11_0225D6A4.s similarity index 52% rename from arm9/modules/11/asm/module_11_thumb2.s rename to arm9/modules/11/asm/mod11_0225D6A4.s index 228c841f7..782e4ebb4 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/mod11_0225D6A4.s @@ -3,358 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD11_0225D3EC -MOD11_0225D3EC: ; 0x0225D3EC - push {r4, r5, r6, lr} - sub sp, #0x18 - add r5, r0, #0 - mov r0, #0x1b - str r0, [sp] - mov r0, #0x2c - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - mov r0, #1 - str r0, [sp, #0xc] - mov r0, #2 - str r0, [sp, #0x10] - ldr r0, [sp, #0x28] - add r4, r1, #0 - add r6, r3, #0 - str r0, [sp, #0x14] - add r0, r2, #0 - mov r1, #3 - add r2, r5, #0 - add r3, r4, #0 - bl FUN_0200C0DC - mov r0, #1 - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x1b - mov r3, #0xba - str r6, [sp, #8] - bl FUN_0200C00C - mov r0, #1 - str r0, [sp] - ldr r0, [sp, #0x2c] - add r1, r4, #0 - str r0, [sp, #4] - add r0, r5, #0 - mov r2, #0x1b - mov r3, #0xbb - bl FUN_0200C124 - mov r0, #1 - str r0, [sp] - ldr r0, [sp, #0x30] - add r1, r4, #0 - str r0, [sp, #4] - add r0, r5, #0 - mov r2, #0x1b - mov r3, #0xbc - bl FUN_0200C13C - add sp, #0x18 - pop {r4, r5, r6, pc} - - thumb_func_start MOD11_0225D45C -MOD11_0225D45C: ; 0x0225D45C - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r2, #0 - add r6, r3, #0 - bl FUN_0200C358 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_0200C368 - add r0, r5, #0 - add r1, r6, #0 - bl FUN_0200C378 - ldr r1, [sp, #0x10] - add r0, r5, #0 - bl FUN_0200C388 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start MOD11_0225D484 -MOD11_0225D484: ; 0x0225D484 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x38 - add r5, r3, #0 - mov ip, r2 - ldr r3, _0225D4FC ; =MOD11_0225FEB0 - add r6, r0, #0 - add r7, r1, #0 - add r2, sp, #4 - mov r4, #6 -_0225D496: - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - sub r4, r4, #1 - bne _0225D496 - ldr r0, [r3] - mov r1, #0x18 - str r0, [r2] - ldr r0, [sp, #0x50] - str r5, [sp, #0x18] - str r0, [sp, #0x1c] - ldr r0, [sp, #0x54] - str r0, [sp, #0x20] - ldr r0, [sp, #0x58] - str r0, [sp, #0x24] - ldr r0, [sp, #0x5c] - str r0, [sp, #0xc] - ldr r0, [sp, #0x60] - str r0, [sp, #0x30] - mov r0, ip - bl AllocFromHeap - mov r1, #0 - mov r2, #0x18 - str r0, [sp] - bl MI_CpuFill8 - ldr r5, [sp] - mov r4, #0 -_0225D4CE: - add r0, r6, #0 - add r1, r7, #0 - add r2, sp, #4 - bl FUN_0200C154 - mov r1, #0 - stmia r5!, {r0} - bl FUN_0200C644 - add r4, r4, #1 - cmp r4, #5 - blt _0225D4CE - ldr r0, _0225D500 ; =MOD11_0225D670 - ldr r1, [sp] - ldr r2, _0225D504 ; =0x00009C40 - bl FUN_0200CA44 - ldr r1, [sp] - str r0, [r1, #0x14] - add r0, r1, #0 - add sp, #0x38 - pop {r3, r4, r5, r6, r7, pc} - nop -_0225D4FC: .word MOD11_0225FEB0 -_0225D500: .word MOD11_0225D670 -_0225D504: .word 0x00009C40 - - thumb_func_start MOD11_0225D508 -MOD11_0225D508: ; 0x0225D508 - push {r4, r5, r6, lr} - add r6, r0, #0 - mov r4, #0 - add r5, r6, #0 -_0225D510: - ldr r0, [r5] - bl FUN_0200C3DC - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #5 - blt _0225D510 - ldr r0, [r6, #0x14] - bl FUN_0200CAB4 - add r0, r6, #0 - bl FreeToHeap - pop {r4, r5, r6, pc} - - thumb_func_start MOD11_0225D52C -MOD11_0225D52C: ; 0x0225D52C - push {r4, r5, r6, lr} - add r5, r0, #0 - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - ldr r4, [sp, #0x24] - add r6, r3, #0 - ldr r0, [r5] - asr r1, r1, #0x10 - asr r2, r2, #0x10 - add r3, r4, #0 - bl FUN_0200C750 - ldr r2, [sp, #0x10] - lsl r1, r6, #0x10 - lsl r2, r2, #0x10 - ldr r0, [r5, #4] - asr r1, r1, #0x10 - asr r2, r2, #0x10 - add r3, r4, #0 - bl FUN_0200C750 - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x18] - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - ldr r0, [r5, #8] - asr r1, r1, #0x10 - asr r2, r2, #0x10 - add r3, r4, #0 - bl FUN_0200C750 - ldr r1, [sp, #0x1c] - ldr r2, [sp, #0x20] - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - ldr r0, [r5, #0xc] - asr r1, r1, #0x10 - asr r2, r2, #0x10 - add r3, r4, #0 - bl FUN_0200C750 - ldr r0, [r5] - mov r1, #0 - bl FUN_0200C5C0 - ldr r0, [r5, #4] - mov r1, #1 - bl FUN_0200C5C0 - ldr r0, [r5, #8] - mov r1, #2 - bl FUN_0200C5C0 - ldr r0, [r5, #0xc] - mov r1, #3 - bl FUN_0200C5C0 - mov r4, #0 - mov r6, #1 -_0225D5A2: - ldr r0, [r5] - add r1, r6, #0 - bl FUN_0200C644 - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _0225D5A2 - pop {r4, r5, r6, pc} - - thumb_func_start MOD11_0225D5B4 -MOD11_0225D5B4: ; 0x0225D5B4 - push {r4, lr} - sub sp, #0x18 - 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] - mov r4, #3 - lsl r4, r4, #0x12 - str r4, [sp, #0x14] - bl MOD11_0225D52C - add sp, #0x18 - pop {r4, pc} - .align 2, 0 - - thumb_func_start MOD11_0225D5DC -MOD11_0225D5DC: ; 0x0225D5DC - push {r3, r4, lr} - sub sp, #0x14 - add r4, r2, #0 - str r3, [sp] - ldr r2, [sp, #0x20] - str r1, [sp, #4] - str r2, [sp, #8] - str r4, [sp, #0xc] - str r2, [sp, #0x10] - add r2, r3, #0 - add r3, r4, #0 - bl MOD11_0225D5B4 - add sp, #0x14 - pop {r3, r4, pc} - .align 2, 0 - - thumb_func_start MOD11_0225D5FC -MOD11_0225D5FC: ; 0x0225D5FC - push {r4, lr} - sub sp, #0x18 - add r4, r2, #0 - str r3, [sp] - ldr r2, [sp, #0x20] - str r1, [sp, #4] - str r2, [sp, #8] - str r4, [sp, #0xc] - str r2, [sp, #0x10] - ldr r2, [sp, #0x24] - str r2, [sp, #0x14] - add r2, r3, #0 - add r3, r4, #0 - bl MOD11_0225D52C - add sp, #0x18 - pop {r4, pc} - .align 2, 0 - - thumb_func_start MOD11_0225D620 -MOD11_0225D620: ; 0x0225D620 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r3, #0 - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - ldr r0, [r5, #0x10] - ldr r3, [sp, #0x10] - asr r1, r1, #0x10 - asr r2, r2, #0x10 - bl FUN_0200C750 - ldr r0, [r5, #0x10] - add r1, r4, #0 - bl FUN_0200C5C0 - ldr r0, [r5, #0x10] - mov r1, #1 - bl FUN_0200C644 - pop {r3, r4, r5, pc} - - thumb_func_start MOD11_0225D648 -MOD11_0225D648: ; 0x0225D648 - push {r4, r5, r6, lr} - mov r4, #0 - add r5, r0, #0 - add r6, r4, #0 -_0225D650: - ldr r0, [r5] - add r1, r6, #0 - bl FUN_0200C644 - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #5 - blt _0225D650 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start MOD11_0225D664 -MOD11_0225D664: ; 0x0225D664 - ldr r3, _0225D66C ; =FUN_0200C644 - ldr r0, [r0, #0x10] - mov r1, #0 - bx r3 - .align 2, 0 -_0225D66C: .word FUN_0200C644 - - thumb_func_start MOD11_0225D670 -MOD11_0225D670: ; 0x0225D670 - push {r4, r5, r6, lr} - add r6, r1, #0 - ldr r0, [r6] - bl FUN_0200C658 - cmp r0, #0 - beq _0225D6A0 - mov r4, #0 - add r5, r6, #0 -_0225D682: - ldr r0, [r5] - bl FUN_0200C5A8 - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _0225D682 - ldr r0, [r6, #0x10] - bl FUN_0200C658 - cmp r0, #1 - bne _0225D6A0 - ldr r0, [r6, #0x10] - bl FUN_0200C5A8 -_0225D6A0: - pop {r4, r5, r6, pc} - .align 2, 0 - thumb_func_start MOD11_0225D6A4 MOD11_0225D6A4: ; 0x0225D6A4 push {r4, r5, r6, lr} @@ -746,13 +394,6 @@ MOD11_0225D98C: ; 0x0225D98C .section .rodata - .global MOD11_0225FEB0 -MOD11_0225FEB0: ; 0x0225FEB0 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global MOD11_0225FEE4 MOD11_0225FEE4: ; 0x0225FEE4 .byte 0x00, 0x00, 0x00, 0x00