Function at 0x14015f370
Capabilities:
Encode data using xor
Encrypt data using chaskey
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov r9d, dword [rcx + 8]
mov r15, rdx
mov ebx, dword [rcx + 0xc]
mov r11d, dword [rcx + 0x10]
mov r10d, dword [rcx + 0x14]
nop dword [rax]
movzx eax, byte [r15 + 2]
movzx edx, byte [r15 + 3]
shl edx, 8
or edx, eax
mov dword [rsp + 0x30], r10d
movzx eax, byte [r15 + 1]
shl edx, 8
or edx, eax
mov dword [rsp + 0x24], r9d
movzx eax, byte [r15]
shl edx, 8
or edx, eax
mov dword [rsp + 0x2c], r11d
mov dword [rcx + 0x58], edx
mov eax, r10d
movzx r8d, byte [r15 + 7]
xor eax, r11d
and eax, ebx
shl r8d, 8
xor eax, r10d
mov dword [rsp + 0x90], edx
add eax, edx
mov dword [rsp + 0x28], ebx
add r9d, eax
mov edx, r9d
shr edx, 0x1d
lea eax, [r9*8]
or edx, eax
movzx eax, byte [r15 + 6]
or r8d, eax
movzx eax, byte [r15 + 5]
shl r8d, 8
or r8d, eax
movzx eax, byte [r15 + 4]
shl r8d, 8
or r8d, eax
mov eax, r11d
mov dword [rcx + 0x5c], r8d
xor eax, ebx
and eax, edx
mov dword [rsp + 0xc], r8d
xor eax, r11d
add eax, r8d
movzx r8d, byte [r15 + 0xb]
add r10d, eax
shl r8d, 8
movzx eax, byte [r15 + 0xa]
mov r9d, r10d
or r8d, eax
shl r10d, 7
movzx eax, byte [r15 + 9]
shl r8d, 8
or r8d, eax
shr r9d, 0x19
movzx eax, byte [r15 + 8]
or r9d, r10d
shl r8d, 8
or r8d, eax
mov eax, ebx
mov dword [rcx + 0x60], r8d
xor eax, edx
mov dword [rsp + 4], r8d
and eax, r9d
xor eax, ebx
add eax, r8d
movzx r8d, byte [r15 + 0xf]
add r11d, eax
shl r8d, 8
movzx eax, byte [r15 + 0xe]
mov r10d, r11d
or r8d, eax
shr r10d, 0x15
movzx eax, byte [r15 + 0xd]
shl r8d, 8
or r8d, eax
shl r11d, 0xb
movzx eax, byte [r15 + 0xc]
or r10d, r11d
shl r8d, 8
or r8d, eax
mov dword [rsp + 0x18], r8d
mov dword [rcx + 0x64], r8d
mov eax, r9d
xor eax, edx
and eax, r10d
xor eax, edx
add eax, r8d
movzx r8d, byte [r15 + 0x13]
add ebx, eax
shl r8d, 8
movzx eax, byte [r15 + 0x12]
mov r11d, ebx
or r8d, eax
shr ebx, 0xd
movzx eax, byte [r15 + 0x11]
shl r8d, 8
or r8d, eax
shl r11d, 0x13
movzx eax, byte [r15 + 0x10]
or r11d, ebx
shl r8d, 8
or r8d, eax
mov eax, r9d
xor eax, r10d
mov dword [rcx + 0x68], r8d
and eax, r11d
mov dword [rsp], r8d
xor eax, r9d
add eax, r8d
add edx, eax
mov r8d, edx
shr r8d, 0x1d
lea eax, [rdx*8]
movzx edx, byte [r15 + 0x17]
or r8d, eax
shl edx, 8
movzx eax, byte [r15 + 0x16]
or edx, eax
movzx eax, byte [r15 + 0x15]
shl edx, 8
or edx, eax
movzx eax, byte [r15 + 0x14]
shl edx, 8
or edx, eax
mov eax, r10d
mov dword [rcx + 0x6c], edx
xor eax, r11d
and eax, r8d
mov dword [rsp + 0x14], edx
xor eax, r10d
add eax, edx
movzx edx, byte [r15 + 0x1b]
add r9d, eax
shl edx, 8
movzx eax, byte [r15 + 0x1a]
mov ebx, r9d
or edx, eax
shl r9d, 7
movzx eax, byte [r15 + 0x19]
shl edx, 8
or edx, eax
shr ebx, 0x19
movzx eax, byte [r15 + 0x18]
or ebx, r9d
shl edx, 8
or edx, eax
mov eax, r11d
xor eax, r8d
mov dword [rcx + 0x70], edx
and eax, ebx
mov dword [rsp + 8], edx
xor eax, r11d
add eax, edx
movzx edx, byte [r15 + 0x1f]
add r10d, eax
shl edx, 8
movzx eax, byte [r15 + 0x1e]
mov r9d, r10d
shr r9d, 0x15
shl r10d, 0xb
or r9d, r10d
or edx, eax
movzx eax, byte [r15 + 0x1d]
shl edx, 8
or edx, eax
movzx eax, byte [r15 + 0x1c]
shl edx, 8
or edx, eax
mov eax, ebx
xor eax, r8d
mov dword [rcx + 0x74], edx
and eax, r9d
mov dword [rsp + 0x20], edx
xor eax, r8d
add eax, edx
movzx edx, byte [r15 + 0x23]
add r11d, eax
shl edx, 8
movzx eax, byte [r15 + 0x22]
mov r10d, r11d
or edx, eax
shr r11d, 0xd
movzx eax, byte [r15 + 0x21]
shl edx, 8
or edx, eax
shl r10d, 0x13
movzx eax, byte [r15 + 0x20]
or r10d, r11d
shl edx, 8
or edx, eax
mov eax, ebx
xor eax, r9d
mov dword [rcx + 0x78], edx
and eax, r10d
mov dword [rsp + 0xa8], edx
xor eax, ebx
add eax, edx
add r8d, eax
mov edx, r8d
shr edx, 0x1d
lea eax, [r8*8]
movzx r8d, byte [r15 + 0x27]
or edx, eax
shl r8d, 8
movzx eax, byte [r15 + 0x26]
or r8d, eax
movzx eax, byte [r15 + 0x25]
shl r8d, 8
or r8d, eax
movzx eax, byte [r15 + 0x24]
shl r8d, 8
or r8d, eax
mov eax, r9d
xor eax, r10d
mov dword [rcx + 0x7c], r8d
movzx r13d, byte [r15 + 0x2b]
and eax, edx
xor eax, r9d
shl r13d, 8
add eax, r8d
mov dword [rsp + 0x10], r8d
add ebx, eax
movzx eax, byte [r15 + 0x2a]
or r13d, eax
mov r11d, ebx
movzx eax, byte [r15 + 0x29]
shl r13d, 8
or r13d, eax
shr r11d, 0x19
movzx eax, byte [r15 + 0x28]
shl r13d, 8
or r13d, eax
shl ebx, 7
or r11d, ebx
mov dword [rcx + 0x80], r13d
mov eax, r10d
xor eax, edx
and eax, r11d
xor eax, r10d
add eax, r13d
add r9d, eax
mov esi, r9d
shr esi, 0x15
movzx eax, byte [r15 + 0x2e]
movzx r8d, byte [r15 + 0x2f]
shl r8d, 8
or r8d, eax
shl r9d, 0xb
movzx eax, byte [r15 + 0x2d]
or esi, r9d
shl r8d, 8
or r8d, eax
movzx eax, byte [r15 + 0x2c]
shl r8d, 8
or r8d, eax
mov eax, r11d
xor eax, edx
mov dword [rcx + 0x84], r8d
movzx r14d, byte [r15 + 0x33]
and eax, esi
xor eax, edx
shl r14d, 8
add eax, r8d
mov dword [rsp + 0x1c], r8d
add r10d, eax
movzx eax, byte [r15 + 0x32]
or r14d, eax
mov r9d, r10d
movzx eax, byte [r15 + 0x31]
shl r14d, 8
or r14d, eax
shl r9d, 0x13
movzx eax, byte [r15 + 0x30]
shl r14d, 8
or r14d, eax
shr r10d, 0xd
mov dword [rcx + 0x88], r14d
or r9d, r10d
movzx r12d, byte [r15 + 0x37]
mov eax, r11d
xor eax, esi
shl r12d, 8
and eax, r9d
xor eax, r11d
add eax, r14d
add edx, eax
mov r8d, edx
shr r8d, 0x1d
lea eax, [rdx*8]
or r8d, eax
movzx eax, byte [r15 + 0x36]
or r12d, eax
movzx eax, byte [r15 + 0x35]
shl r12d, 8
or r12d, eax
movzx eax, byte [r15 + 0x34]
shl r12d, 8
or r12d, eax
mov eax, esi
xor eax, r9d
mov dword [rcx + 0x8c], r12d
movzx ebp, byte [r15 + 0x3b]
and eax, r8d
xor eax, esi
shl ebp, 8
add eax, r12d
add r11d, eax
movzx eax, byte [r15 + 0x3a]
or ebp, eax
mov ebx, r11d
movzx eax, byte [r15 + 0x39]
shl ebp, 8
or ebp, eax
shr ebx, 0x19
movzx eax, byte [r15 + 0x38]
shl ebp, 8
or ebp, eax
shl r11d, 7
or ebx, r11d
mov dword [rcx + 0x90], ebp
mov eax, r9d
xor eax, r8d
and eax, ebx
xor eax, r9d
movzx r15d, byte [r15 + 0x3f]
add eax, ebp
mov rdx, qword [rsp + 0x98]
add esi, eax
shl r15d, 8
mov edi, esi
shr edi, 0x15
shl esi, 0xb
movzx eax, byte [rdx + 0x3e]
or edi, esi
or r15d, eax
movzx eax, byte [rdx + 0x3d]
shl r15d, 8
or r15d, eax
movzx eax, byte [rdx + 0x3c]
mov edx, edi
shl r15d, 8
or r15d, eax
mov eax, ebx
xor eax, r8d
mov dword [rcx + 0x94], r15d
and eax, edi
xor eax, r8d
add r8d, 0x5a827999
add eax, r15d
add r9d, eax
mov eax, edi
mov r10d, r9d
shr r9d, 0xd
shl r10d, 0x13
or r10d, r9d
and eax, r10d
or edx, r10d
and edx, ebx
mov r9d, r10d
or eax, edx
add ebx, 0x5a827999
add eax, dword [rsp + 0x90]
add eax, r8d
mov r8d, r10d
mov r11d, eax
add r10d, 0x5a827999
shr r11d, 0x1d
lea eax, [rax*8]
or r11d, eax
or r9d, r11d
and r8d, r11d
mov edx, r9d
and edx, edi
or edx, r8d
add edx, dword [rsp]
add edx, ebx
mov ebx, edx
shl edx, 5
shr ebx, 0x1b
or ebx, edx
and r9d, ebx
or r9d, r8d
add r9d, dword [rsp + 0xa8]
lea eax, [r9 + 0x5a827999]
add eax, edi
mov edi, eax
shl eax, 9
shr edi, 0x17
or edi, eax
mov edx, edi
mov eax, edi
and eax, r11d
or edx, r11d
and edx, ebx
or eax, edx
mov edx, edi
add eax, r14d
add eax, r10d
mov r10d, eax
shl eax, 0xd
shr r10d, 0x13
or r10d, eax
mov eax, edi
or edx, r10d
and edx, ebx
and eax, r10d
add r11d, 0x5a827999
or eax, edx
add ebx, 0x5a827999
add eax, dword [rsp + 0xc]
mov r9d, r10d
add eax, r11d
mov r8d, r10d
mov r11d, eax
add r10d, 0x5a827999
shr r11d, 0x1d
lea eax, [rax*8]
or r11d, eax
or r9d, r11d
and r8d, r11d
mov edx, r9d
and edx, edi
or edx, r8d
add edx, dword [rsp + 0x14]
add edx, ebx
mov ebx, edx
shl edx, 5
shr ebx, 0x1b
or ebx, edx
and r9d, ebx
or r9d, r8d
add r9d, dword [rsp + 0x10]
lea eax, [r9 + 0x5a827999]
add eax, edi
mov edi, eax
shl eax, 9
shr edi, 0x17
or edi, eax
mov edx, edi
mov eax, edi
and eax, r11d
or edx, r11d
and edx, ebx
add r11d, 0x5a827999
or eax, edx
mov edx, edi
add eax, r12d
add eax, r10d
mov r10d, eax
shl eax, 0xd
shr r10d, 0x13
or r10d, eax
mov eax, edi
or edx, r10d
and eax, r10d
and edx, ebx
mov r9d, r10d
or eax, edx
add ebx, 0x5a827999
add eax, dword [rsp + 4]
mov r8d, r10d
add eax, r11d
mov r11d, eax
shr r11d, 0x1d
lea eax, [rax*8]
or r11d, eax
or r9d, r11d
and r8d, r11d
mov edx, r9d
and edx, edi
add edi, 0x5a827999
or edx, r8d
add edx, dword [rsp + 8]
add edx, ebx
mov ebx, edx
shl edx, 5
shr ebx, 0x1b
or ebx, edx
and r9d, ebx
or r9d, r8d
lea eax, [r9 + r13]
add eax, edi
mov edi, eax
shl eax, 9
shr edi, 0x17
or edi, eax
add r10d, 0x5a827999
mov edx, edi
or edx, r11d
mov eax, edi
and eax, r11d
and edx, ebx
or eax, edx
add r11d, 0x5a827999
add eax, ebp
mov edx, edi
add eax, r10d
mov esi, eax
shl eax, 0xd
shr esi, 0x13
or esi, eax
mov eax, edi
and eax, esi
or edx, esi
and edx, ebx
mov r9d, esi
or eax, edx
add ebx, 0x5a827999
add eax, dword [rsp + 0x18]
mov r8d, esi
add eax, r11d
mov r11d, eax
shr r11d, 0x1d
lea eax, [rax*8]
or r11d, eax
or r9d, r11d
and r8d, r11d
mov edx, r9d
and edx, edi
or edx, r8d
add edx, dword [rsp + 0x20]
add edx, ebx
mov r10d, edx
shl edx, 5
shr r10d, 0x1b
or r10d, edx
and r9d, r10d
or r9d, r8d
add r9d, dword [rsp + 0x1c]
lea eax, [r9 + 0x5a827999]
add eax, edi
mov r8d, eax
shl eax, 9
shr r8d, 0x17
or r8d, eax
mov edx, r8d
mov eax, r8d
and eax, r11d
or edx, r11d
and edx, r10d
add r11d, 0x6ed9eba1
or eax, edx
mov edx, r8d
add eax, 0x5a827999
add eax, r15d
add eax, esi
mov ebx, eax
shl eax, 0xd
shr ebx, 0x13
or ebx, eax
mov eax, r10d
xor eax, r8d
xor edx, ebx
xor eax, ebx
add r10d, 0x6ed9eba1
add eax, dword [rsp + 0x90]
add eax, r11d
mov r9d, eax
shr r9d, 0x1d
lea eax, [rax*8]
or r9d, eax
xor edx, r9d
add edx, dword [rsp + 0xa8]
add edx, r10d
mov r10d, edx
shr r10d, 0x17
shl edx, 9
or r10d, edx
add r8d, 0x6ed9eba1
mov edx, r10d
xor edx, ebx
add ebx, 0x6ed9eba1
xor edx, r9d
add edx, dword [rsp]
add edx, r8d
mov r8d, r10d
mov r11d, edx
add r10d, 0x6ed9eba1
shl edx, 0xb
shr r11d, 0x15
or r11d, edx
xor r8d, r11d
mov edx, r8d
xor edx, r9d
add edx, r14d
add edx, ebx
mov ebx, edx
shl edx, 0xf
shr ebx, 0x11
or ebx, edx
mov edx, r11d
xor edx, ebx
xor r8d, ebx
add r8d, dword [rsp + 4]
add r11d, 0x6ed9eba1
lea eax, [r8 + 0x6ed9eba1]
add eax, r9d
mov r9d, eax
shr r9d, 0x1d
lea eax, [rax*8]
or r9d, eax
xor edx, r9d
add edx, r13d
add edx, r10d
mov r10d, edx
shl edx, 9
shr r10d, 0x17
or r10d, edx
mov edx, r10d
mov r8d, r10d
xor edx, ebx
add r10d, 0x6ed9eba1
xor edx, r9d
add ebx, 0x6ed9eba1
add edx, dword [rsp + 8]
add edx, r11d
mov r11d, edx
shl edx, 0xb
shr r11d, 0x15
or r11d, edx
xor r8d, r11d
mov edx, r8d
xor edx, r9d
add edx, ebp
add edx, ebx
mov ebx, edx
shl edx, 0xf
shr ebx, 0x11
or ebx, edx
mov edx, r11d
xor edx, ebx
xor r8d, ebx
add r8d, dword [rsp + 0xc]
lea eax, [r8 + 0x6ed9eba1]
add eax, r9d
mov r9d, eax
shr r9d, 0x1d
lea eax, [rax*8]
or r9d, eax
xor edx, r9d
add edx, dword [rsp + 0x10]
add edx, r10d
mov r10d, edx
shl edx, 9
shr r10d, 0x17
or r10d, edx
mov edx, r10d
xor edx, ebx
xor edx, r9d
lea eax, [r9 + 0x6ed9eba1]
add edx, dword [rsp + 0x14]
add r11d, 0x6ed9eba1
add edx, r11d
add ebx, 0x6ed9eba1
mov r11d, edx
mov r8d, r10d
shl edx, 0xb
add r10d, 0x6ed9eba1
shr r11d, 0x15
or r11d, edx
xor r8d, r11d
mov edx, r8d
xor edx, r9d
add edx, r12d
add edx, ebx
mov ebx, edx
shl edx, 0xf
shr ebx, 0x11
or ebx, edx
mov edx, r11d
xor edx, ebx
xor r8d, ebx
add r8d, dword [rsp + 0x18]
add r11d, 0x6ed9eba1
add eax, r8d
mov r9d, eax
shr r9d, 0x1d
lea eax, [rax*8]
or r9d, eax
xor edx, r9d
add edx, dword [rsp + 0x1c]
add edx, r10d
mov r10d, edx
shl edx, 9
shr r10d, 0x17
or r10d, edx
mov edx, r10d
mov eax, r10d
add r10d, dword [rsp + 0x30]
xor edx, ebx
xor edx, r9d
add ebx, 0x6ed9eba1
add edx, dword [rsp + 0x20]
add edx, r11d
mov r11d, edx
shl edx, 0xb
shr r11d, 0x15
or r11d, edx
xor eax, r11d
add r11d, dword [rsp + 0x2c]
xor eax, r9d
add r9d, dword [rsp + 0x24]
add eax, r15d
mov r15, qword [rsp + 0x98]
add ebx, eax
add r15, 0x40
ror ebx, 0x11
add ebx, dword [rsp + 0x28]
sub qword [rsp + 0xa0], 0x40
mov qword [rsp + 0x98], r15
jne 0x14015f3a0
mov dword [rcx + 8], r9d
mov rax, r15
mov dword [rcx + 0xc], ebx
mov dword [rcx + 0x10], r11d
mov dword [rcx + 0x14], r10d
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret