Function at 0x140018660
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x68
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], rcx
mov rdx, qword [rcx]
mov rcx, rdx
and rcx, 0xffffffffffffffff
movabs rax, 0xb6ab5e1b3917ae01
movabs r8, 0xb6ab5e1b3917ae03
xor rax, r8
imul rcx, rax
mov rax, rdx
xor rax, 0xffffffffffffffff
add rax, rcx
mov qword [rsp + 0x60], rax
mov rcx, rax
xor rcx, rdx
cmp rcx, 0
setl cl
movabs rdx, 0xcce5fb671c65410f
movabs r8, 0x331a0498e39abef0
xor rdx, r8
cmp rax, rdx
setg al
and al, cl
test al, 1
jne 0x1400186f3
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
add rcx, 8
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rax
jmp 0x1400186fd
call fcn.1400077a3
jmp 0x1400188c1
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x38], rax
cmp rax, rcx
jl 0x1400188b4
mov rax, qword [rsp + 0x38]
movabs rcx, 0x77b852fb7aa4ea87
movabs rdx, 0x77b852fb7aa4ea87
xor rcx, rdx
cmp rax, rcx
jl 0x14001874d
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x58]
cmp rax, qword [rcx]
jl 0x14001875a
mov rcx, rdx
call fcn.140013580
jmp 0x1400188c1
mov eax, dword [0x1401d5ca8]
sub eax, dword [0x1401d5cac]
mov ecx, 0xde62ddfa
xor ecx, 0xd27ab3ae
sub eax, ecx
mov ecx, eax
add ecx, 1
mov edx, 0x6ce9a5f2
xor edx, 0x93165a0d
xor eax, edx
or eax, 0x894f99cc
add eax, ecx
imul eax, eax, 0x1019bb96
mov ecx, 0xf95f9d67
xor ecx, 0x7ffcbadc
cmp eax, ecx
jb 0x14001894c
mov rcx, qword [rsp + 0x40]
mov eax, dword [0x1401d5cb0]
xor eax, dword [0x1401d5cb4]
mov r8d, 0xb7e11f61
xor edx, edx
div r8d
mov r8d, 0xb86af861
xor edx, edx
div r8d
mov edx, eax
mov rax, qword [rsp + 0x38]
or edx, 0x5920f791
mov dword [rsp + 0x24], edx
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
call fcn.1400183f0
mov rcx, qword [rsp + 0x38]
mov eax, dword [rsp + 0x24]
mov r8, rcx
add r8, 0xffffffffffffffff
mov qword [rsp + 0x28], r8
mov rdx, r8
or rdx, rdx
xor rdx, 0xffffffffffffffff
mov r9, rcx
or r9, r9
xor r9, 0xffffffffffffffff
or rdx, r9
xor rdx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
movabs r10, 0x5b43b7e25c519fba
movabs r9, 0xa4bc481da3ae6045
xor r10, r9
mov r9, rcx
xor r9, r10
and r8, r9
movabs r9, 0xa7b84706d9ba81a3
movabs r10, 0x5847b8f926457e5c
xor r9, r10
xor rdx, r9
xor r8, 0xffffffffffffffff
and rdx, r8
cmp rdx, 0
setl r8b
cmp rcx, 0
setne dl
xor r8b, 0xff
mov cl, dl
xor cl, r8b
and cl, dl
mov byte [rsp + 0x37], cl
cmp eax, 0x990d4134
je 0x14001894c
mov rax, qword [rsp + 0x28]
mov cl, byte [rsp + 0x37]
test cl, 1
mov qword [rsp + 0x48], rax
jne 0x1400188aa
jmp 0x1400186fd
call fcn.1400077a3
jmp 0x1400188c1
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov qword [rax], rcx
mov eax, dword [0x1401d5cb8]
xor edx, edx
div dword [0x1401d5cbc]
mov ecx, 0x353a4c02
xor edx, edx
div ecx
xor eax, 0xdbebec76
imul eax, eax, 0x783c41e7
mov ecx, 0x1b733498
xor ecx, 0x4b949bf3
cmp eax, ecx
ja 0x140018955
mov eax, dword [0x1401d5cc0]
xor eax, 0xf268cb73
mov edx, dword [0x1401d5cc4]
mov r8d, eax
and r8d, edx
mov ecx, 0x192da0fe
xor ecx, 0x192da0fc
imul ecx, r8d
add eax, edx
sub eax, ecx
imul eax, eax, 0xbc10c732
or eax, 0xb445f4b9
mov ecx, 0x2b4cb8cd
xor edx, edx
div ecx
mov ecx, 0x9fd1ab08
xor ecx, 0xb1732c9a
cmp eax, ecx
je 0x1400188f6
add rsp, 0x68
ret
ret 0xc112
wait
rcr byte [rbp - 0x67165b], 0xff
jmp qword [rsi - 0x70]