Function at 0x54dbd0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x748
mov eax, dword [0x64e2c0]
xor eax, ebp
mov dword [ebp - 4], eax
movss xmm0, dword [ebx + 0xc]
push esi
mov esi, dword [ebx + 8]
push edi
mov edi, ecx
lea ecx, [ebp - 0x418]
push esi
mov dword [ebp - 0x670], edi
movss dword [edi + 0x800], xmm0
call fcn.00539bd0
mov eax, 0x868075b1
mov ecx, esi
imul esi
add edx, esi
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x79d
sub ecx, eax
add ecx, 5
imul ecx, esi
push ecx
lea ecx, [ebp - 0x620]
call fcn.00539bd0
mov eax, 0x4a07f3db
mov ecx, esi
imul esi
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xdd5
sub ecx, eax
add ecx, 0xa
imul ecx, esi
push ecx
lea ecx, [ebp - 0x210]
call fcn.00539bd0
movaps xmm7, xmmword [0x5f84a0]
xor eax, eax
movaps xmm6, xmmword [0x5eebc0]
mov edx, edi
movss xmm4, dword [0x5eeacc]
mov dword [ebp - method.Effekseer::RandObject.virtual_0], vtable.Effekseer::RandObject.0
mov dword [ebp - 0x664], 0
mov dword [ebp - 0x650], eax
nop dword [eax]
movd xmm1, eax
xor ecx, ecx
cvtdq2ps xmm1, xmm1
mov dword [ebp - 0x648], ecx
movss dword [ebp - 0x64c], xmm1
nop word [eax + eax]
movss xmm5, dword [0x5eeaf4]
xor eax, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x644], edx
movss dword [ebp - 0x66c], xmm0
movd xmm3, eax
movaps xmm2, xmm0
mov eax, dword [ebx + 0x10]
movaps xmm0, xmm1
movss dword [ebp - 0x630], xmm5
movaps xmm1, xmm5
unpcklps xmm2, xmm1
xorps xmm1, xmm1
movss dword [ebp - 0x63c], xmm1
cvtdq2ps xmm3, xmm3
unpcklps xmm3, xmm0
unpcklps xmm3, xmm2
mulps xmm3, xmmword [0x6061a0]
movaps xmmword [ebp - 0x660], xmm3
movaps xmmword [ebp - 0x6a0], xmm3
test eax, eax
je 0x54e806
mov dword [ebp - 0x624], eax
nop word [eax + eax]
cvttps2dq xmm0, xmm3
movaps xmm5, xmmword [0x606130]
cvtdq2ps xmm1, xmm0
movaps xmm0, xmm3
cmpltps xmm0, xmm1
cvtdq2ps xmm2, xmm0
addps xmm2, xmm1
cvttps2dq xmm1, xmm2
pand xmm1, xmmword [0x606180]
pshufd xmm0, xmm1, 0x55
movd edx, xmm0
movd esi, xmm1
pshufd xmm0, xmm1, 0xaa
movaps xmm1, xmm3
subps xmm1, xmm2
movd edi, xmm0
movaps xmm2, xmmword [0x6061f0]
mov dword [ebp - 0x634], edi
movzx eax, byte [ebp + esi - 0x418]
mulps xmm2, xmm1
movaps xmm0, xmm1
add eax, edx
mulps xmm0, xmm1
movaps xmm7, xmm1
shufps xmm7, xmm1, 0
subps xmm2, xmmword [0x606220]
movzx ecx, byte [ebp + eax - 0x418]
mulps xmm0, xmm1
add ecx, edi
movzx edi, byte [ebp + eax - 0x417]
movzx eax, byte [ebp + esi - 0x417]
mulps xmm2, xmm1
add eax, edx
add edi, dword [ebp - 0x634]
movzx esi, byte [ebp + eax - 0x418]
addps xmm2, xmmword [0x606210]
add esi, dword [ebp - 0x634]
movzx eax, byte [ebp + eax - 0x417]
add eax, dword [ebp - 0x634]
movzx edx, byte [ebp + edi - 0x418]
mulps xmm2, xmm0
mov dword [ebp - 0x638], esi
movzx esi, byte [ebp + ecx - 0x418]
movzx ecx, byte [ebp + ecx - 0x417]
mov dword [ebp - 0x628], eax
movzx eax, byte [ebp + edi - 0x417]
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
movups xmmword [ebp - 0x6d0], xmm0
movaps xmm0, xmm2
movd xmm4, esi
shufps xmm0, xmm2, 0xaa
movups xmmword [ebp - 0x6e0], xmm0
movaps xmm0, xmm7
subps xmm0, xmm6
movaps xmm6, xmmword [0x606150]
movups xmmword [ebp - 0x6c0], xmm2
movd xmm2, eax
movups xmmword [ebp - 0x6f0], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
subps xmm0, xmmword [0x5f84b0]
shufps xmm1, xmm1, 0xaa
subps xmm1, xmmword [0x606040]
movups xmmword [ebp - 0x690], xmm0
movaps xmmword [ebp - 0x680], xmm1
movd xmm0, ecx
punpckldq xmm4, xmm0
movaps xmm0, xmmword [0x606160]
movd xmm1, edx
punpckldq xmm1, xmm2
movaps xmm2, xmmword [str._f_f_f_f]
punpckldq xmm4, xmm1
pand xmm4, xmmword [0x606170]
movaps xmm1, xmmword [0x5feb50]
pcmpeqd xmm2, xmm4
pcmpeqd xmm0, xmm4
pcmpgtd xmm6, xmm4
pcmpgtd xmm5, xmm4
por xmm2, xmm0
pand xmm1, xmm4
movaps xmm3, xmmword [0x601da0]
movaps xmm0, xmm7
mov ecx, dword [ebp - 0x638]
andps xmm0, xmm2
andnps xmm2, xmmword [ebp - 0x680]
pand xmm3, xmm4
mov eax, dword [ebp - 0x628]
orps xmm0, xmm2
movaps xmm4, xmm5
pslld xmm1, 0x1e
movzx esi, byte [ebp + ecx - 0x418]
andnps xmm4, xmm0
movups xmm0, xmmword [ebp - 0x690]
movzx edx, byte [ebp + eax - 0x418]
movzx ecx, byte [ebp + ecx - 0x417]
andps xmm7, xmm6
andnps xmm6, xmmword [ebp - 0x690]
andps xmm0, xmm5
movzx eax, byte [ebp + eax - 0x417]
orps xmm4, xmm0
xorps xmm4, xmm1
pslld xmm3, 0x1f
orps xmm7, xmm6
movd xmm0, ecx
xorps xmm7, xmm3
movd xmm1, edx
movaps xmm3, xmmword [0x606130]
addps xmm4, xmm7
movups xmm7, xmmword [ebp - 0x6f0]
movd xmm2, eax
punpckldq xmm1, xmm2
movd xmm5, esi
punpckldq xmm5, xmm0
punpckldq xmm5, xmm1
pand xmm5, xmmword [0x606170]
movaps xmm2, xmm5
movaps xmm0, xmm5
pcmpeqd xmm0, xmmword [0x606160]
pcmpgtd xmm3, xmm5
pcmpeqd xmm2, xmmword [str._f_f_f_f]
movaps xmm6, xmm3
por xmm2, xmm0
movaps xmm1, xmm5
pand xmm1, xmmword [0x5feb50]
movaps xmm0, xmm7
andps xmm0, xmm2
pslld xmm1, 0x1e
andnps xmm2, xmmword [ebp - 0x680]
orps xmm0, xmm2
andnps xmm6, xmm0
movups xmm0, xmmword [ebp - 0x690]
movups xmmword [ebp - 0x6b0], xmm4
movaps xmm4, xmmword [0x606150]
andps xmm0, xmm3
orps xmm6, xmm0
pcmpgtd xmm4, xmm5
pand xmm5, xmmword [0x601da0]
xorps xmm6, xmm1
movups xmm1, xmmword [ebp - 0x6c0]
andps xmm7, xmm4
pslld xmm5, 0x1f
andnps xmm4, xmmword [ebp - 0x690]
orps xmm7, xmm4
shufps xmm1, xmm1, 0
movups xmm3, xmmword [ebp - 0x6d0]
xorps xmm7, xmm5
addps xmm6, xmm7
subps xmm6, xmmword [ebp - 0x6b0]
mulps xmm6, xmm1
addps xmm6, xmmword [ebp - 0x6b0]
movaps xmm0, xmm6
movaps xmm2, xmm6
shufps xmm0, xmm6, 0x55
movaps xmm1, xmm6
subss xmm0, xmm6
shufps xmm2, xmm6, 0xff
shufps xmm1, xmm6, 0xaa
subss xmm2, xmm1
mulss xmm0, xmm3
mulss xmm2, xmm3
addss xmm0, xmm6
sub dword [ebp - 0x624], 1
addss xmm1, xmm2
movss xmm4, dword [ebp - 0x630]
movaps xmm3, xmmword [ebp - 0x6a0]
mulps xmm3, xmmword [0x6061e0]
subss xmm1, xmm0
movaps xmm6, xmmword [0x5eebc0]
movaps xmmword [ebp - 0x6a0], xmm3
mulss xmm1, dword [ebp - 0x6e0]
addss xmm1, xmm0
movss xmm0, dword [0x5eeacc]
mulss xmm1, xmm4
mulss xmm4, xmm0
addss xmm1, dword [ebp - 0x63c]
movss dword [ebp - 0x630], xmm4
movss dword [ebp - 0x63c], xmm1
jne 0x54dd50
movaps xmm3, xmmword [ebp - 0x660]
xorps xmm2, xmm2
mov eax, dword [ebx + 0x10]
mulss xmm1, xmm0
mov dword [ebp - 0x628], eax
movss dword [ebp - 0x634], xmm2
movss xmm2, dword [0x5eeaf4]
addss xmm1, xmm0
movaps xmmword [ebp - 0x6f0], xmm3
movss dword [ebp - 0x630], xmm2
movss dword [ebp - 0x63c], xmm1
nop word [eax + eax]
cvttps2dq xmm0, xmm3
movaps xmm5, xmmword [0x606150]
cvtdq2ps xmm1, xmm0
movaps xmm0, xmm3
movaps xmm4, xmmword [0x606130]
cmpltps xmm0, xmm1
cvtdq2ps xmm2, xmm0
addps xmm2, xmm1
cvttps2dq xmm1, xmm2
pand xmm1, xmmword [0x606180]
pshufd xmm0, xmm1, 0x55
movd edx, xmm0
movd esi, xmm1
pshufd xmm0, xmm1, 0xaa
movaps xmm1, xmm3
subps xmm1, xmm2
movd edi, xmm0
mov dword [ebp - 0x624], edi
movzx eax, byte [ebp + esi - 0x620]
movaps xmm2, xmm1
movaps xmm0, xmm1
mulps xmm2, xmmword [0x6061f0]
add eax, edx
mulps xmm0, xmm1
movaps xmm7, xmm1
movzx ecx, byte [ebp + eax - 0x620]
subps xmm2, xmmword [0x606220]
shufps xmm7, xmm1, 0
add ecx, edi
mulps xmm0, xmm1
movzx edi, byte [ebp + eax - 0x61f]
movzx eax, byte [ebp + esi - 0x61f]
mulps xmm2, xmm1
add eax, edx
add edi, dword [ebp - 0x624]
movzx esi, byte [ebp + eax - 0x620]
addps xmm2, xmmword [0x606210]
add esi, dword [ebp - 0x624]
movzx eax, byte [ebp + eax - 0x61f]
add dword [ebp - 0x624], eax
movzx edx, byte [ebp + edi - 0x620]
mulps xmm2, xmm0
movzx eax, byte [ebp + edi - 0x61f]
mov dword [ebp - 0x638], esi
movzx esi, byte [ebp + ecx - 0x620]
movzx ecx, byte [ebp + ecx - 0x61f]
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
movups xmmword [ebp - 0x6c0], xmm0
movaps xmm0, xmm2
movd xmm6, esi
shufps xmm0, xmm2, 0xaa
movups xmmword [ebp - 0x6b0], xmm0
movaps xmm0, xmm7
subps xmm0, xmmword [0x5eebc0]
movups xmmword [ebp - 0x6d0], xmm2
movd xmm2, eax
movups xmmword [ebp - 0x680], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
subps xmm0, xmmword [0x5f84b0]
shufps xmm1, xmm1, 0xaa
subps xmm1, xmmword [0x606040]
movups xmmword [ebp - 0x690], xmm0
movups xmmword [ebp - 0x6a0], xmm1
movd xmm0, ecx
punpckldq xmm6, xmm0
movd xmm1, edx
punpckldq xmm1, xmm2
punpckldq xmm6, xmm1
pand xmm6, xmmword [0x606170]
movaps xmm2, xmm6
movaps xmm0, xmm6
pcmpeqd xmm2, xmmword [str._f_f_f_f]
movaps xmm3, xmm6
pcmpeqd xmm0, xmmword [0x606160]
pcmpgtd xmm5, xmm6
pand xmm3, xmmword [0x5feb50]
pcmpgtd xmm4, xmm6
por xmm2, xmm0
pslld xmm3, 0x1e
pand xmm6, xmmword [0x601da0]
movaps xmm1, xmm2
andnps xmm1, xmmword [ebp - 0x6a0]
movaps xmm0, xmm7
andps xmm0, xmm2
mov ecx, dword [ebp - 0x638]
orps xmm1, xmm0
mov eax, dword [ebp - 0x624]
movups xmm0, xmmword [ebp - 0x690]
andps xmm7, xmm5
pslld xmm6, 0x1f
andps xmm0, xmm4
movzx esi, byte [ebp + ecx - 0x620]
movzx edx, byte [ebp + eax - 0x620]
movaps xmm2, xmm4
andnps xmm2, xmm1
movzx ecx, byte [ebp + ecx - 0x61f]
orps xmm2, xmm0
movzx eax, byte [ebp + eax - 0x61f]
xorps xmm2, xmm3
movaps xmm4, xmmword [0x606130]
movaps xmm0, xmm5
movd xmm1, edx
andnps xmm0, xmmword [ebp - 0x690]
orps xmm0, xmm7
movaps xmm5, xmmword [0x606150]
xorps xmm0, xmm6
movd xmm6, esi
addps xmm2, xmm0
movd xmm0, ecx
punpckldq xmm6, xmm0
movups xmmword [ebp - 0x6e0], xmm2
movd xmm2, eax
punpckldq xmm1, xmm2
punpckldq xmm6, xmm1
pand xmm6, xmmword [0x606170]
movaps xmm2, xmm6
movaps xmm0, xmm6
pcmpeqd xmm0, xmmword [0x606160]
pcmpgtd xmm4, xmm6
pcmpeqd xmm2, xmmword [str._f_f_f_f]
pcmpgtd xmm5, xmm6
por xmm2, xmm0
movaps xmm7, xmm4
movaps xmm0, xmmword [ebp - 0x680]
movaps xmm1, xmm2
andnps xmm1, xmmword [ebp - 0x6a0]
andps xmm0, xmm2
orps xmm1, xmm0
movaps xmm3, xmm6
movups xmm0, xmmword [ebp - 0x690]
pand xmm3, xmmword [0x5feb50]
andnps xmm7, xmm1
movups xmm1, xmmword [ebp - 0x680]
pand xmm6, xmmword [0x601da0]
andps xmm0, xmm4
orps xmm7, xmm0
pslld xmm3, 0x1e
andps xmm1, xmm5
pslld xmm6, 0x1f
movaps xmm0, xmm5
xorps xmm7, xmm3
andnps xmm0, xmmword [ebp - 0x690]
orps xmm0, xmm1
movups xmm1, xmmword [ebp - 0x6d0]
xorps xmm0, xmm6
addps xmm7, xmm0
shufps xmm1, xmm1, 0
movups xmm3, xmmword [ebp - 0x6c0]
subps xmm7, xmmword [ebp - 0x6e0]
mulps xmm7, xmm1
addps xmm7, xmmword [ebp - 0x6e0]
movaps xmm0, xmm7
movaps xmm2, xmm7
shufps xmm0, xmm7, 0x55
movaps xmm1, xmm7
subss xmm0, xmm7
shufps xmm2, xmm7, 0xff
shufps xmm1, xmm7, 0xaa
mulss xmm0, xmm3
addss xmm0, xmm7
sub dword [ebp - 0x628], 1
subss xmm2, xmm1
movss xmm4, dword [ebp - 0x630]
mulss xmm2, xmm3
movaps xmm3, xmmword [ebp - 0x6f0]
mulps xmm3, xmmword [0x6061e0]
addss xmm1, xmm2
movaps xmmword [ebp - 0x6f0], xmm3
subss xmm1, xmm0
mulss xmm1, dword [ebp - 0x6b0]
addss xmm1, xmm0
movss xmm0, dword [0x5eeacc]
mulss xmm1, xmm4
mulss xmm4, xmm0
addss xmm1, dword [ebp - 0x634]
movss dword [ebp - 0x630], xmm4
movss dword [ebp - 0x634], xmm1
jne 0x54e120
mov eax, dword [ebx + 0x10]
xorps xmm2, xmm2
movaps xmm3, xmmword [ebp - 0x660]
mulss xmm1, xmm0
mov dword [ebp - 0x638], eax
movss dword [ebp - 0x624], xmm2
movss xmm2, dword [0x5eeaf4]
addss xmm1, xmm0
movss dword [ebp - 0x630], xmm2
movss dword [ebp - 0x634], xmm1
cvttps2dq xmm0, xmm3
movaps xmm5, xmm3
cvtdq2ps xmm1, xmm0
movaps xmm0, xmm3
cmpltps xmm0, xmm1
cvtdq2ps xmm2, xmm0
addps xmm2, xmm1
cvttps2dq xmm1, xmm2
subps xmm5, xmm2
pand xmm1, xmmword [0x606180]
pshufd xmm0, xmm1, 0x55
movd esi, xmm1
movd edx, xmm0
pshufd xmm0, xmm1, 0xaa
movaps xmm1, xmmword [0x6061f0]
mulps xmm1, xmm5
movd edi, xmm0
movaps xmm0, xmm5
movzx eax, byte [ebp + esi - 0x210]
add eax, edx
mulps xmm0, xmm5
mov dword [ebp - 0x628], edi
subps xmm1, xmmword [0x606220]
movzx ecx, byte [ebp + eax - 0x210]
mulps xmm0, xmm5
add ecx, edi
movzx edi, byte [ebp + eax - 0x20f]
movzx eax, byte [ebp + esi - 0x20f]
mov esi, dword [ebp - 0x628]
add eax, edx
add edi, dword [ebp - 0x628]
mulps xmm1, xmm5
movzx edx, byte [ebp + eax - 0x210]
movzx eax, byte [ebp + eax - 0x20f]
add edx, esi
add eax, esi
mov dword [ebp - 0x628], edx
addps xmm1, xmmword [0x606210]
movzx esi, byte [ebp + ecx - 0x210]
movzx ecx, byte [ebp + ecx - 0x20f]
movzx edx, byte [ebp + edi - 0x210]
mov dword [ebp - 0x62c], eax
movzx eax, byte [ebp + edi - 0x20f]
mulps xmm1, xmm0
movd xmm3, esi
movd xmm2, eax
mov eax, dword [ebp - 0x62c]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
movups xmmword [ebp - 0x730], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movups xmmword [ebp - 0x740], xmm0
movd xmm0, ecx
mov ecx, dword [ebp - 0x628]
movups xmmword [ebp - 0x720], xmm1
movd xmm1, edx
movzx esi, byte [ebp + ecx - 0x210]
movzx edx, byte [ebp + eax - 0x210]
movzx ecx, byte [ebp + ecx - 0x20f]
movzx eax, byte [ebp + eax - 0x20f]
punpckldq xmm1, xmm2
punpckldq xmm3, xmm0
punpckldq xmm3, xmm1
movd xmm0, ecx
movd xmm4, esi
punpckldq xmm4, xmm0
movaps xmm0, xmm5
movd xmm2, eax
movd xmm1, edx
punpckldq xmm1, xmm2
punpckldq xmm4, xmm1
shufps xmm0, xmm5, 0
movaps xmm1, xmm0
movaps xmmword [ebp - 0x680], xmm4
subps xmm1, xmmword [0x5eebc0]
movaps xmmword [ebp - 0x690], xmm1
movaps xmm1, xmm5
shufps xmm1, xmm5, 0x55
subps xmm1, xmmword [0x5f84b0]
movaps xmmword [ebp - 0x6a0], xmm1
lea eax, [ebp - 0x6e0]
shufps xmm5, xmm5, 0xaa
subps xmm5, xmmword [0x606040]
push eax
lea eax, [ebp - 0x6d0]
movaps xmmword [ebp - 0x6d0], xmm1
push eax
lea eax, [ebp - 0x6c0]
movaps xmmword [ebp - 0x6c0], xmm0
push eax
lea eax, [ebp - 0x6b0]
movaps xmmword [ebp - 0x6f0], xmm5
push eax
lea eax, [ebp - 0x710]
movaps xmmword [ebp - 0x6e0], xmm5
push eax
lea ecx, [ebp - 0x210]
movaps xmmword [ebp - 0x6b0], xmm3
call fcn.0054f1a0
movaps xmm0, xmmword [ebp - 0x6f0]
lea eax, [ebp - 0x6e0]
push eax
lea eax, [ebp - 0x6d0]
movaps xmmword [ebp - 0x6e0], xmm0
movaps xmm0, xmmword [ebp - 0x6a0]
lea ecx, [ebp - 0x210]
push eax
lea eax, [ebp - 0x6c0]
movaps xmmword [ebp - 0x6d0], xmm0
movaps xmm0, xmmword [ebp - 0x690]
push eax
lea eax, [ebp - 0x6b0]
movaps xmmword [ebp - 0x6c0], xmm0
movaps xmm0, xmmword [ebp - 0x680]
push eax
lea eax, [ebp - 0x700]
movaps xmmword [ebp - 0x6b0], xmm0
push eax
call fcn.0054f1a0
sub dword [ebp - 0x638], 1
movaps xmm2, xmmword [ebp - 0x700]
subps xmm2, xmmword [ebp - 0x710]
movups xmm1, xmmword [ebp - 0x720]
movups xmm4, xmmword [ebp - 0x730]
shufps xmm1, xmm1, 0
mulps xmm2, xmm1
movaps xmm3, xmmword [ebp - 0x660]
mulps xmm3, xmmword [0x6061e0]
addps xmm2, xmmword [ebp - 0x710]
movaps xmmword [ebp - 0x660], xmm3
movaps xmm5, xmm2
movaps xmm1, xmm2
shufps xmm5, xmm2, 0xff
movaps xmm0, xmm2
shufps xmm1, xmm2, 0xaa
subss xmm5, xmm1
shufps xmm0, xmm2, 0x55
subss xmm0, xmm2
mulss xmm5, xmm4
mulss xmm0, xmm4
addss xmm5, xmm1
movss xmm4, dword [0x5eeacc]
movss xmm1, dword [ebp - 0x630]
addss xmm0, xmm2
subss xmm5, xmm0
mulss xmm5, dword [ebp - 0x740]
addss xmm5, xmm0
mulss xmm5, xmm1
mulss xmm1, xmm4
addss xmm5, dword [ebp - 0x624]
movss dword [ebp - 0x630], xmm1
movss dword [ebp - 0x624], xmm5
jne 0x54e4e4
movss xmm0, dword [ebp - 0x634]
movaps xmm7, xmmword [0x5f84a0]
jmp 0x54e814
movss dword [ebp - 0x63c], xmm4
movaps xmm0, xmm4
xorps xmm5, xmm5
movss xmm3, dword [ebp - 0x63c]
movaps xmm1, xmm5
movss xmm5, dword [0x5eeaf4]
movaps xmm2, xmm0
mulss xmm1, xmm4
movaps xmm0, xmm5
unpcklps xmm2, xmm0
addss xmm1, xmm4
unpcklps xmm3, xmm1
unpcklps xmm3, xmm2
subps xmm3, xmm7
mulps xmm3, xmmword [0x6061e0]
movaps xmm2, xmm3
mulps xmm2, xmm3
movaps xmm0, xmm2
movaps xmm1, xmm2
shufps xmm0, xmm2, 0x55
shufps xmm1, xmm2, 0xaa
addss xmm1, xmm0
xorps xmm0, xmm0
addss xmm1, xmm2
movss xmm0, xmm1
movss dword [ebp - 0x62c], xmm1
sqrtss xmm0, xmm0
movss xmm1, dword [0x5eeaa0]
comiss xmm1, xmm0
jbe 0x54e966
sub esp, 8
movaps xmmword [ebp - 0x660], xmm3
lea ecx, [ebp - 0x668]
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0xbf800000
call fcn.005309d0
movaps xmm0, xmmword [ebp - 0x660]
lea ecx, [ebp - 0x668]
fstp dword [ebp - 0x62c]
movss xmm1, dword [ebp - 0x62c]
sub esp, 8
movss xmm0, xmm1
shufps xmm0, xmm0, 0xe1
movaps xmmword [ebp - 0x660], xmm0
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0xbf800000
call fcn.005309d0
movaps xmm0, xmmword [ebp - 0x660]
lea ecx, [ebp - 0x668]
fstp dword [ebp - 0x62c]
movss xmm1, dword [ebp - 0x62c]
sub esp, 8
movss xmm0, xmm1
shufps xmm0, xmm0, 0xe1
shufps xmm0, xmm0, 0xc6
mov dword [esp + 4], 0x3f800000
movaps xmmword [ebp - 0x660], xmm0
mov dword [esp], 0xbf800000
call fcn.005309d0
movaps xmm3, xmmword [ebp - 0x660]
movss xmm4, dword [0x5eeacc]
movss xmm5, dword [0x5eeaf4]
movaps xmm7, xmmword [0x5f84a0]
fstp dword [ebp - 0x62c]
movss xmm1, dword [ebp - 0x62c]
movss xmm3, xmm1
shufps xmm3, xmm3, 0xc6
movaps xmm2, xmm3
mulps xmm2, xmm3
movaps xmm0, xmm2
movaps xmm1, xmm2
shufps xmm0, xmm2, 0x55
shufps xmm1, xmm2, 0xaa
addss xmm1, xmm0
xorps xmm0, xmm0
addss xmm1, xmm2
movss xmm0, xmm1
movss dword [ebp - 0x62c], xmm1
sqrtss xmm0, xmm0
movss xmm1, dword [0x5eeaa0]
comiss xmm1, xmm0
jbe 0x54e9b6
movss xmm0, dword [0x5eeab0]
shufps xmm3, xmm3, 0xc6
movss xmm3, xmm0
shufps xmm3, xmm3, 0xc6
movaps xmm6, xmmword [0x5eebc0]
mov edx, 0xff
movaps xmm0, xmm6
mov esi, 0xff
addps xmm0, xmm3
mov edi, 0xff
mulps xmm0, xmm7
mulps xmm0, xmmword [0x5f3210]
cvttps2dq xmm1, xmm0
pshufd xmm0, xmm1, 0x55
movd ecx, xmm0
pshufd xmm0, xmm1, 0xaa
movd eax, xmm0
movss xmm0, dword [ebp - 0x66c]
cmp eax, edx
cmovl edx, eax
cmp ecx, esi
movd eax, xmm1
cmovl esi, ecx
movss xmm1, dword [ebp - 0x64c]
cmp eax, edi
cmovl edi, eax
xor ecx, ecx
test edx, edx
cmovg ecx, edx
mov edx, dword [ebp - 0x644]
xor eax, eax
shl ecx, 8
test esi, esi
cmovg eax, esi
or ecx, eax
xor eax, eax
shl ecx, 8
test edi, edi
cmovg eax, edi
or ecx, eax
mov eax, dword [ebp - 0x640]
inc eax
mov dword [edx], ecx
add edx, 4
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x644], edx
cmp eax, 8
jl 0x54dcf5
mov ecx, dword [ebp - 0x648]
inc ecx
mov dword [ebp - 0x648], ecx
cmp ecx, 8
jl 0x54dcd0
mov eax, dword [ebp - 0x650]
inc eax
mov dword [ebp - 0x650], eax
cmp eax, 8
jl 0x54dcb0
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x670]
xor ecx, ebp
pop edi
pop esi
call fcn.005b26e6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc