Function at 0x50efe4
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 0x50f26a
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 [0x50d328]
call fcn.00406234
push 0
mov eax, dword [ebp - 4]
add eax, 0x48
mov ecx, 1
mov edx, dword [0x50d328]
call fcn.004061ec
add esp, 4
push 0
mov eax, dword [ebp + 8]
push eax
xor ecx, ecx
xor edx, edx
mov eax, 0x64
call fcn.005573c8
mov eax, dword [ebp - 4]
mov byte [eax + 4], bl
xor edx, edx
push ebp
push 0x50f234
push dword fs:[edx]
mov dword fs:[edx], esp
mov esi, 1
mov ebx, 1
jmp 0x50f1bc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov al, byte [eax + ebx - 1]
sub al, 0xd
je 0x50f0e6
sub al, 0x19
je 0x50f091
sub al, 0x16
je 0x50f140
jmp 0x50f1bb
cmp esi, ebx
jge 0x50f0a1
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0050f7ec
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.0050ee0c
cmp dword [ebp - 0x10], 0
je 0x50f0cd
mov eax, dword [ebp - 0x10]
call fcn.00404f70
add ebx, eax
mov esi, ebx
dec ebx
jmp 0x50f1bb
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 0x50f1bb
mov eax, dword [0x57ebc4]
cmp byte [eax], 0
je 0x50f1bb
cmp esi, ebx
jge 0x50f104
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0050f7ec
mov esi, ebx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x34], 0
jne 0x50f12a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0042bf5c
mov edx, 0x50f284
call fcn.00506264
mov edx, dword [ebp - 4]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 4]
call fcn.0050f4a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 4]
mov dword [edx + 0x14], eax
jmp 0x50f1bb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
cmp byte [eax + ebx], 0x3c
je 0x50f1a8
cmp esi, ebx
jge 0x50f15c
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0050f7ec
lea ecx, [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, ebx
call fcn.0050d3f8
cmp dword [ebp - 0xc], 0
jne 0x50f177
inc ebx
mov esi, ebx
jmp 0x50f1bc
mov ecx, ebx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.0050dbac
test al, al
je 0x50f197
mov eax, dword [ebp - 0xc]
call fcn.00404f70
add ebx, eax
mov esi, ebx
dec ebx
jmp 0x50f1bb
inc ebx
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0050f7ec
mov esi, ebx
jmp 0x50f1bb
cmp esi, ebx
jge 0x50f1b8
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0050f7ec
inc ebx
mov esi, ebx
inc ebx
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x10]
jle 0x50f072
cmp esi, ebx
jge 0x50f1d8
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0050f7ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jle 0x50f1ec
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 0x50f23b
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.005573c8
mov eax, dword [ebp - 4]
mov byte [eax + 4], 0
ret