Function at 0x40a940
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x506301
mov eax, dword fs:[0]
push eax
sub esp, 0x558
mov eax, dword [0x5355a0]
xor eax, esp
mov dword [esp + 0x550], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5355a0]
xor eax, esp
push eax
lea eax, [esp + 0x56c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x57c]
mov ebp, dword [esp + 0x580]
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov dword [esp + 0x60], eax
mov esi, edx
mov byte [esp + 0x28], cl
mov dword [esp + 0x24], ecx
mov dword [esp + 0x574], ecx
mov dword [esp + 0x40], vtable.t_mutex::t_locker.0
mov dword [esp + 0x44], ecx
lea edx, [esp + 0x24]
lea edi, [eax + 0x5ac]
mov byte [esp + 0x574], 1
push edx
mov dword [esp + 0x30], edi
call fcn.0043ac80
test al, al
je 0x40aac1
lea eax, [esp + 0x17]
push eax
mov dword [esp + 0x48], edi
mov byte [esp + 0x1b], 0
call fcn.00458250
mov eax, dword [esp + 0x588]
add esp, 4
or ebx, 0xffffffff
sub eax, 0
mov byte [esp + 0x17], 0
mov dword [esp + 0x20], 0
mov edi, fcn.004c53b2
je 0x40ac97
sub eax, 1
je 0x40ab40
sub eax, 2
jne 0x40aeba
test ebp, ebp
je 0x40b542
mov ebp, dword [ebp + 0x18]
cmp ebp, ebx
je 0x40b542
lea ecx, [esp + 0xac]
mov ebx, ebp
call fcn.004349d0
push ebx
push 0x516dbc
lea edx, [esp + 0xb4]
mov byte [esp + 0x57c], 4
call fcn.004351e0
push str..bin
push 0x51620c
lea edx, [esp + 0xbc]
call fcn.004351e0
add esp, 0x10
lea eax, [esp + 0xac]
call fcn.00435140
call fcn.00401540
mov eax, esi
call fcn.00401660
test al, al
jne 0x40aae3
mov ecx, dword [esp + 0x18]
push 0x5174d0
call fcn.00402790
lea ecx, [esp + 0xac]
call fcn.00434b70
lea ecx, [esp + 0x40]
mov byte [esp + 0x574], 0
call fcn.0043a930
jmp 0x40b577
lea ecx, [esp + 0x24]
call fcn.00433db0
push 0x517898
push 0x51620c
mov edx, eax
call fcn.004351e0
add esp, 8
jmp 0x40b577
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov eax, esi
mov dword [esp + 0x1c], 1
mov dword [esp + 0x34], ebx
call fcn.00401520
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x1c]
push ecx
push edi
lea ecx, [esp + 0x3c]
mov dword [esp + 0x40], eax
call fcn.00458df0
add esp, 8
test al, al
mov eax, esi
setne byte [esp + 0x17]
call fcn.00401660
test al, al
je 0x40adef
mov edi, esi
call fcn.004018b0
mov edi, dword [esp + 0x18]
jmp 0x40adef
test ebp, ebp
je 0x40b542
mov ebp, dword [ebp + 0x18]
cmp ebp, 0xffffffff
je 0x40b542
lea ecx, [esp + 0xac]
mov ebx, ebp
call fcn.004349d0
push ebx
push 0x516dbc
lea edx, [esp + 0xb4]
mov byte [esp + 0x57c], 5
call fcn.004351e0
push str..bin
push 0x51620c
lea edx, [esp + 0xbc]
call fcn.004351e0
add esp, 0x10
lea eax, [esp + 0xac]
call fcn.00435140
call fcn.00401540
mov eax, esi
call fcn.00401660
test al, al
je 0x40aa91
lea edx, [esp + 0x34]
push edx
push 0x1fff8
lea ecx, [esp + 0x50]
mov dword [esp + 0x3c], fcn.004c328d
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], fcn.004c31b0
call fcn.004027c0
mov eax, esi
mov byte [esp + 0x574], 6
call fcn.00401520
mov ecx, ebx
mov dword [esp + 0x1c], eax
call fcn.0040a360
sub eax, 0
mov edi, dword [esp + 0x18]
je 0x40ac2a
sub eax, 1
jne 0x40ac55
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, edi
call fcn.0045a200
add esp, 8
test al, al
jne 0x40ac50
push str.n_picFaceCore::UpdateCell_Fail__n
mov ecx, edi
call fcn.00402790
jmp 0x40ac55
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x4c]
push eax
mov ecx, edi
call fcn.00459a50
add esp, 8
test al, al
jne 0x40ac50
push str.n_picFaceCore::AddCell_Fail__n
mov ecx, edi
call fcn.00402790
jmp 0x40ac55
mov byte [esp + 0x17], 1
mov eax, esi
call fcn.00401660
test al, al
je 0x40ac6b
mov edi, esi
call fcn.004018b0
mov edi, dword [esp + 0x18]
mov byte [esp + 0x574], 5
mov esi, dword [esp + 0x58]
test esi, esi
je 0x40adef
mov ebp, dword [esp + 0x54]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call ebp
add esp, 4
test esi, esi
jne 0x40ac83
jmp 0x40adef
test ebp, ebp
je 0x40b542
mov ebx, dword [ebp + 0x18]
cmp ebx, 0xffffffff
je 0x40b542
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0xac]
call fcn.004349d0
push ebx
push 0x516dbc
lea edx, [esp + 0xb4]
mov byte [esp + 0x57c], 2
call fcn.004351e0
push str..bin
push 0x51620c
lea edx, [esp + 0xbc]
call fcn.004351e0
add esp, 0x10
lea eax, [esp + 0xac]
call fcn.00435140
call fcn.00401540
mov eax, esi
call fcn.00401660
test al, al
je 0x40aa91
lea edx, [esp + 0x34]
push edx
push 0x1fff8
lea ecx, [esp + 0x50]
mov dword [esp + 0x3c], fcn.004c328d
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], fcn.004c31b0
call fcn.004027c0
mov eax, esi
mov byte [esp + 0x574], 3
call fcn.00401520
mov ecx, ebx
mov dword [esp + 0x1c], eax
call fcn.0040a360
sub eax, 0
mov edi, dword [esp + 0x18]
je 0x40ad86
sub eax, 1
jne 0x40adb1
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, edi
call fcn.0045a200
add esp, 8
test al, al
jne 0x40adac
push str.n_picFaceCore::UpdateCell_Fail__n
mov ecx, edi
call fcn.00402790
jmp 0x40adb1
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x4c]
push eax
mov ecx, edi
call fcn.00459a50
add esp, 8
test al, al
jne 0x40adac
push str.n_picFaceCore::AddCell_Fail__n
mov ecx, edi
call fcn.00402790
jmp 0x40adb1
mov byte [esp + 0x17], 1
mov eax, esi
call fcn.00401660
test al, al
je 0x40adc7
mov edi, esi
call fcn.004018b0
mov edi, dword [esp + 0x18]
mov byte [esp + 0x574], 2
mov esi, dword [esp + 0x58]
test esi, esi
je 0x40adef
mov ebp, dword [esp + 0x54]
jmp 0x40ade0
mov eax, esi
mov esi, dword [esi + 4]
push eax
call ebp
add esp, 4
test esi, esi
jne 0x40ade0
lea ecx, [esp + 0xac]
mov byte [esp + 0x574], 1
call fcn.00434b70
cmp byte [esp + 0x17], 0
je 0x40aebe
lea edx, [esp + 0x17]
push edx
mov byte [esp + 0x1b], 0
call fcn.00458250
mov eax, dword [esp + 0x588]
xor esi, esi
add esp, 4
cmp eax, esi
jne 0x40b063
cmp dword [esp + 0x20], esi
jne 0x40b01c
push 0x516254
lea ecx, [esp + 0x440]
call fcn.00434b00
push 0x516254
lea ecx, [esp + 0xb0]
call fcn.00434b00
lea ecx, [esp + 0x43c]
mov byte [esp + 0x574], 0xa
call fcn.00432030
mov ebp, eax
call fcn.0040a2e0
push 0x860
call fcn.004c688d
add esp, 4
test eax, eax
je 0x40ae98
call fcn.004035b0
mov esi, eax
test esi, esi
jne 0x40afb9
mov ecx, edi
call fcn.00433db0
push 0x5180a4
push 0x51620c
mov edx, eax
call fcn.004351e0
add esp, 8
xor esi, esi
jmp 0x40afd3
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x584], 0
jne 0x40b283
cmp dword [esp + 0x20], 0
jne 0x40b283
push 0x516254
lea ecx, [esp + 0x440]
call fcn.00434b00
push 0x516254
lea ecx, [esp + 0xb0]
call fcn.00434b00
lea ecx, [esp + 0x43c]
mov byte [esp + 0x574], 8
call fcn.00432030
mov ebp, eax
call fcn.0040a2e0
push 0x860
call fcn.004c688d
add esp, 4
test eax, eax
je 0x40af30
call fcn.004035b0
mov esi, eax
test esi, esi
jne 0x40af4f
mov ecx, edi
call fcn.00433db0
push 0x5180a4
push 0x51620c
mov edx, eax
call fcn.004351e0
add esp, 8
xor esi, esi
jmp 0x40af69
lea ecx, [esi + 0x38]
push ebp
push ecx
mov dword [esi], 1
mov dword [esi + 4], 7
call fcn.00410c30
add esp, 8
xor eax, eax
mov dword [esi + 8], ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], eax
call fcn.0040a2e0
mov edi, dword [esp + 0x18]
push esi
mov esi, 7
call fcn.0040ea00
lea ecx, [esp + 0xac]
call fcn.00434b70
lea ecx, [esp + 0x43c]
mov byte [esp + 0x574], 1
call fcn.00434b70
mov ecx, edi
call fcn.00433db0
push str._CallKernelToInstallSys_Fail__n
jmp 0x40b550
lea eax, [esi + 0x38]
push ebp
push eax
mov dword [esi], 1
mov dword [esi + 4], 7
call fcn.00410c30
add esp, 8
mov eax, 1
mov dword [esi + 8], ebx
mov dword [esi + 0x20], 0x64
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], eax
call fcn.0040a2e0
mov edi, dword [esp + 0x18]
push esi
mov esi, 7
call fcn.0040ea00
lea ecx, [esp + 0xac]
call fcn.00434b70
lea ecx, [esp + 0x43c]
mov byte [esp + 0x574], 1
call fcn.00434b70
call fcn.0040a2e0
push 0x860
call fcn.004c688d
add esp, 4
test eax, eax
je 0x40b03f
call fcn.004035b0
test eax, eax
jne 0x40b294
lea ecx, [esp + 0x24]
call fcn.00433db0
push 0x5180a4
push 0x51620c
mov edx, eax
call fcn.004351e0
add esp, 8
xor esi, esi
jmp 0x40b2a3
cmp eax, 1
je 0x40b01c
cmp eax, 3
jne 0x40b283
push str.5525320
call fcn.004c66bd
add esp, 4
cmp eax, ebx
jne 0x40b259
lea ecx, [esp + 0x34]
push ecx
push 0x1fff8
lea ecx, [esp + 0x50]
mov dword [esp + 0x3c], fcn.004c328d
mov dword [esp + 0x40], fcn.004c53b2
mov dword [esp + 0x44], fcn.004c31b0
call fcn.004027c0
lea edx, [esp + 0x48]
mov byte [esp + 0x574], 0x10
push edx
lea eax, [esp + 0x28]
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], esi
push eax
lea ebx, [esp + 0x28]
lea esi, [esp + 0x24]
call fcn.00458330
add esp, 8
test al, al
je 0x40b214
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x40b214
mov ebx, dword [esp + 0x20]
test ebx, ebx
jle 0x40b214
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
lea eax, [esp + 0x1d4]
call fcn.00409e80
mov eax, dword [esp + 0x60]
add eax, 0x30
call fcn.00401520
lea ecx, [esp + 0xac]
mov edi, eax
call fcn.004349d0
mov eax, edi
lea edx, [esp + 0xac]
call fcn.00434c20
lea ecx, [esp + 0xac]
push ecx
lea ecx, [esp + 0x2fc]
mov byte [esp + 0x578], 0x11
call fcn.00432110
lea ecx, [esp + 0xac]
call fcn.00434b70
mov dword [esp + 0x420], esi
call fcn.00419320
mov edx, dword [eax + 0x14]
mov eax, 0x64
mov dword [esp + 0x430], eax
mov dword [esp + 0x434], eax
mov dword [esp + 0x428], ebx
lea eax, [esp + 0x1d4]
mov bl, 1
push eax
mov dword [esp + 0x420], edx
mov dword [esp + 0x428], ebp
mov dword [esp + 0x430], 0x516604
mov byte [esp + 0x43c], bl
call fcn.00427610
add esp, 4
push esi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
lea eax, [esp + 0x1d4]
call fcn.004783b0
mov byte [esp + 0x574], bl
mov esi, dword [esp + 0x58]
test esi, esi
je 0x40b1f3
mov edi, dword [esp + 0x54]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x40b1e4
lea ecx, [esp + 0x40]
mov byte [esp + 0x574], 0
call fcn.0043a930
lea ecx, [esp + 0x24]
call fcn.00433d50
mov al, bl
jmp 0x40b582
push str.t_PicFaceBusStation_GetHotCellPics_Fail
mov ecx, edi
call fcn.00402790
mov byte [esp + 0x574], 1
mov esi, dword [esp + 0x58]
test esi, esi
je 0x40b243
mov edi, dword [esp + 0x54]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x40b234
lea ecx, [esp + 0x40]
mov byte [esp + 0x574], 0
call fcn.0043a930
jmp 0x40b577
push str.5850443
call fcn.004c66bd
add esp, 4
cmp eax, ebx
je 0x40b4d2
push str.4998468
call fcn.004c66bd
add esp, 4
cmp eax, ebx
je 0x40b4d2
mov ecx, edi
call fcn.00433db0
push str._CallKernelToInstallSys_Fail__n
jmp 0x40b550
mov dword [eax], 1
mov dword [eax + 4], 0xc
mov esi, eax
call fcn.0040a2e0
push esi
mov esi, 0xc
lea edi, [esp + 0x28]
call fcn.0040ea00
xor edi, edi
push 0x44
lea ecx, [esp + 0x6c]
push edi
push ecx
mov dword [esp + 0x70], edi
call fcn.004cab10
mov esi, dword [esp + 0x24]
add esp, 0xc
push ebx
push esi
lea ecx, [esp + 0x6c]
call fcn.0045a690
add esp, 8
test al, al
jne 0x40b305
push str.t_PicFaceBusStation_GetSpecificCell_Fail
mov ecx, esi
call fcn.00402790
lea ecx, [esp + 0x40]
mov byte [esp + 0x574], 0
call fcn.0043a930
jmp 0x40b577
lea edx, [esp + 0x34]
push edx
push 0x1fff8
lea ecx, [esp + 0x50]
mov dword [esp + 0x3c], fcn.004c328d
mov dword [esp + 0x40], fcn.004c53b2
mov dword [esp + 0x44], fcn.004c31b0
call fcn.004027c0
mov byte [esp + 0x30], 0
mov dword [esp + 0x2c], edi
mov byte [esp + 0x574], 0xc
mov ecx, dword [esp + 0x64]
lea eax, [esp + 0x20]
push eax
push ecx
lea edx, [esp + 0x50]
push edx
lea edx, [esp + 0x28]
lea ecx, [esp + 0x38]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
call fcn.00458450
add esp, 0xc
test al, al
je 0x40b4f3
cmp dword [esp + 0x20], edi
je 0x40b4f3
mov ebp, dword [esp + 0x1c]
cmp ebp, edi
je 0x40b4f3
push edi
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
lea eax, [esp + 0x1d4]
call fcn.00409e80
mov edi, dword [esp + 0x60]
add edi, 0x30
mov eax, edi
call fcn.00401520
lea ecx, [esp + 0x43c]
mov ebx, eax
call fcn.004349d0
mov eax, ebx
lea edx, [esp + 0x43c]
call fcn.00434c20
lea eax, [esp + 0x43c]
push eax
lea ecx, [esp + 0x2fc]
mov byte [esp + 0x578], 0xd
call fcn.00432110
lea ecx, [esp + 0x43c]
call fcn.00434b70
mov dword [esp + 0x420], esi
call fcn.00419320
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x68]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x41c], ecx
mov dword [esp + 0x428], ebp
mov dword [esp + 0x424], edx
call fcn.00428df0
test al, al
je 0x40b442
mov eax, 0x1a
mov dword [esp + 0x430], eax
mov dword [esp + 0x434], eax
jmp 0x40b460
movzx ecx, word [esp + 0x98]
movzx edx, word [esp + 0x9a]
mov dword [esp + 0x430], ecx
mov dword [esp + 0x434], edx
push edi
lea edi, [esp + 0xb0]
call fcn.00402450
mov byte [esp + 0x574], 0xf
call fcn.00419320
lea eax, [esp + 0x1d4]
push eax
call fcn.00427610
add esp, 4
push esi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, edi
call fcn.004014a0
lea eax, [esp + 0x1d4]
call fcn.004783b0
lea ecx, [esp + 0x2c]
call fcn.00433d50
mov byte [esp + 0x574], 1
mov esi, dword [esp + 0x58]
test esi, esi
je 0x40b4d2
mov edi, dword [esp + 0x54]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call edi
add esp, 4
test esi, esi
jne 0x40b4c3
lea ecx, [esp + 0x40]
mov byte [esp + 0x574], 0
call fcn.0043a930
lea ecx, [esp + 0x24]
call fcn.00433d50
mov al, 1
jmp 0x40b582
push str._InitBigPicture_Fail__n
mov ecx, esi
call fcn.00402790
lea ecx, [esp + 0x2c]
call fcn.00433d50
mov byte [esp + 0x574], 1
mov esi, dword [esp + 0x58]
cmp esi, edi
je 0x40b52f
mov ebx, dword [esp + 0x54]
lea esp, [esp]
mov eax, esi
mov esi, dword [esi + 4]
push eax
call ebx
add esp, 4
cmp esi, edi
jne 0x40b520
lea ecx, [esp + 0x40]
mov byte [esp + 0x574], 0
call fcn.0043a930
jmp 0x40b577
mov ecx, dword [esp + 0x18]
call fcn.00433db0
push str.p_pHelper_Fail__n
push 0x51620c
mov edx, eax
call fcn.004351e0
add esp, 8
mov byte [esp + 0x574], 0
cmp dword [esp + 0x2c], 0
je 0x40b577
mov edi, dword [esp + 0x2c]
call fcn.0043adc0
lea ecx, [esp + 0x24]
call fcn.00433d50
xor al, al
mov ecx, dword [esp + 0x56c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x550]
xor ecx, esp
call fcn.004c31a1
add esp, 0x564
ret 0xc