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

Disassembly:
sub esp, 0xf8
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor ebx, ebx
mov edi, dword [esi + 0x28]
cmp edi, ebx
je 0x70975a
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
cmp eax, ebx
je 0x70973e
cmp eax, 0x7de004
je 0x70974c
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x709730
xor al, al
neg al
sbb eax, eax
and eax, edi
mov dword [esp + 0x18], eax
jmp 0x70975e
mov al, 1
neg al
sbb eax, eax
and eax, edi
mov dword [esp + 0x18], eax
jmp 0x70975e
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x18]
mov al, byte [esi + 0xbd]
test al, al
mov ebp, dword [ecx + 0x98]
mov dword [esp + 0x20], ebp
je 0x709788
mov edx, dword [esp + 0x10c]
mov eax, edx
mov dword [esi + 0x34], edx
mov dword [esi + 0xc0], eax
fld dword [esp + 0x10c]
fcomp dword [esi + 0x34]
mov dword [esp + 0x10], 0
fnstsw ax
test ah, 5
jp 0x7097ea
fld dword [esi + 0x18]
fsub dword [esi + 0x14]
mov al, byte [esi + 0x6c]
test al, al
fmul dword [esi + 0xc]
fstp dword [esp + 0x10]
je 0x7097d0
mov dword [esi + 0xc0], ebx
mov dword [esi + 0x34], ebx
mov edx, dword [ebp]
push ebx
mov ecx, ebp
call dword [edx + 0x4c]
mov word [esi + 0xa6], bx
jmp 0x7097ea
fld dword [esi + 0x34]
fsub dword [esp + 0x10]
fstp dword [esi + 0x34]
fld dword [esi + 0xc0]
fsub dword [esp + 0x10]
fstp dword [esi + 0xc0]
mov ecx, esi
call fcn.00709f70
cmp eax, ebx
je 0x709816
mov edi, dword [esp + 0x10]
push ebp
push eax
mov eax, dword [esp + 0x114]
push edi
push eax
mov ecx, esi
call fcn.00709b20
mov ecx, esi
call fcn.00709fa0
cmp eax, ebx
jne 0x7097f9
mov al, byte [esi + 0x7c]
test al, al
je 0x709826
mov ecx, dword [esi + 0x70]
mov dword [esp + 0x14], ecx
jmp 0x709869
fld dword [esi + 0x18]
fsub dword [esi + 0x14]
fcomp dword [esi + 0x74]
fnstsw ax
test ah, 5
jp 0x709851
xor edx, edx
mov dx, word [esi + 0xa4]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fld dword [esi + 0x68]
fsub dword [esi + 0x64]
fdivp st(1)
jmp 0x709865
xor eax, eax
mov ax, word [esi + 0xa4]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fdiv dword [esi + 0x74]
fstp dword [esp + 0x14]
fld dword [esp + 0x10c]
fcomp dword [esi + 0x64]
mov ecx, dword [esi + 0xc0]
mov dword [esp + 0x10], ecx
fnstsw ax
and eax, 0x100
jne 0x709adf
mov ecx, dword [esi + 0x8c]
cmp ecx, ebx
je 0x709adf
mov edx, dword [ecx]
call dword [edx + 0x54]
test al, al
jne 0x709adf
fld dword [esi + 0x64]
fcom dword [esi + 0xc0]
fnstsw ax
test ah, 5
jp 0x7098bd
fstp st(0)
fld dword [esi + 0xc0]
fld dword [esp + 0x10c]
fld dword [esp + 0x10c]
fcomp dword [esi + 0x68]
fnstsw ax
and eax, 0x4100
jne 0x7098dc
fstp st(0)
fld dword [esi + 0x68]
fcom st(1)
fnstsw ax
and eax, 0x4100
jne 0x709911
fsub st(1)
fmul dword [esp + 0x14]
call sub.MSVCRT.dll__ftol
mov ebx, eax
and eax, 0xffff
fstp st(0)
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fdiv dword [esp + 0x14]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp 0x709920
mov ecx, dword [esp + 0x10c]
fstp st(0)
fstp st(0)
mov dword [esp + 0x10], ecx
mov al, byte [esi + 0xbd]
test al, al
je 0x70992b
inc ebx
test bx, bx
jbe 0x709a83
xor eax, eax
xor ecx, ecx
mov ax, word [esi + 0xa6]
mov cx, word [esi + 0xa4]
inc eax
cmp eax, ecx
jge 0x709a30
mov edi, dword [esi + 0x28]
lea eax, [esp + 0x54]
mov ebp, dword [edi + 0x18]
mov edx, dword [edi + 0x2c]
push edx
push eax
lea ecx, [ebp + 0x40]
call fcn.006e80a0
mov ecx, dword [esi + 0x8c]
add ecx, 0x40
push ecx
lea ecx, [esp + 0x7c]
call fcn.006e7cd0
lea edx, [esp + 0x78]
lea eax, [esp + 0x9c]
push edx
push eax
lea ecx, [esp + 0x5c]
call fcn.00736f40
push eax
lea ecx, [esp + 0xc4]
call fcn.006e7cd0
mov eax, dword [esi + 0x8c]
mov ecx, dword [edi + 0x2c]
add eax, 0x64
add edi, 0x30
lea edx, [esp + 0x48]
push edi
fld dword [eax + 8]
fsub dword [ebp + 0x6c]
fld dword [eax + 4]
fsub dword [ebp + 0x68]
fld dword [eax]
fsub dword [ebp + 0x64]
lea eax, [esp + 0xa0]
push edx
push eax
fstp dword [esp + 0x30]
fstp dword [esp + 0x34]
fstp dword [esp + 0x38]
call fcn.006e8420
mov ecx, eax
call fcn.006e8230
lea ecx, [esp + 0x24]
mov edi, eax
lea edx, [esp + 0x3c]
push ecx
lea eax, [esp + 0xe8]
push edx
push eax
lea ecx, [esp + 0x60]
call fcn.006e8420
mov ecx, eax
call fcn.006e8230
fld dword [eax]
fsub dword [edi]
fld dword [eax + 4]
fsub dword [edi + 4]
fld dword [eax + 8]
fsub dword [edi + 8]
mov ebp, dword [esp + 0x20]
fstp dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
fxch st(1)
fstp dword [esp + 0x30]
fstp dword [esp + 0x34]
mov dword [esp + 0x38], ecx
xor edx, edx
xor eax, eax
mov dx, word [esi + 0xa6]
mov ax, word [esi + 0xa4]
add ebx, 0xffff
inc edx
cmp edx, eax
jge 0x709a83
mov edi, dword [esp + 0x10c]
mov edx, dword [esi]
lea eax, [esp + 0x30]
push 0
push eax
mov eax, dword [esi + 0xc0]
lea ecx, [esp + 0xc8]
push ecx
push eax
push edi
mov ecx, esi
call dword [edx + 0x4c]
push ebp
push eax
push 0
push edi
mov ecx, esi
call fcn.00709b20
test bx, bx
ja 0x709a30
mov al, byte [esi + 0xbc]
mov ecx, dword [esp + 0x10]
test al, al
mov dword [esi + 0xc0], ecx
jne 0x709aec
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
push 0xc
mov edi, dword [edx + 0x98]
mov cx, word [ebp + 0x3c]
add edi, 0xc
push eax
push ecx
mov ecx, edi
call fcn.006ed170
fld dword [edi + 0xc]
fcomp dword [0x750e10]
fnstsw ax
test ah, 5
jp 0x709acf
mov dword [edi + 0xc], 0x41a00000
mov edx, dword [esp + 0x18]
mov dword [edx + 0xac], 0
jmp 0x709afc
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x10], edx
jmp 0x709a83
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x8c]
mov dword [ecx + 0xac], eax
mov edx, dword [esp + 0x10c]
mov byte [esi + 0xbd], 0
mov dword [esi + 0x34], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf8
ret 4