PoExecutePerfCheck
VOID __stdcall PoExecutePerfCheck(){
__int64 v0;
unsigned __int64 v1;
signed __int64 v2;
unsigned int v3;
unsigned __int64 v4;
unsigned __int64 v5;
v0 = *(&PopIrpWorkerControlEvent + 159);
if( *(&PopIrpWorkerControlEvent + 159) )
{
v1 = (unsigned int)KeTimeIncrement;
if( *(&PopIrpWorkerControlEvent + 160) > (unsigned __int64)(unsigned int)KeTimeIncrement )
v1 = *(&PopIrpWorkerControlEvent + 160);
v2 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
if( v1 + *(&PopIrpWorkerControlEvent + 159) <= *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart )
{
v3 = 0;
if( *(&PopIrpWorkerControlEvent + 159) != 1i64 )
{
if( *(&PopIrpWorkerControlEvent + 159) + v1 + (unsigned int)KeMaximumIncrement > *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart )
v2 = v1 + *(&PopIrpWorkerControlEvent + 159);
v4 = v2 - v1 - *(&PopIrpWorkerControlEvent + 159);
if( v4 >= v1 )
{
v3 = 64;
v5 = v4 / v1;
if( (unsigned int)v5 < 0x40 )
v3 = v5;
}
}
if( v0 == _InterlockedCompareExchange64(
(_QWORD *)&PopIrpWorkerControlEvent + 159,
v2,
*(&PopIrpWorkerControlEvent + 159)) )
KiInsertQueueDpc((_KDPC *)&PopIrpWorkerControlEvent + 17, (VOID *)v3, 0i64, 0i64, 0);
}
}
}Referenced by:
KiUpdateTime