Function at 0x140080640
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rdx
mov rdi, rcx
nop word cs:[rax + rax]
mov eax, dword [0x141dca680]
imul eax, dword [str._f5__]
and eax, 0x4e641d4b
imul eax, eax, 0x66fcb747
add eax, 0xacc2952d
cmp eax, 0x7d7695b9
jb 0x140080660
mov eax, 0x88b71769
nop dword [rax]
mov ecx, dword [0x141dca688]
mov edx, dword [0x141dca68c]
add ecx, edx
add ecx, 0xb865c2a1
or ecx, 0xe20bed24
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0xfb55aafb
ja 0x140080690
cmp qword [r8 + 8], 0
je 0x1400807d0
mov rbx, qword [r8]
mov rcx, qword [r8 + 0x10]
mov r8d, 0xf0b19bcb
nop word cs:[rax + rax]
mov eax, dword [0x141dca690]
xor edx, edx
div dword [0x141dca694]
imul eax, eax, 0x53f7aff4
add eax, 0x990322f8
imul rax, r8
shr rax, 0x3c
cmp eax, 0xd5b512c3
ja 0x1400806e0
mov eax, 0xc666ed39
nop dword [rax]
mov edx, dword [0x141dca698]
or edx, dword [0x141dca69c]
or edx, 0x2cb0dc4d
add edx, 0x56dd00d2
imul rdx, rax
shr rdx, 0x3f
cmp edx, 0x9fb26fa1
ja 0x140080710
test rcx, rcx
je 0x140080820
mov r14, qword [0x141dd7fe0]
mov eax, dword [0x141dca6b8]
xor edx, edx
div dword [0x141dca6bc]
or eax, 0xeae17ae9
add eax, 0xa910b246
imul rax, rax, 0x4e25038f
shr rax, 0x3c
cmp eax, 0x31c39675
jbe 0x140080783
mov rcx, r14
xor edx, edx
mov r8, rbx
mov r9, rsi
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov r15, qword [sym.imp.KERNEL32.dll_HeapReAlloc]
nop word [rax + rax]
mov ebp, dword [str.kI0I]
imul ebp, dword [0x141dca6c4]
xor ebp, 0x67fda20e
add ebp, 0x7f627570
and ebp, 0xf855f007
mov rcx, r14
xor edx, edx
mov r8, rbx
mov r9, rsi
call r15
cmp ebp, 0x916b8aad
jae 0x140080790
jmp 0x140080937
mov eax, dword [0x141dca6c8]
xor eax, dword [0x141dca6cc]
imul eax, eax, 0x2e14eb30
add eax, 0xc8dee55b
cmp eax, 0x3f39b6e2
jb 0x1400807d0
test rsi, rsi
je 0x1400808bd
mov eax, dword [0x141dca6d0]
imul eax, dword [0x141dca6d4]
or eax, 0xffb77fdf
cmp eax, 0xf058f87b
jb 0x1400808ee
jmp 0x1400808c4
mov eax, dword [0x141dca6a0]
and eax, dword [0x141dca6a4]
imul eax, eax, 0x34c606ae
or eax, 0x4f39539d
and eax, 0x6f7953df
cmp eax, 0xcf08cad
je 0x140080820
test rsi, rsi
je 0x1400808bd
movzx eax, byte [0x141dd7ff8]
mov eax, dword [0x141dca6a8]
and eax, dword [0x141dca6ac]
imul rcx, rax, 0x36c0d915
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1e
add eax, 0xc27cb086
cmp eax, 0x31105907
jae 0x140080890
xor ecx, ecx
mov rdx, rsi
call fcn.1400beea0
nop word cs:[rax + rax]
mov eax, dword [0x141dca6b0]
imul eax, dword [0x141dca6b4]
imul ebx, eax, 0x2c435090
and ebx, 0x3b45db80
xor ecx, ecx
mov rdx, rsi
call fcn.1400beea0
cmp ebx, 0x528c73a8
je 0x140080890
jmp 0x140080937
mov eax, 8
jmp 0x140080937
mov eax, dword [0x141dca6d8]
add eax, dword [0x141dca6dc]
imul eax, eax, 0x9d149d2
or eax, 0x5c56fabf
add eax, 0xe825bb91
movzx ecx, byte [0x141dd7ff8]
cmp eax, 0xc22ea889
jae 0x1400808f7
movzx eax, byte [0x141dd7ff8]
jmp 0x1400808c4
xor eax, eax
test al, al
jne 0x14008092b
mov eax, dword [0x141dca6e0]
xor edx, edx
div dword [0x141dca6e4]
mov ebx, eax
and ebx, 0x21000501
xor ebx, 0xcc7c2137
xor ecx, ecx
mov rdx, rsi
call fcn.1400beea0
cmp ebx, 0x5568e9dd
jae 0x140080937
xor ecx, ecx
mov rdx, rsi
call fcn.1400beea0
jmp 0x1400808fd
mov ecx, dword [0x141dca6e8]
add ecx, dword [0x141dca6ec]
or ecx, 0x341b4aaa
imul ecx, ecx, 0x6d5166cb
and ecx, 0x2910e6e4
cmp ecx, 0x4ea793ff
ja 0x1400809a0
mov ecx, dword [0x141dca6f0]
xor ecx, dword [0x141dca6f4]
add ecx, 0xa319b198
or ecx, 0x50ce190
and ecx, 0x1d4ce7d1
xor edx, edx
test rax, rax
sete dl
mov r8d, 8
cmovne r8, rax
mov qword [rdi + 8], r8
mov qword [rdi + 0x10], rsi
mov qword [rdi], rdx
cmp ecx, 0x183751dd
jbe 0x1400809be
xor ecx, ecx
test rax, rax
mov edx, 8
cmovne rdx, rax
sete cl
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], rsi
mov qword [rdi], rcx
jmp 0x14008095d
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret