public void method_10(Stream A_0, Class357 A_1, Class938 A_2) { int count = this.list_0.Count; int num2 = A_2.method_5(); ushort num3 = A_2.method_9(); int num4 = this.method_0() / 4; int num5 = num4 - 1; double num6 = (num5 * count) - 109.0; double num7 = (num5 * num5) - 1.0; int num8 = (int)Math.Ceiling((double)(num6 / num7)); A_2.method_15(num8); byte[] buffer = new byte[num2]; A_1.method_2(num8, this); this.method_11(num8, A_1); List <int> list = A_1.method_0(); int num9 = 0; int num10 = 0; while (num9 < num8) { num10 = this.method_12(num10, buffer); int num11 = list[num9]; long offset = Class1004.smethod_4(num11, num3); A_0.Seek(offset, SeekOrigin.Begin); A_0.Write(buffer, 0, num2); num9++; } }
public Class357(Stream A_0, Class938 A_1) { this.list_1 = new List <int>(); int num = A_1.method_26(); int count = A_1.method_5(); ushort num3 = A_1.method_9(); int capacity = 0x6d + ((num * (count - 4)) / 4); this.list_0 = new List <int>(capacity); this.list_0.AddRange(A_1.method_28()); if (num > 0) { int num5 = A_1.method_24(); A_1.method_9(); byte[] buffer = new byte[count]; int[] dst = new int[(count / 4) - 1]; while (num5 >= 0) { long num6 = Class1004.smethod_4(num5, num3); this.list_1.Add(num5); A_0.Position = num6; A_0.Read(buffer, 0, count); Buffer.BlockCopy(buffer, 0, dst, 0, count - 4); this.list_0.AddRange(dst); num5 = BitConverter.ToInt32(buffer, count - 4); } } }