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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x20]
cmp rax, qword [rcx + 0x10]
jbe 0x58877a
sub rsp, 0xa0
mov qword [rsp + 0x98], rbp
lea rbp, [rsp + 0x98]
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xb8]
cmp rax, rcx
jne 0x58875d
test rcx, 0x3f
jne 0x58875d
mov rdx, qword [rsp + 0xa8]
mov ebx, dword [rdx]
mov esi, dword [rdx + 4]
mov edi, dword [rdx + 8]
mov r8d, dword [rdx + 0xc]
mov r9d, dword [rdx + 0x10]
mov dword [rsp + 0x44], r9d
mov r10d, dword [rdx + 0x14]
mov dword [rsp + 0x54], r10d
mov r11d, dword [rdx + 0x18]
mov r12d, dword [rdx + 0x1c]
mov r13d, dword [rdx + 0x24]
mov dword [rsp + 0x48], r13d
mov r14d, dword [rdx + 0x28]
mov dword [rsp + 0x58], r14d
mov r15d, dword [rdx + 0x2c]
cmp byte [rdx + 0x79], 0
je 0x58863e
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x3c], edi
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x60], r11d
mov dword [rsp + 0x4c], r12d
mov dword [rsp + 0x5c], r15d
jmp 0x58848a
inc r13
mov qword [rsp + 0x78], r13
nop
nop
nop
nop
nop
add r8d, r9d
xor ebx, r8d
rol ebx, 0x10
add edi, ebx
xor r9d, edi
rol r9d, 0xc
add r8d, r9d
xor ebx, r8d
rol ebx, 8
add edi, ebx
xor r9d, edi
rol r9d, 7
mov r13d, dword [rsp + 0x64]
add r15d, r13d
xor r10d, r15d
rol r10d, 0x10
add ecx, r10d
xor r13d, ecx
rol r13d, 0xc
add r15d, r13d
xor r10d, r15d
rol r10d, 8
add ecx, r10d
mov dword [rsp + 0x34], ecx
xor r13d, ecx
rol r13d, 7
add r12d, r14d
xor eax, r12d
rol eax, 0x10
mov ecx, dword [rsp + 0x6c]
add ecx, eax
xor r14d, ecx
rol r14d, 0xc
add r12d, r14d
xor eax, r12d
rol eax, 8
mov dword [rsp + 0x24], eax
add ecx, eax
xor r14d, ecx
rol r14d, 7
add edx, r11d
xor esi, edx
rol esi, 0x10
mov eax, dword [rsp + 0x68]
add eax, esi
xor r11d, eax
rol r11d, 0xc
add edx, r11d
xor esi, edx
rol esi, 8
add eax, esi
xor r11d, eax
rol r11d, 7
add r8d, r13d
xor esi, r8d
rol esi, 0x10
add ecx, esi
xor r13d, ecx
rol r13d, 0xc
add r8d, r13d
xor esi, r8d
rol esi, 8
add ecx, esi
mov dword [rsp + 0x14], ecx
xor r13d, ecx
rol r13d, 7
add r15d, r14d
xor ebx, r15d
rol ebx, 0x10
add eax, ebx
xor r14d, eax
rol r14d, 0xc
add r15d, r14d
xor ebx, r15d
rol ebx, 8
add eax, ebx
mov dword [rsp + 0x10], eax
xor r14d, eax
rol r14d, 7
add r12d, r11d
xor r10d, r12d
rol r10d, 0x10
add edi, r10d
xor r11d, edi
rol r11d, 0xc
add r12d, r11d
xor r10d, r12d
rol r10d, 8
add edi, r10d
xor r11d, edi
rol r11d, 7
add edx, r9d
mov eax, dword [rsp + 0x24]
xor eax, edx
rol eax, 0x10
mov ecx, dword [rsp + 0x34]
add ecx, eax
xor r9d, ecx
rol r9d, 0xc
add edx, r9d
xor eax, edx
rol eax, 8
add ecx, eax
xor r9d, ecx
rol r9d, 7
mov dword [rsp + 0x64], r13d
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x14]
mov dword [rsp + 0x6c], eax
mov r13d, dword [rsp + 0x10]
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x68], r13d
mov r13, qword [rsp + 0x78]
cmp r13, 9
jl 0x58812f
mov dword [rsp + 0x74], esi
nop
add r8d, 0x61707865
mov r13, qword [rsp + 0xc8]
xor r8d, dword [r13]
mov rsi, qword [rsp + 0xb0]
mov dword [rsi], r8d
nop
lea r8d, [r15 + 0x3320646e]
xor r8d, dword [r13 + 4]
mov dword [rsi + 4], r8d
nop
lea r8d, [r12 + 0x79622d32]
xor r8d, dword [r13 + 8]
mov dword [rsi + 8], r8d
nop
add edx, 0x6b206574
xor edx, dword [r13 + 0xc]
mov dword [rsi + 0xc], edx
nop
mov edx, dword [rsp + 0x50]
lea r8d, [rdx + r9]
xor r8d, dword [r13 + 0x10]
mov dword [rsi + 0x10], r8d
nop
mov r8d, dword [rsp + 0x64]
mov r9d, dword [rsp + 0x38]
add r8d, r9d
xor r8d, dword [r13 + 0x14]
mov dword [rsi + 0x14], r8d
nop
mov r8d, dword [rsp + 0x3c]
lea r12d, [r8 + r14]
xor r12d, dword [r13 + 0x18]
mov dword [rsi + 0x18], r12d
nop
mov r12d, dword [rsp + 0x40]
add r11d, r12d
xor r11d, dword [r13 + 0x1c]
mov dword [rsi + 0x1c], r11d
nop
mov r11d, dword [rsp + 0x44]
add edi, r11d
xor edi, dword [r13 + 0x20]
mov dword [rsi + 0x20], edi
nop
mov edi, dword [rsp + 0x54]
add ecx, edi
xor ecx, dword [r13 + 0x24]
mov dword [rsi + 0x24], ecx
nop
mov ecx, dword [rsp + 0x6c]
mov r14d, dword [rsp + 0x60]
add ecx, r14d
xor ecx, dword [r13 + 0x28]
mov dword [rsi + 0x28], ecx
nop
mov ecx, dword [rsp + 0x68]
mov r15d, dword [rsp + 0x4c]
add ecx, r15d
xor ecx, dword [r13 + 0x2c]
mov dword [rsi + 0x2c], ecx
mov rcx, qword [rsp + 0xa8]
mov r15d, dword [rcx + 0x20]
add ebx, r15d
xor ebx, dword [r13 + 0x30]
mov dword [rsi + 0x30], ebx
nop
mov ebx, dword [rsp + 0x48]
add r10d, ebx
xor r10d, dword [r13 + 0x34]
mov dword [rsi + 0x34], r10d
nop
mov r10d, dword [rsp + 0x58]
add eax, r10d
xor eax, dword [r13 + 0x38]
mov dword [rsi + 0x38], eax
nop
mov eax, dword [rsp + 0x74]
mov r15d, dword [rsp + 0x5c]
add eax, r15d
xor eax, dword [r13 + 0x3c]
mov dword [rsi + 0x3c], eax
inc dword [rcx + 0x20]
mov rax, qword [rsp + 0xd8]
add rax, 0xffffffffffffffc0
mov qword [rsp + 0xd8], rax
neg rax
sar rax, 0x3f
and rax, 0x40
add rax, r13
mov r13, qword [rsp + 0xd0]
add r13, 0xffffffffffffffc0
mov r15, qword [rsp + 0xc0]
add r15, 0xffffffffffffffc0
mov qword [rsp + 0xc0], r15
neg r15
sar r15, 0x3f
and r15, 0x40
add rsi, r15
mov r15, qword [rsp + 0xb8]
add r15, 0xffffffffffffffc0
mov rdx, rcx
mov ebx, dword [rsp + 0x50]
mov edi, r8d
mov r8d, r12d
mov r9d, r11d
mov r10d, dword [rsp + 0x54]
mov r11d, r14d
mov r12d, dword [rsp + 0x4c]
mov r14d, dword [rsp + 0x58]
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xc8], rax
mov rcx, r15
mov rax, r13
mov esi, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x48]
mov r15d, dword [rsp + 0x5c]
cmp rax, 0x40
jl 0x58862e
cmp rcx, 0x40
jl 0x58862e
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0xd0], rax
nop
mov ecx, dword [rdx + 0x80]
mov eax, dword [rdx + 0x94]
mov r15d, dword [rdx + 0x7c]
mov r14d, dword [rdx + 0x90]
mov r13d, dword [rdx + 0xa4]
mov r12d, dword [rdx + 0x8c]
mov r11d, dword [rdx + 0xa0]
mov r10d, dword [rdx + 0x88]
mov r8d, dword [rdx + 0x9c]
mov dword [rsp + 0x70], r8d
mov edi, dword [rdx + 0x84]
mov dword [rsp + 0x30], edi
mov esi, dword [rdx + 0x98]
mov dword [rsp + 0x20], esi
lea edi, [rbx + 0x61707865]
xor edi, dword [rdx + 0x20]
rol edi, 0x10
add r9d, edi
mov dword [rsp + 0x28], r9d
xor r9d, ebx
rol r9d, 0xc
lea esi, [rbx + r9]
lea ebx, [r9 + rbx]
lea ebx, [rbx + 0x61707865]
xor ebx, edi
rol ebx, 8
mov edi, dword [rsp + 0x28]
add edi, ebx
xor r9d, edi
rol r9d, 7
lea r8d, [rcx + rsi]
lea esi, [rsi + rcx]
lea esi, [rsi + 0x61707865]
xor esi, dword [rdx + 0xa8]
rol esi, 0x10
add eax, esi
xor ecx, eax
rol ecx, 0xc
lea r8d, [r8 + rcx]
lea r8d, [r8 + 0x61707865]
xor esi, r8d
rol esi, 8
add eax, esi
mov dword [rsp + 0x1c], eax
xor ecx, eax
rol ecx, 7
mov dword [rsp + 0x18], ecx
add r15d, r14d
xor ebx, r15d
rol ebx, 0x10
add r13d, ebx
xor r14d, r13d
rol r14d, 0xc
add r15d, r14d
xor ebx, r15d
rol ebx, 8
add r13d, ebx
xor r14d, r13d
rol r14d, 7
add r12d, r11d
xor r10d, r12d
rol r10d, 0x10
add edi, r10d
xor r11d, edi
rol r11d, 0xc
add r12d, r11d
xor r10d, r12d
rol r10d, 8
add edi, r10d
xor r11d, edi
rol r11d, 7
mov edx, dword [rsp + 0x70]
add edx, r9d
mov eax, dword [rsp + 0x20]
xor eax, edx
rol eax, 0x10
mov ecx, dword [rsp + 0x30]
add ecx, eax
xor r9d, ecx
rol r9d, 0xc
add edx, r9d
xor eax, edx
rol eax, 8
add ecx, eax
xor r9d, ecx
rol r9d, 7
mov dword [rsp + 0x90], eax
xor eax, eax
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x18]
mov dword [rsp + 0x64], eax
mov dword [rsp + 0x88], ecx
mov ecx, dword [rsp + 0x1c]
mov dword [rsp + 0x6c], ecx
mov ecx, dword [rsp + 0x88]
mov eax, dword [rsp + 0x90]
jmp 0x5882a5
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
lea r9d, [rsi + 0x3320646e]
xor r9d, r13d
rol r9d, 0x10
lea r13d, [r10 + r9]
mov dword [rsp + 0x2c], r13d
xor r13d, esi
rol r13d, 0xc
lea r10d, [rsi + r13]
lea r10d, [r10 + 0x3320646e]
mov dword [rdx + 0x7c], r10d
xor r10d, r9d
rol r10d, 8
mov r9d, dword [rsp + 0x2c]
add r9d, r10d
xor r13d, r9d
rol r13d, 7
mov dword [rdx + 0x80], r13d
mov dword [rdx + 0x84], r9d
mov dword [rdx + 0x88], r10d
lea r9d, [rdi + 0x79622d32]
xor r9d, r14d
rol r9d, 0x10
lea r10d, [r11 + r9]
mov r13d, r10d
xor r10d, edi
rol r10d, 0xc
lea r14d, [rdi + r10]
lea r14d, [r14 + 0x79622d32]
mov dword [rdx + 0x8c], r14d
xor r14d, r9d
rol r14d, 8
lea r9d, [r14 + r13]
xor r10d, r9d
rol r10d, 7
mov dword [rdx + 0x90], r10d
mov dword [rdx + 0x94], r9d
mov dword [rdx + 0x98], r14d
lea r9d, [r8 + 0x6b206574]
xor r9d, r15d
rol r9d, 0x10
lea r10d, [r12 + r9]
mov r13d, r10d
xor r10d, r8d
rol r10d, 0xc
lea r14d, [r8 + r10]
lea r14d, [r14 + 0x6b206574]
mov dword [rdx + 0x9c], r14d
xor r14d, r9d
rol r14d, 8
lea r9d, [r14 + r13]
xor r10d, r9d
rol r10d, 7
mov dword [rdx + 0xa0], r10d
mov dword [rdx + 0xa4], r9d
mov dword [rdx + 0xa8], r14d
mov byte [rdx + 0x79], 1
mov r9d, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x54]
mov r13d, dword [rsp + 0x48]
mov r14d, dword [rsp + 0x58]
jmp 0x58810a
lea rax, [0x005efca0]
mov qword [rsp], rax
lea rax, [0x0066c540]
mov qword [rsp + 8], rax
call fcn.00432ca0
nop
call fcn.0045cde0
nop
jmp fcn.00588060