Function at 0x42f080
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp - 0x50], xmm6
movaps xmmword [rbp - 0x40], xmm7
movaps xmmword [rbp - 0x30], xmm8
movaps xmmword [rbp - 0x20], xmm9
movaps xmmword [rbp - 0x10], xmm10
movaps xmmword [rbp], xmm11
movaps xmmword [rbp + 0x10], xmm12
lea r15d, [r9 + 3]
mov r12d, r8d
mov rdi, rdx
mov ebx, r9d
movsxd r8, r15d
shl r8, 2
lea rdx, [r8 + 0xf]
and rdx, 0xfffffffffffffff0
mov rax, rdx
call fcn.004582d0
sub rsp, rax
mov rax, rdx
lea r14, [rsp + 0x23]
shr r14, 2
lea rsi, [r14*4]
call fcn.004582d0
sub rsp, rax
mov rax, rdx
lea r10, [rsp + 0x23]
shr r10, 2
lea r9, [r10*4]
mov qword [rbp - 0x58], r10
call fcn.004582d0
sub rsp, rax
mov rdx, rcx
sub r8, 0xc
mov rcx, r9
call sub.msvcrt.dll_memcpy
test ebx, ebx
lea r13, [rsp + 0x20]
mov r10, qword [rbp - 0x58]
mov r9, rax
movsxd rax, ebx
lea rdx, [rax*4]
lea rcx, [r9 + rdx]
mov qword [rcx], 0
mov dword [rcx + 8], 0
jle 0x42f4bd
pxor xmm1, xmm1
movaps xmm5, xmmword [0x00473b90]
xor eax, eax
pxor xmm4, xmm4
movaps xmm2, xmm1
movups xmm3, xmmword [r9 + rax*4]
movups xmm6, xmmword [r9 + rax*4]
movaps xmm0, xmm5
movups xmmword [rsi + rax*4], xmm2
movups xmmword [rdi + rax*4], xmm4
cmpltps xmm3, xmm2
andnps xmm0, xmm6
movups xmmword [r9 + rax*4], xmm0
addps xmm1, xmm0
movups xmmword [r13 + rax*4], xmm3
add rax, 4
cmp ebx, eax
jg 0x42f173
mov eax, ebx
sar eax, 1
cmp eax, r12d
jge 0x42f2bc
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x4e
addps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
addps xmm1, xmm0
comiss xmm1, dword [0x00473ba0]
ja 0x42f493
mov dword [r10*4], 0x3f800000
mov eax, 1
mov dword [r9 + rax*4], 0
add rax, 1
cmp ebx, eax
jg 0x42f1e4
movaps xmm1, xmmword [0x00473b70]
rcpps xmm1, xmm1
pxor xmm5, xmm5
cvtsi2sd xmm5, r12d
addsd xmm5, qword [0x00473bb0]
cvtsd2ss xmm5, xmm5
shufps xmm5, xmm5, 0
mulps xmm5, xmm1
test ebx, ebx
jle 0x42f4c6
pxor xmm2, xmm2
xor eax, eax
pxor xmm1, xmm1
movaps xmm3, xmm2
nop
movups xmm0, xmmword [r9 + rax*4]
movdqa xmm4, xmm1
movups xmm1, xmmword [r9 + rax*4]
mulps xmm0, xmm5
cvttps2dq xmm0, xmm0
paddd xmm4, xmm0
movups xmmword [rdi + rax*4], xmm0
cvtdq2ps xmm0, xmm0
mulps xmm1, xmm0
addps xmm3, xmm1
movaps xmm1, xmm0
mulps xmm1, xmm0
addps xmm0, xmm0
movups xmmword [rsi + rax*4], xmm0
add rax, 4
addps xmm2, xmm1
movdqa xmm1, xmm4
cmp ebx, eax
jg 0x42f230
movdqa xmm0, xmm4
pshufd xmm0, xmm0, 0x4e
movaps xmm5, xmm3
paddd xmm4, xmm0
shufps xmm5, xmm3, 0x4e
addps xmm3, xmm5
pshufd xmm0, xmm4, 0xb1
paddd xmm4, xmm0
movaps xmm0, xmm2
movaps xmm5, xmm3
shufps xmm0, xmm2, 0x4e
addps xmm0, xmm2
movd eax, xmm4
shufps xmm5, xmm3, 0xb1
addps xmm3, xmm5
sub r12d, eax
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xb1
movaps xmm5, xmm3
addps xmm0, xmm1
jmp 0x42f2c4
pxor xmm0, xmm0
pxor xmm5, xmm5
movabs rax, 0xc2c80000c2c80000
mov dword [rcx + 8], 0xc2c80000
mov qword [rcx], rax
lea rax, [rsi + rdx]
movabs rdx, 0x42c8000042c80000
mov qword [rax], rdx
mov dword [rax + 8], 0x42c80000
cmp r12d, r15d
jg 0x42f469
test r12d, r12d
jle 0x42f401
movss xmm7, dword [0x00473ba8]
movss xmm6, dword [0x00473bd0]
xor edx, edx
movdqa xmm8, xmmword [0x00473b80]
movdqa xmm4, xmmword [0x00473bc0]
addss xmm0, xmm7
movaps xmm11, xmm5
shufps xmm11, xmm11, 0
movaps xmm12, xmm0
shufps xmm12, xmm12, 0
test ebx, ebx
jle 0x42f4b0
pxor xmm10, xmm10
pxor xmm3, xmm3
movdqa xmm9, xmm8
xor eax, eax
movups xmm2, xmmword [rsi + rax*4]
addps xmm2, xmm12
rsqrtps xmm1, xmm2
movups xmm2, xmmword [r9 + rax*4]
add rax, 4
addps xmm2, xmm11
mulps xmm2, xmm1
movaps xmm1, xmm3
cmpltps xmm1, xmm2
maxps xmm3, xmm2
pand xmm1, xmm9
paddd xmm9, xmm4
pmaxsw xmm1, xmm10
movdqa xmm10, xmm1
cmp ebx, eax
jg 0x42f353
movaps xmm2, xmm3
movaps xmm11, xmm3
add edx, 1
shufps xmm2, xmm3, 0x4e
maxps xmm11, xmm2
movaps xmm2, xmm11
movaps xmm9, xmm11
shufps xmm9, xmm11, 0xb1
maxps xmm2, xmm9
cmpeqps xmm3, xmm2
pand xmm1, xmm3
movdqa xmm2, xmm1
punpckhqdq xmm2, xmm1
pmaxsw xmm1, xmm2
pshuflw xmm2, xmm1, 0x4e
pmaxsw xmm1, xmm2
movd eax, xmm1
cdqe
addss xmm5, dword [r9 + rax*4]
shl rax, 2
lea rcx, [rsi + rax]
add dword [rdi + rax], 1
movss xmm1, dword [rcx]
addss xmm0, xmm1
addss xmm1, xmm6
movss dword [rcx], xmm1
cmp r12d, edx
jne 0x42f325
xor eax, eax
test ebx, ebx
jle 0x42f437
nop word [rax + rax]
movdqu xmm1, xmmword [rdi + rax*4]
movdqu xmm7, xmmword [r13 + rax*4]
movdqu xmm6, xmmword [r13 + rax*4]
paddd xmm1, xmm7
pxor xmm1, xmm6
movups xmmword [rdi + rax*4], xmm1
add rax, 4
cmp ebx, eax
jg 0x42f410
movaps xmm6, xmmword [rbp - 0x50]
movaps xmm7, xmmword [rbp - 0x40]
movaps xmm8, xmmword [rbp - 0x30]
movaps xmm9, xmmword [rbp - 0x20]
movaps xmm10, xmmword [rbp - 0x10]
movaps xmm11, xmmword [rbp]
movaps xmm12, xmmword [rbp + 0x10]
lea rsp, [rbp + 0x28]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
pxor xmm1, xmm1
add dword [rdi], r12d
cvtsi2ss xmm1, r12d
movaps xmm2, xmm1
mulss xmm2, xmm1
mulss xmm1, dword [r14*4]
addss xmm0, xmm2
addss xmm0, xmm1
jmp 0x42f401
movss xmm2, dword [0x00473ba4]
comiss xmm2, xmm1
ja 0x42f1fb
jmp 0x42f1d3
pxor xmm1, xmm1
pxor xmm3, xmm3
jmp 0x42f390
pxor xmm1, xmm1
jmp 0x42f1a5
pxor xmm4, xmm4
pxor xmm2, xmm2
movdqa xmm0, xmm4
movaps xmm3, xmm2
jmp 0x42f276