Function at 0x4f815c
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ebx
test dl, dl
je 0x4f818b
add esp, 0xfffffff0
call fcn.00406470
mov byte [ebp - 0xa], cl
mov byte [ebp - 9], dl
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x4f8b3c
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x4f8b02
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 8]
add eax, 4
call fcn.00407aec
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x20], edx
call fcn.0047b6c8
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x30], ebx
push 0
lea eax, [ebp - 0x1c]
push eax
mov eax, ebx
mov ecx, 0x4f8b74
mov edx, 0x4f8b90
mov ebx, dword [eax]
call dword [ebx + 0x8c]
mov eax, dword [ebp - 0x1c]
mov edx, 0x4f8bac
call fcn.00408d14
sete byte [ebp - 0x11]
push 0
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov ecx, 0x4f8bbc
mov edx, 0x4f8b90
mov ebx, dword [eax]
call dword [ebx + 0x8c]
mov eax, dword [ebp - 0x20]
mov edx, 0x4f8bac
call fcn.00408d14
sete byte [ebp - 0x12]
push 0
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov ecx, 0x4f8bd4
mov edx, 0x4f8b90
mov ebx, dword [eax]
call dword [ebx + 0x8c]
mov eax, dword [ebp - 0x24]
mov edx, 0x4f8bac
call fcn.00408d14
sete byte [ebp - 0x13]
mov eax, dword [ebp - 8]
call fcn.004f91b8
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
jne 0x4f8292
mov eax, dword [ebp - 8]
add eax, 4
mov edx, 0x4f8bec
call fcn.00407ecc
lea ecx, [ebp - 0x28]
mov edx, 0x4f8c14
mov eax, 0x4f8c60
call fcn.0047d328
mov edx, dword [ebp - 0x28]
xor eax, eax
call fcn.00483574
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], ebx
xor edx, edx
push ebp
push 0x4f8af1
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, ebx
mov edx, 0x80c80000
call fcn.00485990
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x433]
or edx, 8
call fcn.004859dc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
xor edx, edx
mov dword [eax + 0x5db], edx
mov edx, dword [ebp - 8]
mov dword [eax + 0x452], edx
mov dword [eax + 0x44e], 0x4f994c
mov edx, 0xffffff
call fcn.004867f0
call fcn.00489558
cmp al, 7
jb 0x4f8344
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.00486fb4
mov edx, 0x4f8c84
call fcn.00481a60
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.00486fb4
mov edx, 9
call fcn.004819e4
jmp 0x4f836e
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.00486fb4
mov edx, 0x4f8ca4
call fcn.00481a60
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.00486fb4
mov edx, 8
call fcn.004819e4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, 0x1e0
call fcn.0048713c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, 0xc9
call fcn.00487110
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.00487250
mov cl, 7
mov edx, 0x20
mov eax, 0x20
call fcn.004879f8
mov edx, dword [ebp - 8]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x4eb]
push eax
call sub.gdi32.dll_CreateSolidBrush
mov ebx, eax
push ebx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x10]
push eax
push 0
push 0
lea eax, [ebp - 0x38]
push eax
call fcn.004814b0
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
call fcn.00487e18
call fcn.00482130
push eax
call sub.user32.dll_FillRect
push ebx
call sub.gdi32.dll_DeleteObject
push 0x7f02
push 0
call sub.user32.dll_LoadIconW
push eax
push 0
push 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
call fcn.00487e18
call fcn.00482130
push eax
call sub.user32.dll_DrawIcon
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.00483a50
mov ebx, eax
mov ecx, 0x18
mov edx, 0x14
mov eax, ebx
call fcn.004895d8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x10]
mov eax, ebx
call fcn.00486b48
mov eax, dword [ebp - 8]
push eax
push 0x4f990c
mov eax, ebx
call fcn.00486f44
mov eax, ebx
call fcn.0048632c
lea ecx, [ebp - 4]
mov edx, 0x4f8cc0
mov eax, 0x4f8d64
call fcn.0047d328
movzx eax, byte [0x4f8d80]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
mov edx, 0x4f8d90
mov eax, dword [ebp - 4]
call fcn.00425110
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 4]
call fcn.00407f14
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
call fcn.004839f4
mov ebx, eax
mov ecx, 0x18
mov edx, 0x3c
mov eax, ebx
call fcn.004895d8
mov ecx, 0x2d
mov edx, 0x17c
mov eax, ebx
call fcn.00486b48
mov eax, ebx
call fcn.0048632c
lea ecx, [ebp - 4]
mov edx, 0x4f8da8
mov eax, 0x4f8ea0
call fcn.0047d328
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
xor edx, edx
call fcn.004839f4
mov esi, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x24], esi
mov ebx, esi
mov eax, esi
mov ecx, 0x46
mov edx, 0x3c
call fcn.004895d8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
mov ecx, 0x2d
mov edx, 0x17c
call fcn.00486b48
mov eax, dword [ebp - 8]
push eax
push 0x4f9b70
mov eax, ebx
call fcn.00486f44
mov eax, dword [ebp - 8]
push eax
push 0x4f9b88
mov eax, ebx
call fcn.00485960
mov eax, dword [ebp - 8]
mov dword [ebx + 0x474], eax
mov dword [ebx + 0x470], 0x4f9c1c
mov eax, ebx
call fcn.00489954
mov dl, 1
mov eax, dword [0x49cf74]
call fcn.0049f614
mov edx, dword [ebp - 8]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
call fcn.00486764
mov edx, eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x28]
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 8]
mov dword [eax + 0x3c], edx
mov dword [eax + 0x38], 0x4f9a50
mov edx, dword [ebp - 8]
mov dword [eax + 0x44], edx
mov dword [eax + 0x40], 0x4f9aa4
mov edx, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
xor ebx, ebx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dl, 2
call fcn.00483aa4
mov edx, dword [ebp - 8]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x14]
mov ecx, 0x4e
mov edx, 0x3c
mov eax, esi
call fcn.004895d8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004870f4
push eax
mov eax, esi
call fcn.004866cc
pop edx
sub edx, eax
mov ecx, 0x64
mov eax, esi
call fcn.00486b48
mov eax, esi
call fcn.00486374
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.00483874
mov esi, eax
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004895d8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.00486764
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.00486b48
mov dl, 1
mov eax, esi
call fcn.004873bc
xor edx, edx
mov eax, esi
call fcn.00484bd8
mov eax, esi
call fcn.0048632c
add ebx, 0x17
cmp byte [ebp - 0xa], 0
je 0x4f86db
lea ecx, [ebp - 4]
mov edx, 0x4f8ec4
mov eax, 0x4f8f2c
call fcn.0047d328
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
call fcn.00483874
mov edx, dword [ebp - 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x20]
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004895d8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.00486764
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.00486b48
mov dl, 1
mov eax, esi
call fcn.004873bc
mov eax, esi
call fcn.0048632c
add ebx, 0x17
mov eax, dword [ebp - 8]
cmp dword [eax + 0x34], 0
je 0x4f87ad
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x4f87ad
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x34]
mov edi, dword [ebp - 0x10]
mov edx, edi
mov eax, esi
call fcn.00441934
mov edi, eax
movzx eax, byte [edi + 0x10]
xor al, 1
or al, byte [ebp - 0x12]
je 0x4f87a1
mov edx, dword [edi + 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.00483874
mov esi, eax
mov dword [edi + 8], esi
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004895d8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.00486764
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.00486b48
mov dl, 1
mov eax, esi
call fcn.00484bd8
cmp byte [edi + 0x10], 0
je 0x4f877c
xor edx, edx
mov eax, esi
call fcn.004873bc
mov byte [esi + 0x409], 1
jmp 0x4f878e
movzx edx, byte [ebp - 0x13]
mov eax, esi
call fcn.004873bc
mov byte [esi + 0x409], 0
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x40a], eax
mov eax, esi
call fcn.0048632c
add ebx, 0x17
inc dword [ebp - 0x10]
dec dword [ebp - 0x18]
jne 0x4f8705
mov eax, dword [ebp - 8]
cmp byte [eax + 8], 0
je 0x4f8852
lea ecx, [ebp - 4]
mov edx, 0x4f8f60
mov eax, 0x4f8fd4
call fcn.0047d328
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
call fcn.00483874
mov edx, dword [ebp - 8]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x18]
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004895d8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.00486764
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.00486b48
push 0
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov ecx, 0x4f9004
mov edx, 0x4f8b90
mov edi, dword [eax]
call dword [edi + 0x8c]
mov eax, dword [ebp - 0x40]
mov edx, 0x4f8bac
call fcn.00408d14
sete dl
mov eax, esi
call fcn.004873bc
mov dl, 1
mov eax, esi
call fcn.00484bd8
mov eax, esi
call fcn.0048632c
add ebx, 0x17
mov eax, dword [ebp - 8]
cmp byte [eax + 9], 0
je 0x4f88f7
lea ecx, [ebp - 4]
mov edx, 0x4f901c
mov eax, 0x4f9084
call fcn.0047d328
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
call fcn.00483874
mov edx, dword [ebp - 8]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x1c]
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004895d8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.00486764
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.00486b48
push 0
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov ecx, 0x4f90b8
mov edx, 0x4f8b90
mov edi, dword [eax]
call dword [edi + 0x8c]
mov eax, dword [ebp - 0x44]
mov edx, 0x4f8bac
call fcn.00408d14
sete dl
mov eax, esi
call fcn.004873bc
mov dl, 1
mov eax, esi
call fcn.00484bd8
mov eax, esi
call fcn.0048632c
add ebx, 0x17
lea edx, [ebx + 5]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004867c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dl, 2
call fcn.00483aa4
mov edx, dword [ebp - 8]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004870f4
mov edx, eax
mov ecx, 0x2e
mov eax, ebx
call fcn.00486b48
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004870d8
push eax
mov eax, ebx
call fcn.004867a8
pop ecx
sub ecx, eax
xor edx, edx
mov eax, ebx
call fcn.004895d8
push 0xf
call sub.user32.dll_GetSysColor
mov edx, eax
mov eax, ebx
call fcn.004867f0
mov eax, ebx
call fcn.0048632c
lea ecx, [ebp - 4]
mov edx, 0x4f90d0
mov eax, 0x4f9100
call fcn.0047d328
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
xor ecx, ecx
mov edx, dword [ebp - 4]
call fcn.0048397c
mov ebx, eax
mov ecx, 0xf
mov edx, 0x14
mov eax, ebx
call fcn.004895d8
mov eax, ebx
call fcn.00486fb4
movzx edx, byte [0x4f911c]
call fcn.00481a88
mov eax, ebx
call fcn.00486fb4
mov edx, 0xff0000
call fcn.004819d4
mov dl, 1
mov eax, ebx
call fcn.00489514
push 0x7f89
push 0
call sub.user32.dll_LoadCursorW
mov edx, eax
mov eax, ebx
call fcn.00485a28
mov eax, dword [ebp - 8]
mov dword [ebx + 0x474], eax
mov dword [ebx + 0x470], 0x4f9980
mov eax, ebx
call fcn.0048632c
lea ecx, [ebp - 4]
mov edx, 0x4f912c
mov eax, 0x4f912c
call fcn.0047d328
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 4]
call fcn.004837e8
mov esi, eax
mov ecx, 0x1a
mov edx, 0x5a
mov eax, esi
call fcn.00486b48
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.00486764
mov edx, eax
sub edx, 0x6a
mov ecx, 0xa
mov eax, esi
call fcn.004895d8
mov eax, dword [ebp - 8]
mov dword [esi + 0x474], eax
mov dword [esi + 0x470], 0x4f9970
mov eax, esi
call fcn.0048632c
lea ecx, [ebp - 4]
mov edx, 0x4f9140
mov eax, 0x4f9140
call fcn.0047d328
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 4]
call fcn.004837e8
mov esi, eax
mov ecx, 0x1a
mov edx, 0x5a
mov eax, esi
call fcn.00486b48
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.00486764
mov edx, eax
sub edx, 0xce
mov ecx, 0xa
mov eax, esi
call fcn.004895d8
mov eax, dword [ebp - 8]
mov dword [esi + 0x474], eax
mov dword [esi + 0x470], 0x4f9960
mov eax, esi
call fcn.0048632c
cmp byte [ebp - 0x11], 0
je 0x4f8ae3
mov edx, ebx
mov eax, dword [ebp - 8]
call fcn.004f9980
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f8af8
ret