Function at 0x1401d1c20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
mov r15, qword [rcx]
mov r12, qword [rcx + 8]
sub r12, r15
mov rax, qword [rcx + 0x10]
sub rax, r15
sar rax, 3
mov r10, qword [0x140570a38]
mov r11, r10
neg r11
mov cl, 0xab
sub cl, r11b
mov r9, rax
shr r9, cl
sar r12, 3
inc r12
dec r10
movabs rcx, 0xa6024cc3620574a8
and rcx, r11
movabs rdi, 0x59fdb33c9dfa8b57
and rdi, r10
or rdi, rcx
movabs rcx, 0x26024cc3620574a8
xor rcx, r11
and rcx, r11
lea rcx, [rdi + rcx*2]
add rcx, r9
neg rcx
add r9, rax
cmp r9, r12
cmovbe r9, r12
cmp rax, rcx
movabs r13, 0x1fffffffffffffff
cmovbe r13, r9
mov rax, r13
shr rax, 0x3d
jne 0x1401d1ddb
mov r14, r8
mov rbx, rdx
lea rcx, [r13*8]
cmp r13, 0x200
jb 0x1401d1d6b
movabs rax, 0xa6024cc3620574a6
add rax, qword [0x140570a38]
cmp r13, rax
jae 0x1401d1df0
mov eax, 0x1c5f4dbf
add eax, dword [0x140570ad0]
add rcx, 0x27
mov edx, eax
xor edx, 0xe3a02ecf
and eax, 0x63a02ecf
lea eax, [rdx + rax*2]
cdqe
add rax, qword [0x140570ae0]
mov edx, 0xa14db22e
mov r8d, 0xc3e831e2
call qword [case.0x14012b313.0]
lea rdi, [rax + 0x27]
mov rcx, 0xffffffffffffffd8
sub rcx, rax
and rcx, 0xffffffffffffffe0
mov edx, edi
and edx, 0x1f
or rdx, rcx
not edi
and edi, 0x1f
xor rdi, rdx
not rdi
mov qword [rdi - 8], rax
jmp 0x1401d1dad
movabs rax, 0x86024cc3620574aa
add rax, qword [0x140570a38]
cmp r13, rax
jne 0x1401d1d85
xor edi, edi
jmp 0x1401d1dad
mov eax, 0xffff7c8e
add eax, dword [0x140570ad0]
cdqe
add rax, qword [0x140570ae0]
mov edx, 0xa14db22e
mov r8d, 0xc3e831e2
call qword [case.0x14012b313.0]
mov rdi, rax
mov rcx, rbx
sub rcx, r15
sar rcx, 3
mov edx, dword [0x1405d0e58]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, 0xfa14a9ae
add r8d, dword [0x140570a40]
xor edx, edx
div r8d
test edx, edx
jne 0x1401d1e40
jmp 0x1401d1e0a
mov eax, dword [0x140570ad4]
mov ecx, dword [0x140570a40]
add eax, ecx
add eax, 0xfa14263a
jmp 0x1401d1dfb
mov eax, 0xffff7c8e
add eax, dword [0x140570ad4]
cdqe
add rax, qword [0x140570ae8]
call qword [case.0x14012b313.0]
mov rax, qword [r14]
mov qword [rdi + rcx*8], rax
mov r8, qword [rsi + 8]
mov eax, dword [0x1405d0e58]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
mov eax, 0xfa14a9ac
add eax, dword [0x140570a40]
cmp edx, eax
je 0x1401d1e5a
nop word cs:[rax + rax]
mov rax, qword [r14]
mov qword [rdi + rcx*8], rax
mov eax, dword [0x1405d0e58]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x1401d1e40
jmp 0x1401d1e0a
lea r14, [rdi + rcx*8]
cmp r8, rbx
je 0x1401d1e87
lea r15, [r14 + 8]
mov rdx, qword [rsi]
mov r8, rbx
sub r8, rdx
mov rcx, rdi
call fcn.14046c800
mov r8, qword [rsi + 8]
sub r8, rbx
mov rcx, r15
mov rdx, rbx
jmp 0x1401d1e90
mov rdx, qword [rsi]
sub r8, rdx
mov rcx, rdi
call fcn.14046c800
mov r15, qword [rsi]
test r15, r15
je 0x1401d1f9b
mov rbx, qword [rsi + 0x10]
sub rbx, r15
movabs rax, 0x86024cc3620584a9
add rax, qword [0x140570a38]
cmp rbx, rax
mov qword [rbp - 8], r14
jbe 0x1401d1ee8
mov rax, qword [r15 - 8]
sub r15, rax
add r15, 0xfffffffffffffff8
cmp r15, 0x20
jae 0x1401d1fc2
mov rcx, qword [0x1405d0928]
add rbx, rcx
add rbx, 0x27
mov r15, rax
mov ecx, dword [0x1405d0e58]
mov eax, 0x4710a746
sub eax, ecx
mov edx, eax
not edx
xor eax, 0xb8ef58b9
and edx, 0x4710a746
lea eax, [rax + rdx*2]
imul eax, ecx
mov ecx, 0xfa14a9ae
add ecx, dword [0x140570a40]
xor edx, edx
div ecx
test edx, edx
je 0x1401d1f6b
mov r14d, 0xffff7c8e
nop word cs:[rax + rax]
mov eax, dword [0x140570ad8]
add eax, r14d
cdqe
add rax, qword [0x140570af0]
mov rcx, r15
mov rdx, rbx
mov r8d, 0x107891ad
mov r9d, 0x36564e0b
call qword [case.0x14012b313.0]
mov eax, dword [0x1405d0e58]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d1f30
mov eax, 0xffff7c8e
add eax, dword [0x140570ad8]
cdqe
add rax, qword [0x140570af0]
mov rcx, r15
mov rdx, rbx
mov r8d, 0x107891ad
mov r9d, 0x36564e0b
call qword [case.0x14012b313.0]
mov r14, qword [rbp - 8]
mov qword [rsi], rdi
lea rax, [rdi + r12*8]
mov qword [rsi + 8], rax
lea rax, [rdi + r13*8]
mov qword [rsi + 0x10], rax
mov rax, r14
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor eax, eax
test al, al
jne 0x1401d1fe0
mov eax, dword [0x1405d0e58]
mov ecx, 1
sub ecx, eax
imul ecx, eax
test cl, 1
je 0x1401d200f
nop dword [rax]
mov eax, dword [0x1405d0e58]
mov ecx, 0x9dc4121d
sub ecx, eax
imul ecx, eax
and ecx, 1
mov eax, dword [0x140570a40]
mov edx, eax
xor edx, 0xfa14a9ac
and eax, 0x7a14a9ac
lea eax, [rdx + rax*2]
cmp ecx, eax
jne 0x1401d1fe0
jmp 0x1401d1fc8
call fcn.140424a4c
int3