Function at 0x18012a960
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0xe0
lea rbp, [rsp + 0x20]
mov qword [rbp + 0xf0], rbx
mov qword [rbp + 0xf8], rsi
mov qword [rbp + 0x100], rdi
movaps xmmword [rbp + 0xb0], xmm6
movaps xmmword [rbp + 0xa0], xmm7
movaps xmmword [rbp + 0x90], xmm8
movaps xmmword [rbp + 0x80], xmm9
movaps xmmword [rbp + 0x70], xmm10
movaps xmmword [rbp + 0x60], xmm11
movaps xmmword [rbp + 0x50], xmm12
movaps xmmword [rbp + 0x40], xmm13
movaps xmmword [rbp + 0x30], xmm14
movaps xmmword [rbp + 0x20], xmm15
mov rax, qword [0x18025cbc0]
xor rax, rbp
mov qword [rbp + 0x10], rax
movdqa xmm6, xmmword [0x18017cfe0]
mov rsi, rdx
movdqa xmm14, xmmword [0x18021dc10]
mov r15d, r8d
movsxd r13, r9d
movabs r8, 0xffffffffffffff0
mov rdi, r13
lea eax, [r13 + 3]
lea rdx, [r13*4 + 0xc]
mov dword [rbp], eax
lea rax, [rdx + 0xf]
cmp rax, rdx
ja 0x18012aa17
mov rax, r8
and rax, 0xfffffffffffffff0
call fcn.1801518f0
sub rsp, rax
lea rax, [rdx + 0xf]
lea r12, [rsp + 0x20]
cmp rax, rdx
ja 0x18012aa34
mov rax, r8
and rax, 0xfffffffffffffff0
call fcn.1801518f0
sub rsp, rax
lea rax, [rdx + 0xf]
lea r14, [rsp + 0x20]
cmp rax, rdx
ja 0x18012aa51
mov rax, r8
and rax, 0xfffffffffffffff0
call fcn.1801518f0
sub rsp, rax
lea rbx, [r13*4]
mov rdx, rcx
mov r8, rbx
mov rcx, r14
lea rax, [rsp + 0x20]
mov qword [rbp + 8], rax
call sub.VCRUNTIME140.dll_memcpy
xor edx, edx
xorps xmm8, xmm8
mov dword [rbx + r14], edx
xorps xmm3, xmm3
mov rbx, qword [rbp + 8]
mov qword [r14 + r13*4 + 4], rdx
test r13d, r13d
jle 0x18012aae8
mov r9, r12
mov r10, rsi
sub r9, rsi
sub r10, r14
mov r11, rbx
mov r8d, edx
sub r11, r14
xorps xmm4, xmm4
mov rcx, r14
movups xmm0, xmmword [rcx]
lea rax, [r10 + rcx]
add r8, 4
movaps xmm1, xmm6
movups xmmword [r9 + rax], xmm8
andnps xmm1, xmm0
movaps xmm2, xmm0
movdqu xmmword [rax], xmm4
movups xmmword [rcx], xmm1
cmpltps xmm2, xmm8
movups xmmword [r11 + rcx], xmm2
add rcx, 0x10
addps xmm3, xmm1
cmp r8, rdi
jl 0x18012aab2
movaps xmm0, xmm3
sar r13d, 1
shufps xmm0, xmm3, 0x4e
xorps xmm1, xmm1
addps xmm3, xmm0
xorps xmm10, xmm10
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xb1
addps xmm3, xmm0
cmp r15d, r13d
jle 0x18012ac15
comiss xmm3, dword [0x18021bbe0]
jbe 0x18012ab25
movss xmm0, dword [0x18021c058]
comiss xmm0, xmm3
ja 0x18012ab45
mov dword [r14], 0x3f800000
mov eax, 1
mov dword [r14 + rax*4], edx
inc rax
cmp rax, rdi
jl 0x18012ab31
movdqa xmm3, xmmword [0x180216b20]
movd xmm0, r15d
movaps xmm4, xmm8
movaps xmm5, xmm4
xorps xmm7, xmm7
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x18021dc00]
cvtpd2ps xmm6, xmm0
rcpps xmm0, xmm3
shufps xmm6, xmm6, 0
mulps xmm6, xmm0
test rdi, rdi
jle 0x18012abd1
mov r8, r14
mov r9, r12
sub r8, rsi
mov rcx, rdx
sub r9, rsi
mov rax, rsi
nop word [rax + rax]
movups xmm2, xmmword [r8 + rax]
add rcx, 4
movaps xmm0, xmm2
mulps xmm0, xmm6
cvttps2dq xmm1, xmm0
cvtdq2ps xmm3, xmm1
movdqu xmmword [rax], xmm1
movaps xmm0, xmm3
paddd xmm7, xmm1
mulps xmm0, xmm2
addps xmm5, xmm0
movaps xmm0, xmm3
mulps xmm0, xmm3
addps xmm3, xmm3
movups xmmword [r9 + rax], xmm3
add rax, 0x10
addps xmm4, xmm0
cmp rcx, rdi
jl 0x18012ab90
pshufd xmm1, xmm7, 0x4e
paddd xmm1, xmm7
pshufd xmm0, xmm1, 0xb1
paddd xmm0, xmm1
movd eax, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0x4e
addps xmm5, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x4e
sub r15d, eax
addps xmm4, xmm0
movaps xmm10, xmm5
shufps xmm10, xmm5, 0xb1
movaps xmm1, xmm4
addps xmm10, xmm5
shufps xmm1, xmm4, 0xb1
addps xmm1, xmm4
mov dword [r14 + rdi*4 + 8], 0xc2c80000
mov dword [r14 + rdi*4 + 4], 0xc2c80000
mov dword [r14 + rdi*4], 0xc2c80000
mov dword [r12 + rdi*4 + 8], 0x42c80000
mov dword [r12 + rdi*4 + 4], 0x42c80000
mov dword [r12 + rdi*4], 0x42c80000
cmp r15d, dword [rbp]
jle 0x18012ac74
movd xmm0, r15d
cvtdq2ps xmm0, xmm0
movaps xmm3, xmm0
mulss xmm3, xmm0
mulss xmm0, dword [r12]
add dword [rsi], r15d
addss xmm3, xmm1
addss xmm3, xmm0
jmp 0x18012ad7d
movaps xmm3, xmm1
test r15d, r15d
jle 0x18012ad7d
movdqa xmm12, xmmword [0x18015ddf0]
xorps xmm11, xmm11
movss xmm13, dword [0x18015d9d4]
movss xmm15, dword [0x18017cf48]
mov r9d, r15d
addss xmm3, xmm13
movaps xmm6, xmm10
shufps xmm6, xmm6, 0
movdqa xmm5, xmm11
movdqa xmm4, xmm12
mov rcx, rdx
movaps xmm9, xmm3
movaps xmm3, xmm8
movaps xmm7, xmm9
shufps xmm7, xmm7, 0
test rdi, rdi
jle 0x18012ad17
mov r8, r12
mov rax, r14
sub r8, r14
nop word [rax + rax]
movups xmm0, xmmword [r8 + rax]
add rcx, 4
movups xmm1, xmmword [rax]
add rax, 0x10
addps xmm0, xmm7
addps xmm1, xmm6
rsqrtps xmm2, xmm0
movaps xmm0, xmm3
mulps xmm2, xmm1
cmpltps xmm0, xmm2
andps xmm0, xmm4
paddd xmm4, xmm14
pmaxsw xmm5, xmm0
maxps xmm3, xmm2
cmp rcx, rdi
jl 0x18012ace0
movaps xmm0, xmm3
movaps xmm1, xmm3
shufps xmm0, xmm3, 0x4e
maxps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
maxps xmm1, xmm0
cmpeqps xmm1, xmm3
andps xmm1, xmm5
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 xmm10, dword [r14 + rcx*4]
movaps xmm3, xmm0
addss xmm0, xmm15
addss xmm3, xmm9
movss dword [r12 + rcx*4], xmm0
inc dword [rsi + rcx*4]
sub r9, 1
jne 0x18012aca2
test rdi, rdi
jle 0x18012adb2
sub rbx, rsi
nop word [rax + rax]
movdqu xmm1, xmmword [rbx + rsi]
add rdx, 4
movdqu xmm2, xmmword [rsi]
lea rsi, [rsi + 0x10]
paddd xmm2, xmm1
xorps xmm2, xmm1
movdqu xmmword [rsi - 0x10], xmm2
cmp rdx, rdi
jl 0x18012ad90
movaps xmm0, xmm3
mov rcx, qword [rbp + 0x10]
xor rcx, rbp
call fcn.180151320
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
mov rdi, qword [rbp + 0x100]
movaps xmm6, xmmword [rbp + 0xb0]
movaps xmm7, xmmword [rbp + 0xa0]
movaps xmm8, xmmword [rbp + 0x90]
movaps xmm9, xmmword [rbp + 0x80]
movaps xmm10, xmmword [rbp + 0x70]
movaps xmm11, xmmword [rbp + 0x60]
movaps xmm12, xmmword [rbp + 0x50]
movaps xmm13, xmmword [rbp + 0x40]
movaps xmm14, xmmword [rbp + 0x30]
movaps xmm15, xmmword [rbp + 0x20]
lea rsp, [rbp + 0xc0]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret