IopLiveDumpTraceCaptureDumpDataBufferingDuration

CHAR __stdcall IopLiveDumpTraceCaptureDumpDataBufferingDuration(_GUID *a1){
  int v2; 
  __int64 v3; 
  __int64 *v4; 
  __int64 v5; 
  __int64 v7; 
  _EVENT_DATA_DESCRIPTOR UserData; 
  _EVENT_DATA_DESCRIPTOR v9; 
  __int64 *v10; 
  int v11; 
  int v12; 

  LOBYTE(v2) = IopLiveDumpIsTracingEnabled();
  if( (_BYTE)v2 )
  {
    if( !*(_DWORD *)(v3 + 416) )
    {
      v2 = *(_DWORD *)(v3 + 312);
      if( (v2 & 1) != 0 )
      {
        UserData.Reserved = 0;
        v4 = (__int64 *)(v3 + 536);
        UserData.Ptr = v3 + 536;
        UserData.Size = 8;
        LOBYTE(v2) = EtwWriteEx(
                       *(&stru_140CF2E80 + 602),
                       &LIVEDUMP_EVENT_CAPTURE_PAGES_WORKFLOW_SYSTEM_QUISCED_DUMP_DATA_BUFFERING,
                       0i64,
                       0,
                       0,
                       0,
                       1u,
                       &UserData);
        if( (unsigned int)dword_140C04498 > 5 )
        {
          LOBYTE(v2) = tlgKeywordOn((__int64)&dword_140C04498, 0x200000000000i64);
          if( (_BYTE)v2 )
          {
            v5 = *v4;
            v12 = 0;
            v7 = v5;
            v11 = 8;
            v10 = &v7;
            LOBYTE(v2) = tlgWriteTransfer_EtwWriteTransfer(
                           (__int64)&dword_140C04498,
                           (unsigned __int8 *)&word_140023A8E,
                           a1 + 54,
                           a1 + 53,
                           3u,
                           &v9);
          }
        }
      }
    }
  }
  return v2;
}

Referenced by:

IopLiveDumpStartDumpDataBuffering