diff options
Diffstat (limited to 'arm9/asm/unk_0200A384.s')
-rw-r--r-- | arm9/asm/unk_0200A384.s | 539 |
1 files changed, 7 insertions, 532 deletions
diff --git a/arm9/asm/unk_0200A384.s b/arm9/asm/unk_0200A384.s index 26e615af..0016d0d7 100644 --- a/arm9/asm/unk_0200A384.s +++ b/arm9/asm/unk_0200A384.s @@ -6,538 +6,13 @@ .extern LoadSingleElementFromNarc .extern FreeMsgDataRawData .extern DecryptMessageDirect - - thumb_func_start DecryptMessageViaNewNarcHandle -DecryptMessageViaNewNarcHandle: ; 0x0200A418 - ; r0: narc_id - ; r1: ??? - ; r2: ??? - ; r3: heap_id - push {r4-r6, lr} - sub sp, #0x10 - add r5, r1, #0x0 - add r1, r3, #0x0 - add r4, r2, #0x0 - bl NARC_ctor - add r6, r0, #0x0 - beq _0200A4AE - add r1, sp, #0xc - str r1, [sp, #0x0] - add r1, r5, #0x0 - mov r2, #0x0 - mov r3, #0x4 - bl NARC_ReadFromMember - add r0, sp, #0x4 - lsl r2, r4, #0x3 - str r0, [sp, #0x0] - add r0, r6, #0x0 - add r1, r5, #0x0 - add r2, r2, #0x4 - mov r3, #0x8 - bl NARC_ReadFromMember - add r0, sp, #0x4 - ldrh r2, [r0, #0xa] - ldr r0, _0200A4B4 ; =0x000002FD - add r1, r4, #0x1 - mul r0, r2 - mul r0, r1 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - lsl r0, r1, #0x10 - orr r1, r0 - ldr r0, [sp, #0x4] - eor r0, r1 - str r0, [sp, #0x4] - ldr r0, [sp, #0x8] - eor r0, r1 - str r0, [sp, #0x8] - ldr r0, [sp, #0x20] - add r1, r5, #0x0 - str r0, [sp, #0x0] - ldr r3, [sp, #0x8] - ldr r2, [sp, #0x4] - add r0, r6, #0x0 - lsl r3, r3, #0x1 - bl NARC_ReadFromMember - ldr r2, _0200A4B8 ; =0x00091BD3 - add r3, r4, #0x1 - mul r2, r3 - lsl r2, r2, #0x10 - ldr r0, [sp, #0x8] - lsr r3, r2, #0x10 - sub r2, r0, #0x1 - ldr r1, [sp, #0x20] - cmp r0, #0x0 - beq _0200A4A8 - ldr r0, _0200A4BC ; =0x0000493D -_0200A492: - ldrh r4, [r1, #0x0] - eor r4, r3 - strh r4, [r1, #0x0] - add r3, r3, r0 - lsl r3, r3, #0x10 - add r4, r2, #0x0 - add r1, r1, #0x2 - lsr r3, r3, #0x10 - sub r2, r2, #0x1 - cmp r4, #0x0 - bne _0200A492 -_0200A4A8: - add r0, r6, #0x0 - bl NARC_dtor -_0200A4AE: - add sp, #0x10 - pop {r4-r6, pc} - nop -_0200A4B4: .word 0x000002FD -_0200A4B8: .word 0x00091BD3 -_0200A4BC: .word 0x0000493D - - thumb_func_start CopyEncryptedMessage16 -CopyEncryptedMessage16: ; 0x0200A4C0 - add r3, r0, #0x0 - add r0, r1, #0x0 - add r1, r3, #0x0 - ldr r2, [r2, #0x4] - ldr r3, _0200A4D0 ; =MIi_CpuCopy16 - lsl r2, r2, #0x1 - bx r3 - nop -_0200A4D0: .word MIi_CpuCopy16 - - thumb_func_start FUN_0200A4D4 -FUN_0200A4D4: ; 0x0200A4D4 - push {r3-r7, lr} - sub sp, #0x10 - add r5, r0, #0x0 - ldrh r0, [r5, #0x0] - add r4, r1, #0x0 - str r2, [sp, #0x0] - cmp r4, r0 - bhs _0200A56A - lsl r0, r4, #0x3 - add r0, r5, r0 - ldr r3, [r0, #0x4] - ldr r2, [r0, #0x8] - ldrh r1, [r5, #0x2] - ldr r6, _0200A578 ; =0x000002FD - add r0, r4, #0x1 - mul r6, r1 - add r1, r0, #0x0 - mul r1, r6 - lsl r0, r1, #0x10 - lsr r1, r0, #0x10 - lsl r0, r1, #0x10 - orr r1, r0 - add r0, r3, #0x0 - add r6, r2, #0x0 - str r3, [sp, #0x8] - eor r0, r1 - eor r6, r1 - str r0, [sp, #0x8] - lsl r0, r6, #0x1 - str r0, [sp, #0x4] - str r2, [sp, #0xc] - ldr r1, [sp, #0x4] - mov r0, #0x0 - str r6, [sp, #0xc] - bl AllocFromHeapAtEnd - add r7, r0, #0x0 - beq _0200A574 - ldr r0, [sp, #0x8] - ldr r2, [sp, #0x4] - add r0, r5, r0 - add r1, r7, #0x0 - bl MIi_CpuCopy16 - ldr r1, _0200A57C ; =0x00091BD3 - add r2, r4, #0x1 - mul r1, r2 - lsl r1, r1, #0x10 - lsr r2, r1, #0x10 - add r0, r7, #0x0 - sub r1, r6, #0x1 - cmp r6, #0x0 - beq _0200A556 - ldr r3, _0200A580 ; =0x0000493D -_0200A540: - ldrh r4, [r0, #0x0] - eor r4, r2 - strh r4, [r0, #0x0] - add r2, r2, r3 - lsl r2, r2, #0x10 - add r4, r1, #0x0 - add r0, r0, #0x2 - lsr r2, r2, #0x10 - sub r1, r1, #0x1 - cmp r4, #0x0 - bne _0200A540 -_0200A556: - ldr r0, [sp, #0x0] - add r1, r7, #0x0 - add r2, r6, #0x0 - bl FUN_02021E8C - add r0, r7, #0x0 - bl FreeToHeap - add sp, #0x10 - pop {r3-r7, pc} -_0200A56A: - bl ErrorHandling - ldr r0, [sp, #0x0] - bl FUN_02021A4C -_0200A574: - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 -_0200A578: .word 0x000002FD -_0200A57C: .word 0x00091BD3 -_0200A580: .word 0x0000493D - - thumb_func_start FUN_0200A584 -FUN_0200A584: ; 0x0200A584 - push {r3-r7, lr} - sub sp, #0x10 - add r5, r0, #0x0 - ldrh r0, [r5, #0x0] - add r4, r1, #0x0 - str r2, [sp, #0x0] - cmp r4, r0 - bhs _0200A62C - lsl r0, r4, #0x3 - add r0, r5, r0 - ldr r3, [r0, #0x4] - ldr r2, [r0, #0x8] - ldrh r1, [r5, #0x2] - ldr r6, _0200A63C ; =0x000002FD - add r0, r4, #0x1 - mul r6, r1 - add r1, r0, #0x0 - mul r1, r6 - lsl r0, r1, #0x10 - lsr r1, r0, #0x10 - lsl r0, r1, #0x10 - orr r1, r0 - add r0, r3, #0x0 - add r6, r2, #0x0 - str r3, [sp, #0x8] - eor r0, r1 - eor r6, r1 - str r0, [sp, #0x8] - lsl r0, r6, #0x1 - str r0, [sp, #0x4] - str r2, [sp, #0xc] - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - str r6, [sp, #0xc] - bl AllocFromHeapAtEnd - add r7, r0, #0x0 - beq _0200A626 - ldr r0, [sp, #0x8] - ldr r2, [sp, #0x4] - add r0, r5, r0 - add r1, r7, #0x0 - bl MIi_CpuCopy16 - ldr r1, _0200A640 ; =0x00091BD3 - add r2, r4, #0x1 - mul r1, r2 - lsl r1, r1, #0x10 - lsr r2, r1, #0x10 - add r0, r7, #0x0 - sub r1, r6, #0x1 - cmp r6, #0x0 - beq _0200A606 - ldr r3, _0200A644 ; =0x0000493D -_0200A5F0: - ldrh r4, [r0, #0x0] - eor r4, r2 - strh r4, [r0, #0x0] - add r2, r2, r3 - lsl r2, r2, #0x10 - add r4, r1, #0x0 - add r0, r0, #0x2 - lsr r2, r2, #0x10 - sub r1, r1, #0x1 - cmp r4, #0x0 - bne _0200A5F0 -_0200A606: - ldr r1, [sp, #0x0] - add r0, r6, #0x0 - bl FUN_020219F4 - add r4, r0, #0x0 - beq _0200A61A - add r1, r7, #0x0 - add r2, r6, #0x0 - bl FUN_02021E8C -_0200A61A: - add r0, r7, #0x0 - bl FreeToHeap - add sp, #0x10 - add r0, r4, #0x0 - pop {r3-r7, pc} -_0200A626: - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0200A62C: - bl ErrorHandling - ldr r1, [sp, #0x0] - mov r0, #0x4 - bl FUN_020219F4 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 -_0200A63C: .word 0x000002FD -_0200A640: .word 0x00091BD3 -_0200A644: .word 0x0000493D - - thumb_func_start FUN_0200A648 -FUN_0200A648: ; 0x0200A648 - push {r3-r7, lr} - add r7, r3, #0x0 - add r5, r1, #0x0 - add r1, r7, #0x0 - add r4, r2, #0x0 - bl NARC_ctor - add r6, r0, #0x0 - beq _0200A66E - ldr r1, [sp, #0x18] - add r2, r4, #0x0 - str r1, [sp, #0x0] - add r1, r5, #0x0 - add r3, r7, #0x0 - bl FUN_0200A670 - add r0, r6, #0x0 - bl NARC_dtor -_0200A66E: - pop {r3-r7, pc} - - thumb_func_start FUN_0200A670 -FUN_0200A670: ; 0x0200A670 - push {r4-r7, lr} - sub sp, #0x14 - add r5, r2, #0x0 - add r2, sp, #0x10 - add r4, r3, #0x0 - str r2, [sp, #0x0] - mov r2, #0x0 - mov r3, #0x4 - add r7, r0, #0x0 - str r1, [sp, #0x4] - bl NARC_ReadFromMember - add r0, sp, #0x8 - ldrh r0, [r0, #0x8] - cmp r5, r0 - bhs _0200A71E - add r0, sp, #0x8 - lsl r2, r5, #0x3 - str r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r7, #0x0 - add r2, r2, #0x4 - mov r3, #0x8 - bl NARC_ReadFromMember - add r0, sp, #0x8 - ldrh r2, [r0, #0xa] - ldr r0, _0200A72C ; =0x000002FD - add r1, r5, #0x1 - mul r0, r2 - mul r0, r1 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - lsl r0, r1, #0x10 - orr r1, r0 - ldr r0, [sp, #0x8] - eor r0, r1 - str r0, [sp, #0x8] - ldr r0, [sp, #0xc] - eor r0, r1 - lsl r6, r0, #0x1 - str r0, [sp, #0xc] - add r0, r4, #0x0 - add r1, r6, #0x0 - bl AllocFromHeapAtEnd - add r4, r0, #0x0 - beq _0200A728 - str r4, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x8] - add r0, r7, #0x0 - add r3, r6, #0x0 - bl NARC_ReadFromMember - ldr r2, _0200A730 ; =0x00091BD3 - add r3, r5, #0x1 - mul r2, r3 - lsl r2, r2, #0x10 - ldr r0, [sp, #0xc] - lsr r3, r2, #0x10 - add r1, r4, #0x0 - sub r2, r0, #0x1 - cmp r0, #0x0 - beq _0200A70A - ldr r0, _0200A734 ; =0x0000493D -_0200A6F4: - ldrh r5, [r1, #0x0] - eor r5, r3 - strh r5, [r1, #0x0] - add r3, r3, r0 - lsl r3, r3, #0x10 - add r5, r2, #0x0 - add r1, r1, #0x2 - lsr r3, r3, #0x10 - sub r2, r2, #0x1 - cmp r5, #0x0 - bne _0200A6F4 -_0200A70A: - ldr r0, [sp, #0x28] - ldr r2, [sp, #0xc] - add r1, r4, #0x0 - bl FUN_02021E8C - add r0, r4, #0x0 - bl FreeToHeap - add sp, #0x14 - pop {r4-r7, pc} -_0200A71E: - bl ErrorHandling - ldr r0, [sp, #0x28] - bl FUN_02021A4C -_0200A728: - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_0200A72C: .word 0x000002FD -_0200A730: .word 0x00091BD3 -_0200A734: .word 0x0000493D - - thumb_func_start FUN_0200A738 -FUN_0200A738: ; 0x0200A738 - push {r3-r7, lr} - add r6, r3, #0x0 - add r5, r1, #0x0 - add r1, r6, #0x0 - add r4, r2, #0x0 - bl NARC_ctor - add r7, r0, #0x0 - beq _0200A75E - add r1, r5, #0x0 - add r2, r4, #0x0 - add r3, r6, #0x0 - bl FUN_0200A76C - add r4, r0, #0x0 - add r0, r7, #0x0 - bl NARC_dtor - b _0200A768 -_0200A75E: - mov r0, #0x4 - add r1, r6, #0x0 - bl FUN_020219F4 - add r4, r0, #0x0 -_0200A768: - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_0200A76C -FUN_0200A76C: ; 0x0200A76C - push {r3-r7, lr} - sub sp, #0x18 - add r4, r2, #0x0 - add r2, sp, #0x14 - add r5, r3, #0x0 - str r2, [sp, #0x0] - mov r2, #0x0 - mov r3, #0x4 - add r7, r0, #0x0 - str r1, [sp, #0x4] - bl NARC_ReadFromMember - add r0, sp, #0xc - ldrh r0, [r0, #0x8] - cmp r4, r0 - bhs _0200A82A - add r0, sp, #0xc - lsl r2, r4, #0x3 - str r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r7, #0x0 - add r2, r2, #0x4 - mov r3, #0x8 - bl NARC_ReadFromMember - add r0, sp, #0xc - ldrh r2, [r0, #0xa] - ldr r0, _0200A83C ; =0x000002FD - add r1, r4, #0x1 - mul r0, r2 - mul r0, r1 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - lsl r0, r1, #0x10 - orr r1, r0 - ldr r0, [sp, #0xc] - eor r0, r1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x10] - eor r0, r1 - add r1, r5, #0x0 - str r0, [sp, #0x10] - bl FUN_020219F4 - str r0, [sp, #0x8] - cmp r0, #0x0 - beq _0200A824 - ldr r0, [sp, #0x10] - lsl r6, r0, #0x1 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl AllocFromHeapAtEnd - add r5, r0, #0x0 - beq _0200A824 - str r5, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r2, [sp, #0xc] - add r0, r7, #0x0 - add r3, r6, #0x0 - bl NARC_ReadFromMember - ldr r2, _0200A840 ; =0x00091BD3 - add r3, r4, #0x1 - mul r2, r3 - lsl r2, r2, #0x10 - ldr r0, [sp, #0x10] - lsr r3, r2, #0x10 - add r1, r5, #0x0 - sub r2, r0, #0x1 - cmp r0, #0x0 - beq _0200A814 - ldr r0, _0200A844 ; =0x0000493D -_0200A7FE: - ldrh r4, [r1, #0x0] - eor r4, r3 - strh r4, [r1, #0x0] - add r3, r3, r0 - lsl r3, r3, #0x10 - add r4, r2, #0x0 - add r1, r1, #0x2 - lsr r3, r3, #0x10 - sub r2, r2, #0x1 - cmp r4, #0x0 - bne _0200A7FE -_0200A814: - ldr r0, [sp, #0x8] - ldr r2, [sp, #0x10] - add r1, r5, #0x0 - bl FUN_02021E8C - add r0, r5, #0x0 - bl FreeToHeap -_0200A824: - ldr r0, [sp, #0x8] - add sp, #0x18 - pop {r3-r7, pc} -_0200A82A: - bl ErrorHandling - mov r0, #0x4 - add r1, r5, #0x0 - bl FUN_020219F4 - add sp, #0x18 - pop {r3-r7, pc} - nop -_0200A83C: .word 0x000002FD -_0200A840: .word 0x00091BD3 -_0200A844: .word 0x0000493D +.extern DecryptMessageViaNewNarcHandle +.extern CopyEncryptedMessage16 +.extern FUN_0200A4D4 +.extern FUN_0200A584 +.extern FUN_0200A648 +.extern FUN_0200A670 +.extern FUN_0200A76C thumb_func_start FUN_0200A848 FUN_0200A848: ; 0x0200A848 |