12c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.file	"crypto/bn/asm/x86-mont.s"
22c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.text
32c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.globl	bn_mul_mont
42c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.type	bn_mul_mont,@function
52c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
62c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.orgbn_mul_mont:
72c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L_bn_mul_mont_begin:
82c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	pushl	%ebp
92c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	pushl	%ebx
102c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	pushl	%esi
112c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	pushl	%edi
122c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%eax,%eax
132c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	40(%esp),%edi
142c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	cmpl	$4,%edi
152c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jl	.L000just_leave
162c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	20(%esp),%esi
172c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	24(%esp),%edx
182c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%esp,%ebp
192c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	$2,%edi
202c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	negl	%edi
212c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	-32(%esp,%edi,4),%esp
222c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	negl	%edi
232c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%esp,%eax
242c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	subl	%edx,%eax
252c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	andl	$2047,%eax
262c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	subl	%eax,%esp
272c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%esp,%edx
282c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	andl	$2048,%edx
292c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	$2048,%edx
302c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	subl	%edx,%esp
312c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	andl	$-64,%esp
322c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi),%eax
332c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	4(%esi),%ebx
342c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	8(%esi),%ecx
352c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	12(%esi),%edx
362c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	16(%esi),%esi
372c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi),%esi
382c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,4(%esp)
392c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebx,8(%esp)
402c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ecx,12(%esp)
412c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,16(%esp)
422c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%esi,20(%esp)
432c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	-3(%edi),%ebx
442c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,24(%esp)
452c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	8(%esp),%esi
462c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	1(%ebx),%ebp
472c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	12(%esp),%edi
482c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%ecx,%ecx
492c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%esi,%edx
502c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	andl	$1,%ebp
512c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	subl	%edi,%edx
522c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	4(%edi,%ebx,4),%eax
532c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	orl	%edx,%ebp
542c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%edi),%edi
552c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jz	.L001bn_sqr_mont
562c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,28(%esp)
572c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi),%eax
582c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%edx,%edx
592c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
602c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L002mull:
612c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
622c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
632c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%eax,%ebp
642c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	1(%ecx),%ecx
652c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
662c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi,%ecx,4),%eax
672c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	cmpl	%ebx,%ecx
682c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,28(%esp,%ecx,4)
692c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jl	.L002mull
702c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
712c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
722c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	20(%esp),%edi
732c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%ebp,%eax
742c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	16(%esp),%esi
752c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
762c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	imull	32(%esp),%edi
772c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,32(%esp,%ebx,4)
782c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%ecx,%ecx
792c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,36(%esp,%ebx,4)
802c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ecx,40(%esp,%ebx,4)
812c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi),%eax
822c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
832c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp),%eax
842c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	4(%esi),%eax
852c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
862c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	incl	%ecx
872c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jmp	.L0032ndmadd
882c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
892c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L0041stmadd:
902c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
912c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
922c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp,%ecx,4),%ebp
932c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	1(%ecx),%ecx
942c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
952c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%eax,%ebp
962c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi,%ecx,4),%eax
972c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
982c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	cmpl	%ebx,%ecx
992c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,28(%esp,%ecx,4)
1002c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jl	.L0041stmadd
1012c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
1022c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
1032c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp,%ebx,4),%eax
1042c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	20(%esp),%edi
1052c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
1062c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	16(%esp),%esi
1072c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%eax,%ebp
1082c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
1092c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	imull	32(%esp),%edi
1102c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%ecx,%ecx
1112c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	36(%esp,%ebx,4),%edx
1122c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,32(%esp,%ebx,4)
1132c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%ecx
1142c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi),%eax
1152c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,36(%esp,%ebx,4)
1162c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ecx,40(%esp,%ebx,4)
1172c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
1182c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp),%eax
1192c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	4(%esi),%eax
1202c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
1212c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	$1,%ecx
1222c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
1232c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L0032ndmadd:
1242c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
1252c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
1262c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp,%ecx,4),%ebp
1272c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	1(%ecx),%ecx
1282c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
1292c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%eax,%ebp
1302c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi,%ecx,4),%eax
1312c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
1322c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	cmpl	%ebx,%ecx
1332c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,24(%esp,%ecx,4)
1342c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jl	.L0032ndmadd
1352c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
1362c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
1372c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp,%ebx,4),%ebp
1382c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
1392c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%eax,%ebp
1402c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
1412c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,28(%esp,%ebx,4)
1422c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%eax,%eax
1432c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	12(%esp),%ecx
1442c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	36(%esp,%ebx,4),%edx
1452c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	40(%esp,%ebx,4),%eax
1462c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	4(%ecx),%ecx
1472c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,32(%esp,%ebx,4)
1482c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	cmpl	28(%esp),%ecx
1492c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,36(%esp,%ebx,4)
1502c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	je	.L005common_tail
1512c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%ecx),%edi
1522c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	8(%esp),%esi
1532c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ecx,12(%esp)
1542c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%ecx,%ecx
1552c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%edx,%edx
1562c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi),%eax
1572c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jmp	.L0041stmadd
1582c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
1592c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L001bn_sqr_mont:
1602c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebx,(%esp)
1612c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ecx,12(%esp)
1622c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edi,%eax
1632c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
1642c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,32(%esp)
1652c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebx
1662c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	shrl	$1,%edx
1672c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	andl	$1,%ebx
1682c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	incl	%ecx
1692c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
1702c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L006sqr:
1712c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi,%ecx,4),%eax
1722c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
1732c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
1742c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%ebp,%eax
1752c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	1(%ecx),%ecx
1762c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
1772c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	(%ebx,%eax,2),%ebp
1782c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	shrl	$31,%eax
1792c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	cmpl	(%esp),%ecx
1802c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,%ebx
1812c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,28(%esp,%ecx,4)
1822c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jl	.L006sqr
1832c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi,%ecx,4),%eax
1842c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
1852c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
1862c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%ebp,%eax
1872c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	20(%esp),%edi
1882c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
1892c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	16(%esp),%esi
1902c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	(%ebx,%eax,2),%ebp
1912c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	imull	32(%esp),%edi
1922c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	shrl	$31,%eax
1932c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,32(%esp,%ecx,4)
1942c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	(%eax,%edx,2),%ebp
1952c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi),%eax
1962c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	shrl	$31,%edx
1972c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,36(%esp,%ecx,4)
1982c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,40(%esp,%ecx,4)
1992c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
2002c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp),%eax
2012c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ecx,%ebx
2022c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
2032c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	4(%esi),%eax
2042c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	$1,%ecx
2052c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
2062c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L0073rdmadd:
2072c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
2082c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
2092c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp,%ecx,4),%ebp
2102c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
2112c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%eax,%ebp
2122c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	4(%esi,%ecx,4),%eax
2132c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
2142c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,28(%esp,%ecx,4)
2152c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
2162c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
2172c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	36(%esp,%ecx,4),%ebp
2182c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	2(%ecx),%ecx
2192c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
2202c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%eax,%ebp
2212c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi,%ecx,4),%eax
2222c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
2232c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	cmpl	%ebx,%ecx
2242c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,24(%esp,%ecx,4)
2252c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jl	.L0073rdmadd
2262c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
2272c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
2282c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp,%ebx,4),%ebp
2292c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
2302c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%eax,%ebp
2312c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
2322c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,28(%esp,%ebx,4)
2332c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	12(%esp),%ecx
2342c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%eax,%eax
2352c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	8(%esp),%esi
2362c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	36(%esp,%ebx,4),%edx
2372c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	40(%esp,%ebx,4),%eax
2382c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,32(%esp,%ebx,4)
2392c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	cmpl	%ebx,%ecx
2402c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,36(%esp,%ebx,4)
2412c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	je	.L005common_tail
2422c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	4(%esi,%ecx,4),%edi
2432c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	1(%ecx),%ecx
2442c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edi,%eax
2452c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ecx,12(%esp)
2462c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
2472c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp,%ecx,4),%eax
2482c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
2492c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,32(%esp,%ecx,4)
2502c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%ebp,%ebp
2512c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	cmpl	%ebx,%ecx
2522c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	1(%ecx),%ecx
2532c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	je	.L008sqrlast
2542c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebx
2552c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	shrl	$1,%edx
2562c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	andl	$1,%ebx
2572c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
2582c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L009sqradd:
2592c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi,%ecx,4),%eax
2602c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
2612c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
2622c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%ebp,%eax
2632c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	(%eax,%eax,1),%ebp
2642c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
2652c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	shrl	$31,%eax
2662c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp,%ecx,4),%ebp
2672c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	1(%ecx),%ecx
2682c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%eax
2692c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%ebx,%ebp
2702c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%eax
2712c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	cmpl	(%esp),%ecx
2722c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,28(%esp,%ecx,4)
2732c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,%ebx
2742c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jle	.L009sqradd
2752c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,%ebp
2762c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%edx,%edx
2772c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	shrl	$31,%ebp
2782c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	%ebx,%edx
2792c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%ebp
2802c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L008sqrlast:
2812c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	20(%esp),%edi
2822c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	16(%esp),%esi
2832c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	imull	32(%esp),%edi
2842c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp,%ecx,4),%edx
2852c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi),%eax
2862c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%ebp
2872c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edx,32(%esp,%ecx,4)
2882c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebp,36(%esp,%ecx,4)
2892c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	mull	%edi
2902c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	addl	32(%esp),%eax
2912c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	-1(%ecx),%ebx
2922c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	adcl	$0,%edx
2932c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	$1,%ecx
2942c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	4(%esi),%eax
2952c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jmp	.L0073rdmadd
2962c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
2972c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L005common_tail:
2982c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	16(%esp),%ebp
2992c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	4(%esp),%edi
3002c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	32(%esp),%esi
3012c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi),%eax
3022c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ebx,%ecx
3032c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	xorl	%edx,%edx
3042c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
3052c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L010sub:
3062c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	sbbl	(%ebp,%edx,4),%eax
3072c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,(%edi,%edx,4)
3082c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	decl	%ecx
3092c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	4(%esi,%edx,4),%eax
3102c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	leal	1(%edx),%edx
3112c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jge	.L010sub
3122c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	sbbl	$0,%eax
3132c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	andl	%eax,%esi
3142c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	notl	%eax
3152c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%edi,%ebp
3162c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	andl	%eax,%ebp
3172c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	orl	%ebp,%esi
3182c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.align	16
3192c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L011copy:
3202c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	(%esi,%ebx,4),%eax
3212c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%eax,(%edi,%ebx,4)
3222c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	%ecx,32(%esp,%ebx,4)
3232c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	decl	%ebx
3242c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	jge	.L011copy
3252c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	24(%esp),%esp
3262c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	movl	$1,%eax
3272c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.L000just_leave:
3282c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	popl	%edi
3292c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	popl	%esi
3302c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	popl	%ebx
3312c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	popl	%ebp
3322c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org	ret
3332c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.size	bn_mul_mont,.-.L_bn_mul_mont_begin
3342c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
3352c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.byte	112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56
3362c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.byte	54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
3372c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.byte	32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
3382c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org.byte	111,114,103,62,0
339