Function at 0x4f1600
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 0x4f1f66
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 0x4f1f4b
mov eax, dword [ebp - 4]
call fcn.004f2960
xor eax, eax
push ebp
push 0x4f1f39
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.004f2930
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00432080
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x5e9444]
call fcn.0040a654
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.004051f8
xor eax, eax
push ebp
push 0x4f1f1c
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.004e47e8
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x4f177f
mov eax, dword [ebp - 4]
call fcn.004f312c
cmp dword [eax + 8], 0
jle 0x4f16ef
mov eax, dword [ebp - 4]
call fcn.004f312c
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
mov edi, eax
dec edi
test edi, edi
jl 0x4f177f
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x4f177b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
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 fcn.0040be1c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00432080
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x5e9444]
call fcn.0040a654
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.004051f8
inc ebx
dec edi
jne 0x4f1704
test byte [ebp - 5], 4
je 0x4f1993
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
mov edi, eax
dec edi
test edi, edi
jl 0x4f1869
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
call fcn.004ed07c
test al, al
je 0x4f1861
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x34]
call fcn.004ef690
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.004f15e8
test al, al
jne 0x4f1861
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.004ef66c
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040be1c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00432080
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x5e9444]
call fcn.0040a654
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.004051f8
inc ebx
dec edi
jne 0x4f17a2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
mov edi, eax
sub edi, 2
test edi, edi
jl 0x4f19a3
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
cmp dword [eax + 0x34], 0
je 0x4f1989
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x34]
call fcn.004ef788
add al, 0xfe
sub al, 2
jae 0x4f1989
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f0280
call fcn.004ed07c
test al, al
jne 0x4f1989
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
lea edx, [ebp - 0x20]
call fcn.004ecdac
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f0280
lea edx, [ebp - 0x30]
call fcn.004ecdac
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0040c5bc
test eax, eax
je 0x4f1989
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0040c3c4
test eax, eax
je 0x4f1940
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.004ef798
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040be1c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00432080
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x5e9444]
call fcn.0040a654
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.004051f8
inc ebx
dec edi
jne 0x4f1884
jmp 0x4f19a3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x4f1a76
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x4f1a84
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x4f19cd
dec esi
test esi, esi
jle 0x4f19fd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004f0280
cmp dword [eax + 0x34], 0
je 0x4f19fd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004f0280
mov eax, dword [eax + 0x34]
call fcn.004ef788
cmp al, 3
je 0x4f19cc
test esi, esi
jl 0x4f1a22
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004f0280
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
pop edx
call fcn.004eedfc
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040be1c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00432080
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x5e9444]
call fcn.0040a654
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.004051f8
dec ebx
test ebx, ebx
jne 0x4f19c4
jmp 0x4f1a84
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x4f1c37
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x4f1bee
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x30]
call fcn.004e47e8
mov esi, eax
dec esi
cmp esi, 0
jl 0x4f1ba3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004ebdb0
mov edx, dword [0x4e385c]
call fcn.00405188
test al, al
jne 0x4f1b82
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004ebdb0
mov edx, dword [0x4e3798]
call fcn.00405188
test al, al
jne 0x4f1b82
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004ebdb0
mov edx, dword [0x4e3a90]
call fcn.00405188
test al, al
jne 0x4f1b82
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004ebdb0
mov edx, dword [0x4e3b64]
call fcn.00405188
test al, al
je 0x4f1b99
test ebx, ebx
jg 0x4f1b82
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
dec eax
jne 0x4f1b99
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004e4830
dec esi
cmp esi, 0xffffffff
jne 0x4f1ad4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
call fcn.004ec0cc
test al, al
je 0x4f1be4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x30]
call fcn.004e47e8
test eax, eax
jne 0x4f1be4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
call fcn.00404f74
dec ebx
cmp ebx, 0xffffffff
jne 0x4f1ab3
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040be1c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00432080
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x5e9444]
call fcn.0040a654
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.004051f8
test byte [ebp - 5], 1
je 0x4f1d7e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x4f1d8c
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
call fcn.004ec0cc
test al, al
jne 0x4f1d72
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
call fcn.004ed07c
test al, al
je 0x4f1d72
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x34]
call fcn.004ef76c
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
call fcn.004eea44
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
call fcn.004ec0cc
test al, al
je 0x4f1d29
test ebx, ebx
jle 0x4f1d1c
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f0280
call fcn.004ed07c
test al, al
je 0x4f1d1c
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f0280
mov eax, dword [eax + 0x34]
call fcn.004ef76c
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004f0280
mov eax, dword [eax + 0x34]
pop edx
call fcn.004ef774
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004e4830
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040be1c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00432080
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x5e9444]
call fcn.0040a654
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.004051f8
dec ebx
cmp ebx, 0xffffffff
jne 0x4f1c58
jmp 0x4f1d8c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x4f1ec2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x4f1e79
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
cmp dword [eax + 0x34], 0
je 0x4f1e2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.004ef76c
test ax, ax
je 0x4f1df8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
dec eax
jne 0x4f1e2e
mov eax, esi
call fcn.004ef660
test al, al
jne 0x4f1e2e
mov eax, esi
call fcn.004ef77c
test al, al
jne 0x4f1e2e
mov eax, esi
call fcn.004ef788
sub al, 2
jb 0x4f1e27
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004e47e8
dec eax
jne 0x4f1e2e
mov eax, esi
call fcn.00404f74
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
call fcn.004ec0cc
test al, al
je 0x4f1e6f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
mov eax, dword [eax + 0x30]
call fcn.004e47e8
test eax, eax
jne 0x4f1e6f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004f0280
call fcn.00404f74
dec ebx
cmp ebx, 0xffffffff
jne 0x4f1dbb
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040be1c
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00432080
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x5e9444]
call fcn.0040a654
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.004051f8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f1f23
call fcn.00404340
test eax, eax
jne 0x4f1edf
mov ebx, 0x64
jmp 0x4f1ee1
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.00432080
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x5e9444]
call fcn.0040a654
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.004051f8
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f1f6d
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406ecc
ret