Function at 0x51cf14
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov ebx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x51d199
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x48
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov ecx, dword [0x51b258]
call fcn.0040611c
push 0
mov eax, dword [ebp - 4]
add eax, 0x48
mov ecx, 1
mov edx, dword [0x51b258]
call fcn.004060d4
add esp, 4
push 0
mov eax, dword [ebp + 8]
push eax
xor ecx, ecx
xor edx, edx
mov eax, 0x64
call fcn.00546280
mov eax, dword [ebp - 4]
mov byte [eax + 4], bl
xor edx, edx
push ebp
push 0x51d163
push dword fs:[edx]
mov dword fs:[edx], esp
mov esi, 1
mov ebx, 1
jmp 0x51d0eb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov al, byte [eax + ebx - 1]
sub al, 0xd
je 0x51d016
sub al, 0x19
je 0x51cfc1
sub al, 0x16
je 0x51d06f
jmp 0x51d0ea
cmp esi, ebx
jge 0x51cfd1
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0051d718
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov ecx, ebx
mov eax, dword [ebp - 4]
call fcn.0051cd3c
cmp dword [ebp - 0x10], 0
je 0x51cffd
mov eax, dword [ebp - 0x10]
call fcn.00404ef8
add ebx, eax
mov esi, ebx
dec ebx
jmp 0x51d0ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
cmp byte [eax + ebx], 0x26
sete al
mov esi, eax
and esi, 0x7f
add esi, ebx
jmp 0x51d0ea
cmp byte [0x5893c4], 0
je 0x51d0ea
cmp esi, ebx
jge 0x51d033
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0051d718
mov esi, ebx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x34], 0
jne 0x51d059
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0042c75c
mov edx, 0x51d1b0
call fcn.00535374
mov edx, dword [ebp - 4]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 4]
call fcn.0051d3d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 4]
mov dword [edx + 0x14], eax
jmp 0x51d0ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
cmp byte [eax + ebx], 0x3c
je 0x51d0d7
cmp esi, ebx
jge 0x51d08b
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0051d718
lea ecx, [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, ebx
call fcn.0051b328
cmp dword [ebp - 0xc], 0
jne 0x51d0a6
inc ebx
mov esi, ebx
jmp 0x51d0eb
mov ecx, ebx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.0051badc
test al, al
je 0x51d0c6
mov eax, dword [ebp - 0xc]
call fcn.00404ef8
add ebx, eax
mov esi, ebx
dec ebx
jmp 0x51d0ea
inc ebx
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0051d718
mov esi, ebx
jmp 0x51d0ea
cmp esi, ebx
jge 0x51d0e7
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0051d718
inc ebx
mov esi, ebx
inc ebx
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x10]
jle 0x51cfa2
cmp esi, ebx
jge 0x51d107
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0051d718
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jle 0x51d11b
mov edx, dword [ebp - 4]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x30], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x34]
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51d16a
push 0
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
xor ecx, ecx
call fcn.00546280
mov eax, dword [ebp - 4]
mov byte [eax + 4], 0
ret