14969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin#if defined(__i386__)
24969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.text
34969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.globl	_ChaCha20_ctr32
44969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.private_extern	_ChaCha20_ctr32
54969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.align	4
64969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin_ChaCha20_ctr32:
74969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL_ChaCha20_ctr32_begin:
84969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pushl	%ebp
94969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pushl	%ebx
104969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pushl	%esi
114969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pushl	%edi
124969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%eax
134969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	cmpl	28(%esp),%eax
144969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	je	L000no_data
154969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	call	Lpic_point
164969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminLpic_point:
174969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	popl	%eax
184969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-Lpic_point(%eax),%ebp
194969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	testl	$16777216,(%ebp)
204969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jz	L001x86
214969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	testl	$512,4(%ebp)
224969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jz	L001x86
234969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jmp	Lssse3_shortcut
244969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL001x86:
254969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	32(%esp),%esi
264969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	36(%esp),%edi
274969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	subl	$132,%esp
284969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	(%esi),%eax
294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	4(%esi),%ebx
304969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	8(%esi),%ecx
314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	12(%esi),%edx
324969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,80(%esp)
334969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,84(%esp)
344969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,88(%esp)
354969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,92(%esp)
364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	16(%esi),%eax
374969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	20(%esi),%ebx
384969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	24(%esi),%ecx
394969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	28(%esi),%edx
404969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,96(%esp)
414969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,100(%esp)
424969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,104(%esp)
434969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,108(%esp)
444969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	(%edi),%eax
454969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	4(%edi),%ebx
464969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	8(%edi),%ecx
474969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	12(%edi),%edx
484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	subl	$1,%eax
494969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,112(%esp)
504969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,116(%esp)
514969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,120(%esp)
524969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,124(%esp)
534969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jmp	L002entry
544969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.align	4,0x90
554969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL003outer_loop:
564969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,156(%esp)
574969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,152(%esp)
584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,160(%esp)
594969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL002entry:
604969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	$1634760805,%eax
614969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	$857760878,4(%esp)
624969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	$2036477234,8(%esp)
634969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	$1797285236,12(%esp)
644969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	84(%esp),%ebx
654969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	88(%esp),%ebp
664969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	104(%esp),%ecx
674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	108(%esp),%esi
684969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	116(%esp),%edx
694969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	120(%esp),%edi
704969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,20(%esp)
714969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,24(%esp)
724969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,40(%esp)
734969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%esi,44(%esp)
744969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,52(%esp)
754969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,56(%esp)
764969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	92(%esp),%ebx
774969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	124(%esp),%edi
784969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	112(%esp),%edx
794969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	80(%esp),%ebp
804969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	96(%esp),%ecx
814969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	100(%esp),%esi
824969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	$1,%edx
834969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,28(%esp)
844969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,60(%esp)
854969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,112(%esp)
864969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	$10,%ebx
874969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jmp	L004loop
884969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.align	4,0x90
894969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL004loop:
904969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebp,%eax
914969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,128(%esp)
924969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,%ebx
934969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edx
944969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$16,%edx
954969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edx,%ecx
964969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%ecx,%ebx
974969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	52(%esp),%edi
984969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$12,%ebx
994969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	20(%esp),%ebp
1004969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebx,%eax
1014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edx
1024969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,(%esp)
1034969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$8,%edx
1044969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	4(%esp),%eax
1054969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edx,%ecx
1064969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,48(%esp)
1074969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%ecx,%ebx
1084969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebp,%eax
1094969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$7,%ebx
1104969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edi
1114969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,32(%esp)
1124969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$16,%edi
1134969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,16(%esp)
1144969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edi,%esi
1154969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	40(%esp),%ecx
1164969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%esi,%ebp
1174969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	56(%esp),%edx
1184969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$12,%ebp
1194969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	24(%esp),%ebx
1204969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebp,%eax
1214969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edi
1224969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,4(%esp)
1234969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$8,%edi
1244969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	8(%esp),%eax
1254969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edi,%esi
1264969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,52(%esp)
1274969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%esi,%ebp
1284969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebx,%eax
1294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$7,%ebp
1304969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edx
1314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%esi,36(%esp)
1324969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$16,%edx
1334969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,20(%esp)
1344969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edx,%ecx
1354969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	44(%esp),%esi
1364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%ecx,%ebx
1374969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	60(%esp),%edi
1384969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$12,%ebx
1394969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	28(%esp),%ebp
1404969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebx,%eax
1414969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edx
1424969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,8(%esp)
1434969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$8,%edx
1444969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	12(%esp),%eax
1454969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edx,%ecx
1464969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,56(%esp)
1474969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%ecx,%ebx
1484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebp,%eax
1494969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$7,%ebx
1504969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edi
1514969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$16,%edi
1524969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,24(%esp)
1534969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edi,%esi
1544969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%esi,%ebp
1554969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$12,%ebp
1564969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	20(%esp),%ebx
1574969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebp,%eax
1584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edi
1594969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,12(%esp)
1604969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$8,%edi
1614969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	(%esp),%eax
1624969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edi,%esi
1634969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,%edx
1644969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%esi,%ebp
1654969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebx,%eax
1664969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$7,%ebp
1674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edx
1684969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$16,%edx
1694969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,28(%esp)
1704969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edx,%ecx
1714969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%ecx,%ebx
1724969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	48(%esp),%edi
1734969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$12,%ebx
1744969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	24(%esp),%ebp
1754969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebx,%eax
1764969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edx
1774969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,(%esp)
1784969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$8,%edx
1794969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	4(%esp),%eax
1804969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edx,%ecx
1814969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,60(%esp)
1824969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%ecx,%ebx
1834969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebp,%eax
1844969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$7,%ebx
1854969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edi
1864969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,40(%esp)
1874969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$16,%edi
1884969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,20(%esp)
1894969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edi,%esi
1904969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	32(%esp),%ecx
1914969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%esi,%ebp
1924969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	52(%esp),%edx
1934969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$12,%ebp
1944969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	28(%esp),%ebx
1954969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebp,%eax
1964969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edi
1974969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,4(%esp)
1984969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$8,%edi
1994969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	8(%esp),%eax
2004969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edi,%esi
2014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,48(%esp)
2024969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%esi,%ebp
2034969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebx,%eax
2044969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$7,%ebp
2054969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edx
2064969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%esi,44(%esp)
2074969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$16,%edx
2084969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,24(%esp)
2094969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edx,%ecx
2104969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	36(%esp),%esi
2114969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%ecx,%ebx
2124969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	56(%esp),%edi
2134969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$12,%ebx
2144969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	16(%esp),%ebp
2154969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebx,%eax
2164969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edx
2174969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,8(%esp)
2184969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$8,%edx
2194969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	12(%esp),%eax
2204969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edx,%ecx
2214969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,52(%esp)
2224969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%ecx,%ebx
2234969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebp,%eax
2244969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$7,%ebx
2254969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edi
2264969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$16,%edi
2274969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,28(%esp)
2284969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edi,%esi
2294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%esi,%ebp
2304969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	48(%esp),%edx
2314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$12,%ebp
2324969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	128(%esp),%ebx
2334969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%ebp,%eax
2344969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%edi
2354969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,12(%esp)
2364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$8,%edi
2374969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	(%esp),%eax
2384969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	%edi,%esi
2394969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,56(%esp)
2404969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%esi,%ebp
2414969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	roll	$7,%ebp
2424969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	decl	%ebx
2434969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jnz	L004loop
2444969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	160(%esp),%ebx
2454969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	$1634760805,%eax
2464969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	80(%esp),%ebp
2474969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	96(%esp),%ecx
2484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	100(%esp),%esi
2494969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	cmpl	$64,%ebx
2504969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jb	L005tail
2514969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	156(%esp),%ebx
2524969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	112(%esp),%edx
2534969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	120(%esp),%edi
2544969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	(%ebx),%eax
2554969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	16(%ebx),%ebp
2564969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,(%esp)
2574969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	152(%esp),%eax
2584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	32(%ebx),%ecx
2594969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	36(%ebx),%esi
2604969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	48(%ebx),%edx
2614969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	56(%ebx),%edi
2626e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	%ebp,16(%eax)
2636e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	%ecx,32(%eax)
2646e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	%esi,36(%eax)
2656e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	%edx,48(%eax)
2666e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	%edi,56(%eax)
2674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	4(%esp),%ebp
2684969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	8(%esp),%ecx
2694969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	12(%esp),%esi
2704969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	20(%esp),%edx
2714969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	24(%esp),%edi
2724969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	$857760878,%ebp
2734969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	$2036477234,%ecx
2744969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	$1797285236,%esi
2754969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	84(%esp),%edx
2764969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	88(%esp),%edi
2774969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	4(%ebx),%ebp
2784969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	8(%ebx),%ecx
2794969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	12(%ebx),%esi
2804969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	20(%ebx),%edx
2814969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	24(%ebx),%edi
2824969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,4(%eax)
2834969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,8(%eax)
2844969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%esi,12(%eax)
2854969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,20(%eax)
2864969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,24(%eax)
2876e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	28(%esp),%ebp
2886e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	40(%esp),%ecx
2894969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	44(%esp),%esi
2904969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	52(%esp),%edx
2914969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	60(%esp),%edi
2926e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	addl	92(%esp),%ebp
2936e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	addl	104(%esp),%ecx
2946e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	addl	108(%esp),%esi
2954969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	116(%esp),%edx
2964969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	124(%esp),%edi
2976e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	xorl	28(%ebx),%ebp
2986e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	xorl	40(%ebx),%ecx
2996e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	xorl	44(%ebx),%esi
3004969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	52(%ebx),%edx
3014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	60(%ebx),%edi
3024969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	64(%ebx),%ebx
3036e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	%ebp,28(%eax)
3046e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	(%esp),%ebp
3056e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	%ecx,40(%eax)
3064969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	160(%esp),%ecx
3076e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	%esi,44(%eax)
3084969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,52(%eax)
3094969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,60(%eax)
3106e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movl	%ebp,(%eax)
3114969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	64(%eax),%eax
3124969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	subl	$64,%ecx
3134969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jnz	L003outer_loop
3144969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jmp	L006done
3154969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL005tail:
3164969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	112(%esp),%edx
3174969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	120(%esp),%edi
3184969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%eax,(%esp)
3194969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,16(%esp)
3204969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,32(%esp)
3214969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%esi,36(%esp)
3224969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,48(%esp)
3234969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,56(%esp)
3244969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	4(%esp),%ebp
3254969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	8(%esp),%ecx
3264969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	12(%esp),%esi
3274969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	20(%esp),%edx
3284969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	24(%esp),%edi
3294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	$857760878,%ebp
3304969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	$2036477234,%ecx
3314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	$1797285236,%esi
3324969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	84(%esp),%edx
3334969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	88(%esp),%edi
3344969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,4(%esp)
3354969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,8(%esp)
3364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%esi,12(%esp)
3374969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,20(%esp)
3384969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,24(%esp)
3394969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	28(%esp),%ebp
3404969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	40(%esp),%ecx
3414969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	44(%esp),%esi
3424969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	52(%esp),%edx
3434969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	60(%esp),%edi
3444969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	92(%esp),%ebp
3454969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	104(%esp),%ecx
3464969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	108(%esp),%esi
3474969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	116(%esp),%edx
3484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	124(%esp),%edi
3494969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,28(%esp)
3504969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	156(%esp),%ebp
3514969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ecx,40(%esp)
3524969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	152(%esp),%ecx
3534969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%esi,44(%esp)
3544969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%esi,%esi
3554969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,52(%esp)
3564969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edi,60(%esp)
3574969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%eax
3584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%edx,%edx
3594969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL007tail_loop:
3604969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movb	(%esi,%ebp,1),%al
3614969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movb	(%esp,%esi,1),%dl
3624969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	1(%esi),%esi
3634969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorb	%dl,%al
3644969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movb	%al,-1(%ecx,%esi,1)
3654969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	decl	%ebx
3664969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jnz	L007tail_loop
3674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL006done:
3684969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	$132,%esp
3694969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL000no_data:
3704969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	popl	%edi
3714969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	popl	%esi
3724969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	popl	%ebx
3734969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	popl	%ebp
3744969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	ret
3754969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.globl	_ChaCha20_ssse3
3764969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.private_extern	_ChaCha20_ssse3
3774969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.align	4
3784969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin_ChaCha20_ssse3:
3794969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL_ChaCha20_ssse3_begin:
3804969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pushl	%ebp
3814969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pushl	%ebx
3824969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pushl	%esi
3834969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pushl	%edi
3844969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminLssse3_shortcut:
3854969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	20(%esp),%edi
3864969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	24(%esp),%esi
3874969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	28(%esp),%ecx
3884969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	32(%esp),%edx
3894969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	36(%esp),%ebx
3904969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%esp,%ebp
3914969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	subl	$524,%esp
3924969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	andl	$-64,%esp
3934969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,512(%esp)
3944969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	Lssse3_data-Lpic_point(%eax),%eax
3954969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	(%ebx),%xmm3
3964969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	cmpl	$256,%ecx
3974969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jb	L0081x
3984969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%edx,516(%esp)
3994969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebx,520(%esp)
4004969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	subl	$256,%ecx
4014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	384(%esp),%ebp
4024969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	(%edx),%xmm7
4034969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$0,%xmm3,%xmm0
4044969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$85,%xmm3,%xmm1
4054969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$170,%xmm3,%xmm2
4064969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$255,%xmm3,%xmm3
4074969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	48(%eax),%xmm0
4084969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$0,%xmm7,%xmm4
4094969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$85,%xmm7,%xmm5
4104969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psubd	64(%eax),%xmm0
4114969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$170,%xmm7,%xmm6
4124969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$255,%xmm7,%xmm7
4134969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,64(%ebp)
4144969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,80(%ebp)
4154969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,96(%ebp)
4164969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,112(%ebp)
4174969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	16(%edx),%xmm3
4184969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm4,-64(%ebp)
4194969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm5,-48(%ebp)
4204969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,-32(%ebp)
4214969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm7,-16(%ebp)
4224969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	32(%eax),%xmm7
4234969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	128(%esp),%ebx
4244969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$0,%xmm3,%xmm0
4254969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$85,%xmm3,%xmm1
4264969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$170,%xmm3,%xmm2
4274969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$255,%xmm3,%xmm3
4284969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$0,%xmm7,%xmm4
4294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$85,%xmm7,%xmm5
4304969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$170,%xmm7,%xmm6
4314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$255,%xmm7,%xmm7
4324969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,(%ebp)
4334969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,16(%ebp)
4344969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,32(%ebp)
4354969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,48(%ebp)
4364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm4,-128(%ebp)
4374969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm5,-112(%ebp)
4384969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,-96(%ebp)
4394969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm7,-80(%ebp)
4404969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	128(%esi),%esi
4414969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	128(%edi),%edi
4424969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jmp	L009outer_loop
4434969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.align	4,0x90
4444969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL009outer_loop:
4454969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-112(%ebp),%xmm1
4464969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-96(%ebp),%xmm2
4474969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-80(%ebp),%xmm3
4484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-48(%ebp),%xmm5
4494969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-32(%ebp),%xmm6
4504969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-16(%ebp),%xmm7
4514969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,-112(%ebx)
4524969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,-96(%ebx)
4534969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,-80(%ebx)
4544969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm5,-48(%ebx)
4554969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,-32(%ebx)
4564969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm7,-16(%ebx)
4574969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	32(%ebp),%xmm2
4584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	48(%ebp),%xmm3
4594969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	64(%ebp),%xmm4
4604969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	80(%ebp),%xmm5
4614969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	96(%ebp),%xmm6
4624969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	112(%ebp),%xmm7
4634969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	64(%eax),%xmm4
4644969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,32(%ebx)
4654969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,48(%ebx)
4664969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm4,64(%ebx)
4674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm5,80(%ebx)
4684969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,96(%ebx)
4694969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm7,112(%ebx)
4704969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm4,64(%ebp)
4714969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-128(%ebp),%xmm0
4724969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm4,%xmm6
4734969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-64(%ebp),%xmm3
4744969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	(%ebp),%xmm4
4754969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	16(%ebp),%xmm5
4764969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	$10,%edx
4774969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	nop
4784969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.align	4,0x90
4794969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL010loop:
4804969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm0
4814969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,%xmm2
4824969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm6
4834969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	(%eax),%xmm6
4844969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm6,%xmm4
4854969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm4,%xmm2
4864969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-48(%ebx),%xmm3
4874969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm1
4884969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$12,%xmm2
4894969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$20,%xmm1
4904969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm1,%xmm2
4914969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-112(%ebx),%xmm1
4924969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm2,%xmm0
4934969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	80(%ebx),%xmm7
4944969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm6
4954969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,-128(%ebx)
4964969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	16(%eax),%xmm6
4974969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm6,%xmm4
4984969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,64(%ebx)
4994969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm4,%xmm2
5004969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm1
5014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm0
5024969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$7,%xmm2
5034969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$25,%xmm0
5044969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm1,%xmm7
5054969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm0,%xmm2
5064969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm4,(%ebx)
5074969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	(%eax),%xmm7
5084969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,-64(%ebx)
5094969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm7,%xmm5
5104969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	32(%ebx),%xmm4
5114969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm5,%xmm3
5124969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-32(%ebx),%xmm2
5134969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,%xmm0
5144969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$12,%xmm3
5154969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$20,%xmm0
5164969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm0,%xmm3
5174969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-96(%ebx),%xmm0
5184969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm1
5194969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	96(%ebx),%xmm6
5204969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm1,%xmm7
5214969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,-112(%ebx)
5224969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	16(%eax),%xmm7
5234969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm7,%xmm5
5244969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm7,80(%ebx)
5254969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm5,%xmm3
5264969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm2,%xmm0
5274969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,%xmm1
5284969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$7,%xmm3
5294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$25,%xmm1
5304969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm6
5314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm1,%xmm3
5324969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm5,16(%ebx)
5334969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	(%eax),%xmm6
5344969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,-48(%ebx)
5354969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm6,%xmm4
5364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	48(%ebx),%xmm5
5374969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm4,%xmm2
5384969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-16(%ebx),%xmm3
5394969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm1
5404969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$12,%xmm2
5414969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$20,%xmm1
5424969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm1,%xmm2
5434969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-80(%ebx),%xmm1
5444969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm2,%xmm0
5454969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	112(%ebx),%xmm7
5464969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm6
5474969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,-96(%ebx)
5484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	16(%eax),%xmm6
5494969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm6,%xmm4
5504969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,96(%ebx)
5514969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm4,%xmm2
5524969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm1
5534969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm0
5544969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$7,%xmm2
5554969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$25,%xmm0
5564969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm1,%xmm7
5574969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm0,%xmm2
5584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	(%eax),%xmm7
5594969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,-32(%ebx)
5604969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm7,%xmm5
5614969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm5,%xmm3
5624969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-48(%ebx),%xmm2
5634969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,%xmm0
5644969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$12,%xmm3
5654969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$20,%xmm0
5664969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm0,%xmm3
5674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-128(%ebx),%xmm0
5684969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm1
5694969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm1,%xmm7
5704969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,-80(%ebx)
5714969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	16(%eax),%xmm7
5724969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm7,%xmm5
5734969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm7,%xmm6
5744969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm5,%xmm3
5754969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm2,%xmm0
5764969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,%xmm1
5774969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$7,%xmm3
5784969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$25,%xmm1
5794969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm6
5804969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm1,%xmm3
5814969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	(%eax),%xmm6
5824969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,-16(%ebx)
5834969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm6,%xmm4
5844969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm4,%xmm2
5854969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-32(%ebx),%xmm3
5864969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm1
5874969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$12,%xmm2
5884969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$20,%xmm1
5894969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm1,%xmm2
5904969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-112(%ebx),%xmm1
5914969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm2,%xmm0
5924969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	64(%ebx),%xmm7
5934969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm6
5944969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,-128(%ebx)
5954969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	16(%eax),%xmm6
5964969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm6,%xmm4
5974969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,112(%ebx)
5984969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm4,%xmm2
5994969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm1
6004969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm0
6014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$7,%xmm2
6024969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$25,%xmm0
6034969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm1,%xmm7
6044969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm0,%xmm2
6054969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm4,32(%ebx)
6064969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	(%eax),%xmm7
6074969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,-48(%ebx)
6084969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm7,%xmm5
6094969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	(%ebx),%xmm4
6104969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm5,%xmm3
6114969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-16(%ebx),%xmm2
6124969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,%xmm0
6134969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$12,%xmm3
6144969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$20,%xmm0
6154969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm0,%xmm3
6164969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-96(%ebx),%xmm0
6174969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm1
6184969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	80(%ebx),%xmm6
6194969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm1,%xmm7
6204969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,-112(%ebx)
6214969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	16(%eax),%xmm7
6224969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm7,%xmm5
6234969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm7,64(%ebx)
6244969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm5,%xmm3
6254969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm2,%xmm0
6264969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,%xmm1
6274969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$7,%xmm3
6284969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$25,%xmm1
6294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm6
6304969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm1,%xmm3
6314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm5,48(%ebx)
6324969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	(%eax),%xmm6
6334969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,-32(%ebx)
6344969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm6,%xmm4
6354969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	16(%ebx),%xmm5
6364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm4,%xmm2
6374969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-64(%ebx),%xmm3
6384969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm1
6394969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$12,%xmm2
6404969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$20,%xmm1
6414969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm1,%xmm2
6424969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-80(%ebx),%xmm1
6434969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm2,%xmm0
6444969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	96(%ebx),%xmm7
6454969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm6
6464969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,-96(%ebx)
6474969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	16(%eax),%xmm6
6484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm6,%xmm4
6494969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,80(%ebx)
6504969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm4,%xmm2
6514969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm1
6524969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm0
6534969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$7,%xmm2
6544969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$25,%xmm0
6554969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm1,%xmm7
6564969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm0,%xmm2
6574969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	(%eax),%xmm7
6584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,-16(%ebx)
6594969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm7,%xmm5
6604969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm5,%xmm3
6614969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,%xmm0
6624969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$12,%xmm3
6634969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$20,%xmm0
6644969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm0,%xmm3
6654969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-128(%ebx),%xmm0
6664969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm1
6674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	64(%ebx),%xmm6
6684969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm1,%xmm7
6694969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,-80(%ebx)
6704969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufb	16(%eax),%xmm7
6714969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm7,%xmm5
6724969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm7,96(%ebx)
6734969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm5,%xmm3
6744969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,%xmm1
6754969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$7,%xmm3
6764969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$25,%xmm1
6774969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm1,%xmm3
6784969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	decl	%edx
6794969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jnz	L010loop
6804969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,-64(%ebx)
6814969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm4,(%ebx)
6824969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm5,16(%ebx)
6834969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,64(%ebx)
6844969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm7,96(%ebx)
6854969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-112(%ebx),%xmm1
6864969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-96(%ebx),%xmm2
6874969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-80(%ebx),%xmm3
6884969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	-128(%ebp),%xmm0
6894969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	-112(%ebp),%xmm1
6904969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	-96(%ebp),%xmm2
6914969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	-80(%ebp),%xmm3
6924969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,%xmm6
6934969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckldq	%xmm1,%xmm0
6944969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm7
6954969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckldq	%xmm3,%xmm2
6964969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhdq	%xmm1,%xmm6
6974969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhdq	%xmm3,%xmm7
6984969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,%xmm1
6994969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpcklqdq	%xmm2,%xmm0
7004969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,%xmm3
7014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpcklqdq	%xmm7,%xmm6
7024969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhqdq	%xmm2,%xmm1
7034969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhqdq	%xmm7,%xmm3
7046e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	-128(%esi),%xmm4
7056e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	-64(%esi),%xmm5
7066e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	(%esi),%xmm2
7076e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	64(%esi),%xmm7
7086e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	leal	16(%esi),%esi
7096e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm0,%xmm4
7104969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-64(%ebx),%xmm0
7116e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm1,%xmm5
7124969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-48(%ebx),%xmm1
7136e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm2,%xmm6
7144969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-32(%ebx),%xmm2
7156e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm3,%xmm7
7164969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	-16(%ebx),%xmm3
7176e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm4,-128(%edi)
7186e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm5,-64(%edi)
7196e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm6,(%edi)
7206e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm7,64(%edi)
7216e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	leal	16(%edi),%edi
7224969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	-64(%ebp),%xmm0
7234969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	-48(%ebp),%xmm1
7244969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	-32(%ebp),%xmm2
7254969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	-16(%ebp),%xmm3
7264969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,%xmm6
7274969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckldq	%xmm1,%xmm0
7284969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm7
7294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckldq	%xmm3,%xmm2
7304969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhdq	%xmm1,%xmm6
7314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhdq	%xmm3,%xmm7
7324969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,%xmm1
7334969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpcklqdq	%xmm2,%xmm0
7344969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,%xmm3
7354969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpcklqdq	%xmm7,%xmm6
7364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhqdq	%xmm2,%xmm1
7374969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhqdq	%xmm7,%xmm3
7386e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	-128(%esi),%xmm4
7396e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	-64(%esi),%xmm5
7406e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	(%esi),%xmm2
7416e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	64(%esi),%xmm7
7426e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	leal	16(%esi),%esi
7436e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm0,%xmm4
7444969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	(%ebx),%xmm0
7456e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm1,%xmm5
7464969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	16(%ebx),%xmm1
7476e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm2,%xmm6
7484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	32(%ebx),%xmm2
7496e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm3,%xmm7
7504969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	48(%ebx),%xmm3
7516e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm4,-128(%edi)
7526e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm5,-64(%edi)
7536e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm6,(%edi)
7546e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm7,64(%edi)
7556e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	leal	16(%edi),%edi
7564969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	(%ebp),%xmm0
7574969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	16(%ebp),%xmm1
7584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	32(%ebp),%xmm2
7594969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	48(%ebp),%xmm3
7604969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,%xmm6
7614969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckldq	%xmm1,%xmm0
7624969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm7
7634969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckldq	%xmm3,%xmm2
7644969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhdq	%xmm1,%xmm6
7654969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhdq	%xmm3,%xmm7
7664969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,%xmm1
7674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpcklqdq	%xmm2,%xmm0
7684969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,%xmm3
7694969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpcklqdq	%xmm7,%xmm6
7704969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhqdq	%xmm2,%xmm1
7714969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhqdq	%xmm7,%xmm3
7726e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	-128(%esi),%xmm4
7736e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	-64(%esi),%xmm5
7746e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	(%esi),%xmm2
7756e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	64(%esi),%xmm7
7766e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	leal	16(%esi),%esi
7776e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm0,%xmm4
7784969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	64(%ebx),%xmm0
7796e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm1,%xmm5
7804969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	80(%ebx),%xmm1
7816e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm2,%xmm6
7824969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	96(%ebx),%xmm2
7836e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm3,%xmm7
7844969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	112(%ebx),%xmm3
7856e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm4,-128(%edi)
7866e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm5,-64(%edi)
7876e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm6,(%edi)
7886e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm7,64(%edi)
7896e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	leal	16(%edi),%edi
7904969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	64(%ebp),%xmm0
7914969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	80(%ebp),%xmm1
7924969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	96(%ebp),%xmm2
7934969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	112(%ebp),%xmm3
7944969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,%xmm6
7954969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckldq	%xmm1,%xmm0
7964969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,%xmm7
7974969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckldq	%xmm3,%xmm2
7984969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhdq	%xmm1,%xmm6
7994969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhdq	%xmm3,%xmm7
8004969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,%xmm1
8014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpcklqdq	%xmm2,%xmm0
8024969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm6,%xmm3
8034969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpcklqdq	%xmm7,%xmm6
8044969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhqdq	%xmm2,%xmm1
8054969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	punpckhqdq	%xmm7,%xmm3
8066e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	-128(%esi),%xmm4
8076e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	-64(%esi),%xmm5
8086e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	(%esi),%xmm2
8096e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	64(%esi),%xmm7
8106e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	leal	208(%esi),%esi
8116e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm0,%xmm4
8126e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm1,%xmm5
8136e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm2,%xmm6
8146e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	pxor	%xmm3,%xmm7
8156e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm4,-128(%edi)
8166e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm5,-64(%edi)
8176e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm6,(%edi)
8186e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	movdqu	%xmm7,64(%edi)
8196e899c7d3f4c7bd6383a0ca171a50e95aa9d8e2dDavid Benjamin	leal	208(%edi),%edi
8204969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	subl	$256,%ecx
8214969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jnc	L009outer_loop
8224969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	addl	$256,%ecx
8234969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jz	L011done
8244969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	520(%esp),%ebx
8254969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	-128(%esi),%esi
8264969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	516(%esp),%edx
8274969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	-128(%edi),%edi
8284969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movd	64(%ebp),%xmm2
8294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	(%ebx),%xmm3
8304969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	96(%eax),%xmm2
8314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pand	112(%eax),%xmm3
8324969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm2,%xmm3
8334969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL0081x:
8344969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	32(%eax),%xmm0
8354969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	(%edx),%xmm1
8364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	16(%edx),%xmm2
8374969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	(%eax),%xmm6
8384969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	16(%eax),%xmm7
8394969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	%ebp,48(%esp)
8404969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,(%esp)
8414969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,16(%esp)
8424969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,32(%esp)
8434969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,48(%esp)
8444969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	$10,%edx
8454969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jmp	L012loop1x
8464969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.align	4,0x90
8474969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL013outer1x:
8484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	80(%eax),%xmm3
8494969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	(%esp),%xmm0
8504969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	16(%esp),%xmm1
8514969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	32(%esp),%xmm2
8524969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	48(%esp),%xmm3
8534969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	$10,%edx
8544969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,48(%esp)
8554969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jmp	L012loop1x
8564969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.align	4,0x90
8574969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL012loop1x:
8584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm1,%xmm0
8594969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm3
8604969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.byte	102,15,56,0,222
8614969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm2
8624969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm2,%xmm1
8634969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,%xmm4
8644969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$20,%xmm1
8654969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$12,%xmm4
8664969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm4,%xmm1
8674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm1,%xmm0
8684969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm3
8694969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.byte	102,15,56,0,223
8704969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm2
8714969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm2,%xmm1
8724969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,%xmm4
8734969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$25,%xmm1
8744969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$7,%xmm4
8754969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm4,%xmm1
8764969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$78,%xmm2,%xmm2
8774969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$57,%xmm1,%xmm1
8784969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$147,%xmm3,%xmm3
8794969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	nop
8804969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm1,%xmm0
8814969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm3
8824969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.byte	102,15,56,0,222
8834969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm2
8844969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm2,%xmm1
8854969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,%xmm4
8864969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$20,%xmm1
8874969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$12,%xmm4
8884969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm4,%xmm1
8894969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm1,%xmm0
8904969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm0,%xmm3
8914969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.byte	102,15,56,0,223
8924969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	%xmm3,%xmm2
8934969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm2,%xmm1
8944969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,%xmm4
8954969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	psrld	$25,%xmm1
8964969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pslld	$7,%xmm4
8974969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	por	%xmm4,%xmm1
8984969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$78,%xmm2,%xmm2
8994969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$147,%xmm1,%xmm1
9004969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pshufd	$57,%xmm3,%xmm3
9014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	decl	%edx
9024969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jnz	L012loop1x
9034969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	(%esp),%xmm0
9044969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	16(%esp),%xmm1
9054969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	32(%esp),%xmm2
9064969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	paddd	48(%esp),%xmm3
9074969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	cmpl	$64,%ecx
9084969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jb	L014tail
9094969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	(%esi),%xmm4
9104969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	16(%esi),%xmm5
9114969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm4,%xmm0
9124969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	32(%esi),%xmm4
9134969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm5,%xmm1
9144969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	48(%esi),%xmm5
9154969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm4,%xmm2
9164969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	pxor	%xmm5,%xmm3
9174969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	64(%esi),%esi
9184969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	%xmm0,(%edi)
9194969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	%xmm1,16(%edi)
9204969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	%xmm2,32(%edi)
9214969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqu	%xmm3,48(%edi)
9224969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	64(%edi),%edi
9234969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	subl	$64,%ecx
9244969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jnz	L013outer1x
9254969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jmp	L011done
9264969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL014tail:
9274969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm0,(%esp)
9284969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm1,16(%esp)
9294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm2,32(%esp)
9304969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movdqa	%xmm3,48(%esp)
9314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%eax,%eax
9324969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%edx,%edx
9334969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorl	%ebp,%ebp
9344969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL015tail_loop:
9354969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movb	(%esp,%ebp,1),%al
9364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movb	(%esi,%ebp,1),%dl
9374969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	leal	1(%ebp),%ebp
9384969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	xorb	%dl,%al
9394969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movb	%al,-1(%edi,%ebp,1)
9404969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	decl	%ecx
9414969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	jnz	L015tail_loop
9424969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL011done:
9434969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	movl	512(%esp),%esp
9444969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	popl	%edi
9454969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	popl	%esi
9464969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	popl	%ebx
9474969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	popl	%ebp
9484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin	ret
9494969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.align	6,0x90
9504969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminLssse3_data:
9514969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.byte	2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13
9524969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.byte	3,0,1,2,7,4,5,6,11,8,9,10,15,12,13,14
9534969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.long	1634760805,857760878,2036477234,1797285236
9544969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.long	0,1,2,3
9554969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.long	4,4,4,4
9564969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.long	1,0,0,0
9574969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.long	4,0,0,0
9584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.long	0,-1,-1,-1
9594969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.align	6,0x90
9604969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.byte	67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54
9614969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.byte	44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
9624969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.byte	60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
9634969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.byte	114,103,62,0
9644969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.section __IMPORT,__pointers,non_lazy_symbol_pointers
9654969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid BenjaminL_OPENSSL_ia32cap_P$non_lazy_ptr:
9664969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.indirect_symbol	_OPENSSL_ia32cap_P
9674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin.long	0
9684969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin#endif
969