| // 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(__APPLE__) | 
 | .text | 
 | .globl	_bn_mul_add_words | 
 | .private_extern	_bn_mul_add_words | 
 | .align	4 | 
 | _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	4,0x90 | 
 | 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	2,0x90 | 
 | 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 | 
 | .globl	_bn_mul_words | 
 | .private_extern	_bn_mul_words | 
 | .align	4 | 
 | _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	4,0x90 | 
 | 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 | 
 | .globl	_bn_sqr_add_words | 
 | .private_extern	_bn_sqr_add_words | 
 | .align	4 | 
 | _bn_sqr_add_words: | 
 | L_bn_sqr_add_words_begin: | 
 | 	movl	4(%esp),%eax | 
 | 	movl	8(%esp),%edx | 
 | 	movl	12(%esp),%ecx | 
 | 	pxor	%mm1,%mm1 | 
 | .align	4,0x90 | 
 | L005sqr_sse2_loop: | 
 | 	movd	(%edx),%mm0 | 
 | 	movd	(%eax),%mm2 | 
 | 	movd	4(%eax),%mm3 | 
 | 	pmuludq	%mm0,%mm0 | 
 | 	leal	4(%edx),%edx | 
 | 	paddq	%mm0,%mm1 | 
 | 	paddq	%mm2,%mm1 | 
 | 	movd	%mm1,(%eax) | 
 | 	psrlq	$32,%mm1 | 
 | 	paddq	%mm3,%mm1 | 
 | 	movd	%mm1,4(%eax) | 
 | 	psrlq	$32,%mm1 | 
 | 	subl	$1,%ecx | 
 | 	leal	8(%eax),%eax | 
 | 	jnz	L005sqr_sse2_loop | 
 | 	emms | 
 | 	ret | 
 | 	popl	%edi | 
 | 	popl	%esi | 
 | 	popl	%ebx | 
 | 	popl	%ebp | 
 | 	ret | 
 | .globl	_bn_add_words | 
 | .private_extern	_bn_add_words | 
 | .align	4 | 
 | _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: | 
 | 	# Round 0  | 
 | 	movl	(%esi),%ecx | 
 | 	movl	(%edi),%edx | 
 | 	addl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	addl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,(%ebx) | 
 | 	# Round 1  | 
 | 	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) | 
 | 	# Round 2  | 
 | 	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) | 
 | 	# Round 3  | 
 | 	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) | 
 | 	# Round 4  | 
 | 	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) | 
 | 	# Round 5  | 
 | 	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) | 
 | 	# Round 6  | 
 | 	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) | 
 | 	# Round 7  | 
 | 	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 | 
 | 	# Tail Round 0  | 
 | 	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 | 
 | 	# Tail Round 1  | 
 | 	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 | 
 | 	# Tail Round 2  | 
 | 	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 | 
 | 	# Tail Round 3  | 
 | 	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 | 
 | 	# Tail Round 4  | 
 | 	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 | 
 | 	# Tail Round 5  | 
 | 	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 | 
 | 	# Tail Round 6  | 
 | 	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 | 
 | .globl	_bn_sub_words | 
 | .private_extern	_bn_sub_words | 
 | .align	4 | 
 | _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: | 
 | 	# Round 0  | 
 | 	movl	(%esi),%ecx | 
 | 	movl	(%edi),%edx | 
 | 	subl	%eax,%ecx | 
 | 	movl	$0,%eax | 
 | 	adcl	%eax,%eax | 
 | 	subl	%edx,%ecx | 
 | 	adcl	$0,%eax | 
 | 	movl	%ecx,(%ebx) | 
 | 	# Round 1  | 
 | 	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) | 
 | 	# Round 2  | 
 | 	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) | 
 | 	# Round 3  | 
 | 	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) | 
 | 	# Round 4  | 
 | 	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) | 
 | 	# Round 5  | 
 | 	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) | 
 | 	# Round 6  | 
 | 	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) | 
 | 	# Round 7  | 
 | 	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 | 
 | 	# Tail Round 0  | 
 | 	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 | 
 | 	# Tail Round 1  | 
 | 	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 | 
 | 	# Tail Round 2  | 
 | 	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 | 
 | 	# Tail Round 3  | 
 | 	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 | 
 | 	# Tail Round 4  | 
 | 	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 | 
 | 	# Tail Round 5  | 
 | 	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 | 
 | 	# Tail Round 6  | 
 | 	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 | 
 | #endif  // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) |