PpmEventTraceProcessorPerformance

void __fastcall PpmEventTraceProcessorPerformance(INT64 a1){
  unsigned int v1; 
  REGHANDLE v3; 
  __int64 v4; 
  _DWORD *v5; 
  unsigned int v6; 
  int v7; 
  _DWORD *v8; 
  __int16 v9; 
  int v10; 
  int v11; 
  int v12; 
  unsigned int v13; 
  int v14; 
  int v15; 
  int v16; 
  int v17; 
  _BOOL4 v18; 
  int v19; 
  int v20; 
  unsigned int v21; 
  unsigned int v22; 
  int v23; 
  int v24; 
  int v25; 
  int v26; 
  _EVENT_DATA_DESCRIPTOR UserData; 
  INT64 v28; 
  __int64 v29; 
  int *v30; 
  __int64 v31; 
  int *v32; 
  __int64 v33; 
  int *v34; 
  __int64 v35; 
  int *v36; 
  __int64 v37; 
  int *v38; 
  __int64 v39; 
  int *v40; 
  __int64 v41; 
  int *v42; 
  __int64 v43; 
  int *v44; 
  __int64 v45; 
  int *v46; 
  __int64 v47; 
  INT64 v48; 
  __int64 v49; 
  INT64 v50; 
  __int64 v51; 
  _BOOL4 *v52; 
  __int64 v53; 
  int *v54; 
  __int64 v55; 
  int *v56; 
  __int64 v57; 
  int *v58; 
  __int64 v59; 
  int *v60; 
  __int64 v61; 
  INT64 v62; 
  __int64 v63; 
  int *v64; 
  __int64 v65; 
  int *v66; 
  __int64 v67; 
  int *v68; 
  __int64 v69; 

  v1 = 0;
  if( PpmEtwRegistered )
  {
    v3 = PpmEtwHandle;
    if( EtwEventEnabled(PpmEtwHandle, &PPM_ETW_CURRENT_PERF_RUNDOWN) )
    {
      v4 = *(_QWORD *)(a1 + 33128);
      v5 = *(_DWORD **)(a1 + 33136);
      v23 = *(unsigned __int8 *)(a1 + 33212);
      v24 = *(_DWORD *)(a1 + 33268);
      if( v4 )
      {
        v6 = *(_DWORD *)(v4 + 316);
        v13 = v6;
        v18 = *(_BYTE *)(v4 + 359) != 0;
        v7 = *(unsigned __int8 *)(v4 + 352);
      }
      else
      {
        v6 = *(_DWORD *)(a1 + 68);
        v7 = 100;
        v13 = v6;
        v18 = 0;
      }
      v25 = v7;
      if( v5 )
      {
        v10 = v5[6];
        v11 = v5[7];
        v12 = v5[18];
        v14 = v5[20];
        v15 = v5[21];
        v16 = v5[22];
        v19 = v5[23];
        v20 = v5[24];
        v21 = v5[19];
        v17 = v5[30];
        v6 = v6 * v5[29] / 0x64;
      }
      else
      {
        v10 = 100;
        v11 = 100;
        v12 = 100;
        v14 = 100;
        v15 = 100;
        v16 = 100;
        v19 = 0;
        v20 = 0;
        v21 = v6;
        v17 = 100;
      }
      v9 = *(unsigned __int8 *)(a1 + 208);
      v22 = v6;
      UserData.Ptr = (unsigned __int64)&v9;
      *(_QWORD *)&UserData.Size = 2i64;
      v28 = a1 + 209;
      v29 = 1i64;
      v30 = &v23;
      v32 = &v10;
      v34 = &v11;
      v36 = &v12;
      v38 = (int *)&v13;
      v40 = &v14;
      v42 = &v15;
      v44 = &v16;
      v46 = &v17;
      v48 = a1 + 33208;
      v50 = a1 + 33209;
      v52 = &v18;
      v54 = &v19;
      v56 = &v20;
      v58 = &v24;
      v60 = &v25;
      v62 = a1 + 33210;
      v64 = (int *)&v21;
      v26 = *(unsigned __int8 *)(a1 + 32819);
      v66 = &v26;
      v68 = (int *)&v22;
      v31 = 4i64;
      v33 = 4i64;
      v35 = 4i64;
      v37 = 4i64;
      v39 = 4i64;
      v41 = 4i64;
      v43 = 4i64;
      v45 = 4i64;
      v47 = 4i64;
      v49 = 1i64;
      v51 = 1i64;
      v53 = 4i64;
      v55 = 4i64;
      v57 = 4i64;
      v59 = 4i64;
      v61 = 4i64;
      v63 = 1i64;
      v65 = 4i64;
      v67 = 4i64;
      v69 = 4i64;
      EtwWrite(v3, &PPM_ETW_CURRENT_PERF_RUNDOWN, 0, 0x16u, &UserData);
      if( v4 )
      {
        if( *(_QWORD *)(v4 + 16) == a1 + 33128 && *(_DWORD *)(v4 + 200) )
        {
          do
          {
            v8 = (_DWORD *)(*(_QWORD *)(v4 + 216) + 136i64 * v1);
            if( v8[4] == 2 )
              PpmEventHiddenProcessorPerformance(
                a1,
                (unsigned int)v8[5],
                (NPTEXTMETRIC *)(unsigned int)v8[6],
                (unsigned int)v8[7]);
            ++v1;
          }
          while( v1 < *(_DWORD *)(v4 + 200) );
        }
      }
    }
  }
}

Referenced by:

PpmEventTraceControlCallback