Function at 0x56e6f8
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 0x56ef87
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 0x56ec61
mov eax, dword [edi]
cmp byte [eax], 0x7b
jne 0x56e893
mov eax, dword [edi]
call fcn.0062c528
test al, al
je 0x56e87e
mov eax, dword [edi]
add eax, 3
call fcn.0062c53c
test al, al
je 0x56e87e
lea edx, [ebp - 0x28]
mov eax, dword [edi]
add eax, 4
call fcn.0062c568
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.0062c6e8
mov esi, eax
mov eax, esi
sub ax, 0xd6
je 0x56e7f0
sub ax, 0x60
je 0x56e825
sub ax, 0x6a
jne 0x56e869
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.0057078c
pop ecx
mov bl, 3
cmp si, 0x1a0
jne 0x56ec4a
mov bl, 5
jmp 0x56ec4a
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.0057078c
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
and word [eax - 2], 0xefff
jmp 0x56ec4a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.00567c7c
pop ecx
jmp 0x56ec4a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.00567c7c
pop ecx
jmp 0x56ec4a
mov eax, dword [edi]
call fcn.0062c53c
test al, al
je 0x56ebd1
lea edx, [ebp - 0x28]
mov eax, dword [edi]
inc eax
call fcn.0062c568
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.0062c6e8
movzx eax, ax
cmp eax, 0x138
jg 0x56e936
je 0x56eb23
cmp eax, 0x134
jg 0x56e91d
je 0x56eab8
sub eax, 0x1d
je 0x56e973
sub eax, 0x6f
je 0x56eaa9
sub eax, 0x49
je 0x56eba6
jmp 0x56ebbd
sub eax, 0x135
je 0x56ead6
sub eax, 2
je 0x56eaf4
jmp 0x56ebbd
cmp eax, 0x13f
jg 0x56e95a
je 0x56ebae
sub eax, 0x13a
je 0x56eb4f
dec eax
je 0x56eb6a
jmp 0x56ebbd
sub eax, 0x1ea
je 0x56eb85
sub eax, 7
je 0x56ebb6
jmp 0x56ebbd
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062c5c0
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 0x56ea9f
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 0x56ea1a
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 0x56ebbd
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.00653538
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 0x56ea95
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.00565f70
pop ecx
cmp esi, dword [ebp - 0xc]
jb 0x56ea3a
jmp 0x56ebbd
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x56ebbd
test bl, bl
jne 0x56ebbd
mov bl, 1
jmp 0x56ebbd
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062c5c0
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x28], eax
jmp 0x56ebbd
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062c5c0
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x30], eax
jmp 0x56ebbd
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062c5c0
mov edx, eax
mov eax, 0x3e8
call fcn.00653538
call fcn.00653554
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x34], eax
jmp 0x56ebbd
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062c5c0
mov edx, eax
mov eax, 0x3e8
call fcn.00653538
call fcn.00653554
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x38], eax
jmp 0x56ebbd
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062c5c0
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x24], eax
jmp 0x56ebbd
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062c5c0
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], eax
jmp 0x56ebbd
test bl, bl
jne 0x56eb8b
mov bl, 2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
add eax, 0xfffff86c
call fcn.0062c5c0
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x20], eax
jmp 0x56ebbd
test bl, bl
jne 0x56ebbd
mov bl, 3
jmp 0x56ebbd
test bl, bl
jne 0x56ebbd
mov bl, 4
jmp 0x56ebbd
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 0x56ec21
mov eax, dword [edi]
mov al, byte [eax]
xor edx, edx
mov dl, al
mov ecx, dword [0x66f438]
cmp byte [ecx + edx], 0xff
je 0x56ec17
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.005679ac
pop ecx
mov dword [ebp - 0x10], eax
jmp 0x56ec61
cmp al, 0x7d
jne 0x56ec1f
inc dword [edi]
jmp 0x56ec61
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 0x56ec4a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
call fcn.00565f70
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 0x56e76a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
call fcn.00561234
test al, al
je 0x56eca9
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.004bf904
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x784]
call fcn.00561278
jmp 0x56ef7d
test bl, bl
je 0x56ecc5
cmp dword [ebp - 0x10], 0
jne 0x56ecd2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
cmp dword [eax - 0x7b0], 0
jne 0x56ecd2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x56ef9c
xor eax, eax
push ebp
push 0x56ef64
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
dec eax
sub al, 2
jb 0x56ecfa
je 0x56ed31
dec al
je 0x56ee27
dec al
je 0x56ed31
jmp 0x56ee4d
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.0055df3c
cmp bl, 2
sete al
mov edx, dword [ebp - 0x18]
mov byte [edx + 0x48], al
jmp 0x56ee4d
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x4a], 2
cmp bl, 5
jne 0x56ed44
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 0x56ed7a
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.0055df3c
jmp 0x56ee4d
cmp bl, 5
jne 0x56edc4
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.0040833c
mov ebx, eax
mov eax, ebx
call fcn.006514f0
push eax
push 0
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0055df3c
mov eax, ebx
call fcn.004028c0
jmp 0x56edef
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.0055df3c
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 0x56ee4d
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.0055df3c
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x2c], 0
jle 0x56ee63
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x30], 0
jg 0x56ef5a
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0055ddf4
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 0x56eefd
mov dl, 1
mov eax, dword [0x6471e4]
call fcn.00649584
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x56eef6
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.00649b6c
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.00649f48
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56ef21
mov eax, dword [ebp - 8]
call fcn.004028c0
ret
mov eax, dword [ebp - 0x18]
call fcn.0055e0f8
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.0053a6f4
test al, al
je 0x56ef5a
mov dl, 1
mov eax, dword [ebp - 0x18]
call fcn.0055ddf4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x56ef7d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x56ef98
mov byte [ebp - 1], 1
mov al, byte [ebp - 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret