Function at 0x18000c604
Capabilities:
Encode data using xor

Disassembly:
test rdx, rdx
je 0x18000c975
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x48]
sub rsp, 0x120
mov r14, qword [rbp + 0x70]
lea r10, [0x180063b80]
movaps xmm2, xmmword [0x180063bb0]
lea rax, [rbp - 0x60]
mov rbx, r9
mov rdi, rcx
mov rsi, rbx
mov r13b, r8b
sub rsi, r10
lea r12, [r14 + 0x400]
sub rdi, rax
mov r15, rdx
xor r9d, r9d
lea rax, [rdi + r9*8]
movabs rcx, 0xff0000000000
mov rdx, qword [rbp + rax - 0x60]
movabs rax, 0xff000000000000
mov r8, rdx
and r8, rax
mov rax, rdx
shr rax, 0x10
or r8, rax
mov rax, rdx
and rax, rcx
shr r8, 0x10
or r8, rax
movabs rcx, 0xff00000000
shr r8, 0x10
mov rax, rdx
and rax, rcx
mov rcx, rdx
or r8, rax
shl rcx, 0x10
mov rax, rdx
shr r8, 8
and eax, 0xff00
or rcx, rax
mov rax, rdx
shl rcx, 0x10
and eax, 0xff0000
or rcx, rax
mov eax, 0xff000000
shl rcx, 0x10
and rdx, rax
or rcx, rdx
shl rcx, 8
or r8, rcx
mov qword [rbp + r9*8 - 0x60], r8
inc r9
cmp r9, 0x10
jl 0x18000c665
cmp byte [rbp + 0x78], 0
mov rax, r14
movups xmm0, xmmword [rbx]
cmove rax, r12
xor r8d, r8d
movups xmm1, xmmword [rbx + 0x10]
test r13b, r13b
movaps xmmword [rsp + 0x20], xmm0
movups xmm0, xmmword [rbx + 0x20]
cmove r8, rax
xor edx, edx
movaps xmmword [rsp + 0x30], xmm1
movups xmm1, xmmword [rbx + 0x30]
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm1
lea rax, [rdx + r10]
mov rcx, qword [rsi + rax + 0x40]
xor rcx, qword [rax]
mov qword [rsp + rdx + 0x60], rcx
add rdx, 8
cmp rdx, 0x20
jl 0x18000c73d
xor ecx, ecx
mov rax, qword [rcx + r10 + 0x20]
xor rax, r8
mov qword [rbp + rcx - 0x80], rax
add rcx, 8
cmp rcx, 0x10
jl 0x18000c75a
lea r8, [rsp + 0x20]
xor ecx, ecx
lea rdx, [rbp - 0x60]
movups xmmword [rbp - 0x70], xmm2
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 1
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 2
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 3
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 4
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 5
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 6
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 7
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 8
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 9
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 0xa
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 0xb
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 0xc
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 0xd
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 0xe
lea rdx, [rbp - 0x60]
call fcn.18001aca8
lea r8, [rsp + 0x20]
mov ecx, 0xf
lea rdx, [rbp - 0x60]
call fcn.18001aca8
mov rax, qword [rbx + 0x40]
xor rax, qword [rbx]
xor rax, qword [rsp + 0x20]
xor rax, qword [rsp + 0x60]
mov qword [rbx], rax
mov rax, qword [rbx + 0x20]
xor rax, qword [rbx + 0x40]
xor rax, qword [rsp + 0x40]
xor rax, qword [rbp - 0x80]
mov qword [rbx + 0x20], rax
mov rcx, qword [rbx + 0x48]
mov rax, qword [rbx + 8]
xor rax, rcx
xor rax, qword [rsp + 0x28]
xor rax, qword [rsp + 0x68]
mov qword [rbx + 8], rax
xor rcx, qword [rsp + 0x48]
lea r10, [0x180063b80]
xor rcx, qword [rbp - 0x78]
sub rdi, 0xffffffffffffff80
xor qword [rbx + 0x28], rcx
add r12, 0x400
mov rcx, qword [rbx + 0x50]
mov rax, rcx
xor rcx, qword [rsp + 0x50]
xor rcx, qword [rbp - 0x70]
xor rax, qword [rsp + 0x30]
xor rax, qword [rsp + 0x70]
xor qword [rbx + 0x10], rax
xor qword [rbx + 0x30], rcx
mov rcx, qword [rbx + 0x58]
mov rax, rcx
xor rax, qword [rsp + 0x38]
xor rax, qword [rsp + 0x78]
xor qword [rbx + 0x18], rax
xor rcx, qword [rbx + 0x38]
xor rcx, qword [rsp + 0x58]
xor rcx, qword [rbp - 0x68]
mov qword [rbx + 0x38], rcx
sub r15, 1
jne 0x18000c662
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret