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

Disassembly:
push ecx
push ebx
push esi
push edi
mov edi, ecx
mov dl, 1
mov dword [esp + 0xc], edi
cmp byte [edi + 0x14], dl
jne 0x418168
fld dword [esp + 0x24]
fcomp dword [0x47f344]
fnstsw ax
and eax, 0x4100
je 0x418354
mov esi, dword [edi + 4]
xor eax, eax
test esi, esi
jle 0x418354
mov ecx, dword [edi + 0x24]
cmp byte [ecx + eax], 0
je 0x41818a
inc eax
cmp eax, esi
jl 0x418178
pop edi
pop esi
pop ebx
pop ecx
ret 0x28
push ebp
mov ebp, eax
mov ebx, dword [esp + 0x30]
mov byte [ecx + eax], dl
mov esi, dword [edi + 0x20]
shl ebp, 5
add ebp, eax
mov eax, dword [esp + 0x28]
shl ebp, 2
add esi, ebp
cmp ebx, 2
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x48], 0
je 0x4181c8
cmp ebx, 4
je 0x4181c8
fld dword [eax + 8]
fstp dword [esi + 0x4c]
mov byte [esi + 0x50], dl
jmp 0x4181cc
mov byte [esi + 0x50], 0
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fstp dword [esi + 0x54]
fstp dword [esi + 0x58]
fstp dword [esi + 0x5c]
call fcn.00464f9a
cdq
mov ecx, 0x64
idiv ecx
mov eax, dword [esp + 0x1c]
mov ecx, edi
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
fmul dword [0x47f3b8]
fld st(0)
fmul dword [eax + 4]
fld st(1)
fmul dword [eax + 8]
fstp dword [esp + 0x28]
fxch st(1)
fmul dword [eax]
mov eax, dword [esp + 0x20]
fadd dword [esi + 0x54]
fstp dword [esi + 0x54]
fadd dword [esi + 0x58]
fstp dword [esi + 0x58]
fld dword [esp + 0x28]
fadd dword [esi + 0x5c]
fstp dword [esi + 0x5c]
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fstp dword [esi + 4]
fstp dword [esi + 8]
fstp dword [esi + 0xc]
call fcn.00418390
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
fmul dword [edi]
fld dword [edi]
fmul dword [0x47f360]
fsubr st(1)
fstp dword [esp + 0x28]
fstp st(0)
call fcn.00418390
fmul dword [edi + 4]
fld dword [edi + 4]
fmul dword [0x47f360]
mov ecx, dword [esp + 0x10]
fsubr st(1)
fstp dword [esp + 0x30]
fstp st(0)
call fcn.00418390
fmul dword [edi + 8]
fld dword [edi + 8]
fmul dword [0x47f360]
mov edx, dword [esp + 0x34]
cmp ebx, 0xa
mov dword [esi + 0x64], edx
mov dword [esi + 0x74], ebx
fsubp st(1)
fld dword [esp + 0x28]
fadd dword [esi + 4]
fstp dword [esi + 4]
fld dword [esp + 0x30]
fadd dword [esi + 8]
fstp dword [esi + 8]
fadd dword [esi + 0xc]
fstp dword [esi + 0xc]
ja case.0x4182b3.3
jmp dword [ebx*4 + 0x41835c]
xor eax, eax
mov dword [esi + 0x2c], 0xc11cf5c3
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
jmp 0x418338
xor eax, eax
mov dword [esi + 0x2c], 0xc08ccccd
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
jmp 0x418338
xor eax, eax
mov dword [esi + 0x2c], 0x3f800000
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
jmp 0x418338
xor eax, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
jmp 0x418338
xor eax, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
jmp 0x418328
xor eax, eax
mov dword [esi + 0x2c], 0xc1eb70a4
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
jmp 0x418338
xor eax, eax
cmp ebx, 7
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
jne 0x418338
call fcn.00464f9a
cdq
mov ecx, 3
idiv ecx
add dword [esi + 0x74], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
push 0xbf800000
mov eax, dword [edx + 0x20]
mov dword [eax + ebp + 0x78], ecx
mov ecx, esi
call fcn.00416a80
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret 0x28