HvlpGetLpcbByLpIndex

_HVLP_LPCB *__stdcall HvlpGetLpcbByLpIndex(UINT64 LpIndex){
  _HVLP_LPCB *v1; 
  _HVLP_LPCB *result; 
  size_t v3; 

  v1 = (_HVLP_LPCB *)&HvlpLogicalProcessorRegions;
  if( (unsigned int)LpIndex >= HvlpLogicalProcessorCount
    || (result = (_HVLP_LPCB *)(&HvlpLogicalProcessorRegions + 15 * (unsigned int)LpIndex), result[1] != (_DWORD)LpIndex) )
  {
    result = 0i64;
    v3 = 0;
    if( HvlpLogicalProcessorCount )
    {
      while( v1[1] != (_DWORD)LpIndex )
      {
        ++v3;
        v1 += 30;
        if( v3 >= HvlpLogicalProcessorCount )
          goto LABEL_6;
      }
      return v1;
    }
    else
    {
LABEL_6:
      if( !(_DWORD)LpIndex )
        return v1;
    }
  }
  return result;
}

Referenced by:

HvlEnlightenProcessor
HvlGetStatsUpdateCounter
HvlQueryHypervisorProcessorNodeNumber
HvlQueryProcessorTopologyEx
HvlReadPerformanceStateCounters
HvlSharedIsr
KiQueryProcessorNode
PpmHvSnapPerformanceAccumulation