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

Disassembly:
sub esp, 0x54
mov ecx, dword [esp + 0x64]
push ebx
mov ebx, dword [esp + 0x74]
push ebp
push esi
mov esi, dword [esp + 0x64]
mov eax, dword [esi + 4]
fld dword [eax + ecx*4 + 0xc]
mov ebp, dword [esi]
mov eax, dword [esp + 0x74]
fstp dword [esp + 0x34]
fld dword [esi + 0x30]
mov ecx, dword [esp + 0x6c]
fstp dword [esp + 0x64]
xor edx, edx
cmp ebp, 4
fld dword [esp + 0x64]
fld qword [0x530388]
push edi
fld qword [0x530380]
mov edi, dword [esp + 0x7c]
fld1
mov dword [esp + 0x28], ebp
fldz
mov dword [esp + 0x1c], edx
jl 0x407453
mov ebp, dword [esp + 0x6c]
fld dword [esp + 0x38]
sub ebp, ecx
fstp qword [esp + 0x5c]
mov dword [esp + 0x3c], ebp
mov ebp, eax
sub ebp, ecx
mov dword [esp + 0x20], ebp
mov ebp, ebx
sub ebp, ecx
mov dword [esp + 0x24], ebp
mov ebp, edi
sub ebp, ecx
mov dword [esp + 0x40], ebp
mov ebp, 4
sub ebp, ecx
mov dword [esp + 0x44], ebp
mov ebp, 8
sub ebp, ecx
mov dword [esp + 0x58], ebp
mov ebp, 0xfffffffc
sub ebp, ecx
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x6c]
sub ebp, eax
mov dword [esp + 0x48], ebp
lea edx, [edi + 0xc]
mov ebp, ebx
sub ebp, eax
mov dword [esp + 0x4c], ebp
mov ebp, edi
sub ebp, eax
mov dword [esp + 0x14], edx
lea edx, [eax + 8]
mov eax, ebx
sub eax, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x6c]
add edi, 0xfffffffc
sub eax, ebx
shr edi, 2
add edi, 1
mov dword [esp + 0x30], eax
lea eax, [edi*4]
mov dword [esp + 0x10], edx
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x18], ebx
lea edx, [ecx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
mov ebp, dword [eax + ebp*4]
mov eax, dword [esp + 0x2c]
add eax, edx
fld dword [eax + ebp]
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x18]
fadd dword [eax + ebp]
mov ebp, dword [esi + 4]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [ebp + 0x6c]
fcompp
fnstsw ax
test ah, 5
jp 0x40713a
fld dword [ebp + 0x6c]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [edx - 4]
fadd qword [esp + 0x5c]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x407152
fstp st(0)
fld st(0)
mov ebp, dword [esp + 0x74]
cmp ebp, 1
mov eax, dword [esp + 0x10]
fstp dword [eax - 8]
jne 0x4071c8
mov eax, dword [esp + 0x18]
fsub dword [eax]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fcom st(4)
fnstsw ax
fsub st(4)
test ah, 0x41
jne 0x4071aa
fmul st(3)
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fcom dword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x4071b8
fld dword [0x530378]
mov eax, dword [esp + 0x14]
fstp dword [esp + 0x68]
fld dword [eax - 0xc]
fmul dword [esp + 0x68]
fstp dword [eax - 0xc]
jmp 0x4071ca
fmul qword [str.a2U0]
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
mov eax, dword [esp + 0x14]
fld dword [eax - 0xc]
fmul dword [esp + 0x68]
fstp dword [eax - 0xc]
jmp 0x4071ca
fstp st(0)
mov eax, dword [esi + 0xc]
mov ebp, dword [eax + ebp*4]
mov eax, dword [esp + 0x2c]
add eax, edx
fld dword [eax + ebp + 4]
mov eax, dword [esp + 0x3c]
fadd dword [eax + edx]
mov ebp, dword [esi + 4]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [ebp + 0x6c]
fcompp
fnstsw ax
test ah, 5
jp 0x4071ff
fld dword [ebp + 0x6c]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [edx]
fadd qword [esp + 0x5c]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x407216
fstp st(0)
fld st(0)
mov ebp, dword [esp + 0x74]
cmp ebp, 1
mov eax, dword [esp + 0x20]
fstp dword [eax + edx]
jne 0x40728d
mov eax, dword [esp + 0x24]
fsub dword [eax + edx]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fcom st(4)
fnstsw ax
fsub st(4)
test ah, 0x41
jne 0x40726f
fmul st(3)
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fcom dword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x40727d
fld dword [0x530378]
mov eax, dword [esp + 0x40]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fmul dword [eax + edx]
fstp dword [eax + edx]
jmp 0x40728f
fmul qword [str.a2U0]
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
mov eax, dword [esp + 0x40]
fld dword [esp + 0x68]
fmul dword [eax + edx]
fstp dword [eax + edx]
jmp 0x40728f
fstp st(0)
mov eax, dword [esi + 0xc]
mov eax, dword [eax + ebp*4]
add eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x10]
fld dword [eax + edx]
mov eax, dword [esp + 0x48]
fadd dword [eax + ebp]
mov ebp, dword [esi + 4]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [ebp + 0x6c]
fcompp
fnstsw ax
test ah, 5
jp 0x4072c5
fld dword [ebp + 0x6c]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [edx + 4]
fadd qword [esp + 0x5c]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4072dd
fstp st(0)
fld st(0)
cmp dword [esp + 0x74], 1
mov ebp, dword [esp + 0x10]
fstp dword [ebp]
jne 0x407352
mov eax, dword [esp + 0x4c]
fsub dword [eax + ebp]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fcom st(4)
fnstsw ax
fsub st(4)
test ah, 0x41
jne 0x407334
fmul st(3)
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fcom dword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x407342
fld dword [0x530378]
mov eax, dword [esp + 0x50]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fmul dword [eax + ebp]
fstp dword [eax + ebp]
jmp 0x407354
fmul qword [str.a2U0]
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
mov eax, dword [esp + 0x50]
fld dword [esp + 0x68]
fmul dword [eax + ebp]
fstp dword [eax + ebp]
jmp 0x407354
fstp st(0)
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
add eax, ebp
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0xc]
mov eax, dword [eax + ebp*4]
add eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x34]
fld dword [eax + edx]
mov eax, dword [esp + 0x30]
fadd dword [eax + ebp]
mov ebp, dword [esi + 4]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [ebp + 0x6c]
fcompp
fnstsw ax
test ah, 5
jp 0x40739c
fld dword [ebp + 0x6c]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [edx + 8]
fadd qword [esp + 0x5c]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4073b4
fstp st(0)
fld st(0)
mov ebp, dword [esp + 0x74]
cmp ebp, 1
mov eax, dword [esp + 0x10]
fstp dword [eax + 4]
jne 0x407426
mov eax, dword [esp + 0x34]
fsub dword [eax]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fcom st(4)
fnstsw ax
fsub st(4)
test ah, 0x41
jne 0x40740a
fmul st(3)
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fcom dword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x407418
fld dword [0x530378]
mov eax, dword [esp + 0x14]
fstp dword [esp + 0x68]
fld dword [eax]
fmul dword [esp + 0x68]
fstp dword [eax]
jmp 0x407428
fmul qword [str.a2U0]
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
mov eax, dword [esp + 0x14]
fld dword [eax]
fmul dword [esp + 0x68]
fstp dword [eax]
jmp 0x407428
fstp st(0)
add dword [esp + 0x18], 0x10
add dword [esp + 0x10], 0x10
add dword [esp + 0x14], 0x10
add edx, 0x10
sub edi, 1
jne 0x407102
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
cmp edx, ebp
fstp st(0)
jge 0x407554
mov ebp, dword [esp + 0x6c]
fld dword [esp + 0x38]
sub ebx, ecx
mov dword [esp + 0x24], ebx
sub eax, ecx
mov ebx, edi
mov edi, dword [esp + 0x1c]
sub ebp, ecx
lea edx, [ecx + edx*4]
mov dword [esp + 0x20], eax
sub ebx, ecx
mov eax, dword [esp + 0x74]
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx + eax*4]
fld dword [ecx + edi*4]
mov ecx, dword [esi + 4]
fadd dword [edx + ebp]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [ecx + 0x6c]
fcompp
fnstsw ax
test ah, 5
jp 0x4074ac
fld dword [ecx + 0x6c]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [edx]
fadd st(2)
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4074c1
fstp st(0)
fld st(0)
cmp dword [esp + 0x74], 1
mov eax, dword [esp + 0x20]
fstp dword [eax + edx]
jne 0x407530
mov ecx, dword [esp + 0x24]
fsub dword [ecx + edx]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fcom st(4)
fnstsw ax
fsub st(4)
test ah, 0x41
jne 0x407516
fmul st(3)
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fldz
fcomp dword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x407524
fld dword [0x530378]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fmul dword [ebx + edx]
fstp dword [ebx + edx]
jmp 0x407532
fmul qword [str.a2U0]
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fmul dword [ebx + edx]
fstp dword [ebx + edx]
jmp 0x407532
fstp st(0)
add edi, 1
add edx, 4
cmp edi, dword [esp + 0x28]
jl 0x40747e
fstp st(3)
pop edi
fstp st(3)
pop esi
fstp st(2)
pop ebp
fstp st(0)
pop ebx
fstp st(0)
add esp, 0x54
ret
fstp st(2)
pop edi
fstp st(2)
pop esi
fstp st(0)
pop ebp
fstp st(0)
pop ebx
add esp, 0x54
ret