private static void createVanillaCatFromCas(string directory)
        {
            string text = directory + "cas.cat";

            if (!File.Exists(text))
            {
                MessageBox.Show("No cat file to restore found.");
                return;
            }
            using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(text, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)))
            {
                binaryWriter.Write("NyanNyanNyanNyan".ToCharArray());
                for (int i = 1; i < 50; i++)
                {
                    string path = directory + "cas_" + ((i < 10) ? ("0" + i) : i.ToString()) + ".cas";
                    try
                    {
                        using (BinaryReader binaryReader = new BinaryReader(File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))
                        {
                            while (binaryReader.BaseStream.Position < binaryReader.BaseStream.Length)
                            {
                                CasHeader casHeader = new CasHeader(binaryReader);
                                binaryWriter.Write(casHeader.sha1);
                                binaryWriter.Write((uint)binaryReader.BaseStream.Position);
                                binaryWriter.Write(casHeader.size);
                                binaryWriter.Write(i);
                                binaryReader.BaseStream.Position += (long)((ulong)casHeader.size);
                            }
                        }
                    }
                    catch
                    {
                        break;
                    }
                }
            }
            File.Copy(text, directory + "cas.cat_backup", true);
        }
 private static void createVanillaCatFromCas(string directory)
 {
     string text = directory + "cas.cat";
     if (!File.Exists(text))
     {
         MessageBox.Show("No cat file to restore found.");
         return;
     }
     using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(text, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)))
     {
         binaryWriter.Write("NyanNyanNyanNyan".ToCharArray());
         for (int i = 1; i < 50; i++)
         {
             string path = directory + "cas_" + ((i < 10) ? ("0" + i) : i.ToString()) + ".cas";
             try
             {
                 using (BinaryReader binaryReader = new BinaryReader(File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))
                 {
                     while (binaryReader.BaseStream.Position < binaryReader.BaseStream.Length)
                     {
                         CasHeader casHeader = new CasHeader(binaryReader);
                         binaryWriter.Write(casHeader.sha1);
                         binaryWriter.Write((uint)binaryReader.BaseStream.Position);
                         binaryWriter.Write(casHeader.size);
                         binaryWriter.Write(i);
                         binaryReader.BaseStream.Position += (long)((ulong)casHeader.size);
                     }
                 }
             }
             catch
             {
                 break;
             }
         }
     }
     File.Copy(text, directory + "cas.cat_backup", true);
 }