MmPerfLogSessionRundown

INT64 __stdcall MmPerfLogSessionRundown(UINT64 LoggerId, UINT64 Start){
  int v2; 
  INT16 a5; 
  void *v5; 
  unsigned int v6; 
  __int64 v7; 
  _QWORD *v8; 
  void *v9; 
  INT64 a6; 
  __int128 v12; 
  EVENT_DATA_DESCRIPTOR a1; 
  a1.Size = 12;
  a1.Ptr = (unsigned __int64)&v12;
  a1.Reserved = 0;
  a5 = (v2 != 0) + 588;
  v5 = 0i64;
  v6 = Start;
  v12 = 0i64;
  while( 1 )
  {
    LODWORD(v8) = MmGetNextSession(v5);
    v9 = v8;
    if( !v8 )
      break;
    v7 = v8[171];
    LODWORD(a6) = 4200451;
    DWORD2(v12) = *(_DWORD *)(v7 + 8);
    *(_QWORD *)&v12 = v7;
    EtwTraceSiloDcEvent(&a1, 1u, LoggerId, v6, a5, a6);
    v5 = v9;
  }
  return 0i64;
}

Referenced by:

EtwpKernelTraceRundown