/// <inheritdoc /> public Memory <byte> ReadEntry(int index) { foreach (var table in Tables) { if (index < table.Entries.Length) { foreach (var root in Root ?? Array.Empty <string>()) { var filepath = Path.Combine(root, table.Entries[index].Path(table.Buffer, table.Header.Offset)); if (File.Exists(filepath)) { return(new Memory <byte>(PKGTBL.Read(File.ReadAllBytes(filepath), GameId, table.Entries[index], Settings.XorTruth, Settings.Multiplier, Settings.Divisor).ToArray())); } } return(Memory <byte> .Empty); } index -= table.Entries.Length; } return(Memory <byte> .Empty); }