IopWriteTriageDumpToFirmware

VOID __fastcall IopWriteTriageDumpToFirmware(UINT8 *TriageDumpBlock){
  unsigned __int64 v2; 
  UINT8 *v3; 
  char *v4; 
  __int64 v5; 
  __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  __int64 v9; 
  PVOID BaseAddress; 

  if( TriageDumpBlock )
  {
    v2 = 262172i64;
    BaseAddress = TriageDumpBlock + 4096;
    v3 = TriageDumpBlock;
    *((_DWORD *)TriageDumpBlock + 1028) = 28;
    *(_OWORD *)BaseAddress = CrashdmpGuid;
    *((_DWORD *)BaseAddress + 5) = 458752;
    *((_DWORD *)BaseAddress + 6) = 262172;
    v4 = (char *)BaseAddress;
    do
    {
      v5 = 4096i64;
      if( v2 < 0x1000 )
        v5 = v2;
      *(_QWORD *)v3 = v5;
      LODWORD(v6) = MmGetPhysicalAddress((UINT64)v4);
      *((_QWORD *)v3 + 1) = v6;
      v7 = *(_QWORD *)v3;
      v3 += 16;
      v4 += v7;
      v2 -= v7;
    }
    while( v2 );
    *(_QWORD *)v3 = 0i64;
    *((_QWORD *)v3 + 1) = 0i64;
    LODWORD(v8) = MmGetPhysicalAddress((UINT64)TriageDumpBlock);
    v9 = v8;
    KiScanBugCheckCallbackList();
    ((void(__fastcall *)(PVOID *, __int64, __int64))off_140C00848[0])(&BaseAddress, 1i64, v9);
  }
}

Referenced by:

IoWriteCrashDump
IopWriteCapsuleTriageDumpToFirmware