Function at 0x14012cc00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r14, rdx
mov rdx, qword [rcx + 0x18]
cmp rdx, 0xffffffffffffffff
je 0x14012d5a4
mov r8, rcx
mov rsi, qword [rcx + 8]
lea r15, [rsi + 1]
mov rax, r15
shr rax, 3
mov rbx, r15
and rbx, 0xfffffffffffffff8
sub rbx, rax
cmp rsi, 8
mov rcx, rbx
cmovb rcx, rsi
mov rax, rcx
shr rax, 1
cmp rdx, rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x28], r8
jae 0x14012cc8d
mov rdi, qword [r8]
mov rcx, r15
shr rcx, 4
xor eax, eax
test r15b, 0xf
setne al
add rax, rcx
je 0x14012d021
cmp rax, 1
jne 0x14012cfab
xor edx, edx
jmp 0x14012d007
lea rax, [rdx + 1]
inc rcx
cmp rax, rcx
cmova rcx, rax
cmp rcx, 8
mov qword [rsp + 0x30], r15
jae 0x14012ccb9
xor eax, eax
cmp rcx, 4
setae al
lea r15, [rax*4 + 4]
jmp 0x14012ccfd
mov rax, rcx
shr rax, 0x3d
jne 0x14012d5a4
shl rcx, 3
movabs rdx, 0x2492492492492493
mov rax, rcx
mul rdx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 2
dec rcx
bsr rcx, rcx
not ecx
mov r15, 0xffffffffffffffff
shr r15, cl
inc r15
mov ecx, 0x68
mov rax, r15
mul rcx
jo 0x14012d5a4
mov r12, rax
cmp rax, 0xfffffffffffffff0
ja 0x14012d5a4
add r12, 0xf
and r12, 0xfffffffffffffff0
lea r13, [r15 + 0x10]
mov rbp, r12
add rbp, r13
jb 0x14012d5a4
movabs rax, 0x7ffffffffffffff1
cmp rbp, rax
jae 0x14012d5a4
movzx eax, byte [0x1401a2308]
xor ecx, ecx
mov rdx, rbp
call fcn.1400ea350
test rax, rax
je 0x14012d5a9
mov rdi, rax
lea rbp, [r15 - 1]
mov rax, r15
shr rax, 3
mov rbx, r15
and rbx, 0xfffffffffffffff8
sub rbx, rax
cmp r15, 9
cmovb rbx, rbp
add rdi, r12
mov rcx, rdi
mov dl, 0xff
mov r8, r13
call fcn.140125a90
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14012cf38
mov qword [rsp + 0x50], rbx
mov rax, qword [rsp + 0x28]
mov r15, qword [rax]
movdqa xmm0, xmmword [r15]
pmovmskb r13d, xmm0
not r13d
lea rax, [r15 - 0x68]
mov qword [rsp + 0x58], rax
mov rax, qword [r14]
mov qword [rsp + 0x40], rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x38], rax
xor ebx, ebx
mov qword [rsp + 0x20], r15
mov r14, rcx
jmp 0x14012ce7a
lea ecx, [r13 - 1]
and ecx, r13d
dec r14
shr rax, 0x39
lea r8, [rdx - 0x10]
and r8, rbp
mov byte [rdi + rdx], al
mov byte [rdi + r8 + 0x10], al
not r12
imul rax, r12, 0x68
not rdx
imul rdx, rdx, 0x68
mov r9, qword [rsp + 0x20]
mov r8, qword [r9 + rax + 0x60]
mov qword [rdi + rdx + 0x60], r8
movups xmm0, xmmword [r9 + rax + 0x50]
movups xmmword [rdi + rdx + 0x50], xmm0
movups xmm0, xmmword [r9 + rax + 0x40]
movups xmmword [rdi + rdx + 0x40], xmm0
movdqu xmm0, xmmword [r9 + rax]
movdqu xmm1, xmmword [r9 + rax + 0x10]
movups xmm2, xmmword [r9 + rax + 0x20]
movups xmm3, xmmword [r9 + rax + 0x30]
movups xmmword [rdi + rdx + 0x30], xmm3
movups xmmword [rdi + rdx + 0x20], xmm2
movdqu xmmword [rdi + rdx + 0x10], xmm1
movdqu xmmword [rdi + rdx], xmm0
mov r13d, ecx
test r14, r14
je 0x14012cf2c
test r13w, r13w
jne 0x14012ce9f
movdqa xmm0, xmmword [r15 + 0x10]
add r15, 0x10
pmovmskb r13d, xmm0
add rbx, 0x10
cmp r13d, 0xffff
je 0x14012ce80
not r13d
tzcnt r12d, r13d
add r12, rbx
mov rax, r12
neg rax
imul rax, rax, 0x68
mov rcx, qword [rsp + 0x58]
mov r8, qword [rcx + rax + 8]
mov r9, qword [rcx + rax + 0x10]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
call fcn.1400ce250
mov rcx, rax
and rcx, rbp
movdqu xmm0, xmmword [rdi + rcx]
pmovmskb edx, xmm0
test edx, edx
jne 0x14012cf07
mov r8d, 0x10
nop dword [rax + rax]
add rcx, r8
and rcx, rbp
movdqu xmm0, xmmword [rdi + rcx]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x14012cef0
tzcnt edx, edx
add rdx, rcx
and rdx, rbp
cmp byte [rdi + rdx], 0
js 0x14012cdf0
movdqa xmm0, xmmword [rdi]
pmovmskb ecx, xmm0
tzcnt edx, ecx
jmp 0x14012cdf0
mov rax, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x50]
jmp 0x14012cf45
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax]
mov qword [rsp + 0x20], rcx
sub rbx, qword [rsp + 0x48]
mov qword [rax], rdi
mov qword [rax + 8], rbp
mov qword [rax + 0x10], rbx
test rsi, rsi
je 0x14012d590
mov ecx, 0x68
mov rax, qword [rsp + 0x30]
mul rcx
add rax, 0xf
and rax, 0xfffffffffffffff0
add rsi, rax
cmp rsi, 0xffffffffffffffef
je 0x14012d590
mov r8, qword [rsp + 0x20]
sub r8, rax
mov rcx, qword [0x1401a2270]
xor edx, edx
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.kernel32.dll_HeapFree]
movabs rcx, 0x1ffffffffffffffe
and rcx, rax
xor r8d, r8d
movdqa xmm0, xmmword [0x140132770]
nop word cs:[rax + rax]
call fcn.1400211e0
mov rcx, rbp
call fcn.140021220
int3