KiRemoveProcessorFromGroupDatabase

VOID __stdcall KiRemoveProcessorFromGroupDatabase(_KPRCB *Prcb){
  _KPRCB *v1; 
  _KNODE *ParentNode; 
  __int64 *v3; 
  unsigned __int64 v4; 
  bool v5; 
  unsigned __int64 v6; 

  v1 = Prcb;
  ParentNode = Prcb->ParentNode;
  v3 = &KiGroupBlock[2 * ParentNode->Affinity.Group];
  v4 = ~v1->GroupSetMember;
  v5 = (v4 & *v3) == 0;
  *v3 &= v4;
  if( v5 )
    KiUncommitNodeAssignment(ParentNode);
  v6 = (unsigned __int64)v1->Group << 6;
  KiProcessorIndexToNumberMappingTable[v1->Number] = 0;
  KiProcessorNumberToIndexMappingTable[v1->GroupIndex + v6] = 0;
}

Referenced by:

KeStartAllProcessors
KiStartDynamicProcessor