Function at 0x140016190
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x80
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x38], rdx
mov qword [rbp - 0x30], rcx
mov eax, 0x20
call fcn.1401d4340
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x28], rax
mov rax, qword [rcx]
mov qword [rbp - 0x20], rax
cmp rax, rdx
jle 0x1400161e6
mov rdx, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x30]
sub rsp, 0x20
call fcn.140015df0
add rsp, 0x20
jmp 0x140016672
mov rax, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x38]
cmp rax, rcx
jge 0x140016672
mov rax, qword [rbp - 0x30]
mov rcx, rax
add rcx, 8
mov qword [rbp - 0x48], rcx
mov rax, qword [rax + 8]
mov qword [rbp - 0x40], rax
cmp rax, 0
je 0x140016335
mov eax, dword [0x1401d5b48]
xor eax, 0xf520a616
and eax, dword [0x1401d5b4c]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0xf365633f
xor edx, 0x66d4c3af
and ecx, edx
mov edx, 0xff448183
xor edx, 0x6af52113
mov r8d, 0x1dde9e1a
xor r8d, 0xe22161e5
xor edx, r8d
and eax, edx
sub eax, ecx
mov ecx, 0x6188d459
xor edx, edx
div ecx
add eax, 0x589b03e8
add eax, 0xdbba43f
mov ecx, 0xff694c59
xor ecx, 0xa7f24fb1
sub eax, ecx
cmp eax, 0xfdfee144
je 0x140016768
mov r8, qword [rbp - 0x38]
mov r9, qword [rbp - 0x40]
mov eax, dword [0x1401d5b50]
mov ecx, 0xb8b0d9fd
xor ecx, 0xffd3c143
xor eax, ecx
mov edx, dword [str.__Y]
mov ecx, 0xe436c413
xor ecx, 0xe436c413
sub ecx, edx
sub eax, ecx
imul eax, eax, 0x358764ae
mov ecx, 0xf923e201
xor ecx, 0xd96a48ce
and eax, ecx
mov edx, 0xa4c6a04f
xor edx, 0x5b395fb0
mov ecx, eax
xor ecx, edx
and ecx, 0x5e54c077
mov edx, 0x13ed8951
xor edx, 0x4db94926
mov r10d, 0x1eb927cc
xor r10d, 0xe146d833
xor edx, r10d
and eax, edx
sub eax, ecx
mov ecx, 0xbdc7fa92
xor ecx, 0x4b2e6d92
movabs rdx, 0xbfffffffffffffff
and rdx, qword [r9]
cmp rdx, r8
setl dl
mov byte [rbp - 0x49], dl
cmp eax, ecx
jae 0x140016768
mov al, byte [rbp - 0x49]
test al, 1
jne 0x140016335
jmp 0x1400163ea
mov rdx, qword [rbp - 0x20]
mov r9, qword [rbp - 0x38]
mov rcx, r9
sub rcx, rdx
mov qword [rbp - 0x58], rcx
mov r8, rcx
and r8, r9
shl r8, 1
mov rax, rcx
add rax, r9
sub rax, r8
movabs r8, 0xa569d33d6c7c3fea
movabs r9, 0xa569d33d6c7c3fea
xor r8, r9
cmp rax, r8
setl al
xor rcx, rdx
movabs rdx, 0x7a1a2ca0948214ed
movabs r8, 0x85e5d35f6b7deb12
xor rdx, r8
cmp rcx, rdx
setg cl
and al, cl
test al, 1
jne 0x1400163d8
mov r8, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x20]
mov r9d, 0x18
sub rsp, 0x30
mov qword [rsp + 0x20], 8
call fcn.140011990
add rsp, 0x30
mov rcx, rax
mov rax, qword [rbp - 0x48]
mov qword [rax], rcx
jmp 0x1400163ea
sub rsp, 0x20
call fcn.1400077a3
add rsp, 0x20
jmp 0x140016672
mov rax, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x38]
mov qword [rcx], rdx
mov qword [rbp - 0x60], rax
mov rax, qword [rbp - 0x60]
mov qword [rbp - 0x68], rax
mov eax, dword [0x1401d5b58]
xor edx, edx
div dword [0x1401d5b5c]
mov ecx, 0xa9fad24b
xor edx, edx
div ecx
mov edx, eax
mov eax, 0x3058de2a
xor eax, 0xdc5fad41
xor edx, eax
mov ecx, edx
xor ecx, 0xb89d4867
mov eax, 0xffffffff
xor eax, 0xb89d4867
and edx, eax
mov eax, 0x91c19a23
xor eax, 0x91c19a21
imul eax, edx
sub eax, ecx
cmp eax, 0x575d954b
je 0x140016771
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x38]
mov eax, dword [0x1401d5b60]
xor eax, dword [0x1401d5b64]
sub eax, 0xd91779a1
mov r8d, 0xe807248c
xor r8d, 0xd7b8a730
and r8d, eax
xor r8d, 0xffffffff
add eax, 0x3fbf83bc
mov r9d, 0x19e1e910
xor r9d, 0x19e1e911
add eax, r9d
add eax, r8d
mov r9d, 0x82dff5bf
xor r9d, 0x82dff5be
mov r8d, eax
add r8d, r9d
mov r9d, 0x17d4f806
xor r9d, 0xe82b07f9
xor eax, r9d
or eax, 0x6cc732d8
add eax, r8d
cmp rcx, rdx
setl cl
mov byte [rbp - 0x69], cl
cmp eax, 0xda848547
ja 0x140016458
mov al, byte [rbp - 0x69]
test al, 1
jne 0x1400164ec
jmp 0x140016660
mov eax, dword [0x1401d5b68]
xor eax, 0x3c70259f
and eax, dword [0x1401d5b6c]
and eax, 0x3f5135a8
add eax, 0x730921e6
sub eax, 0x483d2dcd
cmp eax, 0x5ca47ef7
ja 0x14001677a
mov rcx, qword [rbp - 0x28]
mov edx, dword [0x1401d5b70]
mov r8d, dword [0x1401d5b74]
mov eax, edx
and eax, r8d
xor edx, r8d
or eax, edx
or eax, 0x4bbad976
mov r8d, 0x7249fbfc
xor edx, edx
div r8d
mov r8d, 0x9384e73c
xor edx, edx
div r8d
mov dword [rbp - 0x7c], eax
mov edx, 0x18
sub rsp, 0x20
call fcn.140007f04
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x68]
add rsp, 0x20
mov rcx, qword [rcx]
add rcx, 8
imul rdx, rdx, 0x18
add rcx, rdx
mov rdx, qword [rax]
mov qword [rbp - 0x18], rdx
mov rdx, qword [rax + 8]
mov qword [rbp - 0x10], rdx
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
lea rdx, [rbp - 0x18]
sub rsp, 0x20
call fcn.140047535
mov r8, qword [rbp - 0x68]
mov eax, dword [rbp - 0x7c]
add rsp, 0x20
xor ecx, ecx
sub rcx, r8
movabs rdx, 0x8fd505361d3ce9d1
movabs r9, 0x8fd505361d3ce9d1
xor rdx, r9
movabs r9, 0x2f60ff1ad2500957
movabs r10, 0x2f60ff1ad2500956
xor r9, r10
sub rdx, r9
add rcx, rdx
xor edx, edx
sub rdx, rcx
mov qword [rbp - 0x78], rdx
xor r8, 0xffffffffffffffff
mov rcx, rdx
xor rcx, 0xffffffffffffffff
mov r9, r8
xor r9, 0xffffffffffffffff
or rcx, r9
xor rdx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
or rdx, r8
xor rcx, 0xffffffffffffffff
movabs r8, 0xd4e8eb335fd6f6f8
movabs r9, 0x2b1714cca0290907
xor r8, r9
xor rdx, r8
or rcx, rdx
cmp rcx, 0
setl cl
mov byte [rbp - 0x6a], cl
cmp eax, 0xd41495f1
je 0x140016517
mov al, byte [rbp - 0x6a]
test al, 1
jne 0x140016653
jmp 0x140016665
sub rsp, 0x20
call fcn.1400077a3
add rsp, 0x20
jmp 0x140016672
mov rax, qword [rbp - 0x78]
mov qword [rbp - 0x60], rax
jmp 0x1400163fd
mov ecx, dword [0x1401d5b78]
imul ecx, dword [0x1401d5b7c]
xor ecx, 0xf575822c
mov eax, 0x39d8f28b
xor eax, 0x12fe9052
and ecx, eax
mov eax, ecx
and eax, eax
mov edx, 0x285326ec
xor edx, 0xd7acd913
xor eax, edx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x162c4575
or eax, edx
mov edx, 0xdba84845
xor edx, 0xcd840d30
mov r8d, 0x32857089
xor r8d, 0xcd7a8f76
xor edx, r8d
mov r8d, 0xe06b6fa3
xor r8d, 0xf6472ad6
mov r9d, 0x86137338
xor r9d, 0x79ec8cc7
xor r8d, r9d
or edx, r8d
xor ecx, 0xffffffff
mov r8d, 0x5d6a313f
xor r8d, 0xa295cec0
xor edx, r8d
or ecx, edx
and eax, ecx
mov ecx, 0x5f4d628d
xor ecx, 0xa0b29d72
xor eax, ecx
cmp eax, 0x8c9dd44f
je 0x140016783
mov ecx, dword [0x1401d5b80]
mov eax, dword [0x1401d5b84]
xor eax, 0x66b15cf
or ecx, eax
mov eax, 0x1796708e
xor eax, 0x94d90c62
imul ecx, eax
mov edx, 0xeee1af0d
xor edx, 0xaf8de6e7
mov eax, ecx
and eax, edx
or ecx, 0x416c49ea
add eax, ecx
or eax, 0xc1edba09
cmp eax, 0xdef8bc48
jae 0x14001671c
mov rsp, rbp
pop rbp
ret
in eax, dx
shr cl, 1
adc al, 0xfb
invalid
mov bh, 0x74
or al, 0x53
jmp 0x140016458
popfq
invalid
xchg byte [rsi + 0x55], dh
jmp 0x14001671c
sub rsp, 0x38
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
xor eax, eax
mov edx, eax
call fcn.140015df0
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
add rsp, 0x38
jmp 0x140016190