Function at 0x40a460
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x40d608
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
push ebx
push ebp
push esi
push edi
lea ecx, [esp + 0x10]
call fcn.0040b4c0
mov edi, 0x40ea34
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x58], 0
call fcn.0040b4c0
mov dword [esp + 0x38], edi
mov esi, dword [esp + 0x68]
lea eax, [esp + 0x10]
lea ecx, [esp + 0x38]
push eax
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x64]
push ecx
push edx
push eax
mov byte [esp + 0x68], 1
call fcn.00409fd0
mov eax, dword [esi + 0x10]
add esp, 0x10
cmp eax, 1
jne 0x40a621
lea ecx, [esp + 0x28]
call fcn.0040b4c0
mov ebp, 0x40e800
mov dword [esp + 0x28], ebp
lea ecx, [esp + 0x18]
mov byte [esp + 0x58], 2
call fcn.0040b4c0
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x40]
push ecx
push edx
mov byte [esp + 0x60], 3
call dword [sym.imp.GDI32.dll_GetRgnBox]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
mov ebx, dword [sym.imp.GDI32.dll_CreateSolidBrush]
cmp ecx, eax
mov esi, ecx
jge 0x40a5fb
lea edx, [ecx + ecx*4]
lea ebp, [edx + edx*4]
shl ebp, 2
jmp 0x40a533
mov ecx, dword [esp + 0x44]
mov edi, eax
mov eax, ebp
cdq
sub edi, ecx
idiv edi
push eax
push 0xfff3ef
push 0xefc3b5
call fcn.00407b30
add esp, 0xc
push eax
call ebx
push eax
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CGdiObject::Attach
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
lea edi, [esi + 1]
push edi
push eax
push esi
push ecx
call dword [sym.imp.GDI32.dll_CreateRectRgn]
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CGdiObject::Attach
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x10]
neg eax
sbb eax, eax
push 1
and eax, edx
neg ecx
sbb ecx, ecx
push eax
and ecx, esi
push ecx
push edx
call dword [sym.imp.GDI32.dll_CombineRgn]
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0x28]
mov edx, dword [esp + 0x64]
lea ecx, [esp + 0x18]
neg eax
sbb eax, eax
and eax, esi
mov esi, dword [esp + 0x1c]
neg ecx
sbb ecx, ecx
push eax
mov eax, dword [edx + 4]
and ecx, esi
push ecx
push eax
call dword [sym.imp.GDI32.dll_FillRgn]
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov eax, dword [esp + 0x4c]
mov esi, edi
add ebp, 0x64
cmp esi, eax
jl 0x40a52f
mov ebp, 0x40e800
mov edi, 0x40ea34
lea ecx, [esp + 0x18]
mov byte [esp + 0x58], 2
mov dword [esp + 0x18], edi
call fcn.00401650
lea ecx, [esp + 0x28]
mov byte [esp + 0x58], 1
mov dword [esp + 0x28], ebp
call fcn.00401650
jmp 0x40a698
lea ecx, [esp + 0x28]
call fcn.0040b4c0
mov esi, 0x40e800
mov dword [esp + 0x28], esi
mov ebx, dword [sym.imp.GDI32.dll_CreateSolidBrush]
push 0xefae94
mov byte [esp + 0x5c], 4
call ebx
push eax
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CGdiObject::Attach
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x28]
neg eax
mov edx, dword [esp + 0x14]
sbb eax, eax
and eax, ecx
lea ecx, [esp + 0x10]
neg ecx
sbb ecx, ecx
push eax
and ecx, edx
push ecx
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.GDI32.dll_FillRgn]
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x28]
mov byte [esp + 0x58], 1
mov dword [esp + 0x28], esi
call fcn.00401650
mov ebp, esi
lea ecx, [esp + 0x20]
call fcn.0040b4c0
mov dword [esp + 0x20], edi
push 0
push 0
push 0
push 0
mov byte [esp + 0x68], 5
call dword [sym.imp.GDI32.dll_CreateRectRgn]
push eax
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CGdiObject::Attach
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
neg eax
mov edx, dword [esp + 0x3c]
push 4
sbb eax, eax
and eax, ecx
lea ecx, [esp + 0x3c]
neg ecx
sbb ecx, ecx
push eax
mov eax, dword [esp + 0x2c]
and ecx, edx
push ecx
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
lea ecx, [esp + 0x30]
call fcn.0040b4c0
mov dword [esp + 0x30], ebp
push 0xe78a6b
mov byte [esp + 0x5c], 6
call ebx
push eax
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CGdiObject::Attach
mov esi, dword [esp + 0x34]
lea eax, [esp + 0x30]
mov ebx, dword [esp + 0x24]
lea ecx, [esp + 0x20]
neg eax
sbb eax, eax
and eax, esi
neg ecx
sbb ecx, ecx
push eax
and ecx, ebx
push ecx
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.GDI32.dll_FillRgn]
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x30]
mov byte [esp + 0x58], 5
mov dword [esp + 0x30], ebp
call fcn.00401650
lea ecx, [esp + 0x20]
mov byte [esp + 0x58], 1
mov dword [esp + 0x20], edi
call fcn.00401650
lea ecx, [esp + 0x38]
mov byte [esp + 0x58], 0
mov dword [esp + 0x38], edi
call fcn.00401650
lea ecx, [esp + 0x10]
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x10], edi
call fcn.00401650
mov ecx, dword [esp + 0x50]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x4c
ret