Function at 0x40ac80
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42d036
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x440028]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
lea ecx, [esp + 0x14]
call dword [0x42ff78]
xor ebx, ebx
lea eax, [esp + 0x18]
mov dword [esp + 0x30], ebx
push 0x82
push eax
mov dword [0x451668], ebx
mov dword [0x45166c], 0x5a
call fcn.00401360
add esp, 8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x34], 1
call dword [0x42ffac]
lea ecx, [esp + 0x18]
mov byte [esp + 0x30], bl
call dword [0x42ffa8]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ecx
lea ecx, [esp + 0x1c]
mov ebx, 0x430a0c
call fcn.00403180
add esp, 4
call fcn.0040b580
mov edx, dword [0x451894]
push 0
push edx
call dword [0x42f054]
test eax, eax
je 0x40aea7
mov ecx, 0x451638
call fcn.00407030
test eax, eax
je 0x40aedf
mov edi, dword [0x45165c]
sub edi, dword [0x451658]
xor ebx, ebx
sar edi, 2
test edi, edi
jle 0x40ad78
mov eax, dword [0x451658]
mov ecx, dword [eax + ebx*4]
mov esi, 0x451638
call fcn.00408a90
mov dword [0x451680], eax
test eax, eax
je 0x40ad78
inc ebx
cmp ebx, edi
jl 0x40ad58
cmp dword [0x45167c], 0
je 0x40af17
mov esi, 0x451638
call fcn.00408f90
test eax, eax
je 0x40ae90
mov eax, dword [0x45166c]
cmp eax, 0x5a
jne 0x40ae10
lea ecx, [esp + 0x18]
push 0xd3
push ecx
call fcn.00401360
add esp, 8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x34], 3
call dword [0x42ffac]
lea ecx, [esp + 0x18]
mov byte [esp + 0x30], 0
call dword [0x42ffa8]
push ecx
mov edx, esp
mov dword [esp + 0x24], esp
push edx
lea ecx, [esp + 0x1c]
mov ebx, 0x430a0c
call fcn.00403180
add esp, 4
call fcn.0040b580
call dword [0x42ff70]
test eax, eax
je 0x40ae09
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
push 0
push 0x32
jmp 0x40ae81
xor eax, eax
push eax
push 0x32
jmp 0x40ae81
cmp eax, 0x9b
jne 0x40ae90
lea edx, [esp + 0x1c]
push 0xd4
push edx
call fcn.00401360
add esp, 8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x34], 4
call dword [0x42ffac]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x30], 0
call dword [0x42ffa8]
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push eax
lea ecx, [esp + 0x1c]
mov ebx, 0x430a0c
call fcn.00403180
add esp, 4
call fcn.0040b580
call dword [0x42ff70]
test eax, eax
je 0x40ae7b
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
jmp 0x40ae7d
xor eax, eax
push 0
push 0x64
mov ecx, dword [eax + 0x20]
push 0x402
push ecx
call dword [0x42f264]
mov edx, dword [0x451894]
push 0
push edx
call dword [0x42f054]
test eax, eax
jne 0x40ad31
lea eax, [esp + 0x1c]
push 0x72
push eax
call fcn.00401360
add esp, 8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x34], 2
call dword [0x42ffac]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x30], 0
call dword [0x42ffa8]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push ecx
jmp 0x40af50
cmp dword [0x45166c], 0x7d1
jne 0x40af66
mov esi, 0x451638
call fcn.00406fc0
lea ecx, [esp + 0x14]
call dword [0x42ffa8]
mov eax, 1
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x1c]
push 0xd2
push edx
call fcn.00401360
add esp, 8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x34], 5
call dword [0x42ffac]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x30], 0
call dword [0x42ffa8]
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push eax
lea ecx, [esp + 0x1c]
mov ebx, 0x430a0c
call fcn.00403180
add esp, 4
call fcn.0040b580
lea ecx, [esp + 0x14]
call dword [0x42ffa8]
xor eax, eax
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret