private static string ExtractInternalFile(string internalResourceName, bool fullname, string destination = null, bool overwrite = false, Stream destStream = null)
 {
     MERLog.Information("Extracting file: " + internalResourceName);
     if (destStream != null || (destination != null && (!File.Exists(destination) || overwrite)))
     {
         // Todo: might need adjusted for ME3
         using Stream stream = MERUtilities.GetResourceStream(fullname ? internalResourceName : "ME2Randomizer.staticfiles." + internalResourceName);
         bool close = destStream != null;
         if (destStream == null)
         {
             destStream = new FileStream(destination, FileMode.Create, FileAccess.Write);
         }
         stream.CopyTo(destStream);
         if (close)
         {
             stream.Close();
         }
     }
     else if (destination != null && !overwrite)
     {
         MERLog.Warning("File already exists");
     }
     else
     {
         MERLog.Warning("Invalid extraction parameters!");
     }
     return(destination);
 }
 internal static string GetAppCrashFile()
 {
     return(Path.Combine(MERUtilities.GetAppDataFolder(), "APP_CRASH"));
 }