PspSetProcessTimerDelayForWin32
INT64 __fastcall PspSetProcessTimerDelayForWin32(__int64 a1){
INT64 *v1;
unsigned __int64 v4;
__int64 v5;
int v6;
int v7;
UINT64 v8;
v1 = (INT64 *)(a1 + 1080);
ExAcquirePushLockSharedEx(a1 + 1080, 0i64);
if( *(_QWORD *)(a1 + 1288) )
{
if( _InterlockedCompareExchange64(v1, 0i64, 17i64) != 17 )
ExfReleasePushLockShared(v1);
KeAbPostRelease(v1);
v4 = *(_QWORD *)(a1 + 2416);
LODWORD(v8) = MmGetSessionIdEx(a1);
v5 = a1;
v6 = v4 & 0x3FFFFFFF;
v7 = (v4 >> 30) & 0x3FFFFFFF;
return PsInvokeWin32Callout(41i64, &v5, 1i64, &v8);
}
else
{
if( _InterlockedCompareExchange64(v1, 0i64, 17i64) != 17 )
ExfReleasePushLockShared(v1);
KeAbPostRelease(v1);
return 0i64;
}
}Referenced by:
PspApplyTimerDelayProcess