IoWriteDeferredLiveDumpData

NTSTATUS __stdcall IoWriteDeferredLiveDumpData(VOID *LiveDumpContext){
  __int64 v2; 
  int v3; 
  UINT64 v4; 
  __int64 v5; 
  __int64 v6; 
  INT64 v7; 
  UINT64 v8; 
  __int64 v10; 
  unsigned __int64 v11; 
  _EVENT_DATA_DESCRIPTOR v12; 
  __int64 *v13; 
  int v14; 
  int v15; 
  unsigned __int64 *v16; 
  int v17; 
  int v18; 

  v2 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
  IopLiveDumpTraceInterfaceStart(1ui64);
  IopLiveDumpTrace();
  v3 = IopLiveDumpWriteDumpFile((_LIVEDUMP_CONTEXT *)LiveDumpContext);
  IopLiveDumpTraceDumpFileWriteEnd((_LIVEDUMP_CONTEXT *)LiveDumpContext, 1ui64, (unsigned int)v3);
  if( v3 >= 0 && (*((_BYTE *)LiveDumpContext + 80) & 2) != 0 )
    v3 = 261;
  IopLiveDumpTraceInterfaceEnd(v4, 1i64, (unsigned int)v3);
  if( (unsigned int)dword_140C04498 > 5 && tlgKeywordOn((__int64)&dword_140C04498, 0x200000000000i64) )
  {
    v5 = *((_QWORD *)LiveDumpContext + 70);
    v15 = 0;
    v14 = 8;
    v6 = *(_QWORD *)(v5 + 4000);
    v13 = &v10;
    v10 = v6;
    v18 = 0;
    v17 = 8;
    v16 = &v11;
    v11 = (*(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - v2) / 0x2710ui64;
    tlgWriteTransfer_EtwWriteTransfer(
      (__int64)&dword_140C04498,
      (unsigned __int8 *)byte_140023765,
      (const _GUID *)LiveDumpContext + 54,
      (const _GUID *)LiveDumpContext + 53,
      4u,
      &v12);
  }
  EtwActivityIdControl(2ui64, (_GUID *)LiveDumpContext + 53);
  IopLiveDumpReleaseResources((INT64)LiveDumpContext, v7, v8);
  ExFreePoolWithTag(LiveDumpContext, 0x706D644Cu);
  return v3;
}

Referenced by:

DbgkpWerDeferredWriteRoutine