private void Inflate()
{
// read size
br.BaseStream.Position = 4; // skip signature
int size = Convert.ToInt32(br.ReadUInt32());
// read swf head
byte[] uncompressed = new byte[size];
br.BaseStream.Position = 0;
br.Read(uncompressed,0,8); // header data is not compress
// un-zip
byte[] compressed = br.ReadBytes(size);
Inflater zipInflator = new Inflater();
zipInflator.SetInput(compressed);
zipInflator.Inflate(uncompressed,8,size-8);
// new memory stream for uncompressed swf
MemoryStream m = new MemoryStream(uncompressed);
br = new BufferedBinaryReader(m);
br.BaseStream.Position = 0;
}