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