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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 0x18]
push ebx
push esi
mov esi, dword [ebp + 0x1c]
fld dword [eax + 0xc]
fld dword [eax + 0x1c]
fstp dword [ebp - 0x18]
fld dword [esi + 0xc]
fstp dword [ebp - 0x10]
fld dword [esi + 0x1c]
fstp dword [ebp - 0xc]
fld dword [esi + 0x2c]
fstp dword [ebp - 8]
push edi
mov ebx, ecx
fsub dword [ebp - 0x10]
fld dword [ebp - 0x18]
fsub dword [ebp - 0xc]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fstp dword [ebp + 0x18]
fstp st(0)
fstp st(0)
fld dword [ebp + 0x18]
fsqrt
fstp dword [ebp + 0x1c]
fld dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
fst dword [ebp - 4]
fadd dword [ebp + 8]
lea eax, [ebx + 0x1c]
lea ecx, [ebp - 0x10]
push eax
push ecx
push edx
lea eax, [ebx + 0x80]
fstp dword [ebp + 0x18]
push edi
push eax
call fcn.006628b0
mov ecx, dword [ebx + 0xc8]
add esp, 0x14
fstp dword [ebp + 0x1c]
and ecx, 8
cmp cl, 8
jne 0x662a36
mov eax, 0xffff
cmp word [edi + 0xc], ax
je 0x662a2b
cmp word [edi + 0xe], ax
jne 0x662a36
fld dword [ebp - 4]
fadd st(0), st(0)
fadd dword [ebp + 0x18]
fstp dword [ebp + 0x18]
mov edx, dword [edi + 0x2c]
test edx, edx
jle 0x662b56
mov eax, dword [ebx + 0x54]
add ebx, 0x54
mov ecx, dword [eax + edx*4]
test ecx, ecx
je 0x662a53
add ecx, 0xfffffff8
jmp 0x662a55
xor ecx, ecx
fld dword [ecx + 0x20]
fcomp dword [ebp + 0x18]
fnstsw ax
test ah, 0x41
jne 0x662e64
mov eax, dword [ebp + 0x14]
mov edi, edx
fld dword [ebp + 0x18]
fadd dword [ecx + 0x1c]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp + 0x18]
mov dword [ecx + 0x20], eax
fstp dword [ecx + 0x18]
mov eax, dword [esi]
mov dword [ecx + 0x54], eax
mov eax, dword [esi + 4]
mov dword [ecx + 0x58], eax
mov eax, dword [esi + 8]
mov dword [ecx + 0x5c], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x60], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x64], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x68], eax
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x6c], eax
mov eax, dword [esi + 0x1c]
mov dword [ecx + 0x70], eax
mov eax, dword [esi + 0x20]
mov dword [ecx + 0x74], eax
mov eax, dword [esi + 0x24]
fld dword [ebp + 0x1c]
mov dword [ecx + 0x78], eax
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x7c], eax
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0x80], eax
mov eax, dword [ebp + 0x1c]
fadd dword [ecx + 0x20]
mov dword [ecx + 0x1c], eax
mov esi, edx
shr edi, 1
fstp dword [ecx + 0x18]
mov eax, dword [ebx]
mov ecx, dword [eax + edx*4]
mov dword [ebp + 0x14], ecx
push ecx
mov ecx, dword [eax + edi*4]
push ecx
mov ecx, ebx
call fcn.00664b70
test al, al
je 0x662b3a
lea ecx, [edi*4]
jmp 0x662b04
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebx]
push esi
mov edx, dword [ecx + eax]
mov dword [eax + esi*4], edx
mov eax, dword [ebx]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx]
call dword [edx + 4]
mov edx, dword [ebx]
mov ecx, dword [ebp + 0x14]
mov esi, edi
push ecx
shr edi, 1
mov ecx, ebx
lea eax, [edi*4]
mov dword [ebp + 0xc], eax
mov eax, dword [eax + edx]
push eax
call fcn.00664b70
test al, al
jne 0x662b01
mov ecx, dword [ebx]
mov edx, dword [ebp + 0x14]
push esi
mov dword [ecx + esi*4], edx
mov eax, dword [ebx]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx]
call dword [edx + 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x662c69
fld dword [ecx + 0x20]
fcomp dword [ebp + 0x18]
fnstsw ax
test ah, 0x41
jne 0x662e64
mov edx, dword [ebp + 0x14]
xor eax, eax
fld dword [ebp + 0x18]
mov dword [edi + 8], eax
mov dword [ecx + 0x10], edx
mov edx, dword [ebp + 0xc]
cmp ecx, eax
fadd dword [ecx + 0x1c]
mov dword [ecx + 0x14], edx
mov edx, dword [ebp + 0x18]
mov dword [ecx + 0x20], edx
fstp dword [ecx + 0x18]
mov edx, dword [esi]
mov dword [ecx + 0x54], edx
mov edx, dword [esi + 4]
mov dword [ecx + 0x58], edx
mov edx, dword [esi + 8]
mov dword [ecx + 0x5c], edx
mov edx, dword [esi + 0xc]
mov dword [ecx + 0x60], edx
mov edx, dword [esi + 0x10]
mov dword [ecx + 0x64], edx
mov edx, dword [esi + 0x14]
mov dword [ecx + 0x68], edx
mov edx, dword [esi + 0x18]
mov dword [ecx + 0x6c], edx
mov edx, dword [esi + 0x1c]
mov dword [ecx + 0x70], edx
mov edx, dword [esi + 0x20]
mov dword [ecx + 0x74], edx
mov edx, dword [esi + 0x24]
fld dword [ebp + 0x1c]
mov dword [ecx + 0x78], edx
mov edx, dword [esi + 0x28]
mov dword [ecx + 0x7c], edx
mov edx, dword [esi + 0x2c]
mov dword [ecx + 0x80], edx
mov edx, dword [ebp + 0x1c]
fadd dword [ecx + 0x20]
mov dword [ecx + 0x1c], edx
fstp dword [ecx + 0x18]
je 0x662bf7
add ecx, 8
mov dword [ebp + 0x14], ecx
jmp 0x662bfa
mov dword [ebp + 0x14], eax
mov eax, dword [ebx + 0x5c]
inc eax
mov dword [ebx + 0x5c], eax
mov esi, eax
mov eax, dword [ebx + 0x54]
mov edi, esi
shr edi, 1
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x662c4b
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x662c32
mov edx, dword [ecx]
call dword [edx + 8]
mov ecx, dword [ebp + 0x14]
fstp dword [ebp + 0xc]
mov eax, dword [ecx]
call dword [eax + 8]
fcomp dword [ebp + 0xc]
fnstsw ax
test ah, 1
je 0x662c4b
mov eax, dword [ebx + 0x54]
push esi
mov ecx, dword [eax + edi*4]
mov dword [eax + esi*4], ecx
mov edx, dword [ebx + 0x54]
mov ecx, dword [edx + esi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, edi
jmp 0x662c03
mov ecx, dword [ebx + 0x54]
mov edx, dword [ebp + 0x14]
push esi
mov dword [ecx + esi*4], edx
mov eax, dword [ebx + 0x54]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx]
call dword [edx + 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, 0x855e00
call fcn.00665420
mov edi, eax
xor edx, edx
cmp edi, edx
je 0x662d2c
push 0x430560
lea eax, [edi + 0x24]
push 3
mov dword [edi + 4], 1
mov dword [edi], 0x7cec1c
push 0x10
mov dword [edi + 8], 0x7e2124
push eax
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], edx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], edx
mov dword [edi + 0x20], edx
call fcn.00401000
mov ecx, 0x3f800000
xor eax, eax
mov dword [edi + 0x24], ecx
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], eax
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], eax
mov dword [edi + 0x68], ecx
mov dword [edi + 0x6c], eax
mov dword [edi + 0x70], eax
mov dword [edi + 0x74], eax
mov dword [edi + 0x78], eax
mov dword [edi + 0x7c], ecx
mov dword [edi + 0x80], eax
mov byte [edi + 0x84], al
mov byte [edi + 0x85], al
mov dword [edi + 0x88], eax
mov dword [edi], 0x7e211c
mov dword [edi + 8], 0x7e2110
xor edx, edx
jmp 0x662d2e
xor edi, edi
fld dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
fadd dword [edi + 0x1c]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x14], ecx
mov ecx, dword [ebp + 0x18]
mov dword [edi + 0xc], eax
mov dword [edi + 0x20], ecx
fstp dword [edi + 0x18]
mov eax, dword [esi]
cmp edi, edx
mov dword [edi + 0x54], eax
mov ecx, dword [esi + 4]
mov dword [edi + 0x58], ecx
mov eax, dword [esi + 8]
mov dword [edi + 0x5c], eax
mov ecx, dword [esi + 0xc]
mov dword [edi + 0x60], ecx
mov eax, dword [esi + 0x10]
mov dword [edi + 0x64], eax
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x68], ecx
mov eax, dword [esi + 0x18]
mov dword [edi + 0x6c], eax
mov ecx, dword [esi + 0x1c]
mov dword [edi + 0x70], ecx
mov eax, dword [esi + 0x20]
mov dword [edi + 0x74], eax
mov ecx, dword [esi + 0x24]
fld dword [ebp + 0x1c]
mov dword [edi + 0x78], ecx
mov eax, dword [esi + 0x28]
mov dword [edi + 0x7c], eax
mov ecx, dword [esi + 0x2c]
mov eax, dword [ebp + 0x1c]
mov dword [edi + 0x80], ecx
fadd dword [edi + 0x20]
mov dword [edi + 0x1c], eax
fstp dword [edi + 0x18]
je 0x662db4
lea ecx, [edi + 8]
mov dword [ebp + 0x14], ecx
jmp 0x662db7
mov dword [ebp + 0x14], edx
mov eax, dword [ebx + 0x5c]
inc eax
mov dword [ebx + 0x5c], eax
mov esi, eax
mov ecx, dword [ebx + 0x54]
mov eax, esi
shr eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ecx + eax*4]
cmp ecx, edx
je 0x662e11
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x662df5
mov edx, dword [ecx]
call dword [edx + 8]
mov ecx, dword [ebp + 0x14]
fstp dword [ebp + 0x10]
mov eax, dword [ecx]
call dword [eax + 8]
fcomp dword [ebp + 0x10]
fnstsw ax
test ah, 1
je 0x662e11
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x54]
push esi
mov edx, dword [ecx + eax*4]
mov dword [ecx + esi*4], edx
mov eax, dword [ebx + 0x54]
mov ecx, dword [eax + esi*4]
mov edx, dword [ecx]
call dword [edx + 4]
mov esi, dword [ebp + 0xc]
xor edx, edx
jmp 0x662dc0
mov eax, dword [ebx + 0x54]
mov ecx, dword [ebp + 0x14]
push esi
mov dword [eax + esi*4], ecx
mov edx, dword [ebx + 0x54]
mov ecx, dword [edx + esi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x4c]
add ebx, 0x3c
cmp ecx, eax
jl 0x662e55
mov cl, byte [ebx + 0xd]
test cl, cl
jne 0x662e3e
test eax, eax
jne 0x662e64
mov ecx, dword [ebx + 0x14]
test ecx, ecx
jle 0x662e64
mov edx, dword [ebx]
add eax, ecx
push 0
push eax
mov ecx, ebx
call dword [edx + 8]
test al, al
je 0x662e64
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 4]
lea ecx, [eax + 1]
mov dword [ebx + 0x10], ecx
mov dword [edx + eax*4], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18