Function at 0x14001b1a0
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
movdqa xmmword [rsp + 0x70], xmm6
mov qword [rsp + 0x28], r9
mov rdi, r8
mov r12, rdx
mov rbx, rcx
mov rsi, qword [rsp + 0x110]
mov r14, qword [rsp + 0x108]
mov ebp, dword [rsp + 0x100]
mov rax, qword [0x1403486d0]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov r13, qword [rcx + 8]
lea r15, [rdx + r13]
add r15, 8
lea rcx, [rdx + 8]
mov qword [rsp + 0x58], rcx
mov rdx, r8
mov r8, r13
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rbx + 0x10]
shl rax, 3
mov qword [r12], rax
mov rax, qword [rbx + 8]
add rax, r12
mov rcx, qword [rbx + 0x10]
mov dword [rcx + rax + 8], 0
mov rcx, rbx
mov rdx, r12
mov r8, qword [rsp + 0x28]
mov r9, qword [rsp + 0xf0]
call fcn.140015eb0
bswap ebp
mov dword [rsp + 0x64], ebp
lea r9, [rsp + 0x64]
mov r8d, 4
mov rcx, rbx
mov rdx, r12
call fcn.140015eb0
mov rcx, rbx
mov rdx, r12
mov r8, r15
call fcn.14001b910
mov rcx, rsi
mov qword [rsp + 0x28], r15
mov rdx, r15
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
cmp qword [rsp + 0xf8], 2
jb 0x14001b556
mov rax, qword [rsp + 0x108]
mov r10, rax
lea r8, [rsi + rax]
lea rbp, [rax + r13]
lea rcx, [r12 + rbp]
add rcx, 8
add rax, 0xfffffffffffffff0
shr rax, 4
mov qword [rsp + 0x50], rax
add rax, 1
cmp rcx, rsi
seta r9b
cmp qword [rsp + 0x28], r8
setb cl
and cl, r9b
mov byte [rsp + 0x27], cl
mov rcx, r10
and rcx, 0xfffffffffffffff0
mov rdx, r10
mov qword [rsp + 0x48], rcx
sub rdx, rcx
mov qword [rsp + 0x40], rdx
mov ecx, eax
and ecx, 1
mov qword [rsp + 0x38], rcx
sub rax, rcx
mov qword [rsp + 0x30], rax
add rbp, r12
lea r14, [rsi + r10]
add r14, 0xfffffffffffffff8
add r13, r12
add r13, 7
mov r15d, 2
movdqa xmm6, xmmword [0x1402ed530]
jmp 0x14001b332
add r15, 1
cmp r15, qword [rsp + 0xf8]
ja 0x14001b556
mov r8, qword [rbx + 8]
mov rcx, qword [rsp + 0x58]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rbx + 0x10]
shl rax, 3
mov qword [r12], rax
mov eax, dword [rbx]
mov rcx, qword [rbx + 8]
add rcx, r12
mov rdx, qword [rbx + 0x10]
mov dword [rdx + rcx + 8], eax
mov rcx, rbx
mov rdx, r12
mov r8, qword [rsp + 0x28]
call fcn.14001b910
mov rdx, qword [rsp + 0x108]
test rdx, rdx
je 0x14001b320
cmp rdx, 0x10
setb al
or al, byte [rsp + 0x27]
mov rax, rdx
jne 0x14001b4ce
cmp qword [rsp + 0x50], 0
je 0x14001b543
xor eax, eax
mov rcx, qword [rsp + 0x30]
nop word cs:[rax + rax]
nop
movq xmm0, qword [r14 + rax]
punpcklbw xmm0, xmm0
movq xmm1, qword [r14 + rax - 8]
punpcklbw xmm1, xmm0
movq xmm2, qword [rbp + rax]
punpcklbw xmm2, xmm0
pxor xmm2, xmm0
movq xmm0, qword [rbp + rax - 8]
punpcklbw xmm0, xmm0
pxor xmm0, xmm1
pand xmm2, xmm6
packuswb xmm2, xmm2
movq qword [r14 + rax], xmm2
pand xmm0, xmm6
packuswb xmm0, xmm0
movq qword [r14 + rax - 8], xmm0
movq xmm0, qword [r14 + rax - 0x10]
punpcklbw xmm0, xmm0
movq xmm1, qword [r14 + rax - 0x18]
punpcklbw xmm1, xmm0
movq xmm2, qword [rbp + rax - 0x10]
punpcklbw xmm2, xmm0
pxor xmm2, xmm0
movq xmm0, qword [rbp + rax - 0x18]
punpcklbw xmm0, xmm0
pxor xmm0, xmm1
pand xmm2, xmm6
packuswb xmm2, xmm2
movq qword [r14 + rax - 0x10], xmm2
pand xmm0, xmm6
packuswb xmm0, xmm0
movq qword [r14 + rax - 0x18], xmm0
add rax, 0xffffffffffffffe0
add rcx, 0xfffffffffffffffe
jne 0x14001b3b0
neg rax
cmp qword [rsp + 0x38], 0
je 0x14001b4be
not rax
add rax, rdx
movq xmm0, qword [rsi + rax - 7]
punpcklbw xmm0, xmm0
movq xmm1, qword [rsi + rax - 0xf]
punpcklbw xmm1, xmm0
mov rcx, qword [rsp + 0x28]
movq xmm2, qword [rcx + rax - 7]
punpcklbw xmm2, xmm0
pxor xmm2, xmm0
movq xmm0, qword [rcx + rax - 0xf]
punpcklbw xmm0, xmm0
pxor xmm0, xmm1
pand xmm2, xmm6
packuswb xmm2, xmm2
movq qword [rsi + rax - 7], xmm2
pand xmm0, xmm6
packuswb xmm0, xmm0
movq qword [rsi + rax - 0xf], xmm0
mov rax, qword [rsp + 0x40]
cmp qword [rsp + 0x48], rdx
je 0x14001b320
mov r8, rdi
lea rdi, [rax - 1]
mov rdx, rax
and rdx, 3
je 0x14001b4f4
nop
movzx ecx, byte [r13 + rax]
xor byte [rsi + rax - 1], cl
add rax, 0xffffffffffffffff
add rdx, 0xffffffffffffffff
jne 0x14001b4e0
cmp rdi, 3
mov rdi, r8
jb 0x14001b320
nop word cs:[rax + rax]
nop dword [rax + rax]
movzx ecx, byte [r13 + rax]
xor byte [rsi + rax - 1], cl
movzx ecx, byte [r13 + rax - 1]
xor byte [rsi + rax - 2], cl
movzx ecx, byte [r13 + rax - 2]
xor byte [rsi + rax - 3], cl
movzx ecx, byte [r13 + rax - 3]
xor byte [rsi + rax - 4], cl
add rax, 0xfffffffffffffffc
jne 0x14001b510
jmp 0x14001b320
xor eax, eax
cmp qword [rsp + 0x38], 0
jne 0x14001b467
jmp 0x14001b4be
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1400e6b50
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret