Function at 0x18010d520
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
xor edi, edi
mov r13d, r9d
lea r10, [rcx + 0x1808]
mov rbx, r8
mov qword [rsp + 0x30], r10
mov r15, rdx
test r9d, r9d
jle 0x18010d602
lea r12, [rdx + 0x1d90]
mov rsi, rbx
lea rbp, [r8 + 8]
add r15, 0x3f30
lea r14, [rdx + 0xb90]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rsp + 0xf8]
mov r9, rsi
movzx ebx, word [rbp]
mov r8, rax
mov dword [rsp + 0x28], edi
mov rdx, r15
mov rcx, r10
mov qword [rsp + 0x20], r12
add ebx, dword [rax + 8]
call fcn.18010ba80
mov rdx, qword [rsp + 0xf8]
mov r9, r12
mov r8, rsi
mov dword [rsp + 0x20], ebx
mov rcx, r14
call fcn.18010bd90
mov r10, qword [rsp + 0x30]
lea rbp, [rbp + 0x20]
inc edi
add rsi, 0x20
add r15, 0x27
add r14, 0x900
cmp edi, r13d
jl 0x18010d590
mov rbx, qword [rsp + 0x100]
mov r15, qword [rsp + 0xf8]
mov rdi, qword [rsp + 0xf0]
movzx eax, byte [rdi + 0x180b]
test al, 0x10
je 0x18010d630
lea rdx, [r15 + 0x3f57]
mov r9, r10
lea rcx, [r15 + 0xb90]
mov r8, rbx
call fcn.18010c970
jmp 0x18010d647
and al, 0xe0
cmp al, 0x60
jne 0x18010d647
lea rcx, [r15 + 0xb90]
mov edx, 0x240
call fcn.18010c400
test r13d, r13d
jle 0x18010d914
xor r9d, r9d
movaps xmmword [rsp + 0xa0], xmm6
movss xmm6, dword [0x180233060]
lea rbp, [0x180188800]
sub rbp, r15
mov qword [rsp + 0x30], r9
sub rbp, 0xbd8
lea rax, [rdi + 0x1809]
lea r8, [rdi + 0x180a]
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], rax
lea r12, [rbx + 0x12]
mov qword [rsp + 0x48], r8
lea r14, [r15 + 0xb90]
movzx eax, byte [rax]
mov ecx, eax
shr eax, 3
and eax, 1
shr ecx, 4
and ecx, 1
add ecx, eax
movzx eax, byte [r8]
shr eax, 2
and eax, 3
lea edx, [rcx + rcx*2]
add edx, eax
movzx eax, byte [r12 - 2]
cmp edx, 2
sete cl
neg al
sbb esi, esi
and esi, 2
shl esi, cl
cmp byte [r12], 0
je 0x18010d715
movzx r8d, byte [r12 - 1]
lea eax, [rsi + rsi*8]
add r8, qword [r12 - 0x12]
lea rdx, [r15 + 0x1e30]
add eax, eax
lea ebx, [rsi - 1]
movsxd rcx, eax
add rcx, 0x2e4
add rcx, r9
lea rcx, [r15 + rcx*4]
call fcn.18010cb40
test ebx, ebx
jle 0x18010d781
jmp 0x18010d71a
mov ebx, 0x1f
lea r8, [r14 + 0x38]
mov rcx, rbp
lea rax, [r8 + 0x10]
mov rdx, r8
mov r9d, 2
nop
movups xmm5, xmmword [rcx + rax - 0x20]
movups xmm4, xmmword [rcx + rax]
movups xmm3, xmmword [rax]
movups xmm2, xmmword [rdx]
movaps xmm0, xmm5
movaps xmm1, xmm4
shufps xmm2, xmm2, 0x1b
mulps xmm5, xmm2
mulps xmm4, xmm3
mulps xmm1, xmm2
mulps xmm0, xmm3
addps xmm5, xmm4
subps xmm0, xmm1
shufps xmm5, xmm5, 0x1b
movups xmmword [rax], xmm0
add rax, 0x10
movups xmmword [rdx], xmm5
sub rdx, 0x10
sub r9, 1
jne 0x18010d730
dec ebx
add r8, 0x48
sub rcx, 0x48
test ebx, ebx
jg 0x18010d721
movzx ebp, byte [r12 - 3]
mov rdx, rdi
mov rbx, r14
test esi, esi
je 0x18010d7b3
mov r9d, esi
lea r8, [0x180188750]
mov rcx, r14
call fcn.18010cf10
lea eax, [rsi + rsi*8]
add eax, eax
lea rbx, [r14 + rax*4]
lea eax, [rsi + rsi*8]
lea rdx, [rdi + rax*4]
mov edi, 0x20
sub edi, esi
cmp bpl, 2
jne 0x18010d851
lea r8, [rdx + 0x18]
nop dword [rax + rax]
movups xmm0, xmmword [rbx]
lea rdx, [rbx + 0x18]
movups xmm1, xmmword [rbx + 0x10]
lea rcx, [rsp + 0x50]
movups xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rsp + 0x60], xmm1
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rsp + 0x70], xmm0
movsd xmm0, qword [rbx + 0x40]
movsd qword [rsp + 0x90], xmm0
movups xmm0, xmmword [r8 - 0x18]
movups xmmword [rsp + 0x80], xmm1
movups xmmword [rbx], xmm0
movsd xmm1, qword [r8 - 8]
movsd qword [rbx + 0x10], xmm1
call fcn.18010d2d0
lea rdx, [rbx + 0x30]
lea rcx, [rsp + 0x54]
call fcn.18010d2d0
lea rdx, [r8 - 0x18]
lea rcx, [rsp + 0x58]
call fcn.18010d2d0
dec edi
lea rbx, [rbx + 0x48]
add r8, 0x24
test edi, edi
jg 0x18010d7d0
jmp 0x18010d876
xor r8d, r8d
mov eax, 0x48
cmp bpl, 3
mov r9d, edi
mov rcx, rbx
cmove r8d, eax
lea rax, [0x180188750]
add r8, rax
call fcn.18010cf10
lea rcx, [r14 + 0x48]
mov edx, 0x10
nop
mov eax, 1
nop word [rax + rax]
movss xmm0, dword [rcx + rax*4]
xorps xmm0, xmm6
movss dword [rcx + rax*4], xmm0
add rax, 2
cmp rax, 0x12
jl 0x18010d890
add rcx, 0x90
sub rdx, 1
jne 0x18010d880
mov rdi, qword [rsp + 0xf0]
add r14, 0x900
mov r9, qword [rsp + 0x30]
add rdi, 0x480
mov rbp, qword [rsp + 0x38]
add r9, 0x240
mov rax, qword [rsp + 0x40]
sub rbp, 0x900
mov r8, qword [rsp + 0x48]
add r12, 0x20
mov qword [rsp + 0xf0], rdi
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], rbp
sub r13, 1
jne 0x18010d6a1
movaps xmm6, xmmword [rsp + 0xa0]
mov rbx, qword [rsp + 0x108]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret