Function at 0x80fca8
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x810482
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x364], 0
je 0x810464
xor edx, edx
push ebp
push 0x81044d
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x374], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov byte [ebp - 0x14], 0
call fcn.00882dbc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
mov dl, 1
call fcn.0044f21c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
mov edx, dword [eax]
call dword [edx + 0x80]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc]
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 8]
imul ebx, eax
cmp ebx, 0x2dc6c0
jle 0x80fd66
mov dword [ebp - 8], 1
jmp 0x80fdd1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc]
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 8]
imul ebx, eax
cmp ebx, 0x1e8480
jle 0x80fd98
mov dword [ebp - 8], 2
jmp 0x80fdd1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc]
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 8]
imul ebx, eax
cmp ebx, 0xf4240
jle 0x80fdca
mov dword [ebp - 8], 3
jmp 0x80fdd1
mov dword [ebp - 8], 4
cmp byte [ebp - 0x14], 0
je 0x80fdde
mov dword [ebp - 8], 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x304]
cmp dword [eax + 0x228], 0
jne 0x80fdf7
mov dword [ebp - 8], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
cmp dword [eax + 0x228], 1
jl 0x80fe8e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 8]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
fild dword [eax + 0x228]
fdiv dword [0x810490]
fmulp st(1)
call fcn.00402f88
mov edx, dword [ebp - 4]
mov dword [edx + 0x374], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov eax, dword [eax + 0x70]
push eax
push 0xff
push 1
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x374]
push eax
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x35c]
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, eax
mov eax, ebx
pop ecx
call fcn.0064661c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0x10]
cmp al, 5
je 0x80feb0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov dl, 5
call fcn.00646794
lea edx, [ebp - 0x13]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov eax, dword [eax + 0x70]
call fcn.005eae90
xor eax, eax
push ebp
push 0x80ff6a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 8]
dec eax
test eax, eax
jl 0x80ff60
inc eax
mov dword [ebp - 0x18], eax
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc]
mov esi, eax
dec esi
test esi, esi
jl 0x80ff5a
inc esi
xor ebx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov ecx, edi
mov edx, ebx
call fcn.0064b178
test al, al
jne 0x80ff52
mov eax, dword [ebp - 0x10]
mov dx, word [ebp - 0x13]
mov word [eax], dx
mov dl, byte [ebp - 0x11]
mov byte [eax + 2], dl
push 0xff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov ecx, edi
mov edx, ebx
call fcn.0064b1a8
add dword [ebp - 0x10], 3
inc ebx
dec esi
jne 0x80ff15
inc edi
dec dword [ebp - 0x18]
jne 0x80feeb
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x80ff74
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
call fcn.0063df58
test al, al
je 0x80ffa0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov edx, dword [eax + 0x70]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
call fcn.0087800c
xor edx, edx
push ebp
push 0x81043c
push dword fs:[edx]
mov dword fs:[edx], esp
xor ecx, ecx
mov dl, 1
mov eax, dword [0x629c30]
call fcn.0062ad18
mov dword [ebp - 0xc], eax
xor edx, edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x12c]
mov eax, dword [ebp - 0xc]
call fcn.00637aa0
mov byte [eax + 0x30], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x340]
mov dl, 1
call fcn.00637bd4
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x35c]
mov ecx, dword [eax]
call dword [ecx + 0x28]
cmp dword [ebp - 8], 1
jle 0x810078
cmp byte [ebp - 0x14], 0
jne 0x810078
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 8]
imul dword [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, eax
imul edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x24]
push 0
push 0
push 0
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x35c]
mov cl, 5
call fcn.005ef428
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov eax, dword [eax + 0x70]
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 0x228]
je 0x81009c
mov edx, eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
cmp dword [eax + 0x228], 1
jl 0x8101fd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x374]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x310]
mov ecx, 0x64
sub ecx, dword [edx + 0x228]
imul ecx
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fdiv dword [0x810494]
call fcn.00402f88
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 8]
mov esi, eax
mov eax, dword [ebp - 4]
sub esi, dword [eax + 0x374]
dec esi
push 0
push 0x64
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
fild dword [eax + 0x228]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
fild dword [eax + 0x228]
fdiv dword [0x810498]
faddp st(1)
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
fild dword [eax + 0x228]
fdiv dword [0x810498]
fadd dword [0x810494]
fdivp st(1)
fmul dword [0x810494]
call fcn.00402f88
push edx
push eax
call fcn.00432618
mov edi, eax
push 0x3ff00000
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x304]
mov edx, dword [eax + 0x228]
mov eax, 0xffffffac
call fcn.004326fc
mov edx, eax
mov eax, 0x54
call fcn.00432610
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x320]
mov eax, dword [eax + 0x228]
mov edx, eax
shl eax, 8
sub eax, edx
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
fdiv dword [0x810494]
call fcn.00402f88
push eax
push edi
push ebx
push esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov eax, dword [eax + 0x70]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0xc]
call fcn.00637aa0
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x35c]
xor ecx, ecx
call fcn.0060d418
jmp 0x8102e5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x310]
mov ecx, 0x64
sub ecx, dword [edx + 0x228]
imul ecx
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fdiv dword [0x810494]
call fcn.00402f88
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 8]
mov esi, eax
dec esi
push 0x3ff00000
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x304]
mov edx, dword [eax + 0x228]
mov eax, 0xffffffac
call fcn.004326fc
mov edx, eax
mov eax, 0x54
call fcn.00432610
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x320]
mov eax, dword [eax + 0x228]
mov edx, eax
shl eax, 8
sub eax, edx
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
fdiv dword [0x810494]
call fcn.00402f88
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
mov eax, dword [eax + 0x228]
push eax
push ebx
push esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov eax, dword [eax + 0x70]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0xc]
call fcn.00637aa0
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x35c]
xor ecx, ecx
call fcn.0060d418
mov dl, 1
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, 2
jle 0x810351
mov al, byte [ebp - 0x11]
shl eax, 0x10
mov ax, word [ebp - 0x13]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0080fbe4
mov ebx, eax
test ebx, ebx
jle 0x810351
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0xc]
sub eax, ebx
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
pop edx
call fcn.0064605c
cmp dword [ebp - 8], 1
jle 0x810392
push 5
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 8]
cdq
idiv dword [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0xc]
cdq
idiv dword [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
call fcn.00637aa0
pop edx
pop ecx
call fcn.005ef10c
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 4]
call fcn.004b0170
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 0x44]
call fcn.00404dc4
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [0x8a9dac]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0xcc8]
mov eax, dword [eax + 0x254]
call fcn.00637aa0
mov cl, 1
pop edx
call fcn.005ed150
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xd0]
push eax
mov eax, dword [0x8a9dac]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0xcc8]
mov eax, dword [eax + 0x254]
mov edx, dword [eax]
call dword [edx + 0xd0]
pop edx
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, dword [0x8a9dac]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0xcc8]
mov eax, dword [eax + 0x254]
mov edx, dword [eax]
call dword [edx + 0x88]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x810443
lea eax, [ebp - 0xc]
call fcn.00411378
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x810489
lea eax, [ebp - 0x48]
call fcn.00405268
lea eax, [ebp - 0x44]
call fcn.00404b34
ret