PpmPerfFeedbackCounterRead
unsigned __int64 __fastcall PpmPerfFeedbackCounterRead(__int64 a1, __int64 a2, _DWORD *a3){
void(__fastcall *v3)(_QWORD, __int64, __int64 *, __int64 *);
__int64 v5;
__int64 v7;
unsigned __int64 result;
__int64 v9;
__int64 v10;
__int64 v11;
__int64 v12;
v3 = *(void(__fastcall **)(_QWORD, __int64, __int64 *, __int64 *))a1;
v5 = *(_QWORD *)(a1 + 40);
v12 = 0i64;
v11 = 0i64;
if( !*(_BYTE *)(a1 + 33) )
return((__int64(__fastcall *)(__int64, _DWORD *))v3)(v5, a3);
v3(v5, a2, &v11, &v12);
v7 = *(_QWORD *)(a1 + 16);
if( v11 == v7 )
{
result = *(unsigned int *)(a1 + 24);
}
else
{
v9 = *(_QWORD *)(a1 + 8);
v10 = v12 - v9;
result = (v12 - v9) * (unsigned __int64)*(unsigned __int8 *)(a1 + 35) / (v11 - v7);
*(_QWORD *)(a1 + 16) = v11;
*(_DWORD *)(a1 + 24) = result;
*(_QWORD *)(a1 + 8) = v10 + v9;
}
*a3 = result;
return result;
}Referenced by:
PpmInstallFeedbackCounters