Function at 0x18040ac50
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push r13
push r14
push r15
lea rbp, [rsp - 0x400]
sub rsp, 0x500
mov rax, qword [0x1805770f0]
xor rax, rsp
mov qword [rbp + 0x3e0], rax
mov rax, rcx
mov rbx, rcx
lea rcx, [rbp + 0x20]
mov r13, r9
lea rcx, [rcx + 0x80]
mov r14, r8
mov r15, rdx
lea r9, [0x180551320]
movups xmm0, xmmword [rax]
mov r8, r13
lea rdx, [rbp + 0x20]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx - 0x30], xmm1
movups xmmword [rcx - 0x20], xmm0
movups xmm0, xmmword [rax + 0x70]
sub rax, 0xffffffffffffff80
movups xmmword [rcx - 0x10], xmm0
movups xmm1, xmmword [rax]
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rcx], xmm1
movups xmm1, xmmword [rax + 0x20]
movups xmmword [rcx + 0x10], xmm0
movups xmm0, xmmword [rax + 0x30]
movups xmmword [rcx + 0x20], xmm1
movups xmm1, xmmword [rax + 0x40]
movups xmmword [rcx + 0x30], xmm0
movups xmm0, xmmword [rax + 0x50]
mov eax, dword [rax + 0x60]
movups xmmword [rcx + 0x40], xmm1
movups xmmword [rcx + 0x50], xmm0
mov dword [rcx + 0x60], eax
lea rcx, [rbp + 0x20]
call fcn.18040b110
movups xmm0, xmmword [rbx]
lea rcx, [rbp + 0x200]
mov r8, r13
movups xmm1, xmmword [rbx + 0x10]
lea rax, [rbx + 0x80]
movups xmmword [rcx], xmm0
lea r9, str.U8_b6X9
movups xmm0, xmmword [rbx + 0x20]
lea rdx, [rbp + 0x20]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rcx + 0x40], xmm0
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rcx + 0x50], xmm1
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmmword [rcx - 0x10], xmm1
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rax + 0x50]
mov eax, dword [rax + 0x60]
movups xmmword [rcx + 0x40], xmm0
movups xmmword [rcx + 0x50], xmm1
mov dword [rcx + 0x60], eax
lea rcx, [rbp + 0x200]
call fcn.18040b110
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0xe4
call fcn.1803d2e10
mov rax, qword [r13]
mov dword [rsp + 0x20], 1
mov ecx, dword [rax]
mov dword [rbp - 0x38], ecx
mov dword [rsp + 0x7c], ecx
mov dword [rsp + 0x30], ecx
test r14, r14
je 0x18040b06c
mov qword [rsp + 0x540], rsi
mov qword [rsp + 0x4f8], rdi
mov qword [rsp + 0x4f0], r12
nop
dec r14
mov r12d, 6
mov qword [rsp + 0x28], r14
mov r14d, dword [rsp + 0x20]
nop dword [rax]
nop word [rax + rax]
lea r9, [0x180551320]
mov r8, r13
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x30]
call fcn.18040b110
lea r9, [0x180551320]
mov r8, r13
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x30]
call fcn.18040b110
movups xmm0, xmmword [rbx]
movzx edi, byte [r15]
lea rcx, [rbp + 0x110]
movups xmm1, xmmword [rbx + 0x10]
lea rax, [rbx + 0x80]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rcx + 0x40], xmm0
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rcx + 0x50], xmm1
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmmword [rcx - 0x10], xmm1
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rax + 0x50]
mov eax, dword [rax + 0x60]
movups xmmword [rcx + 0x40], xmm0
movups xmmword [rcx + 0x50], xmm1
mov dword [rcx + 0x60], eax
lea rax, [rsp + 0x30]
movups xmm0, xmmword [rax]
lea rcx, [rbp + 0x2f0]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx + 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx + 0x50], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmmword [rcx - 0x10], xmm1
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rax + 0x50]
mov eax, dword [rax + 0x60]
movups xmmword [rcx + 0x40], xmm0
movups xmmword [rcx + 0x50], xmm1
mov dword [rcx + 0x60], eax
movzx ecx, r12b
shr edi, cl
and edi, 3
mov eax, edi
lea r8, [rbp + 0x20]
xor eax, 2
lea rdx, [rbp + 0x110]
mov ecx, eax
mov esi, edi
neg ecx
neg esi
or ecx, eax
or esi, edi
not ecx
shr esi, 0x1f
shr ecx, 0x1f
mov r9d, 0xe4
call fcn.18040f1a0
xor edi, 3
lea r8, [rbp + 0x200]
mov ecx, edi
lea rdx, [rbp + 0x110]
neg ecx
mov r9d, 0xe4
or ecx, edi
not ecx
shr ecx, 0x1f
call fcn.18040f1a0
lea r9, str.U8_b6X9
mov r8, r13
lea rdx, [rbp + 0x110]
lea rcx, [rbp + 0x2f0]
call fcn.18040b110
mov ecx, esi
lea r8, [rbp + 0x110]
and ecx, r14d
lea rdx, [rsp + 0x30]
mov r9d, 0xe4
call fcn.18040f1a0
mov ecx, r14d
lea r8, [rbp + 0x2f0]
not ecx
lea rdx, [rsp + 0x30]
and ecx, esi
mov r9d, 0xe4
call fcn.18040f1a0
not esi
and r14d, esi
sub r12d, 2
jns 0x18040ae30
mov dword [rsp + 0x20], r14d
inc r15
mov r14, qword [rsp + 0x28]
test r14, r14
jne 0x18040ae10
mov r12, qword [rsp + 0x4f0]
mov rdi, qword [rsp + 0x4f8]
mov rsi, qword [rsp + 0x540]
lea rax, [rsp + 0x30]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rbx + 0x10], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rbx + 0x20], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rbx + 0x30], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rbx + 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rbx + 0x50], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rbx + 0x60], xmm0
sub rbx, 0xffffffffffffff80
movups xmm0, xmmword [rax]
movups xmmword [rbx - 0x10], xmm1
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rbx + 0x10], xmm1
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rbx + 0x20], xmm0
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rbx + 0x30], xmm1
movups xmm1, xmmword [rax + 0x50]
mov eax, dword [rax + 0x60]
movups xmmword [rbx + 0x40], xmm0
movups xmmword [rbx + 0x50], xmm1
mov dword [rbx + 0x60], eax
mov rcx, qword [rbp + 0x3e0]
xor rcx, rsp
call fcn.1803d0210
add rsp, 0x500
pop r15
pop r14
pop r13
pop rbx
pop rbp
ret