IopWriteTriageDumpToFirmware

INT64 __fastcall IopWriteTriageDumpToFirmware(_NT_PRODUCT_TYPE *NtProductType){
  unsigned __int64 v3; 
  PHYSICAL_ADDRESS *v4; 
  char *v5; 
  __int64 v6; 
  LONGLONG QuadPart; 
  PHYSICAL_ADDRESS PhysicalAddress; 
  PVOID BaseAddress; 
  if( !NtProductType )
    return 3221225635i64;
  v3 = 262172i64;
  BaseAddress = NtProductType + 1024;
  v4 = (PHYSICAL_ADDRESS *)NtProductType;
  *((_DWORD *)NtProductType + 1028) = 28;
  *(_OWORD *)BaseAddress = CrashdmpGuid;
  *((_DWORD *)BaseAddress + 5) = 458752;
  *((_DWORD *)BaseAddress + 6) = 262172;
  v5 = (char *)BaseAddress;
  do
  {
    v6 = 4096i64;
    if( v3 < 0x1000 )
      v6 = v3;
    v4->QuadPart = v6;
    v4[1] = MmGetPhysicalAddress(v5);
    QuadPart = v4->QuadPart;
    v4 += 2;
    v5 += QuadPart;
    v3 -= QuadPart;
  }
  while( v3 );
  v4->QuadPart = 0i64;
  v4[1].QuadPart = 0i64;
  PhysicalAddress = MmGetPhysicalAddress(NtProductType);
  KiScanBugCheckCallbackList();
  return((__int64(__fastcall *)(_QWORD, _QWORD, _QWORD))off_140C00848[0])(
           &BaseAddress,
           1i64,
           (PHYSICAL_ADDRESS)PhysicalAddress.QuadPart);
}

Referenced by:

IoWriteCrashDump
IopWriteCapsuleTriageDumpToFirmware