| // This file is generated from a similarly-named Perl script in the BoringSSL | 
 | // source tree. Do not edit by hand. | 
 |  | 
 | #include <openssl/asm_base.h> | 
 |  | 
 | #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) | 
 | .text | 
 | .globl	bn_mul_add_words | 
 | .hidden	bn_mul_add_words | 
 | .type	bn_mul_add_words,@function | 
 | .align	16 | 
 | bn_mul_add_words: | 
 | .L_bn_mul_add_words_begin: | 
 | 	movl	4(%esp),%eax | 
 | 	movl	8(%esp),%edx | 
 | 	movl	12(%esp),%ecx | 
 | 	movd	16(%esp),%mm0 | 
 | 	pxor	%mm1,%mm1 | 
 | 	jmp	.L000maw_sse2_entry | 
 | .align	16 | 
 | .L001maw_sse2_unrolled: | 
 | 	movd	(%eax),%mm3 | 
 | 	paddq	%mm3,%mm1 | 
 | 	movd	(%edx),%mm2 | 
 | 	pmuludq	%mm0,%mm2 | 
 | 	movd	4(%edx),%mm4 | 
 | 	pmuludq	%mm0,%mm4 | 
 | 	movd	8(%edx),%mm6 | 
 | 	pmuludq	%mm0,%mm6 | 
 | 	movd	12(%edx),%mm7 | 
 | 	pmuludq	%mm0,%mm7 | 
 | 	paddq	%mm2,%mm1 | 
 | 	movd	4(%eax),%mm3 | 
 | 	paddq	%mm4,%mm3 | 
 | 	movd	8(%eax),%mm5 | 
 | 	paddq	%mm6,%mm5 | 
 | 	movd	12(%eax),%mm4 | 
 | 	paddq	%mm4,%mm7 | 
 | 	movd	%mm1,(%eax) | 
 | 	movd	16(%edx),%mm2 | 
 | 	pmuludq	%mm0,%mm2 | 
 | 	psrlq	$32,%mm1 | 
 | 	movd	20(%edx),%mm4 | 
 | 	pmuludq	%mm0,%mm4 | 
 | 	paddq	%mm3,%mm1 | 
 | 	movd	24(%edx),%mm6 | 
 | 	pmuludq	%mm0,%mm6 | 
 | 	movd	%mm1,4(%eax) | 
 | 	psrlq	$32,%mm1 | 
 | 	movd	28(%edx),%mm3 | 
 | 	addl	$32,%edx | 
 | 	pmuludq	%mm0,%mm3 | 
 | 	paddq	%mm5,%mm1 | 
 | 	movd	16(%eax),%mm5 | 
 | 	paddq	%mm5,%mm2 | 
 | 	movd	%mm1,8(%eax) | 
 | 	psrlq	$32,%mm1 | 
 | 	paddq	%mm7,%mm1 | 
 | 	movd	20(%eax),%mm5 | 
 | 	paddq	%mm5,%mm4 | 
 | 	movd	%mm1,12(%eax) | 
 | 	psrlq	$32,%mm1 | 
 | 	paddq	%mm2,%mm1 | 
 | 	movd	24(%eax),%mm5 | 
 | 	paddq	%mm5,%mm6 | 
 | 	movd	%mm1,16(%eax) | 
 | 	psrlq	$32,%mm1 | 
 | 	paddq	%mm4,%mm1 | 
 | 	movd	28(%eax),%mm5 | 
 | 	paddq	%mm5,%mm3 | 
 | 	movd	%mm1,20(%eax) | 
 | 	psrlq	$32,%mm1 | 
 | 	paddq	%mm6,%mm1 | 
 | 	movd	%mm1,24(%eax) | 
 | 	psrlq	$32,%mm1 | 
 | 	paddq	%mm3,%mm1 | 
 | 	movd	%mm1,28(%eax) | 
 | 	leal	32(%eax),%eax | 
 | 	psrlq	$32,%mm1 | 
 | 	subl	$8,%ecx | 
 | 	jz	.L002maw_sse2_exit | 
 | .L000maw_sse2_entry: | 
 | 	testl	$4294967288,%ecx | 
 | 	jnz	.L001maw_sse2_unrolled | 
 | .align	4 | 
 | .L003maw_sse2_loop: | 
 | 	movd	(%edx),%mm2 | 
 | 	movd	(%eax),%mm3 | 
 | 	pmuludq	%mm0,%mm2 | 
 | 	leal	4(%edx),%edx | 
 | 	paddq	%mm3,%mm1 | 
 | 	paddq	%mm2,%mm1 | 
 | 	movd	%mm1,(%eax) | 
 | 	subl	$1,%ecx | 
 | 	psrlq	$32,%mm1 | 
 | 	leal	4(%eax),%eax | 
 | 	jnz	.L003maw_sse2_loop | 
 | .L002maw_sse2_exit: | 
 | 	movd	%mm1,%eax | 
 | 	emms | 
 | 	ret | 
 | 	popl	%edi | 
 | 	popl	%esi | 
 | 	popl	%ebx | 
 | 	popl	%ebp | 
 | 	ret | 
 | .size	bn_mul_add_words,.-.L_bn_mul_add_words_begin | 
 | .globl	bn_mul_words | 
 | .hidden	bn_mul_words | 
 | .type	bn_mul_words,@function | 
 | .align	16 | 
 | bn_mul_words: | 
 | .L_bn_mul_words_begin: | 
 | 	movl	4(%esp),%eax | 
 | 	movl	8(%esp),%edx | 
 | 	movl	12(%esp),%ecx | 
 | 	movd	16(%esp),%mm0 | 
 | 	pxor	%mm1,%mm1 | 
 | .align	16 | 
 | .L004mw_sse2_loop: | 
 | 	movd	(%edx),%mm2 | 
 | 	pmuludq	%mm0,%mm2 | 
 | 	leal	4(%edx),%edx | 
 | 	paddq	%mm2,%mm1 | 
 | 	movd	%mm1,(%eax) | 
 | 	subl	$1,%ecx | 
 | 	psrlq	$32,%mm1 | 
 | 	leal	4(%eax),%eax | 
 | 	jnz	.L004mw_sse2_loop | 
 | 	movd	%mm1,%eax | 
 | 	emms | 
 | 	ret | 
 | 	popl	%edi | 
 | 	popl	%esi | 
 | 	popl	%ebx | 
 | 	popl	%ebp | 
 | 	ret | 
 | .size	bn_mul_words,.-.L_bn_mul_words_begin | 
 | .globl	bn_sqr_words | 
 | .hidden	bn_sqr_words | 
 | .type	bn_sqr_words,@function | 
 | .align	16 | 
 | bn_sqr_words: | 
 | .L_bn_sqr_words_begin: | 
 | 	movl	4(%esp),%eax | 
 | 	movl	8(%esp),%edx | 
 | 	movl	12(%esp),%ecx | 
 | .align	16 | 
 | .L005sqr_sse2_loop: | 
 | 	movd	(%edx),%mm0 | 
 | 	pmuludq	%mm0,%mm0 | 
 | 	leal	4(%edx),%edx | 
 | 	movq	%mm0,(%eax) | 
 | 	subl	$1,%ecx | 
 | 	leal	8(%eax),%eax | 
 | 	jnz	.L005sqr_sse2_loop | 
 | 	emms | 
 | 	ret | 
 | 	popl	%edi | 
 | 	popl	%esi | 
 | 	popl	%ebx | 
 | 	popl	%ebp | 
 | 	ret | 
 | .size	bn_sqr_words,.-.L_bn_sqr_words_begin | 
 | .globl	bn_div_words | 
 | .hidden	bn_div_words | 
 | .type	bn_div_words,@function | 
 | .align	16 | 
 | bn_div_words: | 
 | .L_bn_div_words_begin: | 
 | 	movl	4(%esp),%edx | 
 | 	movl	8(%esp),%eax | 
 | 	movl	12(%esp),%ecx | 
 | 	divl	%ecx | 
 | 	ret | 
 | .size	bn_div_words,.-.L_bn_div_words_begin | 
 | .globl	bn_add_words | 
 | .hidden	bn_add_words | 
 | .type	bn_add_words,@function | 
 | .align	16 | 
 | bn_add_words: | 
 | .L_bn_add_words_begin: | 
 | 	pushl	%ebp | 
 | 	pushl	%ebx | 
 | 	pushl	%esi | 
 | 	pushl	%edi | 
 |  | 
 | 	movl	20(%esp),%ebx | 
 | 	movl	24(%esp),%esi | 
 | 	movl	28(%esp),%edi | 
 | 	movl	32(%esp),%ebp | 
 | 	xorl	%eax,%eax | 
 | 	andl	$4294967288,%ebp | 
 | 	jz	.L006aw_finish | 
 | .L007aw_loop: | 
 |  | 
 | 	movl	(%esi),%ecx | 
 | 	movl	(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,(%ebx) | 
 |  | 
 | 	movl	4(%esi),%ecx | 
 | 	movl	4(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,4(%ebx) | 
 |  | 
 | 	movl	8(%esi),%ecx | 
 | 	movl	8(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,8(%ebx) | 
 |  | 
 | 	movl	12(%esi),%ecx | 
 | 	movl	12(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,12(%ebx) | 
 |  | 
 | 	movl	16(%esi),%ecx | 
 | 	movl	16(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,16(%ebx) | 
 |  | 
 | 	movl	20(%esi),%ecx | 
 | 	movl	20(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,20(%ebx) | 
 |  | 
 | 	movl	24(%esi),%ecx | 
 | 	movl	24(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,24(%ebx) | 
 |  | 
 | 	movl	28(%esi),%ecx | 
 | 	movl	28(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,28(%ebx) | 
 |  | 
 | 	addl	$32,%esi | 
 | 	addl	$32,%edi | 
 | 	addl	$32,%ebx | 
 | 	subl	$8,%ebp | 
 | 	jnz	.L007aw_loop | 
 | .L006aw_finish: | 
 | 	movl	32(%esp),%ebp | 
 | 	andl	$7,%ebp | 
 | 	jz	.L008aw_end | 
 |  | 
 | 	movl	(%esi),%ecx | 
 | 	movl	(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,(%ebx) | 
 | 	jz	.L008aw_end | 
 |  | 
 | 	movl	4(%esi),%ecx | 
 | 	movl	4(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,4(%ebx) | 
 | 	jz	.L008aw_end | 
 |  | 
 | 	movl	8(%esi),%ecx | 
 | 	movl	8(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,8(%ebx) | 
 | 	jz	.L008aw_end | 
 |  | 
 | 	movl	12(%esi),%ecx | 
 | 	movl	12(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,12(%ebx) | 
 | 	jz	.L008aw_end | 
 |  | 
 | 	movl	16(%esi),%ecx | 
 | 	movl	16(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,16(%ebx) | 
 | 	jz	.L008aw_end | 
 |  | 
 | 	movl	20(%esi),%ecx | 
 | 	movl	20(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,20(%ebx) | 
 | 	jz	.L008aw_end | 
 |  | 
 | 	movl	24(%esi),%ecx | 
 | 	movl	24(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,24(%ebx) | 
 | .L008aw_end: | 
 | 	popl	%edi | 
 | 	popl	%esi | 
 | 	popl	%ebx | 
 | 	popl	%ebp | 
 | 	ret | 
 | .size	bn_add_words,.-.L_bn_add_words_begin | 
 | .globl	bn_sub_words | 
 | .hidden	bn_sub_words | 
 | .type	bn_sub_words,@function | 
 | .align	16 | 
 | bn_sub_words: | 
 | .L_bn_sub_words_begin: | 
 | 	pushl	%ebp | 
 | 	pushl	%ebx | 
 | 	pushl	%esi | 
 | 	pushl	%edi | 
 |  | 
 | 	movl	20(%esp),%ebx | 
 | 	movl	24(%esp),%esi | 
 | 	movl	28(%esp),%edi | 
 | 	movl	32(%esp),%ebp | 
 | 	xorl	%eax,%eax | 
 | 	andl	$4294967288,%ebp | 
 | 	jz	.L009aw_finish | 
 | .L010aw_loop: | 
 |  | 
 | 	movl	(%esi),%ecx | 
 | 	movl	(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,(%ebx) | 
 |  | 
 | 	movl	4(%esi),%ecx | 
 | 	movl	4(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,4(%ebx) | 
 |  | 
 | 	movl	8(%esi),%ecx | 
 | 	movl	8(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,8(%ebx) | 
 |  | 
 | 	movl	12(%esi),%ecx | 
 | 	movl	12(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,12(%ebx) | 
 |  | 
 | 	movl	16(%esi),%ecx | 
 | 	movl	16(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,16(%ebx) | 
 |  | 
 | 	movl	20(%esi),%ecx | 
 | 	movl	20(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,20(%ebx) | 
 |  | 
 | 	movl	24(%esi),%ecx | 
 | 	movl	24(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,24(%ebx) | 
 |  | 
 | 	movl	28(%esi),%ecx | 
 | 	movl	28(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,28(%ebx) | 
 |  | 
 | 	addl	$32,%esi | 
 | 	addl	$32,%edi | 
 | 	addl	$32,%ebx | 
 | 	subl	$8,%ebp | 
 | 	jnz	.L010aw_loop | 
 | .L009aw_finish: | 
 | 	movl	32(%esp),%ebp | 
 | 	andl	$7,%ebp | 
 | 	jz	.L011aw_end | 
 |  | 
 | 	movl	(%esi),%ecx | 
 | 	movl	(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,(%ebx) | 
 | 	jz	.L011aw_end | 
 |  | 
 | 	movl	4(%esi),%ecx | 
 | 	movl	4(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,4(%ebx) | 
 | 	jz	.L011aw_end | 
 |  | 
 | 	movl	8(%esi),%ecx | 
 | 	movl	8(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,8(%ebx) | 
 | 	jz	.L011aw_end | 
 |  | 
 | 	movl	12(%esi),%ecx | 
 | 	movl	12(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,12(%ebx) | 
 | 	jz	.L011aw_end | 
 |  | 
 | 	movl	16(%esi),%ecx | 
 | 	movl	16(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,16(%ebx) | 
 | 	jz	.L011aw_end | 
 |  | 
 | 	movl	20(%esi),%ecx | 
 | 	movl	20(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	decl	%ebp | 
 | 	movl	%ecx,20(%ebx) | 
 | 	jz	.L011aw_end | 
 |  | 
 | 	movl	24(%esi),%ecx | 
 | 	movl	24(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,24(%ebx) | 
 | .L011aw_end: | 
 | 	popl	%edi | 
 | 	popl	%esi | 
 | 	popl	%ebx | 
 | 	popl	%ebp | 
 | 	ret | 
 | .size	bn_sub_words,.-.L_bn_sub_words_begin | 
 | #endif  // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) |