IopConstructInMemoryDumpHeader

VOID __fastcall IopConstructInMemoryDumpHeader(INT64 a1, _BYTE *a2){
  _DWORD *v2; 
  __int64 v3; 
  if( _InterlockedExchange(InMemData, 1) != 1 )
  {
    dword_140C50948 = 0;
    if( dword_140C50914
      && (v2 = *(_DWORD **)&InMemData[2 * (qword_140C50930 & 1) + 2]) != 0i64
      && (v3 = *(_QWORD *)&InMemData[2 * (((_BYTE)qword_140C50930 - 1) & 1) + 2]) != 0 )
    {
      IoFillDumpHeader(v3 + 24, (PWSTR)1);
      *(_QWORD *)(v3 + 4040) = qword_140C50938;
      *(_QWORD *)(v3 + 40) = *((_QWORD *)PsInitialSystemProcess + 5) & 0xFFFFFFFFFFFFF000ui64;
      *v2 = _InterlockedExchange((volatile __int32 *)v3, 1397967163);
      LODWORD(qword_140C50930) = qword_140C50930 + 1;
    }
    else
    {
      dword_140C50948 = -1073741823;
    }
    _InterlockedExchange(InMemData, 0);
  }
}

Referenced by:

IoUpdateDumpPhysicalRanges
IopInitializeOfflineCrashDump