KiExtendProcessAffinity

void __fastcall KiExtendProcessAffinity(__int64 a1, unsigned __int16 a2){
  __int64 v2; 
  unsigned __int64 v4; 
  __int64 v5; 
  v2 = a2;
  v4 = KeActiveProcessors.Bitmap[a2];
  v5 = *(_QWORD *)(a1 + 8 * v2 + 88);
  if( v5 )
  {
    *(_QWORD *)(a1 + 8 * v2 + 88) = v4 | v5;
  }
  else
  {
    if( *(_WORD *)(a1 + 80) <= (unsigned __int16)v2 )
      *(_WORD *)(a1 + 80) = v2 + 1;
    *(_QWORD *)(a1 + 8 * v2 + 88) |= v4;
    KiSetIdealNodeProcessByGroup((_EPROCESS *)a1, 0i64, v2);
    *(_DWORD *)(a1 + 636) |= 1 << v2;
  }
}

Referenced by:

KeSetAffinityThread
KeStartThread