anchor.diff:      headerSize := LZMA_PROPS_SIZE;
   
       RINOK(_LzmaEnc_WriteProperties(enc, @header[0], headerSize));
  -    for i := 0 to 7 do begin
  -      header[headerSize] := Byte(fileSize shr (8 * i));
  -      Inc(headerSize);
  -    end;
  +
  +    PInt64(@header[headerSize])^ := fileSize;
  +    Inc(HeaderSize, SizeOf(Int64));
  +
       if outStream.Write(header, headerSize) <> headerSize then
         RINOK(SZ_ERROR_WRITE)
       else
  
positive.code: procedure LzDecode(inStream, outStream: TStream);
  var
    UncompressedSize: Int64;
    i: Integer;
    // header: 5 bytes of LZMA properties and 8 bytes of uncompressed size
    header: array [0..LZMA_PROPS_SIZE + 7] of Byte;
  begin
    // Read and parse header
    inStream.ReadBuffer(header, SizeOf(Header));
  
    UncompressedSize := 0;
    for i := 0 to 7 do
      Inc(UncompressedSize, Int64(header[LZMA_PROPS_SIZE + i] shl (i * 8)));
  
    LzmaDecode(@header[0], LZMA_PROPS_SIZE, inStream, outStream, UncompressedSize);
  end;
  
negative.code:   const progress: ICompressProgress; const alloc, allocBig: ISzAlloc): SRes; cdecl; external;
  
  
  { Linker directives ======================================================== }
  
  {$L LzFind.obj}
  {$L LzFindMt.obj}
  