public static void DecompressTileBlock(byte[] buffer, int bufferStart, int bufferLength)
{
using (MemoryStream memoryStream1 = new MemoryStream())
{
memoryStream1.Write(buffer, bufferStart, bufferLength);
memoryStream1.Position = 0L;
MemoryStream memoryStream2;
if (memoryStream1.ReadByte() != 0)
{
MemoryStream memoryStream3 = new MemoryStream();
using (DeflateStream deflateStream = new DeflateStream((Stream)memoryStream1, CompressionMode.Decompress, true))
{
deflateStream.CopyTo((Stream)memoryStream3);
deflateStream.Close();
}
memoryStream2 = memoryStream3;
memoryStream2.Position = 0L;
}
else
{
memoryStream2 = memoryStream1;
memoryStream2.Position = 1L;
}
using (BinaryReader reader = new BinaryReader((Stream)memoryStream2))
{
int xStart = reader.ReadInt32();
int yStart = reader.ReadInt32();
short num1 = reader.ReadInt16();
short num2 = reader.ReadInt16();
NetMessage.DecompressTileBlock_Inner(reader, xStart, yStart, (int)num1, (int)num2);
}
}
}