Function at 0x14016b8b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov r9, rdx
mov rsi, rcx
xor eax, eax
test al, al
jne 0x14016b93d
mov eax, dword [0x14021ea28]
mov ecx, dword [0x14021ea2c]
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [rax + rdx*2]
add eax, 0xc5085ce7
mov ecx, eax
xor ecx, 0xe1cceeff
xor eax, 0x6100000
and eax, 0x47d862d2
mov edx, ecx
and edx, 0xb8279d2d
imul edx, eax
mov eax, ecx
and eax, 0x47d862d2
or ecx, 0x47d862d2
imul ecx, eax
add ecx, edx
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov rbx, rsp
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov r13, rsp
cmp ecx, 0x2ca7532c
jne 0x14016b95c
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
jmp 0x14016b8cc
mov rax, r9
add rax, r8
setb cl
nop word cs:[rax + rax]
mov eax, dword [0x14021ea30]
xor edx, edx
div dword [0x14021ea34]
mov edx, eax
not edx
and edx, 0xf798a31d
mov r10d, eax
and r10d, 0x8675ce2
imul r10d, edx
mov edx, eax
and edx, 0xf798a31d
or eax, 0xf798a31d
imul eax, edx
add eax, r10d
imul rax, rax, 0x123b9043
shr rax, 0x3b
or eax, 0x265fec6c
cmp eax, 0x665181f1
ja 0x14016b970
test cl, cl
jne 0x14016bd2c
mov rax, r8
and rax, r9
or r8, r9
add r8, rax
movabs rcx, 0x3fffffffffffffff
mov edx, 4
nop word cs:[rax + rax]
mov r11d, dword [0x14021ea38]
xor r11d, dword [0x14021ea3c]
or r11d, 0xd98e159a
add r11d, 0x1070f1f0
mov r9, qword [rsi]
lea rax, [r9 + r9]
cmp rax, r8
mov r12, r8
cmova r12, rax
cmp r12, 5
cmovb r12, rdx
xor r14d, r14d
cmp r12, rcx
setbe r10b
cmp r11d, 0x85eb2687
jb 0x14016b9f0
mov r14b, r10b
test r9, r9
mov qword [rbp], rsi
je 0x14016ba74
mov ecx, dword [0x14021ea40]
mov edx, dword [0x14021ea44]
mov r8d, ecx
xor r8d, edx
not r8d
or ecx, edx
and ecx, r8d
or ecx, 0x7cabf352
and ecx, 0x7dabf352
cmp ecx, 0x9fe09bcf
jbe 0x14016ba7c
jmp 0x14016badb
xor r15d, r15d
jmp 0x14016bbd5
mov ecx, dword [0x14021ea48]
or ecx, dword [0x14021ea4c]
mov edx, ecx
and edx, 0x84e59a56
and ecx, 0x400a56
add ecx, ecx
sub edx, ecx
add edx, 0x51484b77
mov ecx, edx
not ecx
and ecx, 0x3c85b4cc
mov r8d, edx
and r8d, 0xc37a4b32
imul r8d, ecx
mov ecx, edx
and ecx, 0x1c85b4cd
or edx, 0x3c85b4cd
imul edx, ecx
add edx, r8d
mov rcx, qword [rsi + 8]
mov qword [rbx], rcx
cmp edx, 0x3f40b28c
jbe 0x14016bae4
mov rcx, qword [rsi + 8]
mov qword [rbx], rcx
jmp 0x14016ba7c
mov ecx, dword [0x14021ea50]
mov edx, dword [str.I_r__]
not ecx
not edx
or edx, ecx
not edx
imul ecx, edx, 0x6b16d8ba
add ecx, 0xddfa6f5a
xor ecx, 0x1fb3e3b7
cmp ecx, 0xa52def7e
je 0x14016bba6
mov edx, dword [0x14021ea58]
mov ecx, dword [0x14021ea5c]
mov r8d, edx
xor r8d, ecx
not r8d
and r8d, ecx
add r8d, r8d
sub ecx, r8d
add ecx, edx
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0x436e9f83
and edx, 0xbc91607c
imul edx, r8d
mov r8d, ecx
and r8d, 0x3c91607c
or ecx, 0x3c91607c
imul ecx, r8d
add ecx, edx
mov edx, ecx
not edx
mov r8d, ecx
or r8d, 0x8d0b1a96
and edx, 0x3074c508
mov r9d, r8d
and r9d, 0x478020f0
imul r9d, edx
and r8d, 0xb87fdf0e
or ecx, 0xbd7fdf9e
imul ecx, r8d
add ecx, r9d
mov qword [rbx + 0x10], rax
cmp ecx, 0x6883d82e
jne 0x14016bbb0
mov qword [rbx + 0x10], rax
jmp 0x14016bb16
mov eax, dword [0x14021ea60]
xor edx, edx
div dword [0x14021ea64]
add eax, 0x3c6764d8
or eax, 0x7fdffaaf
cmp eax, 0x7560b8a0
jb 0x14016bbb0
mov r15d, 2
lea rsi, [r12 + r12]
add r14, r14
mov eax, dword [0x14021ea68]
xor edx, edx
div dword [0x14021ea6c]
mov ecx, eax
xor ecx, 0x59171641
and eax, 0x26e8e9be
add eax, eax
sub eax, ecx
imul eax, eax, 0xd33ff59e
cmp eax, 0x3ea7f808
jne 0x14016bc30
mov qword [rbx + 8], r15
sub rsp, 0x20
mov rcx, r13
mov rdx, r14
mov r8, rsi
mov r9, rbx
call fcn.1400ac0c0
add rsp, 0x20
nop word cs:[rax + rax]
mov eax, dword [0x14021ea70]
mov ecx, dword [0x14021ea74]
mov edx, eax
not edx
and edx, ecx
mov r10d, ecx
not r10d
and r10d, eax
imul r10d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r10d
mov edi, eax
xor edi, 0x218424
and edi, eax
mov eax, edi
not eax
or eax, 0xa1082010
and eax, 0xad48a251
and edi, 0x5031052c
or edi, eax
xor edi, 0xb7d3bd45
mov qword [rbx + 8], r15
sub rsp, 0x20
mov rcx, r13
mov rdx, r14
mov r8, rsi
mov r9, rbx
call fcn.140150370
add rsp, 0x20
cmp edi, 0x766ebe95
ja 0x14016bc30
cmp qword [r13], 0
jne 0x14016bd2c
mov r9, qword [rbp]
nop word cs:[rax + rax]
mov eax, dword [0x14021ea88]
xor edx, edx
div dword [0x14021ea8c]
not eax
and eax, 0x84032b8c
cmp eax, 0xec922a8c
je 0x14016bcc0
mov rcx, qword [r13 + 8]
mov eax, dword [0x14021ea90]
mov edx, dword [0x14021ea94]
mov r8d, eax
xor r8d, edx
not edx
and edx, eax
add edx, edx
sub edx, r8d
mov eax, edx
not eax
or edx, 0x26edc8e9
or eax, 0xd9123716
and eax, edx
mov edx, 0xd832adf5
imul rdx, rax
shr rdx, 0x3f
xor edx, 0xa57c5155
cmp edx, 0x42d3dca7
jae 0x14016bd7c
jmp 0x14016bdd6
mov eax, dword [0x14021ea78]
and eax, dword [0x14021ea7c]
shr eax, 1
imul rax, rax, 0x4fe5d7af
shr rax, 0x3c
xor eax, 0x821e545e
cmp eax, 0x2fdb4ce3
jb 0x14016bd76
mov eax, dword [0x14021ea80]
sub eax, dword [0x14021ea84]
imul eax, eax, 0xb83b9bc5
or eax, 0x1193eacd
add eax, 0xa282a3bb
ud2
ud2
mov eax, dword [0x14021ea98]
xor edx, edx
div dword [0x14021ea9c]
mov edx, eax
not edx
mov r8d, eax
and r8d, 0xc6f6494f
and edx, 0x3909b6b0
imul edx, r8d
mov r8d, eax
and r8d, 0x3909b6b0
or eax, 0x3909b6b0
imul eax, r8d
add eax, edx
imul eax, eax, 0xf38d1111
imul rax, rax, 0x63f48571
shr rax, 0x3e
mov qword [r9 + 8], rcx
mov qword [r9], r12
cmp eax, 0xc9d53ac1
jne 0x14016bddf
mov qword [r9 + 8], rcx
mov qword [r9], r12
jmp 0x14016bd7c
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret