Function at 0x408be4
Capabilities:
Get number of processors

Disassembly:
pop ecx
push edi
or edi, 0x198c
jmp 0x408666
add edi, 0x1ad9
pop edi
cmp dword [ebp - 0x15fc], 0
jne 0x408685
mov dword [ebp - 0x31c], 0
jmp 0x40892c
mov ecx, dword [ebp - 0x15fc]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xcb4], eax
push eax
or eax, 0x2d4e
pop eax
push ebx
push edi
add esp, 4
jmp 0x4086aa
pop ebx
push ecx
push ebx
add esp, 4
and ecx, 0xc56a
pop ecx
push edx
push edx
add esp, 4
xor edx, 0x47c6
xor edx, 0x9f28
pop edx
cmp dword [ebp - 0xcb4], 0
jne 0x4086e1
mov dword [ebp - 0x31c], 0
jmp 0x40892c
mov ecx, dword [ebp - 0xcb4]
mov dword [ebp - 0x50c], ecx
push ebx
xor ebx, 0x29f7
and ebx, 0x18507
sub ebx, 0xcdd1
pop ebx
push eax
and eax, 0x60ad
pop eax
push eax
push esi
add esp, 4
call 0x40871b
add byte [edi], bh
inc ebx
cmp byte ss:[edi + 0x46], al
add esp, 4
pop eax
lea edx, [ebp - 0x1738]
mov dword [ebp - 0xcb0], edx
mov eax, dword [ebp - 0x50c]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xcac], ecx
xor edx, edx
push ebx
jmp 0x408936
call 0x408942
add byte [ebx], bh
inc ebp
dec ecx
cmp byte [esi + esi], bh
add esp, 4
and ebx, 0x173aa
sub ebx, 0xe9b5
add byte [ebx + 0x51], bl
push ecx
add esp, 4
sub ecx, 0x32ee
pop ecx
mov eax, dword [ebp - 0x31c]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x324], ecx
push ebx
or ebx, 0xc333
or ebx, 0xb413
pop ebx
push ebx
push edi
add esp, 4
and ebx, 0xae8a
or ebx, 0x9367
pop ebx
push edi
push ebx
add esp, 4
add edi, 0x16edb
and edi, 0x7d58
pop edi
mov dword [ebp - 0x770], 0
mov edx, dword [ebp - 0x324]
mov dword [ebp - 0x1608], edx
cmp dword [ebp - 0x1608], 0
jne 0x4089cf
mov eax, dword [ebp - 0x770]
mov dword [ebp - 0x510], eax
jmp 0x408cc0
mov ecx, dword [ebp - 0x1608]
mov edx, dword [ebp - 0x324]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x160c], edx
jne 0x4089f7
mov eax, dword [ebp - 0x770]
mov dword [ebp - 0x510], eax
jmp 0x408cc0
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x160c]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x1610], ecx
cmp dword [ebp - 0x1610], 0
jne 0x408a29
mov edx, dword [ebp - 0x770]
mov dword [ebp - 0x510], edx
jmp 0x408cc0
mov eax, dword [ebp - 0x324]
add eax, dword [ebp - 0x1610]
mov dword [ebp - 0x764], eax
jne 0x408a4e
mov ecx, dword [ebp - 0x770]
mov dword [ebp - 0x510], ecx
jmp 0x408cc0
mov edx, dword [ebp - 0x764]
mov eax, dword [ebp - 0x324]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x1984], eax
mov ecx, dword [ebp - 0x764]
mov edx, dword [ebp - 0x324]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x1988], edx
mov eax, dword [ebp - 0x764]
mov ecx, dword [ebp - 0x324]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x1d10], ecx
mov dword [ebp - 0x768], 0
jmp 0x408aa8
mov eax, dword [ebp - 0x764]
mov ecx, dword [ebp - 0x768]
cmp ecx, dword [eax + 0x18]
jae 0x408cb4
mov edx, dword [ebp - 0x768]
mov eax, dword [ebp - 0x1984]
mov ecx, dword [ebp - 0x324]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x76c], ecx
mov edx, dword [ebp - 0x768]
mov eax, dword [ebp - 0x1988]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x1d10]
mov eax, dword [ebp - 0x324]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x198c], eax
mov dword [ebp - 0x19c], 0
jmp 0x408b18
mov edx, dword [ebp - 0x76c]
add edx, dword [ebp - 0x19c]
movsx eax, byte [edx]
test eax, eax
je 0x408bca
mov ecx, dword [ebp - 0x19c]
movsx edx, byte [ebp + ecx - 0x878]
test edx, edx
je 0x408bca
push eax
push ebx
add esp, 4
add eax, 0x4d50
sub eax, 0xe54c
pop eax
push ebx
push ecx
add esp, 4
call 0x408b6c
add byte [edi + edi], dh
inc eax
inc ecx
push eax
xor eax, dword [ebx + 0x45]
xor eax, dword [ebx - 0x7d]
les eax, [ebx + ebp*8]
add eax, 0x4c324933
cmp bl, byte [ebx - 0x75]
test dword [eax + edi*8 - 0x7afc0001], edx
invalid
push edx
push esi
add esp, 4
sub edx, 0x153e1
call 0x408be4
add byte [esi], bh
xor eax, 0x4a333f3d
inc esp
inc ecx
cmp dword [ebx - 0x357efb3c], eax
daa
push ds
add byte [eax], al
sub edx, 0x4aeb
pop edx
push eax
xor eax, 0x1207f
pop eax
mov edx, dword [ebp - 0x76c]
add edx, dword [ebp - 0x19c]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x19c]
movsx edx, byte [ebp + ecx - 0x878]
cmp eax, edx
jne 0x408c29
mov dword [ebp - 0xcb8], 0
jmp 0x408c98
push ebx
and ebx, 0x113e5
and ebx, 0xdf86
xor ebx, 0x1b4b
pop ebx
push ebx
push ecx
add esp, 4
and ebx, 0xc996
and ebx, 0x16669
sub ebx, 0x6434
or ebx, 0xc68a
pop ebx
mov eax, dword [ebp - 0x76c]
add eax, dword [ebp - 0x19c]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 0x19c]
movsx eax, byte [ebp + edx - 0x878]
or eax, 0x20
cmp ecx, eax
jge 0x408c8e
mov dword [ebp - 0xcb8], 0xffffffff
jmp 0x408c98
invalid
invalid