KiSelectThreadFromSchedulingGroup

_KTHREAD *__stdcall KiSelectThreadFromSchedulingGroup(_KPRCB *Prcb, _KSCB *Scb, INT64 LowPriority){
  _LIST_ENTRY **p_Blink; 
  int v4; 
  unsigned int v5; 
  p_Blink = 0i64;
  v4 = Scb->ReadySummary >> LowPriority;
  if( v4 )
  {
    _BitScanReverse(&v5, v4);
    p_Blink = &Scb->ReadyListHead[(unsigned int)LowPriority + v5].Flink[-14].Blink;
    KiRemoveThreadFromScbQueue(Prcb, Scb, p_Blink);
  }
  return(_KTHREAD *)p_Blink;
}

Referenced by:

KiChooseLowestRankedThread
KiSearchForNewThread
KiSelectLowestRankedThread
KiSelectThreadFromScbQueue
KiSwapThread