Function at 0x180064960
Capabilities:
Encode data using xor

Disassembly:
push rdi
push r12
push r13
push r15
sub rsp, 0x68
mov rax, qword [0x18014a010]
xor rax, rsp
mov qword [rsp + 0x50], rax
movups xmm1, xmmword [rcx]
mov r15, qword [rsp + 0xb0]
mov r13d, edx
mov rdi, r9
mov eax, 0xcccccccd
mov r9, qword [rsp + 0xb8]
movdqa xmm0, xmm1
psrldq xmm0, 8
movups xmmword [rsp + 0x40], xmm1
mov ecx, dword [rdi]
mul ecx
shr edx, 2
lea eax, [rdx + rdx*4]
sub ecx, eax
movd eax, xmm1
lea r12d, [rcx*8 + 0x20]
movzx ecx, al
movzx eax, byte [rsp + 0x41]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x42]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x43]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x45]
mov dword [rsp + 0x30], ecx
movzx ecx, byte [rsp + 0x44]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x46]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x47]
shl ecx, 8
or ecx, eax
movd eax, xmm0
mov dword [rsp + 0x34], ecx
movdqa xmm0, xmm1
psrldq xmm0, 9
movzx edx, al
movd eax, xmm0
movdqa xmm0, xmm1
shl edx, 8
psrldq xmm0, 0xa
movzx ecx, al
or edx, ecx
movd eax, xmm0
shl edx, 8
movdqa xmm0, xmm1
psrldq xmm0, 0xb
movzx ecx, al
or edx, ecx
movd eax, xmm0
shl edx, 8
movdqa xmm0, xmm1
psrldq xmm0, 0xc
movzx ecx, al
or edx, ecx
movd eax, xmm0
mov dword [rsp + 0x38], edx
movdqa xmm0, xmm1
psrldq xmm0, 0xd
movzx edx, al
shl edx, 8
movd eax, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 0xe
psrldq xmm1, 0xf
movzx ecx, al
or edx, ecx
movd eax, xmm0
shl edx, 8
movzx ecx, al
or edx, ecx
movd eax, xmm1
shl edx, 8
movzx ecx, al
or edx, ecx
mov dword [rsp + 0x3c], edx
test r8b, 7
je 0x180064ab4
mov eax, 0xffffffff
jmp 0x180064c26
test r8, r8
je 0x180064c24
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rbp
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0x60], r14
test r13d, r13d
jne 0x180064b58
lea r14, [r8 - 1]
shr r14, 3
lea rbp, [r9 + 2]
inc r14
nop
mov rbx, qword [r15]
lea r9, [rbp - 2]
mov r8, r15
mov dword [rsp + 0x20], r12d
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.1800647e0
movzx eax, byte [rdi]
add r15, 8
xor byte [rbp - 2], al
lea rbp, [rbp + 8]
movzx eax, byte [rdi + 1]
xor byte [rbp - 9], al
movzx eax, byte [rdi + 2]
xor byte [rbp - 8], al
movzx eax, byte [rdi + 3]
xor byte [rbp - 7], al
movzx eax, byte [rdi + 4]
xor byte [rbp - 6], al
movzx eax, byte [rdi + 5]
xor byte [rbp - 5], al
movzx eax, byte [rdi + 6]
xor byte [rbp - 4], al
movzx eax, byte [rdi + 7]
xor byte [rbp - 3], al
mov qword [rdi], rbx
sub r14, 1
jne 0x180064af0
jmp 0x180064c07
lea r14, [r9 + 2]
sub r9, r15
lea rbp, [r8 - 1]
shr rbp, 3
lea rsi, [r15 + 2]
inc rbp
lea r15, [r9 - 2]
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rsi - 2]
lea rbx, [rsi + r15]
xor al, byte [rdi]
lea rcx, [rsp + 0x30]
mov byte [rbx], al
mov r9, rbx
movzx eax, byte [rsi - 1]
mov r8, rbx
xor al, byte [rdi + 1]
mov edx, r13d
mov byte [r14 - 1], al
movzx eax, byte [rsi]
xor al, byte [rdi + 2]
mov byte [r14], al
movzx eax, byte [rsi + 1]
xor al, byte [rdi + 3]
mov byte [r14 + 1], al
movzx eax, byte [rsi + 2]
xor al, byte [rdi + 4]
mov byte [r14 + 2], al
movzx eax, byte [rsi + 3]
xor al, byte [rdi + 5]
mov byte [r14 + 3], al
movzx eax, byte [rsi + 4]
xor al, byte [rdi + 6]
mov byte [r14 + 4], al
movzx eax, byte [rsi + 5]
xor al, byte [rdi + 7]
mov byte [r14 + 5], al
mov dword [rsp + 0x20], r12d
call fcn.1800647e0
mov rax, qword [rbx]
lea rsi, [rsi + 8]
mov qword [rdi], rax
lea r14, [r14 + 8]
sub rbp, 1
jne 0x180064b80
mov rsi, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x90]
mov r14, qword [rsp + 0x60]
xor eax, eax
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.180096010
add rsp, 0x68
pop r15
pop r13
pop r12
pop rdi
ret