Function at 0x40ad80
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x43fb30
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov eax, dword [0x453810]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0040c50d
mov eax, dword [esi + 0x20]
xor ebp, ebp
push ebp
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.0041a373
mov ebx, eax
cmp ebx, ebp
je 0x40ae68
call fcn.00417d2a
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40adeb
push 0x80004005
call fcn.00409390
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x18], edi
push 0x65
mov dword [esp + 0x84], ebp
call fcn.0041a46b
cmp eax, ebp
je 0x40ae1d
push 0x65
push eax
lea ecx, [esp + 0x20]
call fcn.0040aac0
mov edi, dword [esp + 0x18]
cmp dword [edi - 0xc], ebp
je 0x40ae41
mov ecx, dword [ebx + 4]
push ebp
push ebp
push 0x800
push ecx
call dword [sym.imp.USER32.dll_AppendMenuA]
mov edx, dword [ebx + 4]
push edi
push 0x10
push ebp
push edx
call dword [sym.imp.USER32.dll_AppendMenuA]
lea eax, [edi - 0x10]
mov dword [esp + 0x80], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ae68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0x5f0c]
mov ecx, dword [esi + 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push eax
push 1
push 0x80
push ecx
call edi
mov eax, dword [esi + 0x5f0c]
mov edx, dword [esi + 0x20]
push eax
push ebp
push 0x80
push edx
call edi
mov eax, dword [esi + 0x20]
push eax
mov dword [esi + 0x130], ebp
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.004185ab
mov ecx, dword [esi + 0x7c]
mov edi, eax
mov eax, dword [esi + 0x80]
push eax
push ecx
mov ecx, dword [edi + 4]
push ecx
lea ebx, [esi + 0x94]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
mov ecx, ebx
call fcn.0041887b
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esi + 0x9c]
call fcn.004185bf
cmp ebx, ebp
jne 0x40aeee
xor ebx, ebx
jmp 0x40aef1
mov ebx, dword [ebx + 4]
mov edx, dword [esi + 0xa0]
push ebx
push edx
call fcn.0041890a
mov ebx, vtable.CBrush.0
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebx
mov eax, dword [esi + 0x8c]
push eax
mov dword [esp + 0x84], 1
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [esp + 0x20]
call fcn.0041887b
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x80]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x6c], eax
push edx
lea eax, [esp + 0x68]
mov dword [esp + 0x74], ecx
mov ecx, dword [esi + 0xa0]
push eax
push ecx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword [esi + 0xc0]
imul eax, dword [esi + 0x84]
cdq
idiv dword [esi + 0x88]
push str.Courier_New
push ebp
push 2
push ebp
push ebp
push 1
push ebp
push ebp
push ebp
push 0x190
push ebp
push ebp
push ebp
neg eax
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
push eax
lea ecx, [esi + 0xac]
call fcn.0041887b
mov edx, dword [esi + 0xa4]
push 6
push edx
call dword [sym.imp.GDI32.dll_GetCurrentObject]
push eax
call fcn.00418867
mov edx, dword [esi + 0x9c]
mov dword [esi + 0xb4], eax
lea ecx, [esi + 0x9c]
lea eax, [esi + 0xac]
push eax
mov eax, dword [edx + 0x28]
call eax
mov ecx, dword [edi + 4]
push 0xb
push 0xb
push ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esi + 0xcc]
call fcn.0041887b
mov edx, dword [edi + 4]
push 0xb
push 0xb
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esi + 0xd4]
call fcn.0041887b
push 0xb
mov eax, dword [edi + 4]
push 0xb
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esi + 0xdc]
call fcn.0041887b
mov ecx, dword [edi + 4]
push 0xb
push 0xb
push ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esi + 0xe4]
call fcn.0041887b
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esi + 0xec]
call fcn.004185bf
lea eax, [esi + 0xcc]
cmp eax, ebp
jne 0x40b05c
xor eax, eax
jmp 0x40b05f
mov eax, dword [eax + 4]
mov edx, dword [esi + 0xf0]
push eax
push edx
call fcn.0041890a
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esi + 0xfc]
call fcn.004185bf
lea eax, [esi + 0xd4]
cmp eax, ebp
jne 0x40b090
xor eax, eax
jmp 0x40b093
mov eax, dword [eax + 4]
push eax
mov eax, dword [esi + 0x100]
push eax
call fcn.0041890a
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esi + 0x10c]
call fcn.004185bf
lea eax, [esi + 0xdc]
cmp eax, ebp
jne 0x40b0c4
xor eax, eax
jmp 0x40b0c7
mov eax, dword [eax + 4]
mov ecx, dword [esi + 0x110]
push eax
push ecx
call fcn.0041890a
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esi + 0x11c]
call fcn.004185bf
lea eax, [esi + 0xe4]
cmp eax, ebp
jne 0x40b0f8
xor eax, eax
jmp 0x40b0fb
mov eax, dword [eax + 4]
mov edx, dword [esi + 0x120]
push eax
push edx
call fcn.0041890a
mov edx, dword [esi + 0xf0]
mov eax, 0xb
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x68]
push ecx
push edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword [esp + 0x20]
mov edx, dword [esi + 0x100]
push eax
lea ecx, [esp + 0x68]
push ecx
push edx
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword [esp + 0x20]
mov edx, dword [esi + 0x110]
push eax
lea ecx, [esp + 0x68]
push ecx
push edx
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword [esp + 0x20]
mov edx, dword [esi + 0x120]
push eax
lea ecx, [esp + 0x68]
push ecx
push edx
call dword [sym.imp.USER32.dll_FillRect]
push 0xff00
push 1
push ebp
lea ecx, [esp + 0x68]
call fcn.00418a14
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], ebx
push 0xff00
mov byte [esp + 0x84], 3
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [esp + 0x40]
call fcn.0041887b
lea eax, [esp + 0x5c]
push eax
lea ecx, [esi + 0xec]
call fcn.00418966
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esi + 0xec]
call fcn.00418966
mov edx, dword [esi + 0xf0]
push 0xa
push 0xa
push ebp
push ebp
push edx
call dword [sym.imp.GDI32.dll_Ellipse]
push 0xff
push 1
push ebp
lea ecx, [esp + 0x60]
call fcn.00418a14
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], ebx
push 0xff
mov byte [esp + 0x84], 5
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [esp + 0x38]
call fcn.0041887b
lea eax, [esp + 0x54]
push eax
lea ecx, [esi + 0xfc]
call fcn.00418966
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esi + 0xfc]
call fcn.00418966
mov edx, dword [esi + 0x100]
push 0xa
push 0xa
push ebp
push ebp
push edx
call dword [sym.imp.GDI32.dll_Ellipse]
push 0xffff
push 1
push ebp
lea ecx, [esp + 0x58]
call fcn.00418a14
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebx
push 0xffff
mov byte [esp + 0x84], 7
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [esp + 0x30]
call fcn.0041887b
lea eax, [esp + 0x4c]
push eax
lea ecx, [esi + 0x10c]
call fcn.00418966
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esi + 0x10c]
call fcn.00418966
mov edx, dword [esi + 0x110]
push 0xa
push 0xa
push ebp
push ebp
push edx
call dword [sym.imp.GDI32.dll_Ellipse]
push ebp
push 1
push ebp
lea ecx, [esp + 0x50]
call fcn.00418a14
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], ebx
push ebp
mov byte [esp + 0x84], 9
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [esp + 0x28]
call fcn.0041887b
lea eax, [esp + 0x44]
push eax
lea ecx, [esi + 0x11c]
call fcn.00418966
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esi + 0x11c]
call fcn.00418966
mov edx, dword [esi + 0x120]
push 0xa
push 0xa
push ebp
push ebp
push edx
call dword [sym.imp.GDI32.dll_Ellipse]
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x20]
push eax
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0x3fc
mov ecx, esi
call fcn.00412ad3
mov edx, dword [eax + 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebp
push ebp
push 0xf1
push edx
call edi
push 0x3fd
mov ecx, esi
call fcn.00412ad3
mov eax, dword [eax + 0x20]
push ebp
push ebp
push 0xf1
push eax
call edi
push 0x3fe
mov ecx, esi
call fcn.00412ad3
mov ecx, dword [eax + 0x20]
push ebp
push ebp
push 0xf1
push ecx
call edi
push 0x3ff
mov ecx, esi
call fcn.00412ad3
mov edx, dword [eax + 0x20]
push ebp
push ebp
push 0xf1
push edx
call edi
lea ecx, [esp + 0x24]
mov dword [esi + 0x138], ebp
mov dword [esi + 0x13c], ebp
mov dword [esi + 0x12c], 1
mov dword [esi + 0x5f00], ebp
mov byte [esp + 0x80], 8
mov dword [esp + 0x24], ebx
call fcn.00409660
mov esi, vtable.CPen.0
lea ecx, [esp + 0x44]
mov byte [esp + 0x80], 7
mov dword [esp + 0x44], esi
call fcn.00409660
lea ecx, [esp + 0x2c]
mov byte [esp + 0x80], 6
mov dword [esp + 0x2c], ebx
call fcn.00409660
lea ecx, [esp + 0x4c]
mov byte [esp + 0x80], 5
mov dword [esp + 0x4c], esi
call fcn.00409660
lea ecx, [esp + 0x34]
mov byte [esp + 0x80], 4
mov dword [esp + 0x34], ebx
call fcn.00409660
lea ecx, [esp + 0x54]
mov byte [esp + 0x80], 3
mov dword [esp + 0x54], esi
call fcn.00409660
lea ecx, [esp + 0x3c]
mov byte [esp + 0x80], 2
mov dword [esp + 0x3c], ebx
call fcn.00409660
lea ecx, [esp + 0x5c]
mov byte [esp + 0x80], 1
mov dword [esp + 0x5c], esi
call fcn.00409660
lea ecx, [esp + 0x1c]
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x1c], ebx
call fcn.00409660
mov eax, 1
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret