Function at 0x14009ab80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov r14, r8
mov r12, rdx
mov rdi, rcx
mov rax, qword [rdx + 8]
mov rcx, qword [rdx]
mov rsi, rax
sub rsi, rcx
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
sub rax, rcx
je 0x14009abea
js 0x14009aff7
sar rsi, 3
mov r15, rax
sar r15, 1
cmp rax, 0x1ff9
jb 0x14009abef
lea rcx, [r15 + 0x27]
call fcn.1401c3b4c
lea r13, [rax + 0x27]
and r13, 0xffffffffffffffe0
mov qword [r13 - 8], rax
jmp 0x14009abfa
xor r13d, r13d
jmp 0x14009ac1d
mov rcx, r15
call fcn.1401c3b4c
mov r13, rax
mov qword [rdi], r13
lea rsi, [rsi*4]
add rsi, r13
mov qword [rdi + 0x10], rsi
mov rcx, r13
xor edx, edx
mov r8, r15
call fcn.1401bb600
mov qword [rdi + 8], rsi
xor eax, eax
popcnt rax, r14
mov qword [rsp + 0x30], rax
je 0x14009ac56
lea rax, [rsp + 0x29]
mov ecx, 1
nop word cs:[rax + rax]
xor edx, edx
tzcnt rdx, r14
mov byte [rax], dl
inc rax
shlx rdx, rcx, rdx
xor r14, rdx
jne 0x14009ac40
mov qword [rsp + 0x58], rdi
mov eax, dword [0x14029be38]
test eax, eax
je 0x14009adac
cmp eax, 1
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r13
je 0x14009ae3f
cmp eax, 2
jne 0x14009afe1
mov rax, qword [r12]
mov rcx, qword [r12 + 8]
cmp rcx, rax
je 0x14009afe1
xor r12d, r12d
lea r14, [rsp + 0x23]
jmp 0x14009accf
mov dword [r13 + r12*4], 0xffffffff
inc r12
mov rdx, rcx
sub rdx, rax
sar rdx, 3
cmp rdx, r12
jbe 0x14009afe1
mov rdx, qword [rax + r12*8]
test rdx, rdx
je 0x14009acb0
xor r8d, r8d
tzcnt r8, rdx
lzcnt rdx, rdx
xor dl, 0x3f
mov byte [rsp + 0x23], r8b
mov byte [rsp + 0x24], dl
cmp dword [rsp + 0x30], 0
je 0x14009ada0
xor r13d, r13d
xor esi, esi
jmp 0x14009ad1a
inc r13
cmp r13, qword [rsp + 0x30]
je 0x14009ad80
test r13, r13
je 0x14009ad10
xor ebx, ebx
jmp 0x14009ad38
inc rbx
cmp rbx, r13
je 0x14009ad10
test rbx, rbx
je 0x14009ad30
movzx edi, byte [rsp + r13 + 0x29]
movzx ebp, byte [rsp + rbx + 0x29]
xor r15d, r15d
nop dword [rax + rax]
mov byte [rsp + 0x25], dil
mov byte [rsp + 0x26], bpl
movzx eax, byte [rsp + r15 + 0x29]
mov byte [rsp + 0x27], al
mov rcx, r14
mov edx, 5
call fcn.14006d660
cmp esi, eax
cmovb esi, eax
inc r15
cmp rbx, r15
jne 0x14009ad50
jmp 0x14009ad30
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
mov r13, qword [rsp + 0x48]
jmp 0x14009ada2
xor esi, esi
mov dword [r13 + r12*4], esi
jmp 0x14009acb9
mov rax, qword [r12]
mov rcx, qword [r12 + 8]
cmp rcx, rax
je 0x14009afe1
mov rdx, qword [rsp + 0x30]
mov esi, edx
lea ebp, [rdx + 2]
xor ebx, ebx
lea r14, [rsp + 0x29]
jmp 0x14009ae2b
xor eax, eax
tzcnt rax, rdx
mov rcx, qword [rsp + 0x30]
mov byte [rsp + rcx + 0x29], al
xor eax, eax
lzcnt rax, rdx
xor al, 0x3f
mov byte [rsp + rsi + 0x2a], al
mov rcx, r14
mov edx, ebp
call fcn.14006d660
mov dword [r13 + rbx*4], eax
mov rax, qword [r12]
mov rcx, qword [r12 + 8]
inc rbx
mov rdx, rcx
sub rdx, rax
sar rdx, 3
cmp rdx, rbx
jbe 0x14009afe1
mov rdx, qword [rax + rbx*8]
test rdx, rdx
jne 0x14009ade0
mov dword [r13 + rbx*4], 0xffffffff
jmp 0x14009ae15
mov rax, qword [r12]
mov rcx, qword [r12 + 8]
cmp rcx, rax
je 0x14009afe1
mov qword [rsp + 0x38], 0
mov r14, qword [rsp + 0x40]
jmp 0x14009aea1
mov rdx, qword [rsp + 0x38]
mov dword [r13 + rdx*4], 0xffffffff
mov r9, qword [rsp + 0x38]
inc r9
mov rdx, rcx
sub rdx, rax
sar rdx, 3
mov r8, r9
mov qword [rsp + 0x38], r9
cmp rdx, r9
jbe 0x14009afe1
mov rdx, qword [rsp + 0x38]
cmp qword [rax + rdx*8], 0
je 0x14009ae70
cmp dword [rsp + 0x30], 0
je 0x14009afd0
xor eax, eax
xor ebp, ebp
jmp 0x14009aece
inc rax
cmp rax, qword [rsp + 0x30]
je 0x14009afb0
test rax, rax
je 0x14009aec0
xor ecx, ecx
mov qword [rsp + 0x50], rax
jmp 0x14009aeed
inc rcx
mov rax, qword [rsp + 0x50]
cmp rcx, rax
je 0x14009aec0
test rcx, rcx
je 0x14009aee0
xor ebx, ebx
mov qword [rsp + 0x60], rcx
jmp 0x14009af0d
inc rbx
mov rcx, qword [rsp + 0x60]
cmp rbx, rcx
je 0x14009aee0
test rbx, rbx
je 0x14009af00
mov rax, qword [rsp + 0x50]
movzx eax, byte [rsp + rax + 0x29]
mov byte [rsp + 0x28], al
movzx r13d, byte [rsp + rcx + 0x29]
movzx esi, byte [rsp + rbx + 0x29]
xor edi, edi
lea r12, [rsp + 0x23]
nop word cs:[rax + rax]
movzx eax, byte [rsp + 0x28]
mov byte [rsp + 0x24], al
mov byte [rsp + 0x25], r13b
mov byte [rsp + 0x26], sil
movzx eax, byte [rsp + rdi + 0x29]
mov byte [rsp + 0x27], al
mov rax, qword [r14]
mov r15, qword [rsp + 0x38]
tzcnt rax, qword [rax + r15*8]
mov byte [rsp + 0x23], al
mov rcx, r12
mov edx, 5
call fcn.14006d660
cmp ebp, eax
cmovb ebp, eax
mov rax, qword [r14]
lzcnt rax, qword [rax + r15*8]
xor al, 0x3f
mov byte [rsp + 0x23], al
mov rcx, r12
mov edx, 5
call fcn.14006d660
cmp ebp, eax
cmovb ebp, eax
inc rdi
cmp rbx, rdi
jne 0x14009af40
jmp 0x14009af00
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
mov r13, qword [rsp + 0x48]
jmp 0x14009afd2
xor ebp, ebp
mov rdx, qword [rsp + 0x38]
mov dword [r13 + rdx*4], ebp
jmp 0x14009ae7e
mov rax, qword [rsp + 0x58]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400086c0
int3