Function at 0x4efbe4
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa8
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4f0569
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x30], 2
jne 0x4efc3a
mov eax, dword [ebp - 4]
cmp word [eax + 0x34], 4
je 0x4efc3a
mov eax, dword [ebp - 4]
cmp byte [eax + 0x10], 0
je 0x4efc3a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
cmp byte [eax + 0x2c], 0
jne 0x4efc3e
xor eax, eax
jmp 0x4efc40
mov al, 1
mov byte [ebp - 0x36], al
cmp byte [ebp - 0x36], 0
je 0x4efc7e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x4efc7e
inc esi
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, edi
call fcn.004b79a0
mov ax, word [eax + 8]
add eax, 0xffffff9a
sub ax, 2
jae 0x4efc7a
mov byte [ebp - 0x36], 0
jmp 0x4efc7e
inc edi
dec esi
jne 0x4efc5a
mov eax, dword [ebp - 4]
cmp word [eax + 0x34], 4
jne 0x4efcaf
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2c], 0
je 0x4efcaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
cmp byte [eax + 0x1e], 0
je 0x4efcaf
mov edx, 8
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
jmp 0x4efcd4
cmp byte [ebp - 0x36], 0
je 0x4efcc7
mov edx, 0x20
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
jmp 0x4efcd4
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4a], 0
je 0x4efcf8
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.004f5cf0
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
add eax, 0x4c
call fcn.00404190
jmp 0x4efd03
mov eax, dword [ebp - 4]
add eax, 0x4c
call fcn.0040413c
mov edx, 0x65
mov eax, dword [0x4a4acc]
call fcn.004a4e7c
mov dword [ebp - 0x34], eax
xor edx, edx
push ebp
push 0x4f0368
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [ebp - 0xc], 0
je 0x4f034d
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x30]
cmp al, 2
jne 0x4eff70
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x35]
push eax
lea ecx, [ebp - 0xd]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2c00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x4efd83
inc esi
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, edi
call fcn.004b79a0
mov eax, dword [eax + 0x40]
cmp eax, dword [ebp - 0x30]
je 0x4efd83
inc edi
dec esi
jne 0x4efd6a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
cmp edi, dword [eax + 8]
jl 0x4efda2
mov ecx, 0x11b0
mov edx, 0x4f0580
mov eax, 0x4f05c0
call fcn.00404098
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, edi
call fcn.004b79a0
call fcn.004ed830
mov ebx, eax
cmp byte [ebp - 0x35], 1
jne 0x4efeb3
mov eax, ebx
call fcn.004b14d4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x4efe62
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x10], 0
jne 0x4efdea
mov byte [ebp - 0xd], 3
mov al, byte [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x16
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, 5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2da0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x35]
push eax
lea ecx, [ebp - 0xd]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2c00
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0xc], 0
je 0x4eff61
cmp byte [ebp - 0xd], 1
je 0x4eff61
cmp byte [ebp - 0xd], 0
jne 0x4efdd4
jmp 0x4eff61
xor eax, eax
mov dword [ebp - 0x1c], eax
push 3
mov eax, dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, 5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2da0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x35]
push eax
lea ecx, [ebp - 0xd]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2c00
jmp 0x4eff61
cmp byte [ebp - 0x35], 2
jne 0x4eff61
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x28]
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.004b1298
mov al, byte [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x16
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, 5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2da0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov dword [eax + 8], edx
mov eax, dword [ebx + 0x1c]
cmp eax, dword [ebp - 0x1c]
jbe 0x4eff23
lea edx, [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.004b1344
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.004b13d8
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x35]
push eax
lea ecx, [ebp - 0xd]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2c00
cmp dword [ebp - 0xc], 0
je 0x4eff61
cmp byte [ebp - 0xd], 1
je 0x4eff61
cmp byte [ebp - 0xd], 0
jne 0x4efec4
cmp dword [ebp - 0xc], 0
jne 0x4efd59
jmp 0x4f034d
cmp al, 1
jne 0x4f0345
mov dword [ebp - 0x28], 0xfffff3c7
mov dword [ebp - 0x2c], 0xfffff3c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x4f00ff
inc esi
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, edi
call fcn.004b79a0
mov ebx, eax
mov ax, word [ebx + 8]
add eax, 0xfffffff3
sub ax, 2
jae 0x4f00f7
mov al, byte [ebx + 0xa]
sub al, 1
je 0x4effca
sub al, 2
jne 0x4f00f7
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x18]
test al, al
jne 0x4f00f7
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x28]
je 0x4efffb
lea edx, [ebp - 0x48]
mov eax, dword [0x51b5c4]
call fcn.00406378
mov eax, dword [ebp - 0x48]
call fcn.004efb88
jmp 0x4f00ff
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x35]
push eax
lea ecx, [ebp - 0xd]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2c00
mov eax, ebx
call fcn.004ed830
mov ebx, eax
test ebx, ebx
jne 0x4f003a
mov ecx, 0x11f6
mov edx, 0x4f0580
mov eax, 0x4f05c0
call fcn.00404098
mov eax, ebx
call fcn.004b14d4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x4f00c9
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x10], 0
jne 0x4f0060
mov byte [ebp - 0xd], 3
mov al, byte [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x16
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, 5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2da0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x35]
push eax
lea ecx, [ebp - 0xd]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2c00
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0xc], 0
je 0x4f00f7
cmp byte [ebp - 0xd], 1
je 0x4f00f7
cmp byte [ebp - 0xd], 0
jne 0x4f004a
jmp 0x4f00f7
xor eax, eax
mov dword [ebp - 0x1c], eax
push 3
mov eax, dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, 5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2da0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
inc edi
dec esi
jne 0x4eff9b
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x28]
jne 0x4f015a
lea edx, [ebp - 0x4c]
mov eax, dword [0x51aec0]
call fcn.00406378
mov eax, dword [ebp - 0x4c]
call fcn.004efb88
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x28]
jne 0x4f015a
xor eax, eax
mov dword [ebp - 0x1c], eax
push 3
mov eax, dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, 5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2da0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x28]
je 0x4f0124
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x4f02a9
inc esi
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, edi
call fcn.004b79a0
mov ebx, eax
mov ax, word [ebx + 8]
add eax, 0xfffffff3
sub ax, 2
jae 0x4f02a1
mov al, byte [ebx + 0xa]
add al, 0xfe
sub al, 2
jae 0x4f02a1
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x2c]
je 0x4f01be
lea edx, [ebp - 0x50]
mov eax, dword [0x51b42c]
call fcn.00406378
mov eax, dword [ebp - 0x50]
call fcn.004efb88
jmp 0x4f02a9
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x35]
push eax
lea ecx, [ebp - 0xd]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2c00
mov eax, ebx
call fcn.004ed830
mov ebx, eax
test ebx, ebx
jne 0x4f01fd
mov ecx, 0x1226
mov edx, 0x4f0580
mov eax, 0x4f05c0
call fcn.00404098
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x28]
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.004b1298
mov al, byte [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x16
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, 5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2da0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov dword [eax + 8], edx
mov eax, dword [ebx + 0x1c]
cmp eax, dword [ebp - 0x1c]
jbe 0x4f0263
lea edx, [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.004b1344
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.004b13d8
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x35]
push eax
lea ecx, [ebp - 0xd]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2c00
cmp dword [ebp - 0xc], 0
je 0x4f02a1
cmp byte [ebp - 0xd], 1
je 0x4f02a1
cmp byte [ebp - 0xd], 0
jne 0x4f0204
inc edi
dec esi
jne 0x4f016f
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x2c]
jne 0x4f0324
lea edx, [ebp - 0x54]
mov eax, dword [0x51b5d8]
call fcn.00406378
mov eax, dword [ebp - 0x54]
call fcn.004efb88
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x2c]
jne 0x4f0324
mov dword [ebp - 0x1c], 0x64
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x35]
push eax
lea ecx, [ebp - 0xd]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2c00
push 3
mov eax, dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, 5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2da0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004ef7f8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x2c]
je 0x4f02ce
xor eax, eax
mov dword [ebp - 0x1c], eax
push 3
push 0
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, 5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.004f2da0
jmp 0x4f034d
mov eax, dword [ebp - 4]
call fcn.004edb8c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f036f
mov edx, dword [ebp - 0x34]
mov eax, dword [0x4a4acc]
call fcn.004a4e98
ret