KiCheckForEffectivePriorityChange

VOID __fastcall KiCheckForEffectivePriorityChange(struct KPRCB *a1, INT64 a2){
  __int64 v2; 
  __int64 v4; 
  char v5; 
  char v6; 
  INT64 v7; 
  v2 = *((_QWORD *)a1 + 2);
  if( !v2 )
    v2 = *((_QWORD *)a1 + 1);
  v4 = *(_QWORD *)(v2 + 104);
  if( v4 )
  {
    for( v4 += *((unsigned int *)a1 + 54); v4; v4 = *(_QWORD *)(v4 + 408) )
    {
      if( v4 == a2 )
        goto LABEL_9;
    }
  }
  if( v4 == a2 )
  {
LABEL_9:
    if( (*(_BYTE *)(v2 + 2) & 4) == 0 || (KiIsThreadRankNonZero((_ETHREAD *)v2, (_KPRCB *)a1), v5 = 1, !v6) )
      v5 = *(_BYTE *)(v2 + 195);
    **((_BYTE **)a1 + 7) = v5;
    if( *((_QWORD *)a1 + 4247) )
    {
      v7 = (unsigned int)KiVpThreadSystemWorkPriority;
      if( v2 != *((_QWORD *)a1 + 3) )
        v7 = (unsigned int)v5;
      KiSetSchedulerAssistPriority(*((volatile INT32 **)a1 + 4247), v7, 0);
    }
  }
}

Referenced by:

KeSetSchedulingGroupRankBias
KiComputeGroupSchedulingRank
KiUpdateCpuTargetByRate
KiUpdateCpuTargetByWeight