Function at 0x5fa9c8
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff8c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5fb329
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x5fb30e
mov eax, dword [ebp - 4]
call fcn.005fbe28
xor eax, eax
push ebp
push 0x5fb2fc
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.005fbdf0
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00412800
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x61cd68]
call fcn.0040ee68
mov eax, dword [ebp - 0x54]
push eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004081cc
xor eax, eax
push ebp
push 0x5fb2df
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x5fab47
mov eax, dword [ebp - 4]
call fcn.005fc5f4
cmp dword [eax + 8], 0
jle 0x5faab7
mov eax, dword [ebp - 4]
call fcn.005fc5f4
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
mov edi, eax
dec edi
test edi, edi
jl 0x5fab47
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x5fab43
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00412800
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x61cd68]
call fcn.0040ee68
mov eax, dword [ebp - 0x58]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004081cc
inc ebx
dec edi
jne 0x5faacc
test byte [ebp - 5], 4
je 0x5fad56
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
mov edi, eax
dec edi
test edi, edi
jl 0x5fac31
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
call fcn.005f502c
test al, al
je 0x5fac29
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x34]
call fcn.005f77f0
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.005fa9b0
test al, al
jne 0x5fac29
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005f7790
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00412800
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x61cd68]
call fcn.0040ee68
mov eax, dword [ebp - 0x5c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004081cc
inc ebx
dec edi
jne 0x5fab6a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
mov edi, eax
sub edi, 2
test edi, edi
jl 0x5fad66
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
cmp dword [eax + 0x34], 0
je 0x5fad4c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x34]
call fcn.005f78f8
add al, 0xfe
sub al, 2
jae 0x5fad4c
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005f86a4
call fcn.005f502c
test al, al
jne 0x5fad4c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
lea edx, [ebp - 0x20]
call fcn.005f4c34
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005f86a4
lea edx, [ebp - 0x30]
call fcn.005f4c34
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x40]
call fcn.00412848
test al, al
je 0x5fad4c
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x40]
call fcn.004127dc
test al, al
je 0x5fad03
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005f7908
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00412800
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x61cd68]
call fcn.0040ee68
mov eax, dword [ebp - 0x60]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004081cc
inc ebx
dec edi
jne 0x5fac4c
jmp 0x5fad66
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x5fae39
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x5fae47
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x5fad90
dec esi
test esi, esi
jle 0x5fadc0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005f86a4
cmp dword [eax + 0x34], 0
je 0x5fadc0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005f86a4
mov eax, dword [eax + 0x34]
call fcn.005f78f8
cmp al, 3
je 0x5fad8f
test esi, esi
jl 0x5fade5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005f86a4
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
pop edx
call fcn.005f6d98
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00412800
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x61cd68]
call fcn.0040ee68
mov eax, dword [ebp - 0x64]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004081cc
dec ebx
test ebx, ebx
jne 0x5fad87
jmp 0x5fae47
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5faffa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5fafb1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
mov esi, eax
dec esi
cmp esi, 0
jl 0x5faf66
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005f3be4
mov edx, dword [0x5e7640]
call fcn.004080e0
test al, al
jne 0x5faf45
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005f3be4
mov edx, dword [0x5e7248]
call fcn.004080e0
test al, al
jne 0x5faf45
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005f3be4
mov edx, dword [0x5e7e84]
call fcn.004080e0
test al, al
jne 0x5faf45
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005f3be4
mov edx, dword [0x5e8024]
call fcn.004080e0
test al, al
je 0x5faf5c
test ebx, ebx
jg 0x5faf45
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
dec eax
jne 0x5faf5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005eab38
dec esi
cmp esi, 0xffffffff
jne 0x5fae97
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
call fcn.005f3f08
test al, al
je 0x5fafa7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
test eax, eax
jne 0x5fafa7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
call fcn.00407df4
dec ebx
cmp ebx, 0xffffffff
jne 0x5fae76
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00412800
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x61cd68]
call fcn.0040ee68
mov eax, dword [ebp - 0x68]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004081cc
test byte [ebp - 5], 1
je 0x5fb141
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5fb14f
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
call fcn.005f3f08
test al, al
jne 0x5fb135
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
call fcn.005f502c
test al, al
je 0x5fb135
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x34]
call fcn.005f78cc
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
call fcn.005f69e4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
call fcn.005f3f08
test al, al
je 0x5fb0ec
test ebx, ebx
jle 0x5fb0df
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005f86a4
call fcn.005f502c
test al, al
je 0x5fb0df
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005f86a4
mov eax, dword [eax + 0x34]
call fcn.005f78cc
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005f86a4
mov eax, dword [eax + 0x34]
pop edx
call fcn.005f78d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005eab38
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00412800
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x61cd68]
call fcn.0040ee68
mov eax, dword [ebp - 0x6c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004081cc
dec ebx
cmp ebx, 0xffffffff
jne 0x5fb01b
jmp 0x5fb14f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5fb285
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5fb23c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
cmp dword [eax + 0x34], 0
je 0x5fb1f1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.005f78cc
test ax, ax
je 0x5fb1bb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
dec eax
jne 0x5fb1f1
mov eax, esi
call fcn.005f7784
test al, al
jne 0x5fb1f1
mov eax, esi
call fcn.005f78dc
test al, al
jne 0x5fb1f1
mov eax, esi
call fcn.005f78f8
sub al, 2
jb 0x5fb1ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
dec eax
jne 0x5fb1f1
mov eax, esi
call fcn.00407df4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
call fcn.005f3f08
test al, al
je 0x5fb232
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
mov eax, dword [eax + 0x30]
call fcn.005eaaf0
test eax, eax
jne 0x5fb232
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005f86a4
call fcn.00407df4
dec ebx
cmp ebx, 0xffffffff
jne 0x5fb17e
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00412800
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x61cd68]
call fcn.0040ee68
mov eax, dword [ebp - 0x70]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004081cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5fb2e6
call fcn.00406ec0
test eax, eax
jne 0x5fb2a2
mov ebx, 0x64
jmp 0x5fb2a4
xor ebx, ebx
push ebx
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00412800
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x61cd68]
call fcn.0040ee68
mov eax, dword [ebp - 0x74]
push eax
mov cl, 2
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.004081cc
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5fb330
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00409c24
ret