private static FileStream SeekToDataStartOffset(FileStream file, out string version) { int num = -1; version = string.Empty; byte[] array = new byte[1024]; bool flag = true; int num2; int i; for (;;) { num2 = file.Read(array, 0, array.Length); if (num2 == 0) { break; } for (i = 0; i < num2; i++) { byte b = array[i]; if (flag) { if (b != 35) { goto Block_3; } if (i + "Version:".Length < num2) { string text = CsvFieldCache.DecodeString(array, i + 1, "Version:".Length); if (text.Equals("Version:")) { num = i + "Version:".Length + 1; } } flag = false; } else if (b == 10) { flag = true; if (num != -1) { version = CsvFieldCache.DecodeString(array, num, i - num).Trim(); num = -1; } } } } file.Close(); return(null); Block_3: file.Seek((long)(i - num2), SeekOrigin.Current); return(file); }