static void Dump(string FileName, EndianBinary.Endian Endian) { string OutFile = Path.GetFileNameWithoutExtension(FileName) + ".txt"; StringBuilder Output = new StringBuilder(); FileStream Input = new FileStream(FileName, FileMode.Open); EndianBinaryReader Reader = new EndianBinaryReader(Input, Endian); Section Lang = ParseSection(Reader); if (Lang.Signature != "LANG") { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Invalid file!"); Console.ResetColor(); } Input.Seek(ParsePack(Reader, Lang)[0].Offset, SeekOrigin.Begin); Section Category = ParseSection(Reader); Input.Seek(ParsePack(Reader, Category)[0].Offset, SeekOrigin.Begin); Section String = ParseSection(Reader); List <PackEntry> StringPack = ParsePack(Reader, String); foreach (PackEntry Entry in StringPack) { Input.Seek(Entry.Offset, SeekOrigin.Begin); byte[] Buffer = new byte[Entry.Length - 2]; Reader.Read(Buffer, 0, Buffer.Length); Output.Append(UTF16.GetString(Buffer, Endian)); Output.AppendLine(null); Output.AppendLine(null); } File.WriteAllText(OutFile, Output.ToString().TrimEnd()); Reader.Close(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Dumped " + Path.GetFileName(FileName) + "!"); Console.ResetColor(); }