Function at 0x14015b310
Capabilities:
Encrypt data using salsa20 or chacha
Resolve function by parsing pe exports

Disassembly:
test rdx, rdx
je 0x14015b82d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x108
mov qword [rsp + 0x120], rbx
mov r11, r9
mov r9d, dword [r8 + 8]
xor eax, eax
mov rbx, qword [rsp + 0x130]
mov r10, rcx
mov ecx, dword [r8 + 4]
mov qword [rsp + 0x100], rbp
mov qword [rsp + 0xf8], rsi
mov esi, eax
mov qword [rsp + 0xf0], rdi
mov edi, eax
mov dword [rsp + 0x44], r9d
mov r9d, dword [r8 + 0xc]
mov dword [rsp + 0x48], r9d
mov r9d, dword [r8 + 0x10]
mov qword [rsp + 0xe8], r12
mov dword [rsp + 0x4c], r9d
mov r9d, dword [r8 + 0x14]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0xe0], r13
mov dword [rsp + 0x34], eax
mov eax, dword [r11]
mov qword [rsp + 0xd8], r14
mov r14d, dword [r8]
mov dword [rsp + 0x50], r9d
mov r9d, dword [r8 + 0x18]
mov r8d, dword [r8 + 0x1c]
mov dword [rsp + 0x58], eax
mov eax, dword [r11 + 4]
mov dword [rsp + 0x40], r8d
mov qword [rsp + 0xd0], r15
mov dword [rsp + 0x60], r14d
mov dword [rsp + 0x3c], ecx
mov dword [rsp + 0x54], r9d
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x38], edi
cmp rdx, 0x40
jae 0x14015b42d
mov r8, rdx
lea rcx, [rsp + 0x90]
mov rdx, r10
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [rsp + 0x3c]
lea r10, [rsp + 0x90]
mov r8d, dword [rsp + 0x40]
mov qword [rsp + 0x88], rbx
lea rbx, [rsp + 0x90]
mov qword [rsp + 0x110], r10
mov qword [rsp + 0x130], rbx
mov eax, dword [rsp + 0x44]
mov r9d, r14d
mov r10d, dword [rsp + 0x4c]
mov r11d, esi
mov ebx, dword [rsp + 0x50]
mov ebp, 0x61707865
mov edx, dword [rsp + 0x54]
mov r15d, 0x3320646e
mov esi, dword [rsp + 0x58]
mov r13d, 0x79622d32
mov r14d, dword [rsp + 0x5c]
mov r12d, 0x6b206574
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x68], 4
jmp 0x14015b48b
mov r8d, dword [rsp + 0x28]
mov edx, ecx
mov ecx, dword [rsp + 0x2c]
add r13d, dword [rsp + 0x20]
add r15d, ecx
add r12d, dword [rsp + 0x30]
add ebp, r9d
xor r11d, ebp
xor r14d, r12d
rol r14d, 0x10
xor edi, r15d
add r8d, r14d
rol r11d, 0x10
add r10d, r11d
rol edi, 0x10
add ebx, edi
xor esi, r13d
rol esi, 0x10
mov eax, r10d
xor eax, r9d
add edx, esi
rol eax, 0xc
add ebp, eax
xor r11d, ebp
rol r11d, 8
add r10d, r11d
mov r9d, r10d
xor r9d, eax
mov eax, ebx
xor eax, ecx
rol r9d, 7
rol eax, 0xc
add r15d, eax
xor edi, r15d
rol edi, 8
add ebx, edi
mov ecx, ebx
xor ecx, eax
mov eax, edx
xor eax, dword [rsp + 0x20]
rol eax, 0xc
add r13d, eax
rol ecx, 7
add ebp, ecx
xor esi, r13d
rol esi, 8
add edx, esi
mov dword [rsp + 0x24], edx
xor edx, eax
mov eax, r8d
rol edx, 7
xor eax, dword [rsp + 0x30]
add r15d, edx
rol eax, 0xc
xor r11d, r15d
add r12d, eax
rol r11d, 0x10
xor r14d, r12d
rol r14d, 8
add r8d, r14d
xor r14d, ebp
mov dword [rsp + 0x28], r8d
xor r8d, eax
mov eax, dword [rsp + 0x24]
rol r14d, 0x10
add eax, r14d
rol r8d, 7
mov dword [rsp + 0x24], eax
xor eax, ecx
mov ecx, dword [rsp + 0x24]
rol eax, 0xc
add ebp, eax
xor r14d, ebp
rol r14d, 8
add ecx, r14d
mov dword [rsp + 0x2c], ecx
xor dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x28]
rol dword [rsp + 0x2c], 7
add eax, r11d
mov dword [rsp + 0x28], eax
xor eax, edx
rol eax, 0xc
add r15d, eax
mov edx, dword [rsp + 0x28]
add r13d, r8d
add r12d, r9d
xor edi, r13d
xor esi, r12d
rol edi, 0x10
add r10d, edi
rol esi, 0x10
add ebx, esi
xor r11d, r15d
rol r11d, 8
add edx, r11d
mov dword [rsp + 0x20], edx
xor dword [rsp + 0x20], eax
mov eax, r10d
rol dword [rsp + 0x20], 7
xor eax, r8d
rol eax, 0xc
add r13d, eax
mov dword [rsp + 0x28], edx
xor edi, r13d
rol edi, 8
add r10d, edi
mov r8d, r10d
xor r8d, eax
mov eax, ebx
xor eax, r9d
rol r8d, 7
rol eax, 0xc
add r12d, eax
mov dword [rsp + 0x30], r8d
xor esi, r12d
rol esi, 8
add ebx, esi
mov r9d, ebx
xor r9d, eax
rol r9d, 7
sub qword [rsp + 0x68], 1
jne 0x14015b480
mov dword [rsp + 0x30], r10d
lea eax, [r15 + 0x3320646e]
mov r10, qword [rsp + 0x110]
mov r15d, dword [rsp + 0x2c]
add r15d, dword [rsp + 0x3c]
mov dword [rsp + 0x7c], ebp
xor eax, dword [r10 + 4]
xor r15d, dword [r10 + 0x14]
mov ebp, dword [rsp + 0x48]
mov dword [rsp + 0x80], eax
add ebp, r8d
xor ebp, dword [r10 + 0x1c]
lea eax, [r13 + 0x79622d32]
xor eax, dword [r10 + 8]
lea r13d, [r12 + 0x6b206574]
xor r13d, dword [r10 + 0xc]
mov r12d, dword [rsp + 0x60]
mov dword [rsp + 0x84], eax
add r12d, r9d
xor r12d, dword [r10 + 0x10]
mov rax, qword [rsp + 0x110]
mov dword [rsp + 0x78], r14d
mov r14d, dword [rsp + 0x20]
add r14d, dword [rsp + 0x44]
xor r14d, dword [r10 + 0x18]
mov dword [rsp + 0x74], esi
mov esi, dword [rsp + 0x30]
add esi, dword [rsp + 0x4c]
xor esi, dword [r10 + 0x20]
mov dword [rsp + 0x70], edi
mov edi, ebx
mov rbx, qword [rsp + 0x130]
add edi, dword [rsp + 0x50]
xor edi, dword [r10 + 0x24]
mov r8d, dword [rsp + 0x70]
add r8d, dword [rsp + 0x38]
xor r8d, dword [rax + 0x34]
mov dword [rsp + 0x24], r11d
mov r11d, dword [rsp + 0x54]
mov r9d, dword [rsp + 0x24]
add r11d, ecx
xor r11d, dword [r10 + 0x28]
mov r10d, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x78]
add r10d, edx
xor r10d, dword [rax + 0x2c]
mov edx, dword [rsp + 0x58]
add edx, dword [rsp + 0x74]
xor edx, dword [rax + 0x38]
add ecx, dword [rsp + 0x5c]
xor ecx, dword [rax + 0x3c]
mov dword [rsp + 0x68], r13d
mov r13d, dword [rsp + 0x34]
add r9d, r13d
xor r9d, dword [rax + 0x30]
inc r13d
mov eax, dword [rsp + 0x7c]
add eax, 0x61707865
mov dword [rsp + 0x34], r13d
mov r13, qword [rsp + 0x110]
xor eax, dword [r13]
mov r13d, dword [rsp + 0x68]
mov dword [rbx], eax
mov eax, dword [rsp + 0x80]
mov dword [rbx + 4], eax
mov eax, dword [rsp + 0x84]
mov dword [rbx + 0x38], edx
mov rdx, qword [rsp + 0x118]
mov dword [rbx + 8], eax
mov dword [rbx + 0xc], r13d
mov dword [rbx + 0x10], r12d
mov dword [rbx + 0x14], r15d
mov dword [rbx + 0x18], r14d
mov dword [rbx + 0x1c], ebp
mov dword [rbx + 0x20], esi
mov dword [rbx + 0x24], edi
mov dword [rbx + 0x28], r11d
mov dword [rbx + 0x2c], r10d
mov dword [rbx + 0x30], r9d
mov dword [rbx + 0x34], r8d
mov dword [rbx + 0x3c], ecx
cmp rdx, 0x40
jbe 0x14015b7d1
mov edi, dword [rsp + 0x38]
sub rdx, 0x40
mov r10, qword [rsp + 0x110]
add rbx, 0x40
mov esi, dword [rsp + 0x34]
add r10, 0x40
mov r14d, dword [rsp + 0x60]
test esi, esi
mov ecx, dword [rsp + 0x3c]
lea eax, [rdi + 1]
mov r8d, dword [rsp + 0x40]
cmovne eax, edi
mov edi, eax
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x110], r10
jmp 0x14015b3df
mov r15, qword [rsp + 0xd0]
mov r14, qword [rsp + 0xd8]
mov r13, qword [rsp + 0xe0]
mov r12, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0xf8]
mov rbp, qword [rsp + 0x100]
jae 0x14015b81e
mov rcx, qword [rsp + 0x88]
mov r8, rdx
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rbx, qword [rsp + 0x120]
add rsp, 0x108
ret