PpmTranslatePlatformIdleAccounting
__int64 __fastcall PpmTranslatePlatformIdleAccounting(__int64 a1, __int64 a2){
__int64 v2;
__int64 v3;
unsigned int v4;
__int64 result;
__int64 v6;
__int64 v7;
__int64 v8;
unsigned int v9;
UINT64 v10;
_DWORD *v11;
__int64 v12;
__int64 v13;
v2 = a2;
v3 = 0i64;
v4 = *(_DWORD *)(a1 + 4);
*(_DWORD *)v2 = v4;
*(_DWORD *)(v2 + 4) = *(_DWORD *)a1;
result = *(_QWORD *)(a1 + 16);
*(_QWORD *)(v2 + 16) = result;
if( v4 )
{
v6 = v2 + 40;
v7 = v4;
v8 = a1 + 28;
do
{
v9 = *(_DWORD *)v8 + *(_DWORD *)(v8 - 4) + *(_DWORD *)(v8 + 4);
v10 = PopQpcFrequency;
*(_DWORD *)(v6 - 8) = v9;
v3 += v9;
*(_DWORD *)(v6 - 4) = *(_DWORD *)v8;
*(_DWORD *)v6 = *(_DWORD *)(v8 - 4);
*(_DWORD *)(v6 + 12) = *(_DWORD *)(v8 + 36);
*(_QWORD *)(v6 + 16) = PpmConvertTime(*(_QWORD *)(v8 + 28), v10, 0xF4240ui64);
*(_DWORD *)(v6 + 8) = PpmConvertTime(*(_QWORD *)(v8 + 20), v10, 0xF4240ui64);
*(_DWORD *)(v6 + 4) = PpmConvertTime(*(_QWORD *)(v8 + 12), v10, 0xF4240ui64);
v11 = (_DWORD *)(v6 + 44);
v12 = v8 + 188;
v13 = 26i64;
do
{
*(_QWORD *)(v11 - 3) = PpmConvertTime(*(_QWORD *)(v12 - 16), v10, 0xF4240ui64);
*(v11 - 1) = PpmConvertTime(*(_QWORD *)(v12 - 8), v10, 0xF4240ui64);
*v11 = PpmConvertTime(*(_QWORD *)v12, v10, 0xF4240ui64);
v11 += 6;
result = *(unsigned int *)(v12 + 8);
v12 += 32i64;
*(v11 - 5) = result;
--v13;
}
while( v13 );
v6 += 664i64;
v8 += 1008i64;
--v7;
}
while( v7 );
v2 = a2;
}
*(_QWORD *)(v2 + 8) = v3;
return result;
}Referenced by:
PpmEventTracePlatformIdleAccounting