private void method_7(BinaryReader binaryReader_0, int int_0, long long_0) { long num = long_0; for (int i = 0; i < int_0; i++) { Class168 @class = null; uint num2 = 0u; switch (this.method_0(i)) { case FSBClass1.Enum23.const_0: @class = this.method_8(binaryReader_0, out num2); break; case FSBClass1.Enum23.const_1: @class = this.method_9(binaryReader_0, out num2); break; case FSBClass1.Enum23.const_2: @class = this.method_12(binaryReader_0, out num2); break; case FSBClass1.Enum23.const_3: @class = FSBClass1.smethod_2(binaryReader_0, out num2, this.method_33()[0]); break; } this.method_33().Add(@class); @class.stream_1 = new Stream18(binaryReader_0.BaseStream, num, (long)((ulong)num2)); num += (long)((ulong)num2); } }
private static GenericAudioStream smethod_0(Class168 class168_0) { bool flag = (class168_0.enum22_0 & FSBFlags2.flag_19) != FSBFlags2.flag_0; Stream stream_ = class168_0.stream_1; long position = stream_.Position; byte[] array = new byte[4]; stream_.Read(array, 0, 4); stream_.Position = position; if (array[0] == 255 && array[1] >= 240) { if ((class168_0.enum22_0 & FSBFlags2.flag_27) != FSBFlags2.flag_0 && class168_0.uint_3 > 2u) { return(new MP3Class(class168_0.stream_1, (int)(class168_0.uint_3 / 2u), flag ? Enum4.const_3 : Enum4.const_0)); } return(new MP3Stream(class168_0.stream_1, flag ? Enum4.const_3 : Enum4.const_0)); } else { string @string; if ((@string = Encoding.UTF8.GetString(array, 0, 3)) != null && @string == "Ogg") { return(new OGGStream(class168_0.stream_1)); } if ((class168_0.enum22_0 & FSBFlags2.flag_17) != FSBFlags2.flag_0) { return(new Stream5(class168_0.stream_1, new WaveFormat(class168_0.int_0, ((class168_0.enum22_0 & FSBFlags2.flag_4) != FSBFlags2.flag_0) ? 8 : 16, (int)class168_0.uint_3))); } throw new Exception5("FSB SubFile: Data not supported."); } }
private Class168 method_12(BinaryReader inputBin, out uint dataSize) { uint num; Class168 @class = this.method_13(inputBin, out dataSize, out num); this.method_11(inputBin, @class, num - 80u); return(@class); }
private void method_29(BinaryWriter binaryWriter_0, Class168 class168_0, int int_0) { this.method_27(binaryWriter_0, class168_0, int_0); binaryWriter_0.Write(class168_0.float_2); binaryWriter_0.Write(class168_0.float_3); binaryWriter_0.Write(class168_0.int_1); binaryWriter_0.Write(class168_0.short_1); binaryWriter_0.Write(class168_0.short_2); }
private Class168 method_13(BinaryReader inputBin, out uint dataSize, out uint hdrSize) { Class168 @class = this.method_10(inputBin, out dataSize, out hdrSize); @class.float_2 = inputBin.ReadSingle(); @class.float_3 = inputBin.ReadSingle(); Console.WriteLine(inputBin.BaseStream.Position); @class.int_1 = inputBin.ReadInt32(); Console.WriteLine(@class.int_1); @class.short_1 = inputBin.ReadInt16(); @class.short_2 = inputBin.ReadInt16(); return(@class); }
private void method_25(BinaryWriter binaryWriter_0, Class168 class168_0) { binaryWriter_0.Write(FSBClass1.smethod_8(class168_0.FileName, 32)); binaryWriter_0.Write(class168_0.uint_0); binaryWriter_0.Write((uint)class168_0.stream_1.Length); binaryWriter_0.Write(class168_0.int_0); binaryWriter_0.Write(class168_0.ushort_1); binaryWriter_0.Write((ushort)class168_0.uint_3); binaryWriter_0.Write(class168_0.ushort_0); binaryWriter_0.Write(class168_0.short_0); binaryWriter_0.Write((uint)class168_0.enum22_0); binaryWriter_0.Write(class168_0.uint_1); binaryWriter_0.Write(class168_0.uint_2); }
private Class168 method_8(BinaryReader inputBin, out uint dataSize) { Class168 @class = new Class168(); @class.FileName = this.method_14(inputBin.ReadBytes(32)); @class.uint_0 = inputBin.ReadUInt32(); dataSize = inputBin.ReadUInt32(); @class.int_0 = inputBin.ReadInt32(); @class.ushort_1 = inputBin.ReadUInt16(); @class.uint_3 = (uint)inputBin.ReadUInt16(); @class.ushort_0 = inputBin.ReadUInt16(); @class.short_0 = inputBin.ReadInt16(); @class.enum22_0 = (FSBFlags2)inputBin.ReadUInt32(); @class.uint_1 = inputBin.ReadUInt32(); @class.uint_2 = inputBin.ReadUInt32(); return(@class); }
public static long smethod_0(string string_0, Stream[] stream_0) { long length; using (FSBClass1 @class = new FSBClass1()) { @class.byte_0 = FSBClass2.fsbEncryptionKey; @class.enum20_0 = FSBEnum1.const_3; @class.enum21_0 = FSBFlags1.flag_0; for (int i = 0; i < stream_0.Length; i++) { Stream stream = stream_0[i]; stream.Position = 0L; Class16 class2 = AudioManager.smethod_3(stream); Class168 class3 = new Class168(); class3.FileName = i + ".mp3"; class3.enum22_0 = (((class2.method_0() == 1) ? FSBFlags2.flag_6 : FSBFlags2.flag_7) | FSBFlags2.flag_10); class3.int_0 = class2.method_3(); class3.ushort_0 = 255; class3.short_0 = 0; class3.ushort_1 = 255; class3.uint_3 = (uint)class2.method_0(); class3.uint_0 = class2.uint_0; class3.uint_1 = 0u; class3.uint_2 = class3.uint_0 - 1u; class3.float_2 = 1f; class3.float_3 = 10000f; class3.int_1 = 0; class3.short_1 = 0; class3.short_2 = -1; class3.stream_1 = stream; @class.method_33().Add(class3); } @class.method_16(string_0); length = new FileInfo(string_0).Length; } return length; }
private static Class168 smethod_2(BinaryReader inputBin, out uint dataSize, Class168 firstFile) { Class168 @class = new Class168(); @class.uint_0 = inputBin.ReadUInt32(); dataSize = inputBin.ReadUInt32(); Console.WriteLine(inputBin.BaseStream.Position); @class.FileName = firstFile.FileName; @class.uint_1 = firstFile.uint_1; @class.uint_2 = firstFile.uint_2; @class.enum22_0 = firstFile.enum22_0; @class.int_0 = firstFile.int_0; @class.ushort_0 = firstFile.ushort_0; @class.short_0 = firstFile.short_0; @class.ushort_1 = firstFile.ushort_1; @class.uint_3 = firstFile.uint_3; @class.float_2 = firstFile.float_2; @class.float_3 = firstFile.float_3; @class.int_1 = firstFile.int_1; @class.short_1 = firstFile.short_1; @class.short_2 = firstFile.short_2; @class.stream_0 = firstFile.stream_0; return(@class); }
private static GenericAudioStream smethod_0(Class168 class168_0) { bool flag = (class168_0.enum22_0 & FSBFlags2.flag_19) != FSBFlags2.flag_0; Stream stream_ = class168_0.stream_1; long position = stream_.Position; byte[] array = new byte[4]; stream_.Read(array, 0, 4); stream_.Position = position; if (array[0] == 255 && array[1] >= 240) { if ((class168_0.enum22_0 & FSBFlags2.flag_27) != FSBFlags2.flag_0 && class168_0.uint_3 > 2u) { return new MP3Class(class168_0.stream_1, (int)(class168_0.uint_3 / 2u), flag ? Enum4.const_3 : Enum4.const_0); } return new MP3Stream(class168_0.stream_1, flag ? Enum4.const_3 : Enum4.const_0); } else { string @string; if ((@string = Encoding.UTF8.GetString(array, 0, 3)) != null && @string == "Ogg") { return new OGGStream(class168_0.stream_1); } if ((class168_0.enum22_0 & FSBFlags2.flag_17) != FSBFlags2.flag_0) { return new Stream5(class168_0.stream_1, new WaveFormat(class168_0.int_0, ((class168_0.enum22_0 & FSBFlags2.flag_4) != FSBFlags2.flag_0) ? 8 : 16, (int)class168_0.uint_3)); } throw new Exception5("FSB SubFile: Data not supported."); } }
private void method_28(BinaryWriter binaryWriter_0, Class168 class168_0) { this.method_29(binaryWriter_0, class168_0, FSBClass1.smethod_6(class168_0)); StreamHelper.CopyStream(binaryWriter_0.BaseStream, class168_0.stream_0); }
private static int smethod_6(Class168 class168_0) { return 80 + (int)class168_0.stream_0.Length; }
private static int smethod_7(Class168 class168_0) { return 8; }
private void method_11(BinaryReader binaryReader_0, Class168 class168_0, uint uint_0) { class168_0.stream_0 = new Stream18(binaryReader_0.BaseStream, binaryReader_0.BaseStream.Position, (long)((ulong)uint_0)); }
private static int smethod_4(Class168 class168_0) { return 64; }
private static int smethod_6(Class168 class168_0) { return(80 + (int)class168_0.stream_0.Length); }
private static void smethod_3(BinaryWriter binaryWriter_0, Class168 class168_0) { binaryWriter_0.Write(class168_0.uint_0); binaryWriter_0.Write((uint)class168_0.stream_1.Length); }
private Class168 method_8(BinaryReader inputBin, out uint dataSize) { Class168 @class = new Class168(); @class.FileName = this.method_14(inputBin.ReadBytes(32)); @class.uint_0 = inputBin.ReadUInt32(); dataSize = inputBin.ReadUInt32(); @class.int_0 = inputBin.ReadInt32(); @class.ushort_1 = inputBin.ReadUInt16(); @class.uint_3 = (uint)inputBin.ReadUInt16(); @class.ushort_0 = inputBin.ReadUInt16(); @class.short_0 = inputBin.ReadInt16(); @class.enum22_0 = (FSBFlags2)inputBin.ReadUInt32(); @class.uint_1 = inputBin.ReadUInt32(); @class.uint_2 = inputBin.ReadUInt32(); return @class; }
private void method_27(BinaryWriter binaryWriter_0, Class168 class168_0, int int_0) { binaryWriter_0.Write((ushort)int_0); binaryWriter_0.Write(FSBClass1.smethod_8(class168_0.FileName, 30)); binaryWriter_0.Write(class168_0.uint_0); binaryWriter_0.Write((uint)class168_0.stream_1.Length); binaryWriter_0.Write(class168_0.uint_1); binaryWriter_0.Write(class168_0.uint_2); binaryWriter_0.Write((uint)class168_0.enum22_0); binaryWriter_0.Write(class168_0.int_0); binaryWriter_0.Write(class168_0.ushort_0); binaryWriter_0.Write(class168_0.short_0); binaryWriter_0.Write(class168_0.ushort_1); binaryWriter_0.Write((ushort)class168_0.uint_3); }
private static int smethod_4(Class168 class168_0) { return(64); }
private static Class168 smethod_2(BinaryReader inputBin, out uint dataSize, Class168 firstFile) { Class168 @class = new Class168(); @class.uint_0 = inputBin.ReadUInt32(); dataSize = inputBin.ReadUInt32(); Console.WriteLine(inputBin.BaseStream.Position); @class.FileName = firstFile.FileName; @class.uint_1 = firstFile.uint_1; @class.uint_2 = firstFile.uint_2; @class.enum22_0 = firstFile.enum22_0; @class.int_0 = firstFile.int_0; @class.ushort_0 = firstFile.ushort_0; @class.short_0 = firstFile.short_0; @class.ushort_1 = firstFile.ushort_1; @class.uint_3 = firstFile.uint_3; @class.float_2 = firstFile.float_2; @class.float_3 = firstFile.float_3; @class.int_1 = firstFile.int_1; @class.short_1 = firstFile.short_1; @class.short_2 = firstFile.short_2; @class.stream_0 = firstFile.stream_0; return @class; }
private static int smethod_7(Class168 class168_0) { return(8); }