KiValidateCpuSetMasks

UINT8 __fastcall KiValidateCpuSetMasks(_GUID *a1, _IOBJECT_TYPE_LIST *a2){
  unsigned int v2; 
  signed __int64 v4; 

  if( (unsigned int)a2 <= (unsigned __int16)KiMaximumGroups )
  {
    v2 = 0;
    if( !(_DWORD)a2 )
      return 0;
    v4 = (char *)KeActiveProcessors.Bitmap - (char *)a1;
    while( (~*(_QWORD *)((char *)&a1->Data1 + v4) & *(_QWORD *)&a1->Data1) == 0i64 )
    {
      ++v2;
      a1 = (_GUID *)((char *)a1 + 8);
      if( v2 >= (unsigned int)a2 )
        return 0;
    }
  }
  return -81;
}

Referenced by:

KeSetCpuSetsProcess
KeSetSelectedCpuSetsThread
KeSetSystemAllowedCpuSets
KeSetTagCpuSets
KiInitializeReservedCpuSets