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

Disassembly:
sub esp, 0xec
fld dword [esp + 0xf8]
mov ecx, dword [esp + 0xf0]
fmul dword [esp + 0xf8]
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
fstp dword [esp + 0x14]
mov dword [esp + 0xc], eax
je 0x787c7a
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x104]
lea ebx, [ebx]
mov esi, dword [eax]
mov ebp, dword [esi + 0x1c]
test ebp, ebp
je 0x787c5d
mov eax, edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0xdc], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x9c], eax
test byte [esi + 0x12], 3
mov dword [esp + 0xd4], ecx
mov ecx, dword [esi]
mov dword [esp + 0xd8], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], 0
je 0x7877c1
lea ecx, [esp + 0xa4]
push ecx
lea edx, [esi + 0x20]
push esi
push edx
call fcn.00444dc0
add esp, 0xc
jmp 0x7877e2
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0x3f800000
mov dword [esp + 0xac], 0
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
mov dword [esp + 0xb4], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esi + 0x34]
mov dword [esp + 0xbc], edx
mov edx, dword [esi + 0x38]
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0xc8], ecx
push eax
lea ecx, [esp + 0x98]
mov dword [esp + 0xd0], edx
push ecx
lea edx, [esp + 0xdc]
push edx
mov dword [esp + 0xbc], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xdc], 0x3f800000
call fcn.00486610
fld dword [edi]
fsub dword [esp + 0x114]
add esp, 0xc
cmp word [ebp], 0
lea ebx, [ebp + 0x10]
fstp dword [esp + 0x6c]
mov dword [esp + 0x64], 0
fld dword [edi + 8]
fsub dword [esp + 0x108]
fstp dword [esp + 0x70]
fld dword [esp + 0x108]
fadd dword [edi]
fstp dword [esp + 0x74]
fld dword [esp + 0x108]
fadd dword [edi + 8]
fstp dword [esp + 0x78]
jbe 0x787c59
jmp 0x7878b0
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0xf4]
push ecx
push ebx
push 1
call fcn.005c6860
movzx edx, word [ebx + 0xc]
mov dword [esp + 0x24], edx
add esp, 0x10
fild dword [esp + 0x14]
fmul dword [0x8b493c]
fadd dword [esp + 0x108]
fld dword [esp + 0x90]
fmul dword [esp + 0x90]
fld dword [esp + 0x88]
fmul dword [esp + 0x88]
faddp st(1)
fld st(1)
fmul st(2)
fcompp
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x787c41
fld dword [ebx]
movzx eax, word [ebx + 0xe]
fsub dword [esp + 0xc4]
movzx esi, word [eax + ebp + 0x16]
fstp dword [esp + 0x7c]
lea ecx, [eax + ebp + 0x10]
fld dword [ebx + 4]
lea edx, [esp + 0x28]
fsub dword [esp + 0xc8]
push edx
lea eax, [esp + 0x80]
push eax
fstp dword [esp + 0x88]
push 0
fld dword [ebx + 8]
mov dword [esp + 0x74], ecx
fsub dword [esp + 0xd8]
sub esi, 2
mov byte [esp + 0x60], 0
mov byte [esp + 0x61], 0
fstp dword [esp + 0x90]
call fcn.00762530
test esi, esi
jle 0x787c41
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], esi
lea ebx, [ebx]
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xec]
call fcn.007641f0
fld dword [esp + 0x6c]
fcomp dword [esp + 0xe8]
fnstsw ax
test ah, 0x41
je 0x787c0a
fld dword [esp + 0x70]
fcomp dword [esp + 0xec]
fnstsw ax
test ah, 0x41
je 0x787c0a
fld dword [esp + 0x74]
fcomp dword [esp + 0xe0]
fnstsw ax
test ah, 5
jnp 0x787c0a
fld dword [esp + 0x78]
fcomp dword [esp + 0xe4]
fnstsw ax
test ah, 5
jnp 0x787c0a
fld dword [esp + 0x40]
fsub dword [esp + 0x30]
fld dword [esp + 0x38]
fsub dword [esp + 0x28]
fstp dword [esp + 0x10]
fld dword [esp + 0x48]
fsub dword [esp + 0x28]
fmul st(1)
fld dword [esp + 0x50]
fsub dword [esp + 0x30]
fmul dword [esp + 0x10]
fsubp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x28]
fsub dword [esp + 0x38]
fld dword [edi + 8]
fsub dword [esp + 0x40]
fmulp st(1)
fld dword [esp + 0x30]
fsub dword [esp + 0x40]
fld dword [edi]
fsub dword [esp + 0x38]
fmulp st(1)
fsubp st(1)
fmul dword [esp + 0x20]
fcomp dword [0x890968]
fnstsw ax
test ah, 0x41
jp 0x787af5
fld dword [esp + 0x10]
fld st(1)
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fstp st(2)
fstp st(0)
fcom dword [0x8b5a0c]
fnstsw ax
test ah, 0x41
jne 0x787aa5
fld dword [edi + 8]
fsub dword [esp + 0x30]
fmul st(2)
fld dword [edi]
fsub dword [esp + 0x28]
fmul dword [esp + 0x10]
faddp st(1)
fdivrp st(1)
jmp 0x787aad
fstp st(0)
fld dword [0x890968]
fld dword [esp + 0x10]
fmul st(1)
fadd dword [esp + 0x28]
fstp dword [esp + 0x58]
fxch st(1)
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x60]
fstp st(0)
fld dword [edi + 8]
fsub dword [esp + 0x60]
fld dword [edi]
fsub dword [esp + 0x58]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fcomp dword [esp + 0x24]
fnstsw ax
fstp st(0)
test ah, 5
fstp st(0)
jp 0x787c0a
jmp 0x787af7
fstp st(0)
fld dword [esp + 0x38]
fsub dword [esp + 0x48]
fld dword [edi + 8]
fsub dword [esp + 0x50]
fmulp st(1)
fld dword [esp + 0x40]
fsub dword [esp + 0x50]
fld dword [edi]
fsub dword [esp + 0x48]
fmulp st(1)
fsubp st(1)
fmul dword [esp + 0x20]
fcomp dword [0x890968]
fnstsw ax
test ah, 0x41
jp 0x787b6d
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00767640
fld dword [edi + 8]
fsub dword [esp + 0x70]
add esp, 0x10
fld dword [edi]
fsub dword [esp + 0x58]
fld st(1)
fmul st(2)
fld st(1)
fmul st(2)
faddp st(1)
fcomp dword [esp + 0x24]
fnstsw ax
fstp st(0)
test ah, 5
fstp st(0)
jp 0x787c0a
fld dword [esp + 0x48]
fsub dword [esp + 0x28]
fld dword [edi + 8]
fsub dword [esp + 0x30]
fmulp st(1)
fld dword [esp + 0x50]
fsub dword [esp + 0x30]
fld dword [edi]
fsub dword [esp + 0x28]
fmulp st(1)
fsubp st(1)
fmul dword [esp + 0x20]
fcomp dword [0x890968]
fnstsw ax
test ah, 0x41
jp 0x787bdf
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x50]
push eax
push edi
call fcn.00767640
fld dword [edi + 8]
fsub dword [esp + 0x70]
add esp, 0x10
fld dword [edi]
fsub dword [esp + 0x58]
fld st(1)
fmul st(2)
fld st(1)
fmul st(2)
faddp st(1)
fcomp dword [esp + 0x24]
fnstsw ax
fstp st(0)
test ah, 5
fstp st(0)
jp 0x787c0a
movzx edx, word [ebp + 6]
movzx ecx, byte [esp + 0x54]
movzx eax, word [ebp + 2]
add edx, ebp
lea ecx, [edx + ecx*4 + 0x10]
mov edx, dword [eax + ecx]
mov ecx, dword [esp + 0x10c]
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x38], edx
call fcn.00787350
mov eax, dword [esp + 0x18]
cmp eax, esi
jge 0x787c29
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x80]
push edx
push eax
call fcn.00762640
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
inc ecx
dec eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
jne 0x787990
mov eax, dword [esp + 0x64]
movzx ecx, word [ebp]
add ebx, 0x10
inc eax
cmp eax, ecx
mov dword [esp + 0x64], eax
jl 0x7878b0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x100]
mov ecx, dword [edx + 8]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x1c], eax
jne 0x787750
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xec
ret 0x10