Function at 0x41ab90
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 [0x5204a8]
push edi
fld qword [0x5204a0]
mov edi, dword [esp + 0x7c]
fld1
mov dword [esp + 0x28], ebp
fldz
mov dword [esp + 0x1c], edx
jl 0x41afe3
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 0x41acca
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 0x41ace2
fstp st(0)
fld st(0)
mov ebp, dword [esp + 0x74]
cmp ebp, 1
mov eax, dword [esp + 0x10]
fstp dword [eax - 8]
jne 0x41ad58
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 0x41ad3a
fmul st(3)
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fcom dword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x41ad48
fld dword [0x520498]
mov eax, dword [esp + 0x14]
fstp dword [esp + 0x68]
fld dword [eax - 0xc]
fmul dword [esp + 0x68]
fstp dword [eax - 0xc]
jmp 0x41ad5a
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 0x41ad5a
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 0x41ad8f
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 0x41ada6
fstp st(0)
fld st(0)
mov ebp, dword [esp + 0x74]
cmp ebp, 1
mov eax, dword [esp + 0x20]
fstp dword [eax + edx]
jne 0x41ae1d
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 0x41adff
fmul st(3)
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fcom dword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x41ae0d
fld dword [0x520498]
mov eax, dword [esp + 0x40]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fmul dword [eax + edx]
fstp dword [eax + edx]
jmp 0x41ae1f
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 0x41ae1f
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 0x41ae55
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 0x41ae6d
fstp st(0)
fld st(0)
cmp dword [esp + 0x74], 1
mov ebp, dword [esp + 0x10]
fstp dword [ebp]
jne 0x41aee2
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 0x41aec4
fmul st(3)
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fcom dword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x41aed2
fld dword [0x520498]
mov eax, dword [esp + 0x50]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fmul dword [eax + ebp]
fstp dword [eax + ebp]
jmp 0x41aee4
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 0x41aee4
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 0x41af2c
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 0x41af44
fstp st(0)
fld st(0)
mov ebp, dword [esp + 0x74]
cmp ebp, 1
mov eax, dword [esp + 0x10]
fstp dword [eax + 4]
jne 0x41afb6
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 0x41af9a
fmul st(3)
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fcom dword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x41afa8
fld dword [0x520498]
mov eax, dword [esp + 0x14]
fstp dword [esp + 0x68]
fld dword [eax]
fmul dword [esp + 0x68]
fstp dword [eax]
jmp 0x41afb8
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 0x41afb8
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 0x41ac92
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 0x41b0e4
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 0x41b03c
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 0x41b051
fstp st(0)
fld st(0)
cmp dword [esp + 0x74], 1
mov eax, dword [esp + 0x20]
fstp dword [eax + edx]
jne 0x41b0c0
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 0x41b0a6
fmul st(3)
fmul st(5)
fsubr st(2)
fstp dword [esp + 0x68]
fldz
fcomp dword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x41b0b4
fld dword [0x520498]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fmul dword [ebx + edx]
fstp dword [ebx + edx]
jmp 0x41b0c2
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 0x41b0c2
fstp st(0)
add edi, 1
add edx, 4
cmp edi, dword [esp + 0x28]
jl 0x41b00e
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