diff --git a/SabreTools.Models/AdvancedInstaller/FileEntry.cs b/SabreTools.Models/AdvancedInstaller/FileEntry.cs
index 78d7f44..543c76c 100644
--- a/SabreTools.Models/AdvancedInstaller/FileEntry.cs
+++ b/SabreTools.Models/AdvancedInstaller/FileEntry.cs
@@ -10,7 +10,7 @@ namespace SabreTools.Models.AdvancedInstaller
///
///
/// Observed values:
- /// - 00 00 00 00 (INI)
+ /// - 00 00 00 00 (INI, MSI)
/// - 01 00 00 00 (MSI, CAB)
/// - 05 00 00 00 (DLL)
///
@@ -26,7 +26,7 @@ namespace SabreTools.Models.AdvancedInstaller
/// - 03 00 00 00 (INI)
/// - 0C 00 00 00 (DLL)
///
- public uint Unknown1 { get; set; }
+ public uint? Unknown1 { get; set; }
///
/// Unknown, always 0?
@@ -35,7 +35,7 @@ namespace SabreTools.Models.AdvancedInstaller
/// Observed values:
/// - 00 00 00 00 (DLL, MSI, CAB, INI)
///
- public uint Unknown2 { get; set; }
+ public uint? Unknown2 { get; set; }
///
/// Size of the file
diff --git a/SabreTools.Models/AdvancedInstaller/Footer.cs b/SabreTools.Models/AdvancedInstaller/Footer.cs
index 93eba78..ad73d0b 100644
--- a/SabreTools.Models/AdvancedInstaller/Footer.cs
+++ b/SabreTools.Models/AdvancedInstaller/Footer.cs
@@ -15,6 +15,18 @@ namespace SabreTools.Models.AdvancedInstaller
///
public uint Unknown0 { get; set; }
+ ///
+ /// Size of the original filename?
+ ///
+ /// Doesn't exist in some cases?
+ public uint? OriginalFilenameSize { get; set; }
+
+ ///
+ /// Unicode-encoded original filename?
+ ///
+ /// Doesn't exist in some cases?
+ public string? OriginalFilename { get; set; }
+
///
/// Pointer to ?
///
@@ -35,9 +47,9 @@ namespace SabreTools.Models.AdvancedInstaller
public uint Unknown1 { get; set; }
///
- /// Pointer to ?
+ /// Pointer to or ?
///
- public uint FooterOffset2 { get; set; }
+ public uint UnknownOffset { get; set; }
///
/// Offset of the start of the file table
@@ -58,7 +70,11 @@ namespace SabreTools.Models.AdvancedInstaller
///
/// Relative offset pointer to
///
- /// Relative to the end of the signature
+ ///
+ /// Relative to the end of the signature
+ ///
+ /// At least one case where this does not point correctly?
+ ///
public uint FileDataStartPointer { get; set; }
///