public void CopyDataTo(Stream output) { using (var in_file = File.OpenRead(_bsa._fileName)) using (var rdr = new BinaryReader(in_file)) { rdr.BaseStream.Position = _dataOffset; if (_bsa.HeaderType == VersionType.SSE) { if (Compressed) { var r = LZ4Stream.Decode(rdr.BaseStream); r.CopyToLimit(output, (int)_originalSize); } else { rdr.BaseStream.CopyToLimit(output, (int)_onDiskSize); } } else { if (Compressed) { using (var z = new InflaterInputStream(rdr.BaseStream)) { z.CopyToLimit(output, (int)_originalSize); } } else { rdr.BaseStream.CopyToLimit(output, (int)_onDiskSize); } } } }