19e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;/* inffas32.asm is a hand tuned assembler version of inffast.c -- fast decoding
29e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; *
39e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * inffas32.asm is derivated from inffas86.c, with translation of assembly code
49e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; *
59e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * Copyright (C) 1995-2003 Mark Adler
69e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * For conditions of distribution and use, see copyright notice in zlib.h
79e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; *
89e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * Copyright (C) 2003 Chris Anderson <christop@charm.net>
99e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * Please use the copyright conditions above.
109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; *
119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * Mar-13-2003 -- Most of this is derived from inffast.S which is derived from
129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * the gcc -S output of zlib-1.2.0/inffast.c.  Zlib-1.2.0 is in beta release at
139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * the moment.  I have successfully compiled and tested this code with gcc2.96,
149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * gcc3.2, icc5.0, msvc6.0.  It is very close to the speed of inffast.S
159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX
169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * enabled.  I will attempt to merge the MMX code into this version.  Newer
179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * versions of this and inffast.S can be found at
189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/
19381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes; *
209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; * 2005 : modification by Gilles Vollant
219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; */
229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; For Visual C++ 4.x and higher and ML 6.x and higher
239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;   ml.exe is in directory \MASM611C of Win95 DDK
249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;   ml.exe is also distributed in http://www.masm32.com/masmdl.htm
259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;    and in VC++2003 toolkit at http://msdn.microsoft.com/visualc/vctoolkit2003/
269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;
279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;
289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;   compile with command line option
299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;   ml  /coff /Zi /c /Flinffas32.lst inffas32.asm
309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;   if you define NO_GZIP (see inflate.h), compile with
329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;   ml  /coff /Zi /c /Flinffas32.lst /DNO_GUNZIP inffas32.asm
339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; zlib122sup is 0 fort zlib 1.2.2.1 and lower
36381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes; zlib122sup is 8 fort zlib 1.2.2.2 and more (with addition of dmax and head
379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;        in inflate_state in inflate.h)
389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectzlib1222sup      equ    8
399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectIFDEF GUNZIP
429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  INFLATE_MODE_TYPE    equ 11
439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  INFLATE_MODE_BAD     equ 26
449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectELSE
459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  IFNDEF NO_GUNZIP
469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    INFLATE_MODE_TYPE    equ 11
479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    INFLATE_MODE_BAD     equ 26
489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  ELSE
499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    INFLATE_MODE_TYPE    equ 3
509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    INFLATE_MODE_BAD     equ 17
519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  ENDIF
529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectENDIF
539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 75 "inffast.S"
569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;FILE "inffast.S"
579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;;;GLOBAL _inflate_fast
599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;;;SECTION .text
619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	.586p
659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	.mmx
669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	name	inflate_fast_x86
689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	.MODEL	FLAT
699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project_DATA			segment
719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectinflate_fast_use_mmx:
729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	dd	1
739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project_TEXT			segment
769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	db	'Fast decoding Code from Chris Anderson'
819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	db	0
829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectinvalid_literal_length_code_msg:
859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	db	'invalid literal/length code'
869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	db	0
879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectinvalid_distance_code_msg:
909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	db	'invalid distance code'
919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	db	0
929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectinvalid_distance_too_far_msg:
959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	db	'invalid distance too far back'
969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	db	0
979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
1009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectinflate_fast_mask:
1019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	0
1029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	1
1039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	3
1049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	7
1059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	15
1069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	31
1079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	63
1089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	127
1099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	255
1109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	511
1119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	1023
1129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	2047
1139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	4095
1149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	8191
1159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	16383
1169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	32767
1179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	65535
1189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	131071
1199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	262143
1209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	524287
1219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	1048575
1229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	2097151
1239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	4194303
1249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	8388607
1259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	16777215
1269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	33554431
1279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	67108863
1289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	134217727
1299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	268435455
1309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	536870911
1319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	1073741823
1329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	2147483647
1339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdd	4294967295
1349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectmode_state	 equ	0	;/* state->mode	*/
1379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectwsize_state	 equ	(32+zlib1222sup)	;/* state->wsize */
1389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectwrite_state	 equ	(36+4+zlib1222sup)	;/* state->write */
1399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectwindow_state	 equ	(40+4+zlib1222sup)	;/* state->window */
1409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecthold_state	 equ	(44+4+zlib1222sup)	;/* state->hold	*/
1419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectbits_state	 equ	(48+4+zlib1222sup)	;/* state->bits	*/
1429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectlencode_state	 equ	(64+4+zlib1222sup)	;/* state->lencode */
1439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdistcode_state	 equ	(68+4+zlib1222sup)	;/* state->distcode */
1449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectlenbits_state	 equ	(72+4+zlib1222sup)	;/* state->lenbits */
1459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdistbits_state	 equ	(76+4+zlib1222sup)	;/* state->distbits */
1469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;;SECTION .text
1499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 205 "inffast.S"
1509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;GLOBAL	inflate_fast_use_mmx
1519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;SECTION .data
1539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; GLOBAL inflate_fast_use_mmx:object
1569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;.size inflate_fast_use_mmx, 4
1579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 226 "inffast.S"
1589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project;SECTION .text
1599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
161ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes_inflate_fast proc near
162ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes.FPO (16, 4, 0, 0, 1, 0)
1639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	push  edi
1649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	push  esi
1659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	push  ebp
1669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	push  ebx
1679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pushfd
1689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esp,64
1699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cld
1709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+88]
1759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edi, [esi+28]
1769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx, [esi+4]
1849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esi+0]
1859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  edx,eax
1879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  edx,11
1889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+44],eax
1909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+20],edx
1919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebp, [esp+92]
1939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [esi+16]
1949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [esi+12]
1959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ebp,ecx
1979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	neg  ebp
1989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ebp,ebx
1999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ecx,257
2019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ecx,ebx
2029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+60],ebx
2049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+40],ebp
2059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+16],ecx
2069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 285 "inffast.S"
2079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [edi+lencode_state]
2089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [edi+distcode_state]
2099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+8],eax
2119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+12],ecx
2129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax,1
2149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [edi+lenbits_state]
2159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
2169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	dec  eax
2179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+0],eax
2189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax,1
2209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [edi+distbits_state]
2219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
2229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	dec  eax
2239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+4],eax
2249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [edi+wsize_state]
2269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [edi+write_state]
2279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx, [edi+window_state]
2289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+52],eax
2309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+48],ecx
2319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+56],edx
2329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebp, [edi+hold_state]
2349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [edi+bits_state]
2359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 321 "inffast.S"
2369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+44]
2379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [esp+20]
2389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  ecx,esi
2399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	ja   L_align_long
2409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ecx,11
2429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ecx,esi
2439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax,12
2449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  eax,ecx
2459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	lea  edi, [esp+28]
2469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
2479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,eax
2489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	xor  eax,eax
2499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep stosb
2509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	lea  esi, [esp+28]
2519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+20],esi
2529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_is_aligned
2539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_align_long:
2569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  esi,3
2579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz   L_is_aligned
2589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	xor  eax,eax
2599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  al, [esi]
2609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	inc  esi
2619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,ebx
2629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ebx,8
2639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
2649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	or  ebp,eax
2659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp L_align_long
2669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_is_aligned:
2689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edi, [esp+60]
2699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 366 "inffast.S"
2709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_check_mmx:
2719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  dword ptr [inflate_fast_use_mmx],2
2729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	je   L_init_mmx
2739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	ja   L_do_loop
2749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	push  eax
2769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	push  ebx
2779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	push  ecx
2789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	push  edx
2799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pushfd
2809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp]
2819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	xor  dword ptr [esp],0200000h
2829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
2869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	popfd
2879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pushfd
2889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pop  edx
2899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	xor  edx,eax
2909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz   L_dont_use_mmx
2919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	xor  eax,eax
2929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cpuid
2939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  ebx,0756e6547h
2949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_dont_use_mmx
2959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  ecx,06c65746eh
2969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_dont_use_mmx
2979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  edx,049656e69h
2989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_dont_use_mmx
2999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax,1
3009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cpuid
3019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  eax,8
3029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  eax,15
3039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  eax,6
3049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_dont_use_mmx
3059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  edx,0800000h
3069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jnz  L_use_mmx
3079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_dont_use_mmx
3089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_use_mmx:
3099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  dword ptr [inflate_fast_use_mmx],2
3109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_check_mmx_pop
3119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_dont_use_mmx:
3129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  dword ptr [inflate_fast_use_mmx],3
3139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_check_mmx_pop:
3149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pop  edx
3159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pop  ecx
3169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pop  ebx
3179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pop  eax
3189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_check_mmx
3199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 426 "inffast.S"
3209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
3219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_do_loop:
3229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 437 "inffast.S"
3239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  bl,15
3249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	ja   L_get_length_code
3259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	xor  eax,eax
3279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	lodsw
3289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  cl,bl
3299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  bl,16
3309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
3319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	or  ebp,eax
3329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_get_length_code:
3349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx, [esp+0]
3359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [esp+8]
3369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  edx,ebp
3379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [ecx+edx*4]
3389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_dolen:
3409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  cl,ah
3479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  bl,ah
3489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  ebp,cl
3499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,al
3569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jnz   L_test_for_length_base
3579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  eax,16
3599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	stosb
3609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_while_test:
3629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  [esp+16],edi
3659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_break_loop
3669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  [esp+20],esi
3689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	ja   L_do_loop
3699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_break_loop
3709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_test_for_length_base:
3729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 502 "inffast.S"
3739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx,eax
3749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  edx,16
3759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  cl,al
3769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,16
3789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz   L_test_for_second_level_length
3799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  cl,15
3809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz   L_save_len
3819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  bl,cl
3829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jae  L_add_bits_to_len
3839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ch,cl
3859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	xor  eax,eax
3869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	lodsw
3879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  cl,bl
3889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  bl,16
3899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
3909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	or  ebp,eax
3919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  cl,ch
3929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
3939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_add_bits_to_len:
3949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax,1
3959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
3969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	dec  eax
3979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  bl,cl
3989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  eax,ebp
3999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  ebp,cl
4009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  edx,eax
4019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_save_len:
4039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+24],edx
4049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_decode_distance:
4079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 549 "inffast.S"
4089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  bl,15
4099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	ja   L_get_distance_code
4109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	xor  eax,eax
4129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	lodsw
4139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  cl,bl
4149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  bl,16
4159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
4169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	or  ebp,eax
4179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_get_distance_code:
4199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx, [esp+4]
4209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [esp+12]
4219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  edx,ebp
4229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [ecx+edx*4]
4239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_dodist:
4269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx,eax
4279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  edx,16
4289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  cl,ah
4299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  bl,ah
4309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  ebp,cl
4319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 584 "inffast.S"
4329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  cl,al
4339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,16
4359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz  L_test_for_second_level_dist
4369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  cl,15
4379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz  L_check_dist_one
4389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  bl,cl
4399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jae  L_add_bits_to_dist
4409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ch,cl
4429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	xor  eax,eax
4439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	lodsw
4449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  cl,bl
4459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  bl,16
4469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
4479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	or  ebp,eax
4489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  cl,ch
4499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_add_bits_to_dist:
4519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax,1
4529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
4539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	dec  eax
4549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  bl,cl
4559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  eax,ebp
4569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  ebp,cl
4579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  edx,eax
4589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_check_window
4599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_check_window:
4619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 625 "inffast.S"
4629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+44],esi
4639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax,edi
4649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  eax, [esp+40]
4659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  eax,edx
4679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jb   L_clip_window
4689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [esp+24]
4709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi,edi
4719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,edx
4729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ecx,3
4749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  al, [esi]
4759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi],al
4769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  al, [esi+1]
4779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  dl, [esi+2]
4789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,3
4799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi+1],al
4809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi+2],dl
4819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  edi,3
4829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
4839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+44]
4859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_while_test
4869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
4889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_check_dist_one:
4899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  edx,1
4909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_check_window
4919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  [esp+40],edi
4929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	je  L_check_window
4939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	dec  edi
4959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [esp+24]
4969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  al, [edi]
4979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ecx,3
4989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
4999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi+1],al
5009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi+2],al
5019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi+3],al
5029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  edi,4
5039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep stosb
5049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_while_test
5069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
5089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_test_for_second_level_length:
5099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,64
5149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jnz   L_test_for_end_of_block
5159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax,1
5179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
5189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	dec  eax
5199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  eax,ebp
5209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  eax,edx
5219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx, [esp+8]
5229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [edx+eax*4]
5239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_dolen
5249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
5269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_test_for_second_level_dist:
5279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,64
5329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jnz   L_invalid_distance_code
5339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax,1
5359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  eax,cl
5369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	dec  eax
5379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  eax,ebp
5389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  eax,edx
5399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx, [esp+12]
5409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [edx+eax*4]
5419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_dodist
5429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
5449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_clip_window:
5459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 721 "inffast.S"
5469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,eax
5479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp+52]
5489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	neg  ecx
5499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+56]
5509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  eax,edx
5529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jb   L_invalid_distance_too_far
5539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ecx,edx
5559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  dword ptr [esp+48],0
5569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_wrap_around_window
5579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  eax,ecx
5599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,eax
5609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 749 "inffast.S"
5619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp+24]
5629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  eax,ecx
5639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_do_copy1
5649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  eax,ecx
5669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
5679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi,edi
5689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,edx
5699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_do_copy1
5709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  eax,ecx
5729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_do_copy1
5739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  eax,ecx
5759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
5769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi,edi
5779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,edx
5789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_do_copy1
5799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_wrap_around_window:
5819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 793 "inffast.S"
5829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp+48]
5839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  ecx,eax
5849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_contiguous_in_window
5859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi, [esp+52]
5879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,eax
5889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ecx
5899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ecx,eax
5909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp+24]
5939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  eax,ecx
5949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_do_copy1
5959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
5969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  eax,ecx
5979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
5989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+56]
5999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [esp+48]
6009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  eax,ecx
6019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_do_copy1
6029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  eax,ecx
6049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
6059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi,edi
6069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,edx
6079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_do_copy1
6089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_contiguous_in_window:
6109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 836 "inffast.S"
6119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,eax
6129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ecx
6139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp+24]
6169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  eax,ecx
6179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_do_copy1
6189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  eax,ecx
6209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
6219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi,edi
6229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,edx
6239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_do_copy1:
6259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 862 "inffast.S"
6269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,eax
6279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
6289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+44]
6309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_while_test
6319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 878 "inffast.S"
6329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
6339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_init_mmx:
6349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	emms
6359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd mm0,ebp
6419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebp,ebx
6429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 896 "inffast.S"
643381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes	movd mm4,dword ptr [esp+0]
6449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movq mm3,mm4
645381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes	movd mm5,dword ptr [esp+4]
6469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movq mm2,mm5
6479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pxor mm1,mm1
6489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [esp+8]
6499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_do_loop_mmx
6509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
6529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_do_loop_mmx:
6539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	psrlq mm0,mm1
6549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  ebp,32
6569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	ja  L_get_length_code_mmx
6579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd mm6,ebp
659381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes	movd mm7,dword ptr [esi]
6609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,4
6619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	psllq mm7,mm6
6629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ebp,32
6639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	por mm0,mm7
6649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_get_length_code_mmx:
6669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pand mm4,mm0
6679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd eax,mm4
6689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movq mm4,mm3
6699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [ebx+eax*4]
6709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_dolen_mmx:
6729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movzx  ecx,ah
6739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd mm1,ecx
6749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ebp,ecx
6759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,al
6779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jnz L_test_for_length_base_mmx
6789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  eax,16
6809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	stosb
6819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_while_test_mmx:
6839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  [esp+16],edi
6869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe L_break_loop
6879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  [esp+20],esi
6899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	ja L_do_loop_mmx
6909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp L_break_loop
6919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_test_for_length_base_mmx:
6939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx,eax
6959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  edx,16
6969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
6979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,16
6989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz  L_test_for_second_level_length_mmx
6999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  eax,15
7009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz L_decode_distance_mmx
7019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	psrlq mm0,mm1
7039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd mm1,eax
7049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd ecx,mm0
7059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ebp,eax
7069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  ecx, [inflate_fast_mask+eax*4]
7079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  edx,ecx
7089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_decode_distance_mmx:
7109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	psrlq mm0,mm1
7119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  ebp,32
7139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	ja L_get_dist_code_mmx
7149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd mm6,ebp
716381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes	movd mm7,dword ptr [esi]
7179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,4
7189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	psllq mm7,mm6
7199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ebp,32
7209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	por mm0,mm7
7219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_get_dist_code_mmx:
7239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [esp+12]
7249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pand mm5,mm0
7259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd eax,mm5
7269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movq mm5,mm2
7279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [ebx+eax*4]
7289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_dodist_mmx:
7309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movzx  ecx,ah
7329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx,eax
7339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  ebx,16
7349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ebp,ecx
7359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd mm1,ecx
7369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,16
7389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz L_test_for_second_level_dist_mmx
7399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  eax,15
7409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz L_check_dist_one_mmx
7419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_add_bits_to_dist_mmx:
7439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	psrlq mm0,mm1
7449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd mm1,eax
7459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd ecx,mm0
7469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ebp,eax
7479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  ecx, [inflate_fast_mask+eax*4]
7489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ebx,ecx
7499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_check_window_mmx:
7519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+44],esi
7529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax,edi
7539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  eax, [esp+40]
7549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  eax,ebx
7569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jb L_clip_window_mmx
7579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,edx
7599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi,edi
7609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ebx
7619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ecx,3
7639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  al, [esi]
7649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi],al
7659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  al, [esi+1]
7669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  dl, [esi+2]
7679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,3
7689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi+1],al
7699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi+2],dl
7709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  edi,3
7719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
7729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+44]
7749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [esp+8]
7759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_while_test_mmx
7769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
7789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_check_dist_one_mmx:
7799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  ebx,1
7809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_check_window_mmx
7819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  [esp+40],edi
7829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	je   L_check_window_mmx
7839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	dec  edi
7859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,edx
7869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  al, [edi]
7879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ecx,3
7889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi+1],al
7909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi+2],al
7919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edi+3],al
7929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  edi,4
7939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep stosb
7949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [esp+8]
7969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_while_test_mmx
7979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
7989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
7999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_test_for_second_level_length_mmx:
8009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,64
8019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jnz L_test_for_end_of_block
8029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  eax,15
8049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	psrlq mm0,mm1
8059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd ecx,mm0
8069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  ecx, [inflate_fast_mask+eax*4]
8079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ecx,edx
8089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [ebx+ecx*4]
8099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp L_dolen_mmx
8109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
8129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_test_for_second_level_dist_mmx:
8139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,64
8149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jnz L_invalid_distance_code
8159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  eax,15
8179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	psrlq mm0,mm1
8189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd ecx,mm0
8199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  ecx, [inflate_fast_mask+eax*4]
8209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp+12]
8219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ecx,ebx
8229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [eax+ecx*4]
8239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_dodist_mmx
8249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
8269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_clip_window_mmx:
8279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,eax
8299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp+52]
8309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	neg  ecx
8319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+56]
8329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  eax,ebx
8349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jb  L_invalid_distance_too_far
8359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ecx,ebx
8379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  dword ptr [esp+48],0
8389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_wrap_around_window_mmx
8399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  eax,ecx
8419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,eax
8429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  edx,ecx
8449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_do_copy1_mmx
8459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  edx,ecx
8479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
8489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi,edi
8499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ebx
8509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_do_copy1_mmx
8519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  edx,ecx
8539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_do_copy1_mmx
8549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  edx,ecx
8569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
8579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi,edi
8589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ebx
8599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_do_copy1_mmx
8609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_wrap_around_window_mmx:
8629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp+48]
8649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  ecx,eax
8659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_contiguous_in_window_mmx
8669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi, [esp+52]
8689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,eax
8699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ecx
8709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ecx,eax
8719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  edx,ecx
8749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_do_copy1_mmx
8759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  edx,ecx
8779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
8789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+56]
8799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, [esp+48]
8809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  edx,ecx
8819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_do_copy1_mmx
8829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  edx,ecx
8849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
8859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi,edi
8869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ebx
8879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_do_copy1_mmx
8889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_contiguous_in_window_mmx:
8909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,eax
8929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ecx
8939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  edx,ecx
8969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_do_copy1_mmx
8979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  edx,ecx
8999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
9009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi,edi
9019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ebx
9029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_do_copy1_mmx:
9049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,edx
9079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	rep movsb
9089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+44]
9109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [esp+8]
9119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_while_test_mmx
9129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 1174 "inffast.S"
9139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_invalid_distance_code:
9149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, invalid_distance_code_msg
9209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx,INFLATE_MODE_BAD
9219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_update_stream_state
9229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_test_for_end_of_block:
9249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  al,32
9309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz  L_invalid_literal_length_code
9319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,0
9339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx,INFLATE_MODE_TYPE
9349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_update_stream_state
9359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_invalid_literal_length_code:
9379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, invalid_literal_length_code_msg
9439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx,INFLATE_MODE_BAD
9449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_update_stream_state
9459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_invalid_distance_too_far:
9479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  esi, [esp+44]
9519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx, invalid_distance_too_far_msg
9529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx,INFLATE_MODE_BAD
9539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_update_stream_state
9549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_update_stream_state:
9569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp+88]
9589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	test  ecx,ecx
9599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jz  L_skip_msg
9609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [eax+24],ecx
9619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_skip_msg:
9629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [eax+28]
9639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [eax+mode_state],edx
9649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_break_loop
9659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectALIGN 4
9679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_break_loop:
9689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 1243 "inffast.S"
9699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  dword ptr [inflate_fast_use_mmx],2
9709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_update_next_in
9719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx,ebp
9759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_update_next_in:
9779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project; 1266 "inffast.S"
9789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  eax, [esp+88]
9799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,ebx
9809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  edx, [eax+28]
9819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shr  ecx,3
9829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ecx
9839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  ecx,3
9849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ebx,ecx
9859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [eax+12],edi
9869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edx+bits_state],ebx
9879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ecx,ebx
9889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	lea  ebx, [esp+28]
9909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  [esp+20],ebx
9919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_buf_not_used
9929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
9939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ebx
9949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [eax+0]
9959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [esp+20],ebx
9969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,ebx
9979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [eax+4]
9989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ebx,11
9999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  [esp+20],ebx
10009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_buf_not_used:
10029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [eax+0],esi
10039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx,1
10059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	shl  ebx,cl
10069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	dec  ebx
10079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  dword ptr [inflate_fast_use_mmx],2
10139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jne  L_update_hold
10149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	psrlq mm0,mm1
10189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	movd ebp,mm0
10199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	emms
10219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_update_hold:
10239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	and  ebp,ebx
10279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [edx+hold_state],ebp
10289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [esp+20]
10339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  ebx,esi
10349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_last_is_smaller
10359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ebx,esi
10379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ebx,11
10389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [eax+4],ebx
10399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_fixup_out
10409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_last_is_smaller:
10419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  esi,ebx
10429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	neg  esi
10439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esi,11
10449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [eax+4],esi
10459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_fixup_out:
10509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  ebx, [esp+16]
10529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	cmp  ebx,edi
10539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jbe  L_end_is_smaller
10549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  ebx,edi
10569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  ebx,257
10579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [eax+16],ebx
10589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	jmp  L_done
10599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_end_is_smaller:
10609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	sub  edi,ebx
10619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	neg  edi
10629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  edi,257
10639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	mov  [eax+16],edi
10649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectL_done:
10709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	add  esp,64
10719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	popfd
10729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pop  ebx
10739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pop  ebp
10749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pop  esi
10759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	pop  edi
10769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project	ret
1077ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes_inflate_fast endp
10789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
10799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project_TEXT	ends
10809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectend
1081