Function at 0x57d414
Capabilities:
Get number of processors

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x422000]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x44], ecx
xor ecx, ecx
mov edi, ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x24]
push ecx
push 0x4051d4
push eax
mov dword [ebp - 0x28], edi
call fcn.00574404
mov esi, eax
test esi, esi
jns 0x57d472
cmp esi, 0xc0000034
jne 0x57d5b9
xor esi, esi
jmp 0x57d5b9
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x3c]
push eax
push 0x24000001
push dword [ebp - 0x24]
call fcn.005778c0
mov esi, eax
test esi, esi
js 0x57d4d4
mov eax, dword [ebp - 0x58]
shr eax, 4
mov dword [ebp - 0x20], eax
shl eax, 2
push eax
mov eax, dword fs:[0x30]
push 0
push dword [eax + 0x18]
call dword [fcn.004236c8]
mov edi, eax
mov dword [ebp - 0x28], edi
test edi, edi
jne 0x57d4be
mov esi, 0xc000009a
jmp 0x57d59f
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x44]
mov eax, edi
call fcn.0057dd1c
mov esi, dword [ebp - 0x20]
jmp 0x57d4e5
cmp esi, 0xc0000225
jne 0x57d59f
xor esi, esi
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0057ec76
test byte [ebp + 0xc], 1
mov dword [ebp - 0x54], eax
je 0x57d676
test eax, eax
js 0x57d676
mov eax, dword [ebp - 0x40]
add eax, esi
mov dword [ebp - 0x48], eax
mov edx, 0xc0000095
cmp eax, esi
jb 0x57d51c
xor esi, esi
jmp 0x57d524
or eax, 0xffffffff
mov dword [ebp - 0x48], eax
mov esi, edx
test esi, esi
js 0x57d56f
mov ecx, eax
xor eax, eax
shld eax, ecx, 2
shl ecx, 2
test eax, eax
ja 0x57d542
jb 0x57d53e
cmp ecx, 0xffffffff
ja 0x57d542
xor esi, esi
jmp 0x57d547
or ecx, 0xffffffff
mov esi, edx
test esi, esi
js 0x57d56f
mov eax, dword fs:[0x30]
push ecx
push 0
push dword [eax + 0x18]
call dword [fcn.004236c8]
mov edi, eax
test edi, edi
jne 0x57d626
mov esi, 0xc000009a
mov edi, dword [ebp - 0x28]
test edi, edi
je 0x57d585
mov eax, dword fs:[0x30]
push edi
push 0
push dword [eax + 0x18]
call dword [fcn.004236cc]
cmp dword [ebp - 0x30], 0
je 0x57d59f
push dword [ebp - 0x30]
mov eax, dword fs:[0x30]
push 0
push dword [eax + 0x18]
call dword [fcn.004236cc]
cmp dword [ebp - 0x3c], 0
je 0x57d5b9
push dword [ebp - 0x3c]
mov eax, dword fs:[0x30]
push 0
push dword [eax + 0x18]
call dword [fcn.004236cc]
cmp dword [ebp - 0x24], 0
je 0x57d5c7
push dword [ebp - 0x24]
call fcn.00578b26
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x57d5e0
push eax
mov eax, dword fs:[0x30]
push 0
push dword [eax + 0x18]
call dword [fcn.004236cc]
cmp dword [ebp - 0x2c], 0
je 0x57d5fa
push dword [ebp - 0x2c]
mov eax, dword fs:[0x30]
push 0
push dword [eax + 0x18]
call dword [fcn.004236cc]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x57d613
mov eax, dword fs:[0x30]
push ecx
push 0
push dword [eax + 0x18]
call dword [fcn.004236cc]
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.005800be
leave
ret 8
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x57d63e
mov eax, dword [ebp - 0x20]
shl eax, 2
push eax
push esi
push edi
call fcn.00580eee
add esp, 0xc
mov eax, dword [ebp - 0x40]
shl eax, 2
push eax
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x2c]
lea eax, [edi + eax*4]
push eax
call fcn.00580eee
add esp, 0xc
test esi, esi
je 0x57d66d
mov eax, dword fs:[0x30]
push esi
push 0
push dword [eax + 0x18]
call dword [fcn.004236cc]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x24]
push dword [ebp - 0x44]
call fcn.0057dbd4
mov esi, eax
test esi, esi
js 0x57d56c
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x20]
cmp dword [ebp - 0x54], ebx
jl 0x57d6bd
test esi, esi
je 0x57d6bd
cmp dword [ebp - 0x40], esi
jne 0x57d6bd
mov eax, esi
shl eax, 2
push eax
push dword [ebp - 0x2c]
push edi
call fcn.00585184
add esp, 0xc
test eax, eax
je 0x57d6ce
push esi
push edi
call fcn.0057eae0
mov esi, eax
test esi, esi
js 0x57d56f
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x38]
push eax
push 0x25000004
push dword [ebp - 0x24]
mov dword [ebp - 0x18], 0x18
mov dword [ebp - 0x1c], 1
call fcn.005778c0
mov esi, eax
test esi, esi
js 0x57d715
mov eax, dword [ebp - 0x38]
xor ebx, ebx
inc ebx
cmp dword [eax + 4], 0
ja 0x57d70f
cmp dword [eax], 0xffffffff
ja 0x57d70f
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
jmp 0x57d738
or dword [ebp - 0x14], 0xffffffff
jmp 0x57d738
cmp esi, 0xc0000225
jne 0x57d56f
mov ecx, 0x420f00
call fcn.0057e9a4
mov esi, eax
test esi, esi
js 0x57d56f
and dword [ebp - 0x14], ebx
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x30]
push eax
push 0x24000002
push dword [ebp - 0x24]
call fcn.005778c0
mov esi, eax
test esi, esi
js 0x57d777
mov edx, dword [ebp - 0x44]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x30]
or ebx, 2
call fcn.0057dd78
mov esi, eax
test esi, esi
js 0x57d56f
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xc], eax
jmp 0x57d79b
cmp esi, 0xc0000225
jne 0x57d56f
mov ecx, 0x420f10
call fcn.0057e9a4
mov esi, eax
test esi, esi
js 0x57d56f
and dword [ebp - 0xc], 0
and dword [ebp - 0x50], 0
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0057ed3a
test eax, eax
js 0x57d7dd
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx]
cmp eax, dword [ebp - 0x1c]
jne 0x57d7dd
test bl, 1
je 0x57d7ca
mov eax, dword [ecx + 8]
cmp eax, dword [ebp - 0x14]
jne 0x57d7ca
and ebx, 0xfffffffe
test bl, 2
je 0x57d7dd
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x10]
cmp eax, dword [ebp - 0xc]
jne 0x57d7dd
and ebx, 0xfffffffd
test ebx, ebx
je 0x57d56f
push ebx
lea eax, [ebp - 0x1c]
push eax
call fcn.0057eb40
mov esi, eax
jmp 0x57d56f