PpmParkRecordNodeStatistics
VOID __stdcall PpmParkRecordNodeStatistics(UINT64 MakeupCount){
unsigned int v1;
__int64 v2;
unsigned __int16 v3;
UINT8 v4;
UINT8 i;
INT64 v6;
EVENT_DESCRIPTOR *v7;
UINT64 v8;
int v9;
unsigned __int8 v10;
CHAR *v11;
INT64 v12;
INT64 v13;
UINT64 UserDataCount;
char v15;
char v16;
unsigned __int16 v17;
__int16 v18;
__int64 v19;
struct _EVENT_DATA_DESCRIPTOR UserData;
__int64 *v21;
__int64 v22;
char *v23;
__int64 v24;
INT64 v25;
__int64 v26;
__int64 v27;
int v28;
int v29;
char *v30;
__int64 v31;
v1 = PpmCheckMakeupCount;
v2 = 2736i64 * dword_140C23D0C;
v3 = 0;
v17 = 0;
v4 = *((_BYTE *)PpmCurrentProfile + v2 + 165);
for( i = *((_BYTE *)PpmCurrentProfile + v2 + 167); v3 < (unsigned int)PpmParkNumNodes; v17 = v3 )
{
v6 = PpmParkNodes + 272i64 * v3;
if( PpmParkComputeSnapStatistics(v1, v4, i, v6 + 80, (BYTE *)(v6 + 140), (BYTE *)(v6 + 141), (BYTE *)(v6 + 142)) )
{
v16 = *(_BYTE *)(v6 + 142);
v15 = *(_BYTE *)(v6 + 140);
v19 = *(_QWORD *)(v6 + 8);
v18 = *(_WORD *)(v6 + 4);
if( PpmEtwRegistered )
{
v8 = PpmEtwHandle;
if( EtwEventEnabled(PpmEtwHandle, (EVENT_DESCRIPTOR *)&PPM_ETW_PARK_NODE_STATS, v7) )
{
*(_QWORD *)&UserData.Size = 2i64;
UserData.Ptr = (unsigned __int64)&v18;
v22 = 8i64;
v21 = &v19;
v24 = 1i64;
v23 = &v15;
v26 = 4i64;
v25 = v6 + 120;
v9 = *(_DWORD *)(v6 + 120);
v27 = *(_QWORD *)(v6 + 88);
v29 = 0;
v31 = 1i64;
v28 = 8 * v9;
v30 = &v16;
LODWORD(UserDataCount) = 6;
EtwWriteEx(v8, (EVENT_DESCRIPTOR *)&PPM_ETW_PARK_NODE_STATS, 0i64, 0i64, 0i64, 0i64, UserDataCount, &UserData);
}
}
}
if( *(_BYTE *)(v6 + 6) != *(_BYTE *)(v6 + 128) )
{
v10 = 0;
v11 = (CHAR *)(v6 + 264);
v12 = v6 + 168;
do
{
if( PpmParkComputeSnapStatistics(v1, v4, i, v12, 0i64, 0i64, (BYTE *)v11) )
PpmEventParkNodeClassRecordedStats(
*(_WORD *)(v6 + 4),
*(_QWORD *)(v6 + 8),
(EVENT_DESCRIPTOR *)v10,
v13,
*v11);
++v10;
v12 += 48i64;
++v11;
}
while( v10 < 2u );
v3 = v17;
}
++v3;
}
}Referenced by:
PpmCheckRecordAllUtility