Function at 0x550f50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x464
push ebx
mov ebx, dword [ebp + 0x14]
test ebx, ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
je 0x550f70
cmp dword [ebx + 8], esi
je 0x550fb0
test byte [esi + 0x16], 4
jne 0x553460
movaps xmm1, xmmword [edi]
fld dword [esi + 0x10]
movaps xmm0, xmmword [esi]
fld st(0)
subps xmm0, xmm1
fmul st(1)
mulps xmm0, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
addss xmm0, xmm1
movaps xmmword [esp + 0x30], xmm0
fld dword [esp + 0x30]
fcompp
fnstsw ax
fstp st(0)
test ah, 0x41
je 0x553460
mov al, byte [esi + 0x17]
cmp al, 1
je 0x553460
cmp al, 2
jne 0x55142f
mov eax, dword [esi + 0x1c]
cmp esi, dword [eax + 0x44]
sete byte [esp + 0x2b]
test ebx, ebx
je 0x550ffd
cmp dword [ebx + 8], esi
jne 0x550ffd
mov ecx, ebx
call fcn.00401f90
push ecx
fstp dword [esp]
lea ecx, [esp + 0x74]
push ecx
mov ecx, dword [esi + 0x18]
push edi
lea edx, [esp + 0x8c]
push edx
add ecx, 0x40
call fcn.006044c0
jmp 0x551016
lea eax, [esp + 0x70]
push eax
push edi
lea ecx, [esp + 0x168]
push ecx
mov ecx, dword [esi + 0x18]
add ecx, 0x40
call fcn.006041e0
movaps xmm0, xmmword [eax]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
movaps xmmword [esp + 0x40], xmm1
fld dword [esp + 0x40]
fcomp dword [0x693ad4]
movaps xmmword [esp + 0xc0], xmm0
fnstsw ax
test ah, 0x41
jne 0x553460
fld dword [esp + 0x40]
fcomp dword [0x693ad0]
fnstsw ax
test ah, 5
jp 0x553460
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + 0x4c]
lea ecx, [eax + 0x20]
movzx eax, byte [eax + 7]
inc eax
mov dword [esp + 0x18], eax
cdq
sub eax, edx
sar eax, 1
shl eax, 4
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x20], ecx
fld dword [esp + 0x60]
fcomp dword [eax + ecx]
fnstsw ax
test ah, 5
jp 0x55109a
mov ecx, dword [esi + 0x18]
lea eax, [esp + 0xe0]
push eax
call fcn.006004b0
jmp 0x5510a0
mov eax, dword [esi + 0x18]
add eax, 0x40
mov ecx, dword [esp + 0x60]
push ecx
push eax
lea edx, [esp + 0x278]
push edx
call fcn.005474a0
mov eax, dword [esp + 0x4c]
add esp, 0xc
push eax
lea ecx, [esp + 0x74]
push ecx
push edi
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0x280]
call fcn.006044c0
movss xmm2, dword [esp + 0xc0]
xorps xmm1, xmm1
movaps xmm0, xmm1
movss xmm0, xmm2
movaps xmm2, xmm0
movaps xmm0, xmmword [eax]
addps xmm0, xmm2
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmmword [esp + 0x60], xmm2
fld dword [esp + 0x60]
fcomp dword [0x694b24]
movaps xmmword [esp + 0x140], xmm1
movaps xmmword [esp + 0xc0], xmm0
fnstsw ax
test ah, 0x41
jne 0x553460
fld dword [esp + 0x60]
fcomp dword [0x694b20]
fnstsw ax
test ah, 5
jp 0x553460
movaps xmmword [esp + 0x60], xmm0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x2b]
test al, al
jne 0x551163
fld dword [esp + 0x60]
movaps xmm2, xmmword [esp + 0x70]
fchs
subps xmm1, xmm2
fstp dword [esp + 0x1c]
movaps xmmword [esp + 0x70], xmm1
fld dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
fcomp dword [ecx]
fnstsw ax
test ah, 0x41
jne 0x553460
mov edx, dword [esp + 0x18]
fld dword [esp + 0x1c]
shl edx, 4
fcomp dword [edx + ecx - 0x10]
fnstsw ax
test ah, 5
jp 0x553460
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
call fcn.00546aa0
mov esi, eax
fld dword [esi + 0x14]
movaps xmm1, xmm0
fsub dword [esi + 4]
shufps xmm1, xmm0, 0x55
fld dword [esp + 0x28]
movaps xmm0, xmmword [edi]
fsub dword [esi]
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi]
fmulp st(1)
fld dword [esi + 0x10]
movaps xmmword [esp + 0x3c], xmm1
fsub dword [esi]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
fdivp st(1)
fadd dword [esp + 0x3c]
movaps xmmword [esp + 0x3c], xmm1
mov eax, dword [esp + 0x3c]
push eax
fadd dword [esi + 4]
push ecx
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
push edx
call fcn.00546830
add esp, 0x18
test al, al
je 0x553460
mov ecx, dword [ebp + 0xc]
test ecx, ecx
mov eax, dword [esp + 0x18]
mov dword [edi], eax
je 0x5513e0
movss xmm0, dword [0x68b4fc]
movaps xmm5, xmmword [esp + 0x70]
movss dword [esp + 0xa0], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0xa8], xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0xac], xmm0
movaps xmm0, xmmword [esp + 0xa0]
shufps xmm0, xmm0, 0x4e
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
mulps xmm1, xmm5
movaps xmm2, xmm5
shufps xmm2, xmm5, 0xc9
mulps xmm0, xmm2
subps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm4, xmm0
movaps xmm3, xmm0
shufps xmm4, xmm0, 0x55
movaps xmm6, xmm0
shufps xmm3, xmm0, 0xaa
addss xmm6, xmm4
addss xmm6, xmm3
movaps xmmword [esp + 0x30], xmm6
fld dword [esp + 0x30]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0xb0], xmm1
fnstsw ax
test ah, 0x41
jne 0x5512ff
movaps xmm3, xmm0
shufps xmm3, xmm0, 0xaa
movaps xmm4, xmm0
shufps xmm4, xmm0, 0x55
addss xmm0, xmm4
addss xmm0, xmm3
movaps xmmword [esp + 0x60], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x60], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmm3, xmm0
shufps xmm3, xmm0, 0
mulps xmm1, xmm3
movaps xmmword [esp + 0x30], xmm1
lea eax, [esp + 0x30]
jmp 0x551306
lea eax, [esp + 0xb0]
fld dword [esi + 0x10]
lea edx, [esp + 0x2c]
fsub dword [esi]
fstp dword [esp + 0x2c]
movss xmm0, dword [edx]
fld dword [esi + 0x14]
fsub dword [esi + 4]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmm1
movaps xmm1, xmmword [eax]
fstp dword [esp + 0x2c]
mulps xmm1, xmm0
lea eax, [esp + 0x2c]
movss xmm0, dword [eax]
unpcklps xmm0, xmm1
shufps xmm0, xmm1, 0xe1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
mulps xmm0, xmm2
mulps xmm1, xmm5
subps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm3, xmm0
movaps xmm2, xmm0
shufps xmm3, xmm0, 0x55
movaps xmm4, xmm0
shufps xmm2, xmm0, 0xaa
addss xmm4, xmm3
addss xmm4, xmm2
movaps xmmword [esp + 0x30], xmm4
fld dword [esp + 0x30]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0xb0], xmm1
fnstsw ax
test ah, 0x41
jne 0x5513d3
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x60], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x60], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
mulps xmm1, xmm2
movaps xmmword [esp + 0x30], xmm1
lea eax, [esp + 0x30]
jmp 0x5513da
lea eax, [esp + 0xb0]
movaps xmm0, xmmword [eax]
movaps xmmword [ecx], xmm0
test ebx, ebx
je 0x551424
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
lea edx, [esp + 0x2c]
movss xmm0, dword [edx]
movss xmm1, xmm0
movaps xmm0, xmmword [esp + 0xc0]
movss xmm0, xmm1
movaps xmm1, xmmword [esp + 0x140]
lea eax, [esp + 0x70]
shufps xmm1, xmm0, 0x20
shufps xmm0, xmm1, 0x24
push eax
mov ecx, ebx
movaps xmmword [ebx + 0x10], xmm0
call fcn.00546b70
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test ebx, ebx
je 0x551467
cmp dword [ebx + 8], esi
jne 0x551467
mov ecx, ebx
call fcn.0043de90
test ah, ah
jns 0x551467
push ebx
mov ecx, ebx
call fcn.0043de90
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
and eax, 0x7fff
push eax
push ecx
push edx
push edi
push esi
call fcn.005503f0
add esp, 0x18
test al, al
jne 0x551424
test byte [esi + 0x16], 8
je 0x5527c6
cmp byte [esi + 0x17], 3
jne 0x551e86
push 1
push 0
push esi
call fcn.00547b80
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x44]
add esp, 0xc
cmp esi, ecx
sete byte [esp + 0x17]
test ebx, ebx
je 0x551513
cmp dword [ebx + 8], esi
jne 0x551513
mov ecx, ebx
call fcn.0043de90
cmp eax, 2
jne 0x551513
mov al, byte [esp + 0x17]
test al, al
mov eax, dword [esp + 0x1c]
je 0x5514d5
movzx ecx, byte [eax + 6]
add ecx, 2
shl ecx, 4
movaps xmm0, xmmword [ecx + eax]
xorps xmm1, xmm1
subss xmm1, xmm0
movss xmm0, xmm1
jmp 0x5514e3
movzx edx, byte [eax + 5]
add edx, 2
shl edx, 4
movaps xmm0, xmmword [edx + eax]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
push ebx
lea eax, [esp + 0x64]
push eax
push 2
push ecx
push edx
push edi
push esi
movaps xmmword [esp + 0x7c], xmm0
call fcn.0054a230
add esp, 0x1c
test al, al
jne 0x551424
push 4
mov ecx, ebx
call fcn.00526fb0
mov al, byte [esp + 0x17]
test al, al
mov ecx, dword [esp + 0x1c]
je 0x55162b
call fcn.0042ab60
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
call fcn.0042ab30
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x18]
push eax
add ecx, 0x40
push ecx
lea edx, [esp + 0x278]
push edx
call fcn.005474a0
add esp, 0xc
push eax
lea ecx, [esp + 0xe4]
call fcn.004010b0
fld dword [esp + 0x20]
movaps xmm0, xmmword [esp + 0xe0]
fchs
mov ecx, dword [esi + 0x18]
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
movaps xmmword [esp + 0x1a0], xmm0
movaps xmm0, xmmword [esp + 0xf0]
push eax
movaps xmmword [esp + 0x1e4], xmm0
movaps xmm0, xmmword [esp + 0x104]
add ecx, 0x80
push ecx
lea edx, [esp + 0x338]
movaps xmmword [esp + 0x228], xmm0
movaps xmm0, xmmword [esp + 0x118]
push edx
movaps xmmword [esp + 0x26c], xmm0
call fcn.005474a0
add esp, 0xc
push eax
lea ecx, [esp + 0xe4]
call fcn.004010b0
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x18]
movaps xmm0, xmmword [esp + 0xe0]
push eax
push ecx
lea edx, [esp + 0x2b8]
movaps xmmword [esp + 0x238], xmm0
movaps xmm0, xmmword [esp + 0xf8]
push edx
movaps xmmword [esp + 0x1fc], xmm0
call fcn.005474a0
add esp, 0xc
push eax
lea ecx, [esp + 0xe4]
call fcn.004010b0
movaps xmm3, xmmword [esp + 0x230]
jmp 0x551725
movaps xmm0, xmmword [ecx + 0x20]
movaps xmmword [esp + 0x60], xmm0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x20], eax
call fcn.0042ab90
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x18]
push ecx
add edx, 0x80
push edx
lea eax, [esp + 0x2b8]
push eax
call fcn.005474a0
add esp, 0xc
push eax
lea ecx, [esp + 0xe4]
call fcn.004010b0
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x18]
movaps xmm0, xmmword [esp + 0xe0]
push ecx
push edx
lea eax, [esp + 0x338]
movaps xmmword [esp + 0x1a8], xmm0
movaps xmm0, xmmword [esp + 0xf8]
push eax
movaps xmmword [esp + 0x1ec], xmm0
call fcn.005474a0
add esp, 0xc
push eax
lea ecx, [esp + 0xe4]
call fcn.004010b0
fld dword [esp + 0x60]
movaps xmm0, xmmword [esp + 0x100]
fchs
push ecx
mov ecx, dword [esi + 0x18]
fstp dword [esp]
add ecx, 0x40
push ecx
lea edx, [esp + 0x278]
movaps xmmword [esp + 0x228], xmm0
movaps xmm0, xmmword [esp + 0x118]
push edx
movaps xmmword [esp + 0x26c], xmm0
call fcn.005474a0
add esp, 0xc
push eax
lea ecx, [esp + 0xe4]
call fcn.004010b0
movaps xmm3, xmmword [esp + 0xe0]
movaps xmm0, xmmword [esp + 0xf0]
movaps xmmword [esp + 0x230], xmm3
movaps xmmword [esp + 0x1f0], xmm0
movaps xmm0, xmmword [esp + 0x100]
movaps xmm2, xmmword [esp + 0x110]
movaps xmm4, xmmword [esp + 0x1a0]
movaps xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0x2c], 0x3eaaaaab
movss xmm0, dword [esp + 0x2c]
movaps xmm5, xmm4
movaps xmm6, xmm2
movaps xmmword [esp + 0x170], xmm2
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
mov dword [esp + 0x2c], 0x3f2aaaab
movss xmm1, dword [esp + 0x2c]
shufps xmm1, xmm1, 0
mulps xmm5, xmm0
mulps xmm4, xmm1
addps xmm4, xmm2
movaps xmm2, xmmword [esp + 0x260]
mulps xmm6, xmm1
addps xmm6, xmm5
movaps xmmword [esp + 0x190], xmm4
movaps xmm4, xmm2
movaps xmm5, xmm3
mulps xmm4, xmm0
mulps xmm5, xmm1
mulps xmm3, xmm0
mulps xmm2, xmm1
addps xmm5, xmm4
addps xmm2, xmm3
lea ecx, [esp + 0x170]
movaps xmmword [esp + 0x180], xmm6
movaps xmmword [esp + 0x240], xmm5
movaps xmmword [esp + 0x250], xmm2
call fcn.00601780
test ebx, ebx
je 0x551831
cmp dword [ebx + 8], esi
jne 0x551831
mov ecx, ebx
call fcn.0043de90
test eax, eax
jne 0x551831
movaps xmm0, xmmword [ebx + 0x10]
mov ecx, ebx
movaps xmmword [esp + 0x30], xmm0
call fcn.00401f90
sub esp, 8
fstp dword [esp + 4]
lea eax, [esp + 0xb8]
fld dword [esp + 0x38]
lea ecx, [esp + 0x78]
fsub dword [esp + 0x28]
fld dword [esp + 0x2c]
fsub dword [esp + 0x28]
fdivp st(1)
fstp dword [esp]
push eax
push ecx
push edi
lea ecx, [esp + 0x184]
call fcn.00604b20
jmp 0x55184b
lea edx, [esp + 0xb0]
push edx
lea eax, [esp + 0x74]
push eax
push edi
lea ecx, [esp + 0x17c]
call fcn.00604e90
test al, al
je 0x551a5e
movaps xmm0, xmmword [esp + 0x70]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
movaps xmmword [esp + 0xc0], xmm1
fld dword [esp + 0xc0]
fcomp dword [0x694b24]
fnstsw ax
test ah, 0x41
jne 0x551a5e
fld dword [esp + 0xc0]
fcomp dword [0x694b20]
fnstsw ax
test ah, 5
jp 0x551a5e
push 0x3f800000
movaps xmmword [esp + 0x44], xmm0
mov edi, dword [esp + 0x44]
push 0
push edi
call fcn.00419680
fld dword [esp + 0x30]
fsub dword [esp + 0x2c]
mov ecx, dword [esp + 0xcc]
add esp, 0xc
push ecx
fmulp st(1)
lea edx, [esp + 0x84]
push edx
fadd dword [esp + 0x28]
push edi
lea eax, [esp + 0x2bc]
push eax
lea ecx, [esp + 0x180]
fstp dword [esp + 0x30]
call fcn.00601db0
mov ecx, eax
call fcn.00600550
movaps xmm0, xmmword [eax]
mov al, byte [esp + 0x17]
test al, al
mov edx, dword [esp + 0x1c]
movaps xmmword [esp + 0xa0], xmm0
je 0x551919
movzx ecx, byte [edx + 6]
movzx eax, byte [edx + 7]
lea edi, [ecx + 2]
shl edi, 4
add edi, edx
sub eax, ecx
jmp 0x551924
mov eax, dword [esp + 0x1c]
lea edi, [eax + 0x20]
movzx eax, byte [eax + 5]
inc eax
test ebx, ebx
mov dword [esp + 0x18], eax
je 0x551936
test byte [edx], 0x10
je 0x551936
mov cl, 1
jmp 0x551938
xor cl, cl
test cl, cl
mov byte [esp + 0x2b], cl
mov dword [esp + 0x24], 0
je 0x5519d0
cmp dword [ebx + 8], esi
jne 0x55196f
mov ecx, ebx
call fcn.0043de90
test eax, eax
jne 0x55196f
movaps xmm0, xmmword [ebx + 0x10]
movaps xmmword [esp + 0x30], xmm0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
jmp 0x55198b
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 8]
lea edx, [esp + 0xa0]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.005490c0
fstp dword [esp + 0x24]
movaps xmm1, xmmword [esp + 0x70]
mov edx, dword [ebp + 8]
movaps xmm0, xmmword [edx]
mov edx, dword [esp + 0x18]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
subss xmm1, xmm2
movaps xmmword [esp + 0x30], xmm1
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x28]
push ecx
push edx
push edi
push eax
call fcn.00546a50
mov cl, byte [esp + 0x3f]
add esp, 0x14
mov edi, eax
fld dword [esp + 0x40]
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 5
jnp 0x551a48
fld dword [esp + 0x40]
fcomp dword [0x68b500]
fnstsw ax
test ah, 1
je 0x551a48
test cl, cl
jne 0x551a0b
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push ecx
push edi
push edx
call fcn.00546aa0
add esp, 0xc
mov edi, eax
fld dword [0x68b4fc]
fld dword [esp + 0x24]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x551ad1
fld dword [esp + 0x24]
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 5
jp 0x551ac6
mov eax, 1
shl eax, 4
fld dword [eax + edi + 4]
jmp 0x551ae9
fld dword [0x68b4fc]
fld dword [esp + 0x24]
fucompp
fnstsw ax
test ah, 0x44
jp 0x551a22
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
push ebx
push 0
push ecx
push edx
push edi
push esi
call fcn.005503f0
add esp, 0x18
test al, al
jne 0x551424
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push ebx
push 2
push eax
push ecx
push edi
push esi
call fcn.005503f0
add esp, 0x18
test al, al
jne 0x551424
mov al, byte [esp + 0x17]
test al, al
mov eax, dword [esp + 0x1c]
je 0x551e50
movzx edx, byte [eax + 6]
add edx, 2
shl edx, 4
movaps xmm0, xmmword [edx + eax]
xorps xmm1, xmm1
subss xmm1, xmm0
movss xmm0, xmm1
jmp 0x551e5e
xor eax, eax
shl eax, 4
fld dword [eax + edi + 4]
jmp 0x551ae9
fld dword [edi + 0x14]
fsub dword [edi + 4]
fld dword [esp + 0x20]
fsub dword [edi]
fmulp st(1)
fld dword [edi + 0x10]
fsub dword [edi]
fdivp st(1)
fadd dword [edi + 4]
movaps xmm0, xmmword [esp + 0x70]
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov edx, dword [esi]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
movaps xmm0, xmmword [eax]
movaps xmmword [esp + 0x30], xmm1
fadd dword [esp + 0x30]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
movaps xmmword [esp + 0x30], xmm1
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
push ecx
push edx
push eax
call fcn.00546830
add esp, 0xc
test al, al
je 0x553460
test ebx, ebx
je 0x551ba1
fld dword [0x68b4fc]
fld dword [esp + 0x24]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x551b58
fld dword [edi + 0x10]
fadd dword [edi]
fmul dword [0x68b504]
jmp 0x551b5c
fld dword [esp + 0x20]
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x2c]
movss xmm0, dword [ecx]
movss xmm1, xmm0
movaps xmm0, xmmword [esp + 0x70]
movss xmm0, xmm1
lea edx, [esp + 0xa0]
movaps xmmword [esp + 0x70], xmm0
push edx
xorps xmm1, xmm1
shufps xmm1, xmm0, 0x20
shufps xmm0, xmm1, 0x24
mov ecx, ebx
movaps xmmword [ebx + 0x10], xmm0
call fcn.00546b70
push 0
mov ecx, ebx
call fcn.00526fb0
mov eax, dword [esp + 0x18]
mov dword [esi], eax
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x551e45
fld dword [0x68b4fc]
fld dword [esp + 0x24]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x551c33
fld dword [esp + 0x24]
mov dword [esp + 0x18], 0xbf800000
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 5
jnp 0x551be6
mov dword [esp + 0x18], 0x3f800000
movss xmm0, dword [0x68b4fc]
movaps xmm2, xmmword [esp + 0xa0]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x4c], xmm0
movaps xmm0, xmmword [esp + 0x40]
movaps xmmword [esp + 0x30], xmm0
jmp 0x551d59
movss xmm0, dword [0x68b4fc]
movaps xmm2, xmmword [esp + 0xa0]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0x4c], xmm0
movaps xmm0, xmmword [esp + 0x40]
shufps xmm0, xmm0, 0x4e
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
mulps xmm1, xmm2
movaps xmm3, xmm2
shufps xmm3, xmm2, 0xc9
mulps xmm0, xmm3
subps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm4, xmm0
movaps xmm3, xmm0
shufps xmm4, xmm0, 0x55
movaps xmm5, xmm0
shufps xmm3, xmm0, 0xaa
addss xmm5, xmm4
addss xmm5, xmm3
movaps xmmword [esp + 0x30], xmm5
fld dword [esp + 0x30]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x120], xmm1
fnstsw ax
test ah, 0x41
jne 0x551d16
movaps xmm3, xmm0
shufps xmm3, xmm0, 0xaa
movaps xmm4, xmm0
shufps xmm4, xmm0, 0x55
addss xmm0, xmm4
addss xmm0, xmm3
movaps xmmword [esp + 0x60], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x60], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmm3, xmm0
shufps xmm3, xmm0, 0
mulps xmm1, xmm3
movaps xmmword [esp + 0x30], xmm1
lea eax, [esp + 0x30]
jmp 0x551d1d
lea eax, [esp + 0x120]
fld dword [edi + 0x10]
lea ecx, [esp + 0x2c]
fsub dword [edi]
lea edx, [esp + 0x2c]
fstp dword [esp + 0x2c]
movss xmm0, dword [ecx]
fld dword [edi + 0x14]
fsub dword [edi + 4]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [eax]
mulps xmm0, xmm1
fstp dword [esp + 0x2c]
movss xmm1, dword [edx]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
movaps xmmword [esp + 0x30], xmm1
fld dword [0x68b4fc]
lea eax, [esp + 0x30]
fld dword [esp + 0x24]
movaps xmm1, xmmword [eax]
fucompp
movaps xmmword [esp + 0x30], xmm1
fnstsw ax
test ah, 0x44
jnp 0x551d95
test ebx, ebx
je 0x551d95
mov eax, dword [esp + 0x24]
push eax
mov ecx, ebx
call fcn.00526ff0
movaps xmm1, xmmword [esp + 0x30]
movaps xmm2, xmmword [esp + 0xa0]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xc9
mulps xmm0, xmm2
shufps xmm2, xmm2, 0xc9
mulps xmm1, xmm2
subps xmm1, xmm0
shufps xmm1, xmm1, 0xc9
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm3, xmm0
movaps xmm2, xmm0
shufps xmm3, xmm0, 0x55
movaps xmm4, xmm0
shufps xmm2, xmm0, 0xaa
addss xmm4, xmm3
addss xmm4, xmm2
movaps xmmword [esp + 0x30], xmm4
fld dword [esp + 0x30]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0xb0], xmm1
fnstsw ax
test ah, 0x41
jne 0x551e38
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x60], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x60], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
lea eax, [esp + 0x30]
mulps xmm1, xmm2
movaps xmmword [esp + 0x30], xmm1
movaps xmm0, xmmword [eax]
movaps xmmword [esi], xmm0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea eax, [esp + 0xb0]
movaps xmm0, xmmword [eax]
movaps xmmword [esi], xmm0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
movzx ecx, byte [eax + 5]
add ecx, 2
shl ecx, 4
movaps xmm0, xmmword [ecx + eax]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push ebx
lea edx, [esp + 0x64]
push edx
push 2
push eax
push ecx
push edi
push esi
movaps xmmword [esp + 0x7c], xmm0
call fcn.0054a230
add esp, 0x1c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 2
push 0
push esi
call fcn.00547b80
mov edx, dword [esi + 0x1c]
mov edi, eax
mov eax, dword [edx + 0x44]
add esp, 0xc
cmp esi, eax
movzx eax, byte [edi + 6]
sete byte [esp + 0x17]
add eax, 2
shl eax, 4
test ebx, ebx
movaps xmm0, xmmword [eax + edi]
xorps xmm1, xmm1
movaps xmmword [esp + 0x140], xmm1
subss xmm1, xmm0
movss xmm0, xmm1
mov dword [esp + 0x24], edi
movaps xmmword [esp + 0x40], xmm0
je 0x551f5d
cmp dword [ebx + 8], esi
jne 0x551f5d
mov ecx, ebx
call fcn.0043de90
cmp eax, 3
jne 0x551f0d
mov al, byte [esp + 0x17]
test al, al
je 0x551efb
push ebx
lea eax, [esp + 0x44]
push eax
push 3
jmp 0x551f37
movzx eax, byte [edi + 5]
add eax, 2
shl eax, 4
push ebx
add eax, edi
push eax
push 3
jmp 0x551f37
mov ecx, ebx
call fcn.0043de90
cmp eax, 1
jne 0x551f5d
mov al, byte [esp + 0x17]
test al, al
je 0x551f2f
movzx eax, byte [edi + 5]
add eax, 2
shl eax, 4
add eax, edi
jmp 0x551f33
lea eax, [esp + 0x40]
push ebx
push eax
push 1
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
push esi
call fcn.0054a230
add esp, 0x1c
test al, al
jne 0x551424
mov ecx, ebx
push 4
call fcn.00526fb0
mov edi, dword [esp + 0x24]
mov ecx, edi
call fcn.0042ab60
fstp dword [esp + 0x20]
mov ecx, edi
call fcn.0042ab90
fstp dword [esp + 0x18]
mov al, byte [esp + 0x17]
mov edx, dword [esp + 0x18]
xor ecx, ecx
test al, al
setne cl
push edx
mov edx, dword [esi + 0x18]
dec ecx
and ecx, 2
mov edi, ecx
mov eax, edi
xor eax, 1
shl eax, 6
add eax, edx
push eax
lea ecx, [esp + 0x2b8]
push ecx
call fcn.005474a0
add esp, 0xc
push eax
lea ecx, [esp + 0xe4]
call fcn.004010b0
mov edx, dword [esp + 0x18]
movaps xmm0, xmmword [esp + 0xe0]
push edx
mov edx, dword [esi + 0x18]
mov eax, edi
xor eax, 2
shl eax, 6
add eax, edx
push eax
lea ecx, [esp + 0x338]
movaps xmmword [esp + 0x1a8], xmm0
movaps xmm0, xmmword [esp + 0xf8]
push ecx
movaps xmmword [esp + 0x1ec], xmm0
call fcn.005474a0
add esp, 0xc
push eax
lea ecx, [esp + 0xe4]
call fcn.004010b0
fld dword [esp + 0x20]
movaps xmm0, xmmword [esp + 0x100]
fchs
fstp dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
push edx
mov edx, dword [esi + 0x18]
mov eax, edi
xor eax, 3
shl eax, 6
add eax, edx
push eax
lea ecx, [esp + 0x278]
movaps xmmword [esp + 0x228], xmm0
movaps xmm0, xmmword [esp + 0x118]
push ecx
movaps xmmword [esp + 0x26c], xmm0
call fcn.005474a0
add esp, 0xc
push eax
lea ecx, [esp + 0xe4]
call fcn.004010b0
movaps xmm0, xmmword [esp + 0xe0]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x18]
shl edi, 6
movaps xmmword [esp + 0x230], xmm0
movaps xmm0, xmmword [esp + 0xf0]
push edx
add edi, ecx
movaps xmmword [esp + 0x1f4], xmm0
push edi
lea eax, [esp + 0x2f8]
push eax
call fcn.005474a0
add esp, 0xc
push eax
lea ecx, [esp + 0xe4]
call fcn.004010b0
movaps xmm0, xmmword [esp + 0x100]
movaps xmm2, xmmword [esp + 0x110]
movaps xmm3, xmmword [esp + 0x1a0]
movaps xmm4, xmm3
movaps xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0x2c], 0x3eaaaaab
movss xmm0, dword [esp + 0x2c]
movaps xmm5, xmm2
movaps xmmword [esp + 0x170], xmm2
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
mov dword [esp + 0x2c], 0x3f2aaaab
movss xmm1, dword [esp + 0x2c]
shufps xmm1, xmm1, 0
mulps xmm3, xmm1
addps xmm3, xmm2
movaps xmm2, xmmword [esp + 0x260]
movaps xmmword [esp + 0x190], xmm3
mulps xmm5, xmm1
movaps xmm3, xmm2
mulps xmm4, xmm0
addps xmm5, xmm4
mulps xmm3, xmm0
movaps xmm4, xmm3
movaps xmm3, xmmword [esp + 0x230]
movaps xmmword [esp + 0x180], xmm5
movaps xmm5, xmm3
mulps xmm5, xmm1
mulps xmm3, xmm0
mulps xmm2, xmm1
addps xmm5, xmm4
addps xmm2, xmm3
lea ecx, [esp + 0x170]
movaps xmmword [esp + 0x240], xmm5
movaps xmmword [esp + 0x250], xmm2
call fcn.00601780
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0xa4]
push edx
push eax
lea ecx, [esp + 0x17c]
call fcn.00604e90
test al, al
je 0x552717
movaps xmm0, xmmword [esp + 0xa0]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
movaps xmmword [esp + 0xc0], xmm1
fld dword [esp + 0xc0]
movaps xmmword [esp + 0x70], xmm0
fcomp dword [0x694b24]
fnstsw ax
test ah, 0x41
jne 0x5526f1
fld dword [esp + 0xc0]
fcomp dword [0x694b20]
fnstsw ax
test ah, 5
jp 0x5526f1
fld dword [esp + 0x70]
fcomp dword [0x694b24]
fnstsw ax
test ah, 0x41
jne 0x552717
fld dword [esp + 0x70]
fcomp dword [0x694b20]
fnstsw ax
test ah, 5
jp 0x552717
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0x70]
push ecx
lea edx, [esp + 0x164]
push edx
push edi
lea eax, [esp + 0x2fc]
push eax
lea ecx, [esp + 0x180]
call fcn.00601db0
mov ecx, eax
call fcn.00600550
movaps xmm0, xmmword [eax]
push 0x3f800000
push 0
push edi
movaps xmmword [esp + 0x7c], xmm0
call fcn.00419680
fld dword [esp + 0x24]
fsub dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
add esp, 0xc
test ebx, ebx
fmulp st(1)
mov dword [esp + 0x1c], 0
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
je 0x55229d
test byte [edi], 0x10
je 0x55229d
cmp dword [ebx + 8], esi
mov byte [esp + 0x2b], 1
jne 0x5522a4
mov ecx, ebx
call fcn.0043de90
test eax, eax
jne 0x5522a4
movaps xmm0, xmmword [ebx + 0x10]
movaps xmmword [esp + 0x30], xmm0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], ecx
jmp 0x5522bd
mov byte [esp + 0x2b], 0
jmp 0x5522bd
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x70]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.005490c0
fstp dword [esp + 0x1c]
movzx edx, byte [edi + 6]
movzx ecx, byte [edi + 5]
lea eax, [edx + 2]
shl eax, 4
sub ecx, edx
mov dl, byte [esp + 0x2b]
add eax, edi
inc ecx
test dl, dl
je 0x552318
movaps xmm1, xmmword [esp + 0xa0]
mov edx, dword [ebp + 8]
movaps xmm0, xmmword [edx]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
subss xmm1, xmm2
movaps xmmword [esp + 0x30], xmm1
mov edx, dword [esp + 0x30]
push edx
lea edx, [esp + 0x20]
push edx
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call fcn.00546a50
add esp, 0x14
jmp 0x552327
push ecx
mov ecx, dword [esp + 0x24]
push eax
push ecx
call fcn.00546aa0
add esp, 0xc
fld dword [esp + 0x1c]
mov esi, eax
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 5
jp 0x552341
mov eax, 1
jmp 0x552343
xor eax, eax
movaps xmm0, xmmword [esp + 0xa0]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
shl eax, 4
movaps xmmword [esp + 0x30], xmm1
fld dword [esp + 0x30]
fadd dword [eax + esi + 4]
fstp dword [esp + 0x18]
fld dword [0x68b4fc]
fld dword [esp + 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x5523a4
fld dword [esi]
fld dword [esi + 0x10]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x5523a4
fld dword [esi + 0x14]
fsub dword [esi + 4]
fld dword [esp + 0x20]
fsub dword [esi]
fmulp st(1)
fld dword [esi + 0x10]
fsub dword [esi]
fdivp st(1)
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
mov edx, dword [ebp + 8]
movaps xmm0, xmmword [edx]
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi]
mov edx, dword [esp + 0x18]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
movaps xmmword [esp + 0x30], xmm1
mov eax, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.00546830
add esp, 0xc
test al, al
je 0x553460
test ebx, ebx
je 0x55244b
fld dword [0x68b4fc]
fld dword [esp + 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x5523fa
fld dword [esi + 0x10]
fadd dword [esi]
fmul dword [0x68b504]
jmp 0x5523fe
fld dword [esp + 0x20]
lea eax, [esp + 0x2c]
fstp dword [esp + 0x2c]
movss xmm0, dword [eax]
movss xmm1, xmm0
movaps xmm0, xmmword [esp + 0xa0]
movss xmm0, xmm1
movaps xmm1, xmmword [esp + 0x140]
lea ecx, [esp + 0x70]
movaps xmmword [esp + 0xa0], xmm0
shufps xmm1, xmm0, 0x20
push ecx
shufps xmm0, xmm1, 0x24
mov ecx, ebx
movaps xmmword [ebx + 0x10], xmm0
call fcn.00546b70
push 0
mov ecx, ebx
call fcn.00526fb0
mov edx, dword [esp + 0x18]
mov dword [edi], edx
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x5526e6
fld dword [0x68b4fc]
fld dword [esp + 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x5524da
fld dword [esp + 0x1c]
mov dword [esp + 0x18], 0xbf800000
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 5
jnp 0x552490
mov dword [esp + 0x18], 0x3f800000
movss xmm0, dword [0x68b4fc]
movaps xmm2, xmmword [esp + 0x70]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x4c], xmm0
movaps xmm0, xmmword [esp + 0x40]
movaps xmmword [esp + 0x30], xmm0
jmp 0x5525fd
movss xmm0, dword [0x68b4fc]
movaps xmm2, xmmword [esp + 0x70]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0x4c], xmm0
movaps xmm0, xmmword [esp + 0x40]
shufps xmm0, xmm0, 0x4e
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
mulps xmm1, xmm2
movaps xmm3, xmm2
shufps xmm3, xmm2, 0xc9
mulps xmm0, xmm3
subps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm4, xmm0
movaps xmm3, xmm0
shufps xmm4, xmm0, 0x55
movaps xmm5, xmm0
shufps xmm3, xmm0, 0xaa
addss xmm5, xmm4
addss xmm5, xmm3
movaps xmmword [esp + 0x30], xmm5
fld dword [esp + 0x30]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0xb0], xmm1
fnstsw ax
test ah, 0x41
jne 0x5525ba
movaps xmm3, xmm0
shufps xmm3, xmm0, 0xaa
movaps xmm4, xmm0
shufps xmm4, xmm0, 0x55
addss xmm0, xmm4
addss xmm0, xmm3
movaps xmmword [esp + 0x60], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x60], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmm3, xmm0
shufps xmm3, xmm0, 0
mulps xmm1, xmm3
movaps xmmword [esp + 0x30], xmm1
lea eax, [esp + 0x30]
jmp 0x5525c1
lea eax, [esp + 0xb0]
fld dword [esi + 0x10]
lea ecx, [esp + 0x2c]
fsub dword [esi]
lea edx, [esp + 0x2c]
fstp dword [esp + 0x2c]
movss xmm0, dword [ecx]
fld dword [esi + 0x14]
fsub dword [esi + 4]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [eax]
mulps xmm0, xmm1
fstp dword [esp + 0x2c]
movss xmm1, dword [edx]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
movaps xmmword [esp + 0x30], xmm1
fld dword [0x68b4fc]
lea eax, [esp + 0x30]
fld dword [esp + 0x1c]
movaps xmm1, xmmword [eax]
fucompp
movaps xmmword [esp + 0x30], xmm1
fnstsw ax
test ah, 0x44
jnp 0x552636
test ebx, ebx
je 0x552636
mov eax, dword [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.00526ff0
movaps xmm2, xmmword [esp + 0x70]
movaps xmm1, xmmword [esp + 0x30]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xc9
mulps xmm0, xmm2
shufps xmm2, xmm2, 0xc9
mulps xmm1, xmm2
subps xmm1, xmm0
shufps xmm1, xmm1, 0xc9
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm3, xmm0
movaps xmm2, xmm0
shufps xmm3, xmm0, 0x55
movaps xmm4, xmm0
shufps xmm2, xmm0, 0xaa
addss xmm4, xmm3
addss xmm4, xmm2
movaps xmmword [esp + 0x30], xmm4
fld dword [esp + 0x30]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0xb0], xmm1
fnstsw ax
test ah, 0x41
jne 0x5526d9
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x60], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x60], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
lea eax, [esp + 0x30]
mulps xmm1, xmm2
movaps xmmword [esp + 0x30], xmm1
movaps xmm0, xmmword [eax]
movaps xmmword [edi], xmm0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea eax, [esp + 0xb0]
movaps xmm0, xmmword [eax]
movaps xmmword [edi], xmm0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
fld dword [esp + 0x70]
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 0x41
jne 0x552717
fld dword [esp + 0x70]
fcomp dword [0x68b500]
fnstsw ax
test ah, 5
jnp 0x553460
xor edi, edi
lea esp, [esp]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push ebx
push edi
push ecx
push edx
push eax
push esi
call fcn.005503f0
add esp, 0x18
test al, al
jne 0x551424
inc edi
cmp edi, 4
jl 0x552720
mov al, byte [esp + 0x17]
test al, al
je 0x552753
lea eax, [esp + 0x40]
jmp 0x552763
mov ecx, dword [esp + 0x24]
movzx eax, byte [ecx + 5]
add eax, 2
shl eax, 4
add eax, ecx
mov edi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ebx
push eax
push 3
push edi
push ecx
push edx
push esi
call fcn.0054a230
add esp, 0x1c
test al, al
jne 0x551424
mov al, byte [esp + 0x17]
test al, al
je 0x55279e
mov ecx, dword [esp + 0x24]
movzx eax, byte [ecx + 5]
add eax, 2
shl eax, 4
add eax, ecx
jmp 0x5527a2
lea eax, [esp + 0x40]
mov ecx, dword [ebp + 8]
push ebx
push eax
mov eax, dword [ebp + 0xc]
push 1
push edi
push eax
push ecx
push esi
call fcn.0054a230
add esp, 0x1c
test al, al
setne al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push fcn.00401050
push 0x10
push 0x10
lea edx, [esp + 0x37c]
push edx
call fcn.00401440
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x4c]
call fcn.00546ba0
fstp dword [esp + 0x2c]
movzx eax, byte [esi + 0x17]
test eax, eax
mov edx, dword [esi + eax*4 + 0x18]
lea ecx, [esp + 0x2c]
movss xmm0, dword [ecx]
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x18], edx
mov dword [esp + 0x58], 0
jle 0x5528f8
lea eax, [esp + 0x370]
mov dword [esp + 0x9c], eax
lea eax, [esi + 0x1c]
xor edi, edi
mov dword [esp + 0x1c], eax
jmp 0x552830
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
mov dword [esp + 0x20], ecx
cmp dword [eax + 0x44], esi
mov dword [esp + 0x18], eax
jne 0x552853
mov ecx, dword [eax + 0x4c]
call fcn.0042ab60
fchs
jmp 0x55285f
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x4c]
call fcn.0042ab90
mov edx, dword [esp + 0x20]
fstp dword [esp + 0x24]
cmp dword [edx + 0x44], esi
jne 0x552878
mov eax, edx
mov ecx, dword [eax + 0x4c]
call fcn.0042ab90
jmp 0x552886
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x4c]
call fcn.0042ab60
fchs
mov eax, dword [esp + 0x24]
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
push 0x3f000000
lea edx, [esp + 0x84]
push edx
mov edx, dword [esi + 0x18]
push eax
push ecx
add edx, edi
push edx
lea eax, [esp + 0x304]
push eax
call fcn.005471d0
add esp, 0x10
mov ecx, eax
call fcn.006004e0
mov ecx, dword [esp + 0x9c]
movaps xmm0, xmmword [eax]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x1c]
movaps xmmword [ecx], xmm0
add ecx, 0x10
mov dword [esp + 0x9c], ecx
movzx ecx, byte [esi + 0x17]
inc eax
add edx, 4
add edi, 0x40
cmp eax, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], edx
jl 0x552830
movzx eax, byte [esi + 0x17]
mov edx, eax
shl edx, 4
test eax, eax
movaps xmm2, xmmword [esp + edx + 0x360]
mov dl, 1
mov dword [esp + 0x20], 0
jle 0x552ecb
mov ecx, dword [esp + 0x20]
jmp 0x552930
movaps xmm2, xmmword [esp + 0x30]
jmp 0x552930
mov eax, ecx
shl eax, 4
movaps xmm1, xmmword [esp + eax + 0x370]
mov eax, dword [ebp + 8]
movaps xmm0, xmmword [eax]
subps xmm0, xmm2
movaps xmmword [esp + 0x80], xmm2
movaps xmmword [esp + 0x30], xmm1
subps xmm1, xmm2
movaps xmm3, xmm0
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xaa
shufps xmm3, xmm0, 0xaa
mulss xmm0, xmm2
movaps xmm2, xmm1
mulss xmm2, xmm3
subss xmm2, xmm0
movaps xmmword [esp + 0xb0], xmm2
fld dword [esp + 0xb0]
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 5
jp 0x552eb2
fld dword [esp + 0xb0]
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
addss xmm0, xmm1
movaps xmmword [esp + 0x120], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x120], xmm0
movaps xmm0, xmmword [esp + 0x120]
movaps xmmword [esp + 0x160], xmm0
fmul dword [esp + 0x160]
fcomp dword [0x694b34]
fnstsw ax
test ah, 5
jp 0x552eb2
test ecx, ecx
je 0x5529f1
lea edx, [ecx - 1]
jmp 0x5529f6
movzx edx, byte [esi + 0x17]
dec edx
mov ecx, dword [esi + edx*4 + 0x1c]
mov eax, dword [ecx + 0x4c]
mov edi, dword [ecx + 0x44]
movzx ecx, byte [eax + 5]
cmp edi, esi
movzx edi, byte [eax + 6]
sete byte [esp + 0x17]
sub ecx, edi
add edi, 2
inc ecx
shl edi, 4
add edi, eax
mov eax, dword [edi]
mov dword [esp + 0x2c], ecx
shl ecx, 4
test edx, edx
mov dword [esp + 0x18], edx
fld dword [ecx + edi - 0x10]
mov dword [esp + 0x24], eax
fstp dword [esp + 0x1c]
je 0x552a3c
lea eax, [edx - 1]
jmp 0x552a41
movzx eax, byte [esi + 0x17]
dec eax
mov cl, byte [esp + 0x17]
test cl, cl
mov eax, dword [esi + eax*4 + 0x1c]
je 0x552a5c
fld dword [esp + 0x24]
fchs
fstp dword [esp + 0x9c]
jmp 0x552a67
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x9c], ecx
cmp dword [eax + 0x44], esi
mov ecx, dword [eax + 0x4c]
jne 0x552a76
call fcn.0042ab90
jmp 0x552a7d
call fcn.0042ab60
fchs
mov eax, dword [esp + 0x9c]
fstp dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0x270]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ecx
mov ecx, dword [esi + 0x18]
shl edx, 6
add edx, ecx
push edx
lea eax, [esp + 0x300]
push eax
call fcn.005471d0
add esp, 0x10
mov ecx, eax
call fcn.00600430
movaps xmm0, xmmword [esp + 0x2a0]
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + ecx*4 + 0x1c]
movaps xmmword [esp + 0x170], xmm0
movaps xmm0, xmmword [esp + 0x290]
movaps xmmword [esp + 0x1b0], xmm0
movaps xmm0, xmmword [esp + 0x280]
movaps xmmword [esp + 0x1f0], xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x4c], xmm0
movaps xmm0, xmmword [esp + 0x40]
movaps xmm1, xmm0
movaps xmmword [esp + 0x120], xmm0
movaps xmm0, xmmword [esp + 0x80]
shufps xmm1, xmm0, 0xe0
shufps xmm0, xmm1, 0x24
movaps xmmword [esp + 0x230], xmm0
cmp dword [eax + 0x44], esi
mov ecx, dword [eax + 0x4c]
jne 0x552b63
call fcn.0042ab60
fchs
jmp 0x552b68
call fcn.0042ab90
mov al, byte [esp + 0x17]
fstp dword [esp + 0x58]
test al, al
je 0x552b81
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xdc], edx
jmp 0x552b8e
fld dword [esp + 0x24]
fchs
fstp dword [esp + 0xdc]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xdc]
lea eax, [esp + 0xe0]
push eax
mov eax, dword [esp + 0x24]
push ecx
push edx
mov edx, dword [esi + 0x18]
shl eax, 6
add eax, edx
push eax
lea ecx, [esp + 0x2c0]
push ecx
call fcn.005471d0
add esp, 0x10
mov ecx, eax
call fcn.006003b0
test ebx, ebx
movaps xmm0, xmmword [esp + 0xf0]
movaps xmm5, xmmword [esp + 0xe0]
movaps xmm1, xmmword [esp + 0x120]
movaps xmm4, xmmword [esp + 0x170]
movaps xmmword [esp + 0x1e0], xmm0
movaps xmm0, xmmword [esp + 0x100]
movaps xmmword [esp + 0x220], xmm0
movaps xmm0, xmmword [esp + 0x30]
shufps xmm1, xmm0, 0xe0
shufps xmm0, xmm1, 0x24
mov dword [esp + 0x13c], 0x3eaaaaab
movss xmm1, dword [esp + 0x13c]
shufps xmm1, xmm1, 0
mov dword [esp + 0x15c], 0x3f2aaaab
movss xmm2, dword [esp + 0x15c]
shufps xmm2, xmm2, 0
movaps xmm3, xmm5
mulps xmm3, xmm1
movaps xmm6, xmm3
movaps xmm3, xmm4
mulps xmm4, xmm1
mulps xmm3, xmm2
addps xmm3, xmm6
movaps xmm6, xmm4
movaps xmm4, xmm5
mulps xmm4, xmm2
addps xmm4, xmm6
movaps xmm6, xmm0
mulps xmm6, xmm1
movaps xmm7, xmm6
movaps xmm6, xmmword [esp + 0x230]
mulps xmm6, xmm2
addps xmm6, xmm7
movaps xmm7, xmmword [esp + 0x230]
mulps xmm7, xmm1
movaps xmm1, xmmword [esp + 0x1b0]
movaps xmmword [esp + 0x180], xmm3
movaps xmmword [esp + 0x190], xmm4
addps xmm4, xmmword [esp + 0xf0]
addps xmm3, xmm1
subps xmm3, xmmword [esp + 0x170]
movaps xmmword [esp + 0x260], xmm0
subps xmm4, xmm5
mulps xmm0, xmm2
addps xmm0, xmm7
movaps xmmword [esp + 0x1c0], xmm3
movaps xmmword [esp + 0x1d0], xmm4
mov dword [esp + 0x5c], 0x3f000000
movss xmm1, dword [esp + 0x5c]
shufps xmm1, xmm1, 0
addps xmm3, xmm6
addps xmm4, xmm0
mulps xmm3, xmm1
mulps xmm4, xmm1
movaps xmmword [esp + 0x1a0], xmm5
movaps xmmword [esp + 0x240], xmm6
movaps xmmword [esp + 0x250], xmm0
movaps xmmword [esp + 0x200], xmm3
movaps xmmword [esp + 0x210], xmm4
je 0x552e0f
cmp dword [ebx + 8], esi
jne 0x552e0f
mov ecx, ebx
call fcn.0043de90
cmp eax, dword [esp + 0x18]
jne 0x552e0f
mov al, byte [esp + 0x17]
test al, al
mov ecx, ebx
je 0x552d50
call fcn.00401fb0
fsub dword [esp + 0x24]
fld dword [esp + 0x1c]
fsub dword [esp + 0x24]
jmp 0x552d61
call fcn.00401fb0
fsub dword [esp + 0x1c]
fld dword [esp + 0x24]
fsub dword [esp + 0x1c]
fdivp st(1)
mov ecx, ebx
fstp dword [esp + 0x58]
call fcn.00401f90
mov edx, dword [esp + 0x58]
push ecx
fstp dword [esp]
push edx
mov edx, dword [ebp + 8]
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x7c]
push ecx
push edx
lea ecx, [esp + 0x184]
call fcn.00604b20
test al, al
je 0x552e69
movaps xmm0, xmmword [esp + 0x70]
movaps xmmword [esp + 0x140], xmm0
fld dword [esp + 0x140]
fcomp dword [0x68d0d8]
fnstsw ax
test ah, 0x41
jne 0x552e69
fld dword [esp + 0x140]
fcomp dword [0x694b1c]
fnstsw ax
test ah, 5
jp 0x552e69
mov eax, dword [esp + 0x140]
push 0x3f800000
push 0
push eax
call fcn.00419680
mov al, byte [esp + 0x23]
add esp, 0xc
test al, al
je 0x552f6c
fld dword [esp + 0x1c]
fsub dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x24]
jmp 0x552f7a
mov edx, dword [ebp + 8]
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x74]
push ecx
push edx
lea ecx, [esp + 0x17c]
call fcn.00604e90
test al, al
je 0x552e69
movaps xmm0, xmmword [esp + 0x70]
movaps xmmword [esp + 0xc0], xmm0
fld dword [esp + 0xc0]
fcomp dword [0x68d0d8]
fnstsw ax
test ah, 0x41
jne 0x552e69
fld dword [esp + 0xc0]
fcomp dword [0x694b1c]
fnstsw ax
test ah, 5
jnp 0x5530e2
mov eax, dword [esp + 0x18]
mov edi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ebx
push eax
push edi
push ecx
push edx
push esi
call fcn.005503f0
add esp, 0x18
test al, al
jne 0x551424
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ebx
push eax
push edi
push ecx
push edx
push esi
call fcn.005503f0
add esp, 0x18
test al, al
jne 0x551424
mov ecx, dword [esp + 0x20]
xor dl, dl
movzx eax, byte [esi + 0x17]
inc ecx
cmp ecx, eax
mov dword [esp + 0x20], ecx
jl 0x552921
test dl, dl
je 0x553460
movzx eax, byte [esi + 0x17]
lea esi, [eax - 3]
xor edx, edx
test esi, esi
mov edi, 1
lea ecx, [eax - 1]
jle 0x5532c3
mov eax, dword [ebp + 8]
movaps xmm4, xmmword [eax]
lea eax, [esp + 0x380]
mov dword [esp + 0x18], eax
mov eax, ecx
shl eax, 4
lea ebx, [esp + eax + 0x370]
mov eax, dword [esp + 0x18]
movaps xmm2, xmmword [eax]
movaps xmm0, xmmword [ebx]
subps xmm0, xmm2
movaps xmm1, xmm4
subps xmm1, xmm2
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm1
shufps xmm3, xmm1, 0xaa
mulss xmm1, xmm2
mulss xmm0, xmm3
subss xmm0, xmm1
movaps xmmword [esp + 0x80], xmm0
fld dword [esp + 0x80]
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 0x41
je 0x5532c3
mov eax, edx
and al, 1
inc edx
test al, al
je 0x5532b7
mov eax, dword [esp + 0x18]
inc edi
add eax, 0x10
mov dword [esp + 0x18], eax
jmp 0x5532bb
fld dword [esp + 0x24]
fsub dword [esp + 0x1c]
fmul st(1)
fadd dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
push ecx
fstp st(0)
push edi
push edx
call fcn.00546b10
fstp dword [esp + 0x68]
movss xmm3, dword [0x68b500]
movaps xmm1, xmmword [esp + 0x7c]
mov edx, dword [ebp + 0x10]
movss dword [esp + 0x4c], xmm3
movss xmm3, dword [0x68b4fc]
movss dword [esp + 0x50], xmm3
movss xmm3, dword [0x68b4fc]
movss dword [esp + 0x54], xmm3
movss xmm3, dword [0x68b4fc]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movss dword [esp + 0x58], xmm3
movaps xmm3, xmmword [esp + 0x4c]
subss xmm3, xmm0
mulss xmm0, dword [esp + 0x6c]
lea eax, [esp + 0x68]
movss xmm2, dword [eax]
mov eax, dword [esp + 0x24]
mulss xmm3, xmm2
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
addss xmm2, xmm0
addss xmm2, xmm3
movaps xmmword [esp + 0x8c], xmm2
mov ecx, dword [esp + 0x8c]
mov dword [edx], ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], eax
movss xmm0, dword [ecx]
mov ecx, dword [ebp + 0xc]
movss xmm1, xmm0
xorps xmm0, xmm0
add esp, 0xc
test ecx, ecx
shufps xmm0, xmm1, 0x20
shufps xmm1, xmm0, 0x24
movaps xmmword [ebx + 0x10], xmm1
je 0x5532ac
movaps xmm1, xmmword [esp + 0xa0]
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm3, xmm0
movaps xmm2, xmm0
shufps xmm3, xmm0, 0x55
movaps xmm4, xmm0
shufps xmm2, xmm0, 0xaa
addss xmm4, xmm3
addss xmm4, xmm2
movaps xmmword [esp + 0x80], xmm4
fld dword [esp + 0x80]
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 0x41
jne 0x55329f
movaps xmm2, xmm0
movaps xmm3, xmm0
shufps xmm2, xmm0, 0xaa
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x30], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x30], xmm0
movaps xmm0, xmmword [esp + 0x30]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
lea eax, [esp + 0x80]
mulps xmm1, xmm2
movaps xmmword [esp + 0x80], xmm1
movaps xmm0, xmmword [eax]
movaps xmmword [ecx], xmm0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [esp + 0xc0]
push 0x3f800000
push 0
push edx
call fcn.00419680
mov al, byte [esp + 0x23]
add esp, 0xc
test al, al
je 0x553111
fld dword [esp + 0x1c]
fsub dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x24]
jmp 0x55311f
fld dword [esp + 0x24]
fsub dword [esp + 0x1c]
fmul st(1)
fadd dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
push eax
fstp st(0)
push edi
push ecx
call fcn.00546b10
fstp dword [esp + 0x68]
movss xmm3, dword [0x68b500]
movaps xmm1, xmmword [esp + 0x7c]
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
movss dword [esp + 0x4c], xmm3
movss xmm3, dword [0x68b4fc]
movss dword [esp + 0x50], xmm3
movss xmm3, dword [0x68b4fc]
movss dword [esp + 0x54], xmm3
movss xmm3, dword [0x68b4fc]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movss dword [esp + 0x58], xmm3
movaps xmm3, xmmword [esp + 0x4c]
lea edx, [esp + 0x68]
movss xmm2, dword [edx]
mov edx, dword [esi]
subss xmm3, xmm0
mulss xmm0, dword [esp + 0x6c]
mulss xmm3, xmm2
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
addss xmm2, xmm0
movaps xmm0, xmmword [eax]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
movaps xmmword [esp + 0x8c], xmm1
mov ecx, dword [esp + 0x8c]
push ecx
addss xmm2, xmm3
movaps xmmword [esp + 0x40], xmm2
mov eax, dword [esp + 0x40]
push edx
push eax
call fcn.00546830
add esp, 0x18
test al, al
je 0x553460
test ebx, ebx
je 0x553220
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x5c], ecx
lea edx, [esp + 0x5c]
movss xmm0, dword [edx]
movss xmm1, xmm0
movaps xmm0, xmmword [esp + 0x70]
movss xmm0, xmm1
push eax
mov ecx, ebx
xorps xmm1, xmm1
shufps xmm1, xmm0, 0x20
shufps xmm0, xmm1, 0x24
movaps xmmword [ebx + 0x10], xmm0
call fcn.00526fb0
mov ecx, dword [esp + 0x30]
mov dword [esi], ecx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x5532ac
movaps xmm1, xmmword [esp + 0xa0]
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm3, xmm0
movaps xmm2, xmm0
shufps xmm3, xmm0, 0x55
movaps xmm4, xmm0
shufps xmm2, xmm0, 0xaa
addss xmm4, xmm3
addss xmm4, xmm2
movaps xmmword [esp + 0x80], xmm4
fld dword [esp + 0x80]
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 0x41
jne 0x55329f
movaps xmm2, xmm0
movaps xmm3, xmm0
shufps xmm2, xmm0, 0xaa
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x30], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x30], xmm0
movaps xmm0, xmmword [esp + 0x30]
jmp 0x5530b8
lea eax, [esp + 0xa0]
movaps xmm0, xmmword [eax]
movaps xmmword [ecx], xmm0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
dec ecx
sub ebx, 0x10
cmp edx, esi
jl 0x552f01
mov eax, edi
shl eax, 4
movaps xmm3, xmmword [esp + eax + 0x370]
mov eax, ecx
shl eax, 4
test dl, 1
movaps xmm1, xmmword [esp + eax + 0x370]
lea eax, [ecx + 1]
jne 0x5532e8
lea eax, [edi - 1]
mov ecx, dword [ebp + 8]
subps xmm1, xmm3
mov esi, dword [ebp + 0x10]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xc9
shl eax, 4
movaps xmm0, xmmword [esp + eax + 0x370]
mov eax, dword [esi]
subps xmm0, xmm3
mulps xmm2, xmm0
shufps xmm0, xmm0, 0xc9
mulps xmm1, xmm0
subps xmm1, xmm2
movaps xmm2, xmmword [ecx]
shufps xmm1, xmm1, 0xc9
movaps xmm0, xmm2
subps xmm0, xmm3
mulps xmm0, xmm1
movaps xmm4, xmm0
shufps xmm4, xmm0, 0xaa
addss xmm0, xmm4
movaps xmm4, xmm1
shufps xmm4, xmm1, 0x55
movaps xmmword [esp + 0x160], xmm1
movaps xmmword [esp + 0x120], xmm1
divss xmm0, xmm4
movaps xmm1, xmm3
shufps xmm1, xmm3, 0x55
addss xmm1, dword [esp + 0x60]
subss xmm1, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
movaps xmmword [esp + 0x80], xmm0
mov edx, dword [esp + 0x80]
push edx
movaps xmmword [esp + 0xb4], xmm1
mov ecx, dword [esp + 0xb4]
push eax
push ecx
call fcn.00546830
add esp, 0xc
test al, al
je 0x553460
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x55344c
movaps xmm1, xmmword [esp + 0x160]
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm3, xmm0
movaps xmm2, xmm0
shufps xmm3, xmm0, 0x55
movaps xmm4, xmm0
shufps xmm2, xmm0, 0xaa
addss xmm4, xmm3
addss xmm4, xmm2
movaps xmmword [esp + 0x80], xmm4
fld dword [esp + 0x80]
fcomp dword [0x68b4fc]
fnstsw ax
test ah, 0x41
jne 0x55343f
mov edx, dword [esp + 0xb0]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x30], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x30], xmm0
movaps xmm0, xmmword [esp + 0x30]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
lea eax, [esp + 0x80]
mulps xmm1, xmm2
movaps xmmword [esp + 0x80], xmm1
movaps xmm0, xmmword [eax]
movaps xmmword [ecx], xmm0
mov dword [esi], edx
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea eax, [esp + 0x120]
movaps xmm0, xmmword [eax]
movaps xmmword [ecx], xmm0
mov edx, dword [esp + 0xb0]
mov dword [esi], edx
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x10