Function at 0x1800cfb98
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0xa0
lea rbp, [rsp + 0x20]
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], rsi
mov qword [rbp + 0xc0], rdi
movaps xmmword [rbp + 0x70], xmm6
movaps xmmword [rbp + 0x60], xmm7
movaps xmmword [rbp + 0x50], xmm8
movaps xmmword [rbp + 0x40], xmm9
movaps xmmword [rbp + 0x30], xmm10
movaps xmmword [rbp + 0x20], xmm11
mov rax, qword [0x180123180]
xor rax, rbp
mov qword [rbp + 0x10], rax
movaps xmm6, xmmword [0x1800ecd00]
mov rdi, rdx
movsxd rsi, r9d
mov r15d, r8d
movabs r8, 0xffffffffffffff0
lea rdx, [rsi*4 + 0xc]
lea rax, [rdx + 0xf]
cmp rax, rdx
ja 0x1800cfc1b
mov rax, r8
and rax, 0xfffffffffffffff0
call fcn.1800df0f0
sub rsp, rax
lea rax, [rdx + 0xf]
lea r12, [rsp + 0x20]
cmp rax, rdx
ja 0x1800cfc38
mov rax, r8
and rax, 0xfffffffffffffff0
call fcn.1800df0f0
sub rsp, rax
lea rax, [rdx + 0xf]
lea rbx, [rsp + 0x20]
cmp rax, rdx
ja 0x1800cfc55
mov rax, r8
and rax, 0xfffffffffffffff0
call fcn.1800df0f0
sub rsp, rax
mov rdx, rcx
mov r13, rsi
mov rcx, rbx
shl r13, 2
mov r8, r13
lea rax, [rsp + 0x20]
mov qword [rbp + 8], rax
call sub.VCRUNTIME140.dll_memcpy
and dword [rbx + rsi*4 + 8], 0
xorps xmm10, xmm10
and dword [rbx + rsi*4 + 4], 0
xorps xmm3, xmm3
and dword [rbx + r13], 0
mov rdx, qword [rbp + 8]
test esi, esi
jle 0x1800cfcf1
mov r8, r12
lea r11d, [rsi - 1]
mov r9, rdi
shr r11d, 2
mov r10, rdx
sub r8, rbx
sub r9, rbx
sub r10, rbx
inc r11d
xorps xmm4, xmm4
mov rcx, rbx
movups xmm0, xmmword [rcx]
movups xmmword [r8 + rcx], xmm10
movdqu xmmword [r9 + rcx], xmm4
movaps xmm1, xmm6
movaps xmm2, xmm0
andnps xmm1, xmm0
movups xmmword [rcx], xmm1
cmpltps xmm2, xmm10
movups xmmword [r10 + rcx], xmm2
add rcx, 0x10
addps xmm3, xmm1
sub r11, 1
jne 0x1800cfcc0
movaps xmm0, xmm3
mov eax, esi
shufps xmm0, xmm3, 0x4e
xorps xmm7, xmm7
addps xmm3, xmm0
sar eax, 1
movss dword [rbp], xmm7
xorps xmm4, xmm4
xorps xmm2, xmm2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xb1
addps xmm3, xmm0
cmp r15d, eax
jle 0x1800cfe2b
comiss xmm3, dword [0x1800f1b18]
jbe 0x1800cfd36
movss xmm0, dword [0x1800f1e74]
comiss xmm0, xmm3
ja 0x1800cfd54
mov dword [rbx], 0x3f800000
mov eax, 1
and dword [rbx + rax*4], 0
inc rax
cmp rax, rsi
jl 0x1800cfd41
movaps xmm3, xmmword [0x1800ecc50]
movd xmm0, r15d
movaps xmm5, xmm10
movaps xmm6, xmm5
xorps xmm7, xmm7
cvtdq2pd xmm0, xmm0
rcpps xmm1, xmm3
addsd xmm0, qword [0x1800fc9c0]
cvtpd2ps xmm4, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm1
test esi, esi
jle 0x1800cfde2
mov rcx, rbx
lea r10d, [rsi - 1]
mov r8, r12
shr r10d, 2
sub rcx, rdi
sub r8, rdi
inc r10d
mov r9, rdi
movups xmm2, xmmword [rcx + r9]
movaps xmm0, xmm2
mulps xmm0, xmm4
cvttps2dq xmm1, xmm0
cvtdq2ps xmm3, xmm1
movdqu xmmword [r9], xmm1
movdqa xmm0, xmm1
paddd xmm0, xmm7
movdqa xmm7, xmm0
movaps xmm0, xmm3
mulps xmm0, xmm2
addps xmm6, xmm0
movaps xmm0, xmm3
mulps xmm0, xmm3
addps xmm3, xmm3
movups xmmword [r8 + r9], xmm3
add r9, 0x10
addps xmm5, xmm0
sub r10, 1
jne 0x1800cfd9b
pshufd xmm1, xmm7, 0x4e
paddd xmm1, xmm7
pshufd xmm0, xmm1, 0xb1
paddd xmm0, xmm1
movd eax, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x4e
addps xmm6, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0x4e
sub r15d, eax
addps xmm5, xmm0
movaps xmm7, xmm6
shufps xmm7, xmm6, 0xb1
movaps xmm4, xmm5
addps xmm7, xmm6
shufps xmm4, xmm5, 0xb1
addps xmm4, xmm5
movss dword [rbp], xmm7
movaps xmm2, xmm4
mov eax, 0xc2c80000
mov dword [rbx + rsi*4 + 8], eax
mov dword [rbx + rsi*4 + 4], eax
mov dword [rbx + r13], eax
mov eax, 0x42c80000
mov dword [r12 + rsi*4 + 8], eax
mov dword [r12 + rsi*4 + 4], eax
mov dword [r12 + r13], eax
lea eax, [rsi + 3]
cmp r15d, eax
jle 0x1800cfe80
movd xmm1, r15d
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm1
mulss xmm0, xmm1
mulss xmm1, dword [r12]
add dword [rdi], r15d
addss xmm0, xmm2
xor r15d, r15d
movaps xmm2, xmm0
addss xmm2, xmm1
movaps xmm4, xmm2
test r15d, r15d
jle 0x1800cff86
xorps xmm11, xmm11
mov r10d, r15d
movss xmm3, dword [rbp]
movaps xmm6, xmm10
movdqa xmm8, xmmword [0x1800ecbe0]
movdqa xmm9, xmm11
shufps xmm3, xmm3, 0
addss xmm2, dword [0x1800ecad4]
movaps xmm4, xmm2
movss dword [rbp + 8], xmm4
movss xmm5, dword [rbp + 8]
shufps xmm5, xmm5, 0
test esi, esi
jle 0x1800cff18
mov rcx, r12
lea r9d, [rsi - 1]
sub rcx, rbx
shr r9d, 2
inc r9d
mov r8, rbx
movups xmm0, xmmword [r8 + rcx]
movups xmm1, xmmword [r8]
add r8, 0x10
addps xmm0, xmm5
addps xmm1, xmm3
rsqrtps xmm2, xmm0
movaps xmm0, xmm6
mulps xmm2, xmm1
cmpltps xmm0, xmm2
pand xmm0, xmm8
paddd xmm8, xmmword [0x1800fc9d0]
pmaxsw xmm9, xmm0
maxps xmm6, xmm2
sub r9, 1
jne 0x1800cfedc
movaps xmm0, xmm6
movaps xmm1, xmm6
shufps xmm0, xmm6, 0x4e
maxps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
maxps xmm1, xmm0
cmpeqps xmm1, xmm6
pand xmm1, xmm9
movdqa xmm0, xmm1
punpckhqdq xmm0, xmm1
pmaxsw xmm1, xmm0
pshuflw xmm0, xmm1, 0x4e
pmaxsw xmm1, xmm0
movd eax, xmm1
movsxd rcx, eax
movss xmm0, dword [r12 + rcx*4]
addss xmm7, dword [rbx + rcx*4]
addss xmm4, xmm0
addss xmm0, dword [0x1800ecb00]
movss dword [rbp], xmm7
movaps xmm2, xmm4
movss dword [r12 + rcx*4], xmm0
inc dword [rdi + rcx*4]
sub r10, 1
jne 0x1800cfe90
test esi, esi
jle 0x1800cffb3
lea ecx, [rsi - 1]
sub rdx, rdi
shr ecx, 2
inc ecx
movups xmm1, xmmword [rdx + rdi]
movdqu xmm2, xmmword [rdi]
paddd xmm2, xmm1
pxor xmm2, xmm1
movdqu xmmword [rdi], xmm2
lea rdi, [rdi + 0x10]
sub rcx, 1
jne 0x1800cff95
movaps xmm0, xmm4
mov rcx, qword [rbp + 0x10]
xor rcx, rbp
call fcn.1800de930
mov rbx, qword [rbp + 0xb0]
mov rsi, qword [rbp + 0xb8]
mov rdi, qword [rbp + 0xc0]
movaps xmm6, xmmword [rbp + 0x70]
movaps xmm7, xmmword [rbp + 0x60]
movaps xmm8, xmmword [rbp + 0x50]
movaps xmm9, xmmword [rbp + 0x40]
movaps xmm10, xmmword [rbp + 0x30]
movaps xmm11, xmmword [rbp + 0x20]
lea rsp, [rbp + 0x80]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret