Windows 2000 (? I think) and later has something called 'WMI', which you can query using COM for all kinds of information. The main downside to it is that it's very slow. I'm not sure if this is mIRC's implementation or WMI, but you'd be better off using a dll.

Anyway, since you asked for $com:

Code:
alias procinfo {
  var %a = a $+ $ticks, %b = b $+ $ticks
  .comopen %a WBemScripting.SWBemLocator
  if (!$com(%a)) { 
    echo -abcfilqrt info * /procinfo: problem connecting to WMI. 
    return
  }
  .comclose %a $com(%a,ConnectServer,1,dispatch* %b)
  if (!$com(%b)) { 
    echo -abcfilqrt info * /procinfo: problem connecting to WMI. 
    return
  }
  .comclose %b $com(%b,ExecQuery,1,bstr,SELECT * FROM Win32_Processor,dispatch* %a)
  if (!$com(%a)) { 
    echo -abcfilqrt info * /procinfo: problem connecting to WMI. 
    return
  }
  var %i = 1, %n = $comval(%a,0)
  while (%i <= %n) {
    echo -a Caption: $comval(%a,%i,Caption)
    echo -a Manufacturer: $comval(%a,%i,Manufacturer)
    echo -a MaxClockSpeed: $comval(%a,%i,MaxClockSpeed)
    echo -a Name: $comval(%a,%i,Name)
    echo -a NumberOfCores: $comval(%a,%i,NumberOfCores)
    echo -a ProcessorType: $comval(%a,%i,ProcessorType)
    echo -a Version: $comval(%a,%i,Version)
    if (%i < %n) { linesep -a }
    inc %i
  }
  .comclose %a
}


The "NumberOfCores" bit returns nothing on my computer, but it's documented so it might work on yours or on computers that are actually dual core.

As far as I know WMI can be installed on older computers from the Microsoft website, it just doesn't come with windows.