Function at 0x14006fd00
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r12
push rdi
push rsi
mov rsi, rcx
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x20
mov r9, qword [rcx + 0xc8]
test r8, r8
je 0x14006ffd4
mov rbx, rdx
mov rdi, r8
mov r12d, 0x88
mov rax, r12
sub rax, r9
cmp rax, rdi
cmova rax, rdi
test rax, rax
je 0x14006ffb9
lea rdx, [rsi + r9]
lea r10, [rbx + 1]
mov r8, rdx
lea rcx, [rax - 1]
sub r8, r10
cmp r8, 0xe
jbe 0x140070010
cmp rcx, 6
jbe 0x140070010
cmp rcx, 0xe
jbe 0x14007002c
movdqu xmm0, xmmword [rdx]
movdqu xmm2, xmmword [rbx]
mov rcx, rax
shr rcx, 4
pxor xmm0, xmm2
movups xmmword [rdx], xmm0
cmp rcx, 1
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0x10]
movdqu xmm3, xmmword [rbx + 0x10]
pxor xmm0, xmm3
movups xmmword [rdx + 0x10], xmm0
cmp rcx, 2
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0x20]
movdqu xmm4, xmmword [rbx + 0x20]
pxor xmm0, xmm4
movups xmmword [rdx + 0x20], xmm0
cmp rcx, 3
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0x30]
movdqu xmm5, xmmword [rbx + 0x30]
pxor xmm0, xmm5
movups xmmword [rdx + 0x30], xmm0
cmp rcx, 4
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0x40]
movdqu xmm5, xmmword [rbx + 0x40]
pxor xmm0, xmm5
movups xmmword [rdx + 0x40], xmm0
cmp rcx, 5
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0x50]
movdqu xmm4, xmmword [rbx + 0x50]
pxor xmm0, xmm4
movups xmmword [rdx + 0x50], xmm0
cmp rcx, 6
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0x60]
movdqu xmm3, xmmword [rbx + 0x60]
pxor xmm0, xmm3
movups xmmword [rdx + 0x60], xmm0
cmp rcx, 7
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0x70]
movdqu xmm2, xmmword [rbx + 0x70]
pxor xmm0, xmm2
movups xmmword [rdx + 0x70], xmm0
cmp rcx, 8
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0x80]
movdqu xmm5, xmmword [rbx + 0x80]
pxor xmm0, xmm5
movups xmmword [rdx + 0x80], xmm0
cmp rcx, 9
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0x90]
movdqu xmm4, xmmword [rbx + 0x90]
pxor xmm0, xmm4
movups xmmword [rdx + 0x90], xmm0
cmp rcx, 0xa
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0xa0]
movdqu xmm3, xmmword [rbx + 0xa0]
pxor xmm0, xmm3
movups xmmword [rdx + 0xa0], xmm0
cmp rcx, 0xb
je 0x14006fee0
movdqu xmm0, xmmword [rdx + 0xb0]
movdqu xmm2, xmmword [rbx + 0xb0]
pxor xmm0, xmm2
movups xmmword [rdx + 0xb0], xmm0
nop dword [rax + rax]
mov rdx, rax
and rdx, 0xfffffffffffffff0
test al, 0xf
je 0x14006ffb9
mov r8, rax
sub r8, rdx
lea rcx, [r8 - 1]
cmp rcx, 6
jbe 0x14006ff2a
lea rcx, [rdx + r9]
movq xmm0, qword [rbx + rdx]
add rcx, rsi
movq xmm1, qword [rcx]
pxor xmm0, xmm1
movq qword [rcx], xmm0
mov rcx, r8
and rcx, 0xfffffffffffffff8
add rdx, rcx
cmp r8, rcx
je 0x14006ffb9
lea rcx, [r9 + rdx]
movzx r8d, byte [rbx + rdx]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 1]
cmp rax, rcx
jbe 0x14006ffb9
add rcx, r9
movzx r8d, byte [rbx + rdx + 1]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 2]
cmp rax, rcx
jbe 0x14006ffb9
add rcx, r9
movzx r8d, byte [rbx + rdx + 2]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 3]
cmp rax, rcx
jbe 0x14006ffb9
add rcx, r9
movzx r8d, byte [rbx + rdx + 3]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 4]
cmp rax, rcx
jbe 0x14006ffb9
add rcx, r9
movzx r8d, byte [rbx + rdx + 4]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 5]
cmp rax, rcx
jbe 0x14006ffb9
add rcx, r9
movzx r8d, byte [rbx + rdx + 5]
xor byte [rsi + rcx], r8b
lea rcx, [rdx + 6]
cmp rax, rcx
jbe 0x14006ffb9
add rcx, r9
movzx edx, byte [rbx + rdx + 6]
xor byte [rsi + rcx], dl
add r9, rax
add rbx, rax
sub rdi, rax
cmp r9, 0x88
je 0x14006fff0
test rdi, rdi
jne 0x14006fd30
mov qword [rsi + 0xc8], r9
lea rsp, [rbp - 0x20]
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov rcx, rsi
call fcn.1400a2760
xor r9d, r9d
test rdi, rdi
jne 0x14006fd30
jmp 0x14006ffd4
xor ecx, ecx
nop word [rax + rax]
movzx r8d, byte [rbx + rcx]
xor byte [rdx + rcx], r8b
add rcx, 1
cmp rax, rcx
jne 0x140070018
jmp 0x14006ffb9
mov r8, rax
xor edx, edx
jmp 0x14006feff