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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2a4
mov eax, dword [ebp + 8]
cmp eax, 0xb
push ebx
push esi
push edi
mov esi, ecx
ja case.0x47646d.2
jmp dword [eax*4 + 0x478044]
push 0x120
call fcn.00401b00
add esp, 4
test eax, eax
je case.0x47646d.2
mov dword [eax], 0x4780d0
mov dword [eax + 0x68], 0xffffffff
mov dword [eax + 0x6c], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 4]
and eax, 0xfffffffd
xor edi, edi
or eax, 0x10020
mov byte [esi + 8], 9
mov dword [esi + 4], eax
mov dword [esi + 0xb0], edi
mov dword [esi + 0xb4], edi
mov word [esi + 0xc], 0xff87
mov dword [esi + 0x80], 2
mov ecx, dword [0x725b2c]
mov dword [esi + 0x84], ecx
push 0xffffffffffffffff
mov ecx, 0x725b40
mov dword [esi + 0x88], edi
mov dword [esi + 0xc4], 0xffffffff
mov dword [esi + 0xc0], 5
mov dword [esi + 0xbc], 5
call fcn.005f0ec0
push edi
push 0x509
mov ecx, esi
mov dword [esi + 0x110], eax
call fcn.005efa20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
cmp eax, 0x714e
jg 0x476772
je 0x47675c
cmp eax, 0x6d63
jg 0x476635
je 0x4765f9
cmp eax, 0x62
je 0x4765d6
cmp eax, 0x6d61
jne case.0x47646d.2
movaps xmm0, xmmword [esi + 0x40]
mov dword [esi + 0x80], 0
mov edx, dword [0x725b2c]
mov dword [esi + 0x84], edx
mov eax, dword [ecx + 4]
push 0
mov dword [esi + 0x114], eax
push 0
movaps xmmword [esi + 0xa0], xmm0
call fcn.005fc670
mov edi, eax
add esp, 8
test edi, edi
jl 0x4765ca
mov ecx, dword [0x6bef38]
push 2
push ecx
push edi
call fcn.005fcfc0
add esp, 0xc
lea edx, [esp + 0xa0]
push edx
mov ecx, esi
call fcn.005efd30
push eax
push edi
call fcn.005fcd80
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0xc0]
mov dword [esi + 0xbc], eax
mov ecx, dword [0x725b2c]
mov dword [esi + 0x84], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [esi + 4]
mov eax, dword [esi + 0xc4]
and edx, 0xffffffdf
test eax, eax
mov dword [esi + 4], edx
mov dword [esi + 0x80], 1
jl 0x476629
push eax
call fcn.005fc6e0
add esp, 4
mov dword [esi + 0xc4], 0xffffffff
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x714d
jne case.0x47646d.2
cmp dword [esi + 0x80], 3
jne 0x47674e
mov eax, dword [esi + 0xc4]
test eax, eax
jl 0x47666a
push eax
call fcn.005fc6e0
add esp, 4
mov dword [esi + 0xc4], 0xffffffff
mov eax, dword [esi + 0x110]
test eax, eax
mov dword [esi + 0x80], 4
mov edx, dword [0x725b2c]
mov dword [esi + 0x84], edx
je 0x476747
movaps xmm1, xmmword [eax + 0x40]
movaps xmm0, xmmword [esi + 0x40]
subps xmm0, xmm1
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0
movss xmm1, dword [eax]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
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 + 0x50], xmm4
fld dword [esp + 0x50]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x40], xmm1
fnstsw ax
test ah, 0x41
jne 0x476729
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x20], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x20], xmm0
movaps xmm0, xmmword [esp + 0x20]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
mulps xmm1, xmm2
movaps xmmword [esp + 0x50], xmm1
lea eax, [esp + 0x50]
jmp 0x47672d
lea eax, [esp + 0x40]
movaps xmm0, xmmword [eax]
xorps xmm1, xmm1
subps xmm1, xmm0
movaps xmmword [esi + 0x90], xmm1
mov dword [esi + 0xb0], 0x3ca3d70a
and dword [esi + 4], 0xffffefff
mov eax, 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esi + 0xbc]
xor eax, eax
test ecx, ecx
sete al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
sub eax, 0x7150
je 0x4767a2
dec eax
je 0x476793
sub eax, 2
jne case.0x47646d.2
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0xc0]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0xbc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0x80]
cmp eax, 5
ja case.default.0x4767c0
jmp dword [eax*4 + 0x478074]
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [0x68b70c]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm0
movaps xmm0, xmmword [esp + 0x20]
movaps xmm1, xmm0
movaps xmm0, xmmword [esi + 0x40]
addps xmm0, xmm1
movss xmm1, dword [0x68b500]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x24], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm1
movaps xmm1, xmmword [esp + 0x20]
shufps xmm1, xmm0, 0xe0
shufps xmm0, xmm1, 0x24
movaps xmmword [esi + 0x40], xmm0
movaps xmm0, xmmword [esi + 0x40]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
movaps xmmword [esp + 0x20], xmm1
fld dword [esp + 0x20]
fcomp dword [0x68d0d8]
fnstsw ax
test ah, 5
jp 0x47687e
fld dword [esp + 0x20]
jmp 0x476884
fld dword [0x68d0d8]
movaps xmm0, xmmword [esi + 0x40]
fstp dword [esp + 0x18]
lea ecx, [esp + 0x18]
movss xmm1, dword [ecx]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
movaps xmmword [esi + 0x40], xmm1
mov eax, dword [esi + 0x84]
mov edx, dword [0x725b2c]
sub edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fcomp dword [0x68c530]
fnstsw ax
test ah, 1
jne case.default.0x4767c0
movaps xmm0, xmmword [esi + 0x40]
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0xbc23d70a
movss xmm1, dword [eax]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
movaps xmmword [esi + 0x40], xmm1
mov dword [esi + 0x80], 2
mov ecx, dword [0x725b2c]
mov dword [esi + 0x84], ecx
jmp case.default.0x4767c0
mov eax, dword [esi + 0x110]
test eax, eax
je case.default.0x4767c0
movaps xmm1, xmmword [eax + 0x40]
movaps xmm0, xmmword [esi + 0x40]
mov eax, dword [esi + 0x114]
test eax, eax
subps xmm0, xmm1
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
movss xmm1, dword [edx]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
movaps xmm0, xmm1
mulps xmm0, xmm0
movaps xmm1, xmm0
movaps xmm2, xmm0
shufps xmm1, xmm0, 0xaa
shufps xmm2, xmm0, 0x55
addss xmm0, xmm2
addss xmm0, xmm1
movaps xmmword [esp + 0x20], xmm0
je 0x4775dd
push eax
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x2c], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x30], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x34], esp
push esi
push 0x59df
lea ecx, [esp + 0x154]
mov dword [eax], 0
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
test eax, eax
je 0x4775dd
fld dword [esp + 0x20]
fcomp dword [0x68d0e4]
fnstsw ax
test ah, 5
jp 0x4775dd
fld dword [esp + 0x20]
fcomp dword [0x68b5ec]
fnstsw ax
test ah, 0x41
jne 0x4775dd
mov eax, dword [esi + 0x110]
movaps xmm1, xmmword [eax + 0x40]
movaps xmm0, xmmword [esi + 0x40]
subps xmm0, xmm1
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0
movss xmm1, dword [ecx]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
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 + 0x40], xmm4
fld dword [esp + 0x40]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x50], xmm1
fnstsw ax
test ah, 0x41
jne 0x476a9a
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x20], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x20], xmm0
movaps xmm0, xmmword [esp + 0x20]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
mulps xmm1, xmm2
movaps xmmword [esp + 0x40], xmm1
lea eax, [esp + 0x40]
jmp 0x476a9e
lea eax, [esp + 0x50]
fld dword [0x725b3c]
movaps xmm0, xmmword [eax]
fmul dword [0x68b6c0]
push ecx
lea edx, [esp + 0x54]
xorps xmm1, xmm1
fstp dword [esp]
subps xmm1, xmm0
push edx
mov ecx, esi
movaps xmmword [esp + 0x58], xmm1
call fcn.005f0540
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x3c03126f
movss xmm0, dword [eax]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [esp + 0x50]
mulps xmm0, xmm1
movaps xmm1, xmm0
movaps xmm0, xmmword [esi + 0x40]
addps xmm0, xmm1
movss xmm1, dword [0x68b500]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x24], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm1
movaps xmm1, xmmword [esp + 0x20]
shufps xmm1, xmm0, 0xe0
shufps xmm0, xmm1, 0x24
movaps xmmword [esi + 0x40], xmm0
mov eax, dword [esi + 0x84]
mov ecx, dword [0x725b2c]
sub ecx, eax
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fcomp dword [0x68b5bc]
fnstsw ax
test ah, 1
jne case.default.0x4767c0
push 0x64
call fcn.00401930
add esp, 4
cmp eax, 5
jge case.default.0x4767c0
mov ecx, dword [esi + 0x110]
test ecx, ecx
je case.default.0x4767c0
cmp dword [ecx + 0xba8], 0x7fffffff
jne case.default.0x4767c0
call fcn.00419830
test al, al
jne case.default.0x4767c0
cmp dword [esi + 0xc4], 0xffffffff
jne 0x476bef
push 0
push 0
call fcn.005fc670
add esp, 8
test eax, eax
mov dword [esi + 0xc4], eax
jl 0x476bef
mov edx, dword [0x6bef38]
push 0
push edx
push eax
call fcn.005fcfc0
add esp, 0xc
lea eax, [esp + 0xb0]
push eax
mov ecx, esi
call fcn.005efd30
mov ecx, dword [esi + 0xc4]
push eax
push ecx
call fcn.005fcd80
add esp, 8
mov eax, dword [esi + 4]
mov dword [esi + 0x80], 3
mov edx, dword [0x725b2c]
or eax, 0x1000
mov dword [esi + 0x84], edx
mov dword [esi + 4], eax
jmp case.default.0x4767c0
mov eax, dword [esi + 0x110]
test eax, eax
je case.default.0x4767c0
test dword [eax + 4], 0xe0000000
jne case.default.0x4767c0
movaps xmm1, xmmword [eax + 0x40]
movaps xmm0, xmmword [esi + 0x40]
subps xmm0, xmm1
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0
movss xmm1, dword [ecx]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
movaps xmm0, xmm1
mulps xmm0, xmm0
movaps xmm1, xmm0
movaps xmm2, xmm0
shufps xmm1, xmm0, 0xaa
shufps xmm2, xmm0, 0x55
addss xmm0, xmm2
addss xmm0, xmm1
movaps xmmword [esp + 0x50], xmm0
fld dword [esp + 0x50]
fcomp dword [0x68d0e0]
fnstsw ax
test ah, 0x41
je 0x476e2c
mov edx, dword [esi + 0x114]
push edx
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x2c], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x30], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x34], esp
push esi
push 0x59df
lea ecx, [esp + 0x194]
mov dword [eax], 0
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
test eax, eax
je 0x476e2c
fld dword [esp + 0x50]
fcomp dword [0x68b70c]
fnstsw ax
test ah, 0x41
jne 0x476e5e
mov eax, dword [esi + 0x110]
movaps xmm1, xmmword [eax + 0x40]
movaps xmm4, xmmword [esi + 0x40]
movaps xmm0, xmm4
subps xmm0, xmm1
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0
movss xmm1, dword [ecx]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm3, xmm0
movaps xmm2, xmm0
shufps xmm3, xmm0, 0x55
movaps xmm5, xmm0
shufps xmm2, xmm0, 0xaa
addss xmm5, xmm3
addss xmm5, xmm2
movaps xmmword [esp + 0x40], xmm5
fld dword [esp + 0x40]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x20], xmm1
fnstsw ax
test ah, 0x41
jne 0x476db7
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x50], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x50], xmm0
movaps xmm0, xmmword [esp + 0x50]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
mulps xmm1, xmm2
movaps xmmword [esp + 0x40], xmm1
lea eax, [esp + 0x40]
jmp 0x476dbb
lea eax, [esp + 0x20]
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0x3c23d70a
movss xmm0, dword [edx]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [eax]
xorps xmm2, xmm2
subps xmm2, xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm0
movaps xmm0, xmmword [esp + 0x20]
mulps xmm2, xmm1
addps xmm4, xmm2
shufps xmm0, xmm4, 0xe0
shufps xmm4, xmm0, 0x24
movaps xmmword [esi + 0x40], xmm4
jmp 0x476e5e
mov eax, dword [esi + 0xc4]
test eax, eax
mov dword [esi + 0x80], 2
jl 0x476e53
push eax
call fcn.005fc6e0
add esp, 4
mov dword [esi + 0xc4], 0xffffffff
mov eax, dword [0x725b2c]
mov dword [esi + 0x84], eax
lea ecx, [esp + 0x230]
push 0x3eb2b8c3
push ecx
lea edi, [esi + 0x10]
call fcn.00603c20
add esp, 8
push eax
lea edx, [esp + 0x274]
push edx
mov ecx, edi
call fcn.006020a0
push eax
mov ecx, edi
call fcn.004010b0
jmp case.default.0x4767c0
mov ecx, dword [esi + 0x110]
test ecx, ecx
je 0x477322
mov eax, dword [esi + 0xbc]
test eax, eax
je 0x477322
movaps xmm2, xmmword [ecx + 0x40]
movaps xmm1, xmmword [esi + 0x40]
lea eax, [esp + 0x18]
movaps xmm0, xmm1
subps xmm0, xmm2
mov dword [esp + 0x18], 0
movss xmm2, dword [eax]
unpcklps xmm2, xmm0
shufps xmm2, xmm0, 0xe1
movaps xmm0, xmm2
mulps xmm0, xmm0
movaps xmm2, xmm0
movaps xmm3, xmm0
shufps xmm2, xmm0, 0xaa
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x20], xmm0
fld dword [esp + 0x20]
fcomp dword [0x68b5ec]
fnstsw ax
test ah, 5
jp 0x4770a7
movaps xmm0, xmmword [ecx + 0x40]
subps xmm1, xmm0
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0
movss xmm0, dword [ecx]
unpcklps xmm0, xmm1
shufps xmm0, xmm1, 0xe1
movaps xmm2, xmm0
mulps xmm0, xmm2
movaps xmm4, xmm0
movaps xmm3, xmm0
shufps xmm4, xmm0, 0x55
movaps xmm1, xmm0
shufps xmm3, xmm0, 0xaa
addss xmm1, xmm4
addss xmm1, xmm3
movaps xmmword [esp + 0x40], xmm1
fld dword [esp + 0x40]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x20], xmm2
fnstsw ax
test ah, 0x41
jne 0x476f9e
movaps xmm1, xmm0
movaps xmm3, xmm0
shufps xmm1, xmm0, 0xaa
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm1
movaps xmmword [esp + 0x50], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x50], xmm0
movaps xmm0, xmmword [esp + 0x50]
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
movaps xmmword [esp + 0x40], xmm2
lea eax, [esp + 0x40]
jmp 0x476fa2
lea eax, [esp + 0x20]
fld dword [0x725b3c]
movaps xmm1, xmmword [eax]
fmul dword [0x68b6c0]
push ecx
lea edx, [esp + 0x44]
xorps xmm0, xmm0
fstp dword [esp]
subps xmm0, xmm1
push edx
mov ecx, esi
movaps xmmword [esp + 0x48], xmm0
call fcn.005f0540
mov eax, dword [0x725b2c]
sub eax, dword [esi + 0x84]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fcomp dword [0x68b5bc]
fnstsw ax
test ah, 1
jne 0x477322
push 0x64
call fcn.00401930
add esp, 4
cmp eax, 5
jge 0x477322
mov ecx, dword [esi + 0x110]
cmp dword [ecx + 0xba8], 0x7fffffff
jne 0x477322
call fcn.00419830
test al, al
jne 0x477322
mov eax, dword [esi + 0xc4]
mov dword [esi + 0x80], 3
mov ecx, dword [0x725b2c]
mov dword [esi + 0x84], ecx
mov ecx, dword [esi + 4]
or ecx, 0x1000
cmp eax, 0xffffffff
mov dword [esi + 4], ecx
jne 0x477322
push 0
push 0
call fcn.005fc670
add esp, 8
test eax, eax
mov dword [esi + 0xc4], eax
jl 0x477322
mov edx, dword [0x6bef38]
push 0
push edx
push eax
call fcn.005fcfc0
add esp, 0xc
lea eax, [esp + 0xf0]
push eax
mov ecx, esi
call fcn.005efd30
mov ecx, dword [esi + 0xc4]
push eax
push ecx
call fcn.005fcd80
add esp, 8
jmp 0x477322
fld dword [esp + 0x20]
fcomp dword [0x68d0e4]
fnstsw ax
test ah, 5
jp 0x4771ad
mov edx, dword [esi + 0x114]
push edx
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x2c], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x30], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x34], esp
push esi
push 0x59df
lea ecx, [esp + 0x214]
mov dword [eax], 0
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
test eax, eax
je 0x477322
mov eax, dword [0x725b2c]
sub eax, dword [esi + 0x84]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fcomp dword [0x68b5bc]
fnstsw ax
test ah, 1
jne 0x477322
push 0
push 0
call fcn.005fc670
mov edi, eax
add esp, 8
test edi, edi
jl 0x477193
mov ecx, dword [0x6bef38]
push 5
push ecx
push edi
call fcn.005fcfc0
add esp, 0xc
lea edx, [esp + 0xd0]
push edx
mov ecx, esi
call fcn.005efd30
push eax
push edi
call fcn.005fcd80
add esp, 8
mov dword [esi + 0x80], 1
mov eax, dword [0x725b2c]
mov dword [esi + 0x84], eax
jmp 0x477322
fld dword [esp + 0x20]
fcomp dword [0x68b62c]
fnstsw ax
test ah, 0x41
jne 0x477322
movaps xmm4, xmmword [esi + 0xa0]
lea ecx, [esp + 0x18]
movaps xmm0, xmm1
subps xmm0, xmm4
mov dword [esp + 0x18], 0
movss xmm2, dword [ecx]
unpcklps xmm2, xmm0
shufps xmm2, xmm0, 0xe1
movaps xmm0, xmm2
mulps xmm0, xmm0
movaps xmm2, xmm0
movaps xmm3, xmm0
shufps xmm2, xmm0, 0xaa
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x40], xmm0
fld dword [esp + 0x40]
fcomp dword [0x68b62c]
fnstsw ax
test ah, 0x41
jne 0x477322
lea edx, [esp + 0x18]
movaps xmm0, xmm1
subps xmm0, xmm4
mov dword [esp + 0x18], 0
movss xmm2, dword [edx]
unpcklps xmm2, xmm0
shufps xmm2, xmm0, 0xe1
movaps xmm3, xmm2
movaps xmm0, xmm3
mulps xmm0, xmm3
movaps xmm5, xmm0
movaps xmm4, xmm0
shufps xmm5, xmm0, 0x55
movaps xmm2, xmm0
shufps xmm4, xmm0, 0xaa
addss xmm2, xmm5
addss xmm2, xmm4
movaps xmmword [esp + 0x40], xmm2
fld dword [esp + 0x40]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x20], xmm3
fnstsw ax
test ah, 0x41
jne 0x4772b2
movaps xmm2, xmm0
movaps xmm4, xmm0
shufps xmm2, xmm0, 0xaa
shufps xmm4, xmm0, 0x55
addss xmm0, xmm4
addss xmm0, xmm2
movaps xmmword [esp + 0x50], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x50], xmm0
movaps xmm0, xmmword [esp + 0x50]
shufps xmm0, xmm0, 0
mulps xmm3, xmm0
movaps xmmword [esp + 0x40], xmm3
lea eax, [esp + 0x40]
jmp 0x4772b6
lea eax, [esp + 0x20]
movaps xmm2, xmmword [eax]
xorps xmm0, xmm0
subps xmm0, xmm2
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x3ba3d70a
movss xmm2, dword [eax]
shufps xmm2, xmm2, 0
mulps xmm0, xmm2
addps xmm1, xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm0
movaps xmm0, xmmword [esp + 0x20]
shufps xmm0, xmm1, 0xe0
shufps xmm1, xmm0, 0x24
movaps xmmword [esi + 0x40], xmm1
mov eax, dword [0x725b2c]
sub eax, dword [esi + 0x84]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fcom dword [0x68b5c0]
fnstsw ax
test ah, 1
jne 0x4773da
mov eax, dword [esi + 0xbc]
test eax, eax
jne 0x4773da
mov eax, dword [esi + 0x110]
fstp st(0)
test eax, eax
mov ecx, dword [esi + 0xc0]
mov dword [esi + 0xbc], ecx
je case.default.0x4767c0
push eax
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x2c], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x30], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x34], esp
push esi
push 0x62
lea ecx, [esp + 0x1d4]
mov dword [eax], 0
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
jmp case.default.0x4767c0
fcomp dword [0x68b5a4]
fnstsw ax
test ah, 1
jne case.default.0x4767c0
mov eax, dword [esi + 0xbc]
cmp eax, dword [esi + 0xc0]
jge case.default.0x4767c0
inc eax
mov dword [esi + 0xbc], eax
mov edx, dword [0x725b2c]
mov dword [esi + 0x84], edx
jmp case.default.0x4767c0
mov eax, dword [esi + 0xb0]
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], eax
movss xmm0, dword [ecx]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [esi + 0x90]
mulps xmm0, xmm1
lea ecx, [esi + 0x90]
movaps xmm1, xmm0
movaps xmm0, xmmword [esi + 0x40]
addps xmm0, xmm1
movss xmm1, dword [0x68b500]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x24], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm1
movaps xmm1, xmmword [esp + 0x20]
shufps xmm1, xmm0, 0xe0
shufps xmm0, xmm1, 0x24
movaps xmmword [esi + 0x40], xmm0
fld dword [esi + 0xb0]
fmul dword [0x68d0dc]
mov eax, dword [esi + 0x110]
test eax, eax
fstp dword [esi + 0xb0]
je 0x47757c
mov edx, dword [esi + 0xbc]
test edx, edx
je 0x47757c
movaps xmm1, xmmword [eax + 0x40]
movaps xmm0, xmmword [esi + 0x40]
subps xmm0, xmm1
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
movss xmm1, dword [edx]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
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 + 0x40], xmm4
fld dword [esp + 0x40]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x20], xmm1
fnstsw ax
test ah, 0x41
jne 0x47755a
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x50], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x50], xmm0
movaps xmm0, xmmword [esp + 0x50]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
mulps xmm1, xmm2
movaps xmmword [esp + 0x40], xmm1
lea eax, [esp + 0x40]
jmp 0x47755e
lea eax, [esp + 0x20]
movaps xmm0, xmmword [eax]
movaps xmmword [ecx], xmm0
fld dword [0x725b3c]
fmul dword [0x68b6c0]
push ecx
fstp dword [esp]
push ecx
mov ecx, esi
call fcn.005f0540
mov eax, dword [0x725b2c]
sub eax, dword [esi + 0x84]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fcomp dword [0x68b5bc]
fnstsw ax
test ah, 1
jne case.default.0x4767c0
push 0
push 0
call fcn.005fc670
mov edi, eax
add esp, 8
test edi, edi
jl 0x4775dd
mov ecx, dword [0x6bef38]
push 6
push ecx
push edi
call fcn.005fcfc0
add esp, 0xc
lea edx, [esp + 0x110]
push edx
mov ecx, esi
call fcn.005efd30
push eax
push edi
call fcn.005fcd80
add esp, 8
mov dword [esi + 0x80], 2
mov eax, dword [0x725b2c]
mov dword [esi + 0x84], eax
jmp case.default.0x4767c0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [0x68b70c]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm0
movaps xmm1, xmmword [esp + 0x20]
movaps xmm0, xmmword [esi + 0x40]
subps xmm0, xmm1
movss xmm1, dword [0x68b500]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x24], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm1
movaps xmm1, xmmword [esp + 0x20]
shufps xmm1, xmm0, 0xe0
shufps xmm0, xmm1, 0x24
movaps xmmword [esi + 0x40], xmm0
mov eax, dword [esi + 0x84]
mov ecx, dword [0x725b2c]
sub ecx, eax
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fcomp dword [0x68c530]
fnstsw ax
test ah, 1
jne case.default.0x4767c0
mov eax, dword [esi + 0x114]
test eax, eax
mov dword [esi + 0x80], 2
mov edx, dword [0x725b2c]
mov dword [esi + 0x84], edx
je 0x477733
push eax
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x2c], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x30], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x34], esp
push esi
push 0x59dc
lea ecx, [esp + 0x234]
mov dword [eax], 0
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
mov ecx, esi
call fcn.005f1090
movaps xmm0, xmmword [esi + 0x40]
movaps xmmword [esp + 0x40], xmm0
fld dword [esp + 0x40]
fcomp dword [0x68d0d4]
fnstsw ax
test ah, 0x41
jne 0x477770
movaps xmm1, xmmword [esi + 0x40]
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x3fdeb852
movss xmm0, dword [eax]
movss xmm1, xmm0
movaps xmmword [esi + 0x40], xmm1
movaps xmm0, xmmword [esi + 0x40]
movaps xmmword [esp + 0x40], xmm0
fld dword [esp + 0x40]
fcomp dword [0x68d0d0]
fnstsw ax
test ah, 5
jp 0x4777a6
movaps xmm1, xmmword [esi + 0x40]
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0xbfdeb852
movss xmm0, dword [ecx]
movss xmm1, xmm0
movaps xmmword [esi + 0x40], xmm1
movaps xmm0, xmmword [esi + 0x40]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
movaps xmmword [esp + 0x40], xmm1
fld dword [esp + 0x40]
fcomp dword [0x68d0cc]
fnstsw ax
test ah, 0x41
jne 0x4777e7
movaps xmm0, xmmword [esi + 0x40]
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0x400f5c29
movss xmm1, dword [edx]
shufps xmm1, xmm0, 0xe0
shufps xmm0, xmm1, 0xc4
movaps xmmword [esi + 0x40], xmm0
movaps xmm0, xmmword [esi + 0x40]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
movaps xmmword [esp + 0x40], xmm1
fld dword [esp + 0x40]
fcomp dword [0x68d0c8]
fnstsw ax
test ah, 5
jp case.0x47646d.2
movaps xmm0, xmmword [esi + 0x40]
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0xc019999a
movss xmm1, dword [eax]
shufps xmm1, xmm0, 0xe0
shufps xmm0, xmm1, 0xc4
movaps xmmword [esi + 0x40], xmm0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [esi + 0x80], 2
mov ebx, dword [ebp + 0xc]
jne 0x477f45
mov ecx, ebx
call fcn.00401e40
cmp byte [eax + 8], 1
jne 0x477f45
mov ecx, ebx
call fcn.00401e60
test eax, eax
je 0x477f45
mov ecx, ebx
call fcn.00401e60
mov ecx, dword [eax + 4]
test ch, 0x10
je 0x477f45
mov ecx, ebx
call fcn.005ecd20
test al, al
je 0x477f45
push 0
push 0
call fcn.005fc670
mov edi, eax
add esp, 8
test edi, edi
jl 0x4778d5
call fcn.005f2010
mov ecx, dword [0x6f223c]
shl eax, 5
not eax
and eax, 0x20
or eax, 0x14
push eax
push ecx
push edi
call fcn.005fcfc0
add esp, 0xc
lea edx, [esp + 0x90]
push edx
mov ecx, esi
call fcn.005efd30
push eax
push edi
call fcn.005fcd80
add esp, 8
push 0x3f000000
push 0xf
call fcn.00558cf0
add esp, 8
mov ecx, ebx
call fcn.00401e40
push eax
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x2c], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x30], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x34], esp
push 0
push 0x714d
lea ecx, [esp + 0x174]
mov dword [eax], ebx
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fstp dword [esp + 0x18]
call fcn.004ea8a0
movaps xmm0, xmmword [eax + 0x30]
fld dword [esp + 0x18]
fmul dword [0x68b504]
add eax, 0x30
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0x3dc3126e
movss xmm1, dword [eax]
shufps xmm1, xmm1, 0
mulps xmm0, xmm1
movaps xmm1, xmmword [ebx + 0x80]
subps xmm1, xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [0x68b4fc]
push 0x40800000
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [0x68b4fc]
push 0x3f800000
movss dword [esp + 0x34], xmm0
movaps xmm0, xmmword [esp + 0x28]
push ecx
fstp dword [esp]
movaps xmmword [esp + 0x7c], xmm1
movaps xmmword [esp + 0x8c], xmm0
call fcn.00419680
fstp dword [esp + 8]
add esp, 8
lea ecx, [esp + 0x84]
push ecx
lea edx, [esp + 0x78]
push edx
push 1
push 0xdc
call fcn.0047d1f0
fld dword [esp + 0x2c]
fcomp dword [0x68b4fc]
add esp, 0x14
fnstsw ax
test ah, 0x41
jne case.0x47646d.2
mov eax, dword [0x6f2234]
mov edx, dword [eax + 0x478]
inc edx
mov ecx, ebx
mov dword [eax + 0x478], edx
mov dword [esp + 0x18], 0x3f800000
call fcn.00401e40
mov edi, eax
push edi
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x2c], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x30], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x38], esp
push esi
push 0x59e0
lea ecx, [esp + 0x1b4]
mov dword [eax], 0
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
mov eax, dword [esi + 0xbc]
test eax, eax
jne 0x477ac5
mov eax, dword [esi + 0xc0]
jmp 0x477ac8
jle 0x477ace
dec eax
mov dword [esi + 0xbc], eax
xor eax, eax
mov ecx, edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], eax
call fcn.00419870
test al, al
je 0x477b03
movzx eax, word [edi + 0x80]
sub eax, 0xd7
mov ecx, 1
mov dword [esp + 0x3c], ecx
jne 0x477b5d
mov dword [esp + 0x1c], ecx
jmp case.0x477b81.194
mov ecx, edi
call fcn.00419850
test al, al
je 0x477b3c
movzx eax, word [edi + 0x80]
sub eax, 0xb3
mov ecx, 2
mov dword [esp + 0x3c], ecx
je 0x477afa
dec eax
je 0x477b6d
dec eax
jne case.0x477b81.194
mov dword [esp + 0x1c], 1
jmp case.0x477b81.194
mov ecx, edi
call fcn.00419890
test al, al
movzx eax, word [edi + 0x80]
je 0x477b77
sub eax, 0xda
mov dword [esp + 0x3c], 4
je 0x477b2f
dec eax
je 0x477b6d
dec eax
jne case.0x477b81.194
mov dword [esp + 0x1c], 2
jmp case.0x477b81.194
mov dword [esp + 0x1c], 0
jmp case.0x477b81.194
add eax, 0xffffff41
cmp eax, 0xd
ja case.0x477b81.194
jmp dword [eax*4 + 0x47808c]
mov dword [esp + 0x3c], 0x10
jmp case.0x477b81.194
mov dword [esp + 0x3c], 0x20
jmp case.0x477b81.194
mov dword [esp + 0x3c], 0x40
jmp case.0x477b81.194
mov dword [esp + 0x3c], 0x80
jmp case.0x477b81.194
mov dword [esp + 0x3c], 0x100
jmp case.0x477b81.194
mov dword [esp + 0x3c], 0x200
jmp case.0x477b81.194
mov dword [esp + 0x3c], 0x400
jmp case.0x477b81.194
mov dword [esp + 0x3c], 0x800
jmp case.0x477b81.194
mov dword [esp + 0x3c], 0x1000
mov ecx, edi
call fcn.00419830
test al, al
je 0x477bf3
mov dword [esp + 0x18], 0x4479c000
mov ecx, edi
call fcn.00419830
test al, al
jne 0x477c18
cmp word [esp + 0x3c], 0
je 0x477c9d
mov eax, dword [esi + 0x114]
test eax, eax
je 0x477c9d
mov ecx, dword [esi + 0x114]
movzx edx, word [esp + 0x1c]
push ecx
push ecx
mov eax, esp
mov dword [esp + 0x74], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x78], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x7c], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x80], esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [esp + 0x84], esp
push ecx
movzx ecx, word [esp + 0x58]
mov dword [eax], edx
mov eax, esp
mov dword [esp + 0x88], esp
push esi
mov dword [eax], ecx
push 0x59fe
lea ecx, [esp + 0x1f4]
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
test eax, eax
je 0x477c9d
mov dword [esp + 0x18], 0x4479c000
mov eax, dword [esi + 0xc4]
test eax, eax
jl 0x477cba
push eax
call fcn.005fc6e0
add esp, 4
mov dword [esi + 0xc4], 0xffffffff
fld dword [0x68b4fc]
fld dword [esi + 0xb8]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x477d90
fld dword [esi + 0xb8]
fsub dword [esp + 0x18]
fcom dword [0x68b4fc]
fnstsw ax
test ah, 0x41
je 0x477cf2
fstp st(0)
fld dword [0x68b4fc]
fst dword [esi + 0xb8]
fld dword [0x68b4fc]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x477d90
push 1
push esi
call fcn.0047fb10
add esp, 8
test al, al
jne 0x477d23
mov ecx, esi
call fcn.005f1090
mov ebx, dword [esi + 4]
or ebx, 0x40000000
mov dword [esi + 0x80], 5
mov dword [esi + 4], ebx
mov edx, dword [0x725b2c]
push 0
push 0
mov dword [esi + 0x84], edx
call fcn.005fc670
mov edi, eax
add esp, 8
test edi, edi
jl case.0x47646d.2
mov eax, dword [0x6bef38]
push 4
push eax
push edi
call fcn.005fcfc0
add esp, 0xc
lea ecx, [esp + 0xc0]
push ecx
mov ecx, esi
call fcn.005efd30
push eax
push edi
call fcn.005fcd80
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov dword [esi + 0x80], 4
mov edx, dword [0x725b2c]
mov ecx, ebx
mov dword [esi + 0x84], edx
call fcn.005ecd20
test al, al
je case.0x47646d.2
mov eax, dword [esi + 0x110]
test eax, eax
je 0x477e68
movaps xmm1, xmmword [eax + 0x40]
movaps xmm0, xmmword [esi + 0x40]
subps xmm0, xmm1
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0
movss xmm1, dword [eax]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
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 + 0x70], xmm4
fld dword [esp + 0x70]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x80], xmm1
fnstsw ax
test ah, 0x41
jne 0x477f00
movaps xmm2, xmm0
movaps xmm3, xmm0
shufps xmm2, xmm0, 0xaa
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x50], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x50], xmm0
movaps xmm0, xmmword [esp + 0x50]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
mulps xmm1, xmm2
movaps xmmword [esp + 0x70], xmm1
lea eax, [esp + 0x70]
jmp 0x477f07
lea ecx, [esp + 0xe0]
push ecx
mov ecx, ebx
call fcn.00401df0
movaps xmm0, xmmword [eax]
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0
movss xmm1, dword [edx]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm3, xmm0
movaps xmmword [eax], xmm1
movaps xmm2, xmm0
shufps xmm3, xmm0, 0x55
movaps xmm4, xmm0
shufps xmm2, xmm0, 0xaa
addss xmm4, xmm3
addss xmm4, xmm2
movaps xmmword [esp + 0x70], xmm4
fld dword [esp + 0x70]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x80], xmm1
fnstsw ax
test ah, 0x41
jne 0x477f00
movaps xmm2, xmm0
movaps xmm3, xmm0
shufps xmm2, xmm0, 0xaa
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x50], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x50], xmm0
movaps xmm0, xmmword [esp + 0x50]
jmp 0x477e50
lea eax, [esp + 0x80]
movaps xmm0, xmmword [eax]
xorps xmm1, xmm1
subps xmm1, xmm0
movaps xmmword [esi + 0x90], xmm1
fld dword [ebx + 0xa0]
fabs
fcom dword [0x68b50c]
fnstsw ax
test ah, 5
jnp 0x477f34
fstp st(0)
fld dword [0x68b50c]
fstp dword [esi + 0xb0]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, ebx
call fcn.00401e40
mov cl, byte [eax + 8]
test cl, cl
je 0x478010
mov ecx, ebx
call fcn.00401e40
cmp byte [eax + 8], 9
jne 0x477f73
mov ecx, ebx
call fcn.00401e40
cmp eax, esi
jne 0x478010
mov ecx, ebx
call fcn.00401e40
cmp byte [eax + 8], 1
jne case.0x47646d.2
mov ecx, ebx
call fcn.00401e40
cmp word [eax + 0xc], 0xffff
jne case.0x47646d.2
mov ecx, ebx
call fcn.005ecd20
test al, al
je case.0x47646d.2
lea eax, [esp + 0x100]
push eax
mov ecx, ebx
call fcn.00401df0
movaps xmm1, xmmword [eax]
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x18]
movss xmm0, dword [ecx]
unpcklps xmm0, xmm1
shufps xmm0, xmm1, 0xe1
movaps xmmword [eax], xmm0
fld dword [ebx + 0xa0]
fchs
lea edx, [esp + 0x18]
fstp dword [esp + 0x18]
movss xmm1, dword [edx]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0
xorps xmm1, xmm1
mulps xmm0, xmm2
shufps xmm1, xmm0, 0xe0
shufps xmm0, xmm1, 0x24
movaps xmm1, xmmword [esi + 0x40]
addps xmm1, xmm0
movaps xmmword [esi + 0x40], xmm1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, ebx
call fcn.005ecd20
test al, al
je case.0x47646d.2
lea eax, [esp + 0x120]
jmp 0x477fac
test esi, esi
je 0x478035
push 1
mov ecx, esi
call fcn.004cfcb0
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 8