KiAbProcessThreadPriorityModification
void __fastcall KiAbProcessThreadPriorityModification(__int64 a1, char a2, int a3){
_KPRCB *CurrentPrcb;
_QWORD *v4;
__int64 v5;
_QWORD *v6;
CurrentPrcb = KeGetCurrentPrcb();
if( a3 )
{
if( a3 == 1 && a2 > *(char *)(a1 + 195) )
{
if( *(_BYTE *)(a1 + 793) )
{
v4 = (_QWORD *)(a1 + 808);
if( *(_QWORD *)(a1 + 808) == 1i64 )
{
v5 = 34680i64;
LABEL_7:
v6 = (_QWORD *)((char *)CurrentPrcb + v5);
if( (_KPRCB *)((char *)CurrentPrcb + v5) )
{
*v4 = *v6;
*v6 = v4;
_InterlockedIncrement16((volatile signed __int16 *)(a1 + 868));
KiAbQueueAutoBoostDpc(CurrentPrcb);
}
}
}
}
}
else if( a2 < *(char *)(a1 + 563) )
{
if( *(_BYTE *)(a1 + 871) )
{
v4 = (_QWORD *)(a1 + 816);
if( *(_QWORD *)(a1 + 816) == 1i64 )
{
v5 = 34672i64;
goto LABEL_7;
}
}
}
}Referenced by:
KiDirectSwitchThread