KeSubtractAffinityEx

UINT64 __stdcall KeSubtractAffinityEx(_KAFFINITY_EX *Affinity1, _KAFFINITY_EX *Affinity2, _KAFFINITY_EX *Result){
  unsigned int v6; 
  unsigned __int16 v7; 
  unsigned __int16 Count; 
  unsigned __int16 v9; 
  __int64 v10; 
  bool v11; 
  __int64 v12; 
  unsigned __int64 v14; 
  INT64 result[22]; 
  memset((INT64)result, 0i64);
  if( !Result )
    Result = (_KAFFINITY_EX *)result;
  Result->Size = 20;
  v6 = 0;
  v7 = 0;
  Result->Count = Affinity1->Count;
  Count = Affinity1->Count;
  v9 = Affinity1->Count;
  if( Affinity1->Count >= Affinity2->Count )
    v9 = Affinity2->Count;
  if( v9 )
  {
    do
    {
      v10 = v7;
      v11 = (Affinity1->Bitmap[v10] & ~Affinity2->Bitmap[v10]) == 0;
      Result->Bitmap[v10] = Affinity1->Bitmap[v10] & ~Affinity2->Bitmap[v10];
      if( !v11 )
        v6 = 1;
      ++v7;
    }
    while( v7 < v9 );
    Count = Affinity1->Count;
  }
  if( v7 < Count )
  {
    do
    {
      v14 = Affinity1->Bitmap[v7];
      Result->Bitmap[v7] = v14;
      if( v14 )
        v6 = 1;
      ++v7;
    }
    while( v7 < Affinity1->Count );
  }
  if( Result != (_KAFFINITY_EX *)result )
  {
    for( Result->Reserved = 0; v7 < Result->Size; Result->Bitmap[v12] = 0i64 )
      v12 = v7++;
  }
  return v6;
}

Referenced by:

HalpRemoveProfileSourceFromList
KiIpiSendRequest
KiStartProfileTarget
KiStopProfileTarget
PpmCheckContinueExecution
PpmCheckInitProcessors
PpmIdleSelectStates
PpmParkReportParkedCores
PpmParkReportUnparkedCores
PpmParkSteerInterrupts
PpmPostProcessMediaBuffering
RtlUpdateSwapReference