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

Disassembly:
sub esp, 0x4c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x60]
push edi
mov edi, ecx
mov ebp, dword [edi + 0x10]
xor ebx, ebx
cmp ebp, ebx
mov dword [esp + 0x18], edi
mov byte [esp + 0x14], bl
mov dword [esp + 0x24], ebx
jne 0x1008fad9
cmp dword [edi + 8], ebx
je 0x1008fad7
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
mov edx, dword [esp + 0x60]
mov eax, dword [eax + 4]
push esi
push edx
call eax
mov ebp, esi
mov ecx, dword [esp + 0x60]
cmp dword [ecx + 0x18], ebx
jne 0x1008fb17
cmp byte [edi + 0x18], bl
je 0x1008fb17
cmp dword [ebp + 0x10], 5
jne 0x1008fb17
mov esi, dword [ebp + 8]
mov ecx, esi
mov byte [esp + 0x14], bl
call fcn.1007e8f0
test al, al
je 0x1008fb17
movsx eax, word [edi + 6]
mov edx, dword [esi]
mov edx, dword [edx + 0x78]
push eax
mov ecx, esi
call edx
mov ebx, eax
test ebx, ebx
je 0x1008fb17
mov dword [esp + 0x24], esi
mov esi, dword [edi + 0x14]
xor eax, eax
cmp esi, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov word [esp + 0x58], ax
jne 0x1008fb53
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
lea edx, [esp + 0x44]
push edx
mov edx, dword [esp + 0x64]
push edx
call eax
lea esi, [esp + 0x44]
xor eax, eax
cmp dword [ebp + 0x10], 5
jne 0x1008fcda
mov ecx, dword [ebp + 8]
cmp ecx, eax
mov dword [esp + 0x20], ecx
je 0x1008fb79
mov edx, dword [ecx + 0xc]
test edx, 0xfff00000
jne 0x1008fb79
add edx, 1
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x60]
cmp dword [ecx + 0x18], eax
jne 0x1008fbcb
cmp byte [edi + 0x18], 0
je 0x1008fbcb
cmp dword [esi + 0x10], 5
jne 0x1008fbcb
test ebx, ebx
mov edi, dword [esi + 8]
jne 0x1008fbd3
mov ecx, edi
mov byte [esp + 0x14], 1
call fcn.1007e8f0
test al, al
je 0x1008fc9d
mov eax, dword [esp + 0x18]
movsx ecx, word [eax + 6]
mov edx, dword [edi]
mov edx, dword [edx + 0x78]
push ecx
mov ecx, edi
call edx
mov ebx, eax
test ebx, ebx
je 0x1008fc9d
mov dword [esp + 0x24], edi
xor eax, eax
cmp ebx, eax
je 0x1008fc9d
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx]
mov edx, dword [eax + 0xc]
push ecx
mov ecx, ebx
call edx
cmp dword [eax + 0x10], 5
jne 0x1008fc9d
mov edi, dword [eax + 8]
xor ebx, ebx
cmp edi, ebx
je 0x1008fc9d
mov eax, dword [edi]
mov edx, dword [eax + 0x90]
mov ecx, edi
call edx
test eax, eax
je 0x1008fc9d
xor eax, eax
lea ecx, [esp + 0x10]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov word [esp + 0x40], bx
call fcn.100a7730
cmp byte [esp + 0x14], bl
mov ecx, ebp
jne 0x1008fc3a
mov ecx, esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.100a8550
mov ecx, eax
call fcn.1009c0a0
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x14]
call fcn.10090250
mov edx, dword [edi]
mov edx, dword [edx + 0xb4]
lea eax, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x14]
push ecx
push eax
mov ecx, edi
call edx
cmp dword [esp + 0x3c], ebx
jne 0x1008fce3
mov eax, dword [esp + 0x60]
cmp dword [eax + 0x18], ebx
jne 0x1008fce3
lea ecx, [esp + 0x10]
call fcn.100a7d40
lea ecx, [esp + 0x2c]
call fcn.1009b200
mov ecx, dword [esp + 0x60]
cmp dword [ecx + 0x18], 0
jne case.0x10090118.20
mov ebx, dword [esp + 0x18]
cmp byte [ebx + 0x19], 0
je 0x1008fd85
cmp dword [ebp + 0x10], 5
jne 0x1008fd49
cmp word [ebx + 4], 0xf
jne 0x1008fd2c
mov eax, dword [ebp + 8]
cmp dword [eax + 0x4e], 0x2000008b
jne 0x1008fd2c
mov al, 1
jmp 0x1008fd2e
mov dword [esp + 0x20], eax
jmp 0x1008fb79
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x1a], 0
je 0x1008fd07
lea ecx, [esp + 0x2c]
call fcn.1009b9a0
mov ecx, dword [esp + 0x64]
test al, al
sete dl
push edx
call fcn.1009aa30
jmp 0x1008fd15
mov ecx, dword [esp + 0x64]
lea eax, [esp + 0x2c]
push eax
call fcn.1009c0a0
lea ecx, [esp + 0x10]
call fcn.100a7d40
lea ecx, [esp + 0x2c]
call fcn.1009b200
jmp case.0x10090118.20
xor al, al
mov edi, ecx
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0xe4]
push ebp
call eax
cmp dword [edi + 0x18], 0
jne case.0x10090118.20
cmp dword [esi + 0x10], 5
jne 0x1008fd85
cmp word [ebx + 4], 0xf
jne 0x1008fd66
mov eax, dword [esi + 8]
cmp dword [eax + 0x4e], 0x2000008b
jne 0x1008fd66
mov al, 1
jmp 0x1008fd68
xor al, al
mov edi, dword [esp + 0x60]
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0xe4]
push esi
call eax
cmp dword [edi + 0x18], 0
jne case.0x10090118.20
movsx ecx, word [ebx + 4]
lea eax, [ecx - 0xf]
cmp eax, 0xe
mov byte [esp + 0x24], 0
mov edx, 4
ja case.0x1008fda6.16
movzx eax, byte [eax + 0x100901ec]
jmp dword [eax*4 + 0x100901cc]
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [esi + 0x10]
jne 0x1008fe86
push esi
push ebp
call fcn.10096790
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0x2c], al
mov edx, dword [esp + 0x2c]
add esp, 8
push edx
call fcn.1009aa30
jmp case.0x10090118.20
mov edx, dword [ebp + 0x10]
cmp edx, dword [esi + 0x10]
mov byte [esp + 0x24], 1
jne 0x1008fe86
push esi
push ebp
call fcn.10096790
mov ecx, dword [esp + 0x6c]
add esp, 8
test al, al
sete al
mov byte [esp + 0x24], al
mov edx, dword [esp + 0x24]
push edx
call fcn.1009aa30
jmp case.0x10090118.20
mov edi, 5
cmp dword [esi + 0x10], edi
jne 0x1008fe21
cmp dword [esi + 8], 0
jne 0x1008fe56
mov ecx, dword [esp + 0x64]
cmp dword [ecx + 0x10], 0
je 0x1008fe30
call fcn.1009a880
mov ecx, esi
call fcn.100053b0
mov ecx, dword [esp + 0x60]
push eax
push 0x15
call fcn.100829b0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x64]
push edx
call fcn.1009aa30
jmp case.0x10090118.20
mov ecx, dword [0x103271bc]
push ebp
call fcn.1005f410
cmp dword [esi + 0x10], edi
jne 0x1008fe6c
mov esi, dword [esi + 8]
jmp 0x1008fe6e
xor esi, esi
mov edx, dword [esi]
push 0
push eax
mov eax, dword [edx + 0xa4]
mov ecx, esi
call eax
test eax, eax
setne cl
mov byte [esp + 0x24], cl
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x64]
push edx
call fcn.1009aa30
jmp case.0x10090118.20
push esi
push ebp
call fcn.1008f5a0
mov ecx, dword [esp + 0x6c]
add esp, 8
push eax
call fcn.1009aa30
jmp case.0x10090118.20
cmp dword [ebp + 0x10], edx
je 0x1008febc
cmp dword [esi + 0x10], edx
jne case.0x1008fda6.16
mov edi, dword [esp + 0x64]
cmp ebp, edi
je 0x1008fecc
push ebp
mov ecx, edi
call fcn.1006b200
push 4
mov ecx, edi
call fcn.1009cdb0
mov ecx, edi
call fcn.100053b0
mov edi, eax
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.1009bd10
push eax
mov ecx, edi
call fcn.1009f950
lea ecx, [esp + 0x18]
call fcn.1009dbf0
jmp case.0x10090118.20
add ecx, 0xffffffec
mov edi, 3
cmp ecx, edi
ja 0x1008ffbe
push esi
mov ecx, ebp
mov byte [esp + 0x28], 0
call fcn.1009c380
cmp eax, 0x7fffffff
jne 0x1008ff3c
mov ecx, dword [esp + 0x64]
mov byte [esp + 0x24], 0
mov edx, dword [esp + 0x24]
push edx
call fcn.1009aa30
jmp case.0x10090118.20
movsx ecx, word [ebx + 4]
add ecx, 0xffffffec
cmp ecx, edi
ja case.default.0x1008ff47
jmp dword [ecx*4 + 0x100901fc]
test eax, eax
setl cl
mov byte [esp + 0x24], cl
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x64]
push edx
call fcn.1009aa30
jmp case.0x10090118.20
mov ecx, dword [esp + 0x64]
test eax, eax
setle dl
mov byte [esp + 0x24], dl
mov edx, dword [esp + 0x24]
push edx
call fcn.1009aa30
jmp case.0x10090118.20
mov ecx, dword [esp + 0x64]
test eax, eax
setg al
mov byte [esp + 0x24], al
mov edx, dword [esp + 0x24]
push edx
call fcn.1009aa30
jmp case.0x10090118.20
test eax, eax
setge cl
mov byte [esp + 0x24], cl
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x64]
push edx
call fcn.1009aa30
jmp case.0x10090118.20
cmp dword [ebp + 0x10], edi
je 0x1008ffcb
push edi
mov ecx, ebp
call fcn.1009cdb0
cmp dword [esi + 0x10], edi
je 0x1008ffd8
push edi
mov ecx, esi
call fcn.1009cdb0
cmp dword [ebp + 0x10], edi
jne 0x1008ffe2
fld qword [ebp]
jmp 0x1008ffe9
mov ecx, ebp
call fcn.1009ba50
cmp dword [esi + 0x10], edi
fst qword [esp + 0x18]
jne 0x1008fffa
fld qword [esi]
fst qword [esp + 0x24]
jmp 0x1009000d
mov ecx, esi
fstp st(0)
call fcn.1009ba50
fst qword [esp + 0x24]
fld qword [esp + 0x18]
fxch st(1)
movsx eax, word [ebx + 4]
add eax, 0xfffffff4
cmp eax, 4
ja case.default.0x1009001d
jmp dword [eax*4 + 0x1009020c]
mov ecx, dword [esp + 0x64]
fmulp st(1)
sub esp, 8
fstp qword [esp]
call fcn.1009aaf0
jmp case.0x10090118.20
fdivp st(1)
mov ecx, dword [esp + 0x64]
sub esp, 8
fstp qword [esp]
call fcn.1009aaf0
jmp case.0x10090118.20
fstp st(1)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x100900b5
mov ecx, ebp
call fcn.10060090
test al, al
jne 0x100900b5
mov ecx, esi
call fcn.10060090
test al, al
jne 0x100900b5
mov ecx, ebp
call fcn.10064740
test al, al
jne 0x10090089
mov ecx, esi
call fcn.10064740
test al, al
je 0x100900b5
mov ecx, esi
call fcn.10064740
fld qword [esp + 0x18]
test al, al
je 0x100900db
fld qword [esp + 0x24]
call sub.MSVCR80.dll__CIfmod
mov ecx, dword [esp + 0x64]
sub esp, 8
fstp qword [esp]
call fcn.1009aaf0
jmp case.0x10090118.20
mov ecx, dword [esp + 0x64]
call fcn.1009a990
jmp case.0x10090118.20
mov ecx, dword [esp + 0x64]
faddp st(1)
sub esp, 8
fstp qword [esp]
call fcn.1009aaf0
jmp case.0x10090118.20
fsubp st(1)
mov ecx, dword [esp + 0x64]
sub esp, 8
fstp qword [esp]
call fcn.1009aaf0
jmp case.0x10090118.20
fstp st(0)
mov ecx, ebp
fstp st(0)
call fcn.1009c9e0
mov ecx, esi
mov edi, eax
call fcn.1009c9e0
mov esi, eax
movsx eax, word [ebx + 4]
add eax, 0xffffffef
cmp eax, 0xf
ja case.0x10090118.20
movzx eax, byte [eax + 0x1009023c]
jmp dword [eax*4 + 0x10090220]
mov ecx, ebp
call fcn.10064740
test al, al
jne 0x1009012e
xor edi, edi
jmp 0x10090185
mov ecx, esi
and ecx, 0x1f
shl edi, cl
jmp 0x10090185
mov ecx, ebp
call fcn.10064740
test al, al
jne 0x10090146
xor edi, edi
jmp 0x10090185
mov ecx, esi
and ecx, 0x1f
sar edi, cl
jmp 0x10090185
mov ecx, ebp
call fcn.10064740
test al, al
jne 0x10090168
mov ecx, dword [esp + 0x64]
xor edi, edi
push edi
call fcn.1009aa90
jmp case.0x10090118.20
mov ecx, esi
and ecx, 0x1f
shr edi, cl
mov ecx, dword [esp + 0x64]
push edi
call fcn.1009aa90
jmp case.0x10090118.20
and edi, esi
jmp 0x10090185
or edi, esi
jmp 0x10090185
xor edi, esi
mov ecx, dword [esp + 0x64]
push edi
call fcn.1009aa60
mov ecx, dword [esp + 0x60]
mov esi, dword [ecx + 0x18]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x100901b7
mov eax, dword [ecx + 0xc]
test eax, 0xfff00000
jne 0x100901b7
add eax, 0xffffffff
mov dword [ecx + 0xc], eax
jne 0x100901b7
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x44]
call fcn.1009b200
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 8