diff options
Diffstat (limited to 'arm9/modules')
-rw-r--r-- | arm9/modules/04/asm/arm_04.s | 6 | ||||
-rw-r--r-- | arm9/modules/79/asm/module_79_thumb.s | 2 | ||||
-rw-r--r-- | arm9/modules/80/asm/module_80.s | 2 | ||||
-rw-r--r-- | arm9/modules/82/asm/module_82.s | 2 | ||||
-rw-r--r-- | arm9/modules/83/asm/module_83.s | 2 | ||||
-rw-r--r-- | arm9/modules/86/asm/module_86.s | 917 |
6 files changed, 927 insertions, 4 deletions
diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s index 83993b5d..eb42dcb1 100644 --- a/arm9/modules/04/asm/arm_04.s +++ b/arm9/modules/04/asm/arm_04.s @@ -6128,6 +6128,9 @@ MOD04_021DE308: ; 0x021DE308 bl MOD04_02207158 add sp, sp, #4 ldmfd sp!, {pc} + + arm_func_start MOD04_021DE330 +MOD04_021DE330: ; 0x021DE330 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 @@ -21284,6 +21287,9 @@ MOD04_021EB524: ; 0x021EB524 mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} + + arm_func_start MOD04_021EB550 +MOD04_021EB550: stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021EB598 ; =0x02210E44 diff --git a/arm9/modules/79/asm/module_79_thumb.s b/arm9/modules/79/asm/module_79_thumb.s index ac0c1188..26c700af 100644 --- a/arm9/modules/79/asm/module_79_thumb.s +++ b/arm9/modules/79/asm/module_79_thumb.s @@ -811,7 +811,7 @@ MOD79_0221244C: ; 0x0221244C mov r1, #0 str r1, [r0, #0x24] _02212464: - blx FUN_021EB550 + bl MOD04_021EB550 ldr r0, _02212470 ; =0x02216760 mov r1, #1 str r1, [r0] diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 555f3678..45c6e1e3 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -18609,7 +18609,7 @@ _0223696C: str r0, [r4, #0x2c] b _02236986 _02236972: - blx FUN_021EB550 + bl MOD04_021EB550 mov r0, #0x15 str r0, [r4, #0x2c] b _02236986 diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s index 98afbcaa..962ebed4 100644 --- a/arm9/modules/82/asm/module_82.s +++ b/arm9/modules/82/asm/module_82.s @@ -2232,7 +2232,7 @@ _0222E768: str r0, [r4, #0x1c] b _0222E782 _0222E76E: - blx FUN_021EB550 + bl MOD04_021EB550 mov r0, #0x35 str r0, [r4, #0x1c] b _0222E782 diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 1ab49f6e..1eda08dc 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -26210,7 +26210,7 @@ _0223A14E: ldr r0, _0223A2AC ; =0x0223CAEC add r1, r4, r1 add r2, r3, #0 - blx FUN_021DE330 + bl MOD04_021DE330 cmp r0, #0 bne _0223A168 add r0, r4, #0 diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s new file mode 100644 index 00000000..922a98f3 --- /dev/null +++ b/arm9/modules/86/asm/module_86.s @@ -0,0 +1,917 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD86_021D74E0 +MOD86_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + mov r2, #2 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x54 + lsl r2, r2, #0x10 + bl FUN_0201681C + add r0, r5, #0 + mov r1, #0x44 + mov r2, #0x54 + bl FUN_02006268 + mov r1, #0 + mov r2, #0x44 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x54 + str r0, [r4] + add r0, r5, #0 + bl FUN_0200628C + ldr r1, [r0] + str r1, [r4, #8] + ldr r0, [r0, #4] + str r0, [r4, #4] + ldr r0, [r4, #8] + bl FUN_020238F4 + str r0, [r4, #0xc] + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7580 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D7584 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + add r0, r4, #0 + bl MOD86_021D76EC + add r0, r4, #0 + bl MOD86_021D78D4 + ldr r0, _021D7588 ; =MOD86_021D76E0 + add r1, r4, #0 + bl FUN_02015F10 + bl FUN_0201E788 + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021D7580: .word 0xFFFFE0FF +_021D7584: .word 0x04001000 +_021D7588: .word MOD86_021D76E0 + thumb_func_end MOD86_021D74E0 + + thumb_func_start MOD86_021D758C +MOD86_021D758C: ; 0x021D758C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + mov r6, #0 + cmp r1, #5 + bhi _021D76A0 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D75AC: ; jump table + .short _021D75B8 - _021D75AC - 2 ; case 0 + .short _021D7614 - _021D75AC - 2 ; case 1 + .short _021D7626 - _021D75AC - 2 ; case 2 + .short _021D7638 - _021D75AC - 2 ; case 3 + .short _021D765C - _021D75AC - 2 ; case 4 + .short _021D7696 - _021D75AC - 2 ; case 5 +_021D75B8: + bl MOD86_021D7984 + add r0, r4, #0 + bl MOD86_021D79D4 + add r0, r4, #0 + bl MOD86_021D7B80 + add r0, r6, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #1 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #1 + bl FUN_0201797C + mov r0, #4 + mov r1, #1 + bl FUN_0201797C + mov r0, #5 + mov r1, #1 + bl FUN_0201797C + mov r0, #7 + mov r1, #1 + bl FUN_0201797C + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #1 + str r0, [r5] + b _021D76A0 +_021D7614: + bl FUN_0200E308 + cmp r0, #1 + bne _021D76A0 + add r0, r6, #0 + str r0, [r4, #0x40] + mov r0, #2 + str r0, [r5] + b _021D76A0 +_021D7626: + ldr r0, [r4, #0x40] + cmp r0, #0x3c + bge _021D7632 + add r0, r0, #1 + str r0, [r4, #0x40] + b _021D76A0 +_021D7632: + mov r0, #3 + str r0, [r5] + b _021D76A0 +_021D7638: + mov r2, #0x3c + ldrsh r3, [r4, r2] + add r1, r2, #0 + sub r1, #0xfc + cmp r3, r1 + ble _021D764E + sub r1, r3, #4 + strh r1, [r4, #0x3c] + bl MOD86_021D7990 + b _021D76A0 +_021D764E: + sub r2, #0xfc + strh r2, [r4, #0x3c] + bl MOD86_021D7990 + mov r0, #4 + str r0, [r5] + b _021D76A0 +_021D765C: + ldr r0, _021D76A8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + and r0, r1 + cmp r0, #1 + beq _021D7678 + mov r0, #2 + and r0, r1 + cmp r0, #2 + beq _021D7678 + ldr r0, _021D76AC ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021D76A0 +_021D7678: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #5 + str r0, [r5] + b _021D76A0 +_021D7696: + bl FUN_0200E308 + cmp r0, #1 + bne _021D76A0 + mov r6, #1 +_021D76A0: + add r0, r6, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D76A8: .word 0x021C48B8 +_021D76AC: .word 0x021C48F8 + thumb_func_end MOD86_021D758C + + thumb_func_start MOD86_021D76B0 +MOD86_021D76B0: ; 0x021D76B0 + push {r4, r5, r6, lr} + add r5, r0, #0 + bl FUN_02006278 + add r6, r0, #0 + ldr r4, [r6] + bl MOD86_021D7964 + add r0, r6, #0 + bl MOD86_021D7858 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + add r0, r5, #0 + bl FUN_0200627C + add r0, r4, #0 + bl FUN_020168D0 + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD86_021D76B0 + + thumb_func_start MOD86_021D76E0 +MOD86_021D76E0: ; 0x021D76E0 + ldr r3, _021D76E8 ; =FUN_0201AB60 + ldr r0, [r0, #0x10] + bx r3 + nop +_021D76E8: .word FUN_0201AB60 + thumb_func_end MOD86_021D76E0 + + thumb_func_start MOD86_021D76EC +MOD86_021D76EC: ; 0x021D76EC + push {r4, r5, lr} + sub sp, #0x54 + ldr r5, _021D784C ; =0x021D7CBC + add r4, r0, #0 + add r3, sp, #0x2c + mov r2, #5 +_021D76F8: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D76F8 + add r0, sp, #0x2c + bl FUN_0201E66C + ldr r0, [r4] + bl FUN_02016B94 + add r3, sp, #0x1c + ldr r5, _021D7850 ; =0x021D7C90 + str r0, [r4, #0x10] + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D7854 ; =0x021D7CA0 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, sp, #0 + strb r1, [r0, #0x12] + mov r3, #4 + strb r3, [r0, #0x13] + lsl r3, r3, #0xa + str r3, [sp, #8] + mov r3, #2 + strb r3, [r0, #0x10] + ldr r0, [r4, #0x10] + add r3, r1, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #0 + bl FUN_02018744 + mov r2, #2 + add r0, sp, #0 + strb r2, [r0, #0x12] + strb r2, [r0, #0x13] + lsl r1, r2, #0xb + str r1, [sp, #8] + strb r2, [r0, #0x10] + ldr r0, [r4, #0x10] + mov r1, #1 + add r2, sp, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_02018744 + mov r1, #4 + add r0, sp, #0 + strb r1, [r0, #0x12] + mov r2, #1 + strb r2, [r0, #0x13] + lsl r1, r2, #0xb + str r1, [sp, #8] + strb r2, [r0, #0x10] + ldr r0, [r4, #0x10] + mov r1, #3 + add r2, sp, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #3 + bl FUN_02018744 + mov r1, #4 + mov r3, #0 + add r0, sp, #0 + strb r3, [r0, #0x12] + strb r1, [r0, #0x13] + lsl r2, r1, #0xa + str r2, [sp, #8] + mov r2, #2 + strb r2, [r0, #0x10] + ldr r0, [r4, #0x10] + add r2, sp, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #4 + bl FUN_02018744 + mov r2, #2 + add r0, sp, #0 + strb r2, [r0, #0x12] + strb r2, [r0, #0x13] + lsl r1, r2, #0xb + str r1, [sp, #8] + strb r2, [r0, #0x10] + ldr r0, [r4, #0x10] + mov r1, #5 + add r2, sp, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #5 + bl FUN_02018744 + mov r1, #4 + add r0, sp, #0 + strb r1, [r0, #0x12] + mov r2, #1 + strb r2, [r0, #0x13] + lsl r1, r2, #0xb + str r1, [sp, #8] + strb r2, [r0, #0x10] + ldr r0, [r4, #0x10] + mov r1, #7 + add r2, sp, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #7 + bl FUN_02018744 + mov r0, #0 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #1 + mov r1, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #0 + bl FUN_0201797C + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #6 + mov r1, #0 + bl FUN_0201797C + mov r0, #7 + mov r1, #0 + bl FUN_0201797C + add sp, #0x54 + pop {r4, r5, pc} + .align 2, 0 +_021D784C: .word 0x021D7CBC +_021D7850: .word 0x021D7C90 +_021D7854: .word 0x021D7CA0 + thumb_func_end MOD86_021D76EC + + thumb_func_start MOD86_021D7858 +MOD86_021D7858: ; 0x021D7858 + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #1 + mov r1, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #0 + bl FUN_0201797C + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #6 + mov r1, #0 + bl FUN_0201797C + mov r0, #7 + mov r1, #0 + bl FUN_0201797C + ldr r0, [r4, #0x10] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #7 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD86_021D7858 + + thumb_func_start MOD86_021D78D4 +MOD86_021D78D4: ; 0x021D78D4 + push {r4, lr} + sub sp, #0x10 + ldr r1, _021D7960 ; =0x021D7C88 + add r4, r0, #0 + ldrh r2, [r1] + add r0, sp, #8 + strh r2, [r0] + ldrh r2, [r1, #2] + strh r2, [r0, #2] + ldrh r2, [r1, #4] + ldrh r1, [r1, #6] + strh r2, [r0, #4] + strh r1, [r0, #6] + bl FUN_0201BD5C + mov r0, #1 + ldr r3, [r4] + mov r1, #0x1a + add r2, r0, #0 + bl FUN_0200A86C + str r0, [r4, #0x34] + ldr r0, [r4] + bl FUN_0200AA80 + str r0, [r4, #0x38] + mov r1, #0 + add r0, sp, #8 + strb r1, [r0] + add r1, r4, #0 + ldr r0, [r4, #0x10] + add r1, #0x14 + add r2, sp, #8 + bl FUN_02019150 + mov r1, #0 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0xc0 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0x14 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + mov r1, #4 + add r0, sp, #8 + strb r1, [r0] + add r1, r4, #0 + ldr r0, [r4, #0x10] + add r1, #0x24 + add r2, sp, #8 + bl FUN_02019150 + mov r1, #0 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0xc0 + add r4, #0x24 + str r0, [sp, #4] + add r0, r4, #0 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D7960: .word 0x021D7C88 + thumb_func_end MOD86_021D78D4 + + thumb_func_start MOD86_021D7964 +MOD86_021D7964: ; 0x021D7964 + push {r4, lr} + add r4, r0, #0 + add r0, #0x24 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019178 + ldr r0, [r4, #0x38] + bl FUN_0200AB18 + ldr r0, [r4, #0x34] + bl FUN_0200A8B8 + pop {r4, pc} + thumb_func_end MOD86_021D7964 + + thumb_func_start MOD86_021D7984 +MOD86_021D7984: ; 0x021D7984 + ldr r3, _021D798C ; =MOD86_021D7990 + mov r1, #0 + strh r1, [r0, #0x3c] + bx r3 + .align 2, 0 +_021D798C: .word MOD86_021D7990 + thumb_func_end MOD86_021D7984 + + thumb_func_start MOD86_021D7990 +MOD86_021D7990: ; 0x021D7990 + push {r4, lr} + add r4, r0, #0 + mov r3, #0x3c + ldrsh r3, [r4, r3] + ldr r0, [r4, #0x10] + mov r1, #1 + mov r2, #3 + bl FUN_020179E0 + mov r3, #0x3c + ldrsh r3, [r4, r3] + ldr r0, [r4, #0x10] + mov r1, #5 + mov r2, #3 + add r3, #0xc0 + bl FUN_020179E0 + mov r3, #0x3c + ldrsh r3, [r4, r3] + ldr r0, [r4, #0x10] + mov r1, #0 + mov r2, #3 + bl FUN_020179E0 + mov r3, #0x3c + ldrsh r3, [r4, r3] + ldr r0, [r4, #0x10] + mov r1, #4 + mov r2, #3 + add r3, #0xc0 + bl FUN_020179E0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD86_021D7990 + + thumb_func_start MOD86_021D79D4 +MOD86_021D79D4: ; 0x021D79D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + ldr r0, [r5, #4] + cmp r0, #0 + bne _021D79F4 + mov r0, #2 + str r0, [sp, #0x18] + mov r0, #6 + str r0, [sp, #0x14] + mov r0, #8 + mov r7, #0xa + str r0, [sp, #0x10] + mov r6, #0 + mov r4, #4 + b _021D7A06 +_021D79F4: + mov r0, #3 + str r0, [sp, #0x18] + mov r0, #7 + str r0, [sp, #0x14] + mov r0, #9 + mov r7, #0xb + str r0, [sp, #0x10] + mov r6, #1 + mov r4, #5 +_021D7A06: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + add r1, r7, #0 + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r1, [sp, #0x18] + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #3 + bl FUN_0200687C + mov r0, #0x20 + str r0, [sp] + ldr r0, [r5] + mov r2, #0 + str r0, [sp, #4] + ldr r1, [sp, #0x14] + mov r0, #0x84 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + add r1, r7, #0 + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #7 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r1, [sp, #0x18] + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #7 + bl FUN_0200687C + mov r0, #0x20 + str r0, [sp] + ldr r0, [r5] + ldr r1, [sp, #0x14] + str r0, [sp, #4] + mov r0, #0x84 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r1, [sp, #0x10] + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #1 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r2, #0 + ldr r0, [r5, #0x10] + add r3, r2, #0 + bl FUN_020186B4 + ldr r0, [r5, #0x10] + mov r1, #1 + bl FUN_02017CD0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + add r1, r6, #0 + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #1 + bl FUN_0200687C + mov r3, #0x20 + str r3, [sp] + ldr r0, [r5] + add r1, r4, #0 + str r0, [sp, #4] + mov r0, #0x84 + mov r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r1, [sp, #0x10] + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r2, #0 + ldr r0, [r5, #0x10] + mov r1, #5 + add r3, r2, #0 + bl FUN_020186B4 + ldr r0, [r5, #0x10] + mov r1, #5 + bl FUN_02017CD0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + add r1, r6, #0 + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #5 + bl FUN_0200687C + mov r3, #0x20 + str r3, [sp] + ldr r0, [r5] + add r1, r4, #0 + str r0, [sp, #4] + mov r0, #0x84 + mov r2, #4 + bl FUN_02006930 + mov r0, #0 + ldr r3, [r5] + mov r1, #0x20 + add r2, r0, #0 + bl FUN_02017F18 + ldr r3, [r5] + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r2, [r5] + mov r0, #0 + mov r1, #0x40 + bl FUN_02002ED0 + ldr r2, [r5] + mov r0, #4 + mov r1, #0x40 + bl FUN_02002ED0 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD86_021D79D4 + + thumb_func_start MOD86_021D7B80 +MOD86_021D7B80: ; 0x021D7B80 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #2 + ldr r1, [r5] + lsl r0, r0, #8 + bl FUN_020219F4 + add r4, r0, #0 + mov r0, #2 + ldr r1, [r5] + lsl r0, r0, #8 + bl FUN_020219F4 + add r6, r0, #0 + ldr r0, [r5, #0x34] + mov r1, #0 + add r2, r6, #0 + bl FUN_0200A8E0 + ldr r0, [r5, #0x38] + ldr r2, [r5, #0xc] + mov r1, #0 + bl FUN_0200ABC0 + ldr r0, [r5, #0x38] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200B7B8 + mov r0, #0x20 + str r0, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x14 + add r2, r4, #0 + mov r3, #0x30 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + mov r0, #0x20 + str r0, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x24 + add r2, r4, #0 + mov r3, #0x30 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, [r5, #4] + cmp r0, #0 + bne _021D7C00 + mov r1, #1 + b _021D7C02 +_021D7C00: + mov r1, #2 +_021D7C02: + ldr r0, [r5, #0x34] + add r2, r4, #0 + bl FUN_0200A8E0 + mov r3, #0x40 + str r3, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x14 + add r2, r4, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + mov r3, #0x40 + str r3, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + str r1, [sp, #0xc] + add r0, #0x24 + add r2, r4, #0 + bl FUN_0201BDE0 + ldr r0, [r5, #0x34] + mov r1, #3 + add r2, r4, #0 + bl FUN_0200A8E0 + mov r0, #0x90 + str r0, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x14 + add r2, r4, #0 + mov r3, #0x8a + str r1, [sp, #0xc] + bl FUN_0201BDE0 + mov r0, #0x90 + str r0, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r5, #0x24 + add r0, r5, #0 + add r2, r4, #0 + mov r3, #0x8a + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021D7C84: .word 0x00010200 + thumb_func_end MOD86_021D7B80 + + .section .rodata + ; 0x021D7C88 + .incbin "baserom.nds", 0x30CDA8, 0x5C |