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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4ecbcb
sub rsp, 0x70
mov qword [rsp + 0x68], rbp
lea rbp, [rsp + 0x68]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0xa8], r9
cmp rsi, 0x20
jne 0x4ec972
nop word [rax + rax]
cmp r10, 0x10
jne 0x4ec937
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x78], rax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [rdi]
mov r8d, dword [rdi + 4]
mov r10d, dword [rdi + 8]
mov r11d, dword [rdi + 0xc]
mov r12d, dword [rdi + 0x10]
mov r13d, dword [rdi + 0x14]
mov r15d, dword [rdi + 0x18]
mov esi, edx
mov edx, dword [rdi + 0x1c]
mov edi, edx
mov edx, dword [r9]
mov dword [rsp + 0x44], edx
mov edx, dword [r9 + 4]
mov dword [rsp + 0x40], edx
mov edx, dword [r9 + 8]
mov r9d, dword [r9 + 0xc]
mov qword [rsp + 0x60], rax
xor eax, eax
mov qword [rsp + 0x48], rax
mov eax, 0x61707865
mov dword [rsp + 0x30], eax
mov eax, 0x3320646e
mov dword [rsp + 0x2c], eax
mov eax, 0x79622d32
mov dword [rsp + 0x20], eax
mov eax, 0x6b206574
mov dword [rsp + 0x1c], eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0x58], rcx
mov ecx, dword [rsp + 0x40]
mov dword [rsp + 0x38], ecx
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
jmp 0x4ecb51
lea rax, [0x0052ea40]
nop
call fcn.0040d540
mov qword [rax + 8], 0x24
lea rcx, [0x00553332]
mov qword [rax], rcx
xor ebx, ebx
mov rcx, rbx
lea rdi, [0x0057ba28]
mov rsi, rax
xor eax, eax
mov rbp, qword [rsp + 0x68]
add rsp, 0x70
ret
lea rax, [0x0052ea40]
call fcn.0040d540
mov qword [rax + 8], 0x22
lea rcx, [0x00552c44]
mov qword [rax], rcx
xor ebx, ebx
mov rcx, rbx
lea rdi, [0x0057ba28]
mov rsi, rax
xor eax, eax
mov rbp, qword [rsp + 0x68]
add rsp, 0x70
ret
inc r9
mov qword [rsp + 0x48], r9
nop
nop
nop
nop
nop
nop
mov ecx, dword [rsp + 0x30]
add ecx, esi
mov eax, dword [rsp + 0x3c]
xor eax, ecx
rol eax, 0x10
add r12d, eax
xor esi, r12d
rol esi, 0xc
add ecx, esi
xor eax, ecx
rol eax, 8
add r12d, eax
xor esi, r12d
rol esi, 7
mov dword [rsp + 0x18], esi
mov ebx, dword [rsp + 0x2c]
add ebx, r8d
mov r9d, dword [rsp + 0x38]
xor r9d, ebx
rol r9d, 0x10
add r13d, r9d
xor r8d, r13d
rol r8d, 0xc
add ebx, r8d
xor r9d, ebx
rol r9d, 8
add r13d, r9d
mov dword [rsp + 0x14], r13d
xor r8d, r13d
rol r8d, 7
mov r13d, dword [rsp + 0x20]
add r13d, r10d
xor edx, r13d
rol edx, 0x10
add r15d, edx
xor r10d, r15d
rol r10d, 0xc
add r13d, r10d
xor edx, r13d
rol edx, 8
mov dword [rsp + 0x24], edx
add r15d, edx
xor r10d, r15d
rol r10d, 7
mov edx, dword [rsp + 0x1c]
add edx, r11d
mov esi, dword [rsp + 0x34]
xor esi, edx
rol esi, 0x10
add edi, esi
xor r11d, edi
rol r11d, 0xc
add edx, r11d
xor esi, edx
rol esi, 8
add edi, esi
xor r11d, edi
rol r11d, 7
add ecx, r8d
xor esi, ecx
rol esi, 0x10
add r15d, esi
xor r8d, r15d
rol r8d, 0xc
add ecx, r8d
mov dword [rsp + 0x30], ecx
xor esi, ecx
rol esi, 8
add r15d, esi
xor r8d, r15d
rol r8d, 7
add ebx, r10d
xor eax, ebx
rol eax, 0x10
add edi, eax
xor r10d, edi
rol r10d, 0xc
add ebx, r10d
mov dword [rsp + 0x2c], ebx
xor eax, ebx
rol eax, 8
mov dword [rsp + 0x28], eax
add edi, eax
xor r10d, edi
rol r10d, 7
add r13d, r11d
xor r9d, r13d
rol r9d, 0x10
add r12d, r9d
xor r11d, r12d
rol r11d, 0xc
add r13d, r11d
xor r9d, r13d
rol r9d, 8
add r12d, r9d
xor r11d, r12d
rol r11d, 7
mov eax, dword [rsp + 0x18]
add edx, eax
mov ecx, dword [rsp + 0x24]
xor ecx, edx
rol ecx, 0x10
mov ebx, dword [rsp + 0x14]
add ebx, ecx
xor eax, ebx
rol eax, 0xc
add edx, eax
xor ecx, edx
rol ecx, 8
add ebx, ecx
xor eax, ebx
rol eax, 7
mov dword [rsp + 0x20], r13d
mov dword [rsp + 0x1c], edx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x38], r9d
mov edx, ecx
mov r9d, esi
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x88]
mov esi, dword [rsp + 0x50]
mov r13d, ebx
mov rbx, qword [rsp + 0x80]
mov dword [rsp + 0x34], r9d
mov r9, qword [rsp + 0x48]
nop dword [rax + rax]
cmp r9, 0xa
jl 0x4ec9ab
cmp rbx, 0x1f
jbe 0x4ecbbd
mov r8d, dword [rsp + 0x30]
mov dword [rax], r8d
mov r8d, dword [rsp + 0x2c]
mov dword [rax + 4], r8d
mov r8d, dword [rsp + 0x20]
mov dword [rax + 8], r8d
mov r8d, dword [rsp + 0x1c]
mov dword [rax + 0xc], r8d
mov r8d, dword [rsp + 0x3c]
mov dword [rax + 0x10], r8d
mov r8d, dword [rsp + 0x38]
mov dword [rax + 0x14], r8d
mov dword [rax + 0x18], edx
mov edx, dword [rsp + 0x34]
mov dword [rax + 0x1c], edx
xor edi, edi
xor esi, esi
mov rbp, qword [rsp + 0x68]
add rsp, 0x70
ret
mov eax, 0x1f
mov rcx, rbx
call fcn.00464bc0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], r11
call fcn.00462560
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
jmp fcn.004ec840