Function at 0x140016ade
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x78
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], rcx
mov rax, qword [rcx]
mov qword [rsp + 0x70], rax
cmp rax, rdx
jle 0x1400165c1
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov qword [rax], rcx
jmp 0x140016a0a
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x60]
cmp rax, rcx
jge 0x140016a0a
mov rax, qword [rsp + 0x68]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x50], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x58], rax
cmp rax, 0
je 0x14001663b
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
or rax, rax
xor rax, 0xffffffffffffffff
movabs rdx, 0xbfffffffffffffff
movabs r8, 0xbfffffffffffffff
or rdx, r8
xor rdx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rax, rdx
cmp rax, rcx
jge 0x140016854
mov r9, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x60]
mov rdx, rcx
sub rdx, r9
mov qword [rsp + 0x48], rdx
mov rax, rdx
xor rax, rcx
movabs rcx, 0x75e9d9116a77f717
movabs r8, 0x75e9d9116a77f717
xor rcx, r8
cmp rax, rcx
setl al
mov rcx, rdx
and rcx, rcx
xor rcx, 0xffffffffffffffff
and rcx, r9
movabs r8, 0x13051a430f3ee8b4
movabs r10, 0xecfae5bcf0c1174b
xor r8, r10
xor rcx, r8
mov r8, r9
xor r8, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
or r8, r9
movabs r9, 0xcbb972d8cecbf4aa
movabs r10, 0x34468d2731340b55
xor r9, r10
xor rdx, r9
xor r8, 0xffffffffffffffff
or rdx, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
cmp rcx, 0xffffffffffffffff
setg cl
and al, cl
test al, 1
jne 0x14001684a
mov ecx, dword [0x1401c8b48]
mov eax, 0xc35e5321
xor eax, 0xfa6fd875
xor ecx, eax
mov edx, dword [0x1401c8b4c]
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
add eax, 0xda4cd3f1
mov ecx, 0x207bec62
xor edx, edx
div ecx
mov ecx, 0x1033af8c
xor ecx, 0x1033af8c
sub ecx, eax
mov eax, 0x6f33f79b
xor eax, 0x6f33f79b
mov edx, 0x1389a554
xor edx, 0xb2acbced
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
cmp eax, 0x970552bc
je 0x140016ac3
mov r8, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
mov eax, dword [0x1401c8b50]
xor eax, 0xa971c97b
mov r9d, dword [0x1401c8b54]
mov edx, 0x265da015
xor edx, 0xd80fbff1
xor r9d, edx
xor edx, edx
div r9d
mov rdx, qword [rsp + 0x58]
mov r9d, eax
and r9d, 0x3a11f359
mov r11d, 0xffffffff
xor r11d, 0x224c6662
mov r10d, r9d
and r10d, r11d
mov eax, r9d
or eax, r11d
xor eax, 0xffffffff
imul eax, r10d
mov r11d, 0x99b0f742
xor r11d, 0xbbfc9120
mov r10d, r9d
and r10d, r11d
or r9d, 0x224c6662
imul r9d, r10d
add r9d, eax
mov eax, r9d
xor eax, 0xffffffff
xor r9d, 0xffffffff
and eax, r9d
mov r9d, 0xffffffff
xor r9d, 0xbd291d3
mov r10d, 0xffffffff
xor r10d, 0xbd291d3
and r9d, r10d
or eax, r9d
mov r9d, 0xe06a2ed1
xor r9d, 0x1f95d12e
xor eax, r9d
mov dword [rsp + 0x44], eax
mov eax, 0xc8d3c76e
xor eax, 0xecc3d131
mov dword [rsp + 0x40], eax
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.140010bb0
mov rdx, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x40]
mov r8, rax
mov eax, dword [rsp + 0x44]
mov qword [rdx], r8
cmp eax, ecx
ja 0x140016ac3
jmp 0x140016854
call fcn.140008024
jmp 0x140016a0a
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov qword [rcx], rdx
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x30], rax
mov ecx, dword [0x1401c8b58]
mov edx, dword [0x1401c8b5c]
mov r8d, ecx
xor r8d, edx
xor r8d, 0xffffffff
mov eax, edx
and eax, r8d
shl eax, 1
sub eax, edx
sub ecx, eax
mov edx, 0x9e3e9512
xor edx, 0x6b5dbde5
mov eax, ecx
and eax, edx
mov edx, 0xf0d7e64b
xor edx, 0x5b4cebc
xor ecx, edx
or eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x7e03652a
xor edx, 0x8f129893
and ecx, edx
mov edx, 0xffffffff
xor edx, 0xf111fdb9
and eax, edx
sub eax, ecx
mov ecx, 0xb4a55672
xor ecx, 0x3ab0e491
sub eax, ecx
cmp eax, 0x4c60e192
jbe 0x140016acc
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
mov eax, dword [0x1401c8b60]
mov r8d, 0xc1f57294
xor r8d, 0xb7a1e5a5
xor eax, r8d
or eax, dword [0x1401c8b64]
and eax, 0x6b4e46a1
xor eax, 0x683fb396
sub eax, 0xc4234cb6
cmp rcx, rdx
setl cl
mov byte [rsp + 0x2f], cl
cmp eax, 0x7a53b83f
jae 0x1400168ee
mov al, byte [rsp + 0x2f]
test al, 1
jne 0x140016949
jmp 0x140016a0a
mov r9, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov byte [rax + r9 + 8], 0
movabs rcx, 0xa8685e5f56831e4f
movabs rax, 0xa8685e5f56831e4e
xor rcx, rax
mov rax, r9
and rax, rcx
mov rcx, r9
or rcx, 1
add rax, rcx
mov rdx, r9
xor rdx, 0xffffffffffffffff
movabs rcx, 0x1cd09358fe2e0f1f
and rdx, rcx
movabs r8, 0xe4ca779e6bdea7f8
movabs rcx, 0xf81ae4c695f0a8e7
xor r8, rcx
movabs rcx, 0x368a9052f7881a90
movabs r10, 0xc9756fad0877e56f
xor rcx, r10
xor r8, rcx
and r9, r8
mov rcx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
movabs r10, 0x1cd09358fe2e0f1f
and rcx, r10
and r8, 0xffffffffffffffff
or rdx, r9
or rcx, r8
xor rdx, rcx
mov rcx, rax
and rcx, rdx
cmp rcx, 0
mov qword [rsp + 0x38], rax
jge 0x14001686b
call fcn.140008024
mov ecx, dword [0x1401c8b68]
mov eax, 0xf7432c
xor eax, 0x10f0e66c
xor ecx, eax
and ecx, dword [0x1401c8b6c]
and ecx, 0xbb0e17dc
mov eax, ecx
and eax, 0xcff337b4
xor ecx, 0xcff337b4
or eax, ecx
mov ecx, 0xc115d268
xor ecx, 0x9c2c580e
mov edx, 0xe807c334
xor edx, 0x17f83ccb
xor ecx, edx
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
cmp eax, 0x241d34a6
je 0x140016ad5
mov eax, dword [0x1401c8b70]
add eax, dword [0x1401c8b74]
sub eax, 0xbfa93cac
add eax, 0xcde97fef
mov edx, eax
xor edx, 0xffffffff
and edx, 0x95ecf4
mov r8d, 0xffffffff
xor r8d, 0x95ecf4
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x95ecf4
or eax, 0x95ecf4
imul eax, edx
add eax, ecx
mov ecx, 0x7d0cccf5
xor ecx, 0x303344b4
cmp eax, ecx
je 0x140016ad5
add rsp, 0x78
ret
xchg ecx, eax
xchg edx, eax
mov ah, 0xb0
jmp 0x140016748
ret 0xd921
invalid
and qword [rcx], 0
jmp 0x140016590