Function at 0x1401666e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov rsi, rcx
movabs rcx, 0x7ffffffffffffff
mov eax, dword [0x14021c84c]
add eax, dword [0x14021c848]
xor eax, 0x8f4248ce
add eax, 0x45a23bc0
and eax, 0xbe76d362
cmp eax, 0xa38b1a58
jb 0x140166788
mov r8d, dword [0x14021c850]
sub r8d, dword [0x14021c854]
add r8d, 0x2ec2b86f
imul rax, r8, 0x1539cc47
shr rax, 0x20
sub r8d, eax
shr r8d, 1
add r8d, eax
shr r8d, 0x1f
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov r9, rsp
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov rdi, rsp
mov rax, qword [rsi]
lea r10, [rax + rax]
cmp r10, rdx
cmovbe r10, rdx
cmp r10, 5
mov ebx, 4
cmovae rbx, r10
cmp r8d, 0x7b39f98b
jne 0x1401667a7
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
jmp 0x140166717
xor edx, edx
cmp rbx, rcx
setbe dl
mov r8, rbx
shl r8, 4
shl rdx, 3
nop word [rax + rax]
mov ecx, dword [0x14021c858]
sub ecx, dword [0x14021c85c]
xor ecx, 0x4498c03
or ecx, 0xc13232f8
add ecx, 0xf1aac119
cmp ecx, 0xbfa6d4bf
jb 0x1401667c0
test rax, rax
je 0x140166840
mov ecx, dword [0x14021c860]
mov r10d, dword [0x14021c864]
mov r11d, ecx
xor r11d, r10d
not r11d
or ecx, r10d
and ecx, r11d
imul r10, rcx, 0x4550ec25
shr r10, 0x20
sub ecx, r10d
shr ecx, 1
add ecx, r10d
shr ecx, 0x1f
add ecx, 0x327a6a93
mov r10d, ecx
and r10d, 0x22124a95
or ecx, 0xaa92ce95
add ecx, r10d
cmp ecx, 0x2422de57
jne 0x140166847
jmp 0x140166879
xor eax, eax
jmp 0x14016695d
mov rcx, qword [rsi + 8]
mov qword [r9], rcx
mov ecx, dword [0x14021c868]
and ecx, dword [0x14021c86c]
or ecx, 0x29c278ff
imul rcx, rcx, 0x76f556eb
shr rcx, 0x3e
xor ecx, 0xd34acd23
cmp ecx, 0xa316f1a4
jae 0x140166882
mov rcx, qword [rsi + 8]
mov qword [r9], rcx
jmp 0x140166847
shl rax, 4
mov ecx, dword [0x14021c870]
mov r10d, dword [0x14021c874]
mov r11d, r10d
and r11d, ecx
add ecx, r10d
sub ecx, r11d
add ecx, 0xaf23d979
mov r10d, ecx
xor r10d, 0x1dd811fb
and ecx, 0x6227ee04
add ecx, ecx
sub ecx, r10d
add ecx, 0x42e6a715
cmp ecx, 0xfef28da5
jbe 0x1401668d0
mov qword [r9 + 0x10], rax
nop dword [rax]
mov ecx, dword [0x14021c878]
or ecx, dword [0x14021c87c]
and ecx, 0x3e59551f
xor ecx, 0x2c000414
imul ecx, ecx, 0x1629450c
mov qword [r9 + 0x10], rax
cmp ecx, 0x962b828a
ja 0x1401668d0
nop word [rax + rax]
mov eax, dword [0x14021c880]
xor eax, dword [0x14021c884]
mov ecx, eax
xor ecx, 0x9e9a725c
and eax, 0x61658da3
add eax, eax
sub eax, ecx
mov ecx, eax
xor ecx, 0xa3a3d050
xor eax, 0x10020c
and eax, 0x8312d24c
mov r10d, ecx
and r10d, 0x7ced2db3
imul r10d, eax
mov eax, ecx
and eax, 0x8312d24c
or ecx, 0x8312d24c
imul ecx, eax
add ecx, r10d
cmp ecx, 0x4c6a57a4
jb 0x140166900
mov eax, 8
mov qword [r9 + 8], rax
sub rsp, 0x20
mov rcx, rdi
call fcn.140150370
add rsp, 0x20
cmp qword [rdi], 0
jne 0x140166a41
xor eax, eax
nop dword [rax]
test al, al
jne 0x140166980
mov rax, qword [rdi + 8]
nop dword [rax + rax]
mov ecx, dword [0x14021c8a0]
sub ecx, dword [0x14021c8a4]
mov edx, ecx
xor edx, 0xb4e65b60
add edx, ecx
and ecx, 0x4b19a49f
sub edx, ecx
add edx, 0x38b36020
mov ecx, edx
not ecx
and ecx, 0x85b8bb3e
mov r8d, edx
and r8d, 0x7a4744c1
imul r8d, ecx
mov ecx, edx
and ecx, 0x85b8bb3e
or edx, 0x85b8bb3e
imul edx, ecx
add edx, r8d
cmp edx, 0x27676cb0
jb 0x140166990
mov ecx, dword [0x14021c8a8]
mov edx, dword [0x14021c8ac]
add ecx, edx
add ecx, 0x96a88322
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0xf24fd5bf
and edx, 0xdb02a40
imul edx, r8d
mov r8d, ecx
and r8d, 0xdb02a40
or ecx, 0xdb02a40
imul ecx, r8d
add ecx, edx
imul ecx, ecx, 0x2e68b043
cmp ecx, 0xcaf35f31
jbe 0x140166b19
jmp 0x140166b50
mov eax, dword [0x14021c888]
mov ecx, dword [0x14021c88c]
mov edx, eax
xor edx, ecx
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
or ecx, 0xf451de6
add ecx, 0xbf0bd187
or ecx, 0xf5090cf6
cmp ecx, 0x397997e5
jb 0x140166acd
mov eax, dword [0x14021c890]
xor edx, edx
div dword [0x14021c894]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x9fa61c90
and ecx, 0x6059e36f
imul ecx, edx
mov edx, eax
and edx, 0x6059e36f
or eax, 0x6059e36f
imul eax, edx
add eax, ecx
mov ecx, eax
and ecx, 0x799458d
add ecx, ecx
sub eax, ecx
add eax, 0x799458d
imul rax, rax, 0x402e9fcf
shr rax, 0x3e
ud2
ud2
mov ecx, dword [0x14021c8b0]
and ecx, dword [0x14021c8b4]
mov edx, ecx
and edx, 0x2e34b3cf
or ecx, 0x2e34b3cf
add ecx, edx
xor ecx, 0x12401180
and ecx, 0x335039a9
mov qword [rsi + 8], rax
mov qword [rsi], rbx
cmp ecx, 0xfe34fc7e
jne 0x140166b59
mov qword [rsi + 8], rax
mov qword [rsi], rbx
jmp 0x140166b19
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop rbp
ret