Function at 0x14008cd50
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, qword [rcx + 0x10]
movabs r8, 0x7fffffffffffffff
mov rax, rdi
xor rax, r8
cmp rax, rdx
jb 0x14008cdb2
mov r13, r9
mov r14, rdx
mov rsi, rcx
add r14, rdi
mov rbx, qword [rcx + 0x18]
mov rax, r14
or rax, 0xf
js 0x14008cdb7
mov ecx, dword [0x14058e920]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14008ce00
jmp 0x14008cdf4
call fcn.14008a5c0
mov qword [rbp - 8], r8
mov qword [rbp - 0x10], r13
mov qword [rbp - 0x18], rbx
movabs r15, 0x8000000000000000
mov eax, dword [0x14058e920]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0x99d46e3c
add eax, dword [0x140512a80]
cmp ecx, eax
je 0x14008ce95
jmp 0x14008cedf
mov ecx, dword [0x14058e924]
cmp ecx, 0x19
jl 0x14008ce0d
nop
mov ecx, dword [0x14058e924]
cmp ecx, 0x56
jge 0x14008ce00
jmp 0x14008cdf4
mov rcx, rbx
shr rcx, 1
mov rdx, rcx
xor rdx, r8
cmp rdx, rbx
jb 0x14008cdb7
add rcx, rbx
cmp rax, rcx
mov r8, rcx
cmova r8, rax
lea r15, [r8 + 1]
cmp r15, 0x1000
jb 0x14008ce4f
mov qword [rbp - 8], r8
mov qword [rbp - 0x10], r13
mov qword [rbp - 0x18], rbx
cmp r15, 0xffffffffffffffd9
jb 0x14008cdcd
call fcn.140088910
movabs rax, 0x243c83c7e537ebba
add rax, qword [0x140512a78]
cmp r15, rax
jne 0x14008ce74
mov rcx, 0xffffffffffffffff
xor r12d, r12d
jmp 0x14008cfc4
mov rcx, r15
mov edx, 0xa76360c9
mov r15, r8
mov r8d, 0x89b7d590
call fcn.1400ae650
mov rcx, r15
mov r12, rax
jmp 0x14008cfc4
lea rcx, [r15 + 0x27]
mov edx, 0xa76360c9
mov r8d, 0x89b7d590
call fcn.1400ae650
movabs r12, 0x243c83c7e537eb9a
add r12, qword [0x140512a78]
lea rcx, [rax + 0x27]
and r12, rcx
mov qword [r12 - 8], rax
mov eax, dword [0x14058e924]
mov ecx, 0x99d46e4d
add ecx, dword [0x140512a80]
cmp eax, ecx
jl 0x14008cfb8
lea r12, [r15 - 0x27]
movabs r13, 0x243c83c7e537ebe1
movabs rbx, 0xdbc37c381ac81426
nop word [rax + rax]
mov rcx, qword [0x140512a78]
add rcx, r13
imul rcx, r12
mov rdx, r15
sub rdx, rcx
imul rdx, rcx
mov rax, rcx
sub rax, rdx
shl rax, cl
mov rcx, rax
mov edx, 0xa76360c9
mov r8d, 0x89b7d590
call fcn.1400ae650
mov cl, 0x27
sub cl, al
mov rdx, rax
shl rdx, cl
sub rdx, rax
mov r8, rdx
sub r8, rax
mov ecx, edx
shl r8, cl
add r8, rdx
neg r8
mov rdx, qword [0x140512a78]
mov ecx, edx
xor ecx, 0xe537eb9a
mov r9d, edx
not r9d
and r9d, 0x65
or r9d, ecx
not r9d
lea ecx, [rcx + r9*2]
shl r8, cl
sub r8, rdx
add r8, rbx
and r8, 0xffffffffffffffe0
mov qword [r8 - 8], rax
mov eax, dword [0x14058e920]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x140512a80]
mov edx, eax
xor edx, 0x99d46e3c
and eax, 0x19d46e3c
lea eax, [rdx + rax*2]
cmp ecx, eax
jne 0x14008cf00
jmp 0x14008ce95
mov rbx, qword [rbp - 0x18]
mov r13, qword [rbp - 0x10]
mov rcx, qword [rbp - 8]
mov r15, qword [rbp + 0x70]
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x18], rcx
movabs rax, 0x243c83c7e537ebc9
add rax, qword [0x140512a78]
cmp rbx, rax
jbe 0x14008d062
mov r14, qword [rsi]
mov rcx, r12
mov rdx, r14
mov r8, rdi
call fcn.140430670
lea rcx, [r12 + rdi]
mov rdx, r13
mov r8, r15
call fcn.140430670
mov rax, r15
xor rax, r15
not rax
and rax, rdi
xor rax, r15
and rdi, r15
lea rax, [rax + rdi*2]
mov byte [r12 + rax], 0
mov rax, rbx
xor rax, 1
mov ecx, ebx
and ecx, 1
lea rdi, [rax + rcx*2]
cmp rdi, 0x1000
jb 0x14008d055
mov rax, qword [r14 - 8]
sub r14, rax
add r14, 0xfffffffffffffff8
cmp r14, 0x20
jae 0x14008d089
add rbx, 0x28
mov rdi, rbx
mov r14, rax
mov eax, dword [0x14058e924]
cmp eax, 0x60
jle 0x14008d08e
jmp 0x14008d0ae
mov rcx, r12
mov rdx, rsi
mov r8, rdi
call fcn.140430670
lea rcx, [r12 + rdi]
mov rdx, r13
mov r8, r15
call fcn.140430670
add rdi, r15
mov byte [r12 + rdi], 0
jmp 0x14008d0bb
call fcn.1403e88ec
mov rcx, r14
mov rdx, rdi
call fcn.1400ab9e0
mov eax, dword [0x14058e924]
mov ecx, 0x99d46e79
add ecx, dword [0x140512a80]
cmp eax, ecx
jl 0x14008d0bb
mov rcx, r14
mov rdx, rdi
call fcn.1400ab9e0
jmp 0x14008d08e
mov qword [rsi], r12
mov rax, rsi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret