Function at 0x46a910
Capabilities:
Get number of processors

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x3e0]
lea edi, [esi + 0x3bc]
push eax
mov ecx, edi
call fcn.0049c140
xor ebp, ebp
cmp eax, ebp
je 0x46a93f
push ebp
mov ecx, eax
call fcn.00425f70
mov ebx, eax
jmp 0x46a941
xor ebx, ebx
mov eax, dword [esi + 0x3e0]
mov ecx, dword [edi + 8]
cmp eax, ecx
jge 0x46a95e
cmp eax, ebp
jl 0x46a95e
mov ecx, dword [edi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x30], edx
jmp 0x46a962
mov dword [esp + 0x30], ebp
cmp ebx, ebp
je 0x46aa04
mov ecx, dword [ebx]
cmp ecx, ebp
je 0x46a9fb
mov eax, dword [ecx]
push ebp
call dword [eax + 0x10]
mov dword [esp + 0x20], eax
push 0xffffffffffffffff
mov ecx, ebx
call fcn.0049ddf0
test eax, eax
je 0x46a990
mov ebp, 1
mov ecx, dword [esi + 0x3c4]
xor edi, edi
cmp ebp, edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
je 0x46a9d0
mov edx, dword [esi + 0x2f0]
fld qword [edx + 0x58]
fmul qword [0x4d8f20]
fadd qword [0x4d6e18]
call fcn.004a7d38
mov ecx, dword [0x4d9ba4]
mov dword [esp + 0x24], 1
cmp eax, ecx
jl 0x46a9d4
mov dword [esp + 0x24], edi
call fcn.00471a30
cmp eax, 2
je 0x46aa10
mov eax, dword [esi + 0x2f0]
fld qword [eax + 0x58]
fcomp qword [0x4d8f28]
fnstsw ax
test ah, 1
je 0x46aa0a
mov eax, 1
jmp 0x46aa0c
mov dword [esp + 0x20], ebp
jmp 0x46a97e
mov dword [esp + 0x20], ebp
jmp 0x46a990
xor eax, eax
and dword [esp + 0x24], eax
cmp ebp, edi
je 0x46aa40
mov ecx, dword [esi + 0x2f0]
fld qword [ecx + 0x58]
fmul qword [0x4d8f20]
fadd qword [0x4d6e18]
call fcn.004a7d38
mov ecx, dword [0x4d9b60]
mov dword [esp + 0x2c], 1
cmp eax, ecx
jg 0x46aa44
mov dword [esp + 0x2c], edi
cmp ebp, edi
je 0x46aa60
mov ecx, ebx
call fcn.0049e940
mov ecx, ebx
mov dword [esp + 0x1c], eax
call fcn.0049e950
mov dword [esp + 0x28], eax
jmp 0x46aa68
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], edi
cmp ebx, edi
je 0x46aa7f
mov ecx, ebx
call fcn.0049dd40
test eax, eax
mov dword [esp + 0x18], 1
jne 0x46aa83
mov dword [esp + 0x18], edi
cmp ebx, edi
je 0x46aaa4
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x46aaa4
mov edx, eax
push 6
push edx
call fcn.004a8e56
add esp, 8
mov dword [esp + 0x20], edi
test eax, eax
je 0x46aaac
mov dword [esp + 0x20], 1
cmp ebp, edi
je 0x46aad0
mov eax, dword [0x4f83ec]
mov ecx, dword fs:[0x2c]
mov edx, dword [ecx + eax*4]
mov al, byte [edx + 0x2d8]
test al, al
jne 0x46aad0
mov ebx, 1
jmp 0x46aad2
xor ebx, ebx
lea edi, [esi + 0x15c]
push ebx
push 0x4f22
mov ecx, edi
call fcn.00415cc0
mov ecx, dword [esi + 0xd4]
xor eax, eax
test ebx, ebx
mov ebx, dword [sym.imp.USER32.dll_EnableMenuItem]
sete al
push eax
push 0x4f22
push ecx
call ebx
test ebp, ebp
je 0x46ab25
mov edx, dword fs:[0x2c]
mov eax, dword [0x4f83ec]
mov ecx, dword [edx + eax*4]
mov al, byte [ecx + 0x2d8]
test al, al
jne 0x46ab25
mov ebp, 1
jmp 0x46ab27
xor ebp, ebp
push ebp
push 0x4f7b
mov ecx, edi
call fcn.00415cc0
mov eax, dword [esi + 0xd4]
xor edx, edx
test ebp, ebp
sete dl
push edx
push 0x4f7b
push eax
call ebx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46ab73
mov ecx, dword fs:[0x2c]
mov edx, dword [0x4f83ec]
mov eax, dword [ecx + edx*4]
mov cl, byte [eax + 0x2d8]
test cl, cl
jne 0x46ab73
mov ebp, 1
jmp 0x46ab75
xor ebp, ebp
push ebp
push 0x4f42
mov ecx, edi
call fcn.00415cc0
mov edx, dword [esi + 0xd4]
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x4f42
push edx
call ebx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46abc0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x4f83ec]
mov edx, dword [eax + ecx*4]
mov al, byte [edx + 0x2d6]
test al, al
jne 0x46abc0
mov ebp, 1
jmp 0x46abc2
xor ebp, ebp
push ebp
push 0x4f43
mov ecx, edi
call fcn.00415cc0
mov ecx, dword [esi + 0xd4]
xor eax, eax
test ebp, ebp
sete al
push eax
push 0x4f43
push ecx
call ebx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46ac0d
mov edx, dword fs:[0x2c]
mov eax, dword [0x4f83ec]
mov ecx, dword [edx + eax*4]
mov al, byte [ecx + 0x2d6]
test al, al
jne 0x46ac0d
mov ebp, 1
jmp 0x46ac0f
xor ebp, ebp
push ebp
push 0x4f25
mov ecx, edi
call fcn.00415cc0
mov eax, dword [esi + 0xd4]
xor edx, edx
test ebp, ebp
sete dl
push edx
push 0x4f25
push eax
call ebx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46ac5b
mov ecx, dword fs:[0x2c]
mov edx, dword [0x4f83ec]
mov eax, dword [ecx + edx*4]
mov cl, byte [eax + 0x2d6]
test cl, cl
jne 0x46ac5b
mov ebp, 1
jmp 0x46ac5d
xor ebp, ebp
push ebp
push 0x4f26
mov ecx, edi
call fcn.00415cc0
mov edx, dword [esi + 0xd4]
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x4f26
push edx
call ebx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46aca8
mov eax, dword fs:[0x2c]
mov ecx, dword [0x4f83ec]
mov edx, dword [eax + ecx*4]
mov al, byte [edx + 0x2d6]
test al, al
jne 0x46aca8
mov ebp, 1
jmp 0x46acaa
xor ebp, ebp
push ebp
push 0x4f27
mov ecx, edi
call fcn.00415cc0
mov ecx, dword [esi + 0xd4]
xor eax, eax
test ebp, ebp
sete al
push eax
push 0x4f27
push ecx
call ebx
mov edx, dword [esp + 0x14]
mov ebp, dword [esi + 0x3e0]
dec edx
xor eax, eax
cmp ebp, edx
mov ecx, edi
setl al
mov ebp, eax
push ebp
push 0x4eb4
call fcn.00415cc0
mov edx, dword [esi + 0xd4]
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x4eb4
push edx
call ebx
mov ebp, dword [esi + 0x3e0]
xor eax, eax
test ebp, ebp
setg al
mov ebp, eax
mov ecx, edi
push ebp
push 0x4eb3
call fcn.00415cc0
mov edx, dword [esi + 0xd4]
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x4eb3
push edx
call ebx
mov ebp, dword [esi + 0x3c4]
xor eax, eax
cmp ebp, 1
mov ecx, edi
setg al
mov ebp, eax
push ebp
push 0x4ec1
call fcn.00415cc0
mov edx, dword [esi + 0xd4]
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x4ec1
push edx
call ebx
mov ebp, dword [esi + 0x3c4]
xor eax, eax
cmp ebp, 1
mov ecx, edi
setg al
mov ebp, eax
push ebp
push 0x4ec2
call fcn.00415cc0
mov edx, dword [esi + 0xd4]
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x4ec2
push edx
call ebx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x46adc0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x46adc0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
jge 0x46adc0
mov ebp, 1
jmp 0x46adc2
xor ebp, ebp
push ebp
push 0x4eff
mov ecx, edi
call fcn.00415cc0
mov edx, dword [esi + 0xd4]
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x4eff
push edx
call ebx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x46ae04
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x46ae04
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x46ae04
mov ebp, 1
jmp 0x46ae06
xor ebp, ebp
push ebp
push 0x4f00
mov ecx, edi
call fcn.00415cc0
mov ecx, dword [esi + 0xd4]
xor eax, eax
test ebp, ebp
sete al
push eax
push 0x4f00
push ecx
call ebx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x46ae47
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x46ae47
cmp dword [esp + 0x1c], 1
jle 0x46ae47
mov ebp, 1
jmp 0x46ae49
xor ebp, ebp
push ebp
push 0x4efe
mov ecx, edi
call fcn.00415cc0
mov eax, dword [esi + 0xd4]
xor edx, edx
test ebp, ebp
sete dl
push edx
push 0x4efe
push eax
call ebx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x46ae8a
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x46ae8a
cmp dword [esp + 0x1c], 1
jle 0x46ae8a
mov ebp, 1
jmp 0x46ae8c
xor ebp, ebp
push ebp
push 0x4f01
mov ecx, edi
call fcn.00415cc0
mov edx, dword [esi + 0xd4]
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x4f01
push edx
call ebx
mov ebp, dword [esp + 0x24]
mov ecx, edi
push ebp
push 0x4eb8
call fcn.00415cc0
mov ecx, dword [esi + 0xd4]
xor eax, eax
test ebp, ebp
sete al
push eax
push 0x4eb8
push ecx
call ebx
mov ebp, dword [esp + 0x2c]
mov ecx, edi
push ebp
push 0x4eb9
call fcn.00415cc0
mov eax, dword [esi + 0xd4]
xor edx, edx
test ebp, ebp
sete dl
push edx
push 0x4eb9
push eax
call ebx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x46af2b
mov ecx, dword [esi + 0x2f0]
fld qword [ecx + 0x58]
fmul qword [0x4d8f20]
fadd qword [0x4d6e18]
call fcn.004a7d38
cmp eax, 0x64
je 0x46af2b
mov ebp, 1
jmp 0x46af2d
xor ebp, ebp
push ebp
push 0x4f0a
mov ecx, edi
call fcn.00415cc0
mov eax, dword [esi + 0xd4]
xor edx, edx
test ebp, ebp
sete dl
push edx
push 0x4f0a
push eax
call ebx
mov ebp, dword [esp + 0x10]
mov ecx, edi
push ebp
push 0x4f09
call fcn.00415cc0
mov edx, dword [esi + 0xd4]
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x4f09
push edx
call ebx
mov edx, dword [esp + 0x14]
xor eax, eax
cmp edx, 1
mov ecx, edi
setg al
mov ebp, eax
push ebp
push 0x4eb6
call fcn.00415cc0
mov edx, dword [esi + 0xd4]
xor ecx, ecx
test ebp, ebp
sete cl
push ecx
push 0x4eb6
push edx
call ebx
push ebp
push 0x4f2e
mov ecx, esi
call fcn.0046b300
push ebp
push 0x4f31
mov ecx, esi
call fcn.0046b300
mov eax, dword [esp + 0x10]
test eax, eax
je 0x46afea
mov eax, dword fs:[0x2c]
mov ecx, dword [0x4f83ec]
mov edx, dword [eax + ecx*4]
mov al, byte [edx + 0x2d7]
test al, al
jne 0x46afea
mov eax, 1
jmp 0x46afec
xor eax, eax
push eax
push 0x4f28
mov ecx, esi
call fcn.0046b300
mov ebp, dword [esp + 0x10]
mov ecx, esi
push ebp
push 0x4eb7
call fcn.0046b300
mov ebx, dword [esp + 0x14]
mov ecx, esi
push ebx
push 0x4f1a
call fcn.0046b300
push ebx
push 0x4f1c
mov ecx, esi
call fcn.0046b300
push ebx
push 0x4e94
mov ecx, esi
call fcn.0046b300
push ebx
push 0x4e8c
mov ecx, esi
call fcn.0046b300
push ebx
push 0x4ec6
mov ecx, esi
call fcn.0046b300
push ebx
push 0x4ec7
mov ecx, esi
call fcn.0046b300
push ebp
push 0x4f23
mov ecx, esi
call fcn.0046b300
mov eax, dword fs:[0x2c]
mov ecx, dword [0x4f83ec]
xor edx, edx
mov ebp, dword [eax + ecx*4]
mov ecx, esi
mov al, byte [ebp + 0x2d9]
test al, al
sete dl
push edx
push 0x4e90
call fcn.0046b300
mov eax, dword [esp + 0x10]
mov ecx, esi
push eax
push 0x4f73
call fcn.0046b300
mov eax, dword [esp + 0x20]
xor ecx, ecx
test eax, eax
sete cl
push ecx
push 0x4f7f
mov ecx, esi
call fcn.0046b300
push ebx
push 0x4fa3
mov ecx, esi
call fcn.0046b300
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x46b0e2
mov ecx, ebx
call fcn.00426460
test eax, eax
je 0x46b0e2
mov eax, 1
jmp 0x46b0e4
xor eax, eax
push eax
push 0x500c
mov ecx, esi
call fcn.0046b300
mov ecx, 0x4f5738
call fcn.004509a0
push eax
push 0x5013
mov ecx, esi
call fcn.0046b300
mov ecx, 0x4f5738
call fcn.004509a0
test eax, eax
jne 0x46b129
test ebx, ebx
je 0x46b125
mov ecx, ebx
call fcn.00426460
test eax, eax
jne 0x46b129
xor eax, eax
jmp 0x46b12e
mov eax, 1
push eax
push 0x5015
mov ecx, esi
call fcn.0046b300
mov ebx, dword [esp + 0x10]
mov ecx, esi
push ebx
push 0x4fc3
call fcn.0046b300
test ebx, ebx
je 0x46b165
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x46b165
mov ecx, dword [esp + 0x1c]
mov eax, 1
cmp ecx, eax
jg 0x46b167
xor eax, eax
xor ebx, ebx
mov edx, dword [esi + 0x178]
test eax, eax
sete bl
and ebx, 0xffff
push ebx
push 0x4eff
push 0x404
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esi + 0x178]
push ebx
push 0x4f00
push 0x404
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi + 0x3b8]
mov edx, dword [esi + 0xd4]
neg ecx
mov ebx, dword [sym.imp.USER32.dll_CheckMenuItem]
sbb ecx, ecx
and ecx, 8
push ecx
push 0x4eb6
push edx
call ebx
mov al, byte [ebp + 0x2a1]
mov ecx, dword [esi + 0xd4]
neg al
sbb eax, eax
and eax, 8
push eax
push 0x4efa
push ecx
call ebx
mov dl, byte [ebp + 0x2a0]
mov eax, dword [esi + 0xd4]
neg dl
sbb edx, edx
and edx, 8
push edx
push 0x4f07
push eax
call ebx
mov cl, byte [ebp + 0x2a1]
mov edx, dword [esi + 0xd4]
neg cl
sbb ecx, ecx
and ecx, 8
push ecx
push 0x4efa
push edx
call ebx
mov al, byte [ebp + 0x2a0]
mov ecx, dword [esi + 0xd4]
neg al
sbb eax, eax
and eax, 8
push eax
push 0x4f07
push ecx
call ebx
mov dl, byte [ebp + 0x28a]
mov eax, dword [esi + 0xd4]
neg dl
sbb edx, edx
and edx, 8
push edx
push 0x4f5e
push eax
call ebx
mov cl, byte [ebp + 0x28b]
mov edx, dword [esi + 0xd4]
neg cl
sbb ecx, ecx
and ecx, 8
push ecx
push 0x4f5f
push edx
call ebx
mov eax, dword [esi + 0x42c]
mov ecx, dword [esi + 0xd4]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x4f60
push ecx
call ebx
mov edx, dword [esi + 0x660]
mov eax, dword [esi + 0xd4]
neg edx
sbb edx, edx
and edx, 8
push edx
push 0x4f7d
push eax
call ebx
mov ecx, dword [esi + 0x3b8]
push ecx
push 0x4eb6
mov ecx, edi
call fcn.0046d740
mov ecx, 0x4f5738
call fcn.004509a0
push eax
push 0x500c
mov ecx, edi
call fcn.0046d770
mov ecx, 0x4f5738
call fcn.004509a0
neg eax
sbb eax, eax
mov ecx, edi
inc eax
push eax
push 0x5013
call fcn.0046d770
mov ecx, esi
call fcn.0046c320
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret