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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x87c1f0
push eax
mov dword fs:[0], esp
sub esp, 0x1e4
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov esi, dword [edi + 0x84]
mov eax, dword [edi + 0x78]
mov ebx, dword [eax]
lea ecx, [esi + 0xe0]
call fcn.00452940
test eax, eax
jbe 0x697d23
lea eax, [esi + 0xe8]
jmp 0x697d2d
push 4
call fcn.006269b0
add esp, 4
mov ecx, dword [eax]
mov esi, dword [edi + 0x84]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + 0xe0]
call fcn.00452940
test eax, eax
jbe 0x697d50
lea ebp, [esi + 0xe8]
jmp 0x697d5c
push 4
call fcn.006269b0
add esp, 4
mov ebp, eax
mov esi, dword [edi + 0x84]
lea ecx, [esi + 0xe0]
call fcn.00452940
cmp eax, 1
jbe 0x697d7a
lea eax, [esi + 0xec]
jmp 0x697d84
push 4
call fcn.006269b0
add esp, 4
fld dword [ebp]
fld dword [eax]
fst dword [esp + 0x10]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x697d9c
fstp st(0)
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x208]
fstp dword [esp + 0x38]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], eax
jle 0x6981ce
mov ebp, dword [esp + 0x204]
lea esi, [ebp + 0x18]
nop
lea eax, [edi + 0x60]
push eax
lea ecx, [esp + 0xe4]
call fcn.00487160
mov edx, dword [esi + 0x14]
push edx
lea ecx, [esp + 0x50]
call fcn.006e9660
fld dword [ebp]
fadd dword [ebx + 0x10]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
fstp dword [esp + 0x18]
mov dword [esp + 0x1fc], 0
fld dword [esi - 0x14]
fadd dword [ebx + 0x14]
fstp dword [esp + 0x1c]
fld dword [esi - 0x10]
fadd dword [ebx + 0x18]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esi - 4]
fstp dword [esp + 0x20]
mov eax, dword [esi - 8]
fld dword [edx + 0xe0]
mov edx, dword [esi]
fld dword [esp + 0x30]
mov dword [esp + 0x28], ecx
fmul st(1)
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], edx
mov eax, dword [edi + 0x84]
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x34]
fstp st(0)
fld dword [esp + 0x28]
fmul dword [ebx + 0x74]
fld dword [esp + 0x2c]
fmul dword [ebx + 0x78]
faddp st(1)
fld dword [esp + 0x24]
fmul dword [ebx + 0x70]
faddp st(1)
fld dword [esp + 0x2c]
fmul dword [ebx + 0x88]
fld dword [esp + 0x28]
fmul dword [ebx + 0x84]
faddp st(1)
fld dword [esp + 0x24]
fmul dword [ebx + 0x80]
faddp st(1)
fld dword [esp + 0x28]
fmul dword [ebx + 0x94]
fld dword [esp + 0x2c]
fmul dword [ebx + 0x98]
faddp st(1)
fld dword [esp + 0x24]
fmul dword [ebx + 0x90]
faddp st(1)
fstp dword [esp + 0x48]
fxch st(1)
fmul dword [eax + 0x40]
fstp dword [esp + 0x40]
fmul dword [eax + 0x44]
fld dword [esp + 0x48]
fmul dword [eax + 0x48]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld dword [esp + 0x40]
fmul dword [esp + 0x40]
faddp st(1)
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fstp st(0)
push eax
fstp st(0)
call fcn.005c5e80
mov eax, dword [edi + 0x84]
fstp dword [esp + 0x1f0]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x1a0], ecx
mov edx, dword [eax + 0x84]
add esp, 4
push 0x10
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1a4], edx
mov eax, dword [eax + 0x88]
push ecx
lea ecx, [esp + 0xe8]
mov dword [esp + 0x1ac], eax
call fcn.00488830
test al, al
jne 0x697f8f
lea ecx, [esp + 0x4c]
mov dword [esp + 0x1fc], 0xffffffff
call fcn.0045a430
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x208]
inc eax
add ebp, 0x30
add esi, 0x30
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x697de0
jmp 0x6981ce
lea ecx, [esp + 0x60]
call fcn.0068a2d0
fld dword [esp + 0x1d0]
fmul dword [esp + 0x1d0]
fld dword [esp + 0x1d4]
fmul dword [esp + 0x1d4]
faddp st(1)
fld dword [esp + 0x1d8]
fmul dword [esp + 0x1d8]
faddp st(1)
fstp dword [esp + 0x14]
mov edx, dword [esp + 0x14]
push edx
call fcn.005c5e80
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x24]
lea ecx, [edi + 0x48]
mov dword [esp + 0x64], eax
mov eax, dword [ecx]
add esp, 4
mov dword [esp + 0x68], edx
call dword [eax + 4]
fld dword [esp + 0x1b0]
mov ecx, dword [eax + 8]
fcomp dword [0x890968]
add eax, 8
lea esi, [ebx + 0x20]
mov dword [esp + 0x9c], ecx
mov edx, esi
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0xb0], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x7c]
and eax, 0xfffffffb
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xb8], edx
or eax, 3
xor edx, edx
mov dword [esp + 0xdc], ecx
cmp dword [esp + 0x1e8], 2
mov ecx, dword [esp + 0x1c8]
sete dl
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x1bc]
mov dword [esp + 0x14], esi
mov dword [esp + 0x84], ecx
shl edx, 7
xor edx, eax
and edx, 0x80
xor eax, edx
mov edx, dword [esp + 0x1cc]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x1c4]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], eax
fnstsw ax
mov dword [esp + 0xd8], edx
test ah, 0x41
mov edx, dword [esp + 0x1c0]
mov dword [esp + 0x88], edx
jne 0x698102
fld dword [0x89096c]
fdiv dword [esp + 0x1b0]
jmp 0x698108
fld dword [0x890968]
fmul dword [esp + 0x10]
add ebp, 0x20
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 8]
fstp dword [esp + 0xbc]
push 0x88
mov dword [esp + 0xd0], 0
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
call fcn.00627400
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x1fc], 1
je 0x69817d
sub esp, 0x80
mov edi, esp
mov ecx, 0x20
lea esi, [esp + 0xe0]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.006211d0
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x188]
mov eax, dword [esp + 0x18c]
add ebx, 0x30
mov dword [ebx], ecx
mov ecx, dword [esp + 0x178]
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x17c]
mov dword [esi], ecx
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x180]
mov dword [esi + 4], edx
lea ecx, [esp + 0x4c]
mov dword [esi + 8], eax
mov dword [esp + 0x1fc], 0xffffffff
call fcn.0045a430
mov ecx, dword [esp + 0x1f4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1f0
ret 8