Function at 0x140099c90
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rax, qword [rcx + 0x18]
mov rsi, rcx
nop dword [rax]
mov ecx, dword [0x14021a8d0]
mov edx, dword [0x14021a8d4]
mov r8d, ecx
not r8d
or ecx, edx
not edx
or edx, r8d
and edx, ecx
or edx, 0x8fc6d0cc
mov ecx, edx
and ecx, 0x4ac0ad3a
add ecx, ecx
sub edx, ecx
imul ecx, edx, 0x5bc4a45f
add ecx, 0xeae17086
cmp ecx, 0x78983df6
jb 0x140099ca0
test rax, rax
je 0x140099e30
mov eax, dword [0x14021a8d8]
sub eax, dword [0x14021a8dc]
or eax, 0x69f27c2f
add eax, 0x90128e3
mov ecx, eax
not ecx
and ecx, 0x209841ec
mov edx, eax
and edx, 0xdf678e10
imul edx, ecx
mov ecx, eax
and ecx, 0x209821e2
or eax, 0x209861ee
imul eax, ecx
add eax, edx
cmp eax, 0x190d5ce3
je 0x140099dc1
mov ecx, dword [0x14021a8e0]
mov edx, dword [0x14021a8e4]
mov eax, ecx
not eax
mov r8d, edx
not r8d
mov r9d, eax
and r9d, 0xb9b391ad
and ecx, 0x464c6e52
or ecx, r9d
or eax, r8d
and r8d, 0xb9b391ad
and edx, 0x464c6e52
or edx, r8d
xor edx, ecx
not eax
or eax, edx
mov ecx, eax
not ecx
and ecx, 0xbc40a909
mov edx, eax
and edx, 0x43bf56f6
imul edx, ecx
mov ecx, eax
and ecx, 0xbc40a909
or eax, 0xbc40a909
imul eax, ecx
add eax, edx
imul edi, eax, 0xcec6d103
xor edi, 0x4ee7a747
mov r8, qword [rsi + 0x20]
mov rcx, qword [0x14022cb48]
xor edx, edx
call fcn.14014eed0
cmp edi, 0xcf1d3e8b
jae 0x140099de0
mov r8, qword [rsi + 0x20]
mov rcx, qword [0x14022cb48]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140099d32
mov eax, dword [0x14021a8e8]
mov ecx, dword [0x14021a8ec]
mov edx, ecx
and edx, eax
add eax, ecx
sub eax, edx
lea ecx, [rax - 0x90b529]
mov edx, ecx
and edx, 0x5b015e45
xor ecx, 0xa4fea1ba
add eax, ecx
add eax, 0xff6f4ad7
sub eax, edx
mov ecx, eax
not ecx
or ecx, 0xcd7a969c
or eax, 0x32856963
and eax, ecx
cmp eax, 0x39d8a047
je 0x140099de0
nop dword [rax]
mov eax, dword [0x14021a8f0]
sub eax, dword [0x14021a8f4]
add eax, 0xae175d3c
mov ecx, eax
and ecx, 0x4910ca0d
add ecx, ecx
sub eax, ecx
add eax, 0x4910ca0d
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xe50c220
and ecx, 0xf1af3ddf
imul ecx, edx
mov edx, eax
and edx, 0xf1af3ddf
or eax, 0xf1af3ddf
imul eax, edx
add eax, ecx
cmp eax, 0x4432e545
ja 0x140099e30
cmp rsi, 0xffffffffffffffff
je 0x140099fd0
mov rcx, 0xffffffffffffffff
lock xadd qword [rsi + 8], rcx
nop word [rax + rax]
mov eax, dword [0x14021a8f8]
xor edx, edx
div dword [0x14021a8fc]
add eax, 0x11ef1e75
and eax, 0xdd3ae3ae
cmp eax, 0xbd755ccf
je 0x140099ea0
nop
mov eax, dword [0x14021a900]
mov edx, dword [0x14021a904]
mov r8d, edx
not r8d
mov r9d, eax
and r9d, r8d
or r8d, eax
not r8d
imul r8d, r9d
mov r9d, eax
and r9d, edx
or eax, edx
imul eax, r9d
add eax, r8d
add eax, 0x80e5cc5d
mov edx, eax
not edx
or edx, 0xbe1725ac
and eax, 0x684a00
xor edx, 0xfd96917b
lea eax, [rdx + rax*2]
cmp eax, 0x9e779aa5
ja 0x140099ec0
cmp rcx, 1
jne 0x140099fd0
xor eax, eax
test al, al
je 0x140099f30
mov rax, qword [0x14022cb48]
nop dword [rax]
mov eax, dword [0x14021a908]
mov ecx, dword [0x14021a90c]
mov edx, eax
not edx
mov r8d, ecx
not r8d
mov r9d, edx
and r9d, 0x2590e39
and eax, 0x1a6f1c6
or eax, r9d
or edx, r8d
and r8d, 0x2590e39
and ecx, 0x1a6f1c6
or ecx, r8d
xor ecx, eax
not edx
or edx, ecx
add edx, 0x97ec2544
or edx, 0xfcf4ea42
mov rcx, qword [0x14022cb48]
cmp edx, 0x4129f20
je 0x140099f30
xor edx, edx
mov r8, rsi
call fcn.14014eed0
nop word cs:[rax + rax]
mov eax, dword [0x14021a914]
add eax, dword [0x14021a910]
imul eax, eax, 0xcd1564f5
mov ecx, eax
xor ecx, 0xdee3f075
add ecx, eax
and eax, 0x211c0f8a
sub ecx, eax
cmp ecx, 0xa597fe72
je 0x140099fa0
nop dword [rax + rax]
mov eax, dword [0x14021a918]
sub eax, dword [0x14021a91c]
xor eax, 0x601c8000
and eax, 0x605f8ae8
add eax, 0x6fd04a96
cmp eax, 0x9901389c
jb 0x140099fd0
add rsp, 0x28
pop rdi
pop rsi
ret