Function at 0x14016a6d0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
xor eax, eax
test al, al
je 0x14016a710
xor eax, eax
call fcn.1401516e0
sub rsp, rax
mov eax, 0x30
call fcn.1401516e0
sub rsp, rax
mov eax, 0x10
call fcn.1401516e0
sub rsp, rax
nop word cs:[rax + rax]
mov eax, dword [0x14021d480]
mov edx, dword [0x14021d484]
mov ecx, eax
not ecx
and ecx, edx
not edx
and edx, eax
sub edx, ecx
and edx, 0xb6a0f210
xor edx, 0x74ddc720
xor eax, eax
call fcn.1401516e0
sub rsp, rax
mov rcx, rsp
mov eax, 0x30
call fcn.1401516e0
sub rsp, rax
mov rsi, rsp
mov eax, 0x10
call fcn.1401516e0
sub rsp, rax
mov rdi, rsp
cmp edx, 0x90bf630f
jb 0x14016a710
mov eax, dword [0x14022cb7c]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
cmp qword [rax + 0x30], 0
jne 0x14016a822
mov eax, dword [0x14022cb7c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 0x30], 0xffffffffffffffff
mov rax, qword [0x140179598]
nop
mov eax, dword [0x14021d488]
imul eax, dword [0x14021d48c]
add eax, 0xa7c4e0ce
cmp eax, 0x1654a5e2
jb 0x14016a7b0
mov eax, dword [0x14022cb7c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rsi, qword [rax + 0x48]
cmp rsi, qword [rax + 0x38]
jne 0x14016a81b
mov eax, dword [0x14021d4b0]
mov ecx, dword [0x14021d4b4]
xor ecx, eax
not ecx
and ecx, eax
or ecx, 0x7bffeeff
add ecx, 0xf74e5412
cmp ecx, 0x3c64bc23
jae 0x14016a9ed
jmp 0x14016aa31
xor eax, eax
jmp 0x14016aa86
mov eax, dword [0x14021d490]
mov edx, dword [0x14021d494]
mov r8d, eax
not r8d
and r8d, edx
not edx
and edx, eax
sub edx, r8d
mov eax, edx
and eax, 0x5ff99104
mov r8d, eax
not r8d
and r8d, 0xb774e4e6
mov r9d, edx
and r9d, 0x48891100
imul r9d, r8d
and edx, 0x17708004
or eax, 0xb774e4e6
imul eax, edx
add eax, r9d
mov edx, eax
not edx
mov r8d, eax
and r8d, 0xc8811b38
and edx, 0x377ee4c6
imul edx, r8d
mov r8d, eax
and r8d, 0x377ee4c0
or eax, 0x377ee4c6
imul eax, r8d
add eax, edx
cmp eax, 0xed2534c0
je 0x14016a8f0
lea rax, str.8v__
mov qword [rsi], rax
mov eax, dword [0x14021d498]
imul eax, dword [0x14021d49c]
xor eax, 0x10860030
or eax, 0x6f586687
imul eax, eax, 0x423d6b25
mov dword [rdi], 0
mov byte [rdi + 4], 0
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], rcx
xorps xmm0, xmm0
movups xmmword [rsi + 0x18], xmm0
cmp eax, 0x672a944c
jae 0x14016a919
mov dword [rdi], 0
mov byte [rdi + 4], 0
lea rax, str.8v__
mov qword [rsi], rax
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], rcx
xorps xmm0, xmm0
movups xmmword [rsi + 0x18], xmm0
jmp 0x14016a8a5
mov eax, dword [0x14021d4a0]
and eax, dword [0x14021d4a4]
or eax, 0x6f0d9dba
mov ecx, eax
and ecx, 0x2656ab63
add ecx, ecx
sub eax, ecx
cmp eax, 0x8db55bc0
je 0x14016a9c4
mov ebx, dword [0x14021d4a8]
and ebx, dword [0x14021d4ac]
mov eax, ebx
not eax
mov ecx, ebx
and ecx, 0xc2ff95d4
and eax, 0x3d006a2b
imul eax, ecx
mov ecx, ebx
and ecx, 0x3d006a2b
or ebx, 0x3d006a2b
imul ebx, ecx
add ebx, eax
mov eax, ebx
not eax
mov ecx, ebx
and ecx, 0x4d4d3114
and eax, 0xb2b2ceeb
imul eax, ecx
mov ecx, ebx
and ecx, 0xb2b2ceeb
or ebx, 0xb2b2ceeb
imul ebx, ecx
add ebx, eax
xor ebx, 0xa2a4a64d
sub rsp, 0x20
mov rcx, rdi
mov rdx, rsi
call fcn.1400b2630
mov rcx, rax
call fcn.1400b2ce0
add rsp, 0x20
cmp ebx, 0x8df2c33e
jne 0x14016a9e4
sub rsp, 0x20
mov rcx, rdi
mov rdx, rsi
call fcn.1401503d0
mov rcx, rax
call fcn.140150150
add rsp, 0x20
jmp 0x14016a941
mov ecx, 7
int 0x29
ud2
mov eax, dword [0x14021d4b8]
xor edx, edx
div dword [0x14021d4bc]
imul eax, eax, 0x1956ca0b
mov ecx, eax
not ecx
or ecx, 0x135bf2af
add eax, ecx
inc eax
mov edi, 0xd8f473a7
imul rdi, rax
shr rdi, 0x3f
sub rsp, 0x20
call fcn.1400b61a0
add rsp, 0x20
cmp edi, 0x7c41fc8c
jbe 0x14016aa40
sub rsp, 0x20
call fcn.1401503f0
add rsp, 0x20
jmp 0x14016a9ed
mov eax, dword [0x14022cb7c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + 0x30]
inc rax
nop dword [rax]
mov ecx, dword [0x14021d4c0]
and ecx, dword [0x14021d4c4]
and ecx, 0xd1405fea
xor ecx, 0x81001d22
imul ecx, ecx, 0xfdda85a4
cmp ecx, 0xf61a64b3
ja 0x14016aa60
mov ecx, dword [0x14022cb7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov rdx, qword [rcx + 0x40]
mov r8, rsi
shl r8, 4
lea r9, [rcx + 0x80]
mov qword [rdx + r8], r9
lea r9, [0x1400b66b0]
mov qword [rdx + r8 + 8], r9
inc rsi
mov qword [rcx + 0x48], rsi
mov qword [rcx + 0x30], rax
mov byte [rcx + 0x88], 1
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop rbp
ret