KeUpdateThreadSchedulingProperties

VOID __stdcall KeUpdateThreadSchedulingProperties(_ETHREAD *Thread, UINT8 ThreadState, _KPRCB *Prcb){
  char v5; 
  char v6; 
  char v7; 
  INT64 v8; 
  KiUpdateSharedReadyQueueAffinityThread(0i64, (_KTHREAD *)Thread);
  if( v5 == 2 && !*((_QWORD *)Prcb + 2) || v5 == 3 )
  {
    if( (*((_BYTE *)Thread + 2) & 4) == 0 || (KiIsThreadRankNonZero(Thread, Prcb), v6 = 1, !v7) )
      v6 = *((_BYTE *)Thread + 195);
    **((_BYTE **)Prcb + 7) = v6;
    if( *((_QWORD *)Prcb + 4247) )
    {
      v8 = (unsigned int)KiVpThreadSystemWorkPriority;
      if( Thread != *((_ETHREAD **)Prcb + 3) )
        v8 = (unsigned int)v6;
      KiSetSchedulerAssistPriority(*((volatile INT32 **)Prcb + 4247), v8, 0);
    }
  }
}

Referenced by:

KiRemoveThreadFromSchedulingGroup
KiSetThreadSchedulingGroup