Function at 0x180009550
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
test r9, r9
jne 0x180009582
mov r11d, 0x61707865
mov ebx, 0x3320646e
mov edi, 0x79622d32
mov r9d, 0x6b206574
jmp 0x180009591
mov r11d, dword [r9]
mov ebx, dword [r9 + 4]
mov edi, dword [r9 + 8]
mov r9d, dword [r9 + 0xc]
mov ecx, dword [r8 + 0x18]
mov eax, dword [rdx + 8]
mov esi, dword [r8]
mov ebp, dword [r8 + 4]
mov r12d, dword [r8 + 8]
mov r13d, dword [r8 + 0xc]
mov r14d, dword [rdx]
mov r15d, dword [rdx + 4]
mov r10d, dword [rdx + 0xc]
mov dword [rsp + 0x24], eax
mov eax, dword [r8 + 0x10]
mov dword [rsp + 0xd8], ecx
mov dword [rsp + 0x60], ecx
mov ecx, dword [r8 + 0x1c]
mov dword [rsp + 0xc8], eax
mov dword [rsp + 0x50], eax
mov eax, dword [r8 + 0x14]
mov r8d, dword [rsp + 0x24]
mov dword [rsp + 0xd0], eax
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x2c], ebx
mov dword [rsp + 0x34], r11d
mov dword [rsp + 0x64], esi
mov dword [rsp + 0x44], ebp
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x4c], r13d
mov dword [rsp + 0x5c], r14d
mov dword [rsp + 0x54], r15d
mov dword [rsp + 0x48], r10d
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x68], ecx
mov qword [rsp + 0x38], 0xa
jmp 0x180009637
mov eax, dword [rsp + 0xd0]
lea ecx, [rax + r11]
mov edx, 7
call fcn.180009540
mov edx, 9
xor r13d, eax
lea ecx, [r13 + r11]
call fcn.180009540
mov edx, 0xd
xor r8d, eax
lea ecx, [r8 + r13]
call fcn.180009540
mov ecx, dword [rsp + 0xd0]
mov edx, 0x12
xor ecx, eax
mov dword [rsp + 0xd0], ecx
add ecx, r8d
call fcn.180009540
lea ecx, [rsi + rbx]
mov edx, 7
xor r11d, eax
call fcn.180009540
mov edx, 9
xor r10d, eax
lea ecx, [r10 + rbx]
call fcn.180009540
mov ecx, dword [rsp + 0xd8]
mov edx, 0xd
xor ecx, eax
mov dword [rsp + 0xd8], ecx
add ecx, r10d
call fcn.180009540
mov ecx, dword [rsp + 0xd8]
mov edx, 0x12
xor esi, eax
add ecx, esi
call fcn.180009540
lea ecx, [r14 + rdi]
mov edx, 7
xor ebx, eax
call fcn.180009540
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov edx, 9
mov dword [rsp + 0x20], ecx
add ecx, edi
call fcn.180009540
mov ecx, dword [rsp + 0x20]
mov edx, 0xd
xor ebp, eax
add ecx, ebp
call fcn.180009540
mov edx, 0x12
xor r14d, eax
lea ecx, [r14 + rbp]
call fcn.180009540
mov ecx, dword [rsp + 0xc8]
mov edx, 7
add ecx, r9d
xor edi, eax
call fcn.180009540
mov edx, 9
xor r12d, eax
lea ecx, [r12 + r9]
call fcn.180009540
mov edx, 0xd
xor r15d, eax
lea ecx, [r15 + r12]
call fcn.180009540
mov ecx, dword [rsp + 0xc8]
mov edx, 0x12
xor ecx, eax
mov dword [rsp + 0xc8], ecx
add ecx, r15d
call fcn.180009540
lea ecx, [r12 + r11]
mov edx, 7
xor r9d, eax
call fcn.180009540
mov edx, 9
xor esi, eax
lea ecx, [rsi + r11]
call fcn.180009540
mov edx, 0xd
xor ebp, eax
lea ecx, [rbp + rsi]
call fcn.180009540
mov edx, 0x12
xor r12d, eax
lea ecx, [r12 + rbp]
call fcn.180009540
lea ecx, [r13 + rbx]
mov edx, 7
xor r11d, eax
call fcn.180009540
mov edx, 9
xor r14d, eax
lea ecx, [r14 + rbx]
call fcn.180009540
mov edx, 0xd
xor r15d, eax
lea ecx, [r15 + r14]
call fcn.180009540
mov edx, 0x12
xor r13d, eax
lea ecx, [r15 + r13]
call fcn.180009540
lea ecx, [r10 + rdi]
mov edx, 7
xor ebx, eax
call fcn.180009540
mov ecx, dword [rsp + 0xc8]
xor ecx, eax
mov edx, 9
mov dword [rsp + 0xc8], ecx
add ecx, edi
call fcn.180009540
mov ecx, dword [rsp + 0xc8]
mov edx, 0xd
xor r8d, eax
add ecx, r8d
call fcn.180009540
mov edx, 0x12
xor r10d, eax
lea ecx, [r10 + r8]
call fcn.180009540
mov ecx, dword [rsp + 0x20]
mov edx, 7
add ecx, r9d
xor edi, eax
call fcn.180009540
mov ecx, dword [rsp + 0xd0]
mov edx, 9
xor ecx, eax
mov dword [rsp + 0xd0], ecx
add ecx, r9d
call fcn.180009540
mov ecx, dword [rsp + 0xd8]
mov edx, 0xd
xor ecx, eax
mov dword [rsp + 0xd8], ecx
add ecx, dword [rsp + 0xd0]
call fcn.180009540
mov ecx, dword [rsp + 0x20]
mov edx, 0x12
xor ecx, eax
mov dword [rsp + 0x20], ecx
add ecx, dword [rsp + 0xd8]
call fcn.180009540
xor r9d, eax
dec qword [rsp + 0x38]
jne 0x180009630
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x38], r10d
mov r10, qword [rsp + 0xc0]
add eax, r11d
mov dword [r10], eax
mov eax, dword [rsp + 0x64]
add eax, esi
mov dword [r10 + 4], eax
mov eax, dword [rsp + 0x44]
add eax, ebp
mov dword [r10 + 8], eax
mov eax, dword [rsp + 0x40]
add eax, r12d
mov dword [r10 + 0xc], eax
mov eax, dword [rsp + 0x4c]
add eax, r13d
mov dword [r10 + 0x10], eax
mov eax, dword [rsp + 0x2c]
add eax, ebx
mov dword [r10 + 0x14], eax
mov eax, dword [rsp + 0x5c]
add eax, r14d
mov dword [r10 + 0x18], eax
mov eax, dword [rsp + 0x54]
add eax, r15d
mov dword [r10 + 0x1c], eax
mov eax, dword [rsp + 0x24]
add eax, r8d
mov dword [r10 + 0x20], eax
mov eax, dword [rsp + 0x38]
add eax, dword [rsp + 0x48]
mov dword [r10 + 0x24], eax
mov eax, dword [rsp + 0x28]
add eax, edi
mov dword [r10 + 0x28], eax
mov eax, dword [rsp + 0xc8]
add eax, dword [rsp + 0x50]
mov dword [r10 + 0x2c], eax
mov eax, dword [rsp + 0xd0]
add eax, dword [rsp + 0x58]
mov dword [r10 + 0x30], eax
mov eax, dword [rsp + 0xd8]
add eax, dword [rsp + 0x60]
mov dword [r10 + 0x34], eax
mov eax, dword [rsp + 0x20]
add eax, dword [rsp + 0x68]
mov dword [r10 + 0x38], eax
mov eax, dword [rsp + 0x30]
add eax, r9d
mov dword [r10 + 0x3c], eax
xor eax, eax
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret