KiCreateCpuSetForProcessor

VOID __stdcall KiCreateCpuSetForProcessor(_KPRCB *Prcb){
  unsigned __int8 CurrentIrql; 
  __int64 Group; 
  int GroupIndex; 
  __int64 v5; 
  unsigned __int64 GroupSetMember; 
  __int64 v7; 
  $991E1CBB7797929499350D8948279CF6 *v8; 

  if( KiCpuSetAffinities )
  {
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(2ui64);
    Group = Prcb->Group;
    KxAcquireSpinLock(&KiCpuSetLock);
    RtlWriteAcquireTickLock(&KiCpuSetSequence);
    GroupIndex = Prcb->GroupIndex;
    ++KiCpuSetCount[Group];
    v5 = (unsigned int)Group;
    GroupSetMember = Prcb->GroupSetMember;
    ++KiTotalCpuSetCount;
    v7 = (unsigned int)(GroupIndex + ((_DWORD)Group << 6));
    *((_QWORD *)KiCpuSetAffinities + v7) = GroupSetMember;
    *((_QWORD *)KiCpuSetAffinitiesShadow + v7) = Prcb->GroupSetMember;
    KiSystemAllowedCpuSets[2 * (unsigned int)v5] |= 1i64 << GroupIndex;
    KiNonParkedCpuSets[v5] |= 1i64 << GroupIndex;
    v8 = &PsInitialSystemProcess->2376;
    if( (PsInitialSystemProcess->Flags3 & 0x80u) != 0 )
      v8 = ($991E1CBB7797929499350D8948279CF6 *)v8->AllowedCpuSets;
    v8[v5].AllowedCpuSets |= 1i64 << GroupIndex;
    RtlWriteReleaseTickLock(&KiCpuSetSequence);
    KxReleaseSpinLock(&KiCpuSetLock);
    __writecr8(CurrentIrql);
  }
}

Referenced by:

KiAllocateCpuSetData
KiCompleteKernelInit