Function at 0x140015e00
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 0x140015e33
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
call fcn.140015b40
jmp 0x14001610a
mov r8d, dword [0x140250c08]
mov ecx, dword [0x140250c0c]
mov eax, r8d
and eax, ecx
shl eax, 1
add r8d, ecx
sub r8d, eax
mov eax, 0xdae5d2b9
xor eax, 0x251a2d46
mov ecx, r8d
xor ecx, eax
mov eax, 0x200836ad
xor eax, 0x34cfefc
and eax, ecx
mov edx, 0xa9ed92d1
xor edx, 0x8aa95a80
mov ecx, 0x2dcfec29
xor ecx, 0xd23013d6
xor edx, ecx
and r8d, edx
mov ecx, 0xc9838de2
xor ecx, 0x6e772c58
mov r9d, 0x2b98495d
xor r9d, 0xd467b6a2
xor ecx, r9d
and ecx, 0x2344c851
and edx, 0xa7f4a1ba
or eax, r8d
or ecx, edx
xor eax, ecx
mov ecx, 0x42118da4
xor edx, edx
div ecx
xor eax, 0x1f3ae33e
mov ecx, 0xfb241f88
xor ecx, 0x3541b3c5
cmp eax, ecx
je 0x140016110
mov rcx, qword [rsp + 0x70]
mov eax, dword [0x140250c10]
xor edx, edx
div dword [0x140250c14]
mov r8d, 0xe566e2ad
xor edx, edx
div r8d
mov r8d, 0x5345f285
xor edx, edx
div r8d
mov rdx, qword [rsp + 0x60]
xor eax, 0x30cb2a4f
cmp rcx, rdx
setl cl
mov byte [rsp + 0x5f], cl
cmp eax, 0x27b1ea6d
jbe 0x140015ed3
mov al, byte [rsp + 0x5f]
test al, 1
jne 0x140015f2c
jmp 0x14001610a
mov rax, qword [rsp + 0x68]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x48], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x50], rax
cmp rax, 0
je 0x140015fa3
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
or rax, rax
xor rax, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs r8, 0xbfffffffffffffff
xor rdx, r8
mov r8, 0xffffffffffffffff
movabs r9, 0xbfffffffffffffff
xor r8, r9
and rdx, r8
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rax, rdx
cmp rax, rcx
jge 0x140016040
mov rdx, qword [rsp + 0x70]
mov r9, qword [rsp + 0x60]
mov rcx, r9
sub rcx, rdx
mov qword [rsp + 0x40], rcx
movabs rax, 0x784eeced13bcfa96
movabs r8, 0x87b11312ec430569
xor rax, r8
mov r8, rcx
xor r8, rax
mov rax, r9
and rax, r8
xor r9, 0xffffffffffffffff
mov r8, rcx
and r8, r9
or rax, r8
cmp rax, 0
setl al
xor rcx, rdx
cmp rcx, 0xffffffffffffffff
setg cl
and al, cl
test al, 1
jne 0x140016036
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
mov r9d, 0x18
mov qword [rsp + 0x20], 8
call fcn.140010c40
mov rcx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax], rcx
jmp 0x140016040
call fcn.140007e9d
jmp 0x14001610a
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 rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x30], rax
cmp rax, rcx
jge 0x14001610a
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x18
add rcx, rax
movabs rdx, 0xfda28ae87579edbf
movabs rax, 0xfda28ae87579eda7
xor rdx, rax
call fcn.140008450
mov rdx, qword [rsp + 0x30]
mov rax, rdx
add rax, 1
xor rdx, 0xffffffffffffffff
mov rcx, rax
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
movabs r9, 0x7ce66191bc49355c
xor r8, r9
or rcx, rdx
movabs rdx, 0xa2598d12f6f53b65
movabs r9, 0xdebfec834abc0e39
xor rdx, r9
or rdx, r8
xor rcx, 0xffffffffffffffff
and rcx, rdx
cmp rcx, 0
mov qword [rsp + 0x38], rax
jge 0x140016057
call fcn.140007e9d
nop
add rsp, 0x78
ret
or al, 0x13
xlatb
cmc
jmp 0x140015ed3