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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
mov eax, 4
imul rax, rax, 0
mov rcx, qword [rsp + 8]
mov dword [rcx + rax], 0x61707865
mov eax, 4
imul rax, rax, 1
mov rcx, qword [rsp + 8]
mov dword [rcx + rax], 0x3320646e
mov eax, 4
imul rax, rax, 2
mov rcx, qword [rsp + 8]
mov dword [rcx + rax], 0x79622d32
mov eax, 4
imul rax, rax, 3
mov rcx, qword [rsp + 8]
mov dword [rcx + rax], 0x6b206574
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x10]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 4
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x10]
movzx eax, byte [rcx + rax + 4]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 4]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 4]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 4]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 5
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x10]
movzx eax, byte [rcx + rax + 8]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 8]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 8]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 8]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 6
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x10]
movzx eax, byte [rcx + rax + 0xc]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0xc]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0xc]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0xc]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 7
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x10]
movzx eax, byte [rcx + rax + 0x10]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x10]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x10]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x10]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 8
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x10]
movzx eax, byte [rcx + rax + 0x14]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x14]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x14]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x14]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 9
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x10]
movzx eax, byte [rcx + rax + 0x18]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x18]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x18]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x18]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 0xa
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x10]
movzx eax, byte [rcx + rax + 0x1c]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x1c]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x1c]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx + 0x1c]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 0xb
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 0xc
mov rcx, qword [rsp + 8]
mov edx, dword [rsp + 0x20]
mov dword [rcx + rax], edx
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x18]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x18]
movzx ecx, byte [rdx + rcx]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x18]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x18]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 0xd
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x18]
movzx eax, byte [rcx + rax + 4]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x18]
movzx ecx, byte [rdx + rcx + 4]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x18]
movzx ecx, byte [rdx + rcx + 4]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x18]
movzx ecx, byte [rdx + rcx + 4]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 0xe
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x18]
movzx eax, byte [rcx + rax + 8]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x18]
movzx ecx, byte [rdx + rcx + 8]
shl ecx, 8
or eax, ecx
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x18]
movzx ecx, byte [rdx + rcx + 8]
shl ecx, 0x10
or eax, ecx
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x18]
movzx ecx, byte [rdx + rcx + 8]
shl ecx, 0x18
or eax, ecx
mov ecx, 4
imul rcx, rcx, 0xf
mov rdx, qword [rsp + 8]
mov dword [rdx + rcx], eax
ret