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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
movss xmm5, dword [ebp + 8]
xorps xmm1, xmm1
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edi
movzx eax, word [edi + 0x64]
imul edx, eax, 0x5c
mov eax, dword [edi + 0x6c]
mov ax, word [edx + eax + 2]
cmp ax, word [edi + 0x66]
je 0x47924e
mov edi, edi
movzx ecx, ax
mov eax, dword [edi + 0x6c]
imul esi, ecx, 0x5c
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
movss xmm0, dword [eax + esi + 0x50]
addss xmm0, xmm5
comiss xmm0, dword [eax + esi + 0x54]
movss dword [eax + esi + 0x50], xmm0
jb 0x478faa
dec dword [edi + 0x60]
mov esi, dword [edi + 0x6c]
imul edi, ecx, 0x5c
mov dword [ebp - 8], esi
movzx ecx, word [edi + esi]
mov ax, word [edi + esi + 2]
imul edx, ecx, 0x5c
movzx ecx, ax
mov word [edx + esi + 2], cx
movzx ecx, word [edi + esi + 2]
imul esi, ecx, 0x5c
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x6c]
mov ecx, dword [ebp - 8]
movzx ecx, word [edi + ecx]
mov word [esi + edx], cx
mov esi, dword [ebp - 4]
movzx ecx, word [esi + 0x68]
imul edx, ecx, 0x5c
add edx, dword [esi + 0x6c]
mov esi, dword [ebp - 8]
movzx ecx, word [edx + 2]
mov word [edi + esi + 2], cx
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
mov word [edx + 2], cx
dec dword [edi + 0x78]
jmp 0x479244
movss xmm2, dword [eax + esi + 4]
movss xmm1, dword [eax + esi + 8]
subss xmm2, dword [edi + 0x48]
subss xmm1, dword [edi + 0x4c]
push ecx
movaps xmm0, xmm2
movss dword [ebp - 0x20], xmm2
mov eax, dword [ebp - 0x20]
movss dword [ebp - 0x1c], xmm1
mulss xmm1, xmm1
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mulss xmm0, xmm2
mov dword [ebp - 0x24], eax
addss xmm1, xmm0
movss dword [esp], xmm1
call fcn.004590b0
movss xmm4, dword [ebp - 0x20]
add esp, 4
movss xmm3, dword [ebp - 0x24]
movss xmm5, dword [ebp + 8]
fstp dword [ebp - 0xc]
mulss xmm4, dword [ebp - 0xc]
mulss xmm3, dword [ebp - 0xc]
movss dword [ebp - 0x28], xmm4
mov eax, dword [ebp - 0x28]
movss dword [ebp - 0x24], xmm3
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
movss xmm0, dword [ebp - 0x14]
xorps xmm0, xmmword [0x4ccb40]
movss xmm2, dword [eax + esi + 0x1c]
mulss xmm4, dword [eax + esi + 0x18]
movaps xmm1, xmm2
mulss xmm3, dword [eax + esi + 0x18]
mulss xmm2, dword [ebp - 0x18]
mulss xmm1, xmm0
movss xmm0, dword [eax + esi + 0x10]
addss xmm3, xmm2
addss xmm4, xmm1
mulss xmm3, xmm5
mulss xmm4, xmm5
addss xmm0, xmm3
addss xmm4, dword [eax + esi + 0xc]
movss dword [eax + esi + 0x10], xmm0
movss dword [eax + esi + 0xc], xmm4
movss xmm0, dword [eax + esi + 0x14]
mulss xmm0, xmm5
addss xmm0, dword [eax + esi + 0x10]
movss dword [eax + esi + 0x10], xmm0
movss xmm2, xmm0
movss xmm1, dword [eax + esi + 0xc]
movss xmm0, dword [eax + esi + 4]
mulss xmm2, xmm5
mulss xmm1, xmm5
addss xmm2, dword [eax + esi + 8]
addss xmm0, xmm1
movss dword [eax + esi + 8], xmm2
movss dword [eax + esi + 4], xmm0
movss xmm0, dword [eax + esi + 0x24]
mulss xmm0, xmm5
addss xmm0, dword [eax + esi + 0x20]
movss dword [eax + esi + 0x20], xmm0
movss xmm0, dword [eax + esi + 0x2c]
mulss xmm0, xmm5
addss xmm0, dword [eax + esi + 0x28]
movss dword [eax + esi + 0x28], xmm0
movss xmm1, dword [eax + esi + 0x40]
movss xmm0, dword [eax + esi + 0x30]
movss xmm2, dword [eax + esi + 0x44]
movss xmm3, dword [eax + esi + 0x48]
movss xmm4, dword [eax + esi + 0x4c]
mulss xmm1, xmm5
mulss xmm2, xmm5
addss xmm0, xmm1
mulss xmm3, xmm5
addss xmm2, dword [eax + esi + 0x34]
mulss xmm4, xmm5
movss dword [eax + esi + 0x30], xmm0
addss xmm4, dword [eax + esi + 0x3c]
addss xmm3, dword [eax + esi + 0x38]
movss dword [eax + esi + 0x34], xmm2
xorps xmm1, xmm1
movss dword [eax + esi + 0x3c], xmm4
movss dword [eax + esi + 0x38], xmm3
mov ecx, dword [edi]
movss xmm4, dword [ecx + 0x78]
comiss xmm4, xmm1
jbe 0x479188
movss xmm0, dword [eax + esi + 0x50]
comiss xmm4, xmm0
jbe 0x479188
movss xmm1, dword [ecx + 0xa4]
divss xmm0, xmm4
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm1, qword [edi + 8]
mulsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
jmp 0x479233
movss xmm3, dword [ecx + 0x7c]
comiss xmm3, xmm1
jbe 0x4791e2
movss xmm2, dword [eax + esi + 0x54]
movss xmm6, dword [eax + esi + 0x50]
movaps xmm0, xmm2
subss xmm0, xmm3
comiss xmm6, xmm0
jbe 0x4791dd
subss xmm2, xmm6
movss xmm1, dword [ecx + 0xb4]
cvtps2pd xmm1, xmm1
divss xmm2, xmm3
mulsd xmm1, qword [edi + 8]
cvtps2pd xmm0, xmm2
mulsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss xmm1, dword [eax + esi + 0x3c]
comiss xmm1, xmm0
ja 0x479233
movaps xmm0, xmm1
jmp 0x479233
comiss xmm3, xmm1
ja 0x4791e7
comiss xmm4, xmm1
jbe 0x47923c
movss xmm0, dword [eax + esi + 0x54]
movss xmm2, dword [eax + esi + 0x50]
subss xmm0, xmm4
subss xmm2, xmm4
movss xmm1, dword [0x4cc73c]
subss xmm0, xmm3
divss xmm2, xmm0
movss xmm0, dword [ecx + 0xb4]
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, dword [ecx + 0xa4]
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
mulsd xmm0, qword [edi + 8]
cvtpd2ps xmm0, xmm0
movss dword [eax + esi + 0x3c], xmm0
xorps xmm1, xmm1
mov eax, dword [edi + 0x6c]
mov ax, word [eax + esi + 2]
cmp ax, word [edi + 0x66]
jne 0x478f20
movss xmm2, dword [edi + 0x38]
ucomiss xmm2, dword [0x4ccfe0]
lahf
test ah, 0x44
jnp 0x47990f
comiss xmm2, xmm1
jb 0x479281
mov eax, dword [edi]
movss xmm0, dword [eax + 0x30]
subss xmm0, xmm2
comiss xmm0, xmm5
jbe 0x47927c
movaps xmm0, xmm5
cvtps2pd xmm0, xmm0
jmp 0x479288
xorps xmm0, xmm0
cvtss2sd xmm0, xmm5
mov eax, dword [edi]
movd xmm1, dword [eax + 0x2c]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movss xmm0, dword [edi + 0x3c]
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [ebp - 0xc], xmm0
call fcn.004af480
movss xmm1, dword [ebp - 0xc]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xc], 0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [edi + 0x3c], xmm1
test eax, eax
jle 0x47990f
jmp 0x4792e0
cmp dword [edi + 0x60], 0x5dc
jge 0x47990f
mov eax, dword [edi + 0x78]
cmp eax, dword [edi + 0x7c]
jae 0x47990f
movzx eax, word [edi + 0x68]
mov ecx, dword [edi + 0x6c]
imul edx, eax, 0x5c
movzx esi, word [edx + ecx + 2]
imul edi, esi, 0x5c
add edi, ecx
movzx eax, word [edi + 2]
mov word [edx + ecx + 2], ax
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 4]
movzx ecx, word [ecx + 0x66]
imul edx, ecx, 0x5c
add edx, dword [eax + 0x6c]
mov word [edi + 2], cx
movzx eax, word [edx]
mov word [edi], ax
movzx eax, word [edx]
imul ecx, eax, 0x5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
mov word [ecx + eax + 2], si
mov eax, dword [ebp - 4]
mov word [edx], si
lea esi, [edi + 4]
mov dword [ebp - 0x1c], esi
mov edi, eax
inc dword [eax + 0x78]
test esi, esi
je 0x47990f
mov dword [esi + 0x4c], 0
sub esp, 8
mov eax, dword [edi]
mov ecx, dword [0x4fec20]
movss xmm0, dword [eax + 0x38]
mov edx, dword [ecx]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x34]
movss dword [esp], xmm0
mov eax, dword [edx + 0x8c]
push ecx
call eax
fstp dword [esi + 0x50]
movss xmm0, dword [edi + 0x48]
sub esp, 8
subss xmm0, dword [edi + 0x40]
mov eax, dword [0x4fec20]
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
mov ecx, dword [eax]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [edi + 0x4c]
subss xmm0, dword [edi + 0x44]
push eax
mov eax, dword [ecx + 0x8c]
movss dword [ebp - 0x14], xmm0
call eax
movss xmm2, dword [ebp - 0x10]
sub esp, 8
movss xmm1, dword [ebp - 0x14]
movss xmm0, dword [edi + 0x44]
fstp dword [ebp - 8]
mulss xmm2, dword [ebp - 8]
mulss xmm1, dword [ebp - 8]
addss xmm2, dword [edi + 0x40]
addss xmm0, xmm1
movss dword [ebp - 0x30], xmm2
mov eax, dword [ebp - 0x30]
mov dword [esi], eax
movss dword [ebp - 0x2c], xmm0
mov eax, dword [ebp - 0x2c]
mov dword [esi + 4], eax
mov eax, dword [edi]
movss xmm0, dword [eax + 0x68]
mov eax, dword [0x4fec20]
movss dword [esp + 4], xmm0
xorps xmm0, xmmword [0x4ccb40]
movss dword [esp], xmm0
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x8c]
call eax
fadd dword [esi]
sub esp, 8
fstp dword [esi]
mov eax, dword [edi]
movss xmm0, dword [eax + 0x6c]
mov eax, dword [0x4fec20]
movss dword [esp + 4], xmm0
xorps xmm0, xmmword [0x4ccb40]
movss dword [esp], xmm0
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x8c]
call eax
fadd dword [esi + 4]
sub esp, 8
fstp dword [esi + 4]
mov ecx, dword [0x4fec20]
mov esi, dword [edi]
mov edx, dword [ecx]
movss xmm0, dword [esi + 0x40]
movss dword [esp + 4], xmm0
mov dword [esp], 0
mov eax, dword [edx + 0x8c]
push ecx
call eax
movss xmm0, dword [esi + 0x3c]
subss xmm0, dword [0x4cc8dc]
movss dword [ebp - 0x14], xmm0
fadd dword [ebp - 0x14]
cmp dword [esi + 0x44], 0
movss xmm0, dword [esi + 0x40]
mulss xmm0, dword [0x4ccfd4]
movss dword [ebp - 0x14], xmm0
fsub dword [ebp - 0x14]
fstp dword [ebp - 8]
je 0x4794fa
movss xmm0, dword [edi + 0x40]
lea ecx, [ebp - 0x38]
subss xmm0, dword [edi + 0x48]
push 0
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [edi + 0x44]
subss xmm0, dword [edi + 0x4c]
movss dword [ebp - 0x34], xmm0
call fcn.00458f80
fadd dword [0x4cc8dc]
fadd dword [ebp - 8]
fstp dword [ebp - 8]
movss xmm0, dword [ebp - 8]
cvtps2pd xmm0, xmm0
call fcn.004afa30
mov esi, dword [ebp - 0x1c]
cvtsd2ss xmm0, xmm0
movss dword [esi + 8], xmm0
movss xmm0, dword [ebp - 8]
cvtps2pd xmm0, xmm0
call fcn.004aeba0
cvtsd2ss xmm0, xmm0
sub esp, 8
movss dword [esi + 0xc], xmm0
mov eax, dword [edi]
mov ecx, dword [0x4fec20]
movss xmm0, dword [eax + 0x74]
mov edx, dword [ecx]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x70]
movss dword [esp], xmm0
mov eax, dword [edx + 0x8c]
push ecx
call eax
movss xmm0, dword [esi + 8]
sub esp, 8
fstp dword [ebp - 0x1c]
mulss xmm0, dword [ebp - 0x1c]
addss xmm0, dword [esi]
movss dword [esi], xmm0
movss xmm0, dword [esi + 0xc]
mulss xmm0, dword [ebp - 0x1c]
addss xmm0, dword [esi + 4]
movss dword [esi + 4], xmm0
mov eax, dword [edi]
mov ecx, dword [0x4fec20]
movss xmm0, dword [eax + 0x4c]
mov edx, dword [ecx]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x48]
movss dword [esp], xmm0
mov eax, dword [edx + 0x8c]
push ecx
call eax
movss xmm0, dword [esi + 8]
sub esp, 8
fstp dword [ebp - 0x1c]
movss xmm1, dword [ebp - 0x1c]
mulss xmm0, xmm1
mulss xmm1, dword [esi + 0xc]
movss dword [esi + 8], xmm0
movss dword [esi + 0xc], xmm1
mov eax, dword [edi]
mov ecx, dword [0x4fec20]
movss xmm0, dword [eax + 0x54]
mov edx, dword [ecx]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x50]
movss dword [esp], xmm0
mov eax, dword [edx + 0x8c]
push ecx
call eax
fstp dword [esi + 0x10]
mov eax, dword [edi]
sub esp, 8
mov ecx, dword [0x4fec20]
movss xmm0, dword [eax + 0x5c]
mov edx, dword [ecx]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x58]
movss dword [esp], xmm0
mov eax, dword [edx + 0x8c]
push ecx
call eax
fstp dword [esi + 0x14]
mov eax, dword [edi]
sub esp, 8
mov ecx, dword [0x4fec20]
movss xmm0, dword [eax + 0x64]
mov edx, dword [ecx]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x60]
movss dword [esp], xmm0
mov eax, dword [edx + 0x8c]
push ecx
call eax
fstp dword [esi + 0x18]
mov eax, dword [edi]
sub esp, 8
mov ecx, dword [0x4fec20]
movss xmm1, dword [eax + 0x80]
movss xmm0, dword [eax + 0x84]
mov edx, dword [ecx]
subss xmm0, xmm1
mulss xmm0, dword [eax + 0x88]
mov eax, dword [edx + 0x8c]
addss xmm0, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push ecx
call eax
fstp dword [ebp - 0x1c]
movss xmm1, dword [ebp - 0x1c]
sub esp, 8
movss dword [esi + 0x24], xmm1
mov eax, dword [edi]
movss xmm0, dword [eax + 0x84]
subss xmm0, xmm1
divss xmm0, dword [esi + 0x50]
movss dword [esi + 0x28], xmm0
mov eax, dword [edi]
mov ecx, dword [0x4fec20]
movss xmm1, dword [eax + 0x8c]
movss xmm0, dword [eax + 0x90]
mov edx, dword [ecx]
subss xmm0, xmm1
mulss xmm0, dword [eax + 0x94]
mov eax, dword [edx + 0x8c]
addss xmm0, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push ecx
call eax
fstp dword [esi + 0x1c]
mov eax, dword [edi]
cmp dword [eax + 0xc4], 0
je 0x47972e
mov eax, dword [0x4fec20]
sub esp, 8
mov ecx, dword [eax]
mov dword [esp + 4], 0x40490fdb
mov dword [esp], 0xc0490fdb
push eax
mov eax, dword [ecx + 0x8c]
call eax
fstp dword [esi + 0x54]
jmp 0x479735
mov dword [esi + 0x54], 0
mov eax, dword [edi]
sub esp, 8
movss xmm0, dword [eax + 0x90]
subss xmm0, dword [esi + 0x1c]
divss xmm0, dword [esi + 0x50]
movss dword [esi + 0x20], xmm0
mov eax, dword [edi]
mov ecx, dword [0x4fec20]
movss xmm1, dword [eax + 0x98]
movss xmm0, dword [eax + 0xa8]
mov edx, dword [ecx]
subss xmm0, xmm1
mulss xmm0, dword [eax + 0xb8]
mov eax, dword [edx + 0x8c]
addss xmm0, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push ecx
call eax
fstp dword [esi + 0x2c]
mov eax, dword [edi]
sub esp, 8
mov ecx, dword [0x4fec20]
movss xmm1, dword [eax + 0x9c]
movss xmm0, dword [eax + 0xac]
mov edx, dword [ecx]
subss xmm0, xmm1
mulss xmm0, dword [eax + 0xb8]
mov eax, dword [edx + 0x8c]
addss xmm0, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push ecx
call eax
fstp dword [esi + 0x30]
mov eax, dword [edi]
sub esp, 8
mov ecx, dword [0x4fec20]
movss xmm1, dword [eax + 0xa0]
movss xmm0, dword [eax + 0xb0]
mov edx, dword [ecx]
subss xmm0, xmm1
mulss xmm0, dword [eax + 0xb8]
mov eax, dword [edx + 0x8c]
addss xmm0, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push ecx
call eax
fstp dword [esi + 0x34]
mov eax, dword [edi]
sub esp, 8
mov ecx, dword [0x4fec20]
movss xmm1, dword [eax + 0xa4]
movss xmm0, dword [eax + 0xb4]
mov edx, dword [ecx]
subss xmm0, xmm1
mulss xmm0, dword [eax + 0xbc]
mov eax, dword [edx + 0x8c]
addss xmm0, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push ecx
call eax
fmul qword [edi + 8]
xorps xmm1, xmm1
fstp dword [esi + 0x38]
mov eax, dword [edi]
movss xmm0, dword [eax + 0x7c]
comiss xmm0, xmm1
ja 0x47987a
movss xmm0, dword [eax + 0x78]
comiss xmm0, xmm1
jbe 0x479881
mov dword [esi + 0x38], 0
mov eax, dword [edi]
movss xmm2, dword [esi + 0x50]
movss xmm0, dword [eax + 0xa8]
subss xmm0, dword [esi + 0x2c]
divss xmm0, xmm2
movss dword [esi + 0x3c], xmm0
mov eax, dword [edi]
movss xmm0, dword [eax + 0xac]
subss xmm0, dword [esi + 0x30]
divss xmm0, xmm2
movss dword [esi + 0x40], xmm0
mov eax, dword [edi]
movss xmm0, dword [eax + 0xb0]
subss xmm0, dword [esi + 0x34]
divss xmm0, xmm2
movss dword [esi + 0x44], xmm0
mov eax, dword [edi]
movss xmm0, dword [esi + 0x38]
cvtps2pd xmm0, xmm0
movss xmm1, dword [eax + 0xb4]
cvtps2pd xmm1, xmm1
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
mulsd xmm1, qword [edi + 8]
subsd xmm1, xmm0
cvtps2pd xmm0, xmm2
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esi + 0x48], xmm0
inc dword [edi + 0x60]
cmp eax, dword [ebp - 0x24]
jl 0x4792e0
mov eax, dword [edi + 0x48]
xorps xmm0, xmm0
movss xmm1, dword [edi + 0x38]
comiss xmm1, xmm0
mov dword [edi + 0x40], eax
mov eax, dword [edi + 0x4c]
mov dword [edi + 0x44], eax
jb 0x479941
addss xmm1, dword [ebp + 8]
mov eax, dword [edi]
movss dword [edi + 0x38], xmm1
comiss xmm1, dword [eax + 0x30]
jb 0x479941
mov dword [edi + 0x38], 0xc0000000
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4