PspJobIoRateQueryHistory
__int64 __fastcall PspJobIoRateQueryHistory(__int64 a1, _QWORD *a2, _DWORD *a3, _DWORD *a4){
__int64 v8;
__int64 v9;
unsigned int v10;
INT64 *v12;
unsigned __int8 v13;
int v14;
unsigned __int64 v15;
int v16;
int v17;
if( !*(_QWORD *)(a1 + 1440) )
{
v8 = a1 + 1464;
v9 = *(_QWORD *)v8;
if( (*(_BYTE *)(v8 + 8) & 1) != 0 )
{
if( !v9 )
return(unsigned int)-1073741275;
v9 ^= v8;
}
if( !v9 )
return(unsigned int)-1073741275;
}
v12 = (INT64 *)(a1 + 1456);
v13 = ExAcquireSpinLockExclusive((INT64 *)(a1 + 1456));
v14 = *(_DWORD *)(a1 + 1496);
v15 = v13;
if( v14 )
{
v16 = *(_DWORD *)(a1 + 1488);
*a2 = *(_QWORD *)(a1 + 1480);
v17 = v16 - *(_DWORD *)(a1 + 1492);
*(_DWORD *)(a1 + 1492) = v16;
v10 = 0;
*a4 = v17;
*a3 = v14;
}
else
{
v10 = -1073741275;
}
ExReleaseSpinLockExclusiveFromDpcLevel(v12);
__writecr8(v15);
return v10;
}Referenced by:
PspQueryRateControlHistory