PpmCheckStart

VOID __fastcall PpmCheckStart(_PPM_CHECK_PIPELINE_ID NewPipeline){
  __int64 v1; 
  __int64 v2; 
  int v3; 
  REGHANDLE v4; 
  int v5; 
  int v6; 
  int v7; 
  __int64 v8; 
  INT64 CurrentQpc; 
  _EVENT_DATA_DESCRIPTOR UserData; 
  __int64 *v11; 
  __int64 v12; 
  int *v13; 
  __int64 v14; 

  v1 = NewPipeline;
  *(&PopIrpWorkerControlEvent + 313) = NewPipeline;
  LODWORD(v2) = RtlGetInterruptTimePrecise(&CurrentQpc);
  *(&PopIrpWorkerControlEvent + 152) = v2;
  v3 = 0;
  v8 = *(&PopIrpWorkerControlEvent + 159);
  v7 = v1;
  if( PpmEtwRegistered )
  {
    v4 = PpmEtwHandle;
    if( EtwEventEnabled(PpmEtwHandle, &PPM_ETW_PERF_CHECK_START) )
    {
      *(_QWORD *)&UserData.Size = 8i64;
      UserData.Ptr = (unsigned __int64)&PopIrpWorkerControlEvent + 1216;
      v12 = 8i64;
      v11 = &v8;
      v14 = 4i64;
      v13 = &v7;
      EtwWriteEx(v4, &PPM_ETW_PERF_CHECK_START, 0i64, 0, 0, 0, 3u, &UserData);
    }
  }
  *(&PopIrpWorkerControlEvent + 133) = *(_QWORD *)(*(&PopIrpWorkerControlEvent + 154) + 8 * v1);
  if( !*(&PopIrpWorkerControlEvent + 133) )
    *(&PopIrpWorkerControlEvent + 133) = **(&PopIrpWorkerControlEvent + 154);
  v5 = 0;
  *(&PopIrpWorkerControlEvent + 268) = 0;
  if( *(&stru_140C23628 + 440) >= *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart )
    v5 = 1;
  if( *(&stru_140C23628 + 439) >= *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart )
    v3 = 1;
  if( *(&PopIrpWorkerControlEvent + 315) != v5 || *(&PopIrpWorkerControlEvent + 314) != v3 )
  {
    PpmPerfSetAllDomainsToUpdate();
    *(&PopIrpWorkerControlEvent + 315) = v6;
    *(&PopIrpWorkerControlEvent + 314) = v3;
  }
  PpmCheckRun(0i64, 0i64, 0i64, 0i64);
}

Referenced by:

PpmCheckCustomRun
PpmCheckPeriodicStart