public static void ProcessFile(IEnumerable <string> fileNameList, Stream zipFile, int compressionAmount, string password, Stream[] fileStreamList) { if (compressionAmount >= 0 && compressionAmount <= 9) { var @class = new Class192(); var stream = new Stream23(zipFile); stream.method_6(compressionAmount); if (password != null) { stream.method_2(password); } var num = 0; using (var enumerator = fileNameList.GetEnumerator()) { while (enumerator.MoveNext()) { var current = enumerator.Current; var class2 = new Class193(current); class2.method_19(DateTime.Now); var stream2 = fileStreamList[num++]; byte[] array; if (stream2 is MemoryStream) { array = (stream2 as MemoryStream).ToArray(); } else { array = new byte[stream2.Length]; var num2 = stream2.Read(array, 0, array.Length); if (num2 < array.Length) { Array.Resize(ref array, num2); } } class2.method_22(array.Length); @class.vmethod_1(); @class.vmethod_2(array); class2.method_26(@class.vmethod_0()); stream.method_10(class2); stream.Write(array, 0, array.Length); } goto IL_10D; } goto IL_102; IL_10D: stream.vmethod_0(); stream.Close(); return; } IL_102: throw new ArgumentException("Invalid compression rate."); }
public void method_10(Class193 class1931) { if (class1931 == null) { throw new ArgumentNullException("entry"); } if (_arrayList0 == null) { throw new InvalidOperationException("ZipOutputStream was finished"); } if (_class1930 != null) { method_11(); } if (_arrayList0.Count == 2147483647) { throw new ZipException("Too many entries for Zip file"); } var @enum = class1931.method_27(); var int_ = _int0; class1931.method_5(class1931.method_4() & 2048); _bool2 = false; var flag = true; if (@enum == Enum31.Const0) { class1931.method_5(class1931.method_4() & -9); if (class1931.method_23() >= 0L) { if (class1931.method_21() < 0L) { class1931.method_22(class1931.method_23()); } else if (class1931.method_21() != class1931.method_23()) { throw new ZipException("Method STORED, but compressed size != size"); } } else if (class1931.method_21() >= 0L) { class1931.method_24(class1931.method_21()); } if (class1931.method_21() < 0L || class1931.method_25() < 0L) { if (method_0()) { flag = false; } else { @enum = Enum31.Const1; int_ = 0; } } } if (@enum == Enum31.Const1) { if (class1931.method_21() == 0L) { class1931.method_24(class1931.method_21()); class1931.method_26(0L); @enum = Enum31.Const0; } else if (class1931.method_23() < 0L || class1931.method_21() < 0L || class1931.method_25() < 0L) { flag = false; } } if (!flag) { if (!method_0()) { class1931.method_5(class1931.method_4() | 8); } else { _bool2 = true; } } if (method_1() != null) { class1931.method_1(true); if (class1931.method_25() < 0L) { class1931.method_5(class1931.method_4() | 8); } } class1931.method_7(_long1); class1931.method_28(@enum); _enum310 = @enum; _long3 = -1L; if (_enum300 == Enum30.Const1 || (class1931.method_21() < 0L && _enum300 == Enum30.Const2)) { class1931.method_13(); } method_8(67324752); method_7(class1931.method_11()); method_7(class1931.method_4()); method_7((byte)@enum); method_8((int)class1931.method_17()); if (flag) { method_8((int)class1931.method_25()); if (class1931.method_15()) { method_8(-1); method_8(-1); } else { method_8(class1931.method_0() ? ((int)class1931.method_23() + 12) : ((int)class1931.method_23())); method_8((int)class1931.method_21()); } } else { if (_bool2) { _long2 = Stream0.Position; } method_8(0); if (_bool2) { _long3 = Stream0.Position; } if (class1931.method_15() && _bool2) { method_8(-1); method_8(-1); } else { method_8(0); method_8(0); } } var array = Class186.smethod_4(class1931.method_4(), class1931.method_20()); if (array.Length > 65535) { throw new ZipException("Entry name too long."); } var @class = new Class202(class1931.method_29()); if (class1931.method_15() && (flag || _bool2)) { @class.method_8(); if (flag) { @class.method_12(class1931.method_21()); @class.method_12(class1931.method_23()); } else { @class.method_12(-1L); @class.method_12(-1L); } @class.method_9(1); if ([email protected]_6(1)) { throw new ZipException("Internal error cant find extra data"); } if (_bool2) { _long3 = @class.method_4(); } } else { @class.method_13(1); } var array2 = @class.method_0(); method_7(array.Length); method_7(array2.Length); if (array.Length > 0) { Stream0.Write(array, 0, array.Length); } if (class1931.method_15() && _bool2) { _long3 += Stream0.Position; } if (array2.Length > 0) { Stream0.Write(array2, 0, array2.Length); } _long1 += 30 + array.Length + array2.Length; _class1930 = class1931; _class1920.vmethod_1(); if (@enum == Enum31.Const1) { Class1940.method_0(); Class1940.method_7(int_); } _long0 = 0L; if (class1931.method_0()) { if (class1931.method_25() < 0L) { method_12(class1931.method_17() << 16); return; } method_12(class1931.method_25()); } }