Function at 0x5716b0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov edi, dword [edi + 8]
mov edi, dword [edi + 8]
mov edi, dword [edi + 8]
add edi, 0xffffffe4
mov byte [ebp - 1], 0
xor eax, eax
mov dword [ebp - 0x10], eax
xor ebx, ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x1c], eax
xor edx, edx
push ebp
push 0x571f3f
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [edi]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
cmp eax, dword [edx - 0x24]
jae 0x571c19
mov eax, dword [edi]
cmp byte [eax], 0x7b
jne 0x57184b
mov eax, dword [edi]
call fcn.0062fa54
test al, al
je 0x571836
mov eax, dword [edi]
add eax, 3
call fcn.0062fa68
test al, al
je 0x571836
lea edx, [ebp - 0x28]
mov eax, dword [edi]
add eax, 4
call fcn.0062fa94
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x28]
mov dword [eax - 0x794], edx
mov edx, dword [ebp - 0x24]
mov dword [eax - 0x790], edx
mov edx, dword [ebp - 0x20]
mov dword [eax - 0x78c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062fc14
mov esi, eax
mov eax, esi
sub ax, 0xd6
je 0x5717a8
sub ax, 0x60
je 0x5717dd
sub ax, 0x6a
jne 0x571821
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov edx, dword [eax - 0x790]
mov eax, esi
call fcn.00573744
pop ecx
mov bl, 3
cmp si, 0x1a0
jne 0x571c02
mov bl, 5
jmp 0x571c02
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
or word [eax - 2], 0x1000
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov edx, dword [eax - 0x790]
mov eax, esi
call fcn.00573744
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
and word [eax - 2], 0xefff
jmp 0x571c02
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.0056ac34
pop ecx
jmp 0x571c02
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.0056ac34
pop ecx
jmp 0x571c02
mov eax, dword [edi]
call fcn.0062fa68
test al, al
je 0x571b89
lea edx, [ebp - 0x28]
mov eax, dword [edi]
inc eax
call fcn.0062fa94
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x28]
mov dword [eax - 0x794], edx
mov edx, dword [ebp - 0x24]
mov dword [eax - 0x790], edx
mov edx, dword [ebp - 0x20]
mov dword [eax - 0x78c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062fc14
movzx eax, ax
cmp eax, 0x138
jg 0x5718ee
je 0x571adb
cmp eax, 0x134
jg 0x5718d5
je 0x571a70
sub eax, 0x1d
je 0x57192b
sub eax, 0x6f
je 0x571a61
sub eax, 0x49
je 0x571b5e
jmp 0x571b75
sub eax, 0x135
je 0x571a8e
sub eax, 2
je 0x571aac
jmp 0x571b75
cmp eax, 0x13f
jg 0x571912
je 0x571b66
sub eax, 0x13a
je 0x571b07
dec eax
je 0x571b22
jmp 0x571b75
sub eax, 0x1ea
je 0x571b3d
sub eax, 7
je 0x571b6e
jmp 0x571b75
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062faec
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x790]
inc eax
add dword [edi], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov dword [eax - 0x790], 0xffffffff
cmp dword [ebp - 0x10], 0
jle 0x571a57
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x7ac]
cmp eax, dword [ebp - 0x10]
jge 0x5719d2
mov eax, dword [ebp - 0x10]
lea eax, [eax + eax*2]
shr eax, 1
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
mov dword [edx - 0x7ac], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x7a8]
call fcn.00401fac
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x7ac]
call fcn.00401e58
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
mov dword [edx - 0x7a8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov esi, dword [eax - 0x7a8]
mov eax, dword [ebp - 0x10]
add eax, esi
mov dword [ebp - 0xc], eax
cmp esi, dword [ebp - 0xc]
jae 0x571b75
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x24]
sub eax, dword [edi]
mov edx, dword [ebp - 0xc]
sub edx, esi
call fcn.00656b70
mov dword [ebp - 0x14], eax
mov edx, esi
mov eax, dword [edi]
mov ecx, dword [ebp - 0x14]
call fcn.004023c8
add esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
add dword [edi], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x24]
sub eax, dword [edi]
cmp eax, 0x20
jge 0x571a4d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.00568f28
pop ecx
cmp esi, dword [ebp - 0xc]
jb 0x5719f2
jmp 0x571b75
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x571b75
test bl, bl
jne 0x571b75
mov bl, 1
jmp 0x571b75
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062faec
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x28], eax
jmp 0x571b75
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062faec
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
jmp 0x571b75
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062faec
mov edx, eax
mov eax, 0x3e8
call fcn.00656b70
call fcn.00656b8c
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x34], eax
jmp 0x571b75
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062faec
mov edx, eax
mov eax, 0x3e8
call fcn.00656b70
call fcn.00656b8c
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x38], eax
jmp 0x571b75
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062faec
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x24], eax
jmp 0x571b75
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062faec
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
jmp 0x571b75
test bl, bl
jne 0x571b43
mov bl, 2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062faec
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x20], eax
jmp 0x571b75
test bl, bl
jne 0x571b75
mov bl, 3
jmp 0x571b75
test bl, bl
jne 0x571b75
mov bl, 4
jmp 0x571b75
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x3c], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x790]
inc eax
add dword [edi], eax
jmp 0x571bd9
mov eax, dword [edi]
mov al, byte [eax]
xor edx, edx
mov dl, al
mov ecx, dword [0x6724a0]
cmp byte [ecx + edx], 0xff
je 0x571bcf
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x7ac]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff858
call fcn.0056a964
pop ecx
mov dword [ebp - 0x10], eax
jmp 0x571c19
cmp al, 0x7d
jne 0x571bd7
inc dword [edi]
jmp 0x571c19
inc dword [edi]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x24]
sub eax, dword [edi]
cmp eax, 0x20
jge 0x571c02
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.00568f28
pop ecx
mov eax, dword [edi]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
cmp eax, dword [edx - 0x24]
jb 0x571722
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
call fcn.005641ec
test al, al
je 0x571c61
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
mov eax, dword [eax + 0x24]
call fcn.004c1a38
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
call fcn.00564230
jmp 0x571f35
test bl, bl
je 0x571c7d
cmp dword [ebp - 0x10], 0
jne 0x571c8a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
cmp dword [eax - 0x7b0], 0
jne 0x571c8a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x571f54
xor eax, eax
push ebp
push 0x571f1c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
dec eax
sub al, 2
jb 0x571cb2
je 0x571ce9
dec al
je 0x571ddf
dec al
je 0x571ce9
jmp 0x571e05
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x4a], 0
mov eax, dword [ebp - 0x10]
push eax
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0x7a8]
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.00560ef4
cmp bl, 2
sete al
mov edx, dword [ebp - 0x18]
mov byte [edx + 0x48], al
jmp 0x571e05
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x4a], 2
cmp bl, 5
jne 0x571cfc
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x4a], 3
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
cmp dword [eax - 0x7b0], 0
jne 0x571d32
mov eax, dword [ebp - 0x10]
push eax
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0x7a8]
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.00560ef4
jmp 0x571e05
cmp bl, 5
jne 0x571d7c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov edx, dword [eax - 0x7b0]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x7b4]
call fcn.0040834c
mov ebx, eax
mov eax, ebx
call fcn.00654b4c
push eax
push 0
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.00560ef4
mov eax, ebx
call fcn.004028c0
jmp 0x571da7
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x7b0]
push eax
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0x7b4]
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.00560ef4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x7b4]
call fcn.00401fac
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
xor edx, edx
mov dword [eax - 0x7b4], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
xor edx, edx
mov dword [eax - 0x7b0], edx
jmp 0x571e05
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x4a], 1
mov eax, dword [ebp - 0x10]
push eax
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0x7a8]
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.00560ef4
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x2c], 0
jle 0x571e1b
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x30], 0
jg 0x571f12
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.00560dac
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x34], 0x64
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x38], 0x64
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0x4a], 0
jne 0x571eb5
mov dl, 1
mov eax, dword [0x64a85c]
call fcn.0064cbfc
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x571eae
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x4a], 0
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 8]
call fcn.0064d1e4
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x28]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x1c]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 8]
call fcn.0064d5c0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x571ed9
mov eax, dword [ebp - 8]
call fcn.004028c0
ret
mov eax, dword [ebp - 0x18]
call fcn.005610b0
mov ebx, eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x28]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x1c]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x2c]
mov edx, eax
shl eax, 4
sub eax, edx
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x30]
mov edx, eax
shl eax, 4
sub eax, edx
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
call fcn.0053d548
test al, al
je 0x571f12
mov dl, 1
mov eax, dword [ebp - 0x18]
call fcn.00560dac
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x571f35
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x571f50
mov byte [ebp - 1], 1
mov al, byte [ebp - 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret