KiAllocateCpuSetData

UINT64 __stdcall KiAllocateCpuSetData(UINT64 MaximumProcessors){
  unsigned int v1; 
  UINT64 result; 
  char *v3; 
  __int64 v4; 

  v1 = MaximumProcessors;
  if( KiMaximumGroups != 1 )
    v1 = (unsigned __int16)KiMaximumGroups << 6;
  result = (UINT64)ExAllocatePoolWithTag(0x200ui64, 32 * v1, 538993995i64);
  v3 = (char *)result;
  if( result )
  {
    memset((VOID *)result, 0i64, 32 * v1);
    KiCpuSetAffinities = v3;
    v4 = 8i64 * v1;
    KiCpuSetAffinitiesShadow = &v3[v4];
    KiCpuSetData = (__int64)&v3[v4 + v4];
    KiCpuSetAffinitySize = 8 * v1;
    KiCreateCpuSetForProcessor(KiProcessorBlock);
    return 1i64;
  }
  return result;
}

Referenced by:

KeStartAllProcessors