Function at 0x1401663c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov rsi, rcx
mov eax, dword [0x14021c7f8]
and eax, dword [0x14021c7fc]
mov ecx, eax
xor ecx, 0x6158e23
and eax, 0x1ea71dc
add eax, eax
sub eax, ecx
and eax, 0x5ada71d
imul eax, eax, 0x24f2369
cmp eax, 0x3776fa9d
jne 0x140166410
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
nop dword [rax + rax]
mov eax, dword [0x14021c800]
mov ecx, dword [0x14021c804]
mov r8d, ecx
not r8d
mov r9d, eax
and r9d, r8d
or r8d, eax
not r8d
imul r8d, r9d
mov r9d, eax
and r9d, ecx
or eax, ecx
imul eax, r9d
add eax, r8d
mov ecx, eax
not ecx
or ecx, 0x3d6c6451
add ecx, eax
inc ecx
mov eax, ecx
xor eax, 0x6cb4fdbc
and ecx, 0x134b0243
add ecx, ecx
sub ecx, eax
mov eax, ecx
and eax, 0x7ecfe99d
or ecx, 0x7ecfe99d
add ecx, eax
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov r9, rsp
cmp ecx, 0xaafb13df
je 0x140166410
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov rdi, rsp
mov rcx, qword [rsi]
lea rax, [rcx + rcx]
movabs r8, 0x3ffffffffffffff
mov r11d, 4
nop
mov r10d, dword [0x14021c808]
or r10d, dword [0x14021c80c]
imul r15d, r10d, 0xa8059854
mov r10d, r15d
and r10d, 0xd50660d0
or r15d, 0xd50660d0
add r15d, r10d
or r15d, 0x60c9f4c
cmp rax, rdx
mov rbx, rdx
cmova rbx, rax
cmp rbx, 5
cmovb rbx, r11
xor r10d, r10d
cmp rbx, r8
setbe r14b
cmp r15d, 0x603451df
ja 0x1401664b0
mov r8, rbx
shl r8, 5
mov r10b, r14b
shl r10, 3
test rcx, rcx
je 0x140166548
mov eax, dword [0x14021c810]
xor edx, edx
div dword [0x14021c814]
shl rcx, 5
mov edx, eax
or edx, 0x83c1c00
and edx, 0x2a7c9c0c
or eax, 0x6afd9e7d
add eax, edx
cmp eax, 0x6e883ac6
jne 0x14016654f
jmp 0x140166575
xor eax, eax
jmp 0x140166624
mov eax, dword [0x14021c818]
mov edx, dword [0x14021c81c]
add eax, edx
add eax, 0x7c785bda
and eax, 0x40804881
mov rdx, qword [rsi + 8]
mov qword [r9], rdx
cmp eax, 0x16ee05f2
jne 0x14016657e
mov rax, qword [rsi + 8]
mov qword [r9], rax
jmp 0x14016654f
mov eax, dword [0x14021c820]
sub eax, dword [0x14021c824]
mov edx, eax
xor edx, 0x11050022
xor eax, 0x8ef0d518
mov r11d, eax
and r11d, 0x248a7ad5
and edx, 0x1b75852a
imul edx, r11d
mov r11d, eax
and r11d, 0x1b75852a
or eax, 0x1b75852a
imul eax, r11d
add eax, edx
and eax, 0x2276c828
cmp eax, 0x4e774a44
jbe 0x1401665d0
mov qword [r9 + 0x10], rcx
mov eax, dword [0x14021c828]
imul eax, dword [0x14021c82c]
add eax, 0x23aefcd8
mov edx, eax
not edx
mov r11d, eax
and r11d, 0x904ad328
and edx, 0x6fb52cd7
imul edx, r11d
mov r11d, eax
and r11d, 0x6fb52cd7
or eax, 0x6fb52cd7
imul eax, r11d
add eax, edx
add eax, 0x9ea11819
mov qword [r9 + 0x10], rcx
cmp eax, 0x9c2bf7c9
ja 0x1401665d0
mov eax, 8
mov qword [r9 + 8], rax
sub rsp, 0x20
mov rcx, rdi
mov rdx, r10
call fcn.1400ac0c0
add rsp, 0x20
cmp qword [rdi], 0
jne 0x140166680
mov rax, qword [rdi + 8]
mov qword [rsi + 8], rax
mov eax, dword [0x14021c838]
mov ecx, dword [0x14021c83c]
not ecx
lea edx, [rax + rcx]
add edx, 0x269733e
add eax, ecx
not edx
or edx, 0x9e320fae
add eax, edx
add eax, 0x269733e
cmp eax, 0xbee958f1
jne 0x1401666b4
jmp 0x1401666cc
mov eax, dword [0x14021c830]
mov ecx, dword [0x14021c834]
not eax
not ecx
or ecx, eax
not ecx
imul rax, rcx, 0x59d1bc23
shr rax, 0x3b
not eax
or eax, 0x36567aa9
and eax, 0x36567aad
cmp eax, 0x64d4d5d9
ja 0x140166680
ud2
mov eax, dword [0x14021c840]
xor edx, edx
div dword [0x14021c844]
mov qword [rsi], rbx
cmp eax, 0x1454ee0c
jne 0x1401666d1
mov qword [rsi], rbx
jmp 0x1401666b4
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret