1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;/* inffas32.asm is a hand tuned assembler version of inffast.c -- fast decoding
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; *
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * inffas32.asm is derivated from inffas86.c, with translation of assembly code
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; *
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * Copyright (C) 1995-2003 Mark Adler
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * For conditions of distribution and use, see copyright notice in zlib.h
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; *
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * Copyright (C) 2003 Chris Anderson <christop@charm.net>
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * Please use the copyright conditions above.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; *
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * Mar-13-2003 -- Most of this is derived from inffast.S which is derived from
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * the gcc -S output of zlib-1.2.0/inffast.c. Zlib-1.2.0 is in beta release at
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * the moment. I have successfully compiled and tested this code with gcc2.96,
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * gcc3.2, icc5.0, msvc6.0. It is very close to the speed of inffast.S
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * enabled. I will attempt to merge the MMX code into this version. Newer
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * versions of this and inffast.S can be found at
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; *
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; * 2005 : modification by Gilles Vollant
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; For Visual C++ 4.x and higher and ML 6.x and higher
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; ml.exe is in directory \MASM611C of Win95 DDK
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; ml.exe is also distributed in http://www.masm32.com/masmdl.htm
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; and in VC++2003 toolkit at http://msdn.microsoft.com/visualc/vctoolkit2003/
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; compile with command line option
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; ml /coff /Zi /c /Flinffas32.lst inffas32.asm
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; if you define NO_GZIP (see inflate.h), compile with
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; ml /coff /Zi /c /Flinffas32.lst /DNO_GUNZIP inffas32.asm
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; zlib122sup is 0 fort zlib 1.2.2.1 and lower
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; zlib122sup is 8 fort zlib 1.2.2.2 and more (with addition of dmax and head
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; in inflate_state in inflate.h)
1b33c96954667ba382fa595baf7b31290bfdd517vboxsynczlib1222sup equ 8
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncIFDEF GUNZIP
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync INFLATE_MODE_TYPE equ 11
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync INFLATE_MODE_BAD equ 26
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncELSE
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync IFNDEF NO_GUNZIP
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync INFLATE_MODE_TYPE equ 11
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync INFLATE_MODE_BAD equ 26
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ELSE
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync INFLATE_MODE_TYPE equ 3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync INFLATE_MODE_BAD equ 17
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ENDIF
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncENDIF
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 75 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;FILE "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;;;GLOBAL _inflate_fast
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;;;SECTION .text
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync .586p
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync .mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync name inflate_fast_x86
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync .MODEL FLAT
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync_DATA segment
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncinflate_fast_use_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync dd 1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync_TEXT segment
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync db 'Fast decoding Code from Chris Anderson'
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync db 0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncinvalid_literal_length_code_msg:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync db 'invalid literal/length code'
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync db 0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncinvalid_distance_code_msg:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync db 'invalid distance code'
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync db 0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncinvalid_distance_too_far_msg:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync db 'invalid distance too far back'
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync db 0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncinflate_fast_mask:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 7
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 15
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 31
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 63
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 127
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 255
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 511
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 1023
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 2047
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 4095
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 8191
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 16383
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 32767
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 65535
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 131071
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 262143
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 524287
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 1048575
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 2097151
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 4194303
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 8388607
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 16777215
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 33554431
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 67108863
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 134217727
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 268435455
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 536870911
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 1073741823
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 2147483647
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdd 4294967295
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncmode_state equ 0 ;/* state->mode */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncwsize_state equ (32+zlib1222sup) ;/* state->wsize */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncwrite_state equ (36+4+zlib1222sup) ;/* state->write */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncwindow_state equ (40+4+zlib1222sup) ;/* state->window */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsynchold_state equ (44+4+zlib1222sup) ;/* state->hold */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncbits_state equ (48+4+zlib1222sup) ;/* state->bits */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsynclencode_state equ (64+4+zlib1222sup) ;/* state->lencode */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdistcode_state equ (68+4+zlib1222sup) ;/* state->distcode */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsynclenbits_state equ (72+4+zlib1222sup) ;/* state->lenbits */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncdistbits_state equ (76+4+zlib1222sup) ;/* state->distbits */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;;SECTION .text
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 205 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;GLOBAL inflate_fast_use_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;SECTION .data
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; GLOBAL inflate_fast_use_mmx:object
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;.size inflate_fast_use_mmx, 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 226 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync;SECTION .text
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync_inflate_fast proc near
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync.FPO (16, 4, 0, 0, 1, 0)
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync push edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync push esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync push ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync push ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pushfd
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esp,64
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cld
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+88]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edi, [esi+28]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx, [esi+4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esi+0]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add edx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub edx,11
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+44],eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+20],edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebp, [esp+92]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [esi+16]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [esi+12]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ebp,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync neg ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ebp,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ecx,257
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ecx,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+60],ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+40],ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+16],ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 285 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [edi+lencode_state]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [edi+distcode_state]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+8],eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+12],ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax,1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [edi+lenbits_state]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync dec eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+0],eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax,1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [edi+distbits_state]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync dec eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+4],eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [edi+wsize_state]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [edi+write_state]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx, [edi+window_state]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+52],eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+48],ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+56],edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebp, [edi+hold_state]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [edi+bits_state]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 321 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+44]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [esp+20]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp ecx,esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ja L_align_long
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ecx,11
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ecx,esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax,12
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync lea edi, [esp+28]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync xor eax,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep stosb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync lea esi, [esp+28]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+20],esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_is_aligned
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_align_long:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test esi,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_is_aligned
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync xor eax,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov al, [esi]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync inc esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ebx,8
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync or ebp,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_align_long
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_is_aligned:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edi, [esp+60]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 366 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_check_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp dword ptr [inflate_fast_use_mmx],2
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync je L_init_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ja L_do_loop
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync push eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync push ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync push ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync push edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pushfd
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync xor dword ptr [esp],0200000h
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync popfd
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pushfd
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pop edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync xor edx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_dont_use_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync xor eax,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cpuid
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp ebx,0756e6547h
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_dont_use_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp ecx,06c65746eh
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_dont_use_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp edx,049656e69h
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_dont_use_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax,1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cpuid
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr eax,8
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and eax,15
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp eax,6
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_dont_use_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test edx,0800000h
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jnz L_use_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_dont_use_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_use_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov dword ptr [inflate_fast_use_mmx],2
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_check_mmx_pop
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_dont_use_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov dword ptr [inflate_fast_use_mmx],3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_check_mmx_pop:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pop edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pop ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pop ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pop eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_check_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 426 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_do_loop:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 437 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp bl,15
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ja L_get_length_code
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync xor eax,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync lodsw
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov cl,bl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add bl,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync or ebp,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_get_length_code:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx, [esp+0]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [esp+8]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and edx,ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [ecx+edx*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_dolen:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov cl,ah
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub bl,ah
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr ebp,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jnz L_test_for_length_base
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr eax,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync stosb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_while_test:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp [esp+16],edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_break_loop
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp [esp+20],esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ja L_do_loop
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_break_loop
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_test_for_length_base:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 502 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr edx,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov cl,al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_test_for_second_level_length
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and cl,15
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_save_len
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp bl,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jae L_add_bits_to_len
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ch,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync xor eax,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync lodsw
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov cl,bl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add bl,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync or ebp,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov cl,ch
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_add_bits_to_len:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax,1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync dec eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub bl,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and eax,ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr ebp,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add edx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_save_len:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+24],edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_decode_distance:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 549 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp bl,15
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ja L_get_distance_code
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync xor eax,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync lodsw
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov cl,bl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add bl,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync or ebp,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_get_distance_code:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx, [esp+4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [esp+12]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and edx,ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [ecx+edx*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_dodist:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr edx,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov cl,ah
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub bl,ah
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr ebp,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 584 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov cl,al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_test_for_second_level_dist
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and cl,15
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_check_dist_one
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp bl,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jae L_add_bits_to_dist
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ch,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync xor eax,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync lodsw
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov cl,bl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add bl,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync or ebp,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov cl,ch
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_add_bits_to_dist:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax,1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync dec eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub bl,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and eax,ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr ebp,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add edx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_check_window
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_check_window:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 625 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+44],esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub eax, [esp+40]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp eax,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jb L_clip_window
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [esp+24]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ecx,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov al, [esi]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi],al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov al, [esi+1]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov dl, [esi+2]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi+1],al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi+2],dl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add edi,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+44]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_while_test
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_check_dist_one:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp edx,1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_check_window
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp [esp+40],edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync je L_check_window
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync dec edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [esp+24]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov al, [edi]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ecx,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi+1],al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi+2],al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi+3],al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add edi,4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep stosb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_while_test
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_test_for_second_level_length:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,64
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jnz L_test_for_end_of_block
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax,1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync dec eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and eax,ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add eax,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx, [esp+8]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [edx+eax*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_dolen
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_test_for_second_level_dist:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,64
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jnz L_invalid_distance_code
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax,1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl eax,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync dec eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and eax,ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add eax,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx, [esp+12]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [edx+eax*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_dodist
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_clip_window:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 721 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp+52]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync neg ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+56]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp eax,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jb L_invalid_distance_too_far
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ecx,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp dword ptr [esp+48],0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_wrap_around_window
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 749 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp+24]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_do_copy1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_do_copy1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_do_copy1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_do_copy1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_wrap_around_window:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 793 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp+48]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp ecx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_contiguous_in_window
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi, [esp+52]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ecx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp+24]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_do_copy1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+56]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [esp+48]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_do_copy1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_do_copy1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_contiguous_in_window:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 836 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp+24]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_do_copy1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_do_copy1:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 862 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+44]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_while_test
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 878 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_init_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync emms
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm0,ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebp,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 896 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm4,dword ptr [esp+0]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movq mm3,mm4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm5,dword ptr [esp+4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movq mm2,mm5
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pxor mm1,mm1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [esp+8]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_do_loop_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_do_loop_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync psrlq mm0,mm1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp ebp,32
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ja L_get_length_code_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm6,ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm7,dword ptr [esi]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync psllq mm7,mm6
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ebp,32
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync por mm0,mm7
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_get_length_code_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pand mm4,mm0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd eax,mm4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movq mm4,mm3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [ebx+eax*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_dolen_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movzx ecx,ah
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm1,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ebp,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jnz L_test_for_length_base_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr eax,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync stosb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_while_test_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp [esp+16],edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_break_loop
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp [esp+20],esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ja L_do_loop_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_break_loop
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_test_for_length_base_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr edx,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_test_for_second_level_length_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and eax,15
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_decode_distance_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync psrlq mm0,mm1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm1,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd ecx,mm0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ebp,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and ecx, [inflate_fast_mask+eax*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_decode_distance_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync psrlq mm0,mm1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp ebp,32
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ja L_get_dist_code_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm6,ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm7,dword ptr [esi]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync psllq mm7,mm6
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ebp,32
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync por mm0,mm7
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_get_dist_code_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [esp+12]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pand mm5,mm0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd eax,mm5
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movq mm5,mm2
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [ebx+eax*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_dodist_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movzx ecx,ah
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr ebx,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ebp,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm1,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,16
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_test_for_second_level_dist_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and eax,15
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_check_dist_one_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_add_bits_to_dist_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync psrlq mm0,mm1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd mm1,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd ecx,mm0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ebp,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and ecx, [inflate_fast_mask+eax*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ebx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_check_window_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+44],esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub eax, [esp+40]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp eax,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jb L_clip_window_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ecx,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov al, [esi]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi],al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov al, [esi+1]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov dl, [esi+2]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi+1],al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi+2],dl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add edi,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+44]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [esp+8]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_while_test_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_check_dist_one_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp ebx,1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_check_window_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp [esp+40],edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync je L_check_window_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync dec edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov al, [edi]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ecx,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi+1],al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi+2],al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edi+3],al
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add edi,4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep stosb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [esp+8]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_while_test_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_test_for_second_level_length_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,64
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jnz L_test_for_end_of_block
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and eax,15
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync psrlq mm0,mm1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd ecx,mm0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and ecx, [inflate_fast_mask+eax*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ecx,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [ebx+ecx*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_dolen_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_test_for_second_level_dist_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,64
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jnz L_invalid_distance_code
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and eax,15
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync psrlq mm0,mm1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd ecx,mm0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and ecx, [inflate_fast_mask+eax*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp+12]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ecx,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [eax+ecx*4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_dodist_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_clip_window_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp+52]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync neg ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+56]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp eax,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jb L_invalid_distance_too_far
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ecx,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp dword ptr [esp+48],0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_wrap_around_window_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub eax,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_do_copy1_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_do_copy1_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_do_copy1_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_do_copy1_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_wrap_around_window_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp+48]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp ecx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_contiguous_in_window_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi, [esp+52]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ecx,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_do_copy1_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+56]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, [esp+48]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_do_copy1_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_do_copy1_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_contiguous_in_window_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,eax
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_do_copy1_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub edx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_do_copy1_mmx:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync rep movsb
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+44]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [esp+8]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_while_test_mmx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 1174 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_invalid_distance_code:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, invalid_distance_code_msg
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx,INFLATE_MODE_BAD
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_update_stream_state
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_test_for_end_of_block:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test al,32
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_invalid_literal_length_code
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx,INFLATE_MODE_TYPE
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_update_stream_state
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_invalid_literal_length_code:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, invalid_literal_length_code_msg
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx,INFLATE_MODE_BAD
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_update_stream_state
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_invalid_distance_too_far:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov esi, [esp+44]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx, invalid_distance_too_far_msg
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx,INFLATE_MODE_BAD
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_update_stream_state
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_update_stream_state:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp+88]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync test ecx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jz L_skip_msg
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [eax+24],ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_skip_msg:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [eax+28]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [eax+mode_state],edx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_break_loop
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncALIGN 4
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_break_loop:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 1243 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp dword ptr [inflate_fast_use_mmx],2
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_update_next_in
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx,ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_update_next_in:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync; 1266 "inffast.S"
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov eax, [esp+88]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov edx, [eax+28]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shr ecx,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl ecx,3
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ebx,ecx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [eax+12],edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edx+bits_state],ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ecx,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync lea ebx, [esp+28]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp [esp+20],ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_buf_not_used
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [eax+0]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [esp+20],ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [eax+4]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ebx,11
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add [esp+20],ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_buf_not_used:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [eax+0],esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx,1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync shl ebx,cl
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync dec ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp dword ptr [inflate_fast_use_mmx],2
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jne L_update_hold
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync psrlq mm0,mm1
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync movd ebp,mm0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync emms
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_update_hold:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync and ebp,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [edx+hold_state],ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [esp+20]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp ebx,esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_last_is_smaller
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ebx,esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ebx,11
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [eax+4],ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_fixup_out
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_last_is_smaller:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub esi,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync neg esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esi,11
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [eax+4],esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_fixup_out:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov ebx, [esp+16]
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync cmp ebx,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jbe L_end_is_smaller
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub ebx,edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add ebx,257
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [eax+16],ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync jmp L_done
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_end_is_smaller:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync sub edi,ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync neg edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add edi,257
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync mov [eax+16],edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncL_done:
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync add esp,64
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync popfd
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pop ebx
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pop ebp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pop esi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync pop edi
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync ret
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync_inflate_fast endp
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync_TEXT ends
1b33c96954667ba382fa595baf7b31290bfdd517vboxsyncend