Function at 0x902120
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea esi, [ebp - 4]
mov eax, dword [0x98a548]
mov eax, dword [eax]
cmp byte [eax + 0x809], 0
je 0x9023c9
push ebp
call fcn.00902088
pop ecx
test al, al
je 0x90218f
mov eax, dword [esi]
mov eax, dword [eax + 0x5dc]
cmp dword [eax + 0x30], 0
jbe 0x902161
xor edx, edx
call fcn.0044b198
mov eax, dword [esi]
mov eax, dword [eax + 0x5dc]
xor edx, edx
mov dword [eax + 0xc], edx
push ebp
call fcn.00901fe8
pop ecx
call sub.kernel32.dll_GetTickCount
xor edx, edx
mov ecx, dword [esi]
mov dword [ecx + 0x10c0], eax
mov dword [ecx + 0x10c4], edx
jmp 0x9023c9
mov eax, dword [esi]
cmp byte [eax + 0xf70], 0
jne 0x9023c9
xor edx, edx
push ebp
push 0x9023bf
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [esi]
mov eax, dword [eax + 0x5dc]
cmp dword [eax + 0x30], 0
jbe 0x9021c1
xor edx, edx
call fcn.0044b198
mov eax, dword [esi]
mov eax, dword [eax + 0x5dc]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [esi]
mov eax, dword [eax + 0x7f0]
cmp dword [eax + 0xc], 5
jne 0x9021f7
xor edx, edx
mov dword [eax + 0xc], edx
xor edx, edx
call fcn.0044b198
mov eax, dword [esi]
mov eax, dword [eax + 0x7f0]
xor edx, edx
call fcn.0044b188
mov eax, dword [esi]
cmp byte [eax + 0xacc], 0
je 0x9022bf
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
cmp dword [eax + 0x5c], 1
jg 0x9022bf
mov eax, dword [esi]
cmp byte [eax + 0xacd], 0
jne 0x9022bf
mov eax, dword [esi]
cmp byte [eax + 0x103d], 0
jne 0x9022bf
mov eax, dword [esi]
mov eax, dword [eax + 0xe44]
xor edx, edx
call fcn.00405738
je 0x9022bf
mov eax, dword [esi]
mov eax, dword [eax + 0xe44]
call fcn.008b4aa0
test al, al
je 0x9022bf
mov eax, dword [esi]
mov edx, dword [eax + 0xe44]
xor ecx, ecx
mov eax, dword [esi]
call fcn.00943d90
mov eax, dword [esi]
call fcn.008f8604
test al, al
jne 0x90228f
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
cmp byte [eax + 0x563], 0
jne 0x90229c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x9023c9
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
cmp byte [eax + 0x557], 0
jne 0x9022bf
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x9023c9
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
mov ebx, dword [eax + 0x5c]
cmp ebx, 1
jle 0x9022e2
mov eax, dword [0x98a548]
cmp ebx, 5
jne 0x9023b5
call fcn.008b1978
test al, al
jne 0x9023b5
call fcn.008b1994
test al, al
jne 0x9023b5
call fcn.008b19b0
test al, al
jne 0x9023b5
mov eax, dword [esi]
mov eax, dword [eax + 0x890]
cmp dword [eax + 0x30], 0
jbe 0x90231e
xor edx, edx
call fcn.0044b198
mov eax, dword [esi]
mov eax, dword [eax + 0x890]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [esi]
call fcn.008f8604
test al, al
je 0x902399
mov eax, dword [esi]
cmp byte [eax + 0xacc], 0
jne 0x902399
mov eax, dword [esi]
mov ebx, dword [eax + 0x514]
mov edx, ebx
mov eax, dword [esi]
call fcn.008f17c8
fcomp qword [ebx + 0x3f0]
fnstsw ax
sahf
jae 0x902399
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
cmp dword [eax + 0xd0], 1
jl 0x902399
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7c4]
cmp dword [eax + 0xd0], 2
jg 0x902399
mov dl, 1
mov eax, dword [esi]
call fcn.008fb94c
push 0x64
call sub.kernel32.dll_Sleep_1
push ebp
call fcn.00901fe8
pop ecx
call sub.kernel32.dll_GetTickCount
xor edx, edx
mov ecx, dword [esi]
mov dword [ecx + 0xbb8], eax
mov dword [ecx + 0xbbc], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x9023c9
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret