public void SetData(byte[] data, int index, int count)
{
using (MemoryStream stream = new MemoryStream(data, index, count, false))
{
using (ZipHelperStream stream2 = new ZipHelperStream(stream))
{
this._flags = (Flags) ((byte) stream2.ReadByte());
if ((((byte) (this._flags & Flags.ModificationTime)) != 0) && (count >= 5))
{
int seconds = stream2.ReadLEInt();
DateTime time = new DateTime(0x7b2, 1, 1, 0, 0, 0);
this._modificationTime = (time.ToUniversalTime() + new TimeSpan(0, 0, 0, seconds, 0)).ToLocalTime();
}
if (((byte) (this._flags & Flags.AccessTime)) != 0)
{
int num2 = stream2.ReadLEInt();
DateTime time3 = new DateTime(0x7b2, 1, 1, 0, 0, 0);
this._lastAccessTime = (time3.ToUniversalTime() + new TimeSpan(0, 0, 0, num2, 0)).ToLocalTime();
}
if (((byte) (this._flags & Flags.CreateTime)) != 0)
{
int num3 = stream2.ReadLEInt();
DateTime time5 = new DateTime(0x7b2, 1, 1, 0, 0, 0);
this._createTime = (time5.ToUniversalTime() + new TimeSpan(0, 0, 0, num3, 0)).ToLocalTime();
}
}
}
}