public WzBinaryWriter(Stream output, byte[] wzIv, bool leaveOpen = false) : base(output) { WzKey = WzTool.GenerateWzKey(wzIv); StringCache = new Hashtable(); LeaveOpen = leaveOpen; }
public void WriteOffset(uint value) { var encOffset = (uint)BaseStream.Position; encOffset = (encOffset - Header.FStart) ^ 0xFFFFFFFF; encOffset *= Hash; encOffset -= CryptoConstants.WzOffsetConstant; encOffset = WzTool.RotateLeft(encOffset, (byte)(encOffset & 0x1F)); var writeOffset = encOffset ^ (value - Header.FStart * 2); Write(writeOffset); }